亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Simd處理器中寫合并和寫撤銷的處理裝置和方法

文檔序號:6630290閱讀:225來源:國知局
Simd處理器中寫合并和寫撤銷的處理裝置和方法
【專利摘要】本發(fā)明提供了一種SIMD處理器中寫合并和寫撤銷的處理裝置和方法,體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單元;標(biāo)記表的輸出連接到標(biāo)記分派單元;標(biāo)記分派單元從標(biāo)記表中對當(dāng)前需要寫回寄存器的指令分派一個標(biāo)記,該標(biāo)記與已經(jīng)進(jìn)入流水線中的指令分派的標(biāo)記不同,并輸出連接到標(biāo)記寄存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標(biāo)記分派單元分派的標(biāo)記寫入標(biāo)記寄存器堆。本發(fā)明能夠提高SIMD結(jié)構(gòu)處理器的執(zhí)行效率,降低或幾乎不增加編譯器設(shè)計的復(fù)雜度。
【專利說明】SIMD處理器中寫合并和寫撤銷的處理裝置和方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明適用于處理器體系結(jié)構(gòu)設(shè)計領(lǐng)域,涉及SMD結(jié)構(gòu)處理器中支持寫合并和 寫撤銷的指令結(jié)果寫回邏輯的設(shè)計。

【背景技術(shù)】
[0002] 目前處理器設(shè)計中,一方面處理指令集設(shè)計提供了更多的指令支持,如DSP處理 器提供的乘累加指令、支持浮點計算的處理器提供的單精度浮點指令,甚至擴展精度浮點 操作指令;另一方面為了提高處理器工作的主頻,處理器的流水線被進(jìn)一步細(xì)分,完成一條 復(fù)雜指令的執(zhí)行甚至需要十多級流水操作。為了提高處理器的指令執(zhí)行效率,對指令的流 水段劃分會按照指令的功能分成不同長度的流水線,如寄存器傳輸、算術(shù)邏輯等簡單操作 指令具有較短的流水線長度,而浮點計算等復(fù)雜操作指令有較長的流水線。
[0003] 對于SMD結(jié)構(gòu)的處理器,不同長度的流水線劃分會導(dǎo)致以下沖突:
[0004] 1.寫資源沖突。流水線內(nèi)的多條指令在同一拍提交執(zhí)行指令執(zhí)行結(jié)果,且指令寫 回的目的寄存器是SIMD結(jié)構(gòu)中同一組寄存器或不同組寄存器,由于寄存器端口限制,每次 只能一條指令寫入寄存器,導(dǎo)致寫資源沖突。
[0005] 2.寫后寫沖突。由于指令周期數(shù)不同,會出現(xiàn)較短執(zhí)行周期數(shù)指令先于較長執(zhí)行 周期指令將結(jié)果寫回寄存器,導(dǎo)致執(zhí)行結(jié)果錯誤。
[0006] -般靜態(tài)流水線的處理器設(shè)計中,會檢測指令的各類相關(guān)性,并將導(dǎo)致相關(guān)的后 續(xù)指令停頓,待較老的指令執(zhí)行完成后再解除較新指令的停頓。這樣的結(jié)構(gòu)設(shè)計方法,對與 具有較長流水段的指令引起的多拍停頓,指令執(zhí)行效率不高。另一方面,需要大量的相關(guān)檢 測邏輯來判斷流水線中各指令的寫操作,來避免沖突發(fā)生。尤其對于支持SMD結(jié)構(gòu)的處理 器,根據(jù)并行度不同,一條指令的執(zhí)行結(jié)果會對多個寄存器進(jìn)行寫操作,使得檢測和解除相 關(guān)的邏輯復(fù)雜度大幅增加。


【發(fā)明內(nèi)容】

[0007] 為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種SMD處理器中寫合并和寫撤銷的處 理裝置,能夠提高SMD結(jié)構(gòu)處理器的執(zhí)行效率,對于具有多并行度的SMD結(jié)構(gòu)處理器,本 發(fā)明能有效減少由于不同流水線長度的指令執(zhí)行結(jié)束提交結(jié)果時,由于各類沖突引起的流 水線停頓周期數(shù);本發(fā)明可以使得編譯器對于背景中提到的幾類指令沖突是透明的,降低 或幾乎不增加編譯器設(shè)計的復(fù)雜度。
[0008] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種SMD處理器寫合并和寫撤銷 的處理裝置包括體系結(jié)構(gòu)寄存器堆、標(biāo)記寄存器堆、標(biāo)記分派單元和一個標(biāo)記表。
[0009] 所述的體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單 元;標(biāo)記表的輸出連接到標(biāo)記分派單元;標(biāo)記分派單元從標(biāo)記表中對當(dāng)前需要寫回寄存器 的指令分派一個標(biāo)記,該標(biāo)記與已經(jīng)進(jìn)入流水線中的指令分派的標(biāo)記不同,并輸出連接到 標(biāo)記寄存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標(biāo)記分派單元分派的標(biāo)記寫入標(biāo) 記寄存器堆;
[0010] 所述標(biāo)記寄存器堆是體系結(jié)構(gòu)寄存器堆的標(biāo)記存儲單元,與體系結(jié)構(gòu)寄存器堆 一一對應(yīng);標(biāo)記寄存器用于當(dāng)指令需要將數(shù)據(jù)寫入寄存器時,在對應(yīng)的標(biāo)記寄存器上寫入 一個分配給當(dāng)前執(zhí)行指令的標(biāo)記;
[0011] 所述標(biāo)記表中包含一個獨立的標(biāo)記和一組可分配的標(biāo)記;所述獨立標(biāo)記表示寄存 器不會被任何已進(jìn)入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標(biāo)記表中的可分配標(biāo)記由標(biāo)記分 派單元分配給進(jìn)入執(zhí)行單元的指令;可分配標(biāo)記用來對流水的指令和寄存器進(jìn)行標(biāo)記;在 寄存器的標(biāo)記和指令攜帶的標(biāo)記一致時,指令的結(jié)果數(shù)據(jù)才能寫回寄存器。
[0012] 所述體系結(jié)構(gòu)寄存器堆包括W個寄存器,從0?(W-I)對寄存器依次索引;寄存 器堆的訪問索引為W位,W= 2w;W個寄存器分成M組,每組N個寄存器,其中,N= 2n,N為 SMD結(jié)構(gòu)的最大并行度,表明組內(nèi)包含的寄存器的數(shù)量;M= 2m,M為寄存器堆的組數(shù)量; n,m都是非負(fù)整數(shù),m+n=w;
[0013] 所述體系結(jié)構(gòu)寄存器堆中,寄存器訪問的索引位寬為m+n位,m+n=W ;其中,索引 的(m+n-l,n)位為組選擇信號,索引的(η-1,0)位為組內(nèi)選擇信號;寄存器的讀操作根據(jù)指 令的寄存器操作數(shù)索引,其中的高(m+n-l,n)位作為寄存器訪問的組號,從寄存器堆中讀 出一組寄存器,再根據(jù)低位索引(η_1,0)位和并行度P將相應(yīng)的數(shù)據(jù)放在數(shù)據(jù)總線上;寄存 器的寫操作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引 (η-1,0)位和并行度P譯碼出相應(yīng)的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù);
[0014] 所述體系結(jié)構(gòu)寄存器堆的物理訪問和指令邏輯訪問的映射關(guān)系是:寄存器堆的邏 輯訪問索引為W位,W= 2w;所述SMD處理器支持多種并行度P,其中P= 2p,0彡P(guān)彡η; 當(dāng)訪問的并行度為P時,由索引(w_l,p)位將寄存器堆邏輯地分成2(w-p)組,每組內(nèi)包括 P= 2p個寄存器;對應(yīng)到物理訪問上,索引的(w-l,n)位為寄存器的邏輯組所在的物理寄 存器組,索引的(n_l,p)位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
[0015] 本發(fā)明還提供了一種SMD處理器寫合并和寫撤銷的處理方法,包括以下步驟: [0016] 步驟1、判斷當(dāng)前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器 堆,由所述標(biāo)記分派單元為該指令分派一個標(biāo)記;否則,標(biāo)記分派單元不為指令分派標(biāo)記; 根據(jù)并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當(dāng)前指令僅分配 一個標(biāo)記;
[0017] 步驟2、將分派的標(biāo)記寫入指令目的寄存器對應(yīng)的標(biāo)記寄存器中;
[0018] 步驟3、指令攜帶分派的標(biāo)記進(jìn)入處理器執(zhí)行單元,執(zhí)行指令功能;
[0019] 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標(biāo)記與指令目的寄存 器的標(biāo)記進(jìn)行比對,如果標(biāo)記相同,將指令的執(zhí)行結(jié)果寫回寄存器,進(jìn)入步驟5;否則,指令 的執(zhí)行結(jié)果不寫回;
[0020] 步驟5、如果寄存器寫入,將對應(yīng)的寄存器的標(biāo)記清除。
[0021]所述步驟4包括以下步驟:
[0022] 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物 理寄存器組的組號;
[0023]步驟4-2、根據(jù)4-1得到的組號,從標(biāo)記寄存器堆讀出該組寄存器的標(biāo)記;讀出的 一組標(biāo)記有N個,依次為tagO?tagN-1,N為最大并行度;
[0024]步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進(jìn)行重排, 產(chǎn)生寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號;
[0025] 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進(jìn)行復(fù)制;復(fù)制的方法是:數(shù)據(jù)總 線的寬度為N個數(shù)據(jù);如果并行度P= 1,數(shù)據(jù)總線上第0個數(shù)據(jù)有效,將這個數(shù)據(jù)賦值到數(shù) 據(jù)0?N-I上;如果并行度為P,數(shù)據(jù)總線上第0?P-I個數(shù)據(jù)有效,將這P個數(shù)據(jù)復(fù)制N/P 份到數(shù)據(jù)P?N-I上;然后將多個寫回指令攜帶的標(biāo)記逐個分別與tagO?tagN-Ι進(jìn)行比 較,如果標(biāo)記一致,就將該指令對應(yīng)復(fù)制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線 上,并置該路數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效;寫回數(shù)據(jù)總線 位置和組內(nèi)的寄存器的位置一一對應(yīng);
[0026]步驟4-4、按照對應(yīng)數(shù)據(jù)和寄存器的位置對應(yīng)關(guān)系,在寫使能有效的情況下將數(shù)據(jù) 與入寄存器內(nèi)。
[0027] 所述步驟5中,清除寄存器的標(biāo)記的操作是將標(biāo)記表中提到的一個獨立的標(biāo)記項 寫入標(biāo)記寄存器中。
[0028] 本發(fā)明的有益效果是:處理方法及結(jié)構(gòu)適用于多周期流水線的寫回處理,提高了 寫入的并發(fā)程度,減少的流水線的停頓;突破了傳統(tǒng)處理器設(shè)計中每一個節(jié)拍僅允許一條 指令執(zhí)行結(jié)果寫回的限制。本發(fā)明提供的方法和結(jié)構(gòu)可用于處理器設(shè)計技術(shù)的改進(jìn),特別 是SoC技術(shù)中處理器IP核的改進(jìn)。

【專利附圖】

【附圖說明】
[0029] 圖1是本發(fā)明實施實例指令譯碼的方法流程圖;
[0030] 圖2是本發(fā)明實施實例寫回操作合并和撤銷的方法流程圖。

【具體實施方式】
[0031]下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實施 例。
[0032] 本發(fā)明提供一種SMD結(jié)構(gòu)處理器中指令執(zhí)行結(jié)果寫合并和寫撤銷的處理裝置和 方法。
[0033] 所述SMD處理器寫合并和寫撤銷的處理裝置包括:體系結(jié)構(gòu)寄存器堆、標(biāo)記寄存 器堆、標(biāo)記分派單兀、一個標(biāo)記表。
[0034]以上部件的連接關(guān)系為:體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到 處理器的執(zhí)行單元。標(biāo)記表的輸出連接到標(biāo)記分派單元。標(biāo)記分派單元從標(biāo)記表中選擇一 個標(biāo)記,并輸出連接到標(biāo)記寄存器堆。譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標(biāo)記分派 單元分派的標(biāo)記寫入標(biāo)記寄存器堆。其中譯碼邏輯和執(zhí)行單元為處理器內(nèi)的通用部件,在 本專利中不再贅述。
[0035]所述體系結(jié)構(gòu)寄存器堆包括W個寄存器,從0?(W-I)對寄存器依次索引。寄存 器堆的訪問索引為w位,W= 2w.所述寄存器堆的物理實現(xiàn)結(jié)構(gòu)是:W個寄存器分成M組, 每組N個寄存器。其中,N= 2n,N為SMD結(jié)構(gòu)的最大并行度,表明組內(nèi)包含的寄存器的數(shù) 量;M= 2m,M為寄存器堆的組數(shù)量;n,m都是非負(fù)整數(shù),m+n=w。寄存器堆按照SMD處理 器的最大并行度N,將N個寄存器組成一組,整個寄存器堆分成M組。
[0036]所述SMD結(jié)構(gòu)處理器內(nèi)的體系結(jié)構(gòu)寄存器堆在實現(xiàn)上是按組訪問。由上述寄存 器堆的實現(xiàn)結(jié)構(gòu)設(shè)計,寄存器訪問的索引位寬為m+n位,m+n=w。其中,索引的(m+n-l,n) 位為組選擇信號,索引的(η-1,0)位為組內(nèi)選擇信號。寄存器的讀操作根據(jù)指令的寄存器 操作數(shù)索引,其中的高(m+n-l,n)位作為寄存器訪問的組號,從寄存器堆中讀出一組寄存 器,再根據(jù)低位索引(η_1,0)位和并行度P將相應(yīng)的數(shù)據(jù)放在數(shù)據(jù)總線上。寄存器的寫操 作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引(η-1,0) 位和并行度P譯碼出相應(yīng)的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù)。
[0037] 所述寄存器堆的物理訪問和指令邏輯訪問的映射關(guān)系是:寄存器堆的邏輯訪問索 引(即指令中出現(xiàn)的寄存器索弓丨,同時該索引也是寄存器物理訪問的索引)為w位,W= 2w.所述SMD處理器支持多種并行度P,其中P= 2p,0彡p彡η.當(dāng)訪問的并行度為P時, 由索引(w_l,p)位將寄存器堆邏輯地分成2 (w-p)組,每組內(nèi)包括P= 2ρ個寄存器。對應(yīng) 到物理訪問上,索引的(w-l,n)位為寄存器的邏輯組所在的物理寄存器組,索引的(η-1,ρ) 位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
[0038] 從上述結(jié)構(gòu)實現(xiàn)可以看出,所述寄存器堆的寄存器物理訪問操作的最小單元是一 組寄存器。當(dāng)寄存器寫入數(shù)據(jù)時,根據(jù)組內(nèi)的寫使能有效信號對組內(nèi)全部或部分寄存器產(chǎn) 生寫操作。這種寫操作的訪問方式有利于實現(xiàn)SIMD結(jié)構(gòu)的寫合并和寫撤銷功能。
[0039] 所述標(biāo)記寄存器堆是體系結(jié)構(gòu)寄存器堆的標(biāo)記存儲單元,與體系結(jié)構(gòu)寄存器堆 一一對應(yīng)。標(biāo)記寄存器用于當(dāng)指令需要將數(shù)據(jù)寫入寄存器時,在對應(yīng)的標(biāo)記寄存器上寫入 一個分配給當(dāng)前執(zhí)行指令的標(biāo)記。
[0040] 所述標(biāo)記寄存器堆是結(jié)構(gòu)寄存器,用戶不可見。其物理實現(xiàn)結(jié)構(gòu)和邏輯訪問方式 與體系結(jié)構(gòu)寄存器堆的結(jié)構(gòu)一致,在此不再重復(fù)說明。
[0041] 所述標(biāo)記分派單元的作用是對當(dāng)前需要寫回寄存器的指令分派一個標(biāo)記。該標(biāo)記 與已經(jīng)進(jìn)入流水線中的指令分派的標(biāo)記不同。
[0042] 所述標(biāo)記表中包含一個獨立的標(biāo)記和一組可分配的標(biāo)記;所述獨立標(biāo)記表示寄存 器不會被任何已進(jìn)入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標(biāo)記表中的可分配標(biāo)記由標(biāo)記分 派單元分配給進(jìn)入執(zhí)行單元的指令??煞峙錁?biāo)記用來對流水的指令和寄存器進(jìn)行標(biāo)記。在 寄存器的標(biāo)記和指令攜帶的標(biāo)記一致時,指令的結(jié)果數(shù)據(jù)才能寫回寄存器。
[0043] 所述標(biāo)記表中可分配的標(biāo)記的最少數(shù)量為執(zhí)行和寫回邏輯的流水段數(shù)量。本專利 中不對標(biāo)記的具體編碼作權(quán)利要求。
[0044] 為實現(xiàn)本發(fā)明的目的,專利還提供了一種SMD處理器寫合并和寫撤銷的處理方 法。該方法包括以下步驟:
[0045] 步驟1、判斷當(dāng)前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器 堆,由所述標(biāo)記分派單元為該指令分派一個標(biāo)記;否則,標(biāo)記分派單元不為指令分派標(biāo)記。 根據(jù)并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當(dāng)前指令僅分配 一個標(biāo)記。
[0046] 步驟2、將分派的標(biāo)記寫入指令目的寄存器對應(yīng)的標(biāo)記寄存器中;
[0047] 步驟3、指令攜帶分派的標(biāo)記進(jìn)入處理器執(zhí)行單元,執(zhí)行指令功能;
[0048] 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標(biāo)記與指令目的寄存 器的標(biāo)記進(jìn)行比對,如果標(biāo)記相同,將指令的執(zhí)行結(jié)果寫回寄存器;否則,指令的執(zhí)行結(jié)果 不寫回。
[0049] 步驟5、如果寄存器寫入,將對應(yīng)的寄存器的標(biāo)記清除。
[0050] 所述步驟5中,清除寄存器的標(biāo)記的操作是將標(biāo)記表中提到的一個獨立的標(biāo)記項 寫入標(biāo)記寄存器中。
[0051] 所述步驟4的處理步驟進(jìn)一步描述為:
[0052] 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物 理寄存器組的組號。
[0053] 步驟4-2、根據(jù)4-1得到的組號,從標(biāo)記寄存器堆讀出該組寄存器的標(biāo)記。讀出的 一組標(biāo)記有N個,依次為tagO?tagN-1,N為最大并行度。
[0054] 步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進(jìn)行重排, 產(chǎn)生寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號。
[0055] 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進(jìn)行復(fù)制。復(fù)制的方法是:數(shù)據(jù)總 線的寬度為N個數(shù)據(jù)。如果并行度P= 1,數(shù)據(jù)總線上第0個數(shù)據(jù)有效,將這個數(shù)據(jù)賦值到 數(shù)據(jù)0?N-I上。如果并行度為P,數(shù)據(jù)總線上第0?P-I個數(shù)據(jù)有效,將這P個數(shù)據(jù)復(fù)制 N/P份到數(shù)據(jù)P?N-I上。
[0056] 然后將多個寫回指令攜帶的標(biāo)記逐個分別與tagO?tagN-Ι進(jìn)行比較,如果標(biāo)記 一致,就將該指令對應(yīng)復(fù)制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線上,并置該路 數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效。
[0057] 寫回數(shù)據(jù)總線位置和組內(nèi)的寄存器的位置一一對應(yīng)。
[0058] 步驟4-4、按照對應(yīng)數(shù)據(jù)和寄存器的位置對應(yīng)關(guān)系,在寫使能有效的情況下將數(shù)據(jù) 與入寄存器內(nèi)。
[0059] 實施實例中優(yōu)選的處理器模型的基本特征為:
[0060] 下表所示是優(yōu)選實例中寄存器堆的結(jié)構(gòu)。寄存器堆中共有32X32個通用寄存器 R,W= 32,w= 5,每個寄存位寬32位。寄存器堆的讀端口有兩個,分別對應(yīng)指令集中的兩 個源操作數(shù)的讀;寫端口只有一個,用于指令將結(jié)果寫回通用寄存器。
[0061]

【權(quán)利要求】
1. 一種SMD處理器中寫合并和寫撤銷的處理裝置,包括體系結(jié)構(gòu)寄存器堆、標(biāo)記寄存 器堆、標(biāo)記分派單元和一個標(biāo)記表,其特征在于: 所述的體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單元;標(biāo) 記表的輸出連接到標(biāo)記分派單元;標(biāo)記分派單元從標(biāo)記表中對當(dāng)前需要寫回寄存器的指令 分派一個標(biāo)記,該標(biāo)記與已經(jīng)進(jìn)入流水線中的指令分派的標(biāo)記不同,并輸出連接到標(biāo)記寄 存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標(biāo)記分派單元分派的標(biāo)記寫入標(biāo)記寄存 器堆; 所述標(biāo)記寄存器堆是體系結(jié)構(gòu)寄存器堆的標(biāo)記存儲單元,與體系結(jié)構(gòu)寄存器堆一一對 應(yīng);標(biāo)記寄存器用于當(dāng)指令需要將數(shù)據(jù)寫入寄存器時,在對應(yīng)的標(biāo)記寄存器上寫入一個分 配給當(dāng)前執(zhí)行指令的標(biāo)記; 所述標(biāo)記表中包含一個獨立的標(biāo)記和一組可分配的標(biāo)記;所述獨立標(biāo)記表示寄存器不 會被任何已進(jìn)入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標(biāo)記表中的可分配標(biāo)記由標(biāo)記分派單 元分配給進(jìn)入執(zhí)行單元的指令;可分配標(biāo)記用來對流水的指令和寄存器進(jìn)行標(biāo)記;在寄存 器的標(biāo)記和指令攜帶的標(biāo)記一致時,指令的結(jié)果數(shù)據(jù)才能寫回寄存器。
2. 根據(jù)權(quán)利要求1所述的SMD處理器中寫合并和寫撤銷的處理裝置,其特征在于: 所述體系結(jié)構(gòu)寄存器堆包括W個寄存器,從O?(W-I)對寄存器依次索引;寄存器堆的 訪問索引為w位,W = 2w;W個寄存器分成M組,每組N個寄存器,其中,N = 2n,N為SMD 結(jié)構(gòu)的最大并行度,表明組內(nèi)包含的寄存器的數(shù)量;M = 2m,M為寄存器堆的組數(shù)量;n,m都 是非負(fù)整數(shù),m+n = w ; 所述體系結(jié)構(gòu)寄存器堆中,寄存器訪問的索引位寬為m+n位,m+n = w ;其中,索引的 (m+n-l,n)位為組選擇信號,索引的(η-1,0)位為組內(nèi)選擇信號;寄存器的讀操作根據(jù)指令 的寄存器操作數(shù)索引,其中的高(m+n-l,n)位作為寄存器訪問的組號,從寄存器堆中讀出 一組寄存器,再根據(jù)低位索引(η_1,0)位和并行度P將相應(yīng)的數(shù)據(jù)放在數(shù)據(jù)總線上;寄存 器的寫操作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引 (η-1,0)位和并行度P譯碼出相應(yīng)的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù); 所述體系結(jié)構(gòu)寄存器堆的物理訪問和指令邏輯訪問的映射關(guān)系是:寄存器堆的邏輯訪 問索引為w位,W = 2w ;所述SMD處理器支持多種并行度P,其中P = 2p,0 < p < η ;當(dāng)訪 問的并行度為P時,由索引(w_l,p)位將寄存器堆邏輯地分成2(w-p)組,每組內(nèi)包括P = 2p個寄存器;對應(yīng)到物理訪問上,索引的(w-1,η)位為寄存器的邏輯組所在的物理寄存器 組,索引的(η-1,ρ)位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
3. -種利用權(quán)利要求1所述裝置在SMD處理器中寫合并和寫撤銷的處理方法,其特征 在于包括下述步驟: 步驟1、判斷當(dāng)前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器堆,由 所述標(biāo)記分派單元為該指令分派一個標(biāo)記;否則,標(biāo)記分派單元不為指令分派標(biāo)記;根據(jù) 并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當(dāng)前指令僅分配一個 標(biāo)記; 步驟2、將分派的標(biāo)記寫入指令目的寄存器對應(yīng)的標(biāo)記寄存器中; 步驟3、指令攜帶分派的標(biāo)記進(jìn)入處理器執(zhí)行單元,執(zhí)行指令功能; 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標(biāo)記與指令目的寄存器的 標(biāo)記進(jìn)行比對,如果標(biāo)記相同,將指令的執(zhí)行結(jié)果寫回寄存器,進(jìn)入步驟5 ;否則,指令的執(zhí) 行結(jié)果不寫回; 步驟5、如果寄存器寫入,將對應(yīng)的寄存器的標(biāo)記清除。
4. 根據(jù)權(quán)利要求1所述的SMD處理器中寫合并和寫撤銷的處理裝置,其特征在于: 所述步驟4包括以下步驟: 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物理寄 存器組的組號; 步驟4-2、根據(jù)4-1得到的組號,從標(biāo)記寄存器堆讀出該組寄存器的標(biāo)記;讀出的一組 標(biāo)記有N個,依次為tagO?tagN-1,N為最大并行度; 步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進(jìn)行重排,產(chǎn)生 寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號; 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進(jìn)行復(fù)制;復(fù)制的方法是:數(shù)據(jù)總線的 寬度為N個數(shù)據(jù);如果并行度P = 1,數(shù)據(jù)總線上第0個數(shù)據(jù)有效,將這個數(shù)據(jù)賦值到數(shù)據(jù) 0?N-I上;如果并行度為P,數(shù)據(jù)總線上第0?P-I個數(shù)據(jù)有效,將這P個數(shù)據(jù)復(fù)制N/P 份到數(shù)據(jù)P?N-I上;然后將多個寫回指令攜帶的標(biāo)記逐個分別與tagO?tagN-Ι進(jìn)行比 較,如果標(biāo)記一致,就將該指令對應(yīng)復(fù)制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線 上,并置該路數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效;寫回數(shù)據(jù)總線 位置和組內(nèi)的寄存器的位置一一對應(yīng); 步驟4-4、按照對應(yīng)數(shù)據(jù)和寄存器的位置對應(yīng)關(guān)系,在寫使能有效的情況下將數(shù)據(jù)寫入 寄存器內(nèi)。
5. 根據(jù)權(quán)利要求1所述的SMD處理器中寫合并和寫撤銷的處理裝置,其特征在于:所 述步驟5中,清除寄存器的標(biāo)記的操作是將標(biāo)記表中提到的一個獨立的標(biāo)記項寫入標(biāo)記寄 存器中。
【文檔編號】G06F9/38GK104317555SQ201410546093
【公開日】2015年1月28日 申請日期:2014年10月15日 優(yōu)先權(quán)日:2014年10月15日
【發(fā)明者】曹輝, 何衛(wèi)強, 楊靚, 于飛, 金雷 申請人:中國航天科技集團公司第九研究院第七七一研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1