(57)【要約】【課題】デバイスインタフェースを仮想化する方法を提供する。【解決手段】本発明にかかる方法は、データ処理機構のＯＳのための外部データ通信を提供するプロセッサベースの方法であって、ＯＳ制御外で動作するデータ処理機構の構成要素によってＵＡＲＴインタフェースを仮想化するステップ（５０２）と、各ＵＡＲＴインタフェースを選択されたＯＳと関連付けるステップ（５０４）と、関連付けられたＯＳの標準化されたハードウェアアクセスソフトウェアに対する呼び出しによって、ＵＡＲＴインタフェースと関連付けられたＯＳ間でデータを通信するステップ（５０６）と、ＵＡＲＴインタフェースとデータ処理機構の非ＵＡＲＴ装置との間でデータを通信するステップ（５０８）とを含む。【選択図】図５
2006309764.tif 000002
【特許請求の範囲】
【請求項１】
データ処理機構の１つまたは複数のオペレーティングシステムのための外部データ通信を提供するプロセッサベースの方法であって、
前記オペレーティングシステムの制御外で動作するデータ処理機構の構成要素によって１つまたは複数のユニバーサル非同期レシーバトランスミッタ（ＵＡＲＴ）インタフェースを仮想化するステップ（５０２）と、
前記ＵＡＲＴインタフェースのそれぞれを前記１つまたは複数のオペレーティングシステムから選択されたオペレーティングシステムと関連付けるステップ（５０４）と、
前記関連付けられたオペレーティングシステムの標準化されたハードウェアアクセスソフトウェアに対する呼び出しによって、前記ＵＡＲＴインタフェースと前記関連付けられたオペレーティングシステムとの間でデータを通信するステップ（５０６）と、
前記ＵＡＲＴインタフェースと前記データ処理機構の非ＵＡＲＴ装置との間でデータを通信するステップ（５０８）と
を含む方法。
【請求項２】
前記１つまたは複数のＵＡＲＴインタフェースを仮想化するステップは、前記データ処理機構の管理サービスプロセッサ（３５７）によって前記１つまたは複数のＵＡＲＴインタフェースを仮想化するステップ
を含む請求項１に記載の方法。
【請求項３】
前記ＵＡＲＴインタフェースと非ＵＡＲＴ装置の間でデータを通信するステップは、前記ＵＡＲＴインタフェースと前記管理サービスプロセッサのネットワークインタフェース（４１８）との間でデータを通信するステップ
を含む請求項２に記載の方法。
【請求項４】
前記ＵＡＲＴインタフェース（４１４Ａ〜Ｄ）のそれぞれを前記ネットワークインタフェース（４２０Ａ〜Ｄ）の異なるＴＣＰ／ＩＰソケットにマッピングするステップ
をさらに含む請求項３に記載の方法。
【請求項５】
前記１つまたは複数のＵＡＲＴインタフェースを仮想化するステップは、前記データ処理機構のファームウェア（３２８）によって前記１つまたは複数のＵＡＲＴインタフェースを仮想化するステップ
を含む請求項１に記載の方法。
【請求項６】
前記ＵＡＲＴインタフェースと前記非ＵＡＲＴ装置との間でデータを通信するステップは、前記ＵＡＲＴインタフェースとネットワークインタフェース（２１４、３１６、４１８）の間でデータを通信するステップ
を含む請求項１に記載の方法。
【請求項７】
前記ＵＡＲＴインタフェース（４１４Ａ〜Ｄ）のそれぞれを前記ネットワークインタフェース（４２０Ａ〜Ｄ）の異なるＴＣＰ／ＩＰソケットにマッピングするステップ
をさらに含む請求項６に記載の方法。
【請求項８】
前記ＵＡＲＴインタフェースと前記関連付けられたオペレーティングシステムとの間でデータを通信するステップは、前記ＵＡＲＴインタフェースと前記関連付けられたオペレーティングシステム（１０４）との間でオペレーティングシステムデバッグデータを通信するステップ
を含む請求項１に記載の方法。
【請求項９】
前記ＵＡＲＴインタフェースと前記関連付けられたオペレーティングシステムとの間でオペレーティングシステムデバッグデータを通信するステップは、前記ＵＡＲＴインタフェースと前記関連付けられたオペレーティングシステム（１０４）との間でＷｉｎｄｏｗｓデバッグポートデータを通信するステップ
を含む請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、データ処理に関し、詳細にはデバイスインタフェースの仮想化に関する。
【背景技術】
【０００２】
現代のパーソナルコンピュータ（ＰＣ）は、過去数十年間にわたって多数の技術革新による恩恵を受けてきた。プロセッサ速度を高め、また入出力（Ｉ／Ｏ）バスのデータ転送速度を高めることによって、性能の向上が達成された。入出力速度の向上は、大部分は新しいインタフェース規格の実現（implementation）によって行われてきたが、上位互換性にはＰＣ上に多くのレガシインタフェースを含むことが必要とされる。
【０００３】
ｘ８６プロセッサの世界において、最初の標準入出力インタフェースには、外部周辺装置用のシリアルポートとパラレルポート、プラグインカード用のＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、およびフロッピー（登録商標）ディスクとハードディスク用のＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）インタフェースがあった。現代のＰＣは、さらに、これらのインタフェースのうちのいくつかを含む場合があるが、外部周辺装置用のユニバーサルシリアルバス（ＵＳＢ）とＩＥＥＥ１３９４、カード用のＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、およびハードディスク用の拡張ＩＤＥおよびＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）に着実に移行してきた。様々なハードウェアと環境のために、携帯型コンピュータ用のＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）装置やビデオカード用のＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｏｒ）バスインタフェースなどの他の専用のインタフェースが開発されてきた。
【０００４】
コンピュータ入出力規格の進歩にもかかわらず、オペレーティングシステムは、相変わらず周知の汎用インタフェースにアクセスしなければならない場合がある。そのような汎用インタフェースは、多くの環境下で安全に使用することができる最小公分母のインタフェースである。例えば、多くのオペレーティングシステムのカーネルは、双方向カーネルポートに対して読み書きする。これらのポートに対するアクセスは、コンソール装置によって提供されることがある。従来、そのようなコンソール装置は、コンピュータのシリアルポートに接続された「ダム」端末であった。そのようなシステムでは、カーネルデバッグ出力などの特定の重要なデータがこの端末に導かれていた。
【０００５】
ダム端末は、通常、ホストマシンのユニバーサル非同期レシーバトランスミッタ（ＵＡＲＴ）に接続される。ＵＡＲＴは、シリアル伝送線でデータを送受信する。ＵＡＲＴは、出力（outgoing）データをシリアル化し、入力（incoming）シリアルデータをバイトに組み立て、それらのバイトをバッファに入れる。一般に使用されている多くのＵＡＲＴは伝送線で非同期で通信するが、例えば両方の通信装置がクロック信号と同期された場合に同期通信する類似の装置が存在する。
【０００６】
カーネルログや他の低レベルの構成要素はＵＡＲＴを利用しており、その理由は、ＵＡＲＴが、単純で信頼性が高くまた幅広くサポートされているためである。カーネルによって使用されるＵＡＲＴソフトウェアは、十分にテストされており、カーネルがパニック状態のときのようなシステム障害の際に動作し続ける可能性が最も高い。最小公分母のビデオインタフェースとキーボードインタフェースがあるが、システム（例えば、サーバ）によっては、モニタとキーボードを接続することは望ましくない。大きいデータセンターでは、例えば、数百台の各マシンのカーネルコンソールにアクセスするために必要な配線とスイッチを含めることが必ずしも実際的であるとは限らない。
【０００７】
多くの場合、カーネルにアクセスする最良の方法は、ＵＡＲＴに接続された端末を使用することである。しかしながら、多くのコンピュータシステムは、同一マシン上で動作するオペレーティングシステムの複数のインスタンスを有することができる。オペレーティングシステムの各インスタンスは、カーネルにアクセスするために、少なくとも１つのＵＡＲＴ上に排他的制御権をもたなければならない。これは、各区分パーティションにＵＡＲＴ装置を提供することによって実現することができるが、そのような解決策は、コスト、必要スペース、および消費電力を高める。密に集められた（densely packed）多くのデータセンターでは、これら３つの要素はすべて貴重である。したがって、ハードウェアのサイズ、コストおよび消費電力を高めることなくコンピュータ上に複数のＵＡＲＴインタフェースを提供することが望ましい。
【発明の開示】
【課題を解決するための手段】
【０００８】
データ処理機構の１つまたは複数のオペレーティングシステムとデータを通信するステップが、オペレーティングシステムの制御外で動作するデータ処理機構の構成要素によって１つまたは複数のユニバーサル非同期レシーバトランスミッタ（ＵＡＲＴ）インタフェースを仮想化するステップを含む。ＵＡＲＴインタフェースはそれぞれ、１つまたは複数のオペレーティングシステムのうちの少なくとも１つのオペレーティングシステムと関連付けられる。データは、関連付けられたオペレーティングシステムの標準化されたソフトウェアに対する呼び出しによって、ＵＡＲＴインタフェースと関連付けられたオペレーティングシステムとの間で通信される。データは、次に、ＵＡＲＴインタフェースとデータ処理機構の非ＵＡＲＴ装置との間で通信される。
【発明を実施するための最良の形態】
【０００９】
様々な実施形態の以下の説明では、説明の一部分を構成しかつ本発明を実施することができる様々な形態を実例として示す添付図面を参照する。本発明の範囲から逸脱することなく構造的および動作的な変更を行うことができるので、他の実施形態を利用できることを理解されたい。
【００１０】
一般に、この開示は、システムファームウェアおよび／またはハードウェアにおける仮想化および／またはＵＡＲＴに関する。仮想ＵＡＲＴは、ネットワークカード、ユニバーサルシリアルバス（ＵＳＢ）アダプタ、ＩＥＥＥ１３９４（ファイヤワイヤ）、無線インタフェースなどの別のデータ転送装置を介してデータを送るために使用することができる。高帯域データ転送装置を使用することによって、多数の低データ転送率端末出力を１つの接続に組み合わせることができる。ＵＡＲＴをこのように仮想化／エミュレートする利点には、不可欠なソフトウエアコンポーネントの下位（backwards）互換、低コスト、および最少の配線を使用したリモートアクセスの提供がある。
【００１１】
多くの計算処理システムが、本発明の実施形態による仮想ＵＡＲＴを利用することによって恩恵を受けることができることを理解されよう。詳細には、単一装置上に複数のシリアルインタフェースを必要とするシステムがこの手法から恩恵を受けることができる。複数のシリアルインタフェースから恩恵を受けることができるシステムの１つのタイプには、区分可能なシステム（ｐａｒｔｉｔｉｏｎａｂｌｅ  ｓｙｓｔｅｍ）がある。区分可能なシステムはノード（またはセル）からなり、区分が個別のジョブに割り振られたサブシステムである。そのようなシステムの各区分は、潜在的に異なるオペレーティングシステムの障害を含むインスタンスを実行する。１つのアクティブな区分には少なくとも１つのデバッグポートがあることがある。
【００１２】
区分されたシステムでは、ファームウェアとＯＳの設定によりポートを割り当てることが難しくなる場合がある。さらに、区分されたシステムの複数のシリアルポートまでの配線の追跡が厄介になる場合がある。このことは、特に、区分を手動または自動で再割り当てしたり再構成したりできるときに当てはまる。それにもかかわらず、区分されたシステムおよび類似の計算機構にＵＡＲＴインタフェースを提供することには多くの利点がある。そのような利点には、互換性と信頼性がある。また、ＯＳは、ＵＡＲＴにアクセスするために既存のレガシドライバを利用することができ、それにより専用のデバイスドライバが不要になる。
【００１３】
複数のハードウェアＵＡＲＴを使用する代わりに、計算処理機構は、仮想ＵＡＲＴインタフェースを使って複数のＵＡＲＴをエミュレートするインタフェースを使用することもできる。コンピュータ科学の分野で使用される仮想という用語は、一般に、コンピュータによってシミュレートされたものに適用される。例えば、仮想記憶は、メモリチップによって提供されずにハードドライブなどの他のデータ記憶装置によって実現される記憶である。用語「仮想」は、その「現実」の等価物を模倣するものを示すために使用されることがある。本明細書で使用されるとき、ＵＡＲＴおよびＵＡＲＴインタフェースに適用される用語「仮想」は、一般に、従来のＵＡＲＴ回路を使用せずにＵＡＲＴアクセスとＵＡＲＴ機能を実現することに関する。仮想ＵＡＲＴインタフェースは、ＵＡＲＴ回路によって提供されるプロセッサインタフェースロジックをエミュレートするが、シリアルラインインタフェースなどの他のＵＡＲＴインタフェースのエミュレーションを必要としない。
【００１４】
本明細書の後でさらに参照するように、仮想化ＵＡＲＴインタフェースとは、非ＵＡＲＴハードウェアまたはソフトウェアによってエミュレートされたＵＡＲＴとプロセッサの間のインタフェースのことを指す。計算処理機構は、オペレーティングシステム（ＯＳ）の制御外で動作する計算処理機構の構成要素によりＵＡＲＴインタフェースを仮想化することができる。
【００１５】
一般に、ＯＳをロードせずに動作することができあるいはオペレーティングシステムがクラッシュしたり再起動したりしたときに動作し続けることができるソフトウェアまたはハードウェア構成要素は、ＯＳに依存せずに動作すると考えることができる。そのような構成要素は、ＯＳがロードされる前に実行することができるＢＩＯＳ／ファームウェアを含むことがある。オペレーティングシステムに依存せずに動作する他の構成要素には、管理サービスプロセッサがある。管理サービスプロセッサは、（例えば、ネットワーク接続を介して）コンピュータをリモートで管理するために使用することができる装置（拡張カードの場合もある）である。サービスプロセッサは、オペレーティングシステムに依存せずに計算処理ハードウェアを制御することができ、したがって、ＢＩＯＳのアップグレード、ＯＳのロード、他のソフトウェアのロード、システムの再起動などの、リモート制御されたサービスタスクを可能にすることができる。
【００１６】
ＯＳに依存しない構成要素によって提供される仮想ＵＡＲＴインタフェースは、ＯＳがカーネルパニックを有するか再起動される場合でも動作しなければならないカーネルデバッギングなどのタスクに使用することができる。仮想ＵＡＲＴインタフェースによって処理されたデータは、ネットワークインタフェースカード（ＮＩＣ）などの別のデータインタフェースによって外部エンティティに転送することができる。
【００１７】
次に図１を参照して、本発明の実施形態による仮想ＵＡＲＴインタフェース１０２を利用する計算処理アーキテクチャ１００を示す。この例の計算処理アーキテクチャ１００は、仮想ＵＡＲＴインタフェース１０２がハードウェアベースのＵＡＲＴであるかのように仮想ＵＡＲＴインタフェース１０２と対話することを可能にするＯＳ１０４を含む。仮想ＵＡＲＴインタフェース１０２は、メモリの一部分がハードウェアベースＵＡＲＴと関連付けられた構造と挙動を提供するように、ＯＳに依存しない構成要素によって制御されたメモリの一部分をマッピングすることにより作成することができる。
【００１８】
ＯＳ１０４に関する限り、仮想ＵＡＲＴインタフェース１０２は、ハードウェアベースのＵＡＲＴと同じに見え、まったく同じように使用することができる。例えば、ＯＳ１０４が、特定バージョンのＷｉｎｄｏｗｓ（登録商標）ＯＳを含む場合、仮想ＵＡＲＴインタフェース１０２は、Ｗｉｎｄｏｗｓデバッグポートとして使用される。Ｗｉｎｄｏｗｓデバッグポートは、Ｗｉｎｄｏｗｓカーネル／ソフトウェアと、ＵＡＲＴに結合された端末装置などのデータ伝送装置との間の双方向データ転送を可能にする。
【００１９】
ＯＳ１０４は、起動時と実行時にファームウェアインタフェース１０６と対話する。システムフォームウェアは、特定のプラットフォーム固有のハードウェア１１２によって動作するように設計されたメモリチップ（例えば、ＥＰＲＯＭ）として含まれることが多い。ファームウェアインタフェース１０６は、ＯＳ１０４の起動時と実行時にファームウェアを介したプラットフォーム固有のハードウェア１１２の様々な部分へのアクセスを容易にする。また、ファームウェア内に１つまたは複数の抽象化層１１０があってもよい。抽象化層１１０は、プラットフォーム固有のハードウェア１１２に特有の機能をカプセル化する。
【００２０】
ファームウェアインタフェース１０６は、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）仕様によって提供されるようなＯＳ１０４とシステムハードウェア１１２間の汎用で拡張可能なインタフェースを含む場合がある。ＥＦＩは、ＯＳローダ、起動サービス、および実行時サービスを提供する。ＥＦＩは、装置のエンドユーザが根本的な実装の心配をすることなくレガシＯＳローダ（例えば、レガシＢＩＯＳコード）を再使用できるようにする抽象化を定義する。また、ＥＦＩ実行時サービスは、実行時にＯＳ１０４によって使用される根本的なハードウェアリソースの抽象化を提供する。
【００２１】
抽象化層１１０は、ハードウェア実装間で異なる場合があるプロセッサ機能とシステム機能に対する均一なアクセスを提供する。Ｉｔａｎｉｕｍ（登録商標）アーキテクチャにおいて、抽象化層１１０は、システム抽象化層（ＳＡＬ）を含む。ＳＡＬは、プラットフォーム固有のハードウェア１１２を初期設定し、テストし、構成する機能を含む。ＳＡＬがアクセスするプラットフォーム固有のハードウェア１１２は、メモリ１１４、入出力サブシステム１１６、ブート装置１１８、および高速データインタフェース１２０などの他のハードウェアを含む。ＯＳ１０４は、ファームウェア抽象化層１１０と対話することができる現在既知または今後開発される任意のＯＳでよい。詳細には、本明細書に示した概念は、ＳＡＬなどの抽象化層１１０と互換性を有するＷｉｎｄｏｗ（登録商標）ＯＳ（例えば、Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ２００３）に適用可能である。さらに、本明細書で説明する概念は、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＆  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）やＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）などの他の抽象化層１１０に適用可能な場合がある。
【００２２】
抽象化層１１０とファームウェアインタフェース１０６は、ＯＳ１０４がシステムハードウェア１１２と対話するための汎用かつ拡張可能な方法を提供する。一般に、システム製造業者は、ＯＳ１０４やハードウェア１１２に影響を及ぼすことなくファームウェア構成要素１０６、１１０を修正することができる。ファームウェアを容易に修正できるので、仮想ＵＡＲＴインタフェース１０２を部分的または完全にファームウェアで実装することができる。
【００２３】
仮想ＵＡＲＴインタフェース１０２は、示したアーキテクチャ１００のハードウェア層とファームウェア層のどちらで実装されてもよい。一般に、仮想ＵＡＲＴインタフェース１０２は、１６５５０互換ＵＡＲＴなどの標準のＵＡＲＴインタフェースとして挙動することによって、ＯＳ１０４による物理アクセスを処理する。そのようなアクセスは、仮想ＵＡＲＴインタフェース１０２によって別のタイプのハードウェアインタフェースに変換される。仮想ＵＡＲＴインタフェース１０２を介してデータを交換するように構成することができるハードウェアには、有線および無線ネットワークインタフェース、有線および無線二地点間インタフェース、不揮発性半導体（solid state）記憶装置、ディスクドライブ、表示装置、ＵＳＢ、ファイヤワイヤ、ファイバチャネルなどがある。例えば、高速データインタフェース１２０には、ＴＣＰ／ＩＰネットワークに結合されたイーサネット（登録商標）カードなどのネットワークインタフェースカードがある。したがって、仮想化ソフトウェアは、仮想化ＵＡＲＴインタフェース１０２へのアクセスをＴＣＰ−ＩＰネットワーク上のソケットベースのアクセスに変換することができる。
【００２４】
仮想ＵＡＲＴインタフェース１０２は、また、ＯＳから受け取ったデータを純粋にソフトウェアで処理するように構成されてもよい。例えば、仮想ＵＡＲＴインタフェース１０２は、エンドユーザがログデータを追跡したくない場合にデータを単純に廃棄するように構成されてもよい。そのような場合、仮想ＵＡＲＴインタフェース１０２は、最低条件を満たすためにヌル（null）装置として働くことができる。別の構成において、仮想ＵＡＲＴインタフェース１０２は、特定のカーネルメッセージを追跡する状態マシンを含むことがある。例えば、仮想ＵＡＲＴインタフェース１０２は、カーネルパニックがないかデバッグテキストをスキャンしてもよい。
【００２５】
仮想ＵＡＲＴインタフェース１０２は、全体または一部分が、計算処理アーキテクチャ１００と関連付けられた任意の帯域外装置１２４に実装されてもよい。帯域外装置１２４は、一般に、ＯＳ１０４に依存せずに動作する装置であるが、ＯＳ実行時にＯＳ１０４とインタフェースする（interface）ことができる。そのような装置１２４は、システムフォームウェア、ハードウェア、アドインハードウェアおよび／または管理サービスプロセッサの一部分でよい。一般に、帯域外装置１２４は、ＯＳ１０４の制御外で動作し、したがってＯＳ１０４に依存しない仮想ＵＡＲＴインタフェース１０２を提供することができる。
【００２６】
図２において、例示の計算処理機構２００は、本発明の実施形態によりＵＡＲＴアクセスをソケットベースのアクセスに変換するために使用される仮想ＵＡＲＴ２０１を含む。仮想ＵＡＲＴ２０１は、図１のＵＡＲＴインタフェース１０２と類似の複数の個別の仮想ＵＡＲＴインタフェース２０２Ａ〜Ｄを含むことができる。仮想ＵＡＲＴ２０１は、必ずしもＵＡＲＴのすべての機能をエミュレートしなくてもよいが、ＵＡＲＴインタフェース２０２Ａ〜Ｄに、それらが実際のＵＡＲＴインタフェースであるかのようにＯＳ２０４Ａ〜Ｃに応答させるために必要な機能だけはエミュレートしなければならない。
【００２７】
ＯＳ２０４Ａ〜Ｃは、それぞれの仮想ＵＡＲＴインタフェース２０２Ａ〜Ｄを個別の物理装置として提示しアクセスすることができる。ＯＳ２０４Ａ〜Ｃは、複数のインタフェース２０２Ａ〜Ｄに同時にアクセスすることができる。ＯＳ２０４Ａ〜Ｃは、１つずつ実行されてもよく（例えば、複数起動システム）、同時に実行してもよい（例えば、区分されたシステム）。ＯＳ２０４ＡＣが同時に実行される場合、仮想ＵＡＲＴインタフェース２０２Ａ〜Ｄは、リソースの競合を防ぐためにＯＳ２０４Ａ〜Ｃに分割されてもよい。
【００２８】
複数のＵＡＲＴインタフェース２０２Ａ〜Ｄによって処理されたデータをより少数の出力データストリーム２０６に組み合わせることができる。これは、例えばＵＡＲＴインタフェース２０２Ａ〜Ｄのすべてからのデータを１つのソケット接続に組み合わせる場合に行われる。そのようなシナリオにおいて、アプリケーションレベルのデータ（例えば、ヘッダ）を、データの特定の部分がＵＡＲＴインタフェース２０２Ａ〜Ｄのどれに属するかを識別するデータに追加することができる。この追加されたデータは、データを個々のＵＡＲＴストリームに分離するために後で使用されることがある。
【００２９】
ＵＡＲＴインタフェース２０２Ａ〜Ｄからのデータをより少数のデータストリーム２０６に組み合わせる構成において、マルチプレクサ／デマルチプレクサ２０８を使用してもよい。マルチプレクサ／デマルチプレクサ２０８は、複数のＵＡＲＴデータストリームをより少数の出力ストリーム２０６に組み合わせ、通信用にストリームから来る組み合わされたデータを適切なＵＡＲＴインタフェース２０２Ａ〜Ｄに分離する。
【００３０】
ＵＡＲＴインタフェース２０２Ａ〜Ｄをデータストリーム２０６に１対１でマッピングする構成では、マルチプレクサ／デマルチプレクサ２０８が必要でないことを理解されよう。これは、例えば、各ＵＡＲＴインタフェース２０２Ａ〜Ｄがそれ自体のＴＣＰ／ＩＰソケット接続にマッピングされる場合に起こることがある。各ＵＡＲＴインタフェース２０２Ａ〜Ｄがそれ自体のＴＣＰ／ＩＰソケット接続を有する場合、ＴＣＰ／ＩＰ処理スタックが多重化／多重分離を行う。
【００３１】
仮想ＵＡＲＴインタフェース２０２Ａ〜Ｄと他のインタフェース間でデータを転送するときは、他のデータ操作が必要なことがある。そのような操作は、トランスレータ構成要素２１０によって実行することができる。トランスレータ２１０は、出力データから制御文字を取り出したり入力データに制御文字を挿入したりするなどのタスクを実行することができる。他のトランスレーションタスクには、バイト内のビット順序とワード内のバイト順序の交換、パッケージ／フレームサイズの調整、シリアルデータ転送状態の管理などがある。
【００３２】
外部データ転送ハードウェアに対応するために、仮想ＵＡＲＴ２０１は、外部リーダー／ライタ構成要素２１２を含むことがある。外部リーダー／ライタ構成要素２１２は、計算処理機構２００の外部でデータを通信するための複数のハードウェアインタフェースに対応するように構成されてもよい。前に述べたように、これらのインタフェースのうちの１つが、ネットワークインタフェース２１４を含むことがある。ネットワークインタフェース２１４には、リモートコンピュータとデータを共有するために使用される任意の既知または将来のハードウェアがある。共通ネットワークインタフェース２１４には、イーサネット（登録商標）、ＦＤＤＩ、ＩＳＤＮ、ＤＳＬ、トークンリング、モデムなどがある。また、様々な通信プロトコルを、ＴＣＰ／ＩＰ、ＵＤＰ／ＩＰ、ＡＴＭ、Ｘ．２５、ＶＰＮ、ＰＰＰなどのネットワークインタフェース２１４と関連付けることができる。ネットワークインタフェース２１４は、計算処理機構２００（例えば、マザーボード）の主処理基板と結合されてもよく、管理サービスプロセッサなどのオペレーティングシステム２０４Ａ〜Ｃに依存せずに動作する装置の一部分でもよい。
【００３３】
リーダー／ライタ２１２は、複数の外部インタフェースを介して通信するように構成されてもよい。これは、汎用データインタフェース２１６と接続経路２１８によって表される。汎用データインタフェース２１６は、追加のネットワークインタフェースや、二地点間回線や放送などの他のデータ転送技術を含むことができる。汎用データインタフェース２１６は、ネットワークインタフェース２１４と並列に動作し、それによりすべてのＵＡＲＴインタフェース２０２Ａ〜Ｄからのデータが、インタフェース２１４と２１６の両方に流れることができる。代替として、ＵＡＲＴインタフェース２０２Ａ〜Ｄの一部分が、ネットワークインタフェース２１４に割り当てられ、残りの部分が汎用インタフェース２１６（および／または追加のインタフェース）に割り当てられてもよい。
【００３４】
仮想ＵＡＲＴ２０１は、一般に、入出力バッファを含む。これは、ＵＡＲＴインタフェース２０２Ａ〜Ｄからの読み取りが、はるかに高いデータ転送速度で行うことができる外部リーダー／ライタ２１２での読み取りによって一杯になるからである。同様に、送信サイズを最適にするために、ＵＡＲＴインタフェース２０２Ａ〜Ｄへの書き込みを集めことができる。例えば、パケット交換網２２４上でネットワークカード２１４を介して送るデータをネットワーク２２４に適したパケット長に集めることができる。
【００３５】
仮想ＵＡＲＴ２０１が、ネットワークインタフェース２１４を介して通信するように構成されているとき、データをネットワーク２２４を介して２２０や２２２などの他のデータ処理機構との間で送受信する（sent/receive）ことができる。データ処理機構２２０は、発信元の計算処理機構２００と類似のハードウェアおよびソフトウェア構成要素を含むことができる。そのような構成要素には、ネットワークインタフェース２２６、汎用インタフェース２２８、マルチプレクサ／デマルチプレクサ２３０、トランスレータ構成要素２３２、および仮想ＵＡＲＴインタフェース２３４があり、これらは、図１のＵＡＲＴインタフェース１０２と類似の機能を提供することができる。データ処理機構２２０が仮想ＵＡＲＴインタフェース２３４を使用しているので、計算処理機構２００と通信するために、シリアルラインで通信することができる当技術分野で既知の任意のソフトウェアを使用することができる。例えば、基本的な端末アプリケーション２３６（例えば、ｘｔｅｒｍｓ）を使用して、何も修正せずに仮想ＵＡＲＴインタフェース２３４を介して通信することができる。また、デバッガクライアントなどの専門のクライアントアプリケーション２３７が、特別な修正なしに仮想ＵＡＲＴインタフェース２３４にアクセスすることができる。
【００３６】
他のデータ処理機構２２２は、また、ネットワークインタフェース２３８を含むが、仮想ＵＡＲＴを必要とせずにデータを交換するために必要なすべての機能に対応する専用クライアントアプリケーション２４０を使用する。専用リーダーアプリケーション２４０は、計算処理機構２００および類似の装置から受け取ったすべてのデータを記憶し、表示し、解析する機能を含むことができる。専門リーダーアプリケーション２４０は、また、計算処理機構２００の１つまたは複数の仮想ＵＡＲＴインタフェース２０２Ａ〜Ｄに向けてコマンドを送る機構を備えてもよい。
【００３７】
次に図３を参照して、本発明の実施形態によりＴＣＰ／ＩＰによって結合された仮想ＵＡＲＴインタフェースを提供する計算処理機構３０２を示す。計算処理機構３０２は、様々な形態のメモリに結合された１つまたは複数のプロセッサ３０４を含む。プロセッサ３０４は、そのようなメモリに記憶されるかまたはそのメモリによって提供される命令を実行するように構成されている。プロセッサがアクセス可能なメモリには、ランダムアクセスメモリ（ＲＡＭ）３０６、読み出し専用メモリ（ＲＯＭ）３０８、ディスクドライブ３１０、光学記憶装置３１２（例えば、ＣＤ−ＲＯＭ、ＤＶＤ）がある。プロセッサ３０４は、また、フロッピーディスク、Ｚｉｐディスク、フラッシュメモリ、ＣＤ−ＲＯＭ／ＣＤ−Ｒ／ＣＤ−ＲＷ、ＤＶＤなどのリムーバブルメディア３１４上で利用可能な記憶域によってデータにアクセスすることができる。プロセッサ３０４は、また、ネットワークインタフェース３１６を介して受け取った命令を実行することができる。
【００３８】
ネットワークインタフェース３１６は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネットなどのグローバルエリアネットワーク（ＧＡＮ）などの任意のデータ転送ネットワークに結合されてもよい。ネットワークインタフェース３１６は、計算処理機構３０２の主処理基板（例えば、マザーボード）、管理サービスプロセッサ３５７、または他の帯域外装置３５５と結合されてもよい。
【００３９】
計算処理機構３０２は、ユーザと対話するためにユーザ入力インタフェース３２０と出力装置３２２（例えば、モニタ）を含んでもよく及び／又はこれらに結合されてもよい。データ処理ハードウェア３０２は、プロセッサ３０４によって実行可能な命令の形で提供されることがあるソフトウェアを含む。一般に、ソフトウェアは、ハードウェア３０２の制御と管理および基本的なシステム操作、ならびにアプリケーションの実行のためのＯＳ３２６を含む。ＯＳ３２６は、任意のタイプのカーネル（例えば、モノリシックカーネル、マイクロカーネル、エクソカーネル（ｅｘｏｋｅｒｎｅｌ）など）と、シェルおよび／またはグラフィカルユーザインタフェース（ＧＵＩ）などのユーザインタフェースソフトウェアを含むことがある。
【００４０】
計算処理機構３０２は、起動時と実行時にハードウェアとプロセッサの機能にアクセスするためにＯＳ／カーネル３２６によって使用されるファームウェア３２８を含む。ファームウェア３２８は、システム起動中に基本的なハードウェアアクセスを提供するための基本入出力システム（ＢＩＯＳ）を含むことができる。ファームウェア３２８は、ＥＦＩインタフェースを有するようなハードウェアアクセスを提供するための優れた特徴を含むことがある。詳細には、ファームウェア３２８は、ＰＣＩ構成インタフェース３３２などの様々なハードウェアインタフェースを抽象化するためのＳＡＬ３３０を含むことができる。
【００４１】
示した構成３０２には、仮想ＵＡＲＴ構成要素３３４が含まれている。仮想ＵＡＲＴ構成要素３３４は、図２の仮想ＵＡＲＴ２０１と類似の特徴を有することができる。仮想ＵＡＲＴ構成要素３３４は、４つの仮想ＵＡＲＴインタフェース３３６、３３８、３４０および３４２を提供する。示した構成要素３３４内の４つの仮想ＵＡＲＴインタフェースの使用は任意であり、構成要素の３３４によっては任意の数の仮想ＵＡＲＴインタフェースが提供されてもよく、インタフェースの数と表記（designation）は静的に決定されても動的に決定されてもよい。
【００４２】
４つの仮想ＵＡＲＴインタフェース３３６、３３８、３４０および３４２はそれぞれ、ネットワークインタフェース３４４を介して、４つのＴＣＰ／ＩＰソケット３４６、３４８、３５０および３５２に直接それぞれマッピングされる。この例では、仮想ＵＡＲＴインタフェース３３６、３３８、３４０、３４２とソケット３４６、３４８、３５０、３５２との間に１対１のマッピングがある。管理端末装置３５６は、計算処理機構３０２とデータを交換するためにＴＣＰ／ＩＰソケット３４６、３４８、３５０および３５２に接続するように構成されている。
【００４３】
示した機構３０２の１つの用途は、複数区分システムの各区分に仮想ＵＡＲＴインタフェースに３３６、３３８、３４０および３４２を提供することである。複数区分システムは、実行する複数のＯＳイメージを有する単一のシステムを含んでもよくかつ／またはブレードサーバシステムなどの単一の複合体／ラック内で動作する複数のコンピュータを含んでもよい。この機構は、各区分が、ＩＰアドレスとＴＣＰポートによって定義された所定のソケットを割り当てられるように構成されてもよい。例えば、区分０はポート２０００で使用可能にされ、区分１はポート２００１で使用可能にされ、区分２はポート２００２で使用可能にされる。
【００４４】
仮想ＵＡＲＴ構成要素３３４は、ハードウェア、ファームウェアおよびソフトウェアの任意の組み合わせで実現することができる。例えば、仮想ＵＡＲＴ構成要素は、ＥＦＩとＳＡＬを使って完全にファームウェアで実現することができる。そのような実施態様において、仮想ＵＡＲＴインタフェース３３６、３３８、３４０および３４２は、周知のＵＡＲＴインタフェース（例えば１６５５０互換）としてＰＣＩコンフィグレーション空間３３２内にあってもよい。
【００４５】
他の構成において、仮想ＵＡＲＴ構成要素３３４は、ハードウェアで実現されてもよい。仮想ＵＡＲＴ構成要素３３４は、管理サービスプロセッサ３５７や他の中間装置などのオペレーティングシステム３２６の制御下にない帯域外装置３５５でホストとして働いてもよい。一般に、管理サービスプロセッサ３５７は、ホストＯＳから独立して動作しまたホストＯＳに依存せずにアクセスすることができる独立に動作する装置（例えば、基板上回路、拡張スロットカード）である。
【００４６】
別の例において、仮想ＵＡＲＴ構成要素３３４は、１つまたは複数のＵＡＲＴとして存在しネットワークインタフェース３１６と物理ネットワークコネクタ（例えば、イーサネットより対線）を含む標準バスインタフェースカード３５８（例えば、ＰＣＩカード）上に提供されてもよい。ＵＡＲＴデータをネットワークデータに変換する機能が、そのようなカード３５８上に全て含まれてもよく、それにより、装置３５８と通信するための専用ＯＳドライバやカーネルソフトウェアは必要ない。
【００４７】
ハードウェア３０２、ファームウェア３２８、仮想ＵＡＲＴ構成要素３３４およびオペレーティングシステム３２６の配列と構成は、図３に関して説明したものと異なってもよいことを理解されよう。本明細書において仮想ＵＡＲＴ構成要素３３４と関連ソフトウェアに関して示した説明が、計算処理機構３０２やその動作環境のいかなる特定の構成にも依存しないことは当業者には明らかであろう。
【００４８】
図４に、本発明の実施形態による仮想ＵＡＲＴを利用することができる装置の特定の例を、区分可能なデータ処理機構４００として示す。この例の機構４００は、４つの区分４０２Ａ〜Ｄを含むが、任意の数の区分を有することができることを理解されよう。各区分４０２Ａ〜Ｄは、その区分４０２Ａ〜Ｄ内でそれぞれ実行するオペレーティングシステム４０４Ａ〜Ｄの関連したインスタンスを有する。
【００４９】
各区分４０２Ａ〜Ｄは、ハードウェアリソースの別々に割り振られた部分を有する。これらのリソースは、１つまたは複数のプロセッサ４０６、メモリ４０８、および入出力装置４１０を含むことができる。区分可能なデータ処理機構４００は、実行する複数のＯＳイメージを有する計算処理機構を含んでもよく、かつ／または機構４００は、ブレードサーバシステムなどの単一の複合体／ラック内で動作する複数のコンピュータを含んでもよい。区分４０２Ａ〜Ｄは、図２の仮想ＵＡＲＴ２０１と類似の能力を有することができるエミュレーション構成要素４１２内に定義／作成されてもよい。エミュレーション構成要素４１２は、ファームウェアまたは専用ハードウェア（例えば、管理サービスプロセッサ）の任意の組み合わせを含むことができる。そのような構成において、エミュレーション構成要素４１２は、区分４０２Ａ〜Ｄ間でハードウェアリソースを分配する。
【００５０】
エミュレーション構成要素４１２は、各区分４０２Ａ〜Ｄとその関連付けられたオペレーティングシステム４０４Ａ〜Ｄに仮想ＵＡＲＴインタフェース４１４Ａ〜Ｄを提供する。仮想ＵＡＲＴインタフェース４１４Ａ〜Ｄはそれぞれ、例えば、オペレーティングシステム４０４Ａ〜Ｄから双方向データを送受信するために使用される。仮想ＵＡＲＴインタフェース４１４Ａ〜Ｄは、エミュレーション構成要素４１２のアドレス空間にマッピングされてもよい。ＴＣＰ／ＩＰアダプタモジュール４１６は、仮想ＵＡＲＴインタフェース４１４Ａ〜Ｄから双方向データを受け取り、そのデータをネットワークインタフェースカード４１８を介して通信するように構成される。ＴＣＰ／ＩＰアダプタモジュール４１６は、エミュレーション構成要素４１２内に実装されてもよい。
【００５１】
ＴＣＰ／ＩＰアダプタモジュール４１６はそれぞれ、各オペレーティングシステム４０４Ａ〜ＤをＴＣＰ／ＩＰソケット４２０Ａ〜Ｄに関連付けるように構成されている。これらのソケット４２０Ａ〜Ｄを使用して、ネットワーク４２２を介して、オペレーティングシステム４０４Ａ〜Ｄと、区分４０２Ａ〜Ｄのそれぞれと関連付けられた双方向データにアクセスするように構成されたクライアント４２４との間で双方向データを交換することができる。一般に、クライアントは、各区分４０２Ａ〜Ｄとオペレーティングシステム４０４Ａ〜Ｄからの双方向データに別々にアクセスすることを可能にする。クライアント４２４は、データを送受信し、ブレークポイントを設定するカーネルデバッガなどのリーダーまたはアプリケーションでよい。
【００５２】
次に図５を参照すると、本発明の実施形態による仮想ＵＡＲＴインタフェースを提供する手順５００を示す。データ処理機構の帯域外構成要素によってＵＡＲＴ（５０２）をエミュレートする１つまたは複数のＵＡＲＴインタフェースが提供される。この帯域外構成要素は、例えば、ファームウェア記憶空間のＵＡＲＴインタフェースとして構成された部分を含む。代替として、構成要素は、ＵＡＲＴインタフェースを仮想化する管理サービスプロセッサを含むことができる。仮想ＵＡＲＴインタフェースは、レガシＵＡＲＴアドレス空間内に実装されてもよく、新しいアドレス空間内に実装された標準ＵＡＲＴインタフェースでもよい。ＯＳは、標準的なアドレス空間内の標準インタフェースとそのアドレス空間内に実装された仮想インタフェースに対応するように構成されてもよい。この実装は、例えば、ファームウェアだけのソリューションによって実現されてもよく、その場合、８バイトのＵＡＲＴアドレス空間が、ＡＣＰＩ内またはファームウェアでエミュレートされたＰＣＩコンフィグレーション空間内に定義される。
【００５３】
それぞれのＵＡＲＴインタフェースをＯＳと関連付ける（５０４）。区分可能なシステムでは、仮想ＵＡＲＴインタフェースがＯＳに１対１でマッピングされることがある。仮想ＵＡＲＴインタフェースとＯＳの他のマッピングも可能である。このマッピングは、例えば、１つまたは複数のＯＳのそれぞれのＯＳからのクエリに応じて仮想ＵＡＲＴインタフェースに対するファームウェアアクセサ（firmware accessor）を提示することによって可能にされる。ＯＳは、関連付けられたＯＳのレガシソフトウェアに対する呼び出しによって、各ＵＡＲＴインタフェースのデータを通信する（５０６）ためのメモリレンジにアクセスすることができる。このレガシソフトウェアは、例えばデバイスドライバや関連付けられたＯＳのカーネルソフトウェアでよい。仮想ＵＡＲＴインタフェースでのデータ転送に応じて、データが、ＵＡＲＴインタフェースとデータ処理機構の非ＵＡＲＴ装置の間で通信される（５０８）。
【００５４】
本明細書に示した説明から、当業者は、適切な一般的な目的で説明したように作成されたハードウェア、および／またはソフトウェアあるいは本発明のシステムおよび／またはコンピュータサブコンポーネントの実施形態を組み合わせ、また本発明の方法の実施形態を実施するシステムおよび／またはコンピュータサブコンポーネントを作成することは容易である。本発明の実施形態は、ハードウェアとソフトウェアの任意の組み合わせで実現することができる。
【００５５】
本発明の実施形態を実現するためのプロセッサベースの命令は、命令のコンピュータ可読媒体の形態や様々な他の形態で配布することができることを理解されよう。そのようなプロセッサベースの命令の本明細書における説明は、配布を行うために実際に使用される信号保持媒体の特定のタイプに関係なく等しく適用される。コンピュータ可読媒体の例には、ＥＰＲＯＭ、ＲＯＭ、テープ、紙、フロッピーディスク、ハードディスクドライブ、ＲＡＭ、ＣＤ−ＲＯＭなどの媒体、およびディジタル通信リンクやアナログ通信リンクなどの伝送型媒体がある。
【００５６】
本発明の実施例の以上の説明は、例示と説明のために示された。この説明は、網羅的なものではなく本発明を開示した厳密な形態に限定するものでもない。以上の教示を鑑みて多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によって限定されず、本発明の範囲が添付された特許請求の範囲によって定義されるものである。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態による仮想ＵＡＲＴアクセスを提供するように構成されたソフトウェアアーキテクチャを示す図である。
【図２】本発明の実施形態による仮想ＵＡＲＴアクセスを利用するように構成されたシステムを示す図である。
【図３】本発明の実施形態による仮想ＵＡＲＴアクセスを提供するように構成された計算処理機構を示す図である。
【図４】本発明の実施形態による仮想ＵＡＲＴアクセスを提供するように構成された区分可能な計算処理機構を示す図である。
【図５】本発明の実施形態による仮想ＵＡＲＴアクセスを提供するための手順を示す図である。
【符号の説明】
【００５８】
１００・・・計算処理アーキテクチャ
１０２・・・仮想ＵＡＲＴインタフェース
１０４・・・オペレーティングシステム
１０６・・・ファームウェアインタフェース
１１０・・・抽象化層
１１２・・・プラットフォーム固有のハードウェア
１１４・・・メモリ
１１６・・・入出力サブシステム
１１８・・・起動装置
１２０・・・高速データインタフェース
１２２・・・プロセッサ（複数可）
１２４・・・帯域外装置
２００・・・計算処理機構
２０１・・・仮想ＵＡＲＴ
２０２Ａ・・・仮想ＵＡＲＴ＿１
２０２Ｂ・・・仮想ＵＡＲＴ＿２
２０２Ｃ・・・仮想ＵＡＲＴ＿３
２０２Ｄ・・・仮想ＵＡＲＴ＿４
２０４Ａ・・・ＯＳ＿Ａ
２０４Ｂ・・・ＯＳ＿Ｂ
２０４Ｃ・・・ＯＳ＿ｎ
２０６・・・出力データストリーム
２０８・・・マルチプレクサ／デマルチプレクサ
２１０・・・トランスレータ
２１２・・・外部リーダー／ライタ
２１４・・・ネットワークインタフェースカード
２１６・・・汎用データインタフェース
２１８・・・接続経路
２２０，２２２・・・データ処理機構
２２４・・・ネットワーク
２２６・・・ネットワークインタフェースカード
２２８・・・汎用インタフェース
２３０・・・マルチプレクサ／デマルチプレクサ
２３２・・・トランスレータ
２３４・・・ＵＡＲＴインタフェース
２３６・・・端末アプリケーション
２３７・・・クライアントアプリケーション
２３８・・・ネットワークインタフェースカード
２４０・・・専用リーダー
３０２・・・計算処理機構
３０４  プロセッサ
３０６・・・ランダムアクセスメモリ
３０８・・・読出し専用メモリ
３１０・・・ディスクドライブ
３１２・・・光学記憶装置
３１４・・・リムーバブル媒体
３１６・・・ネットワークインタフェース
３２０・・・ユーザ入力インタフェース
３２２・・・出力装置
３２６・・・ＯＳ／カーネル
３２８・・・ファームウェア
３３２・・・ＰＣＩコンフィグレーション空間
３３４・・・ＴＣＰ／ＩＰインタフェース
３３６・・・仮想構成要素＿１
３３８・・・仮想構成要素＿２
３４０・・・仮想構成要素＿３
３４２・・・仮想構成要素＿４
３４６，３４８，３５０，３５２・・・ソケット
３５５・・・帯域外装置
３５６・・・管理端末装置
３５７・・・管理サービスプロセッサ
３５８・・・インタフェースカード
４００・・・データ処理機構
４０２Ａ，４０２Ｂ，４０２Ｃ，４０２Ｄ・・・区分
４０４Ａ・・・ＯＳ＿Ａ
４０４Ｂ・・・ＯＳ＿Ｂ
４０４Ｃ・・・ＯＳ＿Ｃ
４０４Ｄ・・・ＯＳ＿Ｄ
４０６・・・プロセッサ
４０８・・・メモリ
４１０・・・入出力装置
４１２・・・エミュレーション構成要素
４１４Ａ・・・仮想ＵＡＲＴ＿１
４１４Ｂ・・・仮想ＵＡＲＴ＿２
４１４Ｃ・・・仮想ＵＡＲＴ＿３
４１４Ｄ・・・仮想ＵＡＲＴ＿４
４１６・・・ＴＣＰ／ＩＰアダプタモジュール
４１８・・・ネットワークインタフェースカード
４２０Ａ・・・ソケット＿Ａ
４２０Ｂ・・・ソケット＿Ｂ
４２０Ｃ・・・ソケット＿Ｃ
４２０Ｄ・・・ソケット＿Ｄ
４２２・・・ネットワーク
４２４・・・クライアント
【図１】
2006309764.tif 000003
【図２】
2006309764.tif 000004
【図３】
2006309764.tif 000005
【図４】
2006309764.tif 000006
【図５】
2006309764.tif 000007