(57)【要約】いくつかの革新的技術を用いることで複数のプロセッサが同じデータに並列アクセスすることが可能である。第１に、複数の離れたプロセッサが同じデータ位置からの読み取りを要求することができ、それらの要求をオーバラップした期間において処理することが可能である。第２に、複数のプロセッサが同じ位置にあるデータにアクセスでき、同じデータに対し読み取り、書き込みまたはマルチ処理をオーバラップした期間に行うことが可能である。第３に、一つのデータパケットを複数位置にマルチキャストすることができ、また、複数パケットを複数セットのターゲット位置にマルチキャストすることができる。
2004531783.tif 000002
【特許請求の範囲】
【請求項１】
並列データ処理装置であって、
複数の位置をインターコネクトするためのインターコネクト構造（１００）と、
複数の記憶部分を有する記憶要素Ｗを位置Ｌに含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な１つ又は複数の記憶要素（１１４）と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット（１２６）とを有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記１つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、演算ユニットＣ１及び演算ユニットＣ２を含み、前記演算ユニットＣ１及びＣ２が、前記記憶要素Ｗの異なる前記記憶部分から同時に読み取り、前記記憶要素Ｗの前記記憶部分のデータ内容を異なるターゲット位置に転送可能であることを特徴とする装置。
【請求項２】
並列データ処理装置であって、
複数の位置をインターコネクトするためのインターコネクト構造（１００）と、
位置Ｌ１及び位置Ｌ２にそれぞれ記憶要素Ｗ１及び記憶要素Ｗ２を含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な１つ又は複数の記憶要素（１１４）と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット（１２６）とを有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記１つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、演算ユニットＣ１及び演算ユニットＣ２を含み、前記演算ユニットＣ１が、前記記憶要素Ｗ１及びＷ２からのデータに対して同時に読み取り及び演算可能であって、前記演算ユニットＣ２が、前記演算ユニットＣ１による読み取り及び演算とオーバラップする時点で、前記記憶要素Ｗ１及びＷ２からのデータを読み取り及び演算可能であることを特徴とする装置。
【請求項３】
並列データ処理装置であって、
複数の位置をインターコネクトするためのインターコネクト構造（１００）と、
複数の記憶部分を有するワードＷ１を記憶するべき循環シフトレジスタＲ１を含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な１つ又は複数の記憶要素（１１４）と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット（１２６）とを有し、
前記複数の演算ユニットが、前記ワードＷ１の異なる前記記憶部分に対し、同時に演算可能であることを特徴とする装置。
【請求項４】
前記記憶要素が、複数の記憶部分を有するワードＷ２を記憶するべき循環シフトレジスタＲ２（３０２）を含み、
前記複数の演算ユニットが、前記ワードＷ２に対し演算を実行するのに、前記ワードＷ１内の情報を利用可能であることを特徴とする請求項３に記載の装置。
【請求項５】
階層をなしてインターコネクトされた複数のノード（３３０）を含む、データを取り扱い、更にノードに於けるデータの衝突を予測し、前記階層により定められる優先順序に基づき前記データ衝突を解決するようなロジック（１１４）を含むインターコネクト構造（１００）と、
前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記インターコネクト構造にデータを分配する第１のスイッチ（１１０）と、
前記インターコネクト構造に接続され、前記データに対する処理を実行することが可能な複数のロジックモジュール（１１４）と、
前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第２のスイッチ（１１２）とを有することを特徴とする装置。
【請求項６】
前記複数のロジックモジュールに接続され、かつ前記第１のスイッチに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視し、データ衝突を回避するために前記第１のスイッチによるデータ注入のタイミングを制御可能であることを特徴とする請求項５に記載の装置。
【請求項７】
前記第１のスイッチが複数の出力ポートを有し、当該装置が、更に、前記第１のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを有し、前記複数のインターコネクトモジュールが、それぞれ前記複数の出力ポートに関連付けられていることを特徴とする請求項５に記載の装置。
【請求項８】
前記複数のロジックモジュールが、前記複数のロジックモジュールの一つにより実行されるべき処理を決定するためにデータ内の情報を利用するロジックを含むことを特徴とする請求項５に記載の装置。
【請求項９】
前記複数のロジックモジュールが、ロード、記憶、読み取り及び書き込みを含むデータ転送処理と、ＡＮＤ、ＯＲ、ＮＯＲ、ＮＡＮＤ、排他的ＡＮＤ、排他的ＯＲ及びビットテストを含む論理演算と、加算、減算、乗算、除算及び超越関数を含む算術演算とから選択されたロジック機能を備えた複数の異なるロジック要素タイプを有することを特徴とする請求項５に記載の装置。
【請求項１０】
前記第１のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視可能で、データを保持し、集中するためのバッファ及び集信装置を有し、データ衝突を回避するために前記第１のスイッチによるデータ注入のタイミングを制御可能であることを特徴とする請求項５に記載の装置。
【請求項１１】
前記第１及び第２のスイッチと、前記複数のインターコネクト構造と、前記複数のインターコネクトモジュールとによりインターコネクトユニットが形成され、当該装置が更に、前記複数のインターコネクト構造に接続され、前記インターコネクトユニット外にデータを転送し、かつトップスイッチにデータを転送するべく配置された１つ又は複数の演算ユニット（１２６）を有することを特徴とする請求項５に記載の装置。
【請求項１２】
前記第１及び第２のスイッチと、前記複数のインターコネクト構造と、前記複数のインターコネクトモジュールとによりインターコネクトユニットが形成され、当該装置が更に、前記インターコネクトユニット外にデータを転送し、かつトップスイッチにデータを転送するべく配置された１つ又は複数のメモリーユニット（１２６）を有することを特徴とする請求項５に記載の装置。
【請求項１３】
前記トップ及びボトムスイッチが、複数の異なるビット長のデータを取り扱うことを特徴とする請求項５に記載の装置。
【請求項１４】
前記ロジックモジュールが、ダイナミック・プログラム・イン・メモリーであることを特徴とする請求項５に記載の装置。
【請求項１５】
当該装置が、データペイロードを取扱い可能なペイロードフィールドと、処理されるべきデータを保持する記憶位置を指定する第１のアドレスと、前記第１のアドレスに保持されたデータに対して実行されるべき処理を指定する第１の処理コードと、前記第１のアドレス記憶位置からのデータに対して処理を行うオプションデバイスを指定する第２のアドレスと、前記第１のアドレス記憶位置からのデータに対して前記第２のアドレスデバイスが行うべき処理を指定する第２の処理コードとを含む情報及びデータフィールドを備えたデータメッセージに対して処理を行うことを特徴とする請求項５に記載の装置。
【請求項１６】
当該装置が、データパケットが存在することを示すフィールドと、データペイロードを担うことが可能なペイロードフィールドと、処理されるべきデータを保持する記憶位置を指定する第１のアドレスと、前記第１のアドレスに保持されたデータに対して実行されるべき処理を指定する第１の処理コードと、前記第１のアドレス記憶位置からのデータに対して処理を行うオプションデバイスを指定する第２のアドレスと、前記第１のアドレス記憶位置からのデータに対して前記第２のアドレスデバイスが行うべき処理を指定する第２の処理コードとを含む情報及びデータフィールドを備えたデータメッセージに対して処理を行うことを特徴とする請求項５に記載の装置。
【請求項１７】
前記第２のスイッチに接続された１つまたは複数の演算ユニット（１２６）を更に有し、前記第２のスイッチが、前記１つまたは複数の演算ユニットに対してデータパケットを転送可能であって、当該装置が演算エンジンをなすことを特徴とする請求項５に記載の装置。
【請求項１８】
複数の記憶部分を有し、かつ前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な１つ又は複数の記憶要素と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット（１２６）とを更に有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記１つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、第１の演算ユニット及び第２の演算ユニットを含み、前記第１及び第２の演算ユニットが、前記記憶要素の異なる前記記憶部分から同時に読み取り、前記記憶要素の前記記憶部分のデータ内容を異なるターゲット位置に転送可能であることを特徴とする請求項５に記載の装置。
【請求項１９】
前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な１つ又は複数の記憶要素（１１６）と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット（１２６）とを更に有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記１つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、第１の演算ユニット及び第２の演算ユニットを含み、前記第１の演算ユニットが、２つの前記記憶要素からのデータに対して同時に読み取り及び演算可能であって、前記第２の演算ユニットが、前記第１の演算ユニットによる読み取り及び演算とオーバラップする時点で、２つの前記記憶要素からのデータに対して読み取り及び演算可能であることを特徴とする請求項５に記載の装置。
【請求項２０】
階層インターコネクト構造をなすように接続され、データを取り扱い、かつノードに於けるデータの衝突を予測し、少なくとも部分的に前記階層により定められる優先順序に基づき前記データ衝突を解決するような複数のロジックモジュール（１１４）と、
前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記複数のロジックモジュールにデータを分配する第１のスイッチ（１１０）と、
前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第２のスイッチ（１１２）とを有することを特徴とする装置。
【請求項２１】
前記複数のロジックモジュールの１つが、データ通信リング（３０２）と、データ記憶リング（３０４）とを有し、前記データ通信リング及びデータ記憶リングが循環ＦＩＦＯからなることを特徴とする請求項２０に記載の装置。
【請求項２２】
前記複数のロジックモジュールの１つが、データ通信リング（３０２）と、データ記憶リング（３０４）とを有し、前記データ通信リング及びデータ記憶リングが循環ＦＩＦＯからなり、データの一要素が単一のメモリーＦＩＦＯに保持され、前記データ要素がデータ記憶リング内を循環する間に、前記データが前記ロジックモジュールにより変形されることを特徴とする請求項２０に記載の装置。
【請求項２３】
前記複数のロジックモジュールの１つが、データ通信リング（３０２）と、データ記憶リング（３０４）とを有し、前記データ通信リング及びデータ記憶リングが循環ＦＩＦＯからなり、データの一要素が単一のメモリーＦＩＦＯに保持され、前記単一のメモリーＦＩＦＯは、プログラム命令及びデータの両者を保持可能であることを特徴とする請求項２０に記載の装置。
【請求項２４】
前記複数のロジックモジュールの１つが、データ通信リングと、データ記憶リングとを有し、前記データ通信リングが、該データ通信リングに接続された前記第１のスイッチのボトムレベルのリングのミラーイメージであることを特徴とする請求項２０に記載の装置。
【請求項２５】
データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの１つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられていることを特徴とする請求項２０に記載の装置。
【請求項２６】
データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの１つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが同一のロジック要素タイプを有することを特徴とする請求項２０に記載の装置。
【請求項２７】
データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの１つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが複数の異なるロジック要素タイプを有することを特徴とする請求項２０に記載の装置。
【請求項２８】
データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの１つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが、ロード、記憶、読み取り及び書き込みを含むデータ転送処理と、ＡＮＤ、ＯＲ、ＮＯＲ、ＮＡＮＤ、排他的ＡＮＤ、排他的ＯＲ及びビットテストを含む論理演算と、加算、減算、乗算、除算及び超越関数を含む算術演算とから選択されたロジック機能を備えた複数の異なるロジック要素タイプを有することを特徴とする請求項２０に記載の装置。
【請求項２９】
前記第１のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視可能で、データを保持し、集中するためのバッファ及びコンセントレータを有し、データ衝突を回避するために前記第１のスイッチによるデータ注入のタイミングを制御可能であることを特徴とする請求項２０に記載の装置。
【請求項３０】
データ通信リング（３０２）と、複数のデータ記憶リング（３０４）とを更に有し、前記データ記憶リングが、複数のソースから同時にアクセス可能であって、複数の目的位置に同時に転送可能なデータを記憶することを特徴とする請求項２０に記載の装置。
【請求項３１】
前記ロジックモジュールが、ダイナミック・プログラム・イン・メモリー式ロジックモジュールであることを特徴とする請求項２０に記載の装置。
【請求項３２】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイスと、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
複数のノード（３３０）と、
前記複数のノードに関連付けられた複数のロジック要素（１１４）と、
送信ノードとして機能するノードから受信ノードとして機能するノードに向けてデータを転送するように、それぞれが、選択されたノードを互いに接続する複数のメッセージインターコネクトパスと、
送信ノードから前記受信ノードに関連付けられたロジック要素に向けて制御信号を転送するように、それぞれが、選択されたノードを互いに接続する複数の制御信号インターコネクトパスとを有し、
前記複数のノードが、
互いに異なるノードＡ、Ｂ及びＸと、
ノードＢのためのルーティングを決定するようにノードＢに関連付けられたロジックＬＢと、
送信ノードとして機能するノードＢから受信ノードとして機能するノードＸに至るメッセージインターコネクトパスと、
送信ノードとして機能するノードＡから受信ノードとして機能するノードＸに至るメッセージインターコネクトパスと、
送信ノードとして機能するノードＡからロジックＬＢに至る制御信号インターコネクトパスとを有し、
前記制御信号が、ノードＡからノードＸへのデータの転送を、ノードＢからノードＸへのデータの転送に対して優先的に行われるようにすることを特徴とする装置。
【請求項３３】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイス（１１４）と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
互いに異なるノードＡ、Ｂ及びＸを含む複数のノード（３３０）と、
前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに制御信号を転送する制御信号インターコネクトパスと、送信ノードから受信ノードにデータを転送するデータインターコネクトパスとを有し、
ノードＢが、データをノードＸ及びＹに転送するためのデータインターコネクトパスを含み、
ノードＡが、制御信号をノードＢに関連付けられたロジックＬＢに転送するための制御信号インターコネクトパスを有し、
ノードＢに到達するメッセージＭについて、ノードＡが制御信号ＣをロジックＬＢに転送し、ロジックＬＢが制御信号Ｃを利用して、メッセージＭをノードＸ及びＹのいずれに転送するべきかを決定するように、ロジックＬＢが機能し得ることを特徴とする装置。
【請求項３４】
ノードＢに到達するメッセージＭ’が、ノードＸ、Ｙ及びＢのいずれとも異なるノードＤに転送されるように、ロジックＬＢが機能し得ることを特徴とする請求項３３に記載のマルチプル・アクセス・メモリー及び演算装置。
【請求項３５】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイス（１１４）と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードＡ及びＢ並びにノードセットＰを含み、ノードＡ及びＢが、ノードセットＰ以外の互いに異なるノードからなり、ノードＢがノードセットＰの全てのノードに向けてデータを転送可能であるような複数のノード（３３０）と、
前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
前記ノードが、受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合され、前記複数のインターコネクトパスが、データインターコネクトパス及び制御インターコネクトパスを含み、前記制御インターコネクトパスが、前記複数のノードのノードを、制御信号を制御信号利用ノードに関連付けられたロジックに転送するべき制御信号送信ノードとして互いに選択的に接続し、
前記複数の制御インターコネクトパスが、ノードＡからノードＢに関連付けられたロジックＬＢに至る制御インターコネクトパスを含み、ロジックＬＢが、ノードＡからの制御信号を利用して、ノードＢが、ノードセットＰのいずれのノードにデータを転送するべきかを決定することを特徴とする装置。
【請求項３６】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイス（１１４）と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードＡ及びＢ並びにノードセットＰを含み、ノードＡ及びＢが、ノードセットＰ以外の互いに異なるノードからなり、ノードＢがノードセットＰの全てのノードに向けてデータを転送可能であるような複数のノード（３３０）と、
受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合された、前記複数のノード中のノードを互いに選択的に接続する複数のインターコネクトパスと、
ノードＡに関連付けられ、ノードＡからのデータをどこにルーティングするべきかを決定可能なロジックＬＡと、
ノードＢに関連付けられ、ノードＢからのデータをどこにルーティングするべきかを決定可能なロジックＬＢとを有し、
ロジックＬＡがロジックＬＢとは異なり、ロジックＬＢが、ロジックＬＡにより決定される情報を利用して、ノードＢがノードセットＰ中のどのノードにデータを転送するべきかを決定することを特徴とする装置。
【請求項３７】
ノードＢが、ノードセットＰのノード出力にデータを転送可能であることを特徴とする請求項３６に記載のマルチプル・アクセス・メモリー及び演算装置。
【請求項３８】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイス（１１４）と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
それぞれ、複数のデータ入力ポート、複数のデータ出力ポート及びノードを通過するデータの流れを制御するロジック要素を含み、互いに異なるノードＡ、Ｂ、Ｘ及びＹを含む複数のノード（３３０）と、
前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに転送する制御信号インターコネクトパスと、データ送信ノードからデータ受信ノードにデータを転送するデータインターコネクトパスとを有し、前記データインターコネクトパスが、前記データ出力ポート及びデータ入力ポートを互いに選択的に接続し、前記制御インターコネクトパスが、制御信号送信ノードから、制御信号に依存するデータの流れを有するノードに関連付けられたロジック要素に制御信号を転送するように、ノードとロジック要素を互いに選択的に接続し、
ノードＢが、ノードＡからの制御信号を利用して、ノードＢを通過するメッセージＭのルーティングを決定するロジックＬＢに関連付けられており、ノードＡから受信された制御信号Ｃにより、メッセージＭがノードＸに転送されるようにし、ノードＡから受信された制御信号Ｃ’により、メッセージＭがノードＢからノードＹに転送されるようにしたことを特徴とする装置。
【請求項３９】
ノードＡからの制御信号が、制御信号Ｃ及び制御信号Ｃ’のいずれであるかによって、ノードＢを通過するメッセージＭ’のルーティングが変更されないことを特徴とする請求項３８に記載のマルチプル・アクセス・メモリー及び演算装置。
【請求項４０】
ノードＢに送られる制御信号が、ノードＡのデータ出力ポートから取り出されることを特徴とする請求項３８に記載のマルチプル・アクセス・メモリー及び演算装置。
【請求項４１】
マルチプル・アクセス・メモリー及び演算装置であって、
メモリーデバイスを含む複数のロジックデバイス（１１４）と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードＸ及びノードＸにデータを転送可能な複数のノードを含むノードセットＰを有する複数のノード（３３０）と、
前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、送信ノードから受信ノードにデータを転送するデータインターコネクトパスを有し、ノードＸにデータを転送することについて最も高い優先順序を有するノードが、ノードＸにデータを転送するのをブロックされることのないように、ノードセットＰ中のノードが、ノードＸにデータを転送することについての優先順序関係を与えられていることを特徴とする装置。
【請求項４２】
ノードＸにデータを転送することについて、ノードセットＰ中のノードＡよりも低い優先順序を有するノードＢからノードＸに転送されたデータによって、ノードＡがノードＸにデータを転送するのをブロックされることのないようにしたことを特徴とする請求項４１に記載のマルチプル・アクセス・メモリー及び演算装置。
【請求項４３】
ノードＸにデータを転送可能なノードセットＰ中のノード間の優先順序が、前記インターコネクト構造内に於ける、ノードセットＰ中の個々のノードの位置に依存することを特徴とする請求項４１に記載のマルチプル・アクセス・メモリー及び演算装置。
【発明の詳細な説明】
【０００１】
（発明の背景）
高度な並列演算を行うシステムで生じている問題に、複数のプロセッサへの十分なデータフローの供給がある。米国特許第５，９９６，０２０号及び米国特許第６，２８９，０２１号には、ネットワークのデータフローを大幅に改善する広帯域で低遅延なインターコネクト（相互接続）構造が開示されている。ネットワークにおける並列メモリーアクセス及び演算をサポートすることにより、そのような広帯域・低遅延インターコネクト構造を十分に活用し得るシステムが必要とされている。
【０００２】
（発明の要約）
いくつかの革新的技術を用いることで複数のプロセッサが同じデータに並列アクセスすることが可能である。第１に、複数の離れたプロセッサが同じデータ位置からの読み取りを要求することができ、それらの要求をオーバラップした期間において処理することが可能である。第２に、複数のプロセッサが同じ位置にあるデータにアクセスでき、同じデータに対し読み取り、書き込みまたはマルチ処理をオーバラップした期間に行うことが可能である。第３に、一つのデータパケットを複数位置にマルチキャストすることができ、また、複数パケットを複数セットのターゲット位置にマルチキャストすることができる。
【０００３】
以下の説明において、“パケット”という用語は、好適にはシリアル形式のデータユニットを指す。パケットの例としては、インターネットプロトコル（ＩＰ）パケット、イーサネット（登録商標）フレーム、ＡＴＭセル、スイッチファブリックセグメント（ｓｗｉｔｃｈ−ｆａｂｒｉｃ ｓｅｇｍｅｎｔｓ）があり、それらには、より大きなフレームまたはパケットの一部、スーパーコンピュータのプロセッサ間メッセージ、及びメッセージ長さが有限の他のデータメッセージタイプを含まれる。
【０００４】
本明細書に開示されるシステムは、あるスイッチに到達した複数パケットが同じ位置にあるデータにアクセスする場合に通信において発生するのと同様の問題を解決する。
【０００５】
他のマルチレベル最小ロジックネットワーク構造（Ｍｕｌｔｉｐｌｅ Ｌｅｖｅｌ Ｍｉｎｉｍｕｍ Ｌｏｇｉｃ ｓｔｒｕｃｔｕｒｅｓ）を、多種多様なプロセッサ及びコンピュータ、メモリーデバイス、ロジックデバイスを含む多くの非常に有用な装置及びシステムにおいて、基本構築ブロック（ｆｕｎｄａｍｅｎｔａｌ ｂｕｉｌｄｉｎｇ ｂｌｏｃｋ）として用いることができる。そのような装置及びシステムの例としては、並列ランダムアクセスメモリー（ＰＲＡＭ）及び並列演算エンジンがある。これらの装置及びシステムは、内蔵記憶装置またはメモリー及びロジック回路とともにネットワーク接続構造を基本構築ブロックとして含む。データ記憶装置は先入れ先出し（ＦＩＦＯ）リングの形態とすることができる。
【０００６】
（詳細な説明）
以下に説明する好適実施例の新規であると考えられる特徴は特許請求の範囲に規定される。しかし、構造及び処理方法の両方に関連する本発明の実施例は添付の図面を参照しつつ以下の説明を読むことにより最も良く理解されるだろう。
【０００７】
図１の模式的なブロック図には、１または複数のネットワークインターコネクト構造（ｎｅｔｗｏｒｋ ｉｎｔｅｒｃｏｎｎｅｃｔ ｓｔｒｕｃｔｕｒｅ）を含む構築ブロックから形成された汎用システム１００の例が示されている。図示されている例では、汎用システム１００は、ネットワークインターコネクト構造から形成されたトップスイッチ１００とボトムスイッチ１１２とを有する。“ネットワークインターコネクト構造”という用語は他のインターコネクト構造を指すこともできる。別のシステムでは、ネットワークインターコネクト構造から形成される更に別の要素を含むこともできる。汎用システム１００には、基本的な例示的システムの中核要素として含まれ得る様々な構成要素が示されている。ある実施例では、中核要素に加えて別の要素も含まれる。他の要素には、１）共有メモリー、２）トップスイッチとボトムスイッチの間の直接接続１３０、３）ボトムスイッチとＩ／Ｏとの間の直接接続１４０、及び、４）ロジックユニット１１４とボトムスイッチ１１２との間に接続されるコンセントレータ（ｃｏｎｃｅｎｔｒａｔｏｒ）などが含まれ得る。
【０００８】
汎用システム１００はトップスイッチ１１０を有しており、このトップスイッチ１１０は、入力データパケットを入力ライン１３６から、または、外部ソース及び可能ならばボトムスイッチからバス１３０を通じて受信し、受信したパケットを動的プロセッサ・イン・メモリー式ロジックモジュール（ｄｙｎａｍｉｃ ｐｒｏｃｅｓｓｏｒ−ｉｎ−ｍｅｍｏｒｙ ｌｏｇｉｃ ｍｏｄｕｌｅ：ＤＰＩＭ）１１４へと配布する入力ターミナルとして機能する。トップスイッチ１１０は、パケットヘッダ内に格納された通信情報に基づき汎用システム１００内におけるパケットのルーティングを行う。パケットはトップスイッチ１１０からＤＰＩＭモジュール１１４へと送られる。ＤＰＩＭモジュール１１４からトップスイッチ１１０への制御信号により、衝突を防ぐべくパケット入力のタイミングが制御される。これにより、そのような制御がない場合に発生し得るＤＰＩＭ内のデータまたはボトムスイッチ内のデータとの衝突が防止される。このシステムは、出力ライン及びバス１３０、１３２、１３４及び１３６を用いて、更なる演算要素、通信要素、記憶要素及び他の要素（図示せず）に情報を転送することもできる。
【０００９】
データパケットはトップスイッチ１１０に入り、各パケットのアドレスフィールドに基づいてターゲットＤＰＩＭ１１４へと送られる。パケット内に含まれる情報を可能ならば他の情報と共に用いて、ロジックＤＰＩＭ１１４によりパケットまたはＤＰＩＭメモリー内に含まれるデータに対して実行される処理を決定することができる。例えば、パケット内の情報により、ＤＰＩＭメモリー内に格納されたデータを変形（ｍｏｄｉｆｙ）したり、ＤＰＩＭメモリー内に含まれるデータをボトムスイッチ１１２へと送ったり、或いは、ＤＰＩＭロジックモジュールによって生成された他のデータがボトムスイッチから出力されるようにすることができる。ＤＰＩＭからのパケットはボトムスイッチへと送られる。汎用システム１００の他のオプションとして、演算ユニット（ｃｏｍｐｕｔａｔｉｏｎａｌ ｕｎｉｔ）またはメモリーユニット或いはその両方を含むことができる。演算ユニット１２６はＩ／Ｏユニット１２４を通じてシステム１００の外部またはトップスイッチ１１０或いはその両方へとデータパケットを送るべく配置することができる。ボトムスイッチがトップスイッチへとパケットを送る場合、パケットは直接送ることもできるし、或いは、システム１００のサブコンポーネントである集積回路の間のタイミング及び制御を扱う１または複数のインターコネクトモジュール（図示せず）を介して送ることもできる。
【００１０】
システムの一実施例では、データ記憶装置はＤＰＩＭ１１４内の先入れ先出し（ＦＩＦＯ）データ記憶リングＲ、及び、演算ユニット（ＣＵ）１２６に関連づけられた通常のデータ記憶装置の形態を有する。ＦＩＦＯリングは、環状接続された複数の単ビットシフトレジスタからなる。ＦＩＦＯリングは２種類の構成要素を含む。第１の例では、従来知られているが、ＦＩＦＯリングは、隣接する単ビットシフトレジスタにのみ接続され単純なＦＩＦＯ３１０を形成する複数の単ビットシフトレジスタを有する。第２の例では、リングの他のシフトレジスタは、例えばロジックモジュール１１４のようなシステムの他の要素内に含まれる単ビットまたはマルチビットレジスタからなる。これら２種類の構成要素は直列に接続されリングを形成する。例えば、ＦＩＦＯリングの全長ＦＬを２００ビットとし、６４ビットが複数のロジックモジュールＬ内に格納され、残りの１３６ビットはＦＩＦＯの直列接続されたレジスタ内に格納されるようにすることができる。システム全体に供給されるクロックがＦＩＦＯ要素及びシフトレジスタに接続され、データビットを“バケツリレー”式に次の位置へと進ませる。サイクル時間（ｃｙｃｌｅ ｐｅｒｉｏｄ）は、データがＦＩＦＯリングのちょうど１サイクルを完了するのに要するクロック周期で表される時間として定義される。サイクル時間の整数値は構成要素の数で表したＦＩＦＯリングの長さに等しい。例えば、２００個の構成要素（即ち、長さ２００）からなるリングでは、サイクル時間は２００システムクロック周期となる。システムは、異なるレートで動作する局所的なクロックまたはタイミングソースを有することも可能である。実施例によって、システムの全てのＦＩＦＯリングが同じ長さを有しても、所定の最小長さの整数倍でばらついた長さを有してもよい。別の実施例では、一つのリングが複数の並列経路を備えたバス構造を有し、リング内に保持されるデータ量がリング長さＦＬの整数倍となるようにすることもできる。
【００１１】
汎用システム１００では、トップスイッチは、システム最大長さまでの様々な長さを有するパケットを扱うことが可能である。ある用途では、パケットは全て同じ長さを有することもできる。一般的には、様々な長さを有するパケットがトップスイッチに入力される。パケットの長さはＰＬで表され、ＰＬはＦＬを越えない。
【００１２】
同様に、ボトムスイッチも様々な長さのパケットを扱うことができる。汎用システム１００の典型的な実施例では、ＤＰＩＭロジックモジュール１１４及びＣＵ１２６の機能及び動作に応じて異なるビット長さを有するデータが生成される。ＤＰＩＭは独立して機能することができ、または、これらＤＰＩＭからデータを集め、システム１００の内または外にあるＤＰＩＭまたは他の要素にデータを供給することが可能な、図示しない複数のシステムがあってもよい。
【００１３】
図２の模式的ブロック図は、図１に含まれるよりも少ない数の構築ブロックから形成された並列ランダムアクセスメモリー（ＰＲＡＭ）システム２００の例を示している。このＰＲＡＭシステムは、ネットワークインターコネクト構造から形成されるトップスイッチ１１０、コンセントレータ１５０及びボトムスイッチ１１２を有している。またこのシステムは、データを格納する複数のＤＰＩＭ１１４を含む。これらのＤＰＩＭユニットは通常ＲＥＡＤ及びＷＲＩＴＥ機能を実行することができ、それによりシステムを並列ランダムアクセスメモリーとして使用することが可能となっている。
【００１４】
例示している実施例では、トップスイッチ１１０に入力されるデータパケットは次の形式を有する：
ペイロード｜処理コード２｜アドレス２｜処理コード１｜アドレス１｜タイミングビット
これは以下のように表すことができる：
ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＡＤ１｜ＢＩＴ
【００１５】
ＰＡＹＬＯＡＤフィールドのビット数はＰａｙＬで表す。ＯＰ２及びＯＰ１のビット数はそれぞれＯＰ２Ｌ及びＯＰ１Ｌで表す。ＡＤ２及びＡＤ１のビット数はそれぞれＡＤ２Ｌ及びＡＤ１Ｌで表す。ＢＩＴフィールドの長さは好適実施例では１ビットである。
【００１６】
以下の表に、パケットフィールドの簡単な説明を示す。
2004531783.tif 000003
【００１７】
ＢＩＴフィールドは最初にスイッチに入るが、パケットが存在することを示すべく常に１にセットされる。ＢＩＴフィールドは“トラフィックビット（ｔｒａｆｆｉｃ ｂｉｔ）”とも呼ばれる。ＡＤ１フィールドはパケットをトップスイッチを通じてそのパケットのターゲットＤＰＩＭへと導くのに用いられる。トップスイッチ１１０を複数の階層レベル及びコラムをなすように構成し、パケットがこれらのレベルを通過するようにすることができる。パケットがトップスイッチ１１０の新たなレベルに入るたび、ＡＤ１フィールドの１ビットが除去され、それによりＡＤ１フィールドは短くなる。システム２００も同じ技法を用いる。パケットがトップスイッチ１１０を出るとき、ＡＤ１フィールドには何も残らない。従って、パケットはトップスイッチを出るとき以下の形式を有する：
ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＢＩＴ
【００１８】
システム１００及び２００は複数のＤＰＩＭユニットを有する。図３はＤＰＩＭユニットの一例を図示するとともにＤＰＩＭとトップスイッチ１１０及びボトムスイッチ１１２との間のデータ及び制御接続路を示す模式的ブロック図である。図３には４つのデータインターコネクト構造Ｚ、Ｃ、Ｒ及びＢが示されている。インターコネクト構造Ｚはトップスイッチ１１０内に配置されたＦＩＦＯリングとすることができる。インターコネクト構造Ｃ及びＲはＤＰＩＭモジュール内に配置されたＦＩＦＯリングからなる。いくつかの実施例では、ＤＰＩＭはデータを直接ボトムスイッチへ送る。それらの実施例では、ボトムスイッチがインターコネクト構造である場合、インターコネクト構造ＢはＦＩＦＯリングである。図１及び７はコンセントレータを有さないシステムを図示し、図２、３、４Ａ及び５はコンセントレータを含むシステムを示している。
【００１９】
データはトップスイッチ１１０を通過しターゲット出力リングＺＪ（Ｊ＝ＡＤ１）へ到達する。リングＺ＝ＺＪは、出力ライン３２６に接続された複数のノード３３０を有する。ＤＰＩＭモジュールは“データ通信リング”と呼ばれるパケット受信リングＣ  ３０２及び１または複数の“データ記憶リング”Ｒ  ３０４を有する。図３に示したＤＰＩＭは単一のデータ記憶リングＲを有する。各構造Ｚ、Ｃ、Ｒ及びＢは、相互接続された複数の単ビットＦＩＦＯノードを含む。構造内のノードのいくつかは単一のデータ入力ポート及び単一のデータ出力ポートを有し、インターコネクトされて単純なマルチノードＦＩＦＯを形成する。構造内の他のノードは更なるデータ入力ポート、更なるデータ出力ポート或いはその両方を有する。またこれらノードは制御信号出力ポートまたは制御信号入力ポートを有することもできる。リングＺはリングＣから制御信号を受信し、データをロジックモジュールＬ  ３１４に送る。リングＣ及びＲはロジックモジュールＬ  ３１４に対しデータの送受信を行う。ＦＩＦＯ  Ｂ  ３８０はロジックモジュールＬに制御信号を送り、ロジックモジュールＬからデータを受け取る。一つのＤＰＩＭは、インターコネクト構造またはＦＩＦＯ  Ｂ内の複数の入力ポートへとデータを送ることが可能な複数のロジックモジュールを有することができる。ＤＰＩＭからのデータは、システムＢのトップレベル内へと複数の列（ｒｏｗｓ）をなすように送り込むことができる。ＤＰＩＭの数はメモリー位置の数と同じとすることができ、その場合、各ＤＰＩＭは１ワードのデータを格納する単一の記憶リングＲを有する。別の方法として、一つのＤＰＩＭユニットが複数の記憶リングＲを含むものとすることもできる。アドレスＡＤ１フィールドの一部によって、または、処理ＯＰ１フィールドの一部によって特定の記憶リングを同定することができる。
【００２０】
パケット移動のタイミングは４つのリングで同期がとられている。パケットがリング内を循環する際、パケットはＢＩＴフィールドに関して整合される。整合の有益な結果として、リングＣはリングＺに制御信号３２８を送り、Ｚ内のノードがＣへとパケットを送るのを許可または禁止する。リングＣのノード３３０から許可を受信すると、リングＺ上のノード３１２はロジックモジュールＬにパケットを送ることができ、ロジックモジュールはパケットを即座にビットシリアルに処理する位置に置かれる。同様に、データ記憶リングＲ内を循環しているパケットはリングＣと同期され、それによりパケットがそれぞれのリングを循環する際にそれぞれのビットがロジックモジュールＬにより好適に処理される。データ記憶リングＲは、後述するいくつかの新規な用途において用いることが可能なメモリー要素として機能する。複数のＤＰＩＭがトップスイッチと同じチップ上にはない場合、リングＺのノードとロジックモジュールＬとの間を結ぶ別個のデータ通信リング（図示せず）を用いてチップ間のタイミング及び制御を行うこともできる。
【００２１】
記憶リングＲ内のデータは、トップスイッチのＺリング３０６内のパケットの一部と整合及びオーバラップし、サイクル時間において同時に発生する複数のパケットによりトップスイッチ１１０からアクセス可能である。複数のロジックモジュール３１４がデータ通信リングＣ及びデータ記憶リングＲに関連づけられている。一つのロジックモジュールＬはリングＣ及びＲからデータを読み出し、ある条件の下でデータに対して処理を施し、リングＣ及びＲに書き込むことができる。更にロジックモジュールＬはボトムスイッチ１１２またはコンセントレータにあるＦＩＦＯ３０８のノード３２０へパケットを送ることができる。複数のＤＰＩＭがボトムスイッチと同じチップ上にない場合、インターコネクト構造Ｂのノード３２０とロジックモジュールＬ  ３１４とを結ぶ別個のデータ通信リング（図示せず）を用いてチップ間のタイミング及び制御を行うことができる。また、一つのデバイスが１サイクル時間において通信リングの複数のビットにアクセスする必要がある場合にも、タイミング及び制御動作のために別個のデータ通信リングを用いることができる。
【００２２】
パケットはロジックモジュール３１４を通じて通信リングＣに入る。パケットはロジックモジュールＬから出て、入力チャネルを通じて様々な角度でボトムスイッチに入る。
【００２３】
汎用システム１００のいくつかの例では、ＤＰＩＭ１１４のリングＣ及びＲに沿ったロジックモジュールの全てが同じタイプであり、同様のロジック機能を実行する。他の例では、複数の異なるロジックモジュールタイプが用いられ、特定のＤＰＩＭのリングＲに格納されたデータに対し複数のロジック機能を実行することが可能である。データがリングＲを循環する際、ロジックモジュールＬ  ３１４はデータを変形（ｍｏｄｉｆｙ）することができる。ロジックモジュールは、リングＣ及びリングＲから、及びリングＺ上のノードからモジュールをシリアルに通過するデータビットに作用する。典型的なロジック機能には、（１）ロード、記憶、読み出し、書き込みのようなデータ転送処理、（２）ＡＮＤ、ＯＲ、ＮＯＲ、ＮＡＮＤ、排他的ＯＲ、ビットテストなどの論理演算、及び（３）加算、減算、乗算、除算、超越関数などのような算術演算が含まれる。多数の他のタイプの論理演算を含むこともできる。ロジックモジュールの機能はロジックモジュールにハードワイア化することも、あるいは、ロジックモジュールに送られたパケットからロジックモジュールへとロードされるソフトウェアによって実現することもできる。ある実施例では、特定のデータ記憶リングＲに関連する複数のロジックモジュールは独立して動作する。他の実施例では、ロジックモジュールのグループからデータを受信することができる別個のシステム（図示せず）によって複数のロジックモジュールグループが制御される。更に別の実施例では、ロジックモジュール制御システムはロジックモジュールから受信したデータに対して制御命令を実行する。
【００２４】
図１及び図２において、各ＤＰＩＭは一つのリングＲ及び一つのリングＣを有する。システム１００の別の実施例では、特定のＤＰＩＭ１１４が複数のＲリングを有する。このような複数Ｒリングの実施例において、一つのロジックモジュール３１４がＣリング及び全てのＲリングからのデータに同時にアクセスすることが可能である。同時アクセスによって、ロジックモジュールが１または複数のＲリング上のデータを、Ｒリングの内容に基づき、且つ、関連する通信リングＣ及び受信されたパケットの内容にも基づいて、変形することが可能となる。
【００２５】
ロジックモジュールによって実行される典型的な機能は、リングＲに保持されたデータに関連してパケットのＰＡＹＬＯＡＤフィールドに保持されたデータに対してなされる、ＯＰ１フィールドに指定された処理の実行である。ある特定の例では、処理ＯＰ１は、パケットのＰＡＹＬＯＡＤ内のデータをアドレスＡＤ１にあるリングＲ内に格納されたデータに加えることを指示する。その結果得られる和はアドレスＡＤ２のボトムスイッチのターゲットポートへと送られる。ＯＰ１処理のデータフィールドに保持された命令によって指示され、ロジックモジュールは複数の処理を実行することができる。例えば、リングＲ  ３０４内のデータを変更なくそのままとすることができる。ロジックモジュールはリングＲ  ３０４内のデータをＰＡＹＬＯＡＤフィールドの内容で置き換えることもできる。或いは、ロジックモジュールＬはＰＡＹＬＯＡＤフィールド内に保持されたデータを、リングＲ  ３０４及びＰＡＹＬＯＡＤフィールド内に保持されていた内容に対して行った処理の結果で置き換えることもできる。別の例では、メモリーＦＩＦＯはデータだけでなくプログラム命令も格納することができる。
【００２６】
通信リングＣ及び記憶リングＲに関連する複数タイプのロジックモジュール３１４を含む汎用システム１００は、ある処理を実行するのに用いられる特定のロジックモジュールを指定するのにＯＰ１フィールドの１または複数のビットを用いることができる。ある実施例では、複数のロジックモジュールが同じデータに対して複数の処理を実行する。アドレスＡＤ１＝ｘのロジックモジュールのセットは、アドレスＡＤ１＝ｙのロジックモジュールのセットとは異なる処理を実行することができる。
【００２７】
汎用システム１００内を通るデータパケットの移動効率はデータフローのタイミングに依存する。いくつかのシステムでは、ロジックモジュールに関連づけられたバッファ（図示せず）がデータ転送のタイミングの維持に寄与する。多くの実施例で、タイミングはデータをバッファリングすることなく維持される。汎用システム１００のインターコネクト構造は、好適なことに、データの効率的な並列演算、生成及びアクセスを実現する動作タイミングを有する。
【００２８】
少なくとも１つのスイッチ、データ記憶リング３０４のグループ、及び関連するロジックモジュール３１４を含む複数の構成要素からなる汎用システム１００は、様々な演算及び通信スイッチを実現するのに用いることができる。演算及び通信スイッチの例としては、インターネットスイッチングシステムで用いられるＩＰパケットルータまたはスイッチ、特殊用途ソーティングエンジン（ｓｏｒｔｉｎｇ ｅｎｇｉｎｅ）、汎用コンピュータ、或いは、汎用または特定機能を有する多くの並列演算システムがある。
【００２９】
図２の模式的なブロック図には、ネットワークインターコネクト構造を基本要素として用いて形成された並列ランダムアクセスメモリー（ＰＲＡＭ）が示されている。このＰＲＡＭは、複数のソースから同時にアクセス可能で且つ複数の送付先へ同時に送ることが可能なデータを格納する。このＰＲＡＭはトップスイッチ１１０を有しているが、トップスイッチ１１０のターゲットリングからパケットを受信する通信リングを有しても有さなくてもよい。通信リングを有さないインターコネクト構造では、リングＺがロジックモジュールを通過する。トップスイッチ１１０は、ターゲットリングの各々からのＴ個の出力ポート２１０を有する。典型的なＰＲＡＭシステム２００では、アドレス位置の数は、システムのＩ／Ｏポートの数より多い。例えば、ＰＲＡＭシステムは、ＤＰＩＭに格納された６４Ｋワードのデータにアクセスする１２８個のＩ／Ｏポートを有する。ＡＤ１フィールドは６４Ｋ個のＤＰＩＭアドレス１１４を可能とするべく１６ビット長さとなっている。ＡＤ２フィールドは、１２８個の出力ポート２０４を可能とするべく８ビット長さとなっており、７ビットがアドレスを保持し、１ビットはアドレスのＢＩＴ２部分である。トップスイッチは１２８個の入力ポート２０２と、それぞれ出力ポート２０６を介したＤＰＩＭユニットへの多重接続を有する６４Ｋ個のＺリング（図示せず）とを有する。コンセントレータ１５０は６４Ｋ（６５５３６）個の入力ポート２０８と１２８個の出力ポート２１０とを有する。ボトムスイッチ１１２は１２８個の入力ポートと１２８個の出力ポート２０４とを有する。コンセントレータは、トップ及びボトムスイッチ及びロジックモジュールと同じ入力及び出力に対する制御タイミング及び信号規則に従う。
【００３０】
別の態様として、トップスイッチはより少ない数の出力Ｚリング及び関連するＤＰＩＭを有することもできる。ＤＰＩＭユニットが複数のＲリングを有し、トータルのデータサイズは変わらないようにすることも可能である。
【００３１】
図２に示されているＰＲＡＭは、通信リングＣ  ３０２及び記憶リングＲ  ３０４に直結したロジックモジュール３１４を含むＤＰＩＭユニット１１４を有している。ＤＰＩＭユニット１１４は、出力データをボトムスイッチ１１２に供給するパケットコンセントレータ１５０に接続している。
【００３２】
図３を参照すると、リングＣ上のノード３３０はトップスイッチのリングＺ上のノード３１２に制御信号を送り、リングＺの個々のノード３１２がロジックモジュールＬへとパケットを送るのを許可する。リングＺからパケットを受け取ると、ロジックモジュールＬは幾つかの処理の一つを実行することができる。第１に、ロジックモジュールＬはパケットのＣリング上への載置（ｐｌａｃｉｎｇ）を開始することができる。第２に、ロジックモジュールＬはパケット内のデータを即座に使用開始することができる。第３に、ロジックモジュールＬは生成されたパケットをＣリング上に置くことなくコンセントレータ１５０に即座に送付し始めることができる。あるロジックモジュールＬｉがパケットＰをＣリング上に置き始めることができ、そのロジックモジュールＬｉがリング上に幾つかビットを置いた後、別のロジックモジュールＬｋ（ここでｋ＞ｉ）がそれらのビットの処理及び除去を開始することができる。ある場合には、パケットＰ全体がリングＣ上に置かれることがない。ロジックモジュールはデータをＣリングまたはＲリングへと挿入することができ、或いは、データをコンセントレータ１５０に送ることもできる。コンセントレータに入るデータの制御にはコンセントレータからのライン３２４上の信号も用いられる。あるリングＲに関連づけられた複数のロジックモジュール３１４は、そのリングＲに関連づけることが可能な補助デバイス（図示せず）との付加的な送受信用相互接続を有することもできる。補助デバイスはシステムの目的及び機能に応じて様々な構造を有し様々な機能を奏することができる。補助デバイスの一例としてはシステムコントローラがある。
【００３３】
ある実施例では、ＰＲＡＭ２００は、全て同じロジックタイプを有し同じ機能を奏する複数のロジックモジュール３１４を含むＤＰＩＭを有する。
【００３４】
別の実施例では、特定のアドレスにある第１のＤＰＩＭ  Ｓが異なるタイプ及び機能の複数のロジックモジュールを有することができる。第２のＤＰＩＭ  Ｔは第１のＤＰＩＭ  Ｓと比較して同じまたは異なるタイプのロジックモジュールを有することができる。ＰＲＡＭの一応用例では、１データワードが一つの記憶リングＲに格納される。データがリングＲ内を循環する際、ロジックモジュールはデータを変形することができる。このＰＲＡＭでは、ロジックモジュールはデータだけでなくプログラム命令も格納可能な記憶リングＲの内容を変形する。
【００３５】
このＰＲＡＭは、以下のように定義されるフィールドを含むように定められたパケットを用いてデータの記憶及び検索をする：
ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＡＤ１｜ＢＩＴ
【００３６】
パケットが存在することを示すべく１にセットされたＢＩＴフィールドが汎用システム１００に入る。ＡＤ１フィールドは、所望のデータを含むデータ記憶リングＲ  ３０４を含む特定のＤＰＩＭのアドレスを指定する。トップスイッチはアドレスＡＤ１によって指定されたＤＰＩＭ（ＡＤ１）にパケットを送る。示される例では、ＯＰ１フィールドは実行される処理を指定する単ビットからなる。例えば、論理値１はＲＥＡＤ要求を、論理値０はＷＲＩＴＥ要求を指定する。
【００３７】
ＲＥＡＤ要求では、位置ＡＤ１にあるＤＰＩＭ内の受信ロジックモジュールがリングＲ上に格納されたデータをボトムスイッチ１１２のアドレスＡＤ２へ送信する。ＷＲＩＴＥ要求では、パケットのＰＡＹＬＯＡＤフィールドがアドレスＡＤ１のリングＲ上に置かれる。ＡＤ２はＲＥＡＤ要求においてボトムスイッチ１１２を通じてデータのルーティングをするのに用いられる宛先アドレスであり、メモリーの内容が送られるべき場所を指定する。ＯＰ２は所望に応じてアドレスＡＤ２に位置するデバイスが送られてきたデータに対して実行すべき処理を記述する。処理ＯＰ１がＲＥＡＤ要求の場合、ＲＥＡＤ要求を実行するロジックモジュールはＰＡＹＬＯＡＤフィールドを用いない。
【００３８】
一実施例では、ＰＲＡＭはただ一つのタイプのロジックモジュール（ＲＥＡＤ及びＷＲＩＴＥ処理の両方を実行するタイプ）を含む。ＰＲＡＭの別の実施例では、別個のＲＥＡＤ要素とＷＲＩＴＥ要素を備えたような、別のタイプのロジックモジュールが用いられる。
【００３９】
図２及び図３を参照すると、図示されているＰＲＡＭ２００は適時にトップスイッチ１１０に入ってくるパケットを受信することにより処理を開始する。パケットＰはトップスイッチ内をルーティングされアドレスＡＤ１に位置するターゲットリングＺに到達する。パケットのＡＤ１フィールドはトップスイッチのターゲットリングＺＪ３０６を指定する（ここでＪ＝ＡＤ１）。ノードＳ（図示せず）及びノードＴ（図示せず）がメッセージタイミングを規定するべく定められる。ノードＳはリングＲＪのノード３３０として定められ、ノードＴはリングＺＪのノード３１２として定められ、ノードＳはノードＴに制御ライン３２８を通じて制御信号を送るように配置される。グローバルタイミング信号に基づき、リングＲＪのノードＳ  ３３０はノードＳにおけるタイミングビット到達時間を特定する。タイミングビット到達時間にノードＳに値１のタイミングビットが到達すると、ノードＳはライン３２８を通じてリングＺ上のノードＴ  ３１２にブロック信号（ｂｌｏｃｋｉｎｇ ｓｉｇｎａｌ）を送り、ノードＴがパケットをライン３２６を通じてロジックユニットＬへと送るのを禁止する。タイミングビット到達時間にノードＳが値１のビットを受信しない場合、ノードＣからノードＳに入ってきているメッセージはなく、ノードＳはノードＴへ非ブロック（ｎｏｎ−ｂｌｏｃｋｉｎｇ）制御信号を送る。グローバルタイミングはノードＴにおける制御信号到達時間が、リングＺまたはトップスイッチ内においてリングＺより一つ上のレベルに位置するノードＵからノードＴへのメッセージ到達時間と同時になるようになっている。トップスイッチ１１０を出るパケットはノード３１２からライン３２６を通じてロジックモジュールへと向かう。ロジックモジュールは通信リングＣ  ３０２上にパケットを置く、或いは、リングＣ上に置くことなく即座にパケットを処理することができる。このとき、パケットＰは以下の形式を有する：
ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＢＩＴ
【００４０】
パケットＰはリングＺからライン３２６を通じてロジックモジュールＬへと送られる。パケットＰがロジックモジュールＬへの移動を開始するとき、リングＺ上のあるノードＮＺは、トップスイッチ内のより高いレベルにあるノードＷにノードＮＺにおいて非ブロック状態であることを通知するべく制御信号を送る。この制御信号は、ノードＮＺからデータを受け取る位置にあるノードＮＸにデータをルーティングする許可をノードＷに与える。ロジックモジュールＬはライン３２６を通じて到達するパケット及びリングＣ上から到達するパケットに対しタイミングに関して同様に作用する。パケットＰがロジックモジュールＬに入ると、ロジックモジュールＬはＯＰ１フィールド内のコマンドを解析（ｐａｒｓｅ）し実行する。
【００４１】
示されている実施例では、通信リングＣは記憶リングＲと同じ長さを有する。ビットは共通クロックによって支配されるレートでビットシリアルにリングＣ及びＲ内を移動する。パケットのＰＡＹＬＯＡＤフィールドの第１ビットはリングＲのＤＡＴＡフィールドの第１ビットと整合される。従って、ＲＥＡＤ要求の場合、リングＲ内のデータはパケットのペイロード部にコピーされる。ＷＲＩＴＥ要求の場合、パケットのペイロード部内のデータをパケットから記憶リングＲへと転送することができる。
【００４２】
ＲＥＡＤ要求
ＲＥＡＤ要求では、パケットＰは以下の形式を有する：
ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＡＤ１｜ＢＩＴ
【００４３】
パケットはトップスイッチに入る。一般に、アドレスＡＤ１のＤＰＩＭのロジックモジュールは、処理コードＯＰ１フィールドを調べることでＲＥＡＤ要求を同定する。ロジックモジュールはパケットのＰＡＹＬＯＡＤフィールドをリングＲからのＤＡＴＡフィールドで置き換える。そうして、更新されたパケットはコンセントレータを通じてボトムスイッチへ送られ、そこからアドレスＡＤ２にある演算ユニット（ＣＵ）１２６または他のデバイスへと送られる。ＣＵまたは他のデバイスはＰＡＹＬＯＡＤフィールドに関連して処理コード２（ＯＰ２）によって指定された命令を実行することができる。
【００４４】
パケットＰはリングＺ上のノードＴ  ３１２に入る。ノードＴは、ノードＴに入るパケットＰのタイミングビット及びリングＣ上のノード３３０からの非ブロック制御信号に応答して、パケットＰをデータパス３２６を通じてロジックモジュールＬへと送り始める。ＢＩＴ及びＯＰ１フィールドがロジックモジュールＬに入るとき、コンセントレータ１５０或いはコンセントレータがない場合にはボトムスイッチがメッセージを受け取ることが可能であるかどうかを示すライン３２４上の制御信号もロジックモジュールＬに到達する。制御信号がコンセントレータはメッセージを受け取ることができない旨示す場合、ロジックモジュールＬはパケットをリングＣへと転送し始める。パケットＰはリングＣ上の次のロジックモジュールへと移動する。
【００４５】
ある時点で、リングＣ上のロジックモジュールの一つが、階層のより下方からノットビジー制御信号を受信する。そのとき、ロジックモジュールＬはインターコネクト構造Ｂの入力ノード３２０へのパケットＰの転送を開始する。
【００４６】
ＲＥＡＤ要求では、ロジックモジュールはＯＰ１フィールドをパケットから取り出し、コンセントレータの入力ノード３２０へとパス３２２を通じてパケットの送出を開始する。まず、ロジックモジュールはＢＩＴフィールドを、続いてＡＤ２フィールドを、そしてＯＰ２フィールドを送る。記憶リングＲのＤＡＴＡフィールドの第１ビットがロジックモジュールに達するのと同時にＯＰ２フィールドの最終ビットがロジックモジュールを離れるようにタイミングがセットされる。ロジックモジュールは記憶リングＲ内のＤＡＴＡフィールドは不変のままとし、下流に送られるパケットのＰＡＹＬＯＡＤフィールドにＤＡＴＡのコピーを入れ、コンセントレータへビットシリアルにパケットを送り続ける。リングＲ内のデータは不変のまま維持される。
【００４７】
パケットはコンセントレータに入るとき及びそれを出るとき変化なく、ボトムスイッチ１１２に入るとき以下の形式を有する：
ＤＡＴＡ｜ＯＰ２｜ＡＤ２｜ＢＩＴ
【００４８】
ＰＡＹＬＯＡＤフィールドはこの時点ではリングＲからのＤＡＴＡフィールドを含む。パケットがボトムスイッチ内をルーティングされる際、ＡＤ２フィールドは除去される。パケットはボトムスイッチのアドレスＡＤ２に位置する出力ポート２０４から送出される。送出時、パケットは以下の形式を有する：
ＤＡＴＡ｜ＯＰ２｜ＢＩＴ
【００４９】
ＯＰ２フィールドは様々な方法で使用可能なコードである。一つの用途は、ボトムスイッチ出力デバイスがＰＡＹＬＯＡＤフィールドに格納されているデータに対し行う処理を示すことである。
【００５０】
ＰＲＡＭのインターコネクト構造はデータの効率的、並列生成及びアクセスを実現する循環タイミング（ｃｉｒｃｕｌａｒ ｔｉｍｉｎｇ）を本質的に有する。例えば、異なる入力ポート２０２に位置する複数の外部ソースが特定のＤＰＩＭ１１４にある同じＤＡＴＡフィールドに対するＲＥＡＤ処理を要求することができる。複数のＲＥＡＤ要求は異なるノード３１２においてトップスイッチの特定のターゲットリングＺ３０６に入ることができ、その後、そのターゲットＤＰＩＭの異なるロジックモジュールＬに入る。これらＲＥＡＤ要求は同じサイクル時間においてリングＣ上の異なるロジックモジュールに入ることができる。通信リングＣ  ３２０及びメモリーリングＲ  ３０４はコンセントレータの入力インターコネクト構造Ｂ及びトップスイッチのターゲットリングＺ内のパケットの動きに関して常に同期している。
【００５１】
ＲＥＡＤ要求は常に、リングＲからのデータを送出パケットの適切なＰＡＹＬＯＡＤ位置に付加するのに適した時間にロジックモジュールに到達する。その有益な結果として、リングＲ内の同じデータに対する複数の要求を同時に発行することが可能となる。同じＤＡＴＡフィールドが複数の要求によりアクセスされる。リングＲからのデータは複数の最終送付先に送られる。複数のＲＥＡＤ処理は並列に実行され、送付されるパケットは複数の出力ポート２０４に同時に到達する。複数のＲＥＡＤ要求は、異なるロジックモジュールによってリングＲ内の異なる場所から同時に読み取りを行うことにより、オーバラップして実行される。更に、他の複数のＲＥＡＤ要求がＰＲＡＭメモリーの異なるアドレスにおいて同じサイクル時間において実行される。
【００５２】
システムタイミングにより、複数のＲＥＡＤ要求はオーバラップして、効率的且つ並列に実行される。図４Ａ、４Ｂ及び４Ｃは単一のＲＥＡＤに対するタイミングを図示している。記憶リングＲは通信リングＣと同じ長さである。リングＲは長さＰａｙＬの循環データ４１４を含む。リングＲ内の残りの記憶要素はゼロまたは“ブランク（ｂｌａｎｋ）”とするか、或いは、無視され任意の値をとることができる。ＢＬＡＮＫフィールド４１２はＤＡＴＡフィールド４１４に含まれないビットのセットである。
【００５３】
図４Ａを参照すると、各リングＣ及びＲの一部が特定のＤＰＩＭのロジックモジュールを通過している。ロジックモジュールは、リングＣを構成するシフトレジスタのセットの少なくとも２つのビットと、リングＲを構成するシフトレジスタの少なくとも２つのビットを含む。ある実施例では、ＤＰＩＭ３１４は複数のロジックモジュール３１４を含む。ロジックモジュールは、１クロック時間で通信リング３０２の２ビットを読み込むよう配置される。グローバル信号（図示せず）によって指示される時間において、ロジックモジュールはＢＩＴフィールドとＯＰ１フィールドを調べる。示されている例では、ロジックモジュールはＯＰ１フィールド及びＢＩＴフィールドの全体を一緒に読み込む。別の実施例では、ＯＰ１及びＢＩＴフィールドを複数動作により読むことも可能である。ＲＥＡＤ要求では、ブロックされていないロジックモジュール３１４が適切な時間にパケットをコンセントレータまたはボトムスイッチに送り、パケットがコンセントレータまたはボトムスイッチの入力内の他のビットと整合するようにする。
【００５４】
ＲＥＡＤ要求では、ブロックされたロジックモジュールがパケットをリングＣ上に置くと、そのパケットは次のロジックモジュールへと移動する。次のロジックモジュールはブロックされていてもされていなくてもよい。後続のロジックモジュールがブロックされている場合、そのブロックされたロジックモジュールもリングＣ上のパケットを同様に次のモジュールへ送る。パケットが右端のロジックモジュールＬＲに入り、この右端のロジックモジュールＬＲがブロックされている場合、ロジックモジュールＬＲはパケットをリングＣ上のＦＩＦＯを通過するよう送る。ＦＩＦＯを出るとパケットは左端のロジックモジュールに入る。パケットは、ブロックされていないロジックモジュールに出会うまで循環する。リングＣの長さは循環するパケットが常にリング上に完全に納まるように設定される。別の言い方をすると、パケット長さＰＬはリング長さＦＬを越えることはない。
【００５５】
ＲＥＡＤ動作では、パケットは次の形式を有する：
｜ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＯＰ１｜ＡＤ１｜ＢＩＴ｜
【００５６】
パケットはトップスイッチに挿入される。アドレスフィールドＡＤ１は所望のデータを含むリングＲ  ３０４のターゲットアドレスを示す。アドレスフィールドＡＤ２は、結果が送られるボトムスイッチの出力ポート２０４のターゲットアドレスである。処理コードＯＰ２は出力デバイスによって実行されるべき処理を指定する。
【００５７】
ある典型的な実施例では、出力デバイスは入力デバイスと同じである。従って、単一のデバイスがＰＲＡＭの入力２０２及び出力２０４ポートに接続される。ＲＥＡＤ要求では、ＰＡＹＬＯＡＤフィールドはロジックモジュールによって無視されるので、どのような値でもよい。一方、ＷＲＩＴＥ動作では、ＰＡＹＬＯＡＤフィールドはアドレスＡＤ１のＤＰＩＭに関連づけられたリングＲ  ３０４上に置かれるデータを含む。ロジックモジュールから送り出される変形されたパケットは以下の形式を有する：
｜ＤＡＴＡ｜ＯＰ２｜ＡＤ２｜ＢＩＴ｜
【００５８】
ボトムスイッチに入るデータは以下の形式を有する：
｜ＤＡＴＡ｜ＯＰ２｜ＡＤ２｜ＢＩＴ｜
【００５９】
データは、アドレスフィールドＡＤ２によって指定された出力ポートを通じてボトムスイッチから送り出され、ここでＤＡＴＡはリングＲのデータフィールド４１４である。
【００６０】
図４Ａ、４Ｂ及び４Ｃは通信リングＣ、データ記憶リングＲ及びコンセントレータＢの間のタイミングを表している。複数の並列なＦＩＦＯをバス構造で有するリングを含む実施例では、ロジックモジュール３１４は一度に複数のビットを読み込むことができる。本実施例では、ロジックモジュールＬはクロック時間ごとに１ビットのみを受け取る。コンセントレータＢはロジックモジュールからパケットを受け取ることができるＦＩＦＯ３０８上の複数の入力ノード３２０を含む。ロジックモジュールは入力ポート３２２を通じてコンセントレータのトップレベルにデータを注入するべく配置される。
【００６１】
図４Ａを参照すると、ＢＩＴフィールド４０２は１にセットされ、データリングＲ上のＢＬＡＮＫフィールド４１２の第１ビットＢ０４０８と同時にロジックモジュールに到達する。循環するデータの相対的なタイミングは、リングＲ内のＤＡＴＡの第１ビットが（ライン４１０で示すように）リングＣ内の要求パケットのペイロードフィールドの第１ビットと整合するように調整される。
【００６２】
既にコンセントレータＢ内にあり、コンセントレータの別のノードからノード３１６へと入ろうとしているデータは、パス３２２を通じて上方からノード３１６に入ろうとするデータに対して優先する。グローバルパケット到達タイミング信号（図示せず）により、パケットが入り得る時間についてノード３１６に情報が伝えられる。既にコンセントレータ内にあるパケットがノード３１６に入る場合、ノード３１６はそれに接続されたロジックモジュールに対しパス３２４を通じてブロック信号を出す。ブロック信号に応答して、上述したように、ロジックモジュールＬは通信リングＣへとＲＥＡＤ要求パケットを送る。階層の下方からブロック信号が送られてこない場合、ロジックモジュールＬはノード３１６の下流のコンセントレータＢ内の入力ノード３２０へとライン３２２を通じてパケットを送る。
【００６３】
図４Ａは時間Ｔ＝０におけるＲＥＡＤ要求を示している（ここでＴ＝０は、要求を受け取ったロジックモジュールによる要求処理の開始時間）。この時点で、ロジックモジュールは、ＲＥＡＤ要求を受け取ったのかどうか及び受け取った要求が下方からブロックされていないかどうか判断するのに十分な情報を有している。特に、ロジックモジュールはＢＩＴ及びＯＰ１フィールドを調べ、以下の３つの条件について応答する：
下方からライン３２４を通じてビジー信号は受信されていない、
ＢＩＴ＝１、及び
ＯＰ１＝ＲＥＡＤ要求。
【００６４】
これら３つの条件が満たされた場合、ロジックモジュールは次時間ステップでＲＥＡＤ処理を開始するのに準備完了となる。ＯＰ１＝ＷＲＩＴＥの場合、ロジックモジュールは次時間ステップでＷＲＩＴＥ処理を開始する。
【００６５】
図４Ｂ及び図４Ｃはブロック信号がノード３１６からロジックモジュールへ送られない場合の進行中のＲＥＡＤ要求を示す。
【００６６】
図４ＢはＴ＝１におけるＲＥＡＤ要求を示す。リングＺ、Ｃ及びＲ内の全データビットは一つ右にシフトされる。リングの右端のビットはＦＩＦＯに入る。またＦＩＦＯは左端の要素に１ビット供給する。ロジックモジュールはＢＩＴフィールドをライン３２２を通じてコンセントレータの入力ポートへ送る。シフト後、Ｃリングのレジスタはパケットの第２及び第３ビット、即ち１ビットからなるＯＰ１フィールド及びＡＤ２フィールドの第１ビットを含む。ロジックモジュールはリングＲのＢＬＡＮＫフィールドの第２及び第３ビット、即ちＢ１及びＢ２を含む。ＰＲＡＭ２００の典型的な動作では、リングＺからのパケットは図示されているロジックモジュールの左に位置するロジックモジュール（図示せず）に入るものとすることができる。この場合、パケットの全体はリングＣ内に含まれない。パケットの残りはトップスイッチ１１０内にある、または、入力ポートからトップスイッチを通ってリングＺから出つつロジックモジュールＬ  ３１４に入るという“ワームホール（ｗｏｒｍｈｏｌｉｎｇ）”プロセスにあるものとすることができる。図４Ａ、４Ｂ及び４Ｃは理解が容易なように全体がリングＣ上に含まれるＲＥＡＤ要求パケットを示している。
【００６７】
次のＡＤ２Ｌ＋ＯＰ２Ｌ個のステップで、ロジックモジュールＬはＡＤ２及びＯＰ２フィールドを読み取り入力ポート３２０へコピーする。この時点で、コンセントレータは、ＢＩＴフィールド、ＡＤ２フィールド及びＯＰ２フィールドをビットシリアルに受信したこととなる。コンセントレータはこのシーケンスを、ＤＡＴＡフィールド４１４の第１ビットがロジックモジュールＬに到達する前に、ワームホール式に受け取り処理する。ロジックモジュールＬがリングＣ上のＡＤ２及びＯＰ２を読み込む間、リングＲ上のＢＬＡＮＫフィールド４１２はロジックモジュールＬを通過し、無視される。ロジックモジュールは、リングＲのＤＡＴＡフィールドの第１ビットが到達するのと同時（ライン４１０で示した）に通信リングＣ内のパケットのＰＡＹＬＯＡＤセクションの第１ビットを読み取るように配置されている。
【００６８】
ロジックモジュールＬは出力データを２方向に送る。第１に、ロジックモジュールＬはゼロ化されたパケット（ｚｅｒｏｅｄ ｐａｃｋｅｔ）をリングＣに戻す。第２に、ロジックモジュールＬはＤＡＴＡフィールドを下流に送る。リングＣに戻される全ビットはゼロ４３０にセットされ、リングＣ上の後続のロジックモジュールがＲＥＡＤ処理を繰り返さないようにされる。別の方法として、代わりにロジックモジュールＬが要求を問題なく処理したら要求パケットを通信リングＣから除去してもよく、その場合、同じリング上の他のロジックモジュールが同じサイクル時間において他の要求パケットを受け付けることが可能となるという利点が得られる。パケットはロジックモジュールによって好適にワームホール式に処理され、それにより、１サイクル時間において複数の異なるパケットを特定の一つのＤＰＩＭにより処理することができる。
【００６９】
時間Ｋ＋１では、ペイロードの第１ビットはロジックモジュールＬによりゼロで置き換えられる位置にあり、リングＲの第１ビットＤ１はボトムスイッチまたはボトムスイッチへとデータを転送するコンセントレータへと送られる位置にある。プロセスは図４Ｃに示すように続く。ロジックモジュールは第２のＤＡＴＡビットＤ２をコンセントレータへ送る一方、データリングＲから第３のＤＡＴＡビットＤ３を読み込む。プロセスの終了時、パケット全体が通信リングＲから取り除かれ、パケットは次の形式を有する：
｜ＤＡＴＡ｜ＯＰ２｜ＡＤ２｜ＢＩＴ｜
【００７０】
パケットはコンセントレータの入力ポート３２０またはボトムスイッチへと送られる。ＤＡＴＡはリングＲのＤＡＴＡフィールドからコンセントレータへとコピーされる。データリングＲ内のＤＡＴＡフィールド４１４は変化しない。
【００７１】
図５を参照すると、ロジックモジュールＬ１  ５０４とＬ２  ５０２が同時にＲＥＡＤ要求を実行する。異なる要求パケットＰ１及びＰ２が一般に異なる入力ポート２０２から送られてきてトップスイッチに入り、単一のＤＰＩＭにおいてワームホール式に複数のＲＥＡＤ要求が処理される。図示した例では、全ての要求は同じＰＲＡＭアドレスに対するものであり、それはそれぞれの要求パケットのＡＤ１フィールドにて指定される。パケットＰ１及びＰ２はそれぞれターゲットＤＰＩＭ内の異なるロジックモジュールＬ１及びＬ２に到達する。各ロジックモジュールは互いに独立して要求を処理する。示した例では、最初に到達したＲＥＡＤ要求Ｐ２がモジュールＬ２  ５０２により処理されている。モジュールＬ２は既にＢＩＴフィールド、ＯＰ１フィールド、及びＡＤ２フィールドの５ビットを読み込んで処理している。またモジュールＬ２は既にＢＩＴフィールド及びＡＤ２フィールドの４ビットをコンセントレータの入力ノード５１２へと送っている。同様に、モジュールＬ１は既にパケットＰ１のＡＤ２フィールドの２つのビットを読み込んで処理しており、第１のＡＤ２ビットを下方のノード５１４へと送っている。２つのパケットのＡＤ２フィールドは異なっており、その結果、ＤＡＴＡフィールド４１４はボトムスイッチの２つの異なる出力ポートに送られる。２つ目の要求は最初の要求から数クロック時間だけ遅れて発生し、これら２つの要求の処理はオーバラップしてなされる。ＤＰＩＭはＴ個のロジックモジュールを有し、同じサイクル時間においてＴ個のＲＥＡＤ要求を処理する能力を有する。ＲＥＡＤ要求を処理した結果として、ロジックモジュールは常にリングＣ上にゼロ４３０を置く。
【００７２】
要求及び応答をそれぞれトップスイッチ及びボトムスイッチ内をワームホール式にルーティングすることにより、任意の入力ポートが他の入力ポートと同時に要求パケットを送ることが可能となる。一般に、任意の入力ポート２０２はＲＥＡＤ要求を他の入力ポートから同時に送られてくる要求とは独立して任意のＤＰＩＭに送ることができる。ＰＲＡＭ２００は、複数の要求元からの単一のデータベースに対する並列でオーバラップしたアクセスをサポートし、同じデータ位置に対する複数の要求をサポートする。
【００７３】
ＷＲＩＴＥ要求
ＷＲＩＴＥ要求でも、パケットのＡＤ１フィールドはトップスイッチ内におけるパケットのルーティングに用いられる。パケットは所定位置でトップスイッチのノード３１２を出てリングＣに入る。ＯＰ１フィールドはＷＲＩＴＥ要求を指定する。ＷＲＩＴＥ要求では、コンセントレータへはデータは送付されない。従って、ロジックモジュールはコンセントレータからの制御信号を無視する。ロジックモジュールはコンセントレータの入力ポート３２０に“０”を送り、パケットは送られないとの情報を伝える。リングＺのＷＲＩＴＥ要求は、リングＣ上で遭遇する最初のロジックモジュールに常に入ることができる。
【００７４】
説明の簡便化のため、要求パケットをリングＣ内に示す。より典型的な動作では、要求はトップスイッチを通ってロジックモジュールへとワームホール式に送られる。ＷＲＩＴＥ要求に対して、ロジックモジュールはＯＰ１とＰＡＹＬＯＡＤフィールド以外のフィールドの情報は無視する。
【００７５】
図６は時間Ｔ＝Ｋ＋５におけるＷＲＩＴＥ要求を図示している。リングＣ上のＷＲＩＴＥパケット及びリングＲ上のデータは共に同期してロジックモジュールを通って回る。ＯＰ２フィールドの最終ビットは、ロジックモジュールが記憶リングＲのＢＬＡＮＫフィールドの最終ビットと整合されるのと同時に、ロジックモジュールによって捨てられる。パケットのＰＡＹＬＯＡＤフィールドの第１ビットがロジックモジュールに到達すると、ロジックモジュールＬはリングＣから第１ビットを取り除き、その第１ビットをリングＲのＤＡＴＡフィールド内に置く。プロセスはＰＡＹＬＯＡＤフィールドの全体が通信リングからリングＲのＤＡＴＡフィールドへと転送されるまで続く。ロジックモジュールＬはパケットをゼロ化し、望ましくはリングＣからパケットを除去して他のロジックモジュールがそのＷＲＩＴＥ動作を繰り返さないようにする。
【００７６】
視覚的に理解し易いように、図６はリングＣからリングＲへと移動中のデータパケットを示している。データは通常、トップスイッチから到達する。より詳細には、データはトップスイッチ上に散布される。
【００７７】
一つのＤＰＩＭに複数のＲリングが設けられる別の実施例では、ＤＰＩＭモジュールのアドレスはＡＤ１フィールドに格納され、ＤＰＩＭモジュール内の所与のＲリングのアドレスは拡張されたＯＰ１フィールドの一部として格納される。一つのＤＰＩＭメモリーモジュールに８つのＲリングが設けられた例では、ＯＰ１フィールドは４ビット長さを有し、第１ビットがＲＥＡＤまたはＷＲＩＴＥ動作を示し、次の３つのビットがどのＲリングに対して要求がなされているのかを示す。ＤＰＩＭの各々に複数のＲリングが含まれる場合、トップスイッチ内のレベルの数及びコンセントレータ内のレベルの数が低減される。
【００７８】
一つのＤＰＩＭ内に複数のＲリングを設けることにより、より多くのデータ及びより多くのロジックをモジュール内に必要とし且つより複雑なＯＰ１コードを必要とするような、より複雑な動作も可能となる。例えば、ＤＰＩＭへの要求を、全てのＲリングの中で最大の値を送る要求としたり、Ｒリングのサブセットの値の合計を送る要求としたりすることができる。また、ＤＰＩＭ要求を、所定のタイプのデータの効率的な検索を可能とするべく、指定されたサブフィールドを含むワードの各コピーを計算されたアドレスに送る要求とすることもできる。
【００７９】
示されているＰＲＡＭシステムでは、ＢＬＡＮＫフィールドは無視され、任意の値を有することができる。別の実施例では、様々な処理を補助するべくＢＬＡＮＫフィールドを定義してもよい。一実施例では、ＢＬＡＮＫフィールドはスコアボード機能に用いられる。あるシステムがＢＬより少ないＮ個のプロセッサを有し、ＤＡＴＡフィールドが上書き可能となる前にＮ個のプロセッサ全てがＤＡＴＡフィールドを読み取らなければならないとする。新たなＤＡＴＡ値が記憶リングＲに置かれるとき、ＢＬＡＮＫフィールドは全てゼロに設定される。Ｎ個のプロセッサのうちプロセッサＷがデータを読み取ると、ＢＬＡＮＫのビットＷが１にセットされる。ＢＬＡＮＫの適切なＮビットのサブフィールドが全て１の状態に設定されたときのみ、リングＲのＤＡＴＡ部の上書きを行うことができる。ＢＬＡＮＫフィールドは再リセットされて全てゼロになる。
【００８０】
このようなスコアボード機能は多数あるＢＬＡＮＫフィールドの使用法の一つにすぎない。当業者であれば、演算及び通信における様々な応用のためＢＬＡＮＫフィールドを効果的に使用することが可能だろう。
【００８１】
いくつかの実施例では、ＤＰＩＭ内の複数のロジックモジュールが互いに通信する（ｉｎｔｅｒｃｏｍｍｕｎｉｃａｔｅ）ことができなければならない。そのような応用の例としては、非同期転送モード（ＡＴＭ）インターネットスイッチに用いられるリーキーバケット・アルゴリズム（ｌｅａｋｙ ｂｕｃｋｅｔ ａｌｇｏｒｉｔｈｍ）がある。例示した並列アクセスメモリー２００では、演算ロジックモジュール３１４は、ＲＥＡＤ要求エントリーの受信に応じてローカルカウンタ（図示せず）に信号を送る。一つのＤＰＩＭ内の２つの演算ロジックモジュールが同時に読み取りパケットの第１ビットを受信することはなく、従って、共通のＤＰＩＭバス（図示せず）を好適に用いて全ロジックモジュールに接続されたカウンタを動かすことができる。カウンタは全ての演算ロジックモジュールに応答することができ、それにより、“リーキー・バケットがあふれた”場合、適切なロジックモジュールの全てが通知を受け、その情報に対してＡＤ２及びＯＰ２フィールドを変形することで応答し、適切な宛先に対して適切な応答を生成する。
【００８２】
図１を参照すると、基本要素としてネットワークインターコネクト構造を用いて構築された演算エンジン（ｃｏｍｐｕｔａｔｉｏｎａｌ ｅｎｇｉｎｅ）１００が模式的なブロック図に示されている。演算エンジンの様々な実施例は、図１の説明において上述した汎用システム１００の中核要素を含む。演算システムである演算エンジンの例では、ボトムスイッチ１１２は、１または複数のプロセッサ及びメモリーまたは記憶装置を含む演算ユニット１２６にパケットを送る。図３を参照すると、リングＲに関連づけられた演算ロジックモジュールがシステム全体の演算機能の一部を実行する。ボトムスイッチ１１２からデータを受信する演算ユニット１２６は更なる論理処理を実行する。
【００８３】
ロジックモジュールは、演算エンジンに望まれる全体的な機能に応じて従来のプロセッサ処理及び新規なプロセッサ処理の両方を実行する。
【００８４】
システム１００の第１の例はスケーラブルな並列演算システムである。処理の一側面において、システムは、ＳＯＲＴ処理の並列比較サブオペレーションを含む並列ＳＯＲＴを実行する。ロジックモジュールＬはパケットから第１データ要素を受け取り、記憶リングＲ  ３０４から第２データ要素を受け取る。ロジックモジュールは２つのデータ要素のうち大きい方を記憶リングＲ上に置き、小さい方をＰＡＹＬＯＡＤフィールドに置き、更に、小さい方の値をパケットのＡＤ２フィールド内の所定のアドレスに送る。図３に示すように、２つのそのようなロジックモジュールが直列に接続されている場合、第２のロジックモジュールは数クロックサイクル内に第１のロジックモジュールから来るデータについて第２の比較を実行することができる。このような比較及び置換プロセスは多くのソーティングアルゴリズムにおいて共通の作業単位であり、従来技術をよく知っているものであれば、このような比較及び置換プロセスを用いてより大きな並列ソーティングエンジンを形成することが可能である。
【００８５】
当業者であれば、広い範囲のシステム応用に用いることが可能な多くの有用なロジックモジュール３１４を形成することができるだろう。単一のロジックモジュールが多くの処理を行うことも、あるいは、異なる種類のロジックモジュールを形成し各ユニットがより少ない数のタスクを実行するようにすることも可能である。
【００８６】
システム１００には２種類の処理ユニットが含まれている。即ち、ＤＰＩＭ１１４内のユニットと演算ユニットＣＵ  １２６内のユニットである。ＤＰＩＭはビットシリアルなデータ移動を扱い、大量のデータの移動を伴うような演算を実行する。ＣＵは１または複数の汎用プロセッサのようなプロセッサ及び通常のＲＡＭを含む。ＣＵは、該ＣＵに与えられるデータセットについて“大量データ処理（ｎｕｍｂｅｒ ｃｒｕｎｃｈｉｎｇ）”動作を実行し、パケットの生成、転送及び受信を行う。ＤＰＩＭの重要な機能の一つは、小さい遅延で、並列に、且つ後の処理に都合のよい形式でデータをＣＵに供給することである。
【００８７】
機能の一例では、演算問題の大きな領域を互いに重ならないサブ領域の集まりに分解することができる。ＣＵは、そのＣＵによって実行される演算に大きく貢献する各サブ領域からの所定のタイプのデータを受信するように選択することができる。ＤＰＩＭはデータを用意し、結果を適切なＣＵに送る。例えば、領域は１０回の移動で可能な全てのチェスの位置とし、サブ領域は所与の一対の動きから８回の動きで可能な全ての位置を含むものとすることができる。ＤＰＩＭは見込みのありそうな最初の動き対のみを、最も見込みのありそうなものから最も見込みの薄いものへと順に並べられたデータとともに、ＣＵに戻す。
【００８８】
別の応用では、領域は３次元空間での複数の対象物（ｏｂｊｅｃｔｓ）の表現を含み、各サブ領域はその空間の区切られた部分からなる。ある特定の例では、関心のある状態が、関心のある物体（ｂｏｄｙ）に働く所定のしきい値を越えた重力の状態として定義される。ＤＰＩＭは、関心のある状態と整合するデータを含むサブ領域からデータをＣＵに送る。
【００８９】
図１に示したスケーラブルなシステム、及び、スケーラブルなシステムの中核要素を用いた実施例は、スーパーコンピュータでの応用に適するように構築することもできる。スーパーコンピュータでの応用では、複数のＣＵは適切な形式で且つタイムリーに並列にデータを受信する。これらＣＵは並列にデータを処理し、処理結果を送付し、後の相互作用に対する要求を生成する。
【００９０】
ＤＰＩＭはブックキーパー（ｂｏｏｋｋｅｅｐｅｒ）及びタスクスケジューラとしても有用である。一例として、集合（ｃｏｌｌｅｃｔｉｏｎ）Ｈの複数（Ｋ個）の演算ユニット（ＣＵ）を用いるタスクスケジューラがある。集合ＨのＣＵは、通常、並列演算で様々なタスクを実行する。タスクを終了すると、Ｋ個のＣＵのうちＮ個に新たなタスクが割り当てられる。少なくともＫビットのデータを格納することができるデータ記憶リングＲはＫ長さのワードＷをゼロ化する。ワードＷ内の各ビット位置はコレクションＨの特定のＣＵに関連づけられている。あるＣＵが割り当てられたタスクを完了すると、そのＣＵはリングＲを含むＤＰＩＭにパケットＭを送る。データ記憶リングＲ上のロジックモジュールＬ１は、パケットＭを送出したＣＵに関連づけられたビット位置に１を挿入することでワードＷを変形する。データ記憶リングＲ上の別のロジックモジュールＬ２はワードＷ内の１の数を追跡する。ワードＷがＮビットを有する場合、Ｈ内のＮ個のアイドルＣＵが新たなタスクを開始する。これら新たなタスクは一つのパケットをＮ個のプロセッサにマルチキャストすることにより開始される。集合Ｈの部分集合（ｓｕｂｃｏｌｌｅｃｔｉｏｎ）にマルチキャストを行う効率的な方法について以下に説明する。
【００９１】
図７を参照すると、間接アドレス指定を用いてマルチキャスト動作を実行するための構造及び技法が模式的ブロック図に示されている。パケットを対応するアドレスにより指定された複数の宛先にマルチキャストすることは、演算及び通信の用途においてとても有用な機能である。単一の第１アドレスが第２アドレスの集合を指す。これら第２アドレスはマルチチャストされるパケットペイロードのコピーの宛先である。
【００９２】
いくつかの実施例では、インターコネクト構造システムが出力ポートの集合Ｃを有し、ある条件の下では、システムは所定のパケットペイロードを集合Ｃ０内の全ての出力ポートに送る。集合Ｃ０、Ｃ１、Ｃ２、．．．、ＣＪ−１の各々は出力ポートのセットからなり、Ｊより小さい特定の整数Ｎに対し、集合ＣＮ内の全てのポートが、単一のマルチキャスト要求の結果、同じ特定のパケットを受信することができる。
【００９３】
マルチキャストインターコネクト構造７００は記憶リングＲ  ７０４内に集合ＣＮの出力アドレスのセットを格納する。リングの各々はＦＭＡＸ個のアドレスを格納する容量を有する。示されている例では、図７に示されたリングＲはＦＭＡＸ＝５個のアドレスを格納する容量を有する。
【００９４】
スイッチの構成及びサイズは様々なものを用いることができる。一実施例では、ボトムスイッチは６４個の出力ポートを有する。出力ポートアドレスは６ビットバイナリパターンで格納することができる。リングＲはＦ０、Ｆ１、Ｆ２、Ｆ３及びＦ４のラベルが付された５つのフィールド７０２を有し、これらのフィールドに集合ＣＮの出力ポート位置が保持される。各フィールドは７ビット長さである。７つのビットの内、第１ビットは、ＣＮの位置がそのフィールドの次の６ビットに格納されている場合、１にセットされる。そうでない場合、第１ビットは０にセットされる。
【００９５】
少なくとも２種類のパケットがマルチキャストロジックモジュールＭＬＭ７１４に到達し得る。それらパケットには、ＭＵＬＴＩＣＡＳＴ  ＲＥＡＤパケットとＭＵＬＴＩＣＡＳＴ  ＷＲＩＴＥパケットが含まれる。
【００９６】
パケットの第１のタイプ、ＰＷ、はＭＵＬＴＩＣＡＳＴ  ＷＲＩＴＥ処理を指定するＯＰ１フィールドを有する。ＷＲＩＴＥパケットは通信リング３０２に到達し、以下の形式を有する：
｜ＰＡＹＬＯＡＤ｜ＯＰ１｜ＢＩＴ｜
【００９７】
ＰＡＹＬＯＡＤは、鎖状につながったフィールドＦ０、Ｆ１、Ｆ２、Ｆ３及びＦ４に等しい。パケットＰＷはＭＬＭ７１４が適切な時間にＦ０の第１ビットを読み取るのに適した位置において通信リング３０２に到達する。ＭＬＭは、図６を参照して上述したＷＲＩＴＥ動作と同様に、ＰＡＹＬＯＡＤの第１ビットをリングＲに書き込む。
【００９８】
図７はマルチキャスト機能をサポートする特別なハードウェアＤＰＩＭ７１４に接続されたロジックモジュールを示している。ＷＲＩＴＥ要求に応答して、システムは処理を実行し、それによってフィールドＦ０、Ｆ１、Ｆ２、Ｆ３及びＦ４はリングＺ及びＣからデータ記憶リングＲ  ３０４に転送される。パケットはＢＩＴ＝１により示され、ＢＩＴ＝０のときパケットの残りは常に無視される。処理コードフィールドＯＰ１がＢＩＴフィールドの後に続く。ＭＵＬＴＩＣＡＳＴ  ＷＲＩＴＥ処理では、ＯＰ１はペイロードをパケットから記憶リングに転送し、そのとき記憶リング上にあるデータを置き換えるべきであることを示す。データはＭＬＭから記憶リングへとシリアル転送される。
【００９９】
例えば、データは右端のライン３３４を通じて転送される。データは記憶リング７０４上に置かれるのに適切な時間及び位置に適切な形式で到達する。ＭＵＬＴＩＣＡＳＴ  ＷＲＩＴＥ処理では、ボトムスイッチからＭＬＭへライン７２２を通じて送られる制御信号は無視することができる。
【０１００】
ＭＵＬＴＩＣＡＳＴ  ＲＥＡＤ要求を示す別のタイプのパケット、ＰＲ、が通信リング３０２に到達することもあり、以下の形式を有する：
｜ＰＡＹＬＯＡＤ｜ＯＰ２｜ＢＬＡＮＫ｜ＯＰ１｜ＢＩＴ｜
【０１０１】
ＢＬＡＮＫ部は、例えば、６ビット長さである。ＢＬＡＮＫフィールドはＣＮのフィールドの一つからのターゲットアドレスによって置換される。ＯＰ１フィールドは、特定のパケットまたは応用のために用いても用いなくてもよい。パケットのグループがボトムスイッチ１１２に以下の形式で入力する：
｜ＰＡＹＬＯＡＤ｜ＯＰ２｜ＡＤ２｜ＢＩＴ｜
【０１０２】
アドレスフィールドＡＤ２はリングＲフィールドから来ている。処理フィールドＯＰ２及びＰＡＹＬＯＡＤはＭＵＬＴＩＣＡＳＴ  ＲＥＡＤパケットに由来する。
【０１０３】
示されている例では、ターゲットアドレスＡＤ１に位置する記憶リングＲ  ７０４は３つの出力ポートアドレス、例えば、３、８及び１７を格納する。出力アドレス３がフィールドＦ０に格納されている。アドレス３の最上位ビット（ｍｏｓｔ ｓｉｇｎｉｆｉｃａｎｔ ｂｉｔ）が最初に現れ、その後に次に重要なビットが続くというようにして続いていく。従って、１０進数の整数３を表す標準的な６ビットバイナリパターンは００００１１となる。これらヘッダビットは、最上位ビットから最下位ビットの順に用いられる。ヘッダビットは最上位ビットが最初にくるように格納すると都合がよく、その結果、フィールドＦ０において、ターゲット出力３を表すフィールドは６ビットパターン１１００００によって表される。タイミングビットを含むフィールドＦ０全体は７ビットパターン１１００００１を有する。同様に、フィールドＦ１は１０進数の８をパターン０００１００１として格納する。フィールドＦ２は１０進数の１７を１０００１０１として格納する。更なる出力ポートはアドレス指定されていないため、フィールドＦ３及びＦ４は全てゼロ（０００００００）に設定される。
【０１０４】
ライン７２２上の制御信号はボトムスイッチにおける非ブロック状態を示し、パケットがライン７１８を通じて入力するのを許可する。ボトムスイッチからロジックモジュール７１４へとライン７２２を通じて送られる制御信号がビジー状態を示しているときは、スイッチへのデータの送付はなされない。“非ビジー”制御信号がＭＬＭに達すると、リングＲ内のアドレスのデータフィールドが、読み取りユニット（ｒｅａｄｉｎｇ ｕｎｉｔ）７０８及びボトムスイッチ１１２へと応答を生成し送付するのに適切な位置に置かれる。ロジックモジュールに“非ビジー”信号が到達した後の適切な時間において、ＭＬＭは複数のＭＵＬＴＩＣＡＳＴ  ＲＥＡＤ応答パケットをボトムスイッチ１１２を通じてアドレスの集合ＣＮに送り始める。
【０１０５】
システムは、アドレスＡＤ１にあるＤＰＩＭへＭＵＬＴＩＣＡＳＴ  ＲＥＡＤパケットを送った後、そのパケットのＰＡＹＬＯＡＤフィールドをリングＲ  ７０４に格納された集合ＣＮに格納された複数のアドレスにマルチキャストする能力を有する。
【０１０６】
典型的には、上記したようなマルチキャストシステムは様々な演算及びデータ記憶タスクを実行することが可能なハードウェアを含む。示した例では、マルチキャスト能力は、マルチキャストアドレスを保持し転送するべく特別に構成されたＤＰＩＭユニット７００を使用することにより達成される。
【０１０７】
上記したマルチキャスト機能の一般化は、単一のパケットＭが集合ＣＮ内のメンバーシップを指定するアドレスを有する出力ポートの所定のサブセットへと送られるようなモードである。どのメンバーに送出されるべきかを示すビットマスクは送出マスク（ｓｅｎｄ ｍａｓｋ）と呼ばれる。一例では、アドレス３、８及び１７が集合ＣＮの３つのメンバーである。送出マスク０、０、１、０、１はリストＣＮの第１及び第３出力ポートがパケットを受信するべきであることを示す。応答パケットは出力ポート３及び１７にマルチキャストされる。一例では、制御信号により、全入力ポートがパケットを受信することが可能な状態にあるかどうか、或いは、１または複数の入力ポートがブロックされているかどうかが示される。
【０１０８】
別の例では、ブロックされていない出力ポートのリストが格納される。このリストは、ブロックマスクと呼ばれるマスクである。送出マスク内のＮ番目の位置における値１は、ＣＮのＮ番目のメンバーに送出することが望まれていることを示す。ブロックマスクのＮ番目の位置における値１は、ＣＮのＮ番目のメンバーがブロックされておらず、従って送出可能であることを示す。両マスクのＮ番目の位置の値が１のとき、リストのＮ番目の出力ポートへとパケットＭが送られる。
【０１０９】
送出マスクによって示されたサブセットに対応して、ＣＮ内に列挙された出力ポートのサブセットにマルチキャストされるパケットは以下の形式を有する：
ＰＡＹＬＯＡＤ｜ＯＰ２｜Ｍａｓｋ｜マルチキャストＯｐ｜ＡＤ１｜ＢＩＴ｜
【０１１０】
パケットはシステムのトップスイッチに入る。アドレスフィールドＡＤ２に通常格納されるアドレスはアドレスフィールドＡＤ１内に格納されたデータ内に含まれ、従って、アドレスフィールドＡＤ２は用いられない。
【０１１１】
図７を参照すると、ＢＩＴフィールド及びＯＰ１コードはリングＣまたはリングＺからロジックモジュール７１４へと送られる。送出マスク及びブロックマスクも同時にロジックモジュールに入る。送出マスクのＪ番目のビットが１で且つブロックマスクのＪ番目のビットも１の場合、ＰＡＹＬＯＡＤがアドレスＦＪに送られる。残りの処理は、マスクのないマルチキャストモードと同様に進行する。
【０１１２】
集合ＣＮ内の出力ポートのセットはｐ０、ｐ１、．．．、ｐｍで示される。出力ポートは複数のグループに分割されるが、これらグループは、最大で、データ記憶リングＲ上に格納することが可能な数のＣＮのメンバーを含む。データリングＲが５つの出力アドレスを有し、集合ＣＮが９つの出力ポートを有する場合、最初の４つの出力ポートはグループ０に格納され、次の４つの出力ポートはグループ１に格納され、残りの出力ポートはグループ３に格納される。出力ポートシーケンスｐ０、ｐ１、．．．、ｐ９はｑ００、ｑ０１、ｑ０２、ｑ０３、ｑ１０、ｑ１１、ｑ１２、ｑ１３、ｑ２０とインデックス付けすることもできる。このようにして、ターゲットの物理的アドレスをグループ番号とアドレスフィールドインデックスを示す２つの整数により完全に記述することができる。
【０１１３】
いくつかの応用においては、パケットのペイロードは以下の情報を担う：
出力ポートセットのどのポートがアドレスの位置を特定するのに用いられたかを示すＣＮのサブスクリプトＮ、
アドレスが配置されているＣＮのグループ、
アドレスが所属するグループのメンバー、
パケットが入力されるスイッチの入力ポート。
【０１１４】
第２番目と第３番目の情報は、ｑのメンバーの２つのインデックスを示しており、これら２つのインデックスからｐのインデックスを容易に計算することができる。これらの情報を担うパケットに対し、ＰＡＹＬＯＡＤフィールドは以下の形式を有する。
Ｎ｜ｑの第１サブスクリプト｜ｑの第２サブスクリプト｜入力ポート番号｜
【０１１５】
図７は、マルチキャスティングにおいて間接アドレスを用いるシステムも示している。より単純な動作は、単一の出力ポートを間接アドレス指定することである。間接アドレス指定の一例では、データ記憶リングＲは間接アドレスを表す単一のフィールドを含む。例えば、アドレス１７にあるＤＰＩＭの記憶リングＲは値１５３を含む。アドレス１７に送られたパケットはボトムスイッチの出力ポート１５３へと送られる。
【０１１６】
本明細書中に説明する実施例では、所与のリングＲに関連する全てのロジックモジュールはボトムスイッチ１１２にデータを送る。あるＤＰＩＭがトラフィックバーストを、別のＤＰＩＭユニットが比較的少量のトラフィックをボトムスイッチに送る場合、これらリングＲは、同じリングではなく、リングＢのグループにパケットを送る。更に別の例では、これらリングＲはパケットをコンセントレータ１５０に送り、コンセントレータ１５０がデータをボトムスイッチ１１２に伝える。
【０１１７】
上記したシステムでは、データ記憶リングＲ  ３０４及び通信リングＲ  ３０２内の情報は環状に接続されたＦＩＦＯの態様で循環する。一変形例は、リングＲ  ７０４内の情報が静止しているシステムである。トップスイッチ１１０内のレベルゼロのリングからのデータが静的バッファに入るよう接続することができる。静的バッファ内のデータは上記した循環モデルと論理的には等価な態様で相互作用することができる。静的モデルの利点はデータをより効率的に格納することが可能になる点にある。
【０１１８】
本説明では、データＸが、データＹを保持するリングＲに送られる。演算リングＣは入力信号としてデータＸとデータＹのストリームを両方とも受信し、データＸとＹに数学的な関数Ｆを実行し、演算の結果をターゲット出力ポートに送る。ターゲットはリングＲのフィールドまたはパケットのＡＤ２フィールドに格納可能である。別の方法として、ターゲットをＦ（Ｘ，Ｙ）の結果によるものとしたり、別の関数Ｇ（Ｘ，Ｙ）により生成されるものとすることもできる。
【０１１９】
別の応用では、複数の処理をデータＸ及びデータＹに対して実行することができ、その結果を複数の宛先に転送することができる。例えば、関数Ｆ（Ｘ，Ｙ）の結果がアドレスＡＤ２により指定された宛先に送られる。また関数Ｈ（Ｘ，Ｙ）の結果をパケットのアドレスＡＤ３によって指定された宛先に送ることができる。多重処理により、システム１００が多岐に渡る変換を並列に効率よく実行することが可能となるという利点が得られる。
【０１２０】
２つの引数Ｘ及びＹに対してより込み入った算術関数を実行するのに加えて、関数ＦがＸまたはＹの一方のみの関数となるよう、より単純なタスクが実行されるようにすることも可能である。単純な関数Ｆ（Ｘ）またはＦ（Ｙ）の結果は別の関数Ｇ（Ｘ）により生成された、または、アドレスＡＤ２によって指定された宛先に送られる。
【０１２１】
本発明を様々な実施例に基づいて説明したが、これら実施例は例示であって本発明の範囲を限定するものではないことを理解されたい。これら説明した実施例の様々な変形、変更、追加及び改良が可能である。例えば、当業者であれば開示した構造及び方法を提供するのに必要なステップを容易に具現することが可能であり、また、プロセスパラメータ、材料、及び寸法は例としてのみ与えられたのであって、所望の機能特性または本発明の範囲内の変形を実現するべく調節可能であることが理解されるだろう。開示した実施例の変形及び変更は本明細書の記載に基づいて、特許請求の範囲に記載した本発明の思想及び範囲を逸脱することなく可能である。
【０１２２】
当業者は、本発明の範囲内でいくつかの有用な変形及び変更をなす能力を有するだろう。そのような変形及び変更のいくつかの例は列挙したが、他のシステムにも適用され得る。
【図面の簡単な説明】
【図１】
図１は複数のネットワークインターコネクト構造を含む構築ブロックから形成された汎用システムの例を示す模式的なブロック図である。
【図２】
図２は基本要素としてネットワークインターコネクト構造を用いて形成された例えば並列ランダムアクセスメモリー（ＰＲＡＭ）のような並列メモリー構造を示す模式的なブロック図である。
【図３】
図３は、通信リング、複数のロジックモジュール、循環ＦＩＦＯデータ記憶リングへの接続、及びボトムスイッチの上部レベルへの接続を示すトップスイッチの下部レベルの図である。
【図４Ａ】
図４Ａ、４Ｂ及び４Ｃは、通信リング及び循環ＦＩＦＯデータ記憶リングを通るデータの動きを示すブロック図である。図４ＡはＲＥＡＤ及びＷＲＩＴＥ要求の両方に当てはまる。図４Ｂ及び４Ｃは処理中のＲＥＡＤ要求に当てはまる。
【図４Ｂ】
図４Ａ、４Ｂ及び４Ｃは、通信リング及び循環ＦＩＦＯデータ記憶リングを通るデータの動きを示すブロック図である。図４ＡはＲＥＡＤ及びＷＲＩＴＥ要求の両方に当てはまる。図４Ｂ及び４Ｃは処理中のＲＥＡＤ要求に当てはまる。
【図４Ｃ】
図４Ａ、４Ｂ及び４Ｃは、通信リング及び循環ＦＩＦＯデータ記憶リングを通るデータの動きを示すブロック図である。図４ＡはＲＥＡＤ及びＷＲＩＴＥ要求の両方に当てはまる。図４Ｂ及び４Ｃは処理中のＲＥＡＤ要求に当てはまる。
【図５】
図５は、オーバラップした期間に発生する同じ循環データ記憶リングから読み出しを行う２つの読み出し命令を実行しているインターコネクト構造の一部を示している。読み出されたデータは第２スイッチに入ってそこで異なるターゲットへと振り向けられる。
【図６】
図６は、ＷＲＩＴＥ命令を実行しているインターコネクト構造の一部を示している。
【図７】
図７は、間接アドレス指定を用いたマルチキャスト処理を実行するための構造及び技法を示す模式的なブロック図である。
【図１】
2004531783.tif 000004
【図２】
2004531783.tif 000005
【図３】
2004531783.tif 000006
【図４Ａ】
2004531783.tif 000007
【図４Ｂ】
2004531783.tif 000008
【図４Ｃ】
2004531783.tif 000009
【図５】
2004531783.tif 000010
【図６】
2004531783.tif 000011
【図７】
2004531783.tif 000012
【国際公開パンフレット】
2004531783.tif 000013
2004531783.tif 000014
2004531783.tif 000015
2004531783.tif 000016
2004531783.tif 000017
2004531783.tif 000018
2004531783.tif 000019
2004531783.tif 000020
2004531783.tif 000021
2004531783.tif 000022
2004531783.tif 000023
2004531783.tif 000024
2004531783.tif 000025
2004531783.tif 000026
2004531783.tif 000027
2004531783.tif 000028
2004531783.tif 000029
2004531783.tif 000030
2004531783.tif 000031
2004531783.tif 000032
2004531783.tif 000033
2004531783.tif 000034
2004531783.tif 000035
2004531783.tif 000036
2004531783.tif 000037
2004531783.tif 000038
2004531783.tif 000039
2004531783.tif 000040
2004531783.tif 000041
2004531783.tif 000042
2004531783.tif 000043
2004531783.tif 000044
2004531783.tif 000045
2004531783.tif 000046
2004531783.tif 000047
2004531783.tif 000048
2004531783.tif 000049
2004531783.tif 000050
2004531783.tif 000051
2004531783.tif 000052
2004531783.tif 000053
2004531783.tif 000054
2004531783.tif 000055
2004531783.tif 000056
2004531783.tif 000057
2004531783.tif 000058
2004531783.tif 000059
【国際公開パンフレット（コレクトバージョン）】
2004531783.tif 000060
2004531783.tif 000061
【国際調査報告】
2004531783.tif 000062
2004531783.tif 000063