JP3641354B2 - 分散型のコンピュータ・システム - Google Patents
分散型のコンピュータ・システム Download PDFInfo
- Publication number
- JP3641354B2 JP3641354B2 JP22133297A JP22133297A JP3641354B2 JP 3641354 B2 JP3641354 B2 JP 3641354B2 JP 22133297 A JP22133297 A JP 22133297A JP 22133297 A JP22133297 A JP 22133297A JP 3641354 B2 JP3641354 B2 JP 3641354B2
- Authority
- JP
- Japan
- Prior art keywords
- controller
- server
- video
- bus
- processor
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0748—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Digital Computer Display Output (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明は、分散型コンピュータ・システムに関し、更に特定すれば、ホスト・コンピュータ(「ホスト」)であって、当該ホストとは物理的に接続されておらず、このホストから離れた場所に位置する端末からアクセス可能なホストに関するものである。遠隔端末は、ホストのリセットまたは障害処理の間に発生する一連のビデオ画面のような、記憶されている一連のビデオ画面にアクセスすることができる。この一連のビデオ画面は、次に遠隔端末に配置されているコンピュータ管理者による再生が可能である。これらビデオ画面への遠隔アクセスにより、管理者は、ホストのオペレーティング・システムがどのようにリセットに応答するのか、即ち、ホスト・システムが障害を発生した場合の原因として可能性のあるものを判定することができる。ホストには、プリント回路基板(「PCB」)が設けられており、ホストを収容するバックプレーン(backplane)に挿入することができる。PCBは、プロセッサと、ホストへの電力が失われた場合でも前述の一連のビデオ画面を記憶しているメモリとを備えている。
【0002】
【従来の技術】
分散型コンピュータ・システムは、一般的によく知られている。かかるシステムは、多数のコンピュータ・ワークステーション上で実行される(hosted)アプリケーション・プログラム間での通信が可能である。分散型コンピュータ・システムには多数の種類があり、多くの場合、それらの通信能力の地理的範囲によって分類されている。分散型コンピュータ・システムの地理的広さ(geographical breadth)を分類するために用いられる用語には、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、およびワイド・エリア・ネットワーク(WAN)がある。
【0003】
増々普及しつつある分散型コンピュータ・システムの多くは、ファイル・サーバ(「サーバ」)を採用している。ファイルまたはデータは、サーバ内のホストによって管理される。サーバが特に有用なのは、サーバによって、記憶されているファイルに対するワークステーションの高速アクセスが可能になる点にある。したがって、ファイル・サーバは、ファイルを編成(orchestrate)するだけでなく、ファイルの機密保護、ファイル・バックアップ等の保守も行う、オペレーティング・システム・プログラム(普及しているオペレーティング・システムには、例えば、Windows NT(登録商標)がある)に応答するホスト・コンピュータを具現化するものである。
【0004】
サーバ内においてホストの機能を維持することの重要な一面に、ホストから離れた場所からホストを管理すること、より具体的には、物理的にサーバに連結されているワークステーションから離れた場所にあるホストを管理することがあげられる。最近の傾向として、業務に使用するサーバの数が確実に増加している。今日では、サーバは、1カ所に集中させたメインフレームを採用するのではなく、業務実体の各位置毎等のように自由に用いられている。しかしながら、分散した場所に配置された多くのサーバ・ホストを管理するために利用可能な資金は減少しつつある。これらのサーバに置かれているデータは業務には非常に重要であるが、単一のサービス現場からそれらの適正な動作を確保するための手段は、未だに不十分である。管理者が遠隔地にあるサーバ設置現場まで移動して問題を解決するというようなことは、実用的でないだけでなく、サーバのダウンタイム(動作不能時間)に付随する出費は膨大なものとなる。
【0005】
多くのオペレーティング・システム、またはこれらオペレーティング・システムと関連するアプリケーションは、しばしば、バーチャル・ターミナル即ち仮想端末と呼ばれている遠隔地からのホストへのアクセスを許可する。仮想端末は物理的にホストに接続されていないが、ホストの所定の動作の遠隔制御を許している。コンパック・コンピュータ社(Compaq Computer Corp.)から入手可能なCOMPAQ Server Manager/R (登録商標)およびCOMPAQ Insight Manager(登録商標)(「CIM」)のような製品は、単一の遠隔地から分散されたサーバのネットワークを管理する際に付随する問題のいくつかに対処しようとしたものである。これらの製品は、特に、管理者に遠隔サーバの障害を警告し、遠隔地からのサーバのリセットや、サーバ・コンソール上に提供される所定の情報へのアクセスを可能にする。
【0006】
所定のサーバ機能、得に、サーバのネットワーク内における1台以上のサーバをリセットするために必要な機能の遠隔制御を可能にすることは、確かに有益である。サーバの障害によって発生するダウンタイムは、いずれにしても、分散型コンピュータ・システムを動作させる際に生じる恐らく最も高くつく時間である。サーバの障害は、しばしばサーバ・ホストの「クラッシュ」と呼ばれるが、その原因は多数ある。サーバ・ハードウエア、サーバ・オペレーティング・システム、またはサーバ上で実行されるアプリケーション・プログラムに関連するあらゆる数の誤動作や設計フローが、サーバ・クラッシュの要因となり得る。サーバがクラッシュを起こすと、多くの場合ファイル・アクセスが不可能となり、障害の原因が突き止められるまで、業務記録は一時的にアクセス不能となる。
【0007】
【発明が解決しようとする課題】
サーバから離れて位置する管理者が、警告を受け、障害を発生したサーバをリセットする以上の処置を行うことができれば、極めて有益であろう。特に、管理者がサーバの障害原因を判定し、彼/彼女が、今後の障害発生の前に、それらを防止できるようになれば、有益であろう。障害の防止は、クラッシュしたサーバをリセットすることと同様に重要である。
【0008】
通常、障害の原因は、サーバがクラッシュした時点に、サーバのコンソール上に表示される。更に、リセット時(または「ブート」時)には、サーバ・ホストのハードウエアまたはオペレーティング・システム・ソフトウエアにおける異常を検出することができる。これらの異常は、管理者が対処しなければ、将来の障害に発展する可能性がある。したがって、サーバのリセット中(または障害中)だけでなく、サーバのリセット/障害に至る間にも、サーバ・ホストのコンソール上に表示されるものへのアクセスが得られれば有益である。サーバのコンソール上に表示されるビデオ画面(即ち、一連のビデオ画面)内の情報は、サーバの障害またはリセット時に生成されるが、遠隔地にいる管理者が、既存のサーバの障害または潜在的な障害を判定(および望ましくは解決)するのに、役立つであろう。
【0009】
サーバのリセットまたは障害により発生するビデオ画面は、オペレーティング・システムによってホスト・サーバのコンソール上に表示される一連のビデオ画面の変化、システム基本入出力システム(「BIOS」)、サーバのアプリケーション・プログラム、またはその他のシステム・ソフトウエアから成る。特に、2種類の連続画面変化を捕獲することは、サーバの管理者には特別な関心事であろう。既存の障害または今後の障害を解決するためには、サーバの障害に先だって、かかる一連の画面変化やリセットに続く一連の画面変化を、管理者に与えることは有益であろう。サーバのコンソール上に表示されるサーバ障害画面の例には、マイクロソフト社(Microsoft Corp.)のWindows NT:登録商標)の「ブルー・スクリーンズ(blue screens)」、およびノベル社(Novell Corp.)のnetware(登録商標)のABENDメッセージがあり、これらは、それぞれのオペレーティング・システムがクラッシュしたときに、サーバのコンソール上に現れる。これらの画面は、プロセッサの故障表示(processor fault indicia)、システム・ソフトウエア・ルーチンのアドレス、および関連のあるシステム・メモリの内容のような情報を提供する。サーバのリセット時に、通常、前述のオペレーティング・システムに付随する起動時自己検査(「POST」)コードが幾つかのシステム診断を行い、検出された障害に関する情報を、サーバ・コンソールの画面に表示する。したがって、連続画面を捕獲し、遠隔管理部署においてそれらを再生するための手段が望まれている。
【0010】
ハードウエアおよびソフトウエアの問題に加えて、サーバへの電力が中断した場合にも、サーバは障害を発生する可能性がある。しかしながら、電力が中断した場合は、障害の前に何が起こったのかについての画面変化は全て失われる。したがって、サーバは、サーバへの電力が失われても、リセットおよび障害時の画面変化をセーブするための機構を備えていることが必要である。このようにすることにより、記憶されている画面変化を遠隔地にいる管理者が後日読むことができるので、有益である。このための望ましい機構は、停電の間、画面情報を保持することができる機構であり、該機構内の重要なユニットにのみ選択的に電力を供給することができるものである。したがって、好ましくはサーバのシャーシ内に実装可能なPCB上に実現される機構が必要とされる。このPCBは、ホスト・サーバに接続し、ホストから出力される画面情報を記憶し、サーバへの電力が遮断されたときでも情報を保持する保持媒体を含むことが望ましい。
【0011】
遠隔地およびサーバ間の通信は、Amerian National standards Institute(「ANSI」)の端末エミュレーション・プロトコルのような、業界において一般的に知られている、テキストを基本とする接続プロトコルを通じて行われる。端末エミュレーション・プロトコルはある水準の機能を提供するが、他のプロトコル、即ち、単純なネットワーク管理プロトコル(「SNMP」)、サーバ管理情報の通信用プロトコルのような、アプリケーション・レイヤ・プロトコルを可能にするプロトコルを、サーバおよび遠隔地間の二地点間(「PPP:point-to-point 」)通信リンク上においてサポートすることが望ましい。サーバが、複数の通信プロトコルを用いて遠隔地と通信するためのシステムを実現するPCBを含む場合、遠隔地がサーバと通信する際にサポートするプロトコル(即ち、テキストを基本とするプロトコル、PPP等)のどれを使用しているのかを、PCB上のサブシステムが判定することが望ましい。
【0012】
【課題を解決するための手段】
上記した従来例の問題点は、本発明の遠隔通信システムによってほぼ解決される。本発明の遠隔通信システムは、サーバ上の拡張バスに接続可能なサーバ・コントローラを採用する。好ましくは、サーバ・コントローラは、EISA拡張バスに接続可能なエッジ・コネクタを有するPCB上に実現される。サーバ・コントローラは、ビデオ・アドレス範囲内のライト(書き込み)・サイクルを検出する検出ロジックを含む。ライト・サイクルは、ビデオ・コントローラに送出される表示データも拡張バス上に配列されたときに、開始される。したがって、検出ロジックは拡張バスを監視して(snoop)表示データを発見し、表示データをコントローラ・メモリに複写、即ち記憶する。
【0013】
コントローラ・メモリは、検出ロジックと同様、サーバ・コントローラのPCB上に実現され、複数のバッファを含む。コントローラ・メモリに向けて送出される表示データはローカル・フレーム・バッファに格納され、ローカル・フレーム・バッファはこの表示データをフレーム毎に記憶する。以前の表示データのフレーム即ち画面を現在の表示データのフレーム即ち画面と比較し、それにより、変化が生じた場合にそれを表示することができる。変化は、サーバの表示装置に登録されると、これもコントロール・メモリと連携する現(カレント)シーケンス・バッファ内に記憶される。現シーケンス・バッファは、サーバの障害またはリセットに先だって発生した一連のビデオ画面変化、サーバの最新のリセット後に発生した一連のビデオ画像変化、および最新のリセットに先だって発生した一連のビデオ画面変化という、3種類の変化を記憶する。障害によるビデオ画面変化(即ち、ブルー・スクリーンズまたはABENDメッセージ)だけでなく、現在および以前のリセットによるビデオ画面変化も記憶することにより、管理者は、サーバの障害理由、または今後の障害の可能性について判定することができる。
【0014】
管理者はサーバから離れて位置する端末を用いて、コントローラ・メモリ内に記憶されている様々な連続ビデオ画面変化のいずれでも検索することができる。サーバ・コントローラは、遠隔端末から送られてくる異なるタイプの通信プロトコルを認識することができる。サーバ・コントローラ内のローカル・プロセッサは、各プロトコル専用の状態マシンを用いることによって、送られてくる通信プロトコルを認識することができる。送られてくる文字または文字グループにしたがって、状態マシンは、通信プロトコルがテキストに基づくプロトコルか、PPPプロトコルか、または予備PPPプロトコル(pre-PPP protocol)かについての判定を行うことができる。先に記した種々のプロトコルは、例えば、電話線または直接直列接続を通じて帯域外接続(out-of-band connection)を行う際に用いられるインターネットワーク・プロトコル(internetworking protocol)として頻繁に用いられているプロトコルとして、当業者にはよく知られている。これは、遠隔端末(ターミナル)からの多数のプロトコルに対応し(service)、入来するプロトコルおよびそれが定義する利点を検出する能力を有している。したがって、送られてくるプロトコルとは無関係に、プロセッサは、通信情報に作用して、これをコントローラ・メモリに送出するように構成される。これによって、コントローラ・メモリは、通信プロトコル上で実施される指令に応答して、様々な連続ビデオ画面を発信することができる。
【0015】
検出ロジック、コントローラ・メモリ、プロセッサおよび通信ユニットは、PCB上に構築されたシステムとしてコンパイルされる。サーバへの電力が絶たれた場合、拡張バスを通じてPCBに供給される主電源も絶たれる。しかしながら、PCBは、拡張バスからの電力が停止しても、所定の動作機能(vital function)を維持するように構成されている。PCBは、二次電源または電池を採用しており、拡張バスの電力が停止した場合、二次電源により、プロセッサおよびコントローラ・メモリに、そして選択的に通信ユニットに電力を供給する。電池は、コントローラ・メモリ内に記憶されているビデオ画面情報を保持するのに十分な時間にわたって、プロセッサおよびコントロール・メモリの能力を維持するだけでなく、これらの間の通信も維持することができる。通信ユニットが遠隔端末によってアクセスされていない場合、電池から通信ユニットへの電力は停止させる。このために、遮断(デカップリング)回路が設けられており、通信ユニットが使用されていない場合、電池の不要な電力漏出を防止する。
【0016】
プロセッサとコントローラ・メモリが位置するPCのプレーン(または部分)と、通信ユニットが位置するPCBのプレーンとの間に、第1の遮断(デカップリング)ユニットが設けられている。また、プロセッサおよびコントローラ・メモリ・プレーンと、検出ロジックが位置するPCBのプレーンと間に、第2の遮断ユニットが設けられている。これによって、検出ユニットは、プレーン間で電力を遮断するだけでなく、プレーン間を接続する信号導体も遮断するように機能する。プレーン間における電力の遮断および3ステート信号は、電池電源上の電荷保存に役立つので、サーバのダウンタイム中に連続ビデオ画面変化を記憶維持するために必要な電力を最大限利用することができる。
【0017】
【発明の実施の形態】
本発明は様々な変更や代替形態が可能であるが、その具体的な実施例を、一例として図面に示し以下に詳細に説明する。しかしながら、図面やその説明は、開示される特定形態に本発明を限定しようとするのではなく、逆に、特許請求の範囲によって規定される本発明の主旨および範囲に該当するあらゆる変更物、均等物および代替物が、本発明に含まれるものである。
【0018】
まず図1を参照すると、コンピュータ・システム10のブロック図が示されている。コンピュータ・システム10は、ファイルの記憶および検索を行う任意のシステム、ファイル・サーバとして機能するシステム、アプリケーション・サーバ、または分散型コンピュータ・システムにおいて公知である他のサーバを含むことが好ましい。システム10は、ホスト中央演算装置、即ちサーバCPU12を含み、CPUローカル・バスを介して、メモリ・コントローラ14に結合されている。CPU12は、所定の命令を実施するためのデータ演算装置を含み、とりわけ、実行ユニット、制御/タイミング・ユニットおよび種々のレジスタという基本的構造を有する。代表的なCPU12は、インテル社(Intel Corp.)が製造するペンティアム(Pentium(登録商標))プロセッサを含む。
【0019】
メモリ・コントローラ14は、CPUローカル・バスおよびシステム・メモリ16間のデータ転送を指揮する。メモリ・コントローラ14は、種々のアドレシング技法に応答し、システム・メモリ16内の様々な記憶セル・アーキテクチャに対応するように構成されている。適切なアーキテクチャは、ダイナミック・ランダム・アクセス・メモリ(DRAM)またはスタティック・ランダム・アクセス・メモリ(SRAM)である。メモリ・コントローラ14は、CPU12と同期して動作し、システム・メモリとの間に最大転送帯域を確保することが好ましい。
【0020】
本発明の一実施例によれば、CPU12は、周辺要素インターフェース(「PCI」)バスに結合されている。バス・インターフェース・ユニット18が、PCIバスおよび拡張バス間のバス・ブリッジとして動作する。バス・インターフェース・ユニット18はバッファを含み、PCIバスおよび拡張バス間におけるデータおよびアドレス信号の転送を制御する。こうすることにより、バス・インターフェース・ユニット18は、クロック速度が異なる可能性がありかつ異なるプロトコルで動作するバスを通じて送出されるデータ間のインターフェースとして機能する。好ましくは、拡張バスは、拡張業界標準アーキテクチャ(「EISA」)バス・コンフィギュレーションから成る。
【0021】
拡張バスには、ビデオ・コントローラ20が接続されている。ビデオ・コントローラ20は、それに接続されているディスプレイすなわち表示装置24を制御するために用いられる。ビデオ・コントローラ20は、ビデオ・グラフィクス・アレイ(「VGA」)コントローラのような、一般的に使用されているビデオ・コントローラである。ビデオ・コントローラ20は、拡張バス上のアドレスに応答し、対応するデータをビデオ・メモリ22に送出する。ビデオ・メモリ22は、ビデオ・コントローラ20が表示装置24上に表示するビデオ・データを記憶する。表示装置24は、ビデオ・データを受け取ることができるいずれかのコンソールまたはモニタを含み、好適な表示装置24は、陰極線管(「CRT」)、あるいは液晶表示装置(「LCD」)である。ビデオ・コントローラ20およびビデオ・メモリ22を、以降一括してビデオ・サブシステムと呼ぶことにする。
【0022】
サーバ10には、サーバ10のリセット後の連続ビデオ画面変化だけでなく、サーバ10の障害前の連続ビデオ画面変化もセーブする機構が内蔵(retrofit)されている。これを行う機構は、サーバへの電源停止に影響されないものでなければならず、更に、記憶されているビデオ画面を遠隔端末に送出する能力を有していなければならない。かかる機能は、サーバ・コントローラ26によって実行される。サーバ・コントローラ26は、サーバ10のシャーシ内に結合され、拡張バスに接続可能である。この場合、コントローラ26は、サーバ10から離れて位置する端末からアクセス可能である。好適実施例によれば、遠隔端末28は、電話線通信装置を介して、サーバ・コントローラ26に結合される。電話線通信装置の一例は、遠隔端末28およびサーバ・コントローラ26双方に内蔵されているモデムである。遠隔端末28は、表示装置(例えば、CRT)および入力装置(例えば、キーボード)を含む。
【0023】
一実施例によれば、サーバ・コントローラ26は、コンパック・コンピュータ社から入手可能なソフトウエアによって動作する。具体的には、該ソフトウエアは、コンパック・コンピュータ社の、遠隔端末28上で動作可能なCompaq Insight Manager(「CIM」)という製品名のソフトウエアである。CIMは、サーバ・コントローラ26に装填されているファームウエアにアクセスし、例えば、サーバ・コントローラ26に記憶されている種々のビデオ画面変化の再生を行うことができる。
【0024】
サーバ・コントローラ26のハードウエアおよびファームウエア構造は、CIMを用いて構成された遠隔端末による遠隔アクセスおよび制御を利用可能とする。サーバ・コントローラ26に追加されるハードウエアおよび付随するコードにより、サーバ10が障害を発生した後でも、システム管理者はサーバ・コントローラ26に発信する(dial into)ことができ、その後サーバ・コントローラ26と通信し、障害の前またはリセットの後に発生した表示装置24の一連の画面変化を見ることができる。
【0025】
サーバ・コントローラ26内のファームウエアまたはコードは、遠隔端末28と通信するために用いられるコンソール・アプリケーション・コードとして機能する。図2のaは、コンソール・アプリケーションが遠隔端末28上に表示する初期メニュー画面の画面表示である。システム管理者がサーバ・コントローラに発信したときはいつでも、この画面表示が発生する。管理者は、メニュー項目のいずれかを選択することができる。彼または彼女がメニュー項目4を選択した場合、管理者は、彼または彼女の遠隔端末28において、サーバ・コントローラ26内に記憶されている一連のビデオ画面を見ることができる。ここでは、次にあげる3種類の異なる連続ビデオ画面変化を再生することができる。
【0026】
(i)サーバ10の以前のリセット後に発生した一連のビデオ画面
(ii)サーバ10の現リセットの後に発生した一連のビデオ画面
(iii)サーバ10の障害の前に発生した一連のビデオ画面
ここでは、上述の(i)〜(iii)における連続ビデオ画面のことを、「現リセット・シーケンス」、「前リセット・シーケンス」、および「障害シーケンス」と呼ぶことにし、これらを一括して「再生シーケンス」と呼ぶことにする。
【0027】
図2のbは、システム管理者がサーバ・コントローラ26に前述のシーケンスのいずれかを表示するよう命令するために用いる、メニュー画面の画面表示である。図2のcは、システム管理者がサーバ・コントローラ26に、現リセット・シーケンス、前リセット・シーケンス、および障害シーケンスのいずれかの再生開始や一時停止を行ったり、再生速度を変化させるように命令するために用いるメニュー画面の画面表示である。
【0028】
現リセット・シーケンスは、サーバ10の最新のリセットの直後に発生した一連のビデオ画面変化から成る。前リセット・シーケンスは、サーバ10の最新のリセット前に発生したリセットの直後に発生した一連のビデオ画面変化から成る。障害シーケンスは、サーバ10のリセット、障害または停電の直前に発生した一連のビデオ画面変化から成る。サーバ・コントローラ26が、障害シーケンスのために、サーバ10のリセットまたは停電の前に記憶する画面変化数、あるいは前リセット・シーケンスまたは現リセット・シーケンスに続いて記憶する画面変化数は、サーバ・コントローラ26が所与の再生シーケンスに使用可能なバッファ空間の量によって決定される。
【0029】
図3には、サーバ10内のメモリ・アドレス空間およびI/Oアドレス空間の部分が示されている。メモリ・アドレス範囲[0xB000〜0xBFFFF]は、ビデオ・メモリ22内に位置するビデオ・フレーム・バッファのために予約されている。I/Oアドレス範囲[0x03B4〜0x03BA]および[0x03C0〜0x03DA]は、ビデオ・コントローラ20内のビデオ制御レジスタに指定されている。CPU12は、ビデオ制御レジスタに値を書き込むことによって、表示装置24の様々な動作を制御する。フレーム・バッファ・メモリのアドレス範囲およびビデオ制御レジスタのI/Oアドレス範囲のことを、ここでは一括してビデオ・アドレス範囲、即ち、ビデオ・サブシステムに送られるデータのためのアドレス範囲と呼ぶことにする。
【0030】
表示装置24は、テキスト・モードにある場合、行列から成るマトリクスに組織される。例えば、一般的な表示画面構成は、25x80である。したがって、2000(=25x80)箇所の文字位置が、表示装置24上において使用可能である。表示装置24上の各位置は、フレーム・バッファ内に対応するワード(即ち、2バイト)を有する。このワードの下位バイトは、文字値(例えば、アスキー文字集合における文字「A」に対する0x41)を含み、このワードの上位バイトは対応する属性(色、前面および背面の輝度、文字を点滅させるか否か等のような属性)を含む。CPU12は、ビデオ・メモリ22内の適切なフレーム・バッファ位置に値を書き込み、表示装置24上に所望の文字および属性を表示させる。文字および表示に対する属性を含むフレーム・バッファ内のビデオ・データのことを、ここでは表示データと呼ぶことにする。上述の例では、表示画面全体を表わす表示データを記憶するために、4000バイト[すなわち、2000位置x(各位置毎に2バイト)、文字に1バイトおよび属性に1バイト]のフレーム・バッファが用いられる。
【0031】
以下にあげる3つの例は、ビデオ制御レジスタの多くの使用法のいくつかを示す。尚、ビデオ制御レジスタのアドレスは、I/Oアドレス空間内に予約されている。第1に、CPU12はビデオ制御レジスタのアドレス(即ち、アドレス範囲[0x03B4〜0x03BA]およびアドレス範囲[0x03C0〜0x03DA]に書き込みを行い、例えば、表示装置24上のカーソルの位置および属性を制御する。第2に、CPU12はビデオ制御レジスタに書き込みを行い、例えば、ビデオ・モードをカラー・モードから白黒モードに、またはその逆に変更する。第3に、ビデオ制御レジスタは、多数の画面を記憶することができるビデオ・メモリ22内の開始アドレスを指定することができる。第3の例では、ビデオ・メモリ22は、1画面分の表示データを記憶するのに必要な記憶位置よりも多い記憶位置を含むものと仮定する。
【0032】
ビデオ・メモリ22が64KBのメモリを含む(即ち、フレーム・バッファに64KBが使用可能)と仮定した場合、フレーム・バッファが1画面分の表示データを記憶するために用いるのは4000バイトに過ぎないので、フレーム・バッファは一度に多数の表示データの集合を格納することができる。CPU12は、ビデオ制御レジスタに書き込みを行い、表示装置24上に表示させる表示データの最初の集合の、ビデオ・メモリ22内の開始アドレスを指定する。ビデオ・コントローラに関する情報、より具体的には、上述の代表的な制御機能の多くを実行するためのビデオ制御レジスタを使用するVGAコントローラに関する情報は、とりわけ、Cirrus Logic Corp., Part no. CL-GD542xから入手可能である。
【0033】
ビデオ・コントローラ20は、拡張バス(好ましくは、EISAバス)上に発生されたアドレスをデコードし、ビデオ・アドレス範囲内においてバス・サイクルに応答する。ビデオ・コントローラ20は、ビデオ・メモリ22内に記憶されている表示データを表示装置24に送るだけでなく、CPU12がビデオ制御レジスタに書き込んだデータに応答して、表示装置24を制御する。したがって、ビデオ・メモリ22は文字および属性情報を格納し、一方ビデオ制御レジスタは表示装置24を制御する情報を格納する。
【0034】
ビデオ・コントローラ20と同様に、サーバ・コントローラ26も拡張バス上のアドレスをデコードし、ビデオ・サブシステムへの書き込みを検出する。ビデオ・アドレス範囲への書き込みを検出した場合、サーバ・コントローラ26は、ビデオ・アドレス範囲に書き込まれたデータを、サーバ・コントローラ26内に記憶する。この動作のことを、「監視:スヌーピング:(snooping)」と呼ぶ。即ち、サーバ・コントローラ26は、他のサブシステム(即ち、ビデオ・サブシステム20、22)に対しての表示データの1つ以上の画面を得る。データはサーバ・コントローラ26上で複製され、サーバ・コントローラ26が、ビデオ・メモリ22のフレーム・バッファ内にある情報、およびビデオ・コントローラ20のビデオ制御レジスタ内にある情報のミラー・コピー(mirror copy)を保持するようにする。拡張バスを監視してビデオ・アドレス範囲内のデジタル信号を発見することにより、CPU12が認めるビデオ・サブシステムへの書き込みは1回のみでも、二重記憶の実行が可能となる。重要なのは、監視は、サーバ・コントローラ26によって割り込みを生じないように(non-intrusive)行われることである。ビデオ・サブシステムに対して供給されるべきデータは、ビデオ・サブシステムに進み、サーバ・コントローラ26によって変更や削除をされることがない。
【0035】
図4には、サーバ・コントローラ26の詳細なブロック図が示されている。サーバ・コントローラ26は、拡張バスに結合された検出ロジック30を備えている。コントローラ・メモリ32が、コントローラ・バスを介して、検出ロジック30に結合されている。検出ロジック30は、例えば、プログラマブル・アレイ・ロジック(「PAL」)回路において一般的に見られるような、組み合わせられた連続的なロジック素子から成る。制御ロジック40、アドレス・バッファ42およびデータ・トランシーバ44についての詳細は、それらの関係を論じた後に説明する。検出ロジック30内のこれら3つのユニットは、サーバ・コントローラ26の様々な構成要素、即ち、コントローラ・メモリ32およびその中の様々なバッファの性能を最大に高めるためのものである。したがって、これら3つの要素40、42、44の説明は、再生シーケンスの検討および様々なバッファがどのようにしてこれらのシーケンスを記憶するのかについての検討が終了してから、行うことにする。
【0036】
サーバ・コントローラ26の一部として、プロセッサ34は、コントローラ・バス上の情報、即ち、検出ロジック30およびコントローラ・メモリ32間の情報、または通信ユニット36およびコントローラ・メモリ32間の情報のいずれかを編成しなければならない。プロセッサ34は、命令セットに応答し、例えば、実行ユニット、メモリ、入出力装置、および1つ以上のレジスタを内蔵したマイクロプロセッサまたはマイクロコントローラを含む。プロセッサ34は、埋め込みシステム(embedded system)の用途に用いられるマイクロプロセッサを代表するものである。コントローラ・メモリ32は、複数のデジタル記憶素子から成る。本発明の一実施例では、コントローラ・メモリ32は、疑似スタティックRAMから成る。通信ユニット36は、サーバ・コントローラ26から離れて配置された遠隔端末28に対して通信可能な装置を含む。通信ユニット36は、遠隔端末28から送られてくるアナログ呼び出し信号(ARGN:analog ring signal)に応答して、遠隔端末28に返送する通信信号(COMM. SIG)を生成する。好ましくは、通信ユニット36はモデムを備えている。通信ユニット36は、更に、プロセッサ34に結合された直列ポート、およびサーバ・コントローラ26外部の直列ポートに結合され遠隔端末28と通信するためのモデムも想定している。
【0037】
プロセッサ34は、再生シーケンスをコントローラ・メモリ32に記憶する。プロセッサ34は、再生シーケンスを、表示画面の集合全体を表わす連続表示データとして、コントローラ・メモリ32内に記憶することも可能である。しかしながら、これは、コントローラ・メモリ32を使用する方法としては比較的非効率的であり、したがって再生シーケンスを構成してコントローラ・メモリ32内に記憶されるビデオ画面の数は比較的少ない。本発明では、プロセッサ34は、一連の表示画面全体の代わりに、一連の表示「変化」として再生シーケンスを効率的に記憶するように表示データを処理する点で効果的である。画面内の変化を表わす表示データの量は、画面全体を表わす表示データ量より大幅に少ない。したがって、現リセット・シーケンス、前リセット・シーケンスおよび障害シーケンス(即ち、再生シーケンス)は、基準画面、即ち「開始」画面からの変化として表わされる。
【0038】
図5には、コントローラ・メモリ32内の種々のバッファが示されている。これらのバッファは、プロセッサ34によって用いられて、再生シーケンスの処理や記憶を行うためのものである。ローカル・フレーム・バッファ48は、ビデオ・メモリ22へのライト・アクセスの間に監視された表示データを格納する。即ち、検出ロジック30が拡張バスを監視し、ビデオ・サブシステムに向けて送られてくるデータを、ローカル・フレーム・バッファ48に記憶する。スナップショット・バッファ50は、ローカル・フレーム・バッファ48からの現表示データの、プロセッサ34によって作成された、コピー即ちスナップショットを格納する。一時スナップショット・バッファ52も、ローカル・フレーム・バッファ48からの現表示データのスナップショットを格納する。一時スナップショット・バッファ52は、画面変化、特に画面のスクロールが素早く行われる場合に、再生シーケンスを見やすくするために用いられる。
【0039】
現リセット・シーケンス・バッファ54は、最新のリセット・シーケンスに関連する情報を格納する。即ち、現リセット・シーケンス・バッファ54は、最新のリセットで始まり、現リセット・シーケンス・バッファ54が満杯になると終了する画面変化を格納する。現リセット・シーケンス・バッファ54が満杯になった後に発生する画面変化は無視される。前リセット・シーケンス・バッファ56は、最新のリセット・シーケンスの直前のリセット・シーケンスに関連する情報を格納する。即ち、前リセット・シーケンス・バッファ56は、最新のリセットに前に発生したリセット時に開始し、前リセット・シーケンス・バッファ56が満杯になったとき、または次のリセットが発生したときに終了する画面変化を格納する。前リセット・シーケンス・バッファ56が満杯になった後に発生した画面変化は無視される。
【0040】
現シーケンス・バッファ58は、最新の画面変化を、バッファ58内に納まるだけ格納する。障害シーケンス・バッファ60は、サーバ10の最新のリセット直前の障害シーケンスに関連する情報を格納する。即ち、障害シーケンス・バッファ60は、最新のリセットで終了する画面変化を格納し、最新のリセット直前に発生した画面変化を、その中に納まるだけ格納する。
【0041】
障害開始バッファ64は、障害シーケンス・バッファ60に関連するビデオ画面表示の表示データを格納する。障害開始バッファ64は、障害シーケンスにおける初期画面画像(即ち、「基準」画面画像)を格納し、結果的に、障害シーケンス・バッファ60内の最初の変化が適用される画面画像を格納する。初期状態では、障害開始バッファ64は空白画面である。障害シーケンス・バッファ60がオーバーフローした場合、超過分の変化は文字および属性に変換され、障害開始バッファ64に記憶される。したがって、障害開始バッファ64は、比較的長い時間期間の間に画面上の少数の文字だけが何回も変化するような場合に、有用性が高い初期画面画像を提供する。現開始バッファ62は、現シーケンス・バッファ58に関して、同一の機能を提供する。
【0042】
サーバ10のリセットまたは障害は、サーバ・コントローラ26のリセットの原因にならないものである。しかしながら、サーバ・コントローラ26は、以下のリセット・イベントに関する情報を検出し保持する。即ち、サーバ10の給電開始、サーバ10の電力遮断、および拡張バスのリセットである。特に、サーバ・コントローラ26は、RSTDRV EISAバス信号には応答せず、単にRSTDRVのアサートを検出するに過ぎない。リセットが発生した場合、または電力がサーバ10から遮断された場合でも、サーバ・コントローラ26は動作を維持し、遠隔端末28上の表示のために、再生シーケンスを保存する。サーバ・コントローラ26を収納する同一PCB上に、二次電源が設けられており、再生シーケンスが維持されることを保証する。しかしながら、必要であれば、CPU12にアクセス可能なサーバ・コントローラ26の所定のレジスタ位置に所定の一連の値を書き込むことによって、ソフトウエアの制御の下でサーバ・コントローラ26をリセットすることも可能である。
【0043】
サーバ10のリセットが発生した場合、ポインタを変化させて、現リセット・シーケンス・バッファ54が前リセット・シーケンス・リセット・バッファ56になるようにし、更に前リセット・シーケンス・バッファ56がフラッシュ(一掃)され、現リセット・シーケンス・バッファ54になる。サーバのリセットによっても、現シーケンス・バッファ58が障害シーケンス・バッファ60になり、障害シーケンス・バッファ60がフラッシュされ、現シーケンス・バッファ58となる。また、リセット時にも、現開始バッファ62は障害開始バッファ64となり、障害開始バッファ64はフラッシュされ、現開始バッファ62となる。
サーバ・コントローラ26は、サーバ10の自動サーバ復元(「ASR」)リセット(automatic server recovery reset)を実行するように構成されている。サーバ・コントローラ26がサーバ10の障害を検出した場合、所定の時間の間(典型的には、30秒)待ってから、サーバ10をリセットする。
【0044】
以下に述べるのは、サーバ10のリセット、それに続いて障害、更にそれに続いてリセットが発生する例示的なシーケンスである。最初にサーバ10を起動し、サーバ10をリセットする。リセット時に、サーバ・コントローラ26は、前リセット・シーケンス・バッファ56から情報をフラッシュし、障害シーケンス・バッファ60をフラッシュし、更に障害開始バッファ64をフラッシュする。バッファ56、60、64をフラッシュする間、前リセット・シーケンス・バッファ56と現リセット・シーケンス・バッファ54との交換が、バッファ60、58間の交換およびバッファ64、62間の交換と同時に行われる。したがって、リセットにより、バッファ54、58、62からそれぞれバッファ56、60、64へ情報の移動が生ずる。リセット時に、サーバ10のソフトウエアは、POST処理の実行、および表示装置24上の文字表示を開始する。
【0045】
サーバ・コントローラ26は、POST処理に付随する画面変化を、現リセット・シーケンス・バッファ54および現シーケンス・バッファ58に記憶する。一旦現リセット・シーケンス・バッファ54が満杯になったなら、サーバ・コントローラ26は画面変化をそこに記憶するのを中止する。現シーケンス・バッファが満杯になった場合、サーバ・コントローラ26は最も古い画面変化を現シーケンス・バッファ58から除去し、新たな画面変化の記憶のための余裕を作り、現開始バッファ62を修正して古い画面変化を記憶させる。このように、バッファ58はFIFOレジスタと同様に動作し、超過した情報をバッファ62に送出する。以下で説明するが、バッファ58、62の組み合わせ(バッファ60、64と交換された場合)は、最新の障害以前のビデオ画像の障害シーケンス全体を表わす。
【0046】
リセット−障害−リセットの3段階の例における第2段階においてサーバ10の障害が発生した場合、ビデオ画面のシーケンスが表示装置24上に生成され、この障害、および可能であれば障害の理由を示す。これらの画面は、Novell NetwareからのABENDメッセージまたはMicrosoft NTのブルー・スクリーンとして使用可能な、多くのサーバ・オペレーティング・システムの一部として、自動的に表示される。障害が発生して30秒後、サーバ・コントローラ26はサーバ10上でASRリセットを実行する。ASRリセットの間に、リセット−障害−リセット例における2回目のリセットが発生する。1回目のリセットと同様、このリセットによって、サーバ・コントローラ26はバッファ56、60、64をフラッシュする一方、バッファ56,60,64のバッファ54,58,62との交換をそれぞれ行うことができる。
【0047】
また、1回目のリセットと同様、サーバ10は再びPOST処理を起動し、文字を表示装置24に送出する。サーバ・コントローラ26は、POST処理の結果生じたリセットの後に発生した画面変化を、現リセット・シーケンス・バッファ54および現シーケンス・バッファ58に記憶する。前リセット・シーケンス・バッファ56は、ここで、最初のパワー・オン・リセットに付随する一連の画面変化を格納し、障害シーケンス・バッファ60および障害開始バッファ64は、ここで、当該障害までに至る一連の画面変化を格納する。前リセット・シーケンス・バッファ56内に格納されている初期リセットによる画面変化とは異なり、現リセット・シーケンス・バッファ54は、2回目のリセット(即ちASRリセット)に関連するリセットによる画面変化を格納する。
【0048】
ビデオ画面全体とは異なり、ビデオ画像の変化は、現リセット・シーケンス・バッファ54、前リセット・シーケンス・バッファ56、現シーケンス・バッファ58および障害シーケンス・バッファ60内には、パケットとして記憶される。バッファ54、56、58、60内の各パケットは、指定された長さの一連のバイトで構成される。パケットは「タイプ」にしたがって類別され、パケット・タイプは、その長さならびに最初のバイト(バイト0)、およびパケット長が1バイトより長い場合は2番目のバイト(バイト1)によって判定される。パケット・タイプ、および遠隔端末28上のサーバ・コントローラ26が各タイプに応じて行う作用は以下の表1の通りである。
【0049】
【表1】
【0050】
このリストに示す各パケット・タイプに用いた二進コード・フォーマットは、次の表2の通りである。
【0051】
【表2】
【0052】
表示文字列パケット・タイプにおけるバイト3、4、および後続バイトは、表示すべきヌルで終了する文字列を含む。この文字列は、少なくとも2文字にヌルの終端を加えた長さでなければならないので、その長さは5より大きい。したがって、長さ検査を用いて、繰り返し文字パケットから識別可能である。変化が1文字を含むのみである場合、その変化は繰り返し回数が1の繰り返し文字パケット、または単一文字パケットとして記憶する。
【0053】
図5に示したコントローラ・メモリ32内に位置する種々のバッファの機能は、図6および図7のフローチャートの説明において、より明白となろう。なお、図6および図7は、プロセッサ34が、バッファ48〜52に送出される表示データを処理し、バッファ54〜64のいずれかに再生シーケンスを記憶する際に実行するステップを示すフローチャートである。
【0054】
図6を参照すると、ステップ70において、プロセッサ34がローカル・フレーム・バッファ48をチェックして、ビデオ制御レジスタを通じて、いずれかのビデオ・モード変化が起きているか否かについて検査を行う。ビデオ・モード変更の例は、グラフィックス・モードおよびテキスト・モード間の変更、または画面サイズの変更、即ち、表示装置の行数および列数の少なくとも一方の変更である。再生シーケンスの記憶が可能になる前に、プロセッサ34は、ステップ72において、現ビデオ・モードが有効なテキスト・モードであるか否かについて判定を行わなければならない。有効なテキスト・モードでない場合、プロセッサ34は、ビデオ・モードが有効なテキスト・モードになるまで待ち、次いでプロセッサ34は、ステップ74において、ローカル・フレーム・バッファ48からの現表示の集合(ビデオ制御レジスタ内に指定される開始アドレスによって示される)を、一時スナップショット・バッファ52にコピーする。
次に、プロセッサ34は、ステップ76において、一時スナップショット・バッファ52の内容を、スナップショット・バッファ50の内容と比較して、画面スクロールが行われたか否かについて判定を行う。スクロールが行われていた場合、プロセッサ34は、ステップ78において、画面スクロール・パケットを適切なバッファに記憶する。
【0055】
そして、プロセッサ34は、スナップショット・バッファ50および一時スナップショット・バッファ52の先頭から開始して、それらを比較し変更するための一連のステップを開始することができる。プロセッサは、ステップ80において、バッファ50,52の現バイトを比較し、変化を探す。ステップ82に示すように、変化が発見された場合、プロセッサ34はステップ84において、その変化を用いて、スナップショット・バッファ50を更新する。次に、プロセッサ34は、ステップ86において、この変化をパケットに変換する。ステップ88において現バッファ54、58、62に選択的に入力されるのは、パケットに変換された変化である。次に、プロセッサ34はステップ80に戻って他の変化を探し、ステップ82において、プロセッサがバッファ50、52における表示データ間にもはや変化がないと判定するまで、ステップ82、84、86、88を繰り返す。
一旦プロセッサ34が、ステップ82においてもはや変化がないと判定したなら、プロセッサ34は、ステップ90において、カーソル位置が変化したか否かについて判定を行う。位置が変化していた場合、プロセッサ34は、ステップ92において、ステップ88で実行したのと同様の方法で、移動カーソル・パケットを現バッファ54、58、62に記憶する。カーソル位置が変化していない場合、既存のカーソル位置へのパケットのリライトを実施する。
【0056】
次に図7を参照する。図7には、図6のステップ88を実行する際に行われるステップの一層詳しいフローチャートが示されている。プロセッサ34は、ステップ94において、現リセット・シーケンス・バッファ54が満杯か否かについて判定を行う。即ち、ステップ94は、バッファ54に送られたパケットにより当該バッファが満杯になったか否かを示す。バッファ54が満杯でない場合、プロセッサ34は、ステップ96において、現パケットを現リセット・シーケンス・バッファ54に送出する。ステップ98において、現シーケンス・バッファ58が満杯となりこれ以上パケットを受け入れることができないか否かを、プロセッサ34が判定する。満杯の場合、プロセッサ34は、ステップ100において、最も古いパケットを現シーケンス・バッファ58から除去し、その後、この最も古いパケットを文字/属性ワードに変換する。この除去されたパケットの文字/属性ワードは、次いでステップ102において、現開始バッファ62に送出される。プロセッサ34は、ステップ98において、現シーケンス・バッファ58はパケットを受け入れられない程満杯ではないと判定するまで、ステップ98、100、102を繰り返す。満杯ではないと判定した時点で、プロセッサ34は、ステップ104において、パケットを現シーケンス・バッファ58に入力する。
【0057】
以下の表3及び表4(表4は表3の続き)に示すのは、C言語の関数find_change()のコードのフラグメント(断片)である。これは、プロセッサ34が図6のフローチャートに示した機能を周期的に実行する際に使用可能である。
【0058】
【表3】
【表4】
【0059】
以下に示すのは、C言語の関数put_packet()のコードの断片であり、プロセッサ34が図7のフローチャートに示した機能を周期的に実行する際に使用可能である。
【0060】
【表5】
【0061】
次に図8を参照する。図8には、プロセッサ34が遠隔端末28上にビデオ画面のリセット・シーケンスを再生する際に実行するステップを表わす、フローチャートが示されている。管理者はまず現リセット・シーケンスまたは前リセット・シーケンスは再生する必要があるか否かについて判定を行う。プロセッサ34は、現リセット・シーケンス・バッファ54または前リセット・シーケンス・バッファ56を、それぞれ、再生すべきリセット・バッファとして選択することによって応答する。システム管理者がサーバ・コントローラ26にリセット・シーケンスの一方を再生するように命令すると、プロセッサ34は、ステップ106において、リセット・バッファには表示すべきパケットが未だあるか否かについて判定を行う。表示すべきパケットがある場合、プロセッサ34は、ステップ108において、リセット・シーケンス・バッファから次のパケットを読み出し、当該パケットを文字列に変換する。次に、プロセッサ34は、ステップ110において、この文字列を遠隔端末28に送信することによって、文字列を遠隔端末28上に表示する。プロセッサ34がステップ106において表示すべきパケットがもはやないと判定するまで、プロセッサ34はステップ106、108、110を繰り返す。
【0062】
以下の表6に示すのは、C言語の関数video_reset_play()のコードの断片であり、プロセッサ34が図8のフローチャートに示した機能を周期的に実行する際に使用可能である。
【0063】
【表6】
【0064】
図9には、プロセッサが障害シーケンスを遠隔端末28上に再生する際に実行するステップを表わす、フローチャートが示されている。システム管理者がサーバ・コントローラ26に障害シーケンスを再生するように命令すると、プロセッサは、ステップ112において、障害バッファ64内に表示すべき文字が未だあるか否かについて判定を行う。尚、現開始バッファ62および障害開始バッファ64は、画面自体ではなく、画面変化を記憶するバッファ(即ち、バッファ54〜60)内にあるパケットの代わりに、文字(即ち、文字/属性対から成るワード)を格納するものである。バッファ64内に未だ表示すべき文字がある場合、プロセッサ34は、ステップ114において、障害開始バッファ64から次の文字を読み出し、その文字を遠隔端末28に送信することによって、遠隔端末28上にその文字を表示する。プロセッサがステップ112において障害開始バッファ64内にはもはや表示すべき文字がないと判定するまで、プロセッサ34はステップ112、114を繰り返す。尚、文字は障害開始バッファ64から消去されるのではなく、文字のコピーが取られるようにしていることを注記しておく。
【0065】
一旦プロセッサ34がステップ112において障害開始バッファ64における文字全てを表示したと判定したなら、プロセッサ34は、ステップ116において、表示すべき別のパケットを障害シーケンス・バッファ60内で検索する。別のパケットがない場合、プロセッサ34は障害シーケンスの再生を終了する。その他の場合、プロセッサ34は、ステップ118において、パケットをANSI文字列に変換する。次に、プロセッサ34は、ステップ120において、その文字列を遠隔端末28に送信することによって、その文字列を遠隔端末28上に表示する。プロセッサ34は、ステップ116において障害シーケンス・バッファ60内のパケット全てを表示したと判定するまで、ステップ116、118、120を繰り返す。
【0066】
以下の表7及び表8は、C言語の関数video_failure_play()のコードのフラグメントであり、プロセッサ34が図9のフローチャートに示した機能を周期的に実行する際に使用可能である。なお、表8は表7の続きである。
【0067】
【表7】
【表8】
【0068】
再生シーケンスの再生は、管理者が図2のcに示したメニューに応答して、スペース・キーを押圧したときに開始する。再生は、文字およびエスケープ・シーケンスのストリームを遠隔端末に送り、シーケンス・バッファ内の情報を表示することから成る。文字の中には制御文字があり(アスキー値で0〜31および127)、実際の文字を表示するのではなく、ベルを鳴らす等の機能を行う。その結果、これら表示不可文字の1つがローカル・フレーム・バッファ48内に現れた場合、実際にはスペースまたは同様に見える表示可能文字のいずれかとして遠隔端末に送られる。エスケープ・シーケンス(エスケープ文字(アスキー値0x1B)で始まる文字列)は、カーソルの移動、画面のクリア、および現表示カラーの変更というような他の作用を行うために用いられる。サーバ・コントローラ26は、文字0〜31、127、225以外の全ての文字を変化させずに送信する。これらの文字は、以下の表8に示すように、アスキー・バイトにリマップされる。
【0069】
【表9】
【0070】
以下に示すのは、サーバ・コントローラ26によって送出されるエスケープ・シーケンスであり、ここで\x1BがESC文字である。Compaq Insight Manager (CIM)アプリケーションを遠隔端末28上で実行している場合、サーバ・コントローラ26は所定の標準外エスケープ・シーケンスを送信し、CIMと通信を行う。これらの標準外エスケープ・シーケンスは、以下の表9において、アステリスクで示すことにする。
【0071】
【表10】
【0072】
上記表10において、「+」文字が印されているエスケープ・シーケンスは、白黒モードにおいて用いられるカラー・エスケープ・シーケンスのみである。黒および高輝度の黒を除く全てのカラーは、白または高輝度の白に変換される。
【0073】
サーバ・コントローラ26がCIMと通信していないとき、高輝度背景カラーは対応外となり、通常の輝度と同一のカラーとして送られる。前景がこの通常輝度のカラーである場合、以下の表10にしたがって未だ見ることができるように、前景カラーのリマッピングを行う。
【0074】
【表11】
【0075】
次に図10のa〜eを参照する。障害シーケンスの画面ショット(screen shot)の例が示されている。画面シーケンスは、遠隔端末28上にサーバ・コントローラ26によって表示された再生シーケンスの例である。図10のaは、サーバ起動時の典型的な初期画面の画面ショットである。この画面は、システム・コンフィギュレーションに関する様々な項目を示す。図10のbは、典型的なWINDOWS NTのローダ画面の画面ショットである。ユーザには、複数のブートするNTカーネル間から選択する機会が与えられる。図10のcは典型的なNTのブート画面の画面ショットである。このスクリーンは、カーネルの構築バージョン、システム・メモリ量、プロセッサのコンフィギュレーション等を含む。図10のdは、サーバ10の表示装置24がホストCPU12によってグラフィック・モードに設定されたことを示すパケットを再生シーケンスが含むときに、この再生シーケンスの間に、サーバ・コントローラ26によって遠隔端末28上に表示されたメッセージを示す。図10のeは、典型的なNTのブルー・スクリーンの画面ショットである。
【0076】
拡張バス(好ましくは、EISAバス)を監視してビデオ・サブシステムへの書き込みを見つけ出すことによって、サーバ・コントローラ26は、リアル・タイムでビデオ・データの更新を得て、再生シーケンスの再生を実現可能にする。加えて、拡張バスを監視してビデオ・サブシステムへの書き込みを見つけ出すことによって、サーバ・コントローラ26は、サーバ10には割り込みをかけない(non-intrusive)方法で、より具体的には、拡張バス帯域には割り込みをかけずに、ビデオ・データの更新を得ることができる。他の方策には、割り込みをかけ非リアル・タイムでビデオ・データを得るものもある。例えば、COMPAQ Server Manager/R (「SMR」)という製品は、EISAバス・サイクルの主導権(mastership)をアサートし、サーバ10のビデオ・メモリ22内のデータを得る。SMRは、こうすることにより、表示データの一部をビデオ・メモリ22からそれ自体のメモリに周期的にコピーする。コピーされたデータは、次に、ビデオ・データの以前のコピーと比較され、画面変化が判定される。SMRのバス支配法は、EISAバス上のトラフィック増大を招くという欠点があり、他のEISAバス・マスタに、余分なバス仲裁遅延を付加することになる。
【0077】
再び図4を参照しながら、検出ロジック30内の様々なブロック40〜44についての説明を行う。検出ロジック30は、アドレス・バッファ42、データ・トランシーバ44、ならびにEISAバスおよびコントローラ・バス間に結合された制御ロジック40から成る。制御ロジック40およびプロセッサ34は、HOLDおよびHLDA(HOLD承認)信号によって結合されている。アドレス・バッファ42、データ・トランシーバ44、および制御ロジック40は協同して表示データを監視し、その後、コントローラ・メモリ32の一部を形成するローカル・フレーム・バッファ48(図5)にデータを書き込む。
【0078】
コントローラ・メモリ32は、プロセッサ34および検出ロジック30の双方がコントローラ・メモリ32を変更するという点において、プロセッサ34および検出ロジック30間で共有されるリソースである。コントローラ・メモリ32は、単一ポートの疑似スタティックRAMから成る。したがって、検出ロジック30は、プロセッサ34からサイクルを盗み、コントローラ・メモリ32にビデオ・データを書き込む。ライト・サイクルがビデオ・サブシステムに発生すると、検出ロジック30はライト・サイクルをデコードし、プロセッサ34をオンに維持し、ビデオ・データをコントローラ・メモリ32に書き込む。サーバ・コントローラ26は、ビデオ・データをビデオ・サブシステムに書き込むと同時に、ビデオ・データをコントローラ・メモリ32に書き込み、サーバ10上での通常のビデオ・アクティビティを持続させる利点がある。
【0079】
制御ロジック40は、拡張バスからアドレス信号を受け取り、ビデオ・アドレス範囲にあるアドレスの存在をデコードする。ビデオ・アドレス範囲内のアドレスが拡張バス・アドレス信号上に現れた場合、制御ロジック40は、プロセッサ34へのHOLD信号をアサートすることによって、プロセッサ34をオンに保持し、コントローラ・メモリ32に対するアービトレーション(仲裁)を行う。プロセッサ34はHLDAをアサートし、コントローラ・バスの所有権を制御ロジック40に与える。
【0080】
制御ロジック40は、ビデオ・サブシステムへのライト・サイクル完了の前に、コントローラ・バスの所有権を得ることができ、かつ、コントローラ・メモリ32にビデオ・データを書き込めることを、保証しなければならない。これを行うために、制御ロジック40は、EISA拡張バス内の所定の信号を利用する。制御ロジック40は、EISA拡張バスにおいて得ることができるEXRDY信号を利用する。拡張バスがISAバスである場合、制御ロジック40はCHRDY信号を利用する。いずれの場合でも、EXRDYまたはCHRDYは、制御ロジック40がコントローラ・バスの所有権を得るまで、ビデオ・サブシステムへの拡張バスのライト・サイクルを遅らせるように機能する。
【0081】
拡張バスのSTART#信号がアサートしている間に、EISA拡張バス(拡張バス)のBCLK信号の立ち上がりエッジ上において、制御ロジック40は拡張バスのアドレス信号からアドレスをラッチする。制御ロジック40は、拡張バス上の他の信号、即ち、BCLK、START、およびW_Rを検査し、バス・サイクルがライト・サイクルか否かについて判定を行う。バス・サイクルがライト・サイクルでない場合、制御ロジック40は、HOLD信号をディアサートすることにより、コントローラ・バスに対する仲裁を中止する。バス・サイクルがライト・サイクルである場合、データ・トランシーバ44が、ビデオ・データを拡張バスのデータ信号からコントローラ・メモリ32に送り込むことによって、拡張バスのCMD#信号の立ち上がりエッジ上でライト・サイクルを完了する。制御ロジック40がEXRDY信号をローに駆動すると、CDM#の立ち上がりエッジは遅れを生じる。
【0082】
仲裁レイテンシ(制御ロジック40がHOLDをアサートし、プロセッサ34がHLDAを付与するまでの時間)が、ビデオ・アドレス範囲にライト・サイクルを設定するのに必要な時間を超過する場合、制御ロジック40は拡張バス上のEXRDY信号をローに駆動し、遅延サイクルを挿入する。即ち、CMD#の立ち上がりエッジを遅らせる。EXRDY信号がローに駆動されると、現在ライト・サイクルを実行中の拡張バスのマスタに、ライト・サイクルの受け取り側がデータを受け取る準備ができていないことを示す。典型的に、プロセッサ34は、HLDAを制御ロジック40に十分早く付与し、制御ロジック40がEXRDYをアサートする必要がないようにしている。したがって、サーバ・コントローラ26の監視は、典型的に、非割り込みである。
【0083】
制御ロジック40は、以前に拡張バスのアドレス信号からラッチしたアドレスを、コントローラ・メモリ32のローカル・フレーム・バッファ内の対応する位置に変換し、更に変換したアドレスをアドレス・バッファ42に供給し、このアドレス・バッファ42がコントローラ・バス上に変換したアドレスを送り込む。次に、制御ロジック40は、制御信号をデータ・トランシーバ44、アドレス・バッファ42およびコントローラ・バスに対して発生し、コントローラ・メモリ32の、アドレス・バッファ42によって駆動された変換後のアドレスに、拡張バスのデータ信号からの表示データを書き込む。制御ロジック40は、表示データのブロック転送終了まで、即ち、ビデオ・サブシステムへのバーストまたは連続(back-to-back)ライト・サイクルの間、プロセッサ34をオンのまま保持する。ビデオ・サブシステムへのバースト・ライト・サイクルまたは連続ライト・サイクルの場合、割り込みの可能性がある(遅延サイクルを誘発する)のは最初のサイクルだけである。
【0084】
拡張バスからコントローラ・メモリ32へのビデオ・サブシステムに対するライト・サイクルを監視する際、拡張バスおよびコントローラ・バスが異なるクロック信号を有するので、これらのバス間で同期を取る必要がある。このためには、正確な通信状態を保証するために(即ち、不安定の可能性を低下させるために)、双方のバスから多数の同期点を必要とする。したがって、有効なライト・サイクルが開始する最も早い時点、および当該ライト・サイクルまたは一連のライト・サイクルが終了する最も早い時点を判定することは有利である。したがって、有効なサイクルがライト・サイクルでないことを最も早い時点で判定してHOLDをニゲートし、コントローラ・バスの所有権をプロセッサ34に返すことが必要である。これによって、プロセッサ34は、再生シーケンスの実行のような、必要な機能の実行が可能となる。加えて、いつ有効ライト・サイクルが開始するのかを判定し、必要であれば、EXRDYをローに駆動し、これによって遅延サイクルを挿入することも有利である。
【0085】
拡張バスのクロック信号BCLKは、ライト・サイクルの開始や終了を判定する際には、特に有用ではない。何故なら、このクロック信号はそのいずれとも、即ち、START#の立ち下がりエッジまたはCMD#の立ち上がりエッジのいずれとも同期することが保証されていないからである。EISAバスのタイミング仕様に関する詳細な説明について、EISA仕様改訂3.12版(EISA Specification Revision 3.12)を引用する。この内容は、この言及により、本願にも含まれているものとする。
【0086】
拡張バスのライト/リード信号(W_R)がライト・サイクルを示している場合は、該信号は、拡張バスのアドレス信号(LA)と同じように早くは有効にはならない。EISAバスの仕様によれば、W_Rは、START#がニゲート状態にあるときのBCLKの立ち上がりエッジまで、その有効性を確認することができない。制御ロジック40は、ライト・サイクルが発生しているか否かについて判定を行い、それ自体はリード・サイクルに応答しないが、代わりにビデオ・サブシステムがリード・サイクルに応答できるようにしなければならない。
【0087】
EISA拡張バス信号START#およびCMD#は、START#のニゲートおよびCMD#のアサートに関して、互いに連続して発生することは保証されていない。即ち、これらの2信号は重なり合ったり、その間にギャップが生じる可能性がある。このため、START#の立ち下がりエッジをサイクルの開始を示すために用い、CMD#の立ち上がりエッジをサイクルの終了を示すために用いるために、開始から終了までのサイクル全体を示すことを望む式(equation)は、START#のニゲートとCMD#のアサートとの間の潜在的なギャップを覆うために、何らかの入力を有さなければならない。
【0088】
例えば、EISAバス・ブリッジとしてバス・インターフェース・ユニット18を用いた、殆どのバス・インターフェースの実施においては、BCLKがローでSTART#がアサートされてローになると、W_Rは有効になることが本発明者によって規定された。この情報は、有効なライト・サイクルの開始および終了を判定する際に役に立つ。尚、本発明は、次の式で表わされる、透明ラッチ制御信号(transparent latch control signal) N_STARTを採用する。
【0089】
【数1】
N_START = !BCLK * !START# + N_START * CMD#
したがって、N_STARTは、BCLKがローでSTART#がアサートされたときにアサートされ、CMD#がアサートされてローとなるまでアサートされたまま留まり、前述のSTART#およびCMD#間のギャップを覆うことになる。
【0090】
EISA拡張バスのアドレス信号がビデオ・アドレス範囲にあるときに真となる、追加の信号EARLY_DECODEを定義する。
EARLY_DECODE,W_R、CMD#およびN_STARTを組み合わせることにより、有効なライト・サイクルは次のように定義される。
【0091】
【数2】
VALID_CYCLEを用いると、EXRDYは、VALID_CYCLEがアサートされ、プロセッサ34が未だHLDAをアサートしていないときにアサートされる。次いで、EXRDYは、HLDAが付与されるBCLKの次の立ち下がりエッジまで、アサートされたまま維持される。
【0092】
このように、制御ロジック40はN_STARTを用いて、EXRDYに対するEISAのタイミング要件を満足し、したがって典型的な状況では割り込みを発生させない、即ち、ビデオ・サブシステムに対する処理では遅延サイクルを導入させないという利点がある。また、EISA拡張バスおよびコントローラ・バスはクロック信号が異なるので、制御ロジック40は、N_STARTを用いて、EISA拡張バスおよびコントローラ・バス間の同期を取る。N_STARTを用いることによって(即ち、BCLKがローの期間)、制御ロジック40は、有効なライト・サイクルを判定する際に、START#の立ち上がりエッジ(少なくとも60ナノ秒遅く発生する。即ち、BCLKの立ち上がりエッジと同期して発生する)を用いる場合よりも、同期時間において少なくとも60ナノ秒の優位を享受するという利点がある。
【0093】
図11のタイミング図は、EISA拡張バス信号BCLK、START#、CMD#、LA、W_RのEARLY_DECODE、HOLD、N_START、VALID_CYCLE、およびEXRDY信号に対する関係を示している。図11が示すビデオ・ライト・サイクルは、プロセッサ34がHLDAを十分に早く付与しないため、制御ロジック40がEXRDYをローに駆動し、第2のビデオ・ライト・サイクルに続いて遅延サイクルを挿入しなければならない場合である。第1および第2のビデオ・ライト・サイクルは、連続ビデオ・ライト・サイクルを構成する。本発明によれば、第2のビデオ・ライト・サイクルは、第1のライト・サイクルが遅延サイクルを誘発しても、遅延サイクルを誘発しないという利点がある。BCLKのエッジには1〜14まで連続的に付番してあり、図11の説明の明確化を図っている。図11に示すHLDA信号は、プロセッサ34からのHLDA信号を、EISA拡張バスのクロックBCLKと同期させたものである。
【0094】
EISAバス・インターフェース18は、ビデオ・サブシステムに書き込みを行いたいCPU12の代わりに、BCLKの立ち下がりエッジ2付近で、LA信号上にビデオ・アドレス範囲のアドレスを発生する。制御ロジック40は、これに応答して、EARLY_DECODE信号をアサートする。その後すぐに、制御ロジック40はプロセッサ34へのHOLDをアサートする。HOLD信号がアサートされるのは、EARLY_DECODE信号がアサートされるときであり、VALID_CYCLE信号がアサートされ続ける限りHOLD信号もアサートされたままでいる。VALID_CYCLEの間中、HOLDをアサートさせ続けることによって、制御ロジック40は、コントローラ・メモリ32へのビデオ・データの書き込みが完了するまで、コントローラ・バスの所有権を保持する。加えて、HOLD信号は、EARLY_DECODEがアサートされ、無効タイマ(defeat timer)が終了していない場合にも(以下で論ずる)、アサートされる。HOLD信号はプロセッサ34のクロックと同期している。BCLKの立ち上がりエッジ3で、バス・インターフェース18はSTART#(アクティブ・ローの信号)をアサートし、このサイクルのアドレス・フェーズを開始する。バス・インターフェース18はW_R信号をアサートし、ライト・サイクルであることを示す。
【0095】
BCLKの立ち下がりエッジ4において、BCLKがローとなり、START#がアサートされてローとなるので、これに応答して制御ロジック40はN_STARTをアサートする。N_STARTは、BCLKの立ち上がりエッジ5でCMD#がアサートされてローになるまで、アサートされたままでいる。アクティブなN_STARTは、W_Rが有効であることを意味し、W_Rはライト・サイクルを示し、EARLY_DECODEはビデオ・アドレス範囲内のアドレスを示すので、制御ロジック40は対応してVALID_CYCLEをアサートする。BCLKの立ち下がりエッジ4の後にアサートされたVALID_CYCLEに応答して、(本例では)HLDAが未だ付与されていないので、制御ロジック40はEXRDYをローに駆動する。本例では、HLDAが付与されるのは、BLCKの立ち上がりエッジ5付近である。制御ロジック40は、HLDAが付与されるBCLKの次の立ち下がりエッジ、即ち、BCLKの立ち下がりエッジ6の後まで、EXRDYをローに駆動し続ける。何故なら、EXRDYはBCLKの立ち下がりエッジ上でバス・インターフェース・ユニット18によってサンプリングされ、一方、CMD#はアサートされてローとなるからである。
【0096】
バス・インターフェース・ユニット18は、BCLKの立ち上がりエッジ5の後、CMD#をアサートしてローとし、START#をディアサートしてハイとして、ライト・サイクルのデータ・フェーズを開始する。先に注記したように、ここでは、START#の立ち上がりエッジおよびDMD#の立ち下がりエッジは、EISA拡張バスの仕様によれば、間隔が開くかあるいは重なり合う可能性がある。前述のように、N_STARTはこのギャップを覆うことにより、VALID_CYCLEが有効なビデオ・ライト・サイクルを最初から最後まで示すことができるという利点がある。
CMD#がアサートされてローとなっている間のBLCKの立ち下がりエッジ、即ち、BCLKの立ち下がりエッジ6でローに駆動されたEXRDYに応答して、バス・インターフェース・ユニット18は、BCLKの立ち上がりエッジ9で1クロック・サイクル余計にCMD#のディアサート(ハイ)を遅らせることによって、余分なBCLKサイクルを待つ、即ち、遅延サイクル(または待機サイクル)を挿入する。CDM#をディアサートしてハイとすることによって、ライト・サイクルの終了を示す。
【0097】
LA信号上のアドレスは、第2のライト・サイクルの間ビデオ範囲にあり続けるので、制御ロジック40はEARLY_DECODEをアサートし続け、対応してHOLDもアサートし続けることにより、アサートされたHLDAによって表わされるように、第2のバス・サイクルの終了時までコントローラ・バスの所有権を保持する。
BCLKの立ち上がりエッジ9の後、バス・インターフェース・ユニット18は(EISAブリッジングを用いて)START#をアサートし、第2のビデオ・ライト・サイクルのアドレス・フェーズの開始を表わす。第2のライト・サイクルは、第1のライト・サイクルと同様であるが、制御ロジック40が既にコントローラ・バスの所有権を有しているので、EXRDYは第2のライト・サイクルの間、ニゲートされない(ローにならない)点で相違する。したがって、バス・インターフェース・ユニット18は、BLCKの立ち上がりエッジ13付近で(即ち、第1のライト・サイクルにおけるよりも1クロック・サイクル分早く)CMD#をディアサートしてハイとし、第2のライト・サイクルのデータ・フェーズを終了する。
また、第2のビデオ・ライト・サイクルは、連続ビデオ・ライト・サイクルではないことも表しており、このサイクルでは、制御ロジック40がEXRDYをローに駆動して遅延サイクルを挿入する必要がないように、HLDAを十分に早く付与するようにしている。
【0098】
本発明の一実施例では、サーバ・コントローラ26は、ビデオ・コントローラ20とビデオ・メモリ22から成る、サーバ10のビデオ・サブシステムに類似したコントローラ・ビデオ・サブシステム(図示せず)を更に備えている。コントローラ・ビデオ・サブシステムは、システム・コンフィギュレーション・ソフトウエアによって選択的にディゼーブルすることができる。コントローラ・ビデオ・サブシステムはISA装置である。コントローラ・ビデオ・サブシステムをイネーブルすると、サーバ・コントローラ26は、EISA拡張バスのEXRDY信号ではなく、ISAバスの信号CHRDYをニゲートする。
【0099】
コントローラ・ビデオ・サブシステムの目的は、サーバ10上のVGAコントローラがPCI VGAコントローラである場合、ビデオ・データの書き込み動作が拡張バス上に現れるようにすることである。これがないと、PCI VGAコントローラがビデオ・ライトをデコードしこれに応答するので、バス・インターフェース・ユニット18にビデオ・ライトをEISA拡張バスに送出させないようになる。その結果、EISA拡張バス上にはビデオ・ライト・サイクルがなくなる。即ち、サーバ・コントローラ26が監視するビデオ・ライト・サイクルがなくなってしまう。したがって、PCI VGAコントローラがシステム内にある場合、ユーザはサーバ・コントローラ26上のコントローラ・ビデオ・サブシステムをイネーブルし、PCI VGAコントローラをディゼーブルすることにより、ビデオ・ライト・サイクルの監視および再生シーケンスの捕獲ができるようにしなければならない。
【0100】
バス・インターフェース・ユニット18(即ち、EISAバス・ブリッジ)の実現においては、拡張バスのアドレス信号上のアドレスを駆動し、拡張バス(即ち、EISAバス)上の当該アドレスをラッチし駆動して、有効なサイクルの終了時に、当該有効サイクルの後に発生するアイドル・サイクルの間、アドレス信号が浮動しないようにすることは一般的である。この状態では、制御ロジック40にEARLY_DECODE信号をアサートさせ、結果的に、比較的長い時間にわたってプロセッサ34へのHOLDを連続的にアサートさせる。その結果、プロセッサ34は不必要に飢える(starved)ことになる。この問題に対する1つの解決策は、CMD#の立ち上がりエッジ上で、サイクルの終了時にHOLDをニゲートすることであろう。しかしながら、その結果、制御ロジック40は、EXRDYをニゲートして遅れを導入することにより、1ブロックの連続ライト・サイクルの各ライト・サイクル毎に、制御バスの仲裁を再度行い、EISA拡張バスおよびコントローラ・バス間で再度同期をとらなければならない。
【0101】
本発明は、無効タイマを用いて、上述の問題を解決する。制御ロジック40は、EISA拡張バスのアドレス信号が未だビデオ・アドレス範囲内のアドレスを有する場合、サイクルの後に所定数のBCLKを計数するカウンタを備えている。START#がアサートされることなく、カウンタが終了カウントに到達した場合、制御ロジック40はHOLDをニゲートし、制御ロジック40がビデオ・アドレス範囲内のアドレスをデコードすることによる次のSTART#のアサートまで、HOLDをアサートしない。
【0102】
このように、無効タイマを用いることにより、制御ロジック40は、制御ロジック40がSTART#のアサートまで待ってHOLDをアサートする場合に可能となるよりも早く、HOLDをアサートし、ビデオ・サブシステムへのビデオ・データの書き込みの間に遅延サイクルを導入しなくても済む可能性が高くなるという利点がある。更に、無効タイマは、制御ロジック40をイネーブルし、1ブロックの連続有効ビデオ・ライト・サイクルの間、HOLDをアサート状態に保持することにより、ビデオ・サブシステムへのビデオ・データの書き込みの間、サーバ10に遅延サイクルを導入するのを回避するという利点もある。
【0103】
遠隔端末28は、通信ユニット36を介して、サーバ・コントローラ26との通信接続を確立する。遠隔端末28およびサーバ・コントローラ26間の接続は、一般的に、帯域外接続(out-of-band connection)または非同期接続と呼ばれている。帯域外接続とは、ローカル・エリア・ネットワーク・イーサネット接続のような標準的なネットワーク媒体を通じてではなく、電話線または直接直列接続を介して確立されるネットワーク接続のことである。帯域外接続を設けることにより、サーバ・コントローラ26は、サーバ10が通常に機能している場合、またはオペレーティング・システムのクラッシュや、サーバ10が接続されているローカル・エリア・ネットワーク上の障害のような障害が発生した場合のいずれの場合にも、遠隔端末28との通信を確立することができる。
【0104】
第1のモードでは、遠隔端末28は、ANSIの端末エミュレーション・プロトコルを用いて、サーバ・コントローラ26との接続を確立する。このプロトコルのことを以降テキスト・プロトコルと呼ぶことにする。第2のモードでは、遠隔端末28は、サーバ・コントローラ26と二地点間プロトコル(PPP:point-to-point protocol)を確立する。PPPについては、Internet Engineering Task Force (「IETF」)に記載されている。そのUniform Resource Locator(「URL」)は、http://www.ietf.cnri.reston.va.us/home.htmlである。特に、RFC1661、1662、1663は本発明に関連があり、この言及により本願にも含まれているものとする。遠隔端末28がサーバ・コントローラ26を呼び出すと、サーバ・コントローラ26のプロセッサ34上で実行するサーバ・コントローラ26のソフトウエアは、2つのデータ・リンク・レイヤ・プロトコルの内どちらを、遠隔端末28が使用しているのかを自動的に判定するという利点がある。
【0105】
第1のモードでは、サーバ・コントローラ・コンソール・アプリケーションと呼ばれる、サーバ・コントローラ26のソフトウエアの一部が、テキスト・プロトコルを用いて、遠隔端末28と通信する。サーバ・コントローラ・コンソール・アプリケーションは、遠隔端末28が、再生シーケンスの閲覧(viewing)のようなサーバ・コントローラ26の様々な構成にアクセスできるようにする。加えて、サーバ・コントローラ・コンソール・アプリケーションは、、遠隔リセットの実行、警報およびログイン情報の管理、遠隔地からのコンソールへのアクセス、サーバ10のイベント・ログ、エラー・ログおよびステータス・ログの閲覧を、システム管理者に可能とする。図2のa〜cを再び参照すると、サーバ・コントローラ・コンソール・アプリケーションの3種類のメニュー画面が示されている。遠隔端末28は、通常、コンピュータであり、既知の製品であるSYMANTEC pcANYWHEREまたはDATASTORM TECHNOLOGY ProComm のような、種々の販売会社から入手可能な一般的なANSIの端末エミュレーション・ソフトウエア・アプリケーションを実行することによって、サーバ・コントローラ26と通信を行う。
【0106】
第2のモードでは、遠隔端末28は、ローカル・エリア・ネットワーク(LAN)のそれと同様のPPP接続を通じて、サーバ・コントローラ26とのTCP/IPリンクを確立する。遠隔端末28はCOMPAQ Insight Manager (CIM)を実行し、TCP/IP接続を通じてサーバ・コントローラ26との通信を行う。サーバ・コントローラ26は、2つの方法で、CIMと通信を行う。すなわち、第1に、サーバ・コントローラ26は、TELNET接続を通じてCIMと通信を行い、テキスト・プロトコルを用いる第1モードと全く同様に、サーバ・コントローラ・コンソール・アプリケーションを実行する。
【0107】
第2に、サーバ・コントローラ26は、サーバ10を管理する目的のために、CIMに対して、SNMPパケットの送受信を行う。例えば、サーバ10はサーバ10上の障害またはその他のイベントを検出し、SNMPトラップ・パケットを、サーバ・コントローラ26を通じて、遠隔端末28上で実行中のCIMに送り、サーバ10が接続されているLAN上のクライアント上でCIMが実行されているかのように、システム管理者にそのイベントについて通知する。加えて、サーバ10の障害の場合、サーバ・コントローラ26はその障害を検出し、SNMPトラップ・パケットをCIMに自動的に送る。この第2のモード、即ち、PPP接続によるモードでは、サーバ・コントローラ26は、同時に、サーバ・コントローラ・コンソール・アプリケーションおよびSNMPパケットによって、遠隔端末28と通信を行うこともできる。
【0108】
CIMによるサーバ10の管理の別の例は、遠隔端末28がサーバ・コントローラ26を通じて「要求獲得」SNMPパケットをサーバ10に送り、サーバのサブシステムの1つの状態(health)のような、サーバに関する管理情報を要求することである。サーバ・コントローラ26はSNMPパケットをオペレーティング・システムに送出する。オペレーティング・システムは、要求された情報を集め、「応答獲得」パケットをサーバ・コントローラ26に送る。一方、サーバ・コントローラ26はパケットをCIMに送出する。
【0109】
WINDOWS NTのRemote Access Services (RAS)は、PPP接続を確立し、ヌル・モデム(null-modem)によって接続された2台のコンピュータ間の通信を提供する。NT RASはこのPPP接続を確立する、所有権を主張する方法(proprietary method)を用いる。この方法のことを以降「予備PPPプロトコル」(pre-PPP protocol)と呼ぶことにする。これは2台のコンピュータ間で1対の文字列を交換するためのものである。接続を確立したい第1のコンピュータが、文字列"CLIENT"を第2のコンピュータに送る。次に、第2のコンピュータは、"CLIENT"文字列を受け取った後、文字列"CLIENTSERVER"を第1のコンピュータに送る。一旦この2つの文字列の交換が行われたなら、2台のコンピュータは必要な文字パケットの交換に進み、PPP接続を確立する。標準的なPPP接続では、この2つの文字列の初期交換は必要でない。サーバ・コントローラ26は、ヌル・モデムを通じたNT RASとのPPP接続、および標準的なPPPプロトコルを用いた遠隔端末28とのPPP接続の双方を確立することができる。
【0110】
次に図12を参照すると、サーバ・コントローラ26がどの通信プロトコルが遠隔端末28から送られているのかをどのようにして検出するのかを示すフローチャートが示されている。遠隔端末28が接続を確立する前に、サーバ・コントローラ26のソフトウエアは、ステップ130において、サーバ・コントローラ26のソフトウエアの中にある3つの状態マシンをリセットする。テキスト・プロトコル、PPPプロトコル、および予備PPPプロトコルという有効なプロトコル各々に1つの状態マシンが存在する。
【0111】
サーバ・コントローラ26が通信ユニット36からの割り込みを待っている間、プロセッサ34は再生シーケンスを処理することができる。キャリア信号がサーバ・コントローラ26上で受信されたとき、コントローラ26内のソフトウエアは、ステップ134において、状態マシンをリセットし、ステップ136においてタイマを設定する。一実施例では、タイマは30秒後に終了するように設定される。サーバ・コントローラ26のソフトウエアは、ステップ138において、タイマが終了したか否かについて判定を行う。タイマが終了していた場合、サーバ・コントローラ26のソフトウエアは、ステップ140において、サーバ・コントローラ26内の上位タスクに、プロトコルはテキスト・プロトコルであると伝達することによって、プロトコルがテキスト・プロトコルであることを宣言する。
【0112】
遠隔端末28から文字または信号を受信する前に、サーバ・コントローラ26内のソフトウエアはビデオ画面変化を処理することができる。一旦割り込みが発生し、文字または信号の存在が示されたなら、サーバ・コントローラ26のソフトウエアは、ステップ142において、「無キャリア」信号が通信ユニット36から送られて、遠隔端末28からキャリアの損失が示されたか否かについて判定を行う。キャリアが失われていた場合、サーバ・コントローラ26のソフトウエアは、ステップ144において、タイマをクリアし、ステップ130に戻る。
【0113】
ステップ142において「無キャリア」信号が受信されなかった場合、サーバ・コントローラ26のソフトウエアは、ステップ146において、文字が受信されたか否かについて判定を行う。受信されていない場合、サーバ・コントローラ26のソフトウエアはステップ138に戻り、タイマが終了するのを待つか、あるいは信号または文字が到達したことを示す割り込みが受信されるのを待つ。
【0114】
ステップ146において文字が受信された場合、サーバ・コントローラ26のソフトウエアは、ステップ148において、その文字を3つのプロトコルの状態マシンに渡す。ステップ150において、状態マシンに有効なプロトコルを検出したものがない場合、サーバ・コントローラ26のソフトウエアはステップ138に戻る。ステップ150において、状態マシンの内の1つが有効なプロトコルを検出した場合、サーバ・コントローラ26のソフトウエアはステップ152においてタイマをクリアし、次にステップ154において、3つのプロトコルの内どれが検出されたのかを上位タスクに宣言する。
【0115】
プロセッサ34は、図11の説明において述べた通信ユニット36のような種々の割り込みソースからの割り込みを受け取るように構成されている。プロセッサ34は、割り込み記述子テーブルを備えており、テーブル内の各エントリが、割り込みソースに対応する割り込みサービス・ルーチンを参照する。割り込みソースの1つが割り込みを発生した場合、プロセッサ34は、この割り込みソースに対応する割り込み記述子テーブル内のエントリによって参照される、割り込みサービス・ルーチンの実行を開始する。割り込みサービス・ルーチンはサーバ・コントローラ26のソフトウエアの一部であり、プロセッサ34上で実行する。通信ユニット36は、遠隔端末28からの文字、あるいは「キャリア」または「無キャリア」のような信号の受信時に、プロセッサ34に割り込みをかけるように構成されている。割り込みサービス・ルーチンは、プロセッサ34上で実行する他のソフトウエア・タスクと通信を行い、遠隔端末28との通信に便宜を図る。
【0116】
最初に、即ち、遠隔端末28がサーバ・コントローラ26との接続を確立する前に、通信ユニット36に対応する割り込み記述子テーブルのエントリは、プロトコル検出割り込みサービス・ルーチンへの参照によって、分類される(populate)。プロトコル検出割り込みサービス・ルーチンは、サーバ・コントローラ26のソフトウエアの、3つのプロトコル状態マシンを含む部分である。また、プロトコル検出割り込みサービス・ルーチンは、サーバ・コントローラ26のソフトウエアの、通信ユニット36から入来する文字を受け取るソフトウエアの部分でもある。プロトコル検出割り込みサービス・ルーチンによって受け取られる各文字は、3つのプロトコル状態マシンへの入力として作用する。
【0117】
一旦ステップ140またはステップ154のいずれかにおいて有効なプロトコルが検出されたことが上位タスクに通知されたなら、上位タスクは、検出された特定のプロトコルに専用の割り込みサービス・ルーチンへの参照により、通信ユニット36に対応する割り込み記述子テーブルのエントリを分類する。PPPおよび予備PPPプロトコルは、同じ割り込みサービス・ルーチンを有する。
【0118】
表12〜16(表12には表13が、表13には表14が、表15には表16が、それぞれ連続する)に示される補足資料は、PPP割り込みサービス・ルーチンの部分のアセンブリ言語によるソース・コード・リストである。このコード部分は、割り込みサービス・ルーチンがどのようにして入来する文字を受け取って処理し、有効なPPPパケット全体の有効性の判断および/またはこのPPPパケットの形成を行うかを示したものである。一旦PPPパケットが形成されたなら、割り込みサービス・ルーチンは、当該パケットの存在に関して、サーバ・コントローラ26のソフトウエアの上位タスクに通知する。
【0119】
【表12】
【表13】
【表14】
【表15】
【表16】
【0120】
次に図13を参照すると、テキスト・プロトコルの状態マシンを表わす状態図が示されている。テキスト・プロトコルの状態マシンが3つの連続したアスキー「リターン」文字(0X20)を検出した場合、遠隔端末28から有効なテキスト・プロトコルが検出されたことを示す。TEXT_INT状態156において、状態マシンがキャリッジ・リターン文字を受け取った場合、状態マシンはTEXT_ONE状態157に遷移する。その他の場合、状態マシンはTEXT_INT状態156に留まる。TEXT_ONE状態157において、状態マシンがキャリッジ・リターン文字を受け取った場合、状態マシンはTEXT_TWO状態158に遷移する。その他の場合、状態マシンはTEXT_INIT状態156に戻る。TEXT_TWO状態158において、状態機械がキャリッジ・リターン文字を受け取った場合、状態マシンはTEXT_DETECTED状態159に遷移する。その他の場合、状態マシンはTEXT_INIT状態156に戻る。状態マシンがTEXT_DETECTED状態159になった場合、サーバ・コントローラ26のソフトウエアの上位タスクに、有効なテキスト・プロトコルが検出されたことを通知する。
【0121】
図14は、予備PPPの状態マシンを表わす状態図が示されている。予備PPP状態マシンが文字列"CLIENT"を検出した場合、遠隔端末28から有効な予備PPPプロトコルが検出され、対応して文字列"CLIENTSERVER"を遠隔端末28に送信することを示す。CLIENT_INT状態162において、状態マシンが「C」を受け取った場合、状態マシンはCLIENT_C状態163に遷移する。その他の場合、状態マシンはCLIENT_INT状態162に留まる。CLIENT_C状態163において、状態マシンが「L」を受け取った場合、状態マシンはCLINET_L状態164に遷移する。この進展は、以降の状態164、165、166の各々についても維持され、文字列"CLIENT"の可能な受け取りを示す。この文字列が完全に受け取られなかった場合、CLIENT_INIT状態162に戻る遷移が行われる。文字列全体を受け取ったときに、状態マシンはCLIENT_DETECTED状態168に遷移し、サーバ・コントローラ26のソフトウエアにおける上位タスクに、有効な予備PPPプロトコルが検出されたことを通知する。
【0122】
以下に示すのは、有効なPPPパケットを形成する文字列のフォーマットである。
【0123】
SYNCH ADDRESS CONTROL PROTOCOL ... data ... CRClow CRChigh SYNCH
SYNCH文字は16進数の値0x7Eで表され、ADDRESS文字は16進数の値0xFFで表され、CONTROL文字は16進数の値0x03で表わされる。ADDRESSおよびCONTROL文字は任意であるが、一方がある場合、両方の文字がなければならない。PROTOCOL文字(群)は、最初のバイトの最下位ビット(LSB)に応じて、1バイトまたは2バイトとなる。最初のバイトの最下位ビットがセットされている(即ち、1)場合、PROTOCOL文字は、圧縮された1プロトコル・バイトのみから成る。最初のバイトのLBSがクリアされている(即ち、0)場合、PROTOCOL文字は、圧縮されていない2プロトコル・バイトから成り、第1のバイトが下位バイト、第2のバイトが上位バイトとなる。「データ」バイトはパケットのペイロードである。CRClowおよびCRChigh文字は、それぞれ、データ・バイト上の巡回冗長度チェック(CRC)の下位および上位バイトから成る。
【0124】
図15を参照すると、PPPの状態マシンを表わす状態図が示されている。PPPの状態マシンが有効なPPPパケットを検出した場合、遠隔端末28から有効なPPPプロトコルが検出されたことを示す。PPP_INIT状態170において、状態マシンがSYNCH文字を受け取ると、状態マシンはPPP_SYNCH状態172に遷移する。その他の場合、状態マシンはPPP_INT状態170に留まる。PPP_SYNCH状態172において、状態マシンがADDRESS文字を受け取ると、PPP_ADDRESS状態174に遷移する。その他の場合、状態マシンはPPP_CONTROL状態176に遷移する。PPP_ADDRESS状態174において、状態マシンがCONTROL文字を受け取ると、状態マシンはPPP_CONTROL状態176に遷移する。あるいは、状態マシンがSYNCH文字を受け取ると、状態マシンはPPP_SYNCH状態172に遷移する。その他の場合、状態マシンはPPP_INT状態170に遷移する。PPP_CONTROL状態176において、状態マシンがSYNCH文字を受け取ると、状態マシンはPPP_SYNCH状態172に遷移する。その他の場合、文字のLSBがクリアされているなら、PPP_NOT_COMPRESSED状態178に遷移し、この文字を非圧縮2プロトコル・バイトの下位バイトとして扱い、この文字のLSBがセットされているなら、PPP_COMPRESSED状態180に遷移し、この文字を単一の圧縮プロトコル・バイトとして扱う。PPP_NOT_COMPRESSED状態178において、状態マシンがSYNC文字を受け取ると、PPP_SYNCH172状態に遷移する。その他の場合、状態マシンはPPP_COMPRESSED状態180に遷移し、非圧縮2プロトコル・バイトの上位バイトとしてこの文字を扱う。PPP_COMPRESSED状態180において、状態マシンがSYNCH文字を受け取ると、状態マシンはPPP_DETECTED状態182に遷移する。その他の場合、状態マシンはPPP_COMPRESSED状態180に留まり、この文字をデータまたはCRCバイトとして扱う。状態マシンがPPP_DETECTED状態182に到達した場合、サーバ・コントローラ26のソフトウエア内の上位タスクに、有効なPPPプロトコルが検出されたことを通知する。
【0125】
サーバ・コントローラ26は、任意のダイアル・バック・セキュリティ(dial-back security)機能を備え、無許可のユーザがサーバ・コントローラ26を通じてサーバ10を不正に変更するのを防止する。サーバ・コントローラ26のコンソール・アプリケーション・ソフトウエアを用いて、システム管理者は、各々ユーザ名、パスワードおよび電話番号を含むユーザ・プロファイルのリストを構成する。ユーザが発信してきた場合、サーバ・コントローラ26はユーザからユーザ名およびパスワードを受信し、ユーザ・プロファイルのリストからそのユーザ名およびパスワードを確認し、そして切断する。ユーザ名およびパスワードがユーザ・プロファイルのリストにおいて確認された場合、サーバ・コントローラ26は、ユーザ・プロファイルのリスト内にある対応する電話番号を呼び出す。許可されているユーザには、遠隔アクセスは通常通りに進む。万一侵入者が有効なユーザ名およびパスワードを得ても、しかしながら、侵入者には呼び出しがかからないので、侵入者はサーバ10への接続を失うことになる。
【0126】
サーバ・コントローラ26は、ユーザが発信してきたときに用いられたのと同じ通信プロトコルによって、許可されたユーザに呼び出しをかけるという利点がある。例えば、ユーザが予備PPPプロトコルを用い、WINDOWS NT機からヌル・モデムを通じて接続した場合、サーバ・コントローラ26は予備PPPプロトコルを用いてこのNT機に呼び出しをかける。遠隔端末は、それが発信したのと同じプロトコルを用いてサーバ・コントローラ26と通信することを期待する場合が多いので、これは有用である。
【0127】
次に図16を参照すると、PCB200上に配置された、サーバ・コントローラ26の様々な構成要素が示されている。PCB200は、複数のプレーン(plane)即ち部分に分離されている。第1部分202は拡張バス・インターフェース・ユニット204および検出ロジック30を収容する。第2部分206はプロセッサ30およびコントローラ・メモリ32、ならびに参照番号208で示す二次電源(即ち、電池)を収容する。第3部分210は通信ユニット(即ち、モデム)36を収容する。部分202、206、210は、第1の遮断ユニット212および第2の遮断ユニット214として示す1対の遮断ユニットによって、互いに分離されている。
【0128】
PCB200への電力は、通常、PCB200を接続可能な拡張バスから、エッジ・コネクタ216を介して供給される。エッジ・コネクタ216のピンの内1本は、第1、第2および第3部分202、206、210にそれぞれ供給される主要電源VDDのために用いられる。表示データは拡張バスから監視され、エッジ・コネクタ216の恐らく数本のピンを通じて、インターフェース・ユニット204を通じて検出ロジック30に送出される。例えば、サーバの停電の間にVDDが失われると、遮断ユニット212は2つの機能を果たす。まず、第1部分202内の電力用導体を、第2部分206の電力用導体から切断する。より具体的には、第1部分202内のVDD導体は、遮断ユニット212によって、第2部分206内の電力用導体または導体群から切断される。第2に、第1部分202内の信号用導体は、第2部分206内の信号用導体から切断される。信号用導体が切断されると、信号用導体は三状態化する(tri-stated)。
【0129】
第1の遮断ユニット212と同様、第2の遮断ユニット214も電力用導体および信号用導体を切断する。拡張バスからVDDが遮断され、更に通信ユニット36が遠隔端末28からの通信を検出できなくなった場合、第2の遮断ユニット214はその切断処理を実行する。しかしながら、VDDが得られる場合、または遠隔端末28が通信プロトコルを送っている場合、第2の遮断ユニット214は、第2および第3部分208、210間の結合を行う。
【0130】
遮断ユニット212、214は、電力用導体上にクイック・スイッチを備え、更に信号用導体間にバッファ/ドライバ機能を有する双方向トランシーバを備えていることが好ましい。クイック・スイッチは、National Semiconductor Corp.およびTexas Instruments, Inc.等の販売会社から入手可能であり、共通の制御入力(即ち、出力イネーブルOE入力)を有するパッケージ化されたJFETのアレイとして形成されている。双方向トランシーバは、高容量性負荷を駆動するのに非常に適しており、高速で動作する。適切な双方向トランシーバは、integrated Device Technology, Inc.またはTexas Instruments, Inc. から、三状態出力機能を有する高速CMOSトランシーバとして入手可能である。
【0131】
エッジ・コネクタ216のピンの1つには、充電用導体220が結合されている。充電用導体220は、拡張バスから供給されVDDよりも高く設定された電圧を受けるように構成されている。一実施例によれば、充電用導体220上の所望の電圧は12ボルトであり、この場合、VDDは5ボルトである。充電用導体220によって供給される電圧は、電池208を充電するだけでなく、スイッチング・レギュレータ222のスイッチングをイネーブルするように作用する。例えば、充電用導体220内の電荷がスレショルド値よりも低下した場合、スイッチング・レギュレータ222は、第2部分206および恐らく第3部分210に電池208を結合するように機能する。逆に、充電用導体220上の電荷がスレショルド値を超過している場合、電池208からの出力(即ち、VDDB)は第2部分206および第3部分210には結合されない。代わりに、後者の場合、そこにVDDが供給される。ダイオード224を用いて、導体220上の電荷を終了させる期間中、電池208の放電を防止する。
【0132】
呼び出し指示器226が、第2部分206と同じ電力プレーンに結合されている。具体的には、呼び出し指示器226は、VDDがない期間中、導体228上のVDDBを受け取り、VDDがある場合VDDを受け取る。したがって、呼び出し指示器226は、主電源または二次電源のいずれかから電力を維持し、入来するアナログ呼び出しARNG信号を検出する。ARNGの受信時に、呼び出し指示器226は、デジタル呼び出しDRNG信号を通じて、結果的に得られる通信プロトコルを通信ユニット36に送出する。常に呼び出し指示器226に電力を維持することによって、入来する呼び出しの検出は、VDDの状態には無関係に、常に可能となる。
【0133】
図17は、VDDがVDDBよりもスレショルド量だけ少なくなったか否かについて判定を行う際に使用される比較器230を示す。VDDが偶然許容可能なスレショルドを越えて低下した場合、比較器230はVDDOFF信号を生成する。VDDOFF信号は、第1遮断ユニット212の遮断出力イネーブルOEピン上に現れる。これによって、拡張バスによって供給されるVDDが電池208によって供給されるVDDBよりも低くなった場合に、比較器230は、信号用導体および電力用導体の遮断を行う。
【0134】
図18は、デジタル呼び出しDRNG信号の動作、ならびに第2部分206および第3部分210間の電力用導体および信号用導体の遮断に対するその効果について示すものである。通信ユニット36への電力が最初にオフになっている場合、通信ユニット36へのDRNG信号はプロセッサ34に割り込みを発生する。こうして、プロセッサ34は、通信ユニット36に呼び出し信号があることを通知され、これにより、プロセッサ34はMDMACT信号を通じてそれ自体の割り込みを承認し、かつMDMPWR信号を通じてモデムへの電力供給を承認する。より具体的には、MDMPWR信号は第2の遮断ユニット214の出力イネーブルOE入力に供給される。入来する呼び出しを示すMDMPWRを受信すると、第2の遮断ユニット214は、第2部分206および第3部分210間に延びる電力用導体および信号用導体を結合する。本質的には、DRNGは、通信ユニット36がオンかオフかを示す信号によってゲートされ、このゲートの出力が、プロセッサ34への割り込みとなる。プロセッサ34が割り込みを受け取ったときはいつでも、プロセッサ34のVDDBからの電力は通信ユニット36に供給される。通信ユニット36への電力がオンである場合、割り込みはアサートされない。
【0135】
本発明は多種多様のコンピュータ・システム、多種多様の電気的構成物、多種多様のPCBおよび多種多様の通信プロトコルを用いた応用が可能であることは、本開示から当業者には明らかであろう。更に、ここに示しかつ記載した本発明の形態は、現状における好適な実施例として捕らえるべきことは理解されよう。特許請求の範囲に記載してある本発明の主旨および範囲から逸脱することなく、様々な修正や変更が可能である。したがって、特許請求の範囲はかかる修正や変更全てを含むものとして解釈し、この明細書および図面は限定的な意味ではなく例示的な意味で捕らえるべきことを意図するものである。
【図面の簡単な説明】
【図1】本発明による、遠隔端末からアクセス可能なサーバ・コントローラを用いて構成を変更したホスト・サーバのブロック図である。
【図2】遠隔端末からのアクセスに応答して、サーバ・コントローラが遠隔端末の表示画面に送出する、3種類の画面表示メニューを示す図である。
【図3】図1に示したビデオ・メモリおよびビデオ制御レジスタ(ビデオ・コントローラ内)に使用可能なメモリ・アドレス空間およびI/Oアドレス空間の部分を示す図である。
【図4】サーバ・コントローラの詳細ブロック図である。
【図5】図4に示すプロセッサによって用いられ、サーバCPUから拡張バスに送られる一連のビデオ画面の処理および記憶を行うための種々のバッファのブロック図である。
【図6】所定の連続ビデオ画面を記憶する際に、サーバ・コントローラによって実行されるステップを示すフローチャートである。
【図7】所定の連続ビデオ画面を記憶する際に、サーバ・コントローラによって実行されるステップを示すフローチャートである。
【図8】遠隔端末上でリセット時のビデオ画面シーケンスを再生する際に、図4のプロセッサが実行するステップを示すフローチャートである。
【図9】遠隔端末上で障害時のビデオ画面シーケンスを再生する際に、図4のプロセッサが実行するステップを示すフローチャートである。
【図10】代表的な障害時画面シーケンスとして提示する表示シーケンスを表わす図である。
【図11】拡張バスの侵入および非侵入が発生する2つの別個のビデオ・ライト・サイクルを示す、種々のEISA拡張バス信号のタイミング図である。
【図12】遠隔端末によって使用可能な種々の通信プロトコルを検出する際に、サーバ・コントローラが実行するステップを示すフローチャートである。
【図13】遠隔端末から送られたテキスト通信プロトコルを検出する際に使用する、テキスト・プロトコルの状態マシンを示す状態図である。
【図14】遠隔端末から送られた予備二地点間(PPP)通信プロトコルを検出する際に使用する、予備PPPプロトコルの状態マシンを示す状態図である。
【図15】遠隔端末から送られたPPP通信プロトコルを検出する際に使用する、PPPのプロトコル状態マシンを示す状態図である。
【図16】拡張バス上で結合するように構成されたPCB上で実施されるサーバ・コントローラを示すブロック図である。
【図17】図16の前記PCB内に配置されている電力プレーン間に延在する信号導体を遮断する際に使用する比較ロジックを示す図である。
【図18】通信ユニットが遠隔端末から信号を受信している間に、信号導体を結合し、通信ユニットの電力プレーンに給電するために用いられる信号を示す説明図である。
Claims (4)
- サーバ・コントローラにおいて、
コントローラ・メモリとプロセッサとの間に配置されたコントローラ・バスと、
サーバと関連する拡張バスと前記コントローラ・バスとの間に結合されており、前記拡張バス上の表示データの書き込みサイクルを検出し、該表示データを、前記書き込みサイクルが終了する前に、前記コントローラ・メモリに送る検出ロジックと
を備え、
前記プロセッサは、前記コントローラ・バスのマスタシップを前記検出ロジックに許可して、該検出ロジックが前記拡張バス上に信号をアサートして、前記コントローラ・バスの他のマスタシップが前記検出ロジックに許可されるまで、書き込みサイクルの終了を阻止するよう構成されている
ことを特徴とするサーバ・コントローラ。 - 請求項1記載のサーバ・コントローラにおいて、
前記検出ロジックは、前記書き込みサイクルの終了の後に前記拡張バスのクロック・サイクルの所定数をカウントするデフィート・タイマを備え、
前記検出ロジックは、前記所定数の拡張バスのクロック・サイクルが終了すると、前記コントローラ・バスのマスタシップを放棄するよう構成されている
ことを特徴とするサーバ・コントローラ。 - 請求項1又は2記載のサーバ・コントローラにおいて、前記検出ロジックは、ビデオ・アドレス範囲内で生じた書き込みサイクルを復号化するよう構成されていることを特徴とするサーバ・コントローラ。
- 拡張バスを介してサーバからビデオ・コントローラへ送られる表示データの書き込みサイクルをスヌーピングする方法において、
ビデオ・アドレス範囲中で生じる表示デバイスに向けられた表示データの書き込みサイクルを検出するステップと、
コントローラ・メモリに結合されている検出ロジックによって、前記拡張バス上に信号をアサートして書き込みサイクルの終了を阻止することにより、コントローラ・バスのマスタシップを取得するステップと、
前記書き込みサイクルの中で生じる前記表示データを、前記表示データが前記ビデオ・コントローラに送られるのとほぼ同時に、前記コントローラ・メモリに送るステップと、
前記書き込みサイクルの終了時に、前記検出ロジックによって、前記コントローラ・バスのマスタシップを廃棄するステップと
を含むことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US697678 | 1996-08-17 | ||
US08/697,678 US6233634B1 (en) | 1996-08-17 | 1996-08-17 | Server controller configured to snoop and receive a duplicative copy of display data presented to a video controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10116255A JPH10116255A (ja) | 1998-05-06 |
JP3641354B2 true JP3641354B2 (ja) | 2005-04-20 |
Family
ID=24802102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22133297A Expired - Lifetime JP3641354B2 (ja) | 1996-08-17 | 1997-08-18 | 分散型のコンピュータ・システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6233634B1 (ja) |
EP (1) | EP0825536B1 (ja) |
JP (1) | JP3641354B2 (ja) |
DE (1) | DE69718859T2 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026218A (en) * | 1997-06-11 | 2000-02-15 | Sun Microsystems, Inc. | Computer system employing a bus snooping multimedia subsystem for implementing video multicast transactions |
JP4046804B2 (ja) * | 1997-06-26 | 2008-02-13 | 富士通株式会社 | サーバの情報提供装置、サーバの情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体およびサーバの情報提供方法 |
US6750876B1 (en) * | 1997-11-16 | 2004-06-15 | Ess Technology, Inc. | Programmable display controller |
US20060069657A1 (en) * | 1998-10-01 | 2006-03-30 | Freeny Charles C Jr | Multiple customer and multiple location PC service provider system |
EP1145218B1 (en) * | 1998-11-09 | 2004-05-19 | Broadcom Corporation | Display system for blending graphics and video data |
US6636222B1 (en) * | 1999-11-09 | 2003-10-21 | Broadcom Corporation | Video and graphics system with an MPEG video decoder for concurrent multi-row decoding |
US6661422B1 (en) * | 1998-11-09 | 2003-12-09 | Broadcom Corporation | Video and graphics system with MPEG specific data transfer commands |
US6798420B1 (en) | 1998-11-09 | 2004-09-28 | Broadcom Corporation | Video and graphics system with a single-port RAM |
US7982740B2 (en) | 1998-11-09 | 2011-07-19 | Broadcom Corporation | Low resolution graphics mode support using window descriptors |
US6768774B1 (en) | 1998-11-09 | 2004-07-27 | Broadcom Corporation | Video and graphics system with video scaling |
US6577861B2 (en) * | 1998-12-14 | 2003-06-10 | Fujitsu Limited | Electronic shopping system utilizing a program downloadable wireless telephone |
US20020099886A1 (en) * | 1999-05-17 | 2002-07-25 | Emerson Theodore F. | System and method for controlling remote console functionality assist logic |
US6664969B1 (en) * | 1999-11-12 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | Operating system independent method and apparatus for graphical remote access |
US20020082927A1 (en) * | 2000-11-22 | 2002-06-27 | Borenstein Nathaniel S. | Intelligent caching routers |
US6724360B2 (en) * | 2001-04-25 | 2004-04-20 | Citizen Watch Co., Ltd. | Antiferroelectric liquid crystal display |
US20030041162A1 (en) * | 2001-08-27 | 2003-02-27 | Hochmuth Roland M. | System and method for communicating graphics images over a computer network |
US20030058248A1 (en) * | 2001-09-21 | 2003-03-27 | Hochmuth Roland M. | System and method for communicating graphics over a network |
US20030065864A1 (en) * | 2001-10-03 | 2003-04-03 | Dell Products L.P. | System and method supporting remote data processing system management |
US6874060B2 (en) | 2001-12-07 | 2005-03-29 | Dell Products L.P. | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive |
US7287107B2 (en) * | 2002-01-04 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passive PCI throttling in a remote server management controller |
US7038696B2 (en) * | 2002-01-04 | 2006-05-02 | Hewlett-Packard Development Company | Method and apparatus for implementing color graphics on a remote computer |
US7293102B2 (en) * | 2002-03-26 | 2007-11-06 | Hewlett-Packard Development Company | Method and apparatus for storing data and replaying stored data in a temporally accurate manner |
US8063916B2 (en) | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
US7403204B2 (en) * | 2004-08-23 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing changes in a virtual screen buffer |
US8825833B2 (en) * | 2005-03-30 | 2014-09-02 | International Business Machines Corporation | Tracking computer system configuration changes with corresponding message responses |
US8949404B2 (en) * | 2005-05-24 | 2015-02-03 | Hewlett-Packard Development Company, L.P. | Acquiring graphical operating system post-failure screen |
US7944451B2 (en) * | 2007-07-31 | 2011-05-17 | Hewlett-Packard Development Company, L.P. | Providing pixels from an update buffer |
US20090055157A1 (en) * | 2007-08-23 | 2009-02-26 | Beyond Blades Ltd. | Server Having Remotely Manageable Emulated Functions |
JP5180729B2 (ja) * | 2008-08-05 | 2013-04-10 | 株式会社日立製作所 | 計算機システム及びバス割当方法 |
CN102479138A (zh) * | 2010-11-29 | 2012-05-30 | 鸿富锦精密工业(深圳)有限公司 | 利用图像进行错误侦测的系统及方法 |
JP5889848B2 (ja) * | 2013-08-28 | 2016-03-22 | 京セラドキュメントソリューションズ株式会社 | 情報処理端末、印刷用プログラム、印刷装置及び印刷システム |
TW201509151A (zh) * | 2013-08-30 | 2015-03-01 | Ibm | 具安全防護連結之遠端診斷的方法與電腦程式產品及實施該方法之資訊設備 |
US10789197B2 (en) * | 2017-05-12 | 2020-09-29 | Jinghui Zhu | Methods and system for providing software defined microcontroller unit (MCU) |
US11550281B2 (en) | 2017-05-12 | 2023-01-10 | Gowin Semiconductor Corporation | Method and system for providing programmable microcontroller unit (MCU) using two-phase configuration process |
JP6706278B2 (ja) * | 2018-03-27 | 2020-06-03 | キヤノン株式会社 | 情報処理装置、及び情報処理方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4232377A (en) | 1979-04-16 | 1980-11-04 | Tektronix, Inc. | Memory preservation and verification system |
US4281315A (en) * | 1979-08-27 | 1981-07-28 | Bell Telephone Laboratories, Incorporated | Collection of messages from data terminals using different protocols and formats |
EP0079885A4 (en) | 1981-05-27 | 1984-03-01 | Mostek Corp | POWER SUPPLY CONTROL FOR AN INTEGRATED CIRCUIT. |
US4866600A (en) * | 1983-04-27 | 1989-09-12 | Tandy Corporation | Computer video control system |
US4528459A (en) | 1983-06-10 | 1985-07-09 | Rockwell International Corporation | Battery backup power switch |
JPS61133454A (ja) * | 1984-12-03 | 1986-06-20 | Hitachi Ltd | 端末制御方式 |
US4777626A (en) | 1984-12-22 | 1988-10-11 | Tokyo Electric Co., Ltd. | Memory device having backup power supply |
US4683469A (en) * | 1985-03-14 | 1987-07-28 | Itt Corporation | Display terminal having multiple character display formats |
US4924210A (en) * | 1987-03-17 | 1990-05-08 | Omron Tateisi Electronics Company | Method of controlling communication in an ID system |
US4984211A (en) | 1988-02-16 | 1991-01-08 | Texas Instruments Incorporated | Battery backup bus scheme for an ECL BiCMOS SRAM |
JPH0695350B2 (ja) | 1988-08-12 | 1994-11-24 | 三菱電機株式会社 | Icメモリカード用バッテリ回路 |
US5043919A (en) * | 1988-12-19 | 1991-08-27 | International Business Machines Corporation | Method of and system for updating a display unit |
US5063494A (en) * | 1989-04-12 | 1991-11-05 | Unisys Corporation | Programmable data communications controller |
US5170266A (en) * | 1990-02-20 | 1992-12-08 | Document Technologies, Inc. | Multi-capability facsimile system |
US5617532A (en) * | 1990-10-18 | 1997-04-01 | Seiko Epson Corporation | Information processing apparatus and data back-up/restore system for the information processing apparatus |
CA2072198A1 (en) | 1991-06-24 | 1992-12-25 | Scott C. Farrand | Remote console emulator for computer system manager |
CA2072178A1 (en) | 1991-06-24 | 1992-12-25 | Said S. Saadeh | Innate bus monitor for computer system manager |
DE69232164T2 (de) * | 1991-08-22 | 2002-07-18 | Sun Microsystems, Inc. | Netzwerkvideoanbietergerät und-verfahren |
US5282194A (en) * | 1992-08-17 | 1994-01-25 | Loral Aerospace Corporation | Interactive protocol analysis system |
US5353415A (en) * | 1992-10-02 | 1994-10-04 | Compaq Computer Corporation | Method and apparatus for concurrency of bus operations |
US5451933A (en) | 1992-10-19 | 1995-09-19 | Motorola, Inc. | Computer card having power switching capability |
WO1994022253A1 (en) * | 1993-03-20 | 1994-09-29 | International Business Machines Corporation | Method and apparatus for extracting connection information from protocol headers |
US5384747A (en) | 1994-01-07 | 1995-01-24 | Compaq Computer Corporation | Circuit for placing a memory device into low power mode |
US5567993A (en) | 1994-06-23 | 1996-10-22 | Dallas Semiconductor Corporation | Programmable power supply system and methods |
US5623599A (en) * | 1994-07-29 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for processing a synchronizing marker for an asynchronous remote data copy |
US5884028A (en) * | 1994-07-29 | 1999-03-16 | International Business Machines Corporation | System for the management of multiple time-critical data streams |
US5537533A (en) * | 1994-08-11 | 1996-07-16 | Miralink Corporation | System and method for remote mirroring of digital data from a primary network server to a remote network server |
US5615334A (en) * | 1994-10-07 | 1997-03-25 | Industrial Technology Research Institute | Memory reflection system and method for reducing bus utilization and device idle time in the event of faults |
US5796566A (en) * | 1996-08-16 | 1998-08-18 | Compaq Computer Corporation | Printed circuit board having conductors which can be decoupled for isolating inactive integrated circuits connected thereto |
US5857074A (en) * | 1996-08-16 | 1999-01-05 | Compaq Computer Corp. | Server controller responsive to various communication protocols for allowing remote communication to a host computer connected thereto |
-
1996
- 1996-08-17 US US08/697,678 patent/US6233634B1/en not_active Expired - Lifetime
-
1997
- 1997-08-13 DE DE69718859T patent/DE69718859T2/de not_active Expired - Lifetime
- 1997-08-13 EP EP19970306154 patent/EP0825536B1/en not_active Expired - Lifetime
- 1997-08-18 JP JP22133297A patent/JP3641354B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69718859T2 (de) | 2003-10-09 |
JPH10116255A (ja) | 1998-05-06 |
US6233634B1 (en) | 2001-05-15 |
EP0825536B1 (en) | 2003-02-05 |
EP0825536A2 (en) | 1998-02-25 |
EP0825536A3 (en) | 1999-03-10 |
DE69718859D1 (de) | 2003-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3790333B2 (ja) | 分散型のコンピュータ・システム | |
JP3641354B2 (ja) | 分散型のコンピュータ・システム | |
JPH10105486A (ja) | 分散型のコンピュータ・システム | |
US5796566A (en) | Printed circuit board having conductors which can be decoupled for isolating inactive integrated circuits connected thereto | |
US7429990B2 (en) | Network management card for use in a system for screen image capturing | |
JP4146089B2 (ja) | パーソナルコンピュータにリモートアクセスするためのシステム | |
US6189109B1 (en) | Method of remote access and control of environmental conditions | |
WO2007036091A1 (fr) | Systeme d’affichage multiecran et procede de reglage automatique du mode d’affichage | |
US6128285A (en) | Monitoring of a packet telephony device via a control device | |
US7734948B2 (en) | Recovery of a redundant node controller in a computer system | |
US6819322B2 (en) | Method and apparatus for detecting potential lock-up conditions in a video graphics controller | |
US9608884B2 (en) | System and method for remote management of a computer | |
KR100399086B1 (ko) | 애플리케이션 크래시후의 비디오 스택으로의 액세스 유지 | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
Cisco | Using Debug Commands | |
JP3465637B2 (ja) | サーバ及びその制御方法 | |
TWI766567B (zh) | 多屏幕顯示控制裝置 | |
CN117850851A (zh) | 一种高可靠且热升级友好的虚拟交换机软件系统 | |
JP2000013467A (ja) | 回線モニタ方法および回線モニタ装置 | |
JPS6385821A (ja) | 端末装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040421 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040421 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040528 |
|
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: 20050114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050121 |
|
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: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130128 Year of fee payment: 8 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |