[發(fā)明專利]擴(kuò)展雙精度的80位浮點(diǎn)處理單元在處理器中的集成系統(tǒng)及方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410410017.4 | 申請(qǐng)日: | 2014-08-19 |
| 公開(公告)號(hào): | CN104156195A | 公開(公告)日: | 2014-11-19 |
| 發(fā)明(設(shè)計(jì))人: | 陳慶宇;吳龍勝;艾刁;張輝;唐威 | 申請(qǐng)(專利權(quán))人: | 中國(guó)航天科技集團(tuán)公司第九研究院第七七一研究所 |
| 主分類號(hào): | G06F9/30 | 分類號(hào): | G06F9/30 |
| 代理公司: | 西安通大專利代理有限責(zé)任公司 61200 | 代理人: | 徐文權(quán) |
| 地址: | 710068 *** | 國(guó)省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 擴(kuò)展 精度 80 浮點(diǎn) 處理 單元 處理器 中的 集成 系統(tǒng) 方法 | ||
1.一種擴(kuò)展雙精度的80位浮點(diǎn)處理單元在處理器中的集成系統(tǒng),其特征在于,包括PC、五級(jí)流水線、四級(jí)浮點(diǎn)處理流水線及指令預(yù)譯碼模塊,四級(jí)浮點(diǎn)處理流水線包括浮點(diǎn)控制模塊、DP2模塊、DP1模塊、DP0模塊、待集成的FPU及浮點(diǎn)寄存器組,PC的輸出端與取指模塊的輸入端相連接,取指模塊的輸出端與指令預(yù)譯碼模塊的輸入端相連接,指令預(yù)譯碼模塊的輸出端分別與五級(jí)流水線的輸入端及浮點(diǎn)控制模塊的輸入端相連接,浮點(diǎn)控制模塊的浮點(diǎn)輸出端依次經(jīng)DP2模塊及DP1模塊與DP0模塊的輸入端相連接,指令預(yù)譯碼模塊與浮點(diǎn)控制模塊之間、指令控制模塊與五級(jí)流水線之間、浮點(diǎn)控制模塊與DP2模塊之間、DP2模塊與DP1模塊之間以及DP1模塊與DP0模塊之間分別設(shè)有第一個(gè)級(jí)間寄存器、第二個(gè)級(jí)間寄存器、第三個(gè)級(jí)間寄存器、第四個(gè)級(jí)間寄存器及第五個(gè)級(jí)間寄存器,浮點(diǎn)控制模塊的控制信號(hào)輸出端與待集成的FPU的輸入端相連接,待集成的FPU的輸出端分別與DP2模塊的輸入端、DP1模塊的輸入端及DP0模塊的輸入端相連接,浮點(diǎn)寄存器組的輸入端分別與各級(jí)間寄存器的輸出端及待集成的FPU的輸出端相連接。
2.根據(jù)權(quán)利要求1所述的擴(kuò)展雙精度的80位浮點(diǎn)處理單元在處理器中的集成系統(tǒng),所述浮點(diǎn)控制模塊包括控制狀態(tài)機(jī)、FPOP譯碼模塊、地址生成器、相關(guān)判斷模塊、啟動(dòng)模塊及原操作數(shù)寄存器,控制狀態(tài)機(jī)與FPOP譯碼模塊、地址生成器、相關(guān)判斷模塊、啟動(dòng)模塊及原操作數(shù)寄存器相連接,地址生成器與FPOP譯碼模塊、相關(guān)判斷模塊及啟動(dòng)模塊相連接,啟動(dòng)模塊與原操作數(shù)寄存器及待集成的FPU相連接。
3.一種擴(kuò)展雙精度的80位浮點(diǎn)處理單元在處理器中的集成方法,其特征在于,基于權(quán)利要求2所述的擴(kuò)展雙精度的80位浮點(diǎn)處理單元在處理器中的集成系統(tǒng),包括以下步驟:
1)指令預(yù)譯碼模塊將取值模塊根據(jù)PC取回的指令進(jìn)行預(yù)譯碼,當(dāng)取回的指令為浮點(diǎn)指令時(shí),則將所述浮點(diǎn)指令轉(zhuǎn)發(fā)至四級(jí)浮點(diǎn)處理流水線上,并向五級(jí)流水線發(fā)送空指令,當(dāng)取回的指令為整點(diǎn)指令時(shí),則將fnull信號(hào)置為有效,使四級(jí)浮點(diǎn)處理水流線的時(shí)鐘關(guān)閉;
2)四級(jí)浮點(diǎn)處理流水線中的FPOP譯碼模塊對(duì)浮點(diǎn)指令進(jìn)行邏輯判斷,得源操作數(shù)的精度opf、目標(biāo)操作數(shù)的精度dsz、源操作數(shù)的類型check、操作數(shù)寄存器號(hào)addr、指令精度ind及流水線掛起無效信號(hào)holdn,并將源操作數(shù)的類型check輸入到相關(guān)判斷模塊中,將源操作數(shù)的精度opf及操作數(shù)寄存器號(hào)addr輸入到地址生成器中,將目標(biāo)操作數(shù)的精度dsz輸入到控制狀態(tài)機(jī)及地址生成器中,將指令精度ind及流水線掛起無效信號(hào)holdn輸入到控制狀態(tài)機(jī)中,其中,當(dāng)浮點(diǎn)指令只需第一個(gè)源操作數(shù)時(shí),則check=01;當(dāng)浮點(diǎn)指令只需第二個(gè)源操作數(shù),則check=10;當(dāng)浮點(diǎn)指令需要第一個(gè)源操作數(shù)及第二個(gè)源操作數(shù)時(shí),則check=11;當(dāng)所需的源操作數(shù)為整型,則opf=00;當(dāng)所需的源操作數(shù)為單精度,則opf=01;當(dāng)所需的源操作數(shù)為雙精度,則opf=10;當(dāng)所需的源操作數(shù)為擴(kuò)展雙精度,則opf=11;當(dāng)目標(biāo)操作數(shù)為單精度或者整型,則dsz=00;當(dāng)目標(biāo)操作數(shù)為雙精度,則dsz=10;當(dāng)目標(biāo)操作數(shù)為擴(kuò)展雙精度,則dsz=11;當(dāng)指令精度為單精度,則ind=00;當(dāng)指令精度為雙精度,則ind=10;當(dāng)指令精度為擴(kuò)展雙精度,則ind=11,將浮點(diǎn)指令中第一個(gè)源操作數(shù)的寄存器號(hào)、第二個(gè)源操作數(shù)的寄存器號(hào)及目標(biāo)操作數(shù)的寄存器號(hào)拼接之后輸出到地址生成器中;
3)設(shè)控制狀態(tài)機(jī)轉(zhuǎn)移條件101指浮點(diǎn)指令為單精度指令且holdn=1;控制狀態(tài)機(jī)轉(zhuǎn)移條件102指浮點(diǎn)指令為雙或者擴(kuò)展雙精度指令且holdn=1;控制狀態(tài)機(jī)轉(zhuǎn)移條件103指浮點(diǎn)指令為雙精度指令且holdn=1;控制狀態(tài)機(jī)轉(zhuǎn)移條件104指浮點(diǎn)指令為擴(kuò)展雙精度指令且holdn=1;控制狀態(tài)機(jī)轉(zhuǎn)移條件105為holdn=1;其中,控制狀態(tài)機(jī)當(dāng)轉(zhuǎn)移條件101、轉(zhuǎn)移條件105或轉(zhuǎn)移條件103指浮點(diǎn)指令有效時(shí),則狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移到state=00;當(dāng)控制狀態(tài)機(jī)轉(zhuǎn)移條件104指浮點(diǎn)指令有效時(shí),則狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移到state=10;當(dāng)控制狀態(tài)機(jī)轉(zhuǎn)移條件102指浮點(diǎn)指令滿足時(shí),則狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移到state=01;
當(dāng)state≠00時(shí),控制狀態(tài)機(jī)則將hold_pc置為高電平,禁止取指模塊的輸出信號(hào)指令PC的更新;
當(dāng)state=00時(shí),且opf=00或opf=01時(shí),控制狀態(tài)機(jī)則將write_reg置為高電平;
當(dāng)state=00時(shí),且opf=10,則判斷目標(biāo)操作數(shù)的精度,當(dāng)此時(shí)目標(biāo)操作數(shù)為雙或者擴(kuò)展雙精度時(shí),控制狀態(tài)機(jī)則將write_reg置為高電平;
當(dāng)state=00時(shí),且當(dāng)opf=11,則判斷目標(biāo)操作數(shù)的精度,當(dāng)此時(shí)目標(biāo)操作數(shù)的精度為擴(kuò)展雙精度時(shí),控制狀態(tài)機(jī)則將write_reg置為高電平;
當(dāng)state=01時(shí),且當(dāng)opf=00、opf=01或opf=10時(shí),控制狀態(tài)機(jī)則將write_reg置為高電平;
當(dāng)state=01時(shí),且當(dāng)opf=11,則判斷目標(biāo)操作數(shù)的精度,當(dāng)此時(shí)目標(biāo)操作數(shù)的精度為雙或擴(kuò)展雙精度,控制狀態(tài)機(jī)則將write_reg置為高電平;
當(dāng)state=10時(shí),控制狀態(tài)機(jī)則將write_reg置為高電平;
最后控制狀態(tài)機(jī)將狀態(tài)標(biāo)識(shí)state及目標(biāo)操作數(shù)寫使能write_reg均輸入到各級(jí)間寄存器的輸入端相連接,當(dāng)holdn=1時(shí),控制狀態(tài)機(jī)則將狀態(tài)標(biāo)識(shí)state及目標(biāo)操作數(shù)寫使能write_reg向DP2模塊傳遞;控制狀態(tài)機(jī)將流水線掛起無效信號(hào)holdn輸入到啟動(dòng)模塊中,控制狀態(tài)機(jī)將狀態(tài)標(biāo)識(shí)state輸入到地址生成器、啟動(dòng)模塊、源操作偶數(shù)寄存器;
4)地址生成器根據(jù)狀態(tài)標(biāo)識(shí)state、源操作數(shù)的寄存器號(hào)、目標(biāo)操作數(shù)的寄存器號(hào)以及浮點(diǎn)類型,計(jì)算生成不同狀態(tài)標(biāo)識(shí)state下的源操作數(shù)及目標(biāo)操作數(shù)對(duì)應(yīng)的物理地址,并將第一源操作數(shù)的物理地址rs1、第二源操作數(shù)的物理地址rs2、目標(biāo)操作數(shù)的物理地址rd輸入至相關(guān)判斷模塊中;具體的,
當(dāng)狀態(tài)標(biāo)識(shí)state=01時(shí),且當(dāng)源操作數(shù)為雙或擴(kuò)展雙精度,地址生成器則將當(dāng)前源操作數(shù)寄存器號(hào)+1之后的結(jié)果作為源操作數(shù)物理地址輸入至相關(guān)判斷模塊中;
當(dāng)狀態(tài)標(biāo)識(shí)state=10時(shí),且當(dāng)源操作數(shù)為擴(kuò)展雙精度,地址生成器則將當(dāng)前源操作數(shù)寄存器號(hào)+2之后的結(jié)果作為源操作數(shù)物理地址輸入至相關(guān)判斷模塊中;
當(dāng)state=01時(shí),且當(dāng)目標(biāo)操作數(shù)為雙或擴(kuò)展雙精度,地址生成器則將當(dāng)前目標(biāo)操作數(shù)寄存器號(hào)+1之后的結(jié)果作為目標(biāo)操作數(shù)物理地址輸入至相關(guān)判斷模塊中;
當(dāng)state=10時(shí),且當(dāng)目標(biāo)操作數(shù)為擴(kuò)展雙精度,地址生成器則將當(dāng)前目標(biāo)操作數(shù)寄存器號(hào)+2之后的結(jié)果作為目標(biāo)操作數(shù)物理地址輸入至判斷模塊中;
5)所述相關(guān)判斷模塊接收五級(jí)流水線的標(biāo)志信號(hào)ctrl,然后根據(jù)標(biāo)志信號(hào)ctrl和源操作數(shù)的類型check判斷四級(jí)浮點(diǎn)流水線中是否存在控制相關(guān)及數(shù)據(jù)相關(guān),當(dāng)存在控制相關(guān)及數(shù)據(jù)相關(guān)時(shí),則產(chǎn)生lock_pc信號(hào),并通過lock_pc信號(hào)禁止取指模塊指令PC更新;當(dāng)不存在數(shù)據(jù)相關(guān)或控制相關(guān)時(shí),則從浮點(diǎn)寄存器組中讀取32位操作數(shù)rs1_data及rs2_data,然后將讀取的32位操作數(shù)rs1_data及rs2_data接入到源操作數(shù)寄存器的輸入端;
6)所述源操作數(shù)寄存器根據(jù)狀態(tài)標(biāo)識(shí)state和源操作數(shù)的精度opf將源操作數(shù)rs1_data及rs2_data保存到源操作數(shù)寄存器的相應(yīng)位置,具體的,當(dāng)state=00時(shí),將rs1_data及rs2_data保存到源操作數(shù)寄存器的低32位;當(dāng)state=01時(shí),且當(dāng)源操作數(shù)為雙或者擴(kuò)展雙精度,則將rs1_data及rs2_data保存到源操作數(shù)寄存器的中間32位;當(dāng)state=10時(shí),且當(dāng)源操作數(shù)為擴(kuò)展雙精度,則將rs1_data及rs2_data保存到源操作數(shù)寄存器的高15位,否則,源操作數(shù)寄存器保持不變;
7)當(dāng)state=00時(shí),且當(dāng)源操作數(shù)為單精度且holdn=1,則啟動(dòng)模塊將fp_start置為高電平;當(dāng)state=01時(shí),且當(dāng)源操作數(shù)為雙精度以及holdn=1時(shí),啟動(dòng)模塊則將fp_start置為高電平;當(dāng)state=“10”時(shí),且源操作數(shù)為擴(kuò)展雙精度以及holdn=1,則啟動(dòng)模塊將fp_start為高電平,當(dāng)fp_start為高電平時(shí),待集成的FPU對(duì)fp_start進(jìn)行計(jì)算,得計(jì)算結(jié)果fpuo_result;
8)所述DP2模塊輸入待集成的FPU的計(jì)算結(jié)果fpuo_result、異常情況fpuo_excep、控制狀態(tài)機(jī)輸出的目標(biāo)操作數(shù)寫使能write_reg、狀態(tài)標(biāo)識(shí)state、opf、dsz以及浮點(diǎn)寄存器組輸出的異常屏蔽位fsr_tem;
當(dāng)fpuo_excep和fsr_tem作與運(yùn)算的結(jié)果不為0時(shí),則將異常置位信號(hào)t_ind置為高電平,將異常標(biāo)志位trap置為高電平,同時(shí)將目標(biāo)操作數(shù)寫使能write_reg置為低電平;字選擇模塊選擇根據(jù)state、opf、dsz及write_reg的組合作為32位result的選擇使能,將目標(biāo)操作數(shù)物理地址rd對(duì)應(yīng)的浮點(diǎn)結(jié)果輸出到32位result,32位result將所述浮點(diǎn)結(jié)果經(jīng)第三個(gè)級(jí)間寄存器輸入到DP1模塊中;將異常標(biāo)志信號(hào)trap輸入到五級(jí)流水線的異常處理級(jí),然后將state及目標(biāo)操作數(shù)寫使能write_reg經(jīng)第三級(jí)間寄存器輸入到DP1模塊中;
9)所述DP1模塊輸入待集成的FPU輸出的計(jì)算結(jié)果fpuo_result和異常情況fpuo_excep、DP2模塊輸出的state、write_reg、opf、dsz及浮點(diǎn)結(jié)果、以及浮點(diǎn)寄存器組輸出的異常屏蔽位fsr_tem;
當(dāng)fpuo_excep和fsr_tem作與運(yùn)算的結(jié)果不為0時(shí),則將異常置位信號(hào)t_ind置為高電平,將異常標(biāo)志位trap置為高電平,同時(shí)將目標(biāo)操作數(shù)寫使能write_reg置為低電平,同時(shí)DP1模塊將目標(biāo)操作數(shù)寫使能write_reg及state經(jīng)第四個(gè)級(jí)間寄存器輸入到DP0模塊中,同時(shí)字選擇電路選擇與目標(biāo)操作數(shù)物理地址rd對(duì)應(yīng)的浮點(diǎn)結(jié)果輸出到32位result,32位result將所述浮點(diǎn)結(jié)果輸入到DP0模塊中result;
10)所述DP0模塊輸入到待集成的FPU輸出的計(jì)算結(jié)果fpuo_result及異常情況fpuo_excep、DP1模塊輸出的state、目標(biāo)操作數(shù)寫使能write_reg、opf、dsz以及up_result、以及浮點(diǎn)寄存器組輸出的異常屏蔽位fsr_tem,DP0模塊內(nèi)的字選擇電路選擇與目標(biāo)操作數(shù)物理地址rd對(duì)應(yīng)的浮點(diǎn)結(jié)果,當(dāng)目標(biāo)操作數(shù)寫使能write_reg為高電平,不同state下目標(biāo)操作數(shù)物理地址rd對(duì)應(yīng)32位result則將對(duì)應(yīng)的浮點(diǎn)結(jié)果輸入到浮點(diǎn)寄存器組的浮點(diǎn)寄存器中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)航天科技集團(tuán)公司第九研究院第七七一研究所,未經(jīng)中國(guó)航天科技集團(tuán)公司第九研究院第七七一研究所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410410017.4/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種圖標(biāo)智能生成方法
- 下一篇:一種虛擬磁盤容量平滑拓展方法
- 浮點(diǎn)異常處理裝置
- 一種微處理器浮點(diǎn)部件驗(yàn)證裝置
- 一種計(jì)算機(jī)圖像處理系統(tǒng)
- 實(shí)現(xiàn)浮點(diǎn)數(shù)指數(shù)分析替換的裝置及方法
- 實(shí)現(xiàn)浮點(diǎn)數(shù)符號(hào)分析替換的裝置及方法
- 一種可變浮點(diǎn)數(shù)據(jù)微處理器
- 浮點(diǎn)數(shù)據(jù)類型轉(zhuǎn)換方法、裝置、存儲(chǔ)介質(zhì)及計(jì)算機(jī)設(shè)備
- 浮點(diǎn)計(jì)算方法及系統(tǒng)
- 浮點(diǎn)數(shù)處理器
- 一種浮點(diǎn)數(shù)據(jù)處理方法及裝置





