(57)【特許請求の範囲】
【請求項１】
ポートルータであって、
１つ以上の入力及び１つ以上の出力を有する動的なコントローラスイッチ；
１つ以上の入力及び１つ以上の出力を有する静的なポートスイッチ；及び
前記コントローラスイッチと前記ポートスイッチとの間の、１つ以上のハブ素子及び選択的に直接接続を含む接続
を具え、
前記コントローラスイッチ、前記ポートスイッチ、及び前記コントローラスイッチと前記ポートスイッチの間の前記接続が、前記１つ以上のハブ素子及び／又は前記１つ以上の直接接続を除去及び／又は挿入することによって、前記ポートスイッチの入力と前記コントローラスイッチの出力との間の接続の動的な再ルーティングを行うべく構成されていることを特徴とするポートルータ。
【請求項２】
前記コントローラスイッチ、前記ポートスイッチ、及び前記１つ以上の接続を、負荷要求にもとづく動的な負荷平衡を行うべく動的に構成したことを特徴とする請求項１に記載のポートルータ。
【請求項３】
前記１つ以上の接続が１つ以上のハブ素子を具え、前記除去及び／又は挿入が、前記ポートスイッチの前記１つ以上の入力を介して要求されるデータ能力の要求及びデータ形式のうちの少なくとも１つを含む要求に基づいていることを特徴とする請求項１に記載のポートルータ。
【請求項４】
前記１つ以上のハブ素子が、前記ポートスイッチからの前記出力を１つ以上受信して、前記コントローラスイッチに入力を供給すべく構成されていることを特徴とする請求項１に記載のポートルータ。
【請求項５】
前記ポートスイッチの入力の各々がインタフェースポートに接続され、前記ポートスイッチが、１つ以上のインタフェースポートから前記ポートスイッチの出力の１つ以上へのルーティングをすべく構成されていることを特徴とする請求項１に記載のポートルータ。
【請求項６】
前記コントローラスイッチからの前記１つ以上の出力の各々を、対応するコントローラに接続したことを特徴とする請求項１に記載のポートルータ。
【請求項７】
前記コントローラスイッチ及び前記ポートスイッチの各々が、クロスバースイッチを具えていることを特徴とする請求項１に記載のポートルータ。
【請求項８】
集積回路であって、
各々が１つ以上の対応するインタフェースポートに接続された１つ以上の入力を有する静的なポートスイッチ；
動的なコントローラスイッチ；及び
前記ポートスイッチと前記コントローラスイッチとの間の、１つ以上のハブ素子及び選択的に直接接続を含む接続
を具え、
前記コントローラスイッチ、前記ポートスイッチ、及び前記コントローラスイッチと前記ポートスイッチの間の前記接続が協働して、前記１つ以上のハブ素子及び／又は前記１つ以上の直接接続を除去及び／又は挿入することによって、前記１つ以上のインタフェースポートと演算装置の内部回路との間の接続を動的に再ルーティングすべく構成された構成可能なスイッチを提供することを特徴とする集積回路。
【請求項９】
前記１つ以上の接続が１つ以上のハブ素子を具え、前記除去及び／又は挿入が、前記ポートスイッチの前記１つ以上の入力を介して要求されるデータ能力の要求及びデータ形式のうちの少なくとも１つを含む要求に基づいていることを特徴とする請求項８に記載の集積回路。
【請求項１０】
ポートから演算プラットフォームの内部回路への動的なルーティングをする方法であって、
１つ以上のハブ素子及び選択的に直接接続を含む構成可能なスイッチング回路を用意するステップ；
前記構成可能なスイッチング回路に問い合わせをしてデフォルトのトポロジを決定するステップ；
前記構成可能なスイッチング回路を通るデータフローの変化の発生により、所望のトポロジを演算するステップ；
動作を中断して、前記１つ以上のハブ素子及び／又は前記１つ以上の直接接続を除去及び／又は挿入することによって、前記所望のトポロジに基づいて前記インタフェースポートと前記内部回路との間の再ルーティングを実行するステップ；及び
前記構成可能なスイッチング回路を通るＩＯ動作を再開するステップ
を具える方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、半導体デバイス、特にポートルータに関するものである。
【０００２】
（発明の背景）
現存の演算プラットフォームは、外部装置をコンピュータに取り付けて、演算プラットフォームと、外部装置を接続するポートとの間の入力／出力（ＩＯ）を実行するメカニズムになっている。慣例の方法は、ポートと演算プラットフォームの内部に存在するＩＯコントローラとの間の固定の接続を採用している。固定のルーティング（経路設定）メカニズムを設けるこの技術は、新たな装置を追加すること、あるいは単一のＩＯコントローラの全能力を必要とする装置を導入することのような変更要求に、システムが適応する能力を制限するものである。
【０００３】
装置単体またはシステム内で、多数のＩＯコントローラが利用可能な環境が増えつつある。情報機器、セットトップボックス、ケーブルモデム、ゲーム操作器、インテリジェント機器、ハンドヘルドコンピュータ、パーム（手の平）サイズコンピュータ、埋め込み型制御システム、ワークステーション、及びサーバー等は、多数のＩＯコントローラを具えている。現在利用可能な技術は、ポートとＩＯコントローラとの間の動的な再ルーティング用のメカニズムを具えていない。従って、新たな装置を追加する際、あるいは単一のＩＯコントローラの全能力を必要とする装置を導入する際に、ルーティングを動的に変更できることが望ましい。物理的接続部（ポート）を、演算プラットフォームの内部に存在するＩＯコントローラに動的に接続するためのメカニズムの必要性が存在する。
【０００４】
（発明の概要）
本発明の１つの要点では、コントローラスイッチ、ポートスイッチ、及びこれらのコントローラスイッチとポートスイッチとの間の１つ以上の接続を具えたポートルータを設ける。これらのコントローラスイッチ、ポートスイッチ、及び１つ以上の接続は、ポートスイッチの入力とコントローラスイッチの出力との間の動的な再ルーティングを提供すべく適応されている。
【０００５】
本発明の他の要点は、ポートから演算プラットフォームの内部回路への動的なルーティングをする方法を提供するものである。この方法は、構成可能なスイッチング回路を用意するステップと、この構成可能なスイッチング回路に問い合わせをして、デフォルトのトポロジを決定するステップと、前記構成可能なスイッチング回路を通るデータフローの変更の発生により、最適トポロジを算出するステップと、この最適トポロジにもとづいて、動作を中断して、インタフェースポートと内部回路との間の再ルーティングを実行するステップと、前記構成可能なスイッチング回路を通るＩＯ動作を再開するステップとを具えている。
【０００６】
本発明はパーソナルコンピュータシステムに用いることができ、情報機器、セットトップボックス、ケーブルモデム、ゲーム操作器、インテリジェント機器、ハンドヘルドコンピュータ、パームサイズコンピュータ、埋め込み型制御システム、ワークステーション、等を含む他の種類の演算プラットフォームにも適用可能であるが、これらに限定されるものではない。
【０００７】
（実施例の詳細な説明）
本発明は、ポートと内部回路との間の接続を動的に形成して、再ルーティングができるようにする構成可能なスイッチング回路を提供するものである。本発明の一実施例は、物理的接続部（ポート）どうしの間から、演算プラットフォームの内部に存在する１つ以上のＩＯコントローラへの動的ルーティング用の装置を提供するものである。本発明の１つの利点は、ポートからの再ルーティングをして、新たなトポロジが確立されるようにすることによって、（最適なデータフロー・トポロジに変化を発生させるような）ＩＯ装置の数または要求の変化に適応することができることにある。この適応的なルーティングを提供する能力は、競合のある環境では動作することができないシステムまたは装置が、帯域幅のリソースを専用することを可能にする。本発明の他の利点は、ポートルータをブロッキングメカニズム（阻止機構）として用いて、特定のＩＯポートをシステムから隔離できるようにする能力を含む。このことは特に、装置が誤動作したり、あるいは装置がシステムに不調を発生させている場合に有用である。
【０００８】
ＩＯコントローラは、データを送信及び受信するためのメカニズムをシステムソフトウエアに提供するものである。ポートは、装置を演算システムに接続するための装着メカニズムを提供するものである。次世代には、装置単体またはシステム内に多数のＩＯコントローラを有する演算プラットフォームが利用可能になる。慣例のハードウエア配線のルーティングメカニズムは、変化する要求にシステムが適応する能力を制限する。本発明はこれらの制限を回避して、システムに新たな装置を追加した際、あるいは単一のＩＯコントローラの全能力を必要とする装置を導入する際に、動的なルーティング及び再ルーティングができるようにするルーティングメカニズムを提供するものである。本発明はさらに、演算プラットフォーム内に存在しうる多数のＩＯコントローラ間で、装置から装置へのデータを動的に負荷平衡させるためのメカニズムを提供するものである。
【０００９】
本発明はパーソナルコンピュータシステムに用いることができるが、情報機器、セットトップボックス、ケーブルモデム、ゲーム操作器、インテリジェント機器、ハンドヘルドコンピュータ、パームサイズコンピュータ、埋め込み型制御システムを含む他の種類のコンピュータプラットフォームにも適用することができるが、これらに限定されるものではない。
【００１０】
以下、本発明の実施例について図面を参照して説明する。
図１〜図４の表現は例示目的のものに過ぎず、本発明の可能な実施を制限すべきものではない。本発明の選択した実施例を図式的に示す図１〜図４では、ポートルータ１００が４つのポート及び４つまでのＩＯコントローラをサポートするように示してある。特定のシステムまたは機器内に存在するポート及びＩＯコントローラの数は、システムの要求にもとづいて変化する。これに加えて、本明細書に記載する「入力」及び「出力」はすべて、双方向のデータフロー（通常、「入力／出力」と称する）を取扱い可能な接続のことを称することは明らかである。
【００１１】
図１は、本発明の一実施例を示すブロック図である。ポートルータ１００は、コントローラスイッチ１２０、ポートスイッチ１４０、及びコントローラスイッチ１２０とポートスイッチ１４０との間の接続２００を具えている。接続２００はハブ素子２０１を具えている。ポートルータ１００は、ポートＡ〜Ｄを、単一のコントローラであるコントローラＡに接続している。コントローラスイッチ１２０、ポートスイッチ１４０、及び接続２００の各々は、特定の入力及び出力の能力を有する。ポートスイッチ１４０は、各々がインタフェースポートに接続された固定の入力１４１〜１４４を有する。ポートスイッチ１４０は、あらゆるポートから１つ以上のスイッチ出力へのルーティング（経路設定）をするものである。ポートスイッチ１４０は、すべてのルーティング素子をサポートするための合計数の出力を有する。図１の例では、ポートスイッチ１４０はハブ素子２０１用の４つの出力を有する。これらのハブ素子は、所定の機器用のＩＯインタフェースの要求に追従することが好ましい。各ハブ素子は、その入力どうしを組合わせて、コントローラスイッチに入力される単一の出力を供給する。一部のＩＯインタフェースは、ハブ素子２０１のことを、ブリッジ、コンセントレータ（集信装置）、あるいは物理インタフェースと称する。多数のハブ素子を用いて、ポートスイッチ１４０をコントローラスイッチ１２０に接続することができる。
【００１２】
コントローラスイッチ１２０は、ハブ素子への接続毎に１つの入力を有し、かつポートスイッチ１４０への直接接続（図２〜図４に示す）毎に１つの入力を有することが好ましい。コントローラスイッチ１２０からの出力は、所定の機器において必要か、あるいは利用可能なコントローラの数に整合すべく固定されている。図１に示すように、コントローラスイッチは、ハブ素子２０１に接続した１つの入力１２１、及びコントローラＡに接続した１つの出力１２７を有する。
【００１３】
図２に、ポートＤへの新たな装置の追加を示し、ここではコントローラＡについての帯域幅の能力がしきい値に達している。装置をポートＤに挿入すると、この装置が検出されて装置の能力要求が報告される。この能力は、コントローラＡの有効能力より大きいものと計算される。新たなコントローラＢをシステムに追加して、ポートルータ１００を再構成して、ポートＡ、Ｂ、及びＣの、コントローラＡへの接続を行い、ポートＤのみをコントローラＢに接続する。ポートＤのハブ素子２０１への接続を解除して、ポートスイッチ１４０とコントローラスイッチ１２０の間に新たな接続を設定する。コントローラＢへの接続は、コントローラスイッチの出力１２８から設定する。ポートＤから新たな装置への、及び新たな装置からポートＤへのすべてのデータフローが、この新たな接続を通って、ポートスイッチの出力１４９からコントローラスイッチの入力１２２に流れる。ポートＡ、Ｂ、及びＣからのすべてのデータフローは、ポートスイッチの出力１４５、１４６からハブ素子２０１への同じルーティングを有し続ける。この構成では、ポートＡ、Ｂ、及びＣからのデータフローを組み合わせて、コントローラスイッチの入力１２１に送達する。
【００１４】
図３に、インタフェースポートＣに接続された他の装置の追加、コントローラＣの追加、ハブ素子２０１の接続の解除、及び他の直接接続２０３を追加を示す。ポートＣに装置を挿入すると、この装置が検出されて、装置の能力要求が報告される。この能力は専用コントローラを必要とするものとして計算される。コントローラＣを設定して、システムに追加する。ポートＡとポートＢのコントローラＡへの接続、ポートＣのコントローラＣへの接続、及びポートＤのコントローラＢへの接続を行うべく、ポートルータ１００を再構成する。ポートＣのハブ素子２０１への接続を解除して、ポートスイッチ１４０とコントローラスイッチ１２０との間に新たな直接接続２０３を設定する。コントローラスイッチの出力１２９からコントローラＣへの接続を設定する。ポートＣから最も新規の装置への、及び最も新規の装置からポートＣへのすべてのデータフローは、この新たな接続を通って、ポートスイッチの出力１５０からコントローラスイッチの入力１２３に流れる。ポートＡ及びポートＢからのデータフローは、ポートスイッチの出力１４５及び１４６からハブ素子２０１への同じルーティングを有し続ける。ポートＤからのデータフローは、ポートスイッチの出力１５０から接続２０３を通ってコントローラスイッチの入力１２３へ、そしてコントローラスイッチの出力１２８を通ってコントローラＢへ、となり続ける。この構成では、ポートＡ及びポートＢからのデータフローがハブ素子２０１内で組み合わされて、コントローラスイッチの入力１２１に送達される。
【００１５】
図４に、４つのポート及び４つのコントローラのポートルータの構成についての、合計接続数を示す。ありうる接続のすべてを示すが、図１〜図３に示すように、所望のトポロジに応じた所定の接続のみが作用している。トポロジは、有効なデータフローのために最適化されていることが好ましい。ポートスイッチ１４０は、存在するポート毎に単一の入力を有する（即ち４つのポートは４つの入力を必要とし、５つのポートは５つの入力を必要とする、等）ことが好ましい。ポートスイッチ１４０は、コントローラスイッチ１２０に直接接続するために、ポート毎に１つの４つの出力接続１４９〜１５２を有し、これらは接続２０２、２０３、２０４、及び２０５で表わす。ハブ素子の数は変化しうるものであり、図４に示すものは２つである。ハブ素子２０６はポートスイッチの出力１４５〜１４８、及びコントローラスイッチの入力１２１に接続されている。ハブ素子２０６はポートスイッチの出力１５３〜１５６、及びコントローラスイッチの入力１２６に接続されている。コントローラスイッチは、システム内に存在しうるコントローラ毎に１つの出力を有する。システム内のコントローラの数は変化しうる。コントローラの数はサポートするポートの数以下であることが好ましく、本実施例では４つである。コントローラスイッチの出力１２７〜１３０は、コントローラＡ〜Ｄ毎の入力に接続されている。
【００１６】
動作中には、所定のポートが所望のコントローラに接続されたデフォルト状態で、ポートスイッチ１００が始動することが好ましい。図１の例には、４つのポート、ポートＡ及びポートＢに接続された２つの装置、１つのハブ素子２０１、及びコントローラＡがあるデフォルト状態を有するシステムを示す。好適にはポートルータ１００内に存在する一組のハードウエアレジスタ（図示せず）を通して、システム内で動作するソフトウエアがポートルータ１００に問い合わせをして、デフォルトのトポロジを見出すことができる。システムソフトウエアは、前記ハードウエアレジスタに値をプログラムすることによって、ポートの任意の組合わせとコントローラとの間の信号のルーティングの変更を実行することができる。動作中に事象が発生する。事象は、新たな装置が除去されるか、あるいはポートに挿入されることである。この事象は前記ソフトウエアをトリガして、この新たなデバイスの要求を検査する。これらの要求には、装置のデータ能力の要求（帯域幅及びレイテンシ（呼出し時間））、及びそのデータ形式（非同期、等時性、バースト（突発的）、ストリーム（流れ））を含めることができる。これらの新たな要求を、既に設置されている装置からの、現在の一まとまりの要求と組み合わせて、ポートからのルーティングをするための最適なトポロジを算出する。システムソフトウエアがＩＯ動作を中断して、ポートとＩＯコントローラとの間の再ルーティングを実行することが好ましい。次にシステムソフトウエアがＩＯ動作を再開して、新たな事象が発生するまでは、この最適化したルーティングが新たなルーティングとなる。
【００１７】
本発明の他の実施例では、ポートルータ１００が、システムソフトウエアの調停を必要とせずに、ルーティング及び再ルーティングを内部的に実行できるような、埋め込み型のソフトウエアを具えていることが好ましい。これにより、ポートルータ１００を通るデータの流れにもとづく、自己監視及び動的な負荷平衡の能力が提供される。
【００１８】
このように、本発明の一実施例によるポートルータは、１つ以上の入力及び１つ以上の出力を有するコントローラスイッチ１２０と、１つ以上の入力及び１つ以上の出力を有するポートスイッチ１４０と、コントローラスイッチ１２０とポートスイッチ１４０との間の１つ以上の接続とを具えている。コントローラスイッチ１２０、ポートスイッチ１４０、及び１つ以上の接続２００は、ポートスイッチの入力とコントローラスイッチの出力との間の動的な再ルーティングを行うべく適応されている。
【００１９】
コントローラスイッチ１２０、ポートスイッチ１４０、及び１つ以上の接続２００は、変化する負荷要求にもとづいて動的な負荷平衡を行うべく、動的に構成することができる。１つ以上の接続２００は、１つ以上のハブ素子２０１、２０６を具え、さらにコントローラスイッチ１２０とポートスイッチ１４０との間の１つ以上の直接接続を任意に具えていることが好ましい。１つ以上のハブ素子２０１、２０６は、ポートスイッチ１４０からの出力を１つ以上受信して、コントローラスイッチ１２０に１つの入力を供給すべく適応されていることが好ましい。ポートスイッチの入力は、各々がインタフェースポートに接続されていることが好ましく、ポートスイッチ１４０は、１つ以上のインタフェースポートから、ポートスイッチの出力の１つ以上へのルーティングをすべく適応されていることが好ましい。コントローラスイッチ１２０はさらに、ポートスイッチ１４０への直接接続毎の１つの入力と、１つ以上のハブ素子２０１、２０６への接続毎の１つの入力とを具えている。コントローラスイッチ１２０からの１つ以上の出力の各々が、対応するコントローラに接続されていることが好ましい。コントローラスイッチ１２０及びポートスイッチ１４０はクロスバースイッチを具えていることが好ましい。
【００２０】
本発明の他の要点は、各々が対応する１つ以上のインタフェースポートに接続された１つ以上の入力を有するポートスイッチ１４０と、コントローラスイッチ１２０と、ポートスイッチ１４０とコントローラスイッチ１２０との間の１つ以上の接続２００とを具えた集積回路である。コントローラスイッチ１２０、ポートスイッチ１４０、及び１つ以上の接続２００が協働して、１つ以上のインタフェースポートと演算装置の内部回路との間の接続を動的に再ルーティングすべく適応された構成可能なスイッチを提供する。
【００２１】
１つ以上の接続２００は、１つ以上のハブ素子を具え、さらにコントローラスイッチ１２０とポートスイッチ１４０との間の１つ以上の直接接続を任意に具えていることが好ましい。
【００２２】
本発明の他の要点は、ポートから演算プラットフォームの内部回路への動的なルーティングをする方法であり、この方法は、構成可能なスイッチング回路を用意するステップと、この構成可能なスイッチング回路に問い合わせをして、デフォルトのトポロジを決定するステップと、構成可能なスイッチング回路を通るデータフローの変化の発生により、最適化したトポロジを算出するステップと、動作を中断して、最適化したトポロジにもとづいて、インタフェースポートと前記内部回路との間の再ルーティングを実行するステップと、構成可能なスイッチング回路を通るＩＯ動作を再開するステップとを具えている。
【００２３】
前記最適化したトポロジは、前記再構成可能なスイッチ回路を通るデータの流れにもとづいて、動的な負荷平衡を行うことが好ましい。前記構成可能なスイッチング回路を通るデータフローの変化には、前記ポートスイッチの入力または前記インタフェースポートに装置を動作的に接続するか、あるいはこれらの入力またはポートから装置を解放することを含めることができる。
【００２４】
本発明は、好適な実施例について図面を参照して説明してきたが、本発明はこうした実施例に限定されるものではなく、当業者が本発明の範疇を逸脱することなく、種々の変更及び変形を行いうることは明らかである。
【図面の簡単な説明】
【図１】  本発明の一実施例を示すブロック図である。
【図２】  本発明の他の実施例を示すブロック図である。
【図３】  本発明の他の実施例を示すブロック図である。
【図４】  本発明の他の実施例を示すブロック図である。
【図１】
0004491765.tif 000002
【図２】
0004491765.tif 000003
【図３】
0004491765.tif 000004
【図４】
0004491765.tif 000005