JPH03282730A - 半導体演算回路 - Google Patents

半導体演算回路

Info

Publication number
JPH03282730A
JPH03282730A JP2081210A JP8121090A JPH03282730A JP H03282730 A JPH03282730 A JP H03282730A JP 2081210 A JP2081210 A JP 2081210A JP 8121090 A JP8121090 A JP 8121090A JP H03282730 A JPH03282730 A JP H03282730A
Authority
JP
Japan
Prior art keywords
circuit
multiplier
signal
multiplicand
multiplication
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
JP2081210A
Other languages
English (en)
Inventor
Naoyuki Hatanaka
畑中 直行
Tomoji Takada
高田 知二
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2081210A priority Critical patent/JPH03282730A/ja
Publication of JPH03282730A publication Critical patent/JPH03282730A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、半導体演算回路に関する。
(従来の技術) 最近の汎用信号処理LSIにおいては、積和演算におけ
る係数乗算の高速化のために、第8図に示すように積和
演算の実行に先立ってLSIに内蔵された係数メモリ回
路1に係数をロードしておき、積和演算の実行時に係数
メモリ回路1から係数を読み出して乗算器2で乗算を実
行するようになっている。また、乗算そのものの実行速
度を高速にするため、種々の乗算器の高速化手法が用い
られている。
ここで、乗算器の高速化手法として、特によく用いられ
るものに、ブースのアルゴリズムを用いた方式がある。
この方式は、乗数もしくは被乗数のいずれかをデコード
することにより、部分積の数を少な(し、加算回路での
加算時間を短縮し、高速化しようとするものである。そ
の場合、第8図に示すように乗算器2の内部にデコード
のためのデコード回路3と、部分積加算のための加算回
路4が必要である。第9図にデコード回路3のロジック
図を示し、また第10図に加算回路4のブロック図を示
しである。第9図は人力信号が16ビツトの場合の2次
のブースのアルゴリズムによるデコード回路30ロジツ
ク図であり、このデコード回路3を用いることで第10
図の加算回路4に示すように部分積の数を通常の半分で
ある8個にすることができる。
ところで、デコード回路3でのデコード時間の乗算器全
体の実行時間に占める割合は、前記加算回路4での加算
時間のそれに比べて無視できるほど小さくはなく、その
結果、乗算器全体として期待するほどの高速化が得られ
ていないのが実状である。
このことは、将来、汎用信号処理LSIにおいて、乗算
器に前述のような方式を採用する場合にも同様に問題と
なると考えられる。すなわち、現在でもそうであるが、
これからの汎用LSIでは、マシンサイクルの高速化と
共に、割り込み処理などによるパイプラインハザードを
回避するため、1回の乗算は1マシンサイクルで実行(
フラッシュ動作)できることが望まれる。その点から、
乗算器の乗算時間は、信号処理LSIのマシンサイクル
を決定するものであり、前記のような乗算器では、信号
処理LSIのマシンサイクルの高速化を妨げることが予
想される。
(発明が解決しようとする課題) 上記のように、ブースのアルゴリズムのような乗数、ま
たは被乗数のいずれか一方をデコードすることにより、
乗算に必要な加算時間を短縮し、高速化するという従来
の方式を採用した乗算器において、実際には、乗算器全
体として期待するほどの高速化は得られていない。すな
わち、このような乗算器が、汎用信号処理LSIにおけ
るマシンサイクルの高速化を妨げているという問題点が
あった。
この発明はこのような従来の問題点に鑑みてなされたも
ので、回路規模をそれほど大きくすることなくマシンサ
イクルを高速化し、かつ1回の乗算を1マシンサイクル
で実行することができる半導体演算回路を提供すること
を目的とする。
[発明の構成] (課題を解決するための手段) この発明の半導体演算回路は、乗数または被乗数をデコ
ードするデコード回路と、このデコード回路によりデコ
ードされた乗数または被乗数の複数個を記憶する係数メ
モリ回路と、この係数メモリ回路に記憶されている乗数
または被乗数を読みだしてきて入力されてくる相手方の
被乗数または乗数とブースのアルゴリズムにしたがって
乗算するものである。
(作用) この発明の半導体演算回路では、乗算器で乗算する乗数
または被乗数のいずれかをあらかじめデコード回路にお
いてデコードして係数メモリ回路に記憶しておき、乗算
においてはこのあらかじめデコードされている乗数また
は被乗数を読み出してきて相手方の被乗数または乗数と
乗算する。
こうして、従来のように乗算時に乗数または被乗数の一
方をデコードしてから相手方の被乗数または乗数と乗算
する場合に比べて、デコード時間を必要としない分だけ
、乗算時間の高速化がはかれることになる。
(実施例) 以下、この発明の実施例を図に基づいて詳説する。
一般にLSIは第1図に示すように、演算処理を行う演
算処理系統半導体演算回路1]とプログラム命令を処理
する命令処理系統半導体演算回路12とが統合された形
で組み込まれている。そしてそれぞれの系統にデコード
回路13.14と演算回路15.16とが含まれている
この発明の一実施例はこの演算処理系統11の構成に係
わるもので、第2図に示すように16ビツト信号を入力
とし、32ビット信号を出力するデコード回路13と、
このデコード回路13がデコードした複数個の係数を記
憶する係数メモリ回路17と、この係数メモリ回路17
の係数を読み出して入力乗数と乗算する乗算器18とか
ら構成されている。この乗算器18は部分積を加算する
加算回路19だけから構成されている。なお、これらの
係数メモリ回路17と乗算器18と加算回路19とで演
算回路15を構成している。
次に、上記の構成の半導体演算回路の動作について説明
する。
デコード回路13には16ビツトの信号が2の補数表現
された2進数値として入力される。そして入力された信
号はデコード回路13でブースのアルゴリズムに従う、
たとえば32ビツトの信号にデコードされ、出力される
その32ビツトの信号は、書き込み可能な係数メモリ回
路17に順次書き込まれていき、ストアされる。
乗算実行時には、この係数メモリ回路17から係数が順
次読み出され、乗算器18に入力されていく。そして、
乗算器18に入力されてくる乗数と乗算されて部分積が
求められ、これを加算回路]9において加算し、最終乗
算結果が出力されていく。
この様な回路構成にすることにより、次のような効果が
得られることになる。ブースのアルゴリズムなど、一般
に乗数、または被乗数のいずれかをデコードする乗算方
式を採用する場合、デコード回路でそれらに適した信号
にあらかじめデコードして係数メモリ回路に記憶させて
おき、乗算実行時にその信号を係数メモリ回路から読み
出して乗算器に入力するため、乗算器にはデコード回路
が不要となり、デコード時間も不要となり、この結果と
して乗算器における乗算時間が加算時間のみとなって高
速化され、マシンサイクルが高速であっても1回の乗算
を1マシンサイクルで実行(フラッシュ動作)可能にな
る。
なお、この発明の実施例によれば、一般に係数メモリ回
路の回路規模が大きくなるが、メモリ回路の集積度は高
く、したがってそれによる回路規模の増大は特に問題と
ならない。またデコード回路による係数メモリ回路への
係数データの書き込み時間のオーバーヘッドが問題にな
ることはほとんどなく、したがって演算の高速化が実現
できるのである。
第3図はこの発明の他の実施例を示しており、複数の乗
算器としての部分積加算回路2’Oa、20b、・・・
、2Onを有する半導体演算回路である。
この半導体演算回路では、複数の部分積加算回路20a
、20b、・・・、20nに共通の乗数を与えるための
ものであり、入力端子21より入力される乗数信号を第
1のレジスタ22で記憶し、これをあらかじめデコード
回路23によりデコードし、デコードされた信号を第2
のレジスタ24に格納するようになっている。
一方、各部分積加算回路20a、20b、・・・2On
には被乗数を個別に入力端子25a、25b、・・・、
25nから与え、各部分積加算回路20a 、  2Q
 b 、 −、2Onで第2のレジスタ24に格納され
ている共通の乗数と各被乗数入力とを乗算して部分積を
求め、この乗算結果を出力端子25a、26b、・・・
、26nから出力するようにしている。
この実施例では、共通の係数としての乗数をいったんデ
コード回路23によりデコードして第2のレジスタ24
に記憶しておき、乗算実行時にこの乗数を読み出して各
部分積加算回路20a、20b、・・・、20nで乗算
して部分積を得ることができるために乗算の高速化が図
れるのである。
第4図はこの様な半導体演算回路を積和演算□回路に組
み込んだ回路構成を示しており、第3図に示す実施例の
半導体演算回路101に共通の乗数入力を入力端子21
から入力し、被乗数を入力端子25 a 、  25 
b 、−、25nから人力し、得られる部分積結果を出
力端子26a、26b、・・・26nから遅延回路27
a、27b、−=、27nに入力して遅延させ、これを
さらに遅延回路28a、  23b、・・・、28nで
時間的にずらせながら加算回路29a、29b、・・・
、29nで順次加え合わせることにより積和演算するよ
うにしたものであり、これによりパイプライン演算が可
能となる。
また第5図はこの発明のさらに他の実施例であり、複数
の異なる乗数を共通の一つの被乗数と乗算するために、
複数の乗算器として部分積加算回路30a、30b、・
・・、30nを備えた半導体演算回路の構成を示してい
る。
この実施例では、入力端子31から複数の乗数信号を入
力してまず第1のレジスタ32に格納し、デコード回路
33によりデコードして各節2のレジスタ34 a r
 34 b + ・・・、34nに順次格納するように
している。
一方、共通の被乗数の方は、入力端子35から各部分積
加算回路30a、30b、・・・、30nに入力し、こ
こで各節2のレジスタ34a、34b。
・・・、34nから読み出してきた乗数と乗算して部分
積を求め、その結果を出力端子36a、36b。
・・・、36nから出力するようにしている。
この実施例では、共通の被乗数に対して各部分積加算回
路30a、30b、・・・、30nごとに乗算実行前に
すでにデコードしていったん記憶しておいた乗数を乗算
することができ、乗算時に逐一デコードしてから乗算す
る従来の乗算器よりも高速化が図れるのである。
第6図は上記の実施例の半導体演算回路を積和演算回路
に組み込んだ回路構成を示しており、第5図に示す実施
例の半導体演算回路102に共通の被乗数入力を入力端
子35から入力し、乗数を入力端子31から順次入力し
て部分積を求め、得られる部分積結果を出力端子36a
、36b、・・・36nから遅延回路37a、37b、
−,37n1 に入力して遅延させ、これをさらに遅延回路38a、3
3b、・・・、38nで時間的にずらせながら加算回路
39a、39b、・・・、39nで順次加え合わせるこ
とにより積和演算するようにしたものであり、これによ
りパイプライン演算が可能となる。
この様な第二及び第三の実施例においても、個々の乗算
器が持っていたデコード回路を一つのデコード回路で共
有することができ、デコード回路の占める面積を減少さ
せることができ、高速で、しかもよりコンパクトな半導
体演算回路が実現できることになる。
第1図に示したLSIにおける命令処理系統12の回路
構成について、次に説明する。
複数個の演算処理回路を有し、それらを並列に動作させ
ることにより高いスループットを得ようとする最近の汎
用信号処理LSIにおいては、それらの演算処理回路を
制御するために1ワードあたり100〜200ビツト程
度のビット数を持った命令コードが必要となってきてい
る。これは複 2 数個の演算処理回路を同時に制御しなければならないた
めに、演算処理回路の数に比例した数のビット数が必要
となることに加えて、高速化のために命令コードがデコ
ードされずに用いられるためである。
一方、汎用性の要求からは、そのような水平型命令コー
ドをあらかじめLSIに内蔵された書き込み可能な制御
記憶回路(WCS ;Wr i t able  Co
ntrol  Storage:以下、WCSと称する
)に記憶させ、しかる後にWCSから命令コードを読み
出して所定の処理シーケンスを実行するという手法が用
いられるようになってきている。
以上のような情勢から、今後は汎用信号処理LSIにお
いては、LSIに内蔵される演算処理回路の増加にとも
ない、ますますビット数の多いWCSが内蔵されること
が必要になる。
ところで、命令コード1ワードを直接1回てWCSへ書
き込むためには、命令コードのビ・ソト数と等しい数の
LSIの入力端子を必要とするが、 3 これは現実的には実現不可能である。そのため、従来の
LSIに内蔵されたWCSに、この様なビット数の多い
命令コードを書き込むためには、般に直並列変換手法が
用いられている。これは、命令コード1ワードを数回に
分けてLSI入力端子より入力し、LSI内部で命令コ
ード1ワードを再構成し、WCSへ書き込むという手法
である。
第11図はこの手法を説明するものであり、LSI40
の入力端子は32本であり、一方、WCSの1ワードの
ビット数、すなわち命令コードのビット数は128であ
る。
図において、LS I40の入力端子41からクロック
信号に同期して入力される命令コードの1回目の32ビ
ット分の信号はクロック信号43と第1のロード信号4
4とにより第1の中間レジスタ48に書き込まれる。2
回目、3回目、及び4回目の32ビット分の信号も同様
にクロック信号43と第2、第3、第4のロード信号4
5.46゜47によりそれぞれ第2、第3、第4の中間
レジスタ49,50.51に書き込まれる。この時点 
4 で第1から第4までの中間レジスタ48〜51に命令コ
ード1−28ビツト、すなわち1ワ一ド分が書き込まれ
たことになる。その命令コードはクロック信号55、第
5のロード信号56及びアドレス信号57によりWO2
に書き込まれる。そして、以下、上記と同様の動作を繰
り返すことにより、WO2には命令コードが1ワ一ド単
位で順次書き込まれていく。
これが従来のLS I40に内蔵されたWO2に命令コ
ードを書き込む手法である。
しかしながら、この様な手法では、WO2の1ワードの
ビット数はそれほど多くすることができない。その理由
は、次のようである。すなわち、汎用性と将来性、高機
能性などを考えると、WO2のワード数は十分大きくし
ておくことが望ましい。さらに、高速性という点から考
えると、WO2への書き込み時間はできるだけ短い方が
よい。
しかしながら、前述のようにLSIの現実的な問題とし
て、WO2へ命令コードを書き込むために多くの入力端
子を設けることはできない。この制御 5 約条件を数式で表すと次式のような関係となる。
WO2に要求されるワード数をwSwcsへ命令コード
を書き込むために許容できる時間をT5同じく許容でき
るLSIの入力端子数をSとすると、WO2の1ワード
のビット数幅pは、αを係数として、 p ≦ α ・      T のようになり、pはS、W、及びTにより制限されるの
である。
そこで、WO2のワード数の要求やWO2への命令コー
ド書き込み時間及びLSIの入力端子数の制約などを満
たしながら、WO2の1ワードのビット数を効果的に多
くするために第7図に示すような回路構成の半導体演算
回路を構成することができる。
この第7図の実施例の半導体演算回路について説明する
と、LSI60の入力端子61とLSI60に内蔵され
たWC874との間に、以下のよ 6 うな前処理回路が設けられている。すなわち、LSI6
0の入力端子数をs、WC874の1ワードのビット数
をkとするとき、前処理回路はSビットの信号をn回続
けて入力し、それらをまとめてp−nSビットの並列信
号にして出力する直並列変換回路62と、このpビット
の信号の一部または全部からなるmビットの信号を入力
し、斐〉mなる愛ビットの信号にデコードするデコード
回路72と、この愛ビットの信号の一部からなるmビッ
トの信号と、前記デコード回路72の入力信号であるm
ビットの信号とを入力し、それらを選択して同じくmビ
ットの信号を出力する選択回路としての多重化回路73
とを備えている。
そして、前記多重化回路73から出力されるmビットの
信号、前記pビットの信号から前記デコード回路72に
入力されたmビットの信号を除いた(p−m)ビットの
信号、及び前記uビットの信号から前記多重化回路73
に入力されたmビットの信号を除いた(1−m)ビット
の信号を出力し、これらの出力信号のビット数の総和(
p+17 m)がWO2の1ワードのビット数kに等しくなるよう
にしているのである。
なお、直並列変換回路62はクロック信号63とロード
信号64〜67それぞれが入力される中間レジスタ68
〜71により構成されている。またWC874には、ク
ロック信号75、ロード信号76及びアドレス信号77
が与えられるようになっている。
この様な半導体演算回路の動作について、次に説明する
LS I 60の入力端子61からクロック信号に同期
しながら、Sビットずつn回に分けて入力される入力信
号は、直並列変換回路62において、クロック信号63
とロード信号64,65,66゜67により順次n個の
中間レジスタ68,69゜70.71に書き込まれ、p
=n Sビットの並列信号となる。
これを前述した第11図の従来回路と対応付けると、p
=128.n=4,5=32となる。そして、このp−
128ビツトの信号が、そのまま 8 WC374の1ワ一ド分の命令コードしてWC874に
書き込まれていたのである。
これに対して、この第7図の実施例では、pビットの信
号の一部または全部からなるmビットの信号がデコード
回路72に入力される。デコード回路72に入力された
mビットの信号は1.l>mなるuビットの信号にデコ
ードされ、出力される。
さらに、その愛ビットの信号の一部からなるmビットの
信号は、前記デコード回路72の入力信号であるmビッ
トの信号とともに多重化回路73に入力され、選択され
た後、同じくmビットの信号として出力される。
そして、前記多重化回路73から出力されるmビットの
信号と、前記pビットの信号から前記デコード回路72
に入力されたmビットの信号を除いた(p−m)ビット
の信号と、前記斐ビットの信号から前記多重化回路73
に入力されたmビットの信号を除いたC1−m)ビット
の信号とが最終的な1ワ一ド分の命令コードとなり、ク
ロック信号75、ロード信号76、及びアドレス信号7
9 7によりWC574へ書き込まれる。
このときの命令コードのビット数には、k=m+ (p
−m) +(吏−m)=p十更−mとなるが、ここでf
l>mであるので、k>pとなり、従来方式による命令
コードのビット数pよりも多くできることになる。
以上のようにして、命令処理系統12の半導体演算回路
では、固定のハードウェアでありながら、等価的にmの
値を変えることができる。すなわち、pビットの信号か
ら(p−m)〜pビットを、またそれに対応して前記愛
ビットの信号から更〜(u−m)ビットをにビットの命
令コードを形成するために用いることができる。これは
コード化されたpビットの信号の一部(部分フィールド
)のビット数mを変えることができることを意味する。
また、ある処理においては、命令コードの中のいくつか
のビットは何であってもよい(Dont  Care)
という場合やすべて0(AIIO)である場合があるが
、このような場合でも、 0 従来ならばそのような命令コードも他の命令コードと同
様に扱われてしまっていたが、この実施例ではそのよう
な命令コードはコード固有の性質を表す情報をあらかじ
め前記pビットの信号の中にコード化しておくことによ
り、所定の命令コードを発生することができる。
[発明の効果] 以上のようにこの発明によれば、ブースのアルゴリズム
など、一般に乗数または被乗数のいずれかをデコードす
る乗算方式を採用する場合、デコード回路でそれらに適
してた信号をあらかじめデコードして係数メモリ回路に
記憶させておき、乗算実行時にその信号を係数メモリ回
路から読み出して乗算器に入力するようにしているため
、従来のように乗算器側でまずデコードしてから乗算を
実行するものと異なり、乗算実行時のデコード時間が不
要となり、この結果、乗算器における乗算時間は加算時
間のみて済むことになって演算が高速化でき、マシンサ
イクルが高速であっても]回の乗算が1マシンサイクル
で実行可能になる。
【図面の簡単な説明】
第1図は一般的なLSIの内部回路構成を説明する説明
図、第2図はこの発明の一実施例の回路ブロック図、第
3図はこの発明の他の実施例の回路ブロック図、第4図
は第3図の実施例の回路を組み込んだ半導体積和演算回
路のブロック図、第5図はこの発明のさらに他の実施例
の回路ブロック図、第6図は第5図の実施例の回路を組
み込んだ半導体積和演算回路のブロック図、第7図はこ
の発明の他の実施例の回路ブロック図、第8図は従来例
の回路ブロック図、第9図は一般的なデコード回路の回
路ブロック図、第10図は一般的な部分積加算回路の回
路ブロック図、第11図は他の従来例の回路ブロック図
である。 11・・・演算処理系統  12・・・命令処理系統1
3.14・・・デコード回路 15.16・・・演算回路 17・・・係数メモリ回路 18・・・乗算器19・・
・加算回路

Claims (1)

    【特許請求の範囲】
  1. 乗数または被乗数をデコードするデコード回路と、この
    デコード回路によりデコードされた乗数または被乗数の
    複数個を記憶する係数メモリ回路と、この係数メモリ回
    路に記憶されている乗数または被乗数を読みだしてきて
    入力されてくる相手方の被乗数または乗数とブースのア
    ルゴリズムにしたがって乗算することを特徴とする半導
    体演算回路。
JP2081210A 1990-03-30 1990-03-30 半導体演算回路 Pending JPH03282730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2081210A JPH03282730A (ja) 1990-03-30 1990-03-30 半導体演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2081210A JPH03282730A (ja) 1990-03-30 1990-03-30 半導体演算回路

Publications (1)

Publication Number Publication Date
JPH03282730A true JPH03282730A (ja) 1991-12-12

Family

ID=13740125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2081210A Pending JPH03282730A (ja) 1990-03-30 1990-03-30 半導体演算回路

Country Status (1)

Country Link
JP (1) JPH03282730A (ja)

Similar Documents

Publication Publication Date Title
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US4541071A (en) Dynamic gate array whereby an assembly of gates is simulated by logic operations on variables selected according to the gates
US4539635A (en) Pipelined digital processor arranged for conditional operation
JPS6044696B2 (ja) 浮動小数点デ−タ処理装置
Bu et al. A design methodology for fixed-size systolic arrays
KR101202445B1 (ko) 프로세서
US6505288B1 (en) Matrix operation apparatus and digital signal processor capable of performing matrix operations
US6189021B1 (en) Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
CN110914800A (zh) 基于寄存器的复数处理
JP7038608B2 (ja) 半導体装置
JP2012022500A (ja) Fft演算装置
US4598358A (en) Pipelined digital signal processor using a common data and control bus
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
US3001708A (en) Central control circuit for computers
US4812970A (en) Microprogram control system
US6609142B1 (en) Method of performing multiplication with accumulation in a Galois body
JPH034936B2 (ja)
JPH03282730A (ja) 半導体演算回路
JPH0345420B2 (ja)
JP3435744B2 (ja) 乗算回路
US8117507B2 (en) Decompressing method and device for matrices
US5027300A (en) Two level multiplexer circuit shifter apparatus
JPH04364525A (ja) 並列演算装置
JP2778478B2 (ja) 相関演算プロセッサ
JP3088956B2 (ja) 演算装置