具有分支控制的數據處理系統及其方法
2023-06-24 02:00:16
專利名稱:具有分支控制的數據處理系統及其方法
技術領域:
本發明一般涉及數據處理,更確切地說,涉及具有優化分支控制的數據處理系統及其方法。
由於廣泛使用可攜式和手持應用裝置,所以低功率設計技術在微處理器和微控制器設計中越來越重要。以上應用裝置需要長電池壽命和低系統成本。可攜式應用裝置通常在兩種操作模式之間交替運行(i)猝發模式,在該模式中執行有效計算;和(ii)斷電模式(即睡眠模式),在該模式中系統睡眠等待出現新的計算事件。如果子系統(包括微處理器)僅僅消耗整個系統功耗的一小部分,則低成本和高性能就是子系統的設計目標。
長期以來,分支被認為是降低流水線處理機性能的主要因素。這是由於分支中斷了連續指令流這一事實。此外,通常僅能將分支深深轉化為執行流水線。廣泛採用諸如分支預測和推測執行之類的技術以降低分支的不利影響。不幸的是,這些技術通常需要大量硬體實現。其他的可選低成本方法需要改進有關分支的性能。
用於優化微處理器獲取的分支路徑的現有方法一直在使用。一種優化執行分支指令的現有方法叫作軟體循環迴繞。在編譯時,當已知某個特定循環將執行許多次時,產生軟體循環迴繞。軟體循環迴繞複製循環內的代碼,循環的迭代次數下降的倍數等於該代碼的複製次數。例如,如果在編譯時已知某個特定軟體循環將執行100次,則可以放置兩份迴繞循環內包含的代碼,並且僅需執行實際分支50次。然而,儘管這種技術能夠節省每次迭代的周期,但是創建了更大的靜態程序長度。
另一種眾所周知的優化分支處理的現有技術使用專用循環指令。將現有技術專用循環指令設計為在單一指令內出現分支和遞減(或遞增)循環計數。因此,每次迭代節省一個時鐘周期。然而,每條專用循環指令需要唯一指令操作碼。因此,儘管使用專用分支指令能夠在每次迭代中節省一個時鐘周期,但其實現是以較大指令集為代價的。
另一種現有技術方法合併循環模式與專用循環指令。循環模式為一條指令,該指令表示上一條指令需要重複指定次數。這種實現避免獲取需要順序執行許多次的指令。然而,這種技術需要存在專用循環指令,並且循環體只能包含一條指令。
因此,需要一種更通用的分支處理方法,該方法能夠將執行程序循環所需的時鐘周期數降到最低。
圖1表示短反向分支(SBB)指令的指令格式。
圖2表示短正向分支(SFB)指令的指令格式。
圖3表示循環尾含有一條SBB的程序循環。
圖4以框圖的形式表示根據本發明的數據處理系統。
圖5以框圖的形式表示圖4的CPU 12。
圖6以部分框圖和部分邏輯圖的形式更詳細地表示圖5的地址生成單元30。
圖7以部分框圖和部分邏輯圖的形式更詳細地表示圖5的分支控制34。
圖8表示用於描述分支控制34的狀態機的操作的部分狀態圖。
圖9表示根據本實施方式的圖4的數據處理系統的各種信號的定時圖。
圖10表示含有一個SBB和一個SFB的程序循環。
圖11以部分框圖和部分邏輯圖的形式表示另一實施方式的圖5的分支控制34。
圖12表示根據本實施方式採用另一實施方式的圖4的數據處理系統的各種信號的定時圖。
圖1表示短反向分支指令(記為SBB)的指令格式。圖2表示短正向分支指令(記為SFB)的指令格式。SBB和SFB為條件或無條件PC相關分支指令。可以將不同分支指令(具有不同操作碼)統稱為SBB指令集或SFB指令集。
可以將以上指令劃分為兩個欄位(i)操作碼,操作碼確定分支的類型;和(ii)分支位移-為形成分支目標地址而添加到程序計數器(PC)的位移。對於SBB指令集而言,分支位移具有前導1,前導1表示該指令具有一個負的分支位移,當添加到PC中時,產生反向分支目標。同樣,對於SFB指令集而言,分支位移具有前導0,前導0表示該指令具有一個正的分支位移。
可以將分支位移欄位進一步劃分為兩個欄位(i)高位移欄位,記為UD;和(ii)低位移欄位,記為LD。對於SBB而言,高位移欄位全為1,對於SFB而言,高位移欄位全為0。在某個實施方式中,SBB的LD欄位與SFB的LD欄位的寬度相同,即同為w位寬。根據定義,一條SBB具有有限的反向分支距離,用2w表示,其中w為LD欄位的寬度。同樣,一條SFB具有有限的正向分支距離,用2w表示。
圖3表示循環尾含有一條SBB指令的程序循環。SBB指令位於地址ASBB。SBB指令之後的指令表示位於地址AFT的失敗指令(IFT)。同樣,指令IFT之後的指令為位於地址AFT+1的指令IFT+1。
圖4以框圖的形式表示根據本發明之某一實施方式的數據處理器10。在某個實施方式中,數據處理器10包括一個中央處理機(CPU)12,存儲器14,總線接口組件16,以及其他組件18,這些部件利用總線20相互雙向連接。可以利用外部總線26將總線接口組件16外連接到數據處理機10。利用一個或多個集成電路終端28可選地將其他組件18外連接到數據處理機10。利用一個或多個集成電路終端24可選地將存儲器14外連接到數據處理機10。利用一個或多個集成電路終端22可選地將中央處理機12外連接到數據處理機10。
仍然參照圖4,本發明的其他實施方式可以使用任意結構類型的數據處理機10。此外,數據處理機10可以完成各種各樣的操作。例如,數據處理機10可以使用RISC(精簡指令集計算機)體系結構,可以使用Harvard體系結構,可以為向量處理機,可以為SIMD(單指令多數據流)處理機,可以進行浮點算術運算,可以進行數位訊號處理計算等。
圖5以框圖的形式表示根據本發明的CPU 12。CPU 12包括地址生成單元30,控制單元32,指令寄存器(IR)36,多路復用器38,失敗指令寄存器(IRFT)40,指令解碼器42,執行單元44,數據輸入緩衝器46和數據輸出緩衝器48。控制單元32包括分支控制34。
將存儲器14連接到地址總線以接收標記為「地址」的地址,並將存儲器14連接到數據總線以接收和提供標記為「數據」的數據。存儲器14可以為任意類型的常規存儲器,包括諸如靜態隨機存取存儲器(SRAM)和動態隨機存取存儲器(DRAM)之類的易失性存儲器,或諸如電可編程只讀存儲器(EPROM)和閃爍存儲器之類的非易失性存儲器。此外,存儲器14可以與CPU 12在同一塊集成電路上或者位於CPU 12的外部。地址生成單元30具有第一眾多輸入終端、第二眾多輸入終端和眾多輸出終端,第一輸入終端從執行單元44接收標記為「操作數地址」的操作數地址,第二輸入終端從指令寄存器36接收分支位移欄位,輸出終端向存儲器14提供地址信號「地址」。控制單元32利用標記為「控制」的控制信號控制地址生成單元和存儲器14。
多路復用器38具有第一眾多輸入終端、第二眾多輸入終端和眾多輸出終端,第一輸入終端從數據輸入緩衝器46接收指令,第二輸入終端與失敗指令寄存器(IRFT)40的輸出終端相連,輸出終端提供來自數據輸入緩衝器46中的指令或寄存器40中存儲的失敗指令。分支控制34提供控制信號,以便控制指令寄存器36、多路復用器38以及失敗指令寄存器40的操作。
數據輸入緩衝器46從存儲器14接收數據,並且向執行單元44提供緩衝數據和/或向多路復用器38的第一眾多輸入終端提供指令。數據輸出緩衝器48從執行單元44接收輸出數據,並提供將要寫入存儲器14中的數據。利用控制單元32提供的控制信號控制數據輸入緩衝器46和數據輸出緩衝器48。
將指令解碼器42連接到指令寄存器36以便接收指令。將指令解碼器42連接到執行單元44。將執行單元44連接到數據輸入緩衝器46以便從存儲器14接收數據。同樣,將執行單元44連接到數據輸出緩衝器48以便向存儲器14提供數據。執行單元44選擇執行經指令解碼器42解碼的指令,並將結果提供給數據輸出緩衝器48或地址生成單元30。例如,執行單元44可以包括算術與邏輯部件(ALU)。
將控制單元32連接到指令寄存器36以便接收指令,並且作為響應,提供標記為「控制」的控制信號以便控制地址生成單元30和存儲器14的操作。將控制單元32連接到指令解碼器42和執行單元44。執行單元44向控制單元32提供條件代碼信息。
數據處理系統10以4級流水線的形式執行指令。4級流水線包括取階段、解碼階段、執行階段和回寫階段。在取指令階段中,從存儲器(例如從存儲器14)中檢索一條指令。隨後在指令解碼器42中對該指令進行解碼。經過解碼的指令被提供給執行單元44並控制執行單元44的操作。然後執行單元44經過數據輸出緩衝器48將指令的執行結果回寫到存儲器14中。
圖6以部分框圖和部分邏輯圖的形式更詳細地表示圖5的地址生成單元30。地址生成單元30包括地址多路復用器50,寄存器52,程序計數器54,目標地址寄存器58,加法器56,SBB地址寄存器60,多路復用器62,多路復用器64,加法器66和多路復用器68。地址多路復用器50具有第一眾多輸入終端,與加法器66的輸出終端相連的第二眾多輸入終端,與多路復用器68的輸出終端相連的第三眾多輸入終端以及與寄存器52的輸入終端相連的眾多輸出終端,其中第一輸入終端用於接收標記為「操作數地址」的地址。寄存器52具有眾多輸出終端,以便向程序計數器54的輸入終端和寄存器58的輸入終端提供標記為「地址」的地址信號。程序計數器54具有與加法器56的第一眾多輸入終端以及多路復用器62的第一眾多輸入終端相連的眾多輸出終端。加法器56將程序計數器54的輸出加「2」,並向多路復用器68的第二眾多輸入終端以及寄存器60的輸入終端提供輸出終端上的結果。由於指令寬度為兩個字節,所以將「2」加到程序計數器54中。請注意,儘管在所示實施方式中,將「2」加到程序計數器值中,但是具有不同指令寬度的其他實施方式將使用不同的數值。將標記為「ASBB」的寄存器60的輸出終端連接到多路復用器62的第二眾多輸入終端。多路復用器64具有第一眾多輸入終端和與指令寄存器36相連的第二眾多輸入終端,第一輸入終端接收「4」作為輸入,第二輸入終端接收指令的分支位移欄位。將「4」加到ASBB中從而可以向存儲器14提供AFT+1。 AFT+1是指令IFT+1的地址,指令IFT+1是SBB之後的兩條指令。在其他實施方式中,可以使用其他方法生成AFT+1。多路復用器64具有與加法器66的第二眾多輸入終端相連的眾多輸出終端。將標記為「分支地址」的加法器66的輸出終端連接到地址多路復用器50的輸入終端。
圖7以部分框圖和部分邏輯圖的形式更詳細地表示圖5的分支控制34。分支控制34包括一個狀態機(在該圖中未示出),LD寄存器70,多路復用器72,計數寄存器74,加法器76和比較器78。LD寄存器70具有眾多輸入終端以及與多路復用器72的第一眾多輸入終端相連的眾多輸出終端,輸入終端接收來自指令寄存器36的指令的分支位移欄位的較低位移位。多路復用器72還具有第二眾多輸入終端以及與加法器76的輸出相連的第三眾多輸入終端,其中第二輸入終端從指令寄存器36接收較低位移位。將標記為「計數」的多路復用器72的眾多輸出終端連接到計數寄存器74的輸入終端。將計數寄存器74的輸出終端連接到加法器76的第一眾多輸入終端。加法器76具有第二眾多輸入終端用於接收「1」。從控制單元32控制寄存器70、74以及多路復用器72。比較器78具有與多路復用器72的輸出相連的第一眾多輸入終端,用於接收「-1」的第二眾多輸入終端以及一個輸出,其中輸出用於向控制單元32提供標記為「採取預測」的循環尾信號。在其他實施方式中,可以使用其他方法,例如使用地址比較方法以生成採取預測信號。
圖8表示用於描述圖5的分支控制34的狀態機的操作的簡化狀態圖。分支控制34的狀態機具有兩種操作狀態。第一狀態,即空閒狀態40,表示未檢測到短反向分支(SBB)。一旦檢測到SBB,並且獲取了SBB,分支控制34的狀態機就退出空閒狀態40並進入活動狀態42。在某個實施方式中,當處於活動狀態時,如果檢測到另一SBB並獲取了該SBB,則狀態機將返回到空閒狀態。在另一實施方式中,當處於活動狀態時,如果檢測到另一SBB並獲取了該SBB,則狀態機將保持活動狀態。此時,將利用新遇到的SBB的LD欄位重新加載圖7的LD寄存器70和計數。當滿足以下兩條件之一時,即滿足(1)沒有取得所檢測到的SBB指令,其中SBB指令觸發從空閒狀態轉換到活動狀態;或(2)出現流程改變並且該改變並不是由觸發SBB引起時,狀態機將返回到空閒狀態。條件(1)對應於以下情況,即循環經過循環尾的SBB順序退出。條件(2)對應於以下情況,某一目的地可能在也可能不在該循環體內,而循環體內有流程改變。
圖9表示根據本發明的圖4的數據處理系統的各種信號的定時圖。現在將參照圖1至圖9,說明數據處理系統10的操作。
通常數據處理系統10執行從存儲器14中順序檢索的指令,直至遇到諸如分支指令之類的改變流程指令。圖9表示在連續時鐘周期中生成地址A0到A2。同時,在連續時鐘周期中檢索與各生成地址相對應的數據,例如,在周期2從存儲器中檢索與地址A0相對應的指令I0,在生成地址A1之後的周期3中檢索指令I1,等等。在時鐘周期4,向存儲器14發出與SBB指令相對應的地址,即ASBB。在時鐘周期6檢測SBB指令。作為對檢測到的SBB指令的響應,將目標地址,即地址A0加載到寄存器58中。同時,將失敗指令IFT加載到IRFT寄存器40中。IFT指令是靜態程序順序中緊跟SBB指令的指令。
正如圖9所示,在向存儲器14提供了各個地址以便檢索指令的半個時鐘周期後,在程序計數器54中鎖存該地址。請注意,時鐘周期3到時鐘周期7定義第一次迭代。在解碼階段進行SBB檢測。當發現需要在稍後的周期中獲取SBB時,控制單元32的狀態機就從空閒狀態轉換到活動狀態。同時,當檢測到SBB時,就從指令寄存器36中將低位移欄位LD加載到LD寄存器70(圖7)中。對於隨後執行的每一條指令,將圖4的計數(即循環值)加1。從比較器78向控制單元32提供循環尾信號採取預測(圖7)。當圖7的計數到達-1時,確認採取預測。
繼續該循環的第二次迭代,直至計數在時鐘周期9到達值-1。在時鐘周期9,當相對於控制單元32確認採取預測信號時,進行預測,結果從目標地址寄存器58中將目標地址A0加載到地址總線上,從而到達存儲器14。
同時,在時鐘周期9,程序計數器54包含地址A2。利用加法器56將該地址加2,產生結果為ASBB。隨後將以上結果地址加載到SBB地址寄存器60中。程序流程繼續通過第三次迭代直至進行另一次預測的周期12。再次從目標地址寄存器58中獲取地址A0並提供給存儲器14。正如該示例所示,在時鐘周期14的末端,確定該分支被錯誤預測。根據條件編碼的值以及分支的類型來確定某個分支被錯誤預測。當在周期14識別出一個錯誤預測時,已經獲取了指令I0並且對該指令進行了解碼。將先前加載到SBB地址寄存器60中的地址加4以產生結果AFT+1。隨後將以上結果地址加載到地址總線上,從而到達存儲器14。致使開始從地址AFT+1取指令,從而防止出現執行氣泡。恢復啟動錯誤預測後的一個時鐘周期,此時指令I0處於執行階段。I0的執行將被終止。在終止執行I0之後,作為對錯誤預測的響應,將指令IFT從IRFT40加載到指令寄存器36中。然後利用IFT繼續執行指令。同時,以上錯誤預測使圖8的狀態機從活動狀態轉換到空閒狀態。
通過在作為恢復周期(即周期15)的同一周期中同時向指令寄存器36提供指令IFT並發出地址AFT+1,實現了零周期錯誤預測損失。同時,請注意,在圖9中描述的循環的第一次迭代佔用5個周期。具有正確預測的第二次迭代僅佔用3個周期,比不採用摺疊分支的迭代正常佔用的周期少兩個周期。具有錯誤預測的第三次迭代佔用4個周期(不包括恢復周期,儘管在該周期中對IFT進行解碼)。
在上述實施方式中,當處於活動狀態時,如果有流程改變而此流程改變並不是由觸發從空閒狀態轉換到活動狀態的SBB造成的,並且流程改變的目標位於循環體內,則狀態機將退出活動狀態。儘管流程改變的目的地可能仍在循環體內,也會出現以上情況。為了克服以上限制,下面的實施方式提供增強分支摺疊處理技術。
圖10表示循環尾含有一個SBB的程序循環。它還在循環體內的位置A1包含一個SFB。SFB的目的地為A4,並且正向分支距離為+3。以下將聯合使用圖10和圖12,說明增強分支摺疊處理操作。
圖11以部分框圖和部分邏輯圖的形式更詳細地表示圖5的分支控制34。分支控制34包括一個狀態機(在該圖中未示出),LD寄存器94,多路復用器90,計數寄存器82,加法器80,比較器98,非負檢測器100,校正計數寄存器92和加法器96。寄存器94具有眾多輸入終端以及與多路復用器90的第一眾多輸入終端相連的眾多輸出終端,輸入終端接收來自指令寄存器36的指令的分支位移欄位的較低位移位。多路復用器90還具有第二眾多輸入終端,與加法器80的輸出相連的第三眾多輸入終端以及與校正計數寄存器92的輸出相連的眾多第四輸入終端,其中第二輸入終端從指令寄存器36接收較低位移位。將標記為「計數」的多路復用器90的眾多輸出終端連接到計數寄存器82的輸入終端。
將計數寄存器82的輸出終端連接到加法器80的第一眾多輸入終端。加法器80具有第二眾多輸入終端以便接收「1」。從控制單元32控制LD寄存器94、計數寄存器82、校正計數寄存器92以及多路復用器90。比較器98具有與多路復用器90的輸出相連並標記為「計數」的第一眾多輸入終端,用於接收「-1」的第二眾多輸入終端以及一個輸出,其中輸出用於向控制單元32提供標記為「採取預測」的循環尾信號。非負檢測器100具有與多路復用器90的輸出相連的眾多輸入終端以及一個輸出,其中輸出向控制單元32提供標記為「使無效」的信號。校正計數寄存器92具有與加法器96的輸出相連的眾多輸入終端。計數寄存器82具有與加法器96的第二眾多輸入終端相連並標記為「LATCH_CNT」的眾多輸出終端。在其他實施方式中,可以使用其他方法,例如使用地址比較方法,生成採取預測信號。
圖12表示根據增強操作的圖4的數據處理系統的各種信號的定時圖。現在將參照圖10至圖12,說明用於增強模式的數據處理系統10的操作。
在執行第一次迭代時,檢測到(在周期2)位於地址ASBB的一條SBB。將其低位移欄位加載到圖11的計數中。發現需要在隨後的周期內獲取SBB。狀態機在同一周期(周期3)中進入活動狀態。從I0開始連續執行。在周期5,檢測到一條SFB。在該周期中,計數為-4並且LATCH_CNT為-5。將SFB的低位移欄位(為+3)加到LATCH_CNT中。在靠近第二次迭代的末端,為SBB進行預測(在周期7中)。利用LD寄存器94中的-6重新加載計數。由於正確預測了需要獲取的SBB,所以從I0開始連續執行。在周期10中,再次檢測到同一SFB。在該示例中,沒有發現在周期11中獲取該SFB。因此,多路復用器90仍然選擇將加法器80的輸出而不是校正計數寄存器92的輸出作為其輸入源。因此,對於執行的每一條指令,計數連續加1。在計數到達-1的周期13,為SBB進行另一次預測。按上述方式繼續執行。
通常,本發明允許分支摺疊處理而無需取分支指令。對單出口4級流水線數據處理系統而言,如果迭代次數小於等於2,則節省的周期數為零。對於三次迭代而言,節省的周期數為2,對於四次迭代而言,節省的周期數為4,並且對於五次迭代而言,節省的周期數為6。可以利用2m-4表示節省的周期數,其中m為迭代次數。同時,正如現有分支預測技術一樣,當預測為「錯誤預測」時,沒有周期損失。
通過添加最少的硬體實現了周期數節省。同時,由於在第一次迭代之後沒有獲取、解碼和執行分支指令和失敗指令,所以節省了能量並且提高了性能。
儘管這裡以特定實施方式說明了本發明,熟練的技術人員顯然能夠以各種各樣的方式修改本發明並且可以採用除上述具體實施方式
之外的許多實施方式。例如,計數寄存器中存儲的計數值(即循環值)實際上可以為一個遞增並與第二地址值進行比較的地址值,因此,附屬權利要求書意在覆蓋屬於本發明實質和範圍內的本發明的所有改進。
權利要求
1.一種控制數據處理系統的方法,其特徵在於包括以下步驟獲取位於分支地址的反向分支指令,反向分支指令具有一個偏移值,其中反向分支指令用於在存儲器中向後面的目標地址執行分支以便定義程序循環;以及根據反向分支指令設置循環值。
2.權利要求1的方法,其中根據反向分支指令設置循環值的步驟還包括將循環值設置為偏移值。
3.權利要求1的方法,其特徵還在於包括以下步驟每當在程序循環中取指令時,通過將某個預定值加到循環值中而修改循環值。
4.權利要求3的方法,其中預定值是以指令的長度為基礎的。
5.一種控制數據處理系統的方法,其特徵在於包括以下步驟獲取位於分支地址的反向分支指令,反向分支指令具有一個偏移值,其中反向分支指令用於在存儲器中向後面的目標地址執行分支以便定義程序循環;根據反向分支指令設置循環值;獲取位於目標地址的目標指令,其中目標地址是以偏移值為基礎的;確定循環值是否滿足預定條件,並且當循環值滿足預定條件時獲取位於後繼地址的後繼指令,其中後繼地址為目標地址;並且根據偏移值重新設置循環值;當循環值不滿足預定條件時獲取位於後繼地址的後繼指令,其中後繼地址為程序序列中的下一條指令地址重複獲取步驟,並進行確定直至程序流程轉移到程序循環的外部。
6.數據處理系統中的一種循環方法,其特徵在於包括以下步驟提供包含指令Ibr-1和分支指令Ibr的指令存儲器,其中指令Ibr-1直接在指令存儲器地址空間中分支指令Ibr之前;獲取並處理分支指令Ibr;在獲取並處理分支指令Ibr的步驟之後,獲取並處理位於目標地址的目標指令;獲取指令Ibr-1,並且在獲取指令Ibr-1的步驟之後,立即獲取位於目標地址的目標指令。
7.數據處理系統中的一種循環方法,其特徵在於提供包含指令Ibr-1、分支指令Ibr的指令存儲器,其中直接在指令存儲器地址空間中分支指令Ibr之前存儲指令Ibr-1,並且緊接在指令存儲器地址空間中分支指令Ibr之後存儲指令Ibr+1;獲取並處理分支指令Ibr,其中獲取並處理分支指令Ibr包括存儲目標地址的子步驟;獲取並保存指令Ibr+1;根據獲取並保存指令Ibr+1的步驟之後的分支預測,獲取並處理位於目標地址的目標指令,其中獲取並處理目標指令包括在寄存器中存儲目標指令的子步驟;並且確定分支預測錯誤,並且利用指令Ibr+1重寫指令寄存器。
8.權利要求7的方法包括向地址總線提供值br+(2*inc),其中inc表示指令的字節長度。
9.一種具有一個地址生成單元數據處理系統,其特徵在於具有一個第一輸入、一個第二輸入和一個輸出的第一多路復用器;具有一個輸入和一個輸出的程序計數寄存器,其中輸入與第一多路復用器的輸出相連;具有一個第一輸入、一個第二輸入以及一個輸出的第二多路復用器,其中第二輸入與程序計數寄存器的輸出相連;具有一個輸入和一個輸出的目標地址寄存器,其中輸入與第一多路復用器的輸出相連;具有一個第一輸入、一個第二輸入以及一個輸出的第一加法器,其中第一輸入與程序計數寄存器的輸出相連,第二輸入用於接收第一遞增值;具有一個輸入、一個輸出的分支地址寄存器,其中輸入與第一加法器的輸出相連,輸出與第二多路復用器的第一輸入相連;以及具有一個第一輸入、一個第二輸入和一個輸出的第三多路復用器,其中第一輸入與目標地址寄存器的輸出相連,第二輸入與第一加法器的輸出相連,輸出與第一多路復用器的第一輸入相連。
10.一種具有一個地址生成單元的數據處理系統,其特徵在於具有一個第一輸入和一個第二輸入的多路復用裝置,用於提供獲取地址;連接以接收穫取地址的程序計數器;與多路復用裝置的第一輸入相連用於提供分支目標地址的分支目標地址生成裝置,其中分支目標地址表示獲取分支後的分支目的地地址;以及與多路復用裝置的第二輸入相連用於提供分支指令之後的第二指令地址的跳過下一個順序的地址生成裝置。
全文摘要
流水線數據處理系統(10)包括一個地址生成單元(30)。地址生成單元(30)包括一個目標地址寄存器(58),一個短反向分支(SBB)地址寄存器(60)以及一個計數寄存器(70),從而使小循環的執行更有效並且允許分支摺疊處理而無需獲取分支指令。
文檔編號G06F9/32GK1240279SQ99108648
公開日2000年1月5日 申請日期1999年6月18日 優先權日1998年6月19日
發明者李利煌, 威廉姆·C·默耶, 傑夫特·W·斯科特, 約翰·H·阿蘭德斯 申請人:摩託羅拉公司