(57)【特許請求の範囲】
【請求項１】
ランダムアクセスメモリと、不揮発性ランダムアクセスメモリと、フラッシュメモリとを有するネットワークデバイスにおいて、
ネットワークデバイスをネットワークスイッチ／ルータ動作モードで動作させることと、
ネットワークデバイスをネットワークアダプタ動作モードで動作させることと、
デバイス構成信号の受信に応答して、前記ネットワークスイッチ／ルータ動作モードと前記ネットワークアダプタ動作モードとの間で切り換えることを含み、
前記ネットワークスイッチ／ルータ動作モードに切り換えることが、
前記不揮発性ランダムアクセスメモリからブートストラッププログラムをロードすることであって、
前記ブートストラッププログラムが前記フラッシュメモリからオペレーティングシステム・イメージをロードすることと、
ネットワーク構成ファイルをロードし、経路選択テーブル及びその他のスイッチ関連データ構造体を前記ランダムアクセスメモリ内に書き込むことを含み、
前記ネットワークスイッチ／ルータ動作モードに切り換えることが、さらに、
前記ネットワークデバイスの外部ポートをイネーブルにすることと、
前記ネットワークデバイスのための擬似内部ポートを作成し、媒体アクセス制御アドレスを前記擬似内部ポートに割り当てることと、
前記ネットワークデバイス内に常駐する経路選択テーブルを変更することと、
前記ネットワークデバイスが前記スイッチ／ルータ動作にトグルされたことを示す指標を前記ネットワークデバイス内に提供することと
を含む、方法。
【請求項２】
前記ネットワークデバイスが前記スイッチ／ルータ動作モードにトグルされたことを示す指標を前記ネットワークデバイス内に提供することが、前記ネットワークデバイス上に常駐するトグル・レジスタをトグルすること、及び前記ネットワークデバイスの現在の動作モードを有する前記不揮発性ランダムアクセスメモリ内の確保されたスペースをトグルすることのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記ネットワークアダプタ動作モードに切り換えることをさらに含む、請求項１に記載の方法。
【請求項４】
前記ネットワークアダプタ動作モードに切り換えることが、
前記ネットワークデバイスの外部ポートをシャットダウンすることと、
前記ネットワークデバイスの擬似内部ポートをシャットダウンすることと、
前記ネットワークデバイスの内部ポートをイネーブルにすることと、
前記ネットワークデバイスが前記アダプタ動作にトグルされたことを示す指標を前記ネットワークデバイス内に提供することと
を含む、請求項３に記載の方法。
【請求項５】
前記ネットワークデバイスが前記アダプタ動作モードにトグルされたことを示す指標を前記ネットワークデバイス内に提供することが、前記ネットワークデバイス上に常駐するトグル・レジスタをトグルすること、及び前記ネットワークデバイスの現在の動作モードを有する前記不揮発性ランダムアクセスメモリ内の確保されたスペースをトグルすることのうちの少なくとも１つを含む、請求項４に記載の方法。
【請求項６】
ネットワーク装置であって、
プロセッサと、
不揮発性ランダムアクセスメモリと、
内部ポートと外部ポートとの間で切り換えるように構成された複数のポートと、
前記装置をネットワークアダプタ・モードとネットワークスイッチ／ルータ・モードとの間で切り換えるための、前記プロセッサ上に常駐するプロセスと
を含み、
請求項１〜５の何れか１項に記載の方法の各ステップを手段としてコンピュータで実行する、ネットワーク装置。
【請求項７】
請求項１〜５の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク（例えばイーサネット（登録商標））アダプタに関し、より詳細には、ネットワークスイッチとネットワークアダプタとの間で相互切換可能なＮポート・ネットワークアダプタのための方法、システム及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ネットワークアダプタ（ネットワークカード、ＬＡＮアダプタ又はＮＩＣ（ネットワーク・インターフェース・カード）とも呼ばれる）は、コンピュータがコンピュータ・ネットワークを介して通信することを可能にするように設計されたコンピュータ・ハードウェアの１つである。ネットワークスイッチ（ルータ）は、ネットワーク・セグメントを接続するコンピュータ・ネットワーキング・デバイスである。ネットワーク・セグメントは、すべてのデバイスが同じ物理層を用いて通信するコンピュータ・ネットワークの一部分である。物理層を拡張する中継器又はネットワークハブといったデバイスは、セグメントをも拡張すると見なされる。しかしながら、データリンク層レベル又はそれより高次のレベルで動作するデバイスは新たな物理層を生成するので、それゆえセグメントを拡張するというよりはむしろセグメントを生成する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
現在、ネットワークアダプタが接続されたコンピュータに４つのインターフェースを設ける、多くのＮポート・ネットワークアダプタ（特に４ポート・アダプタ）が存在する。しかしながら、ローカルネットワークを構成するためには、ユーザはネットワークスイッチも必要とする。現在、兼用ネットワークアダプタ／ネットワークスイッチは存在しない。従って、兼用ネットワークアダプタ／スイッチを得ることが望ましい。
【課題を解決するための手段】
【０００４】
本発明の実施形態は、ランダムアクセスメモリと、不揮発性ランダムアクセスメモリと、フラッシュメモリとを有するネットワークデバイスにおける方法を含み、この方法は、ネットワークスイッチ／ルータ動作モードで動作することと、ネットワークアダプタ動作モードで動作することと、デバイス構成信号の受信に応答して、ネットワークスイッチ／ルータ動作とネットワークアダプタ動作との間で切り換えることを含む。
【０００５】
さらなる実施形態はネットワーク装置を含み、この装置は、プロセッサと、不揮発性ランダムアクセスメモリと、内部ポートと外部ポートとの間で切り換えられるように構成された複数のポートと、装置をネットワークアダプタ・モードとネットワークスイッチ／ルータ・モードとの間で切り換えるための、プロセッサ上に常駐するプロセスとを含む。
【０００６】
さらなる実施形態は、ランダムアクセスメモリと、不揮発性ランダムアクセスメモリと、フラッシュメモリとを有するネットワークデバイスに動作モードを提供するためのコンピュータプログラムを含み、このコンピュータプログラムは、処理回路が読み取ることができる、方法を行うためにこの処理回路により実行される命令を格納した、有形のストレージ媒体を含み、この方法は、ネットワークスイッチ／ルータ動作モードで動作することと、ネットワークアダプタ動作モードで動作することと、デバイス構成信号の受信に応答して、ネットワークスイッチ／ルータ動作とネットワークアダプタ動作との間で切り換えることとを含む。
【０００７】
本発明の実施形態による他のシステム、方法、及び／又はコンピュータプログラムは、以下の図面及び詳細な説明を検討すれば、当業者には自明であり又は自明となるはずである。このようなさらなるシステム、方法、及び／又はコンピュータプログラムはすべて、本説明に含まれ、本発明の範囲内であり、かつ添付の特許請求の範囲によって保護されることが意図される。
【発明の効果】
【０００８】
要約した発明の結果として、技術上、本発明者らは、相互切換式ネットワークアダプタ／スイッチを単一のデバイスで提供する解決法を達成した。これにより、ユーザは、ソフトウェア又はハードウェアを介して２つの動作モード間で容易に切り換え可能な一体型スイッチ／ルータ及びアダプタ・デバイスを得る。
【０００９】
本発明であるとみなされる主題は、本明細書の結論部にある特許請求の範囲において詳細に示され、かつ明瞭に特許請求されている。本発明の上述した及びその他の対象、特徴、及び利点は、以下の詳細な説明を添付の図面と組み合わせて解釈することによって明らかである。
【図面の簡単な説明】
【００１０】
【図１】例示的な実施形態による相互切換式ネットワークアダプタ／スイッチをサポートするシステムの例示的な実施形態を示す。
【図２】例示的な実施形態によるアダプタとして構成されたＮＩＣカードのシステム図を示す。
【図３】例示的な実施形態によるスイッチ／ルータとして構成されたＮＩＣカードのシステム図を示す。
【図４】例示的な実施形態によるＮＩＣカードにおいてアダプタ動作モードとスイッチ／ルータ動作モードとの間で切り換える方法のフローチャートを示す。
【発明を実施するための形態】
【００１１】
詳細な説明は、図面を参照して、例として本発明の好ましい実施形態を利点及び特徴と共に説明する。
【００１２】
例示的な実施形態は、スイッチ／ルータとしてのＮポート・アダプタ（Ｎ＞１）を含む。例示的な実施形態において、相互切換式Ｎポート・アダプタ／ルータは、通常のアダプタとして、又はスイッチ／ルータ・デバイスとして構成することができる。例示的な実施形態において、２つのモード（すなわち、スイッチ／ルータ及びアダプタ）は、ＮＩＣ（ネットワーク・インターフェース・カード）に割り当てられたソフトウェア属性を介してトグルすることができる。例示的な実施形態において、Ｎポート・アダプタ／ルータは、ＲＥＳＥＴボタンを介して、アダプタ・モードであるデフォルト・モードにリセットすることができる。
【００１３】
図１は、例示的な実施形態による相互切換式ネットワークアダプタ／スイッチをサポートするためのシステム１００の例示的な実施形態を示す。本明細書に記載の方法は、ソフトウェア（例えばファームウェア）、ハードウェア、又はそれらの組合せで実装することができる。例示的な実施形態において、本明細書に記載の方法は、実行可能プログラムとしてソフトウェアで実装することができ、パーソナルコンピュータ、ワークステーション、ミニコンピュータ、又はメインフレームコンピュータのような専用又は汎用デジタルコンピュータによって実行することができる。
【００１４】
例示的な実施形態において、図１に示されるようなハードウェア・アーキテクチャの観点からいえば、コンピュータ１０１は、プロセッサ１０５と、メモリ・コントローラ１１５に結合したメモリ１１０と、ローカル入力／出力（Ｉ／Ｏ）コントローラ１３５を介して通信可能に結合した１つ又は複数の入力／出力デバイス１４０、１４５（又は周辺装置）とを含む。入力／出力コントローラ１３５は、当該分野で公知のように、例えば１つ又は複数のバス又はその他の有線若しくは無線の接続とすることができるが、それらに限定されない。入力／出力コントローラ１３５は、簡略化のために省略しているが、通信を可能にするために、コントローラ、バッファ（キャッシュ）、ドライバ、中継器、及び受信機といった追加要素を含むこともできる。さらに、ローカル・インターフェースは、上記の構成要素間の適切な通信を可能にするために、アドレス、コントロール、及び／又はデータ接続を含むことができる。
【００１５】
プロセッサ１０５は、ソフトウェア、特にメモリ１１０内に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ１０５は、任意のカスタムメード又は市販のプロセッサ、中央処理ユニット（ＣＰＵ）、コンピュータ１０１に連結された幾つかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ（マイクロチップ又はチップセットの形態）、マクロプロセッサ、又はソフトウェア命令を実行する概ねあらゆるデバイスとすることができる。
【００１６】
メモリ１１０は、揮発性メモリ素子（例えば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどのＲＡＭ））及び不揮発性メモリ素子（例えば、ＲＯＭ、消去可能プログラム可能読取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読取り専用メモリ（ＥＥＰＲＯＭ）、プログラム可能読取り専用メモリ（ＰＲＯＭ）、テープ、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、ディスク、ディスケット、カートリッジ、カセットなど）のいずれか１つ又は組合せを含むことができる。さらに、メモリ１１０は、電子的、磁気的、光学的、及び／又は他のタイプのストレージ媒体を組み入れることができる。メモリ１１０は、種々の構成要素が互いに遠隔に位置しているがプロセッサ１０５によってアクセスすることができる、分散型アーキテクチャを有することができることに留意されたい。
【００１７】
メモリ１１０内のソフトウェアは、１つ又は複数の別個のプログラムを含んでいてもよく、その各々が論理関数を実装するための実行可能命令の順序付きリストを含む。図１の例において、メモリ１１０内のソフトウェアは、例示的な実施形態による本明細書に記載の一体型ネットワークアダプタ／スイッチ方法と、適切なオペレーティングシステム（ＯＳ）１１１とを含む。これらの命令は、デバイスドライバであり、この実施形態においてはｅｎｔＸ（Ｘ＝０、１、２．．．）と呼ばれる。しかし、表記法はｅｎｔＸ表記法に限定されず、工業的に準拠されるその他の任意の表記法とすることができる。オペレーティングシステム１１１は他のコンピュータプログラム、例えば本明細書に記載の一体型ネットワークアダプタ／スイッチシステム及び方法の実行を本質的に制御し、スケジューリング、入出力制御、ファイル及びデータ管理、メモリ管理、並びに通信制御及び関連サービスを提供する。
【００１８】
本明細書に記載の一体型ネットワークアダプタ／スイッチ方法（本実施形態においてはｅｎｔＸと呼ばれ、ここでＸ＝０、１．．．である）は、ソース・プログラム、実行可能プログラム（オブジェクト・コード）、スクリプト、又は実行すべき命令のセットを含むいずれかの他のエンティティの形式とすることができる。ソース・プログラムの場合、プログラムは、ＯＳ１１１に関して適正に動作するようにコンパイラ、アセンブラ、インタープリタ等を介して翻訳する必要があり、このコンパイラ、アセンブラ、インタープリタ等はメモリ１１０内に含まれていてもよく、含まれていなくてもよい。さらに、一体型ネットワークアダプタ／スイッチ方法は、データ及び方法のクラスを有するオブジェクト指向プログラミング言語として記述することもでき、又はルーチン、サブルーチン、及び／又は関数を有する手続き型プログラミング言語として記述することもできる。
【００１９】
例示的な実施形態において、従来のキーボート１５０及びマウス１５５を入力／出力コントローラ１３５に結合することができる。Ｉ／Ｏデバイス１４０、１４５のような他の出力デバイスは、例えば、プリンタ、スキャナ、マイクロホンなどを含むがこれらに限定されない入力デバイスを含むことができる。最後に、Ｉ／Ｏデバイス１４０、１４５は、入力と出力の両方を通信するデバイス、例えば、これらに限られないがネットワーク・インターフェース・カード（ＮＩＣ）又は変調器／復調器（他のファイル、デバイス、システム、又はネットワークにアクセスするためのもの）、無線周波数（ＲＦ）又はその他のトランシーバ、電話インターフェース、ブリッジ、ルータなどをさらに含むことができる。システム１００はさらに、ディスプレイ１３０に結合するディスプレイ・コントローラ１２５を含むことができる。例示的な実施形態において、システム１００はさらに、ネットワーク１６５に結合するためのネットワーク・インターフェース１６０を含むことができる。本明細書でさらに説明するように、ネットワーク・インターフェースは一体型ネットワークアダプタ／スイッチとすることができ、これはネットワークアダプタとネットワークスイッチ／ルータとの間で相互切換可能であり、それによりネットワークアダプタ及びネットワークスイッチ／ルータの両方の機能を提供する。ネットワーク１６５は、コンピュータ１０１と外部のサーバ、クライアントなどとの間でブロードバンド接続を介して通信するための、ＩＰベースのネットワークとすることができる。ネットワーク１６５は、コンピュータ１０１と外部システムとの間でデータを送信及び受信する。例示的な実施形態において、ネットワーク１６５は、サービスプロバイダによって運営される管理されたＩＰネットワークとすることができる。ネットワーク１６５は、例えばＷｉＦｉ（登録商標）、ＷｉＭａｘ（登録商標）などのような無線プロトコル及び技術を用いて、無線方式で実装することができる。ネットワーク１６５は、ローカルエリア・ネットワーク、広域ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、又は他の同様のタイプのネットワーク環境のような、パケット交換ネットワークとすることもできる。ネットワーク１６５は、固定無線ネットワーク、無線ローカルエリア・ネットワーク（ＬＡＮ）、無線広域ネットワーク（ＷＡＮ）、パーソナル・エリア・ネットワーク（ＰＡＮ）、仮想私設ネットワーク（ＶＰＮ）、インターネット又は他の適切なネットワークシステムとすることができ、信号を受信及び送信するための機器を含む。
【００２０】
コンピュータ１０１がＰＣ、ワークステーション、又はインテリジェントデバイスなどである場合には、メモリ１１０内のソフトウェアは、さらに基本入出力システム（ＢＩＯＳ）（簡略化のために省略）を含むことができる。ＢＩＯＳは、スタートアップ時にハードウェアを初期化及びテストし、ＯＳ１１１を起動し、ハードウェア・デバイス間のデータの転送をサポートする、基本ソフトウェア・ルーチンのセットである。ＢＩＯＳは、コンピュータ１０１が起動されたときにＢＩＯＳを実行することができるように、ＲＯＭ内に格納されている。
【００２１】
コンピュータ１０１が動作しているとき、プロセッサ１０５は、メモリ１１０内に格納されているソフトウェアを実行して、データをメモリ１１０との間で送受信するように、かつソフトウェアに従ってコンピュータ１０１の動作を一般に制御するように構成されている。本明細書に記載の一体型ネットワークアダプタ／スイッチ方法、及びＯＳ１１１は、全体又は一部が、典型的には一部がプロセッサ１０５によって読み出され、場合によってはプロセッサ１０５内にバッファされ、その後、実行される。
【００２２】
図１に示されるように、本明細書に記載のシステム及び方法がソフトウェアに実装される場合、この方法は、いずれかのコンピュータ関連システム若しくは方法によって又はそれに関連して使用するために、ストレージ１２０のようないずれかのコンピュータ可読媒体上に格納することができる。本明細書の文脈において、コンピュータ可読媒体は、コンピュータプログラムを、コンピュータ関連システム若しくは方法によって又はそれに関連して使用するために収容又は格納することができる、電子的、磁気的、光学的、又はその他の物理的デバイス又は手段である。本明細書に記載の一体型ネットワークアダプタ／スイッチ方法は、命令実行システム、装置、若しくはデバイス、例えば、コンピュータベースのシステム、プロセッサ含有システム、又は、命令実行システム、装置、若しくはデバイスから命令を取り出してその命令を実行することができるその他のシステムによって又はそれに関連して使用するために、いずれかのコンピュータ可読媒体内で具体化することができる。例示的な実施形態において、「コンピュータ可読媒体」は、命令実行システム、装置、若しくはデバイスによって又はそれに関連して使用するためのプログラムを格納、通信、伝搬、又は伝送することができるいずれかの手段とすることができる。コンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体のシステム、装置、デバイス、又は伝搬媒体とすることができるが、これらに限定されない。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）は、以下のものを含む。すなわち、１つ又は複数の電線を含む電気的接続（電子的）、携帯型コンピュータディスケット（磁気的）、ランダムアクセスメモリ（ＲＡＭ）（電子的）、読取り専用メモリ（ＲＯＭ）（電子的）、消去可能プログラム可能読取りメモリ（ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はフラッシュメモリ）（電子的）、光ファイバ（光学的）、及び携帯型コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）（光学的）である。コンピュータ可読媒体は、プログラムをその上に印刷した紙又は他の適切な媒体であることすら可能であることに留意すべきであり、なぜなら、そのプログラムを、例えば紙又は他の媒体を光学的にスキャンすることによって電子的にキャプチャし、次いで必要に応じて適切な方法でコンパイルするか、解釈するか、又はその他の処理を行い、次いでコンピュータメモリ内に格納することができるからである。
【００２３】
一体型ネットワークアダプタ／スイッチ方法がハードウェアに実装される例示的な実施形態において、本明細書に記載の一体型ネットワークアダプタ／スイッチ方法は、各々が当該分野で周知の以下の技術のいずれか又はその組合せによって実装することができる。すなわち、データ信号に対して論理関数を実施する論理ゲートを有する個別の論理回路、適切な組合せ論理回路を有する特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ゲートアレイ（ＰＧＡ）、利用者書込可能ゲートアレイ（ＦＰＧＡ）などである。
【００２４】
上述のように、例示的な実施形態は、Ｎポート・アダプタをスイッチ／ルータとして実装する能力を含む。例示的な実施形態において、ネットワークスイッチ／ルータは少なくとも２つのポートを有するべきなので、Ｎは１より大きい。現在４ポート・アダプタが一般的なので、例証の目的でここでは４ポートのネットワークアダプタについて論じる。しかしながら、他の例示的な実施形態においてＮはいかなる数字とすることもできることが理解される。さらに、「スイッチ」及び「ルータ」という用語は互換的に用いることができることが理解されるが、ここでは議論のために「スイッチ」という用語を用いる。「スイッチ」という用語の使用は、本明細書に記載のシステム及び方法の機能を限定することを意図するものではなく、現在入手可能なスイッチの大部分と同様にルータとスイッチの両方の機能を提供することが認識される。議論を簡単にするために、例示的な相互切換式Ｎポート・アダプタ／スイッチをネットワーク・インターフェース・カード（ＮＩＣ）と呼ぶ。
【００２５】
例示的な実施形態において、本明細書に記載のＮＩＣは、ソフトウェアで構成可能な、１）アダプタ・モード及び２）スイッチ・モードの２つのモードで動作する。ＮＩＣがアダプタ・モードで構成された例示的な実施形態において、ＮＩＣはアダプタとして働き、それゆえ、ＮＩＣが接続されたコンピュータ（例えばコンピュータ１０１）に４つのインターフェースを設ける。図２は、例示的な実施形態によるアダプタとして構成されたＮＩＣカード１６０のシステム図を示す。ＮＩＣカード１６０はコンピュータ１０１に接続されている。当該分野で公知のように、ＮＩＣカード１６０は、ＰＣＩバス１０２を介してコンピュータ１０１に接続することができる。例示的な実施形態において、ＮＩＣカード１６０は、各々がそれぞれのｅｎｔ（すなわち、ｅｎｔ０、ｅｎｔ１、ｅｎｔ２、ｅｎｔ３）にそれぞれ動作可能に結合した４つのポート（すなわち、ポート１、ポート２、ポート３、ポート４）を含む。上述のように、ｅｎｔは、コンピュータ１０１におけるネットワークアダプタのデバイスドライバ・インスタンスである。デバイスドライバはメモリ１１０内で動作する。このインスタンスは、ユーザがネットワークアダプタの状態を確認することができるように、外部からユーザが見ることができる。ネットワークカード／アダプタがコンピュータ１０１に差し込まれるたびに、カードを構成することが必要である。一旦構成されると、ｅｎｔＸエントリはＯＳ１１１から見えるようになり、そのことが、そのネットワークカード／アダプタが検出されたこと、及びユーザによって使用可能であることを示す。ｅｎｔＸがユーザから見えない場合には、アダプタは使用することができない。さらに、ＮＩＣ上の各ポートは、１つ又は複数の外部スイッチ２０５（スイッチ２０５はネットワーク１６５の一部である）に結合することができる。従って、ＮＩＣカード１６０は、現在入手可能な４ポート・アダプタカードと同様の４ポート・アダプタカードとして構成することができることが認識される。ＮＩＣカード１６０は、集合的に１６１で示される、本明細書で説明されるような相互接続ファブリック、フラッシュ及びＮＶＲＡＭをさらに含む。
【００２６】
図３は、例示的な実施形態によるスイッチ／ルータとして構成されたＮＩＣカード１６０のシステム図を示す。図２と同様に、ＮＩＣカード１６０はコンピュータ１０１に接続されている。当該分野で公知のように、ＮＩＣカード１６０は、ＰＣＩバス１０２を介してコンピュータ１０１に接続することができる。例示的な実施形態において、ＮＩＣカード１６０は５つのポート（すわなち、ポート１、ポート２、ポート３、ポート４、ポート５）を含み、その中で単一のポート１がｅｎｔ０に動作可能に結合する。例示的な実施形態において、図示されているようにＮＩＣカード１６０がスイッチ・モードで構成された場合、ＮＩＣカード１６０は、独立したスイッチとして、接続されたコンピュータ（例えばコンピュータ１０１）のためのネットワークアダプタとして働き、その上、４つの利用可能なポート（アップリンクのための１つを含む）を備える。それゆえ、スイッチ・モードでは、ＮＩＣカード１６０は５つのポートを提供し、４つは外部ネットワークデバイス（すなわち、例えば、ワークステーション３０５、外部スイッチ２０５、及びモデム３１０）のための外部ポート（すなわち、ポート２、ポート３、ポート４、ポート５）であり、１つはＮＩＣカード１６０が接続したコンピュータ１０１のための内部ポート（すなわち、ポート１）である。例示的な実施形態において、４つの外部ポートは、製造者が提供したポート毎の媒体アクセス制御（ＭＡＣ）アドレスを含む。さらに、１つの内部ポート（すなわち、ポート１）は自動的に生成されたＭＡＣアドレスを含む。当該分野で公知のように、ＭＡＣアドレスは、大部分のネットワークアダプタ（すなわち、ＮＩＣカード１６０）に付加された擬固有（ｑｕａｓｉ−ｕｎｉｑｕｅ）識別子である。ＭＡＣは、ＮＩＣカード１６０のような個々のネットワークアダプタのための名前のようにふるまう数字である。例えば、２つの異なるコンピュータ（例えば、ワークステーション３０５及びコンピュータ１０１）内のネットワークカードは、同一コンピュータ内のイーサネット（登録商標）アダプタと無線アダプタがそうであるように、及びルータ内の複数のネットワークカードがそうであるように、異なる名前又はＭＡＣアドレスを有する。ＮポートＮＩＣの製造者は、国際ＯＵＩ（Ｏｒｇａｎｉｚａｔｉｏｎａｌ  ｕｎｉｑｕｅ  ｉｄｅｎｔｉｆｉｅｒ）機関によってその製造者に与えられたＭＡＣアドレス・プールから１つのＭＡＣアドレスを別に取っておくことができる。このＭＡＣアドレスは、ＮＩＣがスイッチ・モードにトグルされたときには常に、内部ポート（図３のｅｎｔ０）として用いられる。アダプタ・モードのときには、このＭＡＣアドレスは全く用いられない。あるいは、スイッチは、自動ＭＡＣアドレス・スプーフィング・アルゴリズムを用いてネットワーク内で固有ＭＡＣアドレスを生成することができ、これが内部ポート（図３のｅｎｔ０）に割り当てられる。このアルゴリズムは、ＮＩＣの製造者に与えられたＯＵＩを用いて固有ＭＡＣアドレスを生成する。それゆえ、スイッチ・モードにおいてＮＩＣカード１６０のための仮想アドレスを生成するために、仮想アダプタに適用される任意の利用可能なアルゴリズム又は方法��を実装することができる。例示的な実施形態において、スイッチ・モードのＮＩＣカード１６０は、ＮＩＣカード１６０上のすべてのデバイス（すなわち、ワークステーション３０５、外部スイッチ２０５及びモデム３１０）のためのすべてのＭＡＣアドレスについてのレコードを維持し、これには経路選択の目的のための内部ネットワークポートのＭＡＣアドレスも含まれる。ＮＩＣカード１６０は、集合的に１６１で示される、本明細書で説明されるような相互接続ファブリック、フラッシュ及びＮＶＲＡＭをさらに含む。
【００２７】
例示的な実施形態において、本明細書に記載の例示的なＮＩＣは、アダプタ・モードからスイッチ・モードに、及びその逆にトグルするためのソフトウェア属性（例えば、デバイス構成信号）を含む。さらに、ＮＩＣは、（例えば、ＮＩＣカード上のＲＥＳＥＴホール内にピンを挿入することによって）デフォルト・モードにリセットすることができ、これによりＮＩＣに対するハード・リセットを与え、デフォルト・モードは例示的な実施形態ではアダプタ・モードとすることができる。この種類のハードＲＥＳＥＴ能力は、現在入手可能な利用可能なルータ／スイッチの大部分に備えられた機構と同様の種類であることが認識される。例示的な実施形態において、スイッチ・モードに戻すために、ソフトウェア属性が再びスイッチ・モードに設定される。例示的な実施形態において、デフォルト（例えばアダプタモード）へのリセットはソフトウェアで行うこともできる。それゆえ、ソフト・リセットもまた例示的な実施形態において意図されている。
【００２８】
例示的な実施形態において、本明細書に記載の例示的なＮＩＣは、アダプタ及びスイッチ／ルータの両方のためのハードウェア構成要素を含む。例えば、アダプタのためのハードウェア構成要素は、１）パケットをネットワークケーブルに送り出すためのトランシーバ、２）マシンと物理媒体との間の通信が行われている間、余剰データを格納するためのバッファ／ＲＡＭ、３）コンピュータからケーブルへ、及びその逆方向へのデータ変換のためのパラレル−シリアル通信機、及び４）処理のための処理ユニット（ＣＰＵ）を含むがこれらに限定されない。ネットワークスイッチのためのハードウェア構成要素は、１）高速かつ同時にデータ転送するための各ポート間の相互接続ファブリック、２）ブートストラップコードを収容したＲＯＭ（ブートストラップコードは、ＮＩＣがソフトＲＥＳＥＴ又はハードＲＥＳＥＴの際にスイッチ・モードで起動された場合に実行され、これはスイッチ毎にそのスイッチが最初に電源投入されるたびに行われる）、３）再起動の際に保持されるオペレーティングシステム・イメージを収容するフラッシュメモリ、４）経路選択テーブル／実行中の構成（ｒｕｎｎｉｎｇ−ｃｏｎｆｉｇｕｒａｔｉｏｎ）を収容するＲＡＭ、５）各ポートに関連する情報及びスイッチにとって重要な何かそれ以外の情報についての構成ファイルを収容するＮＶＲＡＭ、及び６）処理のための処理ユニット（ＣＰＵ）を含むがこれらに限定されない。さらに、ＮＩＣは追加のハードウェア構成要素を含み、これは、１）スイッチ・ブートストラップ・プログラムのためのＲＯＭ、２）構成ファイルを格納するためのＮＶＲＡＭ、３）オペレーティングシステム・イメージを格納するためのフラッシュメモリ、及び４）ポート間の接続を提供する相互接続ファブリックを含むがこれらに限定されない。
【００２９】
例示的な実施形態において、ＮＩＣはトグル・レジスタ又はＮＶＲＡＭ内のトグル・ストレージをさらに含み、これは、ＮＩＣがアダプタ・モードとスイッチ／ルータ・モードとの間でトグルされたことを示す指標をＮＩＣ内に提供する。ＮＩＣの現在のモードを格納するために、独立したトグル・レジスタ又はＮＶＲＡＭ内の確保されたスペースのいずれかを用いることができ、これは、再起動及び電源オフされても変更されない。上述のように、ＮＩＣのデフォルトはアダプタ・モードとすることができる。さらに上述したように、デバイス構成信号のようなソフトウェア属性がＮＩＣの動作モードを切り換えることができる。他の例示的な実施形態において、ＮＩＣの動作モードを切り換えるために外部ハードウェア・スイッチを実装することもできる。
【００３０】
【表１】
0005385980.tif 000002
*ＮＩＣは経路を選択するために外部ルータ／スイッチに頼ることになることがある
**アダプタ・モード  ＮＩＣが接続されたマシンに対するｅｎｔ０、ｅｎｔ１、ｅｎｔ２、ｅｎｔ３。製造者は個々のポートにＭＡＣアドレスを与える。
**スイッチ・モード  ＮＩＣが接続されたマシンに対するｅｎｔ０であり、これは外部のマシンのための４つの外部ポートに対して自動生成されたＭＡＣアドレスを含む。製造者が提供したＭＡＣアドレスが個別のポートに対して実装される。位置１における外部ポートがスイッチのアドレスを提供する。ポート１へのロギングがスイッチへのアクセスを与える。
【００３１】
例示的な実施形態において、アダプタ・モードからスイッチ・モードにトグルする際にハードウェア及びソフトウェア的要件がある。例示的な実施形態において、アダプタ・モードからスイッチ・モードにトグルする場合には、１）ＮＩＣはＲＡＭをクリアする、２）ＮＩＣはＮＶＲＡＭからブートストラップをロードする、３）ブートストラップはＯＳをフラッシュメモリからロードする、４）ＮＩＣは構成ファイルをロードし、経路選択テーブル及びその他のスイッチ関連データ構造体をＲＡＭ内に書き込む、５）ＮＩＣは、図３に示すように外部デバイスを処理するために４つの外部ポートをイネーブルにする、６）ＮＩＣは擬似内部ポートを作成し、ＭＡＣアドレスをそれに割り当てる、７）ＮＩＣは外部デバイスについて経路選択テーブルを更新するために経路選択テーブルを変更する、８）ＮＩＣはトグル・レジスタを変更する。例示的な実施形態において、スイッチ・モードからアダプタ・モードにトグルする際にハードウェア及びソフトウェア的要件がある。例示的な実施形態において、スイッチ・モードからアダプタ・モードにトグルする場合には、１）ＮＩＣは必要があれば現在の構成をＮＶＲＡＭ内に格納する、２）ＮＩＣはＲＡＭをクリアする、３）ＮＩＣはすべての外部ポートをシャットダウンする、４）ＮＩＣは内部ポートをシャットダウンする、５）ＮＩＣは４つの内部ポートをイネーブルにする、６）ＮＩＣはトグル・レジスタを変更する。
【００３２】
図４は、例示的な実施形態によるＮＩＣカードにおけるアダプタ動作モードとスイッチ／ルータ動作モードとの間での切り換え方法の流れ図を示す。ブロック４０５において、方法４００はユーザがＮＩＣをアダプタ・モードとスイッチ／ルータ・モードとの間でトグルしたかどうかを判断する。ブロック４０５においてユーザがスイッチ／ルータ・モードにトグルした場合、次にブロック４１０において、ＮＩＣはスイッチ／ルータ・モードにブロック４１０で構成され、これは、ブロック４１５においてＲＡＭをクリアすること、ブロック４２０においてＮＶＲＡＭからブートストラップをロードすること、ブロック４２５においてブートストラップがＯＳコピーをフラッシュメモリからロードすること、ブロック４３５において構成ファイルをロードし、経路選択テーブル及びその他のスイッチ関連データ構造体をＲＡＭ内に書き込むこと、ブロック４４０において外部デバイスを処理するために外部ポートをイネーブルにすること、ブロック４４５において擬似内部ポートを作成し、ＭＡＣアドレスをその擬似ポートに割り当てること、ブロック４５０において外部デバイスについての経路選択テーブルを更新するために経路選択テーブルを変更すること、及びブロック４５５において動作モードが変更されたことを示す指標を提供することを含む。例示的な実施形態において、ＮＩＣがアダプタ動作モードとスイッチ／ルータ動作モードとの間でトグルされたことを示す指標は、ＮＩＣ上に常駐するトグル・レジスタをトグルすること、又はＮＶＲＡＭ内に確保されたスペースをトグルすることのいずれかを含む。
【００３３】
図４をさらに参照すると、ブロック４０５においてユーザがアダプタ動作モードにトグルしたと判断された場合、次にブロック４６０において、ＮＩＣはアダプタ動作モードに構成され、これは、ブロック４６５において必要があれば現在の構成をＮＶＲＡＭ内に格納すること、ブロック４７０においてＲＡＭをクリアすること、ブロック４７５においてすべての外部ポートをシャットダウンすること、ブロック４８０において内部ポート（例えばブロック４４５において構成された擬似内部ポート）をシャットダウンすること、ブロック４８５において内部ポートをイネーブルにすること、及びブロック４５５において動作モードが変更されたことを示す指標を提供することを含む。例示的な実施形態においてにおいて、ＮＩＣがアダプタ動作モードとスイッチ／ルータ動作モードとの間でトグルされたことを示す指標は、ＮＩＣ上に常駐するトグル・レジスタをトグルすること、又はＮＶＲＡＭ内に確保されたスペースをトグルすることのいずれかを含む。方法４００はブロック４０５においてこのトグルを監視することが認識される。
【００３４】
例示的な実施形態において、ＮＩＣはさらにデバイスドライバを含む。例示的な実施形態において、トグル・レジスタが変更されるたびに割り込みが発生し、デバイスドライバはそれに応じて変化する。以下、トグル・レジスタが変更されたときにデバイスドライバにおいて実装することができるコード論理の一例を示す。
【００３５】
【表２】
0005385980.tif 000003
【００３６】
本発明の機能は、ソフトウェア、ファームウェア、ハードウェア又はそれらのいくつかの組合せに実装することができる。
【００３７】
一例として、本発明の１つ又は複数の態様は、例えばコンピュータ可読媒体を有する、製品（例えば１つ又は複数のコンピュータプログラム）の中に含めることができる。媒体は、その中に具体化された、例えば、本発明の機能を提供及び促進するためのコンピュータ可読プログラムコード手段を有する。製品はコンピュータシステムの一部として含めることもでき、又は単独で販売することもできる。さらに、マシンが読み取ることができ、本発明の機能を行うためにそのマシンによって実行可能な命令の少なくとも１つのプログラムを有形に具体化する、少なくとも１つのプログラム・ストレージ・デバイスを提供することができる。
【００３８】
本明細書で示す流れ図は単なる例に過ぎない。発明の真意から逸脱することなく、これらの図又はその中に記載されたステップ（若しくは操作）に対する多くの変形が存在し得る。例えば、ステップは異なる順序で行うこともでき、又はステップを追加、削除若しくは変更することもできる。これらの変形すべてが特許請求される発明の一部と見なされる。
【００３９】
上述のように、実施形態はコンピュータに実装されるプロセス及びこれらのプロセスを実行するための装置の形態で具体化することができる。例示的な実施形態において、本発明は、１つ又は複数のネットワーク要素によって実行されるコンピュータプログラム・コードとして具体化される。実施形態は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、又はその他の任意のコンピュータ可読ストレージ媒体のような有形媒体内に具体化された命令を含むコンピュータプログラム・コードを含み、この場合、コンピュータプログラム・コードがコンピュータの中にロードされてそのコンピュータによって実行されたときに、そのコンピュータは本発明を実行するための装置となる。実施形態は、例えば、ストレージ媒体内に格納され、コンピュータの中にロードされ及び／又はコンピュータによって実行されるコンピュータプログラム・コードか、又はある種の伝送媒体を通じて伝送される、例えば電気配線又はケーブルを介して、光ファイバを通じて、若しくは電磁気放射を介して伝送されるコンピュータプログラム・コードを含み、この場合、コンピュータプログラム・コードがコンピュータの中にロードされてそのコンピュータによって実行されたときに、そのコンピュータは本発明を実行するための装置となる。汎用マイクロプロセッサ上に実装される場合、コンピュータプログラム・コードのセグメントは、特定の論理回路を作成するようにマイクロプロセッサを構成する。
【００４０】
本発明を例示的な実施形態を参照して説明してきたが、本発明の真意から逸脱することなく、様々な変更を行うことができること、及び本発明の要素を等価物で置換することができることが当業者には理解されよう。さらに、本発明の本質的な真意から逸脱することなく、個々の状況又は材料を本発明の教示に適合させるように多くの改変を行うことができる。従って、本発明は、本発明を実施するために企図された最良の形態として開示された特定の実施形態に限られるものではないことが意図され、本発明は添付の特許請求の範囲内に入るすべての実施形態を含むことになる。さらに、第１、第２などの用語の使用は、いかなる順序又は重要性をも表すものではなく、第１、第２などの用語は１つの要素を他の要素から区別するために用いられる。さらに、１つの（ａ、ａｎ）などの用語の使用は、量の限定を表すものではなく、言及された項目が少なくとも１つ存在することを表す。
【符号の説明】
【００４１】
１００：システム
１０１：コンピュータ
１３０：ディスプレイ
１４５：Ｉ／Ｏデバイス
１５０：キーボード
１５５：マウス
１６０：ＮＩＣカード
１６１：相互接続ファブリック、フラッシュ及びＮＶＲＡＭ
３０５：ワークステーション
３１０：モデム
【図１】
0005385980.tif 000004
【図２】
0005385980.tif 000005
【図３】
0005385980.tif 000006
【図４】
0005385980.tif 000007