JPH0467262A - 基本関数演算方式 - Google Patents

基本関数演算方式

Info

Publication number
JPH0467262A
JPH0467262A JP2179426A JP17942690A JPH0467262A JP H0467262 A JPH0467262 A JP H0467262A JP 2179426 A JP2179426 A JP 2179426A JP 17942690 A JP17942690 A JP 17942690A JP H0467262 A JPH0467262 A JP H0467262A
Authority
JP
Japan
Prior art keywords
control
calculation
control circuit
microprocessor
instruction
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
JP2179426A
Other languages
English (en)
Inventor
Tomonori Shirakawa
白川 友紀
Yoshio Koyanagi
義夫 小柳
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.)
University of Tsukuba NUC
Original Assignee
University of Tsukuba NUC
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 University of Tsukuba NUC filed Critical University of Tsukuba NUC
Priority to JP2179426A priority Critical patent/JPH0467262A/ja
Publication of JPH0467262A publication Critical patent/JPH0467262A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔技術上の利用分野] 本発明は、加算、減算及び乗算の機能並びに浮動小数点
表示、整数表示相互間の変換機能を持つ浮動小数点数値
演算プロセッサと、演算の対象となるデータを記憶蓄積
するメモリ装置とを有し、また、制御用マイクロプロセ
ッサ、制御用メモリ及び制御回路を持つ数値演算制御部
を有して成る基本関数演算方式に関する。
逆数の計算、平方根及びその逆数の計算、三角間数、逆
三角関数、指数関数、対数関数等いわゆる初等関数の計
算並びに疑似乱数の発生のような基本関数の演算は、本
発明の基本関数演算方式により高速にベクトル演算で実
行することができる。
〔従来の技術〕
スーパーコンピュータでは、パイプライン方式によるベ
クトル演算で高速の浮動小数点数値演算を実現している
が、この機能をパーソナルコンピュータ(PC)やワー
クステーション(WS)に搭載するには機能の簡単化、
小型化が必要である。またスーパーコンピュータ等のベ
クトル演算では、一連の演算中に条件分岐などが行えな
いので、性能が低下したり、プログラミングが難しくな
ったりする。近年に至り、パーソナルコンピュータやワ
ークステーションに高速浮動小数点演算専用のLSI(
FPU)を付加して、浮動小数点数値演算能力を高める
ことができるようになった。
上述のような数値演算制御部を持つ方式では、制御用メ
モリ中にベクトル演算命令の手順や初等関数の計算手順
等を予め記憶させておき、制御用マイクロプロセッサか
ら制御回路に、演算開始指令と共に所要の手順を格納し
である制御用メモリのアドレスを与えると、制御回路は
そのアドレスから命令を読み出し、その命令を復号化し
て、データ用のメモリ装置と数値演算プロセッサとの間
のデータ転送やプロセッサにおける演算を実行させる。
1つの命令を実行し終わると次の命令を読み出して同様
の順序を繰り返し、それによってベクトル演算を行うの
である。また、命令中にサブルーティンへの分岐命令が
あると、そのサブルーティンのアドレスを読み出し、サ
ブルーティンの最後には復帰命令があって、サブルーテ
ィンを呼び出した命令の次の命令に実行が戻る。こうし
てベクトル演算中にもサブルーティンを使用することが
できる。
浮動小数点数値演算プロセッサ(FPU)とデータを記
憶するメモリ装置と演算を制御する処理装置とを有する
浮動小数点演算方式は、同じ出願人による特願昭筒62
−231.093号(特開昭第64−74617号)で
開示されているが、科学技術計算用としては未だ十分な
ものとは云えない。
〔解決しようとする課題〕
本発明の目的は上述の方式をさらに改良して、加減乗算
の機能及び浮動小数点、整数画表示間の変換機能しか持
たない浮動小数点数値演算プロセッサを用いて上記の基
本関数等の高速演算を実現しようというものである。
〔課題解決の手段〕
本発明による上述のような基本関数演算方式は、スカラ
演算及びベクトル演算を共に高速で実行するために、上
記数値演算制御部においては、ベクトル演算の終了を表
す命令とサブルーティンからの復帰を表す命令とは同一
の符号構成とし、上記制御回路は、一連の命令シークエ
ンス中に該符号構成の命令が現れた時に該命令に先行す
るルーティン命令を呼び出したものが何であったかを判
別する機能を有し、それが制御用マイクロプロセッサで
あればベクトル演算の終了を実行し、制御回路であれば
サブルーティンからの復帰を実行するように構成したこ
とを特徴とする。
ベクトル演算は制御用マイクロプロセッサから見れば一
連の纏まった計算をする点では1つのサブルーティンと
見做すことができる。
本発明の1つの実施例においては、数値演算制御部は、
1つ又は複数の制御用マイクロプロセッサから多数の制
御回路を同時並列に使用できるように、各制御回路には
それを他の制御回路と区別する符号を出力する機能を付
与して構成したことを特徴とする。
本発明のまた別の実施例においては、数値演算制御部は
、1つの制御回路に複数の制御用マイクロプロセッサを
対応させることができるように、演算を開始させた制御
用マイクロプロセッサを他の制御用マイクロプロセッサ
から区別する機能を該制御回路に付与して構成したこと
を特徴とする。
本発明の更にまた別の実施例においては、数値演算制御
部は、その制御回路の中に条件分岐制御部を設け、該条
件分岐制御部は条件レジスタ・ファイル、条件判定部及
び命令アドレス・ポインタを有して成ることを特徴とす
る。
これにより、ベクトル演算中に演算結果に応じて条件分
岐が可能となる。
〔実施例〕
以下、図面により本発明の詳細な説明する。
第1図に示すのは、浮動小数点数値演算プロセッサにベ
クトル演算をさせる回路接続の概略である。浮動小数点
数値演算プロセッサ1と計算の対象となるデータを格納
するメモリ装置であるデータメモリ2とを制御するため
に、制御用マイクロプロセッサ3と制御用メモリ4と制
御回路5を含む演算制御部(第1図中、破線で囲んだ部
分)がアリ、制御用マイクロプロセッサ3から制御用メ
モリ4に対して予めベクトル演算の手順や初等関数計算
手順等のサブルーティンを書き込んで置く。
演算開始指令が制御用マイクロプロセッサ3から制御回
路5に、開始すべき計算手順の格納しである制御用メモ
リ4内のアドレスと共に与えられると、制御回路5はメ
モリ4から該開始すべき計算手順を読み出し、復号化し
てからこれによって数値演算プロセッサ1とデータメモ
リ2との間に所要のデータの転送を行わせ、数値演算プ
ロセッサ1に所要の演算を行わせる。
1つの命令を実行し終わると次の命令を読み出して同様
の順序を繰り返し、それによってベクトル演算を行うこ
とができる。また、命令中にサブルーティンへの分岐命
令があると、そのサブルーティンのアドレスを読み出し
、サブルーティンの最後には復帰命令があって、サブル
ーティンを呼び出した命令の次の命令に実行が戻る。こ
うしてベクトル演算中にもサブルーティンを使用するこ
とができる。
制御用マイクロプロセッサ3から見るとベクトル演算は
、1つの纏まった計算をするのでサブルーティンと見做
すことができる。そこでベクトル演算の終了を表す命令
とサブルーティンからの復帰を表す命令とを同一の符号
にしておき、制御回路5は全実行しているルーティンを
呼び出したのが制御回路であったか又はマイクロプロセ
ッサであったかを記憶しておくと、呼び出したのが制御
回路であればサブルーティンからの復帰を実行し、呼び
出したのが制御用マイクロプロセッサであればベクトル
演算の終了を実行するようにできる。
これによって、例えば初等関数等のルーティンをマイク
ロプロセッサ(すなわちスカラ演算)から呼び出すこと
も制御回路(すなわちベクトル演算)から呼び出すこと
もできるようになる。
第2図に示すのは、第1図に示す実施例の一変形であっ
て、2つの制御回路を配置した回路接続の概略である。
第1図と同じ回路コンポネントには同じ引用番号を付し
、変形部分についてはそれが容易に判別できるようなサ
フィックスが引用番号に付しである。各制御回路には他
の制御回路と区別する符号を出力する機能を設け、ベク
トル演算の終了時に、それを命じた制御用マイクロプロ
セッサにこれを知らせる時にこの符号も送る。
これにより1つの(又は後述のように複数の)制御用マ
イクロプロセッサから2つ(またはそれ以上の数の)制
御回路を同時並列に使用することができる。
浮動小数点数値演算プロセッサ1として例えば高速浮動
小数点演算LSIのL64133を用いると、これは6
0ナノ秒で加算と乗算を行うことができる。
従って100要素のベクトルの加算は6マイクロ秒で終
了する。しかしマイクロプロセッサが入力ベクトルや出
力ベクトルのアドレスを計算し、制御回路に設定するに
もやはり数マイクロ秒を要する。
そこで本発明のように制御回路を2つ設けて、1つの制
御回路が演算プロセッサlを制御してデータメモリ2と
演算プロセッサ1との間でベクトル演算を行っている間
に、もう1つの制御回路が次に行うべきベクトル演算の
ための設定をして置くことができ、これにより演算ブロ
モ・ンサの性能を充分に引き出すことができる。これは
ベクトル演算が多い応用に対して有効である。
第3図に示すのは、第1図に示す実施例のまた別の一変
形であって、1つの制御回路に複数の(図では3つの)
制御用マイクロプロセッサが対応するように配置した回
路接続の概略である。第1図と同じ回路コンポネントに
は同じ引用番号を付し、変形部分についてはそれが容易
に判別できるようなサフィックスが引用番号に付しであ
る。
制御回路に演算を開始させた制御用マイクロプロセッサ
を他の制御用マイクロプロセッサと区別する符号が、制
御回路中に記録されていると、複数の制御用マイクロプ
ロセッサからベクトル演算や基本関数等の高速演算を該
制御回路に行わせることができる。
スカシ演算中に基本関数等の演算が混在しているような
場合には、浮動小数点数値演算ブロモ・ノサでの計算時
間に比較して制御用マイクロプロセッサの処理時間が多
くなるので、複数の制御用マイクロプロセッサから数値
演算プロセッサ1と制御回路5を使うと、これらの利用
効率が良くなる。
スカシ演算中に基本関数等の演算が多くある場合に有効
な使用例である。
第4図は、ベクトル演算中に演算結果に応して条件分岐
を可能にする制御方式、すなわち条件分岐制御部51を
制御回路中に設けた実施例において、条件レジスタ・フ
ァイル52、条件判定部53及び命令アドレス・ポイン
タ54を有する条件分岐制御部51の回路接続の概略を
説明する図である。
従来ベクトル演算を行うシステム等では命令フェッチ、
デコード(復号化)、実行などをオーバラップさせて順
次行う、いわゆるバイブライン方式を採用しているが、
この方式では次の命令をフェッチする時期が、演算結果
によって分岐するか否かを判定する時期より早くなるこ
とがあるため、種々の困難が生じる。
本発明の条件分岐制御部51においては、条件レジスタ
・ファイル52が条件をラッチするのであって、プログ
ラムで分岐するか否かを判定するための条件をここに取
り込むことを指定し、該条件を分岐のための条件として
使用する。上記の困難を回避するために、分岐命令は1
ステツプで実行されるようにし、分岐命令以外の命令は
通常のバイブライン方式で実行されるようにすると、分
岐命令の実行は従来のプロセッサと同様の順で実行され
る。これによりベクトル演算中でも条件分岐が通常のプ
ログラミングの順に行われ、プログラミングが容易にな
る。
条件レジスタ・ファイル52を複数個の条件をラッチす
る回路で構成し、いくつかの条件を貯えるようにすると
便利である。条件分岐命令よりもパイプラインのステッ
プ数だけ先に条件をラッチする必要はあるが、この制限
はプログラムする場合には分かりやすい。
条件分岐を用いて関数の計算を高速に行う例として、逆
正接関数(arc tangen t)の計算の流れ(
手順)を第5図に示す。計算精度を効率よく高める為に
、変数XをO≦X≦1 (従って0≦Arctan x
≦π/4)の範囲に変換してから、多項式近似によりA
rctan xの計算を実行しようとすれば、条件分岐
が2回生しる。すなわち第5図の手順1で入力データ(
変数)Xが0≦Xか否かを判定条件として分岐が生じ、
その結果は第5図の手順7において用いられ、次に第5
図の手順3でX1≦1か否かを判定条件としてもう1度
分岐が生じ、その結果は第5図の手順6において用いら
れるのである。
以下、基本関数等の具体的な計算への応用例をいくつか
、構成と手順の概略を示す図面を用いて説明する。これ
らの実施例を通して、いくつかの初等関数計算で共通に
簡単な回路を用いることにより、高速に初等関数の計算
がスカラ演算、ベクトル演算のどちらからでも行うこと
ができ、かつ小型化できることが理解されよう。
逆lぽ口t1 第6図は、逆数をニュートン法で計算するための初期値
をROMによって惨え、これから逆数を精度良く計算す
るための演算の構成と手順を説明する図である。
入力Xの指数部をeとすると、yの指数部は126−e
が与えられる。Xの仮数部を1.f とすると、yの仮
数部は2/1.fの近位値が与えられる。
yはI/xの近似値として相対誤差は2−”または2−
16である。yの誤差が2−1のとき、y′は相対誤差
2−1s 、 、″は相対誤差2−24である。
従来は多項式近似によって初期値を求めているが、本方
式ではROMへのアドレスとして入力データをラッチす
る、RO?Iから初期値を読み出す、という2ステツプ
の演算により、初期値yが与えられる。
また、ニュートン法の2回目の反復においては、従来は
y’ =y’  (2−xy’ )の演算方式を用いて
いるが、32bit演夏器では2〜3 X 2−24の
誤差が生じる0本方式では、 ΔY=’j’  (1−xy’  ) y’  =y’  +Δy という計算を行うことにより1ステップ増えるが、誤差
は2−”  (最下位1bit)におさえられる。
′   びその゛ の5 第7図は、平方根の逆数をニュートン法で計算するため
の初期値をROMによって与え、これから平方根を精度
良く計算するための演算の構成と手順を説明する図であ
る。
入力Xの指数部をeとすると、yの指数部は(397−
e)/2−127  (eが偶数の場合)又は(380
−e ) /2−127  (eが奇数の場合)が与え
られる。Xの仮数部を1.fとするとyの仮数部ば2/
、ρ丁7の近似値が与えられる。
eが偶数の場合にyに1/J丁をかけると、yは1/7
丁の近似値として相対誤差が2−8である。
y′は相対誤差2−” 、Wは5の近似値として相対誤
差2−” 、w’は相対誤差244である。
従来は、多項式近似によってfマの近位値を求め、ニュ
ートン法を適用しているが、除算を含むので、高速化で
きない。本方式ではl/、/−マの近似値を求め、l/
77を与えるニュートン法を用いており、除算を必要と
しない。しかも、2回目の反復においてXとW2の差を
用いてWの値を補正する形に処理するので、従来の方法
より丸め誤差が少ない。
び・   の量 第8図は、指数関数を計算するための指数部埋め込みの
構成と手順を説明する図である。レジスタ81に貯えら
れたデータのうち、bi t23ないしbit30の8
ビツト(指数部)を、レジスタ82に貯えられたデータ
のうち、bitOないしbit7の8ビツトで置き換え
たものを出力する。
指数関数の計算方法は次のとおりである。
z=exp(x)−2ツとおくと ex、=27 これより両辺のlog、をとると x−1og*2ツ =  3”  log、  2従っ
てy=x/loga2 ここで7”3’+ +3’z +0.5とおく、ただし
ylはyの整数部、y2はyの小数部0.5とし、f 
(yz)は2(0・5−vy2+の近似多項式とすると z = 2 yIx f (yz) トナル。
従って、2を求めるには、f (yz)の多項式近似に
よりf (31りを求め、その指数部に3’++127
を埋め込めばよい。
計算手順は ■ 入力データXが88.7228より大きい時、ex
p(x)はオーバーフローするのでエラーとする。
■ 入力データXが−87,3365より小さい時、e
xp (x)はアンダーフローするので z =exp(x) =0.0 として、■へ進む。
■ Vr=最近整数(y−0,5)を求める。
■ f (yz)の近似多項式を求める。
■ f (yz)の指数部にyt+127を埋め込む。
→2とする。
■ 2の出力 である。
加減乗算により指数部にylを埋め込むには、10gz
 V l 〜y1回の乗算をしなければならず、データ
の値によっては非常に時間がかかる。本発明により1ス
テツプでこの操作が行なえるので高速となる。
第9図は第8図の一変形で、指数部にレジスタ82から
7Fを埋め込むようにした場合の手順を説明する図であ
る。また、第10図はこれを更に変形して指数部に7F
と云う値を直ちに埋め込むようにした場合の説明図であ
る。(第10図の方法では、レジスタ82に7Fと云う
値をロードする手順が省けるので、第9図よりもさらに
少し時間が短縮できる。)第11図は以上の指数部め込
みにより、対数関数計算のために指数部取り出しを行う
手順を説明する図である。図中、XORは排他的論理和
(exclusiveOR)を表す。さらに第12図は
第8図から第11図までを纏めて、仮数部取り出しと指
数部取り出しを行って、対数関数計算のための演算の構
成と手順を説明する図である。
対数関数の計算方法として、 z=logx を計算するには、 X ” 2 x’ X X z で表されていると考える。ここでXIはXの指数部であ
る。また、x2はXの仮数部と等しい値を持つ浮動小数
点である。つまり、Xの仮数部に指数部として127を
つけたものであるとすると、z = log (2”X
 Xz ) =  x、 Xlog 2 +log XzX2は1.
0≦x <2.0であるが、近似多項式を1/7丁−1
.0〜f丁−1,0 の範囲で計算すると、 y = x z X JT31 、 Oを求めて、f 
(y) = log (ご(1+y))の近似多項式を
計算する。
z=x+ Xlog2 +f(y) で答えが求められる。
計算手順は ■X≦0ならエラーとする。
■Xの指数部x1を取り出す。これは第11図に説明し
たやり方でb i t30ないしb i t23に指数
部のみを残す手順であって、先ず始めにレジスタ81に
はデータを、レジスタ82には32ビツトともOを入れ
ておき、次にレジスタ82の下位8ビツト (bit7
ないしbito)でレジスタ81の指数部(bit30
ないしb i t23)を置き換え、続いて元のデータ
とこれとのビット毎のXORをとると、bit30ない
しb i t23に元の指数部が残り、その他のビット
(bit31.bit22〜b i tO)は全部Oに
なる。それから浮動小数点数値演算プロセッサ(FPU
)により整数から浮動小数点へ変換し、更に243を掛
けると指数部の浮動小数点表示×1が得られる。
■Xの仮数部の浮動小数点表示x2を取り出す。
これは第9図又は第10図のやり方で■と同様の手順に
よればよいのだから詳しい説明は省略する。
QD  3’=Xz ×、rrll、0 ヲ計!。
■ f (y)の近似多項式の計算 f (Y) =ao+a+y +az31”+azy3
+−−−■ Z=X+ Xlog2 +f(y)の計算
■ 2の出力となる。
+ a、y’・ ■の多項式の計算では、 f  (y)=ao++a+y  +azy2+a3y
3+−−−−−  +aty7     (1)という
計算をする。これを加算と乗算を同時に行うことができ
るFPUを用いて高速に計算するには、 ステップI  Y”” yX y 同時に行うステップ
2  a 7 X y” = b 7    ↓ステッ
プ3  aaXy”=b、、   −−−−−by +
 a5=c5ステップ4 、  Cs×N=bs   
−−−−−bh +8m=C4ステツプ5  Ca×y
”=ba   −−−−−b5+a3=C3ステップ6
  C+XV”=tlz   −−−−−ba +az
=Czステップ7  cz×y”=bz   −−−−
−b3+a+ =(。
ステ゛ンプ8cIXy =bl   −−−−−bz+
ao=c。
ステップ9               b+ + 
Co = f (y)の9テスツプで計算できる。
従来は、(1)式を f (y) = ((((((a ty+aa) y+
aS) y+a4)y+a3) y+az) y+a 
I)y+a。
という形に書き換えて計算していた*  (Horne
rの方法)この方法では乗算と加算が順に1つずつ行わ
れなければならないため、14ステツプかかるが、本方
式では、5ステツプ高速になる。
加減乗算のみでは、指数部を取り出すことができない。
整数から浮動小数点への変換により、指数部を取り出す
方法では、仮数部の最上位ビ・ノドからの桁上げなどの
影響があり、丸めの方法を制御できないとうまくいかな
い。ここでは、XORを用いてこれを避けた。
仮数部の取り出しでは第9図のように、レジスタ82に
7Fをロードして埋め込むこともできる。
しかし、この方法では2ステツプの時間がかかるが、第
10図のように、7Fという値を直に埋め込むと1ステ
ツプででき、1ステツプ分高速となる。
髪凱甚敗葛生底 次に採り上げるのは、M系列疑似乱数の発生である。大
量の乱数を生成しようとする場合は、制御用マイクロプ
ロセッサに代わって専用の制御回路により高速データ転
送を行い、いわゆるベクトル演算を用いるやり方で高速
に乱数を発生させることができる。
第13図は、ベクトル演算で乱数を発生させるときのシ
ステム構成の一例を示す図であって、第13図中のXO
R回路は第14図に示す通りである。この方式では制御
用マイクロプロセッサに代わって高速のデータ転送を行
う専用の制御回路を設け、データ転送を制御用マイクロ
プロセッサを介することなくデータメモリとXOR回路
との間で直接行う。
第15図は高速データ転送を行う専用の制御回路の構成
の一例を示す図である。
ベクトル演算は、制御回路のメモリ、XOR回路、FP
U間データ転送によって高速に行われる。
まず初期設定を行う。制御メモリに乱数発生の手順、ア
ドレスレジスタに演算中にアドレスバスに出力するアド
レスの初期値(配列データの先頭アドレス)、増分レジ
スタにアドレスの増分値、終了レジスタに最終出力アド
レスを設定する。
次に開始制御回路をアクセスすることにより演算が開始
される。マイクロプロセッサは制御回路が演算の終了を
知らせるのを待つ。制御回路は命令を読み取って、XO
RとFPUに命令を出力し、アドレスレジスタは順次ア
ドレスを出力し、これに応じてメモリ、XOR回路、F
PU間でデータの転送、演算が行われる。
演算の手順は ■ データメモリに、2個の乱数の元となるデータを入
れておく。
■ 正規化のための係数をFPUのレジスタにラッチし
ておく。
■ データメモリから乱数の元となるデータをXOR回
路レジスタ(イ)に読み込む。
■ さらにそのデータのq個前のデータをレジスタ(ロ
)に読み込む。
■ (イ)と(ロ)のデータのXORをとったものをメ
モリに書き込む((イ)のデータの読み取ったところに
書き込む)と同時にFPUのレジスタにもラッチする。
■ FPU中で正規化のための係数と■でラッチしたデ
ータを乗算して、正規化を行うと同時に、前回■又は■
で読み込んだデータの次のデータをXOR回路のレジス
タ(イ)に読み込む。
■ ■〜■を2回繰り返す。
制御回路の加算器では、アドレス値に増分値の加算を行
い、アドレスレジスタの内容を更新する。
増分値が正のときはアドレス出力が終了レジスタの内容
より大きくなったことを、増分値が負のときはアドレス
出力が終了レジスタの内容より小さくなったことを比較
器により検出し、終了制御回路に伝えられ演算が終了す
る。終了後はマイクロプロセッサとバスを接続し、マイ
クロプロセッサの制御下で他の処理を行う。
2回の繰り返しの終了は、終了レジスタとアドレス出力
との比較による方法以外に、条件分岐を用いる方法があ
る。
最初2個の乱数の元となる数として、正の数のみを用意
しておくとXOR演算では、符号が変わらないので、第
16図のように2個のデータの次に負の数を入れておき
、(ロ)への入力データが負になれば、アドレスレジス
タの値をPだけ減じ、更にq回の実行後、入力レジスタ
(イ)の入力データが負になるのを検出して、乱数発生
の演算を終了することもできる。
ベクトル演算の実行時間は、初期設定の時間+1要素当
たりの演算時間×ベクトルの要素数となる。XOR回路
などにより乱数発生をベクトル演算化することにより、
この時間で乱数が発生できる。
具体例として、p =521 、q =32として、乱
数を発生させるFPUとして60nsのL64133を
用いると、240 nsに1個の一様乱数が得られた。
ベクトル゛ のデバッグ パイプライン方式の場合、ステップ実行のために、単に
クロックを1つずつ与えると、パイプライン中で途中結
果が停まってしまい、進行状況をうまく把握することが
難しい。そこでステップ実行時には、パイプライン初段
から終段まで1つのクロックを順次送ることを1ステツ
プと考え、1つの波がパイプラインに沿って動くように
すると、途中の実行の様子がよく分かるようになる。こ
れは前に述べた条件分岐の方式なので、この方法でベク
トル演算中の実行順序と同一のデータ処理が行われる。
第17図は本方式のパイプライン制御回路の構成を説明
する図であって、これに対して従来の方式によるパイプ
ライン制御回路の構成は第18図に示す通りである。
本方式では、命令フェッチ、デコード、実行が順次1動
作して1つの命令が3ステップ動き、1つずつ命令が完
結するのでわかりやすい。これに対して従来の方式では
、命令フェッチ、デコード、実行が一斉に動作して3つ
の命令が1ステツプずつ動き、並列動作なのでわかりに
くい。この動作の違いを第19図〜第21図に示す。
第19図はパイプライン方式によるベクトル演算の連続
実行のタイムチャートである。連続実行の場合は、従来
方式でも、本方式でも同じように動作する。従来方式の
ステップ実行の場合のタイムチャートを第20図に示す
。従来方式では、ステップ実行の指令により1ステツプ
の実行をする(命令■の実行、命令■のデコード、命令
■のフェッチを同時に行う)。この方式では、条件分岐
命令をフェッチしてから条件を調べないと実際に判定さ
れる条件がわからない。また、既に次の命令のデコード
、次の次の命令のフェッチが終わっているので、命令を
途中で書き換えても、実行に反映されない。また、例え
ば■の命令をフェッチした時に停止させると、この時は
まだ■の実行が終わっていない。しかし、デバッグをし
ている人間は、■の命令が実行されないのが正常ではな
いように感じ、デパックしにくい。
本方式によるステップの実行の場合のタイムチャートを
第21図に示す。本発明による方式では、ステップ実行
の指令により1命令をフェッチし、デコードし、実行す
るので、条件分岐命令の前に設定されている条件を調べ
ることが可能である。
また、次のステップ実行指数があってから命令をフェッ
チするので、命令を書換えて実行することが可能である
ベクトル   のエラー 第22図は、ベクトル演算中にソフトウェア的にエラー
を検出して停止する回路の構成を説明する図である。
エラーが生じた場合、エラー処理をソフトウェアで行う
ので、すぐには停止せず、エラー処理ルーチンの最後に
書く特別な停止命令を設けて、これにより停止する。す
るとマイクロプロセッサ−にエラーにより停止したこと
が知らされる。
従来スーパーコンピュータのベトクル演算などでは、ベ
クトル演算中にエラー(オーバーフローなど)が生じた
場合、そのエラーを生じたのが、何番目の演算であった
かなどを記録しておき、連のベクトル演算を終了してか
らプロセッサにエラーを知らせる。しかし、この方式を
採用すると、関数計算などで、入力データが正しくない
場合(例えば対数の計算で入力が0又は負であったよう
な時)には、この方法では対数の計算中にオーバーフロ
ーがあったということしかわからない。
本方式では、まず関数に入力されたデータが正しい範囲
にあるかどうかをベクトル演算中であってもチエツクす
ることにし、図のように入力の判別を行う。この時、デ
ータが不正なものであった場合には、バードウェア的に
エラーがあったことを知らせるため、例えば、第23図
に示す対数計算におけるエラー処理の例ではIn (自
然対数)の計算の途中でオーバーフローが実際に発生す
るのを待たずに、直ちにオーバーフローなどのエラーを
わざと発生させ、マイクロプロセッサに割り込みをかけ
る。そして、特別の命令でベクトル演算の途中であって
も、直ちに停止し、以後の計算をしない。これは、一部
でエラーが住じた場合でもそのベクトル演算全体が無意
味なものとなることが多いからである。直ちに停止する
ことにより、停止時の状況が保存されるので、マイクロ
プロセッサから、停止した後の各レジスタの内容などの
状況を調べることにより、どのような原因でエラーが起
こったかを容易に把握できる。
【図面の簡単な説明】
第1図は、浮動小数点数値演算プロセッサにベクトル演
算をさせる回路接続の概略を示す図であり、 第2図は、第1図に示す実施例の一変形であって、2つ
の制御回路を配置した回路接続の概略を示す図であり、 第3図は、第1図に示す実施例のまた別の一変形であっ
て、1つの制御回路に複数の制御用マイクロプロセッサ
が対応するように配置した回路接続の概略を示す図であ
り、 第4図は、ベクトル演算中に演算結果に応じて条件分岐
を可能にする制御方式において、条件分岐制御部の回路
接続の概略を説明する図であり、第5図は、条件分岐の
具体例として逆正接関数の計算の手順を示す流れ図であ
り、 第6図は、逆数をニュートン法で計算するための演算の
構成と手j@を説明する図であり、第7図は、平方根と
その逆数をニュートン法で計算するための演算の構成と
手順を説明する図であり、 第8図、第9図、第10図、第11図及び第12図は、
指数関数及び対数関数の計算のための演算の構成と手順
を説明する図であり、 第13図、第14図、第15図及び第16図は、ベクト
ル演算で乱数を発生させるときのシステム構成の例を示
し、かつ、これを説明するための図であり、第17図は
、ベクトル演算のデバッグのための本発明の方式による
パイプライン制御回路の構成を説明する図であり、第1
8図はこれと対比して従来の方式によるパイプライン制
御回路の構成を説明する図であり、 第19図、第20図及び第21図は、第17図に示す構
成と第18図に示す構成との動作の違いを理解するため
の説明図であり、 第22図は、ベクトル演算中にソフトウェア的にエラー
を検出して停止する回路の構成を説明する図であり、 第23図は、第22図に示す実施例の具体例として、対
数計算におけるエラー処理の手順を説明する図である。 1・・・浮動小数点数値演算プロセッサ2・・・データ
メモリ 3、3A、 3B、 3C・・・制御用マイクロプロセ
ッサ4・・・制御用メモリ 5、5A、 5B・・・制御回路 51・・・制御回路中の条件分岐制御部間

Claims (1)

  1. 【特許請求の範囲】 1、加算、減算及び乗算の機能並びに浮動小数点表示、
    整数表示相互間の変換機能を持つ浮動小数点数値演算プ
    ロセッサと、演算の対象となるデータを記憶蓄積するメ
    モリ装置とを有し、また、制御用マイクロプロセッサ、
    制御用メモリ及び制御回路を持つ数値演算制御部を有し
    て成る基本関数演算方式において、スカラ演算及びベク
    トル演算を共に高速で実行するために、上記数値演算制
    御部においては、ベクトル演算の終了を表す命令とサブ
    ルーティンからの復帰を表す命令とは同一の符号構成と
    し、 上記制御回路は、一連の命令シークエンス中に該符号構
    成の命令が現れた時に該命令に先行するルーティン命令
    を呼び出したものが何であったかを判別する機能を有し
    、それが制御用マイクロプロセッサであればベクトル演
    算の終了を実行し、制御回路であればサブルーティンか
    らの復帰を実行するように構成したことを特徴とする基
    本関数演算方式。 2、数値演算制御部は、1つ又は複数の制御用マイクロ
    プロセッサから多数の制御回路を同時並列に使用できる
    ように、各制御回路にはそれを他の制御回路と区別する
    符号を出力する機能を付与して構成したことを特徴とす
    る請求項1に記載の基本関数演算方式。 3、数値演算制御部は、1つの制御回路に複数の制御用
    マイクロプロセッサを対応させることができるように、
    演算を開始させた制御用マイクロプロセッサを他の制御
    用マイクロプロセッサから区別する機能を該制御回路に
    付与して構成したことを特徴とする請求項1に記載の基
    本関数演算方式。 4、数値演算制御部は、その制御回路の中に条件分岐制
    御部を設け、該条件分岐制御部は条件レジスタ・ファイ
    ル、条件判定部及び命令アドレス・ポインタを有して成
    ることを特徴とする請求項1ないし3のうちのいずれか
    1項に記載の基本関数演算方式。
JP2179426A 1990-07-09 1990-07-09 基本関数演算方式 Pending JPH0467262A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2179426A JPH0467262A (ja) 1990-07-09 1990-07-09 基本関数演算方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2179426A JPH0467262A (ja) 1990-07-09 1990-07-09 基本関数演算方式

Publications (1)

Publication Number Publication Date
JPH0467262A true JPH0467262A (ja) 1992-03-03

Family

ID=16065656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2179426A Pending JPH0467262A (ja) 1990-07-09 1990-07-09 基本関数演算方式

Country Status (1)

Country Link
JP (1) JPH0467262A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01116828A (ja) * 1987-10-30 1989-05-09 Hitachi Ltd データ演算処理装置
JPH01173132A (ja) * 1987-12-28 1989-07-07 Matsushita Electric Ind Co Ltd マイクロプログラム制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01116828A (ja) * 1987-10-30 1989-05-09 Hitachi Ltd データ演算処理装置
JPH01173132A (ja) * 1987-12-28 1989-07-07 Matsushita Electric Ind Co Ltd マイクロプログラム制御装置

Similar Documents

Publication Publication Date Title
US5093908A (en) Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US4879676A (en) Method and apparatus for precise floating point exceptions
JP5647859B2 (ja) 乗累算演算を実行するための装置および方法
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
US6603481B1 (en) Geometry processor capable of executing input/output and high speed geometry calculation processing in parallel
EP0450802B1 (en) Floating point arithmetic unit
CA1119731A (en) Multibus processor for increasing execution speed using a pipeline effect
KR20190045316A (ko) 벡터 곱셈 덧셈 명령
WO2009023595A1 (en) Method and system for large number multiplication
JPH0214731B2 (ja)
WO2002048873A2 (en) Exception handling in a pipelined processor
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
US5764556A (en) Method and apparatus for performing floating point addition
Knofel Fast hardware units for the computation of accurate dot products
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
JPH07120284B2 (ja) データ処理装置
JP2001501755A (ja) データ処理条件コード・フラグ
JP2001501001A (ja) データ処理システムにおける入力オペランド制御
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
JPH0467262A (ja) 基本関数演算方式
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
US6625632B1 (en) Method and apparatus for square root generation using bit manipulation and instruction interleaving
US7237000B2 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
US7406590B2 (en) Methods and apparatus for early loop bottom detection in digital signal processors