JP2509279B2 - 浮動小数点数一固定小数点数変換装置 - Google Patents
浮動小数点数一固定小数点数変換装置Info
- Publication number
- JP2509279B2 JP2509279B2 JP63033102A JP3310288A JP2509279B2 JP 2509279 B2 JP2509279 B2 JP 2509279B2 JP 63033102 A JP63033102 A JP 63033102A JP 3310288 A JP3310288 A JP 3310288A JP 2509279 B2 JP2509279 B2 JP 2509279B2
- Authority
- JP
- Japan
- Prior art keywords
- point number
- output
- cycle
- shift
- bit
- 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.)
- Expired - Fee Related
Links
Description
【発明の詳細な説明】 〔概要〕 ディジタル信号を浮動小数点数処理から固定小数点数
処理にフォーマット変換する装置に関し、 IEEE標準浮動小数点数を、丸め処理及びオーバーフロ
ー処理を行って固定小数点数に変換することにより変換
の演算精度を上げることを目的とし、 1サイクル目にIEEE標準浮動小数点数の2の補数化信
号を生成してアキュムレータに格納し、2サイクル目に
該アキュムレータの該データをシフト計算部で求めたシ
フト数及び方向だけバレルシフタ回路でシフトし、この
シフトの際にオーバーフローが生じた時はクリップ部で
クリップしてアキュムレータに再度格納し、3サイクル
目では、2サイクル目でバレルシフタ回路がキャリイ検
出していた場合には2サイクル目のアキュムレータのデ
ータにそのキャリイビットが付加されて最終的な固定小
数点数としてアキュムレータに格納されるように構成し
たもの。
処理にフォーマット変換する装置に関し、 IEEE標準浮動小数点数を、丸め処理及びオーバーフロ
ー処理を行って固定小数点数に変換することにより変換
の演算精度を上げることを目的とし、 1サイクル目にIEEE標準浮動小数点数の2の補数化信
号を生成してアキュムレータに格納し、2サイクル目に
該アキュムレータの該データをシフト計算部で求めたシ
フト数及び方向だけバレルシフタ回路でシフトし、この
シフトの際にオーバーフローが生じた時はクリップ部で
クリップしてアキュムレータに再度格納し、3サイクル
目では、2サイクル目でバレルシフタ回路がキャリイ検
出していた場合には2サイクル目のアキュムレータのデ
ータにそのキャリイビットが付加されて最終的な固定小
数点数としてアキュムレータに格納されるように構成し
たもの。
本発明は浮動小数点数−固定小数点数変換装置に関す
るものであり、特にディジタル信号を浮動小数点数処理
から固定小数点数処理にフォーマット変換する装置に関
するものである。
るものであり、特にディジタル信号を浮動小数点数処理
から固定小数点数処理にフォーマット変換する装置に関
するものである。
浮動小数点数の処理は、ディジタル信号処理の精度が
高くまたダイナミックレンジも広い等の点から固定小数
点数処理よりも好ましいが、回路制御等においては固定
小数点数を用いて処理されることが多いため、浮動小数
点数から固定小数点数にフォーマット変換することが必
要である。
高くまたダイナミックレンジも広い等の点から固定小数
点数処理よりも好ましいが、回路制御等においては固定
小数点数を用いて処理されることが多いため、浮動小数
点数から固定小数点数にフォーマット変換することが必
要である。
IEEE標準32ビット浮動小数点数は、第10図に示す表現
形式を有し、指数部eは真値に127を加えた所謂「ゲタ
ばき」表面を採用し、仮数部fは1から2の間の数を表
現する符号絶対値表現を採用している。また、その絶対
値表現部fでは最上位ビット(正規化数の場合常に1)
を省略した所謂「かくれ」ビット表現を採用している。
また、MSBの符号ビットをSで表すと、浮動小数点数デ
ータXは、 X=(−1)s{2e-127}(1.f) で表される。
形式を有し、指数部eは真値に127を加えた所謂「ゲタ
ばき」表面を採用し、仮数部fは1から2の間の数を表
現する符号絶対値表現を採用している。また、その絶対
値表現部fでは最上位ビット(正規化数の場合常に1)
を省略した所謂「かくれ」ビット表現を採用している。
また、MSBの符号ビットをSで表すと、浮動小数点数デ
ータXは、 X=(−1)s{2e-127}(1.f) で表される。
この場合、従来の浮動小数点数−固定小数点数変換で
は、固定小数点の小数点位置が、データの最下位ビット
にあり、実質的に整数変換を意味するように変換されて
いた。
は、固定小数点の小数点位置が、データの最下位ビット
にあり、実質的に整数変換を意味するように変換されて
いた。
従来の浮動小数点数−固定小数点数変換は、IEEE標準
32ビットの浮動小数点数を扱ったものではなく、然もそ
の変換の際のビットの桁落ちは無視、即ち切り捨てられ
ていて丸め処理が行われていなかった。更に、オーバー
フロー処理も同様に行われておらず、演算精度の低下を
招く虞があった。
32ビットの浮動小数点数を扱ったものではなく、然もそ
の変換の際のビットの桁落ちは無視、即ち切り捨てられ
ていて丸め処理が行われていなかった。更に、オーバー
フロー処理も同様に行われておらず、演算精度の低下を
招く虞があった。
従って、本発明は、IEEE標準浮動小数点数を、丸め処
理及びオーバーフロー処理を行って固定小数点数に変換
し、その演算精度を上げることを目的とする。
理及びオーバーフロー処理を行って固定小数点数に変換
し、その演算精度を上げることを目的とする。
第1図は、上記の目的を達成するための本発明に係る
浮動小数点数−固定小数点数変換装置の概念図を示し、
図中、1はアキュムレータ7に格納されたIEEE標準浮動
小数点数を、その符号ビットに合わせてフォーマット変
換する変換部、2は変換部1の出力と該符号を示すビッ
トにより2の補数化信号を発生する加算器、3は該浮動
小数点数の指数部からシフト数及びシフト方向を発生す
るシフト計算部、4は該シフト数及びシフト方向により
該浮動小数点数をシフトするバレルシフタ回路、5は加
算器2の出力又はバレルシフタ回路4の出力を選択する
選択器、6はバレルシフタ回路4がオーバーフローした
時のみ選択器5の出力をクリップしてアキュムレータ7
に与えるクリップ部、そして8は1サイクル目に該浮動
小数点数の符号ビットに応じて変換部1に制御信号を与
え、2サイクル目にシフト計算部3のラッチされた値を
出力させ、1サイクル目及び3サイクル目に加算器2の
出力を、2サイクル目にバレルシフタ回路4の出力をそ
れぞれ選択するように選択器5を制御し、バレルシフタ
回路4がキャリイ検出した時、3サイクル目に該キャリ
イ信号に基づいて加算器2に丸め信号を与える演算制御
部である。
浮動小数点数−固定小数点数変換装置の概念図を示し、
図中、1はアキュムレータ7に格納されたIEEE標準浮動
小数点数を、その符号ビットに合わせてフォーマット変
換する変換部、2は変換部1の出力と該符号を示すビッ
トにより2の補数化信号を発生する加算器、3は該浮動
小数点数の指数部からシフト数及びシフト方向を発生す
るシフト計算部、4は該シフト数及びシフト方向により
該浮動小数点数をシフトするバレルシフタ回路、5は加
算器2の出力又はバレルシフタ回路4の出力を選択する
選択器、6はバレルシフタ回路4がオーバーフローした
時のみ選択器5の出力をクリップしてアキュムレータ7
に与えるクリップ部、そして8は1サイクル目に該浮動
小数点数の符号ビットに応じて変換部1に制御信号を与
え、2サイクル目にシフト計算部3のラッチされた値を
出力させ、1サイクル目及び3サイクル目に加算器2の
出力を、2サイクル目にバレルシフタ回路4の出力をそ
れぞれ選択するように選択器5を制御し、バレルシフタ
回路4がキャリイ検出した時、3サイクル目に該キャリ
イ信号に基づいて加算器2に丸め信号を与える演算制御
部である。
第1図に示した本発明に係る浮動小数点数−固定小数
点数変換装置を第2図乃至第4図に示したビット状態図
を参照して以下に説明する。
点数変換装置を第2図乃至第4図に示したビット状態図
を参照して以下に説明する。
まず、第2図(1)又は第3図(1)に示すようなア
キュムレータ7に格納されているIEEE標準浮動小数点数
が変換部1に送られ、その指数部がシフト計算部3に送
られる。また、浮動小数点数の符号ビットは演算制御部
8に送られる。演算制御部8では入力した符号ビットが
“0"(正の小数点数)であるか、“1"(負の小数点数)
であるかを判定して制御信号を変換部1へ送る。変換部
1では、この制御信号により浮動小数点数を第4図
(a)又は(b)に示すようにフォーマット変換する。
この場合、符号ビットが“1"の時には第3図(2)に示
すように仮数部の反転も行われる。
キュムレータ7に格納されているIEEE標準浮動小数点数
が変換部1に送られ、その指数部がシフト計算部3に送
られる。また、浮動小数点数の符号ビットは演算制御部
8に送られる。演算制御部8では入力した符号ビットが
“0"(正の小数点数)であるか、“1"(負の小数点数)
であるかを判定して制御信号を変換部1へ送る。変換部
1では、この制御信号により浮動小数点数を第4図
(a)又は(b)に示すようにフォーマット変換する。
この場合、符号ビットが“1"の時には第3図(2)に示
すように仮数部の反転も行われる。
このフォーマット変換された浮動小数点数は加算器2
において演算制御部8からの符号ビットの値を加算する
ことによって第2図(2)及び第3図(3)に示すよう
に2の補数表現化されたビット値が得られ、選択器5に
送られる。選択器5は1サイクル目は加算器2の出力が
選択されるように演算制御部8によって制御され、クリ
ップ部6を介してアキュムレータ7に格納される。
において演算制御部8からの符号ビットの値を加算する
ことによって第2図(2)及び第3図(3)に示すよう
に2の補数表現化されたビット値が得られ、選択器5に
送られる。選択器5は1サイクル目は加算器2の出力が
選択されるように演算制御部8によって制御され、クリ
ップ部6を介してアキュムレータ7に格納される。
一方、上記の1サイクル目では、シフト計算部3で
は、アキュムレータ7の浮動小数点数の指数部からシフ
ト数とシフト方向を求めてラッチしておく。
は、アキュムレータ7の浮動小数点数の指数部からシフ
ト数とシフト方向を求めてラッチしておく。
2サイクル目では、演算制御部8がシフト計算部3に
ラッチされていたシフト数及びシフト方向の値をバレル
シフタ回路4に出力させ、バレルシフタ回路4では、1
サイクル目でアキュムレータ7に格納されている第2図
(2)又は第3図(3)に示すビット値をそのまま入力
して指定されたシフト方向にそのシフト数だけシフトす
る。そのシフトされた値が第2図(3)又は第3図
(4)に示されている。2サイクル目では、演算制御部
8が選択器5を制御してバレルシフタ回路4の出力を選
択するので、このシフトされた値はクリップ部6に送ら
れる。クリップ部6では、上記のシフト動作において、
オーバーフロー検出が為された時には、演算制御部8は
クリップ部6を制御して正又は負の最大値に選択器5の
出力をクリップしてアキュムレータ7に格納する。
ラッチされていたシフト数及びシフト方向の値をバレル
シフタ回路4に出力させ、バレルシフタ回路4では、1
サイクル目でアキュムレータ7に格納されている第2図
(2)又は第3図(3)に示すビット値をそのまま入力
して指定されたシフト方向にそのシフト数だけシフトす
る。そのシフトされた値が第2図(3)又は第3図
(4)に示されている。2サイクル目では、演算制御部
8が選択器5を制御してバレルシフタ回路4の出力を選
択するので、このシフトされた値はクリップ部6に送ら
れる。クリップ部6では、上記のシフト動作において、
オーバーフロー検出が為された時には、演算制御部8は
クリップ部6を制御して正又は負の最大値に選択器5の
出力をクリップしてアキュムレータ7に格納する。
そして、3サイクル目では、2サイクル目でバレルシ
フタ回路4がキャリイ検出した時の信号により加算器2
にキャリイ信号として与え、アキュムレータ7から出力
された2サイクル目のビット値は変換部1を通過して加
算器2でキャリイビットが加算され、選択器5及びクリ
ップ部6を介してアキュムレータ7に最終的な固定小数
点数として格納されることになる。
フタ回路4がキャリイ検出した時の信号により加算器2
にキャリイ信号として与え、アキュムレータ7から出力
された2サイクル目のビット値は変換部1を通過して加
算器2でキャリイビットが加算され、選択器5及びクリ
ップ部6を介してアキュムレータ7に最終的な固定小数
点数として格納されることになる。
以下、本願発明に係る浮動小数点数−固定小数点数変
換装置の実施例を説明する。
換装置の実施例を説明する。
第5図は、本発明に係る浮動小数点数−固定小数点数
変換装置の一実施例を示している。
変換装置の一実施例を示している。
この実施例では、変換部1は、アキュムレータACCか
らの32ビット信号並びに演算制御部8からのセレクト信
号iNV及びMASK信号を入力するセレクタSEL1〜SEL3で構
成され、セレクタSEL1とSEL2の一方の端子にはそれぞれ
インバータ11、12が設けられている。シフト計算部3
は、加算器EAと、この加算器EAの桁上げ信号ECの反転信
号を制御信号として加算器EAの加算結果を反転及びイン
クリメントする反転部iNVERT及びインクリメント部iNC
と、このインクリメント部iNCの出力をクリップするク
リップ部CLiP2と、信号EC(シフト方向を示す信号)及
びクリップ部CLiP2の出力(シフト数を示す信号)をそ
れぞれラッチI及びラッチIIでラッチするラッチ部LT
と、で構成されている。また、バレルシフタ回路4はバ
レルシフタBSと、キャリイ検出回路CADETと、オーバー
フロー検出回路OVDETとで構成されている。更に、クリ
ップ部6は、アンドゲートGと、この出力によって制御
されるクリップ部CLiP1とを含んでいる。
らの32ビット信号並びに演算制御部8からのセレクト信
号iNV及びMASK信号を入力するセレクタSEL1〜SEL3で構
成され、セレクタSEL1とSEL2の一方の端子にはそれぞれ
インバータ11、12が設けられている。シフト計算部3
は、加算器EAと、この加算器EAの桁上げ信号ECの反転信
号を制御信号として加算器EAの加算結果を反転及びイン
クリメントする反転部iNVERT及びインクリメント部iNC
と、このインクリメント部iNCの出力をクリップするク
リップ部CLiP2と、信号EC(シフト方向を示す信号)及
びクリップ部CLiP2の出力(シフト数を示す信号)をそ
れぞれラッチI及びラッチIIでラッチするラッチ部LT
と、で構成されている。また、バレルシフタ回路4はバ
レルシフタBSと、キャリイ検出回路CADETと、オーバー
フロー検出回路OVDETとで構成されている。更に、クリ
ップ部6は、アンドゲートGと、この出力によって制御
されるクリップ部CLiP1とを含んでいる。
これらの回路に与えられる制御信号iNV、MASK、CiN、
LAEN、OPSE、ACENは、演算命令、アキュムレータACCの
最上位ビット(以下、ビットAC31という)、及びキャリ
イ検出回路CADETの出力を受けた演算制御部ACUから出力
される信号である。
LAEN、OPSE、ACENは、演算命令、アキュムレータACCの
最上位ビット(以下、ビットAC31という)、及びキャリ
イ検出回路CADETの出力を受けた演算制御部ACUから出力
される信号である。
尚、第5図の実施例中、第1図に示した加算器2、選
択器5、及びアキュムレータ7は以下それぞれ加算器AD
D、セレクタOPSEL、アキュムレータACCとして説明す
る。
択器5、及びアキュムレータ7は以下それぞれ加算器AD
D、セレクタOPSEL、アキュムレータACCとして説明す
る。
以下、この実施例の動作を説明する。
まず、演算命令(浮動小数点から固定小数点への変換
命令)が、演算制御部ACUに入力されることにより、下
記の演算が開始される。
命令)が、演算制御部ACUに入力されることにより、下
記の演算が開始される。
(1)1サイクル目 第2図(1)又は第3図(1)に示すような32ビット
のレジスタで構成されるアキュムレータACCに格納され
ている浮動小数点データが、8ビット加算器EA及び、2
者択一のセレクタSEL1、2、3に入力される。
のレジスタで構成されるアキュムレータACCに格納され
ている浮動小数点データが、8ビット加算器EA及び、2
者択一のセレクタSEL1、2、3に入力される。
セレクタSEL1には、アキュムレータACCの下位23ビッ
ト(仮数部)が入力され、演算制御部ACUからのセレク
ト信号iNVが“0"の場合、スルーで通過し、“1"の場合
には反転してセレクタSEL1より出力される。このセレク
ト信号iNVは、1サイクル目のとき、サインビットであ
るアキュムレータACCの最上位ビット(MSB)(以下、ビ
ットAC31と呼ぶ)が“0"の場合、つまり正の小数点数の
時は、“0"で、ビットAC31が“1"の場合、つまり負の小
数点数の時は“1"となるよう演算制御部ACUより出力さ
れる。
ト(仮数部)が入力され、演算制御部ACUからのセレク
ト信号iNVが“0"の場合、スルーで通過し、“1"の場合
には反転してセレクタSEL1より出力される。このセレク
ト信号iNVは、1サイクル目のとき、サインビットであ
るアキュムレータACCの最上位ビット(MSB)(以下、ビ
ットAC31と呼ぶ)が“0"の場合、つまり正の小数点数の
時は、“0"で、ビットAC31が“1"の場合、つまり負の小
数点数の時は“1"となるよう演算制御部ACUより出力さ
れる。
また、セレクタSEL2には、アキュムレータACCの下位
から24ビット目、(以下、ビットAC23と呼ぶ)のいわゆ
る「かくれビット」が入力されるが、演算制御部ACUか
らのセレクト信号MASKが、1サイクル目は“1"となるた
め、セレクト信号iNVの反転信号が出力される。
から24ビット目、(以下、ビットAC23と呼ぶ)のいわゆ
る「かくれビット」が入力されるが、演算制御部ACUか
らのセレクト信号MASKが、1サイクル目は“1"となるた
め、セレクト信号iNVの反転信号が出力される。
即ち、セレクト信号iNVが“1"の時(負数時)は
“0"、セレクト信号iNVが“0"の時(正数時)は“1"が
出力される(第2図(2)又は第3図(2)参照)。
“0"、セレクト信号iNVが“0"の時(正数時)は“1"が
出力される(第2図(2)又は第3図(2)参照)。
セレクタSEL3には、アキュムレータACCの上位から8
ビットが入力されるが、1サイクル目では、セレクト信
号MASKが“1"となっているため、セレクト信号iNVをそ
のまま出力する。つまり、セレクト信号iNVが“1"の時
(負数時)は上位8ビットオール“1"を、“0"の時(正
数時)はオール“0"を出力する(第2図(2)、第3図
(2)参照)。
ビットが入力されるが、1サイクル目では、セレクト信
号MASKが“1"となっているため、セレクト信号iNVをそ
のまま出力する。つまり、セレクト信号iNVが“1"の時
(負数時)は上位8ビットオール“1"を、“0"の時(正
数時)はオール“0"を出力する(第2図(2)、第3図
(2)参照)。
このようにしてフォーマット変換された32ビットは、
32ビット加算器ADDに入力される。尚、加算器ADDの片側
入力は、変換命令時は、“0"となっている。
32ビット加算器ADDに入力される。尚、加算器ADDの片側
入力は、変換命令時は、“0"となっている。
また、キャリイン信号CiNは、1サイクル目、ビットA
C31の値が“1"の時(負数時)は“1"を、“0"の時(正
数時)は“0"をそれぞれ加算器ADDに与えるように、演
算制御部ACUより出力されて32ビットの加算器入力のLSB
に加算される。従って、1サイクル目データは、第2図
(2)又は第3図(3)に示す如く2の補数化される。
C31の値が“1"の時(負数時)は“1"を、“0"の時(正
数時)は“0"をそれぞれ加算器ADDに与えるように、演
算制御部ACUより出力されて32ビットの加算器入力のLSB
に加算される。従って、1サイクル目データは、第2図
(2)又は第3図(3)に示す如く2の補数化される。
その後、2者択一セレクタOPSELでは、演算制御部ACU
からのセレクト信号OPSEが“0"となっており、加算器AD
Dの出力をセレクトする。またクリップ部CLiP1は、信号
OVCLが“0"であるため、加算器ADDの値をそのまま出力
する。
からのセレクト信号OPSEが“0"となっており、加算器AD
Dの出力をセレクトする。またクリップ部CLiP1は、信号
OVCLが“0"であるため、加算器ADDの値をそのまま出力
する。
以上の動作により、2の補数化されたデータが、アキ
ュムレータACCに格納される。なお、信号ACENは演算制
御部ACUからの各サイクルのイネーブル信号、信号CLKは
クロックである。
ュムレータACCに格納される。なお、信号ACENは演算制
御部ACUからの各サイクルのイネーブル信号、信号CLKは
クロックである。
一方、加算器EAには、アキュムレータACCのビットAC3
1を除く上位ビットから8ビット(指数部)が入力され
てシフト数を計算するため、88(HEX)を加算する。これ
は、加算器を使って計算するため、第2図及び第3図に
おける浮動小数点位置から固定小数点位置への8ビット
シフト変換に際しては指数が78(HEX)の時、シフト数が
“ゼロ”となることから−78(HEX)を2の補数化した
値、つまり88(HEX)を加算するためである。加算された
値は、2の補数表現となっているため、その後、データ
を絶対値化する必要がある。そのため、加算器EAにおけ
る8ビット加算での桁上げ信号ECの反転信号が符号ビッ
トとなり、信号ECが“0"の時は、反転して“1"となり負
の数を示しており、反転器iNVERTで加算器EAの出力反転
を行ない、インクリメント部iNCで、インクリメント
(1加算)を行う。又、信号ECが“1"の場合は、正の数
となっており、反転器iNVERT、インクリメント部iNC
は、そのまま出力される。こうして絶対値化される。
1を除く上位ビットから8ビット(指数部)が入力され
てシフト数を計算するため、88(HEX)を加算する。これ
は、加算器を使って計算するため、第2図及び第3図に
おける浮動小数点位置から固定小数点位置への8ビット
シフト変換に際しては指数が78(HEX)の時、シフト数が
“ゼロ”となることから−78(HEX)を2の補数化した
値、つまり88(HEX)を加算するためである。加算された
値は、2の補数表現となっているため、その後、データ
を絶対値化する必要がある。そのため、加算器EAにおけ
る8ビット加算での桁上げ信号ECの反転信号が符号ビッ
トとなり、信号ECが“0"の時は、反転して“1"となり負
の数を示しており、反転器iNVERTで加算器EAの出力反転
を行ない、インクリメント部iNCで、インクリメント
(1加算)を行う。又、信号ECが“1"の場合は、正の数
となっており、反転器iNVERT、インクリメント部iNC
は、そのまま出力される。こうして絶対値化される。
また、シフト数は31ビットまでであるのでシフト数信
号は、5ビットで充分であり、それ以上の数は、シフト
数最大値にクリップしておく必要があるので、上位3ビ
ットのどれか1ビットでも“1"がある場合は、クリップ
部CLiP2で、最大値、IF(HEX)にする。その他の場合は、
クリップせず、5ビットがそのままラッチ部LTにラッチ
される。
号は、5ビットで充分であり、それ以上の数は、シフト
数最大値にクリップしておく必要があるので、上位3ビ
ットのどれか1ビットでも“1"がある場合は、クリップ
部CLiP2で、最大値、IF(HEX)にする。その他の場合は、
クリップせず、5ビットがそのままラッチ部LTにラッチ
される。
また、シフト方向(右シフト、あるいは左シフト)を
制御するため、桁上げ信号ECの値をラッチ部LTでラッチ
し、信号ECが“0"の場合は反転して“1"となる負数を示
すので右シフト、反対に“1"の場合は左シフトとする。
即ち、第2図又は第3図の場合は(70+88)(HEX)=F8
(HEX)で桁上げ信号ECは“0"となる。
制御するため、桁上げ信号ECの値をラッチ部LTでラッチ
し、信号ECが“0"の場合は反転して“1"となる負数を示
すので右シフト、反対に“1"の場合は左シフトとする。
即ち、第2図又は第3図の場合は(70+88)(HEX)=F8
(HEX)で桁上げ信号ECは“0"となる。
尚、LAENは、演算制御部ACUからの1サイクル目のラ
ッチイネーブル信号である。
ッチイネーブル信号である。
(2)2サイクル目 1サイクル目で得られた結果より、データをシフトす
る。
る。
まずアキュムレータACCに格納されている、2の補数
表現化された32ビットデータをセレクタSEL1、2、3に
入力する。
表現化された32ビットデータをセレクタSEL1、2、3に
入力する。
この2サイクル目では、セレクト信号iNV、MASKは演
算制御部ACUにより“0"となっており、セレクタSEL1、
2、3ともに、アキュムレータACCの値をそのまま出力
する。その後、そのデータを、バレルシフタBSに入力
し、ラッチ部LTのラッチIにラッチされている5ビット
のデータにより、シフトを行う。ラッチIの出力データ
の最下位ビット(以下、ビットLA0という)のみが“1"
のときは1ビット、ビットLA1のみが“1"のときは2ビ
ット、という様にして以下、5ビットの組み合わせで最
大31ビットのシフトが行える。
算制御部ACUにより“0"となっており、セレクタSEL1、
2、3ともに、アキュムレータACCの値をそのまま出力
する。その後、そのデータを、バレルシフタBSに入力
し、ラッチ部LTのラッチIにラッチされている5ビット
のデータにより、シフトを行う。ラッチIの出力データ
の最下位ビット(以下、ビットLA0という)のみが“1"
のときは1ビット、ビットLA1のみが“1"のときは2ビ
ット、という様にして以下、5ビットの組み合わせで最
大31ビットのシフトが行える。
また、ラッチIIの出力LRは、“1"の時はバレルシフタ
BSを左シフト、“0"の時は右シフトするために1サイク
ル目にラッチしておいた信号である。また、右シフト時
に起こる桁落ちビットを丸めるため、キャリイ検出部CA
DETにて検出し、信号COUTとして出力して演算制御部ACU
に入力し、レジスタ(図示せず)に格納しておく。ま
た、左シフト時に起こる、オーバーフローを、オーバー
フロー検出部OVDETで検出する。
BSを左シフト、“0"の時は右シフトするために1サイク
ル目にラッチしておいた信号である。また、右シフト時
に起こる桁落ちビットを丸めるため、キャリイ検出部CA
DETにて検出し、信号COUTとして出力して演算制御部ACU
に入力し、レジスタ(図示せず)に格納しておく。ま
た、左シフト時に起こる、オーバーフローを、オーバー
フロー検出部OVDETで検出する。
シフトされた結果をバレルシフタBSより出力し、セレ
クタOPSELに入力する。この2サイクル目では、セレク
ト信号OPSEは“1"となり、セレクタOPSELでは、バレル
シフタBSの出力をセレクトし出力する。
クタOPSELに入力する。この2サイクル目では、セレク
ト信号OPSEは“1"となり、セレクタOPSELでは、バレル
シフタBSの出力をセレクトし出力する。
その後、若し、シフトの際、左シフトをしてオーバー
フローが起っていた場合は、クリップ部CLiP1にて、正
の最大値又は負の最大値にデータをクリップする。
フローが起っていた場合は、クリップ部CLiP1にて、正
の最大値又は負の最大値にデータをクリップする。
オーバーフローしていない場合は、アンドゲートGの
出力OVCLが“0"となり、セレクタOPSELの出力をそのま
ま出力する。
出力OVCLが“0"となり、セレクタOPSELの出力をそのま
ま出力する。
その後、アキュムレータACCに格納される(第2図
(3)又は第3図(4)参照)。
(3)又は第3図(4)参照)。
(3)3サイクル目 3サイクル目は、2サイクル目のシフト動作で得られ
たアキュムレータACCのデータにキャリイ検出部CADETで
得られた信号COUTを、加算器ADDで加算する。
たアキュムレータACCのデータにキャリイ検出部CADETで
得られた信号COUTを、加算器ADDで加算する。
即ち、まず、アキュムレータACCに格納されているシ
フトされたデータをセレクタSEL1、2、3に入力する。
そしてセレクト信号iNV、MASKは“0"とし、アキュムレ
ータACCの値を、セレクタSEL1、2、3は、そのまま出
力する。
フトされたデータをセレクタSEL1、2、3に入力する。
そしてセレクト信号iNV、MASKは“0"とし、アキュムレ
ータACCの値を、セレクタSEL1、2、3は、そのまま出
力する。
そのデータを加算器ADDに入力する。
またキャリイン信号CiNは、演算制御部ACUのレジスタ
に格納された信号COUTの値をそのまま丸め信号として出
力したもので加算器ADDに入力される。
に格納された信号COUTの値をそのまま丸め信号として出
力したもので加算器ADDに入力される。
そして、シフトされたデータに加算されて丸められる
(第2図(4)又は第3図(5)参照)。
(第2図(4)又は第3図(5)参照)。
尚、2サイクル目で、左シフトした場合は、信号CiN
は“0"となる。これは桁落ちビットがないためである。
は“0"となる。これは桁落ちビットがないためである。
その後、セレクト信号OPSEは“0"とし、セレクタOPSE
Lで加算器ADDの出力をセレクトし、クリップ部CLiP1
も、信号OVCLが“0"であるため、そのまま入力信号を出
力し、最終結果が、アキュムレータACCに格納され、変
換は終了する(第2図(4)又は第3図(5)参照)。
Lで加算器ADDの出力をセレクトし、クリップ部CLiP1
も、信号OVCLが“0"であるため、そのまま入力信号を出
力し、最終結果が、アキュムレータACCに格納され、変
換は終了する(第2図(4)又は第3図(5)参照)。
第7図には上記の演算制御部ACUの入出力信号等のタ
イムチャートが示されている。
イムチャートが示されている。
バレルシフタ回路4の動作は既に公知であるが、ここ
で第8図及び第9図により簡単に説明する。
で第8図及び第9図により簡単に説明する。
まず、算術的に左シフトを行う場合は、MSB(符号ビ
ット)はその儘残してシフトし、消失ビットの論理和を
第5図のオーバーフロー検出回路OVDETで検出し、更に
消失ビットにMSBの符号と不一致のものがあるとオーバ
ーフローとして、クリップ部CLiPにて正又は負の最大値
にクリップする。
ット)はその儘残してシフトし、消失ビットの論理和を
第5図のオーバーフロー検出回路OVDETで検出し、更に
消失ビットにMSBの符号と不一致のものがあるとオーバ
ーフローとして、クリップ部CLiPにて正又は負の最大値
にクリップする。
例えば、第8図(a)に示す2の補数表現の−17を基
本とし、1ビット左シフトすると同図(b)に示す如く
2倍の値の−34で、2ビット左シフトすると同図(c)
に示す如く4倍の値の−68で、3ビット左シフトすると
−136とならなければならないが、負の最大値−128を越
えてオーバーフローしてしまい、この場合は同図(d)
に示す如く−8となる。
本とし、1ビット左シフトすると同図(b)に示す如く
2倍の値の−34で、2ビット左シフトすると同図(c)
に示す如く4倍の値の−68で、3ビット左シフトすると
−136とならなければならないが、負の最大値−128を越
えてオーバーフローしてしまい、この場合は同図(d)
に示す如く−8となる。
このオーバーフローの検出は、符号ビット(MSB)と
消失ビットの論理和又は論理積の不一致で検出され、正
又は負の最大値にクリップする。
消失ビットの論理和又は論理積の不一致で検出され、正
又は負の最大値にクリップする。
算術的に右シフトする場合は、第9図(1)(a)に
示す2の補数表現の−66を5ビットシフトするとシフト
した後へはMSBが入り、同図(1)(b)に示す如く中
間結果は−3となる。
示す2の補数表現の−66を5ビットシフトするとシフト
した後へはMSBが入り、同図(1)(b)に示す如く中
間結果は−3となる。
この時のガードビットは同図(1)(c)に示す如く
1となり、スティッキービットは同図(d)に示す値の
論理和の1となる。これらはキャリイ検出回路CADET内
で行われる。
1となり、スティッキービットは同図(d)に示す値の
論理和の1となる。これらはキャリイ検出回路CADET内
で行われる。
ここで、−66を5ビット右シフトすると、−66×2-5
=−2.0625であり、小数点以下の値を丸めると−2又は
−3となる。
=−2.0625であり、小数点以下の値を丸めると−2又は
−3となる。
この場合の、桁落ちビットの丸めには、中間結果に下
記に示すRの値を加算して求める最近値、プラス方向、
マイナス方向、ゼロ方向とする4つの方法がIEEE規格に
より決められている。
記に示すRの値を加算して求める最近値、プラス方向、
マイナス方向、ゼロ方向とする4つの方法がIEEE規格に
より決められている。
R=×+× R=+ R=0 R=〔+〕×S 但しはLSB、はガードビット、はスティッキー
ビット、Sは符号ビット(MSB)、+は論理和、×は論
理積を示す。
ビット、Sは符号ビット(MSB)、+は論理和、×は論
理積を示す。
このRの値を夫々加算すると、第9図(2)に示す如
く、最近値丸め及びプラス方向丸めは−2となり、マイ
ナス方向丸めは−3となり、ゼロ方向丸めは−2とな
る。従って、−2とする場合はキャリイ検出回路CADET
から“1"が出力され、−3とする場合は“0"が出力され
て上記の丸め動作が加算器ADDにより行われることとな
る。
く、最近値丸め及びプラス方向丸めは−2となり、マイ
ナス方向丸めは−3となり、ゼロ方向丸めは−2とな
る。従って、−2とする場合はキャリイ検出回路CADET
から“1"が出力され、−3とする場合は“0"が出力され
て上記の丸め動作が加算器ADDにより行われることとな
る。
以上のように、本発明の浮動小数点数−固定小数点数
変換装置によれば、1サイクル目にIEEE標準浮動小数点
数の2の補数化信号を生成してアキュムレータに格納
し、2サイクル目に該アキュムレータの該データをシフ
ト計算部で求めたシフト数及び方向だけバレルシフタ回
路でシフトし、このシフトの際にオーバーフローが生じ
た時はクリップ部でクリップしてアキュムレータに再度
格納し、3サイクル目では、2サイクル目でバレルシフ
タ回路がキャリイ検出していた場合には2サイクル目の
アキュムレータのデータにそのキャリイビットが付加さ
れて最終的な固定小数点数としてアキュムレータに格納
されるように構成したので、IEEE標準浮動小数点数をオ
ーバーフロー処理及び丸め処理を含めて固定小数点数に
変換することができ、演算精度を向上させることができ
る。
変換装置によれば、1サイクル目にIEEE標準浮動小数点
数の2の補数化信号を生成してアキュムレータに格納
し、2サイクル目に該アキュムレータの該データをシフ
ト計算部で求めたシフト数及び方向だけバレルシフタ回
路でシフトし、このシフトの際にオーバーフローが生じ
た時はクリップ部でクリップしてアキュムレータに再度
格納し、3サイクル目では、2サイクル目でバレルシフ
タ回路がキャリイ検出していた場合には2サイクル目の
アキュムレータのデータにそのキャリイビットが付加さ
れて最終的な固定小数点数としてアキュムレータに格納
されるように構成したので、IEEE標準浮動小数点数をオ
ーバーフロー処理及び丸め処理を含めて固定小数点数に
変換することができ、演算精度を向上させることができ
る。
第1図は本発明に係る浮動小数点数−固定小数点数変換
装置を概念的に示した図、 第2図及び第3図は本発明に係る浮動小数点数−固定小
数点数変換装置の動作を説明するための状態遷移図、 第4図は本発明に係る浮動小数点数−固定小数点数変換
装置に用いる変換部でのフォーマット変換図、 第5図は本発明に係る浮動小数点数−固定小数点数変換
装置の一実施例を示す回路図、 第6図は本発明に係る浮動小数点数−固定小数点数変換
装置に用いる演算制御部の入出力信号を示す図、 第7図は本発明に係る浮動小数点数−固定小数点数変換
装置の一実施例のタイムチャート図、 第8図及び第9図は本発明に係る浮動小数点数−固定小
数点数変換装置に用いるバレルシフタ回路の動作を説明
するための図、 第10図はIEEE形式の浮動小数点数表現を示した図、であ
る。 第1図において、1……変換部、2……加算器、3……
シフト計算部、4……バレルシフタ回路、5……選択
器、6……クリップ部、7……アキュムレータ、8……
演算制御部。 図中、同一符号は同一又は相当部分を示す。
装置を概念的に示した図、 第2図及び第3図は本発明に係る浮動小数点数−固定小
数点数変換装置の動作を説明するための状態遷移図、 第4図は本発明に係る浮動小数点数−固定小数点数変換
装置に用いる変換部でのフォーマット変換図、 第5図は本発明に係る浮動小数点数−固定小数点数変換
装置の一実施例を示す回路図、 第6図は本発明に係る浮動小数点数−固定小数点数変換
装置に用いる演算制御部の入出力信号を示す図、 第7図は本発明に係る浮動小数点数−固定小数点数変換
装置の一実施例のタイムチャート図、 第8図及び第9図は本発明に係る浮動小数点数−固定小
数点数変換装置に用いるバレルシフタ回路の動作を説明
するための図、 第10図はIEEE形式の浮動小数点数表現を示した図、であ
る。 第1図において、1……変換部、2……加算器、3……
シフト計算部、4……バレルシフタ回路、5……選択
器、6……クリップ部、7……アキュムレータ、8……
演算制御部。 図中、同一符号は同一又は相当部分を示す。
Claims (1)
- 【請求項1】IEEE標準浮動小数点数を格納するアキュム
レータ(7)と、 該浮動小数点数を、その符号ビットに合わせてフォーマ
ット変換する変換部(1)と、 該変換部(1)の出力と該符号を示すビットにより2の
補数化信号を発生する加算器(2)と、 該浮動小数点数の指数部からシフト数及びシフト方向を
発生してラッチするシフト計算部(3)と、 該シフト数及びシフト方向により該浮動小数点数をシフ
トするバレルシフタ回路(4)と、 該加算器(2)の出力又は該バレルシフタ回路(4)の
出力を選択する選択器(5)と、 該バレルシフタ回路(4)がオーバーフローした時のみ
該選択器(5)の出力をクリップして該アキュムレータ
(7)に与えるクリップ部(6)と、 1サイクル目に該浮動小数点数の符号ビットに応じて該
変換部(1)に制御信号を与え、2サイクル目に該シフ
ト計算部(3)のラッチされた値を出力させ、1サイク
ル目及び3サイクル目に該加算器(2)の出力を、2サ
イクル目に該バレルシフタ回路(4)の出力をそれぞれ
選択するように該選択器(5)を制御し該バレルシフタ
回路(4)がキャリイ検出した時、3サイクル目に該キ
ャリイ信号に基づいて該加算器(2)に丸め信号を与え
る演算制御部(8)と、 を備えたことを特徴とする浮動小数点数−固定小数点数
変換装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63033102A JP2509279B2 (ja) | 1988-02-16 | 1988-02-16 | 浮動小数点数一固定小数点数変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63033102A JP2509279B2 (ja) | 1988-02-16 | 1988-02-16 | 浮動小数点数一固定小数点数変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01207823A JPH01207823A (ja) | 1989-08-21 |
JP2509279B2 true JP2509279B2 (ja) | 1996-06-19 |
Family
ID=12377300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63033102A Expired - Fee Related JP2509279B2 (ja) | 1988-02-16 | 1988-02-16 | 浮動小数点数一固定小数点数変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2509279B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263539B2 (en) | 2000-11-13 | 2007-08-28 | Nec Electronics Corporation | Circuit and method for generating fixed point data with reduced circuit scale |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04290122A (ja) * | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 数値表現変換装置 |
JP4575609B2 (ja) * | 2001-03-13 | 2010-11-04 | 旭化成エレクトロニクス株式会社 | データ変換装置 |
US7236995B2 (en) * | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
JP2010170196A (ja) | 2009-01-20 | 2010-08-05 | Sony Corp | 演算プログラム変換装置、演算プログラム変換方法およびプログラム |
-
1988
- 1988-02-16 JP JP63033102A patent/JP2509279B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263539B2 (en) | 2000-11-13 | 2007-08-28 | Nec Electronics Corporation | Circuit and method for generating fixed point data with reduced circuit scale |
Also Published As
Publication number | Publication date |
---|---|
JPH01207823A (ja) | 1989-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5373459A (en) | Floating point processor with high speed rounding circuit | |
KR960003044B1 (ko) | 수치표현 변환장치 및 그것을 사용한 벡터ㆍ프로세서ㆍ유니트 | |
JP3735425B2 (ja) | 絶対値比較回路 | |
US4992969A (en) | Integer division circuit provided with a overflow detector circuit | |
US4648059A (en) | N-bit magnitude comparator | |
JP2509279B2 (ja) | 浮動小数点数一固定小数点数変換装置 | |
JP3003467B2 (ja) | 演算装置 | |
JP2511527B2 (ja) | 浮動小数点演算器 | |
US6151612A (en) | Apparatus and method for converting floating point number into integer in floating point unit | |
JP3356613B2 (ja) | 加算方法および加算器 | |
US6477557B1 (en) | Division circuit not requiring taking complements of divisor, dividend and remainder | |
JPH0511980A (ja) | 桁あふれ検出方式とその回路 | |
JPS62197868A (ja) | パイプライン構成の直線近似変換回路 | |
JP2578482B2 (ja) | 浮動小数点演算器 | |
JP2991788B2 (ja) | 復号器 | |
JP3074958B2 (ja) | 加算機能付きシリアル乗算器 | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
KR960012664B1 (ko) | 정규화를 위한 시프트-넘버 검출 회로를 구비한 고정 소수점 디지탈 신호 처리기 | |
JP2907276B2 (ja) | 演算処理装置 | |
JP4073513B2 (ja) | 浮動小数点処理装置 | |
JPH1040073A (ja) | ディジタル信号処理装置 | |
JP2558939B2 (ja) | 丸め回路 | |
JP3284717B2 (ja) | バレルシフタ | |
JP2575856B2 (ja) | 演算回路 | |
JPH03164830A (ja) | 乗算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |