JPH10283340A - 演算プロセッサ - Google Patents

演算プロセッサ

Info

Publication number
JPH10283340A
JPH10283340A JP9092148A JP9214897A JPH10283340A JP H10283340 A JPH10283340 A JP H10283340A JP 9092148 A JP9092148 A JP 9092148A JP 9214897 A JP9214897 A JP 9214897A JP H10283340 A JPH10283340 A JP H10283340A
Authority
JP
Japan
Prior art keywords
input
value
output
multiplication
storage means
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.)
Withdrawn
Application number
JP9092148A
Other languages
English (en)
Inventor
Yoshitsugu Inoue
喜嗣 井上
Hiroyasu Negishi
博康 根岸
Keijirou Yoshimatsu
敬仁郎 吉松
Junko Obara
淳子 小原
Hiroyuki Kawai
浩行 河合
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP9092148A priority Critical patent/JPH10283340A/ja
Priority to US08/954,586 priority patent/US5974436A/en
Publication of JPH10283340A publication Critical patent/JPH10283340A/ja
Withdrawn 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/544Methods 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 for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/556Indexing scheme relating to group G06F7/556
    • G06F2207/5561Exponentiation by multiplication, i.e. calculating Y**INT(X) by multiplying Y with itself or a power of itself, INT(X) being the integer part of X

Abstract

(57)【要約】 【課題】 累乗演算を高速に実行することができる演算
プロセッサを提供する。 【解決手段】 演算プロセッサ370は、底レジスタ7
6と、乗算器74および302と、平方根演算器294
と、指数データレジスタ390の整数領域eiをビット
ごとにチェックしながら、乗算入力選択器395および
393、ymレジスタ392およびtmレジスタ394
の入出力制御を行ない、eレジスタ390の小数領域e
fをビットごとにチェックしながら、平方根演算入力選
択器408、乗算入力選択器397および398、ts
レジスタ396、ならびにyレジスタ80の入出力制御
を行なうための累乗演算制御部376とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、数値の累乗演算を
行なうための演算プロセッサに関し、特に、プロセッサ
に内蔵される乗算器および平方根演算器を用いた演算プ
ロセッサに関する。
【0002】
【従来の技術】計算機による数値演算を行なう場合、計
算機は算術論理演算器や乗算器などのハードウェアを用
意し、これら演算器の持つ基礎的な演算機能の組合せを
ソフトウェアによりプログラミングすることにより高度
な数値計算を行なう。 [ 従来の技術1] たとえば、xの累乗xe (eは整数)
を求める方法として、「岩波講座 情報科学10 基本
的算法」、pp.147−151に開示されている方法
がある。以下、図28を参照して、この方法について説
明する。
【0003】eの2進数表現を e=bm-1 m-2 ...b0 (m>1、i=0,1、b
m-1 =1) とする。まず、結果を示す変数yをy=xとし、チェッ
クするビットを示す変数iをi=m−2とする(S2
2)。iが負数であれば(S24でfalse)、その
ビットのデータは存在しないので処理を終了する。ビッ
トのデータが存在すれば(S24でtrue)、yをy
2 で置換する(S26)。bi =1ならば(S28でt
rue)、さらにyをy×xで置換する(S30)。b
i =0であれば(S28でfalse)、何も行なわな
い。上述したS26からS30までの処理により、bi
=1ならばyをy2 ×xで置換し、bi =0ならばyを
2 で置換したことになる。iを1つ減じ(S32)、
i=0となるまで、S26からS30までの処理を行な
う。これにより、整数指数の累乗演算結果xe を得るこ
とができる。 [ 従来の技術2] また、xの累乗xe (eは実数)を求
める方法として、「岩波講座 情報科学18 数値計
算」、pp. 29−32に開示されている方法がある。
以下、図29および30を参照して、この方法について
説明する。
【0004】xe =exp(e×log(x)) と表すことができる。このため、対数(log)関数と
指数(exp)関数のソフトウェアライブラリ関数を用
意することにより、xe を求めることができる。
【0005】図29を参照して、nビット精度を持つ対
数関数の値z=log(y)を求める方法について説明
する。なお、−log(1+2-k)(k=1、
2、...、n)の値は定数としてあらかじめ用意され
ているものとする。まず、y0 =y、z0 =0、k=1
が設定される(S42)。kを1からnまで変化させな
がら、処理を行なう。kがn以下の場合には(S44で
true)、 w=yk-1 ×(1+2-k) を求める(S46)。w≧1ならば(S48でtru
e)、yk =yk-1 、zk=zk-1 とし(S50)、w
<1ならば(S48でfalse)、yk =w、z k
k-1 −log(1+2-k)とする(S52)。kが1
つインクリメントされる(S54)。以下S44〜S5
4の処理を繰返し、kがnより大きくなった場合には
(S44でfalse)、処理を終了し、その時のzk
が求める値である。
【0006】次に、図30を参照して、nビット精度を
持つ指数関数の値y=exp(z)を求める方法につい
て説明する。なお、−log(1+2-k)(k=1、
2、...、n)の値は定数としてあらかじめ用意され
ているものとする。まず、y0=1、z0 =z、k=1
が設定される(S62)。kを1からnまで変化させな
がら、処理を行なう。kがn以下の場合には(S64で
true)、 w=zk-1 −log(1+2-k) を求める(S66)。w≧0ならば(S68でtru
e)、yk =yk-1 ×(1+2-k)、zk =wとし(S
70)、w<0ならば(s68でfalse)、y k
k-1 、zk =zk-1 とする(S72)。kが1つイン
クリメントされる(S74)。以下S64〜S74の処
理を繰返し、kがnより大きくなった場合には(S64
でfalse)、処理を終了し、その時のyk が求める
値である。
【0007】
【発明が解決しようとする課題】しかし、従来の技術1
にかかる整数指数の累乗演算を行なうための計算機で
は、乗算回数は(2m−1)回で済むが、ソフトウェア
処理においては、図28のS28に示すようなビットの
判定、ループの制御、および指数を格納するレジスタに
おける1がたつ最上位ビットの検出など、乗算以外の制
御のための演算が必要となるため、処理時間が長いとい
う問題点がある。
【0008】また、従来の技術2にかかる実数指数の累
乗演算を行なうための計算機では、「−log(1+2
-k)(k=1、2、…、n)」の値を定数としてあらか
じめ記憶しておくための記憶領域が必要である。また、
指数関数の演算にかかる処理時間は長いため、トータル
としての処理時間が極めて長いという問題点があった。
【0009】本発明は、これらのような問題点を解決す
るためになされたもので、請求項1に記載の発明の目的
は、乗算器への少ない付加回路で、整数指数の累乗演算
を高速に実行することができる演算プロセッサを提供す
ることである。
【0010】請求項2に記載の発明の目的は、請求項1
に記載の発明の目的に加え、整数指数の累乗演算をさら
に高速に実行することができる演算プロセッサを提供す
ることである。
【0011】請求項3に記載の発明の目的は、小数指数
の累乗演算を高速に実行することができる演算プロセッ
サを提供することである。
【0012】請求項4および5のいずれかに記載の発明
の目的は、実数指数の累乗演算を高速に実行することが
できる演算プロセッサを提供することである。
【0013】請求項6に記載の発明の目的は、実数指数
の累乗演算を高速に実行することができ、かつ乗算装置
の演算効率がよい演算プロセッサを提供することであ
る。
【0014】請求項7に記載の発明の目的は、請求項1
から6のいずれかに記載の発明の目的に加え、シーケン
ス制御手段などへのフラグ報告を正確かつ早期に行なう
ことができる演算プロセッサを提供することである。
【0015】請求項8に記載の発明の目的は、請求項7
に記載の発明の目的に加え、乗算手段の演算結果が0に
なったこと、および/または乗算手段の演算結果が表現
範囲データ領域を超えたことを、シーケンス制御手段な
どへ正確かつ早期に行なうことができる演算プロセッサ
を提供することである。
【0016】請求項9および10のいずれかに記載の発
明の目的は、請求項1から5、7および8のいずれかに
記載の発明の目的に加え、余分な演算を行なうことな
く、累乗演算を高速に実行することができる演算プロセ
ッサを提供することである。
【0017】
【課題を解決するための手段】請求項1に記載の発明に
係る演算プロセッサは、基数データを記憶するための第
1の記憶手段と、指数データを記憶するための第2の記
憶手段と、第1の入力および第2の入力を有し、2つの
入力データを乗算し結果を出力するための乗算手段と、
上記乗算手段の演算結果を記憶するための第3の記憶手
段および第4の記憶手段と、上記第1の記憶手段の出
力、上記第3の記憶手段の出力、上記第4の記憶手段の
出力および固定値1を受け、第1乗算入力選択信号に従
っていずれか1つを選択して上記乗算手段の上記第1の
入力に与えるための第1乗算入力選択手段と、上記第1
の記憶手段の出力、上記第4の記憶手段の出力および固
定値1を受け、第2乗算入力選択信号に従っていずれか
1つを選択して上記乗算手段の上記第2の入力に与える
ための第2乗算入力選択手段と、上記指数データをビッ
ト毎にチェックしながら、チェック回数および当該ビッ
トの値に応じて上記第1乗算入力選択信号、上記第2乗
算入力選択信号および上記第3の記憶手段または上記第
4の記憶手段へデータの書込みを許可するための書込み
信号を所定のシーケンスに従って出力するための累乗演
算制御手段とを含む。
【0018】請求項1に記載の発明によると、第3の記
憶手段に中間結果を記憶し、第4の記憶手段に基数デー
タのべき乗の値を記憶する。第2の記憶手段に記憶され
た整数指数の値をLSB(least signifi
cant bit)から順次ビットチェックを行ない、
乗算手段への入力選択を行なうことにより整数指数の累
乗演算を行なう。これにより、乗算手段への少ない付加
回路で、整数指数の累乗演算を高速に実行することがで
きる。
【0019】請求項2に記載の発明に係る演算プロセッ
サは、請求項1に記載の発明の構成に加えて、上記乗算
手段は、乗算の前半部の処理を行なうための前半乗算手
段と、乗算の後半部の処理を行なうための後半乗算手段
とを含み、上記累乗演算制御手段は、ある乗算の後半部
の処理と、上記ある乗算の直後の乗算の前半部とが並行
して実行されるように上記第1乗算入力選択信号、上記
第2乗算入力選択信号および上記書込み信号を出力す
る。
【0020】請求項2に記載の発明によると、請求項1
に記載の発明の作用、効果に加え、2段パイプライン構
成の乗算手段を備えており、ある乗算の後半部と、その
直後の乗算の前半部とが平行して実行される。これによ
り、乗算の実行結果が得られらサイクルが短くなるた
め、累乗演算をさらに高速に実行することができ、整数
指数の累乗演算を高速に実行することができる。
【0021】請求項3に記載の発明に係る演算プロセッ
サは、基数データを記憶するための第1の記憶手段と、
指数データを記憶するための第2の記憶手段と、入力デ
ータの平方根を演算し結果を出力するための平方根演算
手段と、上記平方根演算手段の演算結果を記憶するため
の第3の記憶手段と、第1の入力および第2の入力を有
し、2つの入力データを乗算し結果を出力するための乗
算手段と、上記乗算手段の演算結果を記憶するための第
4の記憶手段と、上記第1の記憶手段の出力および上記
第3の記憶手段の出力を受け、そのいずれか1つを、平
方根演算入力選択信号に従って選択して上記平方根演算
手段の入力に与えるための平方根演算入力選択手段と、
上記第3の記憶手段の出力および固定値1を受け、その
いずれか1つを、第1乗算入力選択信号に従って選択し
て上記乗算手段の上記第1の入力に与えるための第1乗
算入力選択手段と、上記第4の記憶手段の出力および固
定値1を受け、そのいずれか1つを、第2乗算入力選択
信号に従って選択して上記乗算手段の上記第2の入力に
与えるための第2乗算入力選択手段と、上記指数データ
をビット毎にチェックしながら、チェック回数および当
該ビットの値に応じて上記平方根演算入力選択信号、上
記第1乗算入力選択信号、上記第2入力選択信号および
上記第3の記憶手段または上記第4の記憶手段へデータ
の書込みを許可するための書込み信号を所定のシーケン
スに従って出力するための累乗演算制御手段とを含む。
【0022】請求項3に記載の発明によると、平方根演
算手段で算出された基数データのべき乗根を第3の記憶
手段に記憶し、第4の記憶手段に中間結果を記憶する。
第2の記憶手段に記憶された小数指数の値をLSBから
順次ビットチェックを行ない、乗算手段への入力選択を
行なうことにより小数指数の累乗演算を行なう。これに
より、小数指数の累乗演算を高速に実行することができ
る。
【0023】請求項4に記載の発明に係る演算プロセッ
サは、基数データを記憶するための第1の記憶手段と、
指数データを整数領域および小数領域に分割して記憶す
るための第2の記憶手段と、第1の入力および第2の入
力を有し、2つの入力データを乗算し結果を出力するた
めの第1の乗算手段と、上記第1の乗算手段の演算結果
を記憶するための第3の記憶手段および第4の記憶手段
と、入力データの平方根を演算し結果を出力するための
平方根演算手段と、上記平方根演算手段の演算結果を記
憶するための第5の記憶手段と、第1の入力および第2
の入力を有し、2つの入力データを乗算し結果を出力す
るための第2の乗算手段と、上記第2の乗算手段の演算
結果を記憶するための第6の記憶手段と、上記第1の記
憶手段の出力、上記第3の記憶手段の出力、上記第4の
記憶手段の出力および固定値1を受け、そのいずれか1
つを、第1乗算入力選択信号に従って選択し上記第1の
乗算手段の上記第1の入力に与えるための第1乗算入力
選択手段と、上記第1の記憶手段の出力、上記第4の記
憶手段の出力および固定値1を受け、そのいずれか1つ
を、第2乗算入力選択信号に従って選択し上記第1の乗
算手段の上記第2の入力に与えるための第2乗算入力選
択手段と、上記第1の記憶手段の出力および上記第5の
記憶手段の出力を受け、そのいずれか1つを、平方根演
算入力選択信号に従って選択して上記平方根演算手段の
入力に与えるための平方根演算入力選択手段と、上記第
5の記憶手段の出力および固定値1を受け、そのいずれ
か1つを、第3乗算入力選択信号に従って選択して上記
第2の乗算手段の上記第1の入力に与えるための第3乗
算入力選択手段と、上記第3の記憶手段の出力および上
記第6の記憶手段の出力を受け、そのいずれか1つを、
第4乗算入力選択信号に従って選択し上記第2の乗算手
段の上記第2の入力に与えるための第4乗算入力選択手
段と、上記指数データの上記整数領域をビット毎にチェ
ックしながら、チェック回数および当該ビットの値に応
じて上記第1乗算入力選択信号、上記第2乗算入力選択
信号および上記第3の記憶手段または上記第4の記憶手
段へデータの書込みを許可するための書込み信号を所定
のシーケンスに従って出力し、上記指数データの上記小
数領域をビット毎にチェックしながら、チェック回数お
よび当該ビットの値に応じて上記平方根演算入力選択信
号、上記第3乗算入力選択信号、上記第4乗算入力選択
信号および上記第5の記憶手段または上記第6の記憶手
段へデータの書込みを許可するための書込み信号を所定
のシーケンスに従って出力するための累乗演算制御手段
とを含む。
【0024】請求項4に記載の発明によると、第3の記
憶手段に整数累乗演算の中間結果を記憶し、第4の記憶
手段に基数データのべき乗の値を記憶する。第2の記憶
手段に記憶された指数データの整数領域の値をLSBか
ら順次ビットチェックを行ない、第1の乗算手段の入力
選択を行なうことにより整数指数の累乗演算を行なう。
また、平方根演算手段で算出された基数データのべき乗
根を第5の記憶手段に記憶し、第6の記憶手段に小数累
乗演算の中間結果を記憶する。第2の記憶手段に記憶さ
れた指数データの小数領域の値をLSBから順次ビット
チェックを行ない、第2の乗算手段の入力選択を行なう
ことにより小数指数の累乗演算を行なう。また、第2の
乗算手段において整数指数の累乗演算結果と小数指数の
累乗演算結果との乗算を行なうことにより実数指数の累
乗演算を行なう。これにより、実数指数の累乗演算を高
速に実行することができる。
【0025】請求項5に記載の発明に係る演算プロセッ
サは、基数データを記憶するための第1の記憶手段と、
指数データを整数領域および小数領域に分割して記憶す
るための第2の記憶手段と、第1の入力および第2の入
力を有し、2つの入力データを乗算し結果を出力するた
めの乗算手段と、上記乗算手段の演算結果を記憶するた
めの第3の記憶手段および第4の記憶手段と、入力デー
タの平方根を演算し結果を出力するための平方根演算手
段と、上記平方根演算手段の演算結果を記憶するための
第5の記憶手段と、上記第1の記憶手段の出力、上記第
3の記憶手段の出力、上記第4の記憶手段の出力および
固定値1を受け、そのいずれか1つを、第1乗算入力選
択信号に従って選択し上記乗算手段の上記第1の入力に
与えるための第1乗算入力選択手段と、上記第1の記憶
手段の出力、上記第4の記憶手段の出力、上記第5の記
憶手段の出力および固定値1を受け、そのいずれか1つ
を、第2乗算入力選択信号に従って選択し上記乗算手段
の上記第2の入力に与えるための第2乗算入力選択手段
と、上記第1の記憶手段の出力および上記第5の記憶手
段の出力を受け、そのいずれか1つを、平方根演算入力
選択信号に従って選択して上記平方根演算手段の入力に
与えるための平方根演算入力選択手段と、上記指数デー
タの上記整数領域をビット毎にチェックしながら、チェ
ック回数および当該ビットの値に応じて上記第1乗算入
力選択信号、上記第2乗算入力選択信号および上記第3
の記憶手段または上記第4の記憶手段へデータの書込み
を許可するための書込み信号を出力し、上記指数データ
の上記小数領域をビット毎にチェックしながら、チェッ
ク回数および当該ビットの値に応じて上記平方根演算入
力選択信号、上記第1乗算入力選択信号、上記第2乗算
入力選択信号および上記第3の記憶手段または第5の記
憶手段へデータの書込みを許可するための書込み信号を
出力するための累乗演算制御手段とを含む。
【0026】請求項5に記載の発明によると、第3の記
憶手段に累乗演算の中間結果を記憶し、第4の記憶手段
に基数データのべき乗の値を記憶し、第4の記憶手段に
基数データのべき乗根の値を記憶する。第2の記憶手段
に記憶された指数データの整数領域の値をLSBから順
次ビットチェックを行ない、乗算手段の入力選択を行な
うことにより整数指数の累乗演算を行なう。また、第2
の記憶手段に記憶された指数データの小数領域の値をL
SBから順次ビットチェックを行ない、乗算手段の入力
選択を行なうことにより小数指数の累乗演算を行なう。
また、乗算手段において整数指数の累乗演算結果と小数
指数の累乗演算結果との乗算を行なうことにより実数指
数の累乗演算を行なう。これにより、実数指数の累乗演
算を高速に実行することができる。
【0027】請求項6に記載の発明に係る演算プロセッ
サは、基数データを記憶するための第1の記憶手段と、
指数データを整数領域および小数領域に分割して記憶す
るための第2の記憶手段と、第1の入力および第2の入
力を有し、2つの入力データを乗算し結果を出力するた
めの乗算手段と、上記乗算手段の演算結果を記憶するた
めの第3の記憶手段および第4の記憶手段と、入力デー
タの平方根を演算し結果を出力するための平方根演算手
段と、上記平方根演算手段の演算結果を記憶するための
複数個の第5の記憶手段と、第1記憶場所選択信号に従
って上記複数個の第5の記憶手段の1つを選択するため
の第1記憶場所選択手段と、第2記憶場所選択信号に従
って上記複数個の第5の記憶手段を選択しその記憶内容
を出力させるための第2記憶場所選択手段と、上記第1
の記憶手段の出力、上記第3の記憶手段の出力、上記第
4の記憶手段の出力および固定値1を受け、そのいずれ
か1つを、第1乗算入力選択信号に従って選択して上記
乗算手段の上記第1の入力に与えるための第1乗算入力
選択手段と、上記第1の記憶手段の出力、上記第4の記
憶手段の出力、固定値1および上記第2記憶場所選択手
段の出力を受け、そのいずれか1つを、第2乗算入力選
択信号に従って選択し上記乗算手段の上記第2の入力に
与えるための第2乗算入力選択手段と、上記第1の記憶
手段の出力および上記第2記憶場所選択手段の出力を受
け、いずれか1つを、平方根演算入力選択信号に従って
選択し上記平方根演算手段の入力に与えるための平方根
演算入力選択手段と、上記指数データの上記整数領域を
ビット毎にチェックしながら、チェック回数および当該
ビットの値に応じて上記第1乗算入力選択信号、上記第
2乗算入力選択信号および上記第3の記憶手段または上
記第4の記憶手段へデータの書込みを許可するための書
込み信号を出力し、上記指数データの上記小数領域をビ
ット毎にチェックしながら、チェック回数および当該ビ
ットの値に応じて上記第1乗算入力選択信号、上記第2
乗算入力選択信号、上記第2記憶場所選択信号および上
記第3の記憶手段へデータの書込みを許可するための書
込み信号を出力し、処理の繰返し回数に応じて上記平方
根演算入力選択信号、上記第5の記憶手段へデータの書
込みを許可するための書込み信号および上記第1記憶場
所選択信号を出力するための累乗演算制御手段とを含
む。
【0028】請求項6に記載の発明によると、第3の記
憶手段に累乗演算の演算結果を記憶し、第4の記憶手段
に基数データのべき乗の値を記憶し、複数個の第5の記
憶手段に基数データのべき乗根の値を記憶する。第2の
記憶手段に記憶された指数データ整数領域の値をLSB
から順次ビットチェックを行ない、乗算手段の入力選択
を行なうことにより整数指数の累乗演算を行なう。ま
た、第2の記憶手段に記憶された指数データの小数領域
の値をLSBから順次ビットチェックを行ない、乗算手
段の入力選択を行なうことにより小数指数の累乗演算を
行なう。また、乗算手段において整数指数の累乗演算結
果と小数指数の累乗演算結果との乗算を行なうことによ
り実数指数の累乗演算を行なう。この際、基数データの
べき乗根の値を求めるための演算と、整数指数の累乗演
算とを並列して行なう。これにより、実数指数の累乗演
算を高速に実行することができ、かつ乗算装置の演算効
率を上げることができる。
【0029】請求項7に記載の発明に係る演算プロセッ
サは、請求項1から6のいずれかに記載の発明の構成に
加えて、上記乗算手段は、上記乗算手段の演算結果の状
態を示すフラグデータをさらに出力し、上記フラグデー
タを記憶するための状態記憶手段をさらに含み、上記累
乗演算制御手段は、上記乗算手段より出力される上記フ
ラグデータの上記状態記憶手段への書込み制御をさらに
行なう。
【0030】請求項7に記載の発明によると、請求項1
から6のいずれかに記載の発明の作用、効果に加えて、
乗算手段は演算結果の状態を示すフラグデータを出力す
る。これにより、シーケンス制御手段などへのフラグ報
告を正確かつ早期に行なうことができる。
【0031】請求項8に記載の発明に係る演算プロセッ
サは、請求項7に記載の発明の構成に加えて、上記フラ
グデータは、上記乗算手段の演算結果が0であることを
示すゼロフラグおよび/または上記乗算手段の演算結果
が表現範囲データ領域を超えたことを示すオーバーフロ
ーフラグを含む。
【0032】請求項8に記載の発明によると、請求項7
に記載の発明の作用、効果に加えて、フラグデータは乗
算手段の演算結果が0であることを示す0フラグおよび
/または乗算手段の演算結果が表現範囲データ領域を超
えたことを示すオーバーフローフラグを含む。これによ
り、乗算手段の演算結果が0になったこと、および/ま
たは乗算手段の演算結果が表現範囲データ領域を超えた
ことを、シーケンス制御手段などへ正確かつ早期に行な
うことができる。
【0033】請求項9に記載の発明に係る演算プロセッ
サは、請求項1〜5、7および8のいずれかに記載の発
明の構成に加えて、上記累乗演算制御手段は、上記指数
データの所定のビット間で、所定の演算を行なった結果
が、所定の値であれば処理を終了させ、かつ終了したこ
とを示すフラグデータをさらに出力する。
【0034】請求項9に記載の発明によると、請求項1
から5、7および8のいずれかに記載の発明の作用、効
果に加えて、累乗演算制御手段は、指数データの所定の
ビット間で、所定の演算結果を行なった結果が、所定の
値であれば処理を終了させ、かつ終了したことを示すフ
ラグデータを出力する。これにより、乗算手段への少な
い付加回路で、余分な演算を行なうことなく、累乗演算
を高速に実行することができる。
【0035】請求項10に記載の発明に係る演算プロセ
ッサは、請求項9に記載の発明の構成に加えて、上記所
定のビット間は、当該ビットよりも大きい位のビット間
であり、上記所定の演算は、ビット間の論理和であり、
上記所定の値は0である。
【0036】
【発明の実施の形態】
[実施の形態1]図1から5を参照して、本発明の第1
の実施の形態に係る演算プロセッサ40について説明す
る。
【0037】図1を参照して、演算プロセッサ40は、
命令を記憶するためのインストラクションメモリ48
と、データを記憶するためのメモリ52およびレジスタ
ファイル54と、インストラクションメモリ48からデ
ータを読み出しながらプロセッサ全体の制御を行なうた
めのシーケンス制御部46と、シーケンス制御部46の
命令に従いメモリ52またはレジスタファイル54から
データを読み出すためのアドレスおよびメモリ52また
はレジスタファイル54にデータを書込むためのアドレ
スを発生させるためのアドレス発生装置50と、外部と
のデータのやり取りを行なうための入出力インターフェ
イス44と、データおよび命令を転送するための通路で
あるバス68と、各種演算を実行するための演算装置4
2とを含む。
【0038】演算装置42は、論理演算を行なうための
ALU(論理演算装置)56と、乗算を行なうためのM
PYU(乗算装置)58と、平方根演算を行なうための
SQRTU(平方根演算装置)60と、除算を行なうた
めの除算装置62と、各種演算装置の制御を行なうため
の演算装置制御部64とを含む。
【0039】演算装置制御部64は、シーケンス制御部
46から命令を受け、eレジスタ78の内容に基づいて
整数指数の累乗演算を行なうための制御を行ない、かつ
シーケンス制御部46に累乗演算が終了したことを示す
終了フラグを送信するための累乗演算制御部66を含
む。
【0040】レジスタファイル54は、整数指数の累乗
演算を行なう際の、基数データを記憶するためのxレジ
スタ76と、Nビットの整数指数データを記憶するため
のeレジスタ78とを含む。
【0041】図2を参照して、MPYU58は、2つの
入力データS0およびS1の積を求め結果Yを出力する
ためのMPY(乗算器)74と、MPY74に接続され
累乗演算制御部66より出力される書込み信号71に従
ってMPY74の演算結果Yを記憶するためのyレジス
タ80と、MPY74に接続され累乗演算制御部66よ
り出力される書込み信号73に従ってMPY74の演算
結果Yを記憶するためのtレジスタ82と、MPY74
に接続され累乗演算制御部66より出力される書込み信
号75に従ってMPY74の演算フラグFを記憶するた
めのfレジスタ84と、yレジスタ80、xレジスタ7
6、固定値1およびtレジスタ82の出力を受け累乗演
算制御部66より出力される乗算入力選択信号69に従
ってこれら4つの出力のうち1つを選択し入力データS
0としてMPY74に与えるための第1の乗算入力選択
器70と、xレジスタ76、固定値1およびtレジスタ
82の出力を受け累乗演算制御部66より出力される乗
算入力選択信号69に従ってこれら3つの出力のうち1
つを選択し入力データS1としてMPY74に与えるた
めの第2の乗算入力選択器72とを含む。
【0042】演算フラグFは、複数ビットより構成さ
れ、演算結果が0である場合にセットされるゼロフラグ
または演算結果が表現範囲データ領域を超えてしまった
場合にセットされるオーバーフローフラグなどからな
る。
【0043】図3を参照して、累乗演算制御部66は、
デコーダ90と、カウンタ92と、デコーダ94とを含
む。デコーダ90は、シーケンス制御部46からの累乗
演算命令および後述するデコーダ94からの終了フラグ
を受け、カウンタ92の制御を行なう。カウンタ92
は、デコーダ90からの信号を受け、後述する繰返し処
理のためのカウント値Cをセットする。デコーダ94
は、カウンタより出力されるカウント値Cおよびeレジ
スタ78の出力を受け、eレジスタ78の各ビットのチ
ェックを行ないながら、MPY74の入力データS0お
よびS1を選択するための乗算入力選択信号69を出力
する。また、MPY74の演算結果Yをyレジスタ80
に書込むための書込み信号71と、MPY74の演算結
果Yをtレジスタ82に書込むための書込む信号73
と、MPY74の演算フラグFをfレジスタ84に書込
むための書込み信号75とを出力する。また、処理が終
了したことを示す終了フラグをシーケンス制御部46お
よびデコーダ90にそれぞれ送信する。
【0044】図4を参照して、デコーダ94は、MPY
74の入力データS0を選択するための乗算入力選択信
号69を生成するための乗算入力選択信号第1生成部1
00と、MPY74の入力データS1を選択するための
乗算入力選択信号69を生成するための乗算入力選択信
号第2生成部102と、書込み信号73を生成するため
の書込み信号第1生成部104と、書込み信号71およ
び75を生成するための書込み信号第2生成部106
と、終了フラグを生成するための終了フラグ生成部10
8とを含む。
【0045】乗算入力選択信号第1生成部100は、カ
ウント値Cを受け、Cが1であるか否かを判定するため
の比較器110およびCが2であるか否かを判定するた
めの比較器112と、それぞれ比較器110の出力信号
線124、比較器112の出力信号線126、およびカ
ウント値Cを受けるNOTゲート114、116および
118と、NOTゲート114の出力信号線128およ
びカウント値Cと、NOTゲート116および118の
出力信号線132および134とをそれぞれ入力とする
ANDゲート120および120とを含む。
【0046】乗算入力選択信号第2生成部102は、カ
ウント値Cの値に応じて信号を出力するためのデコーダ
137と、デコーダ137より出力される信号に応じて
eレジスタの指定のビットの値を出力するための指数ビ
ットデータ選択器136と、それぞれ指数ビットデータ
選択器136の出力信号線138、比較器110の出力
信号線124、比較器112の出力信号線126および
カウント値Cを受けるNOTゲート142、148、1
50および154と、ANDゲート140、152およ
び163と、ORゲート146および156とを含む。
【0047】終了フラグ生成部108は、デコーダ13
7からの選択信号に応じてeレジスタ78の値のうち所
定のビット間で論理和を取った値と、固定値0と、固定
値1とのうちいずれか1つの値を選択し出力するための
指数論理和データ選択器168と、指数論理和データ選
択器168の出力に接続された入力を有するNOTゲー
ト170とを含む。
【0048】書込み信号第1生成部104は、カウント
値Cを受けるNOTゲート178と、NOTゲート17
8の出力信号線182および書込み信号第2生成部10
6からの信号を受けるANDゲート180とを含む。
【0049】書込み信号第2生成部106は、指数論理
和データ選択器168の出力を記憶するためのラッチ1
72と、ラッチ172の出力およびカウント値Cを受け
るANDゲート176とを含む。なおラッチ172の出
力は前述の書込み信号第1生成部104のANDゲート
180に与えられる。
【0050】各部は以下のように動作する。デコーダ1
37は、カウント値Cが2i+1または2i+2(iは
0以上の整数)のとき、指数ビットデータ選択器136
の出力としてe<i>を選択するための信号を出力す
る。たとえばカウント値Cが3(=2×1+1)のとき
は、C<1>を選択するための信号を出力する。また、
カウント値Cが2i+1または2i+2(iは0以上の
整数)のとき、指数論理和データ選択器168の出力と
してe<N−1:i+1>の論理和を選択するための信
号を出力する。ここで、e<m:n>の論理和とは、e
<m>からe<n>までの論理和を意味する。たとえ
ば、Cが3のときは、e<N−1:2>の論理和を選択
するための信号を出力する。
【0051】乗算入力選択信号第1生成部100は、カ
ウント値Cを受け、S0として、tレジスタ82の値を
選択するための信号、yレジスタ80の値を選択するた
めの信号、xレジスタ76の値を選択するための信号お
よび固定値1を選択するための信号を、信号線2A7、
2A8、2A9および2Aaよりそれぞれ出力する。信
号線2A7、2A8、2A9および2Aaは1のときア
クティブとし、ある信号線の値が1のときは他の信号線
の値は全て0となる。
【0052】たとえば、カウント値Cが1のときは、比
較器110が真となり、信号線124の値が1となる。
一方比較器112は偽となるため、信号線126の値は
0となる。カウント値Cは奇数であるため、Cの0ビッ
ト目の値C<0>は1となる。このため、信号線130
の値は1となる。信号線128の値は、信号線124の
値(1)のNORゲート114通過後の値すなわち0と
なる。信号線132の値は、信号線126の値(0)の
NORゲート116通過後の値すなわち1となる。信号
線134の値は、信号線130の値(1)のNOTゲー
ト118通過後の値すなわち0となる。このため、信号
線2A7の値は、信号線132の値(1)と信号線13
4の値(0)とのANDゲート122通過後の値すなわ
ち0となる。信号線2A8の値は、信号線130の値
(1)と信号線128の値(0)とのANDゲート12
0通過後の値すなわち0となる。信号線2A9の値は、
信号線126の値すなわち0となる。信号線2Aaの値
は、信号線124の値すなわち1がとなる。よって、固
定値1を選択する信号のみがアクティブとなったことが
わかる。
【0053】カウント値Cが2の場合には、比較器11
2が真となり、信号線126の値が1となる。カウント
値Cが偶数の場合には、C<0>が0となり、信号線1
30の値が0となる。カウント値Cを変化させたときの
信号線2A7、2A8、2A9および2Aaの値を表1
にまとめる。表1に示すように信号線2A7、2A8、
2A9および2Aaの値は排他的であることがわかる。
【0054】
【表1】
【0055】乗算入力選択信号第2生成部102は、カ
ウント値Cおよびeレジスタ78の値を受け、S1とし
て、tレジスタ82の値を選択するための信号、xレジ
スタ76の値を選択するための信号および固定値1を選
択するための信号を、信号線2A4、2A5および2A
6よりそれぞれ出力する。信号線2A4、2A5および
2A6は1のときアクティブとし、ある信号線の値が1
のときは他の信号線の値は全て0となる。
【0056】たとえば、カウント値Cが3の場合には、
eレジスタ78の1ビット目の値e<1>を選択するた
めの信号が、デコーダ137より出力される。そのため
信号線138の値はe<1>となる。ここで、e<1>
が0とすると、信号線158の値は、信号線138の値
(0)のNOTゲート142通過後の値すなわち1とな
る。
【0057】カウント値が3であれば、これは1または
2のいずれでもないため、比較器110および比較器1
12の出力である信号線124の値および信号線126
の値はそれぞれ0となる。よって、信号線160の値は
信号線124の値(0)のNOTゲート148通過後の
値すなわち1となり、信号線162の値は信号線126
の値(0)のNOTゲート150通過後の値すなわち1
となる。
【0058】カウント値C=3は奇数であるため、Cの
0ビット目の値C<0>は1となる。このため、信号線
130の値は1となる。信号線164の値は、信号線1
30の値(1)のNOTゲート154通過後の値すなわ
ち0となる。
【0059】信号線166の値は、信号線138の値
(0)と信号線164の値(0)とのORゲート156
通過後の値すなわち0となる。信号線164の値は、信
号線124の値(0)と、信号線138の値(0)との
ANDゲート163通過後の値すなわち0となる。
【0060】信号線2A4の値は、信号線166の値
(0)と、信号線162の値(1)と、信号線160の
値(1)とのANDゲート152通過後の値すなわち0
となる。信号線2A5の値は、信号線126の値(0)
と、信号線164の値(0)とのORゲート146通過
後の値すなわち0となる。信号線2A6の値は、信号線
158の値(1)と、信号線130の値(1)とのAN
Dゲート140通過後の値すなわち1となる。よって、
固定値1を選択する信号のみがアクティブとなったこと
がわかる。
【0061】終了フラグ生成部108の動作について説
明する。信号線2A1の値すなわち終了フラグの値は、
指数論理和データ選択器168より出力される値のNO
Tゲート170通過後の値である。よって、論理和が0
のとき終了フラグを1にセットする。すなわち、現在処
理中のビットより上位のビットが全て0であれば、終了
フラグを1にセットし処理を終了させる。たとえば、e
レジスタ78の値が2進数表現で00010110とす
る。カウント値Cが7であれば、e<7:4>の論理和
(1)が指数論理和データ選択器168より出力され
る。よって終了フラグは0となり、処理が終了していな
いことを示す。カウント値が9であれば、e<7:5>
の論理和(0)が指数論理和データ選択器158より出
力される。よって終了フラグは1となり、処理が終了し
たことを示す。
【0062】書込み信号第1生成部104は以下のよう
に動作する。信号線182の値は、C<0>の値のNO
Tゲート178通過後の値である。すなわち、カウント
値Cが偶数のとき1となり、カウント値Cが奇数のとき
0となる。信号線2A3の値は、ラッチ172の値と、
信号線182の値とのANDゲート180通過後の値で
ある。ラッチ172には、カウント値がC−1のときの
指数論理和データ選択器168の出力が記憶されてい
る。よって、信号線2A3の値は、カウント値Cが偶数
かつカウント値C−1(=2i+1)のときのe<N−
1:i+1>の論理和が1のとき1となり、MPY74
の演算結果Yをtレジスタ82に書込むための書込み信
号73がアクティブになる。たとえば、eレジスタ78
の値が2進数表現で00010110とする。カウント
値Cが8であればラッチ172にはカウント値Cが7の
ときの指数論理和データ選択器168の出力であるe<
N−1:4>の論理和(1)が保持されている。また、
カウント値Cは偶数であるため信号線182の値は1な
る。
【0063】書込み信号第2生成部106の動作につい
て説明する。信号線2A2の値は、ラッチ172に記憶
された値と、C<0>の値とのANDゲート176通過
後の値である。よって、カウント値Cが奇数かつカウン
ト値C−1(=2×i)のときのe<N−1:i+1>
の論理和が1のとき1となり、MPY74の演算結果Y
をyレジスタ80に書込むための書込み信号71および
MPY74の演算フラグFをfレジスタ84に書込むた
めの書込み信号75がアクティブになる。たとえば、e
レジスタ78の値が2進数表現で00010110とす
る。カウント値Cが7であればラッチ172にはe<N
−1:4>の論理和(1)が保持されている。またカウ
ント値Cは奇数であるので2A2の値は1となる。
【0064】図5を参照して、演算プロセッサ40の処
理の流れについて説明する。この例では、eレジスタ7
8は8ビットとする。また、カウンタ92の出力するカ
ウント値Cは、処理のステップ数に対応している。奇数
ステップでは、累乗演算制御部66は、eレジスタ78
の値をLSBから順にビットが1か否かをチェックし、
MPY74の入力データS0およびS1の選択制御を行
なう。第1ステップではS0として固定値1を選択し、
それ以後の奇数ステップではS0としてyレジスタ80
の値を選択する。S1の選択については、eレジスタの
チェックすべきビットiの値e<i>が0ならば1を選
択し、1ならばtレジスタ82の値を選択する。ただし
第1ステップのみe<0>が1ならばxレジスタ76の
値を選択する。各入力データS0およびS1を選択した
後、MPY74で乗算を行ない、演算結果をyレジスタ
80に記憶する。また同時にチェックしたeレジスタの
ビット位置よりも上位のビットのNORを取り、NOR
が1(すべてのビットが0)の場合には、終了フラグを
セットし、演算を終了させる。
【0065】偶数ステップでは、MPY74の入力デー
タS0とS1とは同じものを選択する。第2ステップの
乗算のみxレジスタ76の値を選択し、以後の偶数ステ
ップではtレジスタ82の値を選択する。これにより、
選択した値の2乗を演算し、演算結果をtレジスタ82
に記憶する。
【0066】演算フラグFのfレジスタ84への書込み
は、偶数ステップの乗算の場合には前フラグデータをホ
ールドし、奇数ステップの乗算の場合には書込むように
累乗演算制御部66が制御を行なう。たとえば浮動小数
点データ演算装置を持つ演算プロセッサでは、結果がオ
ーバーフローやアンダーフローした場合には、フラグを
生成して演算プロセッサのシーケンス制御部に伝え、割
込みを発生させる場合がある。偶数ステップの2乗演算
結果が累乗演算に直接使われるか否かは整数指数データ
レジスタの各ビットの値に依存している。たとえば2乗
演算がオーバーフローしたからといって、その後求めよ
うとする累乗演算にこの累乗演算結果を用いない場合に
は、累乗演算結果はオーバーフローしない。よって偶数
ステップの演算によって乗算器から生成される演算フラ
グがそのままシーケンス制御部に伝えられると、誤った
割り込みが発生する場合が起こり得る。一方、奇数ステ
ップの乗算の演算結果は、求めようとする累乗演算結果
の部分積であるので、累乗演算の中間データのフラグと
して正しいものが生成されている。よってシーケンス制
御部がこれを受取っても何ら問題にならない上に、途中
でオーバーフローが発生すれば必ず累乗演算結果もオー
バーフローするので、シーケンス制御部に対してより早
くフラグ生成をすることができる。
【0067】たとえば、xレジスタ76の値がaで、e
レジスタ78の値が2進数表現で00000011の場
合、すなわちa3 を求める場合を考える。第1ステップ
では、e<0>=1であるので、S0として1を選択
し、S1としてaを選択する。S0とS1との乗算結果
aがyレジスタ80に記憶される。終了フラグの値すな
わちe<7:1>のNORは0であるため処理は終了さ
せない。第2ステップでは、e<7:1>のNORは0
であるのでS0およびS1としてaを選択し、MPY7
4によりaの2乗が演算され、その演算結果がtレジス
タ82に記憶される。第3ステップでは、e<1>=1
であるので、S0としてyレジスタ80の値aが選択さ
れ、S1としてtレジスタ82の値a2 が選択される。
MPY74によりaとa2 の積が演算され、その演算結
果a3 がyレジスタ80に記憶される。このときe<2
>からMSB(most significant b
it)のe<7>は全て0である。このため、以後乗算
を行なってもyレジスタ80の値は変化せず、実質的に
累乗演算は、このステップで終了している。したがっ
て、演算をここで終了させ以降の乗算の繰返しを行なわ
なくするとともに、e<2>からe<7>までのNOR
によって終了フラグをセットする。
【0068】以上のような演算プロセッサ40により、
中間結果用データレジスタを備えて入力データの2乗計
算と交番させながら、eレジスタ78をLSBから順次
ビットチェックしてMPY74への入力選択を行なうこ
とにより累乗演算を実施する。また、入出力選択制御に
用いるビットよりも上位のビットのNORをとることに
よって累乗演算の終了を検出して乗算の繰返しを終了さ
せるとともに終了フラグを生成する。よって、MPY7
4への少ない付加回路で、指数が整数である累乗演算を
高速に実行することができる。
【0069】さらに、MPY74の演算フラグFの書込
み制御を行なうので、シーケンス制御部46などへ演算
フラグFの報告を正確かつ早く行なうことができる。 [実施の形態2]図6から8を参照して、本発明の第2
の実施の形態に係る演算プロセッサ190について説明
する。
【0070】演算プロセッサ190は、図1において、
演算装置42の代わりに演算装置192を用い、演算装
置制御部64の代わりに演算装置制御部194を用い、
累乗演算制御部66の代わりに累乗演算制御部196を
用い、MPYU58の代わりにMPYU198を用いた
ものである。他の部分は図1に示されるものと同一であ
るから、それらについての説明は繰返さない。
【0071】図6を参照して、MPYU198は、処理
を2段に分割して2つの入力データS0およびS1の積
を求め結果Yを出力するためのMPY120と、MPY
120に接続され累乗演算制御部196より出力される
書込み信号71に従ってMPY120の演算結果Yを記
憶するためのyレジスタ80と、MPY120に接続さ
れ累乗演算制御部196より出力される書込み信号73
に従ってMPY74の演算結果Yを記憶するためのtレ
ジスタ82と、MPY120に接続され累乗演算制御部
196より出力される書込み信号75に従ってMPY1
20の演算フラグFを記憶するためのfレジスタ84
と、yレジスタ80、xレジスタ76、固定値1および
tレジスタ82の出力を受け累乗演算制御部196より
出力される乗算入力選択信号69に従ってこれら4つの
出力のうち1つを選択し入力データS0としてMPY1
20に与えるための第1の乗算入力選択器70と、xレ
ジスタ76、固定値1およびtレジスタ82の出力を受
け累乗演算制御部196より出力される乗算入力選択信
号69に従ってこれら3つの出力のうち1つを選択し入
力データS1としてMPY120に与えるための第2の
乗算入力選択器72とを含む。
【0072】MPY120は、乗算のうち前段の処理を
行なうための第1乗算器122と、第1乗算器122の
演算結果を保持するためのPR(パイプラインレジス
タ)124と、PR124の値を受け後段の処理を行な
うための第2乗算器126とを含む。
【0073】演算フラグFは、実施の形態1と同様であ
る、ためその説明は繰返さない。累乗演算制御部196
は、図3に示されるデコーダ94の代わりに図7に示さ
れるデコーダ200を用いたものである。
【0074】図7を参照して、デコーダ200は、MP
Y120の入力データS0を選択するための乗算入力選
択信号69を生成するための乗算入力選択信号第1生成
部100と、MPY120の入力データS1を選択する
ための乗算入力選択信号69を生成するための乗算入力
選択信号第2生成部212と、書込み信号73を生成す
るための書込み信号第1生成部216と、書込み信号7
1および75を生成するための書込み信号第2生成部2
14と、終了フラグを生成するための終了フラグ生成部
218とを含む。
【0075】乗算入力選択信号第1生成部100の構成
は、実施の形態1で説明したため、ここでは繰返さな
い。
【0076】乗算入力選択信号第2生成部212は、カ
ウント値Cの値に応じて信号を出力するためのデコーダ
137と、デコーダ137より出力される信号に応じて
eレジスタ78の指定のビットの値を出力するための指
数ビットデータ選択器136と、ANDゲート140、
222および152と、ORゲート146および228
と、NOTゲート230、232、234および236
とを含む。
【0077】終了フラグ生成部218は、デコーダ13
7からの選択信号に応じてeレジスタ78の値のうち所
定のビット間で論理和を取った値と、固定値0と、固定
値1とのうちいずれか1つを選択し出力するための指数
論理和データ選択器168と、指数論理和データ選択器
168の出力を受けその値を一定期間保持するためのラ
ッチ254と、ラッチ254の出力を受けその値を反転
するためのNOTゲート252とを含む。
【0078】書込み信号第1生成部216は、ANDゲ
ート262と、ラッチ264とを含む。
【0079】書込み信号第2生成部214は、NOTゲ
ート256と、ANDゲート258と、ラッチ260と
を含む。
【0080】次に各部の動作説明を行なう。MPY12
0は、2つの入力データS0およびS1の乗算を行な
う。入力データS0は、yレジスタ80の値、tレジス
タ82の値、xレジスタ76の値または固定値1のいず
れかから、累乗演算制御部196より出力される乗算入
力選択信号69に従い乗算入力選択器70により選択さ
れる。入力データS1は、tレジスタ82の値、xレジ
スタ76の値または固定値1のいずれかから、累乗演算
制御部196より出力される乗算入力選択信号69に従
い乗算入力選択器72により選択される。MPY120
は、1つの乗算を2段に分けてパイプライン処理するた
め、ある乗算の後半部の処理が第2乗算器126で処理
されている時に、それと並行して次の乗算の前半部の処
理が第1乗算器122で処理されるように動作する。
【0081】デコーダ137の動作は、実施の形態1に
おいて説明したため、ここでは繰返さない。
【0082】乗算入力選択信号第1生成部100の動作
は、実施の形態1で説明したため、ここでは繰返さな
い。
【0083】乗算入力選択信号第2生成部212は、カ
ウント値Cおよびeレジスタ78の値を受け、S1とし
て、tレジスタ82の値を選択するための信号、xレジ
スタ76を選択するための信号および固定値1を選択す
るための信号を、信号線2A4、2A5および2A6よ
りそれぞれ出力する。信号線2A4、2A5および2A
6は1のときアクティブとし、ある信号線の値が1のと
きは他の信号線の値は全て0となる。
【0084】たとえば、カウント値Cが4の場合には、
eレジスタ78の2ビット目の値e<1>を選択するた
めの信号が、デコーダ137より出力される。そのため
信号線138の値はe<1>となる。ここで、e<1>
が0とすると、信号線240の値は、信号線138の値
(0)のNOTゲート232通過後の値すなわち1とな
る。
【0085】カウント値Cは1または2のいずれでもな
いため、比較器110および比較器112の出力である
信号線124の値および信号線126の値はそれぞれ0
となる。よって、信号線242の値は信号線124の値
(0)のNOTゲート234通過後の値すなわち1とな
り、信号線244の値は信号線126の値(0)のNO
Tゲート236の値すなわち1となる。
【0086】カウント値Cは偶数であるため、Cの0ビ
ット目の値C<0>は0となる。このため、信号線13
0の値は0となる。信号線248の値は、信号線130
の値(0)のNOTゲート230通過後の値すなわち1
となる。
【0087】信号線246の値は、信号線138の値
(0)と、信号線126の値(0)とのANDゲート2
22通過後の値すなわち0となる。信号線250の値
は、信号線138の値(0)と、信号線130の値
(0)とのORゲート228通過後の値すなわち0とな
る。
【0088】信号線2A4の値は、信号線250の値
(0)と、信号線244の値(1)と、信号線242の
値(1)とのANDゲート152通過後の値すなわち0
となる。信号線2A5の値は、信号線124の値(0)
と、信号線246の値(0)とのORゲート146通過
後の値すなわち0となる。信号線2A6の値は、信号線
240の値(1)と、信号線248の値(1)とのAN
Dゲート140通過後の値すなわち1となる。よって、
固定値1を選択する信号のみがアクティブとなったこと
がわかる。
【0089】終了フラグ生成部218の動作について説
明する。信号線2A1の値すなわち終了フラグの値は、
ラッチ254に記憶されている値のNOTゲート252
通過後の値が出力される。カウント値がCとすると、ラ
ッチ254にはカウント値C−1のときに指数論理和デ
ータ選択器168より出力される値が保持されている。
たとえば、eレジスタ78の値が2進数表現で0001
0110とする。カウント値Cが8であれば、ラッチ2
54には、カウント値Cが7のとき指数論理和データ選
択器168より出力されるe<7:4>の論理和すなわ
ち1が保持されている。よって終了フラグは0となり、
処理が終了していないことを示す。カウント値が10で
あれば、ラッチ254にはe<7:5>の論理和すなわ
ち0が保持されている。よって終了フラグは1となり、
処理が終了したことを示す。
【0090】書込み信号第1生成部216の動作につい
て説明する。ラッチ264には、ラッチ254の値と信
号線130の値とのANDゲート262通過後の値が一
定期間保持される。よって、カウント値がCの場合、信
号線2A3の値は、カウント値C−1が奇数でかつカウ
ント値がC−2のとき指数論理和データ選択器168よ
り出力される値が1のとき1となる。たとえば、eレジ
スタ78の値が2進数表現で00010110とする。
カウント値Cが10であれば、信号線2A3の値は、カ
ウント値Cが9のときの信号線130の値(1)と、指
数論理和データ選択器168からの出力e<7:4>の
論理和(1)とのANDゲート262通過後の値すなわ
ち1となる。このため、書込み信号73は1となり、t
レジスタ82は書込み可能となる。カウント値が12で
あれば、信号線2A3の値は、カウント値Cが11のと
きの信号線130の値(1)と、指数論理和データ選択
器168からの出力e<7:5>の論理和(0)とのA
NDゲート262通過後の値すなわち0となる。このた
め、書込み信号73は0となり、tレジスタ82は書込
み不可能となる。
【0091】書込み信号第2生成部214の動作につい
て説明する。ラッチ260には、ラッチ254の値と、
信号線130の値のNOTゲート256通過後の値との
ANDゲート258通過後の値が一定期間保持される。
よって、カウント値がCの場合、信号線2A2の値は、
カウント値C−1が偶数でかつカウント値C−2のとき
指数論理和データ選択器168より出力される値が1の
とき1となる。たとえば、eレジスタ78の値が2進数
表現で00010110とする。カウント値Cが9であ
れば、信号線2A2の値は、カウント値Cが8のときの
信号線130の値(0)のNOTゲート256通過後の
値(1)と、指数論理和データ選択器168からの出力
e<7:4>の論理和(1)とのANDゲート258通
過後の値すなわち1となる。このため、書込み信号71
および75は1となり、yレジスタ80およびfレジス
タ84は書込み可能となる。カウント値Cが11であれ
ば、信号線2A2の値は、カウント値Cが10のときの
信号線130の値(0)のNOTゲート256通過後の
値(1)と、指数論理和データ選択器168からの出力
e<7:5>の論理和(0)とのANDゲート258通
過後の値すなわち0となる。このため、書込み信号71
および75は0となり、yレジスタ80およびfレジス
タ84は書込み不可能となる。
【0092】図8を参照して、演算プロセッサ190の
処理の流れについて説明する。この例では、eレジスタ
78の値は8ビットとする。また、カウンタ92の出力
するカウンタ値Cは、処理のステップ数に対応してい
る。累乗演算制御部196は、奇数ステップとして、M
PY120を用いてtレジスタ82の値の2乗を計算
し、その結果をtレジスタ82に書込むように入出力の
選択制御を行なう。但し、第1ステップのみxレジスタ
76の値の2乗を計算し、その結果をtレジスタ82に
書込む。
【0093】第2ステップではS0として固定値1を選
択し、それ以後の偶数ステップではS0としてyレジス
タ80の値を選択する。S1の選択については、eのL
SBから順に各ビットの値が1か否かをチェックし、ビ
ットの値が0ならばS1として1を選択し、ビットの値
が1ならばS1としてtレジスタ82の値を選択する。
但し、第2ステップのみe<0>が1ならばxレジスタ
76の値を選択する。S0とS1との乗算を実行し、結
果をyレジスタに書込む。
【0094】たとえば、xレジスタ76の値がaで、e
レジスタ78の値が2進数表現で00000101の場
合、すなわちa5 を求める場合を考える。第1ステップ
ではxレジスタ76の値の2乗すなわちa2 を計算し、
結果をtレジスタ82に書込む。第2ステップでは、S
0として固定値1を選択し、e<0>が1であるので、
S1としてxレジスタの値aを選択する。S0とS1と
の積を計算し、結果すなわちaをyレジスタ80に書込
む。終了フラグの値すなわちe<7:1>のNORは0
であるため処理は終了させない。第3ステップでは、t
レジスタ82の値すなわちa2 の2乗を計算し、結果す
なわちa4 をtレジスタ82に書込む。第4ステップで
は、S0としてyレジスタの値すなわちaを選択し、e
<1>が0であるので、S1として固定値1を選択す
る。S0とS1との積を計算し、結果すなわちaをyレ
ジスタ80に書込む。終了フラグの値すなわちe<7:
2>のNORは0であるため処理は終了させない。第5
ステップでは、tレジスタ82の値すなわちa4 の2乗
を計算し、結果すなわちa8 をtレジスタ82に書込
む。第6ステップでは、S0としてyレジスタ80の値
すなわちaを選択し、e<2>が1であるので、S1と
しtレジスタ82の値すなわちa4 を選択する。ここ
で、tレジスタ82の値が第5ステップの結果a8 でな
いのは次の理由による。すなわち、奇数のステップと偶
数のステップとは並列処理されており、第6ステップの
開始時には、第5ステップの処理は終了していない。こ
のため、tレジスタ82には、第3ステップの結果すな
わちa4 が記憶されているためである。次に、S0とS
1との積を計算し、結果すなわちa5 をyレジスタ80
に書込む。終了フラグの値すなわちe<7:3>のNO
Rは1であるため処理を終了させ、終了フラグをセット
する。
【0095】上記した各ステップの乗算は、2段の処理
に分割され、奇数回目の乗算の前半部の処理が第1乗算
器122で処理されているときには、偶数回目の乗算の
後半部の処理が第2乗算器126で並行に処理される。
逆に、奇数回目の乗算の後半部の処理が第2乗算器12
6で処理されているときには、偶数回目の乗算の前半部
の処理が第1乗算器122で処理される。乗算をパイプ
ライン分割しないで実行した場合の演算時間をTとし、
乗算を2段に分割して実行した場合の演算時間の大きい
方のステージの演算時間をT’とした場合、T’<Tで
ある。本実施の形態では、T’時間毎に乗算結果を得る
ことができる。したがって、MPY120の演算効率が
高くなり、所望の累乗演算を高速に得ることができる。
【0096】以上のような演算プロセッサ190によ
り、2段パイプライン構成のMPY120を用い、中間
結果を保持するためのyレジスタ80およびtレジスタ
82を備えて、xレジスタ76の値の2乗計算と交番さ
せながら、eレジスタ78の値をLSBから順次ビット
チェックしながらMPY120への入力選択を行なうこ
とにより累乗演算を実施した。このため、MPY120
への少ない付加回路で、指数が整数である累乗演算を高
速に実行することができる。 [実施の形態3]図9から13を参照して、本発明の第
3の実施の形態に係る演算プロセッサ270について説
明する。
【0097】図9を参照して、演算プロセッサ270
は、命令を記憶するためのインストラクションメモリ4
8と、データを記憶するためのメモリ52およびレジス
タファイル54と、インストラクションメモリ48から
データを読み出しながらプロセッサ全体の制御を行なう
ためのシーケンス制御部46と、シーケンス制御部46
の命令に従いメモリ52またはレジスタファイル54か
らデータを読み出すためのアドレスおよびメモリ52ま
たはレジスタファイル54にデータを書込むためのアド
レスを発生させるためのアドレス発生装置50と、外部
とのデータのやり取りを行なうための入出力インターフ
ェイス44と、データおよび命令を転送するための通路
であるバス68と、各種演算を実行するための演算装置
272とを含む。
【0098】演算装置272は、論理演算を行なうため
のALU56と、乗算を行なうためのMPYU280
と、平方根演算を行なうためのSQRTU278と、除
算を行なうための除算装置62と、各種演算装置の制御
を行なうための演算装置制御部274とを含む。
【0099】演算装置制御部274は、シーケンス制御
部46から命令を受け、小数指数の累乗演算を行なうた
めの制御を行ない、かつシーケンス制御部46に累乗演
算が終了したことを示す終了フラグを送信するための累
乗演算制御部276を含む。
【0100】レジスタファイル54は、基数データを記
憶するためのxレジスタ76と、Nビットの小数指数デ
ータを記憶するためのeレジスタ290とを含む。
【0101】図10を参照して、SQRTU278は、
入力データSの平方根を求め結果YSを出力するための
SQRT(平方根演算器)294と、SQRT294に
接続され累乗演算制御部276より出力される書込み信
号310に従ってSQRT296の演算結果YSを記憶
するためのtレジスタ296と、xレジスタ76および
tレジスタ296の出力を受け累乗演算制御部276よ
り出力される平方根演算入力選択信号308に従ってこ
れら2つの出力のうち1つを選択し入力データSとして
SQRT294に与えるための平方根演算入力選択器2
92とを含む。
【0102】MPYU280は、2つの入力データS0
およびS1の積を求め結果YMを出力するためのMPY
302と、MPY302に接続され累乗演算制御部27
6より出力される書込み信号71に従ってMPY302
の演算結果YMを記憶するためのyレジスタ80と、M
PY302に接続され累乗演算制御部276より出力さ
れる書込み信号75に従ってMPY302の演算フラグ
Fを記憶するためのfレジスタ82と、tレジスタ29
6および固定値1の出力を受け累乗演算制御部276よ
り出力される乗算入力選択信号312に従ってこれら2
つの入力のうち1つを選択し入力データS0としてMP
Y302に与えるための第1の乗算入力選択器298
と、固定値1およびyレジスタ80の出力を受け累乗演
算制御部276より出力される乗算入力選択信号300
に従ってこれら2つの入力のうち1つを選択し入力デー
タS1としてMPY302に与えるための第2の乗算入
力選択器300とを含む。
【0103】演算フラグFは、実施の形態1と同様であ
るため、その説明は繰返さない。図11を参照して、累
乗演算制御部276は、デコーダ320と、カウンタ3
22と、デコーダ324とを含む。
【0104】デコーダ320は、シーケンス制御部46
からの累乗演算命令およびデコーダ324からの終了フ
ラグをそれぞれを受け、カウンタ322の制御を行な
う。カウンタ322は、デコーダ320からの信号を受
け、カウント値Cをセットする。デコーダ324は、カ
ウンタ322より出力されるカウント値Cおよびeレジ
スタ290の値を受け、eレジスタ290の各ビットの
チェックを行ないながら、SQRT294の入力データ
Sを選択するための平方根演算入力選択信号308なら
びにMPY302の入力データS0およびS1を選択す
るための乗算入力選択信号312を出力する。また、S
QRT294の演算結果YSをtレジスタ296に書込
むための書込み信号310と、MPY302の演算結果
YMをyレジスタ80に書込むための書込み信号71
と、MPY302の演算フラグFをfレジスタ82に書
込むための書込み信号75とを出力する。また、処理が
終了したことを示す終了フラグをシーケンス制御部46
およびデコーダ320にそれぞれ送信する。
【0105】デコーダ324は、SQRT294の入力
データSを選択するための平方根演算入力選択信号30
8を生成するための平方根演算入力選択信号生成部32
6と、MPY302の入力データS0を選択するための
乗算入力選択信号312を生成するための乗算入力選択
信号第1生成部328と、MPY302の入力データS
1を選択するための乗算入力選択信号312を生成する
ための乗算入力選択信号第2生成部329と、書込み信
号310、書込み信号71、書込み信号75および終了
フラグを生成するための信号生成部330と、カウンタ
322の出力Cを受けCが1か否かを判定するための比
較器110と、デコーダ323とを含む。
【0106】平方根演算入力選択信号生成部326は、
比較器110の出力を受けるNOTゲート360を含
む。
【0107】乗算入力選択信号第1生成部328は、デ
コーダ323より出力される信号に応じてeレジスタの
指定ビットの値を出力するための指数ビットデータ選択
器136と、指数ビットデータ選択器136の出力を受
けるNOTゲート342と、NOTゲート342の出力
および指数ビット選択器136の出力をそれぞれ受ける
ラッチ344とおよび346とを含む。
【0108】乗算入力選択信号第2生成部329は、比
較器110の出力およびNOTゲート360の出力をそ
れぞれ受けるラッチ358および360を含む。
【0109】信号生成部330は、デコーダ323から
の選択信号に応じてeレジスタ290の値のうち所定の
ビット間で論理和を取った値と、固定値0と、固定値1
とのうちいずれか1つを選択し出力するための指数論理
和データ選択器168と、指数論理和データ選択器16
8の出力を受け、その値を一定期間保持するためのラッ
チ354と、ラッチ354の出力を受けその値を反転す
るためのNOTゲート352と、ラッチ354の出力を
受けさらにその値を一定期間保持するためのラッチ35
0とを含む。次に、各部の動作説明を行なう。
【0110】デコーダ323は、カウント値Cがi(i
は自然数)のとき、指数ビット選択器136の出力とし
てe<i−1>を選択するための信号を出力する。たと
えば、Cが3のときは、C<2>を選択するための信号
を出力する。また、カウント値Cがiのとき、指数論理
和データ選択器168の出力としてe<N−1:i>の
論理和を選択するための信号を出力する。たとえば、C
が3のときは、e<N−1:3>の論理和を選択するた
めの信号を出力する。
【0111】平方根演算入力選択信号生成部326は、
カウント値Cが1か否かに応じて、Sとして、xレジス
タ76の値を選択するための信号およびtレジスタ29
6の値を選択するための信号を、信号線SB9およびS
B8よりそれぞれ出力する。平方根演算入力選択信号3
08は、信号線SB9およびSB8よりなる。それぞれ
の信号線は1のときアクティブとし、一方の信号線の値
が1のときは、他方の信号線の値は0となる。カウント
値Cが1のときは、信号線2B9の値は1となり、信号
線2B8の値は0となる。カウント値Cが1以外のとき
は、信号線2B9の値は0となり、信号線2B8の値は
1となる。
【0112】乗算入力選択信号第1生成部328は、デ
コーダ323より出力される信号に応じて指数ビットデ
ータ選択器136より出力される値を受け、S0とし
て、tレジスタ296の値を選択するための信号および
固定値1を選択するための信号を、信号線2B4および
2B5よりそれぞれ出力する。それぞれの信号は1のと
きアクティブとし、一方の信号線の値が1のときは、他
方の信号線の値は0となる。カウント値がCのとき、信
号線2B4の値はカウント値がC−1のときの指数ビッ
トデータ選択器136の出力値となり、信号線2B5の
値はカウント値がC−1の指数ビットデータ選択器13
6の出力値のNOTゲート342通過後の値となる。た
とえば、カウント値Cが3のとき、信号線2B4の値は
カウント値Cが2のときの指数ビットデータ選択器13
6の出力値e<1>となり、信号線2B5の値はe<1
>の否定値となる。
【0113】乗算入力選択信号第2生成部329は、カ
ウント値Cを受け、S1としてyレジスタ80の値を選
択するための信号および固定値1を選択するための信号
を、信号線2B6および2B7よりそれぞれ出力する。
それぞれの信号線は1のときアクティブとし、一方の信
号線の値が1のときは、他方の信号線の値は0となる。
カウント値がCのとき、信号線SB6の値はカウント値
がC−1のときの比較器110のNOTゲート360通
過後の値となり、信号線SB7の値はカウント値がC−
1のときの比較器110の出力となる。すなわち、カウ
ント値Cが2のときは、信号線2B6の値は0となり、
信号線2B7の値は1となる。カウント値Cが2以外の
ときは、信号線2B6の値は1となり、信号線2B7の
値は0となる。
【0114】信号生成部330は、指数論理和データ選
択器168より出力される値を受け、終了フラグを信号
線2B1より出力し、書込み信号310を2B2より出
力し、書込み信号71および75を信号線2B3より出
力する。カウント値をCとした場合、信号線2B1の値
はカウント値がC−1のときの指数論理和データ選択器
168より出力される値のNOTゲート352通過後の
値となり、信号線2B2の値はカウント値がC−1のと
きの指数論理和データ選択器168より出力される値と
なり、信号線2B3の値はカウント値がC−2のときの
指数論理和データ選択器168より出力される値とな
る。たとえば、カウント値Cが5のとき、信号線2B1
の値は、カウント値Cが4のときの指数論理和データ選
択器168より出力される値すなわちe<7:3>の論
理和となる。
【0115】図12を参照して、小数指数の累乗演算方
法について説明する。累乗演算における指数データeが
N(=n+1)桁の1以下の小数で、2進数表現のMS
Bが小数第1位とすると、eを2進数および10進数表
現で記述すると数1のようになり、xのe乗は数2のよ
うに底xの(1/2)乗、すなわち平方根を用いて展開
できる。
【0116】
【数1】
【0117】
【数2】
【0118】演算の流れは、図12のフローのように平
方根を繰返し計算する(S6)。また、出力変数にそれ
を乗ずる(S10)か否かを指数データのビット判定
(S8)によって制御する。それを、小数指数データe
の2進数表現での桁数(n)回繰返すことにより(S
4、S12)、累乗結果を得る。
【0119】たとえば、eを2進数4桁(n=4)と
し、 e=e<0>e<1>e<2>e<3>(2進数) =1001(2進数) =0.5625(10進数) の場合、すなわちx0.5625の演算のフローを説明する。
【0120】まず、変数t、y、iを用意し、初期値と
してt=x、y=1、i=0とする(S2)。tは一時
変数、yは最終的な結果が得られる変数、iはループカ
ウンタおよび指数データの桁位置ポインタとして用い
る。指数は小数第1位がe<0>とする。
【0121】1回目のループでは、iはn(=4)以下
なので(S4でtrue)、xの平方根(x0.5 )を求
めてtに与える(S6)。そしてeの小数第1位をチェ
ックし1であるので(S8でtrue)、tとy(=
1)とを乗算し、結果のx0.5をyに与える(S1
0)。カウンタを1進めて次のループに移る(S1
2)。
【0122】2回目のループでは、変数t(x0.5 )の
平方根(x0.25)を求めてtに与える(S6)。そして
小数第2位e<1>をチェックし0であるので(S8で
false)、カウンタを1進めて次のループに移る
(S12)。
【0123】3回目のループでは、2回目と同様にし
て、変数t(x0.25)の平方根(x0. 125 )を求めてt
に与え(S6)、小数第3位e<2>=0であるので
(S8でfalse)、カウンタを1進めて次のループ
に移る(S12)。
【0124】4回目のループでは、変数t(x0.125
の平方根(x0.0625)を求めてtに与える(S6)。そ
して小数第4位e<3>をチェックし1であるので(S
8でtrue)、tとy(=x0.5 )とを乗算し(S1
0)、結果のx0.5625をyに与える(S10)。カウン
タを1進め(S12)、カウンタが終了条件を満たすの
で(S4でfalse)、処理を終了させる。
【0125】図13を参照して、演算プロセッサ270
の処理の流れについて説明する。小数指記憶するeレジ
スタ290は8ビットで構成され、 e=e<0>e<1>・・・e<7> とする。また、カウンタ322の出力するカウント値C
は、処理のステップ数に対応している。各ステップにお
いて、平方根演算と、乗算とが並列に行なわれ、終了フ
ラグの判定が行なわれる。平方根演算処理では、SQR
T294の入力Sとして、第1ステップではxレジスタ
76の値が選択され、第2ステップ以後はtレジスタ2
94の値を選択する。そして演算結果YSをtレジスタ
296に格納する。第mステップの処理が終了した時点
では、tレジスタ296にxの0.5m 乗の値が格納さ
れている。
【0126】第2ステップ以降、乗算処理も行なわれ
る。乗算処理では、eレジスタ290のMSB(e<0
>)から順にビットが1か否かをチェックされ、MPY
302の入力S0およびS1が選択される。第2ステッ
プでは、S1として1が選択さる。また、S0としてe
<0>=0ならば1が選択され、e<0>=1ならばx
の0.5乗の値を格納するtレジスタ296の値が選択
される。第kステップ(k≧3)では、S1としてyレ
ジスタ80の値が選択され、S1としてe<k−1>=
0ならば1が選択され、e<k−2>=1ならばxの
0.5k-1 乗の値を格納するtレジスタ296の値が選
択される。
【0127】第kステップでの平方根演算および乗算と
同時に、終了フラグの判定が行なわれ、eレジスタ29
0の値の(k−1)ビット目から7ビット目までの値が
すべて0であれば、終了フラグを1にセットし、処理を
このステップまでで終了する。
【0128】以上のような演算プロセッサ270によ
り、MPY302とSQRT294とをシリアル接続
し、SQRT294では入力値の平方根を繰返し演算す
る。同時にその結果をMPY302の入力とするか否か
をeレジスタ290のビットチェックにより選択制御す
ることを繰返し行なう。よって、指数が小数である累乗
演算を高速に実行することができる。 [実施の形態4]図14から17を参照して、本発明の
第4の実施の形態に係る演算プロセッサ370について
説明する。
【0129】演算プロセッサ370は、図9において、
演算装置272の代わりに演算装置372を用い、演算
装置制御部274の代わりに演算装置制御部374を用
い、累乗演算制御部276の代わりに累乗演算制御部3
76を用い、MPYU280の代わりにMPYU378
を用い、SQRTU278の代わりにSQRTU380
を用い、レジスタファイル54の代わりにレジスタファ
イル371を用い、eレジスタ290の代わりにeレジ
スタ390を用いたものである。
【0130】レジスタファイル371は、基数データを
記憶するためのxレジスタ76と、実数指数データを整
数領域eiと小数領域efとに分割して記憶するための
eレジスタ390とを含む。
【0131】演算装置制御部374は、シーケンス制御
部46から命令を受け、eレジスタに記憶された実数指
数を整数指数と小数指数とに分割して累乗演算を行なう
ための制御を行ない、かつシーケンス制御部46に累乗
演算が終了したことを示す終了フラグを送信するための
累乗演算制御部376を含む。それ以外の構成部分につ
いては図9に示されているものと同じである。同一部品
には同一の参照符号を付すこととして、その詳細な説明
は繰返さない。
【0132】図14を参照して、SQRTU380は、
入力データSの平方根を求め結果YSを出力するための
SQRT294と、SQRT294に接続され累乗演算
制御部376より出力される書込み信号404に従って
SQRT294の演算結果YSを記憶するためのtsレ
ジスタ396と、xレジスタ76およびtsレジスタ3
96の出力を受け累乗演算制御部376より出力される
平方根演算入力選択信号410に従ってこれら2つの出
力のうち1つを選択し入力データSとしてSQRT29
4に与えるための平方根演算入力選択器408とを含
む。
【0133】MPYU380は、2つの入力データS0
1およびS11の積を求め結果Y1を出力するためのM
PY74と、MPY74に接続され累乗演算制御部37
6より出力される書込み信号402に従ってMPY74
の演算結果Y1を記憶するためのymレジスタ392
と、MPY74に接続され累乗演算制御部376より出
力される書込み信号400に従ってMPY74の演算結
果Y1を記憶するためのtmレジスタ394と、ymレ
ジスタ392、xレジスタ76、固定値1およびtmレ
ジスタ394の出力を受け累乗演算制御部376より出
力される乗算入力選択信号391に従ってこれら4つの
出力のうち1つを選択し入力データS01としてMPY
74に与えるための第1の乗算入力選択器395と、x
レジスタ76、固定値1およびtmレジスタ394の出
力を受け累乗演算制御部376より出力される乗算入力
選択信号391に従ってこれら3つの出力のうち1つを
選択し入力データS11としてMPY74に与えるため
の第2の乗算入力選択器393と、2つの入力データS
02およびS12の積を求め結果Y2を出力するための
MPY302と、MPY302に接続され累乗演算制御
部376より出力される書込み信号71に従ってMPY
302の演算結果Y2を記憶するためのyレジスタ80
と、MPY302に接続され累乗演算制御部376より
出力される書込み信号75に従ってMPY302の演算
フラグFを記憶するためのfレジスタ82と、tsレジ
スタ396の出力および固定値1を受け累乗演算制御部
376より出力される乗算入力選択信号406に従って
2つの出力のうち1つを選択し入力データS02として
MPY302に与えるための乗算入力選択器397と、
ymレジスタ392およびyレジスタ80より出力され
る乗算入力選択信号406に従って2つの出力のうち1
つを選択し入力データS12としてMPY302に与え
るための乗算入力選択器398とを含む。
【0134】演算フラグFは、実施の形態1と同様であ
るため、その説明は繰返さない。図15を参照して、累
乗演算制御部376は、デコーダ420と、カウンタ4
22と、デコーダ424と、デコーダ426と、カウン
タ428と、デコーダ430とを含む。デコーダ420
は、シーケンス制御部46からの累乗演算命令およびデ
コーダ424からの終了フラグをそれぞれ受け、カウン
タ422の制御を行なう。カウンタ422は、デコーダ
420からの信号を受け、後述する繰返し処理の制御の
ためのカウント値C1をセットする。デコーダ424
は、カウンタ422より出力されるカウント値C1およ
びeレジスタ390の整数領域eiの値を受け、eiの
各ビットのチェックを行ないながら、MPY74の入力
データS01およびS11を選択するための乗算入力選
択信号391を出力する。また、MPY74の演算結果
Y1をymレジスタ392およびtmレジスタ394に
書込むための書込み信号402および400をそれぞれ
出力する。また、処理が終了したことを示す終了フラグ
をデコーダ420およびデコーダ426に送信する。デ
コーダ426は、終了フラグおよびシーケンス制御部4
6からの累乗演算命令を受け、カウンタ428の制御を
行なう。カウンタ428は、デコーダ426からの信号
を受け、カウント値C2をセットする。デコーダ430
は、カウンタ428より出力されるカウント値C2およ
びeレジスタ390の小数領域efの値を受け、efの
各ビットのチェックを行ないながら、SQRT294の
入力データSを選択するための平方根演算入力選択信号
410ならびにMPY302の入力データS02および
S12を選択するための乗算入力選択信号406を出力
する。また、SQRT294の演算結果YSをtsレジ
スタ396に書込むための書込み信号404、MPY3
02の演算結果Y2をyレジスタ80に書込むための書
込み信号71およびMPY302の演算フラグFをfレ
ジスタ82に書込むための書込み信号75をそれぞれ出
力する。また、処理が終了したことを示す終了フラグを
シーケンス制御部46へ送信する。
【0135】デコーダ424は、図4に示すデコーダ9
4の構成において、eレジスタ78の値の代わりにeレ
ジスタ390の整数領域eiの値を用い、カウンタ92
の出力Cの代わりにカウンタ422の出力C1を用い、
信号線2A2の値をymレジスタ392への書込み信号
402とし、信号線2A3の値をtmレジスタ394へ
の書込み信号400とし、信号線2A4から2Aaまで
の値をMPY74の入力S01およびS11を選択する
ため乗算入力選択器395および393に与えるための
乗算入力信号391とする。また、乗算入力選択信号3
91は、S00としてtmレジスタ394の値を選択す
るための選択信号と、S00としてymレジスタ392
の値を選択するための選択信号と、S00としてxレジ
スタ76の値を選択するための信号と、S00として固
定値1を選択するための選択信号と、S01としてtm
レジスタ394の値を選択するための選択信号と、S0
1としてxレジスタ76の値を選択するための選択信号
と、S01として固定値1を選択するための選択信号と
からなり、信号線2A7、2A8、2A9、2Aa、2
A4、2A5および2A6にそれぞれ対応づけられる。
【0136】デコーダ430は、図11に示すデコーダ
324の構成において、eレジスタ290の値の代わり
にeレジスタ390の小数領域efの値を用い、カウン
タ322の出力Cの代わりにカウンタ428の出力C2
を用い、信号線2B2の値をtsレジスタ396への書
込み信号404とし、信号線2B4から2B7までの値
をMPY302の入力S02およびS12を選択するた
めに乗算入力選択器397および398に与えるための
乗算入力信号406とし、信号線2B8および2B9の
値をSQRT294の入力Sを選択するために平方根演
算入力選択器408に与えるための平方根演算入力選択
信号410とする。また、乗算入力選択信号397は、
S02としてtsレジスタ396の値を選択するための
選択信号と、S02として固定値1を選択するための選
択信号と、S12としてyレジスタ80の値を選択する
ための選択信号と、S12としてymレジスタ392の
値を選択するための選択信号とからなり、信号線2B
4、2B5、2B6および2B7にそれぞれ対応づけら
れる。平方根演算入力選択信号410は、Sとしてxレ
ジスタ76の値を選択するための選択信号と、Sとして
tsレジスタ396の値を選択するための選択信号とか
らなり、信号線2B9および2B8にそれぞれ対応づけ
られる。
【0137】次に、各部の動作説明を行なう。累乗演算
制御部376は、シーケンス制御部46からの累乗演算
命令をデコーダ420および426で受け、カウンタ4
22からeレジスタ390の整数領域eiの値に対する
累乗演算のカウント値C1を出力し、カウンタ428か
らeレジスタ390の小数領域efの値に対する累乗演
算のカウント値C2を出力する。なお、カウンタ428
は、デコーダ426がデコーダ424から終了フラグを
受取った後、カウントを開始する。
【0138】デコーダ424および430の動作は、そ
れぞれデコーダ94および324と同様であるので、こ
こでは繰返さない。
【0139】図16および17を参照して、演算プロセ
ッサ370の処理の流れについて説明する。eレジスタ
390の整数領域eiおよび小数領域efはそれぞれ8
ビットで構成されているものとする。また、カウンタ4
22の出力するカウント値C1は、処理のステップ数に
対応している。カウンタ428の出力するカウント値C
2に14を足したものが、処理のステップ数に対応す
る。xレジスタ76の値をxとし、eレジスタ390の
値をeとし、eレジスタ390の整数領域eiの値をe
iとし、eレジスタ390の小数領域efの値をefと
する。ステップ1からステップ15では、xeiを求め、
その値をymレジスタ392に記憶する。ステップ15
からステップ23では、xefを求める。その際、ymレ
ジスタ392に記憶されている値xeiとxefとを掛け合
わせ、その値xei+ef (=xe )をyレジスタ80に記
憶する。
【0140】ステップ1から15の処理は、図5の処理
と同様であり、またステップ15から23の処理は、図
13の処理と同様である。それらについては図5および
図13を参照してすでに説明済みであるため、ここでは
繰返さない。なおステップ16でS12として固定値1
の代わりにymレジスタ392の値を用いているのは、
S02にxeiを掛け合わせるためである。
【0141】以上のようにこの演算プロセッサ370で
は、累乗演算を整数累乗演算と小数累乗演算とに分割
し、同時並列に異なる演算器で演算し、その結果を乗算
器で累乗している。実数である指数データのビットチェ
ックによりこうした演算の制御を行なうので、指数が実
数である累乗演算を高速に実行することができる。 [実施の形態5]図18から21を参照して、本発明の
第5の実施の形態に係る演算プロセッサ440について
説明する。
【0142】演算プロセッサ440は、図9において、
演算装置274の代わりに演算装置442を用い、演算
装置制御部274の代わりに演算装置制御部444を用
い、累乗演算制御部276の代わりに累乗演算制御部4
46を用い、MPYU280の代わりにMPYU448
を用い、SQRTU278の代わりにSQRTU380
を用い、レジスタファイル54の代わりにレジスタファ
イル371を用いたものである。
【0143】演算装置制御部444は、シーケンス制御
部46から命令を受け、実数指数を整数指数と小数指数
とに分割して累乗演算を行なうための制御を行ない、か
つシーケンス制御部46に累乗演算が終了したことを示
す終了フラグを送信するための累乗演算制御部376を
含む。それ以外の構成部分は図9と同じであるので、同
一の部品には同一の参照符号を付すことにしてここでは
それらについての詳しい説明は繰返さない。
【0144】図18を参照して、MPYU448は、2
つの入力データS0およびS1の積を求め結果YMを出
力するためのMPY74と、MPY74に接続され累乗
演算制御部446より出力される書込み信号456に従
ってMPY74の演算結果YMを記憶するためのyレジ
スタ80と、MPY74に接続され累乗演算制御部44
6より出力される書込み信号458に従ってMPY74
の演算結果YMを記憶するためのtmレジスタ394
と、MPY74に接続され累乗演算制御部446より出
力される書込み信号460に従ってMPY74の演算フ
ラグFを記憶するためのfレジスタ84と、yレジスタ
80、xレジスタ76、固定値1およびtmレジスタ3
94の出力を受け累乗演算制御部446より出力される
乗算入力選択信号454に従ってこれら4つの出力のう
ち1つを選択し入力データS0としてMPY74に与え
るための乗算入力選択器450と、xレジスタ76、固
定値1、tmレジスタ394およびtsレジスタ396
の出力を受け累乗演算制御部446より出力される乗算
入力選択信号454に従ってこれら4つの入力のうち1
つを選択し入力データS1としてMPY74に与えるた
めの乗算入力選択器452とを含む。
【0145】SQRTU380の構成は、実施の形態4
と同様であるため、その説明は繰返さない。
【0146】図19を参照して、累乗演算制御部446
は、デコーダ420、426、470および472と、
カウンタ422および428と、ORゲート474、4
76および478とを含む。デコーダ420は、シーケ
ンス制御部46からの累乗演算命令を受け、カウンタ4
22の制御を行なう。カウンタ422は、デコーダ42
0からの信号を受け、カウント値C1をセットする。デ
コーダ470は、カウンタ422より出力されるカウン
ト値C1およびeレジスタ390の整数領域eiの値を
受け、eiの各ビットのチェックを行ないながら、MP
Y74の入力データS0およびS1を選択するための乗
算入力選択信号454を出力する。また、MPY74の
演算結果YMをtmレジスタ394に書込むための書込
み信号458を出力する。また、処理が終了したことを
示す終了フラグをデコーダ426に送信する。デコーダ
426は、終了フラグおよびシーケンス制御部46から
の累乗演算命令を受け、カウンタ428の制御を行な
う。カウンタ428は、デコーダ426からの信号を受
け、カウント値C2をセットする。デコーダ472は、
カウンタ428より出力されるカウント値C2およびe
レジスタ390の小数領域efの値を受け、efの各ビ
ットのチェックを行ないながら、SQRT294の入力
データSを選択するための平方根演算入力選択信号41
0ならびにMPY74の入力データS1を選択するため
の乗算入力選択信号454をそれぞれ出力する。また、
SQRT294の演算結果YSをtsレジスタ396に
書込むための書込み信号404を出力する。また、処理
が終了したことを示す終了フラグをシーケンス制御部4
6へ送信する。ORゲート474は、デコーダ470お
よび472よりそれぞれ出力される信号を受け、MPY
74の演算結果YMをyレジスタ80に書込むための書
込み信号456およびMPY74の演算フラグFをfレ
ジスタ84に書込むための書込み信号460を信号線4
80より出力する。ORゲート476は、デコーダ47
0および472よりそれぞれ出力される信号を受け、M
PY74の入力データS1を選択するための乗算入力選
択信号454を信号線482より出力する。ORゲート
478は、デコーダ470および472よりそれぞれ出
力される信号を受け、MPY74の入力データS0を選
択するための乗算入力選択信号454を信号線484よ
り出力する。
【0147】デコーダ470は、図4に示すデコーダ9
4の構成において、eレジスタ78の値の代わりにeレ
ジスタ390の整数領域eiの値を用い、カウンタ92
の出力Cの代わりにカウンタ422の出力C1を用い、
信号線2A1の値を終了フラグの値とし、信号線2A2
の値をORゲート474の入力とし、信号線2A3の値
をtmレジスタ394への書込み信号458とし、信号
線2A4の値をS1としてtmレジスタ394の値を選
択するための選択信号とし、信号線2A5の値をS1と
してxレジスタ76の値を選択するための選択信号と
し、信号線2A6の値をORゲート476の入力とし、
信号線2A7の値をS0としてtmレジスタ394の値
を選択するための信号とし、信号線2A8の値をORゲ
ート478の入力とし、信号線2A9の値をS0として
xレジスタ76値を選択するための選択信号とし、信号
線2Aaの値をS0として固定値1を選択するための選
択信号とする。
【0148】デコーダ452は、図11に示すデコーダ
324の構成において、eレジスタ290の値の代わり
にeレジスタ390の小数領域efの値を用い、カウン
タ322の出力Cの代わりにカウンタ428の出力C2
を用い、信号線2B2の値をtsレジスタ396への書
込み信号404とし、信号線2B3の値をORゲート4
74の入力とし、信号線2B4の値をS1としてtsレ
ジスタ396の値を選択するための選択信号とし、信号
線2B5の値をORゲート476の値とし、信号線2B
7の値をSとしてtsレジスタ396の値を選択するた
めの選択信号とし、信号線2B6および2B8の値は用
いない。
【0149】累乗演算制御部446より出力される乗算
入力選択信号454は、上述した信号線2A4、2A
5、2A7、2A9、2Aa、2B4、482および4
84よりなる。累乗演算制御部446より出力される平
方根演算入力選択信号410は、上述した信号線2B7
および2B9よりなる。
【0150】次に、各部の動作説明を行なう。累乗演算
制御部446は、シーケンス制御部46からの累乗演算
命令をデコーダ420および426でそれぞれ受け、カ
ウンタ422からeレジスタ390の整数領域eiの値
に対する累乗演算のカウント値C1を出力し、カウンタ
428からeレジスタ390の小数領域efの値に対す
る累乗演算のカウント値C2を出力する。
【0151】デコーダ470および472の動作は、そ
れぞれ図4および図11に示すデコーダ94および32
4と同様であるので、ここでは繰返さない。
【0152】図20および21を参照して、演算プロセ
ッサ440の処理の流れについて説明する。eレジスタ
390の整数領域eiおよび小数領域efはそれぞれ8
ビットで構成されているものとする。また、カウンタ4
22の出力するカウント値C1は、処理のステップ数に
対応している。カウンタ428の出力するカウント値C
2に14を足したものが、処理のステップ数に対応す
る。xレジスタ76の値をxとし、eレジスタ390の
値をeとし、eレジスタ390の整数領域eiの値をe
iとし、eレジスタ390の小数領域efの値をefと
する。ステップ1からステップ15では、xeiを求め、
その値をyレジスタ80に記憶する。ステップ15から
ステップ23では、xefを求める。その際、yレジスタ
80に記憶されている値xeiとxefとを掛け合わせ、そ
の値xei+ef (=xe )をyレジスタ80に記憶する。
【0153】ステップ1から15の処理は、図5の処理
と同様であるため、ここではその詳細な説明は繰返さな
い。
【0154】ステップ16から23の処理は、図13の
処理と同様であるため、ここではその詳細な説明は繰返
さない。なおステップ16でS0として固定値1を選択
する代わりに、yレジスタ80の値を用いているのは、
S1にxeiを掛け合わせるためである。ここではeレジ
スタ390の小数領域efのMSBは、第7ビットより
始まるものとする。
【0155】以上のようにこの演算プロセッサ440で
は、累乗演算を乗算器による整数累乗演算と平方根演算
器による小数累乗演算との入力データ生成を並列に実行
し、整数累乗演算が終了直後に同じ乗算器を用いて、整
数累乗演算結果と平方根演算結果との累乗演算を行なう
ことを指数データのビットチェックにより制御して実現
しているので、指数が実数である累乗演算を高速に実行
することができる。 [実施の形態6]図22から27を参照して、本発明の
第6の実施の形態に係る演算プロセッサ490について
説明する。
【0156】演算プロセッサ490は、図9において、
演算装置274の代わりに演算装置492を用い、演算
装置制御部274の代わりに演算装置制御部494を用
い、累乗演算制御部276の代わりに累乗演算制御部4
96を用い、MPYU280の代わりにMPYU448
を用い、SQRTU278の代わりにSQRTU498
を用い、レジスタファイル54の代わりにレジスタファ
イル371を用いたものである。
【0157】演算装置制御部494は、シーケンス制御
部46から命令を受け、実数指数を整数指数と小数指数
とに分割して累乗演算を行なうための制御を行なうため
の累乗演算制御部496を含む。
【0158】図22を参照して、SQRTU498は、
実施の形態4で説明したSQRTU380に加え、ts
レジスタ396の出力を複数個記憶するための複数のレ
ジスタを含むレジスタ群514と、累乗演算制御部49
6より出力されるレジスタ選択信号504に従ってts
レジスタ396の出力を記憶するためのレジスタ群51
4のレジスタを選択するためのレジスタ選択器500
と、累乗演算制御部496より出力されるレジスタ選択
信号506に従ってレジスタ群508の中の1つのレジ
スタを選択し記憶内容を出力するためのレジスタ選択器
502とを含む。レジスタ群508は、ts0レジスタ
508、ts1レジスタ510からtskレジスタ51
2までの(k+1)個のレジスタを含む。
【0159】MPYU448およびレジスタファイル3
71の構成は、それぞれ実施の形態5および4に示した
ものと同様であるため、ここではその詳細な説明は繰返
さない。また他の構成部分について、他の実施の形態で
既に説明したものについては、それらと同一の参照符号
を付すこととし、それらの詳細な説明は繰返さない。
【0160】図23を参照して、累乗演算制御部496
は、デコーダ519、520、522および524と、
カウンタ422および428とを含む。デコーダ519
は、シーケンス制御部46からの累乗演算命令を受け、
カウンタ422の制御を行なう。カウンタ422は、デ
コーダ519からの信号を受け、カウント値C1をセッ
トする。デコーダ522は、カウンタ422より出力さ
れるカウント値C1およびeレジスタ390の整数領域
eiの値を受け、eiの各ビットのチェックを行ないな
がら、MPY74の入力データS0およびS1を選択す
るための乗算入力選択信号454を出力する。また、M
PY74の演算結果YMをyレジスタ80およびtmレ
ジスタ394に書込むための書込み信号456および4
58をそれぞれ出力する。また、レジスタ選択信号50
4を出力する。デコーダ520は、シーケンス制御部4
6からの累乗演算命令を受け、カウンタ428の制御を
行なう。カウンタ428は、デコーダ520からの信号
を受け、カウント値C2をセットする。デコーダ524
は、カウンタ428より出力されるカウント値C2およ
びeレジスタ390の小数領域efの値を受け、efの
各ビットのチェックを行ないながら、SQRT294の
入力データSを選択するための平方根演算入力選択信号
410を出力する。また、SQRT294の演算結果Y
Sをtsレジスタ396に書込むための書込み信号40
4を出力する。また、レジスタ選択信号506を出力す
る。
【0161】図24を参照して、デコーダ522は、M
PY74の入力データS0を選択するための乗算入力選
択信号454を生成するための乗算入力選択信号第1生
成部536と、MPY74の入力データS1を選択する
ための乗算入力選択信号454を生成するための乗算入
力選択信号第2生成部538と、書込み信号458を生
成するための書込み信号第1生成部540と、書込み信
号456および460を生成するための書込み信号第2
生成部542と、カウンタ422の値に応じて信号を出
力するためのデコーダ532と、デコーダ532より出
力される信号に応じてeレジスタ390の指定のビット
の値を出力するための指数ビットデータ選択器534と
を含む。
【0162】乗算入力選択信号第1生成部536は、カ
ウンタ422に接続され、カウント値C1と1とを比較
し、カウント値C1が1であれば1を出力し、C1が1
以外であれば0を出力するための比較器544と、カウ
ンタ422に接続され、カウント値C1と2とを比較
し、カウントC1が2であれば1を出力し、C1が2以
外であれば0を出力するための比較器546と、カウン
タ422に接続され、カウント値C1が16以上であれ
ば1を出力し、C1が15以下であれば0を出力するた
めの比較器548と、比較器544に接続されたNOT
ゲート550と、比較器546に接続されたNOTゲー
ト554と、比較器548に接続されたNOTゲート5
52および556と、NOTゲート550および552
ならびにカウンタ422に接続され、NOTゲート55
0および552のそれぞれの出力値ならびにカウント値
C1の0ビット目の値間の論理積を求め、その値を出力
するためのANDゲート560と、NOTゲート55
4、556および558にそれぞれ接続されたANDゲ
ート562と、比較器548およびANDゲート560
にそれぞれ接続されたORゲート564とを含む。
【0163】乗算入力選択信号第2生成部538は、指
数ビットデータ選択器534に接続されたNOTゲート
568と、カウンタ422に接続され、カウント値C1
の0ビット目の値の否定値を求め、その値を出力するた
めのNOTゲート566と、比較器548に接続された
NOTゲート570と、比較器544に接続されたNO
Tゲート572と、比較器546に接続されたNOTゲ
ート574と、カウンタ422およびNOTゲート56
8にそれぞれ接続され、それぞれの値間の論理積を出力
するためのANDゲート582と、比較器544および
指数ビットデータ選択器534にそれぞれ接続されたA
NDゲート576と、ANDゲート576および比較器
546にそれぞれ接続されたORゲート586と、NO
Tゲート566および指数ビットデータ選択器534に
接続されたORゲート584と、NOTゲート570、
572および574ならびにORゲート584に接続さ
れたANDゲート578と、比較器578および指数ビ
ットデータ選択器534にそれぞれ接続されたANDゲ
ート580とを含む。
【0164】書込み信号第1生成部540は、カウンタ
422に接続され、カウント値C1の0ビット目の値の
否定値を求め、その値を出力するためのNOTゲート5
90と、比較器548に接続されたNOTゲート588
と、NOTゲート588および590にそれぞれ接続さ
れたANDゲート592とを含む。
【0165】書込み信号第2生成部542は、カウンタ
422および比較器548に接続され、カウント値C1
の0ビット目の値および比較器548の出力値間の論理
和を求め、その値を出力するためのORゲート594を
含む。
【0166】図25を参照して、デコーダ524は、カ
ウンタ428に接続され、カウント値C2と1とを比較
し、C2が1であれば1を出力し、C2が1以外であれ
ば0を出力するための比較器600と、比較器600に
接続されたNOTゲート602と、カウンタ428に接
続され、カウント値C2と0とを比較し、C2が0以外
であれば1を出力し、C2が0であれば0を出力するた
めの比較器604と、カウンタ428に接続され、カウ
ント値C2に応じて各種のレジスタ選択信号504を出
力するためのデコーダ606とを含む。
【0167】次に各部の動作説明を行なう。以下、eレ
ジスタ390の整数領域eiおよび小数領域efはそれ
ぞれ8ビットで構成されるものとする。
【0168】累乗演算制御部496は、シーケンス制御
部46からの累乗演算命令をデコーダ519および52
0でそれぞれ受け、カウンタ422からMPY74の演
算回数を示し、かつ演算を制御するためのカウント値C
1を出力し、カウンタ428からSQRT294の演算
回数を示し、かつ演算を制御するためのカウント値C2
を出力する。
【0169】デコーダ530の動作説明を行なう。レジ
スタ群508に含まれるレジスタの個数を8とする。デ
コーダ530は、カウント値C1が16以上のとき、レ
ジスタ群514から(C1−16)番目のレジスタを選
択し、その値を出力するためのレジスタ選択信号506
をレジスタ選択器502に与える。
【0170】デコーダ532および指数ビットデータ選
択器534の動作説明を行なう。デコーダ532は、カ
ウント値C1を受け、指数ビットデータ選択器534よ
りeレジスタ390の各ビットの値を出力するための信
号を出力する。その信号は、カウント値C1が1から1
5の時には、eレジスタ390の整数領域eiの(C1
−1)/2ビット目の値を出力するための信号である。
カウント値C1が16から23の時には、eレジスタ3
90の小数領域efの(23−C1)ビット目の値を出
力するための信号である。
【0171】乗算入力選択信号第1生成部536の動作
説明を行なう。ANDゲート560は、カウント値C1
が1以外で、カウント値C1が15以下で、かつカウン
ト値C1が奇数のとき1を出力する。ORゲート564
は、カウント値C1が16以上か、またはANDゲート
560の出力が1のとき1となる。ANDゲート562
は、カウント値C1が偶数で、カウント値C1が15以
下で、かつカウント値C1が2以外のとき1を出力す
る。よって、乗算入力選択信号第1生成部536は、カ
ウント値C1が1のときS0として1を選択するための
信号を出力し、カウント値C1が2のときS0としてx
レジスタ76の値を選択するための信号を出力する。ま
た、カウント値C1が16以上、またはカウント値C1
が3以上15以下の奇数のときS0としてyレジスタ8
0の値を選択するための信号を出力する。また、カウン
ト値C1が4以上14以下の偶数のときS0としてyレ
ジスタ80を選択するための信号を出力する。
【0172】乗算入力選択信号第2生成部538の動作
説明を行なう。ANDゲート582は、カウント値C1
が奇数で、かつ指数ビットデータ選択器534より出力
される値が0のとき1を出力する。ANDゲート576
は、指数ビットデータ選択器534より出力される値が
1で、かつカウント値C1が1のとき1を出力する。O
Rゲート586は、ANDゲート576の出力が1か、
またはカウント値C1が2のとき1を出力する。ORゲ
ート584は、指数ビットデータ選択器534より出力
される値が1か、またはカウント値C1が偶数のとき1
を出力する。ANDゲート578は、ORゲート584
の出力が1で、カウント値C1が2以外で、カウント値
C1の値が1以外で、かつカウント値C1が15以下の
とき1を出力する。よって、乗算入力選択信号第2生成
部538は、カウント値C1が奇数で、かつ指数ビット
データ選択器534より出力される値が0のときS1と
して固定値1を選択するための信号を出力する。また、
カウント値C1が1かつ指数ビットデータ選択器534
より出力される値が1か、またはカウント値C1が2の
ときS1としてxレジスタ76の値を選択するための信
号を出力する。また、カウント値C1が3以上15以下
の奇数で、かつ指数ビットデータ選択器534より出力
される値が1か、またはカウント値C1が3以上14以
下の偶数のとき、S1としてtmレジスタ394の値を
選択するための信号を出力する。また、カウント値C1
が16以上で、かつ指数ビットデータ選択器534より
出力される値が1のとき、S1としてレジスタ選択信号
506に従ってレジスタ選択器502より出力される値
を選択する信号を出力する。乗算入力選択信号454
は、乗算入力選択信号第1生成部536および乗算入力
選択信号第2生成部538より出力される信号をまとめ
たものを指す。
【0173】書込み信号第1生成部540の動作説明を
行なう。ANDゲート592は、カウント値C1が15
以下で、かつカウント値C1が偶数のとき1を出力す
る。よって、書込み信号第1生成部540は、カウント
値C1が14以下の偶数のとき書込み信号458をアク
ティブにする。
【0174】書込み信号第2生成部542の動作説明を
行なう。ORゲート594は、カウント値C1が16以
上か、またはカウント値Cが奇数のとき1を出力する。
よって、書込み信号第2生成部542は、そのようなと
きに書込み信号456および460をアクティブにす
る。
【0175】デコーダ524の動作説明を行なう。図2
5を参照して、デコーダ606は、カウント値C2が2
以上かつ9以下のとき、tsレジスタ396の出力を書
込むためのレジスタとして、レジスタ群514の中から
(C2−2)番目のレジスタを選択するためのレジスタ
選択信号504を出力する。また、カウント値C2が1
のときは、Sとしてxレジスタ76の値を選択するため
の信号を出力する。カウント値C2が1以外のときは、
Sとしてtsレジスタ396の値を選択するための信号
を出力する。平方根演算入力選択信号410は、これら
2つの信号をまとめたものを指す。また、C2が1以上
のときは、書込み信号404をアクティブにする。
【0176】図26を参照して、演算プロセッサ490
の処理の流れについて説明する。xレジスタ76の値を
x、eレジスタ390の値をe、eレジスタ390の整
数領域eiの値をei,およびeレジスタ390の小数
領域efの値をefとする。カウンタ422の出力する
カウント値C1およびカウンタ424の出力するカウン
ト値C2は、処理のステップ数に対応している。また、
カウント値C1は、MPY74での演算回数を示し、カ
ウント値C2は、SQRT294での演算回数を示す。
【0177】ステップ1から23まで、デコーダ522
の出力する入出力のための各種信号に従って、MPY7
4で乗算が行なわれる。ステップ1から9まで、デコー
ダ524の出力する入出力のための各種信号に従って、
SQRT294で平方根演算が行なわれる。
【0178】ステップ1から15までのMPY74での
乗算により、xeiが求められる。処理の流れは、図5の
処理説明において終了フラグの部分を除いたものと同様
であるため、ここでは繰返さない。
【0179】ステップ1から9までのSQRT294で
の平方根演算により、xefを求めるための演算に必要な
中間データが求められ、レジスタ群514内の各レジス
タにそれぞれ記憶される。ステップ9まで終了した段階
で、ts0レジスタ508、ts1レジスタ510、t
s2レジスタ、ts3レジスタ、ts4レジスタ、ts
5レジスタ、ts6レジスタおよびts7レジスタの値
は、x1/2 、x1/4 、x1/8 、x1/16、x1/32
1/64、x1/128 およびx1/256 にそれぞれなってい
る。ステップ16からステップ23での乗算では、それ
らレジスタに記憶された中間データを順次読み出し、x
efを求めるための演算を行なう。処理の流れは図13の
処理説明において終了フラグおよび平方根演算の部分を
除いたものと同様であるため、ここでは繰返さない。e
レジスタ390の小数領域efのMSBは、第7ビット
より始まるものとする。図13中のtレジスタ296の
値の代わりに、レジスタ選択信号506にしたがってレ
ジスタ選択器502より出力されるレジスタ群510内
のレジスタの値を用いる。また、ステップ16でS0と
して固定値1を選択する代わりに、yレジスタ80の値
を用いているのは、S1にx eiを掛け合わせるためであ
る。
【0180】図27を参照して、SQRT294での処
理が、MPY74での処理の2倍時間がかかる場合につ
いて考える。このようにSQRTの方がMPYより長い
時間を要するのが通常であろう。この場合においても、
ステップ15以降の処理を行なう際に必要なデータは、
すでにSQRT294で演算されているため、トータル
としての演算時間は変わらない。また、最後の平方根演
算が終了した時点でts0レジスタに記憶されている値
は、その後用いられることはない。このため、最後の平
方根演算の結果をts0レジスタに記憶する。これによ
り、副次的効果として、レジスタ群508に含まれるレ
ジスタの数を1つ減らすことができる。
【0181】以上のようにこの演算プロセッサ490で
は、累乗演算をMPY74により整数累乗演算と、SQ
RT294による小数累乗演算の入力データ生成とを並
列に実行し、その入力データをレジスタ群514に格納
しする。また、整数累乗演算が終了後、MPY74を用
いて、整数累乗演算結果とレジスタ群514に格納され
た値との乗算が、指数データのビットチェックにより制
御される。よって、実数指数の累乗演算を高速に実行す
ることができる。また、平方根演算に要する時間が乗算
に要する時間よりも長い場合であっても、トータルの処
理時間は変化しない。
【0182】
【発明の効果】請求項1に記載の発明によると、乗算手
段への少ない付加回路で、整数指数の累乗演算を高速に
実行することができる。
【0183】請求項2に記載の発明によると、請求項1
に記載の発明の効果に加え、累乗演算をさらに高速に実
行することができ、整数指数の累乗演算を高速に実行す
ることができる。
【0184】請求項3に記載の発明によると、小数指数
の累乗演算を高速に実行することができる。
【0185】請求項4に記載の発明によると、実数指数
の累乗演算を高速に実行することができる。
【0186】請求項5に記載の発明によると、実数指数
の累乗演算を高速に実行することができる。
【0187】請求項6に記載の発明によると、実数指数
の累乗演算を高速に実行することができ、かつ乗算装置
の演算効率を上げることができる。
【0188】請求項7に記載の発明によると、請求項1
から6のいずれかに記載の発明の効果に加えて、シーケ
ンス制御手段などへのフラグ報告を正確かつ早期に行な
うことができる。
【0189】請求項8に記載の発明によると、請求項7
に記載の発明の効果に加えて、乗算手段の演算結果が0
になったこと、および/または乗算手段の演算結果が表
現範囲データ領域を超えたことを、シーケンス制御手段
などへ正確かつ早期に行なうことができる。
【0190】請求項9または10のいずれかに記載の発
明によると、請求項1から5、7および8のいずれかに
記載の発明の効果に加えて、乗算手段への少ない付加回
路で、余分な演算を行なうことなく、累乗演算を高速に
実行することができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1に係る演算プロセッサ
40のブロック図である。
【図2】 本発明の実施の形態1に係る演算装置42の
ブロック図である。
【図3】 本発明の実施の形態1に係る累乗演算制御部
66のブロック図である。
【図4】 本発明の実施の形態1に係るデコーダ94の
論理回路図である。
【図5】 本発明の実施の形態1に係る累乗演算処理の
流れを示すフロー図である。
【図6】 本発明の実施の形態2に係る演算装置372
のブロック図である。
【図7】 本発明の実施の形態2に係るデコーダ200
の論理回路図である。
【図8】 本発明の実施の形態2に係る累乗演算処理の
流れを示すフロー図である。
【図9】 本発明の実施の形態3に係る演算プロセッサ
270のブロック図である。
【図10】 本発明の実施の形態3に係る演算装置27
2のブロック図である。
【図11】 本発明の実施の形態3に係る累乗演算制御
部276の論理回路図である。
【図12】 本発明の実施の形態3に係る累乗演算処理
の流れを示すフローチャートである。
【図13】 本発明の実施の形態3に係る累乗演算処理
の流れを示すフロー図である。
【図14】 本発明の実施の形態4に係る演算装置37
2のブロック図である。
【図15】 本発明の実施の形態4に係る累乗演算制御
部376のブロック図である。
【図16】 本発明の実施の形態4に係る累乗演算処理
の流れを示すフロー図である。
【図17】 本発明の実施の形態4に係る累乗演算処理
の流れを示すフロー図である。
【図18】 本発明の実施の形態5に係る演算装置44
2のブロック図である。
【図19】 本発明の実施の形態5に係る累乗演算制御
部446のブロック図である。
【図20】 本発明の実施の形態5に係る累乗演算処理
の流れを示すフロー図である。
【図21】 本発明の実施の形態5に係る累乗演算処理
の流れを示すフロー図である。
【図22】 本発明の実施の形態6に係る演算装置49
2のブロック図である。
【図23】 本発明の実施の形態6に係る累乗演算制御
部496のブロック図である。
【図24】 本発明の実施の形態6に係るデコーダ52
2の論理回路図である。
【図25】 本発明の実施の形態6に係るデコーダ52
4の論理回路図である。
【図26】 本発明の実施の形態6に係る累乗演算処理
の流れを示すフロー図である。
【図27】 本発明の実施の形態6に係る累乗演算処理
の流れを示すフロー図である。
【図28】 従来の技術1に係る整数指数の累乗演算処
理の流れを示すフロー図である。
【図29】 従来の技術2に係る実数指数の累乗演算処
理における対数関数演算処理の流れを示すフロー図であ
る。
【図30】 従来の技術2に係る実数指数の累乗演算処
理における指数関数演算処理の流れを示すフロー図であ
る。
【符号の説明】
74,302 MPY、76 xレジスタ、80 yレ
ジスタ、294 SQRT、370 演算プロセッサ、
376 累乗演算制御部、390 eレジスタ、392
ymレジスタ、393,395,397,398 乗
算入力選択器、394 tmレジスタ、396 tsレ
ジスタ、408 平方根演算入力選択器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小原 淳子 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 (72)発明者 河合 浩行 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 基数データを記憶するための第1の記憶
    手段と、 指数データを記憶するための第2の記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための乗算手段と、 前記乗算手段の演算結果を記憶するための第3の記憶手
    段および第4の記憶手段と、 前記第1の記憶手段の出力、前記第3の記憶手段の出
    力、前記第4の記憶手段の出力および固定値1を受け、
    第1乗算入力選択信号に従っていずれか1つを選択して
    前記乗算手段の前記第1の入力に与えるための第1乗算
    入力選択手段と、 前記第1の記憶手段の出力、前記第4の記憶手段の出力
    および固定値1を受け、第2乗算入力選択信号に従って
    いずれか1つを選択して前記乗算手段の前記第2の入力
    に与えるための第2乗算入力選択手段と、 前記指数データをビット毎にチェックしながら、チェッ
    ク回数および当該ビットの値に応じて前記第1乗算入力
    選択信号、前記第2乗算入力選択信号および前記第3の
    記憶手段または前記第4の記憶手段へデータの書込みを
    許可するための書込み信号を所定のシーケンスに従って
    出力するための累乗演算制御手段とを含む、演算プロセ
    ッサ。
  2. 【請求項2】 前記乗算手段は、 乗算の前半部の処理を行なうための前半乗算手段と、 乗算の後半部の処理を行なうための後半乗算手段とを含
    み、 前記累乗演算制御手段は、ある乗算の後半部の処理と、
    前記ある乗算の直後の乗算の前半部とが並行して実行さ
    れるように前記第1乗算入力選択信号、前記第2乗算入
    力選択信号および前記書込み信号を出力する、請求項1
    に記載の演算プロセッサ。
  3. 【請求項3】 基数データを記憶するための第1の記憶
    手段と、 指数データを記憶するための第2の記憶手段と、 入力データの平方根を演算し結果を出力するための平方
    根演算手段と、 前記平方根演算手段の演算結果を記憶するための第3の
    記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための乗算手段と、 前記乗算手段の演算結果を記憶するための第4の記憶手
    段と、 前記第1の記憶手段の出力および前記第3の記憶手段の
    出力を受け、そのいずれか1つを、平方根演算入力選択
    信号に従って選択して前記平方根演算手段の入力に与え
    るための平方根演算入力選択手段と、 前記第3の記憶手段の出力および固定値1を受け、その
    いずれか1つを、第1乗算入力選択信号に従って選択し
    て前記乗算手段の前記第1の入力に与えるための第1乗
    算入力選択手段と、 前記第4の記憶手段の出力および固定値1を受け、その
    いずれか1つを、第2乗算入力選択信号に従って選択し
    て前記乗算手段の前記第2の入力に与えるための第2乗
    算入力選択手段と、 前記指数データをビット毎にチェックしながら、チェッ
    ク回数および当該ビットの値に応じて前記平方根演算入
    力選択信号、前記第1乗算入力選択信号、前記第2入力
    選択信号および前記第3の記憶手段または前記第4の記
    憶手段へデータの書込みを許可するための書込み信号を
    所定のシーケンスに従って出力するための累乗演算制御
    手段とを含む、演算プロセッサ。
  4. 【請求項4】 基数データを記憶するための第1の記憶
    手段と、 指数データを整数領域および小数領域に分割して記憶す
    るための第2の記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための第1の乗算手段と、 前記第1の乗算手段の演算結果を記憶するための第3の
    記憶手段および第4の記憶手段と、 入力データの平方根を演算し結果を出力するための平方
    根演算手段と、 前記平方根演算手段の演算結果を記憶するための第5の
    記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための第2の乗算手段と、 前記第2の乗算手段の演算結果を記憶するための第6の
    記憶手段と、 前記第1の記憶手段の出力、前記第3の記憶手段の出
    力、前記第4の記憶手段の出力および固定値1を受け、
    そのいずれか1つを、第1乗算入力選択信号に従って選
    択し前記第1の乗算手段の前記第1の入力に与えるため
    の第1乗算入力選択手段と、 前記第1の記憶手段の出力、前記第4の記憶手段の出力
    および固定値1を受け、そのいずれか1つを、第2乗算
    入力選択信号に従って選択し前記第1の乗算手段の前記
    第2の入力に与えるための第2乗算入力選択手段と、 前記第1の記憶手段の出力および前記第5の記憶手段の
    出力を受け、そのいずれか1つを、平方根演算入力選択
    信号に従って選択して前記平方根演算手段の入力に与え
    るための平方根演算入力選択手段と、 前記第5の記憶手段の出力および固定値1を受け、その
    いずれか1つを、第3乗算入力選択信号に従って選択し
    て前記第2の乗算手段の前記第1の入力に与えるための
    第3乗算入力選択手段と、 前記第3の記憶手段の出力および前記第6の記憶手段の
    出力を受け、そのいずれか1つを、第4乗算入力選択信
    号に従って選択し前記第2の乗算手段の前記第2の入力
    に与えるための第4乗算入力選択手段と、 前記指数データの前記整数領域をビット毎にチェックし
    ながら、チェック回数および当該ビットの値に応じて前
    記第1乗算入力選択信号、前記第2乗算入力選択信号お
    よび前記第3の記憶手段または前記第4の記憶手段へデ
    ータの書込みを許可するための書込み信号を所定のシー
    ケンスに従って出力し、前記指数データの前記小数領域
    をビット毎にチェックしながら、チェック回数および当
    該ビットの値に応じて前記平方根演算入力選択信号、前
    記第3乗算入力選択信号、前記第4乗算入力選択信号お
    よび前記第5の記憶手段または前記第6の記憶手段へデ
    ータの書込みを許可するための書込み信号を所定のシー
    ケンスに従って出力するための累乗演算制御手段とを含
    む、演算プロセッサ。
  5. 【請求項5】 基数データを記憶するための第1の記憶
    手段と、 指数データを整数領域および小数領域に分割して記憶す
    るための第2の記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための乗算手段と、 前記乗算手段の演算結果を記憶するための第3の記憶手
    段および第4の記憶手段と、 入力データの平方根を演算し結果を出力するための平方
    根演算手段と、 前記平方根演算手段の演算結果を記憶するための第5の
    記憶手段と、 前記第1の記憶手段の出力、前記第3の記憶手段の出
    力、前記第4の記憶手段の出力および固定値1を受け、
    そのいずれか1つを、第1乗算入力選択信号に従って選
    択し前記乗算手段の前記第1の入力に与えるための第1
    乗算入力選択手段と、 前記第1の記憶手段の出力、前記第4の記憶手段の出
    力、前記第5の記憶手段の出力および固定値1を受け、
    そのいずれか1つを、第2乗算入力選択信号に従って選
    択し前記乗算手段の前記第2の入力に与えるための第2
    乗算入力選択手段と、 前記第1の記憶手段の出力および前記第5の記憶手段の
    出力を受け、そのいずれか1つを、平方根演算入力選択
    信号に従って選択して前記平方根演算手段の入力に与え
    るための平方根演算入力選択手段と、 前記指数データの前記整数領域をビット毎にチェックし
    ながら、チェック回数および当該ビットの値に応じて前
    記第1乗算入力選択信号、前記第2乗算入力選択信号お
    よび前記第3の記憶手段または前記第4の記憶手段へデ
    ータの書込みを許可するための書込み信号を出力し、前
    記指数データの前記小数領域をビット毎にチェックしな
    がら、チェック回数および当該ビットの値に応じて前記
    平方根演算入力選択信号、前記第1乗算入力選択信号、
    前記第2乗算入力選択信号および前記第3の記憶手段ま
    たは第5の記憶手段へデータの書込みを許可するための
    書込み信号を出力するための累乗演算制御手段とを含
    む、演算プロセッサ。
  6. 【請求項6】 基数データを記憶するための第1の記憶
    手段と、 指数データを整数領域および小数領域に分割して記憶す
    るための第2の記憶手段と、 第1の入力および第2の入力を有し、2つの入力データ
    を乗算し結果を出力するための乗算手段と、 前記乗算手段の演算結果を記憶するための第3の記憶手
    段および第4の記憶手段と、 入力データの平方根を演算し結果を出力するための平方
    根演算手段と、 前記平方根演算手段の演算結果を記憶するための複数個
    の第5の記憶手段と、 第1記憶場所選択信号に従って前記複数個の第5の記憶
    手段の1つを選択するための第1記憶場所選択手段と、 第2記憶場所選択信号に従って前記複数個の第5の記憶
    手段を選択しその記憶内容を出力させるための第2記憶
    場所選択手段と、 前記第1の記憶手段の出力、前記第3の記憶手段の出
    力、前記第4の記憶手段の出力および固定値1を受け、
    そのいずれか1つを、第1乗算入力選択信号に従って選
    択して前記乗算手段の前記第1の入力に与えるための第
    1乗算入力選択手段と、 前記第1の記憶手段の出力、前記第4の記憶手段の出
    力、固定値1および前記第2記憶場所選択手段の出力を
    受け、そのいずれか1つを、第2乗算入力選択信号に従
    って選択し前記乗算手段の前記第2の入力に与えるため
    の第2乗算入力選択手段と、 前記第1の記憶手段の出力および前記第2記憶場所選択
    手段の出力を受け、いずれか1つを、平方根演算入力選
    択信号に従って選択し前記平方根演算手段の入力に与え
    るための平方根演算入力選択手段と、 前記指数データの前記整数領域をビット毎にチェックし
    ながら、チェック回数および当該ビットの値に応じて前
    記第1乗算入力選択信号、前記第2乗算入力選択信号お
    よび前記第3の記憶手段または前記第4の記憶手段へデ
    ータの書込みを許可するための書込み信号を出力し、前
    記指数データの前記小数領域をビット毎にチェックしな
    がら、チェック回数および当該ビットの値に応じて前記
    第1乗算入力選択信号、前記第2乗算入力選択信号、前
    記第2記憶場所選択信号および前記第3の記憶手段へデ
    ータの書込みを許可するための書込み信号を出力し、処
    理の繰返し回数に応じて前記平方根演算入力選択信号、
    前記第5の記憶手段へデータの書込みを許可するための
    書込み信号および前記第1記憶場所選択信号を出力する
    ための累乗演算制御手段とを含む、演算プロセッサ。
  7. 【請求項7】 前記乗算手段は、前記乗算手段の演算結
    果の状態を示すフラグデータをさらに出力し、 前記フラグデータを記憶するための状態記憶手段をさら
    に含み、 前記累乗演算制御手段は、前記乗算手段より出力される
    前記フラグデータの前記状態記憶手段への書込み制御を
    さらに行なう、請求項1から6のいずれかに記載の演算
    プロセッサ。
  8. 【請求項8】 前記フラグデータは、前記乗算手段の演
    算結果が0であることを示すゼロフラグおよび/または
    前記乗算手段の演算結果が表現範囲データ領域を超えた
    ことを示すオーバーフローフラグを含む、請求項7に記
    載の演算プロセッサ。
  9. 【請求項9】 前記累乗演算制御手段は、前記指数デー
    タの所定のビット間で、所定の演算を行なった結果が、
    所定の値であれば処理を終了させ、かつ終了したことを
    示すフラグデータをさらに出力する、請求項1〜5、7
    および8のいずれかに記載の演算プロセッサ。
  10. 【請求項10】 前記所定のビット間は、当該ビットよ
    りも大きい位のビット間であり、 前記所定の演算は、ビット間の論理和であり、 前記所定の値は0である、請求項9に記載の演算プロセ
    ッサ。
JP9092148A 1997-04-10 1997-04-10 演算プロセッサ Withdrawn JPH10283340A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9092148A JPH10283340A (ja) 1997-04-10 1997-04-10 演算プロセッサ
US08/954,586 US5974436A (en) 1997-04-10 1997-10-20 Execution processor for carrying out power calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9092148A JPH10283340A (ja) 1997-04-10 1997-04-10 演算プロセッサ

Publications (1)

Publication Number Publication Date
JPH10283340A true JPH10283340A (ja) 1998-10-23

Family

ID=14046356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9092148A Withdrawn JPH10283340A (ja) 1997-04-10 1997-04-10 演算プロセッサ

Country Status (2)

Country Link
US (1) US5974436A (ja)
JP (1) JPH10283340A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304890B1 (en) * 1998-02-04 2001-10-16 Matsushita Electric Industrial Co., Ltd. Exponential calculation device and decoding device
US6766346B2 (en) * 1999-11-30 2004-07-20 Mosaid Technologies Incorporation System and method for computing a square of a number
US6779015B1 (en) * 2000-06-22 2004-08-17 Sony Corporation Method for implementation of power calculation on a fixed-point processor using table lookup and linear approximation
US6745220B1 (en) * 2000-11-21 2004-06-01 Matsushita Electric Industrial Co., Ltd. Efficient exponentiation method and apparatus
US7454454B2 (en) * 2004-05-21 2008-11-18 Sap Ag Method and apparatus for efficient calculation of a matrix power series
JP2009008993A (ja) * 2007-06-29 2009-01-15 Nec Electronics Corp べき乗剰余演算器及びその制御方法
US9552189B1 (en) * 2014-09-25 2017-01-24 Altera Corporation Embedded floating-point operator circuitry
CN110048387A (zh) * 2019-04-28 2019-07-23 深圳市华星光电技术有限公司 过流保护电路及显示面板
US10969431B1 (en) * 2019-12-23 2021-04-06 Intel Corporation Error-tolerant architecture for power-efficient computing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6051733B2 (ja) * 1977-11-19 1985-11-15 日本電気株式会社 指数関数演算装置
JPS56147241A (en) * 1980-04-15 1981-11-16 Casio Comput Co Ltd Operation system
JPS58223847A (ja) * 1982-06-21 1983-12-26 Sharp Corp 整数べき乗演算装置
US4901267A (en) * 1988-03-14 1990-02-13 Weitek Corporation Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio
US5177702A (en) * 1990-07-19 1993-01-05 Motorola, Inc. Device and method for evaluating exponentials
US5195052A (en) * 1991-12-13 1993-03-16 International Business Machines Corporation Circuit and method for performing integer power operations

Also Published As

Publication number Publication date
US5974436A (en) 1999-10-26

Similar Documents

Publication Publication Date Title
JP7096828B2 (ja) 入力オペランド値を処理するための装置及び方法
JP7292297B2 (ja) 確率的丸めロジック
JPH10283340A (ja) 演算プロセッサ
JP2585649B2 (ja) 除算回路
WO1999066423A1 (fr) Dispositif pour calcul de donnees
US11449309B2 (en) Hardware module for converting numbers
JP2518293B2 (ja) デ−タフロ−プロセツサ
US4866651A (en) Method and circuit arrangement for adding floating point numbers
KR920003479B1 (ko) 곡선의 절선근사방법 및 장치
JP2012022500A (ja) Fft演算装置
US3280314A (en) Digital circuitry for determining a binary square root
Elshoff et al. The binary floating point digital differential analyzer
JPH08202533A (ja) 除算処理装置
JP2778478B2 (ja) 相関演算プロセッサ
JP3278441B2 (ja) ベクトル処理装置
KR100218522B1 (ko) 파이프 라이닝을 이용한 퍼지 제어기의 최소-최대처리회로
CN115408656A (zh) 空间机械臂运动规划中复杂函数的并行处理系统及方法
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit
JP2806459B2 (ja) フリップフロップが評価可能な論理シミュレーション装置
JPH04507023A (ja) Ieee 754―1985標準に準拠した2進浮動小数点演算丸め
WO2020084694A1 (ja) 演算処理装置及び演算処理装置の制御方法
JPH05181642A (ja) 演算装置
JP3461706B2 (ja) ディジットシリアル乗算器
JPH0477349B2 (ja)
JP2002304288A (ja) データ演算処理装置及びデータ演算処理プログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040706