国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DMR:兼容RISC-V架構(gòu)的亂序超標(biāo)量通用處理器核

2021-06-17 14:03:06孫彩霞隋兵才王永文倪曉強(qiáng)
關(guān)鍵詞:重命名浮點(diǎn)流水線

孫彩霞 鄭 重 鄧 全 隋兵才 王永文 倪曉強(qiáng)

(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院 長(zhǎng)沙 410073)

(cxsun@nudt.edu.cn)

DMR是由國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院自研的一款兼容RISC-V架構(gòu)的亂序超標(biāo)量通用處理器核,主要面向高性能計(jì)算領(lǐng)域.

DMR支持用戶態(tài)(user-mode)、特權(quán)態(tài)(supervisor-mode)和機(jī)器態(tài)(machine-mode)三種特權(quán)級(jí)模式,兼容RV64G指令集規(guī)范[1],并進(jìn)行了自定義向量擴(kuò)展,虛存系統(tǒng)支持Sv39和Sv48[2],物理地址為44 b.

1 微架構(gòu)

DMR的微架構(gòu)如圖1所示.取指寬度為256 b,即8條32 b指令;譯碼寬度、寄存器重命名寬度和指令分派寬度都是4;寄存器重命名采用統(tǒng)一的物理寄存器文件方式,如果沒有足夠的空閑物理寄存器,重命名過程將會(huì)發(fā)生阻塞;分派后的指令根據(jù)指令類型進(jìn)入相應(yīng)的指令調(diào)度隊(duì)列,同時(shí)也會(huì)進(jìn)入重定序緩沖(reorder buffer,ROB);采用分布式調(diào)度隊(duì)列,根據(jù)指令類型設(shè)置了整數(shù)調(diào)度隊(duì)列、訪存調(diào)度隊(duì)列和浮點(diǎn)調(diào)度隊(duì)列;調(diào)度隊(duì)列中的指令就緒后,就會(huì)被亂序調(diào)度執(zhí)行,每拍最多可以調(diào)度9條指令,其中3條整數(shù)指令、1條分支指令、2條load指令、1條store指令和2條浮點(diǎn)指令;指令被調(diào)度執(zhí)行時(shí)讀取寄存器文件獲取源操作數(shù),源操作數(shù)也可能來自旁路的數(shù)據(jù);指令提交按序進(jìn)行;指令Cache和數(shù)據(jù)Cache均為64 KB,4路組相聯(lián),Cache行大小均為64 B.

Fig.1 DMR microarchitecture圖1 DMR的微體系結(jié)構(gòu)

2 流水線

DMR的流水線如圖2所示.單周期整數(shù)流水線共有12級(jí),取指4拍,然后是2拍的譯碼.第1拍進(jìn)行預(yù)譯碼并處理指令拆分和指令融合,第2拍譯碼出指令中的操作數(shù)信息,以供寄存器重命名時(shí)使用;REN為重命名站,DS為指令分派站,根據(jù)指令類型,將指令順序分派到相應(yīng)的指令調(diào)度隊(duì)列;ISS為指令發(fā)射站,發(fā)射后進(jìn)入RF站,讀取寄存器文件,讀出數(shù)據(jù)和旁路數(shù)據(jù)進(jìn)行選擇后送到執(zhí)行站EX,執(zhí)行結(jié)果在WB站被寫回到寄存器文件.

Fig.2 DMR pipeline圖2 DMR的流水線

數(shù)據(jù)Cache命中時(shí)的Load-to-use延時(shí)是4拍;為了實(shí)現(xiàn)較高主頻,浮點(diǎn)流水線在讀寄存器文件之后增加了一拍MUX用于數(shù)據(jù)選擇.

3 分支預(yù)測(cè)

DMR采用TAGE(tagged geometric history length)[3-4]算法預(yù)測(cè)分支方向,所實(shí)現(xiàn)的TAGE結(jié)構(gòu)包含5個(gè)組件(component),即除了基本預(yù)測(cè)器組件外,還包含4個(gè)具有標(biāo)記的用不同歷史長(zhǎng)度生成索引的預(yù)測(cè)組件;2K項(xiàng)的BTB(branch target buffer)、48項(xiàng)的RSB(return stack buffer)和512項(xiàng)的IPB(indirect prediction buffer)分別被用于預(yù)測(cè)不同類型的分支的目標(biāo)地址.

4 指令拆分和指令融合

DMR在譯碼階段將整數(shù)和浮點(diǎn)之間的轉(zhuǎn)換指令拆分成2個(gè)內(nèi)部操作,轉(zhuǎn)換操作在浮點(diǎn)單元完成,而讀取整數(shù)寄存器文件或?qū)懭胝麛?shù)寄存器文件的操作在訪存部件完成,使得浮點(diǎn)執(zhí)行單元不需要讀寫整數(shù)寄存器文件,從而可以減少整數(shù)寄存器文件的讀寫端口數(shù)目、簡(jiǎn)化整數(shù)數(shù)據(jù)旁路網(wǎng)絡(luò)的設(shè)計(jì),同時(shí)也有利于物理實(shí)現(xiàn).

DMR在指令譯碼階段將某些指令組合融合成一條指令,然后進(jìn)行重命名、發(fā)射和執(zhí)行,從而提高指令實(shí)際發(fā)射寬度,并且可以減少指令占用的亂序執(zhí)行資源數(shù)目和降低調(diào)度開銷[5].

根據(jù)RISC-V架構(gòu)手冊(cè)的描述[1],結(jié)合DMR微架構(gòu)的特點(diǎn),DMR實(shí)現(xiàn)了指令組合的融合,如表1所示.auipc指令和load指令融合,可以實(shí)現(xiàn)PC(program counter)相對(duì)的32 b偏移尋址的數(shù)據(jù)加載,auipc指令和jalr指令融合,可以實(shí)現(xiàn)PC相對(duì)的32 b偏移的分支跳轉(zhuǎn).

Table 1 Instruction Fusion in DMR表1 DMR中的指令融合組合

5 處理器狀態(tài)的恢復(fù)

當(dāng)發(fā)生異常或分支誤預(yù)測(cè)、需要清除前瞻執(zhí)行的指令時(shí),被清除指令對(duì)處理器有關(guān)狀態(tài)的影響同樣需要被清除,以恢復(fù)到前瞻指令未執(zhí)行之前的狀態(tài).前瞻寄存器重命名映射表就是需要被恢復(fù)的處理器狀態(tài)之一.

DMR維護(hù)了2個(gè)寄存器重命名映射表:前瞻映射表和體系結(jié)構(gòu)映射表.指令重命名時(shí)更新前瞻映射表,指令提交時(shí)更新體系結(jié)構(gòu)映射表.DMR在指令提交時(shí)才報(bào)告該指令觸發(fā)的異常,所以發(fā)生異常時(shí),異常指令之前的所有指令都已經(jīng)完成對(duì)體系結(jié)構(gòu)映射表的修改,直接使用體系結(jié)構(gòu)映射表恢復(fù)前瞻映射表即可.而分支誤預(yù)測(cè)一旦發(fā)生,需要立即清除后續(xù)前瞻執(zhí)行的指令,這時(shí)前瞻映射表一般通過重建的方式進(jìn)行恢復(fù),重建完成前不能進(jìn)行寄存器的重命名,從而可能造成流水線停頓.DMR在分支指令進(jìn)行重命名時(shí),會(huì)對(duì)當(dāng)前的前瞻映射表進(jìn)行備份,分支誤預(yù)測(cè)發(fā)生時(shí)使用該分支對(duì)應(yīng)的備份數(shù)據(jù)對(duì)前瞻映射表進(jìn)行快速恢復(fù),避免重命名映射表重建導(dǎo)致的流水線停頓.

6 自定義向量擴(kuò)展

DMR面向高性能計(jì)算進(jìn)行了浮點(diǎn)向量的自定義擴(kuò)展,該擴(kuò)展中浮點(diǎn)向量和浮點(diǎn)標(biāo)量共用一套體系結(jié)構(gòu)寄存器,標(biāo)量占用寄存器的低位部分.如圖3所示,其中D表示雙精度浮點(diǎn),S表示單精度浮點(diǎn).

Fig.3 Vector formats圖3 向量格式

除了基本的單、雙精度浮點(diǎn)計(jì)算操作和訪存操作外,自定義擴(kuò)展指令集還支持單、雙精度浮點(diǎn)向量乘加操作以及gather load/scatter store操作.

向量長(zhǎng)度支持動(dòng)態(tài)配置為128 b或256 b.DMR的浮點(diǎn)執(zhí)行單元實(shí)現(xiàn)了2條256 b流水線,雙精度浮點(diǎn)峰值運(yùn)算性能可達(dá)到每個(gè)時(shí)鐘周期16個(gè)操作.

7 功能驗(yàn)證和性能結(jié)果

DMR采用覆蓋率驅(qū)動(dòng)的多層次、多平臺(tái)功能驗(yàn)證方法,如圖4所示.

驗(yàn)證分為3個(gè)層次:單元級(jí)、核級(jí)和系統(tǒng)級(jí).在單元級(jí),針對(duì)不同的功能單元搭建了基于UVM(universal verification methodology)的軟模擬平臺(tái)和形式化驗(yàn)證平臺(tái),在核級(jí),搭建了基于trace實(shí)時(shí)對(duì)比的軟模擬平臺(tái),在系統(tǒng)級(jí)搭建了硬件仿真平臺(tái).對(duì)單元級(jí)的軟模擬平臺(tái)和形式化驗(yàn)證平臺(tái)收集的覆蓋率以及核級(jí)軟模擬平臺(tái)收集的覆蓋率進(jìn)行合并,統(tǒng)一管理.

DMR已經(jīng)在FPGA原型系統(tǒng)下成功啟動(dòng)Linux OS,Core Mark分?jǐn)?shù)為5.12 MHz,在14 nm工藝下主頻可達(dá)到2 GHz.

Fig.4 Functional verification圖4 功能驗(yàn)證方法

猜你喜歡
重命名浮點(diǎn)流水線
Gen Z Migrant Workers Are Leaving the Assembly Line
LEO星座增強(qiáng)GNSS PPP模糊度浮點(diǎn)解與固定解性能評(píng)估
用好Excel,文件批量重命名其實(shí)很簡(jiǎn)單
批量更改網(wǎng)頁(yè)文件名稱
Windows 10下快速修改文件名
電腦愛好者(2020年1期)2020-04-28 12:25:29
流水線
基于浮點(diǎn)DSP的鐵路FSK信號(hào)檢測(cè)
報(bào)廢汽車拆解半自動(dòng)流水線研究
基于FPGA的浮點(diǎn)FIR濾波器設(shè)計(jì)
改進(jìn)的Goldschmidt雙精度浮點(diǎn)除法器
华坪县| 昆明市| 灌云县| 永吉县| 台中县| 东方市| 东乌珠穆沁旗| 石泉县| 庆云县| 突泉县| 翁源县| 洪洞县| 平和县| 卓资县| 鱼台县| 平乡县| 新绛县| 东至县| 安阳市| 镇平县| 叙永县| 阜康市| 临夏县| 清原| 永宁县| 平遥县| 贡觉县| 大田县| 石河子市| 荃湾区| 平果县| 山阴县| 延边| 繁昌县| 泽州县| 兴化市| 图木舒克市| 日土县| 曲周县| 井陉县| 平乡县|