摘 要:在嵌入式技術中,流水線結構提高了數據處理能力,但流水線級數的增加會削弱指令的執行效率。為了研究如何更好地解決這種影響,通過對流水線結構性能和級數影響的分析,結合ARM11處理器所使用的技術管理,特別是預測技術和管理機制的運用,闡述了系統性能在保證高效的同時,還能保持相當好的有效性。這也開拓了在嵌入式技術開發中合理利用資源的思路。
關鍵詞: 流水線級數; 預測技術; 存儲管理; 并行機制
中圖分類號:TN40; TP391 文獻標識碼:A
文章編號:1004-373X(2010)14-0171-02
Research about Increase of Pipeline Series in ARM11 Processor
ZHANG Xiao-dong
(Taizhou Branch, Jiangsu Broadcasting Television Network Corp. Ltd., Taizhou 225300, China)
Abstract: The data processing ability of embedded technology can be improved by the pipeline architecture in ARM11 processor, but the increase of pipeline series can weaken directive execution efficiency. In order to eliminate the effect, the impact of the pipeline structure performance and series is analyzed. In combination with technology management used in ARM11 processor, especially the application of the prediction technology and its management mechanism, the importance of system performance which can not only ensure the high efficiency but also maintain the effectiveness is described
Keywords: pipeline series; predictive technology; storage management; parallel mechanism
流水線是 RISC 執行指令時采用的一種重要機制。在流水線既要能達到更高的性能,還要讓客戶更方便地實現流程。ARM11系列微處理器是世界上最流行的嵌入式處理器,廣泛應用于個人通信等嵌入式領域。ARM11處理器正是采用了易于綜合的流水線技術(pipelining),保證了數據處理流程高效、迅速地時序收斂。隨著流水線級數的增加,系統性能越來越高,進一步地提高執行效率[1]。
1 流水線結構的性能
系統在處理數據時,1個指令周期含有4~6個時鐘脈沖,每個脈沖周期由不同的部件完成不同的操作。流水線結構,是指每個時鐘脈沖都接收下一條處理數據的指令只是不同的部件做不同的事情,流水線處理器一般把一條指令的執行分成幾個級(stages),每一級在1個時鐘周期內完成。如果處理器的流水線有k級,則同時可重疊執行的指令總條數為k,每條指令處于不同的執行階段[2]。
設Tk為流水線所用的時間,Ts為不使用流水線所用的時間,流水線各段時間相等為Δt,當一條流水線完成n個連續任務時,實際加速比S=Tk/Ts=nk/k+n-1,在理想情況下的性能加速比[3](speedup)為Smax=lim S=k(nk)。
那么,得出的結果是加速比等于k(級數)。從中可以看出,性能和級數成正比,隨著級數增加,處理器性能也不斷提高。
2 流水線級數的影響
ARM7采用3級流水線,ARM9采用5線流水線,ARM10采用6級流水線,ARM11處理器的流水線和由8級流水線組成,比以前的ARM內核提高了至少40%的吞吐量。8級流水線可以同時執行8條指令。
從通常的角度說,隨著流水線深度的增加,處理器性能得到提高,而使處理指令的吞吐量也提高了。但當出現多周期指令、跳轉分支指令和中斷發生時,流水線都會發生阻塞,而且相鄰指令之間也可能因為寄存器沖突導致流水線阻塞,降低流水線效率。同時隨著系統時鐘頻率的增加,指令執行周期也相應減少,對硬件設計要求很高,而且在內核執行1條指令前,需要更多的周期來填充流水線[4]。
ARM 流水線的一條指令只有在完全通過“執行” 階段才被處理。如果隨后的指令需要用到前面指令的執行結果作為輸入,它就需要等到前面指令執行完,即暫時停止相關指令的執行(跳轉指令),等到相關數據能從寄存器讀出再恢復執行。這樣,系統延時 (latency) 也增加了。流水線級數的增加往往會削弱指令的執行效率,容易造成數據沖突。
3 ARM11處理器中的流水線管理
為了解決這種延遲,避免流水線中的這種數據沖突(data hazards),讓前面指令執行的結果能夠快速進入到后面指令的流水線中,ARM11處理器采用了預測技術、存儲管理、并行機制等技術來保持最佳的流水線效率。ARM11 mpcore的結構示意如圖1所示。
圖1 ARM11 mpcore的結構示意圖
3.1 對跳轉做出預測與管理
對跳轉的預測分為2種:動態預測和靜態預測。
動態預測在ARM11處理器中包含了64個4狀態(采用2 b轉移預測)跳轉地址緩存器來保存最近使用過的轉換地址。通過對這些轉換地址紀錄的尋查,處理器就可以預測出當前的跳轉指令是否會被執行。
靜態預測當采用動態轉換預測機制而無法在尋址緩沖內找到正確的地址時,ARM11處理器就從跳轉的方式來判斷是否執行。靜態預測檢查分支是向前跳轉還是向后跳轉如果是向前跳轉,處理器會假設這條指令不被執行。如果是向回跳轉,處理器會假設這條指令被執行。
在實際測試中,單純采用動態預測的準確率為88%,單純采用靜態預測機制的準確率只有77%,而ARM11的靜/動態預測組合機制可實現92%的高準確率。對于每一個正確的預測,給指令執行帶來的是減少5個時鐘周期的等待時間[5-6]。
從動態到靜態的預測,ARM11通過對跳轉的方式的分析,進行邏輯判斷,對未來做出預測,使有限資源得到優化配置和利用。
3.2 存儲管理
在ARM11處理器中,指令和數據可以更長時間的被保存在CACHE中。由于物理地址CACHE本身的存在,使數據交換避免了反復重載CACHE。而且,當數據的訪問引起了CACHEMiss時,CACHE將進行預取,到存儲器相應的塊中讀取需要的數據。只要后面的指令沒有用到CACHE Miss將讀回來的數據,ARM11處理器流水線就會繼續執行下去。即使下一條指令還是存儲器訪問指令,只要數據存放在CACHE中,ARM11也會允許這條指令被執行[7-9]。
3.3 流水線的并行機制
在流水線的后端使用了3個并行部件結構,ALU,MAC (乘加),LS(存取)。LS流水線是專門用于處理存取操作指令把數據的存取操作與數據算術操作的藕合性分隔開來可以更有效地執行指令
一旦指令被解碼,將根據操作類型發射到不同的執行單元中。考慮到不同的指令需要不同的執行時間,當3類指令先后被發射到流水線中,ALU或者MAC指令不會由于LS指令的等待而停止下來,它們可以同時被執行,即取指、譯碼和執行等操作可以重疊執行。而且ARM11處理器允許指令的亂序完成(out of order completion),如果在指令之間沒有數據的相關性,所有指令都可以不必等待前面的指令完成而結束自己的執行[10]。
4 結 語
通過技術和機制上的進一步改進,ARM11處理器改善了因為級數增加帶來的影響,使系統性能在保證優化到更高的流水線吞吐量的同時,還能保持與以前版本處理器中的流水線一樣的有效性。
在進行嵌入式開發中,運用技術預測,確定研發重點,合理利用資源,有助于找出新的思路和方法。
參考文獻
[1]李駒光,聶雪媛,江則明,等.ARM應用系統開發詳解[M].北京:清華大學出版社,2003.
[2]蔡治,李丕銀,劉宏生,等.基于ARM核的嵌入式應用系統中的啟動代碼的編程[J].電子科技,2005(6):52-55.
[3]張晨曦,王志英.計算機系統結構[M].北京:高等教育出版社,2008.
[4]馬忠梅.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002.
[5]胥靜.嵌入式系統設計與開發實例詳解:基于ARM的應用[M].北京:北京航空航天大學出版社,2005.
[6]田澤.嵌入式系統開發與應用[M].北京:北京航空航天大學出版社,2005.
[7]趙剛,周瑞車,卓仁前,等.32位ARM嵌入式系統開發技術[M].北京:電子工業出版社,2008.
[8]周立功.ARM微控制器基礎與實戰[M].北京:北京航空航天大學出版社,2003.
[9]李劍,趙鵬程,湯建彬.32位ARM嵌入式處理器的調試技術[J].電子技術應用,2003,29(3):25-27.
[10]劉林山,鄭愛紅.帶ARM核的嵌入式微處理器技術特點分析與應用研究[J].工業控制計算機,2005,18(11):52-53,55.
[11]郭菾,林知明,郭云.基于ARM微處理器和μClinux的串行通信的設計與實現[J].微計算機信息,2005(3):162-163.