(57)【特許請求の範囲】
【請求項１】
Ｎ×Ｎ（Ｎは２以上の所定の正の整数である）のマトリックスエレメント及び転置の正方マトリックスにアクセスし、単一命令複数データモードで動作する装置であって、
Ｎ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、ｍ個（ｍは所定の正の整数であり、Ｎの除数である）のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、ｍ個のプロセッシングエレメントを有し、
更に、Ｎ個の単一ポートの内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、Ｎ個の単一ポートの内部メモリは、（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、ｍ個の内部メモリを有し、
更に、前記プロセッシングエレメントと前記内部メモリとの間の接続を扱うコネクション装置を有し、
前記コネクション装置は、２×（Ｎ／ｍ）クロックサイクルでマトリックスのコピー及びマトリックスのコーナーターンの実行を可能とするリードコントロール機能ユニット及びライトコントロール機能ユニットを備えている装置。
【請求項２】
前記リードコントロール機能ユニットが、第１のパスと第２のパスとのどちらかを入力から出力に選択するためのセレクタを有し、
前記第１のパスは、プロセッシングエレメントのグループの各プロセッシングエレメントから、内部メモリのグループ中の自身の内部メモリへのアクセスのための、入力側と出力側との間の直接接続を与え、前記第２のパスは、マトリックスの転置の発生のためのアクセスを与え、
前記リードコントロール機能ユニットが、更に、
縦方向メモリエレメント・サブブロック行アドレスを並列に計算する（Ｎ／ｍ）個のアドレス発生器を有し、
前記メモリエレメント・サブブロックは、ｍ個の横方向に隣接するメモリエレメントを有し、前記メモリエレメントは、ｍ個の縦方向に隣接するマトリックスエレメントを有し、
縦方向メモリエレメント・サブブロック行アドレスは、所望の縦方向位置のメモリエレメント・サブブロックにアクセスするために用いられ、
（Ｎ／ｍ）×ｍ２エレメントのスワップユニットは、選択された一のメモリエレメント・サブブロック行に属するメモリエレメント・サブブロックの（Ｎ／ｍ）個のメモリエレメント・サブブロックをそれぞれの目的の横方向位置に並列に移動させ、
（Ｎ／ｍ）個のｍ×ｍエレメントの転置ユニットが並列に動作してｍ×ｍエレメントのマトリックスの各エレメントを位置（ｘ、ｙ）から位置（ｙ、ｘ）に各々移動させる請求項１に記載の装置。
【請求項３】
前記ライトコントロール機能ユニットが、第１のパスと第２のパスを入力から出力に選択するためのセレクタを有し、前記第１のパスは、プロセッシングエレメントのグループの各プロセッシングエレメントから、内部メモリのグループ中の自身の内部メモリへのアクセスのための、入力側と出力側との間の直接接続を与え、前記第２のパスは、マトリックスの転置の発生のためのアクセスを与え、
前記ライトコントロール機能ユニットが、更に、それぞれのメモリエレメント・サブブロックの縦方向メモリエレメント・サブブロック行アドレスを並列に計算する（Ｎ／ｍ）個のアドレス発生器を有し、
縦方向メモリエレメント・サブブロック行アドレスは、プロセッシングエレメントのグループに含まれるそれぞれのプロセッシングエレメントが受信したｍ個のマトリックスエレメントからなるメモリエレメントのそれぞれを、内部メモリのグループに含まれるそれぞれの内部メモリにおける目的のメモリエレメント・サブブロック行位置に、並列に転送するために用いられるものであり、この並列転送に基づいて、（Ｎ／ｍ）クロックサイクルで、前記ライトコントロール機能ユニットによる前記内部メモリへのＮ×Ｎのマトリックスエレメントのライトが行われるものである請求項１に記載の装置。
【請求項４】
Ｎ×Ｎ（Ｎは２以上の所定の正の整数である）のマトリックスエレメント及び転置の正方マトリックスにアクセスし、単一命令複数データモードで動作する方法であって、
ｍ個（ｍは所定の正の整数であり、Ｎの除数である）のマトリックスエレメントに等しいデータ幅を各々有するＮ個のプロセッシングエレメントを、（Ｎ／ｍ）グループにグループ化し、各々の前記グループは、ｍ個のプロセッシングエレメントを有し、更に
ｍ個のマトリックスエレメントに等しいデータ幅を各々有するＮ個の単一ポートの内部メモリを、（Ｎ／ｍ）グループにグループ化し、各々の前記グループは、ｍ個の内部メモリを含み、更に、
リードコントロール機能及びライトコントロール機能によって、前記プロセッシングエレメントと内部メモリとの間の接続を行わせ、２×（Ｎ／ｍ）クロックサイクルでマトリックスのコピー及びマトリックスの転置の実行を可能とする、方法。
【請求項５】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは、（Ｎ／ｍ）個のグループにグループ化され、各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスは、
（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々の前記ｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、１つのグループを形成するｍ個の内部メモリに格納され、
前記グループの各々の内部メモリは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１つのワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、
前記リードコントロール機能ユニットは、
リードアドレス発生手段と、
スワップユニットと、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段
を含み、
Ｎ個の前記内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを、Ｎ個の前記プロセッシングエレメントの前記レジスタに格納する際に、
前記リードコントロール機能ユニットは、
前記リードアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの前記内部メモリから（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスをそれぞれ読出して前記スワップユニットに転送し、
前記スワップユニットは、前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスの内の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に位置した（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスについてはスワッピングを行わず、
前記スワップユニットからの前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスは、前記（Ｎ／ｍ）個の転置ユニットに供給し、
前記（Ｎ／ｍ）個の転置ユニットの各々は、前記スワップユニットから供給されたｍ×ｍサブマトリックスの転置されたバージョンを生成させ、
前記（Ｎ／ｍ）個の転置ユニットからの（Ｎ／ｍ）個の前記転置されたｍ×ｍサブマトリックスが、前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタにそれぞれ格納される、
操作を１サイクルで行い、
前記Ｎ個の内部メモリから前記Ｎ個のプロセッシングエレメントの前記レジスタへの前記Ｎ×Ｎ正方マトリックスの転置を伴うコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントのレジスタに格納された前記Ｎ×Ｎ正方マトリックスを、前記Ｎ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを、前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタからそれぞれ読出し、前記ライトアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリにそれぞれ書き込む、
操作を１サイクルで行い、
前記Ｎ個のプロセッシングエレメントの前記レジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスのコピーが（Ｎ／ｍ）サイクルで行われ
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれる前記Ｎ×Ｎ正方マトリックスが、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【請求項６】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、
各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納されたＮ×Ｎ正方マトリックスは、（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々のｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、１つのグループを形成するｍ個の内部メモリに格納され、
前記グループの各々の内部メモリは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１つのワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、
前記リードコントロール機能ユニットは、
リードアドレス発生手段と、
スワップユニットと、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段
を含み、
前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを前記Ｎ個のプロセッシングエレメントの前記レジスタに格納する際に、
前記リードコントロール機能ユニットは、
前記リードアドレス発生手段によってそれぞれアドレスされた（Ｎ／ｍ）グループの内部メモリから（Ｎ／ｍ）個のｍ×ｍサブマトリックスをそれぞれ読出して前記（Ｎ／ｍ）個の転置ユニットに転送し、
前記（Ｎ／ｍ）個の転置ユニットの各々は、それに供給されたｍ×ｍサブマトリックスの転置されたバージョンを発生させ、
前記（Ｎ／ｍ）個の転置ユニットからそれぞれ出力された（Ｎ／ｍ）個の転置されたｍ×ｍサブマトリックスの各々は、前記スワップユニットに供給され、
前記スワップユニットは、前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスの内の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に位置した（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスについてはスワッピングを行わず、
前記スワップユニットから出力された前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスを、前記（Ｎ／ｍ）グループの前記プロセッシングエレメントのレジスタにそれぞれ格納する、
操作を１サイクルで行い、
前記Ｎ個の内部メモリから前記Ｎ個のプロセッシングエレメントのレジスタへの前記Ｎ×Ｎ正方マトリックスのコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントの前記レジスタに格納された前記Ｎ×Ｎ正方マトリックスをＮ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個のｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタからそれぞれ読出し、
前記ライトアドレス発生手段によってそれぞれアドレスされた（Ｎ／ｍ）グループの内部メモリにそれぞれ書き込む、
操作を１サイクルで行い、
前記Ｎ個のプロセッシングエレメントの前記レジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスのコピーが（Ｎ／ｍ）サイクルで行われ、
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれる前記Ｎ×Ｎ正方マトリックスが、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【請求項７】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは、（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納されたＮ×Ｎ正方マトリックスは、（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々の前記ｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、１つのグループを形成するｍ個の前記内部メモリに格納され、
前記グループの各々の内部メモリは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１つのワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、前記ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、
前記リードコントロール機能ユニットは、
リードアドレス発生手段
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段と、
スワップユニットと、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを、前記Ｎ個のプロセッシングエレメントの前記レジスタに格納する際に、
前記リードコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記リードアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの前記内部メモリからそれぞれ読出し、前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタにそれぞれ格納する、
操作を１サイクルで行い、
前記Ｎ個の内部メモリから前記Ｎ個のプロセッシングエレメントの前記レジスタへの前記Ｎ×Ｎ正方マトリックスへのコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントの前記レジスタに格納された前記Ｎ×Ｎ正方マトリックスをＮ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを（Ｎ／ｍ）  グループのプロセッシングエレメントのレジスタからそれぞれ読出して（Ｎ／ｍ）個の転置ユニットにそれぞれ供給し、
各々の（Ｎ／ｍ）個の転置ユニットは、前記レジスタから供給されるｍ×ｍサブマトリックスの転置されたバージョンを発生させ、
（Ｎ／ｍ）個の転置ユニットからの（Ｎ／ｍ）個の転置されたｍ×ｍサブマトリックスは、スワップユニットに供給され、
前記スワップユニットは、（Ｎ／ｍ）個のｍ×ｍサブマトリックスから、各々の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に配された（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスについては、スワッピングを行わず、
前記スワップユニットからの前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを、前記ライトアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリに書き込む、
操作を、１サイクルで行い、
前記Ｎ個のプロセッシングエレメントのレジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスのコピーが（Ｎ／ｍ）サイクルで行われ、
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれた前記Ｎ×Ｎ正方マトリックスは、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【請求項８】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納されたＮ×Ｎ正方マトリックスは、（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々の前記ｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、１つのグループを形成するｍ個の内部メモリに格納され、前記グループの各々の前記内部メモリは、前記ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１つのワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、
前記リードコントロール機能ユニットは、
リードアドレス発生手段
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段と、
スワップユニットと、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを前記Ｎ個のプロセッシングエレメントの前記レジスタに格納する際に、
前記リードコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記リードアドレス発生手段によってそれぞれアドレスされた（Ｎ／ｍ）グループの内部メモリからそれぞれ読出し、
前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタにそれぞれ格納する、
操作を１サイクルで行い、
前記Ｎ個の内部メモリから前記Ｎ個のプロセッシングエレメントの前記レジスタへの前記Ｎ×Ｎ正方マトリックスへのコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントの前記レジスタに格納された前記Ｎ×Ｎ正方マトリックスを前記Ｎ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個のｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタからそれぞれ読出して前記スワップユニットに供給し、
前記スワップユニットは、前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスから、各々の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に配された前記（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスについては、スワッピングを行わず、
前記スワップユニットからの（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスは、前記（Ｎ／ｍ）個の転置ユニットにそれぞれ供給し、
前記（Ｎ／ｍ）個の転置ユニットの各々は、前記スワップユニットから供給されたｍ×ｍサブマトリックスの転置されたバージョンを生成させ、
前記（Ｎ／ｍ）個の転置ユニットからの前記（Ｎ／ｍ）個の転置されたｍ×ｍサブマトリックスは、前記ライトアドレス発生手段によってそれぞれアドレスされた（Ｎ／ｍ）グループの前記内部メモリにそれぞれ書き込む、
操作を１サイクルで行い、
前記Ｎ個のプロセッシングエレメントのレジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスのコピーが（Ｎ／ｍ）サイクルで行われ、
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれた前記Ｎ×Ｎ正方マトリックスは、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【請求項９】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは、（Ｎ／ｍ）グループにグループ化され、
各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納されたＮ×Ｎ正方マトリックスは、（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々の前記ｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、一のグループを形成するｍ個の前記内部メモリに格納され、
前記グループの各々の前記内部メモリは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを一ワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、前記ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、
前記リードコントロール機能ユニットは、
リードアドレス発生手段と、
スワップユニットと、
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段と、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記リードコントロール機能ユニットは、前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを前記Ｎ個のプロセッシングエレメントの前記レジスタに格納する際に、
（Ｎ／ｍ）個のｍ×ｍサブマトリックスを前記リードアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリからそれぞれ読出して前記スワップユニットに転送し、
前記スワップユニットは、前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスから、各々の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に配された前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスについては、スワッピングを行わず、
前記スワップユニットからの（Ｎ／ｍ）個のｍ×ｍサブマトリックスを、前記（Ｎ／ｍ）グループのプロセッシングユニットの前記レジスタにそれぞれ格納する、
操作を１サイクルで行い、
前記Ｎ個の内部メモリからの前記Ｎ×Ｎ正方マトリックスの前記Ｎ個のプロセッシングエレメントの前記レジスタへのコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントのレジスタに格納された前記Ｎ×Ｎ正方マトリックスを前記Ｎ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個のｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタからそれぞれ読出して前記（Ｎ／ｍ）個の転置ユニットに供給し、
前記（Ｎ／ｍ）個の転置ユニットの各々は、前記レジスタから供給される前記ｍ×ｍサブマトリックスの転置されたバージョンを発生させ、
前記（Ｎ／ｍ）個の転置ユニットからの（Ｎ／ｍ）個の転置されたｍ×ｍサブマトリックスを、前記ライトアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリにそれぞれ書き込む、
操作を１サイクルで行い、
前記Ｎ個のプロセッシングエレメントのレジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスの転置を伴うコピーが（Ｎ／ｍ）サイクルで行われ、
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれた前記Ｎ×Ｎ正方マトリックスは、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【請求項１０】
単一命令複数データモードで動作してＮ×Ｎ正方マトリックスにアクセスする装置であって、
Ｎ個の内部メモリを有し、各々の前記内部メモリは、ｍ個のマトリックスエレメントに等しいデータ幅のデータを入出力し、ｍは所定の正の整数であり、Ｎの除数であり、
前記Ｎ個の内部メモリは、（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、ｍ個の前記内部メモリを有し、
前記Ｎ個の内部メモリに格納されたＮ×Ｎ正方マトリックスは、（Ｎ／ｍ）×（Ｎ／ｍ）個のｍ×ｍサブマトリックスに区画して扱われ、
各々の前記ｍ×ｍサブマトリックスは、ｍ行ｍ列のマトリックスエレメントを有し、１つのグループを形成するｍ個の内部メモリに格納され、前記グループの各々の内部メモリは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、
更に、Ｎ個のプロセッシングエレメントを有し、各々の前記プロセッシングエレメントは、ｍ個のマトリックスエレメントに等しいデータ幅を有し、
前記Ｎ個のプロセッシングエレメントは、（Ｎ／ｍ）グループにグループ化され、各々の前記グループは、前記内部メモリのグループに関連して、ｍ個のプロセッシングエレメントを有し、
各々の前記プロセッシングエレメントは、（Ｎ／ｍ）個のレジスタを有するレジスタファイルを含み、各々の前記レジスタは、ｍ×ｍサブマトリックスの対応する列のｍ行のマトリックスエレメントを１ワードとして格納し、更に、
前記Ｎ個のプロセッシングエレメントと前記Ｎ個の内部メモリとの間に配されたコネクション装置を有し、
前記コネクション装置は、リードコントロール機能ユニット及びライトコントロール機能ユニットを含み、前記リードコントロール機能ユニットは、
リードアドレス発生手段と、
（Ｎ／ｍ）個の転置ユニットと、
を含み、
前記ライトコントロール機能ユニットは、
ライトアドレス発生手段と、
スワップユニットと、
を含み、
前記Ｎ個の内部メモリに格納された前記Ｎ×Ｎ正方マトリックスを読出して前記Ｎ×Ｎ正方マトリックスを前記Ｎ個のプロセッシングエレメントの前記レジスタに格納する際に、
前記リードコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記リードアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリからそれぞれ読出して前記（Ｎ／ｍ）個の転置ユニットに転送し、
前記（Ｎ／ｍ）個の転置ユニットの各々は、それに供給された前記ｍ×ｍサブマトリックスの転置されたバージョンを発生させ、
前記（Ｎ／ｍ）個の転置ユニットからの前記（Ｎ／ｍ）個の転置されたｍ×ｍサブマトリックスを、前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタにそれぞれ格納する、
操作を１サイクルで行わせ、
前記Ｎ個の内部メモリからの前記Ｎ×Ｎ正方マトリックスの前記Ｎ個のプロセッシングエレメントの前記レジスタへのコピーが（Ｎ／ｍ）サイクルで行われ、
前記Ｎ個のプロセッシングエレメントの前記レジスタに格納された前記Ｎ×Ｎ正方マトリックスをＮ個の内部メモリに書き込む際に、
前記ライトコントロール機能ユニットは、
（Ｎ／ｍ）個の前記ｍ×ｍサブマトリックスを前記（Ｎ／ｍ）グループのプロセッシングエレメントの前記レジスタからそれぞれ読出して前記スワップユニットに供給し、
前記スワップユニットは、前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスから、各々の所定の（Ｎ／ｍ）／２対の各対の間のスワッピングを行い、
前記スワップユニットは、対角方向に配された前記（Ｎ／ｍ）個のｍ×ｍサブマトリックスについては、スワッピングを行わず、
前記スワップユニットからの（Ｎ／ｍ）個のｍ×ｍサブマトリックスを、前記ライトアドレス発生手段によってそれぞれアドレスされた前記（Ｎ／ｍ）グループの内部メモリにそれぞれ供給する、
操作を１サイクルで行わせ、
前記Ｎ個のプロセッシングエレメントの前記レジスタから前記Ｎ個の内部メモリへの前記Ｎ×Ｎ正方マトリックスへのコピーが（Ｎ／ｍ）サイクルで行われ、
前記ライトコントロール機能ユニットによって前記Ｎ個の内部メモリに書き込まれた前記Ｎ×Ｎ正方マトリックスは、前記Ｎ個の内部メモリに格納されていた元の前記Ｎ×Ｎ正方マトリックスのコーナーターン済みのバージョンである装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤプロセッサアレイに関する。より詳細には、本発明は、複数の非隣接内部メモリ（ｉｎｔｅｒｎａｌ  ｍｅｍｏｒｙ、ＩＭＥＭ）ユニットを含む関連する内部メモリ（ＩＭＥＭ）ユニットにプロセッシング・エレメント（ＰＥ）から時間と面積の効率良いアクセスを可能とするように好適に適合されたコネクション装置に関する。
【背景技術】
【０００２】
シングル・インストラクション・マルチプル・データ（ＳＩＭＤ）方式で動作する多くのプロセッサがこれまでに提案されている（特許文献１参照）。この種のプロセッサにおいて、あるプロセッシング・エレメント（ＰＥ）から、別のプロセッシング・エレメント（ＰＥ）の内部メモリ（ＩＭＥＭ）に格納されたデータへのアクセスを支持するために、種々の形式のインターＰＥデータ・アクセスが考えられている。図１は、ＳＩＭＤプロセッサアレイの典型的な形態を示す図である。
【０００３】
あるＰＥ１００のＩＭＥＭ１０１、ここでは例えばＰＥ００、に格納されたデータを、別のＰＥ、ここでは例えばＰＥ０１、において使用されるように供与する一つのやり方は、特許文献２に記載されているように、ＰＥ００のＩＭＥＭからＰＥ００にデータをロードした後、インターＰＥ通信チャネル１０２を介して（時計方向に）、又はインターＰＥ通信チャネル１０３を介して（反時計方向に）、データをＰＥ００からＰＥ０１に移動するものである。特許文献２には、ＰＥ間の通信チャネルとして用いられているリングバスシステムを介して、複数のＰＥを相互に接続したシステムが開示されている。このシステムによれば、２つの隣接ＰＥ間においてデータを交換するための廉価で高効率の方法が可能となる。それは、単一のリングバス、又は、双方向転送の場合には、２つのリングバスが必要なだけであり、２つの隣接ＰＥ間において、１クロックサイクルでデータを交換できることによる。
【０００４】
隣接ＰＥからＩＭＥＭデータにアクセスすることを可能にする別のやり方が、特許文献３に開示されている。図２は、特許文献３の構成を例示している。図２に示すように、隣接ＰＥのＩＭＥＭからのデータは、ダイレクトコネクション２００を介して、８ＰＥ形態のＰＥに、ルーチングされる。マルチプレクサ２０１は、ＩＭＥＭデータの中から各ＰＥによってアクセスされるデータを選択する。この方法は、余分のマルチプレクサ２０１及びＰＥと隣接ＰＥのＩＭＥＭ間の接続とを必要とするだけなので、隣接ＩＭＥＭデータにアクセスするための手早で廉価な方法である。
【０００５】
関連技術についての以下の分析は、本発明によって与えられる。
２つの関連技術の構成は、隣接データについては、効率的に、また限定された面積オーバーヘッドで動作するが、隣接していないＰＥ間でデータを交換する場合に、難点がある。特許文献２においては、面積は増大しないが、通信チャネル上を転送されるデータのクロックサイクル数は、データ交換に係るＰＥ間の距離に比例して増大する。従って、この解決策は、遠く離れたＰＥ間のデータの転送にとってはもはや高速ではない。例えば、相互に相反する２つのリングバスを介して接続された１６ＰＥのシステムの場合、どれかのＩＭＥＭとＰＥとの間の通信を確保するには、最大で８クロックサイクルを必要とする。１６×１６エレメントのマトリックス（マトリックス）のコーナーターンの場合、ＩＭＥＭに読み書きするための３２クロックサイクルに加えて６４クロックサイクルの転送遅延が発生するため、全体で９６クロックサイクルが結果する。
【０００６】
特許文献３では、遅延は一定に保つことができる。しかし、コネクション・クロスバーの面積は、隣接ＰＥ−ＩＭＥＭ接続クロスバーの増大と共に増大する。そのため、各ＰＥから各ＩＭＥＭへのアクセスが支持可能となる一般的な場合では、非特許文献１に開示されているように、マルチプロセッサシステムオンチップ内のインターＰＥ接続に、また特許文献４に開示されているように、レジスタ・リードポート接続の内部に、それぞれ用いられているフルクロスバー接続が必要となる。これは廉価な解決策とは言えない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第３５３７０７４号明細書
【特許文献２】国際公開第２００８／１０８００５号
【特許文献３】米国特許出願公開第２００８／３２０２７３号明細書
【特許文献４】米国特許出願公開第２００５／１０８５０３号明細書
【非特許文献】
【０００８】
【非特許文献１】M.Z. Urfianto, T. Isshiki, A.U. Khan, D. Li, H. Kunieda, "A Multiprocessor System on Chip Architecture with Enhanced Compiler Support and Efficient Interconnect," in IP/SoC 2006, Grenoble, France, Dec. 2006
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した本発明による関連技術の分析は、概略して、次の通りである。
転置マトリックスの時間と面積の効率の良い生成のために非隣接ＩＭＥＭユニットからのデータにアクセスしコーナーターンを行わせるための、図１について説明した第１の関連技術では、インターＰＥ通信チャネル上にデータを転送する際に大きな転送遅延が発生する。
【００１０】
転置マトリックスの時間と面積の効率の良い生成のために非隣接ＩＭＥＭユニットからのデータにアクセスしコーナーターンを行わせるための、図２について説明した第２の関連技術では、各ＰＥと各ＩＭＥＭの間のフルクロスバー接続に、大きな面積が必要となる。
【００１１】
従って、本発明の目的は、ＳＩＭＤプロセッサアレイにおいて各ＰＥからＩＭＥＭに時間と面積の効率良いアクセスを可能とする装置及び方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の１つの側面によれば、各ＰＥから、選択されたＩＭＥＭユニットへのアクセスのみがなされるコネクション装置が提供される。この選択は、マトリックスを分散された形態で格納しているＩＭＥＭユニットに直接アクセスするために、自身のＩＭＥＭユニットのみに、又は、転置マトリックスを生成してコーナーターンを行うために必要とされるＩＭＥＭユニットに、時間と面積の効率良いアクセスを可能とするようになされる。
【発明の効果】
【００１３】
本発明によれば、フルクロスバー接続の代りに、各々のプロセッシング・エレメントから、選択されたＩＭＥＭユニットへの接続のみが与えられる。これにより必要なセル及び正味の面積は約８５％節減される。ＩＭＥＭ接続は、複数のＩＭＥＭユニット内に分散されて格納されたマトリックスに直接アクセスするために自身の内部メモリに、又は、転置マトリックスを生成してコーナーターンを行うために必要とされるＩＭＥＭユニットに、時間と面積の効率良いアクセスすることを可能とするように選択される。
本発明の他の特徴及び利点は、添付図面を参照してなされる以下の詳細な説明によって、当業者には自ずと明らかとされるであろう。添付図面には、本発明を実施する上の最良の形態と考えられる実施態様のみが、単に例示的に示されている。本発明は、理解されるように、他の実施態様も含み、これらの実施態様のいくつかの詳細な点については、本発明の範囲内で更なる変更が可能である。従って、図面及び説明は、本質的に例であり、限定的ではない。
【図面の簡単な説明】
【００１４】
【図１】図１は先行技術文献２のＰＥからＩＭＥＭへの相互接続の構成を示す図である。
【図２】図２は先行技術文献３のＰＥからＩＭＥＭへの相互接続の構成を示す図である。
【図３】図３は本発明の一実施態様の構成を示す図である。
【図４】図４（Ａ）−図４（Ｄ）は２次元変換の別々の実行を示す図である。
【図５】図５はコネクション装置の構成を示す図である。
【図６】図６はＮ＝１６、ｍ＝４についてリードコントロール機能ユニットの構成を示す図である。
【図７】図７はリードコントロール機能ユニットの入力出力接続の構成を示す図である。
【図８】図８はセレクタの構成を示す図である。
【図９】図９はアドレスジェネレータ０の構成を示す図である。
【図１０】図１０はアドレスジェネレータ１の構成を示す図である。
【図１１】図１１はアドレスジェネレータ２の構成を示す図である。
【図１２】図１２はアドレスジェネレータ３の構成を示す図である。
【図１３】図１３は４×１６バイトスワップユニットの構成を示す図である。
【図１４】図１４は４×４バイト転置ユニットの構成を示す図である。
【図１５】図１５はライトコントロール機能ユニットの構成を示す図である。
【図１６】図１６はライトコントロール機能ユニットの入力出力接続を示す図である。
【図１７】図１７はリードコントロール機能ユニットの作用を示すフローチャートである。
【図１８】図１８は各々ｍ＝４マトリックスエレメント（バイト）の複数のメモリエレメントにグループ化されたＮ＝１６×Ｎ個のマトリックスエレメント（バイト）によるマクロブロックの小分割と、メモリエレメントサブブロックとメモリエレメントサブブロック行を示す。
【図１９】図１９（Ａ）−図１９（Ｄ）はレベル２のマトリックスをレベル１の４個のマトリックスに小分割することを示す。
【図２０】図２０（Ａ）−図２０（Ｄ）は部分アドレスオフセット値を各レベル２の各ブロックに割当てることを示す。
【図２１】図２１は各レベルからの各メモリエレメントサブブロックのためのアドレスオフセット値を有するアドレスオフセットマトリックスの発生を示す。
【図２２】図２２は各メモリエレメントサブブロックの正しい縦方向位置をもってＩＭＥＭからロードされたマトリックスを示す。
【図２３】図２３は対ごとのスワッピングの後の各メモリエレメントサブブロックの正しい横方向及び縦方向位置を有するマトリックスを示す。
【図２４】図２４はメモリエレメントサブブロックのコーナーターンの例を示す。
【図２５】図２５（Ａ）−図２５（Ｄ）はＮ／ｍ（＝４）のリード指示の実行後Ｎ／ｍ（＝４）個のＰＥレジスタに格納されるマトリックスを示す。
【図２６】図２６はライトコントロール機能ユニットの作用を示すフローチャートである。
【図２７】図２７は４回のライト転送指示の後にＩＭＥＭに格納されるマトリックスデータを示す。
【図２８】図２８はデータビット幅ｍ（＝４）ピクセルでＮ（＝１６）×Ｎピクセルのマトリックスのコーナーターンを行わせるための制御信号の設定を示す。
【図２９】図２９はクロックサイクル１リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３０】図３０はクロックサイクル２リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３１】図３１はクロックサイクル３リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３２】図３２はクロックサイクル４リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３３】図３３はクロックサイクル１ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３４】図３４はクロックサイクル２ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３５】図３５はクロックサイクル３ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３６】図３６はクロックサイクル４ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３７】図３７はクロックサイクル１リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３８】図３８はクロックサイクル２リード操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図３９】図３９はクロックサイクル１ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図４０】図４０はクロックサイクル２ライト操作においてコネクション装置により８×８マトリックスを転置するマトリックス転置処理を示す。
【図４１】図４１はクロックサイクル１リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４２】図４２はクロックサイクル２リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４３】図４３はクロックサイクル３リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４４】図４４はクロックサイクル４リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４５】図４５はクロックサイクル５リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４６】図４６はクロックサイクル６リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４７】図４７はクロックサイクル７リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４８】図４８はクロックサイクル８リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図４９】図４９はクロックサイクル１ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５０】図５０はクロックサイクル２ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５１】図５１はクロックサイクル３ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５２】図５２はクロックサイクル４ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５３】図５３はクロックサイクル５ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５４】図５４はクロックサイクル６ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５５】図５５はクロックサイクル７ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５６】図５６はクロックサイクル８ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５７】図５７はクロックサイクル１リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５８】図５８はクロックサイクル２リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図５９】図５９はクロックサイクル３リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６０】図６０はクロックサイクル４リード操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６１】図６１はクロックサイクル１ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６２】図６２はクロックサイクル２ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６３】図６３はクロックサイクル３ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６４】図６４はクロックサイクル４ライト操作においてコネクション装置により１６×１６マトリックスを転置するマトリックス転置処理を示す。
【図６５】図６５はコネクション装置のリードコントロール機能ユニットの別の構成例を示す。
【図６６】図６６はコネクション装置のライトコントロール機能ユニットの別の構成例を示す。
【図６７】図６７はコネクション装置のリードコントロール機能ユニットの更に別の構成例を示す。
【図６８】図６８はコネクション装置のライトコントロール機能ユニットの更に別の構成例を示す。
【図６９】図６９はコネクション装置のリードコントロール機能ユニットの更に別の構成例を示す。
【図７０】図７０はコネクション装置のライトコントロール機能ユニットの更に別の構成例を示す。
【図７１】図７１はコネクション装置のリードコントロール機能ユニットの更に別の構成例を示す。
【図７２】図７２はコネクション装置のライトコントロール機能ユニットの更に別の構成例を示す。
【発明を実施するための形態】
【００１５】
本発明の好ましい態様を図面について説明する。図１を参照して説明した第１の関連技術と比較して、本発明による、時間と面積の効率良い転置マトリックスを発生させて非隣接ＩＭＥＭユニットからのデータにアクセスしてコーナーターンを速やかに実行する仕方は、面積要求をごくわずか増大させるだけで、転置マトリックスを発生させるのに要する時間を著しく減少させる。
【００１６】
また、図２を参照して説明した第２の関連技術と比較して、本発明による、時間と面積の効率良い転置マトリックスを発生させて非隣接ＩＭＥＭユニットからのデータにアクセスしてコーナーターンを速やかに実行する仕方は、所要の時間をごくわずか増大させるだけで、転置マトリックスを発生させるための面積要求を著しく減少させる。
【００１７】
ＰＥと選択されたＩＭＥＭユニットの間のコネクション装置を介したアクセスを可能とすることによって、第１の関連技術と比較して、所要のクロックサイクル数を少なくし、第２の関連技術と比較して所要の面積要求を減少させることが可能となる。
【００１８】
本発明の例示的な実施態様によるコネクション装置によれば、ＩＭＥＭユニットに時間と面積の効率良いアクセスを可能として、ＩＭＥＭユニットに分散して格納されているＮ×Ｎピクセルマトリックスへの直接アクセスを提供すると共に、コーナーターンを実行するためのＮ×Ｎ転置ピクセルマトリックスの発生に必要なＩＭＥＭユニットにアクセスすることが可能となる。
【００１９】
例示的一実施態様において用いられるコネクション装置と特定のアルゴリズムのための方法について以下に説明する。
【００２０】
図３は、本発明の第１の例示的な実施態様の構成を示す図である。図３には、ＰＥとＩＭＥＭの相互接続が示されている。図３を参照すると、１６個のＰＥ３００、１６個のＩＭＥＭ３０１、ＰＥ３００のアレイとＩＭＥＭ３０１のアレイとの間に配されたコネクション装置３０２、並びに、コネクション装置３０２を制御するコントロール装置３０３が設けられている。アルゴリズムの一例として、Ｎ＝１６バイト×Ｎ＝１６バイトのマトリックスのエレメントの位置（ｘ、ｙ）を（ｙ、ｘ）に変更するマトリックスのコーナーターンが、ｍ＝４バイトのデータビット幅について実行される。
【００２１】
この種のマトリックスのコーナーターンは、画像及びビデオ処理アルゴリズムにおいて、例えばＪＰＥＧ、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６１、Ｈ．２６３、Ｈ２６４等において極めて度々行われる。例えばコーナーターンは、図４Ａ−４Ｄに示すように、横方向に第１の変換ステップの出力に対し転置操作を行うことによってマクロブロックに対して別々の仕方で２次元フーリエ変換（ＦＦＴ）又は離散コサイン変換（ＤＣＴ）処理を行う場合に実行される。図４（Ａ）−図４（Ｄ）に、マクロブロック４０２を示し、このマクロブロックは、１６×１６ピクセルデータ４００から成り、１６個のサブブロック４０１に分割される。垂直エッジに水平フィルタ４０３をかけた後、図４（Ｃ）の左上の入力サブブロック４０４のコーナーターン４０５を実行する。最後に水平エッジに垂直フィルタ４０７をかけ、図４（Ｄ）に示した２次元フィルタリングを実行するための出力ピクセル値４０８を得る。コーナーターンのための転置機能を備えたコネクション装置について以下に詳細に説明する。
【００２２】
図５は、第１の実施態様によるコネクション装置の構成を示す図である。図５のコネクション装置５００は、図３のコネクション装置３０２に対応している。図５を参照すると、コネクション装置５００は、リードコントロール機能ユニット５０１とライトコントロール機能ユニット５０２とを備えている。入力データ信号及び出力データデータ信号は、一側でＩＭＥＭ群に、他側でＰＥ群に、それぞれ接続されている。適切に機能を選択し実行するには、多くの追加の制御信号が必要となる。リードコントロール機能ユニット５０１では、ＩＭＥＭ群からのデータパスは、２つのパスに、即ちパス０とパス１とに分けられる。第１のパス（パス０）は、セレクタ５０５の第１入力に接続される。第２のパス（パス１）はリード変換ユニット（Ｒ＿ＴＲＡＮＳ）５０６を有し、その出力は、セレクタ５０５の第２入力に接続される。セレクタ５０５により選択されたパス上のデータはＰＥ群に与えられる。
【００２３】
ライトコントロール機能ユニット５０２では、ＰＥ群からのデータパスは、２つのパスに、即ちパス０とパス１とに分けられる。第１のパス（パス０）は、セレクタ５０９の第１入力に接続される。第２のパス（パス１）は、ライト変換ユニット（Ｗ＿ＴＲＡＮＳ）５１０を有し、その出力は、セレクタ５０９の第２入力に接続される。セレクタ５０９により選択されたパス上のデータはＩＭＥＭ群に与えられる。リードコントロール機能ユニット５０１の第１のパス（パス０）及びライトコントロール機能ユニット５０２の第１のパス（パス０）は、入力側と出力側との間の直接接続を与え、各ＰＥと自身のＩＭＥＭとの間の接続を可能とする。リードコントロール機能ユニット５０１の第２のパス（パス１）に配されたリード変換ユニット（Ｒ＿ＴＲＡＮＳ）５０６と、ライトコントロール機能ユニット５０２の第２のパス（パス１）に配されたライト変換ユニット（Ｗ＿ＴＲＡＮＳ）５１０とは、以下に詳細に説明するように、必要なデータ位置を変更して転置マトリックスを形成する働きをする。
【００２４】
図６は、リードコントロール機能ユニットの構成を示すブロック図である。マトリックスのエレメントの数Ｎは１６、一のメモリエレメントＩＭＥＭに格納されたマトリックスのエレメントの数は４である。リードコントロール機能ユニットは、図７に示した入力及び出力の接続を有している。
【００２５】
入力メモリリードベースアドレスＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓは、ＩＭＥＭリードアドレスを計算するために用いられる。２ビットカウンタ値、即ちカウンタユニット（３ビットカウンタ）６００によって発生させた下位２ビットと、インバータ６０４によって発生させたその反転値は、アドレスジェネレータ（アドレス発生器）６０３の内部でのＩＭＥＭリード（Ｒｅａｄ）アドレスの計算と内部制御のためのオフセットとして用いられる。３ビットカウンタ６００の下位２ビットの値は、ＣＮＴ［１：０］（信号名）とも呼ばれる（図７参照）。アドレスジェネレータ６０３からＩＭＥＭリードアドレスへの出力アドレスはＩＭＥＭデータの読出しに用いられる。ＩＭＥＭからのリードデータは、リードコントロール機能ユニット内の処理ステージを通過した後、ＰＥレジスタファイルＰＥ−ＲＦ６０８にライト（Ｗｒｉｔｅ）データとして転送され、３ビットカウンタ６００の下位２ビットによって指定されるアドレス６０７に格納される。なお、この実施態様において、単純化のため、ＩＭＥＭユニットは、それからの読出し（リード）において、追加遅延を生じさせないので、アドレスが供与された同じクロックサイクルにおいてデータが読出される。
【００２６】
図３においてコントロール装置３０３から供与された信号ＰＡＴＨは、リードコントロール機能ユニット内の処理を制御するために用いられる。１６個の内部メモリ（ＩＭＥＭ０−ＩＭＥＭ  Ｆ）の４アドレスを計算した後、アドレスは、セレクタ６０１を経て内部メモリ（ＩＭＥＭ０−ＩＭＥＭ  Ｆ）６０２に転送され、４×１６バイト（４×４×４バイト）のデータワードは、１６個の内部メモリ（ＩＭＥＭ０〜ＩＭＥＭ  Ｆ）によって受信される。４×１６バイトのデータワードは、４×１６バイトスワップユニット６０５に転送され、そこで、メモリエレメントサブブロックが横方向に相互に入れ替えられる。この実施態様では、一サブブロックは、４×４サブマトリックス（サブマトリックス）に対応し、一マトリックスエレメントのサイズは１バイトである。
【００２７】
より詳細には、ＩＭＥＭ０−３からの４×４バイトのリードデータは、第１の４×４サブマトリックスに対応し、ＩＭＥＭ４−７からの４×４バイトのリードデータは、第２の４×４サブマトリックスに対応し、ＩＭＥＭ８−Ｂからの４×４バイトのリードデータは、第３の４×４サブマトリックスに対応し、ＩＭＥＭＢ−Ｆからの４×４バイトのリードデータは、第４の４×４サブマトリックスに対応する。第１から第４の４×４サブマトリックスは、４×１６バイトスワップユニット６０５に供給され、第１から第４の４×４サブマトリックスが各々対角エレメントを形成しない限り、各所定対の４×４サブマトリックスの間にスワッピングが行われる。即ち、４×１６バイトスワップユニット６０５は、対角エレメントを形成する第１から第４の４×４サブマトリックスをスワッピングなしで通過させる。
【００２８】
４×１６バイトスワップユニット６０５から出力される４個の４×４サブマトリックス（サブマトリックス）は、４個の４×４バイトの転置ユニット６０６にそれぞれ供給される。各々の４×４バイトの転置ユニット６０６は、４×４サブマトリックスの転置を実行する。各々の４×４バイトの転置ユニット６０６では、各々のサブマトリックス即ち１６バイトのデータワードが、縦幅４バイトの４個の横方向メモリエレメントとして整えられた後、各バイトの位置を（ｘ、ｙ）から（ｙ、ｘ）に転置する。リードコントロール機能ユニットの４×１６バイトスワップユニット６０５と４×４バイトの転置ユニット６０６において行われる上述のスワップ及び転置の各操作は、図５７から図６１を参照して、後にクロックサイクルベースで詳述する。
【００２９】
図８は、ＩＭＥＭ入力アドレスのセレクタを示す図である。図８のこのセレクタは、図６のセレクタ６０１と図１５について後述するセレクタ１４０１を形成する。図６の各セレクタ６０１は、リードコントロール機能ユニットからのＲｅａｄ＿ａｄｄｒｅｓｓとライトコントロール機能ユニットからのＷｒｉｔｅ＿ａｄｄｒｅｓｓとを受け（これは図６には示してないが図１５を参照して後に説明する）Ｒｅａｄ＿ａｄｄｒｅｓｓとＷｒｉｔｅ＿ａｄｄｒｅｓｓとの一方を選択し、選択されたアドレスとリード／ライト制御信号Ｒ／Ｗとを対応の群のＩＭＥＭに供給する。図８を参照すると、セレクタ７０３を介した選択は、３ビットカウンタユニットＣＮＴ［２］７０２の上位ビット（リードに対しては“０”、ライトに対しては“１”とし得る）によって定まる移送方向に依存して行われる。リードの場合はリードコントロール機能ユニットからのアドレス７００が使用され、そうでなければ、ライトコントロール機能ユニットからのアドレス７０１が使用される。
【００３０】
図９に、図６のアドレスジェネレータ０（６０３）に対応するアドレスジェネレータ０（８００）の構成を示す。図９を参照すると、アドレスジェネレータ０において、出力アドレスは、メモリベースアドレス（（Ｎ−２）ビット）とカウンタの下位２ビットＣＮＴ［１］、ＣＮＴ［０］とを組合せることによって発生させる。
【００３１】
図１０に、図６のアドレスジェネレータ１に対応するアドレスジェネレータ１（９００）の構成を示す。図１０を参照すると、アドレスジェネレータ１において、出力アドレス（Ｎビット）は、メモリベースアドレス（（Ｎ−２）ビット）と、ビット１（ＣＮＴ［１］）と、信号ＰＡＴＨに依存してセレクタ９０１によって選択されるビット０（ＣＮＴ［０］）と反転ビット０（ＣＮＴ［０］）のどちらか１つを組合せることによって発生させる。
【００３２】
図１１に、図６のアドレスジェネレータ２（６０３）に対応するアドレスジェネレータ２（１０００）の構成を示す。図１１を参照すると、アドレスジェネレータ２において、出力アドレス（Ｎビット）は、メモリベースアドレス（（Ｎ−２）ビット）と、信号ＰＡＴＨに依存してセレクタ１００１によって選択された、ビット１（ＣＮＴ［１］）と反転ビット１（Ｉｎｖ（ＣＮＴ［１］））の内の１つと、ビット１（ＣＮＴ［０］）を組合せることによって発生させる。
【００３３】
図１２に、図６のアドレスジェネレータ３（６０３）に対応するアドレスジェネレータ３（１１００）の構成を示す。図１２を参照すると、アドレスジェネレータ３において、出力アドレス（Ｎビット）は、メモリベースアドレス（（Ｎ−２）ビット）と、信号ＰＡＴＨに依存してセレクタ１１０１によって選択された、ビット１（ＣＮＴ［１］）と反転ビット１（Ｉｎｖ（ＣＮＴ［１］））の内の１つと、信号ＰＡＴＨに依存してセレクタ１１０２によって選択された、ビット０（ＣＮＴ［０］）と反転ビット０（Ｉｎｖ（ＣＮＴ［０］））の内の１つと、を組合せることによって発生させる。
【００３４】
図１３に、４×１６バイトスワップユニット１２００の構成を示し、このユニットは、ＩＭＥＭからの４×１６バイトのリードデータと、カウンタの下位２ビット値ＣＮＴ［０］、ＣＮＴ［１］をその入力側に受ける。スワップユニットの４×１６バイトの出力データは、マルチプレクサ１２０１、１２０２の２ステージを通過することによって発生させる。第１のマルチプレクサステージ１２０１では、第１及び第２の１６バイトのデータ信号は、２ビットカウンタ値（ＣＮＴ［１：０］）のビット０（ＣＮＴ［０］）に依存して、出力側にスルーで導かれるか、又は相互の位置が入れ替えられる。第３及び第４の１６バイトのデータ信号についても同様である。
【００３５】
第２のマルチプレクサステージ１２０２では、第１及び第３の１６バイトのデータ信号は、２ビットカウンタ値（ＣＮＴ［１：０］）のビット１（ＣＮＴ［１］）に依存して、出力側にスルーで導かれるか、又は相互の位置が入れ替えられる。第２及び第４の１６バイトのデータ信号についても同様である。
【００３６】
より詳しくは、ＩＭＥＭ０−３からの４×４バイトデータ及びＩＭＥＭ４−７からの４×４バイトデータは、第１のセレクタの０−入力及び１−入力にそれぞれ供給されると共に、マルチプレクサステージ１２０１の第２のセレクタの１−入力及び０−入力にそれぞれ供給される。ＩＭＥＭ８−Ｂからの４×４バイトデータ及びＩＭＥＭＣ−Ｆからの４×４バイトデータは、第３のセレクタの０−入力及び１−入力にそれぞれ供給されると共に、マルチプレクサステージ１２０１の第４のセレクタの１−入力及び０−入力にそれぞれ供給される。マルチプレクサステージ１２０１の第１〜第４のセレクタは、ＣＮＴ［０］が“０”のときその０−入力に供給される出力データを選択及び出力し、ＣＮＴ［０］が“１”のときその１−入力に供給される出力データを選択及び出力する。
【００３７】
マルチプレクサステージ１２０１の第１及び第３のセレクタの出力は、マルチプレクサステージ１２０２の第１のセレクタの０−入力及び１−入力にそれぞれ供給される。マルチプレクサステージ１２０１の第２及び第４のセレクタの出力は、マルチプレクサステージ１２０２の第２のセレクタの０−入力及び１−入力にそれぞれ供給される。マルチプレクサステージ１２０１の第３及び第１のセレクタの出力は、マルチプレクサステージ１２０２の第３のセレクタの０−入力及び１−入力にそれぞれ供給される。マルチプレクサステージ１２０１の第４及び第２のセレクタの出力は、マルチプレクサステージ１２０２の第４のセレクタの０−入力及び１−入力にそれぞれ供給される。マルチプレクサステージ１２０２の第１から第４のセレクタは、ＣＮＴ［１］が“０”のとき、その０−入力に供給されるデータを選択及び出力し、ＣＮＴ［１］が“１”のとき、その１−入力に供給されるデータを選択及び出力する。マルチプレクサステージ１２０２の第１のセレクタから出力される４×４バイトデータは、ＰＥ０−３の４×４バイトの転置ユニットに供給される。マルチプレクサステージ１２０２の第２のセレクタから出力される４×４バイトデータは、ＰＥ４−７の４×４バイトの転置ユニットに供給される。マルチプレクサステージ１２０２の第３のセレクタから出力される４×４バイトデータは、ＰＥ８−Ｂの４×４バイトの転置ユニットに供給される。マルチプレクサステージ１２０２の第４のセレクタから出力される４×４バイトデータは、ＰＥＣ−Ｆの４×４バイトの転置ユニットに供給される。
【００３８】
ＣＮＴ［１：０］＝“００”のとき、４×１６バイトスワップユニット１２００は、ＩＭＥＭ０−３からの４×４バイトのデータ、ＩＭＥＭ４−７からの４×４バイトのデータ、ＩＭＥＭ８−Ｂからの４×４バイトのデータ、及び、ＩＭＥＭＣ−Ｆからの４×４バイトのデータを、この順序で、スワッピングなしに出力する。
【００３９】
ＣＮＴ［１：０］＝“０１”のとき、４×１６バイトスワップユニット１２００は、ＩＭＥＭ４−７からの４×４バイトのデータ、ＩＭＥＭ０−３からの４×４バイトのデータ、ＩＭＥＭＣ−Ｆからの４×４バイトのデータ、及び、ＩＭＥＭ８−Ｂからの４×４バイトのデータを、この順序で出力する。この場合、ＩＭＥＭ０−３からの４×４バイトのデータ、及び、ＩＭＥＭ４−７からの４×４バイトのデータは、相互にスワッピングされ、ＩＭＥＭ８−Ｂからの４×４バイトのデータ、及び、ＩＭＥＭＣ−Ｆからの４×４バイトのデータは、相互にスワッピングされる。
【００４０】
ＣＮＴ［１：０］＝“１０”のとき、４×１６バイトスワップユニット１２００は、ＩＭＥＭ８−Ｂからの４×４バイトのデータ、ＩＭＥＭＣ−Ｆからの４×４バイトのデータ、ＩＭＥＭ０−３からの４×４バイトのデータ、及び、ＩＭＥＭ４−７からの４×４バイトのデータを、この順序で出力する。この場合、ＩＭＥＭ０−３からの４×４バイトのデータ、及び、ＩＭＥＭ８−Ｂからの４×４バイトのデータは、相互にスワッピングされ、ＩＭＥＭ４−７からの４×４バイトのデータ、及び、ＩＭＥＭＣ−Ｆからの４×４バイトのデータは、相互にスワッピングされる。
【００４１】
ＣＮＴ［１：０］＝“１１”のとき、４×１６バイトスワップユニット１２００は、ＩＭＥＭＣ−Ｆからの４×４バイトのデータ、ＩＭＥＭ８−Ｂからの４×４バイトのデータ、ＩＭＥＭ４−７からの４×４バイトのデータ、及び、ＩＭＥＭ０−３からの４×４バイトのデータを、この順序で出力する。この場合、ＩＭＥＭ０−３からの４×４バイトのデータ、及び、ＩＭＥＭＣ−Ｆからの４×４バイトのデータは、相互にスワッピングされ、ＩＭＥＭ４−７からの４×４バイトのデータ、及び、ＩＭＥＭ８−Ｂからの４×４バイトのデータはスワッピングされる。
【００４２】
図１４に、４×４バイトの転置ユニット１３００の構成を示す。この４×４バイトの転置ユニット１３００は、図６の４×４バイトの転置ユニット６０６に対応している。図１３の４×１６バイトスワップユニットの出力データは、これらの４個の転置ユニット１３００の入力を形成する。１６バイト出力データは、入力側１３０１及び出力側１３０２において、各４バイトの４列の１つのマトリックス（マトリックス）として再構成される。次に、データは、信号ＰＡＴＨに依存して、一のパス上では、非転置パスを通るアクセスのため、出力部に直接転送される。転置パスを通るアクセスのためには、データは、第２のパス上において、各データ信号の位置（ｘ、ｙ）を交換することによって転置される。出力側では、マルチプレクサ１３０３は、選択されたパスをクリアにする。
【００４３】
図１４に示すように、４×４サブマトリックスは、（列０、バイト０）、（列０、バイト１）、（列０、バイト２）、（列０、バイト３）、（列１、バイト０）、（列１、バイト１）、・・・（列３、バイト３）として、線形（リニアな）順序で表される。転置された４×４サブマトリックスは、（列０、バイト０）、（列１、バイト０）、（列２、バイト０）、（列３、バイト０）、（列０、バイト１）、（列１、バイト１）、・・・（列３、バイト３）として表される。
【００４４】
図１５に、ライトコントロール機能ユニットの構成をブロック図で示す。一例として、マトリックスエレメント数Ｎは１６、一のメモリエレメントに格納されたマトリックスエレメント数は４である。ライトコントロール機能ユニットは、図１６に示した入出力接続を有する。入力メモリリードベースアドレスＭＥＭ＿ＢＡＳＥ＿ＡＤＤＲＥＳＳは、ＩＭＥＭライトアドレスを計算するために用いられる。カウンタユニット１４００（図６のカウンタユニット６００と同一の３ビットカウンタ）により発生させた２ビットカウンタ値（ＣＮＴ［１：０］）並びにインバータ１４０４（図６のインバータ６０４と同一）により発生させたその反転値は、アドレスジェネレータ１４０３（図６のアドレスジェネレータ６０３と同一）内においてのＩＭＥＭライトアドレス計算のためのオフセットとして用いられる。
【００４５】
アドレスジェネレータ１４０３により発生させた、ＩＭＥＭ１４０２（図６のＩＭＥＭ６０２と同一）へのＷｒｉｔｅ＿ａｄｄｒｅｓｓは、セレクタ１４０１（図６のセレクタ６０１と同一）を通過した後、ＰＥ−ＲＦ１４０６（図６のＰＥ−ＲＦ６０８と同一）からのデータを格納するために用いられる。ＰＥ−ＲＦ１４０６は、２つの下位カウンタビット（ＣＮＴ［１：０］）により指定されるアドレス１４０５（図６のアドレス６０７と同一）によってアクセスされる。信号ＰＡＴＨは、ライトコントロール機能においてアドレス発生を制御するために用いられる。
【００４６】
ライトコントロール機能ユニットは、図１６に示すような入出力接続を有している。
【００４７】
図１７は、リードコントロール機能のフローチャートを示す。図１８に、１６×１６マトリックスエレメント（バイト）を有するマクロブロックの一例を示す。マクロブロック１６０１において、マトリックスの各エレメントは、各々４個の縦方向のマトリックスエレメント（バイト）１６００を有するメモリエレメント１６０３を形成するようにグループ化される。メモリエレメント１６０３は、４個の横方向に隣接したメモリエレメントを有するメモリエレメントサブブロック１６０４を形成するようにグループ化される。メモリエレメントサブブロック１６０４は、４個の横方向に隣接したメモリエレメントサブブロックを有するメモリエレメントサブブロック行１６０５を形成するようにグループ化される。リードコントロール機能の作用について図１７、１８を参照して説明する。
【００４８】
＜ステップ１＞
信号ＰＡＴＨ情報を評価する。ＰＡＴＨが０ならば、ステップ２〜３による“ＹＥＳ”分岐を実行し、０でなければ、ステップ４〜１４による“ＮＯ”分岐を実行する（１５００）。
【００４９】
＜ステップ２＞
ＩＭＥＭベースアドレスとｌｏｇ２（Ｎ／ｍ）（＝２）カウンタビットとを組合せることによって、Ｎ／ｍ（＝４）ＩＭＥＭアドレスを計算する（１５０１）。
【００５０】
＜ステップ３＞
ＩＭＥＭにアドレスを転送し、メモリエレメントサブブロック行１６０５当りＮ／ｍ（＝４）×ｍ２（＝１６）バイトを受ける。メモリエレメントサブブロック行１６０５は、各々、ｍ（＝４）個のマトリックスエレメント１６０３を有するメモリエレメントサブブロック１６０４の行から成り、マトリックスエレメント１６０３は、ｍ（＝４）個のメモリエレメント１６００を備えている（１５０２）。
【００５１】
＜ステップ４＞
ＩＭＥＭベースアドレスと、ｌｏｇ２（Ｎ／ｍ）（＝２）カウンタビット及び反転カウンタビットを組合せることによって、Ｎ／ｍ（＝４）個のＩＭＥＭアドレスを計算する（１５０３）。カウンタビットを用いるか、反転カウンタビットを用いるかは、アドレスオフセットマトリックスを発生させることにより定める。
【００５２】
アドレスオフセットマトリックスは、次のようにして発生させる。
ａ）異なるレベルのマトリックスを生成させる。スタートポイントとして、ｍ（＝４）×ｍマトリックスエレメントを有するメモリエレメントサブブロック（複数）がレベル１のマトリックス（複数）を形成するものとする。次に、レベル１の４個の隣接マトリックスをグループ化して、レベル２の新しいマトリックスを形成する。４個のマトリックスしか残らなくなるまで、これを再帰的に行う。図１９は、初期値がＮ＝１６、ｍ＝４である場合の、このステップの出力を表している。
【００５３】
ｂ）各メモリエレメントサブブロックに部分アドレスオフセットを図２０に示すように割当てる。各レベルの各マトリックスの各対角要素(ｄｉａｇｏｎａｌ)のメモリエレメントサブブロック１８００に、零値を割当て、各対角要素のメモリエレメントサブブロックに２（ｌｅｖｅｌ−１）値を割当てる。従って、レベル１の反対角要素（ａｎｔｉ−ｄｉａｇｏｎａｌ）のメモリエレメントサブブロックについては１８０１には、値１が、またレベル２の反対角要素のメモリエレメントサブブロックについては、１８０２には値２が、それぞれ割当てられる。
【００５４】
ｃ）各メモリエレメントサブブロックについて全レベル（ここではレベル１、１９００及びレベル２、１９０１）からの部分アドレスオフセットを総和し、各メモリエレメントサブブロックについてのアドレスオフセットと共にアドレスオフセットマトリックス１９０２を受ける（図２１参照）。
【００５５】
メモリエレメントサブブロック行の各メモリエレメントサブブロックの正しいアドレスオフセットは、アドレスオフセットマトリックスへの縦方向インデックスとしてカウンタビットＣＮＴ［０］及びＣＮＴ［１］を用いて、現在処理中のアドレスマトリックス行を選択し、カウンタビット及び反転カウンタビットから、選択された行の各メモリエレメントサブブロックのためのアドレスマトリックスエントリを形成することによって発生させる。
【００５６】
＜ステップ５＞
（Ｎ／ｍ）（＝４）個のアドレスをＩＭＥＭに送信し、ｍ（＝４）個の隣接ＩＭＥＭが１つのアドレスを受信する（１５０４）。
【００５７】
＜ステップ６＞
ＩＭＥＭから（Ｎ／ｍ）（＝４）×ｍ２（＝１６）バイトを受信する。図２２は、正しい縦方向メモリエレメントサブブロック位置を有する、Ｎ／ｍ（＝４）個のメモリエレメントサブブロック行リクエストの受信データを示す（１５０５）。
【００５８】
＜ステップ７＞
インデックスを零に設定する（１５０６）。
【００５９】
＜ステップ８＞
カウンタＣＮＴからのビットｉを評価する。値が零に等しければステップ１０に進み、そうでなければステップ９に続ける（１５０７）。
【００６０】
＜ステップ９＞
２個のサブブロックの対を作成する。これらの対は、一のメモリエレメントサブブロック行内のメモリエレメントサブブロックインデックスのビットｉのみが相違するサブブロックから形成する。これらのサブブロックの位置をスワッピングする。図２３は、インデックスｉ及びカウンタＣＮＴの全値についてループの実行を終了させた後の、図２３に示したマクロブロックについてのこのステップの出力を示している（１５０８）。
【００６１】
＜ステップ１０＞
インデックスｉを増大させる（１５０９）。
【００６２】
＜ステップ１１＞
ｌｏｇ２（Ｎ／ｍ）（＝２）とインデックスｉを比較する。等しくなければステップ８に移行し、そうでなければステップ１２に進む（１５１０）。
【００６３】
＜ステップ１２＞
縦方向に各ｍ（＝４）個のバイトを有するｍ（＝４）個の横方向に隣接するメモリエレメントとしてメモリエレメントサブブロックのｍ２（＝１６）個のバイトを再度整える（１５１１）。
【００６４】
＜ステップ１３＞
図２４に左上のメモリエレメントサブブロックについて例示的に示したように、各々のメモリエレメントサブブロックについて、各バイトを位置（ｘ、ｙ）から位置（ｙ、ｘ）に変更することによって、ｍ（＝４）×ｍ（＝４）個のバイトを転置する。図２５は、カウンタＣＮＴの全値についてループの実行を終了させた後のこのステップの出力を示している（１５１２）。
【００６５】
＜ステップ１４＞
全部のＮ（＝１６）ＰＥに、下位ｌｏｇ２（Ｎ／ｍ）（＝２）個のＣＮＴビットによって指定されるアドレスに、一のメモリエレメントを格納する（１５１３）。
【００６６】
図２５に示した結果マトリックスをＮ（＝１６）個のＰＥのＮ／ｍ（＝４）個のレジスタに格納する。図２５（Ａ）、図２５（Ｂ）、図２５（Ｃ）、図２５（Ｄ）に示すように、レジスタ０、１、２、３は、転置された１６×１６マトリックスの行０−３、４−７、８−Ｂ及びＣ−Ｆにそれぞれ対応する４×１６バイトのデータを格納する。図６、１５のＰＥ−ＲＦ  ０〜ＰＥ−ＲＦ  Ｆはレジスタ０〜３に対応する。例えばＰＥ−ＲＦ  ０は、それぞれ図２５（Ａ）−図２５（Ｄ）に示したレジスタ０〜３の第１列の第１〜第４行の各エレメントを格納し、ＰＥ−ＲＦ  １は、それぞれ図２５（Ａ）−図２５（Ｄ）に示したレジスタ０〜３の第２列の第１−第４行の各エレメントを格納し、・・・、ＰＥ−ＲＦ  Ｆは、それぞれ図２５（Ａ）−図２５（Ｄ）に示したレジスタ０〜３の第１６列の第１−第４行の各エレメントを格納する。
【００６７】
図２６に、ライトコントロール機能を説明するためのフローチャートを示す。ＰＥ−ＲＦ０−３、ＰＥ−ＲＦ４−７、ＰＥ−ＲＦ８−Ｂ、ＰＥ−ＲＦＣ−Ｆに格納されたデータは、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆ、の、アドレスジェネレータによって指定されたアドレスにリード及びライトされる。
【００６８】
＜ステップ１＞
ｌｏｇ２（Ｎ／ｍ）（＝２）ＣＮＴ下位２ビットによって指定されたアドレスから、ｍ（＝４）バイトの一メモリエレメントを、Ｎ（＝１６）個のＰＥから読出す（２４００）。
【００６９】
＜ステップ２＞
信号ＰＡＴＨ情報を評価する（２４０１）。ＰＡＴＨ＝０ならば、ステップ３に説明した“ＹＥＳ”分岐を実行し、そうでなければ、ステップ４に説明した“ＮＯ”分岐を実行する。
【００７０】
＜ステップ３＞
ＩＭＥＭベースアドレスとｌｏｇ２（Ｎ／ｍ）（＝２）ＣＮＴ下位２ビットとを組合せることによって、Ｎ／ｍ（＝４）個のＩＭＥＭアドレスを計算する（２４０２）。ステップ５に続ける。
【００７１】
＜ステップ４＞
ＩＭＥＭベースアドレスとｌｏｇ２（Ｎ／ｍ）（＝２）ＣＮＴ下位カウンタと反転カウンタビットを組合せることによって、Ｎ／ｍ（＝４）個のＩＭＥＭアドレスを計算する。リードコントロール機能について説明したようにアドレスオフセットマトリックスを発生させることによって、カウンタビットを使用するか反転カウンタビットを使用するかを定める。次に、アドレスオフセットマトリックスへの縦方向インデックスとしてカウンタビットＣＮＴ［０］、ＣＮＴ［１］を用いて、現在処理されているアドレスマトリックス行を選択し、カウンタと反転カウンタビットから、選択された行の各メモリエレメントサブブロックのアドレスマトリックスエントリを形成することによって、あるメモリエレメントサブブロック行の各メモリエレメントサブブロックの正しいアドレスオフセットを再度発生させる（２４０３）。
【００７２】
＜ステップ５＞
各メモリエレメントサブブロック行について、Ｎ／ｍ（１６／４＝４）個のアドレスとＮ／ｍ（＝４）×ｍ２（＝１６）個のバイトとを、ＩＭＥＭに転送する（２４０４）。
【００７３】
ＩＭＥＭに転送し格納した後の結果マトリックスを図２７に示す。図２７において、図１８のマトリックスエレメントの位置（ｘ、ｙ）は、（ｙ、ｘ）に変更されている。
【００７４】
データ信号に加えて、制御信号が、実行すべき正しい制御機能を特定するために必要とされる。制御信号において、次の３つの情報が解読される。
１）どの機能が実行されるか（リード又はライト）（１ビット）
２）どのパスが実行されるか（パス０又はパス１）（１ビット）
３）どのメモリエレメントサブブロック行が実行されるか（ｌｏｇ２（Ｎ／ｍ）＝２ビット）。
【００７５】
図２８に示した各クロックサイクルの制御信号設定において、２×（Ｎ／ｍ）＝２×（１６／４）＝８クロックサイクルで、コネクション装置３０２中のリードコントロール機能ユニット及びライトコントロール機能ユニットの転置されたパスを用いることによって、Ｎ（＝１６）×Ｎ個のマトリックスのコーナーターンを実行することができる。
【００７６】
本実施態様のコネクション装置３０２によるマトリックスのスワップ及び転置処理の特定の例について以下に説明する。
【００７７】
＜実施例１＞
この例においては、処理対象のマトリックスは、Ｎ×Ｎ（Ｎ＝８）マトリックス、一のマトリックスエレメントのサイズは１バイトであり、各々の列データ即ちＮ（＝８）個のエレメントのデータは、一ワードとして、ＩＭＥＭ０〜Ｎ−１（＝７）に格納されているものとする。この例では、Ｎ×Ｎ（Ｎ＝８）マトリックスは（Ｎ／ｍ）×（Ｎ／ｍ）（＝４×４）個のｍ×ｍ（２×２）サブマトリックスに区画され、各々のサブマトリックスは、ｍ（＝２）行×ｍ列を有する。
【００７８】
各々のＩＭＥＭ及びレジスタの一ワードは、ｍ（＝２）個の、縦方向に整列されたエレメントを格納している。この例では、ＩＭＥＭ０−７の指定されたアドレスに格納された８×８マトリックスの（Ｎ／ｍ）（＝４）個の２×２サブマトリックスは、読出され、スワッピング及び転置を受け、次に、ＰＥ０−７のそれぞれのレジスタに格納される。この操作が（Ｎ／ｍ）回（サイクル）繰返される。リード操作の後、ＰＥ０−７のレジスタに格納された８×８マトリックスの（Ｎ／ｍ）（＝４）個の２×２サブマトリックスは、読出され、ＩＭＥＭ０−７の指定されたアドレスに再格納される。この操作が（Ｎ／ｍ）回（サイクル）繰返される。ＩＭＥＭ０−７に再格納された８×８マトリックスは、当初ＩＭＥＭ０−７に保持されていた８×８マトリックスのコーナーターン済みのバージョンとなっている。即ち、ＩＭＥＭ０−７に再格納された８×８マトリックスの各マトリックスエレメントの位置は、最初の位置（ｘ、ｙ）から（ｙ、ｘ）に変更されている。
【００７９】
次にリード操作について説明する。
ａ）３ビットカウンタ６００（又は１４００）の下位２ビット値に従ってＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓの下位２ビットを変えることによって、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７のリードアドレスを生成する。
ｂ）２×２サブマトリックスの横方向位置のスワッピングを行う。
ｃ）各２×２サブマトリックスのコーナーターンを行う。
ｄ）各ＰＥのレジスタ０−３に格納する。
【００８０】
上述のリードプロセスの詳細は、以下の各図に示されている。
【００８１】
図２９において、ＩＭＥＭ０−７に格納されたメモリコンテンツ即ち８×８マトリックスの各マトリックスエレメントは、行インデック番号ｘ及び列インデック番号ｙで各々表されている。図２９において、“００”は第１の行及び第１の列（０、０）の位置にあるマトリックスエレメントを示し、“７７”は第８の行及び第８の列（７、７）の位置にあるマトリックスエレメントを示す。８×８マトリックスは、４×４個の２×２サブマトリックスに区画されている。
【００８２】
ＩＭＥＭ０のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”のアドレスに格納された８×８マトリックスの２つの縦方向に隣接するマトリックスエレメント（０、０）及び（１、０）と、ＩＭＥＭ１のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”のアドレスに格納された８×８マトリックスの２つの縦方向に隣接するマトリックスエレメント（０、１）及び（１、１）とは、左上位置（０、０）の第１の２×２サブマトリックスを形成する。同様に、ＩＭＥＭ２−３のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”のアドレスに格納された８×８マトリックスの４つのマトリックスエレメント（２、２）、（３、２）、（２、３）及び（３、３）は、位置（１、１）の第２の２×２サブマトリックスを形成し、ＩＭＥＭ４、５のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”のアドレスに格納された８×８マトリックスの４つのマトリックスエレメント（４、４）、（５、４）、（４、５）及び（５、５）は、位置（２、２）の第３の２×２サブマトリックスを形成する。ＩＭＥＭ６、７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”のアドレスに格納された８×８マトリックスの４つのマトリックスエレメント（６、６）、（７、６）、（６、７）及び（７、７）は、右下位置（３、３）の第４の２×２サブマトリックスを形成する。尚、演算子（オペレータ）“＆”、例えば  ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”は、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ（上位（Ｎ−２）ビット）と下位２ビット“１１”をモジュロ２の演算などによって連接する（ｃｏｎｃａｔｅｎａｔｅ）ことによって得たアドレスを表している。
【００８３】
図２９を参照すると、クロックサイクル１で、図６の３ビットカウンタ６００のＣＮＴ［０］＝０、ＣＮＴ［１］＝０において、アドレスジェネレータ０（図６及び図９）は、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”をＩＭＥＭ０−１に供給し、アドレスジェネレータ１（図６及び図１０）は、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”（セレクタ９０１によって選択された（ＣＮＴ［１］及びＩｎｖＣＮＴ［０］）を、ＩＭＥＭ２−３に供給し、アドレスジェネレータ２（図６及び図１１）は、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”（セレクタ１００１によって選択されたＩｎｖＣＮＴ［１］及び（ＣＮＴ［０］）をＩＭＥＭ４−５に供給し、アドレスジェネレータ３（図６及び図１２）は、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”（セレクタ１１０１によって選択されたＩｎｖ（ＣＮＴ［１］及びセレクタ１１０２によって選択されたＩｎｖＣＮＴ［０］）をＩＭＥＭ６−７に供給する。
【００８４】
２×２サブマトリックスの４行４列に（０、０）、（１、１）、（２、２）及び（３、３）に対角方向に位置する、対角方向サブマトリックスエレメントを形成する４個の２×２サブマトリックスは、読出され、スワッピングされずに、対応の転置ユニットにそれぞれ転送される。即ち、対角方向に位置する４個の２×２サブマトリックスは、スワッピングされず、各サブマトリックスの転置だけが行われる。各々の転置ユニットは、転置された２×２サブマトリックスを生成させる。２×２サブマトリックスエレメントの位置（ｘ、ｙ）は位置（ｙ、ｘ）に変更されている。ｘ＝０又は１、ｙ＝０又は１、ｘ≠ｙである。各々転置された４個の２×２サブマトリックスは、ＰＥ０−７のレジスタ０に格納される。各ＰＥ０−７のレジスタ０には、当該２×２サブマトリックスの２個の縦方向に隣接するエレメントが格納されている。
【００８５】
図３０を参照すると、クロックサイクル２において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５及びＩＭＥＭ６−７には、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”がそれぞれ供給される。クロックサイクル２において、４個の２×２サブマトリックスの４行４列の（１、０）、（０、１）、（３、２）及び（２、３）にそれぞれ位置された２×２サブマトリックスは、アドレスジェネレータによってアクセスされる。４個の２×２サブマトリックス（１６バイトのリードデータ）は、スワップ操作され、その際に、２個の２×２サブマトリックスの間で横方向位置が相互にスワッピングされる。ここでは、第１と第２の２×２サブマトリックスの対がスワッピングされ、第３と第４の２×２サブマトリックスの対がスワッピングされる。スワッピングされた４個の２×２サブマトリックスは、各々コーナーターンに付された後、ＰＥ０−７のレジスタ１に格納される。各ＰＥ０−７のレジスタ１は、当該２×２サブマトリックスの２個の縦方向に隣接するエレメントを格納する。
【００８６】
図３１を参照すると、クロックサイクル３において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５及びＩＭＥＭ６−７には、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”がそれぞれ供給される。クロックサイクル３において、４個の２×２サブマトリックスの４行４列の（２、０）、（３、１）、（０、２）及び（１、３）にそれぞれ位置された４個の２×２サブマトリックスは、アドレスジェネレータによってアクセスされる。４個の２×２サブマトリックスは、スワップ操作され、ここでは、第１と第３の２×２サブマトリックスの対及び第２と第４の２×２サブマトリックスの対がスワッピングされる。スワッピングされた２×２サブマトリックスは、各々コーナーターンに付された後、ＰＥ０−７のレジスタ２に格納される。各ＰＥ０−７のレジスタ２は、当該２×２サブマトリックスの２個の縦方向に隣接するエレメントを格納する。
【００８７】
図３２を参照すると、クロックサイクル４において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５及びＩＭＥＭ６−７には、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”がそれぞれ供給される。クロックサイクル４において、４個の２×２サブマトリックスの４行４列の（３、０）、（２、１）、（１、２）及び（０、３）にそれぞれ位置された２×２サブマトリックスは、アドレスジェネレータによってアクセスされる。４個の２×２サブマトリックスは、スワップ操作され、その際に、第１と第４の２×２サブマトリックスの対及び第２と第３の２×２サブマトリックスの対がスワッピングされる。スワッピングされた２×２サブマトリックスは、各々コーナーターンが施された後、ＰＥ０−７のレジスタ３に格納される。各ＰＥ０−７のレジスタ３は、当該２×２サブマトリックスの２個の縦方向に隣接するエレメントを格納する。ＩＭＥＭ０−７に格納された８×８マトリックスの４クロックサイクルのリード操作の結果として、図３３に示すように、ＰＥ０−７のレジスタ０−３に、８×８マトリックスが格納される。
【００８８】
ライト操作において、レジスタ０−３からの一ワードは、数字の順序で読出され、ＩＭＥＭに格納される。ＩＭＥＭ０−７のアドレスは、３ビットカウンタ１４００の下位２ビットカウンタ値に従ってＭＥＭ＿ａｄｄｒｅｓｓの下位２ビットを変えることによって生成させる。
【００８９】
より詳細には、図３３を参照すると、ライトクロックサイクル１において、４個の２×２サブマトリックス（３２バイトデータ）は、ＰＥ０−７のレジスタ０から読出され、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”のアドレスに格納される。尚、ライトクロックサイクル１においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるライトアドレス中の下位２ビット値の組合せは、図２９に示したリードクロックサイクル１においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるリードアドレスの下位２ビット値の組合せと同じである。ＩＭＥＭ０−７は、指定アドレスに、一ワードとして、当該２×２サブマトリックスの２個の縦方向に隣接するエレメントを各々格納する。
【００９０】
図３４を参照すると、ライトクロックサイクル２において、１６バイトデータは、ＰＥ０−７のレジスタ１から読出され、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”のアドレスに格納される。尚、ライトクロックサイクル２においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるライトアドレス中の下位２ビット値の組合せは、図３０に示したリードクロックサイクル２においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるリードアドレスの下位２ビット値の組合せと同じである。
【００９１】
図３５を参照すると、ライトクロックサイクル３において、１６バイトデータは、ＰＥ０−７のレジスタ２から読出され、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”のアドレスに格納される。尚、ライトクロックサイクル３においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるライトアドレス中の下位２ビット値の組合せは、図３１に示したリードクロックサイクル３においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるリードアドレスの下位２ビット値の組合せと同じである。
【００９２】
図３６を参照すると、ライトクロックサイクル４において、１６バイトデータは、ＰＥ０−７のレジスタ３から読出され、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”のアドレスに格納される。尚、ライトクロックサイクル４においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるライトアドレス中の下位２ビット値の組合せは、図３２に示したリードクロックサイクル４においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７にそれぞれ供給されるリードアドレスの下位２ビット値の組合せと同じである。上述のライト操作によってＩＭＥＭ０−７に格納された８×８マトリックスは、図２９に示したマトリックスのコーナーターン済みのバージョンとなっている。即ち、図２９のＩＭＥＭ０−７に格納される８×８マトリックス中の一のマトリックスエレメントの位置（ｘ、ｙ）は、図３６のＩＭＥＭ０−７に格納された８×８マトリックスにおいて（ｙ、ｘ）に変更される。
【００９３】
＜実施例２＞
この例では、処理対象マトリックスは８×８マトリックス（Ｎ＝８）であり、一のマトリックスエレメントのサイズは１バイトであり、各１列のデータ即ち４個のエレメントのデータ（ｍ＝４）は、ＩＭＥＭ０からＩＭＥＭ７にそれぞれ格納され、ＩＭＥＭ及びレジスタの一のワードは、縦方向に整列された４個のエレメントを格納しているものとする。この例では、８×８マトリックスは、（８／４）×（８／４）＝４個のサブマトリックスに区画され、各々のサブマトリックスは、４行４列から成っている。
【００９４】
リード操作について説明する。
ａ）リードアドレスは、３ビットカウンタ１４００の１ビットカウンタ値（ＬＳＢ）に従ってＭＥＭ＿ａｄｄｒｅｓｓの下位１ビットを変更される。  
ｂ）４×４サブマトリックスの横方向位置をスワッピングする。
ｃ）各４×４サブマトリックスについてコーナーターンを行う。
ｄ）各ＰＥのレジスタ０−１に格納する。
上述のリードプロセスの詳細は、以下の各図に示されている。
【００９５】
図３７を参照すると、クロックサイクル１において、ＩＭＥＭ０−３、ＩＭＥＭ４−７には、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１”が供給される。４×４サブマトリックスの２行２列の位置（０、０）及び（１、１）に対角方向に位置する２個の４×４サブマトリックス（３２バイトデータ）は、ＩＭＥＭ０−３、ＩＭＥＭ４−７から読出され、スワッピングされることなく、対応の転置ユニットに転送される。２個の４×４サブマトリックスは、次に、コーナーターンされた後、ＰＥ０−７のレジスタ０に格納される。各ＰＥ０−７のレジスタ０には、縦方向に隣接した４個のエレメントが格納される。
【００９６】
図３８を参照すると、クロックサイクル２において、ＩＭＥＭ０−３及びＩＭＥＭ４−７には、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０”が供給される。４×４サブマトリックスの２行２列の位置（１、０）及び（０、１）にそれぞれ位置された２個の４×４サブマトリックスは、ＩＭＥＭ０−３、ＩＭＥＭ４−７から読出され、スワッピング操作され、２個の４×４サブマトリックスは、横方向にスワッピングされる。スワッピングされた２個の４×４サブマトリックスは、コーナーターンされ、ＰＥ０−７のレジスタ１に格納される。各ＰＥ０−７のレジスタ１は４個の縦方向に隣接したエレメントを格納している。
【００９７】
ライト操作の場合、ＰＥ０−７のレジスタ０−１から一のワードが、数字の順序で読出され、ＩＭＥＭ０−７の指定されたアドレスに格納される。ＩＭＥＭ０−７のアドレスは、３ビットカウンタ１４００の１ビットカウンタ値（ＬＳＢ）に従って、ＭＥＭ＿ａｄｄｒｅｓｓの下位１ビット値を変えることによって発生させる。
【００９８】
より詳細には、図３９を参照すると、ライトクロックサイクル１において、２個の４×４サブマトリックスは、ＰＥ０−７のレジスタ０から読出され、ＩＭＥＭ０−３及びＩＭＥＭ４−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１”に格納される。ライトクロックサイクル１においてＩＭＥＭ０−３及びＩＭＥＭ４−７にそれぞれ供給されるライトアドレス中の下位１ビット値の組合せは、図３３に示したリードクロックサイクル１においてＩＭＥＭ０−３及びＩＭＥＭ４−７にそれぞれ供給されるリードアドレス中の下位１ビット値のそれと同じである。ＩＭＥＭ０−７は、当該２×２サブマトリックスの４個の縦方向に隣接したエレメントを指定されたアドレスにそれぞれ一ワードとして格納している。
【００９９】
４×４サブマトリックスの２行２列の位置（０、０）、（１、１）に最初存在し、各々コーナーターンされ、次に図３７に示すように、ＰＥ０−７のレジスタ０に格納された、２個の４×４サブマトリックスは、今は、図３９に示すように、４×４サブマトリックスの２行２列の位置（０、０）、（１、１）に再格納されている。
【０１００】
図４０を参照すると、ライトクロックサイクル２において、３２バイトデータは、ＰＥ０−７のレジスタ１から読出され、ＩＭＥＭ０−３及びＩＭＥＭ４−７のＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０”のアドレスに格納される。ライトクロックサイクル２においてＩＭＥＭ０−３及びＩＭＥＭ４−７にそれぞれ供給されるライトアドレス中の下位１ビット値の組合せは、図３３に示したリードクロックサイクル２においてＩＭＥＭ０−３及びＩＭＥＭ４−７にそれぞれ供給されるリードアドレス中の下位１ビット値のそれと同じである。「
【０１０１】
４×４サブマトリックスの２行２列の位置（１、０）、（０、１）に最初存在し、対ごとにスワッピング及びコーナーターンされ、次に図３８に示すように、ＰＥ０−７のレジスタ１に格納された、２個の４×４サブマトリックスは、今は、図４０に示すように、４×４サブマトリックスエレメントの２行２列の（０、１）、（１、０）の転置された位置に再格納されている。
【０１０２】
各々リード操作においてコーナーターンされ、上述のライト操作においてＩＭＥＭ０−７のそれぞれのアドレスに書込まれた、４個の４×４サブマトリックスから成る８×８マトリックスは、図３７の８×８マトリックスのコーナーターン済みのバージョンである。即ち、図４０のＩＭＥＭ０−７に格納された８×８マトリックスにおいて、図３７のＩＭＥＭ０−７に格納された８×８マトリックスの一のマトリックスエレメントの位置（ｘ、ｙ）は、（ｙ、ｘ）に変更されている。
【０１０３】
＜実施例３＞
この例では、処理対象マトリックスは１６×１６マトリックス（Ｎ＝１６）であり、一のマトリックスエレメントのサイズは１バイトであり、各１列のデータ即ち１６エレメントのデータは、ＩＭＥＭ０からＩＭＥＭ  Ｆにそれぞれ格納され、ＩＭＥＭ及びレジスタの一のワードは、縦方向に整列された２個のエレメント（ｍ＝２）を格納しているものとする。この例では、１６×１６マトリックスは、（１６／２）×（１６／２）＝６４個のサブマトリックスに区画され、各々のサブマトリックスは、２行２列から成っている。
【０１０４】
リード操作について説明する。
ａ）各ＩＭＥＭから一のワードを読出す。各々のリードアドレスは、３ビットカウンタ１４００の３ビットカウンタ値（下位３ビット）に従ってＭＥＭ＿ａｄｄｒｅｓｓの下位３ビットを変えることによって発生させる。
ｂ）２×２サブマトリックスの横方向位置をスワッピングする。
ｃ）各々の２×２サブマトリックスについてコーナーターンを行う。
ｄ）各ＰＥのレジスタ０−７に格納する。
【０１０５】
上述のリードプロセスの詳細は、以下の各図に示されている。
図４１を参照すると、クロックサイクル１において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”がそれぞれ供給される。２×２サブマトリックスの８行８列に対角方向に存在する８個の２×２サブマトリックス（３２バイトデータ）は、読出され、スワッピングされることなく、対応の転置ユニットに転送される。各々のコーナーターンされた８個の２×２サブマトリックスは、ＰＥ０−Ｆのレジスタ０に次に格納される。各々のＰＥ０−Ｆのレジスタ０には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１０６】
図４２を参照すると、クロックサイクル２において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、隣接する対の２×２サブマトリックスの横方向位置がスワッピングされる。スワッピングされた８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ１に格納される。各々のＰＥ０−Ｆのレジスタ１には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１０７】
図４３を参照すると、クロックサイクル３において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第３の２×２サブマトリックスの対、第２と第４の２×２サブマトリックスの対、第５と第７の２×２サブマトリックスの対及び第６と第８の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ２に格納される。各々のＰＥ０−Ｆのレジスタ２には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１０８】
図４４を参照すると、クロックサイクル４において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第４の２×２サブマトリックスの対、第２と第３の２×２サブマトリックスの対、第５と第８の２×２サブマトリックスの対及び第６と第７の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ３に格納される。各々のＰＥ０−Ｆのレジスタ３には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１０９】
図４５を参照すると、クロックサイクル５において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第５の２×２サブマトリックスの対、第２と第６の２×２サブマトリックスの対、第３と第７の２×２サブマトリックスの対及び第４と第８の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ４に格納される。各々のＰＥ０−Ｆのレジスタ４には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１１０】
図４６を参照すると、クロックサイクル６において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第６の２×２サブマトリックスの対、第２と第５の２×２サブマトリックスの対、第３と第８の２×２サブマトリックスの対及び第４と第７の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ５に格納される。各々のＰＥ０−Ｆのレジスタ５には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１１１】
図４７を参照すると、クロックサイクル７において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第７の２×２サブマトリックスの対、第２と第８の２×２サブマトリックスの対、第３と第５の２×２サブマトリックスの対及び第４と第６の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ６に格納される。各々のＰＥ０−Ｆのレジスタ６には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１１２】
図４８を参照すると、クロックサイクル８において、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された８個の２×２サブマトリックス（３２バイトデータ）は、スワッピングされ、その際に、第１と第８の２×２サブマトリックスの対、第２と第７の２×２サブマトリックスの対、第３と第６の２×２サブマトリックスの対及び第４と第５の２×２サブマトリックスの対が横方向の位置についてスワッピングされる。スワッピングされた各８個の２×２サブマトリックスは、コーナーターンされ、ＰＥ０−Ｆのレジスタ７に格納される。各々のＰＥ０−Ｆのレジスタ７には、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントが格納されている。
【０１１３】
ライト操作において、レジスタ０−７からの一のワードを数順に読出してＩＭＥＭに格納する。ＩＭＥＭ０−Ｆのアドレスは、３ビットカウンタ１４００の３ビットカウンタ値に従ってＭＥＭ＿Ａｄｄｒｅｓｓの下位３ビットを変えることによって発生させる。
【０１１４】
より詳細には、図４９を参照すると、ライトクロックサイクル１において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ０から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”の各アドレスに格納する。ライトクロックサイクル１においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４１に示したリードクロックサイクル１においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。ＩＭＥＭ０−Ｆの各々は、当該２×２サブマトリックスの２個の縦方向に隣接したエレメントを、１つのワードとして、指定されたアドレスに格納する。
【０１１５】
図５０を参照すると、ライトクロックサイクル２において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ１から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”の各アドレスに格納する。ライトクロックサイクル２においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４２に示したリードクロックサイクル２においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１１６】
図５１を参照すると、ライトクロックサイクル３において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ２から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”の各アドレスに格納する。ライトクロックサイクル３においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４３に示したリードクロックサイクル３においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１１７】
図５２を参照すると、ライトクロックサイクル４において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ３から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”の各アドレスに格納する。ライトクロックサイクル４においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４４に示したリードクロックサイクル４においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１１８】
図５３を参照すると、ライトクロックサイクル５において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ４から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”の各アドレスに格納する。ライトクロックサイクル５においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４５に示したリードクロックサイクル５においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１１９】
図５４を参照すると、ライトクロックサイクル６において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ５から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”の各アドレスに格納する。ライトクロックサイクル６においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４６に示したリードクロックサイクル６においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１２０】
図５５を参照すると、ライトクロックサイクル７において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ６から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”の各アドレスに格納する。ライトクロックサイクル７においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４７に示したリードクロックサイクル７においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１２１】
図５６を参照すると、ライトクロックサイクル８において、８個の２×２サブマトリックス（３２バイト）をＰＥ０−Ｆのレジスタ７から読出して、ＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０００”の各アドレスに格納する。ライトクロックサイクル８においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるライトアドレスの下位３ビット値の組合せは、図４８に示したリードクロックサイクル８においてＩＭＥＭ０−１、ＩＭＥＭ２−３、ＩＭＥＭ４−５、ＩＭＥＭ６−７、ＩＭＥＭ８−９、ＩＭＥＭＡ−Ｂ、ＩＭＥＭＣ−Ｄ、ＩＭＥＭＥ−Ｆにそれぞれ供給されるリードアドレスの下位３ビット値の組合せに等しい。
【０１２２】
上述のライト操作においてＩＭＥＭ０−Ｆに格納された、１６×１６サブマトリックスは、図４１に示したマトリックスのコーナーターン済みのバージョンである。即ち、図５６のＩＭＥＭ０−Ｆに格納された１６×１６マトリックスにおいて、図４１のＩＭＥＭ０−Ｆに格納された１６×１６マトリックスの一のマトリックスエレメントの位置（ｘ、ｙ）は、（ｙ、ｘ）に変更されている。
【０１２３】
＜実施例４＞
この例では、処理対象マトリックスは１６×１６マトリックス（Ｎ＝１６）であり、一のマトリックスエレメントのサイズは１バイトであり、各１列のデータ即ち１６エレメントのデータは、ＩＭＥＭ０からＩＭＥＭ  Ｆにそれぞれ格納され、ＩＭＥＭ及びレジスタの一のワードは、縦方向に整列された４個のエレメントを格納しているものとする。この例では、１６×１６マトリックスは、（１６／４）×（１６／４）＝１６個のサブマトリックスに区画され、各々のサブマトリックスは、４行４列から成っている。
【０１２４】
リード操作について説明する。
ａ）各ＩＭＥＭから一のワードを読出す。各々のリードアドレスは、３ビットカウンタ１４００の２ビットカウンタ値に従ってＭＥＭ＿ａｄｄｒｅｓｓの下位２ビットを変えることによって発生させる。
ｂ）４×４サブマトリックスの横方向位置をスワッピングする。
ｃ）各々の４×４サブマトリックスについてコーナーターンを行う。
ｄ）各ＰＥのレジスタ０−７に格納する。
【０１２５】
上述のリードプロセスの詳細は、以下の各図に示されている。
図５７を参照すると、クロックサイクル１において、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”がそれぞれ供給される。４×４サブマトリックスの４行４列に対角方向に位置する４個の４×４サブマトリックス（６４バイトデータ）が、読出され、スワッピングを受けることなく、対応の転置ユニットに転送される。次に、各々コーナーターンされた４個の４×４サブマトリックスは、ＰＥ０−Ｆのレジスタ０に格納される。各ＰＥ０−Ｆのレジスタ０は、当該４×４サブマトリックスの４個の縦方向に隣接したマトリックスエレメントを格納する。
【０１２６】
図５８を参照すると、クロックサイクル２において、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された４個の４×４サブマトリックス（６４バイトデータ）は、スワッピング操作され、ここで、各対の隣接４×４サブマトリックスは、その横方向位置についてスワッピングされる。スワッピングされた４個の４×４サブマトリックスは、コーナーターンされた後、ＰＥ０−Ｆのレジスタ１に格納される。各ＰＥ０−Ｆのレジスタ１は、当該４×４サブマトリックスの４個の縦方向に隣接したマトリックスエレメントを格納する。
【０１２７】
図５９を参照すると、クロックサイクル３において、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された４個の４×４サブマトリックス（６４バイトデータ）は、スワッピング操作され、ここで、対の第１及び第３の４×４サブマトリックスは、その横方向位置についてスワッピングされ、別の対の第２及び第４の４×４サブマトリックスは、その横方向位置についてスワッピングされる。スワッピングされた４個の４×４サブマトリックスは、コーナーターンされた後、ＰＥ０−Ｆのレジスタ２に格納される。各ＰＥ０−Ｆのレジスタ２は、当該４×４サブマトリックスの４個の縦方向に隣接したマトリックスエレメントを格納する。
【０１２８】
図６０を参照すると、クロックサイクル４において、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆには、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”がそれぞれ供給される。ＩＭＥＭ０−Ｆから読出された４個の４×４サブマトリックス（６４バイトデータ）は、スワッピング操作され、ここで、対の第１及び第４の４×４サブマトリックスは、その横方向位置についてスワッピングされ、別の対の第２及び第３の４×４サブマトリックスは、その横方向位置についてスワッピングされる。スワッピングされた４個の４×４サブマトリックスは、コーナーターンされた後、ＰＥ０−Ｆのレジスタ３に格納される。各ＰＥ０−Ｆのレジスタ３は、当該４×４サブマトリックスの４個の縦方向に隣接したマトリックスエレメントを格納する。
【０１２９】
ライト操作において、レジスタ０−３からワードが数字の順で読出され、ＩＭＥＭに格納される。ＩＭＥＭ  ０−Ｆのアドレスは、３ビットカウンタ１４００の２ビットカウンタ値に従ってＭＥＭアドレスの下位２ビットを変えることによって発生させる。
【０１３０】
より詳細には、図６１を参照すると、ライトクロックサイクル１において、４個の４×４サブマトリックス（６４バイトデータ）は、ＰＥ０−Ｆのレジスタ０から読出された後、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”にそれぞれ格納される。ライトクロックサイクル１においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるライトアドレスの下位２ビット値の組合せは、図５７に示したリードクロックサイクル１においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるリードアドレスの下位２ビット値の組合せに等しい。ＩＭＥＭ０−Ｆの各々は、４個の縦方向に隣接したマトリックスエレメントを、１つのワードとして、指定されたアドレスに各々格納する。
【０１３１】
図６２を参照すると、ライトクロックサイクル２において、６４バイトデータは、ＰＥ０−Ｆのレジスタ１から読出された後、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”にそれぞれ格納される。ライトクロックサイクル２においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるライトアドレスの下位２ビット値の組合せは、図５８に示したリードクロックサイクル２においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるリードアドレスの下位２ビット値の組合せに等しい。
【０１３２】
図６３を参照すると、ライトクロックサイクル３において、６４バイトデータは、ＰＥ０−Ｆのレジスタ２から読出された後、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”にそれぞれ格納される。ライトクロックサイクル３においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるライトアドレスの下位２ビット値の組合せは、図５９に示したリードクロックサイクル３においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるリードアドレスの下位２ビット値の組合せに等しい。
【０１３３】
図６４を参照すると、ライトクロックサイクル４において、６４バイトデータは、ＰＥ０−Ｆのレジスタ３から読出された後、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−ＦのＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１１”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“１０”、ＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“０１”及びＭＥＭ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＆“００”にそれぞれ格納される。ライトクロックサイクル４においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるライトアドレスの下位２ビット値の組合せは、図６０に示したリードクロックサイクル４においてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆにそれぞれ供給されるリードアドレスの下位２ビット値の組合せに等しい。
【０１３４】
上述のライト操作においてＩＭＥＭ０−Ｆに格納された、１６×１６サブマトリックスは、図５７に示したマトリックスのコーナーターン済みのバージョンである。即ち、図６４のＩＭＥＭ０−Ｆに格納された１６×１６マトリックスにおいて、図５７のＩＭＥＭ０−Ｆに格納された８×８マトリックスの一のマトリックスエレメントの位置（ｘ、ｙ）は、（ｙ、ｘ）に変更されている。
【０１３５】
＜実施態様２＞
図６に示した上記の実施態様によるリードコントロール機能ユニットにおいて、ＩＭＥＭ０−Ｆから読出されたサブマトリックスは、スワップユニットに供給され、次に対応の転置ユニットに供給される。コーナーターンされたサブマトリックスは、図６に示したように、ＰＥのレジスタファイル（ＰＥ−ＲＦ）に格納される。しかし、スワップユニットと転置ユニットとの配置は入れ替えてもよい。例えば、図６５に示したように、４個のＩＭＥＭから読出された４×４バイトデータ（４×４サブマトリックス）は、対応の４×４バイト転置ユニットにひとまず供給された後、４×１６バイト転置ユニットに供給される。横方向位置についてスワッピングされた４×４サブマトリックスは、ＰＥのレジスタファイル（ＰＥ−ＲＦ０〜ＰＥ−ＲＦ  Ｆ）に格納される。本実施態様において、ライトコントロール機能ユニットは、図１５と同じ構成となっている。
【０１３６】
＜実施態様３＞
上記の実施態様によれば、ＩＭＥＭからＰＥのレジスタファイルに読出されたデータの転送路（パス）において、リードデータは、スワッピング及びコーナーターンされる。しかしこれは本発明を限定するものではない。
【０１３７】
図６６は、実施態様３によるライトコントロール機能ユニットの構成を示すブロック図である。図６６に示した実施態様によれば、ライトコントロール機能ユニットは、４×１６バイトのスワップユニット１４０５と４個の４×４バイトの転置ユニット１４０６とを備えている。
【０１３８】
ライトコントロール機能ユニットが図６６に示した構成を有する本実施態様によれば、リードコントロール機能ユニットは、図６７に示した構成を備えている。図６７を参照すると、アドレスジェネレータ６０３によって特定されたそれぞれのリードアドレスにおいてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆから並列に読出されたリードデータ（４個の４×４サブマトリックスデータ）は、３ビットカウンタ１４００の２ビットカウンタ値によって特定されるＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆの対応するレジスタ０−３に直接書込まれる。
【０１３９】
本実施態様のライトコントロール機能ユニットによれば、リードコントロール機能ユニットによってＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆのレジスタ０−３に格納された４個の４×４サブマトリックスは、３ビットカウンタ１４００の２ビットカウンタ値によって特定されるＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆの対応するレジスタ０−３から並列に読出され、対応の４×４バイトの転置ユニット１４０６に転送される。４×４バイトの転置ユニット１４０６は、４個の転置された４×４サブマトリックスを４×１６バイトのスワップユニット１４０５に供給する。４×１６バイトのスワップユニット１４０５からの４個の４×４バイトデータ（４個の４×４サブマトリックスデータ）は、アドレスジェネレータ１４０３によって特定されたＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆのそれぞれのアドレスに書込まれる。
【０１４０】
本実施態様によれば、ＩＭＥＭ０−Ｆに格納された全１６×１６マトリックスデータは、４クロックサイクルで、リードコントロール機能ユニットによって読出され、ＰＥ０−Ｆのレジスタ０−３に格納される。ＰＥ０−Ｆのレジスタ０−３に格納された１６×１６マトリックスデータは、読出され、ＰＥ０−Ｆのレジスタ０−３に格納された１６×１６マトリックスデータは、読出され、ライトコントロール機能ユニットによって４クロックサイクルでＩＭＥＭ０−Ｆに書込まれる。ＩＭＥＭ０−Ｆは、ＩＭＥＭ０−Ｆに当初格納された１６×１６マトリックスのコーナーターンされたバージョンを今や保持している。
【０１４１】
＜実施態様４＞
図６８は、実施態様４によるライトコントロール機能ユニットの構成を示すブロック図である。この実施態様によれば、ライトコントロール機能ユニットは、４×１６バイトのスワップユニット１４０５と４個の４×４バイトの転置ユニット１４０６とを備えている。
【０１４２】
ライトコントロール機能ユニットが図６８に示した構成を有する本実施態様によれば、リードコントロール機能ユニットは、図６７に示した構成を備えている。前述したように、アドレスジェネレータ６０３によって特定されたそれぞれのリードアドレスにおいてＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆから並列に読出されたリードデータ（４個の４×４サブマトリックスデータ）は、３ビットカウンタ１４００の２ビットカウンタ値によって特定されるＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆの対応するレジスタ０−３に直接書込まれる。
【０１４３】
本実施態様のライトコントロール機能ユニットによれば、４個の４×４サブマトリックスデータは、３ビットカウンタ１４００の２ビットカウンタ値によって特定されるアドレスにおいて、ＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆのレジスタ０−３から読出され、４×１６バイトのスワップユニット１４０５に供給される。４×１６バイトのスワップユニット１４０５からの４個の４×４バイトデータは、４×４バイト転置ユニット１４０６に供給される。４個の４×４バイト転置ユニット１４０６から出力された４個の４×４サブマトリックスデータは、アドレスジェネレータ１４０３によって特定された、ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆのそれぞれのアドレスに書込まれる。
【０１４４】
本実施態様によれば、ＩＭＥＭ０−Ｆに格納された全１６×１６マトリックスデータは、４クロックサイクルで、リードコントロール機能ユニットによって読出され、ＰＥ０−Ｆのレジスタ０−３に格納される。ＰＥ０−Ｆのレジスタ０−３に格納された１６×１６マトリックスデータは、読出され、４クロックサイクルで、ライトコントロール機能ユニットによってＩＭＥＭ０−Ｆに書込まれる。ＩＭＥＭ０−Ｆは、当初ＩＭＥＭ０−Ｆに格納されていた１６×１６マトリックスのコーナーターンされたバージョンを今や保持している。
【０１４５】
＜実施態様５＞
図６９は、実施態様５によるリードコントロール機能ユニットの構成を示すブロック図である。図６９に示したこの実施態様によれば、リードコントロール機能ユニットは、４×４サブマトリックスの横方向位置を入れ替える４×１６バイトのスワップユニット６０５を備えている。４×４バイト転置ユニット６０６は備えていない。ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆの、アドレスジェネレータ６０３によって特定されたリードアドレスから読出された４個の４×４サブマトリックス（６４バイトデータ）は、４×１６バイトのスワップユニット６０５に供給され、３ビットカウンタ６００の２ビットカウンタ値によって順次特定されるＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆの対応のレジスタ０−３に格納される。
【０１４６】
図７０は、実施態様５によるライトコントロール機能ユニットの構成を示すブロック図である。図７０に示すように、ライトコントロール機能ユニットは、４個の４×４バイト転置ユニット１４０６を備えている。ＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆのレジスタ０−３から順次読出された４個の４×４サブマトリックス（６４バイトデータ）は、４個の４×４バイト転置ユニット１４０６に供給される。４個の４×４バイト転置ユニット１４０６から出力された４個の４×４サブマトリックスは、対応のＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆの、アドレスジェネレータ１４０３によって発生させたライトアドレスに格納される。
【０１４７】
ＩＭＥＭ０−Ｆに書込まれ、サブマトリックス（各々リードコントロール機能ユニットによるスワッピング及びライトコントロール機能ユニットによる転置を受けている）を有している１６×１６マトリックスは、当初ＩＭＥＭ０−Ｆに格納されていた１６×１６マトリックスデータのコーナーターン済みのバージョンである。
【０１４８】
＜実施態様６＞  
図７１は、実施態様６によるリードコントロール機能ユニットの構成を示すブロック図である。図７１に示したこの実施態様によれば、リードコントロール機能ユニットは、４個の４×４バイト転置ユニット６０６を備えている。４×１６バイトのスワップユニット６０５は備えていない。ＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆの、アドレスジェネレータ６０３によって特定されたそれぞれのリードアドレスから読出された４個の４×４サブマトリックス（６４バイトデータ）は、４個の４×４バイト転置ユニット６０６にそれぞれ供給され、３ビットカウンタ６００の２ビットカウンタ値によって順次特定されるＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆの対応のレジスタ０−３に格納される。
【０１４９】
図７２は、実施態様６によるライトコントロール機能ユニットの構成を示すブロック図である。図７２に示したように、ライトコントロール機能ユニットは、４×４サブマトリックスの横方向の位置を入れ替える４×１６バイトのスワップユニット１４０５を備えている。各々転置された４×４サブマトリックス（６４バイトデータ）は、ＰＥ０−３、ＰＥ４−７、ＰＥ８−Ｂ、ＰＥＣ−Ｆのレジスタ０−３から順次読出され、４×１６バイトのスワップユニット１４０５に供給される。４×１６バイトのスワップユニット１４０５から出力された４個の４×４サブマトリックスは、対応のＩＭＥＭ０−３、ＩＭＥＭ４−７、ＩＭＥＭ８−Ｂ、ＩＭＥＭＣ−Ｆのアドレスジェネレータ１４０３によって発生させたライトアドレスに格納される。
【０１５０】
ＩＭＥＭ０−Ｆに書込まれ、サブマトリックス（各々リードコントロール機能ユニットによるスワッピング及びライトコントロール機能ユニットによる転置を受けている）を有している１６×１６マトリックスは、当初ＩＭＥＭ０−Ｆに格納されていた１６×１６マトリックスデータのコーナーターン済みのバージョンである。
【産業上の利用可能性】
【０１５１】
本発明は、装置間のフルクロスバー接続を設ける代りに、各ＰＥから選択されたＩＭＥＭユニットへの接続のみを与えることによって、ＳＩＭＤモードで動作するプロセッシング・エレメントの内部メモリに分散記憶された正方マトリックス及びその転置マトリックスに時間と面積の効率良いアクセスするために使用し得る。この選択は、直接接続のために自身のＩＭＥＭのみに、またコーナーターンを実行するため転置マトリックスの生成に必要なＩＭＥＭユニットに、時間と面積の効率良いアクセスすることを可能とする仕方でなされる。
【０１５２】
ここに例示した実施態様及び実施例は、本発明の（付記を含む）全開示の範囲内において変更ないし調整が可能である。本発明の各付記の範囲内において、種々の開示された要素を種々の仕方で組合わせ、また選択することができる。即ち、付記を含む全開示及び技術上のコンセプトに従って当業者によってなされ得る変更は本発明に含まれる。
【符号の説明】
【０１５３】
１００  プロセッシング・エレメント（ＰＥ）
１０１  各ＰＥの内部メモリ
１０２  時計方向のパイプラインリングバス
１０３  反時計方向のパイプラインリングバス
１０４  ＰＥと自身のＩＭＥＭの間のデータ接続
２００  ＰＥと隣接ＩＭＥＭの間のデータ接続
２０１  接続パスを選択するためのマルチプレクサ  
３００  ＰＥ群
３０１  ＩＭＥＭ群
３０２  コネクション装置
３０３  コントロール装置
４００  画像ピクセル
４０１  ４×４ピクセルのサブブロック
４０２  １６×１６ピクセルのマクロブロック
４０３  横方向位置のフィルタ
４０４  ピクセル値例とサブブロック
４０５  コーナーターン、位置（ｘ、ｙ）から位置（ｙ、ｘ）に交換する転置操作
４０６  入力例についての転置ピクセル値とサブブロック
４０７  縦方向位置のフィルタ
４０８  ２次元フィルタリングされたマクロブロック
５００  コネクション装置
５０１  リードコントロール機能ユニット
５０２  ライトコントロール機能ユニット
５０３  各ＰＥから自身のＩＭＥＭへのパスを与えるリードコントロール機能からのパス０
５０４  各ＰＥからＲ＿ＴＲＡＮＳユニットにより特定されるＩＭＥＭへのパスを与えるリードコントロール機能からのパス１
５０５  セレクタ
５０６  Ｒ＿ＴＲＡＮＳユニット
５０７  各ＰＥから自身のＩＭＥＭへのパスを与えるライトコントロール機能からのパス０
５０８  各ＰＥからＷ＿ＴＲＡＮＳユニットにより特定されるＩＭＥＭへのパスを与えるライトコントロール機能からのパス１
５０９  セレクタ
５１０  Ｗ＿ＴＲＡＮＳユニット
６００  アドレスオフセット発生用の制御信号として用いられる３ビットカウンタ、下位２ビットは処理中のメモリエレメントサブブロック行を特定する
６０１  セレクタ
６０２  ４ＩＭＥＭユニットの群
６０３  ＩＭＥＭアドレスジェネレータ
６０４  インバータ
６０５  ４×１６バイトスワップユニット
６０６  ４×４バイト転置ユニット
６０７  ＰＥレジスタファイルアドレスビット
６０８  ４ＰＥ内の４ＰＥレジスタファイル群
７００  ＩＭＥＭへのリードアクセスのアドレス
７０１  ＩＭＥＭへのライトアクセスのアドレス
７０２  正しいＩＭＥＭアドレス選択のために用いるカウンタビット２
７０３  セレクタ
８００  アドレスジェネレータ０
９００  アドレスジェネレータ１
９０１  ＰＡＴＨ情報の評価によってカウンタビット０と反転カウンタビット０の間の選択をするセレクタ
１０００  メモリベースアドレスにカウンタビット０及びカウンタビット１又は反転カウンタビット１を付加してＩＭＥＭアドレスを発生させるアドレスジェネレータ２
１００１  ＰＡＴＨ情報の評価によってカウンタビット１と反転カウンタビット１の間の選択をするセレクタ
１１００  メモリベースアドレスにカウンタビット０又は反転カウンタビット０及びカウンタビット１又は反転カウンタビット１を付加してＩＭＥＭアドレスを発生させるアドレスジェネレータ３
１１０１  ＰＡＴＨ情報の評価によってカウンタビット１と反転カウンタビット１の間の選択をするセレクタ
１１０２  ＰＡＴＨ情報の評価によってカウンタビット０と反転カウンタビット０の間の選択をするセレクタ
１２００  メモリエレメントサブブロック行においてメモリエレメントサブブロックの横方向位置をスワップするのに用いる４×１６バイトデータスワップユニット
１２０１  カウンタビット０が１であるとき横方向アドレスビット０のみが異なる２つのサブブロックからのサブブロックデータをスワップするための第１マルチプレクサ段
１２０２  カウンタビット１が１であるとき横方向アドレスビット１のみが異なる２つのサブブロックからのサブブロックデータをスワップするための第２マルチプレクサ段
１３００  メモリエレメントサブブロックのコーナーターンを行わせる４×４バイト転置ユニット
１３０１  縦方向に各４バイトである４横方向ワードを有するメモリエレメントサブブロックとして構成される４×１６バイトスワップユニットからの１６バイト入力
１３０２  ＰＥレジスタファイルに転送するための１６バイト出力ベクトルとして構成された、各々縦方向に４バイトの４横方向ワードを有するメモリエレメントサブブロック
１３０３  １６バイト出力ベクトルとして構成された転置メモリエレメントサブブロック又は１６バイト入力ベクトルの直接出力を選択するための出力マルチプレクサ
１４００  制御信号としてアドレスオフセット発生に用いられる３ビットカウンタ（下位２ビットは、処理中のメモリエレメントサブブロック行を特定する）
１４０１  リードアドレスとライトアドレスのどちらをＩＭＥＭユニットに転送するかを選択するセレクタ
１４０２  一のメモリエレメントサブブロックを書込むために同じアドレスを受ける４ＩＭＥＭユニットの群
１４０３  メモリエレメントサブブロック行の各メモリエレメントサブブロックのためのＩＭＥＭアドレスジェネレータ
１４０４  正しいＩＭＥＭアドレスを発生させるために反転カウンタビットを発生させるためのインバータ
１４０５  ＰＥレジスタファイルアドレスビット
１４０６  ４ＰＥ内の４ＰＥレジスタファイルの群
１５００  リードコントロール機能ユニットのフローチャート（可変ＰＡＴＨの評価によってＰＥレジスタファイルにどのデータを移行させるかを識別する）
１５０１  リードコントロール機能ユニットのフローチャート（ＩＭＥＭベースアドレスと下位ｌｏｇ２（Ｎ／ｍ）  カウンタビットとを組合わせることにより（Ｎ／ｍ）個のＩＭＥＭアドレスを計算する）
１５０２  リードコントロール機能ユニットのフローチャート（ＩＭＥＭにアドレスを送りメモリエレメントサブブロック行当りＮ／ｍ×ｍ２バイトを受信する）
１５０３  リードコントロール機能ユニットのフローチャート（ＩＭＥＭベースアドレスと下位ｌｏｇ２（Ｎ／ｍ）  カウンタビット及び反転カウンタビットを組合わせることにより（Ｎ／ｍ）個のＩＭＥＭアドレスを計算する）
１５０４  リードコントロール機能ユニットのフローチャート（（Ｎ／ｍ）個のアドレスをＩＭＥＭに送り、ｍ個の隣接ＩＭＥＭが１アドレスを受ける）
１５０５  リードコントロール機能ユニットのフローチャート（（Ｎ／ｍ）×ｍ２バイトを受ける）
１５０６  リードコントロール機能ユニットのフローチャート（アドレスビット上に動作するインデックスｉを０にセットする）
１５０７  リードコントロール機能ユニットのフローチャート（位置ｉのカウンタビットをテストし、位置ｉのビットが０ならば１５０９に続け、そうでなければ１５０８に続ける）
１５０８  リードコントロール機能ユニットのフローチャート（サブブロック行の位置を対ごとにスワップ、インデックスにおいてビットｉのみが異なっていれば２サブブロックの対がサブブロックによって形成される）
１５０９  リードコントロール機能ユニットのフローチャート（インデックスｉを増加させる）
１５１０  リードコントロール機能ユニットのフローチャート（ｉがｌｏｇ２Ｎ／ｍより低いと、１５０７にジャンプし、そうでなければ１５１１に続ける）
１５１１  リードコントロール機能ユニットのフローチャート（縦方向にｍバイトで、横方向に隣接したｍエレメントとして、ｍ２バイトを再構成する）
１５１２  リードコントロール機能ユニットのフローチャート（各バイトを位置（ｘ、ｙ）から（ｙ、ｘ）に変えることによって、ｍ×ｍマトリックスを転置する）
１５１３  リードコントロール機能ユニットのフローチャート（ｍバイトの１メモリエレメントを全Ｎ個のＰＥの下位ｌｏｇ２（Ｎ／ｍ）ＣＮＴビットにより指定されるアドレスに格納する）
１６００  １マトリックスエレメント（１バイトに等しい）
１６０１  １６×１６マトリックスエレメントのマクロブロック
１６０２  ＩＭＥＭナンバー
１６０３  ｍ＝４縦方向マトリックスエレメント個のマトリックスエレメント
１６０４  横方向に隣接する４メモリエレメントを有するメモリエレメントサブブロック
１６０５  横方向に隣接する４メモリエレメントサブブロックを有するメモリエレメントサブブロック行
１７００  ８×８マトリックスエレメントのレベル１のマトリックス
１８００  レベル１のマトリックスの対角方向サブブロック
１８０１  レベル１のマトリックスの反対角方向サブブロック
１８０２  レベル２のマトリックスの反対角方向ブロック
１９００  レベル１の部分アドレスオフセットマトリックス
１９０１  レベル２の部分アドレスオフセットマトリックス
１９０２  アドレスオフセットマトリックス
２４００  ライトコントロール機能ユニットのフローチャート（Ｎ個の全ＰＥの下位ｌｏｇ２（Ｎ／ｍ）ＣＮＴビットにより特定されるアドレスから、ｍバイトの１メモリエレメントを読出す）
２４０１  ライトコントロール機能ユニットのフローチャート（可変ＰＡＴＨの評価によってアドレス計算の仕方を識別する）
２４０２  ライトコントロール機能ユニットのフローチャート（ＩＭＥＭベースアドレスと下位ｌｏｇ２（Ｎ／ｍ）  カウンタビットを組合わせることにより、Ｎ／ｍ個のＩＭＥＭアドレスを計算する）
２４０３  ライトコントロール機能ユニットのフローチャート（ＩＭＥＭベースアドレスと下位ｌｏｇ２（Ｎ／ｍ）  カウンタビット及び反転カウンタビットを組合わせることにより、Ｎ／ｍ個のＩＭＥＭアドレスを計算する）
２４０４  ライトコントロール機能ユニットのフローチャート（１メモリエレメントサブブロック行当り（Ｎ／ｍ）個のアドレスとＮ／ｍ×ｍ２バイトをＩＭＥＭに送る）
【図１】
0005532132.tif 000002
【図２】
0005532132.tif 000003
【図３】
0005532132.tif 000004
【図４】
0005532132.tif 000005
【図５】
0005532132.tif 000006
【図６】
0005532132.tif 000007
【図７】
0005532132.tif 000008
【図８】
0005532132.tif 000009
【図９】
0005532132.tif 000010
【図１０】
0005532132.tif 000011
【図１１】
0005532132.tif 000012
【図１２】
0005532132.tif 000013
【図１３】
0005532132.tif 000014
【図１４】
0005532132.tif 000015
【図１５】
0005532132.tif 000016
【図１６】
0005532132.tif 000017
【図１７】
0005532132.tif 000018
【図１８】
0005532132.tif 000019
【図１９】
0005532132.tif 000020
【図２０】
0005532132.tif 000021
【図２１】
0005532132.tif 000022
【図２２】
0005532132.tif 000023
【図２３】
0005532132.tif 000024
【図２４】
0005532132.tif 000025
【図２５】
0005532132.tif 000026
【図２６】
0005532132.tif 000027
【図２７】
0005532132.tif 000028
【図２８】
0005532132.tif 000029
【図２９】
0005532132.tif 000030
【図３０】
0005532132.tif 000031
【図３１】
0005532132.tif 000032
【図３２】
0005532132.tif 000033
【図３３】
0005532132.tif 000034
【図３４】
0005532132.tif 000035
【図３５】
0005532132.tif 000036
【図３６】
0005532132.tif 000037
【図３７】
0005532132.tif 000038
【図３８】
0005532132.tif 000039
【図３９】
0005532132.tif 000040
【図４０】
0005532132.tif 000041
【図４１】
0005532132.tif 000042
【図４２】
0005532132.tif 000043
【図４３】
0005532132.tif 000044
【図４４】
0005532132.tif 000045
【図４５】
0005532132.tif 000046
【図４６】
0005532132.tif 000047
【図４７】
0005532132.tif 000048
【図４８】
0005532132.tif 000049
【図４９】
0005532132.tif 000050
【図５０】
0005532132.tif 000051
【図５１】
0005532132.tif 000052
【図５２】
0005532132.tif 000053
【図５３】
0005532132.tif 000054
【図５４】
0005532132.tif 000055
【図５５】
0005532132.tif 000056
【図５６】
0005532132.tif 000057
【図５７】
0005532132.tif 000058
【図５８】
0005532132.tif 000059
【図５９】
0005532132.tif 000060
【図６０】
0005532132.tif 000061
【図６１】
0005532132.tif 000062
【図６２】
0005532132.tif 000063
【図６３】
0005532132.tif 000064
【図６４】
0005532132.tif 000065
【図６５】
0005532132.tif 000066
【図６６】
0005532132.tif 000067
【図６７】
0005532132.tif 000068
【図６８】
0005532132.tif 000069
【図６９】
0005532132.tif 000070
【図７０】
0005532132.tif 000071
【図７１】
0005532132.tif 000072
【図７２】
0005532132.tif 000073