當前位置:首頁 > 單片機 > 單片機
[導讀]1 引言 在RISC CPU的設計當中,轉移指令的處理對處理器的性能的影響非常關鍵。轉移指令決定著程序的執(zhí)行順序,在程序中的使用頻率很高。RISC CPU中程序是以流水線的方式執(zhí)行的,當程序順序執(zhí)行時,下一條指令的地

1 引言

RISC CPU的設計當中,轉移指令的處理對處理器的性能的影響非常關鍵。轉移指令決定著程序的執(zhí)行順序,在程序中的使用頻率很高。RISC CPU中程序是以流水線的方式執(zhí)行的,當程序順序執(zhí)行時,下一條指令的地址與前一條指令的內容無關 ;而在執(zhí)行轉移指令時要根據轉移指令的執(zhí)行結果來確定下一條指令的地址,也就是說下一條指令的地址在轉移指令執(zhí)行之前是未知的,造成流水線的不連貫,影響了CPU的效率。

轉移指令處理的方法很多,可分為預測法和非預測法,預測法又包含靜態(tài)預測和動態(tài)預測,靜態(tài)預測如總預測跳轉、正向不跳轉反向跳轉,動態(tài)預測如2比特計數器(2BC) 、BTC;非預測法如延時跳轉等[1]。這些基本方法合理組合之后可以得到很好的效果。

本文介紹的RISC CPU對轉移指令的處理方法,為5級流水線作業(yè),分別是取指、譯碼、執(zhí)行、訪存、回寫,對轉移指令的處理在取指級和譯碼級完成;譯碼級給出轉移指令所包含的詳細信息,取指級包含有地址計算單元,轉移目標Cache (BTC),跳轉判斷單元等。對轉移指令的處理使用了延時跳轉、2BC以及BTC方法。

2 轉移指令的原理

該RISC CPU的指令集中包含有條件轉移指令和非條件轉移指令。所有的轉移指令均使用延時轉移,每條轉移指令后面跟隨一條延時槽指令;采用2BC預測條件轉移是否跳轉,而BTC則保存轉移目標為固定地址的轉移指令執(zhí)行后的信息。以下分別介紹在該RISC CPU設計中轉移指令的設計以及延時轉移、BTC、2BC的具體實現方法。

2.1 轉移指令類型及格式

該RISC CPU的指令集中包含條件轉移指令(BCC)和非條件轉移指令(CALL和RET),其編碼格式為圖1所示。CALL指令包含2位的操作碼和30位的絕對地址。BCC指令包含8位操作碼, 4位條件碼(Condition Code),19位偏移量以及1位用來區(qū)分指令是否帶A參數(即ANNUL操作)。所有的BCC指令使用相同的操作碼,不同的BCC指令用條件碼來區(qū)分,共有16類BCC指令;偏移量為帶符號數,在低位用00擴展后可以對±220的相對地址尋址。RET指令包含8位的操作碼和兩個5位的寄存器地址。


2.2 延時轉移

在該RISC CPU中,由于轉移指令只有在譯碼級才被識別,跳轉與否在譯碼級才能決定,因此在取下一條指令之前必須等待一個時鐘周期。為了減少流水線中的氣泡,緊跟轉移指令后面插一條與跳轉不相關的指令,即延時槽指令,不管跳轉是否發(fā)生,該指令都執(zhí)行。延時槽指令的插入由編譯器完成,當編譯器找不出這樣的指令時,就插一條NOP指令??紤]到減輕編譯器的難度,我們也采用了帶 A參數的轉移:當指令帶有A參數時,延時槽指令從轉移目標程序中取出,因此轉移發(fā)生時,延時槽指令執(zhí)行,而轉移不發(fā)生時,則禁止延時槽指令進入譯碼級。因一般而言非條件轉移指令出現的頻率遠低于條件轉移指令出現的頻率,非條件轉移指令的延時槽指令相對來說容易找到,所以非條件轉移指令不采用A參數選項,而條件轉移指令采用A參數選項。

2.3 2BC與BTC的設計

2BC與BTC對提高轉移指令的執(zhí)行效率起重要的作用。在RISC CPU中,轉移指令執(zhí)行一次后,有很大的概率會執(zhí)行更多次。對于轉移目標為固定地址的轉移指令(BCC和CALL),在其第一次執(zhí)行時使用BTC存儲相關的信息,當再次執(zhí)行時,直接讀出這些信息,控制程序的執(zhí)行順序,而不需要轉移指令本身進流水線。這可大大提高效率,但對于轉移目標不確定的間接轉移指令(如RET),BTC是無效的。另外,條件轉移指令(BCC)是否跳轉也是不確定的,本設計中采用2BC進行預測。

BTC為全相聯Cache,總共有16個單元,每個單元包含的信息有:TAG存儲執(zhí)行過的轉移指令的地址、DI存儲延時槽指令、CC存儲條件碼、TP 存儲轉移指令類型、AN存儲A參數攜帶標志,HI存儲轉移執(zhí)行情況的歷史記錄,即2BC,VI指示行數據是否有效。BTC包含BTC存儲、BTC命中以及BTC檢查三種工作任務。以下分別介紹2BC以及每種任務下BTC的工作情況?!?

2.3.1 2BC的作用及工作原理

因為轉移指令執(zhí)行一次之后,轉移目標地址、延時槽指令都保存在BTC中了,當該指令再次執(zhí)行時,這些信息就直接從Cache讀出,因此在取指級就可以得到跳轉目標地址和延時槽指令。對于非條件轉移指令,跳轉總是執(zhí)行,因此BTC命中時就可以直接決定下一條指令的地址為轉移目標地址,而當前周期DI被送到指令總線上;但對于條件轉移指令,跳轉與否是根據條件碼和ALU的標志位來決定的。如果轉移指令前面一條指令的執(zhí)行結果改變標志位,而當BTC命中時該指令還在譯碼級,則跳轉與否需要等待一個時鐘周期才能決定。為了避免因為等待而造成流水線的停頓,采用2BC當前的狀態(tài)預測跳轉是否執(zhí)行,在接下來的時鐘周期,標志位有效之后,再檢查預測是否正確,如果不正確,就進行更正。當預測準確時,采用2BC 與BTC可以使轉移指令的執(zhí)行時間縮短一個周期。即使預測不準確,與不采用預測相比也不會有損失。2BC的工作原理如圖2所示,初始值為Nx(第一次不跳轉執(zhí)行)或Tx(第一次跳轉執(zhí)行),t表示跳轉執(zhí)行,n表示跳轉不執(zhí)行。當HI為N或Nx時,預測跳轉不發(fā)生;當HI為T或Tx時,預測跳轉發(fā)生。


 

2.3.2 BTC存儲

當轉移指令第一次執(zhí)行時,BTC在當前時鐘啟動存儲任務,把該指令執(zhí)行的信息寫入對應的單元中,對于BCC指令,確定2BC的初始狀態(tài)。同時也把該行的VI置為有效。BTC采用隨機替換策略確定數據入口:在復位或Cache清零之后,按順序填充Cache,如果BTC寫滿,則隨機選通一行進行替換。

2.3.3 BTC命中

在取指周期開始時如果發(fā)現當前取指地址包含在BTC的TAG中,并且對應行的VI也有效,則認為BTC命中,從而啟動命中任務:讀出命中行的數據,把DI送到指令總線,如果是CALL指令,轉移目標地址作為下一條指令的地址;如果是BCC 指令則需要判斷跳轉是否發(fā)生:當標志位有效時,根據條件碼與標志位判斷,否則根據HI進行預測,然后確定下一條指令的地址:跳轉時為轉移目標地址,不跳轉為PC+2。對于帶A參數的BCC指令,在跳轉不執(zhí)行時,要禁止DI在下一時鐘進入譯碼級。BTC命中的流程如圖3。


2.3.4 BTC檢查

如果前一周期BTC命中,則在當前周期開始時啟動BTC檢查任務;如果前一周期BTC是根據HI預測BCC的跳轉,那么在當前時鐘標志位有效后,要重新判斷跳轉決定是否正確,如果不正確就要進行更正,給出正確的取指地址,請求在下一時鐘禁止譯碼級或執(zhí)行級。同時還要根據最終的跳轉情況和HI的更新算法更新HI。BTC檢查的流程圖如圖4。


3 結論

整個RISC CPU用Verilog HDL語言進行了描述,并針對標準程序進行了仿真,仿真結果表明,采用上述方法處理轉移指令可以明顯提高流水線的吞吐率。由于在轉移指令后面插入了延時槽指令,轉移指令的執(zhí)行與程序順序執(zhí)行時完全相同; BTC的使用雖然在硬件上增加了一些開銷,但使轉移指令再次執(zhí)行時基本不占用流水線資源,大大提高了CPU的效率

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉