新四季網

擴展處理器寄存器堆容量的方法

2023-06-01 00:54:46

擴展處理器寄存器堆容量的方法
【專利摘要】本發明公開一種擴展處理器寄存器堆容量的方法,主要為了解決寄存器容量受限的問題。所述方法包括:判斷指令為條件執行還是非條件執行,若指令為條件執行且條件是AL,則選擇擴展的寄存器堆S1;若指令為非條件指令,則選擇擴展的寄存器堆S0;若指令為條件指令,但條件不是AL,則選擇擴展的寄存器堆S0。本發明針對支持條件執行的指令集,不需要對原指令集做任何的修改,對原處理器的應用程式能夠完全兼容。
【專利說明】擴展處理器寄存器堆容量的方法

【技術領域】
[0001]本發明涉及一種擴展處理器寄存器堆容量的方法。

【背景技術】
[0002]傳統的計算機層次存儲系統採取寄存器和高速緩存橋接於ALU和存儲器之間,成功地解決了存儲器的訪問速度與處理器的計算速度不匹配的問題。其中,寄存器可以和ALU之間進行快速的通訊,為ALU提供操作數並保存計算結果。
[0003]現在的處理器體系結構設計中多採用流水線技術,以典型的5級流水線RISC處理器的設計為例,在取指階段,根據程序計數器的值從指令存儲器中讀取指令,並存入指令寄存器中,同時計算下一條指令的地址;在解碼階段,對指令進行解碼,並從寄存器堆讀取源操作數,如果是跳轉指令,則在這一階段將跳轉的地址寫入程序計數器;在指令執行階段,對上一階段獲取的操作數進行運算,根據指令的類型,可實現不同的功能,如果是load/store指令,則在這一階段計算存儲器存取的地址;訪問存儲器階段,主要針對load/store指令完成對存儲器的訪問;寫回階段,將ALU的計算結果或者是訪存的結果寫回寄存器堆。
[0004]在不同的設計中,處理器完成的工作大致相同,只是因上敘述過程的細化程度不同,帶來流水線的深度的不同。總體而言,處理器在指令解碼和寫回兩個階段訪問了寄存器堆,每周期訪問寄存器的數量又因指令所需操作數的不同而不同。
[0005]隨著對處理器的性能要求越來越高,僅僅依靠流水線技術已經無法滿足要求。提高處理器性能最根本的辦法是提高指令級並行,也就是使處理器在同一周期處理儘量多的指令。現在的技術可以將指令級並行提高到8甚至更高,而每條指令也可能訪問多個寄存器。這樣的處理器需要更多的寄存器為其提供足夠操作數進行運算。
[0006]寄存器的數量受到指令集的限制。如今比較常見的RISC指令集有16位,32位和64位,當指令編碼中有N位作為寄存器索引時,最多可以訪問2的η次方個寄存器。在這些寄存器中,除去程序計數器,棧指針寄存器,連結寄存器等不能任意修改的寄存器,程式設計師可以使用的寄存器數量更加有限。
[0007]目前,提高指令並行度的手段主要是超標量和超長指令字。超標量的方法通過犧牲硬體複雜度的方式一定程度上緩解了對大量寄存器的需求,而超長指令字方法,由於是依賴編譯器靜態進行指令調度,其所需要寄存器的數量也是靜態可見的,這種方法對寄存器的需求量更大。常見的超長指令字架構的處理器多擁有獨立設計的指令集,並在設計中提供足夠的寄存器堆容量。而在已有指令集的基礎上擴展寄存器堆容量的常見方法也都需要對指令集進行一定的修改,增加寄存器堆配置指令等相關指令。


【發明內容】

[0008]針對上述問題,本發明提供一種在不改變指令集的前提下,利用指令集條件執行擴展處理器寄存器堆容量的方法。
[0009]為達到上述目的,本發明擴展處理器寄存器堆容量的方法,應用於支持條件執行的指令集,所述方法至少包括:
[0010]基於指令集中的指令是否為條件執行以及執行的條件,選擇相應的擴展寄存器堆,
[0011]當指令是條件執行且條件為AL時,選擇擴展寄存器堆SI ;
[0012]當指令是非條件執行或除AL以外其他條件執行時,選擇擴展寄存器堆S0。
[0013]進一步地,所述方法還包括確定是否使用擴展寄存器S0、SI的步驟。
[0014]本發明擴展處理器寄存器堆容量的方法,從一個全新的角度解決寄存器容量受限的問題,提出了一種在不改變指令集的前提下,利用指令集條件執行擴展處理器寄存器堆容量的方法。優點是不需要對原指令集做任何的修改,對原處理器的應用程式能夠完全兼容。

【專利附圖】

【附圖說明】
[0015]圖1是本發明條件執行中,以AL為執行條件的指令編碼;
[0016]圖2是本發明非條件執行的指令編碼;
[0017]圖3為本發明擴展後的寄存器組織結構。

【具體實施方式】
[0018]下面結合說明書附圖對本發明做進一步的描述。
[0019]本發明所述的方法針對支持條件執行的指令集(例如ARM指令集或者與ARM指令集有相似編碼特性的指令集),指令可以條件執行,也可以非條件執行。在條件執行中,條件AL (always)表示永遠執行,這與非條件執行的結果是相同的,但是這兩種指令的指令編碼卻並不相同。
[0020]利用這一特點,將條件執行的AL條件作為寄存器堆的選擇信息,當指令是非條件執行或除AL以外其他的條件執行時,選擇寄存器堆SO ;當指令是條件執行並且條件是AL時,選擇擴展的寄存器堆SI,同時,該寄存器堆不再支持其他的條件執行。這樣,在不改變指令功能的前提下,擴展了寄存器堆容量。
[0021]需要時,通過Load/Store指令在兩個寄存器堆之間進行數據交換。
[0022]用戶在使用時,通過預先選擇設定工作模式為使用擴展寄存器或不使用擴展寄存器。
[0023]使用擴展寄存器的情況下,所述的擴展處理器寄存器堆容量的方法,至少包括:
[0024]基於指令集中的指令是否為條件執行以及執行的條件,選擇相應的擴展寄存器堆,
[0025]當指令是條件執行且條件為AL時,選擇擴展寄存器堆SI ;
[0026]當指令是非條件執行或除AL以外其他條件執行時,選擇擴展寄存器堆S0。也即當指令為非條件指令,則選擇擴展的寄存器堆SO ;若指令為條件指令,但條件不是AL,則選擇擴展的寄存器堆S0。
[0027]以某32位指令集為例,該指令集的大部分指令都支持條件執行,指令編碼的前4位是指令的條件執行位。0X0000?0X1110分別表示15種執行條件,其中,0X1110表示條件AL,如圖1所示。在此條件下,指令永遠會被執行,這與非條件執行的結果是一致的。而非條件執行的指令編碼前4位為0X1111,如圖2所示。
[0028]該指令集的指令編碼中有4位作為寄存器的索引信息,則寄存器堆一共包含16個寄存器。如圖3所示,其中有部分寄存器在子程序調用過程中,由主程序負責保存,用於在調用和被調用程序之間傳遞參數。有部分寄存器用作特殊功能寄存器,比如程序計數器,棧指針寄存器,連結寄存器等,這些寄存器是程式設計師不能任意修改的。其他的寄存器可以由程式設計師任意使用,在子程序調用過程中,由被調用程序負責保存,擴展的寄存器堆SO和擴展的寄存器堆SI與這一部分相對應。
[0029]利用條件執行的AL作為寄存器堆的選擇信息。即當指令編碼的前4位為0X1110時,選擇寄存器堆Si,否則,選擇寄存器堆so。也就是說,原本是非條件執行的指令,我們可以通過簡單地加上AL條件,就可以使用擴展的寄存器堆SI,這不會對指令的功能產生任何的影響。下面是一段彙編程序的示例,在使用擴展寄存器堆的模式下,當指令的末尾加上條件AL時,使用擴展的寄存器堆SI,其餘的指令則使用擴展的寄存器堆S0。這樣,在功能單元充足的條件下,可以再同一個周期內執行更多的指令,從而提高程序的指令效率。
[0030].L8:
[0031]Idr r4 [r0#-4]
[0032]Idr r9 [r3 rl]
[0033]ldral j4[r0#-4] //使用寄存器堆 SI
[0034]ldral j9[r3 rl] //使用寄存器堆 SI
[0035]mu I r7 r8 r4
[0036]mu I r6 r5 r9
[0037]add r2 r2 si
[0038]mulal j4 j5 j4 //使用寄存器堆 SI
[0039]mulal jlO j8 j9 //使用寄存器堆 SI
[0040]cmp r2 32
[0041]Idr rll [r3#-4]
[0042]rsb r6 r6 r7
[0043]ble.L8
[0044]以上,僅為本發明的較佳實施例,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以權利要求所界定的保護範圍為準。
【權利要求】
1.一種擴展處理器寄存器堆容量的方法,應用於支持條件執行的指令集,其特徵在於,所述方法至少包括: 基於指令集中的指令是否為條件執行以及執行的條件,選擇相應的擴展寄存器堆, 當指令是條件執行且條件為AL時,選擇擴展寄存器堆SI ; 當指令是非條件執行或除AL以外其他條件執行時,選擇擴展寄存器堆SO。
2.根據權利要求1所述的擴展處理器寄存器堆容量的方法,其特徵在於:所述方法還包括確定是否使用擴展寄存器SO、SI的步驟。
【文檔編號】G06F12/08GK104461939SQ201410785020
【公開日】2015年3月25日 申請日期:2014年12月16日 優先權日:2014年12月16日
【發明者】侯毓敏, 何虎 申請人:清華大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀