CN103677741A - 基于ncs算法的成像方法以及混合精度浮点协处理器 - Google Patents

基于ncs算法的成像方法以及混合精度浮点协处理器 Download PDF

Info

Publication number
CN103677741A
CN103677741A CN201310742912.1A CN201310742912A CN103677741A CN 103677741 A CN103677741 A CN 103677741A CN 201310742912 A CN201310742912 A CN 201310742912A CN 103677741 A CN103677741 A CN 103677741A
Authority
CN
China
Prior art keywords
precision
data
control module
arithmetic
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.)
Pending
Application number
CN201310742912.1A
Other languages
English (en)
Inventor
李丽
潘红兵
于东
黄炎
钱禹
韩峰
何书专
李伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201310742912.1A priority Critical patent/CN103677741A/zh
Publication of CN103677741A publication Critical patent/CN103677741A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种基于NCS算法的成像方法以及混合精度浮点协处理器,所述方法包括按步累加运算:构造若干个单精度加法器,通过按步累加运算以每步内对应的地址取数进行累加,按步累加运算的步长为任意值,多个加法器可以并行运行以提高运算速度;涉及到正余弦运算的,通过引入无理数的较小量
Figure 962597DEST_PATH_IMAGE002
对π进行双精度补偿修正,以降低计算值与真实值的误差。所述协处理器包括流水线控制模块、寄存器模块以及运算控制模块。有益效果为:1)采用双精度运算模块提高成像精度;2)删减不必要的运算模块以节约成本;3)硬件实现了按步累加和复数求模,大幅提升运算速度;4)对于按步累加和复数求模,仅需调用相应指令,显著降低了软件编程难度。

Description

基于NCS算法的成像方法以及混合精度浮点协处理器
技术领域
本发明涉及实时成像领域,尤其涉及一种基于NCS算法的成像方法以及混合精度浮点协处理器。 
背景技术
目前存在很多种实时成像算法,它们的目的都是为了在更短的时间内得到精度更高的图像。在成像领域,时间的消耗是一个非常敏感的数字,如果耗时过于严重,再高的清晰度也没有意义。NCS就是一种仍然处于研究阶段的成像算法,基于软件实现的NCS算法在耗时上存在很大的问题,其过长的运算时间给NCS算法的实际应用造成了很大的局限,因此,我们将目光转向速度更快的硬件实现手段。 
采用硬件实现需要考虑成本问题,如若充分考虑协处理器的通用性,全部采用双精度运算模块,硬件资源的消耗太过庞大;全部采用单精度运算模块,NCS算法的成像精度则无法保证,所能达到的精度只有要求的70%左右。 
发明内容
本发明目的在于克服以上现有技术之不足,提供一种基于NCS算法的成像方法以及混合精度浮点协处理器,具体有以下技术方案实现: 
所述基于NCS算法的成像方法,包括 
按步累加运算:构造若干个单精度加法器,通过按步累加运算以每步内对应的地址取数进行累加,按步累加运算的步长为任意值,多个加法器可以并行运行以提高运算速度; 
正余弦运算:通过引入无理数的较小量δ对π进行双精度补偿修正,以降低计算值与真实值的误差。 
所述的按步累加运算的进一步设计在于,所述地址生成中的按步累加运算指定一步长m,对一长度为n的数据串,进行每m个数据累加求和的运算,最终得到n/m个累加和。 
所述的高精度正余弦运算的进一步设计在于,所述正余弦运算设定待求源数据为θ,以2π-δ表示2π,带入
Figure BDA0000449424120000011
得到与真实值的误差为
Figure BDA0000449424120000012
Figure BDA0000449424120000021
其中δp是δ的双精度表示。 
如所述基于NCS算法的成像方法提出一种混合精度浮点协处理器,包括 
流水线控制模块,用于配合外部处理器流水操作,完成相应的握手机制,通过与译码相应的指令,输出后续操作需要的控制信号; 
寄存器模块,用于根据流水线控制模块输出的控制信号,存放、输出临时数据以及配置信息,并向运算控制模块输出控制信号; 
以及运算控制模块,根据流水线控制模块以及寄存器模块的控制信号完成相应的浮点运算并输出处理结果以及存储器的读写地址。 
所述混合精度浮点协处理器的进一步设计在于,其特征在于所述运算控制模块包括 
地址生成器,用于生成相应存储器的读写地址; 
数据多路选择器,根据CDP指令接收并传输来自寄存器或存储器的数据; 
数据处理器,根据不同运算的需求,对运算模块的输入做预处理,对运算模块的的输出做相应处理以生成最终运算结果; 
以及运算单元,包括若干浮点运算子单元,根据CDP指令调用所述浮点运算子单元完成相应的浮点运算。 
所述混合精度浮点协处理器的进一步设计在于,所述寄存器模块包括R0~R15,16个寄存器,R0~R7为通用寄存器,位宽64位,用于存放临时数据;R8~R15为专用寄存器,位宽32位,用于存放配置信息。 
本发明的优点如下: 
1)采用双精度运算模块提高成像精度; 
2)删减不必要的运算模块以节约成本; 
3)硬件实现了按步累加和复数求模,大幅提升运算速度; 
4)对于按步累加和复数求模,仅需调用相应指令,显著降低了软件编程难度。 
附图说明
图1协处理器组织结构图. 
图2协处理器结构和端口示意图. 
图3按步累加模块专用地址生成功能模块示意图。 
图4按步累加模块端口示意图。 
图5高精度正余弦算法示意图。 
图6MCR/MRC、CDP指令编码。 
具体实施方式
下面结合附图对本发明方案进行详细说明。 
经过对NCS算法的深入研究,误差主要发生在对107量级数据求正余弦运算上,对于107量级的数据,单精度表示仅能精确到十位,个位和小数位都是不精确的,这就给正余弦运算的进度带来极大的误差。因此,在本设计中,将该正余弦运算之前的与其相关的运算改为双精度,并采用本发明特有的高精度正余弦算法。实际论证表明,这种做法能将最后的图像精度显著提升到97.5%。 
如图3-5,本实施例提供的指令集,包括按步累加运算:构造若干个单精度加法器,通过按步累加运算以每步内对应的地址取数进行累加,按步累加运算的步长为任意值,多个加法器可以并行运行以提高运算速度;正余弦运算,通过引入无理数的较小量δ对π进行双精度补偿修正,以降低计算值与真实值的误差。 
对于按步累加运算,本实施例采用的是四级流水线的单精度加法器,为了最高效的利用该加法器,采用了一种特殊的地址生成模式。以步长m=3为例(实际上m可以为任意值),地址生成器取数的顺序是1,4,7,10,2,5,8,11,3,6,9,12,13,16……。即先依次取第1至第4个步长的第一个数,再依次取第1至第4个步长的第二个数,然后依次取第1至第4个步长的第三个数,这样就完成了第1至第4个步长的按步累加;接着仿照上面的步骤计算第5至第8个步长的按步累加,如此往复,直至所有的按步累加完成。由于采用了上述的4个步长并行的实现方法,可以让加法器的流水线一直保持满负荷的工作状态,从而提高加法器的利用率。 
对于高精度的正余弦运算,假设待求源数据为θ,使用cordic算法计算它的正余弦,获得
Figure BDA0000449424120000031
的值,即
Figure BDA0000449424120000032
的值。但鉴于π是一个无理数,即使采用双精度的浮点数也无法完全准确的表示π。因此,当θ值较大时,
Figure BDA0000449424120000033
就会出现比较严重的误差,这一误差对之后使用cordic算法计算正余弦有很大影响。 
本发明考虑对π进行补偿修正。在电路中使用的双精度的2π值可以用2π-δ表示(式中的δ也是一个无理数的较小量),那么实际电路按之前的公式 
Figure BDA0000449424120000041
代换得
Figure BDA0000449424120000042
由于取整运算的存在,可以认为而第一项是不准确的,需要进行修正。它与真实值的误差为
Figure BDA0000449424120000044
即图6中的
Figure BDA0000449424120000045
式中δp是δ的双精度表示。虽然这样的形式也无法完全准确的表示误差,但已经可以起到很好的修正作用。实践也表明,对于较大的θ值(106量级,在NCS成像的数据处理中很常见),这样的修正可以将结果的误差降为无修正情况的1/6。 
为了满足实时成像对时间的要求,将4K*1K成像的时间控制在10s以内,本设计将按步累加和复数求模全部采用硬件实现。在一般的通用协处理器中,要实现上述两种运算,必须依靠软件进行数据搬运和运算,在NCS算法数据量为8KB的情况下,时间消耗过大。与一般的通用协处理器相比,本设计采用硬件加速上述两种运算,相比不采用硬件加速,可以将复数求模运算时间缩减为1/4,将按步累加运算时间缩减为1/30。 
本实施例根据NCS实时成像方法提出的混合精度浮点协处理器,参见图1-2,包括流水线控制模块、寄存器模块以及运算控制模块。流水线控制模块,用于配合外部ARM处理器流水操作,完成相应的握手机制,通过与译码相应的指令,输出后续操作需要的控制信号。寄存器模块,用于根据流水线控制模块输出的控制信号,存放、输出临时数据以及配置信息,并向运算控制模块输出控制信号。运算控制模块,根据流水线控制模块以及寄存器模块的控制信号完成相应的浮点运算并输出处理结果以及存储器的读写地址。 
运算控制模块包括地址生成器,数据多路选择器,数据处理器以及运算单元。地址生成器,用于生成相应存储器的读写地址。数据多路选择器,根据CDP指令接收并传输来自寄存器或存储器的数据。数据处理器,根据不同运算的需求,对运算模块的输入做预处理,对运算模块的的输出做相应处理以生成最终运算结果。运算单元,包括若干浮点运算子单元,根据CDP指令调用浮点运算子单元完成相应的浮点运算。CDP及相关指令参见图6。 
寄存器模块包括R0~R15,16个寄存器,R0~R7为通用寄存器,位宽64位,用于存放临时数据;R8~R15为专用寄存器,位宽32位,用于存放配置信息。 
本实施例提供的混合精度浮点协处理器针对NCS算法设计的指令集包含17 种浮点运算,支持单数据处理和批数据处理两种模式。支持寄存器到寄存器,寄存器到memory,memory到寄存器,memory到memory四种处理方式。其指令集如表1所示。 
表1协处理器指令集 
综上,本设计采用双精度运算模块提高NCS算法的成像精度,硬件实现了按步累加和复数求模,大幅提升了运算速度,对于这两种运算,仅需调用相应指令,大大降低了软件人员的编程难度。而高精度的正余弦运算也为NCS最后的成像质量做出了显著的贡献。 

Claims (6)

1.一种基于NCS算法的成像方法,其特征在于包括
按步累加运算:构造若干个单精度加法器,通过按步累加运算以每步内对应的地址取数进行累加,按步累加运算的步长为任意值,多个加法器可以并行运行以提高运算速度;
正余弦运算:通过引入无理数的较小量δ对π进行双精度补偿修正,以降低计算值与真实值的误差。
2.根据权利要求1所述的指令集,其特征在于所述地址生成中的按步累加运算指定一步长m,对一长度为n的数据串,进行每m个数据累加求和的运算,最终得到n/m个累加和。
3.根据权利要求1所述的指令集,其特征在于,所述正余弦运算设定待求源数据为θ,以2π-δ表示2π,带入
Figure FDA0000449424110000011
得到与真实值的误差为
Figure FDA0000449424110000012
Figure FDA0000449424110000013
其中δp是δ的双精度表示。
4.如权利要求1-3的指令集提出一种混合精度浮点协处理器,其特征在于包括
流水线控制模块,用于配合外部处理器流水操作,完成相应的握手机制,通过与译码相应的指令,输出后续操作需要的控制信号;
寄存器模块,用于根据流水线控制模块输出的控制信号,存放、输出临时数据以及配置信息,并向运算控制模块输出控制信号;
以及运算控制模块,根据流水线控制模块以及寄存器模块的控制信号完成相应的浮点运算并输出处理结果以及存储器的读写地址。
5.根据权利要求4所述的混合精度浮点协处理器,其特征在于所述运算控制模块包括
地址生成器,用于生成相应存储器的读写地址;
数据多路选择器,根据CDP指令接收并传输来自寄存器或存储器的数据;
数据处理器,根据不同运算的需求,对运算模块的输入做预处理,对运算模块的的输出做相应处理以生成最终运算结果;
以及运算单元,包括若干浮点运算子单元,根据CDP指令调用所述浮点运算子单元完成相应的浮点运算。
6.根据权利要求5所述的混合精度浮点协处理器,其特征在于所述寄存器模块包括R0~R15,16个寄存器,R0~R7为通用寄存器,位宽64位,用于存放临时数据;R8~R15为专用寄存器,位宽32位,用于存放配置信息。
CN201310742912.1A 2013-12-30 2013-12-30 基于ncs算法的成像方法以及混合精度浮点协处理器 Pending CN103677741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310742912.1A CN103677741A (zh) 2013-12-30 2013-12-30 基于ncs算法的成像方法以及混合精度浮点协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310742912.1A CN103677741A (zh) 2013-12-30 2013-12-30 基于ncs算法的成像方法以及混合精度浮点协处理器

Publications (1)

Publication Number Publication Date
CN103677741A true CN103677741A (zh) 2014-03-26

Family

ID=50315423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310742912.1A Pending CN103677741A (zh) 2013-12-30 2013-12-30 基于ncs算法的成像方法以及混合精度浮点协处理器

Country Status (1)

Country Link
CN (1) CN103677741A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656867A (zh) * 2016-11-03 2019-04-19 北京中科寒武纪科技有限公司 Slam运算装置和方法
CN111124490A (zh) * 2019-11-05 2020-05-08 复旦大学 使用posit的无精度损失低功耗mfcc提取加速器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094719A (en) * 1997-06-25 2000-07-25 Sun Microsystems, Inc. Reducing data dependent conflicts by converting single precision instructions into microinstructions using renamed phantom registers in a processor having double precision registers
CN101474081A (zh) * 2008-12-30 2009-07-08 深圳市蓝韵实业有限公司 一种连续多普勒超声成像系统正交本振信号产生装置
CN102331577A (zh) * 2011-09-21 2012-01-25 北京理工大学 一种适用于地球同步轨道sar的改进ncs成像算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094719A (en) * 1997-06-25 2000-07-25 Sun Microsystems, Inc. Reducing data dependent conflicts by converting single precision instructions into microinstructions using renamed phantom registers in a processor having double precision registers
CN101474081A (zh) * 2008-12-30 2009-07-08 深圳市蓝韵实业有限公司 一种连续多普勒超声成像系统正交本振信号产生装置
CN102331577A (zh) * 2011-09-21 2012-01-25 北京理工大学 一种适用于地球同步轨道sar的改进ncs成像算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩正飞,等: "基于FPGA的浮点向量协处理器设计", 《计算机工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656867A (zh) * 2016-11-03 2019-04-19 北京中科寒武纪科技有限公司 Slam运算装置和方法
CN109656867B (zh) * 2016-11-03 2023-05-16 中科寒武纪科技股份有限公司 Slam运算装置和方法
CN111124490A (zh) * 2019-11-05 2020-05-08 复旦大学 使用posit的无精度损失低功耗mfcc提取加速器

Similar Documents

Publication Publication Date Title
US11687341B2 (en) Multi-variate strided read operations for accessing matrix operands
US11681529B2 (en) Apparatuses, methods, and systems for access synchronization in a shared memory
US11829440B2 (en) Accelerator for sparse-dense matrix multiplication
CN112445753B (zh) 从多维阵列预取多维元素块的硬件装置和方法
EP3721340A1 (en) System and architecture of neural network accelerator
CN110580175A (zh) 可变格式、可变稀疏矩阵乘法指令
US10942985B2 (en) Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
US9733935B2 (en) Super multiply add (super madd) instruction
US20230409732A1 (en) Instruction execution that broadcasts and masks data values at different levels of granularity
US9336000B2 (en) Instruction execution unit that broadcasts data values at different levels of granularity
US9436435B2 (en) Apparatus and method for vector instructions for large integer arithmetic
CN108269226B (zh) 用于处理稀疏数据的装置和方法
US20200026745A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
WO2013187862A1 (en) A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM
CN115686633A (zh) 用于实现链式区块操作的系统和方法
CN101211256A (zh) 一种专用双流水线risc指令系统及其操作方法
CN110321165A (zh) 复数向量融合乘加和复数向量乘法的高效实现
JPWO2016024508A1 (ja) マルチプロセッサ装置
CN110737612A (zh) 一种含有存储内计算的处理器
CN103677741A (zh) 基于ncs算法的成像方法以及混合精度浮点协处理器
CN102012802A (zh) 面向向量处理器数据交换的方法及装置
WO2020059156A1 (en) Data processing system, method, and program
US20220100507A1 (en) Apparatuses, methods, and systems for instructions to convert 16-bit floating-point formats
EP3716087A1 (en) Array broadcast and reduction systems and methods
TW202411857A (zh) 用於高效率逐元素聚合、縮放及位移之特殊用途數位運算硬體

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140326

WD01 Invention patent application deemed withdrawn after publication