999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

“龍騰R2”微處理器精確中斷優化實現

2007-12-31 00:00:00張盛兵沈緒榜
計算機應用研究 2007年7期

摘要:介紹了“龍騰R2”微處理器精確中斷的實現方法,詳細討論了備份緩沖區精確中斷優化方法和中斷指令緩沖區中斷響應機制。在“龍騰R2”微處理器上的實驗結果表明,采用備份緩沖區和中斷指令緩沖區的精確中斷方法在不影響微處理器速度的情況下,中斷響應速度是原來的3.5倍,中斷返回速度是原來的2.6倍。

關鍵詞:流水線;精確中斷;“龍騰R2”微處理器

中圖分類號:TP393.04文獻標志碼:A

文章編號:1001-3695(2007)07-0186-03

在當前數字技術高速發展的后PC時代,嵌入式微處理器已經廣泛地應用到科學研究、工程設計、軍事技術等人們生活的方方面面。嵌入式微處理器的功耗、速度、處理能力和實時性等方面是評價一個嵌入式微處理器性能高低的評價標準。

1“龍騰R2”微處理器體系結構

1.1總體描述

“龍騰R2”微處理器是西北工業大學航空微電子中心設計的,采用PowerPC體系結構具有自主知識產權的RISC微處理器。“龍騰R2”是一款與PowerPC750指令集兼容的32位嵌入式高性能低功耗的RISC微處理器。它采用SMIC 0.18 μm CMOS工藝實現,die的面積是5.2×4.0 mm2,主頻為233 MHz。“龍騰R2”處理器的微體系結構如圖1所示。定點執行單元(Integer Execute Unit,IEU)主要完成處理器流水線狀態的控制以及定點運算的執行;浮點執行單元(Float point Process Unit,FPU)只是IEU中執行部件的一部分,完成整個處理器的浮點數據處理,它有單獨的譯碼、執行和異常處理模塊;Load Store單元(Load Store Unit,LSU)主要完成Load、Store指令有效地址的計算,同時完成指令的異常檢測和跨頁邊界處理;存儲管理單元(Memory Management Unit,MMU)有完成地址轉換和存儲保護兩大功能,包括指令、數據兩部分;指令/數據Cache單元存放最近使用的指令和數據;總線接口單元(Bus Interface Unit,BIU)有完成處理器與外部總線接口的功能。

1.2“龍騰R2”的流水線

考慮到設計以及時序各方面的要求,“龍騰R2”微處理器流水線由六級構成,包括指令預取(IF)、指令譯碼(ID)、取數(RD)、執行(EX)、數據獲取及中斷處理(TE)、結果寫回(WB)。

IF級向指令單元發出取指請求,將其返回的指令流加載到預取指令隊列之中,并且當流水線空閑時發射指令;ID級譯出正確執行該條指令完備的控制信號;RD級完成操作數擴展、操作數準備、格式調整,以及相關處理等;EX級完成指令的操作,包括乘法、除法、算術邏輯操作、前導零計算等;TE級完成異常檢測,響應系統中斷;WB級更新系統寄存器。在流水線中,ID、RD、TE和WB四級執行只需要一個時鐘周期,IF級需要與ICache之間進行握手操作,而對EX級采用當任意一個執行單元忙時,則整個流水線停滯;當所有執行單元空閑時,釋放出相應的硬件資源控制方法。

“龍騰R2”微處理器采取多取指低頻度的取指方案,四字對齊的取指方式,每次取出一組四條指令,最多連續申請兩組。每當取回的一組指令發射完畢后則繼續申請取指,并增設預取指令隊列作為取指部件與ICache之間的緩沖器件,平衡ICache與取指部件之間的數據帶寬,保證流水線滿負荷工作。

流水線的推進和停滯由處于EX級的執行單元的狀態來決定,所以執行級的執行單元的時序是影響整個流水線性能的關鍵因素。不同操作占有執行單元的時序統計如表1所示。其中定點除法指令34拍,訪存指令、浮點等指令由于其指令執行無法確定,對于這三類指令采用握手的方式實現流水線的控制。

2“龍騰R2”微處理器的精確中斷

2.1精確中斷的定義

精確中斷的定義[1]:當中斷發生時,被中斷的處理器狀態可以由硬件保存,也可以由軟件或者是兩者結合的方式保存。需要保存的狀態一般包括程序計數器、寄存器和內存。如果保存的處理器狀態與順序執行模型一致,則中斷是精確的。具體地說,精確中斷必須滿足以下三個條件:

(1)在保存于程序計數器中的指令之前的所有指令均必須執行完成,并且已經正確地修改了處理器的狀態。

(2)在保存于程序計數器中的指令之后的所有指令均未執行完,并且不改變處理器狀態。

(3)如果中斷是由指令執行過程中出現異常而產生的,那么程序計數器中將保存執行時出現異常的指令。由于異常的類型不同,被中斷的指令可以執行完且已經改變處理器狀態,也可以是未執行完且未改變處理器狀態。

如果保存的處理器狀態與順序執行模型不一致,或者不能滿足以上三個條件,那么這樣的中斷稱做非精確中斷。保證流水線上的指令按照指令順序執行的方式改變處理器的狀態,首先保證當有兩個或兩個以上中斷到來時,中斷能夠按照指令順序執行先后次序處理。

處理器對流水線出現中斷有兩種處理方法:①集中式處理。只檢測中斷不處理,在流水線上設置專門的中斷處理器級,當指令進入中斷處理器級后按照指令順序執行的先后次序對中斷作出統一的處理;②分布式處理。只要在流水級上檢測到中斷立即發出處理請求,最終由控制單元根據優先級決定處理哪個中斷。前一種方法流水線每一級對中斷處理的控制代價減少,但是流水線多加一級,處理器速度上得到的優化性能卻降低了;后一種方法則與之相反。為了保證指令可以順序地改變處理器的狀態,一般會使用結果移位寄存器、重排序緩沖區、歷史緩沖或者是將來文件等機制[1]。

2.2“龍騰R2”中精確中斷的實現

“龍騰 R2”處理器嚴格按照PowerPC體系結構要求,實現精確中斷處理。流水線中的TE級專門用來對中斷進行處理。精確中斷的處理機制如下:

(1)發生中斷時在流水線中進行優先級判斷,記錄發生中斷的事件,直到TE級再處理。

(2)如果在EX階段要修改機器狀態,一直保存到WB階段再修改。

(3)當發生程序精確中斷時,關閉全部流水級,使流水級的操作無效,拋棄所有的運算結果和產生的異常結果;當發生外部精確中斷時,完成當前的指令后再關閉全部的流水級,使流水級的操作無效,拋棄所有的運算結果。

PowerPC體系結構規定了15種中斷方式。其中13種是精確中斷。表2對“龍騰R2”中常用的同步精確中斷按照流水線的方式進行了分類。這些中斷只能發生在固定的流水級中,而對于異步精確中斷則可能發生在流水線的任意一級上。

“龍騰R2”采用的是集中式處理精確中斷的方法。為了實現精確中斷,設計了PC鏈,用于保存流水線中指令的PC值和相應的中斷信息。中斷信息分別記錄兩種情況:①同步精確中斷,它將關閉相應的流水級。當指令進入下一流水段時使當前的指令無效。②異步精確中斷,它不會在TE段以前關閉流水。當指令在TE段時,如果沒有更高級的中斷信息產生則可以響應異步精確中斷。

3保存精確中斷現場的優化

3.1優化方案的選擇

現有的精確中斷機制中,一旦處理器響應精確中斷就需要沖刷流水線。這樣的做法將浪費大量的處理器時間。根據分析流水線沖刷的原因,決定使用備份緩沖區保存流水線現場的方法對“龍騰R2”精確中斷進行優化:在發生精確中斷時允許沖刷流水線,但不同的是沖刷流水線之前將流水線中各級的狀態保存到備份緩沖區中,保存流水線的現場,在中斷返回時將從備份緩沖區中的數據寫入相應的流水級中。

“龍騰 R2”流水線中執行時間較長的是IF級和EX級的部分執行單元。由于各種執行部件執行的時序不同,實現備份緩沖區比較復雜。在具體實現時只對“龍騰 R2”流水線的IF級進行了改進。“龍騰R2”的IF級的結構如圖2所示。

ICache取回的128位指令Instruction將傳遞給IF級的Instruction_buffer。下一個拍指令會通過各種邏輯操作送到指令隊列的slot中。最后會在發射選擇控制信號的控制下送給流水線中的下一級指令譯碼級。在IF級實現備份緩沖區有兩種方式,即松耦合方式和緊耦合方式。松耦合方式備份緩沖區只備份Instruction_buffer中的內容;緊耦合方式備份緩沖區備份指令隊列8個slot中的內容。

3.2緊耦合方式

緊耦合方式如圖3所示。該方式備份緩沖區是IEU中的一部分,并且由同步控制邏輯保持備份緩沖區中的內容和指令隊列中的內容相同。在沒有中斷的情況下,每次改變指令隊列都要相應地保持備份緩沖區。考慮到會出現中斷嵌套的情況,所以在備份緩沖區中設置了兩套同樣結構的緩沖,在沒有中斷的情況下首先使用0號備份緩沖區。

在PowerPC的體系結構中srr 0寄存器保存的是中斷返回時執行的第一條指令的位置。在圖3中new_srr 0是進入中斷時處理器保存的PC,old_srr 0是中斷返回時需要執行指令的PC。在沒有中斷嵌套情況下,中斷產生時保存new_srr 0的值,進入中斷之后置0號緩沖區為有效,使用1號緩沖區做備份。中斷返回比較old_srr 0與new_srr 0是否相等,如果相等才允許返回。中斷返回時IEU發出取指請求,這時控制邏輯會截獲請求不發給ICACHE,將0號緩沖區的內容恢復到指令隊列中,同時置0號緩沖區為無效。

在發生一層中斷嵌套的情況下,0號緩沖區已經為有效狀態,不可修改其中備份的內容。這時只需要用同樣的方法對1號緩沖區進行操作就可以了。如果發生兩層或兩層以上的嵌套,則只能沖刷流水線。中斷返回時處理器并不知道是否出現了中斷嵌套,所以首先需要比較old_srr 0和1號緩沖區中的new_srr 0,相同則返回一層,不相同則不返回任何中斷。中斷返回后對指令隊列的恢復與沒有中斷嵌套時相同。

3.3松耦合方式

松耦合方式如圖4所示。

備份緩沖區只是IEU與ICACHE之間的一個模塊,備份的內容是從ICACHE取回的128位指令,而不是指令隊列中的指令。同樣由于存在著中斷嵌套的可能,在備份緩沖區中設置了兩套可以存放8條指令的緩沖區。

在無中斷的情況下備份緩沖區對于IEU和ICACHE是透明的。這樣的控制方法比較簡單,每次ICACHE返回指令時均會在備份緩沖區中0號緩沖區備份一份。當中斷發生時,松耦合備份緩沖區的處理方法與緊耦合緩沖區的處理方法類似,但是當中斷返回時松耦合方式一般比緊耦合方式對被中斷狀態的恢復慢一個時鐘周期。

4精確中斷響應的優化

中斷的實時性是嵌入式實時系統的一個重要方面,中斷響應時間是影響中斷實時性的主要因素。中斷響應定義為,從中斷發生到開始執行用戶的中斷服務代碼來處理這個中斷的時間[2]。其中包括中斷延遲時間和保護中斷現場的時間。如圖5所示,要提高中斷響應速度就必須減少中斷延遲和保護現場的時間。其中中斷延遲時間是由進入中斷之前的任務決定的,無任何可以有效減少中斷延遲的方法,所以可以通過減少保護現場時間的方法來增加中斷響應的速度。下面給出一種利用保存中斷入口程序來提高中斷響應速度的方法。

“龍騰R2”體系結構規定了13種精確中斷,任意一種類型的中斷發生時需要從固定的中斷入口取指。對于處理器速度和訪存延遲差別越來越大的情況下,這種重復操作將是一種浪費,并且中斷處理開始的過程基本相同,均需要保存處理器現場。對于“龍騰 R2”微處理器來說,只需要快速地取到中斷處理程序的前8條指令,就不會導致流水線斷流造成性能降低。考慮到上述因素,在“龍騰 R2”處理器中加入了中斷指令緩沖區,對中斷響應速度進行優化。這種緩沖區結構如圖6所示。

發生中斷時,如果當前的中斷向量號與緩沖區中保存的中斷向量號一致,則將保存的8條指令送給IF級;如果不相同,則將當前中斷處理取回的前8條指令填入緩沖區中無效的一行,如果緩沖區被填滿,則采用最近最久未使用的策略替換其中一行。對于嵌入式微處理器來說,處理外部中斷的能力是其實時性的主要體現,并且根據在Altera開發板上仿真,得出:在VxWorks初始化過程中最頻繁出現的中斷就是外部中斷,而其他異常很少出現。考慮到實現的代價和性能要求,在“龍騰R2”中只用了兩行中斷指令緩沖區。其中一行專門供中斷入口使用。

5性能比較

經過在“龍騰R2”驗證平臺上對VxWorks操作系統進行初始化得到的數據,采用松耦合和緊耦合兩種方式的數據如表3所示。其中中斷返回是指中斷返回標志置位之后到執行被中斷的程序第一條指令的拍數,表中單元數是由Synopsys公司的Design Compiler SIMC 0.18 μm工藝庫綜合得到的。可見,緊耦合方式雖然比松耦合方式在實現上增加了少量的單元,但卻提高了性能。

使用中斷指令緩沖區之后的性能比較如表4所示。表中數據是在VxWorks操作系統執行單步調試時得到的。單步調試時常用到的有三種中斷,即外部中斷、Trap和Trace。表中的中斷響應時間是對各種中斷響應出現次數的加權平均。由表4可知,在上述實驗環境中,兩個中斷指令緩沖區最優。

在采用緊耦合備份緩沖區和優化的中斷響應方式之后,“龍騰R2”微處理器中斷切換時間比原有設計減少了67%,具體比較如表5所示。表中的數據是在處理器和外圍設備同頻率下,VxWorks操作系統初始化過程中得到的。緊耦合備份緩沖區和中斷指令緩沖區均不在處理器的關鍵路徑上,所以不影響原有處理器的速度,只增加了少量的寄存器。可見,增加少量代價的處理器處理中斷的能力得到了較好的提高。

6結束語

介紹了“龍騰 R2”微處理器體系結構,詳細介紹了流水線構成和精確中斷機制,最后采用兩種基于備份緩沖區的方法對原有流水線的精確中斷進行改進,并且使用中斷指令緩沖區對中斷響應機制進行了優化實現。在“龍騰 R2”微處理器的原型驗證平臺上用VxWorks操作系統對設計進行了驗證仿真,結果說明,改進之后在不降低處理器頻率僅增加少量單元的情況下,中斷響應速度是原來的3.5倍,中斷返回速度是原來的2.6倍。

參考文獻:

[1]JAMES E S,ANDREW R P.Implementation of precise interrupts in pipelined processors[C]//Proc of the 12th Annual International Symposium on Computer Architecture (ISCA’85).[S.l.]:[s.n.],1985:36-44.

[2]JEAN J L.μC/OS-II,the real-time kernel[M].2nd edition.[S.l.]:RD Technical Books,2002.

[3]黃小平,樊曉椏,賈琳,等.“龍騰R2”微處理器流水線的設計與優化[J].微電子與計算機,2006,23(2):144-147.

[4]Freescale Semiconductor Inc . MPC750 RISC microprocessor family user’s manual [K].[S.l.]:[s.n.],2001:181-205.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 国产00高中生在线播放| 亚洲av无码人妻| 欧美日韩免费在线视频| 国产在线八区| 亚洲无线一二三四区男男| 国内自拍久第一页| 四虎影视8848永久精品| 成年人福利视频| 国产一二视频| 国产剧情一区二区| 五月六月伊人狠狠丁香网| 亚洲自拍另类| 欧美日韩精品在线播放| 中文字幕资源站| 人妻无码一区二区视频| 免费无码又爽又刺激高| 亚卅精品无码久久毛片乌克兰| 精品国产乱码久久久久久一区二区| 国产一级二级在线观看| 亚洲第一在线播放| 人妻丰满熟妇αv无码| а∨天堂一区中文字幕| 自慰高潮喷白浆在线观看| 国产精品不卡片视频免费观看| 精品无码专区亚洲| 福利视频99| 久久9966精品国产免费| 狂欢视频在线观看不卡| 日本高清视频在线www色| 极品av一区二区| 亚洲码一区二区三区| a毛片免费看| 欧美精品一区在线看| 激情在线网| 亚洲综合色婷婷| 亚洲系列无码专区偷窥无码| 永久在线播放| 国产日韩精品欧美一区喷| 大陆国产精品视频| 中文字幕佐山爱一区二区免费| 在线欧美日韩国产| 亚洲日韩久久综合中文字幕| 国产另类乱子伦精品免费女| 91精品人妻一区二区| 久久九九热视频| 久久婷婷色综合老司机| 国产全黄a一级毛片| 潮喷在线无码白浆| 精品无码视频在线观看| 久久频这里精品99香蕉久网址| 国产精品亚洲精品爽爽| 精品一区二区三区中文字幕| 久久久久国色AV免费观看性色| 日韩第八页| 在线看AV天堂| 少妇高潮惨叫久久久久久| 色综合久久88| 日本黄色a视频| 国产精品网曝门免费视频| 国产永久无码观看在线| 国产乱子精品一区二区在线观看| 污网站在线观看视频| 久久精品人妻中文系列| 国产菊爆视频在线观看| 2048国产精品原创综合在线| 国产一二三区视频| 99热这里只有精品2| 波多野结衣视频网站| 欧美日韩中文字幕在线| 99久久国产自偷自偷免费一区| 91精品啪在线观看国产91| 久久精品午夜视频| 国产欧美日韩视频一区二区三区| 无码一区18禁| 久久99热66这里只有精品一| 2019年国产精品自拍不卡| 久久这里只精品国产99热8| 波多野结衣一区二区三区四区视频 | 99久久精品无码专区免费| 欧美成人精品高清在线下载| 亚洲一级无毛片无码在线免费视频 | 国产人妖视频一区在线观看|