999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-10-22 09:41:40陳慶宇吳龍勝
西北工業大學學報 2015年6期
關鍵詞:流水指令

陳慶宇,吳龍勝

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

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

陳慶宇,吳龍勝

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

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

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

當前,飛行控制、工業應用及多媒體技術等領域對嵌入式微處理器的浮點性能提出了更嚴苛的要求[1]。然而ARM、MIPS、SPARC V8、PowerPC等主流RISC微處理器僅支持單、雙精度的浮點運算[2-5],若需要更高精度的數據則只能依靠軟件模擬浮點運算,這種方式使處理器浮點性能降低數十倍[6-7]。為了滿足未來航空航天及工業領域對數據精度和計算性能的要求,國內外研究學者近年已經進行了諸多研究。

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

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

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

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

2)本文提出的集成方法全部硬件實現,FPU與處理器核緊密耦合,避免了軟件干預浮點運算,FPU執行效率高。

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

1 控制算法及實現

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

1.1細粒度控制原理

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

表1 浮點指令操作數精度類型組合

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

圖1 細粒度控制狀態機

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

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

圖2 基于狀態的細粒度控制機制

1.2流水化處理數據機制

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

圖3 數據分段處理流程圖

1.3 FPU集成方案實現

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

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

2 實現及測試結果

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

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

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

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

圖6 浮點計算效率的對比

3 結 論

最后對浮點效率進行了評估,并與已公開的方案[7,11,16]進行了對比,結果如圖6a)、圖6b)所示。LEON3 FPU需要軟件參與浮點運算,浮點運算效率較低,單、雙精度的浮點運算均需173個時鐘周期;瑞典Gaisler研究所的GRFPU和GRFPULITE將FPU嵌入到處理器核內部,實現處理器與FPU的緊密耦合,需要近30個時鐘周期完成單、雙精度的浮點運算;Joven等完成的Cortex-M1方案將FPU作為處理器的總線從機,通過改進兩者交互方式,需約15~30個時鐘完成浮點指令的執行;而本文方法以基于時鐘的指令執行狀態為基本粒度產生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] 王重陽.單、雙、擴展精度自適應浮點乘、除和開方運算單元的實現[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核集成設計[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]杜學亮,金西.向量浮點協處理器VFP-A的設計和驗證[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,FPU,pipeline write-back

TP302.1

A

1000-2758(2015)06-1049-06

2015-04-24

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

猜你喜歡
流水指令
聽我指令:大催眠術
傣家跟著流水走
云南畫報(2021年8期)2021-12-02 02:46:08
流水
文苑(2020年10期)2020-11-07 03:15:26
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
流水有心
天津詩人(2017年2期)2017-11-29 01:24:12
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
前身寄予流水,幾世修到蓮花?
視野(2015年6期)2015-10-13 00:43:11
一種基于滑窗的余度指令判別算法
坐標系旋轉指令數控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
主站蜘蛛池模板: 日本a级免费| 欧美人与牲动交a欧美精品| 日韩欧美成人高清在线观看| 亚洲第一中文字幕| 国产精品亚洲五月天高清| 国产性爱网站| 国产精品xxx| 亚洲美女视频一区| 毛片免费视频| 日韩高清无码免费| 国产精品观看视频免费完整版| 精品人妻AV区| 国产不卡在线看| 这里只有精品在线播放| 色老头综合网| 欧美高清三区| 国产va免费精品观看| 国产好痛疼轻点好爽的视频| 亚洲一区色| 国产麻豆福利av在线播放| 日韩精品一区二区三区免费在线观看| 美女内射视频WWW网站午夜| 在线观看热码亚洲av每日更新| 亚洲另类国产欧美一区二区| 2020精品极品国产色在线观看 | 欧美日韩中文国产| 久久久久人妻精品一区三寸蜜桃| 久久青草热| 超清无码熟妇人妻AV在线绿巨人| 国产99精品久久| 欧美无专区| 99在线免费播放| 国产黄网永久免费| 国产日产欧美精品| 欧美天堂在线| 色哟哟国产精品| 国产精女同一区二区三区久| 亚洲中文字幕国产av| 日韩无码视频播放| 久久国产拍爱| 亚洲视频四区| 精品一区二区三区视频免费观看| 黄色网址手机国内免费在线观看| 亚洲第一成年网| 色网站在线视频| 亚洲一区二区日韩欧美gif| 六月婷婷精品视频在线观看 | 真实国产精品vr专区| 欧美国产日韩在线播放| 免费无码一区二区| 亚洲一区二区成人| 久久青草精品一区二区三区| 一区二区三区国产精品视频| 特级aaaaaaaaa毛片免费视频| 色吊丝av中文字幕| 亚洲精品午夜天堂网页| 一级爆乳无码av| 国产综合另类小说色区色噜噜 | 色哟哟色院91精品网站| 精品伊人久久久香线蕉| 日本国产一区在线观看| 在线国产欧美| 91成人在线免费观看| 亚洲欧洲一区二区三区| 亚洲资源在线视频| 国产精品99久久久久久董美香| 国产精品尤物铁牛tv| 成人国产免费| 亚洲无码高清一区| 少妇精品在线| 久久精品国产999大香线焦| 精品视频一区二区三区在线播| 91在线一9|永久视频在线| 国产精品白浆在线播放| 91福利一区二区三区| 国产无码网站在线观看| 九色视频线上播放| 最近最新中文字幕在线第一页| 亚洲黄网在线| 高清欧美性猛交XXXX黑人猛交| 强奷白丝美女在线观看| 国产网站免费看|