(57)【特許請求の範囲】
【請求項１】
１又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、
前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項２】
請求項１において、
前記演算は、所定ビット数のデータに対して行うようになっており、
前記グループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項３】
請求項２において、
前記グループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも１ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項４】
請求項３において、
前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に１ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっていることを特徴とするデータ演算処理装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタと前記ブロックスケールファクタとの差分に基づいてスケーリングを行うようになっていることを特徴とするデータ演算処理装置。
【請求項６】
複数の計算ユニットを備え、１又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、
前記各計算ユニットは、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第１スケーリング手段と、前記第１スケーリング手段からのデータに対して演算を行う演算手段と、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段と、与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第２スケーリング手段とを有し、
さらに、データを記憶するための記憶手段と、前記各計算ユニットのスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段と、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段と、データ処理のための制御を行う制御手段とを備え、
前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各計算ユニットの第２スケーリング手段に与え、前記各計算ユニットの第２スケーリング手段からの演算データを前記記憶手段に格納し、
前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第１スケーリング手段に与え、
前記第１スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項７】
請求項６において、
前記演算手段は、所定ビット数のデータに対して演算を行い、
前記第１スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項８】
請求項７において、
前記第１スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも１ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
【請求項９】
請求項８において、
前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に１ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっていることを特徴とするデータ演算処理装置。
【請求項１０】
請求項６乃至９のいずれかにおいて、
前記グループスケールファクタ及び前記ブロックスケールファクタを記憶するための第２記憶手段を備え、
前記制御手段は、前記グループスケールファクタ及び前記ブロックスケールファクタを演算データと対応付けて前記第２記憶手段に記憶し、
前記記憶手段の演算データに対して再度演算を行うときは、対応するグループスケールファクタ及びブロックスケールファクタを前記第２記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分け、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第１スケーリング手段に与えるようになっていることを特徴とするデータ演算処理装置。
【請求項１１】
請求項６乃至１０のいずれかにおいて、
前記スケールファクタ算出手段は、前記演算手段からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっていることを特徴とするデータ演算処理装置。
【請求項１２】
請求項１１において、
前記演算手段は、固定小数点演算器であり、
前記第１スケーリング手段は、与えられたスケールファクタに相当するシフト量で、データに対してビットシフトを行い、
前記第２スケーリング手段は、与えられた他のスケールファクタに相当するシフト量で、前記演算手段からの演算データに対してビットシフトを行うようになっていることを特徴とするデータ演算処理装置。
【請求項１３】
請求項６乃至１２のいずれかにおいて、
前記演算手段は、前記第１スケーリング手段からのデータと所定の係数との積和を演算する積和演算器であることを特徴とするデータ演算処理装置。
【請求項１４】
１又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理するコンピュータ実行可能なプログラムであって、
前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、
前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理プログラム。
【請求項１５】
データを記憶するための記憶手段を有するコンピュータに対して、１又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理させるプログラムであって、
与えられたスケールファクタに基づいてデータに対してスケーリングを行う第１スケーリング手段、前記第１スケーリング手段からのデータに対して演算を行う演算手段、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段、及び与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第２スケーリング手段として実現される処理を前記各データグループごとに実行させるためのプログラムと、
前記各データグループに対応するスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段、及びデータ処理のための制御を行う制御手段として実現される処理を実行させるためのプログラムとを備え、
前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各データグループに対応する第１スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各データグループに対応する第２スケーリング手段に与え、前記各データグループに対応する第２スケーリング手段からの演算データを前記記憶手段に格納し、
前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各データグループに対応する第１スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各データグループに対応する第１スケーリング手段に与え、
前記第１スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、データブロック単位でデータを処理する装置に係り、特に、ブロックフローティング方式で固定小数点演算を行うブロックフローティング型のデジタル・シグナル・プロセッサ（以下、単にＤＳＰという。）に関する。
【０００２】
【従来の技術】
デジタル信号処理における数値表現方法として、固定小数点表現方法および浮動小数点表現方法がある。浮動小数点表現方法では、各データが指数部と仮数部をもち、これにより、高い精度と広いダイナミックレンジが確保可能という利点がある反面、複雑で大規模なハードウェアが必要となるという問題がある。一方、固定小数点表現方法では、ハードウェアが簡単で回路規模も小さくてすむが、演算精度の低下が問題となる。そこで、これらの問題への対策法として提案されたのがブロックフローティングという方式である。この方式では、所定数（例えば、ｍ個）のデータを一つのデータブロックとし、データブロックに対し１個のブロックスケールファクタをもたせ、データブロックのｍ個のデータに対し共通のスケーリング（以下、ブロック正規化という。）を行うことにより、限られたダイナミックレンジを有効に用いて精度の劣化を抑える。
【０００３】
ブロックフローティングを効率良く実現するために、例えば、特許協力条約に基づいて公開された国際出願（国際公開番号ＷＯ９９／６６４２３）には、図８に示すようなデータ演算処理装置が提案されている。図８は、従来のデータ演算処理装置の構成を示すブロック図である。
このデータ演算処理装置は、図８に示すように、データブロック単位でデータを記憶するためのデータメモリ１００と、データメモリ１００のデータに対して積和演算を行う演算部２００と、ブロックフローティングに必要な正規化を行うための制御部３００と、これらの制御を行う制御ロジック４００と、アドレス生成器５００とで構成されている。データメモリ１００、演算部２００、制御部３００および制御ロジック４００は、データバス１１０で相互にかつデータ授受可能に接続されており、データメモリ１００、制御部３００およびアドレス生成器５００は、データアドレスバス１２０で相互にかつデータ授受可能に接続されている。
【０００４】
データメモリ１００は、図示しない外部からデータを入力し、図９に示すように、演算部２００の演算対象となるデータとして、入力したデータをデータブロック単位で格納するようになっている。図９は、データメモリ１００における演算単位となるデータのデータ構造を示す図である。
データメモリ１００では、図９に示すように、データが計算ユニットの数に相当する個数（この場合、ｋ個）組合わさってデータグループとして格納され、さらに、データグループが複数組合わさってデータブロックとして格納される。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、計算ユニットの数に相当する個数のデータを含んで構成されている。
【０００５】
演算部２００は、同一機能を有するｋ個の計算ユニットＰ０〜Ｐｋ−１で構成されている。各計算ユニットＰ０〜Ｐｋ−１には、一つのデータグループのデータがそれぞれ振り分けられ、各計算ユニットＰ０〜Ｐｋ−１は、データグループ単位でデータを並列処理する。
各計算ユニットＰ０〜Ｐｋ−１は、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第２シフタ１０と、第２シフタ１０からのデータに対して積和演算を行う積和演算器１２と、積和演算器１２からの演算データのスケールファクタを算出するユニットスケールファクタ検出器１４と、与えられたスケールファクタに基づいて積和演算器１２からの演算データに対してスケーリングを行う第１シフタ１６とで構成されている。
【０００６】
ユニットスケールファクタ検出器１４は、積和演算器１２からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。ここで、スケールファクタは、データをビットシフトするときのシフト量であり、シフトするビット数を示す。以下、グループスケールファクタおよびブロックスケールファクタについても同様である。
【０００７】
第２シフタ１０は、与えられたスケールファクタに相当するシフト量で、与えられたデータに対して下位ビットの方向へビットシフト（以下、単に右シフトという。）を行うようになっている。
第１シフタ１６は、与えられたスケールファクタに相当するシフト量で、積和演算器１２からの演算データに対して上位ビットの方向へビットシフト（以下、単に左シフトという。）を行うようになっている。また、第１シフタ１６からの演算データは、さらに次のブロック処理に備えるため、データメモリ１００に格納されるが、データメモリ１００のデータのビット数は、第１シフタ１６からの演算データのそれよりも少ないため、第１シフタ１６は、左シフトした演算データのうち最上位ビットを基準としてデータメモリ１００のデータのビット数分を取り、それよりも下位のビットを切り捨て、データメモリ１００のデータのビット数の演算データとして丸め処理を行うようになっている。
【０００８】
制御部３００は、ユニットスケールファクタ検出器１４で算出したスケールファクタからグループスケールファクタを検出するグループスケールファクタ検出器５０と、グループスケールファクタを格納するグループスケールファクタレジスタファイル５２と、グループスケールファクタからブロックスケールファクタを検出するブロックスケールファクタ検出器５４と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ５６と、グループスケールファクタとブロックスケールファクタの差分を計算する桁合わせ用加算器６０とで構成されている。
【０００９】
グループスケールファクタ検出器５０は、各計算ユニットＰ０〜Ｐｋ−１のユニットスケールファクタ検出器１４で算出したスケールファクタうち最小のものをグループスケールファクタとして検出し、制御ロジック４００の制御により、検出したグループスケールファクタをグループスケールファクタレジスタファイル５２および各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に出力するようになっている。例えば、各計算ユニットＰ０〜Ｐｋ−１（例えば、ｋ＝３）のユニットスケールファクタ検出器１４からスケールファクタとして「１」、「２」、「３」を入力した場合、そのうちの最小値である「１」をそのグループスケールファクタとして検出する。
【００１０】
グループスケールファクタレジスタファイル５２は、グループスケールファクタ検出器５０で検出したグループスケールファクタをそれぞれ一時的に格納し、制御ロジック４００の制御により、データメモリ１００または桁合わせ用加算器６０にグループスケールファクタを出力するようになっている。
ブロックスケールファクタ検出器５４は、グループスケールファクタ検出器５０で検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出するようになっている。例えば、あるデータブロックのグループスケールファクタが「３」、「４」、「５」として検出された場合、そのうちの最小値である「３」をそのブロックスケールファクタとして検出する。
【００１１】
ブロックスケールファクタレジスタ５６は、ブロックスケールファクタ検出器５４で検出したブロックスケールファクタを一時的に格納し、制御ロジック４００の制御により、データメモリ１００または桁合わせ用加算器６０にグループスケールファクタを出力するようになっている。
桁合わせ用加算器６０は、グループスケールファクタレジスタファイル５２から出力されたグループスケールファクタと、ブロックスケールファクタレジスタ５６から出力されたブロックスケールファクタとを入力し、グループスケールファクタからブロックスケールファクタを減算してその差分を計算し、制御ロジック４００の制御により、その差分からなるスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１０に出力するようになっている。
【００１２】
制御ロジック４００は、データメモリ１００のデータに対して初めて演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位でデータをデータメモリ１００から読み出し、データブロックの各データグループごとに、データグループのデータをそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１０に振り分ける。
【００１３】
そして、グループスケールファクタ検出器５０で検出したグループスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に与え、各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６からの演算データをデータバス１１０経由でデータメモリ１００に格納する。
また、制御ロジック４００は、データメモリ１００のデータに対して再度演算を行うときは、次の制御処理を実行するようになっている。
【００１４】
まず、データブロック単位で演算データをデータメモリ１００から読み出し、データブロックの各データグループごとに、データグループの演算データをそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１０に与える。これと同時に、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１０に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル５２およびブロックスケールファクタレジスタ５６に格納されているときは、ブロックスケールファクタレジスタ５６からブロックスケールファクタを読み出して桁合わせ用加算器６０に与え、グループスケールファクタレジスタファイル５２からグループスケールファクタを順次読み出して桁合わせ用加算器６０に与え、桁合わせ用加算器６０により各グループスケールファクタとブロックスケールファクタとの差分を計算し、その差分からなるスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１０に与える。
【００１５】
そして、グループスケールファクタ検出器５０で検出したグループスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に与え、各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６からの演算データをデータバス１１０経由でデータメモリ１００に格納する。
【００１６】
【発明が解決しようとする課題】
このように、ブロックフローティング方式においてデータの丸め処理を適用するには、データの丸め処理が演算結果に対して行うものであることから、上記従来のデータ演算処理装置のように、第１シフタ１６でシフトした演算データに対してデータの丸め処理を行う構成が考えられる。
【００１７】
しかしながら、上記従来のデータ演算処理装置にあっては、第１シフタ１６でシフトした演算データに対してデータの丸め処理を行う構成となっているため、それぞれの演算データは、その小数点位置を基準として異なる桁位置でデータの丸め処理が行われることになる。例えば、小数点位置が上位２ビットと３ビットとの間にある１６ビットの演算データが第１シフタ１６で３ビット左シフトされた場合と、２ビットシフトされた場合とでは、データの丸め処理を行う桁位置が小数点位置を基準として１桁ずれることになる。したがって、データの丸め処理による演算精度の向上を十分に図ることができなかった。
【００１８】
一方、第１シフタ１６でシフトする前にデータの丸め処理を行う構成も考えられるが、その場合、データの丸め処理を行う桁位置がグループスケールファクタの値によって変動し一定ではないため、これを実現しようとすると複雑な構成となってしまう。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ブロックフローティング方式において、簡易な構成により、データの丸め処理による演算精度の向上を図ることができるデータ演算処理装置およびデータ演算処理プログラムを提供することを目的としている。
【００１９】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る請求項１記載のデータ演算処理装置は、１または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【００２０】
このような構成であれば、データグループの各データに対して演算が行われ、それら演算データのうち絶対値が最大となるもののスケールファクタがグループスケールファクタとして検出され、検出されたグループスケールファクタに基づいて、各演算データに対してスケーリングが行われる。こうした一連の処理が、データブロックの各データグループごとに行われる。そして、一つのデータブロックについて処理が終了すると、各データグループごとに検出されたグループスケールファクタのうち絶対値が最大となる演算データに対応するものがブロックスケールファクタとして検出される。
【００２１】
次に、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われ、スケーリングされたそれら演算データに対してデータの丸め処理が行われる。このデータの丸め処理では、同一のデータグループに属する演算データについては、そのグループスケールファクタおよびブロックスケールファクタが同一であるため、それらに基づくスケーリングにより、データの丸め処理を行う桁位置が同一となる。
【００２２】
ここで、スケールファクタとしては、例えば、データをビットシフトするときのシフト量を挙げることができる。この場合、スケールファクタに相当するシフト量で、データに対してビットシフトを行うことによりスケーリングを行う。以下、請求項６記載のデータ演算処理装置において同じである。
また、グループスケールファクタを検出する構成としては、例えば、データグループの各データに対して演算を行った後、それら演算データのスケールファクタを算出し、算出したスケールファクタのうち最小のものをグループスケールファクタとして検出するようになっていてもよいし、それら演算データのスケールファクタを算出せず、それら演算データから直接グループスケールファクタを検出するようになっていてもよい。
【００２３】
さらに、本発明に係る請求項２記載のデータ演算処理装置は、請求項１記載のデータ演算処理装置において、前記演算は、所定ビット数のデータに対して行うようになっており、前記グループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【００２４】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われる。そして、スケーリングされたそれら演算データごとに、その演算データから、その最上位ビットを基準として所定ビット数よりも多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【００２５】
さらに、本発明に係る請求項３記載のデータ演算処理装置は、請求項２記載のデータ演算処理装置において、前記グループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも１ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【００２６】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われる。そして、スケーリングされたそれら演算データごとに、その演算データから、その最上位ビットを基準として所定ビット数よりも１ビット多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【００２７】
さらに、本発明に係る請求項４記載のデータ演算処理装置は、請求項３記載のデータ演算処理装置において、前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に１ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっている。
【００２８】
このような構成であれば、データの丸め処理では、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に１ビットが加算され、その加算結果のうちその最上位ビットを基準として所定ビット数のデータが演算対象として出力される。
さらに、本発明に係る請求項５記載のデータ演算処理装置は、請求項１ないし４のいずれかに記載のデータ演算処理装置において、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタと前記ブロックスケールファクタとの差分に基づいてスケーリングを行うようになっている。
【００２９】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分に基づいてスケーリングが行われる。
さらに、本発明に係る請求項６記載のデータ演算処理装置は、複数の計算ユニットを備え、１または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、前記各計算ユニットは、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第１スケーリング手段と、前記第１スケーリング手段からのデータに対して演算を行う演算手段と、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段と、与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第２スケーリング手段とを有し、さらに、データを記憶するための記憶手段と、前記各計算ユニットのスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段と、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段と、データ処理のための制御を行う制御手段とを備え、前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各計算ユニットの第２スケーリング手段に与え、前記各計算ユニットの第２スケーリング手段からの演算データを前記記憶手段に格納し、前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第１スケーリング手段に与え、前記第１スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっている。
【００３０】
このような構成であれば、制御手段により、データブロック単位でデータが記憶手段から読み出され、データブロックの各データグループごとに、データグループのデータがそれぞれ各計算ユニットの第１スケーリング手段に振り分けられる。
各計算ユニットでは、初期状態では第１スケーリング手段にスケールファクタが与えられないので、第１スケーリング手段によるスケーリングが行われず、そのまま演算手段に入力される。そして、演算手段により、第１スケーリング手段からのデータに対して演算が行われ、スケールファクタ算出手段により、演算手段からの演算データのスケールファクタが算出される。
【００３１】
各計算ユニットでスケールファクタが算出されると、グループスケールファクタ検出手段により、各計算ユニットのスケールファクタ算出手段で算出されたスケールファクタのうち絶対値が最大となる演算データに対応するものがグループスケールファクタとして検出され、制御手段により、算出されたグループスケールファクタが各計算ユニットの第２スケーリング手段に与えられる。
【００３２】
これにより、各計算ユニットでは、第２スケーリング手段により、与えられたグループスケールファクタに基づいて、演算手段からの演算データに対してスケーリングが行われる。
このように各計算ユニットで演算データに対してスケーリングが行われると、制御手段により、各計算ユニットの第２スケーリング手段からの演算データが記憶手段に格納されるとともに、ブロックスケールファクタ検出手段により、グループスケールファクタ検出手段で検出されたグループスケールファクタのうち絶対値が最大となる演算データに対応するものがブロックスケールファクタとして検出される。
【００３３】
次に、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第１スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第１スケーリング手段に与えられる。
【００３４】
各計算ユニットでは、第１スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われ、スケーリングされた演算データに対してデータの丸め処理が行われる。このデータの丸め処理では、同一のデータグループに属する演算データについては、そのグループスケールファクタおよびブロックスケールファクタが同一であるため、それらに基づくスケーリングにより、データの丸め処理を行う桁位置が同一となる。
【００３５】
ここで、記憶手段は、データをあらゆる手段でかつあらゆる時期に記憶するものであり、データをあらかじめ記憶してあるものであってもよいし、データをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってデータを記憶するようになっていてもよい。
さらに、本発明に係る請求項７記載のデータ演算処理装置は、請求項６記載のデータ演算処理装置において、前記演算手段は、所定ビット数のデータに対して演算を行い、前記第１スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【００３６】
このような構成であれば、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第１スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第１スケーリング手段に与えられる。
【００３７】
各計算ユニットでは、第１スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。そして、スケーリングされた演算データから、その最上位ビットを基準として所定ビット数よりも多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【００３８】
さらに、本発明に係る請求項８記載のデータ演算処理装置は、請求項７記載のデータ演算処理装置において、前記第１スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも１ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【００３９】
このような構成であれば、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第１スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第１スケーリング手段に与えられる。
【００４０】
各計算ユニットでは、第１スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。そして、スケーリングされた演算データから、その最上位ビットを基準として所定ビット数よりも１ビット多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【００４１】
さらに、本発明に係る請求項９記載のデータ演算処理装置は、請求項８記載のデータ演算処理装置において、前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に１ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっている。
【００４２】
このような構成であれば、データの丸め処理では、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に１ビットが加算され、その加算結果のうちその最上位ビットを基準として所定ビット数のデータが演算対象として出力される。
さらに、本発明に係る請求項１０記載のデータ演算処理装置は、請求項６ないし９のいずれかに記載のデータ演算処理装置において、前記グループスケールファクタおよび前記ブロックスケールファクタを記憶するための第２記憶手段を備え、前記制御手段は、前記グループスケールファクタおよび前記ブロックスケールファクタを演算データと対応付けて前記第２記憶手段に記憶し、前記記憶手段の演算データに対して再度演算を行うときは、対応するグループスケールファクタおよびブロックスケールファクタを前記第２記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第１スケーリング手段に振り分け、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第１スケーリング手段に与えるようになっている。
【００４３】
このような構成であれば、制御手段により、グループスケールファクタ検出手段で検出されたグループスケールファクタおよびブロックスケールファクタ検出手段で検出されたブロックスケールファクタが、各計算ユニットの第２スケーリング手段からの演算データと対応付けられて第２記憶手段に格納される。
そして、記憶手段の演算データに対して再度演算を行うときは、制御手段により、対応するグループスケールファクタおよびブロックスケールファクタが第２記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第１スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第１スケーリング手段に与えられる。
【００４４】
これにより、各計算ユニットでは、第１スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。
ここで、第２記憶手段は、グループスケールファクタおよびブロックスケールファクタをあらゆる手段でかつあらゆる時期に記憶するものであり、グループスケールファクタおよびブロックスケールファクタをあらかじめ記憶してあるものであってもよいし、グループスケールファクタおよびブロックスケールファクタをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってグループスケールファクタおよびブロックスケールファクタを記憶するようになっていてもよい。
【００４５】
さらに、本発明に係る請求項１１記載のデータ演算処理装置は、請求項６ないし１０のいずれかに記載のデータ演算処理装置において、前記スケールファクタ算出手段は、前記演算手段からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。
このような構成であれば、スケールファクタ算出手段により、演算手段からの演算データの冗長なビット数が算出され、これがスケールファクタとして算出される。
【００４６】
さらに、本発明に係る請求項１２記載のデータ演算処理装置は、請求項１１記載のデータ演算処理装置において、前記演算手段は、固定小数点演算器であり、前記第１スケーリング手段は、与えられたスケールファクタに相当するシフト量で、データに対してビットシフトを行い、前記第２スケーリング手段は、与えられた他のスケールファクタに相当するシフト量で、前記演算手段からの演算データに対してビットシフトを行うようになっている。
【００４７】
このような構成であれば、各計算ユニットでは、第１スケーリング手段により、与えられたスケールファクタに相当するシフト量で、与えられたデータに対してビットシフトが行われ、演算手段により、第１スケーリング手段からのデータに対して固定小数点演算が行われる。そして、第２スケーリング手段により、与えられたスケールファクタに相当するシフト量で、演算手段からの演算データに対してビットシフトが行われる。
【００４８】
ここで、第１スケーリング手段は、例えば、データに対して右シフトを行うようになっている。また、第２スケーリング手段は、例えば、データに対して左シフトまたは右シフトを行うようになっている。
さらに、本発明に係る請求項１３記載のデータ演算処理装置は、請求項６ないし１２のいずれかに記載のデータ演算処理装置において、前記演算手段は、前記第１スケーリング手段からのデータと所定の係数との積和を演算する積和演算器である。
【００４９】
このような構成であれば、演算手段により、第１スケーリング手段からのデータと所定の係数との積和が演算され、積和されたデータが演算データとして出力される。
一方、上記目的を達成するために、本発明に係る請求項１４記載のデータ演算処理プログラムは、１または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理するコンピュータ実行可能なプログラムであって、前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【００５０】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、請求項１記載のデータ演算処理装置と同等の作用が得られる。
さらに、本発明に係る請求項１５記載のデータ演算処理プログラムは、データを記憶するための記憶手段を有するコンピュータに対して、１または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理させるプログラムであって、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第１スケーリング手段、前記第１スケーリング手段からのデータに対して演算を行う演算手段、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段、および与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第２スケーリング手段として実現される処理を前記各データグループごとに実行させるためのプログラムと、前記各データグループに対応するスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段、およびデータ処理のための制御を行う制御手段として実現される処理を実行させるためのプログラムとを備え、前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各データグループに対応する第１スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各データグループに対応する第２スケーリング手段に与え、前記各データグループに対応する第２スケーリング手段からの演算データを前記記憶手段に格納し、前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各データグループに対応する第１スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各データグループに対応する第１スケーリング手段に与え、前記第１スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっている。
【００５１】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、請求項６記載のデータ演算処理装置と同等の作用が得られる。
本発明の概要は、例えば、図１に示す通りである。本発明では、データグループごとに一つのスケールファクタを計算してこれをグループスケールファクタとし、各積和演算器１２から出力されたデータをグループスケールファクタで正規化（以下、グループ正規化という。）し、グループスケールファクタを、グループ正規化されたデータグループと関連付けてレジスタファイル５２に格納する。こうした一連の処理は、データブロックに含まれる他のデータグループに対しても、繰り返し適用される。一つのデータブロックの処理を行った後、複数のグループスケールファクタうち最小のスケールファクタを検出してこれをブロックスケールファクタとし、データブロックと関連付けてレジスタファイル５６に格納する。その後、このデータブロックをブロック処理する場合、ブロックスケールファクタとグループスケールファクタとが異なり、データグループ間で桁位置が合っていない可能性があるため、グループスケールファクタとブロックスケールファクタとの差分に基づいて、各データグループのデータを正規化（以下、ブロック正規化という。）して桁合わせをし、桁合わせをした各データに対してデータの丸め処理を行った後、積和演算器１２に入力する。
【００５２】
これにより、積和演算終了後のデータは、データグループ単位で一旦グループ正規化を行ってデータメモリ１００に格納され、次のブロック処理で使用する際に、ブロック正規化されるため、ブロック正規化後のデータの下位ビットに意味のない情報が含まれることがなく、ブロックフローティング方式で固定小数点演算を行うときの演算誤差が小さくなる。さらには、データの丸め処理による演算精度の向上を図ることもできる。
【００５３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図１ないし図５は、本発明に係るデータ演算処理装置の実施の形態を示す図である。
本実施の形態は、本発明に係るデータ演算処理装置およびデータ演算処理プログラムを、図１に示すように、ブロックフローティング方式で固定小数点演算を行う場合について適用したものであり、上記従来のデータ演算処理装置と異なるのは、第１シフタ１６ではなく、第２シフタ１８でデータの丸め処理を行う点にある。
【００５４】
まず、本発明に係るデータ演算処理装置の構成を図１を参照しながら説明する。図１は、本発明に係るデータ演算処理装置の構成を示すブロック図である。
本発明に係るデータ演算処理装置は、図１に示すように、データブロック単位でデータを記憶するためのデータメモリ１００と、データメモリ１００のデータに対して積和演算を行う演算部２００と、ブロックフローティングに必要な正規化を行うための制御部３００と、これらの制御を行う制御ロジック４００と、アドレス生成器５００とで構成されている。データメモリ１００、演算部２００、制御部３００および制御ロジック４００は、データバス１１０で相互にかつデータ授受可能に接続されており、データメモリ１００、制御部３００およびアドレス生成器５００は、データアドレスバス１２０で相互にかつデータ授受可能に接続されている。
【００５５】
データメモリ１００は、図示しない外部からデータを入力し、図９に示すように、演算部２００の演算対象となるデータとして、入力したデータをデータブロック単位で格納するようになっている。
データメモリ１００では、図９に示すように、データが計算ユニットの数に相当する個数（この場合、ｋ個）組合わさってデータグループとして格納され、さらに、データグループが複数組合わさってデータブロックとして格納される。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、計算ユニットの数に相当する個数のデータを含んで構成されている。
【００５６】
演算部２００は、同一機能を有するｋ個の計算ユニットＰ０〜Ｐｋ−１で構成されている。各計算ユニットＰ０〜Ｐｋ−１には、一つのデータグループのデータがそれぞれ振り分けられ、各計算ユニットＰ０〜Ｐｋ−１は、データグループ単位でデータを並列処理する。
各計算ユニットＰ０〜Ｐｋ−１は、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第２シフタ１８と、第２シフタ１８からのデータに対して積和演算を行う積和演算器１２と、積和演算器１２からの演算データのスケールファクタを算出するユニットスケールファクタ検出器１４と、与えられたスケールファクタに基づいて積和演算器１２からの演算データに対してスケーリングを行う第１シフタ１６とで構成されている。
【００５７】
ユニットスケールファクタ検出器１４は、積和演算器１２からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。ここで、スケールファクタは、データをビットシフトするときのシフト量であり、シフトするビット数を示す。以下、グループスケールファクタおよびブロックスケールファクタについても同様である。
【００５８】
第２シフタ１８は、与えられたスケールファクタに相当するシフト量で、与えられたデータに対して右シフトを行うようになっている。
第１シフタ１６は、与えられたスケールファクタに相当するシフト量で、積和演算器１２からの演算データに対して左シフトを行うようになっている。また、第１シフタ１６からの演算データは、さらに次のブロック処理に備えるため、データメモリ１００に格納されるが、データメモリ１００のデータのビット数は、第１シフタ１６からの演算データのそれよりも少ないため、第１シフタ１６は、左シフトした演算データのうち最上位ビットを基準としてデータメモリ１００のデータのビット数分を取り、それよりも下位のビットを単純に切り捨て、データメモリ１００のデータのビット数の演算データを出力するようになっている。
【００５９】
制御部３００は、ユニットスケールファクタ検出器１４で算出したスケールファクタからグループスケールファクタを検出するグループスケールファクタ検出器５０と、グループスケールファクタを格納するグループスケールファクタレジスタファイル５２と、グループスケールファクタからブロックスケールファクタを検出するブロックスケールファクタ検出器５４と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ５６と、グループスケールファクタとブロックスケールファクタの差分を計算する桁合わせ用加算器６０とで構成されている。
【００６０】
グループスケールファクタ検出器５０は、各計算ユニットＰ０〜Ｐｋ−１のユニットスケールファクタ検出器１４で算出したスケールファクタうち最小のものをグループスケールファクタとして検出し、制御ロジック４００の制御により、検出したグループスケールファクタをグループスケールファクタレジスタファイル５２および各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に出力するようになっている。例えば、各計算ユニットＰ０〜Ｐｋ−１（例えば、ｋ＝３）のユニットスケールファクタ検出器１４からスケールファクタとして「１」、「２」、「３」を入力した場合、そのうちの最小値である「１」をそのグループスケールファクタとして検出する。
【００６１】
グループスケールファクタレジスタファイル５２は、グループスケールファクタ検出器５０で検出したグループスケールファクタをそれぞれ一時的に格納し、制御ロジック４００の制御により、データメモリ１００または桁合わせ用加算器６０にグループスケールファクタを出力するようになっている。
ブロックスケールファクタ検出器５４は、グループスケールファクタ検出器５０で検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出するようになっている。例えば、あるデータブロックのグループスケールファクタが「３」、「４」、「５」として検出された場合、そのうちの最小値である「３」をそのブロックスケールファクタとして検出する。
【００６２】
ブロックスケールファクタレジスタ５６は、ブロックスケールファクタ検出器５４で検出したブロックスケールファクタを一時的に格納し、制御ロジック４００の制御により、データメモリ１００または桁合わせ用加算器６０にグループスケールファクタを出力するようになっている。
桁合わせ用加算器６０は、グループスケールファクタレジスタファイル５２から出力されたグループスケールファクタと、ブロックスケールファクタレジスタ５６から出力されたブロックスケールファクタとを入力し、グループスケールファクタからブロックスケールファクタを減算してその差分を計算し、制御ロジック４００の制御により、その差分からなるスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に出力するようになっている。
【００６３】
制御ロジック４００は、データメモリ１００のデータに対して初めて演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位でデータをデータメモリ１００から読み出し、データブロックの各データグループごとに、データグループのデータをそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に振り分ける。
【００６４】
そして、グループスケールファクタ検出器５０で検出したグループスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に与え、各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６からの演算データをデータバス１１０経由でデータメモリ１００に格納する。
また、制御ロジック４００は、データメモリ１００のデータに対して再度演算を行うときは、次の制御処理を実行するようになっている。
【００６５】
まず、データブロック単位で演算データをデータメモリ１００から読み出し、データブロックの各データグループごとに、データグループの演算データをそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に与える。これと同時に、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル５２およびブロックスケールファクタレジスタ５６に格納されているときは、ブロックスケールファクタレジスタ５６からブロックスケールファクタを読み出して桁合わせ用加算器６０に与え、グループスケールファクタレジスタファイル５２からグループスケールファクタを順次読み出して桁合わせ用加算器６０に与え、桁合わせ用加算器６０により各グループスケールファクタとブロックスケールファクタとの差分を計算し、その差分からなるスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に与える。
【００６６】
そして、グループスケールファクタ検出器５０で検出したグループスケールファクタを各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６に与え、各計算ユニットＰ０〜Ｐｋ−１の第１シフタ１６からの演算データをデータバス１１０経由でデータメモリ１００に格納する。
なお、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル５２およびブロックスケールファクタレジスタ５６に格納されていないときは、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８に与えたデータに対応するグループスケールファクタおよびブロックスケールファクタをデータメモリ１００から読み出し、これらをデータバス１１０経由でグループスケールファクタレジスタファイル５２およびブロックスケールファクタレジスタ５６に格納してから、上記処理を実行する。
【００６７】
次に、第２シフタ１８の構成を図２を参照しながら詳細に説明する。図２は、第２シフタ１８の構成を示すブロック図である。
第２シフタ１８は、図２に示すように、与えられたスケールファクタに相当するシフト量でデータに対して右シフトを行う右シフタ１８ａと、右シフタ１８ａからのデータに対してデータの丸め処理を行うデータ丸め処理部１８ｂとで構成されている。
【００６８】
右シフタ１８ａは、データメモリ１００からｎビットのデータを入力し、桁合わせ用加算器６０からのスケールファクタに相当するシフト量で、入力したデータに対して右シフトを行い、シフトしたデータから、その最上位ビットを基準としてｎ＋１ビットのデータを抽出してデータ丸め処理部１８ｂに出力するようになっている。例えば、８ビットのデータを３ビット右シフトした場合は、１１ビットのデータとなるので、データ丸め処理部１８ｂには、１１ビットのデータのうち上位９ビットのデータが出力されることになる。
【００６９】
データ丸め処理部１８ｂは、右シフタ１８ａからｎ＋１ビットのデータを入力し、入力したｎ＋１ビットのデータに、ｎ＋１ビットのデータのうち最下位ビットのみを「１」にしたデータ丸め処理用加算データを加算し、その加算結果から、その最上位ビットを基準としてｎビットのデータを抽出して積和演算器１２に出力するようになっている。例えば、「０１０１０１０１１」の９ビットのデータを入力した場合は、データ丸め処理用加算データ「００００００００１」を入力データに加算し、積和演算器１２には、その加算結果である「０１０１０１１００」のうち上位８ビットのデータ「０１０１０１１０」が出力されることになる。
【００７０】
次に、上記実施の形態の動作を図３ないし図５を参照しながら説明する。
本例では、積和演算器１２は、初回の演算を、下式（１）により行い、下式（１）により演算した結果に対する２回目以降の演算を、下式（２）により行うものとする。下式（１）において、Ａ（ｋ）は、係数データであり、Ｘ（ｎ−ｋ）は、第２シフタ１８からのデータである。下式（２）において、Ｂ（ｌ）は、係数データであり、Ｙ（ｍ−ｌ）は、下式（１）により演算した結果であって第２シフタ１８からのデータである。
【００７１】
【数１】
0003613466.tif 000002
【００７２】
【数２】
0003613466.tif 000003
【００７３】
また、データメモリ１００からのデータを８ビット、積和演算器１２の出力を１６ビットとする。さらに、演算部２００が４つの計算ユニットから構成されるものとし、データブロックは、２つのデータグループを含んで構成され、データグループは、計算ユニットの数に相当する４つのデータを含んで構成されているものとする。また、あらかじめ定められた係数データＡ（０）〜Ａ（３）、Ｂ（０），Ｂ（１）は、必要な時にはいつでも利用可能であると仮定する。これらの係数データをどのように供給するかは、本発明の本質とは直接的ではないので特に説明しないが、例えば、必要に応じてデータメモリ１００から読み出すなどして各積和演算器１２に与えることができる。
【００７４】
まず、本発明に係るデータ演算処理装置において、下式（１）によりデータを並列処理する手順を図３を参照しながら説明する。図３は、各積和演算器１２で行われる積和演算手順を示す図である。
上式（１）によりデータメモリ１００のデータに対して演算を行うときは、図３に示すように、まず、サイクル１で、データＸ（０）〜Ｘ（３）を含む１番目のデータグループがデータメモリ１００から読み出され、データＸ（０）〜Ｘ（３）がそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐ３の第２シフタ１８に振り分けられる。初期状態では、データＸ（０）〜Ｘ（３）に対応するスケールファクタは存在しないので、制御ロジック４００により、データＸ（０）〜Ｘ（３）がシフトされないように第２シフタ１８が制御される。
【００７５】
各積和演算器１２では、図３の手順に従って、係数データＡ（０）〜Ａ（３）とデータＸ（０）〜Ｘ（３）との積和演算が行われ、サイクル２からサイクル５までを経て、最初の積和演算結果である演算データＹ（０）〜Ｙ（３）が得られる。これらの演算過程では、データＸ（０）〜Ｘ（３）は、各計算ユニットＰ０〜Ｐ３間をハードウェア手段を通じて転送されるものとする。
【００７６】
演算データＹ（０）〜Ｙ（３）は、その後、各ユニットスケールファクタ検出器１４に入力される。各ユニットスケールファクタ検出器１４では、積和演算器１２からの演算データの冗長なビット数が算出され、これがスケールファクタとして算出される。例えば、データ「００００１１００」は、最上位ビットから「０」が４つ連続するため、冗長なビット数が「４」となり、スケールファクタは「４」となる。
【００７７】
各ユニットスケールファクタ検出器１４で算出された複数のスケールファクタは、次に、グループスケールファクタ検出器５０に入力され、ここで複数のスケールファクタのうち最小のものがグループスケールファクタとして検出される。このグループスケールファクタは、さらに各計算ユニットＰ０〜Ｐ３の第１シフタ１６に入力される。これと同時に、各積和演算器１２からの演算データＹ（０）〜Ｙ（３）も第１シフタ１６に入力される。グループスケールファクタに従って、第１シフタ１６により、１６ビットの演算データＹ（０）〜Ｙ（３）に対してグループ正規化が行われる。図４に、実際の数値を用いた演算結果の一例を示す。
【００７８】
これらのグループ正規化された演算データは、さらに次のブロック処理に備えるため、データメモリ１００に格納される。データメモリ１００のデータのビット数は演算データよりも少ないため、各演算データは、下位の８ビットが単純に切り捨てられる。第１シフタ１６からの演算データＹ（０）〜Ｙ（３）は、図４の中でデータメモリ１００の入力欄に示されている。また、演算データＹ（０）〜Ｙ（３）をデータメモリ１００に格納する間に、グループスケールファクタもグループスケールファクタレジスタファイル５２に入力される。このグループスケールファクタは、グループスケールファクタレジスタファイル５２内に、対応するデータグループと関連付けられて格納される。例えば、データグループは、データメモリ１００に格納する場合、ある一つのメモリアドレスを取り、そのデータグループのすべてのデータは、一つのメモリアドレスで同時にアクセスされるとして、演算データをデータメモリ１００に格納するのに用いられるのと同じアドレスで特定されるレジスタに格納する。あるいは、図５に示すように、データグループが格納されているデータメモリ１００のアドレスと、グループスケールファクタが格納されているグループスケールファクタレジスタファイル５２のアドレスとの対応表を、データメモリ１００の一部に作成してこれらのアドレスを管理してもよい。
【００７９】
グループスケールファクタは、また、ブロックスケールファクタ検出器５４にも入力され、そこで、複数のグループスケールファクタのうち最小のものがブロックスケールファクタとして検出される。あるデータブロックの最初のデータグループの演算が終わった時点では、今演算されたばかりのグループスケールファクタ、すなわち、図４の例では「２」が初期値として、ブロックスケールファクタ検出器５４内のレジスタ（図１には示されていない）に格納される。
【００８０】
次に、サイクル６で、データＸ（４）〜Ｘ（７）を含む２番目のデータグループがデータメモリ１００から読み出され、データＸ（４）〜Ｘ（７）がそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐ３の第２シフタ１８に振り分けられる。データＸ（０）〜Ｘ（３）を含む１番目のデータグループに対するのと同様の演算処理が、このデータグループに対しても行われる。唯一異なるのは、演算データＹ（４）〜Ｙ（７）に対して計算されるグループスケールファクタは、今回はブロックスケールファクタ検出器５４内のレジスタに保持されている内容と比較され、小さい方の値がブロックスケールファクタとして選択されるという点である。図４の例では、演算データＹ（４）〜Ｙ（７）からグループスケールファクタ「１」が検出される。この場合、ブロックスケールファクタ検出器５４内のレジスタに保持されている「２」よりも「１」の方が小さいので、ブロックスケールファクタ検出器５４内のレジスタの内容は更新される。
【００８１】
この例においては、この時点で、一つのデータブロックのすべてのデータに関する演算が完了したため、ブロックスケールファクタは、ブロックスケールファクタ検出器５４内のレジスタの現在の値、すなわち「１」に確定される。本例から容易に類推されるように、例えこの後に演算を行うべき複数のデータグループがあったとしても、２番目のデータグループに適用された上述の処理を繰り返すことが可能である。
【００８２】
次に、本発明に係るデータ演算処理装置において、上式（１）により演算した演算データを、下式（２）により再度並列処理する手順を説明する。演算を始める前に、ブロックスケールファクタ検出器５４内のレジスタの内容をブロックスケールファクタレジスタ５６に転送しておく。
上式（２）によりデータメモリ１００の演算データに対して再度演算を行うときは、演算データＹ（０）〜Ｙ（３）を含む１番目のデータグループがデータメモリ１００から読み出され、演算データＹ（０）〜Ｙ（３）がそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐ３の第２シフタ１８に振り分けられる。これと同時に、対応するグループスケールファクタ、すなわち、本例においては「２」が、アドレスバス１２０経由で与えられたアドレス情報により選択され、グループスケールファクタレジスタファイル５２から読み出される。各第２シフタ１８における右シフト量は、現在のグループスケールファクタとブロックスケールファクタの差分、すなわち、本例においては、２−１＝１として与えられる。
【００８３】
第２シフタ１８での動作は、各第２シフタ１８でいずれも同様なので、計算ユニットＰ０の第２シフタ１８を例にとって説明すると、計算ユニットＰ０の第２シフタ１８では、スケールファクタとして「１」が与えられると、右シフタ１８ａにより、入力された演算データＹ（０）に対して１ビット右シフトが行われ、シフトされた演算データＹ（０）のうち上位９ビットのデータ（この場合、全ビットのデータ）がデータ丸め処理部１８ｂに出力される。そして、データ丸め処理部１８ｂにより、入力された９ビットの演算データＹ（０）に、データ丸め処理用加算データ「００００００００１」が加算され、その加算結果のうち上位８ビットのデータが積和演算器１２に出力される。これにより、演算データＹ（０）に対してデータの丸め処理が行われる。なお、演算データＹ（０）〜Ｙ（３）に対して、この後適用される演算処理は、上式（１）について説明した演算処理とまったく同様である。
【００８４】
次に、演算データＹ（４）〜Ｙ（７）を含む２番目のデータグループがデータメモリ１００から読み出され、演算データＹ（４）〜Ｙ（７）がそれぞれデータバス１１０経由で各計算ユニットＰ０〜Ｐ３の第２シフタ１８に振り分けられる。このデータグループに対するグループスケールファクタは、図４に示すように、「１」である。結果として、このデータグループのすべての演算データは、１−１＝０、すなわち第２シフタ１８でシフトされずに出力される。
【００８５】
この段階で、すべての演算データＹ（０）〜Ｙ（７）が、データブロックの最大値の小数点位置に桁合わせされ、その結果、後続の積和演算において、固定小数点演算を行うことが可能となる。
このようにして、本実施の形態では、データグループの各データに対して演算を行い、それら演算データを代表する最小のスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて各演算データに対してスケーリングを行うこれら一連の処理を、データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出し、スケーリングした演算データに対して再度演算を行うときは、その演算の前に、第２シフタ１８により、データグループの各演算データに対して当該データグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【００８６】
これにより、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができる。
【００８７】
上記実施の形態において、データメモリ１００は、請求項６または１０記載の記憶手段に対応し、グループスケールファクタレジスタファイル５２およびブロックスケールファクタレジスタ５６は、請求項１０記載の第２記憶手段に対応し、第２シフタ１８は、請求項６ないし８、１０、１２または１３記載の第１スケーリング手段に対応している。また、積和演算器１２は、請求項６、７、１１ないし１３記載の演算手段に対応し、ユニットスケールファクタ検出器１４は、請求項６または１１記載のスケールファクタ算出手段に対応し、第１シフタ１６は、請求項６または１２記載の第２スケーリング手段に対応している。
【００８８】
また、上記実施の形態において、グループスケールファクタ検出器５０は、請求項６記載のグループスケールファクタ検出手段に対応し、ブロックスケールファクタ検出器５４は、請求項６記載のブロックスケールファクタ検出手段に対応し、制御ロジック４００は、請求項６または１０記載の制御手段に対応している。
【００８９】
なお、上記実施の形態においては、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８と積和演算器１２との相互間で、ハードウェア手段を通じてデータを転送することについて説明したが、具体的には、図６に示す構成を採用することができる。図６は、各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８と積和演算器１２との相互間でデータを転送するための詳細な構成を示すブロック図である。
【００９０】
図６において、計算ユニットＰ０は、第２シフタ１８からのデータを保持するレジスタ１１ａを備えている。計算ユニットＰ１，Ｐ２は、前段の計算ユニットＰ０，Ｐ１のレジスタ１１ａからのデータを保持するレジスタ１１ａと、前段の計算ユニットＰ０，Ｐ１のレジスタ１１ａからのデータおよび第２シフタ１８からのデータのいずれかを選択して積和演算器１２に出力するセレクタ１１ｂとを備えている。計算ユニットＰ３は、前段の計算ユニットＰ２のレジスタ１１ａからのデータおよび第２シフタ１８からのデータのいずれかを選択して積和演算器１２に出力するセレクタ１１ｂを備えている。
【００９１】
また、上記実施の形態においては、ユニットスケールファクタ検出器１４と、グループスケールファクタ検出器５０とで構成したが、これに限らず、例えば、図７に示す構成を採用することができる。図７は、ユニットスケールファクタ検出器１４およびグループスケールファクタ検出器５０の他の構成を示すブロック図である。
【００９２】
図７において、各計算ユニットＰ０〜Ｐ４は、ユニットスケールファクタ検出器１４に代えて、ＸＯＲアレイ１５ａからなる局所ブロックフローティングユニット１５で構成されている。そして、プライオリティエンコーダ２１からなるグループスケールファクタ検出器５１と、各計算ユニットＰ０〜Ｐ４の局所ブロックフローティングユニット１５とグループスケールファクタ検出器５１とを接続するワイヤードＯＲバスとを備えて構成されている。
【００９３】
局所ブロックフローティングユニット１５は、積和演算器１２からの演算データを入力し、その演算データの隣り合うビットに対して排他的論理和演算を行って出力するようになっている。例えば、４ビットの演算データを入力した場合、最上位の４番目のビットおよび３番目のビットに対して排他的論理和演算を行ったものを出力データの３番目のビットとし、同じ要領で、３番目および２番目の演算結果を出力データの２番目のビットとし、２番目および１番目の演算結果を出力データの１番目のビットとし、そして、最上位のビットを出力データの最上位のビットとして出力する。
【００９４】
これにより、各計算ユニットＰ０〜Ｐ４の積和演算器１２からの演算データのスケールファクタを算出し、それらスケールファクタからグループスケールファクタを算出しなくても、各計算ユニットＰ０〜Ｐ４の積和演算器１２からの演算データから直接グループスケールファクタを検出することもできる。
また、上記実施の形態においては、発明の理解を容易にするために、データグループは、計算ユニットＰ０〜Ｐｋ−１の数に相当する個数のデータを含んで構成したが、計算ユニットＰ０〜Ｐｋ−１の数にかかわらず、これよりも少ない個数のデータを含んで構成してもよいし、これよりも多い個数のデータを含んで構成してもよい。
【００９５】
また、上記実施の形態においては、制御ロジック４００を、内部のロジックに従って各部の制御を行うように構成したが、これに限らず、制御ロジック４００に代えて、ＣＰＵ、ＲＡＭおよびＲＯＭをバス接続してデータ演算処理部を構成し、データ演算処理部は、ＣＰＵにより、上記の制御手順を示したプログラムをＲＯＭから読み出して実行するように構成してもよい。この場合、上記の制御手順を示したプログラムは、ＲＯＭに格納されているが、これに限らず、上記の制御手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭに読み込んで実行するようにしてもよい。
【００９６】
また、上記実施の形態においては、本発明に係るデータ演算処理装置を、データメモリ１００と、演算部２００と、制御部３００と、制御ロジック４００と、アドレス生成器５００とを備えたハードウェアで構成したが、これに限らず、例えば、ＣＰＵ、ＲＡＭおよびＲＯＭをバス接続して構成し、ＣＰＵにより、各部の機能を実現するための制御プログラムをＲＯＭから読み出して実行するように、一部または全部をソフトウェアで構成してもよい。この場合も、制御プログラムは、ＲＯＭに格納されているが、これに限らず、制御プログラムが記憶された記憶媒体から、その制御プログラムをＲＡＭに読み込んで実行するようにしてもよい。
【００９７】
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【００９８】
また、上記実施の形態においては、本発明に係るデータ演算処理装置およびデータ演算処理プログラムを、図１に示すように、ブロックフローティング方式で固定小数点演算を行う場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【００９９】
【発明の効果】
以上説明したように、本発明に係る請求項１ないし５記載のデータ演算処理装置によれば、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができるという効果が得られる。
【０１００】
さらに、本発明に係る請求項６ないし１３記載のデータ演算処理装置によれば、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、第１スケーリング手段では、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができるという効果が得られる。
【０１０１】
一方、本発明に係る請求項１４記載のデータ演算処理プログラムによれば、請求項１記載のデータ演算処理装置と同等の効果が得られる。
さらに、本発明に係る請求項１５記載のデータ演算処理プログラムによれば、請求項６記載のデータ演算処理装置と同等の効果が得られる。
【図面の簡単な説明】
【図１】本発明に係るデータ演算処理装置の構成を示すブロック図である。
【図２】第２シフタ１８の構成を示すブロック図である。
【図３】各積和演算器１２で行われる積和演算手順を示す図である。
【図４】本発明を数値例に適用した場合の演算過程を説明するための図である。
【図５】データグループとグループスケールファクタを関連付けて格納する方法の一例である。
【図６】各計算ユニットＰ０〜Ｐｋ−１の第２シフタ１８と積和演算器１２との相互間でデータを転送するための詳細な構成を示すブロック図である。
【図７】ユニットスケールファクタ検出器１４およびグループスケールファクタ検出器５０の他の構成を示すブロック図である。
【図８】従来のデータ演算処理装置の構成を示すブロック図である。
【図９】データメモリ１００における演算単位となるデータのデータ構造を示す図である。
【符号の説明】
１０，１８                第２シフタ
１２                      積和演算器
１４                      ユニットスケールファクタ検出器
１６                      第１シフタ
５０，５１                グループスケールファクタ検出器
５２                      グループスケールファクタレジスタファイル
５４                      ブロックスケールファクタ検出器
５６                      ブロックスケールファクタレジスタ
６０                      桁合わせ用加算器
１００                    データメモリ１００
１１０                    データバス
１２０                    アドレスバス
２００                    演算部
３００                    制御部
４００                    制御ロジック
５００                    アドレス生成器
１１０                    データバス
１２０                    データアドレスバス
１１ａ                    レジスタ
１１ｂ                    セレクタ
１５ａ                    ＸＯＲアレイ
１５                      局所ブロックフローティングユニット
２１                      プライオリティエンコーダ
【図１】
0003613466.tif 000004
【図２】
0003613466.tif 000005
【図３】
0003613466.tif 000006
【図４】
0003613466.tif 000007
【図５】
0003613466.tif 000008
【図６】
0003613466.tif 000009
【図７】
0003613466.tif 000010
【図８】
0003613466.tif 000011
【図９】
0003613466.tif 000012