CN111630509B - 执行积和运算的运算电路 - Google Patents

执行积和运算的运算电路 Download PDF

Info

Publication number
CN111630509B
CN111630509B CN201880085295.3A CN201880085295A CN111630509B CN 111630509 B CN111630509 B CN 111630509B CN 201880085295 A CN201880085295 A CN 201880085295A CN 111630509 B CN111630509 B CN 111630509B
Authority
CN
China
Prior art keywords
circuit
bit
value
circuits
real
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
CN201880085295.3A
Other languages
English (en)
Other versions
CN111630509A (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.)
Ntt Innovative Devices Co ltd
Nippon Telegraph and Telephone Corp
Original Assignee
Ntt Innovative Devices Co ltd
Nippon Telegraph and Telephone Corp
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 Ntt Innovative Devices Co ltd, Nippon Telegraph and Telephone Corp filed Critical Ntt Innovative Devices Co ltd
Publication of CN111630509A publication Critical patent/CN111630509A/zh
Application granted granted Critical
Publication of CN111630509B publication Critical patent/CN111630509B/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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

执行积和运算的运算电路设置有:LUT生成电路(1),在将系数c[n](n=1,...,N)划分为对时,输出针对所述对中的每一对计算的值;以及分布运算电路(2‑m),针对M组中的每一组并行计算积和运算的值z[m],所述积和运算的值z[m]是将包含M组数据x[m,n]的数据集X[m](m=1,…,M)中的数据x[m,n]分别乘以系数c[n]并对乘积求和的结果。分布运算电路(2‑m)包括:多个二项分布运算电路,基于通过将与本电路相对应的N个数据x[m,n]划分为对而获得的值、通过将系数c[n]划分为对而获得的值、以及LUT生成电路(1)所计算出的值,针对每一对计算二项积和运算的值;求和电路,对所计算出的值进行求和;以及位匹配电路,将求和结果中的小数位数与预定小数位数相匹配。

Description

执行积和运算的运算电路
技术领域
本发明涉及一种用于数字信号处理的运算电路,更具体地,涉及一种用于执行积和运算的运算电路。
背景技术
数字信号处理中的主要运算是积和运算,该积和运算将表示为定点二进制数的数字信号数据乘以同样表示为定点二进制数的系数,并且对乘积求和(参见非专利文献1)。图11示出了一般积和运算电路的布置。
图11中所示的积和运算电路接收分别由二进制数表示的N个数据x[n](n=1,...,N)和系数c[n](n=1,...,N)。每个数据x[n]是定点二进制数,并且小数位数(小数点后的位宽度)为x_scale。而且,每个系数c[n]是定点二进制数,并且小数位数为c_scale。
积和运算电路包括N个乘法电路1000-n(n=1,...,N)。每个乘法电路1000-n执行数据x[n]和系数c[n]的乘法c[n]×x[n],并且输出结果w[n]。由于该乘法是简单的二进制数乘法,因此在将w[n]作为定点数处理时的小数位数为x_scale+c_scale。
积和运算电路还包括求和电路1001。求和电路1001执行w[n](n=1,...,N)的求和∑n=1,...,N(c[n]×x[n]),并且输出结果y。由于该求和是重复简单的二进制数加法的计算,因此在将y作为定点数处理时的小数位数与w[n]的小数位数相同,为x_scale+c_scale。
积和运算电路还包括位匹配电路1002。位匹配电路1002通过对y的较低位进行向下取整或四舍五入,来将y的小数位数与要从积和运算电路输出的定点数z的小数位数z_scale相匹配。小数位数z_scale通常小于s的小数位数x_scale+c_scale。因此,当执行向下取整处理时,位匹配电路1002输出通过删除y的(x_scale+c_scale-z_scale)个较低位而获得的值。当执行四舍五入处理时,位匹配电路1002输出通过将由上述向下取整处理删除的位中的最高有效位与向下取整处理之后剩下的值相加而获得的值。
下面将说明位匹配电路1002对求和电路1001所获得的和y进行向下取整处理或四舍五入处理的原因。
通常,数据以及系数包含噪声分量,并且该噪声分量与信号分量的比率在较低位中尤其增加。因此,在数据与系数的相乘结果的较低位中,噪声分量的比率较高。特别地,在表示乘法结果的位中,比数据的小数位数或系数的小数位数低的位包含量化噪声。
而且,在数字信号处理中,从给定积和运算电路输出的值输入到使用另一系数值的另一积和运算电路。当通过这样的多级来执行积和运算时,如果输出值的位数变为大于输入值的位数,则输出级中的积和运算电路要处理的位数增加,这增加了电路规模和功耗。
此外,由于输入级中的积和运算电路将数据乘以系数,因此如果位匹配电路1002不减少位数,则相乘之后的位数变为大于数据和系数的位数之和。因此,在输入级中的积和运算电路在不减少位数的情况下输出值且输出级中的积和运算电路接收该值并执行运算的布置中,输出级中的积和运算电路与输入级中的积和运算电路相比,大大增加了电路规模和功耗。
因此,即使当输出级中的积和运算电路接收由输入级中的积和运算电路增加了位数的值并执行运算时,也无法从对噪声分量的比率较高的较低位进行处理的运算处理中获得有效的结果。另外,由于上述的位数增加,在输出级中用于执行积和运算处理的电路的面积和电路所消耗的功率大大增加。这浪费地大大增加了电路面积和功耗。
因此,在图11中所示的积和运算电路中,位匹配电路1002删除具有大噪声分量的较低位,并且限制性地将有效的位宽度输出到输出级,从而降低了输出级中的电路的成本(面积和功耗)。
如上所述,为了减小电路规模和功耗,常规积和运算电路执行从输出值中删除具有大噪声分量的较低位的处理。然而,内部乘法电路1000-n本身执行精确的乘法处理,而不管某一位是否具有大噪声分量。因此,在常规积和运算电路中通过乘法电路1000-n精确计算出的较低位由位匹配电路1002作为具有大噪声分量的位而删除。
乘法电路1000-n的电路规模和功耗随着位数的增加而大大地增加(在平衡树型乘法电路中,该增加与位数的平方成比例)。因此,位数的增加增大了元件的数量和功耗,但是通过乘法电路1000-n精确计算出的较低位由位匹配电路1002作为具有大噪声分量的位而删除。
因此,常规积和运算电路中所使用的乘法电路1000-n包括了用于精确计算较低位值的电路,该较低位值因为噪声分量大而被位匹配电路1002无效,所以浪费了用于精确计算较低位值的电路的面积和电路所消耗的功率。特别是在为了提高数字信号处理系统的精度而增加数据的位数或系数的位数时,会浪费电路规模和功耗。
相关技术文献
专利文献
非专利文献1:易茹、立岩武德、浅见幸司、小林春夫,“在FPGA上使用分布积和运算电路实现延迟数字滤波器的探讨”,第二次电气学会(IEEJ),东京分部,枥木分所/群马分所,联合论坛,2012年
发明内容
本发明要解决的技术问题
为了解决上述问题而做出本发明,本发明的目的在于提供一种能够减小电路面积和功耗的运算电路。
解决问题的方案
本发明是一种执行积和运算的运算电路,该运算电路接收数据集X[m]以及作为定点二进制数的N个系数c[n],计算并输出M个积和运算的值z[m],所述数据集X[m]包含M组作为定点二进制数的N个数据x[m,n],其中,m=1,...,M,M为不小于2的整数,n=1,...,N,N为不小于2的整数,所述运算电路包括:LUT生成电路,被配置为在将所述N个系数c[n]两两配对时,输出针对所述对中的每一对计算出的值;以及M个分布运算电路,被配置为针对所述M组中的每一组并行计算并输出所述积和运算的值z[m],所述积和运算的值z[m]是将所述数据集X[m]中的N个数据x[m,n]分别乘以所述N个系数c[n]并对乘积求和的结果,其中每个所述分布运算电路包括:多个二项分布运算电路,被配置为基于通过将与本电路相对应的N个数据x[m,n]两两配对而获得的值、通过将所述N个系数c[n]两两配对而获得的值、以及所述LUT生成电路所计算出的值,针对所述对中的每一对并行计算并输出将两个数据x[m,n]分别乘以两个系数c[n]并对乘积求和的二项积和运算的值;第一求和电路,被配置为对所述多个二项分布运算电路所计算出的值求和;以及位匹配电路,被配置为执行将所述第一求和电路的求和结果的小数位数与比所述小数位数小的预定小数位数相匹配的处理,并且将处理结果输出为所述积和运算的值z[m],所述多个二项分布运算电路中的每一个包括:多个索引电路,针对所述N个数据x[m,n]中的同一对的两个值的每个位位置形成,并且被配置为针对每个位位置从包括0、所述N个系数c[n]中的同一对的两个值、以及由所述LUT生成电路根据所述系数c[n]的两个值计算出的值在内的元素值中,获得与形成所述N个数据x[m,n]中的同一对的两个值的、同一位位置中的两个值相对应的一个元素值;多个基于位位置的运算电路,被配置为对所述多个索引电路所获得的元素值执行基于位位置的运算;以及第二求和电路,被配置为输出对所述多个基于位位置的运算电路所计算出的值求和的结果,作为所述二项积和运算的值,以及在所述多个基于位位置的运算电路之中,与本电路相对应的位位置l小于预定值Lc的基于位位置的运算电路使与本电路相对应的所述索引电路所获得的元素值的最低有效位侧的Lc-l个位无效,其中Lc为大于等于2且小于L的整数。
而且,本发明是一种执行积和运算的运算电路,该运算电路接收M个复数X[m]、以及复数系数C,计算并输出M个复数值Z[m],所述M个复数X[m]中的每一个被划分为实部值x_real[m]和虚部值x_imag[m],所述复数系数C被划分为实部值c_real和虚部值c_imag,所述M个复数值Z[m]包含实部积和运算的结果和虚部积和运算的结果,其中M为不小于2的整数,m=1,...,M,所述运算电路包括:LUT生成电路,被配置为计算所述复数系数C的实部值c_real与虚部值c_imag之差的值d_sub、以及实部值c_real与虚部值c_imag之和的值d_add;M个分布运算电路,被配置为针对M个中的每一个,并行计算并输出复数值Y[m],所述复数值Y[m]是将所述复数X[m]中的与本电路相对应的数据中的每一个乘以所述复数系数C并对乘积求和的结果;以及M个位匹配电路,被配置为执行将从所述M个分布运算电路输出的复数值Y[m]中的实部积和运算结果y_real[m]的小数位数和虚部积和运算结果y_imag[m]的小数位数中的每一个与比这些小数位数小的预定小数位数相匹配的处理,并且输出所述处理的结果,作为构成所述复数值Z[m]的z_real[m]和z_imag[m],其中每个所述分布运算电路包括:多个第一索引电路,针对所述复数X[m]的实部值x_real[m]和虚部值x_imag[m]的每个位位置形成,并且被配置为针对每个位位置从包括0、c_real、-c_imag和d_sub在内的元素值中,获得与所述实部值x_real[m]和所述虚部值x_imag[m]中的与本电路相对应的位位置中的两个值相对应的一个元素值;多个第一基于位位置的运算电路,被配置为对所述多个第一索引电路所获得的元素值执行基于位位置的运算;第一求和电路,被配置为输出对所述多个第一基于位位置的运算电路所计算出的值求和的结果,作为实部积和运算值y_real[m];多个第二索引电路,针对所述复数X[m]的实部值x_real[m]和虚部值x_imag[m]的每个位位置形成,并且被配置为针对每个位位置从包括0、c_imag、c_real和d_add在内的元素值中,获得与所述实部值x_real[m]和所述虚部值x_imag[m]中的与本电路相对应的位位置中的两个值相对应的一个元素值;多个第二基于位位置的运算电路,被配置为对所述多个第二索引电路所获得的元素值执行基于位位置的运算;以及第二求和电路,被配置为输出对所述多个第二基于位位置的运算电路所计算出的值求和的结果,作为虚部积和运算值y_imag[m],每个所述分布运算电路针对M个中的每一个,并行计算并输出实部的积和运算c_real×x_real[m]-c_imag×x_imag[m]的结果y_real[m]、以及虚部的积和运算c_imag×x_real[m]+c_real×x_imag[m]的结果y_imag[m],以及在所述多个第一基于位位置的运算电路、所述多个第二基于位位置的运算电路之中,与本电路相对应的位位置l小于预定值Lc的基于位位置的运算电路使与本电路相对应的所述第一索引电路、所述第二索引电路所获得的元素值的最低有效位侧的Lc-l个位无效,其中Lc为大于等于2且小于L的整数。
本发明的效果
本发明的执行积和运算的运算电路不是在不区分较高位和较低位的情况下对所有位执行精确乘法运算的乘法电路,而是采用针对数据的每个位位置搜索LUT并累加元素值的分布运算,从而可以减小与针对每个位位置预先指定的较低位相对应的处理电路。该减小的电路是用于计算因为噪声分量大而被位匹配电路无效化的较低位值的无用电路。本发明可以有效地减小上述无用电路的面积和功率。
附图说明
图1是示出了根据本发明第一实施例的运算电路的布置的框图;
图2是示出了根据本发明第一实施例的分布运算电路的布置的框图;
图3是示出了根据本发明第一实施例的二项分布运算电路的布置的框图;
图4是用于说明根据本发明第一实施例的LUT索引电路的操作的图;
图5是用于说明根据本发明第一实施例的二项分布运算电路的运算原理的图;
图6是用于说明根据本发明第一实施例的二项分布运算电路的运算原理的图;
图7是示出了根据本发明第二实施例的运算电路的布置的框图;
图8是示出了根据本发明第二实施例的分布运算电路的布置的框图;
图9是用于说明根据本发明第二实施例的实部LUT索引电路和虚部LUT索引电路的操作的图;
图10是用于说明根据本发明第二实施例的分布运算电路的运算原理的图;以及
图11是示出了常规积和运算电路的布置的框图。
具体实施方式
[第一实施例]
在下文中将参考附图说明本发明的实施例。图1是示出了根据本发明第一实施例的运算电路的布置的框图。此实施例的运算电路接收M(M为2或更大的整数)个数据集X[m](m=1,...,M)和N(N是2或更大的整数)个系数c[n](n=1,...,N)。每个数据集X[m](m=1,...,N)包括N个数据x[m,n](n=1,...,N)。注意,数据x[m,n]和系数c[n]分别是表示带符号定点数的、二进制补码的二进制数。令x_scale为每个数据x[m,n]的小数位数,c_scale为每个系数c[n]的小数位数。
图1中所示的运算电路针对上述输入计算并输出M个积和运算值z[m](m=1,…,M)。从运算电路输出的积和运算值z[m](m=1,...,M)中的每一个都是通过从结果中删除具有大噪声分量的较低位而被限制到有效位宽度的值,该结果是通过将构成数据集X[m](m=1,…,M)的N个数据x[m,n](n=1,…,N)中的每一个乘以系数c[n]并对乘积求和而得到的,即等于∑n=1,...,N(c[n]×x[m,n])的结果。注意,积和运算值z[m]为表示带符号定点数的、二进制补码的二进制数,并且小数位数为z_scale。
图1中所示的运算电路包括一个LUT生成电路1和M个(M为2或更大的整数)分布运算电路2-1至2-M。
LUT生成电路1接收N个系数c[n](n=1,...,N)作为积和运算的系数,并且根据通过将N个系数c[n](n=1,...,N)两两配对而获得的各对的值,来计算作为分布运算LUT的元素使用的值。然后,LUT生成电路1将计算出的值与系数c[n]一起分配给分布运算电路2-1至2-M。
将系数c[n](n=1,...,N)配对的方法必须与在稍后描述的各个分布运算电路2-m(m=1,...,M)中执行的、根据分布运算的二项积和运算的计算c[p]×x[m,p]+c[q]×x[m,q](p和q分别为1到N范围内的整数且p≠q)中的c[p]和c[q]的配对相同。
在此实施例中,说明将系数c[n]配对使得具有连续序号的奇数编号值与紧接的偶数编号值配对的方法。因此,在此实施例的配对中,c[2×n′-1]和c[2×n′](n′=1,...,N′,N′为不大于N/2的最大整数)属于同一对,例如c[1]和c[2]、c[3]和c[4]、.....。当N为偶数时,N′的值为N/2,而当N为奇数时,N′的值为(N-1)/2。
注意,本发明不限于该配对方法,并且系数c[n]的配对方法仅需要与在各分布运算电路2-m(m=1,…,M)中执行的、基于分布运算的二项积和运算中的配对方法相同。
LUT生成电路1计算通过将系数c[n](n=1,...,N)配对而获得的值c[2×n′-1]和c[2×n′](n′=1,...,N′)之和,即计算c[2×n′-1]+c[2×n′]作为d[n′],并且将系数c[n](n=1,...,N)和计算出的值d[n′](n′=1,...,N′)输出到各个分布运算电路2-1至2-M。
注意,本发明不限于上述计算,仅需要用于生成要在各分布运算电路2-m(m=1,…,M)中使用的分布运算LUT的元素的计算。还要注意,由LUT生成电路1计算出的值d[n′]为表示带符号定点数的、二进制补码的二进制数。
各分布运算电路2-m(m=1,…,M)接收包括N个数据x[m,n](n=1,...,M)在内的数据集X[m]、从LUT生成电路1分配的系数c[n](n=1,…,N)以及由LUT生成电路1计算出的值d[n′](n′=1,...,N′),并且输出通过将数据集X[m]的与该电路相对应的N个数据x[m,n]分别乘以系数c[n]并对乘积求和而获得的值,即输出等于∑n=1,...,N(c[n]×x[m,n])的值y[m]。
图2示出了分布运算电路2-m(m=1,...,M)的布置。每个分布运算电路2-m包括N′个二项分布运算电路20m-n′(n′=1,…,N′)、分布运算结果求和电路2lm和位匹配电路22m。
图2中所示的分布运算电路2-m以与LUT生成电路1对系数c[n](n=1,...,N)执行的配对相同的方式将输入数据集X[m]的与该电路相对应的N个数据x[m,n]配对。
此实施例的LUT生成电路1将系数c[n](n=1,...,N)配对,使得具有连续序号的奇数编号的值与紧接的偶数编号的值配对。因此,在各分布运算电路2-m对N个数据x[m,n]执行的配对中也将x[m,2×n′-1]与x[m,2×n′](n′=1,...,N′,N′为不大于N/2的最大整数)配对。
二项分布运算电路20m-n′(n′=1,...,N′)中的每一个接收与该电路相对应的一对数据x[m,2×n′-1]和x[m,2×n′]、与该电路相对应的一对系数c[2×n′-1]和c[2×n′]、以及由LUT生成电路1计算出的值d[n′]。
二项分布运算电路20m-n′形成具有0、c[2×n′-1]、c[2×n′]和d[n′]作为元素数值的LUT,通过使用该LUT的分布运算来获得积和运算c[2×n′-1]×x[m,2×n′-1]+c[2n′]×x[m,2×n′]的结果,并且将结果输出为y′[m,n′]。请注意,积和运算的结果y′[m,n′]为表示带符号定点数的、二进制补码的二进制数。
分布运算结果求和电路2lm对从二项分布运算电路20m-n′输出的值y′[m,n′]求和,即计算∑n′=1,...,N′(y′[m,n′]),并且将结果输出为y[m]。
注意,上面对分布运算电路2-m的解释是N为偶数的情况。当N为奇数时,如图2中所示,添加了辅助乘法电路23m,辅助乘法电路23m计算c[N]×x[m,N]并输出结果作为y′[m,N’+1]。
另外,当N为奇数时,分布运算结果求和电路21m对从二项分布运算电路20m-n′(n′=1,...,N′)输出的值y′[m,n′](n′=1,...,N′)和从辅助乘法电路23m输出的值y′[m,N′+1]求和,并且将结果输出为y[m]。
位匹配电路22m执行对从分布运算结果求和电路21m输出的积和运算结果y[m]的较低位向下取整或四舍五入的处理,从而将y[m]的小数位数与要从运算电路输出的定点数的小数位数z_scale匹配,并且将处理结果输出为z[m]。z_scale的值小于y[m]的小数位数y_scale。
因此,当执行向下取整处理时,位匹配电路22m输出通过删除y[m]的(y_scale-z_scale)个较低位而获得的值。而且,当执行四舍五入处理时,位匹配电路22m输出通过将由上述向下取整处理删除的位中的最高有效位与向下取整处理之后剩下的值相加而获得的值。
图3示出了二项分布运算电路20m-n′(m=1,...,M,n′=1,...,N′)的布置。令L为给定数据x[m,n](m=1,...,M,n=1,...,N)中的一个的位宽度,令x[m,2×n′-1][l](l=1,...,L)为作为二项分布运算电路20m-n′的输入的数据x[m,2×n′-1]的各个位,并且令x[m,2×n′][l](l=1,…,L)为x[m,2×n′]的各个位。
图3中所示的二项分布运算电路20m-n′包括L个LUT索引电路200m-n′-l(选择电路)、L个基于位位置的运算电路201m-n′-l、以及求和电路202m-n′。
二项分布运算电路20m-n′包括为数据x[m,2×n′-1]和x[m,2×n′]的每个位位置l(l=1,...,L)形成的LUT索引电路200m-n′-l。LUT索引电路200m-n′-l基于数据x[m,2×n′-1]和x[m,2×n′]的与该电路相对应的位置l中的位x[m,2×n′-1][l]和x[m,2×n′][l]来选择LUT的四个元素之一,并且获得所选的元素值作为LUT#m-n′-l。请注意,LUT#m-n′-l为表示带符号定点数的、二进制补码的二进制数。
图4示出了位x[m,2×n′-1][l]和x[m,2×n′][l]的每个值与所选择的LUT的元素值LUT#m-n′-l之间的关系。位x[m,2×n′-1][l]和x[m,2×n′][l]的每个值与元素值LUT#m-n′-l之间的关系和通过使用分布式算法来执行一般二项积和运算时LUT中的地址与存储值之间的关系相同。LUT#m-n′-l的值为(c[2×n′-1]×x[m,2×n′-1][l]+c[2×n′]×x[m,2×n′][l])。
在图3中所示的二项分布运算电路20m-n′中,基于位位置的运算电路20lm-n′-l对由LUT索引电路200m-n′-l为每个位位置l(l=1,…,L)选择的LUT的元素值LUT#m-n′-l分别执行基于位位置的运算。
求和电路202m-n’将对L个基于位位置的运算电路201m-n′-l所计算出的基于位位置的运算结果BR#m-n′-l求和(即∑l=l=1,...,L(BR#m-n′-l))的结果输出为y′[m,n′]。将参考图5来说明二项分布运算电路20m-n′的运算原理。
当与基于位位置的运算电路201m-n′-l相对应的位位置l大于Lc(Lc为从2(包括2)到L(不包括L)的整数)时(l=Lc+1,…,L),基于位位置的运算电路201m-n′-l输出将与该电路相对应的LUT索引电路200m-n′-l所选择的元素值LUT#m-n′-l左移(l-Lc)个位的结果,作为基于位位置的运算结果BR#m-n′-l。
该左移位运算等于将元素值LUT#m-n′-l乘以2(l-Lc),并且通过左移位运算添加到LSB的(1-Lc)个位值为0。图5示出了当位位置l大于Lc时的基于位位置的运算结果BR#m-n′-(L-1)的示例。
注意,与l=L的位位置(数据的MSB位置)相对应的基于位位置的运算电路201m-n′-l输出将LUT索引电路200m-n′-L所选择的元素值LUT#m-n′-L反转符号后左移(L-Lc)个位的结果,作为基于位位置的运算结果BR#m-n′-l。
而且,当与基于位位置的运算电路201m-n′-l相对应的位位置l小于Lc(l=1,...,Lc-1)时,基于位位置的运算电路201m-n′-l输出将与该电路相对应的LUT索引电路200m-n′-l所选择的元素值LUT#m-n′-l向右移位(Lc-l)位的结果,作为基于位位置的运算结果BR#m-n′-l。
该右移位运算等效于将元素值LUT#m-n′-l除以2(Lc-l),并且右移位运算之前的LSB侧的(Lc-l)个位值在右移位运算之后不被电路保持,而是被无效。该右移位运算的处理等于对元素值LUT#m-n′-l的LSB侧的(Lc-l)个位进行向下取整。图5示出了当位位置l小于Lc时的基于位位置的运算结果BR#m-n′-(Lc-l)和BR#m-n′-l的示例。
此外,与l=Lc的位位置相对应的基于位位置的运算电路201m-n′-l不对与该电路相对应的LUT索引电路200m-n′-l所选择的元素值LUT#m-n′-Lc执行计算,并且直接将元素值LUT#m-n′-l输出为基于位位置的运算结果#m-n′-Lc。
如上所述,当位位置l小于Lc时,在每个元素值LUT#m-n′-l(l=1,...,Lc-1)中,LSB侧的(Lc-l)个位值通过基于位位置的运算电路201m-n′-l所执行的(Lc-l)个位的右移位运算而无效。此外,为了使LUT索引电路200m-n′-l选择LUT的四个元素值之一,通常将用于选择四个位值之一的4∶1选择器电路用于元素值的每个位位置。
因此,对于元素值LUT#m-n′-l的各位中的被基于位位置的运算电路201m-n′-l无效的LSB侧的(Lc-l)个位,通过省略上述4∶1选择器电路可以减小LUT索引电路200m-n′-l的电路规模。
求和电路202m-n′对从基于位位置的运算电路201m-n′-l输出的基于位位置的运算结果BR#m-n′-l求和,并输出和∑l=1,...,L(BR#m-n′-l)作为上述y′[m,n′]。
在该实施例中,通过根据位位置l而改变的位数来执行左移位运算或右移位运算,所以各个基于位位置的运算结果BR#m-n′-l具有不同的位宽度。因此,求和电路202m-n’将基于位位置的运算结果BR#m-n′-1至BR#m-n′-(L-1)的位宽度与最大的位宽度(即,基于位位置的运算结果BR#m-n′-L的位宽度)匹配,然后对各个基于位位置的运算结果BR#m-n′-l(l=1,…,L)求和。
每个基于位位置的运算结果BR#m-n′-l为表示带符号定点数的、二进制补码的二进制数。因此,在上述位宽度匹配中,必须将与符号位S#l具有相同值的位添加到MSB侧。
注意,当位位置l小于Lc(l=1,…,Lc-1)时,当基于位位置的运算电路201m-n′-l对元素值LUT#m-n′-l执行(Lc-l)个位的右移位运算时,也可以将被无效的LSB侧的(Lc-l)个位中的MSB侧的1位的值与右移位运算的结果相加,从而获得基于位位置的运算结果BR#m-n′-l。该处理等于对元素值LUT#m-n′-l的LSB侧的(Lc-l)个位进行四舍五入。
从每个二项分布运算电路20m-n′输出的值y′[m,n′]是数据x[m,n]和系数c[n]的积和运算的结果。通过常规技术(结合乘法与加法的运算)来获得积和运算的结果时的小数位数是数据x[m,n]的小数位数x_scale与系数c[n]的小数位数c_scale之和,即x_scale+c_scale。通过通常的分布运算(等同于在此实施例中参数Lc的值为1的情况)来执行积和运算时的积和运算的结果的小数位数也为x_scale+c_scale。
另一方面,在此实施例中,如图6中所示,(Lc-l)个较低位被无效。因此,从每个二项分布运算电路20m-n′输出的值y′[m,n′]的小数位数y′scale缩短了被无效的位数,因此变为x_scale+c_scale-Lc+1。
如上所述,此实施例的运算电路并非是对所有位执行精确乘法的乘法电路,而是执行分布运算,该分布运算针对数据的每个位位置l从LUT获得元素值LUT#m-n′-l,使元素值LUT#m-n′-l的根据位位置l被预先指定的较低位无效,即在该实施例中使(Lc-l)个较低位无效,并且累加这些值。
因此,与不执行无效化的常规运算电路相比,此实施例不需要对无效位的累加处理,并且可以相应地减小电路面积和功耗。而且,无效的较低位包含大噪声分量。因此,因为在常规运算电路中位匹配电路22m也执行四舍五入处理或向下取整处理,所以此实施例的较低位无效化不会降低从运算电路输出的值的精度。
也就是说,此实施例的运算电路不是不区分较高位和较低位地对所有位执行精确乘法的乘法电路,而是采用分布运算来针对数据的每个位位置l从LUT获得元素值LUT#m-n′-l并累加这些值,从而省略了对针对每个位位置l预先指定的较低位的处理。因此,此实施例的运算电路可以有效地减小电路的面积和功率,而不会降低运算精度。
特别地,为了提高处理速度,此实施例的运算电路执行与数据位宽度相对应的并行化以便针对分布运算电路中的数据的每个位位置l同时执行LUT搜索和累加,并且执行与分布运算电路的数量相对应的并行化以便同时对M个数据集执行分布运算。因此,在此实施例的运算电路中,累加上述无效位的处理所需的电路规模增大。通过省略对较低位的处理,这增加了减小电路的效果。
[第二实施例]
下面将说明本发明的第二实施例。图7是示出了根据本发明第二实施例的运算电路的布置的框图。图7中所示的运算电路接收:M个(M为2或更大的整数)复数X[m](m=1,...,M),该M个复数中的每一个被划分为实部值x_real[m]和虚部值x_imag[m](m=1,...,M);以及复数系数C,复数系数C被划分为实部值c_real和虚部值c_imag。注意,数据x[m,n](m=1,...,M,n=1,...,N)为可以取负值的有符号的数值(由二进制补码的二进制数表示的数值)。令x_scale为每个复数X[m](m=1,…,M)的实部值x_real[m]和虚部值x_imag[m]的小数位数,并且令c_scale为复数系数C的实部值c_real和虚部值c_imag的小数位数。
同样,令L为用二进制数表示的任意数据x_real[m](m=1,...,M)和x_imag[m](m=1,...,M)中的一个的位宽度,令x_real[m][l](l=1,...,L)为要输入到分布运算电路2a-m(稍后将描述)的数据x_real[m]的各个位,并且令x_imag[m][l](l=1,...,L)为x_imag[m]的各个位。
图7中所示的运算电路通过分布运算从上述输入中获得M个复数值Z[m](m=1,...,M),并且输出所获得的值,M个复数值Z[m](m=1,...,M)中的每一个被划分为实部值z_real[m]和虚部值z_imag[m](m=1,...,M)。M个复数值Z[m]中的每一个等同于(C×X[m])。也就是说,实部值z_real[m]等同于c_real×x_real[m]-c_imag×x_imag[m]。虚部值z_imag[m]等同于c_imag×x_real[m]+c_real×x_imag[m]。
注意,实部值z_real[m]和虚部值z_imag[m]中的每一个都是通过从复数X[m]与复数系数C的乘积中删除具有大噪声分量的较低位而被限制到有效位宽度的值。也就是说,z_real[m]并不总是与c_real×x_real[m]-c_imag×x_imag[m]完全一致。同样,虚部值z_imag[m]并不总是与c_imag×x_real[m]+c_real×x_imag[m]完全一致。还要注意,实部值z_real[m]和虚部值z_imag[m]中的每一个是表示带符号定点数的、二进制补码的二进制数,并且小数位数为z_scale。
图7中所示的运算电路包括一个LUT生成电路1a、M个(M为2或更大的整数)分布运算电路2a-1至2a-M、以及M个位匹配电路3a-1至3a-M。
LUT生成电路1a接收复数系数C的实部值c_real和虚部值c_imag,计算等同于实部值c_real与虚部值c_imag之差c_real-c_imag的值d_sub以及等同于实部值c_real与虚部值c_imag之和c_real+c_imag的值d_add,并且将值d_sub和d_add与实部值c_real和虚部值c_imag一起输出到分布运算电路2a-1至2a-M。
分布运算电路2a-m(m=1,...,M)中的每一个接收复数X[m](m=1,…,M)、以及从LUT生成电路1a分配的实部值c_real、虚部值c_imag、值d_sub和d_add,并且并行地计算和输出M个复数值Y[m](m=1,...,M),这些复数值是通过将复数X[m]的与该电路相对应的数据乘以复数系数C并且对乘积求和而获得的。
分布运算电路2a-m形成具有0、c_real、-c_imag和d_sub作为元素数值的实部LUT、以及具有0、c_imag、c_real和d_add作为元素值的虚部LUT,通过使用实部LUT的分布运算获得实部积和运算c_real×x_real[m]-c_imag×x_imag[m]的结果,并且将结果输出为y_real[m]。另外,分布运算电路2a-m通过使用虚部LUT的分布运算来获得虚部积和运算c_imag×x_real[m]+c_real×x_imag[m]的结果,并且将结果输出为y_imag[m]。
位匹配电路3a-m执行对从分布运算电路2a-m输出的实部积和运算的结果y_real[m]的较低位进行向下取整或四舍五入的处理,从而使y_real[m]的小数位数与要从运算电路输出的定点数的小数位数z_scale匹配,并且将处理结果作为z_real[m]进行输出。类似地,位匹配电路3a-m执行对从分布运算电路2a-m输出的虚部积和运算的结果y_imag[m]的较低位进行向下取整或四舍五入的处理,从而使y_imag[m]的小数位数与要从运算电路输出的定点数的小数位数z_scale匹配,并且将处理结果输出为z_imag[m]。z_scale的值小于y_real[m]或y_imag[m]的小数位数y_scale。
因此,当执行向下取整处理时,位匹配电路3a-m将通过分别从y_real[m]和y_imag[m]中删除(y_scale-z_scale)个位而获得的值输出为z_real[m]和z_imag[m]。当执行四舍五入处理时,位匹配电路3a-m输出通过将由上述向下取整处理删除的位中的最高有效位与向下取整处理之后剩下的值相加而获得的值。
图8示出了分布运算电路2a-m(m=1,...,M)的布置。图8中所示的分布运算电路2a-m包括L个实部LUT索引电路203m-l(实部选择电路)、符号反转电路204、L个实部的基于位位置的运算电路205m-l、实部求和电路206m、L个虚部LUT索引电路207m-l(虚部选择电路)、L个虚部的基于位位置的运算电路208m-l和虚部求和电路209m。
分布运算电路2a-m包括针对数据x_real[m]和x_imag[m]的每个位位置l(l=1,...,L)形成的实部LUT索引电路203m-l和虚部LUT索引电路207m-l。
实部LUT索引电路203m-l基于数据x_real[m]和x_imag[m]的与该电路相对应的位位置中的位x_real[m][l]和x_imag[m][l]来选择实部LUT的四个元素值(即0、c_real、-c_imag和d_sub)之一,并且将所选元素值作为LUTr#m-l获得。元素值LUTr#m-l为表示带符号定点数的、二进制补码的二进制数。
虚部LUT索引电路207m-l基于数据x_real[m]和x_imag[m]的与该电路相对应的位位置中的位x_real[m][l]和x_imag[m][l]来选择虚部LUT的四个元素值(即0、c_imag、c_real和d_add)之一,并且将所选元素值作为LUTi#m-l获得。元素值LUTi#m-l为表示带符号定点数的、二进制补码的二进制数。
图9示出了位x_real[m][l]和x_imag[m][l]的各值与所选择的实部LUT和虚部LUT的元素值之间的关系。位x_real[m][l]和x_imag[m][l]的各值与实部LUT和虚部LUT的元素值之间的这种关系与通过使用分布算法来执行一般二项积和运算时LUT中的地址与存储值之间的关系相同。
在图8中所示的分布运算电路2a-m中,实部的基于位位置的运算电路205m-l对LUT的元素值LUTr#m-l执行基于位位置的运算,LUT的元素值LUTr#m-l是由实部LUT索引电路203m-l针对每个位位置l(l=1,...,L)而选择出的。类似地,虚部的基于位位置的运算电路208m-l对LUT的元素值LUTi#m-l执行基于位位置的运算,LUT的元素值LUTi#m-l是由虚部索引电路207m-l针对每个位位置而选择出的。
实部求和电路206m将对L个实部的基于位位置的运算电路205m-l所计算出的基于位位置的运算结果BRr#m-l求和的结果(即,∑l=1,...,L(BRr#m-l))输出为y_real[m]。同样地,虚部求和电路209m将对L个虚部的基于位位置的运算电路208m-l所计算出的基于位位置的运算结果BRi#m-l求和的结果(即,∑l=1,...,L(BRi#m-l))输出为y_imag[m]。
图10是用于说明分布运算电路2a-m的运算的概念图。注意,基于位位置的运算处理和求和处理对于实部和虚部是通用的,所以图10以针对实部的基于位位置的运算处理和求和处理为例。
当与实部的基于位位置的运算电路205m-l相对应的位位置l大于Lc(Lc为从2(包括2)到L(不包括L)的整数)时(l=Lc+1,...,L),实部的基于位位置的运算电路205m-l对与该电路相对应的实部LUT索引电路203m-l针对每个位位置l所选择的元素值LUTr#m-l执行(l-Lc)个位的左移位运算,并且将结果输出为实部的基于位位置的运算结果BRr#m-l。类似地,当与虚部的基于位位置的运算电路208m-l相对应的位位置l大于Lc时,虚部的基于位位置的运算电路208m-l对与该电路相对应的虚部LUT索引电路207m-l针对每个位位置l所选择的元素值LUTi#m-l执行(l-Lc)个位的左移位运算,并且将结果输出为虚部的基于位位置的运算结果BRi#m-l。
这些左移位运算等于将元素值LUTr#m-l和LUTi#m-l乘以2(l-Lc),并且通过每个左移位运算添加到LSB侧的(l-Lc)个位值为0。图10示出了当位位置l大于Lc时的基于位位置的运算结果BRr#m-(L-1)的示例。
注意,与l=L的位位置(数据的MSB位置)相对应的实部的基于位位置的运算电路205m-L输出将实部LUT索引电路203m-L所选择的元素值LUTr#m-L反转符号后左移(L-Lc)个位的结果,作为实部的基于位位置的运算结果BRr#m-L。同样,与l=L的位位置相对应的虚部的基于位位置的运算电路208m-L输出将虚部LUT索引电路207m-L所选择的元素值LUTi#m-L反转符号后左移(L-Lc)个位的结果,作为虚部的基于位位置的运算结果BRi#m-L。
而且,当与实部的基于位位置的运算电路205m-l相对应的位位置l小于Lc时(l=1,…,Lc-1),实部的基于位位置的运算电路205m-l输出对与该电路相对应的实部LUT索引电路203m-l所选择的元素值LUTr#m-l执行(Lc-l)个位的右移位运算的结果,作为实部的基于位位置的运算结果BRr#m-l。类似地,当与虚部的基于位位置的运算电路208m-l相对应的位位置l小于Lc时,虚部的基于位位置的运算电路208m-l输出对与该电路相对应的虚部LUT索引电路207m-l所选择的元素值LUTi#m-l执行(Lc-l)个位的右移位运算的结果,作为虚部的基于位位置的运算结果BRi#m-l。
这些右移位运算等效于将元素值LUTr#m-l除以2(Lc-l),并且每个右移位运算之前的LSB侧的(Lc-l)个位值在右移位运算之后不被电路保持,而是被无效。该右移位运算的处理等于对元素值LUTr#m-l或LUTi#m-l的LSB侧的(Lc-l)个位进行向下取整。图10示出了当位位置l小于Lc时的基于位位置的运算结果BRr#m-(Lc-1)和BRr#m-1的示例。
此外,与l=Lc的位位置相对应的实部的基于位位置的运算电路205m-Lc不对与该电路相对应的实部LUT索引电路203m-Lc所选择的元素值LUTr#m-Lc执行运算,并且直接输出元素值LUTr#m-Lc,作为实部的基于位位置的运算结果BRr#m-Lc。同样,与l=Lc的位位置相对应的虚部的基于位位置的运算电路208m-Lc不对与该电路相对应的虚部LUT索引电路207m-Lc所选择的元素值LUTi#m-Lc执行运算,并且直接输出元素值LUTi#m-Lc,作为虚部的基于位位置的算术结果BRi#m-Lc。
实部求和电路206m对从实部的基于位位置的运算电路205m-l输出的实部的基于位位置的运算结果BRr#m-l(l=1,…,L)求和,并且将和∑l=1,...,L(BRr#m-l)输出为y_real[m]。类似地,虚部求和电路209m对从虚部的基于位位置的运算电路208m-l输出的虚部的基于位位置的运算结果BRi#m-l求和,并且将和∑l=1,...,L(BRi#m-l)输出为y_imag[m]。
在此实施例中,执行具有根据位位置l而改变的位数的左移位运算或右移位运算,所以各个基于位位置的运算结果BRr#m-l和BRi#m-l具有不同的位宽度。
因此,实部求和电路206m在将基于位位置的运算结果BRr#m-1至BRr#m-(L-1)的位宽度与最大位宽度(即,基于位位置的运算结果BRr#m-L的位宽度)匹配之后,对各个基于位位置的运算结果BRr#m-l(l=1,...,L)求和。类似地,虚部求和电路209m在将基于位位置的运算结果BRi#m-1至BRi#m一(L-1)的位宽度与基于位位置的运算结果BRi#m-L的位宽度匹配之后,对各个基于位位置的运算结果BRi#m-l(l=1,...,L)求和。
基于位位置的运算结果BRr#m-l和BRi#m-l分别为表示带符号定点数的、二进制补码的二进制数。因此,在上述位宽度匹配中,必须将与符号位具有相同值的位添加到MSB侧。
如上所述,当位位置l小于Lc时,在元素值LUTr#m-l和LUTi#m-l(l=1,...,Lc-1)中,LSB侧的(Lc-l)个位值被基于位位置的运算电路205m-l和208m-l的(Lc-l)个位的右移位运算而无效。而且,为了使LUT索引电路203m-l和207m-l选择LUT的四个元素值之一,通常将用于选择四个位值之一的4:1选择器电路用于元素值的每个位位置。
因此,可以通过针对元素值LUTr#m-l和LUTi#m-l的各位中被基于位位置的运算电路205m-l和208m-l无效化的、LSB侧的(Lc-l)个位省略4:1选择器电路,来减小LUT索引电路203m-l和207m-l的电路规模。
注意,当基于位位置的运算电路205m-l和208m-l在位位置小于Lc时(l=1,...,Lc-1)对元素值LUTr#m-l和LUTi#m-l执行(Lc-l)个位的右移位运算时,也可以通过将被无效的LSB侧的(Lc-l)个位中的MSB侧的1位的值与上述右移位运算结果相加,来获得基于位位置的运算结果BRr#m-l和BRi#m-l。该处理等于对元素值LUTr#m-l和LUTi#m-l的LSB侧的(Lc-l)个位进行四舍五入。
要从每个分布运算电路2a-m输出的值y_real[m]和y_imag[m]是数据x_real[m]和x_imag[m]与复数系数C的积和运算的结果。通过常规技术(结合乘法与加法的运算)来获得积和运算的结果时的小数位数是数据x_real[m]和x_imag[m]的小数位数x_scale与复数系数C的小数位数c_scale之和,即x_scale+c_scale。而且,当通过通常的分布运算(在此实施例中,等同于参数Lc的值为1的情况)来执行积和运算时,积和运算的结果的小数位数也为x_scale+c_scale。
另一方面,在此实施例中,如图10中所示,(Lc-l)个较低位被无效。因此,要从分布运算电路2a-m中的每一个输出的值y_real[m]和y_imag[m]的小数位数y_scale缩短了被无效的位数,并且变为x_scale+c_scale-Lc+1。
如上所述,此实施例的运算电路不是用于对所有位执行精确乘法的乘法电路,而是执行分布运算,该分布运算针对数据的每个位位置l从LUT获得元素值LUTr#m-l和LUTi#m-l,使元素值LUTr#m-l和LUTi#m-l的根据位位置l而预先指定的较低位无效,即,使此实施例中的(Lc-l)个较低位无效,并且累积结果。
因此,与不执行无效化的常规运算电路相比,此实施例不需要对无效位的累积处理,并且可以相应地减小电路面积和功耗。而且,无效的较低位包含大噪声分量。因此,因为在常规运算电路中位匹配电路22m也执行四舍五入处理或向下取整处理,所以此实施例的较低位无效化不会降低从运算电路输出的值的精度。
也就是说,此实施例的运算电路不是不区分较高位和较低位地对所有位执行精确乘法的乘法电路,而是采用分布运算来针对数据的每个位位置l从LUT获得元素值LUT#m-n′-l并累加这些值,从而省略了对针对每个位位置l预先指定的较低位的处理。因此,此实施例的运算电路可以有效地减小电路的面积和功率,而不会降低运算精度。
特别地,为了提高处理速度,此实施例的运算电路执行与数据位宽度相对应的并行化以便针对分布运算电路中的数据的每个位位置l同时执行LUT搜索和累加,并且执行与分布运算电路的数量相对应的并行化以便同时对M个数据集执行分布运算。因此,在此实施例的运算电路中,累加上述无效位的处理所需的电路规模增大。通过省略对较低位的处理,这增加了减小电路的效果。
注意,可以通过例如FPGA(现场可编程门阵列)来实现在第一实施例和第二实施例中说明的运算电路中的每一个。
注意,在常规积和运算电路中,当数据的小数位数为x_scale且系数的小数位数为c_scale时,精确的积和运算的小数位数为x_scale+c_scale。然后,位匹配电路将小数位数四舍五入为z_scale。因此,x_scale+c_scale-z_scale是要通过位匹配来删除的位数Lr。
另一方面,在本发明中,与上述精确的积和运算值相比,多删除了(Lc-1)个位。为了通过本发明在减小电路规模和功耗的同时获得与精确的积和运算值几乎相同的值,使得通过从上述Lr中减去Log2(Lc)而获得的值大于(Lc-1)的值,即设置为Lc-1<Lr-Log2(Lc)。例如,当L为9且x_scale、c_scale和z_scale均为8时,Lc被设置为5或更小。
如上所述确定Lc的值是因为,在本发明中对数量等于数据的位宽度L的LUT索引结果求和,并且该求和累加了与精确的积和运算值的差,所以有必要防止该差的累加对四舍五入值产生巨大影响。
工业实用性
本发明可应用于运算电路。
附图标记的说明
1、1a…LUT生成电路,2-1至2-M、2a-1至2a-M...分布运算电路,3a-1至3a-M...位匹配电路,20m...二项分布运算电路,2lm…分布运算结果求和电路,22m...位匹配电路,23m…辅助乘法电路,200m...LUT索引电路,201m...基于位位置的运算电路,202m...求和电路,203m...实部LUT索引电路,204...符号反转电路,205m...实部的基于位位置的运算电路,206m…实部求和电路,207m…虚部LUT索引电路,208m...虚部的基于位位置的运算电路,209m...虚部求和电路。

Claims (8)

1.一种执行积和运算的运算电路,接收数据集X[m]以及作为定点二进制数的N个系数c[n],计算并输出M个积和运算的值z[m],所述数据集X[m]包含M组作为定点二进制数的N个数据x[m,n],其中,m=1,...,M,M为不小于2的整数,n=1,...,N,N为不小于2的整数,所述运算电路包括:
LUT生成电路,被配置为在将所述N个系数c[n]两两配对时,输出针对对中的每一对计算出的值;以及
M个分布运算电路,被配置为针对所述M组中的每一组并行计算并输出所述积和运算的值z[m],所述积和运算的值z[m]是将所述数据集X[m]中的N个数据x[m,n]分别乘以所述N个系数c[n]并对乘积求和的结果,
其中每个所述分布运算电路包括:
多个二项分布运算电路,被配置为基于通过将与本电路相对应的N个数据x[m,n]两两配对而获得的值、通过将所述N个系数c[n]两两配对而获得的值、以及所述LUT生成电路所计算出的值,针对所述对中的每一对并行计算并输出将两个数据x[m,n]分别乘以两个系数c[n]并对乘积求和的二项积和运算的值;
第一求和电路,被配置为对所述多个二项分布运算电路所计算出的值求和;以及
位匹配电路,被配置为执行将所述第一求和电路的求和结果的小数位数与比所述小数位数小的预定小数位数相匹配的处理,并且将处理结果输出为所述积和运算的值z[m],
所述多个二项分布运算电路中的每一个包括:
多个索引电路,针对所述N个数据x[m,n]中的同一对的两个值的每个位位置形成,并且被配置为针对每个位位置从包括0、所述N个系数c[n]中的同一对的两个值、以及由所述LUT生成电路根据所述系数c[n]的两个值计算出的值在内的元素值中,获得与形成所述N个数据x[m,n]中的同一对的两个值的、同一位位置中的两个值相对应的一个元素值;
多个基于位位置的运算电路,被配置为对所述多个索引电路所获得的元素值执行基于位位置的运算;以及
第二求和电路,被配置为输出对所述多个基于位位置的运算电路所计算出的值求和的结果,作为所述二项积和运算的值,以及
在所述多个基于位位置的运算电路之中,与本电路相对应的位位置I小于预定值Lc的基于位位置的运算电路使与本电路相对应的所述索引电路所获得的元素值的最低有效位侧的Lc-I个位无效,其中Lc为大于等于2且小于L的整数。
2.根据权利要求1所述的运算电路,其中,
在所述多个基于位位置的运算电路之中,与本电路相对应的位位置I大于Lc的基于位位置的运算电路执行将I-Lc个位的0插入与本电路相对应的索引电路所获得的元素值的最低有效位侧的左移位运算,
在所述多个基于位位置的运算电路之中,与本电路相对应的位位置I小于Lc的基于位位置的运算电路执行将与本电路相对应的索引电路所获得的元素值向右移位Lc-I个位的右移位运算,以及
所述多个基于位位置的运算电路之中,与本电路相对应的位位置I与Lc一致的基于位位置的运算电路直接输出与本电路相对应的索引电路所获得的元素值。
3.根据权利要求1或2所述的运算电路,其中,
所述LUT生成电路针对N′个对中的每一对,计算通过将所述N个系数c[n]两两配对而获得的值c[2×n′-1]与c[2×n′]之和c[2×n′-1]+c[2×n′]作为值d[n′],其中N′为不大于N/2的最大整数,n′=1,...,N′,以及
每个所述分布运算电路接收所述数据集X[m]、从所述LUT生成电路输出的系数c[n]、以及所述LUT生成电路所计算出的值d[n′],并且输出所述积和运算的值z[m],所述积和运算的值z[m]是将所述数据集X[m]中的与本电路相对应的N个数据x[m,n]分别乘以所述N个系数c[n]并且对乘积求和的结果。
4.根据权利要求1或2所述的运算电路,其中,
每个所述分布运算电路还包括辅助乘法电路,所述辅助乘法电路被配置为当N为奇数时输出计算c[N]×x[m,N]的结果,以及
当N为奇数时,所述第一求和电路对所述多个二项分布运算电路所计算出的值和所述辅助乘法电路所计算出的值求和。
5.根据权利要求1或2所述的运算电路,其中,所述第二求和电路在将其他基于位位置的运算电路所计算出的值的位宽度与所述多个基于位位置的运算电路中的与最高有效位位置相对应的基于位位置的运算电路所计算出的值的位宽度相匹配之后,对所述多个基于位位置的运算电路所计算出的值求和。
6.一种执行积和运算的运算电路,接收M个复数X[m]、以及复数系数C,计算并输出M个复数值Z[m],所述M个复数X[m]中的每一个被划分为实部值x_real[m]和虚部值x_imag[m],所述复数系数C被划分为实部值c_real和虚部值c_imag,所述M个复数值Z[m]包含实部积和运算的结果和虚部积和运算的结果,其中M为不小于2的整数,m=1,...,M,所述运算电路包括:
LUT生成电路,被配置为计算所述复数系数C的实部值c_real与虚部值c_imag之差的值d_sub、以及实部值c_real与虚部值c_imag之和的值d_add;
M个分布运算电路,被配置为针对M个中的每一个,并行计算并输出复数值Y[m],所述复数值Y[m]是将所述复数X[m]中的与本电路相对应的数据中的每一个乘以所述复数系数C并对乘积求和的结果;以及
M个位匹配电路,被配置为执行将从所述M个分布运算电路输出的复数值Y[m]中的实部积和运算结果y_real[m]的小数位数和虚部积和运算结果y_imag[m]的小数位数中的每一个与比这些小数位数小的预定小数位数相匹配的处理,并且输出所述处理的结果,作为构成所述复数值Z[m]的z_real[m]和z_imag[m],
其中每个所述分布运算电路包括:
多个第一索引电路,针对所述复数X[m]的实部值x_real[m]和虚部值x_imag[m]的每个位位置形成,并且被配置为针对每个位位置从包括0、c_real、-c_imag和d_sub在内的元素值中,获得与所述实部值x_real[m]和所述虚部值x_imag[m]中的与本电路相对应的位位置中的两个值相对应的一个元素值;
多个第一基于位位置的运算电路,被配置为对所述多个第一索引电路所获得的元素值执行基于位位置的运算;
第一求和电路,被配置为输出对所述多个第一基于位位置的运算电路所计算出的值求和的结果,作为实部积和运算值y_real[m];
多个第二索引电路,针对所述复数X[m]的实部值x_real[m]和虚部值x_imag[m]的每个位位置形成,并且被配置为针对每个位位置从包括0、c_imag、c_real和d_add在内的元素值中,获得与所述实部值x_real[m]和所述虚部值x_imag[m]中的与本电路相对应的位位置中的两个值相对应的一个元素值;
多个第二基于位位置的运算电路,被配置为对所述多个第二索引电路所获得的元素值执行基于位位置的运算;以及
第二求和电路,被配置为输出对所述多个第二基于位位置的运算电路所计算出的值求和的结果,作为虚部积和运算值y_imag[m],
每个所述分布运算电路针对M个中的每一个,并行计算并输出实部的积和运算c_real×x_real[m]-c_imag×x_imag[m]的结果y_real[m]、以及虚部的积和运算c_imag×x_real[m]+c_real×x_imag[m]的结果y_imag[m],以及
在所述多个第一基于位位置的运算电路、所述多个第二基于位位置的运算电路之中,与本电路相对应的位位置I小于预定值Lc的基于位位置的运算电路使与本电路相对应的所述第一索引电路、所述第二索引电路所获得的元素值的最低有效位侧的Lc-I个位无效,其中Lc为大于等于2且小于L的整数。
7.根据权利要求6所述的运算电路,其中,
在所述多个第一基于位位置的运算电路、所述多个第二基于位位置的运算电路之中,与本电路相对应的位位置I大于Lc的第一基于位位置的运算电路、第二基于位位置的运算电路执行将I-Lc个位的0插入分别与本电路相对应的所述第一索引电路、所述第二索引电路所获得的元素值的最低有效位侧的左移位运算,
在所述多个第一基于位位置的运算电路、所述多个第二基于位位置的运算电路之中,与本电路相对应的位位置I小于Lc的第一基于位位置的运算电路、第二基于位位置的运算电路执行将分别与本电路相对应的所述第一索引电路、所述第二索引电路所获得的元素值向右移位Lc-I个位的右移位运算,以及
在所述多个第一基于位位置的运算电路、所述多个第二基于位位置的运算电路之中,与本电路相对应的位位置I与Lc一致的第一基于位位置的运算电路、第二基于位位置的运算电路直接输出分别与本电路相对应的所述第一索引电路、所述第二索引电路所获得的元素值。
8.根据权利要求6或7所述的运算电路,其中,
所述第一求和电路在将其他第一基于位位置的运算电路所计算出的值的位宽度与所述多个第一基于位位置的运算电路中的与最高有效位位置相对应的第一基于位位置的运算电路所计算出的值的位宽度相匹配之后,对所述多个第一基于位位置的运算电路所计算出的值求和,以及
所述第二求和电路在将其他第二基于位位置的运算电路所计算出的值的位宽度与所述多个第二基于位位置的运算电路中的与最高有效位位置相对应的第二基于位位置的运算电路所计算出的值的位宽度相匹配之后,对所述多个第二基于位位置的运算电路所计算出的值求和。
CN201880085295.3A 2018-01-05 2018-12-18 执行积和运算的运算电路 Active CN111630509B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018000452A JP6863907B2 (ja) 2018-01-05 2018-01-05 演算回路
JP2018-000452 2018-01-05
PCT/JP2018/046496 WO2019135355A1 (ja) 2018-01-05 2018-12-18 演算回路

Publications (2)

Publication Number Publication Date
CN111630509A CN111630509A (zh) 2020-09-04
CN111630509B true CN111630509B (zh) 2023-12-08

Family

ID=67143671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880085295.3A Active CN111630509B (zh) 2018-01-05 2018-12-18 执行积和运算的运算电路

Country Status (4)

Country Link
US (1) US11494165B2 (zh)
JP (1) JP6863907B2 (zh)
CN (1) CN111630509B (zh)
WO (1) WO2019135355A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6995629B2 (ja) * 2018-01-05 2022-01-14 日本電信電話株式会社 演算回路

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6423614A (en) * 1987-07-17 1989-01-26 Sanyo Electric Co Method for constituting low-band digital filter
JP2000132539A (ja) * 1998-10-28 2000-05-12 Matsushita Electric Ind Co Ltd 演算装置
JP2004121263A (ja) * 1998-09-04 2004-04-22 Aventis Pasteur Ltd 子宮頸がんの治療
JP2006157252A (ja) * 2004-11-26 2006-06-15 Canon Inc データ分類方法、多次元補間装置、多次元補間方法、及びコンピュータプログラム
CN101682297A (zh) * 2007-06-04 2010-03-24 Nxp股份有限公司 包含频带选择的数字信号处理电路和方法
JP2011186592A (ja) * 2010-03-05 2011-09-22 Renesas Electronics Corp フィルタ演算器、フィルタ演算方法及び動き補償処理装置
WO2014023871A1 (es) * 2012-08-09 2014-02-13 Universidade De Santiago De Compostela Aparato y método para calcular operaciones de potenciación y extracción de raíces
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN105849690A (zh) * 2014-07-02 2016-08-10 上海兆芯集成电路有限公司 使用第一和第二子运算的分路融合乘积-累加运算

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000062421A1 (en) * 1999-04-14 2000-10-19 Nokia Networks Oy Digital filter and method for performing a multiplication based on a look-up table
JP3875183B2 (ja) * 2002-11-20 2007-01-31 シャープ株式会社 演算装置
US7043515B2 (en) * 2002-12-10 2006-05-09 Isic Corporation Methods and apparatus for modular reduction circuits
US20050201457A1 (en) * 2004-03-10 2005-09-15 Allred Daniel J. Distributed arithmetic adaptive filter and method
JP4783382B2 (ja) * 2006-01-13 2011-09-28 富士通株式会社 モンゴメリ法用乗算剰余計算装置
GB2448744A (en) * 2007-04-26 2008-10-29 Wolfson Microelectronics Plc Look-up table indexing scheme with null values used to expand table to have a power of two number of entries in each cycle of coefficients
KR20120077164A (ko) * 2010-12-30 2012-07-10 삼성전자주식회사 Simd 구조를 사용하는 복소수 연산을 위한 사용하는 장치 및 방법
US9383994B2 (en) * 2011-02-15 2016-07-05 Nec Corporation Co-processor for complex arithmetic processing, and processor system
US10303735B2 (en) * 2015-11-18 2019-05-28 Intel Corporation Systems, apparatuses, and methods for K nearest neighbor search
JP6995629B2 (ja) * 2018-01-05 2022-01-14 日本電信電話株式会社 演算回路

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6423614A (en) * 1987-07-17 1989-01-26 Sanyo Electric Co Method for constituting low-band digital filter
JP2004121263A (ja) * 1998-09-04 2004-04-22 Aventis Pasteur Ltd 子宮頸がんの治療
JP2000132539A (ja) * 1998-10-28 2000-05-12 Matsushita Electric Ind Co Ltd 演算装置
JP2006157252A (ja) * 2004-11-26 2006-06-15 Canon Inc データ分類方法、多次元補間装置、多次元補間方法、及びコンピュータプログラム
CN101682297A (zh) * 2007-06-04 2010-03-24 Nxp股份有限公司 包含频带选择的数字信号处理电路和方法
JP2011186592A (ja) * 2010-03-05 2011-09-22 Renesas Electronics Corp フィルタ演算器、フィルタ演算方法及び動き補償処理装置
WO2014023871A1 (es) * 2012-08-09 2014-02-13 Universidade De Santiago De Compostela Aparato y método para calcular operaciones de potenciación y extracción de raíces
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN105849690A (zh) * 2014-07-02 2016-08-10 上海兆芯集成电路有限公司 使用第一和第二子运算的分路融合乘积-累加运算

Also Published As

Publication number Publication date
US11494165B2 (en) 2022-11-08
CN111630509A (zh) 2020-09-04
US20210064340A1 (en) 2021-03-04
JP6863907B2 (ja) 2021-04-21
JP2019121172A (ja) 2019-07-22
WO2019135355A1 (ja) 2019-07-11

Similar Documents

Publication Publication Date Title
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
CA1332196C (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5177703A (en) Division circuit using higher radices
CN111630509B (zh) 执行积和运算的运算电路
CN108334304B (zh) 数字递归除法
US20170010862A1 (en) Apparatus and method for performing division
KR100329914B1 (ko) 제산장치
Laxman et al. FPGA implementation of different multiplier architectures
WO2021035230A2 (en) Methods and apparatus for quotient digit recoding in a high-performance arithmetic unit
KR100853787B1 (ko) 가변 진법 나눗셈 연산기
Rezai et al. Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers
Awasthi et al. Hybrid signed digit arithmetic in efficient computing: A comparative approach to performance assay
Sharoun Residue number system (RNS)
Iyer et al. Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics
RU2751802C1 (ru) Умножитель по модулю
Kumm et al. Reduced complexity single and multiple constant multiplication in floating point precision
ASHER et al. Adaptive booth algorithm for three-integers multiplication for reconfigurable mesh
Manderson et al. Runtime reconfigurable DSP unit using one's complement and Minimum Signed Digit
GHANCHI et al. Power and Area Comparative Analysis of FIR Filter Design
REDDY et al. Realization of Cost Effective FIR Filter for Power Critical Applications
Ambika et al. Design of Fir Filter Using Area and Power Efficient Truncated Multiplier
KR950015180B1 (ko) 고속연산형 가산기
Vishwanath Optimized Counter Design for Accelerated Summation in Digital Signal Processing Systems
Ram et al. Efficient Hardware Design of Parameterized Posit Multiplier and Posit Adder
JP2777265B2 (ja) 高基数開平演算装置

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
CB02 Change of applicant information

Address after: Kanagawa, Japan

Applicant after: NTT Innovative Devices Co.,Ltd.

Applicant after: NIPPON TELEGRAPH AND TELEPHONE Corp.

Address before: Kanagawa, Japan

Applicant before: NTT Electronics Corp.

Applicant before: NIPPON TELEGRAPH AND TELEPHONE Corp.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant