CN107533462A - 浮点运算装置以及方法 - Google Patents
浮点运算装置以及方法 Download PDFInfo
- Publication number
- CN107533462A CN107533462A CN201680023173.2A CN201680023173A CN107533462A CN 107533462 A CN107533462 A CN 107533462A CN 201680023173 A CN201680023173 A CN 201680023173A CN 107533462 A CN107533462 A CN 107533462A
- Authority
- CN
- China
- Prior art keywords
- unit
- input
- output
- computing unit
- units
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/506—Indexing scheme relating to groups G06F7/506 - G06F7/508
- G06F2207/5063—2-input gates, i.e. only using 2-input logical gates, e.g. binary carry look-ahead, e.g. Kogge-Stone or Ladner-Fischer adder
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
一种方法包括:接收第一N位无符号数和第二N位无符号数;接收指示m位移位操作的控制信号,并在加和移位装置中对第一N位无符号数、第二N位无符号数和控制信号进行处理,其中在加和移位装置中并行执行加法/减法运算和m位移位操作。
Description
相关申请的交叉引用
本专利申请要求于2015年5月29日提交的题为“Floating Point ComputationApparatus and Method”的美国专利申请第14/726,246号的优先权,其通过引用并入本文中就如同在本文中全部再现一样。
技术领域
本发明涉及中央处理单元和数字信号处理器设计,并且在特定实施方式中,涉及浮点加法和减法装置以及方法。
背景技术
浮点算术运算被广泛地用于诸如中央处理单元(Central Process Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)等的数字应用中。实数可以用浮点表示法写。例如,实数“a”可以由以下公式表示:
a=(-1)S·Ma·bq (1)
其中,S是实数“a”的符号;Ma是实数“a”的尾数;b是实数的基数(2或10)并且q是实数“a”的指数。
诸如加法/减法处理的浮点算术运算可以由各种逻辑电路执行。加法/减法过程可以包括计算两个实数的指数差,基于指数差对齐这两个实数(例如,向右移动具有较小指数的实数),加上/减去对准的尾数,通过使结果向左移位等于前导零的数目的数目的位置来对结果进行归一化并且根据指定的舍入模式对结果进行舍入。
发明内容
这些问题以及其他问题通常通过本发明的优选实施方式解决或规避,技术优点通常通过本发明的优选实施方式来实现,本发明的优选实施方式提供了用于计算(例如,加法运算、减法运算等)两个二进制数的装置和方法。
根据实施方式,一种装置包括:输入块,其被配置成接收第一N位无符号数和第二N位无符号数,其中所述输入块包括N个传播和生成单元。
该装置还包括:以行和列的形式布置的多个计算单元,其中,列的数目等于N,并且行的数目等于log2 (N),其中,每行具有N个单元并且具有索引ri,并且其中,变量d等于2ri,并且其中,每个计算单元具有连接至在前一行中的三个单元的三组输入,并且其中,第一组输入连接至在前一行中的第一计算单元的输出并且与所述计算单元竖向对准,第二组输入连接至与第一计算单元相距d个单元的第二计算单元的输出,并且第三组输入连接至与第一计算单元相距2d个单元的第三计算单元的输出;以及包括多个异或门的输出块。
根据另一实施方式,一种系统包括:输入块,其被配置成接收第一N位无符号数、第二N位无符号数和控制信号,其中所述输入块包括N个传播和生成单元;以行和列的形式布置并且耦接至所述输入块的多个计算单元,其中所述计算单元被配置成基于所述控制信号执行加法运算和移位操作,并且向所述第一N位无符号数和所述第二N位无符号数并行地施加所述加法运算和所述移位操作;以及输出块,其包括耦接至所述多个计算单元的最后一行的多个异或门。
根据又一实施方式,一种方法包括:接收第一N位无符号数和第二N位无符号数;接收指示m位移位操作的控制信号;以及在加和移位装置中对第一N位无符号数、第二N位无符号数和控制信号进行处理,其中在加法-移位装置中并行地执行加法或减法运算和m位移位操作。
本发明的优选实施方式的优点是通过具有2输入与非门的(3·log2(N)+4)级的加和移位装置实现两个二进制数的快速运算。这样的装置有助于减少逻辑门延迟,从而提高浮点算术运算的效率。
前面已经相当广泛地概述了本发明的特征和技术优点,以便可以更好地理解随后的本发明的详细描述。在下文中将描述形成本发明的权利要求的主题的本发明的附加特征和优点。本领域技术人员应当理解的是,所公开的构思和具体实施方式可以容易地用作修改或设计用于实现本发明的相同目的的其他结构或过程的基础。本领域技术人员还应该认识到,这样的等同结构不背离所附权利要求中阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考结合附图进行的以下描述,其中:
图1示出了根据本公开内容的各种实施方式的加和移位装置的框图;
图2示出了根据本公开内容的各种实施方式的8位加和移位装置的框图;
图3示出了根据本公开内容的各种实施方式的图2所示的传播和生成单元的示意图;
图4示出了根据本公开内容的各种实施方式的图2所示的PS单元的示意图;
图5示出了根据本公开内容的各种实施方式的图2所示的8位加和移位装置的第一行中的PS单元的示意图;
图6示出了根据本公开内容的各种实施方式的图2所示的GS单元的示意图;
图7示出了根据本公开内容的各种实施方式的图2所示的8位加和移位装置的第一行中的GS单元的示意图;
图8示出了根据本公开内容的各种实施方式的两个对准的尾数的减法过程;
图9示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的第一行的示意图;
图10示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的第二行的示意图;
图11示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的第三行的示意图;
图12示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的桶形移位器的框图;
图13示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的输出块的示意图;以及
图14示出了根据本公开内容的各种实施方式的算术运算的流程图。
除非另有说明,否则不同附图中的相应数字和符号通常指相应的部分。绘制附图以清楚地示出各种实施方式的相关方面,并且不一定按比例绘制。
具体实施方式
下面详细讨论当前优选实施方式的制造和使用。然而,应当理解的是,本发明提供了可以在各种各样的具体上下文中实施的许多可应用的发明构思。所讨论的具体实施方式仅仅是说明制造和使用本发明的具体方式,而不限制本发明的范围。
将参照在特定上下文中的优选实施方式描述本发明,即在数字电路应用中的加法/减法装置。然而,本发明还可以应用于诸如中央处理单元(Central Processing Unit,CPU)、数字信号处理(Digital Signal Processing,DSP)等的应用中的各种浮点算术运算。在下文中,将参照附图详细说明各种实施方式。
图1示出了根据本公开内容的各种实施方式的加和移位装置的框图。加和移位装置100具有四个输入和一个输出,如图1所示。第一输入A被配置成接收二进制格式的第一无符号数。在一些实施方式中,第一无符号数具有从位0到位(n-1)的n个位。第一无符号数的二进制表示为A[0:n-1]。第二输入B被配置成接收二进制格式的第二无符号数。第二无符号数具有从位0到位(n-1)的n个位。第二无符号数的二进制表示是B[0:n-1]。在一些实施方式中,第一无符号数和第二无符号数是待被加和或减去的对齐的尾数。
第三输入被配置成接收指示加法和减法运算的初始进位cin。更具体地,当对第一无符号数和第二无符号数执行加法运算时,将cin设置为二进制符号0。另一方面,当对第一无符号数和第二无符号数执行减法运算时,将cin设置为二进制符号1。第四输入被配置成接收控制信号Sel。
控制信号Sel用于在加法/减法运算中提供移位值。在一些实施方式中,移位值由前导零预测/前导零检测(Leading Zero Anticipation/Leading Zero Detection,LZA/LZD)单元产生。LZA/LZD单元可以是包括加和移位装置100的浮点(floating point,FP)运算电路的一部分。LZA/LZD单元的操作原理是本领域公知的,因此本文中不再进一步讨论细节以避免不必要的重复。
控制信号Sel具有从位0到位(m-1)的m个位。在一些实施方式中,m由以下公式给出:
m=log2(n) (2)
其中,n是第一无符号数的位数。
加和移位装置100的输出执行两个n位无符号数的加法或减法。加和移位装置100的输出生成二进制格式的数。输出Out具有从位0到位n的(n+1)位。基于控制信号Sel,通过向左移位对输出Out[0:n]进行归一化以消除前导零。在加和移位装置100中并行地执行移位操作和加法/减法运算。加和移位装置100的最长延迟路径等于(3m+4)级的2输入与非门。
加和移位装置100包括一行传播(Propagate,P)和生成(Generate,G)模块,m行传播和移位(Propagate and Shift,PS)单元与生成和移位(Generate and Shift,GS)单元。PS单元和GS单元不仅用于执行加法/减法运算,而且用于使能移位操作。更具体地,移位操作与加法/减法运算并行地执行。以下将参照图2至图13详细描述加和移位装置100的详细工作原理和示意图。
图2示出了根据本公开内容的各种实施方式的8位加和移位装置的框图。8位加和移位装置200接收两个无符号8位数(例如,图2所示的A和B),并生成9位输出数Out。8位加和移位装置200包括四行,即行201、行210、行211和行212。如图2所示,这四行包括多个单元。这些单元以列和行的形式布置。图2中所示的列的索引在0到7的范围内。
行201包括八个传播和生成单元,每个单元包括耦接至两个无符号8位数的两个相应位的两个输入。例如,行201的第四单元分别接收两个输入位A(3)和B(3),并且生成G(0,3)和P(0,3)。下面将参照图3描述传播和生成单元的详细示意图。
行210包括八个单元,每个单元与行201中的相应的传播和生成单元竖向对准。行201中的相应的传播和生成单元被称为前一单元,因为其放置在行210的单元之上并且与行210中的单元竖向对准。例如,行201的第四单元是行210的第四单元(单元GS(0,3)和PS(0,3))的前一单元。
行210的每个单元包括传播和移位(PS)单元以及生成和移位(GS)单元。下面将分别参照图5和图7详细描述行210的PS单元和GS单元的示意图。
行210的每个单元具有连接至行201的单元的输出的三个输入。单元(例如,包括GS(0,7)和PS(0,7)的单元)的第一输入连接至前一单元(例如,包括G(0,7)和P(0,7)的单元)的输出。单元(例如,包括GS(0,7)和PS(0,7)的单元)的第二输入连接至直接紧邻前一单元的单元的输出。换言之,单元的第二输入连接至与前一单元相距一个单元的单元(例如,包括G(0,6)和P(0,6)的单元)的输出。单元(例如,包括GS(0,7)和PS(0,7)的单元)的第三输入连接至与前一单元相距两个单元的单元(例如,包括G(0,5)和P(0,5)的单元)的输出。
总而言之,行210的每个单元连接至其在行201中的前一单元、行201中的与前一单元相距d个位置的第一单元以及行201中的与前一单元相距2d个位置的第二单元。在一些实施方式中,d等于2ri,其中ri是行210的行索引。行210具有行索引0。因此,在行210中,每个单元具有连接至其前一单元的输入、连接至与前一单元相距一个单元的第一单元的输入以及连接至与前一单元相距两个单元的第二单元的输入。根据这个连接原则,行210的第一单元和第二单元的一些输入连接至不存在的单元。行210的第一单元和第二单元的这些输入被设置为0,如图2所示。
行211包括八个单元,每个单元与行210中的相应单元竖向对准。因为行210中的相应单元放置在行211中的单元上方并与行211中的单元竖向对准,所以行210中的相应单元被称为前一单元。行211的每个单元包括PS单元和GS单元。下面将分别参照图4和图6详细描述行211的PS单元和GS单元的示意图。
行211具有行索引1。因此,行211的d等于2。如图2所示,行211的每个单元具有三个输入。单元(例如,包括GS(1,7)和PS(1,7)的单元)的第一输入连接至行210中的前一单元(例如,包括GS(0,7)和PS(0,7)的单元)的输出。单元(例如,包括GS(1,7)和PS(1,7)的单元)的第二输入连接至与前一单元(例如,包括GS(0,7)和PS(0,7)的单元)相距两个单元(d=2)的单元(例如,包括GS(0,5)和PS(0,5)的单元)的输出。单元(例如,包括GS(1,7)和PS(1,7)的单元)的第三输入连接至与前一单元相距四个单元(2d=4)的单元(例如,包括GS(0,3)和PS(0,3)的单元)的输出。行211中单元的一些输入连接至不存在的单元。这些输入被设置为0,如图2所示。
行212包括八个单元,每个单元与行211中的相应单元竖向对准。行211中的相应单元被称为前一单元。行212的每个单元包括GS单元。下面将参照图6详细描述行212的GS单元的示意图。
行212具有行索引2。因此,行211的d等于4。如图2所示,行212的每个单元具有三个输入。单元(例如,包括GS(2,7)的单元)的第一输入连接至在行211中前一单元(例如,包括GS(1,7)和PS(1,7)的单元)的输出。单元(例如,包括GS(2,7)的单元)的第二输入连接至与前一单元(例如,包括GS(1,7)和PS(1,7)的单元)相距四个单元(d=4)的单元(例如,包括GS(1,3)和PS(1,3)的单元)的输出。单元(例如,包括GS(2,7)的单元)的第三输入连接至与前一单元相距八个单元(2d=8)的单元的输出。由于连接至第三输入的单元不存在,所以包括GS(2,7)的单元的第三输入被设置为0,如图2所示。同样,行212中的其他单元的一些输入连接至不存在的单元。行212中的这些输入被设置为0,如图2所示。
8位加和移位装置200还包括输出块220。输出块220包括九个异或(XOR)门。如图2所示,第一异或门具有连接至桶形移位器214的输出的第一输入和连接至GS(2,-1)的第二输入。如图2所示,GS(2,-1)由包括多个逻辑门的逻辑电路生成。逻辑门接收指示加法和减法运算的初始进位cin和指示加法/减法运算中的移位值的3位的控制信号Sel(例如Sel(0)、Sel(1)和Sel(2)),并生成GS(0,-1)、GS(1,-1)和GS(2,-1),如图2所示的。
输出块220的其他异或门具有连接至行212中前一单元的输出的第一输入和连接至桶形移位器214的输出的相应位的第二输入。下面将参照图12至图13描述输出块220和桶形移位器214的具体示意图。
应当注意的是,图2示出了可以包括数百个这样的单元的每行中的仅八个单元。本文所示的每行中的单元的数目仅仅是为了清楚地示出各种实施方式的创造性方面的目的而进行限制。本申请的各种实施方式不限于每行中的任何特定数目的单元。
此外,图2中所示的图仅是示例,其不应该不当地限制权利要求的范围。本领域的普通技术人员将认识到许多变化方式、替代方式和修改方式。例如,图2所示的8位加和移位装置200仅仅是一个实施方式,并且可以采用关于包括具有不同位数的算术运算的加和移位装置的其他配置。
图3示出了根据本公开内容的各种实施方式的图2所示的传播和生成单元的示意图。传播和生成单元300包括与门302和异或门304。传播和生成单元300具有连接至A(ci)的第一输入和连接至B(ci)的第二输入,其中ci表示第一无符号数A的一个位,B(ci)是第二无符号数B的相应位。A(ci)和B(ci)两者被馈送到与门302。与门302的输出是G(0,ci)。同样,A(ci)和B(ci)两者被馈送到异或门304。异或门304的输出是P(0,ci)。
图4示出了根据本公开内容的各种实施方式的图2所示的PS单元的示意图。PS单元400包括非门402、第一与门404、第二与门406和或门408。
PS单元400具有四个输入,即Sel(ri)、PS(ri-1,ci)、PS(ri-1,ci-d)和PS(ri-1,ci-2d),其中ri表示PS单元所在行的索引;ci表示PS单元所在列的索引;d是一个变量。在一些实施方式中,d由以下公式给出:
d=2ri (3)
如图4所示,第一与门404具有三个输入。第一与门404的第一输入通过非门402连接至Sel(ri)。第一与门404的第二输入和第三输入分别连接至PS(ri-1,ci)和PS(ri-1,ci-d)。第二与门406具有三个输入。第二与门406的第一输入连接至Sel(ri)。第二与门406的第二输入和第三输入分别连接至PS(ri-1,ci-d)和PS(ri-1,ci-2d)。第一与门404和第二与门406的输出被馈送到或门408。或门408的输出生成PS(ri,ci)。
图5示出了根据本公开内容的各种实施方式的图2中所示的8位加和移位装置的第一行中PS单元的示意图。除了PS单元500的输入分别连接至P(0,ci)、P(0,ci-1)和P(0,ci-2)之外,PS单元500的示意图类似于图4中所示的PS单元400的示意图。应当注意的是,由图3所示的传播和生成单元生成P(0,ci)、P(0,ci-1)和P(0,ci-2)。
图6示出了根据本公开内容的各种实施方式的图2所示的GS单元的示意图。GS单元600包括非门602,与门612、614、616和618,或非门622和624以及与非门632。GS单元600具有六个输入,即Sel(ri)、PS(ri-1,ci)、GS(ri-1,ci-d)、GS(ri-1,ci)、PS(ri-1,ci-d)和GS(ri-1,ci-2d)。
如图6所示,第一与门612具有三个输入。第一与门612的第一输入通过非门602连接至Sel(ri)。第一与门612的第二输入和第三输入分别连接至PS(ri-1,ci)和GS(ri-1,ci-d)。第二与门614具有两个输入。第二与门614的第一输入通过非门602连接至Sel(ri)。第二与门614的第二输入连接至GS(ri-1,ci)。
第三与门616具有三个输入。第三与门616的第一输入连接至Sel(ri)。第三与门616的第二输入和第三输入分别连接至PS(ri-1,ci-d)和GS(ri-1,ci-2d)。第四与门618具有两个输入。第四与门618的第一输入连接至Sel(ri)。第四与门618的第二输入连接至GS(ri-1,ci-d)。
第一与门612和第二与门614的输出被馈送到第一或非门622。第三与门616和第四与门618的输出被馈送到第二或非门624。与非门632具有分别连接至第一或非门622和第二或非门624的输出的两个输入。与非门632的输出是GS(ri,ci)。
图7示出了根据本公开内容的各种实施方式的图2所示的8位加和移位装置的第一行中的GS单元的示意图。除了GS单元700的输入分别连接至P(0,ci)、G(0,ci-1)、G(0,ci)、P(0,ci-1)和G(0,ci-2)之外,GS单元700的示意图类似于图6所示的GS单元600的示意图。应当注意的是,由图3所示的传播和生成单元生成P(0,ci)、G(0,ci-1)、G(0,ci)、P(0,ci-1)和G(0,ci-2)。
图8示出了根据本公开内容的各种实施方式的两个对齐的尾数的减法过程。两个对齐的尾数被馈送到与图2所示的加和移位装置类似的8位加和移位装置800中。对齐的尾数是两个无符号数A和B,每个具有从位0到位7的8个位。
该减法过程的移位值由控制信号Sel提供。在一些实施方式中,Sel由LZA/LZD单元(未示出)生成。
在减法运算中,第一数字等于二进制格式的01110001。第二数字等于二进制格式的01101001。可以通过反转第二数字的所有位获得补码B来实现减法过程,补码B是二进制格式的10010110。然后,A、补码B和1被加在一起以获得第一数字与第二数字的差。
在上面的示例中,补码等于二进制格式的10010110。A、补码和1的总和等于二进制格式的000010000。LZA/LZD单元(未示出)提供指示结果应当向左移位五位的控制信号Sel。因此,8位加和移位装置800的输出等于二进制格式的100000000。
图9示出了根据本公开内容的各种实施方式的图8中所示的8位加和移位装置的第一行的示意图。行201包括八个传播和生成单元,每个单元包括耦接至两个无符号8位数A和B的两个相应位的两个输入。无符号8位数A和B由与门302和异或门304处理,如图3所示。传播单元的输出是二进制格式的11100111,如图9所示。生成单元的输出是二进制格式的00010000,如图9所示。
行210包括八个单元。每个单元包括PS单元和GS单元。每个单元有三组输入。行210的行索引等于0,如图9所示。再次参考公式(3),行210的变量d等于1。换言之,三组输入连接至行201中的前一单元、与前一单元相距一个单元的单元以及与前一单元相距两个单元的单元。
例如,GS(0,2)和PS(0,2)的单元具有三组输入。这三组输入分别连接至P(0,2)和G(0,2)的单元的输出、P(0,1)和G(0,1)的单元的输出以及P(0,0)和G(0,0)的单元的输出。此外,GS(0,0)和PS(0,0)的单元具有三组输入。这三组输入分别连接至P(0,0)和G(0,0)的单元的输出、P(0,-1)和G(0,-1)的单元的输出以及单元的P(0,-2)和G(0,-2)的单元的输出。如图9所示,G(0,-1)等于Cin。P(0,-1)、P(0,-2)和G(0,-2)被设置为0,如图9所示。
行210中的八个单元接收控制信号Sel的第一位(位0),其等于1,如图9所示。行210中的八个单元的输入信号由图5和图7所示的逻辑门处理。PS单元的输出是二进制格式的10001100,如图9所示。GS单元的输出是二进制格式的01100011,如图9所示。
图10示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的第二行的示意图。行211包括八个单元。每个单元包括PS单元和GS单元。每个单元有三组输入。行211的行索引等于1。再次参考公式(3),行211的变量d等于2,如图10所示。换言之,每个单元的三组输入连接至行210中的前一单元、与前一单元相距两个单元的单元以及与前一单元相距四个单元的单元。例如,GS(1,1)和PS(1,1)的单元具有三组输入。这三组输入分别连接至PS(0,1)和GS(0,1)的单元的输出、PS(0,-1)和GS(0,-1)的单元的输出以及PS(0,-3)和GS(0,-3)的单元的输出。再次参考图9,由G(0,-1)和Sel(0)生成GS(0,-1)。PS(0,-1)、PS(0,-3)和GS(0,-3)被设置为0,如图10所示。
行211中的八个单元接收控制信号Sel的第二位(位1),其等于0,如图10所示。行211中的八个单元的输入信号由图4和图6所示的逻辑门处理。PS单元的输出是二进制格式的00000000,如图10所示。GS单元的输出是二进制格式的11101111,如图10所示。
图11示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的第三行的示意图。行212包括八个单元。每个单元包括PS单元和GS单元。每个单元有三组输入。行212的行索引等于2。再次参考公式(3),行212的变量d等于4,如图11所示。换言之,每个单元的三组输入连接至行211中的前一单元、与前一单元相距四个单元的单元以及与前一单元相距八个单元的单元。例如,GS(2,4)和PS(2,4)的单元具有三组输入。这三组输入分别连接至PS(1,4)和GS(1,4)的单元的输出、PS(1,0)和GS(1,0)的单元的输出以及PS(1,-4)和GS(1,-4)的单元的输出。PS(1,-4)和GS(1,-4)被设置为0,如图11所示。
行212中的八个单元接收控制信号Sel的第三位(位2),其等于1,如图11所示。行212中的八个单元的输入信号由图4和图6所示的逻辑门处理。PS单元的输出是二进制格式的00000000,如图11所示。GS单元的输出是二进制格式的11110000,如图11所示。
图12示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的桶形移位器的框图。桶形移位器具有连接至传播单元的8个位的8个输入和配置成接收“0”的输入,如图12所示。桶形移位器还接收控制信号Sel,其等于二进制格式的101。控制信号Sel表示桶形移位器的输入二进制数应当向左移位五位。如图12所示,在将输入二进制数011100111左移5位后,输出二进制数为011100000。
图13示出了根据本公开内容的各种实施方式的图8所示的8位加和移位装置的输出块的示意图。输出块包括九个异或(exclusive OR,XOR)门。如图13所示,第一异或门具有连接至图12所示的桶形移位器的第一输出的第一输入和连接至GS(2,-1)的第二输入。再次参考图11,GS(2,-1)由包括接收来自GS(1,-1)、G(0,-1)和Sel(2)的输入信号的多个逻辑门的逻辑电路生成。
输出块的其他异或门具有连接至行212中的前一单元的GS单元的输出的第一输入和连接至桶形移位器的输出处的相应位的第二输入。输出块的输出为二进制格式的100000000。
图14示出了根据本公开内容的各种实施方式的算术运算的流程图。在步骤1402处,接收第一N位无符号数和第二N位无符号数。在步骤1404处,接收指示m位移位操作的控制信号。在步骤1406处,在加和移位装置中对第一N位无符号数、第二N位无符号数和控制信号进行处理,其中在加和移位装置中并行执行加法或减法运算以及m位移位操作。在步骤1408处,在加和移位装置的输出生成二进制数,其中该二进制数具有(N+1)位。
加和移位装置包括:输入块,其被配置成接收第一N位无符号数和第二N位无符号数,其中所述输入块包括N个传播和生成单元;以行和列的形式布置的多个计算单元,其中,列的数目等于N,并且行的数目等于log2(N),其中,每行具有N个单元并且具有索引ri,并且其中,变量d等于2ri,并且其中,每个计算单元具有连接至在前一行中的三个单元的三组输入,并且其中,第一组输入连接至在前一行中的第一计算单元的输出并与所述计算单元竖向对准,第二组输入连接至与第一计算单元相距d个单元的第二计算单元的输出,并且第三组输入连接至与第一计算单元相距2d个单元的第三计算单元的输出;以及包括多个异或门的输出块。
尽管已经详细描述了本发明的实施方式及其优点,但是应当理解的是,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以在此进行各种改变,替换和更改。
此外,本申请的范围不旨在限于说明书中描述的工艺、设备、产品,物质组成、装置、方法和步骤的特定实施方式。本领域普通技术人员根据本发明的公开内容将容易地理解,根据本发明可以实现、执行与本文所描述的相应实施方式的功能相同的功能或者实现与本文所描述的相应实施方式的结果基本相同的结果的目前存在或待被开发的工艺、设备、产品,物质组成、装置、方法和步骤。因此,所附权利要求旨在将这些工艺、设备、产品,物质组成、装置、方法和步骤包括在其范围内。
Claims (20)
1.一种装置,包括:
输入块,其被配置成接收第一N位无符号数和第二N位无符号数,其中,所述输入块包括N个传播和生成单元;
以行和列的形式布置的多个计算单元,其中,所述列的数目等于N,并且所述行的数目等于log2 (N),其中,每行具有N个单元并且具有索引ri,并且其中,变量d等于2ri,并且其中,每个计算单元具有连接至在前一行中的三个单元的三组输入,并且其中:
第一组输入连接至在所述前一行中的第一计算单元的输出并与所述计算单元竖向对准;
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出;并且
第三组输入连接至与所述第一计算单元相距2d个单元的第三计算单元的输出;以及
输出块,其包括多个异或门。
2.根据权利要求1所述的装置,其中:
所述传播和生成单元包括与门和异或门,其中:
所述与门的第一输入连接至所述异或门的第一输入;并且
所述与门的第二输入连接至所述异或门的第二输入。
3.根据权利要求1所述的装置,其中:
所述计算单元包括传播和移位(PS)单元以及生成和移位(GS)单元。
4.根据权利要求3所述的装置,其中:
所述PS单元包括非门、第一与门、第二与门和或门,并且其中:
所述非门被配置成接收控制信号;
所述第一与门具有:连接至所述非门的输出的第一输入,被配置成接收来自所述第一计算单元的PS单元的输出信号的第二输入,以及被配置成接收来自所述第二计算单元的PS单元的输出信号的第三输入;
所述第二与门具有:被配置成接收所述控制信号的第一输入,被配置成接收来自所述第二计算单元的所述PS单元的所述输出信号的第二输入,以及被配置成接收来自所述第三计算单元的PS单元的输出信号的第三输入;以及
所述或门具有连接至所述第一与门的输出的第一输入和连接至所述第二与门的输出的第二输入。
5.根据权利要求3所述的装置,其中:
所述GS单元包括非门、第一与门、第二与门、第三与门、第四与门、第一或非门、第二或非门以及与非门,并且其中:
所述第一或非门连接至所述第一与门的输出和所述第二与门的输出;
所述第二或非门连接至所述第三与门的输出和所述第四与门的输出;并且
所述与非门连接至所述第一或非门的输出和所述第二或非门的输出。
6.根据权利要求5所述的装置,其中:
所述非门被配置成接收控制信号;
所述第一与门具有:连接至所述非门的输出的第一输入,被配置成接收来自所述第一计算单元的PS单元的输出信号的第二输入,以及被配置成接收来自所述第二计算单元的GS单元的输出信号的第三输入;
所述第二与门具有连接至所述非门的输出的第一输入和被配置成接收来自所述第一计算单元的GS单元的输出信号的第二输入;
所述第三与门具有:被配置成接收所述控制信号的第一输入,被配置成接收来自所述第二计算单元的PS单元的输出信号的第二输入,以及被配置成接收来自所述第三计算单元的GS单元的输出信号的第三输入;并且
所述第四与门具有被配置成接收所述控制信号的第一输入和被配置成接收来自所述第二计算单元的所述GS单元的所述输出信号的第二输入。
7.根据权利要求1所述的装置,还包括:
桶形移位器,其被配置成接收控制信号和二进制数,并且将所述二进制数向左移位由所述控制信号指示的位数。
8.根据权利要求7所述的装置,其中:
所述输出块的异或门具有连接至所述计算单元的最后一行的GS单元的输出的第一输入和连接至所述桶形移位器的输出的相应位的第二输入。
9.根据权利要求7所述的装置,其中:
所述桶形移位器的所述输出具有(N+1)位。
10.根据权利要求1所述的装置,其中:
所述多个计算单元被配置成使得向所述第一N位无符号数和所述第二N位无符号数并行施加加法/减法运算和移位过程。
11.一种系统,包括:
输入块,其被配置成接收第一N位无符号数、第二N位无符号数和控制信号,其中所述输入块包括N个传播和生成单元;
以行和列的形式布置并且耦接至所述输入块的多个计算单元,其中,所述计算单元被配置成基于所述控制信号执行加法运算和移位操作,并且向所述第一N位无符号数和所述第二N位无符号数并行地施加所述加法运算和所述移位操作;以及
输出块,其包括耦接至所述多个计算单元的最后一行的多个异或门。
12.根据权利要求11所述的系统,其中:
所述列的数目等于N;并且
所述行的数目等于log2(N)。
13.根据权利要求11所述的系统,其中:
每行具有N个单元并且具有索引ri,并且其中,变量d等于2ri,并且其中,每个计算单元具有连接至在前一行中的三个单元的三组输入,并且其中:
第一组输入连接至在所述前一行中的第一计算单元的输出并与所述计算单元竖向对准;
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出;并且
第三组输入连接至与所述第一计算单元相距2d个单元的第三计算单元的输出。
14.根据权利要求11所述的系统,其中:
通过所述控制信号确定所述移位操作,并且其中,通过前导零预测/前导零检测单元生成所述控制信号。
15.一种方法,包括:
接收第一N位无符号数和第二N位无符号数;
接收指示m位移位操作的控制信号;以及
在加和移位装置中对所述第一N位无符号数、所述第二N位无符号数和所述控制信号进行处理,其中在所述加和移位装置中并行执行加法或减法运算和所述m位移位操作。
16.根据权利要求15所述的方法,其中所述加和移位装置包括:
输入块,其被配置成接收第一N位无符号数和第二N位无符号数,其中,所述输入块包括N个传播和生成单元;
以行和列的形式布置的多个计算单元,其中,所述列的数目等于N,并且所述行的数目等于log2(N),其中每行具有N个单元并且具有索引ri,并且其中,变量d等于2ri,并且其中,每个计算单元具有连接至在前一行中的三个单元的三组输入;并且其中:
第一组输入连接至在所述前一行中的第一计算单元的输出并与所述计算单元竖向对准;
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出;并且
第三组输入连接至与所述第一计算单元相距2d个单元的第三计算单元的输出;以及
输出块,其包括多个异或门。
17.根据权利要求15所述的方法,还包括:
在所述加和移位装置的输出处生成二进制数,其中所述二进制数具有(N+1)位。
18.根据权利要求15所述的方法,还包括:
接收指示算术运算的初始进位。
19.根据权利要求18所述的方法,其中:
响应于减法运算,所述初始进位被设置为1;并且
响应于加法运算,所述初始进位被设置为0。
20.根据权利要求15所述的方法,还包括:
通过前导零预测/前导零检测单元生成所述控制信号。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/726,246 | 2015-05-29 | ||
US14/726,246 US9836278B2 (en) | 2015-05-29 | 2015-05-29 | Floating point computation apparatus and method |
PCT/CN2016/073816 WO2016192412A1 (en) | 2015-05-29 | 2016-02-15 | Floating point computation apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533462A true CN107533462A (zh) | 2018-01-02 |
CN107533462B CN107533462B (zh) | 2020-07-24 |
Family
ID=57397078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680023173.2A Active CN107533462B (zh) | 2015-05-29 | 2016-02-15 | 浮点运算装置以及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9836278B2 (zh) |
EP (1) | EP3289445B1 (zh) |
CN (1) | CN107533462B (zh) |
WO (1) | WO2016192412A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4488252A (en) * | 1982-02-22 | 1984-12-11 | Raytheon Company | Floating point addition architecture |
US20040225706A1 (en) * | 2003-05-05 | 2004-11-11 | Harris David L. | Parallel prefix networks that make tradeoffs between logic levels, fanout and wiring racks |
CN102243577A (zh) * | 2010-05-10 | 2011-11-16 | 上海华虹集成电路有限责任公司 | 一种快速实现浮点加法的电路 |
CN102804128A (zh) * | 2009-05-27 | 2012-11-28 | 超威半导体公司 | 执行饱和乘法和饱和乘加运算的算术处理单元及方法 |
CN102855117A (zh) * | 2011-06-29 | 2013-01-02 | Arm有限公司 | 浮点加法器 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8910960D0 (en) | 1989-05-12 | 1989-06-28 | Secr Defence | Digital processor for two's complement computations |
US5339447A (en) | 1989-11-17 | 1994-08-16 | Texas Instruments Incorporated | Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data |
JP3502302B2 (ja) | 1999-07-16 | 2004-03-02 | 日本電信電話株式会社 | 周波数シンセサイザ |
US6665698B1 (en) | 2000-05-12 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | High speed incrementer/decrementer |
EP1296223A3 (en) | 2001-09-24 | 2005-09-14 | Broadcom Corporation | Adder incrementer circuit |
US6591286B1 (en) * | 2002-01-18 | 2003-07-08 | Neomagic Corp. | Pipelined carry-lookahead generation for a fast incrementer |
DE10216240A1 (de) | 2002-04-12 | 2003-10-30 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung |
US7308471B2 (en) | 2003-03-28 | 2007-12-11 | Arithmatica Limited | Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding |
US7475301B2 (en) | 2003-05-09 | 2009-01-06 | Hewlett-Packard Development Company, L.P. | Increment/decrement circuit for performance counter |
CN1591824A (zh) | 2003-08-26 | 2005-03-09 | 中国科学院微电子中心 | 40位带舍入功能的快速累加累减器电路实现结构 |
US7447727B2 (en) * | 2004-06-28 | 2008-11-04 | Intel Corporation | Recursive carry-select topology in incrementer designs |
US7743308B2 (en) | 2005-02-09 | 2010-06-22 | Adaptec, Inc. | Method and system for wire-speed parity generation and data rebuild in RAID systems |
US8214416B2 (en) | 2008-07-28 | 2012-07-03 | Agere Systems Inc. | Floating-point addition acceleration |
CN102707931A (zh) | 2012-05-09 | 2012-10-03 | 刘大可 | 一种基于并行数据通道的数字信号处理器 |
-
2015
- 2015-05-29 US US14/726,246 patent/US9836278B2/en active Active
-
2016
- 2016-02-15 EP EP16802335.6A patent/EP3289445B1/en active Active
- 2016-02-15 CN CN201680023173.2A patent/CN107533462B/zh active Active
- 2016-02-15 WO PCT/CN2016/073816 patent/WO2016192412A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4488252A (en) * | 1982-02-22 | 1984-12-11 | Raytheon Company | Floating point addition architecture |
US20040225706A1 (en) * | 2003-05-05 | 2004-11-11 | Harris David L. | Parallel prefix networks that make tradeoffs between logic levels, fanout and wiring racks |
CN102804128A (zh) * | 2009-05-27 | 2012-11-28 | 超威半导体公司 | 执行饱和乘法和饱和乘加运算的算术处理单元及方法 |
CN102243577A (zh) * | 2010-05-10 | 2011-11-16 | 上海华虹集成电路有限责任公司 | 一种快速实现浮点加法的电路 |
CN102855117A (zh) * | 2011-06-29 | 2013-01-02 | Arm有限公司 | 浮点加法器 |
Also Published As
Publication number | Publication date |
---|---|
CN107533462B (zh) | 2020-07-24 |
EP3289445B1 (en) | 2020-02-05 |
US9836278B2 (en) | 2017-12-05 |
EP3289445A4 (en) | 2018-05-30 |
US20160350073A1 (en) | 2016-12-01 |
EP3289445A1 (en) | 2018-03-07 |
WO2016192412A1 (en) | 2016-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02196328A (ja) | 浮動小数点演算装置 | |
US11853716B2 (en) | System and method for rounding reciprocal square root results of input floating point numbers | |
US6175851B1 (en) | Fast adder/subtractor for signed floating point numbers | |
JP3436994B2 (ja) | シフト装置 | |
US7991820B1 (en) | One step binary summarizer | |
CN112653448A (zh) | 用于二进制标志确定的设备和方法 | |
Villalba et al. | Radix-2 multioperand and multiformat streaming online addition | |
CN107533462A (zh) | 浮点运算装置以及方法 | |
Ushasree et al. | VLSI implementation of a high speed single precision floating point unit using verilog | |
US20070203961A1 (en) | Multiplicand shifting in a linear systolic array modular multiplier | |
Kinoshita et al. | Floating-point arithmetic algorithms in the symmetric residue number system | |
CN111124361A (zh) | 算术处理装置及其控制方法 | |
Prusty et al. | A modified redundant binary adder for efficient VLSI architecture | |
Reddy et al. | Analyze and Implementation of FPGA Implementation of HUB floating-point addition | |
KR0176883B1 (ko) | 복소수 승산기 | |
LaMeres | Arithmetic Circuits | |
US20090112963A1 (en) | Method to perform a subtraction of two operands in a binary arithmetic unit plus arithmetic unit to perform such a method | |
CN113434115A (zh) | 一种浮点数尾数域余数运算电路及方法 | |
JPS63254525A (ja) | 除算装置 | |
Lloris Ruiz et al. | Addition and Subtraction | |
EP3528107A1 (en) | Increment/decrement apparatus and method | |
Langhammer et al. | Design and Implementation of an Embedded FPGA Floating Point DSP Block | |
JP5603609B2 (ja) | ロジスティック写像の演算装置 | |
Gopal | A novel low power multi path double precision fused multiplier accumulator architecture | |
Barrabés Castillo | Design of single precision float adder (32-bit numbers) according to IEEE 754 standard using VHDL |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |