CN103677741A - 基于ncs算法的成像方法以及混合精度浮点协处理器 - Google Patents
基于ncs算法的成像方法以及混合精度浮点协处理器 Download PDFInfo
- 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
Links
Images
Abstract
Description
技术领域
本发明涉及实时成像领域,尤其涉及一种基于NCS算法的成像方法以及混合精度浮点协处理器。
背景技术
目前存在很多种实时成像算法,它们的目的都是为了在更短的时间内得到精度更高的图像。在成像领域,时间的消耗是一个非常敏感的数字,如果耗时过于严重,再高的清晰度也没有意义。NCS就是一种仍然处于研究阶段的成像算法,基于软件实现的NCS算法在耗时上存在很大的问题,其过长的运算时间给NCS算法的实际应用造成了很大的局限,因此,我们将目光转向速度更快的硬件实现手段。
采用硬件实现需要考虑成本问题,如若充分考虑协处理器的通用性,全部采用双精度运算模块,硬件资源的消耗太过庞大;全部采用单精度运算模块,NCS算法的成像精度则无法保证,所能达到的精度只有要求的70%左右。
发明内容
本发明目的在于克服以上现有技术之不足,提供一种基于NCS算法的成像方法以及混合精度浮点协处理器,具体有以下技术方案实现:
所述基于NCS算法的成像方法,包括
按步累加运算:构造若干个单精度加法器,通过按步累加运算以每步内对应的地址取数进行累加,按步累加运算的步长为任意值,多个加法器可以并行运行以提高运算速度;
正余弦运算:通过引入无理数的较小量δ对π进行双精度补偿修正,以降低计算值与真实值的误差。
所述的按步累加运算的进一步设计在于,所述地址生成中的按步累加运算指定一步长m,对一长度为n的数据串,进行每m个数据累加求和的运算,最终得到n/m个累加和。
如所述基于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算法计算它的正余弦,获得的值,即的值。但鉴于π是一个无理数,即使采用双精度的浮点数也无法完全准确的表示π。因此,当θ值较大时,就会出现比较严重的误差,这一误差对之后使用cordic算法计算正余弦有很大影响。
本发明考虑对π进行补偿修正。在电路中使用的双精度的2π值可以用2π-δ表示(式中的δ也是一个无理数的较小量),那么实际电路按之前的公式 代换得由于取整运算的存在,可以认为而第一项是不准确的,需要进行修正。它与真实值的误差为即图6中的式中δ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个累加和。
4.如权利要求1-3的指令集提出一种混合精度浮点协处理器,其特征在于包括
流水线控制模块,用于配合外部处理器流水操作,完成相应的握手机制,通过与译码相应的指令,输出后续操作需要的控制信号;
寄存器模块,用于根据流水线控制模块输出的控制信号,存放、输出临时数据以及配置信息,并向运算控制模块输出控制信号;
以及运算控制模块,根据流水线控制模块以及寄存器模块的控制信号完成相应的浮点运算并输出处理结果以及存储器的读写地址。
5.根据权利要求4所述的混合精度浮点协处理器,其特征在于所述运算控制模块包括
地址生成器,用于生成相应存储器的读写地址;
数据多路选择器,根据CDP指令接收并传输来自寄存器或存储器的数据;
数据处理器,根据不同运算的需求,对运算模块的输入做预处理,对运算模块的的输出做相应处理以生成最终运算结果;
以及运算单元,包括若干浮点运算子单元,根据CDP指令调用所述浮点运算子单元完成相应的浮点运算。
6.根据权利要求5所述的混合精度浮点协处理器,其特征在于所述寄存器模块包括R0~R15,16个寄存器,R0~R7为通用寄存器,位宽64位,用于存放临时数据;R8~R15为专用寄存器,位宽32位,用于存放配置信息。
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)
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)
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成像算法 |
-
2013
- 2013-12-30 CN CN201310742912.1A patent/CN103677741A/zh active Pending
Patent Citations (3)
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)
Title |
---|
韩正飞,等: "基于FPGA的浮点向量协处理器设计", 《计算机工程》 * |
Cited By (3)
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 |