(57)【要約】ほぼ定常的な待ち時間を達成するプロセッサアレイを開示している。最も遠い位置にあるアレイエレメントとの通信において、その距離に対して適切にパイプライン化している。それに対して、近い位置にあるアレイエレメントとの通信は意図的に過剰にパイプライン化し、全ての端点における待ち時間が同一のクロックサイクルであるようにする。プロセッサアレイは、複数の１次バスを持ち、各１次バスは１次バスドライバに接続され、各１次バスドライバは複数の１次バスノードを有する。さらに、プロセッサアレイは、１次バスノードに接続された複数の２次バス、２次バス接続されたプロセッサエレメントを有する。また、プロセッサエレメント間の操作の同期化を達成するために、異なる２次バスに接続しているプロセッサエレメント間の通信を異なる量で遅延するために、１次バスノードに関連する遅延エレメントを有する。
2006518069.tif 000002
【特許請求の範囲】
【請求項１】
各々が１次バスドライバに接続し、かつ１次バスノードを持つ複数の１次バスと、
前記複数の１次バスノードに接続する複数の２次バスと、
各々が前記複数の２次バスの内一つの２次バスに接続する複数のプロセッサエレメントと、
前記プロセッサエレメント間の処理において所定の同期性を達成するために、前記１次バスノードに関連し、異なる２次バスに接続するプロセッサエレメントとの通信を異なる量により遅延する遅延エレメントと、
を具備するプロセッサアレイ。
【請求項２】
前記１次バスドライバから前記プロセッサエレメントにデータを転送し、前記プロセッサエレメントから前記１次バスドライバにデータを転送する、前記１次及び２次バスの各々が双方向性のバスである、請求項１記載のプロセッサアレイ。
【請求項３】
各々の１次バスノードが各々の１次バス上の１次バスドライバからの信号を取り出すタップと、取り出し信号を遅延する遅延線とを具備する、請求項１記載のプロセッサアレイ。
【請求項４】
少なくとも複数の前記１次バスノードが、各々の１次バス上の１次バスドライバからの信号を遅延する遅延エレメントを具備する、請求項３記載のプロセッサアレイ。
【請求項５】
各々の１次バスノードが、各々の２次バスからの信号を各々の１次バス上に結合する装置と、各々の２次バスからの信号を遅延する遅延線とを具備する、請求項１記載のプロセッサアレイ。
【請求項６】
結合する装置がビット単位の論理的ＯＲゲートを具備する、請求項５記載のプロセッサアレイ。
【請求項７】
少なくとも複数の前記１次バスノードが、各々の１次バス上の１次バスドライバに対する信号を遅延する遅延エレメントを具備する、請求項５記載のプロセッサアレイ。
【請求項８】
各々のプロセッサエレメントが各々の２次バスノード上で各々の２次バスに接続している、請求項１記載のプロセッサアレイ。  
【請求項９】
各々の２次バスノードが各々の２次バス上の１次バスドライバからの信号を取り出すタップと、取り出し信号が接続されたプロセッサエレメントを対象としているかを判定するインタフェースとを具備する、請求項１記載のプロセッサアレイ。
【請求項１０】
各々の２次バスノードが、各々のプロセッサエレメントからの信号を各々の２次バス上に結合する装置を具備する、請求項１記載のプロセッサアレイ。
【請求項１１】
結合する装置がビット単位の論理的ＯＲゲートを具備する、請求項１０記載のプロセッサアレイ。
【請求項１２】
１次バスドライバが、入力バスと、前記複数の１次バスのうちどの１次バスが前記入力バス上のデータを受信すべきかを判断する検出器とを含む、請求項１記載のプロセッサアレイ。
【請求項１３】
１次バスドライバの入力バスが、各々のＡＮＤゲートの第一入力を経由して前記複数の１次バスの各々との接続を持ち、前記検出器が、前記複数の１次バスの内一つが前記入力バス上にデータを受信すべきと判断した時に、各々のＡＮＤゲートの第２入力にイネーブル信号を送信するよう処理する、請求項１２記載のプロセッサアレイ。
【請求項１４】
１次バスドライバに物理的に近い１次バスノードに関連する遅延エレメントは、当該近い１次バスノードに接続する２次バスに接続しているプロセッサエレメントとの通信を、１次バスドライバから物理的に遠くにある１次バスノードに関連する遅延エレメントが当該遠い１次バスノードに接続する２次バスに接続しているプロセッサエレメントとの通信を遅延させる遅延時間よりも長い遅延時間で遅延させる請求項１記載のプロセッサアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサアレイに係わり、特に、マルチビット、双方向性、高帯域通信を、一つのプロセッサに一時的に、或いは、全プロセッサに又はプロセッサのサブセットに同時に実施する必要がある大規模プロセッサアレイに関する。このような通信は、プロセッサにプログラムをロードしたり、プロセッサからステータス又は処理結果の情報をリードバックしたり、又は個々のプロセッサの同期開始、停止又はシングルステップといった、データ通信に必要である。
【背景技術】
【０００２】
特許文献１は、各々のプロセッサ（アレイエレメント）がオペレーティングプログラムを構成する命令を格納する必要があり、オペレーティングプログラムを要望どおりに動作するよう制御する必要がある大規模プロセッサを記載している。アレイエレメントは一つのエレメントから他のエレメントにデータをパスするので、プロセッサが少なくともほぼ同期化されていることが重要である。したがって、同時に（即ちプログラムを開始）開始しなければならない。同様に、もし、一時的に停止し再度開始する際も、同時に停止しなければならない。
【特許文献１】英国特許第２３７０３８０号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
大量のアレイエレメントにより、比較的大容量の命令、データ、レジスタファイル等を格納するので、各々のアレイエレメントに対し即座にプログラムをロードできる利便性がある。
【０００４】
プロセッサアレイのサイズにより、各アレイエレメント間のクロックスキューの量を最小化することが困難であり、実際には、アレイエレメントに電力供給する観点から、所定量のクロックスキューを有することには利点がある。即ち、アレイエレメントはお互いに１クロックサイクルの範囲で同期化する必要があることである。
【０００５】
プロセッサのアレイを同期制御する最も簡略化した解決策として、並列状に配置したアレイエレメントに制御信号を送信することである。しかしながら、アレイが一定以上の大きさを超えると扱いにくくなるという制約がある。信号が最も遠い位置にあるアレイエレメントに到達するのに１クロックサイクルを超える程、送信される距離が長くなると、制御信号を効率よく送信し、全ての動作条件において端点到達時間のバランスをとることが困難となる。このことが、適用できるクロックスピードの上限値、即ち通信のバンド幅を設定してしまうこととなる。さらに、このアプローチは、あるモードでは一度に一つのプロセッサに対してのみ通信し、別のモードでは全プロセッサに対し一度に通信を行う点においても、適していない。
【０００６】
多数の端点に対する高帯域通信において、パケット交換又は回路交換方式のネットワークが良い解決策である。しかしながら、この解決策では、全ての端点において一般的に同期化しないという欠点がある。近隣の端点よりも、離れている端点の方が待ち時間が長くなる。さらに、ネットワークのノードが高度で且つ複雑である必要がある。
【０００７】
さらに、拡張性の観点も考慮する必要がある。あるプロセッサアレイで効果がある設計でも、僅かに規模の大きいアレイでは再設計しなければならないかもしれない。また、規模の小さいアレイに対しては、比較的非効率であるかもしれない。
【課題を解決するための手段】
【０００８】
本発明によれば、特許請求の範囲に記載された発明が提供される。
【発明を実施するための最良の形態】
【０００９】
図１はプロセッサ４のアレイを示しており、全てのアレイはバス５上の列ドライバ１に接続している。図に示すように、アレイは、アレイエメント４を水平の行及び垂直の列に配置することにより構成しているが、本発明では、アレイエレメントの実際の物理的な配置は重要ではない。各行のアレイエレメントは、サブグループ６に分けられる。一つのサブグループ６内のアレイエレメント４は、各々の行ノード３を経由して、水平バスセグメント７上に接続される。水平バスセグメント７は、各々の列ノード２を経由して、垂直バスセグメント８上に接続される。各サブグループ６は、列ノード２が１クロックサイクル内での通信を可能とするアレイエレメントを含む。したがって、垂直バス８は１次バスとして、列ノード２は１次バスノードとして、水平バスセグメント７は２次バスとして、行バスノード３は２次バスノードとしての役割を担う。
【００１０】
各々の垂直バス８は、図５を参照して下記で詳細に記載されるように、個々の列ドライバ１により稼動する。これは、通信ルーティング及び節電の手段としての役割を担う。
【００１１】
各々のバス５、７、８は、明確にするために単線として示されているが、実際には、単一方向性、マルチビットバスの各々方向に伸長するペアである。
【００１２】
列ノード２は、図２及び３で示されるように、２つの異なる構成を有する。図２は、垂直パイプラインステージ無しの列ノードを示し、図３は垂直パイプラインステージ有りの列ノードを示す。
【００１３】
図２に示されている列ノード１０において、垂直バス８の発信部分は列ドライバ１からデータを送信し、ノード１０を経由してインレット１２からアウトレット１５に伝達する。さらに、データはコネクション２６で取り出され、バス２５に送信される。バス２５は、水平バスセグメント７の送信部分１３に、短いタップ付遅延線１８を経由して接続される。タップ付遅延線１８は、水平バスセグメント７に対する信号を所定の整数のクロック数により遅延することが可能とする。水平バスセグメント７のリターンパス部分１４は、データを列ドライバ１に送信し、さらに短いタップ付遅延線１９を経由してバス２０に接続される。遅延線１９は、所定の整数のクロック数によりリターン信号を遅延する。遅延線１９の遅延は、遅延線１８の遅延と等しいことが好ましい。しかしながら、全ての端点に送信する信号の遅延の合計と全ての端点から受信する信号の遅延の合計が等しくなるように、各々のノード１０の遅延を設定することができれば、遅延線１９の遅延は、遅延線１８の遅延と異なる値とすることが可能である。バス２０は、出力部分１１のリターンパス垂直バス信号を形成するために、ビット単位、論理的ＯＲ機能１７内で、入力部分１６において受信した垂直バスのリターンパスと結合する。
【００１４】
図３は、列ノード２２の他の形態を示している。列ノード２２の構成要素は、図２で示された列ノード１０の構成要素と同一の機能を有しており、同一の参照番号が付与されているので、ここでは再度説明することはしない。列ノード１０と比較すると、列ノード２２は垂直パイプラインステージを有する。したがって、パイプラインレジスタ２３が垂直バス８の出力部分に挿入され、出力信号を１クロックサイクルにて遅延する。さらに、パイプラインレジスタ２４が垂直バス８のリターンパスに挿入され、リターン信号を同様に１クロックサイクルにて遅延する。
【００１５】
列ノード１０と２２の双方は、アレイエレメント４のサブグループ６に対し、垂直バス８と水平バス７間の接合を備える。列ノード２２は、垂直パイプラインステージを有し、全垂直バスパスを１クロックサイクルより長くすることが可能である。垂直パイプラインステージ無しの列ノード１０は、パイプラインステージを垂直バスパスに加えることなく、接合を備えることが可能である。２つの種類の列ノードをお互いに用いることにより、下記で詳細に説明するように、クロックスピードを減じることなく、全パイプラインの階層を不必要に大きく且つ非効率とすることなく、高帯域通信を可能とする充分なパイプラインを備えることができる。
【００１６】
図４は、図１で示された行ノード３を詳細に示した図である。水平バス７の出力部分は列ドライバ１からデータを送信し、インレット５１からアウトレット５３にノードを経由して伝達する。データは、接続５０において取り出され、さらにバス６０に向けて送信される。バス６０はアレイエレメントインタフェース５７に接続される。  
【００１７】
アレイエレメントインタフェース５７は、図１に示すように、バス５５及び５６を経由して、アレイエレントの一つに接続される。アレイエレメントインタフェース５７はバスプロトコルを解釈し、受信した通信がこの行ノードに接続された特定のアレイエレメントを対象としたものかを判断する。この行ノード３に接続されたアレイエレメントから読み取られた情報はインタフェース５７内で受信され、バス５９に出力される。列ドライバ１に対しデータを送信する水平バス７のリターンパス部分は、入力部５４にて受信される。バス５９は、水平バス７のリターンパスと共に、ビット単位で、論理的ＯＲ機能５８にて結合され、出力部５２用のリターンパス水平信号を形成する。
【００１８】
図５は、図１で示された行サブグループ６を詳細に示した図である。この図で示した例では、サブグループ６は４つのアレイエレメント４を含んでいる。しかしながら、列ドライバ１が１クロックサイクル内で効率的に通信が可能であるエレメント数に依存するので、サブグループ内でエレメント数が４つより多い又は少ない場合も想定される。４つのアレイエレメント４は、行ノード３を経由して水平バス７に接続される。データは、発信水平バスセグメント１３（図２及び３で示すように）で受信され、水平バスセグメント１３のリターンパス部分１４（図２及び図３で示すように）上で出力される。発信水平バスセグメントは遠端６２において接続されていない状態となる。リターンパス水平バスセグメントは論理的全零又は接地により、遠端６３にて終端処理がなされる。これにより、任意の水平ノード３を経由してバス７上で論理的にＯＲが取られてしまうようなリターンパスデータの破壊を回避することができる。
【００１９】
図６は、図１で示された列ドライバ１を詳細に示した図である。ここで示した例において、列数は４つであるが、列数は４つより多く又は少ないことが想定される。アレイエレメント４に対する発信データは、バス３１上でアレイコントロールプロセッサ（図示せず）から受信され、各列に接続されている４つの各垂直バスの出力部３３、３５、３７、３９と平行に配線されている。バス３１は、出力部３３、３５、３７、３９に、各々ビット単位で、論理的ＡＮＤ機能４３を経由して接続される。論理的ＡＮＤ機能４３は、イネーブル信号４４をプロトコル監視ブロックから受信する。プロトコル監視ブロック４２は、バス３１上の通信をデータ間のアドレス信号を基に監視し、各々の列に対し必要に応じて個別に又は全部を有効とするイネーブル信号を生成する。
【００２０】
各々の列に接続された各々の４つの垂直バスのリターンパス部分３４、３６、３８、４０は、ビット単位で、論理的ＯＲ機能４１に結合され、アレイエレント４からアレイコントロールプロセッサにデータを通信する全般のリターンパスバス３２を生成する。
【００２１】
図６で示されたように、列ドライバは４つの列に接続される。しかしながら、アレイが多数のエレメント４を含む場合、及び／又はサブグループ６が少数のエレメント４しか含まない場合、列数が大きくなる場合がある。このような場合、全ての端点とのやりとりに対する遅延を同一とするための追加的なパイプラインステージが必要となるかもしれない。例えば、追加的パイプラインレジスタは一つ又は一つ以上の分岐点３３−４０にて、及び／又はＯＲゲート４１に対する一つ又は一つ以上の入力部にて、及び／又はＡＮＤゲートに対する一つ又は一つ以上の入力部にて、具備するかもしれない。
【００２２】
したがって、全般的な発信パスバスは、複数のパイプラインステージ及び複数の高レベルスイッチングに対し、単純な平行接続の構成を有する。高レベルスイッチングは、アレイエレメントアドレッシングの部分的な機能を担い、電力の節約にも寄与する。
【００２３】
全般的なリターンパスバスは、複数のパイプラインステージを備えた単純な論理的ＯＲ論理入力である。バスは定常的な待ち時間を有し、アレイコントロールプロセッサは一度に一つのアレイエレメントのみから読み出し、アドレス指定されていないアレイエレメントはバス上に論理的全零を送信するので、調整を必要としない。
【００２４】
これにより、リードアクセスの密結合したパイプラインとトリステートバスの使用を回避することを可能とする。
【００２５】
図７及び８は、可能性のある２つの列ノードの配置を示している。これらの双方の配置は、列バスドライバに近い列ノードは、列バスドライバに遠い列ノードよりも、タップ付遅延線を通してより長い時間の遅延を生じる。
【００２６】
図７において、図３にて示されているように、列バスドライバに最も近い列ノードは垂直パイプラインステージであるノード２２であり、図７では黒点にて表されている。その後に続く各４番目の列ノードは垂直パイプラインステージを有し、図２にて示されているように、残りの列ノードは垂直パイプラインステージではないノード１０であり、図７において白点にて表されている。図８において、図３にて示されているように、列バスドライバに最も近い列ノードは垂直パイプラインステージであるノード２２であり、図８では黒点にて表されている。その後に続く各３番目の列ノードは垂直パイプラインステージを有し、図２にて示されているように、残りの列ノードは垂直パイプラインステージではないノード１０であり、図８において白点にて表されている。垂直パイプラインステージであるノード間の実際の距離は、物理的な実施要綱に依存する。距離は、垂直パイプラインステージであるノード数を最小値とし、全ての操作状況に対するバスの操作を正常なものとするよう維持していかなければならない。垂直パイプラインステージのノードは、規則的に又は不規則的に配置されるかもしれない。これは、帯域ではなく全般的な待ち時間を変えているので、本アプローチの拡張性を示している。
【００２７】
図７及び８は、各列ノードにおけるタップ付遅延線１８、１９の典型的な構成を示している。図７において、列バスドライバ１から最も遠い位置にある列ノード、即ちノード７４から開始し、タップ付遅延線１８、１９は最小遅延時間となる、この例においては零クロックサイクルとなる遅延時間Ｄを有する。次に、遅延時間は列を上方に移動するにつれて割り当てられ、パイプライン化したノード２２を通過する毎に遅延時間が１クロックサイクル増加する。したがって、図７において、このノードにおける水平分岐点がパイプラインレジスタ２３，２４の後となるので、パイプライン化ノード７５上のタップ付遅延線１８、１９の遅延時間は未だＤ＝０となる。  次のノード７６は、遅延時間Ｄ＝１クロックサイクルを有するタップ付遅延線１８，１９により構成される。このプロセスは、列バスドライバに最も近い列ノードに到達するまで、繰り返される。したがって、水平バスセグメント上の全ての端点に対し、列の上端とのやりとりに関し同一の待ち時間を有する。
【００２８】
タップ付遅延線構成の同様のパターンは、図８において示されている。したがって、列バスドライバ１から最も遠い位置にある列ノード７８において、タップ付遅延線１８、１９は最小遅延時間となる、この例においては零クロックサイクルとなる遅延時間Ｄを有する。この場合もやはり、遅延時間は列を上方に移動するにつれて割り当てられ、パイプライン化したノード２２を通過する毎に遅延時間が１クロックサイクル増加する。したがって、図８において、ノード７９は、遅延時間Ｄ＝１クロックサイクルを有するタップ付遅延線１８，１９により構成される。このプロセスは、列バスドライバに最も近い列ノードに到達するまで、繰り返される。
【００２９】
タップ付遅延線１８の遅延時間が零クロックサイクルとして設定されると、そのタップ付遅延線に接続した端点は、実際には前の垂直バスパイプラインレジスタ２３により作動する。このことは、パイプラインレジスタ上へのローディングを過剰に増加させるかもしれない。したがって、実際にこのローディングを減少させるために、タップ付遅延線１８、１９の最小遅延時間を零クロックサイクルではなく、１クロックサイクルとして選択することができる。  
【００３０】
個々のアレイエレメントのアドレス指定は、行、垂直バス列及びサブグループ列としてのこのバス構成上を通信する信号内でエンコードされる。列バスドライバ１は、列が選択的に許可されるよう、又は放送タイプのアドレスが使用された場合は全ての列を許可するよう、垂直バス列情報をデコードすることができる。行ノード３は行情報及びサブグループ列情報をデコードする。したがって、それらの位置情報から割り出された情報に基づいて構成されなければならない。列ノード２は、ここで示されている本発明の実施例においては、この精度において節電化は複雑性のオーバヘッドと比較して価値がないので、行情報を積極的にはデコードしない。しかしながら、他の実施例において、列ノードは、バスプロトコルを監視することにより、列ドライバ及び行ノードが実施するのと同様にデコードする。  
【００３１】
アレイエレメントはバス操作が到達し、全てのアドレスの特徴が一致した時にアドレス指定される。もし、単一のアドレス指定がされた場合は、宛先アレイエレメントは、行アドレスとサブグループ列アドレスとが一致した場合に通信をデコードする。もし、１アレイエレメントより多くアレイエレメントと通信するために、放送タイプのアドレスが使用される場合は、行ノードは、アレイエレメントタイプといった他の識別パラメータに基づいて、識別しなければならない。放送アドレス指定は、個別の制御線又は“予備の”アドレスの内で、最も効率良いいずれかにより、フラグすることができる。    
【００３２】
同期開始、停止、シングルステッピング等のアレイエレメントの制御は、アレイエレメント内の制御レジスタ位置に所定のデータを記載することにより達成することができる。放送通信において、これらを一緒にアドレス指定するために、これらの制御位置は各アレイエレメントのメモリマップ上で同一の位置に配置しなければならない。アレイエレメントに対し１ステップで開始した後に停止するよう指示する、シングルステップ制御コマンド発行することは、通信プロトコルにおけるアドレス指定トークン信号オーバヘッドが開始及び停止コマンドが接近するのを防止する観点から、有益である。  
【００３３】
さらに、例えば、ノードの所定の位置においてバッファーを配置（信号を高速化又は遅延するため）することによるレジスタのセットアップ又は保留違反といった大規模なクロックスキューによる問題点を回避する上でも、有用である。例えば、図２又は３に示された列ノード場合、遅延バッファーは保留違反を防止するためにバス２０及び２５内に、タップポイント２６前後の垂直バス８内に、及びＯＲゲート１７の後に、挿入される。図４に示された行ノードの場合では、遅延バッファーは保留違反を防止するために、バス５９に挿入される。
【００３４】
したがって、ほぼ定常的な待ち時間を達成するための配置が具備される。最も遠くに配置するアレイエレメントとの通信は、距離に応じて適切にパイプライン化されている。これに対し、最も近くにあるアレイエレメントとの通信は、全ての端点に対する待ち時間が同一のクロックサイクルであるように、意図的に過剰にパイプライン化される。これにより、高帯域が達成され、再設計することなく拡張性を持たせることが可能である。
【００３５】
通信自体はトークン化したストリームの形態をとる。プロセッサアレイは、アレイエレメントのメモリマップとして、各アレイエレメントがプログラム、データ、制御位置の独自のメモリマップを持つ階層メモリマップとして見なされる。トークンは、アレイエレメントアドレス、サブアドレス、リード／ライトデータをフラッグするのに使用される。制御機能用に、並列式に配置された全アレイエレメントに対しアドレス指定をする特定の予備アドレスが割り当てられる。
【００３６】
トークン化通信プロトコルは、下記に詳細に説明するように、本プロセッサアレイとともに使用される。
【００３７】
出力バスは、４つのアクティブ−高フラグ及び１６ビットデータ領域をもつ２０ビットバスである。
【００３８】
【表１】
2006518069.tif 000003
【００３９】
リターンバスはアクティブ−高有効フラグ及び１６ビットデータ領域をもつ１７ビットバスである。
【表２】
2006518069.tif 000004
【００４０】
ＶＡＬＩＤフラグは、アレイエレメントの全アドレス空間が充分に埋まっていない場合、必要となる。さもなければ、欠陥アドレスとデータがたまたま零であったデータとを区別することが困難となる可能性がある。
【００４１】
ベーシックライト操作：発信バスに送信される一連のコマンドが下記のとおりである。
【００４２】
AEID，<array element address>
ADDR, <register / memory location>
WRITE, <data word>
【００４３】
ユーザは、複数の位置に、上記の一連のコマンドを必要に応じて繰り返すことにより、次々に書き出すことができる。
【００４４】
AEID，<array element address 1>
ADDR, <register / memory location in array element 1>
WRITE, <data word>
AEID，<array element address 2>
ADDR, <register / memory location in array element 2>
WRITE, <data word> 等。
【００４５】
ＡＥＩＤが同一である場合は、繰り返す必要はない。
【００４６】
AEID，<array element address 1>
ADDR, <register / memory location 1>
WRITE, <data word for location 1 in array element 1>
ADDR, <register / memory location 2>
WRITE, <data word for location 2 in array element 1> 等。
【００４７】
いずれの場合にも、データはアレイエレメントが存在し、レジスタ又はメモリ位置が存在し、書き込み可能であれば、アレイエレメントに書き出される（一部の位置は、読み出し専用かもしれない、又はアレイエレメントが停止状態であり作動していない時に書き込みが可能かもしれない）。
【００４８】
自動インクリメントライト操作：一アレイエレメント内の複数の連続的なレジスタ又はメモリ位置に書き込む際の時間を節約するために、例えばアレイエレメントプログラムをロードする場合、ＷＲＩＴＥコマンドを繰り返して使用する。行ノード内のインタフェースは、アレイエレメント内に使用したアドレスを自動的にインクリメントする。
【００４９】
例えば、
AEID，<array element address>
ADDR, <starting register or memory location - “A”>
WRITE, <data word for location A>
WRITE, <data word for location A+1>
WRITE, <data word for location A+2>
WRITE, <data word for location A+3>  等。
【００５０】
メモリマップ内に空間がある場合、又は他のアレイエレメントに移動する必要がある場合は、自動インクリメント用の新規の開始点を設定するために、ＡＤＤＲ又はＡＥＩＤフラグを使用する。
【００５１】
例えば、
AEID，<array element address>
ADDR, <starting register or memory location - “A”>
WRITE, <data word for location A>
WRITE, <data word for location A+1>
WRITE, <data word for location A+2>
ADDR, <new starting register or memory location - “B”>
WRITE, <data word for location B>
WRITE, <data word for location B+1>
AEID，<new array element address>
ADDR, <register or memory location>
WRITE, <data word>  等。
【００５２】
非インクリメントライト操作：レジスタ及びメモリ位置アドレスの自動インクリメントを無効にし、ＡＤＤＲフラッグ及びＷＲＩＴＥフラグを保持する場合。
【００５３】
AEID，<array element address>
ADDR, <register location - “A”>  
ADDR, WRITE, <data for location A>
ADDR, WRITE, <new data for location A>
【００５４】
プロセッサアレイが作動している際に、コマンド３と４の間、バス操作が長期間にわたって停止する可能性がある。実際には、これらのバスが連続して操作される必要はない。どの時点においても、任意の停止時間が生じる可能性がある。プロトコルは、いかなる中断をしない状態機械のような働きをする。
【００５５】
放送ライト操作：全アレイエレメントに対し即座に、又はアレイエレメントのサブセットに対しグループ毎に、書き込むことが可能である。この放送アドレス指定は過剰の制御信号により示されるか、又はＡＥＩＤアドレスに特定の数字を用いることにより達成することできる。
【００５６】
英国特許第２３７０３８０号明細書は、プロセッサアレイに適用しており、アレイ全体が個々のエレメントを対象に１５ビット範囲内でアドレス指定をすることが可能であり、１６ビットＡＥＩＤアドレスの最上位ビットは、放送タイプ通信が稼動中であることを示すために確保することができる。
【００５７】
一アレイエレメントアドレス指定ではなく、放送アドレス指定を選択するために、ＡＥＩＤデータ領域にＭＳＢを設定する。下位ビットは、アドレス指定したいアレイエレメントタイプを表現するために用いることができる。ここで例示するプロセッサアレイでは、８アレイエレメントタイプであり、宛先は行ノード構成内に配線されている。
【００５８】
【表３】
2006518069.tif 000005
【００５９】
例えば、全タイプ７アレイエレメントにアドレス指定する場合は、
AEID，<0x8040>
ADDR, <…>  等となる。
【００６０】
全タイプ１、タイプ２及びタイプ４アレイエレメントを一緒にアドレス指定する場合は、
AEID，<0x800b>
ADDR, <…>  
【００６１】
ベーシックリードリクエスト操作：基本的な読み込み操作は、基本的な書き出し操作に似ている。最後のフラッグが異なっているが、そのデータ領域は無視される。
【００６２】
AEID，<array element address>
ADDR，<register or memory location>
READ, <don’t care>  
【００６３】
位置は、アレイエレメントが存在し、レジスタ又はメモリ位置が存在し、読取り可能であれば、読み込まれる（一部の位置は、アレイエレメントが停止状態であり作動していない時に読取りが可能かもしれない）。アレイエレメントから読み込まれるデータワードは、リターンバスバスを経由して送信され、この例では、後に実施する検索処理のためにＦＩＦＯ内に格納される。
【００６４】
自動インクリメントリード操作：対応するライト操作に似ている。
【００６５】
AEID，<array element address>
ADDR，<starting register or memory location - “A”> 
READ, <don’t care>  データはＡ位置より取られる。
READ, <don’t care>  データはＡ＋１位置より取られる。等
【００６６】
非インクリメントリード操作：レジスタ及びメモリ位置アドレスの自動インクリメントを無効にし、ＡＤＤＲフラグ及びＲＥＡＤフラグを保持する場合。
【００６７】
AEID，<array element address>
ADDR，<register location - “A”> 
ADDR, READ, <don’t care>  データはＡ位置より取られる。
ADDR, READ, <don’t care>  データはＡ位置より取られる。
【００６８】
レジスタを診断情報のために取り出す場合、例えばビットエラー率の測定基準とする場合には、有用である。
【００６９】
放送リード操作：ここで例示しているプロセッサアレイのハードウェアは、放送入力の有益性は多少制限があるが、放送入力の可能性を除外しない。複数のアレイエレメントからのリードバックデータはビット単位のＯＲｅｄである。或る特定のものを見つけるために、個々に調査する前に、複数のアレイエレメント内の同一レジスタが零であるかを手早くチェックする方が効率的かもしれない。
【００７０】
コンポジット操作：上記に示すように、バスのトークン化により、多数の任意の長さのコマンドの並び替え、及び頻繁に用いられるコマンドのショートカットを可能とする。例えば、メモリの連続する位置に対する読み込み及び書き出しといった一部のメモリテストを実施するストリームを生成するのに有効であるかもしれない。
【００７１】
AEID，<array element address>
ADDR，<starting memory location - “A”> 
ADDR, READ, <don’t care>  （データはＡ位置より取られ、アドレスはインクリメントされない）。
WRITE, <data word> （データはＡ位置に書き出され、アドレスはインクリメントされる）。
ADDR, READ, <don’t care>  （データはＡ＋１位置より取られ、アドレスはインクリメントされない）。
WRITE, <another data word> （他のデータはＡ＋１位置に書き出され、アドレスはインクリメントされる）。等
【００７２】
ここでは、アレイエレメントの効率的な同期化処理を可能とするプロセッサアレイ及びそこに用いられる通信プロトコルについて記載している。
【図面の簡単な説明】
【００７３】
【図１】本発明によるプロセッサアレイのブロック概略図である。
【図２】図１のアレイ内の１次ノードの第一態様のブロック概略図である。
【図３】図１のアレイ内の１次ノードの第二態様のブロック概略図である。
【図４】図１のアレイ内の２次ノードのブロック概略図である。
【図５】図１のアレイの一部分の拡大ブロック概略図である。
【図６】図１のアレイの第二部分の拡大ブロック概略図である。
【図７】図１のアレイが使用されている状態の部分を示した図である。
【図８】図１のアレイが使用されている状態の部分を示した図である。
【図１】
2006518069.tif 000006
【図２】
2006518069.tif 000007
【図３】
2006518069.tif 000008
【図４】
2006518069.tif 000009
【図５】
2006518069.tif 000010
【図６】
2006518069.tif 000011
【図７】
2006518069.tif 000012
【図８】
2006518069.tif 000013
【国際調査報告】
2006518069.tif 000014
2006518069.tif 000015
2006518069.tif 000016