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

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

Info

Publication number
JP2002304288A
JP2002304288A JP2001107900A JP2001107900A JP2002304288A JP 2002304288 A JP2002304288 A JP 2002304288A JP 2001107900 A JP2001107900 A JP 2001107900A JP 2001107900 A JP2001107900 A JP 2001107900A JP 2002304288 A JP2002304288 A JP 2002304288A
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.)
Granted
Application number
JP2001107900A
Other languages
English (en)
Other versions
JP3613466B2 (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 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

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 ブロックフローティング方式において、簡易
な構成により、データの丸め処理による演算精度の向上
を図ることができるデータ演算処理装置を提供する。 【解決手段】 データグループの各データに対して演算
を行い、それら演算データを代表する最小のスケールフ
ァクタをグループスケールファクタ(GSF)として検
出し、検出したGSFに基づいて各演算データに対して
スケーリングを行うこれらの処理を、データブロックの
各データグループごとに行い、さらに、検出したGSF
のうち最小のものをブロックスケールファクタ(BS
F)として検出し、演算データに対して再度演算を行う
ときは、その演算の前に、第2シフタ18により、デー
タグループの各演算データに対して当該データグループ
のGSFおよびBSFに基づいてスケーリングを行い、
スケーリングしたそれら演算データに対してデータの丸
め処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1または複数のデ
ータを含んでデータグループを構成し、さらに複数のデ
ータグループを含んでデータブロックを構成し、データ
ブロック単位でデータを処理する装置に係り、特に、ブ
ロックフローティング方式で固定小数点演算を行うブロ
ックフローティング型のデジタル・シグナル・プロセッ
サ(以下、単にDSPという。)に関する。
【0002】
【従来の技術】デジタル信号処理における数値表現方法
として、固定小数点表現方法および浮動小数点表現方法
がある。浮動小数点表現方法では、各データが指数部と
仮数部をもち、これにより、高い精度と広いダイナミッ
クレンジが確保可能という利点がある反面、複雑で大規
模なハードウェアが必要となるという問題がある。一
方、固定小数点表現方法では、ハードウェアが簡単で回
路規模も小さくてすむが、演算精度の低下が問題とな
る。そこで、これらの問題への対策法として提案された
のがブロックフローティングという方式である。この方
式では、所定数(例えば、m個)のデータを一つのデー
タブロックとし、データブロックに対し1個のブロック
スケールファクタをもたせ、データブロックのm個のデ
ータに対し共通のスケーリング(以下、ブロック正規化
という。)を行うことにより、限られたダイナミックレ
ンジを有効に用いて精度の劣化を抑える。
【0003】ブロックフローティングを効率良く実現す
るために、例えば、特許協力条約に基づいて公開された
国際出願(国際公開番号WO99/66423)には、図8に示す
ようなデータ演算処理装置が提案されている。図8は、
従来のデータ演算処理装置の構成を示すブロック図であ
る。このデータ演算処理装置は、図8に示すように、デ
ータブロック単位でデータを記憶するためのデータメモ
リ100と、データメモリ100のデータに対して積和
演算を行う演算部200と、ブロックフローティングに
必要な正規化を行うための制御部300と、これらの制
御を行う制御ロジック400と、アドレス生成器500
とで構成されている。データメモリ100、演算部20
0、制御部300および制御ロジック400は、データ
バス110で相互にかつデータ授受可能に接続されてお
り、データメモリ100、制御部300およびアドレス
生成器500は、データアドレスバス120で相互にか
つデータ授受可能に接続されている。
【0004】データメモリ100は、図示しない外部か
らデータを入力し、図9に示すように、演算部200の
演算対象となるデータとして、入力したデータをデータ
ブロック単位で格納するようになっている。図9は、デ
ータメモリ100における演算単位となるデータのデー
タ構造を示す図である。データメモリ100では、図9
に示すように、データが計算ユニットの数に相当する個
数(この場合、k個)組合わさってデータグループとし
て格納され、さらに、データグループが複数組合わさっ
てデータブロックとして格納される。すなわち、データ
ブロックは、複数のデータグループを含んで構成され、
データグループは、計算ユニットの数に相当する個数の
データを含んで構成されている。
【0005】演算部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とで構成されている。
【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は、
各計算ユニットP0〜Pk-1のユニットスケールファクタ
検出器14で算出したスケールファクタうち最小のもの
をグループスケールファクタとして検出し、制御ロジッ
ク400の制御により、検出したグループスケールファ
クタをグループスケールファクタレジスタファイル52
および各計算ユニットP0〜Pk-1の第1シフタ16に出
力するようになっている。例えば、各計算ユニットP0
〜Pk-1(例えば、k=3)のユニットスケールファク
タ検出器14からスケールファクタとして「1」、
「2」、「3」を入力した場合、そのうちの最小値であ
る「1」をそのグループスケールファクタとして検出す
る。
【0010】グループスケールファクタレジスタファイ
ル52は、グループスケールファクタ検出器50で検出
したグループスケールファクタをそれぞれ一時的に格納
し、制御ロジック400の制御により、データメモリ1
00または桁合わせ用加算器60にグループスケールフ
ァクタを出力するようになっている。ブロックスケール
ファクタ検出器54は、グループスケールファクタ検出
器50で検出したグループスケールファクタのうち最小
のものをブロックスケールファクタとして検出するよう
になっている。例えば、あるデータブロックのグループ
スケールファクタが「3」、「4」、「5」として検出
された場合、そのうちの最小値である「3」をそのブロ
ックスケールファクタとして検出する。
【0011】ブロックスケールファクタレジスタ56
は、ブロックスケールファクタ検出器54で検出したブ
ロックスケールファクタを一時的に格納し、制御ロジッ
ク400の制御により、データメモリ100または桁合
わせ用加算器60にグループスケールファクタを出力す
るようになっている。桁合わせ用加算器60は、グルー
プスケールファクタレジスタファイル52から出力され
たグループスケールファクタと、ブロックスケールファ
クタレジスタ56から出力されたブロックスケールファ
クタとを入力し、グループスケールファクタからブロッ
クスケールファクタを減算してその差分を計算し、制御
ロジック400の制御により、その差分からなるスケー
ルファクタを各計算ユニットP 0〜Pk-1の第2シフタ1
0に出力するようになっている。
【0012】制御ロジック400は、データメモリ10
0のデータに対して初めて演算を行うときは、次の制御
処理を実行するようになっている。まず、データブロッ
ク単位でデータをデータメモリ100から読み出し、デ
ータブロックの各データグループごとに、データグルー
プのデータをそれぞれデータバス110経由で各計算ユ
ニットP0〜Pk-1の第2シフタ10に振り分ける。
【0013】そして、グループスケールファクタ検出器
50で検出したグループスケールファクタを各計算ユニ
ットP0〜Pk-1の第1シフタ16に与え、各計算ユニッ
トP 0〜Pk-1の第1シフタ16からの演算データをデー
タバス110経由でデータメモリ100に格納する。ま
た、制御ロジック400は、データメモリ100のデー
タに対して再度演算を行うときは、次の制御処理を実行
するようになっている。
【0014】まず、データブロック単位で演算データを
データメモリ100から読み出し、データブロックの各
データグループごとに、データグループの演算データを
それぞれデータバス110経由で各計算ユニットP0
k-1の第2シフタ10に与える。これと同時に、各計
算ユニットP0〜Pk-1の第2シフタ10に与えたデータ
のグループスケールファクタおよびブロックスケールフ
ァクタがグループスケールファクタレジスタファイル5
2およびブロックスケールファクタレジスタ56に格納
されているときは、ブロックスケールファクタレジスタ
56からブロックスケールファクタを読み出して桁合わ
せ用加算器60に与え、グループスケールファクタレジ
スタファイル52からグループスケールファクタを順次
読み出して桁合わせ用加算器60に与え、桁合わせ用加
算器60により各グループスケールファクタとブロック
スケールファクタとの差分を計算し、その差分からなる
スケールファクタを各計算ユニットP0〜Pk-1の第2シ
フタ10に与える。
【0015】そして、グループスケールファクタ検出器
50で検出したグループスケールファクタを各計算ユニ
ットP0〜Pk-1の第1シフタ16に与え、各計算ユニッ
トP 0〜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個の
計算ユニットP0〜Pk-1で構成されている。各計算ユニ
ットP0〜Pk-1には、一つのデータグループのデータが
それぞれ振り分けられ、各計算ユニットP0〜Pk-1は、
データグループ単位でデータを並列処理する。各計算ユ
ニットP0〜Pk-1は、与えられたスケールファクタに基
づいてデータに対してスケーリングを行う第2シフタ1
8と、第2シフタ18からのデータに対して積和演算を
行う積和演算器12と、積和演算器12からの演算デー
タのスケールファクタを算出するユニットスケールファ
クタ検出器14と、与えられたスケールファクタに基づ
いて積和演算器12からの演算データに対してスケーリ
ングを行う第1シフタ16とで構成されている。
【0057】ユニットスケールファクタ検出器14は、
積和演算器12からの演算データの冗長なビット数を算
出し、これをスケールファクタとして算出するようにな
っている。ここで、スケールファクタは、データをビッ
トシフトするときのシフト量であり、シフトするビット
数を示す。以下、グループスケールファクタおよびブロ
ックスケールファクタについても同様である。
【0058】第2シフタ18は、与えられたスケールフ
ァクタに相当するシフト量で、与えられたデータに対し
て右シフトを行うようになっている。第1シフタ16
は、与えられたスケールファクタに相当するシフト量
で、積和演算器12からの演算データに対して左シフト
を行うようになっている。また、第1シフタ16からの
演算データは、さらに次のブロック処理に備えるため、
データメモリ100に格納されるが、データメモリ10
0のデータのビット数は、第1シフタ16からの演算デ
ータのそれよりも少ないため、第1シフタ16は、左シ
フトした演算データのうち最上位ビットを基準としてデ
ータメモリ100のデータのビット数分を取り、それよ
りも下位のビットを単純に切り捨て、データメモリ10
0のデータのビット数の演算データを出力するようにな
っている。
【0059】制御部300は、ユニットスケールファク
タ検出器14で算出したスケールファクタからグループ
スケールファクタを検出するグループスケールファクタ
検出器50と、グループスケールファクタを格納するグ
ループスケールファクタレジスタファイル52と、グル
ープスケールファクタからブロックスケールファクタを
検出するブロックスケールファクタ検出器54と、ブロ
ックスケールファクタを格納するブロックスケールファ
クタレジスタ56と、グループスケールファクタとブロ
ックスケールファクタの差分を計算する桁合わせ用加算
器60とで構成されている。
【0060】グループスケールファクタ検出器50は、
各計算ユニットP0〜Pk-1のユニットスケールファクタ
検出器14で算出したスケールファクタうち最小のもの
をグループスケールファクタとして検出し、制御ロジッ
ク400の制御により、検出したグループスケールファ
クタをグループスケールファクタレジスタファイル52
および各計算ユニットP0〜Pk-1の第1シフタ16に出
力するようになっている。例えば、各計算ユニットP0
〜Pk-1(例えば、k=3)のユニットスケールファク
タ検出器14からスケールファクタとして「1」、
「2」、「3」を入力した場合、そのうちの最小値であ
る「1」をそのグループスケールファクタとして検出す
る。
【0061】グループスケールファクタレジスタファイ
ル52は、グループスケールファクタ検出器50で検出
したグループスケールファクタをそれぞれ一時的に格納
し、制御ロジック400の制御により、データメモリ1
00または桁合わせ用加算器60にグループスケールフ
ァクタを出力するようになっている。ブロックスケール
ファクタ検出器54は、グループスケールファクタ検出
器50で検出したグループスケールファクタのうち最小
のものをブロックスケールファクタとして検出するよう
になっている。例えば、あるデータブロックのグループ
スケールファクタが「3」、「4」、「5」として検出
された場合、そのうちの最小値である「3」をそのブロ
ックスケールファクタとして検出する。
【0062】ブロックスケールファクタレジスタ56
は、ブロックスケールファクタ検出器54で検出したブ
ロックスケールファクタを一時的に格納し、制御ロジッ
ク400の制御により、データメモリ100または桁合
わせ用加算器60にグループスケールファクタを出力す
るようになっている。桁合わせ用加算器60は、グルー
プスケールファクタレジスタファイル52から出力され
たグループスケールファクタと、ブロックスケールファ
クタレジスタ56から出力されたブロックスケールファ
クタとを入力し、グループスケールファクタからブロッ
クスケールファクタを減算してその差分を計算し、制御
ロジック400の制御により、その差分からなるスケー
ルファクタを各計算ユニットP 0〜Pk-1の第2シフタ1
8に出力するようになっている。
【0063】制御ロジック400は、データメモリ10
0のデータに対して初めて演算を行うときは、次の制御
処理を実行するようになっている。まず、データブロッ
ク単位でデータをデータメモリ100から読み出し、デ
ータブロックの各データグループごとに、データグルー
プのデータをそれぞれデータバス110経由で各計算ユ
ニットP0〜Pk-1の第2シフタ18に振り分ける。
【0064】そして、グループスケールファクタ検出器
50で検出したグループスケールファクタを各計算ユニ
ットP0〜Pk-1の第1シフタ16に与え、各計算ユニッ
トP 0〜Pk-1の第1シフタ16からの演算データをデー
タバス110経由でデータメモリ100に格納する。ま
た、制御ロジック400は、データメモリ100のデー
タに対して再度演算を行うときは、次の制御処理を実行
するようになっている。
【0065】まず、データブロック単位で演算データを
データメモリ100から読み出し、データブロックの各
データグループごとに、データグループの演算データを
それぞれデータバス110経由で各計算ユニットP0
k-1の第2シフタ18に与える。これと同時に、各計
算ユニットP0〜Pk-1の第2シフタ18に与えたデータ
のグループスケールファクタおよびブロックスケールフ
ァクタがグループスケールファクタレジスタファイル5
2およびブロックスケールファクタレジスタ56に格納
されているときは、ブロックスケールファクタレジスタ
56からブロックスケールファクタを読み出して桁合わ
せ用加算器60に与え、グループスケールファクタレジ
スタファイル52からグループスケールファクタを順次
読み出して桁合わせ用加算器60に与え、桁合わせ用加
算器60により各グループスケールファクタとブロック
スケールファクタとの差分を計算し、その差分からなる
スケールファクタを各計算ユニットP0〜Pk-1の第2シ
フタ18に与える。
【0066】そして、グループスケールファクタ検出器
50で検出したグループスケールファクタを各計算ユニ
ットP0〜Pk-1の第1シフタ16に与え、各計算ユニッ
トP 0〜Pk-1の第1シフタ16からの演算データをデー
タバス110経由でデータメモリ100に格納する。な
お、各計算ユニットP0〜Pk-1の第2シフタ18に与え
たデータのグループスケールファクタおよびブロックス
ケールファクタがグループスケールファクタレジスタフ
ァイル52およびブロックスケールファクタレジスタ5
6に格納されていないときは、各計算ユニットP0〜P
k-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は、右シフタ18
aからn+1ビットのデータを入力し、入力したn+1
ビットのデータに、n+1ビットのデータのうち最下位
ビットのみを「1」にしたデータ丸め処理用加算データ
を加算し、その加算結果から、その最上位ビットを基準
としてnビットのデータを抽出して積和演算器12に出
力するようになっている。例えば、「01010101
1」の9ビットのデータを入力した場合は、データ丸め
処理用加算データ「000000001」を入力データ
に加算し、積和演算器12には、その加算結果である
「010101100」のうち上位8ビットのデータ
「01010110」が出力されることになる。
【0070】次に、上記実施の形態の動作を図3ないし
図5を参照しながら説明する。本例では、積和演算器1
2は、初回の演算を、下式(1)により行い、下式
(1)により演算した結果に対する2回目以降の演算
を、下式(2)により行うものとする。下式(1)にお
いて、A(k)は、係数データであり、X(n−k)
は、第2シフタ18からのデータである。下式(2)に
おいて、B(l)は、係数データであり、Y(m−l)
は、下式(1)により演算した結果であって第2シフタ
18からのデータである。
【0071】
【数1】
【0072】
【数2】
【0073】また、データメモリ100からのデータを
8ビット、積和演算器12の出力を16ビットとする。
さらに、演算部200が4つの計算ユニットから構成さ
れるものとし、データブロックは、2つのデータグルー
プを含んで構成され、データグループは、計算ユニット
の数に相当する4つのデータを含んで構成されているも
のとする。また、あらかじめ定められた係数データA
(0)〜A(3)、B(0),B(1)は、必要な時に
はいつでも利用可能であると仮定する。これらの係数デ
ータをどのように供給するかは、本発明の本質とは直接
的ではないので特に説明しないが、例えば、必要に応じ
てデータメモリ100から読み出すなどして各積和演算
器12に与えることができる。
【0074】まず、本発明に係るデータ演算処理装置に
おいて、下式(1)によりデータを並列処理する手順を
図3を参照しながら説明する。図3は、各積和演算器1
2で行われる積和演算手順を示す図である。上式(1)
によりデータメモリ100のデータに対して演算を行う
ときは、図3に示すように、まず、サイクル1で、デー
タX(0)〜X(3)を含む1番目のデータグループが
データメモリ100から読み出され、データX(0)〜
X(3)がそれぞれデータバス110経由で各計算ユニ
ットP0〜P3の第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)は、各計算ユニットP0
〜P3間をハードウェア手段を通じて転送されるものと
する。
【0076】演算データY(0)〜Y(3)は、その
後、各ユニットスケールファクタ検出器14に入力され
る。各ユニットスケールファクタ検出器14では、積和
演算器12からの演算データの冗長なビット数が算出さ
れ、これがスケールファクタとして算出される。例え
ば、データ「00001100」は、最上位ビットから
「0」が4つ連続するため、冗長なビット数が「4」と
なり、スケールファクタは「4」となる。
【0077】各ユニットスケールファクタ検出器14で
算出された複数のスケールファクタは、次に、グループ
スケールファクタ検出器50に入力され、ここで複数の
スケールファクタのうち最小のものがグループスケール
ファクタとして検出される。このグループスケールファ
クタは、さらに各計算ユニットP0〜P3の第1シフタ1
6に入力される。これと同時に、各積和演算器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)をデータメモリ10
0に格納する間に、グループスケールファクタもグルー
プスケールファクタレジスタファイル52に入力され
る。このグループスケールファクタは、グループスケー
ルファクタレジスタファイル52内に、対応するデータ
グループと関連付けられて格納される。例えば、データ
グループは、データメモリ100に格納する場合、ある
一つのメモリアドレスを取り、そのデータグループのす
べてのデータは、一つのメモリアドレスで同時にアクセ
スされるとして、演算データをデータメモリ100に格
納するのに用いられるのと同じアドレスで特定されるレ
ジスタに格納する。あるいは、図5に示すように、デー
タグループが格納されているデータメモリ100のアド
レスと、グループスケールファクタが格納されているグ
ループスケールファクタレジスタファイル52のアドレ
スとの対応表を、データメモリ100の一部に作成して
これらのアドレスを管理してもよい。
【0079】グループスケールファクタは、また、ブロ
ックスケールファクタ検出器54にも入力され、そこ
で、複数のグループスケールファクタのうち最小のもの
がブロックスケールファクタとして検出される。あるデ
ータブロックの最初のデータグループの演算が終わった
時点では、今演算されたばかりのグループスケールファ
クタ、すなわち、図4の例では「2」が初期値として、
ブロックスケールファクタ検出器54内のレジスタ(図
1には示されていない)に格納される。
【0080】次に、サイクル6で、データX(4)〜X
(7)を含む2番目のデータグループがデータメモリ1
00から読み出され、データX(4)〜X(7)がそれ
ぞれデータバス110経由で各計算ユニットP0〜P3
第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内の
レジスタの内容をブロックスケールファクタレジスタ5
6に転送しておく。上式(2)によりデータメモリ10
0の演算データに対して再度演算を行うときは、演算デ
ータY(0)〜Y(3)を含む1番目のデータグループ
がデータメモリ100から読み出され、演算データY
(0)〜Y(3)がそれぞれデータバス110経由で各
計算ユニットP0〜P3の第2シフタ18に振り分けられ
る。これと同時に、対応するグループスケールファク
タ、すなわち、本例においては「2」が、アドレスバス
120経由で与えられたアドレス情報により選択され、
グループスケールファクタレジスタファイル52から読
み出される。各第2シフタ18における右シフト量は、
現在のグループスケールファクタとブロックスケールフ
ァクタの差分、すなわち、本例においては、2−1=1
として与えられる。
【0083】第2シフタ18での動作は、各第2シフタ
18でいずれも同様なので、計算ユニットP0の第2シ
フタ18を例にとって説明すると、計算ユニットP0
第2シフタ18では、スケールファクタとして「1」が
与えられると、右シフタ18aにより、入力された演算
データY(0)に対して1ビット右シフトが行われ、シ
フトされた演算データY(0)のうち上位9ビットのデ
ータ(この場合、全ビットのデータ)がデータ丸め処理
部18bに出力される。そして、データ丸め処理部18
bにより、入力された9ビットの演算データY(0)
に、データ丸め処理用加算データ「00000000
1」が加算され、その加算結果のうち上位8ビットのデ
ータが積和演算器12に出力される。これにより、演算
データY(0)に対してデータの丸め処理が行われる。
なお、演算データY(0)〜Y(3)に対して、この後
適用される演算処理は、上式(1)について説明した演
算処理とまったく同様である。
【0084】次に、演算データY(4)〜Y(7)を含
む2番目のデータグループがデータメモリ100から読
み出され、演算データY(4)〜Y(7)がそれぞれデ
ータバス110経由で各計算ユニットP0〜P3の第2シ
フタ18に振り分けられる。このデータグループに対す
るグループスケールファクタは、図4に示すように、
「1」である。結果として、このデータグループのすべ
ての演算データは、1−1=0、すなわち第2シフタ1
8でシフトされずに出力される。
【0085】この段階で、すべての演算データY(0)
〜Y(7)が、データブロックの最大値の小数点位置に
桁合わせされ、その結果、後続の積和演算において、固
定小数点演算を行うことが可能となる。このようにし
て、本実施の形態では、データグループの各データに対
して演算を行い、それら演算データを代表する最小のス
ケールファクタをグループスケールファクタとして検出
し、検出したグループスケールファクタに基づいて各演
算データに対してスケーリングを行うこれら一連の処理
を、データブロックの各データグループごとに行い、さ
らに、検出したグループスケールファクタのうち最小の
ものをブロックスケールファクタとして検出し、スケー
リングした演算データに対して再度演算を行うときは、
その演算の前に、第2シフタ18により、データグルー
プの各演算データに対して当該データグループのグルー
プスケールファクタおよびブロックスケールファクタに
基づいてスケーリングを行い、スケーリングしたそれら
演算データに対してデータの丸め処理を行うようになっ
ている。
【0086】これにより、同一のデータグループに属す
る演算データについては、同一の桁位置でデータの丸め
処理を行うことができる。また、一定の桁位置でデータ
の丸め処理を行うことができるので、構成がさほど複雑
になることもない。したがって、従来に比して、ブロッ
クフローティング方式において、比較的簡易な構成によ
り、データの丸め処理による演算精度の向上を図ること
ができる。
【0087】上記実施の形態において、データメモリ1
00は、請求項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】なお、上記実施の形態においては、各計算
ユニットP0〜Pk-1の第2シフタ18と積和演算器12
との相互間で、ハードウェア手段を通じてデータを転送
することについて説明したが、具体的には、図6に示す
構成を採用することができる。図6は、各計算ユニット
0〜Pk-1の第2シフタ18と積和演算器12との相互
間でデータを転送するための詳細な構成を示すブロック
図である。
【0090】図6において、計算ユニットP0は、第2
シフタ18からのデータを保持するレジスタ11aを備
えている。計算ユニットP1,P2は、前段の計算ユニッ
トP 0,P1のレジスタ11aからのデータを保持するレ
ジスタ11aと、前段の計算ユニットP0,P1のレジス
タ11aからのデータおよび第2シフタ18からのデー
タのいずれかを選択して積和演算器12に出力するセレ
クタ11bとを備えている。計算ユニットP3は、前段
の計算ユニットP2のレジスタ11aからのデータおよ
び第2シフタ18からのデータのいずれかを選択して積
和演算器12に出力するセレクタ11bを備えている。
【0091】また、上記実施の形態においては、ユニッ
トスケールファクタ検出器14と、グループスケールフ
ァクタ検出器50とで構成したが、これに限らず、例え
ば、図7に示す構成を採用することができる。図7は、
ユニットスケールファクタ検出器14およびグループス
ケールファクタ検出器50の他の構成を示すブロック図
である。
【0092】図7において、各計算ユニットP0〜P
4は、ユニットスケールファクタ検出器14に代えて、
XORアレイ15aからなる局所ブロックフローティン
グユニット15で構成されている。そして、プライオリ
ティエンコーダ21からなるグループスケールファクタ
検出器51と、各計算ユニットP0〜P4の局所ブロック
フローティングユニット15とグループスケールファク
タ検出器51とを接続するワイヤードORバスとを備え
て構成されている。
【0093】局所ブロックフローティングユニット15
は、積和演算器12からの演算データを入力し、その演
算データの隣り合うビットに対して排他的論理和演算を
行って出力するようになっている。例えば、4ビットの
演算データを入力した場合、最上位の4番目のビットお
よび3番目のビットに対して排他的論理和演算を行った
ものを出力データの3番目のビットとし、同じ要領で、
3番目および2番目の演算結果を出力データの2番目の
ビットとし、2番目および1番目の演算結果を出力デー
タの1番目のビットとし、そして、最上位のビットを出
力データの最上位のビットとして出力する。
【0094】これにより、各計算ユニットP0〜P4の積
和演算器12からの演算データのスケールファクタを算
出し、それらスケールファクタからグループスケールフ
ァクタを算出しなくても、各計算ユニットP0〜P4の積
和演算器12からの演算データから直接グループスケー
ルファクタを検出することもできる。また、上記実施の
形態においては、発明の理解を容易にするために、デー
タグループは、計算ユニットP0〜Pk-1の数に相当する
個数のデータを含んで構成したが、計算ユニットP0
k-1の数にかかわらず、これよりも少ない個数のデー
タを含んで構成してもよいし、これよりも多い個数のデ
ータを含んで構成してもよい。
【0095】また、上記実施の形態においては、制御ロ
ジック400を、内部のロジックに従って各部の制御を
行うように構成したが、これに限らず、制御ロジック4
00に代えて、CPU、RAMおよびROMをバス接続
してデータ演算処理部を構成し、データ演算処理部は、
CPUにより、上記の制御手順を示したプログラムをR
OMから読み出して実行するように構成してもよい。こ
の場合、上記の制御手順を示したプログラムは、ROM
に格納されているが、これに限らず、上記の制御手順を
示したプログラムが記憶された記憶媒体から、そのプロ
グラムをRAMに読み込んで実行するようにしてもよ
い。
【0096】また、上記実施の形態においては、本発明
に係るデータ演算処理装置を、データメモリ100と、
演算部200と、制御部300と、制御ロジック400
と、アドレス生成器500とを備えたハードウェアで構
成したが、これに限らず、例えば、CPU、RAMおよ
びROMをバス接続して構成し、CPUにより、各部の
機能を実現するための制御プログラムをROMから読み
出して実行するように、一部または全部をソフトウェア
で構成してもよい。この場合も、制御プログラムは、R
OMに格納されているが、これに限らず、制御プログラ
ムが記憶された記憶媒体から、その制御プログラムをR
AMに読み込んで実行するようにしてもよい。
【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】各計算ユニットP0〜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】 1又は複数のデータを含んでデータグル
    ープを構成し、さらに複数のデータグループを含んでデ
    ータブロックを構成し、前記データブロック単位でデー
    タを処理する装置であって、 前記データグループの各データに対して演算を行い、そ
    れら演算データのうち絶対値が最大となるもののスケー
    ルファクタをグループスケールファクタとして検出し、
    検出したグループスケールファクタに基づいて前記各演
    算データに対してスケーリングを行うこれら一連の処理
    を、前記データブロックの各データグループごとに行
    い、さらに、検出したグループスケールファクタのうち
    絶対値が最大となる演算データに対応するものをブロッ
    クスケールファクタとして検出し、前記スケーリングし
    た演算データに対して再度演算を行うときは、その演算
    の前に、前記データグループの各演算データに対して当
    該データグループのグループスケールファクタ及び前記
    ブロックスケールファクタに基づいてスケーリングを行
    い、スケーリングしたそれら演算データに対してデータ
    の丸め処理を行うようになっていることを特徴とするデ
    ータ演算処理装置。
  2. 【請求項2】 請求項1において、 前記演算は、所定ビット数のデータに対して行うように
    なっており、 前記グループスケールファクタ及び前記ブロックスケー
    ルファクタに基づいてスケーリングした各演算データご
    とに、当該演算データから、その最上位ビットを基準と
    して前記所定ビット数よりも多いビット数のデータを抽
    出し、抽出したデータのうちその最上位ビットを基準と
    して前記所定ビット数のデータ以外のものの値に基づい
    て前記データの丸め処理を行うようになっていることを
    特徴とするデータ演算処理装置。
  3. 【請求項3】 請求項2において、 前記グループスケールファクタ及び前記ブロックスケー
    ルファクタに基づいてスケーリングした各演算データご
    とに、当該演算データから、その最上位ビットを基準と
    して前記所定ビット数よりも1ビット多いビット数のデ
    ータを抽出し、抽出したデータのうちその最上位ビット
    を基準として前記所定ビット数のデータ以外のものの値
    に基づいて前記データの丸め処理を行うようになってい
    ることを特徴とするデータ演算処理装置。
  4. 【請求項4】 請求項3において、 前記データの丸め処理は、前記抽出したデータのうちそ
    の最上位ビットを基準として前記所定ビット数のデータ
    以外のものの値に1ビットを加算し、その加算結果のう
    ちその最上位ビットを基準として前記所定ビット数のデ
    ータを演算対象として出力するようになっていることを
    特徴とするデータ演算処理装置。
  5. 【請求項5】 請求項1乃至4のいずれかにおいて、 前記スケーリングした演算データに対して再度演算を行
    うときは、その演算の前に、前記データグループの各演
    算データに対して当該データグループのグループスケー
    ルファクタと前記ブロックスケールファクタとの差分に
    基づいてスケーリングを行うようになっていることを特
    徴とするデータ演算処理装置。
  6. 【請求項6】 複数の計算ユニットを備え、1又は複数
    のデータを含んでデータグループを構成し、さらに複数
    のデータグループを含んでデータブロックを構成し、前
    記データブロック単位でデータを処理する装置であっ
    て、 前記各計算ユニットは、与えられたスケールファクタに
    基づいてデータに対してスケーリングを行う第1スケー
    リング手段と、前記第1スケーリング手段からのデータ
    に対して演算を行う演算手段と、前記演算手段からの演
    算データのスケールファクタを算出するスケールファク
    タ算出手段と、与えられた他のスケールファクタに基づ
    いて前記演算手段からの演算データに対してスケーリン
    グを行う第2スケーリング手段とを有し、 さらに、データを記憶するための記憶手段と、前記各計
    算ユニットのスケールファクタ算出手段で算出したスケ
    ールファクタのうち絶対値が最大となる演算データに対
    応するものをグループスケールファクタとして検出する
    グループスケールファクタ検出手段と、前記グループス
    ケールファクタ検出手段で検出したグループスケールフ
    ァクタのうち絶対値が最大となる演算データに対応する
    ものをブロックスケールファクタとして検出するブロッ
    クスケールファクタ検出手段と、データ処理のための制
    御を行う制御手段とを備え、 前記制御手段は、前記データブロック単位でデータを前
    記記憶手段から読み出し、前記データブロックの各デー
    タグループごとに、前記データグループのデータをそれ
    ぞれ前記各計算ユニットの第1スケーリング手段に振り
    分け、前記グループスケールファクタ検出手段で検出し
    たグループスケールファクタを前記各計算ユニットの第
    2スケーリング手段に与え、前記各計算ユニットの第2
    スケーリング手段からの演算データを前記記憶手段に格
    納し、 前記記憶手段の演算データに対して再度演算を行うとき
    は、前記データブロックの各データグループごとに、前
    記データグループの演算データをそれぞれ前記各計算ユ
    ニットの第1スケーリング手段に振り分けるとともに、
    前記データグループのグループスケールファクタと前記
    ブロックスケールファクタとの差分からなるスケールフ
    ァクタを前記各計算ユニットの第1スケーリング手段に
    与え、 前記第1スケーリング手段は、与えられたスケールファ
    クタに基づいてデータに対してスケーリングを行い、ス
    ケーリングしたデータに対してデータの丸め処理を行う
    ようになっていることを特徴とするデータ演算処理装
    置。
  7. 【請求項7】 請求項6において、 前記演算手段は、所定ビット数のデータに対して演算を
    行い、 前記第1スケーリング手段は、前記スケーリングしたデ
    ータから、その最上位ビットを基準として前記所定ビッ
    ト数よりも多いビット数のデータを抽出し、抽出したデ
    ータのうちその最上位ビットを基準として前記所定ビッ
    ト数のデータ以外のものの値に基づいて前記データの丸
    め処理を行うようになっていることを特徴とするデータ
    演算処理装置。
  8. 【請求項8】 請求項7において、 前記第1スケーリング手段は、前記スケーリングしたデ
    ータから、その最上位ビットを基準として前記所定ビッ
    ト数よりも1ビット多いビット数のデータを抽出し、抽
    出したデータのうちその最上位ビットを基準として前記
    所定ビット数のデータ以外のものの値に基づいて前記デ
    ータの丸め処理を行うようになっていることを特徴とす
    るデータ演算処理装置。
  9. 【請求項9】 請求項8において、 前記データの丸め処理は、前記抽出したデータのうちそ
    の最上位ビットを基準として前記所定ビット数のデータ
    以外のものの値に1ビットを加算し、その加算結果のう
    ちその最上位ビットを基準として前記所定ビット数のデ
    ータを演算対象として出力するようになっていることを
    特徴とするデータ演算処理装置。
  10. 【請求項10】 請求項6乃至9のいずれかにおいて、 前記グループスケールファクタ及び前記ブロックスケー
    ルファクタを記憶するための第2記憶手段を備え、 前記制御手段は、前記グループスケールファクタ及び前
    記ブロックスケールファクタを演算データと対応付けて
    前記第2記憶手段に記憶し、 前記記憶手段の演算データに対して再度演算を行うとき
    は、対応するグループスケールファクタ及びブロックス
    ケールファクタを前記第2記憶手段から読み出し、前記
    データブロックの各データグループごとに、前記データ
    グループの演算データをそれぞれ前記各計算ユニットの
    第1スケーリング手段に振り分け、前記データグループ
    のグループスケールファクタと前記ブロックスケールフ
    ァクタとの差分からなるスケールファクタを前記各計算
    ユニットの第1スケーリング手段に与えるようになって
    いることを特徴とするデータ演算処理装置。
  11. 【請求項11】 請求項6乃至10のいずれかにおい
    て、 前記スケールファクタ算出手段は、前記演算手段からの
    演算データの冗長なビット数を算出し、これをスケール
    ファクタとして算出するようになっていることを特徴と
    するデータ演算処理装置。
  12. 【請求項12】 請求項11において、 前記演算手段は、固定小数点演算器であり、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、データに対してビットシフ
    トを行い、 前記第2スケーリング手段は、与えられた他のスケール
    ファクタに相当するシフト量で、前記演算手段からの演
    算データに対してビットシフトを行うようになっている
    ことを特徴とするデータ演算処理装置。
  13. 【請求項13】 請求項6乃至12のいずれかにおい
    て、 前記演算手段は、前記第1スケーリング手段からのデー
    タと所定の係数との積和を演算する積和演算器であるこ
    とを特徴とするデータ演算処理装置。
  14. 【請求項14】 1又は複数のデータを含んでデータグ
    ループを構成し、さらに複数のデータグループを含んで
    データブロックを構成し、前記データブロック単位でデ
    ータを処理するコンピュータ実行可能なプログラムであ
    って、 前記データグループの各データに対して演算を行い、そ
    れら演算データのうち絶対値が最大となるもののスケー
    ルファクタをグループスケールファクタとして検出し、
    検出したグループスケールファクタに基づいて前記各演
    算データに対してスケーリングを行うこれら一連の処理
    を、前記データブロックの各データグループごとに行
    い、さらに、検出したグループスケールファクタのうち
    絶対値が最大となる演算データに対応するものをブロッ
    クスケールファクタとして検出し、 前記スケーリングした演算データに対して再度演算を行
    うときは、その演算の前に、前記データグループの各演
    算データに対して当該データグループのグループスケー
    ルファクタ及び前記ブロックスケールファクタに基づい
    てスケーリングを行い、スケーリングしたそれら演算デ
    ータに対してデータの丸め処理を行うようになっている
    ことを特徴とするデータ演算処理プログラム。
  15. 【請求項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 true JP2002304288A (ja) 2002-10-18
JP3613466B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101874237A (zh) * 2007-10-30 2010-10-27 Arm有限公司 用于执行算术运算的大小检测的设备和方法
KR20220041962A (ko) * 2015-05-21 2022-04-01 구글 엘엘씨 신경망 프로세서의 벡터 컴퓨테이션 유닛

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101874237A (zh) * 2007-10-30 2010-10-27 Arm有限公司 用于执行算术运算的大小检测的设备和方法
JP2011501310A (ja) * 2007-10-30 2011-01-06 アーム・リミテッド 算術演算のためにマグニチュード検出を実行するための装置および方法
KR20220041962A (ko) * 2015-05-21 2022-04-01 구글 엘엘씨 신경망 프로세서의 벡터 컴퓨테이션 유닛
KR102516092B1 (ko) * 2015-05-21 2023-03-29 구글 엘엘씨 신경망 프로세서의 벡터 컴퓨테이션 유닛
US11620508B2 (en) 2015-05-21 2023-04-04 Google Llc Vector computation unit in a neural network processor
US12014272B2 (en) 2015-05-21 2024-06-18 Google Llc Vector computation unit in a neural network processor

Also Published As

Publication number Publication date
JP3613466B2 (ja) 2005-01-26

Similar Documents

Publication Publication Date Title
US6327605B2 (en) Data processor and data processing system
JP2651267B2 (ja) 演算処理装置及び演算処理方法
KR100291383B1 (ko) 디지털신호처리를위한명령을지원하는모듈계산장치및방법
US8990282B2 (en) Apparatus and method for performing fused multiply add floating point operation
US20210349692A1 (en) Multiplier and multiplication method
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
CN107305484B (zh) 一种非线性函数运算装置及方法
JP3736741B2 (ja) データ演算処理装置
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN110515589B (zh) 乘法器、数据处理方法、芯片及电子设备
WO2010051298A2 (en) Instruction and logic for performing range detection
JPH09212337A (ja) 浮動小数点演算処理装置
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
TWI774093B (zh) 用於轉換資料類型的轉換器、晶片、電子設備及其方法
JPH0250492B2 (ja)
CN112835551A (zh) 用于处理单元的数据处理方法、电子设备和计算机可读存储介质
JPH09146924A (ja) 演算方法、演算装置及びマイクロプロセッサ
CN112988110A (zh) 一种浮点处理装置和数据处理方法
US20220075598A1 (en) Systems and Methods for Numerical Precision in Digital Multiplier Circuitry
JP2002304288A (ja) データ演算処理装置及びデータ演算処理プログラム
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN113031915A (zh) 乘法器、数据处理方法、装置及芯片
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
CN113033788B (zh) 数据处理器、方法、装置及芯片
JP2508286B2 (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 (=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: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

FPAY Renewal fee payment (prs 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