專利名稱:32位的多模式微處理器的制作方法
技術領域:
本發(fā)明涉及微處理器及計算機系統(tǒng),更具體地說,本發(fā)明涉及一種32位 滿足多種嵌入式媒體應用特點的多模式微處理器,微處理器支持3種運行模 式雙發(fā)射超標量模式(簡稱雙發(fā)射模式)、雙處理器核模式(簡稱雙核摸式)、 雙線程模式,用戶可以根據(jù)應用的特點選擇相應的運行模式。
背景技術:
目前嵌入式媒體應用范圍比較廣泛,不同的應用具有不同的特點,對處 理器性能要求也不一樣。比如有些應用中既要求處理器能實時響應用戶請求, 監(jiān)測系統(tǒng)運行的各種狀態(tài),然后進行正確的系統(tǒng)控制,又要求處理器進行大 量實時數(shù)據(jù)處理任務,此時采用多線程或者多個獨立處理器就比較合適。相 反,有些應用本身就是一個不可拆分的單線程任務,或者不存在多個可并行 執(zhí)行的任務,毫無疑問此時一個高性能的多發(fā)射結構更加合適。并且某些應 用存在大量高速緩存失效,導致處理器長時間停頓而引起性能損失,多線程 技術是減少這一性能損失的有效方法之一。因此如果一個處理器能根據(jù)應用 的特點配置成不同的運行模式,這樣的處理器微結構構造最為靈活。
現(xiàn)有大多數(shù)微處理器結構只支持一種運行模式,不能根據(jù)應用特點的不 同選擇相應的運行模式。由于嵌入式應用的多樣性,處理器在某些應用中有 較高的性能,但在其它應用中卻體現(xiàn)不出優(yōu)勢,不能完全發(fā)揮處理器的性能。 對于根據(jù)不同應用特點而進行支持多模式的微處理器結構研究未見有相關專利和研究。
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種32位的多模式微處理器,使用該微處理器能根據(jù)應用的特點配置成不同的運行模式。
為了解決上述技術問題,本發(fā)明是通過以下技術方案實現(xiàn)的提供一種32位的多模式微處理器,該處理器核以兩條六級流水線PIPE 1和PIPE2結構為 基礎,PIPE 1和PIPE 2均包括取指(IF)、譯碼(ID)、執(zhí)行(EX)、訪存(DM)、 TAG比較(TC)和回寫(WB)這六個流水級;此處理器支持3種運行模式雙核模式、雙發(fā)射模式或雙線程模式,用戶可以根據(jù)應用的特點,選擇相應 的運行模式;在雙核模式下,處理器在微結構上分開,是兩個高性能的單發(fā) 射處理器;在雙發(fā)射模式下,處理器在微結構上合攏,是一個高性能的雙發(fā) 射精簡指令集計算機(RISC)處理器;在雙線程模式下,處理器是一個介于細粒度和同時多線程技術之間"偽"SMT處理器,此時處理器可以支持兩種運行方式。
在本發(fā)明中,取指(IF)級主要是訪問指令存儲器;譯碼(ID)級執(zhí)行 指令頁面比較、通用寄存器文件的數(shù)據(jù)相關的轉發(fā)單元、指令譯碼;訪存(函) 級訪問數(shù)據(jù)存儲器;執(zhí)行(EX)級包括數(shù)據(jù)頁面比較、數(shù)據(jù)對齊、算術邏輯 單元、乘累加單元和用戶擴展;訪存(DM)級訪問數(shù)據(jù)存儲器;TAG比較(TC) 級主要確認數(shù)據(jù)cache訪問命中與否和部分字對齊;回寫(WB)主要是回寫通用寄存器文件和媒體寄存器文件。
作為本發(fā)明的改進,該32位的多模式處理器包括支持多模式的數(shù)據(jù)通路和控制單元,
所述控制單元包括流水線控制單元PCU和跳轉控制單元JBU,所述數(shù)據(jù)通 路包括數(shù)據(jù)旁路部件BPU和寄存器文件RF;
流水線控制單元PCU負責整個流水線的控制,在雙核模式下,采用 PI—PCU控制流水線PIPE 1, P2—PCU控制流水線PIPE2;在雙發(fā)射和雙線程模 式下,采用一個聯(lián)合控制單元joint—PCU控制PIPE 1和PIPE 2這兩條流水線的運 行;
跳轉控制單元JBU確定下一拍發(fā)射到流水線的指令地址;在雙核模式下,
流水線PIPE 1和PIPE 2的下一拍指令地址分別由P1—JBU和P2—JBU產生;在雙 發(fā)射和雙線程模式下, 一個聯(lián)合跳轉控制單元joint一JBU控制PIPE 1和PIPE 2 這兩條流水線的運行,joint—JBU模塊利用P1JBU和P2—JUB的輸出信息,和其 它流水線信息一起做出正確的判決,確定下一拍發(fā)射到兩條流水線中的指令 地址;
數(shù)據(jù)旁路部件BPU根據(jù)指令執(zhí)行的先后次序與相應的控制信號,檢測出前 后指令之間的數(shù)據(jù)相關性,從若干數(shù)據(jù)源中選擇出正確的數(shù)據(jù),檢測結果同 時送到流水線控制單元進行流水線狀態(tài)控制;在雙核模式下,P1—BPU負責PIPE l的數(shù)據(jù)旁路工作,P2一BPU負責PIPE 2的數(shù)據(jù)旁路工作;在雙發(fā)射模式和雙線 程模式下,P1—BPU和P12—BPU —起負責PIPE l的數(shù)據(jù)旁路工作,P2—BPU和 P21一BPU—起負責PIPE 2的數(shù)據(jù)旁路工作;
寄存器文件RF包括通用寄存器文件和媒體寄存器文件,具有兩套寄存器 文件RF1和RF2,通用寄存器文件采用32x32位的寄存器組織形式,媒體寄存器 文件為8x64位的寄存器組織形式;通用寄存器寄存器文件和媒體寄存器文件 均具有4讀2寫的端口, PIPE1和PIPE2這兩條流水線各自占用2讀1寫的端口。
作為本發(fā)明的進一步改進該32位的處理器還包括線程狀態(tài)保存模塊
TC一save和線程選擇模塊TC—select,線程狀態(tài)保存模塊TC—save在回寫級收 集指令在流水線執(zhí)行過程中的信息,根據(jù)這些信息更新線程的狀態(tài),線程選 擇模塊TC—select根據(jù)線程狀態(tài)保存模塊TC—save所提供的最新的線程狀態(tài)信息,決定線程是否切換,以及切換進來的新線程從何處開始運行。
在本發(fā)明中采用了旁路邏輯解決當指令需要前面指令的執(zhí)行結果、而前 面指令還沒有將結果寫回寄存器文件的數(shù)據(jù)沖突矛盾,或者針對前后指令存 在的數(shù)據(jù)矛盾產生一定的控制信號幫助流水線的停頓狀態(tài)處理。旁路能夠使 當前指令繞過等待寄存器文件數(shù)據(jù)讀取的過程,直接從流水線中得到操作數(shù) 進入下一流水節(jié)拍,從而提高處理器執(zhí)行效率。
在本發(fā)明中采用靜態(tài)轉移預測不成功策略解決流水線中的控制競爭。轉 移指令的下l條指令的調度由編譯器或匯編編程人員手動調度,無論指令跳轉 與否,都會被執(zhí)行;而其它轉移延時槽內的指令采用硬件支持的靜態(tài)轉移預 測不成功策略,即這些指令也會被猜測地發(fā)射進入流水線, 一旦轉移指令成 功轉移,指令即被清空,不對程序執(zhí)行結果造成任何影響。
在本發(fā)明中,根據(jù)處理流水線競爭和處理器異常的基礎上,提出并實現(xiàn) 了一種基于有限狀態(tài)機(FSM)的流水線集中控制方案。為加快流水控制單元 的響應速度,對當前輸入的狀態(tài)信號不加時鐘鎖存,即刻決定流水線下一拍 的動作,避免和減少流水線過運行,從而提高了運行效率。
在本發(fā)明中采用硬件完成線程之間的切換。在雙線程運行方式l中,切換 的進行是由軟件通過專用指令指示硬件完成狀態(tài)的切換,本發(fā)明設計了以下 兩條專用指令INC—thread rs和DEL_thread。指令INC—thread rs 使處理器從單線程運行狀態(tài)進入雙線程運行狀態(tài),參數(shù)rs保存的新線程起始地址 開始運行;執(zhí)行指令DEL—thread使處理器從雙硬線程運行狀態(tài)切換到單線程 運行狀態(tài)。在雙線程運行方式2中,由硬件自動檢測運行狀態(tài),自行完成線程 切換,無需軟件的參與。當硬件檢測到cache miss事件,由硬件自動發(fā)生線 程的切換,當cache miss處理完畢之后,處理器自動切換到原來的線程。
本發(fā)明是一種面向嵌入式媒體等應用領域的多模式微處理器,與現(xiàn)有技 術相比,本發(fā)明具有一下有益效果本發(fā)明的微處理器支持3種運行模式, 即多核模式、雙發(fā)射模式和雙線程模式,用戶根據(jù)應用特點的不同,可以靈 活也選擇運行模式,能更加有效地發(fā)揮處理器的硬件資源。本發(fā)明實現(xiàn)了多 模式在微結構上的融合;解決了多模式處理器中的結構競爭、數(shù)據(jù)競爭和控 制競爭相應的解決措施;實現(xiàn)了基于有限狀態(tài)機的集中式流水線控制策略; 實現(xiàn)了雙線程模式下低開銷的線程硬切換。
下面結合附圖對本發(fā)明的具體實施方式
作進一步詳細說明。
圖1為本發(fā)明的各種模式運行示意圖,(1)為雙核模式,(2)為雙發(fā)射 模式,(3)為雙線程模式中的運行方式2, (4)為雙線程模式中的運行方式1。 在此圖中A代表線程TC1的指令,B代表線程TC2的指令,K代表cache miss 引起的停頓周期。
圖2為本發(fā)明的微結構組成框架圖。
圖3為圖2中的流水線控制單元結構示意圖。
圖4為圖2中的跳轉控制單元結構示意圖。
圖5為圖2中的數(shù)據(jù)旁路單元結構示意圖。
圖6為在不同模式下,圖2中的寄存器文件的訪問機制示意圖。(a)代 表雙發(fā)射模式和雙線程模式運行方式1的單硬線程運行狀態(tài);(b)代表雙核 模式和雙線程模式運行方式1的雙硬線程運行狀態(tài);(c)代表雙線程模式運 行方式2,執(zhí)行線程TC1; (d)、代表雙線程模式運行方式2,執(zhí)行線程TC2。
圖7為本發(fā)明的數(shù)據(jù)旁路技術示意圖。(a)代表PIPEl的數(shù)據(jù)旁路;(b) 代表PIPE2的數(shù)據(jù)旁路。
圖8為本發(fā)明的解決控制競爭的操作示意圖。(a)代表轉移指令在PIPE 1中,(b)代表轉移指令在PIPE 2中。
圖9為本發(fā)明的INC一thread指令實現(xiàn)示意圖。
圖10為本發(fā)明的DEL—thread指令實現(xiàn)示意圖。
圖11為本發(fā)明的INCjhread和DELjhread指令編碼格式。
圖12為本發(fā)明的線程切換功能模塊與流水線的關系框圖。
具體實施例方式
本發(fā)明的微處理器在各種模式下的運行過程如圖1示意。雙發(fā)射模式是 處理器的默認模式,處理器在啟動之后進入雙發(fā)射模式。
在雙發(fā)射模式下,處理器采用按序發(fā)射的雙發(fā)射策略。如圖1 (2)所示, 處理器在每一個時鐘周期從指令高速緩存中分別取出兩條相鄰的32位指令發(fā) 射到流水線中,前一條指令入流水線PIPE 1 ,后一條指令進入流水線PIPE 2, 這樣保證了發(fā)射到PIPE 1的指令在程序的執(zhí)行順序上要先于發(fā)射到PIPE 2 的指令。指令在流水線中的執(zhí)行順序與程序中指令的實際順序一致,當某條 指令因為某種流水線事件不能發(fā)射時,整個指令發(fā)射被阻塞,直到引起指令發(fā)射阻塞的事件消除為止。
當應用在可以組織成2個獨立的進程(每一個進程可以包含多個線程)、 并且這兩個進程的運算量相差不大時,處理器可進入雙核模式運行。如圖1(1)所示,在雙核模式下,處理器分裂成兩個不對稱的單發(fā)射處理器核主 處理器核和輔處理器核,這兩個處理器核構成主從關系。每個處理器核各自 運行獨立的進程,使得流水線中的競爭相對于雙發(fā)射模式明顯減少,處理器 的整體性能相對于雙發(fā)射模式會有所提高。主處理器核運行嵌入式操作系統(tǒng),負責整個芯片的系統(tǒng)控制,主要由以下模塊構成PIPE 1、P1—COP0(P1—COP0 是協(xié)處理器0,主要進行異常處理和存儲空間的管理)、哈佛結構的指令和數(shù) 據(jù)高速緩存、片上數(shù)據(jù)RAM。輔處理器主要負責數(shù)據(jù)處理(一般為耗時任務) 任務,它包括PIPE 2 、 P2一COPl (浮點協(xié)處理器,以支持浮點處理運算)、 指令高速緩存、片上數(shù)據(jù)RAM。
在雙線程模式下有兩種運行方式。如圖1 (4)在運行方式1下,處理器 在大多數(shù)時間內使用硬件全部資源執(zhí)行主線程A,此時運行方式類似于雙發(fā)射 模式下的運行方式。當線程B出現(xiàn)時,處理器并不停止線程A的執(zhí)行,而是 使用部分硬件資源(以PIPE1為主的硬件資源)繼續(xù)執(zhí)行線程A,使用以PIPE 2為主的硬件資源執(zhí)行線程B。此時的運行方式類似于雙核模式下的運行方式, 處理器形成兩個單發(fā)射物理處理器核,同時執(zhí)行兩個"硬"線程(本文稱并 行執(zhí)行的線程為硬線程;由操作系統(tǒng)軟件切換、串行執(zhí)行的線程為軟線程)。 每個單發(fā)射物理處理器核又同時可以運行多個"軟"線程。當其中一個單發(fā) 射處理器核上的"軟"線程執(zhí)行完畢之后。處理器從兩個單發(fā)射處理器核形
成一個雙發(fā)射處理器,全速執(zhí)行線程A。如圖l (3)所示,在運行方式2下, 當硬件檢測到線程TC1發(fā)生cache miss時,由自動保存線程現(xiàn)場,完成從線 程TC1到線程TC2的切換。當硬件檢測到cache miss處理完畢之后,自動完 成從線程TC2到TC1的切換。線程硬切換的開銷只需幾個周期的開銷,遠低 于軟切換的開銷,并且遠低于cache miss引起的停頓周期,這就為使用多線 程技術提高處理器性能成為可能。雙線程模式運行方式2下,處理器不因cache miss而停頓,繼續(xù)執(zhí)行其它線程的指令。這樣充分發(fā)揮了處理器的資源,使 處理器在相同的周期內能執(zhí)行更多的指令。
每條流水線不僅要檢測當前ID級指令是否與自己流水線內的其它指令是 否存在RAW數(shù)據(jù)競爭,還要檢測與另外一條流水線內的指令是否存在RAW 數(shù)據(jù)競爭。處理器采用數(shù)據(jù)旁路部件BPU專門統(tǒng)一處理RAW數(shù)據(jù)競爭。BPU 根據(jù)指令執(zhí)行的先后次序與相應的控制信號,檢測出前后指令之間的數(shù)據(jù)相 關性,從若干數(shù)據(jù)源中選擇出正確的數(shù)據(jù),檢測結果同時送到PCU單元進行 流水線狀態(tài)控制。BPU采取針對兩種不同的數(shù)據(jù)競爭采取不同的解決策略。 (1)、在ID級讀源操作數(shù)時,其值是前面指令的結果,并且正確的值己在 流水線內部產生,采用數(shù)據(jù)旁路技術將正確的值旁路到ID級,流水線正常運 行。(2)、在ID級讀源操作數(shù)時,其值是前面指令的結果,但正確的值在流 水線內部還沒有產生,產生流水線互鎖,此時BPU產生RAW相關請求發(fā)送 到PCU單元中,由PCU單元控制流水線進行滑行(siip)操作ID之后包括ID 級的指令停止,ID級之前的指令繼續(xù)運行,中間插入NOP,直至正確結果產 生。然后采用數(shù)據(jù)旁路技術將正確的值旁路到ID級,流水線正常運行。BPU 采用的是集中式數(shù)據(jù)旁路技術,將當前指令源操作數(shù)寄存器與各級正在執(zhí)行的指令目的寄存器分別進行比較。如果前面指令執(zhí)行完畢已經將結果寫回到 寄存器文件中,那么BPU直接從寄存器文件中給出寄存器數(shù)據(jù);如果前面指 令執(zhí)行的結果已經準備好(還未寫入寄存器文件中)并且當前指令正需要這一結果,那么BPU將從中選出當前指令所需的數(shù)據(jù)和控制信號。如圖7所示,處理器各流水級的旁路返回數(shù)據(jù)信號包括(1) Load類指令取出的數(shù)據(jù)在TC和WB級作為旁路數(shù)據(jù)返回;(2)算術運算類指令執(zhí)行結果在EX、 DM、 TC和WB級旁路返回,另外對于多媒體運算類指令,其旁路數(shù)據(jù)還有可能從 EX階段劃分的不同流水級給出,由指令執(zhí)行周期而定。
處理器主要采用轉移預測不成功策略解決由轉移指令引起的控制競爭。 具體策略如下轉移指令的下1條指令的調度由編譯器或匯編編程人員手動 調度,無論指令跳轉與否,都會被執(zhí)行;而其它轉移延時槽內的指令采用硬 件支持的靜態(tài)轉移預測不成功策略,即這些指令也會被猜測地發(fā)射進入流水 線, 一旦轉移指令成功轉移,指令即被清空,不對程序執(zhí)行結果造成任何影 響。處理器解決控制競爭具體的操作要分兩種情況進行(1)、如圖8 (a)所示, 轉移指令進入PIPE 1。當轉移預測不成功時,清空兩條流水線中IF和ID中 的指令;轉移指令的下一條指令,即PIPE 2 EX級中的指令是軟件調度指令, 不被清空。(2)、如圖8(b)所示,轉移指令進入PIPE2。當轉移預測不成功 時,清空PIPE 1 IF級和PIPE2 IF、 ID級中的指令;轉移指令的下一條指 令,即PIPE1 ID級中的指令是軟件調度指令,不被清空。
在雙線程模式運行方式l,處理器存在兩種運行狀態(tài)單硬線程運行狀態(tài) 和雙硬線程運行狀態(tài)。處理器可以根據(jù)應用的需求,發(fā)生運行狀態(tài)的切換(也 就是線程的切換)。切換的進行是由軟件通過專用指令指示硬件完成狀態(tài)的切換。本發(fā)明設計以下兩條專用指令INC—thread rs和DEL—thread。指令 INC—thread rs使處理器從單硬線程運行狀態(tài)進入雙硬線程運行狀態(tài),參數(shù)rs 保存的新線程起始地址開始運行。指令DEL—thread使處理器從雙硬線程運行 狀態(tài)切換到單線程運行狀態(tài)。圖11是INC—thread和DEL—thread的指令編碼 格式。
指令INC一threadrs進入流水線后,在ID級被譯碼,在EX級開始可以進 行線程切換操作。設INC—thread運行到EX級的時刻為cycle n,處理器并不 馬上進入雙硬線程運行狀態(tài),而是執(zhí)行以下操作,如圖9所示。(l)清空PIPE 1中IF級的指令,清空PIPE2中IF、 ID級的指令;(2)調整PIPE 1讀取 指令的地址,并把指令的地址間隔從原來的加8調整為加4 , PIPE 2在發(fā)生 模式切換之前不再讀取指令。執(zhí)行完上述操作后,指令INC—thread繼續(xù)運行, 直到指令INC_thread運行到WB級,也就是cycle n+3時刻,處理器才進入雙 硬線程運行狀態(tài)。在下一拍即cycle n+4時刻,新線程TC 2的指令進入流水 線PIPE 2。切換開銷為7條指令,3.5個周期。當輔線程執(zhí)行完之后,并執(zhí) 行指令DEL—thread,指示處理器完成雙硬線程運行狀態(tài)到單硬線程運行狀態(tài) 的切換。指令DEL—thread實現(xiàn)運行狀態(tài)切換的方式與指令INC_thread的實 現(xiàn)方式類似,如圖10所示,等到指令DEL—thread運行到WB級時才進行雙 硬線程運行狀態(tài)。切換開銷為6條指令,3個周期。
處理器在雙線程模式運行方式2下,由硬件自動檢測運行狀態(tài),自行完 成線程切換。當處理器檢測到cache miss時,只是用硬件保存少量有用的線程 現(xiàn)場信息(主要包括寄存器文件、線程狀態(tài)寄存器、發(fā)生cache miss的指令
地址等)。當線程重啟時,線程從產生線程切換事件的指令開始執(zhí)行,以此來 恢復線程流水線中的現(xiàn)場。處理器給兩個線程都分配一套專用的寄存器文件, 這樣在發(fā)生線程切換時,寄存器文件現(xiàn)場就被自動保存下來。同時本發(fā)明設計了線程狀態(tài)保存模塊TC一save來保存線程狀態(tài)寄存器、發(fā)生cache miss的 指令地址等信息。在本發(fā)明中,當cache miss出現(xiàn)時,處理器并不立即進行線 程切換,而是保存產生cache miss的指令信息(包括線程號,指令PC值,線 程切換事件的類型等),并把這些信息傳遞下去,同時清空當前指令和進入流 水線的后續(xù)指令。當發(fā)生cache miss的指令運行到最后一個流水級也就是WB 級才進行線程切換。這種方法實現(xiàn)簡單,可擴展性強。為實現(xiàn)這種方案,本 發(fā)明設計了線程狀態(tài)保存模塊TC—save和線程選擇模塊TC—select。模塊 TC_SaVe在WB級收集指令在流水線執(zhí)行過程中的信息,根據(jù)這些信息更新 線程的狀態(tài)。模塊TC—select根據(jù)TC—save所提供的最新的線程狀態(tài)信息,決 定線程是否切換,切換進來的新線程從何處開始運行。圖12表示了這兩個模 塊和流水線的關系。
最后,還需要注意的是,以上列舉的僅是本發(fā)明的具體實施例子。顯然, 本發(fā)明不限于以上實施例子,還可以有許多變形。本領域的普通技術人員能 從本發(fā)明公開的內容直接導出或聯(lián)想到的所有變形,均應認是本發(fā)明的保護 范圍。
權利要求
1、一種32位的多模式微處理器,該處理器核以兩條六級流水線PIPE 1和PIPE2結構為基礎,PIPE 1和PIPE 2均包括取指、譯碼、執(zhí)行、訪存、TAG比較和回寫這六個流水級;其特征在于此處理器支持3種運行模式雙核模式、雙發(fā)射模式或雙線程模式;在雙核模式下,處理器在微結構上分開,是兩個高性能的單發(fā)射處理器;在雙發(fā)射模式下,處理器在微結構上合攏,是一個高性能的雙發(fā)射精簡指令集計算機處理器;在雙線程模式下,處理器是一個介于細粒度和同時多線程技術之間“偽”SMT處理器,此時處理器可以支持兩種運行方式。
2、 如權利要求1所述的32位的多模式處理器,其特征在于包括支持多模式 的數(shù)據(jù)通路和控制單元,所述控制單元包括流水線控制單元PCU和跳轉控制單元 JBU,所述數(shù)據(jù)通路包括數(shù)據(jù)旁路部件BPU和寄存器文件RF;流水線控制單元PCU負責整個流水線的控制,在雙核模式下,采用P1一PCU控 制流水線PIPE1, P2—PCU控制流水線PIPE 2;在雙發(fā)射和雙線程模式下,采用一 個聯(lián)合控制單元joint—PCU控制PIPE 1和PIPE 2這兩條流水線的運行;跳轉控制單元JBU確定下一拍發(fā)射到流水線的指令地址;在雙核模式下,流水線PIPE 1和PIPE 2的下一拍指令地址分別由P1—JBU和P2—JBU產生;在雙發(fā)射和 雙線程模式下, 一個聯(lián)合跳轉控制單元joint一JBU控制PIPE 1和PIPE 2這兩條流 水線的運行,joint—JBU模塊利用P1一JBU和P2—JUB的輸出信息,和其它流水線信 息一起做出正確的判決,確定下一拍發(fā)射到兩條流水線中的指令地址;數(shù)據(jù)旁路部件BPU根據(jù)指令執(zhí)行的先后次序與相應的控制信號,檢測出前后 指令之間的數(shù)據(jù)相關性,從若干數(shù)據(jù)源中選擇出正確的數(shù)據(jù),檢測結果同時送到 流水線控制單元進行流水線狀態(tài)控制;在雙核模式下,P1—BPU負責PIPE1的數(shù)據(jù) 旁路工作,P2—BPU負責PIPE 2的數(shù)據(jù)旁路工作;在雙發(fā)射模式和雙線程模式下, P1—BPU和P12—BPU—起負責PIPE l的數(shù)據(jù)旁路工作,P2—BPU和P21—BPU—起負責 PIPE 2的數(shù)據(jù)旁路工作;寄存器文件RF包括通用寄存器文件和媒體寄存器文件,具有兩套寄存器文件 RF1和RF2,通用寄存器文件采用32x32位的寄存器組織形式,媒體寄存器文件為 8x64位的寄存器組織形式;通用寄存器寄存器文件和媒體寄存器文件均具有4讀2 寫的端口, PIPE 1和PIPE 2這兩條流水線各自占用2讀1寫的端口。
3、如權利要求1所述的32位的處理器,其特征在于還包括線程狀態(tài)保存 模塊TC一save和線程選擇模塊TC—select,線程狀態(tài)保存模塊TC—save在回寫級 收集指令在流水線執(zhí)行過程中的信息,根據(jù)這些信息更新線程的狀態(tài),線程選擇 模塊TC—select根據(jù)線程狀態(tài)保存模塊TC_saVe所提供的最新的線程狀態(tài)信息, 決定線程是否切換,以及切換迸來的新線程從何處開始運行。
全文摘要
本發(fā)明公開了一種32位的多模式微處理器,該處理器核以兩條六級流水線PIPE1和PIPE2結構為基礎,PIPE1和PIPE2均包括取指、譯碼、執(zhí)行、訪存、TAG比較和回寫這六個流水級;此處理器支持3種運行模式雙核模式、雙發(fā)射模式或雙線程模式;在雙核模式下,處理器在微結構上分開,是兩個高性能的單發(fā)射處理器;在雙發(fā)射模式下,處理器在微結構上合攏,是一個高性能的雙發(fā)射精簡指令集計算機處理器;在雙線程模式下,處理器是一個介于細粒度和同時多線程技術之間“偽”SMT處理器,此時處理器可以支持兩種運行方式。使用本發(fā)明的微處理器,能根據(jù)應用的特點配置成不同的運行模式。
文檔編號G06F9/38GK101201732SQ20071007156
公開日2008年6月18日 申請日期2007年10月9日 優(yōu)先權日2007年10月9日
發(fā)明者鵬 劉, 冊 史, 姚慶棟, 王小航, 王維東, 陳科明, 顧雄禮, 黃衛(wèi)兵 申請人:浙江大學