JPH07191966A - 行列掛け算回路 - Google Patents
行列掛け算回路Info
- Publication number
- JPH07191966A JPH07191966A JP4330734A JP33073492A JPH07191966A JP H07191966 A JPH07191966 A JP H07191966A JP 4330734 A JP4330734 A JP 4330734A JP 33073492 A JP33073492 A JP 33073492A JP H07191966 A JPH07191966 A JP H07191966A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- sequence
- bit
- processing unit
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
よびアルゴリズムを提供する。 【構成】第1のステ−ジ12は、第1の行列と第2の行
列の掛け算を行い中間行列を生成し、第2のステ−ジは
第3の行列と中間行列の積を求め最終的な行列を計算す
る。各ステ−ジは、当該ステ−ジが生成する行列の要素
を生成するために、ット掛け算処理部のパイプライン1
6、18を複数有している。各パイプライン16、18
は、同ステ−ジの他のパイプラインと並列に動作し、そ
れぞれ、当該ステ−ジが生成する行列の各列を生成す
る。
Description
路およびアルゴリズムに関するものである。本発明に係
る回路およびアルゴリズムは、特に、データ行列の離散
コサイン変換(以下、「DCT」と記す)の実現に適し
ている。
のための映像信号の圧縮にとって重要である。
は、式1aで定義することができる。
字で示す。また、行列の要素は小文字の英字で示す。
することができる。
Z(k1,k2)は変換係数の行列を示している。
し、C^はCの転置行列を表している。
すことができる。
つのN×N行列がある。ここで、行列Yを、Y=XC
^、または、式4で定義する。
うに書くことができる。
のように表される。
成されている。このような提案は、たとえば、Discrete
Cosine Transform(N.Ahmed,T.Matarajan and K.Rao,19
74 IEEE.Trans.on Comp.90)や、VLSI Implementation of
16×16 Discrete cosine transform(M.Sung,T.Chen an
d A.Gottlieb,IEEE Trans. on Cir.and Sys.,Apr.,198
9,610)や、Fast Algorithm and Implementation of a 2-
D Discrete Cosine Transform(N chou and S Lee,IEEE
Trans. on Cir.and Sys.,Mar.,1991,297)や、A Fast Rec
ursive Algorithm for Computing the Discrete Cosine
Transform(H.Hou、IEEE Trans. on Cir.and Sys.,Oct.,
1987,1455)等に記載されている。
技術技法には、次のような問題点がある。
decomposition)を用いた場合には、解
を得るために転置メモリが必要となり、パイプラインデ
ータ処理が、とても困難になる。
すると、実現のために必要となるハ−ドウェアのコスト
が、その利益を超えて大きくなる。
いないために、低速で非効率的にしか実施できない。
来の技術の問題点を解決することのできるアルゴリズム
および回路を提供する点である。
めには、3つの行列の積をとることが必要である。そこ
で、本発明は、効率的に3行列の積を取ることのできる
回路およびアルゴリズムを提供することを目的とする。
ここで、本発明に係る回路は、DCTに必要な3行列の
積算に適用することができる。
本発明は、要素xij i=1,..,I,j=
1,..,Jよりなる第1の行列Xと、要素c^jk J
=1,..,J,k=1,..,Kより成る行列C^の
掛け算を行い、要素yikよりなる中間行列Yを出力す
る第1の掛け算ステ−ジと、要素cli l=1,..,
L,i=1,..,Iよりなる第1の行列Cと、中間行
列Yの掛け算を行う第2の掛け算ステ−ジを有する行列
掛け算回路およびアルゴリズムを提供する。ここで、た
とえば、行列Xはデータ行列であり、行列C^はコサイ
ン係数行列の転置行列、行列Cはコサイン係数行列とし
てもよい。
−ジは、複数の処理部パイプラインと、レジスタパイプ
ラインを有している。各処理部パイプラインは、たとえ
ば、ビット掛け算処理部の縦並びの列である。x11,x
12,..,x1J,x21,x22,..,x2J,..,xIJ
の順序の行列Xの要素より成る第1の入力シ−ケンスは
レジスタパイプラインに入力される。レジスタパイプラ
インにおいて、行列要素は、レジスタからレジスタへと
順次シフトされる。レジスタパイプラインは、連続する
サイクルにおいて、前記第1のシ−ケンスの要素の第m
ビットを、第1ステ−ジの各パイプライン回路のm番目
の処理部に出力する。ここで、mは、1から要素xijの
ビットの数までの間のインデックスである。各処理部パ
イプラインは、また、それぞれ、行列C^の特定の列k
の要素のI回の繰り返しを第2のシ−ケンスとして受け
取る。ここでIは、行列Xの行数と同じ数である。言い
替えるならば、各処理部パイプラインは、行列C^の1
列の要素を、行列Xの各行につき1度づつ繰り返し受け
取る。これらの行列要素は、処理部パイプラインにそっ
て処理部から処理部へと送られる。各シ−ケンスよりの
行列要素は、1サイクル毎に入力される。各処理部パイ
プラインは、特定のkの値について、積xijcjkをシ−
ケンシャルに計算する。したがい、処理部パイプライン
の数は、Kに等しく、インデックスkの各値について、
1つの処理部パイプラインがある。すなわち、行列C^
の要素の各列に対して、1つの処理部パイプラインがあ
る。
には、パイプラインの最後から2番目の処理部から出力
された全てのiについての積xijcjkを累積するアキュ
ムレ−タを備えた処理部が設けられている。このような
累積機構は、中間行列Yの要素を生じる。このようにし
て、各パイプラインの最後の処理部のアキュムレ−タ
は、行列C^の特定の1列の要素と行列Xの特定の1行
の要素の引数ペアのグル−プから産じた積結果を互いに
加算する。
イプラインと、1つのレジスタパイプラインを有してい
る。各処理部パイプラインは、ビット掛け算処理部の縦
並びの列である。c11,c21,..,cL1,c21,
c22,..,cL2,..,cLIの順序の行列Cの要素c
liより成る第1の入力シ−ケンスはレジスタパイプライ
ンに入力される。レジスタパイプラインにおいて、行列
要素は、レジスタからレジスタへと順次シフトされる。
レジスタパイプラインは、連続するサイクルにおいて、
前記第1のシ−ケンスの要素の第pビットを、第1ステ
−ジの各パイプライン回路のp番目の処理部に出力す
る。ここで、pは、1から要素cliのビットの数までの
間のインデックスである。各処理部パイプラインは、ま
た、それぞれ、行列Yの特定の列kの要素yikのL回の
繰り返しを第2のシ−ケンスとして受け取る。ここでL
は、行列Cの行数と同じ数である。言い替えるならば、
第2ステ−ジの各処理部パイプラインは、行列Yの1列
の要素を、行列Cの各行につき1度づつ繰り返し受け取
る。なお、各シ−ケンスよりの要素は、1クッロク毎に
入力される。
ついて、積cliyikをシ−ケンシャルに計算する。した
がい、処理部パイプラインの数は、Kに等しく、インデ
ックスkの各値について、1つの処理部パイプラインが
ある。
の出力先は、スイッチングアレイと、第2のアキュムレ
−タが積行列Zの要素を出力するように選択的に積結果
cliyikを累積するアキュムレ−タである。第2のアキ
ュムレ−タは、式8を満足するように、積を選択的に累
積する。
ることのできる行列掛け算回路10を示す。図1は、行
列掛け算器の前半部分(後述する第1ステ−ジ)、図2
は後半部分(後述する第2ステ−ジ以降)を示してい
る。行列掛け算回路10は、12と14の2つのステ−
ジを有している。DCTは、Z=CXC^により実施す
ることができる。ここで、Cは変換係数の行列であり、
C^は行列Cの転置行列、Xはデータ行列である。第1
ステ−ジ12は、XC^の掛け算を行い、中間行列Yを
生成する。第2ステ−ジは、CYの掛け算を実行し、行
列Zを生成する。第1ステ−ジ12は、レジスタ列20
と2つの処理部列16、18を有している。2つの処理
部列16と18は、同じ構成を有している。処理部列1
6、18は、複数の(本実施例では2つ)の処理部PE
2、(16−2、16−3、18−2、18−3)に接
続した処理部PE1(16−1、18−1を有してい
る。レジスタ列20に供給されるデータ要素の各ビット
に対して、1つの処理部PE1もしくはPE2が必要と
なる。したがい、1列あたりの処理部PE1とPE2の
総数は、レジスタ列20に入力されるデータ要素のビッ
ト数と等しくなる。なお、図1においては、処理部列1
6、18に、2つのPE2を設けているが、回路10に
任意の数のPE2を追加して調節してもよい。さて、処
理部列16、18の最後のPE2には、処理部PE3
(16−4、18−4)が接続されている。第1の処理
部列16は、行列Xの要素に、行列C^の第1列の要素
を乗じる。第2の処理部列18は、行列Xに行列C^の
第2列の要素を乗じる。
せて説明する。第2の処理部列18は、第1の処理部と
同じであるので、第1の処理部列16についての説明
は、量列についてあてはまる。x11,x12,x21,x22
の要素を持つ2×2の行列が、1度に1要素ずつ、ライ
ン20−1を介して、レジスタ欠20に入力される。同
様に、行列C^のc^11、c^21の要素よりなる第1列
が、1度に1要素ずつ、ライン34−1を介して、処理
部列16の最初の処理部PE1(16−1)に入力され
る。行列の掛け算において、この行列C^の第1列は、
行列Xの全ての行について繰り返されなければならな
い。たとえば、本実施例では、C^の第1列は、ライン
34−1より2度入力される。
行列Xよりのx11である。また、ライン34−1よりの
最初の入力は行列C^よりの要素c^11である。以下、ど
のように、処理部列がx11c^11を計算するかを説明す
る。PE1(16−1)のc^11の処理は次のように
行われる。入力ライン20−1の第1ビットに接続した
タップラインは、処理部列16−1のPE1に要素x11
の第1ビットを供給する。すなわち、ライン38−1よ
り、マルチプレクサ36の選択制御入力に第1ビットが
供給される。このマルチプレクサ36−1は、データ入
力として、ライン34−1より要素c^11を受け取
る。入力された第1ビットがセットされていれば(論理
1に等しければ)ライン34−1上のc^11が選択され
る。第1ビットがクリアさていれば(論理ゼロに等しけ
れば)、論理ゼロが選択される。マルチプレクサの出力
は、ライン28−1を介して、クロックの立ち下がりで
記憶を行うレジスタ24−1に与えられる。この値は、
第1の入力要素x11とc^11の積の結果の一部分である
部分結果を構成する。行列C^の第1列の最初の入力で
あるc^11は、ライン32−2を介して、処理部列16
のPE1のレジスタ30−1に供給され、記憶される。
これで、x11とc^11のPE1(16−1)による処理
は終了する。
で、行列Xの最初の入力要素がx11が、ライン20−1
を介して、レジスタ列20の最初のレジスタ20−1に
供給され記憶される。次のクロックでは、x11の第2ビ
ットの値とc^11がPE2(16−2)で処理される。
また、この間に、次の組であるc^21とx12が、PE1
(16−1)とレジスタ列でAよりされる。
する。タップライン38−2よりx1 1の第2ビットが、
PE2(16−2)のマルチプレクサ36−2の選択制
御入力に供給される。また、この間に、第1列の要素c
^11が、ライン34−2を介して、PE2(16−2)
のマルチプレクサ36−2のデータ入力に供給される。
もし、ライン38−2より供給されたx11の第2ビット
がセットされていれば、マルチプレクサ36−2によっ
て、c^11が選択される。もし、第2ビットがクリアさ
れていれば、論理ゼロが選択される。マルチプレクサ3
6−2の出力は、ライン28−2を介して、加算レジス
タ24−2に供給される。加算レジスタ24−2は、ラ
イン26−1を介して、PE1のレジスタ24−1に記
憶されている部分結果をも受け取る。そして、これらの
2つの値は、加算レジスタ24−2中において、新たな
部分結果を計算するために、加算され、記憶される。な
お、このPE2(16−2)のマルチプレクサのデータ
は、データx11の第2ビットによる掛け算を示してい
る。このため、マルチプレクサ36−2の出力は、レジ
スタ24−1の部分結果との加算に先立ち、レジスタ2
4−1の部分結果に対して左(上位)へ1ビットシフト
されなければならない。さて、第2クロックの立ち下が
りで、新たな部分結果が加算レジスタ24−2に記憶さ
れる。また、x11が、ライン20−2を介して、レジス
タ列20のレジスタ21−2に入力され記憶される。同
様に、要素c^11が、ライン32−2を介して、PE2
(16−2)のレジスタ30−2に入力され記憶され
る。また、同様に、第2の入力引数組(x12,c^21)
と、その第1の部分結果は、それぞれ、レジスタ列20
のレジスタ21−1と、レジスタ30−1、24−1に
記憶される。
(x21,c^11)が、それぞれ、ライン20−1と34
−1を介して、PE1(16−1)とレジスタ列20
に、処理のために入力される。前述した第1の引数組
(x11,c^11)と同じく、前記第2の引数組(x12,
c^21)のデータフロ−は、PE2(16−2)とレジ
スタ列20中で継続する。第1の引数組の処理は、レジ
スタ列20と次のPE2(16−3)中に継続する。タ
ップライン38−3は、入力x11の第3ビットを、第3
段階のPE”(16−3)のマルチプレクサ36−3の
選択制御入力に供給する。同様に、ライン34−3を介
して、要素c^11がマルチプレクサ36−3のデータ入
力に与えられる。x11の第3ビットがセットされていれ
ば、列入力c^11が出力として選択される。もし、第3
ビットがクリアされていれば、論理ゼロが出力として選
択される。この出力は、ライン28−3を介して、加算
レジスタ24−3に与えられ、左(上位)へ2ビットシ
フトされ、ライン26−2を介して加算レジスタ24−
2から供給された部分結果と加算される。この結果は、
加算レジスタ24−3に、第3クロックの立ち下がりエ
ッジで記憶される。
合には、さらなるPE2を、PE2(16−3)の下
に、以上に説明してきたように接続し、追加する。ま
た、同様に、追加した各PE2について、レジスタをレ
ジスタ列20に、先に示したように追加する。この場合
の、m段目(1≦m≦行列Xの要素のビット数)のPE
2の動作を簡単に説明する。行列Xの要素の第mビット
は、レジスタ列のm−1番目のレジスタより、m段目の
PE2のマルチプレクサに、選択制御入力として供給さ
れる。もし、このビットがセットされていれば、m−1
番目のPE2のレジスタより取りだした、対応するC^
の入力が選択される。もし、このビットがクリアされて
いれば、論理ゼロが選択される。このマルチプレクサよ
りの出力は、加算レジスタに与えられ、新たな部分結果
を得るために、左(上位)へm−1ビットシフトされ、
m−1段目の部分結果と加算される。
11,c^11)の掛け算の最終結果が加算レジスタ24−
3から、第4クロックで出力される。第の行列Xの1つ
の行の要素と、第2の行列C^の一つの列の積の結果の
和は、中間行列Y=XC^の一つの要素となる。たとえ
ば、y11=x11c^11+x12c^21であり、y21=x21c
^11+x22c^21である。
E2(16−3)における第1と第2の結果、すなわち
x11c^11,x12c^21を加算すればy11を生成でき、第
3と第4の結果を加算すればy21を生成できることが分
かる。そこで、このために、処理部16の最後にPE3
(16−4)を設けている。
を介して、積結果x11c^11が、アキュムレ−タ40に
供給される。アキュムレ−タ40は、第5クロックにお
いて、第1の積結果x11c^11を、再度アキュムレ−タ
に入力するためにのフィ−ドバックパス46を有してい
る。第5クロックにおいて、アキュムレ−タ40は、ラ
イン26−3を介して、第2番目の入力として、第2の
積結果x12c^21を受け取る。これは、第1の積結果に
対して1計算段階遅れている第2の積結果が追い着くよ
うにするためである。この2つの積結果は加算され、第
5クロックの立ち下がりエッジでアキュムレ−タ40に
記憶される。
c^11が、ライン26−3を介してアキュムレ−タ40
に入力される。そこで、この時点までにアキュムレ−タ
40の内容(y11)は、移動されていなければならな
い。このため、y11は、アキュムレ−タ40よりライン
42を介してレジスタ44に出力される。要素y11は、
要素y21が計算されレジスタ44に入力される2クロッ
ク後までの期間、レジスタ44より出力される。
1列を構成する要素y11,y21を生成することができ
る。また、同様な処理により、処理部列18は、行列C
^の第2列を受取り、行列Yの第2列の要素y12とy22
を生成する。処理部列16、18は同時に動作する。ま
た、行列Yの各列について、完全な並列計算を行うに
は、行列計算回路10に、行列Yの列毎に、1つの処理
部列を設けなければならないが、図1、2の行列掛け算
回路10は、2列を有する行列Yについて、このような
要求を見たしている。例をあげて説明したように、この
ような回路は、2×2のDCTの計算に用いることがで
きる。
列22、24と、レジスタ列26を有している。処理部
列16と18のように、処理部列22と24は互いに同
じものである。処理部列22は、2つの処理部PE2
(22−2、22−3)が後に続く、処理部PE1(2
2−1)を有している。同様に、処理部列24は、2つ
の処理部PE2(24−2、24−3)が後に続く、処
理部PE1(24−1)を有している。したがい、処理
部列22についての説明は、処理部列24についても同
様にあてはまる。レジスタ列26は、たとえば、第3の
行列Cの要素を、c11,c21,c12,c22の順に、ライ
ン26−1を介して受け取る。処理部列22は、行列Y
の第1列の要素を、y11,y11,y21,y21の順に繰り
返し受け取る。
関連させて説明する。先に述べた処理部列16説明に続
けると、第66クロックにおいて、y11の値がレジスタ
44からライン48を介して出力される。このライン4
8は、処理部列22のPE1(22−1)の入力ライン
50−1に接続している。PE1(22−1)は、処理
部列16のPE1(16−1)と同じ構成を有してい
る。したがい、y11は、ライン50−1を介して、マル
チプレクサ56−1のデータ入力に与えられる。レジス
タ列26も、第1ステ−ジ12のレジスタ列20と同じ
構成を有している。そして、第3の行列Cの第1の入力
要素c11は、ライン26−1を介して、第1のノレジス
タ27−1に一度に入力される。タップライン54−1
は、第1の要素c11の第1ビットを、マルチプレクサ5
6−1の選択制御入力に供給する。これにより、もし、
この第1ビットがセットされていれば、要素y11が選択
され、第1ビットがクリアされていれば、論理ゼロが選
択される。マルチプレクサ56−1の出力は、ライン5
8−1を介して、レジスタ62−1に与えられ記憶され
る。一方で、y11は、ライン52−1を介して、レジス
タ60−1に送られ部分結果として記憶される。これ
で、PE1におけるc11の第1ビットとy11の処理を終
了する。
y11)が、処理部列22とレジスタ列26に入力され
る。一方、この間にも、第1の引数組(c11,y11)の
処理は、PE2(22−2)とレジスタ列26で続けら
れる。第1の引数組(c11,y11)について説明を続け
る。y11は、レジスタ60−1より、ライン50−2を
介して、PE2(22−2)のマルチプレクサ56−2
に供給される。また、レジスタ27−1に記憶されてい
るc11の第2ビットが抽出され、ライン54−2を介し
てマルチプレクサ56−2の選択制御入力に供給され
る。これによりこの第2ビットがセットされている場合
は、データy11が選択され。第2ビットがクリアされて
いる場合には、論理ゼロが選択される。マルチプレクサ
56−2の出力は、ライン58−2を介して加算レジス
タ62−2に送られる。加算レジスタは、また、レジス
タ62−1から、ライン64−1を介して部分結果を受
け取る。マルチプレクサ56−2の出力は、左(上位)
へ1ビットシフトされ、新たな部分結果を得るために、
今までの部分結果と加算される。この新たな部分結果
は、加算レジスタ62−2に記憶される。データy
11は、ライン52−2を介して、レジスタ60−2に送
られ記憶され、データc11は、ライン26−2を介し
て、レジスタ列26のレジスタ27−2に送られ記憶さ
れる。これで、PE2におけるc11の第2ビットとy11
の処理を終了する。
y21)が、PE1(22−1)での処理のために、レジ
スタ列26と、処理部列22に入力されるの第1、第2
の引数組(c11,y11)(c21,y11)についての処理
は、レジスタ列26、PE2(22−3)、PE2(2
2−4)で、それぞれ続けられる。第1の引数組
(c11,y11)についての説明を続ける。y11は、レジ
スタ60−2より、ライン50−3を介して、PE2
(22−3)のマルチプレクサ56−3のデータ入力に
供給される。レジスタ27−2に記憶されているc11の
第3ビットは抽出され、ライン54−3を介して、マル
チプレクサ56−3の選択制御入力に与えられる。これ
により、この第3ビットがセットされている場合は、デ
ータy11が選択され、第3ビットがクリアされている場
合は、論理ゼロが選択される。マルチプレクサ56−3
の出力は。ライン58−3を介して、加算レジスタ62
−3に与えられる。加算レジスタ62−3は、加算レジ
スタ62−2よりライン64−2を介して部分結果を受
け取る。マルチプレクサ56−3の出力は、左(上位)
に2ビットシフトされ、最終結果を得るために、今まで
の部分結果と加算される。そして、この最終結果は、加
算レジスタ62−3に記憶される。
の結果は、ライン64−3を介してセレクタ66−1に
出力される。セレクタ66−1は、スイッチ70−1、
70−2を介して、アキュムレ−タ68−1、68−2
の一方を選択し、ライン64−3にシ−ケンシャルに表
われる結果を記憶する。セレクタ66−1は、各スイッ
チ70−1、70−2が矛盾なく交互に閉じるように、
システムクロックに基づいて供給されるクロックによっ
て制御される。
それぞれ、4つの掛け算の結果が、各処理部列毎に1結
果が1サイクル毎に、各列よりシ−ケンシャルに出力さ
れる。たとえば、セレクタ66−1、66−2は、対応
する処理部列から出力された第1と第3の結果を順番
に、レジスタ68−1、68−3に記憶する。さらに、
セレクタ66−1、66−2は、第2と第4の結果を、
レジスタ68−2、68−4に記憶する。このような順
序付けにより、各結果を正確に計算し、行列Zの要素を
生成することができる。すなわち、第2ステ−ジのレジ
スタ列26と第1の処理部列22は、順次(c11,
y11),(c21,y11),(c12,y21),(c22,y
21)の組を受け取る。したがい、値z11=c11y11+c
12y21、すなわち第1の結果と第3の結果と和がアキュ
ムレ−タ68−1により生成され、値z21=c21y11+
c22y21、すなわち第2の結果と第4の結果と和がアキ
ュムレ−タ68−2により生成される。同様に、第2ス
テ−ジのレジスタ列26と第2の処理部列24は、順次
(c11,y12),(c21,y12),(c12,y22),
(c22,y22)の引数組を順次受け取る。そして、値z
12=c11y12+c12y22、値z22=c21y12+c22y22
が、セレクタ66−2の前記奇数、偶数の記憶選択によ
よって、それぞれ第2の処理部列24に接続する、アキ
ュムレ−タ68−3、68−4により生成される。この
ために、セレクタ66−2は、スイッチ70−1、70
−2と同様に動作する2つのスイッチ70−3と70−
4を有している。
それぞれ対応する処理部列よりの第1の結果と第3の結
果を同時に受け取る。そして、和であるz11と、z12を
同時に計算し、ライン72−1、72−3を介して、ス
イッチ74−1と74−3に同時に出力する。これらの
スイッチ74−1と74−3の機能は、スイイッチ70
−1、703と同様であり、閉じてレジスタ76−1、
76−3への出力を可能とする。レジスタ76−1、7
6−3は、ライン80−1に、次のクロックで、要素z
12が、レジスタ76−3から76−1にシフトされる
ように、縦並びに接続されている。一方、この間にレジ
スタ76−1に記憶されていた要素z11は、出力ライン
78−1上に移動する。
に、アキュムレ−タ68−2、68−4は、同時に計算
を行う。そして、これらのアキュムレ−タ68−2、6
8−4は、同時に要素z21,z22を生成し、ライン72
−2、72−4、スイッチ74−2、74−4を介し
て、縦並びのレジスタ76−2、76−4に、それぞれ
記憶する。そして、レジスタ76−2、76−4は、ラ
イン80−2に、次のクロックで、要素z22が、レジ
スタ76−4から76−2にシフトされるように接続さ
れている。一方、この間にレジスタ76−2に記憶され
ていた要素z11は、出力ライン78−2上に移動す
る。これにより、行列掛け算器回路10は、3行列の掛
け算、たとえば、2×2DCT等を完遂する。
ことのできるモジュラ−化行列掛け算回路100を示し
ている。行列掛け算回路10と同様に、回路100は、
Y=XC^を計算する第1ステ−ジ106と、Z=CY
を計算する第2ステ−ジ108を有している。図3は第
1ステ−ジを、図4は第2ステ−ジ以降を示している。
第1ステ−ジ106は、図中、データが列102を、1
サイクルに1レジスタずつ、順次落ちていくように、縦
並びに接続された複数のレジスタを備えてレジスタ列1
02を有している。また、第1ステ−ジ106は、処理
部列104−1、104−8を有している。各処理部列
104−1、104−8は、縦並びに接続された8個の
PE2の列の前段に、処理部PE1を有している。PE
1の内部構成を図5に示す。これは、図1、2の回路1
0のPE1(16−1,18−1,22−1,24−
1)と、全く同じものである。特に、図5のPE1は、
データ選択制御入力135と2つのデータ入力142、
143を備えたマルチプレクサ144を有している。デ
ータ選択制御入力は、レジスタ列102−1もしくは1
10−1の第1ビットに接続している。行列C^もしく
はYの要素は、ライン143に入力され、論理ゼロがラ
イン142に入力される。マルチプレクサの出力は、ラ
イン141を介して、レジスタ141に供給され、そこ
から、ライン149上を継続する段階へと出力される。
同様に、C^もしくはY行列の要素が、ライン137を
介してレジスタ145に供給され、そこから、ライン1
47に出力される。
た、図1、2のPE2(16−2,16−3,18−
2,18−3,22−2,22−3,24−2,24−
3)と同じものである。特に、図6のPE2は、行列C
^もしくはYの要素データ入力ライン155と、論理ゼ
ロデータ入力ライン169と、選択制御ビット入力ライ
ン159とを備えたマルチプレクサ151を有してい
る。さらに、マルチプレクサ151の、ライン171を
介して挙給される出力は、ライン157を介して供給さ
れる前段の結果と、加算レジスタ148で加算される。
明確化のために、加算レジスタ148を、出力ライン1
65を有するレジスタ152と、レジスタ153に、ラ
イン163を介して接続した加算回路と150に分けて
示した。行列C^もしくはYの要素は、ライン161を
介してレジスタ153に供給され、続いて、ライン16
7に出力される。
6−4,18−4)と同様に、その最後にPE3を有し
ている。PE3の内部構成を図7に示す。PE2の加算
器レジスタ148と同様に、PE3のアキュムレ−タ1
56を、アキュムレ−ト部158と、レジスタ160に
分けて示した。ライン173上をアキュムレ−ト部15
8に入力した前段の結果は、ライン175に出力され
る。アキュムレ−タの累積結果は、順次ライン181に
出力されるようにライン175を介してレジスタ179
に供給される。また、パス177を介してレジスタ16
0にフィ−ドバックされる。フィ−ドバックされた値
は、ライン173上の継続する入力結果と加算できるよ
う、ライン183を介してアキュムレ−タに与えられ
る。
ように、1列中のPE1とPE2を合わせた数は、行列
Xの要素のビット数と等しい。この全部で9個のPE1
とPE2は、各処理列104−1〜104−8が、行列
Xの9ビットの要素の掛け算サポ−トするよう、縦並び
に接続される。また、これは、8個のレジスタを備えた
レジスタ列102に対応している。言い替えるならば、
レジスタ列102に、レジスタを、各処理部列104−
1〜104−8の各処理部列の各PE2に入力する行列
Xの要素を格納するように備える。
に、各処理部列104−1〜104−8は、2つの入力
を受け取る。1サイクル1要素ずつ、第1のデータ行列
Xの要素が、レジスタ列102にシ−ケンシャルに
x11,x12,..,x18,x21,x22,..,
x28...x88の順に一度に一つづつ入力される。そし
て、これらの行列の要素は、レジスタからレジスタへと
シフトされる。引き続くサイクル中において、レジスタ
列は、行列Xよりの各要素のm番目のビットを、各処理
部列104−1〜104−8のm番目の処理部に出力す
る。第2の入力のシ−ケンスとして、各処理部列104
−1〜104−8は、第2の行列C^の1列の要素を、
1サイクルに1要素づつ、行列Xの各列について1回づ
つ(8回)受け取る。すなわち、たとえば、処理部列1
04−4は、c^14,..,c^84,c^14,..,c
^84,c^14,..,c^84,c^14,..,c^84,c
^14,..,c^84,c^14,..,c^84,c
^14,..,c^84,c^14,..,c^84のシ−ケンスで
受け取る。これらの行列要素は、処理部列104−4に
沿って、処理部から処理部へと渡される。
間行列Yの要素の1列を出力する。実際の中間行列の掛
け算は図1、2の回路10と同様に行われる。そして、
各要素は、PE3で計算され、8個の引数組の積結果が
互いに加算される。これは、行列の掛け算の公式にした
がい、第1の行列Xの各行は、第2の行列C^の列の対
応する要素と掛け算されることによるものである。そし
て、これら積結果は、すべて、行列Yの1要素を生成す
るために互いに加算される。第1の行列Xの1行あたり
8個の要素と、第2の行列の1列あたり8個の要素は、
行列Yの要素を得るために、相互に加算しなければなら
ない8個の積結果を生じる。
8サイクル中、これをライン132−2〜132−8を
介して、第2ステ−ジ108に出力するようにする。す
なわち、たとえば処理部列104−7は、ライン132
−7を介して、y17,y17,y17,y17,y17,y17,
y17,y17,y27,y27,y27,y27,y27,y27,y
27,y27,..,y87のシ−ケンスで出力を行う。
00の第2ステ−ジ108は、レジスタ列110と、8
個の処理部列124−1〜124−8を、8×8DCT
をサポ−トするために有している。ここで、レジスタ列
は、14ビットの掛け算をサポ−トするために13個の
レジスタを備えている。また、レジスタ列110に応じ
て、各処理部列124−1〜124−8は、1つのPE
1と13個のPE2を備えている。
−1〜124−8の各処理部は、1サイクルで2つの掛
け算引数を受け取る。すなわち、各処理部列124−1
〜124−8の各処理部は、第1の掛け算引数として、
1要素/サイクルで、行列Cの要素の1ビットを受け取
る。このために、第2ステ−ジののレジスタ列110に
は、1サイクル毎に1要素が、c11,c21,..,
c81,c12,c22,..,c82,..c88のシ−ケンス
で入力される。そして、これらより、連続するサイクル
において、行列Cの全ての要素のp番目のビットが、各
処理部列124−1〜124−8のp番目の処理部に入
力される。一方、これ同時に、各処理部列124−1〜
124−8は、第2の掛け算引数として、一度に一要素
づつ、中間行列Yのひとつの列の要素を受け取る。これ
らの要素は、第1ステ−ジ106の処理部列104−1
〜104−8のPE3から、ライン132−1〜132
−8を介して、直接、第2ステ−ジ108の対応する処
理部列に、繰り返し出力される。ここで、実際の引数の
掛け算は、図1、2の回路10と同様に行われる。
理部列124−1〜124−6の最終段のPE2より、
ライン130−1〜130−8を介して出力される。図
1、2の2×2行列掛け算回路10と同様に、これらの
積結果は、最終行列Zを形成するために、選択的に累積
される。行列Zの第1の行の一要素を計算するために
は、ライン130−1〜130−8のうちの一つに出力
された、第1の積結果と、それから8番目毎の全ての積
結果の全てが累積されなけらばならない。同様に行列Z
の第2の行の一つの要素を計算するためには、ライン1
30−1〜130−8のうちの一つに出力された、第2
の積結果と、それから8番目毎の積結果の全てが累積さ
れなけらばならない。すなわち、行列Zのl(lは、1
から8までの数)番目の行の要素を計算するためには、
ライン130−1〜130−8のうちの一つに出力され
た、l番目の積結果と、それから8番目毎の全ての積結
果を、LK番目の積結果まで相互に加算しなければ成ら
ない。さらに、図1、2の回路10と同様に、このよう
にして計算された行列Zの要素の列kは、中間行列Yか
ら特定の処理部列124−1〜124−8に入力され
た、第2の掛け算引数の列に等しい。すなわち、もし、
処理部列124−3がライン1332−3から中間行列
の要素を列y13,..,y83から受け取った場合には、
その処理部列124−3は、ライン130−3上に、要
素z13,..,z83を計算するために加算される積結果
を出力する。
回路100は、S−BOXスイッチアレイ162と、ア
キュムレ−タマトリックス180と、D−BOXスイッ
チアレイと、回路100から計算した行列Zの要素を出
力するシリアル出力メモリ182とを有している。これ
らの各部の詳細な構成を図8、9、10に示す。図9は
S−BOXの詳細を、図10はD−BOXの詳細を、図
11はこれらのタイミング信号を示したものである。
とアキュムレ−タ164−1−1,..,164−1−
8の動作を説明する。アキュムレ−タマトリックス16
4は、分離されたアキュムレ−タ164−1−
1,..,164−8−8より構成されている。すなわ
ち、行列Zの全ての要素に対応するアキュムレ−タが存
在するように、L行K列のアキュムレ−タが存在する。
先にも述べたように、行列Zの特定の列Kを計算するた
めに必要な積結果は、対応するK番目の出力ライン13
0−1,..130−8にのみ出力される。そこで、ア
キュムレ−タの各列は、たとえば、164−1−
1,..,164−8−1は、ライン130−
1,..,130−8のうちのひとつに対応している。
また、1列のアキュムレ−タは、130−1,..,1
30−8のうちの、ひとつのラインからのみ積結果を受
け取る。図11に示すように、サイクルは、積結果の第
1グル−プc11y11,c11y12,..,c11y18が、そ
れぞれライン130−1,..,130−8に出力され
るサイクルからカウントされる。クロックライン190
−1に表われたパルスは、186−1から186−8の
各S−BOXの第1のスイッチ188−1(図9参照)
を閉じ、ライン130−1〜130−8から。各列の最
初のアキュムレ−タ164−1−1,..,164−1
−8、すなわち、アキュムレ−タマトリックスの第1行
にデータを流す。2番目のクロックで、行列Zの第2行
を生成するために計算されなければ成らない第2の積結
果のグル−プc21y11,c21y12,,..,c21y
18が、ライン130−1〜130−8に、それぞれ出力
される。クロックライン190−2に表われたパルス
は、各S−BOX186−1〜186−8の第2番目の
スイッチ188−2を閉じ、ライン130−1〜130
−8から、第2行目のアキュムレ−タ164−2−
1,..,164−2−8にデータを流す。このよう
に、図11のタイミングダイアグラムは、各S−BOX
186−1,..,186−8の適当なスイッチ188
−1、188−2,188−3,188−4,188−
5,188−6,188−7,188−8を閉じること
により、アキュムレ−タの各行が、8サイクルのうちの
一つのサイクルで択一的に選択されることを示してい
る。さらに、このような選択の手順は、8サイクル毎に
繰り返される。このようにして、アキュムレ−タ164
−1−1,..,164−8−8は、ライン130−1
〜140−8に出力された積結果を選択的に累積し、行
列Zの要素を、前述した思惑通りに生成する。
に閉じるために、図3、4の回路100は、クロック生
成器184を備えている。このクロック生成機184
は、複数のクロックライン190(クロックライン19
0−1〜190−8より成る)を介して、各S−BOX
186−1,..,186−8に、8個のパルスのシ−
ケンスを提供する。図11の最初のクロックにおいて
は、ライン190−1(図9参照)のみが、パルスを受
取り、各S−BOX186−1〜186−8の第1のス
イッチ188−1を閉じる。第2のクロックにおいて
は、ライン190−2(図9参照)のみが、パルスを受
取り、各S−BOX186−1〜186−8の第1のス
イッチ188−2第t番目のクロックにおいては、tの
モジュロ8番目のクロックライン190がパルスを受
取、各S−BOX186−1〜186−8のtのモジュ
ロ8番目のスイッチが閉じられ、ライン130−1〜1
30−8上のデータが、アキュムレ−タマトリックス1
64のtのモジュロ8番目の行のアキュムレ−タに送ら
れる。
1〜130−8上に出力された1、9、17、25、3
3、41、49、57番目の積結果が、それぞれ、アキ
ュメレ−タマトリックスの第1の行のアキュムレ−タ1
64−1−1,..,164−1−8に蓄えられる。こ
のようにして、57クロック後には、第1行のアキュム
レ−タ164−1−1,..,164−1−8の値の計
算は完了する。第58クロックでは、残りの行のアキュ
ムレ−タ164−2−1,..,164−2−8164
−3−1,..,1644−8−8での計算は終了して
いないけれども、第1行のアキュムレ−タ164−1−
1,..,164−1−8は、第58クロックで、記憶
している行列Zの要素、すなわち、行列Zの第1行の要
素z11,..,z18を、シリアル出力メモリ182
に出力するシリアル出力メモリ182は、出力ライン2
002に向かって、1クロックで1つ右のレジスタに、
各レジスタに記憶したデータが伝搬するように縦並びに
接続された56個のレジスタ202−1〜202−56
を有している。したがい、シリアル出力メモリに要素を
読み込むことにより、各要素をシルアルに出力ライン2
00より出力することができる。このために、図3、4
の回路100は、D−BOX196−1〜196−8よ
り成るD−BOXアレイ180を備えている。
力について説明する。S−BOX186−1〜186−
8と同様に、各D−BOX196−1〜196−8は、
クロックライン194(ライン194−1〜194−8
を有する)によって、それぞれ制御される8個の独立し
たスイッチを有している。各D−BOXは、アキュムレ
−タマトリックス164の1列のアキュムレ−タの出力
をル−ティングするために設けている。また、各スイッ
チ198−1〜191−8(図1、2参照)は、アキュ
ムレ−タ164の特定の列のアキュムレ−タの出力をル
−ティングするために設けている。58番目のクロック
で、要素が、各D−BOX196−1〜196−8の第
1番目のスイッチ198−1によって、アキュムレ−タ
マトリックス164の第1行の各アキュムレ−タ164
−1−1、..、164−1−8から移動される。この
ために、クロック生成器184は、D−BOX196−
1〜196−8のスイッチ198−1を閉じるパルスを
ライン194−1上に生成する。要素z11は、D−B
OX196−8によって、アキュムレ−タ164−1−
1から、直接、ライン200にル−ティングされる。他
のアキュムレ−タ164−1−2〜164−1−8の7
つの要素は、D−BOX196−2〜196−8によっ
て、z12,..,z18の順に、シリアル出力メモリ18
2の右側の七つのレジスタ202−1〜202−7に読
み込まれる。
ュムレ−タ164−2−1,..,164−2−8の、
行列Zの第2行の要素z21,..,z28の計算が完了す
る。そこで、59番目のクロックで、行列Zの第2行の
要素z21,..,z28は、第2行目のアキュムレ−タ1
64−2−1,..,164−2−8からシルアル出力
メモリの、右側の次の8個のレジスタ202−9〜20
216にシフトされる。このために、クロック生成器1
84は、各D−BOX196−1〜196−8のスイッ
チ198−2を閉じるパルスをクロックライン194−
2上に生成する。第2行目のアキュムレ−タ164−2
−1,..,164−2−8の要素は、このように、シ
ルアル出力メモリに読み込まれる。第2行目のアキュム
レ−タ164−2−1,..,164−2−8より読み
込みは、右側の7つのレジスタ202−1〜202−7
の要素の一つ右側へのシフトを考慮する。すなわち、5
9番目のクロックの立ち下がりで、z12がライン20
0に出力され、要素z13,..,z19,z21,..,z
28は、この順序で、右側のレジスタ202−1〜202
−14を占めるこのような処理は、次の6つのクロック
において、残りの行のアキュムレ−タ164−3−
1,..,164−3−8,164−4−1,..,1
64−8−8について続けられる。そして、65番目の
クロックで、56個のレジスタ202−1〜202−5
6の全ては、行列Zの第2から第8行の要素によって埋
まる。
めに、クロック生成器184は、複数のクロックライン
194(クロックライン194−1〜194−8より成
る)を備えている。クロックライン194−1〜194
−8は、58番目から65番目のクロック中に、択一的
なパルスを受け取る。65クロックの後は、D−BOX
のクロックライン194は、少なくとも56クロック目
まで無効化される。この期間、シリアル出力メモリ18
2は、56個のレジスタ202−1〜202−56に記
憶した要素をシフトアウトする。すなわち、66番目〜
121番目までの全てのクロックで、レジスタ202−
1〜202−56は、1サイクルに1レジスタづつ、要
素を右側にシフトし、最も右側のレジスタ202−1は
要素をライン200に出力する。
算にも適用することができる。たとえば、図3、4にお
いて、最初の行列掛け算を行う2つの行列XとC^が第
1ステ−ジ106への入力が済んだら、第2番目の行列
掛け算を行う第2番目の組X',C^'を回路100に入
力することができる。各掛け算は、連続して同じように
行われる。すなわち、行列XとC^の最後の引数の組が
処理列104−1〜104−8に入力されたら、これに
続いて、行列X'とC^'の最初の引数の組を処理列10
4−1〜104−8に入力することができる。
について行われるのではなく、本実施例でC,C^と名
付けた2つの係数行列は固定されている。これらの行列
の要素は、回路100に適した入力を提供できるように
記憶されている。図12〜14の回路は、このような入
力を提供する係数供給手段を示すための図である。
いる典型的なレジスタ206を示したものである。この
レジスタは、D入力とQ出力212セット214とリセ
ット216の端子を備えた複数のDフリップフロップ2
08を有している。図13は、図3,4の回路100の
レジスタ列110に係数を供給するための配置を示して
いる。図13に示すように、行列Cの各要素について一
つずつ設けた、64のレジスタ206−1,206−
2,206−3..,206−62,206−63,2
06−64がリング状に接続されている。各レジスタ2
06−1,206−2,206−3..,206−6
2,206−63,206−64のD入力は、すぐ右側
に隣接するレジスタのQ出力に、ライン218−2,2
18−3..,218−62,218−63,218−
64に接続されている。さらに、最も右側のレジスタ2
06−64のD入力は、ライン218−1を介して、最
も左側のレジスタのQ出力に接続している。そして、毎
クロック毎に、要素が左周りに1レジスタ回転する。さ
らに、レジスタ206−1のQ出力は、さらにレジスタ
列110の入力ライン110−1に接続している。そし
て、要素がレジスタ206−1を通って回転するに従
い、各要素がレジスタ列110に入力される。このよう
に64クロックで、各要素はレジスタ列110に入力さ
れ、供給回路220は初めの状態に戻る。
素を処理部列104−1〜104−8に供給するために
も、図13の回路を修正した係数供給回路を第1ステ−
ジ106で用いるようにしてもよい。図14に示すよう
に、修正した係数供給回路は、前述したように各々がリ
ング状に接続した8個のレジスタを有している。本実施
例では、これらの回路220−1、220−
2、,..,220−8は、一度のDCT毎に、各処理
部104−1〜104−8に、それぞれ8度入力される
8個の要素を記憶している。各回路の動作は、他の回路
220と同じである。
することのできる、さらに高性能化した行列掛け算回路
を示している。図15が第1ステ−ジ、図16が第2ス
テ−ジ以降を示している。さて、この回路は、2つのキ
−となる相違点を除き、図1、2の回路10と同じであ
る。すなわち、各処理部列232、234、236、2
38の各PE2232−2,232−3,234−3,
236−2,236−3,238−2,238−3にお
いて、加算レジスタは、後に詳述するキャリ−保存加算
レジスタ240−1,240−2,242−1,242
−2,244−1,244−2,246−1,246−
2に置き換えられている。また、最終段のPE2の次、
最後のPE2232−3,234−3,236−3、2
38−3とPE3232−4、234−4の入力ライン
252−1、252−2もしくはセレクタ254−1,
254−2の入力ライン252−3,252−4の間
に、加算レジスタ248−1〜248−4が挿入されて
いる。この2つの変更を除き、回路230の動作は、図
1,2の回路10と同じである。
タ240−1,240−2,242−1,242−2,
244−1,244−2,246−1,246−2と加
算レジスタ248−1〜248−4の加算回路の動作を
詳細に説明する。キャリ−保存加算回路300は、2つ
のキャリ−保存加算ステ−ジ301−1、301−2と
最終加算ステ−ジ301−3を有している。各ステ−ジ
301−1、301−2、301−3は、処理部列の各
PE2中の1つのキャリ−保存加算レジスタの加算回路
に対応する。たとえば、処理部列232では、回路30
1はキャリ−保存加算レジスタ240−1に対応し、ス
テ−ジ302−2はキャリ−保存加算レジスタ240−
2に対応し、ステ−ジ301−3は加算レジスタ248
−1に対応する。なお、図17では、ステ−ジ301−
1、301−2、301−3を互いに直接、接続して示
した。しかし、実際の実施の際には、レジスタが各ステ
−ジ301−1、301−2、301−3の出力のとこ
ろに挿入される。
明する。加算ステ−ジ301−1は、3つの全加算回路
322−1、322−2、322−3を有している。そ
して、図17に示した全てのステ−ジ301−1、30
1−2、301−3は、4ビット値の加算を行う。しか
し、必要に応じて、さらに全加算器を同様につなげてい
けば、任意ビットの加算に適合させることができる。
において、ビット積結果は左に1ビットシフトされPE
1の積結果と加算される。PE1の積結果(Bで示す)
は、ライン302を介して、加算ステ−ジ301−1に
供給される。Bの値は、それぞれライン312−1、3
10−1、308−1、306−1より入力される4ビ
ット(b3b2b1b0で示す)で構成される。PE2
の積結果(B'で示す)は、ライン304−1を介し
て、加算ステ−ジ301−1に与えられる。B'の値
は、それぞれライン320−1、318−1、316−
1、314−1より入力される4ビット(b3'b2'b
1'b0'で示す)で構成される。各全加算回路322−
1、322−2、322−3の第3の入力322−1,
324−1,326−1はグランドである。なお、半加
算器を第1の加算ステ−ジ310−1で用いるようにし
てもよい。
(C)は、それぞれ、5ビット(s4s3s2s1s0
で示す)と3ビット(c2c1c0で示す)である。図
17の第1の加算ステ−ジ301−1は、値Bに対し
て、左にシフトされる。もしくは、左にオフセットを与
えられる。したがい、ライン306−1の入力ビットb
0は、和の最下位桁s0を形成し、同様に、ライン32
0−1の入力ビットb3'は和の最上位ビットs4を形
成する。ライン308−1と314−1のビットb1,
b0'は、全加算回路322−1で加算され、和のビッ
トs1とキャリ−のビットc1が、それぞれ、ライン3
06−2、322−2に出力される。ライン310−1
と316−1のビットb2とb1'は、全加算回路33
4−1で加算され、和のビットs2とキャリ−のビット
c2が、ライン308−2、314−2に、それぞれ出
力される。最後に、ライン312−1と318−1のビ
ットb3、b2'は、全加算回路336−1で加算さ
れ。和のビットs3とキャリ−のビットc3を、ライン
310−2、326上に、それぞれ生成する。このよう
にして、第1の加算ステ−ジでの、2つの値B,B'
の、キャリ−保存加算が終了する。
ば232−3(図15、16参照)のような、第2段目
のPE2の積結果(B''で示す)と、その前のPE2ス
テ−ジでの結果(たとえば、232−2)の加算につい
て説明する。ライン304−2にお出力される値B''
は、和Sとキャリ−Cと加算され、新たな和S'とC'を
生成する。図17において、B''は、それぞれライン3
20−2、318−2、316−2、314−2に表わ
れる4ビット(b3',b2',b1',b0'で表す)よ
り成る。値S'とC'は、それぞれ、s4's3's2's
1's0で表す5ビットと、c3'c2'c1'で表す3ビ
ットより成る。続いて行われるB''の左へのシフトによ
り、ライン306−2の入力s1は、第2の和の最下位
ビットs'0を形成する。また、b3''は、最上位ビッ
トs4'を形成する。ライン308−2、322−2、
314−2のビットs2,c1,b''0は全加算回路3
32−2で加算され、和のビットs'1とキャリ−のビ
ットc'1が、ライン306−3、322−3にそれぞ
れ出力される。また、ライン310−2、324−2、
316−2のビットs3,c2,b1''は全加算回路3
34−2で加算され、和のビットs2'とキャリ−のビ
ットc'2が、ライン308−3、324−3にそれぞ
れ出力される。最後に、ライン312−2、326−
2、318−2のビットs4,c3,b2''は、全加算
回路336−2で加算され、和のビットs3'とキャリ
−のビットc3'が、ライン310−3、316−3上
に生成される。このようにして、第2の加算ステ−ジ3
01−2における、値B''とS,Cで表現される前回の
加算結果との、第1のキャリ−保存加算が完了する。な
お、さらなる値の加算を行うために、加算ステ−ジを追
加してもよい。これは、図15、16の処理部列23
2、234、236、238にPE2ユニットを追加す
ることに対応する。
後のビットの掛け算が終わったら、最後に、和S'とキ
ャリ−C'は互いに加算される。このために、加算レジ
スタ248−1〜248−4(図15、16参照)は、
通常の加算回路を備えている。図17に示すように、通
常加算ステ−ジ301−3は、和S'とキャリ−C'を受
取り、7ビット(c3''、s3''、s2''、s1''、s
0''、s0'、s0)の最終的な和を生成する。下位の3
ビットs0''s0's0は、計算せずとも求まり、そえ
ぞれライン306−3、306−2、306−1に出力
される。ビットc1'とs2'は、ライン322−3、3
08を介して、第3の入力がグランドである全加算回路
322−3に入力され、和のビットs1''とc1''が、
それぞれライン306−4、322−4上に出力する。
ビットc1''は、ビットc2',s3'と共に、ライン3
24−4、324−3、310−3を介して、全加算回
路33−4に入力され、和のビットs2''とキャリ−の
ビットc2''が、ライン308−4、324−4に、そ
れぞれ出力する。最後に、ビットc2''は、ビットc
3'とs4'と共に、ライン324−4、326−3、3
12−3を介して全加算回路336−3に入力され、和
のビットs3''とキャリ−のビットc3''が、ライン3
10−4と326−4に、それぞれ出力される。このよ
うに、最後の加算ステ−ジで、通常の加算レッジスタを
用いて、和S'とキャリ−C'を加算し、最終的な和が求
められる。
に3行列の積を取ることのできる回路およびアルゴリズ
ムを提供することができる。
の構成を示したブロック図である。
の構成を示したブロック図である。
部分の構成を示したブロック図である。
部分の構成を示したブロック図である。
リックスの詳細構成を示すブロック図である。
すタイミングチャ−トである。
ック図である。
すブロック図である。
ブロック図である。
半部分の構成を示したブロック図である。
半部分の構成を示したブロック図である。
たブロック図である。
2 22、24 処理部列 26 レジスタ列 22−2、22−3、24−2、24−3 処理部PE
2 22−1、24−1 処理部PE1
Claims (14)
- 【請求項1】要素xij(i=1...I,j=1...
J)を有する第1の行列Xと要素c^jk(k=1...
K)を有する第2の行列C^との掛け算を行う第1のス
テ−ジであって、 それぞれがシ−ケンシャルに特定のkの値について、中
間行列の(数1)で、 【数1】 定義される要素を出力する、複数の並列に動作する第1
のパイプライン回路を備えた第1のステ−ジと、 前記第1のステ−ジより出力される要素yikを受け取
り、要素yikと、要素cliを有する第3の行列Cとの掛
け算を行う第2のステ−ジであって、 それぞれがシ−ケンシャルに特定のkの値について積c
liyikを出力する、複数の並列に動作する第2のパイプ
ライン回路とを有する第2のステ−ジと、 それぞれが、接続した前記第2のパイプライン回路より
の積cliyikを、特定のkの値について、(数2)で、 【数2】 定義される和を生成するように、選択的に累積する複数
のアキュムレ−タとを有することを特徴とする行列掛け
算回路。 - 【請求項2】請求項1記載の行列掛け算回路であって、 前記第1のステ−ジの各第1のパイプライン回路は、そ
れぞれ第1のシ−ケンスx11,x12,..,x1J,x21,x
22,..,x2J,,..,xIJと、特定のkについての第2のシ
−ケンスc^1k,c^2k,,..,c^JKをI回の繰り返
した第2のシ−ケンスとの掛け算を行うパイプライン回
路であって、かつ、 前記第1のシ−ケンスに含まれる各要素の第1ビットと
前記第2のシ−ケンスの各要素との2つの入力を、1サ
イクル毎に同時に受取、1サイクル毎に前記2入力の積
を出力する1番目の処理部と、 2からM(Mは前記第1のシ−ケンスの各要素のビット
数)番目までの複数の処理部とを有し、 m(2≦m≦M)番目の前記処理部は、毎サイクルに、
前記第1の要素のm番目のビットと、当該第1の要素に
対応する第2のシ−ケンスの要素との2つの入力を受取
り、m−1番目の処理部における和と前記2入力の積と
の和を出力することを特徴とする行列掛け算回路。 - 【請求項3】請求項2記載の行列掛け算回路であって、 前記1番目の処理部は、 前記第2のシ−ケンスの各要素を記憶するレジスタと、 前記第1のシ−ケンスの第1ビットを選択制御入力とし
て受け取り、前記第2のシ−ケンスの要素をデータ入力
として受け取り、前記第1ビットが論理1であるときに
前記第2のシ−ケンスの要素を選択し、前記第1ビット
が論理ゼロである場合に論理ゼロを選択するマルチプレ
クサと、 前記マルチプレクサの出力を記憶する累積手段とを有す
ることを特徴とする行列掛け算回路。 - 【請求項4】請求項2記載の行列掛け算回路であって、 前記m番目の処理部は、 前記第2のシ−ケンスの要素を記憶するレジスタと、 前記第1のシ−ケンスの第mビットを選択制御入力とし
て受け取り、m−1番目の処理部の前記レジスタよりの
前記第2のシ−ケンスの要素をデータ入力として受け取
り、前記第1ビットが論理1であるときに前記第2のシ
−ケンスの要素を選択し、前記第1ビットが論理ゼロで
ある場合に論理ゼロを選択するマルチプレクサと、 累積手段とを有し、 当該累積手段は、m−1ビット上位にシフトした前記マ
ルチプレクサの出力とm−1番目の処理部の累積手段に
記憶された値との和を計算し、記憶することを特徴とす
る行列掛け算回路。 - 【請求項5】請求項2記載の行列掛け算回路であって、 前記第1のステ−ジは、さらに、 連続するサイクルにおいて、前記第1のシ−ケンスを受
け取り、当該シ−ケンスの要素の第mビットを、第1ス
テ−ジの各パイプライン回路のm番目の処理部に出力す
る、縦並びに接続された複数のレジスタを有することを
特徴とする行列掛け算回路。 - 【請求項6】請求項1記載の行列掛け算回路であって、 前記第2のス−テ−ジの各パイプライン回路は、 それぞれ第1のシ−ケンスc11,c21,..,cL1,c
12,c22,..,cL2,,..,cLIと、特定のkにつ
いての第2のシ−ケンスy1K,y2K,,..,yIKをL
回の繰り返した第2のシ−ケンスとの掛け算を行うパイ
プライン回路であって、かつ、 前記第1のシ−ケンスに含まれる各要素の第1ビットと
前記第2のシ−ケンスの各要素との2つの入力を、1サ
イクル毎に同時に受取、1サイクル毎に前記2入力の積
を出力する1番目の処理部と、 2からP(Mは前記第1のシ−ケンスの各要素のビット
数)番目までの複数の処理部とを有し、 p(2≦p≦M)番目の前記処理部は、毎サイクルに、
前記第1の要素のp番目のビットと、当該第1の要素に
対応する第2のシ−ケンスの要素との2つの入力を受取
り、p−1番目の処理部における和と前記2入力の積と
の和を出力することを特徴とする行列掛け算回路。 - 【請求項7】請求項6記載の行列掛け算回路であって、 前記第2のステ−ジの前記1番目の処理部は、 前記第2のシ−ケンスの各要素を記憶するレジスタと、 前記第1のシ−ケンスの第1ビットを選択制御入力とし
て受け取り、前記第2のシ−ケンスの要素をデータ入力
として受け取り、前記第1ビットが論理1であるときに
前記第2のシ−ケンスの要素を選択し、前記第1ビット
が論理ゼロである場合に論理ゼロを選択するマルチプレ
クサと、 前記マルチプレクサの出力を記憶する累積手段とを有す
ることを特徴とする行列掛け算回路。 - 【請求項8】請求項6記載の行列掛け算回路であって、 前記p番目の処理部は、 前記第2のシ−ケンスの要素を記憶するレジスタと、 前記第1のシ−ケンスの第pビットを選択制御入力とし
て受け取り、p−1番目の処理部の前記レジスタよりの
前記第2のシ−ケンスの要素をデータ入力として受け取
り、前記第1ビットが論理1であるときに前記第2のシ
−ケンスの要素を選択し、前記第1ビットが論理ゼロで
ある場合に論理ゼロを選択するマルチプレクサと、 累積手段とを有し、 当該累積手段は、p−1ビット上位にシフトした前記マ
ルチプレクサの出力とp−1番目の処理部の累積手段に
記憶された値との和を計算し、記憶することを特徴とす
る行列掛け算回路。 - 【請求項9】請求項6記載の行列掛け算回路であって、 前記第2のステ−ジは、さらに、 連続するサイクルにおいて、前記第1のシ−ケンスを受
け取り、当該シ−ケンスの要素の第pビットを、第2ス
テ−ジの各パイプライン回路のp番目の処理部に出力す
る、縦並びに接続された複数のレジスタを有することを
特徴とする行列掛け算回路。 - 【請求項10】請求項1記載の行列掛け算回路であっ
て、 前記行列Cは、抽出コサイン係数(sampled c
osine coefficients)より成り、前
記行列Cは抽出コサイン係数行列Cの転置行列であっ
て、前記行列Xは変換対象の行列であることを特徴とす
る行列掛け算回路。 - 【請求項11】請求項4記載の行列掛け算回路であっ
て、 前記累積手段は、キャリ−保存加算回路より成ることを
特徴とする行列掛け算回路。 - 【請求項12】請求項9記載の行列掛け算回路であっ
て、 前記累積手段は、キャリ−保存加算回路より成ることを
特徴とする行列掛け算回路。 - 【請求項13】請求項1記載の行列掛け算回路であっ
て、 前記各アキュムレ−タは、 前記各パイプライン回路に接続し、パイプライン回路よ
りの積を、択一的に振り分ける選択手段と、 前記zlkを要素とする行列Zの各行につき一つ設けられ
た複数の、前記選択手段に接続した累積部とを有し、 前記選択手段は、前記複数のアキュムレ−タのうちのt
のモジュロL番目の累積部を、接続したパイプライン回
路からのt(tは、接続したパイプライン回路より選択
手段に出力される積の数)番目の積を受け取れるように
選択し、当該積を振り分けることを特徴とする行列掛け
算回路。 - 【請求項14】3つの行列の掛け算を行う方法であっ
て、 第1の掛け算回路ステ−ジで、要素xij(i=1...
I,j=1...J)を有する第1の行列Xと要素c^
jk(k=1...K)を有する第2の行列C^との掛け
算を行う第1のステップであって、 複数の第1のパイプライン回路において、各第1のパイ
プライン回路で同時に特定のkの値について、中間行列
の(数3)で、 【数3】 定義される要素を、シ−ケンシャルに生成するステップ
を含む第1のステップと、 第2の掛け算回路ステ−ジで、前記第1のステ−ジより
出力される要素yikを受け取り、要素yikと、要素cli
を有する第3の行列Cとの掛け算を行う第2のステップ
であって、 複数の第2のパイプライン回路において、各第2のパイ
プライン回路で、同時に、特定のkの値について積cli
yikをシ−ケンシャルに生成するステップを含む第2の
ステップと、 パイプラインに接続してアキュムレ−タで、接続した前
記第2のパイプライン回路よりの積cliyikを、特定の
kの値について、(数4)で、 【数4】 定義される和を生成するように、選択的に累積する第3
のステップとを有することを特徴とする3行列の掛け算
方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/836,075 US5204830A (en) | 1992-02-13 | 1992-02-13 | Fast pipelined matrix multiplier |
| US07/836,075 | 1992-02-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07191966A true JPH07191966A (ja) | 1995-07-28 |
| JP2916056B2 JP2916056B2 (ja) | 1999-07-05 |
Family
ID=25271175
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4330734A Expired - Lifetime JP2916056B2 (ja) | 1992-02-13 | 1992-12-10 | 行列掛け算回路 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5204830A (ja) |
| JP (1) | JP2916056B2 (ja) |
| DE (1) | DE4217011C2 (ja) |
| NL (1) | NL9200899A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009181293A (ja) * | 2008-01-30 | 2009-08-13 | Yamaha Corp | 行列演算コプロセッサ |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6336180B1 (en) | 1997-04-30 | 2002-01-01 | Canon Kabushiki Kaisha | Method, apparatus and system for managing virtual memory with virtual-physical mapping |
| JP2647327B2 (ja) * | 1992-04-06 | 1997-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 大規模並列コンピューティング・システム装置 |
| US5483475A (en) * | 1993-09-15 | 1996-01-09 | Industrial Technology Research Institute | Fast pipelined 2-D discrete cosine transform architecture |
| US5481487A (en) * | 1994-01-28 | 1996-01-02 | Industrial Technology Research Institute | Transpose memory for DCT/IDCT circuit |
| US5867414A (en) * | 1994-08-17 | 1999-02-02 | Industrial Technology Research Institute | Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations |
| JPH0981541A (ja) * | 1995-09-12 | 1997-03-28 | Matsushita Electric Ind Co Ltd | 累算器 |
| AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
| US6414687B1 (en) | 1997-04-30 | 2002-07-02 | Canon Kabushiki Kaisha | Register setting-micro programming system |
| US6289138B1 (en) | 1997-04-30 | 2001-09-11 | Canon Kabushiki Kaisha | General image processor |
| US6507898B1 (en) | 1997-04-30 | 2003-01-14 | Canon Kabushiki Kaisha | Reconfigurable data cache controller |
| US6061749A (en) * | 1997-04-30 | 2000-05-09 | Canon Kabushiki Kaisha | Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword |
| AUPO647997A0 (en) * | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Memory controller architecture |
| US6707463B1 (en) | 1997-04-30 | 2004-03-16 | Canon Kabushiki Kaisha | Data normalization technique |
| US6032168A (en) * | 1997-08-15 | 2000-02-29 | Motorola, Inc. | Computer system to perform a filter operation using a logarithm and inverse-logarithm converter and methods thereof |
| US6055556A (en) * | 1997-08-15 | 2000-04-25 | Motorola, Inc. | Apparatus and method for matrix multiplication |
| JP6003744B2 (ja) * | 2013-03-22 | 2016-10-05 | 富士通株式会社 | 演算処理装置及び演算処理方法 |
| US9384168B2 (en) | 2013-06-11 | 2016-07-05 | Analog Devices Global | Vector matrix product accelerator for microprocessor integration |
| CN109871236B (zh) * | 2017-12-01 | 2025-05-06 | 超威半导体公司 | 具有低功率并行矩阵乘法流水线的流处理器 |
| US10908879B2 (en) | 2018-03-02 | 2021-02-02 | Neuchips Corporation | Fast vector multiplication and accumulation circuit |
| US11783163B2 (en) * | 2020-06-15 | 2023-10-10 | Arm Limited | Hardware accelerator for IM2COL operation |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4150434A (en) * | 1976-05-08 | 1979-04-17 | Tokyo Shibaura Electric Co., Ltd. | Matrix arithmetic apparatus |
| US4553220A (en) * | 1983-05-19 | 1985-11-12 | Gti Corporation | Matrix multiplier with normalized output |
| US4601006A (en) * | 1983-10-06 | 1986-07-15 | Research Corporation | Architecture for two dimensional fast fourier transform |
| US4787057A (en) * | 1986-06-04 | 1988-11-22 | General Electric Company | Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements |
| DE3886625D1 (de) * | 1987-09-01 | 1994-02-10 | Siemens Ag | Matrix-Matrix-Multiplizierer. |
| US4884232A (en) * | 1987-12-14 | 1989-11-28 | General Dynamics Corp., Pomona Div. | Parallel processing circuits for high speed calculation of the dot product of large dimensional vectors |
| JP2690932B2 (ja) * | 1988-03-18 | 1997-12-17 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム |
| US5038312A (en) * | 1988-11-14 | 1991-08-06 | Nec Corporation | Data processing system capable of performing vector/matrix processing and arithmetic processing unit incorporated therein |
| US4937776A (en) * | 1988-12-13 | 1990-06-26 | Nippon Sheet Glass Co., Ltd. | Matrix-vector multiplication apparatus |
-
1992
- 1992-02-13 US US07/836,075 patent/US5204830A/en not_active Expired - Lifetime
- 1992-05-21 NL NL9200899A patent/NL9200899A/nl not_active Application Discontinuation
- 1992-05-22 DE DE4217011A patent/DE4217011C2/de not_active Expired - Fee Related
- 1992-12-10 JP JP4330734A patent/JP2916056B2/ja not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009181293A (ja) * | 2008-01-30 | 2009-08-13 | Yamaha Corp | 行列演算コプロセッサ |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2916056B2 (ja) | 1999-07-05 |
| NL9200899A (nl) | 1993-09-01 |
| US5204830A (en) | 1993-04-20 |
| DE4217011A1 (de) | 1993-08-19 |
| DE4217011C2 (de) | 1997-07-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2916056B2 (ja) | 行列掛け算回路 | |
| US5500811A (en) | Finite impulse response filter | |
| JP2630802B2 (ja) | 変換符号化を用いたテレビジョン転送システム | |
| US5483475A (en) | Fast pipelined 2-D discrete cosine transform architecture | |
| JPH0526229B2 (ja) | ||
| JP2710928B2 (ja) | 余弦変換数列の高速計算回路 | |
| TW200414023A (en) | Method and system for performing a calculation operation and a device | |
| JPS62269519A (ja) | ディスクリ−トコサイン変換回路 | |
| US5867414A (en) | Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations | |
| JPH08320857A (ja) | フーリエ変換演算装置および方法 | |
| US5438532A (en) | Digital filter for use in synthesizing filter or a separation filter | |
| US6658441B1 (en) | Apparatus and method for recursive parallel and pipelined fast fourier transform | |
| JPH03263276A (ja) | デイジタル信号フイルタ回路 | |
| US4760540A (en) | Adaptive interference cancelling system and method | |
| US4972361A (en) | Folded linear systolic array | |
| RU2015550C1 (ru) | Арифметическое устройство для выполнения дискретного преобразования фурье | |
| EP1076296A2 (en) | Data storage for fast fourier transforms | |
| JPH06149861A (ja) | Dct及び逆dct演算装置並びにその演算方法 | |
| CN118312133A (zh) | 基于Karatsuba的超高阶二进制多项式乘法器 | |
| CN1972450A (zh) | 具有任意转换比率的数字视频格式下转换设备及其方法 | |
| Johnsson | Computational arrays for band matrix equations | |
| US9098435B1 (en) | Finite impulse response filter with parallel input | |
| KR100235537B1 (ko) | 디지털 필터의 가변탭 구조 및 그의 곱셈회로 | |
| SU1619254A1 (ru) | Скал рный умножитель векторов | |
| Patil et al. | Low Power High Speed VLSI Architecture for 1-D Discrete Wavelet Transform |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990316 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| 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 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080416 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120416 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 14 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 14 |