(57)【要約】非存在メモリへのアクセスの転送は、バーチャルバッファに送られる。バーチャルバッファは、ビデオバッファを含まないヘッドレスシステム内に設けることも可能である。コンソール転送は、バーチャルバッファを用いて、ヘッドレスシステムに関する情報を表示することも可能である。直接的なあるいはＢＩＯＳ　ＡＰＩを用いての非存在ビデオハードウェアへのアクセスは、遠隔コンソールにより検索される前にバーチャルバッファに転送される。ヘッドレスシステムは安価であり、付加的なアドインカードを設けることも可能である。何故ならばこのシステムは、ビデオコントローラを含まないからである。
2004506976.tif 000002
【特許請求の範囲】
【請求項１】
バッファを備えている記憶位置と、
前記記憶位置にマップされていないアドレスにアクセスする要求を受取り、この要求を前記バッファに送ることを実行するプログラムと、
を備えるシステム。
【請求項２】
プロセッサをさらに備え、前記システムの電源が投入された場合に、前記プロセッサが前記プログラムを実行する請求項１に記載のシステム。
【請求項３】
前プログラムは、ベーシック入出力システムプログラムである請求項２に記載のシステム。
【請求項４】
第２のシステムをさらに備え、この第２のシステムが、
ディスプレイと、
前記システムを識別し、前記システムの前記バッファに記憶されたデータを検索し、前記データを前記ディスプレイに送ることを実行するプログラムと、
を備える請求項２に記載のシステム。
【請求項５】
前記第２のシステムは、ネットワークにより前記システムに接続される請求項４に記載のシステム。
【請求項６】
ディスプレイと、
バッファを備えている第２のシステムへのコネクションと、
前記第２のシステムを識別し、前記第２のシステムの前記バッファに記憶されたデータを検索し、このデータを前記ディスプレイに送ることを実行するプログラムと、
を備えるシステム。
【請求項７】
前記第２のシステムがビデオバッファを含まない請求項６に記載のシステム。
【請求項８】
前記第２のシステムは、ネットワークにより前記システムに接続される請求項７に記載のシステム。
【請求項９】
第１のプロセッサベースシステムの第１の記憶位置にアクセスする要求を受取るステップと、
前記第１の記憶位置の代わりに第２の記憶位置にアクセスするステップと、
前記第２の記憶位置から第２のプロセッサベースシステムへデータを送るステップと、
を含む方法。
【請求項１０】
前記第２のプロセッサベーシステムのディスプレイに前記データを送るステップをさらに含む請求項９に記載の方法。
【請求項１１】
第１のプロセッサベースシステムの第１の記憶位置にアクセスする要求を受取るステップが、
メモリのアドレスを受取るステップと、
前記アドレスにマップされていない前記メモリの部分を識別するステップと、
をさらに含む請求項９に記載の方法。
【請求項１２】
第１のプロセッサベースシステムにより第２のプロセッサベースシステムの活動を監視するステップと、
前記第１のプロセッサベースシステムにより前記第２のプロセッサベースシステムの記憶位置のデータを検索するステップであって、前記記憶位置がビデオバッファではないステップと、
を含む方法。
【請求項１３】
前記第２のプロセッサベースシステムの活動を監視するステップが、前記記憶位置への書込みを監視するステップをさらに含む請求項１２に記載の方法。
【請求項１４】
前記第１のプロセッサベースシステムのディスプレイに前記データを送るステップをさらに含む請求項１２に記載の方法。
【請求項１５】
ソフトウェアプログラムを記憶している媒体を備える製品であって、
前記ソフトウェアプログラムの実行により、プロセッサベースシステムが、
前記プロセッサベースシステム内の第１の記憶位置にアクセスする要求を受取ること、
第２の記憶位置にアクセスすること、
前記第２の記憶位置から第２のプロセッサベースシステムへデータを送ること、
を可能にする製品。
【請求項１６】
ソフトウェアプログラムをさらに記憶し、該ソフトウェアプログラムの実行により、プロセッサベースシステムが、
前記第２のプロセッサベースシステムのディスプレイに前記データを送ること、
を可能にする請求項１５に記載の製品。
【請求項１７】
ソフトウェアプログラムをさらに記憶し、該ソフトウェアプログラムの実行により、プロセッサベースシステムが、
メモリのアドレスを受取ること、
前記アドレスにマップされていない前記メモリの部分を識別すること、
を可能にする請求項１５に記載の製品。
【請求項１８】
ソフトウェアプログラムを記憶している媒体を備える製品であって、
前記ソフトウェアプログラムの実行により、プロセッサベースシステムが、
前記プロセッサベースシステムにより第２のプロセッサベースシステム内の活動を監視すること、
前記第２のプロセッサベースシステムの記憶位置のデータを検索すること、
を可能にし、前記記憶位置がビデオバッファでない製品。
【請求項１９】
ソフトウェアプログラムをさらに記憶し、該ソフトウェアプログラムの実行により、プロセッサベースシステムがディスプレイにデータを送ることを可能にする請求項１８に記載の製品。
【発明の詳細な説明】
【０００１】
［背景］
本発明は、メモリアドレス指定、より詳細には、メモリアクセスを転送するコンソール転送（ｃｏｎｓｏｌｅ ｒｅｄｉｒｅｃｔｉｏｎ）を行うことに関する。
【０００２】
コンピュータネットワークに接続されているプロセッサベースシステムは、ネットワーク内のその他の構成要素（ｅｎｔｉｔｙ）と通信することができる。ネットワークが急増しているので、玄関の奥の事務所内のコンピュータ、別の都市内のサーバ、あるいは別の都市内のｅメール受信者が、プロセッサベースシステムにアクセス可能になっている。
【０００３】
コンピュータネットワークの管理は、通常、高度のソフトウェアおよび高度に訓練された人員が必要である。さらに、ネットワーク内のいくつかの構成要素は、物理的に中央サイトから遠隔に位置することもあるので、ネットワークの構成要素の遠隔管理が、ネットワーク管理ソフトウェア内で重要になってきている。
【０００４】
コンソール転送は、遠隔管理に対処する１つの方法である。コンソール転送により、ネットワーク管理者などのユーザは、ユーザから物理的に遠隔に位置する場所にある例えば被管理システム（ｍａｎａｇｅｄ ｓｙｓｔｅｍ）などのシステムに関する状態情報を制御および検索することができる。例えば、コンソール転送の間、ユーザがコンピュータシステムのキーを打って入力したものは、被管理システムが受取ることができる。このようにして、遠隔キー入力は、被管理システムのキーボードでキーを打って入力したのと変わりない。同様に、ユーザシステムで動作するソフトウェアまたは被管理システムにより、または両方により、被管理システムへのデータを、例えばディスプレイなどのユーザコンピュータシステムに転送することができる。このようにして、ユーザシステムは、被管理システムの操作と対話しかつ該操作を観測することができる。コンソール転送は、多数の物理的媒体を介して行うことができる。媒体には、例えば標準電話ライン、ローカルエリアネットワーク（ＬＡＮ）ライン、広域ネットワーク（ＷＡＮ）ライン、無線媒体などがある。
【０００５】
しばしば、プロセッサベースシステムは、「ヘッドレス」として構成される。ヘッドレスシステムでは、キーボードもビデオモニタも、システムに接続されていない。このようにして、システムは、遠隔ターミナルからのみアクセスできる。例えば、サーバなどのヘッドレスシステムは、例えばインターネットサービスプロバイダ（ＩＳＰ）に好まれる。何故ならば、より多くのサーバを所定のスペース内に詰込むことができるからである。
【０００６】
コンソール転送の１つの実施形態では、ソフトウェアは、被管理システムのビデオバッファを周期的に走査して、活動を探る。被管理システムのビデオバッファに変化が認められると、更新データがユーザコンピュータシステムのビデオバッファに送信または転送される。ヘッドレスシステムでは、この方法でのコンソール転送が可能である。何故ならば、ヘッドレスシステムでは、ビデオディスプレイは廃止されものの、ビデオバッファが残っているからである。
【０００７】
ヘッドレスシステムでは、ビデオディスプレイが使用されないので、関連ビデオハードウェアも除去することが非常に望ましい。例えば、ビデオサブシステム内には、通常、ビデオグラフィックスアダプタ（ＶＧＡ）コントローラおよび入出力（Ｉ／Ｏ）レジスタがあり、さらに、メモリ内でビデオバッファとして用いられる部分もある。ＶＧＡハードウェアを取除くと、コストの節約に加えて、さらに、ビデオコントローラの代わりにその他のカードをヘッドレスシステムに加えることができる。しかしながら、ビデオバッファが無いと、前述のコンソール転送方法は行えない。
【０００８】
このようにして、ビデオバッファが無い場合にメモリアクセスを転送でき、このようなシステムのためのコンソール転送を提供することが依然として求められている。
【０００９】
［詳細な説明］
本明細書に記載のいくつかの実施形態に開示されている、ヘッドレスシステムを遠隔制御するシステムおよび方法では、ヘッドレスシステムはビデオバッファを含まない。いくつかの実施形態では、ヘッドレスシステムのファームウェアは、存在しないビデオバッファ向けのアクセスを中断または転送する変更を含む。バーチャルビデオバッファが、ヘッドレスシステム内に割当てられている。バーチャルビデオバッファは、ヘッドレスシステムから遠隔に位置するコンソールに送られることもある。これは、１つの実施形態では、公知のコンソール転送方式を用いて行う。このようにして、コンソール転送をヘッドレスシステムで行うのに、ビデオバッファを設けることはしない。このようにして、ヘッドレスシステム内のすべてのＶＧＡコントローラを取除いても、コンソール転送を行うことができる。
【００１０】
図１において、システム１００は、ネットワーク２０に接続されたヘッドレスシステム１０および遠隔コンソール３０を含む。本明細書において、コンソール３０を説明するのに用いる「遠隔」という用語は、ヘッドレスシステム１０に対して定義される。「遠隔」は、コンソール３０が、ヘッドレスシステム１０に直接に接続されていないことを意味する。同様に、ヘッドレスシステム１０は、コンソール３０から遠隔に位置する。
【００１１】
１つの実施形態では、ヘッドレスシステム１０は、例えばメモリなどの記憶位置１２と、ベーシック入出力システム（ＢＩＯＳ）１６とを含むプロセッサベースシステムである。メモリ１２は、例えば動的ランダム・アクセス・メモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、およびスタティックＲＡＭ（ＳＲＡＭ）などのランダム・アクセス・メモリを含んでよい。
【００１２】
ＢＩＯＳ１６は、ファームウェアプログラムである。ＢＩＯＳ１６は、通常、読み取り専用メモリ（ＲＯＭ）またはフラッシュデバイス内にある。図１の実施形態では、ＢＩＯＳ１６は、フラッシュメモリ１７に記憶されている。代替的に、ＢＩＯＳ１６は、その他の不揮発性メモリに記憶されてもよい。このような不揮発性メモリには、消去可能でプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的消去可能でプログラム可能なＰＲＯＭ（ＥＥＰＲＯＭ）などがある。
【００１３】
通常、ＢＩＯＳ１６は、プロセッサベースシステムのコンポーネントの初期化を行う。さらに、ＢＩＯＳ１６は、通常、機能またはアプリケーションプログラミングインターフェース（ＡＰＩ）を含む。ＡＰＩにより、プロセッサベースシステムにロードされているソフトウェアは、システムのハードウェアデバイスにアクセスすることができる。
【００１４】
パーソナルコンピュータ／アドバンスドテクノロジー（ＰＣ／ＡＴ）アーキテクチャでは、ＢＩＯＳは、ＰＣ／ＡＴアーキテクチャハードウェアと通信するための一群のソフトウェア割込み（ＡＰＩ）を含む。例えば、フロッピーディスクドライブまたはハードディスクドライブと通信するために、ソフトウェアプログラムは、「Ｉｎｔ　１３ｈ」機能を供給する。多数のＩｎｔ　１３ｈ機能が、上記ドライブと対話するために起動されることもある。例えば、ディスクから読出す機能、ディスクに書込む機能、ディスクをリセットする機能、ディスクをフォーマットする機能などがある。同様に、ＰＣ／ＡＴシステムのためのＢＩＯＳは、通常、ビデオサブシステムと通信するためのＩｎｔ　１０ｈ　ＡＰＩを含む。Ｉｎｔ　１０ｈ　ＡＰＩは、システム１００にとって重要である。
【００１５】
図１において、ヘッドレスシステム１０は、ネットワーク２０を介して遠隔コンソール３０と通信することができる。ネットワークは、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネットなどである。したがって、ヘッドレスシステム１０および遠隔コンソール３０は、共にネットワーク２０に接続できる能力を含む。すなわち、例えば、遠隔コンソール３０およびヘッドレスシステム１０は、共にネットワークインターフェースカードまたはモデム（図示せず）を有することもある。
【００１６】
遠隔コンソール３０は、ビデオバッファ３２とディスプレイ３４とを含む。ビデオバッファ３２の一部分は、「スクリーンメモリ」として知られている。ビデオバッファ３２は、ディスプレイ３４に現すデータを保持する。このようにして、コンソール転送モードの間、ビデオバッファ３２およびディスプレイ３４は、ヘッドレスシステム１０の「ヘッド」として機能する。遠隔コンソール３４は、コンソール転送ソフトウェア３６をさらに含む。コンソール転送ソフトウェア３６は、ヘッドレスシステム１０内のデータを検索してヘッドレスシステム１０から該データを取出し、ディスプレイ３４に該データを送る。
【００１７】
図１のシステム１００において、ヘッドレスシステム１０は、物理的ビデオバッファを含まないこともある。したがって、１つの実施形態では、バーチャルビデオバッファ１４が、メモリ１２内に割当てられている。例えば、図１の実施形態では、ＢＩＯＳ１６は、バーチャルビデオバッファ１４としてメモリ１２の一部分を識別する。遠隔コンソール３０で動作しているコンソール転送ソフトウェア３６は、ヘッドレスシステム１０内のバーチャルビデオバッファ１４に記憶されているデータを検索してヘッドレスシステム１０から該データを取出し、コンソール転送ソフトウェア３６自身のビデオバッファ３２に該データを記憶させることもある。これによって、ディスプレイ３４が、最終的に該データを受取ることができる。このようにして、遠隔コンソール３０に居るユーザまたは管理者は、ヘッドレスシステム１０に関する構成情報、診断情報またはその他の情報を見ることができる。
【００１８】
ＢＩＯＳ１６が、ヘッドレスシステム１０で実行するただ１つのプログラムである場合がある。この場合、読取り、書込み、またはその他のビデオバッファへのアクセスは、すべてＢＩＯＳ１６によりバーチャルビデオバッファ１４へリルートされる。次いで、バーチャルビデオバッファ１４の内容は、ネットワーク２０を経て、遠隔コンソール３０のビデオバッファ３２へ送られる。
【００１９】
しかしながら、ＢＩＯＳ１６は、ヘッドレスシステム１０で実行するただ１つのプログラムではないこともある。例えば、ヘッドレスシステム１０は、オプションＲＯＭが入っているアドイン（ａｄｄ−ｉｎ）カードを含むこともある。このようなアドインカードには、例えば小型コンピュータシステムインターフェース（ＳＣＳＩ）コントローラ、エンハンスドビデオグラフィックスコントローラ、ゲームアダプタカードなどがある。ヘッドレスシステム１０をオンにしている間、ＢＩＯＳ１６が識別したすべてのオプションＲＯＭが実行される。
【００２０】
したがって、これらのオプションＲＯＭに入っているソフトウェアは、ヘッドレスシステム１０の前記非存在（ｎｏｎ−ｅｘｉｓｔｅｎｔ）スクリーンメモリへの書込み、該スクリーンメモリからの読出しをしようとする。オプションＲＯＭに加えて、ヘッドレスシステム１０は、オンの間に実行できる構成ユーティリティを含むこともある。または、オペレーティングシステムが、ヘッドレスシステム１０にロードされて動作することもある。いったんオペレーティングシステムがロードされると、その他のソフトウェアプログラムも、ヘッドレスシステム１０にロードされて実行することができる。
【００２１】
オペレーティングシステムが動作している間、スクリーン出力は、通常、オペレーティングシステムが画定したＡＰＩにより処理される。例えば、ヘッドレスシステム１０で動作しているオペレーティングシステムが、ビデオバッファは存在しないと判断すると、オペレーティングシステムは、「ダミー」ＶＧＡドライバをロードすることもある。すなわちこの「ダミー」ＶＧＡドライバは、元はヘッドレスシステム１０向けであったスクリーン出力を、遠隔コンソール３０のビデオバッファ３２へ転送する。
【００２２】
オペレーティングシステムがロードされて動作する前に、ヘッドレスシステム１０で動作するプログラムは、直接にビデオハードウェアにアクセスするか、または例えばＩｎｔ　１０ｈなどのＢＩＯＳ　ＡＰＩを用いることがある。このようにして、１つの実施形態では、システム１００は、ビデオハードウェアへ直接にアクセスさせるソフトウェアと、ＢＩＯＳ　ＡＰＩを用いるソフトウェアの両方に対処している。
【００２３】
図２において、メモリ１２のアドレスマップが、ＰＣ／ＡＴアーキテクチャにしたがって示されている。メモリ１２の第１の６４０Ｋは、ベースメモリ５０と呼ばれる。ベースメモリ５０のアドレス指定は、１つの実施形態では、１０個の６４Ｋユニットとして示されている。ＰＣ／ＡＴアーキテクチャにおいて、例えば、底部の６４Ｋ（ユニット５２）は、ＢＩＯＳ割込みのためのアドレスを記憶するためと、構成情報を記憶するために設けられている。
【００２４】
ベースメモリ部分５０に続いて、直ちにビデオメモリ部分６０がＡ００００ｈからＢＦＦＦＦｈまでアドレスされる。
【００２５】
ビデオメモリ６０に隣接するメモリ１２の１２８Ｋ部分は、オプションＲＯＭメモリ５４としてアドレス指定される。同様に、メモリ１２の一部分は、システムＲＯＭメモリ５６としてアドレス指定される。通常、ＢＩＯＳ１６は、システムＲＯＭメモリ５６の一部分である。１メガバイト上でアドレス指定されるメモリは、拡張メモリ５８として知られている。拡張メモリ５８は、システム内のすべての残りのメモリから成る。
【００２６】
１つの実施形態では、ＢＩＯＳ１６は、バーチャルビデオバッファ１４としてメモリ１２の一部分を割当てている。バーチャルビデオバッファ１４は、ベースメモリ５０または拡張メモリ５８の一部分としてアドレス指定されることもある。代替的に、任意の未使用システムＲＯＭアドレススペース５６またはオプションＲＯＭアドレススペース５４は、ＢＩＯＳ１６によりバーチャルビデオバッファ１４として割当てられることもある。
【００２７】
ヘッドレスシステム１４で実行しているプログラムが、Ｉｎｔ　１０ｈ機能またはその他のＡＰＩを用いて前記非存在ビデオバッファにアクセスする場合、１つの実施形態では、ＢＩＯＳ１６がこのようなアクセスをバーチャルビデオバッファ１４に送る（ｒｏｕｔｅ）。１つの実施形態でのＢＩＯＳ１６の動作が、図３のフローチャートに示されている。
【００２８】
ＰＣ／ＡＴアーキテクチャでは、ビデオサブシステムは、いくつかの異なるビデオモードのうちの１つで動作する。ある１つのビデオモードを選択すると、この場合にはバーチャルビデオバッファ１４である、ビデオバッファの内容を表示する仕方が決まる。したがって、１つの実施形態では、ＢＩＯＳ１６は、バーチャルビデオバッファ１４へのすべてのアクセスに対してビデオモード３を選択する。ビデオモード３は、初期化の間にＢＩＯＳ１６のＩｎｔ　１０ｈ機能呼出しを起動することによってセットされる。
【００２９】
１つの実施形態では、ＢＩＯＳ１６は、図１に示すように、バーチャルビデオバッファ１４としてメモリ１２の一部分を割当てる（ブロック２０２）。１つの実施形態では、バーチャルビデオバッファ１４のサイズは、ディスプレイ情報を記憶するのに必要なバイト数を計算することで決定される。例えば、ビデオモード３では、スクリーンは、８０列および２５行であり、１頁当り２バイト用いる。このようにして、少なくとも４０００バイトのバーチャルビデオバッファ１４が、ディスプレイ向けのデータを適切に記憶することができ、例えば、ヘッドレスシステム１０のスクリーンメモリとして動作することができる。
【００３０】
次いで、バーチャルビデオバッファ１４が初期化される（ブロック２０４）。１つの実施形態では、バーチャルビデオバッファ１４のすべての項目は、ＢＩＯＳ１６が「ブランク」として初期化する。ＢＩＯＳ１６は、ビデオ構成パラメータも検索する（ブロック２０６）。図２において、ヘッドレスシステム１０に関する構成情報が、システムメモリ１２の第１の６４Ｋブロック５２に記憶されている。（例えば、ＰＣ／ＡＴシステムでは、構成情報のアドレスは４０：ＸＸである。）
【００３１】
ビデオサブシステムに関する構成パラメータも、構成データブロック５２に記憶されている。このようなパラメータは、カーソルサイズ、カーソル位置、頁番号などを含むこともある。いったんＢＩＯＳ１６がビデオ構成パラメータを検索すると、ＢＩＯＳ１６は、これらの構成パラメータを考慮してバーチャルビデオバッファ１４を更新する（ブロック２０８）。
【００３２】
初期化の間、ＢＩＯＳ１６は、オペレーティングシステムに制御を引渡す前にオプションＲＯＭプログラム、構成ユーティリティ、またはその他のソフトウェアを実行することもある。ＢＩＯＳ１６は、例えばＩｎｔ　１０ｈ機能の呼出しなどのビデオＡＰＩへのアクセスを監視することもある。これは、ソフトウェアプログラムにより行う（菱形ブロック２１０）。ＢＩＯＳ　ＡＰＩが呼出されると、ＢＩＯＳ１６は、この呼出しを中断して代用ＡＰＩ呼出しを実行する。すなわち、この代用ＡＰＩ呼出しでは、バーチャルビデオバッファ１４がアクセスされるのであって、前記非存在ビデオバッファがアクセスされるのではない（ブロック２１２）。例えば、カーソル位置、ページ番号などの適切なビデオ構成パラメータも、更新されることがある（ブロック２１４）。
【００３３】
１つの実施形態では、ＢＩＯＳ１６は、処理できないＡＰＩ要求を無視する。この例には、ビデオモードを切替える呼出し、スクリーンに画素を描く呼出し、フォントテーブルを更新する呼出など、多数ある。
【００３４】
再び図１において、遠隔コンソール３０のコンソール転送ソフトウェア３６は、ヘッドレスシステム１０のバーチャルビデオバッファ１４の内容を検索することもある。次いで、この内容は、ディスプレイ３４に表示するため、遠隔コンソール３０のビデオバッファ３２に記憶される。このようにして、ヘッドレスシステム１０で動作するソフトウェアが表示することになっているすべての情報は、遠隔コンソール３０のディスプレイ３４に表示される。加えて、遠隔コンソール３０のキーボード３８への入力は、ヘッドレスシステム１０が受取ることができる。これは、あたかも、サーバ１０に接続されているキーボードから入力したかのように行われる。
【００３５】
このようにして、ディスプレイ３４上にヘッドレスシステム１０に関する情報のスクリーンを受取ると、遠隔コンソール３０に居るユーザは、キーボード３８を用いてスクリーン情報に応答することができる。次いで、打ったキーの情報は、コンソール転送の公知の実施形態でのように、ヘッドレスシステム１０が受取る。このようにして、システム１００では、ヘッドレスシステム１０との遠隔通信が完全に対話形式で行われる。
【００３６】
図３において、ＢＩＯＳ１６により前記非存在ビデオバッファへのアクセスが可能となる。非存在ビデオバッファは、ＢＩＯＳ　ＡＰＩ（Ｉｎｔ　１０ｈ機能）を起動（ｉｎｖｏｋｅ）して、メモリ１２内のバーチャルビデオバッファ１４にリルート（ｒｅ−ｒｏｕｔｅ）する。しかしながら、いくつかのソフトウェアプログラムは、ビデオメモリに直接にアクセスする。このようなプログラムには、付加的な保護機能が必要である。
【００３７】
例えば、ＢＩＯＳビデオＡＰＩ（Ｉｎｔ　１０ｈ）は、「文字を書く」と呼ばれる機能ＯＥｈを含む。入力パラメータとして、この機能は、書くべき文字のＡＳＣＩＩコードと、文字のフォーグラウンとを受取る。この機能を呼出すと、文字が、現行のスクリーン頁内のカーソルの現行の位置に書かれる。カーソルの現行の位置と、現行のスクリーン頁は、共にメモリの構成データ部分に記憶されている（図２のユニット５２）。
【００３８】
上述したように、ソフトウェアによって機能が起動される場合、ＢＩＯＳ１６は、アクセスを非存在ビデオバッファに適切にリルートする。この様子は前述した。しかしながら、Ｉｎｔ　１０ｈの機能ＯＥｈを起動する代りに、スクリーン上の１つの特定の個所に文字を書くために、ソフトウェアがビデオメモリブロック６０に直接に書くこともある（図２参照）。このような事象が発生している間、図３に示されている変更（ｍｏｄｉｆｉｅｄ）ＢＩＯＳ１６は、無効である。
【００３９】
このようにして、１つの実施形態では、ＢＩＯＳ１６は、ヘッドレスシステム１０のハードウェアを構成して、標準ビデオメモリをいくつかのその他の個所に「マップ」する。換言すれば、アドレスＡ００００ｈ〜ＢＦＦＦＦＦｈは、メモリ１２にマップされるのであって、非存在ビデオハードウェアにマップされるのではない。
【００４０】
図１において、ＢＩＯＳ１６は、メモリ１２に記憶されたアドレス翻訳テーブル１８に接続されている。アドレス翻訳テーブル１８はメモリ１２に記憶されている。１つの実施形態では、アドレス翻訳テーブル１８は、メモリの各部分をマッピングするための項目を含む。ヘッドレスシステム１０の初期化の間、ＢＩＯＳ１６は、アドレス翻訳テーブル１８を検索する。アドレス翻訳テーブル１８を用いて、ＢＩＯＳ１６は、ヘッドレスシステム１０のすべてのメモリ１２をマップする。
【００４１】
１つの実施形態では、アドレス翻訳テーブル１８内の項目は、ビデオバッファ領域以外、すべてのメモリマッピングにおいて同一マッピング（ｉｄｅｎｔｉｔｙ ｍａｐｐｉｎｇ）（入力アドレスと出力アドレスとが同一である）を用いる。ＡＰＩを用いてのビデオバッファ領域へのアクセスおよび非ＡＰＩを用いてのビデオバッファ領域へのアクセスの両方を支援するために、または、直接にビデオバッファ領域（Ａ００００ｈ〜ＢＦＦＦＦｈ）へのアクセスを支援するために、アドレス翻訳テーブル１８は、バーチャルビデオバッファ１６へ２つのアドレス領域をマップする。
【００４２】
バーチャルビデオバッファ１６の２重のアドレス指定が、図４に示されている。プログラム８０ａは、ＡＰＩ呼出しを行って（ブロック８２）、非存在ビデオバッファにアクセスする。例えばＩＮＴ　１０ｈ機能またはその他の割込みなどのＡＰＩは、ビデオバッファ領域Ａ００００ｈ〜ＢＦＦＦｈ以外、アドレスＸとして示されているいくつかのアドレスでバーチャルビデオバッファ１６をアドレス指定することを知っている。
【００４３】
第２のプログラム８０ｂは、例えばアドレスＡＸＸＸＸｈに書くなど、直接に非存在ビデオバッファをアドレス指定する（ブロック８４）。アドレス翻訳テーブル１８は、バーチャルビデオバッファ１６にビデオバッファ領域Ａ００００ｈ〜ＢＦＦＦＦｈをマップする。バーチャルビデオバッファ１６は、例えば、正規メモリの一部分であることもある。バーチャルビデオバッファ１６は、２つの異なるアドレスを用いてアドレス指定するにもかかわらず、プログラム８０ａおよび８０ｂによって適切にアクセスされる。
【００４４】
例えば、オプションＲＯＭに記憶されているプログラムあるいは構成ユーティリティなどのソフトウェアが、非存在ビデオバッファへ書込んだ場合、ハードウェアは、別のアドレスにこれらの書込みを転送する。１つの実施形態では、データを転送する先のアドレスは、バーチャルビデオバッファ１４が配置されているアドレスである。別の１つの実施形態では、別の１つのバーチャルビデオバッファが用いられる。このようにして、あるバーチャルビデオバッファ１４が、ＡＰＩを呼出すソフトウェアのために用いられる。一方、第２のバーチャルビデオバッファが、ビデオメモリ６０に直接にアクセスするソフトウェアのために用いられる。
【００４５】
図５のブロックダイヤグラムは、１つの実施形態に係るシステム１００の構成を示す。図１と同様、ヘッドレスサーバ１０および遠隔コンソール３０は、ネットワークを介して互いに接続されている。
【００４６】
ヘッドレスシステム１０は、ホストバス１０６を介して互いに接続されたプロセッサ１０２およびメモリ１２を含む。プロセッサ１０２は、マイクロプロセッサ、マイクロコントローラ、あるいは任意の適切な制御装置であってよい。メモリ１２は、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、あるいはその他の不揮発性媒体であってよく、システム１０の動作の間、データおよびプログラムを記憶する。
【００４７】
第２のバス１１０に接続させるブリッジ１０８も、ホストバス１０６に接続されている。ホストバス１０６は、フラッシュメモリ１７にさらに接続されている。ＢＩＯＳ１６がフラッシュメモリ１７にロードされている。代替的に、フラッシュメモリ１７はブリッジ１０８に接続してもよい。
【００４８】
ヘッドレスシステム１０は、ネットワークインターフェースカード（ＮＩＣ）１１２を介してネットワーク２０に接続されている。代替的に、ネットワーク２０は、モデム（図示せず）を用いてアクセスしてもよく、または無線接続が設けられてもよい。
【００４９】
遠隔コンソール３０では、プロセッサ１３０およびメモリ１３２も、ホストバス１２８に接続されている。メモリ１３２は、ヘッドレスシステム１０にアクセスするためのコンソール転送ソフトウェア３６を記憶していることもある。ブリッジ１２４は、第２のバス１２２にホストバス１２８を接続する。遠隔コンソール３０は、ネットワーク２０に接続させるためのＮＩＣ１２０を含む。
【００５０】
１つの実施形態では、ブリッジ１２４は多機能装置である。すなわち、この多機能装置は、キーボード３８およびビデオコントローラ１２６を支援することもある。ビデオコントローラ１２６には、例えばＶＧＡコントローラなどがある。ビデオバッファ３２は、ビデオコントローラ１２６に付属している。ＶＧＡコントローラ１２６は、ディスプレイ３４に接続されている。前述の実施形態では、ヘッドレスシステム１０に関する情報がディスプレイ３４で見られる。
【００５１】
このようにして、本明細書に記載の実施形態では、コンソール転送は、ビデオバッファを含まない遠隔ヘッドレスシステムにアクセスするために行われる。ヘッドレスシステムは安価であり、ビデオコントローラを取除くことにより付加的なアドインカードを設けることもできる。直接的なあるいはＢＩＯＳ　ＡＰＩを用いての非存在ビデオハードウェアへのアクセスは、遠隔コンソールにより検索される前に、バーチャルビデオバッファへ転送される。
【００５２】
本発明は、限定された数の実施形態に関連して説明されたが、当業者は、これらの実施形態から多数の変更および変形を得られることが分かる。添付のクレームは、本発明の真の精神および範囲内にあるもとして、すべてのこれらの変更および変形をカバーするものとする。
【図面の簡単な説明】
【図１】
本発明の１つの実施形態に係るシステムのブロックダイヤグラムである。
【図２】
本発明の１つの実施形態に係るメモリマッピングを示すダイヤグラムである。
【図３】
本発明の１つの実施形態に係る図１のＢＩＯＳの動作を示すフローチャートである。
【図４】
本発明の１つの実施形態にしたがってバーチャルビデオバッファをアドレス指定する仕方を示すブロックダイヤグラムである。
【図５】
本発明の１つの実施形態に係るシステムのブロックダイヤグラムである。
【図１】
2004506976.tif 000003
【図２】
2004506976.tif 000004
【図３】
2004506976.tif 000005
【図４】
2004506976.tif 000006
【図５】
2004506976.tif 000007
【国際公開パンフレット】
2004506976.tif 000008
2004506976.tif 000009
2004506976.tif 000010
2004506976.tif 000011
2004506976.tif 000012
2004506976.tif 000013
2004506976.tif 000014
2004506976.tif 000015
2004506976.tif 000016
2004506976.tif 000017
2004506976.tif 000018
2004506976.tif 000019
2004506976.tif 000020
2004506976.tif 000021
2004506976.tif 000022
2004506976.tif 000023
2004506976.tif 000024
2004506976.tif 000025
2004506976.tif 000026
2004506976.tif 000027
2004506976.tif 000028
2004506976.tif 000029
【国際調査報告】
2004506976.tif 000030
2004506976.tif 000031