CN103970503B - 能够支持加法和减法的加法器和支持加法和减法的方法 - Google Patents

能够支持加法和减法的加法器和支持加法和减法的方法 Download PDF

Info

Publication number
CN103970503B
CN103970503B CN201410041976.3A CN201410041976A CN103970503B CN 103970503 B CN103970503 B CN 103970503B CN 201410041976 A CN201410041976 A CN 201410041976A CN 103970503 B CN103970503 B CN 103970503B
Authority
CN
China
Prior art keywords
addition region
region
data
addition
input
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
CN201410041976.3A
Other languages
English (en)
Other versions
CN103970503A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN103970503A publication Critical patent/CN103970503A/zh
Application granted granted Critical
Publication of CN103970503B publication Critical patent/CN103970503B/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/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/42Adding; Subtracting
    • 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; 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
    • G06F7/507Adding; 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 using selection between two conditionally calculated carry or sum values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Electromagnetism (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Advance Control (AREA)

Abstract

公开一种能够支持加法和减法的加法器和支持加法和减法的方法。在一个示例中,加法器支持最大n比特数据类型的减法运算,并且包括:多个第一加法区域,每个第一加法区域由预定单位数量的比特形成,并且被配置为接收多条输入的操作数据;一个或更多个第二加法区域,每个第二加法区域形成在所述多个第一加法区域之间,并且被配置为基于操作数据的类型和运算类型接收多条控制数据。

Description

能够支持加法和减法的加法器和支持加法和减法的方法
本申请要求于2013年1月28日提交到韩国知识产局的第10-2013-0009328号韩国专利申请的优先权,该申请的全部公开为了所有目的通过引用包含于此。
技术领域
以下描述涉及一种支持多种数据类型的加法器以及通过控制进位传送来支持多种数据类型的加法和减法运算的方法。
背景技术
对处理器提供矢量运算能力为多媒体应用领域带来了重大的性能改进。一般的矢量运算器提供一次同时处理各种数据的能力;然而,因为需要不同的运算器来响应各种数据,所以矢量运算器需要很大。为了解决这一问题,能够使用最小数据长度来连接、共享和同时处理许多算术运算符的结构被用于支持各种数据类型。此时,使用考虑用于加法或减法运算的进位传送的选择进位加法器,通常,选择进位加法器使用复杂的控制信号和多个数据选择器来共享每种类型的运算,这降低了整体效率和处理速度。
发明内容
在一个总的方面,一种能够支持多达n比特数据的加法和减法的加法器可包括:多个第一加法区域,每个第一加法区域由预定单位数量的比特形成,并且被配置为接收多条输入的操作数据;一个或更多个第二加法区域,每个第二加法区域形成在所述多个第一加法区域之间,并且被配置为基于操作数据的类型和运算类型接收多条控制数据。
所述预定单位数量可小于作为加法器能够处理运算的最大比特数的n。
所述多条输入的操作数据可根据操作数据类型,以预定比特为单位被输入到一个或更多个第一加法区域。
所述加法器可基于运算类型选择性地反转或不反转所述多条输入的操作数据中的在后输入的操作数据,然后将所得的数据输入到所述多个第一加法区域。
所述多条控制数据可控制数据控制进位信号从在后的第一加法区域传送到在前的第一加法区域或者阻止进位信号从在后的第一加法区域传送到在前的第一加法区域,或者如果运算类型是减法,则所述多条控制数据可加上用于取二进制补码的值“1”。
当一条操作数据被分成两个段,并且数据段被分别输入在前的第一加法区域和在后的第一加法区域时,被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于传送进位信号的比特值[0,1]或[1,0]。
如果运算类型是加法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于阻止进位信号的比特值[0,0]。
如果运算类型是减法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于加上用于取二进制补码的值“1”的比特值[1,1]。
此外,所述加法器还可包括:一个或更多个第二数据选择器,基于被输入到在后的第一加法区域和在前的第一加法区域的操作数据的类型以及运算类型,选择性地将所述多条控制数据输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域。
在另一个总的方面,一种通过使用能够支持多达n比特数据的加法和减法的加法器来支持多种数据类型的加法和减法的方法可包括:将多条操作数据输入到加法器中的多个第一加法区域,每个第一加法区域由预定单位数量的比特形成;基于操作数据的类型和运算类型将多条控制数据输入到一个或更多个第二加法区域,每个第二加法区域形成在所述多个第一加法区域之间。
所述预定单位数量可小于作为加法器能够处理的最大比特数的n。
多条输入的操作数据可根据操作数据类型,以预定比特为单位被输入到一个或更多个第一加法区域。
输入多条操作数据的步骤还可包括:基于运算类型,通过数据选择器选择性地反转或不反转多条输入的操作数据中的在后输入的操作数据,然后将所得的数据输入到所述多个第一加法区域。
所述多条控制数据可控制进位信号从在后的第一加法区域传送到在前的第一加法区域或者阻止进位信号从在后的第一加法区域传送到在前的第一加法区域,或者如果运算类型是减法,则所述多条控制数据可加上用于取二进制补码的值“1”。
当一条操作数据被分成两个段,并且数据段被分别输入在前的第一加法区域和在后的第一加法区域时,被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于传送进位信号的比特值[0,1]或[1,0]。
如果运算类型是加法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于阻止进位信号的比特值[0,0]。
如果运算类型是减法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据可以是用于加上用于取二进制补码的值“1”的比特值[1,1]。
输入多条控制数据的步骤可基于被输入到在前的第一加法区域和在后的第一加法区域的操作数据的类型以及运算类型,通过数据选择器选择性地将所述多条控制数据输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域。
其他特点和多个方面从以下详细描述、附图和权利要求可以是清楚的。
附图说明
图1A和图1B是示出一般的选择进位加法器的示图。
图2是示出根据本发明的加法器的示例的示图。
图3是输入到加法器的第二加法区域的控制数据的示例。
图4A至图4D是示出加法器的加法运算和减法运算的示例。
图5是示出支持多种数据类型的减法运算的方法的示例的流程图。
贯穿附图和详细描述,除非另外描述,否则相同的附图标号将被理解为表示相同的元件、特征和结构。为了清楚、例示和方便,这些元件的相对大小和描述可被夸大。
具体实施方式
提供以下描述以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。因此,这里描述的方法、设备和/或系统的各种改变、修改和等同物将被推荐给本领域普通技术人员。此外,为了增加清晰和简明,公知功能和结构的描述可被省略。
以下,将参照附图描述能够支持多种数据类型的加法器以及使用所述加法器的支持多种类型的加法和减法运算的方法。
图1A和图1B是示出一般的选择进位加法器的示图。
图1A是示出支持多达32比特的一般的选择进位加法器的示例的示图,该加法器通过并联连接四个加法器111、112、113和114来支持多种数据类型(例如,8比特、16比特和32比特)的加法运算。在该示例中,如示出加法器114的图1B所示,加法器111、112、113和114中的每个加法器可包括9比特双加法器114_a和114_b,以预先考虑用于在减法处理中针对反转输入加值“1”的进位。
此外,一般的选择进位加法器可包括:数据选择器121、122、123和124,用于针对输入到各个加法器111、112、113和114的第二数据,根据运算类型选择反转输入或非反转输入;选择进位数据选择器131、132、133和134,用于选择从各个加法器111、112、113和114输出的两个结果(不包括进位和包括进位)之一;进位传送数据选择器141、142和143,用于将进位从在后的加法器111、112和113分别传送到在前的加法器112、113和114。
例如,当针对16比特数据执行加法运算时,数据i0_3和i1_3被输入到第一加法器111,数据i0_2和i1_2被输入到第二加法器112。通过选择不包括进位的结果或者包括进位的结果,第一加法器111使用内部的双加法器输出数据o0_3和o1_3,并且第二加法器112输出数据o0_2和o1_2。
第一选择进位数据选择器131从自第一加法器111输出的结果选择不包括进位的数据o0_3,并将数据o0_3输出为第一加法器111的加法结果z3。第一进位传送数据选择器141选择值0或第一加法器111的加法结果z3的最高比特值,并确定是否将进位传送到第二加法器112。
第二选择进位数据选择器132根据输入到第一进位传送数据选择器141的值,选择从第二加法器112输出的结果之一,即,不包括进位的数据o0_2和包括进位的数据o1_2之一,并将选择的数据输出为其加法运算结果z2。
这样,一般的选择进位加法器包括多个加法器111、112、113和114,以支持多种数据类型的运算,多个加法器111、112、113和114中的每个加法器包括并联的加法器,以预先考虑进位,因此,一般的选择进位加法器占用多个区域。此外,因为数据应该经过用于进位传送的多个数据选择器,所以控制变得复杂,并且出现运算延迟。
图2是示出根据本发明的加法器的示例的示图。
参照图2,加法器200可包括:单个加法单元210,加法单元210可包括以预定数量的比特为单位的多个第一加法区域211、212、213和214,以在最大数据长度内支持各种数据类型的运算;一个或更多个第二加法区域221、222和223,每个第二加法区域设置在两个邻近的第一加法区域之间,并且控制数据基于运算类型和操作数据类型被输入到每个第二加法区域。
图2示出四个第一加法区域211、212、213和214以及在第一加法区域之间的第二加法区域221、222和223。然而,第一加法区域的数量可根据最大可支持的数据类型、运算的最小数据处理单元等而增加。
例如,第一加法区域211、212、213和214中的每个可被分成运算的最小数据处理单元,并且如果最小数据处理单元是8比特,则最大32比特的数据类型的运算可通过四个第一加法区域211、212、213和214来执行。根据输入的操作数据的类型,可执行用于诸如8比特、16比特、24比特和32比特的数据类型的运算。
操作数据根据数据类型以预定比特(m比特)为单位被输入到一个或更多个第一加法区域211、212、213和214,并且通过每个第一加法区域对操作数据执行加法。在这种情况下,根据操作数据类型,多于两对操作数据可被同时输入到第一加法区域211、212、213和214。
例如,如果预定比特(m比特)是8比特并且操作数据类型是16比特,则操作数据可被分成8比特单元,并且被输入到两个第一加法区域211和212。在这种情况下,另外的一对16比特操作数据可被分成8比特单元,并被输入到两个第一加法区域213和214,从而可同时执行两对或更多对数据的加法运算。
此外,加法器200可支持减法运算。通过反转作为第二输入的操作数据,然后对第二输入操作数据执行加法,并加上用于取二进制补码的值“1”,来执行减法运算。为了支持这种减法运算,加法器200还可包括与各个第一加法区域211、212、213和214相应的第一数据选择器231、232、233和234。第一数据选择器231、232、233和234可根据将被执行的运算的类型,选择性地反转或不反转在后输入的操作数据,并将所得的操作数据输入到相应的第一加法区域211、212、213和214。例如,如果运算类型是加法,则第一数据选择器231、232、233和234可反转在后的操作数据,然后将所得的数据输入到相应的第一加法区域211、212、213和214。
第二加法区域221、222和223可在每个第一加法区域211、212、213和214之间由1比特来形成,并且可控制在后的第一加法区域到在前的第一加法区域中出现的进位信号或者用于执行减法运算的进位信号的传递或阻止,加上用于取二进制补码的值“1”的控制数据可被输入到第二加法区域221、222和223。
图3是输入到加法器的第二加法区域的控制数据的示例。输入到加法器的第二加法区域221、222和223的控制数据可以是控制数据[0,1]、[1,0]、[0,0]和[1,1]之一。
例如,如果一个操作数据被分成多个段并且所述多个段被分别输入到在前的第一加法区域和在后的第一加法区域,更具体地讲,如果图2的第一加法区域211、212、213和214中的每个由8比特形成并且16比特操作数据被分成两个段,这两个段被输入到在前的第一加法区域212和在后的第一加法区域211两者,则可将比特值[0,1]或[1,0]输入到第一加法区域212和211之间的第二加法区域221,以传递在后的第一加法区域211的加法运算处理中出现的进位信号。
对于另一示例,当不同的操作数据被同时输入到在后的第一加法区域和在前的第一加法区域时,在加法运算的情况下,可将比特值[0,0]输入到在后的第一加法区域和在前的第一加法区域之间的第二加法区域,以阻止进位信号,在减法运算的情况下,可将比特值[1,1]输入到第二加法区域,以加上用于取二进制补码的值“1”。
例如,如果16比特的第一操作数据被分成多个段并且所述多个段被分别输入到两个第一加法区域211和212,16比特的第二操作数据被分成多个段并且所述多个段被分别输入到两个第一加法区域213和214时,在加法运算的情况下,可将比特值[0,0]输入到已输入第一操作数据的第一加法区域212和已输入第二操作数据的第一加法区域213之间的第二加法区域222,以防止进位被传送。在运算类型是减法运算的情况下,可将比特值[1,1]输入到第二加法区域222,以加上值“1”。
如图2所示,加法器200还可包括基于操作数据类型和与第二加法区域221、222和223中的每个相应的运算类型来选择性地输入控制数据的第二数据选择器241、242和243。例如,根据诸如加法运算或减法运算的运算类型以及输入到与第二加法区域221相邻的第一加法区域211和212的操作数据类型(即,是一个数据被分成多个段并且所述多个段被分别输入到第一数据选择器231和232,还是两个彼此不同的数据被分别输入到第一数据选择器231和232),第二数据选择器241选择性地输入值0或1。
图4A、图4B、图4C和图4D是示出加法器的加法运算和减法运算的示例的示图。为了便于描述,假设加法器200包括四个第一加法区域211、212、213和214以及三个1比特的第二加法区域221、222和223,其中,每个第一加法区域具有2比特的长度。
图4A示出同时执行第一操作数据a1和b1的加法运算以及第二操作数据a2和b2的加法运算的示例。
因为每个输入的操作数据类型是2比特,所以第一操作数据a1和b1被依次输入到在前的第一加法区域212。此时,因为运算类型是加法运算,所以第一数据选择器232输入未反转的原始第二数据b1,在第一操作数据a1和b1中,第二数据b1被在后输入到在前的第一加法区域212。类似地,第二操作数据a2和b2被输入到在后的第一加法区域211,并且因为是加法运算,所以第一数据选择器231将未反转的第二数据b2输入到在后的第一加法区域211。
此外,比特值[0,0]的控制数据被输入到第一加法区域211和212之间的第二加法区域221,以阻止在后的第一加法区域211中出现的进位信号被传送。因为分别被输入到均与第二加法区域221相邻的在后的第一加法区域211和在前的第一加法区域212的每条数据是两条不同的数据,并且运算类型是加法类型,所以与第二加法区域221相应的第二数据选择器241选择性地将值0和0依次输入到第二加法区域221。
在后的第一加法区域211执行第一操作数据的加法运算,然后输出“00”作为结果,并产生进位信号“1”。进位信号被传送到第二加法区域221,第二加法区域221考虑进位信号将所有的输入控制信号相加并输出结果“1”,而不向在前的第一加法区域产生进位信号。因为没有进位信号从第二加法区域221被传送,所以在前的第一加法区域212将“11”输出为加法运算的结果。最终,忽略来自第二加法区域221的结果,而仅获取在后的第一加法区域211和在前的第一加法区域212的结果,并且随后可获取第一操作数据的加法运算结果“11”和第二操作数据的加法运算结果“00”。
图4B示出执行包括4比特数据类型的操作数据a和b的加法运算的示图。
输入的操作数据类型是4比特,并且以2比特的形式被分别输入到在后的第一加法区域211和在前的第一加法区域212。此时,因为运算类型是加法运算,所以分别与在后的第一加法区域211和在前的第一加法区域212相应的第一数据选择器231和232输入第一操作数据a和b中的稍后被输入的未反转的第二数据b。
用于传送在后的第一加法区域211中出现的进位信号的控制信号[1,0]被输入到在后的第一加法区域211和在前的第一加法区域212之间的第二加法区域221。因为输入到均与第二加法区域221相邻的在后的第一加法区域211和在前的第一加法区域212的数据来自一个数据,并且运算类型是加法运算,所以与第二加法区域221相应的第二数据选择器241选择性地将值1和0依次输入到第二加法区域221。
在后的第一加法区域211将输入的操作数据相加,然后输出结果“00”,并产生进位信号“1”。进位信号被传送到第二加法区域221,第二加法区域221考虑进位信号将输入控制信号相加,然后输出结果“0”,并产生进位信号“1”。在前的第一加法区域212基于从第二加法区域221传送的进位信号将输入的数据相加,然后输出结果“00”作为加法运算的结果。最终,忽略第二加法区域221的结果,并且获取从在后的第一加法区域211和在前的第一加法区域212接收的结果,因此可获得操作数据的加法运算结果“0000”。
图4C是示出同时执行第一操作数据a1和a2以及第二操作数据a2和b2的加法运算的示例的示图。
与图4A类似,因为每个操作数据的类型是2比特,所以第一操作数据a1和a2以及第二操作数据a2和b2中的每个被分别输入到在后的第一加法区域211和在前的第一加法区域212。这里,运算类型是减法运算,所以第一数据选择器231和232反转在后输入的第二数据b1和b2,并将反转的第二数据b1和b2输入到相应的在后的第一加法区域211和在前的第一加法区域212。
因为被输入到均与第二加法区域221相邻的在后的第一加法区域211和在前的第一加法区域212的每条数据是两条不同的数据,并且运算类型是减法,所以第二数据选择器241将控制数据[1,1]输入到相应的第二加法区域221,以将值“1”与第一加法区域212的结果相加。此时,在后的第一加法区域211还执行减法运算,从而得到将被加到在后的第一加法区域211的值“1”被输入。
考虑到被输入的值“1”,在后的第一加法区域211将在后的第一加法区域211中的所有第一操作数据相加,并输出结果“10”,然后产生进位信号“1”。进位信号被传送到第二加法区域221,然后第二加法区域221考虑输入的控制数据[1,1]和进位信号,并输出结果“1”,然后产生进位信号“1”。考虑到从第二加法区域221传送的进位信号,在前的第一加法区域212输出加法结果“11”。最终,忽略第二加法区域221的结果,并且仅获取在后的第一加法区域211和在前的第一加法区域212的结果作为最终结果,因此获得第一操作数据a1和a2的减法结果“11”以及第二操作数据a2和b2的减法结果“10”。
图4D是示出执行4比特数据类型的操作数据a和b的减法运算的示例的示图。
操作数据类型是4比特,并且以2比特的形式被分别输入到在后的第一加法区域211和在前的第一加法区域212。这里,因为运算类型是减法运算,所以与在后的第一加法区域211和在前的第一加法区域212相应的第一数据选择器231和232反转第一操作数据a和b中的在后输入的第二数据b,然后将反转的第二数据b输入到在后的第一加法区域211和在前的第一加法区域212。
因为被输入到均与第二加法区域221相邻的在后的第一加法区域211和在前的第一加法区域212的数据本来是一条数据,所以第二数据选择器241将控制数据[1,0]输入到第二加法区域221。此时,获取另外的输入“1”,以将用于取二进制补码的值“1”与在后的第一加法区域211相加。
在后的第一加法区域211将操作数据与另外的输入“1”相加,输出结果“10”并产生进位信号“1”。进位信号被传送到第二加法区域221,第二加法区域221考虑进位信号将输入的控制数据[1,0]相加,然后输出结果“0”并产生进位信号“1”。在前的第一加法区域212将从第二加法区域221传送的进位信号与输入数据相加,并输出加法结果“11”。最终,忽略第二加法区域221的结果,仅获取在后的第一加法区域211和在前的第一加法区域212的结果作为最终结果,并且可获得操作数据的减法运算结果“1110”。
如这里的示例所示,加法器200可不需要多个选择进位数据选择器,并且可不需要并联连接多个加法器以支持各种数据类型,而是能够通过单个加法器来支持多种数据类型,从而可增加处理性能和一定程度的效率。
图5是示出支持多种数据类型的减法运算的方法的示例的流程图。以下描述使用如图2所示的加法器200的支持多种数据类型的加法运算和减法运算的方法的示例。
首先,在511,加法器200以预定比特单元将操作数据的第一数据输入到第一加法区域211、212、213和214。根据数据类型,操作数据可被输入到一个第一加法区域,或者可被分成多个段,并且多个数据段可被输入到第一加法区域的两个或更多个。
然后,在512,加法器200的数据选择器231、232、233和234确定运算类型,如果运算类型不是减法运算,则在513,数据选择器231、232、233和234不反转操作数据的第二数据,并输入原始的第二数据;然而,如果运算类型是减法运算,则在514,数据选择器231、232、233和234反转第二数据,并输入反转的第二数据。
然后,在515,加法器的第二数据选择器241、242和243检查被输入到与相应的第二加法区域221、222和223中的每个相邻的第一加法区域211、212、213和214的操作数据,并且在516,确定操作数据类型是否大于预定比特,从而操作数据被分成两个段,并且数据段被分别输入相邻的第一加法区域211、212、213和214。
作为操作516的确定结果,如果一个数据被分成两个段,并且数据段被分别输入,则在517,用于将在后的第一加法区域中产生的进位信号传送到在前的第一加法区域的控制数据比特[1,0]或[0,1]可被输入到在后的第一加法区域和在前的第一加法区域之间的第二加法区域517。
然而,如果输入两条不同的数据,则在518,确定运算类型,如果运算类型是减法运算,则在519,将用于将值“1”与在前的第一加法区域的加法结果相加的控制数据[1,1]被输入到第二加法区域。此外,如果在操作518,运算类型是加法运算,则在520,可输入控制数据[0,0],以防止在后的第一加法区域的进位信号被传送到在前的第一加法区域。
在加法器200使用输入到第一加法区域和第二加法区域的数据执行加法运算之后,加法器200忽略第二加法区域的输出结果,仅获取第一加法区域的结果,并最后获得加法运算和减法运算的结果。
上述方法和/或操作可被记录、存储或固定在一个或更多个包括程序指令的计算机可读存储介质中,所述程序指令由计算机执行,从而使得处理器执行所述程序指令。所述介质还可包括单独的数据文件、数据结构等,或者还可包括与程序指令结合的数据文件、数据结构等。计算机可读存储介质的示例包括磁介质(诸如硬盘、软盘和磁带)、光学介质(诸如CD ROM盘和DVD)、磁光介质(诸如光盘)和专门配置为存储和执行程序指令的硬件装置(诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。程序指令的示例包括诸如由编译器产生的机器代码和包含可由计算机使用解释器执行的高级代码的文件。描述的硬件装置可被配置为用作一个或更多软件模块,以执行上述操作和方法,反之亦然。此外,计算机可读存储介质可以分布在通过网络连接的计算机系统中,并且计算机可读代码或程序指令可以以分散方式被存储和执行。
以上已经描述了多个示例。然而,应该理解,可进行各种修改。例如,如果描述的技术以不同的次序执行和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或由其他组件或它们的等同物替代或补充,则可实现适当的结果。因此,其他实施方式落入权利要求的范围之内。

Claims (18)

1.一种能够支持多达n比特数据的加法和减法的加法器,所述加法器包括:
多个第一加法区域,每个第一加法区域由预定单位数量的比特形成,并且被配置为接收多条输入的操作数据;
一个或更多个第二加法区域,每个第二加法区域形成在所述多个第一加法区域之间,并且被配置为基于操作数据的类型和运算类型接收多条控制数据,
其中,每个第二加法区域形成在所述多个第一加法区域中相邻的两个第一加法区域之间,
其中,所述加法器还包括:
一个或更多个第一数据选择器,每个第一数据选择器连接到对应的第二加法区域,并且被配置为基于运算类型和输入到与对应的第二加法区域相邻的两个第一加法区域的操作数据的类型,来选择性地将所述多条控制数据之一输入到对应的第二加法区域,
其中,每个第二加法区域由1比特形成并且将接收的控制数据与相邻的在前的第一加法区域的进位信号相加。
2.如权利要求1所述的加法器,其中,所述预定单位数量小于作为加法器能够处理运算的最大比特数的n。
3.如权利要求1所述的加法器,其中,所述多条输入的操作数据根据操作数据类型,以预定比特为单位被输入到一个或更多个第一加法区域。
4.如权利要求1所述的加法器,还包括:
多个第二数据选择器,被配置为基于运算类型选择性地反转或不反转所述多条输入的操作数据中的在后输入的操作数据,然后将所得的数据输入到所述多个第一加法区域。
5.如权利要求1所述的加法器,其中,所述多条控制数据控制进位信号从在后的第一加法区域传送到在前的第一加法区域或者阻止进位信号从在后的第一加法区域传送到在前的第一加法区域,或者如果运算类型是减法,则所述多条控制数据加上用于取二进制补码的值“1”。
6.如权利要求5所述的加法器,其中,当一条操作数据被分成两个段,并且数据段被分别输入在前的第一加法区域和在后的第一加法区域时,被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于传送进位信号的比特[0,1]或[1,0]。
7.如权利要求5所述的加法器,其中,如果运算类型是加法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于阻止进位信号的比特[0,0]。
8.如权利要求5所述的加法器,其中,如果运算类型是减法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于加上用于取二进制补码的值“1”的比特[1,1]。
9.如权利要求1所述的加法器,其中,
一个或更多个第一数据选择器被配置为基于被输入到在后的第一加法区域和在前的第一加法区域的操作数据的类型以及运算类型,选择性地将所述多条控制数据输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域。
10.一种通过使用能够支持多达n比特数据的加法和减法的加法器来支持多种数据类型的加法和减法的方法,所述方法包括:
将多条操作数据输入到加法器中的多个第一加法区域,每个第一加法区域由预定单位数量的比特形成;
基于操作数据的类型和运算类型将多条控制数据输入到一个或更多个第二加法区域,每个第二加法区域形成在所述多个第一加法区域之间,其中,每个第二加法区域形成在所述多个第一加法区域中相邻的两个第一加法区域之间,
其中,基于操作数据的类型和运算类型将多条控制数据输入到一个或更多个第二加法区域的步骤包括:通过一个或更多个第一数据选择器基于操作数据的类型和运算类型将多条控制数据输入到一个或更多个第二加法区域,其中,每个第一数据选择器连接到对应的第二加法区域,并且被配置为基于运算类型和输入到与对应的第二加法区域相邻的两个第一加法区域的操作数据的类型,来选择性地将所述多条控制数据之一输入到对应的第二加法区域,
其中,每个第二加法区域由1比特形成并且将接收的控制数据与相邻的在前的第一加法区域的进位信号相加。
11.如权利要求10所述的方法,其中,所述预定单位数量小于作为加法器能够处理的最大比特数的n。
12.如权利要求10所述的方法,其中,多条输入的操作数据根据操作数据类型,以预定比特为单位被输入到一个或更多个第一加法区域。
13.如权利要求10所述的方法,其中,输入多条操作数据的步骤还包括:
基于运算类型,通过数据选择器选择性地反转或不反转多条输入的操作数据中的在后输入的操作数据,然后将所得的数据输入到所述多个第一加法区域。
14.如权利要求10所述的方法,其中,所述多条控制数据控制进位信号从在后的第一加法区域传送到在前的第一加法区域或者阻止进位信号从在后的第一加法区域传送到在前的第一加法区域,或者如果运算类型是减法,则所述多条控制数据加上用于取二进制补码的值“1”。
15.如权利要求14所述的方法,其中,当一条操作数据被分成两个段,并且数据段被分别输入在前的第一加法区域和在后的第一加法区域时,被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于传送进位信号的比特[0,1]或[1,0]。
16.如权利要求14所述的方法,其中,如果运算类型是加法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于阻止进位信号的比特[0,0]。
17.如权利要求14所述的方法,其中,如果运算类型是减法并且两条不同的操作数据被同时输入到在前的第一加法区域和在后的第一加法区域,则被输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域的控制数据是用于加上用于取二进制补码的值“1”的比特[1,1]。
18.如权利要求10所述的方法,其中,输入多条控制数据的步骤基于被输入到在前的第一加法区域和在后的第一加法区域的操作数据的类型以及运算类型,通过数据选择器选择性地将所述多条控制数据输入到在前的第一加法区域和在后的第一加法区域之间的第二加法区域。
CN201410041976.3A 2013-01-28 2014-01-28 能够支持加法和减法的加法器和支持加法和减法的方法 Active CN103970503B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0009328 2013-01-28
KR1020130009328A KR102072543B1 (ko) 2013-01-28 2013-01-28 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법

Publications (2)

Publication Number Publication Date
CN103970503A CN103970503A (zh) 2014-08-06
CN103970503B true CN103970503B (zh) 2019-03-01

Family

ID=50064415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410041976.3A Active CN103970503B (zh) 2013-01-28 2014-01-28 能够支持加法和减法的加法器和支持加法和减法的方法

Country Status (5)

Country Link
US (1) US9842085B2 (zh)
EP (1) EP2759926A1 (zh)
JP (1) JP6302682B2 (zh)
KR (1) KR102072543B1 (zh)
CN (1) CN103970503B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512724B (zh) 2015-12-01 2017-05-10 中国科学院计算技术研究所 加法器装置、数据累加方法及数据处理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1067427A (en) * 1964-08-19 1967-05-03 Soemmerda Bueromaschwerk Circuit arrangement for the parallel addition and subtraction of decimal digits
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
CN101258464A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 全加器模块和使用该全加器模块的乘法器装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5883824A (en) * 1993-11-29 1999-03-16 Hewlett-Packard Company Parallel adding and averaging circuit and method
US5943251A (en) 1996-11-18 1999-08-24 Samsung Electronics Co., Ltd. Adder which handles multiple data with different data types
KR19980041753U (ko) 1996-12-24 1998-09-25 김영귀 자동차용 전면판재의 구조
US6408320B1 (en) * 1998-01-27 2002-06-18 Texas Instruments Incorporated Instruction set architecture with versatile adder carry control
US6140839A (en) * 1998-05-13 2000-10-31 Kaviani; Alireza S. Computational field programmable architecture
KR20000044663A (ko) 1998-12-30 2000-07-15 김영환 면적 개선을 위한 가산기
US6449629B1 (en) * 1999-05-12 2002-09-10 Agere Systems Guardian Corp. Three input split-adder
US7441105B1 (en) * 2004-01-02 2008-10-21 Altera Corporation Reducing multiplexer circuitry for operand select logic associated with a processor
TWI259398B (en) * 2004-02-04 2006-08-01 Sunplus Technology Co Ltd Device and method using operation mode in processor to switch register
US20060004902A1 (en) * 2004-06-30 2006-01-05 Siva Simanapalli Reconfigurable circuit with programmable split adder
US7516173B2 (en) 2004-08-04 2009-04-07 Intel Corporation Carry-skip adder having merged carry-skip cells with sum cells
EP2141585A1 (en) 2008-06-27 2010-01-06 Panasonic Corporation Combined adder circuit array and and/or plane

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1067427A (en) * 1964-08-19 1967-05-03 Soemmerda Bueromaschwerk Circuit arrangement for the parallel addition and subtraction of decimal digits
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
CN101258464A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 全加器模块和使用该全加器模块的乘法器装置

Also Published As

Publication number Publication date
KR20140096588A (ko) 2014-08-06
US9842085B2 (en) 2017-12-12
US20140214913A1 (en) 2014-07-31
CN103970503A (zh) 2014-08-06
KR102072543B1 (ko) 2020-02-03
EP2759926A1 (en) 2014-07-30
JP6302682B2 (ja) 2018-03-28
JP2014146336A (ja) 2014-08-14

Similar Documents

Publication Publication Date Title
CN109716318B (zh) 配置硬件在运行时期间多种模式下操作的装置和方法
US20150121035A1 (en) Systems and Methods for Implementing Low-Latency Lookup Circuits Using Sparse Hash Functions
EP3220274B1 (en) Method and apparatus for memory access
WO2021034587A1 (en) Multiple output fusion for operations performed in a multi-dimensional array of processing units
US11093682B2 (en) Language and compiler that generate synchronous digital circuits that maintain thread execution order
US9529599B2 (en) Dynamic propagation with iterative pipeline processing
CN114065926A (zh) 用于深度学习的方法和设备
US20180357534A1 (en) Multi-directional Reduction in Large Scale Deep-Learning
CN113744063B (zh) 区块链中执行交易的方法及装置
FR3101980A1 (fr) Processeur
CN103970503B (zh) 能够支持加法和减法的加法器和支持加法和减法的方法
US10613861B2 (en) Programmable linear feedback shift register
US8930929B2 (en) Reconfigurable processor and method for processing a nested loop
JP7435602B2 (ja) 演算装置および演算システム
JP4255475B2 (ja) データ駆動型情報処理装置
CN115952526B (zh) 密文排序方法、设备及存储介质
US20130151485A1 (en) Apparatus and method for storing trace data
US20210191847A1 (en) Parallel processing device
US8358653B1 (en) Generating a pipeline of a packet processor from a parsing tree
US8385340B1 (en) Pipeline of a packet processor programmed to concurrently perform operations
US11681498B2 (en) Neural network arithmetic processing device and neural network arithmetic processing method
US9871554B2 (en) Method and vector computing unit for implementing de-scrambling and de-spreading, and computer storage medium
US9262123B2 (en) Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation
Mihajloska Trpcheska et al. Programmable processing element for crypto-systems on FPGAs
US20230071941A1 (en) Parallel processing device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant