JPH0756710A - ブロック正規化制御方式 - Google Patents
ブロック正規化制御方式Info
- Publication number
- JPH0756710A JPH0756710A JP5205974A JP20597493A JPH0756710A JP H0756710 A JPH0756710 A JP H0756710A JP 5205974 A JP5205974 A JP 5205974A JP 20597493 A JP20597493 A JP 20597493A JP H0756710 A JPH0756710 A JP H0756710A
- Authority
- JP
- Japan
- Prior art keywords
- shift value
- register
- point data
- data
- update information
- 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
Links
Abstract
(57)【要約】
【目的】 1ブロック毎に固定小数点データを正規化す
るブロック正規化制御方式に関し、チップサイズの縮小
並びに演算量の削減を図る。 【構成】 固定小数点データ処理部1からの固定小数点
データの指数情報を指数抽出部2により抽出し、比較部
3により今回の指数情報と前回までの最小シフト値とを
比較し、小さい方の値で最小シフト値レジスタ4を更新
し、更新の有無を示す更新情報を更新情報レジスタ5に
格納し、更新有りの時の比較結果による差分シフト値を
差分シフト値レジスタ6に格納し、前記固定小数点デー
タをシフトレジスタ7により前記最小シフト値レジスタ
4の最小シフト値に従ってシフトして正規化を行い、正
規化固定小数点データをバス9を介してメモリ8に転送
して格納する。
るブロック正規化制御方式に関し、チップサイズの縮小
並びに演算量の削減を図る。 【構成】 固定小数点データ処理部1からの固定小数点
データの指数情報を指数抽出部2により抽出し、比較部
3により今回の指数情報と前回までの最小シフト値とを
比較し、小さい方の値で最小シフト値レジスタ4を更新
し、更新の有無を示す更新情報を更新情報レジスタ5に
格納し、更新有りの時の比較結果による差分シフト値を
差分シフト値レジスタ6に格納し、前記固定小数点デー
タをシフトレジスタ7により前記最小シフト値レジスタ
4の最小シフト値に従ってシフトして正規化を行い、正
規化固定小数点データをバス9を介してメモリ8に転送
して格納する。
Description
【0001】
【産業上の利用分野】本発明は、1ブロック毎の固定小
数点データを正規化するブロック正規化制御方式に関す
る。音声信号や画像信号等の各種の信号をディジタル信
号に変換して処理する為のディジタル・シグナル・プロ
セッサ(DSP)は、低消費電力化と共にチップサイズ
の縮小化等が要求されている。それに伴って、固定小数
点データを取扱う構成が採用されている。この固定小数
点データは、浮動小数点データに比較して高速処理が可
能であるが、データ精度が低下する問題があり、これを
回避する為の疑似的な浮動小数点表現を用いることも知
られているが、演算量が増大する欠点がある。従って、
固定小数点データを取扱う場合の演算量を増大すること
なく、所望の精度を維持することが要望されている。
数点データを正規化するブロック正規化制御方式に関す
る。音声信号や画像信号等の各種の信号をディジタル信
号に変換して処理する為のディジタル・シグナル・プロ
セッサ(DSP)は、低消費電力化と共にチップサイズ
の縮小化等が要求されている。それに伴って、固定小数
点データを取扱う構成が採用されている。この固定小数
点データは、浮動小数点データに比較して高速処理が可
能であるが、データ精度が低下する問題があり、これを
回避する為の疑似的な浮動小数点表現を用いることも知
られているが、演算量が増大する欠点がある。従って、
固定小数点データを取扱う場合の演算量を増大すること
なく、所望の精度を維持することが要望されている。
【0002】
【従来の技術】固定小数点データは、語長の制約によっ
てデータ精度が決まるものであり、例えば、16ビット
固定小数点フォーマットの場合、そのMSBの1ビット
を正負を表す符号ビットとすることにより、−1.0≦
0<1.0の数値を表現できるが、その場合のLSBは
2-15 (=3.05×10-3)の数値を示し、これより
細かい数値の表現は不可能となる。即ち、16ビット固
定小数点フォーマットで表される数値は、2-15 のステ
ップで量子化されたことと等価となる。
てデータ精度が決まるものであり、例えば、16ビット
固定小数点フォーマットの場合、そのMSBの1ビット
を正負を表す符号ビットとすることにより、−1.0≦
0<1.0の数値を表現できるが、その場合のLSBは
2-15 (=3.05×10-3)の数値を示し、これより
細かい数値の表現は不可能となる。即ち、16ビット固
定小数点フォーマットで表される数値は、2-15 のステ
ップで量子化されたことと等価となる。
【0003】通常のディジタル・シグナル・プロセッサ
(DSP)に於いては、乗算,加算,積和算等の処理に
於ける精度を保証する為に、例えば、16ビット固定小
数点データに対しては36ビット或いは40ビットの倍
長精度のアキュムレータを設けている。しかし、このよ
うな倍長精度のアキュムレータを設けても、バス幅は例
えば16ビット幅とするものであるから、このバス幅の
制約により、アキュムレータ以外のレジスタやメモリは
16ビット構成となる。従って、倍長精度を維持するこ
とができないものとなる。
(DSP)に於いては、乗算,加算,積和算等の処理に
於ける精度を保証する為に、例えば、16ビット固定小
数点データに対しては36ビット或いは40ビットの倍
長精度のアキュムレータを設けている。しかし、このよ
うな倍長精度のアキュムレータを設けても、バス幅は例
えば16ビット幅とするものであるから、このバス幅の
制約により、アキュムレータ以外のレジスタやメモリは
16ビット構成となる。従って、倍長精度を維持するこ
とができないものとなる。
【0004】そこで、固定小数点データを正規化するこ
とが提案されている。例えば、固定小数点データを仮数
と指数とに分離し、疑似的な浮動小数点表現とするもの
である。その場合は、各固定小数点データ毎に指数情報
抽出を行い、その指数情報に従って符号ビット側にシフ
トして最大精度で正規化するものであり、正規化固定小
数点データと共に指数情報を記憶しておき、データを処
理する場合には、正規化固定小数点データと共に指数情
報を読出して桁合わせを行うことになる。しかし、演算
量の増大とメモリ容量の増大とが生じる欠点がある。
とが提案されている。例えば、固定小数点データを仮数
と指数とに分離し、疑似的な浮動小数点表現とするもの
である。その場合は、各固定小数点データ毎に指数情報
抽出を行い、その指数情報に従って符号ビット側にシフ
トして最大精度で正規化するものであり、正規化固定小
数点データと共に指数情報を記憶しておき、データを処
理する場合には、正規化固定小数点データと共に指数情
報を読出して桁合わせを行うことになる。しかし、演算
量の増大とメモリ容量の増大とが生じる欠点がある。
【0005】これに対して、処理量の増大を抑えたブロ
ック正規化方式が知られている。図6は従来例のブロッ
ク正規化制御方式の説明図であり、N個の固定小数点デ
ータD(0) 〜D(N-1) を1ブロックとするもので、斜線
を施した部分が仮数部に相当し、斜線を施していない部
分が指数部に相当し、Sは符号ビットを示す。
ック正規化方式が知られている。図6は従来例のブロッ
ク正規化制御方式の説明図であり、N個の固定小数点デ
ータD(0) 〜D(N-1) を1ブロックとするもので、斜線
を施した部分が仮数部に相当し、斜線を施していない部
分が指数部に相当し、Sは符号ビットを示す。
【0006】先ず、1ブロック内の最大値を探索するも
ので、各データD(0) 〜D(N-1) について、仮数部を左
方向にシフトした場合のシフト数を求める。図示の場
合、データD(0) 〜D(N-1) のシフト数が8,6,1
2,3,9,・・・13であるとし、最小シフト数が3
であるとすると、その最小シフト数3のデータD(3) が
ブロック内の最大値を示すことになる。そこで、各デー
タD(0) 〜D(N-1) を全て3ビット左方向にシフトする
と、上方に示す1ブロックの固定小数点データは、下方
に示すブロック正規化固定小数点データとなり、最大値
のデータD(3) の絶対精度を維持することができる。
ので、各データD(0) 〜D(N-1) について、仮数部を左
方向にシフトした場合のシフト数を求める。図示の場
合、データD(0) 〜D(N-1) のシフト数が8,6,1
2,3,9,・・・13であるとし、最小シフト数が3
であるとすると、その最小シフト数3のデータD(3) が
ブロック内の最大値を示すことになる。そこで、各デー
タD(0) 〜D(N-1) を全て3ビット左方向にシフトする
と、上方に示す1ブロックの固定小数点データは、下方
に示すブロック正規化固定小数点データとなり、最大値
のデータD(3) の絶対精度を維持することができる。
【0007】図7はブロック正規化制御方式に於ける最
小シフト数を求める場合の従来例のフローチャートを示
し、先ず、初期設定として、最小シフト値SFTmin を
無限大(+∞)とし、且つn=0とする(a1)。そして、
倍長精度の固定小数点データD(n) のセットアップを行
い(a2)、そのデータD(n) の指数抽出を行ってシフト値
SFTとする(a3)。
小シフト数を求める場合の従来例のフローチャートを示
し、先ず、初期設定として、最小シフト値SFTmin を
無限大(+∞)とし、且つn=0とする(a1)。そして、
倍長精度の固定小数点データD(n) のセットアップを行
い(a2)、そのデータD(n) の指数抽出を行ってシフト値
SFTとする(a3)。
【0008】このシフト値SFTに従ってデータD(n)
をシフトして仮の正規化を行い、バス幅等による語長の
正規化データD(n) normとする(a4)。次に、シフト値S
FTと最小シフト値SFTmin とを比較し(a5)、今回の
シフト値SFTが最小シフト値SFTmin より小さい場
合は、今回のシフト値SFTを新たな最小シフト値SF
Tmin とし(a6)、又今回のシフト値SFTが最小シフト
値SFTmin と同じか又は大きい場合は、最小シフト値
SFTmin はそのままとして、正規化データD(n) norm
を格納し(a7)、且つその時のシフト値SFTを正規化デ
ータD(n) normのシフト値SFT(n) として格納する(a
8)。
をシフトして仮の正規化を行い、バス幅等による語長の
正規化データD(n) normとする(a4)。次に、シフト値S
FTと最小シフト値SFTmin とを比較し(a5)、今回の
シフト値SFTが最小シフト値SFTmin より小さい場
合は、今回のシフト値SFTを新たな最小シフト値SF
Tmin とし(a6)、又今回のシフト値SFTが最小シフト
値SFTmin と同じか又は大きい場合は、最小シフト値
SFTmin はそのままとして、正規化データD(n) norm
を格納し(a7)、且つその時のシフト値SFTを正規化デ
ータD(n) normのシフト値SFT(n) として格納する(a
8)。
【0009】次に、n=N−1か否かを判定する(a9)、
この場合のNは、1ブロックのデータ数を示し、従っ
て、1ブロックのデータD(n) は、D(0) 〜D(N-1) と
なる。又n=N−1でない時は、n=n+1として(a1
0) 、ステップ(a2)に移行し、又n=N−1の時は、格
納された1ブロックのデータD(n) のシフト値SFT
(n)の中の最小シフト値SFTmin がステップ(a6)に於
いて得られるから、この最小シフト値SFTmin を格納
する(a11) 。前述のような処理により求めた最小シフト
値SFTmin を用いて、図6の下方に示すようなブロッ
ク正規化を行うことになる。
この場合のNは、1ブロックのデータ数を示し、従っ
て、1ブロックのデータD(n) は、D(0) 〜D(N-1) と
なる。又n=N−1でない時は、n=n+1として(a1
0) 、ステップ(a2)に移行し、又n=N−1の時は、格
納された1ブロックのデータD(n) のシフト値SFT
(n)の中の最小シフト値SFTmin がステップ(a6)に於
いて得られるから、この最小シフト値SFTmin を格納
する(a11) 。前述のような処理により求めた最小シフト
値SFTmin を用いて、図6の下方に示すようなブロッ
ク正規化を行うことになる。
【0010】又図8は、最適シフト値(最小シフト値)
抽出処理と、ブロック正規化処理とからなる従来例のフ
ローチャートを示し、先ず、初期設定として、最小シフ
ト値SFTmin を無限大とし、且つn=0とする(b1)。
そして、データD(n) のセットアップを行い(b2)、その
データD(n) の指数抽出を行ってシフト値SFTとする
(b3)。
抽出処理と、ブロック正規化処理とからなる従来例のフ
ローチャートを示し、先ず、初期設定として、最小シフ
ト値SFTmin を無限大とし、且つn=0とする(b1)。
そして、データD(n) のセットアップを行い(b2)、その
データD(n) の指数抽出を行ってシフト値SFTとする
(b3)。
【0011】そのシフト値SFTが最小シフト値SFT
min であるか否かを判定し(b4)、今回のシフト値SFT
が最小シフト値SFTmin より小さい場合は、今回のシ
フト値SFTを新たな最小シフト値SFTmin とし(b
5)、又今回のシフト値SFTが最小シフト値SFTmin
より小さくない場合は、そのままとして、データD(n)
を一時格納する(b6)。この場合のデータD(n) は倍長精
度のデータである。
min であるか否かを判定し(b4)、今回のシフト値SFT
が最小シフト値SFTmin より小さい場合は、今回のシ
フト値SFTを新たな最小シフト値SFTmin とし(b
5)、又今回のシフト値SFTが最小シフト値SFTmin
より小さくない場合は、そのままとして、データD(n)
を一時格納する(b6)。この場合のデータD(n) は倍長精
度のデータである。
【0012】そして、n=N−1か否かを判定し(b7)、
n=N−1でない時は、n=n+1(b8)としてステップ
(b2)に移行し、n=N−1の時はステップ(b9)に移行す
る。即ち、前述のステップ(b1)〜(b8)により1ブロック
のデータ数Nのデータについての最小シフト値SFTmi
n を得ることができる。
n=N−1でない時は、n=n+1(b8)としてステップ
(b2)に移行し、n=N−1の時はステップ(b9)に移行す
る。即ち、前述のステップ(b1)〜(b8)により1ブロック
のデータ数Nのデータについての最小シフト値SFTmi
n を得ることができる。
【0013】次に、ステップ(b9)に於いてn=0とし、
ステップ(b6)に於いて一時格納した倍長精度のデータD
(n) をロードし(b10) 、このデータD(n) を最小シフト
値SFTmin により正規化し(b11) 、それによって得ら
れた正規化データD(n) を格納する(b12) 。次に、n=
N−1か否かを判定し(b13) 、n=N−1でない時は、
n=n+1(b15) としてステップ(b10) に移行し、n=
N−1の時は、1ブロックのデータについて正規化が終
了したから、その時の最小シフト値SFTminを格納す
る(b14) 。
ステップ(b6)に於いて一時格納した倍長精度のデータD
(n) をロードし(b10) 、このデータD(n) を最小シフト
値SFTmin により正規化し(b11) 、それによって得ら
れた正規化データD(n) を格納する(b12) 。次に、n=
N−1か否かを判定し(b13) 、n=N−1でない時は、
n=n+1(b15) としてステップ(b10) に移行し、n=
N−1の時は、1ブロックのデータについて正規化が終
了したから、その時の最小シフト値SFTminを格納す
る(b14) 。
【0014】前述の図8に示す従来例は、倍長精度のバ
ッファメモリを必要とすることになり、これに対して前
述の図7に示す従来例は、シフトしたデータを一時格納
するから、倍長精度のバッファメモリを設ける必要がな
いが、演算量が多くなる。又前述の図8に示す従来例に
類似した他のブロック正規化方式として、例えば、特開
平4−195334号公報にも示されている。このブロ
ック正規化方式は、演算ユニットから出力される倍長精
度の固定小数点データをそのままデータバッファに1ブ
ロック分一時蓄積し、且つ正規化シフト値(最小シフト
値)を検出し、次にデータバッファから順次読出した固
定小数点データを正規化シフト値に従ってシフトして正
規化し、その正規化固定小数点データをメモリに格納す
るものである。
ッファメモリを必要とすることになり、これに対して前
述の図7に示す従来例は、シフトしたデータを一時格納
するから、倍長精度のバッファメモリを設ける必要がな
いが、演算量が多くなる。又前述の図8に示す従来例に
類似した他のブロック正規化方式として、例えば、特開
平4−195334号公報にも示されている。このブロ
ック正規化方式は、演算ユニットから出力される倍長精
度の固定小数点データをそのままデータバッファに1ブ
ロック分一時蓄積し、且つ正規化シフト値(最小シフト
値)を検出し、次にデータバッファから順次読出した固
定小数点データを正規化シフト値に従ってシフトして正
規化し、その正規化固定小数点データをメモリに格納す
るものである。
【0015】
【発明が解決しようとする問題点】固定小数点データの
それぞれについて正規化を行い、指数情報と共に格納す
る方式に比較して、ブロック正規化は、ブロック内では
シフト値を固定とする為、ブロック内のデータ間の相対
関係は変わらないから、ブロック内のデータ間の処理に
於いては、シフト処理を行う必要がなく、全体として処
理量を低減できるものである。
それぞれについて正規化を行い、指数情報と共に格納す
る方式に比較して、ブロック正規化は、ブロック内では
シフト値を固定とする為、ブロック内のデータ間の相対
関係は変わらないから、ブロック内のデータ間の処理に
於いては、シフト処理を行う必要がなく、全体として処
理量を低減できるものである。
【0016】しかし、前述の従来例に於いては、ブロッ
ク内の全データについて指数情報を抽出する為の処理
と、最小シフト値を求めて全データの正規化を行う為の
処理との2回にわたるブロック内データの処理を必要と
するから、ブロック内データ数に比例して演算量が増加
する問題がある。又演算量を低減する為には、倍長精度
のデータを一時格納する為のメモリを必要とするから、
チップサイズや消費電力の増大を招いてしまう欠点があ
る。本発明は、チップサイズの縮小を可能とし、且つ演
算量の削減によりチップの低消費電力化を図ることを目
的とする。
ク内の全データについて指数情報を抽出する為の処理
と、最小シフト値を求めて全データの正規化を行う為の
処理との2回にわたるブロック内データの処理を必要と
するから、ブロック内データ数に比例して演算量が増加
する問題がある。又演算量を低減する為には、倍長精度
のデータを一時格納する為のメモリを必要とするから、
チップサイズや消費電力の増大を招いてしまう欠点があ
る。本発明は、チップサイズの縮小を可能とし、且つ演
算量の削減によりチップの低消費電力化を図ることを目
的とする。
【0017】
【課題を解決するための手段】本発明のブロック正規化
制御方式は、図1を参照して説明すると、1ブロック毎
に固定小数点データを正規化するブロック正規化制御方
式に於いて、論理演算部等の固定小数点データ処理部1
からの固定小数点データの指数情報を抽出する指数抽出
部2と、比較部3と、最小シフト値レジスタ4と、更新
情報レジスタ5と、差分シフト値レジスタ6と、シフト
レジスタ7とを備え、固定小数点データ処理部1からの
固定小数点データの指数情報を指数抽出部2により抽出
し、比較部3により今回の指数情報と前回までの最小シ
フト値レジスタ4の最小シフト値とを比較し、小さい方
の値で最小シフト値レジスタ4の最小シフト値を更新
し、且つ更新したか否かを示す更新情報を更新情報レジ
スタ5に格納すると共に、更新有りの時の比較結果によ
る正の差分値を差分シフト値レジスタ6に格納し、シフ
トレジスタ7により固定小数点データを最小シフト値レ
ジスタ4の最小シフト値に従ってシフトして正規化する
ものである。又8はメモリ、9はバスを示す。
制御方式は、図1を参照して説明すると、1ブロック毎
に固定小数点データを正規化するブロック正規化制御方
式に於いて、論理演算部等の固定小数点データ処理部1
からの固定小数点データの指数情報を抽出する指数抽出
部2と、比較部3と、最小シフト値レジスタ4と、更新
情報レジスタ5と、差分シフト値レジスタ6と、シフト
レジスタ7とを備え、固定小数点データ処理部1からの
固定小数点データの指数情報を指数抽出部2により抽出
し、比較部3により今回の指数情報と前回までの最小シ
フト値レジスタ4の最小シフト値とを比較し、小さい方
の値で最小シフト値レジスタ4の最小シフト値を更新
し、且つ更新したか否かを示す更新情報を更新情報レジ
スタ5に格納すると共に、更新有りの時の比較結果によ
る正の差分値を差分シフト値レジスタ6に格納し、シフ
トレジスタ7により固定小数点データを最小シフト値レ
ジスタ4の最小シフト値に従ってシフトして正規化する
ものである。又8はメモリ、9はバスを示す。
【0018】又更新情報レジスタ5に格納する1ビット
の更新情報を順次カウントし、カウント値が正規化固定
小数点データの語長分となった時に、その語長分の更新
情報をメモリ又はスタックレジスタへ転送することがで
きる。
の更新情報を順次カウントし、カウント値が正規化固定
小数点データの語長分となった時に、その語長分の更新
情報をメモリ又はスタックレジスタへ転送することがで
きる。
【0019】又正規化固定小数点データの桁合わせに於
いて、更新情報レジスタ5に格納された正規化固定小数
点データ対応の更新情報が更新有りを示す時に、最小シ
フト値レジスタ4の最小シフト値を基に、差分シフト値
レジスタ6に格納された差分値を用いて桁合わせシフト
値を求めて、正規化固定小数点データをシフトレジスタ
7によりシフトし、更新情報レジスタ5の更新情報が更
新無しを示す時に、前回のシフト値に従って正規化固定
小数点データをシフトレジスタ7によりシフトすること
がてきる。
いて、更新情報レジスタ5に格納された正規化固定小数
点データ対応の更新情報が更新有りを示す時に、最小シ
フト値レジスタ4の最小シフト値を基に、差分シフト値
レジスタ6に格納された差分値を用いて桁合わせシフト
値を求めて、正規化固定小数点データをシフトレジスタ
7によりシフトし、更新情報レジスタ5の更新情報が更
新無しを示す時に、前回のシフト値に従って正規化固定
小数点データをシフトレジスタ7によりシフトすること
がてきる。
【0020】
【作用】1ブロックの固定小数点データの正規化に於い
て、最小シフト値レジスタ4に最大値を初期値としてセ
ットし、更新情報レジスタ5と差分シフト値レジスタ6
とをクリアする。固定小数点データ処理部1からの1ブ
ロックの最初のデータが出力されると、指数抽出部2に
より指数情報を抽出し、この指数情報と最小シフト値レ
ジスタ4に格納された最大値とを比較部3により比較
し、今回のデータの指数情報が小さいから、これを最小
シフト値レジスタ4にセットし、且つ更新情報レジスタ
5に更新有りをセットし、差分シフト値レジスタ6に、
今回のデータの指数情報に従ったシフト値をセットし、
今回のデータを最小シフト値レジスタ4にセットされた
シフト値に従ってシフトレジスタ7により今回のデータ
をシフトして正規化し、バス9を介してメモリ8に転送
する。
て、最小シフト値レジスタ4に最大値を初期値としてセ
ットし、更新情報レジスタ5と差分シフト値レジスタ6
とをクリアする。固定小数点データ処理部1からの1ブ
ロックの最初のデータが出力されると、指数抽出部2に
より指数情報を抽出し、この指数情報と最小シフト値レ
ジスタ4に格納された最大値とを比較部3により比較
し、今回のデータの指数情報が小さいから、これを最小
シフト値レジスタ4にセットし、且つ更新情報レジスタ
5に更新有りをセットし、差分シフト値レジスタ6に、
今回のデータの指数情報に従ったシフト値をセットし、
今回のデータを最小シフト値レジスタ4にセットされた
シフト値に従ってシフトレジスタ7により今回のデータ
をシフトして正規化し、バス9を介してメモリ8に転送
する。
【0021】次のデータについてもその指数情報を指数
抽出部2により抽出し、この指数情報と最小シフト値レ
ジスタ4にセットされた前回までの最小シフト値と比較
し、今回のデータの指数情報によるシフト値が小さい場
合は、このシフト値を最小シフト値として最小シフト値
レジスタ4を更新し、更新情報レジスタ5に更新有りを
セットし、差分シフト値レジスタ6に、更新有りの時の
前回のシフト値と今回のシフト値との差分をセットし、
最小シフト値レジスタ3にセットされた最小シフト値に
従ってシフトレジスタ7により今回のデータをシフトし
て正規化し、バス9を介してメモリ8に転送する。従っ
て、最小シフト値レジスタ3にはブロック内のデータの
正規化の為の最小シフト値がセットされることになり、
倍長精度のメモリを必要とすることなく、固定小数点デ
ータのブロック正規化が可能となる。即ち、或る時点に
於ける最適シフト値でシフトしたデータを格納するもの
で、最適シフト値の探索とデータのシフト及びその格納
とを同時的に行うことが可能となり、又最適シフト値の
更新を1ビット情報で表現し、その1ビット情報と同期
した差分シフト値を格納することにより、補助情報量の
圧縮を図ることができる。又その為に付加する構成は僅
かで済むものである。
抽出部2により抽出し、この指数情報と最小シフト値レ
ジスタ4にセットされた前回までの最小シフト値と比較
し、今回のデータの指数情報によるシフト値が小さい場
合は、このシフト値を最小シフト値として最小シフト値
レジスタ4を更新し、更新情報レジスタ5に更新有りを
セットし、差分シフト値レジスタ6に、更新有りの時の
前回のシフト値と今回のシフト値との差分をセットし、
最小シフト値レジスタ3にセットされた最小シフト値に
従ってシフトレジスタ7により今回のデータをシフトし
て正規化し、バス9を介してメモリ8に転送する。従っ
て、最小シフト値レジスタ3にはブロック内のデータの
正規化の為の最小シフト値がセットされることになり、
倍長精度のメモリを必要とすることなく、固定小数点デ
ータのブロック正規化が可能となる。即ち、或る時点に
於ける最適シフト値でシフトしたデータを格納するもの
で、最適シフト値の探索とデータのシフト及びその格納
とを同時的に行うことが可能となり、又最適シフト値の
更新を1ビット情報で表現し、その1ビット情報と同期
した差分シフト値を格納することにより、補助情報量の
圧縮を図ることができる。又その為に付加する構成は僅
かで済むものである。
【0022】又更新情報レジスタ5に格納する1ビット
の更新情報を順次カウントして、そのカウント値が正規
化固定小数点データの語長分、例えば、16ビット分と
なると、16個の固定小数点データに対する更新情報と
なるから、この更新情報をメモリ8又はスタックレジス
タに格納する。この場合、正規化固定小数点データと転
送するバス9を介して更新情報をメモリ8に転送するこ
とができる。
の更新情報を順次カウントして、そのカウント値が正規
化固定小数点データの語長分、例えば、16ビット分と
なると、16個の固定小数点データに対する更新情報と
なるから、この更新情報をメモリ8又はスタックレジス
タに格納する。この場合、正規化固定小数点データと転
送するバス9を介して更新情報をメモリ8に転送するこ
とができる。
【0023】又ブロック内のデータの桁合わせに於い
て、更新情報が更新有りを示す時に、最小シフト値レジ
スタ4の最小シフト値と、差分シフト値レジスタ6の差
分値とを用いて、更新情報が更新有りを示す時は、最小
シフト値と、差分値との差を桁合わせシフト値とし、更
新無しを示す時は、前回の桁合わせシフト値を用いて、
シフトレジスタ7により正規化固定小数点データをシフ
トする。
て、更新情報が更新有りを示す時に、最小シフト値レジ
スタ4の最小シフト値と、差分シフト値レジスタ6の差
分値とを用いて、更新情報が更新有りを示す時は、最小
シフト値と、差分値との差を桁合わせシフト値とし、更
新無しを示す時は、前回の桁合わせシフト値を用いて、
シフトレジスタ7により正規化固定小数点データをシフ
トする。
【0024】
【実施例】図2は本発明の実施例の要部説明図であり、
11,12はデータバス、13,14はレジスタ(A
R),(BR)、15は乗算器、16はレジスタ(P
R)、17はシフトレジスタ(SFB)、18は論理演
算部(ALU)、19はアキュムレータ(ACC)、2
0はシフトレジスタ(SFA)、21は指数抽出部、2
2は比較部、23は最小シフト値レジスタ、24は更新
情報レジスタ、25は差分シフト値レジスタ、26はセ
レクタ、17,28はメモリである。
11,12はデータバス、13,14はレジスタ(A
R),(BR)、15は乗算器、16はレジスタ(P
R)、17はシフトレジスタ(SFB)、18は論理演
算部(ALU)、19はアキュムレータ(ACC)、2
0はシフトレジスタ(SFA)、21は指数抽出部、2
2は比較部、23は最小シフト値レジスタ、24は更新
情報レジスタ、25は差分シフト値レジスタ、26はセ
レクタ、17,28はメモリである。
【0025】レジスタ13,14,16と、乗算器15
と、論理演算部18と、アキュムレータ19とを含む構
成が、図1の固定小数点データ処理部1に相当し、例え
ば、バス11,12を16ビット幅とすると、レジスタ
13,14は16ビット構成とし、乗算器15の出力を
セットするレジスタ16は32ビット構成とし、論理演
算部18の出力をセットするアキュムレータ19は40
ビット構成とすることができる。又シフトレジスタ20
は、アキュムレータ19からの固定小数点データをセッ
トし、シフト処理により16ビットに正規化するもので
ある。又シフトレジスタ17は、16ビットの正規化固
定小数点データをセットし、図示を省略した経路によっ
て制御し、ブロック内の桁合わせ等のシフト処理を行う
ものである。
と、論理演算部18と、アキュムレータ19とを含む構
成が、図1の固定小数点データ処理部1に相当し、例え
ば、バス11,12を16ビット幅とすると、レジスタ
13,14は16ビット構成とし、乗算器15の出力を
セットするレジスタ16は32ビット構成とし、論理演
算部18の出力をセットするアキュムレータ19は40
ビット構成とすることができる。又シフトレジスタ20
は、アキュムレータ19からの固定小数点データをセッ
トし、シフト処理により16ビットに正規化するもので
ある。又シフトレジスタ17は、16ビットの正規化固
定小数点データをセットし、図示を省略した経路によっ
て制御し、ブロック内の桁合わせ等のシフト処理を行う
ものである。
【0026】又指数抽出部21は、既に知られた各種の
構成を用いることができるものであり、例えば、固定小
数点データの符号ビットの次の“0”の個数を論理回路
或いはソフト処理により求める構成とすることができ
る。比較部22は、指数抽出部21からの指数情報と、
最小シフト値レジスタ23の内容とを比較して小さい方
の値を最小シフト値レジスタ23にセットし、その場合
の更新の有無の情報を更新情報レジスタ24にセット
し、又抽出した指数情報と、最小シフト値レジスタ23
の内容との差に相当する差分値を差分シフト値レジスタ
25にセットし、最小シフト値レジスタ23の内容に従
ってシフトレジスタ26を制御して、ブロック正規化を
行う。
構成を用いることができるものであり、例えば、固定小
数点データの符号ビットの次の“0”の個数を論理回路
或いはソフト処理により求める構成とすることができ
る。比較部22は、指数抽出部21からの指数情報と、
最小シフト値レジスタ23の内容とを比較して小さい方
の値を最小シフト値レジスタ23にセットし、その場合
の更新の有無の情報を更新情報レジスタ24にセット
し、又抽出した指数情報と、最小シフト値レジスタ23
の内容との差に相当する差分値を差分シフト値レジスタ
25にセットし、最小シフト値レジスタ23の内容に従
ってシフトレジスタ26を制御して、ブロック正規化を
行う。
【0027】図3は本発明の実施例のブロック正規化処
理の説明図であり、(a)は1ブロックをN個の固定小
数点データD(1) 〜D(N-1) で構成されている場合を示
し、(b)は正規化されたデータMD(1) 〜MD(N-1)
、(c)は桁合わせされたデータRD(1) 〜RD(N-1)
を示す。又固定小数点データD(1) 〜D(N-1) は、正
規化データMD(1) 〜MD(N-1) と同一の長さで図示し
ているが、倍長精度のデータである。又Sは符号ビット
であり、斜線を施した部分が仮数部である。
理の説明図であり、(a)は1ブロックをN個の固定小
数点データD(1) 〜D(N-1) で構成されている場合を示
し、(b)は正規化されたデータMD(1) 〜MD(N-1)
、(c)は桁合わせされたデータRD(1) 〜RD(N-1)
を示す。又固定小数点データD(1) 〜D(N-1) は、正
規化データMD(1) 〜MD(N-1) と同一の長さで図示し
ているが、倍長精度のデータである。又Sは符号ビット
であり、斜線を施した部分が仮数部である。
【0028】固定小数点データD(1) 〜D(N-1) の指数
情報を8,6,12,3,9,・・・13とした場合、
指数情報3のデータD(3) がブロック内の最大値を示す
ものとなる。この指数情報は、指数抽出部21に於いて
抽出され、シフト値SFTとして比較部22に加えられ
る。
情報を8,6,12,3,9,・・・13とした場合、
指数情報3のデータD(3) がブロック内の最大値を示す
ものとなる。この指数情報は、指数抽出部21に於いて
抽出され、シフト値SFTとして比較部22に加えられ
る。
【0029】図4は本発明の第1の実施例のフローチャ
ートであり、1ブロックのデータの正規化を行う場合の
初期設定として、最小シフト値SFTmin を無限大(+
∞)とし、且つn=0,m=0とする(1) 。このnはブ
ロック内のデータD(n) の番号0〜N−1を示し、mは
ブロック内の差分シフト値ΔSFT(m) の番号を示し、
この差分シフト値ΔSFT(m) は、最小シフト値SFT
min を更新した場合に求めるものである。
ートであり、1ブロックのデータの正規化を行う場合の
初期設定として、最小シフト値SFTmin を無限大(+
∞)とし、且つn=0,m=0とする(1) 。このnはブ
ロック内のデータD(n) の番号0〜N−1を示し、mは
ブロック内の差分シフト値ΔSFT(m) の番号を示し、
この差分シフト値ΔSFT(m) は、最小シフト値SFT
min を更新した場合に求めるものである。
【0030】そして、データD(n) のセットアップ(固
定小数点データ処理)を行い(2) 、そのデータD(n) の
指数情報を指数抽出部21により抽出し、その指数情報
をシフト値SFTとする(3) 。次に、抽出したシフト値
SFTと、最小シフト値レジスタ23にセットされてい
る最小シフト値SFTmin とを比較部22に於いて比較
し、今回のシフト値SFTが前回までの最小シフト値S
FTmin より小さいか否かを判定する(4) 。
定小数点データ処理)を行い(2) 、そのデータD(n) の
指数情報を指数抽出部21により抽出し、その指数情報
をシフト値SFTとする(3) 。次に、抽出したシフト値
SFTと、最小シフト値レジスタ23にセットされてい
る最小シフト値SFTmin とを比較部22に於いて比較
し、今回のシフト値SFTが前回までの最小シフト値S
FTmin より小さいか否かを判定する(4) 。
【0031】ブロックの最初のn=0のデータD(0) の
場合は、最小シフト値レジスタ23に無限大が初期設定
されているから、今回のデータD(0) のシフト値SFT
(=8)の方が小さい値となる(SFT<SFTmin ;
8<+∞)。そこで、最小シフト値SFTmin を、SF
Tmin =SFTとして最小シフト値レジスタ23を更新
する(5) 。そして、1→SRegとして示すように、更
新情報の“1”を更新情報レジスタ24にセットする
(6) 。又mが0か否かを判定し(7) 、m=0の場合は、
データD(0) のシフト値SFT=8を差分シフト値ΔS
FT(0) として格納する(14)。又m≠0の場合は、今回
の最小シフト値SFTmin と前回までの最小シフト値S
FTmin old との差を差分シフト値ΔSFT(m) とし
て、差分シフト値レジスタ25に格納する(8) 。
場合は、最小シフト値レジスタ23に無限大が初期設定
されているから、今回のデータD(0) のシフト値SFT
(=8)の方が小さい値となる(SFT<SFTmin ;
8<+∞)。そこで、最小シフト値SFTmin を、SF
Tmin =SFTとして最小シフト値レジスタ23を更新
する(5) 。そして、1→SRegとして示すように、更
新情報の“1”を更新情報レジスタ24にセットする
(6) 。又mが0か否かを判定し(7) 、m=0の場合は、
データD(0) のシフト値SFT=8を差分シフト値ΔS
FT(0) として格納する(14)。又m≠0の場合は、今回
の最小シフト値SFTmin と前回までの最小シフト値S
FTmin old との差を差分シフト値ΔSFT(m) とし
て、差分シフト値レジスタ25に格納する(8) 。
【0032】次に、m=m+1として(9) 、差分シフト
値ΔSFT(m) の番号mを歩進し、ステップ(10)に移行
する。又ステップ(4) に於いて、今回のシフト値SFT
が前回までの最小シフト値SFTmin より大きい場合
は、最小シフト値SFTmin を更新しないので、0→S
Regとして示すように、更新情報の“0”を更新情報
レジスタ24にセットして(13)、ステップ(10)に移行す
る。
値ΔSFT(m) の番号mを歩進し、ステップ(10)に移行
する。又ステップ(4) に於いて、今回のシフト値SFT
が前回までの最小シフト値SFTmin より大きい場合
は、最小シフト値SFTmin を更新しないので、0→S
Regとして示すように、更新情報の“0”を更新情報
レジスタ24にセットして(13)、ステップ(10)に移行す
る。
【0033】このステップ(10)に於いては、正規化の為
にデータD(n) を最小シフト値SFTmin に従ってシフ
トする。そして、正規化されたデータD(n) をメモリ等
に格納する。そして、n=N−1か否かを判定し(12)、
1ブロックのN個のデータについての正規化処理が終了
していない場合、即ち、n≠N−1の場合は、n=n+
1としてステップ(2) に移行し、n=N−1の場合は1
ブロックについての正規化処理が終了する。
にデータD(n) を最小シフト値SFTmin に従ってシフ
トする。そして、正規化されたデータD(n) をメモリ等
に格納する。そして、n=N−1か否かを判定し(12)、
1ブロックのN個のデータについての正規化処理が終了
していない場合、即ち、n≠N−1の場合は、n=n+
1としてステップ(2) に移行し、n=N−1の場合は1
ブロックについての正規化処理が終了する。
【0034】従って、図3の(a)の固定小数点データ
D(0) 〜D(N-1) のn=0のデータD(0) については、
指数情報8、更新情報“1”、最小シフト値SFTmin
=8、差分シフト値ΔSFT=8となる。次のn=1の
データD(1) は、指数情報が6であるから、最小シフト
値SFTmin は6に更新され、更新情報は“1”とな
り、差分シフト値ΔSFTは、前回までの最小シフト値
と今回の最小シフト値との差の(8−6)=2となる。
次のn=2のデータD (2)は、指数情報が12であるか
ら、最小シフト値SFTmin は更新されないことにな
り、従って、更新情報は“0”となり、差分シフト値Δ
SFTは0となる。
D(0) 〜D(N-1) のn=0のデータD(0) については、
指数情報8、更新情報“1”、最小シフト値SFTmin
=8、差分シフト値ΔSFT=8となる。次のn=1の
データD(1) は、指数情報が6であるから、最小シフト
値SFTmin は6に更新され、更新情報は“1”とな
り、差分シフト値ΔSFTは、前回までの最小シフト値
と今回の最小シフト値との差の(8−6)=2となる。
次のn=2のデータD (2)は、指数情報が12であるか
ら、最小シフト値SFTmin は更新されないことにな
り、従って、更新情報は“0”となり、差分シフト値Δ
SFTは0となる。
【0035】次のn=3のデータD(3) の指数情報は3
であり、前回までの最小シフト値SFTmin =6より小
さいので、最小シフト値SFTmin は更新される。従っ
て、更新情報は“1”となり、差分シフト値ΔSFT
は、(6−3)=3となる。次のn=4のデータD(4)
の指数情報は9であるから、前回までの最小シフト値S
FTmin =3より大きいので、最小シフト値SFTmin
は更新されない。従って、更新情報は“0”となり、差
分シフト値ΔSFTは0となる。同様に、データD(N-
1) までの指数情報が最小シフト値SFTmin より大き
い場合は、最小シフト値SFTmin は更新されないの
で、最小シフト値レジスタ23には最小シフト値SFT
min =3がセットされていることになる。
であり、前回までの最小シフト値SFTmin =6より小
さいので、最小シフト値SFTmin は更新される。従っ
て、更新情報は“1”となり、差分シフト値ΔSFT
は、(6−3)=3となる。次のn=4のデータD(4)
の指数情報は9であるから、前回までの最小シフト値S
FTmin =3より大きいので、最小シフト値SFTmin
は更新されない。従って、更新情報は“0”となり、差
分シフト値ΔSFTは0となる。同様に、データD(N-
1) までの指数情報が最小シフト値SFTmin より大き
い場合は、最小シフト値SFTmin は更新されないの
で、最小シフト値レジスタ23には最小シフト値SFT
min =3がセットされていることになる。
【0036】シフトレジスタ20は、最小シフト値レジ
スタ23の最小シフト値SFTminに従ってシフト制御
され、固定小数点データの正規化が行われ、図3の
(a)の固定小数点データD(0) 〜D(N-1) は、(b)
に示す正規化固定小数点データMD(0) 〜MD(N-1) と
なり、最大値のデータD(3) の精度によってそれ以降の
データD(4) 〜D(N-1) の正規化が行われる。そして、
更新情報により最小シフト値SFTmin の更新の有無が
示され、又差分シフト値ΔSFTにより(b)に示す正
規化固定小数点データMD(0) 〜MD(N-1) のシフト値
が示される。
スタ23の最小シフト値SFTminに従ってシフト制御
され、固定小数点データの正規化が行われ、図3の
(a)の固定小数点データD(0) 〜D(N-1) は、(b)
に示す正規化固定小数点データMD(0) 〜MD(N-1) と
なり、最大値のデータD(3) の精度によってそれ以降の
データD(4) 〜D(N-1) の正規化が行われる。そして、
更新情報により最小シフト値SFTmin の更新の有無が
示され、又差分シフト値ΔSFTにより(b)に示す正
規化固定小数点データMD(0) 〜MD(N-1) のシフト値
が示される。
【0037】正規化固定小数点データMD(0) 〜MD(N
-1) は、シフトレジスタ20による正規化によって、何
れかのバス11,12を介して何れかのメモリ27,2
8に転送される。この場合、バス11,12が16ビッ
ト幅の場合に、正規化固定小数点データMD(0) 〜MD
(N-1) も16ビットに正規化される。又更新情報は1ビ
ット構成であるから、この更新情報を図示を省略したカ
ウンタ等によりカウントし、カウント内容が16となっ
た時に、16個の正規化固定小数点データに対応した1
6個の更新情報が更新情報レジスタ24に格納されたこ
とになる。従って、このカウント内容となった時に、1
6個の更新情報を1ワードとしてメモリに転送すること
ができる。又1ブロックのデータの正規化処理の終了時
の最小シフト値SFTmin と、更新情報が更新有りを示
す“1”の時の差分シフト値ΔSFTとを、メモリに転
送して格納する。
-1) は、シフトレジスタ20による正規化によって、何
れかのバス11,12を介して何れかのメモリ27,2
8に転送される。この場合、バス11,12が16ビッ
ト幅の場合に、正規化固定小数点データMD(0) 〜MD
(N-1) も16ビットに正規化される。又更新情報は1ビ
ット構成であるから、この更新情報を図示を省略したカ
ウンタ等によりカウントし、カウント内容が16となっ
た時に、16個の正規化固定小数点データに対応した1
6個の更新情報が更新情報レジスタ24に格納されたこ
とになる。従って、このカウント内容となった時に、1
6個の更新情報を1ワードとしてメモリに転送すること
ができる。又1ブロックのデータの正規化処理の終了時
の最小シフト値SFTmin と、更新情報が更新有りを示
す“1”の時の差分シフト値ΔSFTとを、メモリに転
送して格納する。
【0038】従って、倍長精度のメモリ等を設けること
なく、ブロック正規化が可能となり、又更新情報は
“1”又は“0”の1ビット構成で済み、又差分シフト
値ΔSFTは、更新有りの場合のみ格納すれば良いか
ら、メモリ27,28への転送処理も簡単となる。
なく、ブロック正規化が可能となり、又更新情報は
“1”又は“0”の1ビット構成で済み、又差分シフト
値ΔSFTは、更新有りの場合のみ格納すれば良いか
ら、メモリ27,28への転送処理も簡単となる。
【0039】図5は本発明の第2の実施例のフローチャ
ートであり、正規化固定小数点データの桁合わせを行う
場合を示す。先ず、n=0,m=0とする(a) 。そして
最小シフト値SFTmin をロードし(b) 、又差分シフト
値ΔSFT(m) をロードする(c) 。そして、ΔSFT
(m) −SFTmin をシフト値SFTとする(d) 。
ートであり、正規化固定小数点データの桁合わせを行う
場合を示す。先ず、n=0,m=0とする(a) 。そして
最小シフト値SFTmin をロードし(b) 、又差分シフト
値ΔSFT(m) をロードする(c) 。そして、ΔSFT
(m) −SFTmin をシフト値SFTとする(d) 。
【0040】次に、データD(n) を読込み(e) 、SRe
g(n) :0か否かで示すように、更新情報が“0”か否
かを判定する(f) 。更新情報が更新有りを示す“1”の
場合は、m=m+1とし(g) 、差分シフト値ΔSFT
(m) をロードし(h) 、ステップ(d) に於いて求めたシフ
ト値SFTと、そのデータの差分シフト値ΔSFT(m)
との差を、今回の桁合わせのシフト値SFTとする(S
FT=SFT−ΔSFT(m) )(i) 、このシフト値SF
Tにより正規化固定小数点データをシフトしてメモリ
(Mem)へ転送する。又更新情報が更新無しを示す
“0”の場合は、ステップ(d) に於いて求めたシフト値
SFTにより正規化固定小数点データをシフトしてメモ
リ(Mem)へ転送する。
g(n) :0か否かで示すように、更新情報が“0”か否
かを判定する(f) 。更新情報が更新有りを示す“1”の
場合は、m=m+1とし(g) 、差分シフト値ΔSFT
(m) をロードし(h) 、ステップ(d) に於いて求めたシフ
ト値SFTと、そのデータの差分シフト値ΔSFT(m)
との差を、今回の桁合わせのシフト値SFTとする(S
FT=SFT−ΔSFT(m) )(i) 、このシフト値SF
Tにより正規化固定小数点データをシフトしてメモリ
(Mem)へ転送する。又更新情報が更新無しを示す
“0”の場合は、ステップ(d) に於いて求めたシフト値
SFTにより正規化固定小数点データをシフトしてメモ
リ(Mem)へ転送する。
【0041】次に、n=N−1か否かを判定し(k) 、n
≠N−1の場合は、n=n+1とし(o) 、ステップ(e)
へ移行する。又n=N−1の場合は、1ブロック内の桁
合わせが終了したことになり、信号処理を行い(l) 、最
小シフト値SFTmin をシフト値SFTとして処理結果
のデータをシフトし(m) 、その結果をメモリに格納する
(n) 。なお、ステップ(e) の次にn=0か否かを判定
し、n=0の場合のみステップ(j) に移行し、ステップ
(d) に於いて求めたシフト値SFTによりシフト処理を
行う。
≠N−1の場合は、n=n+1とし(o) 、ステップ(e)
へ移行する。又n=N−1の場合は、1ブロック内の桁
合わせが終了したことになり、信号処理を行い(l) 、最
小シフト値SFTmin をシフト値SFTとして処理結果
のデータをシフトし(m) 、その結果をメモリに格納する
(n) 。なお、ステップ(e) の次にn=0か否かを判定
し、n=0の場合のみステップ(j) に移行し、ステップ
(d) に於いて求めたシフト値SFTによりシフト処理を
行う。
【0042】例えば、図3の(b)の正規化固定小数点
データMD(0) 〜MD(N-1) を読出して桁合わせを行う
場合、ステップ(a) 〜(d) に従って最小シフト値SFT
min(=3)をロードし、差分シフト値ΔSFT(0)
(=8)をロードして、その差の5をシフト値SFTと
する。次に、ステップ(e) 以降に従って、ブロックの最
初のデータMD(0) を読込み、前述のように、n=0で
あるから、ステップ(j)に移行し、シフト値SFT=5
に従ってデータMD(0) を右に5ビットシフトして、図
3の(c)のデータRD(0) とする。
データMD(0) 〜MD(N-1) を読出して桁合わせを行う
場合、ステップ(a) 〜(d) に従って最小シフト値SFT
min(=3)をロードし、差分シフト値ΔSFT(0)
(=8)をロードして、その差の5をシフト値SFTと
する。次に、ステップ(e) 以降に従って、ブロックの最
初のデータMD(0) を読込み、前述のように、n=0で
あるから、ステップ(j)に移行し、シフト値SFT=5
に従ってデータMD(0) を右に5ビットシフトして、図
3の(c)のデータRD(0) とする。
【0043】次のデータMD(1) を読込み、更新情報は
“1”で更新有りを示すから、m=m+1(ステップ
(f) )により差分シフト値ΔSFT(m) の番号を歩進
し、差分シフト値ΔSFT(1) =2を読込み、前回のシ
フト値SFTは5であるから、ステップ(i) に従ってシ
フト値SFT=SFT−ΔSFT(1) =5−2=3が得
られ、データMD(1) を右に3ビットシフトして、図3
の(c)のデータRD(1)とする。
“1”で更新有りを示すから、m=m+1(ステップ
(f) )により差分シフト値ΔSFT(m) の番号を歩進
し、差分シフト値ΔSFT(1) =2を読込み、前回のシ
フト値SFTは5であるから、ステップ(i) に従ってシ
フト値SFT=SFT−ΔSFT(1) =5−2=3が得
られ、データMD(1) を右に3ビットシフトして、図3
の(c)のデータRD(1)とする。
【0044】次のデータMD(2) を読込み、更新情報は
“0”で更新無しを示すから、前回のシフト値SFT=
3に従ってデータMD(2) を右に3 ビットシフトして、
図 3の(c)のRD(2) とする。そして、次のデータM
D(3) を読込み、更新情報は“1”で更新有りを示すか
ら、m=m+1として、差分シフト値ΔSFT(2) =3
を読込み、SFT=SFT−ΔSFT(2) =3−3=0
が得られるから、シフト値SFTは0であり、データM
D(3) はシフトしない。従って、ブロック内で最大値の
データMD(3) は、図3の(c)のデータRD(3) とな
る。このデータMD(3) 以降のデータMD(4) 〜MD(N
-1) のシフト値SFTは0となり、図3の(c)のデー
タRD(4) 〜RD(N-1) となる。即ち、ブロック内の桁
合わせが行われる。なお、前述の最小シフト値SFTmi
n を各データのシフト値に加算してシフトすることによ
り、固定小数点データに戻すことができる。
“0”で更新無しを示すから、前回のシフト値SFT=
3に従ってデータMD(2) を右に3 ビットシフトして、
図 3の(c)のRD(2) とする。そして、次のデータM
D(3) を読込み、更新情報は“1”で更新有りを示すか
ら、m=m+1として、差分シフト値ΔSFT(2) =3
を読込み、SFT=SFT−ΔSFT(2) =3−3=0
が得られるから、シフト値SFTは0であり、データM
D(3) はシフトしない。従って、ブロック内で最大値の
データMD(3) は、図3の(c)のデータRD(3) とな
る。このデータMD(3) 以降のデータMD(4) 〜MD(N
-1) のシフト値SFTは0となり、図3の(c)のデー
タRD(4) 〜RD(N-1) となる。即ち、ブロック内の桁
合わせが行われる。なお、前述の最小シフト値SFTmi
n を各データのシフト値に加算してシフトすることによ
り、固定小数点データに戻すことができる。
【0045】
【発明の効果】以上説明したように、本発明は、固定小
数点データの指数情報を指数抽出部2により抽出し、今
回の指数情報によるシフト値SFTと前回までの最小シ
フト値SFTmin とを比較し、小さい方を新たな最小シ
フト値SFTmin として、最小シフト値レジスタ4を更
新し、この更新情報を更新情報レジスタ5に格納し、更
新有りの時の差分シフト値ΔSFTを差分シフト値レジ
スタ6に格納し、最小シフト値SFTmin に従って固定
小数点データをシフトレジスタ7によりシフトして正規
化するもので、固定小数点データ処理部1のアキュムレ
ータ等からの倍長精度の固定小数点データを、バス幅等
に制約されるビット構成に正規化することができる。
数点データの指数情報を指数抽出部2により抽出し、今
回の指数情報によるシフト値SFTと前回までの最小シ
フト値SFTmin とを比較し、小さい方を新たな最小シ
フト値SFTmin として、最小シフト値レジスタ4を更
新し、この更新情報を更新情報レジスタ5に格納し、更
新有りの時の差分シフト値ΔSFTを差分シフト値レジ
スタ6に格納し、最小シフト値SFTmin に従って固定
小数点データをシフトレジスタ7によりシフトして正規
化するもので、固定小数点データ処理部1のアキュムレ
ータ等からの倍長精度の固定小数点データを、バス幅等
に制約されるビット構成に正規化することができる。
【0046】即ち、最適シフト値(最小シフト値SFT
min )の探索過程に於いて、その時点で最適な最小シフ
ト値SFTmin でデータをシフトして格納することによ
り、最適シフト値の探索とデータをシフトして格納する
処理とを同時的に行うことが可能となり、演算量を削減
することができる。又最適シフト値の更新情報を1ビッ
トで表現することができ、その1ビットの更新情報と同
期した差分シフト値ΔSFTを格納することにより、メ
モリに格納する為の補助情報量を圧縮することができ
る。又最小シフト値レジスタ4,更新情報レジスタ4,
差分シフト値レジスタ5等は僅かな容量で済むものであ
り、又倍長精度のバッファメモリ等を設ける必要がな
く、且つ従来例に比較して演算量の削減が可能であるか
ら、チップサイズを縮小できると共に、低消費電力化を
図ることができる利点がある。なお、ブロック内の最大
値データより前のデータについては、仮の正規化が行わ
れることになるが、桁合わせ等は、更新情報と差分シフ
ト値ΔSFTとを用いることにより、容易に処理するこ
とができる。
min )の探索過程に於いて、その時点で最適な最小シフ
ト値SFTmin でデータをシフトして格納することによ
り、最適シフト値の探索とデータをシフトして格納する
処理とを同時的に行うことが可能となり、演算量を削減
することができる。又最適シフト値の更新情報を1ビッ
トで表現することができ、その1ビットの更新情報と同
期した差分シフト値ΔSFTを格納することにより、メ
モリに格納する為の補助情報量を圧縮することができ
る。又最小シフト値レジスタ4,更新情報レジスタ4,
差分シフト値レジスタ5等は僅かな容量で済むものであ
り、又倍長精度のバッファメモリ等を設ける必要がな
く、且つ従来例に比較して演算量の削減が可能であるか
ら、チップサイズを縮小できると共に、低消費電力化を
図ることができる利点がある。なお、ブロック内の最大
値データより前のデータについては、仮の正規化が行わ
れることになるが、桁合わせ等は、更新情報と差分シフ
ト値ΔSFTとを用いることにより、容易に処理するこ
とができる。
【0047】又更新情報は、最小シフト値SFTmin の
更新の有無を1ビットで示すことができ、この1ビット
の更新情報をカウントして、正規化固定小数点データの
語長に相当する数となった時に、最小シフト値レジスタ
4から1語としてメモリに転送することができる。従っ
て、更新情報の転送処理及びメモリへの格納処理が容易
となる。
更新の有無を1ビットで示すことができ、この1ビット
の更新情報をカウントして、正規化固定小数点データの
語長に相当する数となった時に、最小シフト値レジスタ
4から1語としてメモリに転送することができる。従っ
て、更新情報の転送処理及びメモリへの格納処理が容易
となる。
【0048】又最小シフト値SFTmin と差分シフト値
ΔSFTと更新情報とを用いることにより、容易にシフ
ト値SFTを求めることができるから、正規化固定小数
点データの桁合わせも容易であり、又元の固定小数点デ
ータに戻すことも容易である利点がある。その場合の差
分シフト値ΔSFTは、更新情報が更新有りを示す場合
にのみメモリに格納するものであるから、最小シフト値
SFTmin と差分シフト値ΔSFTと更新情報とからな
る補助情報量を格納する為の記憶容量は僅かな容量で済
む利点がある。
ΔSFTと更新情報とを用いることにより、容易にシフ
ト値SFTを求めることができるから、正規化固定小数
点データの桁合わせも容易であり、又元の固定小数点デ
ータに戻すことも容易である利点がある。その場合の差
分シフト値ΔSFTは、更新情報が更新有りを示す場合
にのみメモリに格納するものであるから、最小シフト値
SFTmin と差分シフト値ΔSFTと更新情報とからな
る補助情報量を格納する為の記憶容量は僅かな容量で済
む利点がある。
【図1】本発明の原理説明図である。
【図2】本発明の実施例の要部説明図である。
【図3】本発明の実施例のブロック正規化処理の説明図
である。
である。
【図4】本発明の第1の実施例のフローチャートであ
る。
る。
【図5】本発明の第2の実施例のフローチャートであ
る。
る。
【図6】従来例のブロック正規化制御方式の説明図であ
る。
る。
【図7】従来例のフローチャートである。
【図8】従来例のフローチャートである。
1 固定小数点データ処理部 2 指数抽出部 3 比較部 4 最小シフト値レジスタ 5 更新情報レジスタ 6 差分シフト値レジスタ 7 シフトレジスタ 8 メモリ 9 バス
Claims (3)
- 【請求項1】 1ブロック毎に固定小数点データを正規
化するブロック正規化制御方式に於いて、 固定小数点データ処理部(1)からの固定小数点データ
の指数情報を抽出する指数抽出部(2)と、比較部
(3)と、最小シフト値レジスタ(4)と、更新情報レ
ジスタ(5)と、差分シフト値レジスタ(6)と、シフ
トレジスタ(7)とを備え、 前記固定小数点データ処理部(1)からの固定小数点デ
ータの指数情報を前記指数抽出部(2)により抽出し、
前記比較部(3)により今回の指数情報と前回までの前
記最小シフト値レジスタ(4)の最小シフト値とを比較
し、小さい方の値で該最小シフト値レジスタ(4)の最
小シフト値を更新し、且つ更新したか否かを示す更新情
報を前記更新情報レジスタ(5)に格納すると共に、更
新有りの時の前記比較結果による正の差分値を前記差分
シフト値レジスタ(6)に格納し、前記シフトレジスタ
(7)により前記固定小数点データを前記最小シフト値
レジスタ(4)の最小シフト値に従ってシフトして格納
することを特徴とするブロック正規化制御方式。 - 【請求項2】 前記更新情報レジスタ(5)に格納する
1ビットの更新情報を順次カウントし、カウント値が正
規化固定小数点データの語長分となった時に、該語長分
の前記更新情報をメモリ又はスタックレジスタへ転送す
ることを特徴とする請求項1記載のブロック正規化制御
方式。 - 【請求項3】 正規化固定小数点データの桁合わせに於
いて、前記更新情報レジスタ(5)に格納された正規化
固定小数点データ対応の更新情報が更新有りを示す時
に、前記最小シフト値レジスタ(4)の最小シフト値を
基に、前記差分シフト値レジスタ(6)に格納された差
分値を用いて桁合わせシフト値を求めて、前記正規化固
定小数点データを前記シフトレジスタ(7)によりシフ
トし、前記更新情報レジスタ(5)の更新情報が更新無
しを示す時に、前回のシフト値に従って前記正規化固定
小数点データを前記シフトレジスタ(7)によりシフト
することを特徴とする請求項1記載のブロック正規化制
御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5205974A JPH0756710A (ja) | 1993-08-20 | 1993-08-20 | ブロック正規化制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5205974A JPH0756710A (ja) | 1993-08-20 | 1993-08-20 | ブロック正規化制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0756710A true JPH0756710A (ja) | 1995-03-03 |
Family
ID=16515804
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5205974A Withdrawn JPH0756710A (ja) | 1993-08-20 | 1993-08-20 | ブロック正規化制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0756710A (ja) |
-
1993
- 1993-08-20 JP JP5205974A patent/JPH0756710A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7188133B2 (en) | Floating point number storage method and floating point arithmetic device | |
| US5423010A (en) | Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words | |
| US4700324A (en) | Digital circuit performing an arithmetic operation with an overflow | |
| US5892697A (en) | Method and apparatus for handling overflow and underflow in processing floating-point numbers | |
| US5185713A (en) | Product adder for perfoming multiplication of floating point data and addition of fixed point data | |
| JP2001518666A (ja) | 複数の対数の数の和分方法および装置 | |
| CN108139912B (zh) | 在浮点运算期间计算和保留误差边界的装置和方法 | |
| US4617641A (en) | Operation unit for floating point data having a variable length exponent part | |
| JP2831729B2 (ja) | プライオリティエンコーダおよび浮動小数点正規化装置 | |
| JPH0343645B2 (ja) | ||
| JPH0756710A (ja) | ブロック正規化制御方式 | |
| JP2558669B2 (ja) | 浮動小数点演算装置 | |
| JPH0566921A (ja) | データシフト回路 | |
| JPS6027024A (ja) | 演算装置 | |
| JPH09128213A (ja) | ブロックフローティング処理システムおよび方法 | |
| JP3595449B2 (ja) | 累積加算回路 | |
| JP4163967B2 (ja) | 浮動小数点演算装置 | |
| JP4428778B2 (ja) | 演算装置及び演算方法並びに計算装置 | |
| JP2801472B2 (ja) | 浮動小数点演算装置 | |
| JPH03131924A (ja) | 情報処理装置 | |
| JPH04195421A (ja) | 浮動小数点データの圧縮方法 | |
| JP2828791B2 (ja) | 積和演算に用いる部分和を量子化する方法 | |
| JPH0413734B2 (ja) | ||
| JPH0659862A (ja) | 乗算器 | |
| JPH06318147A (ja) | データパック方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20001031 |