JPS62208126A - 演算処理装置 - Google Patents
演算処理装置Info
- Publication number
- JPS62208126A JPS62208126A JP5036486A JP5036486A JPS62208126A JP S62208126 A JPS62208126 A JP S62208126A JP 5036486 A JP5036486 A JP 5036486A JP 5036486 A JP5036486 A JP 5036486A JP S62208126 A JPS62208126 A JP S62208126A
- Authority
- JP
- Japan
- Prior art keywords
- data
- length
- exponent
- floating point
- register
- 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
Links
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 239000000203 mixture Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 15
- 230000014509 gene expression Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、演算処理装置に関し、特に指数部可変長表現
と指数部固定長表現による両浮動小数点数の演算を効率
よく行う演算処理装置に関するものである。
と指数部固定長表現による両浮動小数点数の演算を効率
よく行う演算処理装置に関するものである。
浮動小数点表現は、大きな数も小さな数も同一精度で取
り扱うことができるため、特に科学技術計算に多く利用
されている表現形式である。
り扱うことができるため、特に科学技術計算に多く利用
されている表現形式である。
しかし、従来の浮動小数点表現では、指数表現部(以下
、単に指数部と記す)の長さが固定であったため、表現
できる数の範囲が限られるとともに、指数部の値が小さ
くて少ない情報ですむ場合でも、その余った部分で仮数
部の精度を上げる等の柔軟性がないという欠点があった
。
、単に指数部と記す)の長さが固定であったため、表現
できる数の範囲が限られるとともに、指数部の値が小さ
くて少ない情報ですむ場合でも、その余った部分で仮数
部の精度を上げる等の柔軟性がないという欠点があった
。
そこで、指数部を可変長にして、±1に近い数値は高精
度で表現する一方、極端に大きな数や極端に小さな数で
も表現できる柔軟性のある浮動小数点数の表現法および
演算装置が提案された。
度で表現する一方、極端に大きな数や極端に小さな数で
も表現できる柔軟性のある浮動小数点数の表現法および
演算装置が提案された。
〔情報処理学会論文誌第24巻第2号(58/3)「2
重指数分割に基づくデータ長独立実数値表現法■」およ
び特開昭59−11444号公報「浮動小数点演算装置
」参照。〕しかし、この演算装置においては、従来の指
数部固定長表現による演算と、指数部可変長表現による
演算との両演算を同一の演算装置内で効率よく行うこと
については開示していない。
重指数分割に基づくデータ長独立実数値表現法■」およ
び特開昭59−11444号公報「浮動小数点演算装置
」参照。〕しかし、この演算装置においては、従来の指
数部固定長表現による演算と、指数部可変長表現による
演算との両演算を同一の演算装置内で効率よく行うこと
については開示していない。
第2図、第3図は、それぞれ従来の指数部固定長浮動小
数点データ形式の例を示す図である。
数点データ形式の例を示す図である。
浮動小数点表現は、一般的には、第2図に示す形式で示
される。第2図において、フィールド1は仮数部3の符
号を示す符号部で、これによりこの浮動小数点数が正数
か負数かを判別する。フィールド2は指数部、フィール
ド3は仮数部である。
される。第2図において、フィールド1は仮数部3の符
号を示す符号部で、これによりこの浮動小数点数が正数
か負数かを判別する。フィールド2は指数部、フィール
ド3は仮数部である。
すなわち、数Xが正数である場合には、指数eと仮数f
とで、x=28−fのように表現される。
とで、x=28−fのように表現される。
具体的な例を、第3図に示す。第2図(a)は単精度デ
ータの32ビツト構成の場合、第3図(b)は倍精度デ
ータの64ビツト構成の場合を、それぞれ示している。
ータの32ビツト構成の場合、第3図(b)は倍精度デ
ータの64ビツト構成の場合を、それぞれ示している。
フィールド1は1ビツトで構成され、仮数部の符号を示
す符号部、フィールド4は7ビツトで構成され、2の補
数表示で値が表わされる指数部、フィールド5は24ビ
ツトまたは56ビツトで構成され、2の補数表示で値が
表わされる仮数部である(ただし、仮数部は正規化され
、最上位ビットは隠されて表現されているものとする)
。なお、6は指数部4と仮数部5との分離点である。
す符号部、フィールド4は7ビツトで構成され、2の補
数表示で値が表わされる指数部、フィールド5は24ビ
ツトまたは56ビツトで構成され、2の補数表示で値が
表わされる仮数部である(ただし、仮数部は正規化され
、最上位ビットは隠されて表現されているものとする)
。なお、6は指数部4と仮数部5との分離点である。
第2図、第3図に示すように、従来の指数部固定長表現
では、指数部4と仮数部5との分離点6が固定されてい
た。このため、従来の指数部固定長表現での加減乗除算
等の演算では、指数部4と仮数部5の各ビット数が固定
であるため、演算制御が比較的簡単であった。
では、指数部4と仮数部5との分離点6が固定されてい
た。このため、従来の指数部固定長表現での加減乗除算
等の演算では、指数部4と仮数部5の各ビット数が固定
であるため、演算制御が比較的簡単であった。
第4図は、前述し、た先願による指数部可変長表現の浮
動小数点データ形式の例を示す図である。
動小数点データ形式の例を示す図である。
第4図(a)(b)において、フィールド1は符号部、
フィールド6は分離点、フィールド7は第1指数部(指
数部前半部)、フィールド8は指数部長区切部、フィー
ルド9は第2指数部(指数部後半部)、フィールド10
は仮数部である。
フィールド6は分離点、フィールド7は第1指数部(指
数部前半部)、フィールド8は指数部長区切部、フィー
ルド9は第2指数部(指数部後半部)、フィールド10
は仮数部である。
第4図に示すように、指数部可変長表現では、符号部1
、指数部7,8,9、仮数部10の合計ビット数は固定
であるが、この限られた範囲内において指数部7,8.
9と仮数部10の各ビット長が可変となる。つまり、指
数部7,8.9と仮数部10の分離点6が移動する。し
たがって、前述したように1表現可能な数の範囲の拡大
と1表現精度の柔軟性を具備する反面、演算制御は指数
部固定長表現の場合と比べて複雑となる。
、指数部7,8,9、仮数部10の合計ビット数は固定
であるが、この限られた範囲内において指数部7,8.
9と仮数部10の各ビット長が可変となる。つまり、指
数部7,8.9と仮数部10の分離点6が移動する。し
たがって、前述したように1表現可能な数の範囲の拡大
と1表現精度の柔軟性を具備する反面、演算制御は指数
部固定長表現の場合と比べて複雑となる。
また、従来開発された科学技術プロゲラ11の殆どすべ
てが指数部固定長データを基本としているので、演算処
理装置は指数部可変長データの演算のみならず、指数部
固定長データの演算も実行できるように構成することが
要求される。この要求を満足させると、演算制御はさら
に複雑となる。
てが指数部固定長データを基本としているので、演算処
理装置は指数部可変長データの演算のみならず、指数部
固定長データの演算も実行できるように構成することが
要求される。この要求を満足させると、演算制御はさら
に複雑となる。
なお、これ以降の説明では、指数部固定長表現、指数部
固定長データ、および指数部可変長表現、指数部可変長
データを、それぞれ単に固定長表現。
固定長データ、および指数部可変長表現、指数部可変長
データを、それぞれ単に固定長表現。
固定長データおよび可変長表現、可変長データと略記す
る。
る。
本発明の目的は、このような従来の問題点を解決し、可
変長データと固定長データの両浮動小数点演算を実行す
る場合、少ない回路を用いて効率よく演算でき、同一プ
ログラム内で両データの演算を自由に混在可能とする演
算装置を提供することにある。
変長データと固定長データの両浮動小数点演算を実行す
る場合、少ない回路を用いて効率よく演算でき、同一プ
ログラム内で両データの演算を自由に混在可能とする演
算装置を提供することにある。
上記目的を達成するため、本発明の演算処理装置は、浮
動小数点データの演算を行う演算処理装置において、指
数部固定長浮動小数点データの演算まはた指数部可変長
浮動小数点データの演算であることを識別するために2
組の命令セットをもつ、命令制御手段と、該制御手段の
演算識別結果により、該両浮動小数点データの演算に先
立って共通指数部固定長浮動小数点データに変換する第
1の変換手段と、該制御手段の演算識別結果により、演
算結果の該共通指数部固定長浮動小数点データを該両浮
動小数点データのいずれかに変換する第2の変換手段を
有することを特徴とする。
動小数点データの演算を行う演算処理装置において、指
数部固定長浮動小数点データの演算まはた指数部可変長
浮動小数点データの演算であることを識別するために2
組の命令セットをもつ、命令制御手段と、該制御手段の
演算識別結果により、該両浮動小数点データの演算に先
立って共通指数部固定長浮動小数点データに変換する第
1の変換手段と、該制御手段の演算識別結果により、演
算結果の該共通指数部固定長浮動小数点データを該両浮
動小数点データのいずれかに変換する第2の変換手段を
有することを特徴とする。
本発明の詳細な説明する前に、先ず本発明で用いる可変
長表現について述べる。
長表現について述べる。
本発明で用いる可変長表現の特徴は、指数部内の先行す
る0の列、あるいは1の列(第4図(a)(b)に示す
第1指数部7に該当する)により指数部の長さを指定す
る点にある。これにより、高頻度で出現する±1に近い
数値は、指数部を短くして仮数部を長くとることができ
、従来の固定長表現より精度よく表現できる。また、従
来の固定長表現では表現不可能であった大きな数、ある
いは小さな数については、指数部を長くとることにより
表現が可能になる。
る0の列、あるいは1の列(第4図(a)(b)に示す
第1指数部7に該当する)により指数部の長さを指定す
る点にある。これにより、高頻度で出現する±1に近い
数値は、指数部を短くして仮数部を長くとることができ
、従来の固定長表現より精度よく表現できる。また、従
来の固定長表現では表現不可能であった大きな数、ある
いは小さな数については、指数部を長くとることにより
表現が可能になる。
いま、表現しようとする数をXとし、これを2つの数e
とfとで次のように表現する。
とfとで次のように表現する。
x=26−f ・・・(1)
ここで、値を一意的にするため、eとfに次の条件を設
ける。
ここで、値を一意的にするため、eとfに次の条件を設
ける。
(i)x>Oの場合
e:整数 ・・・(2)1≦
f<2 ・・・
(3)f=1.flfz・・・・・・f、・・・・・・
・・・(4)上記(4)において、fl
・・・f、・・・を仮数部のビットバタンとする。なお
、以下の実施例で用いる固定長表現および共通表現での
仮数部も、同じビットバタンとする。
f<2 ・・・
(3)f=1.flfz・・・・・・f、・・・・・・
・・・(4)上記(4)において、fl
・・・f、・・・を仮数部のビットバタンとする。なお
、以下の実施例で用いる固定長表現および共通表現での
仮数部も、同じビットバタンとする。
(a)e>Oのとき、eが2進m桁で表わせる範囲は次
のようになる(なお、m〉0)。
のようになる(なお、m〉0)。
2a″″!≦e≦21′−1−(5)
上式(5)に式(3)のfの範囲も含めて、Xの範囲で
表わせば、次のようになる。
表わせば、次のようになる。
2 za−t≦x < 2 ”
=・(6)(b)e(Qのとき、Xの範囲を次式で表わ
す。
=・(6)(b)e(Qのとき、Xの範囲を次式で表わ
す。
2−■≦x < 2−”−’ −(7
)上式(7)をeの範囲で表わせば、次のようになる。
)上式(7)をeの範囲で表わせば、次のようになる。
−2”≦e≦−2”−’−1−(8)
上式(8)より、eの表現を2の補数表現と考えて、仮
数fついても次のようにする。
数fついても次のようにする。
x < Oのとき、
一2≦+〈−1・・・(3)′
なお、上式(5)と(8)には、6=Q、6=−1の場
合が含まれていないが、これはm=oと解釈する。これ
らを含めて、eが2進m桁で表わされる場合の整数eの
内部表現を次のようにする。
合が含まれていないが、これはm=oと解釈する。これ
らを含めて、eが2進m桁で表わされる場合の整数eの
内部表現を次のようにする。
・・・(9)
ここで定められたmとe ml・・・ezexの列とか
ら。
ら。
mの識別ビット列を左に追加して指数部を次のとおりに
構成する。
構成する。
式(10)のビット列の符号のない固定小数点2進数と
しての大小順は、eの大小順に一致する。
しての大小順は、eの大小順に一致する。
Xの大小順は、仮数部を含めて考えても、eの大小順に
一致する。
一致する。
(ii)x(Qの場合、
この場合も、(i)とほぼ同様で、上式(6)の代りに
、Xの範囲を次のようにする(e〉0のとき)。
、Xの範囲を次のようにする(e〉0のとき)。
一21m≦x<−2’″−1・・・(6)′また、上式
(7)の代りに、Xの範囲を次のようにする(e〈0の
とき)。
(7)の代りに、Xの範囲を次のようにする(e〈0の
とき)。
2 am−t≦ x<−2−’−膳
…(7)′x < Oでは、Xの順とeの順
が逆であることを考慮して、式(10)の順を逆にすれ
ばよいが、これは工の補数をとることにより得られるの
で、上式(10)の代り辷次のようにする。
…(7)′x < Oでは、Xの順とeの順
が逆であることを考慮して、式(10)の順を逆にすれ
ばよいが、これは工の補数をとることにより得られるの
で、上式(10)の代り辷次のようにする。
なお、上式(10)’ において、丁のように上線のあ
るものは、各ビットのOと1の反転操作を表わしている
。
るものは、各ビットのOと1の反転操作を表わしている
。
また、上式(10)、(10)’ における■■ ■は
、それぞれ、第4図に示す第1指数部7、指数部長区切
部8.第2指数部9に対応するものである。
、それぞれ、第4図に示す第1指数部7、指数部長区切
部8.第2指数部9に対応するものである。
第5図は1本発明で用いる可変長表現と従来の固定長表
現との指数部の対応例を示す図である。
現との指数部の対応例を示す図である。
第5図から明らかなように、可変長表現では。
仮数部の符号の次に、先行するOの列あるいは1の列に
より、X≧0でe≧Oと、X≧0でe < 0と、x
< Oでe≧0と、x < Oでe < Oとを区別で
き、また、指数部長区切部と第2指数部の長さm−1桁
を識別することができる。
より、X≧0でe≧Oと、X≧0でe < 0と、x
< Oでe≧0と、x < Oでe < Oとを区別で
き、また、指数部長区切部と第2指数部の長さm−1桁
を識別することができる。
以下、本発明の詳細な説明する。
第1図は、本発明の実施例を示す演算処理装置の構成図
である。
である。
第1図において、50は記憶装置、51はPR。
〜FRsの4個のレジスタで植成される浮動小数点レジ
スタ、100は命令制御装置、101は命令バッファ、
102は命令レジスタ、103はデコーダ、200は浮
動小数点演算処理装置、201゜202.205,20
6,211〜214,217゜218.220はレジス
タ、52,53,207〜210,221はセレクタ、
215は指数部演算器、216は仮数部演算器、203
,204゜219は変換回路である。
スタ、100は命令制御装置、101は命令バッファ、
102は命令レジスタ、103はデコーダ、200は浮
動小数点演算処理装置、201゜202.205,20
6,211〜214,217゜218.220はレジス
タ、52,53,207〜210,221はセレクタ、
215は指数部演算器、216は仮数部演算器、203
,204゜219は変換回路である。
本実施例で用いるデータの表現形式は、固定長表現デー
タとして、第3図(b)に示す倍精度固定長表現データ
(データ長64ビツト)を、可変長表現データとして、
第4図(b)に示す倍精度可変長表現データ(データ長
64ビツト)を、それぞれ用いる。記憶装置50だけで
なく、浮動小数点レジスタ51にも、これら両方のデー
タが混在して記憶されている。
タとして、第3図(b)に示す倍精度固定長表現データ
(データ長64ビツト)を、可変長表現データとして、
第4図(b)に示す倍精度可変長表現データ(データ長
64ビツト)を、それぞれ用いる。記憶装置50だけで
なく、浮動小数点レジスタ51にも、これら両方のデー
タが混在して記憶されている。
第1図では両表現データの演算に先立って、これらを共
通の固定長表現データに変換するが、ここでは、変換後
の固定長表現データとして拡張固定長表現データを用い
る。可変長表現データとして、第4図(b)に示す倍精
度データを用いると、仮数部の最大ビット長は61ビツ
トである。また。
通の固定長表現データに変換するが、ここでは、変換後
の固定長表現データとして拡張固定長表現データを用い
る。可変長表現データとして、第4図(b)に示す倍精
度データを用いると、仮数部の最大ビット長は61ビツ
トである。また。
拡張固定長表現で表わされた場合の指数部の最大ビット
数は、ここでは31ビツトとする。この値は、指数部の
ビット数が増大し、仮数部のビット数がそれに伴って減
少していき、これが0になる時点における値であって、
十分に広範囲のデータを表現できる。実際には1表現可
能なデータの範囲をさらに拡張することができる。すな
わち、仮数部のビット数が0になったとき、第4図(b
)に示す第1指数部7を増加させ、それに伴って第2指
数部9を減少させることにより、範囲はさらに拡張され
る。
数は、ここでは31ビツトとする。この値は、指数部の
ビット数が増大し、仮数部のビット数がそれに伴って減
少していき、これが0になる時点における値であって、
十分に広範囲のデータを表現できる。実際には1表現可
能なデータの範囲をさらに拡張することができる。すな
わち、仮数部のビット数が0になったとき、第4図(b
)に示す第1指数部7を増加させ、それに伴って第2指
数部9を減少させることにより、範囲はさらに拡張され
る。
第6図は、本発明で用いられる拡張固定長表現データの
+’lt成図である。
+’lt成図である。
第6図において、フィールド1は1ビツトの符号部、フ
ィールド11は31ビツトの指数部、フィールド12は
64ビツトの仮数部である。なお、仮数部12は最大6
1ビツトで済むが、8ビツトのバイト単位にノーマライ
ズして64ビツトにする。
ィールド11は31ビツトの指数部、フィールド12は
64ビツトの仮数部である。なお、仮数部12は最大6
1ビツトで済むが、8ビツトのバイト単位にノーマライ
ズして64ビツトにする。
第7図は、第1図の変換回路203,204における可
変長データから拡張固定長データへの変換操作を示す図
、第8図は同じく変換回路219における拡張固定長デ
ータから可変長データへの変換操作を示す図である。
変長データから拡張固定長データへの変換操作を示す図
、第8図は同じく変換回路219における拡張固定長デ
ータから可変長データへの変換操作を示す図である。
第1図、第7図および第8図により、固定長データおよ
び可変長データの両演算の処理方法を説明する。
び可変長データの両演算の処理方法を説明する。
第1図においては、加減乗除算で用いる演算器を両演算
で共用し、効率よく演算処理を行い、メモリと浮動小数
点レジスタ間およびメモリと演算器間、さらに浮動小数
点レジスタと演算器間のデータ幅およびデータ構造は共
通にし、両浮動小数点演算を区別するために命令セット
を2組用意して演算処理を行う。
で共用し、効率よく演算処理を行い、メモリと浮動小数
点レジスタ間およびメモリと演算器間、さらに浮動小数
点レジスタと演算器間のデータ幅およびデータ構造は共
通にし、両浮動小数点演算を区別するために命令セット
を2組用意して演算処理を行う。
(1)記憶装置50から浮動小数点レジスタ51へのデ
ータの読出し。
ータの読出し。
このために公知のロード命令が使用される。すなわち、
ロード命令が命令レジスタ102にセットされ、デコー
ダ103で解読されると、メモリアクセス回路300が
、この命令に応答して記憶表h¥50のアドレスを発生
して、記憶装置50をアクセスし、この命令が指定する
アドレスのデータが線L112およびセレクタ52を介
して浮動小数点レジスタに格納される。浮動小数点レジ
スタ51内の、このデータを格納すべきレジスタF R
t (i = 1〜4)も、この命令により指定され
る0本実施例では、ロード命令は可変長データと固定長
データについて同一の命令コードのものが使用される。
ロード命令が命令レジスタ102にセットされ、デコー
ダ103で解読されると、メモリアクセス回路300が
、この命令に応答して記憶表h¥50のアドレスを発生
して、記憶装置50をアクセスし、この命令が指定する
アドレスのデータが線L112およびセレクタ52を介
して浮動小数点レジスタに格納される。浮動小数点レジ
スタ51内の、このデータを格納すべきレジスタF R
t (i = 1〜4)も、この命令により指定され
る0本実施例では、ロード命令は可変長データと固定長
データについて同一の命令コードのものが使用される。
(2)浮動小数点レジスタ51から記憶装置50へのデ
ータの格納。
ータの格納。
このために公知のストア命令が使用される。すなわち、
ストア命令が命令レジスタ102にセットされ、デコー
ダ103で解読されると、浮動小数点レジスタ51内の
この命令が指定するレジスタFRa (J=1〜4)
からデータが読み出され、線L111を介して記憶装置
50内の、この命令が指定するアドレス位置にメモリア
クセス回路300により書きこまれる。本実施例におい
ては、ストア命令は可変長データと固定長データについ
て同一の命令コードのものが使用される。
ストア命令が命令レジスタ102にセットされ、デコー
ダ103で解読されると、浮動小数点レジスタ51内の
この命令が指定するレジスタFRa (J=1〜4)
からデータが読み出され、線L111を介して記憶装置
50内の、この命令が指定するアドレス位置にメモリア
クセス回路300により書きこまれる。本実施例におい
ては、ストア命令は可変長データと固定長データについ
て同一の命令コードのものが使用される。
(3)データ演算
データ演算を指定する命令は大きく分けて二つある。第
1は、浮動小数点レジスタ51内の二つのレジスタF
R1,F RJから第1.第2のデータを読み出し、レ
ジスタF R+ に演算結果を格納すべきことを指定す
る命令である。第2は、浮動小数点レジスタ51内の一
つのレジスタF RJ から第1のデータを読み出し、
記憶装置50のあるアドレスから第2のデータを読み出
し、演算結果をこのレジスタF RJに格納することを
指定する命令である。セレクタ53は第1の命令に応答
してレジスタF RJ から読み出した第2のデータを
選択し、第2の命令に応答して記憶装置50から読み出
された第2のデータを選択するものである。
1は、浮動小数点レジスタ51内の二つのレジスタF
R1,F RJから第1.第2のデータを読み出し、レ
ジスタF R+ に演算結果を格納すべきことを指定す
る命令である。第2は、浮動小数点レジスタ51内の一
つのレジスタF RJ から第1のデータを読み出し、
記憶装置50のあるアドレスから第2のデータを読み出
し、演算結果をこのレジスタF RJに格納することを
指定する命令である。セレクタ53は第1の命令に応答
してレジスタF RJ から読み出した第2のデータを
選択し、第2の命令に応答して記憶装置50から読み出
された第2のデータを選択するものである。
このようなセレクタ53の動作はデコーダ103により
制御される。
制御される。
セレクタ207〜210,221はデコーダ103の出
力信号線L100により動作が制御される。これらのセ
レクタの入力線に付けられた「0」と「1」は、それぞ
れの入力線が信号線L100がそれぞれrOJ、rlj
のときに選択されることを示す。
力信号線L100により動作が制御される。これらのセ
レクタの入力線に付けられた「0」と「1」は、それぞ
れの入力線が信号線L100がそれぞれrOJ、rlj
のときに選択されることを示す。
(i)固定長データの演算
このときにはデコーダ103の出力信号線L100は「
0」になっている、浮動小数点レジスタ51から信号線
L1o1を介して第1のデータをレジスタ201にセッ
トし、浮動小数点レジスタ51又は記憶装置50から読
み出された第2のデータは信号線L106又は信号線L
107を介し、セレクタ53を介してレジスタ202に
セットする0次に第1のデータの符号部と指数部(第O
〜第7ビツト)を、セレクタ207を介してレジスタ2
11に、仮数部(第8〜第63ビツト)をセレクタ20
9を介してレジスタ213にセットし、第2のデータの
符号部と指数部(第O〜第7ビツト)を、セレクタ20
8を介してレジスタ212に、仮数部(第8〜第63ビ
ツト)をセレクタ210を介してレジスタ214に、そ
れぞれセットする。なお、仮数部は、56ビツトである
ため、下位の8ビツトにall“0″を追加して、左詰
めのレジスタ213,214にセットするものとする。
0」になっている、浮動小数点レジスタ51から信号線
L1o1を介して第1のデータをレジスタ201にセッ
トし、浮動小数点レジスタ51又は記憶装置50から読
み出された第2のデータは信号線L106又は信号線L
107を介し、セレクタ53を介してレジスタ202に
セットする0次に第1のデータの符号部と指数部(第O
〜第7ビツト)を、セレクタ207を介してレジスタ2
11に、仮数部(第8〜第63ビツト)をセレクタ20
9を介してレジスタ213にセットし、第2のデータの
符号部と指数部(第O〜第7ビツト)を、セレクタ20
8を介してレジスタ212に、仮数部(第8〜第63ビ
ツト)をセレクタ210を介してレジスタ214に、そ
れぞれセットする。なお、仮数部は、56ビツトである
ため、下位の8ビツトにall“0″を追加して、左詰
めのレジスタ213,214にセットするものとする。
また、指数部は7ビツトであるため、前に指数部の最上
位ビットを24ビツト付加し、符号部と合せて31ビツ
トとして、レジスタ211.212にそれぞれセットす
る。
位ビットを24ビツト付加し、符号部と合せて31ビツ
トとして、レジスタ211.212にそれぞれセットす
る。
次に、第1と第2のデータの符号部と指数部を指数部演
算器215に入力し、また仮数部を仮数部演算器216
に入力して、それぞれ演算を行う。
算器215に入力し、また仮数部を仮数部演算器216
に入力して、それぞれ演算を行う。
このときに1両演算器215,216相互間で制御情報
の授受を行う。例えば、指数部演算器215から仮数部
演算器216に対し、信号線L104を介して、加減算
における指数部の桁合わせのための仮数部のシフト数等
の制御情報を転送する一方、仮数部演算器216から指
数部演算器215に対し、信号線L105を介して、加
減算における仮数部のポストシフト数(仮数部の正規化
のためのシフト数)等の制御情報を転送する。
の授受を行う。例えば、指数部演算器215から仮数部
演算器216に対し、信号線L104を介して、加減算
における指数部の桁合わせのための仮数部のシフト数等
の制御情報を転送する一方、仮数部演算器216から指
数部演算器215に対し、信号線L105を介して、加
減算における仮数部のポストシフト数(仮数部の正規化
のためのシフト数)等の制御情報を転送する。
両演算器215,216からの演算結果は、それぞれレ
ジスタ217,218にセットされ、セレクタ221、
信号線L103、セレクタ52を介して浮動小数点レジ
スタ51に転送される。なお。
ジスタ217,218にセットされ、セレクタ221、
信号線L103、セレクタ52を介して浮動小数点レジ
スタ51に転送される。なお。
レジスタ218にセットされた64ビツトの仮数部のう
ち、上位56ビツトが選択されてセレクタ221に送ら
れる。また、レジスタ217にセットされた指数部31
ビツトのうち下位7ビツトが選択されてセレクタ221
に送られる。
ち、上位56ビツトが選択されてセレクタ221に送ら
れる。また、レジスタ217にセットされた指数部31
ビツトのうち下位7ビツトが選択されてセレクタ221
に送られる。
(3X)可変長データの演算
このときにはデコーダ103の出力信号線L100は「
1」になっている。
1」になっている。
固定長データの場合と同じように、第1のデータは信号
線L101を介して変換回路203に入力され、可変長
データから拡張固定長データに変換された後、符号部と
仮数部(第0〜第31ビツト)はセレクタ207を介し
てレジスタ211へ、仮数部(第32〜第95ビツト)
はセレクタ209を介してレジスタ213にそれぞれセ
ットされる。
線L101を介して変換回路203に入力され、可変長
データから拡張固定長データに変換された後、符号部と
仮数部(第0〜第31ビツト)はセレクタ207を介し
てレジスタ211へ、仮数部(第32〜第95ビツト)
はセレクタ209を介してレジスタ213にそれぞれセ
ットされる。
続いて、第2のデータは信号線L102を介して変換回
路204に入力され、拡張固定長データに変換された後
、符号部と指数部(第0〜第31ビツト)はセレクタ2
08を介してレジスタ212に、仮数部(第32〜第9
5ビツト)はセレクタ210を介してレジスタ214に
それぞれセットされる。
路204に入力され、拡張固定長データに変換された後
、符号部と指数部(第0〜第31ビツト)はセレクタ2
08を介してレジスタ212に、仮数部(第32〜第9
5ビツト)はセレクタ210を介してレジスタ214に
それぞれセットされる。
変換回路203,204における変換操作を第7図によ
り説明する。
り説明する。
第7図において、250はm値検出回路(mは、第4図
(a)(b)に示したmである)、251゜253は左
シスタ、252,254は反転回路、255はセレクタ
、256〜259はレジスタである。レジスタ256に
格納されている可変長データは、符号部a (1ビツト
)と、第1指数部b(m+1ビツト)と、指数部長区切
部c (1ビツト)と、第2指数部d(m−1ビツト)
と、仮数部e (62−2mビット)から構成されてお
り、これがそのままレジスタ257の内容として移され
るとともに、符号部aと第1指数部すの間に第1指数部
すの最上位ビットが一定数のビットfだけ補足され、9
5ビツトとなる。次に、b、Q。
(a)(b)に示したmである)、251゜253は左
シスタ、252,254は反転回路、255はセレクタ
、256〜259はレジスタである。レジスタ256に
格納されている可変長データは、符号部a (1ビツト
)と、第1指数部b(m+1ビツト)と、指数部長区切
部c (1ビツト)と、第2指数部d(m−1ビツト)
と、仮数部e (62−2mビット)から構成されてお
り、これがそのままレジスタ257の内容として移され
るとともに、符号部aと第1指数部すの間に第1指数部
すの最上位ビットが一定数のビットfだけ補足され、9
5ビツトとなる。次に、b、Q。
d、eの部分をm値検出回路250に入力して。
m=oのときはシフトカウント2を、m≠0のときはシ
フトカウント(m+3)を、それぞれ左シフタ251に
加える。符号部aを除くレジスタ257に格納されたデ
ータを左シフタ251に入力して、カウント数だけ左シ
フトし、シフトされた結果のデータをレジスタ258に
セットする。
フトカウント(m+3)を、それぞれ左シフタ251に
加える。符号部aを除くレジスタ257に格納されたデ
ータを左シフタ251に入力して、カウント数だけ左シ
フトし、シフトされた結果のデータをレジスタ258に
セットする。
この場合、シフトアウトされたf部の上位ビットは除去
され、かつ残ったf、b、cの部分は反転回路252を
介して反転されてセットされるとともに、下位の空いた
部分にはall”O”が補充される。
され、かつ残ったf、b、cの部分は反転回路252を
介して反転されてセットされるとともに、下位の空いた
部分にはall”O”が補充される。
さらに、レジスタ258に格納されたデータを左シフタ
253に入力し、m値検出回路250で検出されたmが
m=Oのときには、シフトアウト1、m≠0のときには
シフトカウント(m−1)だけ左シフトする。シフト結
果のうちシフトアウトされた上位部分を除去するととも
に、レジスタ257から符号部aをそのまま移し、さら
に反転回路を介して、f、b、c、dの部分からf/f
。
253に入力し、m値検出回路250で検出されたmが
m=Oのときには、シフトアウト1、m≠0のときには
シフトカウント(m−1)だけ左シフトする。シフト結
果のうちシフトアウトされた上位部分を除去するととも
に、レジスタ257から符号部aをそのまま移し、さら
に反転回路を介して、f、b、c、dの部分からf/f
。
b / b 、 c / c 、 d / dを作って
、レジスタ259にセットする。仮数部eをそのままレ
ジスタ259にセットするとともに、下位の空いた部分
をall”O”で補充する。
、レジスタ259にセットする。仮数部eをそのままレ
ジスタ259にセットするとともに、下位の空いた部分
をall”O”で補充する。
なお、m値検出回路250は、連続するall“1”ま
たはall“0”の数を計数するが、この計算方法とし
ては、例えば、従来の浮動小数点演算器での正規化処理
において、仮数部の最上位ビットからの連続したall
“0″′の数を計数する場合の論理構成を利用すること
により、簡単に実現できる。
たはall“0”の数を計数するが、この計算方法とし
ては、例えば、従来の浮動小数点演算器での正規化処理
において、仮数部の最上位ビットからの連続したall
“0″′の数を計数する場合の論理構成を利用すること
により、簡単に実現できる。
また、第7図では、可変長データから拡張固定長データ
への変換操作の一例を示しているが、同じ機能を有する
他の方法に置換えることも可能である。
への変換操作の一例を示しているが、同じ機能を有する
他の方法に置換えることも可能である。
このようにして、拡張固定長データに変換され、第1図
のレジスタ211と212にセットされた符号部と指数
部は、指数部演算器215に入力され、一方レジスタ2
13と214にセットされた仮数部は、仮数部演算器2
16に入力されて、それぞれ演算される。
のレジスタ211と212にセットされた符号部と指数
部は、指数部演算器215に入力され、一方レジスタ2
13と214にセットされた仮数部は、仮数部演算器2
16に入力されて、それぞれ演算される。
このとき、指数部演算器215から仮数部演算器216
へは、信号線L104関介して、固定長データの演算の
場合と同じ制御情報が転送され、また仮数部演算器21
6から指数部演算器215へは、信号線L 1.05を
介して制御情報が転送される。
へは、信号線L104関介して、固定長データの演算の
場合と同じ制御情報が転送され、また仮数部演算器21
6から指数部演算器215へは、信号線L 1.05を
介して制御情報が転送される。
再演算器215,216で演算された結果は、それぞれ
レジスタ217,218を経由して変換回路219に入
力され、拡張固定長データから可変長データに変換され
た後、変換後の可変長データの64ビツトがレジスタ2
20、セレクタ221を介し、信号線L103を介して
セレクタ52を介して浮動小数点レジスタに転送される
。
レジスタ217,218を経由して変換回路219に入
力され、拡張固定長データから可変長データに変換され
た後、変換後の可変長データの64ビツトがレジスタ2
20、セレクタ221を介し、信号線L103を介して
セレクタ52を介して浮動小数点レジスタに転送される
。
変換回路219における変換操作の一例を、第8図によ
り説明する。
り説明する。
第8図において、270,274は反転回路、271は
m値検出回路、272は” n =30− m trの
計算回路、273,275は右シフタ、276はセレク
タ、277〜281はレジスタである。
m値検出回路、272は” n =30− m trの
計算回路、273,275は右シフタ、276はセレク
タ、277〜281はレジスタである。
レジスタ277に格納された拡張固定長データは、符号
部gと指数部)1yl*jと仮数部kがらなり、このう
ち指数部hpltJが反転回路270を介して、h/丁
Hz/ze 57丁に変換され、仮数部にはそのままレ
ジスタ278にセットされる。レジスタ278に格納さ
れた指数部h/h。
部gと指数部)1yl*jと仮数部kがらなり、このう
ち指数部hpltJが反転回路270を介して、h/丁
Hz/ze 57丁に変換され、仮数部にはそのままレ
ジスタ278にセットされる。レジスタ278に格納さ
れた指数部h/h。
i/L j/jと仮数部には右シフタ273に入力され
るとともに、指数部h/、hs l/11 j/jがm
値検出回路271に入力され、続いて” n=30−m
”計算回路272に入力される。右シフタ273に入力
されたデータは、” n −30−m ”計算回路27
2の計算結果、n=oのときシフトカウント1.n−1
のときシフトカウント(n−1)だけ右シフトされ、そ
の結果がレジスタ279にセットされる。レジスタ27
9にセラ・トされるデータの上位部分には指数部の最上
位ピット値が追加され、また下位部分の一定ビット値は
切捨てられる。レジスタ279のデータがレジスタ28
0にセットされる際に、第1指数部h/丁と指数部長区
切部i/Tのみが反転回路274で反転されて、h/h
@i/iとなる。レジスタ280に格納されたデータは
再度、右シフタ275に入力され、n=oのときはシフ
トカウント2、n−1のときはシフトカウント(n+3
)だけ右シフトされる。シフト結果は、レジスタ281
にセットされる。そのとき、符号部gはレジスタ277
からそのまま移されるとともに、仮数部にの余った下位
部分は除去され、64ビツトとされる。
るとともに、指数部h/、hs l/11 j/jがm
値検出回路271に入力され、続いて” n=30−m
”計算回路272に入力される。右シフタ273に入力
されたデータは、” n −30−m ”計算回路27
2の計算結果、n=oのときシフトカウント1.n−1
のときシフトカウント(n−1)だけ右シフトされ、そ
の結果がレジスタ279にセットされる。レジスタ27
9にセラ・トされるデータの上位部分には指数部の最上
位ピット値が追加され、また下位部分の一定ビット値は
切捨てられる。レジスタ279のデータがレジスタ28
0にセットされる際に、第1指数部h/丁と指数部長区
切部i/Tのみが反転回路274で反転されて、h/h
@i/iとなる。レジスタ280に格納されたデータは
再度、右シフタ275に入力され、n=oのときはシフ
トカウント2、n−1のときはシフトカウント(n+3
)だけ右シフトされる。シフト結果は、レジスタ281
にセットされる。そのとき、符号部gはレジスタ277
からそのまま移されるとともに、仮数部にの余った下位
部分は除去され、64ビツトとされる。
なお、第8図では、拡張固定長データから可変長データ
への変換操作の一例を示しているが、同等の機能を有す
る他の方法に置換えられることもできる。
への変換操作の一例を示しているが、同等の機能を有す
る他の方法に置換えられることもできる。
さらに、第7図と第8図の機能中で、共用可能なものは
共用してもよく、例えば、シフタ251゜253.27
3,275に、左右両方向のシフト機能を持たせて、こ
れを共用させれば使用個数を減少させることができる。
共用してもよく、例えば、シフタ251゜253.27
3,275に、左右両方向のシフト機能を持たせて、こ
れを共用させれば使用個数を減少させることができる。
また、第1図では、32ビツト幅の演算器を指数部演算
器として共用しているが、それぞれ8ビット幅と32ビ
ツト幅の2種類の演算器を用いてもよい。
器として共用しているが、それぞれ8ビット幅と32ビ
ツト幅の2種類の演算器を用いてもよい。
第1図において、固定長データの演算と可変長データの
演算の識別は、2組の命令セットを設けることにより行
なわれる。すなわち、メモリから読み出された命令群が
命令バッファ101にセットされ、その中の1つが命令
レジスタに取り出されて、デコーダ103で解読される
と、固定長データの演算か、可変長データの演算がが判
別される。その結果を信号線L100を用いて浮動小数
点演算処理装置に指示することにより両演算を区別して
実行する。すなわち、固定長データの時は信号線L10
0が“0″′を示しており、固定長データの演算を選択
し、可変長データの時は、信号線L100が“1”を示
しており、可変長データの演算が選択される。また、こ
のようにすれば、従来より用いられている固定長データ
の演算実行プログラムは何ら変更する必要がない。
演算の識別は、2組の命令セットを設けることにより行
なわれる。すなわち、メモリから読み出された命令群が
命令バッファ101にセットされ、その中の1つが命令
レジスタに取り出されて、デコーダ103で解読される
と、固定長データの演算か、可変長データの演算がが判
別される。その結果を信号線L100を用いて浮動小数
点演算処理装置に指示することにより両演算を区別して
実行する。すなわち、固定長データの時は信号線L10
0が“0″′を示しており、固定長データの演算を選択
し、可変長データの時は、信号線L100が“1”を示
しており、可変長データの演算が選択される。また、こ
のようにすれば、従来より用いられている固定長データ
の演算実行プログラムは何ら変更する必要がない。
以上説明したように、本発明によれば、指数部可変長デ
ータの演算に先立って、可変長データを固定長データに
変換して演算するので、両データの演算に演算器の大部
分を共用でき、効率よく両データの演算を行うことがで
きる。また、両データの演算を区別するために命令を用
いているので同一プログラム内においても自由に両デー
タの演算が混在可能となる。すなわち、±1付近や、固
定長データで表現不可能な範囲は可変長データにより、
その他の部分は固定長データで演算させることがソフト
ウェアで簡単に行うことが可能となる。
ータの演算に先立って、可変長データを固定長データに
変換して演算するので、両データの演算に演算器の大部
分を共用でき、効率よく両データの演算を行うことがで
きる。また、両データの演算を区別するために命令を用
いているので同一プログラム内においても自由に両デー
タの演算が混在可能となる。すなわち、±1付近や、固
定長データで表現不可能な範囲は可変長データにより、
その他の部分は固定長データで演算させることがソフト
ウェアで簡単に行うことが可能となる。
第1図は本発明の一実施例を示す演算処理装置の構成図
、第2図、第3図は従来の指数部固定長浮動小数点デー
タ形式の例を示す図、第4図は先願による指数部可変長
表現の浮動小数点データ形式の例を示す図、第5図は本
発明で用いられる可変長表現と従来の固定長表現の指数
部の対応例を示す図、第6図は本発明で用いられる拡張
固定長表現データの構成図、第7図は第1図の可変長デ
ータから拡張固定長データへの変換回路の図、第8図は
同じく、拡張固定長データから可変長データへの変換回
路の図である。 100・・・命令制御装置、200・・・浮動小数点演
算装置、214,215,216・・・演算器、204
゜221・・・変換回路、251,253,273゜2
75・・・シフタ。
、第2図、第3図は従来の指数部固定長浮動小数点デー
タ形式の例を示す図、第4図は先願による指数部可変長
表現の浮動小数点データ形式の例を示す図、第5図は本
発明で用いられる可変長表現と従来の固定長表現の指数
部の対応例を示す図、第6図は本発明で用いられる拡張
固定長表現データの構成図、第7図は第1図の可変長デ
ータから拡張固定長データへの変換回路の図、第8図は
同じく、拡張固定長データから可変長データへの変換回
路の図である。 100・・・命令制御装置、200・・・浮動小数点演
算装置、214,215,216・・・演算器、204
゜221・・・変換回路、251,253,273゜2
75・・・シフタ。
Claims (1)
- 【特許請求の範囲】 1、浮動小数点データの演算を行う演算処理装置におい
て、指数部固定長浮動小数点データの演算または指数部
可変長浮動小数点データの演算であることを識別するた
めの2組の命令セットをもつ命令制御手段と、該制御手
段の演算識別結果により、該両浮動小数点データの演算
に先立つて共通指数部固定長浮動小数点データに変換す
る第1の変換手段と、該制御手段の演算識別結果により
、演算結果の該共通指数部固定長浮動小数点データを、
該両浮動小数点データのいずれかに変換する第2の変換
手段とを有することを特徴とする演算処理装置。 2、前記可変長浮動小数点データは、指数部の長さを、
該指数部前半部の“0”の列、あるいは“1”の列の長
さにより指定することを特徴とする特許請求の範囲第1
項記載の演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5036486A JPS62208126A (ja) | 1986-03-10 | 1986-03-10 | 演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5036486A JPS62208126A (ja) | 1986-03-10 | 1986-03-10 | 演算処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62208126A true JPS62208126A (ja) | 1987-09-12 |
Family
ID=12856836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5036486A Pending JPS62208126A (ja) | 1986-03-10 | 1986-03-10 | 演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62208126A (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6097435A (ja) * | 1983-11-02 | 1985-05-31 | Hitachi Ltd | 演算処理装置 |
-
1986
- 1986-03-10 JP JP5036486A patent/JPS62208126A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6097435A (ja) * | 1983-11-02 | 1985-05-31 | Hitachi Ltd | 演算処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4675809A (en) | Data processing system for floating point data having a variable length exponent part | |
US9804823B2 (en) | Shift significand of decimal floating point data | |
US8190664B2 (en) | Employing a mask field of an instruction to encode a sign of a result of the instruction | |
US9461668B2 (en) | Decomposition of decimal floating point data | |
JPH02138620A (ja) | 数値量を計算する方法および数値データ処理装置 | |
US8468184B2 (en) | Extract biased exponent of decimal floating point data | |
JPH10512069A (ja) | パックされたデータのシフト演算を行うプロセッサ | |
KR20020035739A (ko) | 복수 레지스터 지정이 가능한 simd 연산방식 | |
US4758975A (en) | Data processor capable of processing floating point data with exponent part of fixed or variable length | |
JPH049340B2 (ja) | ||
JPH034936B2 (ja) | ||
US7236999B2 (en) | Methods and systems for computing the quotient of floating-point intervals | |
JPS62208126A (ja) | 演算処理装置 | |
WO2002097606A1 (en) | Floating point multiplier with embedded status information | |
JP3055558B2 (ja) | nビット演算装置 | |
JPS642970B2 (ja) | ||
JP2624738B2 (ja) | 丸め処理方式 | |
JPS63113726A (ja) | 演算処理装置 | |
JPS6016649B2 (ja) | データ処理装置 | |
JPH0795262B2 (ja) | 演算処理装置 | |
Welschenbach | Number Formats: The Representation of Large Numbers in C | |
JPH07122848B2 (ja) | 浮動小数点指数検出正規化装置 | |
JPH0377535B2 (ja) |