JP3613466B2 - データ演算処理装置及びデータ演算処理プログラム - Google Patents

データ演算処理装置及びデータ演算処理プログラム Download PDF

Info

Publication number
JP3613466B2
JP3613466B2 JP2001107900A JP2001107900A JP3613466B2 JP 3613466 B2 JP3613466 B2 JP 3613466B2 JP 2001107900 A JP2001107900 A JP 2001107900A JP 2001107900 A JP2001107900 A JP 2001107900A JP 3613466 B2 JP3613466 B2 JP 3613466B2
Authority
JP
Japan
Prior art keywords
data
scale factor
group
block
scaling
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
Application number
JP2001107900A
Other languages
English (en)
Other versions
JP2002304288A (ja
Inventor
士朗 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asahi Kasei Corp
Original Assignee
Asahi Kasei Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asahi Kasei Corp filed Critical Asahi Kasei Corp
Priority to JP2001107900A priority Critical patent/JP3613466B2/ja
Publication of JP2002304288A publication Critical patent/JP2002304288A/ja
Application granted granted Critical
Publication of JP3613466B2 publication Critical patent/JP3613466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、1または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、データブロック単位でデータを処理する装置に係り、特に、ブロックフローティング方式で固定小数点演算を行うブロックフローティング型のデジタル・シグナル・プロセッサ(以下、単にDSPという。)に関する。
【0002】
【従来の技術】
デジタル信号処理における数値表現方法として、固定小数点表現方法および浮動小数点表現方法がある。浮動小数点表現方法では、各データが指数部と仮数部をもち、これにより、高い精度と広いダイナミックレンジが確保可能という利点がある反面、複雑で大規模なハードウェアが必要となるという問題がある。一方、固定小数点表現方法では、ハードウェアが簡単で回路規模も小さくてすむが、演算精度の低下が問題となる。そこで、これらの問題への対策法として提案されたのがブロックフローティングという方式である。この方式では、所定数(例えば、m個)のデータを一つのデータブロックとし、データブロックに対し1個のブロックスケールファクタをもたせ、データブロックのm個のデータに対し共通のスケーリング(以下、ブロック正規化という。)を行うことにより、限られたダイナミックレンジを有効に用いて精度の劣化を抑える。
【0003】
ブロックフローティングを効率良く実現するために、例えば、特許協力条約に基づいて公開された国際出願(国際公開番号WO99/66423)には、図8に示すようなデータ演算処理装置が提案されている。図8は、従来のデータ演算処理装置の構成を示すブロック図である。
このデータ演算処理装置は、図8に示すように、データブロック単位でデータを記憶するためのデータメモリ100と、データメモリ100のデータに対して積和演算を行う演算部200と、ブロックフローティングに必要な正規化を行うための制御部300と、これらの制御を行う制御ロジック400と、アドレス生成器500とで構成されている。データメモリ100、演算部200、制御部300および制御ロジック400は、データバス110で相互にかつデータ授受可能に接続されており、データメモリ100、制御部300およびアドレス生成器500は、データアドレスバス120で相互にかつデータ授受可能に接続されている。
【0004】
データメモリ100は、図示しない外部からデータを入力し、図9に示すように、演算部200の演算対象となるデータとして、入力したデータをデータブロック単位で格納するようになっている。図9は、データメモリ100における演算単位となるデータのデータ構造を示す図である。
データメモリ100では、図9に示すように、データが計算ユニットの数に相当する個数(この場合、k個)組合わさってデータグループとして格納され、さらに、データグループが複数組合わさってデータブロックとして格納される。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、計算ユニットの数に相当する個数のデータを含んで構成されている。
【0005】
演算部200は、同一機能を有するk個の計算ユニットP〜Pk−1で構成されている。各計算ユニットP〜Pk−1には、一つのデータグループのデータがそれぞれ振り分けられ、各計算ユニットP〜Pk−1は、データグループ単位でデータを並列処理する。
各計算ユニットP〜Pk−1は、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第2シフタ10と、第2シフタ10からのデータに対して積和演算を行う積和演算器12と、積和演算器12からの演算データのスケールファクタを算出するユニットスケールファクタ検出器14と、与えられたスケールファクタに基づいて積和演算器12からの演算データに対してスケーリングを行う第1シフタ16とで構成されている。
【0006】
ユニットスケールファクタ検出器14は、積和演算器12からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。ここで、スケールファクタは、データをビットシフトするときのシフト量であり、シフトするビット数を示す。以下、グループスケールファクタおよびブロックスケールファクタについても同様である。
【0007】
第2シフタ10は、与えられたスケールファクタに相当するシフト量で、与えられたデータに対して下位ビットの方向へビットシフト(以下、単に右シフトという。)を行うようになっている。
第1シフタ16は、与えられたスケールファクタに相当するシフト量で、積和演算器12からの演算データに対して上位ビットの方向へビットシフト(以下、単に左シフトという。)を行うようになっている。また、第1シフタ16からの演算データは、さらに次のブロック処理に備えるため、データメモリ100に格納されるが、データメモリ100のデータのビット数は、第1シフタ16からの演算データのそれよりも少ないため、第1シフタ16は、左シフトした演算データのうち最上位ビットを基準としてデータメモリ100のデータのビット数分を取り、それよりも下位のビットを切り捨て、データメモリ100のデータのビット数の演算データとして丸め処理を行うようになっている。
【0008】
制御部300は、ユニットスケールファクタ検出器14で算出したスケールファクタからグループスケールファクタを検出するグループスケールファクタ検出器50と、グループスケールファクタを格納するグループスケールファクタレジスタファイル52と、グループスケールファクタからブロックスケールファクタを検出するブロックスケールファクタ検出器54と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ56と、グループスケールファクタとブロックスケールファクタの差分を計算する桁合わせ用加算器60とで構成されている。
【0009】
グループスケールファクタ検出器50は、各計算ユニットP〜Pk−1のユニットスケールファクタ検出器14で算出したスケールファクタうち最小のものをグループスケールファクタとして検出し、制御ロジック400の制御により、検出したグループスケールファクタをグループスケールファクタレジスタファイル52および各計算ユニットP〜Pk−1の第1シフタ16に出力するようになっている。例えば、各計算ユニットP〜Pk−1(例えば、k=3)のユニットスケールファクタ検出器14からスケールファクタとして「1」、「2」、「3」を入力した場合、そのうちの最小値である「1」をそのグループスケールファクタとして検出する。
【0010】
グループスケールファクタレジスタファイル52は、グループスケールファクタ検出器50で検出したグループスケールファクタをそれぞれ一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
ブロックスケールファクタ検出器54は、グループスケールファクタ検出器50で検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出するようになっている。例えば、あるデータブロックのグループスケールファクタが「3」、「4」、「5」として検出された場合、そのうちの最小値である「3」をそのブロックスケールファクタとして検出する。
【0011】
ブロックスケールファクタレジスタ56は、ブロックスケールファクタ検出器54で検出したブロックスケールファクタを一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
桁合わせ用加算器60は、グループスケールファクタレジスタファイル52から出力されたグループスケールファクタと、ブロックスケールファクタレジスタ56から出力されたブロックスケールファクタとを入力し、グループスケールファクタからブロックスケールファクタを減算してその差分を計算し、制御ロジック400の制御により、その差分からなるスケールファクタを各計算ユニットP〜Pk−1の第2シフタ10に出力するようになっている。
【0012】
制御ロジック400は、データメモリ100のデータに対して初めて演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位でデータをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループのデータをそれぞれデータバス110経由で各計算ユニットP〜Pk−1の第2シフタ10に振り分ける。
【0013】
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP〜Pk−1の第1シフタ16に与え、各計算ユニットP〜Pk−1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
また、制御ロジック400は、データメモリ100のデータに対して再度演算を行うときは、次の制御処理を実行するようになっている。
【0014】
まず、データブロック単位で演算データをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループの演算データをそれぞれデータバス110経由で各計算ユニットP〜Pk−1の第2シフタ10に与える。これと同時に、各計算ユニットP〜Pk−1の第2シフタ10に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納されているときは、ブロックスケールファクタレジスタ56からブロックスケールファクタを読み出して桁合わせ用加算器60に与え、グループスケールファクタレジスタファイル52からグループスケールファクタを順次読み出して桁合わせ用加算器60に与え、桁合わせ用加算器60により各グループスケールファクタとブロックスケールファクタとの差分を計算し、その差分からなるスケールファクタを各計算ユニットP〜Pk−1の第2シフタ10に与える。
【0015】
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP〜Pk−1の第1シフタ16に与え、各計算ユニットP〜Pk−1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
【0016】
【発明が解決しようとする課題】
このように、ブロックフローティング方式においてデータの丸め処理を適用するには、データの丸め処理が演算結果に対して行うものであることから、上記従来のデータ演算処理装置のように、第1シフタ16でシフトした演算データに対してデータの丸め処理を行う構成が考えられる。
【0017】
しかしながら、上記従来のデータ演算処理装置にあっては、第1シフタ16でシフトした演算データに対してデータの丸め処理を行う構成となっているため、それぞれの演算データは、その小数点位置を基準として異なる桁位置でデータの丸め処理が行われることになる。例えば、小数点位置が上位2ビットと3ビットとの間にある16ビットの演算データが第1シフタ16で3ビット左シフトされた場合と、2ビットシフトされた場合とでは、データの丸め処理を行う桁位置が小数点位置を基準として1桁ずれることになる。したがって、データの丸め処理による演算精度の向上を十分に図ることができなかった。
【0018】
一方、第1シフタ16でシフトする前にデータの丸め処理を行う構成も考えられるが、その場合、データの丸め処理を行う桁位置がグループスケールファクタの値によって変動し一定ではないため、これを実現しようとすると複雑な構成となってしまう。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ブロックフローティング方式において、簡易な構成により、データの丸め処理による演算精度の向上を図ることができるデータ演算処理装置およびデータ演算処理プログラムを提供することを目的としている。
【0019】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る請求項1記載のデータ演算処理装置は、1または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【0020】
このような構成であれば、データグループの各データに対して演算が行われ、それら演算データのうち絶対値が最大となるもののスケールファクタがグループスケールファクタとして検出され、検出されたグループスケールファクタに基づいて、各演算データに対してスケーリングが行われる。こうした一連の処理が、データブロックの各データグループごとに行われる。そして、一つのデータブロックについて処理が終了すると、各データグループごとに検出されたグループスケールファクタのうち絶対値が最大となる演算データに対応するものがブロックスケールファクタとして検出される。
【0021】
次に、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われ、スケーリングされたそれら演算データに対してデータの丸め処理が行われる。このデータの丸め処理では、同一のデータグループに属する演算データについては、そのグループスケールファクタおよびブロックスケールファクタが同一であるため、それらに基づくスケーリングにより、データの丸め処理を行う桁位置が同一となる。
【0022】
ここで、スケールファクタとしては、例えば、データをビットシフトするときのシフト量を挙げることができる。この場合、スケールファクタに相当するシフト量で、データに対してビットシフトを行うことによりスケーリングを行う。以下、請求項6記載のデータ演算処理装置において同じである。
また、グループスケールファクタを検出する構成としては、例えば、データグループの各データに対して演算を行った後、それら演算データのスケールファクタを算出し、算出したスケールファクタのうち最小のものをグループスケールファクタとして検出するようになっていてもよいし、それら演算データのスケールファクタを算出せず、それら演算データから直接グループスケールファクタを検出するようになっていてもよい。
【0023】
さらに、本発明に係る請求項2記載のデータ演算処理装置は、請求項1記載のデータ演算処理装置において、前記演算は、所定ビット数のデータに対して行うようになっており、前記グループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【0024】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われる。そして、スケーリングされたそれら演算データごとに、その演算データから、その最上位ビットを基準として所定ビット数よりも多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【0025】
さらに、本発明に係る請求項3記載のデータ演算処理装置は、請求項2記載のデータ演算処理装置において、前記グループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも1ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【0026】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングが行われる。そして、スケーリングされたそれら演算データごとに、その演算データから、その最上位ビットを基準として所定ビット数よりも1ビット多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【0027】
さらに、本発明に係る請求項4記載のデータ演算処理装置は、請求項3記載のデータ演算処理装置において、前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に1ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっている。
【0028】
このような構成であれば、データの丸め処理では、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に1ビットが加算され、その加算結果のうちその最上位ビットを基準として所定ビット数のデータが演算対象として出力される。
さらに、本発明に係る請求項5記載のデータ演算処理装置は、請求項1ないし4のいずれかに記載のデータ演算処理装置において、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタと前記ブロックスケールファクタとの差分に基づいてスケーリングを行うようになっている。
【0029】
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分に基づいてスケーリングが行われる。
さらに、本発明に係る請求項6記載のデータ演算処理装置は、複数の計算ユニットを備え、1または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、前記各計算ユニットは、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第1スケーリング手段と、前記第1スケーリング手段からのデータに対して演算を行う演算手段と、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段と、与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第2スケーリング手段とを有し、さらに、データを記憶するための記憶手段と、前記各計算ユニットのスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段と、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段と、データ処理のための制御を行う制御手段とを備え、前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各計算ユニットの第2スケーリング手段に与え、前記各計算ユニットの第2スケーリング手段からの演算データを前記記憶手段に格納し、前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第1スケーリング手段に与え、前記第1スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっている。
【0030】
このような構成であれば、制御手段により、データブロック単位でデータが記憶手段から読み出され、データブロックの各データグループごとに、データグループのデータがそれぞれ各計算ユニットの第1スケーリング手段に振り分けられる。
各計算ユニットでは、初期状態では第1スケーリング手段にスケールファクタが与えられないので、第1スケーリング手段によるスケーリングが行われず、そのまま演算手段に入力される。そして、演算手段により、第1スケーリング手段からのデータに対して演算が行われ、スケールファクタ算出手段により、演算手段からの演算データのスケールファクタが算出される。
【0031】
各計算ユニットでスケールファクタが算出されると、グループスケールファクタ検出手段により、各計算ユニットのスケールファクタ算出手段で算出されたスケールファクタのうち絶対値が最大となる演算データに対応するものがグループスケールファクタとして検出され、制御手段により、算出されたグループスケールファクタが各計算ユニットの第2スケーリング手段に与えられる。
【0032】
これにより、各計算ユニットでは、第2スケーリング手段により、与えられたグループスケールファクタに基づいて、演算手段からの演算データに対してスケーリングが行われる。
このように各計算ユニットで演算データに対してスケーリングが行われると、制御手段により、各計算ユニットの第2スケーリング手段からの演算データが記憶手段に格納されるとともに、ブロックスケールファクタ検出手段により、グループスケールファクタ検出手段で検出されたグループスケールファクタのうち絶対値が最大となる演算データに対応するものがブロックスケールファクタとして検出される。
【0033】
次に、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第1スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第1スケーリング手段に与えられる。
【0034】
各計算ユニットでは、第1スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われ、スケーリングされた演算データに対してデータの丸め処理が行われる。このデータの丸め処理では、同一のデータグループに属する演算データについては、そのグループスケールファクタおよびブロックスケールファクタが同一であるため、それらに基づくスケーリングにより、データの丸め処理を行う桁位置が同一となる。
【0035】
ここで、記憶手段は、データをあらゆる手段でかつあらゆる時期に記憶するものであり、データをあらかじめ記憶してあるものであってもよいし、データをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってデータを記憶するようになっていてもよい。
さらに、本発明に係る請求項7記載のデータ演算処理装置は、請求項6記載のデータ演算処理装置において、前記演算手段は、所定ビット数のデータに対して演算を行い、前記第1スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【0036】
このような構成であれば、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第1スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第1スケーリング手段に与えられる。
【0037】
各計算ユニットでは、第1スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。そして、スケーリングされた演算データから、その最上位ビットを基準として所定ビット数よりも多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【0038】
さらに、本発明に係る請求項8記載のデータ演算処理装置は、請求項7記載のデータ演算処理装置において、前記第1スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも1ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっている。
【0039】
このような構成であれば、記憶手段の演算データに対して再度演算を行うときは、制御手段により、データブロック単位で演算データが記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第1スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第1スケーリング手段に与えられる。
【0040】
各計算ユニットでは、第1スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。そして、スケーリングされた演算データから、その最上位ビットを基準として所定ビット数よりも1ビット多いビット数のデータが抽出され、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に基づいてデータの丸め処理が行われる。
【0041】
さらに、本発明に係る請求項9記載のデータ演算処理装置は、請求項8記載のデータ演算処理装置において、前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に1ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっている。
【0042】
このような構成であれば、データの丸め処理では、抽出されたデータのうちその最上位ビットを基準として所定ビット数のデータ以外のものの値に1ビットが加算され、その加算結果のうちその最上位ビットを基準として所定ビット数のデータが演算対象として出力される。
さらに、本発明に係る請求項10記載のデータ演算処理装置は、請求項6ないし9のいずれかに記載のデータ演算処理装置において、前記グループスケールファクタおよび前記ブロックスケールファクタを記憶するための第2記憶手段を備え、前記制御手段は、前記グループスケールファクタおよび前記ブロックスケールファクタを演算データと対応付けて前記第2記憶手段に記憶し、前記記憶手段の演算データに対して再度演算を行うときは、対応するグループスケールファクタおよびブロックスケールファクタを前記第2記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分け、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第1スケーリング手段に与えるようになっている。
【0043】
このような構成であれば、制御手段により、グループスケールファクタ検出手段で検出されたグループスケールファクタおよびブロックスケールファクタ検出手段で検出されたブロックスケールファクタが、各計算ユニットの第2スケーリング手段からの演算データと対応付けられて第2記憶手段に格納される。
そして、記憶手段の演算データに対して再度演算を行うときは、制御手段により、対応するグループスケールファクタおよびブロックスケールファクタが第2記憶手段から読み出され、データブロックの各データグループごとに、データグループの演算データがそれぞれ各計算ユニットの第1スケーリング手段に振り分けられるとともに、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタが各計算ユニットの第1スケーリング手段に与えられる。
【0044】
これにより、各計算ユニットでは、第1スケーリング手段により、前回の処理において検出されたグループスケールファクタとブロックスケールファクタとの差分からなるスケールファクタに基づいて、与えられた演算データに対してスケーリングが行われる。
ここで、第2記憶手段は、グループスケールファクタおよびブロックスケールファクタをあらゆる手段でかつあらゆる時期に記憶するものであり、グループスケールファクタおよびブロックスケールファクタをあらかじめ記憶してあるものであってもよいし、グループスケールファクタおよびブロックスケールファクタをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってグループスケールファクタおよびブロックスケールファクタを記憶するようになっていてもよい。
【0045】
さらに、本発明に係る請求項11記載のデータ演算処理装置は、請求項6ないし10のいずれかに記載のデータ演算処理装置において、前記スケールファクタ算出手段は、前記演算手段からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。
このような構成であれば、スケールファクタ算出手段により、演算手段からの演算データの冗長なビット数が算出され、これがスケールファクタとして算出される。
【0046】
さらに、本発明に係る請求項12記載のデータ演算処理装置は、請求項11記載のデータ演算処理装置において、前記演算手段は、固定小数点演算器であり、前記第1スケーリング手段は、与えられたスケールファクタに相当するシフト量で、データに対してビットシフトを行い、前記第2スケーリング手段は、与えられた他のスケールファクタに相当するシフト量で、前記演算手段からの演算データに対してビットシフトを行うようになっている。
【0047】
このような構成であれば、各計算ユニットでは、第1スケーリング手段により、与えられたスケールファクタに相当するシフト量で、与えられたデータに対してビットシフトが行われ、演算手段により、第1スケーリング手段からのデータに対して固定小数点演算が行われる。そして、第2スケーリング手段により、与えられたスケールファクタに相当するシフト量で、演算手段からの演算データに対してビットシフトが行われる。
【0048】
ここで、第1スケーリング手段は、例えば、データに対して右シフトを行うようになっている。また、第2スケーリング手段は、例えば、データに対して左シフトまたは右シフトを行うようになっている。
さらに、本発明に係る請求項13記載のデータ演算処理装置は、請求項6ないし12のいずれかに記載のデータ演算処理装置において、前記演算手段は、前記第1スケーリング手段からのデータと所定の係数との積和を演算する積和演算器である。
【0049】
このような構成であれば、演算手段により、第1スケーリング手段からのデータと所定の係数との積和が演算され、積和されたデータが演算データとして出力される。
一方、上記目的を達成するために、本発明に係る請求項14記載のデータ演算処理プログラムは、1または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理するコンピュータ実行可能なプログラムであって、前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【0050】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、請求項1記載のデータ演算処理装置と同等の作用が得られる。
さらに、本発明に係る請求項15記載のデータ演算処理プログラムは、データを記憶するための記憶手段を有するコンピュータに対して、1または複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理させるプログラムであって、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第1スケーリング手段、前記第1スケーリング手段からのデータに対して演算を行う演算手段、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段、および与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第2スケーリング手段として実現される処理を前記各データグループごとに実行させるためのプログラムと、前記各データグループに対応するスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段、およびデータ処理のための制御を行う制御手段として実現される処理を実行させるためのプログラムとを備え、前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各データグループに対応する第1スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各データグループに対応する第2スケーリング手段に与え、前記各データグループに対応する第2スケーリング手段からの演算データを前記記憶手段に格納し、前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各データグループに対応する第1スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各データグループに対応する第1スケーリング手段に与え、前記第1スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっている。
【0051】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、請求項6記載のデータ演算処理装置と同等の作用が得られる。
本発明の概要は、例えば、図1に示す通りである。本発明では、データグループごとに一つのスケールファクタを計算してこれをグループスケールファクタとし、各積和演算器12から出力されたデータをグループスケールファクタで正規化(以下、グループ正規化という。)し、グループスケールファクタを、グループ正規化されたデータグループと関連付けてレジスタファイル52に格納する。こうした一連の処理は、データブロックに含まれる他のデータグループに対しても、繰り返し適用される。一つのデータブロックの処理を行った後、複数のグループスケールファクタうち最小のスケールファクタを検出してこれをブロックスケールファクタとし、データブロックと関連付けてレジスタファイル56に格納する。その後、このデータブロックをブロック処理する場合、ブロックスケールファクタとグループスケールファクタとが異なり、データグループ間で桁位置が合っていない可能性があるため、グループスケールファクタとブロックスケールファクタとの差分に基づいて、各データグループのデータを正規化(以下、ブロック正規化という。)して桁合わせをし、桁合わせをした各データに対してデータの丸め処理を行った後、積和演算器12に入力する。
【0052】
これにより、積和演算終了後のデータは、データグループ単位で一旦グループ正規化を行ってデータメモリ100に格納され、次のブロック処理で使用する際に、ブロック正規化されるため、ブロック正規化後のデータの下位ビットに意味のない情報が含まれることがなく、ブロックフローティング方式で固定小数点演算を行うときの演算誤差が小さくなる。さらには、データの丸め処理による演算精度の向上を図ることもできる。
【0053】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図1ないし図5は、本発明に係るデータ演算処理装置の実施の形態を示す図である。
本実施の形態は、本発明に係るデータ演算処理装置およびデータ演算処理プログラムを、図1に示すように、ブロックフローティング方式で固定小数点演算を行う場合について適用したものであり、上記従来のデータ演算処理装置と異なるのは、第1シフタ16ではなく、第2シフタ18でデータの丸め処理を行う点にある。
【0054】
まず、本発明に係るデータ演算処理装置の構成を図1を参照しながら説明する。図1は、本発明に係るデータ演算処理装置の構成を示すブロック図である。
本発明に係るデータ演算処理装置は、図1に示すように、データブロック単位でデータを記憶するためのデータメモリ100と、データメモリ100のデータに対して積和演算を行う演算部200と、ブロックフローティングに必要な正規化を行うための制御部300と、これらの制御を行う制御ロジック400と、アドレス生成器500とで構成されている。データメモリ100、演算部200、制御部300および制御ロジック400は、データバス110で相互にかつデータ授受可能に接続されており、データメモリ100、制御部300およびアドレス生成器500は、データアドレスバス120で相互にかつデータ授受可能に接続されている。
【0055】
データメモリ100は、図示しない外部からデータを入力し、図9に示すように、演算部200の演算対象となるデータとして、入力したデータをデータブロック単位で格納するようになっている。
データメモリ100では、図9に示すように、データが計算ユニットの数に相当する個数(この場合、k個)組合わさってデータグループとして格納され、さらに、データグループが複数組合わさってデータブロックとして格納される。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、計算ユニットの数に相当する個数のデータを含んで構成されている。
【0056】
演算部200は、同一機能を有するk個の計算ユニットP〜Pk−1で構成されている。各計算ユニットP〜Pk−1には、一つのデータグループのデータがそれぞれ振り分けられ、各計算ユニットP〜Pk−1は、データグループ単位でデータを並列処理する。
各計算ユニットP〜Pk−1は、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第2シフタ18と、第2シフタ18からのデータに対して積和演算を行う積和演算器12と、積和演算器12からの演算データのスケールファクタを算出するユニットスケールファクタ検出器14と、与えられたスケールファクタに基づいて積和演算器12からの演算データに対してスケーリングを行う第1シフタ16とで構成されている。
【0057】
ユニットスケールファクタ検出器14は、積和演算器12からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。ここで、スケールファクタは、データをビットシフトするときのシフト量であり、シフトするビット数を示す。以下、グループスケールファクタおよびブロックスケールファクタについても同様である。
【0058】
第2シフタ18は、与えられたスケールファクタに相当するシフト量で、与えられたデータに対して右シフトを行うようになっている。
第1シフタ16は、与えられたスケールファクタに相当するシフト量で、積和演算器12からの演算データに対して左シフトを行うようになっている。また、第1シフタ16からの演算データは、さらに次のブロック処理に備えるため、データメモリ100に格納されるが、データメモリ100のデータのビット数は、第1シフタ16からの演算データのそれよりも少ないため、第1シフタ16は、左シフトした演算データのうち最上位ビットを基準としてデータメモリ100のデータのビット数分を取り、それよりも下位のビットを単純に切り捨て、データメモリ100のデータのビット数の演算データを出力するようになっている。
【0059】
制御部300は、ユニットスケールファクタ検出器14で算出したスケールファクタからグループスケールファクタを検出するグループスケールファクタ検出器50と、グループスケールファクタを格納するグループスケールファクタレジスタファイル52と、グループスケールファクタからブロックスケールファクタを検出するブロックスケールファクタ検出器54と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ56と、グループスケールファクタとブロックスケールファクタの差分を計算する桁合わせ用加算器60とで構成されている。
【0060】
グループスケールファクタ検出器50は、各計算ユニットP〜Pk−1のユニットスケールファクタ検出器14で算出したスケールファクタうち最小のものをグループスケールファクタとして検出し、制御ロジック400の制御により、検出したグループスケールファクタをグループスケールファクタレジスタファイル52および各計算ユニットP〜Pk−1の第1シフタ16に出力するようになっている。例えば、各計算ユニットP〜Pk−1(例えば、k=3)のユニットスケールファクタ検出器14からスケールファクタとして「1」、「2」、「3」を入力した場合、そのうちの最小値である「1」をそのグループスケールファクタとして検出する。
【0061】
グループスケールファクタレジスタファイル52は、グループスケールファクタ検出器50で検出したグループスケールファクタをそれぞれ一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
ブロックスケールファクタ検出器54は、グループスケールファクタ検出器50で検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出するようになっている。例えば、あるデータブロックのグループスケールファクタが「3」、「4」、「5」として検出された場合、そのうちの最小値である「3」をそのブロックスケールファクタとして検出する。
【0062】
ブロックスケールファクタレジスタ56は、ブロックスケールファクタ検出器54で検出したブロックスケールファクタを一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
桁合わせ用加算器60は、グループスケールファクタレジスタファイル52から出力されたグループスケールファクタと、ブロックスケールファクタレジスタ56から出力されたブロックスケールファクタとを入力し、グループスケールファクタからブロックスケールファクタを減算してその差分を計算し、制御ロジック400の制御により、その差分からなるスケールファクタを各計算ユニットP〜Pk−1の第2シフタ18に出力するようになっている。
【0063】
制御ロジック400は、データメモリ100のデータに対して初めて演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位でデータをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループのデータをそれぞれデータバス110経由で各計算ユニットP〜Pk−1の第2シフタ18に振り分ける。
【0064】
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP〜Pk−1の第1シフタ16に与え、各計算ユニットP〜Pk−1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
また、制御ロジック400は、データメモリ100のデータに対して再度演算を行うときは、次の制御処理を実行するようになっている。
【0065】
まず、データブロック単位で演算データをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループの演算データをそれぞれデータバス110経由で各計算ユニットP〜Pk−1の第2シフタ18に与える。これと同時に、各計算ユニットP〜Pk−1の第2シフタ18に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納されているときは、ブロックスケールファクタレジスタ56からブロックスケールファクタを読み出して桁合わせ用加算器60に与え、グループスケールファクタレジスタファイル52からグループスケールファクタを順次読み出して桁合わせ用加算器60に与え、桁合わせ用加算器60により各グループスケールファクタとブロックスケールファクタとの差分を計算し、その差分からなるスケールファクタを各計算ユニットP〜Pk−1の第2シフタ18に与える。
【0066】
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP〜Pk−1の第1シフタ16に与え、各計算ユニットP〜Pk−1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
なお、各計算ユニットP〜Pk−1の第2シフタ18に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納されていないときは、各計算ユニットP〜Pk−1の第2シフタ18に与えたデータに対応するグループスケールファクタおよびブロックスケールファクタをデータメモリ100から読み出し、これらをデータバス110経由でグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納してから、上記処理を実行する。
【0067】
次に、第2シフタ18の構成を図2を参照しながら詳細に説明する。図2は、第2シフタ18の構成を示すブロック図である。
第2シフタ18は、図2に示すように、与えられたスケールファクタに相当するシフト量でデータに対して右シフトを行う右シフタ18aと、右シフタ18aからのデータに対してデータの丸め処理を行うデータ丸め処理部18bとで構成されている。
【0068】
右シフタ18aは、データメモリ100からnビットのデータを入力し、桁合わせ用加算器60からのスケールファクタに相当するシフト量で、入力したデータに対して右シフトを行い、シフトしたデータから、その最上位ビットを基準としてn+1ビットのデータを抽出してデータ丸め処理部18bに出力するようになっている。例えば、8ビットのデータを3ビット右シフトした場合は、11ビットのデータとなるので、データ丸め処理部18bには、11ビットのデータのうち上位9ビットのデータが出力されることになる。
【0069】
データ丸め処理部18bは、右シフタ18aからn+1ビットのデータを入力し、入力したn+1ビットのデータに、n+1ビットのデータのうち最下位ビットのみを「1」にしたデータ丸め処理用加算データを加算し、その加算結果から、その最上位ビットを基準としてnビットのデータを抽出して積和演算器12に出力するようになっている。例えば、「010101011」の9ビットのデータを入力した場合は、データ丸め処理用加算データ「000000001」を入力データに加算し、積和演算器12には、その加算結果である「010101100」のうち上位8ビットのデータ「01010110」が出力されることになる。
【0070】
次に、上記実施の形態の動作を図3ないし図5を参照しながら説明する。
本例では、積和演算器12は、初回の演算を、下式(1)により行い、下式(1)により演算した結果に対する2回目以降の演算を、下式(2)により行うものとする。下式(1)において、A(k)は、係数データであり、X(n−k)は、第2シフタ18からのデータである。下式(2)において、B(l)は、係数データであり、Y(m−l)は、下式(1)により演算した結果であって第2シフタ18からのデータである。
【0071】
【数1】
Figure 0003613466
【0072】
【数2】
Figure 0003613466
【0073】
また、データメモリ100からのデータを8ビット、積和演算器12の出力を16ビットとする。さらに、演算部200が4つの計算ユニットから構成されるものとし、データブロックは、2つのデータグループを含んで構成され、データグループは、計算ユニットの数に相当する4つのデータを含んで構成されているものとする。また、あらかじめ定められた係数データA(0)〜A(3)、B(0),B(1)は、必要な時にはいつでも利用可能であると仮定する。これらの係数データをどのように供給するかは、本発明の本質とは直接的ではないので特に説明しないが、例えば、必要に応じてデータメモリ100から読み出すなどして各積和演算器12に与えることができる。
【0074】
まず、本発明に係るデータ演算処理装置において、下式(1)によりデータを並列処理する手順を図3を参照しながら説明する。図3は、各積和演算器12で行われる積和演算手順を示す図である。
上式(1)によりデータメモリ100のデータに対して演算を行うときは、図3に示すように、まず、サイクル1で、データX(0)〜X(3)を含む1番目のデータグループがデータメモリ100から読み出され、データX(0)〜X(3)がそれぞれデータバス110経由で各計算ユニットP〜Pの第2シフタ18に振り分けられる。初期状態では、データX(0)〜X(3)に対応するスケールファクタは存在しないので、制御ロジック400により、データX(0)〜X(3)がシフトされないように第2シフタ18が制御される。
【0075】
各積和演算器12では、図3の手順に従って、係数データA(0)〜A(3)とデータX(0)〜X(3)との積和演算が行われ、サイクル2からサイクル5までを経て、最初の積和演算結果である演算データY(0)〜Y(3)が得られる。これらの演算過程では、データX(0)〜X(3)は、各計算ユニットP〜P間をハードウェア手段を通じて転送されるものとする。
【0076】
演算データY(0)〜Y(3)は、その後、各ユニットスケールファクタ検出器14に入力される。各ユニットスケールファクタ検出器14では、積和演算器12からの演算データの冗長なビット数が算出され、これがスケールファクタとして算出される。例えば、データ「00001100」は、最上位ビットから「0」が4つ連続するため、冗長なビット数が「4」となり、スケールファクタは「4」となる。
【0077】
各ユニットスケールファクタ検出器14で算出された複数のスケールファクタは、次に、グループスケールファクタ検出器50に入力され、ここで複数のスケールファクタのうち最小のものがグループスケールファクタとして検出される。このグループスケールファクタは、さらに各計算ユニットP〜Pの第1シフタ16に入力される。これと同時に、各積和演算器12からの演算データY(0)〜Y(3)も第1シフタ16に入力される。グループスケールファクタに従って、第1シフタ16により、16ビットの演算データY(0)〜Y(3)に対してグループ正規化が行われる。図4に、実際の数値を用いた演算結果の一例を示す。
【0078】
これらのグループ正規化された演算データは、さらに次のブロック処理に備えるため、データメモリ100に格納される。データメモリ100のデータのビット数は演算データよりも少ないため、各演算データは、下位の8ビットが単純に切り捨てられる。第1シフタ16からの演算データY(0)〜Y(3)は、図4の中でデータメモリ100の入力欄に示されている。また、演算データY(0)〜Y(3)をデータメモリ100に格納する間に、グループスケールファクタもグループスケールファクタレジスタファイル52に入力される。このグループスケールファクタは、グループスケールファクタレジスタファイル52内に、対応するデータグループと関連付けられて格納される。例えば、データグループは、データメモリ100に格納する場合、ある一つのメモリアドレスを取り、そのデータグループのすべてのデータは、一つのメモリアドレスで同時にアクセスされるとして、演算データをデータメモリ100に格納するのに用いられるのと同じアドレスで特定されるレジスタに格納する。あるいは、図5に示すように、データグループが格納されているデータメモリ100のアドレスと、グループスケールファクタが格納されているグループスケールファクタレジスタファイル52のアドレスとの対応表を、データメモリ100の一部に作成してこれらのアドレスを管理してもよい。
【0079】
グループスケールファクタは、また、ブロックスケールファクタ検出器54にも入力され、そこで、複数のグループスケールファクタのうち最小のものがブロックスケールファクタとして検出される。あるデータブロックの最初のデータグループの演算が終わった時点では、今演算されたばかりのグループスケールファクタ、すなわち、図4の例では「2」が初期値として、ブロックスケールファクタ検出器54内のレジスタ(図1には示されていない)に格納される。
【0080】
次に、サイクル6で、データX(4)〜X(7)を含む2番目のデータグループがデータメモリ100から読み出され、データX(4)〜X(7)がそれぞれデータバス110経由で各計算ユニットP〜Pの第2シフタ18に振り分けられる。データX(0)〜X(3)を含む1番目のデータグループに対するのと同様の演算処理が、このデータグループに対しても行われる。唯一異なるのは、演算データY(4)〜Y(7)に対して計算されるグループスケールファクタは、今回はブロックスケールファクタ検出器54内のレジスタに保持されている内容と比較され、小さい方の値がブロックスケールファクタとして選択されるという点である。図4の例では、演算データY(4)〜Y(7)からグループスケールファクタ「1」が検出される。この場合、ブロックスケールファクタ検出器54内のレジスタに保持されている「2」よりも「1」の方が小さいので、ブロックスケールファクタ検出器54内のレジスタの内容は更新される。
【0081】
この例においては、この時点で、一つのデータブロックのすべてのデータに関する演算が完了したため、ブロックスケールファクタは、ブロックスケールファクタ検出器54内のレジスタの現在の値、すなわち「1」に確定される。本例から容易に類推されるように、例えこの後に演算を行うべき複数のデータグループがあったとしても、2番目のデータグループに適用された上述の処理を繰り返すことが可能である。
【0082】
次に、本発明に係るデータ演算処理装置において、上式(1)により演算した演算データを、下式(2)により再度並列処理する手順を説明する。演算を始める前に、ブロックスケールファクタ検出器54内のレジスタの内容をブロックスケールファクタレジスタ56に転送しておく。
上式(2)によりデータメモリ100の演算データに対して再度演算を行うときは、演算データY(0)〜Y(3)を含む1番目のデータグループがデータメモリ100から読み出され、演算データY(0)〜Y(3)がそれぞれデータバス110経由で各計算ユニットP〜Pの第2シフタ18に振り分けられる。これと同時に、対応するグループスケールファクタ、すなわち、本例においては「2」が、アドレスバス120経由で与えられたアドレス情報により選択され、グループスケールファクタレジスタファイル52から読み出される。各第2シフタ18における右シフト量は、現在のグループスケールファクタとブロックスケールファクタの差分、すなわち、本例においては、2−1=1として与えられる。
【0083】
第2シフタ18での動作は、各第2シフタ18でいずれも同様なので、計算ユニットPの第2シフタ18を例にとって説明すると、計算ユニットPの第2シフタ18では、スケールファクタとして「1」が与えられると、右シフタ18aにより、入力された演算データY(0)に対して1ビット右シフトが行われ、シフトされた演算データY(0)のうち上位9ビットのデータ(この場合、全ビットのデータ)がデータ丸め処理部18bに出力される。そして、データ丸め処理部18bにより、入力された9ビットの演算データY(0)に、データ丸め処理用加算データ「000000001」が加算され、その加算結果のうち上位8ビットのデータが積和演算器12に出力される。これにより、演算データY(0)に対してデータの丸め処理が行われる。なお、演算データY(0)〜Y(3)に対して、この後適用される演算処理は、上式(1)について説明した演算処理とまったく同様である。
【0084】
次に、演算データY(4)〜Y(7)を含む2番目のデータグループがデータメモリ100から読み出され、演算データY(4)〜Y(7)がそれぞれデータバス110経由で各計算ユニットP〜Pの第2シフタ18に振り分けられる。このデータグループに対するグループスケールファクタは、図4に示すように、「1」である。結果として、このデータグループのすべての演算データは、1−1=0、すなわち第2シフタ18でシフトされずに出力される。
【0085】
この段階で、すべての演算データY(0)〜Y(7)が、データブロックの最大値の小数点位置に桁合わせされ、その結果、後続の積和演算において、固定小数点演算を行うことが可能となる。
このようにして、本実施の形態では、データグループの各データに対して演算を行い、それら演算データを代表する最小のスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて各演算データに対してスケーリングを行うこれら一連の処理を、データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出し、スケーリングした演算データに対して再度演算を行うときは、その演算の前に、第2シフタ18により、データグループの各演算データに対して当該データグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっている。
【0086】
これにより、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができる。
【0087】
上記実施の形態において、データメモリ100は、請求項6または10記載の記憶手段に対応し、グループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56は、請求項10記載の第2記憶手段に対応し、第2シフタ18は、請求項6ないし8、10、12または13記載の第1スケーリング手段に対応している。また、積和演算器12は、請求項6、7、11ないし13記載の演算手段に対応し、ユニットスケールファクタ検出器14は、請求項6または11記載のスケールファクタ算出手段に対応し、第1シフタ16は、請求項6または12記載の第2スケーリング手段に対応している。
【0088】
また、上記実施の形態において、グループスケールファクタ検出器50は、請求項6記載のグループスケールファクタ検出手段に対応し、ブロックスケールファクタ検出器54は、請求項6記載のブロックスケールファクタ検出手段に対応し、制御ロジック400は、請求項6または10記載の制御手段に対応している。
【0089】
なお、上記実施の形態においては、各計算ユニットP〜Pk−1の第2シフタ18と積和演算器12との相互間で、ハードウェア手段を通じてデータを転送することについて説明したが、具体的には、図6に示す構成を採用することができる。図6は、各計算ユニットP〜Pk−1の第2シフタ18と積和演算器12との相互間でデータを転送するための詳細な構成を示すブロック図である。
【0090】
図6において、計算ユニットPは、第2シフタ18からのデータを保持するレジスタ11aを備えている。計算ユニットP,Pは、前段の計算ユニットP,Pのレジスタ11aからのデータを保持するレジスタ11aと、前段の計算ユニットP,Pのレジスタ11aからのデータおよび第2シフタ18からのデータのいずれかを選択して積和演算器12に出力するセレクタ11bとを備えている。計算ユニットPは、前段の計算ユニットPのレジスタ11aからのデータおよび第2シフタ18からのデータのいずれかを選択して積和演算器12に出力するセレクタ11bを備えている。
【0091】
また、上記実施の形態においては、ユニットスケールファクタ検出器14と、グループスケールファクタ検出器50とで構成したが、これに限らず、例えば、図7に示す構成を採用することができる。図7は、ユニットスケールファクタ検出器14およびグループスケールファクタ検出器50の他の構成を示すブロック図である。
【0092】
図7において、各計算ユニットP〜Pは、ユニットスケールファクタ検出器14に代えて、XORアレイ15aからなる局所ブロックフローティングユニット15で構成されている。そして、プライオリティエンコーダ21からなるグループスケールファクタ検出器51と、各計算ユニットP〜Pの局所ブロックフローティングユニット15とグループスケールファクタ検出器51とを接続するワイヤードORバスとを備えて構成されている。
【0093】
局所ブロックフローティングユニット15は、積和演算器12からの演算データを入力し、その演算データの隣り合うビットに対して排他的論理和演算を行って出力するようになっている。例えば、4ビットの演算データを入力した場合、最上位の4番目のビットおよび3番目のビットに対して排他的論理和演算を行ったものを出力データの3番目のビットとし、同じ要領で、3番目および2番目の演算結果を出力データの2番目のビットとし、2番目および1番目の演算結果を出力データの1番目のビットとし、そして、最上位のビットを出力データの最上位のビットとして出力する。
【0094】
これにより、各計算ユニットP〜Pの積和演算器12からの演算データのスケールファクタを算出し、それらスケールファクタからグループスケールファクタを算出しなくても、各計算ユニットP〜Pの積和演算器12からの演算データから直接グループスケールファクタを検出することもできる。
また、上記実施の形態においては、発明の理解を容易にするために、データグループは、計算ユニットP〜Pk−1の数に相当する個数のデータを含んで構成したが、計算ユニットP〜Pk−1の数にかかわらず、これよりも少ない個数のデータを含んで構成してもよいし、これよりも多い個数のデータを含んで構成してもよい。
【0095】
また、上記実施の形態においては、制御ロジック400を、内部のロジックに従って各部の制御を行うように構成したが、これに限らず、制御ロジック400に代えて、CPU、RAMおよびROMをバス接続してデータ演算処理部を構成し、データ演算処理部は、CPUにより、上記の制御手順を示したプログラムをROMから読み出して実行するように構成してもよい。この場合、上記の制御手順を示したプログラムは、ROMに格納されているが、これに限らず、上記の制御手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAMに読み込んで実行するようにしてもよい。
【0096】
また、上記実施の形態においては、本発明に係るデータ演算処理装置を、データメモリ100と、演算部200と、制御部300と、制御ロジック400と、アドレス生成器500とを備えたハードウェアで構成したが、これに限らず、例えば、CPU、RAMおよびROMをバス接続して構成し、CPUにより、各部の機能を実現するための制御プログラムをROMから読み出して実行するように、一部または全部をソフトウェアで構成してもよい。この場合も、制御プログラムは、ROMに格納されているが、これに限らず、制御プログラムが記憶された記憶媒体から、その制御プログラムをRAMに読み込んで実行するようにしてもよい。
【0097】
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【0098】
また、上記実施の形態においては、本発明に係るデータ演算処理装置およびデータ演算処理プログラムを、図1に示すように、ブロックフローティング方式で固定小数点演算を行う場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【0099】
【発明の効果】
以上説明したように、本発明に係る請求項1ないし5記載のデータ演算処理装置によれば、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができるという効果が得られる。
【0100】
さらに、本発明に係る請求項6ないし13記載のデータ演算処理装置によれば、同一のデータグループに属する演算データについては、同一の桁位置でデータの丸め処理を行うことができる。また、第1スケーリング手段では、一定の桁位置でデータの丸め処理を行うことができるので、構成がさほど複雑になることもない。したがって、従来に比して、ブロックフローティング方式において、比較的簡易な構成により、データの丸め処理による演算精度の向上を図ることができるという効果が得られる。
【0101】
一方、本発明に係る請求項14記載のデータ演算処理プログラムによれば、請求項1記載のデータ演算処理装置と同等の効果が得られる。
さらに、本発明に係る請求項15記載のデータ演算処理プログラムによれば、請求項6記載のデータ演算処理装置と同等の効果が得られる。
【図面の簡単な説明】
【図1】本発明に係るデータ演算処理装置の構成を示すブロック図である。
【図2】第2シフタ18の構成を示すブロック図である。
【図3】各積和演算器12で行われる積和演算手順を示す図である。
【図4】本発明を数値例に適用した場合の演算過程を説明するための図である。
【図5】データグループとグループスケールファクタを関連付けて格納する方法の一例である。
【図6】各計算ユニットP〜Pk−1の第2シフタ18と積和演算器12との相互間でデータを転送するための詳細な構成を示すブロック図である。
【図7】ユニットスケールファクタ検出器14およびグループスケールファクタ検出器50の他の構成を示すブロック図である。
【図8】従来のデータ演算処理装置の構成を示すブロック図である。
【図9】データメモリ100における演算単位となるデータのデータ構造を示す図である。
【符号の説明】
10,18 第2シフタ
12 積和演算器
14 ユニットスケールファクタ検出器
16 第1シフタ
50,51 グループスケールファクタ検出器
52 グループスケールファクタレジスタファイル
54 ブロックスケールファクタ検出器
56 ブロックスケールファクタレジスタ
60 桁合わせ用加算器
100 データメモリ100
110 データバス
120 アドレスバス
200 演算部
300 制御部
400 制御ロジック
500 アドレス生成器
110 データバス
120 データアドレスバス
11a レジスタ
11b セレクタ
15a XORアレイ
15 局所ブロックフローティングユニット
21 プライオリティエンコーダ

Claims (15)

  1. 1又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、
    前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  2. 請求項1において、
    前記演算は、所定ビット数のデータに対して行うようになっており、
    前記グループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  3. 請求項2において、
    前記グループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングした各演算データごとに、当該演算データから、その最上位ビットを基準として前記所定ビット数よりも1ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  4. 請求項3において、
    前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に1ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっていることを特徴とするデータ演算処理装置。
  5. 請求項1乃至4のいずれかにおいて、
    前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタと前記ブロックスケールファクタとの差分に基づいてスケーリングを行うようになっていることを特徴とするデータ演算処理装置。
  6. 複数の計算ユニットを備え、1又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理する装置であって、
    前記各計算ユニットは、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第1スケーリング手段と、前記第1スケーリング手段からのデータに対して演算を行う演算手段と、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段と、与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第2スケーリング手段とを有し、
    さらに、データを記憶するための記憶手段と、前記各計算ユニットのスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段と、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段と、データ処理のための制御を行う制御手段とを備え、
    前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各計算ユニットの第2スケーリング手段に与え、前記各計算ユニットの第2スケーリング手段からの演算データを前記記憶手段に格納し、
    前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第1スケーリング手段に与え、
    前記第1スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  7. 請求項6において、
    前記演算手段は、所定ビット数のデータに対して演算を行い、
    前記第1スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  8. 請求項7において、
    前記第1スケーリング手段は、前記スケーリングしたデータから、その最上位ビットを基準として前記所定ビット数よりも1ビット多いビット数のデータを抽出し、抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に基づいて前記データの丸め処理を行うようになっていることを特徴とするデータ演算処理装置。
  9. 請求項8において、
    前記データの丸め処理は、前記抽出したデータのうちその最上位ビットを基準として前記所定ビット数のデータ以外のものの値に1ビットを加算し、その加算結果のうちその最上位ビットを基準として前記所定ビット数のデータを演算対象として出力するようになっていることを特徴とするデータ演算処理装置。
  10. 請求項6乃至9のいずれかにおいて、
    前記グループスケールファクタ及び前記ブロックスケールファクタを記憶するための第2記憶手段を備え、
    前記制御手段は、前記グループスケールファクタ及び前記ブロックスケールファクタを演算データと対応付けて前記第2記憶手段に記憶し、
    前記記憶手段の演算データに対して再度演算を行うときは、対応するグループスケールファクタ及びブロックスケールファクタを前記第2記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各計算ユニットの第1スケーリング手段に振り分け、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各計算ユニットの第1スケーリング手段に与えるようになっていることを特徴とするデータ演算処理装置。
  11. 請求項6乃至10のいずれかにおいて、
    前記スケールファクタ算出手段は、前記演算手段からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっていることを特徴とするデータ演算処理装置。
  12. 請求項11において、
    前記演算手段は、固定小数点演算器であり、
    前記第1スケーリング手段は、与えられたスケールファクタに相当するシフト量で、データに対してビットシフトを行い、
    前記第2スケーリング手段は、与えられた他のスケールファクタに相当するシフト量で、前記演算手段からの演算データに対してビットシフトを行うようになっていることを特徴とするデータ演算処理装置。
  13. 請求項6乃至12のいずれかにおいて、
    前記演算手段は、前記第1スケーリング手段からのデータと所定の係数との積和を演算する積和演算器であることを特徴とするデータ演算処理装置。
  14. 1又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理するコンピュータ実行可能なプログラムであって、
    前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、
    前記スケーリングした演算データに対して再度演算を行うときは、その演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタ及び前記ブロックスケールファクタに基づいてスケーリングを行い、スケーリングしたそれら演算データに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理プログラム。
  15. データを記憶するための記憶手段を有するコンピュータに対して、1又は複数のデータを含んでデータグループを構成し、さらに複数のデータグループを含んでデータブロックを構成し、前記データブロック単位でデータを処理させるプログラムであって、
    与えられたスケールファクタに基づいてデータに対してスケーリングを行う第1スケーリング手段、前記第1スケーリング手段からのデータに対して演算を行う演算手段、前記演算手段からの演算データのスケールファクタを算出するスケールファクタ算出手段、及び与えられた他のスケールファクタに基づいて前記演算手段からの演算データに対してスケーリングを行う第2スケーリング手段として実現される処理を前記各データグループごとに実行させるためのプログラムと、
    前記各データグループに対応するスケールファクタ算出手段で算出したスケールファクタのうち絶対値が最大となる演算データに対応するものをグループスケールファクタとして検出するグループスケールファクタ検出手段、前記グループスケールファクタ検出手段で検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出するブロックスケールファクタ検出手段、及びデータ処理のための制御を行う制御手段として実現される処理を実行させるためのプログラムとを備え、
    前記制御手段は、前記データブロック単位でデータを前記記憶手段から読み出し、前記データブロックの各データグループごとに、前記データグループのデータをそれぞれ前記各データグループに対応する第1スケーリング手段に振り分け、前記グループスケールファクタ検出手段で検出したグループスケールファクタを前記各データグループに対応する第2スケーリング手段に与え、前記各データグループに対応する第2スケーリング手段からの演算データを前記記憶手段に格納し、
    前記記憶手段の演算データに対して再度演算を行うときは、前記データブロックの各データグループごとに、前記データグループの演算データをそれぞれ前記各データグループに対応する第1スケーリング手段に振り分けるとともに、前記データグループのグループスケールファクタと前記ブロックスケールファクタとの差分からなるスケールファクタを前記各データグループに対応する第1スケーリング手段に与え、
    前記第1スケーリング手段は、与えられたスケールファクタに基づいてデータに対してスケーリングを行い、スケーリングしたデータに対してデータの丸め処理を行うようになっていることを特徴とするデータ演算処理プログラム。
JP2001107900A 2001-04-06 2001-04-06 データ演算処理装置及びデータ演算処理プログラム Expired - Fee Related JP3613466B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001107900A JP3613466B2 (ja) 2001-04-06 2001-04-06 データ演算処理装置及びデータ演算処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001107900A JP3613466B2 (ja) 2001-04-06 2001-04-06 データ演算処理装置及びデータ演算処理プログラム

Publications (2)

Publication Number Publication Date
JP2002304288A JP2002304288A (ja) 2002-10-18
JP3613466B2 true JP3613466B2 (ja) 2005-01-26

Family

ID=18960141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001107900A Expired - Fee Related JP3613466B2 (ja) 2001-04-06 2001-04-06 データ演算処理装置及びデータ演算処理プログラム

Country Status (1)

Country Link
JP (1) JP3613466B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2454201A (en) * 2007-10-30 2009-05-06 Advanced Risc Mach Ltd Combined Magnitude Detection and Arithmetic Operation
US10192162B2 (en) * 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor

Also Published As

Publication number Publication date
JP2002304288A (ja) 2002-10-18

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
JP3244506B2 (ja) 小型乗算器
JP3736741B2 (ja) データ演算処理装置
JP3891997B2 (ja) 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器
JPS6044696B2 (ja) 浮動小数点デ−タ処理装置
US5367477A (en) Method and apparatus for performing parallel zero detection in a data processing system
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
JP4883251B1 (ja) 半導体集積回路及び指数算出方法
JP2013210838A (ja) 演算回路及び演算方法
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JPH04291418A (ja) 除算回路の前処理装置
CN116166217A (zh) 执行浮点操作的系统和方法
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113485751A (zh) 执行伽罗瓦域乘法的方法、运算单元和电子装置
JP2009245407A (ja) 複素数の積和演算装置および積和演算方法
US20100030836A1 (en) Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium
JP7140201B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP2664750B2 (ja) 演算装置及び演算処理方法
JP3539077B2 (ja) 並列演算方式による除算方法
JP2010072981A (ja) 複素数の積和演算装置および積和演算方法
JP2508286B2 (ja) 平方根演算装置
JP3522167B2 (ja) 演算処理回路及び演算処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041021

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

LAPS Cancellation because of no payment of annual fees