CN108475188A - 数据处理方法和设备 - Google Patents

数据处理方法和设备 Download PDF

Info

Publication number
CN108475188A
CN108475188A CN201780004422.8A CN201780004422A CN108475188A CN 108475188 A CN108475188 A CN 108475188A CN 201780004422 A CN201780004422 A CN 201780004422A CN 108475188 A CN108475188 A CN 108475188A
Authority
CN
China
Prior art keywords
multiplier
instruction
data processing
unit
control information
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
CN201780004422.8A
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.)
SZ DJI Technology Co Ltd
Shenzhen Dajiang Innovations Technology Co Ltd
Original Assignee
Shenzhen Dajiang Innovations Technology Co Ltd
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 Shenzhen Dajiang Innovations Technology Co Ltd filed Critical Shenzhen Dajiang Innovations Technology Co Ltd
Publication of CN108475188A publication Critical patent/CN108475188A/zh
Pending legal-status Critical Current

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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

一种数据处理电路,包括:计算单元,包括加法器和多个N位乘法器;输入单元,被配置为向所述乘法器提供输入;以及输出单元,被配置为输出所述计算单元的计算结果;其中,所述加法器包括N位加法器和2N位加法器,N=2n,n为大于0的自然数。还提供了一种操作数据处理电路的方法以及相应的设备。

Description

数据处理方法和设备
技术领域
本公开涉及数据处理技术领域,更具体地,本公开涉及一种数据处理方法和设备。
背景技术
乘法器是高性能数字信号处理器(Digital signal processing,DSP)的关键部件,是进行实时高速信号处理的核心。其中,乘累加(Multiply and Accumulate,MAC)操作是很多DSP应用的基本操作,如快速傅里叶变换(Fast Fourier transform,FFT)、卷积、滤波等。
一方面,对于DSP应用来说,MAC单元是影响关键路径延时的重要因素,因此也是影响DSP应用性能的关键。由此可见,实现低延时,高吞吐率的MAC单元,对高性能DSP至关重要。另一方面,不同的DSP应用需要用到不同位宽的乘法操作,因此,如何利用低比特位宽乘法器来实现高比特位宽乘法器,从而实现资源的复用,也是DSP架构设计的重要环节。
发明内容
本公开提供了一种具有资源复用能力的MAC多模式工作处理单元,能够根据不同指令选择不同模式的乘累加操作。具体地,该处理单元采用乘法器阵列并行地产生部分乘积,然后通过移位和加法操作来实现低比特位宽到高比特位宽的乘法拼接。
根据本公开的一个方面,提供了一种数据处理电路,包括计算单元、输入单元和输出单元。计算单元包括加法器和多个N位乘法器。输入单元被配置为向乘法器提供输入。输出单元被配置为输出计算单元的计算结果。其中,加法器包括N位加法器和2N位加法器,N=2n,n为大于0的自然数。
在一个实施例中,数据处理电路还包括配置单元,该配置单元对多个N位乘法器中的至少一个进行配置,使得所配置的N位乘法器能够根据控制信息来执行操作。
在一个实施例中,输入单元被配置为根据控制信息来产生乘法器的输入。
在一个实施例中,输出单元被配置为根据控制信息来输出计算单元的计算结果。
在一个实施例中,控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
在一个实施例中,数据处理电路中的计算单元包括2个N位乘法器以及1个2N位加法器。
在一个实施例中,数据处理电路中的计算单元包括4个N位乘法器以及1个N位加法器和3个2N位加法器。
根据本公开的另一个方面,提供了一种数据处理系统,包括根据上文所述的数据处理电路以及指令解码单元,该指令解码单元被配置为获得指令并对指令进行解码以得到用于数据处理电路的控制信息。
在一个实施例中,指令解码单元还被配置为:如果新的指令与当前指令发生冲突,则不对当前指令进行解码。
在一个实施例中,如果发生新的指令与当前指令在解码后对任意一个乘法器在设定的阈值时间内进行多次数据输入,或者所需要的乘法器超过数据处理系统中的空闲的乘法器,则确定新的指令与当前指令发生冲突。
在一个实施例中,控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
根据本公开的另一个方面,提供了一种用于处理数据的方法,包括:向多个N位乘法器提供输入;利用加法器和所述多个N位乘法器执行计算;以及输出最终的计算结果。其中,所述加法器包括N位加法器和2N位加法器,N=2n,n为大于0的自然数。
在一个实施例中,该方法还包括:对多个N位乘法器中的至少一个进行配置,使得所配置的N位乘法器能够根据控制信息来执行操作。
在一个实施例中,控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
在一个实施例中,该方法还包括:获得指令并对指令进行解码,以得到控制信息。
在一个实施例中,如果新的指令与当前指令发生冲突,则不对当前指令进行解码。
在一个实施例中,如果发生新的指令与当前指令在解码后对任意一个乘法器在设定的阈值时间内进行多次数据输入,或者所需要的乘法器超过数据处理系统中的空闲的乘法器,则确定新的指令与当前指令发生冲突。
根据本公开的另一个方面,提供了一种处理器,该处理器包括根据上文所述的数据处理系统。
本公开的技术方案能够通过对低比特位宽的乘法进行移位和拼接来实现高比特位宽的乘法,最大程度地降低了加法器的位宽,并且降低了硬件资源的使用,简化电路的结构。
附图说明
通过下文结合附图的详细描述,本公开的上述和其它特征将会变得更加明显,其中:
图1是示出了根据本公开一个实施例的数据处理电路的框图;
图2是示出了图1中的数据处理电路的细节的框图;
图3是示出了图1中的数据处理电路的细节的框图;
图4是示出了根据本公开一个实施例的数据处理系统的框图;
图5是示出了图4中的数据处理系统的细节的框图;
图6是示出了图4中的数据处理系统的细节的框图;以及
图7是示出了根据本公开一个实施例的数据处理方法的流程图;
在以下描述中,通过相同或相似的附图标记来表示相同或相似的元件或步骤。需要说明的是,附图中的元件并非一定按照真实比例而绘制,而是旨在说明本公开的技术方案的原理。
具体实施方式
下面结合附图和具体实施方式对本公开进行详细阐述。应当注意,本公开不应局限于下文所述的具体实施方式。另外,为了简便起见,省略了对与本公开没有直接关联的公知技术的详细描述,以防止对本公开的理解造成混淆。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
本公开提供了一种具有资源复用能力的MAC处理电路,通过采用多个较低位的乘法器来拼接成较高位的乘法器,并且采用较低位的加法器,能够节省硬件资源的数量。此外,本公开所提出的MAC处理电路能够根据不同指令选择不同模式的MAC操作。由此,通过资源复用,降低了硬件资源用量,简化了电路的结构。
图1是示出了根据本公开一个实施例的数据处理电路的框图。如图1所示,数据处理电路100包括输入单元110、计算单元120和输出单元130。备选地,数据处理电路100还可以包括配置单元140(如图1中虚线所示)。下面,详细描述数据处理电路100的各个组成部分的操作。
计算单元120可以包括加法器和多个N位乘法器,其中N=2n,n为大于0的自然数。如本领域技术人员所熟知,N位乘法器可以用于执行N位*N位的乘法运算。需要说明,计算单元120可以包括N的取值不同的多个乘法器。例如,计算单元120可以包括一个或多个2n-1位的乘法器,同时包括一个或多个2n位的乘法器,或者一个或多个2n+1位的乘法器,依次类推。
计算单元120还可以包括N位加法器和2N位加法器,其中,N=2n,n为大于0的自然数。可以理解,2N位加法器可以是2N位+N位的加法器,也可以是2N位+2N位的加法器.
在本公开的技术方案中,当采用多个N位乘法器来执行N位*2N位的乘法运算时,或者执行2N位*2N位的乘法运算时,最多只会使用2N位的加法器,而无需使用大于2N位的加法器。另外,可以根据本公开的教导采用多个N位乘法器来实现4N位*2N位或4N位*4N位的乘法。例如,可以先采用4个N位乘法器根据本公开的教导来实现2N*2N的乘法运算,然后使用如此形成的2个2N*2N的乘法器根据本公开的教导来实现4N*2N的乘法运算。同理,可以先采用4个N位乘法器根据本公开的教导来实现2N*2N的乘法运算,然后使用如此形成的4个2N*2N的乘法器根据本公开的教导来实现4N*4N的乘法运算。同样的原理可以应用于更高阶的乘法实现。
输入单元110被配置为向计算单元120中的多个N位乘法器提供输入。进一步地,输入单元110可以接收输入数据,并从输入数据中提取多个操作数,作为多个N位乘法器的输入。该操作的细节将会在下文结合附图和示例来详细描述。
输出单元130被配置为输出计算单元120的计算结果。进一步地,输出单元130可以从计算单元120的计算结果中选择合适的数据来输出。同样,该操作的细节将会在下文结合附图和示例来详细描述。
本公开的技术方案能够通过对低比特位宽的乘法进行移位和拼接来实现高比特位宽的乘法,最大程度地降低了加法器的位宽,并且降低了硬件资源的使用,简化电路的结构。
如图1所示,数据处理电路100还可以选择性地包括配置单元140。该配置单元140被配置为对输入单元110和输出单元130进行配置,使得数据处理电路100能够根据控制信息来执行操作。
在本文中,控制信息例如可以指示以下至少一个操作模式:N位的乘法运算(N位*N位的乘法运算)或者2N位的乘法运算(包括N位*2N位的乘法运算和2N位*2N位的乘法运算)。
例如,假设计算单元120包括4个N位乘法器,则配置单元140可以通过配置输入单元110和输出单元130,利用计算单元120中的4个N位乘法器来执行1个2N位*2N位的乘法运算,或者执行2个2N位*N位的乘法运算,或者执行1个2N位*N位的乘法运算并且同时执行1或2个N位*N位的乘法运算。同样的原理适用于计算单元120包括更多数量的乘法器的情况。
此外,配置单元140可以对输入单元110进行配置,使得输入单元110被配置为根据控制信息来产生多个N位乘法器中的至少一部分乘法器的输入。例如,假设计算单元120包括4个N位乘法器。此时,如果希望执行1个2N位*2N位的乘法运算或2个2N位*N位的乘法运算,则配置单元140对输入单元110进行配置,以产生针对所有的4个N位乘法器的输入。备选地,如果希望执行1个2N位*N位的乘法运算或者执行2个N位*N位的乘法运算,则配置单元140对输入单元110进行配置,以产生针对2个N位乘法器的输入。这里,输入单元110在进行多个N为乘法器的输入时,如果输入的数据大于全部乘法器可以接收的大小时或者同时对一个乘法器同时具有多套不同的输入时,配置单元140可以对输入进行相应的配置,以确保数据处理电路可以正常工作。具体的配置方法,可以是顺序的,例如,选择先进先出FIFO的方式,先进入输入单元110的数据先进入计算单元进行计算,也可以是按照资源占用的大小进行排序的,例如资源占用量大的先进行计算,资源占用量小的后进行计算,还可以是按照不同的任务有不同的先后顺序编号,编号代表的越靠前的则先进行计算等等,这里具体的配置方法不做限定。
相应地,配置单元140可以对输出单元130进行配置,使得输出单元130被配置为根据控制信息来输出计算单元120的计算结果。例如,仍假设计算单元120包括4个N位乘法器。此时,如果希望执行1个2N位*2N位的乘法运算或2个2N位*N位的乘法运算,则配置单元140对输出单元130进行配置,以根据所有的4个N位乘法器的输出来形成最终的计算结果。备选地,如果希望执行1个2N位*N位的乘法运算或者执行2个N位*N位的乘法运算,则配置单元140对输出单元130进行配置,以根据2个N位乘法器的输出来形成最终的计算结果。这里可以根据选取的输入选择对应的输出,也可以直接按照配置信息选择相应的输出等等。
通过采用了配置单元,可以实现数据处理电路的充分利用,在可以实现资源复用的同时实现了多个计算的并行,节省了资源的同时提高了计算效率。
图2是示出了图1中的数据处理电路的细节的框图。如图2所示,输入单元110可以对输入的数据进行提取,从而获得用于计算单元120的操作数。一方面,可以提取每个操作数的符号位,并经过符号处理模块进行符号处理,得出最后需要合并的符号位。另一方面,可以计算所提取的每个操作数的绝对值。然后,组合乘法器(包括多个乘法器)将这些绝对值提供每个无符号乘法器并进行处理。接下来,组合乘法器的输出和符号处理模块的输出(符号位)进行合并(即正号保持不变,负号求补码)。最后,输出单元130将输出扩展到指定位宽输出。
图3是示出了图1中的数据处理电路的细节的框图。可以将图3所示的电路结构视为图2中的电路的一个具体实施方式。下面,
在图3的示例中,提取和绝对值模块(Extract&ABS)是图1中所示的输入单元110的一部分。图3所示的示例输入数据有128位(图3中的输入:127...0)的宽度。
提取和绝对值模块根据控制信息(即图3中的SEL)从输入数据中提取操作数。假设图3所示的数据处理电路包括4个16位乘法器,那么SEL的含义可以是:00表示4个16x16乘法,01表示2个32x16乘法,10表示1个32x32乘法。
具体地,提取和绝对值模块可以根据控制信息获得提取的无符号操作数以及相应的符号位。其中,所提取的无符号操作数被提供给选择单元(该选择单元也是图1所示的输入单元110的一部分)。具体说来,提取和绝对值模块可以计算每个操作数的绝对值,获得将上述操作数拆成的每一个16位的操作数以便提供给相应的16x16无符号乘法器。选择单元在图3中由“选择器(MUX)”来表示。例如,图3中的8个选择器分别根据SEL信号来向4个16位乘法器(16*16乘法器)提供输入。接下来,当SEL信号为10时,表示要计算1个32*32的乘法,4个16位乘法器执行乘法操作,将结果送至加法器。在图3中,采用了三个32位+16位的加法器和一个16位+16位的加法器,对4个16位乘法器的输出进行加法运算,以获得期望的结果,其中在计算单元中使用合适的最高有效位(Most significant bit,MSB)和最低有效位(Least significant bit,LSB)来完成整个计算单元的设计。
当SEL为01时,表示要计算1或2个16*32的乘法。如果仅计算1个16*32的乘法,则采用2个16位乘法器执行乘法操作。如果计算2个16*32的乘法,则仍采用4个16位乘法器执行乘法操作。
当SEL为00时,表示要计算1-4个16*16的乘法。可以采用相应个数的16位乘法器来执行相应个数的乘法操作。
此外,SEL信号可以表示只使用多个N位乘法器中的一部分,例如只有3个16*16的乘法器进行运算。
上述方案也在乘法器资源合理分配下可以进行任意组合。例如,SEL信号可以指示同时计算1个16位*32位的乘法以及2个16位*16位的乘法。
图3中所示的实施例仅示出了乘法器为4个的情形。本领域技术人员可以理解,根据实际需要,乘法器和加法器可以按照上述规则进行增加以进行更高位的计算,例如,可以采用8个16位*16位的乘法器或16个16位*16位的乘法器来实现本公开的MAC处理电路。相应地,可以采用同样的原理来实现SEL信号以获得资源复用。
另一方面,如图3所示,对于提取的操作数的符号位,可以进行组合运算(图3中的“符号合并(Combsign)”模块)。
最后,将加法器的输出与符号运算的结果提供给图3中底部的选择器,该选择器可以作为图1中所示的输出单元130。具体地,该选择器可以根据SEL信号(即控制信息),将加法器和符号运算的结果扩展到指定位宽而输出。
采用图3所示的电路结构,可以实现不同位宽的乘法器的资源复用,并且在设计结构的时候最简化结构设计。即,采用低位宽的加法、移位操作和比特拼接来实现高位宽加法,从而降低了资源使用量。例如,实现一个32x16乘法器仅需要2个16x16乘法器和1个32+16加法器。实现一个32x32乘法器仅需要4个16x16乘法器、3个32+16加法器和1个16+16加法器。当然,所使用的乘法器也可以是8位的乘法器来进行8*16、16*16、16*32、32*32等计算。
进一步地,根据本公开的技术方案可采用多个N*N乘法器实现(2N)*N或(2N)*(2N)乘法器。例如,实现1个(2N)*N乘法器需要2个N*N乘法器和1个(2N)+N加法器,而实现一个(2N)*(2N)乘法器需要4个N*N乘法器、3个(2N)+N加法器和1个N+N加法器。
图4是示出了根据本公开一个实施例的数据处理系统的框图。如图4所示,数据处理系统400包括指令解码单元410和数据处理电路420。下面,详细描述数据处理系统400的各个组成部分的操作。
指令解码单元410被配置为获得指令,并对所述指令进行解码以得到用于数据处理电路420的控制信息。如上文所述,控制信息可以指示以下至少一个操作模式:N位的乘法运算(N位*N位的乘法运算)或者2N位的乘法运算(包括N位*2N位的乘法运算和2N位*2N位的乘法运算)。
备选地,如果新的指令与当前指令发生冲突,则指令解码单元410不对当前指令进行解码。例如,当出现新的指令与当前指令在解码后对任意一个乘法器在设定的阈值时间内进行多次数据输入时,或者所需要的乘法器超过数据处理系统中的空闲的乘法器时,指令解码单元410不对当前指令进行解码,或者延迟对当前指令进行解码的时间。
数据处理电路420与上文描述的数据处理电路类似(例如图1所示的数据处理电路100)。因此,这里省略了对数据处理电路420的详细描述。
在本实施例中,通过采用指令解码单元410对指令进行解码,能够高效地为数据处理电路420生成控制信息。此外,指令解码单元410具有检错功能,在发生指令冲突时能够避免执行错误的指令,从而保证了数据处理电路420的正常工作。
图5是示出了图4中的数据处理系统的细节的框图。如图5所示,数据处理系统可以划分为控制通路和数据通路。控制通路以指令驱动和控制寄存器的联合配置生成对数据通路的控制信息(例如由图5所示的指令译码器(Instrc_decoder)来完成)。数据通路完成相应的运算功能。
具体地,控制通路可以包括控制寄存器端口控制逻辑和指令通路,这种组合形式可以有效减少指令条数。控制寄存器端口控制逻辑通过解析控制寄存器,生成针对数据通路的控制信息。如图5所示,数据通路可以包括加载单元、计算单元和存储单元。加载单元完成从数据端口取数的操作。加载单元所加载的数据和控制信号会输入到计算单元。计算单元(图5中由预处理(P_Proc)模块和MAC0...MAC31来表示)执行数据计算操作。存储单元将计算单元的计算结果进行存储以提供输出。
图6是示出了图4中的数据处理系统的细节的框图。如图6所示,指令分类更新(Instr_assort_update)模块是指令通路的总体控制模块,它接收指令加载(Instr_load)信号,根据当前的状态来决定是否接收新的指令。
如果当前执行的指令和新的指令有冲突,则指令分类更新模块拒绝当前的指令,并且产生指令冲突信号(instr_conflict)。
如果不发生指令冲突,则指令分类更新模块根据指令状态以及指令总线(Instr_bus)接口获取的指令信息来产生对指令译码器0和指令译码器1的控制信号。
指令译码器0和指令译码器1负责对指令进行解码,从而生成控制信息。
控制信号分类(Control signal assort)模块对控制信息进行合并,最终控制数据通路(图6中所示的数据通路(Data_path)_M0...数据通路_M2)。
图7是示出了根据本公开一个实施例的数据处理方法70的流程图。
在步骤S710,向多个N位乘法器提供输入。其中,N=2n,n为大于0的自然数。
在步骤S720,利用加法器和多个N位乘法器执行计算,该加法器包括N位加法器和2N位加法器。
在步骤S730,输出最终的计算结果。
备选地,对多个N位乘法器中的至少一个进行配置,使得所配置的N位乘法器能够根据控制信息来执行操作。该控制信息可以指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
备选地,可以获得指令并对所述指令进行解码,以得到控制信息。如果新的指令与当前指令发生冲突,则不对当前指令进行解码。例如,当发生对同一个乘法器在同一时间进行数据输入的情况时,或者所需要的乘法器超过空闲的乘法器时,不对当前指令进行解码。
另外,本公开的其他实施例提供了一种处理器,该处理器可以包括根据上文所述的数据处理系统(例如,图4所示的数据处理系统400)。例如,该处理器可以被设计为一种数字信号处理器DSP,该DSP可以应用于多种场景,包括但不限于机器视觉处理、图像信号处理等。
通过采用本公开的上述实施例,能够对低比特位宽的乘法进行移位和拼接来实现高比特位宽的乘法。从而,简化了电路的结构并且降低了硬件资源的使用量。
上文已经结合优选实施例对本公开的方法和涉及的设备进行了描述。本领域技术人员可以理解,上面示出的方法仅是示例性的。本公开的方法并不局限于上面示出的步骤和顺序。
应该理解,本公开的上述实施例可以通过软件、硬件或者软件和硬件两者的结合来实现。此外,这里所公开的本公开的实施例可以在计算机程序产品上实现。更具体地,该计算机程序产品是如下的一种产品:具有计算机可读介质,计算机可读介质上编码有计算机程序逻辑,当在计算设备上执行时,该计算机程序逻辑提供相关的操作以实现本公开的上述技术方案。当在计算系统的至少一个处理器上执行时,计算机程序逻辑使得处理器执行本公开实施例所述的操作(方法)。
本公开的设置典型地提供为设置或编码在例如光介质(例如CD-ROM)、软盘或硬盘等的计算机可读介质上的软件、代码和/或其他数据结构、或者诸如一个或多个ROM或RAM或PROM芯片上的固件或微代码的其他介质、或一个或多个模块中的可下载的软件图像、共享数据库等。软件或固件或这种配置可安装在计算设备上,以使得计算设备中的一个或多个处理器执行本公开实施例所描述的技术方案。
此外,上述每个实施例中所使用的设备的每个功能模块或各个特征可以由电路实现或执行,所述电路通常为一个或多个集成电路。设计用于执行本说明书中所描述的各个功能的电路可以包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)或通用集成电路、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、或分立的硬件组件、或以上器件的任意组合。通用处理器可以是微处理器,或者所述处理器可以是现有的处理器、控制器、微控制器或状态机。上述通用处理器或每个电路可以由数字电路配置,或者可以由逻辑电路配置。此外,当由于半导体技术的进步,出现了能够替代目前的集成电路的先进技术时,本公开也可以使用利用该先进技术得到的集成电路。
运行在根据本公开的设备上的程序可以是通过控制中央处理单元(CPU)来使计算机实现本公开的实施例功能的程序。该程序或由该程序处理的信息可以临时存储在易失性存储器(如随机存取存储器RAM)、硬盘驱动器(HDD)、非易失性存储器(如闪速存储器)、或其他存储器系统中。用于实现本公开各实施例功能的程序可以记录在计算机可读记录介质上。可以通过使计算机系统读取记录在所述记录介质上的程序并执行这些程序来实现相应的功能。此处的所谓“计算机系统”可以是嵌入在该设备中的计算机系统,可以包括操作系统或硬件(如外围设备)。“计算机可读记录介质”可以是半导体记录介质、光学记录介质、磁性记录介质、短时动态存储程序的记录介质、或计算机可读的任何其他记录介质。
如上,已经参考附图对本公开的实施例进行了详细描述。但是,具体的结构并不局限于上述实施例,本公开也包括不偏离本公开主旨的任何设计改动。另外,可以在权利要求的范围内对本公开进行多种改动,通过适当地组合不同实施例所公开的技术手段所得到的实施例也包含在本公开的技术范围内。此外,上述实施例中所描述的具有相同效果的组件可以相互替代。

Claims (18)

1.一种数据处理电路,包括:
计算单元,包括加法器和多个N位乘法器;
输入单元,被配置为向所述乘法器提供输入;以及
输出单元,被配置为输出所述计算单元的计算结果;
其中,所述加法器包括N位加法器和2N位加法器,N=2n,n为大于0的自然数。
2.根据权利要求1所述的数据处理电路,还包括:
配置单元,被配置为对所述多个N位乘法器中的至少一个进行配置,使得所配置的N位乘法器能够根据控制信息来执行操作。
3.根据权利要求2所述的数据处理电路,其中,所述输入单元被配置为:根据所述控制信息来产生乘法器的输入。
4.根据权利要求2所述的数据处理电路,其中,所述输出单元被配置为:根据所述控制信息来输出所述计算单元的计算结果。
5.根据权利要求2-4中任意一项所述的数据处理电路,其中,所述控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
6.根据权利要求1所述的数据处理电路,其中,所述多个N位乘法器包括2个N位乘法器,所述加法器包括1个2N位加法器。
7.根据权利要求1所述的数据处理电路,其中,所述多个N位乘法器包括4个N位乘法器,所述加法器包括1个N位加法器以及3个2N位加法器。
8.一种数据处理系统,包括:
根据权利要求1-7中任意一项所述的数据处理电路;以及
指令解码单元,被配置为获得指令并对所述指令进行解码以得到用于所述数据处理电路的控制信息。
9.根据权利要求8所述的数据处理系统,其中,所述指令解码单元还被配置为:如果新的指令与当前指令发生冲突,则不对当前指令进行解码。
10.根据权利要求9所述的数据处理系统,其中,所述新的指令与当前指令发生冲突包括:所述新的指令与当前指令在解码后对任意一个乘法器在设定的阈值时间内进行多次数据输入,或者所需要的乘法器超过数据处理系统中的空闲的乘法器。
11.根据权利要求8所述的数据处理系统,其中,所述控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
12.一种用于处理数据的方法,包括:
向多个N位乘法器提供输入;
利用加法器和所述多个N位乘法器执行计算;以及
输出最终的计算结果;
其中,所述加法器包括N位加法器和2N位加法器,N=2n,n为大于0的自然数。
13.根据权利要求12所述的方法,还包括:
对所述多个N位乘法器中的至少一个进行配置,使得所配置的N位乘法器能够根据控制信息来执行操作。
14.根据权利要求13所述的方法,其中,所述控制信息指示以下至少一个操作模式:N位的乘法运算或者2N位的乘法运算。
15.根据权利要求13所述的方法,还包括:
获得指令并对所述指令进行解码,以得到所述控制信息。
16.根据权利要求15所述的方法,其中,如果新的指令与当前指令发生冲突,则不对当前指令进行解码。
17.根据权利要求16所述的方法,其中,所述新的指令与当前指令发生冲突包括:所述新的指令与当前指令在解码后对任意一个乘法器在设定的阈值时间内进行多次数据输入,或者所需要的乘法器超过空闲的乘法器。
18.一种处理器,包括根据权利要求8-11中任意一项所述的数据处理系统。
CN201780004422.8A 2017-07-31 2017-07-31 数据处理方法和设备 Pending CN108475188A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/095334 WO2019023910A1 (zh) 2017-07-31 2017-07-31 数据处理方法和设备

Publications (1)

Publication Number Publication Date
CN108475188A true CN108475188A (zh) 2018-08-31

Family

ID=63266457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780004422.8A Pending CN108475188A (zh) 2017-07-31 2017-07-31 数据处理方法和设备

Country Status (2)

Country Link
CN (1) CN108475188A (zh)
WO (1) WO2019023910A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110991627A (zh) * 2018-10-03 2020-04-10 佳能株式会社 信息处理装置、信息处理方法
CN111107274A (zh) * 2018-10-26 2020-05-05 北京图森智途科技有限公司 一种图像亮度统计方法及成像设备
CN111213177A (zh) * 2019-04-18 2020-05-29 深圳市大疆创新科技有限公司 数据处理方法和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916177A (zh) * 2010-07-26 2010-12-15 清华大学 一种可配置多精度定点乘加装置
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN103221916A (zh) * 2010-09-24 2013-07-24 英特尔公司 执行乘乘累加指令
CN103294446A (zh) * 2013-05-14 2013-09-11 中国科学院自动化研究所 一种定点乘累加器
CN104102470A (zh) * 2014-07-23 2014-10-15 中国电子科技集团公司第五十八研究所 可配置可扩展的流水线乘累加器
CN105528191A (zh) * 2015-12-01 2016-04-27 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4263693B2 (ja) * 2002-09-24 2009-05-13 インターデイジタル テクノロジー コーポレーション 計算量的に効率的な数学エンジン
CN104252331B (zh) * 2013-06-29 2018-03-06 华为技术有限公司 乘累加器
CN104407836B (zh) * 2014-10-14 2017-05-31 中国航天科技集团公司第九研究院第七七一研究所 利用定点乘法器进行级联乘累加运算的装置和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916177A (zh) * 2010-07-26 2010-12-15 清华大学 一种可配置多精度定点乘加装置
CN103221916A (zh) * 2010-09-24 2013-07-24 英特尔公司 执行乘乘累加指令
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN103294446A (zh) * 2013-05-14 2013-09-11 中国科学院自动化研究所 一种定点乘累加器
CN104102470A (zh) * 2014-07-23 2014-10-15 中国电子科技集团公司第五十八研究所 可配置可扩展的流水线乘累加器
CN105528191A (zh) * 2015-12-01 2016-04-27 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110991627A (zh) * 2018-10-03 2020-04-10 佳能株式会社 信息处理装置、信息处理方法
CN111107274A (zh) * 2018-10-26 2020-05-05 北京图森智途科技有限公司 一种图像亮度统计方法及成像设备
CN111107274B (zh) * 2018-10-26 2021-01-08 北京图森智途科技有限公司 一种图像亮度统计方法及成像设备
US11875486B2 (en) 2018-10-26 2024-01-16 Beijing Tusen Zhitu Technology Co., Ltd. Image brightness statistical method and imaging device
CN111213177A (zh) * 2019-04-18 2020-05-29 深圳市大疆创新科技有限公司 数据处理方法和设备

Also Published As

Publication number Publication date
WO2019023910A1 (zh) 2019-02-07

Similar Documents

Publication Publication Date Title
KR102443546B1 (ko) 행렬 곱셈기
CN110597559B (zh) 计算装置以及计算方法
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
US20210096823A1 (en) Transpose operations using processing element array
US9342478B2 (en) Processor with reconfigurable architecture including a token network simulating processing of processing elements
WO2002012978A2 (en) Configurable function processing cell linear array in computation engine coupled to host units
JP4349265B2 (ja) プロセッサ
CN108475188A (zh) 数据处理方法和设备
EP3938866A1 (en) Selectively controlling memory power for scheduled computations
US20140075153A1 (en) Reducing issue-to-issue latency by reversing processing order in half-pumped simd execution units
US9727526B2 (en) Apparatus and method of vector unit sharing
WO2007074583A1 (ja) 再構成可能な演算器を持つプロセッサ
US7315935B1 (en) Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
US11500962B1 (en) Emulating fine-grained sparsity in a systolic array
CN111047037B (zh) 数据处理方法、装置、设备及存储介质
CN116888591A (zh) 一种矩阵乘法器、矩阵计算方法及相关设备
US20130151485A1 (en) Apparatus and method for storing trace data
KR20210084220A (ko) 부분 판독/기입을 갖는 재구성 가능한 시스톨릭 어레이를 위한 시스템 및 방법
KR20100018039A (ko) 소프트웨어 기반 무선통신 터미널을 위한 프로그래밍 가능한 장치
US11803736B1 (en) Fine-grained sparsity computations in systolic array
CN113591031A (zh) 低功耗矩阵运算方法及装置
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
WO2002013056A1 (en) Methods and apparatus for performing correlation operations
JP2014160393A (ja) マイクロプロセッサ及び演算処理方法
US12008368B2 (en) Programmable compute engine having transpose operations

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180831