JP2931097B2 - 並列処理アレイの動作をシミュレートするデジタルプロセッサ - Google Patents

並列処理アレイの動作をシミュレートするデジタルプロセッサ

Info

Publication number
JP2931097B2
JP2931097B2 JP3513674A JP51367491A JP2931097B2 JP 2931097 B2 JP2931097 B2 JP 2931097B2 JP 3513674 A JP3513674 A JP 3513674A JP 51367491 A JP51367491 A JP 51367491A JP 2931097 B2 JP2931097 B2 JP 2931097B2
Authority
JP
Japan
Prior art keywords
array
processor
data
address
processing
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 - Lifetime
Application number
JP3513674A
Other languages
English (en)
Other versions
JPH06506073A (ja
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.)
IGIRISU
Original Assignee
IGIRISU
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 IGIRISU filed Critical IGIRISU
Publication of JPH06506073A publication Critical patent/JPH06506073A/ja
Application granted granted Critical
Publication of JP2931097B2 publication Critical patent/JP2931097B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays

Description

【発明の詳細な説明】 本発明は、シストリック(systolic)アレイのような
並列処理アレイの動作をシミュレートするデジタルプロ
セッサに係わる。
並列処理アレイの分野は、通常のデジタルコンピュー
タにおける“フォンノイマンボトルネック”という周知
の問題を克服するべく開発された。この問題は通常のコ
ンピュータの直列性に起因し、即ち通常のコンピュータ
ではプログラムステップもしくは命令は、一度に一つず
つが連続して実行される。このことは、コンピュータの
動作速度が、該コンピュータの中央処理装置が個々の命
令を実行する速度に制約されることを意味する。
通常のコンピュータの動作速度の問題を克服するため
に、シストリックアレイアーキテクチャに基礎を置くパ
ラレルプロセッサが開発された。このようなプロセッサ
の一つが、米国特許第4,727,503号に対応する英国特許
第2,151,378号に開示されている。このパラレルプロセ
ッサは、内部セル及び境界セルの三角形のアレイから成
る。境界セルはアレイの斜辺(the array diagonal)を
構成し、遅延ラッチを介して相互接続されている。内部
セルは上記斜辺の上方に位置する。アレイは、セル行及
びセル列を規定する隣接セル相互接続ラインを含む。セ
ルは共通のシステムクロックによって周期的に能動化さ
れる。信号フローはセル行に沿い、かつセル列を下り、
その速度は1クロックサイクル当たり1セルである。各
セルは各クロックサイクル毎に、アレイに入力された、
及び/または隣接セルから受け取ったデータを用いて計
算機能を実行する。計算結果は隣接セルへと出力され、
次の計算のための入力とされる。個々のセルが行なう計
算は比較的単純であるが、シストリックアレイ全体では
はるかに複雑な計算が、場合によっては高速で再帰的な
行なわれる。実際のところ、アレイは複雑な計算を一連
のはるかに小規模なカスケード式計算に細分し、これら
の計算はアレイの処理セルに割り当てられる。外部制御
コンピュータは不要である。セルはクロックによって能
動化され、いずれのセルも各クロックサイクル毎に動作
する。最大クロック周波数もしくは処理速度は、個々の
セルのうちで最も動作の遅いものがその比較的単純な計
算機能を実行し得る速度によってしか制限されない。こ
のようにして高度の並列処理が実現し、この処理は高速
処理セルが用いられた場合は高速で行なわれる。通常の
コンピュータの“ボトルネック”は回避される。
従来技術によるシストリックアレイの欠点は、問題が
きわめて単純でないかぎり多数のセルが必要となるとい
う点である。後段に詳述するように、n次元の計算を行
なう従来の三角アレイには約n2/2個の内部セルが必要で
ある。従って、必要な内部セルの個数は計算の次元数の
2乗として増加する。境界セルの個数は次元数と共に直
線的にしか増加しない。シストリック三角アレイの重要
な一用途は、レーダアンテナのフェーズドアレーのよう
なセンサ列からの信号の処理に係わる。典型的なレーダ
フェーズドアレーは1,000個以上のアンテナの領域内に
設置され、アンテナ信号を処理するシストリックアレイ
には約100万個の処理セルが必要となる。各セルは、隣
接セル同士の交信を可能にするトランスピュータの処理
機能及び接続能力を必要とする。シリコンチップまたは
ウェハの個々のエリアを“セル”が構成する専用集積回
路を用いることも可能である。トランスピュータの価格
は1個当たり100ポンド以上するので、シストリックア
レイのコストはレーダフェーズドアレー用としては禁止
的に高くなる。このようなコストは、高次元を特徴とす
る他の多くの信号処理用途にとっても禁止的に高い。
通常のコンピュータの欠点を克服する程度の並列性を
有するが、従来のシストリッカアレイほど多くの処理セ
ルは必要としないデジタル処理装置が求められている。
ヨーロッパ特許出願公開第0 021 404号から、論理演
算シミュレーション用のコンピュータシステムに特別設
計のプロセッサのアレイを用いることが公知である。ア
レイを構成する複数のプロセッサは並列に動作する。し
かし、従来技術によるこのパラレルアレイは、該アレイ
におけるデータフローがコンピュータによって操作され
る多方向スイッチを必要とするという点で不利である。
プロセッサの個数がiである場合に各プロセッサが、他
のプロセッサそれぞれにコンピュータ制御下に接続され
得るためには、多方向スイッチは(i×i)方向スイッ
チとなる。これは、(a)制御コンピュータが存在せ
ず、(b)アレイのデータフロー経路が一定であり、
(c)データフローが隣接素子同士の間に生じ、(d)
外部制御命令が存在せず、かつ(e)通常の汎用プロセ
ッサ(例えばトランスピュータ)が全く直線的な算術機
能を実行するようにプログラムして用いられ得るシスト
リックアレイアーキテクチャとは相容れない。実際、シ
ストリックアレイアーキテクチャの主の目的は制御コン
ピュータの必要性を回避することに有る。
Tanimoto等の米国特許第4,622,632号は、ピラミッド
形データ構造において動作するプロセッサのアレイを用
いるパターン照合装置に係わる。この例でプロセッサ
は、“コントローラ”と呼称されるものの制御下に動作
し、このコントローラとは制御コンピュータのことかと
思われる。コントローラは個々のプロセッサに同期的に
命令を与える。命令は、データ記憶アドレスを指定する
と共に、個々のプロセッサがその様々な処理機能のうち
のいずれを実行するのかを指示する。各プロセッサは読
み出し−変更−書き込みサイクルを実行し、このサイク
ルでメモリモジュール内のデータは、そこから読み出さ
れたものと同じアドレスに再び書き込まれる。上述のヨ
ーロッパ特許出願公開第0 021 404号と同様にこの例
も、(a)制御コンピュータが存在せず、(b)アレイ
のデータフロー経路が一定であり、(c)データフロー
が隣接素子同士の間に生じ、かつ(d)外部制御命令が
存在しないシストリックアレイアーキテクチャとは相容
れない。
本発明は、シストリックアレイのような並列処理アレ
イの動作をシミュレートするのに適したデジタルプロセ
ッサを提供することを目的とする。
本発明は、並列処理アレイの動作をシミュレートする
デジタルデータプロセッサを提供し、このプロセッサは
データ記憶手段と接続されたデジタル処理装置のアセン
ブリを含み、 (a) 各処理装置がそれぞれの、記憶手段データアド
レスのセットのリストを実行するようにプログラムされ
ており、 (b) 各アドレスセットは異なる入力データアドレス
及び出力データアドレスを含み、このようなアドレスセ
ットはシミュレートされる個々のアレイセルのデータ入
出力機能にそれぞれ対応し、 (c) アドレスセットのリストのそれぞれがシミュレ
ートされるアレイのセルの個々のサブアレイに対応し、
且つリストのそれぞれが先行のアドレスセットが、後続
のアドレスセットの出力データアドレスとなるような入
力データアドレスを有する複数対の連続するアドレスセ
ットを含み、シミュレートされるセルの機能が、シミュ
レートされるアレイ内のデータフローに対応する順序と
は逆の順序で実行されるように、各リストが構成され、 (d) 各処理装置はそれぞれのリストの最初のアドレ
スセットをデータ記憶手段からの入力データの読み出し
と前記手段への、計算機能に従って発生される出力デー
タの書き込みとに用い、後続アドレスセットをリストが
完了するまで同様に用い、その後このような手順を周期
的に繰り返すようにプログラムされている ことを特徴とする。
本発明は、シミュレートする(シストリックアレイな
どの)従来のアレイに比較して少数の処理装置しか必要
としないという点で有利である。処理装置の減少は1リ
スト当たりのアドレスセット数に比例する。各処理装置
には実際上、シミュレートされるアレイセルの幾つか、
もしくはそれらのセルのサブアレイの機能が割り当てら
れており、各処理装置は前記幾つかのセルの機能を連続
的に、かつ繰り返して実行するようにプログラムされて
いる。従って、シミュレートされるアレイの動作が再現
されるが、その速度は低下する。しかし、或る程度の並
列性は保たれる。なぜなら全体の計算が個別の処理装置
のアセンブリに分配されるからである。この分配によっ
て、通常のコンピュータに優る利点である並列性が維持
される。本発明は“セミパラレルプロセッサ”と言うこ
ともできる。
本発明は、各処理装置が4個以下の他の処理装置と交
信するように構成し得る。その場合本発明は、各処理装
置対の処理装置同士の間に接続されたレジスタデバイス
及びメモリを含む記憶手段を具備し得る。本発明は、ア
ドレス指定競合を解消するべく構成された記憶手段を具
備し得る。しかし、好ましくはアドレスセットリスト
が、各レジスタデバイス及びメモリが一度に1個の処理
装置によってしかアドレスされないように構成される。
幾つかの処理装置は、各レジスタデバイスを介して2個
の他の処理装置と交信するように構成し得る。その場
合、アドレスセットリストはレジスタデバイスがメモリ
ほど頻繁にアドレスされないように構成される。
各処理装置を、当該装置のリストの各アドレスセット
にそれぞれ関連する係数を記憶及び更新するように構成
することも可能である。
本発明は、入力データ要素の並列直列変換を行なうよ
うに構成された入力手段を具備した処理装置を有し得
る。それによって本発明のプロセッサは、シミュレート
するシストリックアレイへの入力と同時の入力を行なう
ことができる。
本発明が更に十分理解されるように、本発明の非限定
的実施例を、添付図面を参照しつつ以下に説明する。添
付図面の 第1図〜第3図は従来技術によるシストリックアレイの
構造及び動作モードの説明図であり、 第4図は第1図のアレイの一部をシミュレートするべく
構成された、8個の処理装置を有する本発明のプロセッ
サのブロック線図であり、 第5図は第1図のアレイ上にマップされた第4図のプロ
セッサの動作モードを示す説明図であり、 第6図は第4図のプロセッサが有する処理装置入力の読
み出し及び書き込み機能の説明図であり、 第7図は第4図のプロセッサの個々の処理装置に関連す
るメモリ及びプログラミング構成を示す説明図であり、 第8図は第4図のプロセッサにおけるメモリアドレス指
定の概略的説明図であり、 第9図は処理装置のための入出力ポートのブロック線図
であり、 第10図及び第11図は本発明の、奇数個の処理装置を有す
る変形列の構造及び動作モードの説明図であり、 第12図は本発明の、4個の処理装置を有する更に別の例
の動作モードの説明図である。
第1図に、従来技術による三角形のシストリックアレ
イ10を概略的に示す。アレイ10は、英国特許公告第2,15
1,378号(米国特許第4,727,503号)に開示されているよ
うなアレイである。このアレイは、正方形12によって示
した内部セルの15×15斜辺上方サブアレイを含む。円で
示した15個の境界セル14の直線的な連なりが、三角アレ
イの斜辺を構成する。隣接し合う境界セル14は、点16に
よって示した一サイクル遅延セルもしくはラッチを介し
て相互接続されている。最下方に位置する内部セル12及
び境界セル14に乗算器18が接続されている。セル12、1
4、16及び18はいずれもシステムクロック(図示せず)
によって能動化され、セル12、14及び16は各クロックサ
イクル毎に所定の計算を実行する。アレイ10への入力
は、矢印20によって示したように上方から行なわれる。
境界セル14からの水平方向出力は、セル間矢印22によっ
て示したようにアレイ行沿いに送られる。内部セル12か
らの出力は垂直方向のセル間矢印24によって示したよう
に、アレイ列を下るように送られる。境界セル14は、ラ
ッチ16を介してアレイ斜辺沿いに相互接続された26及び
28などの斜辺入力及び斜辺出力を有する。
第2図に、内部セル12及び境界セル14の処理機能をよ
り詳細に示す。各クロックサイクル毎に、各境界セル14
は上方から入力値xinを受け取る。セル14はxinと共に、
記憶した係数rを用いて、 r′=(r2+xin 21/2 (1) によりコサイン回転パラメータc及びサイン回転パラメ
ータs、並びにrの更新値を計算する。xin=0であれ
ばc=1及びs=0となり、xin=0でなければ c=r/r′及びs=xin/r′ (2) かつ rの更新値=r′ (3) となる。パラメータc及びsは、右側に隣接する内部セ
ル12へと水平方向に出力される。
各境界セル14はまた、左上方の斜辺入力δinにパラメ
ータcを乗じて右下方の斜辺出力δoutとする。即ち δout=cδin (4) となる。その結果、アレイ斜辺沿いにラメータcの累乗
が行なわれる。
各クロックサイクル毎に、各内部セル12は左方からの
パラメータc及びs並びに上方からのxinを入力して受
け取る。セル12は、 xout=−sr+cxin (5) rの更新値=cr+sxin (6) によってxoutを計算し、かつ記憶した係数rを更新す
る。
第3図に、アレイ10へのデータ入力を概略的に示す
が、図中垂直方向の寸法は説明上便宜的に縮小してあ
る。第3図には、アレイ10への入力の過程における第一
のベクトルx1と第一の要素y1とを示す。ベクトル
は、15個の要素x11〜x1,15を有し、データマトリク
の先頭行である。列ベクトルは最右方のアレイ列
に入力される。ベクトルは要素y1、y2、……を有し、
n番目の要素ynはデータマトリクスのn番目の行xni
〜xn,15の拡張部として現われる。図示のように、y1
を拡張する。
第一の入力ベクトル の第一の要素x11は、最上行
の(左端に位置する)境界セル14に入力される。
連続する要素x12、x13等は最上行の連続する内部セル12
に時間的スキューと共に入力される。時間的スキューは
シストリックアレイの分野で良く知られている。図示例
ではスキューは、同様ベクトルの要素の、隣接し合う最
上行セルへの入力の間に生じる1クロックサイクルの遅
延である。スキューは右方へ向かって直線的に増大し、
従ってn番目のベクトル のi番目の要素xni1の、ア
レイ10のi番目の列への入力は1番目の列へのxniの入
力より(i−1)クロックサイクルだけ遅延する。
最上方の境界セル14に入力されたx11は、第一のベク
トル を先頭要素がゼロの回転ベクトルに変換するた
めに回転パラメータc及びsの計算に用いられる。x11
の最上境界セル14への入力に続くクロックサイクルにお
いて、前記セル14と同じ行に有り、該セル14に隣接する
内部セル12にx12が、x11から計算されたc及びsの入力
と同期的に入力される。1クロックサイクル後、x11
ら得られたパラメータc及びsは最上行の左から3番目
のセルに到達し、x13についての演算に用いられる。こ
のように、x11から計算されたc及びsは連続するクロ
ックサイクルにおいて、要素x12〜x1,15及y1について
の演算に用いられる。それによって、x11を排除された
の回転バージョンが得られ、このバージョンは2番
目のプロセッサ行へと送られる。2番目の行でも同様の
手順で動作が起こる。即ちx12の回転バージョンがx13
1,15及びy1の回転バージョンについての演算のための
c値及びs値の計算に用いられる。このような手順での
動作は、ベクトルxの要素が総て排除されるまで順次下
方のプロセッサ行において続行される。
データマトリクスの2番目以降の行を表わす後続デ
ータベクトル 等も、最上方のアレイ行への入
力によって と同様に処理される。通常、n番目のデ
ータベクトル のi番目の要素xniは、(n+i+
1)回目のクロックサイクルにおいてi番目のアレイ列
に入力される。同様に、列ベクトルのn番目の要素yn
は各行において、n番目のデータベクトル の付加的
な要素であるかのように回転される。ynの、累積的に回
転された各バージョンは乗算器セル18へと送られる。セ
ル18において上記バージョンに、 に由来する回転パ
ラメータcの、境界セル14が構成するアレイ斜辺に沿っ
て計算された累乗値が乗じられる。乗算器セル18の出力
は、 によって得られる最小二乗残差enであり、上記式中 の互換(transpose)であり、 は二乗値e1〜enの和を最小にするべく
総てにわたって計算された重みベクトルである。
より一般的な数学用語で言えば、アレイ10は従来技術
で説明されているようなデータマトリクスのQR分解を
行なう。即ち、回転アルゴリズムによってについての
演算が行なわれて、 となるようなマトリクスが生成される。上記式中
右上方の三角マトリクスである。のマトリクス要素r
は最右列以外の全アレイ列の個々の内部セル12及び境界
セル14に記憶され、各クロックサイクル毎に計算しなお
される。計算が終了すると要素rを、その記憶場所から
抽出し、重みベクトルの明示的計算に用いることができ
る。
第1図〜第3図には、特にQR分解を行なうように構成
された典型的な従来のシストリックアレイが例示してあ
る。アレイ10は、シストリックアレイの典型的特徴であ
る次のような特徴を有する。
(a) 隣接セル同士の相互接続によって行及び列が構
成されている。
(b) 多くのセル(即ち内部セル)が同様の信号処理
機能を有する。
(c) 個々のセルがその処理機能を各システムクロッ
クサイクル毎に実行する。
(d) 信号フローが通常アレイの列を下り、かつ行に
沿う。
シストリックアレイには、特に内部セル12のようなセ
ルが多数必要であるという大きな欠点が有る。データマ
トリクスについてのQR分解、及びこれに関連する、ベ
クトルに関する残差抽出を行なうために、アレイ10は
15個の境界セル14の直線的な連なりと、120個の内部セ
ル12の三角形のサブアレイとを用いる。内部セル12は15
×15サブアレイを構成し、アレイ10は全体として16×16
アレイである。これは、データマトリクスの15次元性
とベクトルの各要素の1次元性とに由来する。通常、
シストリックアレイに必要なセルの個数は実行されるべ
き計算の次元数の2乗として増加する。n次元のデータ
マトリクスに適したアレイ10の場合、n(n+1)/2
個の内部セル12が必要となろう。各セルは浮動小数点演
算能力を有するマイクロプロセッサ程度の複雑さを有
し、4個以下の隣接装置と交信するトランスピュータの
能力を必要とする。nが約100以上である場合の計算の
ためには、セルの個数は約104個以上となる。従って、
そのようなアレイのコスト及び嵩は多くの用途にとって
許容不能に大きくなる。
第4図に、本発明のプロセッサ40を示す。プロセッサ
40は、2ポートメモリM1〜M8とそれぞれ関連する8個の
処理装置P1〜P8を含む。装置P1は2ポートメモリM0とも
関連する。装置P1〜P8はデコーダD1〜D8及び入出力ポー
トI/O1〜I/O8とそれぞれ接続されている。入出力ポート
I/O1〜I/O8は図面があまり複雑にならないように簡略化
して図示してあるが、これらについては後段に詳述す
る。各ポートI/O1〜I/O8は、4個以下のデジタル語を同
時に並列に受け入れ、かつそれらの語を対応する処理装
置P1〜P8に直列に転送するように構成されている。これ
らはまた直列語出力を発生する。
i番目の処理装置Pi(i=1〜8)はデータバスBi
びメモリアドレスバスAiのそれぞれと関係付けられてい
る。i番目のアドレスバスAiは処理装置PiをメモリMi
びMi-1と接続する。入出力ポートI/O1〜I/O8は各々外部
回路網との間に複雑な読み出し書き込み及びデータ入出
力接続(図示せず)を有する。これらについては後段に
詳述する。第4図において、上記接続はバス411〜418
よってそれぞれ概略的に示してある。i番目のデータバ
スBiは処理装置PiをメモリMi及びMi-1、ポートI/Oi、並
びにその全体に参照符号42を付して示した一群の語レジ
スタと接続する。レジスタ群42は、それぞれレジスタR
11〜R34のうちの4個のレジスタから成る三つのセクシ
ョン421〜423を含み、i番目のセクション42i(i=1
〜3)はレジスタRi1〜Ri4から成る。レジスタ群42は、
1個のレジスタR41から成る4番目のセクション424も含
む。図示した各レジスタRijの一重または二重矢印は当
該レジスタの入力側(左側または右側)と、記憶される
デジタル語の個数とを示している。即ち、一重矢印は記
憶される語が1個であることに対応し、二重矢印は2個
であることに対応する。各レジスタは先入れ先出し方式
(FIFO)デバイスである。レジスタR11、R21、R31及びR
41は、左側から入力を受け取り、かつ右側へ出力する一
語デバイスである。図面があまり複雑にならないよう
に、レジスタの入力及び出力には参照符号を付していな
い。レジスタR12、R22及びR32も一語デバイスである
が、これらは右側から入力され、かつ左側へ出力する。
レジスタR13、R14、R23、R24、R33及びR34は、左側から
入力され、かつ右側へ出力する二語デバイスである。
i番目のレジスタ群セクション42i(i=1〜4)は
その左側においてデータバスB9-iと接続されており、各
レジスタはそれぞれのバス分岐接続を有する。i番目の
セクション42i(i=1〜3)の上方の3個のレジスタ
(例えばR32〜R34)はその右側においてデータバスBi+1
(例えばB4)と接続されている。しかし、i番目のセク
ション42i(i=1〜4)の最下方に位置するレジスタR
i1はデータバスBiと接続されている。
処理装置P1〜P8は、ポートI/O1〜I/O8、関連メモリM0
−M1〜M7−M8、及びレジスタR11、R12〜R21等と接続さ
れた読み出し書き込み出力ラインR/W1〜R/W8をそれぞれ
有する。ラインR/W1等はいずれも、図中“/2"によって
示したように2ビットの幅を有する。装置P1〜P8はまた
そのデコーダD1〜D8と、図中“/3"によって3ビット幅
であることを示したチップアドレスラインC1〜C8によっ
て接続されている。
デコーダD1〜D8は各々、例えばD2ライン44のような一
ビット出力ラインを7本ずつ有し、これらのラインはメ
モリM1、入出力ポートI/O1及びレジスタR11等のデバイ
スにそれぞれ接続されている。D5のライン46など、幾本
かのデコーダラインは余分である。これらのラインは、
×印によって示したように未接続のまま放置される。×
印は、メモリM0及びM8の下方においてバスが未接続であ
ることも示す。
第5図に、プロセッサ40の動作モードを従来装置10の
動作モードと比較して示す。この図では、装置10の内部
セル12の概念的位置を50などの長方形で示す。図示しや
すくするために、この図の拡大率は垂直方向で小さくし
てある。処理装置P1〜P8はそれぞれ別の15個の内部セル
12の計算タスクを実行する。従って各長方形50の中に、
関連する処理装置を示す数字が記してある。即ち、中に
数字i(i=1、2、……、7または8)が記してある
長方形50(及びこの長方形50が表わしている内部セル1
2)には処理装置Piが関連する。また、各長方形の外側
の左上方にはインデックスV1が、右下方にはインデック
スV2が記してあり、これらのインデックスはいずれの長
方形でもV1=1〜15及びV2=V1+15である。V1及びV2は
第一及び第二の時間間隔にそれぞれ対応し、これらの時
間間隔のいずれにおいてもプロセッサ40は、当該位置に
関連する内部セルの機能を実行する。第5図には、メモ
リM0〜M8を表わす斜線も示してある。個々の共通メモリ
に関連する異なる領域同士を点線52が連結している。レ
ジスタセクションの位置が、同じ参照符号421〜424を付
した多節線で示してある。
動作時、各処理装置Piは、従来技術では各15個の内部
セル12によって行なわれる処理タスクを逐次実行する。
従って、従来のシストリックアレイ10の動作の1サイク
ルは本発明のプロセッサ40のサイクルを15個必要とす
る。後者のサイクルを“サブサイクル”と呼称する。即
ち、サブサイクル1〜15はサイクル1に、サブサイクル
16〜30はサイクル2に、というように対応する。第5図
中の数字V1及びV2はサブサイクルの番号である。サブサ
イクル1〜15において、即ち数字V1が1〜15の時処理装
置P1は、第5図において対応する長方形50の中に数字1
で示したように、アレイ10の最下方の二つの斜め並びの
下方部分に位置する内部セルの処理機能を実行する。サ
ブサイクル1において装置P1は、左上方の数字V1を1と
して示してあるように、セルアレイの最下方の斜め並び
の中央に位置する内部セル12の機能に対応する計算を開
始する。サブサイクル2では、V1=2によって示したよ
うに、装置P1は最終(最右)列の最下方の内部セル12に
対応する第1サイクル計算を実行する。サブサイクル3
で実行される計算は、最後から2番目(最下方から2番
目)の行において最終列に含まれる内部セル12の計算で
ある。このような手順が連続するサブサイクルにおいて
繰り返され、処理機能の行なわれる概念的な場所は行位
置または列位置において交互に1箇所ずつ減少する。サ
ブサイクル15終了後、即ちサイクル1終了後に実行され
る計算は、V2=16によって示したように、再び最下方の
斜め並びの中央に位置する内部セルの計算であり、その
後手順が繰り返されてサイクル2が実行される。
同様の処理手順が処理装置P2〜P8によっても実行され
る。装置P2、P3及びP4はそれぞれ、1対の部分小並びに
対応する計算を実行する。装置P5、P6及びP7にそれぞれ
等価であるのは、それぞれ小並び二つを伴った二つの完
全な斜め並びである。装置P8に関しては、右上方のただ
一つの位置と、P1に関連する下部部分を有する斜め並び
の上方部分とが存在する。
装置P1〜P8は各々、M0〜M8のうちのいずれか関連する
メモリ、及びレジスタセクション421〜424に対して読み
出し及び書き込みを行なう。第5図ではメモリ及びレジ
スタは、これらのメモリ及びレジスタとインタフェース
される概念的内部セル位置の近傍に示してある。例え
ば、処理装置P1は各サイクルを通じてメモリM0及びM1
交信するが、サブサイクル1では(即ち1サイクル当た
り1サブサイクルでは)レジスタセクション421とも交
信する。装置P2は、サブサイクル1ではレジスタセクシ
ョン421と交信し、サブサイクル3ではレジスタセクシ
ョン421と422との両方と交信する。
本発明のプロセッサ40の動作モードを、表1及び第6
図〜第8図を参照して以下に詳述する。第6図〜第8図
及び表1において、先に言及した部分には同じ参照符号
及び記号が付してある。第2図に示した内部セル12は各
々、3種の量c、s及びxinの入力を受け取り、計算を
実行して出力c、s及びxoutを発生する。このことを第
6図では、三つの読み出し動作RE1〜RE3と三つの書き込
み動作WR1〜WR3として表わしなおす。第7図に示したn
番目の処理装置Pn(n=1、2、……、7または8)
は、メモリMn-1とMnとの間に接続されている。装置Pn
局部(即ち内部)メモリに記憶されたプログラムに応答
する処理論理を含み、前記メモリはデータアドレス参照
用テーブルも記憶し、かつ係数記憶装置を含む。データ
アドレス参照用テーブルは15個のアドレスセットのリス
トであり、即ち1サブサイクル当たり1セットとなる。
係数記憶装置は、rのような更新可能な係数15個分の空
間、及び出力遅延を必要とする値の一時記憶のための空
間を有する。第8図に、第5図の右手下方の領域を拡大
して示す。この図でメモリM0〜M3は、整数が付されてい
る個々のアドレス位置に分割して示されている。図示し
たアドレス場所の総てが用いられるわけではない。第5
図と同様に、第8図において(箱の中に関連の数字を記
して示した)処理装置P1〜P3はサブサイクルの番号を示
す数字を左上方に有する。表1に掲げたメモリM0〜M3
のアドレスは、サブサイクル6及び7における処理装置
P1〜P3の読み出し及び書き込み動作のためのものであ
る。第8図及び表1に示したアドレスは図示の都合上0
〜22としてあるが、実際の典型的メモリのアドレス空間
は256(8ビット)以上である。
既に述べたように、処理は第1サイクルの第1サブサ
イクルであるサブサイクル1において始まる。しかし、
各サイクルの第1サブサイクルが実際のところ特殊なケ
ースであることは明らかである。従って、まずサブサイ
クル2以降での読み出し書き込み動作を典型的動作とし
て説明し、サブサイクル1での動作については後段で検
討する。
処理装置P1は次のように動作する。第4図、第7図及
び第8図を再度参照すると、局部メモリに記憶されたプ
ログラムは各サブサイクルのために連続する三つの読み
出し命令を有し、これらの命令は局部メモリの参照用テ
ーブルに記憶された、当該動作サブサイクルに対応する
アドレスセットの三つのデータアドレスから読み出され
るべきデータをそれぞれ要求する。参照用テーブルはチ
ップアドレスラインC1に関する値も記憶し、ラインC1
アドレスバスA1の3ビット拡張部に相当する。表1で
は、メモリMnのアドレスZを“MnZ"と表記してある。サ
ブサイクル2において、処理装置P1の読み出し動作RE
1、RE2及びRE3はアドレスM10、M08及びMo7の読み出しと
してそれぞれ行なわれる。装置P1はZ=0に対応するア
ドレスをアドレスバスA1上に置き、またチップアドレス
ラインC1上には、M1がデコーダD1によってイネーブルと
され、M0、R11及びI/O1はディスエーブルとされるよう
な3ビットコードを置く。更に装置P1は、2ビット“読
み出し”コードを読み出し書き込みライン対R/W1上に置
いて読み出し動作を表明する。その結果、メモリM1はそ
のアドレス0の内容をデータバスB1上に置き、このバス
B1上で前記内容は処理装置P1によってRE1として読み取
られ、かつ一時的に記憶される。次に、装置P1はC1への
コード出力を、デコーダD1がM0をイネーブルとするのに
必要なものへと変更し、またバスA1上に置くアドレスを
まずZ=8へ、その後Z=7へと変更する。それによっ
て、M0のアドレス8及び7からの読み出し動作RE2及びR
E3が連続的に実現する。 サブサイクル2において三つ
の読み出し動作を連続的に行なった装置P1は、第2図に
示した内部セル計算を実行して、関連する第二の内部セ
ルのためにxoutと(更新した)rとを発生する。装置P1
はその内部に記憶した15個の係数r(初期値0)のうち
の2番目の値を(更新した)rによって置き換え、それ
によって、新たに計算したxout変更をしない二つの入力
値(RE2及びRE3として入力されたc及びs)と共に出力
する用意が整う。サブサイクル2において装置P1は、第
1図の最下方に位置する内部セル12の機能を実行し、従
ってc、s及びxout信号は内部セルサブアレイの外部に
宛てて送られる。この状況はプロセッサ40では、入出力
ポートへの書き込み動作として実現する。従って、処理
装置P1はポートI/O1への書き込みを3回連続して行な
う。装置P1はその参照用テーブルから次の三つのチップ
アドレスコードを得る。これらのコードは実際上I/O1
のアクセスのために必要なコードと同じであり、バスA1
上にアドレスを置くことはI/O1のためには不要である。
これら三つのコードは第1のアドレスセットの後半部を
構成する。装置P1は参照用テーブルから得たチップアド
レスコードをチップアドレスラインC1上に置く。その結
果、デコーダD1が能動化されてポートI/O1をイネーブル
とし、その後装置P1は2ビット“書き込み”コードをラ
イン対R/W1上に置き、かつ値xout、c及びsをWR1、WR2
及びWR3それぞれとして連続的にデータバスB1上に置
く。それによって、上記値はポートI/O1とインタフェー
スされた次の信号処理回路網(図示せず)へと送られ
る。
サブサイクル2はWR3が出力されたら終了し、処理装
置P1は続けて、サブサイクル3で実行されるべき機能を
実行する。サブサイクル3の機能はM15、M010及びM09か
らの読み出しとM10(WR1)及びI/O1(WR2及びWR3)への
書き込みとを要求し、前記アドレスは装置P1の第三のア
ドレスセットを構成する。WR1機能は、前のサブサイク
ルにおいて読み出されたM10の内容を重ね書きする。装
置P1はまた、該装置に関連する第三の内部セル位置(V
=3)に適した、更新されたRマトリクス要素rを計算
し、かつ内部に記憶する。その後のサブサイクルでは、
第8図に示したように、読み出し及び書き込み動作はメ
モリM0及びM1のアドレスに対して行なわれる。表1に
は、サブサイクル6及び7において処理装置P1〜P3が読
み出し及び書き込みを行なうメモリM0〜M3のアドレス及
びポートI/O3が示してある。
処理装置P1はメモリM0/M1から読み出し、かつこれら
のメモリ、及び/またはサブサイクル2〜15以外ではポ
ートI/O1に書き込む。しかし、サブサイクル1では第5
図に示したように、装置P1は直上のレジスタセクション
421とインタフェースされる。第6図に示したように、R
E1は上方から読み出される。従ってRE1は、デコーダD1
からのイネーブル信号に応答してレジスタセクション42
1のレジスタR11から読み出される。レジスタR11は、後
のサイクルにおいて8番目の処理装置P8から入力を受け
取る。
サブサイクル1は、処理装置P1の動作の特殊ケースで
ある。サブサイクル16、31等、即ち各サイクルの、“15
(n−1)+1"(n=1、2、3、……)という番号を
有する第1サブサイクルも同情である。これらのサブサ
イクルも、他の処理装置P2〜P8にとって特殊なケースで
ある。その理由は以下のとおりである。シミュレートさ
れるシストリックアレイ10において、データ及び結果は
下方及び右方へと流れる。この流れは1クロックサイク
ル当たり1セルの速度で行に沿い、かつ列を下って進
む。自身の左方または上方に隣接セルを有する内部セル
は前記隣接セルから、該セルが1サイクル前に用い、ま
たは計算したデータを受け取る。しかし、プロセッサ40
では第5図に示したように、処理装置(P1等)が連続す
るサブサイクルにおいて概念上、シストリックアレイで
のデータフローの方向と逆に上方及び左方へと処理を進
める。その結果、処理装置P1等への隣接位置からの入力
は1サイクル前でなく、1サブサイクル前に発生され
る。この差は個々のサイクルの殆どにとって取るに足り
ない。しかし、サブサイクル1(及び後の等価サブサイ
クル)では右隣の位置はサブサイクル15に対応する。即
ち、これら二つのサブサイクルは同じ第1サイクルの始
まりと終わりである。この特殊ケースでは、右方の位置
(V1=15、V2=30)は左方の位置(V1=1、V2=16)よ
り14サブサイクル後に処理され、このことは当該サイク
ルの他の13サブサイクルのいずれにおいて処理される位
置もその左方の位置より1サブサイクル前に処理される
のと異なっている。従って、反対側に配列が存在しない
ため、第1サイクルのサブサイクル1における処理装置
P1からの右方出力(WR2及びWR3として出力される値c及
びs)は第1サイクルのサブサイクル15において入力と
して用いられる。同様に、サブサイクル1における処理
装置P1からメモリM0への垂直方向出力(xout=WR1)の
発生は早過ぎる。このことは、一つのサイクルで処理セ
ルによって発生された結果が次のサイクルで前記セルの
右方または下方の隣接セルによって用いられることとい
うシストリックアレイの処理上の必要条件と両立しな
い。同様のことが他の処理装置P2〜P8の総てについて指
摘できる。
このタイミング問題に対処するために、各サイクルの
第1サブサイクル、即ちサブサイクル“15(n−1)+
1"(n=1、2、3、……)では処理装置P1〜P8はその
電流値xout、c及びsを内部に記憶する。装置P1〜P8
各々WR1、WR2及びWR3として、前のサイクル(存在する
場合)で記憶した値xout、c及びsをそれぞれ出力す
る。その結果、各サイクルの第1サブサイクル(のみ)
において、処理装置P1〜P8からの出力は1サイクル遅延
される。このことは、各処理装置の内部係数記憶装置が
三つの付加的な記憶場所を有することを意味する。
サブサイクル15が終了したら装置P1の動作の第1サイ
クルは完了であり、サブサイクル16が第2サイクル(V2
=16〜30)を開始する。第5図に示したように、処理装
置P1は最下方の斜め並びの中央に位置する内部セル12の
計算実行に戻る。サイクル2(サブサイクル16〜30)に
おいて、装置P1はサイクル1の間にメモリM0及びM1並び
にレジスタR11に記憶されたデータ(存在する場合)を
読み込む。装置P1は三つのデータ値を、1サイクル遅延
を実現するべく一時的に記憶する。装置P1はまた、従来
の内部セルにそれぞれ対応する、更新処理した15個の値
rも記憶する。
上記のような点は、他の処理装置P2〜P8、及び3番目
以降のサイクルにも当て嵌まる。通常、処理装置Pnは1
サイクルの殆どの間、その関連メモリMn-1及びMn(n=
1〜8)に対して読み出し及び書き込みを行なう。例外
は次のような場合である。装置P5〜P8は、第1図に示し
た従来のアレイ10の最上行の内部セル12に対応する計算
を実行する場合はポートI/O5〜I/O8からのRE1(xin)を
それぞれ実行する。このような状況に至るのは、装置
P5、P6及びP7は各サイクルの四つのサブサイクル(例え
ば装置P5のサイクル1のサブサイクル6〜9)において
であるが、装置P8は三つのサブサイクルにおいてだけで
ある。上記“最上"RE1動作は、データマトリクス(第
3図参照)の1要素のアレイ10への入力に等価である。
8個の処理装置P1〜P8はいずれも各サイクルにおいて、
最右列の個々の位置の内部セルに対応する処理機能を実
行する。装置P1〜P7は1サイクル当たり2サブサイクル
だけこのような状況に有るが、装置P8は1サイクル当た
り1サブサイクルだけこのような状況に有る。上記状況
下で、装置P1〜P8はI/O1〜I/O8へのWR2及びWR3をそれぞ
れ行ない、P1はまたこの状況に至る2サブサイクルの一
方において、先に述べたようにI/O1へのWR1も行なう。
この最右方出力機能は、第1図に示した従来の内部セル
サブアレイからの出力に対応する。最後に、処理装置Pi
(i=1〜8)は装置P10-i及び/またはP9-iに対する
読み出しや書き込みを、介在するレジスタ群42を介して
行なう。R12やR13などの個々のレジスタは先に述べたよ
うに、先入れ先だし方式(FIFO)に基づいて構成された
一または二語一時記憶デバイスである。レジスタR11〜R
41は、2個の処理装置によるメモリアドレスの同時指定
が回避されるように、共通のメモリを持たないか、また
は付加的な記憶装置を必要としない処理装置同士の交信
を実現する。例えば、第5図に示したように、処理装置
P3はサブサイクル3及び5それぞれにおいて装置P7から
の二つの読み出し動作RE2及びRE3を、レジスタセクショ
ン422のレジスタR23及びR24を介して行なう。サブサイ
クル3では、装置P3はレジスタR23及びR24に記憶された
第一の語の読み出し、サブサイクル5では前記レジスタ
に記憶された次の語を読み出す。装置P3はR31の内容もR
E1として読み出し、これをサブサイクル5においてWR1
としてR22に書き込む。他の読み出し書き込み動作はメ
モリM2及びM3に対して行なわれる。同様のことが、レジ
スタ群42を介して互いにインタフェースされた他の処理
装置対にも当て嵌まる。
処理装置P1〜P8は、外部クロック(図示せず)の制御
下に同期的に動作する。このことは従来のシストリック
アレイと同であり、ここでは説明しない。第5図、第6
図及び第8図に示し、かつこれらを参照して説明したよ
うに、処理装置P1〜P8の読み出し書き込み動作の同調化
(phasing)は、メモリM0〜M8が各々常にただ1個のア
ドレス入力にのみ応答することを要求されることが確実
となるように実現されている。例えば第8図で、サブサ
イクル5において装置P1及びP2はメモリM0/M1及びM1/M2
に対する読み出し書き込みをそれぞれ行なうが、その結
果M1へのアクセスにおいて競合が起きかねない。しか
し、装置P1はM1からの読み出し(RE1)から始め、一方
装置P2はM2から読み出す。従って、P1のRE2及びRE3動作
は共にM0から行なわれ、その時点で装置P2はM1をアドレ
ス指定するように切り替わっている。読み出し動作のこ
のような同調によって、メモリアドレス指定競合が回避
される。同様のことが書き込み動作にも、また処理装置
P3〜P8及びメモリM3〜M8にも当て嵌まる。読み出し動作
は任意サブサイクルの初めに行なわれ、書き込み動作は
終わりに行なわれる。従って、同一サブサイクルにおい
て読み出しと書き込みとを1個のメモリ(例えばM1)に
対して、アドレスバス(例えばA2)上のアドレス同士の
競合を伴わずに行なうことは可能である。しかし、通
常、ただ1個のメモリに対して二つの動作が同時に行な
われることは回避されなければならない。当然ながら、
上記のような競合をアドレスバス及びメモリの重複設置
によって解消することもできる。
既に言及済みの構成要素には同じ参照符号もしくは記
号を付した第9図に入出力ポートI/O1〜I/O8が各々有す
る構造を比較的詳細に示す。参照符号の下付き指標(例
えばI/O1の“1")は、関連性を有する総ての部分が示さ
れるように省略してある。ポートI/Oは四語並列入力直
列出力方式の入力レジスタ60を、一語並列入力並列出力
方式の出力レジスタ62と共に含む。入力レジスタ60は64
などの4本のデータ入力バスと、共通の書き込みライン
68と接続された66などの4個の書き込み制御入力とを有
する。出力レジスタ62は出力バス70と、関連する読み出
し出力ライン72とを有する。第4図の読み出し書き込み
ライン対R/Wは、入力レジスタ60に接続された読み出し
ライン74と、出力レジスタ62に接続された書き込みライ
ン76とを含む双方向データバスBはレジスタ60とも62と
も接続されている。接続要素64〜72は第4図では、バス
41によってまとめて示してある。
ポートI/Oは次のように動作する。プロセッサ40の各
動作サイクルの第1サブサイクルの直前に、入力レジス
タ60の書き込みライン68にパルスが付与され、4個のレ
ジスタ入力64に各一つのデジタルデータ語が同時に付与
される。その結果既存のレジスタ内容が重ね書きされ、
四つの語はレジスタ60に、連続的に放出されるようにし
てロードされる。読み出しライン74にパルスが付与され
る度に最右方の入力64に関連する語がデータバスB上に
置かれ、その他の語は右方へシフトされる。それによっ
て、ロードされた四つの語は連続する四つの読み出しラ
インパルスに応答して一つずつデータバスB上へと出力
される。再び第5図を参照すると、処理装置P6がサブサ
イクル19、20、25及び26(即ちV2=19、20、25及び26)
において最上行計算を実行する際にI/O6からのデータ読
み出しを必要とすることが分かる。上記サブサイクルそ
れぞれにおいて装置P6は、ライン対R/W6に個々の読み出
しパルスを送出し、先に言及したデータマトリクス
正しいマトリクス要素xijから成る個々のデジタル語が
該装置の入力レジスタ60によってデータバスB6上に置か
れることを必要とする。装置P6は最上行の5番目、6番
目、11番目及び12番目のセル位置に関して処理を行な
う。従って、装置P6のレジスタ60にはxn,6
n−1,7、xn−6,12及びxn−7,13といったマトリ
クス要素が同時に入力される。ここでnは正の整数であ
り、n−kがゼロ以下であることはxn−k,qがあらゆ
るqに関してゼロに等しいことであると解釈される。既
に述べたように、入力は各サイクルの最後(15番目)の
サブサイクルの終わりに行なわれる。このことは、異な
る時点に最上行計算を実行する異なる処理装置によって
次のサイクルの間に読み込まれるべきデータが存在する
ことを確実にする。処理装置P6は、連続する二つのサブ
サイクルと、その後に四つのサブサイクルを挟んで続く
更に別の二つのサブサイクルとにおいてデータ語を逆の
順序で(即ちxn−7,13から)読み込む。
同様のことが処理装置P5、P7及びP8への入力にも当て
嵌まる。装置P5は連続する四つのサブサイクルにおいて
ポートI/O5からの入力を必要とし、一方装置P8にとって
ポートI/O8からの連続入力は三つで足りる。装置P7は四
つのサブサイクルにおいてポートI/O7からの入力を必要
とし、その際先の二つのサブサイクルと後の二つのサブ
サイクルとは八つのサブサイクルによって隔てられる。
実際、処理装置P5〜P8の入力レジスタ60は並列に構成
されており、並列にロードされる。これらのレジスタは
データを1サイクルに1回同時に受け取る。このような
データ受け取りは、処理装置P8が第5図に示した最上方
かつ最右方の位置(V1=1、V2=16)の計算機能を実行
する直前に行なわれる。それによって、最上行入力を総
て同時に受け取る従来のシストリックアレイ10がシミュ
レートされる。レジスタ60の内容は各連続入力によって
重ね書きされる。後段に詳述するように、有意データ
(即ちx12)がまずサブサイクル30において装置P8によ
り処理され、このデータはサブサイクル16より前に60に
入力されたものである。その後、データはサブサイクル
30の終わりに重ね書きされるまでレジスタ60内に留ま
る。
第9図に示したようなポートI/Oを介してのプロセッ
サ40からの出力は、比較的単純である。ライン76上の書
き込みパルスはデータバスBの内容を出力レジスタ62
に、タイミングを取って入力する。読み出し出力ライン
72は外部回路網(図示せず)からパルスを付与されて、
レジスタの内容を出力バス70上へと読み出す。76に付与
される次の書き込みパルスによって、レジスタの内容は
重ね書きされる。外部回路網(図示せず)は1サイクル
当たり5回まで出力レジスタ62から読み出すように構成
されており、この“5"という数は1個のポートI/Oから
得られる出力値の1サイクル当たりの最大個数である。
本発明のこの例において、処理装置P1〜P4は出力レジス
タ62のような出力装置しか必要としない。しかし、全装
置P1〜P8を、同様の入出力ポートを有するものとして扱
えば便利である。
再び第1図〜第5図を参照して、従来技術による装置
10の動作を本発明のプロセッサ40の動作と比較すること
が有益である。装置10は通常下方及び右方へと流れる信
号フローを用い、セル12〜18は各々クロックによって能
動化され、各クロックサイクル毎に互いに同調して動作
する。このような方式は本発明のプロセッサ40では、サ
イクルからサイクルへ少なくとも概念的に維持される。
第5図に示した各処理装置、即ち例えばP1は、上方及び
左方の等価物からデータを受け取り、下方及び右方の等
価物へと出力する。サブサイクル1(V1=1)における
処理装置P1の場合、該装置P1は“上方”のレジスタセク
ション421及び“左方”のメモリM0からデータを受け取
る。その後、装置P1は(内部で遅延させた)出力をメモ
リM0を介して、“下方”及び“右方”へと発生し、右方
への出力は次のサイクル(サブサイクル16=V2)で用い
られる。しかし、1サイクル内で処理装置P1〜P8はそれ
ぞれ自身に割り当てられた概念的内部セル位置を、従来
装置でのデータフローに比較して逆の順序で取り扱う。
即ち、処理されるべき第一の位置は、右上から左下へ伸
長する斜線上に有る位置(V1=1)である。位置は上方
及び左方へと連続的に処理される。例えば処理装置P
1は、行番号と列番号とが連続するサブサイクル間で一
貫して交互に減少する内部セル位置に対応する計算を実
行する。装置P5〜P8の場合は、最上行サブサイクルの後
に不連続のシフトが起こる。サブサイクル1において、
装置P3〜P8の計算は、三角アレイの右手上方の角から斜
辺に向かって伸長する斜線上の内部セル位置に対応す
る。サブサイクル15において装置Piは、第5図の(9−
i)番目の行及び(8+i)番目の列(i=1〜7)に
含まれる内部セル位置を処理する。(第1図との比較の
ためには列番号を、最上方の境界セル14を含む余分な列
を勘案して1だけ大きくするべきである。)サブサイク
ル1において、i=1〜8の場合の等価物は(7+i)
番目の列であり、その際行番号は(9−i)で不変であ
る。
第5図に示したように内部セル位置の処理順序を概念
的に逆にするのは、メモリまたはレジスタに記憶された
中間計算値が必要とされる前に重ね書きされないことを
保証するためである。例えば、再び第8図を参照する
と、サブサイクル3において処理装置P1は、一つ前のサ
ブサイクルで読み出したアドレスM10の内容を重ね書き
する。アドレスM10に書き込まれた新しい値は、15サブ
サイクル後の次のサイクルで読み出して重ね書きされる
までそこに留まる。この手順が逆にされると、アドレス
M10の内容は1サイクルの間に読みだされる前に重ね書
きされる。これに関連して強調されるのは、処理装置P1
〜P8はいずれも一つ前のサイクルで発生された、介在す
る計算に影響されないことを必要とする入力を用いる点
である。記憶されたデータの望ましくない重ね書きを先
に述べたような順序の逆転によらずに回避するために
は、第4図に示したもの以外にも記憶装置(二重バッフ
ァ)並びにアドレス及びデータバスを設置することが必
要となる。
位置処理順序の概念的逆転及び処理装置P1〜P8の動作
の相互同調は、第7図に示したような各処理装置がそれ
ぞれ有するアドレスデータのリストによって実現され
る。いずれのリストのアドレスも連続的にアクセスさ
れ、処理装置は自身のリフトが終了したら再び最初から
アクセスしだす。第5図に示した相互同調は処理装置P1
〜P8に、それぞれのアドレスリストに適したスタートポ
イントを割り当てることによって実現される。
第4図〜第9図に関して先に行なった分析では、プロ
セッサの起動の問題には触れなかった。プロセッサ40は
V1=1もしくはサブサイクル1以降データの処理を続け
るものと暗に仮定しておいた。従来技術では、第1図〜
第3図に示したように、x11が最上方の境界セル14に入
力されてからy1がサイクル16において右上角の内部セル
12に入力されるまで15サイクル要する。特にy1から得ら
れる累積的処理の結果が最下方の内部セル12に達するま
でには更に15サイクル必要である。従って、従来のシス
トリックアレイ10のための起動段階は、その伝搬方向と
直交する方向に伸長する波頭として左上から右下へと傾
斜する。本発明のプロセッサ40でも等価の起動段階が生
起する。有意入力データに関して計算を実行する最初の
処理装置は、サブサイクル30において第5図の左上角の
位置を処理するP8である。サブサイクル30は第2サイク
ルの最後のサブサイクルであり、第2サイクルの間に処
理装置P8にx12が入力される。サブサイクル30において
装置P8は、xn2(n=1、2、……)といった連続する
マトリクス要素を受け取る、第1図に示したサブアレイ
の最上行の1番目の(最左方の)内部セル12の処理タス
クを実行する。第3サイクル(図示せず)のサブサイク
ル44及び45において、装置P8はx13及びx22をそれぞれ読
み込んで、第1図の最上行の1番目及び2番目の内部セ
ル12の機能を実行する。このような起動段階は第5図の
行に沿って、かつ列を下って進行する、最後に、サイク
ル30の第2サブサイクルであるサブサイクル437におい
て、処理装置P1がx11〜x1,15及びy1由来する入力を受
け取る。装置P1は、第1図のプロセッサ10の最下方の内
部セル12から最初に発生される有意味出力に対応する結
果を計算する。それによって、起動段階は完了する。起
動段階は、シストリックアレイ及びデジタルエレクトロ
ニクスの分野では良く理解されており、これ以上説明し
ない。プロセッサ40から発生される、実入力に対応しな
い出力を取り消し、または防止するべく工夫することが
望ましい場合も有る。
プロセッサ40は、データマトリクスに関する計算を
実行するためには、境界セル14及び遅延ラッチ16の連な
りの等価物を必要とする。処理装置P1及びP8によって出
力され、かつそれぞれ1サイクル後に用いるべくメモリ
M0及びM8一時的に記憶された値からパラメータc及びs
を計算しなければならない。第8図を参照して、サブサ
イクル6における上記計算を一例として説明する。サブ
サイクル6において、装置P1はM017へのWR1を実行す
る。即ち、メモリM0のアドレス17は、内部セル12の境界
セル14宛の垂直方向出力の等価物を受け取る。従ってメ
モリM0は、M017にアクセスし、第2図に示したように回
転パラメータc及びsを計算し、得られたc及びsを次
のサイクルでの使用のためにM014及びM013にそれぞれ書
き込むデバイスとインタフェースされなければならな
い。このインタフェースは一つ置きのサブサイクルにお
いて、即ち装置P1が第5図でメモリM0に隣接して示され
た位置を処理する度に実現されるべきである。同様に、
メモリM8は、回転パラメータを計算して戻すべく一つ置
きのサブサイクルにおいてメモリM8にアクセスするよう
に構成された第二の同様デバイスとインタフェースされ
なければならない。上記第二の同様デバイスには、第1
図及び第3図に示したように最初の動作サイクルにおい
てマトリクス要素x11を受け取ることが要求される。ま
た、このデバイスは後続行の1番目のマトリクス要素x
n1(n=2、3、……)も受け取らなければならない。
このデバイスは第1図の最上方の境界セル14として機能
して、第2サイクルの最後のサブサイクル(V2=30)に
おいて処理装置P8によりRE2及びRE3として読み出される
べき回転パラメータc及びsを発生する。これらのデバ
イスを実際に用いることは容易である。これらのデバイ
スは、第4図に中途で切断して示したデータ及びアドレ
スバスを介してメモリM0及びM8とそれぞれインタフェー
スされた、装置P1〜P8に類似の処理デバイスである。
本発明のプロセッサ40のP1等の処理装置は内部メモリ
を具備しており、このメモリにはプログラムにくわえて
アドレス参照用テーブルと、三つの遅延値及び15個の係
数とが記憶されている。容量のより小さい内部メモリを
具備したより単純な処理デバイスを用いることも可能で
ある。その場合はM0等のメモリがアドレスリスト並びに
上記値及び係数を記憶し、かつ個々の処理デバイスのア
ドレスリストに関して計数するカウンタと関係付けられ
得る。しかし、このようなメモリ使用は実用上かなり不
便であり、処理速度の低下を招きかねない。なぜなら、
トランスピュータのような市販の個別処理デバイスはP1
等の処理装置の目的に十分な内部メモリを含むからであ
り、そのような機能を利用しないのは非効率的である。
しかし、プロセッサ40は、個々の処理装置、レジスタ及
びメモリがヒ化ケイ素またはヒ化ガリウムの一区域とな
る集積回路チップもしくはウェハとして構成することも
可能である。この場合には、局所メモリと遠隔メモリと
の最も好ましいバランスを選択し得る。
プロセッサ40は、8個の処理装置P1〜P8が120個の内
部セル12の機能を実行するように設計されている。通
常、(斜辺以外の)外縁が1本当たりn個の内部セルか
ら成る三角サブアレイはn(n+1)/2個のセルを有す
る。この個数は、n/2と(n+1)、またはnと(n+
1)/2とに因数分解できる。nは正の整数であるから、
n及び(n+1)の一方は偶数でなければならない。従
って、n(n+1)/2は常に、一方の数が処理装置の個
数、他方の数が各処理装置に割り当てられる内部セルの
個数とされる二つの整数に因数分解可能である。しか
し、プロセッサ40に偶数(8)個の処理装置が用いられ
るのと対照的に、奇数個の処理装置が必要となる場合も
あり得る。
第10図に本発明のプロセッサの、奇数(7)個の処理
装置を含む変形例を、その全体に参照符号140を付して
示す。この第10図で、第4図に示したものと等価の構成
要素には同様の記号、即ちアステリスクを付けた文字
P、M、DまたはRが付してある。下付き指標は1〜8
から1〜7に変更してある。プロセッサ140は先に説明
したプロセッサにきわめて類似し、その詳細な説明は行
なわない。それでも、プロセッサ140と先の例とはプロ
セッサ140に処理装置P4の直接の等価物が存在しないと
いう点でしか実質的に相違しないということがこの図か
ら分かる。プロセッサ140には従って、M4、D4及びR41
直接の等価物も存在しない。実際、装置P4*〜P7*は装
置P5〜P8にそれぞれ等価である。
第11図に、処理装置P1*の動作の相互同調を、前と同
じV1及びV2の値を用いて示す。第5図に類似のこの図に
は、プロセッサ140が13×13三角サブアレイ、即ちn
(n+1)/2が13×7即ち91であるサブアレイの機能を
実行することが示してある。図示のように、7個の処理
装置P1*〜P7*はそれぞれ13個の内部セルに対応する。
従って、1サイクル当たり13のサブサイクルが存在す
る。その他の点ではプロセッサ140の動作は先の例と同
様なので、詳述はしない。
第4図及び第11図に示した正規構造同士を比較すれ
ば、集積回路チップのカスケード接続によって本発明を
モジュール状に構成し得ることが分かる。各チップは、
2個(またはそれ以上)のP2及びP8のような処理装置を
それらに関連するレジスタR11〜R14、メモリM2及びM8
と共に含み得る。部分的に用いられるチップ上の、必要
を上回る処理装置はバイパスされる。プロセッサ40及び
140は、存在するP1等の処理装置より1個余分なメモリM
0及びM0*をそれぞれ用いる。これに相当するものとし
ては、大部分がバイパスされる集積回路ではなく特別の
外部メモリを用いることができる。あるいは他の場合に
は、M0を省略してバスA1/B1をM8に接続することも可能
である。それによって、装置P1とP8とは(先に述べた)
回転パラメータ計算手段と共に、共通のメモリM8をアド
レスする。同様のことがM0*/M8*にも当て嵌まる。こ
のような変形は扱いにくい例をもたらす。なぜならメモ
リM8やM8*に重大なアクセス要求が課せられるからであ
る。
ここまでの検討は、n(n+1)/2個の処理装置から
成るn×n三角アレイの機能の実行にn/2個または(n
+1)/2個の処理装置を用いるものとして行なってき
た。これはしばしば最適の実施例であり得る。なぜなら
必要な処理装置の個数が著しく低減されると共に比較的
高度の並列性が実現されるからである。上記のような構
成は、全計算を実行する単一のコンピュータより少なく
ともn/2個高速であるはずであり、その際用いる処理装
置の個数は第1図に示した、1ノード当たり1装置を用
いる完全に並列のアレイに必要な個数の1/(n+1)で
ある。しかし、本発明は、n×n三角アレイをシミュレ
ートするn/2個または(n+1)/2個の処理装置に限定
されない。第12図に、16×16三角アレイをシミュレート
する4個の処理装置に関する適当な動作同調を示す。
本発明のプロセッサは、非三角形のシストリックアレ
イ、及び異なる計算機能を有する処理セルを含むアレイ
をシミュレートするように構成することもできる。個々
のセルは、例えば連続するサブサイクルにおいて二つの
計算機能間で切り替わり得るなどの機能を複数有し得
る。しかし、ほとんどの用途では、上記のような構成は
望ましくないほどに複雑となる。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジヨーンズ,ロビン イギリス国、ウスターシヤー・ダブリ ユ・アール・14・1・ブイ・ワイ、マル バーン・リンク、サンドパイパー・クレ セント・25 (72)発明者 ブルームヘツド,デイビツド・シドニー イギリス国、ウスターシヤー・ダブリ ユ・アール・14・4・エイチ・ダブリ ユ、マルバーン・ウエルズ、アサーツ・ ロード・3 (56)参考文献 特開 昭62−264357(JP,A) 米国特許4943909(US,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/80 G06F 15/16 WPI

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】並列処理アレイの動作をシミュレートする
    デジタルデータプロセッサであって、該プロセッサ(4
    0)はデータ記憶手段(M0〜M8、R11等)と接続されたデ
    ジタル処理装置(P1〜P8)のアセンブリを含み、 (a) 各処理装置(P1〜P8)がそれぞれの、記憶手段
    データアドレス(例えばM112)のセットのリストを実行
    するようにプログラムされており、 (b) 各アドレスセット(例えばM112、M020、M019、
    M017、M016、M015、)が異なる入力データアドレス(例
    えばM112)及び出力データアドレス(例えばM017)を含
    み、このようなアドレスセットがシミュレートされる個
    々のアレイセル(12)のデータ入出力機能にそれぞれ対
    応し、 (c) アドレスセットのリストのそれぞれがシミュレ
    ートされるアレイのセル(12)の個々のサブアレイに対
    応し、且つリストのそれぞれが、先行のアドレスセット
    (例えばサブサイクル6のM112、M020、M019、M017、M0
    16、M015)が後続のアドレスセット(例えばサブサイク
    ル7のM117、M022、M021、M112、M114、M113)の出力デ
    ータアドレス(M112)となるような入力データアドレス
    (M112)を有する複数対の連続するアドレスセットを含
    み、シミュレートされるセル(12)の機能が、シミュレ
    ートされるアレイ内のデータフロー(22、24)に対応す
    る順序とは逆の順序で実行されるように、各リストが構
    成され、 (d) 各処理装置(P1〜P8)がそれぞれのリストの最
    初のアドレスセット(例えばM112、M020、M019、M017、
    M016、M015)をデータ記憶手段(M0〜M8、R11等)から
    の入力データの読み出しと前記手段への、計算機能に従
    って発生される出力データの書き込みとに用い、後続ア
    ドレスセット(例えばM117、M022、M021、M112、M114、
    M113)をリストが完了するまで同様に用い、その後この
    ような手順を周期的に繰り返すようにプログラムされて
    いる ことを特徴とするデジタルデータプロセッサ。
  2. 【請求項2】各処理装置(P1〜P8)が4個以下の他の処
    理装置(P1〜P8)と交信するように構成されており、各
    処理装置対(P1/P8、P1/P2)の処理装置同士の間にはレ
    ジスタデバイス(例えばR11)及びメモリ(例えばM1
    を含む記憶手段が接続されており、アドレスセットリス
    トは各レジスタデバイス(例えばR11)及びメモリ(例
    えばM1)が一度に1個の処理装置(例えばP1)によって
    しかアドレスされないようなリストであることを特徴と
    する請求項1に記載のプロセッサ。
  3. 【請求項3】幾つかの処理装置(P2〜P7)が、各レジス
    タデバイス(例えばR21〜R24)を介して2個の他の処理
    装置(P1〜P8)と交信し、かつ各メモリ(例えばM2)を
    介して別の2個の他の処理装置(P1〜P8)と交信するよ
    うに構成されており、アドレスセットリストは、レジス
    タデバイス(例えばR21〜R24)がメモリ(例えばM2)ほ
    ど頻繁にアドレスされないように構成されていることを
    特徴とする請求項2に記載のプロセッサ。
  4. 【請求項4】幾つかの処理装置(P5〜P8)が入力データ
    要素の並列直列変換を行なうように構成された入力手段
    (I/O)を含むことを特徴とする請求項1、2または3
    に記載のプロセッサ。
  5. 【請求項5】各処理装置(P1〜P8)が当該装置のリスト
    の各アドレスセット(例えばM112、M020、M019、M017、
    M016、M015)にそれぞれ関連する係数を記憶及び更新す
    るように構成されていることを特徴とする請求項1から
    4のいずれか1項に記載のプロセッサ。
JP3513674A 1990-08-16 1991-08-15 並列処理アレイの動作をシミュレートするデジタルプロセッサ Expired - Lifetime JP2931097B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB909018048A GB9018048D0 (en) 1990-08-16 1990-08-16 Digital processor for simulating operation of a parallel processing array
PCT/GB1991/001390 WO1992003802A1 (en) 1990-08-16 1991-08-15 Digital processor for simulating operation of a parallel processing array

Publications (2)

Publication Number Publication Date
JPH06506073A JPH06506073A (ja) 1994-07-07
JP2931097B2 true JP2931097B2 (ja) 1999-08-09

Family

ID=10680796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3513674A Expired - Lifetime JP2931097B2 (ja) 1990-08-16 1991-08-15 並列処理アレイの動作をシミュレートするデジタルプロセッサ

Country Status (8)

Country Link
US (1) US5845123A (ja)
EP (1) EP0543860B1 (ja)
JP (1) JP2931097B2 (ja)
AT (1) ATE135123T1 (ja)
DE (1) DE69117763T2 (ja)
DK (1) DK0543860T3 (ja)
GB (2) GB9018048D0 (ja)
WO (1) WO1992003802A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408402B1 (en) * 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
DE10001261C2 (de) 2000-01-14 2002-11-21 Daimler Chrysler Ag Verfahren und Vorrichtung zur Fahrweisenbewertung
GB2358496A (en) * 2000-01-20 2001-07-25 Advanced Risc Mach Ltd Simulation of data processing apparatus including pipelined circuit elements
US6853968B2 (en) 2000-01-20 2005-02-08 Arm Limited Simulation of data processing apparatus
US6956268B2 (en) * 2001-05-18 2005-10-18 Reveo, Inc. MEMS and method of manufacturing MEMS
US7045878B2 (en) * 2001-05-18 2006-05-16 Reveo, Inc. Selectively bonded thin film layer and substrate layer for processing of useful devices
EP1278128A3 (en) * 2001-07-19 2004-09-08 NTT DoCoMo, Inc. Systolic array device
US7163826B2 (en) * 2001-09-12 2007-01-16 Reveo, Inc Method of fabricating multi layer devices on buried oxide layer substrates
US6875671B2 (en) * 2001-09-12 2005-04-05 Reveo, Inc. Method of fabricating vertical integrated circuits
US7033910B2 (en) * 2001-09-12 2006-04-25 Reveo, Inc. Method of fabricating multi layer MEMS and microfluidic devices
WO2007037716A1 (en) * 2005-09-30 2007-04-05 Intel Corporation Communication system and technique using qr decomposition with a triangular systolic array
JP4657998B2 (ja) 2006-07-21 2011-03-23 ルネサスエレクトロニクス株式会社 シストリックアレイ
US8046200B2 (en) 2006-09-05 2011-10-25 Colorado State University Research Foundation Nonlinear function approximation over high-dimensional domains
US20080112493A1 (en) * 2006-11-13 2008-05-15 Emmanouil Frantzeskakis Method and System for Recursively Detecting MIMO Signals
US20090132792A1 (en) * 2007-11-15 2009-05-21 Dennis Arthur Ruffer Method of generating internode timing diagrams for a multiprocessor array

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4247892A (en) * 1978-10-12 1981-01-27 Lawrence Patrick N Arrays of machines such as computers
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4773038A (en) * 1986-02-24 1988-09-20 Thinking Machines Corporation Method of simulating additional processors in a SIMD parallel processor array
US4827403A (en) * 1986-11-24 1989-05-02 Thinking Machines Corporation Virtual processor techniques in a SIMD multiprocessor array
US4943909A (en) * 1987-07-08 1990-07-24 At&T Bell Laboratories Computational origami
GB2219106B (en) * 1988-05-26 1992-04-15 Secr Defence Processor for constrained least squares computations
US5179714A (en) * 1988-10-07 1993-01-12 Martin Marietta Corporation Parallel bit serial data processor
US5249301A (en) * 1988-10-25 1993-09-28 Bull S.A Processing communication system having a plurality of memories and processors coupled through at least one feedback shift register provided from ring configured input stations
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
GB8903091D0 (en) * 1989-02-10 1989-03-30 Secr Defence Heuristic processor
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5249274A (en) * 1990-10-24 1993-09-28 Vanderbilt University Simultaneous data-driven and demand-driven computational model for dynamically configured systems

Also Published As

Publication number Publication date
DK0543860T3 (da) 1996-08-19
WO1992003802A1 (en) 1992-03-05
GB2262636A (en) 1993-06-23
JPH06506073A (ja) 1994-07-07
US5845123A (en) 1998-12-01
EP0543860B1 (en) 1996-03-06
DE69117763D1 (de) 1996-04-11
DE69117763T2 (de) 1996-10-17
GB9302100D0 (en) 1993-04-21
EP0543860A1 (en) 1993-06-02
GB9018048D0 (en) 1990-10-03
ATE135123T1 (de) 1996-03-15
GB2262636B (en) 1994-04-27

Similar Documents

Publication Publication Date Title
JP2931097B2 (ja) 並列処理アレイの動作をシミュレートするデジタルプロセッサ
EP3698313B1 (en) Image preprocessing for generalized image processing
US5313413A (en) Apparatus and method for preventing I/O bandwidth limitations in fast fourier transform processors
US5014235A (en) Convolution memory
US4959776A (en) Method and apparatus for addressing a memory by array transformations
US4922418A (en) Method for controlling propogation of data and transform through memory-linked wavefront array processor
US10984500B1 (en) Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit
US6748480B2 (en) Multi-bank, fault-tolerant, high-performance memory addressing system and method
CN111353126A (zh) 分块矩阵乘法运算系统
JPH04232562A (ja) コンピユータ装置
US3943347A (en) Data processor reorder random access memory
Schimmler et al. Instruction systolic array in image processing applications
EP3232321A1 (en) Signal processing apparatus with register file having dual two-dimensional register banks
JPH0731629B2 (ja) アドレス・ジエネレータ
US5101371A (en) Apparatus for performing a bit serial orthogonal transformation instruction
Taylor et al. An architecture for a video rate two-dimensional fast Fourier transform processor
US5119323A (en) Numerical processing of optical wavefront data
US10664241B2 (en) Memory systems including support for transposition operations and related methods and circuits
Covert A 32 point monolithic FFT processor chip
Alnuweiri A new class of optimal bounded-degree VLSI sorting networks
Pytosh et al. A new parallel 2-D FFT architecture
Tukel et al. A new architecture for Cellular Neural Network on reconfigurable hardware with an advance memory allocation method
Huang et al. Binary Image Algebra and Digital Optical Cellular Image Processors
Vixne et al. A VLSI Digital Neural Processor with Variable Word Length of Operands
Chapman et al. Design strategies for implementing systolic and wavefront arrays using OCCAM

Legal Events

Date Code Title Description
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

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

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080521

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080521

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 12

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 12

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

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 13