JP3736741B2 - データ演算処理装置 - Google Patents

データ演算処理装置 Download PDF

Info

Publication number
JP3736741B2
JP3736741B2 JP2000555180A JP2000555180A JP3736741B2 JP 3736741 B2 JP3736741 B2 JP 3736741B2 JP 2000555180 A JP2000555180 A JP 2000555180A JP 2000555180 A JP2000555180 A JP 2000555180A JP 3736741 B2 JP3736741 B2 JP 3736741B2
Authority
JP
Japan
Prior art keywords
data
scale factor
group
calculation
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000555180A
Other languages
English (en)
Inventor
士朗 小林
ゲルハルト フェットバイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asahi Kasei Corp
Original Assignee
Asahi Kasei Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asahi Kasei Corp filed Critical Asahi Kasei Corp
Application granted granted Critical
Publication of JP3736741B2 publication Critical patent/JP3736741B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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

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または複数のデータを含んでデータグループが構成され、さらに複数のデータグループを含んで構成されたデータブロック単位で、データを処理する装置に係り、特に、ブロックフローティング方式で固定小数点演算を行うブロックフローティング型のデジタル・シグナル・プロセッサ(以下、単にDSPという。)に関する。
背景技術
デジタル信号処理における数値表現方法として、固定小数点表現または浮動小数点表現がある。
浮動小数点表現では、各データが指数部と仮数部をもち、これにより、高い精度と広いダイナミックレンジが確保可能という利点がある反面、複雑で大規模なハードウェアが必要となるという問題がある。
一方、固定小数点表現では、ハードウェアが簡単で回路規模も小さくてすむが、演算精度の低下が問題となる。従来の代表的な固定小数点型のDSPとしては、例えば、図10に示すものがある。図10は、従来の固定小数点型のDSPの構成および各構成要素の入出力段におけるデータのビット数を示す図である。
従来の固定小数点型のDSPは、図10に示すように、データをnビット単位で格納するメモリ100と、nビットのデータをデータメモリ100から入力して2nビットの演算データを出力する積和演算器12と、2nビットの演算データのうち上位のnビットのデータを選択する選択回路13と、データバス110と、で構成されており、演算対象となるデータをデータメモリ100から読み出し、読み出したデータを積和演算器12で演算し、積和演算器12からの演算データのうち上位のnビットのデータを選択回路13で選択し、選択回路13からの演算データをデータメモリ100に再度格納するようになっている。
積和演算器12は、データメモリ100からのデータを保持する第1のレジスタファイル12aと、第1のレジスタファイル12aのデータを乗算する乗算器12bと、乗算器12bからの乗算データをこれまでの加算データと加算する加算器12cと、加算器12cからの加算データを演算データとして保持する第2のレジスタファイル12dと、で構成されている。
演算精度の低下は、選択回路13で2nビットからnビットを選択する際に、下位nビットが切り捨てられるために生じる。
固定小数点表現における演算精度の低下を、下式(1),(2)の数式例を用いて示す。すなわち、積和演算器12は、下式(1),(2)により演算を行うようになっている。
ここでは簡単のため、データメモリ100からのデータを8ビット、積和演算器12の出力を16ビットとし、データX(0)〜X(7)および係数データA(0)〜A(3)、B(0),B(1)を演算対象として積和演算器12に与える。データX(0)〜X(7)および係数データA(0)〜A(3)、B(0),B(1)は、それぞれ図11に示すような値をもち、X(−3)=X(−2)=X(−1)=Y(−1)=0とする。また、図12に示すように、各データと係数データの最上位ビット(MSB)は符号ビットとし、符号ビットと右隣のビットとの間に小数点位置が定められ、符号ビットの右隣は0.5を表すものとして、各データと係数データの値の十進数表現を合わせて図11に示す。
上記従来の固定小数点型のDSPを用いて、下式(1),(2)により演算を行ったときの演算結果を図13に示す。データメモリ100に格納される最終的な演算結果(二進数表現および十進数表現)とともに、途中結果として積和演算器12の出力(16ビットの二進数表現)を、そしてまた比較のため、浮動小数点で演算を行ったときの演算結果も合わせて示す。16ビットから8ビットを選択する際に、下位8ビットのデータが失われるため、精度が落ちていることがわかる。ここで、精度の劣化量を表す尺度として信号対雑音比(SNR)を導入し、これを下式(3)のように定義する。
下式(3)は、浮動小数点演算結果の二乗和を、誤差(固定小数点演算結果と浮動小数点演算結果の差)の二乗和で割ったもので、精度が劣化するほど小さい値をとる。図13の結果を用いてSNRを計算すると、下式(4),(5)に示すようになる。なお、下式(4)は、下式(1)の演算結果に基づくSNRを示す式であり、下式(5)は、下式(2)の演算結果に基づくSNRを示す式である。
このように、固定小数点表現では、連続して演算を繰り返すごとに精度が大きく劣化していくのである。
この問題への対策法として提案されたのがブロックフローティングという方式である。この方式では、所定数(例えば、m個)のデータを一つのデータブロックとし、データブロックに対し1個のブロックスケールファクタをもたせ、データブロックのm個のデータに対し共通のスケーリング(以下、ブロック正規化という。)を行うことにより、限られたダイナミックレンジを有効に用いて精度の劣化を抑える。
このブロックフローティングを効率良く実現するために、例えば、図14のようなDSPが提案されている(特開平10-40073号公報)。
このブロックフローティング型のDSPは、図14に示すように、上記従来の固定小数点型のDSPに加え、与えられたスケールファクタに基づいて積和演算器12への入力データをブロック正規化する第2シフタ10と、データブロックに含まれる各データに基づいてブロックスケールファクタを検出するブロックスケールファクタ検出器54と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ56と、で構成されている。
ブロックスケールファクタ検出器54は、選択回路13からの演算データを入力し、そのデータブロックの各データのうち絶対値が最大となるデータを検出し、検出したデータの冗長なビット数をブロックスケールファクタとして検出するようになっている。
第2シフタ10は、図示しない制御装置によりブロックスケールファクタレジスタ56のブロックスケールファクタが与えられたときは、そのブロックスケールファクタに相当するシフト量で、データブロックの各データに対して上位ビットの方向へビットシフト(以下、単に左シフトという。)を行うようになっている。
次に、上記従来のブロックフローティング型のDSPで、下式(1),(2)をブロックフローティング処理した場合の動作について説明する。
まず、データブロックに含まれるデータの個数を「ブロックサイズ」と、データメモリ100からデータブロックの各データを読み出して積和演算を行ったのち、演算結果である演算データを再度データメモリ100へ格納する一連の処理を「ブロック処理」と定義する。
下式(1),(2)では、ブロックサイズを8とし、初回のブロック処理でデータブロックX(0)〜X(7)を入力として下式(1)により演算を行い、Y(0)〜Y(7)を求め、2回目のブロック処理でデータブロックY(0)〜Y(7)を入力として下式(2)により演算を行い、Z(0)〜Z(7)を求めることとする。なお、初回のブロック処理では、ブロックスケールファクタレジスタ56には、ブロックスケールファクタとして“0”が設定されているので、第2シフタ10においてブロック正規化は行われないこととする。また、以下の説明では、係数データA(0)〜A(3)、B(0),B(1)の設定方法については特に触れないが、必要に応じてデータメモリ100から読み出すなどして与えることができる。
まず、第1のステップとして、n=0〜7について次の処理を行う。データX(n)、X(n−1)、X(n−2)を順次データメモリ100から読み出して第2シフタ10に入力する。初回ブロック処理では、ブロックスケールファクタレジスタ56のブロックスケールファクタが“0”であるため、第2シフタ10においてブロック正規化は行わず、X(n)、X(n−1)、X(n−2)をそのまま積和演算器12に入力する。積和演算器12では、下式(1)により演算を行い、演算データを選択回路13に入力する。選択回路13では、演算データのうち上位nビットを選択して取り出す。選択回路13からのnビットの演算データは、データバス110経由でY(n)としてデータメモリ100に格納される。一方、この格納処理と並行して、2回目のブロック処理に用いるブロックスケールファクタを決定するために演算データY(n)を、ブロックスケールファクタ検出器54に入力する。
次いで、第2のステップとして、第1のステップが終了した時点で、ブロックスケールファクタ検出器54では、2回目のブロック処理に用いるブロックスケールファクタを決定し、決定したブロックスケールファクタをブロックスケールファクタレジスタ56に格納する。
次いで、第3のステップとして、n=0〜7について以下の処理を行う。データY(n)、Y(n−1)を順次データメモリ100から読み出して第2シフタ10に入力する。第2シフタ10では、ブロックスケールファクタレジスタ56のブロックスケールファクタに基づいてブロック正規化を行い、ブロック正規化を行ったデータを積和演算器12に入力する。積和演算器12では、下式(2)により演算を行い、演算データを選択回路13に入力する。選択回路13では、演算データのうち上位nビットを選択して取り出す。選択回路13からのnビットの演算データは、データバス110経由でZ(n)としてデータメモリ100に格納される。一方、この格納処理と並行して、3回目のブロック処理に用いるブロックスケールファクタを決定するために演算データZ(n)を、ブロックスケールファクタ検出器54に入力する。
次いで、第4のステップとして、第3のステップ3が終了した時点で、ブロックスケールファクタ検出器54では、3回目のブロック処理に用いるブロックスケールファクタを決定し、決定したブロックスケールファクタをブロックスケールファクタレジスタ56に格納する。
上記第1ないし第4のステップを経て、下式(1),(2)により実際にブロックフローティング処理した演算結果を図15に示す。そして、この演算結果を用いて下式(3)によりSNRを計算すると、下式(6),(7)に示すようになる。なお、下式(6)は、下式(1)の演算結果に基づくSNRを示す式であり、下式(7)は、下式(2)の演算結果に基づくSNRを示す式である。
下式(6),(7)によれば、固定小数点演算を単に行うよりも精度が改善されていることがわかる。
先の例からもわかる通り、上記従来のブロックフローティング型のDSPにあっては、確かに、上記従来の固定小数点型のDSPに比して演算精度を改善することができるが、なお演算精度上の課題が存在する。
すなわち、上記従来のブロックフローティング型のDSPにあっては、ブロック処理が終了するまでブロックスケールファクタを決定することができないため、選択回路13で上位nビットを選択してデータメモリ100に格納し、ブロック処理終了後に、その演算データに対してブロックスケールファクタに相当するシフト量で左シフトを行っている。このため、第2シフタ10からのデータのうち、ブロックスケールファクタに相当するビット数の下位ビットは、“0”となって意味のない情報となる。
積和演算器12からの演算データを16ビット、データメモリ100からのデータを8ビット、演算データを“00001101 11010101”、ブロック処理終了後に確定したブロックスケールファクタを“2”とした場合のブロック正規化後のデータを、理想的な場合と従来法の場合とのについて図16に例示する。この例では、ブロック正規化後のデータの下位2ビットに着目してみると、理想的には“11”となるべきところが従来のDSPでは“00”となっていることがわかる。これが演算精度の向上を妨げる要因となっているのである。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ブロックフローティング方式で固定小数点演算を行うときの演算精度を向上するのに好適なデータ演算処理装置を提供することを目的としている。
発明の開示
本発明では、従来のデータ区分であるデータブロックをさらに細分化し、データグループという区分を新たに導入する。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、1または複数のデータを含んで構成される。ここで、データグループに含まれるデータの個数を「グループサイズ」と定義する。
上記目的を達成するために、本発明に係る請求の範囲第1項記載のデータ演算処理装置は、1または複数のデータを含んでデータグループが構成され、さらに複数のデータグループを含んで構成されたデータブロック単位で、データを処理するデータ演算処理装置であって、前記データグループの各データに対して演算を行い、それら演算データのうち絶対値が最大となるもののスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて前記各演算データに対してスケーリングを行うこれら一連の処理を、前記データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち絶対値が最大となる演算データに対応するものをブロックスケールファクタとして検出し、スケーリングした演算データに対して再度演算を行うときは、演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタおよび前記ブロックスケールファクタに基づいてスケーリングを行うようになっている。
このような構成であれば、データグループの各データに対して演算が行われ、それら演算データのうち絶対値が最大となるもののスケールファクタがグループスケールファクタとして検出され、検出されたグループスケールファクタに基づいて、各演算データに対してスケーリングが行われる。こうした一連の処理が、データブロックの各データグループごとに行われる。そして、一つのデータブロックについて処理が終了すると、各データグループごとに検出されたグループスケールファクタのうち絶対値が最大となる演算データに対応するものがブロックスケールファクタとして検出される。
次に、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタおよびブロックスケールファクタに基づいて、スケーリングが行われる。
なお、その後は、スケーリングされた各演算データに対して演算が行われ、その演算結果である演算データのうち絶対値が最大となるもののスケールファクタがグループスケールファクタとして検出され、検出されたグループスケールファクタに基づいて、各演算データに対してスケーリングが行われる。こうした一連の処理が、データブロックの各データグループごとに行われる。そして、一つのデータブロックについて処理が終了すると、各データグループごとに検出されたグループスケールファクタのうち絶対値が最大となるものがブロックスケールファクタとして検出される。
ここで、スケールファクタとしては、例えば、データをビットシフトするときのシフト量を挙げることができる。この場合、スケールファクタに相当するシフト量で、データに対してビットシフトを行うことによりスケーリングを行う。
また、グループスケールファクタを検出する構成は、データグループの各データに対して演算を行ったのち、それら演算データのスケールファクタを算出し、算出したスケールファクタのうち最小のものをグループスケールファクタとして検出するようになっていてもよいし、それら演算データのスケールファクタを算出せず、それら演算データから直接グループスケールファクタを検出するようになっていてもよい。
さらに、本発明に係る請求の範囲第2項記載のデータ演算処理装置は、請求の範囲第1項記載のデータ演算処理装置において、スケーリングした演算データに対して再度演算を行うときは、演算の前に、前記データグループの各演算データに対して当該データグループのグループスケールファクタと前記ブロックスケールファクタとの差分に基づいてスケーリングを行うようになっている。
このような構成であれば、スケーリングされた演算データに対して再度演算を行うときは、データグループの各演算データに対して、そのデータグループのグループスケールファクタとブロックスケールファクタとの差分に基づいて、スケーリングが行われる。
さらに、本発明に係る請求の範囲第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に示す通りである。本発明では、データグループごとに一つのスケールファクタを計算してこれをグループスケールファクタとし、各積和演算器12から出力されたデータをグループスケールファクタで正規化(以下、グループ正規化という。)し、グループスケールファクタを、グループ正規化されたデータグループと関連づけてレジスタファイル52に格納する。こうした一連の処理は、データブロックに含まれる他のデータグループに対しても、繰り返し適用される。ひとつのデータブロックの処理を行ったのち、複数のグループスケールファクタうち最小のスケールファクタを検出してこれをブロックスケールファクタとし、データブロックと関連つけてレジスタファイル56に格納する。その後、このデータブロックをブロック処理する場合、ブロックスケールファクタとグループスケールファクタとが異なり、データグループ間で桁の位置が合っていない可能性があるため、グループスケールファクタとブロックスケールファクタとの差分に基づいて、各データグループをシフト(ブロック正規化)して桁合わせしたのち、積和演算器12に入力する。
これにより、積和演算終了後のデータは、データグループ単位で一旦グループ正規化を行ってデータメモリ100に格納され、次のブロック処理で使用する際に、ブロック正規化されるため、ブロック正規化後のデータの下位ビットに意味のない情報が含まれることがなく、ブロックフローティング方式で固定小数点演算を行うときの演算誤差が小さくなる。
以上では、上記目的を達成するためのデータ演算処理装置を提案したが、これに限らず、上記目的を達成するために、次の第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は、データメモリ100におけるデータ構造を示す図である。図3は、各積和演算器12で行われる積和演算を示す図である。図4は、本発明を数値例に適用した場合の演算過程を説明するための図である。図5は、データグループとグループスケールファクタを関連付けて格納する方法の一例である。図6は、本発明を数値例に適用した場合の演算結果を示す図である。図7は、本発明による方式と従来方式との演算精度の比較を示す図である。図8は、各計算ユニットP0〜Pk-1の第2シフタ10と積和演算器12と相互間でデータを転送するための詳細な構成を示すブロック図である。図9は、局所スケールファクタ検出器14およびグループスケールファクタ検出器50の他の構成を示すブロック図である。
図10は、従来の固定小数点型のDSPの構成および各構成要素の入出力段におけるデータのビット数を示す図である。図11は、数値例で使用されるデータの値を示す図である。図12は、数値例で使用されるデータの固定小数点表記を説明するための図である。図13は、従来の固定小数点型のDSPによる数値例の演算結果を示す図である。図14は、従来のブロックフローティング型のDSPの構成を示すブロック図である。図15は、従来のブロックフローティング型のDSPによる数値例の演算結果を示す図である。図16は、従来方法の問題点を説明するための図である。
発明を実施するための最良の形態
以下、本発明の実施の形態を図面を参照しながら説明する。図1ないし図9は、本発明に係るデータ演算処理装置の実施の形態を示す図である。
まず、本発明に係るデータ演算処理装置の構成を図1を参照しながら説明する。図1は、本発明に係るデータ演算処理装置の構成を示すブロック図である。
本発明に係るデータ演算処理装置は、図1に示すように、データブロック単位でデータを記憶するためのデータメモリ100と、データメモリ100のデータに対して積和演算を行う演算部200と、ブロックフローティングに必要な正規化を行うための制御部300と、これらの制御を行う制御ロジック400と、アドレス生成器500と、で構成されている。データメモリ100、演算部200、制御部300および制御ロジック400は、データバス110で相互にかつデータ授受可能に接続されており、データメモリ100、制御部300およびアドレス生成器500は、データアドレスバス120で相互にかつデータ授受可能に接続されている。
データメモリ100は、図示しない外部からデータを入力し、演算部200の演算対象となるデータとして格納するようになっている。データメモリ100では、データは、図2に示すように、データブロック単位で格納される。図2は、データメモリ100におけるデータ構造を示す図である。データメモリ100では、図2に示すように、データが計算ユニットの数に相当する個数(この場合、k個)組合わさってデータグループとして格納され、さらに、データグループが複数組合わさってデータブロックとして格納される。すなわち、データブロックは、複数のデータグループを含んで構成され、データグループは、計算ユニットの数に相当する個数のデータを含んで構成されている。
演算部200は、同一機能を有するk個の計算ユニットP0〜Pk-1で構成されている。各計算ユニットP0〜Pk-1には、一つのデータグループのデータがそれぞれ振り分けられ、各計算ユニットP0〜Pk-1は、データグループ単位でデータを並列処理する。
各計算ユニットP0〜Pk-1は、与えられたスケールファクタに基づいてデータに対してスケーリングを行う第2シフタ10と、第2シフタからのデータに対して積和演算を行う積和演算器12と、積和演算器12からの演算データのスケールファクタを算出するユニットスケールファクタ検出器14と、与えられたスケールファクタに基づいて積和演算器12からの演算データに対してスケーリングを行う第1シフタ16と、で構成されている。
ユニットスケールファクタ検出器14は、積和演算器12からの演算データの冗長なビット数を算出し、これをスケールファクタとして算出するようになっている。本実施の形態では、スケールファクタとしては、データをビットシフトするときのシフト量であり、シフトするビット数を示す。以下、グループスケールファクタおよびブロックスケールファクタについても同様である。
第2シフタ10は、与えられるスケールファクタに相当するシフト量で、与えられたデータに対して右シフトを行うようになっており、第1シフタ16は、与えられたスケールファクタに相当するシフト量で、積和演算器12からの演算データに対して左シフトを行うようになっている。
制御部300は、ユニットスケールファクタ検出器14で算出したスケールファクタからグループスケールファクタを検出するグループスケールファクタ検出器50と、グループスケールファクタを格納するグループスケールファクタレジスタファイル52と、グループスケールファクタからブロックスケールファクタを検出するブロックスケールファクタ検出器54と、ブロックスケールファクタを格納するブロックスケールファクタレジスタ56と、グループスケールファクタとブロックスケールファクタの差分を計算する桁合わせ用加算器60と、で構成されている。
グループスケールファクタ検出器50は、各計算ユニットP0〜Pk-1のユニットスケールファクタ検出器14で算出したスケールファクタうち最小のものをグループスケールファクタとして検出し、制御ロジック400の制御により、検出したグループスケールファクタをグループスケールファクタレジスタファイル52および各計算ユニットP0〜Pk-1の第1シフタ16に出力するようになっている。例えば、各計算ユニットP0〜Pk-1(例えば、k=3)のユニットスケールファクタ検出器14からスケールファクタとして“1”、“2”、“3”を入力した場合、そのうちの最小値である“1”をそのグループスケールファクタとして検出する。
グループスケールファクタレジスタファイル52は、グループスケールファクタ検出器50で検出したグループスケールファクタをそれぞれ一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
ブロックスケールファクタ検出器54は、グループスケールファクタ検出器50で検出したグループスケールファクタのうち最小のものをグブロックスケールファクタとして検出するようになっている。例えば、あるデータブロックのグループスケールファクタが“3”、“4”、“5”として検出された場合、そのうちの最小値である“3”をそのブロックスケールファクタとして検出する。
ブロックスケールファクタレジスタ56は、ブロックスケールファクタ検出器54で検出したブロックスケールファクタを一時的に格納し、制御ロジック400の制御により、データメモリ100または桁合わせ用加算器60にグループスケールファクタを出力するようになっている。
桁合わせ用加算器60は、グループスケールファクタレジスタファイル52から出力されたグループスケールファクタと、ブロックスケールファクタレジスタ56から出力されたブロックスケールファクタとを入力し、グループスケールファクタからブロックスケールファクタを減算してその差分を計算し、制御ロジック400の制御により、その差分からなるスケールファクタを各計算ユニットP0〜Pk-1の第2シフタ10に出力するようになっている。
制御ロジック400は、データメモリ100のデータに対して初めて演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位でデータをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループのデータをそれぞれデータバス110経由で各計算ユニットP0〜Pk-1の第2シフタ10に振り分ける。
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP0〜Pk-1の第1シフタ16に与え、各計算ユニットP0〜Pk-1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
また、制御ロジック400は、データメモリ100のデータに対して再度演算を行うときは、次の制御処理を実行するようになっている。
まず、データブロック単位で演算データをデータメモリ100から読み出し、データブロックの各データグループごとに、データグループの演算データをそれぞれデータバス110経由で各計算ユニットP0〜Pk-1の第2シフタ10に与える。これとともに、各計算ユニットP0〜Pk-1の第2シフタ10に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納されているときは、ブロックスケールファクタレジスタ56からブロックスケールファクタを読み出して桁合わせ用加算器60に与え、グループスケールファクタレジスタファイル52からグループスケールファクタを順次読み出して桁合わせ用加算器60に与え、桁合わせ用加算器60により各グループスケールファクタとブロックスケールファクタとの差分を計算し、その差分からなるスケールファクタを各計算ユニットP0〜Pk-1の第2シフタ10に与える。
そして、グループスケールファクタ検出器50で検出したグループスケールファクタを各計算ユニットP0〜Pk-1の第1シフタ16に与え、各計算ユニットP0〜Pk-1の第1シフタ16からの演算データをデータバス110経由でデータメモリ100に格納する。
なお、各計算ユニットP0〜Pk-1の第2シフタ10に与えたデータのグループスケールファクタおよびブロックスケールファクタがグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納されていないときは、各計算ユニットP0〜Pk-1の第2シフタ10に与えたデータに対応するグループスケールファクタおよびブロックスケールファクタをデータメモリ100から読み出し、これらをデータバス110経由でグループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56に格納してから、上記処理を実行する。
次に、上記実施の形態の動作を図3ないし図7を参照しながら説明する。以下、下式(1),(2)の数式例を用いて説明する。なお、ここでも、データメモリ100からのデータを8ビット、積和演算器12の出力を16ビットとする。
本例では、演算部200が4つの計算ユニットから構成されているものとし、データブロックは、2つのデータグループを含んで構成され、データグループは、4つのデータを含んで構成されているものとする。また、あらかじめ定められた係数データA(0)〜A(3)、B(0),B(1)は、必要な時にはいつでも利用可能であると仮定する。これらの係数データをどのように供給するかは、本発明とは関わりないので説明しないが、例えば、必要に応じてデータメモリ100から読み出すなどして各積和演算器12に与えることができるものとする。
まず、本発明に係るデータ演算処理装置において、下式(1)によりデータを並列処理する手順を図3を参照しながら簡単に説明する。図3は、各積和演算器12で行われる積和演算を示す図である。
下式(1)によりデータメモリ100のデータに対して演算を行うときは、まず、サイクル1で、データX(0)〜X(3)を含む1番目のデータグループがデータメモリ100から読み出され、データX(0)〜X(3)がそれぞれデータバス110経由で各計算ユニットP0〜P3の第2シフタ10に振り分けられる。このとき、データX(0)〜X(3)は、最初でスケールに関する情報はないので、制御ロジック400は、データX(0)〜X(3)がシフトされないように第2シフタ10を制御する。これらのデータを各積和演算器12に保持するための手段(例えば、図14の積和演算器12の第1レジスタファイル)は利用可能であるとする。このような保持手段は本発明とは関係ないため、図1には示されていない。
各積和演算器12では、図3の手順に従って、係数データA(0)〜A(3)とデータX(0)〜X(3)との積和演算が行われ、サイクル2からサイクル5までを経て、最初の積和演算結果である演算データY(0)〜Y(3)が得られる。これらの演算過程では、データX(0)〜X(3)は、各計算ユニットP0〜Pk-1間をハードウェア手段を通じて転送されるものとする。
演算データY(0)〜Y(3)は、その後、各ユニットスケールファクタ検出器14に入力される。各ユニットスケールファクタ検出器14では、積和演算器12からの演算データの冗長なビット数が算出され、これがスケールファクタとして算出される。この算出では、例えば、演算データY(0)〜Y(3)のうちあるデータ“00001100”は、“01100000”にスケーリングされ、その場合、冗長なビット数が“3”であるため、スケールファクタは“3”となる。
各ユニットスケールファクタ検出器14で算出された複数のスケールファクタは、次に、グループスケールファクタ検出器50に入力され、ここで複数のスケールファクタのうち最小のものがグループスケールファクタとして検出される。
このグループスケールファクタは、さらに各計算ユニットP0〜P3の第1シフタ16に入力される。これとともに、各積和演算器12からの演算データY(0)〜Y(3)も第1シフタ16に入力される。グループスケールファクタに従って、第1シフタ16により、16ビットの演算データY(0)〜Y(3)に対してグループ正規化が行われる。図4に、実際の数値を用いた演算結果の一例を示す。
これらのグループ正規化された演算データは、さらに、次のブロック処理に備えるため、データメモリ100に格納される。データメモリ100のデータのビット数は演算データよりも少ないため、各演算データは、下位の8ビットが切り捨てられ、8ビットの演算データに丸められる。これらの丸められた演算データY(0)〜Y(3)は、図4の中でデータメモリ100の入力欄に示されている。演算データY(0)〜Y(3)をデータメモリ100に格納する間に、グループスケールファクタもグループスケールファクタレジスタファイル52に入力される。このグループスケールファクタは、グループスケールファクタレジスタファイル52内に、対応するデータグループと関連付けられて格納される。例えば、データグループは、データメモリ100に格納する場合、ある一つのメモリアドレスを取り、そのデータグループのすべてのデータは、一つのメモリアドレスで同時にアクセスされるとして、演算データをデータメモリ100に格納するのに用いられるのと同じアドレスで特定されるレジスタに格納する。あるいは、図5に示すように、データグループが格納されているデータメモリ100のアドレスと、グループスケールファクタが格納されているグループスケールファクタレジスタファイル52のアドレスとの対応表を、データメモリ100の一部に作成してこれらのアドレスを管理してもよい。
グループスケールファクタは、また、ブロックスケールファクタ検出器54にも入力され、そこで、複数のグループスケールファクタのうち最小のものがブロックスケールファクタとして検出される。あるデータブロックの最初のデータグループの計算が終わった時点では、今計算されたばかりのグループスケールファクタ、すなわち、この図4の例では“2”が初期値として、ブロックスケールファクタ検出器54内のレジスタ(図1には示されていない)に格納される。
次に、サイクル6で、データX(4)〜X(7)を含む2番目のデータグループがデータメモリ100から読み出され、データX(4)〜X(7)がそれぞれデータバス110経由で各計算ユニットP0〜P3の第2シフタ10に振り分けられる。データX(0)〜X(3)を含む1番目のデータグループに対するのと同様の演算処理が、このデータグループに対しても行われる。唯一異なるのは、演算データY(4)〜Y(7)に対して計算されるグループスケールファクタは、今回はブロックスケールファクタ検出器54内のレジスタに保持されている内容と比較され、小さい方の値がブロックスケールファクタとして選択されるという点である。図4の例では、演算データY(4)〜Y(7)からグループスケールファクタ“1”が検出される。この場合、ブロックスケールファクタ検出器54内のレジスタに保持されている“2”よりも“1”の方が小さいので、ブロックスケールファクタ検出器54内のレジスタの内容は更新される。
この例においては、この時点で、一つのデータブロックのすべてのデータに関する演算が完了したため、ブロックスケールファクタは、ブロックスケールファクタ検出器54内のレジスタの現在の値、すなわち“1”に確定される。本例から、容易に類推されるように、例えこの後に演算を行うべき複数のデータグループがあったとしても、2番目のデータグループに適用された上述の処理を繰り返すことが可能である。
次に、下式(2)の信号処理を開始する。演算を始める前に、ブロックスケールファクタ検出器54内のレジスタの内容をブロックスケールファクタレジスタ56に転送しておく。
下式(2)によりデータメモリ100の演算データに対して再度演算を行うときは、演算データY(0)〜Y(3)を含む1番目のデータグループがデータメモリ100から読み出され、演算データY(0)〜Y(3)がそれぞれデータバス110経由で各計算ユニットP0〜P3の第2シフタ10に振り分けられる。これとともに、対応するグループスケールファクタ、すなわち、本例においては“2”が、アドレスバス120経由で与えられるアドレス情報により選択され、グループスケールファクタレジスタファイル52から読み出される。第2シフタ10における右シフト量は、現在のグループスケールファクタとブロックスケールファクタの差分、すなわち、本例においては、2−1=1、として与えられる。このため、第2シフタ10は、現在の入力を1ビット右シフトするように制御される。演算データY(0)〜Y(3)に対して、この後適用される演算処理は、下式(1)について説明した演算処理とまったく同様である。
次に、演算データY(4)〜Y(7)を含む2番目のデータグループがデータメモリ100から読み出され、演算データY(4)〜Y(7)がそれぞれデータバス110経由で各計算ユニットP0〜P3の第2シフタ10に振り分けられる。このデータグループに対するグループスケールファクタは、図4に示すように、“1”である。結果として、このデータグループのすべての演算データは、1−1=0、すなわち第2シフタ10でシフトされずに出力される。
この段階で、すべての演算データY(0)〜Y(7)が、データブロックの最大値の小数点位置に桁合わせされ、その結果、のちに続く積和演算において、固定小数点演算を行うことが可能となる。
図6に、本発明のブロックフローティング方式によって得られる演算データY(0)〜Y(7)、Z(0)〜Z(7)を示す。そして、この演算結果を用いて下式(3)によりSNRを計算すると、下式(8),(9)に示すようになる。なお、下式(8)は、下式(1)の演算結果に基づくSNRを示す式であり、下式(9)は、下式(2)の演算結果に基づくSNRを示す式である。
また、図7に、下式(1),(2)により、従来の固定小数点処理、従来のブロックフローティング処理および本発明によるブロックフローティング処理をそれぞれ行った場合のSNRをまとめて示す。図7によれば、本発明によるブロックフローティング処理では、演算精度が大幅に改善されていることがわかる。
このようにして、本実施の形態では、データグループの各データに対して演算を行い、それら演算データを代表する最小のスケールファクタをグループスケールファクタとして検出し、検出したグループスケールファクタに基づいて各演算データに対してスケーリングを行うこれら一連の処理を、データブロックの各データグループごとに行い、さらに、検出したグループスケールファクタのうち最小のものをブロックスケールファクタとして検出し、スケーリングした演算データに対して再度演算を行うときは、演算の前に、データグループの各演算データに対して当該データグループのグループスケールファクタおよびブロックスケールファクタに基づいてスケーリングを行うようにした。
これにより、積和演算器12からの演算データは、そのデータグループの演算データのうち絶対値が最大となるものの冗長なビット分だけ左シフトされてから丸められ、演算データに対して再度演算を行うときは、データメモリ100の演算データは、そのデータブロックの演算データ(前回の演算における積和演算器12からの演算データ)のうち正の最大値の小数点位置に桁合わせが行われてから演算が行われるので、演算過程におけるデータの桁落ちが少なくなる。また、従来の構成に対して回路をわずかに追加または変更するだけでよいので、回路を簡易に構成することができる。したがって、従来に比して、比較的簡易な構成により、ブロックフローティング方式で固定小数点演算を行うときの演算精度を向上することができる。
また、本実施の形態では、複数の計算ユニットP0〜Pk-1を備え、データグループ単位でデータを並列処理するようにした。これにより、ブロックフローティング方式で固定小数点演算を行うときの演算精度を向上しつつ、さらにデータの演算処理を高速に行うこともできる。
なお、上記実施の形態においては、各計算ユニットP0〜Pk-1の第2シフタ10と積和演算器12と相互間で、ハードウェア手段を通じてデータを転送することについて説明したが、具体的には、図8に示す構成を採用することができる。図8は、各計算ユニットP0〜Pk-1の第2シフタ10と積和演算器12と相互間でデータを転送するための詳細な構成を示すブロック図である。
図8において、計算ユニットP0は、第2シフタ10からのデータを保持するレジスタ11aを備えている。計算ユニットP1,P2は、前段の計算ユニットP0,P1のレジスタ11aからのデータを保持するレジスタ11aと、前段の計算ユニットP0,P1のレジスタ11aからのデータおよび第2シフタ10からのデータのいずれかを選択して積和演算器12に出力するセレクタ11bと、を備えている。計算ユニットP3は、前段の計算ユニットP2のレジスタ11aからのデータおよび第2シフタ12からのデータのいずれかを選択して積和演算器12に出力するセレクタ11bを備えている。
また、上記実施の形態においては、ユニットスケールファクタ検出器14と、グループスケールファクタ検出器50と、を備えて構成したが、これに限らず、例えば、図9に示す構成を採用することができる。図9は、ユニットスケールファクタ検出器14およびグループスケールファクタ検出器50の他の構成を示すブロック図である。
図9において、各計算ユニットP0〜P4は、ユニットスケールファクタ検出器14に代えて、XORアレイ15aからなる局所ブロックフローティングユニット15で構成されている。そして、プライオリティエンコーダ21からなるグループスケールファクタ検出器51と、各計算ユニットP0〜P4の局所ブロックフローティングユニット15とグループスケールファクタ検出器51とを接続するワイヤードORバスと、を備えて構成されている。
局所ブロックフローティングユニット15は、積和演算器12からの演算データを入力し、その演算データの隣り合うビットに対して排他的論理和演算を行って出力するようになっている。例えば、4ビットの演算データを入力した場合、最上位の4番目のビットおよび3番目のビットに対して排他的論理和演算を行ったものを出力データの3番目のビットとし、同じ要領で、3番目および2番目の演算結果を出力データの2番目のビットとし、2番目および1番目の演算結果を出力データの1番目のビットとし、そして、最上位のビットを出力データの最上位のビットとして出力する。
これにより、各計算ユニットP0〜P4の積和演算器12からの演算データのスケールファクタを算出し、それらスケールファクタからグループスケールファクタを算出しなくても、各計算ユニットP0〜P4の積和演算器12からの演算データから直接グループスケールファクタを検出することもできる。
また、上記実施の形態においては、数値演算を行うのに本発明を適用した場合について説明したが、これに限らず、本発明の主旨を逸脱しない範囲で他のものにも適用可能である。
また、上記実施の形態においては、制御ロジック400を、内部のロジックに従って各部の制御を行うように構成したが、これに限らず、制御ロジック400に代えて、CPU、RAMおよびROMをバス接続してデータ演算処理部を構成し、データ演算処理部は、CPUにより、上記の制御手順を示したプログラムをROMから読み出して実行するように構成してもよい。この場合、上記の制御手順を示したプログラムは、ROMに格納されているが、これに限らず、上記の制御手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAMに読み込んで実行するようにしてもよい。
また、上記実施の形態においては、本発明に係るデータ演算処理装置を、データメモリ100と、演算部200と、制御部300と、制御ロジック400と、アドレス生成器500と、を備えたハードウェアで構成したが、これに限らず、例えば、CPU、RAMおよびROMをバス接続して構成し、CPUにより、各部の機能を実現するための制御プログラムをROMから読み出して実行するように、一部または全部をソフトウェアで構成してもよい。この場合も、制御プログラムは、ROMに格納されているが、これに限らず、制御プログラムが記憶された記憶媒体から、その制御プログラムをRAMに読み込んで実行するようにしてもよい。
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
上記実施の形態において、データメモリ100は、請求の範囲第3項または第4項記載の記憶手段に対応し、グループスケールファクタレジスタファイル52およびブロックスケールファクタレジスタ56は、請求の範囲第4項記載の第2の記憶手段に対応している。
また、第2シフタ10は、請求の範囲第3項、第4項、第6項または第7項記載の第1のスケーリング手段に対応し、積和演算器12は、請求の範囲第3項、第5項、第6項または第7項記載の演算手段に対応し、ユニットスケールファクタ検出器14は、請求の範囲第3項または第5項記載のスケールファクタ算出手段に対応し、第1シフタ16は、請求の範囲第3項または第6項記載の第2のスケーリング手段に対応している。
また、グループスケールファクタ検出器50は、請求の範囲第3項記載の検出グループスケールファクタ検出手段に対応し、ブロックスケールファクタ検出器54は、請求の範囲第3項記載のブロックスケールファクタ検出手段に対応し、制御ロジック400は、請求の範囲第3項または第4項記載の制御手段に対応している。
Figure 0003736741
産業上の利用可能性
以上説明したように、本発明に係る請求の範囲第1項ないし第7項記載のデータ演算処理装置によれば、従来に比して、比較的簡易な構成により、ブロックフローティング方式で固定小数点演算を行うときの演算精度を向上することができるという効果が得られる。
さらに、本発明に係る請求の範囲第3項記載のデータ演算処理装置によれば、ブロックフローティング方式で固定小数点演算を行うときの演算精度を向上しつつ、さらにデータの演算処理を高速に行うことができるという効果も得られる。

Claims (7)

  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のスケーリング手段からのデータと所定の係数との積和を演算する積和演算器であることを特徴とするデータ演算処理装置。
JP2000555180A 1998-06-15 1999-06-14 データ演算処理装置 Expired - Fee Related JP3736741B2 (ja)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
JP3736741B2 true JP3736741B2 (ja) 2006-01-18

Family

ID=7870718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000555180A Expired - Fee Related JP3736741B2 (ja) 1998-06-15 1999-06-14 データ演算処理装置

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)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4594957B2 (ja) * 2001-09-18 2010-12-08 旭化成株式会社 コンパイル装置
WO2003032157A1 (en) 2001-09-18 2003-04-17 Asahi Kasei Kabushiki Kaisha 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
US8370606B2 (en) * 2007-03-16 2013-02-05 Atmel Corporation Switching data pointers based on context
US7797516B2 (en) * 2007-03-16 2010-09-14 Atmel Corporation Microcontroller with low-cost digital signal processing extensions
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
US9519457B2 (en) * 2011-05-16 2016-12-13 Nec Corporation Arithmetic processing apparatus and an arithmetic processing method
JP6225687B2 (ja) * 2013-02-18 2017-11-08 富士通株式会社 データ処理装置、およびデータ処理方法
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
EP3874597A4 (en) * 2018-10-31 2022-08-17 Telefonaktiebolaget Lm Ericsson (Publ) METHODS, APPARATUS AND MACHINE READABLE MEDIA FOR SIGNALING IN A BASE STATION
CN112308199B (zh) * 2019-07-26 2024-05-10 杭州海康威视数字技术股份有限公司 数据块的处理方法、装置及存储介质
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치

Family Cites Families (9)

* 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
EP0202633B1 (en) * 1985-05-17 1991-01-23 Nec Corporation Processing circuit capable of raising throughput of accumulation
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 日本電気株式会社 信号処理プロセッサ
JPH09507941A (ja) 1995-04-18 1997-08-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化
JPH09128213A (ja) 1995-10-31 1997-05-16 Hitachi Ltd ブロックフローティング処理システムおよび方法
JPH1040073A (ja) 1996-07-24 1998-02-13 Matsushita Electric Ind Co Ltd ディジタル信号処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3736741B2 (ja) データ演算処理装置
JP3487903B2 (ja) 演算装置及び演算方法
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
JP2585649B2 (ja) 除算回路
US20060253521A1 (en) High-Speed Integer Multiplier Unit Handling Signed and Unsigned Operands and Occupying a Small Area
JP3551113B2 (ja) 除算器
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
US7809784B2 (en) Apparatus and method for calculation of divisions and square roots
JP2502836B2 (ja) 除算回路の前処理装置
US6952710B2 (en) Apparatus, methods and computer program products for performing high speed division calculations
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP2645422B2 (ja) 浮動小数点演算処理装置
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
US20100030836A1 (en) Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium
JP2512230B2 (ja) 演算処理装置
JP2009245407A (ja) 複素数の積和演算装置および積和演算方法
JP2508286B2 (ja) 平方根演算装置
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
JP3539077B2 (ja) 並列演算方式による除算方法
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP2000010763A (ja) 除算回路
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
WO2009142670A1 (en) Large-factor multiplication in an array of processors
JPH06243194A (ja) 論理回路の自動設計方法およびその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050513

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050513

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050719

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051020

R150 Certificate of patent 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: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

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

Year of fee payment: 4

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Year of fee payment: 4

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101104

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111104

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121104

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131104

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131104

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131104

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131104

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees