JP2000081966A - 演算装置 - Google Patents

演算装置

Info

Publication number
JP2000081966A
JP2000081966A JP11025427A JP2542799A JP2000081966A JP 2000081966 A JP2000081966 A JP 2000081966A JP 11025427 A JP11025427 A JP 11025427A JP 2542799 A JP2542799 A JP 2542799A JP 2000081966 A JP2000081966 A JP 2000081966A
Authority
JP
Japan
Prior art keywords
result
addition
partial
multiplication
processing
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
JP11025427A
Other languages
English (en)
Inventor
Tomochika Kaneki
朋睦 鹿子木
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP11025427A priority Critical patent/JP2000081966A/ja
Publication of JP2000081966A publication Critical patent/JP2000081966A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 積和演算処理と、デュアル乗算処理とを実行
可能な演算装置において、装置資源の十分な活用を図
り、かつ演算処理を迅速に行い得る演算装置を提供す
る。 【解決手段】 入力レジスタ101、および102と、
拡張器103〜106と、乗算選択器107、および1
08と、単精度乗算器109、および110と、シフタ
111、および112と、全加算選択器113と、全加
算器114と、桁上げ伝搬加算器115と、出力レジス
タ116、および117とを備えたことで、倍精度積和
演算処理と単精度デュアル乗算処理とを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は演算装置に関し、特
に、単精度、及び倍精度において加算処理と乗算処理と
を含む演算処理を行う演算装置に関する。
【0002】
【従来の技術】マイクロプロセッサは、コンピュータが
動作するための中核的な演算処理機能をLSIに収めて
1チップ化したものである。また、コンピュータにおい
て命令の解釈や実行を制御するCPU(central proces
sing unit )は、パーソナルコンピュータにおいては通
常1チップ化されているものであることから、このよう
な場合にはマイクロプロセッサとCPUとが同義として
扱われることとなる。マイクロプロセッサやCPUはコ
ンピュータにおいて、演算処理を実行することにより、
プログラムの実効制御など汎用的な制御が主な機能とな
っているが、その演算処理機能の高速化、高性能化は近
年著しいものとなっている。
【0003】一方、デジタル信号を加工するための特殊
なプロセッサーとして、DSP(digital signal proce
ssor)が用いられている。DSPは、音声や画像、計測
データなどのアナログ信号をデジタル化し、フィルター
処理などの処理を行う回路(又は装置)であり、最近で
はマイクロプロセッサと同様に1チップ化されたLSI
となっていることが多い。DSPは、CPUと同様の演
算処理によって信号処理を行うものであるが、汎用性の
強いCPUと比較して信号処理に向け特化されたもので
あり、高速な乗除算機能を有するため、浮動小数点の積
和演算については、通常、汎用CPUよりはるかに高速
に実行できるものとなっている。又、最近では,マルチ
メディアに特化した高性能なDSPであるメディアプロ
セッサーも普及してきている。
【0004】コンピュータシステムにおいて音声・画像
等の信号処理を行いたい場合には、汎用的制御のための
CPU等のマイクロプロセッサと、信号処理のためのD
SPとを同一システム内に有する構成とすることで、高
速な信号処理を実行することが可能となる。
【0005】図23は、CPUとDSPとを備えたコン
ピュータシステムを示す概念図である。同図においてコ
ンピュータシステム2301は、その内部にCPU23
02とDSP2304とを備えている。CPU2302
とDSP2304とはそれぞれが1チップのプロセッサ
である。これらプロセッサはそれぞれが異なるマイクロ
プログラムを用いるものとなるので、コンピュータシス
テム2301は、第1のマイクロプログラム記憶手段2
303と、第2のマイクロプログラム記憶手段2305
とを備え、前者にはCPU2302用のマイクロプログ
ラムを、後者にはDSP2304用のマイクロプログラ
ムを保持するものである。
【0006】図23に示すシステムは、CPUとDSP
とがそれぞれ1チップのプロセッサとなっているもので
あるが、近年においては、高速な処理を実現しつつ回路
規模の小型化の要請に対応するために、マイクロプロセ
ッサとDSPとの両者を1チップ化する試みもなされて
いる。
【0007】一方、近年のマイクロプロセッサは前述の
ように処理の高速化が著しいことから、高機能のマイク
ロプロセッサを、デジタル信号処理に特化されたDSP
が専ら用いられてきた用途において、データ処理のため
に用いることも行われるようになっている。かかる技術
としては、例えば、CPUにDSPの機能を肩代わりさ
せようとするNSP(native signal Processing)の試
みや、その考え方を受け継いだ、マルチメディア拡張機
能であるMMX技術などが挙げられる。DSPの代替と
して実行する信号処理のための演算は、積和演算(乗算
処理と加算処理)が主体であり、MMX技術において
は、命令セットに積和命令を備えることで処理の高速化
を図るものである。
【0008】一般にプロセッサにおける演算処理には、
比較的精度の低い単精度演算と、高精度の倍精度演算と
があるが、データ処理などに用いる積和演算において
は、演算における桁落ちを防止するために倍精度演算が
必要とされるものである。マイクロプロセッサはその内
部に加算器や乗算器を備えているものであり、これらを
効率的に用いることが積和演算の高速な処理のためには
重要である。
【0009】また、マルチメディアデータ処理等の迅速
化のために、複数の乗算処理を同時並行的に実行するレ
ジスタ分割演算の機能を有するマイクロプロセッサも開
発されている。レジスタ分割演算処理において二つの乗
算処理を実行する場合は、デュアル乗算処理と呼ばれ
る。後述するように、倍精度乗算処理を実行できる乗算
器は、十分に二つの単精度乗算処理を実行し得るもので
あるので、単一の倍精度乗算処理を実行できるプロセッ
サであれば、そのレジスタを分割使用することで、単精
度のデュアル乗算処理を実行し得るものとなる。
【0010】レジスタを分割して用いることができ、倍
精度積和演算処理と、単精度デュアル演算処理とを実行
し得る、従来の技術による演算装置として、特開平7−
121354号公報に開示されたものがある。以下この
例に準じて、従来の技術による演算装置について説明す
る。
【0011】図24は、従来の技術による、倍精度(3
2ビット)積和演算処理と単精度(16ビット)デュア
ル乗算処理とを実行し得る演算装置の構成を示すブロッ
ク図である。図示するように、従来の技術による演算装
置は、レジスタ2401、2402、および2405
と、乗算器(倍精度)2403と、桁上げ伝搬加算器2
404とを備えている。レジスタ2401、および24
02は入力レジスタであり演算処理の処理対象である入
力データS2451、およびS2452を一時保持す
る。倍精度乗算器2403は、レジスタ2401、およ
び2402に一時保持されたデータに対して倍精度の乗
算処理を行って、部分積を生成する。桁上げ伝搬加算器
2404は、倍精度乗算器2403が生成した部分積に
対して、桁上げ伝搬加算処理を行う。レジスタ2405
は出力レジスタであり、桁上げ伝搬加算器2404の処
理結果を一時保持する。
【0012】図25は、従来の技術による演算装置の倍
精度積和演算処理を、また図26は、従来の技術による
演算装置の単精度デュアル乗算処理を説明するための図
である。以下に、図24のように構成される従来の技術
による演算装置の、「A.倍精度積和演算」、および
「B.単精度デュアル乗算」の際の動作を、図24を参
照しながら図25、および図26を用いて説明する。
【0013】A.倍精度(32ビット)積和演算 図25に示すように、倍精度積和演算処理は、それぞれ
32ビットの被乗数X、および乗数Yの乗算処理を行っ
て倍精度乗算結果X*Yを生成し、生成した倍精度乗算
結果を前段までの演算結果である累積データZと加算処
理するものである。乗算処理と、該乗算処理で得られた
倍精度乗算結果と累積データとの加算処理とは、必要に
応じ繰り返して行われるものとすることができる。
【0014】積和演算処理が開始すると、図24に示す
従来の技術による演算装置には、32ビットの被乗数
X、および32ビットの乗数Yが、入力データS245
1、およびS2452として、それぞれレジスタ240
1、および2402に入力され、一時保持された後、倍
精度乗算器2403に出力される。倍精度乗算器240
3は、32ビット×32ビットの乗算処理を実行して、
64ビットの倍精度乗算結果X*Yを生成し、この倍精
度乗算結果を乗算結果S2453として桁上げ伝搬加算
器2404に出力する。初回の処理においては累積デー
タZは存在しないので、乗算結果S2453(X*Y)
はそのまま桁上げ伝搬加算結果S2454として、レジ
スタ2405に出力され、一時保持される。レジスタ2
405に一時保持された加算結果は、積和演算処理が終
了したならば当該演算装置外部に演算結果S2455と
して出力されるが、積和演算処理が終了していないなら
ば、桁上げ伝搬加算器2404に入力され、累積データ
として、次の段階の乗算処理で得られる乗算結果と加算
されることとなる。
【0015】積和演算処理が続行されるものとして、演
算結果S2455は、桁上げ伝搬加算器2404に出力
され、図25に示す累積データZとして用いられること
となる。一方、レジスタ2401、および2402に
は、後段の被乗数Xと乗数Yとが入力され、これらが倍
精度乗算器2403に入力されて、新たな倍精度乗算結
果X*Yが生成され、乗算結果S2453として桁上げ
伝搬加算器2404に入力され、前段までの演算結果で
ある累積データZと加算処理される。以降、必要なだけ
乗算処理と加算処理とが繰り返し実行される。
【0016】B.単精度(16ビット)デュアル乗算 図26に示すように、単精度デュアル乗算処理は、それ
ぞれ16ビットの被乗数XUと乗数YUとの乗算、そし
てやはりそれぞれ16ビットの被乗数XLと乗数YLと
の乗算処理、すなわち、16ビット×16ビットの乗算
処理二つが同時並行的に実行されるものである。
【0017】図24に示す従来の技術による演算装置
は、レジスタ分割演算が可能なものであるので、デュア
ル乗算が行われる場合、処理対象となるデータは、被乗
数同士を組として、また乗数同士を組として演算装置に
入力される。すなわち、被乗数XUは被乗数X(32ビ
ット=1ワード)の上位ハーフワード(16ビット=1
ハーフワード)として、被乗数XLは被乗数Xの下位ハ
ーフワードとしてレジスタ2401に保持される。乗数
についても同様であり、個々の乗算処理における乗数
は、32ビットの乗数Yの上位ハーフワードYUと下位
ハーフワードYLとしてレジスタ2402に保持され
る。
【0018】従って、図24において、レジスタ240
1、および2402に入力され、倍精度乗算器2403
に出力されるデータは、それぞれが32ビットのものと
なる。また、従来の技術による演算装置においては、単
精度デュアル乗算処理が行われるばあいには、倍精度乗
算器2403に対して桁上がり抑制信号S2456が入
力され、倍精度乗算器2403における演算処理におい
ては、図26に示すように桁上がりが抑制されることと
なる。すなわち、倍精度乗算器2403においては、桁
上がり抑制信号S2456に対応して、図26に示すよ
うに部分積の一部を「0」とすることによって、下位ハ
ーフワードから上位ハーフワードへの桁上がりが行われ
ないようにする。
【0019】倍精度乗算器2403では、上位ハーフワ
ード同士、16ビット×16ビットの乗算処理が実行さ
れ、32ビットの乗算結果XU*YUが生成される。ま
た、これに伴い、下位ハーフワード同士16ビット×1
6ビットの乗算処理が実行され、32ビットの乗算結果
XL*YLが生成される。上位32ビットの乗算結果と
下位32ビットの乗算結果とが加算されて64ビットの
加算結果S2453が生成され、演算結果S2455と
してレジスタ2405に保持された後出力される。演算
結果S2455(64ビット)の上位32ビットは第1
の乗算結果(XU*YU)、下位32ビットは第2の乗
算結果(XL*YL)となっている。
【0020】このように、従来の技術による演算装置で
は、倍精度乗算器2403を備えて、単精度デュアル演
算処理においては、桁上げ抑制を行うことで、倍精度積
和演算処理と単精度デュアル乗算処理とを行うものであ
る。なお、以上の説明では符号処理について省略してい
るものであるが、設定により符号なし演算、または符号
付き演算を行うものとすることができる。
【0021】
【発明が解決しようとする課題】前述のように、コンピ
ュータシステムにおいて、マイクロプロセッサとDSP
とを備えるものとすることで、高速な信号処理が行うこ
とが可能となる。しかし、このようなシステム構成にお
いては、図23に示すように、複数のプロセッサーチッ
プを有するために回路規模が増大する点が問題となって
いた。さらに、マイクロプロセッサとDSPとが、それ
ぞれ異なるマイクロプログラムを用いるものとなるた
め、マイクロプログラムの開発はそれぞれ別個に行われ
るものとなり、かかるシステムを実現するための工数の
増大につながるものであることが問題となっていた。前
述の両プロセッサを1チップ化する試みは、回路規模を
若干低減し得るものであるが、工数低減を十分に図り得
るものではない。
【0022】この点からみて、DSP代替機能を有する
マイクロプロセッサの使用は望ましいものとなる。前述
のように、積和演算を含む演算処理を行うマイクロプロ
セッサは、その有する乗算器や加算器を効率的に用いる
必要があり、図24に示すような倍精度積和演算処理と
単精度デュアル乗算処理とを実行し得る演算装置は、D
SP代替機能をも有するマイクロプロセッサとしての用
途に適合し得るものとなる。しかし、このような従来の
技術による演算装置においても、未だ十分に効率的な演
算処理を行っているとは言い難い。
【0023】まず、乗算器2403は倍精度乗算器であ
って、32ビット×32ビットの乗算処理が可能なもの
である。図25に示すように、倍精度積和演算処理にお
いては乗算器2403全体が用いられるものとなってい
るが、図26に示す単精度デュアル乗算処理の場合に
は、乗算器2403の回路が半分程度しか用いられてい
ない。同図において概念的に図示する部分積の生成と保
持において、4つの領域のうち、2領域相当の部分は桁
上がり抑制信号S2456に対応して強制的に「0」を
保持するものとなり、残りの2領域の部分が乗算処理に
用いられているものである。このように、乗算器の装置
資源の活用が十分に図られていない点が、従来の技術に
よる演算装置の第一の問題点となっていた。
【0024】次に、乗算器2403は、倍精度乗算器で
あるため、この倍精度乗算器2403で生成され保持さ
れる部分積については、単精度乗算器で生成される演算
結果の4倍相当のものとなる。このように、乗算処理の
段数が多く、演算装置のクリティカルパスが大きいこと
から、演算処理の高速化が図りがたい点が第二の問題点
となっていた。
【0025】本発明はかかる事情に鑑みてなされたもの
であり、倍精度積和演算処理と単精度デュアル乗算処理
との双方を実行し得る演算装置において、効率的な演算
処理を実行することで、回路規模を小型化し、装置資源
の活用と処理の迅速化をなし得る演算装置を提供するこ
とを目的とする。
【0026】また、本発明は、従来の技術による一般的
なマイクロプロセッサに基づいて、その回路規模を大き
く増大することなく、演算回路等の装置資源を活用して
効率的な演算処理を実行することで、DSP代替機能を
果たすために必要な種々の演算処理を高速に実行し得る
演算装置を提供することを目的とする。
【0027】
【課題を解決するための手段】上記目的を達成するため
に、本発明の請求項1にかかる演算装置は、Lビットの
第1の処理対象とMビットの第2の処理対象とに対して
演算処理を行う演算装置において、Nビット(NはL以
下)の第1の部分処理対象と、Sビット(SはM以下)
の第2の部分処理対象とに対して、演算処理を行い、部
分演算結果を生成する部分演算手段と、上記部分演算結
果に対して、所定の変換処理を実行し、変換部分演算結
果を生成する部分演算結果処理手段と、上記変換部分演
算結果を統合し、統合演算結果を生成する演算結果統合
手段とを備えたものである。
【0028】また、請求項2にかかる演算装置は、請求
項1の装置において、Lビットの被乗数とMビットの乗
数とに対して乗算処理を行うものであり、上記部分演算
手段は、Nビットの部分被乗数と、Sビットの部分乗数
とに対して、乗算処理を行い、部分乗算結果を生成する
部分乗算手段であり、上記部分演算結果処理手段は、上
記部分乗算手段が生成した部分乗算結果に対して所定の
データシフト処理を行い、部分シフト結果を生成するシ
フト手段であり、上記演算結果統合手段は、上記部分シ
フト結果に対して加算処理を行うことにより、統合乗算
結果を生成する加算統合手段と、上記統合乗算結果を保
持する演算結果保持手段とを有するものである。
【0029】また、請求項3にかかる演算装置は、請求
項2の装置において、上記加算統合手段が、上記加算処
理において、上記演算結果保持手段が保持する内容を加
算する第1の演算モードと、上記加算統合手段が、上記
加算処理において、上記演算結果保持手段が保持する内
容を加算しない第2の演算モードとを有するものであ
る。
【0030】また、請求項4にかかる演算装置は、請求
項2の装置において、上記部分乗算手段は、上記被乗数
の上位Nビットに対して乗算処理を行う第1の部分乗算
手段と、上記被乗数の下位(L−N)ビットに対して乗
算処理を行う第2の部分乗算手段とからなるものであ
り、上記第1の部分乗算手段が、上記乗数の上位Sビッ
トの部分乗数を用い、上記第2の部分乗算手段が、上記
乗数の下位(M−S)ビットを用いる第1の部分乗算モ
ードと、上記第1の部分乗算手段が、上記乗数の下位
(M−S)ビットの部分乗数を用い、上記第2の部分乗
算手段が、上記乗数の上位Sビットを用いる第2の部分
乗算モードとを切り替えるものである。
【0031】また、請求項5にかかる演算装置は、請求
項4の装置において、上記加算統合手段が、上記加算処
理において、上記演算結果保持手段が保持する内容を加
算する第1の演算モードと、上記加算統合手段が、上記
加算処理において、上記演算結果保持手段が保持する内
容を加算しない第2の演算モードとを有するものであ
り、第1の演算モードにおいては、第1の部分乗算モー
ドにおいて乗算処理を行う第1段階処理と、第2の部分
乗算モードにおいて乗算処理を行う第2段階処理とを行
うものである。
【0032】また、請求項6にかかる演算装置は、請求
項2ないし5のいずれかの装置において、上記部分乗算
手段に対しての入力を監視することにより、上記部分乗
算結果の特定の部分を所定の値となるように制御する補
正指示信号を生成する補正指示信号生成手段をさらに備
えたものである。
【0033】また、請求項7にかかる演算装置は、請求
項1の装置において、上記部分演算手段は、Nビットの
部分処理対象と、Sビットの部分処理対象とに対して、
加減算処理を行い、部分加減算結果を生成する部分加減
算手段と、Nビットの部分処理対象と、Sビットの部分
処理対象とに対して、乗算処理を行い、部分乗算結果を
生成する部分乗算手段とを有するものであり、上記部分
演算結果処理手段は、上記部分加減算手段が生成した部
分加減算結果に対して所定の論理演算処理を行い、加減
算結果処理結果を生成する加減算結果処理手段と、上記
部分乗算手段が生成した部分乗算結果に対して所定のデ
ータシフト処理を行い、部分シフト結果を生成するシフ
ト手段とを有するものであり、上記演算結果統合手段
は、上記部分シフト結果に対して加算処理を行うことに
より、統合乗算結果を生成する加算統合手段と、上記統
合乗算結果を保持する演算結果保持手段とを有するもの
である。
【0034】また、請求項8にかかる演算装置は、請求
項7の装置において、上記部分加減算手段が生成した部
分か減算結果に基づいて、上記部分乗算結果の特定の部
分を所定の値となるように制御する加減算結果対応補正
指示信号を生成する加減算結果対応補正指示信号生成手
段をさらに備えたものである。
【0035】また、請求項9にかかる演算装置は、請求
項1の装置において、上記部分演算手段は、Nビットの
部分処理対象と、Sビットの部分処理対象とに対して、
加減算処理を行い、部分加減算結果を生成する部分加減
算手段を有するものであり、上記部分演算結果処理手段
は、上記部分加減算手段が生成した部分加減算結果に基
づいて、上記部分加減算結果か、所定値かのいずれかを
選択して出力する加算結果決定処理手段を有するもので
ある。
【0036】
【発明の実施の形態】実施の形態1.本発明の実施の形
態1による演算装置は、演算対象であるデータを分割・
拡張処理し、部分積を生成して全加算処理を行うもので
ある。図1は、本実施の形態1による、倍精度(32ビ
ット)積和演算処理と単精度(16ビット)デュアル乗
算処理とを実行し得る演算装置の構成を示すブロック図
である。図示するように、本実施の形態1の演算装置
は、入力レジスタ101、および102と、拡張器10
3、104、105、および106と、乗算選択器10
7、および108と、乗算器109、および110と、
シフタ111、および112と、全加算選択器113
と、全加算器114と、桁上げ伝搬加算器115と、出
力レジスタ116、および117とを備えている。
【0037】入力レジスタ101、および102は、そ
れぞれ32ビットの入力データである、被乗数(S15
1)、および乗数(S152)を入力してこれを保持す
る32ビットレジスタである。拡張器103、および1
04は、レジスタ101に保持された被乗数の上位16
ビット(S153)、および下位16ビット(S15
4)に対して、それぞれ1ビット拡張を行う。拡張器1
05、および106は、レジスタ102に保持された乗
数の上位16ビット(S155)、および下位16ビッ
ト(S156)に対して、それぞれ1ビット拡張を行
う。
【0038】乗算選択器107は、拡張器105の出力
S159と、拡張器106の出力S160とのいずれか
を選択し、選択結果S161を乗算器109に出力す
る。乗算選択器108は、拡張器105の出力S159
と、拡張器106の出力S160とのいずれかを選択
し、選択結果S162を乗算器110に出力する。乗算
器109は、拡張器103の出力S157と、乗算選択
器107の選択結果S161とに対して乗算処理を行
う。乗算器110は、拡張器104の出力S158と、
乗算選択器108の選択結果S162とに対して乗算処
理を行う。乗算器109、および110はいずれも単精
度乗算器である。シフタ111、および112は、それ
ぞれ乗算器109、および110が出力する乗算結果S
163、およびS164に対してデータシフトを行い、
シフト結果S165、およびS166を全加算器114
に出力する。
【0039】全加算選択器113は、値「0」か、後述
する出力レジスタ116、および117に保持された累
積データかのいずれかを選択して、選択結果S167を
全加算器114に出力する。全加算器114は、シフタ
111、および112の出力するシフト結果S165、
およびS166と、全加算選択器113の出力する選択
結果S167とを入力し、これらに対して全加算処理を
行う。全加算器114は桁上げ伝搬処理を行わないの
で、全加算結果は二つのデータとなり、これらをS16
8、およびS169として桁上げ伝搬加算器115に出
力する。桁上げ伝搬加算器115は、全加算器115の
出力S168、およびS169に対して桁上げ伝搬加算
処理を行い桁上げ伝搬加算結果S170を出力する。出
力レジスタ116は、桁上げ伝搬加算結果S170の上
位32ビットを累積データS173の上位32ビットS
171として保持する。出力レジスタ117は、桁上げ
伝搬加算結果S170の下位32ビットを累積データS
173の下位32ビットS172として保持する。
【0040】図2は、図1の乗算器109、および11
0の内部構成を示すブロック図である。図示するように
乗算器109、および110は、デコーダ201、部分
積生成器202、ツリー状全加算器203、および桁上
げ伝搬加算器204を備えている。デコーダ201は、
ブースのアルゴリズムによってデコード処理を行いビッ
ト数を低減したデコード結果を生成する。乗算器10
9、および110のそれぞれに対しては、入力データ
(被乗数)の16ビットに、拡張器103から106が
拡張した1ビットが加えられた17ビットのデータが入
力される。デコーダ201においては、1ビットずつオ
ーバーラップしながら3ビットずつのデコード処理がな
されるものとなる。
【0041】部分積生成器202は、デコーダ201が
生成した被乗数に基づくデコード結果と、乗数とに対し
て乗算処理を行うことによって部分積を生成する。ツリ
ー状全加算器203は、複数の全加算器がツリー状にな
っているものであり、部分積生成器202が生成した複
数の部分積に対してツリー状の全加算処理を行う。ツリ
ー状の全加算処理は、複数の部分積を所定ビットずつず
らして全加算する処理である。桁上げ伝搬加算器204
は、ツリー状全加算器203が生成した加算結果に対し
て、桁上げ伝搬加算処理を行う。桁上げ伝搬加算処理の
結果が、当該乗算器109、または110の乗算結果と
なる。
【0042】図3、および図4は本実施の形態1の演算
装置による倍精度積和演算処理、および単精度デュアル
乗算処理を説明する図であり、図5、および図6は本実
施の形態1の演算装置による倍精度積和演算処理、およ
び単精度デュアル乗算処理における処理の動作を示すタ
イミングチャート図である。以下に、図1のように構成
される本実施の形態1による演算装置の、「A.倍精度
積和演算」、および「B.単精度デュアル乗算」の際の
動作を、図1〜図6を用いて説明する。
【0043】A.倍精度(32ビット)積和演算 まず、図3を用いて、本実施の形態1の演算装置が行う
倍精度積和演算処理を説明する。ここでは32ビットの
被乗数Xと、32ビットの乗数Yとの乗算処理を含む積
和演算がなされるものであり、被乗数Xの上位16ビッ
トをXU、下位16ビットをXL、乗数Yの上位16ビ
ットをYU、下位16ビットをYLとする。被乗数Xの
上位XU、および乗数Yの上位YUには、拡張器10
3、および105により1ビットの符号を付与する符号
拡張がなされ、拡張器103、および105より出力さ
れるデータS157、およびS158はいずれも17ビ
ットのデータとなる。また、被乗数Xの下位XL、およ
び乗数Yの下位YLには、拡張器104、および106
により1ビット' 0' を付与するゼロ拡張がなされ、拡
張器104、および106より出力されるデータS15
9、およびS160はいずれも17ビットのデータとな
る。
【0044】図3に示すように、符号なし乗算により部
分積XL*YLが生成され、符号付き乗算により部分積
XL*YU、XU*YL、およびXU*YUがそれぞれ
生成される。そして、部分積XL*YLはシフトせず
に、部分積XL*YUとXU*YLとは16ビットだけ
左シフトした(XL*YU)<<16、および(XU*
YL)<<16として、部分積XU*YUは32ビット
だけ左シフトした(XU*YU)<<32として、これ
らが加算される。さらに、累積データZが存在する場合
(積和演算の前段階において累積データが生成されてい
た場合)には、累積データZも加算処理されて、演算結
果X*Y+Zが生成される。
【0045】図3に示す倍精度積和演算を行う場合の、
本実施の形態1の演算装置の動作を、図1を参照して、
図5のタイミングチャートに従って説明する。32ビッ
トの被乗数Xが入力データS151として入力レジスタ
101に、32ビットの乗数Yが入力データS152と
して入力レジスタ102に入力される。被乗数Xの上位
16ビットXU S153は、拡張器103において1
ビットの符号を付与する符号拡張がなされ、拡張された
17ビットのデータS157は乗算器109に出力され
る。被乗数Xの下位16ビットXL S154は、拡張
器104において1ビットの‘0’を付与するゼロ拡張
がなされ、拡張された17ビットのデータS158は乗
算器110に出力される。乗数Yの上位16ビットYU
S155は、拡張器105において1ビットの符号を
付与する符号拡張がなされ、拡張された17ビットのデ
ータS159は乗算選択器107、および108に出力
される。乗数Yの下位16ビットXL S156は、拡
張器106において1ビットの‘0’を付与するゼロ拡
張がなされ、拡張された17ビットのデータS160は
乗算選択器107、および108に出力される。
【0046】図5のタイミングチャートに示す1サイク
ル目において、乗算選択器107は、符号拡張を行う拡
張器105の出力S159を選択し、乗算選択器108
は、ゼロ拡張を行う拡張器106の出力S160を選択
する。従って、乗算器109には、被乗数Xの上位XU
を含むデータS157と、乗数Yの上位YUを含むデー
タS159とが入力され、これらはともに符号拡張され
たデータであることから、図3に示すように符号付き演
算である乗算処理がなされ、XU*YUが生成される。
一方、乗算器110には、被乗数Xの下位XLを含むデ
ータS158と、乗数Yの下位YLを含むデータS16
0とが入力され、これらはともにゼロ拡張されたデータ
であることから、図3に示すように符号なし演算である
乗算処理がなされ、XL*YLが生成される。
【0047】乗算器109と110とは、それぞれの乗
算結果S163(XU*YU)と、S164(XL*Y
L)とをシフタ111、および112に出力する。シフ
タ111は、入力された乗算結果S163に対して、3
2ビット左シフトを行い、生成したシフト結果S165
((XU*YU)<<32)を全加算器114に出力す
る。シフタ112は、入力された乗算結果S164に対
して、0ビット左シフトを行い(すなわち、シフトを行
わない)、生成したシフト結果S166(XL*YL)
を全加算器114に出力する。
【0048】全加算選択器113は倍精度積和演算の際
には、出力レジスタ116、および117の保持するデ
ータS173(累積データZ)を選択するものである
が、初期状態においては、出力レジスタ116、および
117にはデータは保持されていないので、データS1
73は0相当のものとなっている。従って、全加算器1
14においては、入力されたシフト結果S165((X
U*YU)<<32)、シフト結果S166(XL*Y
L)、および出力レジスタの保持するデータS173
(0相当の累積データZ)が加算され、全加算結果S1
68、およびS169が桁上げ伝搬加算器115に出力
される。
【0049】桁上げ伝搬加算器115においては、加算
結果S168、およびS169に対して、桁上げ伝搬加
算処理を行い、桁上げ伝搬加算結果S170を生成す
る。図5のタイミングチャートに示すように、1サイク
ル目の中間結果である桁上げ伝搬加算結果S170は、
(XU*YU)<<32+XL*YL+Zとなり、この
S170が出力レジスタ116、および117において
保持されるものとなる。
【0050】ここでは、S170は64ビットのものと
なり、それぞれが32ビットレジスタである出力レジス
タ116、および117は、データS170の上位32
ビット、および下位32ビットを保持するものとする。
【0051】続いて、図5のタイミングチャートの2サ
イクル目に示す処理が行われる。2サイクル目におい
て、乗算選択器107は、ゼロ拡張を行う拡張器106
の出力S160を選択し、乗算選択器108は、符号拡
張を行う拡張器105の出力S159を選択する。従っ
て、乗算器109には、被乗数Xの上位XUを含むデー
タS157と、乗数Yの下位YLを含むデータS160
とが入力され、一方が符号拡張されたデータであること
から、図3に示すように符号付き演算である乗算処理が
なされ、XU*YLが生成される。一方、乗算器110
には、被乗数Xの下位XLを含むデータS158と、乗
数Yの上位YUを含むデータS159とが入力され、一
方が符号拡張されたデータであることから、図3に示す
ように符号付き演算である乗算処理がなされ、XL*Y
Uが生成される。
【0052】乗算器109と110とは、それぞれの乗
算結果S163(XU*YL)と、S164(XL*Y
U)とをシフタ111、および112に出力する。シフ
タ111、および112は、入力された乗算結果S16
3、およびS164に対して、16ビット左シフトを行
い、生成したシフト結果S165((XU*YL)<<
16)、およびS166((XL*YL)<<16)を
全加算器114に出力する。
【0053】前述のように、全加算選択器113は倍精
度積和演算の際には、出力レジスタ116、117の保
持するデータS173(累積データZ)を選択するの
で、全加算選択器113からは、出力レジスタ116、
および117に保持された、(XU*YU)<<32+
XL*YL+ZであるS167が全加算器114に入力
されることとなる。
【0054】全加算器114においては、シフタ11
1、および112から出力されるシフト結果S165、
およびS166、そして、全加算選択器113から出力
されるS167が加算処理され、加算処理の結果がS1
68、およびS169として桁上げ伝搬加算器115に
出力される。桁上げ伝搬加算器115において、加算結
果S168、およびS169が桁上げ伝搬加算処理され
た結果S170は、図5に示すように、(XU*YU)
<<32+XL*YL+Z+(XU*YL)<<16+
(XL*YU)<<16=X*Y+Zとなる。64ビッ
トで得られる演算結果S170は、上位32ビットが出
力レジスタ116に、下位32ビットが出力レジスタ1
17に保持される。
【0055】積和演算が繰り返される場合、出力レジス
タ116、および117に保持されたX*Y+Zを示す
演算結果が、1サイクル目に全加算選択器113を経由
して全加算器において(累積データZとして)加算され
るものとなり、図5に示す2サイクルの処理が同様に実
行されることとなる。そして、積和演算が終了したなら
ば、出力レジスタ116、および117に保持された演
算結果が、本実施の形態1の演算装置における倍精度積
和演算処理の処理結果として出力されるものとなる。
【0056】このように、本実施の形態1による演算装
置では、倍精度積和演算処理を実行する。本実施の形態
1による演算装置においては、前述のように単精度乗算
器を2個(109と110)備えているものであり、図
5に示すように各マシンサイクルにおいて、2個の単精
度乗算結果が部分積として生成される。従来の技術によ
る演算装置では、倍精度乗算器を用いるものであって、
単精度乗算結果の4倍程度の部分積を生じることと比較
すると、本実施の形態1による演算装置では部分積が少
なくて良いものとなり、乗算処理の段数が削減され、迅
速な処理を行うことが可能となる。
【0057】B.単精度(16ビット)デュアル乗算 まず、図4を用いて、本実施の形態1の演算装置が行う
単精度デュアル乗算処理を説明する。本実施の形態1の
演算装置は、レジスタ分割演算機能を有するものであっ
てデュアル乗算処理が可能であり、図示するように、単
精度デュアル乗算処理は、それぞれ16ビットの被乗数
XUと乗数YUとの乗算処理と、やはりそれぞれ16ビ
ットの被乗数XLと乗数YLとの乗算処理とが、すなわ
ち、16ビット×16ビットの乗算処理二つが同時並行
的に実行されるものである。従来の技術による場合と同
様に、デュアル乗算が行われる場合、処理対象となるデ
ータは、被乗数同士、および乗数同士を組として演算装
置に入力される。すなわち、被乗数XUは被乗数X(3
2ビット=1ワード)の上位ハーフワード(16ビット
=1ハーフワード)として、被乗数XLは被乗数Xの下
位ハーフワードとして入力レジスタ101に保持され
る。乗数についても同様であり、個々の乗算処理におけ
る乗数は、32ビットの乗数Yの上位ハーフワードYU
と下位ハーフワードYLとしてレジスタ102に保持さ
れる。
【0058】そして、図示するように、本実施の形態1
の演算装置においては、XU、XL、YU、およびYL
のそれぞれに対して、拡張器103、104、105、
および106において1ビットの符号を付与する符号拡
張が行われ、XU、XL、YU、およびYLを含む、そ
れぞれ17ビットのデータに対しての乗算が行われる。
従って、XU*YU、およびXL*YLがいずれも符号
付き演算として乗算処理により生成されることとなる。
【0059】図4に示す単精度デュアル乗算を行う場合
の、本実施の形態1の演算装置の動作を、図1を参照し
て、図6のタイミングチャートに従って説明する。ま
ず、上位16ビットが被乗数XU、下位16ビットが被
乗数XLである入力データS151がレジスタ101
に、上位16ビットが乗数YU、下位16ビットが乗数
YLである入力データS152がレジスタ102に入力
される。次に、拡張器103、104、105、および
106は、XU、XL、YU、およびYLに対して、そ
れぞれ1ビットの符号を付与する符号拡張を行い、X
U、XL、YU、およびYLを含む、それぞれ17ビッ
トのデータS157、S158、S159、およびS1
60が生成される。拡張された17ビットのデータS1
57、およびS158は、それぞれ乗算器109、およ
び110に出力される。拡張された17ビットのデータ
S159、およびS150は、それぞれ乗算選択器10
7、および108に出力される。
【0060】図6の1サイクル目において、乗算選択器
107は拡張器105から出力される、YUを含む信号
S159を、また、乗算選択器108は拡張器106か
ら出力される、YLを含む信号S160を選択し、選択
の結果を信号S161、および信号S162として、そ
れぞれ乗算器109、および110に出力する。前述の
ように拡張結果はいずれも符号拡張されたものである。
【0061】従って、乗算器109においては、XU
(S157)とYU(S159)との符号付き乗算処理
がなされ、乗算結果S163がシフタ111に出力され
る。また、乗算器110においては、XL(S158)
とYL(S160)との符号付き乗算処理がなされ、乗
算結果S164がシフタ112に出力される。単精度デ
ュアル乗算処理においては、シフタ111は32ビット
左シフトを、シフタ112は0シフト(すなわち、シフ
トを行わない)を行うように設定されているものであ
り、シフタ111からは32ビット左シフトされたシフ
ト結果S165((XU*YU)<<32)が、シフタ
112からは、データS164と同じものであるシフト
結果S166(XL*YL)が全加算器114に出力さ
れる。
【0062】また、単精度デュアル乗算処理において
は、全加算選択器113は「0」を選択して出力するも
のとなっている。従って、全加算選択器113からは値
0が全加算器114に出力される。全加算器114は、
シフト結果S165、同S166、および全加算選択器
113からの出力S167(値0)を全加算処理し、加
算結果S168、およびS169を桁上げ伝搬加算器1
15に出力する。桁上げ伝搬加算器115は、入力した
加算結果S168、およびS169を桁上げ伝搬加算処
理し、64ビットの桁上げ伝搬加算結果S170を出力
レジスタ116、および117に出力する。64ビット
の演算結果S170の上位32ビットは第1の乗算処理
XU*YUの結果であり、出力レジスタ116で保持さ
れる。また、下位32ビットは、第2の乗算処理XL*
YLの結果であり、出力レジスタ117で保持される。
【0063】このように、本実施の形態1による演算装
置は単精度デュアル乗算処理を行う。図4、および図6
に示すように、第1、および第2の乗算処理は、二つの
単精度乗算器109、および110において互いに影響
を与えることなく実行され、乗算結果はシフタにおいて
シフト処理された上で加算されることとなる。従って、
本実施の形態1の演算装置では、二つの単精度乗算器が
十分に活用されているものであり、図4と図26とを比
較すれば分かるように、本実施の形態1では乗算器にお
いて活用されない冗長な部分を生じてはいない。
【0064】このように、本実施の形態1の演算装置に
よれば、入力レジスタ101、および102と、拡張器
103〜106と、乗算選択器107、および108
と、単精度乗算器109、および110と、シフタ11
1、および112と、全加算選択器113と、全加算器
114と、桁上げ伝搬加算器115と、出力レジスタ1
16、および117とを備え、単精度乗算器109、お
よび110を活用して倍精度積和演算処理と、単精度デ
ュアル乗算処理とを実行するので、倍精度乗算器を用い
る従来の技術と比較して、乗算処理の段数を削減して迅
速な処理を行うことが可能となり、単精度デュアル演算
処理を実行する場合にも、乗算器内部に冗長な部分を生
じることなく、装置資源の活用を図ることが可能とな
る。
【0065】実施の形態2.本発明の実施の形態2によ
る演算装置は、実施の形態1と同様の演算処理を行うも
のであるが、乗算器の内部構成を簡略化し、補正信号を
用いることで、さらに処理効率の向上を図るものであ
る。
【0066】図7は、本実施の形態2による、倍精度積
和演算処理と単精度デュアル乗算処理とを実行し得る演
算装置の構成を示すブロック図である。図示するよう
に、本実施の形態2の演算装置は、入力レジスタ70
1、および702と、拡張器703、704、705、
および706と、乗算選択器707、および708と、
乗算器709、および710と、シフタ711a、71
1b、712a、および712bと、全加算選択器71
3と、全加算器714と、桁上げ伝搬加算器715と、
出力レジスタ716、および717と、補正信号発生器
710とを備えている。
【0067】拡張器704は、実施の形態1の拡張器1
04と同様の1ビットの拡張を行うが、本実施の形態2
の拡張器704は、拡張した結果であるS758を乗算
器710に出力することに加えて、拡張結果の最上位ビ
ットを示す信号S758aを補正信号発生器718に出
力する。乗算選択器708は、実施の形態1の乗算選択
器108と同様の選択と選択結果の出力とを行うが、本
実施の形態2の乗算選択器708は、選択の結果を示す
信号S762を乗算器710に出力することに加えて、
選択結果の最上位を示す信号S762aを補正信号発生
器718に出力する。
【0068】乗算器709、および710は実施の形態
1の乗算器109、および110と同様に単精度乗算器
であるが、本実施の形態2の乗算器709、および71
0は後述するように内部構成が実施の形態1と異なるも
のであり、乗算器709、および710は、乗算処理の
結果を二つの中間結果(_sumと_cryで表す。)
として出力するものである。さらに、乗算器710は補
正信号対応乗算器であって、後述するように、補正信号
発生器718から入力される補正信号に対応した乗算処
理を実行する。
【0069】シフタ711a、711b、712a、お
よび712bは、乗算器709、および710が出力す
る乗算結果S763a、S763b、S764a、およ
びS764bに対して、データシフトを行う。補正信号
発生器718は、それぞれの出力の最上位ビットを示す
拡張器704の出力(S758a)と、乗算選択器70
8の出力(S762a)とを入力し、さらに、当該演算
装置における演算処理が倍精度積和演算処理であるか、
単精度デュアル演算処理であるかを示す制御信号S77
4に応じて、補正信号S775を発生して乗算器710
に出力する。
【0070】図11は本実施の形態2の演算装置におけ
る補正信号の生成を説明するための図である。図11に
従って、補正信号発生器718により発生される補正信
号S775について説明する。図11において、DMU
Lは、演算モードを示す制御信号S774がとる値を示
しており、単精度デュアル乗算処理の場合には値「1」
を、倍精度積和演算処理を含むその他の演算処理の場合
には値「0」をとるものである。Xs、およびYsは、
乗算器710に入力される拡張結果S758、および選
択結果S762の最上位ビットであり、信号S758
a、およびS762aとして補正信号発生器718に入
力される。Xsは被乗数の最上位ビット、また、Ysは
乗数の最上位ビットであり、いずれも符号を示す符号ビ
ットである。これらの符号ビットは「0」は正を、
「1」は負を示すものである。HPは、補正信号発生器
718において、入力される信号S774(DMU
L)、S758a(Xs)、およびS762a(Ys)
の値によって決定される、補正信号S775の値を示し
ている。
【0071】図示するように、DMULが「0」の場
合、すなわち単精度デュアル乗算処理モードでない場合
は、Xs、およびYsの値にかかわらずHPは「0」と
して出力され、DMULが「1」の場合、すなわち単精
度デュアル乗算処理モードの場合には、HPはXs、お
よびYsによって決定されるものとなる。そして、X
s、およびYsがともに「0」またはともに「1」の場
合、HPは「0」となり、Xs、またはYsのいずれか
が「0」で他方が「1」の場合、HPは「1」となる。
Xs、およびYsは被乗数、および乗数の符号を示すも
のであるので、このようなHPは両者の乗算結果の符号
を示す(「0」は正、「1」は負)ものとなっている。
このように補正信号発生器718は、値HPを有する補
正信号775を発生し、これを乗算器(補正信号対応)
710に出力するものである。
【0072】図7において、本実施の形態2の演算装置
が備える入力レジスタ701、および702、拡張器7
03、705、および706、乗算選択器707、全加
算選択器713、全加算器714、桁上げ伝搬加算器7
15、出力レジスタ716、および717は、実施の形
態1の演算装置が備える101〜103、105〜10
7、113〜117と同様であり、ここでは説明を省略
する。
【0073】図8は、補正信号対応乗算器710の内部
構成を示すブロック図である。図示するように補正信号
対応乗算器710は、デコーダ801、部分積生成器8
02、およびツリー状全加算器803を備えている。図
8と図2との比較において示されるように、本実施の形
態2の補正信号対応乗算器710は、桁上げ伝搬加算器
を備えないものとなっている。なお、図示する補正信号
対応乗算器710は、補正信号を入力するものである
が、図7に示す乗算器709は、補正信号を入力しない
点を除いて、乗算器710と同様の内部構成を有するも
のであって、やはり桁上げ伝搬加算器を備えないもので
ある。
【0074】部分積生成器802は、デコーダ801よ
りデコード処理された被乗数と、図7に示す乗算選択器
707が選択して出力する乗数とを入力し、両者の乗算
処理における部分積PP0〜PP8を生成する。なお、
部分積の生成に当たっては、符号処理も含まれたものと
なるため、当該乗算器内部において符号拡張処理を行う
必要がないものとなる。また、補正信号対応乗算器71
0においては、当該乗算器外部(図7の補正信号発生器
718)から補正信号を入力した場合には、当該補正信
号を部分積の下位から33ビット目に入力するものであ
り、後段のツリー状全加算器803における処理では、
部分積とともに加算処理をなされるものとなる。
【0075】また、図8に示す、本実施の形態2の演算
装置が備える乗算器が備えるデコーダ801、およびツ
リー状全加算器803の機能は、実施の形態1における
乗算器の内部構成に示した201、および203と同様
である。本実施の形態2では、乗算器709、および7
10は桁上げ伝搬加算器を備えないものであるので、ツ
リー状全加算器803が出力する結果、そして乗算器の
乗算結果は、それぞれが34ビットの二つの中間結果
(_sumと_cry)として出力される。
【0076】補正信号対応乗算器710が行う補正信号
対応乗算処理においては、乗算処理を行い乗算結果を生
成する際に、入力された値HPを有する補正信号S77
5に対応して、値HPを33ビット目に加算するもので
ある。通常の符号付き乗算処理においては、17ビット
(処理対象16ビット+符号拡張1ビット)の被乗数と
乗数とに対する乗算を実行することによって、34ビッ
トの乗算結果を生成するものであり、この乗算結果の上
位2ビットは符号を示すものであって、乗算結果が正で
あれば「00」、乗算結果が負であれば「11」とな
る。単精度デュアル乗算処理以外の場合においては、補
正信号S775の値HPは常に「0」として出力される
ため、加算処理への影響はない。
【0077】これに対して単精度デュアル乗算処理の場
合、補正信号S775の値HP(図11)は前述の通り
乗算結果の符号を示すものであり、正であれば「0」、
負であれば「1」となるもので、これが下位から33ビ
ット目に加算されることによって、乗算結果、すなわ
ち、乗算器710が出力する二つの信号S764aとS
764bとの加算結果の上位2ビットは常に「00」と
なるものである。
【0078】図9、および図10は本実施の形態2の演
算装置による倍精度積和演算処理、および単精度デュア
ル乗算処理を説明する図である。以下に、図8のように
構成される本実施の形態1による演算装置の、「A.倍
精度積和演算」、および「B.単精度デュアル乗算」の
際の動作を、図8〜図11を用いて説明する。
【0079】A.倍精度(32ビット)積和演算 本実施の形態2においても、実施の形態1と同様に被乗
数X、および乗数Yはそれぞれ32ビットであり、被乗
数Xは、上位16ビットのXUと下位16ビットのXL
とから、また、乗数Yは、上位16ビットのYUと下位
16ビットのYLとからなるものである。被乗数Xと乗
数Yとは、入力データS751、およびS752として
入力される。入力レジスタ701、および702におけ
る保持と、拡張器703〜706による1ビット拡張、
そして拡張結果の乗算器への入力までは実施の形態1と
同様に行われる。
【0080】本実施の形態2においても、実施の形態1
(図5)と同様に、倍精度積和演算処理はマシンサイク
ル2サイクル分の処理として実行される。1サイクル目
には、乗算選択器707は、符号拡張を行う拡張器70
5の出力S759を、乗算選択器708は、ゼロ拡張を
行う拡張器706の出力S760を選択する。従って、
乗算器709には、被乗数Xの上位XUを含むデータS
757と、乗数Yの上位YUを含むデータS759とが
入力され、これらはともに符号拡張されたデータである
ことから、図9に示すように符号付き演算である乗算処
理がなされ、中間結果XU*YU_sumとXU*YU
_cryとが生成される。生成された中間結果XU*Y
U_sumとXU*YU_cryとは、それぞれ信号S
763aとS763bとしてシフタ711a、および7
11bに出力される。
【0081】一方、乗算器710には、被乗数Xの下位
XLを含むデータS758と、乗数Yの下位YLを含む
データS760とが入力され、これらはともにゼロ拡張
されたデータであることから、図9に示すように符号な
し演算である乗算処理がなされ、中間結果XL*YL_
sumとXL*YL_cryとが生成される。生成され
た中間結果XL*YL_sumとXL*YL_cryと
は、それぞれ信号S764aとS764bとしてシフタ
712a、および712bに出力される。なお、前述の
ように、補正信号発生器718において生成される補正
信号S775は、倍精度積和演算処理においては乗算器
710の処理に影響を与えない。
【0082】シフタ711a、および711bは、入力
された乗算結果S763a、およびS763bに対し
て、32ビット左シフトを行い、生成したシフト結果S
765a((XU*YU_sum)<<32)と、S7
65b((XU*YU_cry)<<32)とを全加算
器114に出力する。シフタ712a、および712b
は、入力された乗算結果S764a、およびS764b
に対して、0ビット左シフトを行い(すなわち、シフト
を行わない)、生成したシフト結果S766a(XL*
YL_sum)と、S766b(XL*YL_cry)
とを全加算器714に出力する。
【0083】全加算器714は、入力された信号に対し
て全加算処理を行い、得られた二つの中間結果をS76
8とS769として桁上げ伝搬加算器715に出力し、
桁上げ伝搬加算器715はこれらを桁上げ伝搬加算処理
することにより、加算結果S770を生成してこれを出
力レジスタ716、および717に出力する。出力レジ
スタ716、および717において保持される1サイク
ル目の演算結果は、実施の形態1の場合と同様に(XU
*YU)<<32+XL*YL+Zとなる。
【0084】2サイクル目において、乗算選択器207
は、ゼロ拡張を行う拡張器206の出力S260を選択
し、乗算選択器208は、符号拡張を行う拡張器205
の出力S259を選択する。従って、乗算器209に
は、被乗数Xの上位XUを含むデータS257と、乗数
Yの下位YLを含むデータS260とが入力され、一方
が符号拡張されたデータであることから、図9に示すよ
うに符号付き演算である乗算処理がなされ、二つの中間
結果XU*YL_sumと、XU*YL_cryとが生
成される。生成された中間結果XU*YL_sumとX
U*YL_cryとは、それぞれ信号S763aとS7
63bとしてシフタ711a、および711bに出力さ
れる。
【0085】一方、乗算器710には、被乗数Xの下位
XLを含むデータS758と、乗数Yの上位YUを含む
データS759とが入力され、一方が符号拡張されたデ
ータであることから、図9に示すように符号付き演算で
ある乗算処理がなされ、中間結果XL*YU_sum
と、XL*YU_cryとが生成される。生成された中
間結果XL*YU_sumとXL*YU_cryとは、
それぞれ信号S764aとS764bとしてシフタ71
2a、および712bに出力される。
【0086】シフタ711a、および711bは、入力
された乗算結果S763a、およびS763bに対し
て、16ビット左シフトを行い、生成したシフト結果S
765a((XU*YL_sum)<<16)と、S7
65b((XU*YL_cry)<<16)とを全加算
器714に出力する。シフタ712a、および712b
は、入力された乗算結果S764a、およびS764b
に対して、16ビット左シフトを行い、生成したシフト
結果S765a((XL*YU_sum)<<16)
と、S765b((XL*YU_cry)<<16)と
を全加算器714に出力する。
【0087】また、全加算選択器713は倍精度積和演
算の際には、出力レジスタ716、717の保持するデ
ータS773(累積データZ)を選択するので、全加算
選択器713からは、出力レジスタ716、および71
7に保持された、(XU*YU)<<32+XL*YL
+ZであるS767が全加算器114に入力されること
となる。
【0088】全加算器714は、入力された信号に対し
て全加算処理を行い、得られた二つの中間結果をS76
8とS769として桁上げ伝搬加算器715に出力し、
桁上げ伝搬加算器715はこれらを桁上げ伝搬加算処理
することにより、加算結果S770を生成してこれを出
力レジスタ716、および717に出力する。出力レジ
スタ716、および717において保持される2サイク
ル目の演算結果は、(XU*YU)<<32+XL*Y
L+Z+(XU*YL)<<16+(XL*YU)<<
16=X*Y+Zとなる。このようにして、図9に示す
倍精度積和演算処理が実行される。
【0089】B.単精度(16ビット)デュアル乗算 本実施の形態2においても、単精度デュアル乗算処理は
実施の形態1(図6)と同様に1サイクルで行われるも
のとなる。被乗数Xと乗数Yとは、入力データS75
1、およびS752として入力される。入力レジスタ7
01、および702における保持と、拡張器703〜7
06による1ビット拡張、そして拡張結果の乗算器への
入力までは実施の形態1と同様に行われる。
【0090】加えて、本実施の形態2では、拡張器70
4が出力する拡張結果S758の最上位ビットを示す信
号S758a(Xs)と、乗算選択器708が出力する
選択結果S758の最上位ビットを示す信号S758a
(Ys)とが補正信号発生器718に入力される。ま
た、単精度デュアル乗算モードであるので、制御信号S
774(DMUL)は値「1」として補正信号発生器7
18に入力される。補正信号発生器718は、これらの
信号に基づいて、値HPを有する補正信号S775を発
生し、これを乗算器710に出力する。補正信号S77
5の値HPが乗算結果の符号を示すものであることは前
述の通りである。
【0091】乗算選択器707は拡張器705の出力S
759を、乗算選択器708は拡張器706の出力S7
60を選択する。従って、乗算器709には、被乗数X
の上位XUを含むデータS757と、乗数Yの上位YU
を含むデータS759とが入力され、これらはともに符
号拡張されたデータであることから、図10に示すよう
に符号付き演算である乗算処理がなされ、中間結果XU
*YU_sumとXU*YU_cryとが生成される。
生成された中間結果XU*YU_sumとXU*YU_
cryとは、それぞれ信号S763aとS763bとし
てシフタ711a、および711bに出力される。
【0092】一方、乗算器710には、被乗数Xの下位
XLを含むデータS758と、乗数Yの下位YLを含む
データS760とが入力され、これらはともに符号拡張
されたデータであることから、図10に示すように符号
なし演算である乗算処理がなされ、中間結果XL*YL
_sumとXL*YL_cryとが生成される。生成さ
れた中間結果XL*YL_sumとXL*YL_cry
とは、それぞれ信号S764aとS764bとしてシフ
タ712a、および712bに出力される。そして、本
実施の形態2のデュアル乗算処理においては、乗算器7
10に対して補正信号S775が入力されるものであ
り、乗算器710は補正信号対応乗算処理を行う。従っ
て、前述の通り、乗算結果の上位2ビットは常の「0
0」となって出力されることとなる。
【0093】シフタ711a、および711bは、入力
された乗算結果S763a、およびS763bに対し
て、32ビット左シフトを行い、生成したシフト結果S
765a((XU*YU_sum)<<32)と、S7
65b((XU*YU_cry)<<32)とを全加算
器714に出力する。シフタ712a、および712b
は、入力された乗算結果S764a、およびS764b
に対して、0ビット左シフトを行い(すなわち、シフト
を行わない)、生成したシフト結果S766a(XL*
YL_sum)と、S766b(XL*YL_cry)
とを全加算器714に出力する。
【0094】全加算器714は、入力された信号に対し
て全加算処理を行い、得られた二つの中間結果をS76
8とS769として桁上げ伝搬加算器715に出力し、
桁上げ伝搬加算器715はこれらを桁上げ伝搬加算処理
することにより、加算結果S770を生成してこれを出
力レジスタ716、および717に出力する。出力レジ
スタ716、および717において保持される演算結果
は、実施の形態1の場合と同様に(XU*YU)<<3
2+XL*YLとなる。従って、演算結果の上位32ビ
ットを保持するレジスタ716には、第1の乗算結果で
あるXU*YUが、下位32ビットを保持するレジスタ
717には、第2の乗算結果であるXL*YLが保持さ
れるものとなる。
【0095】以上のように、本実施の形態2の演算装置
においては、図10に示す演算処理に従って単精度デュ
アル乗算処理を実行する。図示するように、32ビット
シフトされた上位中間結果同士(XU*YU_sum)
<<32と(XU*YU_cry)<<32)の加算処
理に対して、下位中間結果の符号部分がオーバーラップ
するものとなる。桁上げ伝搬処理をともなわない加算処
理によれば、オーバーラップ部分が上位中間結果の加算
に影響を与えてしまうが、本実施の形態2では下位中間
結果は前述の補正信号対応乗算処理によって生成される
ものであるから、その上位2ビット、すなわち図示する
符号部分は常に「00」となるものであって、上位中間
結果同士の加算処理の結果には影響を与えないものとな
る。
【0096】このように、本実施の形態2の演算装置に
よれば、入力レジスタ201、および202と、拡張器
703〜706と、乗算選択器707、および708
と、単精度乗算器709、および710と、シフタ71
1a、711b、712aおよび712bと、全加算選
択器713と、全加算器714と、桁上げ伝搬加算器7
15と、出力レジスタ716、および717と、補正信
号発生器718とを備え、二つの乗算器は内部に桁上げ
伝搬加算器を備えず、二つの中間結果を出力するものと
し、また、乗算器710は補正信号対応乗算処理を行う
ものとしたことで、実施の形態1と同様に単精度乗算器
709、および710を活用して倍精度積和演算処理
と、単精度デュアル乗算処理とを実行でき、倍精度乗算
器を用いる従来の技術と比較して、乗算処理の段数を削
減して迅速な処理を行うことが可能となり、単精度デュ
アル演算処理を実行する場合にも、乗算器内部に冗長な
部分を生じることなく、装置資源の活用を図ることが可
能となる。さらに、実施の形態1と比較して、乗算器7
09、および710が桁上げ伝搬加算器を有さず、補正
信号対応乗算処理を行うことで、比較的処理時間を要す
る桁上げ伝搬処理を省略するので、より迅速な乗算処理
を行うことが可能となる。
【0097】実施の形態3.本発明の実施の形態3によ
る演算装置は、単精度(8ビット)のデュアル演算処理
と、倍精度(16ビット)演算処理に加えて、単精度差
分絶対値累積演算処理を行うものである。図12は、本
実施の形態3による、倍精度演算処理、単精度デュアル
演算処理、および差分絶対値累積演算処理とを実行し得
る演算装置の構成を示すブロック図である。図示するよ
うに、本実施の形態3の演算装置は、入力選択器120
1、1202、1203、および1204と、入力レジ
スタ1205、1206、1207、および1208
と、出力レジスタ1209と、加算器(単精度)121
0、および1211と、加算選択器1212と、加算入
力EXORゲート1213、および1214と、加算出
力ANDゲート1215、および1216と、加算出力
EXORゲート1217、および1218と、加算結果
保持レジスタ1219、および1220と、乗算入力選
択器1221、および1222と、乗算器(単精度)1
223、および1224と、シフタ1225、および1
226と、加算器1227と、加算結果ANDゲート1
228、および1229とを備えている。
【0098】本実施の形態3の演算装置に対しては、当
該演算装置による演算結果を使用する計算機システム等
の全体を制御する中央処理制御装置等から、演算処理を
制御するための制御信号S1245とS1246とが入
力される。図13(a) は、本実施の形態3の演算装置に
対して入力される制御信号の状態を示す図である。図示
するように、本実施の形態3の演算装置が実行する演算
処理に応じて制御信号の状態は異なるものとなってい
る。
【0099】また、図13(b) および(c) は、EXOR
ゲート(1213、1214、1217、および121
8)が行う排他論理和演算と、ANDゲート(121
5、1216、1228、および1229)が行う論理
積演算とを説明するための図である。各ゲートは2入力
(AとB)の値に従って、同図(b) または(c) に示す
「OUT」欄の値を出力する。
【0100】加算器1210、および1211と、加算
選択器1212と、加算入力EXORゲート1213、
および1214と、加算出力ANDゲート1215、お
よび1216と、加算出力EXORゲート1217、お
よび1218と、加算結果保持レジスタ1219、およ
び1220とは加減算器1240を構成する。乗算入力
選択器1221、および1222と、乗算器1223、
および1224と、シフタ1225、および1226
と、加算器1227と、加算結果ANDゲート122
8、および1229とは積和演算器1241を構成す
る。本実施の形態1では、加減算器1240は16ビッ
ト加減算器であり、積和演算器1241は16ビット積
和演算器である。また、加算出力ANDゲート121
5、および1216と、加算出力EXORゲート121
7、および1218とは、16ビット加減算器1240
に内包される加算結果処理器1242を構成している。
【0101】本実施の形態3の演算装置は、それぞれが
16ビットの入力S1251、S1252、S125
3、S1254を入力する。入力S1251〜S125
4は入力選択器1201〜1204にそれぞれ入力され
る。入力選択器1201〜1204には、加減算器12
40の出力S1275と、積和演算器1241の出力S
1282もそれぞれ入力される。そして、入力選択器1
201〜1204は、それぞれに入力される3つの信号
のうち一つを選択し、該選択した入力選択信号S125
5〜S1258を入力レジスタ1205〜1208に出
力し、入力レジスタ1205〜1208はこれを保持す
る。
【0102】入力レジスタ1205から出力される入力
レジスタ保持信号S1259は、加算器1210と、加
算器1211とに出力される。入力レジスタ1206か
ら出力される入力レジスタ保持信号S1260は、加算
入力EXORゲート1213と、加算入力EXORゲー
ト1214とに出力される。加算入力EXORゲート1
213と、加算入力EXORゲート1214とには、制
御信号S1245も入力され、それぞれの加算入力EX
ORゲートは、入力レジスタ保持信号と制御信号との排
他論理和演算を行い、排他論理和結果S1263とS1
264とを取得する。排他論理和結果S1263は加算
器1210に、排他論理和結果S1264は加算器12
11に入力される。加算選択器1212は、制御信号S
1245と、後述する加算器1211が出力する桁溢れ
を示す信号とのいずれかを選択し、該選択した信号を加
算器1210に出力する。
【0103】加算器1211には制御信号S1245が
入力され、加算器1211は、入力された入力レジスタ
保持信号S1259(下位8ビット分)と、排他論理和
結果S1264と、制御信号S1245とを加算処理
し、加算結果S1268を生成する。又、加算器121
1は、加算処理において桁溢れが生じた場合には、その
旨を示す信号を加算選択器1212に出力する。加算器
1210には、入力レジスタ保持信号S1259(上位
8ビット分)と、排他論理和結果S1263と、加算選
択器1212が選択した信号とが入力され、加算器12
10はこれらを加算処理し、加算結果S1267を生成
する。
【0104】加算器1210において生成された加算結
果S1267は加算出力EXORゲート1217に出力
され、また、当該加算結果S1267の最上位ビット
(符号ビット)は加算出力ANDゲート1215にも出
力される。加算器1211において生成された加算結果
S1268は加算出力EXORゲート1218に出力さ
れ、また、当該加算結果S1268の最上位ビット(符
号ビット)は加算出力ANDゲート1216にも出力さ
れる。
【0105】加算出力ANDゲート1215には、制御
信号S1246も入力され、加算出力ANDゲート12
15は、入力された加算結果S1267の最上位ビット
と制御信号S1246との論理積演算を行い、論理積結
果S1271を取得してこれを加算出力EXORゲート
1217に出力する。加算出力EXORゲート1217
は、入力された加算結果S1267と論理積結果S12
71との排他論理和演算を行い、排他論理和果S127
3を生成する。
【0106】同様に、加算出力ANDゲート1216に
は、制御信号S1246も入力され、加算出力ANDゲ
ート1216は、入力された加算結果S1268の最上
位ビットと制御信号S1246との論理積演算を行い、
論理積結果S1272を取得してこれを加算出力EXO
Rゲート1218に出力する。加算出力EXORゲート
1218は、入力された加算結果S1268と論理積結
果S1272との排他論理和演算を行い、排他論理和果
S1274を生成する。
【0107】以上の処理により、本実施の形態3の演算
装置が備える加減算器1240の出力S1275が生成
される。出力S1275は、前述のように入力選択器1
201〜1204に入力される。また、加算器121
0、および1211の生成する加算結果S1267、お
よびS1268の最上位ビット(符号ビット)は、加算
結果保持レジスタ1219、および1220にそれぞれ
入力されて保持され、積和演算器1241において用い
られることとなる。
【0108】積和演算器1241においては、入力レジ
スタ1207から出力される入力レジスタ保持信号S1
261は、乗算器1223と、乗算器1224とに出力
される。入力レジスタ1208から出力される入力レジ
スタ保持信号S1262は、乗算入力選択器1221
と、同1222とに出力される。乗算入力選択器122
1、および同1222は、入力レジスタ保持信号S12
62(16ビット)を構成する上位ビット(8ビット)
からなる信号と、下位ビット(8ビット)からなる信号
とのいずれかを選択し、該選択した信号(8ビット)を
出力する。乗算入力選択器1221の出力結果は乗算器
1223に、又乗算入力選択器1222の出力結果は乗
算器1224に出力される。
【0109】一方、加算結果ANDゲート1228、お
よび1229には、制御信号S1246が入力される。
また、加算結果ANDゲート1228には、加算結果保
持レジスタ1219が保持するレジスタ保持信号S12
76が、加算結果ANDゲート1229には、加算結果
保持レジスタ1220が保持するレジスタ保持信号S1
277がそれぞれ入力される。それぞれの加算結果AN
Dゲートは、入力したレジスタ保持信号と制御信号との
論理積演算を行い、論理積結果を生成する。論理積結果
S1278は乗算器1223に、論理積結果S1279
は乗算器1224に入力される。
【0110】乗算器1223は、入力レジスタ保持信号
S1261と、乗算入力選択器1221の選択結果と、
論理積結果S1278とを入力してキャリー入力付き乗
算処理を行い、乗算結果S1269を出力する。また、
乗算器1224は、入力レジスタ保持信号S1261
と、乗算入力選択器1222の選択結果と、論理積結果
S1279とを入力してキャリー入力付き乗算処理を行
い、乗算結果S1270を出力する。これらの乗算器が
行うキャリー入力付き乗算処理については、図14を用
いて後述する。
【0111】乗算器1223、および1224が出力す
る乗算結果S1269、およびS1270はシフタ12
25、および1226にそれぞれ入力される。シフタ1
225、および1226は、入力された乗算結果S12
69、およびS1270に対してデータシフトを実行
し、それぞれ生成したシフト結果S1280、およびS
1281を加算器1227に出力する。
【0112】加算器1227は、シフト結果S128
0、およびS1281に加え、出力レジスタ1209の
保持するレジスタ保持積和演算結果S1283をも入力
とする3入力加算器であり、これらの入力を加算して、
積和演算結果S1282を生成する。積和演算結果S1
282は、当該演算器の出力となるとともに、出力レジ
スタ1209にも入力されて保持され、後段の演算処理
に用いられる。
【0113】図14は、キャリー入力付き乗算を行う乗
算器1223、および1224の内部構成とその動作と
を説明するための図である。図示するように、乗算器1
223は、部分積生成器1401と、全加算器1402
とを備えている。なお、ここでは乗算器1223につい
て示しているが、乗算器1224についても同様であ
る。図示するように、乗算器1223は、それぞれが8
ビットの被乗数Xと乗数Y、そして1ビットのキャリー
入力を入力し演算処理を行う。
【0114】それぞれが8ビットの被乗数Xと乗数Yと
は、乗算器1223内部において部分積生成器1401
に入力され、部分積PP0〜PP7が生成される。生成
された部分積PP0〜PP7は加算器1402に出力さ
れる。一方当該乗算器1223に入力された1ビットの
キャリー入力は、図示するように部分積の最下位ビット
に入力され、部分積とともに加算器1402に出力され
る。加算器1402はキャリー入力をともなった部分積
を加算処理し、16ビットの乗算結果(X*Y+C)を
生成し、この乗算結果が当該乗算器1223の出力とな
る。
【0115】このように構成された本実施の形態3の演
算装置は、前述のように、単精度のデュアル演算処理
と、倍精度演算処理と、差分絶対値累積演算処理とを行
うものである。以下に、本実施の形態3の演算装置の動
作を、「A.単精度デュアル積和演算」、「B.倍精度
積和演算」、「C.単精度デュアル加算」、「D.倍精
度加算」、「E.減算処理」、および「F.差分絶対値
累積演算(単精度)」について説明する。
【0116】A.単精度(8ビット)デュアル積和演算 まず、図15を用いて、本実施の形態3の演算装置が行
う単精度デュアル積和演算処理を説明する。本実施の形
態3の演算装置は、実施の形態1の演算装置と同様にレ
ジスタ分割演算機能を有するものであってデュアル演算
処理が可能なものであり、ここでは、積和演算器124
1を用いて単精度デュアル積和演算処理を行う。図示す
るように、単精度デュアル積和演算処理は、それぞれ8
ビットの被乗数XUと乗数YUとの乗算処理と、やはり
それぞれ8ビットの被乗数XLと乗数YLとの乗算処理
とが、すなわち、8ビット×8ビットの乗算処理二つが
同時並行的に実行され、さらに前段までの処理において
生成され、保持された加算結果である累積データZとの
加算処理が実行されるものである。
【0117】本実施の形態3の演算装置による単精度デ
ュアル積和演算処理は、図16に示すように1サイクル
処理として実行される。1サイクル目において、部分積
「XU*YU」と、「XL*YL」とが求められ、累積
データZも含めて加算処理が実行され、1サイクル目の
演算結果S1282は「XU*YU+XL*YL+Z」
となる。
【0118】デュアル乗算が行われる場合、処理対象と
なるデータは、被乗数同士、および乗数同士を組として
演算装置に入力される。従って、16ビットの被乗数組
Xは図12の入力信号S1253として、16ビットの
乗数組Yは同図の入力信号S1254として、本実施の
形態3の演算装置に入力される。積和演算器1241に
対する入力を選択する入力選択器1203、および12
04は、それぞれ入力信号であるS1253、およびS
1254を選択して、入力レジスタ1207、および1
208に出力する。これにより、第1の被乗数XUは被
乗数組X(16ビット)の上位8ビットとして、第2の
被乗数XLは被乗数組Xの下位8ビットとして入力レジ
スタ1207に保持される。乗数についても同様であ
り、個々の乗算処理に用いられる乗数は、16ビットの
乗数組Yの上位8ビットYUと下位8ビットYLとして
レジスタ1208に保持される。一方、累積データZ
は、前段までの処理で得られたものであり、出力レジス
タ1209に保持された16ビットのデータである。
【0119】図12において、入力レジスタ1207に
保持された16ビットの被乗数組Xのうち、上位8ビッ
トである被乗数XUは乗算器1223に、下位8ビット
である被乗数XLは乗算器1224に、それぞれ入力レ
ジスタ保持信号S1261として入力される。又、入力
レジスタ1208に保持された16ビットの乗数組Yの
うち、上位8ビットである乗数YU、および下位8ビッ
トである乗数YLがそれぞれ入力レジスタ保持信号S1
262として、乗算入力選択器1221と、同1222
とに出力される。
【0120】ここで乗算入力選択器1221は、入力さ
れた信号のうち、入力レジスタ保持信号S1262を構
成する16ビットのうち上位8ビットであるYUを選択
し、該選択した8ビット信号(YU)を乗算器1223
に出力する。また、乗算入力選択器1222は、入力さ
れた信号のうち、入力レジスタ保持信号S1262を構
成する16ビットのうち下位8ビットであるYLを選択
し、該選択した8ビット信号(YL)を乗算器1224
に出力する。
【0121】一方、本実施の形態3の演算装置が備える
加算結果ANDゲート1228、および1229に入力
される制御信号S1246は、図13(a) に示すよう
に、デュアル積和演算の場合においては値0をとるもの
となる。従って、ANDゲート1228、および122
9の双方において、生成する演算結果は値0となるの
で、乗算器1223、および1224に入力される論理
積結果S1278、およびS1279はいずれも値0と
なる。
【0122】従って、乗算器1223には、それぞれが
8ビットである被乗数および乗数としてXUとYUとが
入力され、また1ビットの値0である論理積結果S12
78が入力される。これにより乗算器1223からは、
乗算結果S1269として「XU*YU」が出力され
る。図14においてキャリー入力となる論理積結果S1
278は値が0であるので、実質的に影響を与えない。
また、同様にして乗算器1224からは乗算結果S12
70として「XL*YL」が出力される。
【0123】乗算結果S1269、およびS1270
は、シフタ1225、および1226にそれぞれ入力さ
れる。ここではシフタはいずれもデータシフトを行わな
い(0ビットシフトする)ので、シフタ1225、およ
び1226から加算器1227に出力されるシフト結果
S1280、およびS1281は、乗算結果S126
9、およびS1270と同じ「XU*YU」、および
「XL*YL」である。
【0124】加算器1227は、入力された「XU*Y
U」、および「XL*YL」と、累積データZとを加算
処理し、積和演算結果S1282として、「XU*YU
+XL*YL+Z」を出力する。積和演算が終了する場
合には、この積和演算結果S1282が当該演算装置の
装置出力となる。一方、この積和演算結果S1282を
用いて積和演算の繰り返しが行われる場合には、出力レ
ジスタ1209に保持された積和演算結果を累積データ
として用いて、後段の積和演算処理が同様に実行される
ものとなる。
【0125】B.倍精度(16ビット)積和演算 次に、図17を用いて、本実施の形態3の演算装置が行
う倍精度積和演算処理を説明する。ここでは16ビット
の被乗数Xと、16ビットの乗数Yとの乗算処理を含む
積和演算が、積和演算器1241を用いて行われるもの
であり、被乗数Xの上位8ビットをXU、下位8ビット
をXL、乗数Yの上位8ビットをYU、下位8ビットを
YLとする。図示するように、最終結果「X*Y+Z」
は、部分積「XL*YL」と、部分積「XL*YU」を
左に8ビットシフトさせて得られる「(XL*YU)<
<8」と、部分積「XU*YL」を左に8ビットシフト
させて得られる「(XU*YL)<<8」と、部分積
「XU*YU」を左に16ビットシフトさせて得られる
「(XU*YU)<<16」と、累積データ(前段まで
の演算処理結果)Zとを加算して得られるものとなる。
【0126】本実施の形態3の演算装置による倍精度積
和演算処理は、図18に示すように2サイクル処理とし
て実行される。まず、1サイクル目においては、部分積
「XU*YL」と、「XL*YL」とが求められ、「X
U*YL」が8ビット左シフトされた上で、累積データ
Zも含めて加算処理が実行され、1サイクル目の演算結
果S1282(1)は「(XU*YL)<<8+XL*
YL+Z」となる。1サイクル目の演算結果が保持され
て2サイクル目において用いられることとなる。2サイ
クル目においては、部分積「XU*YU」と、「XL*
YU」とが求められ、「XU*YU」が16ビット、
「XL*YU」が8ビット左シフトされた上で、1サイ
クル目の演算結果S1282(1)が保持されたもので
あるS1283も含めて加算処理が実行され、2サイク
ル目の演算結果S1282(2)は「(XU*YU)<
<16+(XU*YL)<<8+(XL*YU)<<8
+XL*YL+Z」となりこれは「X*Y+Z」であ
る。
【0127】このように、実行される本実施の形態3の
演算装置による倍精度積和演算の動作は以下のようなも
のとなる。本実施の形態3の演算装置に、16ビットの
被乗数Xは図12の入力信号S1253として、16ビ
ットの乗数組Yは同図の入力信号S1254として入力
され、積和演算器1241に対する入力を選択する入力
選択器1203、および1204は入力信号S125
3、およびS1254を選択して出力し、入力信号S1
253、およびS1254は、それぞれ入力レジスタ1
207、および1208で保持される。制御信号S12
46は図13に示すように値0となる。また、出力レジ
スタ1209には、前段までの処理結果である累積デー
タZが保持されている。
【0128】まず、1サイクル目の処理が行われる。入
力レジスタ1207からは、被乗数Xの上位8ビットX
Uが乗算器1223に、下位8ビットXLが乗算器12
24に、それぞれ入力レジスタ保持信号S1261とし
て入力される。一方、入力レジスタ1208から乗数Y
の上位YU、および下位YLをそれぞれ出力される乗算
入力選択器1221、および1222は、ここではいず
れも下位8ビットのYLを選択し、これを信号S126
5、およびS1266として乗算器1223、および1
224にそれぞれ出力する。
【0129】一方、本実施の形態3の演算装置が備える
加算結果ANDゲート1228、および1229に入力
される制御信号S1246は、図13(a) に示すよう
に、倍精度積和演算の場合においては値0をとるものと
なる。従って、ANDゲート1228、および1229
の双方において、生成する演算結果は値0となるので、
乗算器1223、および1224に入力される論理積結
果S1278、およびS1279はいずれも値0とな
る。
【0130】従って、乗算器1223には、それぞれが
8ビットである被乗数および乗数としてXUとYLとが
入力され、また1ビットの値0である論理積結果S12
78が入力される。これにより乗算器1223からは、
乗算結果S1269として「XU*YL」が出力され
る。図14においてキャリー入力となる論理積結果S1
278は値が0であるので、実質的に影響を与えない。
また、同様にして乗算器1224からは乗算結果S12
70として「XL*YL」が出力される。
【0131】乗算結果S1269、およびS1270
は、シフタ1225、および1226にそれぞれ入力さ
れる。ここではシフタ1225は、乗算結果を8ビット
左シフトさせ、シフタ1226はデータシフトを行わな
い(0ビットシフトさせる)ので、シフタ1225、お
よび1226から出力されるシフト結果は、「(XU*
YL)<<8」と「XL*YL」となる。
【0132】加算器1227は、シフタ1225、およ
び1226から「(XU*YL)<<8」と「XL*Y
L」であるシフト結果S1280とS1281とを入力
し、また出力レジスタより累積データZを入力し、これ
らを加算処理する。この結果得られた1サイクル目の演
算結果S1282(1)は、出力レジスタ1209に出
力されて保持される。
【0133】2サイクル目の処理が行われる。入力レジ
スタ1207からは、被乗数Xの上位8ビットXUが乗
算器1223に、下位8ビットXLが乗算器1224
に、それぞれ入力レジスタ保持信号S1261として入
力される。一方、入力レジスタ1208から乗数Yの上
位YU、および下位YLをそれぞれ出力される乗算入力
選択器1221、および1222は、ここではいずれも
上位8ビットのYUを選択し、これを信号S1265、
およびS1266として乗算器1223、および122
4にそれぞれ出力する。制御信号S1246と、論理積
結果S1278、およびS1279とは依然として値0
のままである。従って、乗算器1223からは乗算結果
S1269として「XU*YU」が、乗算器1224か
らは乗算結果S1270として「XL*YU」が出力さ
れる。
【0134】乗算結果S1269、およびS1270
は、シフタ1225、および1226にそれぞれ入力さ
れる。ここではシフタ1225および1226は、乗算
結果を16ビット、および8ビット左シフトさせるの
で、シフタ1225、および1226から出力されるシ
フト結果は、「(XU*YU)<<16」と「XL*Y
U<<8」となる。
【0135】加算器1227は、シフタ1225、およ
び1226から「(XU*YU)<<16」と「XL*
YU<<8」であるシフト結果S1280とS1281
とを入力する。また、出力レジスタより入力するS12
83は、1サイクル目の演算結果S1282(1)であ
る。加算器1227はこれらを加算処理する。この結果
得られた2サイクル目の演算結果S1282(2)は、
図18に示すように積和演算結果「X*Y+Z」とな
る。
【0136】C.単精度(8ビット)デュアル加算 本実施の形態3の演算装置は、前述のようにデュアル演
算処理が可能であり、ここでは、加減算器1240を用
いて行う単精度デュアル加算処理の際の動作を説明す
る。単精度デュアル加算処理は、それぞれ8ビットの第
1の処理対象AUと第2の処理対象BUとの加算処理
と、やはりそれぞれ8ビットの第3の処理対象ALと第
4の処理対象BLとの加算処理とが、すなわち、8ビッ
ト×8ビットの加算処理二つが同時並行的に実行される
ものである。
【0137】デュアル加算が行われる場合、処理対象と
なるデータは、第1の処理対象(AU)と第3の処理対
象(AL)との組(A)、および第2の処理対象(B
U)と第4の処理対象(BL)との組(B)として演算
装置に入力される。従って、16ビットの処理対象の組
A(上位8ビットはAU、下位8ビットはAL)は図1
2の入力信号S1251として、16ビットの処理対象
の組B(上位8ビットはBU、下位8ビットはBL)は
同図の入力信号S1252として、本実施の形態3の演
算装置に入力される。
【0138】そして、加算選択器1205、および12
06は、それぞれ入力信号S1251、およびS125
2を選択するので、処理対象の組A、およびBは、入力
バッファ1205、および1206に出力され、入力バ
ッファ1205は、上位8ビットはAU、下位8ビット
はALの16ビットを、入力バッファ1206は、上位
8ビットはBU、下位8ビットはBLの16ビットを保
持することとなる。また、本実施の形態3の演算装置に
おいて、デュアル加算処理が行われる際の制御信号S1
245、およびS1246は、図13(a) に示すように
値0をとるものとなる。
【0139】入力バッファ1205からは、その保持す
る上位8ビット(AU)が加算器1210に、下位8ビ
ット(AL)が加算器1211に出力される。また、入
力バッファ1206からは、その保持する上位8ビット
(BU)が加算入力EXORゲート1213に、下位8
ビット(BL)が加算入力EXORゲート1214に出
力される。加算入力EXORゲート1213、および1
214には制御信号S1245も入力され、それぞれの
ゲートは入力された信号に対して排他論理和処理を行
い、生成した排他論理和結果S1263とS1264と
を、加算器1210、および1211に出力する。制御
信号S1245は値が0であるので、加算入力EXOR
ゲート1213、および1214からはそれぞれBU、
BLである排他論理和結果S1263、およびS126
4が出力される。
【0140】従って、加算器1210には、AUである
信号S1259とBUである信号S1263とが入力さ
れる。加算器1210には加算選択器1212からの信
号も入力されるが、加算選択器1212は単精度演算時
には制御信号S1245を選択して乗算器1210に入
力するものであり、ここでは制御信号S1245が値0
であることから、この信号は加算器1210における処
理に対して実質的に影響を与えないものとなる。この結
果、加算器1210では、AUである信号S1259と
BUである信号S1263とが加算処理され、該処理の
結果として得られた「AU+BU」である加算結果S1
267は、加算出力EXORゲート1217に出力さ
れ、また、当該加算結果S1267の最上位ビットは加
算出力ANDゲート1215にも出力される。
【0141】同様に、ALである信号S1259とBL
である信号S1264と、値0である制御信号S124
5(実質的に処理に影響を与えない)とが入力される加
算器1211では、ALである信号S1259とBLで
ある信号S1264とが加算処理され、該処理の結果と
して得られた「AL+BL」である加算結果S1268
は、加算出力EXORゲート1218に出力され、当該
加算結果S1268の最上位ビットは加算出力ANDゲ
ート1216にも出力される。
【0142】加算出力ANDゲート1215、および1
216には値0である制御信号S1246も入力され
る。従って、それぞれのゲートにおいて生成される論理
積結果は、加算結果の最上位ビットの値にかかわらず、
いずれも値0のものとなる。加算出力ANDゲート12
15、および1216からは、値0の論理積結果S12
71、およびS1272が加算出力EXORゲート12
17、および1218に出力される。
【0143】従って、加算出力EXORゲート1217
では、「AU+BU」である加算結果S1267と、値
0である論理積結果S1271とが入力されるので、排
他論理和演算の結果は「AU+BU」となる。加算出力
EXORゲート1217は、「AU+BU」である排他
論理和結果S1273を出力する。同様に加算出力EX
ORゲート1218は「AL+BL」である排他論理和
結果S1274を出力する。このように、加減算器12
40が備える加算結果処理器1242は、デュアル加算
処理の際には、実質的に加算器1210、および121
1が出力する加算結果を通過させるものとなり、加減算
器1240の出力S1275は、上位8ビットが第1の
加算処理の結果「AU+BU」であり、下位8ビットが
第2の加算処理の結果「AL+BL」であるものとな
る。
【0144】D.倍精度(16ビット)加算 本実施の形態3の演算装置は、加減算器1240を用い
て、それぞれが16ビットである第1の処理対象Aと、
第2の処理対象Bとの倍精度加算処理を行うものであ
る。第1の処理対象Aの上位8ビットをAU、下位8ビ
ットをALとし、第2の処理対象Aの上位8ビットをB
U、下位8ビットをBLとする。
【0145】16ビットの処理対象Aは図12の入力信
号S1251として、16ビットの処理対象Bは同図の
入力信号S1252として、本実施の形態3の演算装置
に入力され、加算選択器1205、および1206を介
して入力バッファ1205、および1206に出力さ
れ、保持される。また、本実施の形態3の演算装置にお
いて、倍精度加算処理が行われる際の制御信号S124
5、およびS1246は、図13(a) に示すように値0
をとるものとなる。
【0146】この後、加算器1210に、AUである信
号S1259とBUである信号S1263とが入力さ
れ、加算器1211に、ALである信号S1259とB
Lである信号S1264とが入力されるまでの動作は上
記の「C.単精度デュアル加算」の場合と同様に行わ
れ、加算器2107では倍精度(16ビット)加算処理
の上位8ビットの、加算器2108では下位8ビットの
部分加算処理が行われることとなる。
【0147】しかし、倍精度加算処理が行われる場合、
加算選択器1212の動作は、上記の「C.単精度デュ
アル加算」の場合とは異なるものとなる。この場合に加
算選択器1212は、加算器1211から入力される桁
溢れを示す信号を選択し、これを加算器1210に出力
する。従って、上位の部分加算処理を行う加算器121
0では、下位の部分加算処理を行う加算器1211の処
理結果が伝搬されるものとなる。
【0148】この後の動作は上記の「C.単精度デュア
ル加算」の場合と同様に行われ、加減算器1240が備
える加算結果処理器1242は、デュアル加算処理の際
と同様に、実質的に加算器1210、および1211が
出力する加算結果を通過させるものとなり、加減算器1
240の出力S1275は、加算処理の結果「A+B」
を示すものとなる。
【0149】E.減算処理 本実施の形態3の演算装置は、加減算器1240を用い
て、単精度デュアル減算処理と、倍精度減算処理とを行
うものである。減算処理を行う場合には、図13(a) に
示す制御信号S1245が値1のものとなる。従って、
値が1である制御信号S1245が加算入力EXORゲ
ート1213、および1214に入力され、これによ
り、図13(b) に示すように排他論理和演算処理によっ
て反転が行われ、加算器1210、および1211に
は、論理反転された処理対象が入力されるものとなる。
それぞれの加算器は、入力バッファ1205より入力さ
れる処理対象に対して、加算入力EXORゲートより入
力される論理反転された処理対象を加算することにより
減算処理を実行する。この点を除いては、「C.単精度
デュアル加算」、および「D.倍精度加算」と同様の動
作により、減算処理は行われる。
【0150】F.差分絶対値累積演算(単精度) 本実施の形態3の演算装置は、加減算器1240と積和
演算器1241とを用いて、単精度の差分絶対値累積演
算を行うものである。図19は差分絶対値累積演算を説
明するための図である。図示するように、差分絶対値累
積演算は、それぞれ8ビットの処理対象AUとBUとの
減算結果の絶対値(|AU−BU|)と、それぞれ8ビ
ットの処理対象ALとBLとの減算結果の絶対値(|A
L−BL|)とをデュアル演算処理によって求め、これ
らと、前段までの処理結果である累積データZとを加算
処理する演算である。
【0151】本実施の形態3の演算装置による差分絶対
値累積演算処理は、図20に示すように2サイクル処理
として実行される。1サイクル目において、第1の差分
値「AU−BU」と、「AL−BL」とが求められ、排
他論理和演算によって差分絶対値(符号処理付き)が求
められる。2サイクル目においては、1サイクル目で得
られた差分絶対値と累積データZとの加算処理が実行さ
れ、累積演算処理が行われるものとなる。1サイクル目
の処理は加減算器1240を用いて、又2サイクル目の
処理は積和演算器1241を用いて行われるが、図示す
るように、2サイクル目の積和演算器1241での処理
においては、乗算器1223、および1224において
値「1」を乗算するものとし、実質的には乗算処理が行
われないように図るものとなっている。
【0152】「C.単精度デュアル加算」の場合と同様
に、処理対象となるデータは、第1の処理対象(AU)
と第3の処理対象(AL)との組、および第2の処理対
象(BU)と第4の処理対象(BL)との組として演算
装置に入力される。従って、16ビットの処理対象の組
(上位8ビットはAU、下位8ビットはAL)は図12
の入力信号S1251として、16ビットの処理対象の
組(上位8ビットはBU、下位8ビットはBL)は同図
の入力信号S1252として、本実施の形態3の演算装
置に入力される。
【0153】入力選択器1205、および1206は、
いずれの処理対象の組である入力信号S1251、およ
びS1252を選択して出力し、入力バッファ1205
は、上位8ビットはAUであり、下位8ビットはALで
ある16ビットのデータを、入力バッファ1206は、
上位8ビットはBUであり、下位8ビットはBLである
16ビットのデータを保持することとなる。また、本実
施の形態3の演算装置において、差分絶対値累積演算処
理が行われる際の制御信号S1245、およびS124
6は、図13(a) に示すように値1をとるものとなる。
【0154】そして図20に示す、1サイクル目の処理
が行われる。入力バッファ1205からは、その保持す
る上位8ビット(AU)が加算器1210に、下位8ビ
ット(AL)が加算器1211に出力される。また、入
力バッファ1206からは、その保持する上位8ビット
(BU)が加算入力EXORゲート1213に、下位8
ビット(BL)が加算入力EXORゲート1214に出
力される。加算入力EXORゲート1213、および1
214には制御信号S1245も入力され、それぞれの
ゲートは入力された信号に対して排他論理和処理を行
い、生成した排他論理和結果S1263とS1264と
を、加算器1210、および1211に出力する。制御
信号S1245は値が1であるので、図13(b) に示す
ように排他論理演算処理によって反転が行われ、加算入
力EXORゲート1213、および1214からはそれ
ぞれBU、BLが論理反転されたもの(BU' 、および
BL' )である排他論理和結果S1263、およびS1
264が出力される。加算器1210、および1211
には、加算入力EXORゲートより論理反転された処理
対象が入力され、それぞれの加算器は、論理反転された
処理対象を加算することにより、減算処理を実行するこ
ととなる。
【0155】加算選択器1212は、制御信号S124
5を選択して加算器1210に出力する。加算器121
0においては入力バッファ1205からの上位8ビット
(AU)と、加算入力EXORゲート1213からの論
理反転された処理対象8ビット(BU' )と、値が1で
ある制御信号S1245との加算処理が実行され、加算
結果S1267が出力される。加算処理は「AU+B
U' +1」となるので、加算結果S1267は「AU−
BU」となる。
【0156】また、加算器1211においては入力バッ
ファ1205からの下位8ビット(AL)と、加算入力
EXORゲート1213からの論理反転された処理対象
8ビット(BL' )と、値が1である制御信号S124
5との加算処理が実行され、加算結果S1268が出力
される。加算処理は「AL+BL' +1」となるので、
加算結果S1268は「AL−BL」となる。
【0157】加算器1210、および1211で生成さ
れた加算結果は、加算結果処理器1242に入力され
る。「AU−BU」である加算結果S1267は、加算
出力EXORゲート1217に出力され、また、当該加
算結果S1267の最上位ビット(NU)は加算出力A
NDゲート1215にも出力される。「AL−BL」で
ある加算結果S1268は、加算出力EXORゲート1
218に出力され、また、当該加算結果S1268の最
上位ビット(NL)は加算出力ANDゲート1216に
も出力される。最上位ビットNU、およびNLはそれぞ
れの加算結果の符号ビットである。符号ビットは、ま
た、加算結果保持レジスタ1219、および1220に
もそれぞれ入力されて保持され、次サイクルの積和演算
器1241の処理において用いられるものとなる。
【0158】加算出力ANDゲート1215、および1
216には、各符号ビットとともに、値1である制御信
号S1246も入力される。従って、それぞれのゲート
において生成される論理積結果は、NUである論理積結
果S1271、およびNLである論理積結果S1272
となる。符号ビットを示す論理積結果S1271、およ
びS1272は、加算出力EXORゲート1217、お
よび1218にそれぞれ出力される。
【0159】加算出力EXORゲート1217には、
「AU−BU」である加算結果S1267と、当該加算
結果S1267の符号ビット(最上位ビットNU)とが
入力され、排他論理和演算が行われる。この演算では、
図13(a) に示すように、符号ビットNUが値0であれ
ば加算結果S1267は論理反転されず、符号ビットN
Uが値1であれば加算結果S1267が論理反転され、
いずれの場合にも、出力される排他論理和結果S126
7は、|AU−BU|−NUとなる。
【0160】すなわち、NUが値0となるのはAU≧B
Uの場合であり、この場合、論理反転されることなく出
力されるAU−BUが差分絶対値|AU−BU|であ
る。出力される排他論理和結果S1273は、|AU−
BU|−NU=|AU−BU|となる。これに対して、
NUが値1となるのは、AU<BUの場合であり、この
場合、論理反転されて出力される(AU−BU)' =B
U−AU−1が差分絶対値|AU−BU|である。出力
される排他論理和結果S1273は、|AU−BU|−
NU=|AU−BU|−1となる。
【0161】加算出力EXORゲート1218には、
「AL−BL」である加算結果S1268と、当該加算
結果S1268の符号ビット(最上位ビットNL)とが
入力され、上記の加算出力EXORゲート1217と同
様の処理が行われることにより、差分絶対値|AL−B
L|を含む排他論理和結果S1274として|AL−B
L|−NLが得られる。
【0162】1サイクル目における以上の処理によっ
て、図20に示すように、加算出力EXORゲート12
17、および1218からは、|AU−BU|−NUで
ある排他論理和結果S1273、および|AL−BL|
−NLである排他論理和結果S1274が出力されるこ
ととなる。これにより、図12において、加減算器12
40から出力される16ビットの加減算器出力S127
5は、上位8ビットがS1273、下位8ビットがS1
274であるものとなる。加減算器出力S1275は、
入力選択器1207、および同1208に出力される。
入力選択器1207は、別途入力される16ビットのデ
ータである「0x0101」を選択し、これを入力レジ
スタ1207に出力する。一方入力選択器1208は、
16ビットのデータである加減算器出力S1275を選
択し、これを入力レジスタ1208に出力する。入力レ
ジスタ1207、および1208はそれぞれ入力された
データを保持する。
【0163】図20に示す2サイクル目の処理が行われ
る。入力レジスタ1207に保持された16ビットのデ
ータを構成する上位8ビット(0x01)は乗算器12
23に、下位8ビット(0x01)は乗算器1224
に、それぞれ入力レジスタ保持信号S1261として入
力される。又、入力レジスタ1208に保持された16
ビットの加減算器出力のうち、上位8ビットである|A
U−BU|−NU、および下位8ビットである|AL−
BL|−NLがそれぞれ入力レジスタ保持信号S126
2として、乗算入力選択器1221と、同1222とに
出力される。乗算入力選択器1221は、上位8ビット
である|AU−BU|−NUを選択してこれを乗算器1
223に出力する。又、乗算入力選択器1222は、下
位8ビットである|AL−BL|−NLを選択してこれ
を乗算器1224に出力する。
【0164】一方、加算結果ANDゲート1228に
は、加算結果保持レジスタ1219が保持するレジスタ
保持信号S1276が、加算結果ANDゲート1229
には、加算結果保持レジスタ1220が保持するレジス
タ保持信号S1277がそれぞれ入力される。ここで、
レジスタ保持信号S1276、およびS1277は、符
号ビットNU、およびNLである。加算結果ANDゲー
ト1228、および1229には、値1である制御信号
S1246も入力される。加算結果ANDゲート122
8は、レジスタ保持信号S1276(NU)と制御信号
S1246(値1)との論理積演算を行い、NUである
論理積結果S1278を生成し、これを乗算器1223
に出力する。加算結果ANDゲート1229は、レジス
タ保持信号S1277(NL)と制御信号S1246
(値1)との論理積演算を行い、NLである論理積結果
S1279を生成し、これを乗算器1224に出力す
る。
【0165】乗算器1223は、8ビットデータ(0x
01)と、8ビットデータである|AU−BU|−NU
と、1ビットデータであるNUとを入力し、キャリー入
力付き乗算処理(図14参照)を実行する。この結果、
差分絶対値である|AU−BU|が得られ、乗算器12
23はこの乗算結果S1269をシフタ1225に出力
する。同様に、乗算器1224は、8ビットデータ(0
x01)と、8ビットデータである|AL−BL|−N
Lと、1ビットデータであるNLとを入力し、差分絶対
値である|AL−BL|を乗算結果S1270としてシ
フタ1226に出力する。シフタ1225、および12
26は、データシフトを行わない(0ビットシフトさせ
る)で、それぞれ|AU−BU|、および|AL−BL
|であるシフト結果S1280、およびS1281を加
算器1227に出力する。
【0166】加算器1227には、シフト結果S128
0、およびS1281に加えて、累積データZである出
力レジスタ保持結果S1283も入力され、加算器12
27はこれらを加算処理し、得られた結果を積和演算結
果S1282として出力する。累積演算処理が終了する
場合には、積和演算結果S1282が本実施の形態3の
演算装置の装置出力となるが、累積演算処理が続行され
る場合、積和演算結果S1282は出力保持レジスタ1
209に入力され、保持されて、後段の処理において累
積データとして用いられることとなる。
【0167】本実施の形態3の演算装置は、加算器、乗
算器、シフタ、論理演算回路、メモリ等を備える、倍精
度演算処理を行う一般的なマイクロプロセッサに基づい
て、加算結果処理器1242、加算結果ANDゲート1
228、および1229、加算選択器1212を追加す
ることで、加算器、乗算器等の装置資源を活用して、倍
精度演算処理と単精度デュアル演算処理を効率的に実行
し、加えて差分絶対値累積演算処理をも単精度デュアル
処理を伴って実行し得るものである。
【0168】このように、本実施の形態3の演算装置に
よれば、入力選択器1201〜1204、入力レジスタ
1205〜1208、出力レジスタ1209、加算結果
処理機1242を内包する加減算器1240、および積
和演算器1241を備え、入力データを分割して、加算
器や乗算器等の装置資源を活用し、効率的に加減算処理
と積和演算処理とを行うので、一般的なマイクロプロセ
ッサに基づいて若干の拡張を行うことによって、DSP
を追加することなく各種の演算処理を高速に実行するこ
とが可能となる。
【0169】実施の形態4.本発明の実施の形態4によ
る演算装置は、単精度のデュアル加算処理と、倍精度加
算処理と、飽和演算処理を行うものである。図21は、
本実施の形態4の演算装置の構成を示す図である。図示
するように本実施の形態4の演算装置は、入力レジスタ
2101、および2102と、加算器入力選択器210
3、2104、および2109と、加算入力EXORゲ
ート2105、および2106と、加算器2107、お
よび2108と、加算出力選択器2110、および21
11とを備えている。加算器入力選択器2103、21
04、および2109と、加算入力EXORゲート21
05、および2106と、加算器2107、および21
08と、加算出力選択器2110、および2111とは
加減算器2120を構成する。加算出力選択器211
0、および2111は、加減算器2120が内包する加
算結果処理器2130を構成する。本実施の形態4の演
算装置は、それぞれが16ビットの入力S2150、お
よびS2151を入力し、処理対象とする。また、実施
の形態3の演算装置と同様に、中央処理制御装置等から
の制御信号S2180、およびS2181を入力する。
制御信号S2181は、加算結果処理器2130におい
て処理に用いられる制御信号S2182の生成を制御す
る信号である。
【0170】入力レジスタ2101、および2102
は、16ビットのレジスタであり、当該演算装置に入力
される処理対象データS2150、およびS2151を
保持する。加算入力選択器2103、および同2104
は、それぞれ、入力レジスタ2101が出力する入力レ
ジスタ保持信号S2152(16ビット)を構成する上
位ビット(8ビット)からなる信号と、下位ビット(8
ビット)からなる信号とのいずれかを選択し、該選択し
た信号(8ビット)を出力する。加算選択器2103の
出力結果は加算器2107に、又加算選択器2104の
出力結果は加算器2108に出力される。
【0171】加算入力EXORゲート2105には、入
力レジスタ2102が出力する入力レジスタ保持信号S
2153(16ビット)を構成する上位ビット(8ビッ
ト)からなる信号と制御信号S1245とが入力され
る。また、加算入力EXORゲート2106には、入力
レジスタ2102が出力する入力レジスタ保持信号S2
153(16ビット)を構成する下位ビット(8ビッ
ト)からなる信号と制御信号S1245とが入力され
る。加算入力EXORゲート2105と、同2106と
は、入力した信号に対する排他論理和演算処理を行い、
得られた排他論理和結果S2156、およびS2157
を加算器2107、および2108にそれぞれ出力す
る。加算入力選択器2109は、制御信号S1245
と、後述する加算器2108が出力する桁溢れを示す信
号とのいずれかを選択し、該選択した信号を加算器21
07に出力する。
【0172】加算器2108には制御信号S2159が
入力され、加算器2108は、加算入力選択器2103
において選択された信号S2157と、排他論理和結果
S2158と、制御信号S2159とを加算処理し、加
算結果S2161を生成する。又、加算器2108は、
加算処理において桁溢れが生じた場合には、その旨を示
す信号を加算選択器2109に出力する。加算器210
7には、加算入力選択器2104において選択された信
号S2154と、排他論理和結果S2156と、加算選
択器2159が選択した信号とが入力され、加算器21
07はこれらを加算処理し、加算結果S2160を生成
する。加算器2107において生成された加算結果S2
160は加算出力選択器2110に、加算器2108に
おいて生成された加算結果S2161は加算出力選択器
2111に出力される。
【0173】加算出力選択器2110には、この他に入
力レジスタ2101が出力する入力レジスタ保持信号S
2152(16ビット)を構成する上位ビット(8ビッ
ト)からなる信号と、8ビットの固定値0x07、およ
び0xf8とが入力され、加算出力選択器2110は入
力される信号の中からいずれか一つを選択し、該選択し
た信号S2162を出力する。
【0174】又、加算出力選択器2111には、この他
に入力レジスタ2101が出力する入力レジスタ保持信
号S2152(16ビット)を構成する上位ビット(8
ビット)からなる信号と、8ビットの固定値0xff、
および0x00とが入力され、加算出力選択器2111
は入力される信号の中からいずれか一つを選択し、該選
択した信号S2163を出力する。加算出力選択器21
10から出力される信号S2162(8ビット)と、加
算出力選択器2111から出力される信号S2163
(8ビット)とは、当該演算装置の装置出力となる出力
信号S2164(16ビット)を構成するものとなる。
【0175】このように構成された本実施の形態4の演
算装置は、前述のように、単精度(8ビット)のデュア
ル加算処理と、倍精度(16ビット)加算処理と、飽和
演算処理とを行うものである。以下に、本実施の形態3
の演算装置の動作を、「A.単精度デュアル加算」、
「B.倍精度加算」、「C.減算処理」、および「D.
飽和演算」について説明する。
【0176】A.単精度(8ビット)デュアル加算 単精度デュアル加算処理は、それぞれ8ビットの第1の
処理対象AUと第2の処理対象BUとの加算処理と、や
はりそれぞれ8ビットの第3の処理対象ALと第4の処
理対象BLとの加算処理とが、すなわち、8ビット×8
ビットの加算処理二つが同時並行的に実行されるもので
ある。
【0177】デュアル加算が行われる場合、処理対象と
なるデータは、第1の処理対象(AU)と第3の処理対
象(AL)との組(A)、および第2の処理対象(B
U)と第4の処理対象(BL)との組(B)として演算
装置に入力される。従って、16ビットの処理対象の組
A(上位8ビットはAU、下位8ビットはAL)は図2
1の入力信号S2150として、16ビットの処理対象
の組B(上位8ビットはBU、下位8ビットはBL)は
同図の入力信号S2151として、本実施の形態4の演
算装置に入力される。
【0178】そして、処理対象の組A、およびBは、入
力バッファ2101、および2102に入力され、入力
バッファ2101は、上位8ビットはAU、下位8ビッ
トはALの16ビットを、入力バッファ2102は、上
位8ビットはBU、下位8ビットはBLの16ビットを
保持することとなる。また、本実施の形態4の演算装置
において、デュアル加算処理が行われる際の制御信号S
2180、およびS2181は値0をとるものとなる。
【0179】入力バッファ2101から出力される、処
理対象の組を構成する上位8ビット(AU)と、下位8
ビット(AL)とが加算入力選択器2103、および2
104に出力され、それぞれにおいて選択されるものと
なる。加算入力選択器2103は、上位8ビット(A
U)を選択し、これを選択信号S2154として加算器
2107に出力する。一方、加算入力選択器2104
は、下位8ビット(AL)を選択し、これを選択信号S
2157として加算器2108に出力する。
【0180】一方、入力バッファ2102から出力され
る、処理対象の組を構成する上位8ビット(BU)と、
下位8ビット(BL)とが加算入力EXORゲート21
05と、同2106とに出力され、それぞれのEXOR
ゲートは、入力した8ビットのデータと、制御信号S2
180とに対する排他論理和演算処理を行い、得られた
排他論理和結果S2156、およびS2157を加算器
2107、および2108にそれぞれ出力する。前述の
ように制御信号S2180は値が0であるので、加算入
力EXORゲート2105、および2106からはそれ
ぞれBU、BLである排他論理和結果S2156、およ
びS2157が出力される。
【0181】従って、加算器2107には、AUである
信号S2154とBUである信号S2156とが入力さ
れる。加算器2107には加算選択器2109からの信
号も入力されるが、加算選択器2108は単精度演算時
には制御信号S2180を選択して乗算器2107に入
力するものであり、ここでは制御信号S2180が値0
であることから、この信号は加算器2107における処
理に対して実質的に影響を与えないものとなる。この結
果、加算器2107では、AUである信号S2154と
BUである信号S2156とが加算処理され、該処理の
結果として得られた「AU+BU」である加算結果S2
160は、加算出力選択器2110に出力される。
【0182】同様に、ALである信号S2157とBL
である信号S2158と、値0である制御信号S218
0(実質的に処理に影響を与えない)とが入力される加
算器2108では、ALである信号S2157とBLで
ある信号S2158とが加算処理され、該処理の結果と
して得られた「AL+BL」である加算結果S2161
は、加算出力選択器2111に出力される。
【0183】デュアル加算処理を行う場合、加算結果処
理器2130では、値0として入力される制御信号S2
181に対応して、「01」の状態となる制御信号S2
182が生成される。加算出力選択器2110、および
2111には、この制御信号S2181が入力されるこ
とにより、それぞれの加算選択器は、加算器2107、
および2108が出力する加算結果S2160、および
S2161を選択するものとなる。従って、加算出力選
択器2110、および2111は、それぞれ「AU+B
U」である選択結果結果S2162、および「AL+B
L」である選択結果S2163を出力する。
【0184】このように、本実施の形態4の演算装置が
備える加算結果処理器2130は、デュアル加算処理の
際には、実質的に加算器2107、および2108が出
力する加算結果を通過させるものとなり、本実施の形態
4の演算装置の装置出力S2164は、上位8ビットが
第1の加算処理の結果「AU+BU」であり、下位8ビ
ットが第2の加算処理の結果「AL+BL」であるもの
となる。
【0185】B.倍精度(16ビット)加算 本実施の形態4の演算装置は、それぞれが16ビットで
ある第1の処理対象Aと、第2の処理対象Bとの倍精度
加算処理を行うものである。第1の処理対象Aの上位8
ビットをAU、下位8ビットをALとし、第2の処理対
象Aの上位8ビットをBU、下位8ビットをBLとす
る。
【0186】16ビットの処理対象Aは図21の入力信
号S2150として、16ビットの処理対象Bは同図の
入力信号S2151として、本実施の形態4の演算装置
に入力され、入力バッファ2101、および2106に
おいて保持される。また、本実施の形態3の演算装置に
おいて、倍精度加算処理が行われる際の制御信号S21
80、およびS2181は値0をとるものとなる。
【0187】この後、加算入力選択器2103は上位8
ビット(AU)を、加算入力選択器2104は下位8ビ
ット(AL)を選択し、加算入力EXORゲート210
5、および2106からは、排他論理和演算の結果それ
ぞれBU、BLである排他論理和結果S2156、およ
びS2157が出力され、加算器2107に、AUであ
る信号S2154とBUである信号S2156とが入力
され、加算器2108に、ALである信号S2157と
BLである信号S2158とが入力されるまでの動作は
上記の「A.単精度デュアル加算」の場合と同様に行わ
れ、加算器2107では倍精度(16ビット)加算処理
の上位8ビットの、加算器2108では下位8ビットの
部分加算処理が行われることとなる。
【0188】しかし、倍精度加算処理が行われる場合、
加算選択器2109の動作は、上記の「A.単精度デュ
アル加算」の場合とは異なるものとなる。この場合に加
算選択器2109は、加算器2108から入力される桁
溢れを示す信号を選択し、これを加算器2107に出力
する。従って、上位の部分加算処理を行う加算器210
7では、下位の部分加算処理を行う加算器2108の処
理結果が伝搬されるものとなる。
【0189】この後の動作は上記の「A.単精度デュア
ル加算」の場合と同様に行われ、本実施の形態4の演算
装置が備える加算結果処理器2130は、デュアル加算
処理の際と同様に、実質的に加算器2107、および2
108が出力する加算結果を通過させるものとなり、本
実施の形態4の演算装置の出力S2164は、加算処理
の結果「A+B」を示すものとなる。
【0190】C.減算処理 本実施の形態4の演算装置は、単精度デュアル減算処理
と、倍精度減算処理とを行うものである。減算処理を行
う場合には、図21に示す制御信号S2180が値1の
ものとなる。従って、値が1である制御信号S2180
が加算入力EXORゲート2105、および2106に
入力され、これにより排他論理和演算処理によって反転
が行われ、加算器2107、および2108には、論理
反転された処理対象が入力されるものとなる。それぞれ
の加算器は、加算処理(上記のA.及びB.の場合)と
同様に加算入力選択器より入力される処理対象に対し
て、加算入力EXORゲートより入力される論理反転さ
れた処理対象を加算することにより減算処理を実行す
る。この点を除いては、「C.単精度デュアル加算」、
および「D.倍精度加算」と同様の動作により、減算処
理は行われる。
【0191】D.飽和演算 本実施の形態4の演算装置は16ビットのデータ(処理
対象)に対しての飽和演算を行う。図22は飽和演算を
説明するための図である。飽和演算においては、あらか
じめ最大値と最小値とを設定するものであり、入力デー
タの値に基づいて図示する条件に従い、演算結果を生成
するものである。すなわち、入力データ(処理対象)が
最小値以上であり最大値未満である場合には、入力デー
タをそのまま演算結果とするが、入力データが最大値以
上である場合には上記の設定された最大値を演算結果と
し、入力データが最小値に満たない場合には設定された
最小値を演算結果とする。このように、飽和演算の結果
は必ず設定された最小値から最大値までの間の値をとる
ものとなる。
【0192】飽和演算の処理対象は、図21に示す入力
S2150として本実施の形態4の演算装置に入力さ
れ、入力バッファ2101で保持される。ここでこの処
理対象である16ビットのデータをAとし、その上位8
ビットをAU、下位8ビットをALとする。
【0193】本実施の形態4の演算装置においては、飽
和演算における最大値は0x07ffと、最小値は0x
f800と設定されているとする。そして、値0X08
f8を有する信号S2151が入力され、入力バッファ
2102において保持される。また、本実施の形態4の
演算装置に入力される制御信号S2180は、飽和演算
処理の場合には値1をとるものとなる。制御信号S21
81については、後述する。
【0194】入力バッファ2101に保持された処理対
象Aの上位部分データAUは加算結果処理器2130が
内包する加算出力選択器2110に、また、下位部分デ
ータALは加算出力選択器2111に出力される。デー
タAUとALとは、加算入力選択器2103、および2
104にも出力され、ここでは加算入力選択器210
3、おYび2104はいずれもデータAUを選択し、こ
れを信号S2154、およびS2157として、加算器
2107、および2108に出力する。
【0195】一方、入力バッファ2102に保持された
値0X08f8の上位8ビット、および下位8ビット
は、加算入力EXORゲート2105、および2106
に入力される。加算入力EXORゲート2105、およ
び2106には、値1である制御信号S2180も入力
され、それぞれ排他論理和演算が行われる。その結果、
値0X08f8の上位8ビット、および下位8ビットが
論理反転された排他論理和結果S2156、およびS2
157は、値0xf7、および0x07を有するものと
して加算器2107、および2108に入力される。
【0196】加算選択器2109は、飽和演算時には制
御信号S2180を選択し出力するので、加算器210
7には、加算入力選択器2103の出力S2154(上
位8ビットAU)と、加算入力EXORゲート2105
の出力S2156(0xf7)と、制御信号S2180
(値1)とが入力される。加算器2107ではこれらが
加算処理されることにより、加算結果S2160が生成
される。加算結果S2160は、AU+0xf7+1=
AU−0x08となる。加算結果S2160は、制御信
号S2182の値の決定に用いられる。
【0197】また、加算器2108には、加算入力選択
器2104の出力S2157(上位8ビットAU)と、
加算入力EXORゲート2106の出力S2158(0
x07)と、制御信号S2180(値1)とが入力され
これらが加算処理されることにより、加算結果S216
1が生成される。加算結果S2161は、AU+0x0
7+1=AU−0xf8となる。加算結果S2161
は、加算結果S2160とともに、制御信号S2182
の値の決定に用いられる。
【0198】加算結果処理器S2130の加算出力選択
器2110には、処理対象となるデータの上位8ビット
AUと、値0x07、および0xf8とが入力され、加
算出力選択器2111には、処理対象となるデータの下
位8ビットALと、値0xff、および0x00とが入
力される。
【0199】処理を行う場合、加算結果処理器2130
では、値1として入力される制御信号S2181に対応
して、加算結果S2160、およびS2161の値に基
づいて、「00」、「10」、又は「11」のいずれか
の状態となる制御信号S2182が生成される。制御信
号S2182は、加算結果S2160の最上位ビット
(符号ビット)が0、加算結果S2161の最上位ビッ
ト(符号ビット)が0の場合には、状態「00」、加算
結果S2160の最上位ビット(符号ビット)が1、加
算結果S2161の最上位ビット(符号ビット)が0の
場合には、状態「10」、加算結果S2160の最上位
ビット(符号ビット)が1、加算結果S2161の最上
位ビット(符号ビット)が1の場合には、状態「11」
をとるものとなる。
【0200】すなわち、制御信号S2182は、AU−
0x08である加算器2107の加算結果S2160が
正(AU≧0x08)で、AU−0xf8である加算器
2108の加算結果S2161が正(AU≧0xf8)
である場合には「00」、加算器2107の加算結果S
2160が負(AU<0x08)で、AU−0xf8で
ある加算器2108の加算結果S2161が正(AU≧
0xf8)である場合には、「10」、加算器2107
の加算結果S2160が負(AU<0x08)で、AU
−0xf8である加算器2108の加算結果S2161
が負(AU<0xf8)である場合には、「11」とな
るものである。このような制御信号S2182入力に対
して加算出力選択器2110、および2111は、以下
のように選択を行う。
【0201】加算出力選択器2110は制御信号S21
82の状態が「00」ならば0x07を、「10」なら
ばAUを、「11」ならば0xf8を選択する。すなわ
ち、AU≧0x08である場合には、値0x07を0x
f8≦AU<0x08であるならば、処理対象データの
上位8ビットであるAUを、AU<0xf8である場合
には、値0xf8を選択するものである。加算出力選択
器2110は、このように選択した結果を選択結果S2
162として出力する。選択結果S2162は、本実施
の形態4の演算装置による飽和演算結果の上位8ビット
をなすものとなる。
【0202】従って、本実施の形態4の演算装置による
飽和演算結果S2164は以下のようなものとなる。A
U≧0x08である場合、すなわち処理対象Aが最大値
として設定された0x07ffを上回る場合には、上位
8ビットが0x07であり、下位8ビットが0xffで
ある、すなわち0x07ffとなる飽和演算結果S21
64が出力される。
【0203】0xf8≦AU<0x08である場合、す
なわち処理対象Aが最小値として設定された0xf80
0以上であり、最大値として設定された0x07ffを
下回る場合には、上位8ビットがAUであり、下位8ビ
ットがALである処理対象Aが飽和演算結果S2164
として出力される。
【0204】AU<0xf8である場合、すなわち処理
対象Aが最小値として設定された0xf800を下回る
場合には、上位8ビットが0xf8であり、下位8ビッ
トが0x00である、すなわち0xf800となる飽和
演算結果S2164が出力される。以上のような飽和演
算結果S2164が出力されるので、図22に示すよう
な飽和演算処理が行われるものとなる。
【0205】このように、本実施の形態4の演算装置に
よれば、入力レジスタ2101、および2102と、加
算器入力選択器2103、2104、および2109
と、加算入力EXORゲート2105、および2106
と、加算器2107、および2108と、加算出力選択
器2110、および2111とを備え、入力データを分
割して、加算器等の装置資源を活用し、効率的に加減算
処理と飽和演算処理とを行うので、一般的なマイクロプ
ロセッサに基づいて若干の拡張を行うことによって、D
SPを追加することなく各種の演算処理を高速に実行す
ることが可能となる。
【0206】なお、本実施の形態4の演算装置は、加減
算処理と飽和演算処理とを行うものであるが、図12に
示す実施の形態3の演算装置に基づいて、加減算器12
40の代替に本実施の形態4の演算装置が備える加減算
器2120を備える演算装置とすれば、加減算処理と飽
和演算処理とに加え積和演算処理をも行い得るものを得
ることができる。
【0207】
【発明の効果】請求項1の演算装置によれば、Lビット
の第1の処理対象とMビットの第2の処理対象とに対し
て演算処理を行う演算装置において、Nビット(NはL
以下)の第1の部分処理対象と、Sビット(SはM以
下)の第2の部分処理対象とに対して、演算処理を行
い、部分演算結果を生成する部分演算手段と、上記部分
演算結果に対して、所定の変換処理を実行し、変換部分
演算結果を生成する部分演算結果処理手段と、上記変換
部分演算結果を統合し、統合演算結果を生成する演算結
果統合手段とを備え、小規模な演算器を用いて部分処理
対象を処理するので、装置資源を活用して効率的な演算
処理を行うことが可能となる。
【0208】請求項2の演算装置によれば、請求項1の
装置において、Lビットの被乗数とMビットの乗数とに
対して乗算処理を行うものであり、上記部分演算手段
は、Nビットの部分被乗数と、Sビットの部分乗数とに
対して、乗算処理を行い、部分乗算結果を生成する部分
乗算手段であり、上記部分演算結果処理手段は、上記部
分乗算手段が生成した部分乗算結果に対して所定のデー
タシフト処理を行い、部分シフト結果を生成するシフト
手段であり、上記演算結果統合手段は、上記部分シフト
結果に対して加算処理を行うことにより、統合乗算結果
を生成する加算統合手段と、上記統合乗算結果を保持す
る演算結果保持手段とを有するものとしたことで、乗算
処理を効率的に行うことが可能となる。
【0209】請求項3の演算装置によれば、請求項2の
装置において、上記加算統合手段が、上記加算処理にお
いて、上記演算結果保持手段が保持する内容を加算する
第1の演算モードと、上記加算統合手段が、上記加算処
理において、上記演算結果保持手段が保持する内容を加
算しない第2の演算モードとを有するものとしたこと
で、累積処理を含む積和演算処理を効率的に行うことが
可能となる。
【0210】請求項4の演算装置によれば、請求項2の
装置において、上記部分乗算手段は、上記被乗数の上位
Nビットに対して乗算処理を行う第1の部分乗算手段
と、上記被乗数の下位(L−N)ビットに対して乗算処
理を行う第2の部分乗算手段とからなるものであり、上
記第1の部分乗算手段が、上記乗数の上位Sビットの部
分乗数を用い、上記第2の部分乗算手段が、上記乗数の
下位(M−S)ビットを用いる第1の部分乗算モード
と、上記第1の部分乗算手段が、上記乗数の下位(M−
S)ビットの部分乗数を用い、上記第2の部分乗算手段
が、上記乗数の上位Sビットを用いる第2の部分乗算モ
ードとを切り替えるものとしたことで、精度の異なる乗
算処理を効率的に行うことが可能となる。
【0211】請求項5の演算装置によれば、請求項4の
装置において、上記加算統合手段が、上記加算処理にお
いて、上記演算結果保持手段が保持する内容を加算する
第1の演算モードと、上記加算統合手段が、上記加算処
理において、上記演算結果保持手段が保持する内容を加
算しない第2の演算モードとを有するものであり、第1
の演算モードにおいては、第1の部分乗算モードにおい
て乗算処理を行う第1段階処理と、第2の部分乗算モー
ドにおいて乗算処理を行う第2段階処理とを行うものと
したことで、精度の異なる、累積処理を含む積和演算処
理を効率的に行うことが可能となる。
【0212】請求項6の演算装置によれば、請求項2な
いし5のいずれかの装置において、上記部分乗算手段に
対しての入力を監視することにより、上記部分乗算結果
の特定の部分を所定の値となるように制御する補正指示
信号を生成する補正指示信号生成手段をさらに備え、小
規模な演算器を用いて、補正指示信号に対応した処理を
行うので、装置資源を活用して効率的な演算処理を行う
ことが可能となる。
【0213】請求項7の演算装置によれば、請求項1の
装置において、上記部分演算手段は、Nビットの部分処
理対象と、Sビットの部分処理対象とに対して、加減算
処理を行い、部分加減算結果を生成する部分加減算手段
と、Nビットの部分処理対象と、Sビットの部分処理対
象とに対して、乗算処理を行い、部分乗算結果を生成す
る部分乗算手段とを有するものであり、上記部分演算結
果処理手段は、上記部分加減算手段が生成した部分加減
算結果に対して所定の論理演算処理を行い、加減算結果
処理結果を生成する加減算結果処理手段と、上記部分乗
算手段が生成した部分乗算結果に対して所定のデータシ
フト処理を行い、部分シフト結果を生成するシフト手段
とを有するものであり、上記演算結果統合手段は、上記
部分シフト結果に対して加算処理を行うことにより、統
合乗算結果を生成する加算統合手段と、上記統合乗算結
果を保持する演算結果保持手段とを有するものとしたこ
とで、小規模な演算器を用い、装置資源を活用して効率
的に加減算処理と積和演算処理とを含む演算処理を行う
ことが可能となる。
【0214】請求項8の演算装置によれば、請求項7の
装置において、上記部分加減算手段が生成した部分か減
算結果に基づいて、上記部分乗算結果の特定の部分を所
定の値となるように制御する加減算結果対応補正指示信
号を生成する加減算結果対応補正指示信号生成手段をさ
らに備え、小規模な演算器を用いて、加減算結果対応補
正指示信号に対応した処理を行うので、装置資源を活用
して効率的な演算処理を行うことが可能となる。
【0215】請求項9の演算装置によれば、請求項1の
装置において、上記部分演算手段は、Nビットの部分処
理対象と、Sビットの部分処理対象とに対して、加減算
処理を行い、部分加減算結果を生成する部分加減算手段
を有するものであり、上記部分演算結果処理手段は、上
記部分加減算手段が生成した部分加減算結果に基づい
て、上記部分加減算結果か、所定値かのいずれかを選択
して出力する加算結果決定処理手段を有するものとした
ことで、飽和演算処理を含む演算処理を効率的に行うこ
とが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による演算装置の構成を
示すブロック図である。
【図2】同実施の形態の演算装置が備える乗算器の内部
構成を示すブロック図である。
【図3】同実施の形態の演算装置による倍精度積和演算
処理を示す図である。
【図4】同実施の形態の演算装置による単精度デュアル
乗算処理を示す図である。
【図5】同実施の形態の演算装置の倍精度積和演算処理
の動作を示すタイミングチャート図である。
【図6】同実施の形態の演算装置の単精度デュアル乗算
処理の動作を示すタイミングチャート図である。
【図7】本発明の実施の形態2による演算装置の構成を
示すブロック図である。
【図8】同実施の形態の演算装置が備える乗算器の内部
構成を示すブロック図である。
【図9】同実施の形態の演算装置による倍精度積和演算
処理を示す図である。
【図10】同実施の形態の演算装置による単精度デュア
ル乗算処理を示す図である。
【図11】同実施の形態における補正信号の生成を説明
するための図である。
【図12】本発明の実施の形態3による演算装置の構成
を示すブロック図である。
【図13】同実施の形態の演算装置における制御信号の
状態と、論理演算処理とを示す図である。
【図14】同実施の形態の演算装置が備える乗算器の内
部構成を示すブロック図である。
【図15】同実施の形態の演算装置による単精度デュア
ル積和演算処理を示す図である。
【図16】同実施の形態の演算装置の単精度デュアル積
和演算処理の動作を示すタイミングチャート図である。
【図17】同実施の形態の演算装置の倍精度積和演算処
理の動作を示すタイミングチャート図である。
【図18】同実施の形態の演算装置による倍精度積和演
算処理を示す図である。
【図19】同実施の形態の演算装置による単精度差分絶
対値累積処理を示す図である。
【図20】同実施の形態の演算装置の単精度差分絶対値
累積演算処理の動作を示すタイミングチャート図であ
る。
【図21】本発明の実施の形態4による演算装置の構成
を示すブロック図である。
【図22】飽和演算処理を説明するための図である。
【図23】従来の技術による、複数プロセッサを備える
システムを示す図である。
【図24】従来の技術による演算装置の構成を示すブロ
ック図である。
【図25】同演算装置による倍精度積和演算処理を示す
図である。
【図26】同演算装置による単精度デュアル乗算処理を
示す図である。
【符号の説明】
101,102,701,702,1201,1202
入力レジスタ 103,104,105,106,703,704,7
05,706拡張器 107,108,707,708乗算選択器 109,110単精度乗算器 709単精度乗算器(桁上げ伝搬加算なし) 710単精度乗算器(桁上げ伝搬加算なし・補正信号対
応) 111,112,711a,711b,712a,71
2bシフタ 113,713全加算選択器 114,714全加算器 115,715,1204桁上げ伝搬加算器 116,117,716,717,1205出力レジス
タ 201,801デコーダ 202,802部分積生成器 203,803ツリー状全加算器 204桁上げ伝搬加算器(乗算器内) 1201,1202,1203,1204入力選択器 1205,1206,1207,1208,2101,
2102入力レジスタ 1209出力レジスタ1209 1210,1211,2107,2108加算器(単精
度) 1212加算選択器1212 1213,1214,2105,2106加算入力EX
ORゲート 1215,1216加算出力ANDゲート 1217,1218加算出力EXORゲート 1219,1220加算結果保持レジスタ 1221,1222乗算入力選択器 1223,1224乗算器(単精度) 1225,1226シフタ 1227加算器 1228,1229加算結果ANDゲート 1240,2110加減算器 1241積和演算器 1242,2130加算結果処理器 2103,2104,2109加算器入力選択器 2110,2111加算出力選択器

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 Lビットの第1の処理対象とMビットの
    第2の処理対象とに対して演算処理を行う演算装置にお
    いて、 Nビット(NはL以下)の第1の部分処理対象と、Sビ
    ット(SはM以下)の第2の部分処理対象とに対して、
    演算処理を行い、部分演算結果を生成する部分演算手段
    と、 上記部分演算結果に対して、所定の変換処理を実行し、
    変換部分演算結果を生成する部分演算結果処理手段と、 上記変換部分演算結果を統合し、統合演算結果を生成す
    る演算結果統合手段とを備えたことを特徴とする演算装
    置。
  2. 【請求項2】 請求項1に記載の演算装置において、 Lビットの被乗数とMビットの乗数とに対して乗算処理
    を行うものであり、 上記部分演算手段は、Nビットの部分被乗数と、Sビッ
    トの部分乗数とに対して、乗算処理を行い、部分乗算結
    果を生成する部分乗算手段であり、 上記部分演算結果処理手段は、上記部分乗算手段が生成
    した部分乗算結果に対して所定のデータシフト処理を行
    い、部分シフト結果を生成するシフト手段であり、 上記演算結果統合手段は、上記部分シフト結果に対して
    加算処理を行うことにより、統合乗算結果を生成する加
    算統合手段と、上記統合乗算結果を保持する演算結果保
    持手段とを有するものであることを特徴とする演算装
    置。
  3. 【請求項3】 請求項2に記載の演算装置において、 上記加算統合手段が、上記加算処理において、上記演算
    結果保持手段が保持する内容を加算する第1の演算モー
    ドと、 上記加算統合手段が、上記加算処理において、上記演算
    結果保持手段が保持する内容を加算しない第2の演算モ
    ードとを有するものであることを特徴とする演算装置。
  4. 【請求項4】 請求項2に記載の演算装置において、 上記部分乗算手段は、上記被乗数の上位Nビットに対し
    て乗算処理を行う第1の部分乗算手段と、上記被乗数の
    下位(L−N)ビットに対して乗算処理を行う第2の部
    分乗算手段とからなるものであり、 上記第1の部分乗算手段が、上記乗数の上位Sビットの
    部分乗数を用い、上記第2の部分乗算手段が、上記乗数
    の下位(M−S)ビットを用いる第1の部分乗算モード
    と、 上記第1の部分乗算手段が、上記乗数の下位(M−S)
    ビットの部分乗数を用い、上記第2の部分乗算手段が、
    上記乗数の上位Sビットを用いる第2の部分乗算モード
    とを切り替えるものであることを特徴とする演算装置。
  5. 【請求項5】 請求項4に記載の演算装置において、 上記加算統合手段が、上記加算処理において、上記演算
    結果保持手段が保持する内容を加算する第1の演算モー
    ドと、上記加算統合手段が、上記加算処理において、上
    記演算結果保持手段が保持する内容を加算しない第2の
    演算モードとを有するものであり、 第1の演算モードにおいては、第1の部分乗算モードに
    おいて乗算処理を行う第1段階処理と、第2の部分乗算
    モードにおいて乗算処理を行う第2段階処理とを行うも
    のであることを特徴とする演算装置。
  6. 【請求項6】 請求項2ないし5のいずれかに記載の演
    算装置において、 上記部分乗算手段に対しての入力を監視することによ
    り、上記部分乗算結果の特定の部分を所定の値となるよ
    うに制御する補正指示信号を生成する補正指示信号生成
    手段をさらに備えたものであることを特徴とする演算装
    置。
  7. 【請求項7】 請求項1に記載の演算装置において、 上記部分演算手段は、 Nビットの部分処理対象と、Sビットの部分処理対象と
    に対して、加減算処理を行い、部分加減算結果を生成す
    る部分加減算手段と、 Nビットの部分処理対象と、Sビットの部分処理対象と
    に対して、乗算処理を行い、部分乗算結果を生成する部
    分乗算手段とを有するものであり、 上記部分演算結果処理手段は、 上記部分加減算手段が生成した部分加減算結果に対して
    所定の論理演算処理を行い、加減算結果処理結果を生成
    する加減算結果処理手段と、 上記部分乗算手段が生成した部分乗算結果に対して所定
    のデータシフト処理を行い、部分シフト結果を生成する
    シフト手段とを有するものであり、 上記演算結果統合手段は、上記部分シフト結果に対して
    加算処理を行うことにより、統合乗算結果を生成する加
    算統合手段と、上記統合乗算結果を保持する演算結果保
    持手段とを有するものであることを特徴とする演算装
    置。
  8. 【請求項8】 請求項7に記載の演算装置において、 上記部分加減算手段が生成した部分加減算結果に基づい
    て、上記部分乗算結果の特定の部分を所定の値となるよ
    うに制御する加減算結果対応補正指示信号を生成する加
    減算結果対応補正指示信号生成手段をさらに備えたもの
    であることを特徴とする演算装置。
  9. 【請求項9】 請求項1に記載の演算装置において、 上記部分演算手段は、 Nビットの部分処理対象と、Sビットの部分処理対象と
    に対して、加減算処理を行い、部分加減算結果を生成す
    る部分加減算手段を有するものであり、 上記部分演算結果処理手段は、 上記部分加減算手段が生成した部分加減算結果に基づい
    て、上記部分加減算結果か、所定値かのいずれかを選択
    して出力する加算結果決定処理手段を有するものである
    ことを特徴とする演算装置。
JP11025427A 1998-07-09 1999-02-02 演算装置 Pending JP2000081966A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11025427A JP2000081966A (ja) 1998-07-09 1999-02-02 演算装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-194466 1998-07-09
JP19446698 1998-07-09
JP11025427A JP2000081966A (ja) 1998-07-09 1999-02-02 演算装置

Publications (1)

Publication Number Publication Date
JP2000081966A true JP2000081966A (ja) 2000-03-21

Family

ID=26363030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11025427A Pending JP2000081966A (ja) 1998-07-09 1999-02-02 演算装置

Country Status (1)

Country Link
JP (1) JP2000081966A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217805A (ja) * 2001-10-05 2008-09-18 Intel Corp 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JP2009140491A (ja) * 2007-12-07 2009-06-25 Nvidia Corp 融合型積和演算機能ユニット
JP2014209347A (ja) * 2006-02-15 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated ブース乗算方法及びシステムのための電力効率の良い符号拡張
WO2019189878A1 (ja) * 2018-03-30 2019-10-03 国立研究開発法人理化学研究所 演算装置および演算システム
JP2022544854A (ja) * 2019-08-23 2022-10-21 グーグル エルエルシー 符号付きマルチワード乗算器
WO2023248309A1 (ja) * 2022-06-20 2023-12-28 日本電信電話株式会社 データ処理装置、データ処理プログラム、及びデータ処理方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217805A (ja) * 2001-10-05 2008-09-18 Intel Corp 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JP4555356B2 (ja) * 2001-10-05 2010-09-29 インテル・コーポレーション 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JP2014209347A (ja) * 2006-02-15 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2009140491A (ja) * 2007-12-07 2009-06-25 Nvidia Corp 融合型積和演算機能ユニット
JP2012084142A (ja) * 2007-12-07 2012-04-26 Nvidia Corp 融合型積和演算機能ユニット
WO2019189878A1 (ja) * 2018-03-30 2019-10-03 国立研究開発法人理化学研究所 演算装置および演算システム
JPWO2019189878A1 (ja) * 2018-03-30 2021-04-08 国立研究開発法人理化学研究所 演算装置および演算システム
JP7394462B2 (ja) 2018-03-30 2023-12-08 国立研究開発法人理化学研究所 演算装置および演算システム
JP2022544854A (ja) * 2019-08-23 2022-10-21 グーグル エルエルシー 符号付きマルチワード乗算器
WO2023248309A1 (ja) * 2022-06-20 2023-12-28 日本電信電話株式会社 データ処理装置、データ処理プログラム、及びデータ処理方法

Similar Documents

Publication Publication Date Title
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
JP3244506B2 (ja) 小型乗算器
JP3958662B2 (ja) プロセッサ
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US5497341A (en) Sign-extension of immediate constants in an ALU using an adder in an integer logic unit
JP3750820B2 (ja) パック・データの乗加算演算を実行する装置
JP2008217805A (ja) 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JPH0850575A (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
KR19980041798A (ko) 영상처리를 위한 명령을 지원하는 모듈 계산구조
JPH0713742A (ja) 乗算装置
JPH07210369A (ja) 並列加算および平均演算を行うための回路およびその方法
US5583806A (en) Optimized binary adder for concurrently generating effective and intermediate addresses
JP5133491B2 (ja) 単一命令多数データ処理
JP2000081966A (ja) 演算装置
US5764550A (en) Arithmetic logic unit with improved critical path performance
US6499046B1 (en) Saturation detection apparatus and method therefor
JP3723115B2 (ja) 単一命令多重データ処理
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JP2001142695A (ja) 記憶場所への定数のロード方法、宛先記憶場所への定数のロード方法、レジスタへの定数のロード方法、符号ビット数の決定方法、2進数の正規化方法、及びコンピュータシステム内の命令
US6393452B1 (en) Method and apparatus for performing load bypasses in a floating-point unit
US20060031279A1 (en) Highly parallel structure for fast multi cycle binary and decimal adder unit
JP2002157114A (ja) 乗算器及びそれを搭載した集積回路装置
JP2001216136A (ja) 加算回路およびプロセッサ
JP3144859B2 (ja) 算術論理演算装置
US6041341A (en) Method and circuit for adding operands of multiple size

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040127