JPH05216627A - 乗算器および乗算方法 - Google Patents

乗算器および乗算方法

Info

Publication number
JPH05216627A
JPH05216627A JP4174486A JP17448692A JPH05216627A JP H05216627 A JPH05216627 A JP H05216627A JP 4174486 A JP4174486 A JP 4174486A JP 17448692 A JP17448692 A JP 17448692A JP H05216627 A JPH05216627 A JP H05216627A
Authority
JP
Japan
Prior art keywords
bits
bit
lut
value
product
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
JP4174486A
Other languages
English (en)
Inventor
Wolf-Ekkehard Blanz
ウォルフ、エックハルト、ブランツ
Charles E Cox
チャールズ、エドウィン、コックス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05216627A publication Critical patent/JPH05216627A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 ハードウェアを低減する乗算器および乗算方
法を提供する。 【構成】 Nビット数X(t)にMビット数Cを掛ける
ため、Nビットの数をレジスタ20でビット群X
(t),X(t)に分割し、各ビット群はLUT3
0,25で((N/K)+M)ビットを有する値を生成
する。最高優先順位の第1の値は、隣接するLUTの出
力の値によって上位の重みのビット位置にN/Kビット
ずつ桁送りされる。LUTのそれらの値は部分積を形成
するために加算される。桁送りして((2N/K)+
M)ビットを得る加算するプロセスは、優先順位の各自
の順位でX(t)の残りのビット群について反復され
る。多数のK/2の加算の結果は、単一の結果が得られ
るまで、加算器ツリーに送られ、この単一の結果がCと
X(t)との(N+M)ビットの積である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタルコンピュー
タおよびデータ処理システムに関する。詳細には、本発
明は、乗算器用途で使用するための計算用コンピュータ
に関する。さらに詳しく言えば、本発明は、演算を実行
するために必要な電子回路の複雑さおよび数量を減ら
す、2つのオペランドを掛けるための乗算器および乗算
方法に関する。
【0002】
【従来の技術および発明が解決しようする課題】変数に
ロード可能な定数を掛けるというタスクは、大多数のコ
ンピュータ用途によって要求される。特に、ディジタル
信号処理、および、ニューラルネットワークの実施は、
そのような用途の2つである。両者とも、その適用は、
変数と定数との多数の乗算によって特徴づけられる。変
数がニューラルノードから受信されたものであれ、時間
標本化信号であれ、同一形式の数理演算が要求される。
本発明は、これらの形式の用途に関して変数に定数を掛
ける基本タスクを実行するための技法である。この技法
およびその利点は、乗算を要求するいずれのコンピュー
タ動作にも適用できる。この技法は、特に、それらの用
途において生じる反復的乗算の数の多さゆえに、ディジ
タルフィルタおよびニューラルネットワークに適用でき
る。以下に説明する技法は、本技法が他のコンピュータ
用途に適用可能であることが理解されるとしても、例示
目的のためにディジタルフィルタの文脈で説明する。
【0003】ディジタルフィルタリングは、アナログ信
号を解析し修正するための技法である。この技法は、第
j段がフィルタ入力X(t)の瞬時値とフィルタ段係数
Cjとを掛けることによって生じる積を生成する、多段
装置によって実施される。例えば、ディジタル有限イン
パルス応答(FIR)フィルタは、(1) 式によって表現
される。
【0004】 (1) 式は、一定の係数を備えるFIRフィルタを表現し
ている。(1) 式のフィルタを実施する装置は、多数の段
を含む。各段で、第i係数Ciは、入力信号X(t)の
大きさと掛けられ、積を生じる。Y(t)は、J+1段
の積全部の和を取ることによって得られる。(1) 式のF
IRフィルタは図1の装置によって表現される。図1で
は、X(t)は乗算器10で係数Cjと掛けられ、積Y
jはレジスタRjに格納される。積Yjは加算器15で
C(j−1)とX(t)との積に加算され、中間結果Y
(j−1)として格納される。その後、それらの中間結
果は、i=0になるまで、Ci(i=jから0まで)お
よびX(t)の連続する積に加算され格納される。Y
(t)は、それらの中間結果と、X(t)が掛けられた
Ciとの和である。
【0005】ディジタルフィルタの実効性は、Y(t)
を計算し得る速度に依存する。標本化され修正された信
号Y(t)は、時間において対応するX(t)にできる
限り近くなければならない。Y(t)の計算が遅い場
合、段の数は、Y(t)がより高速に計算できるように
するために減らされ、その結果、X(t)は時間領域で
より近くY(t)に対応する。しかし、段数を減らすこ
とはX(t)を修正する際の精度を低下させる。すなわ
ち、段が少なくなるので、Y(t)の大きさを決定する
際の精度を低下させる。従って、Y(t)の計算をより
高速にすることは、同一の処理時間についてより多数の
段を含むことができるので、出力の精度を向上させる。
【0006】Y(t)を求める速度における重要な要因
は、ディジタルフィルタの乗算器の速度である。高速2
進乗算器は、任意の2つのオペランドを受け入れ、それ
らのオペランドの積を生成する。通常、これらの乗算器
は、Ciの各ビットについて桁送りして加算するので、
加算器よりもずっと低速であり、これが一般に、単一の
乗算機能を完了するのにコンピュータの数クロックサイ
クルを要する。ブースのアルゴリズム(Booths Algorit
hm)といった、桁送りし加算されるビットの数を減らす
ための特殊なアルゴリズムを使用しても、それらの乗算
器は、速度および精度が要求される多数のフィルタ用途
にとって十分に高速とはならない。
【0007】この問題の解決策は、その一般的な乗算器
を、ディジタルフィルタ環境で乗算器の機能を付与する
ルックアップテーブル(以下、LUTとも言う)で代替
することであった。LUTは、X(t)と単一の係数C
jとの生じ得る全部の積を格納している。これが可能で
あるのは、X(t)が、X(t)について有限数の値し
か存在しないことを意味する有限数のビットによって表
現されているからである。有限数の値のそれぞれとCj
との積は、X(t)の値がX(t)とCjとの積のLU
Tにおけるアドレスであるように、LUTに配列されて
いる。ちょうどディジタルフィルタの各段について乗算
器が存在するように、各Ci(i=0からjまで)につ
いてのLUTが存在する。X(t)が各種LUTをアド
レス指定すると、対応する積がディジタルフィルタの加
算器15に出力される。LUTの使用は、アドレス指定
・検索動作が多数の桁送り・加算動作よりも高速である
ので、乗算器よりもずっと高速である。その結果、高速
なディジタルフィルタが得られる。LUTの使用は、C
jが一定である(または、ほとんど変化しない)ので、
積は再使用され、一度だけ(または、まれに)生成すれ
ばよいので、ディジタルフィルタでは実用的である。デ
ィジタルフィルタの速度の問題に対するこの解決策に伴
う課題は、LUTが乗算器よりも相当大規模になること
である。NビットのX(t)とMビットのCjの乗算
は、(N+M)ビットの積を生じる。X(t)について
2N個の可能な数が存在するので、これは、各LUTに
ついて2Nx(N+M)ビットの記憶域を必要とさせ
る。通常の8x8ビットの乗算は、1つのLUTについ
て4096ビットの記憶域を要求する。このような記憶
域の要求条件は、ディジタルフィルタの他の部分を構成
する残りの回路に比べて極めて高価である。
【0008】本発明の目的は、データ処理システムにお
ける乗算方法を改善することである。本発明の第2の目
的は、データ処理システムにおける変数と定数との乗算
方法を改善することである。本発明の第3の目的は、デ
ータ処理システムにおける乗算器のコストを低減させる
ことである。本発明の第4の目的は、データ処理システ
ムにおける乗算器の大きさを縮小させることである。
【0009】
【課題を解決するための手段】本発明は、Nビット数X
(t)にMビット数Cを掛けるための方法および装置で
ある。本発明はまた、上述の数を掛ける方法を用いる乗
算器を製作する方法を含む。2つの数を掛けるための本
発明は、Nビットの数をK個の非オーバラップビット群
に分割する。このビット群は、値X(t)の最下位ビッ
トに対応する0から、値X(t)の最上位ビットに対応
するK−1までの範囲の優先順位を有する。各ビット群
は、LUTの第1の値にアクセスするアドレスとして機
能する。各ビット群に対応する単一のLUTが存在す
る。各ビット群は、その値が対応するビット群の優先順
位を有するLUTから値を生成する。LUTのそれらの
値は、異なるLUTのそれぞれについて異なっている定
数と、CとそのLUTが対応するビット群の2進値との
積との和を表現している。その値は、N/Kビット数と
Mビット数との積が((N/K)+M)ビットであるの
で、((N/K)+M)ビットを有する。下位のLUT
の最下位(N/K)ビットは、((2N/K)+M)ビ
ットの結果の下位(N/K)ビットを形成する。その結
果の次の優先順位のMビットは、下位のLUTからのM
ビットと上位のLUTからのMビットとの加算によって
得られる。その結果の上位(N/K)ビットは上位のL
UTの上位(N/K)ビットから得られる。上位(N/
K)ビットは、Mビット加算器の桁上げ出ビットから増
分される。
【0010】高位および低位の優先順位のビット群に対
応している1組の値にアクセスし、((2N/K)+
M)ビットの結果を形成するプロセスは、高位から低位
へ、優先順位の各自の順位でX(t)の残りのビット群
によって反復される。多数のK/2個の加算の結果は、
その後、単一の結果が得られるまで、高位の優先順位の
加算器の結果を低位の優先順位の加算器の結果に連続的
に加算する加算器ツリーに送られる。この単一の結果が
CとX(t)との(N+M)ビットの積である。この積
の正しい結果が加算器ツリーから得られる理由は、ビッ
ト群に対応するLUTに加算された個々の定数が、高位
の優先順位のビットを増分し、LUT全体よりも小さい
結果を加算する効果により、最終結果を補償するからで
ある。
【0011】
【実施例】本発明の第1の好ましい実施例を、乗算器1
0において8ビット変数に8ビット定数を掛ける特定の
例について、図2に例示する。詳細には、X(t)は、
レジスタ20に一時的に格納された8ビットを有する。
定数はCjである。レジスタ20は2つの部分に分割さ
れている。上部X1はX(t)の最上位4ビットを含
み、下部X0はX(t)の最下位4ビットを含む。X1
は、((CjxX1)−128)の16個(24 )の生
じ得る結果を含むルックアップテーブル(LUT)30
のアドレスとして使用される。LUT30からの16個
の生じ得る結果は12ビット幅である。X1によってア
ドレス指定されるこの12ビットの結果は、2つの部分
に分かれる。下位8ビットは加算器35に送られる。加
算器35は、LUT30からの下位8ビットを、X0に
よってアドレス指定されるLUT25からの上位8ビッ
トに加算する。LUT25の出力は常に正であり、従っ
て、符号なしである。LUT30の出力は恐らく負であ
り、従って、符号付きである。加算器35の8ビット出
力は、最終結果Yjの中間位置の8ビットとして出力4
0に送られる。
【0012】加算器35がこれら2つの8ビット数の加
算によって桁あふれビットを生じた場合、その桁あふれ
ビットは増分手段37に送られる。増分手段37はその
桁あふれビットをLUT30からの上位4ビットに加算
する。増分手段37から得られた4ビットは、結果の上
位4ビットとして出力に送られる。また、X0は、X1
と類似の形でLUT25のアドレスとして使用される。
LUT25は、((CjxX0)+2048)の16個
の生じ得る結果を含む。この16個の生じ得る結果は1
2ビット幅である。X0によってアドレス指定されるこ
の12ビットの結果は、2つの部分に分かれる。下位4
ビットは、結果の下位4ビット(Yj0−Yj3 )とし
て出力40に直接送られる。LUT25からの結果の次
の上位8ビットは、上述と同様にして、LUT30から
の8ビットに加算される。
【0013】図3はさらに加算器35および増分手段3
7を例示する。加算器35は、8個の全加算器セル33
を含む。各全加算器セル33は、3つの入力ビットおよ
び2つの出力ビットを有する。1つの入力ビットは桁上
げ入ビットCiであり、1つの出力ビットは桁上げ出ビ
ットCoである。その他の2つの入力ビットは加算され
る2つの値からのビットである。詳細には、LUT25
の出力をA、LUT30の出力をBと称すれば、Aのビ
ット4はBのビット0と加算され、結果Yjのビット4
を生じる。この第1の全加算器セルからの桁上げ出力
は、Aのビット5およびBのビット1に加算され、Yj
のビット5を生じる。このプロセスが出力Yjの6〜1
1について継続される。各全加算器セル33は、1ビッ
ト出力Yj=A(XOR)B(XOR)Ci、および、
桁上げ出ビットCo=(A(AND)B)(OR)(A
(AND)Ci)(OR)(B(AND)Ci)を有す
る。ビットYj4 〜Yj11は、結果Yjの8つの中間位
置ビットをなす。
【0014】その後、Yjのビット11の加算器セルの
桁上げ出ビットは、増分手段37の最初のセルの桁上げ
入ビットに送られる。増分手段37は、4個の半加算器
セル39を含む。各半加算器セルは、桁上げ入ビットを
Bからのビットに加算し、出力ビットを生じる。Yjの
ビット11の全加算器セルの桁上げ出ビットは、Bのビ
ット8に加算され、Yjの出力ビットを生じる。増分手
段37のこの第1の出力ビットは、結果Yjのビット1
2である。Yj12の桁上げ出ビットはYj13の桁上げ入
ビットに送られ、B9に加算されYj13を生じる。半加
算器セルの出力ビットはB(XOR)Ciであり、桁上
げ出ビットはB(AND)Ciである。増分手段37
は、結果Yjの上位4ビット(Yj12〜Yj15)を生じ
る。加算器35、増分手段37および出力レジスタ40
の相互接続は、図2に例示した加算/増分(A/I)手
段23を形成する。ビットYj0 〜Yj15は、(X
(t)xCj)の16ビットの結果をなす。
【0015】乗算器10の動作は、変数X(t)が、定
数Cjと同様、8ビット符号付き数であることを前提と
する。変数は、X0およびX1の2つの部分に分けるこ
とができる。X0およびX1はそれぞれ、4ビットを有
する。ここで、式(X(t)xCj)は、部分積((X
0xCj)+((24 )xX1xCj))の和として表
現することができる。下位部分積は(X0xCj)であ
り、上位部分積は(X1xCj)である。部分積は両方
とも、Cjが符号付きであるので、符号付きである。符
号付き数は、その数の符号を示すために最上位ビットを
使用する。部分積のそれぞれは12ビット幅であり、こ
の場合、下位部分積の符号拡張、および、上位部分積の
桁送りされる4ビットは差し当たって無視する。従っ
て、LUTの大きさは((24 )x12)=192ビッ
トであり、乗算器10の2つのLUTについて、要求さ
れる合計記憶域は384ビットである。これは、8x8
ビット乗算器に関する従来のLUT方法における409
6ビット(28 x16)というLUTの大きさと比較す
べきであろう。変数を2つの部分に部分分割し、2つの
部分でLUTを用いることにより、記憶域として費す領
域を、付加的な加算器が費やす場合の約10分の1に低
減させる。
【0016】単純に2つの符号付き12ビット部分積を
加算し、符号付き16ビットの結果を得る能力は、それ
らの部分積の符号拡張が実施される方式に依存する。下
位部分積の符号拡張、および、加算器の複雑性に関する
その結果は、下位部分積が常に負でないように保証する
ことによって完全に避けられる。この例では、符号付き
12ビット数は、(−211)から(211)−1の範囲で
ある。(211)を下位部分積に加算することは、下位部
分積が常に負でないことを保証する。(211)を下位部
分積に加算することは、結果が符号なし数である(すな
わち、常に正)とみなされる限り、12ビットの結果に
関して桁あふれ状態を生じない。従って、12ビットの
下位部分積の結果は、0から(212)−1である。
【0017】下位部分積および上位部分積の両者とも物
理的に12ビットを使用するが、それらは16ビット数
を表現している。これは、X0およびX1の優先順位に
よって可能となっている。上位部分積は、上位部分積の
24倍の乗算によって(16ビット表現を行うために)
事実上4ビットずつ桁おくりされる12ビットである。
これらの下位4ビットは常に0であるので、それらをハ
ードウエアで桁上げする必要はない。このことは、それ
らのビットが下位部分積の下位4ビットに物理的に加算
される必要もないことを意味する。従って、下位部分積
の下位4ビットは出力Yjに直接送られるだけである。
同様に、下位部分積は、その下位部分積の最上位ビット
に付加された(16ビット数を表現するために)4個の
0を伴う12ビットとしてみなすことができる。最上位
ビットに付加された0は無意味なので、それらをハード
ウエアで桁上げする必要はない。また、0は物理的に加
算される必要もないので、上位部分積の上位4ビットへ
の加算だけが、増分手段37によって実行される8ビッ
ト加算器の桁上げ出ビットからのものである。
【0018】(211)を下位部分積に加算することを実
行するために、(211)は上位部分積から減算されなけ
ればならない。この条件は以下のように表現される。 X(t)=(((X0xCj)+(211)) +(((24 )xX1xCj)−(211))). … (2) (211)の減算は、211および上位部分積の両者の最下
位4ビットはすべて0であるので、上位部分積の最下位
4ビットに影響しないことに留意されたい。さらに、X
(t)は、下位部分積が正であっても、やはり符号付き
である。これは上位部分積が符号付きであるからであ
る。(2) 式は以下のように再構成することができる。 X(t)=(((X0xCj)+(211)) +(((X1xCj−(27 ))x(24 )))).… (3) 上位部分積を4ビットずつ桁送りすると同時に上位部分
積から(27 )=128を減算することにより、
(211)と下位部分積との加算を補償する。下位部分積
に(211)を加算すること、および、上位部分積から
(211)を減算することは、下位部分積の符号拡張の必
要をなくす。これにより、X(t)がやはり符号付きで
あっても、下位部分積を符号なし数として扱うことが可
能になる。従って、加算器回路は単純化される。上位部
分積および下位部分積から減算された値は、それぞれ、
LUT30および25に入れられる。これにより、8ビ
ット加算器・増分手段が従来の16ビット加算器に取っ
て代わることができる。
【0019】本発明の第2の実施例を、Nビット変数X
(t)にMビット定数Cjを掛ける、より一般的な例に
関して図4および図5に示す。X(t)はK個の非オー
バラップビット群に分割される。この第2の実施例で
は、NおよびKは、NがKで均等に割り切れるように、
偶数である。さらに、Kは2Lに等しい(Lは0より大
きい整数)。X(t)は、レジスタ50に格納され、K
個のビット群X(0)〜X(k−1)に分割される。各
ビット群はN/Kビットを含む。各ビット群はK個のL
UTをアドレス指定する。ビット群が奇数である場合、
すなわち、X(k−1),X(k−3)・・・X(1)
の場合、そのビット群は、((N/K)+M)ビットの
上位部分積の結果を含むLUT52をアドレス指定す
る。ビット群が偶数である場合、すなわち、X(k−
2),X(k−4)・・・X(2)の場合、そのビット
群は、((N/K)+M)ビットの下位部分積の結果を
含むLUT54をアドレス指定する。各上位部分積の結
果は、事実上、N/Kビットずつ、先行する下位部分積
に対して優先順位の上位に桁送りされる。各上位部分積
の下位Mビットおよび先行する下位部分積の上位Mビッ
トは加算器60に送られる。
【0020】加算器60は、Mビットの結果および桁上
げ出ビットを生成する。桁上げ出ビットは、増分手段5
6で上位部分積の上位N/Kビットに加算される。第1
段加算器60の結果はレジスタ58に入れられる。レジ
スタ58の最上位N/Kビットは増分手段56からのも
のである。レジスタ58のその次の最上位Mビットは第
1段加算器60からのものである。レジスタ58の最下
位N/Kビットは下位部分積の下位N/Kビットからの
ものである。レジスタ58は(M+2N/K)ビットの
結果を含む。第1段加算器60のそれぞれは、X(t)
の隣接する偶数および奇数ビット群によってアドレス指
定されるLUT52および54からの第1のMビットの
結果および第2のMビットの結果を加算する。奇数ビッ
ト群は上位部分積の結果をアドレス指定し、偶数ビット
群は下位部分積の結果をアドレス指定する。A1(k/
2−1),A1(k/2−2)・・・A1(1),A1
(0)と称するK/2個の第1段加算器が存在する。A
1(k/2−1)は、最上位ビット群X(k−1)およ
びX(k−2)に割り当てられる。X(t)の奇数およ
び偶数ビット群の各組について1個の第1段加算器60
が存在する。
【0021】第1段加算器60が奇数である場合、すな
わち、A1(k/2−1),A1(k/2−3)・・・
の場合、レジスタ58の(2N/K+M)ビット出力
は、第2段加算器63の上位部分積として使用される。
第1段加算器60が偶数である場合、すなわち、A1
(k/2−2),A1(k/2−4)・・・の場合、レ
ジスタ58の(2N/K+M)ビット出力は、第2段加
算器63の下位部分積として使用される。第2段加算器
63は、レジスタ64にMビットを出力するMビット加
算器である。第2段加算器の桁上げ出ビットは、増分手
段66で第2段上位部分積の上位2N/Kビットに加算
される。増分手段66の出力はレジスタ64にMビット
を出力するMビット加算器である。増分手段66の出力
は、レジスタ64の最高優先順位2N/Kビットを形成
する。次の低優先順位Mビットは第2段加算器63から
のものである。レジスタ64の最低優先順位2K/Nビ
ットは第2段の低優先順位からの最低優先順位2K/N
ビットである。レジスタ64は(4N/K+M)ビット
の結果を含む。
【0022】隣接する奇数および偶数の第1段加算器の
出力は第2段加算器への入力をなす。第2段加算器は、
第1段加算器と同様にしてA2(k/4−1),A2
(k/4−2)・・・という優先順位を有する。第2段
加算器が奇数である場合、すなわち、A2(k/4−
1),A2(k/4−3)・・・の場合、レジスタ64
の出力は、第3段加算器の上位部分積として使用され
る。第2段加算器が偶数である場合、すなわち、A2
(k/4−2),A2(k/2−4)・・・の場合、レ
ジスタ64の出力は、第3段加算器の下位部分積として
使用される。第3段レジスタの出力はその後、第4段の
加算器への入力として使用される、というように続いて
行く。これは、加算器段に関係するレジスタの出力が
(N/2+M)ビットを持つまで継続する。その時点
で、(N/2+M)ビットを有する2つのレジスタが存
在するであろうし、それらは両者とも最終加算器段67
への入力として使用される。最終加算器段67は、それ
らの各レジスタからのMビットを加算し、その結果を出
力レジスタ70に渡す。レジスタ70の上位N/2ビッ
トは増分手段68から入り、レジスタ70の下位N/2
ビットは最終加算器段の下位部分積から直接入る。出力
レジスタ70は、CjとX(t)との積である、N+M
ビットの結果Yjを保持する。
【0023】CjとX(t)との積を生じるために上述
のように加算器ツリーで構成されている連続する加算器
段での上位部分積と下位部分積との加算は、それらの部
分積の符号拡張が実施される方式に依存する。特に、本
発明は、X(t)の最高優先順位ビット群を除き、第1
段加算器の全部の部分積の符号拡張を回避する。第1の
実施例におけるように、定数は、Cjと各LUTのアド
レスビット群との積に加算される。偶数ビット群に対応
するLUT54は、ビット群(すなわち、X(k−
2))とCjとの積に加え、2((N/K)+M)-1)である定数
S(2i)を含む。定数S(2i)(i=0から((k
/2)−1))は、本発明の第1の実施例におけるよう
に、LUT54の出力が正の数であることを保証するの
で、符号なし数として扱うことができる。
【0024】X(k−1)ビット群に対応するLUTを
除き、奇数のビット群に対応するLUT52は、ビット
群(すなわち、X(3))とCjとの積に加え、定数S
(2i+1)(i=0から((k/2)−2))を含
む。定数S(2i+1)は以下に等しい。 S(2i+1)=(2(((N/K)+M)-1) )−(2(M-1) ). … (4) これは、LUT52に加算される定数が、第1加算器段
の出力が負でないことを保証しなければならないからで
ある。各第1段加算器の出力は、それ自体、乗算がK/
2の部分に分けられており、1部分当たり2N/Kビッ
トとなる部分積とみなすことができる。Mビットの定数
と2N/Kビットの部分の乗算は、((2N/K)+
M)ビットの結果を付与する。偶数ビット群で使用され
た同一の技法に従って、これは、(X(k−1)に対応
するLUT52を有する加算器を除き)LUT52に2
(((2N/K)+M)-1)を加算することを意味する。しかし、各
第1段加算器の出力は、それに加算されたS(2i)=
(((2N/K)+M)-1)を有する。さらに、LUT52の各出
力は、事実上、最上位ビット(すなわち、左へ)へN/
Kビットずつ桁送りされる。このことは、奇数ビット群
と定数Cjとの各積に加算される定数が以下によって表
されることを意味する。 S(2i+1)=(2(((2N/K)+M)-1)−2(((N/K)+M)-1) )/2(N/K) … (5) この式は、(4) 式に還元される。要するに、各奇数のL
UT52(ビット群X(k−1)に対応するLUTを除
き)では、N/Kビットの符号なし数X(2i+1)と
Mビットの符号付き定数との積が生成される。その積は
((N/K)+M)ビットの符号なし数(S(2i+
1))に加算され、第1段の上位部分積となるLUT5
2の出力を生じる。
【0025】S(2i+1)(i=k/2−1)は、ビ
ット群X(k−1)に対応するLUT52でビット群X
(k−1)とCjとの積に加算される定数である。S
(k−1)は、S(2i+1)およびS(2i)の他の
ものとは別様に扱われる。それらの定数がすべて部分積
への加算であったためである。これらの加算を補償する
ために、S(k−1)は、負の数でなければならない。
S(k−1)の効果は、LUTに加算されるその他の定
数とは異なる。なぜなら、X(k−1)に関係するLU
Tの結果が符号付きの数であるはずだからである。この
符号付きの数をL個の加算器段によって桁上げすること
により、最終結果Yjにその符号が与えられる。
【0026】S(k−1)の大きさは、それらの加算が
部分積に影響したまま、奇数LUTおよび偶数LUTへ
の全部の加算の和である。各第1段加算器では、結果は
((2N/K)+M)ビットを含んでおり、従って、S
(2i)+S(2i+1)=2(((2N/K)+M))-1) に等し
い定数は、各結果が正(すなわち、符号なし)であるこ
とを保証するために加算された。しかし、加算器の優先
順位(すなわち、A1(0,1,..K/2))は、そ
の和に実際に加算された定数の大きさを決定する。詳し
くは、最下位加算器段以外の全部が、その次の下位優先
順位の加算器に対して2N/Kビットずつ桁送りされた
各自の定数を有する。従って、全部の定数の有効和を計
算するために幾何級数が使用されている。この級数は以
下で表現される。
【0027】 a+aq+aq2 +aq3 +…+aq(P-1) =a(qP −1)/(q1) … (6) この級数は、基数(a)=2(((2N/K)+M)-1)、係数
(q)=2(2N/K)、および、(p)=(K/2)−1の
要素を有する。しかしこの解析は最高優先順位(すなわ
ち、A1(k/2))の第1段加算器に加算される定数
を考慮していない。詳しくは、ビット群X(k−2)に
対応するLUT54に加算される定数S(k−2)=2
(((N/K)+M)-1)を考慮していない。その加算器でのこの
定数の有効結果はX(k−2)の(k−2)ビット群位
置ゆえに、S(k−2)x2(N-2N/K)であり、(k−
2)ビット群の桁送りは、事実上、(k−2)N/K=
N−2N/Kによる乗算である。従って、(6) 式の結果
は、S(k−1)を得るためにS(k−2)の有効結果
に加算され、それにより以下の式を得る。 S(k−1)=−(2(((3N/K)+M-N)-1)x ((2(N-(2N/K))−1)/(2(2N/K)−1)))−(2(M-1) ).… (7) 図6、図7および図8は、Kが2Lに等しくないか、ま
たは、N/Kが整数でない状況に対する本発明の拡張を
示す。この状況では、(D/(K−1))ビットを有す
る高優先順位の(K−1)ビット群は、図4、図5およ
び本発明の第2の実施例と同様に扱われる。X(t)の
ビットNの合計数はD+Eに等しい。この時、Dは、1
つのビット群のビット数で(自然数として)割り切れ
る。最低優先順位ビット群X(0)はEビットを含む。
この時、Eは、(D/(K−1))とは異なる。X
(0)の値は、(E+M)ビットの結果を生じるLUT
55のアドレスである。この結果は、X(0)を掛けら
れたCjの積に加算される定数S(0)の和である。
【0028】(X(K−1)を除く)偶数LUT52に
加算される定数は、(i=1)から(((K−1)/
2)−1)についてS(2i)であり、以下に等しい。
【0029】 S(2i)=(2(((D/(K-1))+M)-1) )−
(2(M-1) ). 奇数LUT54に加算される定数は、(i=0)から
(((K−1)/2)−1)についてS(2i+1)で
あり、以下に等しい。
【0030】 S(2i+1)=(2(((D/(K-1))+M)-1) ). 最高優先順位のLUTに加算される定数は、S(K−
1)であり、以下に等しい。 S(K−1)=−(2(M-((D*(K-2))/(K-1))-1)+2(M-1) + (2(M-((D*(K-4))/(K-1))-1)*((2(((D*(K-3))/(K-1))-1)/ (2(((2*D)/(K-1))-1)))).(*は乗算を示す). LUT55に加算される定数S(0)は、(2
((E+M)-1) )−1))である。
【0031】LUT55の結果は、加算器69および出
力レジスタ78への入力である。LUT55の最下位E
ビットは、出力レジスタ78の最低優先順位位置に入れ
られる。LUT55の最上位Mビットは、最終加算器6
9の一方の入力である。最終加算器69への第2の入力
は、加算器ツリーの最後の加算器67に関係するレジス
タ70の出力である。この出力は((D/K)+M)ビ
ットである。出力レジスタ70の最低優先順位Mビット
は、最終加算器69への第2の入力となる。最高優先順
位(D/K)ビットは、増分手段74の加算器69の桁
上げ出ビットに加算される。増分手段74の出力は、レ
ジスタ78の出力Yjの最高優先順位D/Kビットとな
る。Yjの次の最高優先順位Mビットは、最終加算器6
9からのものであり、最低優先順位Eビットは、LUT
55から入る。
【0032】本発明の乗算器10は、K個のLUT、お
よび、加算器ツリーを含む。乗算器10の大きさは、主
として、そのツリーおよび加算器によって決まる。本発
明の乗算方法の一般的な実施では、K個のLUT、およ
び、加算器ツリーのK−1個の加算器が存在することに
なる。要求される記憶域の大きさの合計は、K((N/
K)+M)(2(N/K) )=(2(N/K) )(N+(K
M))ビットになる。従って、単一集積回路チップで製
作する場合、この乗算器の大きさは、Nビット変数が分
割されるビット群の数Kによって決まる。
【0033】単一チップまたはダイ(die )の集積回路
の一般的な製作は、当業界で公知である。集積回路を製
作するために使用される特定の製作技法は、その回路の
実際の物理的パラメータを決定する。例えば、CMOS
(相補形金属酸化膜半導体)技術の使用は、他の製作技
術(例えば、バイポーラ形)で製作された同一回路より
も、チップ上の記憶域のビット当たりの大きさがより小
さくなるであろう。同様に、バイポーラ形技術で回路を
製作することは、大きくなっても、CMOSによる実施
よりも高速な回路を作ることができよう。しかし、上述
の乗算技法の使用は、いずれかの特定の製作技術によっ
て乗算器を製作するために必要な記憶域を最適化する。
【0034】本発明の乗算技法は、特定の製作技術およ
び設計技法の空間を効率的に使用するようにKが選択さ
れるので、乗算器の大きさを最小限にする。例えば、本
発明の乗算方法は、特に、CMOS論理セルアレイ技術
での製作に適している。論理セルアレイは、機器構成可
能な論理ブロックの多数の行および列を有する特定の技
術で集積回路に製作される。各構成可能論理ブロック
は、32ビットルックアップテーブルおよび2つのフリ
ップフロップを含む。このルックアップテーブルは、5
変数の単一の任意関数か、または、4変数の2つの独立
関数のいずれかを実施するように構成することができ
る。従って、N/Kは、乗算器のLUTの出力の((N
/K)+M)ビットのうちの2つが1つの論理ブロック
によって決定されるように、4として選択される。第1
の実施例の8x8ビットの乗算では、LUT、加算器3
5および出力レジスタ40は、12個の論理ブロックで
実施されている。
【0035】論理セルアレイ設計技法にKの最適値を選
択する結果として得られる乗算器を実施するために必要
な空間の著しい低減は、完全特注設計技法にも適用でき
る。これは、Kの選択が、記憶域のビット数だけでな
く、必要な加算器の数も決定するからである。加算器の
数は、ビット群が加算器ツリーによって加算されるの
で、約K−1である。従って、Kは、加算器の大きさと
(2(N/K) )(N+KM)ビットの記憶域の合計の大き
さとの和が(2N )(N+M)ビットの記憶域よりも小
さくなるように選択される。
【0036】
【発明の効果】本発明は、Nビット数にMビット数を掛
ける際に、Nビット数を非オーバラップビット群に分割
し、各ビット群をLUTの値にアクセスするアドレスと
して機能させると共に、LUTから生成された値を、上
位ビットと下位ビットとに分け、一つのLUTの下位ビ
ットと他のLUTの上位ビットとを加算する操作を単一
の加算結果が得られるまで、順次繰り返してN+Mビッ
トの積を得ているため、データ処理システムにおける乗
算、特に、変数と定数との乗算の方法が改善され、ま
た、計算時に用いる記憶領域を大幅に減らすことができ
るので、乗算器のコストを低減と、乗算器自体の大きさ
の縮小ができるという効果がある。
【図面の簡単な説明】
【図1】本発明に従ったディジタルフィルタの説明図。
【図2】本発明に従った2つの8ビット数を掛けるため
の乗算器の説明図。
【図3】本発明に従った加算手段の説明図。
【図4】NがK個の非オーバラップビット群に分割され
る、本発明に従ったNビット数にMビット数を掛けるた
めの乗算器の前段部の説明図。
【図5】NがK個の非オーバラップビット群に分割され
る、本発明に従ったNビット数にMビット数を掛けるた
めの乗算器の後段部の説明図。
【図6】1ビット群が残りのビット群よりも少ないビッ
トを有する、本発明に従ったNビット数にMビット数を
掛けるための乗算器の前段部の説明図。
【図7】1ビット群が残りのビット群よりも少ないビッ
トを有する、本発明に従ったNビット数にMビット数を
掛けるための乗算器の中断部の説明図。
【図8】1ビット群が残りのビット群よりも少ないビッ
トを有する、本発明に従ったNビット数にMビット数を
掛けるための乗算器の後段部の説明図。
【符号の説明】
10 乗算器 15,35,60,63,67,69 加算器 20 レジスタ 23 加算/増分手段 25,30,52,54,55 ルックアップテーブル
(LUT) 33 全加算器セル 37,56,66,68,74 増分手段 40,70,78 出力レジスタ 50,58 レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ、エドウィン、コックス アメリカ合衆国カリフォルニア州、サンノ ゼ、スクエアーヘイブン、コート、100

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】Nビット数にMビット数を掛けるための乗
    算器であって、 Nビット数を格納するための記憶手段であり、この記憶
    手段は2つの非オーバラップビット群に分割されてお
    り、各ビット群は同数のビットを有するものである記憶
    手段と、 第1のビット群に結合された第1のルックアップテーブ
    ル(LUT)であり、前記第1のビット群は第1の値を
    生成するために前記第1のLUTにアクセスし、前記第
    1の値は前記第1のビット群の値を掛けられたMビット
    数の積に加算された第1の補償値の和を表現するもので
    ある第1のLUTと、 第2のビット群に結合された第2のLUTであり、前記
    第2のビット群は第2の値を生成するために前記第2の
    LUTにアクセスし、前記第2の値は前記第2のビット
    群の値を掛けられたMビット数の積に加算された第2の
    補償値の和を表現するものである第2のLUTと、 前記第1のLUTおよび前記第2のLUTに接続された
    加算手段と、 を備え、 前記第1のLUTおよび前記第2のLUTは2(N+M)
    (N+M)ビット未満の記憶空間を有しており、 前記加算手段は前記Nビット数とMビット数の積を形成
    することを特徴とする乗算器。
  2. 【請求項2】請求項1記載の乗算器であって、 前記加算手段が多数の全加算器セル、および、増分手段
    を含み、前記多数の全加算器セルは前記第1のLUTか
    らの第1の多数のビットを前記第2のLUTからの第1
    の多数のビットに加算するものであり、 前記多数の全加算器セルは桁上げ出ビットおよび部分結
    果を生成し、前記桁上げ出ビットは前記増分手段の前記
    第1のLUTからの第2の多数のビットに加算されるも
    のであり、 前記加算手段は前記第2のLUTの第2の多数のビッ
    ト、前記多数の全加算器セルの前記部分結果および前記
    増分手段の出力から前記Nビット数と前記Mビット数と
    の前記積を形成することを特徴とする乗算器。
  3. 【請求項3】Nビット数にMビット数を掛けるための乗
    算器であって、 Nビット数を格納するための記憶手段であり、この記憶
    手段はK個の非オーバラップビット群に分割されてお
    り、前記K個のビット群のそれぞれは同数のビットを有
    しており、前記ビット群は前記Nビット数の前記ビット
    の重み値に対応する優先順位を有するものである記憶手
    段と、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    1のルックアップテーブル(LUT)であり、前記第1
    のLUTは最高優先順位ビット群に結合されており、前
    記最高優先順位ビット群は第1の値を生成するために前
    記第1のLUTにアクセスし、前記第1の値は前記第1
    のLUTにアクセスする前記最高優先順位ビット群を掛
    けられたMビット数の積に加算された第1の補償値の和
    を表現するものである第1のLUTと、 第1の多数のLUTであり、前記LUTのそれぞれは2
    (N+M) x(N+M)ビット未満の記憶空間を有してお
    り、前記第1の多数のLUTは前記ビット群のうちの1
    つと排他的に結合されており、前記ビット群のそれぞれ
    は第2の値を生成するためにLUTにアクセスし、前記
    第2の値のそれぞれは前記特定のLUTにアクセスする
    前記ビット群を掛けられたMビット数の積に加算された
    第2の補償値の和を表現するものである第1の多数のL
    UTと、 第2の多数のLUTであり、前記LUTのそれぞれは2
    (N+M) x(N+M)ビット未満の記憶空間を有してお
    り、前記第2の多数のLUTのそれぞれは前記ビット群
    のうちの1つと排他的に結合されており、前記ビット群
    のそれぞれは第3の値を生成するためにLUTにアクセ
    スし、前記第3の値のそれぞれは前記特定のLUTにア
    クセスする前記ビット群を掛けられたMビット数の積に
    加算された第3の補償値の和を表現するものである第2
    の多数のLUTと、 前記第1のLUT、前記第1の多数のLUTおよび前記
    第2の多数のLUTに接続された加算器ツリーであり、
    この加算器ツリーは(K−1)個の加算手段を含み、前
    記Nビット数と前記Mビット数との積を形成するもので
    ある加算器ツリーと、 を備えたことを特徴とする乗算器。
  4. 【請求項4】請求項3記載の乗算器であって、 Kは少なくとも4であり、2の累乗であることを特徴と
    する乗算器。
  5. 【請求項5】Nビット数にMビット数を掛けるための乗
    算器であって、 Nビット数を格納するための記憶手段であり、この記憶
    手段はK個の非オーバラップビット群に分割されてお
    り、前記ビット群のうちのK−1個は同数のビットを有
    しており、単一のビット群は前記K−1個のビット群と
    は異なる数のビットを有するものであり、かつ、前記K
    −1個のビット群は合計Dビットを有しており、K−1
    で割られたDが整数であり、前記K個のビット群は合計
    D+Eビットを有しており、前記Nビット数の前記ビッ
    トの重み値に対応する優先順位を有するものであり、ま
    た、前記単一のビット群は前記K−1個のビット群より
    低い優先順位をを有するものである、記憶手段と、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    1のルックアップテーブル(LUT)であり、この第1
    のLUTは最高優先順位ビット群に結合されており、前
    記最高優先順位ビット群は第1の値を生成するために前
    記第1のLUTにアクセスし、前記第1の値は前記第1
    のLUTにアクセスする前記最高優先順位ビット群を掛
    けられたMビット数の積に加算された第1の補償値の和
    を表現するものである第1のLUTと、 第1の多数のLUTであり、このLUTのそれぞれは2
    (N+M) x(N+M)ビット未満の記憶空間を有してお
    り、前記第1の多数のLUTのそれぞれは前記ビット群
    のうちの1つと排他的に結合されており、前記ビット群
    のそれぞれは第2の値を生成するためにLUTにアクセ
    スし、前記第2の値のそれぞれは前記特定のLUTにア
    クセスする前記ビット群を掛けられたMビット数の積に
    加算された第2の補償値の和を表現するものである第1
    の多数のLUTと、 第2の多数のLUTであり、このLUTのそれぞれは2
    (N+M) x(N+M)ビット未満の記憶空間を有してお
    り、前記第2の多数のLUTそれぞれは前記ビット群の
    うちの1つと排他的に結合されており、前記ビット群の
    それぞれは第3の値を生成するためにLUTにアクセス
    し、前記第3の値のそれぞれは前記特定のLUTにアク
    セスする前記ビット群を掛けられたMビット数の積に加
    算された第3の補償値の和を表現するものである第2の
    多数のLUTと、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    2のルックアップテーブル(LUT)であり、この第2
    のLUTは最低優先順位ビット群に結合されており、前
    記最低優先順位ビット群は第4の値を生成するために前
    記第2のLUTにアクセスし、前記第4の値は前記第2
    のLUTにアクセスする前記最低優先順位ビット群を掛
    けられたMビット数の積に加算された第4の補償値の和
    を表現するものである第2のLUTと、 前記第1のLUT、前記第1の多数のLUTおよび前記
    第2の多数のLUTに接続された加算器ツリーであり、
    この加算器ツリーは前記第1のLUTから第1の値を、
    前記第1の多数のLUTから多数の第2の値を、前記第
    2の多数のLUTから多数の第3の値を受信するもので
    あり、かつ、この加算器ツリーは2L=(K−1)であ
    るL段に構成された(K−1)個の加算手段を含み、前
    記Nビット数と前記Mビット数との部分積を形成し、前
    記部分積はD+Mビットを有するものである加算器ツリ
    ーと、 前記加算器および前記第2のLUTに接続された最終加
    算手段であり、この最終加算手段は前記加算器ツリーの
    部分積および前記第4の値を前記第2のLUTから受信
    し、前記最終加算手段は前記Nビット数と前記Mビット
    数との前記積を形成するものである最終加算手段とを備
    えたことを特徴とする乗算器。
  6. 【請求項6】Nビット数にMビット数を掛けるための乗
    算器であって、 Nビット数を格納するための記憶手段であり、この記憶
    手段は3つの非オーバラップビット群に分割されてお
    り、前記3つのビット群のうちの2個は同数のビットを
    有しており、単一のビット群は前記3つのビット群のう
    ちの2個より少ないビット数を有しており、前記ビット
    群は前記Nビット数の前記ビットの重み値に対応する優
    先順位を有しており、前記最低優先順位ビット群は前記
    3つのビット群のうちの2個より少ないビット数を有す
    るものである記憶手段と、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    1のルックアップテーブル(LUT)であり、この第1
    のLUTは最高優先順位ビット群に排他的に結合されて
    おり、前記最高優先順位ビット群は第1の値を生成する
    ために前記第1のLUTにアクセスし、前記第1の値は
    前記第1のLUTにアクセスする前記最高優先順位ビッ
    ト群を掛けられたMビット数の積に加算された第1の補
    償値の和を表現するものである第1のLUTと、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    2のLUTであり、この第2のLUTは第2のビット群
    に排他的に結合されており、前記第2のビット群は第2
    の値を生成するために前記第2のLUTにアクセスし、
    前記第2の値は前記第2のビット群を掛けられたMビッ
    ト数の積に加算された第2の補償値の和を表現するもの
    である第2のLUTと、 2(N+M) x(N+M)ビット未満の記憶空間を有する第
    3のLUTであり、この第3のLUTは最低優先順位を
    有する前記ビット群に排他的に結合されており、前記最
    低優先順位ビット群は第3の値を生成するために前記第
    3のLUTにアクセスし、前記第3の値は前記第3のL
    UTにアクセスする最低優先順位ビット群を掛けられた
    Mビット数の積に加算された第3の補償値の和を表現す
    るものである第3のLUTと、 前記第1のLUTおよび第2のLUTに接続された第1
    の加算器手段と、 前記第1の加算器手段および前記第3の加算器手段の出
    力に接続された第2の加算器手段であり、この第2の加
    算手段は前記Nビット数と前記Mビット数との積を形成
    するものである第2の加算手段と、 を備えたことを特徴とする乗算器。
  7. 【請求項7】(N+M)ビットの積を生成するためにN
    ビット数にMビット数を掛けるための乗算方法であっ
    て、 前記Nビット数を2つの等しい大きさの非オーバラップ
    ビット群に分割する過程と、 2((N+M)-1) x(N+M)ビット未満の記憶空間を有す
    る第1のルックアップテーブル(LUT)に、第1のビ
    ット群に含まれたアドレスによりアクセスする過程であ
    り、前記第1のLUTは前記第1のビット群の値を掛け
    られた前記Mビット数の積に加算された第1の補償値の
    和を表現する第1の値を生成するものであるアクセス過
    程と、 2((N+M)-1) x(N+M)ビット未満の記憶空間を有す
    る第2のLUTに、第2のビット群に含まれたアドレス
    によりアクセスする過程であり、前記第2のLUTは前
    記第2のビット群の値を掛けられた前記Mビット数の積
    に加算された第2の補償値の和を表現する第2の値を生
    成するものであるアクセス過程と、 前記第2の値のN/2ビットが前記(N+M)ビットの
    積の下位部分をなし、前記第1の値および第2の値のM
    ビットが前記(N+M)ビットの積の下位部分よりも高
    い優先順位を有する前記(N+M)ビットの積のMビッ
    トを形成するために加算され、前記第1の値のN/2ビ
    ットは前記(N+M)ビットの積の上位部分を形成する
    ために前記Mビット加算の桁上げ出ビットと加算される
    ものである、加算/増分関数を実行する過程と、 を含むことを特徴とする乗算方法。
  8. 【請求項8】(N+M)ビットの積を生成するためにN
    ビット数にMビット数を掛けるための乗算方法であっ
    て、 前記Nビット数を多数の非オーバラップビット群に分割
    する過程であり、前記ビット群は前記Nビット数の前記
    ビットの重み値に対応する優先順位を有するものである
    分割過程と、 各ビット群を備えたLUTにアクセスする過程であり、
    前記LUTは前記LUTにアクセスするビット群と同一
    の優先順位を有するものであるアクセス過程と、 各LUTから部分積を戻す過程であり、前記部分積は前
    記Mビット数と前記特定のLUTにアクセスする前記ビ
    ット群の値との積に加算された補償値を表現するもので
    ある戻し過程と、 前記Nビット数と前記Mビット数との最終積を形成する
    ために前記部分積を加算する過程と、 を含むことを特徴とする乗算方法。
  9. 【請求項9】(N+M)ビットの積を生成するためにN
    ビット数にMビット数を掛けるための乗算方法であっ
    て、 前記Nビット数をK個の非オーバラップビット群に分割
    する過程であり、前記K個のビット群は前記Nビット数
    の前記ビットの重み値に対応する優先順位を有してお
    り、前記K個のビット群のうちのK−1個は同一のビッ
    ト数を有しており、最終ビット群は前記K−1個のビッ
    ト群とは異なるビット数を有するものである分割過程
    と、 多数のLUTにアクセスする過程であり、前記多数のL
    UTのそれぞれは前記K−1個のビット群のうちの1つ
    によってアクセスされ、前記アクセスされたLUTは前
    記LUTにアクセスするビット群と同一の優先順位を有
    するものであるアクセス過程と、 K−1個の部分積を、各LUTから1つずつ戻す過程で
    あり、前記部分積は前記Mビット数と前記特定のLUT
    にアクセスする前記ビット群の値との積に加算された補
    償値を表現するものである戻し過程と、 最終出力を形成するために前記K−1個の部分積を加算
    する過程と、 前記最終ビット群を備えた最終LUTにアクセスする過
    程と、 前記最終LUTから最終部分積を戻す過程であり、前記
    最終部分積は前記Mビット数と前記最終LUTにアクセ
    スする前記最終ビット群の値との積に加算された最終補
    償値を表現するものである戻し過程と、 前記Nビット数と前記Mビット数との積を形成するため
    に前記最終部分積を前記第1の出力に加算する過程と、 を含むことを特徴とする乗算方法。
JP4174486A 1991-08-16 1992-07-01 乗算器および乗算方法 Pending JPH05216627A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US746385 1991-08-16
US07/746,385 US5255216A (en) 1991-08-16 1991-08-16 Reduced hardware look up table multiplier

Publications (1)

Publication Number Publication Date
JPH05216627A true JPH05216627A (ja) 1993-08-27

Family

ID=25000610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4174486A Pending JPH05216627A (ja) 1991-08-16 1992-07-01 乗算器および乗算方法

Country Status (2)

Country Link
US (1) US5255216A (ja)
JP (1) JPH05216627A (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69212460T2 (de) * 1992-04-10 1996-11-28 Sgs Thomson Microelectronics Digitaler Multiplizierer mit diagonaler Fortpflanzung
JP2526505B2 (ja) * 1993-09-28 1996-08-21 日本電気株式会社 画像処理装置
US5737257A (en) * 1995-09-13 1998-04-07 Holtek Microelectronics, Inc. Method and apparatus for compression of integer multiplication table
US5715187A (en) * 1996-03-04 1998-02-03 Holtek Microelectronics, Inc. Method and apparatus for integer multiplication
US5841684A (en) * 1997-01-24 1998-11-24 Vlsi Technology, Inc. Method and apparatus for computer implemented constant multiplication with multipliers having repeated patterns including shifting of replicas and patterns having at least two digit positions with non-zero values
JPH10333887A (ja) * 1997-05-29 1998-12-18 Sharp Corp 積和演算回路
US6298369B1 (en) * 1998-09-30 2001-10-02 Stmicroelectronics, Inc. High speed multiplier
WO2000062421A1 (en) * 1999-04-14 2000-10-19 Nokia Networks Oy Digital filter and method for performing a multiplication based on a look-up table
US6453332B1 (en) * 1999-08-20 2002-09-17 Winbond Electronics Corp. Method and apparatus for performing plural matrix multiplication operations
US6904442B1 (en) * 2000-06-28 2005-06-07 Cypress Semiconductor Corp. Method of implementing logic functions using a look-up-table
US6735607B2 (en) * 2001-06-02 2004-05-11 Lockheed Martin Corporation Transparent data access and interpolation apparatus and method therefor
KR100433131B1 (ko) * 2002-07-31 2004-05-28 학교법인연세대학교 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법
US7366746B2 (en) * 2004-02-12 2008-04-29 Xerox Corporation Finite impulse response filter method and apparatus
US20070112901A1 (en) * 2005-11-15 2007-05-17 Afshin Niktash Configurable digital filter
EP1955123B1 (en) * 2005-11-15 2010-01-06 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Table lookup multiplier
US7912891B2 (en) * 2005-12-09 2011-03-22 Electronics And Telecommunications Research Institute High speed low power fixed-point multiplier and method thereof
US20090198758A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method for sign-extension in a multi-precision multiplier
US20150154005A1 (en) * 2013-12-02 2015-06-04 Kuo-Tseng Tseng Methods and Apparatuses for Performing Multiplication
US9933998B2 (en) * 2013-12-02 2018-04-03 Kuo-Tseng Tseng Methods and apparatuses for performing multiplication
US10732929B2 (en) 2018-01-09 2020-08-04 Samsung Electronics Co., Ltd. Computing accelerator using a lookup table
US10853034B2 (en) * 2018-03-30 2020-12-01 Intel Corporation Common factor mass multiplication circuitry
US11256979B2 (en) * 2018-03-30 2022-02-22 Intel Corporation Common factor mass multiplication circuitry
US11461074B2 (en) * 2020-07-10 2022-10-04 Flashsilicon Incorporation Multiple-digit binary in-memory multiplier devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5270727A (en) * 1975-12-10 1977-06-13 Fujitsu Ltd Computation system
JPS535940A (en) * 1976-07-07 1978-01-19 Toshiba Corp Multiplication system
JPS543441A (en) * 1977-06-10 1979-01-11 Hitachi Ltd High-speed arithmetic system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5523501A (en) * 1978-06-29 1980-02-20 Fujitsu Ltd Shift operation unit
US4313174A (en) * 1980-03-17 1982-01-26 Rockwell International Corporation ROM-Based parallel digital arithmetic device
GB2108736B (en) * 1981-10-27 1984-12-12 Standard Telephones Cables Ltd Sum of products multiplier
US4566075A (en) * 1982-12-21 1986-01-21 Texas Instruments Incorporated Table lookup multiplier employing compressed data read only memory
FR2557746B1 (fr) * 1983-12-30 1986-04-11 Thomson Csf Filtre numerique a bande passante et phase variables
US4679164A (en) * 1984-12-17 1987-07-07 The United States Of America As Represented By The Secretary Of The Army Digital high speed programmable convolver
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器
US4782458A (en) * 1986-12-18 1988-11-01 North American Philips Corporation Architecture for power of two coefficient FIR filter
US4868778A (en) * 1987-05-19 1989-09-19 Harris Corporation Speed enhancement for multipliers using minimal path algorithm
US5117385A (en) * 1990-03-16 1992-05-26 International Business Machines Corporation Table lookup multiplier with digital filter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5270727A (en) * 1975-12-10 1977-06-13 Fujitsu Ltd Computation system
JPS535940A (en) * 1976-07-07 1978-01-19 Toshiba Corp Multiplication system
JPS543441A (en) * 1977-06-10 1979-01-11 Hitachi Ltd High-speed arithmetic system

Also Published As

Publication number Publication date
US5255216A (en) 1993-10-19

Similar Documents

Publication Publication Date Title
JPH05216627A (ja) 乗算器および乗算方法
JPH07507411A (ja) 2の累乗である係数を用いるディジタルフィルタ
US4967388A (en) Truncated product partial canonical signed digit multiplier
Datta et al. Efficient fpga implementation of fir filter using distributed arithmetic
WO2000008756A1 (en) Multiplierless digital filtering
Yazhini et al. Fir filter implementation using modified distributed arithmetic architecture
US5400271A (en) Apparatus for and method of calculating sum of products
RU2717915C1 (ru) Вычислительное устройство
Ashur et al. Novel RNS structures for the moduli set (2n− 1, 2n, 2n+ 1) and their application to digital filter implementation
Reddy et al. ASIC implementation of distributed arithmetic in adaptive FIR filter
Naik et al. An efficient reconfigurable FIR digital filter using modified distribute arithmetic technique
JP3660075B2 (ja) 除算装置
JPH0519170B2 (ja)
Tiwari et al. High throughput adaptive block FIR filter using distributed arithmetic
Patronik et al. Design of residue generators with CLA/compressor trees and multi-bit EAC
Golconda et al. Comparrative analysis of Multiplier and Multiplierless methods used to implement FIR Filter on FPGA
Singh et al. High performance VLSI architecture for wave digital filtering
TWI798640B (zh) 常數乘法器
JP2606326B2 (ja) 乗算器
Nithyashree et al. Design of an efficient vedic binary squaring circuit
Reddy et al. A high speed, high Radix 32-bit Redundant parallel multiplier
Nair et al. Optimized FIR filter using distributed parallel architectures for audio application
Deepika et al. Low power FIR filter design using truncated multiplier
Bowlyn et al. A novel distributed arithmetic multiplierless approach for computing complex inner products
Kouretas et al. Radix-3 low-complexity modulo-M multipliers