CN104166535A - 定点处理器及其防溢方法 - Google Patents
定点处理器及其防溢方法 Download PDFInfo
- Publication number
- CN104166535A CN104166535A CN201310307138.1A CN201310307138A CN104166535A CN 104166535 A CN104166535 A CN 104166535A CN 201310307138 A CN201310307138 A CN 201310307138A CN 104166535 A CN104166535 A CN 104166535A
- Authority
- CN
- China
- Prior art keywords
- fixed
- random length
- point
- floating number
- length floating
- 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.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及定点处理器及其防溢方法,定点处理器包括用于定点数加、减、乘、除单元、移位单元的运算模块;本发明的不定长浮点数用指数部分和尾数部分两个定点数表示,数据范围较定点数大大增加,若指数部分用32位表示,其范围远大于双精度浮点数,定点处理器处理时不用考虑乘法运算数据溢出问题;尾数部分长度不确定,定点数据可以快速转化为不定长浮点数;乘数和除数保持定点格式无需转换,提高了运算效率;基于模型设计时,只需增加不定长浮点数与定点数之间转换及不定长浮点数的加减乘除运算模块即可实现无溢出、无需定标的模型。
Description
技术领域
本发明属于计算机技术领域,涉及一种定点处理器及其防溢方法。
背景技术
单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,在工业控制、家用电器、汽车电子等领域均有应用。其中定点单片机由于成本优势,应用更为广泛。一般定点数最大为32位,表示数据范围为0~0xffffffff,且不能表示小数,定点处理器进行运算时容易产生数据溢出问题,需要设计人员根据经验调整数据类型及运算顺序,工作量大且容易出错;尤其是基于模型的设计,建模人员一般不了解底层运算,创建定点模型存在很大困难。一般定点处理器只能表示32位以内的数,32位数再乘以大于1的数即溢出,被除数小于除数时结果为0,再乘以任意数结果均为零,不定长浮点数可以有效解决类似问题。
发明内容
本发明的目的是提供一种定点处理器及其防溢方法,以解决现有定点处理器进行运算时容易产生数据溢出的问题。
为实现上述目的,本发明的定点处理器包括:
转换模块,包括定点数转不定长浮点数和不定长浮点数转定点数单元,所述不定长浮点数的尾数部分采用不定长格式;
运算模块,包括加、减、乘、除法单元和移位单元,所述乘法单元进行处理时先将被乘数转换为不定长浮点数,该不定长浮点数的尾数与乘数相乘;所述除法单元进行处理时先将被除数转换为不定长浮点数,尾数左移12位再除;所述移位单元对加、减、乘、除法单元的运算结果的位数进行相应的移位,移位完成后将结果输入给转换模块将不定长浮点数转换为定点数。
所述移位单元进行相应的移位是指运算结果大于28位时则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理。
本发明的定点处理器的防溢方法技术方案如下:当输入定点处理器的两定点数进行乘法运算时,先将被乘数转换为不定长浮点数,该不定长浮点数的尾数与乘数相乘;当两定点数进行除法运算时,先将被除数转换为不定长浮点数,然后将尾数左移12位再除;以上乘、除运算结果大于28位时则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理,移位数在指数部分做相应调整,运算结束后将不定长浮点数转换为定点数;所述不定长浮点数由偏置指数、小于等于20位的二进制尾数和1位符号位三部分组成,指数部分定义同IEEE单精度浮点数格式,尾数部分占用20位,有效位长度从1到20可变。
本发明的定点处理器及其防溢方法中不定长浮点数用指数部分和尾数部分两个定点数表示,数据范围较定点数大大增加,若指数部分用32位表示,其范围远大于双精度浮点数,定点处理器处理时不用考虑乘法运算数据溢出问题;尾数部分长度不确定,定点数据可以快速转化为不定长浮点数;乘数和除数保持定点格式无需转换,提高了运算效率;基于模型设计时,只需增加不定长浮点数与定点数之间转换及不定长浮点数的加减乘除运算模块即可实现无溢出、无需定标的模型。
附图说明
图1是本发明方法实施例的定点数转不定长浮点数流程图;
图2是本发明方法实施例的不定长浮点数转定点数流程图;
图3是本发明方法实施例的不定长浮点数乘法流程图;
图4是本发明方法实施例的不定长浮点数除法流程图。
具体实施方式
定点处理器包括转换模块和运算模块。转换模块包括定点数转不定长浮点数和不定长浮点数转定点数单元,不定长浮点数的尾数部分采用不定长格式。运算模块包括加、减、乘、除法单元和移位单元,乘法单元进行处理时先将被乘数转换为不定长浮点数,该不定长浮点数的尾数与乘数相乘;除法单元进行处理时先将被除数转换为不定长浮点数,尾数先左移12位再除;移位单元对加、减、乘、除法单元的运算结果的位数进行相应的移位,移位完成后将结果输入给转换模块将不定长浮点数转换为定点数;移位单元进行相应的移位是指运算结果大于28位时则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理。
不定长浮点数数据由三部分组成:20位(二进制)尾数M、8位偏置指数E和1位符号位,这些字段可以分开存放。实际工程计算中物理量一般为正值,因此以下默认为正,并且为适应定点处理器运算,下文不再考虑符号位,指数部分用独立的数据表示并且不局限于8位,最高可达32位。
该浮点数指数部分定义同IEEE单精度浮点数格式;不同于单精度浮点数,不定长浮点数尾数部分占用20位,并且有效位长度从1到20可变;不定长浮点数只作为被乘数或被除数,可与定点数直接进行计算。乘法时尾数部分与乘数相乘,除法运算时,尾数先左移12位再除,以上乘、除法运算后有效值大于28位则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理,移动位数在指数部分做相应调整,乘数和除数应小于4096。加减运算时可以转为定点数后进行。
如图1所示为定点数据a转换为尾数为m指数为e的不定长浮点数流程,图2所示为尾数为m指数为e的不定长浮点数转化为定点数的流程;图3所示为尾数为m指数为e的不定长浮点数乘以定点数据a的流程;图4所示为尾数为m指数为e的不定长浮点数除以定点数据a的流程。
以0x1000000*0xfff/0x10000为例,正确结果应为0xfff00,若直接用定点计算0x1000000*0xfff则高位溢出,运算结果为0xff00,若先计算0xfff/0x10000则最终为0,以上均不正确。采用不定长浮点格式时0x1000000可用尾数0x10000和指数8表示,乘以0xfff后尾数为0xfff0000指数为8,再除以0x10000尾数为0xfff指数为8,转换为定点数即0xfff00,结果正确,避免了定点乘法高位溢出或被除数不够除造成的运算错误。
最后所应说明的是:以上实施例仅用以说明而非限定本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解;依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种定点处理器,其特征在于,包括:
转换模块,包括定点数转不定长浮点数和不定长浮点数转定点数单元,所述不定长浮点数的尾数部分采用不定长格式;
运算模块,包括加、减、乘、除法单元和移位单元,所述乘法单元进行处理时先将被乘数转换为不定长浮点数,该不定长浮点数的尾数与乘数相乘;所述除法单元进行处理时先将被除数转换为不定长浮点数,尾数左移12位再除;所述移位单元对加、减、乘、除法单元的运算结果的位数进行相应的移位,移位完成后将结果输入给转换模块将不定长浮点数转换为定点数。
2.根据权利要求1所述的定点处理器,其特征在于,所述移位单元进行相应的移位是指运算结果大于28位时则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理。
3.一种定点处理器的防溢方法,其特征在于,当输入定点处理器的两定点数进行乘法运算时,先将被乘数转换为不定长浮点数,该不定长浮点数的尾数与乘数相乘;当两定点数进行除法运算时,先将被除数转换为不定长浮点数,然后将尾数左移12位再除;以上乘、除运算结果大于28位时则右移12位,大于24位则右移8位,大于20位则右移4位,20位及以下不用处理,移位数在指数部分做相应调整,运算结束后将不定长浮点数转换为定点数;所述不定长浮点数由偏置指数、小于等于20位的二进制尾数和1位符号位三部分组成,指数部分定义同IEEE单精度浮点数格式,尾数部分占用20位,有效位长度从1到20可变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310307138.1A CN104166535B (zh) | 2013-07-19 | 2013-07-19 | 定点处理器及其防溢方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310307138.1A CN104166535B (zh) | 2013-07-19 | 2013-07-19 | 定点处理器及其防溢方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104166535A true CN104166535A (zh) | 2014-11-26 |
CN104166535B CN104166535B (zh) | 2017-07-28 |
Family
ID=51910371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310307138.1A Active CN104166535B (zh) | 2013-07-19 | 2013-07-19 | 定点处理器及其防溢方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166535B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256140A (zh) * | 2017-06-09 | 2017-10-17 | 上海联影医疗科技有限公司 | 实现基于硬件加速的非标准浮点数重建算法的方法和设备 |
CN107451658A (zh) * | 2017-07-24 | 2017-12-08 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN109858623A (zh) * | 2016-04-28 | 2019-06-07 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN112148371A (zh) * | 2019-06-27 | 2020-12-29 | 北京地平线机器人技术研发有限公司 | 基于单指令多数据流的数据运算方法、装置、介质和设备 |
CN113781217A (zh) * | 2021-08-31 | 2021-12-10 | 深圳华云信息系统有限公司 | 基于fpga的浮点数处理方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3961170A (en) * | 1971-04-22 | 1976-06-01 | Ing. C. Olivetti & C., S.P.A. | Fixed point to floating point conversion in an electronic computer |
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
EP1441277A2 (en) * | 2003-01-27 | 2004-07-28 | Denso Corporation | Electronic control apparatus |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
CN101510149A (zh) * | 2009-03-16 | 2009-08-19 | 炬力集成电路设计有限公司 | 一种数据处理方法和装置 |
CN201311633Y (zh) * | 2008-11-07 | 2009-09-16 | 中国北车股份有限公司大连电力牵引研发中心 | 基于fpga的浮点数值除法器实现的功能模块 |
CN101540623A (zh) * | 2008-03-21 | 2009-09-23 | 傲世通科技(苏州)有限公司 | 一种用于td-scdma系统中小区初搜的方法及其装置 |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
CN102566964A (zh) * | 2010-09-24 | 2012-07-11 | Arm有限公司 | 矢量浮点变元缩减 |
CN103135960A (zh) * | 2013-02-28 | 2013-06-05 | 浪潮集团有限公司 | 一种基于fpga的集成浮点运算器的设计方法 |
-
2013
- 2013-07-19 CN CN201310307138.1A patent/CN104166535B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3961170A (en) * | 1971-04-22 | 1976-06-01 | Ing. C. Olivetti & C., S.P.A. | Fixed point to floating point conversion in an electronic computer |
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
EP1441277A2 (en) * | 2003-01-27 | 2004-07-28 | Denso Corporation | Electronic control apparatus |
CN1952875A (zh) * | 2006-09-18 | 2007-04-25 | 华为技术有限公司 | 一种定点除法器及其实现运算的方法 |
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
CN101540623A (zh) * | 2008-03-21 | 2009-09-23 | 傲世通科技(苏州)有限公司 | 一种用于td-scdma系统中小区初搜的方法及其装置 |
CN201311633Y (zh) * | 2008-11-07 | 2009-09-16 | 中国北车股份有限公司大连电力牵引研发中心 | 基于fpga的浮点数值除法器实现的功能模块 |
CN101510149A (zh) * | 2009-03-16 | 2009-08-19 | 炬力集成电路设计有限公司 | 一种数据处理方法和装置 |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
CN102566964A (zh) * | 2010-09-24 | 2012-07-11 | Arm有限公司 | 矢量浮点变元缩减 |
CN103135960A (zh) * | 2013-02-28 | 2013-06-05 | 浪潮集团有限公司 | 一种基于fpga的集成浮点运算器的设计方法 |
Non-Patent Citations (1)
Title |
---|
CAREKEE: ""序"", 《HTTP://WWW.CNBLOGS.COM/CAREKEE/ARTICLES/2569593.HTML》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858623A (zh) * | 2016-04-28 | 2019-06-07 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN109858623B (zh) * | 2016-04-28 | 2021-10-15 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN107256140A (zh) * | 2017-06-09 | 2017-10-17 | 上海联影医疗科技有限公司 | 实现基于硬件加速的非标准浮点数重建算法的方法和设备 |
CN107451658A (zh) * | 2017-07-24 | 2017-12-08 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN107451658B (zh) * | 2017-07-24 | 2020-12-15 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN112148371A (zh) * | 2019-06-27 | 2020-12-29 | 北京地平线机器人技术研发有限公司 | 基于单指令多数据流的数据运算方法、装置、介质和设备 |
CN112148371B (zh) * | 2019-06-27 | 2023-10-24 | 北京地平线机器人技术研发有限公司 | 基于单指令多数据流的数据运算方法、装置、介质和设备 |
CN113781217A (zh) * | 2021-08-31 | 2021-12-10 | 深圳华云信息系统有限公司 | 基于fpga的浮点数处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104166535B (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
CN104166535A (zh) | 定点处理器及其防溢方法 | |
CN102629189B (zh) | 基于fpga的流水浮点乘累加方法 | |
EP3447634B1 (en) | Non-linear function computing device and method | |
JP4232838B2 (ja) | 再構成可能なsimd型プロセッサ | |
CN103677738A (zh) | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 | |
CN106951211A (zh) | 一种可重构定浮点通用乘法器 | |
CN108196822A (zh) | 一种双精度浮点开方运算的方法及系统 | |
CN105335127A (zh) | Gpdsp中支持浮点除法的标量运算单元结构 | |
CN101630243A (zh) | 超越函数装置以及用该装置实现超越函数的方法 | |
CN105045560A (zh) | 一种定点乘加运算方法和装置 | |
CN104133656A (zh) | 一种尾码采用移位和减法运算的浮点数除法器及运算方法 | |
CN111813371B (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
Malík | High throughput floating point exponential function implemented in FPGA | |
JP2016062404A (ja) | 演算処理方法及び演算処理装置 | |
CN111443893A (zh) | 一种基于cordic算法的n次根计算装置及方法 | |
CN107133012A (zh) | 一种高速自定义浮点复数除法器 | |
CN103809931A (zh) | 一种专用高速浮点指数运算器的设计 | |
CN103944576B (zh) | 一种Sigma‑Delta调制器及一种用于Sigma‑Delta调制器的运算方法 | |
Banerjee et al. | High performance novel square root architecture using ancient Indian mathematics for high speed signal processing | |
KR102338863B1 (ko) | 연산을 제어하기 위한 장치 및 방법 | |
Saha et al. | Area efficient architecture of Hyperbolic functions for high frequency applications | |
Jaberipur | Redundant number system-based arithmetic circuits | |
CN102929575A (zh) | 一种模乘法器 | |
CN107977587A (zh) | 一种平方根功能实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 450061 Yutong Road, Guancheng District, Zhengzhou City, Henan Province Patentee after: Yutong Bus Co., Ltd Address before: 450016 shibalihe Yutong Industrial Park, Zhengzhou City, Henan Province Patentee before: Zhengzhou Yutong Bus Co., Ltd |