JP2005242722A - Parallel operation unit and method - Google Patents
Parallel operation unit and method Download PDFInfo
- Publication number
- JP2005242722A JP2005242722A JP2004052586A JP2004052586A JP2005242722A JP 2005242722 A JP2005242722 A JP 2005242722A JP 2004052586 A JP2004052586 A JP 2004052586A JP 2004052586 A JP2004052586 A JP 2004052586A JP 2005242722 A JP2005242722 A JP 2005242722A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- boundary
- subword
- boundary bit
- parallel
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
Description
本発明は、ディジタル演算装置に関し、特に、入力データを分割して並列算術演算する並列演算方法に関する。 The present invention relates to a digital arithmetic device, and more particularly to a parallel arithmetic method for dividing input data and performing parallel arithmetic operations.
通常、コンピュータは、所定の最大ビット数の数値を加算する加算器を含む算術演算論理装置を備えている。ディジタルシグナルプロセッサ等では、16ビットおよび32ビット長ワード用の加算器が見られる。また、それらの加算器は、それよりも小さなワードについても機能する。例えば、32ビットの加算器を用いて、16ビットの2つの加算を並列に行う場合がある。 A computer typically includes an arithmetic logic unit that includes an adder that adds a numeric value of a predetermined maximum number of bits. In digital signal processors and the like, adders for 16-bit and 32-bit long words are found. These adders also work for smaller words. For example, two 16-bit additions may be performed in parallel using a 32-bit adder.
以下、並列加算について、図6,図7,図8を参照しながら例を挙げて説明する。
図6は8ビットの加算器を用いて4ビットの2つの並列加算を行う例を示す図、図7は従来の加算器の構成例を示す図、図8は従来の演算結果を補正する加算器の構成を例示する図である。
Hereinafter, the parallel addition will be described with reference to FIGS. 6, 7, and 8.
FIG. 6 is a diagram illustrating an example of performing two 4-bit parallel additions using an 8-bit adder, FIG. 7 is a diagram illustrating a configuration example of a conventional adder, and FIG. 8 is an addition for correcting a conventional calculation result. It is a figure which illustrates the composition of a container.
図6において、通常の加算として、8ビットの数A[7:0]=[11001101]と、数B[7:0]=[01110101]の加算の計算例を表す。加算結果は[101000010]となる。和が8ビット(S[7:0])と、キャリー(C[8])が1ビットで都合9ビットの結果が得られる。今後、nビット目の和をS[n]、nビット目から(n+1)ビット目に上がるキャリーをC[n+1]と表す。また、本明細書での加算器を用いて減算を行う際には、B[n]入力は反転データが入り、2の補数系の減算を行うための初期キャリーC[0]の入力機構があるものとする。2の補数系の減算方法に関して、この前提は決して特殊なものではない。 In FIG. 6, an example of calculation of addition of an 8-bit number A [7: 0] = [11001101] and a number B [7: 0] = [01110101] is shown as normal addition. The addition result is [101000010]. The sum is 8 bits (S [7: 0]), the carry (C [8]) is 1 bit, and a convenient 9-bit result is obtained. From now on, the sum of the nth bit is represented as S [n], and the carry rising from the nth bit to the (n + 1) th bit is represented as C [n + 1]. In addition, when performing subtraction using the adder in this specification, B [n] input contains inverted data, and an input mechanism for an initial carry C [0] for performing 2's complement subtraction is provided. It shall be. This assumption is by no means special with respect to the two's complement subtraction method.
ここで、A,Bの上位、下位4ビットずつを並列に加算する場合を考える。すなわち、A[7:4]=[1100],B[7:4]=[0111]の4ビットの加算と、A[3:0]=[1101],B[3:0]=[0101]の4ビットの加算を並列に行う。求める結果は図6右にあるように、上位4ビットについては和S[7:4]=[0011]とキャリーC[8]=[1]、下位4ビットについては、和S[3:0]=[0010]とキャリーC[4]=[1]となる。 Here, a case is considered where the upper and lower 4 bits of A and B are added in parallel. That is, 4-bit addition of A [7: 4] = [1100], B [7: 4] = [0111] and A [3: 0] = [1101], B [3: 0] = [0101] ] Is added in parallel. As shown in the right of FIG. 6, the result to be obtained is the sum S [7: 4] = [0011] and carry C [8] = [1] for the upper 4 bits, and the sum S [3: 0] for the lower 4 bits. ] = [0010] and carry C [4] = [1].
前記の例でわかるように、並列に加算を行う場合は、上位で行う加算に、下位で行う加算のキャリーが伝播するのを制御する必要がある。
また、今後動画などのマルチメディア処理が必要になると、64ビット以上の加算器が必要となり、任意のビット位置で分割する必要が出てくる。
As can be seen from the above example, in the case of performing addition in parallel, it is necessary to control the propagation of the addition carry performed in the lower order to the addition performed in the higher order.
Further, when multimedia processing such as a moving image is required in the future, an adder of 64 bits or more is required, and it is necessary to divide at an arbitrary bit position.
従来、並列加算を実現する第1の従来技術の例として、加算器のキャリー伝播部に、セレクタ回路を挿入し、キャリーの伝播を制御する方法がある(例えば、特許文献1参照)。 Conventionally, as an example of the first conventional technique for realizing parallel addition, there is a method of controlling carry propagation by inserting a selector circuit into a carry propagation unit of an adder (see, for example, Patent Document 1).
従来の加算器では、図7にあるように、分割の可能性のあるビット間にセレクタ回路を設け、そのビットで分割するか否かを表す制御信号を用いて、キャリーを上位に伝播するか否か決定することにより、並列加算を実現する方法が用いられている。図7において、並列加算を行わない場合には、通常の加算を行うので、セレクタは下位の部分加算器からのキャリーを出力として選択し、並列加算を行う場合には、セレクタは0の値を出力する。これにより、並列加算を行う場合には、上位の加算にキャリーが伝播しないことになる。 In the conventional adder, as shown in FIG. 7, a selector circuit is provided between bits that can be divided, and a control signal indicating whether or not to divide by that bit is used to propagate the carry to the upper side. A method of realizing parallel addition by determining whether or not is used is used. In FIG. 7, when parallel addition is not performed, normal addition is performed. Therefore, the selector selects the carry from the lower partial adder as an output, and when parallel addition is performed, the selector sets a value of 0. Output. As a result, when performing parallel addition, the carry is not propagated to the higher-order addition.
第2の従来例として、演算器の入力データに加工を行い、得られた演算結果を補正する方法が知られている。図8は、第2の従来例の概念図である(例えば、特許文献2参照)。
しかしながら、上記第1の従来例に見られるような従来の方法では、キャリー伝播部にセレクタ回路をいれる必要があるため、加算器の段数が増加し、演算速度の低下を招くという問題点があった。 However, in the conventional method as seen in the first conventional example, it is necessary to insert a selector circuit in the carry propagation unit, which increases the number of stages of the adder and causes a decrease in calculation speed. It was.
例えば、16ビットの加算器に対して、任意のビット位置で分割して並列加算を行う場合には、各ビット間にキャリー伝播を制御するセレクタ回路を入れる必要があるため、計15箇所のキャリー伝播部にセレクタ回路が入り、演算時間がセレクタ回路15個分だけ長くなる。 For example, when performing parallel addition by dividing an arbitrary 16 bit adder into a 16-bit adder, it is necessary to insert a selector circuit for controlling carry propagation between each bit. A selector circuit enters the propagation unit, and the computation time is increased by 15 selector circuits.
また、図8に示される第2の従来例の並列演算回路は、入力データの分割ビットに固定値を入力する加工を行うことで、演算時間がビットを分割する個数分のセレクタの遅延だけ長くなる問題を解決している。 Further, the parallel arithmetic circuit of the second conventional example shown in FIG. 8 performs a process of inputting a fixed value to the divided bits of the input data, so that the operation time is increased by the selector delay corresponding to the number of divided bits. Has solved the problem.
一方、この方法だと分割ビットは加算に用いることが出来ず、例えば4ビットと4ビットで合計8ビットの並列加算を行う場合には、分割ビット1ビットを増やした9ビットの加算器を用いる必要があり、回路規模が増大するという問題点があった。そこで、第2の従来例では、入力加工手段に加えて、分割ビットの演算結果の補正を行う出力加工回路を用いることで、分割ビットも加算に用いることができるようにし、回路増大という問題を解決している。 On the other hand, with this method, the divided bits cannot be used for addition. For example, when performing parallel addition of 8 bits in total of 4 bits and 4 bits, a 9-bit adder with 1 divided bit increased is used. There is a problem that the circuit scale increases. Therefore, in the second conventional example, in addition to the input processing means, an output processing circuit that corrects the operation result of the divided bits is used, so that the divided bits can be used for addition, and there is a problem that the circuit increases. It has been solved.
しかしながら、第2の従来例においても、入力加工手段、出力加工回路が入るビットにおいては、少なくとも2段分の論理ゲートが入り、遅延時間が長くなるという問題点があった。 However, even in the second conventional example, there is a problem that at least two stages of logic gates are included in the bit in which the input processing means and the output processing circuit are input, resulting in a long delay time.
上記問題点を解決するために、本発明の並列演算装置および並列演算方法は、回路規模を増加することなく、高速な演算を実現することを目的とする。 In order to solve the above problems, a parallel arithmetic device and a parallel arithmetic method according to the present invention are intended to realize high-speed arithmetic without increasing the circuit scale.
上記目的を達成するために、本発明の請求項1記載の並列演算方法は、演算に用いる複数の入力ワードをそれぞれ複数のサブワードに分割して並列演算する並列演算方法であって、前記サブワードの最下位または最上位ビットになるように境界ビットを設定する工程と、前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する工程と、前記加工した境界ビットを含む前記サブワードをパイプラインレジスタに入力する工程と、前記パイプラインレジスタから出力した加工後の前記サブワードを用いて演算を行う工程と、加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行う工程と、前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する工程とを有することを特徴とする。
In order to achieve the above object, a parallel operation method according to
請求項2記載の並列演算方法は、演算に用いる複数の入力ワードをそれぞれ複数のサブワードに分割して並列演算する並列演算方法であって、前記サブワードの最下位または最上位ビットになるように境界ビットを設定する工程と、前記サブワードをパイプラインレジスタに入力する工程と、前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する工程と、前記加工後の前記サブワードを用いて演算を行う工程と、加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行う工程と、前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する工程とを有することを特徴とする。 3. The parallel operation method according to claim 2, wherein a plurality of input words used for the operation are divided into a plurality of subwords to perform a parallel operation, and the boundary is set so as to be the least significant bit or the most significant bit of the subword. A step of setting a bit, a step of inputting the subword into a pipeline register, a step of processing the value of the boundary bit in the subword into a preset value according to the operation type, and the post-processing Performing the operation using the subword, performing the operation on the boundary bit using the boundary bit before processing and the carry value immediately before the boundary bit, and the boundary bit before processing in the boundary bit The operation result using the bit and the carry immediately before the boundary bit is output, and in the bits other than the boundary bit, By outputting a calculation result using the Buwado, characterized by a step of outputting the operation result of the input word corrects the calculation result using the word after the processing.
請求項3記載の並列演算方法は、請求項1または請求項2いずれかに記載の並列演算方法において、前記キャリーとして前記サブワードを用いた演算中の中間値を用い、前記サブワードを用いた演算と並行して前記境界ビットでの演算を行うことを特徴とする。
The parallel operation method according to claim 3 is the parallel operation method according to
請求項4記載の並列演算方法は、請求項1または請求項2または請求項3いずれかに記載の並列演算方法において、前記設定値を0とし、前記演算を加算とすることを特徴とする。 A parallel calculation method according to a fourth aspect is the parallel calculation method according to the first, second, or third aspect, wherein the set value is set to 0 and the calculation is added.
請求項5記載の並列演算方法は、請求項1または請求項2または請求項3いずれかに記載の並列演算方法において、前記設定値を1とし、前記演算を減算とすることを特徴とする。
The parallel operation method according to claim 5 is the parallel operation method according to
請求項6記載の並列演算方法は、請求項1または請求項2または請求項3または請求項4または請求項5いずれかに記載の並列演算方法において、前記演算は、桁上げ先見加算であることを特徴とする。
The parallel operation method according to claim 6 is the parallel operation method according to
請求項7記載の並列演算装置は、演算に用いる複数の入力ワードをそれぞれ複数の境界ビットを最下位または最上位ビットとしてサブワードに分割して並列演算する並列演算装置であって、前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する入力加工手段と、前記加工した境界ビットを含む前記サブワードを入力するパイプラインレジスタと、前記パイプラインレジスタから出力した加工後の前記サブワードを用いて前記演算を行う演算器と、加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行い、前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する出力補正手段とを有することを特徴とする。
The parallel processing device according to
このように、本発明によると、回路規模を増加することなく、高速な演算を実現することができる。 Thus, according to the present invention, high-speed computation can be realized without increasing the circuit scale.
本発明の並列演算方法は、入力ワードを分割して演算する際に、パイプラインレジスタに入力前のデータに対して、入力加工手段により所定の境界ビットの入力値を演算種類に応じて変換して演算を行い、出力補正手段により境界ビットの入力値の変換に応じて演算結果を補正することにより、回路規模を増加することなく、高速な演算を実現することができる。 According to the parallel operation method of the present invention, when an input word is divided and operated, the input value of a predetermined boundary bit is converted according to the operation type with respect to the data before being input to the pipeline register by the input processing means. By performing the calculation in this manner and correcting the calculation result according to the conversion of the input value of the boundary bit by the output correction means, a high-speed calculation can be realized without increasing the circuit scale.
また、演算器の途中から、出力補正に必要な信号を引き出して、その信号を用いて出力補正を行うことにより、出力補正を演算と並列に行うことができるので、より高速な演算を行うことができる。 In addition, by extracting a signal necessary for output correction from the middle of the arithmetic unit and performing output correction using the signal, output correction can be performed in parallel with the calculation, so that higher-speed calculation is performed. Can do.
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
以下、図1,図2,図3,図4を用いて、本発明の実施の形態1における並列演算装置について、加算器を例として説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(Embodiment 1)
Hereinafter, the parallel arithmetic device according to the first embodiment of the present invention will be described using an adder as an example with reference to FIGS.
図1は本発明の実施の形態1における並列加算回路構成を表すブロック図、図2は本発明の実施の形態1におけるセレクタの構成図、図3は本発明の実施の形態1における並列演算装置を例示する図である。 1 is a block diagram showing the configuration of a parallel adder circuit according to the first embodiment of the present invention, FIG. 2 is a block diagram of a selector according to the first embodiment of the present invention, and FIG. 3 is a parallel arithmetic unit according to the first embodiment of the present invention. FIG.
実施の形態1における並列加算回路は、図1に示されるように、入力加工手段101、演算器102、出力補正手段103、パイプラインレジスタ104、入力ワード111、制御信号112、演算結果信号113、演算結果ワード114により構成される。
As shown in FIG. 1, the parallel adder circuit according to the first embodiment includes an
図1において、2つの入力ワード111を演算する場合、入力ワードを分割したサブワードの最下位または最上位ビットになるように特定ビットを境界ビットとして設定し、入力加工手段101は、パイプラインレジスタ104に入力される2つの入力ワード111におけるそれぞれの特定ビットに対し、制御信号112に基づいた演算を行い、パイプラインレジスタ104の境界ビットの入力に、制御信号112に基づき、0または1の固定値を入力することで、入力ワードをサブワードに分割する。また、境界ビットのレジスタは2重化されており、1つのレジスタには、入力加工手段101の出力データが入力され、2重化されたもう1つのレジスタには、制御信号112に基づいた演算を行う前の境界ビットがデータ入力される。後に詳細に述べるように、境界ビットのレジスタを2重化して、入力加工前のデータを入れておくことにより、並列演算時に出力補正を行うことが可能になる。演算器102の入力にはパイプラインレジスタ104の出力が用いられる。出力補正手段103は、二重化されたパイプラインレジスタ104の境界ビットの出力と、演算結果信号113の特定ビットを入力として用い、制御信号112に基づいた演算を行い、特定ビットの演算結果の補正を行う。
In FIG. 1, when two
並列加算回路の演算結果ワード114として、境界ビットは出力補正手段103の出力を用い、それ以外のビットは、演算結果信号113を用いることで、並列加算回路の並列演算を実現している。
As the
このように、パイプラインレジスタ104と演算器102の間に、サブワード分割のための入力加工手段101が入らず、パイプラインレジスタ104の前に入力加工手段101を設けることにより、パイプラインレジスタ104と演算器102での演算サイクルにおける、入力加工手段101分の論理段数増加を無くし、演算時間の高速化を図ることができる。演算サイクルよりも前に入力データの加工を行うことにより、演算サイクルのゲート段数を減らしている。レジスタをはさむトータル段数としては同じであるが、演算サイクルがネックになっている場合、この方法は有効である。
In this way, the input processing means 101 for subword division does not enter between the
次に、入力加工手段101の詳細について、図1、図2を用いて演算器102が8ビット加算器である場合を例として説明する。
以下の説明では、8ビット加算器の入力をA[7:0],B[7:0]とし、加算結果が和S[7:0]、キャリーC[8]で出力されるものとする。なお、一般的に加算結果の和は
S[n]=A[n]^B[n]^C[n] (式1)
と表される。ここで“^”は排他的論理和を表す。また、各ビット毎のキャリーは
C[n+1]=A[n]・B[n]+B[n]・C[n]+C[n]・A[n](式2)
と表される。ここで“・”、“+”はそれぞれ論理積、論理和を表す。
Next, the details of the
In the following description, it is assumed that the inputs of the 8-bit adder are A [7: 0] and B [7: 0], and the addition result is output as the sum S [7: 0] and carry C [8]. . In general, the sum of the addition results is S [n] = A [n] ^ B [n] ^ C [n] (Formula 1)
It is expressed. Here, “^” represents exclusive OR. The carry for each bit is C [n + 1] = A [n] · B [n] + B [n] · C [n] + C [n] · A [n] (Formula 2)
It is expressed. Here, “·” and “+” represent logical product and logical sum, respectively.
4ビットずつの並列加算を行う場合には、上述の境界ビットとしてビット3を用いるとすると、A[3]、B[3]を入力加工手段に入力し、この時、入力加工手段では入力される値に関らず0を出力する。つまり、パイプラインレジスタに入力される値は、A[3]=B[3]=0となる。境界ビットの和は、式1より、S[3]=A[3]^B[3]^C[3]、式2より、C[4]=A[3]・B[3]+B[3]・C[3]+C[3]・A[3]と表せる。今、A[3]=B[3]=0であるので、S[3]=0^0^C[3]=C[3]、C[4]=0である。すなわち、ビット4にキャリーが伝播しないので、上位4ビットの加算については、上位4ビットの和がS[7:4]で得られ、キャリーがC[8]で得られる。下位3ビットの加算については、3ビットの和がS[2:0]で得られ、キャリーがS[3](=C[3])で得られる。このように、A,B両方の入力ワードにおける境界ビットの入力値を0とすることで、境界ビットでの和が0となるので、例え、さらに、直前のビットのキャリーが1であったとしても境界ビットにキャリーが発生せず、下位の加算から上位の加算へのキャリー伝播を防ぎ、境界ビットで下位の加算のキャリー結果を得ることができる。実施例である図2では、セレクタ201を用いることにより、入力加工手段101で入力データを定数0に変換することを実現している。今回の例では、制御信号112の値に応じて入力A[n](またはB[n])または定数0を選択する回路を用いて、出力信号として0が入力されている信号を選択して、必ず0が出力するようにしている。
In the case of performing 4-bit parallel addition, assuming that bit 3 is used as the boundary bit described above, A [3] and B [3] are input to the input processing means. At this time, the input processing means inputs them.
また、上位4ビットで減算を行う場合には、入力加工手段の出力として、1を出力すればよい。このようにすると、式2よりC[4]=1であるので、上位4ビットの初期キャリーが1となり、減算を行うことができる。 When subtraction is performed with the upper 4 bits, 1 may be output as the output of the input processing means. In this case, since C [4] = 1 from Equation 2, the initial carry of the upper 4 bits is 1, and subtraction can be performed.
このように、入力加工手段101は、図2に示されるような、演算命令に応じて、入力データと、0、1との選択を行うセレクタを用いることで実現ができる。
なお、今回の例では加算の場合、特定データとして0を、減算の場合、特定データとして1を選ぶ回路で説明したが、入力データが負論理の場合は、特定データを反転すればよい。
As described above, the
In the present example, a circuit has been described in which 0 is selected as the specific data for addition and 1 is selected as the specific data for subtraction. However, if the input data is negative logic, the specific data may be inverted.
なお、図1における入力加工手段は、1ビット分であり、入力を2つのサブワードに分割し、2つの並列計算を行っている。境界ビットを2つ以上設けることにより、3つ以上の並列計算が可能となる。3つのサブワードに分割する際は、2つの境界ビットを設けることで実現することができる。そのためには、サブワードの最上位または最下位ビットを境界ビットとすればよい。 The input processing means in FIG. 1 is for one bit, and the input is divided into two subwords to perform two parallel calculations. By providing two or more boundary bits, three or more parallel calculations can be performed. The division into three subwords can be realized by providing two boundary bits. For this purpose, the most significant or least significant bit of the subword may be a boundary bit.
このような入力加工手段を用いることにより、サブワード毎に加算・減算どちらの演算も行うことが可能となる。
ところで、入力データを固定するだけの構成では、ここで説明したように、下位は3ビットの加算になる。すなわち、8ビットの加算器で、4+3=7ビットの並列加算しか行えないので、合計8ビットの2並列加算を行うためには、9ビット加算器が必要となり、回路が増大してしまうことになる。
By using such an input processing means, it is possible to perform both addition and subtraction operations for each subword.
By the way, in the configuration that only fixes the input data, as described here, the lower order is addition of 3 bits. That is, since an 8-bit adder can only perform 4 + 3 = 7-bit parallel addition, a 9-bit adder is required to perform a total of 8-bit 2-parallel addition, which increases the circuit. Become.
次に、出力補正手段を用いることにより、8ビットの加算器で合計8ビットの並列演算が行えることを示す。すなわち、ビット長を最大に利用し、回路規模の縮小が図れることを示す。ここでは、境界ビットが1ビットのみ、下位側4ビット目の場合について説明を行う。 Next, it will be shown that a total of 8-bit parallel operations can be performed by an 8-bit adder by using the output correction means. In other words, it shows that the circuit size can be reduced by using the bit length to the maximum. Here, the case where the boundary bit is only 1 bit and the lower 4th bit is described.
図6を参照しながら、具体的な出力補正演算方法について説明する。
図6の右側は、8ビットの加算器を用いて4ビット+4ビットの並列加算を行う例である。上位4ビットで[1100]と[0111]の加算を行い、下位4ビットで[1101]と[0101]の加算を行う。結果としては、[1100]+[0111]=[10011]であるので、上位4ビットの和SU[3:0]=[0011]、キャリーCU=[1]となる。同様にして、[1101]+[0101]=[10010]であるので、上位4ビットの和SL[3:0]=[0010]、キャリーCL=[1]となる。次に、今回の発明により、これらの値が正しく計算されていることを示す。入力加工手段101は実施の形態1のように、制御信号112により、下位の最上位ビット、本例の場合はビット3の入力をA[3]=B[3]=0に変換する(図6右網掛け部分。)。すると、演算器102の入力データは[11000101]+[01110101]となるので、演算結果信号113は、和S[7:0]=[00111010]、キャリーC[8]=[1]となる。S[7:4]=[0011]=SU[3:0]、C[8]=CUとなるので、上位4ビットの加算結果はS[7:4]、C[8]で得られている。これは、A[3]=B[3]=0に変換することにより、式2のn=3の場合を計算すると、C[4]=0となるので、上位4ビットの加算に、キャリーが伝播しないようにされているためである。下位4ビットの加算結果に関しては、S[2:0]=[010]=SL[2:0]であるので、下位の3ビットは正確な値が得られているが、S[3]およびキャリーC[4]が得られていない。ここで、式1より本来はS[3]=A[3]^B[3]^C[3]、の値を出力しなければならないが、入力加工手段101によってA[3]=B[3]=0の値が入力されているので、S[3]=A[3]^B[3]^C[3]=0^0^C[3]=C[3]の値が出力されている。また、下位の加算結果のキャリーとして、式2よりC[4]=A[3]・B[3]+B[3]・C[3]+C[3]・A[3]の値を出力する必要がある。そこで、出力補正手段103において、加工を行う前のA[3],B[3]、および、S[3]から出力されているC[3]の値を用いて、S[3]=A[3]^B[3]^C[3]および、C[4]=A[3]・B[3]+B[3]・C[3]+C[3]・A[3]の値を計算する。これは、図3において、信号311にC[3]を入力し、制御信号112に1を入力することで得られる。これまでをまとめると、境界部分のビット3においては、加工を行う前のデータと、加工を行ったあとの演算結果を用いて、値を再計算する必要があったが、その他のビットにおいては、加工後のデータに関しては、求める値が出力されていることになる。このため、境界ビットにおいては出力補正手段103の演算結果を出力し、境界ビット以外のビットにおいては加工後のサブワードを用いた演算結果を出力することにより、演算結果ワード114を再計算することができる。
A specific output correction calculation method will be described with reference to FIG.
The right side of FIG. 6 is an example of performing 4-bit + 4-bit parallel addition using an 8-bit adder. [1100] and [0111] are added with the upper 4 bits, and [1101] and [0101] are added with the lower 4 bits. As a result, since [1100] + [0111] = [10011], the upper 4 bits of the sum SU [3: 0] = [0011] and carry CU = [1]. Similarly, since [1101] + [0101] = [10010], the upper 4 bits of the sum SL [3: 0] = [0010] and carry CL = [1]. Next, it will be shown that these values are calculated correctly according to the present invention. As in the first embodiment, the input processing means 101 converts the input of the lower most significant bit, in this example, bit 3, into A [3] = B [3] = 0 by the control signal 112 (see FIG. 6 right shaded part.). Then, since the input data of the
具体的な回路構成について、図3を参照しながら説明する。
図3の出力補正手段103において、並列演算する場合は、C[n]の値が演算結果信号311に出力され、補正前の演算結果は正しい値を示さないので、境界ビットについては、入力ワード111であるA[n]、B[n]の値を用いて、補正値として、式1,2に基づいて、C[n+1],S[n]の値を計算し、境界ビットの演算結果としている。また、境界ビットを設けず、並列演算しない場合には、図6左のように、8ビットの加算器を用いて8ビットの加算を行うこととなる。この場合、入力加工手段101は、入力データA[n]、B[n]を選択して出力する。このため、演算器102には通常の8ビットデータA[7:0]、B[7:0]が入るので、演算結果はS[7:0]となる、このため、図3のネット311には、S[3]が入力される。演算結果ワード114としては、S[3]を出力する必要があるので、図3のSn2の入力を114にスルーさせる必要がある。これは、制御信号112に0を入力することで、S[n]=Sn2^0=Sn2となり、求める結果が得られることになる。
A specific circuit configuration will be described with reference to FIG.
In the output correction means 103 of FIG. 3, when performing parallel calculation, the value of C [n] is output to the
以上は境界ビットが4ビット目のみの場合である。
また、任意のビットでサブワードに区切る場合には、入力加工手段、出力補正手段を全ビットに入れておくことによって実現できる。
The above is the case where the boundary bit is only the fourth bit.
Moreover, when dividing into subwords by arbitrary bits, it can be realized by putting input processing means and output correction means in all bits.
C[n+1]は式2の通りである。S[n]について説明すると、境界ビット以外のビットでは(8ビット加算器で、4ビット+4ビットの分割を行う場合では、ビット7からビット4と、ビット2からビット0)、制御信号111の値が0になるので、図3において、Sn1=0^0=0、Sn2=S[n]となる。よって、
S[n]=Sn1^Sn2=0^S[n]=S[n]
となり、正しい加算結果が出力される。境界ビットにおいては、制御信号112の値が1になるので、Sn1=A[n]^B[n]、Sn2=C[n]となる。よって、
S[n]=Sn1^Sn2=A[n]^B[n]^C[n]=S[n]
となり、同様に正しい加算結果が出力される。
C [n + 1] is as in Expression 2. S [n] will be described. For bits other than the boundary bits (in the case of dividing 4 bits + 4 bits with an 8-bit adder,
S [n] = Sn1 ^ Sn2 = 0 ^ S [n] = S [n]
The correct addition result is output. In the boundary bit, since the value of the
S [n] = Sn1 ^ Sn2 = A [n] ^ B [n] ^ C [n] = S [n]
Similarly, the correct addition result is output.
このように、出力補正回路を用いることにより、加算器のビット長を最大限に利用した並列加算器を構成することが可能になり、回路規模を削減することができる。
以上のように、入力ワードを分割して演算する際に、パイプラインレジスタに入力前のデータに対して、入力加工手段により所定の境界ビットの入力値を演算種類に応じて変換して演算を行い、出力補正手段により境界ビットの入力値の変換に応じて演算結果を補正することにより、回路規模を増加することなく、高速な演算を実現することができる。
(実施の形態2)
以下、図4,図5を用いて、本発明の実施の形態2における並列演算装置について説明する。
As described above, by using the output correction circuit, it is possible to configure a parallel adder that uses the bit length of the adder to the maximum, and the circuit scale can be reduced.
As described above, when the operation is performed by dividing the input word, the input value of a predetermined boundary bit is converted according to the operation type by the input processing unit with respect to the data before being input to the pipeline register. Then, by correcting the calculation result according to the conversion of the input value of the boundary bit by the output correction means, high-speed calculation can be realized without increasing the circuit scale.
(Embodiment 2)
Hereinafter, the parallel arithmetic device according to the second embodiment of the present invention will be described with reference to FIGS.
図4は本発明における実施の形態2の並列加算回路構成を表すブロック図、図5は本発明における実施の形態2の並列加算を説明する図である。図4に示されるように、入力加工手段101、演算器102、出力補正手段103、演算器内部信号411により構成される。
FIG. 4 is a block diagram showing the configuration of the parallel adder circuit according to the second embodiment of the present invention, and FIG. 5 is a diagram for explaining the parallel adder according to the second embodiment of the present invention. As shown in FIG. 4, the
入力加工手段101については、実施の形態1と同様である。ただし、実施の形態1ではパイプラインレジスタの前段に入れていたが、ここではパイプラインレジスタの後段に入れてもよい。出力補正手段103の入力として、演算の中間値である演算器内部信号411を用いる。この演算器内部信号411は境界ビット目に上がってくるキャリー信号を用いる。すなわち実施の形態1の演算結果信号113は実施の形態1の説明で述べたように、境界ビットでの分割を行う場合キャリー信号になる、これと同論理の信号を、演算器の途中から引き抜くことで、全体のゲート段数を減らしている。図1、図3の演算器構成、出力補正手段を用いると、演算器出力にさらに出力補正手段の論理ゲートが入り、演算速度が劣化する。そこで、図4の構成にすることで、実施の形態1の演算結果信号113と同論理の信号を演算器の途中から引き抜き、演算の一部と、出力補正を並列に行うことができるようになり、高速化を図ることができる。
The
すべての加算方式において、図4のような実施の形態1の演算結果信号113と同論理の信号が存在するわけではない。しかし、近年高速加算方法として一般的に使用されている桁上げ先見方式などでは、該当信号が存在する。次に桁上げ先見方式の場合について例を挙げて説明する。 In all the addition methods, a signal having the same logic as the operation result signal 113 of the first embodiment as shown in FIG. 4 does not exist. However, there is a corresponding signal in the carry look-ahead method generally used as a high-speed addition method in recent years. Next, the carry look ahead method will be described with an example.
図5を用いて、8ビットの桁上げ先見方式の場合の例を示す。桁上げ先見回路の回路図は、一般的に図5のように、桁上げ生成項および伝播項生成部801、桁上げ生成部802、和生成部803からなり、桁上げ生成部の出力が、8本出力され、和生成部803の入力となっている。桁上げ生成部802の8本の出力は、ビット1から8のキャリーC[8:1]に相当する。和生成部804は、このキャリー信号と入力信号との演算を行い、和S[7:0]を出力する。図4における演算器内部信号411として、この桁上げ生成部802からの出力であるキャリー信号を用いる。
An example in the case of an 8-bit carry look-ahead method will be described with reference to FIG. The circuit diagram of the carry look-ahead circuit generally includes a carry generation term and propagation term generation unit 801, a carry generation unit 802, and a sum generation unit 803 as shown in FIG. Eight are output and are input to the sum generation unit 803. The eight outputs of the carry generation unit 802 correspond to carry C [8: 1] of
図4において、演算器中間内部信号411に境界ビットの桁上げ生成部802の出力を用いると、正しい結果が得られるのは、実施の形態1で示した通りである。なぜならば、実施の形態1の演算結果信号113と同論理の信号を、演算器の出力からではなく、演算器の途中から引き出しているからである。これにより、桁上げ先見回路の例では、実施の形態1よりも、和生成部803の分だけゲート段数を削減、すなわち高速化を図ることができる。 In FIG. 4, when the output of the boundary bit carry generator 802 is used as the arithmetic unit intermediate internal signal 411, the correct result is obtained as described in the first embodiment. This is because a signal having the same logic as the operation result signal 113 of the first embodiment is drawn from the middle of the arithmetic unit, not from the output of the arithmetic unit. Thereby, in the example of the carry look ahead circuit, the number of gate stages can be reduced, that is, the speed can be increased by the sum generation unit 803 as compared with the first embodiment.
よって、第2の従来例と比較しても、演算器の高速化を図ることができる。
なお、同様の論理、機能を表す演算器内部信号、出力補正回路であれば、本発明の効果を得るには、図8に示した加算回路に限定されるものではないことは自明である。
Therefore, even if compared with the second conventional example, the computing unit can be speeded up.
It is obvious that the arithmetic unit internal signal and output correction circuit having the same logic and function are not limited to the addition circuit shown in FIG. 8 in order to obtain the effects of the present invention.
以上のように、演算器の途中に現れるキャリー信号と同論理の信号を引き出すことにより、出力補正を、演算器の演算と並列に行うことができるので、実施の形態1において演算器の演算後出力補正を行よりさらに、回路規模を増加することなく、高速な演算を実現することができる。 As described above, by extracting a signal having the same logic as the carry signal appearing in the middle of the computing unit, output correction can be performed in parallel with the computation of the computing unit. It is possible to realize high-speed calculation without increasing the circuit scale further than the output correction.
本発明にかかる並列演算装置および並列演算方法は、回路規模を増加することなく、高速な演算を実現することができ、入力データを分割して並列算術演算等に有用である。 The parallel computing device and the parallel computing method according to the present invention can realize high-speed computation without increasing the circuit scale, and are useful for parallel arithmetic computation by dividing input data.
101 入力加工手段
102 演算器
103 出力補正手段
104 パイプラインレジスタ
111 入力ワード
112 制御信号
113 演算結果信号
114 演算結果ワード
201 セレクタ
311 演算結果信号
411 演算器内部信号
801 桁上げ生成項および伝播生成項
802 桁上げ生成部
803 和生成部
DESCRIPTION OF
Claims (7)
前記サブワードの最下位または最上位ビットになるように境界ビットを設定する工程と、
前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する工程と、
前記加工した境界ビットを含む前記サブワードをパイプラインレジスタに入力する工程と、
前記パイプラインレジスタから出力した加工後の前記サブワードを用いて演算を行う工程と、
加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行う工程と、
前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する工程と
を有することを特徴とする並列演算方法。 A parallel operation method in which a plurality of input words used for an operation are each divided into a plurality of subwords to perform a parallel operation,
Setting boundary bits to be the least significant or most significant bits of the subword;
Processing the value of the boundary bit in the subword into a preset value according to the operation type;
Inputting the subword containing the processed boundary bits into a pipeline register;
Performing an operation using the processed subword output from the pipeline register;
Performing the operation on the boundary bit using the boundary bit before processing and the carry value immediately before the boundary bit;
In the boundary bit, the operation result using the boundary bit before processing and the carry immediately before the boundary bit is output, and in the bit other than the boundary bit, the operation result using the processed subword is output. And a step of correcting the calculation result using the processed subword and outputting the calculation result of the input word.
前記サブワードの最下位または最上位ビットになるように境界ビットを設定する工程と、
前記サブワードをパイプラインレジスタに入力する工程と、
前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する工程と、
前記加工後の前記サブワードを用いて演算を行う工程と、
加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行う工程と、
前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する工程と
を有することを特徴とする並列演算方法。 A parallel operation method in which a plurality of input words used for an operation are each divided into a plurality of subwords to perform a parallel operation,
Setting boundary bits to be the least significant or most significant bits of the subword;
Inputting the subword into a pipeline register;
Processing the value of the boundary bit in the subword into a preset value according to the operation type;
Performing an operation using the subword after the processing;
Performing the operation on the boundary bit using the boundary bit before processing and the carry value immediately before the boundary bit;
In the boundary bit, the operation result using the boundary bit before processing and the carry immediately before the boundary bit is output, and in the bit other than the boundary bit, the operation result using the processed subword is output. And a step of correcting the calculation result using the processed subword and outputting the calculation result of the input word.
前記サブワードの内前記境界ビットの値を演算種類に応じてあらかじめ設定された設定値に加工する入力加工手段と、
前記加工した境界ビットを含む前記サブワードを入力するパイプラインレジスタと、
前記パイプラインレジスタから出力した加工後の前記サブワードを用いて前記演算を行う演算器と、
加工前の前記境界ビットと前記境界ビット直前のキャリーの値を用いて前記境界ビットでの演算を行い、前記境界ビットにおいては加工前の前記境界ビットおよび前記境界ビット直前のキャリーを用いた演算結果を出力し、前記境界ビット以外のビットにおいては前記加工後のサブワードを用いた演算結果を出力することにより、前記加工後のサブワードを用いた演算結果の補正を行い前記入力ワードの演算結果を出力する出力補正手段と
を有することを特徴とする並列演算装置。 A parallel operation device that divides a plurality of input words used for an operation into subwords with a plurality of boundary bits as least significant or most significant bits and performs parallel operations,
Input processing means for processing the value of the boundary bit in the subword into a set value set in advance according to the operation type;
A pipeline register for inputting the subword including the processed boundary bit;
A computing unit that performs the computation using the processed subword output from the pipeline register;
The boundary bit before processing and the carry value immediately before the boundary bit are used to perform an operation on the boundary bit, and the boundary bit before the processing and the result of the operation using the carry immediately before the boundary bit are used in the boundary bit. And outputs the operation result using the processed subword in the bits other than the boundary bits, thereby correcting the operation result using the processed subword and outputting the operation result of the input word. And an output correcting means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004052586A JP2005242722A (en) | 2004-02-27 | 2004-02-27 | Parallel operation unit and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004052586A JP2005242722A (en) | 2004-02-27 | 2004-02-27 | Parallel operation unit and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005242722A true JP2005242722A (en) | 2005-09-08 |
Family
ID=35024387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004052586A Pending JP2005242722A (en) | 2004-02-27 | 2004-02-27 | Parallel operation unit and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005242722A (en) |
-
2004
- 2004-02-27 JP JP2004052586A patent/JP2005242722A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8965945B2 (en) | Apparatus and method for performing floating point addition | |
CN101221490B (en) | Floating point multiplier and adder unit with data forwarding structure | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
JPH0542011B2 (en) | ||
JPS6114532B2 (en) | ||
US7827226B2 (en) | Hybrid arithmetic logic unit | |
KR19980041753A (en) | An adder for processing a plurality of data having different data types | |
US7433911B2 (en) | Data processing apparatus and method for performing floating point addition | |
JP3313002B2 (en) | Floating point arithmetic unit | |
US7016930B2 (en) | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation | |
US9928035B2 (en) | Multiply-and-accumulate unit in carry-save adder format and application in a feedback loop equalizer | |
JP3803438B2 (en) | Floating point multiplication and accumulator | |
JPH04270415A (en) | High-performance adder | |
JP2511527B2 (en) | Floating point arithmetic unit | |
JP2005242722A (en) | Parallel operation unit and method | |
US6065034A (en) | Circuit and method employing an adder for sign extending operands | |
JP5549743B2 (en) | Decimal absolute value adder | |
JP4372822B2 (en) | Parity prediction circuit and logical operation circuit using the same | |
JP7119543B2 (en) | Adder/subtractor circuit and method of controlling the adder/subtractor circuit | |
JP2002023997A (en) | Selection base rounding method for floating point operation | |
US20050210086A1 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
He et al. | Multiply-add fused float point unit with on-fly denormalized number processing | |
JP4109181B2 (en) | Logic circuit, and floating-point arithmetic circuit and microprocessor using the same | |
JP2608090B2 (en) | High radix non-restoring divider | |
Gopal | A novel low power multi path double precision fused multiplier accumulator architecture |