欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種超標(biāo)量微處理器中控制亂序發(fā)射的飛行記分牌裝置的制作方法

文檔序號(hào):6483056閱讀:192來源:國知局
專利名稱:一種超標(biāo)量微處理器中控制亂序發(fā)射的飛行記分牌裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及超標(biāo)量微處理器的指令流水線設(shè)計(jì)。
背景技術(shù)
指令流水線是微處理器的核心部分,其性能的高低至關(guān)重要。當(dāng)前的 超標(biāo)量微處理器指令流水線都支持亂序發(fā)射和亂序執(zhí)行,指令流水線通常 包括取指、譯碼、寄存器重命名、發(fā)射、讀寄存器、執(zhí)行、退出等幾個(gè)基 本的流水線站臺(tái),其中寄存器重命名和發(fā)射站臺(tái)又是指令流水線上技術(shù)含 量最高,面積和功耗所占比重最大的部分,直接影響指令流水線的能耗比。
指令中使用的是邏輯寄存器,前后兩條指令寫同一個(gè)邏輯寄存器,表 示這兩條指令之間存在寫后寫相關(guān);前一條指令讀一個(gè)邏輯寄存器,后一 條指令寫同一個(gè)邏輯寄存器,表示這兩條指令之間存在讀后寫相關(guān);前一 條指令寫一個(gè)邏輯寄存器,后一條指令讀同一個(gè)邏輯寄存器,表示這兩條 指令之間存在寫后讀相關(guān)。為了實(shí)現(xiàn)亂序發(fā)射,寄存器重命名站臺(tái)和發(fā)射 站臺(tái)需要相輔相成,解除寫后寫相關(guān)和讀后寫相關(guān),維持寫后讀相關(guān)。軟 件可見的邏輯寄存器的數(shù)量非常有限(假設(shè)數(shù)量為n),指令之間存在寫 后寫相關(guān)和讀后寫相關(guān)的情況非常頻繁,為此超標(biāo)量微處理器內(nèi)部設(shè)置了 大量的物理寄存器(假設(shè)數(shù)量為m),用于指令運(yùn)行期間暫存和傳遞數(shù)據(jù)。 傳統(tǒng)的控制亂序發(fā)射的裝置是在寄存器重命名站臺(tái)設(shè)置物理寄存器映 射表,記錄邏輯寄存器與物理寄存器最近的映射關(guān)系,同時(shí),還設(shè)置物理 寄存器恢復(fù)列表,用于轉(zhuǎn)移預(yù)測(cè)失敗和指令發(fā)生異常時(shí)恢復(fù)物理寄存器映射表。在發(fā)射站臺(tái)設(shè)置物理寄存器狀態(tài)表,記錄每個(gè)物理寄存器的狀態(tài)。
初始時(shí),n個(gè)邏輯寄存器固定映射到n個(gè)物理寄存器,剩余m-n個(gè)空 閑物理寄存器。當(dāng)一條目標(biāo)寄存器有效的指令進(jìn)入寄存器重命名站臺(tái)時(shí), 獲取一個(gè)真正可寫的空閑物理寄存器。當(dāng)該指令進(jìn)入發(fā)射站臺(tái)時(shí),設(shè)置所 寫物理寄存器為封鎖狀態(tài)。當(dāng)指令即將執(zhí)行完成時(shí),解除所寫物理寄存器 的封鎖狀態(tài)。當(dāng)一條源寄存器有效的指令進(jìn)入寄存器重命名站臺(tái)時(shí),獲取 真正可讀的物理寄存器。當(dāng)該指令準(zhǔn)備發(fā)射時(shí),査詢所讀物理寄存器是否 被封鎖,如果封鎖,則表示源寄存器還沒有最新的值,指令不能被發(fā)射到 執(zhí)行站臺(tái);如果沒有封鎖,則表示源寄存器中已有最新的值,指令可以被 發(fā)射到執(zhí)行站臺(tái)。
經(jīng)過了寄存器重命名,但還沒有退出的指令稱為飛行的指令,存放在 重排序緩沖中。受寄存器重命名機(jī)制的限制,飛行的目標(biāo)寄存器有效的指 令數(shù)最多等于最大空閑物理寄存器數(shù)(m-n),發(fā)射站臺(tái)只需控制這些飛 行指令間的寫后讀相關(guān),即理論上設(shè)置m-n位記分牌即可。傳統(tǒng)的亂序 控制裝置設(shè)置了 m位記分牌,每一位對(duì)應(yīng)一個(gè)物理寄存器,任何時(shí)刻, 都至少有n位記分牌沒有發(fā)揮作用,這意味著面積和功耗的開銷存在浪 費(fèi),而且訪問物理寄存器狀態(tài)表的延遲也很長(zhǎng)。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是如何在不影響微處理器性能的前提下,設(shè) 置最少的記分牌位數(shù),解決指令之間因使用寄存器引起的寫后讀相關(guān),保 證指令亂序發(fā)射和亂序執(zhí)行的正確性。
為解決上述技術(shù)問題,本發(fā)明的飛行記分牌裝置采用如下技術(shù)方案實(shí)現(xiàn)該裝置包括一個(gè)飛行記分牌映射表、 一個(gè)飛行記分牌恢復(fù)列表和一個(gè) 飛行記分牌狀態(tài)表,其中所述的飛行記分牌映射表記錄每個(gè)邏輯寄存器 與飛行記分牌號(hào)最近的映射關(guān)系,所述的飛行記分牌恢復(fù)列表記錄了所有 飛行指令的目標(biāo)邏輯寄存器與飛行記分牌號(hào)上一次的映射關(guān)系,用于轉(zhuǎn)移 指令預(yù)測(cè)失敗和指令產(chǎn)生異常時(shí)恢復(fù)飛行記分牌映射表和飛行記分牌狀 態(tài)表,所述的飛行記分牌狀態(tài)表記錄了飛行指令的目標(biāo)物理寄存器狀態(tài), 控制讀該物理寄存器的指令是否允許被發(fā)射到執(zhí)行部件;當(dāng)一條目標(biāo)寄存 器有效的指令經(jīng)過該裝置時(shí),按到達(dá)的順序獲得一個(gè)飛行記分牌號(hào),并設(shè) 置為封鎖狀態(tài),在指令即將執(zhí)行完成的前一拍,解除對(duì)應(yīng)飛行記分牌的封 鎖狀態(tài);當(dāng)一條源寄存器有效的指令經(jīng)過該裝置時(shí),判斷該指令發(fā)射時(shí)是 否需要檢查飛行記分牌狀態(tài),如果不需要檢查,或需要檢查的飛行記分牌 沒有被封鎖,則指令允許被發(fā)射到執(zhí)行部件;當(dāng)發(fā)生轉(zhuǎn)移預(yù)測(cè)失敗或指令 異常時(shí),通過讀飛行記分牌恢復(fù)列表將飛行記分牌裝置恢復(fù)到轉(zhuǎn)移指令或 異常指令執(zhí)行之前的狀態(tài)。
采用本發(fā)明的飛行記分牌裝置,用于控制指令亂序發(fā)射的記分牌位數(shù) 等于最大的空閑物理寄存器數(shù),比起傳統(tǒng)的記分牌裝置而言,減小了面積 和功耗,縮短了關(guān)鍵路徑延遲短,在不影響微處理器性能的前提下,提高 了芯片的能耗比。


下面結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明
圖1是本發(fā)明中飛行記分牌裝置在整個(gè)指令流水線上的位置示意圖。
圖2是本發(fā)明中寄存器重命名站臺(tái)中設(shè)置的飛行記分牌映射表和飛行記分牌恢復(fù)列表結(jié)構(gòu)示意圖。
圖3是本發(fā)明中發(fā)射站臺(tái)中設(shè)置的飛行記分牌狀態(tài)表結(jié)構(gòu)示意圖。
具體實(shí)施例方式
如圖l所示,本發(fā)明的裝置需要在寄存器重命名站臺(tái)設(shè)置一個(gè)飛行記 分牌映射表和一個(gè)飛行記分牌恢復(fù)列表,在發(fā)射站臺(tái)設(shè)置一個(gè)飛行記分牌 狀態(tài)表。
如圖2所示,飛行記分牌映射表記錄了邏輯寄存器與飛行記分牌最近 的映射關(guān)系,條目數(shù)等于邏輯寄存器數(shù)(n),每個(gè)條目包含有效位和飛行 記分牌號(hào),有效位用l位表示,飛行記分牌號(hào)用1og2(m-n)位表示。有效 位為"0",表示指令的源寄存器早已準(zhǔn)備好,指令在發(fā)射時(shí)不用査詢飛行 記分牌狀態(tài)表;有效位為"1",表示指令的源寄存器可能還沒有準(zhǔn)備好, 指令在發(fā)射時(shí)需要査詢飛行記分牌狀態(tài)表。
如圖2所示,飛行記分牌恢復(fù)列表記錄了所有飛行指令的目標(biāo)邏輯寄 存器與飛行記分牌號(hào)上一次的映射關(guān)系,用于轉(zhuǎn)移指令預(yù)測(cè)失敗和指令產(chǎn) 生異常時(shí)恢復(fù)飛行記分牌映射表和飛行記分牌狀態(tài)表,條目數(shù)等于最大空 閑物理寄存器數(shù)(m-n),每個(gè)條目存放邏輯寄存器號(hào)、有效位和飛行記分 牌號(hào)。邏輯寄存器號(hào)用1og2(n)位表示,有效位用l位表示,飛行記分牌 號(hào)用1og2(m-n)位表示。飛行記分牌恢復(fù)列表作為先進(jìn)先出的循環(huán)隊(duì)列, 分別設(shè)置了恢復(fù)頭指針和恢復(fù)尾指針進(jìn)行管理,指針都用log2(m-n)位表 示,恢復(fù)頭指針指示出隊(duì)列的條目,恢復(fù)尾指針指示進(jìn)隊(duì)列的條目。
如圖3所示,飛行記分牌狀態(tài)表記錄了飛行指令的物理寄存器狀態(tài), 條目數(shù)等于最大空閑物理寄存器數(shù)(m-n),每個(gè)條目包含封鎖標(biāo)志和解除封鎖計(jì)數(shù)器,封鎖標(biāo)志用一位表示,解除封鎖計(jì)數(shù)器的位數(shù)與指令執(zhí)行的 最大周期數(shù)相關(guān),解除封鎖計(jì)數(shù)器所能表示的最大值等于指令執(zhí)行的最大 周期數(shù)。封鎖位為"0",表示讀該飛行記分牌號(hào)的指令可以發(fā)射;封鎖標(biāo) 志為"1",表示讀該飛行記分牌號(hào)的指令不可以發(fā)射。當(dāng)解除封鎖計(jì)數(shù)器 不為"0",也不為最大值時(shí),每拍執(zhí)行減"1"操作,當(dāng)解除封鎖計(jì)數(shù)器 從"1"減為"0"時(shí),置本條目的封鎖標(biāo)志為"0"。
初始時(shí),飛行記分牌映射表中所有條目的有效位為"0",恢復(fù)頭指針
和恢復(fù)尾指針都為"o",飛行記分牌狀態(tài)表中所有條目封鎖標(biāo)志為"0",
解除封鎖計(jì)數(shù)器的值為"o"。
當(dāng)一條目標(biāo)寄存器有效的指令到達(dá)寄存器重命名站臺(tái)時(shí),將恢復(fù)尾指 針的值作為飛行記分牌號(hào)分配給指令的目標(biāo)寄存器,先用新分配的飛行記 分牌號(hào)全相聯(lián)查詢飛行記分牌映射表,如果找到某個(gè)條目中的飛行記分牌
號(hào)與新分配的飛行記分牌號(hào)相同,則置條目的有效位為"o"。接著用目標(biāo)
寄存器索引飛行記分牌映射表,先將條目中原來的有效位、飛行記分牌號(hào) 和目標(biāo)寄存器號(hào)一起寫入飛行記分牌恢復(fù)列表中,并將恢復(fù)尾指針加"1 ", 然后將獲得的飛行記分牌號(hào)寫入飛行記分牌映射表?xiàng)l目中,置有效位為 "1"。當(dāng)該指令到達(dá)發(fā)射站臺(tái)時(shí),用獲得的飛行記分牌號(hào)索引飛行記分牌 狀態(tài)表,設(shè)置條目的封鎖標(biāo)志為"l"。當(dāng)該指令發(fā)射時(shí),如果該指令是非 訪存指令,則將指令的執(zhí)行周期減"l"后寫入條目的解除封鎖計(jì)數(shù)器中, 以后計(jì)數(shù)器自動(dòng)執(zhí)行減"1"操作,并在指令即將執(zhí)行完成時(shí)解除飛行記
分牌;如果該指令是訪存指令,則將最大值寫入條目的解除封鎖計(jì)數(shù)器中, 計(jì)數(shù)器不執(zhí)行減"1"操作,由訪存部件在即將執(zhí)行完成時(shí)解除飛行記分牌。當(dāng)該指令退出時(shí),將恢復(fù)頭指針加"1"。
當(dāng)一條源寄存器有效的指令到達(dá)寄存器重命名站臺(tái)時(shí),用源寄存器號(hào) 索引飛行記分牌映射表,將條目中的有效位和飛行記分牌號(hào)隨指令一起發(fā)
送到發(fā)射站臺(tái),存入發(fā)射隊(duì)列。當(dāng)該指令準(zhǔn)備發(fā)射時(shí),如果有效位為"o", 則該指令可以發(fā)射;如果有效位為"l",用所讀的飛行記分牌號(hào)索引飛行 記分牌狀態(tài)表,如果封鎖標(biāo)志為"0",則該指令可以發(fā)射;如果封鎖標(biāo)
志為"1",則該指令不可以發(fā)射,將繼續(xù)在發(fā)射隊(duì)列中等待。
在超標(biāo)量微處理器中,發(fā)生轉(zhuǎn)移預(yù)測(cè)失敗時(shí),要求立即將流水線上所 有的狀態(tài)恢復(fù)到轉(zhuǎn)移指令剛執(zhí)行完的狀態(tài),而不需要等到轉(zhuǎn)移指令退出。 轉(zhuǎn)移指令之后推測(cè)執(zhí)行了很多條指令,這些指令對(duì)飛行記分牌裝置產(chǎn)生了 破壞,飛行記分牌裝置必須在新的指令到達(dá)之前進(jìn)行恢復(fù)。每條轉(zhuǎn)移指令 經(jīng)過寄存器重命名站臺(tái)時(shí),都攜帶了當(dāng)時(shí)的恢復(fù)尾指針值。當(dāng)發(fā)生轉(zhuǎn)移預(yù) 測(cè)失敗時(shí),需要回退當(dāng)前恢復(fù)尾指針和轉(zhuǎn)移指令攜帶的恢復(fù)尾指針之間所 有的映射關(guān)系。恢復(fù)方法是,從當(dāng)前恢復(fù)尾指針開始讀飛行記分牌恢復(fù)列 表,用條目中的邏輯寄存器號(hào)索引飛行記分牌映射表,將條目中的有效位 和飛行記分牌號(hào)寫入飛行記分牌映射表中,并通知飛行記分牌狀態(tài)表,置
對(duì)應(yīng)封鎖標(biāo)志為"o",然后將當(dāng)前恢復(fù)尾指針減"r',直到當(dāng)前恢復(fù)尾指
針的值等于轉(zhuǎn)移指令攜帶的恢復(fù)尾指針值為止。
如果指令退出時(shí)出現(xiàn)異常,也要求將流水線上所有的狀態(tài)恢復(fù)到該指 令執(zhí)行之前的狀態(tài),需要回退當(dāng)前恢復(fù)尾指針和當(dāng)前恢復(fù)頭指針之間所有 的映射關(guān)系,恢復(fù)方法類似轉(zhuǎn)移預(yù)測(cè)失敗。
本發(fā)明中的飛行記分牌裝置與傳統(tǒng)的控制亂序發(fā)射裝置的區(qū)別在于傳統(tǒng)的控制亂序發(fā)射裝置中,記分牌位數(shù)等于物理寄存器數(shù)(m),直接 用物理寄存器索引物理寄存器狀態(tài)表時(shí),所有寫同一個(gè)物理寄存器的指令 設(shè)置同一個(gè)記分牌位。本發(fā)明中的飛行記分牌裝置中,記分牌位數(shù)等于空 閑物理寄存器數(shù)(m-n),用飛行記分牌號(hào)索引飛行記分牌狀態(tài)表。飛行 記分牌號(hào)按指令到達(dá)寄存器重命名站臺(tái)的順序依次分配,所有寫同一個(gè)物 理寄存器的指令不一定設(shè)置同一記分牌位。
權(quán)利要求
1、一種超標(biāo)量微處理器中的控制亂序發(fā)射的飛行記分牌裝置,其特征在于該裝置包括在所述的超標(biāo)量微處理器的寄存器重命名站臺(tái)設(shè)置一個(gè)飛行記分牌映射表和一個(gè)飛行記分牌恢復(fù)列表,在發(fā)射站臺(tái)設(shè)置一個(gè)飛行記分牌狀態(tài)表,所述的飛行記分牌映射表記錄每個(gè)邏輯寄存器與飛行記分牌號(hào)最近的映射關(guān)系;所述的飛行記分牌恢復(fù)列表記錄了所有飛行指令的目標(biāo)邏輯寄存器與飛行記分牌號(hào)上一次的映射關(guān)系,用于轉(zhuǎn)移指令預(yù)測(cè)失敗和指令產(chǎn)生異常時(shí)恢復(fù)飛行記分牌映射表和飛行記分牌狀態(tài)表;所述的飛行記分牌狀態(tài)表記錄了飛行指令的目標(biāo)物理寄存器狀態(tài),控制讀該物理寄存器的指令是否允許被發(fā)射到執(zhí)行部件。
2、 如權(quán)利要求1所述的飛行記分牌映射表的裝置,其特征在于所 述的飛行記分牌映射表的條目數(shù)等于邏輯寄存器的數(shù)量,每個(gè)條目包含一 個(gè)有效位和一個(gè)飛行記分牌號(hào),有效位為"0",表示指令發(fā)射時(shí)不用檢査 飛行記分牌狀態(tài)表,有效位為"l",表示指令發(fā)射時(shí)需要檢查飛行記分牌 狀態(tài)表,飛行記分牌號(hào)所能表示的最大值加"1"等于最大空閑物理寄存 器的數(shù)量,每個(gè)飛行記分牌號(hào)對(duì)應(yīng)飛行記分牌狀態(tài)表中的一個(gè)條目。
3、 如權(quán)利要求1所述的飛行記分牌恢復(fù)列表的裝置,其特征在于飛行記分牌恢復(fù)列表的條目數(shù)等于最大空閑物理寄存器的數(shù)量,每個(gè)條目包 含一個(gè)邏輯寄存器號(hào), 一個(gè)有效位和一個(gè)飛行記分牌號(hào)。
4、 如權(quán)利要求1所述的飛行記分牌狀態(tài)表的裝置,其特征在于飛行 記分牌狀態(tài)表的條目數(shù)等于最大空閑物理寄存器的數(shù)量,每個(gè)條目包含一 個(gè)封鎖標(biāo)志和一個(gè)解除封鎖計(jì)數(shù)器。
5、 如權(quán)利要求l所述的飛行記分牌的裝置,其特征在于當(dāng)一條目 標(biāo)寄存器有效的指令到達(dá)寄存器重命名站臺(tái)時(shí),將恢復(fù)尾指針的值作為飛 行記分牌號(hào)分配給該指令,并用新分配的飛行記分牌號(hào)全相聯(lián)査詢飛行記 分牌映射表,如果找到某個(gè)條目中的飛行記分牌號(hào)與新分配的飛行記分牌 號(hào)相同,則置條目的有效位為"0",然后用目標(biāo)寄存器號(hào)索引飛行記分牌 映射表,先將條目中原來的有效位、飛行記分牌號(hào)和目標(biāo)寄存器號(hào)一起寫 入飛行記分牌恢復(fù)列表,并將恢復(fù)尾指針加"l",然后將獲得的飛行記分 牌號(hào)寫入飛行記分牌映射表?xiàng)l目中,置有效位為"l",當(dāng)指令到達(dá)發(fā)射站 臺(tái)時(shí),用獲得的飛行記分牌號(hào)索引飛行記分牌狀態(tài)表,置對(duì)應(yīng)條目中的封 鎖標(biāo)志為"1",當(dāng)指令退出時(shí),恢復(fù)列表頭指針加"1"。
6、 如權(quán)利要求l所述的飛行記分牌的裝置,其特征在于當(dāng)一條源 寄存器有效的指令到達(dá)寄存器重命名站臺(tái)時(shí),用源寄存器號(hào)索引飛行記分 牌映射表,將條目中的有效位和飛行記分牌號(hào)隨指令一起發(fā)送到發(fā)射站 臺(tái),當(dāng)該指令準(zhǔn)備發(fā)射時(shí),如果有效位為"0",則該指令允許發(fā)射,如果 有效位為"1",則根據(jù)對(duì)應(yīng)飛行記分牌狀態(tài)表中的封鎖標(biāo)志來決定是否允 許發(fā)射。
7、 如權(quán)利要求l所述的飛行記分牌的裝置,其特征在于每條轉(zhuǎn)移 指令經(jīng)過寄存器重命名站臺(tái)時(shí),攜帶當(dāng)前的恢復(fù)尾指針值,當(dāng)發(fā)生轉(zhuǎn)移預(yù) 測(cè)失敗時(shí),依次讀出當(dāng)前恢復(fù)尾指針和轉(zhuǎn)移指令攜帶的恢復(fù)尾指針之間的 所有飛行記分牌恢復(fù)列表?xiàng)l目,將有效位和飛行記分牌號(hào)寫入所記錄的邏 輯寄存器號(hào)索引的飛行記分牌映射表中,并解除對(duì)該飛行記分牌號(hào)的封 鎖;當(dāng)指令發(fā)生異常時(shí),依次讀出當(dāng)前恢復(fù)尾指針和當(dāng)前恢復(fù)頭指針之間的所有飛行記分牌恢復(fù)列表?xiàng)l目,將有效位和飛行記分牌號(hào)寫入所記錄的 邏輯寄存器號(hào)索引的飛行記分牌映射表中,并解除對(duì)該飛行記分牌號(hào)的封 鎖。
全文摘要
本發(fā)明公開了一種超標(biāo)量微處理器中控制亂序發(fā)射的飛行記分牌裝置,該裝置包括一個(gè)飛行記分牌映射表,一個(gè)飛行記分牌恢復(fù)列表和一個(gè)飛行記分牌狀態(tài)表。對(duì)于目標(biāo)寄存器有效的指令,該裝置動(dòng)態(tài)跟蹤該指令目標(biāo)寄存器的狀態(tài),對(duì)于源寄存器有效的指令,該裝置實(shí)時(shí)提供該指令源寄存器是否可讀的信息,用于判斷指令是否可以發(fā)射到執(zhí)行部件。該裝置利用較少的硬件資源解決了指令之間因使用寄存器引起的寫后讀相關(guān),保證指令亂序發(fā)射和亂序執(zhí)行的正確性,提高了微處理器的能耗比。
文檔編號(hào)G06F9/38GK101566942SQ20091005736
公開日2009年10月28日 申請(qǐng)日期2009年6月3日 優(yōu)先權(quán)日2009年6月3日
發(fā)明者飛 尹 申請(qǐng)人:上海高性能集成電路設(shè)計(jì)中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
绍兴市| 古交市| 淮北市| 泗洪县| 修水县| 鹿邑县| 清远市| 卢湾区| 从江县| 南通市| 嵊泗县| 额敏县| 巴林右旗| 南溪县| 阿克| 赤城县| 靖安县| 东阿县| 曲松县| 青龙| 凤凰县| 禹城市| 苏尼特左旗| 南漳县| 南溪县| 石阡县| 灯塔市| 延安市| 鄂州市| 长岛县| 龙陵县| 绵阳市| 平塘县| 绥德县| 松溪县| 杭锦后旗| 红安县| 淅川县| 普格县| 上蔡县| 通辽市|