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