JPH07234778A - 演算回路 - Google Patents

演算回路

Info

Publication number
JPH07234778A
JPH07234778A JP6024192A JP2419294A JPH07234778A JP H07234778 A JPH07234778 A JP H07234778A JP 6024192 A JP6024192 A JP 6024192A JP 2419294 A JP2419294 A JP 2419294A JP H07234778 A JPH07234778 A JP H07234778A
Authority
JP
Japan
Prior art keywords
circuit
arithmetic
product
multiplier
subtraction
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
JP6024192A
Other languages
English (en)
Inventor
Shigeyuki Abiko
茂志 安孫子
Shintaro Mizushima
慎太郎 水島
Kubura Maaku
クブラ マーク
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.)
Texas Instruments Japan Ltd
Original Assignee
Texas Instruments Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Japan Ltd filed Critical Texas Instruments Japan Ltd
Priority to JP6024192A priority Critical patent/JPH07234778A/ja
Priority to US08/391,871 priority patent/US5751618A/en
Publication of JPH07234778A publication Critical patent/JPH07234778A/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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Landscapes

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

Abstract

(57)【要約】 【目的】回路規模が小さく回路遅延を短くできる演算回
路を提供する。 【構成】演算回路100に入力される40ビットのデー
タA,Bは、上位24ビットが第1の演算回路110
で、下位16ビットが第2の演算回路120で演算され
る。演算回路分割信号pが演算回路を分割しない旨の信
号の時は、キャリー伝播制御回路130は演算回路12
0と演算回路110の間のキャリーを伝播し、命令制御
回路140は各演算回路に同一の命令を出力する。故
に、この回路は40ビットの演算回路となる。信号pが
演算回路を分割する旨の信号の時は、キャリー伝播制御
回路130は演算回路120と演算回路110の間のキ
ャリーの伝播を停止し、命令制御回路140は各演算回
路に各々独立の命令を出力する。故に、この回路は24
ビットと16ビットの並列演算回路となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタル・シグナル
・プロセッサ(以下、DSPと言う)に用いる演算回路
に関する。
【0002】
【従来の技術】ディジタル信号を高速・高精度に処理す
るDSPは、各種情報機器、通信機器のディジタル化と
相まって、その需要がますます拡大している。そして、
駆動周波数の向上、処理データのビット長の拡大や、ア
ドレッシング方式の工夫、並列処理化、パイプライン処
理化といったアーキテクチャの改善により、汎用DSP
の高性能化・高機能化は急速に進んでいる。一方で、リ
アルタイムの動画処理など、汎用DSPの性能を上回る
高速な処理が必要な場合には、専用演算器を搭載したD
SPが開発され使用されている。また、アルゴリズムが
標準化された分野や、必要処理性能が決まっている分野
においては、過剰な機能を削除し低消費電力化したパフ
ォーマンスのよい専用DSPを開発する動きも多い。こ
のように、汎用性と特殊機能を適切に兼ね備え、効率よ
く各種機能を搭載しているDSPが広く求められてい
る。
【0003】そのような、従来のDSPに広く用いられ
ている中央演算回路、積差/積和演算回路、および絶対
値距離演算回路について図8〜図12を参照して説明す
る。まず、中央演算回路について説明する。図8は、従
来のDSPの一般的な中央演算回路の主要構成部を説明
するブロック図である。中央演算回路500は、乗算器
610、算術論理演算器520、アキュムレータ530
を主要構成部として有する。乗算器610は、図示しな
いデータバスやレジスタなどから入力される乗数Xと被
乗数Yを乗じ、結果をレジスタ640に格納する。マル
チプレクサ550は、前記乗算結果のデータ、アキュム
レータ530内のレジスタのデータ、あるいは、図示し
ない他のレジスタのデータZなどより一のデータを選択
する。その選択されたデータとアキュムレータ530に
格納されている一のデータとの演算処理を算術論理演算
器520において行う。そして、その演算結果は再びア
キュムレータ530に格納される。前述した乗算器61
0と算術論理演算器520の処理は、図示しない制御信
号に基づいて各々並列に行われる。
【0004】次に、積和/積差演算回路について説明す
る。図9は、従来の積和/積差演算を高速に行う演算回
路の構成を示す図である。積和/積差演算回路600
は、乗算器610、レジスタ640、加減算器620、
および、レジスタ630が図示のごとく接続され構成さ
れる。なお、乗算器610およびレジスタ640は、通
常は、前述した中央演算回路500の乗算器およびレジ
スタが用いられる。加減算器620およびレジスタ63
0は、中央演算回路500の算術論理演算器520、お
よび、アキュムレータ530内の所定のレジスタが用い
られる場合もあり、また、積和/積差演算専用の別個の
回路により構成される場合もある。
【0005】以下、図9に示す積和/積差演算回路60
0の動作について説明する。まず、図示しないデータバ
スやレジスタなどから入力される乗数Xと被乗数Yは乗
算器610に入力され、乗算処理が行われる。その乗算
器610の構成について詳細に説明する。乗算器610
は、エンコーダ611〜614、部分積作成部615〜
618、および、加算器619より構成される。なお、
図9に示す乗算器610は、例示として8ビットの乗数
Xおよび被乗数Yを乗ずる乗算器とする。乗算器610
は、いわゆるブース(Booth)のアルゴリズムによ
り乗算を行う乗算器である。これによれば、乗数を2倍
し、その2倍された乗数を下位ビットより1ビットづつ
重複させて3ビットづつの部分に分割し、その分割され
た各部ごとに部分積を得、その部分積を加算して乗算結
果を得る。前記部分積は表1に示すように、前記3ビッ
トづつの値に基づいて被乗数Yを操作して容易に得られ
る。
【0006】
【表1】 なお、表1において、3ビット中の最上位ビットが
2 、最下位ビットd0 である。
【0007】したがって、乗算器610においては、ま
ず乗数Xを(0,X(0),X(1))、(X(1),
X(2),X(3))、(X(3),X(4),X
(5))、(X(5),X(6),X(7))と1ビッ
トを重複させながら3ビットづつの4つの部分に分割す
る。分割された3ビットづつの信号は順次エンコーダ6
11〜614に入力される。エンコーダ611〜614
においては乗数Xの各部分信号より部分積V3-0 の選択
信号S2-0 を作成する。このエンコーダ611の論理回
路図を図10に示す。図10に示すような回路であれ
ば、入力された乗数Xの各部分信号d2-0 より表2に示
すような選択信号S2-0 が作成される。作成された選択
信号S2-0 は部分積作成部615〜618に入力され
る。部分積作成部615〜618においては、入力され
た選択信号S2-0 に従って、表3に示すように被乗数Y
を操作し部分積V3-0 を求める。求められた部分積V
3-0 は加算器619に入力される。
【0008】
【表2】
【0009】
【表3】
【0010】加算器619においては、各部分積作成部
615〜618より入力された部分積V3-0 をビットの
ズレを考慮して2ビットづつずらしながら加算し、乗算
結果Vを求める。以上のように乗算器610により算出
された乗算結果Vはレジスタ640に格納される。次
に、加減算器620により、レジスタ630に格納され
ているこれまでの累積結果Wと、レジスタ640に格納
されている前記乗算結果Vを演算命令Iに基づいて加算
または減算し、その演算結果W’を再びレジスタ630
に格納する。この加減算器620の構成を図11に示
す。図11の加減算器620においては、演算命令I=
0の場合加算処理が行われ、I=1の場合減算処理が行
われる。
【0011】次に、絶対値距離演算回路について説明す
る。2数の差分を累積する絶対値距離の算出は、前述し
たような汎用的な中央演算回路500において実行する
ことも可能である。対象となる2数の減算を行い、計算
結果の符合に基づき絶対値を求め、その絶対値を順次加
算する、という処理を前記中央演算回路において行えば
よい。しかし、前記処理は、全て算術論理演算器で行う
ため、並列化が行えず、各処理対象組ごとに3サイクル
が必要となるため、処理が効率的でない。そのため、絶
対値および絶対値距離の算出のために、専用の絶対値距
離演算回路を有するDSPも見られる。
【0012】図12はそのような絶対値距離演算回路の
構成を示す図である。絶対値距離演算回路700は、減
算器710、正負調整回路720、加算器730を演算
回路として有する。減算器710は、図示しないデータ
バスやレジスタなどから入力される2数XおよびYにつ
いて、数Xより数Yを減じ、結果をレジスタ740に格
納する。正負調整回路720は、前記減算結果であるレ
ジスタ740に格納されているデータの符合を調べ、そ
のデータが正数の場合にはそのままレジスタ750に格
納する。また、前記データが負数であった場合は、その
データの補数を求めて正負を反転し、そのデータをレジ
スタ750に格納する。加算器730においては、レジ
スタ750に格納されているデータと、レジスタ760
に格納されているそれまでの累積データを加算し、再び
レジスタ760に格納する。最終的に、全要素数につい
て前記処理を行うと、レジスタ760に絶対値距離が格
納される。
【0013】
【発明が解決しようとする課題】しかし、前記従来のD
SPに広く用いられている中央演算回路、積和/積差演
算回路、および、絶対値距離演算回路においては以下に
示すような種々の問題があり、効率のよい汎用、また
は、専用のDSPが提供できないという問題があった。
まず、中央演算回路においては、算術論理演算回路を有
効に使えないという問題があった。近年、処理性能を向
上させるために演算回路の処理データのビット長を長く
することが行われている。しかし、通常の処理におい
て、このビット長を長くすることが、性能の向上に結び
ついていない場合が多かった。つまり、DSPを用いて
演算を行うような処理でも、たとえば8ビットや16ビ
ット、また、せいぜい32ビットといったビット長で充
分である処理は多い。また、累積処理の初期の段階など
において、最大値が前記小ビット長で充分である場合な
どもしばしばある。これらの場合、DSPの処理ワード
のビット長を、たとえば、40ビット、64ビットと長
くしても、性能向上には何ら寄与せず、回路規模の面で
ムダになるだけであった。
【0014】また、積和/積差演算回路においても、処
理時間が長く、回路規模が大きいという問題があった。
積和/積差演算はDSPにおいて頻繁に行われる処理で
ある。したがって、特に積和/積差演算回路の一部また
は全部を専用回路として具備する場合もある。しかし、
図9に示した積和/積差演算回路600を、積和/積差
専用回路としてDSPに搭載すると、その処理時間、回
路規模などは前記通常のDSPの中央演算回路で積和/
積差演算を行うのと同じであり、積和/積差演算を高速
に小規模の回路で行いたいという要望を満足するもので
はなかった。
【0015】さらに、絶対値距離演算回路においては、
効率よくDSPの演算回路を用いて処理を行えないとい
う問題があった。通常の中央演算回路でこの絶対値距離
演算を行えば、減算、正負調整、累積の各処理を全て算
術論理演算器で行うことになるため、3サイクルが必要
となり処理時間が遅くなるという問題があった。また、
専用回路を設け、前記いずれかの処理を専用回路に行わ
せたのでは、回路規模が増えるという問題が生じた。ま
た、その絶対値距離演算を実行している間、通常のDS
Pに備わるたとえば乗算器などの回路は停止しているた
め、演算回路を有効に使えないという問題もあった。
【0016】つまり、DSPに広く用いられている前記
従来の中央演算回路、積和/積差演算回路、および、絶
対値距離演算回路などの回路は、処理速度、回路規模の
面において充分満足のできる回路とは言えなかった。し
たがって、本発明の目的は、回路遅延が少なく、故に処
理速度が速く、また回路規模の小さい演算回路を提供す
ることにある。具体的には、本発明の目的は、長いビッ
ト長の演算回路を有効に使え、もって性能が向上するよ
うな中央演算回路に用いて好ましい算術論理演算回路を
提供することにある。また、本発明の目的は、回路遅延
が少なく、回路規模の小さい、積和/積差演算回路を提
供することにある。さらに、本発明の目的は、専用回路
を少なくし、通常のDSPの構成回路を有効に使いなが
ら絶対値距離の演算が高速にできる絶対値距離演算回路
を提供することにある。
【0017】
【課題を解決するための手段】前記目的を達成するため
に、本発明の演算回路である算術論理演算回路は、算術
論理演算回路を上位nビットについて算術論理演算を行
う第1の演算回路と、下位mビットについて算術論理演
算を行う第2の演算回路と、演算回路分割信号および演
算命令に基づいて、前記第1および第2の演算回路各々
の演算命令を制御する命令制御回路と、前記演算回路分
割信号に基づいて、前記第1および第2の演算回路間の
キャリーの伝播を制御するキャリー伝播制御回路とを有
する。
【0018】また、本発明の積和/積差演算回路は、順
次入力される2数および加減算命令に基づいて、前記加
減算命令が加算命令であった場合は前記2数の乗算結果
の値を出力し、前記加減算命令が減算命令であった場合
は前記乗算結果に(─1)を乗じた値を出力する乗算器
と、前記出力値を順次加算し累積する加算器とを有す
る。好適には前記乗算器は、Boothのアルゴリズム
に基づいて部分積を加算して乗算結果を得る乗算器であ
って、前記加減算命令が減算命令であった場合は、前記
部分積を加算する段階で部分積の負数を加算することに
より、乗算結果に(─1)を乗じた出力値を得る乗算器
である。
【0019】また、本発明の絶対値距離演算回路は、順
次入力される2数の減算を行う減算回路と、前記減算結
果の値と、前記減算結果の符合とに基づいて、前記減算
結果の絶対値を順次累積加算した絶対値距離を求める積
和/積差演算回路とを有する。特定的には、前記減算回
路と前記積和/積差演算回路は、前記減算結果の値と、
前記減算結果の符合を有し絶対値が1である値とが、乗
数および被乗数として前記積和/積差演算回路の乗算器
に入力されるように接続される。
【0020】また特定的には、前記減算回路と前記積和
/積差演算回路は、前記減算結果の値と、1とを、乗数
および被乗数として前記積和/積差演算回路の乗算器に
入力し、前記減算結果の符合を加減算命令信号として前
記積和/積差演算回路の加減算器に入力するように接続
される。好適には、前記積和/積差演算回路は、本発明
の積和/積差演算回路であることが望ましい。
【0021】
【作用】本発明の演算回路である算術論理演算回路にお
いては、演算回路分割信号が、演算回路を分割しない旨
の信号の場合は、前記第1および第2の演算回路の間で
はキャリーが伝播され、同一の演算命令により精度の高
い(n+m)ビットの算術論理演算を行うことができ
る。また、前記演算回路分割信号が、演算回路を分割す
る旨の信号の場合は、前記第1および第2の算術論理演
算回路は、キャリーの伝播を停止し、各々nビットおよ
びmビットの別個の算術論理演算を並列に故に高速に行
うことができる。
【0022】また、本発明の演算回路である積和/積差
演算回路においては、乗算を行う段階で、それ以降の累
積演算が加算であるか減算であるかを参照して乗算結果
を出力する。つまり、累積演算が加算である場合には乗
算の結果は通常の乗算結果を出力し、累積演算が減算で
ある場合には乗算結果に─1を乗じて正負を反転した値
を出力する。したがって、累積演算は必ず加算となるた
め演算器は、回路の簡単な加算器で構成可能となる。ま
た、乗算、加減算の各段階で補数の生成を複数回行うよ
うなムダな処理もなくなるため高速に積和/積差演算が
可能となる。
【0023】また、本発明の演算回路である絶対値距離
演算回路においては、2数の減算結果の値と、その正負
を示すMSBのビットデータを用いて、同符合のデータ
を乗ずること、または、負数を減じることにより絶対値
距離を求めている。したがって、DSPに通常備わる乗
算器や算術論理演算回路を用いて絶対値距離演算が行え
る。
【0024】
【実施例】第1実施例 本発明の演算回路の第1実施例を図1を参照して説明す
る。図1は、第1実施例の算術論理演算回路の構成を示
す図である。算術論理演算回路100は、第1の算術論
理演算器110、第2の算術論理演算器120、キャリ
ー伝播制御部130、および、命令制御部140により
構成されている。算術論理演算回路100には、2つの
入力データA,B、演算命令I、演算器分割信号pが入
力され、演算結果のデータCが出力される。前記入力デ
ータA,B、および、出力データCは各々40ビットの
ビット長を有するデータである。前記演算器分割信号p
は、演算器を分割して動作させる場合は1、分割せず動
作させる場合は0の値をとる信号である。
【0025】まず、前記各部の動作について説明する。
第1の算術論理演算回路110および第2の算術論理演
算回路120は、各々所定のビット長の演算器である。
演算回路110,120は、各々2つの入力端子より入
力される入力データに対して、命令入力端子より入力さ
れる演算命令に従って所定の演算処理を行い、結果を出
力端子より出力する。なお、本実施例においては、第1
の算術論理演算回路110における入出力データおよび
演算処理のデータのビット長は24ビット、第2の算術
論理演算回路120における入出力データおよび演算処
理のデータのビット長は16ビットである。また、この
第1および第2の演算回路で行われる演算処理は表4に
示すような加減算演算および論理演算である。
【0026】
【表4】 なお、表4においてaおよびbは入力データ、cは出力
データを表す。
【0027】また、第1の算術論理演算回路110はキ
ャリー入力端子を有し、また、第2の算術論理演算回路
120はキャリー出力端子を有する。各々、各演算回路
で行われる加減算演算の場合に参照または出力される。
【0028】キャリー伝播制御部130は、第2の算術
論理演算回路120から第1の算術論理演算回路110
へのキャリーの伝播を制御する。キャリー伝播制御部1
30は、演算器分割信号pに基づいて、前記信号pが演
算器を分割しない旨の信号であった場合、すなわち0で
あった場合は、第2の算術論理演算回路120のキャリ
ー出力を第1の算術論理演算回路110のキャリー入力
として接続させる。また、前記信号pが演算器を分割す
る旨の信号であった場合、すなわち1であった場合は、
前記接続は行わず、第1の算術論理演算回路のキャリー
入力には、キャリーの無いことを示す0を入力する。な
お、前記機能を有するキャリー伝播制御部130は、演
算器分割信号pを選択信号とするマルチプレクサにより
容易に構成可能である。
【0029】命令制御部140は、演算器分割信号pに
基づいて、演算命令Iを変換し第1の算術論理演算回路
110および第2の算術論理演算回路120に各々演算
命令i1 およびi2 を入力する。本実施例における前記
変換ルールを表5に示す。表5に示すように、命令制御
部140においては、演算器分割信号pが、演算器を分
割しない旨の信号0であった場合は、入力された演算命
令Iをそのまま、第1および第2の算術論理演算回路1
10,120に入力する。また、演算器分割信号pが演
算器を分割する旨の信号1であった場合は、入力された
演算命令Iより、第1および第2の算術論理演算回路1
10,120各々に別個の演算命令i1およびi2 を作
成し入力する。
【0030】
【表5】
【0031】以上のような各構成部を有する算術論理演
算回路100においては、まず、40ビットのビット長
を有する入力データA,Bは各々、上位24ビットと、
下位16ビットに分割され、各々第1および第2の算術
論理演算回路110,120に入力される。したがっ
て、第1の算術論理演算回路110においては入力デー
タA,Bの各々上位24ビットを対象として演算処理が
行われ、第2の算術論理演算回路120においては入力
データA,Bの各々下位16ビットを対象として演算処
理が行われる。
【0032】したがって、演算器分割信号pが0の場合
は、第1および第2の算術論理演算回路110,120
には、同一の演算命令が入力され、同一の演算が行われ
る。また、第2の算術論理演算回路120から第1の算
術論理演算回路110にキャリーが伝播される。したが
って、この場合、前記第1および第2の算術論理演算回
路110,120は1つの40ビットの算術論理演算回
路として機能する。また、演算器分割信号pが1の場合
は、第1および第2の算術論理演算回路110,120
には、別個の演算命令が入力され、前記各演算回路の間
でキャリーの伝播も行われず、前記各演算回路は全く別
個の動作を行う。したがって、24ビットと16ビット
の2つの演算回路を並列処理させている状態となる。
【0033】以上述べたように、本実施例の算術論理演
算回路100によれば、40ビットのビット長が必要な
場合には、40ビットの演算回路として動作し、小さな
値を対象とする場合には24ビットと16ビットの演算
回路を並列して動作させることが可能である。したがっ
て、汎用性がよく高性能な算術論理演算回路が実現でき
る。なお、本実施例においては前記第1と第2の算術論
理演算回路110,120へのデータの分割は24ビッ
トと16ビットに分割したが、これに限られるものでは
なく適宜任意のビット長で分割してよい。また、本実施
例においては前記第1と第2の算術論理演算回路11
0,120を分割して使用するときにそれぞれ別の演算
処理を行わせているが、同じ演算処理を行わせることも
可能である。
【0034】第2実施例 本発明の演算回路の第2実施例を図2〜図4を参照して
説明する。図2は、第2実施例の積和/積差演算回路の
構成を示す図である。積和/積差演算回路200は、乗
算器210、加算器220、レジスタ630、および、
レジスタ640よりなる。この積和/積差演算回路20
0は、順次入力される乗数Xおよび被乗数Yの乗算結果
を、加減算命令Iにしたがって順次加減算し、その累積
結果Wを得る積和/積差演算回路である。なお、本実施
例においては例示として、前記乗数Xおよび被乗数Yは
8ビットのデータ、累積結果Wは16ビットのデータと
する。図3は、積和/積差演算回路200の乗算器21
0に用いられるエンコーダ211の論理回路図である。
図4は、積和/積差演算回路200の加算器220の構
成を示す図である。
【0035】まず、乗算器210の構成について説明す
る。本実施例の乗算器210は、Boothのアルゴリ
ズムに基づく乗算器であって、さらに累積のための加減
算命令Iが減算であった場合には、乗数Xと被乗数Yを
乗じ乗算結果に(─1)を乗じた数を乗算結果として出
力するようにしたものである。すなわち、乗数を2倍
し、下位ビットより3ビットづつの部分に区切り、その
3ビットづつの各部分について被乗数Yより部分積を求
め、その部分積を加算して乗算結果を求める。この部分
積の求め方は以下に示すルールに従う。
【0036】加減算命令Iが加算命令であって、前記3
ビットの乗数部分値が0の場合は0、前記3ビットの乗
数部分値が1の場合は被乗数Y、前記3ビットの乗数部
分値が2の場合は被乗数Y、前記3ビットの乗数部分値
が3の場合は被乗数Yに2を乗じた数、前記3ビットの
乗数部分値が4の場合は被乗数Yの補数に2を乗じた
数、前記3ビットの乗数部分値が5の場合は被乗数Yの
補数、前記3ビットの乗数部分値が6の場合は被乗数Y
の補数、前記3ビットの乗数部分値が7の場合は0とす
る。
【0037】また、加減算命令Iが減算命令であって、
前記3ビットの乗数部分値が0の場合は0、前記3ビッ
トの乗数部分値が1の場合は被乗数Yの補数、前記3ビ
ットの乗数部分値が2の場合は被乗数Yの補数、前記3
ビットの乗数部分値が3の場合は被乗数Yの補数に2を
乗じた数、前記3ビットの乗数部分値が4の場合は被乗
数Yに2を乗じた数、前記3ビットの乗数部分値が5の
場合は被乗数Y、前記3ビットの乗数部分値が6の場合
は被乗数Y、前記3ビットの乗数部分値が7の場合は0
とする。
【0038】このようなアルゴリズムを、乗算器210
においては以下に説明するような回路構成で実現する。
乗算器210は、エンコーダ211〜214、部分積作
成部615〜618、および、加算器619より構成さ
れる。乗算器210においては、まず乗数Xを(0,X
(0),X(1))、(X(1),X(2),X
(3))、(X(3),X(4),X(5))、(X
(5),X(6),X(7))と1ビットを重複させな
がら3ビットづつの4つの部分に分割する。前記各3ビ
ットづつの乗数部分は各々エンコーダ211〜214に
入力される。エンコーダ211〜214は、前記乗数X
を分割して入力された3ビットのデータ、および、加減
算命令Iに基づいて、部分積選択信号S2-0 を作成す
る。その作成ルールを表6に、エンコーダ211の論理
回路図を図3に示す。なお、他のエンコーダ212〜2
14も、エンコーダ211と同一の回路である。作成さ
れた選択信号S2-0 は部分積作成部615〜618に入
力される。
【0039】
【表6】
【0040】部分積作成部615〜618は、前記従来
の積和/積差演算回路600の乗算器610に用いられ
た部分積作成部と同一の機能である。すなわち、入力さ
れた選択信号S2-0 に基づいて、表3に従って部分積V
3-0 を出力する。加算器619も、前記従来の積和/積
差演算回路600の乗算器610に用いられた加算器と
同一の機能である。すなわち、各部分積作成部615〜
618より入力された部分積V3-0 をビットのズレを考
慮して加算し、乗算結果Vを求める。
【0041】以上のように、乗算器210により算出さ
れた乗算結果Vはレジスタ640に格納される。加算器
220においては、レジスタ630に格納されているそ
れまでの累積結果Wと、レジスタ640に格納されてい
る乗算結果Vを加算し、加算結果W’を再びレジスタ6
30に格納する。この加算器220の構成を図4に示
す。なお、前記累積結果のレジスタ630は、図示しな
いリセット信号により、一連の積和/積差演算処理の開
始時に、その内容がリセットされる。
【0042】以上、説明したように、本発明の積和/積
差演算回路においては、乗算器より、累積時の加減算命
令を考慮した値、すなわち積和演算をする場合は乗算結
果Vが、また、積差演算を行う場合は乗算結果に(─
1)を乗じた数(─V)が出力される。この乗算結果の
符合の制御は、図3に示すように乗算器のエンコーダ2
11の回路遅延を増大させないパスにExclusiv
e−OR素子251を加えた回路変更のみで行える。ま
た、これにより、図11に示すような加減算器が図4に
示すような加算回路のみでよくなるため、減算のための
反転素子621〜623が不要となり回路が簡単にな
り、回路遅延も少なくなる。したがって、回路規模が小
さくなり、処理時間も短縮できる。
【0043】第3実施例 本発明の演算回路の第3実施例を図5を参照して説明す
る。図5は、第3実施例の絶対値距離演算回路の構成を
示す図である。絶対値距離演算回路310は減算器71
0、乗算器610、加算器730、および、レジスタ7
40〜760より構成されている。減算器710、加算
器730、および、レジスタ740〜760は、前述し
た従来の絶対値距離演算回路700の同一符合を付した
各部と同一の構成および動作である。第3実施例の絶対
値距離演算回路310は、従来の絶対値距離演算回路7
00の正負調整回路720を乗算器610に置換した構
成である。なお、この乗算器610は、図8に示したD
SPに通常備わる乗算器でよい。そして、乗算器610
に、レジスタ740に格納されている減算結果の値、お
よび、数値1を示すデータのMSBを前記減算結果のM
SBと置換した値が、各々乗数および被乗数として入力
されるように接続されている。
【0044】このような構成の絶対値距離演算回路31
0によれば、レジスタ740に格納されている減算結果
の値が、正数であれば、乗算器610において1と乗ぜ
られ、負数であれば、乗算器610において(─1)と
乗ぜらる。したがって、いずれにしても乗算器610の
出力として減算結果の絶対値が得られる。このように、
第3実施例の絶対値距離演算回路310によれば、通常
DSPが備える乗算器を用いて絶対値を求めることがで
きる。したがって、絶対値距離演算回路を別個に追加す
る必要が無いため、回路規模を小さくすることができ
る。また、減算、正負調整、累積を全て算術論理演算回
路で行う場合に比べると、絶対値正負調整を乗算器で行
うことができるため、並列処理をすることができ、高速
に絶対値距離演算を行うことができる。
【0045】第4実施例 本発明の演算回路の第4実施例を図6を参照して説明す
る。図6は、第4実施例の絶対値距離演算回路の構成を
示す図である。絶対値距離演算回路320は減算器71
0、乗算器610、加減算器620、および、レジスタ
740〜760より構成されている。前記各構成部は、
前述した従来の絶対値距離演算回路700、積和/積差
演算回路600、および、通常のDSPの中央演算回路
500の同一符合を付した各部と同一の構成および動作
である。第4実施例の絶対値距離演算回路320は、第
3実施例の絶対値距離演算回路310の加算器730を
加減算器620に置換し、減算器710による減算結果
の値のMSBにより加減算器620の加算または減算を
制御するようにした。また、乗算器610には、レジス
タ740に格納されている減算結果の値、および、数値
1を示すデータを各々乗数および被乗数として入力され
るように接続されている。
【0046】このような構成の絶対値距離演算回路32
0によれば、乗算器610においては、レジスタ740
に格納されている減算結果の値に1を乗じているだけな
ので前記減算結果の値がそのまま出力される。そして、
加減算器620においては、前記減算結果の値により加
算または減算を切り換えているので、その減算結果が正
数の場合は加算が行われ、負数の場合は減算が行われ
る。負数の減算処理は結果的に絶対値の加算処理となる
ため、前記減算結果の値が正数であっても負数であって
もその絶対値が累積される。このように、第4実施例の
絶対値距離演算回路320によれば、通常DSPが備え
る乗算器と加減算器からなる演算回路を用いて絶対値距
離を求めることができる。したがって、前記第3実施例
同様に回路規模を小さくすることができ、高速に絶対値
距離を求めることができる。また、前記第3実施例の絶
対値距離演算回路に比べると、乗算器610の被乗数と
しては、数値1を入力すればよく、MSBに前記減算結
果の値のMSBをセットする必要がないため、乗算器6
10への入力データの作成が容易に行える点が有効であ
る。
【0047】第5実施例本発明の演算回路の第5実施例
を図7を参照して説明する。 図7は、第5実施例の絶対値距離演算回路の構成を示す
図である。絶対値距離演算回路330は減算器710、
積和/積差演算回路200、およびレジスタ740より
構成されている。減算器710およびレジスタ740
は、前述した従来の絶対値距離演算回路700の同一符
合を付した各部と、また、積和/積差演算回路200は
第2実施例に示した積和/積差演算回路200と、各々
その構成および動作は同一である そして、第5実施例の絶対値距離演算回路330におい
ては、積和/積差演算回路200には、乗数としてレジ
スタ740に格納されている減算結果の値が、被乗数と
して数値1が、加減算命令として前記減算結果の値のM
SBが、各々入力されるように接続されている。なお、
前記減算結果の値は正数の場合MSBは0となり、負数
の場合、MSBは1となる。また、積和/積差演算回路
200は、加減算命令が0の場合は加算を、1の場合は
減算を行う。
【0048】このような構成の絶対値距離演算回路33
0によれば、積和/積差演算回路200において、第4
実施例同様に、減算結果の値に1が乗じられ、その減算
結果が正数の場合は加算が行われ、負数の場合は減算が
行われる。負数の減算処理は結果的に絶対値の加算処理
となるため、前記減算結果の値が正数であっても負数で
あってもその絶対値が累積される。このように、第5実
施例の絶対値距離演算回路330によれば、第2実施例
に示した本発明の積和/積差演算回路を用いて絶対値距
離を求めることができる。したがって、より小さい回路
規模で、高速に、絶対値距離演算を行うことができる。
なお、上述した実施例では、各演算器の間にレジスタを
挿入した構成としているが、必要に応じて各演算器にレ
ジスタの機能を付加してレジスタを除いた構成としても
よいし、可能ならばレジスタそのものを除いた構成とし
てもよい。
【0049】
【発明の効果】本発明の演算回路である算術論理演算回
路によれば、短ビット長のデータの演算処理が高速にな
る。故に、長いビットデータに対応した演算回路を有効
に使用でき、高性能な算術論理演算回路およびそれを用
いた中央演算処理回路を提供できる。また、本発明の演
算回路である積和/積差演算回路によれば、正負の無駄
な変換がなく高速に積和/積差演算が行える。また、累
積演算器は加算器のみでよいため、累積処理も高速にな
り、累積回路の回路規模も小さくなる。故に、高速で回
路規模の小さい積和/積差演算回路を提供できた。さら
に、本発明の演算回路である絶対値距離演算回路によれ
ば、通常のDSPに備わる乗算器、または算術論理演算
回路を用いて高速に絶対値距離演算が行える回路を実現
できた。故に、専用回路を少なくし既存回路を有効に使
うことができた。したがって、回路規模を小さくし、絶
対値距離の算出が高速に可能な絶対値距離演算回路を提
供できた。
【図面の簡単な説明】
【図1】本発明の第1実施例である算術論理演算回路の
構成を示す図である。
【図2】本発明の第2実施例である積和/積差演算回路
の構成を示す図である。
【図3】図2に示した積和/積差演算回路の乗算器に用
いられるエンコーダの論理回路図である。
【図4】図2に示した積和/積差演算回路の加算器の構
成を示す図である。
【図5】本発明の第3実施例である絶対値距離演算回路
の構成を示す図である。
【図6】本発明の第4実施例である絶対値距離演算回路
の構成を示す図である。
【図7】本発明の第5実施例である絶対値距離演算回路
の構成を示す図である。
【図8】DSPの中央演算回路の主要部の構成を示す図
である。
【図9】従来の積和/積差演算回路の構成を示す図であ
る。
【図10】図9に示した積和/積差演算回路の乗算器に
用いられるエンコーダの論理回路図である。
【図11】図9に示した積和/積差演算回路の加減算器
の構成を示す図である。
【図12】従来の絶対値距離演算回路の構成を示す図で
ある。
【符号の説明】
100 算術論理演算回路 110 上位ビット算術論理演算器 120 下位ビット算術論理演算器 130 キャリー伝播制御部 140 命令制御部 200 積和/積差演算回路 210 乗算器 211〜214 エンコーダ 251 EORゲート 220 加算器 221 半加算器 222〜223 全加算器 310〜330 絶対値距離演算回路 500 中央演算回路 520 算術論理演算器 530 アキュムレータ 550 マルチプレクサ 600 積和/積差演算回路 610 乗算器 611〜614 エンコーダ 615〜618 部分積作成部 619 加算器 620 加減算器 621〜623 EORゲート 624〜626 全加算器 630,640 レジスタ 700 絶対値距離演算回路 710 減算器 720 正負調整回路 730 加算器 740〜760 レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク クブラ フランス国、セデックス、ビレヌーブ・ル ーベ06271 テキサス・インスツルメンツ フランス 内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】nビットのデータについて算術論理演算を
    行う第1の演算回路と、 mビットのデータについて算術論理演算を行う第2の演
    算回路と、 入力された演算回路分割信号が演算回路を分割しない旨
    の信号の場合は、入力された演算命令に基づき同一の演
    算命令を前記第1および第2の演算回路に出力し、前記
    演算回路分割信号が演算回路を分割する旨の信号の場合
    は、前記演算命令に基づき各々独立した演算命令を前記
    第1及び第2の演算回路に出力する命令制御回路と、 前記演算回路分割信号が演算回路を分割しない旨の信号
    の場合は、前記第1および第2の演算回路の間にキャリ
    ーを伝播させ、前記演算回路分割信号が演算回路を分割
    する旨の信号の場合は、前記第1および第2の演算回路
    の間のキャリーの伝播を停止するキャリー伝播制御回路
    とを有する算術論理演算回路。
  2. 【請求項2】加算命令が入力された場合は入力される2
    数の乗算結果の値を生成し出力し、減算命令が入力され
    た場合は入力される2数の乗算結果に(─1)を乗じた
    値を生成し出力する乗算器と、 前記乗算器より出力される値を順次加算し累積する加算
    器とを有する積和/積差演算回路。
  3. 【請求項3】前記乗算器は、ブースのアルゴリズムに基
    づいて、乗数を所定の部分に区切り、該各部分の部分積
    を加算して乗算結果の値を生成する乗算器であって、減
    算命令が入力された場合は、前記部分積の加算において
    該部分積の負数を加算する請求項2記載の積和/積差演
    算回路。
  4. 【請求項4】順次入力される2数の減算を行う減算回路
    と、 前記減算回路における減算結果の値と、絶対値が1であ
    り前記減算結果と同符合の値とを、乗数および被乗数と
    して入力し乗算処理を行い、順次累積する積和/積差演
    算回路とを有する絶対値距離演算回路。
  5. 【請求項5】順次入力される2数の減算を行う減算回路
    と、 前記減算回路における減算結果の値と、1とを、乗数お
    よび被乗数として入力し乗算処理を行い、前記乗算結果
    の値を前記減算結果の符合に基づいて累積加減算する積
    和/積差演算回路とを有する絶対値距離演算回路。
  6. 【請求項6】前記積和/積差演算回路は請求項2または
    3記載の積和/積差演算回路である請求項5記載の絶対
    値距離演算回路。
JP6024192A 1994-02-22 1994-02-22 演算回路 Pending JPH07234778A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6024192A JPH07234778A (ja) 1994-02-22 1994-02-22 演算回路
US08/391,871 US5751618A (en) 1994-02-22 1995-02-22 Arithmetic circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6024192A JPH07234778A (ja) 1994-02-22 1994-02-22 演算回路
US08/391,871 US5751618A (en) 1994-02-22 1995-02-22 Arithmetic circuit

Publications (1)

Publication Number Publication Date
JPH07234778A true JPH07234778A (ja) 1995-09-05

Family

ID=26361673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6024192A Pending JPH07234778A (ja) 1994-02-22 1994-02-22 演算回路

Country Status (2)

Country Link
US (1) US5751618A (ja)
JP (1) JPH07234778A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704762B1 (en) 1998-08-28 2004-03-09 Nec Corporation Multiplier and arithmetic unit for calculating sum of product
JP2004260890A (ja) * 2003-02-25 2004-09-16 Yaskawa Electric Corp 多軸モータ制御装置
JP2018120433A (ja) * 2017-01-25 2018-08-02 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960012A (en) * 1997-06-23 1999-09-28 Sun Microsystems, Inc. Checksum determination using parallel computations on multiple packed data elements
JPH11134175A (ja) * 1997-10-29 1999-05-21 Toshiba Corp 乗加減算器及び演算器
US6157939A (en) * 1998-06-04 2000-12-05 Integrated Device Technology, Inc. Methods and apparatus for generating multiplicative inverse product
US6449630B1 (en) * 1999-04-07 2002-09-10 Mitsubishi Electric Research Laboratories, Inc. Multiple function processing core for communication signals
EP1178398B1 (en) * 2000-08-01 2006-04-05 STMicroelectronics S.A. Arithmetic unit
US7739324B1 (en) 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
JP5407589B2 (ja) * 2009-06-29 2014-02-05 富士通株式会社 演算回路および演算処理装置ならびに演算処理方法
US9830150B2 (en) * 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62229439A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 並列乗算器
US5166539A (en) * 1990-07-09 1992-11-24 Nippon Telegraph And Telephone Corporation Neural network circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704762B1 (en) 1998-08-28 2004-03-09 Nec Corporation Multiplier and arithmetic unit for calculating sum of product
JP2004260890A (ja) * 2003-02-25 2004-09-16 Yaskawa Electric Corp 多軸モータ制御装置
JP2018120433A (ja) * 2017-01-25 2018-08-02 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置

Also Published As

Publication number Publication date
US5751618A (en) 1998-05-12

Similar Documents

Publication Publication Date Title
US5500812A (en) Multiplication circuit having rounding function
US6209017B1 (en) High speed digital signal processor
US6115729A (en) Floating point multiply-accumulate unit
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JPH0431412B2 (ja)
JPH07234778A (ja) 演算回路
JP3345894B2 (ja) 浮動小数点乗算器
US5177703A (en) Division circuit using higher radices
JP2001005643A (ja) 累乗演算装置
JPH0690668B2 (ja) ファジイ演算装置
JP2511527B2 (ja) 浮動小数点演算器
JP3537378B2 (ja) 加算器および集積回路
JP3356613B2 (ja) 加算方法および加算器
US6269385B1 (en) Apparatus and method for performing rounding and addition in parallel in floating point multiplier
JPH09231201A (ja) 浮動小数点乗算累算装置
JPH0831024B2 (ja) 演算プロセッサ
JP2608090B2 (ja) 高基数非回復型除算装置
JP2734438B2 (ja) 乗算装置
JPH0251732A (ja) 浮動小数点演算器
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP2000010763A (ja) 除算回路
JP2518532B2 (ja) 減算シフト型除算器
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置
JPH0414173A (ja) 固定小数点演算器
JPH11353157A (ja) 累積加算回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040615