[發明專利]一種SPARC平臺減少中斷響應抖動的方法有效
| 申請號: | 201410060974.9 | 申請日: | 2014-02-21 |
| 公開(公告)號: | CN103984537B | 公開(公告)日: | 2017-04-19 |
| 發明(設計)人: | 卓保特;周啟平;呂紫旭;趙英輝 | 申請(專利權)人: | 北京神舟航天軟件技術有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京世譽鑫誠專利代理事務所(普通合伙)11368 | 代理人: | 孫國棟 |
| 地址: | 100094*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sparc 平臺 減少 中斷 響應 抖動 技術 | ||
技術領域
本發明屬于嵌入式實時操作系統領域,具體地說,涉及一種SPARC平臺減少中斷響應抖動的方法。
背景技術
SPARC是一種開源的RISC處理器架構技術,在國內廣泛的應用在航天領域。同時,隨著航天任務的復雜化,嵌入式實時操作系統在航天領域的應用也越來越廣泛。在嵌入式實時操作系統運行過程中,有兩條最重要且執行最頻繁的內核路徑:任務切換路徑和中斷處理路徑。在這兩條路徑上有大量對全局變量及全局數據結構進行讀寫的操作,為保證全局數據的一致性,現有的嵌入式實時操作系統通常采用關中斷的方法確保多個任務對共享資源的互斥訪問。
現有技術存在的主要問題:
1、采用關中斷方法保護的臨界區,通常是由C語言實現的對全局變量及全局數據結構進行讀寫的操作,這些代碼長短不一(如使用GCC 3.4.4不做優化,對代碼進行編譯,對全局變量進行寫的臨界區有10條匯編指令,隊列插入操作的臨界區有31條匯編指令,隊列刪除操作的臨界區有25條匯編指令),導致不同臨界區執行時間不同。另外臨界區的代碼強烈依賴編譯器,不同編譯器或同一編譯器的不同配置,都有可能導致臨界區代碼執行時間的變化(如使用GCC3.4.4–O2級優化對代碼進行編譯,對全局變量進行寫的臨界區有6條匯編指令,隊列插入操作的臨界區有15條匯編指令,隊列刪除操作的臨界區有17條匯編指令)。如下圖所示,臨界區代碼的長度不同,對中斷響應的延遲也就不同,這會造成中斷響應的延遲在不同的區間抖動,最終導致由中斷觸發的周期任務調度的抖動,這對實時性要求高的應用(如運動控制)的穩定性、可靠性都會造成負面影響。
2、另外如果關中斷的時間過長,會造成系統對外部事件反應遲鈍,對多數實時系統而言,這會影響系統的中斷響應時間,使得系統的實時性得不到保證;另外頻繁的關中斷可能變更整個系統的時序,帶來的副作用包括丟失外部事件和時鐘漂移。
發明內容
本發明要解決的技術問題是克服上述缺陷,提供一種保證對全局變量以及全局隊列、全局堆棧等數據結構的讀寫訪問的一致性,而且所有臨界區都由7條SPARC平臺的匯編指令組成,關中斷的時間短且固定,能減少中斷響應的抖動,并提高平均中斷響應時間,減少外部中斷的丟失的SPARC平臺減少中斷響應抖動的方法。
為解決上述問題,本發明所采用的技術方案是:
一種SPARC平臺減少中斷響應抖動的方法,步驟如下:1)、建立SPARC平臺原子交換函數;2)、實現內核路徑上寫全局變量訪問操作的中斷響應抖動減少技術;3)、全局隊列訪問操作的中斷響應抖動減少技術;4)、全局堆棧訪問操作的中斷響應抖動減少技術。
作為一種改進,所述建立SPARC平臺原子交換函數的算法如下:
使用SPARC匯編指令實現了原子交換函數,該函數共由7條指令組成,其原型如下:
int atomic_swap(int oldval,int*p_var,int newval)
返回值為int型,變量oldval存儲某一全局變量修改前的值,指針p_var指向該全局變量,而變量newval存儲將賦給該全局變量的值,返回0值表示用新值對全局變量原先的值進行了替換,返回非0值,表示未用新值對全局變量原先的值進行替換;所述原子交換函數的算法如下:
1)、快速關中斷;
2)、將oldval和p_var指向的地址處的值相減,將結果填入存放返回值的寄存器,如果為0,則繼續執行第3步,如果不為0,則跳轉到第4步;
3)、將newval的值賦給p_var指向的地址;
4)、打開中斷,函數返回。
作為一種改進,所述實現內核路徑上寫全局變量訪問操作的中斷響應抖動減少技術的函數原型如下:
void write_global(int*pglb,int new)
其中變量pglb指向要進行寫操作的全局變量的地址,變量new指向將要寫入全局變量的值;所述實現內核路徑上寫全局變量訪問操作的中斷響應抖動減少技術算法如下:
1)、取出指針pglb指向的全局變量的值,賦給臨時變量temp;
2)、調用原子交換函數,格式為atomic_swap(temp,pglb,new);
3)、如果原子交換函數返回值不為0,則調轉到第1步;如果返回值為0,則函數退出。
作為一種改進,所述全局隊列訪問操作的中斷響應抖動減少技術首先是插入節點操作,其函數原型如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京神舟航天軟件技術有限公司,未經北京神舟航天軟件技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410060974.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:細部噴涂噴槍
- 下一篇:氣流粉碎機用噴管結構





