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

?

一種細粒度流水化控制的FPU集成方法

2015-10-22 09:41陳慶宇吳龍勝
西北工業(yè)大學學報 2015年6期
關(guān)鍵詞:浮點細粒度寄存器

陳慶宇,吳龍勝

(西安微電子技術(shù)研究所,陜西西安 710065)

一種細粒度流水化控制的FPU集成方法

陳慶宇,吳龍勝

(西安微電子技術(shù)研究所,陜西西安 710065)

解決了在RISC處理器中嵌入高精度FPU的問題,提出一種細粒度的基于集中控制和分段數(shù)據(jù)處理的擴展雙精度FPU集成方法,該方法通過細分浮點指令的執(zhí)行狀態(tài),然后以執(zhí)行狀態(tài)為基本粒度生成與之對應(yīng)的FPU控制信息,最后根據(jù)控制信息分段處理目標操作數(shù),并通過流水化的形式實現(xiàn)數(shù)據(jù)的回寫。基于一款SPARC V8型微處理器對上述方案進行了設(shè)計實現(xiàn)、仿真驗證及分析。結(jié)果表明,該FPU集成方法與公開文獻的方案相比,浮點指令關(guān)鍵路徑縮短61%,硬件消耗減小16. 9%,浮點計算效率提高1.7倍,可用于將擴展雙精度FPU集成到RISC處理器中,并使兩者高效協(xié)同運算。

FPU;協(xié)同運算;細粒度;集中控制;流水回寫

當前,飛行控制、工業(yè)應(yīng)用及多媒體技術(shù)等領(lǐng)域?qū)η度胧轿⑻幚砥鞯母↑c性能提出了更嚴苛的要求[1]。然而ARM、MIPS、SPARC V8、PowerPC等主流RISC微處理器僅支持單、雙精度的浮點運算[2-5],若需要更高精度的數(shù)據(jù)則只能依靠軟件模擬浮點運算,這種方式使處理器浮點性能降低數(shù)十倍[6-7]。為了滿足未來航空航天及工業(yè)領(lǐng)域?qū)?shù)據(jù)精度和計算性能的要求,國內(nèi)外研究學者近年已經(jīng)進行了諸多研究。

文獻[8-9]介紹了超高精度FPU的實現(xiàn)方案,趙勇等[10]利用存儲在ROM中的浮點微指令碼將80位FPU嵌入到x86處理器內(nèi)部。微指令碼的讀取消耗處理器時間,降低浮點執(zhí)行效率,同時由于處理器體系結(jié)構(gòu)的差異,該方案很難移植到采用流水線技術(shù)的RISC處理器中。

文獻[7,11-12]降低了FPU與處理器的耦合度,將FPU作為片內(nèi)總線的從單元,以訪存指令控制FPU的計算過程。上述方案需要軟件干預(yù)運算,增加了片內(nèi)總線的訪問沖突,造成單個FPU效率極低,雖然通過設(shè)計FPU專用的數(shù)據(jù)總線、改進FPU與處理器交互方式等措施改善了計算效率,但結(jié)果依然不理想。

針對FPU嵌入RISC處理器的問題國內(nèi)外進行了很多研究[8-12],但多數(shù)方案均需軟件干預(yù),且不支持超高精度FPU(80位或更高)在RISC處理器中的集成。針對此問題,本文提出一種細粒度的集中控制和分段處理方法,首先利用狀態(tài)機標識浮點指令執(zhí)行狀態(tài),然后產(chǎn)生與執(zhí)行狀態(tài)對應(yīng)的FPU控制信息,并將回寫所需的控制信息通過流水段間寄存器向后級傳遞,最后在處理器的不同流水段依據(jù)控制信息對FPU輸出結(jié)果進行分段寄存,并以流水化的形式將目標操作數(shù)寫回寄存器堆。與其他研究相比,本文的主要貢獻如下:

1)首次公開了超高精度FPU植入RISC流水線處理器的方法,基于此方法實現(xiàn)了80位FPU的集成,且無須更改已有的處理器設(shè)計。

2)本文提出的集成方法全部硬件實現(xiàn),F(xiàn)PU與處理器核緊密耦合,避免了軟件干預(yù)浮點運算,F(xiàn)PU執(zhí)行效率高。

本文介紹了高精度FPU集成方案的技術(shù)背景,緊接著提出一種面向RISC流水線處理器的、細粒度集中控制和分段處理數(shù)據(jù)的FPU集成方法,并基于該方法將一個擴展雙精度的FPU(80位,Meiko接口,兼容Intel浮點協(xié)處理器)集成到一款5級流水的SPARC V8型微處理器中[13],最后將該方案的實現(xiàn)及驗證結(jié)果與已有方案進行了對比分析,并對本文進行了總結(jié)。

1 控制算法及實現(xiàn)

本文提出的FPU集成方法在實現(xiàn)過程中僅在處理器不同流水段增加FPU的控制邏輯,避免了對處理器的訪存單元、冒險檢測、異常處理等模塊的更改。下文以典型5級流水RISC處理器[14]為例說明本文所述FPU集成方法的控制算法及實現(xiàn),其中細粒度集中控制在處理器譯碼段(ID)實現(xiàn),流水化分段數(shù)據(jù)處理涉及流水線的執(zhí)行段(EX)、存儲訪問段(MA)及回寫段(WB)。

1.1細粒度控制原理

浮點指令(FPop,floating-point operate)主要實現(xiàn)浮點數(shù)據(jù)的類型轉(zhuǎn)換和算術(shù)運算,其分類如表1所示,源和目標操作數(shù)精度類型分別以S和D標志,均包括整型I、單精度S、雙精度D及擴展雙精度Q,SDDS指源操作數(shù)為雙精度且目標操作數(shù)屬于單精度的浮點指令。根據(jù)操作數(shù)精度類型組合,將15種指令類型分為S、D、Q 3類,其中S類(single FPop)操作數(shù)位寬為32,D類(double FPop)使用至少一個64位操作數(shù)且無80位操作數(shù),Q類(quad FPOP)包含至少一個80位操作數(shù)。本文通過細分D和Q類指令的執(zhí)行狀態(tài),利用不同狀態(tài)以流水化形式實現(xiàn)寬位操作數(shù)在窄位浮點寄存器堆中的讀寫訪問。

表1 浮點指令操作數(shù)精度類型組合

利用狀態(tài)機解析浮點指令實現(xiàn)細粒度控制。如圖1所示,狀態(tài)機中4種S狀態(tài)與3類指令類型對應(yīng),X.S0屬于S、D和Q類指令的共享狀態(tài),在S0狀態(tài)下對指令類型細化,若當前指令為single FPop或者存在數(shù)據(jù)或控制冒險,則維持S0狀態(tài);若當前指令為double FPop,則流水使能信號有效時(hold= 1),進入D.S1狀態(tài);若當前指令為Quad FPop,則流水使能hold=1時,進入Q.S1狀態(tài);在非S0狀態(tài)處理器取指模塊阻止PC更新,防止新的指令進入ID段??刂扑惴ㄒ詧D1狀態(tài)機狀態(tài)為基本粒度產(chǎn)生對應(yīng)的FPU控制信息,并將回寫信息向下一級流水傳遞,為后續(xù)的流水化分段數(shù)據(jù)處理提供依據(jù)。

圖1 細粒度控制狀態(tài)機

源操作數(shù)的控制算法如圖2a)所示,regfile[rs]指源操作數(shù)地址rs指定的寄存器堆中的數(shù)據(jù),圖中并未就FPU計算所需的2個源操作數(shù)進行區(qū)分??刂扑惴ㄔ赟0狀態(tài)下等待流水線中冒險情況消失,之后將regfile[rs]傳遞給FPU輸入fpui.rs的低32位;在S1狀態(tài)下,將regfile[rs+1]賦值給fpui.rs的中間32位;在S2狀態(tài)下,將regfile[rs+2]賦值給fpui.rs的高16位;同時控制算法依據(jù)源操作的精度類型,待源操作數(shù)準備就緒后啟動FPU運算(fpui. start=‘1’)。

目標操作數(shù)的讀寫控制算法如圖2b)所示,pipeline為流水段間寄存器的數(shù)據(jù)結(jié)構(gòu)??刂扑惴ㄒ?guī)定S2、S1及S0的等級依次降低,并利用高等級的狀態(tài)回寫FPU輸出的目標操作數(shù)低位數(shù)據(jù)(低位數(shù)據(jù)對應(yīng)高地址)。在S0、D.S1、Q.S1和Q.S2狀態(tài)下比較目標操作數(shù)和源操作數(shù)的位寬,利用位寬這一基準條件產(chǎn)生FPU輸出結(jié)果回寫所需的寫使能和對應(yīng)地址等控制信息,并通過流水段間寄存器pipeline向后傳遞。結(jié)合表1以D.S1為例進行說明,可進入該狀態(tài)的5類指令中只有SDDI和SDDS的目標操作數(shù)位寬小于源操作數(shù)位寬,根據(jù)利用高等級的狀態(tài)回寫FPU低位數(shù)據(jù)的原則,在D.S1狀態(tài)下置目標操作數(shù)寫使能rd-wen有效并給出正確的寫地址。

圖2 基于狀態(tài)的細粒度控制機制

1.2流水化處理數(shù)據(jù)機制

FPU一旦計算完成,流水線處理器的EX段、MA段及WB段對FPU的輸出結(jié)果分段寄存,之后通過pipeline向后傳遞,最終寫入寄存器堆。分段處理算法的進一步描述如圖3所示,首先判斷FPU輸出結(jié)果,若異常則廢除回寫動作并向異常處理模塊提交異常信息;若結(jié)果正常則進一步判斷指令類型,并根據(jù)狀態(tài)信息pipeline.state對FPU輸出的目標操作數(shù)進行分段寄存,分段寄存后的數(shù)據(jù)與圖2b)產(chǎn)生的寫地址和寫使能一一對應(yīng)。以Q類指令為例,目標操作數(shù)小于源操作數(shù)位寬的指令僅有SQDI、SQDS、SQDD 3類,其中SQDI和SQDS的目標操作數(shù)寬度32bits,根據(jù)利用高等級的狀態(tài)回寫低位數(shù)據(jù)的原則,EX段在“10”狀態(tài)下將FPU輸出保存到pipeline寄存器;對于64位輸出的SQDD,EX段在“10”狀態(tài)下保存FPU的低32位輸出,MA段在“01”狀態(tài)下保存FPU的高32位輸出;除上之外的Q類指令均包含80位目標操作數(shù),則EX段在“10”保存FPU輸出的80位操作數(shù)的低16位;MA段在“01”狀態(tài)保存80位目標操作數(shù)的次32位;WB段的“00”狀態(tài)保存80位FPU輸出結(jié)果的高32位。

圖3 數(shù)據(jù)分段處理流程圖

1.3 FPU集成方案實現(xiàn)

SPARC V8是一種開源的RISC體系結(jié)構(gòu)[15],在歐洲及我國的航空航天領(lǐng)域應(yīng)用廣泛,本文選擇該架構(gòu)進一步詳述細粒度FPU集成方法在RISC流水線處理器中的實現(xiàn)。一款80位Meiko接口的擴展雙精度FPU與處理器核的耦合方案示如圖4所示,處理器核為典型的RISC 5級流水線,ID段的細粒度控制模塊實現(xiàn)2.1節(jié)所述控制算法,并通過段間寄存器pipeline向后級流水傳遞分段回寫FPU輸出結(jié)果所需的控制信息;EX、MA及WB段的分段處理模塊依據(jù)圖3所示的流程實現(xiàn)目標操作數(shù)向浮點寄存器堆的流水化回寫。

圖4 擴展雙精度FPU與處理器核的耦合示意圖

2 實現(xiàn)及測試結(jié)果

基于Cadence公司的eRM(ereuse methodology)對本文提出的細粒度擴展雙精度FPU集成方法進行仿真驗證,驗證工具及仿真器采用specman elite和modelsim simulator,處理器浮點結(jié)果與驗證環(huán)境中斯坦福大學開發(fā)的TestFloat進行對比,結(jié)果表明采用本文方案的處理器浮點功能正確,圖5a)、圖5b)分別給出了典型的時序圖,圖5a)為SQDQ類指令(源和目標操作數(shù)均為擴展雙精度)時序圖,ID段利用3個時鐘周期取得源操作數(shù),并啟動FPU計算,WB段利用狀態(tài)“00”、“01”和“10”實現(xiàn)流水化寫回。圖5b)為SSDQ類浮點指令(單精度源操作數(shù),擴展雙精度目標操作數(shù))的時序圖,ID段第1個時鐘周期啟動FPU計算,在后續(xù)2個周期內(nèi)產(chǎn)生目標操作數(shù)對應(yīng)的寫使能和地址,待計算完成后,各流水段根據(jù)pipeline的控制信息分段寄存FPU輸出,最后在WB級實現(xiàn)流水化回寫。

圖5 本文集成方法的時序圖

在功能正確的基礎(chǔ)上,本節(jié)分析了細粒度的FPU集成方法的綜合及測試情況。本文提出的方法以執(zhí)行狀態(tài)為基本粒度產(chǎn)生控制信息,這種控制邏輯的細粒度化最大程度上降低了復(fù)雜度,基于SMIC 0.18 μm工藝庫的關(guān)鍵路徑延時僅2.3 ns,與基于浮點指令碼的方案[10]相比降低了61%;由于采用了流水化形式回寫目標操作數(shù),復(fù)用了流水段中的諸多硬件資源,利用文獻[7]同樣的FPGA器件對本文方法進行綜合,硬件消耗如表2所示,與Joven等完成的FPU為片內(nèi)總線從機的Cortex-M1方案相比[7],本文方案LUTs的使用減少16.9%;與處理器緊耦合的GRFPU LITE實現(xiàn)相比[11],本文LUT、寄存器的消耗分別增加9.6%和9%,主要原因是GRFPU LITE僅實現(xiàn)雙精度FPU的集成,而本文方法適用于單、雙、擴展雙精度FPU的集成。

表2 不同方案硬件消耗的對比

圖6 浮點計算效率的對比

3 結(jié) 論

最后對浮點效率進行了評估,并與已公開的方案[7,11,16]進行了對比,結(jié)果如圖6a)、圖6b)所示。LEON3 FPU需要軟件參與浮點運算,浮點運算效率較低,單、雙精度的浮點運算均需173個時鐘周期;瑞典Gaisler研究所的GRFPU和GRFPULITE將FPU嵌入到處理器核內(nèi)部,實現(xiàn)處理器與FPU的緊密耦合,需要近30個時鐘周期完成單、雙精度的浮點運算;Joven等完成的Cortex-M1方案將FPU作為處理器的總線從機,通過改進兩者交互方式,需約15~30個時鐘完成浮點指令的執(zhí)行;而本文方法以基于時鐘的指令執(zhí)行狀態(tài)為基本粒度產(chǎn)生FPU的控制信息,通過全硬件方式將FPU植入處理器核,導致兩者之間的通信開銷幾乎可以忽略,僅需要9~10個時鐘完成單、雙精度的浮點運算,效率超過Cortex-M1至少1.7倍。圖6c)進一步給出了基于本方法的V8型處理器擴展雙精度的浮點運算時的時鐘開銷,比軟件模擬浮點運算效率提高20~100倍[7,11]。

[1] Bailey D H.High-Precision Floating-Point Arithmetic in Scientific Computation[J].Computing in Science&Engineering,2005,7(3):54-61

[2] 王重陽.單、雙、擴展精度自適應(yīng)浮點乘、除和開方運算單元的實現(xiàn)[D].北京:華北電力大學,2011

Wang Chongyang.Realization of Adaptive Floating-Point Multiplication,Division and Square Root Unit for Single,Double and Extended Precision[D].Beijing:North China Electric Power University,2011(in Chinese)

[3] Aeroflex.UT699 LEON 3FT/SPARC V8 Microprocessor Functional Manual[M].Aeroflex Inc,2012

[4] Kane G,Heinrich J.MIPS RISC Architectures[M].Prentice-Hall,Inc,1992

[5] Boersma M,Kroner M,Layer C,et al.The POWER7 Binary Floating-Point Unit[C]∥2011 20th IEEE Symposium on Computer Arithmetic(ARITH),2011:87-91

[6] Ramakrishnan A,Conrad J M.Analysis of Floating Point Operations in Microcontrollers[C]∥Southeastcon,2011 Proceedings of IEEE,2011:97-100

[7] Joven J,Strict P,Castells-Rufas D,et al.HW-SW Implementation of a Decoupled FPU for ARM-Based Cortex-M1 SoCs in FPGAs[C]∥2011 6th IEEE International Symposium on Industrial Embedded Systems(SIES),2011:1-8

[8] Schwarz E M,Schmookler M,Trong S D.FPU Implementations with Denormalized Numbers[J].IEEE Trans on Computers,2005,54(7):825-836

[9] Trong S D,Schmookler M S,Schwarz E M,et al.P6 Binary Floating-Point Unit[C]∥IEEE Symposium on Computer Arithmetic,2007:77-86

[10]趙勇,張盛兵,王黨輝.微處理器浮點IP核集成設(shè)計[J].微電子學與計算機,2006,23(7):129-133

Zhao Yong,Zhang Shengbing,Wang Danghui.The Integration of Floating Point IP in Microprocessor Design[J].Microelectronics&Computer,2006,23(7):129-133(in Chinese)

[11]Gajjar N,Devahsrayee N M,Dasgupta K S.Scalable LEON 3 Based SoC for Multiple Floating Point Operations[C]∥2011 Nirma University International Conference on Engineering(NUiCONE),2011:1-3

[12]杜學亮,金西.向量浮點協(xié)處理器VFP-A的設(shè)計和驗證[J].微電子學,2009,39(5):597-601

Du Xueliang,Jin Xi.Design and Verification of Vector Floating Point Coprocessor VFP-A[J].Microelectronics,2009,39(5):597-601(in Chinese)

[13]Gaisler J.The LEON-2 Processor User′s Manual[M].Sweden,Gaisler Research Inc,2003

[14]Hennessy J L,Patterson D A.Computer Architecture:A Quantitative Approach[M].Holland,Elsevier,2012

[15]Internationa S.The SPARC Architecture Manual Version 8[M].SPARC International Inc,1998

[16]Gaisler J,Catovic E,Isomaki M,et al.GRLIB IP Core User′s Manual[M].Gaisler Research,2007

A Method of FPU Integration Based on Fine-Grained Pipeline Control

Chen Qingyu,Wu Longsheng
(Xi′an Microelectronics Technology Institute,Xi′an 710054,China)

Double-precision floating-point can hardly satisfy the accuracy requirement of contemporary scientific computing.It deserves further study about how to get the higher precision FPU embedded into the RISC processor and about how to make an effective collaborative computing between them.A fine-grained integration method of extended double-precision FPU is proposed in this paper;it is based on centralized control and segmented data processing.The method finely differentiates the execution status of floating instructions and generates the FPU control information corresponding to execution status of floating-point instructions in fine-grain.Then,destination operands are segmentedly processed and written back register is implemented and the implementation is explained with a flowchart.An SPARC V8 processor based on the proposed mechanism has been implemented,verified and analyzed.The results and their analysis show preliminarily that the critical path of floating instructions decreases 61%,hardware consumption declines 16.9%and the floating-point calculation efficiency increase 1.7 times.

algorithms,calculations,computer architecture,computer hardware,controllers,cost reduction,data processing,digital arithmetic,efficiency,exchange coupling,flowcharting,microprocessor chips,real time control,scalability,schematic diagrams,state estimation,time delay;centralized control,collaboration computing,fine-grain,F(xiàn)PU,pipeline write-back

TP302.1

A

1000-2758(2015)06-1049-06

2015-04-24

陳慶宇(1988—),西安微電子技術(shù)研究所博士研究生,主要從事高性能飛行控制SoC設(shè)計及系統(tǒng)級可靠性研究。

猜你喜歡
浮點細粒度寄存器
融合判別性與細粒度特征的抗遮擋紅外目標跟蹤算法
LEO星座增強GNSS PPP模糊度浮點解與固定解性能評估
STM32和51單片機寄存器映射原理異同分析
Lite寄存器模型的設(shè)計與實現(xiàn)
基于SVM多分類的超分辨圖像細粒度分類方法
基于Simulink浮點模型和定點模型的問題研究
基于浮點DSP的鐵路FSK信號檢測
移位寄存器及算術(shù)運算應(yīng)用
基于型號裝備?角色的IETM訪問控制研究
基于web粒度可配的編輯鎖設(shè)計