Simd處理器中寫合并和寫撤銷的處理裝置和方法
【專利摘要】本發(fā)明提供了一種SIMD處理器中寫合并和寫撤銷的處理裝置和方法,體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單元;標記表的輸出連接到標記分派單元;標記分派單元從標記表中對當前需要寫回寄存器的指令分派一個標記,該標記與已經(jīng)進入流水線中的指令分派的標記不同,并輸出連接到標記寄存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標記分派單元分派的標記寫入標記寄存器堆。本發(fā)明能夠提高SIMD結(jié)構(gòu)處理器的執(zhí)行效率,降低或幾乎不增加編譯器設計的復雜度。
【專利說明】SIMD處理器中寫合并和寫撤銷的處理裝置和方法
【技術領域】
[0001] 本發(fā)明適用于處理器體系結(jié)構(gòu)設計領域,涉及SMD結(jié)構(gòu)處理器中支持寫合并和 寫撤銷的指令結(jié)果寫回邏輯的設計。
【背景技術】
[0002] 目前處理器設計中,一方面處理指令集設計提供了更多的指令支持,如DSP處理 器提供的乘累加指令、支持浮點計算的處理器提供的單精度浮點指令,甚至擴展精度浮點 操作指令;另一方面為了提高處理器工作的主頻,處理器的流水線被進一步細分,完成一條 復雜指令的執(zhí)行甚至需要十多級流水操作。為了提高處理器的指令執(zhí)行效率,對指令的流 水段劃分會按照指令的功能分成不同長度的流水線,如寄存器傳輸、算術邏輯等簡單操作 指令具有較短的流水線長度,而浮點計算等復雜操作指令有較長的流水線。
[0003] 對于SMD結(jié)構(gòu)的處理器,不同長度的流水線劃分會導致以下沖突:
[0004] 1.寫資源沖突。流水線內(nèi)的多條指令在同一拍提交執(zhí)行指令執(zhí)行結(jié)果,且指令寫 回的目的寄存器是SIMD結(jié)構(gòu)中同一組寄存器或不同組寄存器,由于寄存器端口限制,每次 只能一條指令寫入寄存器,導致寫資源沖突。
[0005] 2.寫后寫沖突。由于指令周期數(shù)不同,會出現(xiàn)較短執(zhí)行周期數(shù)指令先于較長執(zhí)行 周期指令將結(jié)果寫回寄存器,導致執(zhí)行結(jié)果錯誤。
[0006] -般靜態(tài)流水線的處理器設計中,會檢測指令的各類相關性,并將導致相關的后 續(xù)指令停頓,待較老的指令執(zhí)行完成后再解除較新指令的停頓。這樣的結(jié)構(gòu)設計方法,對與 具有較長流水段的指令引起的多拍停頓,指令執(zhí)行效率不高。另一方面,需要大量的相關檢 測邏輯來判斷流水線中各指令的寫操作,來避免沖突發(fā)生。尤其對于支持SMD結(jié)構(gòu)的處理 器,根據(jù)并行度不同,一條指令的執(zhí)行結(jié)果會對多個寄存器進行寫操作,使得檢測和解除相 關的邏輯復雜度大幅增加。
【發(fā)明內(nèi)容】
[0007] 為了克服現(xiàn)有技術的不足,本發(fā)明提供一種SMD處理器中寫合并和寫撤銷的處 理裝置,能夠提高SMD結(jié)構(gòu)處理器的執(zhí)行效率,對于具有多并行度的SMD結(jié)構(gòu)處理器,本 發(fā)明能有效減少由于不同流水線長度的指令執(zhí)行結(jié)束提交結(jié)果時,由于各類沖突引起的流 水線停頓周期數(shù);本發(fā)明可以使得編譯器對于背景中提到的幾類指令沖突是透明的,降低 或幾乎不增加編譯器設計的復雜度。
[0008] 本發(fā)明解決其技術問題所采用的技術方案是:一種SMD處理器寫合并和寫撤銷 的處理裝置包括體系結(jié)構(gòu)寄存器堆、標記寄存器堆、標記分派單元和一個標記表。
[0009] 所述的體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單 元;標記表的輸出連接到標記分派單元;標記分派單元從標記表中對當前需要寫回寄存器 的指令分派一個標記,該標記與已經(jīng)進入流水線中的指令分派的標記不同,并輸出連接到 標記寄存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標記分派單元分派的標記寫入標 記寄存器堆;
[0010] 所述標記寄存器堆是體系結(jié)構(gòu)寄存器堆的標記存儲單元,與體系結(jié)構(gòu)寄存器堆 一一對應;標記寄存器用于當指令需要將數(shù)據(jù)寫入寄存器時,在對應的標記寄存器上寫入 一個分配給當前執(zhí)行指令的標記;
[0011] 所述標記表中包含一個獨立的標記和一組可分配的標記;所述獨立標記表示寄存 器不會被任何已進入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標記表中的可分配標記由標記分 派單元分配給進入執(zhí)行單元的指令;可分配標記用來對流水的指令和寄存器進行標記;在 寄存器的標記和指令攜帶的標記一致時,指令的結(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都是非負整數(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將相應的數(shù)據(jù)放在數(shù)據(jù)總線上;寄存 器的寫操作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引 (η-1,0)位和并行度P譯碼出相應的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù);
[0014] 所述體系結(jié)構(gòu)寄存器堆的物理訪問和指令邏輯訪問的映射關系是:寄存器堆的邏 輯訪問索引為W位,W= 2w;所述SMD處理器支持多種并行度P,其中P= 2p,0彡P彡η; 當訪問的并行度為P時,由索引(w_l,p)位將寄存器堆邏輯地分成2(w-p)組,每組內(nèi)包括 P= 2p個寄存器;對應到物理訪問上,索引的(w-l,n)位為寄存器的邏輯組所在的物理寄 存器組,索引的(n_l,p)位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
[0015] 本發(fā)明還提供了一種SMD處理器寫合并和寫撤銷的處理方法,包括以下步驟: [0016] 步驟1、判斷當前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器 堆,由所述標記分派單元為該指令分派一個標記;否則,標記分派單元不為指令分派標記; 根據(jù)并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當前指令僅分配 一個標記;
[0017] 步驟2、將分派的標記寫入指令目的寄存器對應的標記寄存器中;
[0018] 步驟3、指令攜帶分派的標記進入處理器執(zhí)行單元,執(zhí)行指令功能;
[0019] 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標記與指令目的寄存 器的標記進行比對,如果標記相同,將指令的執(zhí)行結(jié)果寫回寄存器,進入步驟5;否則,指令 的執(zhí)行結(jié)果不寫回;
[0020] 步驟5、如果寄存器寫入,將對應的寄存器的標記清除。
[0021]所述步驟4包括以下步驟:
[0022] 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物 理寄存器組的組號;
[0023]步驟4-2、根據(jù)4-1得到的組號,從標記寄存器堆讀出該組寄存器的標記;讀出的 一組標記有N個,依次為tagO?tagN-1,N為最大并行度;
[0024]步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進行重排, 產(chǎn)生寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號;
[0025] 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進行復制;復制的方法是:數(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ù)復制N/P 份到數(shù)據(jù)P?N-I上;然后將多個寫回指令攜帶的標記逐個分別與tagO?tagN-Ι進行比 較,如果標記一致,就將該指令對應復制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線 上,并置該路數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效;寫回數(shù)據(jù)總線 位置和組內(nèi)的寄存器的位置一一對應;
[0026]步驟4-4、按照對應數(shù)據(jù)和寄存器的位置對應關系,在寫使能有效的情況下將數(shù)據(jù) 與入寄存器內(nèi)。
[0027] 所述步驟5中,清除寄存器的標記的操作是將標記表中提到的一個獨立的標記項 寫入標記寄存器中。
[0028] 本發(fā)明的有益效果是:處理方法及結(jié)構(gòu)適用于多周期流水線的寫回處理,提高了 寫入的并發(fā)程度,減少的流水線的停頓;突破了傳統(tǒng)處理器設計中每一個節(jié)拍僅允許一條 指令執(zhí)行結(jié)果寫回的限制。本發(fā)明提供的方法和結(jié)構(gòu)可用于處理器設計技術的改進,特別 是SoC技術中處理器IP核的改進。
【專利附圖】
【附圖說明】
[0029] 圖1是本發(fā)明實施實例指令譯碼的方法流程圖;
[0030] 圖2是本發(fā)明實施實例寫回操作合并和撤銷的方法流程圖。
【具體實施方式】
[0031]下面結(jié)合附圖和實施例對本發(fā)明進一步說明,本發(fā)明包括但不僅限于下述實施 例。
[0032] 本發(fā)明提供一種SMD結(jié)構(gòu)處理器中指令執(zhí)行結(jié)果寫合并和寫撤銷的處理裝置和 方法。
[0033] 所述SMD處理器寫合并和寫撤銷的處理裝置包括:體系結(jié)構(gòu)寄存器堆、標記寄存 器堆、標記分派單兀、一個標記表。
[0034]以上部件的連接關系為:體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到 處理器的執(zhí)行單元。標記表的輸出連接到標記分派單元。標記分派單元從標記表中選擇一 個標記,并輸出連接到標記寄存器堆。譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標記分派 單元分派的標記寫入標記寄存器堆。其中譯碼邏輯和執(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都是非負整數(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)設計,寄存器訪問的索引位寬為m+n位,m+n=w。其中,索引的(m+n-l,n) 位為組選擇信號,索引的(η-1,0)位為組內(nèi)選擇信號。寄存器的讀操作根據(jù)指令的寄存器 操作數(shù)索引,其中的高(m+n-l,n)位作為寄存器訪問的組號,從寄存器堆中讀出一組寄存 器,再根據(jù)低位索引(η_1,0)位和并行度P將相應的數(shù)據(jù)放在數(shù)據(jù)總線上。寄存器的寫操 作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引(η-1,0) 位和并行度P譯碼出相應的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù)。
[0037] 所述寄存器堆的物理訪問和指令邏輯訪問的映射關系是:寄存器堆的邏輯訪問索 引(即指令中出現(xiàn)的寄存器索弓丨,同時該索引也是寄存器物理訪問的索引)為w位,W= 2w.所述SMD處理器支持多種并行度P,其中P= 2p,0彡p彡η.當訪問的并行度為P時, 由索引(w_l,p)位將寄存器堆邏輯地分成2 (w-p)組,每組內(nèi)包括P= 2ρ個寄存器。對應 到物理訪問上,索引的(w-l,n)位為寄存器的邏輯組所在的物理寄存器組,索引的(η-1,ρ) 位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
[0038] 從上述結(jié)構(gòu)實現(xiàn)可以看出,所述寄存器堆的寄存器物理訪問操作的最小單元是一 組寄存器。當寄存器寫入數(shù)據(jù)時,根據(jù)組內(nèi)的寫使能有效信號對組內(nèi)全部或部分寄存器產(chǎn) 生寫操作。這種寫操作的訪問方式有利于實現(xiàn)SIMD結(jié)構(gòu)的寫合并和寫撤銷功能。
[0039] 所述標記寄存器堆是體系結(jié)構(gòu)寄存器堆的標記存儲單元,與體系結(jié)構(gòu)寄存器堆 一一對應。標記寄存器用于當指令需要將數(shù)據(jù)寫入寄存器時,在對應的標記寄存器上寫入 一個分配給當前執(zhí)行指令的標記。
[0040] 所述標記寄存器堆是結(jié)構(gòu)寄存器,用戶不可見。其物理實現(xiàn)結(jié)構(gòu)和邏輯訪問方式 與體系結(jié)構(gòu)寄存器堆的結(jié)構(gòu)一致,在此不再重復說明。
[0041] 所述標記分派單元的作用是對當前需要寫回寄存器的指令分派一個標記。該標記 與已經(jīng)進入流水線中的指令分派的標記不同。
[0042] 所述標記表中包含一個獨立的標記和一組可分配的標記;所述獨立標記表示寄存 器不會被任何已進入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標記表中的可分配標記由標記分 派單元分配給進入執(zhí)行單元的指令。可分配標記用來對流水的指令和寄存器進行標記。在 寄存器的標記和指令攜帶的標記一致時,指令的結(jié)果數(shù)據(jù)才能寫回寄存器。
[0043] 所述標記表中可分配的標記的最少數(shù)量為執(zhí)行和寫回邏輯的流水段數(shù)量。本專利 中不對標記的具體編碼作權(quán)利要求。
[0044] 為實現(xiàn)本發(fā)明的目的,專利還提供了一種SMD處理器寫合并和寫撤銷的處理方 法。該方法包括以下步驟:
[0045] 步驟1、判斷當前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器 堆,由所述標記分派單元為該指令分派一個標記;否則,標記分派單元不為指令分派標記。 根據(jù)并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當前指令僅分配 一個標記。
[0046] 步驟2、將分派的標記寫入指令目的寄存器對應的標記寄存器中;
[0047] 步驟3、指令攜帶分派的標記進入處理器執(zhí)行單元,執(zhí)行指令功能;
[0048] 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標記與指令目的寄存 器的標記進行比對,如果標記相同,將指令的執(zhí)行結(jié)果寫回寄存器;否則,指令的執(zhí)行結(jié)果 不寫回。
[0049] 步驟5、如果寄存器寫入,將對應的寄存器的標記清除。
[0050] 所述步驟5中,清除寄存器的標記的操作是將標記表中提到的一個獨立的標記項 寫入標記寄存器中。
[0051] 所述步驟4的處理步驟進一步描述為:
[0052] 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物 理寄存器組的組號。
[0053] 步驟4-2、根據(jù)4-1得到的組號,從標記寄存器堆讀出該組寄存器的標記。讀出的 一組標記有N個,依次為tagO?tagN-1,N為最大并行度。
[0054] 步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進行重排, 產(chǎn)生寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號。
[0055] 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進行復制。復制的方法是:數(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ù)復制 N/P份到數(shù)據(jù)P?N-I上。
[0056] 然后將多個寫回指令攜帶的標記逐個分別與tagO?tagN-Ι進行比較,如果標記 一致,就將該指令對應復制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線上,并置該路 數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效。
[0057] 寫回數(shù)據(jù)總線位置和組內(nèi)的寄存器的位置一一對應。
[0058] 步驟4-4、按照對應數(shù)據(jù)和寄存器的位置對應關系,在寫使能有效的情況下將數(shù)據(jù) 與入寄存器內(nèi)。
[0059] 實施實例中優(yōu)選的處理器模型的基本特征為:
[0060] 下表所示是優(yōu)選實例中寄存器堆的結(jié)構(gòu)。寄存器堆中共有32X32個通用寄存器 R,W= 32,w= 5,每個寄存位寬32位。寄存器堆的讀端口有兩個,分別對應指令集中的兩 個源操作數(shù)的讀;寫端口只有一個,用于指令將結(jié)果寫回通用寄存器。
[0061]
【權(quán)利要求】
1. 一種SMD處理器中寫合并和寫撤銷的處理裝置,包括體系結(jié)構(gòu)寄存器堆、標記寄存 器堆、標記分派單元和一個標記表,其特征在于: 所述的體系結(jié)構(gòu)寄存器堆作為指令的操作數(shù)存儲部件,連接到處理器的執(zhí)行單元;標 記表的輸出連接到標記分派單元;標記分派單元從標記表中對當前需要寫回寄存器的指令 分派一個標記,該標記與已經(jīng)進入流水線中的指令分派的標記不同,并輸出連接到標記寄 存器堆;譯碼邏輯產(chǎn)生的目的寄存器的寫信號控制標記分派單元分派的標記寫入標記寄存 器堆; 所述標記寄存器堆是體系結(jié)構(gòu)寄存器堆的標記存儲單元,與體系結(jié)構(gòu)寄存器堆一一對 應;標記寄存器用于當指令需要將數(shù)據(jù)寫入寄存器時,在對應的標記寄存器上寫入一個分 配給當前執(zhí)行指令的標記; 所述標記表中包含一個獨立的標記和一組可分配的標記;所述獨立標記表示寄存器不 會被任何已進入執(zhí)行單元的指令寫入結(jié)果數(shù)據(jù);所述標記表中的可分配標記由標記分派單 元分配給進入執(zhí)行單元的指令;可分配標記用來對流水的指令和寄存器進行標記;在寄存 器的標記和指令攜帶的標記一致時,指令的結(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都 是非負整數(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將相應的數(shù)據(jù)放在數(shù)據(jù)總線上;寄存 器的寫操作同樣由指令目的索引的高(m+n-l,n)位作為寄存器堆寫回的組號,由低位索引 (η-1,0)位和并行度P譯碼出相應的寫使能信號,對組內(nèi)的寄存器寫入數(shù)據(jù); 所述體系結(jié)構(gòu)寄存器堆的物理訪問和指令邏輯訪問的映射關系是:寄存器堆的邏輯訪 問索引為w位,W = 2w ;所述SMD處理器支持多種并行度P,其中P = 2p,0 < p < η ;當訪 問的并行度為P時,由索引(w_l,p)位將寄存器堆邏輯地分成2(w-p)組,每組內(nèi)包括P = 2p個寄存器;對應到物理訪問上,索引的(w-1,η)位為寄存器的邏輯組所在的物理寄存器 組,索引的(η-1,ρ)位選擇物理組內(nèi)的P個寄存器作為指令的操作數(shù)。
3. -種利用權(quán)利要求1所述裝置在SMD處理器中寫合并和寫撤銷的處理方法,其特征 在于包括下述步驟: 步驟1、判斷當前指令是否寫回寄存器堆,如果指令的執(zhí)行結(jié)果需要寫回寄存器堆,由 所述標記分派單元為該指令分派一個標記;否則,標記分派單元不為指令分派標記;根據(jù) 并行度不同,指令的結(jié)果會寫回一個或一組體系結(jié)構(gòu)寄存器,但是對當前指令僅分配一個 標記; 步驟2、將分派的標記寫入指令目的寄存器對應的標記寄存器中; 步驟3、指令攜帶分派的標記進入處理器執(zhí)行單元,執(zhí)行指令功能; 步驟4、指令執(zhí)行結(jié)束寫回體系結(jié)構(gòu)寄存器時,將指令攜帶的標記與指令目的寄存器的 標記進行比對,如果標記相同,將指令的執(zhí)行結(jié)果寫回寄存器,進入步驟5 ;否則,指令的執(zhí) 行結(jié)果不寫回; 步驟5、如果寄存器寫入,將對應的寄存器的標記清除。
4. 根據(jù)權(quán)利要求1所述的SMD處理器中寫合并和寫撤銷的處理裝置,其特征在于: 所述步驟4包括以下步驟: 步驟4-1、從多個具有寫回數(shù)據(jù)的流水段中按優(yōu)先級由高到低選擇一個寫回的物理寄 存器組的組號; 步驟4-2、根據(jù)4-1得到的組號,從標記寄存器堆讀出該組寄存器的標記;讀出的一組 標記有N個,依次為tagO?tagN-1,N為最大并行度; 步驟4-3、從多個寫回操作中,選擇寫回的寄存器數(shù)據(jù),對結(jié)果數(shù)據(jù)總線進行重排,產(chǎn)生 寫回數(shù)據(jù)總線,并產(chǎn)生組內(nèi)的寫使能信號; 在步驟4-3中,首先將每個指令寫回的數(shù)據(jù)總線進行復制;復制的方法是:數(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ù)復制N/P 份到數(shù)據(jù)P?N-I上;然后將多個寫回指令攜帶的標記逐個分別與tagO?tagN-Ι進行比 較,如果標記一致,就將該指令對應復制后的數(shù)據(jù)總線的第i個數(shù)據(jù)選擇到寫回數(shù)據(jù)總線 上,并置該路數(shù)據(jù)的寫使能信號為有效;否則,該路數(shù)據(jù)的寫使能信號無效;寫回數(shù)據(jù)總線 位置和組內(nèi)的寄存器的位置一一對應; 步驟4-4、按照對應數(shù)據(jù)和寄存器的位置對應關系,在寫使能有效的情況下將數(shù)據(jù)寫入 寄存器內(nèi)。
5. 根據(jù)權(quán)利要求1所述的SMD處理器中寫合并和寫撤銷的處理裝置,其特征在于:所 述步驟5中,清除寄存器的標記的操作是將標記表中提到的一個獨立的標記項寫入標記寄 存器中。
【文檔編號】G06F9/38GK104317555SQ201410546093
【公開日】2015年1月28日 申請日期:2014年10月15日 優(yōu)先權(quán)日:2014年10月15日
【發(fā)明者】曹輝, 何衛(wèi)強, 楊靚, 于飛, 金雷 申請人:中國航天科技集團公司第九研究院第七七一研究所