[go: up one dir, main page]

JP4606589B2 - 入出力デバイスを動的に再構成する装置及び方法 - Google Patents

入出力デバイスを動的に再構成する装置及び方法 Download PDF

Info

Publication number
JP4606589B2
JP4606589B2 JP2000592732A JP2000592732A JP4606589B2 JP 4606589 B2 JP4606589 B2 JP 4606589B2 JP 2000592732 A JP2000592732 A JP 2000592732A JP 2000592732 A JP2000592732 A JP 2000592732A JP 4606589 B2 JP4606589 B2 JP 4606589B2
Authority
JP
Japan
Prior art keywords
controller
configuration
port
virtual
virtual controllers
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
Application number
JP2000592732A
Other languages
English (en)
Other versions
JP2003532165A (ja
JP2003532165A5 (ja
Inventor
エー. アギラー,ラウル
ティー. クリー,ジェームズ
イー. グジアック,ジェームズ
ジェイ. リンチ,ケビン
エー. ラティフ,ファールク
Original Assignee
アルカテル−ルーセント ユーエスエー インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント ユーエスエー インコーポレーテッド filed Critical アルカテル−ルーセント ユーエスエー インコーポレーテッド
Publication of JP2003532165A publication Critical patent/JP2003532165A/ja
Publication of JP2003532165A5 publication Critical patent/JP2003532165A5/ja
Application granted granted Critical
Publication of JP4606589B2 publication Critical patent/JP4606589B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Stored Programmes (AREA)

Description

【0001】
この出願は、その開示内容を参考のため本願明細書中に引用した、2000年1月4日付Aguilar 外の米国特許出願第”ポート・ルータ”に関連する。この出願は、その開示内容を、これも参考のため本願明細書中に引用した米国仮出願第60/114,771号、第60/114,772号及び第60/114,767号に関して優先権を主張する。
【0002】
〔発明の分野〕
この出願は半導体デバイス、特に、入/出力(IO)コントローラに係る。
〔発明の背景〕
IOコントローラは、コンピュータ・オペレーティングシステムとIOインタフェースとを接続する機能を果たす。従来のコンピュータ・オペレーティングシステムの場合、インストラクションを形成する記述子リストをIOコントローラが読み取り、これに従ってその仕事を行う。最近のIOコントローラは、記述子中に規定されているオペレーションを読み取り、開始するハードウェア回路を含む。記述子に著しい変動があれば、新しい回路が必要になり、従って、既存回路が時代遅れのものになる。実際には、新しいオペレーティングシステムの開発と新しいハードウェアの開発が遅れる事態となる。両者の開発には、相互の整合性が要求されるからである。
【0003】
IOコントローラ・インタフェースの演算速度は固定的であるのが普通であり、コントローラはインタフェースの帯域幅に制限される。別のインタフェースを追加するには、アド・オン・ボードを追加するか、マザー・ボードを設計し直すことによって、新しいコントローラ・インタフェース・デバイスを構成しなければならない。
【0004】
IOデバイスの帯域幅を増大させる試みがなされているが、そのためにはデバイスのハードウェアを変更する必要があり、帯域幅を動的に加えることは不可能であった。ハードウェアの変更、又はシステムへのハードウェア追加には、再構成経費、追加ハードウェア経費の他、既存オペレーティングシステムと適合しない可能性など、数多くの問題がある。さらに、新しいハードウェアの追加はシステムをオフにして行われ、新しいハードウェアを組込む技術者が必要であり、新しいハードウェアをサポートするためにオペレーティングシステムを変更するシステム管理者も必要になるであろう。この方法は困難であり、エラーを伴い易く、コストが大きく、多大の時間を要する設計及び性能強化を必要とする。
【0005】
従って、記述子の変動に対応することによって、機能を追加し、性能を向上させ、又は前後両方向のコンパチビリティーを可能にするデバイスの実現が望まれる。さらにまた、システムの条件に応じて、新しいハードウェアを追加することなく、IOコントローラの新しいインスタンスを動的に形成することによって追加の帯域幅を提供できるデバイスもの実現も望まれる。
【0006】
〔発明の概要〕
本発明の第1の態様においては、IOコントローラによってコンピュータ・システムへのデータ・フローを制御する方法が提供される。この方法は、IOコントローラの所要構成を求め、1つ又は2つ以上の記述子を処理できるようにIOコントローラを再プログラミングし、1つ又は2つ以上の仮想コントローラの追加又は抹消を反映するようにIOコントローラの構成を変更し、IOコントローラを枚挙し直し、各IOコントローラ及び1つ又は2つ以上の仮想コントローラごとに、記述子リストを処理することを含む。枚挙し直しの過程で1つ又は2つ以上の仮想コントローラが発見され、初期設定され、IOコントローラによってサポートされる全帯域幅を提供することができる。
【0007】
第2の態様においては、本発明は、システム・バス・インタフェース、プログラマブル・リスト・プロセッサ及びポート・ルータからなる、IOコントローラとして使用する集積回路デバイスである。この集積回路デバイスは、1つ又は2つ以上の仮想コントローラを追加又は抹消するための再構成に採用される。仮想コントローラは、集積回路デバイスによってサポートされる、実質的な全帯域幅を提供する。
【0008】
本発明はパーソナル・コンピュータ・システムにおいて利用できるが、例えば、情報機器、セット・トップ・ボックス、ケ−ブル・モデム、ゲーム・コンソール、スマート・アプライアンス、ハンドヘルド・コンピュータ、手のひらサイズ・コンピュータ、組込制御システム、ワークステーション、サーバーなどのようなタイプのコンピュート・プラットフォームにも応用できる。
【0009】
〔発明の詳細な説明〕
本発明はデータ・フロー・プロトコル及び/又は上位システム相互作用に起こる変化に対応するように、IOデバイスを動的に再構成する装置及び方法を提供する。本発明は、データ転送のため、オペレーティングシステムが使用できる新しいチャンネルを形成する仮想コントローラの追加(又は抹消)を可能にする。IOデバイスは、高帯域幅を必要とする周辺デバイスのための専用スループットを提供し、複数の低帯域幅デバイスをグルーピングすることによって、データ転送を効率化することができる。本発明は、オペレーティングシステムの変化、システム条件の変化、デバイス中の問題又はバグ、及びデータ・フロー・プロトコルに対応できる新しいオペレーティングプログラムを組込むことを可能にする。
【0010】
本発明は、追加内部回路をコンピュート・プラットフォーム(即ち、IOコントローラ)内に集積する、現実的且つ経済的解決を提供する。IOコントローラは、IO流れ(バス、インタフェース、ネットワーク・コネクション)とホスト・コンピュータにおけるオペレーティングシステム・トライバーとの間にブリッジを形成する。本発明は、プログラム化可能性を利用することにより、ブリッジのIO流れとオペレーティングシステム・インタフェースとの双方の側の動作を変化させる方法及び装置を提供する。
【0011】
本発明は、例えば、USB,IEEE−1394,Fibre Channel,Infiniband及びEthernetなどのようなIOコントローラに応用できる。本発明の装置及び方法は、周辺デバイスとコンピュート・プラットフォームとの間のデータ・フローを増大させることができる。データ・フローを増大させるのにユーザーが干渉する必要はなく、コンピュート・プラットフオームに複合デバイスを組込むだけでよい。本発明はパーソナル・コンピュータ・システムに利用できるが、その他のタイプのコンピュート・プラットフォーム、例えば、情報機器、セット・トップ・ボックス、ケ−ブル・モデム、ゲーム・コンソール、スマート・アプライアンス、ハンドヘルド・コンピュータ、手のひらサイズ・コンピュータ、組込制御システム、ワークステーション、サーバーなどのようなタイプのコンピュート・プラットフォームにも応用できる。
【0012】
本発明のIOコントローラはマーケット寿命が長く、バグに対する対策を速やかに練り、実施することを可能にし、オペレーティングシステムの記述子リストのエラーにも変更にも適応し、新しいタイプの記述子演算の組込を可能にする。本発明は、広範囲にわたるシステムの諸条件を満たすのに必要な製品数を軽減する。
【0013】
添付の図面はあくまでも説明のためのものであり、本発明の可能な実施態様を制限するものではない。ポート及びIOコントローラの数は個々のシステム又は用途に必要な条件に応じて異なる。
図1に示す本発明の一実施例では、システム・バス・インタフェース120、プログラム可能なリスト・プロセッサ110、及びポート・ルータ130を有する、IOコントローラとして使用するための集積回路(IC)デバイス100を設ける。システム・バス・インタフェース120、プログラム可能なリスト・プロセッサ110及びポート・ルータ130は機能的に接続されている。ポート・ルータ130は好ましくは1つ又は2つ以上のインタフェース・ポート140とも接続している。
【0014】
プログラム可能なリスト・プロセッサ110を採用することにより、IOコントローラは、”シングル・スレッデッド”、即ち、一度に単一の記述子リストだけを実行できる既存のシステムとは異なり、多重記述子リストを処理するために再プログラム又は再構成することができる。この機能により、本発明のIOコントローラは複数の別々のハードウェア・コントローラと同様に作用することができる。
【0015】
図4は本発明と併用できるポート・ルータ400の一実施例を示すブロックダイヤグラムである。ポート・ルータ400は、コントローラ・スイッチ420、ポート・スイッチ440、及びコントローラ・スイッチ420とポート・スイッチ440の間の結線450から成る。結線450はハブ素子401を含む。ポート・ルータ400はポートA〜Dを単一のコントローラ (コントローラA)と接続する。コントローラ・スイッチ420、ポート・スイッチ440及び結線450はそれぞれ固有の可能入出力を有する。ポート・スイッチ440は固定入力441〜444を有し、それぞれの固定入力はインタフェース・ポートと接続している。ポート・スイッチ440は任意のポートを1つ又は2つ以上のポート・スイッチ出力へルーティングする。ポート・スイッチ440はすべてのルーティング素子を支持するのに充分な出力総数を有する。図4の実施例の場合、ポート・スイッチ440はハブ素子401のための4個の出力を有する。ハブ素子は、用途に応じたIOインタフェースの条件を満たすものであることが好ましい。各ハブ素子はその入力を組合わせ、コントローラ・スイッチ420に入力される単一の出力を提供する。IOインタフェースによっては、ハブ素子401をブリッジ、コンセントレーター又は物理的インタフェースと呼称する場合がある。ポート・スイッチ440をコントローラ・スイッチ420に接続するには、多重ハブ素子を使用すればよい。
【0016】
コントローラ・スイッチ420は、ハブ素子との結線ごとに1つの入力、ポート・スイッチ440との各直接結線(図2)ごとに1つの入力をそれぞれ有することが好ましい。コントローラ・スイッチ420からの出力は所与の用途に必要な、又は利用可能なコントローラの個数に合わせて設定する。図4に示すように、コントローラ・スイッチは、ハブ素子401と接続する1つの入力421、及びコントローラAと接続する1つの出力427を有する。なお、ここに言う”入力”及び”出力”はいずれも、双方向データ・フローを扱うことができる結線(一般的には”入/出力”と呼称される)を意味する。
【0017】
図5は、図4のポート・ルータ400のポートDに新しいデバイスを付加した場合を示し、ここでは、コントローラAの帯域幅容量が閾値に達する。システムにコントローラBが付加され、ポートDからハブ素子201への結線が除去され、直接結線502が付加されている。ポートDにデバイスが挿入されると、デバイスが検知され、その容量条件がリポートされる。この容量は、コントローラAの有効容量よりも大きくなるように計算されている。新しいコントローラBがシステムに付加されると、ポートA,B及びCがコントローラAと接続する一方、ポートDがコントローラBとだけ接続するようにポート・ルータ100が再構成される。ポートDとハブ素子501とを結ぶ結線が除去され、ポート・スイッチ540とコントローラ・スイッチ出力520との間に新しい直接結線502が形成される。コントローラ・スイッチ出力528からコントローラBへの結線が形成される。ポートD及び新しいデバイスとの間のデータ・フローはすべて、ポート・スイッチ出力549からコントローラ・スイッチ入力522へのこの新しい結線を流れる。ポートA,B及びCからのデータ・フローはすべて、ポート・スイッチ出力545,546及び547からハブ素子501への同じルートをたどる。この構成では、ポートA,B及びCからのデータ・フローが組み合わされ、コントローラ・スイッチ入力521へ供給される。
【0018】
動作時には、いくつかのポート入力が所要のコントローラと接続しているデフォルト状態から、ポート・スイッチ400がスタートすることが好ましい。図4の実施例の場合、システムは4つのポート、ポートA及びBと接続する2つのデバイス、1つのハブ素子401、及び1つのコントローラAを備えたデフォルト状態にある。好ましくはポート・ルータ400中に存在する1組の(図示しない)ハードウェア・レジスターを介して、システム中で動作するソフトウェアがポート・ルータ400に問合わせ、デフォルト・トポロジーを発見することができる。システムのソフトウェアはハードウェア・レジスターの値をプログラムすることによって、ポート及びコントローラ間の信号ルートを変更することができる。動作中に事象が起こる。この事象としては、例えば、新しいデバイスの除去又はポートへの挿入が考えられる。この事象がソフトウェアをトリガーすることによって、この新しいデバイスの条件を検討する。これらの条件には、デバイスのデータ容量条件(帯域幅及び待ち時間)やそのデータ・スタイル(非同期的、等時的、バースト、流れ)などが含まれる。新しい条件が、既に実装されているデバイスから課せられる一連の条件と組合わされ、ポートをルーティングするための新しい、好ましくは最適化されたトポロジーが計算される。好ましくは、システムのソフトウェアがIOの動作を中断させ、ポートとIOコントローラとの間を再ルーティングさせる。次いで、システムのソフトウェアがIOの動作を再開させ、最適化されたルーティングが、新しい事象が起こるまで、新しいルーティングとなる。
【0019】
他の実施例では、ポート・ルータ400が、システム・ソフトウェアの干渉を必要とすることなく、ルーティング及び再ルーティングが内部的に行われることを可能にする組込ソフトウェアを含むことが好ましい。これにより、自己モニターが可能になり、ポート・ルータ400を通過するデータ・フローに基づく動的な負荷平衡が可能になる。
【0020】
図2に示す本発明の他の実施例では、システム・バス・インタフェースとしての周辺部品相互接続(PCI)バス220、プログラム可能リスト・プロセッサ210、ポート・ルータ230、データ・マックス250、及び複数のFIFO(先入れ先出し)データ・バッファー260を有する、IOコントローラとして利用される集積回路(IC)デバイス200を設ける。また、ポート・ルータ230に1つ又は2つ以上のインタフェース・ポート240を接続することが好ましい。素子のそれぞれが機能的に接続されることにより、データ信号及び制御信号が素子間で伝送されるようにすることが好ましい。
【0021】
インタフェースから受信されるデータは、好ましくはポート240及びポート・ルータ230を経て、特定のFIFO260に向けられることが好ましい。データ・エレメントがFIFO260に受信されると、リスト・プロセッサ210がこれを検討し、その配置を確認することが好ましい。データ・エレメントに対する作用は、インタフェースに対するプロトコル・ルール次第であり、例えば、Ethernet,USB,IEEE−1394等では、それぞれ異なる作用となる。リスト・プロセッサ210に組込まれている制御ソフトウェアが所要の構成を決定することが好ましい。リスト・プロセッサ210は、例えば、下記のように作用することが好ましい。すなわち、データ・エレメントをシステム・メモリへ伝送し、未完のトランザクションを完了させ、エラーをシステムへ伝送させ、エラーをインタフェースへ伝送させ、インタフェースへ伝送すべきデータを作成する。PCIバス220を介してシステム・メモリとの間で伝送されるデータはすべて、好ましくはデータ・マックス250素子を通過する。システム・メモリからインタフェースへデータ・エレメントを伝送したい場合、PCIバス220を介して受信し、データ・マックス250を通過させ、該当のFIFO260に入力させることが好ましい。システム・メモリからのデータ取出しを開始させたリスト・プロセッサは、インタフェースへ伝送されるように準備し、データ伝送が可能な状態にあるかどうか、インタフェースの状態をモニターすることが好ましい。もしインタフェースが応答しないか、又は作動不能なら、リスト・プロセッサ210は下記のように作用することが好ましい。すなわち、後で再伝送するためデータを保管、システムへエラーをリポート、等である。
【0022】
リスト・プロセッサ素子210は、ポートとシステム・バスの間のデータ・フローを制御する機能を有するマイクロプロセッサやマイクロコントローラのような、汎用コンピュート・エンジンの特性の多くを有することが好ましい。リスト・プロセッサ素子210は、好ましくはROMに固定されているか、より好ましくはダウンロードされているソフトウェアを実行する。ソフトウェアは、好ましくはインタフェースに関するプロトコルの定義、典型的には、工業規格に従って書き込まれる。プライベート・インタフェース規格に基づくソフトウェアを使用することもできることが好ましい。例えば、プロトコルによる規定上、システムがデータ・エレメントを送信し、データが正しく受信されたとの確認を受信しなければならない場合、リスト・プロセッサ素子は、確認の受信を想定し、確認が受信されない場合には、再送信を開始するか、又はシステムへエラーを送信するソフトウェア制御構造を有する。具体的な作用内容は、プロトコル定義のルール次第である。
【0023】
システム・バス120は、例えば、PCI−X,Infiniband,VMEバス、HubLink等のようなマルチマスター・バス構造をも含むことができる。これらオペレーティングシステムに共通の特徴は枚挙段階である。枚挙の段階において、システム・ソフトウェアが、システム・バスに存在するハードウェアを問合わせ、ハードウェアの特徴を記述するデータを作成する。本発明と併用されるオペレーティングシステムは、必要なら再枚挙できることが好ましい。
【0024】
本発明は、枚挙の段階においてリポートされるデフォルト構成を有する。好ましいデフォルト状態において、リスト・プロセッサ110は、単一のリストを処理するようにプログラムされ、オペレーティングシステムに対して単一のIOコントローラをリポートするように構成されている。また、起動時におけるデフォルト状態が、それまでのパワー・ダウン前から維持されている状態であることが好ましい。
【0025】
動作中、リスト・プロセッサ110は好ましくは、オペレーティングシステムの指令を翻訳し、実行するように機能する。オペレーティングシステムが理解し、あたかも複数の個別IOコントローラ・ハードウェアが存在するかのように作用できるように、仮想コントローラを形成することができる。
IOコントローラのハードウェア記述を修正し、オペレーティングシステムがIOコントローラの再枚挙することをリクエストすることにより、1つ又は2つ以上の新しい仮想IOコントローラを形成又は抹消することができる。新しいIOコントローラの動的形成は、実際の限界(即ち、システム・バス帯域幅、IOコントローラ数の限界等)に達するまで何度でも行うことができる。
【0026】
図3のフロー・ダイヤグラムに示す本発明の方法の一実施例では、現時点のIOコントローラ構成を変更する決定がなされる。この決定はオペレーティングシステム又はIOコントローラ内の(図示しない)モニタリング素子によって行うことができる。現時点のIOコントローラ構成を変更する決定は、例えば、IOコントローラを通過するデータ・フローの増減などのような1つ又は2つ以上の所定条件の存在に基づいて行うことが好ましい。
【0027】
この決定は、例えば、下記判定基準に基づいて行うことが好ましい。周辺デバイスの総帯域幅条件、特定周辺デバイスの帯域幅条件、特定周辺デバイスの待ち時間条件、競合周辺デバイスの存在、周辺デバイスのトポロジー、周辺デバイスの付加又は除去、既存周辺デバイス帯域幅条件の増減、既存周辺デバイス待ち時間条件の増減、等。
【0028】
次いで、IOコントローラの動作を一時的に中断させることが好ましい。IOコントローラに組込まれているデバイスの作用を中断(又は、スリープへの移行)させることにより、データ・フローを止める。次いで、リスト・プロセッサ110を、システムに付加された仮想コントローラのそれぞれについて、1つ又は2つ以上の記述子リストを処理できるようにプログラムすることが好ましい。それまで演算中であった記述子リストは手つかずのままであり、演算が再開されると、新しい記述子リストと一緒に処理される。IOコントローラの構成は、1つ又は2つ以上の仮想コントローラの付加又は抹消を反映するように変更される。好ましくは、IOコントローラと接続しているデバイスを、効率のよいデータ・パスを提供して、IOコントローラを通過するデータ・フローを最適化又は改善する所要の構成となるように再ルーティングする。この再ルーティングは、典型的な方法として、データ・フローを1つ又は2つ以上のIOコントローラ間に分割することによって行われる。
【0029】
再構成が完了すると、IOコントローラを再枚挙するようオペレーティングシステムに対して、リクエストが行われる。仮想コントローラが検知され、どのコントローラにどのデバイスを接続すべきかをオペレーティングシステムが問合わせる。記述子リストが作成され、リスト・プロセッサ110が各記述子リストの処理を開始する。次いで、デバイスは動作を再開することができる。典型的には、オペレーティングシステムによってデバイスが再枚挙される。
【0030】
リスト・プロセッサ110の特徴として、多重記述子リストを同時的に処理できる、いわゆるマルチ・スレッド性が挙げられる。リスト・プロセッサ110が同時的に実行できる代表的な動作としては、下記の動作が挙げられる。システム・メモリーからの取出し、キャッシング(又は、システム・メモリーへのアクセス回数を減らさねばならなくなる前に、記述子を取出すこと)、記述子のバリデーション、データ伝送用IOハードウェアの準備、データ・フロー・プロトコル・エレメントの構成、システム・メモリーとの間のデータ取出し又は供給、除外すべきデータ・フローのモニタリング、完成すべきデータ・フローのモニタリング、記述子の終了、エラーの処理及び一掃、及びオペレーティングシステムへの結果リポート。
【0031】
したがって、本発明の一実施例による、コンピュータ・システムにおいてIOコントローラを通過するデータ・フローを制御する方法は、IOコントローラに必要な構成を決定し、1つ又は2つ以上の記述子リストを処理できるようにIOコントローラを再プログラムし、1つ又は2つ以上の仮想コントローラの付加又は抹消を反映するようにIOコントローラの構成を変更し、IOコントローラを再枚挙し、IOコントローラ及び仮想コントローラのそれぞれについて、1つの記述子リストを処理するステップから成る。枚挙の過程において、1つ又は2つ以上の仮想コントローラを発見し、起動し、そして、IOコントローラによって支持され、且つインタフェース仕様によって定められた全帯域幅を提供することが好ましい。
【0032】
IOコントローラの構成を変更する際には、1つ又は2つ以上の仮想コントローラの存在を示唆する1つ又は2つ以上の新しい構成記述子を作成することが好ましい。インタフェース・ポートからの結線を、効率的なデータ・フローを可能にする所要のルーティング構成となるように、再ルーティングすることが好ましい。IOコントローラに必要な構成の決定と、IOコントローラの構成変更はコンピュータ・システム中のドライバー、又はIOコントローラに組込まれたファームウェアの制御下に行われることが好ましい。IOコントローラの所要構成を決定する際には、IOコントローラの既存構成を、既存の条件に基づいて変更すべきかどうかを判断し、既存条件に基づいてIOコントローラの最適化構成を決定することが好ましい。
【0033】
本発明の他の実施例による、コンピュータ・システムにおいてIOコントローラを通過するデータ・フローを制御する方法は、1つ又は2つ以上の所定条件が存在すると、再構成モードに入り、IOコントローラの所要構成を決定し、1つ又は2つ以上の記述子リストを処理できるようにIOコントローラを再プログラムし、1つ又は2つ以上の仮想コントローラの付加又は抹消を反映するようにIOコントローラの構成を変更し、IOコントローラを再枚挙し、各IOコントローラ及び1つ又は2つ以上の仮想コントローラごとに1つの記述子リストを処理するステップから成る。再構成モードに入る際には、コンピュータ・システムと接続しているデバイスの動作を中断させることが好ましい。所定条件には、IOコントローラを通過するデータ・フローの増減が含まれることが好ましい。
【0034】
第2の態様においては、本発明は、システム・バス・インタフェース、プログラム可能リスト・プロセッサ及びポート・ルータから成る、IOコントローラとして利用される集積回路デバイスに係る。システム・バス・インタフェース、プログラム可能リスト・プロセッサ及びポート・ルータは機能的に接続されることが好ましい。集積回路デバイスは、1つ又は2つ以上の仮想コントローラを付加又は抹消するため再構成でき、仮想コントローラが、集積回路デバイスによって支持される、実質的な全帯域幅を提供することが好ましい。
【0035】
添付図面に沿って本発明の実施例を以上に説明したが、本発明はこれら実施例に制限されるものではなく、当業者なら、本発明の思想と範囲を逸脱することなく、多様な変更を加えることができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態のブロック・ダイヤグラムである。
【図2】 本発明の他の実施形態のブロック・ダイヤグラムである。
【図3】 本発明の方法の一実施形態を説明するフロー・ダイヤグラムである。
【図4】 本発明と併用できるポート・ルータの一実施形態を示すブロック・ダイヤグラムである。
【図5】 本発明と併用できるポート・ルータの他の実施形態を示すブロック・ダイヤグラムである。

Claims (9)

  1. IOコントローラを介して、1つ又は2つ以上のポート・インタフェースからコンピュータ・システムの内部回路へ流れるデータ・フローを制御する方法であって、
    前記IOコントローラの所要構成を決定するステップと、
    1つ又は2つ以上の記述子リストを処理できるように前記IOコントローラを再プログラムするステップと、
    1つ又は2つ以上の仮想コントローラの付加又は抹消を反映するように前記IOコントローラの構成を変更するステップであって、前記変更は残りの1つ又は2つ以上の仮想コントローラの各々を介してデータ・フローを再配分することを特徴とする、ステップと
    前記IOコントローラを再枚挙するステップと、
    前記IOコントローラ及び前記1つ又は2つ以上の仮想コントローラのそれぞれに対応する記述子を処理するステップとを含み、
    ポート・インターフェースは、最大帯域幅を支持し、
    前記1つ又は2つ以上の仮想コントローラは、前記再枚挙の過程において、発見され、起動され、前記ポート・インターフェースによって支持される前記最大帯域幅を提供することを特徴とする前記方法。
  2. 前記IOコントローラの構成を変更するステップとして、前記1つ又は2つ以上の仮想コントローラの存在を示唆する1つ又は2つ以上の新しい構成記述子を作成することを特徴とする請求項1に記載の方法。
  3. 前記IOコントローラへの結線を、所要のルーティング構成となるように再ルートするステップをも含むことを特徴とする請求項1に記載の方法。
  4. 前記IOコントローラの所要構成を決定し、前記コンピュータ・システム中のドライバーによる制御下に、前記IOコントローラの構成を変更することを特徴とする請求項1に記載の方法。
  5. 前記IOコントローラの所要構成を決定し、前記IOコントローラに組込まれたファームウェアによる制御下に、前記IOコントローラの構成を変更することを特徴とする請求項1に記載の方法。
  6. 前記IOコントローラの所要構成を決定するステップが、前記IOコントローラの既存構成を、既存の条件に基づいて変更すべきかどうかを判断し、前記既存の条件に基づいて前記IOコントローラの最適化構成を求めるステップを含むことを特徴とする請求項1に記載の方法。
  7. コンピュータ・システムにおいて、IOコントローラを流れるデータ・フローを制御する方法であって、
    1つ又は2つ以上の所定条件が存在すると、再構成モードに入るステップと、
    前記IOコントローラの所要構成を決定するステップと、
    1つ又は2つ以上の記述子リストを処理できるように前記IOコントローラを再プログラムするステップと、
    1つ又は2つ以上の仮想コントローラの付加又は抹消を反映するように前記IOコントローラの構成を変更するステップであって、前記変更は残りの1つ又は2つ以上の仮想コントローラの各々を介してデータ・フローを再配分することを特徴とする、ステップと
    前記IOコントローラを再枚挙するステップと、
    前記IOコントローラ及び前記1つ又は2つ以上の仮想コントローラのそれぞれに対応する記述子を作成するステップとを含み、
    前記所定条件が、前記IOコントローラを通過するデータ・フローの増減を含むことを特徴とする前記方法。
  8. 再構成モードに入る際に、前記コンピュータ・システムと接続しているデバイスの動作を中断させることを特徴とする請求項に記載の方法。
  9. IOコントローラとして使用される集積回路デバイスであって、
    システム・バス・インタフェースと、
    プログラム可能リスト・プロセッサと、
    ポート・ルータと、
    から成り、
    前記システム・バス・インタフェース、前記プログラム可能リスト・プロセッサ及び前記ポート・ルータが機能的に接続され、
    前記IOコントローラは、1つ又は2つ以上の記述子リストを処理し、
    前記IOコントローラは、1つ又は2つ以上の仮想コントローラの付加又は抹消を反映し、
    前記IOコントローラは、再枚挙され、
    記述子リストは、前記IOコントローラ及び1つ又は2以上の仮想コントローラの各々について処理され、
    1つ又は2つ以上のポート・インターフェースは、最大帯域幅を支持し、
    前記1つ又は2つ以上の仮想コントローラは、前記再枚挙の過程において、発見され、前記1つ又は2つ以上のポート・インターフェースによって支持される前記最大帯域幅を提供することを特徴とする前記集積回路デバイス。
JP2000592732A 1999-01-05 2000-01-05 入出力デバイスを動的に再構成する装置及び方法 Expired - Fee Related JP4606589B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US11477199P 1999-01-05 1999-01-05
US11477299P 1999-01-05 1999-01-05
US60/114,772 1999-01-05
US60/114,771 1999-01-05
US11476799P 1999-01-06 1999-01-06
US60/114,767 1999-01-06
US09/477,591 US6199137B1 (en) 1999-01-05 2000-01-04 Method and device for controlling data flow through an IO controller
US09/477,591 2000-01-04
PCT/US2000/000177 WO2000041074A2 (en) 1999-01-05 2000-01-05 Apparatus and method for dynamically reconfiguring an io device

Publications (3)

Publication Number Publication Date
JP2003532165A JP2003532165A (ja) 2003-10-28
JP2003532165A5 JP2003532165A5 (ja) 2007-02-15
JP4606589B2 true JP4606589B2 (ja) 2011-01-05

Family

ID=27493970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000592732A Expired - Fee Related JP4606589B2 (ja) 1999-01-05 2000-01-05 入出力デバイスを動的に再構成する装置及び方法

Country Status (4)

Country Link
US (1) US6199137B1 (ja)
JP (1) JP4606589B2 (ja)
GB (1) GB2359911B (ja)
WO (1) WO2000041074A2 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6189109B1 (en) * 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6338150B1 (en) * 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6324608B1 (en) * 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6801971B1 (en) * 1999-09-10 2004-10-05 Agere Systems Inc. Method and system for shared bus access
US6519660B1 (en) * 1999-09-28 2003-02-11 International Business Machines Corporation Method, system and program products for determining I/O configuration entropy
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6546450B1 (en) * 1999-12-22 2003-04-08 Intel Corporation Method and apparatus for sharing a universal serial bus device among multiple computers by switching
US6721821B1 (en) * 2000-04-13 2004-04-13 General Dynamics Information Systems Apparatus for electronic data storage
US20020156914A1 (en) * 2000-05-31 2002-10-24 Lo Waichi C. Controller for managing bandwidth in a communications network
US6772320B1 (en) * 2000-11-17 2004-08-03 Intel Corporation Method and computer program for data conversion in a heterogeneous communications network
US20020075860A1 (en) * 2000-12-19 2002-06-20 Young Gene F. High density serverlets utilizing high speed data bus
US7401126B2 (en) 2001-03-23 2008-07-15 Neteffect, Inc. Transaction switch and network interface adapter incorporating same
US7254647B2 (en) * 2001-03-23 2007-08-07 International Business Machines Corporation Network for decreasing transmit link layer core speed
US6839793B2 (en) * 2001-03-28 2005-01-04 Intel Corporation Method and apparatus to maximize bandwidth availability to USB devices
US20020194407A1 (en) * 2001-04-25 2002-12-19 Kim Hyon T. Maintaining fabric device configuration through dynamic reconfiguration
US6438128B1 (en) * 2001-05-08 2002-08-20 International Business Machines Corporation Alternate use of data packet fields to convey information
US6459698B1 (en) * 2001-06-18 2002-10-01 Advanced Micro Devices, Inc. Supporting mapping of layer 3 priorities in an infiniband ™ network
US6973085B1 (en) * 2001-06-18 2005-12-06 Advanced Micro Devices, Inc. Using application headers to determine InfiniBand™ priorities in an InfiniBand™ network
US7860120B1 (en) 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US6970921B1 (en) * 2001-07-27 2005-11-29 3Com Corporation Network interface supporting virtual paths for quality of service
GB2381709A (en) * 2001-10-30 2003-05-07 Graeme Roy Smith Programmable set-top box and home gateway
TW538364B (en) * 2001-12-10 2003-06-21 Via Tech Inc USB control circuit capable of automatically switching paths
US6963932B2 (en) * 2002-01-30 2005-11-08 Intel Corporation Intermediate driver having a fail-over function for a virtual network interface card in a system utilizing Infiniband architecture
US6766405B2 (en) 2002-03-28 2004-07-20 International Business Machines Corporation Accelerated error detection in a bus bridge circuit
EP1532525A1 (en) * 2002-07-15 2005-05-25 Axalto SA Usb device
AU2003281098A1 (en) * 2002-07-15 2004-02-02 Axalto Sa Usb device
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices
US7894480B1 (en) 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7000043B2 (en) * 2002-09-18 2006-02-14 Sun Microsystems, Inc. Methods and apparatus for controlling performance of a communications device
KR100449807B1 (ko) * 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
JP3907609B2 (ja) * 2003-04-30 2007-04-18 株式会社ソニー・コンピュータエンタテインメント ゲーム実行方法、ゲーム機、通信方法および通信装置
US7065601B2 (en) * 2003-06-06 2006-06-20 Stmicroelectronics N.V. Interface for prototyping integrated systems
US7398345B2 (en) * 2003-06-12 2008-07-08 Hewlett-Packard Development Company, L.P. Inter-integrated circuit bus router for providing increased security
US8539096B2 (en) * 2003-09-26 2013-09-17 Lsi Corporation Systems and methods for configuring ports of an SAS domain
WO2005064480A2 (de) * 2003-12-30 2005-07-14 Wibu-Systems Ag Verfahren zum steuern eines datenverarbeitungsgeräts
US7284081B2 (en) * 2004-01-27 2007-10-16 Atmel Corporation Method and system for routing data between USB ports
DE102004057756B4 (de) * 2004-11-30 2009-08-06 Advanced Micro Devices Inc., Sunnyvale USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
TW200642210A (en) 2005-02-08 2006-12-01 Koninkl Philips Electronics Nv Scalable universal serial bus architecture
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US8458280B2 (en) * 2005-04-08 2013-06-04 Intel-Ne, Inc. Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US8189599B2 (en) * 2005-08-23 2012-05-29 Rpx Corporation Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
US7782873B2 (en) * 2005-08-23 2010-08-24 Slt Logic, Llc Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7782905B2 (en) * 2006-01-19 2010-08-24 Intel-Ne, Inc. Apparatus and method for stateless CRC calculation
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US8316156B2 (en) * 2006-02-17 2012-11-20 Intel-Ne, Inc. Method and apparatus for interfacing device drivers to single multi-function adapter
US20070208820A1 (en) * 2006-02-17 2007-09-06 Neteffect, Inc. Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
US8078743B2 (en) * 2006-02-17 2011-12-13 Intel-Ne, Inc. Pipelined processing of RDMA-type network transactions
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems
US8230149B1 (en) 2007-09-26 2012-07-24 Teradici Corporation Method and apparatus for managing a peripheral port of a computer system
US20090296726A1 (en) * 2008-06-03 2009-12-03 Brocade Communications Systems, Inc. ACCESS CONTROL LIST MANAGEMENT IN AN FCoE ENVIRONMENT
US8671228B1 (en) * 2009-10-02 2014-03-11 Qlogic, Corporation System and methods for managing virtual adapter instances
US9135198B2 (en) 2012-10-31 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Methods and structure for serial attached SCSI expanders that self-configure by setting routing attributes of their ports based on SMP requests
US8756345B2 (en) 2012-10-31 2014-06-17 Lsi Corporation Methods and structure for managing protection information with a serial attached SCSI expander
US8904119B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US8904108B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Methods and structure establishing nested Redundant Array of Independent Disks volumes with an expander
US8782292B2 (en) 2012-10-31 2014-07-15 Lsi Corporation Methods and structure for performing a rebuild of a logical volume with a serial attached SCSI expander
US20170168971A1 (en) * 2015-12-15 2017-06-15 Intel IP Corporation Re-enumerating media agnostic devices
CN111610732B (zh) * 2020-04-28 2021-09-24 同方泰德国际科技(北京)有限公司 更换可配置型输入/输出模块的方法、装置及设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939644A (en) * 1983-05-19 1990-07-03 Data General Corporation Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system
US4750113A (en) * 1985-02-28 1988-06-07 Unisys Corporation Dual function I/O controller
DE68927627T2 (de) * 1988-10-24 1997-04-24 Fujitsu Ltd Ein-/Ausgabeverarbeitungssystem für einen virtuellen Rechner
US5548782A (en) * 1993-05-07 1996-08-20 National Semiconductor Corporation Apparatus for preventing transferring of data with peripheral device for period of time in response to connection or disconnection of the device with the apparatus
ATE195027T1 (de) * 1994-02-10 2000-08-15 Elonex I P Holdings Limited Verzeichnis für ein-/ausgangsdecoder
US5655148A (en) * 1994-05-27 1997-08-05 Microsoft Corporation Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information
US5671441A (en) * 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
JP3274604B2 (ja) * 1996-04-26 2002-04-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 周辺デバイスの自動イネーブル方法
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US5964852A (en) * 1996-11-08 1999-10-12 Rockwell International Corporation Programmable data port interface adapter
US6058445A (en) * 1997-05-13 2000-05-02 Micron Electronics, Inc. Data management method for adding or exchanging components on a running computer
US5892928A (en) * 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置

Also Published As

Publication number Publication date
GB0112729D0 (en) 2001-07-18
JP2003532165A (ja) 2003-10-28
WO2000041074A8 (en) 2001-06-21
WO2000041074A3 (en) 2000-11-02
WO2000041074A2 (en) 2000-07-13
GB2359911B (en) 2003-09-24
US6199137B1 (en) 2001-03-06
GB2359911A (en) 2001-09-05

Similar Documents

Publication Publication Date Title
JP4606589B2 (ja) 入出力デバイスを動的に再構成する装置及び方法
US7660937B2 (en) Emulating a USB host controller
CN112543925B (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
US6253334B1 (en) Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6141708A (en) Host bridge configured to mask a portion of peripheral devices coupled to a bus further downstream of the host bridge from a host processor
US6600739B1 (en) Method and apparatus for switching among a plurality of universal serial bus host devices
KR101445434B1 (ko) 가상 인터럽트 모드 인터페이스 및 인터럽트 모드 가상화 방법
US20030093255A1 (en) Hot plug and hot pull system simulation
JP4491765B2 (ja) ポートルータ
US6785760B2 (en) Performance of a PCI-X to infiniband bridge
JP3814535B2 (ja) 入力装置
JPH08180013A (ja) コンピュータシステム、pciバスクロック信号周波数における変化に応答してpciバス装置のコンフィギュレーションレジスタを再構成する方法、およびpciバス装置がpciバスと異なる動作速度を有することをオペレータに通知する方法
JP2000215116A (ja) ユニバ―サル・シリアル・バス・インタプリタ
KR20000006576A (ko) 디지탈데이터처리시스템내의다수의호스트컴퓨터사이에서자원의공유를용이하게하기위한시스템
US20070101016A1 (en) Method for confirming identity of a master node selected to control I/O fabric configuration in a multi-host environment
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
US20230376442A1 (en) Enabling a Multi-Chip Daisy Chain Topology using Peripheral Component Interconnect Express (PCIe)
US5550990A (en) Physical partitioning of logically continuous bus
JP2002539524A (ja) 周辺デバイス割込みを処理するための装置および方法
US7702717B2 (en) Method and apparatus for controlling management agents in a computer system on a packet-switched input/output network
CN1561493A (zh) 多节点系统中硬件事件的聚集
US6173341B1 (en) System and method for configuring adapters in a computer system
US20080005374A1 (en) System and Method for Flexible Multiple Protocols
US7099966B2 (en) Point-to-point electrical loading for a multi-drop bus
JP4359618B2 (ja) コンフィグレーション・レジスター・アクセス方法、設定方法、集積回路部品、コンピューター・システム、製品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100406

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100706

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100706

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: 20100913

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: 20101006

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

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