CN105528191B - 数据累加装置、方法及数字信号处理装置 - Google Patents

数据累加装置、方法及数字信号处理装置 Download PDF

Info

Publication number
CN105528191B
CN105528191B CN201510862723.7A CN201510862723A CN105528191B CN 105528191 B CN105528191 B CN 105528191B CN 201510862723 A CN201510862723 A CN 201510862723A CN 105528191 B CN105528191 B CN 105528191B
Authority
CN
China
Prior art keywords
data
cumulative
tree
signal
module
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.)
Active
Application number
CN201510862723.7A
Other languages
English (en)
Other versions
CN105528191A (zh
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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201510862723.7A priority Critical patent/CN105528191B/zh
Publication of CN105528191A publication Critical patent/CN105528191A/zh
Priority to US15/773,973 priority patent/US10379816B2/en
Priority to PCT/CN2016/086099 priority patent/WO2017092283A1/zh
Application granted granted Critical
Publication of CN105528191B publication Critical patent/CN105528191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明公开一种数据累加装置、方法及数字信号处理装置,所述装置包括:累加树模块,采用二叉树结构的形式对输入数据进行累加,并输出累加结果数据;寄存模块,包含多组寄存器,对累加树模块在累加过程中产生的中间值数据及累加结果数据进行寄存;控制电路,生成数据选通信号以控制累加树模块过滤不需要累加的输入数据,以及生成flag标志信号以进行如下控制:选择将一个或多个存储于寄存器中的中间值数据与所述累加结果相加后的结果作为输出数据,或者选择直接将累加结果作为输出数据。由此,能够在一个时钟周期节拍内快速的将多组输入数据累加至一组和值。同时,所述累加装置可通过控制信号灵活选择同时累加多个输入数据中的部分数据。

Description

数据累加装置、方法及数字信号处理装置
技术领域
本发明属于计算机电子领域,涉及一种能够在log2N级加法器延迟内完成将N个输入数据累加为一个和值数据的数据累加装置、方法及数字信号处理装置。
背景技术
当今,实时数字信号处理技术在多媒体播放、网络交易处理、系统控制、图像识别与图像处理等领域被广泛应用。因此,面向这些领域的电子产品越来越多的采用数字信号处理器以及相关的算法及其优化系统。各种数字处理系统涉及的子运算包括傅里叶变换、卷积、矩阵乘等,而这些运算大都包含累加运算。
然而,直接调用软件层面实现累加显然不是一个很好的办法,一方面它需要调用处理器资源,当没有处理器资源的时候,此类算法将无法进行;另一方面,当使用处理器资源时,此类算法会占用大量的功耗,同时计算效率也不高。
分布式系统虽然可一定程度实现累加运算的加速,消息传递的通信开销将占用处理器资源,同时根据Amdahl定律,当算法并行部分加速比提高到一定程度后,算法的串行部分(如通信等)将成为算法的瓶颈。
现阶段,为了实现硬件专用的累加运算,工业界和学术界提出了各种累加电路。但每次累加的数据个数是固定的。
专利文献1(公开号为CN103294446A)提出一种定点乘加累加器,其中累加数据是定点数而且仅可将数据看成4个N位宽、2个2N位宽或1个4N位宽的数据;即便如此,该硬件一次能累加的数据个数也只能是某几种固定模式,功能过于特殊化。同时,装置逻辑复杂,传输延迟较高,不利于提高芯片主频。
因而一个灵活粒度、并行度高、延迟低的累加装置对提高上述数字处理系统吞吐量有着非常重要的意义并且使用范围广泛。数字信号处理算法,如神经网络、视频解码一般是实时的,对运算性能和吞吐量要求高。同时,数字信号处理算法中累加情况多变,被累加的数据个数可取任意值,且被累加数据位置繁多,对累加操作灵活性有较高的要求。
发明内容
有鉴于此,本发明的主要目的在于提供一种高性能、灵活方式的累加装置,通过研究现阶段数字信号处理系统广泛使用的算法涉及使用的累加运算,分析其所需的资源,采用累加树树结构,在log2N级加法器的时间延迟实现N个数据的累加。
本发明公开了一种累加装置,其支持在一次运算操作中灵活地选择N个数据中的某些数据累加为一个和值,其包括:
累加树模块,用于采用树结构的形式将输入数据累加为部分和数据;
寄存模块,包含多组用于存储所述部分和数据的寄存器;
控制模块,又包括:
选通信号生成电路,用于生成数据选通信号以控制所述累加树模块过滤不需要累加的输入数据;
数据寄存信号生成电路,用于生成数据寄存选择信号以控制所述部分和数据在所述寄存器模块的存储位置;
数据读取信号生成电路,用于生成数据读取选择信号以选中所述寄存器模块的某一个寄存器中寄存的一个或多个所述部分和数据,
flag信号生成电路,用于生成flag标志信号以进行累加选择控制,以实现所述累加选择控制为,将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出,或者直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出,其中输出的数据还基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
本发明的数据累加装置,其中,
所述树结构为二叉树结构或华莱士树结构。
本发明的数据累加装置,其中,
所述二叉树结构为,在除了叶节点外的每个节点处有一个加法器,父亲节点处的加法器对该父亲节点的两个儿子节点的数据进行相加,在二叉树的根节点得出所述部分和数据。
本发明的数据累加装置,其中,
所述数据选通信号的位宽度等于所述二叉树的叶子节点数,且所述数据选通信号的每一位的数据对应于一个所述二叉树的叶子节点的数据,通过使所述数据选通信号的某一位或多位的数据无效来控制与该某一位或多位的数据相对应的所述叶子节点的数据不进行累加。
本发明的数据累加装置,其中,
所述输入数据为定点数时,所述二叉树结构中的所述父亲节点的精度比该父亲节点的两个儿子节点中较高精度的节点高一个比特。
本发明的数据累加装置,其中,
所述输入数据包括浮点数、定点数、有符号数、无符号数、整数和/或实数。
另外,本发明还提供一种数据累加方法,包括以下步骤:
步骤1,控制电路的选通信号生成电路生成数据选通信号并发送到累加树模块;
步骤2,所述累加树模块基于所述数据选通信号判断哪些输入数据需进行累加,并对需累加的输入数据以树结构的形式累加为部分和数据;
步骤3,所述控制电路的数据寄存信号生成电路生成数据寄存选择信号并发送到寄存模块,所述寄存模块基于数据寄存选择信号将所述部分和数据寄存于数据寄存选择信号所选中的寄存器;
步骤4,所述控制电路的数据读取信号生成电路生成数据读取选择信号并发送到所述寄存模块以选中所述寄存器模块的某一个寄存器中寄存的一个或多个所述部分和数据;
步骤5,所述控制电路的flag信号生成电路生成flag标志信号以进行累加选择控制,所述累加选择控制为,将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出,或者直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出,其中输出的数据还基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
步骤6,输出的数据基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
本发明的数据累加方法,其中,
在所述步骤5中,所述累加选择控制进一步为:
如果flag标志具有第一个值,则将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出;
如果flag标志具有第二个值,则直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出。
另外,本发明还提供一种包括上述的数据累加装置的数字信号处理装置。所述数字信号处理装置为数字信号处理器、数字信号处理芯片、图形处理器、或视频解码器。
此外,本发明还提供一种包括上述的数据累加方法的数字信号处理方法。
本发明至少包括以下有益效果:
在本发明提供的累加装置中,包含一个加法树,能够在一个时钟周期节拍内快速的将多组输入数据累加至一组和值。同时,所述累加装置可通过控制信号灵活选择同时累加多个输入数据中的部分数据。另外,此装置提供一种中间值存储方式,中间值可被存储于通过控制电路发出的数据寄存选择信号所选中的寄存器组,并可通过编码单元被访问;通过这种中间值存储装置,可以节省此累加装置的访存开销。
附图说明
图1示出本发明的一实施方式的数据累加装置的结构图。
图2示出本发明采用的二叉树结构的概要图。
图3为本发明的一实施方式的LRN层运算输入输出关系示意图。
图4示出使用本发明的数据累加装置进行数据累加的方法。
图5示出本发明的一实施方式的数字信号处理装置。
附图标记说明
1…编码控制电路
2…累加树模块
3…多路选择器
4…中间值存储寄存器组
6…加法器
7…两路选择器
11…数据寄存选择信号
12…数据读取选择信号
13…加法树输入数据选通信号
14…flag标志信号
100…数据累加装置
200…数字信号处理装置
具体实施方式
本发明的累加装置支持在一次运算操作中灵活地选择N个数据中的某些数据累加为一个和值。此装置累加灵活粒度、并行度高、延迟低,对要求有较高实时性能的数字处理算法,如神经网络、视频解码等有着较广泛的使用范围。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的数据累加装置及方法进行进一步详细说明。
本发明公开的累加装置支持的数据类型包括有有符号、无符号、整数、实数、负数。本装置假定累加树有N个输入叶节点,且有M个存储中间部分和结果的寄存器。可通过控制信号选择N个输入叶节点数据中的部分数据通过累加树叠加,叠加的结果通过可选择或不选择M个中间部分和结果寄存器中一个值相加得出更新后的部分和值,更新后的部分和值可选择存放至M个中间部分和结果寄存器中的某一个。
图1示出本发明的实施方式的累加装置结构图。如图1所示,所述累加装置包括:编码控制电路1、累加树模块2、多路选择器3、中间值存储寄存器组4、多路选择器5、加法器6、两路选择器7。且该累加装置支持多个定点或浮点数据的累加。此外,可配置输入数据寄存器用来存储输入数据流9,且指令中相应将多个数据累加的部分(可理解为图1种的附图标记8)属于所述输入数据寄存器。
所述累加树模块2,其被配置为响应于控制信号将多个输入数据快速的累加为中间部分和值,该累加树模块2可具有经典的二叉树结构,且适用于多个浮点数或者定点数的累加,如图2所示,除了树的叶节点外,每个节点处有一个加法器20,每个父亲节点将它的两个儿子节点的数据叠加,树的根节点得出累加树的和值结果,通过使累加树采用二叉树结构模式的,能够在最快时间内计算出多个数据的累加结果,提高装置性能。图2中,在累加树的每一个叶子节点有一位控制器生成的控制信号,此控制信号被配置为表示此叶节点处的输入数据是否需要被累加,通过此种方式,本发明可实现灵活的累加方式。另外,该二叉树累加树结构被配置为处理定点数时,每个父亲节点的精度比其两个儿子节点中较高精度多一比特位,例如,此二叉树中,某个节点的两个节点精度分别为X、Y比特,且有X≥Y,则该节点的精度为X+1比特,可实现不同精度定点数的累加,同时,以最少的逻辑门(包括“与”、“或”、“非”逻辑门)实现累加而又不损失数据精度。另外,累加树模块2可以因为芯片工艺或者芯片频率等要求而划分为多个流水级,同时增加寄存器寄存控制信号,例如:由于累加树是分层的,可以将不同的层看作为不同流水级,并在不同层之间插入寄存器以寄存数据累加过程中产生的和数据。如图1所示,输入数据流9输入于该累加树模块2,从而该累加树模块2对输入数据流9进行累加,该累加树模块2提供同时将N个需累加的数据在log2N级加法器延迟内累加为一个累加结果数据,其中,“log2N级加法器延迟”含义为,由于图2的加法树示意图中的加法树是分层的,因而一个加法器延迟表示将两个加法器将两个数据相加得到输出需要的时间。此外,输入数据流9包括为多个有符号、无符号、整数、实数、负数、定点数、浮点数等等,且支持SIMD或者MIMD,从而现阶段的数据处理算法可以十分高效的在该累加装置上实现。
所述控制电路1,其作用相当于译码单元,包括数据寄存信号生成电路、数据读取信号生成电路、选通信号生成电路、flag信号生成电路,分别被配置为响应指令中控制信号进行编码信号8而产生相应的控制信号result_select信号11(相当于权利要求中的数据寄存选择信号)、source_select信号12(相当于权利要求中的数据读取选择信号)、加法树输入数据选通信号13以及flag标志信号14来控制累加树2及多路选择器3、中间值存储寄存器组4、多路选择器5、加法器6、两路选择器7等;其中,result_select信号11是从指令中相应将多个数据累加的部分解析所得的,其被配置为选择一个用于存储存储累加计算出的中间部分和结果寄存器(该寄存器包含于中间值存储寄存器组4)来寄存此次累加数结果;source_select信号12是从指令中相应将多个数据累加的部分解析得到的,其在flag标志具有第一个值时具有实际意义,被配置为选择一个用于存储累加计算出的中间部分和结果寄存器来与累加树的累加和相加,其中,该“第一个值”可根据输入的控制指令解析出来,是指令编码中的表示需要累加中间值的某些值(可由程序员自行设定)。当需要累加中间值的时候可以从指令中解析出被累加的是哪个寄存器,同时还能解析出累加结果中间值应该被寄存在哪个寄存器中。source_select信号12和result_select信号11的取值数量不少于用于存储每次累加计算所得的中间部分和结果寄存器组中寄存器个数,以确保之每个寄存器至少一个值与其相对应,从而不会造成装置读或写操作无法访问这组寄存器中某些寄存器的情况出现,且source_select信号12和result_select信号11可以具有不同的值,表示选中的和累加树结果相加的寄存器和用于存储相加的结果的寄存器不同;flag标志是从指令中相应将多个数据累加的部分解析获得的,其作用是判断是否需要将通过累加树计算的累加和与source_select信号选中的用于存储累加计算出的中间部分和结果寄存器相加,如果flag具有第一个值,则需要相加;否则,即flag具有第二个值时,不需相加,其中,该“第二个值”可根据输入的控制指令解析出来,是指令编码中的表示不需要累加中间值的某些值(可由程序员自行设定)。另外,输入数据选通信号13过滤不需要累加的输入数据数据,从而支持选择N个输入叶节点数据中的部分数据通过累加树叠加功能。例如不要累加第0个和第N-1个输入数据,通过这种方式可实现灵活的数据累加方式。具体方案是:使用者可事先配置电路生成多组N位宽的选通信号,每组选通信号中的1位对应图2的加法树结构的一个叶节点数据是否需要被累加,例如:假设累加树具有8个叶节点,其对应的选通信号为8bit,每个叶节点的输入分别是x0,x1,x2,x3,x4,x5,x6,x7,累加方式如表1所示。
(表1)
选通信号 需累加输入数据
8'b00000000 None
8'b00000001 x0
8'b00000010 x1
8'b00000011 x1,x0
8'b00000100 x2
…… ……
8'b11111101 x7,x6,x5,x4,x3,x2,x0
8'b11111110 x7,x6,x5,x4,x3,x2,x1
8'b11111111 x7,x6,x5,x4,x3,x2,x1,x0
(注:表格中省略号省略了其它56种情况,具体为选通信号按照二进制码从5到60的部分)
从上表1可知:对于N各叶节点的加法树,其共有2N种累加方式。
此外,图1中的中间值存储寄存器组4,包含有多个寄存器,用于存储每次累加计算所得的中间部分和结果。数据处理装置可通过控制信号选择以寄存器与累加树结果相加,同时,还可通过控制信号选择一个寄存器存储累加中间部分和,其中控制信号是指,result_select信号11、source_select信号12和flag标志信号14。
多路路由3,其被配置为响应result_select信号11选中M个中间部分和结果寄存器中的某个寄存器,将更新后的部分和值或者结果寄存于被选中的寄存器中,即寄存于中间值存储寄存器组4中被选中的寄存器。
多路路由5,其被配置为响应source_select信号12选中M个中间部分和结果寄存器值17中的某个,被选中的寄存器值18可能与累加树结果相加得出更新后的部分和值或者结果。
两路选择器7,其被配置为响应flag标志控制两路选择器选择累加树结果15或者累加树结果15与多路选择器选中的寄存器值18相加结果作为更新后的部分和值或者结果10。
此外,上述已经提及,对于定点数累加,精度拓展为:根据数据为有符号/无符号数和数据位宽进行拓展,所述二叉树累加树结构中,每个父亲节点的精度比其两个儿子节点中较高精度多一比特位。另外,所述累加装置被用于处理多个定点数据累加时,可将累加树的二叉树结构改为华莱士树结构。
本发明所述累加装置,可以互不干扰的实现多组累加结果的计算,通过改变控制电路的控制信号选择N个数据中不同的部分数据累加,然后将累加部分和存储于不同中间部分和结果寄存器中可实现利用同样的输入数据计算不同输出结果。
下面利用卷积神经网络算法(CNN)中的局部响应归一化层(LRN)的计算作为实例:
CNN神经网路算法中,LRN层输入输出的映射公式为:
公式(1)
其中Ik (x,y)为LRN层输入数据中位于第k个特征映射面(feature map)上坐标为(x,y)的神经元值,Oz (x,y)为LRN层输出数据中位于第z个feature map上坐标为(x,y)的神经元值,f(·)表示为一种非线性变换。
此公式的具体含义为,LRN层输出数据位于第z个feature map上坐标位置为(x,y)的神经元值为输入数据中属于[z-l/2,z+l/2]范围的l个feature map上相同坐标的神经元值的平方和的函数值再乘以输入数据位于第z个feature map上坐标位置为(x,y)的神经元值。因此,为了计算LRN层的每个输出数据,必须进行l个数据的累加。
在此,我们采用MIMD方式计算,假设有n组累加装置,累加装置的累加树为n输入。每个累加装置计算z坐标值间隔为n的输出。不失一般性,可假设输入z坐标值属于[1,N],且有l<n<N。将(x,y)位置的N的输入按n个为一组的方式分组,最后一组可能少于n个输入。
图3示为LRN层计算时n组累加装置中的一个累加计算的输入输出映射示意图,图中,左边为按照feature map排列的输入数据的平方,并按照上述方式分组(图中表示有3组);右边箭头所指向的位置为此装置需计算的第2、3个累加输出结果。当输入为第2组时,其不同部分可分别用于计算第2、3个累加结果。为了数据重复利用,减小存储开销,当输入为第2组时,可通过控制信号,选择用于计算第2个累加结果的部分通过累加树累加然后和存储了其存储于中间结果寄存器中第2个累加结果的部分和相加计算出第2个累加结果。之后,再通过控制信号选择用于计算第3个累加结果的部分通过累加树算出部分和,然后将部分和寄存在一个中间结果寄存器中。
另外,本发明还提供一种数据累加方法,如图4所示,包括以下步骤:
步骤1,控制电路的选通信号生成电路生成数据选通信号并发送到累加树模块;
步骤2,所述累加树模块基于所述数据选通信号判断哪些输入数据需进行累加,并对需累加的输入数据以树结构的形式累加为部分和数据;
步骤3,所述控制电路的数据寄存信号生成电路生成数据寄存选择信号并发送到寄存模块,所述寄存模块基于数据寄存选择信号将所述部分和数据寄存于数据寄存选择信号所选中的寄存器;
步骤4,所述控制电路的数据读取信号生成电路生成数据读取选择信号并发送到所述寄存模块以选中所述寄存器模块的某一个寄存器中寄存的一个或多个所述部分和数据;
步骤5,所述控制电路的flag信号生成电路生成flag标志信号以进行累加选择控制,所述累加选择控制为,将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出,或者直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出,其中输出的数据还基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
步骤6,输出的数据基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
本发明的数据累加方法,其中,
在所述步骤5中,所述累加选择控制进一步为:
如果flag标志具有第一个值,则将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出;
如果flag标志具有第二个值,则直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出。
另外,如图5所示,本发明还提供一种包含本发明的数据累加装置100的数字信号处理装置200。该数字信号处理装置200可以为例如数字信号处理器、数字信号处理芯片、图形处理器、视频解码器等,应用于图形处理、多媒体播放、网络交易处理、模式识别等领域。此外,本发明还提供一种包括上述的数据累加方法的数字信号处理方法。
另外,应当说明的是,本发明所述“指令”是指计算机程序指令,该计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定的方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上对本发明所提供的数据累加装置、方法及数字信号处理装置、及数字信号处理装置方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限值。

Claims (11)

1.一种数据累加装置,其特征在于,包括:
累加树模块,用于采用树结构的形式将输入数据累加为部分和数据;
寄存模块,包含多组用于存储所述部分和数据的寄存器;
控制模块,又包括:
选通信号生成电路,用于生成数据选通信号并发送到所述累加树模块以控制所述累加树模块过滤不需要累加的输入数据;
数据寄存信号生成电路,用于生成数据寄存选择信号并发送到所述寄存模块以控制所述部分和数据在所述寄存模块的存储位置;
数据读取信号生成电路,用于生成数据读取选择信号并发送到所述寄存模块以选中所述寄存模块的某一个寄存器中寄存的一个或多个所述部分和数据;
flag信号生成电路,用于生成flag标志信号以进行累加选择控制,以实现所述累加选择控制为,将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出,或者直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出,其中输出的数据还基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
2.根据权利要求1所述的数据累加装置,其特征在于,
所述树结构为二叉树结构或华莱士树结构。
3.根据权利要求2所述的数据累加装置,其特征在于,
所述二叉树结构为,在除了叶节点外的每个节点处有一个加法器,父亲节点处的加法器对该父亲节点的两个儿子节点的数据进行相加,在二叉树的根节点得出所述部分和数据。
4.根据权利要求2或3所述的数据累加装置,其特征在于,
所述数据选通信号的位宽度等于所述二叉树的叶子节点数,且所述数据选通信号的每一位的数据对应于一个所述二叉树的叶子节点的数据,通过使所述数据选通信号的某一位或多位的数据无效来控制与该某一位或多位的数据相对应的所述叶子节点的数据不进行累加。
5.根据权利要求2或3所述的数据累加装置,其特征在于,
所述输入数据为定点数时,所述二叉树结构中的所述父亲节点的精度比该父亲节点的两个儿子节点中较高精度的节点高一个比特。
6.根据权利要求4所述的数据累加装置,其特征在于,
所述输入数据为定点数时,所述二叉树结构中的所述父亲节点的精度比该父亲节点的两个儿子节点中较高精度的节点高一个比特。
7.一种数据累加方法,其特征在于,包括以下步骤:
步骤1,控制电路的选通信号生成电路生成数据选通信号并发送到累加树模块;
步骤2,所述累加树模块基于所述数据选通信号判断哪些输入数据需进行累加,并对需累加的输入数据以树结构的形式累加为部分和数据;
步骤3,所述控制电路的数据寄存信号生成电路生成数据寄存选择信号并发送到寄存模块,所述寄存模块基于数据寄存选择信号将所述部分和数据寄存于数据寄存选择信号所选中的寄存器;
步骤4,所述控制电路的数据读取信号生成电路生成数据读取选择信号并发送到所述寄存模块以选中所述寄存模块的某一个寄存器中寄存的一个或多个所述部分和数据;
步骤5,所述控制电路的flag信号生成电路生成flag标志信号以进行累加选择控制,以实现将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出,或者直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出,其中输出的数据还基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
步骤6,输出的数据基于所述flag标志信号和所述数据寄存选择信号的控制而选择寄存于所述寄存器或输出到外部存储器。
8.根据权利要求7所述的数据累加方法,其特征在于,
在所述步骤5中,所述累加选择控制进一步为:
如果flag标志具有第一个值,则将所述数据读取选择信号所选中的所述部分和数据与所述累加树模块在当前时钟周期输出的所述部分和数据相加后的结果作为更新的部分和数据进行输出;
如果flag标志具有第二个值,则直接将所述累加树模块在当前时钟周期输出的所述部分和数据进行输出。
9.一种包括权利要求1~6中任一项所述的数据累加装置的数字信号处理装置。
10.根据权利要求9所述的数字信号处理装置,其特征在于,
所述数字信号处理装置为数字信号处理器、数字信号处理芯片、图形处理器、或视频解码器。
11.一种包括权利要求7~8中任一项所述的数据累加方法的数字信号处理方法。
CN201510862723.7A 2015-12-01 2015-12-01 数据累加装置、方法及数字信号处理装置 Active CN105528191B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510862723.7A CN105528191B (zh) 2015-12-01 2015-12-01 数据累加装置、方法及数字信号处理装置
US15/773,973 US10379816B2 (en) 2015-12-01 2016-06-17 Data accumulation apparatus and method, and digital signal processing device
PCT/CN2016/086099 WO2017092283A1 (zh) 2015-12-01 2016-06-17 数据累加装置、方法及数字信号处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510862723.7A CN105528191B (zh) 2015-12-01 2015-12-01 数据累加装置、方法及数字信号处理装置

Publications (2)

Publication Number Publication Date
CN105528191A CN105528191A (zh) 2016-04-27
CN105528191B true CN105528191B (zh) 2017-04-12

Family

ID=55770442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510862723.7A Active CN105528191B (zh) 2015-12-01 2015-12-01 数据累加装置、方法及数字信号处理装置

Country Status (3)

Country Link
US (1) US10379816B2 (zh)
CN (1) CN105528191B (zh)
WO (1) WO2017092283A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528191B (zh) 2015-12-01 2017-04-12 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置
WO2017185335A1 (zh) * 2016-04-29 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行batch normalization运算的装置和方法
CN106203617B (zh) * 2016-06-27 2018-08-21 哈尔滨工业大学深圳研究生院 一种基于卷积神经网络的加速处理单元及阵列结构
CN108475188A (zh) * 2017-07-31 2018-08-31 深圳市大疆创新科技有限公司 数据处理方法和设备
KR102356708B1 (ko) * 2017-09-28 2022-01-27 삼성전자주식회사 컨볼루션 연산을 수행하는 연산 장치 및 연산 방법
CN107909537B (zh) * 2017-11-16 2020-11-06 厦门美图之家科技有限公司 一种基于卷积神经网络的图像处理方法及移动终端
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US10534578B1 (en) * 2018-08-27 2020-01-14 Google Llc Multi-input floating-point adder
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
CN111027435B (zh) * 2019-12-02 2022-12-02 清华大学 一种基于梯度提升决策树的识别系统、装置和方法
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) * 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
EP4336345A1 (en) * 2021-07-30 2024-03-13 Huawei Technologies Co., Ltd. Accumulator, multiplier, and operator circuit
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925514A (zh) * 2006-09-22 2007-03-07 华东师范大学 一种结构简单的移动求和器
CN101847137A (zh) * 2009-03-27 2010-09-29 杭州中科微电子有限公司 一种实现基2fft计算的fft处理器
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058144A (en) * 1988-04-29 1991-10-15 Xerox Corporation Search tree data structure encoding for textual substitution data compression systems
EP0626661A1 (en) * 1993-05-24 1994-11-30 Societe D'applications Generales D'electricite Et De Mecanique Sagem Digital image processing circuitry
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US6430589B1 (en) * 1997-06-20 2002-08-06 Hynix Semiconductor, Inc. Single precision array processor
US6571268B1 (en) * 1998-10-06 2003-05-27 Texas Instruments Incorporated Multiplier accumulator circuits
US6421698B1 (en) * 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
CN101859241B (zh) 2010-05-22 2011-11-23 中国人民解放军国防科学技术大学 基于全展开的全流水128位精度浮点累加器
CN102033732B (zh) 2010-12-17 2012-07-18 浙江大学 基于fpga的高速低延迟浮点累加器及其实现方法
CN102495719B (zh) * 2011-12-15 2014-09-24 中国科学院自动化研究所 一种向量浮点运算装置及方法
US20130262819A1 (en) 2012-04-02 2013-10-03 Srinivasan Iyer Single cycle compare and select operations
CN103176767B (zh) * 2013-03-01 2016-08-03 浙江大学 一种低功耗高吞吐的浮点数乘累加单元的实现方法
CN103294446B (zh) 2013-05-14 2017-02-15 中国科学院自动化研究所 一种定点乘累加器
CN105528191B (zh) 2015-12-01 2017-04-12 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925514A (zh) * 2006-09-22 2007-03-07 华东师范大学 一种结构简单的移动求和器
CN101847137A (zh) * 2009-03-27 2010-09-29 杭州中科微电子有限公司 一种实现基2fft计算的fft处理器
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法

Also Published As

Publication number Publication date
US20180321912A1 (en) 2018-11-08
US10379816B2 (en) 2019-08-13
CN105528191A (zh) 2016-04-27
WO2017092283A1 (zh) 2017-06-08

Similar Documents

Publication Publication Date Title
CN105528191B (zh) 数据累加装置、方法及数字信号处理装置
CN111178519B (zh) 卷积神经网络加速引擎、卷积神经网络加速系统及方法
CN111242289B (zh) 一种规模可扩展的卷积神经网络加速系统与方法
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN111062472A (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN107423816B (zh) 一种多计算精度神经网络处理方法和系统
KR20130090147A (ko) 신경망 컴퓨팅 장치 및 시스템과 그 방법
CN110276450A (zh) 基于多粒度的深度神经网络结构化稀疏系统和方法
US11017290B2 (en) Signal processing module, especially for a neural network and a neuronal circuit
CN107085562B (zh) 一种基于高效复用数据流的神经网络处理器及设计方法
CN103617150A (zh) 一种基于gpu的大规模电力系统潮流并行计算系统及其方法
CN107797962A (zh) 基于神经网络的计算阵列
CN105913118A (zh) 一种基于概率计算的人工神经网络硬件实现装置
CN104809161B (zh) 一种对稀疏矩阵进行压缩和查询的方法及系统
CN111831354B (zh) 数据精度配置方法、装置、芯片、芯片阵列、设备及介质
CN110851779A (zh) 用于稀疏矩阵运算的脉动阵列架构
CN104536831B (zh) 一种基于多目标优化的多核SoC软件映射方法
CN113191491B (zh) 多维度并行的人工智能处理器架构
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
CN111651208B (zh) 面向异构众核并行计算机的模态并行计算方法及系统
CN117217272A (zh) 支持卷积运算和正余弦函数运算的存算芯片、存算方法
CN110245756A (zh) 用于处理数据组的可编程器件及处理数据组的方法
CN115081608A (zh) 基于自适应分配的神经网络加速器实现系统和方法
CN102411491B (zh) 一种用于并行fft计算的数据存取方法及装置
CN114998090A (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
CB03 Change of inventor or designer information

Inventor after: Wu Linyang

Inventor after: Li Zhen

Inventor after: Liu Shaoli

Inventor after: Zhang Shijin

Inventor after: Luo Tao

Inventor after: Qian Cheng

Inventor after: Chen Yunji

Inventor after: Chen Tianshi

Inventor before: Li Zhen

Inventor before: Liu Shaoli

Inventor before: Zhang Shijin

Inventor before: Luo Tao

Inventor before: Qian Cheng

Inventor before: Chen Yunji

Inventor before: Chen Tianshi

CB03 Change of inventor or designer information