(57)【特許請求の範囲】
【請求項１】
集合的メモリと協調するように構成された複数のプロセッサを備えたデータ処理装置において、
前記プロセッサと前記集合的メモリの間でのデータ通信を許容するプライベート・バスと、
前記プライベート・バス上に定常的なデータ・ストリームを生成しつつ、データ・バーストにて前記集合的メモリにアクセスするメモリ・インタフェースと、を備え、  前記メモリ・インタフェースは、
前記複数のプロセッサのそれぞれに対応した複数のゾーンを有する集合的バッファメモリと、
前記複数のゾーンを制御する制御装置と、を備えることを特徴とするデータ処理装置。
【請求項２】
前記メモリ・インタフェースは、前記集合的バッファ・メモリへのアクセスを制御するためのアービターを備えることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
プロセッサと集合的メモリの間で排他的なデータ通信を許容するプライベート・バス経由で集合的メモリと協調するように構成された複数のプロセッサによるデータ処理方法において、
前記複数のプロセッサのそれぞれに対応した複数のゾーンを有する集合的バッファメモリと、前記複数のゾーンを制御する制御装置と、を備えたメモリ・インタフェースは、前記プライベート・バス上に定常的なデータ・ストリームを生成しつつ、データ・バーストにて前記集合的メモリにアクセスし、
前記制御装置は、それぞれ異なる前記プロセッサに属する前記集合的メモリのゾーンを制御することを特徴とするデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、集合的メモリを共有する複数のプロセッサから構成されるデータ処理方式に関するものである。本発明は、ＭＰＥＧデータ・ストリームをデコードできる集積回路などに応用することができる。
【０００２】
【従来の技術】
文献ＷＯ  ９５／３２５７９は、ＭＰＥＧデコーダーについて記述している。ＭＰＥＧデコーダーは、外部ＤＲＡＭメモリを持つ。制御装置は、外部ＤＲＡＭメモリおよび内部双方向バスをコントロールする。外部ＤＲＡＭメモリと内部装置との間のデータ伝送は、すべて、この双方向バス経由で処理される。
【０００３】
【発明の概要】
本発明の目的は、特に高速処理の実行を、比較的低コストにおいて可能とすることである。
【０００４】
本発明は、次の諸点を考慮している。プロセッサとメモリとの間のデータ通信は、一般に、バス経由で処理される。このデータ通信のためには、バスは、単位時間あたりのビット数で表される所定の通過帯域を持つ必要がある。データのメモリからの読み出し、およびメモリへの書き込みにおけるプロセッサのデータ授受速度は、必要とされる通過帯域によって決まる。たとえば、ビデオデータをリアルタイム処理するプロセッサでは、通過帯域は相当に大きい必要がある。
【０００５】
原則として、バスの通過帯域は、次の２つの要因に左右される。第１の要因として、通過帯域は、バスを構成する回路の電気的特性に依存する。たとえば、キャパシタンスが相当に大きい回路では、単位時間に伝送できるビット数はかなり少なくなる。第２の要因として、通過帯域は、バスを構成する回路数に依存する。たとえば、最大伝送速度が１Ｍｂｐｓの回路では、１０本の信号線で構成されるバス（バス幅＝１０ビット）の通過帯域は１０Ｍｂｐｓとなる。１００本の信号線（バス幅＝１００ビット）のバスでは、通過帯域は１００Ｍｂｐｓとなる。
【０００６】
一般に、集合的バスを介して複数のプロセッサが集合的メモリにアクセスできるように配列されている。従来の技術に関する資料では、その例について記している。集合的バスは、複数のプロセッサが集合的メモリにアクセスできるようにするため、一般に、相当の長さを持つことになる。このことは、このバス回路は、キャパシタンスが比較的大きくなることを意味する。したがって、特にビデオ処理などの高速処理が要求される場合に適切な通過帯域を確保するためには、比較的大型のバスが必要となる。大型のバス、特に集積回路用のバスは、回路基板で占める面積が大きいために高価なものとなる。
【０００７】
本発明によって、冒頭の段落に定義されたタイプの配列は、つぎのように構成されることになる。
【０００８】
−プライベート・バス。プライベート・バスは、あるプロセッサと集合的メモリの間だけでデータ通信を可能にする。
【０００９】
−プライベート・バスを介して実質的に定常的なデータ・ストリームを維持するためのメモリ・インターフェース。集合的メモリへのアクセスはバースト・モードで行われる。
【００１０】
この構成によって、個々のプライベート・バスについて、通過帯域が関連するプロセッサに正確に適合するようにバス幅を最適化できるようになる。メモリ・インターフェースによって、バスは実質的に定常的なデータ・ストリームを仲介することが保証されるため、プライベート・バスの通過帯域の効率的利用が可能となる。さらに、プライベート・バスは、１個のプロセッサを集合的メモリに接続するだけでよくなるため、バス回路は比較的短くなる。結果として、１つのバス回路の単位時間あたりのビット数が比較的大きくなる。こうした諸要因が複合した結果、多数の実装において、プライベート・バスが占める表面積の合計は、従来の技術において用いられた集合的バスの場合よりも小さくてすむことになる。したがって、本発明は、比較的低コストで実装を実現可能とする。
【００１１】
【発明の実施の形態】
本発明、および本発明の実用化にあたって活用可能な付加的な特徴について、以下、図を添えて詳しく説明する。
【００１２】
以下は、参照記号についての説明である。すべての図で、類似物には同一の参照文字を当てている。複数のものも、図では単数表示している場合がある。この場合、類似物の間の区別のため、参照文字に数字を接尾辞としてつけている。接尾辞の数字は、便宜上、省略されている場合もある。以上は、記述と請求項ともに当てはまる。
【００１３】
図１は、本発明のデータ処理の配列である。配列は、集合的メモリＳＤＲＡＭ、メモリ・インターフェースＩＮＴ、３つのデータ処理装置（Ｂ１、Ｂ２、Ｂ３）から構成される。データ処理装置は、以下、単に「装置」と称す。装置Ｂは、おのおの、プライベート・読み出しバスＢＢＲおよびプライベート書き込みバスＢＢＷを介して、メモリ・インターフェースＩＮＴに接続されている。個々のプライベート読み出しバスＢＢＲとプライベート書き込みバスＢＢＷは、おのおの、装置Ｂに１対１対応している。メモリ・インターフェースＩＮＴは、集合的バスＢＭを介して、集合的メモリＳＤＲＡＭに接続されている。装置Ｂ、プライベート読み出しバスＢＢＲ、プライベート書き込みバスＢＢＷ、およびメモリ・インターフェースＩＮＴは、一つの集積回路の一部分となる可能性もあるが、集合的メモリＳＤＲＡＭは外部装置である。
【００１４】
このデータ処理配列の一般的な操作は次の通りである。装置Ｂは、要求に応じて、データを受け取って、処理し、集合的メモリＳＤＲＡＭに格納する。データを処理した後、装置Ｂは、処理済みデータを、メモリ・インターフェースＩＮＴを介して集合的メモリＳＤＲＡＭに入力する。メモリ・インターフェースＩＮＴは、さまざまな装置Ｂによる集合的メモリＳＤＲＡＭへのアクセスを制御する。
【００１５】
メモリ・インターフェースＩＮＴは、二つの基本的な機能を持つ。第１の機能は、集合的メモリＳＤＲＡＭへのアクセスのレベルにおいて装置Ｂの間のアービトレーションを実行することである。一つの装置Ｂの集合的メモリＳＤＲＡＭへの１回のアクセスでは、読み出しか書き込みのいずれかが実行できる。このことは、装置Ｂは、バースト・モードにおいてのみ、メモリにアクセスできることを意味している。第２の機能は、読み出しの場合、メモリ・インターフェースＩＮＴは、集合的メモリＳＤＲＡＭから入ってくるデータ・バーストを変換し、実質的に定常的なデータ・ストリームに変えて装置Ｂに送るというものである。このデータ・ストリームは、したがって、個々のプライベート読み出しバスＢＢＲを介して装置Ｂに伝送される。書き込みの場合、メモリ・インターフェースＩＮＴは、任意の装置Ｂから入ってくる実質上定常的なデータ・ストリームをデータ・バーストに変換して、集合的メモリＳＤＲＡＭに書き出す。
【００１６】
図２は、メモリ・インターフェースＩＮＴの動作を示す概略図である。Ｔ（ＢＭ）は、集合的メモリＳＤＲＡＭとメモリ・インターフェースＩＮＴとの間の、集合的バスＢＭを介したデータ転送を表す。Ｔ（ＢＢＲ１）、Ｔ（ＢＢＲ２）、Ｔ（ＢＢＲ３）は、メモリ・インターフェースＩＮＴと、装置Ｂ１、Ｂ２、およびＢ３の間の、対応するプライベート読み出しバスＢＢＲ１、ＢＢＲ２、およびＢＢＲ３を介したデータ転送を表す。Ｔ（ＢＢＷ１）、Ｔ（ＢＢＷ２）、Ｔ（ＢＢＷ３）は、メモリ・インターフェースＩＮＴと、装置Ｂ１、Ｂ２、およびＢ３の間の、対応するプライベート書き込みバスＢＢＷ１、ＢＢＷ２、ＢＢＷ３を介したデータ転送を表す。
【００１７】
データ転送Ｔ（ＢＭ）は、データ・バーストＤＢから構成される。おのおののデータ・バーストＤＢは、集合的メモリＳＤＲＡＭの、装置Ｂによる書き込みモードまたは読み出しモードのいずれかにおける１つのアクセス操作に対応する。ＤＢのあとのカッコのなかの参照符は、バースト状態のデータが装置Ｂのどれに属するかを示し、またアクセスのタイプ：書き込み（Ｗ）または読み出し（Ｒ）を示す。たとえば、ＤＢ１（Ｂ１／Ｒ）は、データ・バーストＤＢ１は、Ｂ１による読み出しモードにおける集合的メモリＳＤＲＡＭへのアクセスであることを示す。
【００１８】
図２は、メモリ・インターフェースＩＮＴは、集合的メモリＳＤＲＡＭから入ってくる所定の装置Ｂに属するデータ・バーストの「スムージング」を実行することを示している。この図は、逆に、メモリ・インターフェースＩＮＴは、上記のデータをバーストとして（データ圧縮）集合的メモリＳＤＲＡＭに書き込むために、装置Ｂから受け取るデータの時間短縮（ｔｉｍｅ  ｃｏｎｃｅｎｔｒａｔｉｏｎ）を実行することも示している。したがって、プライベート読み出しバスＢＢＲおよびプライベート書き込みバスＢＢＷを介したデータ転送は、比較的低速度で実施される。結果として、このことによって、プライベート読み出しバスＢＢＲとプライベート書き込みバスＢＢＷは、比較的狭い通過帯域を持つことが可能となり、結果的にバス幅が比較的小さくなる。この点については、バスのサイズは、必ずしも、バスによって転送されるデータに含まれるビット数に対応しない点に注意する必要がある。たとえば、１６ビットデータは、４ビット語に分割できるため、４ビット・バスを介して４語のシーケンスの形で転送できる。
【００１９】
図３は、装置Ｂを示している。装置Ｂは、プロセッサＰおよび一般アドレッシング回路ＡＧＡから構成される。プロセッサＰは、論理要求ＬＲＱを出す。装置Ｂはビデオデータを処理すると想定されており、この場合、論理要求ＬＲＱは、たとえば所定の行のピクセルをカレント・イメージとして要求することであるかもしれない。一般アドレッシング回路ＡＧＡは、論理要求ＬＲＱを、物理要求ＰＲＱに変換する。物理要求ＰＲＱは、要求されたデータの集合的メモリＳＤＲＡＭの中での保管場所である物理的アドレスを定義する。物理的要求ＰＲＱは、開始アドレス、この開始アドレスを起点としてサーチするアドレスの数、ならびに場合によっては、データのサーチ中に使用するスキーマのいずれかの形をとる。このスキーマは、読み出す連続するアドレスの数、ジャンプするアドレスの数、ならびに「読み出しおよびジャンプ」反復の数のいずれかの形をとる。論理要求ＬＲＱから物理的要求ＰＲＱへのトランスレーションはトランスレーション・パラメーターによって定義されるが、ＡＧＡは、同じ方法でプログラム可能となる場合がある。このことで、データを集合的メモリＳＤＲＡＭの中にフレキシブルに格納できる。
【００２０】
図４は、メモリ・インターフェースＩＮＴである。メモリ・インターフェースＩＮＴは、アービターＡＲＢ、アクセス・インターフェースＳＩＦ、バッファ・メモリ配列ＢＵＦ、ならびにアドレッシングおよびマクロ命令回路ＡＧＢから構成される。アドレッシングおよびマクロ命令回路ＡＧＢは、個々の装置Ｂに対して存在する。
【００２１】
全体として、メモリ・インターフェースＩＮＴの内部操作は、次の通りである。個々のアドレッシングおよびマクロ命令回路ＡＧＢは、装置Ｂからの物理要求を、関連するマクロ命令を規準として分割する。マクロ命令は、メモリーの中の任意の列へのアクセス要求を表す。マクロ命令がアービターＡＲＢに対して提出される前に、アドレッシングおよびマクロ命令回路ＡＧＢは、バッファ・メモリ配列ＢＵＦのなかに十分な余地が存在することを検証する。この目的のため、最初に、マクロ命令をバッファ・メモリ配列ＢＵＦに対して適用する。バッファ・メモリ配列ＢＵＦが、マクロ命令によって定義されたデータ数の格納のための余地が存在することを確認した場合は、アドレッシングおよびマクロ命令回路ＡＧＢは、アービターＡＲＢに対してマクロ命令を提出する。アービターＡＲＢは、さまざまなアドレッシングおよびマクロ命令回路ＡＧＢからのマクロ命令を受け取り、アクセス・インターフェースＳＩＦに対して適用されるマクロ命令を選択する。この選択は、後述するアービトレーション・スキーマに従って行われる。アクセス・インターフェースＳＩＦは、アービターＡＲＢから受け取ったマクロ命令を、受け取った順番に処理する。したがって、アクセス・インターフェースＳＩＦは、集合的メモリＳＤＲＡＭに対するアクセスを提供し、アクセス操作は、処理されるマクロ命令によって定義される。
【００２２】
マクロ命令は、Ｙ個のアドレスから構成されるＸ個のアドレス・グループへのアクセスを可能とし、アドレス・グループは、Ｚ語ずつ分割される。ここで、Ｘ、Ｙ、Ｚは整数である。したがって、マクロ命令は、次の情報を含む。
【００２３】
−アクセスする最初のアドレス
−アドレス・グループのなかの最初のアドレスに続いてアクセスされるアドレス数（Ｙ−１）；
−連続するアドレスの２つのグループの間のスキップするアドレスの数（Ｚ）；
−最初のグループに加えてアクセスされるアドレス・グループの数（Ｘ−１）；
−アクセスのタイプ：読み出し、または書き込み。
【００２４】
ビットレベルにおけるマクロ命令の例は、次の通りである。集合的メモリＳＤＲＡＭに格納されているデータは、幅３２ビット、集合的メモリＳＤＲＡＭの最大容量は２５６メガビットであるものとする。このことから１個のアドレスは、２３ビットで表されることになる。さらに、アクセス操作の最大アドレス数は１６に限定されるものとする。こうした制限は、回転待ち時間（ｌａｔｅｎｃｙ）という点から設けられる。したがって、Ｘ−１およびＹ−１は大部分は１５となり、したがって４ビットでコーディングできる。最後に、集合的メモリＳＤＲＡＭの構成から、１つの列に含まれる最大アドレス数は５１２である。結果として、ジャンプするアドレス数は５１１を超えることはないことから、ジャンプするアドレス数は９ビットでコーディングできる。以上から、マクロ命令のサイズは、２３＋２×４＋９＋１＝４１ビットとなる。このアドレスは、４０〜１８ビットで、アクセス・タイプは１７ビットで、読み出し語数（Ｙ−１）は１６〜１３ビットで、ジャンプする語数（Ｚ）は１２〜４ビットで、語のグループ数（Ｘ−１）は３〜０ビットでコーディングできる。
【００２５】
図５は、任意の装置Ｂによる読み出しモードにおける集合的メモリＳＤＲＡＭへのアクセスの処理の概略図である。横軸は時間を示す。縦軸には、関係する各種機能要素が配されている。この図の矢印は、インターフェース・メモリＳＲＡＭへのアクセスの処理におけるさまざまなステップＳを示している。
【００２６】
Ｓ１＝関連する装置ＢのプロセッサＰは、一般アドレッシング回路ＡＧＡに対して、論理要求ＬＲＱを提出する。論理要求ＬＲＱは、たとえば、画像のためのデータセットの中のある行の処理対象となる輝度ピクセルなど、データのサブセットを規定する。
【００２７】
Ｓ２＝一般アドレッシング回路ＡＧＡは、論理要求ＬＲＱを、物理要求ＰＲＱに変換する。
【００２８】
Ｓ３＝一般アドレッシング回路ＡＧＡは、物理要求ＰＲＱを、マクロ命令アドレッシング回路ＡＧＢに提出する。
【００２９】
Ｓ４＝マクロ命令アドレッシング回路ＡＧＢは、物理要求ＰＲＱをマクロ命令に変換する。
【００３０】
Ｓ５＝マクロ命令アドレッシング回路ＡＧＢは、物理要求ＰＲＱから変換された最初のマクロ命令を、バッファ・メモリ配列ＢＵＦに提出する。
【００３１】
Ｓ６＝バッファ・メモリ配列ＢＵＦは、マクロ命令によって指定されたデータ数を格納する余地の有無を検証する。
【００３２】
Ｓ７＝バッファ・メモリ配列ＢＵＦは、マクロ命令アドレッシング回路ＡＧＢに対して、余地があるという承認を出す。
【００３３】
Ｓ８＝任意の遅延を示す。
【００３４】
Ｓ９＝マクロ命令アドレッシング回路ＡＧＢは、アービターＡＲＢに対してマクロ命令を提出する。
【００３５】
Ｓ１０＝アービターＡＲＢは、装置による集合的メモリＳＤＲＡＭへの任意のアクセス（読み出しモードまたは書き込みモード）に対して適用されるアービトレーション・スキーマに従って、マクロ命令を集合的メモリＳＤＲＡＭへのアクセス要求として処理する。
【００３６】
Ｓ１１＝アービターＡＲＢは、マクロ命令をアクセス・インターフェースＳＩＦに提出する。
【００３７】
Ｓ１１ａ＝アービターＡＲＢは、バッファ・メモリ配列ＢＵＦに対して、マクロ命令がアクセス・インターフェースＳＩＦに提出されたという承認を出す。
【００３８】
Ｓ１２＝マクロ命令は、アクセス・インターフェースＳＩＦの中で待ち行列となり、アクセス・インターフェースＳＩＦは先に受け取ったマクロ命令を最初に処理する。
【００３９】
Ｓ１３＝アクセス・インターフェースＳＩＦは、マクロ命令に基づいて、集合的メモリＳＤＲＡＭに対する制御信号を生成する。この制御信号は、マクロ命令によって指定されたアドレスにおいてデータの読み出しを引き起こす。
【００４０】
Ｓ１４＝集合的メモリＳＤＲＡＭから読み出されたデータは、バッファ・メモリ配列ＢＵＦに転送される。
【００４１】
Ｓ１５＝バッファ・メモリ配列ＢＵＦは、一時的にデータを格納する。
【００４２】
Ｓ１６＝バッファ・メモリ配列ＢＵＦは、実質的に定常的なデータ・ストリームとしてデータをプロセッサＰに転送する。
【００４３】
ステップＳ１において作成された論理要求ＬＲＱに続く個々のマクロ命令について、ステップＳ５〜Ｓ１５が繰り返される。
【００４４】
これから先のステップは、図５には示していない。ステップＳ１の時点で、一般アドレッシング回路ＡＧＡは、プロセッサＰに対して承認信号を送る。この信号は、論理要求ＬＲＱが受理され、処理されることを示している。承認信号への応答として、プロセッサＰは新しい論理要求を作成し、改めて通知されるまで保持している。マクロ命令アドレッシング回路ＡＧＢが、論理要求ＬＲＱへの応答として最後のマクロ命令を提出した時点で、論理要求ＬＲＱの処理は終了する。この場合、マクロ命令アドレッシング回路ＡＧＢは、一般アドレッシング回路ＡＧＡに対して、論理要求ＬＲＱの処理が完了したことを伝える承認信号を送る。この信号への応答として、一般アドレッシング回路ＡＧＡは、ステップＳ１によって開始された論理要求ＬＲＱの処理と同様の方法において、新しい論理要求ＬＲＱの処理を開始する。すなわち、処理が繰り返される。
【００４５】
図６ａおよび６ｂは、アービターＡＲＢに関するアービトレーション・スキーマである。図６ａでは、８通りの状態ＳＴ１〜ＳＴ８は、環状に配列されている。この状態ＳＴは、次々と起こり、円環を描く。一つ一つの状態ＳＴは、マクロ命令をアクセス・インターフェースＳＩＦに送信する可能性を示す。したがって、個々の状態は、メモリへのアクセスの可能性を示している。個々の状態は、任意のプロセッサＰに対応する。任意の状態と対応するプロセッサＰは、状態を表す円環のなかで規定されている。
【００４６】
図６ｂは、図６ａに対応するアービトレーション・プロセスを示す。このプロセスは、複数のステップＳＡ１〜ＳＡ８から構成されており、図６ａに示した個々の状態ＳＴに対して実行される。ステップＳＡ１は、状態のジャンプの後に実行される最初のステップである。ステップＳＡ１においては、アービターＡＲＢは、マクロ命令アドレッシング回路ＡＧＢから提出されたマクロ命令と、状態Ｓ［ｉ］に対応するプロセッサＰ［ｊ］からのその後の論理要求ＬＲＱが一時停止状態にあるか否かを検証する。マクロ命令が一時停止状態の時、ステップＳＡ１の後には、ステップＳＡ２が続く。ステップＳＡ２において、アービターＡＲＢは、アクセス・インターフェースＳＩＦに対して、対応するマクロ命令を送る。アクセス・インターフェースＳＩＦからのマクロ命令送出によって、任意の遅延の後、マクロ命令によって定義されたとおりに対応するプロセッサＰが集合的メモリＳＤＲＡＭにアクセスすることになる。マクロ命令が送出された後、アービターは次の状態にジャンプし、図６ｂに示したプロセスが繰り返される。
【００４７】
しかしながら、ステップＳ１において、アービターＡＲＢが状態Ｓ［ｉ］と対応するプロセッサＰに関連する一時停止中のマクロ命令が存在しないことを検出した場合には、ステップＳＡ１からステップＳＡ３になる。ステップＳＡ３において、アービターＡＲＢは、待ち状態となっている他のマクロ命令の有無を検証する。待ち状態の他のマクロ命令が存在しないとき、アービターＡＲＢは、次の状態にジャンプし、図６ｂに示されたプロセスが繰り返される。他の待ち状態のマクロ命令が存在するときは、アービターＡＲＢは、ステップＳＡ４を実行する。ステップＳＡ４においては、アービターＡＲＢは、優先度に従ってマクロ命令を選択する。すべてのマクロ命令には、優先度レベルが付されている。優先度レベルは、マクロ命令を出すプロセッサＰが決定する。したがって、アービターＡＲＢは、最高の優先度を持つマクロ命令を選択して、このマクロ命令をアクセス・インターフェースＳＩＦに送信する。マクロ命令の送信後、ＡＲＢは次の状態にジャンプし、図６ｂのプロセスが繰り返される。
【００４８】
図６ａおよび６ｂについては、すべての状態がプロセッサＰと対応している必要はない点に注意する必要がある。１つまたは２つ以上の状態が対応するプロセッサＰを持たないことも可能であり、この場合には自由状態となる。自由状態においては、アービターＡＲＢは、優先度だけを規準としてマクロ命令を選択する。こうした自由状態は、データ処理配列のなかに回転待ち時間および集合的メモリＳＤＲＡＭへのアクセスのレベルにおける通過帯域という点での制約が比較的軽度なプロセッサＰが含まれる場合には有用性がある。したがって、このプロセッサＰへのアクセスが不十分となる状況を回避するために、自由状態にしておくことができる。プロセッサＰは、この自由状態を活用して、集合的メモリＳＤＲＡＭにアクセスすることができる。
【００４９】
図７は、アクセス・インターフェースＳＩＦの例である。アクセス・インターフェースＳＩＦは、マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣ、コラム・ジェネレーターＣＡＧＵ、命令ジェネレーターＣＧＵ、制御信号ジェネレーターＩＦ＿ＳＤＲＡＭ、データ・バッファ・メモリＩＦ＿Ｄから構成される。
【００５０】
アクセス・インターフェースＳＩＦの一般的なオペレーションは次の通りである。マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣは、アービターＡＲＢからマクロ命令を受け取る。このメモリは、一時的に、これらのマクロ命令を格納し、これらを、到着順にコラム・ジェネレーターＣＡＧＵに送り出す。マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣが満杯になり、それ以上新しいマクロ命令を受け入れられなくなった時点で、マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣはそのことをアービターＡＲＢに報告する。「ＦＩＦＯが満杯である」ことを示すアクセス・インターフェースＳＩＦからの信号の結果として、アービターＡＲＢは、その時点で選択されているマクロ命令の転送を、マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣから新しいマクロ命令受け取り可能という報告が出されるまで延期する。「ＦＩＦＯが満杯である」というアクセス・インターフェースＳＩＦからの信号は、アービターＡＲＢをある時間の間「フリーズ」させるのである。
【００５１】
コラム・ジェネレーターＣＡＧＵは、前のマクロ命令に従ってメモリ・アクセス・オペレーションが実施された時点で、マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣに新しいマクロ命令を送るよう要求する。実際、コラム・ジェネレーターＣＡＧＵは、コマンド・ジェネレーターＣＧＵとの組み合わせで、マクロ命令を一連のアドレスにトランスレートする。集合的メモリＳＤＲＡＭのアドレスは、集合的メモリＳＤＲＡＭのバンク数、列数、および桁数によって定義される。マクロ命令が、１列のインターフェース・メモリＳＲＡＭへのアクセスと関連することについては前述したが、このことから自動的に、このアクセスは１つのバンクにおいて生じることが暗示される。したがって、コラム・ジェネレーターＣＡＧＵは、マクロ命令に従って一連のアドレスを定義するためには、マクロ命令に基づいて一連のコラムを生成すればよい。このコラム・ジェネレーターＣＡＧＵの実装（ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）は、たとえば、いくつかのカウンターと論理回路から構成される可能性がある。こうした実装においては、マクロ命令の内容が、プログラムに対してカウンターとして機能する。
【００５２】
命令ジェネレーターＣＧＵは、集合的メモリＳＤＲＡＭの別のコラム番号を受け取ることができる。命令ジェネレーターＣＧＵは、さらに、マクロ命令バッファ・メモリＦＩＦＯ＿ＭＣから、バンク数、およびマクロ命令によって定義されたアドレスの列数を受け取る。この情報によって、コラム・ジェネレーターＣＡＧＵは、集合的メモリＳＤＲＡＭへのアクセスのための一連の命令を定義することができ、１個のコマンドが１個のアドレスを定義することができる。さらに、命令ジェネレーターＣＧＵは、マクロ命令によって定義されたアクセス・オペレーションを実行できるよう、集合的メモリＳＤＲＡＭを正しい状態に設定するために必要な命令を生成する。これらの命令は、プリロードやアクチベートなど、集合的メモリＳＤＲＡＭに関する所定の処理と関連する。さらに、命令ジェネレーターＣＧＵは、集合的メモリＳＤＲＡＭが定期的にリフレッシュされるよう保証し、リフレッシュ・オペレーションの実行に必要な命令を生成する。
【００５３】
制御信号ジェネレーターＩＦ＿ＳＤＲＡＭは、命令ジェネレーターＣＧＵから受け取った命令に基づいて制御信号を生成する。たとえば、制御信号ジェネレーターＩＦ＿ＳＤＲＡＭは、ＲＡＳ、ＣＡＳといった頭文字で参照される信号を生成する。制御信号ジェネレーターＩＦ＿ＳＤＲＡＭは、一連の制御信号に集合的メモリＳＤＲＡＭのための所定の待ち時間が確保されるように保証する。こうした待ち時間は、使用される集合的メモリＳＤＲＡＭのタイプによって異なる可能性がある。結果として、制御信号ジェネレーターＩＦ＿ＳＤＲＡＭは、使用される集合的メモリＳＤＲＡＭのタイプに特異的なものとなる。別のタイプの集合的メモリＳＤＲＡＭを使用するときは、制御信号ジェネレーターＩＦ＿ＳＤＲＡＭを変更、すなわちプログラムし直せばよい。原則として、アクセス・インターフェースの他の要素については変更は不要である。
【００５４】
データ・バッファ・メモリＩＦ＿Ｄは、読み出しの場合は図４に示すとおり集合的メモリＳＤＲＡＭからバッファ・メモリへのデータ転送、書き込みの場合はバッファ・メモリＢＵＦから集合的メモリＳＤＲＡＭへのデータ転送にかかわる。このため、データ・バッファ・メモリＩＦ＿Ｄは、集合的メモリＳＤＲＡＭから供給されたデータ（読み出し）、または集合的メモリＳＤＲＡＭに適用されたデータ（書き込み）を同期化する。さらに、データ・バッファ・メモリＩＦ＿Ｄは、単位深さを持つＦＩＦＯを形成する。すなわち、任意のクロック・パルスによって、集合的メモリＳＤＲＡＭからのデータ読み出しが引き起こされるとき、このデータは、次のクロック・パルスに際してバッファ・メモリ配列ＢＵＦに転送されることになる。書き出しの場合は、反対方向に処理が進む。
【００５５】
図８は、図４に示したメモリ・インターフェースＩＮＴの一部分を構成するバッファ・メモリ配列ＢＵＦの例である。バッファ・メモリ配列ＢＵＦは、読み出しバッファ・メモリ配列ＢＵＦＲと書き込みバッファ・メモリ配列ＢＵＦＷ、ならびに承認信号のためのバッファ・メモリＦＩＦＯ＿ＡＣＫから構成される。読み出しバッファ・メモリ配列ＢＵＦＲと書き込みバッファ・メモリ配列ＢＵＦＷは、図１に示すとおり、アクセス・インターフェースＳＩＦおよび集合的バスＢＭ経由で集合的メモリＳＤＲＡＭに接続する。読み出しバッファ・メモリ配列ＢＵＦＲは、プライベート読み出しバスＢＢＲ１、ＢＢＲ２、ＢＢＲ３を介して、おのおの装置Ｂ１、Ｂ２、Ｂ３に接続する。書き込みバッファ・メモリ配列ＢＵＦＷは、プライベート書き込みバスＢＢＷ１、ＢＢＷ２、ＢＢＷ３を介して、装置Ｂ１、Ｂ３、Ｂ３に接続する。承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫは、アービターＡＲＢに接続する。
【００５６】
バッファ・メモリ配列ＢＵＦの一般的なオペレーションは次の通りである。読み出しバッファ・メモリ配列ＢＵＦＲは、集合的メモリＳＤＲＡＭから受け取ったデータを一時的に格納し、書き込みバッファ・メモリ配列ＢＵＦＷは、集合的メモリＳＤＲＡＭに書き込むデータ、および他の装置Ｂから受け取ったデータを格納する。承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫは、アービターＡＲＢから入ってきた承認信号を受け取る。承認信号は、アービターＡＲＢがアクセス・インターフェースＳＩＦに対してマクロ命令を適用したことを示している。
【００５７】
承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫは、図７に示すアクセス・インターフェースＳＩＦのマクロ命令バッファ・メモリＦＩＦＯ＿ＭＣと同じ深さを持つ。こうして、マクロ命令がマクロ命令バッファ・メモリＦＩＦＯ＿ＭＣから出た時点で、マクロ命令に従ったメモリアクセスが有効になった結果として、このマクロ命令に対応する承認信号は、承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫから出ることになる。この信号は、対応するアクセス・オペレーションが読み出しアクセスか書き込みアクセスかを示す。読み出しアクセスの場合、読み出しバッファ・メモリ配列ＢＵＦＲが活性化し、集合的メモリＳＤＲＡＭからデータを受け取る。書き込みアクセスの場合は、書き込みバッファ・メモリ配列ＢＵＦＷが活性化し、集合的メモリＳＤＲＡＭにデータを送出する。承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫによって供給された承認信号は、その他、マクロ命令によって定義されたアクセス・オペレーションに関係するデータ数をも示す。バッファ・メモリ配列ＢＵＦは、読み出しや書き込みに際して「データをどこに格納するか、または、どこからデータを取ってくるか」という内部管理に、この関係データ数情報を利用する。
【００５８】
図９は、読み出しバッファ・メモリ配列ＢＵＦＲの例である。読み出しバッファ・メモリ配列ＢＵＦＲは、入力バッファ・メモリＩＢ、インタフェース・メモリＳＲＡＭ、複数の出力バッファ・メモリＯＢから構成される配列、制御回路ＣＯＮの配列、ならびにインタフェース・メモリ・アクセス・アービターＡＲＢＢＲから構成される。入力バッファ・メモリＩＢは、図４に示したとおり、アクセス・インターフェースＳＩＦを介して集合的メモリＳＤＲＡＭに接続する。出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３は、プライベート読み出しバスＢＢＲ１、ＢＢＲ２、ＢＢＲ３を介して、プロセッサＰ１、Ｐ２、Ｐ３に接続する。この部分は、図２および図３に示されている。制御回路ＣＯＮ１、ＣＯＮ２、ＣＯＮ３は、マクロ命令アドレッシング回路ＡＧＢ１、マクロ命令アドレッシング回路ＡＧＢ２、およびマクロ命令アドレッシング回路ＡＧＢ３、ならびにアクセス・インターフェースＳＩＦに接続している。
【００５９】
読み出しバッファ・メモリ配列ＢＵＦＲは、次のように動作する。集合的メモリＳＤＲＡＭから受け取ったデータは、幅Ｎビット（Ｎは整数）を持ち、到着時の周波数はＦである。インタフェース・メモリＳＲＡＭは、幅が２Ｎビットであり、したがって１個のアドレスには２Ｎビットが含まれ、周波数Ｆにおいて動作することになる。入力バッファ・メモリＩＢは、集合的メモリＳＤＲＡＭから入ってくる２個の連続するデータのペアを形成し、これらのペアをインタフェース・メモリＳＲＡＭにロードする。１個のペアの作成に要する時間は、２クロック・サイクルである。集合的メモリＳＤＲＡＭから受け取る連続データのすべてをペアにすることができると仮定すると、インタフェース・メモリＳＲＡＭへの書き込みアクセスは、２クロック・サイクルに１回の割合で実行開始されることになる。１個のアドレスへのアクセスに要する時間は、１クロック・サイクルであり、したがって、２回の書き込みアクセス・オペレーションの間に、集合的メモリＳＤＲＡＭから読み出したデータを装置Ｂに転送するためにインタフェース・メモリＳＲＡＭが読み出しアクセスに利用できるのは１クロック・サイクルである。したがって、原則として、インタフェース・メモリＳＲＡＭからの書き込み／読み出しアクセスは、交互に実行開始することができる。インタフェース・メモリＳＲＡＭへのアクセスに関する詳細は後述する。
【００６０】
インタフェース・メモリＳＲＡＭは、実際に、Ｚ１、Ｚ２、Ｚ３の３ゾーンに分かれている。ゾーンＺ１、Ｚ２、Ｚ３には、プロセッサＰ１、Ｐ２、Ｐ３向けのデータが含まれている。集合的メモリＳＤＲＡＭからのデータは、入力バッファ・メモリＩＢを介して、カレント・マクロ命令を作成するプロセッサＰに応じて、ゾーンＺ１、Ｚ２、またはＺ３に書き込まれる。ゾーンＺ１、Ｚ２、Ｚ３に存在するデータは、実質的に固定されたスキーマにしたがって、実質的に定常的に、出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３に転送される。出力バッファ・メモリＯＢは、実際に、データを複数の部分に分割し、関連するデータを、部分ごとに対応するプロセッサＰに適用する。たとえば、出力バッファ・メモリＯＢは、１６ビット・データを４ビット部分に分割することができる。したがって、データを１クロック・サイクルで転送する（この場合、１６ビット・バスが必要となる）代わりに、部分に分けて４クロック・サイクルで転送すると、必要となるバスは４ビット・バスですむことになる。
【００６１】
制御回路ＣＯＮ１、ＣＯＮ２、ＣＯＮ３は、ゾーンＺ１、Ｚ２、Ｚ３を制御する。この目的のため、個々の制御回路ＣＯＮは、一群のパラメーターを制御する。これらのパラメーターには、書き込みポインタ、読み出しポインタ、ゾーン占有値が含まれる。書き出しポインタは、集合的メモリＳＤＲＡＭからのデータを書き込むアドレスを定義する。読み出しポインタは、対応する出力バッファ・メモリＯＢに転送するデータのアドレスを定義する。占有値は、集合的メモリＳＤＲＡＭから受け取ったデータの格納のために利用できるアドレス数を示す。制御回路ＣＯＮ１、ＣＯＮ２、ＣＯＮ３は、その他、出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３の制御も行う。この目的上、個々の制御回路ＣＯＮは、対応するＯＢの占有状態を表すパラメーターを制御する。
【００６２】
制御回路ＣＯＮによって実行される制御プロセスについて、以下に説明する。ここでは、集合的メモリＳＤＲＡＭは図５に示すとおりにアクセスされると想定する。ステップＳ５においては、マクロ命令アドレッシング回路ＡＧＢは、バッファ・メモリ配列ＢＵＦに対してマクロ命令を提出する。このマクロ命令は、マクロ命令を作成したプロセッサＰに対応する制御回路ＣＯＮによって処理される。制御回路ＣＯＮは、マクロ命令によって定義されたデータ数と、占有値を比較する。したがって、制御回路ＣＯＮは、関連するゾーンＺに、望ましいデータを格納するための十分な余地があるか否かを検証する。十分な余地があるときは、制御回路ＣＯＮは、その旨をマクロ命令アドレッシング回路ＡＧＢに報告し、さらに、占有パラメーターを更新する。このことは、制御回路ＣＯＮは、実際には格納が実行されていないにもかかわらず、データがすでに関連するゾーンに格納されているとみなしていることを意味する。したがって、占有パラメーターの更新は、対応ゾーンにおける予約とみなされる可能性がある。
【００６３】
図５のステップＳ１２における処理について以下に説明する。このステップＳ１２は、関連のマクロ命令に従った集合的メモリＳＤＲＡＭの読み出しを表す。アクセス・インターフェースＳＩＦがマクロ命令の処理を開始した時点、すなわち読み出しの開始時点で、関連のマクロ命令に付随する承認信号が承認信号バッファ・メモリＦＩＦＯ＿ＡＣＫを出ることは、図７に示すとおりであり、すでに説明した。この承認信号は、アクセスが書き込みオペレーションであることを示し、さらに、この信号は、マクロ命令を作成するプロセッサＰを指定する。したがって、このプロセッサＰに対応する制御回路ＣＯＮは、集合的メモリＳＤＲＡＭのなかでデータを格納するアドレスを供給しなければならないことを了解している。さらに、制御回路ＣＯＮは、マクロ命令に従ったアクセス・オペレーションに関係するデータ数についての情報を受け取る。この情報は、承認信号の一部である。
【００６４】
集合的メモリＳＤＲＡＭからのデータ・ペアが関係するゾーンＺに書き込まれるたびに、制御回路ＣＯＮは、書き込みポインタの増分を実行する。さらに、占有値を更新する。制御回路ＣＯＮは、マクロ命令によって定義された集合的メモリＳＤＲＡＭへの読み出しアクセスが完了するまで、この作業を続ける。制御回路ＣＯＮは、アクセス・オペレーションに関係するデータ数を補助手段として、アクセス・オペレーションの終了を検出する。このデータ数に関する情報は、承認信号、およびインタフェース・メモリＳＲＡＭに書き込まれたデータの計数によって得られる。
【００６５】
任意のゾーンＺからのデータ・ペアの読み出しのたびに、このゾーンを制御する制御回路ＣＯＮは、読み出しポインタを増分し、占有値を更新する。
【００６６】
インタフェース・メモリ・アクセス・アービターＡＲＢＢＲは、インタフェース・メモリＳＲＡＭへのアクセスを制御する。アクセスには、（１）アクセス・インターフェースＳＩＦによる、集合的メモリＳＤＲＡＭからのデータをインタフェース・メモリＳＲＡＭに書き込むためのアクセス、（２）出力バッファ・メモリＯＢ１によるアクセス・オペレーション、（３）出力バッファ・メモリＯＢ２によるアクセス・オペレーション、（４）出力バッファ・メモリＯＢ３によるアクセス・オペレーションの４種類がある。（２）、（３）、（４）の３種類のアクセス・オペレーションは、インタフェース・メモリＳＲＡＭに含まれるデータを、プロセッサＰ１、Ｐ２、Ｐ３に転送する機能を果たす。
【００６７】
インタフェース・メモリＳＲＡＭへのアクセスは、インタフェース・メモリ・アクセス・アービターＡＲＢＢＲに提出された要求への応答として実行開始される。インタフェース・メモリ・アクセス・アービターＡＲＢＢＲは、カレント要求から、優先度が最高の要求を選択する。優先度は、書き込みアクセス要求（アクセス・インターフェースＳＩＦを介したアクセス）が最も高い。データ・ペアの書き出しが行われた結果、前述したとおり、この種の要求は一般に２クロック・サイクルに１回の頻度で発生することになる。書き出しオペレーションに必要な時間は１クロック・サイクルのみである。このため、読み出しモードのインタフェース・メモリＳＲＡＭが、プロセッサＰへのデータ転送のためにアクセスするチャンスが十分に存在する。
【００６８】
任意の出力バッファ・メモリＯＢによる読み出しアクセス要求は、出力バッファ・メモリＯＢと装置Ｂの間のプライベート読み出しバスＢＢＲのサイズに左右される。たとえば、バスがＮ／２ビットのサイズであると想定すると、Ｎ／２ビット部分は、出力バッファ・メモリＯＢから装置Ｂに、１クロック・サイクルに１回の頻度で転送できることになる。インタフェース・メモリＳＲＡＭの読み出しは、データ・ペアにおいて実行開始される。１個のデータ・ペアは、２Ｎビットから構成される。したがって、１個のデータ・ペアを装置Ｂに送出するためには、４クロック・サイクルが必要となる。１個のデータ・ペアの転送には、読み出しモードのインタフェース・メモリＳＲＡＭへのアクセス要求が関係する。したがって、この例では、ＯＢは、４クロック・サイクルに１回の頻度でアクセス要求を提出することになる。この例は、装置Ｂに対するバスのサイズは、さまざまな出力バッファ・メモリＯＢのアクセス要求の頻度を決定することを示している。プライベート読み出しバスＢＢＲのサイズがＮ／４ビットのときは、８クロック・サイクルに１回の頻度でアクセス要求が出されることになる。
【００６９】
次の説明は、インタフェース・メモリＳＲＡＭへのアクセスに関するアービトレーションの例である。プライベート読み出しバスＢＢＲ１のサイズはＮ／２ビットであり、プライベート読み出しバスＢＢＲ２のサイズおよびプライベート読み出しバスＢＢＲ３のサイズは、Ｎ／４ビットであるとする。アクセス・インターフェースＳＩＦのアクセス・オペレーションが最高の優先度を持ち、優先度の高い方から、出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３のアクセス・オペレーションが続く。最後に、すべてのアクセス・タイプ（ＳＩＦ、ＯＢ１、ＯＢ２、ＯＢ３）に対する要求は、最初のクロック・サイクルに同時に提出されるものとする。
【００７０】
サイクル１：すべての要求は、同時に出される；
一時停止要求：アクセス・インターフェースＳＩＦ、出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３；
サイクル２：最高優先度のアクセス・インターフェースＳＩＦが主導権（ｌｅａｄ）を持ち、要求を棄却する；出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３は要求を維持する；
一時停止要求：出力バッファ・メモリＯＢ１、ＯＢ２、ＯＢ３；
サイクル３：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ、出力バッファ・メモリＯＢ２、ＯＢ３；
サイクル４：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ２、ＯＢ３は要求を維持する；
一時停止要求：出力バッファ・メモリＯＢ２、ＯＢ３；
サイクル５：第３の優先度を持つ出力バッファ・メモリＯＢ２が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ、出力バッファ・メモリＯＢ３；
サイクル６：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ、出力バッファ・メモリＯＢ１、ＯＢ３；
サイクル７：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ、出力バッファ・メモリ、ＯＢ３；
サイクル８：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ３は要求を維持する；
一時停止要求：出力バッファ・メモリＯＢ３；
サイクル９：第４の優先度を持つ出力バッファ・メモリＯＢ３が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル１０：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ１；
サイクル１１：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル１２：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ２は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ２；
サイクル１３：第３の優先度を持つ出力バッファ・メモリＯＢ２が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル１４：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ１；
サイクル１５：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル１６：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ３は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ３；
サイクル１７：第４の優先度を持つ出力バッファ・メモリＯＢ３が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル１８：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ１；
サイクル１９：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル２０：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ２は、バッファ容量がゼロになり、再度、要求を提出する；
一停止要求：出力バッファ・メモリＯＢ２；
サイクル２１：第３の優先度を持つ出力バッファ・メモリＯＢ２が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する：
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル２２：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ１；
サイクル２３：第２の優先度を持つ出力バッファ・メモリＯＢ１が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する。
【００７１】
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル２４：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ３は、バッファ容量がゼロになり、再度、要求を提出する；
一時停止要求：出力バッファ・メモリＯＢ３；
サイクル２５：第４の優先度を持つ出力バッファ・メモリＯＢ３が主導権を持ち、要求を棄却する；
アクセス・インターフェースＳＩＦが新しい要求を提出する；
一時停止要求：アクセス・インターフェースＳＩＦ；
サイクル２６：最高優先度のアクセス・インターフェースＳＩＦが主導権を持ち、要求を棄却する；出力バッファ・メモリＯＢ１は、バッファ容量がゼロになり、再度、要求を提出する。
【００７２】
一時停止要求：出力バッファ・メモリＯＢ１；
など。
【００７３】
上記のアクセス・オペレーションの周期は８サイクルである。アービトレーションは、８通りの状態を持つ周期性のあるマシンによって実行開始されたようにみえるが、これは、例においては、すべての装置Ｂが各自のデータを定まった方法で処理するものと想定されているからである。
【００７４】
さらに、アクセス・インターフェースＳＩＦによるアクセス要求は、２クロック・サイクルに１回の頻度で定期的に提出されていると想定されているが、実際には、必ずしもこの想定どおりではない。したがって、インタフェース・メモリＳＲＡＭへのアクセス制御は、周期性マシンを補助とするよりも、アービターを補助手段として順番に実施するほうが適切である。アービターは、インタフェース・メモリＳＲＡＭへのアクセスに関してある程度の柔軟性を許容するため、データ転送に利用できる帯域幅が効率的に活用できることになる。
【００７５】
以下は、インタフェース・メモリＳＲＡＭへの書き込みアクセス（アクセス・インターフェースＳＩＦによるアクセス）は２クロック・サイクルに１回のみとする想定に従った規則の例外である。この例外は、奇数のデータが関与するマクロ命令への応答としての集合的メモリＳＤＲＡＭに対するアクセスの場合に発生する。このアクセスに関係するデータはすべて、最後のデータ要素を除いて、パートナーを持ち、したがって、ペアの形でインタフェース・メモリＳＲＡＭに書き込まれる。最後のデータ要素は、パートナーがない。別のアクセス・オペレーションの第１データであり、したがって別のプロセッサＰが使用されることになるため、ペアの相手となる次のデータ要素を使えない。結果として、この別のアクセス・オペレーションの第１のデータ要素は、インタフェース・メモリＳＲＡＭの別のゾーンＺに格納されることになる。したがって、奇数のデータ要素が関係するアクセスの最後のデータ要素が入力バッファ・メモリＩＢに到着した時点で、このデータは、パートナーなしに、アクセス・オペレーションにおいて構成された最後のデータ・ペアのための書き込みオペレーションに続くクロック・サイクル中に、インタフェース・メモリＳＲＡＭにロードされることになる。このため、１クロック・サイクルの途切れなしに（本来であれば、この途切れの間に、別の読み出しアクセス・オペレーションが実行できる）２個の書き込みアクセス・オペレーションが連続することになる。
【００７６】
図５および９は、読み出しモードにおけるメモリ・インターフェースＩＮＴのオペレーションに関するものである。書き込みモードにおけるオペレーションは、ほぼ対称的なものとなる。すなわち、書き込みバッファ・メモリ配列ＢＵＦＷは、前述した読み出しバッファ・メモリ配列ＢＵＦＲと類似性がある。したがって、書き込みバッファ・メモリ配列ＢＵＦＷは、装置Ｂと１対１に対応するゾーンに分かれたインタフェース・メモリを構成する。装置Ｂは、データの格納場所を指示するマクロ命令の前後を問わず、データを供給し集合的メモリに書き込むことができる。実際、対応する装置Ｂから集合的メモリに格納するデータが供給された直後に、ゾーンにデータが入り、このオペレーションはゾーンがデータで満杯になるまで続く。ゾーンが満杯になると、メモリ・インターフェースＩＮＴは、対応する装置Ｂに、もはや新しいデータを格納する余地がないことを伝える。この報告によって、装置Ｂは、対応するゾーンにデータを格納する余地が生まれるまで、新しいデータの供給を停止することになる。ゾーンＺから集合的メモリへのデータ転送の結果として、ゾーンにはデータを格納する余地が生じる。こうしたデータ転送は、マクロ命令がアービターＡＲＢによって受理され、アクセス・インターフェースＳＩＦによって処理された後、速やかに実行できる。同様に、装置Ｂがデータを供給するよりも前にマクロ命令を発行することも可能である。いずれの場合にも、ゾーンに新しいデータを入れる余地があることを伝える情報が書き込みバッファ・メモリ配列ＢＵＦＷから出されない限りは、マクロ命令はアービターＡＲＢに適用されない。
【００７７】
図１〜９によって説明したデータ処理配列は、「本発明の概要」において説明した発明の実装例である。図１については、プライベート読み出しバスＢＢＲ１およびプライベート書き込みバスＢＢＷ１は、もっぱら装置Ｂ１と集合的メモリＳＤＲＡＭの間でのデータ通信を可能にする。プライベート読み出しバスＢＢＲ２とプライベート書き込みバスＢＢＷ２は、もっぱら装置Ｂ２と集合的メモリＳＤＲＡＭの間でのデータ通信を可能にする。また、プライベート読み出しバスＢＢＲ３とプライベート書き込みバスＢＢＷ３は、もっぱら装置Ｂ３と集合的メモリＳＤＲＡＭの間でのデータ通信を可能にする。メモリ・インターフェースＩＮＴは、各装置Ｂのデータ・バーストにおける集合的メモリＳＤＲＡＭへのアクセスを可能とし、同時に、プライベート読み出しバスＢＢＲおよびプライベート書き込みバスＢＢＷにおける実質的に定常的なデータ・ストリームを生成する。実際、個々の装置Ｂについて、メモリ・インターフェースＩＮＴは、集合的メモリＳＤＲＡＭから読み出され、装置Ｂに送られるデータ・バーストのスムージングを実行する。言い換えると、個々の装置Ｂについて、メモリ・インターフェースＩＮＴは、バーストにおいて集合的メモリＳＤＲＡＭにデータを書き込むために装置Ｂから受け取ったデータの時間的濃縮（ｔｉｍｅ  ｃｏｎｃｅｎｔｒａｔｉｏｎ）を実行する。
【００７８】
前述の図と説明は、むしろ本発明の制約について明らかにしている。追加請求に該当する多数の代替案が存在することは明らかである。下記の結語は、この点に触れている。
【００７９】
本発明に沿ったデータ処理配列の実装には、さまざまな方法がある。図１に示したデータ処理配列は、３個のプロセッサから構成されているが、４個以上または２個以下のプロセッサから構成される場合も考えられる。さらに、すべてのプロセッサが対応するプライベート・バスを持つ必要もない。一部のプロセッサは共有バスを持ち、共有バスを介して集合的メモリにアクセスすることができる。たとえば、図１に示したデータ処理配列は、図示されているプロセッサの外に、図示されていない２個以上のプロセッサを持つ可能性があり、この場合、図示されていないプロセッサは共有バスを介して集合的メモリＳＤＲＡＭや他の集合的メモリにもアクセスできる。
【００８０】
プライベート・バスについては、多種の実装方法がある。図１に示したデータ処理配列は、プライベート読み出しバスＢＢＲと、プライベート書き込みバスＢＢＷから構成されているが、双方向のプライベート・バスから構成される実装も可能である。この種の実装例においては、プロセッサは、双方向プライベート・バスを介して、集合的メモリからデータを読み出し、かつ、集合的メモリにデータを書き込むことができる。この種の双方向バスでは、読み出しデータ・ストリームと書き込みデータ・ストリームは、ともに実質的に定常流となり、インターリーブ関係にある。
【００８１】
メモリ・インターフェースの実装には、多種の方法がある。図４に示したメモリ・インターフェースは、アービトレーションに基づいて集合的メモリへのアクセスを確保する。その他の実装例としては、固定スキーマを基盤とする集合的メモリへのアクセス確保が考えられる。固定スキーマは、個々のプロセッサのために少なくとも１個のタイム・スロットにおいて構成される反復アクセス・パターンとなる可能性がある。
【００８２】
ハードウェアとソフトウェアの双方、またはいずれか一方による実装機能には多種の方法がある。この点について、図は概略を示すにとどまっており、各図は、本発明の多数の可能な具体化方法の１通りを示したにすぎない。したがって、図では、ブロックごとに異なる機能が示されているが、実際には、１個のハードウェアやソフトウェアが複数の機能を実行する可能性を排除しているものではない。また、ハードウェアとソフトウェアの組み合わせで機能を実行する方式も排除されてはいない。
【００８３】
たとえば、図４は、組み合わせにおいて集合的メモリへのアクセスを制御し、メモリ・インターフェースに含まれたメモリ回路を制御する多数のブロックから構成されるメモリ・インターフェースである。原則として、これらのブロックは、適切にプログラムされたコンピュータ回路によって実装することができる。プログラム・メモリにロードされた一連の命令は、コンピュータ回路に、図１〜９に記述された各種の制御オペレーションを実行開始させる。一連の命令は、たとえばディスクなど、一連の命令を含む媒体（ｃａｒｒｉｅｒ）の読み出しによって、プログラム・メモリにローディングされるであろう。媒体の読み出しは、インターネットなどの通信ネットワーク経由で実行開始することも可能であろう。すなわち、サービス・プロバイダは、通信ネットワーク経由で利用できる一連の命令を作成することができる。
【００８４】
本請求のなかで用いられた参照符は、請求事項を制約するものとして解釈してはならない。「構成する（ｃｏｍｐｒｉｓｉｎｇ）」という語は、請求にはリストされていない他の要素やステップの存在を排除するものではない。要素やステップの前の「一つの（ａやａｎ）」という前置詞は、要素やステップが複数である可能性を排除するものではない。
【図面の簡単な説明】
【図１】本発明に沿ったデータ処理方式を示す図。
【図２】本発明のデータ処理方式のメモリ・インターフェースの動作を示す図。
【図３】本発明のデータ処理方式のデータ処理装置を示す図。
【図４】本発明のデータ処理方式のメモリ・インターフェースを示す図。
【図５】装置への読み出しアクセスを示す図。
【図６】（ａ）および（ｂ）は集合的メモリへの任意アクセスを示す図。
【図７】メモリ・インターフェースのアクセス・インターフェースを示す図。
【図８】メモリ・インターフェースのバッファ・メモリ配列を示す図。
【図９】読み出しのためのバッファ・メモリ配列を示す図。
【図１】
0004531223.tif 000002
【図２】
0004531223.tif 000003
【図３】
0004531223.tif 000004
【図４】
0004531223.tif 000005
【図５】
0004531223.tif 000006
【図６】
0004531223.tif 000007
【図７】
0004531223.tif 000008
【図８】
0004531223.tif 000009
【図９】
0004531223.tif 000010