一種帶simd的高速數(shù)據(jù)格式轉換部件及轉換方法
【技術領域】
[0001]本發(fā)明涉及計算技術領域,尤其涉及一種帶SIMD的高速數(shù)據(jù)格式轉換部件及轉換方法。
【背景技術】
[0002]在現(xiàn)代數(shù)字信號處理中,浮點數(shù)據(jù)以其較高的精度和較大的數(shù)據(jù)表示范圍得到了廣泛的應用,IEEE-754標準的浮點操作也已被絕大多數(shù)高性能DSP和CPU廣泛支持,而同時,32位或64位的定點計算仍然廣泛存在。為支持高速數(shù)據(jù)處理,提高浮點與定點數(shù)據(jù)格式之間的轉換速度和效率已經(jīng)越來越重要。因此,YHFT-XDSP對于浮點與定點之間的高速浮點轉換是必不可少的。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提出了一種基于SMD的數(shù)據(jù)格式轉換部件,將所有數(shù)據(jù)轉換操作進行了統(tǒng)一設計,能夠?qū)崿F(xiàn)多種數(shù)據(jù)格式的轉換,支持雙精度浮點和64位定點、SIMD單精度浮點和32位定點及雙精度浮點與單精度浮點之間的轉換
一種帶SMD的高速數(shù)據(jù)格式轉換部件,包括:(I)求補碼邏輯;(2)階差計算邏輯;(3)前導I檢測邏輯;(4)尾數(shù)移位邏輯;(5)舍入邏輯;其中:
(1)、求補碼邏輯:定點轉浮點時源操作數(shù)轉換為原碼;
(2)、階差計算邏輯:計算浮點數(shù)的指數(shù)偏移;
(3)、前導I檢測邏輯:定點轉浮點時進行前導I檢測;
(4)、尾數(shù)移位邏輯:尾數(shù)移位并判斷G、R、S位的值;
(5)、舍入邏輯:根據(jù)移位產(chǎn)生的G、R、S位判斷結果是否需要加1,并實現(xiàn)指數(shù)調(diào)整。
[0004]本發(fā)明還提供了一種帶SMD的高速數(shù)據(jù)格式轉換方法:
(I)浮點數(shù)據(jù)轉換為定點數(shù)據(jù)
本發(fā)明中,需要實現(xiàn)的浮點轉定點操作有四類,分別是:雙精度和單精度浮點數(shù)據(jù)轉為64位或32位定點數(shù),包括始終向O舍入模式,計算過程如下:
第一步:例外、溢出判斷,計算階差。將A分解為符號、指數(shù)和尾數(shù)位;判斷A是否為非規(guī)格化數(shù)、特殊數(shù)或溢出,如果為特殊數(shù),則根據(jù)浮點標準,直接得出結果,并置相應的浮點例外控制寄存器位;取A的指數(shù)E,減去指數(shù)偏移量e,即計算浮點的實際指數(shù)值|E|,確定尾數(shù)右移位數(shù)。
[0005]第二步:尾數(shù)右移。根據(jù)第一步得到的實際指數(shù)值|e|進行移位,如果IeI>0,則E進行左移,如果IeI〈0,則E進行右移。
[0006]第三步:舍入判斷。根據(jù)移位產(chǎn)生的G、R、S位判斷結果是否需要加I。
[0007]第四步:計算補碼。如果結果是負整數(shù),則轉成補碼表示。
[0008]第五步:生成計算結果和控制寄存器值。
[0009](2)定點數(shù)據(jù)轉換為浮點數(shù)據(jù)本發(fā)明中,需要實現(xiàn)的定點轉浮點操作有四類,分別是:64位或32位定點數(shù)轉為雙精度或單精度浮點數(shù),包括無符號定點數(shù),計算過程如下:
第一步:求補碼與前導I檢測。將A的數(shù)值與符號分離;求六的補碼;確定尾數(shù)前導O的個數(shù)LZ,從而得到IEI的值。
[0010]第二步:計算B的指數(shù)值。
[0011]第三步:尾數(shù)移位。根據(jù)求出的實際指數(shù)值|e|,對補碼進行移位。
[0012]第四步:舍入判斷。根據(jù)移位產(chǎn)生的G、R、S位判斷尾數(shù)是否需要加I。
[0013]第五步:生成計算結果和控制寄存器值。
[0014](3)浮點數(shù)據(jù)精度之間轉換
本發(fā)明中,需要實現(xiàn)的浮點數(shù)據(jù)精度之間轉換有兩類,分別是:帶SIMD的雙精度數(shù)據(jù)與單精度數(shù)據(jù)互轉,計算過程如下:
第一步:例外、溢出判斷,計算實際指數(shù)|E|。將A分解為符號、指數(shù)和尾數(shù)位;判斷A是否為非規(guī)格化數(shù)、特殊數(shù)或溢出,如果為特殊數(shù),則根據(jù)浮點標準,直接得出結果,并置相應的浮點例外控制寄存器位;取A的指數(shù)E,減去指數(shù)偏移量e,得到A的實際指數(shù)|E|。
[0015]第二步:計算B的指數(shù)。
[0016]第三步:計算B的尾數(shù)。
[0017]第四步:舍入判斷。根據(jù)第三步產(chǎn)生的G、R、S位判斷尾數(shù)是否需要加I。
[0018]第五步:生成計算結果和控制寄存器值。
[0019]本發(fā)明為提高數(shù)據(jù)浮點轉換指令的性能,將所有數(shù)據(jù)轉換的操作進行了分類,并實現(xiàn)了一種統(tǒng)一的浮點與定點數(shù)據(jù)轉換部件的設計方法。該設計方法能夠?qū)崿F(xiàn)多種數(shù)據(jù)格式的轉換,支持雙精度浮點和64位定點、SIMD單精度浮點和32位定點及雙精度浮點與單精度浮點之間的轉換。
[0020]本發(fā)明基于單獨的邏輯設計,并加入了 SMD操作,擺脫了傳統(tǒng)的基于浮點加法器進行浮點與定點數(shù)據(jù)之間轉換的設計方法,大大提高了信號處理中數(shù)據(jù)的轉換速度和轉換效率。
【附圖說明】
[0021]圖1是浮點轉換模塊的結構及流水站劃分示意圖。
【具體實施方式】
[0022]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明做進一步地詳細描述。
[0023]基于上述轉換指令算法流程分析和設計思路,本發(fā)明將格式轉換設計成單獨部件。由于定點數(shù)據(jù)轉浮點數(shù)據(jù)是數(shù)據(jù)格式轉換中最為復雜的操作,本發(fā)明對流水站的劃分以及各個流水站和對應周期所做的操作均以此操作優(yōu)先考慮,其他操作可以相應的流水執(zhí)行。
[0024]對于單精度或32位指令實現(xiàn)了 SIMD,本發(fā)明的實現(xiàn)思路是采用邏輯復制方式。在對總體模塊進行功能驗證后,可以對設計進行邏輯綜合,獲得時序信息,通過時序信息進行總體的延時評估與流水站均衡劃分,實現(xiàn)執(zhí)行段的流水線劃分。如圖1所示。圖中的三站即為該模塊的實際計算過程,每一站的主要執(zhí)行內(nèi)容為:
第一站:預處理邏輯。包括:源操作數(shù)讀取與分離,例外、溢出判斷;定點轉浮點時源操作數(shù)轉換為原碼;定點轉浮點時進行前導I檢測;
第二站:移位、舍入與規(guī)格化。包括:尾數(shù)移位并判斷G、R、S位的值;尾數(shù)產(chǎn)生、舍入處理,指數(shù)調(diào)整;
第三站:后處理邏輯。包括:定點轉浮點和精度轉換時的指數(shù)生成;結果生成與輸出。
[0025]本發(fā)明提出了一種基于SMD技術的高速數(shù)據(jù)格式轉換部件的設計方法,擺脫了傳統(tǒng)的基于浮點加法器進行浮點與定點數(shù)據(jù)之間轉換的設計方法,大大提高了信號處理中數(shù)據(jù)的轉換速度和轉換效率。
【主權項】
1.一種帶SMD的高速數(shù)據(jù)格式轉換部件,其特征在于,包括:(1)求補碼邏輯;(2)階差計算邏輯;(3)前導I檢測邏輯;(4)尾數(shù)移位邏輯;(5)舍入邏輯;其中: (1)、求補碼邏輯:定點轉浮點時源操作數(shù)轉換為原碼; (2)、階差計算邏輯:計算浮點數(shù)的指數(shù)偏移; (3)、前導I檢測邏輯:定點轉浮點時進行前導I檢測; (4)、尾數(shù)移位邏輯:尾數(shù)移位并判斷G、R、S位的值; (5)、舍入邏輯:根據(jù)移位產(chǎn)生的G、R、S位判斷結果是否需要加1,并實現(xiàn)指數(shù)調(diào)整。
2.—種帶SIMD的高速數(shù)據(jù)格式轉換方法,其特征在于,包括 (1)浮點數(shù)據(jù)轉換為定點數(shù)據(jù) 需要實現(xiàn)的浮點轉定點操作有四類,分別是:雙精度和單精度浮點數(shù)據(jù)轉為64位或32位定點數(shù),包括始終向O舍入模式; (2)定點數(shù)據(jù)轉換為浮點數(shù)據(jù) 需要實現(xiàn)的定點轉浮點操作有四類,分別是:64位或32位定點數(shù)轉為雙精度或單精度浮點數(shù),包括無符號定點數(shù); (3)浮點數(shù)據(jù)精度之間轉換 需要實現(xiàn)的浮點數(shù)據(jù)精度之間轉換有兩類,分別是:帶SIMD的雙精度數(shù)據(jù)與單精度數(shù)據(jù)互轉。
3.根據(jù)權利要求2所述的方法,其特征在于, 浮點數(shù)據(jù)轉換為定點數(shù)據(jù)的計算過程如下: 第一步:例外、溢出判斷,計算階差分解為符號、指數(shù)和尾數(shù)位;判斷A是否為非規(guī)格化數(shù)、特殊數(shù)或溢出,如果為特殊數(shù),則根據(jù)浮點標準,直接得出結果,并置相應的浮點例外控制寄存器位;取A的指數(shù)E,減去指數(shù)偏移量e,即計算浮點的實際指數(shù)值|E|,確定尾數(shù)右移位數(shù); 第二步:尾數(shù)右移;根據(jù)第一步得到的實際指數(shù)值|e|進行移位,如果IeI>0,則E進行左移,如果IeI〈0,則E進行右移; 第三步:舍入判斷;根據(jù)移位產(chǎn)生的g、r、s位判斷結果是否需要加I ; 第四步:計算補碼;如果結果是負整數(shù),則轉成補碼表示; 第五步:生成計算結果和控制寄存器值。
4.根據(jù)權利要求2所述的方法,其特征在于, 定點數(shù)據(jù)轉換為浮點數(shù)據(jù)的計算過程如下: 第一步:求補碼與前導I檢測;將A的數(shù)值與符號分離;求A的補碼;確定尾數(shù)前導O的個數(shù)LZ,從而得到IE I的值; 第二步:計算B的指數(shù)值; 第三步:尾數(shù)移位;根據(jù)求出的實際指數(shù)值|e|,對補碼進行移位; 第四步:舍入判斷;根據(jù)移位產(chǎn)生的G、R、S位判斷尾數(shù)是否需要加I ; 第五步:生成計算結果和控制寄存器值。
5.根據(jù)權利要求2所述的方法,其特征在于, (3)浮點數(shù)據(jù)精度之間轉換的計算過程如下: 第一步:例外、溢出判斷,計算實際指數(shù)|e| 分解為符號、指數(shù)和尾數(shù)位;判斷A是否為非規(guī)格化數(shù)、特殊數(shù)或溢出,如果為特殊數(shù),則根據(jù)浮點標準,直接得出結果,并置相應的浮點例外控制寄存器位;取A的指數(shù)E,減去指數(shù)偏移量e,得到A的實際指數(shù)|E| ;第二步:計算B的指數(shù); 第三步:計算B的尾數(shù); 第四步:舍入判斷;根據(jù)第三步產(chǎn)生的G、R、S位判斷尾數(shù)是否需要加I ; 第五步:生成計算結果和控制寄存器值。
【專利摘要】本發(fā)明提供一種帶SIMD的高速數(shù)據(jù)格式轉換部件及轉換方法,屬于計算機技術領域,本發(fā)明包括:(1)求補碼邏輯;(2)階差計算邏輯;(3)前導1檢測邏輯;(4)尾數(shù)移位邏輯;(5)舍入邏輯?;趩为毜倪壿嬙O計,并加入了SIMD操作,擺脫了傳統(tǒng)的基于浮點加法器進行浮點與定點數(shù)據(jù)之間轉換的設計方法,大大提高了信號處理中數(shù)據(jù)的轉換速度和轉換效率。
【IPC分類】G06F5-08
【公開號】CN104778026
【申請?zhí)枴緾N201510206637
【發(fā)明人】鄒曉峰, 童元滿, 李仁剛, 李拓, 劉金廣, 李國川
【申請人】浪潮電子信息產(chǎn)業(yè)股份有限公司
【公開日】2015年7月15日
【申請日】2015年4月28日