WO1999066423A1 - Dispositif pour calcul de donnees - Google Patents

Dispositif pour calcul de donnees Download PDF

Info

Publication number
WO1999066423A1
WO1999066423A1 PCT/JP1999/003157 JP9903157W WO9966423A1 WO 1999066423 A1 WO1999066423 A1 WO 1999066423A1 JP 9903157 W JP9903157 W JP 9903157W WO 9966423 A1 WO9966423 A1 WO 9966423A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
scale factor
group
calculation
block
Prior art date
Application number
PCT/JP1999/003157
Other languages
English (en)
French (fr)
Inventor
Shiro Kobayashi
Gerhard Fettweis
Original Assignee
Asahi Kasei Kogyo Kabushiki Kaisha
Technische Universitaet Dresden
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 Kogyo Kabushiki Kaisha, Technische Universitaet Dresden filed Critical Asahi Kasei Kogyo Kabushiki Kaisha
Priority to US09/719,351 priority Critical patent/US6728739B1/en
Priority to EP99925312A priority patent/EP1094401B1/en
Priority to AU41657/99A priority patent/AU4165799A/en
Priority to DE69925123T priority patent/DE69925123T2/de
Priority to JP2000555180A priority patent/JP3736741B2/ja
Publication of WO1999066423A1 publication Critical patent/WO1999066423A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Definitions

  • each data has an exponent part and a mantissa part. This has an advantage that high accuracy and a wide dynamic range can be secured, but there is a problem that a complicated and large-scale hardware is required.
  • the lowering of the calculation accuracy occurs because the lower n bits are truncated when selecting n bits from 2 n bits by the selection circuit 13.
  • this block-floating DSP uses the conventional fixed-point DSP as described above, and also performs block normalization on the input data to the multiply-accumulate unit 12 based on a given scale factor.
  • Block shift factor 10 to detect the block scale factor based on each data contained in the data block, and a block to store the block scale factor. It consists of scale factor registers 5 and 6.
  • the n-bit operation data from the selection circuit 13 is stored in the data memory 100 as Y (n) via the data bus 110.
  • the operation data Y (n) is input to the block scale factor detector 54 in order to determine the block scale factor used for the second block processing.
  • a data processing device comprises a data processing group including one or a plurality of data, and further includes a plurality of data groups.
  • a data processing device for processing data in units of a data tab configured to include data, comprising: performing a calculation on each data of said data group; A series of these processes for detecting the scale factor having the absolute value as the maximum as the group scale factor and performing scaling on each of the operation data based on the detected group scale factor is referred to as each data of the data block. This is performed for each group, and the one corresponding to the calculated data with the largest absolute value among the detected group scale factors is block-scaled. When the calculation is performed again on the scaled calculation data that is detected as a factor and scaled, before the calculation, the group scale factor and the block scale factor of the data group are calculated for each calculation data of the data group. Scheduling is performed based on this.
  • the scale factor of the calculated data is calculated, and the smallest one of the calculated scale factors is used as the group scale factor.
  • the detection may be performed, or the group scale factor may be directly detected from the calculated data without calculating the scale factor of the calculated data.
  • the second scaling means scales the calculation data from the calculation means based on the given group scale factor.
  • each calculation unit scaling is performed on the calculation data from the calculation unit by the second scaling unit based on the given group scale factor.
  • the arithmetic unit 200 has k calculation units P having the same function. P k ⁇ It is composed of Each calculation unit P. The data of one detag loop is assigned to ⁇ P k -i, and each calculation unit P. P k ⁇ processes data in parallel in data group units.
  • each calculation unit P the group scale factor detected by the group scale factor detector 50 is calculated by each calculation unit P.
  • each calculation unit P. ⁇ P k — Calculated data from the first shifter 16 is stored in the data memory 100 via the data bus 110.
  • Each product-sum operation unit 12 performs a product-sum operation on the coefficient data A (0) to A (3) and the data X (0) to X (3) according to the procedure shown in FIG. From 2 to cycle 5, operation data Y (0) to Y (3), which are the first product-sum operation results, are obtained.
  • data X (0) to ⁇ (3) are calculated in each calculation unit P. It is assumed that data is transferred between Pk i through hardware means.
  • each unit scale factor detector 14 The multiple scale factors calculated by each unit scale factor detector 14 are then input to a group scale factor detector 50, where the smallest of the multiple scale factors is used as the group scale factor. Is detected.
  • the block scale factor is the current value of the register in the block scale factor detector 54, ie, “1”. "Is confirmed. As can be easily inferred from this example, even if there are multiple data groups to be operated on, it is possible to repeat the above processing applied to the second data group. It is.
  • FIG. 6 shows the operation data ⁇ (0) to ⁇ (7) and ⁇ (0) to ⁇ (7) obtained by the block floating method of the present invention. Then, when the SNR is calculated by the following equation (3) using the calculation result, the following equations (8) and (9) are obtained.
  • the following equation (8) is an equation indicating the SNR based on the calculation result of the following equation (1)
  • the following equation (9) is an equation indicating the SNR based on the calculation result of the following equation (2).
  • control logic 400 is configured to control each unit according to the internal logic.
  • a data operation processing unit may be configured by connecting the ROM and the ROM to a bus, and the data operation processing unit may be configured so that a program indicating the above control procedure is read from the ROM and executed by the CPU.
  • the program indicating the above control procedure is stored in the ROM, but is not limited to this.
  • the program is read into the RAM from a storage medium storing the program indicating the above control procedure. May be executed.
  • the storage medium is a semiconductor storage medium such as RAM or ROM, a magnetic storage type storage medium such as FD or HD, an optical reading type storage medium such as CD, CDV, LD, DVD, or a magnetic storage type such as MO. It is a type / optically readable storage medium, and includes any storage medium that can be read by a computer, regardless of an electronic, magnetic, optical, or other reading method.
  • the second shifter 10 corresponds to the first scaling means described in claims 3, 4, 6, or 7, and the sum-of-products arithmetic unit 12
  • the unit scale factor detector 14 corresponds to the calculation means described in the third, fifth, sixth, or seventh range, and the scale factor calculator described in the third, fifth, or fifth claim is provided.
  • the first shifter 16 It corresponds to the second scaling means described in the third or sixth range of the request.
  • the group scale factor detector 50 corresponds to the detection group scale factor detecting means described in claim 3
  • the proxy scale factor detector 54 corresponds to the block scale described in claim 3.
  • the control logic 400 corresponds to the factor detecting means, and the control logic 400 corresponds to the controlling means described in claim 3 or 4.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

明 細 書 データ演算処理装置 技術分野
本発明は、 1または複数のデータを含んでデータグループが構成され 、 さらに複数のデ一夕グループを含んで構成されたデ一タプロック単位 で、 デ一夕を処理する装置に係り、 特に、 ブロックフローティ ング方式 で固定小数点演算を行うブロックフローテイ ング型のデジタル ' シグナ ル ·プロセッサ (以下、 単に D S Pという。 ) に関する。 背景技術
デジタル信号処理における数値表現方法として、 固定小数点表現また は浮動小数点表現がある。
浮動小数点表現では、 各データが指数部と仮数部をもち、 これにより 、 高い精度と広いダイナミックレンジが確保可能という利点がある反面 、 複雑で大規模なハードゥヱァが必要となるという問題がある。
一方、 固定小数点表現では、 ハードウェアが簡単で回路規模も小さく てすむが、 演算精度の低下が問題となる。 従来の代表的な固定小数点型 の D S Pとしては、 例えば、 図 1 0に示すものがある。 図 1 0は、 従来 の固定小数点型の D S Pの構成および各構成要素の入出力段におけるデ —夕のビッ ト数を示す図である。
従来の固定小数点型の D S Pは、 図 1 0に示すように、 データを nビ ッ ト単位で格納するメモリ 1 0 0と、 nビッ 卜のデータをデータメモリ 1 0 0から入力して 2 nビッ 卜の演算データを出力する積和演算器 1 2 と、 2 nビッ 卜の演算データのうち上位の nビッ 卜のデータを選択する 選択回路 1 3と、 データバス 1 1 0と、 で構成されており、 演算対象と なるデータをデ一タメモリ 1 0 0から読み出し、 読み出したデータを積 和演算器 1 2で演算し、 積和演算器 1 2からの演算データのうち上位の nビッ 卜のデータを選択回路 1 3で選択し、 選択回路 1 3からの演算デ —タをデータメモリ 1 0 0に再度格納するようになっている。
積和演算器 1 2は、 データメモリ 1 0 0からのデータを保持する第 1 のレジスタファイル 1 2 aと、 第 1のレジス夕ファイル 1 2 aのデ一夕 を乗算する乗算器 1 2 bと、 乗算器 1 2 bからの乗算データをこれまで の加算データと加算する加算器 1 2 cと、 加算器 1 2 cからの加算デー タを演算データとして保持する第 2のレジスタファイル 1 2 dと、 で構 成されている。
演算精度の低下は、 選択回路 1 3で 2 nビッ トから nビッ 卜を選択す る際に、 下位 nビッ トが切り捨てられるために生じる。
固定小数点表現における演算精度の低下を、 下式 ( 1 ) , (2) の数 式例を用いて示す。 すなわち、 積和演算器 1 2は、 下式 ( 1 ) , (2) により演算を行うようになつている。
ここでは簡単のため、 データメモリ 1 0 0からのデータを 8ビッ 卜、 積和演算器 1 2の出力を 1 6 ビッ トとし、 データ X ( 0 ) -X (7) お よび係数データ A (0) 〜A (3) 、 B (0) , B ( 1 ) を演算対象と して積和演算器 1 2に与える。 データ X (0) 〜X (7) および係数デ 一夕 A (0 ) ~A (3) 、 B (0 ) , B ( 1) は、 それぞれ図 1 1に示 すような値をもち、 X (- 3) =X (- 2) -X (— 1 ) = Y (— 1) 二 0とする。 また、 図 1 2に示すように、 各データと係数データの最上 位ビッ 卜 (MS B) は符号ビッ 卜とし、 符号ビッ 卜と右隣のビッ 卜との 間に小数点位置が定められ、 符号ビッ トの右隣は 0. 5を表すものとし て、 各デ一夕と係数データの値の十進数表現を合わせて図 1 1に示す。 上記従来の固定小数点型の DS Pを用いて、 下式 ( 1) , (2) によ り演算を行ったときの演算結果を図 1 3に示す。 データメモリ 1 0 0に 格納される最終的な演算結果 (二進数表現および十進数表現) とともに 、 途中結果として積和演算器 1 2の出力 ( 1 6ビッ 卜の二進数表現) を 、 そしてまた比較のため、 浮動小数点で演算を行ったときの演算結果も 合わせて示す。 1 6ビッ トから 8ビッ トを選択する際に、 下位 8ビッ 卜 のデ一夕が失われるため、 精度が落ちていることがわかる。 ここで、 精 度の劣化量を表す尺度として信号対雑音比 (SNR) を導入し、 これを 下式 (3) のように定義する。
下式 ( 3 ) は、 浮動小数点演算結果の二乗和を、 誤差 (固定小数点演 算結果と浮動小数点演算結果の差) の二乗和で割ったもので、 精度が劣 化するほど小さい値をとる。 図 1 3の結果を用いて SNRを計算すると 、 下式 (4) , (5) に示すようになる。 なお、 下式 (4) は、 下式 ( 1 ) の演算結果に基づく SNRを示す式であり、 下式 (5) は、 下式 ( 2) の演算結果に基づく SNRを示す式である。
このように、 固定小数点表現では、 連続して演算を繰り返すごとに精 度が大きく劣化していくのである。
この問題への対策法として提案されたのがブロックフローティ ングと いう方式である。 この方式では、 所定数 (例えば、 m個) のデータを一 つのデータプロックとし、 データプロックに対し 1個のプロックスケー ルファクタをもたせ、 デ一タブ口ックの m個のデータに対し共通のスケ 一リング (以下、 プロック正規化という。 ) を行うことにより、 限られ たダイナミ ックレンジを有効に用いて精度の劣化を抑える。
このブロックフローティ ングを効率良く実現するために、 例えば、 図 1 4のような DS Pが提案されている (特開平 10-40073号公報) 。 このブロックフローティ ング型の D S Pは、 図 1 4に示すように、 上 記従来の固定小数点型の D S Pに加え、 与えられたスケールファクタに 基づいて積和演算器 1 2への入力データをブロック正規化する第 2 シフ 夕 1 0 と、 デ一タブ口ックに含まれる各データに基づいてブロックスケ —ルファクタを検出するブロックスケールファクタ検出器 5 4と、 プロ ックスケールファク夕を格納するブロックスケールファクタレジスタ 5 6 と、 で構成されている。
ブロックスケールファクタ検出器 5 4は、 選択回路 1 3からの演算デ —タを入力し、 そのデータプロックの各データのうち絶対値が最大とな るデータを検出し、 検出したデータの冗長なビッ ト数をブロックスケー ルファクタとして検出するようになっている。
第 2シフタ 1 0は、 図示しない制御装置によりブロックスケールファ クタレジスタ 5 6のブロックスケールファクタが与えられたときは、 そ のブロックスケールファクタに相当するシフ 卜量で、 データブロックの 各データに対して上位ビッ 卜の方向へビッ トシフ 卜 (以下、 単に左シフ トという。 ) を行うようになっている。
次に、 上記従来のプロックフローティ ング型の D S Pで、 下式 ( 1 ) , ( 2 ) をブロックフローティ ング処理した場合の動作について説明す る。
まず、 データブロックに含まれるデータの個数を 「ブロックサイズ」 と、 デ一タメモリ 1 0 0からデ一タブ口ックの各データを読み出して積 和演算を行ったのち、 演算結果である演算データを再度データメモリ 1 0 0へ格納する一連の処理を 「ブロック処理」 と定義する。
下式 ( 1 ) , (2 ) では、 ブロックサイズを 8とし、 初回のブロック 処理でデータブロック X ( 0 ) 〜X ( 7 ) を入力として下式 ( 1 ) によ り演算を行い、 Y ( 0 ) 〜Y ( 7 ) を求め、 2回目のブロック処理でデ 一タブロック Y (0) 〜Υ ( 7) を入力として下式 (2 ) により演算を 行い、 Ζ ( 0) 〜Ζ ( 7 ) を求めることとする。 なお、 初回のブロック 処理では、 ブロックスケールファクタレジスタ 5 6には、 ブロックスケ —ルファクタとして "0" が設定されているので、 第 2 シフタ 1 0にお いてブロック正規化は行われないこととする。 また、 以下の説明では、 係数データ A ( 0) 〜A (3 ) 、 B ( 0) , B ( 1 ) の設定方法につい ては特に触れないが、 必要に応じてデータメモリ 1 0 0から読み出すな どして与えることができる。
まず、 第 1のステップとして、 n = 0〜 7について次の処理を行う。 データ X ( n ) 、 X ( n— 1 ) 、 X ( n— 2 ) を順次デ一タメモリ 1 0 0から読み出して第 2シフタ 1 0に入力する。 初回プロック処理では、 ブロックスケールファクタレジスタ 5 6のブロックスケールファクタ力く "0" であるため、 第 2シフタ 1 0においてブロック正規化は行わず、 X (n) 、 X (n- 1) 、 X (n— 2 ) をそのまま積和演算器 1 2に入 力する。 積和演算器 1 2では、 下式 ( 1) により演算を行い、 演算デ— 夕を選択回路 1 3に入力する。 選択回路 1 3では、 演算データのうち上 位 nビッ 卜を選択して取り出す。 選択回路 1 3からの nビッ 卜の演算デ —タは、 データバス 1 1 0経由で Y (n) としてデータメモリ 1 0 0に 格納される。 一方、 この格納処理と並行して、 2回目のブロック処理に 用いるブロックスケールファクタを決定するために演算データ Y (n) を、 ブロックスケールファクタ検出器 5 4に入力する。
次いで、 第 2のステップとして、 第 1のステップが終了した時点で、 ブロックスケールファクタ検出器 5 4では、 2回目のブロック処理に用 いるプロックスケールファクタを決定し、 決定したプロックスケールフ ァク夕をブロックスケールファクタレジスタ 5 6に格納する。
次いで、 第 3のステップとして、 n = 0〜 7について以下の処理を行 う。 データ Y (η) 、 Υ (η - 1 ) を順次データメモリ 1 0 0から読み 出して第 2シフ夕 1 0に入力する。 第 2シフタ 1 0では、 ブロックスケ ールファクタレジスタ 5 6のブロックスケールファクタに基づ 、てプロ ック正規化を行い、 ブロック正規化を行ったデータを積和演算器 1 2に 入力する。 積和演算器 1 2では、 下式 (2) により演算を行い、 演算デ 一夕を選択回路 1 3に入力する。 選択回路 1 3では、 演算データのうち 上位 ηビッ 卜を選択して取り出す。 選択回路 1 3からの ηビッ 卜の演算 データは、 データバス 1 1 0経由で Ζ (η) としてデータメモリ 1 0 0 に格納される。 一方、 この格納処理と並行して、 3回目のブロック処理 に用いるブロックスケールファクタを決定するために演算データ Ζ (η ) を、 ブロックスケールファクタ検出器 5 4に入力する。
次いで、 第 4のステップとして、 第 3のステップ 3が終了した時点で 、 ブロックスケールファクタ検出器 5 4では、 3回目のブロック処理に 用いるプロックスケールファクタを決定し、 決定したプロックスケール ファクタをブロックスケールファクタレジスタ 5 6に格納する。
上記第 1ないし第 4のステップを経て、 下式 ( 1 ) , (2 ) により実 際にブロックフローティ ング処理した演算結果を図 1 5に示す。 そして 、 この演算結果を用いて下式 (3) により SNRを計算すると、 下式 ( 6) , (7) に示すようになる。 なお、 下式 (6) は、 下式 (1) の演 算結果に基づく SNRを示す式であり、 下式 (7) は、 下式 (2) の演 算結果に基づく SNRを示す式である。
下式 (6 ) , (7) によれば、 固定小数点演算を単に行うよりも精度 が改善されていることがわかる。
先の例からもわかる通り、 上記従来のブロックフローティ ング型の D S Pにあっては、 確かに、 上記従来の固定小数点型の D S Ρに比して演 算精度を改善することができるが、 なお演算精度上の課題が存在する。 すなわち、 上記従来のプロックフローティ ング型の D S Pにあっては 、 プロック処理が終了するまでプロックスケールファクタを決定するこ とができないため、 選択回路 1 3で上位 nビッ 卜を選択してデータメモ リ 1 0 0に格納し、 ブロック処理終了後に、 その演算データに対してブ ロックスケールファクタに相当するシフ卜量で左シフトを行っている。 このため、 第 2シフ夕 1 0からのデータのうち、 ブロックスケールファ クタに相当するビッ ト数の下位ビッ トは、 " 0 " となって意味のない情 報となる。
積和演算器 1 2からの演算デ一タを 1 6 ビッ ト、 デ一タメモリ 1 0 0 からのデ一夕を 8 ビッ 卜、 演算データを " 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 " 、 ブロック処理終了後に確定したブロックスケールファクタ を " 2 " とした場合のブロック正規化後のデータを、 理想的な場合と従 来法の場合とのについて図 1 6に例示する。 この例では、 ブロック正規 化後のデータの下位 2 ビッ トに着目してみると、 理想的には " 1 1 " と なるべきところが従来の D S Pでは " 0 0 " となっていることがわかる 。 これが演算精度の向上を妨げる要因となっているのである。
そこで、 本発明は、 このような従来の技術の有する未解決の課題に着 目してなされたものであって、 ブロックフローティ ング方式で固定小数 点演算を行うときの演算精度を向上するのに好適なデータ演算処理装置 を提供することを目的としている。 発明の開示
本発明では、 従来のデータ区分であるデ一タブ口ックをさらに钿分化 し、 データグループという区分を新たに導入する。 すなわち、 デ一タブ ロックは、 複数のデ一夕グループを含んで構成され、 データグループは 、 1または複数のデータを含んで構成される。 ここで、 デ一タグループ に含まれるデータの個数を 「グループサイズ」 と定義する。
上記目的を達成するために、 本発明に係る請求の範囲第 1項記載のデ 一夕演算処理装置は、 1または複数のデータを含んでデ一夕グループが 構成され、 さらに複数のデータグループを含んで構成されたデ一タブ口 ック単位で、 データを処理するデータ演算処理装置であって、 前記デ一 タグループの各デ一夕に対して演算を行い、 それら演算デ一夕のうち絶 対値が最大となるもののスケールファクタをグループスケールファクタ として検出し、 検出したグループスケールファクタに基づいて前記各演 算データに対してスケーリ ングを行うこれら一連の処理を、 前記データ ブロックの各データグループごとに行い、 さらに、 検出したグループス ケールファクタのうち絶対値が最大となる演算データに対応するものを ブロックスケールファクタとして検出し、 スケ一リ ングした演算データ に対して再度演算を行うときは、 演算の前に、 前記データグループの各 演算データに対して当該データグループのグループスケールファクタお よび前記プロックスケールファクタに基づいてスケ一リ ングを行うよう になっている。
このような構成であれば、 デ一タグループの各データに対して演算が 行われ、 それら演算データのうち絶対値が最大となるもののスケールフ ァクタがグループスケールファクタとして検出され、 検出されたグルー プスケールファクタに基づいて、 各演算データに対してスケーリ ングが 行われる。 こうした一連の処理が、 データブロックの各データグループ ごとに行われる。 そして、 一つのデータブロックについて処理が終了す ると、 各データグループごとに検出されたグループスケールファクタの うち絶対値が最大となる演算データに対応するものがプロックスケール ファクタとして検出される。 次に、 スケ一リングされた演算データに対して再度演算を行うときは 、 データグループの各演算データに対して、 そのデータグループのグル ープスケールファクタおよびブロックスケールファクタに基づいて、 ス ケーリ ングが行われる。
なお、 その後は、 スケーリ ングされた各演算データに対して演算が行 われ、 その演算結果である演算データのうち絶対値が最大となるものの スケールファク夕がグループスケールファクタとして検出され、 検出さ れたグループスケールファクタに基づいて、 各演算データに対してスケ -リングが行われる。 こうした一連の処理が、 デ一タブ口ックの各デー タグループごとに行われる。 そして、 一つのデ一夕ブロックについて処 理が終了すると、 各デ一夕グループごとに検出されたグループスケール ファクタのうち絶対値が最大となるものがプロックスケールファクタと して検出される。
ここで、 スケールファク夕としては、 例えば、 データをビッ 卜シフ卜 するときのシフ ト量を挙げることができる。 この場合、 スケールファク 夕に相当するシフ卜量で、 データに対してビッ 卜シフ トを行うことによ りスケ一リ ングを行う。
また、 グループスケールファクタを検出する構成は、 データグループ の各データに対して演算を行つたのち、 それら演算データのスケールフ ァクタを算出し、 算出したスケールファクタのうち最小のものをグルー プスケールファクタとして検出するようになっていてもよいし、 それら 演算データのスケールファクタを算出せず、 それら演算データから直接 グループスケールファクタを検出するようになっていてもよい。
さらに、 本発明に係る請求の範囲第 2項記載のデータ演算処理装置は 、 請求の範囲第 1項記載のデータ演算処理装置において、 スケーリ ング した演算データに対して再度演算を行うときは、 演算の前に、 前記デー T
タグループの各演算データに対して当該データグループのグループスケ ールファクタと前記プロックスケールファクタとの差分に基づいてスケ 一リングを行うようになっている。
このような構成であれば、 スケーリ ングされた演算データに対して再 度演算を行うときは、 データグループの各演算データに対して、 そのデ 一タグループのグループスケールファクタとブロックスケールファクタ との差分に基づいて、 スケーリングが行われる。
さらに、 本発明に係る請求の範囲第 3項記載のデータ演算処理装置は 、 複数の計算ュニッ 卜を備え、 1または複数のデータを含んでデ一タグ ループが構成され、 さらに複数のデータグループを含んで構成されたデ —タブ口ック単位で、 データを処理するデータ演算処理装置であって、 前記各計算ュニッ 卜は、 与えられたスケールファクタに基づいてデ一夕 に対してスケ一リングを行う第 1のスケ一リング手段と、 前記第 1のス ケーリ ング手段からのデータに対して演算を行う演算手段と、 前記演算 手段からの演算デ一夕のスケールファクタを算出するスケールファクタ 算出手段と、 与えられた他のスケールファクタに基づいて前記演算手段 からの演算データに対してスケ一リ ングを行う第 2のスケ一リング手段 と、 を有しており、 さらに、 データを記憶するための記憶手段と、 前記 各計算ュニッ 卜のスケールファタ夕算出手段で算出したスケールファク 夕のうち絶対値が最大となる演算データに対応するものをグループスケ ールファクタとして検出するグループスケールファク夕検出手段と、 前 記グループスケールファク夕検出手段で検出したグループスケールファ クタのうち絶対値が最大となる演算デ一夕に対応するものをブロックス ケールファク夕として検出するプロックスケールファク夕検出手段と、 データ処理のための制御を行う制御手段と、 を備え、 前記制御手段は、 前記データプロック単位でデータを前記記憶手段から読み出し、 前記デ 一タブロックの各データグループごとに、 前記データグループのデータ をそれぞれ前記各計算ュニッ 卜の第 1のスケーリング手段に振り分け、 前記グループスケールファクタ検出手段で検出したグループスケールフ ァクタを前記各計算ュニッ 卜の第 2のスケ一リング手段に与え、 前記各 計算ュニ'ッ 卜の第 2のスケーリング手段からの演算データを前記記憶手 段に格納し、 前記記憶手段の演算データに対して再度演算を行うときは 、 前記データブロックの各データグループごとに、 前記データグループ の演算データをそれぞれ前記各計算ュニッ 卜の第 1のスケ一リング手段 に振り分けるとともに、 前記データグループのグループスケールファク 夕と前記プロックスケールファクタとの差分からなるスケールファクタ を前記各計算ュニッ 卜の第 1のスケ一リング手段に与えるようになって いる。
このような構成であれば、 制御手段により、 データブロック単位でデ —夕が記憶手段から読み出され、 デ一タブ口ックの各データグループご とに、 データグループのデ一夕がそれぞれ各計算ュニッ 卜の第 1のスケ —リング手段に振り分けられる。
各計算ュニッ トでは、 初期状態では第 1のスケーリ ング手段にスケ一 ルファクタが与えられていないので、 第 1のスケーリング手段によるス ケ一リングが行われず、 そのまま演算手段に入力される。 そして、 演算 手段により、 第 1のスケーリ ング手段からのデータに対して演算が行わ れ、 スケールファクタ算出手段により、 演算手段からの演算データのス ケールファクタが算出される。
各計算ュニッ 卜でスケールファクタが算出されると、 グループスケ一 ルファクタ検出手段により、 各計算ュニッ 卜のスケールファクタ算出手 段で算出されたスケールファクタのうち絶対値が最大となる演算デ一夕 に対応するものがグループスケールファクタとして検出され、 制御手段 により、 算出されたグループスケールファクタが各計算ュニッ 卜の第 2 のスケ一リ ング手段に与えられる。
これにより、 各計算ュニッ 卜では、 第 2のスケ一リング手段により、 与えられたグループスケールファクタに基づいて、 演算手段からの演算 データに対してスケーリ ングが行われる。
このように各計算ュニッ 卜で演算データに対してスケーリ ングが行わ れると、 制御手段により、 各計算ユニッ トの第 2のスケーリ ング手段か らの演算データが記憶手段に格納されるとともに、 ブロックスケールフ ァクタ検出手段により、 グループスケールファクタ検出手段で検出され たグループスケールファクタのうち絶対値が最大となる演算データに対 応するものがブロックスケールファクタとして検出される。
次に、 記憶手段の演算データに対して再度演算を行うときは、 制御手 段により、 デ一タブロック単位で演算データが記憶手段から読み出され 、 データブロックの各デ一夕グループごとに、 データグループの演算デ 一夕がそれぞれ各計算ュニッ 卜の第 1のスケーリ ング手段に振り分けら れるとともに、 そのデータグループのグループスケールファクタとブ口 ックスケールファク夕との差分からなるスケールファク夕が各計算ュニ ッ 卜の第 1のスケーリング手段に与えられる。
各計算ュニッ 卜では、 第 1のスケーリング手段により、 前回の処理に おいて検出されたグループスケールファクタとブロックスケールファク 夕との差分からなるスケールファクタに基づいて、 与えられた演算デ一 タに対してスケーリングが行われ、 演算手段により、 第 1のスケ一リ ン グ手段からの演算デー夕に対して演算が行われ、 スケールファクタ算出 手段により、 演算手段からの演算データのスケールファクタが算出され る。
各計算ュニッ 卜でスケールファクタが算出されると、 グループスケ一 ルファクタ検出手段により、 各計算ュニッ 卜のスケールファクタ算出手 段で算出されたスケールファクタのうち絶対値が最大となる演算データ に対応するものがグループスケールファクタとして検出され、 制御手段 により、 算出されたグループスケールファクタが各計算ュニッ 卜の第 2 のスケーリ ング手段に与えられる。
これにより、 各計算ュニッ トでは、 第 2のスケーリ ング手段により、 与えられたグループスケールファクタに基づいて、 演算手段からの演算 データに対してスケ一リ ングが行われる。
このように各計算ュニッ 卜で演算データに対してスケーリ ングが行わ れると、 制御手段により、 各計算ュニッ 卜の第 2のスケーリ ング手段か らの演算データが記憶手段に格納されるとともに、 プロックスケールフ ァクタ検出手段により、 グループスケールファクタ検出手段で検出され たグループスケールファクタのうち絶対値が最大となる演算データに対 応するものがプロックスケールファクタとして検出される。
ここで、 記憶手段は、 データを記憶するためのものであればよく、 デ —夕をあらかじめ記憶しておく ものであってもよいし、 本装置の動作時 にデータを記憶するものであってもよい。
また、 スケールファクタとしては、 例えば、 データをビッ トシフ トす るときのシフ ト量を挙げることができる。 この場合、 スケールファクタ に相当するシフト量で、 データに対してビッ トシフ トを行うことにより スケ一リングを行う。
さらに、 本発明に係る請求の範囲第 4項記載のデータ演算処理装置は 、 請求の範囲第 3項記載のデータ演算処理装置において、 前記グループ スケールファクタおよび前記プロックスケールファクタを記憶するため の第 2の記憶手段を備え、 前記制御手段は、 前記グループスケールファ クタおよび前記ブロックスケールファクタを演算データと対応させて前 記第 2の記憶手段に記憶し、 前記記憶手段の演算データに対して再度演 算を行うときは、 対応するグループスケールファクタおよびプロックス ケ一ルファクタを前記第 2の記憶手段から読み出し、 前記デ一タブ口ッ クの各デ一タグループごとに、 前記デ一夕グループの演算データをそれ ぞれ前記各計算ュニッ 卜の第 1のスケ一リ ング手段に振り分け、 前記デ —タグループのグループスケールファクタと前記ブロックスケールファ クタとの差分からなるスケールファクタを前記各計算ュニッ 卜の第 1の スケーリ ング手段に与えるようになつている。
このような構成であれば、 記憶手段の演算データに対して再度演算を 行うときは、 制御手段により、 グループスケールファクタ検出手段で検 出されたグループスケールファクタおよびプロックスケールファクタ検 出手段で検出されたブロックスケールファクタ力 各計算ュニッ 卜の第 2のスケ一リング手段からの演算データと対応づけられて第 2の記憶手 段に格納される。
そして、 記憶手段の演算データに対して再度演算を行うときは、 制御 手段により、 対応するグループスケールファクタおよびプロックスケー ルファクタが第 2の記憶手段から読み出され、 データブロックの各デ一 夕グループごとに、 データグループの演算データがそれぞれ各計算ュニ ッ 卜の第 1のスケ一リング手段に振り分けられるとともに、 そのデータ グループのグループスケールファクタとブロックスケールファクタとの 差分からなるスケールファク夕が各計算ュニッ 卜の第 1のスケ一リ ング 手段に与えられる。
これにより、 各計算ュニッ 卜では、 第 1のスケーリング手段により、 前回の処理において検出されたグループスケールファク夕とブロックス ケ一ルファクタとの差分からなるスケールファクタに基づいて、 与えら れた演算データに対してスケーリ ングが行われる。 ここで、 第 2の記憶手段は、 グループスケールファクタおよびブロッ クスケールファクタを記憶するためのものであって、 グループスケール ファクタおよびプロックスケールファクタをあらかじめ記憶しているこ . とを要しない。
さらに、 本発明に係る請求の範囲第 5項記載のデータ演算処理装置は 、 請求の範囲第 3項および第 4項のいずれかに記載のデータ演算処理装 置において、 前記スケールファクタ算出手段は、 前記演算手段からの演 算データの冗長なビッ ト数を算出し、 これをスケールファクタとして算 出するようになつている。
このような構成であれば、 スケールファクタ算出手段により、 演算手 段からの演算データの冗長なビッ ト数が算出され、 これがスケールファ クタとして算出される。
さらに、 本発明に係る請求の範囲第 6項記載のデータ演算処理装置は 、 請求の範囲第 5項記載のデータ演算処理装置において、 前記演算手段 は、 固定小数点演算器であり、 前記第 1のスケーリ ング手段は、 与えら れたスケールファクタに相当するシフ ト量で、 データに対してビッ 卜シ フ 卜を行うようになっており、 前記第 2のスケ一リ ング手段は、 与えら れた他のスケールファクタに相当するシフ 卜量で、 前記演算手段からの 演算データに対してビッ 卜シフ トを行うようになっている。
このような構成であれば、 各計算ュニッ 卜では、 第 1のスケ一リング 手段により、 与えられたスケールファクタに相当するシフト量で、 与え られたデータに対してビッ トシフ トが行われ、 演算手段により、 第 1の スケ一リ ング手段からのデータに対して固定小数点演算が行われる。 そ して、 第 2のスケ一リング手段により、 与えられたスケールファクタに 相当するシフ ト量で、 演算手段からの演算データに対してビッ トシフ ト が行われる。 ここで、 第 1のスケーリング手段は、 例えば、 データに対して下位ビ ッ 卜の方向へビッ トシフ 卜 (以下、 単に右シフ 卜という。 ) を行うよう になっている。 また、 第 2のスケーリング手段は、 例えば、 データに対 して左シフ トまたは右シフトを行うようになっている。
さらに、 本発明に係る請求の範囲第 7項記載のデータ演算処理装置は 、 請求の範囲第 3項ないし第 6項のいずれかに記載のデータ演算処理装 置において、 前記演算手段は、 前記第 1のスケ一リ ング手段からのデー 夕と所定の係数との積和を演算する積和演算器である。
このような構成であれば、 演算手段により、 第 1のスケーリング手段 からのデータと所定の係数との積和が演算され、 積和されたデータが演 算データとして出力される。
本発明の概要は、 例えば、 図 1に示す通りである。 本発明では、 デ一 タグループごとに一つのスケールファクタを計算してこれをグループス ケ一ルファクタとし、 各積和演算器 1 2から出力されたデータをグルー プスケールファクタで正規化 (以下、 グループ正規化という。 ) し、 グ ループスケールファクタを、 グループ正規化されたデータグループと関 連づけてレジスタファイル 5 2に格納する。 こうした一連の処理は、 デ 一タブ口ックに含まれる他のデータグループに対しても、 繰り返し適用 される。 ひとつのデータブロックの処理を行ったのち、 複数のグループ スケールファクタうち最小のスケールファクタを検出してこれをプロッ クスケールファクタとし、 データブロックと関連つけてレジスタフアイ ル 5 6に格納する。 その後、 このデータブロックをブロック処理する場 合、 ブロックスケールファクタとグループスケールファクタとが異なり 、 データグループ間で桁の位置が合っていない可能性があるため、 グル ープスケールファク夕とプロックスケールファク夕との差分に基づいて 、 各データグループをシフト (ブロック正規化) して桁合わせしたのち 、 積和演算器 1 2に入力する。
これにより、 積和演算終了後のデータは、 データグループ単位で一旦 グループ正規化を行ってデータメモリ 1 0 0に格納され、 次のブロック 処理で使用する際に、 ブロック正規化されるため、 ブロック正規化後の データの下位ビッ 卜に意味のなし、情報が含まれることがなく、 ブロック フローテイ ング方式で固定小数点演算を行うときの演算誤差が小さくな る。
以上では、 上記目的を達成するためのデータ演算^;理装置を提案した が、 これに限らず、 上記目的を達成するために、 次の第 1ないし第 7の データ演算処理装置を提案することもできる。
第 1のデータ演算処理装置は、 スケ一リ ングを用いることで仮数部と スケール部とに分解可能な複数のデ一夕を含むデ一タグループに対して 単一で共通のスケールファクタを決定し、 複数の仮数部をひとまとめに し、 前記共通のスケールファクタを参照してデータを処理するデジタル 信号処理のためのデ一夕演算処理装置であって、 一番目のデータグルー プから、 複数のスケールファクタのうち単一の最小値をグループスケ一 ルファクタとして決定し、 前記グループスケールファクタを参照して当 該デ一夕グループの各デ一夕をスケーリングし、 スケーリ ングした各デ —タを格納し、 前記グループスケールファクタを当該データグループと 唯一に対応する関係をもって格納し、 これらの処理を二番目以降のデー 夕グループに対して引き続き繰り返し、 複数のグループスケールファク 夕のうち単一の最小値を複数のデータグループのブロックスケールファ クタとして決定し、 前記プロックスケールファクタを一番目と二番目以 降の複数のデータグループから構成される単一のデ一タブ口ックと唯一 に対応する関係をもって格納し、 前記各デ一夕グループの各データを、 前記各グループスケールファクタと前記プロックスケールファクタとの 差分として得られる整列スケールファクタを用いてスケーリ ングするよ うになっている。
さらに、 第 2のデータ演算処理装置は、 上記第 1のデータ演算処理装 置において、 前記整列スケールファクタを用いてスケーリングした複数 のデータを単一の新しいデータブロックとして格納し、 前記整列スケー ルファクタを前記プロックスケールファクタとして唯一つに決定するよ うになつている。
さらに、 第 3のデータ演算処理装置は、 上記第 1および第 2のいずれ かのデータ演算処理装置において、 前記整列ファクタを用いてスケーリ ングしたデータを引き続き固定小数点デ一タ表現を用 、て処理するよう になっている。
さらに、 第 4のデータ演算処理装置は、 上記第 1ないし第 3のいずれ かのデータ演算処理装置において、 前記グループスケールファクタを、 関連するデータグループとともに格納するようになっている。
さらに、 第 5のデータ演算処理装置は、 データを処理するため少なく とも一つの計算ュニッ 卜とレジス夕とメモリを備えたデジタルデータ処 理プロセッサによるデジタルデータ処理のためのデータ演算処理装置で あって、 複数のデータから複数のスケールファクタを計算する手段と、 前記スケールファクタを参照して複数のデ一夕からスケ一リ ングされた 値を生成する手段と、 複数の前記スケーリ ングされた値をデータグルー プ (スケーリングされた値の組) として格納する手段と、 前記データグ ループうち最小のスケールファクタ (グループスケールファクタ) を検 出する手段と、 前記グループスケールファクタを格納する手段と、 複数 の前言己データグループうち最 、のスケールファクタ (ブロックスケール ファクタ) を検出する手段と、 前記ブロックスケールファクタを格納す る手段と、 を備えている。 さらに、 第 6のデータ演算処理装置は、 上記第 5のデータ演算処理装 置において、 前記グループスケールファクタを一時的に格納するための レジスタファイルによる手段と、 一時的に格納したグループスケールフ ァク夕とそれに対応するデータグループを関連づけるための手段と、 前 記レジスタファイルに一時的に格納したグループスケールファクタを格 納する手段と、 を備えている。
さらに、 第 7のデータ演算処理装置は、 上記第 5および第 6のいずれ かのデータ演算処理装置において、 最小のスケールファクタを検出する 手段と、 冗長な符号ビッ 卜を計数する手段と、 冗長な符号ビッ 卜の情報 を一つにまとめる手段と、 を備えている。
以上では、 上記目的を達成するためのデータ演算処理装置を提案した 力 これに限らず、 上記目的を達成するために、 次の第 1の記憶媒体を 提案することもできる。
第 1の記憶媒体は、 1または複数のデータを含んでデータグループが 構成され、 さらに複数のデータグループを含んで構成されたデ一タブ口 ック単位で、 データを処理するためのプログラムを記憶した記憶媒体で あって、 請求の範囲第 3項ないし第 7項のいずれかに記載の、 前記各計 算ュニッ 卜、 前記第 1のスケーリ ング手段、 前記演算手段、 前記スケー ルファクタ算出手段、 前記第 2のスケーリング手段、 前記グループスケ —ルファクタ検出手段、 前記ブロックスケールファクタ検出手段および 前記制御手段としてコンピュータを機能させるためのプログラムを記憶 したコンピュータ読み取り可能なものである。
このような構成であれば、 記憶媒体に記憶された情報がコンピュー夕 によって読み取られ、 コンピュータが各手段として機能させられたとき は、 上記請求の範囲第 3項ないし第 7項のいずれかに記載のデータ演算 処理装置と同様の作用が得られる。 図面の簡単な説明
図 1は、 本発明に係るデータ演算処理装置の構成を示すブロック図で ある。 図 2は、 データメモリ 1 0 0におけるデータ構造を示す図である 。 図 3は、 各積和演算器 1 2で行われる積和演算を示す図である。 図 4 は、 本発明を数値例に適用した場合の演算過程を説明するための図であ る。 図 5は、 データグループとグループスケールファクタを関連付けて 格納する方法の一例である。 図 6は、 本発明を数値例に適用した場合の 演算結果を示す図である。 図 7は、 本発明による方式と従来方式との演 算精度の比較を示す図である。 図 8は、 各計算ュニッ 卜 P Q 〜P k— , の 第 2シフタ 1 0と積和演算器 1 2と相互間でデータを転送するための詳 細な構成を示すブロック図である。 図 9は、 局所スケールファクタ検出 器 1 4およびグループスケールファクタ検出器 5 0の他の構成を示すブ 口ック図である。
図 1 0は、 従来の固定小数点型の D S Pの構成および各構成要素の入 出力段におけるデ一夕のビッ ト数を示す図である。 図 1 1は、 数値例で 使用されるデータの値を示す図である。 図 1 2は、 数値例で使用される データの固定小数点表記を説明するための図である。 図 1 3は、 従来の 固定小数点型の D S Pによる数値例の演算結果を示す図である。 図 1 4 は、 従来のブロックフローティング型の D S Pの構成を示すブロック図 である。 図 1 5は、 従来のプロックフローティ ング型の D S Pによる数 値例の演算結果を示す図である。 図 1 6は、 従来方法の問題点を説明す るための図である。 発明を実施するための最良の形態
以下、 本発明の実施の形態を図面を参照しながら説明する。 図 1ない し図 9は、 本発明に係るデータ演算処理装置の実施の形態を示す図であ o
まず、 本発明に係るデータ演算処理装置の構成を図 1を参照しながら 説明する。 図 1は、 本発明に係るデータ演算処理装置の構成を示すプロ ック図である。
本発明に係るデータ演算処理装置は、 図 1に示すように、 デ一タブ口 ック単位でデータを記憶するためのデータメモリ 1 0 0と、 データメモ リ 1 0 0のデータに対して積和演算を行う演算部 2 0 0と、 ブロックフ ローティングに必要な正規化を行うための制御部 3 0 0と、 これらの制 御を行う制御ロジック 4 0 0と、 ァドレス生成器 5 0 0と、 で構成され ている。 データメモリ 1 0 0、 演算部 2 0 0、 制御部 3 0 0および制御 ロジック 4 0 0は、 データバス 1 1 0で相互にかつデータ授受可能に接 続されており、 データメモリ 1 0 0、 制御部 3 0 0およびァドレス生成 器 5 0 0は、 データア ドレスバス 1 2 0で相互にかつデータ授受可能に 接続されている。
データメモリ 1 0 0は、 図示しない外部からデータを入力し、 演算部 2 0 0の演算対象となるデータとして格納するようになっている。 デ一 タメモリ 1 0 0では、 データは、 図 2に示すように、 デ一タブロック単 位で格納される。 図 2は、 データメモリ 1 0 0におけるデータ構造を示 す図である。 データメモリ 1 0 0では、 図 2に示すように、 データが計 算ュニッ 卜の数に相当する個数 (この場合、 k個) 組合わさってデータ グループとして格納され、 さらに、 データグループが複数組合わさって データブロックとして格納される。 すなわち、 データブロックは、 複数 のデータグループを含んで構成され、 データグループは、 計算ュニッ 卜 の数に相当する個数のデータを含んで構成されている。
演算部 2 0 0は、 同一機能を有する k個の計算ュニッ 卜 P。 P k ^ で構成されている。 各計算ュニッ 卜 P。 〜P k - i には、 一つのデ一タグ ループのデータがそれぞれ振り分けられ、 各計算ュニッ P。 P k ^ は、 データグループ単位でデータを並列処理する。
各計算ュニッ P。 P k は、 与えられたスケールファクタに基づ いてデータに対してスケーリ ングを行う第 2シフタ 1 0と、 第 2 シフタ からのデータに対して積和演算を行う積和演算器 1 2と、 積和演算器 1 2からの演算データのスケールファク夕を算出するュニッ 卜スケールフ ァクタ検出器 1 4と、 与えられたスケールファクタに基づいて積和演算 器 1 2からの演算データに対してスケ一リ ングを行う第 1シフタ 1 6と 、 で構成されている。
ュニッ 卜スケールファクタ検出器 1 4は、 積和演算器 1 2からの演算 データの冗長なビッ 卜数を算出し、 これをスケールファクタとして算出 するようになつている。 本実施の形態では、 スケールファクタとしては 、 データをビッ トシフ トするときのシフ ト量であり、 シフ トするビッ ト 数を示す。 以下、 グループスケールファクタおよびブロックスケールフ ァクタについても同様である。
第 2 シフタ 1 0は、 与えられるスケールファクタに相当するシフト量 で、 与えられたデータに対して右シフ 卜を行うようになっており、 第 1 シフタ 1 6は、 与えられたスケールファクタに相当するシフ 卜量で、 積 和演算器 1 2からの演算データに対して左シフ トを行うようになってい る。
制御部 3 0 0は、 ュニッ トスケールファクタ検出器 1 4で算出したス ケールファクタからグループスケールファクタを検出するグループスケ —ルファクタ検出器 5 0と、 グループスケールファクタを格納するグル —プスケールファクタレジスタファイル 5 2と、 グループスケールファ クタからプロックスケールファク夕を検出するブロックスケールファク タ検出器 5 4と、 ブロックスケールファクタを格納するブロックスケ一 ルファクタレジスタ 5 6と、 グループスケールファクタとブロックスケ ールファクタの差分を計算する桁合わせ用加算器 6 0と、 で構成されて いる。
グループスケールファクタ検出器 5 0は、 各計算ュニッ P„ 〜Pk— i のュニッ 卜スケールファクタ検出器 1 4で算出したスケールファクタ うち最小のものをグループスケールファクタとして検出し、 制御ロジッ ク 4 0 0の制御により、 検出したグループスケールファクタをグループ スケールファクタレジスタファイル 5 2および各計算ュニッ 卜 P。 〜P k-, の第 1 シフタ 1 6に出力するようになっている。 例えば、 各計算ュ ニッ ト P。 〜Pk , (例えば、 k二 3 ) のュニッ 卜スケールファク夕検 出器 1 4からスケールファクタとして " 1 " 、 "2 " 、 "3" を入力し た場合、 そのうちの最小値である " 1 " をそのグループスケールファク 夕として検出する。
グループスケールファクタレジスタファイル 5 2は、 グループスケー ルファクタ検出器 5 0で検出したグループスケールファクタをそれぞれ 一時的に格納し、 制御ロジック 4 0 0の制御により、 データメモリ 1 0 0または桁合わせ用加算器 6 0にグループスケールファクタを出力する ようになっている。
ブロックスケールファクタ検出器 5 4は、 グループスケールファクタ 検出器 5 0で検出したグループスケールファクタのうち最小のものをグ プロックスケールファクタとして検出するようになっている。 例えば、 あるデ一夕ブロックのグループスケールファクタ力 " 3 " 、 "4" 、 " 5" として検出された場合、 そのうちの最小値である "3" をそのプロ ックスケールファクタとして検出する。
ブロックスケールファクタレジスタ 5 6は、 ブロックスケールファク タ検出器 5 4で検出したプロックスケールファクタを一時的に格納し、 制御口ジック 4 0 0の制御により、 データメモリ 1 0 0または桁合わせ 用加算器 6 0にグループスケールファクタを出力するようになっている 桁合わせ用加算器 6 0は、 グループスケールファクタレジスタフアイ ル 5 2から出力されたグループスケールファクタと、 プロックスケール ファクタレジスタ 5 6から出力されたプロックスケールファク夕とを入 力し、 グループスケールファクタからブロックスケールファクタを減算 してその差分を計算し、 制御ロジック 4 0 0の制御により、 その差分か らなるスケールファクタを各計算ュニッ ト P。 〜P k ! の第 2 シフタ 1 0に出力するようになっている。
制御ロジック 4 0 0は、 データメモリ 1 0 0のデータに対して初めて 演算を行うときは、 次の制御処理を実行するようになっている。
まず、 デ一夕ブロック単位でデータをデータメモリ 1 0 0から読み出 し、 データブロックの各データグループごとに、 データグループのデー 夕をそれぞれデ一夕バス 1 1 0経由で各計算ュニッ ト 。 〜P k— , の第 2 シフタ 1 0に振り分ける。
そして、 グループスケールファクタ検出器 5 0で検出したグループス ケ一ルファクタを各計算ュニッ 卜 P。 P k - i の第 1 シフタ 1 6に与え 、 各計算ュニッ 卜 P。 ~ P k— , の第 1 シフタ 1 6からの演算データをデ —夕バス 1 1 0経由でデータメモリ 1 0 0に格納する。
また、 制御ロジック 4 0 0は、 データメモリ 1 0 0のデータに対して 再度演算を行うときは、 次の制御処理を実行するようになっている。 まず、 デ一タブ口ック単位で演算データをデータメモリ 1 0 0から読 み出し、 データブロックの各データグループごとに、 データグループの 演算データをそれぞれデータバス 1 1 0経由で各計算ュニッ b P。 〜P K - . の第 2シフタ 1 0に与える。 これとともに、 各計算ュニッ 卜 P„ 〜 P k - i の第 2シフタ 1 0に与えたデータのグループスケールファクタお よびブロックスケールファク夕がグループスケールファクタレジスタフ アイル 5 2およびブロックスケールファクタレジスタ 5 6に格納されて いるときは、 ブロックスケールファクタレジスタ 5 6からブロックスケ ールファクタを読み出して桁合わせ用加算器 6 0に与え、 グループスケ ールファクタレジスタファイル 5 2からグループスケールファクタを順 次読み出して桁合わせ用加算器 6 0に与え、 桁合わせ用加算器 6 0によ り各グループスケールファクタとプロックスケールファク夕との差分を 計算し、 その差分からなるスケールファクタを各計算ュニッ ト P 。 ~ P k - , の第 2シフタ 1 0に与える。
そして、 グループスケールファクタ検出器 5 0で検出したグループス ケ一ルファクタを各計算ュニッ 卜 P 。 ~ P , の第 1 シフタ 1 6に与え 、 各計算ュニッ ト P 。 P k の第 1シフタ 1 6からの演算データをデ —タバス 1 1 0経由でデータメモリ 1 0 0に格納する。
なお、 各計算ユニッ ト P 。 〜 P k i の第 2シフタ 1 0に与えたデータ のグループスケールファクタおよびプロックスケールファク夕がグルー プスケールファクタレジスタファイル 5 2およびブロックスケールファ クタレジスタ 5 6に格納されていないときは、 各計算ュニッ 卜 P 。 〜 P κ - , の第 2シフ夕 1 0に与えたデータに対応するグループスケールファ クタおよびブロックスケールファクタをデータメモリ 1 0 0から読み出 し、 これらをデ一夕バス 1 1 0経由でグループスケールファクタレジス 夕ファイル 5 2およびプロックスケールファクタレジスタ 5 6に格納し てから、 上記処理を実行する。
次に、 上記実施の形態の動作を図 3ないし図 7を参照しながら説明す る。 以下、 下式 (1 ) , (2 ) の数式例を用いて説明する。 なお、 ここ でも、 データメモリ 1 0 0からのデータを 8ビッ 卜、 積和演算器 1 2の 出力を 1 6ビッ トとする。
本例では、 演算部 2 0 0が 4つの計算ュニッ 卜から構成されているも のとし、 データブロックは、 2つのデータグループを含んで構成され、 データグループは、 4つのデータを含んで構成されているものとする。 また、 あらかじめ定められた係数データ A (0) 〜A (3) 、 B (0) , B ( 1) は、 必要な時にはいつでも利用可能であると仮定する。 これ らの係数データをどのように供給するかは、 本発明とは関わりないので 説明しないが、 例えば、 必要に応じてデータメモリ 1 0 0から読み出す などして各積和演算器 1 2に与えることができるものとする。
まず、 本発明に係るデータ演算処理装置において、 下式 ( 1) により データを並列処理する手順を図 3を参照しながら簡単に説明する。 図 3 は、 各積和演算器 1 2で行われる積和演算を示す図である。
下式 (1 ) によりデータメモリ 1 0 0のデータに対して演算を行うと きは、 まず、 サイクル 1で、 データ X (0) 〜X (3) を含む 1番目の データグループがデータメモリ 1 0 0から読み出され、 データ X (0) 〜X (3) がそれぞれデータバス 1 1 0経由で各計算ュニッ ト P。 〜P 3 の第 2シフタ 1 0に振り分けられる。 このとき、 データ X (0 ) 〜X (3) は、 最初でスケールに関する情報はないので、 制御ロジック 4 0 0は、 データ X (0) 〜X (3) がシフ卜されないように第 2シフタ 1 0を制御する。 これらのデータを各積和演算器 1 2に保持するための手 段 (例えば、 図 1 4の積和演算器 1 2の第 1レジスタファイル) は利用 可能であるとする。 このような保持手段は本発明とは関係ないため、 図 1には示されていない。
各積和演算器 1 2では、 図 3の手順に従って、 係数データ A (0) 〜 A (3) とデータ X (0) 〜X (3) との積和演算が行われ、 サイクル 2からサイクル 5までを経て、 最初の積和演算結果である演算データ Y ( 0) 〜Y (3) が得られる。 これらの演算過程では、 データ X (0) 〜Χ (3) は、 各計算ュニッ P。 Pk i 間をハ一ドウヱァ手段を通 じて転送されるものとする。
演算デ一夕 Y (0) 〜Y (3) は、 その後、 各ュニッ 卜スケールファ クタ検出器 1 4に入力される。 各ュニッ 卜スケールファクタ検出器 1 4 では、 積和演算器 1 2からの演算データの冗長なビッ 卜数が算出され、 これがスケールファクタとして算出される。 この算出では、 例えば、 演 算データ Υ (0 ) 〜Υ (3) のうちあるデータ " 0 0 0 0 1 1 0 0 " は 、 " 0 1 1 0 0 0 0 0 " にスケ一リ ングされ、 その場合、 冗長なビッ ト 数が "3" であるため、 スケールファクタは "3" となる。
各ュニッ トスケールファクタ検出器 1 4で算出された複数のスケール ファクタは、 次に、 グループスケールファクタ検出器 5 0に入力され、 ここで複数のスケールファクタのうち最小のものがグループスケールフ ァクタとして検出される。
このグループスケールファクタは、 さらに各計算ユニッ ト Ρ。 〜Ρ3 の第 1シフタ 1 6に入力される。 これとともに、 各積和演算器 1 2から の演算データ Υ ( 0 ) 〜Υ ( 3 ) も第 1シフタ 1 6に入力される。 グル —プスケールファクタに従って、 第 1シフタ 1 6により、 1 6ビッ 卜の 演算データ Υ (0) ~Υ (3) に対してグループ正規化が行われる。 図 4に、 実際の数値を用いた演算結果の一例を示す。
これらのグループ正規化された演算データは、 さらに、 次のブロック 処理に備えるため、 データメモリ 1 0 0に格納される。 データメモリ 1 0 0のデータのビッ 卜数は演算データよりも少ないため、 各演算データ は、 下位の 8ビッ 卜が切り捨てられ、 8ビッ トの演算デ一夕に丸められ る。 これらの丸められた演算データ Υ (0) 〜Υ (3) は、 図 4の中で データメモリ 1 0 0の入力欄に示されている。 演算データ Y ( 0 ) 〜Y ( 3 ) をデ一タメモリ 1 0 0に格納する間に、 グループスケールファク タもグループスケールファクタレジスタファイル 5 2に入力される。 こ のグループスケールファクタは、 グループスケールファクタレジスタフ アイル 5 2内に、 対応するデータグループと関連付けられて格納される 。 例えば、 データグループは、 データメモリ 1 0 0に格納する場合、 あ る一つのメモリアドレスを取り、 そのデータグループのすべてのデータ は、 一つのメモリァドレスで同時にアクセスされるとして、 演算データ をデータメモリ 1 0 0に格納するのに用いられるのと同じァドレスで特 定されるレジスタに格納する。 あるいは、 図 5に示すように、 デ一タグ ループが格納されているデータメモリ 1 0 0のアドレスと、 グループス ケ一ルファク夕が格納されているグループスケールファクタレジスタフ アイル 5 2のァドレスとの対応表を、 データメモリ 1 0 0の一部に作成 してこれらのァドレスを管理してもよい。
グループスケールファクタは、 また、 ブロックスケールファクタ検出 器 5 4にも入力され、 そこで、 複数のグループスケールファクタのうち 最小のものがブロックスケールファクタとして検出される。 あるデータ ブロックの最初のデータグル一プの計算が終わつた時点では、 今計算さ れたばかりのグループスケールファクタ、 すなわち、 この図 4の例では " 2 " が初期値として、 ブロックスケールファクタ検出器 5 4内のレジ スタ (図 1には示されていない) に格納される。
次に、 サイクル 6で、 データ X ( 4 ) 〜Χ ( 7 ) を含む 2番目のデ一 タグループがデータメモリ 1 0 0から読み出され、 データ X ( 4 ) 〜Χ ( 7 ) がそれぞれデータバス 1 1 0経由で各計算ュニッ 卜 Ρ。 ~ Ρ 3 の 第 2シフタ 1 0に振り分けられる。 デ一夕 X ( 0 ) 〜Χ ( 3 ) を含む 1 番目のデ一夕グループに対するのと同様の演算処理が、 このデ一タグル ープに対しても行われる。 唯一異なるのは、 演算データ Y ( 4) 〜Y ( 7) に対して計算されるグループスケールファクタは、 今回はブロック スケールファクタ検出器 5 4内のレジスタに保持されている内容と比較 され、 小さい方の値がブロックスケールファクタとして選択されるとい う点である。 図 4の例では、 演算データ Υ (4 ) 〜Υ ( 7) からグルー プスケールファクタ "1 " が検出される。 この場合、 ブロックスケール ファクタ検出器 5 4内のレジスタに保持されている "2" よりも " 1" の方が小さいので、 ブロックスケールファクタ検出器 5 4内のレジスタ の内容は更新される。
この例においては、 この時点で、 一つのデータブロックのすべてのデ —夕に関する演算が完了したため、 ブロックスケールファクタは、 プロ ックスケールファクタ検出器 5 4内のレジスタの現在の値、 すなわち " 1 " に確定される。 本例から、 容易に類推されるように、 例えこの後に 演算を行うべき複数のデ一タグループがあつたとしても、 2番目のデ一 夕グループに適用された上述の処理を繰り返すことが可能である。
次に、 下式 (2) の信号処理を開始する。 演算を始める前に、 ブロッ クスケールファクタ検出器 5 4内のレジス夕の内容をプロックスケール ファクタレジスタ 5 6に転送しておく。
下式 ( 2 ) によりデータメモリ 1 0 0の演算データに対して再度演算 を行うときは、 演算データ Υ ( 0 ) 〜Υ (3) を含む 1番目のデ一タグ ループがデータメモリ 1 0 0から読み出され、 演算データ Υ ( 0 ) 〜Υ (3) がそれぞれデータバス 1 1 0経由で各計算ュニッ 卜 Ρ» 〜Ρ3 の 第 2シフタ 1 0に振り分けられる c これとともに、 対応するグループス ケールファクタ、 すなわち、 本例においては "2" が、 ア ドレスバス 1 2 0経由で与えられるア ドレス情報により選択され、 グループスケール ファクタレジスタファイル 5 2から読み出される。 第 2 シフタ 1 0にお ける右シフ卜量は、 現在のグループスケールファクタとブロックスケ一 ルファクタの差分、 すなわち、 本例においては、 2— 1 = 1、 として与 えられる。 このため、 第 2シフタ 1 0は、 現在の入力を 1ビッ 卜右シフ 卜するように制御される。 演算データ Y (0) 〜Y (3) に対して、 こ の後適用される演算処理は、 下式 ( 1) について説明した演算処理とま つたく同様である。
次に、 演算データ Υ (4) 〜Υ (7) を含む 2番目のデータグループ がデータメモリ 1 0 0から読み出され、 演算データ Υ (4) 〜Υ (7) がそれぞれデータバス 1 1 0経由で各計算ュニッ P。 〜P3 の第 2シ フタ 1 0に振り分けられる。 このデ一タグループに対するグループスケ
—ルファクタは、 図 4に示すように、 "1 " である。 結果として、 この デ一夕グループのすべての演算データは、 1— 1 = 0、 すなわち第 2シ フタ 1 0でシフ卜されずに出力される。
この段階で、 すべての演算データ Y ( 0 ) 〜Y ( 7 ) が、 デ一タブ口 ックの最大値の小数点位置に桁合わせされ、 その結果、 のちに続く積和 演算において、 固定小数点演算を行うことが可能となる。
図 6に、 本発明のプロックフローティ ング方式によって得られる演算 デ一夕 Υ ( 0) 〜Υ ( 7 ) 、 Ζ ( 0) 〜Ζ ( 7 ) を示す。 そして、 この 演算結果を用いて下式 (3) により SNRを計算すると、 下式 (8) , (9) に示すようになる。 なお、 下式 (8) は、 下式 ( 1) の演算結果 に基づく SNRを示す式であり、 下式 (9 ) は、 下式 (2) の演算結果 に基づく SNRを示す式である。
また、 図 7に、 下式 ( 1) , (2) により、 従来の固定小数点処理、 従来のプロックフ口一ティング処理および本発明によるプロックフ口一 ティング処理をそれぞれ行った場合の SNRをまとめて示す。 図 7によ れば、 本発明によるブロックフローティ ング処理では、 演算精度が大幅 に改善されていることがわかる。
このようにして、 本実施の形態では、 データグループの各データに対 して演算を行い、 それら演算データを代表する最小のスケールファクタ をグループスケールファクタとして検出し、 検出したグループスケール ファクタに基づいて各演算データに対してスケーリ ングを行うこれら一 連の処理を、 データブロックの各データグループごとに行い、 さらに、 検出したグループスケールファクタのうち最小のものをブロックスケ一 ルファクタとして検出し、 スケ一リ ングした演算データに対して再度演 算を行うときは、 演算の前に、 データグループの各演算デ一夕に対して 当該デ一夕グループのグループスケールファク夕およびプロックスケ一 ルファクタに基づいてスケ一リ ングを行うようにした。
これにより、 積和演算器 1 2からの演算データは、 そのデータグルー プの演算データのうち絶対値が最大となるものの冗長なビッ ト分だけ左 シフ 卜されてから丸められ、 演算データに対して再度演算を行うときは 、 データメモリ 1 0 0の演算データは、 そのデータブロックの演算デー タ (前回の演算における積和演算器 1 2からの演算データ) のうち正の 最大値の小数点位置に桁合わせが行われてから演算が行われるので、 演 算過程におけるデータの桁落ちが少なくなる。 また、 従来の構成に対し て回路をわずかに追加または変更するだけでよいので、 回路を簡易に構 成することができる。 したがって、 従来に比して、 比較的簡易な構成に より、 ブロックフローティ ング方式で固定小数点演算を行うときの演算 精度を向上することができる。
また、 本実施の形態では、 複数の計算ュニッ 卜 P„ ~ P k - , を備え、 データグループ単位でデ一タを並列処理するようにした, 3 これにより、 ブロックフローティ ング方式で固定小数点演算を行うときの演算精度を 向上しつつ、 さらにデータの演算処理を高速に行うこともできる。 なお、 上記実施の形態においては、 各計算ュニッ P。 〜P k— i の第 2シフタ 1 0と積和演算器 1 2と相互間で、 ハ一ドウヱァ手段を通じて データを転送することについて説明したが、 具体的には、 図 8に示す構 成を採用することができる。 図 8は、 各計算ュニッ 卜 P。 〜? , の第 2シフタ 1 0と積和演算器 1 2と相互間でデータを転送するための詳細 な構成を示すプロック図である。
図 8において、 計算ュニッ ト P。 は、 第 2シフタ 1 0からのデータを 保持するレジスタ 1 1 aを備えている。 計算ュニッ 卜 , P 2 は、 前 段の計算ュニッ 卜 p。 , のレジスタ 1 1 aからのデータを保持する レジスタ 1 1 aと、 前段の計算ュニッ 卜 P。 , P t のレジスタ 1 1 a力、 らのデ一夕および第 2シフタ 1 0からのデータのいずれかを選択して積 和演算器 1 2に出力するセレクタ 1 1 bと、 を備えている。 計算ュニッ 卜 P 3 は、 前段の計算ュニッ ト P 2 のレジスタ 1 1 aからのデータおよ び第 2シフタ 1 2からのデータのいずれかを選択して積和演算器 1 2に 出力するセレクタ 1 1 bを備えている。
また、 上記実施の形態においては、 ュニッ トスケールファクタ検出器 1 4と、 グループスケールファクタ検出器 5 0 と、 を備えて構成したが 、 これに限らず、 例えば、 図 9に示す構成を採用することができる。 図 9は、 ュニッ トスケールファクタ検出器 1 4およびグループスケールフ ァクタ検出器 5 0の他の構成を示すブロック図である。
図 9において、 各計算ュニッ P。 〜P 4 は、 ュニッ 卜スケールファ クタ検出器 1 4に代えて、 X O Rアレイ 1 5 aからなる局所ブロックフ 口一ティ ングュニッ 卜 1 5で構成されている。 そして、 プライオリティ エンコーダ 2 1からなるグループスケールファクタ検出器 5 1と、 各計 算ュニッ ト P。 〜 P 4 の局所プロックフ口一ティ ングュニッ ト 1 5とグ ループスケールファクタ検出器 5 1とを接続するワイヤ一ド O Rバスと 、 を備えて構成されている。
局所ブロックフローティングュニッ ト 1 5は、 積和演算器 1 2からの 演算データを入力し、 その演算データの隣り合うビッ 卜に対して排他的 論理和演算を行って出力するようになっている。 例えば、 4ビッ 卜の演 算データを入力した場合、 最上位の 4番目のビッ 卜および 3番目のビッ トに対して排他的論理和演算を行ったものを出力デ一夕の 3番目のビッ 卜とし、 同じ要領で、 3番目および 2番目の演算結果を出力データの 2 番目のビッ トとし、 2番目および 1番目の演算結果を出力データの 1番 目のビッ 卜とし、 そして、 最上位のビッ 卜を出力データの最上位のビッ トとして出力する。
これにより、 各計算ュニッ 卜 P。 〜P 4 の積和演算器 1 2からの演算 データのスケールファタ夕を算出し、 それらスケールファク夕からダル —プスケールファクタを算出しなくても、 各計算ュニッ ト P。 ~ P 4 の 積和演算器 1 2からの演算データから直接グループスケールファクタを 検出することもできる。
また、 上記実施の形態においては、 数値演算を行うのに本発明を適用 した場合について説明したが、 これに限らず、 本発明の主旨を逸脱しな い範囲で他のものにも適用可能である。
また、 上記実施の形態においては、 制御ロジック 4 0 0を、 内部の口 ジックに従って各部の制御を行うように構成したが、 これに限らず、 制 御ロジック 4 0 0に代えて、 C P U、 R A Mおよび R O Mをバス接続し てデータ演算処理部を構成し、 データ演算処理部は、 C P Uにより、 上 記の制御手順を示したプログラムを R 0 Mから読み出して実行するよう に構成してもよい。 この場合、 上記の制御手順を示したプログラムは、 R O Mに格納されているが、 これに限らず、 上記の制御手順を示したプ ログラムが記憶された記憶媒体から、 そのプログラムを R A Mに読み込 んで実行するようにしてもよい。
また、 上記実施の形態においては、 本発明に係るデータ演算処理装置 を、 データメモリ 1 0 0と、 演算部 2 0 0と、 制御部 3 0 0と、 制御口 ジック 4 0 0と、 ァドレス生成器 5 0 0と、 を備えたハ一ドウエアで構 成したが、 これに限らず、 例えば、 C PU、 RAMおよび ROMをバス 接続して構成し、 C PUにより、 各部の機能を実現するための制御プロ グラムを ROMから読み出して実行するように、 一部または全部をソフ 卜ウェアで構成してもよい。 この場合も、 制御プログラムは、 ROMに 格納されているが、 これに限らず、 制御プログラムが記憶された記憶媒 体から、 その制御プログラムを RAMに読み込んで実行するようにして もよい。
ここで、 記憶媒体とは、 RAM、 ROM等の半導体記憶媒体、 FD、 HD等の磁気記憶型記憶媒体、 C D、 C DV、 L D、 DVD等の光学的 読取方式記憶媒体、 MO等の磁気記憶型/光学的読取方式記憶媒体であ つて、 電子的、 磁気的、 光学的等の読み取り方法のいかんにかかわらず 、 コンピュータで読み取り可能な記憶媒体であれば、 あらゆる記憶媒体 を含むものである。
上記実施の形態において、 データメモリ 1 0 0は、 請求の範囲第 3項 または第 4項記載の記憶手段に対応し、 グループスケールファクタレジ スタファイル 5 2およびブロックスケールファクタレジスタ 5 6は、 請 求の範囲第 4項記載の第 2の記憶手段に対応している。
また、 第 2シフタ 1 0は、 請求の範囲第 3項、 第 4項、 第 6項または 第 7項記載の第 1のスケ一リング手段に対応し、 積和演算器 1 2は、 請 求の範囲第 3項、 第 5項、 第 6項または第 7項記載の演算手段に対応し 、 ュニッ 卜スケールファクタ検出器 1 4は、 請求の範囲第 3項または第 5項記載のスケールファクタ算出手段に対応し、 第 1シフタ 1 6は、 請 求の範囲第 3項または第 6項記載の第 2のスケーリ ング手段に対応して いる。
また、 グループスケールファクタ検出器 5 0は、 請求の範囲第 3項記 載の検出グループスケールファクタ検出手段に対応し、 プロックスケ一 ルファクタ検出器 5 4は、 請求の範囲第 3項記載のブロックスケールフ ァクタ検出手段に対応し、 制御ロジック 4 0 0は、 請求の範囲第 3項ま たは第 4項記載の制御手段に対応している。
3
Y(n)= ∑A(k) X X(n - k) (1)
k=0
Z(m)= ∑B(1) X Y(m - 1) (2)
1=0
-夕の個数
∑ (n番目の浮動小数点演算結果) 2
n = 1
S NR = 10xlog (3)
-夕の個数
∑ (n番目の固定小数点演算結果一 n番目の浮動小数点演算結果) 2 n= 1
0.521617412567
S NR = 10 X log = 35.2 dB
1.559257507324e-4 (4)
0.073227959219
S NR = io x log 24.5 dB
2.610855735586e-4 (5)
0.521617412567
S NR = 10 x log 35.2 dB
1.559257507324e-4 (6)
0.073227959219
SNR = 10 x log 28.5 dB (7)
0.000103669706719
0.521617412567
SNR = 10 x log = 46.1 dB … (8)
1.287460327148e-5
0.073227959219
SNR = 10 x log 39.9 dB
7.408205414267e-6 …(9) 産業上の利用可能性
以上説明したように、 本発明に係る請求の範囲第 1項ないし第 7項記 載のデータ演算処理装置によれば、 従来に比して、 比較的簡易な構成に より、 ブロックフローティ ング方式で固定小数点演算を行うときの演算 精度を向上することができるという効果が得られる。
さらに、 本発明に係る請求の範囲第 3項記載のデータ演算処理装置に よれば、 ブロックフローティ ング方式で固定小数点演算を行うときの演 算精度を向上しつつ、 さらにデータの演算処理を高速に行うことができ るという効果も得られる。

Claims

請 求 の 範 囲
1 . 1又は複数のデータを含んでデータグループが構成され、 さらに 複数のデータグループを含んで構成されたデ一タブロック単位で、 デー 夕を処理するデータ演算処理装置であつて、
前記データグループの各データに対して演算を行い、 それら演算デー 夕のうち絶対値が最大となるもののスケールファクタをグループスケ一 ルファクタとして検出し、 検出したグループスケールファクタに基づい て前記各演算デ一夕に対してスケーリ ングを行うこれら一連の処理を、 前記データブロックの各デ一夕グループごとに行い、 さらに、 検出した グループスケールファクタのうち絶対値が最大となる演算デ一タに対応 するものをブロックスケールファクタとして検出し、
スケ一リ ングした演算データに対して再度演算を行うときは、 演算の 前に、 前記デ一タグループの各演算デ一タに対して当該デ一タグループ のグループスケールファクタ及び前言己ブロックスケールファクタに基づ いてスケ一リ ングを行うようになっていることを特徴とするデータ演算 処理装置。
2 . 請求の範囲第 1項において、
スケ一リ ングした演算データに対して再度演算を行うときは、 演算の 前に、 前記デ一タグループの各演算デー夕に対して当該デ一夕グループ のグループスケールファクタと前記プロックスケールファク夕との差分 に基づいてスケーリ ングを行うようになっていることを特徴とするデ一 夕演算処理装置。
3 . 複数の計算ユニッ トを備え、 1又は複数のデータを含んでデータ グループが構成され、 さらに複数のデ一タグループを含んで構成された デ一タブロック単位で、 データを処理するデータ演算処理装置であって 前記各計算ュニッ トは、 与えられたスケールファクタに基づいてデー タに対してスケーリ ングを行う第 1のスケ一リング手段と、 前記第 1の スケ一リング手段からのデータに対して演算を行う演算手段と、 前記演 算手段からの演算データのスケールファクタを算出するスケールファタ タ算出手段と、 与えられた他のスケールファクタに基づいて前記演算手 段からの演算データに対してスケ一リ ングを行う第 2のスケ一リ ング手 段と、 を有しており、
さらに、 データを記憶するための記憶手段と、 前記各計算ュニッ 卜の スケールファタタ算出手段で算出したスケールファクタのうち絶対値が 最大となる演算データに対応するものをグループスケールファクタとし て検出するグループスケールファクタ検出手段と、 前記グループスケ一 ルファクタ検出手段で検出したグループスケールファクタのうち絶対値 が最大となる演算デ一タに対応するものをブロックスケールファクタと して検出するブロックスケールファクタ検出手段と、 データ処理のため の制御を行う制御手段と、 を備え、
前記制御手段は、 前記データプロック単位でデータを前記記憶手段か ら読み出し、 前記デ一夕ブロックの各データグループごとに、 前記デー 夕グループのデータをそれぞれ前記各計算ュニッ 卜の第 1のスケ一リ ン グ手段に振り分け、 前記グループスケールファクタ検出手段で検出した グループスケールファクタを前記各計算ュニッ 卜の第 2のスケーリング 手段に与え、 前記各計算ュニッ 卜の第 2のスケ一リ ング手段からの演算 データを前記記憶手段に格納し、
前記記憶手段の演算データに対して再度演算を行うときは、 前記デー タブ口ックの各データグループごとに、 前記データグループの演算デ一 タをそれぞれ前記各計算ュニッ 卜の第 1のスケーリ ング手段に振り分け るとともに、 前記データグループのグループスケールファクタと前記ブ ロックスケールファクタとの差分からなるスケールファクタを前記各計 算ュニッ 卜の第 1のスケ一リング手段に与えるようになつていることを 特徴とするデータ演算処理装置。
4 . 請求の範囲第 3項において、
前記グループスケールファク夕及び前記ブロックスケールファク夕を 記憶するための第 2の記憶手段を備え、
前記制御手段は、 前記グループスケールファクタ及び前記プロックス ケールファクタを演算データと対応させて前記第 2の記憶手段に記憶し 前記記憶手段の演算データに対して再度演算を行うときは、 対応する グループスケールファクタ及びプロックスケールファク夕を前記第 2の 記憶手段から読み出し、 前記データブロックの各データグループごとに 、 前記データグループの演算データをそれぞれ前記各計算ュニッ 卜の第 1のスケーリング手段に振り分け、 前記データグループのグループスケ —ルファクタと前記プロックスケールファク夕との差分からなるスケ一 ルファクタを前記各計算ュニッ 卜の第 1のスケ一リ ング手段に与えるよ うになつていることを特徴とするデータ演算処理装置。
5 . 請求の範囲第 3項及び第 4項のいずれかにおいて、
前記スケールファクタ算出手段は、 前記演算手段からの演算データの 冗長なビッ ト数を算出し、 これをスケールファクタとして算出するよう になっていることを特徴とするデータ演算処理装置。
6 . 請求の範囲第 5項において、
前記演算手段は、 固定小数点演算器であり、
前記第 1のスケ一リング手段は、 与えられたスケールファクタに相当 するシフト量で、 データに対してビッ トシフ トを行うようになっており 前記第 2のスケ一リング手段は、 与えられた他のスケールファクタに 相当するシフ卜量で、 前記演算手段からの演算データに対してビッ トシ フ卜を行うようになっていることを特徴とするデータ演算処理装置。
7 . 請求の範囲第 3項乃至第 6項のいずれかにおいて、
前記演算手段は、 前記第 1のスケ一リング手段からのデータと所定の 係数との積和を演算する積和演算器であることを特徴とするデータ演算
PCT/JP1999/003157 1998-06-15 1999-06-14 Dispositif pour calcul de donnees WO1999066423A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US09/719,351 US6728739B1 (en) 1998-06-15 1999-06-14 Data calculating device and method for processing data in data block form
EP99925312A EP1094401B1 (en) 1998-06-15 1999-06-14 Data calculating device
AU41657/99A AU4165799A (en) 1998-06-15 1999-06-14 Data calculating device
DE69925123T DE69925123T2 (de) 1998-06-15 1999-06-14 Datenberechnungvorrichtung
JP2000555180A JP3736741B2 (ja) 1998-06-15 1999-06-14 データ演算処理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19826252A DE19826252C2 (de) 1998-06-15 1998-06-15 Verfahren zur digitalen Signalverarbeitung
DE19826252.3 1998-06-15

Publications (1)

Publication Number Publication Date
WO1999066423A1 true WO1999066423A1 (fr) 1999-12-23

Family

ID=7870718

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/003157 WO1999066423A1 (fr) 1998-06-15 1999-06-14 Dispositif pour calcul de donnees

Country Status (8)

Country Link
US (1) US6728739B1 (ja)
EP (1) EP1094401B1 (ja)
JP (1) JP3736741B2 (ja)
KR (1) KR100398859B1 (ja)
AU (1) AU4165799A (ja)
DE (2) DE19826252C2 (ja)
TW (1) TW457441B (ja)
WO (1) WO1999066423A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200363A (ja) * 2001-09-18 2007-08-09 Asahi Kasei Corp コンパイル装置
WO2012157132A1 (ja) * 2011-05-16 2012-11-22 日本電気株式会社 演算処理装置及び演算処理方法
JP2014179065A (ja) * 2013-02-18 2014-09-25 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
JP2022058660A (ja) * 2016-05-03 2022-04-12 イマジネイション テクノロジーズ リミテッド 畳み込みニューラルネットワークハードウエア構成

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1429244A4 (en) * 2001-09-18 2006-10-04 Asahi Chemical Ind COMPILER
US7620545B2 (en) 2003-07-08 2009-11-17 Industrial Technology Research Institute Scale factor based bit shifting in fine granularity scalability audio coding
DE102004059979B4 (de) * 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
US8005671B2 (en) * 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
US20080213554A1 (en) * 2007-03-02 2008-09-04 Andrei Borisovich Vinokurov Protective Glove for Technical Work
US7797516B2 (en) * 2007-03-16 2010-09-14 Atmel Corporation Microcontroller with low-cost digital signal processing extensions
US8370606B2 (en) * 2007-03-16 2013-02-05 Atmel Corporation Switching data pointers based on context
GB2454201A (en) * 2007-10-30 2009-05-06 Advanced Risc Mach Ltd Combined Magnitude Detection and Arithmetic Operation
US8280939B2 (en) * 2008-05-22 2012-10-02 Videoiq, Inc. Methods and apparatus for automatic accuracy-sustaining scaling of block-floating-point operands
US8805914B2 (en) * 2010-06-02 2014-08-12 Maxeler Technologies Ltd. Method and apparatus for performing numerical calculations
WO2020091655A1 (en) * 2018-10-31 2020-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus and machine-readable mediums for signalling in a base station
CN112308199B (zh) * 2019-07-26 2024-05-10 杭州海康威视数字技术股份有限公司 数据块的处理方法、装置及存储介质
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128213A (ja) * 1995-10-31 1997-05-16 Hitachi Ltd ブロックフローティング処理システムおよび方法
JPH09507941A (ja) * 1995-04-18 1997-08-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282581A (en) * 1979-10-15 1981-08-04 Sperry Corporation Automatic overflow/imminent overflow detector
US4727506A (en) * 1985-03-25 1988-02-23 Rca Corporation Digital scaling circuitry with truncation offset compensation
DE3677051D1 (de) 1985-05-17 1991-02-28 Nec Corp Verarbeitungsschaltung, die es erlaubt den akkumulationsdurchsatz zu erhoehen.
US4872132A (en) * 1987-03-13 1989-10-03 Zoran Corporation Method and means for block floating point arithmetic
JP3178026B2 (ja) 1991-08-23 2001-06-18 ソニー株式会社 ディジタル信号符号化装置及び復号化装置
JP2513139B2 (ja) * 1993-07-27 1996-07-03 日本電気株式会社 信号処理プロセッサ
JPH1040073A (ja) 1996-07-24 1998-02-13 Matsushita Electric Ind Co Ltd ディジタル信号処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09507941A (ja) * 1995-04-18 1997-08-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化
JPH09128213A (ja) * 1995-10-31 1997-05-16 Hitachi Ltd ブロックフローティング処理システムおよび方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1094401A4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200363A (ja) * 2001-09-18 2007-08-09 Asahi Kasei Corp コンパイル装置
JP4594957B2 (ja) * 2001-09-18 2010-12-08 旭化成株式会社 コンパイル装置
WO2012157132A1 (ja) * 2011-05-16 2012-11-22 日本電気株式会社 演算処理装置及び演算処理方法
JP5811175B2 (ja) * 2011-05-16 2015-11-11 日本電気株式会社 演算処理装置及び演算処理方法
US9519457B2 (en) 2011-05-16 2016-12-13 Nec Corporation Arithmetic processing apparatus and an arithmetic processing method
JP2014179065A (ja) * 2013-02-18 2014-09-25 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
JP2022058660A (ja) * 2016-05-03 2022-04-12 イマジネイション テクノロジーズ リミテッド 畳み込みニューラルネットワークハードウエア構成

Also Published As

Publication number Publication date
KR20010052899A (ko) 2001-06-25
US6728739B1 (en) 2004-04-27
EP1094401B1 (en) 2005-05-04
JP3736741B2 (ja) 2006-01-18
DE69925123D1 (de) 2005-06-09
DE19826252A1 (de) 1999-12-16
EP1094401A1 (en) 2001-04-25
DE19826252C2 (de) 2001-04-05
EP1094401A4 (en) 2002-06-19
DE69925123T2 (de) 2006-03-02
KR100398859B1 (ko) 2003-09-19
AU4165799A (en) 2000-01-05
TW457441B (en) 2001-10-01

Similar Documents

Publication Publication Date Title
WO1999066423A1 (fr) Dispositif pour calcul de donnees
US20240248682A1 (en) Multiple Mode Arithmetic Circuit
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US6754689B2 (en) Method and apparatus for performing subtraction in redundant form arithmetic
JP2585649B2 (ja) 除算回路
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
CN110858137B (zh) 除以整数常数的浮点除法
JP3551113B2 (ja) 除算器
JP2000172520A (ja) ガロア体演算プロセッサ
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
JP2511527B2 (ja) 浮動小数点演算器
US20020016808A1 (en) Apparatus, methods and computer program products for performing high speed division calculations
JPH09222991A (ja) 加算方法および加算器
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP2578482B2 (ja) 浮動小数点演算器
JPH086766A (ja) 正弦余弦演算装置
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
CN109960486B (zh) 二进制数据处理方法及其装置、介质和系统
TWI847921B (zh) 記憶體內二進位浮點乘法裝置及其操作方法
JP2734438B2 (ja) 乗算装置
JP2705162B2 (ja) 演算処理装置
JP2009245407A (ja) 複素数の積和演算装置および積和演算方法
JPH08202533A (ja) 除算処理装置
CN116991362A (zh) 模乘运算处理方法、装置、电子设备及可读介质
JP2508286B2 (ja) 平方根演算装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 09719351

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020007014247

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 1999925312

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1999925312

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020007014247

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1020007014247

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1999925312

Country of ref document: EP