專利名稱:多線程微處理器的指令譯碼緩沖裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器及計算機(jī)系統(tǒng),進(jìn)一步說,本發(fā)明涉及支持多個硬件線程的
微處理器,更具體地說,涉及到多線程微處理器的指令譯碼器的緩沖裝置,涉及保證多線程執(zhí)行吞吐率的和單線程執(zhí)行效率的機(jī)制的輔助裝置。
背景技術(shù):
現(xiàn)代處理器普遍采用多指令發(fā)射的設(shè)計,安排多個執(zhí)行部件,將多個指令同時譯碼,調(diào)度發(fā)射各個執(zhí)行部件以達(dá)到多個指令的并行執(zhí)行。然而,指令之間的數(shù)據(jù)相關(guān)性和控制依賴使得可以并行執(zhí)行的指令十分有限,無法充分利用多個執(zhí)行部件。因此人們在指令級并行技術(shù)基礎(chǔ)上,開發(fā)了硬件多線程并行技術(shù),來自多個硬件上下文的指令序列同時或交替地發(fā)射指令到執(zhí)行部件中,使得整個處理器處理指令的吞吐量得到提升。由于多個線程共享一些關(guān)鍵的硬件資源,硬件的利用率得到提高。 在嵌入式媒體處理領(lǐng)域,應(yīng)用程序本身往往具有多線程的特點(diǎn),這些軟件線程可以直接映射到多線程處理器的硬件線程上,達(dá)到線程級并行。然而,媒體應(yīng)用有實時性的要求,也就是對單線程的執(zhí)行時延要求具有可控性,而傳統(tǒng)多線程技術(shù)并不能保證單線程的性能,因此有必要設(shè)計合理的線程運(yùn)行切換以及調(diào)度機(jī)制來保證單線程的執(zhí)行時延,在必要時,要把所有資源完全分配給關(guān)鍵的線程。 現(xiàn)有的方法是安排可軟件配置的線程調(diào)度邏輯部件,接收硬件運(yùn)行信息和軟件控制信息,利用實時操作系統(tǒng)和硬件部件的交互來達(dá)到對線程執(zhí)行的控制,發(fā)出線程選擇信號,在不同線程的指令隊列中選擇進(jìn)入共享執(zhí)行資源的線程的指令。 當(dāng)代處理器的高速設(shè)計,指令選擇和譯碼部件往往是流水化操作的,需要流水界面寄存器。并且考慮到多指令發(fā)射技術(shù),選中的線程要有多個指令同時進(jìn)入執(zhí)行部件,但譯碼部件根據(jù)指令類型和執(zhí)行部件的匹配以及執(zhí)行部件空閑或者忙碌狀態(tài)決定了多個指令是否能在同一個周期被分派出去,如果不能同時分派,界面寄存器作為緩沖裝置,接收剩下的未分派的指令。然而,如果線程選擇邏輯需要盡快完成到另一個線程的切換,這就需要緩沖裝置具有靈活高效的特點(diǎn),而不需要對被換出的線程進(jìn)行清空。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種能為多發(fā)射多線程流水線處理器提供支持靈活線程切換的指令譯碼緩沖裝置。 為了解決上述技術(shù)問題,本發(fā)明提供一種多線程微處理器的指令譯碼緩沖裝置,指令譯碼緩沖裝置,設(shè)置在一種多線程的微處理器中,該微處理器包含取指部件、譯碼部件、執(zhí)行部件和線程狀態(tài)控制部件; 取指部件包括基于現(xiàn)有技術(shù)的指令高速緩存、對應(yīng)于兩個線程A和B的程序計數(shù)器A、程序計數(shù)器B、取指線程選擇邏輯、對應(yīng)于兩個線程的基于先進(jìn)先出技術(shù)的指令緩沖器A、指令緩沖器B和緩沖器控制邏輯;
譯碼部件包括基于譯碼線程選擇邏輯、基于本發(fā)明的譯碼緩沖裝置和基于亂序超標(biāo)量技術(shù)的譯碼分派邏輯; 執(zhí)行部件包括基于流水化的訪存執(zhí)行部件、算術(shù)執(zhí)行部件,其內(nèi)部含有各自的指令發(fā)射隊列,可以完成亂序執(zhí)行,按序提交; 線程狀態(tài)控制部件包括線程狀態(tài)寄存器、譯碼優(yōu)先級寄存器、帶寬分配控制寄存器,上述寄存器都向軟件提供接口 ,由軟件設(shè)定。 作為本發(fā)明的多線程微處理器的指令譯碼緩沖裝置的改進(jìn)譯碼緩沖裝置設(shè)置在微處理器兩個線程的指令緩沖器A、指令緩沖器B和譯碼分派邏輯之間,寄存線程譯碼線程選擇邏輯選出的線程A的指令對或線程B的指令對,根據(jù)譯碼分派邏輯的指令分派結(jié)果信號決定本次譯碼線程選擇邏輯選出的線程下一周期接收幾條新指令,并發(fā)出信號合并信號指示取指控制器決定本次譯碼線程選擇邏輯選出的線程對應(yīng)的指令緩沖器A或者指令緩沖器B的讀指針的動作。 作為本發(fā)明的多線程微處理器的指令譯碼緩沖裝置的進(jìn)一步改進(jìn)譯碼緩沖裝置在雙線程運(yùn)行模式下,無論當(dāng)前線程指令從譯碼緩沖裝置成功分派幾條到執(zhí)行部件的發(fā)射隊列中,都可以根據(jù)譯碼線程選擇邏輯下一周期的選擇結(jié)果立即切換到另一個線程,并由譯碼分派邏輯進(jìn)行另一線程的指令分派動作。 作為本發(fā)明的多線程微處理器的指令譯碼緩沖裝置的進(jìn)一步改進(jìn)譯碼緩沖裝置由線程A備份緩沖器、線程B備份緩沖器和分派緩沖器構(gòu)成,每個緩沖器都由對應(yīng)于兩條指令的兩個指令緩沖寄存器和忙位寄存器構(gòu)成。 本發(fā)明所提供的指令譯碼緩沖裝置,設(shè)置在微處理器系統(tǒng)中,該系統(tǒng)包含一個指令高速緩存,分別對應(yīng)兩個線程的兩套取指計數(shù)器,兩個線程各自的指令緩沖先入先出隊列,線程狀態(tài)控制部件和線程選擇邏輯,指令譯碼分派部件和指令執(zhí)行部件。指令譯碼緩沖裝置設(shè)置在指令緩沖隊列和指令譯碼分派部件之間。 在線程調(diào)度邏輯的控制下,某一個線程指令緩沖讀出的兩條指令被寫入譯碼緩沖裝置。指令緩沖器具有以下特點(diǎn)指令成對按照先入先出規(guī)則被寫入和讀出該指令緩沖器,讀出是指指令被載入譯碼緩沖裝置,指令緩沖器不再保存讀出的指令,指令讀總線總是給出下次待讀的指令。譯碼分派邏輯按照執(zhí)行部件資源的限制決定從譯碼緩沖裝置接收的指令是否可以被分派執(zhí)行部件,并把成功分派的指令的條數(shù)反饋給指令緩沖器和譯碼分派緩沖裝置。 本發(fā)明提供的指令譯碼緩沖裝置,包含每個線程各自的備份緩沖器和一個分派緩
沖器。來自線程狀態(tài)控制部件的決定了譯碼緩沖裝置的動作,在單線程運(yùn)行狀態(tài)下,來自某
個線程的指令緩沖的兩條指令直接載入分派緩沖器。在雙線程運(yùn)行狀態(tài)下,各個線程的指
令要首先被載入到備份緩沖器中,分派緩沖在兩個線程之間來回切換,當(dāng)切換到某個線程
時,指令從該線程的備份緩沖載入分派緩沖。
與現(xiàn)有的指令譯碼技術(shù)相比,本發(fā)明的有益效果是 提供更加靈活的零開銷線程切換裝置,與實時線程調(diào)度機(jī)制結(jié)合,可以提供單線程性能的可控性,為多線程技術(shù)在嵌入式應(yīng)用提供更好的支持。
下面結(jié)合附圖對本發(fā)明的具體實施方式
作進(jìn)一步詳細(xì)說明。
圖1為本發(fā)明涉及的微處理器系統(tǒng)框圖;
圖2為圖1中的譯碼緩沖裝置112的結(jié)構(gòu)框圖; 圖3a為圖2中的線程A備份緩沖器200和線程B備份緩沖器201的指令緩沖寄 存器邏輯結(jié)構(gòu)圖; 圖3b為圖2中的線程A備份緩沖器200和線程B備份緩沖器201的指令緩沖寄 存器狀態(tài)寄存器邏輯結(jié)構(gòu)圖,兩個指令緩沖寄存器300和301對應(yīng)的狀態(tài)寄存器結(jié)構(gòu)是相 同的; 圖4為線程A備份緩沖器200、線程B備份緩沖器201和分派緩沖器202輸入端多 路器的控制邏輯的邏輯結(jié)構(gòu)圖,這三者的控制邏輯結(jié)構(gòu)完全相同,只是輸入信號不同,由圖 2指明; 圖5a為圖2中的分派緩沖器202的指令緩沖寄存器邏輯結(jié)構(gòu)圖; 圖5b為圖2中的分派緩沖器202的指令緩沖寄存器狀態(tài)寄存器邏輯結(jié)構(gòu)圖,兩個
指令緩沖寄存器500和501對應(yīng)的狀態(tài)寄存器結(jié)構(gòu)是相同的。
具體實施例方式
下面結(jié)合
本發(fā)明的具體實施方式
。
本發(fā)明的工作過程具體如下述步驟所示
1.取指 兩個線程線程A和線程B的狀態(tài)可能是激活態(tài)或阻塞態(tài),線程狀態(tài)保存在線程狀 態(tài)控制部件103的寄存器中。如果兩個線程都處于激活態(tài),則微處理器處于雙線程工作模 式。取指線程選擇邏輯107從線程狀態(tài)控制部件103中得知微處理器處于雙線程工作模式 下,從對應(yīng)于線程A和線程B的程序計數(shù)器A105、程序計數(shù)器B106選擇一個讀取指令高速 緩存104中的指令,每周期讀出兩條指令。取指線程選擇邏輯107完全按照交替的方式選 擇線程,即如果本周期選擇線程A,則下一周期選擇線程B,再下一周期又選擇線程A。讀出 的指令對被按照先入先出(FIFO, first in first out)原則,根據(jù)當(dāng)前哪個線程被選中,送 入指令緩沖器A108或者指令緩沖器B109,這種指令緩沖器完全是現(xiàn)有的標(biāo)準(zhǔn)的FIF0結(jié)構(gòu),
具有讀指針和寫指針,存儲單元和空、滿控制邏輯。
2.譯碼 譯碼線程選擇邏輯111從線程狀態(tài)控制部件103中獲取微處理器線程控制參數(shù), 包括兩個線程的優(yōu)先級和譯碼帶寬分配比例。譯碼線程選擇邏輯111的策略是首先選擇 優(yōu)先級高的線程,在同樣優(yōu)先級下,對兩個線程進(jìn)行單周期的細(xì)粒度交替選擇,或者按照譯 碼帶寬分配比例進(jìn)行粗顆粒度的交替選擇。選擇結(jié)果表現(xiàn)為譯碼線程選擇信號組118,包 括譯碼線程選擇信號203和模式信號204。在單線程模式下,譯碼線程選擇信號203從指 令緩沖器A108讀總線上的指令對信號組116合指令緩沖器B109讀總線上的指令對信號組 117中選出一對指令205,進(jìn)入分派緩沖器202 ;在雙線程模式下,譯碼線程選擇信號203從 線程A備份緩沖器200的輸出指令對信號組208和線程B備份緩沖器201輸出指令對信號 組209得到將要被分派的指令對鎖存到分派緩沖器寄存器500和501。注意,無論譯碼線
5程選擇的結(jié)果是什么,線程A備份緩沖器200只接收來自指令緩沖器A108讀總線上的指令 對116,線程B備份緩沖器201只接收來自指令緩沖器B109讀總線上的指令對117。譯碼 分派邏輯113從譯碼緩沖裝置112中的分派緩沖器202的得到當(dāng)前被譯碼的指令對119和 指令對有效標(biāo)記位123,按照一定的分派算法,包括現(xiàn)有技術(shù)重命名邏輯以及記分板邏輯等 等,檢測并標(biāo)記指令之間數(shù)據(jù)相關(guān)性,按序分派兩條指令到訪存執(zhí)行部件114和算術(shù)執(zhí)行 部件115中的發(fā)射隊列中,所謂按序,是指只有當(dāng)?shù)谝粭l指令被分派出去之后,第二條指令 才有可能被分派出去。發(fā)射隊列可以是嚴(yán)格的按序FIFO隊列,也可以執(zhí)行亂序發(fā)射,取決 于具體實現(xiàn)形式。兩個執(zhí)行部件114和115可以完全亂序執(zhí)行指令,執(zhí)行部件102的其他 控制邏輯要保證按序提交指令,包括再定序緩沖(ROB)等現(xiàn)有技術(shù)。訪存執(zhí)行部件114中 發(fā)射隊列的滿信號120和訪存執(zhí)行部件115中發(fā)射隊列的滿信號121被送入譯碼分派邏輯 113,當(dāng)某個指令對應(yīng)的執(zhí)行部件發(fā)射隊列為滿,例如當(dāng)前有一條訪存指令等待分派,而訪 存執(zhí)行部件114發(fā)射隊列滿信號120置位,則不能分派該指令。譯碼分派邏輯113要把指 令分派的情況信號122反饋給取指控制器110和譯碼緩沖裝置112,另外譯碼緩沖裝置112 的狀態(tài)信號123也要發(fā)送給指令緩沖器控制110,這些狀態(tài)信息決定取指控制器110和譯碼 緩沖裝置112的緩沖單元是否要進(jìn)行移位操作。
3.執(zhí)行 被分派到訪存執(zhí)行部件114和算術(shù)執(zhí)行部件115的指令攜帶著線程標(biāo)記信號,由 發(fā)射邏輯按照一定的仲裁算法進(jìn)行選擇,最簡單的算法是輪換(Ro皿d-robin)。被選中的指 令進(jìn)入流水化的執(zhí)行部件進(jìn)行運(yùn)算操作,指令被發(fā)射后,在流水線中不再停頓,如果出現(xiàn)異 ?;蛘邤?shù)據(jù)高速緩存缺失等事件,則對應(yīng)線程的取指重新進(jìn)行。指令的提交和異常的流水 線重啟由再定序緩沖控制。 參照圖2,譯碼緩沖裝置112由線程A備份緩沖器200、線程B備份緩沖器201和分 派緩沖器202構(gòu)成。線程A備份緩沖器200的輸入包括來自指令緩沖器A108的指令信號 組116(包括32位指令T0_Instl,T0_InSt2,以及指令緩沖空信號T0_Emt和第二條指令有 效信號T0—I2v),來自譯碼分派邏輯113的指令分派信號組122(包括指令對中第一條指令 分派信號Disl和第一條指令分派信號Dis2),和來自譯碼線程選擇邏輯111的選擇位203 的延遲信號206。線程B備份緩沖器201的輸入包括來自指令緩沖器B109的指令信號組 117 (包括32位指令Tl_Instl, Tl_Inst2,以及指令緩沖空信號Tl_Emt和第二條指令有效 信號Tl_I2v),來自譯碼分派邏輯113的指令分派信號組122,和來自譯碼線程選擇邏輯111 的延遲選擇位203的延遲信號206。分派緩沖器202的輸入包括被選中的線程的指令信號 組205,從線程A備份緩沖器200輸出的指令信號組207和從線程B備份緩沖器201輸出的 指令信號組208,以及來自譯碼分派邏輯113的指令分派信號組122和來自譯碼線程選擇邏 輯111的線程模式信號204。緩沖輸出的指令對119和對應(yīng)的指令有效標(biāo)志信號123進(jìn)入 譯碼分派邏輯113。整個部件由全局時鐘CLK和復(fù)位信號RST_n控制。
圖3顯示了線程備份緩沖器的內(nèi)部構(gòu)造,由兩個指令緩沖寄存器和它們各自對應(yīng) 的忙位寄存器組成,這個構(gòu)造對于線程A備份緩沖器200和線程B備份緩沖器201來說是 相同的,因此以下對圖3和圖4的說明以線程A備份緩沖器200為例。
忙位表示對應(yīng)的緩沖寄存器中指令是否有效,高電平表示緩沖寄存器中存在有效 指令,低電平表示指令緩沖寄存器中數(shù)據(jù)為無效數(shù)據(jù)。圖3(a)表示指令2緩沖寄存器300和指令1緩沖寄存器301的結(jié)構(gòu)。指令2緩沖寄存器300的輸入來自于指令緩沖器A108的 指令信號組116中的指令T0—Instl 302和指令T0—Inst2 303。當(dāng)指令TO_Instl選擇信號 304有效,選擇指令TO_Instl 302,否則,如果指令T0_Inst2選擇信號305有效,選擇指令 T0_Inst2 303,否則,指令2緩沖寄存器300保持原值。指令1緩沖寄存器301的輸入來自 于指令TO—Instl 302和指令2緩沖寄存器300的輸出端306。當(dāng)寄存器移位選擇信號307 有效,選擇指令2緩沖寄存器300的值306,否則,如果指令TO_Instl選擇信號308有效,選 擇指令TO—Instl 302,否則,指令1緩沖寄存器301保持原值。指令1緩沖寄存器301和指 令2緩沖寄存器300對應(yīng)的忙位寄存器312和316的構(gòu)造是相同的,如圖3 (b),置位多路器 控制信號310/314優(yōu)先級高于和清零多路器控制信號311/315,前者將忙位寄存器312/316 強(qiáng)行置位,后者將忙位寄存器312/316強(qiáng)行清零,當(dāng)它們都無效時忙位保持不變。兩個忙位 寄存器的多路器控制信號是不同的,這源于兩個指令的地位不同,緩沖指令2緩沖寄存器 300中的指令總是比指令1緩沖寄存器301中的指令(如果它們都有效的話)"新",譯碼 分派邏輯113和緩沖器控制邏輯110總是試圖保持這種指令次序關(guān)系,它們的次序是取指 時完全定義好的。譯碼分派邏輯113總是先試圖分派"舊"的指令,再去分派"新"的指令。
圖4給出了指令1緩沖寄存器301、指令2緩沖寄存器300的控制邏輯和對應(yīng)的忙 位寄存器312和316的控制邏輯。信號400 405分別表示指令緩沖器A108的空信號T0_ Emt(置位表示指令緩沖為空),指令2有效信號T0_I2v(置位表示緩沖器給出的第二條指 令也是有效的),線程A備份緩沖器200忙位313、317,來自譯碼分派邏輯113的指令分派 成功標(biāo)志信號Disl、Dis2。 406為生成指令1緩沖寄存器301選擇信號308的邏輯,為三種 情況的或邏輯407表示兩個緩沖本來都為空,408表示緩沖器2為空而緩沖器1中的指令 本周期末被分派了出去,409表示兩個緩沖器都為忙但是兩個指令本周期末都被分派了出 去。410為生成指令1緩沖寄存器301的選擇信號307和指令2緩沖寄存器300的選擇信 號304的生成邏輯,表示兩個緩沖器都為忙,而且本周期只有指令1被分派出去。411為生 成指令2緩沖寄存器300的選擇信號305的邏輯,表示本周期末兩個指令都被分派了出去, 或者指令2緩沖寄存器300本身為空。412為生成忙位1寄存器312置位信號310的邏輯, 表示指令1緩沖寄存器301本身為空并且有新指令將要寫進(jìn)來。413為生產(chǎn)忙位1寄存器 312清零信號311的邏輯,表示沒有新指令將要寫進(jìn)來并且緩沖寄存器中的指令被分派了 出去。414為忙位2的置位邏輯,表示緩沖器2本身為空并且有兩條新指令將寫進(jìn)來。415 為忙位2寄存器316清零信號315的生成邏輯的一種情況,表示沒有新指令寫進(jìn)來,已有的 指令都分派了出去,416為忙位2寄存器316清零信號315的生成邏輯的另一種情況,表示 只有1條新指令寫進(jìn)來并且已有的兩條指令都分派了出去,415和416合起來相或構(gòu)成了忙 位2寄存器316清零信號315的生成邏輯。最后,所有的控制信號都要經(jīng)過線程掩碼信號 417,為譯碼線程選擇信號203的延遲信號206的取反。注意,對于線程B備份緩沖器201, 這個掩碼信號為譯碼線程選擇信號203的延遲信號206。 圖5顯示了分派緩沖器202的內(nèi)部構(gòu)造,由兩個指令緩沖寄存器和它們各自對應(yīng) 的忙位寄存器組成。忙位表示對應(yīng)的緩沖寄存器中指令是否有效,高電平表示緩沖寄存器 中存在有效指令,低電平表示指令緩沖寄存器中數(shù)據(jù)為無效數(shù)據(jù)。圖5(a)、(b)表示指令l 緩沖寄存器501和指令2緩沖寄存器500及其對應(yīng)忙位寄存器的509和512結(jié)構(gòu)。在模式 信號204為低電平,即單線程模式下,指令2緩沖寄存器500和指令1緩沖寄存器501的輸入來自經(jīng)過選擇的信號組205中的Instl 502和Inst2 503,選擇通路506的控制邏輯以及 忙位控制邏輯與各個備份緩沖器中的完全類似,如圖4所示,但有兩點(diǎn)不同,一是輸入信號 不一樣,對應(yīng)于于400 405分別表示被線程選擇信號203選出的信號組205中的指令緩沖 器的空信號Emt,指令2有效信號12v,忙位515、516,來自譯碼分派邏輯113的指令分派成 功標(biāo)志信號Disl、Dis2 ;二是最后的控制信號的線程掩碼417為邏輯1。在模式信號204為 高電平,即雙線程模式下,指令2緩沖寄存器500、忙位寄存器509和指令1緩沖寄存器501 、 忙位寄存器510的輸入來自線程B備份緩沖器201輸出信號組208,包括指令CpyB—Instl 507、 CpyB_Inst2 504、忙位CpyB_Busyl 510、 CpyB_Busy2 511和線程A備份緩沖器200輸 出信號組207,包括指令CpyA_Instl 508、 CpyA_Inst2 505、忙位CpyA_Busyl 513、 CpyA_ Busy2 514。選來自哪個線程的備份緩沖器,取決于線程選擇信號203。
最后,還需要注意的是,以上列舉的僅是本發(fā)明的一個具體實施例。顯然,本發(fā)明 不限于以上實施例,還可以有許多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的內(nèi)容直 接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種多線程微處理器的指令譯碼緩沖裝置,特征在于指令譯碼緩沖裝置,設(shè)置在一種多線程的微處理器中,該微處理器包含取指部件(100)、譯碼部件(101)、執(zhí)行部件(102)和線程狀態(tài)控制部件(103);取指部件(100)包括基于現(xiàn)有技術(shù)的指令高速緩存(104)、對應(yīng)于兩個線程A和B的程序計數(shù)器A(105)、程序計數(shù)器B(106)、取指線程選擇邏輯(107)、對應(yīng)于兩個線程的基于先進(jìn)先出技術(shù)的指令緩沖器A(108)、指令緩沖器B(109)和緩沖器控制邏輯(110);譯碼部件(101)包括基于譯碼線程選擇邏輯(111)、譯碼緩沖裝置(112)和基于亂序超標(biāo)量技術(shù)的譯碼分派邏輯(113);執(zhí)行部件(102)包括基于流水化的訪存執(zhí)行部件(114)、算術(shù)執(zhí)行部件(115),其內(nèi)部含有各自的指令發(fā)射隊列,可以完成亂序執(zhí)行,按序提交;線程狀態(tài)控制部件(103)包括線程狀態(tài)寄存器、譯碼優(yōu)先級寄存器、帶寬分配控制寄存器,上述寄存器都向軟件提供接口,由軟件設(shè)定。
2. 根據(jù)權(quán)利要求1所述的多線程微處理器的指令譯碼緩沖裝置,特征在于譯碼緩沖 裝置(112)為設(shè)置在微處理器兩個線程的指令緩沖器A(108)、指令緩沖器B(109)和譯碼 分派邏輯(113)之間,寄存線程譯碼線程選擇邏輯(111)選出的線程A的指令對(116)或 線程B的指令對(117),根據(jù)譯碼分派邏輯(113)的指令分派結(jié)果信號(122)決定本次譯 碼線程選擇邏輯(111)選出的線程下一周期接收幾條新指令,并發(fā)出信號(123)合并信號 (112)指示取指控制器(110)決定本次譯碼線程選擇邏輯(111)選出的線程對應(yīng)的指令緩 沖器A(108)或者指令緩沖器B(109)的讀指針的動作。
3. 根據(jù)權(quán)利要求1所述的多線程微處理器的指令譯碼緩沖裝置,特征在于譯碼緩沖 裝置(112)在雙線程運(yùn)行模式下,無論當(dāng)前線程指令從譯碼緩沖裝置(112)成功分派幾條 到執(zhí)行部件(102)的發(fā)射隊列中,都可以根據(jù)譯碼線程選擇邏輯(111)下一周期的選擇結(jié) 果立即切換到另一個線程,并由譯碼分派邏輯(113)進(jìn)行另一線程的指令分派動作。
4. 根據(jù)權(quán)利要求2或3所述的多線程微處理器的指令譯碼緩沖裝置,特征在于譯碼 緩沖裝置(112)由線程A備份緩沖器(200)、線程B備份緩沖器(201)和分派緩沖器(202) 構(gòu)成,每個緩沖器都由對應(yīng)于兩條指令的兩個指令緩沖寄存器和忙位寄存器構(gòu)成。
全文摘要
本發(fā)明公開了一種多線程微處理器的指令譯碼緩沖裝置,該微處理器包含取指部件(100)、譯碼部件(101)、執(zhí)行部件(102)和線程狀態(tài)控制部件(103);取指部件(100)包括指令高速緩存(104)、對應(yīng)于兩個線程A和B的程序計數(shù)器A(105)、程序計數(shù)器B(106)、取指線程選擇邏輯(107)、對應(yīng)于兩個線程的指令緩沖器A(108)、指令緩沖器B(109)和緩沖器控制邏輯(110);譯碼部件(101)包括譯碼線程選擇邏輯(111)、譯碼緩沖裝置(112)和譯碼分派邏輯(113);執(zhí)行部件(102)包括訪存執(zhí)行部件(114)和算術(shù)執(zhí)行部件(115),線程狀態(tài)控制部件(103)包括線程狀態(tài)寄存器、譯碼優(yōu)先級寄存器和帶寬分配控制寄存器。
文檔編號G06F9/38GK101763251SQ201010039519
公開日2010年6月30日 申請日期2010年1月5日 優(yōu)先權(quán)日2010年1月5日
發(fā)明者劉鵬, 王星 申請人:浙江大學(xué)