CN104778026A - 一种带simd的高速数据格式转换部件及转换方法 - Google Patents
一种带simd的高速数据格式转换部件及转换方法 Download PDFInfo
- Publication number
- CN104778026A CN104778026A CN201510206637.0A CN201510206637A CN104778026A CN 104778026 A CN104778026 A CN 104778026A CN 201510206637 A CN201510206637 A CN 201510206637A CN 104778026 A CN104778026 A CN 104778026A
- Authority
- CN
- China
- Prior art keywords
- point
- floating
- logic
- mantissa
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000000295 complement effect Effects 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 238000012546 transfer Methods 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 claims description 2
- 239000013589 supplement Substances 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 5
- 238000001514 detection method Methods 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供一种带SIMD的高速数据格式转换部件及转换方法,属于计算机技术领域,本发明包括:(1)求补码逻辑;(2)阶差计算逻辑;(3)前导1检测逻辑;(4)尾数移位逻辑;(5)舍入逻辑。基于单独的逻辑设计,并加入了SIMD操作,摆脱了传统的基于浮点加法器进行浮点与定点数据之间转换的设计方法,大大提高了信号处理中数据的转换速度和转换效率。
Description
技术领域
本发明涉及计算技术领域,尤其涉及一种带SIMD的高速数据格式转换部件及转换方法。
背景技术
在现代数字信号处理中,浮点数据以其较高的精度和较大的数据表示范围得到了广泛的应用,IEEE-754标准的浮点操作也已被绝大多数高性能DSP和CPU广泛支持,而同时,32位或64位的定点计算仍然广泛存在。为支持高速数据处理,提高浮点与定点数据格式之间的转换速度和效率已经越来越重要。因此,YHFT-XDSP对于浮点与定点之间的高速浮点转换是必不可少的。
发明内容
本发明提出了一种基于SIMD的数据格式转换部件,将所有数据转换操作进行了统一设计,能够实现多种数据格式的转换,支持双精度浮点和64位定点、SIMD单精度浮点和32位定点及双精度浮点与单精度浮点之间的转换
一种带SIMD的高速数据格式转换部件,包括:(1)求补码逻辑;(2)阶差计算逻辑;(3)前导1检测逻辑;(4)尾数移位逻辑;(5)舍入逻辑;其中:
(1)、求补码逻辑:定点转浮点时源操作数转换为原码;
(2)、阶差计算逻辑:计算浮点数的指数偏移;
(3)、前导1检测逻辑:定点转浮点时进行前导1检测;
(4)、尾数移位逻辑:尾数移位并判断G、R、S位的值;
(5)、舍入逻辑:根据移位产生的G、R、S位判断结果是否需要加1,并实现指数调整。
本发明还提供了一种带SIMD的高速数据格式转换方法:
(1)浮点数据转换为定点数据
本发明中,需要实现的浮点转定点操作有四类,分别是:双精度和单精度浮点数据转为64位或32位定点数,包括始终向0舍入模式,计算过程如下:
第一步:例外、溢出判断,计算阶差。将A分解为符号、指数和尾数位;判断A是否为非规格化数、特殊数或溢出,如果为特殊数,则根据浮点标准,直接得出结果,并置相应的浮点例外控制寄存器位;取A的指数E,减去指数偏移量e,即计算浮点的实际指数值|E|,确定尾数右移位数。
第二步:尾数右移。根据第一步得到的实际指数值|E|进行移位,如果|E|>0,则E进行左移,如果|E|<0,则E进行右移。
第三步:舍入判断。根据移位产生的G、R、S位判断结果是否需要加1。
第四步:计算补码。如果结果是负整数,则转成补码表示。
第五步:生成计算结果和控制寄存器值。
(2)定点数据转换为浮点数据
本发明中,需要实现的定点转浮点操作有四类,分别是:64位或32位定点数转为双精度或单精度浮点数,包括无符号定点数,计算过程如下:
第一步:求补码与前导1检测。将A的数值与符号分离;求A的补码;确定尾数前导0的个数LZ,从而得到|E|的值。
第二步:计算B的指数值。
第三步:尾数移位。根据求出的实际指数值|E|,对补码进行移位。
第四步:舍入判断。根据移位产生的G、R、S位判断尾数是否需要加1。
第五步:生成计算结果和控制寄存器值。
(3)浮点数据精度之间转换
本发明中,需要实现的浮点数据精度之间转换有两类,分别是:带SIMD的双精度数据与单精度数据互转,计算过程如下:
第一步:例外、溢出判断,计算实际指数|E|。将A分解为符号、指数和尾数位;判断A是否为非规格化数、特殊数或溢出,如果为特殊数,则根据浮点标准,直接得出结果,并置相应的浮点例外控制寄存器位;取A的指数E,减去指数偏移量e,得到A的实际指数|E|。
第二步:计算B的指数。
第三步:计算B的尾数。
第四步:舍入判断。根据第三步产生的G、R、S位判断尾数是否需要加1。
第五步:生成计算结果和控制寄存器值。
本发明为提高数据浮点转换指令的性能,将所有数据转换的操作进行了分类,并实现了一种统一的浮点与定点数据转换部件的设计方法。该设计方法能够实现多种数据格式的转换,支持双精度浮点和64位定点、SIMD单精度浮点和32位定点及双精度浮点与单精度浮点之间的转换。
本发明基于单独的逻辑设计,并加入了SIMD操作,摆脱了传统的基于浮点加法器进行浮点与定点数据之间转换的设计方法,大大提高了信号处理中数据的转换速度和转换效率。
附图说明
图1是浮点转换模块的结构及流水站划分示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一步地详细描述。
基于上述转换指令算法流程分析和设计思路,本发明将格式转换设计成单独部件。由于定点数据转浮点数据是数据格式转换中最为复杂的操作,本发明对流水站的划分以及各个流水站和对应周期所做的操作均以此操作优先考虑,其他操作可以相应的流水执行。
对于单精度或32位指令实现了SIMD,本发明的实现思路是采用逻辑复制方式。在对总体模块进行功能验证后,可以对设计进行逻辑综合,获得时序信息,通过时序信息进行总体的延时评估与流水站均衡划分,实现执行段的流水线划分。如图1所示。图中的三站即为该模块的实际计算过程,每一站的主要执行内容为:
第一站:预处理逻辑。包括:源操作数读取与分离,例外、溢出判断;定点转浮点时源操作数转换为原码;定点转浮点时进行前导1检测;
第二站:移位、舍入与规格化。包括:尾数移位并判断G、R、S位的值;尾数产生、舍入处理,指数调整;
第三站:后处理逻辑。包括:定点转浮点和精度转换时的指数生成;结果生成与输出。
本发明提出了一种基于SIMD技术的高速数据格式转换部件的设计方法,摆脱了传统的基于浮点加法器进行浮点与定点数据之间转换的设计方法,大大提高了信号处理中数据的转换速度和转换效率。
Claims (5)
1.一种带SIMD的高速数据格式转换部件,其特征在于,包括:(1)求补码逻辑;(2)阶差计算逻辑;(3)前导1检测逻辑;(4)尾数移位逻辑;(5)舍入逻辑;其中:
(1)、求补码逻辑:定点转浮点时源操作数转换为原码;
(2)、阶差计算逻辑:计算浮点数的指数偏移;
(3)、前导1检测逻辑:定点转浮点时进行前导1检测;
(4)、尾数移位逻辑:尾数移位并判断G、R、S位的值;
(5)、舍入逻辑:根据移位产生的G、R、S位判断结果是否需要加1,并实现指数调整。
2.一种带SIMD的高速数据格式转换方法,其特征在于,包括
(1)浮点数据转换为定点数据
需要实现的浮点转定点操作有四类,分别是:双精度和单精度浮点数据转为64位或32位定点数,包括始终向0舍入模式;
(2)定点数据转换为浮点数据
需要实现的定点转浮点操作有四类,分别是:64位或32位定点数转为双精度或单精度浮点数,包括无符号定点数;
(3)浮点数据精度之间转换
需要实现的浮点数据精度之间转换有两类,分别是:带SIMD的双精度数据与单精度数据互转。
3.根据权利要求2所述的方法,其特征在于,
浮点数据转换为定点数据的计算过程如下:
第一步:例外、溢出判断,计算阶差;将A分解为符号、指数和尾数位;判断A是否为非规格化数、特殊数或溢出,如果为特殊数,则根据浮点标准,直接得出结果,并置相应的浮点例外控制寄存器位;取A的指数E,减去指数偏移量e,即计算浮点的实际指数值|E|,确定尾数右移位数;
第二步:尾数右移;根据第一步得到的实际指数值|E|进行移位,如果|E|>0,则E进行左移,如果|E|<0,则E进行右移;
第三步:舍入判断;根据移位产生的G、R、S位判断结果是否需要加1;
第四步:计算补码;如果结果是负整数,则转成补码表示;
第五步:生成计算结果和控制寄存器值。
4.根据权利要求2所述的方法,其特征在于,
定点数据转换为浮点数据的计算过程如下:
第一步:求补码与前导1检测;将A的数值与符号分离;求A的补码;确定尾数前导0的个数LZ,从而得到|E|的值;
第二步:计算B的指数值;
第三步:尾数移位;根据求出的实际指数值|E|,对补码进行移位;
第四步:舍入判断;根据移位产生的G、R、S位判断尾数是否需要加1;
第五步:生成计算结果和控制寄存器值。
5.根据权利要求2所述的方法,其特征在于,
(3)浮点数据精度之间转换的计算过程如下:
第一步:例外、溢出判断,计算实际指数|E|;将A分解为符号、指数和尾数位;判断A是否为非规格化数、特殊数或溢出,如果为特殊数,则根据浮点标准,直接得出结果,并置相应的浮点例外控制寄存器位;取A的指数E,减去指数偏移量e,得到A的实际指数|E|;
第二步:计算B的指数;
第三步:计算B的尾数;
第四步:舍入判断;根据第三步产生的G、R、S位判断尾数是否需要加1;
第五步:生成计算结果和控制寄存器值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206637.0A CN104778026A (zh) | 2015-04-28 | 2015-04-28 | 一种带simd的高速数据格式转换部件及转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206637.0A CN104778026A (zh) | 2015-04-28 | 2015-04-28 | 一种带simd的高速数据格式转换部件及转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104778026A true CN104778026A (zh) | 2015-07-15 |
Family
ID=53619517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510206637.0A Pending CN104778026A (zh) | 2015-04-28 | 2015-04-28 | 一种带simd的高速数据格式转换部件及转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104778026A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608715A (zh) * | 2017-07-20 | 2018-01-19 | 上海寒武纪信息科技有限公司 | 用于执行人工神经网络正向运算的装置及方法 |
CN108055041A (zh) * | 2017-12-22 | 2018-05-18 | 苏州中晟宏芯信息科技有限公司 | 一种数据类型转换电路单元及装置 |
CN110069240A (zh) * | 2019-04-30 | 2019-07-30 | 北京探境科技有限公司 | 定点与浮点数据计算方法及装置 |
CN111796798A (zh) * | 2020-09-08 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 一种定点与浮点转换器、处理器、方法以及存储介质 |
WO2021078209A1 (zh) * | 2019-10-25 | 2021-04-29 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
WO2024082674A1 (zh) * | 2022-10-19 | 2024-04-25 | 华为技术有限公司 | 浮点数据精度转换方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051228A (zh) * | 2007-05-14 | 2007-10-10 | 株洲南车时代电气股份有限公司 | 变流器实时控制器 |
CN101055564A (zh) * | 2007-05-29 | 2007-10-17 | 上海广电(集团)有限公司中央研究院 | 实现数字信号处理器非线性函数快速定点运算的方法 |
CN101056415A (zh) * | 2007-05-10 | 2007-10-17 | 海信集团有限公司 | 一种乘法操作转换为加法和移位操作的方法及装置 |
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
-
2015
- 2015-04-28 CN CN201510206637.0A patent/CN104778026A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056415A (zh) * | 2007-05-10 | 2007-10-17 | 海信集团有限公司 | 一种乘法操作转换为加法和移位操作的方法及装置 |
CN101051228A (zh) * | 2007-05-14 | 2007-10-10 | 株洲南车时代电气股份有限公司 | 变流器实时控制器 |
CN101055564A (zh) * | 2007-05-29 | 2007-10-17 | 上海广电(集团)有限公司中央研究院 | 实现数字信号处理器非线性函数快速定点运算的方法 |
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
Non-Patent Citations (1)
Title |
---|
邹晓峰 等: "高性能浮点与定点转换部件的设计与实现", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集(下册)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807819A (zh) * | 2017-07-20 | 2018-03-16 | 上海寒武纪信息科技有限公司 | 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法 |
CN107832082A (zh) * | 2017-07-20 | 2018-03-23 | 上海寒武纪信息科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN107844322A (zh) * | 2017-07-20 | 2018-03-27 | 上海寒武纪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
US11481215B2 (en) | 2017-07-20 | 2022-10-25 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Calculation method and related product |
CN107608715A (zh) * | 2017-07-20 | 2018-01-19 | 上海寒武纪信息科技有限公司 | 用于执行人工神经网络正向运算的装置及方法 |
CN108055041B (zh) * | 2017-12-22 | 2021-06-29 | 苏州中晟宏芯信息科技有限公司 | 一种数据类型转换电路单元及装置 |
CN108055041A (zh) * | 2017-12-22 | 2018-05-18 | 苏州中晟宏芯信息科技有限公司 | 一种数据类型转换电路单元及装置 |
CN110069240B (zh) * | 2019-04-30 | 2021-09-03 | 北京探境科技有限公司 | 定点与浮点数据计算方法及装置 |
CN110069240A (zh) * | 2019-04-30 | 2019-07-30 | 北京探境科技有限公司 | 定点与浮点数据计算方法及装置 |
WO2021078209A1 (zh) * | 2019-10-25 | 2021-04-29 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
CN111796798A (zh) * | 2020-09-08 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 一种定点与浮点转换器、处理器、方法以及存储介质 |
WO2022052625A1 (zh) * | 2020-09-08 | 2022-03-17 | 腾讯科技(深圳)有限公司 | 一种定点与浮点转换器、处理器、方法以及存储介质 |
WO2024082674A1 (zh) * | 2022-10-19 | 2024-04-25 | 华为技术有限公司 | 浮点数据精度转换方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778026A (zh) | 一种带simd的高速数据格式转换部件及转换方法 | |
CN102103479B (zh) | 浮点运算器及浮点运算的处理方法 | |
CN109643228B (zh) | 用于浮点乘加运算的低能耗尾数乘法 | |
CN102520903B (zh) | 支持定浮点可重构的长度可配置的向量最大/最小值网络 | |
CN102566967B (zh) | 一种采用多级流水线结构的高速浮点运算器 | |
CN102722352B (zh) | 一种Booth乘法器 | |
CN109062540A (zh) | 一种基于cordic算法的可重构浮点运算装置 | |
CN107291419A (zh) | 用于神经网络处理器的浮点乘法器及浮点数乘法 | |
CN106339202A (zh) | 微处理器及其方法 | |
CN102629189A (zh) | 基于fpga的流水浮点乘累加方法 | |
CN104111816A (zh) | Gpdsp中多功能simd结构浮点融合乘加运算装置 | |
US9104515B2 (en) | Floating-point error detection and correction | |
CN105335127A (zh) | Gpdsp中支持浮点除法的标量运算单元结构 | |
CN106970775A (zh) | 一种可重构定浮点通用加法器 | |
CN1270230C (zh) | 扩展精度的整数除的方法和设备 | |
CN116594590A (zh) | 一种浮点数据的多功能运算装置及方法 | |
CN112540946A (zh) | 可重构处理器及其上多种神经网络激活函数计算方法 | |
CN108055041A (zh) | 一种数据类型转换电路单元及装置 | |
CN101510149B (zh) | 一种数据处理方法和装置 | |
CN112711440A (zh) | 用于转换数据类型的转换器、芯片、电子设备及其方法 | |
CN102073473A (zh) | 基于fpga的十进制浮点乘法器设计 | |
CN201628951U (zh) | 一种高速浮点规格化运算器 | |
CN205281474U (zh) | 一种可配置的两级流水线六操作数快速加法器 | |
CN111290790B (zh) | 一种定点转浮点的转换装置 | |
CN110489077B (zh) | 一种神经网络加速器的浮点乘法运算电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150715 |
|
WD01 | Invention patent application deemed withdrawn after publication |