JP2007156620A - Multiplier with asynchronous code and its algorithm - Google Patents

Multiplier with asynchronous code and its algorithm Download PDF

Info

Publication number
JP2007156620A
JP2007156620A JP2005347941A JP2005347941A JP2007156620A JP 2007156620 A JP2007156620 A JP 2007156620A JP 2005347941 A JP2005347941 A JP 2005347941A JP 2005347941 A JP2005347941 A JP 2005347941A JP 2007156620 A JP2007156620 A JP 2007156620A
Authority
JP
Japan
Prior art keywords
multiplier
partial product
bit
multiplicand
ppg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005347941A
Other languages
Japanese (ja)
Inventor
Shinyu Chin
陳進勇
Kyoji Go
呉匡時
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.)
MINISTRY OF NAT DEFENSE CHUNG
National Chung Shan Institute of Science and Technology NCSIST
Original Assignee
MINISTRY OF NAT DEFENSE CHUNG
National Chung Shan Institute of Science and Technology NCSIST
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 MINISTRY OF NAT DEFENSE CHUNG, National Chung Shan Institute of Science and Technology NCSIST filed Critical MINISTRY OF NAT DEFENSE CHUNG
Priority to JP2005347941A priority Critical patent/JP2007156620A/en
Publication of JP2007156620A publication Critical patent/JP2007156620A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multiplier with an asynchronous code attaining faster multiplication. <P>SOLUTION: This multiplier with an asynchronous code includes N pieces of partial product generators (PPG); an arithmetic module; and a preceding zero bit detector. The partial product generator generates a plurality of partial product values according to multipliers and multiplicands. The arithmetic module executes a total operation to outputs from the PPG ranging from the (N+1)th PPG to the first PPG, and the output from the Nth PPG is added at the end. Furthermore, when the preceding zero bit detector detects a preceding zero bit in the multipliers and the multiplicands, a partial product output corresponding to the bit of "0" is directly set as zero. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は乗算器とそのアルゴリズムに関し、特に非同期式符号付き乗算器とそのアルゴリズムに関する。   The present invention relates to a multiplier and its algorithm, and more particularly to an asynchronous signed multiplier and its algorithm.

乗算器は、マイクロプロセッサ、データ信号処理、離散コサイン変換等々といった多くのアプリケーションにおいて重要な役割を果たしている。実際、乗算器は計算チップにおける大部分の演算時間を消費する。従って、乗算器の実行時間はチップの全体効率を決定する。今日まで、同期回路設計における幾つかのアプローチが提供され、非同期回路設計におけるアプローチもある程度提案されている。概して、非同期的方法は同期回路を凌ぐ、低い電力消費、少ない平均計算時間、異なる製造プロセス及び環境への適合可能性、等の幾つかの優位点を有する。特に、これらの優位点は、ある種のVLSI(超大規模集積回路)が遭遇する問題点を解決する上で極めて重要である。   Multipliers play an important role in many applications such as microprocessors, data signal processing, discrete cosine transforms, and so on. In fact, the multiplier consumes most of the computation time in the computing chip. Thus, the execution time of the multiplier determines the overall efficiency of the chip. To date, several approaches in synchronous circuit design have been provided, and some approaches in asynchronous circuit design have also been proposed. In general, asynchronous methods have several advantages over synchronous circuits, such as low power consumption, low average computation time, adaptability to different manufacturing processes and environments, and the like. In particular, these advantages are extremely important in solving the problems encountered by certain types of VLSIs (very large scale integrated circuits).

今日の乗算器のタイプは、右から左(R−L)のアレイ乗算器、左から右(L−R)のアレイ乗算器、区分アレイ乗算器及び多重アレイ乗算器に分けることができる。   Today's types of multipliers can be divided into right-to-left (R-L) array multipliers, left-to-right (L-R) array multipliers, partitioned array multipliers, and multiple array multipliers.

図1A及び図1Bは各々、順次桁上げ式(ripple−carry)のアレイ乗算器100と桁上げ保存式(carry−save)のアレイ乗算器120とを略示したものであり、これらのアレイ乗算器は双方とも8×8の左から右(L−R)のアーキテクチャを有する。図1A及び図1Bを参照すると、L−R乗算器100または120は主として、部分積生成器(PPG)102と、L−R加算器アレイ104と、最終段加算器108とを含む。R−L乗算器とL−R乗算器との相違は、加算器アレイ104及び最終段加算器108にある。R−L加算器アレイでは、合計演算は最下位ビットの部分積(LSBPP)で開始され、次に合計及び桁上げが一段ずつ次の上位ビットへ広がって最終的に最終段加算器で最上位ビットの部分積(MSBPP)が加算される。反対に、L−R加算器アレイでは、合計演算は最上位ビットの部分積(MSBPP)で開始され、結果は一段ずつ次の下位ビットへ広がって最終的に最終段加算器で最下位ビットの部分積(LSBPP)が加算される。   FIG. 1A and FIG. 1B schematically illustrate a carry-save array multiplier 100 and a carry-save array multiplier 120, respectively. Both vessels have an 8 × 8 left-to-right (LR) architecture. Referring to FIGS. 1A and 1B, the LR multiplier 100 or 120 mainly includes a partial product generator (PPG) 102, an LR adder array 104, and a final stage adder 108. The difference between the RL multiplier and the LR multiplier is in the adder array 104 and the final stage adder 108. In the RL adder array, the summation operation starts with the least significant bit partial product (LSBPP), then the sum and carry are spread one step at a time to the next higher bit, and finally the highest bit in the final stage adder. The partial product of bits (MSBPP) is added. Conversely, in the LR adder array, the sum operation starts with the partial product (MSBPP) of the most significant bit, and the result spreads one step at a time to the next lower bit, and finally the least significant bit of the last stage adder. The partial product (LSBPP) is added.

乗数または被乗数何れかの1ビットは0であることは周知であり、対応する部分積は「0」になるはずである。しかしながら従来型の乗算器の場合、「0」ビットに対しても部分積演算はやはり冗長的に実行され、時間を無駄にしている。加えて演算要素に関しては、その一般的なビットの長さがシステムにおける設計されたビット長さより遙かに短い。即ち、高位ビットの値はしばしば「0」であり、これらの0に対する計算は単に多大な時間の無駄である。   It is well known that one bit of either the multiplier or the multiplicand is 0, and the corresponding partial product should be “0”. However, in the case of the conventional type multiplier, the partial product operation is also executed redundantly for “0” bits, and time is wasted. In addition, for arithmetic elements, the general bit length is much shorter than the designed bit length in the system. That is, the value of the high order bit is often “0”, and the computation for these zeros is simply a waste of time.

図2は、乗数及び被乗数のヒット数と有効ビット長さとの関係の統計分布を示すグラフである。図2を参照すると、このグラフは6,746,853個のデータからの統計であり、1つのデータの最大有効ビットは一般に16ビットである。言い替えれば、16ビットを超えるビット値はほぼ全て「0」である。従って、この統計結果は、乗算演算を高速化するかなりの余地があることを立証している。   FIG. 2 is a graph showing a statistical distribution of the relationship between the number of hits of the multiplier and multiplicand and the effective bit length. Referring to FIG. 2, this graph is a statistic from 6,746,853 data, and the maximum valid bit of one data is generally 16 bits. In other words, almost all bit values exceeding 16 bits are “0”. Therefore, this statistical result proves that there is considerable room for speeding up multiplication operations.

上記記述を基礎として、本発明の目的は、より速い乗算演算を有する非同期式符号付き乗算器を提供することにある。   Based on the above description, an object of the present invention is to provide an asynchronous signed multiplier having a faster multiplication operation.

本発明の別の目的は、符号付きデータを計算するための非同期式符号付き乗算のアルゴリズムを提供することにある。   Another object of the present invention is to provide an asynchronous signed multiplication algorithm for calculating signed data.

本発明によって提供される非同期式符号付き乗算器は、乗数及び被乗数に対する符号付きの乗算演算に適し、上記乗数及び被乗数は各々Nビット及びMビットを有する。N及びMはゼロより大きい正の整数であり、乗数、被乗数及び積は全て2の補数である。本発明の非同期式符号付き乗算器は、乗数及び被乗数による部分積結果を生成するために使用されるN個の部分積生成器(PPG)を含み、上記部分積はDiで示され、Diはi番目のPPGにおける、被乗数のあらゆるビット数と乗数のi番目のビット数とのタイミングを合わせることによって得られる部分積を表示する。さらにiは、N以下かつ1以上の整数である。各部分積結果はM個の部分積を含み、部分積生成器からの全出力は演算モジュールへ送られ、下記[数1]の計算が実行される。

Figure 2007156620


上記[数1]の計算から、第1の演算結果が得られる。その後、演算モジュールは第2の演算結果を得るために第1の演算結果にDNを加算する。演算モジュールはさらに先行ゼロビット検出器へ結合され、これは乗数及び被乗数をビット順に、MSB(最上位ビット)からLSB(最下位ビット)へとチェックする。チェックの間、最初の「1」ビットに先行する「0」ビットは何れも空ビットとしてカウントされ、対応する部分積値は「0」で出力される。最初の「1」ビットからLSBまでの全てのビットは、有効ビットと呼ばれる。 The asynchronous signed multiplier provided by the present invention is suitable for a signed multiplication operation on a multiplier and a multiplicand, and the multiplier and multiplicand each have N bits and M bits. N and M are positive integers greater than zero, and the multiplier, multiplicand, and product are all two's complement. The asynchronous signed multiplier of the present invention includes N partial product generators (PPG) that are used to generate partial product results with multipliers and multiplicands, where the partial products are denoted by Di, where Di is In the i-th PPG, the partial product obtained by matching the timing of every bit number of the multiplicand with the i-th bit number of the multiplier is displayed. Further, i is an integer of N or less and 1 or more. Each partial product result includes M partial products, and all outputs from the partial product generator are sent to the arithmetic module, and the following [Equation 1] is calculated.
Figure 2007156620


The first calculation result is obtained from the calculation of [Equation 1]. Thereafter, the calculation module adds DN to the first calculation result to obtain the second calculation result. The arithmetic module is further coupled to a leading zero bit detector, which checks the multiplier and multiplicand in bit order, MSB (most significant bit) to LSB (least significant bit). During the check, any “0” bits preceding the first “1” bit are counted as empty bits, and the corresponding partial product value is output as “0”. All bits from the first “1” bit to the LSB are called valid bits.

本発明の上記実施形態では、非同期式符号付き乗算器はさらに、上述の第2の演算結果を決定するための演算モジュールに結合される完了検出器を含む。   In the above embodiment of the present invention, the asynchronous signed multiplier further includes a completion detector coupled to the arithmetic module for determining the second arithmetic result described above.

一方で本発明は、乗数及び被乗数に対する符号付き乗算演算に適する非同期式符号付き乗算器のためのアルゴリズムを提供し、この場合の乗数及び被乗数は各々Nビット及びMビットを有する。N及びMは、ゼロより大きい正の整数である。乗数または被乗数の最高位ビットは符号ビットである。本発明によれば、複数の第1の部分積値を得るために、被乗数は乗数の各ビット数と逐次i番目のビット数から最初のビット数へタイミングを合わせる。その後、取得した第1の部分積値は合計され、第1の演算結果が得られる。さらに被乗数は、複数の第2の部分積値を得るために乗数のN番目のビット数とタイミングを合わされる。次に第1の演算結果は第2の部分積値によって加算され、第2の演算結果が得られる。乗数及び被乗数における任意の「0」ビットに関しては、「0」ビットに関連する演算が免除され、関連する部分積値は直接「0」に設定される。   On the other hand, the present invention provides an algorithm for an asynchronous signed multiplier suitable for a signed multiplication operation on a multiplier and a multiplicand, where the multiplier and multiplicand have N bits and M bits, respectively. N and M are positive integers greater than zero. The most significant bit of the multiplier or multiplicand is a sign bit. According to the present invention, in order to obtain a plurality of first partial product values, the multiplicand adjusts the timing from the bit number of the multiplier to the first bit number sequentially. Thereafter, the acquired first partial product values are summed to obtain a first calculation result. In addition, the multiplicand is timed with the Nth bit number of the multiplier to obtain a plurality of second partial product values. Next, the first calculation result is added by the second partial product value to obtain a second calculation result. For any “0” bit in the multiplier and multiplicand, the operation associated with the “0” bit is exempted and the associated partial product value is set directly to “0”.

乗数の最上位ビットに関連する部分積値は最終合計の加算を行うための全合計演算の終わりにスケジューリングされることから、本発明は、符号の付いた数に対する演算を実行して計算時間を節約することができる。   Since the partial product value associated with the most significant bits of the multiplier is scheduled at the end of the total sum operation to add the final sum, the present invention performs the operation on the signed number to reduce the computation time. Can be saved.

図3は、5×5の左から右の符号の付いた数の正規乗算演算を示す図である。M1及びM2が被乗数及び乗数を示す図3を参照すると、乗数M2の例えばx4、x3及びx2である上位ビットは「0」であることが想定され、よってこの「0」ビットに関連する部分積値は被乗数M1の値に関わらず「0」になる。常識的に言って、「0」ビットに関連する演算は時間を節約するために免除され、関連の部分積値は直接「0」に設定される。   FIG. 3 is a diagram illustrating 5 × 5 numbered normal multiplication operations with a sign from left to right. Referring to FIG. 3, where M1 and M2 indicate the multiplicand and multiplier, it is assumed that the upper bits of multiplier M2, for example x4, x3 and x2, are "0", and therefore the partial product associated with this "0" bit. The value is “0” regardless of the value of the multiplicand M1. Commonly speaking, operations associated with a “0” bit are exempted to save time, and the associated partial product value is set directly to “0”.

しかしながら被乗数M1及び乗数M2の符号の付いた数の場合、状況は上述のものとは異なり、被乗数M1及び乗数M2の最上位ビットy4及びx4は符号ビットである。図3からは、符号の付いた数に対する乗算演算の場合、被乗数M1及び乗数M2の最上位ビット双方に関連する部分積(y4x4)を除く被乗数M1/乗数M2の一方の最上位ビットに関連する残りの部分積は、破線で囲まれた部分に示すように位相を反転される必要のあることが分かる。故に、もとの「0」部分積は、位相反転の後「1」になる。   However, for the signed numbers of multiplicand M1 and multiplier M2, the situation is different from that described above, and the most significant bits y4 and x4 of multiplicand M1 and multiplier M2 are sign bits. From FIG. 3, in the case of a multiplication operation on a signed number, it relates to one most significant bit of the multiplicand M1 / multiplier M2 excluding the partial product (y4x4) related to both the most significant bit of the multiplicand M1 and the multiplier M2. It can be seen that the remaining partial products need to be inverted in phase as shown in the portion enclosed by the broken line. Therefore, the original “0” partial product becomes “1” after phase inversion.

さらに、通常、有効ビット長さは長くないため、第1の行の部分積値、例えば図3におけるy4x4、(y3x4)’、(y2x4)’、(y1x4)’及び(y0x4)’が「1」になる確率は極めて高く、従って後続の部分値に対する加算演算は次の部分値が「0」であるか否かに関わらず連続して実行されることが分かる。これは、多大な時間を不必要に浪費する。   Furthermore, since the effective bit length is usually not long, the partial product values of the first row, for example, y4x4, (y3x4) ′, (y2x4) ′, (y1x4) ′, and (y0x4) ′ in FIG. It can be seen that the addition operation for the subsequent partial value is executed continuously regardless of whether or not the next partial value is “0”. This wastes a lot of time unnecessarily.

上述の問題点を解決するために、本発明は、例えば図4に示すような5×5のL−R符号付き乗算アルゴリズムを提供する。逆転の発想から、本発明は、図3におけるもとの第1の行の部分積値を最終段に配置替えをして計算する。その結果、図3におけるもとの第2の行の部分積値、即ち(y4x3)’、y3x3、y2x3、y1x3及びy0x3は第1の行へ進められて計算される。この新規再配列の下では、被乗数M1または乗数M2の上位ビットが「0」として発見されると、関連する部分積値は計算なしにゼロとしてフラグを立てられる可能性がある。位相反転の後に最上位ビットに関連する幾つかの部分積値が「1」になるとしても、反転された部分積値は既に計算の終わりにスケジューリングされているので実際の計算時間は依然として節約される。   In order to solve the above problems, the present invention provides a 5 × 5 LR signed multiplication algorithm as shown in FIG. From the idea of reversal, the present invention calculates the partial product value of the original first row in FIG. As a result, the partial product values of the original second row in FIG. 3, ie, (y4x3) ', y3x3, y2x3, y1x3 and y0x3, are advanced to the first row and calculated. Under this new rearrangement, if the higher order bits of multiplicand M1 or multiplier M2 are found as “0”, the associated partial product value may be flagged as zero without calculation. Even if some partial product values associated with the most significant bit after phase inversion become “1”, the actual calculation time is still saved because the inverted partial product values are already scheduled at the end of the calculation. The

図5は、本発明の一実施形態による非同期式符号付き乗算器の略回路図である。図5を参照すると、本実施形態によって提供される乗算器500は8×8乗算器であり、これは、本乗算器が符号の付いた8ビットの乗数と符号の付いた8ビットの被乗数とに対する乗算演算のために機能し得ることを意味する。但し、本実施形態の8×8乗算器500は本発明を説明するための単なる例示であり、本発明の範囲を限定するものではない。先に述べたように、本発明が提供する非同期式符号付き乗算器は、Nビットの乗数及びMビットの被乗数に対する乗算演算を処理するように設計される。この場合のN及びMは、0より大きい正の整数である。実際、当業者にとって、本発明の原理を基礎として本発明の精神を逸脱することなく、他の仕様によって所望される乗算器を構築することは容易である。   FIG. 5 is a schematic circuit diagram of an asynchronous signed multiplier according to an embodiment of the present invention. Referring to FIG. 5, the multiplier 500 provided by the present embodiment is an 8 × 8 multiplier, which is a signed 8-bit multiplier and a signed 8-bit multiplicand. It can function for multiplication operations on. However, the 8 × 8 multiplier 500 of the present embodiment is merely an example for explaining the present invention, and does not limit the scope of the present invention. As previously mentioned, the asynchronous signed multiplier provided by the present invention is designed to handle multiplication operations on N-bit multipliers and M-bit multiplicands. N and M in this case are positive integers greater than zero. In fact, it is easy for those skilled in the art to construct the desired multiplier according to other specifications without departing from the spirit of the invention based on the principles of the invention.

乗算器500は、複数の部分積生成器(PPG)C1乃至C8を含む。本発明においては、PPGの番号は乗算器のビット数と同じもので指定される。乗算器500はさらに、演算モジュール510と、先行ゼロビット検出器540と、完了検出器550とを含む。   The multiplier 500 includes a plurality of partial product generators (PPG) C1 to C8. In the present invention, the PPG number is designated by the same number of bits as the multiplier. Multiplier 500 further includes an arithmetic module 510, a leading zero bit detector 540, and a completion detector 550.

図5を参照すると、PPG C1〜C8は乗数及び被乗数に応じて部分積結果を生成し、i番目のPPGにより生成される部分積結果はDiで表示される。下付き文字iは、被乗数の全ビット及び乗数のi番目のビットに対するi番目のPPG装置の乗算を表す。例えば、D3は、被乗数の全ビットが乗数の第3のビットで乗じられた、第3のPPG C3からの部分積結果を意味する。各部分積結果は複数の部分積値を有し、PPGにおける各部分積値はシンボル「・」でマーキングされている。   Referring to FIG. 5, PPGs C1 to C8 generate partial product results according to the multiplier and multiplicand, and the partial product results generated by the i-th PPG are displayed as Di. The subscript i represents the multiplication of the i-th PPG device for all bits of the multiplicand and the i-th bit of the multiplier. For example, D3 means the partial product result from the third PPG C3 in which all bits of the multiplicand are multiplied by the third bit of the multiplier. Each partial product result has a plurality of partial product values, and each partial product value in the PPG is marked with a symbol “·”.

演算モジュール510は、加算器モジュール512、514、516、518及び520を含む。各加算器モジュールは、複数の第1の加算器と複数のマルチプレクサ、例えば第1の加算器528とマルチプレクサ530とを含む。この場合、各第1の加算器は対応するPPGからの出力、即ち対応する部分積値を受信する。例えば、第1の加算器528はPPG C1から第1の部分積値を受信する。加えて、各マルチプレクサは第1の入力端と第2の入力端とを有する。この場合、マルチプレクサの第1の入力端は対応する加算器からの出力を受信するが、第2の入力端は(図6に示すように)定数「0」を受信する。各マルチプレクサからの出力は、次の段の加算器モジュールへ送られる。例えば、マルチプレクサ530の入力端のうちの1つは第1の加算器528からの出力を受信するが、その別の入力端は定数「0」を受信し、第1の加算器528からの出力は次の段の加算器モジュール516における第1の加算器532へ送られる。   The arithmetic module 510 includes adder modules 512, 514, 516, 518 and 520. Each adder module includes a plurality of first adders and a plurality of multiplexers, such as a first adder 528 and a multiplexer 530. In this case, each first adder receives the output from the corresponding PPG, i.e. the corresponding partial product value. For example, the first adder 528 receives the first partial product value from the PPG C1. In addition, each multiplexer has a first input end and a second input end. In this case, the first input of the multiplexer receives the output from the corresponding adder, while the second input receives the constant “0” (as shown in FIG. 6). The output from each multiplexer is sent to the next stage adder module. For example, one of the inputs of multiplexer 530 receives the output from first adder 528, while its other input receives a constant “0” and outputs from first adder 528. Is sent to the first adder 532 in the next stage adder module 516.

図6は、図5における演算モジュールの第1の加算器とマルチプレクサとの相互接続を示す部分拡大図である。図6を参照して第1の加算器528を例にとれば、本実施形態における第1の加算器528は、各々最終段の演算モジュールからの部分積値及び/または出力を受信するための3つの入力端A、B及びCを有する。第1の加算器528は合計出力端と桁上げ出力端とを有し、上記合計出力端は入力端A、B及びCによって受信される値の合計を出力するために使用される。さらに、第1の加算器528の桁上げ生成に伴って、桁上げの値が桁上げ出力端から出力される。   FIG. 6 is a partially enlarged view showing the interconnection between the first adder and the multiplexer of the arithmetic module in FIG. Taking the first adder 528 as an example with reference to FIG. 6, the first adder 528 in the present embodiment receives each partial product value and / or output from the operation module at the final stage. It has three inputs A, B and C. The first adder 528 has a total output and a carry output, which is used to output the sum of the values received by the inputs A, B and C. Further, the carry value is output from the carry output terminal as the carry of the first adder 528 is generated.

マルチプレクサ530における入力端の1つ及びマルチプレクサ531における入力端の1つは各々、第1の加算器528の合計出力端からの出力及び桁上げ出力端からの出力を受信する。マルチプレクサ530及び531の別の端は、定数「0」を受信する。マルチプレクサ530及び531は各々、もう1つの端である選択端Zを有する。選択端Zは、例えば図5における先行ゼロビット検出器540へ結合される。このようにして、先行ゼロビット検出器540はマルチプレクサ531からの出力を制御しかつ切り替えることができる。   One of the input terminals of the multiplexer 530 and one of the input terminals of the multiplexer 531 each receive the output from the total output terminal of the first adder 528 and the output from the carry output terminal. The other end of multiplexers 530 and 531 receives the constant “0”. Multiplexers 530 and 531 each have a selection end Z, which is another end. The selection end Z is coupled to a leading zero bit detector 540 in FIG. 5, for example. In this way, the leading zero bit detector 540 can control and switch the output from the multiplexer 531.

再度図5を参照すると、演算モジュール510はさらに、第2の加算器モジュール522と、第3の加算器モジュール524と、最終段の加算器526とを含む。この場合、第2の加算器モジュール522は、加算器モジュール512、514、516、518及び520内のマルチプレクサの一部からの出力を受信するための複数の第2の加算器を含む。本発明においては、第2の加算器モジュール522及び部分積生成器(PPG)C1乃至C7は7つの出力、即ちPPG C1乃至PPG C7からの(N−1)個の出力に対して前記[数1]の計算を実行し、第1の演算結果を得る。但し、本実施形態の場合、前記[数1]のNは8である。   Referring back to FIG. 5, the arithmetic module 510 further includes a second adder module 522, a third adder module 524, and a final stage adder 526. In this case, the second adder module 522 includes a plurality of second adders for receiving output from a portion of the multiplexers in the adder modules 512, 514, 516, 518 and 520. In the present invention, the second adder module 522 and the partial product generators (PPG) C1 to C7 have the [numerical values] for seven outputs, ie, (N−1) outputs from PPG C1 to PPG C7. 1] is executed to obtain a first calculation result. However, in the case of this embodiment, N in [Expression 1] is 8.

加算器モジュール512、514、516、518、520及び第2の加算器モジュール522による公式(1)の計算の実行に伴って、先行ゼロビット検出器540が乗数または被乗数の何れかに先行ゼロビットを発見すると、部分積の全ての関連出力は「0」に設定される。本実施形態では、先行ゼロビット検出器540が乗数または被乗数の何れかに先行ゼロビットを検出すると、制御信号が生成されてマルチプレクサの選択端Zへ送られ、よってマルチプレクサは第1の加算器による演算なしに直接定数「0」を出力する。   As the calculation of formula (1) is performed by the adder modules 512, 514, 516, 518, 520 and the second adder module 522, the leading zero bit detector 540 finds leading zero bits in either the multiplier or the multiplicand. Then, all the related outputs of the partial product are set to “0”. In this embodiment, when the leading zero bit detector 540 detects a leading zero bit in either the multiplier or the multiplicand, a control signal is generated and sent to the selection terminal Z of the multiplexer, so that the multiplexer is not operated by the first adder. The constant “0” is output directly to.

第3の加算器モジュール524もまた複数の第3の加算器を含み、これらは各々、8番目の、即ちN番目のPPG C8によって生成される部分積値を受信する。第3の加算器モジュール524及び最終段の加算器526はD8を第1の演算値へ加算し、即ち第1の演算値をPPG C8によって生成される部分積結果へ加算して第2の演算値を得る。この第2の演算値は、乗数及び被乗数に対する乗算演算による単なる最終積値である。   The third adder module 524 also includes a plurality of third adders, each receiving a partial product value generated by the eighth or Nth PPG C8. The third adder module 524 and the final stage adder 526 add D8 to the first operation value, that is, add the first operation value to the partial product result generated by the PPG C8 to obtain the second operation. Get the value. This second calculated value is simply the final product value obtained by multiplying the multiplier and multiplicand.

本実施形態では、最終段の加算器526からの出力は完了検出器550へ送信され、完了検出器550を使用して第2の演算値の検出を完了させる必要がある。   In this embodiment, the output from the adder 526 at the final stage is transmitted to the completion detector 550, and it is necessary to complete the detection of the second calculation value using the completion detector 550.

上述の説明から、本発明は、乗数におけるN番目のビットの部分積を最終段における計算のために戻すことが分かり、よって本発明は、符号付き乗算の実行に際しても依然として演算時間を節約することができる。   From the above description, it can be seen that the present invention returns the partial product of the Nth bit in the multiplier for computation in the final stage, so that the present invention still saves computation time when performing signed multiplication. Can do.

当業者には、本発明の範囲または精神を逸脱することなく本発明の構成に様々な修正及び変更を実行可能であることが明らかであろう。上記内容に鑑みれば、上記明細及び例は単なる例示として考慮されるべきものであり、本発明の真の範囲及び精神は添付の請求の範囲及びこれらに相当するものにより指示されている。   It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, the above specification and examples should be considered as exemplary only, with the true scope and spirit of the invention being indicated by the appended claims and equivalents thereof.

添付の図面は本発明をさらに理解するために包含されるものであり、本明細書の一部に組み込まれかつ上記一部を構成する。諸図面は本発明の実施形態を例示し、明細書本文と共に本発明の原理を説明する働きをする。   The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.

順次桁上げ式アレイ乗算器を略示するものであり、アレイ乗算器は8×8の左から右(L−R)のアーキテクチャを有する。A sequential carry array multiplier is schematically shown, and the array multiplier has an 8 × 8 left-to-right (LR) architecture. 桁上げ保存式アレイ乗算器を略示するものであり、アレイ乗算器は8×8の左から右(L−R)のアーキテクチャを有する。Briefly referring to a carry save array multiplier, the array multiplier has an 8 × 8 left-to-right (LR) architecture. 乗数及び被乗数のヒット数と有効ビット長さとの関係の統計分布を示すグラフである。It is a graph which shows the statistical distribution of the relationship between the number of hits of a multiplier and a multiplicand, and effective bit length. 5×5の左から右の符号の付いた数の正規乗算演算を示す図である。It is a figure which shows the normal multiplication operation of the number with the code | symbol of 5x5 from left to right. 本発明の一実施形態による5×5の左から右の符号の付いた数の正規乗算演算を示す図である。FIG. 6 is a diagram illustrating a 5 × 5 left-to-right signed number normal multiplication operation according to an embodiment of the present invention. 本発明の一実施形態による非同期式符号付き乗算器の略回路図である。1 is a schematic circuit diagram of an asynchronous signed multiplier according to an embodiment of the present invention. FIG. 図5における演算モジュールの第1の加算器とマルチプレクサとの相互接続を示す部分拡大図である。It is the elements on larger scale which show the interconnection of the 1st adder and multiplexer of the arithmetic module in FIG.

符号の説明Explanation of symbols

100 アレイ乗算器
104 L−R加算器アレイ
108 最終段加算器
120 アレイ乗算器
500 乗算器
510 演算モジュール
512 加算器モジュール
516 加算器モジュール
522 加算器モジュール
524 加算器モジュール
526 加算器
528 加算器
530 マルチプレクサ
531 マルチプレクサ
532 加算器
540 先行ゼロビット検出器
550 完了検出器
100 array multiplier 104 LR adder array 108 final stage adder 120 array multiplier 500 multiplier 510 arithmetic module 512 adder module 516 adder module 522 adder module 524 adder module 526 adder 528 adder 530 multiplexer 531 Multiplexer 532 Adder 540 Leading Zero Bit Detector 550 Completion Detector

Claims (5)

乗数及び被乗数に対して符号付き乗算演算を実行するための非同期式符号付き乗算器であって、上記乗数及び被乗数は各々Nビット及びMビットを有し、N及びMはゼロより大きい正の整数であり、上記乗数及び被乗数は符号の付いた数であり、
上記乗数及び被乗数の各々に応じて部分積結果を生成するために使用されるN個の部分積生成器(PPG)を備え、上記部分積結果はDiで示され、Diはi番目のPPGにおいて、上記被乗数のあらゆるビット数と上記乗数のi番目のビット数とのタイミングを合わせることによる部分積結果を表示し、iは、N以下かつ1以上の整数であり、各部分積結果はM個の部分積値を含み、
上記PPGからの出力を受信しかつ下記数1の演算の実行に使用されて第1の演算結果を得る演算モジュールを備え、
Figure 2007156620


上記第1の演算結果には上記演算モジュールによりDNが加算されて第2の演算結果が取得され、
上記演算モジュールへ結合される先行ゼロビット検出器を備え、上記先行ゼロビット検出器が上記乗数又は被乗数の何れかにおいて先行ゼロビットを検出すると、上記検出された「0」ビットに対応する全ての部分積値出力はゼロビットに対する演算なしに「0」へ設定される非同期式符号付き乗算器。
An asynchronous signed multiplier for performing a signed multiplication operation on a multiplier and a multiplicand, wherein the multiplier and multiplicand have N bits and M bits, respectively, and N and M are positive integers greater than zero. And the multiplier and multiplicand are signed numbers,
N partial product generators (PPG) used to generate partial product results according to each of the multiplier and multiplicand, wherein the partial product results are denoted by Di, where Di is the i th PPG , Display partial product results by matching the timings of any number of bits of the multiplicand and the i-th number of bits of the multiplier, i is an integer equal to or less than N and equal to or greater than 1, and each of the partial product results is M Including partial product values of
A calculation module that receives the output from the PPG and that is used to execute the calculation of the following formula 1 to obtain a first calculation result;
Figure 2007156620


DN is added to the first calculation result by the calculation module to obtain a second calculation result,
A partial zero value corresponding to the detected "0" bit when the leading zero bit detector is coupled to the arithmetic module and the leading zero bit detector detects a leading zero bit in either the multiplier or multiplicand Asynchronous signed multiplier whose output is set to "0" without operation on zero bits.
上記第2の演算結果をチェックするために上記演算モジュールへ結合される完了検出器をさらに備える請求項1記載の非同期式符号付き乗算器。   The asynchronous signed multiplier of claim 1, further comprising a completion detector coupled to the arithmetic module for checking the second arithmetic result. 上記演算モジュールはさらに、
(N−1)番目のPPG、(N−2)番目のPPGから最初のPPGまでの出力を逐次累積するために各々対応する部分積値を受信する複数の第1の加算器と、
各々が第1の入力端、第2の入力端及び出力端を有する複数のマルチプレクサとを備え、各マルチプレクサの上記第1の入力端は各々対応する第1の加算器からの出力を受信し、各マルチプレクサの上記第2の入力端は定数「0」を受信し、上記マルチプレクサは上記先行ゼロビット検出器の出力に従ってその第1の入力端または第2の入力端を選択してその出力端へ結合し、上記マルチプレクサはその第1の入力端または第2の入力端のデータを次の段のPPGによって結合される第1の加算器へ送信し、
各々上記マルチプレクサの一部からの出力を受信する複数の第2の加算器と、
N番目のPPG及び第1のPPGからの出力を受信する複数の第3の加算器と、
上記第1のPPGからの出力に関連する演算を処理するマルチプレクサからの出力を受信して第2の演算値を計算するための最終段加算器と、を備える請求項1記載の非同期式符号付き乗算器。
The arithmetic module further includes
A plurality of first adders each receiving a corresponding partial product value to sequentially accumulate outputs from the (N-1) th PPG, the (N-2) th PPG to the first PPG;
A plurality of multiplexers each having a first input end, a second input end and an output end, wherein the first input ends of each multiplexer each receive an output from a corresponding first adder; The second input of each multiplexer receives a constant “0”, and the multiplexer selects its first input or second input according to the output of the leading zero bit detector and couples it to its output. And the multiplexer transmits the data of the first input terminal or the second input terminal to the first adder combined by the PPG of the next stage,
A plurality of second adders each receiving an output from a portion of the multiplexer;
A plurality of third adders for receiving outputs from the Nth PPG and the first PPG;
2. An asynchronous signed adder as claimed in claim 1, comprising: a final stage adder for receiving an output from a multiplexer that processes an operation associated with an output from the first PPG and calculating a second operation value Multiplier.
乗数及び被乗数に対して符号付き乗算演算を実行することに適する非同期式符号付き乗算のためのアルゴリズムであって、上記乗数はNビットの数であり、Nはゼロより大きい正の整数であり、上記乗数及び被乗数の最上位ビットは符号ビットであり、
(N−1)番目のビット数から最初のビット数へと逐次複数のビット数により上記被乗数のタイミングを合わせて複数の第1の部分積値を取得するためのステップと、
上記第1の部分積値を合計して第1の演算結果を取得するためのステップと、
上記乗数のN番目のビット数により上記被乗数のタイミングを合わせて複数の第2の部分積値を取得するためのステップと、
上記第2の部分積値を上記第1の合計値に加えて第2の演算結果を取得するためのステップと、
上記乗数または被乗数において先行ゼロビットが検出されれば、「0」のビットに対して演算を実行することなく「0」のビットに関連する部分積値を直接ゼロに設定するステップとを含むアルゴリズム。
An algorithm for asynchronous signed multiplication suitable for performing a signed multiplication operation on a multiplier and a multiplicand, wherein the multiplier is an N-bit number and N is a positive integer greater than zero; The most significant bit of the multiplier and multiplicand is a sign bit,
(N-1) a step for acquiring a plurality of first partial product values by matching the timing of the multiplicand with a plurality of bits sequentially from the number of bits to the first number of bits;
Summing the first partial product values to obtain a first calculation result;
A step for obtaining a plurality of second partial product values by matching the timing of the multiplicand with the Nth bit number of the multiplier;
Adding the second partial product value to the first total value to obtain a second calculation result;
If a leading zero bit is detected in the multiplier or multiplicand, the partial product value associated with the “0” bit is directly set to zero without performing an operation on the “0” bit.
上記乗数の最上位ビットと上記被乗数の最上位ビットとの間の部分積値を除いて、上記乗数の最上位ビットに関連する、または上記被乗数の最上位ビットに関連する部分積値を位相反転する演算をさらに含む請求項4記載の非同期式符号付き乗算器のためのアルゴリズム。
Phase inversion of the partial product value associated with the most significant bit of the multiplier or associated with the most significant bit of the multiplicand, except for the partial product value between the most significant bit of the multiplier and the most significant bit of the multiplicand The algorithm for an asynchronous signed multiplier according to claim 4, further comprising:
JP2005347941A 2005-12-01 2005-12-01 Multiplier with asynchronous code and its algorithm Pending JP2007156620A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005347941A JP2007156620A (en) 2005-12-01 2005-12-01 Multiplier with asynchronous code and its algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005347941A JP2007156620A (en) 2005-12-01 2005-12-01 Multiplier with asynchronous code and its algorithm

Publications (1)

Publication Number Publication Date
JP2007156620A true JP2007156620A (en) 2007-06-21

Family

ID=38240934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005347941A Pending JP2007156620A (en) 2005-12-01 2005-12-01 Multiplier with asynchronous code and its algorithm

Country Status (1)

Country Link
JP (1) JP2007156620A (en)

Similar Documents

Publication Publication Date Title
Yang et al. A new RSA cryptosystem hardware design based on Montgomery's algorithm
Tenca et al. High-radix design of a scalable modular multiplier
US6601077B1 (en) DSP unit for multi-level global accumulation
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
US5787030A (en) Correct and efficient sticky bit calculation for exact floating point divide/square root results
US20210349692A1 (en) Multiplier and multiplication method
US11816448B2 (en) Compressing like-magnitude partial products in multiply accumulation
US10761806B2 (en) Transcendental calculation unit apparatus and method
JP2012528391A (en) Integer and multiply-add operations with saturation
CN111936965A (en) Random rounding logic
Takagi et al. A hardware algorithm for integer division
US7539720B2 (en) Low latency integer divider and integration with floating point divider and method
JP2001222410A (en) Divider
KR100627993B1 (en) Three input split-adder
JPH1195982A (en) Circuit, method and system for arithmetic processing
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
KR20080050226A (en) Modular multiplication device and method for designing modular multiplication device
JPH04355827A (en) Square root extracting operation device
Son et al. Design and implementation of scalable low-power Montgomery multiplier
Rahimzadeh et al. Radix-4 implementation of redundant interleaved modular multiplication on FPGA
JP2007156620A (en) Multiplier with asynchronous code and its algorithm
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
JP4290203B2 (en) Reduction array apparatus and method
US7213043B2 (en) Sparce-redundant fixed point arithmetic modules

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071205

A131 Notification of reasons for refusal

Effective date: 20071207

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080501