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

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

Info

Publication number
JP2002318792A
JP2002318792A JP2001125248A JP2001125248A JP2002318792A JP 2002318792 A JP2002318792 A JP 2002318792A JP 2001125248 A JP2001125248 A JP 2001125248A JP 2001125248 A JP2001125248 A JP 2001125248A JP 2002318792 A JP2002318792 A JP 2002318792A
Authority
JP
Japan
Prior art keywords
data
scale factor
group
calculation
block
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.)
Granted
Application number
JP2001125248A
Other languages
English (en)
Other versions
JP3736745B2 (ja
Inventor
Shiro Kobayashi
士朗 小林
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 JP2001125248A priority Critical patent/JP3736745B2/ja
Publication of JP2002318792A publication Critical patent/JP2002318792A/ja
Application granted granted Critical
Publication of JP3736745B2 publication Critical patent/JP3736745B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 ブロックフローティング方式において、オー
バーフローおよび桁落ちによる演算精度の低下を抑制す
ることにより、演算精度の向上を図ることができるデー
タ演算処理装置を提供する。 【解決手段】 差分スケールファクタ検出器50aは、
積和演算器12からの演算データのガードビット領域に
有効なデータがあるときは、そのガードビット領域の有
効なデータのビット数を算出し、これを負値のスケール
ファクタとして第1シフタ24に出力し、ガードビット
領域に有効なデータがないときは、そのデータビット領
域の冗長なデータのビット数を算出し、これを正値のス
ケールファクタとして第1シフタ24に出力する。第1
シフタ24は、負値のスケールファクタが与えられたと
きは、その絶対値に相当するシフト量で演算データに対
して右シフトを行い、正値のスケールファクタが与えら
れたときは、その絶対値に相当するシフト量で演算デー
タに対して左シフトを行う。

Description

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

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 1又は複数のデータを含んでデータグル
    ープを構成し、さらに複数のデータグループを含んでデ
    ータブロックを構成し、前記データブロック単位でデー
    タを処理する装置であって、 前記データグループの各データに対して演算を行い、そ
    れら演算データのうち絶対値が最大となるもののスケー
    ルファクタを相対グループスケールファクタとして検出
    し、検出した相対グループスケールファクタに基づいて
    前記各演算データに対してスケーリングを行う第1次演
    算処理と、 前記第1次演算処理の実行により得られた各演算データ
    に対して再度演算を行い、それら演算データのうち絶対
    値が最大となるもののスケールファクタを前記相対グル
    ープスケールファクタとして検出し、検出した相対グル
    ープスケールファクタに基づいて前記各演算データに対
    してスケーリングを行う第2次演算処理と、 前記第1次演算処理及び前記第2次演算処理の実行時に
    検出した相対グループスケールファクタをその検出順に
    累算し、その累算結果を、その検出に係るデータグルー
    プの絶対グループスケールファクタとして出力する絶対
    グループスケールファクタ出力処理とを実行可能となっ
    ており、 前記第1次演算処理及び前記第2次演算処理の実行によ
    り前記演算データを得ることを、前記データブロックの
    各データグループごとに行い、さらに、前記絶対グルー
    プスケールファクタ出力処理で出力した絶対グループス
    ケールファクタのうち絶対値が最大となる演算データに
    対応するものをブロックスケールファクタとして検出
    し、 前記第1次演算処理及び前記第2次演算処理の実行によ
    り得られた演算データに対して再度演算を行うときは、
    その演算の前に、前記データグループの各演算データに
    対して当該データグループの絶対グループスケールファ
    クタ及び前記ブロックスケールファクタに基づいてスケ
    ーリングを行うようになっており、 一方さらに、前記演算データは、所定ビット数を上限と
    して演算後のデータを保持するデータビット領域に加
    え、演算後のデータが前記所定ビット数を超えてオーバ
    ーフローしたときのそのオーバーフロー分のデータを保
    持するガードビット領域を有し、 前記相対グループスケールファクタの検出は、前記絶対
    値が最大となる演算データのガードビット領域に有効な
    データがあるときは、そのガードビット領域のデータ量
    に応じて正及び負のうち一方の値として検出し、前記絶
    対値が最大となる演算データのガードビット領域に有効
    なデータがないときは、そのデータビット領域のデータ
    量に応じて前記一方とは反対符号の値として検出するこ
    とにより行い、 前記第1次演算処理は、前記相対グループスケールファ
    クタに基づいて前記ガードビット領域及び前記データビ
    ット領域のデータに対してスケーリングを行い、スケー
    リングした演算データのうち前記データビット領域のも
    のの一部又は全部を出力するようになっていることを特
    徴とするデータ演算処理装置。
  2. 【請求項2】 請求項1において、 前記第1次演算処理及び前記第2次演算処理の実行によ
    り得られた演算データに対して再度演算を行うときは、
    その演算の前に、前記データグループの各演算データに
    対して当該データグループの絶対グループスケールファ
    クタと前記ブロックスケールファクタとの差分に基づい
    てスケーリングを行うようになっていることを特徴とす
    るデータ演算処理装置。
  3. 【請求項3】 複数の計算ユニットを備え、1又は複数
    のデータを含んでデータグループを構成し、さらに複数
    のデータグループを含んでデータブロックを構成し、前
    記データブロック単位でデータを処理する装置であっ
    て、 前記各計算ユニットは、与えられたスケールファクタに
    基づいてデータに対してスケーリングを行う第1スケー
    リング手段と、前記第1スケーリング手段からのデータ
    に対して演算を行う演算手段と、前記演算手段からの演
    算データのスケールファクタを算出するスケールファク
    タ算出手段と、与えられた他のスケールファクタに基づ
    いて前記演算手段からの演算データに対してスケーリン
    グを行う第2スケーリング手段とを有し、 さらに、データを記憶するための記憶手段と、前記各計
    算ユニットのスケールファクタ算出手段で算出したスケ
    ールファクタのうち絶対値が最大となる演算データに対
    応するものを相対グループスケールファクタとして検出
    する相対グループスケールファクタ検出手段と、前記相
    対グループスケールファクタ検出手段で検出した相対グ
    ループスケールファクタを累算して絶対グループスケー
    ルファクタを出力する絶対グループスケールファクタ検
    出手段と、前記絶対グループスケールファクタ検出手段
    で出力した絶対グループスケールファクタのうち絶対値
    が最大となる演算データに対応するものをブロックスケ
    ールファクタとして検出するブロックスケールファクタ
    検出手段と、データ処理のための制御を行う制御手段と
    を備え、 前記制御手段は、前記データブロック単位でデータを前
    記記憶手段から読み出し、前記データブロックの各デー
    タグループごとに、そのデータグループのデータをそれ
    ぞれ前記各計算ユニットの第1スケーリング手段に振り
    分け、前記相対グループスケールファクタ検出手段で検
    出した相対グループスケールファクタを前記各計算ユニ
    ットの第2スケーリング手段に与える第1次演算処理
    と、 前記各計算ユニットの第2スケーリング手段からの演算
    データをそれぞれ前記各計算ユニットの演算手段に振り
    分け、前記相対グループスケールファクタ検出手段で検
    出した相対グループスケールファクタを前記各計算ユニ
    ットの第2スケーリング手段に与える第2次演算処理
    と、 前記第1次演算処理又は前記第2次演算処理の終了時に
    前記各計算ユニットの第2スケーリング手段からの演算
    データを前記記憶手段に格納する演算データ格納処理と
    を実行し、 前記第1次演算処理は、前記記憶手段の演算データに対
    して再度演算を行うときは、前記データブロックの各デ
    ータグループごとに、そのデータグループの演算データ
    をそれぞれ前記各計算ユニットの第1スケーリング手段
    に振り分けるとともに、前記データグループの絶対グル
    ープスケールファクタと前記ブロックスケールファクタ
    との差分からなるスケールファクタを前記各計算ユニッ
    トの第1スケーリング手段に与え、 前記絶対グループスケールファクタ検出手段は、前記第
    1次演算処理及び前記第2次演算処理の実行時に前記相
    対グループスケールファクタ検出手段で検出した相対グ
    ループスケールファクタをその検出順に累算し、その累
    算結果を、その検出に係るデータグループの絶対グルー
    プスケールファクタとして出力し、 一方さらに、前記演算手段からの演算データは、所定ビ
    ット数を上限として演算後のデータを保持するデータビ
    ット領域に加え、演算後のデータが前記所定ビット数を
    超えてオーバーフローしたときのそのオーバーフロー分
    のデータを保持するガードビット領域を有し、 前記スケールファクタ算出手段は、前記演算手段からの
    演算データのガードビット領域に有効なデータがあると
    きは、そのガードビット領域のデータ量に応じて正及び
    負のうち一方の値として前記スケールファクタを算出
    し、前記演算手段からの演算データのガードビット領域
    に有効なデータがないときは、そのデータビット領域の
    データ量に応じて前記一方とは反対符号の値として前記
    スケールファクタを算出し、 前記第2スケーリング手段は、与えられた他のスケール
    ファクタに基づいて前記ガードビット領域及び前記デー
    タビット領域のデータに対してスケーリングを行い、ス
    ケーリングした演算データのうち前記データビット領域
    のものの一部又は全部を出力するようになっていること
    を特徴とするデータ演算処理装置。
  4. 【請求項4】 請求項3において、 前記絶対グループスケールファクタ及び前記ブロックス
    ケールファクタを記憶するための第2記憶手段を備え、 前記制御手段は、前記絶対グループスケールファクタ及
    び前記ブロックスケールファクタを前記演算データと対
    応付けて前記第2記憶手段に記憶し、 前記記憶手段の演算データに対して再度演算を行うとき
    は、対応する絶対グループスケールファクタ及びブロッ
    クスケールファクタを前記第2記憶手段から読み出し、
    前記データブロックの各データグループごとに、そのデ
    ータグループの演算データをそれぞれ前記各計算ユニッ
    トの第1スケーリング手段に振り分け、前記データグル
    ープの絶対グループスケールファクタと前記ブロックス
    ケールファクタとの差分からなるスケールファクタを前
    記各計算ユニットの第1スケーリング手段に与えるよう
    になっていることを特徴とするデータ演算処理装置。
  5. 【請求項5】 請求項3及び4のいずれかにおいて、 前記スケールファクタ算出手段は、前記演算手段からの
    演算データのガードビット領域に有効なデータがあると
    きは、そのガードビット領域の有効なデータのビット数
    を算出し、これを正及び負のうち一方の値として出力
    し、前記演算手段からの演算データのガードビット領域
    に有効なデータがないときは、そのデータビット領域の
    冗長なデータのビット数を算出し、これを前記一方とは
    反対符号の値として出力するようになっていることを特
    徴とするデータ演算処理装置。
  6. 【請求項6】 請求項5において、 前記演算手段は、固定小数点演算器であり、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、データに対してビットシフ
    トを行い、 前記第2スケーリング手段は、与えられた他のスケール
    ファクタに相当するシフト量で、前記ガードビット領域
    及び前記データビット領域のデータに対してビットシフ
    トを行い、 前記制御手段は、前記反対符号の値となる相対グループ
    スケールファクタに基づいて前記第2スケーリング手段
    によるビットシフトを行うときは、前記一方の符号の値
    となる相対グループスケールファクタであって一つのデ
    ータブロックについて前記第2スケーリング手段に与え
    たものの総和の絶対値を限度として、前記第2スケーリ
    ング手段に与える相対グループスケールファクタを調整
    するようになっていることを特徴とするデータ演算処理
    装置。
  7. 【請求項7】 請求項3乃至6のいずれかにおいて、 前記演算手段は、前記第1スケーリング手段からのデー
    タと所定の係数との積和を演算する積和演算器であるこ
    とを特徴とするデータ演算処理装置。
  8. 【請求項8】 1又は複数のデータを含んでデータグル
    ープを構成し、さらに複数のデータグループを含んでデ
    ータブロックを構成し、前記データブロック単位でデー
    タを処理するコンピュータ実行可能なプログラムであっ
    て、 前記データグループの各データに対して演算を行い、そ
    れら演算データのうち絶対値が最大となるもののスケー
    ルファクタを相対グループスケールファクタとして検出
    し、検出した相対グループスケールファクタに基づいて
    前記各演算データに対してスケーリングを行う第1次演
    算処理と、 前記第1次演算処理の実行により得られた各演算データ
    に対して再度演算を行い、それら演算データのうち絶対
    値が最大となるもののスケールファクタを前記相対グル
    ープスケールファクタとして検出し、検出した相対グル
    ープスケールファクタに基づいて前記各演算データに対
    してスケーリングを行う第2次演算処理と、 前記第1次演算処理及び前記第2次演算処理の実行時に
    検出した相対グループスケールファクタをその検出順に
    累算し、その累算結果を、その検出に係るデータグルー
    プの絶対グループスケールファクタとして出力する絶対
    グループスケールファクタ出力処理とを実行可能となっ
    ており、 前記第1次演算処理及び前記第2次演算処理の実行によ
    り前記演算データを得ることを、前記データブロックの
    各データグループごとに行い、さらに、前記絶対グルー
    プスケールファクタ出力処理で出力した絶対グループス
    ケールファクタのうち絶対値が最大となる演算データに
    対応するものをブロックスケールファクタとして検出
    し、 前記第1次演算処理及び前記第2次演算処理の実行によ
    り得られた演算データに対して再度演算を行うときは、
    その演算の前に、前記データグループの各演算データに
    対して当該データグループの絶対グループスケールファ
    クタ及び前記ブロックスケールファクタに基づいてスケ
    ーリングを行うようになっており、 一方さらに、前記演算データは、所定ビット数を上限と
    して演算後のデータを保持するデータビット領域に加
    え、演算後のデータが前記所定ビット数を超えてオーバ
    ーフローしたときのそのオーバーフロー分のデータを保
    持するガードビット領域を有し、 前記相対グループスケールファクタの検出は、前記絶対
    値が最大となる演算データのガードビット領域に有効な
    データがあるときは、そのガードビット領域のデータ量
    に応じて正及び負のうち一方の値として検出し、前記絶
    対値が最大となる演算データのガードビット領域に有効
    なデータがないときは、そのデータビット領域のデータ
    量に応じて前記一方とは反対符号の値として検出するこ
    とにより行い、 前記第1次演算処理は、前記相対グループスケールファ
    クタに基づいて前記ガードビット領域及び前記データビ
    ット領域のデータに対してスケーリングを行い、スケー
    リングした演算データのうち前記データビット領域のも
    のの一部又は全部を出力するようになっていることを特
    徴とするデータ演算処理プログラム。
  9. 【請求項9】 1又は複数のデータを含んでデータグル
    ープを構成し、さらに複数のデータグループを含んでデ
    ータブロックを構成し、データを記憶するための記憶手
    段を有するコンピュータに対して、前記データブロック
    単位でデータを処理させるプログラムであって、 与えられたスケールファクタに基づいてデータに対して
    スケーリングを行う第1スケーリング手段、前記第1ス
    ケーリング手段からのデータに対して演算を行う演算手
    段、前記演算手段からの演算データのスケールファクタ
    を算出するスケールファクタ算出手段、及び与えられた
    他のスケールファクタに基づいて前記演算手段からの演
    算データに対してスケーリングを行う第2スケーリング
    手段として実現される処理を前記各データグループごと
    に実行させるためのプログラムと、 前記各データグループに対応するスケールファクタ算出
    手段で算出したスケールファクタのうち絶対値が最大と
    なる演算データに対応するものを相対グループスケール
    ファクタとして検出する相対グループスケールファクタ
    検出手段、前記相対グループスケールファクタ検出手段
    で検出した相対グループスケールファクタを累算して絶
    対グループスケールファクタを出力する絶対グループス
    ケールファクタ検出手段、前記絶対グループスケールフ
    ァクタ検出手段で出力した絶対グループスケールファク
    タのうち絶対値が最大となる演算データに対応するもの
    をブロックスケールファクタとして検出するブロックス
    ケールファクタ検出手段、及びデータ処理のための制御
    を行う制御手段として実現される処理を実行させるため
    のプログラムとを備え、 前記制御手段は、前記データブロック単位でデータを前
    記記憶手段から読み出し、前記データブロックの各デー
    タグループごとに、そのデータグループのデータをそれ
    ぞれ前記各データグループに対応する第1スケーリング
    手段に振り分け、前記相対グループスケールファクタ検
    出手段で検出した相対グループスケールファクタを前記
    各データグループに対応する第2スケーリング手段に与
    える第1次演算処理と、 前記各データグループに対応する第2スケーリング手段
    からの演算データをそれぞれ前記各データグループに対
    応する演算手段に振り分け、前記相対グループスケール
    ファクタ検出手段で検出した相対グループスケールファ
    クタを前記各データグループに対応する第2スケーリン
    グ手段に与える第2次演算処理と、 前記第1次演算処理又は前記第2次演算処理の終了時に
    前記各データグループに対応する第2スケーリング手段
    からの演算データを前記記憶手段に格納する演算データ
    格納処理とを実行し、 前記第1次演算処理は、前記記憶手段の演算データに対
    して再度演算を行うときは、前記データブロックの各デ
    ータグループごとに、そのデータグループの演算データ
    をそれぞれ前記各データグループに対応する第1スケー
    リング手段に振り分けるとともに、前記データグループ
    の絶対グループスケールファクタと前記ブロックスケー
    ルファクタとの差分からなるスケールファクタを前記各
    データグループに対応する第1スケーリング手段に与
    え、 前記絶対グループスケールファクタ検出手段は、前記第
    1次演算処理及び前記第2次演算処理の実行中に前記相
    対グループスケールファクタ検出手段で検出した相対グ
    ループスケールファクタをその検出順に累算し、その累
    算結果を、その検出に係るデータグループの絶対グルー
    プスケールファクタとして出力し、 一方さらに、前記演算手段からの演算データは、所定ビ
    ット数を上限として演算後のデータを保持するデータビ
    ット領域に加え、演算後のデータが前記所定ビット数を
    超えてオーバーフローしたときのそのオーバーフロー分
    のデータを保持するガードビット領域を有し、 前記スケールファクタ算出手段は、前記演算手段からの
    演算データのガードビット領域に有効なデータがあると
    きは、そのガードビット領域のデータ量に応じて前記ス
    ケールファクタを正及び負のうち一方の値として算出
    し、前記演算手段からの演算データのガードビット領域
    に有効なデータがないときは、そのデータビット領域の
    データ量に応じて前記スケールファクタを前記一方とは
    反対符号の値として算出し、 前記第2スケーリング手段は、与えられた他のスケール
    ファクタに基づいて前記ガードビット領域及び前記デー
    タビット領域のデータに対してスケーリングを行い、ス
    ケーリングした演算データのうち前記データビット領域
    のものの一部又は全部を出力するようになっていること
    を特徴とするデータ演算処理プログラム。
JP2001125248A 2001-04-24 2001-04-24 データ演算処理装置及びデータ演算処理プログラム Expired - Fee Related JP3736745B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2002318792A true JP2002318792A (ja) 2002-10-31
JP3736745B2 JP3736745B2 (ja) 2006-01-18

Family

ID=18974499

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3736745B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501310A (ja) * 2007-10-30 2011-01-06 アーム・リミテッド 算術演算のためにマグニチュード検出を実行するための装置および方法
WO2011161859A1 (ja) * 2010-06-22 2011-12-29 日本電気株式会社 半導体集積回路及び指数算出方法
WO2014030257A1 (ja) * 2012-08-24 2014-02-27 富士通株式会社 演算処理装置および演算処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501310A (ja) * 2007-10-30 2011-01-06 アーム・リミテッド 算術演算のためにマグニチュード検出を実行するための装置および方法
WO2011161859A1 (ja) * 2010-06-22 2011-12-29 日本電気株式会社 半導体集積回路及び指数算出方法
JP4883251B1 (ja) * 2010-06-22 2012-02-22 日本電気株式会社 半導体集積回路及び指数算出方法
CN102378960A (zh) * 2010-06-22 2012-03-14 日本电气株式会社 半导体集成电路和指数计算方法
US8862647B2 (en) 2010-06-22 2014-10-14 Nec Corporation Semiconductor integrated circuit and exponent calculation method
EP2431865A4 (en) * 2010-06-22 2017-04-19 Nec Corporation Semiconductor integrated circuit and index calculation method
WO2014030257A1 (ja) * 2012-08-24 2014-02-27 富士通株式会社 演算処理装置および演算処理方法

Also Published As

Publication number Publication date
JP3736745B2 (ja) 2006-01-18

Similar Documents

Publication Publication Date Title
JP2651267B2 (ja) 演算処理装置及び演算処理方法
JP3736741B2 (ja) データ演算処理装置
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
JP3313560B2 (ja) 浮動小数点演算処理装置
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
CN113138749A (zh) 基于cordic算法的三角函数计算装置及方法
JPH07234778A (ja) 演算回路
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
JPH0346024A (ja) 浮動小数点演算器
US8041927B2 (en) Processor apparatus and method of processing multiple data by single instructions
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
CN113126954A (zh) 浮点数乘法计算的方法、装置和算术逻辑单元
US20100030836A1 (en) Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium
JP4613992B2 (ja) Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
KR100309520B1 (ko) 라운드오프기능을갖는승산방법및승산회로
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3773033B2 (ja) データ演算処理装置及びデータ演算処理プログラム
WO2023189191A1 (ja) 固定小数点積和演算装置
JP2006155102A (ja) 演算処理装置
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JPH113210A (ja) 3入力比較器、並びにこれを用いた飽和演算装置およびその演算方法
KR20240029249A (ko) 연산 에러를 정정할 수 있는 곱셈 및 누산 연산기
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: 20050929

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: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051020

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081104

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131104

Year of fee payment: 8

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