ult_10 或 fresult_ll。
[0031]優(yōu)選的,步驟2中,控制信號(hào)的生成和處理步驟為;
[0032]2.1根據(jù)指令譯碼,產(chǎn)生浮點(diǎn)操作數(shù)寄存器號(hào)frS_reg、浮點(diǎn)操作數(shù)讀取使能frs_en和浮點(diǎn)操作數(shù)精度frs_precis1n,其中定義frs_en高有效,frs_precis1n為01表示浮點(diǎn)操作數(shù)為單精度數(shù),10表示浮點(diǎn)操作數(shù)為雙精度數(shù),11表示浮點(diǎn)操作數(shù)為四精度數(shù),00表示無此操作數(shù);
[0033]根據(jù)指令譯碼,產(chǎn)生各流水級(jí)的浮點(diǎn)目的寄存器號(hào)frd_reg、浮點(diǎn)結(jié)果寫使能frd_en,以及浮點(diǎn)結(jié)果精度frd_precis1n,其中,定義frd_en高有效,frd_precis1n為01表示浮點(diǎn)結(jié)果為單精度數(shù),10表示浮點(diǎn)結(jié)果為雙精度數(shù),11表示浮點(diǎn)結(jié)果為四精度數(shù),00表示該指令不產(chǎn)生浮點(diǎn)結(jié)果;
[0034]2.2當(dāng)浮點(diǎn)操作數(shù)讀取使能frs_en有效時(shí),根據(jù)浮點(diǎn)操作數(shù)寄存器號(hào)frs_reg和浮點(diǎn)操作數(shù)精度frs_precis1n產(chǎn)生各組浮點(diǎn)操作數(shù)寄存器號(hào)讀取使能frs_en_xx作為對(duì)應(yīng)的第一控制信號(hào),xx分別為00,01, 10,11且以下含義相同;
[0035]否則各組浮點(diǎn)操作數(shù)的讀取使能均無效;
[0036]2.3執(zhí)行階段某流水級(jí)浮點(diǎn)結(jié)果寫使能frd_en有效時(shí),根據(jù)該流水級(jí)的浮點(diǎn)目的寄存器號(hào)frd_reg和浮點(diǎn)結(jié)果精度frd_precis1n產(chǎn)生該流水級(jí)中各組浮點(diǎn)目的寄存器號(hào)寫使能frd_en_xx作為對(duì)應(yīng)的第二控制信號(hào);
[0037]否則該流水級(jí)中各組浮點(diǎn)目的寄存器號(hào)寫使能均無效;
[0038]2.4當(dāng)浮點(diǎn)操作數(shù)讀取使能frs_en有效時(shí),根據(jù)浮點(diǎn)操作數(shù)寄存器號(hào)frs_reg[N:2]對(duì)浮點(diǎn)寄存器文件進(jìn)行讀取,產(chǎn)生各組浮點(diǎn)寄存器號(hào)的相應(yīng)數(shù)據(jù)Rxx作為對(duì)應(yīng)的第三控制信號(hào);
[0039]否則該流水級(jí)中各組浮點(diǎn)寄存器號(hào)的數(shù)據(jù)為能夠?yàn)镺的default值,其中N為寄存器號(hào)的最高位且以下含義相同;
[0040]2.5將浮點(diǎn)操作數(shù)與其對(duì)應(yīng)的第一、二和三控制信號(hào),一同進(jìn)行相關(guān)性判定結(jié)果選擇邏輯,四組浮點(diǎn)操作數(shù)對(duì)應(yīng)采用四套控制邏輯相同的相關(guān)性判定結(jié)果選擇邏輯,分別進(jìn)行相關(guān)性判定和結(jié)果選擇處理。
[0041]進(jìn)一步,分別進(jìn)行相關(guān)性判定和結(jié)果選擇處理時(shí),
[0042]當(dāng)浮點(diǎn)操作數(shù)寄存器號(hào)frS_reg[N:2]與執(zhí)行階段浮點(diǎn)目的寄存器號(hào)frd_reg[N:2]相同,操作數(shù)寄存器號(hào)讀取使能frS_en_XX有效,并且執(zhí)行階段的浮點(diǎn)目的寄存器號(hào)寫使能frd_en_XX有效時(shí),表示浮點(diǎn)操作數(shù)寄存器號(hào)與執(zhí)行階段浮點(diǎn)目的寄存器號(hào)發(fā)生相關(guān);
[0043]獲取的浮點(diǎn)操作數(shù)frs_0p_XX的結(jié)果從最近執(zhí)行階段流水級(jí)開始進(jìn)行判定,發(fā)生相關(guān)時(shí),取相應(yīng)流水級(jí)的運(yùn)算結(jié)果fresult_xx作為frs_op_xx,如沒有發(fā)生相關(guān),判定次近執(zhí)行階段流水級(jí)的相關(guān)性,以此類推,當(dāng)無數(shù)據(jù)相關(guān)時(shí),如果浮點(diǎn)操作數(shù)寄存器號(hào)讀使能frs_en_xx有效,frs_op_xx選擇相應(yīng)寄存器的值,否則選擇一個(gè)能夠?yàn)镺的default值。
[0044]再進(jìn)一步,當(dāng)RISC處理器采用包括指令提取IF級(jí)、指令譯碼ID級(jí)、指令執(zhí)行E級(jí)、存儲(chǔ)訪問M級(jí)和寫回W級(jí)的五級(jí)流水時(shí),frs_op_xx相關(guān)性的判定順序?yàn)橄菶級(jí),后M級(jí),最后W級(jí)。
[0045]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:
[0046]本發(fā)明能夠有效解決邏輯復(fù)雜度和延時(shí)長的問題,能夠快速判定浮點(diǎn)單/雙/四精度的相關(guān)性,獲得正確的浮點(diǎn)數(shù)據(jù)來源,提高浮點(diǎn)流水線頻率。通過采用4套硬件邏輯并行進(jìn)行相關(guān)性判定和各部分?jǐn)?shù)據(jù)選擇的處理,消除了不同精度浮點(diǎn)數(shù)據(jù)相關(guān)判定邏輯,以及相關(guān)時(shí)數(shù)據(jù)選擇邏輯的復(fù)雜性和長延時(shí)。與根據(jù)浮點(diǎn)指令中的浮點(diǎn)操作數(shù)寄存器號(hào)以及浮點(diǎn)操作精度確定各執(zhí)行級(jí)的相關(guān)性,并根據(jù)相關(guān)情況選取浮點(diǎn)結(jié)果的邏輯相比,復(fù)雜性降低,邏輯延時(shí)減少。電路結(jié)構(gòu)清晰,相關(guān)性判定預(yù)處理、相關(guān)性判定邏輯、結(jié)果選擇邏輯均可進(jìn)行流水級(jí)劃分,適合于不同流水線劃分的各處理器。
[0047]進(jìn)一步的,結(jié)合浮點(diǎn)寄存器文件中的寄存器位寬為32位,能夠?qū)崿F(xiàn)單/雙/四精度浮點(diǎn)寄存器的單周期訪問,有效判定單/雙/四精度浮點(diǎn)數(shù)據(jù)相關(guān)性。四精度浮點(diǎn)操作數(shù)的128位操作數(shù)的來源可能不同,最高32位、次高32位、次低32位、最低32位可能來自不同執(zhí)行級(jí)的四精度浮點(diǎn)結(jié)果、雙精度浮點(diǎn)結(jié)果、單精度浮點(diǎn)結(jié)果,或者浮點(diǎn)寄存器文件;雙精度浮點(diǎn)操作數(shù)的64位操作數(shù)的來源可能不同,高32位、低32位可能來自不同執(zhí)行級(jí)的四精度浮點(diǎn)結(jié)果、雙精度浮點(diǎn)結(jié)果、單精度浮點(diǎn)結(jié)果,或者浮點(diǎn)寄存器文件;單精度浮點(diǎn)操作數(shù)的32位操作數(shù)的來源可能來自不同執(zhí)行級(jí)的四精度浮點(diǎn)結(jié)果、雙精度浮點(diǎn)結(jié)果、單精度浮點(diǎn)結(jié)果,或者浮點(diǎn)寄存器文件;本發(fā)明能夠有效判定上述各精度浮點(diǎn)數(shù)據(jù)的各種來源情況。
【附圖說明】
[0048]圖1為本發(fā)明實(shí)例中所述電路的結(jié)構(gòu)示意圖。
[0049]圖2為本發(fā)明實(shí)例中所述的浮點(diǎn)操作數(shù)讀取使能模塊電路。
[0050]圖3為本發(fā)明實(shí)例中所述的浮點(diǎn)目的寄存器寫使能模塊電路。
[0051]圖4本發(fā)明實(shí)例中所述的相關(guān)性判定結(jié)果選擇模塊電路。
【具體實(shí)施方式】
[0052]下面結(jié)合具體的實(shí)施例對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說明,所述是對(duì)本發(fā)明的解釋而不是限定。
[0053]本發(fā)明一種RISC處理器的單/雙/四精度浮點(diǎn)操作數(shù)獲取方法,其中,浮點(diǎn)寄存器文件中的寄存器位寬為32位,可實(shí)現(xiàn)單/雙/四精度浮點(diǎn)寄存器的單周期訪問,包括下述兩大步驟。
[0054](I)浮點(diǎn)操作數(shù)和浮點(diǎn)結(jié)果分組。
[0055]根據(jù)每個(gè)浮點(diǎn)寄存器號(hào)存儲(chǔ)32位數(shù)據(jù),將四精度128位浮點(diǎn)操作數(shù)劃分為四組,frs_op_00、frs_op_01、frs_op_10和frs_op_ll,每組都為32位數(shù)據(jù),分別對(duì)應(yīng)于浮點(diǎn)操作數(shù)寄存器號(hào)最低兩位為00、01、10和11的數(shù)據(jù)。四精度128位浮點(diǎn)結(jié)果也分為四組,fresult_00、fresult_01、fresult_10 和 fresult_ll,每組都為 32 位數(shù)據(jù),分別對(duì)應(yīng)于浮點(diǎn)目的寄存器號(hào)最低兩位為00、01、10和11的數(shù)據(jù)。并根據(jù)此,雙精度64位浮點(diǎn)操作數(shù)可由frs_op_00、frs_op_01或frs_op_10、frs_op_ll兩組拼接組成,雙精度64位浮點(diǎn)結(jié)果可由 fresult_00、fresult_01 或 fresult_10、fresult_ll 兩組拼接組成;單精度 32 位浮點(diǎn)操作數(shù)可為frs_op_00、frs_op_01、frs_op_10或frs_op_ll,單精度32位浮點(diǎn)結(jié)果可為fresult_00、fresult_01、fresult_10 或 fresult_ll。
[0056](2)浮點(diǎn)操作數(shù)相關(guān)性判定控制及結(jié)果選擇
[0057]在步驟(I)的情況下,對(duì)四組浮點(diǎn)操作數(shù)分別進(jìn)行相關(guān)性判定,獲得四組浮點(diǎn)操作數(shù)結(jié)果,并拼接成最終的浮點(diǎn)操作數(shù),為此共有四套相關(guān)判定結(jié)果選擇邏輯,每套控制邏輯相同,控制信號(hào)不同??刂菩盘?hào)按照如下的步驟生成:
[0058]I)根據(jù)指令譯碼,產(chǎn)生浮點(diǎn)操作數(shù)寄存器號(hào)frS_reg、浮點(diǎn)操作數(shù)讀取使能frs_en和浮點(diǎn)操作數(shù)精度frs_precis1n,其中定義frs_en高有效,frs_precis1n為01表示浮點(diǎn)操作數(shù)為單精度數(shù),10表示浮點(diǎn)操作數(shù)為雙精度數(shù),11表示浮點(diǎn)操作數(shù)為四精度數(shù),00表示無此操作數(shù);根據(jù)指令譯碼,產(chǎn)生各流水級(jí)的浮點(diǎn)目的寄存器號(hào)frd_reg、浮點(diǎn)結(jié)果寫使能frd_en,以及浮點(diǎn)結(jié)果精度frd_precis1n,其中,定義frd_en高有效,frd_precis1n為01表示浮點(diǎn)結(jié)果為單精度數(shù),10表示浮點(diǎn)結(jié)果為雙精度數(shù),11表示浮點(diǎn)結(jié)果為四精度數(shù),00表示該指令不產(chǎn)生浮點(diǎn)結(jié)果;
[0059]2)當(dāng)浮點(diǎn)操作數(shù)讀取使能frs_en有效時(shí),根據(jù)浮點(diǎn)操作數(shù)寄存器號(hào)frs_reg和浮點(diǎn)操作數(shù)精度frs_precis1n產(chǎn)生各組浮點(diǎn)操作數(shù)寄存器號(hào)讀取使能frs_en_xx (xx分別為00,01,10,11,以下相同),否則各組浮點(diǎn)操作數(shù)的讀取使能均無效;
[0060]3)執(zhí)行階段某流水級(jí)浮點(diǎn)結(jié)果寫使能frd_en有效時(shí),根據(jù)該流水級(jí)的浮點(diǎn)目的寄存器號(hào)frd_reg和浮點(diǎn)結(jié)果精度frd_precis1n產(chǎn)生該流水級(jí)中各組浮點(diǎn)目的寄存器號(hào)寫使能frd_en_XX,否則該流水級(jí)中各組浮點(diǎn)目的寄存器號(hào)寫使能均無效;
[0061]4)當(dāng)浮點(diǎn)操作數(shù)讀取使能frs_en有效時(shí),根據(jù)浮點(diǎn)操作數(shù)寄存器號(hào)frs_reg[N:2]對(duì)浮點(diǎn)寄存器文件進(jìn)行讀取,產(chǎn)生各組浮點(diǎn)寄存器號(hào)的相應(yīng)數(shù)據(jù)Rxx,否則該流水級(jí)中各組浮點(diǎn)寄存器號(hào)的數(shù)據(jù)為default值(可為0),其中N為寄存器號(hào)的最高位,以下相同;
[0062]5)對(duì)浮點(diǎn)操作數(shù)的四組采用四套相關(guān)性判定結(jié)果選擇邏輯,分別進(jìn)行相關(guān)性判定和結(jié)果選擇處理。本級(jí)浮點(diǎn)操作數(shù)寄存器號(hào)frs_reg[N:2]與執(zhí)行階段浮點(diǎn)目的寄存器號(hào)frd_reg[N:2]相同,操作數(shù)寄存器號(hào)讀取使能