JP4443966B2 - クロスバースイッチ及びその動作制御方法、動作制御用プログラム - Google Patents
クロスバースイッチ及びその動作制御方法、動作制御用プログラム Download PDFInfo
- Publication number
- JP4443966B2 JP4443966B2 JP2004086613A JP2004086613A JP4443966B2 JP 4443966 B2 JP4443966 B2 JP 4443966B2 JP 2004086613 A JP2004086613 A JP 2004086613A JP 2004086613 A JP2004086613 A JP 2004086613A JP 4443966 B2 JP4443966 B2 JP 4443966B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- line
- data
- input
- address information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 38
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Description
クロスバースイッチは、通常、データ経路が交わる複数の交点(「クロスポイント」と称する)の各々にスイッチ機構が配置された2次元格子状のパラレルバス配線により構成される。
動作時には、スイッチ機構で、複数のクロスポイントの接続/非接続を制御することにより、入力ノードライン(複数のクロスポイントが存在する入力用ノードのバス配線、以下同じ)と出力ノードライン(複数のクロスポイントが存在する出力用ノードのバス配線、以下同じ)のクロスポイントの組合せにより形成される複数のデータ経路を選択的に切り換えることが可能になっている。
クロスバースイッチは、データ同士の衝突を防ぐノンブロッキング性に優れ、また、その構造や制御が比較的単純である等の利点を有することから、多くのデータ処理装置において利用されている。
また、パラレルバスの配線に際しては、出線の競合等の問題を避けるために、各バスにアービタ(調停器)や入力バッファ等の付加的な回路要素を設けなければならないために、小型化することが難しい。
例えば、256〜1024のノードをスイッチさせる構成のクロスバースイッチにおいては、クロスポイント数は64キロポイント〜1メガポイント、パラレルバスのバス幅が32ビット幅であるとすると、スイッチ数は最大で32メガ個にも及び、このような大規模のものを小型に構成して実装することは、現状のプロセスルールでは非常に困難である。
また、従来のクロスバースイッチの構成では、スイッチ数の増大に伴ってデータ経路の交換処理を行う際のスイッチ制御が複雑となるばかりでなく、スイッチ制御のための配線数が飛躍的に増加してしまう。
「所定の規則」とは、例えば、ノード通過の度にアドレス情報が表す値を一定範囲ずつ特定値に近づけていき、特定値になった時点で当該ノードライン上では意味をなさない値に変化させること等が挙げられる。
このように構成されるクロスバースイッチによれば、アドレス情報を入力するだけで、該当するノードコントローラが、自律的にデータ出力ラインへのデータ出力を行う。
この場合、前記出力インタフェースは、この数値データを所定値分だけ同一変化方向に増加又は減少させることにより前記新たなアドレス情報を生成する。
数値データとすることにより、アドレス情報が特定値を表しているかどうかの判別が容易になる。
また、前記アドレス情報を、開始ビットと終了ビットとを含むシリアルデータとすることもできる。
シリアルデータとすることによりデータラインの節約が図れ、開始ビットと終了ビットとを含むことにより、数値データの特定が容易になる利点がある。
この場合、各ノードライン上のノードコントローラは、他のノードライン上のノードコントローラと非同期に動作するようにしてもよく、少なくとも並行動作する他のノードライン上のノードコントローラと同一のクロックタイミングで動作するようにしてもよい。
前者の場合はスイッチ制御が簡略化される利点があり、後者はノード間のデータ伝搬の遅延差がなくなる利点がある。
このようにすれば、アドレス情報を入力するだけで、データメモリから所望のデータが出力されるようになる。
このような構成のクロスバースイッチでは、切替可能なデータ経路をより多くすることができる。
このように各ノードコントローラを行列マトリクス状に配列することで、クロスバースイッチの構造を定型化することができ、多段接続が容易になる。
このようにすれば、各列のノードラインを非同期に動作させた場合であっても、それぞれの出力端から同時にデータが出力させることが可能になる。
あるいは、例えば、前記第1パスの一部又は全部が、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であってそのノードコントローラからは複数列離れた位置に存在するノードコントローラの入力端との間に設定される。
この場合、列方向の最端部に位置するノードコントローラについての前記第1パスは、当該ノードコントローラの出力端と、次段の行の隣合う位置に存在するノードコントローラの入力端との間に設定される。
このアドレス情報生成手段により、任意のノードラインを指定してデータ出力を行わせることが可能になる。
その際、前記複数のノードラインの入力端に、当該入力端に入力されるデータを保有する第1デバイスを接続するためのインタフェース部品を設け、前記複数のノードラインの出力端に、各々のノードラインと1対1に対応する演算パイプラインを有する第2デバイスを接続するためのインタフェース部品を設けることで、これらのデバイスとの接続が容易になる。
また、前記複数のノードラインの入力端及び/又は出力端に、同一構成の他のクロスバースイッチの複数のノードラインを接続するためのインタフェース部品を設けることで、事後的な規模の拡張が容易になる。
この方法は、それぞれカスケード接続された複数段のノードを含み、入力されたデータが流れる複数のノードラインを有し、ノードの各々にノードコントローラが配備されたクロスバースイッチの動作制御方法であって、前記クロスバースイッチを制御する装置が、データを出力させるノードラインの識別情報と、作動させるノードコントローラの相対位置を表す情報とによりアドレス情報を生成し、このアドレス情報を目的のノードラインの初段ノードに入力する段階と、前記アドレス情報が入力されたノードラインの各ノードに存在するノードコントローラが、それぞれ入力されたアドレス情報が特定値を表しているかどうかを判別し、特定値を表すと判別したときは当該ノードライン上のデータを出力するとともに、前記入力されたアドレス情報を所定値分だけ変化させた新たなアドレス情報を生成し、この新たなアドレス情報を後段ノードへ出力する段階とを有するクロスバースイッチの動作制御方法である。
この方法によれば、アドレス情報を入力するだけで、該当するノードコントローラが、自律的にデータ出力を行うので、クロスバースイッチの制御をノードライン毎に簡易に行うことができる。
このプログラムは、それぞれカスケード接続された複数段のノードを含み、入力されたデータが流れる複数のノードラインを有し、ノードの各々にノードコントローラが配備されたクロスバースイッチを搭載して成るコンピュータが、各ノードコントローラを、以下のように動作させるためのクロスバースイッチの動作制御用プログラムである。
(1)目的のノードコントローラが存在する相対位置を直接又は間接に特定するためのアドレス情報を入力し、
(2)入力されたアドレス情報が特定値を表しているかどうかを判別し、特定値を表すと判別したときは、当該ノードライン上のデータを出力するとともに、
(3)前記入力されたアドレス情報を所定値分だけ変化させた新たなアドレス情報を生成し、この新たなアドレス情報を後段ノードへ出力する。
本発明のクロスバースイッチは、例えば大量の描画用データを処理する描画装置におけるメモリとプロセッサとの間のデータ転送制御に適用することができる。
以下、この場合の実施の形態を説明する。
まず、本発明が適用される描画装置について説明する。
図1は、この描画装置の要部構成図である。
描画装置は、描画処理に必要となるデータを確保するために、半導体デバイスの一例となるバッファ(メモリバッファ)1と、シリアル演算パイプラインを有するピクセルパイプラインプロセッサ2と、バッファ1とピクセルパイプラインプロセッサ2との間にインタフェース部品を介して接続されたクロスバースイッチ3とを有している。
バッファ1は、クロスバースイッチに入力される上記のデータが記憶されているデータメモリである。この実施形態では、一例として、マッピングにより、ポリゴン上の全体的な色及び模様を生成するためのテクステャおよびCLUT(Color Look Up Table、カラールックアップテーブル)等のデータを記憶する。
CLUTは、R(赤),G(緑),B(青)の3原色テーブルと、α値のテーブルとを含む。R,G,Bの3原色テーブルは、テクステャの各ピクセルの色を決定するために使用され、α値は、テクスチャをマッピングする際の画像のブレンド(αブレンディング)の割合をピクセル毎に決定するための係数値、つまり半透明度を表す係数値である。CLUTからR,G,B3原色の値を取り出すためのインデックス(CLUTのテーブル番号を指定するための値)は、テクステャのXY座標で表されるピクセル毎に設定される。
ピクセルパイプラインプロセッサ2は、また、画像の輝度のエッジを抽出する処理、テクステャのインデックスに応じてCLUTからR,G,B3原色データを取り出して各ピクセルの色を設定する処理、Gプレーンの各ピクセルのバイト値をインデックスとしてCLUTから取り出したα値(階調化されたα値)を用いたαブレンド処理等をも行う。さらに、シザリング、ディザリング、カラークランプ等の処理を行う。
シザリングは、画面からはみ出したデータを取り除く処理であり、ディザリングは、少ない色数で多くの色を表現するための色の配置を入り組ませる処理であり、カラークランプは、色の計算時にその値が255を越えたり0より小さくなったりしないように制限する処理である。
次に、図2〜図5を参照して、クロスバースイッチ3の構成及びその動作を説明する。
クロスバースイッチ3は、描画装置を実現するためのコンピュータに搭載可能なパッケージに収容されるもので、図2に示すように、格子状に配列されたシリアルバス配線4を含んで構成される。このクロスバースイッチ3は、描画装置における描画処理の際に、その描画装置が有するコントローラ(図示省略)によって、その動作が制御される。このコントローラは、プロセッサが所定のプログラムを実行することにより、描画処理及びクロスバースイッチ3の動作制御のための機能を有することになるものである。
シリアルバス配線4が交わるノードであるクロスポイントには、それぞれ、ノードの入力側のシリアルバス配線(以下、この実施形態において「入力ノードライン」と称する)とノードの出力側のシリアルバス配線(以下、この実施形態において「出力ノードライン」と称する)の接続/非接続を切り換えるためのノードコントローラ、例えばスイッチ回路5が設けられている。
入力ノードラインの各々は、インタフェース部品を介してバッファ1の出力アドレスと1対1に対応付けられて接続されており、出力ノードラインは、インタフェース部品を介してピクセルパイプラインプロセッサ2に接続されている。
この個々のスイッチ回路5の相対位置を表す情報を、この明細書では、便宜上、そのスイッチ回路5の「アドレス」と呼ぶ。また、入力ノードラインと出力ノードラインとを接続させるための1つスイッチ回路5のアドレスを直接又は間接に特定するために指定するアドレス情報を「指定アドレス」と呼ぶ。
この実施形態で用いるアドレスは、出力ノードライン上のノード数、すなわちクロスポイント数分の数値を表すビット(数値データ)であって、出力ノードラインのアドレス入力端からデータ出力端の方向に、クロスポイントを経るたびに、例えば1ビットずつ減少し、特定値、例えばゼロ値になった時点で最大値、例えばクロスポイントの数が8つであった場合は、3,2,1,0,7,6,5,4となる循環性のものとする。
なお、数値を表すビットに代えて、A,B,C,・・・Z,A,・・・のような循環性の文字列データをアドレスとして用いることもできる。
この文字列データは、クロスポイントを経るたびに、1文字ずつ変化し、特定値(文字が表す値)になった時点で初期値に戻るものである。
図5に示すように、256ビットのデータを出力ノードラインの出力端に到達させるために256本の入力ノードラインが設けられる場合、アドレスは、”255”〜”0”の256種類の循環性の数値データとなる。すなわち、1ビットずつ減少していき、”0”の次段のアドレスは、”255”、さらにその次段のアドレスは、”254”・・・となる。
このアドレス選択回路6は、指定アドレスを入力するものである。
各ノードラインには、コントローラのクロック信号源(図示省略)から出力された共通のクロック信号を伝送するためのクロック線7aが並列に配備されている。
このクロック線7a上のクロック信号は、各ノードラインと同様、リピータ8を通過するように構成されている。従って、各スイッチ回路5が、このクロック線7aのクロック信号を参照して、他のスイッチ回路と同じタイミングで動作を開始することにより、ノード(スイッチ回路)間を伝搬するデータの遅延差を低減させることができる。
また、ノード間での伝搬遅延(スキュー)を考慮する必要が無くなり、リピータ8等の挿入制限を緩和することができる。
このクロック線7bは、好ましくはクロック線7aと共通のクロック信号を伝送するようにするが、異なるクロック信号を伝送するようにしてもよい。
なお、上記の指定アドレスの受付、データ経路の切替及び新たな指定アドレスの生成、及び、新たな指定アドレスの出力は、論理回路とソフトウエアとの協働によって行うこともできるが、より単純には、図3のような論理回路のみで行うことができる。
入力されたアドレスビットが”0”であることを検知するだけで、スイッチ回路5は、自己が指定されたことを認識できるので、目的のスイッチ回路5の指定の形態が非常に簡略化される利点がある。
このような構成により、ノード単位でのデータの同期を確立することが容易になり、また、ノード間での伝搬遅延(スキュー)を考慮する必要が無くなり、リピータ8等の挿入制限を緩和することができる。
次に、バッファ1からピクセルパイプラインプロセッサ2へのデータ転送を行う場合のクロスバースイッチ3の動作制御方法について説明する。
この方法は、基本的には、上述した描画装置のコントローラが主導的になって行うが、例えばコントローラの制御によってピクセルパイプラインプロセッサ2が行うようにしてもよい。
この動作制御方法の概要は、以下のとおりである。
すなわち、コントローラが、いずれかの出力ノードラインの入力端から指定アドレスをシリアルデータとして入力する。
この指定アドレスは、目的のスイッチ回路5が出力ノードラインの入力端から何個目のスイッチ回路かを表す数値データである。指定アドレスの入力により、その出力ノードラインの各スイッチ回路5に、自律的に、入力された指定アドレスが”0”かどうかを判別させ、ゼロ値を表すときは入力ノードライン上のデータを受け取って、その出力ノードラインの後段ノードへ転送させる。また、入力した指定アドレスを”1”だけ減数させて新たな指定アドレスを生成し、この新たな指定アドレスを後段ノードへシリアルデータとして出力させる。
<ステップS1>
コントローラは、目的のスイッチ回路5を有する出力ノードラインのアドレス選択回路6に指定アドレスを入力し、そのアドレス選択回路6がその指定アドレスを初期化して1ビットずつ当該出力ノードラインに入力する。
デクリメント回路11は、前段ノードより受け付けたアドレスビットの最下位ビット(最初に受け付けたアドレスビット)をデクリメントして次段ノードに出力すべき新たな指定アドレス(アドレスビット)の値を決定する。
デクリメントの際に、そのアドレスビットが”0”の場合には位下げ(繰り下げ)が生じるので、次のアドレスビットもデクリメントする。
なお、この処理の際、論理和回路12は、前段ノードからのアドレスビットを所定のメモリ領域に保持する。
論理積回路13は、アドレスビットの出力が終了したか否かを判別する。
終了した場合には、ステップS4の処理へと移り、終了していない場合には、ステップS1の処理に戻る。
論理積回路13は、アドレスビットの和が”0”であるか否かを判別する。
アドレスビットの和が”0”であった場合は、ステップS5の処理へ移る。
<ステップS5>
スイッチ回路5の論理積回路13は、セレクト信号をアサートする。
そして、接続切換回路14がセレクト信号にしたがって入力ノードラインと出力ノードラインを接続する。
図5は、この様子を示すものである。
これにより、入力ノードラインから出力ノードラインへのデータ転送が行われる。
データ転送が終了した時点で一連の制御処理を終える。
このような動作制御方法を採用することにより、クロスポイント切替(データ転送)のための制御線とデータ投入線とを共有化することができ、バス配線数を大幅に減らすことが可能となる。
さらに、バスをシリアル化したことによるパフォーマンスの低下を抑制することができる。
各スイッチ回路5が、少なくとも並行動作する他のノードライン上のスイッチ回路5の動作タイミングを定めるクロック信号と同一のクロック信号にしたがって動作することができるので、データのノード間の伝搬遅延差を小さくすることができる。
すなわち、動作制御用プログラムを記録した記録媒体をコンピュータに装着して、そのコンピュータの記憶部に動作制御用プログラムをロードし、コンピュータのプロセッサが、この動作制御用プログラムを読み込んで実行することで、図4に示した手順で動作制御を行うようにする。記録媒体は、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テ一プ等のプログラムを記録することができるようなコンピュータ読み取り可能な記録媒体等が含まれる。
次に、多段パイプラインにも適応可能なクロスバースイッチの実施形態を説明する。
この実施形態のクロスバースイッチは、それぞれ入力端から出力端の方向にシリアルデータを伝送させるための複数のノードラインを有し、これらのノードラインの各々に、複数のノードコントローラが所定のノード間隔で1つずつ挿入接続されているものである。
なお、この実施形態にいうノードラインは、第1実施形態との間の説明の整合を図るために便宜上設けた観念的なものである。
また、この実施形態においても、第1実施形態の場合と同様、ノードコントローラを「スイッチ回路」と称する。
この実施形態のクロスバースイッチは、アドレス情報生成手段の一例となるアドレス初期化部20と、データ経路の切替を行う経路切替部21とを含んで構成される。
ここでは、経路切替部21におけるスイッチ回路(図6において矩形で示されているもの)が、8×8の行列マトリクス状に配されているクロスバースイッチの例を挙げる。
なお、ここでいう斜めとは、スイッチ回路が行列マトリクス状に配されたクロスバースイッチにおいて、第1スイッチ回路が次段の第2スイッチ回路に第2パスによって接続される場合、第1パスは、第1スイッチ回路を、第2スイッチ回路と同じ段に設けられてかつ第2スイッチ回路とは異なる第2スイッチ回路に接続することを意味する。
スイッチ回路が行列マトリクス状に配置されていることから、第1パスは第2パスに対して斜めとなる。また、図6等に示されるように、第1パスは、必ずしも第2パスと斜め、即ち平行でも垂直でもない角度になるわけではなく、第2パスと垂直な配線と第2パスに平行な配線とによって第1パスを構成してもよい。スイッチ回路自体は、第1実施形態のクロスバースイッチ3のものを使用することもできるが、後述するように異なる構成にすることもできる。
この第1パスは、前段のスイッチ回路の出力端と、そのスイッチ回路の次段の行で異なる列に存在するスイッチ回路の入力端との間に設定される。
図6の例では、次段の行で1つおきに離れた列に存在し、列の最端部のノードについては次段の行で隣合う位置に存在するスイッチ回路の入力端との間に設定されている。
このように設定することで、データの伝送遅延差を低減させることができる。
一方、第2パスは、前段ノードから指定アドレスが流されるパスであり、ノードラインに沿って配線される。
この実施形態では、各ノードラインは、2値の識別データであるライン番号によって他のノードラインと識別され、指定アドレスは、2値のアドレスビットで表現されるものとする。
説明を簡略化するため、以後の説明では、ライン番号及び指定アドレスがそれぞれ3ビットで表されるものとするが、この数値は例示であって、この例に限定させる趣旨ではない。
指定アドレスは、第1実施形態の場合と同様、例えば目的のスイッチ回路が上述の初段のスイッチ回路から何番目のスイッチ回路かを表す数値データであり、ノードを通過する度に“1”だけデクリメント(減数)されて新たな指定アドレスとなる。
従って、目的のスイッチ回路に対しては、前段のスイッチ回路から指定アドレスとして“0”が入力される。この指定アドレスにより、各スイッチ回路に、自律的に、入力された指定アドレスが“0”かどうかを判別させ、“0”を表すときはそのスイッチ回路(指定アドレスによって識別されるスイッチ回路)に接続されている第1パス上のデータが後段側のノードラインから出力されるようにする。
図6の例では、ライン6の出力端からライン7に入力されるデータを出力する場合の指定アドレスが“001”に設定されることを示しており、これが第2パスを通じて最初のスイッチ回路へ送られる。
すなわち、スイッチ回路50は、入力インタフェースの一例となる第1パス入力端INaから入力されたシリアルデータaと、同じく入力インタフェースの一例となる第2パス入力端INbから入力されたシリアルデータbと、このシリアルデータbをデクリメント回路502でデクリメントしたデータcとをセレクタ501で選択的に、出力インタフェースの一例となる第1パス出力端OUTa及び第2パス出力端OUTbとから出力する。
デクリメント回路502には、キャリー回路503が設けられており、キャリービットの論理レベル(“0”/“1”)が、デクリメント回路502の入力側とセレクタ501に供給されるように構成されている。
キャリー回路503は、後述する制御スタートビットによりリセットされる。
フェーズデータは、クロスポイント制御フェーズとデータ転送フェーズとを形成するためのもので“0”と“1”のいずれかが入力される。
フェーズデータが“0”のときが、アドレス投入となるクロスポイント制御フェーズ、フェーズデータが“1”のときが、データ投入となるデータ転送フェーズである。
フェーズデータは、各行のすべてのスイッチ回路のセレクタ501及びキャリー回路503に同じデータが入力される。フェーズデータ“0”からフェーズデータ“1”への移行は、すべてのアドレスビットが流れたことを契機として行われる。
一方、フェーズデータ“1”からフェーズデータ“0”への移行は、コントローラの指示に基づいて行われる。例えば、あるノードラインの入力端と他のノードラインの出力端とを第1パスを通じて接続した状態で他の出力端と入力端との接続関係を変える必要がある場合も、このフェーズデータをコントローラから該当するスイッチ回路のセレクタ501及びキャリー回路503に入力することで実現が可能となる。
このキャリービットは、後述するように、フェーズ切替の際の重要なデータとなるものである。すなわち、フェーズデータが“1”でキャリービットも“1”の場合は、クロスポイント制御フェーズにおいて投入された指定アドレスが“0”であった、すなわち、このスイッチ回路が指定されていたことを表す。
セレクタ501は、所定規則にしたがって、シリアルデータの選別を行う。
例えば、フェーズデータが“0”のときはデクリメント回路502から出力されたデータcを第2パス出力端OUTbから出力する。
フェーズデータが“1”でキャリービットが“0”のときは第1パス入力端INaと第1パス出力端OUTa、第2パス入力端INbと第2パス出力端OUTbをそれぞれ繋ぎ、フェーズデータが“1”でキャリービットが“1”のときは第1パス入力端INaと第1パス出力端OUTa、第1パス入力端INaと第2パス出力端OUTbをそれぞれ繋ぐ。
つまり、フェーズデータが“1”の場合、スイッチ回路の第1パスの出力端OUTaからは、キャリービットの値に拘わらず、常に、当該スイッチ回路の前段のスイッチ回路(又はアドレス初期化部)から当該スイッチ回路の第1パスの入力端INaに入力されたビット値がそのまま出力される。
一方、第2パスの出力端OUTbからは、キャリービットが“0”のときには、当該スイッチ回路がその第2パスの入力端INbで受信したビット値が、キャリービットが“1”であるときは、当該スイッチ回路がその第1パスの入力端INaで受信したビット値がそのまま出力される。
また、以後の説明では、第1実施形態に合わせて、図7のように構成されるノードコントローラをスイッチ回路50と表現する。
次に、この実施形態におけるクロスバースイッチの動作制御方法を図6、図8〜図25を参照して説明する。
この方法もまた、描画装置のコントローラが主導的になって行われるが、上述したように、描画装置とは独立に存在するコンピュータとプログラムとの協働によって行うこともできる。
ここでは、前提として、図6の最上段に示されるように、それぞれ8種類のデータ(データ0〜データ7)があり、これらのデータを、図6最下段に示されるライン番号(ライン0〜ライン7)によって識別されるいずれかのノードラインから出力させるものとする。また、この実施形態では、各ライン0〜7にはデータ0〜7がそれぞれ入力され、ライン0の経路切換部21の最終段のスイッチ回路からはデータ4を出力させる。
同様に、ライン1からはデータ6,ライン2からはデータ1、ライン3からはデータ3、ライン4からはデータ4,ライン5からはデータ5、ライン6からはデータ7、ライン7からはデータ4が、それぞれ最終段のスイッチ回路から出力される。
以下の説明では、ライン番号をn(0≦n≦7)として、各データ0〜データ7に対して、当該データがアドレス初期化部を通じて入力されたラインを「入力元ライン」と記載する。アドレス初期化部(AINI−1〜AINI−7)が属するライン番号と当該アドレス初期化部に入力されるデータの番号とは一致しているので、ライン番号nがそのままデータ番号となる。
例えば、データ5の入力元ラインは、データ番号の「5」をそのまま用いてライン5として表される。
また、データnが出力されるラインをデータnの「出力先ライン」と記載する。
上述のように、ライン4に入力されたデータ4は、ライン4,ライン7,ライン0のそれぞれから出力される。
従って、データ4の出力先ラインはライン4,ライン7,ライン0となる。
一方、データ2はどこからも出力されないので、出力先ラインは存在しないことになる。更に、ラインnにおける経路切換部21の最終段のスイッチ回路から出力されるデータをラインn出力データとする。
例えば、後に説明する図22に示されるように、ライン0におけるライン出力データ、即ちライン0出力データはデータ4であり、ライン1出力データはデータ6である。
各ノードラインのスイッチ回路50には、それぞれ7、6、5、4、3、2、1、0の循環性のアドレス(数値データ)が降順に割り当てられているものとする。
具体的には、ライン0において、ライン0出力データはデータ4であり、このデータ4の入力元ラインはライン4であるので、ライン0のアドレスビットは4となる。
また、ライン1においては、ライン1出力データはデータ6であり、を出力させるので、ライン1のアドレスビットは6となる。
同様に、ライン2、3,4,5,6,7におけるアドレスビットは、それぞれ1、3、4、5、7、4となる。
本実施形態では、ラインnのアドレス初期化部にデータnを入力する前に、上述のように定められたラインnアドレスビットがシリアルに入力される。
図6の例では、最右列のライン0には、ライン0出力データであるデータ4の入力元ラインであるライン4を識別するためのアドレスビット“100”が入力され、その後にデータ0が入力される。なお、図6では、このアドレスビットを「アドレス4」と記載している。“ライン1には、ライン1出力データであるデータ6の入力元ラインを識別するためのアドレスビット“110”がシリアルに入力される。
同様に、ライン7にはライン4を識別するためのアドレスビット“100”、ライン2にはライン1を識別するためのアドレスビット“001”、ライン6にはライン7をを識別するためのアドレスビット“111”、ライン3にはライン3を識別するためのアドレスビット“011”、ライン5にはライン5を識別するためのアドレスビット“101”、ライン4にはライン4を識別するためのアドレスビット“100”がそれぞれシリアルに入力されることが図6に示される。アドレス初期化部20(AINI-0〜AINI-7)では、当該アドレス初期化部が属するラインのライン番号と、入力されたアドレスビットから、指定アドレスを算出する。図6では、このアドレスビットが「アドレス1」〜「アドレス6」として表されている。また、アドレス初期化部AINI-0〜AINI-7の数値部分は、アドレス初期化部が設けられたノードラインのライン番号を表している。
この制御開始ビットが各スイッチ回路50に入力されることにより、キャリー回路503を初期化し、セレクタ501がアドレスビットを一つ通過させる。
各アドレスビットのうち2番目のビットCは制御ビットであり、中データに同期して入力される。
各アドレスビットのうち3番目のビットは終了ビットであり、MSB(Most Significant Bit)に同期して入力される。この終了ビットが入力されたときにキャリービットが“1”になるスイッチ回路50が、データ転送を行う目的のスイッチ回路となる。
例えば、図6において、ライン4の1段目のスイッチ回路は、第1パスを通じてライン3の2段目のスイッチ回路に接続されている。また、ライン0においては、(n−1)の値は−1となるが、0≦n≦7であるので、この値を7とする。従って、ライン0は第1パスを通じてライン7に接続される。このように、nの値を0〜7の範囲で、…2,1,0,7,6…と循環させるようにする。mに関しては、1≦m≦8であるが、8+1=9段目は、最終段におけるスイッチ回路からデータが出力されることを意味するので、nとは異なり、mは循環性の値とはならない。
また、後述するように、第1パスと第2パスの接続形式が、ライン0の第2パスの入力側からみて、ライン0の第1パス、ライン1の第1パス、・・・ライン7の第1パスという順番で繋がるようになっているので、例えば、ラインn出力データが入力されるノードラインのライン番号と、ラインn出力データが出力されるノードラインのライン番号との演算によって指定アドレスを生成することができる。
但し、この例の場合、指定アドレスは0〜7の循環性をもつ数値データなので、アドレス初期化部20では、・・・1→0→7→6・・・のような循環性を考慮した演算を行う。
従って、図6、図8〜22において、経路切換部21の各スイッチ回路においては、アドレスビット(本実施形態では3ビット)が流れている間はフェーズデータは“0”である。
また、データは、アドレスビットがすべて流れた後に流れるので、データが流れているときは、フェーズデータは“1“となっている。
ここで、上述のように、フェーズデータが“1”の場合、キャリービットの値に拘わらず、第1パスの出力端OUTaからは、常に第1パスの入力端INaからの入力が出力される。
従って、ラインnのZ段目のスイッチ回路に第1パスから(1段目のスイッチ回路に関してはアドレス初期化部から入力される)入力されたデータは、少なくとも第1パスの入力端INaから第1パスの出力端OUTaへと流れて次のラインであるライン(n−1)の次の段である(m+1)段目のスイッチ回路へと流れることが保証されている(ただし、0≦n≦7、1≦m≦8)。
このライン4の初段のスイッチ回路では、第1パスを通じてライン3の2段目のスイッチ回路へとデータ4を流す。ライン3の2段目のスイッチ回路では、第1パスを通じてライン2の3段目のスイッチ回路へとデータ4を流す。同様にして、データ4は、ライン1の4段目のスイッチ回路、ライン0の5段目のスイッチ回路、ライン7の6段目のスイッチ回路、ライン6の7段目のスイッチ回路、ライン7の8段目のスイッチ回路へと流される。このように、データ4は、第1パスを通じて各ラインごとに1つのスイッチ回路を流れることが保証されている。
同様に、データ0〜3,5〜7のいずれも各ライン毎に1つのスイッチ回路を流れる。
クロスバースイッチの第1パスを通じたデータの流れは以上のとおりである。
次に、クロスバースイッチの第2パスについて説明する。クロスバースイッチの第2パスは、常に同一ラインのスイッチ回路を接続する。図6のライン4を例にとると、図中に示した矢線方向に伸びてAINI−4から図中下部の「ライン4」との記載に向かう太線が第2パスとなる。従って、第2パスを通じてデータが流れる場合には、同一ラインの初段、2段目、3段目、…8段目の各スイッチ回路をデータが流れることになる。
これを繰り返し、8段目のスイッチ回路では、データxを第2パスを通じて受けとり、受けとったデータxを出力する。
これにより、データxが実際にラインn出力データとして8段目のスイッチ回路から出力される。
なお、図7に示されるように、スイッチ回路には第1パス出力端OUTaと第2パス出力端OUTbとの二つの出力が設けられており、本実施形態では、8段目のスイッチ回路からは第2パス出力端OUTbのみからデータxを出力するものとした。
しかし、8段目のスイッチ回路にの出力端OUTa、OUTbのうちどちらからデータxを出力するかは任意に定めることができ、例えば第1パス出力端OUTaのみ、あるいは両方の出力端からデータxを出力してもよい。
各ラインにおいては、1つのラインあたり8つのスイッチ回路が配置されている。各ラインの経路切換部21の1段目のスイッチ回路は、それぞれの第1パスを通じてそれぞれ異なるデータを受ける。
以下、図6のライン4の各段について、データ0〜7のうちどのデータが第1パスを通じて入力されるかを説明する。
ライン4の初段のスイッチ回路にはAINI−4を通じてデータ4が入力される。
この実施形態では、初段の回路の第1パス入力端Inaは、データ4を受けとる。
2段目のスイッチ回路は、第1パスを通じてライン5の初段に接続されている。
従って、ライン5のアドレス初期化部からライン5の初段のスイッチ回路に入力されたデータ5が、この第1パスを通じてライン5の初段からライン4の2段目のスイッチ回路に入力される。
つまり、ライン4の2段目の第1パス入力端INaは、データ5を受けとる。
同様に、ライン4の3段目のスイッチ回路の入力端INaは、データ6を受けとる。
同様に、ライン4の4段目、5段目、6段目、7段目、8段目の各スイッチ回路の第1パス入力端Inaは、それぞれデータ7,データ0,データ1,データ2,データ3を受けとる。
このように各ラインに注目すると、ラインnの各段のスイッチ回路の第1パス入力端Inaが受けとるデータは、初段即ち1段目ではデータn、2段目ではデータ(n+1)、3段目はデータ(n+2)、4段目はデータ(n+3)…m段目にはデータ{n+(m−1)}、…8段目はデータ(n+7)となる。ただし、上述のように0≦n≦7,1≦m≦8であるので、{(n+m−1)}の値は、…7,8,1,2,3,4,5,6,7,8,1,2,…のように、1〜8の間で循環する。
逆に、データxをラインnのラインn出力データとする場合には、x={n+(m−1)}の関係が成立することから、データxが入力される段数mは、m=x−n+1として表される。
例えばライン6(即ちn=6)のスイッチ回路において、データ7をライン6出力データとする(即ちx=7)のであれば、データ7が入力される段の番号m=(7−6+1)=2であるので、データ7は2段目に入力されることがわかる。ライン6出力データがデータ5(即ちx=5)であれば、(5−6+1)=0であるが、上述のように段数は1〜8で循環しているので、0段目=8段目となり、その結果、データ7は8段目に入力されることになる。実際に、図6においても、すべてのライン及びすべての段でこの関係が成立している。
原理的には、これらに該当しないスイッチ回路におけるキャリービットは“0”でも“1”でも構わない。本実施形態では、これらに該当しないスイッチ回路におけるキャリービットの値は“0”となる。
このような構成とすることで、ラインnの各スイッチ回路においては、データxが第1パスの入力端INaから入力された場合、当該スイッチ回路の第2パスの入力端INbが受けとったデータとは無関係に、第2パスの出力端OUTbからデータxが出力されて同じラインにおける次の段のスイッチ回路の第2パスの入力端INbに入力される。
この第2パスを通じてデータxを受けとったスイッチ回路では、上述のようにキャリービットの値は“0”であるので、データxを第2パスの出力端OUTbに出力し、同じラインの更に次の段のスイッチ回路の第2パスの入力端INbに入力する。
このように、以降の段のスイッチ回路では、第2パスから入力されたデータをそのまま同じラインの次段のスイッチ回路に出力する。
従って、ラインnの8段目のスイッチ回路からは、ラインn出力データとしてデータxが出力される。
また、ラインとデータとを一対一に対応させるだけでなく、複数のラインから同じデータを出力することもできる。
例えば図22に示されるように、ライン4とライン7とライン0とにおいては、いずれもライン出力データとしてデータ4が出力されている。
以下、上述のようにキャリービットを設定するための構成を説明する。
本実施形態においては、上記構成を実現するために、図7に示されるスイッチ回路を用い、かつ、上述のような構成となるように、指定アドレスの設定、フェーズデータの指定、キャリービットの値の変更、リセット信号の入力タイミングを定めている。
また、上述のように、ノード(スイッチ回路)を通過する度に、指定アドレスが“1”だけデクリメント(減数)されて新たな指定アドレスとして後段のスイッチ回路に出力される。
アドレス初期化部では、指定アドレスを初段のスイッチ回路の第2パスの入力端INbに、データを初段のスイッチ回路の第1パスの入力端INaにそれぞれ入力する。フェーズデータが“0”のときは、デクリメント回路502から出力されたデータcを第2パス出力端OUTbから出力する。上述のように、フェーズデータが“0”のときは、スイッチ回路においては、キャリービット伝搬を行う。
キャリービットが0の場合、第2パス入力端INbからの入力が0のときは、第2パス出力OUTbの出力は0、キャリーは0のまま維持される。
キャリービットが0で第2パス入力端INbからの入力が1のときは、第2パス出力OUTbの出力は1、キャリーは0のまま維持される。
キャリービットが1の場合、第2パス入力端INbからの入力が0のときは、第2パス出力OUTbの出力は1、キャリーは1のままとなる。
キャリービットが1で第2パス入力端INbからの入力が1のときは、第2パス出力OUTbの出力は0、キャリーは0となる。
即ち、各スイッチ回路では、1ビットずつシリアルに入力される指定アドレスの各ビットに対して、キャリーが1のときは減算を行った出力を行い、キャリーが0のときは減算を行わない。その結果、各スイッチ回路においては、1ビットずつシリアルに入力される指定アドレスを1だけ小さくするという動作が(1デクリメント)がシリアルに行われる。このような構成により、後段のスイッチ回路には、減算によりその値が1だけ小さくなった指定アドレスをシリアルに入力することが達成される。
一方、スイッチ回路のキャリービットが1のときには、第2パス入力端INbからの入力が0であったときのみキャリービットが1のまま維持され、第2パス入力端INbからの入力が1であると、キャリービットは0に変更される。
キャリービットの初期値は1であるので、スイッチ回路に1ビットずつ入力される指定アドレスの各ビット(本実施形態では3つのビット)のうち、1つでもそのビットの値が1であれば、キャリービットの値は0となり、その後キャリービットの値が1になることはない。
一方、スイッチ回路に入力される指定アドレスが「0」以外であれば、指定アドレスを構成するビットのうち少なくとも1つはその値が「0」となる。従って、入力された指定アドレスが0ではないスイッチ回路では、3ビットのアドレスが入力された後のキャリービットの値は、必ず「0」となっている。
このようにして、順次入力される指定アドレスのすべてのビットが“0”であったスイッチ回路においてのみ、キャリービットの値が“1”となることが達成される。
その他のスイッチ回路においては、指定アドレスの3ビットすべてが通過してデータの入力が行われても(即ちフェーズデータが“1”になっても)キャリービットの値は0のままとなる。
この構成により、「データ転送フェーズ(フェーズデータ=“1”)において、第1パスからデータxが入力されるスイッチ回路を指定し、指定したスイッチ回路のキャリービットの値を1とし、その他のスイッチ回路のキャリービットの値を0とする」ことが実現される。
ラインnのアドレス初期化部では、このような指定を行うために、ラインn出力データであるデータxが第1パス(1段目においてはアドレス初期化部)からどの段のスイッチ回路に対して入力されるかを演算する。
上述のように、ラインnのスイッチ回路においては、データxは、(x−n+1)段目に入力される。
また、上述のように、指定アドレスは図7のデクリメント回路502でデクリメントされた後に次段のスイッチ回路に入力されるので、(x−n+1)段目においては、指定アドレスが(x−n)回デクリメントされたうえで入力されることになる。
以上のことから、ラインnのアドレス初期化部では、指定アドレスを(x−n)として算出する。
指定アドレスは、ライン1の1段目、2段目、3段目、4段目、5段目の各経路切換部21の行のスイッチ回路でそれぞれ「1」ずつデクリメントされる。
従って、6段目の行のスイッチ回路では、指定アドレスは、5回デクリメントされて「0」となっており、これにより、ライン1の6段目の行のスイッチ回路が、「ライン1出力データであるデータ6が第1パスから入力されるスイッチ回路」として認識される。
なお、ライン7(n=7)では、ライン4に入力されるデータ4(x=4)がライン7出力データとなるので、(x−n)の値は4−7=−3となる。
しかし、アドレス初期化部7では、上述の循環性から、減算結果である「−3」に循環サイクルである8を加算した「5(“101”)」を出力する。このように、8を法としたモジュロ演算を行うことで、循環サイクルを考慮した演算結果が得られる。
なお、アドレス初期化部は、当該アドレス初期化部自体が設けられたライン番号を参照できるようにしておく。例えば、アドレス初期化部に設けられたメモリに上記ライン番号を記録してく。また、アドレス初期化部にも上述のフェーズデータが供給される。アドレス初期化部nにおいて、フェーズデータが0のときには上述の減算が行われる。フェーズデータが1のときには、入力されるデータnをそのままスルーして初段のスイッチ回路へとデータを流す。
次に、上記減算の原理を説明する。フェーズデータが0のときの演算は、1ビットずつシリアルに行われる。例えば、上述アドレス初期化部で、ライン7出力データのデータ番号である4(“100”)からライン7のライン番号である7(“111”)を減算する場合、以下のように処理がなされる。
まず、ラインn出力データのデータ番号(上述のアドレス初期化部7の例では“100”)の最初のビットがアドレス初期化部nに入力される(この入力をPとする)。
一方、ラインnに設けられたアドレス初期化部nでは、ラインnのライン番号n(上述の例では“111”)の最初のビットを読み出す(この読み出したビットをQとする)。アドレス初期化部nでは、キャリービットをRとして、P−Q−Rを演算し、その演算結果を初段のスイッチ回路に出力する。
ただし、この演算において、キャリービットのデフォルト値は0である。また、演算結果が負の場合には、キャリービットは、演算前の状態に拘わらず1に設定される。また、出力結果は、演算結果に「2」を足した結果を出力する。これにより、1ビットずつのシリアル入力による減算が行われる。
これらの3ビットのすべてがアドレス初期化部20を通過した時点の数値は、上述した減算結果を表すものとなる。
アドレス初期化部7には、x=4(“100”)の最下位ビット「0」が入力される。
アドレス初期化部7では、n=7(“111”)の最下位ビット「1」を上述のメモリから読み出して0から1を減算し、更にキャリービットのデフォルト値“0”を減算する。
減算結果は0−1−0=−1となるが、上述のようにこの値に2を足した値である“1”が指定アドレスの最下位ビットとして初段のスイッチ回路に供給される(図8のAINI−7における「0→1」に対応)。この際、図示されていないが、演算結果が負であるので、上述の原理からキャリービットは“1”となる。
図9において、x=“100”の2番目のビット“0”がアドレス初期化部7に入力され、n=“111”の2番目のビット“1”がメモリから読み出されて減算される。
この際、キャリービットが“1”であるので、このビットの減算結果は0−1−1=−2となる。上述の原理から演算結果の値に2を足した“0”が初段のスイッチ回路に供給される(図9のAINI−7における「0→0」に対応)。また、演算結果が負であるので、キャリービットは“1”となる。
図10において、x=“100”の最上位ビット“1”がAINI−7に入力され、n=“111”の最上位ビット“1”が減算され、更にキャリービットの値“1”が減算される。
この減算結果は、1−1−1=−1となるが、上述の原理から2を加えて“1”を出力する。これにより指定アドレスの3番目のビットは“1"となる(図10のAINI−7における「1→1」に対応)。
これらの処理を行うことで、指定アドレスとして、「101」、つまり5が得られる。このようにキャリービットを用いることで、ラインn出力データのデータ番号であるxからライン番号nを減算した結果を得ることができる。
このときの状態を示したのが図11である。
図11では、ライン4、ライン5、ライン3の先頭行のスイッチ回路50のキャリービットが”1”になっている。したがって、上述したように、これらのライン4,5,3では、初段の行のスイッチ回路50がデータ転送を行うスイッチ回路として指定されたことになるので、これらのスイッチ回路50では、第1パス上を流れるシリアルデータが第2パス上に転送され、それぞれデータが出力端に至るまで、同一ノードライン(第2パス)の後段のスイッチ回路50をそのままスルーしていく。
その後、図13及び図14のように1段ずつシリアルデータが伝送していき、図15の状態でライン0の5段目の行のスイッチ回路50がデータ転送を行うスイッチ回路として選定される。図16の状態では、さらに、ライン1、ライン7の6段目の行のスイッチ回路50がデータ転送を行うスイッチ回路として指定される。
さらに図17の状態を経て、図18の状態で、ライン2の最下段のスイッチ回路がデータ転送を行うスイッチ回路50として指定される。
これらのシリアルデータがどの経路をセレクトされて通過していき、最終的にどのような状態で出力端から出力されたかを示したのが、図22である。
また、例えば、ノード間の距離が同一又は略同一になるように配線することにより、これをインタフェース部品を介して多段接続してクロスバースイッチの規模を事後的に拡大することが容易になる。さらに、インストラクションアレイによって、データ転送とほぼ同じ時間でクロスポイント制御を行うことができるので、クロスポイント制御フェーズの割合が少ない処理の場合には、より高速なデータ転送処理を実現することができる。
例えば、図23のような、一般的なクロスバースイッチの利用形態のほか、図24のようなマルチキャスト方式、図25のようなブロードキャスト方式も、このクロスバースイッチによれば、容易に実現することができる。
これらの図において、符号22で示される領域の数値は、そのノードラインから出力させたいデータが入力されるノードラインのライン番号であり、経路切替部21における数値は、各ノードラインのスイッチ回路50のアドレスである。
各スイッチ回路50上に記述されている数値は、そこでデクリメントされたアドレスである。アドレス初期化部20における数値は、指定アドレスであり、前述のように、出力させたいノードラインのライン番号からデータが流れるノードラインのライン番号を減算することにより導かれる。
図26は、第1パスが、前段のスイッチ回路50の出力端と、そのスイッチ回路50の次段の行であって隣合う列に存在するスイッチ回路50の入力端との間に設定されている場合の例を示すものである。また、上述した第2実施形態のクロスバースイッチは、1行毎にパイプライン化する場合の例であるが、図26に示したクロスバースイッチでは、複数行をまとめてパイプライン化している。つまり、各ノードラインの動作フェーズを、複数行単位で、フェーズ0〜フェーズ4のように切り替えるようにしたものである。
例えば、第1及び第2実施形態では、アドレス及び指定アドレスが降順の数値データであり、指定アドレスがノードを経過する度にデクリメントされて”0”になったときにデータ転送を行う場合の例、すなわち、ノードのアドレスが表す特定値を間接的に特定する場合の例を説明したが、アドレス及び指定アドレスを昇順の数値データとし、ノードを通過した結果、アドレスが表す値が増加することにより予めそのノードに割り当てられた固有の値に達したことを特定したとき、つまりノードのアドレスが表す特定値を直接特定したときにそのノード上のスイッチ回路50が動作してデータ転送を行うようにすることもできる。
特定値が間接的に特定される場合のアドレスを相対アドレス、特定値が直接的に特定される場合のアドレスを絶対アドレスとすると、上述したクロスバースイッチの例、特に第2実施形態のクロスバースイッチの例では、アドレス初期化部20以降のアドレスは、どのラインからデータをとってくるかという値を自分のアドレスとの相対値入力しなければならないため、動作の整合性をとるため、アドレス初期化部20で相対アドレスから絶対アドレスに変換する必要がある。このとき、アドレスの変換に際して双方のアドレス関係を予め規定したアドレス変換テーブルを用意しておくことが、処理の迅速化の観点からは望ましい。
2…ピクセルパイプラインプロセッサ、
3・・・クロスバースイッチ、
4・・・シリアルバス配線、
5,50・・・スイッチ回路、
6…アドレス選択回路、
7a ,7b・・・クロック線、
8・・・リピータ、
9・・・パラレル/シリアル変換回路、
10・・・シリアル/パラレル変換回路、
11・・・デクリメント回路、
12・・・論理和回路、
13・・・論理積回路、
14・・・接続切換回路、
20・・・アドレス初期化部、
21,23・・・経路切替部、
22・・・指定されたライン番号
Claims (15)
- カスケード接続された複数段のノードの各々にノードコントローラが配備されており、
各ノードコントローラが、
目的のノードコントローラが存在する相対位置を直接又は間接に特定するためのアドレス情報を前段ノードより入力する入力インタフェースと、
入力されたアドレス情報が特定値を表しているかどうかを判別し、特定値を表すと判別したときに所定のデータ出力ラインへのデータ出力を可能にするとともに、前記入力されたアドレス情報を所定の規則に従って変化させた新たなアドレス情報を生成するスイッチと、
この新たなアドレス情報を後段ノードへ出力する出力インタフェースとを有し、
それぞれ前記複数段のノードを含む複数のノードラインを有し、
各ノードライン上のノードコントローラが、少なくとも並行動作する他のノードライン上のノードコントローラと同一のクロックタイミングで動作し、
各ノードライン上のノードコントローラに、それぞれ、前段ノードからデータを入力するとともに、このデータを他のノードラインの後段ノードへ出力する第1パスと、前段ノードから前記アドレス情報を入力するとともに前記新たなアドレス情報を同一ノードラインの後段ノードへ出力する第2パスとが設定されており、更に、
各ノードコントローラは、複数のノードライン上で行列マトリクス状に配列されており、
前記第2パスは、各ノードラインの列方向に設定されており、
前記第1パスは、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であって異なる列に存在するノードコントローラの入力端との間に設定されている、
クロスバースイッチ。 - 前記アドレス情報が循環性の数値データであり、
前記出力インタフェースは、この数値データを所定値分だけ同一変化方向に増加又は減少させることにより前記新たなアドレス情報を生成する、
請求項1記載のクロスバースイッチ。 - 前記アドレス情報が、開始ビットと終了ビットとを含むシリアルデータである、
請求項2記載のクロスバースイッチ。 - それぞれ前記複数段のノードを含む複数のノードラインを有し、
各ノードライン上のノードコントローラが、他のノードライン上のノードコントローラと非同期に動作する、
請求項1記載のクロスバースイッチ。 - 前記複数段のノードの各々が所定のデータメモリの出力アドレスと1対1に対応付けられており、
各ノードコントローラのスイッチが、作動時に、当該ノードに対応付けられている前記出力アドレスを通じて前記データメモリから出力されるデータを前記データ出力ラインへ出力する、
請求項1記載のクロスバースイッチ。 - 各ノードコントローラにおける前記第1パスと前記第2パスとが同一又は略同一のノード長である、
請求項1記載のクロスバースイッチ。 - 少なくとも同一の行方向に配列されるすべての前記ノードコントローラが、同一の動作タイミングを定めるクロック信号にしたがって動作する、
請求項1記載のクロスバースイッチ。 - 前記第1パスが、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であって隣合う列に存在するノードコントローラの入力端との間に設定されている、
請求項1記載のクロスバースイッチ。 - 前記第1パスの一部又は全部は、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であってそのノードコントローラからは複数列離れた位置に存在するノードコントローラの入力端との間に設定されている、
請求項1記載のクロスバースイッチ。 - 列方向の最端部に位置するノードコントローラについての前記第1パスが、当該ノードコントローラの出力端と、次段の行の隣合う位置に存在するノードコントローラの入力端との間に設定されている、
請求項9記載のクロスバースイッチ。 - 前記複数のノードラインの各々の入力端にアドレス情報生成手段が設けられ、このアドレス情報生成手段は、アドレス情報生成手段自体が設けられたラインを識別するための第1のライン識別データと、当該アドレス情報生成手段が設けられたラインの最後段のノードに設けられたスイッチから出力されるデータが入力されるノードラインを識別するための第2のライン識別データとに基づいて前記アドレス情報を生成する、
請求項1記載のクロスバースイッチ。 - コンピュータに搭載可能なパッケージに収容されており、
前記複数のノードラインの入力端には、当該入力端に入力されるデータを保有する第1デバイスを接続するためのインタフェース部品が存在し、
前記複数のノードラインの出力端には、各々のノードラインと1対1に対応する演算パイプラインを有する第2デバイスを接続するためのインタフェース部品が存在する、
請求項1記載のクロスバースイッチ。 - コンピュータに搭載可能なパッケージに収容されており、
前記複数のノードラインの入力端及び/又は出力端に、同一構成の他のクロスバースイッチの複数のノードラインを接続するためのインタフェース部品が存在する、
請求項1記載のクロスバースイッチ。 - それぞれカスケード接続された複数段のノードを含み、入力されたデータが流れる複数のノードラインを有し、ノードの各々にノードコントローラが配備されたクロスバースイッチの動作制御方法であって、前記ノードコントローラは、それぞれ前記複数段のノードを含む複数のノードラインを有し、各ノードライン上のノードコントローラが、少なくとも並行動作する他のノードライン上のノードコントローラと同一のクロックタイミングで動作するものであり、
各ノードライン上のノードコントローラに、それぞれ、前段ノードからデータを入力するとともに、このデータを他のノードラインの後段ノードへ出力する第1パスと、前段ノードから前記アドレス情報を入力するとともに前記新たなアドレス情報を同一ノードラインの後段ノードへ出力する第2パスとが設定されており、
更に、各ノードコントローラは、複数のノードライン上で行列マトリクス状に配列されており、
前記第2パスは、各ノードラインの列方向に設定されており、
前記第1パスは、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であって異なる列に存在するノードコントローラの入力端との間に設定されているものであって、
前記クロスバースイッチを制御する装置が、データを出力させるノードラインの識別情報と、作動させるノードコントローラの相対位置を表す情報とによりアドレス情報を生成し、このアドレス情報を目的のノードラインの初段ノードに入力する段階と、
前記アドレス情報が入力されたノードラインの各ノードに存在するノードコントローラが、それぞれ入力されたアドレス情報が特定値を表しているかどうかを判別し、特定値を表すと判別したときは当該ノードライン上のデータを出力するとともに、前記入力されたアドレス情報を所定値分だけ変化させた新たなアドレス情報を生成し、この新たなアドレス情報を後段ノードへ出力する段階とを有し、
更に、前記アドレス情報は、当該アドレス情報が入力された列の最終段から出力されるデータを指定するためのものである、
クロスバースイッチの動作制御方法。 - それぞれカスケード接続された複数段のノードを含み、入力されたデータが流れる複数のノードラインを有し、ノードの各々にノードコントローラが配備されたクロスバースイッチを搭載して成るコンピュータで実行されるプログラムであって、
前記ノードコントローラは、それぞれ前記複数段のノードを含む複数のノードラインを有し、各ノードライン上のノードコントローラが、少なくとも並行動作する他のノードライン上のノードコントローラと同一のクロックタイミングで動作するものであり、
各ノードライン上のノードコントローラに、それぞれ、前段ノードからデータを入力するとともに、このデータを他のノードラインの後段ノードへ出力する第1パスと、前段ノードから前記アドレス情報を入力するとともに前記新たなアドレス情報を同一ノードラインの後段ノードへ出力する第2パスとが設定されており、
更に、各ノードコントローラは、複数のノードライン上で行列マトリクス状に配列されており、
前記第2パスは、各ノードラインの列方向に設定されており、
前記第1パスは、前段のノードコントローラの出力端と、そのノードコントローラの次段の行であって異なる列に存在するノードコントローラの入力端との間に設定されており、
各ノードコントローラを、以下の(1)〜(3)のように動作させるためのクロスバースイッチの動作制御用プログラム。
(1)目的のノードコントローラが存在する相対位置を直接又は間接に特定するためのアドレス情報を入力するとともに、このアドレス情報は、当該アドレス情報が入力された列の最終段から出力されるデータを指定するものであり、
(2)入力されたアドレス情報が特定値を表しているかどうかを判別し、特定値を表すと判別したときは、当該ノードライン上のデータを出力するとともに、
(3)前記入力されたアドレス情報を所定値分だけ変化させた新たなアドレス情報を生成し、この新たなアドレス情報を後段ノードへ出力する。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004086613A JP4443966B2 (ja) | 2003-03-24 | 2004-03-24 | クロスバースイッチ及びその動作制御方法、動作制御用プログラム |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003081258 | 2003-03-24 | ||
| JP2004086613A JP4443966B2 (ja) | 2003-03-24 | 2004-03-24 | クロスバースイッチ及びその動作制御方法、動作制御用プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004310759A JP2004310759A (ja) | 2004-11-04 |
| JP4443966B2 true JP4443966B2 (ja) | 2010-03-31 |
Family
ID=33478138
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004086613A Expired - Fee Related JP4443966B2 (ja) | 2003-03-24 | 2004-03-24 | クロスバースイッチ及びその動作制御方法、動作制御用プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4443966B2 (ja) |
-
2004
- 2004-03-24 JP JP2004086613A patent/JP4443966B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004310759A (ja) | 2004-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0018755B1 (en) | Digital communication networks employing speed independent switches | |
| US11307827B2 (en) | Tiled switch matrix data permutation circuit | |
| JPH11243415A (ja) | データエンコーディング方法、通信装置、メッセージ伝送方法、およびルーチングスイッチ | |
| JPH03132130A (ja) | メッセージルーチング方法、コンピュータネットワーク及びルーチングスイッチ | |
| JP3445416B2 (ja) | 複数のデータバイトのシフト及び並び替えを行うためのシフト回路及び方法 | |
| JP2005516508A5 (ja) | ||
| KR100639869B1 (ko) | 크로스바 스위치, 그 동작제어방법 및 동작제어용프로그램 | |
| US6888841B1 (en) | Pipelined scheduling technique | |
| JP2552784B2 (ja) | 並列データ処理制御方式 | |
| US6801978B2 (en) | Crossbar system with increased throughput | |
| JP2007058571A (ja) | 回路および回路接続方法 | |
| JP4443966B2 (ja) | クロスバースイッチ及びその動作制御方法、動作制御用プログラム | |
| US4714922A (en) | Interconnection networks | |
| US6701404B1 (en) | Method and system for transferring variable sized loop words between elements connected within serial loop through serial interconnect | |
| JP3119130B2 (ja) | ネットワーク構成 | |
| JPH09160893A (ja) | 並列処理コンピュータシステムにおけるクロスバースイッチを利用したクラスタ連結構造 | |
| JPH01158891A (ja) | 空間分割スイッチ | |
| JPH11212927A (ja) | 競合調停方法 | |
| JP2788250B2 (ja) | ディジタル信号交換器及びディジタル信号交換器の選択モジュール | |
| JP3130343B2 (ja) | データ位相変換方式 | |
| JP2000148660A (ja) | Dmaデータ転送方法および装置 | |
| JPH05130130A (ja) | Srm間ハイウエイ接続方法および装置 | |
| JPH08223612A (ja) | 通信回線切換方式 | |
| JPH06178340A (ja) | 空間スイッチ装置 | |
| JPH04274547A (ja) | データ転送システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061221 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081225 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090306 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091020 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091210 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100112 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100113 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4443966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130122 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130122 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140122 Year of fee payment: 4 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |