CN109558170A - 一种支持数据级并行和多指令融合的二维数据通路架构 - Google Patents

一种支持数据级并行和多指令融合的二维数据通路架构 Download PDF

Info

Publication number
CN109558170A
CN109558170A CN201811314543.5A CN201811314543A CN109558170A CN 109558170 A CN109558170 A CN 109558170A CN 201811314543 A CN201811314543 A CN 201811314543A CN 109558170 A CN109558170 A CN 109558170A
Authority
CN
China
Prior art keywords
unit
parallel
arithmetical
data
arithmetic logic
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
Application number
CN201811314543.5A
Other languages
English (en)
Other versions
CN109558170B (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.)
Jixin Communication Technology Nanjing Co ltd
Polar Core Communication Technology Xi'an Co ltd
Original Assignee
Hainan 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 Hainan University filed Critical Hainan University
Priority to CN201811314543.5A priority Critical patent/CN109558170B/zh
Publication of CN109558170A publication Critical patent/CN109558170A/zh
Application granted granted Critical
Publication of CN109558170B publication Critical patent/CN109558170B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供一种支持数据级并行和多指令融合的二维数据通路架构,包括逐层依次设置的并行乘法单元、二维算术单元和后处理单元;所述并行乘法单元由多个并行的乘法器构成,用于并行执行多路实数的相乘运算、指数运算或者旁路操作;所述二维算术单元的输入端连接所述并行乘法单元的输出端,且所述二维算术单元包括多个呈二维排布的纵向多层、各层横向并行的算术逻辑单元,各纵向多层之间以及各层横向并行的算术逻辑单元之间通过数据交换网络进行连接;所述后处理单元的输入端连接所述二维算术单元的输出端,用于执行后处理操作。本发明能够有效提高该架构在特殊数字信号处理中的普遍适用性,并有效提高架构的处理性能及效率。

Description

一种支持数据级并行和多指令融合的二维数据通路架构
技术领域
本发明涉及数字信号处理器技术领域,更具体地,涉及一种支持数据级并行和多指令融合的二维数据通路架构。
背景技术
可编程处理器通过软件程序实现不同的计算功能,具有高度的灵活性。处理器的一个重要组件是算数逻辑单元(Arithmetic and Logic Unit,ALU),该组件执行算术和逻辑运算。通用处理器上的ALU支持简单的算术运算和逻辑运算,复杂的计算则会被分解成多步的ALU运算来实现。
通常的数字信号处理算法均可由通用可编程处理器执行,但通用可编程处理器并不适合应用在由电池供电或者有低功耗要求的嵌入式系统中。这是由于数字信号处理算法通常需要对一组输入数据进行快速和重复的数学运算,且往往需要实时计算,对延迟有严格要求,而通用处理器无法同时满足数字信号处理算法对处理速度、实施成本以及功耗的要求。
专用数字信号处理器是一种针对特定的数字信号处理应用而设计的可编程处理器,其采用特殊的处理器架构,如优化算术逻辑单元,来提高计算速度。数字信号处理器上执行的数学运算通常由重复的数学计算,如乘加计算(MAC)构成,在专用处理器中则通过设计特殊的逻辑计算单元单步完成这些基本运算来提高运算速度。
例如,能够实现并行操作的超长指令字(Very Long Instruction Word,VLIW)处理器,通过指令级并行运行来提高处理速度。VLIW处理器把多个操作合并成一个超长指令,一次读入并同时执行其中的多个操作,能够充分利用处理器的硬件资源来提高处理速度。但是,由于程序指令字过长,且程序执行的操作受依赖关系限制,一些操作不能在VLIW处理器上并行执行,同时由于通常超长指令字中的某个操作为空操作(NOP),使得程序效率降低且影响系统处理能力。另外,由于VLIW处理器依赖编译器决定操作执行的顺序,而现有的代码生成工具还不能分析专用数字信号处理算法并利用专用硬件和指令提高处理速度,且在执行多数的同构重复的数字信号处理算法时,控制代码过于冗余,开销过大,使得一些特殊的数字信号处理算法无法在VLIW处理器上高效的执行。
而另一种单指令多数据(Single Instruction Multiple Data,SIMD)处理器,采用一维并行数据通道,通过多个处理单元同时对多个数据执行相同操作,即通过数据级并行计算,提高处理速度。但是传统SIMD处理器只是针对数据并行处理,简单扩展了ALU单元使之能够同时处理多路输入数据,对于专用数字信号处理算法,将其较复杂的操作分解为简单的SIMD操作后性能提高并不明显。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明提供一种支持数据级并行和多指令融合的二维数据通路架构,用以有效提高该架构在特殊数字信号处理中的普遍适用性,并有效提高架构的处理性能及效率。
本发明提供一种支持数据级并行和多指令融合的二维数据通路架构,包括逐层依次设置的并行乘法单元、二维算术单元和后处理单元;所述并行乘法单元由多个并行的乘法器构成,用于并行执行多路实数的相乘运算、指数运算或者旁路操作;所述二维算术单元的输入端连接所述并行乘法单元的输出端,且所述二维算术单元包括多个呈二维排布的纵向多层、各层横向并行的算术逻辑单元,各纵向多层之间以及各层横向并行的算术逻辑单元之间通过数据交换网络进行连接;所述后处理单元的输入端连接所述二维算术单元的输出端,用于执行后处理操作。
其中,所述并行乘法单元由并行的2N个实数乘法器构成,其中,N表示所述数据通路架构的并行度,且N为2的整数次幂;所述二维算术单元包括纵向的P层算术逻辑通道和各相邻两层算术逻辑通道间的数据交换网络,每层所述算术逻辑通道包括N个并行的算术逻辑单元,其中P为以2为底N的对数;所述后处理单元包括N个并行的后处理单元。
其中,所述算术逻辑单元用于执行加法运算、减法运算、比较运算、移位运算、绝对值计算或者旁路操作;所述P层算术逻辑通道中的第P层对应的算术逻辑单元还用于进行前一步计算结果的累加运算。
其中,所述P层算术逻辑通道中的任一层算术逻辑通道的运算结果通过所述数据交换网络传递至相邻下一层算术逻辑通道,同一层算术逻辑通道中的任一算术逻辑单元的运算结果通过所述数据交换网络横向进位传递至相邻下一个算术逻辑单元。
其中,所述并行乘法单元进一步包括乘法器、寄存器和用于对输入向量做符号扩展的符号扩展模块,所述乘法器、所述寄存器和所述符号扩展模块的不同组合连接方式,可对应实现实数的相乘运算、指数运算或者旁路操作。
其中,在所述并行乘法单元中,通过将所述寄存器的输出连接至所述乘法器的输入,实现操作数转发,并进一步用于指数运算;通过将所述乘法器的输入连接至所述寄存器的输入,实现旁路操作。
进一步的,所述二维算术单元还包括进位选择组件和操作数转发组件,所述进位选择组件或操作数转发组件设于所述P层算术逻辑通道中的各层对应的算术逻辑单元之间;所述算术逻辑单元通过所述操作数转发组件,将运算结果横向传递至同一层的相邻下一个算术逻辑单元,或者通过所述进位选择组件,将进位位Cin传递至所述相邻下一个算术逻辑单元。
其中,所述后处理单元进一步包括依次连接的缩放单元、舍入单元、饱和单元和标志位单元;所述缩放单元用于将运算结果进行移位缩放操作,所述舍入单元用于将缩放结果进行舍入操作,所述饱和单元用于判断舍入结果是否发生溢出并将舍入结果进行取饱和操作,所述标志位单元用于保存数据结果的标志信息。
其中,所述P层算术逻辑通道中的第P层对应的各所述算术逻辑单元还包括累加寄存器,所述累加寄存器用于进行前一步计算结果的累加运算。
其中,可通过设置所述乘法器、所述寄存器和所述符号扩展模块与所述二维算术单元中算术逻辑单元的不同组合连接形式,实现不同的专用数字信号处理运算。
本发明提供的一种支持数据级并行和多指令融合的二维数据通路架构,通过逐层依次设置并行乘法单元、二维算术单元和后处理单元,形成并行的多层二维数据通路,能够有效提高架构的处理性能及效率,使用简单高效的指令支持面向专用数字信号处理应用的快速和重复的计算。并且,本发明可用于设计高效的专用指令支持常用的数字信号处理,如泰勒展开、滤波器、变换及矩阵运算等,提高专用处理器运行数字信号处理算法的运算速度。
附图说明
图1为本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构的结构示意图;
图2为本发明实施例另一种支持数据级并行和多指令融合的二维数据通路架构的结构示意图;
图3为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中并行乘法单元的结构示意图;
图4为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中二维算术单元的结构示意图;
图5为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中后处理单元的结构示意图;
图6为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现向量实数乘法的示意图;
图7为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现长型FIR滤波的示意图;
图8为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现基四FFT运算的示意图;
图9为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现长型FIR滤波的示意图;
图10为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现二倍数据宽度向量加法的示意图;
图11为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现二倍数据宽度复数乘法的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为本发明实施例的一个方面,本实施例提供一种支持数据级并行和多指令融合的二维数据通路架构,参考图1,为本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构的结构示意图,包括逐层依次设置的并行乘法单元1、二维算术单元2和后处理单元3。
其中,并行乘法单元1由多个并行的乘法器构成,用于并行执行多路实数的相乘运算、指数运算或者旁路操作;二维算术单元2的输入端连接并行乘法单元的输出端,且二维算术单元包括多个呈二维排布的纵向多层、各层横向并行的算术逻辑单元,各纵向多层之间以及各层横向并行的算术逻辑单元之间通过数据交换网络进行连接;后处理单元3的输入端连接二维算术单元的输出端,用于执行后处理操作。
可以理解的是,如图1所示,可以认为是一个数字信号处理器的并行数据通道,即本发明实施例的二维数据通路的架构,该架构依次包括并行乘法单元1、二维算术单元2和后处理单元3三层硬件单元。
其中的并行乘法单元1由并行的多个乘法器构成,用于执行多路实数的乘法运算、指数运算或者旁路操作(即无操作)。
其中的二维算术单元2包括二维排布的纵向多层和横向并行的算术逻辑单元,各算术逻辑单元之间通过数据交换网络进行纵向连接或者横向进位连接。
可以理解的是,二维算术单元2中纵向的各层算术逻辑单元可相应构成各层算术逻辑通道。每层算术逻辑通道中包括多个横向连接的算术逻辑单元。其中上一层的算术逻辑通道的运算结果可以通过数据交换网络纵向传递至下一层算术逻辑通道;同一层算术逻辑道中的前一个算术逻辑单元的运算结果可以横向进位传递至下一个算术逻辑单元。
其中,每个算术逻辑单元可以用于进行加法、减法、比较、移位、绝对值或者旁路操作运算,且最后一层算术逻辑通道还可以进行累加操作。
其中的后处理单元3由并行的多个后处理单元构成,用于执行二维算术单元2运算后的后处理操作,例如可进行饱和、舍入和缩放操作。
本发明实施例提供的一种支持数据级并行和多指令融合的二维数据通路架构,通过逐层依次设置并行乘法单元、二维算术单元和后处理单元,形成并行的多层二维数据通路,能够有效提高架构的处理性能及效率,使用简单高效的指令支持面向专用数字信号处理应用的快速和重复的计算。并且,本发明可用于设计高效的专用指令支持常用的数字信号处理,如泰勒展开、滤波器、变换及矩阵运算等,提高专用处理器运行数字信号处理算法的运算速度。
其中可选的,参考图2,为本发明实施例另一种支持数据级并行和多指令融合的二维数据通路架构的结构示意图。其中,并行乘法单元1由并行的2N个实数乘法器11构成,其中,N表示数据通路架构的并行度,且N为2的整数次幂;
二维算术单元2包括纵向的P层算术逻辑通道21和各相邻两层算术逻辑通道间的数据交换网络22,每层算术逻辑通道21包括N个并行的算术逻辑单元211,其中P为以2为底N的对数;
后处理单元3包括N个并行的后处理单元31。
可以理解的是,如图2所示,以并行度N取值为8为例,本发明实施例的二维数据通路架构中的并行乘法单元1包括2N个实数乘法器11,即16个实数乘法器11。应当理解的是,此处并行度N的取值为2的整数次幂,如可取4路、8路以及16路等。
可知,并行乘法单元1用于进行实数乘法运算、指数运算或者旁路操作。其中指数运算可以通过操作数转发(operand forwarding)的电路实现,例如,x,x2,x3,x4,…。旁路操作可通过旁路bypass电路实现,可以用于旁路这一层上的乘法器设备,即将输入端开的数据传递到输出端口作为输出数据,不作乘法操作。
其中可选的,参考图3,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中并行乘法单元的结构示意图。如图3所示,并行乘法单元1进一步包括乘法器11、寄存器12和用于对输入向量做符号扩展的符号扩展模块13。其中,乘法器11、寄存器12和符号扩展模块13的不同组合连接方式,可对应实现实数的相乘运算、指数运算或者旁路操作。
可以理解的是,如图3所示,本实施例二维数据通路架构中的并行乘法单元1进一步至少包括乘法器11、寄存器12和符号扩展模块13三个组件。输入向量数据首先分别经对应符号扩展模块13的符号扩展作用,再由乘法器11对符号扩展后的数据进行相乘运算,并将运算结果寄存在寄存器12。
其中,在一个实施例中,在并行乘法单元中,通过将寄存器的输出连接至乘法器的输入,实现操作数转发,并进一步用于指数运算;通过将乘法器的输入连接至寄存器的输入,实现旁路操作。
可以理解为,操作数转发(operand forwarding)功能可以通过将寄存器12的输出连接到乘法器11的输入实现,并进一步可以用来进行指数运算。旁路(bypass)操作可以通过将乘法器11的输入直接连接到寄存器12的输入来实现。
其中,二维算术单元2中算术逻辑单元211的层数P可根据并行度N确定,具体取为以2为底N的对数。例如4路并行时二维算术单元2的结构为2层,8路并行时有3层,16路并行时4层。图2中二维数据通路的并行度为8,则算术逻辑单元211的层数为3层,但是本发明的保护范围并不以此为限。
同样以并行度N取值为8为例,如图2所示,二维算术单元2包括3层算术逻辑通道21和相邻两层算术逻辑通道21间的数据交换网络22。每层算术逻辑通道21包括8个并行的算术逻辑单元211。
其中,根据上述实施例,P层算术逻辑通道中的任一层算术逻辑通道21的运算结果通过数据交换网络22传递至相邻下一层算术逻辑通道21,同一层算术逻辑通道21中的任一算术逻辑单元211的运算结果通过数据交换网络22横向进位传递至相邻下一个算术逻辑单元211。
其中,后处理单元3包括N个并行的后处理单元31。以上述举例为例,其中的N取8,则后处理单元3包括8个并行的后处理单元31。后处理单元3可用于执行饱和(saturation)、舍入(rounding)和缩放(scaling)操作等的后处理操作。
其中可选的,算术逻辑单元211可用于执行加法运算、减法运算、比较运算、移位运算、绝对值计算或者旁路操作;P层算术逻辑通道中的第P层对应的算术逻辑单元211还用于进行前一步计算结果的累加运算。
可以理解的是,根据上述实施例,二维算术单元2包括呈二维排布的纵向多层和横向并行的算术逻辑单元211,各算术逻辑单元211之间通过数据交换网络22进行纵向各层的连接以及同层的横向进位连接。本实施例中算术逻辑单元211可以进行加法运算、减法运算、比较运算、移位运算、绝对值计算或者旁路操作等多种类型的二维运算。
其中,在一个实施例中,根据上述实施例的P层算术逻辑通道中的第P层对应的各算术逻辑单元211还包括累加寄存器2111,累加寄存器2111用于进行前一步计算结果的累加运算。
可以理解的是,在二维算术单元2的多个层次中,最后一层,如图2中的第3层,其算术逻辑通道21的算术逻辑单元211还包含累加寄存器2111,可以进行累加操作。例如,可配置该层进行操作如长字节加法、复数加法、累加、排序操作、专用数字信号处理(DigitalSignal Processing,DSP)等运算操作。
其中,上述第一层的并行乘法单元1和第三层的后处理单元3支持传统的SIMD操作,而对于复杂的操作,将由三层硬件以管道(或流水并行,Pipeline)方式并行执行。
二维数据通路可为执行简单操作的数据通道,包括:实数\复数及短字节\长字节的加法、减法、乘法、最小值、最大值及绝对值等的运算操作;逻辑运算如与、或、异或;算术移位或逻辑移位运算;前导零计数(count leading zeros)运算;后处理操作如缩放(scaling)、舍入(rounding)、饱和(saturation)等运算。
或者,二维数据通路也可为执行高级数字信号处理操作的数据通道,包括:FIR(有限冲激响应,Finite Impulse Response)滤波器;基-2,基-4的蝶形运算(butterfly)操作;1D DCT(离散余弦变换,Discrete Cosine Transform);Bitonic sorting(超群的分类)排序;非线性滤波(最大值,最小值,或者中值);指数运算以及快速泰勒级数展开等的运算。
进一步的,在上述实施例的基础上,参考图4,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中二维算术单元的结构示意图。如图4所示,二维算术单元2还包括进位选择组件212或操作数转发组件213,进位选择组件212和操作数转发组件213设于P层算术逻辑通道中的各层对应的算术逻辑单元211之间。
其中,算术逻辑单元211通过操作数转发组件213,将运算结果横向传递至同一层的相邻下一个算术逻辑单元211,或者通过进位选择组件212,将进位位Cin传递至相邻下一个算术逻辑单元211。
可以理解的是,如图4所示,以并行度为8为例,二维算术单元2包括3层算术逻辑通道21,每层算术逻辑通道21包含8个横向并行的算术逻辑单元211,同时还包括各算术逻辑单元间的进位选择组件212和操作数转发组件213。
其中,各算术逻辑单元211可以通过操作数转发(operand forwarding)将结果横向连接到同一层的下一个算术逻辑单元的输入,或者也可以通过进位选择将进位位Cin传递给下一个算术逻辑单元。上一层算术逻辑通道21可以通过数据交换网络22纵向连接到下一层算术逻辑通道。
其中可选的,参考图5,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构中后处理单元的结构示意图。如图5所示,后处理单元3进一步包括依次连接的缩放单元31、舍入单元32、饱和单元33和标志位单元34。
所述缩放单元用于将运算结果进行移位缩放操作,所述舍入单元用于将缩放结果进行舍入操作,所述饱和单元用于判断舍入结果是否发生溢出并将舍入结果进行取饱和操作,所述标志位单元用于保存数据结果的标志信息。
其中,缩放单元31用于运算结果进行移位缩放操作,舍入单元32用于将缩放结果进行舍入操作,用以以减小数据截断带来的均方误差,饱和单元33用于判断舍入结果是否发生溢出并将舍入结果进行取饱和操作,标志位单元34用于保存数据结果的标志信息。
可以理解的是,如图5所示,本发明实施例后处理单元3进一步可包括缩放(Scale)单元31、舍入(Round)单元32、饱和(Saturate)单元33和标志位(flag generation)单元34。各单元之间依次连接,经二维算术单元2运算的数据输出,首先传递至缩放单元31,由缩放单元31进行移位缩放运算,运算结果再依次传递至舍入单元32、饱和单元33和标志位单元34,逐级进行后处理操作,最终由标志位单元34输出最终的数据处理结果。
其中,在上述实施例的基础上,可通过设置乘法器11、寄存器12和符号扩展模块13与二维算术单元2中算术逻辑单元211的不同组合连接形式,实现不同的专用数字信号处理运算。
可以理解的是,根据上述实施例的二维数据通路架构,通过设置该二维数据通路架构中并行乘法单元、二维算术单元和后处理单元的不同连接形式,即对包括并行乘法单元中乘法器11、寄存器12和符号扩展模块13,二维算术单元中的算术逻辑单元211、进位选择组件212及操作数转发组件213,以及后处理单元中的缩放单元31、舍入单元32、饱和单元33和标志位单元34,进行根据需要的任意组合连接,即可实现相应的专用数字信号处理运算。例如,仍以并行度为8为例,进行专用数字信号处理运算的实现举例如下,但不对本发明的保护范围进行限制。
如图6所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现向量实数乘法的示意图,其中仅使用并行乘法单元1中的8个乘法器进行向量乘法运算来实现向量实数乘法,二维算术单元2中的前两层算术逻辑通道执行旁路(bypass)操作,第三层算术逻辑通道通过累加器执行累加操作,最后在后处理单元中进行后处理操作。
如图7所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现长型FIR滤波的示意图,长型FIR滤波器,如阶数(tap)大于并行数据通道宽度N的FIR滤波器,在并行乘法单元,每个输入数据跟对应的系数相乘,乘法的结果通过二维算术单元所示链接的并行运算单元组得到该输入数组跟对应系数的乘累加结果并与累加器进行累加。该结果在后处理单元得到长型FIR滤波器的计算结果。
如图8所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现基四FFT运算的示意图,实际为用于FFT的基-4的复数蝶形运算在8路并行数据通道中的实现。本发明实施例的二维数据通路架构可用于加速FFT计算,并行乘法单元1用于输入数据与旋转因子的乘法计算。二维算术单元2首先在第一层算术逻辑通道对乘法器相应结果相加得到复数乘法结果的实部与虚部,然后通过第二层算术逻辑通道和第三层算术逻辑通道完成蝶形加减计算。后处理单元于进行后处理操作。
如图9所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现长型FIR滤波的示意图,Taylor级数展开用于估算函数值。在本发明应用实例的二维并行数据通道上,可以通过与指数生成类似的方法,同时应用二维数据通道的乘累加结构,实现对多路输入数据的并行泰勒展开操作。在一个N路输入的并行数据通道上可以同时计算N个泰勒级数产开。在泰勒展开操作中,一组乘法器被用于计算输入的各阶指数幂,另外一组乘法器用于与对应的系数相乘。
如图10所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现二倍数据宽度向量加法的示意图,向量双字加法用于2倍宽度数据的向量加法。在第一层算术逻辑通道上,输入的2倍宽度的数据被分为高位和低位两部分分别进行加法。在第三层算术逻辑通道上,数据的高位和低位分别与累加器中的数据进行累加。最后在后处理单元进行后处理操作。
如图11所示,为根据本发明实施例一种支持数据级并行和多指令融合的二维数据通路架构实现二倍数据宽度复数乘法的示意图,双字复数乘法用于2倍宽度数据的复数乘法。在并行乘法单元中,输入的2被宽度的数据被分为高位和低位两部分分别进行乘法。在二维算术单元的第一层算术逻辑通道,通过移位相加操作得到2倍宽度数据的实数乘法结果;在第二层算术逻辑通道得到2倍宽度数据的复数乘法结果;在第三层算术逻辑通道与累加器中的数据进行累加。最后在后处理单元进行后处理操作。
以上所描述的支持数据级并行和多指令融合的二维数据通路架构的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
根据上述实施例,本发明实施例另一个实施例中提供的基于数据级并行和多指令融合的二维数据通路架构,包括并行乘法单元、二维算术单元和后处理单元。
其中,并行乘法单元由并行的多个乘法器构成,用于执行多路实数乘法,指数,或旁路操作;二维算术单元包括呈二维排布的纵向多层和横向并行的算术逻辑单元,算术逻辑单元之间通过数据交换网络进行纵向连接或横向进位连接。后处理单元用于执行后处理操作。
其中,该二维数据通路架构中各单元的结构如下:
并行乘法单元由并行的2N个实数乘法器构成,其中,N为2的整数幂;
二维算术单元包括P层算术逻辑通道,其中,P为以2为底N的对数,且每层算术逻辑通道由N个算术逻辑单元构成。
后处理单元由并行的N个后处理单元构成。
其中,该二维数据通路架构中各单元的功能如下:
并行乘法单元的乘法器可以进行实数乘法、指数操作或旁路操作;
二维算术单元中的算术逻辑单元可以进行加法、减法、比较、移位、绝对值或旁路操作;第P层算术逻辑通道的算术逻辑单元还可以进行累加操作;
二维算术单元中,上一层算术逻辑通道的运算结果可以通过数据交换网络纵向传递至下一层算术逻辑通道;同一层算术逻辑道中前一算术逻辑单元的运算结果可横向进位传递至下一个算术逻辑单元;
后处理单元用于执行饱和、舍入和缩放操作。
作为本发明实施例的另一个方面,本实施例根据上述实施例的二维数据通路架构提供一种数字信号处理器,该数字信号处理器包括上述实施例的二维数据通路架构,用于在上述各实施例中对输入的数据进行并行运算。因此,在上述各实施例中的二维数据通路架构中的描述和定义,可以用于本发明实施例中数字信号处理器各个执行模块的理解。
本发明实施例提供的一种数字信号处理器,通过逐层依次设置并行乘法单元、二维算术单元和后处理单元,形成并行的多层二维数据通路,能够有效提高架构的处理性能及效率,使用简单高效的指令支持面向专用数字信号处理应用的快速和重复的计算。并且,本发明可用于设计高效的专用指令支持常用的数字信号处理,如泰勒展开、滤波器、变换及矩阵运算等,提高专用处理器运行数字信号处理算法的运算速度。
另外,本领域内的技术人员应当理解的是,在本发明的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而应当理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种支持数据级并行和多指令融合的二维数据通路架构,其特征在于,包括逐层依次设置的并行乘法单元、二维算术单元和后处理单元;
所述并行乘法单元由多个并行的乘法器构成,用于并行执行多路实数的相乘运算、指数运算或者旁路操作;
所述二维算术单元的输入端连接所述并行乘法单元的输出端,且所述二维算术单元包括多个呈二维排布的纵向多层、各层横向并行的算术逻辑单元,各纵向多层之间以及各层横向并行的算术逻辑单元之间通过数据交换网络进行连接;
所述后处理单元的输入端连接所述二维算术单元的输出端,用于执行后处理操作。
2.根据权利要求1所述的数据通路架构,其特征在于,所述并行乘法单元由并行的2N个实数乘法器构成,其中,N表示所述数据通路架构的并行度,且N为2的整数次幂;
所述二维算术单元包括纵向的P层算术逻辑通道和各相邻两层算术逻辑通道间的数据交换网络,每层所述算术逻辑通道包括N个并行的算术逻辑单元,其中P为以2为底N的对数;
所述后处理单元包括N个并行的后处理单元。
3.根据权利要求2所述的数据通路架构,其特征在于,所述算术逻辑单元用于执行加法运算、减法运算、比较运算、移位运算、绝对值计算或者旁路操作;所述P层算术逻辑通道中的第P层对应的算术逻辑单元还用于进行前一步计算结果的累加运算。
4.根据权利要求2所述的数据通路架构,其特征在于,所述P层算术逻辑通道中的任一层算术逻辑通道的运算结果通过所述数据交换网络传递至相邻下一层算术逻辑通道,同一层算术逻辑通道中的任一算术逻辑单元的运算结果通过所述数据交换网络横向进位传递至相邻下一个算术逻辑单元。
5.根据权利要求2所述的数据通路架构,其特征在于,所述并行乘法单元进一步包括乘法器、寄存器和用于对输入向量做符号扩展的符号扩展模块,所述乘法器、所述寄存器和所述符号扩展模块的不同组合连接方式,可对应实现实数的相乘运算、指数运算或者旁路操作。
6.根据权利要求5所述的数据通路架构,其特征在于,在所述并行乘法单元中,通过将所述寄存器的输出连接至所述乘法器的输入,实现操作数转发,并进一步用于指数运算;通过将所述乘法器的输入连接至所述寄存器的输入,实现旁路操作。
7.根据权利要求3所述的数据通路架构,其特征在于,所述二维算术单元还包括进位选择组件或操作数转发组件,所述进位选择组件和操作数转发组件设于所述P层算术逻辑通道中的各层对应的算术逻辑单元之间;
所述算术逻辑单元通过所述操作数转发组件,将运算结果横向传递至同一层的相邻下一个算术逻辑单元,或者通过所述进位选择组件,将进位位Cin传递至所述相邻下一个算术逻辑单元。
8.根据权利要求1所述的数据通路架构,其特征在于,所述后处理单元进一步包括依次连接的缩放单元、舍入单元、饱和单元和标志位单元;
所述缩放单元用于将运算结果进行移位缩放操作,所述舍入单元用于将缩放结果进行舍入操作,所述饱和单元用于判断舍入结果是否发生溢出并将舍入结果进行取饱和操作,所述标志位单元用于保存数据结果的标志信息。
9.根据权利要求3所述的数据通路架构,其特征在于,所述P层算术逻辑通道中的第P层对应的各所述算术逻辑单元还包括累加寄存器,所述累加寄存器用于进行前一步计算结果的累加运算。
10.根据权利要求5所述的数据通路架构,其特征在于,可通过设置所述乘法器、所述寄存器和所述符号扩展模块与所述二维算术单元中算术逻辑单元的不同组合连接形式,实现不同的专用数字信号处理运算。
CN201811314543.5A 2018-11-06 2018-11-06 一种支持数据级并行和多指令融合的二维数据通路架构 Active CN109558170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811314543.5A CN109558170B (zh) 2018-11-06 2018-11-06 一种支持数据级并行和多指令融合的二维数据通路架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811314543.5A CN109558170B (zh) 2018-11-06 2018-11-06 一种支持数据级并行和多指令融合的二维数据通路架构

Publications (2)

Publication Number Publication Date
CN109558170A true CN109558170A (zh) 2019-04-02
CN109558170B CN109558170B (zh) 2021-05-04

Family

ID=65865994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811314543.5A Active CN109558170B (zh) 2018-11-06 2018-11-06 一种支持数据级并行和多指令融合的二维数据通路架构

Country Status (1)

Country Link
CN (1) CN109558170B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237667A (en) * 1987-06-05 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Digital signal processor system having host processor for writing instructions into internal processor memory
WO2001009717A1 (en) * 1999-08-02 2001-02-08 Morton Steven G Video digital signal processor chip
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
CN102508643A (zh) * 2011-11-16 2012-06-20 刘大可 一种多核并行数字信号处理器及并行指令集的运行方法
CN102707931A (zh) * 2012-05-09 2012-10-03 刘大可 一种基于并行数据通道的数字信号处理器
US8725990B1 (en) * 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
CN105468335A (zh) * 2015-11-24 2016-04-06 中国科学院计算技术研究所 流水级运算装置、数据处理方法及片上网络芯片
CN103019656B (zh) * 2012-12-04 2016-04-27 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
US9712185B2 (en) * 2012-05-19 2017-07-18 Olsen Ip Reserve, Llc System and method for improved fractional binary to fractional residue converter and multipler

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237667A (en) * 1987-06-05 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Digital signal processor system having host processor for writing instructions into internal processor memory
WO2001009717A1 (en) * 1999-08-02 2001-02-08 Morton Steven G Video digital signal processor chip
US8725990B1 (en) * 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
CN102508643A (zh) * 2011-11-16 2012-06-20 刘大可 一种多核并行数字信号处理器及并行指令集的运行方法
CN102707931A (zh) * 2012-05-09 2012-10-03 刘大可 一种基于并行数据通道的数字信号处理器
US9712185B2 (en) * 2012-05-19 2017-07-18 Olsen Ip Reserve, Llc System and method for improved fractional binary to fractional residue converter and multipler
CN103019656B (zh) * 2012-12-04 2016-04-27 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
CN105468335A (zh) * 2015-11-24 2016-04-06 中国科学院计算技术研究所 流水级运算装置、数据处理方法及片上网络芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDREAS EHLIAR: "Area efficient floating-point adder and multiplier with IEEE-754 compatible semantics", 《2014 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (FPT)》 *
PER KARLSTROM 等: "High Performance, Low Latency FPGA based Floating Point Adder and Multiplier Units in a Virtex 4", 《2006 NORCHIP》 *

Also Published As

Publication number Publication date
CN109558170B (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
Liu et al. Automatic code generation of convolutional neural networks in FPGA implementation
CN100530168C (zh) 用于执行计算操作的系统、方法及设备
CN103064650B (zh) 控制移位分组数据的位校正的装置
CN107665126A (zh) 用于外积累加操作的处理器和方法
CN100405361C (zh) 用于执行计算操作的方法、系统以及设备
CN107341541A (zh) 一种用于执行全连接层神经网络训练的装置和方法
CN110705703B (zh) 基于脉动阵列的稀疏神经网络处理器
CN102707931A (zh) 一种基于并行数据通道的数字信号处理器
CN102053817A (zh) 用于执行乘法累加运算的设备和方法
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
JP7495194B2 (ja) 積和演算用のプロセッサ・ユニット
CN107667345A (zh) 打包数据对齐加计算指令、处理器、方法和系统
CN110007896A (zh) 具有时钟选通的用于执行矩阵乘法的硬件单元
CN113052304A (zh) 用于具有部分读取/写入的脉动阵列的系统和方法
Prasad et al. Design of low power and high speed modified carry select adder for 16 bit Vedic Multiplier
CN106951394A (zh) 一种可重构定浮点通用fft处理器
EP3841461B1 (en) Digital circuit with compressed carry
CN109558170A (zh) 一种支持数据级并行和多指令融合的二维数据通路架构
EP3480710A1 (en) Computer architectures and instructions for multiplication
Patle et al. Implementation of Baugh-Wooley Multiplier Based on Soft-Core Processor
CN103677735B (zh) 一种数据处理装置及数字信号处理器
Jana et al. OTIS-MOT: an efficient interconnection network for parallel processing
Samanth et al. A novel approach to develop low power MACs for 2D image filtering
WO2001088691A2 (en) Method and apparatus of dsp resource allocation and use
Pechanek et al. An introduction to an array memory processor for application specific acceleration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210126

Address after: Room 908, block C, Kechuang headquarters building, No. 320, pubin Road, Jiangpu street, Nanjing area, Jiangsu Free Trade Zone, Nanjing City, Jiangsu Province, 211800

Applicant after: Jixin communication technology (Nanjing) Co.,Ltd.

Address before: 570228 Hainan University, 58 Renmin Avenue, Meilan District, Haikou City, Hainan Province

Applicant before: HAINAN University

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230703

Address after: Room 908, block C, Kechuang headquarters building, No. 320, pubin Road, Jiangpu street, Nanjing area, Nanjing Free Trade Zone, 211800 Jiangsu Province

Patentee after: Jixin communication technology (Nanjing) Co.,Ltd.

Patentee after: Polar core communication technology (Xi'an) Co.,Ltd.

Address before: Room 908, block C, Kechuang headquarters building, No. 320, pubin Road, Jiangpu street, Nanjing area, Jiangsu Free Trade Zone, Nanjing City, Jiangsu Province, 211800

Patentee before: Jixin communication technology (Nanjing) Co.,Ltd.