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

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

Info

Publication number
JP2003067178A
JP2003067178A JP2001251429A JP2001251429A JP2003067178A JP 2003067178 A JP2003067178 A JP 2003067178A JP 2001251429 A JP2001251429 A JP 2001251429A JP 2001251429 A JP2001251429 A JP 2001251429A JP 2003067178 A JP2003067178 A JP 2003067178A
Authority
JP
Japan
Prior art keywords
data
block
scale factor
group
data 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
JP2001251429A
Other languages
English (en)
Other versions
JP3659408B2 (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 JP2001251429A priority Critical patent/JP3659408B2/ja
Publication of JP2003067178A publication Critical patent/JP2003067178A/ja
Application granted granted Critical
Publication of JP3659408B2 publication Critical patent/JP3659408B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 ブロックフローティング方式により乗累算を
行う場合において、回路規模を縮小するとともに、クリ
ティカルパスを改善して演算負荷を低減するのに好適な
データ演算処理装置を提供する。 【解決手段】 データ演算処理装置は、与えられたスケ
ールファクタに基づいてデータブロックAの各データに
対してスケーリングを行う第1シフタ35と、与えられ
たスケールファクタに基づいてデータブロックCの各デ
ータに対してスケーリングを行う第2シフタ32と、デ
ータブロックBおよび第1シフタ35からのデータブロ
ックAを用いた乗算を行う乗算器30と、乗算器30か
らの乗算結果データブロックおよび第2シフタ32から
のデータブロックCを用いた加算を行う累積加算器33
とで構成されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1または複数のデ
ータを含んでデータグループを構成し、さらに複数のデ
ータグループを含んでデータブロックを構成し、データ
ブロック単位でデータを処理する装置およびプログラム
に係り、特に、ブロックフローティング方式で固定小数
点演算を行うブロックフローティング型のデジタル・シ
グナル・プロセッサ(以下、単にDSPという。)に関
する。
【0002】
【従来の技術】デジタル信号処理における数値表現方法
として、固定小数点表現または浮動小数点表現がある。
浮動小数点表現では、各データが指数部と仮数部をも
ち、これにより、高い精度と広いダイナミックレンジが
確保可能という利点がある反面、複雑で大規模なハード
ウェアが必要となるという問題がある。一方、固定小数
点表現では、ハードウェアが簡単で回路規模も小さくて
すむが、演算精度の低下が問題となる。
【0003】そこで、固定小数点表現における問題の対
策法として提案されたのがブロックフローティングとい
う方式である。この方式では、所定数(例えば、m個)
のデータを1つのデータブロックとし、データブロック
に対し1個のブロックスケールファクタをもたせ、デー
タブロックのm個のデータに対し共通のスケーリングを
行うことにより、限られたダイナミックレンジを有効に
用いて精度の劣化を抑える。
【0004】従来、ブロックフローティング方式により
乗累算(複数の乗算結果を足し合わせてその総和を求め
る演算をいう。以下、同じ。)を行う装置としては、図
7および図8に示すようなデータ演算処理装置があっ
た。図7および図8は、ブロックフローティング方式に
よる従来のデータ演算処理装置の構成を示すブロック図
である。
【0005】図7において、データ演算処理装置は、デ
ータを記憶するためのデータメモリ100と、データメ
モリ100のデータに対して乗累算を行う演算部260
と、ブロックフローティングに必要な正規化を行うため
の制御部350と、これらの制御を行う制御ロジック4
00と、アドレス生成器500とで構成されている。デ
ータメモリ100、演算部260、制御部350および
制御ロジック400は、データバス110で相互にかつ
データ授受可能に接続されており、データメモリ100
およびアドレス生成器500は、データアドレスバス1
20で相互にかつデータ授受可能に接続されている。
【0006】データメモリ100は、図示しない外部か
らデータを入力し、演算部260の演算対象となるデー
タとして格納するようになっている。データメモリ10
0では、複数のデータを含んでデータブロックを構成
し、データは、データブロック単位で格納される。ま
た、データブロックには、そのデータブロックのデータ
のうち絶対値が最大のもののスケールファクタを代表と
し、これがブロックスケールファクタとして含まれてい
る。データブロックのすべてのデータは、ブロックスケ
ールファクタに基づいて共通にスケーリングされてい
る。なお、スケールファクタは、データをビットシフト
するときのシフト量であり、シフトするビット数を示
す。以下、グループスケールファクタおよびブロックス
ケールファクタについても同様である。
【0007】演算部260は、データバス110から与
えられる2つのデータブロックを用いた乗算を行う乗算
器30と、与えられたスケールファクタに基づいて乗算
器30からの乗算結果データブロックの各データに対し
てスケーリングを行う第1シフタ31と、与えられたス
ケールファクタに基づいて累積加算器33からの加算結
果データブロックの各データに対してスケーリングを行
う第2シフタ32と、第1シフタ31および第2シフタ
32からそれぞれ与えられる2つのデータブロックを用
いた加算を行う累積加算器33とで構成されている。
【0008】第1シフタ31は、与えられたスケールフ
ァクタに相当するシフト量で、乗算器30からの32ビ
ットのデータに対して下位ビットの方向へビットシフト
(以下、単に右シフトという。)を行い、その結果を4
0ビットのデータとして出力するようになっている。第
2シフタ32は、与えられたスケールファクタに相当す
るシフト量で、累積加算器33からの40ビットのデー
タに対して右シフトを行い、その結果を40ビットのデ
ータとして出力するようになっている。
【0009】制御部350は、データバス110から与
えられる2つのブロックスケールファクタを加算する加
算器70と、加算器70の加算結果に基づいて第1シフ
タ31および第2シフタ32を制御するシフタ制御装置
71と、累積加算器33からの加算結果データブロック
についてブロックスケールファクタを検出するブロック
スケールファクタ検出器72とで構成されている。
【0010】加算器70は、乗算器30に与えられる各
データブロックのブロックスケールファクタが与えられ
るので、それらを加算することにより、乗算器30から
の乗算結果データブロックのブロックスケールファクタ
(以下、乗算結果ブロックスケールファクタという。)
を算出するようになっている。シフタ制御装置71は、
加算器70からの乗算結果ブロックスケールファクタ
と、ブロックスケールファクタ検出器72からのブロッ
クスケールファクタとの差分からなる補正ブロックスケ
ールファクタを算出し、乗算結果ブロックスケールファ
クタがブロックスケールファクタ検出器72からのブロ
ックスケールファクタよりも大きいときは、補正ブロッ
クスケールファクタを第2シフタ32に入力し、乗算結
果ブロックスケールファクタの方が小さいときは、補正
ブロックスケールファクタを第1シフタ31に入力する
ようになっている。すなわち、累積加算器33で加算を
行う際には、シフタ制御装置71、第1シフタ31およ
び第2シフタ32により両者の各データの桁位置が一致
するように補正が行われる。
【0011】制御ロジック400は、データメモリ10
0のデータに対して乗累算を行うときは、演算対象とな
る2つのデータブロックをデータメモリ100から読み
出し、一方のデータブロックのデータを順次乗算器30
に乗数として与えるとともに、他方のデータブロックの
データを順次乗算器30に被乗数として与える。そし
て、これと同時に、読み出した各データブロックのブロ
ックスケールファクタを加算器70に与える。
【0012】こうした構成であれば、異なる複数のデー
タブロック間で乗累算を行う場合には、下式(1),
(2)に示すように、各乗累算が前段の乗累算の完了を
待って直列に行われる。下式(1),(2)において、
Aは乗数となるデータブロックを、Xは被乗数となるデ
ータブロックを示し、それぞれ第1番目の要素がブロッ
ク番号を示している。また、第2番目の要素がデータブ
ロック内のデータ番号を示しているので、A[i][0],X
[i][0],A[i][1],X[i][1](iは0〜kの整数であ
る。以下、同じ。)は、データブロックの各データとな
る。
【0013】
【数1】
【0014】データA[i][0],X[i][0]を用いてY[0]
を求める第1の乗累算と、データA[i][1],X[i][1]を
用いてY[1]を求める第2の乗累算とを行うことを考え
る。第1の乗累算については、例えば、k個のデータを
含むデータブロックA,Xが与えられたとき、累積加算
器33による第1回目の演算により上式(1)の右辺第
1項が演算され、累積加算器33による第2回目の演算
により上式(1)の右辺第1項および第2項が演算さ
れ、同じ要領でこれをk回繰り返すことにより、累積加
算器33からの加算結果データブロックが演算結果Y
[0]として得られる。演算結果Y[0]は、演算が完了した
時点でデータメモリ100に格納される。第2の乗累算
についてもこれと同様である。
【0015】一方、図8において、データ演算処理装置
は、図7のデータ演算処理装置とほぼ同一の構成である
が、異なるのは、シフタ制御装置71が、加算器70か
らの乗算結果ブロックスケールファクタのほかデータバ
ス110から与えられるブロックスケールファクタに基
づいて第1シフタ31および第2シフタ32を制御する
ようになっている点、累積加算器33に代えて加算器3
4を設けた点、および第2シフタ32への入力がデータ
バス110からとなっている点である。
【0016】こうした構成であれば、異なる複数のデー
タブロック間で乗累算を行う場合には、下式(3)〜
(8)に示すように、各乗累算が前段の乗累算の完了を
待つことなく並列に行われる。下式(3)〜(8)にお
いて、Aは乗数となるデータブロックを、Xは被乗数と
なるデータブロックを示し、それぞれ第1番目の要素が
ブロック番号を示している。また、第2番目の要素がデ
ータブロック内のデータ番号を示しているので、A[i]
[0],X[i][0],A[i][1],X[i][1]は、データブロッ
クの各データとなる。
【0017】
【数2】
【0018】データA[i][0],X[i][0]を用いてY[0]
を求める第1の乗累算と、データA[i][1],X[i][1]を
用いてY[1]を求める第2の乗累算とを行うことを考え
る。第1の乗累算と第2の乗累算は、並列して行われ
る。第1の乗累算については、例えば、k個のデータを
含むデータブロックA[0],X[0]が与えられたとき、ま
ず、データブロックA[0],X[0]の1番目のデータを乗
算器30に与え、上式(3)のように、加算器34によ
る演算により第1項が演算され、その結果がY'''[0]と
してデータメモリ100に格納される。そして、上式
(4)に示すように、同じ要領で第2の乗累算における
第1項が演算され、その結果がY'''[1]としてデータメ
モリ100に格納される。
【0019】次いで、第1の乗累算については、データ
ブロックA[0],X[0]の2番目のデータを乗算器30
に、Y'''[0]を第2シフタ32にそれぞれ与え、上式
(5)のように、加算器34による演算により第1項お
よび第2項が演算され、その結果がY''[0]としてデー
タメモリ100に格納される。そして、上式(6)に示
すように、同じ要領で第2の乗累算における第1項およ
び第2項が演算され、その結果がY''[1]としてデータ
メモリ100に格納される。
【0020】その後は、同じ要領でこれを交互にk回繰
り返すことにより、データメモリ100には、第1の乗
累算結果および第2の乗累算結果がそれぞれ格納される
ことになる。なお、ブロックフローティング方式の一般
的な技術については、特許協力条約に基づいて公開され
た国際出願(国際公開番号WO99/66423)にその詳細が開
示されている。
【0021】
【発明が解決しようとする課題】しかしながら、上記従
来のデータ演算処理装置にあってはいずれも、乗算器3
0の出力側に第1シフタ31を設けた構成となっている
ため、シフタとして少なくとも40ビットのビット幅を
備えなければならず、回路規模が大きい。また、乗算器
30と加算器34との間はクリティカルパスとなってい
るため、第1シフタ31を設けることにより演算負荷が
増大する。
【0022】そこで、本発明は、このような従来の技術
の有する未解決の課題に着目してなされたものであっ
て、ブロックフローティング方式により乗累算を行う場
合において、回路規模を縮小するとともに、クリティカ
ルパスを改善して演算負荷を低減するのに好適なデータ
演算処理装置およびデータ演算処理プログラムを提供す
ることを目的としている。
【0023】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係る請求項1記載のデータ演算処理装置
は、1または複数のデータを含んでデータブロックを構
成し、前記データブロックは、前記データブロックのブ
ロックスケールファクタを含み、前記データブロック単
位でデータを処理する装置であって、与えられたスケー
ルファクタに基づいて第1データブロックの各データに
対してスケーリングを行う第1スケーリング手段と、与
えられたスケールファクタに基づいて第2データブロッ
クの各データに対してスケーリングを行う第2スケーリ
ング手段と、第3データブロックおよび前記第1スケー
リング手段からの第1データブロックを用いた乗算を行
う乗算手段と、前記乗算手段からの乗算結果データブロ
ックおよび前記第2スケーリング手段からの第2データ
ブロックを用いた加算を行う加算手段とを備え、前記第
1データブロックおよび前記第3データブロックのブロ
ックスケールファクタの和である乗算結果ブロックスケ
ールファクタと、前記第2データブロックのブロックス
ケールファクタとの差分からなる補正ブロックスケール
ファクタを算出し、前記補正ブロックスケールファクタ
を前記第1スケーリング手段に与え、前記第1データブ
ロックのデータを前記第1スケーリング手段に入力し、
かつ、前記第2スケーリング手段にスケールファクタを
与えず、前記第2データブロックのデータを前記第2ス
ケーリング手段に入力する第1スケール補正処理と、前
記補正ブロックスケールファクタを前記第2スケーリン
グ手段に与え、前記第2データブロックのデータを前記
第2スケーリング手段に入力し、かつ、前記第1スケー
リング手段にスケールファクタを与えず、前記第1デー
タブロックのデータを前記第1スケーリング手段に入力
する第2スケール補正処理とのうちいずれかを行うよう
になっている。
【0024】このような構成であれば、乗算結果ブロッ
クスケールファクタと第2データブロックのブロックス
ケールファクタとの差分からなる補正ブロックスケール
ファクタが算出され、第1スケール補正処理および第2
スケール補正処理のうちいずれかが行われる。第1スケ
ール補正処理が行われると、補正ブロックスケールファ
クタが第1スケーリング手段に与えられ、第1データブ
ロックのデータが第1スケーリング手段に入力され、第
1スケーリング手段により、補正ブロックスケールファ
クタに基づいて、第1データブロックの各データに対し
てスケーリングが行われる。そして、乗算手段により、
第3データブロックおよび第1スケーリング手段からの
第1データブロックを用いた乗算が行われ、その結果が
乗算結果データブロックとして加算手段に入力される。
すなわち、乗算結果データブロックの各データは、第1
データブロックに対するスケーリングにより、第2デー
タブロックのデータと桁位置が一致するように補正され
る。
【0025】一方、第2スケーリング手段にはスケール
ファクタが与えられることなく、第2データブロックの
データが第2スケーリング手段に入力されるので、第2
データブロックの各データは、スケーリングが行われず
そのまま加算手段に入力される。最終的な加算では、加
算手段により、桁位置が一致した状態で、乗算手段から
の乗算結果データブロックおよび第2スケーリング手段
からの第2データブロックを用いた加算が行われる。
【0026】また、第2スケール補正処理が行われる
と、補正ブロックスケールファクタが第2スケーリング
手段に与えられ、第2データブロックのデータが第2ス
ケーリング手段に入力され、第2スケーリング手段によ
り、補正ブロックスケールファクタに基づいて、第2デ
ータブロックの各データに対してスケーリングが行わ
れ、その結果が加算手段に入力される。すなわち、第2
データブロックの各データは、そのスケーリングによ
り、乗算結果データブロックのデータと桁位置が一致す
るように補正される。
【0027】一方、第1スケーリング手段にはスケール
ファクタが与えられることなく、第1データブロックの
データが第1スケーリング手段に入力されるので、第1
データブロックの各データは、スケーリングが行われず
そのまま乗算手段に入力される。そして、乗算手段によ
り、第3データブロックおよび第1スケーリング手段か
らの第1データブロックを用いた乗算が行われ、その結
果が乗算結果データブロックとして加算手段に入力され
る。最終的な加算では、加算手段により、桁位置が一致
した状態で、乗算手段からの乗算結果データブロックお
よび第2スケーリング手段からの第2データブロックを
用いた加算が行われる。
【0028】ここで、スケールファクタとしては、例え
ば、データをビットシフトするときのシフト量を挙げる
ことができる。この場合、スケールファクタに相当する
シフト量で、データに対してビットシフトを行うことに
よりスケーリングを行う。以下、請求項7および8記載
のデータ演算処理装置、並びに請求項9、15および1
6記載のデータ演算処理プログラムにおいて同じであ
る。
【0029】さらに、本発明に係る請求項2記載のデー
タ演算処理装置は、請求項1記載のデータ演算処理装置
において、前記乗算結果ブロックスケールファクタおよ
び前記第2データブロックのブロックスケールファクタ
の大小関係に基づいて、前記第1スケール補正処理およ
び前記第2スケール補正処理のいずれかを選択的に行う
ようになっている。
【0030】このような構成であれば、乗算結果ブロッ
クスケールファクタおよび第2データブロックのブロッ
クスケールファクタの大小関係に基づいて、第1スケー
ル補正処理および第2スケール補正処理のいずれかが選
択的に行われる。さらに、本発明に係る請求項3記載の
データ演算処理装置は、請求項2記載のデータ演算処理
装置において、前記第1スケーリング手段は、与えられ
たスケールファクタに相当するシフト量で、入力したデ
ータに対して下位ビットの方向へビットシフトを行うよ
うになっており、前記第2スケーリング手段は、与えら
れたスケールファクタに相当するシフト量で、入力した
データに対して下位ビットの方向へビットシフトを行う
ようになっており、前記第2データブロックのブロック
スケールファクタが前記乗算結果ブロックスケールファ
クタよりも大きいときは、前記第1スケール補正処理を
行い、前記乗算結果ブロックスケールファクタが前記第
2データブロックのブロックスケールファクタよりも大
きいときは、前記第2スケール補正処理を行うようにな
っている。
【0031】このような構成であれば、第2データブロ
ックのブロックスケールファクタが乗算結果ブロックス
ケールファクタよりも大きいと、第1スケール補正処理
が行われる。これに対し、乗算結果ブロックスケールフ
ァクタが第2データブロックのブロックスケールファク
タよりも大きいと、第2スケール補正処理が行われる。
すなわち、第2データブロックのブロックスケールファ
クタおよび乗算結果ブロックスケールファクタのうち値
が小さいものに係るデータブロックについては、第1ス
ケーリング手段または第2スケーリング手段により、補
正ブロックスケールファクタに相当するビット量で、そ
の各データに対して右シフトが行われる。
【0032】さらに、本発明に係る請求項4記載のデー
タ演算処理装置は、請求項2記載のデータ演算処理装置
において、前記第1スケーリング手段は、与えられたス
ケールファクタに相当するシフト量で、入力したデータ
に対して上位ビットの方向へビットシフトを行うように
なっており、前記第2スケーリング手段は、与えられた
スケールファクタに相当するシフト量で、入力したデー
タに対して上位ビットの方向へビットシフトを行うよう
になっており、前記第2データブロックのブロックスケ
ールファクタが前記乗算結果ブロックスケールファクタ
よりも大きいときは、前記第2スケール補正処理を行
い、前記乗算結果ブロックスケールファクタが前記第2
データブロックのブロックスケールファクタよりも大き
いときは、前記第1スケール補正処理を行うようになっ
ている。
【0033】このような構成であれば、第2データブロ
ックのブロックスケールファクタが乗算結果ブロックス
ケールファクタよりも大きいと、第2スケール補正処理
が行われる。これに対し、乗算結果ブロックスケールフ
ァクタが第2データブロックのブロックスケールファク
タよりも大きいと、第1スケール補正処理が行われる。
すなわち、第2データブロックのブロックスケールファ
クタおよび乗算結果ブロックスケールファクタのうち値
が大きいものに係るデータブロックについては、第1ス
ケーリング手段または第2スケーリング手段により、補
正ブロックスケールファクタに相当するビット量で、そ
の各データに対して上位ビットの方向へビットシフト
(以下、単に左シフトという。)が行われる。
【0034】さらに、本発明に係る請求項5記載のデー
タ演算処理装置は、請求項1ないし4のいずれかに記載
のデータ演算処理装置において、データを記憶するため
の記憶手段と、前記加算手段からの加算結果データブロ
ックについて前記ブロックスケールファクタを検出する
ブロックスケールファクタ検出手段とを備え、前記第1
データブロックおよび前記第3データブロックのデータ
を前記記憶手段から読み出し、読み出した第1データブ
ロックのデータを前記第1スケーリング手段に入力する
とともに、読み出した第3データブロックのデータを前
記乗算手段に入力し、前記ブロックスケールファクタ検
出手段で検出したブロックスケールファクタを前記加算
結果データブロックに含めて前記第2データブロックを
構成し、構成した第2データブロックのデータを前記記
憶手段に格納するとともに前記第2スケーリング手段に
入力するようになっている。
【0035】このような構成であれば、第1データブロ
ックおよび第3データブロックのデータが記憶手段から
読み出され、読み出された第1データブロックのデータ
が第1スケーリング手段に入力されるとともに、読み出
された第3データブロックのデータが乗算手段に入力さ
れる。加算手段により加算が行われると、ブロックスケ
ール検出手段により、加算手段からの加算結果データブ
ロックについてブロックスケールファクタが検出され、
検出されたブロックスケールファクタを加算結果データ
ブロックに含めて第2データブロックが構成される。そ
して、構成された第2データブロックのデータが記憶手
段に格納されるとともに第2スケーリング手段に入力さ
れる。したがって、2度目以降の加算では、加算手段に
よる前回までの累算結果と乗算手段からの乗算結果とが
加算されることになる。
【0036】ここで、記憶手段は、データをあらゆる手
段でかつあらゆる時期に記憶するものであり、データを
あらかじめ記憶してあるものであってもよいし、データ
をあらかじめ記憶することなく、本装置の動作時に外部
からの入力等によってデータを記憶するようになってい
てもよい。以下、請求項6および8記載のデータ演算処
理装置、並びに請求項13、14および16記載のデー
タ演算処理プログラムにおいて同じである。
【0037】さらに、本発明に係る請求項6記載のデー
タ演算処理装置は、請求項1ないし4のいずれかに記載
のデータ演算処理装置において、データを記憶するため
の記憶手段と、前記加算手段からの加算結果データブロ
ックについて前記ブロックスケールファクタを検出する
ブロックスケールファクタ検出手段とを備え、前記第1
データブロックおよび前記第3データブロックのデータ
を前記記憶手段から読み出し、読み出した第1データブ
ロックのデータを前記第1スケーリング手段に入力する
とともに、読み出した第3データブロックのデータを前
記乗算手段に入力し、前記ブロックスケールファクタ検
出手段で検出したブロックスケールファクタを前記加算
結果データブロックに含めて前記第2データブロックを
構成し、構成した第2データブロックのデータを前記記
憶手段に格納し、再演算を行うときは、前記第2データ
ブロックのデータを前記記憶手段から読み出し、読み出
した第2データブロックのデータを前記第2スケーリン
グ手段に入力するようになっている。
【0038】このような構成であれば、第1データブロ
ックおよび第3データブロックのデータが記憶手段から
読み出され、読み出された第1データブロックのデータ
が第1スケーリング手段に入力されるとともに、読み出
された第3データブロックのデータが乗算手段に入力さ
れる。加算手段により加算が行われると、ブロックスケ
ール検出手段により、加算手段からの加算結果データブ
ロックについてブロックスケールファクタが検出され、
検出されたブロックスケールファクタを加算結果データ
ブロックに含めて第2データブロックが構成される。そ
して、構成された第2データブロックのデータが記憶手
段に格納される。
【0039】再演算を行うときは、第2データブロック
のデータが記憶手段から読み出され、読み出された第2
データブロックのデータが第2スケーリング手段に入力
される。したがって、2度目以降の加算では、記憶手段
に格納されている前回までの累算結果と乗算手段からの
乗算結果とが加算されることになる。さらに、本発明に
係る請求項7記載のデータ演算処理装置は、1または複
数のデータを含んでデータグループを構成し、さらに複
数のデータグループを含んでデータブロックを構成し、
前記データブロックは、前記各データグループのグルー
プスケールファクタおよび前記データブロックのブロッ
クスケールファクタを含み、前記データブロック単位で
データを処理する装置であって、与えられたスケールフ
ァクタに基づいて第1データブロックの各データに対し
てスケーリングを行う第1スケーリング手段と、与えら
れたスケールファクタに基づいて第2データブロックの
各データに対してスケーリングを行う第2スケーリング
手段と、第3データブロックおよび前記第1スケーリン
グ手段からの第1データブロックを用いた乗算を行う乗
算手段と、前記乗算手段からの乗算結果データブロック
および前記第2スケーリング手段からの第2データブロ
ックを用いた加算を行う加算手段とを備え、前記第1デ
ータブロックおよび前記第3データブロックのブロック
スケールファクタの和である乗算結果ブロックスケール
ファクタと、前記第2データブロックのブロックスケー
ルファクタとの差分からなる補正ブロックスケールファ
クタを算出し、前記第1データブロックの各データグル
ープごとに、当該データグループのグループスケールフ
ァクタと前記第1データブロックのブロックスケールフ
ァクタとの差分からなるスケールファクタに前記補正ブ
ロックスケールファクタを加算したものを前記第1スケ
ーリング手段に与え、当該データグループのデータを前
記第1スケーリング手段に入力し、かつ、前記第2デー
タブロックの各データグループごとに、当該データグル
ープのグループスケールファクタと前記第2データブロ
ックのブロックスケールファクタとの差分からなるスケ
ールファクタを前記第2スケーリング手段に与え、当該
データグループのデータを前記第2スケーリング手段に
入力する第1スケール補正処理と、前記第2データブロ
ックの各データグループごとに、当該データグループの
グループスケールファクタと前記第2データブロックの
ブロックスケールファクタとの差分からなるスケールフ
ァクタに前記補正ブロックスケールファクタを加算した
ものを前記第2スケーリング手段に与え、当該データグ
ループのデータを前記第2スケーリング手段に入力し、
かつ、前記第1データブロックの各データグループごと
に、当該データグループのグループスケールファクタと
前記第1データブロックのブロックスケールファクタと
の差分からなるスケールファクタを前記第1スケーリン
グ手段に与え、当該データグループのデータを前記第1
スケーリング手段に入力する第2スケール補正処理との
うちいずれかを行うようになっている。
【0040】このような構成であれば、乗算結果ブロッ
クスケールファクタと第2データブロックのブロックス
ケールファクタとの差分からなる補正ブロックスケール
ファクタが算出され、第1スケール補正処理および第2
スケール補正処理のうちいずれかが行われる。第1スケ
ール補正処理が行われると、第1データブロックの各デ
ータグループごとに、そのデータグループのグループス
ケールファクタと第1データブロックのブロックスケー
ルファクタとの差分からなるスケールファクタに補正ブ
ロックスケールファクタを加算したものが第1スケーリ
ング手段に与えられ、そのデータグループのデータが第
1スケーリング手段に入力される。したがって、第1ス
ケーリング手段により、各グループスケールファクタ、
ブロックスケールファクタおよび補正ブロックスケール
ファクタに基づいて、第1データブロックの各データに
対してスケーリングが行われる。そして、乗算手段によ
り、第3データブロックおよび第1スケーリング手段か
らの第1データブロックを用いた乗算が行われ、その結
果が乗算結果データブロックとして加算手段に入力され
る。すなわち、乗算結果データブロックの各データは、
第1データブロックに対するスケーリングにより、第2
データブロックのデータと桁位置が一致するように補正
される。
【0041】一方、第2データブロックの各データグル
ープごとに、そのデータグループのグループスケールフ
ァクタと第2データブロックのブロックスケールファク
タとの差分からなるスケールファクタが第2スケーリン
グ手段に与えられ、そのデータグループのデータが第2
スケーリング手段に入力される。したがって、第2スケ
ーリング手段により、各グループスケールファクタおよ
びブロックスケールファクタに基づいて、第2データブ
ロックの各データに対してスケーリングが行われ、加算
手段に入力される。最終的な加算では、加算手段によ
り、桁位置が一致した状態で、乗算手段からの乗算結果
データブロックおよび第2スケーリング手段からの第2
データブロックを用いた加算が行われる。
【0042】また、第2スケール補正処理が行われる
と、第2データブロックの各データグループごとに、そ
のデータグループのグループスケールファクタと第2デ
ータブロックのブロックスケールファクタとの差分から
なるスケールファクタに補正ブロックスケールファクタ
を加算したものが第2スケーリング手段に与えられ、そ
のデータグループのデータが第2スケーリング手段に入
力される。したがって、第2スケーリング手段により、
各グループスケールファクタ、ブロックスケールファク
タおよび補正ブロックスケールファクタに基づいて、第
2データブロックの各データに対してスケーリングが行
われ、その結果が加算手段に入力される。すなわち、第
2データブロックの各データは、そのスケーリングによ
り、乗算結果データブロックのデータと桁位置が一致す
るように補正される。
【0043】一方、第1データブロックの各データグル
ープごとに、そのデータグループのグループスケールフ
ァクタと第1データブロックのブロックスケールファク
タとの差分からなるスケールファクタが第1スケーリン
グ手段に与えられ、そのデータグループのデータが第1
スケーリング手段に入力される。したがって、第1スケ
ーリング手段により、各グループスケールファクタおよ
びブロックスケールファクタに基づいて、第1データブ
ロックの各データに対してスケーリングが行われ、乗算
手段に入力される。そして、乗算手段により、第3デー
タブロックおよび第1スケーリング手段からの第1デー
タブロックを用いた乗算が行われ、その結果が乗算結果
データブロックとして加算手段に入力される。最終的な
加算では、加算手段により、桁位置が一致した状態で、
乗算手段からの乗算結果データブロックおよび第2スケ
ーリング手段からの第2データブロックを用いた加算が
行われる。
【0044】さらに、本発明に係る請求項8記載のデー
タ演算処理装置は、複数の計算ユニットを備え、1また
は複数のデータを含んでデータグループを構成し、さら
に複数のデータグループを含んでデータブロックを構成
し、前記データブロックは、前記各データグループのグ
ループスケールファクタおよび前記データブロックのブ
ロックスケールファクタを含み、前記データブロック単
位でデータを処理する装置であって、前記各計算ユニッ
トは、与えられたスケールファクタに基づいてデータに
対してスケーリングを行うスケーリング手段と、前記ス
ケーリング手段からのデータに対して乗算を行う乗算手
段と、前記スケーリング手段からのデータおよび前記乗
算手段からのデータに対して加算を行う加算手段とを有
し、さらに、データを記憶するための記憶手段と、デー
タ処理のための制御を行う制御手段とを備え、前記制御
手段は、第1データブロック、第2データブロックおよ
び第3データブロックを前記記憶手段から読み出し、前
記第1データブロックおよび前記第3データブロックの
ブロックスケールファクタの和である乗算結果ブロック
スケールファクタと、前記第2データブロックのブロッ
クスケールファクタとの差分からなる補正ブロックスケ
ールファクタを算出し、算出した補正ブロックスケール
ファクタに基づいて第1スケール補正処理および第2ス
ケール補正処理のいずれかを行うようになっており、前
記第1スケール補正処理は、前記第1データブロックの
各データグループごとに、当該データグループのグルー
プスケールファクタと前記第1データブロックのブロッ
クスケールファクタとの差分からなるスケールファクタ
に前記補正ブロックスケールファクタを加算したものを
前記各計算ユニットのスケーリング手段に与え、当該デ
ータグループのデータをそれぞれ前記スケーリング手段
を介して前記各計算ユニットの乗算手段に乗数として入
力し、前記第3データブロックの各データグループごと
に、当該データグループのグループスケールファクタと
前記第3データブロックのブロックスケールファクタと
の差分からなるスケールファクタを前記各計算ユニット
のスケーリング手段に与え、当該データグループのデー
タをそれぞれ前記スケーリング手段を介して前記各計算
ユニットの乗算手段に被乗数として入力し、前記第2デ
ータブロックの各データグループごとに、当該データグ
ループのグループスケールファクタと前記第2データブ
ロックのブロックスケールファクタとの差分からなるス
ケールファクタを前記各計算ユニットのスケーリング手
段に与え、当該データグループのデータをそれぞれ前記
スケーリング手段を介して前記各計算ユニットの加算手
段に入力する処理であり、前記第2スケール補正処理
は、前記第1データブロックの各データグループごと
に、当該データグループのグループスケールファクタと
前記第1データブロックのブロックスケールファクタと
の差分からなるスケールファクタを前記各計算ユニット
のスケーリング手段に与え、当該データグループのデー
タをそれぞれ前記スケーリング手段を介して前記各計算
ユニットの乗算手段に乗数として入力し、前記第3デー
タブロックの各データグループごとに、当該データグル
ープのグループスケールファクタと前記第3データブロ
ックのブロックスケールファクタとの差分からなるスケ
ールファクタを前記各計算ユニットのスケーリング手段
に与え、当該データグループのデータをそれぞれ前記ス
ケーリング手段を介して前記各計算ユニットの乗算手段
に被乗数として入力し、前記第2データブロックの各デ
ータグループごとに、当該データグループのグループス
ケールファクタと前記第2データブロックのブロックス
ケールファクタとの差分からなるスケールファクタに前
記補正ブロックスケールファクタを加算したものを前記
各計算ユニットのスケーリング手段に与え、当該データ
グループのデータをそれぞれ前記スケーリング手段を介
して前記各計算ユニットの加算手段に入力する処理であ
る。
【0045】このような構成であれば、制御手段によ
り、第1データブロック、第2データブロックおよび第
3データブロックが記憶手段から読み出され、乗算結果
ブロックスケールファクタと第2データブロックのブロ
ックスケールファクタとの差分からなる補正ブロックス
ケールファクタが算出され、算出された補正ブロックス
ケールファクタに基づいて第1スケール補正処理および
第2スケール補正処理のいずれかが行われる。
【0046】第1スケール補正処理が行われると、第1
データブロックの各データグループごとに、そのデータ
グループのグループスケールファクタと第1データブロ
ックのブロックスケールファクタとの差分からなるスケ
ールファクタに補正ブロックスケールファクタを加算し
たものが各計算ユニットのスケーリング手段に与えら
れ、そのデータグループのデータがそれぞれスケーリン
グ手段を介して各計算ユニットの乗算手段に乗数として
入力される。したがって、スケーリング手段により、各
グループスケールファクタ、ブロックスケールファクタ
および補正ブロックスケールファクタに基づいて、第1
データブロックの各データに対してスケーリングが行わ
れる。また、第3データブロックの各データグループご
とに、そのデータグループのグループスケールファクタ
と第3データブロックのブロックスケールファクタとの
差分からなるスケールファクタが各計算ユニットのスケ
ーリング手段に与えられ、そのデータグループのデータ
がそれぞれスケーリング手段を介して各計算ユニットの
乗算手段に被乗数として入力される。したがって、スケ
ーリング手段により、各グループスケールファクタおよ
びブロックスケールファクタに基づいて、第3データブ
ロックの各データに対してスケーリングが行われる。そ
して、乗算手段により、スケーリング手段からの第1デ
ータブロックおよび第3データブロックを用いた乗算が
行われ、その結果が乗算結果データブロックとして加算
手段に入力される。すなわち、乗算結果データブロック
の各データは、第1データブロックに対する補正ブロッ
クスケールファクタによるスケーリングにより、第2デ
ータブロックのデータと桁位置が一致するように補正さ
れる。
【0047】一方、第2データブロックの各データグル
ープごとに、そのデータグループのグループスケールフ
ァクタと第2データブロックのブロックスケールファク
タとの差分からなるスケールファクタが各計算ユニット
のスケーリング手段に与えられ、そのデータグループの
データがそれぞれスケーリング手段を介して各計算ユニ
ットの加算手段に入力される。したがって、スケーリン
グ手段により、各グループスケールファクタおよびブロ
ックスケールファクタに基づいて、第2データブロック
の各データに対してスケーリングが行われる。最終的な
加算では、加算手段により、桁位置が一致した状態で、
乗算手段からの乗算結果データブロックおよびスケーリ
ング手段からの第2データブロックを用いた加算が行わ
れる。
【0048】また、第2スケール補正処理が行われる
と、第2データブロックの各データグループごとに、そ
のデータグループのグループスケールファクタと第2デ
ータブロックのブロックスケールファクタとの差分から
なるスケールファクタに補正ブロックスケールファクタ
を加算したものが各計算ユニットのスケーリング手段に
与えられ、そのデータグループのデータがそれぞれスケ
ーリング手段を介して各計算ユニットの加算手段に入力
される。したがって、スケーリング手段により、各グル
ープスケールファクタ、ブロックスケールファクタおよ
び補正ブロックスケールファクタに基づいて、第2デー
タブロックの各データに対してスケーリングが行われ、
その結果が加算手段に入力される。すなわち、第2デー
タブロックの各データは、補正ブロックスケールファク
タによるスケーリングにより、乗算結果データブロック
のデータと桁位置が一致するように補正される。
【0049】一方、第1データブロックの各データグル
ープごとに、そのデータグループのグループスケールフ
ァクタと第1データブロックのブロックスケールファク
タとの差分からなるスケールファクタが各計算ユニット
のスケーリング手段に与えられ、そのデータグループの
データがそれぞれスケーリング手段を介して各計算ユニ
ットの乗算手段に乗数として入力される。したがって、
スケーリング手段により、各グループスケールファクタ
およびブロックスケールファクタに基づいて、第1デー
タブロックの各データに対してスケーリングが行われ
る。また、第3データブロックの各データグループごと
に、そのデータグループのグループスケールファクタと
第3データブロックのブロックスケールファクタとの差
分からなるスケールファクタが各計算ユニットのスケー
リング手段に与えられ、そのデータグループのデータが
それぞれスケーリング手段を介して各計算ユニットの乗
算手段に被乗数として入力される。したがって、スケー
リング手段により、各グループスケールファクタおよび
ブロックスケールファクタに基づいて、第3データブロ
ックの各データに対してスケーリングが行われる。そし
て、乗算手段により、スケーリング手段からの第1デー
タブロックおよび第3データブロックを用いた乗算が行
われ、その結果が乗算結果データブロックとして加算手
段に入力される。最終的な加算では、加算手段により、
桁位置が一致した状態で、乗算手段からの乗算結果デー
タブロックおよびスケーリング手段からの第2データブ
ロックを用いた加算が行われる。
【0050】一方、上記目的を達成するために、本発明
に係る請求項9記載のデータ演算処理プログラムは、コ
ンピュータからなる請求項1記載のデータ演算処理装置
に実行させるためのプログラムであって、前記第1デー
タブロックおよび前記第3データブロックのブロックス
ケールファクタの和である乗算結果ブロックスケールフ
ァクタと、前記第2データブロックのブロックスケール
ファクタとの差分からなる補正ブロックスケールファク
タを算出し、前記補正ブロックスケールファクタを前記
第1スケーリング手段に与え、前記第1データブロック
のデータを前記第1スケーリング手段に入力し、かつ、
前記第2スケーリング手段にスケールファクタを与え
ず、前記第2データブロックのデータを前記第2スケー
リング手段に入力する第1スケール補正処理と、前記補
正ブロックスケールファクタを前記第2スケーリング手
段に与え、前記第2データブロックのデータを前記第2
スケーリング手段に入力し、かつ、前記第1スケーリン
グ手段にスケールファクタを与えず、前記第1データブ
ロックのデータを前記第1スケーリング手段に入力する
第2スケール補正処理とのうちいずれかを行う処理を実
行させるためのプログラムである。
【0051】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項1
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項10記載のデータ演算処理プ
ログラムは、請求項9記載のデータ演算処理プログラム
において、前記乗算結果ブロックスケールファクタおよ
び前記第2データブロックのブロックスケールファクタ
の大小関係に基づいて、前記第1スケール補正処理およ
び前記第2スケール補正処理のいずれかを選択的に行う
処理を実行させるためのプログラムである。
【0052】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項2
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項11記載のデータ演算処理プ
ログラムは、請求項10記載のデータ演算処理プログラ
ムにおいて、前記第1スケーリング手段は、与えられた
スケールファクタに相当するシフト量で、入力したデー
タに対して下位ビットの方向へビットシフトを行うよう
になっており、前記第2スケーリング手段は、与えられ
たスケールファクタに相当するシフト量で、入力したデ
ータに対して下位ビットの方向へビットシフトを行うよ
うになっており、前記第2データブロックのブロックス
ケールファクタが前記乗算結果ブロックスケールファク
タよりも大きいときは、前記第1スケール補正処理を行
い、前記乗算結果ブロックスケールファクタが前記第2
データブロックのブロックスケールファクタよりも大き
いときは、前記第2スケール補正処理を行う処理を実行
させるためのプログラムである。
【0053】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項3
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項12記載のデータ演算処理プ
ログラムは、請求項10記載のデータ演算処理プログラ
ムにおいて、前記第1スケーリング手段は、与えられた
スケールファクタに相当するシフト量で、入力したデー
タに対して上位ビットの方向へビットシフトを行うよう
になっており、前記第2スケーリング手段は、与えられ
たスケールファクタに相当するシフト量で、入力したデ
ータに対して上位ビットの方向へビットシフトを行うよ
うになっており、前記第2データブロックのブロックス
ケールファクタが前記乗算結果ブロックスケールファク
タよりも大きいときは、前記第2スケール補正処理を行
い、前記乗算結果ブロックスケールファクタが前記第2
データブロックのブロックスケールファクタよりも大き
いときは、前記第1スケール補正処理を行う処理を実行
させるためのプログラムである。
【0054】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項4
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項13記載のデータ演算処理プ
ログラムは、請求項9ないし12のいずれかに記載のデ
ータ演算処理プログラムにおいて、データを記憶するた
めの記憶手段と、前記加算手段からの加算結果データブ
ロックについて前記ブロックスケールファクタを検出す
るブロックスケールファクタ検出手段とが利用可能とな
っており、前記第1データブロックおよび前記第3デー
タブロックのデータを前記記憶手段から読み出し、読み
出した第1データブロックのデータを前記第1スケーリ
ング手段に入力するとともに、読み出した第3データブ
ロックのデータを前記乗算手段に入力し、前記ブロック
スケールファクタ検出手段で検出したブロックスケール
ファクタを前記加算結果データブロックに含めて前記第
2データブロックを構成し、構成した第2データブロッ
クのデータを前記記憶手段に格納するとともに前記第2
スケーリング手段に入力する処理を実行させるためのプ
ログラムである。
【0055】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項5
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項14記載のデータ演算処理プ
ログラムは、請求項9ないし12のいずれかに記載のデ
ータ演算処理プログラムにおいて、データを記憶するた
めの記憶手段と、前記加算手段からの加算結果データブ
ロックについて前記ブロックスケールファクタを検出す
るブロックスケールファクタ検出手段とが利用可能とな
っており、前記第1データブロックおよび前記第3デー
タブロックのデータを前記記憶手段から読み出し、読み
出した第1データブロックのデータを前記第1スケーリ
ング手段に入力するとともに、読み出した第3データブ
ロックのデータを前記乗算手段に入力し、前記ブロック
スケールファクタ検出手段で検出したブロックスケール
ファクタを前記加算結果データブロックに含めて前記第
2データブロックを構成し、構成した第2データブロッ
クのデータを前記記憶手段に格納し、再演算を行うとき
は、前記第2データブロックのデータを前記記憶手段か
ら読み出し、読み出した第2データブロックのデータを
前記第2スケーリング手段に入力する処理を実行させる
ためのプログラムである。
【0056】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項6
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項15記載のデータ演算処理プ
ログラムは、コンピュータからなる請求項7記載のデー
タ演算処理装置に実行させるためのプログラムであっ
て、前記第1データブロックおよび前記第3データブロ
ックのブロックスケールファクタの和である乗算結果ブ
ロックスケールファクタと、前記第2データブロックの
ブロックスケールファクタとの差分からなる補正ブロッ
クスケールファクタを算出し、前記第1データブロック
の各データグループごとに、当該データグループのグル
ープスケールファクタと前記第1データブロックのブロ
ックスケールファクタとの差分からなるスケールファク
タに前記補正ブロックスケールファクタを加算したもの
を前記第1スケーリング手段に与え、当該データグルー
プのデータを前記第1スケーリング手段に入力し、か
つ、前記第2データブロックの各データグループごと
に、当該データグループのグループスケールファクタと
前記第2データブロックのブロックスケールファクタと
の差分からなるスケールファクタを前記第2スケーリン
グ手段に与え、当該データグループのデータを前記第2
スケーリング手段に入力する第1スケール補正処理と、
前記第2データブロックの各データグループごとに、当
該データグループのグループスケールファクタと前記第
2データブロックのブロックスケールファクタとの差分
からなるスケールファクタに前記補正ブロックスケール
ファクタを加算したものを前記第2スケーリング手段に
与え、当該データグループのデータを前記第2スケーリ
ング手段に入力し、かつ、前記第1データブロックの各
データグループごとに、当該データグループのグループ
スケールファクタと前記第1データブロックのブロック
スケールファクタとの差分からなるスケールファクタを
前記第1スケーリング手段に与え、当該データグループ
のデータを前記第1スケーリング手段に入力する第2ス
ケール補正処理とのうちいずれかを行う処理を実行させ
るためのプログラムである。
【0057】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項7
記載のデータ演算処理装置と同等の作用が得られる。さ
らに、本発明に係る請求項16記載のデータ演算処理プ
ログラムは、コンピュータからなる請求項8記載のデー
タ演算処理装置における制御手段に実行させるためのプ
ログラムであって、第1データブロック、第2データブ
ロックおよび第3データブロックを前記記憶手段から読
み出し、前記第1データブロックおよび前記第3データ
ブロックのブロックスケールファクタの和である乗算結
果ブロックスケールファクタと、前記第2データブロッ
クのブロックスケールファクタとの差分からなる補正ブ
ロックスケールファクタを算出し、算出した補正ブロッ
クスケールファクタに基づいて第1スケール補正処理お
よび第2スケール補正処理のいずれかを行う処理を実行
させるためのプログラムであり、前記第1スケール補正
処理は、前記第1データブロックの各データグループご
とに、当該データグループのグループスケールファクタ
と前記第1データブロックのブロックスケールファクタ
との差分からなるスケールファクタに前記補正ブロック
スケールファクタを加算したものを前記各計算ユニット
のスケーリング手段に与え、当該データグループのデー
タをそれぞれ前記スケーリング手段を介して前記各計算
ユニットの乗算手段に乗数として入力し、前記第3デー
タブロックの各データグループごとに、当該データグル
ープのグループスケールファクタと前記第3データブロ
ックのブロックスケールファクタとの差分からなるスケ
ールファクタを前記各計算ユニットのスケーリング手段
に与え、当該データグループのデータをそれぞれ前記ス
ケーリング手段を介して前記各計算ユニットの乗算手段
に被乗数として入力し、前記第2データブロックの各デ
ータグループごとに、当該データグループのグループス
ケールファクタと前記第2データブロックのブロックス
ケールファクタとの差分からなるスケールファクタを前
記各計算ユニットのスケーリング手段に与え、当該デー
タグループのデータをそれぞれ前記スケーリング手段を
介して前記各計算ユニットの加算手段に入力する処理で
あり、前記第2スケール補正処理は、前記第1データブ
ロックの各データグループごとに、当該データグループ
のグループスケールファクタと前記第1データブロック
のブロックスケールファクタとの差分からなるスケール
ファクタを前記各計算ユニットのスケーリング手段に与
え、当該データグループのデータをそれぞれ前記スケー
リング手段を介して前記各計算ユニットの乗算手段に乗
数として入力し、前記第3データブロックの各データグ
ループごとに、当該データグループのグループスケール
ファクタと前記第3データブロックのブロックスケール
ファクタとの差分からなるスケールファクタを前記各計
算ユニットのスケーリング手段に与え、当該データグル
ープのデータをそれぞれ前記スケーリング手段を介して
前記各計算ユニットの乗算手段に被乗数として入力し、
前記第2データブロックの各データグループごとに、当
該データグループのグループスケールファクタと前記第
2データブロックのブロックスケールファクタとの差分
からなるスケールファクタに前記補正ブロックスケール
ファクタを加算したものを前記各計算ユニットのスケー
リング手段に与え、当該データグループのデータをそれ
ぞれ前記スケーリング手段を介して前記各計算ユニット
の加算手段に入力する処理である。
【0058】このような構成であれば、コンピュータに
よってプログラムが読み取られ、読み取られたプログラ
ムに従ってコンピュータが処理を実行すると、請求項7
記載のデータ演算処理装置と同等の作用が得られる。
【0059】
【発明の実施の形態】以下、本発明の第1の実施の形態
を図面を参照しながら説明する。図1および図2は、本
発明に係るデータ演算処理装置の第1の実施の形態を示
す図である。本実施の形態は、本発明に係るデータ演算
処理装置およびデータ演算処理プログラムを、図1に示
すように、ブロックフローティング方式により乗累算を
行う場合について適用したものである。
【0060】まず、本発明に係るデータ演算処理装置の
構成を図1を参照しながら説明する。図1は、本発明に
係るデータ演算処理装置の構成を示すブロック図であ
る。本発明に係るデータ演算処理装置は、図1に示すよ
うに、データを記憶するためのデータメモリ100と、
データメモリ100のデータに対して乗累算を行う演算
部250と、ブロックフローティングに必要な正規化を
行うための制御部350と、これらの制御を行う制御ロ
ジック400と、アドレス生成器500とで構成されて
いる。データメモリ100、演算部250、制御部35
0および制御ロジック400は、データバス110で相
互にかつデータ授受可能に接続されており、データメモ
リ100およびアドレス生成器500は、データアドレ
スバス120で相互にかつデータ授受可能に接続されて
いる。
【0061】データメモリ100は、図示しない外部か
らデータを入力し、演算部250の演算対象となるデー
タとして格納するようになっている。データメモリ10
0では、複数のデータを含んでデータブロックを構成
し、データは、データブロック単位で格納される。ま
た、データブロックには、そのデータブロックのデータ
のうち絶対値が最大のもののスケールファクタを代表と
し、これがブロックスケールファクタとして含まれてい
る。データブロックのすべてのデータは、ブロックスケ
ールファクタに基づいて共通にスケーリングされてい
る。
【0062】演算部250は、データバス110から与
えられるデータブロックの各データに対してスケーリン
グを行う第1シフタ35と、データバス110から与え
られるデータブロックおよび第1シフタ35からのデー
タブロックを用いた乗算を行う乗算器30と、与えられ
たスケールファクタに基づいて累積加算器33からの加
算結果データブロックの各データに対してスケーリング
を行う第2シフタ32と、第2シフタ32からのデータ
ブロックおよび乗算器30からの乗算結果データブロッ
クを用いた加算を行う累積加算器33とで構成されてい
る。
【0063】第1シフタ35は、与えられたスケールフ
ァクタに相当するシフト量で、データバス110からの
16ビットのデータに対して右シフトを行い、その結果
を16ビットのデータとして出力するようになってい
る。第2シフタ32は、与えられたスケールファクタに
相当するシフト量で、累積加算器33からの40ビット
のデータに対して右シフトを行い、その結果を40ビッ
トのデータとして出力するようになっている。
【0064】制御部350は、データバス110から与
えられる2つのブロックスケールファクタを加算する加
算器70と、加算器70の加算結果に基づいて第1シフ
タ35および第2シフタ32を制御するシフタ制御装置
71と、累積加算器33からの加算結果データブロック
についてブロックスケールファクタを検出するブロック
スケールファクタ検出器72とで構成されている。
【0065】加算器70は、乗算器30に与えられる各
データブロックのブロックスケールファクタが与えられ
るので、それらを加算することにより乗算器30からの
乗算結果ブロックスケールファクタを算出するようにな
っている。シフタ制御装置71は、加算器70からの乗
算結果ブロックスケールファクタと、ブロックスケール
ファクタ検出器72からのブロックスケールファクタと
の差分からなる補正ブロックスケールファクタを算出
し、乗算結果ブロックスケールファクタがブロックスケ
ールファクタ検出器72からのブロックスケールファク
タよりも大きいときは、補正ブロックスケールファクタ
を第2シフタ32に入力し、乗算結果ブロックスケール
ファクタの方が小さいときは、補正ブロックスケールフ
ァクタを第1シフタ35に入力するようになっている。
すなわち、累積加算器33で加算を行う際には、シフタ
制御装置71、第1シフタ35および第2シフタ32に
より両者の各データの桁位置が一致するように補正が行
われる。
【0066】制御ロジック400は、データメモリ10
0のデータに対して乗累算を行うときは、演算対象とな
る2つのデータブロックをデータメモリ100から読み
出し、一方のデータブロックのデータを順次乗算器30
に乗数として与えるとともに、他方のデータブロックの
データを順次乗算器30に被乗数として与える。そし
て、これと同時に、読み出した各データブロックのブロ
ックスケールファクタを加算器70に与える。
【0067】次に、上記第1の実施の形態の動作を図2
を参照しながら説明する。図2は、乗累算を行う過程を
時系列に示す図である。まず、制御ロジック400によ
り、図2に示すように、データブロックAおよびデータ
ブロックBがデータメモリ100から読み出される。そ
して、制御ロジック400とシフタ制御装置71との連
携により、補正ブロックスケールファクタが算出され、
補正ブロックスケールファクタに基づいて第1スケール
補正処理および第2スケール補正処理のうちいずれかが
選択的に行われる。
【0068】第1スケール補正処理は、ブロックスケー
ルファクタ検出器72からのブロックスケールファクタ
が乗算結果ブロックスケールファクタよりも大きいとき
に行われる。第1スケール補正処理が行われると、補正
ブロックスケールファクタが第1シフタ35に与えら
れ、データブロックAの1番目のデータが第1シフタ3
5に入力され、第1シフタ35により、補正ブロックス
ケールファクタに相当するシフト量で、データブロック
Aの1番目のデータに対して右シフトが行われる。ま
た、これと同時に、データブロックBの1番目のデータ
が乗算器30に入力される。そして、乗算器30によ
り、データブロックBおよび第1シフタ35からのデー
タブロックAを用いた乗算が行われ、その結果が乗算結
果データブロックとして累積加算器33に入力される。
累積加算器33では、加算を行う一方のデータが存在し
ていないので、乗算器30からの乗算結果データブロッ
クがそのまま第2シフタ32に入力される。これによ
り、上式(1)における右辺第1項に相当する演算が完
了する。以下、第2シフタ32に入力された乗算結果デ
ータブロックをデータブロックCと称し、第1スケール
補正処理による2回目以降の演算を説明する。
【0069】2回目の演算では、補正ブロックスケール
ファクタが第1シフタ35に与えられ、データブロック
Aの2番目のデータが第1シフタ35に入力され、第1
シフタ35により、補正ブロックスケールファクタに相
当するシフト量で、データブロックAの2番目のデータ
に対して右シフトが行われる。また、これと同時に、デ
ータブロックBの2番目のデータが乗算器30に入力さ
れる。そして、乗算器30により、データブロックBお
よび第1シフタ35からのデータブロックAを用いた乗
算が行われ、その結果が乗算結果データブロックとして
累積加算器33に入力される。すなわち、乗算結果デー
タブロックのデータは、データブロックAに対する右シ
フトにより、データブロックCのデータと桁位置が一致
するように補正される。
【0070】一方、第2シフタ32にはスケールファク
タが与えられることなく、データブロックCのデータが
第2シフタ32に入力されるので、データブロックCの
データは、右シフトが行われずそのまま累積加算器33
に入力される。最終的な加算では、累積加算器33によ
り、桁位置が一致した状態で、乗算器30からの乗算結
果データブロックおよび第2シフタ32からのデータブ
ロックCを用いた加算が行われる。
【0071】3回目以降の演算については、2回目の演
算と同様であり、最終の演算が終了すると、累積加算器
33からの加算結果データブロックがデータメモリ10
0に格納される。また、第2スケール補正処理は、乗算
結果ブロックスケールファクタがブロックスケールファ
クタ検出器72からのブロックスケールファクタよりも
大きいときに行われる。なお、第2スケール補正処理に
よる1回目の演算については、第1スケール補正処理に
よる1回目の演算と同様であるので、2回目以降の演算
を説明する。
【0072】第2スケール補正処理が行われると、補正
ブロックスケールファクタが第2シフタ32に与えら
れ、データブロックCのデータが第2シフタ32に入力
され、第2シフタ32により、補正ブロックスケールフ
ァクタに相当するシフト量で、データブロックCのデー
タに対して右シフトが行われ、その結果が累積加算器3
3に入力される。すなわち、データブロックCのデータ
は、その右シフトにより、乗算結果データブロックのデ
ータと桁位置が一致するように補正される。
【0073】一方、第1シフタ35にはスケールファク
タが与えられることなく、データブロックAの2番目の
データが第1シフタ35に入力されるので、データブロ
ックAのデータは、右シフトが行われずそのまま乗算器
30に入力される。また、これと同時に、データブロッ
クBの2番目のデータが乗算器30に入力される。そし
て、乗算器30により、データブロックBおよび第1シ
フタ35からのデータブロックAを用いた乗算が行わ
れ、その結果が乗算結果データブロックとして累積加算
器33に入力される。最終的な加算では、累積加算器3
3により、桁位置が一致した状態で、乗算器30からの
乗算結果データブロックおよび第2シフタ32からのデ
ータブロックCを用いた加算が行われる。
【0074】3回目以降の演算については、2回目の演
算と同様であり、最終の演算が終了すると、累積加算器
33からの加算結果データブロックがデータメモリ10
0に格納される。したがって、異なる複数のデータブロ
ック間で乗累算を行う場合には、上式(1),(2)に
示すように、各乗累算が前段の乗累算の完了を待って直
列に行われる。
【0075】データA[i][0],X[i][0]を用いてY[0]
を求める第1の乗累算と、データA[i][1],X[i][1]を
用いてY[1]を求める第2の乗累算とを行うことを考え
る。第1の乗累算については、例えば、k個のデータを
含むデータブロックA,Xが与えられたとき、累積加算
器33による第1回目の演算により上式(1)の右辺第
1項が演算され、累積加算器33による第2回目の演算
により上式(1)の右辺第1項および第2項が演算さ
れ、同じ要領でこれをk回繰り返すことにより、累積加
算器33からの加算結果データブロックが演算結果Y
[0]として得られる。演算結果Y[0]は、演算が完了した
時点でデータメモリ100に格納される。第2の乗累算
についてもこれと同様である。
【0076】このようにして、本実施の形態では、与え
られたスケールファクタに基づいてデータブロックAの
各データに対してスケーリングを行う第1シフタ35
と、与えられたスケールファクタに基づいてデータブロ
ックCの各データに対してスケーリングを行う第2シフ
タ32と、データブロックBおよび第1シフタ35から
のデータブロックAを用いた乗算を行う乗算器30と、
乗算器30からの乗算結果データブロックおよび第2シ
フタ32からのデータブロックCを用いた加算を行う累
積加算器33とを備え、補正ブロックスケールファクタ
を算出し、補正ブロックスケールファクタを第1シフタ
35に与え、データブロックAのデータを第1シフタ3
5に入力し、かつ、第2シフタ32にスケールファクタ
を与えず、データブロックCのデータを第2シフタ32
に入力する第1スケール補正処理と、補正ブロックスケ
ールファクタを第2シフタ32に与え、データブロック
Cのデータを第2シフタ32に入力し、かつ、第1シフ
タ35にスケールファクタを与えず、データブロックA
のデータを第1シフタ35に入力する第2スケール補正
処理とのうちいずれかを行うようになっている。
【0077】これにより、第1シフタ35によるスケー
リングを乗算前に行うので、従来に比して、第1シフタ
35の回路規模を比較的縮小することができる。具体的
に、上記第1の実施の形態では、従来40ビット必要で
あったものが16ビットにすることができる。また、乗
算器30と累積加算器33との間に第1シフタ35を設
けないので、クリティカルパスが改善され、従来に比し
て、演算負荷を比較的低減することができる。
【0078】上記第1の実施の形態において、第1シフ
タ35は、請求項1、3、5、9、11または13記載
の第1スケーリング手段に対応し、第2シフタ32は、
請求項1、3、5、9、11または13記載の第2スケ
ーリング手段に対応し、乗算器30は、請求項1、5ま
たは13記載の乗算手段に対応している。また、累積加
算器33は、請求項1、5または13記載の加算手段に
対応し、データメモリ100は、請求項5または13記
載の記憶手段に対応し、ブロックスケールファクタ検出
器72は、請求項5または13記載のブロックスケール
ファクタ検出手段に対応している。
【0079】次に、本発明の第2の実施の形態を図面を
参照しながら説明する。図3および図4は、本発明に係
るデータ演算処理装置の第2の実施の形態を示す図であ
る。なお、以下、上記第1の実施の形態と異なる部分に
ついてのみ説明し、重複する部分については同一の符号
を付して説明を省略する。本実施の形態は、本発明に係
るデータ演算処理装置およびデータ演算処理プログラム
を、図3に示すように、ブロックフローティング方式に
より乗累算を行う場合について適用したものであり、上
記第1の実施の形態と異なるのは、異なる複数のデータ
ブロック間で乗累算を並列に行う点にある。
【0080】まず、本発明に係るデータ演算処理装置の
構成を図3を参照しながら説明する。図3は、本発明に
係るデータ演算処理装置の構成を示すブロック図であ
る。本発明に係るデータ演算処理装置は、図3に示すよ
うに、上記第1の実施の形態におけるデータ演算処理装
置とほぼ同一の構成であるが、異なるのは、シフタ制御
装置71が、加算器70からの乗算結果ブロックスケー
ルファクタのほかデータバス110から与えられるブロ
ックスケールファクタに基づいて第1シフタ35および
第2シフタ32を制御するようになっている点、累積加
算器33に代えて加算器34を設けた点、および第2シ
フタ32への入力がデータバス110からとなっている
点である。
【0081】次に、上記第2の実施の形態の動作を図4
を参照しながら説明する。図4は、乗累算を行う過程を
時系列に示す図である。まず、制御ロジック400によ
り、図4に示すように、データブロックAおよびデータ
ブロックBがデータメモリ100から読み出される。そ
して、制御ロジック400とシフタ制御装置71との連
携により、補正ブロックスケールファクタが算出され、
補正ブロックスケールファクタに基づいて第1スケール
補正処理および第2スケール補正処理のうちいずれかが
選択的に行われる。
【0082】第1スケール補正処理は、ブロックスケー
ルファクタ検出器72からのブロックスケールファクタ
が乗算結果ブロックスケールファクタよりも大きいとき
に行われる。第1スケール補正処理が行われると、補正
ブロックスケールファクタが第1シフタ35に与えら
れ、データブロックAの1番目のデータが第1シフタ3
5に入力され、第1シフタ35により、補正ブロックス
ケールファクタに相当するシフト量で、データブロック
Aの1番目のデータに対して右シフトが行われる。ま
た、これと同時に、データブロックBの1番目のデータ
が乗算器30に入力される。そして、乗算器30によ
り、データブロックBおよび第1シフタ35からのデー
タブロックAを用いた乗算が行われ、その結果が乗算結
果データブロックとして加算器34に入力される。加算
器34では、加算を行う一方のデータが存在していない
ので、加算器34からの加算結果データブロックがデー
タメモリ100に格納される。以下、データメモリ10
0に格納された加算結果データブロックをデータブロッ
クCと称し、第1スケール補正処理による2回目以降の
演算を説明する。
【0083】2回目の演算では、補正ブロックスケール
ファクタが第1シフタ35に与えられ、データブロック
Aの2番目のデータが第1シフタ35に入力され、第1
シフタ35により、補正ブロックスケールファクタに相
当するシフト量で、データブロックAの2番目のデータ
に対して右シフトが行われる。また、これと同時に、デ
ータブロックBの2番目のデータが乗算器30に入力さ
れる。そして、乗算器30により、データブロックBお
よび第1シフタ35からのデータブロックAを用いた乗
算が行われ、その結果が乗算結果データブロックとして
加算器34に入力される。すなわち、乗算結果データブ
ロックのデータは、データブロックAに対する右シフト
により、データブロックCのデータと桁位置が一致する
ように補正される。
【0084】一方、第2シフタ32にはスケールファク
タが与えられることなく、データブロックCのデータが
第2シフタ32に入力されるので、データブロックCの
データは、右シフトが行われずそのまま加算器34に入
力される。最終的な加算では、加算器34により、桁位
置が一致した状態で、乗算器30からの乗算結果データ
ブロックおよび第2シフタ32からのデータブロックC
を用いた加算が行われる。加算器34からの加算結果デ
ータブロックは、またデータメモリ100に格納され
る。
【0085】3回目以降の演算については、2回目の演
算と同様であり、最終の演算が終了すると、乗累算が完
了した加算結果データブロックがデータメモリ100に
格納される。また、第2スケール補正処理は、乗算結果
ブロックスケールファクタがブロックスケールファクタ
検出器72からのブロックスケールファクタよりも大き
いときに行われる。なお、第2スケール補正処理による
1回目の演算については、第1スケール補正処理による
1回目の演算と同様であるので、2回目以降の演算を説
明する。
【0086】第2スケール補正処理が行われると、補正
ブロックスケールファクタが第2シフタ32に与えら
れ、データブロックCのデータが第2シフタ32に入力
され、第2シフタ32により、補正ブロックスケールフ
ァクタに相当するシフト量で、データブロックCのデー
タに対して右シフトが行われ、その結果が加算器34に
入力される。すなわち、データブロックCのデータは、
その右シフトにより、乗算結果データブロックのデータ
と桁位置が一致するように補正される。
【0087】一方、第1シフタ35にはスケールファク
タが与えられることなく、データブロックAの2番目の
データが第1シフタ35に入力されるので、データブロ
ックAのデータは、右シフトが行われずそのまま乗算器
30に入力される。また、これと同時に、データブロッ
クBの2番目のデータが乗算器30に入力される。そし
て、乗算器30により、データブロックBおよび第1シ
フタ35からのデータブロックAを用いた乗算が行わ
れ、その結果が乗算結果データブロックとして加算器3
4に入力される。最終的な加算では、加算器34によ
り、桁位置が一致した状態で、乗算器30からの乗算結
果データブロックおよび第2シフタ32からのデータブ
ロックCを用いた加算が行われる。加算器34からの加
算結果データブロックは、またデータメモリ100に格
納される。
【0088】3回目以降の演算については、2回目の演
算と同様であり、最終の演算が終了すると、乗累算が完
了した加算結果データブロックがデータメモリ100に
格納される。したがって、異なる複数のデータブロック
間で乗累算を行う場合には、上式(3)〜(8)に示す
ように、各乗累算を、前段の乗累算の完了を待つことな
く並列に行うことができる。
【0089】データA[i][0],X[i][0]を用いてY[0]
を求める第1の乗累算と、データA[i][1],X[i][1]を
用いてY[1]を求める第2の乗累算とを行うことを考え
る。第1の乗累算と第2の乗累算は、並列して行われ
る。第1の乗累算については、例えば、k個のデータを
含むデータブロックA[0],X[0]が与えられたとき、ま
ず、データブロックA[0],X[0]の1番目のデータを乗
算器30に与え、上式(3)のように、加算器34によ
る演算により第1項が演算され、その結果がY'''[0]と
してデータメモリ100に格納される。そして、上式
(4)に示すように、同じ要領で第2の乗累算における
第1項が演算され、その結果がY'''[1]としてデータメ
モリ100に格納される。
【0090】次いで、第1の乗累算については、データ
ブロックA[0],X[0]の2番目のデータを乗算器30
に、Y'''[0]を第2シフタ32にそれぞれ与え、上式
(5)のように、加算器34による演算により第1項お
よび第2項が演算され、その結果がY''[0]としてデー
タメモリ100に格納される。そして、上式(6)に示
すように、同じ要領で第2の乗累算における第1項およ
び第2項が演算され、その結果がY''[1]としてデータ
メモリ100に格納される。
【0091】その後は、同じ要領でこれを交互にk回繰
り返すことにより、データメモリ100には、第1の乗
累算結果および第2の乗累算結果がそれぞれ格納される
ことになる。このようにして、本実施の形態では、与え
られたスケールファクタに基づいてデータブロックAの
各データに対してスケーリングを行う第1シフタ35
と、与えられたスケールファクタに基づいてデータブロ
ックCの各データに対してスケーリングを行う第2シフ
タ32と、データブロックBおよび第1シフタ35から
のデータブロックAを用いた乗算を行う乗算器30と、
乗算器30からの乗算結果データブロックおよび第2シ
フタ32からのデータブロックCを用いた加算を行う加
算器34とを備え、補正ブロックスケールファクタを算
出し、補正ブロックスケールファクタを第1シフタ35
に与え、データブロックAのデータを第1シフタ35に
入力し、かつ、第2シフタ32にスケールファクタを与
えず、データブロックCのデータを第2シフタ32に入
力する第1スケール補正処理と、補正ブロックスケール
ファクタを第2シフタ32に与え、データブロックCの
データを第2シフタ32に入力し、かつ、第1シフタ3
5にスケールファクタを与えず、データブロックAのデ
ータを第1シフタ35に入力する第2スケール補正処理
とのうちいずれかを行うようになっている。
【0092】これにより、上記第1の実施の形態と同等
の効果が得られる。上記第2の実施の形態において、第
1シフタ35は、請求項1、3、6、9、11または1
4記載の第1スケーリング手段に対応し、第2シフタ3
2は、請求項1、3、6、9、11または14記載の第
2スケーリング手段に対応し、乗算器30は、請求項
1、6または14記載の乗算手段に対応している。ま
た、加算器34は、請求項1、6または14記載の加算
手段に対応し、データメモリ100は、請求項6または
14記載の記憶手段に対応し、ブロックスケールファク
タ検出器72は、請求項6または14記載のブロックス
ケールファクタ検出手段に対応している。
【0093】次に、本発明の第3の実施の形態を図面を
参照しながら説明する。図5および図6は、本発明に係
るデータ演算処理装置の第3の実施の形態を示す図であ
る。本実施の形態は、本発明に係るデータ演算処理装置
およびデータ演算処理プログラムを、図5に示すよう
に、ブロックフローティング方式により乗累算を行う場
合について適用したものであり、上記第1および第2の
実施の形態と異なるのは、複数のデータを含んでデータ
グループを構成し、さらに複数のデータグループを含ん
でデータブロックを構成し、データブロックは、ブロッ
クスケールファクタのほか各データグループのグループ
スケールファクタを含む点にある。
【0094】まず、本発明に係るデータ演算処理装置の
構成を図5を参照しながら説明する。図5は、本発明に
係るデータ演算処理装置の構成を示すブロック図であ
る。本発明に係るデータ演算処理装置は、図5に示すよ
うに、データを記憶するためのデータメモリ100と、
データメモリ100のデータに対して乗累算を行う演算
部200と、ブロックフローティングに必要な正規化を
行うための制御部300と、これらの制御を行う制御ロ
ジック400と、アドレス生成器500とで構成されて
いる。データメモリ100、演算部200、制御部30
0および制御ロジック400は、データバス110で相
互にかつデータ授受可能に接続されており、データメモ
リ100およびアドレス生成器500は、データアドレ
スバス120で相互にかつデータ授受可能に接続されて
いる。
【0095】データメモリ100は、図示しない外部か
らデータを入力し、演算部200の演算対象となるデー
タとして格納するようになっている。データメモリ10
0では、データは、図6に示すように、データブロック
単位で格納される。図6は、データメモリ100におけ
るデータ構造を示す図である。データメモリ100で
は、図6に示すように、データが計算ユニットの数に相
当する個数(この場合、k個)組合わさってデータグル
ープとして格納され、さらに、データグループが複数組
合わさってデータブロックとして格納される。すなわ
ち、データブロックは、複数のデータグループを含んで
構成され、データグループは、計算ユニットの数に相当
する個数のデータを含んで構成されている。
【0096】演算部200は、同一機能を有するk個の
計算ユニットP0〜Pk-1で構成されている。各計算ユニ
ットP0〜Pk-1には、1つのデータグループのデータが
それぞれ振り分けられ、各計算ユニットP0〜Pk-1は、
データグループ単位でデータを並列処理する。各計算ユ
ニットP0〜Pk-1は、与えられたスケールファクタに基
づいてデータに対してスケーリングを行う第2シフタ1
0と、第2シフタ10からのデータを保持する入力レジ
スタ18a,18bと、入力レジスタ18a,18bの
データを乗算する乗算器20と、乗算器20からのデー
タと累積レジスタ26のデータを加算する累積加算器2
2と、第2シフタ10の出力および累積加算器22の出
力を切り換えるセレクタ24と、セレクタ24からのデ
ータを保持する累積レジスタ26と、累積レジスタ26
のデータのスケールファクタを算出するユニットスケー
ルファクタ検出器14と、与えられたスケールファクタ
に基づいて累積レジスタ26のデータに対してスケーリ
ングを行う第1シフタ16とで構成されている。
【0097】第2シフタ10は、与えられたスケールフ
ァクタに相当するシフト量で、与えられたデータに対し
て右シフトを行うようになっており、第1シフタ16
は、与えられたスケールファクタに相当するシフト量
で、累積レジスタ26のデータに対して左シフトを行う
ようになっている。制御部300は、ユニットスケール
ファクタ検出器14で算出したスケールファクタからグ
ループスケールファクタを検出するグループスケールフ
ァクタ検出器50と、グループスケールファクタを格納
するグループスケールファクタレジスタファイル52
と、グループスケールファクタ検出器50で算出したス
ケールファクタからブロックスケールファクタを検出す
るブロックスケールファクタ検出器54と、ブロックス
ケールファクタを格納するブロックスケールファクタレ
ジスタ56と、加減算器58と、グループスケールファ
クタとブロックスケールファクタの差分を計算する桁合
わせ用加算器60とで構成されている。
【0098】グループスケールファクタ検出器50は、
各計算ユニットP0〜Pk-1のユニットスケールファクタ
検出器14で算出したスケールファクタうち最小のもの
をグループスケールファクタとして検出し、制御ロジッ
ク400の制御により、検出したグループスケールファ
クタをグループスケールファクタレジスタファイル52
および各計算ユニットP0〜Pk-1の第1シフタ16に出
力するようになっている。例えば、各計算ユニットP0
〜Pk-1(例えば、k=3)のユニットスケールファク
タ検出器14からスケールファクタとして「1」、
「2」、「3」を入力した場合、そのうちの最小値であ
る「1」をそのグループスケールファクタとして検出す
る。
【0099】グループスケールファクタレジスタファイ
ル52は、グループスケールファクタ検出器50で検出
したグループスケールファクタをそれぞれ一時的に格納
し、制御ロジック400の制御により、データメモリ1
00または桁合わせ用加算器60にグループスケールフ
ァクタを出力するようになっている。ブロックスケール
ファクタ検出器54は、グループスケールファクタ検出
器50で検出したグループスケールファクタのうち最小
のものをブロックスケールファクタとして検出するよう
になっている。例えば、あるデータブロックのグループ
スケールファクタが「3」、「4」、「5」として検出
された場合、そのうちの最小値である「3」をそのブロ
ックスケールファクタとして検出する。
【0100】ブロックスケールファクタレジスタ56
は、ブロックスケールファクタ検出器54で検出したブ
ロックスケールファクタを一時的に格納し、制御ロジッ
ク400の制御により、データメモリ100または桁合
わせ用加算器60にグループスケールファクタを出力す
るようになっている。桁合わせ用加算器60は、グルー
プスケールファクタレジスタファイル52から出力され
たグループスケールファクタと、ブロックスケールファ
クタレジスタ56から出力されたブロックスケールファ
クタとを入力し、グループスケールファクタからブロッ
クスケールファクタを減算してその差分を計算し、制御
ロジック400の制御により、その差分からなるスケー
ルファクタを各計算ユニットP 0〜Pk-1の第2シフタ1
0に出力するようになっている。
【0101】制御ロジック400は、データメモリ10
0のデータに対して初めて演算を行うときは、次の制御
処理を実行するようになっている。まず、乗算対象とな
る2つのデータブロックをデータメモリ100から読み
出し、一方のデータブロックの各データグループごと
に、そのデータグループのデータをそれぞれ第2シフタ
10を介して各計算ユニットP0〜Pk-1の入力レジスタ
18aに振り分ける。また、他方のデータブロックの各
データグループごとに、そのデータグループのデータを
それぞれ第2シフタ10を介して各計算ユニットP0
k-1の入力レジスタ18bに振り分ける。
【0102】そして、グループスケールファクタ検出器
50で検出したグループスケールファクタを各計算ユニ
ットP0〜Pk-1の第1シフタ16に与え、各計算ユニッ
トP 0〜Pk-1の第1シフタ16からのデータをデータバ
ス110経由でデータメモリ100に格納する。また、
制御ロジック400は、データメモリ100のデータに
対して再度演算を行うときは、次の制御処理を実行する
ようになっている。
【0103】まず、乗算対象となる2つのデータブロッ
クのブロックスケールファクタの和である乗算結果ブロ
ックスケールファクタと、加算結果データブロックのブ
ロックスケールファクタとの差分である補正ブロックス
ケールファクタを算出し、補正ブロックスケールファク
タに基づいて第1スケール補正処理および第2スケール
補正処理のうちいずれかを選択的に行う。
【0104】第1スケール補正処理は、加算結果データ
ブロックのブロックスケールファクタが乗算結果ブロッ
クスケールファクタよりも小さいときに行う。第1スケ
ール補正処理では、乗算対象となる2つのデータブロッ
クをデータメモリ100から読み出し、一方のデータブ
ロックの各データグループごとに、そのデータグループ
のグループスケールファクタとそのブロックスケールフ
ァクタとの差分からなるスケールファクタに補正ブロッ
クスケールファクタを加算したものを第2シフタ10に
与え、そのデータグループのデータをそれぞれ第2シフ
タ10を介して各計算ユニットP0〜Pk-1の入力レジス
タ18aに振り分ける。また、他方のデータブロックの
各データグループごとに、そのデータグループのグルー
プスケールファクタとそのブロックスケールファクタと
の差分からなるスケールファクタを第2シフタ10に与
え、そのデータグループのデータをそれぞれ第2シフタ
10を介して各計算ユニットP0〜Pk-1の入力レジスタ
18bに振り分ける。
【0105】一方、加算結果データブロックをデータメ
モリ100から読み出し、加算結果データブロックの各
データグループごとに、そのデータグループのグループ
スケールファクタとそのブロックスケールファクタとの
差分からなるスケールファクタを第2シフタ10に与
え、そのデータグループのデータをそれぞれ第2シフタ
10、セレクタ24および累積レジスタ26を介して各
計算ユニットP0〜Pk-1の累積加算器22に振り分け
る。
【0106】また、第2スケール補正処理は、乗算結果
ブロックスケールファクタが加算結果データブロックの
ブロックスケールファクタよりも小さいときに行う。第
2スケール補正処理では、乗算対象となる2つのデータ
ブロックをデータメモリ100から読み出し、一方のデ
ータブロックの各データグループごとに、そのデータグ
ループのグループスケールファクタとそのブロックスケ
ールファクタとの差分からなるスケールファクタを第2
シフタ10に与え、そのデータグループのデータをそれ
ぞれ第2シフタ10を介して各計算ユニットP0〜Pk-1
の入力レジスタ18aに振り分ける。また、他方のデー
タブロックの各データグループごとに、そのデータグル
ープのグループスケールファクタとそのブロックスケー
ルファクタとの差分からなるスケールファクタを第2シ
フタ10に与え、そのデータグループのデータをそれぞ
れ第2シフタ10を介して各計算ユニットP0〜Pk-1
入力レジスタ18bに振り分ける。
【0107】一方、加算結果データブロックをデータメ
モリ100から読み出し、加算結果データブロックの各
データグループごとに、そのデータグループのグループ
スケールファクタとそのブロックスケールファクタとの
差分からなるスケールファクタに補正ブロックスケール
ファクタを加算したものを第2シフタ10に与え、その
データグループのデータをそれぞれ第2シフタ10、セ
レクタ24および累積レジスタ26を介して各計算ユニ
ットP0〜Pk-1の累積加算器22に振り分ける。
【0108】次に、上記第3の実施の形態の動作を説明
する。各計算ユニットP0〜Pk-1では、制御ロジック4
00の制御およびセレクタ24の切換により、第2シフ
タ10が、上記第2の実施の形態における第1シフタ3
5および第2シフタ32の役割を果たし、上記第2の実
施の形態とほぼ同様の動作が行われる。したがって、上
記第2の実施の形態の動作例を参照して2回目以降の演
算を説明する。
【0109】まず、制御ロジック400により、データ
ブロックAおよびデータブロックBがデータメモリ10
0から読み出される。そして、制御ロジック400によ
り、補正ブロックスケールファクタが算出され、補正ブ
ロックスケールファクタに基づいて第1スケール補正処
理および第2スケール補正処理のうちいずれかが選択的
に行われる。
【0110】第1スケール補正処理が行われると、デー
タブロックAの各データグループごとに、そのデータグ
ループのグループスケールファクタとデータブロックA
のブロックスケールファクタとの差分からなるスケール
ファクタに補正ブロックスケールファクタを加算したも
のが各計算ユニットP0〜Pk-1の第2シフタ10に与え
られ、そのデータグループのデータがそれぞれ第2シフ
タ10および入力レジスタ18aを介して各計算ユニッ
トP0〜Pk-1の乗算器20に乗数として入力される。し
たがって、第2シフタ10により、各グループスケール
ファクタ、ブロックスケールファクタおよび補正ブロッ
クスケールファクタに基づいて、データブロックAの各
データに対して右シフトが行われる。また、データブロ
ックBの各データグループごとに、そのデータグループ
のグループスケールファクタとデータブロックBのブロ
ックスケールファクタとの差分からなるスケールファク
タが各計算ユニットP0〜Pk-1の第2シフタ10に与え
られ、そのデータグループのデータがそれぞれ第2シフ
タ10および入力レジスタ18bを介して各計算ユニッ
トP0〜Pk-1の乗算器20に被乗数として入力される。
したがって、第2シフタ10により、各グループスケー
ルファクタおよびブロックスケールファクタに基づい
て、データブロックBの各データに対して右シフトが行
われる。そして、乗算器20により、第2シフタ10か
らのデータブロックAおよびデータブロックBを用いた
乗算が行われ、その結果が乗算結果データブロックとし
て累積加算器22に入力される。すなわち、乗算結果デ
ータブロックの各データは、データブロックAに対する
補正ブロックスケールファクタによる右シフトにより、
データブロックCのデータと桁位置が一致するように補
正される。
【0111】一方、データブロックCの各データグルー
プごとに、そのデータグループのグループスケールファ
クタとデータブロックCのブロックスケールファクタと
の差分からなるスケールファクタが各計算ユニットP0
〜Pk-1の第2シフタ10に与えられ、そのデータグル
ープのデータがそれぞれ第2シフタ10、セレクタ24
および累積レジスタ26を介して各計算ユニットP0
k-1の累積加算器22に入力される。したがって、第
2シフタ10により、各グループスケールファクタおよ
びブロックスケールファクタに基づいて、データブロッ
クCの各データに対して右シフトが行われる。最終的な
加算では、累積加算器22により、桁位置が一致した状
態で、乗算器20からの乗算結果データブロックおよび
第2シフタ10からのデータブロックCを用いた加算が
行われる。
【0112】また、第2スケール補正処理が行われる
と、データブロックCの各データグループごとに、その
データグループのグループスケールファクタとデータブ
ロックCのブロックスケールファクタとの差分からなる
スケールファクタに補正ブロックスケールファクタを加
算したものが各計算ユニットP0〜Pk-1の第2シフタ1
0に与えられ、そのデータグループのデータがそれぞれ
第2シフタ10、セレクタ24および累積レジスタ26
を介して各計算ユニットP0〜Pk-1の累積加算器22に
入力される。したがって、第2シフタ10により、各グ
ループスケールファクタ、ブロックスケールファクタお
よび補正ブロックスケールファクタに基づいて、データ
ブロックCの各データに対して右シフトが行われ、その
結果が累積加算器22に入力される。すなわち、データ
ブロックCの各データは、補正ブロックスケールファク
タによる右シフトにより、乗算結果データブロックのデ
ータと桁位置が一致するように補正される。
【0113】一方、データブロックAの各データグルー
プごとに、そのデータグループのグループスケールファ
クタとデータブロックAのブロックスケールファクタと
の差分からなるスケールファクタが各計算ユニットP0
〜Pk-1の第2シフタ10に与えられ、そのデータグル
ープのデータがそれぞれ第2シフタ10および入力レジ
スタ18aを介して各計算ユニットP0〜Pk-1の乗算器
20に乗数として入力される。したがって、第2シフタ
10により、各グループスケールファクタおよびブロッ
クスケールファクタに基づいて、データブロックAの各
データに対して右シフトが行われる。また、データブロ
ックBの各データグループごとに、そのデータグループ
のグループスケールファクタとデータブロックBのブロ
ックスケールファクタとの差分からなるスケールファク
タが各計算ユニットP0〜Pk-1の第2シフタ10に与え
られ、そのデータグループのデータがそれぞれ第2シフ
タ10および入力レジスタ18bを介して各計算ユニッ
トP0〜Pk-1の乗算器20に被乗数として入力される。
したがって、第2シフタ10により、各グループスケー
ルファクタおよびブロックスケールファクタに基づい
て、データブロックBの各データに対して右シフトが行
われる。そして、乗算器20により、第2シフタ10か
らのデータブロックAおよびデータブロックBを用いた
乗算が行われ、その結果が乗算結果データブロックとし
て累積加算器22に入力される。最終的な加算では、累
積加算器22により、桁位置が一致した状態で、乗算器
20からの乗算結果データブロックおよび第2シフタ1
0からのデータブロックCを用いた加算が行われる。
【0114】このようにして、本実施の形態では、各計
算ユニットP0〜Pk-1は、与えられたスケールファクタ
に基づいてデータに対して右シフトを行う第2シフタ1
0と、第2シフタ10からのデータに対して乗算を行う
乗算器20と、第2シフタ10からのデータおよび乗算
器20からのデータに対して加算を行う累積加算器22
とを有し、制御ロジック400は、データブロックA〜
Cをデータメモリ100から読み出し、データブロック
AおよびデータブロックCのブロックスケールファクタ
の和である乗算結果ブロックスケールファクタと、デー
タブロックBのブロックスケールファクタとの差分から
なる補正ブロックスケールファクタを算出し、算出した
補正ブロックスケールファクタに基づいて第1スケール
補正処理および第2スケール補正処理のいずれかを行う
ようになっている。
【0115】これにより、上記第2の実施の形態と同等
の効果が得られる。上記第3の実施の形態において、第
2シフタ10は、請求項7若しくは15記載の第1スケ
ーリング手段、または請求項7若しくは15記載の第2
スケーリング手段に対応し、乗算器20は、請求項7記
載の乗算手段に対応し、累積加算器22は、請求項7記
載の加算手段に対応している。
【0116】上記第3の実施の形態において、第2シフ
タ10は、請求項8または16記載のスケーリング手段
に対応し、乗算器20は、請求項8または16記載の乗
算手段に対応し、累積加算器22は、請求項8または1
6記載の加算手段に対応し、データメモリ100は、請
求項8または16記載の記憶手段に対応している。ま
た、制御ロジック400は、請求項8または16記載の
制御手段に対応している。
【0117】なお、上記第1ないし第3の実施の形態に
おいては、加算対象となる2つのデータブロックのうち
ブロックスケールファクタの小さいものの各データに対
して、右シフトを行うことにより桁位置を一致させるよ
うに構成したが、これに限らず、加算対象となる2つの
データブロックのうちブロックスケールファクタの大き
いものの各データに対して、左シフトを行うことにより
桁位置を一致させるように構成してもよい。
【0118】また、上記第1ないし第3の実施の形態に
おいては、数値演算を行うのに本発明を適用した場合に
ついて説明したが、これに限らず、本発明の主旨を逸脱
しない範囲で他のものにも適用可能である。また、上記
第1ないし第3の実施の形態においては、制御ロジック
400を、内部のロジックに従って各部の制御を行うよ
うに構成したが、これに限らず、制御ロジック400に
代えて、CPU、RAMおよびROMをバス接続してデ
ータ演算処理部を構成し、データ演算処理部は、CPU
により、上記の制御手順を示したプログラムをROMか
ら読み出して実行するように構成してもよい。この場
合、上記の制御手順を示したプログラムは、ROMに格
納されるに限らず、上記の制御手順を示したプログラム
が記憶された記憶媒体から、そのプログラムをRAMに
読み込んで実行するようにしてもよい。
【0119】また、上記第1ないし第3の実施の形態に
おいては、本発明に係るデータ演算処理装置を、データ
メモリ100と、演算部200,250と、制御部30
0と、制御ロジック400と、アドレス生成器500と
を備えたハードウェアで構成したが、これに限らず、例
えば、CPU、RAMおよびROMをバス接続して構成
し、CPUにより、各部の機能を実現するための制御プ
ログラムをROMから読み出して実行するように、一部
または全部をソフトウェアで構成してもよい。この場合
も、制御プログラムは、ROMに格納されるに限らず、
制御プログラムが記憶された記憶媒体から、その制御プ
ログラムをRAMに読み込んで実行するようにしてもよ
い。
【0120】ここで、記憶媒体とは、RAM、ROM等
の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒
体、CD、CDV、LD、DVD等の光学的読取方式記
憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体
であって、電子的、磁気的、光学的等の読み取り方法の
いかんにかかわらず、コンピュータで読み取り可能な記
憶媒体であれば、あらゆる記憶媒体を含むものである。
【0121】
【発明の効果】以上説明したように、本発明に係る請求
項1ないし7記載のデータ演算処理装置によれば、第1
スケーリング手段によるスケーリングを乗算前に行うの
で、従来に比して、第1スケーリング手段の回路規模を
比較的縮小することができるという効果が得られる。ま
た、乗算手段と加算手段との間に第1スケーリング手段
を設けないので、クリティカルパスが改善され、従来に
比して、演算負荷を比較的低減することができるという
効果も得られる。
【0122】さらに、本発明に係る請求項8記載のデー
タ演算処理装置によれば、スケーリング手段によるスケ
ーリングを乗算前に行うので、従来に比して、スケーリ
ング手段の回路規模を比較的縮小することができるとい
う効果が得られる。また、乗算手段と加算手段との間に
スケーリング手段を設けないので、クリティカルパスが
改善され、従来に比して、演算負荷を比較的低減するこ
とができるという効果も得られる。
【0123】一方、本発明に係る請求項9ないし15記
載のデータ演算処理プログラムによれば、請求項1記載
のデータ演算処理装置と同等の効果が得られる。さら
に、本発明に係る請求項16記載のデータ演算処理プロ
グラムによれば、請求項8記載のデータ演算処理装置と
同等の効果が得られる。
【図面の簡単な説明】
【図1】本発明に係るデータ演算処理装置の構成を示す
ブロック図である。
【図2】乗累算を行う過程を時系列に示す図である。
【図3】本発明に係るデータ演算処理装置の構成を示す
ブロック図である。
【図4】乗累算を行う過程を時系列に示す図である。
【図5】本発明に係るデータ演算処理装置の構成を示す
ブロック図である。
【図6】データメモリ100におけるデータ構造を示す
図である。
【図7】ブロックフローティング方式による従来のデー
タ演算処理装置の構成を示すブロック図である。
【図8】ブロックフローティング方式による従来のデー
タ演算処理装置の構成を示すブロック図である。
【符号の説明】
10,32 第2シフタ 14 ユニットスケールファクタ
検出器 16,31,35 第1シフタ 18a,18b 入力レジスタ 20,30 乗算器 22,33 累積加算器 24 セレクタ 26 累積レジスタ 34,70 加算器 50 グループスケールファクタ
検出器 52 グループスケールファクタ
レジスタファイル 54,72 ブロックスケールファクタ
検出器 56 ブロックスケールファクタ
レジスタ 58 加減算器 60 桁合わせ用加算器 71 シフタ制御装置 100 データメモリ 110 データバス 120 アドレスバス 200,250 演算部 300,350 制御部 400 制御ロジック 500 アドレス生成器

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 1又は複数のデータを含んでデータブロ
    ックを構成し、前記データブロックは、前記データブロ
    ックのブロックスケールファクタを含み、前記データブ
    ロック単位でデータを処理する装置であって、 与えられたスケールファクタに基づいて第1データブロ
    ックの各データに対してスケーリングを行う第1スケー
    リング手段と、与えられたスケールファクタに基づいて
    第2データブロックの各データに対してスケーリングを
    行う第2スケーリング手段と、第3データブロック及び
    前記第1スケーリング手段からの第1データブロックを
    用いた乗算を行う乗算手段と、前記乗算手段からの乗算
    結果データブロック及び前記第2スケーリング手段から
    の第2データブロックを用いた加算を行う加算手段とを
    備え、 前記第1データブロック及び前記第3データブロックの
    ブロックスケールファクタの和である乗算結果ブロック
    スケールファクタと、前記第2データブロックのブロッ
    クスケールファクタとの差分からなる補正ブロックスケ
    ールファクタを算出し、 前記補正ブロックスケールファクタを前記第1スケーリ
    ング手段に与え、前記第1データブロックのデータを前
    記第1スケーリング手段に入力し、且つ、前記第2スケ
    ーリング手段にスケールファクタを与えず、前記第2デ
    ータブロックのデータを前記第2スケーリング手段に入
    力する第1スケール補正処理と、 前記補正ブロックスケールファクタを前記第2スケーリ
    ング手段に与え、前記第2データブロックのデータを前
    記第2スケーリング手段に入力し、且つ、前記第1スケ
    ーリング手段にスケールファクタを与えず、前記第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力する第2スケール補正処理とのうちいずれかを行うよ
    うになっていることを特徴とするデータ演算処理装置。
  2. 【請求項2】 請求項1において、 前記乗算結果ブロックスケールファクタ及び前記第2デ
    ータブロックのブロックスケールファクタの大小関係に
    基づいて、前記第1スケール補正処理及び前記第2スケ
    ール補正処理のいずれかを選択的に行うようになってい
    ることを特徴とするデータ演算処理装置。
  3. 【請求項3】 請求項2において、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して下
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して下
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2データブロックのブロックスケールファクタが
    前記乗算結果ブロックスケールファクタよりも大きいと
    きは、前記第1スケール補正処理を行い、前記乗算結果
    ブロックスケールファクタが前記第2データブロックの
    ブロックスケールファクタよりも大きいときは、前記第
    2スケール補正処理を行うようになっていることを特徴
    とするデータ演算処理装置。
  4. 【請求項4】 請求項2において、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して上
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して上
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2データブロックのブロックスケールファクタが
    前記乗算結果ブロックスケールファクタよりも大きいと
    きは、前記第2スケール補正処理を行い、前記乗算結果
    ブロックスケールファクタが前記第2データブロックの
    ブロックスケールファクタよりも大きいときは、前記第
    1スケール補正処理を行うようになっていることを特徴
    とするデータ演算処理装置。
  5. 【請求項5】 請求項1乃至4のいずれかにおいて、 データを記憶するための記憶手段と、前記加算手段から
    の加算結果データブロックについて前記ブロックスケー
    ルファクタを検出するブロックスケールファクタ検出手
    段とを備え、 前記第1データブロック及び前記第3データブロックの
    データを前記記憶手段から読み出し、読み出した第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力するとともに、読み出した第3データブロックのデー
    タを前記乗算手段に入力し、 前記ブロックスケールファクタ検出手段で検出したブロ
    ックスケールファクタを前記加算結果データブロックに
    含めて前記第2データブロックを構成し、構成した第2
    データブロックのデータを前記記憶手段に格納するとと
    もに前記第2スケーリング手段に入力するようになって
    いることを特徴とするデータ演算処理装置。
  6. 【請求項6】 請求項1乃至4のいずれかにおいて、 データを記憶するための記憶手段と、前記加算手段から
    の加算結果データブロックについて前記ブロックスケー
    ルファクタを検出するブロックスケールファクタ検出手
    段とを備え、 前記第1データブロック及び前記第3データブロックの
    データを前記記憶手段から読み出し、読み出した第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力するとともに、読み出した第3データブロックのデー
    タを前記乗算手段に入力し、 前記ブロックスケールファクタ検出手段で検出したブロ
    ックスケールファクタを前記加算結果データブロックに
    含めて前記第2データブロックを構成し、構成した第2
    データブロックのデータを前記記憶手段に格納し、再演
    算を行うときは、前記第2データブロックのデータを前
    記記憶手段から読み出し、読み出した第2データブロッ
    クのデータを前記第2スケーリング手段に入力するよう
    になっていることを特徴とするデータ演算処理装置。
  7. 【請求項7】 1又は複数のデータを含んでデータグル
    ープを構成し、さらに複数のデータグループを含んでデ
    ータブロックを構成し、前記データブロックは、前記各
    データグループのグループスケールファクタ及び前記デ
    ータブロックのブロックスケールファクタを含み、前記
    データブロック単位でデータを処理する装置であって、 与えられたスケールファクタに基づいて第1データブロ
    ックの各データに対してスケーリングを行う第1スケー
    リング手段と、与えられたスケールファクタに基づいて
    第2データブロックの各データに対してスケーリングを
    行う第2スケーリング手段と、第3データブロック及び
    前記第1スケーリング手段からの第1データブロックを
    用いた乗算を行う乗算手段と、前記乗算手段からの乗算
    結果データブロック及び前記第2スケーリング手段から
    の第2データブロックを用いた加算を行う加算手段とを
    備え、 前記第1データブロック及び前記第3データブロックの
    ブロックスケールファクタの和である乗算結果ブロック
    スケールファクタと、前記第2データブロックのブロッ
    クスケールファクタとの差分からなる補正ブロックスケ
    ールファクタを算出し、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記第1スケーリング手段に
    与え、当該データグループのデータを前記第1スケーリ
    ング手段に入力し、且つ、前記第2データブロックの各
    データグループごとに、当該データグループのグループ
    スケールファクタと前記第2データブロックのブロック
    スケールファクタとの差分からなるスケールファクタを
    前記第2スケーリング手段に与え、当該データグループ
    のデータを前記第2スケーリング手段に入力する第1ス
    ケール補正処理と、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記第2スケーリング手段に
    与え、当該データグループのデータを前記第2スケーリ
    ング手段に入力し、且つ、前記第1データブロックの各
    データグループごとに、当該データグループのグループ
    スケールファクタと前記第1データブロックのブロック
    スケールファクタとの差分からなるスケールファクタを
    前記第1スケーリング手段に与え、当該データグループ
    のデータを前記第1スケーリング手段に入力する第2ス
    ケール補正処理とのうちいずれかを行うようになってい
    ることを特徴とするデータ演算処理装置。
  8. 【請求項8】 複数の計算ユニットを備え、1又は複数
    のデータを含んでデータグループを構成し、さらに複数
    のデータグループを含んでデータブロックを構成し、前
    記データブロックは、前記各データグループのグループ
    スケールファクタ及び前記データブロックのブロックス
    ケールファクタを含み、前記データブロック単位でデー
    タを処理する装置であって、 前記各計算ユニットは、与えられたスケールファクタに
    基づいてデータに対してスケーリングを行うスケーリン
    グ手段と、前記スケーリング手段からのデータに対して
    乗算を行う乗算手段と、前記スケーリング手段からのデ
    ータ及び前記乗算手段からのデータに対して加算を行う
    加算手段とを有し、 さらに、データを記憶するための記憶手段と、データ処
    理のための制御を行う制御手段とを備え、 前記制御手段は、第1データブロック、第2データブロ
    ック及び第3データブロックを前記記憶手段から読み出
    し、前記第1データブロック及び前記第3データブロッ
    クのブロックスケールファクタの和である乗算結果ブロ
    ックスケールファクタと、前記第2データブロックのブ
    ロックスケールファクタとの差分からなる補正ブロック
    スケールファクタを算出し、算出した補正ブロックスケ
    ールファクタに基づいて第1スケール補正処理及び第2
    スケール補正処理のいずれかを行うようになっており、 前記第1スケール補正処理は、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記各計算ユニットのスケー
    リング手段に与え、当該データグループのデータをそれ
    ぞれ前記スケーリング手段を介して前記各計算ユニット
    の乗算手段に乗数として入力し、 前記第3データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    3データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に被乗数として入力し、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの加算手段に入力する処理であり、 前記第2スケール補正処理は、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に乗数として入力し、 前記第3データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    3データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に被乗数として入力し、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記各計算ユニットのスケー
    リング手段に与え、当該データグループのデータをそれ
    ぞれ前記スケーリング手段を介して前記各計算ユニット
    の加算手段に入力する処理であることを特徴とするデー
    タ演算処理装置。
  9. 【請求項9】 コンピュータからなる請求項1記載のデ
    ータ演算処理装置に実行させるためのプログラムであっ
    て、 前記第1データブロック及び前記第3データブロックの
    ブロックスケールファクタの和である乗算結果ブロック
    スケールファクタと、前記第2データブロックのブロッ
    クスケールファクタとの差分からなる補正ブロックスケ
    ールファクタを算出し、 前記補正ブロックスケールファクタを前記第1スケーリ
    ング手段に与え、前記第1データブロックのデータを前
    記第1スケーリング手段に入力し、且つ、前記第2スケ
    ーリング手段にスケールファクタを与えず、前記第2デ
    ータブロックのデータを前記第2スケーリング手段に入
    力する第1スケール補正処理と、 前記補正ブロックスケールファクタを前記第2スケーリ
    ング手段に与え、前記第2データブロックのデータを前
    記第2スケーリング手段に入力し、且つ、前記第1スケ
    ーリング手段にスケールファクタを与えず、前記第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力する第2スケール補正処理とのうちいずれかを行う処
    理を実行させるためのプログラムであることを特徴とす
    るデータ演算処理プログラム。
  10. 【請求項10】 請求項9において、 前記乗算結果ブロックスケールファクタ及び前記第2デ
    ータブロックのブロックスケールファクタの大小関係に
    基づいて、前記第1スケール補正処理及び前記第2スケ
    ール補正処理のいずれかを選択的に行う処理を実行させ
    るためのプログラムであることを特徴とするデータ演算
    処理プログラム。
  11. 【請求項11】 請求項10において、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して下
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して下
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2データブロックのブロックスケールファクタが
    前記乗算結果ブロックスケールファクタよりも大きいと
    きは、前記第1スケール補正処理を行い、前記乗算結果
    ブロックスケールファクタが前記第2データブロックの
    ブロックスケールファクタよりも大きいときは、前記第
    2スケール補正処理を行う処理を実行させるためのプロ
    グラムであることを特徴とするデータ演算処理プログラ
    ム。
  12. 【請求項12】 請求項10において、 前記第1スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して上
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2スケーリング手段は、与えられたスケールファ
    クタに相当するシフト量で、入力したデータに対して上
    位ビットの方向へビットシフトを行うようになってお
    り、 前記第2データブロックのブロックスケールファクタが
    前記乗算結果ブロックスケールファクタよりも大きいと
    きは、前記第2スケール補正処理を行い、前記乗算結果
    ブロックスケールファクタが前記第2データブロックの
    ブロックスケールファクタよりも大きいときは、前記第
    1スケール補正処理を行う処理を実行させるためのプロ
    グラムであることを特徴とするデータ演算処理プログラ
    ム。
  13. 【請求項13】 請求項9乃至12のいずれかにおい
    て、 データを記憶するための記憶手段と、前記加算手段から
    の加算結果データブロックについて前記ブロックスケー
    ルファクタを検出するブロックスケールファクタ検出手
    段とが利用可能となっており、 前記第1データブロック及び前記第3データブロックの
    データを前記記憶手段から読み出し、読み出した第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力するとともに、読み出した第3データブロックのデー
    タを前記乗算手段に入力し、 前記ブロックスケールファクタ検出手段で検出したブロ
    ックスケールファクタを前記加算結果データブロックに
    含めて前記第2データブロックを構成し、構成した第2
    データブロックのデータを前記記憶手段に格納するとと
    もに前記第2スケーリング手段に入力する処理を実行さ
    せるためのプログラムであることを特徴とするデータ演
    算処理プログラム。
  14. 【請求項14】 請求項9乃至12のいずれかにおい
    て、 データを記憶するための記憶手段と、前記加算手段から
    の加算結果データブロックについて前記ブロックスケー
    ルファクタを検出するブロックスケールファクタ検出手
    段とが利用可能となっており、 前記第1データブロック及び前記第3データブロックの
    データを前記記憶手段から読み出し、読み出した第1デ
    ータブロックのデータを前記第1スケーリング手段に入
    力するとともに、読み出した第3データブロックのデー
    タを前記乗算手段に入力し、 前記ブロックスケールファクタ検出手段で検出したブロ
    ックスケールファクタを前記加算結果データブロックに
    含めて前記第2データブロックを構成し、構成した第2
    データブロックのデータを前記記憶手段に格納し、再演
    算を行うときは、前記第2データブロックのデータを前
    記記憶手段から読み出し、読み出した第2データブロッ
    クのデータを前記第2スケーリング手段に入力する処理
    を実行させるためのプログラムであることを特徴とする
    データ演算処理プログラム。
  15. 【請求項15】 コンピュータからなる請求項7記載の
    データ演算処理装置に実行させるためのプログラムであ
    って、 前記第1データブロック及び前記第3データブロックの
    ブロックスケールファクタの和である乗算結果ブロック
    スケールファクタと、前記第2データブロックのブロッ
    クスケールファクタとの差分からなる補正ブロックスケ
    ールファクタを算出し、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記第1スケーリング手段に
    与え、当該データグループのデータを前記第1スケーリ
    ング手段に入力し、且つ、前記第2データブロックの各
    データグループごとに、当該データグループのグループ
    スケールファクタと前記第2データブロックのブロック
    スケールファクタとの差分からなるスケールファクタを
    前記第2スケーリング手段に与え、当該データグループ
    のデータを前記第2スケーリング手段に入力する第1ス
    ケール補正処理と、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記第2スケーリング手段に
    与え、当該データグループのデータを前記第2スケーリ
    ング手段に入力し、且つ、前記第1データブロックの各
    データグループごとに、当該データグループのグループ
    スケールファクタと前記第1データブロックのブロック
    スケールファクタとの差分からなるスケールファクタを
    前記第1スケーリング手段に与え、当該データグループ
    のデータを前記第1スケーリング手段に入力する第2ス
    ケール補正処理とのうちいずれかを行う処理を実行させ
    るためのプログラムであることを特徴とするデータ演算
    処理プログラム。
  16. 【請求項16】 コンピュータからなる請求項8記載の
    データ演算処理装置における制御手段に実行させるため
    のプログラムであって、 第1データブロック、第2データブロック及び第3デー
    タブロックを前記記憶手段から読み出し、前記第1デー
    タブロック及び前記第3データブロックのブロックスケ
    ールファクタの和である乗算結果ブロックスケールファ
    クタと、前記第2データブロックのブロックスケールフ
    ァクタとの差分からなる補正ブロックスケールファクタ
    を算出し、算出した補正ブロックスケールファクタに基
    づいて第1スケール補正処理及び第2スケール補正処理
    のいずれかを行う処理を実行させるためのプログラムで
    あり、 前記第1スケール補正処理は、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記各計算ユニットのスケー
    リング手段に与え、当該データグループのデータをそれ
    ぞれ前記スケーリング手段を介して前記各計算ユニット
    の乗算手段に乗数として入力し、 前記第3データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    3データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に被乗数として入力し、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの加算手段に入力する処理であり、 前記第2スケール補正処理は、 前記第1データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    1データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に乗数として入力し、 前記第3データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    3データブロックのブロックスケールファクタとの差分
    からなるスケールファクタを前記各計算ユニットのスケ
    ーリング手段に与え、当該データグループのデータをそ
    れぞれ前記スケーリング手段を介して前記各計算ユニッ
    トの乗算手段に被乗数として入力し、 前記第2データブロックの各データグループごとに、当
    該データグループのグループスケールファクタと前記第
    2データブロックのブロックスケールファクタとの差分
    からなるスケールファクタに前記補正ブロックスケール
    ファクタを加算したものを前記各計算ユニットのスケー
    リング手段に与え、当該データグループのデータをそれ
    ぞれ前記スケーリング手段を介して前記各計算ユニット
    の加算手段に入力する処理であることを特徴とするデー
    タ演算処理プログラム。
JP2001251429A 2001-08-22 2001-08-22 データ演算処理装置及びデータ演算処理プログラム Expired - Fee Related JP3659408B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001251429A JP3659408B2 (ja) 2001-08-22 2001-08-22 データ演算処理装置及びデータ演算処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001251429A JP3659408B2 (ja) 2001-08-22 2001-08-22 データ演算処理装置及びデータ演算処理プログラム

Publications (2)

Publication Number Publication Date
JP2003067178A true JP2003067178A (ja) 2003-03-07
JP3659408B2 JP3659408B2 (ja) 2005-06-15

Family

ID=19080076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001251429A Expired - Fee Related JP3659408B2 (ja) 2001-08-22 2001-08-22 データ演算処理装置及びデータ演算処理プログラム

Country Status (1)

Country Link
JP (1) JP3659408B2 (ja)

Also Published As

Publication number Publication date
JP3659408B2 (ja) 2005-06-15

Similar Documents

Publication Publication Date Title
US6763368B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JP3736741B2 (ja) データ演算処理装置
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
JP2012528391A (ja) 飽和を伴う整数乗算および乗算加算演算
US6675286B1 (en) Multimedia instruction set for wide data paths
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
EP3647939A1 (en) Arithmetic processing apparatus and controlling method therefor
US6813628B2 (en) Method and apparatus for performing equality comparison in redundant form arithmetic
US20030115236A1 (en) Elimination of rounding step in the short path of a floating point adder
JP2003067178A (ja) データ演算処理装置及びデータ演算処理プログラム
JP3064405B2 (ja) 複素数の演算処理方式
JPH0540605A (ja) 浮動小数点乗算装置
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3517162B2 (ja) 除算・開平演算装置
JP3773033B2 (ja) データ演算処理装置及びデータ演算処理プログラム
US20100030836A1 (en) Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
US20060277246A1 (en) Multiplication circuitry
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP2010049611A (ja) Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
JP3229057B2 (ja) 例外処理装置
JP3233432B2 (ja) 乗算器
KR20240029249A (ko) 연산 에러를 정정할 수 있는 곱셈 및 누산 연산기
JPH0414173A (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: 20050214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050309

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080325

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100325

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20100325

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

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees