JPH096459A - 多重レベル延期タイマを有するコンピュータ・システム及び方法 - Google Patents

多重レベル延期タイマを有するコンピュータ・システム及び方法

Info

Publication number
JPH096459A
JPH096459A JP8127560A JP12756096A JPH096459A JP H096459 A JPH096459 A JP H096459A JP 8127560 A JP8127560 A JP 8127560A JP 12756096 A JP12756096 A JP 12756096A JP H096459 A JPH096459 A JP H096459A
Authority
JP
Japan
Prior art keywords
task
routine
state
inactivity
timer
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.)
Granted
Application number
JP8127560A
Other languages
English (en)
Other versions
JP3341970B2 (ja
Inventor
Dwayne Thomas Crump
ドゥエイン・トーマス・クランプ
Steven Taylor Pancoast
スティーブン・テイラー・パンコースト
Herbert Stanley Steelman
ハーバート・スタンレイ・スティールマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH096459A publication Critical patent/JPH096459A/ja
Application granted granted Critical
Publication of JP3341970B2 publication Critical patent/JP3341970B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ・システムが無人操作モードで
再開される場合に、システムが延期されるまでの時間を
任意に選択することにより、消費電力を管理する。 【解決手段】 コンピュータ・システムが、複数の延期
タイマを使用する延期及び再開機能を有する。複数の延
期タイマは、システムが有人操作モードにパワーアップ
されるとき、長いユーザ不活動期間の後に延期(中断)
し、無人操作モードにパワーアップされるとき、短いユ
ーザ不活動期間の後に延期するように実行される。シス
テムが無人操作モードに起こされ、ユーザ活動が続いて
検出される場合、システムは長いユーザ不活動期間の後
に延期するように変更される。複数のタイマは、2つの
異なる値に向けて再始動される単一のタイマ、または異
なる満了値を有する2つの独立のタイマにより実現され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にコンピュータ
・システム・アーキテクチャに関し、特に、システム延
期(サスペンド)/再開(レジューム)機能、及び複数
の延期タイマを有するデスクトップ・コンピュータ・シ
ステムに関する。延期タイマは、システムが有人操作
(attended)モードにブートされるとき、長い不活動期
間の後に延期(中断)し、無人操作(unattended)モー
ドにブートされるとき、短い不活動期間の後に延期する
ように実行される。
【0002】
【従来の技術】パーソナル・コンピュータ・システムは
既知である。パーソナル・コンピュータ・システムは一
般に、そして特にIBMパーソナル・コンピュータは、
今日の近代社会の多くの分野において、コンピュータ能
力を提供するために広範に使用されている。パーソナル
・コンピュータは通常、デスクトップ、据置型(floors
tanding)、またはポータブル・マイクロプロセッサと
して定義され、単一の中央処理ユニット(CPU)及び
それに関連付けられる揮発及び不揮発メモリ(全てのR
AM及びBIOS ROMなど)、システム・モニタ、
キーボード、1つ以上のフレキシブル・ディスケット・
ドライブ、固定ディスク記憶ドライブ("ハード・ドラ
イブ"としても知られる)、いわゆる"マウス"・ポイン
ティング・デバイス、及びオプションのプリンタを有す
る。これらのシステムの1つの差別的特長は、これらの
コンポーネントを電気的に相互に接続するマザーボード
またはシステム・プレーナの使用である。これらのシス
テムは主に、独立のコンピュータ能力を単一のユーザに
提供するように設計され、個人用または小ビジネス用に
購入されるように安価な価格に設定される。こうしたパ
ーソナル・コンピュータ・システムの例に、IBMのPE
RSONAL COMPUTER AT及びIBMのPERSONAL SYSTEM/1
(IBM PS/1)がある。
【0003】パーソナル・コンピュータ・システムは通
常、文書処理、スプレッドシートによるデータ処理、デ
ータベース内のデータの収集及び関連付け、グラフィッ
クスの表示、システム設計ソフトウェアを用いた電気ま
たは機械システムの設計など、様々な活動を達成するソ
フトウェアを実行するために使用される。
【0004】13の関連出願は、正常動作状態、待機状
態、延期状態、及びオフ状態の4つの能力管理状態を有
するコンピュータ・システムを開示する。オフ状態、正
常動作状態、及び延期状態の間で変化するために、1つ
のスイッチが使用される。
【0005】本発明のコンピュータ・システムの正常
(ノーマル)動作状態は、任意のデスクトップ・コンピ
ュータの正常動作状態と事実上同一である。ユーザはア
プリケーションを使用し、基本的にコンピュータを任意
の他のコンピュータと同様に取り扱う。1つの違いは、
パワー管理ドライバの存在であり、これは(BIOS及
びオペレーティング・システム内で)バックグラウンド
で実行され、ユーザには透過的である。オペレーティン
グ・システム(OS)内のパワー管理ドライバ部分は、
インテル社及びマイクロソフト社により作成されたアド
バンスド・パワー・マネジメント(APM)拡張型プロ
グラミング・インタフェースであり、今日インテル80
X86ファミリのプロセッサ上で動作するように作成さ
れたほとんどのオペレーティング・システム内に存在す
る。BIOS内のパワー管理ドライバ部分(APM B
IOS)が、APM OSドライバと通信する。APM
OSドライバ及びAPM BIOSルーチンは一緒
に、コンピュータの他の3つの状態への遷移を制御す
る。
【0006】第2の状態、すなわち待機(スタンバイ)
状態は、正常動作状態よりも少ない電力を消費するが、
あらゆるアプリケーションを実行状態に維持する。一般
に、待機状態では、装置をそれらのそれぞれの低電力モ
ードに設定することにより、電力が節減される。例え
ば、消費電力は待機状態において、ハード・ドライブ内
の固定ディスクの回転を停止することにより、及びビデ
オ信号の生成を停止することにより節減される。
【0007】第3の状態は延期(サスペンド)状態であ
る。延期状態では、コンピュータ・システムは極めて少
量の電力を消費する。延期状態のコンピュータは、壁上
のアウトレットから僅かな電力を消費するだけである。
消費される電力は、コンピュータ・システム内のバッテ
リからの切り替えをモニタする回路を維持するための少
量の電力(システムがAC電力を供給されていないと
き)、または電源装置により補助電源ラインにおいて生
成される少量の電力(システムがAC電力を供給されて
いるとき)だけである。
【0008】この少量の電力の使用は、電源装置が"オ
フ"される以前に、コンピュータ・システムの状態を固
定ディスク記憶装置(ハード・ドライブ)に保管するこ
とにより達成される。延期状態に入るために、コンピュ
ータ・システムは実行コードを中断し、コンピュータの
制御をパワー管理ドライバに渡す。パワー管理ドライバ
はコンピュータ・システムの状態を確認し、コンピュー
タ・システムの状態を固定ディスク記憶装置に書込む。
CPUレジスタ、CPUキャッシュ、システム・メモ
リ、システム・キャッシュ、ビデオ・レジスタ、ビデオ
・メモリ、及び他の装置のレジスタの状態が、全て固定
ディスクに書込まれる。システム全体の状態がこのよう
に保管され、中断によりコード・アプリケーションが悪
影響を受けること無く復元され得る。コンピュータは次
に、システムが延期されたことを示すデータを不揮発C
MOSメモリに書込む。最後に、コンピュータは電源装
置に電力の生成を停止させる。コンピュータ全体の状態
が固定ディスク記憶装置に安全に保管され、システム電
力が"オフ"され、コンピュータは、切り替えをモニタす
る回路に供給するだけの少量の調整電力を電源装置から
受け取る。
【0009】第4の最後の状態はオフ状態である。この
状態では、電源装置がコンピュータ・システムへの調整
電圧の供給を停止するが、コンピュータ・システムの状
態は固定ディスクへは保管されない。オフ状態は事実
上、普通にオフされた通常のデスクトップ・コンピュー
タと同一である。
【0010】状態間の切り替えはパワー管理ドライバに
より処理され、通常、単一のスイッチの閉止事象、フラ
グ、及び不活動待機タイマと不活動延期タイマの2つの
タイマにもとづく。システムは単一のパワー・ボタンを
有する。このボタンはコンピュータ・システムをオンす
るため、システムの状態を延期するため、システムの状
態を復元するため、そしてシステムをオフするために使
用される。
【0011】
【発明が解決しようとする課題】こうしたシステムで
は、正常動作状態から延期状態への遷移が、不活動タイ
マにより測定されるユーザの不活動の結果、生じ得る。
従って、ユーザがシステムを所定時間(例えば30分)
無人状態にすると、システムはエネルギーを節減するた
めに延期する。しかしながら、関連出願において述べら
れるシステムでは、コンピュータ・システムが、例えば
ファクシミリ伝送を受信するために、接続電話回線の着
呼により、或いは特定の時刻に特定の活動を実行するた
めに内部警報により、無人操作モードで起こされ得る。
この延期/再開システムの1つの欠点は、システムが無
人操作モードで再開されるとき、システムは自動的に延
期するために、この所定時間を待機しなければならない
ことである。システムが無人操作モードに起こされたの
で、通常はユーザ活動が発生せず、従って、有人操作モ
ードで使用されているマシンに通常、関連付けられる時
間の待機は、エネルギーの無駄になる。
【0012】
【課題を解決するための手段】本発明によれば、2つの
時間間隔を有する不活動延期タイマが提供される。適応
時間間隔の間にユーザ活動が発生しない場合、システム
は自動的に延期される。一方で、システムがユーザによ
り起こされる場合、システムは正規の長い時間間隔(例
えば30分)により、自動的に延期される。他方、シス
テムが無人操作モードにより起こされる場合、短い時間
間隔(例えば2分)により、システムは自動的に延期さ
れる。
【0013】もちろん、システムが無人操作モードによ
り起こされ、その後、ユーザが近づき、システムを使用
するかも知れない。こうした状況では、不活動延期タイ
マとして短い時間間隔を使用し続けることは適切でな
い。従って、ユーザ活動が検出されない場合、任意に時
間間隔が短い時間間隔から長い時間間隔に変更され得
る。
【0014】2種類の時間間隔を有する単一の不活動延
期タイマの代わりに、2つの不活動延期タイマが使用さ
れてもよく、一方が短い時間間隔を有し、上述と同様の
効果が達成される。
【0015】本発明のこれらの及び他の利点が、本発明
の後述の詳細な説明から明らかとなろう。
【0016】
【発明の実施の形態】本発明は、その好適な態様を示す
添付の図面を参照して以降で詳述されるが、説明の最初
に当たり、当業者には、本発明の有益な結果を達成する
一方で、本明細書で述べられる本発明を変更し得ること
が理解されよう。従って、後述の説明は、当業者に対す
る広範な教示の開示として理解されるべきであり、本発
明を制限するものではない。本発明は、コンピュータ・
アーキテクチャ設計、デジタル設計、BIOS設計、プ
ロテクト・モード80486コード設計、アプリケーシ
ョン・コード設計、オペレーティング・システム・コー
ド設計、及びアドバンスド・パワー・マネジメント拡張
プログラミング・インタフェース利用などの、コンピュ
ータ・システムの完全な設計を取り扱う。本願は、コン
ピュータ・システム設計の全ての面に通じた当業者のた
めに作成されたものである。
【0017】添付の図面を特に参照すると、本発明を実
現するマイクロプロセッサが、参照番号10として一般
に示される(図1)。上述のように、コンピュータ10
はそれに関連付けられる表示モニタ11、キーボード1
2、マウス13、及びプリンタまたはプロッタ14を有
し得る。コンピュータ10は、装飾外部部材16(図
2)及び内部遮蔽部材18により形成されるカバー15
を有し、これらはシャシ19と共に、デジタル・データ
を処理及び記憶するために電力供給されるデータ処理及
び記憶コンポーネントを受け取る包囲遮蔽容積を定義す
る。少なくとも特定のこれらのコンポーネントが、多層
プレーナ20またはマザーボード上に実装される。多層
プレーナ20はシャシ19上に実装され、コンピュータ
10のコンポーネントを電気的に相互接続する手段を提
供する。こうしたコンポーネントには、上述のコンポー
ネント、及びフロッピー・ディスク・ドライブ、様々な
形態の直接アクセス記憶装置、アクセサリ・アダプタ・
カードまたはボードなどの、他の関連要素が含まれる。
以降で詳述されるように、マイクロコンピュータの動作
コンポーネント間で入出力信号を転送するための機構
が、プレーナ20内に提供される。
【0018】コンピュータ・システムは電源装置17、
電源ボタン21(以下スイッチとしても参照)、及びパ
ワー/フィードバックLED23を有する。通常のシス
テムの電源スイッチと異なり、電源ボタン21は後述の
ように、電源17へのACライン電力をスイッチしな
い。シャシ19はベース22、正面パネル24、及び背
面パネル25(図2)を有する。正面パネル24は、磁
気または光ディスク用のディスク・ドライブ、テープ・
バックアップ・ドライブなどのデータ記憶装置を受け取
る、少なくとも1つのオープン・ベイ(4つのベイが示
される)を規定する。図示の形態では、1対の上ベイ2
6、28及び1対の下ベイ29、30が提供される。一
方の上ベイ26は、第1のサイズの周辺ドライブ(例え
ば3.5インチ・ドライブなど)を受け取るように適応
化され、他方28は2つのサイズ(例えば3.5インチ
及び5.25インチ)の選択された方のドライブを受け
取るように適応化される。下ベイは、1サイズだけ
(3.5インチ)の装置を受け取るように適応化され
る。1つのフロッピー・ディスク・ドライブが図1に2
7で示され、これは挿入ディスケットを受け取り、その
ディスケットを用いて、データを受信、記憶及び配布で
きる既知の取り外し可能媒体直接アクセス記憶装置であ
る。1つのハード・ディスク・ドライブが31で示さ
れ、これはデータを記憶及び配布できる既知の固定媒体
直接アクセス記憶装置である。
【0019】前記構造を本発明に関連付ける前に、パー
ソナル・コンピュータ・システム10の一般的な動作概
要について述べることにしよう。図3及び図4を参照す
ると、本発明によるシステム10などの、コンピュータ
・システムの様々なコンポーネントを表すパーソナル・
コンピュータ・システムのブロック図が示される。具体
的には、プレーナ20上に実装されるコンポーネント、
及びプレーナとI/Oスロット及びパーソナル・コンピ
ュータ・システムの他のハードウェアとの接続が示され
る。プレーナには、マイクロプロセッサにより構成され
るシステム・プロセッサ40(またはCPU40)が接
続され、これは高速CPUローカル・バス42によりメ
モリ制御ユニット46に接続され、メモリ制御ユニット
46は更に揮発ランダム・アクセス・メモリ(RAM)
53に接続される。メモリ制御ユニット46は、メモリ
制御装置48、アドレス・マルチプレクサ50、及びデ
ータ・バッファ52から構成される。メモリ制御ユニッ
ト46は更に、4つのRAMモジュール54として表さ
れるランダム・アクセス・メモリ53に接続される。メ
モリ制御装置48は、マイクロプロセッサ40への、及
びそこからのアドレスを特定のRAM53領域にマッピ
ングする論理を含む。この論理は、BIOSにより以前
に占有されたRAMを再利用するために使用される。更
にROM選択信号(ROMSEL)がメモリ制御装置4
8により生成され、ROM88をイネーブルまたはディ
セーブルにするために使用される。任意の適切なマイク
ロプロセッサがシステム・プロセッサ40として使用さ
れ得るが、1つの好適なマイクロプロセッサは、インテ
ル社により販売される80486である。インテル80
486は内部キャッシュを有し、従ってインテル804
86に相当する任意のCPU40がCPUキャッシュ4
1を有する。
【0020】本発明は以降では、図3及び図4のシステ
ム・ブロック図を特に参照して述べられるが、説明の最
初に当たり、本発明による装置及び方法が、プレーナ・
ボードの他のハードウェア構成とも使用され得ることが
理解されよう。例えば、システム・プロセッサ40がイ
ンテル80286または80386マイクロプロセッサ
であってもよい。本明細書において使用されるように、
80286、80386または80486は、一般にイ
ンテル社から入手されるマイクロプロセッサを参照する
ために使用される。しかしながら、最近、他のメーカも
インテルX86アーキテクチャの命令セットを実行可能
なマイクロプロセッサを開発してきており、前記用語の
使用は、そうした命令セットを実行可能な任意のマイク
ロプロセッサを包含するものである。当業者には既知の
ように、初期のパーソナル・コンピュータは通常、当時
流行のインテル8088または8086マイクロプロセ
ッサをシステム・プロセッサとして使用した。これらの
プロセッサは、1メガバイトのメモリをアドレス指定す
る能力を有する。最近では、パーソナル・コンピュータ
は通常、より高速なインテル80286、80386、
及び80486マイクロプロセッサを使用する。これら
のプロセッサは、低速の8086マイクロプロセッサを
エミュレートするための仮想またはリアル・モード、或
いは、特定モデルでは、アドレス指定範囲を1メガバイ
トから4ギガバイトに拡張するプロテクト・モードで動
作し得る。基本的に、80286、80386及び80
486プロセッサのリアル・モード機構は、8086及
び8088マイクロプロセッサ用に作成されたソフトウ
ェアとのハードウェア互換性を提供する。上述のインテ
ル・ファミリのプロセッサは、しばしば、例えば"48
6"のように、完全な型名指定子の最後の3桁だけの参
照により識別される。
【0021】図3及び図4を再度参照すると、CPUロ
ーカル・バス42(図示されないデータ、アドレス、及
び制御要素を含む)は、マイクロプロセッサ40、演算
コプロセッサ44(CPU40に含まれない場合)、ビ
デオ制御装置56、システム・キャッシュ・メモリ6
0、及びキャッシュ制御装置62を提供する。ビデオ制
御装置56は、モニタ(またはビデオ表示端末)11及
びビデオ・メモリ58に関連付けられる。更にCPUロ
ーカル・バス42には、バッファ64が接続される。バ
ッファ64はそれ自身、(CPUローカル・バス42に
比較して)低速のシステム・バス66に接続され、同様
にアドレス、データ及び制御要素を含む。システム・バ
ス66は、バッファ64と別のバッファ68との間で拡
張される。システム・バス66は更に、バス制御、タイ
ミング・ユニット70及びDMAユニット71に接続さ
れる。DMAユニット71は、中央アービタ82とDM
A制御装置72とから構成される。追加のバッファ74
は、システム・バス66とISA(Industry Standard
Architecture)バス76などのオプション機構バスとの
間のインタフェースを提供する。バス76には、ISA
アダプタ・カード(図示せず)を受け取るための複数の
I/Oスロット78が接続される。ISAアダプタ・カ
ードはI/Oスロット78にプラグ式に接続され、シス
テム10のための追加のI/O装置またはメモリを提供
したりする。
【0022】アービトレーション制御バス80は、DM
A制御装置72を中央アービタ82に、また中央アービ
タ82をI/Oスロット78、ディスケット・アダプタ
84、及び統合ドライブ・エレクトロニクス(IDE)
固定ディスク制御装置86に接続する。
【0023】マイクロコンピュータ・システム10は基
本4メガバイトRAMモジュール53を有するように示
されるが、図3及び図4に示されるように、任意選択の
高密度メモリ・モジュール54の追加により追加のメモ
リが相互接続されてもよい。説明の都合上の理由から、
本発明は基本4メガバイト・メモリ・モジュールに関し
て述べられる。
【0024】ラッチ・バッファ68は、システム・バス
66とプレーナI/Oバス90との間に接続される。プ
レーナI/Oバス90は、アドレス、データ、及び制御
要素をそれぞれ含む。プレーナI/Oバス90に沿っ
て、様々なI/Oアダプタ及び他のコンポーネントが接
続され、それらには、ディスケット・アダプタ84、I
DEディスク・アダプタ86、割込み制御装置92、R
S232アダプタ94、不揮発CMOS RAM96
(NVRAMとしても参照される)、CMOSリアル・
タイム・クロック(RTC)98、パラレル・アダプタ
100、複数のタイマ102、読出し専用メモリ(RO
M)88、8042 104、及びパワー管理回路10
6が含まれる。104として示される8042は、キー
ボード12及びマウス13とインタフェースするスレー
ブ・マイクロプロセッサである。パワー管理回路106
は、電源装置17、電源スイッチ21、パワー/フィー
ドバックLED23、及び内部モデム900及び(また
は)外部モデム902と回路的に通信する。外部モデム
は通常、当業者には既知のように、壁上のアウトレット
に接続される変圧器904に接続される。モデム90
0、902は通常の電話アウトレットに接続される。パ
ワー管理回路106は図7乃至図9及び図10に示さ
れ、図7乃至図9、図10、図11及び図13に関連し
て詳細に述べられる。読出し専用メモリ88は、I/O
装置とマイクロプロセッサ40のオペレーティング・シ
ステムとの間でインタフェースするために使用されるB
IOSを含む。ROM88に記憶されるBIOSは、B
IOSの実行時間を低減するために、RAM53にコピ
ーされ得る。ROM88は更に(ROMSEL信号を介
して)メモリ制御装置48に応答する。ROM88がメ
モリ制御装置48によりイネーブルされると、BIOS
がROMから実行される。ROM88がメモリ制御装置
48によりディセーブルにされると、ROMはマイクロ
プロセッサ40からのアドレス照会に応答しない(すな
わちBIOSがRAMから実行される)。
【0025】リアル・タイム・クロック98は時刻計算
のために使用され、NVRAM96はシステム構成デー
タを記憶するために使用される。すなわち、NVRAM
96はシステムの現在の構成を示す値を含む。例えば、
NVRAM96は固定ディスクまたはディスケットの容
量、表示タイプ、メモリ容量、時刻、日付などを示す情
報を含む。更に、これらのデータは、例えば構成設定な
どの特殊な構成プログラムが実行されるとき、NVRA
Mに記憶される。構成設定プログラムの目的は、システ
ムの構成を特長付ける値をNVRAMに記憶することで
ある。
【0026】ほとんど全ての前記装置が揮発レジスタを
含む。図面の不必要な乱雑を避けるために、特定の装置
のレジスタはその装置を参照して代替することにする。
例えば、CPUレジスタはCPU40レジスタとして参
照され、ビデオ制御装置レジスタは、ビデオ制御装置5
6レジスタとして参照される。
【0027】上述のように、コンピュータは一般に参照
番号15で示されるカバーを有し、カバー15はシャシ
19と共に、マイクロプロセッサの前記識別コンポーネ
ントを収容する包囲遮蔽容積を形成する。カバー15は
好適には、成形可能な合成材料から成る単一の成形要素
である外部装飾カバー部材16と、装飾カバー部材の構
成に従うように形成される金属の薄いシート・ライナ1
8とから形成される。しかしながら、カバーは他の既知
の方法によっても形成されることができ、本発明の有用
性は、上述のタイプのエンクロージャに制限されるもの
ではない。
【0028】動作状態:図5を参照すると、本発明のコ
ンピュータ・システムの状態図が示される。本発明のコ
ンピュータ・システム10は、正常動作状態150、待
機状態152、延期状態154、及びオフ状態156の
4つの状態を有する。図5に示される状態間の遷移は好
適な態様を表すが、これに制限されるものではない。結
果的に、追加の事象が状態遷移を生じるために使用され
てもよい。
【0029】本発明のコンピュータ・システム10の正
常動作状態150は、通常のデスクトップ・コンピュー
タの正常動作状態と同一である。ユーザはアプリケーシ
ョンを使用したり、基本的にコンピュータを任意の他の
コンピュータと同様に取り扱い得る。ユーザには透過的
であるが、1つの違いは、オペレーティング・システム
内のパワー管理ドライバ(APM OSドライバ)(こ
れはバックグラウンドで実行される)及び様々なAPM
BIOSルーチンの存在である。APM BIOSル
ーチンは以降で述べられるように、延期ルーチン、再開
ルーチン、ブートアップ・ルーチン、スーパバイザ・ル
ーチン、CPU状態保管ルーチン、及びCPU状態復元
ルーチンを含む。どの図面にも示されていないAPM
BIOSルーチンは、APM BIOS経路指定ルーチ
ンである。APM BIOS経路指定ルーチンは、本質
的にAPM OSドライバからコマンドを受諾し、適切
なAPM BIOSルーチンを呼び出す。例えば、AP
M OSドライバが延期コマンドを発行するとき、AP
M BIOS経路指定ルーチンが延期ルーチンを呼び出
す。別の例では、APM OSドライバが事象獲得コマ
ンドを発行する度に、APM BIOS経路指定ルーチ
ンがスーパバイザ・ルーチンを呼び出す。これらのルー
チンはBIOS内に配置され、BIOSがシャドーイン
グ(shadowing)されるときに、シャドーイングされ
る。OS内のパワー管理ドライバ及びAPM BIOS
ルーチンは、4つの状態間のコンピュータの遷移を制御
する。用語"APM"の参照は一般にAPM OSドライ
バの参照を意味するが、状況によっては別の呼び方をし
得る。
【0030】第2の状態、すなわち待機状態152は、
正常状態150よりも少ない電力を使用するが、アプリ
ケーションを実行状態に維持する。一般に、待機状態1
52では、装置をそれぞれの低電力モードに設定するコ
ードにより、電力が節減される。好適な態様では、待機
状態152において、以降で詳述されるように、固定デ
ィスク記憶装置31内の固定ディスク(図示せず)の回
転を停止することにより、及びビデオ信号の生成を停止
することにより、及びCPU40を低電力モードに設定
することにより、電力が節減される。しかしながらこれ
に限るものではなく、消費電力を低減するためにCPU
クロックを遅くするまたは停止するなど、他の方法も使
用され得る。
【0031】好適な態様では電力が3つの別々の方法で
節減される。第1に、正常動作状態150では、固定デ
ィスク記憶装置31内の固定ディスクが、例えば1分当
たり3600、4500または5400回転(RPM)
で一定に回転する。待機状態152では、IDEディス
ク制御装置86が、固定ディスク記憶装置31を低電力
モードに入力させる(固定ディスク記憶装置31内の固
定ディスクが回転を停止する)コマンドを提供され、そ
れにより、固定ディスク記憶装置31内のモータ(図示
せず)が固定ディスクを回転させる間の通常消費する電
力を節減する。
【0032】第2に、正常動作状態150では、コンピ
ュータ・システムのビデオ制御装置56は、絶えず、ビ
デオ表示端末11上に表示されるイメージに対応するビ
デオ信号(既知のHSYNC、VSYNC、R、G、B
など)を生成する。待機状態152では、ビデオ制御装
置56はビデオ信号の生成を停止し、それにより通常、
ビデオ制御装置56により消費される電力を節減する。
HSYNC、VSYNC、R、G、Bは、全て約0.0
0VDCに駆動される。VESA(Video Electronics
Standards Association)準拠のモニタの使用が更に電
力節減を可能にする。なぜなら、VESA準拠のモニタ
は、HSYNC及びVSYNCが約0.00VDCのと
き、それら自身をオフにするからである。
【0033】第3に、正常動作状態150ではCPU4
0が絶えずコマンドを実行し、それにより電力を消費す
る。待機状態152では、BIOSがAPM CPUア
イドル呼び出しに応答して停止命令を発行する。停止命
令の実行は、次のハードウェア割込みが発生するまでC
PU消費電力を多大に低減する。真にアイドル状態の時
には、CPUは90%以上の時間を停止状態に維持し得
る。
【0034】システムによっては、ビデオ表示端末の正
面のリンのバーン・イン(焼付き)を回避するように、
画面11を暗転する"スクリーン・セーバ"を有する。ほ
とんどのこうしたシステムでは、ビデオ表示装置56は
依然ビデオ信号を生成しており、暗転画面または動的画
面に対応するビデオ信号を単に生成している。従って、
スクリーン・セーバを実行するコンピュータ・システム
は、ビデオ信号を生成するために必要な電力を依然消費
する。
【0035】第3の状態は延期状態154である。延期
状態154では、コンピュータ・システムは極めて少量
の電力を消費する。好適な態様では、延期状態のコンピ
ュータは100ミリワット以下の電力を消費する。消費
される電力は、電源装置17の非効率性により消費され
る約5ワットと、パワー管理回路106により使用され
る少量の電力だけである。
【0036】電力のこの少量の使用は、電源装置17
を"オフ"する以前に、コンピュータ・システムの状態を
固定ディスク記憶装置(ハード・ドライブ)31に保管
することにより達成される。延期状態154に入力する
ために、CPU40はあらゆるアプリケーションを中断
し、CPUのプログラム実行制御をパワー管理ドライバ
に渡す。パワー管理ドライバはコンピュータ・システム
10の状態を確認し、コンピュータ・システムの状態全
体を、固定ディスク記憶装置31に書込む。CPU40
レジスタ、CPUキャッシュ41、システムRAM5
3、システム・キャッシュ60、ビデオ制御装置56レ
ジスタ、ビデオ・メモリ56、及び残りの揮発レジスタ
の状態が、全て固定ディスク・ドライブ31に書込まれ
る。コンピュータ・システム10の状態全体がこのよう
に保管され、重大な有用性の欠点無しに復元され得る。
すなわちユーザは、システムが通常通りにオペレーティ
ング・システムをロードし、グラフィック・ユーザ・イ
ンタフェース及びアプリケーション・プログラムをロー
ドするのを待機する必要がない。
【0037】コンピュータは次に、システムが延期され
たことを示すデータを不揮発CMOSメモリ96に書込
む。最後に、CPU40がマイクロコントローラU2
(図7乃至図9参照)に指令し、電源装置17が±5V
DC及び±12VDCラインを通じてシステムに調整電
圧を供給することを停止させる。コンピュータ・システ
ム10はこの時パワーダウンされ、コンピュータの状態
全体が固定ディスク記憶装置31に安全に保管される。
【0038】用語"状態"は、本明細書を通じて2つの類
似の混乱し得る態様で使用される。装置は特定の状態に
あり得る。4つのシステム状態、すなわち正常状態15
0、待機状態152、延期状態154、及びオフ状態1
56は、本発明のコンピュータ・システム10の一般状
態を指す。これらの"状態"は、コンピュータ・システム
10を一般的な方法で説明する。例えば、正常動作状態
150では、CPU40はコードを実行しており、シス
テム10内の複数のレジスタを変更している。同様に、
類似の活動が待機状態152の間にも発生する。従っ
て、コンピュータ・システム10のメモリ及びレジスタ
構成は、システム10が正常動作状態150及び待機状
態152の間には動的である。
【0039】他の装置も特定の状態にあり得る。パワー
管理回路106は好適には、様々なパワー管理機構を実
現するために、図7乃至図9に示されるマイクロコント
ローラU2などの、第2のプロセッサをパワー管理プロ
セッサとして使用する。多くのこうしたプロセッサが適
しているが、この特定の態様では、パワー管理プロセッ
サは、事前にプログラム済みの83C750マイクロコ
ントローラである。マイクロコントローラU2の変数及
びピンは、添付の図7乃至図9に関連して説明されるよ
うに複数の状態を取り得る。
【0040】例えば、上述の"状態"をある装置の"状
態"、例えば"コンピュータ・システム10の状態"また
は"CPU40の状態"と対比してみよう。装置の"状態"
は、特定のコンピュータ・サイクルにおけるその装置の
状態を指す。全てのメモリ位置及びレジスタが、特定の
2進値を有する。装置の"状態"は、その装置の内容の静
的2進スナップショットである。
【0041】コンピュータ・システム10の"状態"は動
作的に等価なことを指し、必ずしも正確なコピーを指す
ものではない。例えば、状態Aのコンピュータ・システ
ムは、CPUキャッシュ41またはシステム・キャッシ
ュ60内に、特定のメモリを有し得る。いずれかのキャ
ッシュの内容をシステムRAM53に"フラッシュ・バ
ック(flush back)"し、コンピュータ・システムを状
態Bに移行することが可能である。純粋に述べれば、状
態Aのコンピュータ・システムの状態は、状態Bのコン
ピュータ・システムの状態とは異なる。なぜなら、キャ
ッシュ及びシステムRAMの内容が異なるからである。
しかしながらソフトウェアの動作的観点から見ると、状
態Aは状態Bと同じである。なぜなら、システム速度の
若干の低下(プログラムがキャッシュから実行される優
位性を有さないことに起因する)を除けば、実行プログ
ラムは影響を受けないからである。すなわち、状態Aの
コンピュータ及び状態Bのコンピュータは、たとえコン
ピュータがそのキャッシュをフラッシュされ、キャッシ
ュ領域が有用なコードにより再ロードされるまで、若干
の性能低下に遭遇するとしても、ソフトウェア上は動作
的に等価である。
【0042】本明細書で述べられるように、本発明は、
コンピュータ・システムに代替ロードされる多重記憶コ
ンピュータ状態を意図する。本明細書で使用される用
語"記憶(stored)コンピュータ状態"及び"システム状
態"は、実行可能ファイルに記憶される単に実行可能な
コード、または実行可能ファイルへのオーバレイと区別
されるべきである。これらの用語はまた、仮想メモリ機
構に記憶されるコードのページまたはコードの他のチャ
ンク(chunk)とも区別されるべきである。用語"記憶コ
ンピュータ状態"及び"システム状態"は、実行中のコン
ピュータ・システム内の揮発メモリ及び揮発レジスタか
ら、不揮発メモリなどの別のロケーションへの値の記憶
を意図する。しかしながら、例えば圧縮によりシステム
状態またはコンピュータ状態を可逆的に変更することに
よっても、"記憶コンピュータ状態"または"システム状
態"になる。"記憶コンピュータ状態"及び"システム状
態"を生成する例が、図19乃至図25の延期ルーチン
に示される。
【0043】用語"パワー"もまた2つの混乱し得る態様
で使用される。"パワー"は最も頻繁には電力を指す。し
かしながら、"パワー"は、時に計算能力を指すこともあ
る。文脈から意図される使用が明らかとなろう。
【0044】"回路"は一般に、電気的に相互接続される
物理的電子装置または複数の装置を指す。しかしなが
ら、用語"回路"は、物理的電子装置のCPUコードに等
価なものを包含するようにも意図される。例えば、一方
では、2入力NANDゲートが74LS00により、ま
たはプログラマブル装置によっても等価に実現され得
る。これら2つの装置は物理的電子装置である。他方、
NANDゲートは、CPU40が2つのCPU読出し可
能な入力ポートから2つの入力を読出し、CPUコマン
ドを用いてNAND結果を生成し、結果をCPU書込み
可能な出力ポートに出力することによっても、実現され
得る。これらのCPUインタフェース可能なポートは、
復号ラッチまたはそれに等価なプログラマブル装置のよ
うに単純であったり、既知のPIAのように複雑であっ
たりする。用語"回路"は、NANDゲートの場合のこれ
ら3つの全ての例を含むように、十分に広く解釈される
べきである。特定の場合では、"回路"は単に電気経路を
指し得る。電気経路のタイプには、ワイヤ、トレースま
たはプリント回路基板を介するもの、或いは単一の電気
接続経路を形成するこれらの電気経路の任意の組み合わ
せが含まれる。
【0045】"信号"は、単一の電気波形または複数の波
形を指し得る。例えば、ビデオ制御装置はビデオ信号を
生成する。ビデオ信号は、実際には複数の電気導体上の
複数の信号、すなわち既知のHSYNC、VSYNC、
R、G、Bなどである。
【0046】"回路接続(circuit communication)"は
本明細書では、装置間の電気的関係を示すために使用さ
れる。2つの装置は、それらが同一回路内にあり、一方
からの信号が他方により受信される場合、その信号があ
る他の装置により変更されるか否かに関わらず、回路接
続されると称する。例えば、変圧器または光絶縁器によ
り分離される2つの装置は、一方からの信号が他方に達
する場合、たとえその信号が中間装置により変更されよ
うと、回路接続されると称する。別の例として、アナロ
グ積分器回路により分離される2つの装置は、一方が他
方から積分信号を受信する場合、回路接続されると称す
る。更に別の例として、デジタル・バッファにより分離
される2つの装置は、回路接続されると称する。最後の
例として、互いに直接接続されないが、両者が第3の装
置、例えばCPUとインタフェース可能な2つの装置
は、回路接続されると称する。
【0047】図5を再度参照すると、第4の最後の状態
はオフ状態156である。オフ状態156は事実上、通
常の意味でオフされた任意の通常のコンピュータ・シス
テムと同一である。この状態では、電源装置17の1次
/調整ユニット172(図6参照)が、調整電圧をコン
ピュータ・システム10に供給するのを停止する(但
し、図6に関連して詳述されるように、AUX5を介す
る少量の調整電圧を除く)。しかしながら、コンピュー
タ・システム10の状態は、固定ディスク31に保管さ
れない。延期状態154及びオフ状態156は、電源装
置17がもはや調整電圧を生成しない点で類似する。し
かしながら、オフ状態156では、延期状態154の場
合のようにコンピュータ・システム10の状態がハード
・ドライブ31に保管されることがない点で、これらの
状態は異なる。更に、オフ状態156を去るときには、
コンピュータ10はあたかもオンされていたかのよう
に"ブート"する。すなわち、任意の実行コードがユーザ
により、または自動的にAUTOEXEC.BATファイルなどの手
段により、開始されなければならない。しかしながら、
延期状態154を去るときには、コンピュータ10はそ
れが中断されたときの状況から実行を再開する。
【0048】図5はまた、4つの状態間の遷移を引き起
こす事象の一般的な概要を示す。これらの事象は図7乃
至図14に関連して詳述されるが、概要を述べることが
理解を助けるであろう。電源ボタン21、少なくとも2
つのタイマ(不活動待機タイマ及び不活動延期タイマ。
図15乃至図18及び関連説明を参照)、タイマを呼び
起こす時間(分)、及び延期許可フラグ(図7乃至図9
及び図13、並びに関連説明を参照)の全てが、コンピ
ュータがどの状態に入力するかに影響する。一般に、前
記少なくとも2つのタイマはハードウェア・タイマ、ま
たはCPU上でプログラムとして実行されるCPUコー
ド・タイマである。好適な態様では、これらのタイマは
両方ともCPUコード・タイマであり、BIOSデータ
・セグメントから実行される。しかしながら、2つのタ
イマはハードウェア・タイマとしても考えられ、この方
がシステムのオーバヘッドを低減するという点で、より
優れた解決方法である。これらのタイマについては、図
15乃至図18に関連して詳述される。両タイマは、コ
ンピュータ10が正常動作状態150または待機状態1
52の時、アクティブである。タイマは他のルーチンと
対話し、いずれかのタイマの満了が、後述のように状態
間の遷移を引き起こす。いずれか一方のまたは両方のタ
イマは、ユーザの特定のニーズに依存して、特定の時間
期間の後に満了するように構成される。好適な態様で
は、不活動待機タイマ及び不活動延期タイマが、10分
乃至90分後に満了するようにセットされる。本明細書
で述べられるように、不活動延期タイマはまた、システ
ムが無人操作(unattended fashion)でブートされ、あ
る時間(例えば2分乃至5分)不活動が継続する場合
に、システムが自身をより短い時間延期させる第2のレ
ベルを有する。すなわち、不活動延期タイマは、システ
ムがユーザにより付き添われる場合には、長い時間の後
に満了し、システムがユーザにより付き添われない場合
には、短い時間の後に満了するように構成され得る。シ
ステムは、入来電話呼び出しに関連付けられる接続電話
回線の着呼により、または内部警報により、無人操作に
より起こされ得る。これらの両方の場合、及び可能な他
の場合では、システムはユーザにより付き添われる場合
よりも、短い時間延期されるべきである。別の態様で
は、2つの不活動延期タイマが存在し、一方がより短い
満了時間を有する。この場合、一方のタイマがイネーブ
ルにされ、他方はディセーブルされる。
【0049】任意のタイマが停止され得る。すなわち決
して満了しないように構成され得る。タイマの"停止"
は、実際にタイマの増分カウント動作を停止するか、単
にそれらの満了を無視する形態を取る。好適な態様で
は、タイマ満了値として0をセットすることにより、タ
イマの満了をテストしないようにする。例えば、ネット
ワーク接続されるコンピュータのユーザは、コンピュー
タを延期状態154に入力させたくない。なぜなら、そ
うすることは、そのコンピュータに関連して、LANを
故障させ得るからである。
【0050】理論的には、タイマはカウント・アップま
たはカウント・ダウンし、固定の所定状態にリセットさ
れ、タイマが開始(再始動)されるとき、別の固定の所
定状態に対してカウントするように期待されるか、或い
は現在値が使用されて、差または合計がエンドポイント
満了トリガとして計算される。好適な態様では、タイマ
がリセットされるとき、時間(分)変数の現在値がリア
ル・タイム・クロック98から記憶される。タイマは、
現時刻値(分)を保管時刻値(分)から減算し、差をユ
ーザにより選択された値と比較することにより、その満
了をチェックされる。
【0051】両方のタイマは特定のシステム活動により
影響される。例えば、好適な態様では、キーボード12
のキーの押下、マウス13の移動、マウス13ボタンの
押下などの形態のユーザ活動、またはハード・ドライブ
31の活動が、図15乃至図18に関連して詳述される
ように、タイマを再始動させる。従って、ユーザがキー
ボード12のキーを押下するかまたはマウス13を使用
している間、或いはアプリケーションがハード・ドライ
ブ31をアクセスしている間、いずれのタイマも満了し
ない。更に、他のシステム事象もタイマをリセットする
ために使用され得る。代わりに、任意のハードウェア割
込みが、活動に対応してモニタされてもよい。従って、
印刷(IRQ5またはIRQ7)またはCOMMポート
・アクセス(IRQ2またはIRQ3)により、システ
ムが延期状態154に入力するのを阻止することが望ま
しかろう。
【0052】延期許可フラグは、マイクロコントローラ
U2内のCPU操作可能かつ読出し可能なラッチであ
り、図7乃至図9に関連して以降で詳述される。端的に
言えば、マイクロコントローラU2をあるモードに設定
すると、スイッチ21の押下によりシステム10がオフ
状態156に入力し、マイクロコントローラU2を別の
モードに設定すると、スイッチ21の押下によりシステ
ム10が延期モード154に入力する。コンピュータ・
システム10が正常動作状態150であり、マイクロコ
ントローラU2に書込まれる延期許可フラグがクリアさ
れている間に電源ボタン21が押下されると、コンピュ
ータ・システム10は158で示されるようにオフ状態
156に入力する。コンピュータ・システム10がオフ
状態156のときに電源ボタン21が押下されると、コ
ンピュータ・システムは160で示されるように、正常
動作状態150に入力する。更に、後述される複数の"
外部事象"によっても、システムはオフ状態156から
正常動作状態150に遷移し得る。
【0053】コンピュータ・システム10が正常動作状
態150の場合、ある事象がコンピュータ・システムを
待機状態152に入力させ得る。不活動待機タイマが満
了すると、コンピュータ・システム10は162に示さ
れるように待機状態に変化する。別の態様では、コンピ
ュータ・システム10はダイアログ・ボックス、スイッ
チまたは他の入力装置など、ユーザにシステムを即時待
機状態に入力させる手段を提供する。待機状態152で
は、ユーザが電源ボタン21を押下するなどの、上述の
類の任意のシステム活動またはユーザ活動が、コンピュ
ータ10を待機状態152から退去させ、164に示さ
れるように正常動作状態150に再入力させる。
【0054】電源ボタン21の押下により、システムは
待機状態152から正常動作状態150に変化し、ユー
ザの混乱を回避する。上述のように、待機状態の間、モ
ニタ11はブランクにされ、パワー/フィードバックL
ED23が、マイクロコントローラU2内のフラグがど
のように構成されるかに依存して、点灯または点滅す
る。システムに接近するユーザは、モニタ11がブラン
クであることに気付き、システムが延期状態154また
はオフ状態156であると考え、システムを正常動作状
態150に入力させようとして電源ボタン21を押下し
得る。電源ボタン21の押下がシステムを延期状態15
4またはオフ状態156に入力させる場合、前記のユー
ザはコンピュータをオフしたか延期したことになり、意
図したことと正反対の結果を得る。従って待機状態15
2のとき、電源ボタン21の押下は、システムを待機状
態から正常動作状態に変化させる。たとえアイドル状態
であっても、CPU40はすぐにスイッチが押下された
かどうかをテストする。ハードウェア割込みは、1秒当
たり約20回、CPU40をアイドル状態から退去さ
せ、その後、次のAPM事象獲得の間に、マイクロコン
トローラU2は、スイッチ21が押下されたかどうかを
判断するように問われる。
【0055】コンピュータ10が正常動作状態150の
場合、2つの事象がそれを延期状態154に入力させ得
る。第1に、不活動延期タイマが満了すると、166で
示されるようにコンピュータ・システム10が延期状態
154に変化する。第2に、マイクロコントローラU2
に書込まれる延期許可フラグがセットされている間に、
ユーザが電源ボタン21を押下することにより、同様に
166で示されるように、即時コンピュータ10を延期
状態154に入力させることができる。更に別の態様で
は、APMドライバが"パワー状態を延期に設定する"た
めのコマンドを介して、延期要求を発行することができ
る。このコマンドは、APM BIOSドライバに延期
ルーチンを呼び出させる。延期状態154の間、ユーザ
は電源ボタン21を押下することにより、168に示さ
れるように正常動作状態150に変化させることができ
る。
【0056】更に、複数の外部事象が、システム10を
延期状態154から正常動作状態150に(168)、
またはオフ状態156から正常動作状態150に(16
0)変化するために使用され得る。例えば、図7乃至図
9の回路内のマイクロコントローラU2内の電話着呼検
出回路が、接続電話回線が着呼するときシステム10を
オフ状態156または延期状態154から退去させ、正
常動作状態150に入力させるように構成される。こう
した機構は、テレファックス・データまたはデジタル・
データを受信するシステムにとって有用である。システ
ムは電話着呼に応答して正常動作状態150に入力し、
入来ファクシミリ伝送の受諾、ファイルのアップロード
またはダウンロード、システムへの遠隔アクセスの許可
などのプリセット機能を実行し、不活動延期タイマの満
了に応答して再度延期モードに入力する。そしてシステ
ムが正常動作状態の間にのみ、電力を消費する。
【0057】同様に、マイクロコントローラU2は警報
カウンタを呼び起こす時間(分)を実現し、これはアラ
ーム・タイプの事象により、システム10が延期状態1
54またはオフ状態156から退去し、正常動作状態1
50に入力することを可能にする。こうしたシステム
は、安価な電話利用料金を利用するように、テレファッ
クスまたはデジタル・データを特定の時刻に送信するた
めに、またシステム・ハード・ドライブ31をテープ・
バックアップ・システムによりバックアップするなど、
システム保守機能を実行するために有用である。後者の
場合では、スケジューラがテープ・バックアップ・プロ
グラムを実行させる以前の固定時間の間、警報呼び起し
時間がマシンをオンするようにセットされる。別の態様
では、テープ・バックアップ・プログラムを実行するた
めに、APM BIOSスケジューラが使用される。
【0058】最後に、コンピュータ・システム10が待
機状態152で、不活動延期タイマが満了すると、コン
ピュータ10は170で示されるように延期状態に変化
する。コンピュータ・システム10は逆に延期状態15
4から待機状態152へは変化することができず、唯一
正常動作状態150へは、後述の遷移168に関連して
述べられるように遷移し得る。
【0059】明らかなように、コンピュータ・システム
10は即座には状態を変化することができない。4つの
ある状態からの各遷移において、必要なシステム変化を
達成するために特定の時間が要求される。各遷移時間の
詳細は、図7乃至図45に関連して述べられる。
【0060】システム・ハードウェア:CPU40上で
実行されるコードの詳細について述べる前に、最初に4
つの状態を達成するために要求されるハードウェアにつ
いて述べることが役立つであろう。電源装置17のブロ
ック図が、図6に示される。電源装置17は、制御ユニ
ット174及び1次/調整ユニット172の2つのユニ
ットを有する。電源装置17は複数の入力を有し、それ
らには、通常の壁上のアウトレットから115VACま
たは220VACを受け取るACライン入力(ACLine-I
n)、及び電源装置17の調整活動を制御するON#が
含まれる。電源装置17は複数の出力、すなわちACラ
イン出力(ACLine-Out)、±5VDC、±12VDC、
AUX5、GND、及び電源良好(POWERGOOD)を有す
る。AC Line-Outは115VACであり、通常、ビデオ
表示端末11の電源入力(図示せず)に接続される。制
御ユニット174はON#入力を受諾し、POWERGOOD出
力を生成する。1次/調整ユニット172は、Line-In
入力からの115VACを、選択的に±5VDC、±1
2VDCに降圧調整する。1次/調整ユニット172が
電源を±5VDC及び±12VDCラインに調整するか
どうかは、制御ユニット174によりインタフェースさ
れるON#の値に依存する。好適な実施例では、制御ユ
ニット174は、例えば適切な光絶縁器を用い、ON#
信号生成回路のための絶縁を提供すべきである。
【0061】AC Line-In入力及びAC Line-Out出力、±
5VDC、±12VDC、GND、及びPOWERGOOD出力
は、既知である。電源装置17が"オフ"のとき、すなわ
ちLine-Inから調整電圧を生成しないとき、POWERGOOD信
号は論理0である。電源装置17が"オン"のとき、電源
装置17は115VAC Line-Inから±5VDC及び±
12VDC調整電圧を生成する。これらの4つの調整電
圧及びそれらに関連付けられるGNDは、既知のよう
に"システム電源"である。調整電圧が受諾可能な許容差
内のレベルを獲得すると、POWERGOOD信号が論理1に変
化する。±5VDCまたは±12VDCラインのいずれ
かが許容差から外れると、POWERGOOD信号が論理0とな
り、それによりその状態を示す。
【0062】AUX5出力は補助の+5VDCをプレー
ナに提供する。電源装置17が、公称115VACを供
給する通常の壁上のアウトレットにプラグ挿入される
と、電源装置17が"オン"か"オフ"かに関わらず、1次
/調整ユニット172が調整済み+5VDCをAUX5
に提供する。従って、AC電力を受け取る間、電源装置
17は常に公称+5VDCをAUX5に提供する。AU
X5出力は、1次/調整ユニット172が、電源装置1
7が"オン"の間にのみ+5出力を通じて調整済み+5V
DCを生成するという点で、+5出力とは異なる。更に
AUX5出力と+5出力との違いは、好適な実施例で
は、1次/調整ユニット172が+5出力を通じて、+
5VDCの数アンペアの電流を供給するのに対して、1
次/調整ユニット172はAUX5出力を通じては+5
VDCの1アンペア以下の電流しか供給しない。
【0063】通常の従来の電源装置は、Line-In入力を
電源装置の調整セクションに接続する、またはそこから
切り離すために、高アンペア双投スイッチ(double-thr
ow switch)を使用する。本発明の電源装置17は高ア
ンペア双投スイッチを使用しない。むしろ、スイッチ2
1はON#信号を生成する回路を制御する。好適な実施
例では、スイッチ21はモーメンタリ単極単投プッシュ
ボタン・スイッチである。しかしながら、当業者は、単
極双投スイッチなどの他のタイプのスイッチを利用する
ように、図7乃至図9の回路を適応化することができよ
う。AC Line-Inは常に壁上のアウトレットから1次/調
整ユニット172に接続される。ON#信号が論理1
(ほぼAUX5と等しく、公称+5VDC)のとき、1
次/調整ユニット172は115VAC Line-Inを、±
5または±12出力を通じて、±5VDCまたは±12
VDCに調整しない。1次/調整ユニット172は単
に、低アンペア数の公称+5VDCをAUX5出力に提
供する。一方、ON#が論理0(ほぼGND)のとき、
1次/調整ユニット172は115VAC Line-Inを、
4つの±5及び±12出力を通じて、それぞれ±5VD
C及び±12VDCに調整する。従って、ON#が1の
とき電源装置17は"オフ"であり、ON#が0のとき電
源装置17は"オン"である。
【0064】上述の電源装置17のような、AUX5出
力及びON#入力を有する電源装置が指定される場合、
これらは通常の電源装置の製造メーカから獲得され得
る。
【0065】図7乃至図9を参照すると、本発明のコン
ピュータ・システム10の電子回路が示される。図7乃
至図9の回路は、スイッチ21と、パワー/フィードバ
ックLED23と、電源装置17と、ビデオ表示端末1
1と、CPU40上で実行されるコードとの間のインタ
フェースを司る。
【0066】コンピュータの回路は4つの集積回路、す
なわちU1(第1の事前プログラム済みPAL16L
8)、U2(事前プログラム済み83C750マイクロ
コントローラ)、U3(既知の74LS05)、及びU
4(第2の事前プログラム済みPAL16L8(図示せ
ず))と、図7乃至図9に示されるように回路接続され
る様々な個別コンポーネントを含む。一般に、PAL
U1及びU4(図示せず)は、図3及び図4のプレーナ
I/Oバス90とマイクロコントローラU2との間をイ
ンタフェースし、マイクロコントローラU2は、図7乃
至図9の残りの回路とインタフェースする。また、前記
残りの回路は、スイッチ21、電源装置17、ビデオ表
示端末11、及びプログラマブル・クロック・シンセサ
イザ906とインタフェースする。クロック・シンセサ
イザ906は、当業者には既知の多くのこうした装置の
1つであってよい。こうした部品の1つに、Chrontelに
より製造され、多数の販売元から入手できるCH905
5Aがある。
【0067】図7乃至図9の回路は更に、スイッチ2
1、16MHz水晶Y1、18個の抵抗器R1乃至R1
8、8個のコンデンサC1乃至C8、3個のN型MOS
FETQ1乃至Q3(これらは好適な実施例では、論理
スイッチとして機能するのに好適な標準の低電流NMO
S FETである)、及び6個の1N4148小信号ダ
イオードCR1乃至CR6を含み、これら全てが図7乃
至図9に示されるように構成され、接続される。抵抗器
R1乃至R18は、1/4ワット、±5%の抵抗器であ
り、図7乃至図9に示される値を取る。コンデンサC1
は10μF(±10%)の電解コンデンサである。コン
デンサC2及びC3は、22μF(±10%)のタンタ
ル・コンデンサである。コンデンサC4乃至C8は、
0.1μF(±10%)のセラミック・コンデンサであ
る。最後に、コンデンサC9は1000pF(±10
%)のセラミック・コンデンサである。
【0068】水晶Y1とコンデンサC2及びC3は、既
知のように、マイクロコントローラU2がそのオペレー
ションのタイミングを制御するために使用する信号を生
成する。ダイオードCR1、CR3及び抵抗器R14
は、AUX5信号をVBAT信号から分離し、同時に、
電源装置17がAUX5信号を生成する間、バッテリ1
71が流出しないという点で、AUX5信号がVBAT
信号を補足することを可能にする。むしろ、AUX5信
号は、VBATに接続される装置に適切な電圧を供給す
るように、ダイオードCR1及びCR3を通じてステッ
プ・ダウンされる。別の態様では、VBATラインがA
UX5ラインから分離される。
【0069】第2のPAL U4(図示せず)は、アド
レス・ラインSA(1)乃至SA(15)及びAEN
(アドレス・イネーブル)ラインに接続される。SA
(1)乃至SA(15)及びAENは、図3及び図4に
示されるプレーナI/Oバス90の一部である。第2の
PAL U4は、単にアドレス復号器としてプログラム
され、所定のアドレスがアドレス・ラインSA(1)乃
至SA(15)上に提供され、かつAENラインがアク
ティブのとき、アクティブ・ロウ信号DCD#を提供す
る。この特定の態様では、第2のPAL U4は、アド
レス0ECH及び0EDHの2つの連続8ビットI/O
ポートを復号化するように、事前にプログラムされる。
別の態様では、DCD#信号が、メモリ制御装置または
ISA制御装置チップセットなどの、既知の別の電子装
置により生成される。
【0070】第1のPAL U1は、複数の機能を提供
するようにプログラムされる。それらの機能には、
(i)CPUとマイクロコントローラU2間での、コマ
ンド及びデータの転送を可能にする、これら両者間の読
出し/書込みインタフェース、(ii)マウス割込みI
NT12とキーボード割込みINT1との論理和、及び
(iii)CPU40からのコマンドに応答して、マイ
クロコントローラU2をリセットするリセット出力が含
まれる。
【0071】第1のPAL U1は、本明細書では"パ
ワー管理ポート"としても参照される2つの連続I/O
ポートを利用する。第1のPAL U1は、プレーナI
/Oバス90からの8個の入力、SD(4)、SD
(0)、SA(0)、IOW#、IOR#、RST_DRV、
IRQ1、及びIRQ12を有する。第1のPAL U
1は、当業者には既知のように、メモリ制御装置46に
より生成され、ピン7(I6)に入力されるアクティブ
・ハイ信号RST_DRVにより、既知の初期状態にリセット
される。
【0072】マイクロコントローラU2のリセット・ラ
インRST751は、ピン9に割当てられる。リセット・サブ
回路920は、RST751信号を生成する役割をし、4個の
抵抗器R4、R16、R17及びR18、2個のコンデ
ンサC1及びC8、並びに2個のMOSFET Q2及
びQ3を含み、第1のPAL U1及びマイクロコント
ローラU2と、図7乃至図9に示されるように回路接続
される。リセット・サブ回路920は、第1のPAL
U1からのリセット出力信号RESETを、マイクロコント
ローラU2のリセット入力信号RST751に、次のようにイ
ンタフェースする。すなわち、RESETラインが論理1の
時、RST751ラインは論理1に引き上げられ、マイクロコ
ントローラU2をリセットする。
【0073】第1のPAL U1は、CPU40が制御
ポート0EDHのビット0に論理1を書込むのに応答し
て、マイクロコントローラU2をリセットする。制御ポ
ート0EDHのビット0への論理1の書込みにより、第
1のPAL U1がRESETラインを論理1に引き上げ、
このことがRST751ラインを論理1に引き上げ、その結
果、マイクロコントローラU2がリセットされる。CP
U40は、制御ポート0EDHのビット0に論理0を書
込むことにより、リセット要求をクリアする。
【0074】更に、リセット・サブ回路は、AUX5信
号の電圧が所与の量だけ上昇するとき、常にRST751ライ
ンを論理1に引き上げ、それによりマイクロコントロー
ラU2をリセットする。こうした状況は、図11に示さ
れるように、電源装置17へのAC源の"ブラウンアウ
ト"(電圧低下)または"ブラックアウト"(停電)の間
に、AUX5電圧が低下した後に発生し得る。83C7
50のメーカであるフィリップス社は、リセット問題を
回避するために、単純なRC回路の使用を提案してい
る。しかしながら、単純なRC回路は、電源装置のブラ
ウンアウトの間に、83C750をラッチアップさせ得
る。図7乃至図9の特定の構成では、AUX5電圧が、
R4、R16及びC1により決定される時定数よりも長
い時間間隔、しきい値量だけ上昇するとき、RST751ライ
ンがR17及びC8により決定される時間間隔、論理1
に引き上げられる(それによりマイクロコントローラU
2をリセットする)。こうした状況は、通常のブラウン
アウトまたはブラックアウトの後に発生し得る。図7乃
至図9に示される態様では、しきい値は約1.5VDC
である。
【0075】図11を参照すると、AC電力が電源装置
17に供給されてAUX5が上昇する間の、及び"ブラ
ウンアウト"が発生する間の、リセット回路920の波
形が示される。t0以前には、電源装置17はAUX5
を生成しておらず、VBATは約3.3Vであり、Q3
は導通してRST751ラインをグラウンドに引き下げる。t
0において、電源装置17がAUX5を生成し始め、A
UX5に影響する電源内の負荷及びコンデンサにもとづ
く速度で、電圧が上昇し始める。ノード1はC1とR4
との間のノードであり、容量的にAUX5に接続され、
従ってAUX5が上昇すると上昇する。
【0076】t1において、ノード1は約1.5Vに達
し、これはQ2をトリガするのに十分な電圧であり、Q
2がノード2をグラウンドに引き下げる。t2におい
て、ノード2が2.5Vに達すると、Q3が導通を停止
し、RST751ラインがR18を介してAUX5のレベルに
跳ね上がり、AUX5と共に約5Vに上昇する。RST751
ラインが約3Vになると、マイクロコントローラU2が
リセットされる。
【0077】t3において、AUX5が上昇を停止し、
従ってノード1が上昇を停止し、C1及びR4により決
定される速度でグラウンドへ放電を開始する(第1のP
ALU1のRESETラインはロウ)。t4において、ノー
ド1が約1.5Vを通過するとき、Q2が導通を停止
し、ノード2がC8及びR17により決定される速度で
充電する。t5において、ノード2が約2.5Vを通過
するとき、Q3が導通し、RST751ラインをグラウンドに
引き下げる。従って、パワーオン時のリセットが完了
し、AUX5が5V、VBATが3.3V、ノード1が
グラウンド、そしてノード2がVBATとなり、システ
ムは通常の状態となる。
【0078】t6において、AUX5ラインにおいてブ
ラウンアウトが開始すると、AUX5が放電する。ノー
ド1は容量的にAUX5に接続されているので、AUX
5に追従しようとするが、そうすることができない。な
ぜなら、第1のPAL U1内のダイオードが、ノード
1が−0.5V以下に下がることを阻止するからであ
る。t7において、AUX5がその最下点に達し、再度
上昇を開始する。再び、ノード1がAUX5に追従して
上昇する。t8において、ノード1が約1.5Vに達す
ると、これはQ2をトリガするのに十分であり、Q2が
ノード2をグラウンドに引き下げる。t9において、ノ
ード2が2.5Vを通過するとき、Q3が導通を停止
し、RST751ラインがR18を介してAUX5のレベルに
跳ね上がり、AUX5と共に約5Vに上昇する。RST751
ラインが約3VになるときマイクロコントローラU2が
リセットされる。
【0079】t10において、AUX5が上昇を停止
し、従ってノード1が上昇を停止し、C1及びR4によ
り決定される速度でグラウンドへ放電を開始する(第1
のPAL U1のRESETラインはロウ)。t11におい
て、ノード1が約1.5Vを通過するとき、Q2が導通
を停止し、ノード2がC8及びR17により決定される
速度で充電する。t12において、ノード2が約2.5
Vを通過するとき、Q3が導通し、RST751ラインをグラ
ウンドに引き下げる。従って、ブラウンアウトに起因す
るリセット・サイクルが完了する。ここでこの特定のブ
ラウンアウトの間、ノード1は3V以上には上昇せず、
従ってマイクロコントローラがRST751ピンに接続されて
いれば、そのマイクロコントローラをリセットしなかっ
たことに気付かれよう。しかしながら、AUX5の電圧
は4V以下に下がり、これはマイクロコントローラU2
を不定状態に入力させるのに十分である。
【0080】リセットをトリガするしきい値は基準値に
関連付けられ、従ってしきい値電圧を上昇または低下さ
せるためには、基準の値(この場合VBAT)がそれぞ
れ上昇または低下されなければならない。リセット回路
はマイクロコントローラU2のリセット保護を強化する
利点を提供するが、非常に安価であり、マイクロコント
ローラU2をリセットしないときには、事実上、電力を
消費しない。
【0081】図7乃至図9を再度参照すると、マイクロ
コントローラU2は第1のPALU1を介してCPU4
0とインタフェースされ、多数の入力、出力及び内部的
に制御可能な機能を有する。
【0082】SWITCH信号はピン8(P0.0)に入力さ
れ、プッシュボタン21の現状態を反映する。プッシュ
ボタン21は通常、開状態である。プッシュボタン21
が開状態の間、SWITCHラインは抵抗器R1を通じて論理
0(グラウンド)に引き下げられる。プッシュボタン2
1が押下されるとき閉鎖事象が発生し、SWITCHラインが
抵抗器13を介して論理1(AUX5)にプルアップさ
れる。コンデンサC6はスイッチ閉鎖事象をデバウンシ
ング(debouncing)する作用をする。スイッチ21の閉
鎖事象のそれ以上のデバウンシングは、当業者には既知
のように、マイクロコントローラU2内で、SWITCHを所
定回数(例えば50回)読込み、SWITCHラインがこれら
全てに対して同一であることを確認することにより、実
行される。
【0083】電源装置17の調整(reguration)は、マ
イクロコントローラU2により直接、制御され得る。図
7乃至図9に示されるように、ON信号がピン5(P
3.0)に出力され、抵抗器R6を介してSWITCH信号と
ワイヤードORされ、電源装置17のON#信号を制御
する。ON信号が論理1のとき、MOSFET Q1が
導通し、それによりON#ライン(JP2のピン2)を
論理0(GND)に引き下げ、電源装置17が±5VD
C及び±12VDCラインを通じてシステムに調整電圧
を提供する。一方、ONラインが論理0のとき、MOS
FET Q1は導通せず、従ってON#ライン(JP2
のピン2)は抵抗器R7により論理1(AUX5)に引
き上げられ、それにより電源装置17は、±5VDC及
び±12VDCラインを通じて調整電圧を供給すること
を停止する。
【0084】ONラインの状態は、マイクロコントロー
ラU2がスイッチ21の閉鎖事象に応答して、及びCP
U40により書込み可能なマイクロコントローラU2内
のレジスタ・ビットに応答して制御する。マイクロコン
トローラU2はAUX5により電力供給され、従って、
マイクロコントローラU2は常に電力供給され、コード
を実行し、システムを制御する。電源装置17が±5V
DC及び±12VDCラインを通じて、システムに調整
電圧を提供していないときに、(i)スイッチ21が押
下されるか、(ii)外部事象の1つが発生すると、マ
イクロコントローラU2はON信号をアサートし、それ
により電源装置17が±5VDC及び±12VDCライ
ンを通じてシステムに調整電圧を提供する。マイクロコ
ントローラはスイッチ21が解除された後にもON信号
をアサートし続ける。
【0085】電源装置17はバックアップ・システムと
しても、ユーザの直接制御の下でプッシュボタン21を
介してオンされ得る。このオプションは通常、マイクロ
コントローラU2が期待通りに機能を停止する場合にの
み使用され、電源ボタン21の押下に応答して、システ
ムがパワーアップしないことにより証明される。図7乃
至図9に示されるように、スイッチ21はまた、ダイオ
ードCR2、MOSFET Q1、抵抗器R7及びコネ
クタJP2を介して、電源装置17のON#ラインを制
御する。通常プッシュボタン21は開状態であり、SWIT
CHラインはR1を介して論理0に引き下げられており、
MOSFET Q1は導通していない。従って、ON#
ライン(JP2のピン2)は抵抗器R7により論理1
(AUX5)に引き上げられ、電源装置17は±5VD
C及び±12VDCラインに調整電圧を供給していな
い。プッシュボタン21が押下され、ユーザにより保持
されると、SWITCHラインが論理1に引き上げられ、MO
SFET Q1が導通し、それによりON#ライン(J
P2のピン2)を論理0(GND)に引き下げ、電源装
置17が±5VDC及び±12VDCラインに調整電圧
を供給し始める。システムが電力供給された後に依然ボ
タン21が保持されていると、BIOSがCPU40
に、マイクロコントローラU2が依然機能しているか否
かをテストさせる。機能していない場合、CPU40は
マイクロコントローラU2をリセットし、U2はリセッ
ト後、スイッチ21が押下されていることを検出する。
結果的に、ボタン21が依然保持されているとマイクロ
コントローラU2はON信号をアサートし、ユーザはマ
イクロコントローラU2が電源装置17を制御している
ことを知り、最終的にスイッチ21を解除することがで
きる。このバックアップ・オプションを使用するため
に、ユーザはボタン21を数秒のオーダの所定期間(ロ
ゴが現れた後の約2秒)押下しなければならない。
【0086】マイクロコントローラU2は、(i)スイ
ッチ21が押下されるか、(ii)CPU40がマイク
ロコントコーラにシステムをオフするように指令するこ
とに応答してのみ、システムをオフする。マイクロコン
トローラU2にとってこれらの事象は同一である。なぜ
なら、マイクロコントローラU2は、スイッチの押下が
スイッチ21の閉鎖事象またはCPU40のいずれかに
より生成され得るように構成されるからである。ハード
ウェア・ボタンの押下/解除は事実上、ソフトウェア・
ボタンの押下/解除と同じに処理される。マイクロコン
トローラU2は、マイクロコントローラU2内の延期許
可フラグがクリアされていれば、CPUによるコマンド
無しにシステムをオフする。この場合、スイッチ21の
閉鎖事象に応答して、システムが電力供給され、延期許
可フラグがクリアされるとき、マイクロコントローラU
2はON信号をクリアし、それにより電源装置17は±
5VDC及び±12VDCラインへの調整電圧の供給を
停止する。ON信号は、スイッチ21が解除された後も
クリア状態を維持する。
【0087】マイクロコントローラU2は、CPUによ
るコマンドに応答してもシステムをオフし、こうしたコ
マンドは、システム状態が(延期の)ハード・ディスク
・ドライブに成功裡に保管された後に発行される。こう
したコマンドに応答して、マイクロコントローラU2は
ON信号をクリアし、それにより電源装置17は±5V
DC及び±12VDCラインを通じて、システムに調整
電圧を供給することを停止する。
【0088】マイクロコントローラU2はまた、特定の
外部事象が発生するとき、それを検出し、システムに作
用することができる。EXT_RING信号がピン7(P0.
1)に入力され、マイクロコントローラU2は電力供給
された外部モデム902から着呼を検出することができ
る。当業者には既知のように、通常の外部モデムは、着
呼信号がティップ及びリング電話回線間で検出されると
き、論理1にトグルする着呼信号を既知のRS−232
C形式で供給する。この信号はダイオードCR6を介し
てマイクロコントローラU2にインタフェースされ、抵
抗器R10及びR11により分圧され、最終的にEXT_RI
NGラインを介してマイクロコントローラU2に入力され
る。トグル信号はマイクロコントローラU2により25
ミリ秒ごとにサンプリングされ分析される。そして、こ
の入力が2連続サンプリングの間論理1の時には、常に
着呼が存在するものと見なされる。この条件が適合する
と、マイクロコントローラU2はON信号をアサート
し、それにより電源装置17は±5VDC及び±12V
DCラインを通じてシステムに調整電圧を供給する。EX
T_RING信号を用いて入来電話着呼を検出するために、外
部的に電力供給されるモデム902が提供されなければ
ならない。
【0089】別の態様では、RS−232仕様に準拠す
る2進信号を提供する(またはEXT_RING信号をアサート
するのに似た)別の装置が、EXT_RINGラインとインタフ
ェースされ、例えば動きセンサ、盗難警報器センサ、音
声活動化センサ、光センサ、赤外光センサ、"クラッパ
(clapper)"タイプ・センサなどの、システムを起こす
ために使用される。
【0090】図7乃至図9及び図10に示されるよう
に、本態様は、光絶縁器OPTO1ベースの着呼検出回
路を有する内部モデムから電話着呼信号を検出する機構
を有する。多くの好適な光絶縁器が、例えばヒューレッ
ト・パッカード社などにより製造されており、多数の販
売元から入手することができる。内部モデム900はシ
ステム・プレーナ20の回路内に組み込まれるように設
計されるか、拡張スロット78の1つに配置される。後
者の場合には、モデム900は、光絶縁器OPTO1か
らの信号が、図7乃至図9のパワー管理回路の回路に電
気的に接続されるように、ベルグ(Berg)または類似の
コネクタを装備しなければならない。モデムの多くのメ
ーカが、本発明の回路と共に使用するのに好適なコネク
タを装備するように、それらの内部モデムを変更してい
る。EXT_WAKEUP#信号はマイクロコントローラU2のピ
ン6(P0.2)に入力され、内部モデム900内の着
呼検出光絶縁器OPTO1から信号を入力するために使
用される。この信号は抵抗器R9及びR5、ダイオード
CR6及びコンデンサC9を介してインタフェースさ
れ、最終的にはEXT_WAKEUP#ラインを介してマイクロコ
ントローラU2に入力される。
【0091】内部モデム900のしきい値及び保護部分
905は、標準のティップ及びリング電話回線に接続さ
れ、(i)モデム900を損傷し得る落雷及び他の電気
事象からの保護を提供し、(ii)モデム設計に携わる
当業者には既知のように、着呼しきい値電圧を設定す
る。
【0092】光絶縁器OPTO1からのトグル信号は、
マイクロコントローラU2により検出及び分析され、マ
イクロコントローラU2は、EXT_WAKEUP#上の3連続信
号周期の信号が15.1Hz乃至69.1Hzの周波数
を有するとき、常に着呼が存在するものと見なす。EXT_
RINGに沿って着呼信号を提供するように電力供給されな
ければならないEXT_RING信号回路と異なり、内部モデム
900は、光絶縁器OPTO1がEXT_WAKEUP#ラインに
沿って適切な信号を供給するために、電力供給される必
要はない。EXT_WAKEUP#ラインは通常、抵抗器R5によ
りAUX5にプルアップされる。
【0093】マイクロコントローラU2は、CPU40
がシステム管理割込み(SMI)を有する場合、CPU
40のSMIを介してCPU40に割込みを発生する
(CPU40は本発明の多数の利点を利用するように、
システムのためにSMIを有する必要はない)。SMI_OU
T#信号はマイクロコントローラU2のピン3(P3.
2)に出力され、オペレーティング・システムが割込み
を有効にするか許可するのを待機すること無く、マイク
ロコントローラU2が直ちにCPU40に割込みを発生
できるようにする。SMI_OUT#ライン状態は、マイクロコ
ントローラU2内に配置され、CPU40により書込ま
れる書込み可能なレジスタ・ビットにより制御される。
更に、マイクロコントローラU2は、(i)ACTIVITY#
ライン上で検出される活動に応答して、または(ii)
マイクロコントローラU2が電源装置17にシステムへ
の調整電圧の供給を停止させる以前に、SMI_OUT#信号を
アサートすることができ、それによりCPU40に割込
みを発生する。これらの事象のいずれかまたは両方は、
CPUからマイクロコントローラU2へのコマンドによ
り、イネーブルまたはディセーブルされる。
【0094】各SMIにおいて、CPU40内のマイク
ロコードが、CPUの状態をメモリから特殊なCPU状
態保管領域に保管する。従って、CPU40はSMI割
込みハンドラを実行し、これが下記の機能を実行する。
CPUの状態を復元するために、SMI割込みハンドラ
はRSM(再開)命令を発行し、これがCPU40に特
殊保管領域からそれ自身の状態を復元させる。
【0095】CPU40がマイクロコントローラU2に
SMIを介して割込みを発生させる以前に、CPU40
はSMIの理由を示す値をCMOS NVRAM内の変
数に書込む。CMOS NVRAM内のこの値は00H
にデフォルト指定され、これはCPU40に対して、マ
イクロコントローラU2がCPU40に非同期に割込ん
でいることを示す。この状態は、マイクロコントローラ
U2が電源装置17に調整電圧の供給を停止させる以前
に発生する。各SMIの後、CPU40はCMOS N
VRAM内のその変数を00Hにセットする。この値に
応答して、CPU40は、システムがマイクロコントロ
ーラU2によりパワー・ダウンされようとしている想定
にもとづき、特定のタスクを実行する。CPU40は、
マイクロコントローラU2がシステムをパワー・ダウン
するまでの時間を延長することができる。マイクロコン
トローラU2は、自身内のパワー・ダウン延長タイマを
周期的に再始動させることにより、パワー・ダウンを実
行する。
【0096】システムがパワー・ダウンするまでの間、
CPU40は多数のタスクを実行できる。例えば、ユー
ザが警報の呼び起しに作用する1つまたは複数のパラメ
ータを変更しているかもしれないので、CPUは新たな
呼び出し時間(分)の値を再計算し、マイクロコントロ
ーラU2に書込む。更に、CPUはCMOS NVRA
M96に、コンピュータ・システムがその最後のパワー
オン以来動作した時間などの特定の情報を書込み、これ
らは後にハード・ドライブ31に書込まれる。これにつ
いては図60に関連して述べられる。
【0097】CPU40により書込まれる他の値には、
01H(CPU40が延期ルーチン250にジャンプす
ることを示す)、02H(CPU40が再開ルーチン4
50にジャンプすることを示す)、及び0FFH(CP
U40がセグメントE000Hデータ構造内の特殊CP
U状態保管領域をセット・アップすることを示す)が含
まれる。
【0098】本態様では、マイクロコントローラU2は
表示装置11をブランキングする制御を与えられる。DI
SP_BLANK信号がマイクロコントローラU2のピン1(P
3.4)を介して出力され、表示装置11のブランキン
グを直接制御する。2個のインバータU3D及びU3E
が、DISP_BLANK信号をESYNC#及びBLANK#ラインにインタ
フェースする。ESYNC#及びBLANK#ラインが論理1(VC
C)の場合、ビデオ制御装置56がビデオ信号を生成す
る。ESYNC#及びBLANK#ラインが論理0(GND)の場
合、ビデオ制御装置56がビデオ信号の生成を停止す
る。DISP_BLANKラインの状態は、マイクロコントローラ
U2内に配置され、CPU40により書込まれる書込み
可能なレジスタ・ビットにより制御される。CPU40
は、システムが待機状態152に入力するとき、表示装
置をブランキングするようにマイクロコントローラU2
に命令する。更に、スイッチ21の閉鎖事象に応答し
て、DISP_BLANKラインが順次セットされ、次にクリアさ
れる。同様に、任意の活動割込みにおける活動(この場
合にはINT1またはINT12)が、マイクロコント
ローラU2にDISP_BLANKラインをクリアさせ、それによ
りビデオ制御装置56がビデオ信号を生成することを可
能にする。
【0099】更に、マイクロコントローラU2は、クロ
ック・シンセサイザ906により生成されるクロック信
号の周波数を制御する。3本のベルグ・タイプのジャン
パ線(図示せず)JP0、JP1及びJP2が、クロッ
ク・シンセサイザ906を次のように制御する。JP0
=0、JP1=1及びJP2=0のとき、クロック・シ
ンセサイザは33MHzのクロック信号を生成し、JP
0=1、JP1=1及びJP2=0のとき、クロック・
シンセサイザは25MHzのクロック信号を生成し、J
P0=0、JP1=1及びJP2=1のとき、クロック
・シンセサイザは8MHzのクロック信号を生成する。
クロック・シンセサイザ906は更に、3本のクロック
・ラインCLK0、CLK1及びCLK2により制御さ
れ、これらはJP0、JP1及びJP2に対応する。図
7乃至図9に示されるように、これらのクロック・ライ
ンCLK0、CLK1及びCLK2は、マイクロコント
ローラU2のピン2(P3.3)に出力されるCLK_SLOW
#信号を介してマイクロコントローラU2により制御さ
れる。図示のように、CLK_SLOW#信号は、オープン・コ
レクタ出力を有するインバータU3A、U3B及びU3
Cにより、2重に反転される。また、抵抗器R15及び
R8は、それぞれU3Aのオープン・コレクタ出力及び
クロック・シンセサイザ906へのCLK0入力を論理
1に引き上げるために使用される、プルアップ抵抗器で
ある。
【0100】3つのクロック信号CLK0、CLK1及
びCLK2と、3本のジャンパ線JP0、JP1及びJ
P2は、クロック・シンセサイザを次のように制御す
る。すなわち、CLK_SLOW#信号が論理1の時、CLK1
及びCLK2信号も論理1となり、結果的に、クロック
・シンセサイザ906はジャンパ線JP1、JP2によ
り制御され、システムにより使用される25MHz及び
33MHzの速いクロック信号を生成する。一方、CLK_
SLOW#信号が論理0の時、CLK1及びCLK2信号も
論理0となり、結果的に、クロック・シンセサイザ90
6はシステムにより使用される遅い8MHzのクロック
信号を生成し、システムが低電力を消費するようにす
る。図7乃至図9に示されるように、ベルグ・タイプの
ジャンパ線は、CLK_SLOW#ラインをCLK0ラインから
分離する。ジャンパ線が設置されると、CLK0ライン
はCLK_SLOW#信号に従う。一方、ジャンパ線が設置され
ない場合には、CLK0ラインはCLK_SLOW#信号の状態
には関係無しに、抵抗器R8により論理1にプルアップ
された状態となる。CLK_SLOW#ラインの状態は、マイク
ロコントローラU2内に配置され、CPU40により書
込まれる書込み可能なレジスタ・ビットにより制御され
る。更に、CLK_SLOW#ラインは、ACTIVITY#ラインの活動
に応答してマイクロコントローラU2によりクリアされ
得る。当業者には明らかなように、他のクロック・シン
セサイザも本発明において使用され得る。マイクロコン
トローラU2とクロック・シンセサイザ906間の相互
接続は、使用される特定のシンセサイザの特定の仕様に
適合するように、変更され得る。
【0101】更に、マイクロコントローラU2は、パワ
ー/フィードバックLED23の照明を直接制御する。
LED_CTRL信号がピン22(P3.6)に出力され、マイ
クロコントローラU2によるパワー/フィードバックL
ED23の直接制御を可能にする。抵抗器R2及びR
3、並びにダイオードCR4及びCR5は、LED_CTRLラ
インが論理0であることに応答して、パワー/フィード
バックLED23が、AUX5電源ラインまたはVCC
電源ラインのいずれかにより駆動されるようにする。LE
D_CTRLラインが論理1の時には、パワー/フィードバッ
クLED23は照明されない。以降で詳述されるよう
に、LED_CTRLラインは、スイッチ21の閉鎖事象、警報
の呼び起し、いずれかの着呼検出入力の1回以上の着
呼、または待機モードに置かれるシステムに応答して、
マイクロコントローラU2により制御される。
【0102】マイクロコントローラU2はLED23
を、単純なパワーLEDとして制御することができる。
LED23はスイッチ21の閉鎖事象後に照明され、こ
の事象はシステムをオフ状態156または延期状態15
4から、正常動作状態150に変化させる。同様に、マ
イクロコントローラU2はスイッチ21の解除事象後に
LED23を消灯する。この事象は、システムを正常動
作状態150から延期状態154またはオフ状態156
に変化させる。
【0103】更に、LED23はマイクロコントローラ
U2により特定の周期、例えば毎秒ごとに選択的に点滅
され、システムが待機状態152であることを示す。更
に、LED23はマイクロコントローラU2により異な
る周期、例えば0.5秒ごとに点滅され、システムが着
呼または警報により呼び起こされ、システムがオフ状態
または延期状態のいずれかであることを示す。別の態様
では、延期状態の間、LED23がマイクロコントロー
ラU2により、点滅グループに選択的に点滅され、シス
テムが着呼や警報などの外部事象によりパワー・アップ
され、不活動延期タイマの満了により逆にパワー・ダウ
ンされた回数を示す。この場合、BIOSに1つ以上の
機能が提供され、OSまたはアプリケーション・プログ
ラムが、マイクロコントローラU2がLED23の点滅
回数を変更することを可能にする。例えば、システムが
着呼により呼び起こされ、入来ファクシミリ伝送が受信
されると、テレコミュニケーション・アプリケーション
・プログラムが、点滅回数に1を加算する特定のBIO
S機能を呼び出す。その後、BIOSがCPU40に新
たな点滅値をマイクロコントローラU2に書込ませ、マ
イクロコントローラU2がLED23を指定回数点滅さ
せる。
【0104】POWERGOOD信号はマイクロコントローラU
2のピン4(P3.1)に入力され、この信号がマイク
ロコントローラU2及びCPU40により使用されるよ
うにする。特に、マイクロコントローラU2はPOWERGOO
D信号により、電源装置17が故障したかどうかを判断
し、故障状態を取り除くフィードバック式故障検出及び
修正回路を実現する。別途述べられるように、ON信号
がある期間(例えば3秒)アサートされ、POWERGOOD信
号が論理0、すなわち電源装置17が適正レベルの調整
電圧を供給していないことを示す場合、マイクロコント
ローラU2は、電源装置17が例えば過電流状態から故
障したものと想定する。結果的に、故障状態を可能であ
れば取り除くために、マイクロコントローラU2はON
信号のアサートをある期間(例えば5秒)停止し、故障
を取り除く。その後、マイクロコントローラU2はON
信号を再度アサートし、POWERGOOD信号が論理1にな
る、すなわち電源装置17がシステムに調整電圧を供給
していることを示すのを待機する。このフィードバック
式故障検出及び修正が存在しないと、電源装置17は故
障し続け、マイクロコントローラU2はON信号をアサ
ートし続け、電源装置17に調整電圧を生成させようと
する。この場合、故障を取り除く唯一の解決方法は、電
源装置17からAC電力を取り除くことである。
【0105】電源装置17の故障検出及び修正回路の別
の態様が、図12に示される。この態様は、電源装置1
7が故障したことを検出し、故障を取り除くために、4
個のFET Q10乃至Q13、抵抗器R20乃至R2
3、コンデンサC20、及び74HC132を使用す
る。Q12は、ON信号がハイで、AUX5が電力供給
されており、VCCがQ11をトリガするしきい値より
も低いとき、R22及びC20により決定される期間、
ON信号をロウに引き下げ、それにより電源装置17の
故障状態を取り除く。
【0106】ACTIVITY#信号はマイクロコントローラU
2のピン19(INT1)に入力され、マイクロコント
ローラU2はこの信号により、キーボード12及びマウ
ス13の活動に応答する。IRQ1はキーボード・ハー
ドウェア割込み信号であり、第1のPAL U1のピン
8(I7)に入力される。キーボード12上のキーを押
下すると、IRQ1信号がパルスとして生成される。I
RQ12はマウス・ハードウェア割込み信号であり、第
1のPAL U1のピン11(I9)に入力される。マ
ウス13を移動するかマウス13上のボタンを押下する
と、IRQ12信号がパルスとして生成される。IRQ
1及びIRQ12信号は第1のPALU1内で論理和さ
れ、ACTIVITY#信号として出力される。ACTIVITY#信号の
使用は、マイクロコントローラU2が決してキーボード
12またはマウス13の活動を見逃さないようにする。
【0107】待機状態の間、いずれかの割込み活動によ
り、マイクロコントローラU2は即時ビデオ表示を復元
する。このように割込みIRQ1及びIRQ12を使用
することにより、待機状態152から正常動作状態15
4への復帰時に、ユーザにビデオ表示の復元形態で、即
時フィードバックを提供する。これら無しでは、図15
乃至図18に関連して述べられるように、APMがユー
ザ活動をチェックしてから数秒後まで、ユーザはフィー
ドバックを受け取れないことになり得る。
【0108】CPU40とマイクロコントローラU2間
の通信は、SD(0)(第1のPAL U1のピン18
(I/O6)に入力され、第1のPAL U1のピン1
3(I/O1)からRWD0ラインを介して出力され、
マイクロコントローラU2のピン13(P1.0)に入
力される)と、SD(1)(マイクロコントローラU2
のピン14(P1.1)に入力される)と、SD(2)
(マイクロコントローラU2のピン15(P1.2)に
入力される)と、SD(3)(マイクロコントローラU
2のピン16(P1.3)に入力される)と、SD
(4)(第1のPAL U1のピン6(I5)に入力さ
れる)と、IO_STROBE#(マイクロコントローラU2のピ
ン18(INT0)に入力される)と、PROC_RDY(マイ
クロコントローラU2のピン20(P1.7)に出力さ
れる)とにより達成される。第1のPAL U1及びマ
イクロコントローラU2は、次のように構成され、プロ
グラムされる。(i)SD(0)(RWD0を介す
る)、SD(1)、SD(2)及びSD(3)に沿っ
て、CPU40からマイクロコントローラU2に4ビッ
ト並列に書込み、1アドレスが本来マイクロコントロー
ラU2をリセットするための1ビット書込みに対応し、
他はデータ・ビットSD(4)がハイの時にのみ有効
な、マイクロコントローラU2へのニブル書込みに対応
し、(ii)SD(0)(RWD0を介する)に沿っ
て、CPU40がマイクロコントローラU2からシリア
ルに(1ビットで)読出し、1アドレスがステータス・
ビットに対応し、他はマイクロコントローラU2からの
データ・ビットに対応する。
【0109】図52乃至図55を参照すると、マイクロ
コントローラU2上で実行される複数のルーチンが、タ
スク1160で開始するように示される。マイクロコン
トローラU2は通常、2つのメイン・ルーチン、すなわ
ちパワーオン・ルーチン(タスク1168乃至121
6)及びパワーオフ・ルーチン(タスク1260乃至1
308)の一方を実行している。パワーオン・ルーチン
は、電源装置17が±5VDC及び±12VDCライン
に調整電圧を供給している時、または電源装置17が±
5VDC及び±12VDCラインに調整電圧を供給して
いないが、システムがパワーオンの途中の時に、マイク
ロコントローラU2により実行される。パワーオフ・ル
ーチンは、電源装置17が±5VDC及び±12VDC
ラインに調整電圧を供給していない時、または電源装置
17が±5VDC及び±12VDCラインに調整電圧を
供給しているが、システムがパワーオフの途中の時に、
マイクロコントローラU2により実行される。更に、次
の3つの割込み駆動型ルーチンが存在する。第1はCP
U40と通信するルーチン(タスク1220乃至123
2)、第2はマウス13またはキーボード12の活動を
検出するルーチン(タスク1236乃至1244)、及
び第3は25ミリ秒、1/2秒、1秒、及び1分の分解
能の時間基準を提供するルーチン(タスク1248乃至
1256)である。
【0110】最初に、マイクロコントローラU2がタス
ク1164で初期化され、その間に全ての変数が初期化
され、カウンタ変数が初期化され、タイマ割込みが初期
化及び許可され、通信ルーチン及び活動ルーチンを制御
する外部割込みが初期化される。
【0111】通信ルーチンは、タスク1220で開始す
る割込み駆動型ルーチンであり、IO_STROBEラインが第
1のPAL U1により論理0に引き下げられ、それに
よりCPU40がコマンドまたは問い合わせを開始する
ことが示されるとき、実行される。要するに、このルー
チンはタスク1224で、CPU40から1つのまたは
複数のニブル・コマンドまたは問い合わせを受信し、タ
スク1228でコマンドを実行するか、または問い合わ
せに応答してデータを返却し、タスク1232でプログ
ラムの実行制御を割込みコードに返す。
【0112】マイクロコントローラU2は順次にコマン
ドまたは問い合わせを形成するニブルをCPUから受信
する。ニブルを受信後、マイクロコントローラU2はPR
OC_RDYをロウに下げる。次のニブルの受信準備が整う
と、PROC_RDYを再度ハイにする。PROC_RDYのこのロウと
ハイの遷移を見ることにより、CPU40は次のコマン
ド・ニブルを書込むことができる。
【0113】マイクロコントローラU2はCPU40か
らのコマンドまたはニブルを実行する間、別のコマンド
を受信することができない。従って、マイクロコントロ
ーラU2はPROC_RDYラインを論理0にアサートし、CP
U40に(ステータス・ポートの読出しを介して)、自
身が次のコマンドまたは問い合わせをまだ受諾できない
ことを示す。実行が終了すると、PROC_RDYラインは論理
1にアサートされ、CPU40に(ステータス・ポート
の読出しを介して)、マイクロコントローラU2が次の
コマンドまたは問い合わせを受諾する準備が完了したこ
とを示す。
【0114】活動ルーチンはタスク1236で開始する
割込み駆動型ルーチンであり、ACTIVITY#ラインが第1
のPAL U1により論理0に引き下げられ、ユーザが
マウス13またはキーボード12のいずれかを使用した
ことが示されると実行される。要するに、割込みの受信
に応答して、このルーチンはタスク1240で、(i)
マウス13またはキーボード12活動のいずれかが生じ
たことを示すビットをセットし、(ii)クロック低下
が許可されていれば、クロック速度を復元し、(ii
i)ブランキングが許可されていれば、画面11をブラ
ンキング解除し、(iv)フェールセーフ・タイマを再
開し、(v)SMIが許可されていればCPUにSMI
を生成する。その後、ルーチンはタスク1244で、プ
ログラムの実行制御を割込みコードに戻す。このルーチ
ンによりセットされるビットは、別途述べられるよう
に、APM"事象獲得(get event)"の度に、スーパバ
イザ・ルーチンにより照会される。
【0115】タイマ・ルーチンはタスク1248で開始
する割込み駆動型ルーチンであり、内部タイマ割込みに
応答して実行される。内部タイマ割込みは、マイクロコ
ントローラU2の時間基準を提供するように、25ミリ
秒ごとに割込みを生成するように構成される16ビット
・フリーラン・カウンタにもとづく。タイマ・ルーチン
は次の時間基準、すなわち25ミリ秒、1/2秒、1
秒、及び1分を提供する。要するに、このルーチンは割
込みを受信し、様々な時間が発生したことを判断し、タ
スク1252で適切な活動を実行し、タスク1256で
プログラム実行制御を割込みコードに戻す。
【0116】電源装置17が調整電圧を供給しておら
ず、マイクロコントローラが着呼に応答するように構成
されていれば、タイマ・ルーチンは刻時(毎25ミリ
秒)の度に、EXT_RINGライン上のRS−232着呼をチ
ェックし、もしそれが発生していればビットをセットす
る。
【0117】別途述べられるように、オフ状態または延
期状態の間の毎1/2秒ごとに、タイマ・ルーチンは、
外部着呼表示器の点滅シーケンスを呼び起こすために、
LED23をトグルさせるべきかどうかを判断する。
【0118】別途述べられるように、待機状態の間の毎
秒ごとに、タイマ・ルーチンは、延期表示器の点滅シー
ケンスを実行するために、LED23をトグルさせるべ
きかどうかを判断する。
【0119】更に毎秒ごとに、タイマ・ルーチンは適時
フェールセーフ・タイマを減分し、APM故障延期タイ
マを減分し、電源故障タイマを減分し、いずれかのタイ
マが満了すると対応するビットをセットする。フェール
セーフ・タイマは20秒タイマであり、満了すると、マ
イクロコントローラにシステム電力をオフさせる。フェ
ールセーフ・タイマはAPM事象獲得に応答して、スー
パバイザ・ルーチンにより頻繁に再始動(リセット)さ
れる。従って、CPU40上で実行されるコードが適正
に実行されている限り、フェールセーフ・タイマは満了
しない。しかしながら、コードが適正に実行されなくな
ると、フェールセーフ・タイマは満了し、電源ボタン2
1の押下及び解除に応答して、マイクロコントローラU
2はBIOS及び他のルーチンが故障したとの想定にも
とづき、電源装置17が±5VDC及び±12VDCラ
インに調整電圧を供給するのを停止させる。
【0120】APM故障延期タイマは18秒タイマであ
り、スイッチ21がオフ/解除状態(ユーザがシステム
をオフしようとしていることを示す)の時にイネーブル
され、満了するとシステムに延期を試行させ、望ましく
はフェールセーフ・タイマの満了以前に、マイクロコン
トローラU2にシステムをオフさせる。フェールセーフ
・タイマ同様、APM故障延期タイマは、CPU40上
で実行されるコード、例えばAPM事象獲得、APM最
終要求処理、及びAPM最終要求拒否などにより頻繁に
再始動(リセット)される。従って、CPU40上で実
行されるコードが適正に実行されている限り、APM故
障延期タイマは満了しない。しかしながら、コードが適
正に実行されないと、APM故障延期タイマは満了す
る。
【0121】APM故障延期タイマが満了すると、マイ
クロコントローラU2はビットをセットする。このビッ
トは、当業者には既知のように、約55ミリ秒ごとに発
生する各タイマ・レベル0割込みの間にチェックされ
る。更に、タイマ・レベル0割込みサービス・ルーチン
は、フェールセーフ・タイマを再始動する。タイマ・レ
ベル0割込みサービス・ルーチンは、APM故障延期タ
イマが満了したことを検出して、延期ルーチンにジャン
プし、図10乃至図25に関連して述べられるように、
システムを延期しようとする。
【0122】タイマ・レベル0割込みサービス・ルーチ
ンにより再始動される延期は、好適な延期方法ではな
い。多くのアプリケーション・プログラム及びアダプタ
はAPM対応(APM aware)であり、システムの延期に
応答してタスクを実行する。タイマ・レベル0割込みサ
ービス・ルーチンにより開始される延期は、これらのA
PM対応エンティティに延期が差し迫っていることを知
らせるために、APMを使用することができない。結果
的に、これらのエンティティが正当に準備されること無
く、システムは延期される。システム自身は、タイマ・
レベル0割込みサービス・ルーチンにより開始される延
期により保管され、従ってメモリ内のデータは失われな
い。しかしながら、所望のデータを保管後、ユーザはシ
ステムをその適正な状態にするために、マシンをリブー
ト(reboot)する必要があるかもしれない。
【0123】APM故障延期タイマは、OS内のAPM
ドライバ内の"ホール(hole)"をパッチするのに特に役
立つ。例えば、マイクロソフト・ウィンドウズ3.1モ
ードの対話ボックスが表示されるとき、ウィンドウズA
PMドライバは、APM事象獲得の発行を停止する。結
果的に、ユーザがシステムを延期しようとして電源ボタ
ン21を押下するときに、対話ボックスが表示されてい
れば、システムは延期されない。マイクロコントローラ
U2は、スイッチがオフ/解除状態であることに気付く
が、APM事象獲得が停止されているために、スーパバ
イザ・ルーチンが呼ばれない。スイッチの押下は、対話
ボックスがユーザによりクリアされるまで機能しない。
しかしながら、APM故障延期タイマが満了し、その満
了がタイマ・レベル0割込みサービス・ルーチンにより
検出されると、システムはAPM対応エンティティにシ
ステムが延期されることを知らせること無く、可能な範
囲で保管される。
【0124】毎分ごとに、タイマ・ルーチンは警報タイ
マ及び活動タイマを呼び起こす時間(分)を減分する。
タイマを呼び起こす時間が満了し、割込みが許可されて
いると、マイクロコントローラU2は電源装置17に、
±5VDC及び±12VDCラインへの調整電圧の供給
を開始させる。
【0125】マイクロコントローラU2が初期化された
後、電源装置17がタスク1168でテストされ、電源
がオフかどうかが判断される。電源が依然オンの場合、
マイクロコントローラ17はタスク1172で、電源装
置17が故障かどうかをチェックする。電源装置17は
シャット・ダウンまたは"故障"のための幾つかの内部保
護を有する。マイクロコントローラU2は、次のように
電源装置17が故障したかどうかを判断する。すなわ
ち、マイクロコントローラU2が動作しており(AUX
5が電力供給されている、すなわちAC電力が電源装置
17に供給されていることを示す)、かつ電源装置17
に±5VDC及び±12VDCラインに調整電圧を供給
させるように、マイクロコントローラU2がON信号を
アサートしており、かつPOWERGOODラインがアサートさ
れていない場合(電源装置17が±5VDC及び±12
VDCラインに調整電圧を供給していないことを示
す)、電源装置17が故障しており、リセットされなけ
ればならないと判断する。
【0126】タスク1172で、電源装置17は実際に
2度テストされる。マイクロコントローラU2はON信
号をアサートし、次に3秒待機する。これは内部時間基
準により測定される。ON信号が3秒間アサートされた
後にPOWERGOOD信号がアサートされない場合、マイクロ
コントローラU2はON信号をクリアし、別の5秒待機
する。次にON信号を再度アサートし、更に3秒待機す
る。ON信号が3秒間アサートされた後に、POWERGOOD
信号がアサートされないと、マイクロコントローラU2
はON信号をクリアし、電源装置17が故障したものと
見なす。
【0127】電源装置17が故障した場合、マイクロコ
ントローラU2はタスク1174でパワーオフ・ルーチ
ンにジャンプする。一方、電源装置17が故障していな
かオフの場合、マイクロコントローラはタスク1175
で、電源装置17に±5VDC及び±12VDCライン
に調整電圧の供給を開始させ、タスク1176でI/O
ポートを初期化し、LED23をオンし、外部割込みを
許可する。
【0128】図13は、マイクロコントローラU2内で
維持されるスイッチ状態マシンを示す。図示のように、
状態はスイッチ21の閉鎖事象、並びにコンピュータ・
システム10のリセット及びCPU40による書込みな
どの他の事象に応答して、変化する。電源装置17によ
りAUX5が供給されていない場合、マイクロコントロ
ーラU2は電力供給されておらず、従って、スイッチ状
態は意味を持たない(174)。スイッチ21の押下、
いずれかの発信元からの電話着呼、警報タイマの満了、
及びCPU40からのコマンドにより、マイクロコント
ローラU2は図7乃至図12に関連して述べられるよう
に電源装置17にシステムへの電力の供給を開始させ
る。
【0129】図13に示されるように、スイッチ21は
マイクロコントローラU2によりモニタされる4つの状
態を有する。それらは、(i)オン/押下状態176
(ユーザがボタンを保持してマシンをオンしようとして
いる)、(ii)オン/解除状態178(ユーザがボタ
ンを解除し、マシンをオンしようとしている)、(ii
i)オフ/押下状態180(ユーザがボタンを保持して
マシンをオフしようとしている)、及び(iv)オフ/
解除状態182(ユーザがボタンを解除し、マシンをオ
フしようとしている)である。次にタスク1180で、
マイクロコントローラU2は、スイッチがオフ/解除状
態182、すなわちユーザがボタンを解除し、マシンを
オフしようとしているかどうかをテストする。
【0130】オフ/解除状態182のときにスイッチ2
1が押下されると、マイクロコントローラU2はオン/
押下スイッチ状態176に入力する。スイッチ21を解
除すると、マイクロコントローラU2はオン/解除スイ
ッチ状態178に入力する。同様に、マイクロコントロ
ーラU2がリセットされるとき、マイクロコントローラ
U2は状態174を脱出し、オン/解除状態178に入
力する。スイッチ21を再度押下すると、マイクロコン
トローラU2はオフ/押下スイッチ状態180に入力す
る。スイッチ21を再度解除すると、マイクロコントロ
ーラU2はオフ/解除スイッチ状態182に入力する。
スイッチ21を続いて閉じると、マイクロコントローラ
U2は図13に示されるように4つの状態を循環する。
コンピュータ・システム10が正常動作状態150の
時、マイクロコントローラU2はオン/解除スイッチ状
態178である。アプリケーション・プログラムはこの
状態の間、実行される。システム10はこの状態におい
て待機状態152に入力及び退去し得る。この状態はユ
ーザ生成される延期打切り要求にも対応する。オフ/解
除スイッチ状態は、ユーザによる延期要求に対応するス
イッチ状態である。すなわち、コンピュータ・システム
10はオフ状態156から開始し、スイッチ21を1度
押下し解除すると、システムは正常動作状態150に入
力する。再度スイッチ21を押下し解除すると、図15
乃至図18に関連して詳述されるように、延期要求が生
成され、これがスーパバイザ・ルーチンにより読込まれ
る。システム10が延期状態154になる以前に3度目
にスイッチ21を押下し解除すると、延期打切り要求が
生成され、これが延期ルーチンにより読込まれる。
【0131】図52乃至図55に戻り、ユーザがボタン
を解除し、マシンをオフしようとすると、マイクロコン
トローラU2はタスク1184でパワーオフ・ルーチン
にジャンプする。
【0132】一方、ボタンがオフ/押下状態180、す
なわちユーザがボタンを保持して、マシンをオフしよう
としている場合、マイクロコントローラU2はタスク1
192で、スイッチがBIOSによりマスクされたかど
うかをテストする。BIOSは待機状態への入力時にス
イッチ21を1度マスクし、上述したように、スイッチ
の押下によりシステムが待機状態から延期状態に遷移す
ることを阻止し、それによりユーザの混乱を回避する。
【0133】スイッチ21がBIOSによりマスクされ
ると、マイクロコントローラU2コードはタスク117
6にジャンプして戻り、マスク・ビットをクリアし、次
のスイッチ押下によりシステムがオフ状態または延期状
態に入力することを可能にする。一方、スイッチ21が
マスクされていないか、スイッチ21がオフ/押下状態
でない場合には、マイクロコントローラU2はタスク1
196でハートビート・ルーチンを実行する。
【0134】ハートビート・ルーチンは、CPU40に
マイクロコントローラU2が適正に機能していることを
知らせるために使用される。マイクロコントローラU2
のCMD_STATE#ライン出力(ピン17(P1.4))は通
常、論理1である。50マイクロ秒乃至60マイクロ秒
ごとに、マイクロコントローラU2はこのラインを約
1.5マイクロ秒の間、論理0に引き下げ、次にそれを
論理1に戻す。CPU40により読込まれるパワー管理
ステータス・ポートは、CMD_STATE#ラインとPROC_RDYラ
インとの論理積であるので、ハイからロウへ、そして再
度ハイへのこの遷移は、マイクロコントローラU2が適
正に機能していることを保証するために、CPU40に
より頻繁に、例えばシステム・ブートの度にモニタされ
る。
【0135】次に、マイクロコントローラU2はタスク
1200で、BIOSがパワーオフを指令したかどうか
をテストする。CPU40は事実上、マイクロコントロ
ーラU2内のあらゆる変数をアクセスし、変更すること
ができる。例えば延期の間に、システムの状態がハード
・ドライブ31に書込まれた後などのように、BIOS
がシステムがパワーオフされるべきことを示す変数をセ
ットしている場合、マイクロコントローラU2はタスク
1204でパワーオフ・ルーチンにジャンプする。
【0136】一方、BIOSがパワーオフを指令してい
ない場合には、マイクロコントローラU2はタスク12
08でフェールセーフ・ルーチンを実行する。フェール
セーフ・タイマは、電源装置17が±5VDC及び±1
2VDCラインに調整電圧を供給しているときにイネー
ブルにされる20秒タイマである。このルーチンは、フ
ェールセーフ・タイマが満了したかどうかをチェック
し、満了していればビットをセットする。このルーチン
はまた、BIOSにより指令されれば、フェールセーフ
・タイマを再始動する。
【0137】次にタスク1212で、安全処置として、
またマイクロコントローラU2を電源装置17に同期さ
せるために、マイクロコントローラU2はPOWERGOODラ
インをチェックし、電源装置17が依然調整電圧を±5
VDC及び±12VDCラインに供給しているかどうか
を検出する。
【0138】電源装置17が±5VDC及び±12VD
Cラインに調整電圧を供給していなければ、マイクロコ
ントローラU2はタスク1216でパワーオン・ルーチ
ンにジャンプする。一方、電源装置17が±5VDC及
び±12VDCラインに調整電圧を供給している場合に
は、マイクロコントローラ・コードはタスク1180に
ジャンプして戻り、実行を継続する。
【0139】パワーオフ・ルーチンはタスク1260で
開始する。最初に、マイクロコントローラU2はタスク
1264で活動割込みを禁止し、表示装置がブランキン
グ解除されることを阻止する。
【0140】次にタスク1268で、マイクロコントロ
ーラU2はPOWERGOODラインをチェックし、電源装置1
7が依然±5VDC及び±12VDCラインに調整電圧
を供給しているかどうかを検出する。電源装置17が依
然±5VDC及び±12VDCラインに調整電圧を供給
している場合、マイクロコントローラU2はタスク12
72で、表示装置がブランキングされ、LED23がオ
フされるべきかどうかをテストする。肯定の場合、マイ
クロコントローラU2はビデオ制御装置56にビデオ信
号の生成を停止させ、LED23をオフする。
【0141】その後、またはLED及び表示装置がブラ
ンキングされるべきでない場合には、マイクロコントロ
ーラU2は次に、(i)BIOSがビットをセットする
ことによりシステムが再度オンされるように指令した
か、または(ii)ユーザが電源ボタン21を再度押下
することにより、システムが再度オンされるように指令
したかをテストする。これらのいずれかが発生すると、
システムは再度パワーアップされ、マイクロコントロー
ラU2はタスク1284でパワーオン・ルーチンにジャ
ンプする。
【0142】次に、マイクロコントローラU2は、光絶
縁器OPTO1からのEXT_WAKEUP#ラインに着呼が発生
したかどうかを判断する。RS−232ラインでは、こ
れは単にEXT_RINGラインがハイかどうかをチェックする
だけである。光絶縁器OPTO1からの信号の場合、こ
れはマイクロコントローラU2によるチェックを更に含
む。EXT_WAKEUP#ラインは通常、抵抗器R5によりハイ
にプルアップされる。光絶縁器OPTO1は、電話が着
呼して、ティップとリング間の電圧が、しきい値及び保
護部分905によりセットされる電圧しきい値(例えば
60V)よりも高いとき、このラインをロウに引き下げ
る。しかしながら、この状態は、電話回線がテストされ
るとき、または回線上のノイズによっても生じ得る。従
って、単にEXT_WAKEUP#ラインがロウになるのを待機す
ることは、誤った"着呼"がシステムを呼び起こすことを
可能にし得る。
【0143】結果的に、マイクロコントローラU2は着
呼の周波数を測定することにより、信号が着呼であるか
どうかを判断する。規格内の着呼は、16Hz乃至58
Hzの信号である。マイクロコントローラU2は、EXT_
WAKEUP#信号の4つの立上りエッジ間の3周期を測定
し、3つの全ての周期が15.1Hz乃至69.1Hz
の周波数に対応すれば、適正な着呼がそのラインに発生
したものと見なし、対応するビットをセットする。
【0144】チェック・ルーチンは、EXT_WAKEUP#ライ
ンにロウが検出されると開始される。このラインの3回
の連続読出しが全てロウの場合、マイクロコントローラ
U2は、このラインが3回の連続読出しの間にハイに戻
るのを待機する。その直後、タイマ割込みの基礎を成す
16ビット・カウンタが読出され、値が記憶され、マイ
クロコントローラU2は、このラインが3回の連続読出
しの間にロウに遷移するのを待機する。マイクロコント
ローラU2は次に、最初の2つの立上りエッジの間の時
間が、15ミリ秒乃至66ミリ秒、すなわち信号が1
5.1Hz乃至69.1Hzであるか否かをテストす
る。肯定の場合、高分解能カウンタが再度サンプリング
され、マイクロコントローラU2は、次のロウからハイ
への遷移を待機するときに、2つのカウンタ・サンプル
間の差を計算する。この過程は、EXT_WAKEUP#ライン上
の次の2度のロウからハイへの遷移に対して繰り返され
る。3周期全てが範囲内であると、マイクロコントロー
ラU2は適正な着呼がそのラインに発生したと見なし、
対応するビットをセットする。EXT_WAKEUP#ラインにロ
ウが発生しない、または任意の周期がその範囲外である
場合、マイクロコントローラ・コードはビットをセット
すること無く継続する。
【0145】次にマイクロコントローラU2はタスク1
286で、着呼が発生したか、または警報呼び起し時間
が満了したかをテストする。RS−232着呼、光絶縁
器着呼または警報呼び起し時間に対して、マイクロコン
トローラU2は関連ビットがセットされているかどうか
をテストする。
【0146】着呼または警報呼び起し時間の満了が発生
すると、システムは再度パワーオンされ、マイクロコン
トローラU2はタスク1287でパワーオン・ルーチン
にジャンプする。
【0147】その後タスク1288で、マイクロコント
ローラU2は、電源装置17が±5VDC及び±12V
DCラインに調整電力を供給しているかどうかをテスト
する。供給していない場合、コードはタスク1280に
ジャンプして戻り、ループを再度開始する。一方、電源
装置17が±5VDC及び±12VDCラインに調整電
圧を供給している場合には、マイクロコントローラU2
はタスク1292でハートビート・ルーチンを、タスク
1296でフェールセーフ・ルーチンを実行する。これ
ら2つのルーチンについては、タスク1196及び12
08にそれぞれ関連して上述された。
【0148】マイクロコントローラU2は、次の3つの
状況の下で電源装置17に±5VDC及び±12VDC
ラインへの調整電力の供給を停止させる。すなわち、
(i)BIOSが即時のパワーオフを指令した場合(こ
れは通信ルーチンで実行される)、(ii)フェールセ
ーフ・タイマが満了した場合、または(iii)ユーザ
が電源ボタンを押下し、マイクロコントローラU2内の
延期許可フラグがセットされていない場合であり、マイ
クロコントローラU2はこれらの条件を、スイッチ入力
が読込まれる度にテストする。従って、マイクロコント
ローラU2はタスク1300で、フェールセーフ・タイ
マが満了したかどうかをテストする。満了していない
と、コードはタスク1280へジャンプして戻り、ルー
プを再度開始する。
【0149】一方、フェールセーフ・タイマが満了した
場合は、システムがパワー・ダウンされることを示し、
マイクロコントローラU2はタスク1304でSMIを
CPU40に生成する(但し許可されている場合)。こ
のことは、システムが直後にパワーオフされようとして
いる想定にもとづき、CPUが特定のタスクを実行する
ことを可能にする。例えば、CPU40は警報呼び起し
時間の更新値を再計算し、それをマイクロコントローラ
U2に書込む。
【0150】CPU40によりもはやアクションが実行
されなければ、マイクロコントローラU2はプログラマ
ブルSMIタイマの満了後にシステムをパワーオフす
る。CPU40は適切な値をマイクロコントローラU2
に書込み、SMIタイマを再始動させることにより、こ
の時間を延長することができる。
【0151】その後、またはタスク1268のテストの
結果が、電源装置17が良好な電圧を供給していないこ
とを示すと、マイクロコントローラU2はタスク130
8でシステムをパワーダウンする。これには、(i)電
源装置17に±5VDC及び±12VDCラインへの調
整電圧の供給を停止させ、(ii)CPU40が電力供
給を断たれようとしているので、通信割込みを禁止し、
(iii)出力ポート(ONを除く)をハイにセット
し、それらの消費電力を最小化し(このモードでは、SW
ITCH、EXT_RING、EXT_WAKEUPなどがマイクロコントロー
ラU2により読込まれ得る)、(iv)残りのルーチン
がシステムへの電力供給がオフされることを認識するよ
うに、パワーオフ変数をセットし、(v)次のスイッチ
押下によりシステムが再度オンされるように、スイッチ
状態をオフ/解除に変更することが含まれる。
【0152】その後、コードはタスク1280にジャン
プして戻り、ループを再度開始し、着呼、スイッチ押
下、システムを呼び起こすBIOS指令、または警報呼
び起し時間の満了を待機する。
【0153】システム・ソフトウェア:本発明のコンピ
ュータ・システム10のハードウェア態様について述べ
たので、次にコード態様について説明することにする。
【0154】図14を参照すると、パワーアップ・ルー
チンの一般的な概要が示される。このルーチンは、CP
Uがリセット・ベクトルにより指し示されるコードにジ
ャンプし、それを実行するとき、タスク200で開始す
る。これはCPUがパワーアップされるとき、及びCP
Uがリセット・ハードウェア信号により、またはリセッ
ト・ベクトルにより指し示されるコードにジャンプしリ
セット命令が実行されることにより、CPUがリセット
されるときに発生する。こうしたリセット・プロシジャ
は既知である。
【0155】最初に、パワーアップ・ルーチンのフロー
は、マシンがパワーアップされた理由に依存する。図2
6乃至図29に関連して詳述されるように、システム1
0はブラウンアウトまたはブラックアウトによりパワー
アップされ得る。こうした場合にシステムをオンに維持
することは適正でない。従って、パワーアップ・ルーチ
ンは最初にタスク940で、システムがオン状態を維持
されるべきかどうかを判断する。システムが不当にパワ
ーアップされた場合、CPU40はタスク942でマイ
クロコントローラU2に指令して、電源装置17に±5
VDC及び±12VDCラインにおける調整電圧の供給
を停止させる。
【0156】システムが電力供給し続けられるべきか否
かを判断するために実行される1つのテストは、マイク
ロコントローラが着呼と判断したことに応答してシステ
ムがパワーアップされた場合に、電話回線が着呼してい
るかどうかを確認することである。特に、パワーアップ
後に、システムが着呼に応答して呼び起こされた場合
は、システムがハード・ドライブ31内のハード・ディ
スクがスピン・アップするのを待機する間に、CPU4
0はモデム900または902(既に完全に電力供給さ
れている)に、同様に着呼信号を検出したかどうかを問
い合わせる。検出していない場合、システムはパワーダ
ウンされる。モデム900または902も同様に着呼信
号を検出していれば、システムはブート・プロセスを継
続する。
【0157】一般に、システムが電力供給を維持される
と仮定すると、パワーアップ・ルーチンのフローは、シ
ステムがオフ状態156かそれとも延期状態154か、
すなわち、CMOS NVRAM96内の延期フラグ
が、それぞれクリアされているかセットされているかに
依存する。タスク202に示されるように、システム1
0は、不揮発CMOSメモリ96から延期フラグを読出
すことにより、自身がオフ状態156か延期状態154
かを判断する。システムが正常動作状態150からオフ
状態156または延期状態154に遷移するとき、各ル
ーチンはNVRAM96内の延期フラグをセットまたは
クリアする。延期フラグがNVRAM96内でセットさ
れている場合、コンピュータ・システム10は延期状態
であり、コンピュータ・システム10の状態は固定ディ
スク記憶装置31に記憶されている。他方、延期フラグ
がNVRAM96内でクリアされているときには、コン
ピュータ・システム10はオフ状態156であり、コン
ピュータ・システム10の状態は固定ディスク記憶装置
31に記憶されていない。従って、延期フラグがNVR
AM96内でセットされていれば、コンピュータはタス
ク204乃至210で示されるように、"正常"ブート・
ルーチンを実行する。第1のタスク204はパワーオン
自己診断(POST)であり、これについては図26乃
至図29に関連して詳述される。POSTから復帰後、
CPU40はタスク206に示されるように、PBOO
Tルーチンを呼び出し、オペレーティング・システムを
ロードする。
【0158】PBOOTルーチンは、IBMコンピュー
タ上で実行される典型的なルーチンであり、僅かな変形
を有する。これについては後述される。PBOOTはブ
ート先(ハード・ドライブ31またはフロッピー・ドラ
イブ27内のディスク)を判断し、オペレーティング・
システム(OS)をロードする。オペレーティング・シ
ステムは、CONFIG.SYSファイルにより命令されるシステ
ム変更を分析して実行し、最終的にAUTOEXEC.BATバッチ
・ファイルを実行する。PBOOTルーチンは既知であ
る。OSはAPMデバイス・ドライバをロードし、AP
Mデバイス・ドライバはBIOSに、BIOSがAPM
対応かどうかを問い合わす。APM対応の場合、BIO
S APMルーチン及びOS APMルーチンがハンド
シェークを実行し、その後協動して、本明細書で述べら
れる様々な機能を提供する。オペレーティング・システ
ムはタスク210で示されるように、ユーザにより命令
されてコードを漠然と実行する。しかしながら、API
にスーパバイザ・ルーチンの存在を知らせた結果、AP
M BIOS及びAPM OSは、タスク212に示さ
れるように、スーパバイザ・ルーチンをプログラムの実
行と"並列"に実行させる。すなわち、システム10は時
分割多重マルチタスキング・システムであり、APM事
象獲得、従って結果的にスーパバイザ・ルーチンが周期
的に実行される。最終的に、スーパバイザ・ルーチンが
ほぼ毎秒ごとに実行される。スーパバイザ・ルーチンに
ついては、図15乃至図18に関連して詳述される。正
規のブート・ルーチン204乃至210が終了後、コン
ピュータ・システム10は正常動作状態150となる。
正常動作状態150に関しては、図5に関連して述べた
通りである。
【0159】再度タスク202を参照し、延期フラグが
NVRAM96内でセットされている場合、システム状
態はハード・ドライブ31に保管されており、システム
10はタスク214乃至220で示されるように、ブー
ト再開ルーチンを実行する。最初に、システムはタスク
214で短縮POSTを実行する。短縮POSTについ
ては図26乃至図29に関連して詳述される。短縮PO
STの後、システムはタスク1500で、自身を再開さ
せるための延期ファイルを選択する。本明細書で開示さ
れるように、本発明のシステムは好適には複数の延期フ
ァイルを有する。結果的に、システムは、自身をどの延
期ファイルから再開させるかを決定しなければならな
い。延期ファイルはユーザにより、図59にその1つの
例が示される多重延期/再開マネージャを介して選択さ
れ得る。更に、オペレーティング・システムは本明細書
で述べられるように、どの延期ファイルからシステムが
再開すべきかを決定できる。
【0160】システムを再開させる延期ファイルが選択
されると、システムはタスク216で再開ルーチンを呼
び出す。再開ルーチンについては、図30乃至図34に
関連して詳述される。ここでは再開ルーチンが、コンピ
ュータ・システム10の状態を、システムが延期される
以前の構成に復元することだけを述べておく。タスク2
04乃至210で示される正規のブート・ルーチンと異
なり、ブート再開ルーチンはAPM APIにスーパバ
イザ・ルーチンの存在を知らせる必要がない。なぜな
ら、APMルーチンはシステムを延期するために実行さ
れていなければならず、システム状態が復元されるとき
にAPMはメモリにロードされ戻すからである。従っ
て、タスク212及び220に示されるように、再開ル
ーチンがシステム10の状態の復元を終了するときAP
Mは既に存在し、復元コードと"並列"に実行されてい
る。ブート再開ルーチン214乃至220が終了する
と、コンピュータ・システム10は、図5に関連して上
述した正常動作状態150となる。従って、正規ブート
・ルーチン(タスク204乃至210)またはブート再
開ルーチン(タスク214乃至220)が実行された
後、コンピュータ・システム10は正常動作状態150
となる。
【0161】図15乃至図18はスーパバイザ・ルーチ
ンの詳細を示すフローチャートである。スーパバイザ・
ルーチンは、APMにより、"事象獲得"の間にほぼ毎秒
ごとに呼び出される。異なるオペレーティング・システ
ムは、異なる周波数で事象獲得を実行し得る。
【0162】スーパバイザ・ルーチンは、図15乃至図
18のタスク222で開始する。以下の説明では、コン
ピュータ・システム10が正常動作状態150から開始
するものと仮定する。最初のタスク224では、ユーザ
がスイッチ21を押下したかどうかをテストする。スイ
ッチ21は、図7乃至図9及び図13に関連して詳述さ
れたように、CPU40がマイクロコントローラU2に
問い合わすことによりテストされる。
【0163】タスク224のテストが、ユーザがスイッ
チ21を押下したことを示すと、スーパバイザ・ルーチ
ンは次にタスク950で、延期要求が以前にOS内のA
PMデバイス・ドライバに発行されたかどうかを判断す
る。
【0164】タスク950のテストが、延期要求がまだ
APMドライバに送信されていないことを示すと、スー
パバイザ・ルーチンはタスク226で、OS APMデ
バイス・ドライバに"延期要求"を発行し、次にタスク2
28でAPMドライバに戻る。"延期要求"セットAPM
復帰コードに応答して、APMドライバは、APM対応
装置があらゆる必要なシステム・タスク(ハード・ディ
スクの同期など)を実行できるように延期が差し迫って
いることを同報し、次に"延期コマンド"を発行する。こ
の延期コマンドにより、APM BIOS経路指定ルー
チンは延期ルーチンを呼び出す。延期ルーチンについて
は、図19乃至図25に関連して詳述される。延期ルー
チンは本来、システム10を正常動作状態150から退
去させ、延期状態154に入力させ、幾つかの命令の後
(システムが延期の準備が整っていない場合)、または
数分、数時間、数日、数週間若しくは数年の後(システ
ムが延期され、再開される場合)、制御をスーパバイザ
・ルーチンに返却し得る。延期ルーチンは、延期しない
で復帰するか、または完全な延期及び再開の後に復帰す
るかに関わらず、常に"正規再開"APM復帰コードをセ
ットする。
【0165】タスク224では、スイッチは大抵押下さ
れておらず、従ってスーパバイザ・ルーチンはタスク9
52に移行し、クリティカル延期フラグがセットされて
いるかどうかを判断する。同様に、延期要求がOS内の
APMドライバに以前に送信されている場合、スーパバ
イザ・ルーチンはタスク952に移行し、クリティカル
延期フラグがセットされているかどうかを判断する。ク
リティカル延期フラグがセットされている場合、スーパ
バイザ・ルーチンは次にタスク954で、クリティカル
延期要求が以前にAPMドライバに発行されたかどうか
をテストする。
【0166】クリティカル延期要求がAPMドライバに
発行されていないと、スーパバイザ・ルーチンはタスク
956で、クリティカル延期要求APM復帰コードを発
行し、次にタスク958でAPMドライバに復帰する。
クリティカル延期要求に応答して、APMドライバは延
期が差し迫っていることを同報すること無しに、システ
ムを即時延期する。従って、APM対応装置はそれらの
それぞれの事前延期タスクを実行することができない。
【0167】タスク952でクリティカル延期フラグが
セットされていないか、タスク954でクリティカル延
期要求が既にOS内のAPMドライバに発行されている
と、スーパバイザ・ルーチンは次にタスク957で、延
期が15秒以上保留されたかどうかを判断する。肯定の
場合、スーパバイザ・ルーチンはタスク958でクリテ
ィカル延期フラグをセットし、それによりタスク954
のテストが次のAPM事象獲得の間にテストされる。
【0168】その後、または延期が15秒以上保留され
なかった場合、スーパバイザはタスク959で、延期が
保留中であるかどうかをチェックする。保留中の場合、
タスク960でCPU40がマイクロコントローラU2
に、フェールセーフ・タイマ及びAPM故障延期タイマ
を再始動(リセット)させる。
【0169】その後、または延期が保留中でない場合、
スーパバイザ・ルーチンは次にタスク230に移行し、
システムが再開されたばかりかどうかをチェックする。
延期ルーチンが呼ばれる場合、システムは延期ルーチン
が延期無しに復帰するか、完全な延期及び再開の後に復
帰するかに関わらず、自身が丁度再開されたものと見な
す。再開がタスク230でテストされ、システムが丁度
再開されていると(または延期がDMA若しくはファイ
ル活動により実行されていないと)、"正規再開"APM
復帰コードがタスク232で発行され、タスク234で
APMに返却される。それに応答して、APM OSド
ライバはシステム・クロック及びその間に無効となった
他の値を更新する。
【0170】大抵の場合、システム10は再開されたば
かりでなく、従ってスーパバイザ・ルーチンはタスク2
36に移行し、任意のユーザ活動をテストする。3つの
タイプのユーザ活動、すなわちハードファイル31活
動、キーボード12活動、及びマウス13活動が、タス
ク236でテストされる。APM事象獲得の度に、スー
パバイザ・ルーチンはハードファイルのヘッド、シリン
ダ、及びセクタの値をハード・ドライブ31から読出
し、マイクロコントローラU2に、マウス割込みライン
またはキーボード割込みラインのいずれかに、ユーザ活
動を示す任意の活動が生じたかどうかを問い合わせ、リ
アル・タイム・クロック98から時間(分)値を読出
す。この値は0分乃至59分に及び、各時間の開始に再
度0分に循環する。3つのハード・ドライブ活動変数
(ヘッド、シリンダ及びセクタ)並びに分値が一時的に
記憶される。3つのハード・ドライブ活動変数は次に、
以前の事象獲得から保管されたハード・ドライブ活動変
数と比較される。3つの現ハード・ドライブ値が以前の
事象獲得からの値と同一であり、かつマウス割込みまた
はキーボード割込みラインのいずれにも活動が生じなか
った場合、ユーザ活動は存在しなかったことを示す。ハ
ード・ドライブ値が異なるか、マウス割込みまたはキー
ボード割込みライン上に活動が生じた場合には、ユーザ
活動が存在したことを示し、現ディスク・ドライブ活動
変数値が、次の事象獲得の間に読出される値と比較され
るように保管される。
【0171】前記活動検出機構では、ハード・ドライブ
活動を決定するルーチンがCPU上で実行され、活動に
対応して2つのハードウェア割込みだけがモニタされ
る。代わりに、活動ががハードウェアにより排他的にモ
ニタされてもよい。例えば、16本の全てのハードウェ
ア割込みラインが、活動に対応してモニタされ得る。
【0172】ハードファイル、キーボードまたはマウス
活動が生じた場合、スーパバイザ・ルーチンは次にタス
ク1502で、活動がユーザによるものか、または着呼
または警報により呼び起こされる場合のように、システ
ムが無人操作モードで使用されているかを判断する。ユ
ーザ活動が生じた場合、タスク1504で不活動延期タ
イマがより長い時間間隔にセットされる(または長いタ
イマが活動化され、短いタイマが非活動化される)。タ
スク1504のステップは、システムが無人操作モード
で呼び起こされた後に、ユーザがシステムの使用を開始
する場合に、タイマ長を修正するために必要とされる。
図26乃至図29に関連して説明されるように、システ
ムが無人操作モードで呼び起こされる場合、短い不活動
延期タイマ間隔が使用され、システムがユーザ活動によ
り呼び起こされた場合、長い不活動延期タイマ間隔が使
用される。ステップ1504は、システムが無人操作モ
ードで呼び起こされた後に、ユーザがシステムの使用を
開始する場合にのみ、必要とされる。別の態様では、シ
ステムが常に短い間隔の不活動延期タイマにより呼び起
こされ、ステップ1504が、ユーザ活動が生じたとき
にタイマを約1秒に修正するために使用される。
【0173】不活動延期タイマの時間間隔を修正後、ま
たはユーザ活動(キーボードまたはマウス活動など)が
生じなかった場合、スーパバイザ・ルーチンは次にタス
ク238で、待機フラグをテストすることにより、コン
ピュータ・システム10が待機状態152かどうかを判
断する。待機フラグがセットされていると、システム1
0が待機状態152であることを示し、スーパバイザ・
ルーチンは待機状態152を抜け出し、タスク240で
正常動作状態150に入力する。スーパバイザ・ルーチ
ンは、待機状態152への入力時にパワーダウンされた
装置(図51参照)を再度パワーアップすることによ
り、待機状態152を抜け出す。要するに、システムが
待機状態152を抜け出すときに、スーパバイザ・ルー
チンはビデオ信号を復元し、ハード・ドライブ31内の
ハード・ディスクを回転させ、システム・クロックを復
元し、APMドライバからのCPUアイドル呼び出しが
もはやCPU40を停止することのないように、APM
CPUアイドル呼び出しを禁止し、システム10が待
機状態152であることを示すフラグをクリアする。
【0174】更に、活動が生じた場合、リアル・タイム
・クロック98からの分値が、続く事象獲得の間に読出
される分値との比較のために保管される。現在の分値の
保管は、タスク241で不活動待機タイマ及び適切な不
活動延期タイマを効果的にリセットする。通常の使用状
態では、ユーザ活動が発生し、スーパバイザ・ルーチン
がタスク242で、"無事象"APM復帰コードをセット
し、タスク243でAPM呼び出しコードに復帰する。
APMは"無事象"APM復帰コードに応答して、更にル
ーチンを呼び出すことはない。
【0175】タスク236のテストがユーザ活動が発生
しなかったことを示すと、スーパバイザ・ルーチンは次
に、不活動待機タイマ及び不活動延期タイマが満了した
かどうかを、それぞれ245及び247でテストする。
システム10が待機状態152の場合には、不活動待機
タイマの満了はチェックされず、テストはタスク244
でスキップされる。
【0176】2つのタイマの満了は、保管された分値か
ら現分値を差し引き、ユーザ活動の発生以来の経過時間
に対応する値を獲得することにより、チェックされる。
この値はタスク245で不活動待機タイムアウト値と比
較され、タスク247で不活動延期タイムアウト値と比
較される。2つのタイムアウト値はユーザにより選択可
能であり、システムが決して待機状態152に入力しな
いように、若しくは延期状態154に入力しないよう
に、または一方のタイマの満了により、待機状態152
か延期状態154のいずれか一方に入力しないように、
セットされ得る。いずれかのタイムアウト値を0にセッ
トすると、そのタイマは決して満了しない。
【0177】最後のユーザ活動以来の経過時間が、不活
動待機タイムアウト値以上の場合、スーパバイザ・ルー
チンはタスク246で、システム10を待機状態152
に入力させる。不活動待機タイマが満了していないと、
スーパバイザ・ルーチンは次にタスク247で、不活動
延期タイマの満了をチェックする。一方、不活動待機タ
イマが満了すると、スーパバイザ・ルーチンは、特定の
コンポーネントをそれらのそれぞれの低電力モードに設
定することにより(図51参照)、システム10を待機
状態152に入力させる。要するに、好適な態様では、
スーパバイザ・ルーチンはビデオ信号をブランキング
し、ハード・ドライブ31内のハード・ディスクの回転
を停止し、システム・クロックを遅くし、APMドライ
バからのCPUアイドル呼び出しがCPU40を停止す
るように、APM CPUアイドル呼び出しを許可し、
システム10が待機状態152であることを示すフラグ
をセットする。システム10を待機状態152に入力さ
せた後、スーパバイザ・ルーチンはタスク247で、不
活動延期タイマの満了をテストする。
【0178】スーパバイザ・ルーチンはタスク247
で、不活動延期タイマが満了したかどうかをテストす
る。最後のユーザ活動以来の経過時間が不活動延期タイ
ムアウト値以上であれば、スーパバイザ・ルーチンはタ
スク248で"延期要求"APM復帰コードをセットし、
次にタスク243でAPMに復帰する。タスク226に
関連して上述したように、"延期要求"APM復帰コード
のセットに応答して、APMは必要なシステム・タスク
を実行し、次に延期ルーチンを呼び出す。延期ルーチン
については、図10乃至図25に関連して詳述される
が、要するに、システム10を正常動作状態150から
退去させ、延期状態154に入力させる。タスク226
に関連して上述したように、延期ルーチンはシステム1
0を延期させて、または延期させることなく、制御をス
ーパバイザ・ルーチンに戻す。一方、不活動延期タイマ
が満了していない場合には、スーパバイザ・ルーチンは
タスク242で"無事象"APM復帰コードをセットし、
タスク243でAPM呼び出しコードに復帰する。
【0179】大抵は"無事象"APM復帰コードがAPM
に返却されるが、様々な他の事象がAPMに返却され得
る。しかしながら、各APM事象獲得に対応して、1つ
のAPM復帰コードだけが指定され得る。例えば、待機
状態152に入力した後には、"無事象"がAPMに返却
される。延期状態154を去った後には、"正規再開"A
PM復帰コードがAPMに返却される。APMにとって
キュー待機される特定のメッセージは、コンピュータ・
システムの正に性質に依存する。スーパバイザ・ルーチ
ンはまた、"正規再開"APM復帰コードまたは"延期要
求"APM復帰コードも返却する。
【0180】図17を参照するとAPM最終要求処理ル
ーチンが示され、タスク961で開始する。APM最終
要求処理の発行に応答して、BIOS APMルーチン
はタスク962で、マイクロコントローラU2内のフェ
ールセーフ・タイマ及びAPM故障延期タイマを再始動
し、タスク963で15秒延期保留タイマを再始動し、
OS APMがシステムが適切に延期に備えるのを待機
している間に、クリティカル延期要求が発行されるのを
阻止し、タスク964で復帰する。
【0181】図18を参照するとAPM最終要求拒否ル
ーチンが示され、タスク965で開始する。APM最終
要求拒否の発行に応答して、BIOS APMルーチン
がタスク966で、マイクロコントローラU2内のフェ
ールセーフ・タイマ及びAPM故障延期タイマを再始動
し、タスク967でクリティカル延期フラグをセットし
て即時延期を強要し、タスク968で復帰する。
【0182】パワーアップ及び再開ルーチンは、延期ル
ーチンを知ることにより最もよく理解される。従って、
APM BIOSルーチンに関し、最初に本発明のパワ
ーアップ・ルーチンの一般概要(図14の前記関連説明
参照)、スーパバイザ・ルーチンの詳細(図15乃至図
18)、本発明の延期ルーチンの詳細(図19乃至図2
5)、本発明のパワーアップ・プロセスの詳細(図26
乃至図29)、本発明の再開ルーチンの詳細(図30乃
至図34)、CPU状態保管ルーチンの詳細(図35乃
至図38)、CPU状態復元ルーチンの詳細(図39乃
至図42)、及び8259状態保管ルーチンの詳細(図
43乃至図45)の順序で説明する。
【0183】本発明のコンピュータ・システム10の説
明は、ほとんどのルーチンが他のルーチンと相互作用
し、延期/再開プロセスが継続サイクルであるので、幾
分循環的であるが、ブート・ルーチン(図26乃至図2
9)または再開ルーチン(図30乃至図34)より先
に、延期ルーチン(図19乃至図25)について述べる
ことが最も適切であろう。図19乃至図25を参照する
と、延期ルーチンのフローチャートが示される。正規ブ
ート・ルーチン204乃至210またはブート再開ルー
チン214乃至220の実行後、コンピュータ・システ
ム10が正常動作状態150となることを思い起こされ
たい。更に、図14に関連して上述したように、コンピ
ュータ・システムが正規にブートされたか(204乃至
210)、ブートを再開されたか(214乃至220)
に関わらず、いずれかのルーチンが終了すると、APM
OSドライバは、図14に示されるスーパバイザ・ル
ーチンなどの、APM BIOSルーチンを意識する。
結果的に、APMはスーパバイザ・ルーチンをほぼ毎秒
ごとにポーリングする。
【0184】延期ルーチンは図19乃至図25に示さ
れ、タスク250で開始する。延期ルーチンは、スーパ
バイザ・ルーチンがAPMに"延期要求"APM復帰コー
ドを返却することに応答して、APMにより呼び出され
る。更に、延期ルーチンは、システムがチェックポイン
トを実行するときに(図50及び図51に関連して述べ
られる)、呼び出され、部分的に実行される。最初に、
延期ルーチンのフローは、タスク970で、CPU40
がSMIを有する"S"パーツか否かに依存する。Sパー
ツの場合、CPU40はタスク972で、マイクロコン
トローラU2にSMIをCPU40に対して生成させ
る。当業者には既知のように、SMIに応答して、CP
U40内のマイクロコードはタスク974で、CPU4
0の状態をセグメントE000Hデータ構造に保管す
る。
【0185】一方、CPU40がSMIを有する"S"パ
ーツでない場合には、CPU状態保管ルーチンがタスク
252で呼び出される。CPU状態保管ルーチンについ
ては、図35乃至図38に関連して詳述される。ここで
は延期ルーチンが最初に呼び出されるときに、CPU4
0がどのモードであろうと、残りの延期ルーチンはCP
U40によりリアル・モードで実行され、従って、許可
アドレス空間以外の命令を実行しようとすることによ
り、或いは特権命令を実行しようとすることにより生じ
るエラーの心配無しに、実行され得ることだけを述べて
おく。
【0186】CPU状態保管ルーチンは、タスク253
で、プログラム制御を延期ルーチンに固有の方法で返却
する。CPU状態保管ルーチンから延期ルーチンへの"
復帰"は、CPUのリセットを含み、図35乃至図38
のタスク630乃至632に関連して以降で詳述され
る。延期ルーチンに関する重要な詳細は、CPUレジス
タがセグメントE000Hデータ構造に書込まれ、CP
U40がリアル・モードであることである。
【0187】CPU状態保管ルーチンが復帰するか、ま
たはSMIに応答してCPUがその固有の状態を保管し
た後、延期ルーチンは次にタスク254で、スイッチ2
1が押下されたかどうかを確認する。スイッチ21の閉
鎖が、図7乃至図12及び図13に関連して上述したよ
うにテストされる。スイッチが押下されていない場合、
目下の延期はソフトウェア延期であり、ソフトウェア延
期フラグがCMOSNVRAM96内でセットされる。
このことはソフトウェア延期が、スイッチ閉鎖により開
始されるハードウェア延期と混同されないように保証す
る。全てのソフトウェア延期は、マイクロコントローラ
U2内のビットをセットすることにより、ハードウェア
延期に変換される。ソフトウェア延期からハードウェア
延期への変換後の次のスイッチ閉鎖により、延期は打ち
切られる。
【0188】次のタスク262は、セグメントE000
H内にスタックをセット・アップする。
【0189】スタックがセット・アップされると、延期
ルーチンはタスク264で、現在、DMA転送、フロッ
ピー・ドライブ転送、またはハードファイル転送のいず
れかが実行中か否かを確認するために、それぞれDMA
制御装置72、ディスケット・アダプタ84、及びID
Eディスク制御装置86を調査する。実行中であれば延
期は実行され得ない。なぜなら、これら3つのタイプの
転送に特有の特性が、十分な延期の実行を阻止するから
である。例えば、ハード・ドライブ31からのハードフ
ァイル転送が実行中の場合、データは既にIDE制御装
置により読出されているが、システム・メモリ53へは
まだ転送されていない。このデータはCPUにより適切
にアクセスされ得ず、従ってシステムがハードファイル
読出しの途中で延期された場合、データは喪失され得
る。このように、これら3タイプの任意の転送が実行中
の場合、延期は次のAPM事象獲得まで延期され、その
時、DMA及びディスケット制御装置の活動が再度テス
トされる。
【0190】結果的に、フローチャートの252、26
0及び262で実行されるタスクは、制御をAPMに戻
すように、反対に実行されなければならない。最初にタ
スク265で、BIOSが読出し/書込みから読出し専
用に変更される。これはまだシャドーイング・データを
含むセグメントE000Hをクローズすることにより達
成される。タスク262で生成されたスタックは、ポッ
プされ復元される。最後にタスク266でCPU状態が
CPU状態復元ルーチンにより復元され、その後タスク
267で制御がAPMに戻される。延期ルーチンは次の
事象獲得の間に、APMにより別途約1秒再度ポーリン
グされる。その時までに、延期プロセスを阻止した転送
が恐らく完了し、延期の継続を可能にする。
【0191】タスク264を参照すると、DMA転送、
フロッピー・ドライブ転送、またはハードファイル転送
が目下実行されていない場合、延期は実行され得る。延
期ルーチンはタスク268へと続く。ここでフェールセ
ーフ・タイマが継続的にカウント・ダウンしており、ス
イッチ21がオフ/解除状態の間のその満了時に、シス
テムをオフすることを思い起こされたい。従って、最初
のタスク268では、図7乃至図9、及び図52乃至図
55に関連して述べたように、フェールセーフ・タイマ
をリセットする。
【0192】次にタスク270で、8042コプロセッ
サ104の状態が保管される。8042コプロセッサ1
04のレジスタは既知である。レジスタはCPU40に
より直接読出し可能であり、それらの値は直接セグメン
トE000Hデータ構造に書込まれる。
【0193】次にタスク272で、8259割込み制御
装置92の状態が保管される。延期ルーチンは8259
状態保管ルーチンを呼び出す。このルーチンは、図43
乃至図45に関連して詳述される。ここでは8259状
態保管ルーチンが、2つの8259割込み制御装置92
の不明のレジスタの内容を、たとえそれらの幾つかが書
込み専用だとしても、確認することだけを述べておく。
レジスタ値はセグメントE000Hデータ構造に直接書
込まれる。
【0194】割込み制御装置92の状態が保管された
後、延期ルーチンにより実行される様々な割込み駆動型
タスクが適切に機能するように、割込み制御装置92の
構成が既知の状態に変更されなければならない。従っ
て、BIOSデータ領域及びベクトル・テーブルが、タ
スク274でスワップされる。延期ルーチンは、現状態
BIOSデータ領域及びセグメント0000Hのベクト
ル・テーブルの内容を、セグメントE000Hにコピー
する。次に、既知状態BIOSデータ領域及びベクトル
・テーブルの内容が、セグメントE000Hデータ構造
からセグメント0000Hにコピーされる。既知状態B
IOSデータ領域及びベクトル・テーブルは、図26乃
至図29に示されるブートアップ・ルーチン(後述)の
タスク414で、セグメントE000Hにコピーされ
る。最後に、現状態BIOSデータ領域及びベクトル・
テーブルが、セグメント0000HからセグメントE0
00Hデータ構造にコピーされる。ルーチンがタスク2
74を終了すると、割込み13H(ディスク読出し/書
込み)及び割込み10H(ビデオ・アクセス)などの全
ての割込みが、期待通りに機能するようになる。
【0195】次に、タイマ102の状態がタスク276
で保管される。タイマのレジスタは既知である。全ての
レジスタはCPU40により直接読出し可能であり、そ
れらの値はセグメントE000Hデータ構造に直接書込
まれる。IDEディスク制御装置86の状態も、タスク
276で保管される。IDEディスク制御装置86のレ
ジスタは既知である。全てのレジスタがCPU40によ
り直接読出し可能で、それらの値がセグメントE000
Hデータ構造に直接書込まれる。
【0196】次のステップでは、ハード・ドライブ31
上の延期ファイルに書込まれるシステム・メモリを準備
する。システム・メモリはシステムRAM53(主メモ
リ及び拡張メモリの両方を含む)及びビデオ・メモリ5
8を含む。この時点で、RAM53の一部が外部キャッ
シュ60内に存在し得る。CPUキャッシュは、図35
乃至図38に関連して後述されるタスク628でフラッ
シュされる。次に、外部キャッシュがタスク286でフ
ラッシュされ、ハード・ドライブ31への書込み速度の
高速化を可能にする。
【0197】システム10上で実行されるコードは、I
DE制御装置86を不明の状態にしているかも知れな
い。結果的に、次のステップ292では、IDE制御装
置86を既知の状態に初期化する。これは値をIDE制
御装置86内のレジスタに直接書込むことにより達成さ
れる。
【0198】次にタスク976で、あらゆるモデムの状
態を読出し、セグメントE000Hデータ構造に保管す
る割込み駆動型並列スレッドが開始される。ルーチン
は、特定のモデムに関連付けられるCOMM(通信)ポ
ートに対応する割込みを捕獲し、モデムが順次そのレジ
スタ内容を返送するように、モデムにコマンドを送信
し、モデムからレジスタ内容を受信し、レジスタ値をセ
グメントE000Hデータ構造に保管する。このルーチ
ンは第1のコマンドをモデムに送信し、次に割込み駆動
式に応答して、モデムの応答を受信し、各COMMポー
ト割込みに応答して次のコマンドをモデムに送信する。
このプロシジャが、モデムの全てのレジスタが保管され
るまで繰り返される。並列スレッドとして実行されない
場合、このルーチンはシステムを延期するのに要する時
間に、数秒(特定のモデム及び現ボーレートに依存し
て、1モデムにつき3秒乃至5秒)を追加し得る。それ
に対して、割込み駆動型並列スレッドの場合、システム
状態がハード・ドライブ31に書込まれる以前にルーチ
ンが実行を完了すれば、延期にほとんどまたは全く時間
を追加しない。
【0199】割込み駆動型並列スレッド・モデム保管ル
ーチンの開始後、タスク1510で、適切な延期ファイ
ルがハード・ドライブ31内の固定ディスク上で突き止
められなければならない。上述したように、システムは
好適には複数の延期ファイルを有する。システムを復元
するための延期ファイルのヘッド、セクタ、及びシリン
ダが、CMOSメモリ96に記憶される。延期ファイル
が突き止められると、ファイル・サイズ及びシグニチャ
が読出される。好適な態様では、シグニチャは、延期フ
ァイルの存在を示す任意の長さのASCIIコードであ
る。別の態様のシグニチャも可能であり、例えばハード
ファイル・システム上でランダムに見い出される確率が
非常に低い2進ストリングなどが使用され得る。
【0200】次にタスク1512で、システムは現セッ
ションが延期されるべきか否かを判断する。適切な延期
ファイルに対応するSORMビットがセットされている
場合、その特定の延期ファイルは読出し専用と見なさ
れ、システムは延期され、そのファイルには戻されな
い。もちろん、ユーザは現セッションを形成するため
に、上述したように延期/再開マネージャを用いて延期
セッションを選択できるが、システム状態は異なる延期
ファイルに保管される。SORMビットがセットされて
いると、次にタスク1513で、プログラムの実行がタ
スク1519にジャンプし、そこでシステムはシステム
をオフする以前にある時間、例えば5秒間待機する。こ
の期間に、ユーザは多重延期/再開マネージャを呼び出
すことができる。これは上述のように、ユーザが様々な
機能を実行することを可能にする。
【0201】システムが延期されるものと判断し、適切
な延期ファイルのファイル・サイズ及びシグニチャを読
出した後、次のステップ296では、シグニチャ及びフ
ァイル・サイズが正しいことを保証する。シグニチャが
不正であるか(この場合、別のプログラムが延期ファイ
ルを変更したことを示す)、ファイル・サイズが正しく
ない場合(延期ファイル・サイズが変更されたことを示
す)、延期ルーチンがタスク298で致命的延期エラー
・ルーチンを呼び出す。この致命的延期エラー・ルーチ
ンは、図38のタスク652で開始する。致命的延期エ
ラー・ルーチンから脱出するために、ユーザがスイッチ
17を押下すると、プログラム制御はタスク299から
タスク506にジャンプする。
【0202】一方、シグニチャが正しく、延期ファイル
が十分に大きいと、延期ルーチンはコンピュータ・シス
テム10の状態をメモリに書込むように処理を続ける。
【0203】コンピュータ・システム10の状態をハー
ド・ドライブ31に書込む以前に、CPU40はタスク
297で、マイクロコントローラU2にフェールセーフ
・タイマを再始動させ、マイクロコントローラU2に、
スイッチ21が再度押下されたかどうかを判断するよう
に問い合わす。スイッチ21が再度押下されなかった場
合、延期は継続すべきである。一方、スイッチ21が再
度押下された場合には、延期は打ち切られる。延期ルー
チンの複数のポイントで、フェールセーフ・タイマが再
始動され、スイッチ21の閉鎖がテストされる。タスク
297は単なる1つの例に過ぎず、当業者はフェールセ
ーフ・タイマの再始動間の時間値及び許容可能時間を決
定できよう。延期ルーチンは、フェールセーフ・タイマ
が満了し、マイクロコントローラU2が電源装置17
を"オフ"する以前に、フェールセーフ・タイマをリセッ
トすべきである。同様に、スイッチ21は頻繁にチェッ
クされるべきである。スイッチ21が再度押下された場
合、これはユーザが延期の打切りを希望していることを
示し、コードは再開ルーチン内の適切なポイントにジャ
ンプして、"延期解除(un-suspend)"し、部分的延期か
ら回復すべきである。
【0204】同様に、Ctrl-Alt-Delがタスク350で延
期を打ち切る。Ctrl-Alt-Del(Controlキー、Altキー、
及びDeleteキーを同時に押下する)は、IBM BIO
S及びインテル80X86ファミリCPUにもとづく典
型的なコンピュータ・システムをリセットする既知の方
法である。コンピュータ・システム10は、既知のよう
に、BIOS割込み1ハンドラによりCtrl-Alt-Delを処
理する。コンピュータ・システム10は僅かに変更され
た割込み1ハンドラを有し(タスク350)、これがタ
スク352でCMOSメモリ96内の延期フラグをクリ
アし、タスク354でリセット時ブートアップ・ルーチ
ンにジャンプする。
【0205】本発明のコンピュータ・システム10で
は、延期ルーチンの実行中にCtrl-Alt-Delを押下する
と、コンピュータ・システムはオフ状態156に入力す
る。なぜなら、スイッチ21の閉鎖の後にCtrl-Alt-Del
を押下すると、ブートアップ・ルーチンが呼び出され、
ブートアップ・ルーチンがマイクロコントローラU2を
次の状態、すなわちフェールセーフ・タイマが満了して
おり、スイッチがまだオフ/解除状態である状態に初期
化するからである。従って、延期ルーチンの間にCtrl-A
lt-Delを押下すると、コンピュータ・システム10はオ
フ状態156に入力する。
【0206】タスク300を参照すると、延期ファイル
が再度ハード・ドライブ31上で突き止められる。すな
わち、シグニチャ語句がタスク300で延期ファイルの
最初のバイトに書込まれる。次にタスク302で、セグ
メントE000Hの全64キロバイト(KB)のデータ
が延期ファイルに書込まれる。セグメントE000Hの
この64KBのコピーは、実際には単にプレース・ホル
ダ(place holder)であり、延期ルーチンの終りのこの
同一位置に再度書込まれる。
【0207】次に、ビデオ制御装置56の状態がタスク
303で保管される。ビデオ制御装置56のレジスタは
既知であり、全てのレジスタがCPU40により直接読
出し可能であり、それらの値がセグメントE000Hデ
ータ構造に直接書込まれる。
【0208】次に、システム・メモリが延期ファイルに
書込まれる。これはツイン・バッファ・システムを用い
て達成され、データをシステム・メモリから読出し、そ
れを圧縮してセグメントE000Hに書込み、最終的に
圧縮データをセグメントE000Hから延期ファイルに
書込む。2つのルーチンが時分割多重式に実行され、一
方はデータを圧縮し、セグメントE000Hに書込み、
他方は延期ファイルに書込む。前者はフォアグラウンド
で実行され、後者はバックグラウンドで実行される割込
み駆動型ルーチンである。明らかなように、1つのCP
U40だけしか存在しないので、所与の時刻に1つのル
ーチンだけが実行され得る。しかしながら、後者のルー
チンは割込み駆動型なので、延期ファイルへのデータの
転送速度を最適化するために、前者のルーチンの実行を
中断することができる。2つの各バッファは8Kバイト
長であり、ハード・ドライブ31への転送時間を最適化
するものと考えられる。
【0209】このプロセスはタスク304で開始し、第
1の8Kバイト・バッファを満たすのに十分なデータを
読出し、圧縮し、セグメントE000Hに書込む。デー
タはランレングス符号化法を用いて圧縮されるが、任意
の適切な圧縮方法が使用され得る。この時、一般的に3
07で示されるバッファからの書込みルーチンが、タス
ク306で開始される。バッファからの書込みルーチン
307は割込み駆動型ルーチンであり、バックグラウン
ドで実行され、タスク308乃至310を含む。圧縮ル
ーチンは一般に311で示され、タスク312乃至31
8を含むフォアグラウンド・ルーチンである。最初にタ
スク308で、バッファからの書込みルーチン307
が、タスク304で充填されたバッファを延期ファイル
に書込む。バッファからの書込みルーチン307がバッ
ファ内容を延期ファイルに書込む間、圧縮ルーチン31
1はタスク312で、次のバイトをシステム・メモリか
ら読出し続け、それらを圧縮し、圧縮データを他方の8
Kバイト・バッファに書込む。圧縮ルーチン311がバ
ッファを圧縮データにより充填すると、次にタスク31
4で、システム・メモリ全体が既に圧縮されたかどうか
が判断される。
【0210】IDE制御装置86は、データをハード・
ドライブ31に超高速に書込むことができない。結果と
して、圧縮ルーチン311は常に、バッファからの書込
みルーチン307がハード・ドライブ31へのバッファ
の書込みを終了する以前に、ハード・ドライブ31に書
込まれていない方の8Kバイト・バッファの充填を終了
する。従って、圧縮ルーチン311は、バッファからの
書込みルーチン307が、ハード・ドライブ31へのバ
ッファの書込みを終了するのを待機しなければならな
い。圧縮ルーチン311が全てのシステム・メモリの圧
縮及び書込みを終了していないと、圧縮ルーチン311
はタスク316で、バッファからの書込みルーチン30
7を待機する。圧縮ルーチン311及びバッファからの
書込みルーチン307は、フラグのセットを介して通信
する。バッファからの書込みルーチン307が延期ファ
イルへのカレント・バッファの書込みを終了すると、ル
ーチン307は次にタスク308でバッファ・フラグを
切り替え、それにより圧縮ルーチン311に、延期ファ
イルに書込まれたばかりのバッファに、圧縮データの充
填を開始してよいことを知らせる。次にタスク309
で、タスク297に関連して上述したように、フェール
セーフ・タイマC2がリセットされ、スイッチ21の閉
鎖事象がチェックされる。
【0211】バッファからの書込みルーチン307は次
にタスク310で、延期ファイルに書込まれたばかりの
バッファが、書込まれるべき最後のバッファかどうかを
判断する。そうでない場合、バッファからの書込みルー
チンは、圧縮ルーチン311により充填されたばかりの
バッファを延期ファイルに書込む。しばらくして、圧縮
ルーチン311はバッファ・フラグを調査することによ
り、バッファが圧縮システム・メモリとして準備完了し
たことを知る。すなわち、圧縮ルーチンはタスク316
で、バッファからの書込みルーチン307がカレント・
バッファに関し終了するまで待機し、その時点で、圧縮
ループがタスク312から継続する。ここでリニア・フ
レーム・バッファリングがサポートされる場合、ビデオ
・メモリ58が圧縮されるが、VESAページ・アクセ
スでは圧縮されない。むしろ、VESAページ・アクセ
ス・ビデオ・メモリは、VESA呼び出しによりビデオ
制御装置56を通じて読出され、上述のツイン・バッフ
ァ・システムにより圧縮無しに書込まれる。
【0212】圧縮ルーチン311が全てのシステム・メ
モリの圧縮を終了すると、圧縮ルーチン311はタスク
318で、バッファからの書込みルーチン307が最後
のバッファを延期ファイルへ書込み終えるのを待機す
る。バッファからの書込みルーチン307が終了する
と、圧縮ルーチンはタスク310からタスク318に分
岐し、脱出しない。この時点では、バックグラウンド・
ルーチンは実行されておらず、メイン・プログラムはタ
スク320へと継続する。
【0213】次にタスク320で、DMAユニット71
(DMA制御装置71及び中央アービタ82)、827
7ディスケット制御装置84、及びRS−232 UA
RT94の状態が保管される。これらの装置は既知のレ
ジスタを有する。ディスケット制御装置84及びUAR
T94内の全てのレジスタが、CPU40により直接読
出し可能であり、それらの値がセグメントE000Hデ
ータ構造に直接書込まれる。DMAユニットは読出し可
能なレジスタを有さず、各DMA転送以前に、通常、書
込み専用レジスタがセット・アップされる。この理由か
ら、延期ルーチンはDMA転送が実行中の場合、延期を
停止する。
【0214】次にタスク978で、延期ルーチンは、タ
スク976に関連して上述した割込み駆動型モデム状態
ルーチンが終了したか否かをテストする。終了していな
い場合には、このルーチンが終了するのを待機する。
【0215】コンピュータ・システム10が延期状態1
50に入力すると、延期ファイルを不正に変更するもの
を検出することが望ましかろう。例えば、誰かが変更延
期ファイルを生成し、その延期ファイルをハード・ドラ
イブ31に転送し、コンピュータ・システム10を保管
された状態と異なる状態に復元させようとするかも知れ
ない。このために、擬似ランダム値がセグメントE00
0Hデータ構造に配置される。タスク328で示される
ように、割込み駆動型モデム状態保管ルーチンの終了
後、16ビット・タイムスタンプが高速タイマ102の
1つから読出される。このタイムスタンプは、次にセグ
メントE000Hデータ構造に書込まれる。
【0216】次に、E000Hセグメント全体の16ビ
ット・チェックサムが、E000H内の各16ビット・
ワードをキャリー・ビットを考慮すること無く加算する
ことにより、計算される。このチェックサムは、タスク
330でセグメントE000Hデータ構造に書込まれ、
タスク332でCMOS NVRAM96に書込まれ
る。その後タスク334で、全ての作業変数がCPU4
0からセグメントE000Hデータ構造に書込まれ、次
にタスク336で、セグメントE000H全体が延期フ
ァイルに、その延期ファイルのシグニチャ語句の後(シ
グニチャの直後)から、再度書込まれる。次にタスク3
38で、延期フラグがCMOS NVRAM96内にセ
ットされ、コンピュータ・システム10に、コンピュー
タ・システムの状態が延期ファイルに保管されたことを
示す。
【0217】次にタスク980で、延期ルーチンはチェ
ックポイントが生成されるかどうかを判断する。生成さ
れる場合、システムはパワーダウンされるべきではな
く、むしろシステムは、実行されたばかりの部分的延期
から回復するために必要な程度、再開されなければなら
ない。従って、チェックポイントが生成されている場合
には、タスク982で、延期ルーチンは再開ルーチンの
タスク484にジャンプし、ここで部分的再開が実行さ
れる。
【0218】チェックポイントが生成されていない場合
には、システムはタスク1514で、即時延期/再開コ
ンテキスト変更が選択されたかどうかを判断する。こう
した変更はユーザにより、"アプレット(applet)"とし
て知られるOS/2アプリケーションまたはウィンドウ
ズ・アプリケーションを介して選択され得る。こうした
アプレットは、異なる延期システム間の迅速な変更を可
能にし得る。
【0219】更に、こうした即時延期/再開コンテキス
ト変更は、オペレーティング・システム自身により引き
起こされ得る。例えば、OS/2またはウィンドウズな
どの特定のオペレーティング・システムは、PC−DO
SまたはMS−DOSなどの異なるオペレーティング・
システム上で実行される特定のプログラムを実行できな
いかもしれない。他のオペレーティング・システムによ
り実行され得る問題を有し得るプログラムのクラスに、
DOSベースのゲームがある。こうしたゲームは通常、
大量のシステム資源を使用するので、他のオペレーティ
ング・システムにより残された"フック(hook)"が、ゲ
ームが適切に機能することを妨害する。こうした状況で
は、あるオペレーティング・システムが、(i)その現
セッションをある延期ファイルに延期し、(ii)シス
テム状態を異なるオペレーティング・システムから再開
させ、それによりオペレーティング・システムの"クリ
ーン"なコピーが、ゲームなどの特定のプログラムを実
行することを可能にし、(iii)新たに再開されたセ
ッションを延期または廃棄し、(iv)システムを、前
記(i)でシステム状態が保管された延期ファイルから
再開させることができる。前記摘要の要点は、システム
が適切に遷移するように、適正な延期ファイルがCMO
Sメモリ内で指し示されることである。CMOSメモリ
の追加のセクションは、一種の"スタック"として機能す
るように使用され得る。すなわち、あるセッションが完
了したときに(そのセッションが延期または廃棄される
ことにより示される)、システムがCMOS内で示され
る他の延期ファイルから再開できるように、適切なフラ
グを有する2つ以上の延期ファイルが、CMOSメモリ
内に記憶され得る。
【0220】タスク1514で、即時延期/再開コンテ
キスト変更が選択されたと判断されると、タスク151
6で適切なコードがセットされ、システムを所望の延期
ファイルから再開させる。こうしたコードは、上述のよ
うに、CMOSメモリ内の適切な延期ファイルを指示す
るステップと、任意のスワップ・ファイルの位置を指示
するステップとを含み得る。
【0221】上述したように、本システムはシステムが
再開するための複数の延期ファイルを有し得る。このこ
とは、ハード・ドライブ上のファイルを管理する特定の
措置が取られない限り、2つのタイプの幾つかの問題を
生じ得る。これらのタイプは、(i)スワップ・ファイ
ル問題、及び(ii)データ・ファイル問題である。
【0222】ほとんどの高性能オペレーティング・シス
テムは、揮発システムRAMにより提供されるよりも大
きなメモリを要求する。結果的に、これらのオペレーテ
ィング・システムは、現在CPUにより実行されていな
いプログラムの一部分及びデータを記憶するために、"
スワップ・ファイル"として知られるハード・ドライブ
上の特殊ファイルを使用する。プログラム及びデータが
CPUの実行のために要求されると、RAM内のデータ
がスワップ・ファイル内のデータとスワップされる。従
って状況によっては、コンピュータ・システムの"状態"
も、これらのスワップ・ファイルなどの、ハード・ドラ
イブ上の複数のファイルを含むものと思われる。こうし
た状況では、システム状態のスワップ・ファイル部分を
ハード・ドライブに記憶する必要はない。なぜなら、そ
れらは既にハード・ドライブ上に記憶されているからで
ある。しかしながら、スワップ・ファイルの破壊を阻止
する措置が取られなければならない。
【0223】一方、1つの延期ファイルだけを有するシ
ステムでは、特定のシステム状態がハード・ドライブ上
で見い出される事実が関係しない。揮発メモリ及びレジ
スタ内のシステム状態の一部分は、システムが延期され
るときに延期ファイルに保管される。システムが再開さ
れるときには、スワップ・ファイル内のデータは、シス
テムが延期したときにあった場所に存在する。同様に、
多重延期ファイルの全てを、異なるスワップ・ファイル
を使用する異なるオペレーティング・システムと一緒に
使用することは、問題でない。どの異なるオペレーティ
ング・システムも、他のオペレーティング・システムの
任意のスワップ・ファイルをアクセスまたは破壊するこ
とはない。
【0224】他方、同一のオペレーティング・システム
を有し、複数の延期ファイルを有するシステムでは、第
1のコンピュータ状態に関連付けられるスワップ・ファ
イルの内容が、第2のコンピュータ状態に関連付けられ
るスワップ・ファイルの内容と完全に異なり得る。両バ
ージョンのオペレーティング・システムが同一のスワッ
プ・ファイルを参照し得るので、一方の状態が他のシス
テムのスワップ・ファイルを破壊するか、他のスワップ
・ファイルにより全くディセーブルされ得る。第1のコ
ンピュータ状態を第2のコンピュータ状態からのスワッ
プ・ファイルと一緒に使用することは、悲惨な結果を招
き得る。
【0225】従って、特定の延期ファイルに記憶された
状態に関連付けられる特定のスワップ・ファイルの位置
またはDOSハンドルが、不揮発記憶装置のどこかに保
管されなければならない。例えば、特定の延期ファイル
に記憶された状態に関連付けられるスワップ・ファイル
の位置またはハンドルが、延期ファイル自身の一部とし
て記憶され得る。または、CMOS不揮発メモリが十分
に存在する場合には、特定の延期ファイルに関連付けら
れるスワップ・ファイル位置のテーブルが使用され得
る。重要な点は、システム状態が特定の延期ファイルか
ら再開されるときに、オペレーティング・システムが関
連スワップ・ファイルの位置を知らされることである。
これは例えば、スワップ・ファイルの位置またはハンド
ルを、それらを表すことが知れているメモリ(またはフ
ァイル)内の特定の位置に書込むことにより、達成され
得る。これはまた、システム状態が再開されるときに、
特殊API機能によっても達成され得る。
【0226】前記第2の可能な問題はデータ・ファイル
問題である。当業者には既知のように、複数のアプリケ
ーションが、書戻されるファイルを同時にアクセスでき
ることが望ましい。DOS SHARE.EXEプログラムは、同時
にオープンされているまたは使用されているファイルを
モニタし、他がそのファイルを使用するのを警告または
阻止するプログラムの例である。本システムでは、多く
のファイルがオープンされており、延期のアプリケーシ
ョンがメモリ内にデータ・ファイルを有する状況におい
て、システム状態が保管され得る。システムを再開する
ための複数の延期ファイルを有するシステムでは、ファ
イルが複数セッションにおいてオープンされることが考
えられる。しかしながら、あるセッションからのモニタ
・プログラム(例えばSHARE.EXE)は、ファイルが異な
るセッションでオープンまたは使用されていることを認
識しない。従って、ファイルの使用を許可する措置が講
じられない限り、データが上書きされる問題が発生す
る。
【0227】従って、複数の延期ファイルを有するシス
テムでは、ファイル使用のモニタ(監視)が任意の1セ
ッションを超越しなければならない。こうした大域ファ
イル使用のモニタは、ハード・ドライブまたはCMOS
不揮発メモリに書込まれる(但しこれらの資源が豊富な
場合)オープン・ファイルのリストであったりする。単
にオープン・ファイルのリストに加え、ファイルが使用
されているセッションなどの情報が含まれてもよく、そ
れによりユーザが延期セッション間の即時コンテキスト
・スイッチを実行し、所望のファイルを解放できるよう
にする。大域モニタと各セッション間のインタフェース
は、各セッションに、使用中ファイル・リストを用いる
同一の大域使用モニタを実行させる形式を取り得る。別
の方法は、大域ファイル使用モニタを、他のオペレーテ
ィング・システムのファイル使用モニタ(例えばSHARE.
EXE)と互換にし、システムが再開された後に、オープ
ン・ファイル・リストを各セッションのその特定のファ
イル使用モニタに転送することである。これは例えば、
使用中ファイル・リストを、それらを表すことが知れて
いるメモリ(またはファイル)内の特定の位置に書込む
ことにより達成され得る。これはまた、システム状態が
再開されるときに、特殊API機能によっても達成され
得る。好適には、システムは各ファイルに対応するビッ
トまたはフラグを使用し、これらのビットまたはフラグ
がファイル・システムにおいて一般に使用され、特定の
ファイルが"オープン"または使用されていることを示
す。フラグはファイルが使用可能なことを示すために1
にセットされ、ファイルが現セッションまたは異なるセ
ッションでオープンまたは使用されていることを示すた
めに、異なる値にセットされる。
【0228】タスク1516で適切なコードがセットさ
れると、プログラム実行は再開ルーチンに移行し、シス
テムは新たに指示された延期ファイルから、即時再開す
ることができる。
【0229】タスク1514で即時延期/再開コンテキ
スト変更が選択されなかったと判断されるか、或いはタ
スク1519で、システムをオフする以前に、ユーザが
多重延期/再開マネージャを呼び出すように、システム
がある期間(例えば5秒)休止した後、システムはタス
ク1520で、多重延期/再開マネージャが呼び出され
たかどうかを判断する。多重延期/再開マネージャは、
ユーザが任意の時刻に、しばしば"ホット・キー"として
参照される特定のキーの組み合わせを同時に押下するこ
とにより呼び出される。呼び出された場合には、タスク
1522で多重延期/再開マネージャ画面が表示され
る。
【0230】多重延期/再開マネージャ画面の1つの例
が図59に1700で示され、システムを再開するため
の別の延期ファイルを選択するためにユーザにより使用
される。画面1700は2つのウィンドウ1702及び
1704を有し、それぞれ延期可能セッション及び1回
使用(SORM)セッションを表示する。画面1700
は更に、ボタン1706、1708及び1710などの
複数のユーザ・インタフェース装置を有し、これらはそ
れぞれシステムを再開させるために、新たなセッション
を生成するために、そして脱出する(それ以上タスクを
実行することなくマシンをオフする)ために使用され
る。こうしたユーザ・インタフェース装置は当業者には
既知である。ユーザがシステムを再開するために新たな
ファイルを選択しない場合、システムは最後に選択され
た延期ファイルに延期され、そこから再開する。
【0231】セッション間の追加の保護を提供するため
に、システムが選択延期ファイルから再開される以前
に、ユーザはパスワードをタイプ入力するように任意的
に催促され得る。各延期ファイルは任意的にこうした関
連パスワードを有し得り、これらはファイル自身の一部
として、または他の不揮発メモリ内に配置される。こう
したパスワード機構は、あるユーザが別のユーザのシス
テム構成またはデータに影響を与えることを阻止する。
【0232】図19乃至図25を再度参照すると、コー
ド実行は次にタスク1524で、ユーザが"新規生成(c
reate new)"ボタン1708を選択したかどうかに依存
して分岐する。選択した場合、コードはタスク1526
で、図56のタスク1600にジャンプする。図56を
参照すると、新たなセッションを生成するためのコード
が示され、これはタスク1600で開始する。最初にタ
スク1602で、新規セッションへのリブート画面が表
示される。この画面の1つの例が、図57に1720で
示される。この画面は、ボタン1722、1724及び
1726などの複数のユーザ対話装置を有し、これらは
それぞれ、新たな延期不能(1回使用で、ハードファイ
ルへは保管されない)セッションを生成し、新たな延期
可能セッションを生成し、新たなSORM(1回使用
で、ハードファイルへ保管される)セッションを生成す
る。画面はまた、新たなセッションの基本を形成する延
期システムを示すユーザ対話装置1728を有する。ユ
ーザは、例えば"クリーンOS/2セッション"延期ファ
イルから、新たなSORMシステムの生成を望むかもし
れない。基本セッションの選択を容易にするために、ボ
タン1730などのユーザ対話装置は、セッションに対
応して使用可能な延期ファイルのリストをプル・ダウン
表示する。こうしたユーザ対話装置は当業者には既知で
ある。ユーザが新たに使用する延期ファイルを選択しな
い場合、システム状態は現在選択されている延期ファイ
ルに延期され、そこから再開される。
【0233】図56を再度参照すると、次にタスク16
04で、新たなセッションの生成に備え、CMOSメモ
リ内の延期フラグがクリアされる。その後タスク160
6で、ユーザがSORMセッションでない新たな延期不
能セッションの生成を選択すると、タスク1608で延
期許可フラグがクリアされ、それにより延期のシステム
がディセーブルされ、システムにクリーン・セッション
をブートさせる。その後タスク1610で、プログラム
実行がタスク420にジャンプし、クリーン・システム
のブートを終了する。
【0234】代わりにタスク1612で、ユーザが延期
可能セッションを生成するように選択すると、タスク1
614で延期許可フラグ及び延期ファイル生成フラグが
セットされる。これらのフラグは、延期可能セッション
を生成するために必要なステップの実行を終了するため
に、システムにより使用される。その後タスク1610
で、プログラム実行がタスク420にジャンプし、延期
可能システムのブートを終了する。
【0235】最後に、タスク1616で、ユーザがSO
RMセッションを生成するように選択すると、タスク1
618で延期許可フラグ、延期ファイル生成フラグ、及
びSORMフラグがセットされる。これらのフラグは、
SORMセッションを生成するために必要なステップの
実行を終了するために、システムにより使用される。そ
の後タスク1610で、プログラム実行がタスク420
にジャンプし、SORMシステムのブートを終了する。
【0236】図19乃至図25を再度参照すると、ユー
ザが"新規生成"ボタン1708を選択しないと、コード
実行はタスク1528で、ユーザがシステムを再開する
ための新たな延期ファイルを選択したかどうかに依存し
て分岐する。ユーザはこの選択を、ウィンドウ1702
及び1704内に示される有効セッションの1つを選択
し、"再開"ボタン1706を選択することにより実行す
る。タスク1528で、ユーザが新たな延期ファイルを
選択したと判断されると、タスク1530で、再開ルー
チンによりシステムをその特定の延期ファイルから再開
させる適切なコードがセットされる。こうしたコード
は、CMOSメモリ内の延期ファイルを指示するステッ
プと、CMOSメモリ内の任意のスワップ・ファイルの
位置を指示するステップとを含み得る。コードがセット
された後、タスク1532で、コード実行が再開ルーチ
ンに分岐し、システムを選択延期ファイルから再開す
る。
【0237】タスク1520で、多重延期/再開マネー
ジャが呼び出されないか、ユーザが"脱出(EXIT)"ボタ
ン1710を選択すると、CPU40はタスク340
で、マイクロコントローラU2にON#信号を論理0に
引き下げるように指令することにより電源装置17を"
オフ"し、それにより電源装置17の1次/調整ユニッ
ト172が、±5VDC及び±12VDCラインへの調
整電圧の供給を停止する。電圧は約0Vにランプ・ダウ
ンするのに数秒を要し、CPU40に多数のコマンドを
実行する時間を提供する。従って、CPU40はタスク
342で無限ループ("スピン")を実行しながら、タス
ク344で、電源装置17により生成されるシステム電
圧が、CPU40の機能を停止するレベルまで低下する
のを待機する。
【0238】図26乃至図29を参照すると、ブートア
ップ・ルーチンの詳細が示される。ブート・プロセスは
一般に図14に関連して、その概要が述べられた。ブー
トアップ・ルーチンは、CPU40がリセット・ベクト
ルにより指し示されるコードにジャンプし、それを実行
するとき、タスク380で開始される。これはCPU4
0がパワーアップするとき、またCPU40がリセット
・ベクトルにより指し示されるコードにジャンプするこ
とによりリセットされるときに、発生する。こうしたリ
セット・プロシジャは既知である。
【0239】最初のタスク382は、CPU40をテス
トし、メモリ制御装置46を初期化する。CPU40は
POSTルーチンによりテストされる。CPUテストの
一部は、CPU40がSMIを有する"S"パーツが否か
を判断する。Sパーツであれば、この事実を示すフラグ
がセットされる。メモリ制御装置46はPOSTルーチ
ンにより初期化される。
【0240】次にタスク986で、ブートアップ・ルー
チンは、マイクロコントローラU2が機能しているかど
うかをテストする。これを実行するために、CPU40
はパワー管理回路106のステータス・ポートを順次読
込み、そのポートにおけるハイからロウへ、そして逆に
ロウからハイへの遷移を待機する。こうした遷移はマイ
クロコントローラU2のハートビートが機能しているこ
とを示す。従って、CPU40は、マイクロコントロー
ラU2が期待通りに機能していると言う想定にもとづ
き、ブート・プロセスを継続することができる。
【0241】CPU40が所定時間(例えば1秒乃至2
秒)以内にステータス・ポートにおける遷移を検出しな
い場合、マイクロコントローラU2はハートビートを有
さず、CPU40はタスク988で、上述のように第1
のPAL U1にマイクロコントローラU2をリセット
するように指令する。CPU40はタスク990で、再
度ステータス・ポートにおけるハイからロウへの遷移を
待機する。CPU40が再度1秒乃至2秒以内に、ステ
ータス・ポートにおける遷移を検出しないと、マイクロ
コントローラU2はハートビートを有さず、CPU40
はタスク992で、上述のようにマイクロコントローラ
U2がリセットされ得ない状態であるとの想定にもとづ
き、パワー管理機構をディセーブルする。
【0242】一方、マイクロコントローラU2が機能し
ている場合には、CPU40はタスク994で、マイク
ロコントローラU2内の警報呼び起し時間値(分)をリ
フレッシュする。RTC98の時間基準は、マイクロコ
ントローラU2の時間基準よりもはるかに正確である。
従って、より正確な従って高価な時間基準をマイクロコ
ントローラU2に追加すること無く、この制限を克服す
るために、BIOSが精度の低い時間基準をより正確な
時間基準に同期させる。そして、システムがブートする
度に、マイクロコントローラU2内の警報呼び起し時間
値を、RTC98から導出されるより正確な値により更
新する。これを達成するために、CPU40はCMOS
メモリ96から絶対警報日付及び時刻を読出し、警報呼
び起し時間値を計算し、それをマイクロコントローラU
2に書込む。
【0243】その後、及びマイクロコントローラU2が
機能しておらず、パワー管理機構がディセーブルされた
場合、ブート・ルーチンはタスク996で、電源装置1
7への電力供給によりシステムがブートされたかどうか
を判断する。好適には、電源装置17は常にAC電力を
その1次/調整ユニット172に印加されており、±5
VDC及び±12VDCラインにおける電圧調整が、O
N#入力により制御される。このように、電源装置17
は絶えず、パワー管理回路106に電力供給するために
必要なAUX5を提供し、パワー管理回路106にAC
電力自体をスイッチさせること無く制御され得る。
【0244】しかしながら、当業者には既知のように、
ユーザによっては、彼らのコンピュータ・システムにス
イッチ式パワー・ストリップ(図示せず)を用いて電力
供給することを好んだりする。すなわち、単一のスイッ
チにより、システム全体へのAC電力の印加をオフ及び
オンする。このことはパワー管理回路106に問題を課
すことになる。なぜなら、マイクロコントローラU2及
び他の装置が、AUX5電源ラインにより絶えず電力供
給されるように構成されるからである。従ってシステム
は、システム自身がAC電力の印加により電力供給され
たことを判断し、それに従い振る舞うための方法を有さ
ねばならない。
【0245】しかしながら上述のように、AUX5ライ
ンもブラックアウト及びブラウンアウトの影響を受け
る。ブラックアウトまたはブラウンアウトの後、リセッ
ト・サブ回路920がマイクロコントローラU2をリセ
ットし、それが許容外電圧によりハングすることを防止
する。従って、システムは更に、マイクロコントローラ
U2がブラウンアウト後またはAC電力の印加後に起こ
されたかを判断できなければならない。
【0246】結果的に、タスク996で、CPU40は
マイクロコントローラU2に、電源装置17をオンさせ
た事象に関して問い合わせる。マイクロコントローラU
2は次の4つの応答のいずれかを返却し得る。それら
は、(1)自身がリセットされ、従って、電源装置17
に±5VDC及び±12VDCラインへの調整電力の供
給を開始させた、(2)警報呼び起し時間(分)が満了
した、(3)RS−232着呼入力または光絶縁器OP
TO1からの着呼入力に着呼が発生した、及び(4)ス
イッチ21が押下された、である。システムがパワーオ
ンされる理由は、スケジューラなどのアプリケーション
・プログラムにより、マイクロコントローラU2から直
接読出され得る。スケジューラは、システムがパワーア
ップされた特定の理由に応答して特定のプログラムを実
行する。別の態様では、システムをパワーアップする理
由が、1回または複数回のBIOS呼び出しを介して入
手され得る。
【0247】CPU40によりリセットされる以外、マ
イクロコントローラU2はリセット・サブ回路920に
よりリセットされるだけである。リセット・サブ回路9
20は、AUX5ラインが印加されるかグリッチすると
き、常にマイクロコントローラU2をリセットする。従
って、マイクロコントローラU2がリセットされるか、
マイクロコントローラU2が無効起床コード(wakeup c
ode)を返却する場合、このことがタスク997でテス
トされ、CPU40はタスク998で、電源装置17が
±5VDC及び±12VDCラインにおける電圧の調整
を継続すべきかどうかを判断しなければならない。この
ために、DEFAULT_ONと呼ばれるCMOSNVRAM内の
フラグが使用される。このフラグがセットされると、電
源装置17はマイクロコントローラU2がリセットされ
た後に、調整電圧の供給を継続すべきである。一方、DE
FAULT_ONがセットされない場合には、電源装置17はマ
イクロコントローラU2がリセットされた後に、調整電
圧の供給を停止すべきである。従って、CPU40はタ
スク1000でマイクロコントローラU2に指令して、
電源装置17に±5VDC及び±12VDCラインにお
ける調整電圧の供給を停止させる。その後、電圧が約0
Vにランプダウンするのに数秒を要し、CPU40に多
数のコマンドを実行する時間を提供する。従って、CP
U40はタスク1002で無限ループ("スピン")を実
行しながら、タスク1004で、電源装置17により生
成されるシステム電圧が、CPU40の機能が停止する
レベルまで低下するのを待機する。上述のように、マイ
クロコントローラU2は好適には絶えずAUX5ライン
により電力供給され、そのプログラム・ルーチンの実行
を継続する。
【0248】その後、タスク997でマイクロコントロ
ーラU2が有効起床コードを返却するか、或いはタスク
998でマイクロコントローラU2がリセットされた
が、システムへの電力供給が維持されるべき場合、CP
U40はタスク1004でマイクロコントローラU2に
次のように指令する。すなわち、マイクロコントローラ
U2が電源がオフされるべきと判断するに当たり、電源
装置17に±5VDC及び±12VDCラインにおける
調整電圧の供給を停止させる以前に、SMIをCPU4
0に対して生成するように指令する。またタスク100
4で、CPU40はCMOS NVRAM内のDEFAULT_
ONビットをセットし、AC電力が失われても、AC電力
が再投入された後にシステムが自身を再度オンするよう
にする。
【0249】上述のように、不活動延期タイマは2つの
時間間隔を有し得り、その一方がその満了までに比較的
長い時間間隔を有するか、或いは2つの不活動延期タイ
マが存在し、その一方が他方よりも満了までの比較的長
い時間間隔を有する。次にタスク1540で、システム
はどちらの時間間隔が使用されるべきか(またはどちら
のタイマがアクティブにされるべきか)を判断する。タ
スク1540でシステムは、自身が接続電話回線の着呼
または内部警報による無人操作によりオンされたのでは
なく、ユーザ・アクションによりオンされたかどうかを
テストする。この状況においては、ユーザ・アクション
はユーザが電源ボタンを押下したか、システムをパワー
アップさせる他のタスクを実行したことを意味する。シ
ステムがユーザ・アクションによりオンされた場合に
は、タスク1542で不活動延期タイマがその最長間隔
にセットされる。システムがユーザ・アクション以外の
理由によりオンされた場合には、タスク1544で不活
動延期タイマがその短い方の時間間隔にセットされる。
【0250】どちらの時間間隔が使用されるかに関わら
ず、ブート・ルーチンは当業者には既知のように、次に
タスク1006で、最初のプラグ・アンド・プレイ資源
割当てパス(pass)を実行する。
【0251】次にタスク383で、シャドー・メモリが
テストされ、BIOSがROM88からRAM53のシ
ャドー・メモリ部分にコピーされる。実行コードのフロ
ーは、延期フラグがCMOS NVRAM96内でセッ
トされているかどうかに依存する。延期フラグがセット
されている場合、コンピュータ・システム10は延期状
態150にあり、コンピュータ・システム10は、自身
が延期されたときの状態に復元されるべきである。シス
テムRAM53のセグメントE000H及びF000H
は、短縮テストを提供される。コンピュータが再開する
ために要する時間を低減するために、メモリは単に適正
サイズがチェックされるだけで、0にクリアされる(各
位置に000Hが書込まれる)。
【0252】一方、延期フラグがCMOS NVRAM
96内でクリアされていると、システムRAM53のセ
グメントE000H及びF000Hは、標準の徹底的メ
モリ・テストを提供される。このテストには、(1)ス
ティッキ(sticky)・ビット・テスト、(2)ダブル・
ビット・メモリ・テスト、及び(3)クロス・アドレス
・ライン・テストが含まれる。これらのテストは既知で
ある。
【0253】セグメントE000H及びF000Hがテ
ストされた後、BIOSはシャドーイングされ得る。こ
れはROM BIOS88の内容をシステムRAM53
にコピーし、BIOSをRAMから実行するようにメモ
リ制御装置を構成することにより達成される。BIOS
のシャドーイングは、システム速度を向上するために実
行される。すなわち、BIOSが低速のROM88(通
常のアクセス時間は250ナノ秒)からではなく、高速
のシステムRAM53(通常のアクセス時間は80ナノ
秒)から実行されるために、システム性能が向上する。
BIOSのシャドーイングは、BIOSコピア(copie
r)を下位メモリのアドレスにロードするステップと、
BIOSをROM88からシステムRAM53のセグメ
ントE000H及びF000Hにコピーするステップ
と、シャドーRAMをイネーブルするステップとを含
む。
【0254】次にタスク384で、ビデオ制御装置56
がテストされて初期化され、ビデオ・メモリ58がテス
トされる。これらのテスト及び初期化は既知である。
【0255】次にタスク1008で、ブート・ルーチン
が既知のように、第2のプラグ・アンド・プレイ資源割
当てパスを実行する。
【0256】実行コードのフローは、タスク386で、
延期フラグがCMOS NVRAM96内でセットされ
ているかどうかに依存する。延期フラグがセットされて
いる場合、タスク383の場合同様、残りのシステムR
AM53のサイズが単にチェックされ、0にクリアされ
る。しかしながら、延期フラグがCMOS NVRAM
96内でクリアされていると、残りのシステムRAM5
3がタスク398で、タスク383に関連して上述した
3ステップを含む徹底的メモリ・テストによりテストさ
れる。
【0257】メモリがテストされた後、タスク400
で、8259、UART、8042などの補助装置がテ
ストされ、初期化される。タスク408では、固定ディ
スク制御装置が初期化される。
【0258】実行コードのフローは、タスク409で延
期フラグがCMOS NVRAM96内でセットされて
いるかどうかに依存する。延期フラグがセットされてい
る場合、これは電源が最後に取り除かれたときにシステ
ムの状態が成功裡に保管されたことを示し、ブートアッ
プ・ルーチンは、ハード・ドライブ制御装置86及びハ
ード・ドライブ31のテストをスキップする。一方、延
期フラグがCMOSNVRAM96内でクリアされてい
る場合、これは電源が最後に取り除かれたときにシステ
ムの状態が保管されなかったことを示し、ブートアップ
・ルーチンはタスク410で、既知のように、固定ディ
スク制御装置86及びハード・ドライブ31の完全なテ
ストを実行する。
【0259】次にタスク412で、フロッピー・ドライ
ブ制御装置84がテストされ、初期化される。
【0260】この時点で、全ての装置が初期化され、ベ
クトル・ポイントが既知の位置を指し示し、従って割込
みルーチンが期待通りに機能するようになる。従って、
ブートアップ・ルーチンはタスク414で、BIOSデ
ータ領域及びベクトル・テーブルをスナップショット
(速写)するために、BIOSデータ領域及びベクトル
・テーブルのコピーをセグメントE000Hデータ構造
に書込む。BIOSデータ領域及びベクトル・テーブル
のコピーは、タスク274で延期ルーチンにより使用さ
れ、コンピュータ・システム10を全ての割込みが期待
通りに機能する既知の状態にする。
【0261】次にタスク416で、既知のように、任意
のBIOS拡張が"スキャン・イン"され、初期化され
る。BIOS拡張は、ネットワーク・アダプタなどの周
辺アダプタにより、システムに追加されるBIOSコー
ドのブロックである。BIOS拡張は通常、ISAバス
76上のセグメントC000H及びD000Hに配置さ
れ、BIOS拡張自身を識別するための関連する"シグ
ニチャ"を有する。BIOS拡張が検出される場合、そ
の長さがチェックされ、チェックサムが計算されチェッ
クされる。シグニチャ、長さ、及びチェックサムが全
て、有効なBIOS拡張が存在することを示すと、プロ
グラム制御は、シグニチャより3バイト先に配置される
命令に移行し、BIOS拡張が周辺アダプタの初期化な
どの任意の必要なタスクを実行する。拡張が実行を終え
ると、制御はブートアップ・ルーチンに戻り、更にBI
OS拡張を探索する。そして、任意のBIOS拡張が上
述のBIOS拡張の場合同様に処理される。BIOS拡
張がもはや検出されないと、ブートアップ・ルーチンは
タスク417に移行する。
【0262】次にタスク1010で、CPUがCMOS
メモリの状態を読出し、それをハード・ドライブに書込
む。
【0263】次にタスク1548で、図58のルーチン
が呼び出され、システムがパワーオンされた総経過時間
を計算し、保管する。以降で詳述されるように、総パワ
ーオン時間は2ステージ・プロセスにより保管される。
第1のステージでは、パワーオン時間デルタ(すなわち
増分)が計算され、CMOS NVRAM96に保管さ
れる。第2のステージでは、パワーオン時間デルタが総
パワーオン時間に加算され、新たな総パワーオン時間デ
ルタがハード・ドライブに保管される。タスク1548
で呼び出されるルーチンは、2ステージ・パワーオン時
間保管プロセスの第2ステージである。
【0264】図58を参照すると、パワーオン時間ルー
チンの第2ステージが示され、タスク1533で開始す
る。最初にタスク1534で、CPU40は総システム
・パワーオン時間をハードファイルから読出す。総パワ
ーオン時間は好適には、通常のユーザにはアクセスでき
ないハード・ドライブの特殊部分に記憶される。例え
ば、パワーオン時間は、ユーザにより容易に消去または
変更されない特殊ディスク・パーティションに保管され
る。好適には、特殊パーティションは、任意のFATベ
ースのオペレーティング・システムによりアクセス不能
であり、例えばほとんどのハード・ドライブの最後のシ
リンダなどが当てはまる。ハード・ドライブ上に記憶さ
れる総パワーオン時間値は、コンピュータが使用された
総経過時間である。但し、最も最近のセッションの経過
時間を除き、これはパワーオン時間デルタとしてCMO
Sメモリに記憶される。従ってタスク1535で、パワ
ーオン時間デルタがCMOSメモリから読出され、直前
のステップでハード・ドライブ31上の特殊パーティシ
ョンから読出された総時間に加算される。次にタスク1
537で、新たな(更新)総パワーオン時間が、ハード
・ドライブ31上の特殊パーティションに書戻される。
最終的にタスク1537で、新たなタイムスタンプがR
TCから読出され、CMOSメモリに書込まれ、システ
ムのパワーダウン時に、次のパワーオン時間デルタが計
算されるようにする。最後に、タスク1538で、コー
ドが呼び出しプログラムに復帰する。これでパワーオン
時間コードの第2ステージが終了する。
【0265】パワーオン時間コードの第1ステージで
は、システムが最も最近使用された期間を表すパワーオ
ン時間デルタが計算される。図60を参照すると、パワ
ーオン時間コードの第1ステージが示される。上述した
ように、マイクロコントローラU2はシステムをパワー
ダウンする以前に、SMIラインをアサートすることに
より、CPU40に割込みを発生する。結果的に、CP
U40はシステムが差し迫ってパワーダウンされようと
しているとの想定にもとづき、特定のタスクを実行す
る。好適には、これは経過パワーオン時間タイマにより
測定される上述のパワーオン・デルタなどの、特定の情
報を計算し、CMOS NVRAM96に保管するタス
クを含む。その後、CPU40はマイクロコントローラ
U2にシステムをパワーダウンさせる。従って、パワー
オン時間ルーチンの第1ステージは、タスク1752
で、ユーザ制御シャット・ダウンに応答するコードの一
部として入力され得る。
【0266】システム・シャット・ダウンの制御値に加
え、たとえシステムが不明な理由から電源を失ったとし
ても、パワーオン時間が計算されなければならない。こ
うした理由には、ユーザによるプラグの引き抜きによ
る、標準のACアウトレットからのAC電力の遮断など
が含まれる。結果的に、電源の故障時またはシステムか
らの除去時に、パワーオン時間ルーチンの第1ステージ
が、タスク1750で呼び出されなければならない。上
述したように、パワー管理プロセッサU2は、システム
電源ラインが許容範囲内にあることを示すPOWERGOOD信
号をモニタする。POWERGOOD信号が否定された後、CP
U40は確実な電源をわずか約1ミリ秒有するに過ぎな
い。従って、あらゆるデータをハード・ドライブに書込
むための十分な時間が維持されない。しかしながら、後
述されるように、パワーオン時間デルタを計算し、それ
をCMOS NVRAMに保管するための時間は、十分
に存在する。従ってタスク1754で、パワー管理プロ
セッサU2はCPUのSMIを介して、CPUに割込み
を発生する。
【0267】SMIに応答して、またはユーザ制御シャ
ット・ダウンに応答して、CPU40はタスク1756
で、リアル・タイム・クロック(RTC)から現時刻を
読出す。任意的に、この値はユーザにより変更されてい
ないことを保証するように、チェックされ得る。例え
ば、ユーザが値を置換しており、その値がパワーオン時
間デルタを負の値にし、それにより総パワーオン時間値
を増加させるのではなく、減少させるような状況をチェ
ックする。図58のタスク1537で、タイムスタンプ
がRTCから読出され、CMOS NVRAMに保管さ
れたことを思い起こされたい。タスク1758で、この
パワーオン・タイムスタンプがCMOSNVRAMから
読出される。再度任意的に、この値がユーザにより変更
されていないことを保証するように、チェックされ得
る。例えば、ユーザが値を置換しており、その値がパワ
ーオン時間デルタを負の値にし、それにより総パワーオ
ン時間値を増加させるのではなく、減少させるような状
況をチェックする。
【0268】次にタスク1760で、パワーオン時間デ
ルタが、パワーオン・タイムスタンプ及び現時刻から計
算される。再度任意的に、この値がユーザにより変更さ
れていないことを保証するように、チェックされ得る。
例えば、ユーザが値を置換しており、その値がパワーオ
ン時間デルタを負の値にし、それにより総パワーオン時
間値を増加させるのではなく、減少させるような状況を
チェックする。次にタスク1762で、計算されたパワ
ーオン時間デルタがCMOS NVRAMに保管され
る。
【0269】最後にタスク1764で、コードは復帰し
て他のタスクを実行するか(ユーザ制御シャット・ダウ
ンの場合)、プログラム実行をシステムをオフするルー
チン(例えばタスク340)にジャンプさせる(電源故
障の場合)。
【0270】上述のように、ハード・ドライブの最後の
(内部)シリンダは、総パワーオン時間、パワーオン・
サイクル数、並びに過去のエラー・コード及びそれらが
発生した日付を記憶するために使用される特殊部分の好
適な位置に相当する。このパーティションに対応する好
適な1つのデータ構造は、次のようである。パーティシ
ョンの最初にはシグニチャ・ヘッダが配置され、これは
このパーティションが前記日付を保管するために使用さ
れることを確認するために、BIOSにより使用され
る。次にデータが、それ以降の固定位置に配置される。
しかしながら好適には、次に相対オフセット・ポインタ
が配置され、ポインタ以降に配置されるデータ・ブロッ
クを指し示す。ポインタはヘッダ部分を有する。このヘ
ッダ部分は、相対オフセット部分に何が配置されるかを
正確に識別し、例えばプラグ・アンド・プレイ割当てデ
ータ、システム総パワーオン時間、システム・パワーオ
ン・サイクル・データ、特定の周辺パワーオン時間及び
サイクルなどを指し示す。別の態様では、ポインタはヘ
ッダ部分を有さず、単にデータ・ブロックを指し示す相
対オフセット・ポインタであり、ヘッダ部分は各データ
・ブロックの一部である。
【0271】上述の例では、システム全体の総パワーオ
ン時間だけが記憶される。別の態様では、多くの異なる
パワーオン時間値が記憶される。例えば、新たなハード
・ドライブなどの新たなコンポーネントが追加される場
合、その新たなコンポーネントに対応する別の総パワー
オン時間値が生成される。図58のコードにおいて、様
々なパワーオン時間値の全てが好適には特殊パーティシ
ョンに記憶され、システムがブートされる度に全てが新
たなパワーオン時間デルタに加算される。
【0272】更に、パワーオン時に、他のシステム・パ
ラメータが新たな総パワーオン時間と一緒にハード・ド
ライブに書込まれ得る。例えば、システムがパワーオン
された総回数を保管することが有益であろう。この場
合、システムがブートする度に、システムがこれまでに
ブートされた現回数がハード・ドライブから読出され、
1だけ増分されて、ハード・ドライブに書戻される。別
の例では、システムが様々なシステム・エラーを検出
し、コードを特定のエラーに関連付ける。ユーザはエラ
ー・コードを書留めてもそうでなくてもよく、またエラ
ー・コードに応答してもよい。従って、特定数のエラー
・コード、及びそれらが発生した日付を、ハード・ドラ
イブ上の特殊パーティションに記憶することが有益であ
ろう。上述の総パワーオン時間と同様、システムがパワ
ーダウンされる度に、現セッションにおけるエラー・コ
ードがCMOS NVRAMに記憶され、次のシステム
・ブート時にハード・ドライブに書込まれ得る。これら
の間の違いは、総パワーオン時間値として1つだけを保
管する代わりに、全ての(または先に保管したものから
順番に廃棄する方式で記憶される固定数の)エラー・コ
ードが別々に保管される点である。
【0273】上述の構造では、システムがオフされたこ
とを検出するために、POWERGOODが使用される。この信
号に応答して、パラメータ保管ルーチンの第1ステージ
が実行される。POWERGOODは、電源装置17の調整ステ
ージをモニタする。すなわち、調整電圧が許容範囲内の
レベルを獲得するとき、POWERGOOD信号は論理1に変化
し、一方、±5VDCまたは±12VDCラインが許容
範囲から外れると、POWERGOOD信号は論理0になり、電
圧が許容範囲外であることを指摘する。従って、POWERG
OOD信号は調整システム電圧に関連付けられ、POWERGOOD
信号が許容範囲外状態を指摘するまでに、CPU40は
約1ミリ秒の処理時間を残されるだけである。
【0274】別の態様では、電源装置17が図6に示さ
れるACGOOD(AC良好)信号を提供するように変更され
る。ACGOOD信号は、壁上のアウトレットから電源装置1
7の1次ステージへのAC入力をモニタする。電源装置
17へのAC入力が特定の所定パラメータに達すると、
ACGOOD信号が論理0になり、電源装置17への入力に障
害が有ることを示す。こうしたACGOOD信号の論理0への
遷移は、POWERGOOD信号の論理0への遷移がシステム電
圧が許容範囲外であることを指摘するよりも、数10ミ
リ秒早く、システム電圧の故障を指摘するものと思われ
る。ACGOOD信号を生成する厳密な回路はここでは重要で
はなく、これらは特定の電源装置がシステム電圧に影響
することなく許容可能なAC入力の変化に応じて異なり
得る。当業者には、AC入力をモニタするために要求さ
れる特定の回路を設計することが可能であろう。こうし
た回路はAC入力のRMS電圧をモニタし、比較器によ
りRMS値が特定のしきい値以下に降下したことが測定
されるとき、ACGOOD信号の論理0への遷移をトリガし得
る。その他の多くの回路が本発明により考慮される。
【0275】ACGOOD信号はPOWERGOOD信号と同様に、コ
プロセッサU2を介してCPUに接続される。ACGOOD信
号の論理1から0への遷移は、コプロセッサU2にCP
U40へのSMIを生成させる。SMIに応答して、C
PU40はコプロセッサU2に、SMIの原因を判断す
るように問い合わせる。ACGOOD遷移がSMIを生じた場
合、CPU40は特定のタスクのセットを実行できる。
なぜなら、約30ミリ秒の確実なプロセッサ時間が残っ
ていることを知るからである。約30ミリ秒の電源の保
持は、CPU40に少量のデータをハード・ドライブに
書込むのに十分な時間を提供する。従って、コプロセッ
サU2を介してCPU40に接続されるACGOOD信号は、
パワーオン時間値を決定し、ハード・ドライブに保管す
る上述の2ステップ・プロセスに代わる1ステップ・プ
ロセスを提供する。2ステージを使用する代わりに、C
PU40はパワーオン時間値を計算し、ACGOODにより生
成されるSMIに応答してその値をハード・ドライブに
書込む。このプロセスは、パワーオン時間デルタが、あ
る期間CMOS NVRAMに記憶される必要がない点
を除けば、図58及び図60に示されるものと同一であ
る。
【0276】更に、特定のACGOOD信号により提供される
確実なプロセッサ時間の量に依存して、パワーオン・サ
イクル、エラー・コード、エラー日付などの、上述の他
のシステム・パラメータが、ACGOOD信号の論理0への遷
移に応答して、1ステップでハード・ドライブに保管さ
れ得る。
【0277】図26乃至図29を再度参照して、パワー
オン時間値が決定され保管された後、システムはタスク
1550で、多重延期/再開マネージャが呼び出される
かどうかを判断する。呼び出される場合、タスク155
2で多重延期/再開マネージャ画面が表示される。
【0278】多重延期/再開マネージャ画面1700が
図59に示され、これに関しては既に述べた通りであ
る。
【0279】コード実行はタスク1554で、ユーザが
多重延期/再開マネージャ画面1700の"新規生成"ボ
タン1708を選択したかどうかに依存して分岐する。
選択した場合、タスク1556で、コードは図56のタ
スク1600にジャンプする。選択していない場合に
は、コード実行はタスク1558で、ユーザがシステム
を再開するための新規の延期ファイルを選択したかどう
かに依存して分岐する。ユーザは、ウィンドウ1702
及び1704に示される有効なセッションの1つを選択
し、画面1700の"再開"ボタン1706を選択するこ
とにより、これを実行する。タスク1558で、ユーザ
が新たな延期ファイルを選択したと判断されると、タス
ク1560で、再開ルーチンにより、システムをその特
定の延期ファイルから再開するための適切なコードがセ
ットされる。こうしたコードは、CMOSメモリ内の延
期ファイルを指示するステップと、CMOSメモリ内の
任意のスワップ・ファイルの位置を指示するステップと
を含み得る。コードがセットされた後、コード実行がタ
スク419に分岐し、可能であればアダプタを初期化
し、その後システムを選択延期ファイルから再開する。
【0280】タスク1550で、多重延期/再開マネー
ジャが呼び出されないか、ユーザが"脱出(EXIT)"ボタ
ン1710を選択すると(タスク1558で新たな延期
ファイルが選択されなかったことを示す)、コードはタ
スク418に継続し、延期フラグをテストする。
【0281】タスク417で、ブートアップ・ルーチン
は、延期ファイルに特定的に割当てられたパーティショ
ンと思われるハード・ドライブ31上のパーティション
を探索する。パーティション・テーブル内に、PS/1
識別子"FE"を有するパーティションまたは識別子"8
4"を有するハイバネーション・パーティションが見い
出され、そのパーティションがこの特定のシステムの延
期ファイルを収容できるように十分に大きいと、そのパ
ーティションが延期ファイルのために使用される。結果
的に、延期ファイル・シグニチャが領域の最初のバイト
に書込まれ、領域の開始ヘッド、セクタ、及びシリンダ
が、CMOS NVRAM96に書込まれる。
【0282】実行コードのフローは次にタスク418
で、延期フラグがCMOS NVRAM96内でセット
されているか否かに依存して分岐する。延期フラグがク
リアされていると、ブートアップ・ルーチンはタスク4
20で、制御をPBOOTルーチンに渡し、これがタス
ク1012で図46乃至図49のルーチンを実行し、制
御をオペレーティング・システムに渡す。PBOOTは
既知であり、オペレーティング・システム(OS)及び
コマンド・インタプリタを、フロッピー・ディスクまた
はハード・ドライブ31からロードする。タスク417
で延期ファイル用のパーティションが見い出されなかっ
た場合、OSは図46乃至図49に関連して述べられる
OS特有のドライバを実行し、これがパーティションが
見い出されたかどうかをチェックし、見い出されなかっ
た場合、FAT内の連続セクタのファイルを割当て(必
要に応じて領域を分割解除(defragment)する)、シグ
ニチャを延期ファイルの最初のバイトに書込み、延期フ
ァイルの開始ヘッド、セクタ、及びシリンダをCMOS
NVRAM96に書込む。
【0283】延期ファイルがいつ割当てられるかに関わ
らず、ファイルは、延期及び再開の間の、それぞれディ
スクへの迅速な書込み及びディスクからの迅速な読出し
を可能にするように、連続セクタであるべきである。
【0284】OSは次にCONFIG.SYSファイル内に見い出
される命令にもとづき、システムを構成する。最後に、
OSはAUTOEXEC.BATファイルを実行し、これが結局実行
制御をオペレーティング・システムに戻す。延期フラグ
がCMOS NVRAM96内でクリアされている場合
には、電源が最後に取り除かれたときに、システムの状
態が保管されなかったことを示し、RESUME.EXE(タスク
421に関連して詳述される)が無視される。
【0285】タスク418を再度参照し、延期フラグが
CMOS NVRAM96内でセットされていると、こ
れは電源が最後に取り除かれたときにシステムの状態が
保管されたことを示し、実行コードは次にタスク419
で、アダプタ再初期化フラグがCMOS NVRAM9
6内でセットされている否かに依存して分岐する。アダ
プタ再初期化フラグがセットされていると、ブートアッ
プ・ルーチンはタスク421で制御をPBOOTルーチ
ンに渡す。通常のPBOOTルーチン同様、本発明のP
BOOTはOSをロードし、これがCONFIG.SYS及びAUTO
EXEC.BATファイル内で見い出されるコマンドに従いシス
テムを構成する。既知のように、これらのファイルは特
にドライバをロードし、システムを構成する。
【0286】CONFIG.SYS及びAUTOEXEC.BATファイル内の
コマンドは、システム内のアダプタ・カードを初期化し
得る。本願は3つのタイプのアダプタ・カードを想定す
る。タイプIアダプタは初期化を必要としない。タイプ
IIアダプタは初期化を必要とするが、BIOS拡張若
しくはCONFIG.SYSまたはAUTOEXEC.BATファイルに従いロ
ードされるドライバにより、既知の作業状態に置かれ
る。またタイプIIIアダプタは、システム上で実行さ
れるコードにより変更される。タイプI及びタイプII
アダプタを含むシステムは、延期及び復元され得るが、
タイプIIIアダプタ(多くのネットワーク・アダプタ
など)を含むシステムは、カードがシステム電源の除去
などの特定の条件の発生後に、アダプタを再初期化する
関連APM対応デバイス・ドライバを有さない限り、復
元され得ない。システムは、APM対応デバイス・ドラ
イバを有するタイプIIIカードを延期し得る。
【0287】好適な態様では、ファイルRESUME.EXEがAU
TOEXEC.BATファイルに追加され、プログラム制御をOS
から再開ルーチンに渡す役割をする。OSはタスク42
0でRESUME.EXEの存在を無視するが、タスク421のO
SはRESUME.EXEを実行する。そして、タイプIIアダプ
タが、OSによりCONFIG.SYS及びAUTOEXEC.BATからロー
ドされたデバイス・ドライバにより初期化されると、RE
SUME.EXEは制御を再開ルーチンに渡す。
【0288】タスク419を再度参照して、アダプタ再
初期化フラグがCMOS NVRAM96内でクリアさ
れていると、OSは実行制御をRESUME.EXEを介して再開
ルーチンに渡す。再開ルーチンは、図30乃至34に関
連して詳述されるように、ハード・ドライブ上の延期フ
ァイルからシステム状態を復元する。
【0289】図30乃至図34を参照すると、再開ルー
チンのタスク450乃至530が示される。最初に、C
PU40がタスク451でテストされる。CPU40が
SMIを有すると、タスク454でCPU再開SMIが
生成され、CPUをSMMモードにする。CPUがSM
Iを有さない場合、タスク453でシャット・ダウン再
開が発生し、それによりリセットが生じ、リセット・ハ
ンドラがタスク454にジャンプする。構成プロセスの
間、BIOSデータ領域及びベクトル・テーブルが恐ら
く不明の状態に変更される。従って、基本BIOSルー
チンが期待通りに機能しないかも知れない。結果的に、
再開ルーチンはタスク454でセグメントE000Hの
読出し/書込みを許可し、タスク456でBIOSデー
タ領域及びベクトル・テーブルのスワップ・ルーチンを
呼び出す。このルーチンは、タスク414で、セグメン
トE000Hにコピーされた既知の適正なBIOSデー
タ領域及びベクトル・テーブルを、目下セグメント00
00Hにおいてアクティブな変更BIOSデータ領域及
びベクトル・テーブルとスワップする。ルーチンが終了
するとき、既知のBIOSデータ領域及びベクトル・テ
ーブルが、セグメントE000Hにおいてアクティブと
なり、変更BIOSデータ領域及びベクトル・テーブル
がセグメントE000Hに配置され、BIOSルーチン
は期待通りに機能するようになる。
【0290】次にタスク458で、再開ルーチンは、キ
ーボード及びハード・ドライブをサポートする割込みを
除く、全ての割込みを禁止する。次にタスク1570
で、再開ルーチンはハード・ドライブ31上の適切な延
期ファイルを突き止める。上述のように、システムは複
数の延期ファイルを有し得り、適切な延期ファイルが再
開ルーチンにより突き止められねばならない。延期ファ
イルはユーザにより、多重延期/再開マネージャを介し
て選択され、その1つの例が図59に示される。更に、
オペレーティング・システムは、上述のように、システ
ムが再開するための延期ファイルを決定することができ
る。次に再開ルーチンはファイル・サイズ及びシグニチ
ャを読出す。これらは上述のように、延期ファイルに対
応する多数バイト識別子である。実行コードのフローは
タスク462で、延期ファイルが適正なサイズ及びシグ
ニチャを有するかどうかに依存して分岐する。延期ファ
イルが適正なサイズ及びシグニチャを有さない場合、再
開ルーチンはタスク464で、CMOSメモリ96内の
延期フラグをクリアし、タスク464で、プログラム制
御はリセット・ベクトルにより指し示される位置のコー
ドに移行され、それによりシステムはあたかも延期され
なかったかのようにブートする。一方、延期フラグが適
正なサイズ及びシグニチャを有する場合には、再開ルー
チンがシステムの再開を継続し、タスク468で、延期
ファイル内のシグニチャ以降に配置される64Kブロッ
ク(セグメントE000H情報に対応する延期ファイル
部分)を、セグメント1000Hに読出す。
【0291】次にタスク470で、セグメント1000
H内のブロックのチェックサムが計算され、タスク47
2で、以前に記憶されたチェックサムがCMOS不揮発
メモリ96から読出され、実行コードのフローはタスク
474で、タスク470で計算されたチェックサムがタ
スク330で計算されたチェックサムと同一かどうかに
依存して分岐する。同一でない場合、延期ファイルは何
らかの理由で欠陥があり(例えば不正に変更されたな
ど)、制御はタスク464に移行し、ここで上述のよう
に延期フラグをクリアし、システムをリセットする。タ
スク470で計算されたチェックサムが、タスク330
で計算されたチェックサムと同一の場合には、延期ファ
イルは延期ルーチンにより書込まれたものと同一と見な
され、タスク476で、セグメント1000H内のデー
タがセグメントE000Hにコピーされる。
【0292】次に再開ルーチンはタスク478で、シス
テムが復元されており、再開を打ち切るためには、ユー
ザがCtrl-Alt-Delを押下すべきであることを知らせる特
殊な合図画面を、画面に書込む。延期ルーチンの場合同
様、Ctrl-Alt-Delの押下により、タスク526で延期フ
ラグがクリアされ、タスク528でシステムがリブート
される。従って、Ctrl-Alt-Delが押下され、再開ルーチ
ンが実行されているときには、システムは通常リブート
する。
【0293】82077ディスケット制御装置84及び
DMAユニット71は、それぞれタスク480及び48
2で、セグメントE000Hデータ構造から、それらの
それぞれのレジスタに値を書込むことにより復元され
る。
【0294】次にタスク1020で、セグメントE00
0Hデータ構造から、あらゆるモデムの状態を復元する
ための割込み駆動型並列スレッドが開始される。タスク
976(図21)におけるルーチンの場合同様、モデム
復元ルーチンは、特定のモデムに関連付けられるCOM
Mポートに対応する割込みを捕獲し、セグメントE00
0Hデータ構造から値を読出し、モデムにコマンド及び
値を送信して、モデム内のレジスタを復元させる。この
ルーチンは第1のコマンドをモデムに送信し、次に割込
み駆動式に応答して、モデムの応答を受信し、各COM
Mポート割込みに応答して、次の値をモデムに送信す
る。このようにして、モデムの全てのレジスタが復元さ
れるまでこのプロセスを繰り返す。モデム保管ルーチン
同様、並列スレッドとして実行されないと、モデム復元
ルーチンはシステムを再開するために要する時間に数秒
を追加し得る。実際にはモデム復元ルーチンは割込み駆
動型並列スレッドであるので、システム状態がハード・
ドライブ31から読出される以前に完全に実行されれ
ば、再開にほとんどまたは全く時間を追加しない。
【0295】割込み駆動型並列スレッド・モデム復元ル
ーチンが開始された後、タスク486乃至500におい
て、システム・メモリが延期ファイルから復元される。
これは延期ルーチン内のタスク304乃至318(図2
2乃至図23)に関連して述べられたルーチンと類似
の、ツイン・バッファ・ルーチンを用いて実行される。
ツイン・バッファ・システムは延期ファイルから圧縮デ
ータを読出し、それをセグメントE000Hに書込み、
それを伸長してシステム・メモリに書込む。2つのルー
チンは時分割多重式に作用し、一方はデータを延期ファ
イルから読出し、それをセグメントE000Hに書込
み、他方はデータを伸長して、伸長データをシステム・
メモリに書込む。後者はフォアグラウンドで実行され、
前者はバックグラウンドで実行される割込み駆動型ルー
チンである。明らかなように、1つのCPU40だけし
か存在しないので、所与の時刻に1ルーチンだけが実行
され得る。しかしながら、前者のルーチンは割込み駆動
型なので、延期ファイルからのデータの転送速度を最適
化するために、後者のルーチンの実行を中断することが
できる。2つの各バッファは8Kバイト長であり、転送
時間を最適化するものと考えられる。
【0296】このプロセスはタスク486で開始し、第
1の8Kバッファを充填するのに十分なデータを延期フ
ァイルから読出し、セグメントE000Hに書込む。こ
の時、一般に489で示されるバッファへの読出しルー
チンが、タスク488で開始される。バッファへの読出
しルーチン489は割込み駆動型ルーチンであり、バッ
クグラウンドで実行され、タスク490乃至492を含
む。伸長ルーチンは一般に493で示され、タスク49
4乃至498を含むフォアグラウンド・ルーチンであ
る。最初にタスク490で、バッファへの読出しルーチ
ン489が、延期ファイルの次の8Kを読出し、それを
カレント・バッファである他のバッファに書込む。バッ
ファへの読出しルーチン489が、延期ファイルから次
の8Kを読出し、それをカレント・バッファに書込む
間、伸長ルーチン493はタスク494で、タスク48
6により充填されたバッファを読出し、圧縮データを伸
長し、伸長データをシステム・メモリに書込む。伸長ル
ーチン493がバッファ内の全てのデータを伸長する
と、次にタスク496で、システム・メモリ全体が既に
伸長されたかどうかを判断する。
【0297】IDE制御装置86は、データをハード・
ドライブ31から超高速に読出すことができない。結果
として、伸長ルーチン493は常に、バッファへの読出
しルーチン489が、ハード・ドライブ31からカレン
ト・バッファへのデータの読出しを終了する以前に、ハ
ード・ドライブ31から現在読出されていない方の8K
バッファの伸長を終了する。従って、伸長ルーチン49
3は、バッファへの読出しルーチン489が、ハード・
ドライブ31からのデータの読出しを終了するのを待機
しなければならない。伸長ルーチン493が全てのシス
テム・メモリの伸長及び書込みを終了していないと、伸
長ルーチン493はタスク498で、バッファへの読出
しルーチン489を待機する。伸長ルーチン493及び
バッファへの読出しルーチン489は、フラグのセット
を介して通信する。バッファへの読出しルーチン489
が、延期ファイルからカレント・バッファへの読出しを
終了すると、ルーチン489は次にタスク490でバッ
ファ・フラグを切り替え、それにより伸長ルーチン49
3に、延期ファイルから読出されたばかりのバッファ内
のデータの伸長を開始してよいことを知らせる。バッフ
ァへの読出しルーチン489は、次にタスク492で、
延期ファイルから読出される8Kブロックがまだ残って
いるかどうかを判断する。残っていない場合、バッファ
への読出しルーチン489はタスク502で、延期ファ
イルから残りのデータを読出し、それをカレント・バッ
ファに書込む。バッファへの読出しルーチン489は次
にバックグラウンド走行を停止し、実際上、タスク50
0で、伸長ルーチンが最後のメモリの伸長を終了するの
を待機する。
【0298】暫くして、伸長ルーチン493はバッファ
・フラグを調査することにより、バッファがシステム・
メモリへの伸長の準備を終えたと判断する。すなわち、
伸長ルーチン493はタスク498で、バッファへの読
出しルーチン489がカレント・バッファの処理を終了
するのを待機し、その終了時にタスク494で伸長ルー
プを継続する。
【0299】伸長ルーチン493が全てのシステム・メ
モリの伸長を終了すると、実行されている唯一のバック
グラウンド・ルーチンは、タスク1020に関連して述
べられた割込み駆動型モデム復元ルーチンだけであり、
メイン・プログラムはタスク504に継続する。
【0300】次にタスク504及び506で、それぞれ
ビデオ制御装置56及びIDE制御装置86が復元され
る。これはセグメントE000Hデータ構造から2つの
各装置内のレジスタに値を書込むことにより達成され
る。タスク504は、チェックポイントが生成されてい
る場合に、延期ルーチンがジャンプするポイントでもあ
る(タスク1024参照)。
【0301】次にタスク1022で、再開ルーチンは、
タスク1020に関連して述べられた割込み駆動型モデ
ム復元ルーチンが終了したか否かをテストする。終了し
ていない場合には、このルーチンが終了するのを待機す
る。
【0302】タスク508に示されるように、割込み駆
動型モデム状態復元ルーチンが終了すると、CPUキャ
ッシュ41及びシステム・キャッシュ60がイネーブル
される。これはCPU40及びキャッシュ制御装置62
のそれぞれに、適切な値を書込むことにより達成され
る。次に再開ルーチンはタスク510乃至514におい
て、タイマ制御装置102、8042キーボード・イン
タフェース・マイクロプロセッサ104、及び8259
割込み制御装置92の状態を復元する。これはセグメン
トE000Hデータ構造から、それぞれの装置内のレジ
スタに値を書込むことにより達成される。
【0303】次にタスク484で、RS232 UAR
T94が復元される。これはセグメントE000Hデー
タ構造から、それぞれのUARTのレジスタに値を書込
むことにより達成される。
【0304】次にタスク516で、再開ルーチンは、B
IOSデータ領域及びベクトル・テーブルのスワップ・
ルーチンを呼び出す。このルーチンが呼ばれる以前に
は、既知のBIOSデータ領域及びベクトル・テーブル
は、セグメント0000Hにおいてアクティブであり、
延期ファイルから読出されたBIOSデータ領域及びベ
クトル・テーブルは、セグメントE000Hデータ構造
において非アクティブである。スワップの後、既知のB
IOSデータ領域及びベクトル・テーブルが、セグメン
トE000Hにおいて非アクティブとなり、延期ルーチ
ンにより保管されたBIOSデータ領域及びベクトル・
テーブルが、セグメント0000Hにおいてアクティブ
となる。
【0305】最後に、再開ルーチンはタスク518で、
CPU40の状態をその延期時の状態に復元するCPU
復元ルーチンにジャンプする。CPU復元ルーチンは、
図39乃至図42に関連して詳述される。CPU復元ル
ーチンは、結局実行制御をAPMに戻す役目をする。
【0306】最終的に、CPU40は復帰命令を実行
し、システムをAPMに復帰させる。システムはそれに
より、あたかも延期されなかったかのようにコードの実
行を継続する。全ての現実的な目的のために、システム
は延期/再開プロシジャにより影響されない。
【0307】図35乃至図38を参照すると、CPU状
態保管ルーチンのフローチャートが示される。延期ルー
チンは、CPU状態保管ルーチンのタスク600にジャ
ンプする。ここでAPMがセグメントE000H及びF
000Hをイネーブルにしており、この領域からこれら
のルーチンが読出され、書込まれて実行される点に注意
されたい。更に、タスク600で、EFLAGS及び8つの汎
用レジスタがAPMにより保管される。CPU状態保管
ルーチンは最初にタスク604で、任意のDMAが終了
するのを待機し、このルーチンがマウス・パケット伝送
の間に実行されることを保証するために、マウス13デ
ータ・パケットに同期する。次のステップはDMAを終
了させ、マウス・パケットに同期することを可能にす
る。(1)割込みを許可し、(2)任意のDMAが終了
するのに7ミリ秒待機し、(3)割込みを禁止し、
(4)マウス・パケット境界のために5ミリ秒待機し、
(5)割込みを許可し、(6)マウス・パケットの到来
のために更に5ミリ秒待機し、(7)割込みを禁止す
る。これらのステップの後、コードは無事にマウス・パ
ケット間で実行され得る。
【0308】次にタスク606で、アドレス・ライン2
0(I/Oポート92H)の状態がスタックにプッシュ
(待避)される。
【0309】実行コードのフローは、タスク1030
で、CPU40がSMIを有する"S"パーツであるか否
かに依存して分岐する。Sパーツである場合、CPU4
0はタスク1032で、マイクロコントローラU2にS
MIを逆にCPU40に生成するように指令する。SM
Iに応答して、CPU40内のマイクロコードがタスク
1034で、CPU40の状態をセグメントE000H
データ構造内のE000:FE00Hに保管する。その
後、CPU40はタスク1036で浮動小数点コプロセ
ッサ(FPU)の状態を保管し、タスク1038で延期
ルーチン(図19乃至図25)を呼び出す。別途述べた
ように、延期ルーチンはタスク1040で復帰し、更に
タスク1040で浮動小数点コプロセッサの状態を復元
する。その後タスク1042で、RSM(再開)命令が
CPU状態を復元し、タスク732(図42)に分岐す
る。
【0310】一方、CPU40がSMIを有さない場
合、CPU状態は図35乃至図38の残りのコードによ
り保管されなければならず、タスク608で演算コプロ
セッサ44の状態がスタックにプッシュされる。次にタ
スク610で、CPUが32ビット・モードまたは16
ビット・モードのいずれにより実行されるかを示すフラ
グが、それぞれに対応してセットまたはクリアされる。
【0311】実行コードのフローは、次にタスク612
で、CPU40がプロテクト・モードで実行されている
か否かに依存して分岐する。CPU40がプロテクト・
モードで実行されていない場合、CPU40はリアル・
モードで実行されているはずであり、レジスタは非常に
直接的に保管され得る。最初にタスク614で、マシン
・ステータス・ワード及びCR3の値が、セグメントE
000Hデータ構造に書込まれる。更にタスク614で
は、0がセグメントE000Hデータ構造内のTR及び
LDTRに対応する領域に書込まれる。なぜなら、TR
及びLDTRはリアル・モードでは0であるからであ
る。
【0312】コードは次にタスク616で、共通コード
・パスと併合し、GDTR及びLDTRに記憶される値
がセグメントE000Hデータ構造に書込まれる。次に
実行コードのフローは、タスク618で、CPU40が
仮想8086モードで実行されているか否かに依存して
分岐する。CPU40が仮想8086モードで実行され
ていない場合、コードは共通パスに沿ってタスク620
へと続き、ここでデバッグ・レジスタDR7、DR6、
DR3、DR2、DR1及びDR0が、スタック上にプ
ッシュされる。これらのレジスタはデバッガ及び他のル
ーチンにより使用されている。次にタスク622で、D
S、ES、FS、及びGSがスタック上にプッシュされ
る。次にタスク624で、CS、SS、及びESPの値
が、セグメントE000Hデータ構造に書込まれる。
【0313】この時点では、セグメントE000Hデー
タ構造に書込まれるべき全ての値が書込まれ、タスク6
26でシャドーRAMセグメントE000H及びF00
0Hが、読出し専用に戻される。次にタスク628で、
キャッシュ書戻し及び無効化キャッシュ・コマンドによ
り、CPUキャッシュ41がフラッシュされる。
【0314】最後にタスク630で、固有のシャット・
ダウン・フラグがCMOS不揮発メモリ96内にセット
される。最終的にタスク632で、CPU状態保管ルー
チンは、実際上、延期ルーチンに"復帰"する。"復帰"は
実際にはリセットに続くコードの分岐である。CPU4
0は、リセット・ベクトルにより指し示されるコードに
ジャンプすることによりリセットされる。CPU40の
リセットは、CPU40をリアル・モードに強要し、全
ての装置及びメモリ位置が保護障害の心配無しにアクセ
スされ得る。この時点以降、CPUの状態は保管され、
延期ルーチンはシステムの残りの状態を保管しなければ
ならない。
【0315】リセット・ベクトルにより指し示されるコ
ード内で、プログラム制御は、シャット・ダウン・フラ
グがCMOS NVRAM96内にセットされているか
否かに依存して分岐する。シャット・ダウン・フラグが
クリアされている場合、システムは正規通りにブートす
る。一方、シャット・ダウン・フラグがセットされてい
ると、コードは残りの延期ルーチンに分岐する。すなわ
ち、実行制御が図19乃至図25に示される延期ルーチ
ンのタスク253にジャンプし、システム10の延期が
終了する。従って、CPU状態保管ルーチンはタスク6
32で、効果的に延期ルーチンに復帰する。
【0316】再度タスク612を参照し、CPU40が
プロテクト・モードの場合、コードはタスク634で、
CPUが仮想8086モードか否かに依存して分岐す
る。CPUが仮想8086モードでない場合、コードは
再度タスク636で、現特権レベルが0であるか否かに
依存して分岐する。現特権レベルが0以外の場合、適正
な特権を有さないルーチンがCPU状態保管ルーチンを
実行していることになり、致命的延期エラー・ルーチン
(タスク652で開始、図38参照)が呼ばれる。致命
的延期エラー・ルーチンについては後述される。プログ
ラム制御が致命的延期エラー・ルーチンから復帰する
と、CPU40はCPU状態保管ルーチンが呼ばれたと
き以前の状態に復帰されなければならず、プログラム実
行は図39乃至図42のタスク794にジャンプし、C
PUの部分的復元を実行する。CPU内でほとんど変更
が生じていないために、部分的復元だけが必要とされ
る。
【0317】タスク636を再度参照し、呼び出しコー
ドが適正な特権レベルを有する場合には、タスク642
で保管が継続し、CR0、CR3、TR及びLDTRの
値がセグメントE000Hデータ構造に保管される。次
にこのコード・パスはタスク616で共通コード・パス
と併合し、ここで上述のように、GDTR及びIDTR
の値がセグメントE000Hデータ構造に保管される。
ここからコードは、上述のタスク618乃至632に沿
って実行され、最終的に残りの延期ルーチン・コード
に"復帰"する(リセットに続き分岐する)。
【0318】再度タスク634を参照し、CPU40が
仮想8086モードの場合、実行はタスク644へと続
き、マシン・ステータス・ワードの値(CR0の下位1
6ビット)がセグメントE000Hデータ構造に保管さ
れ、セグメントE000Hデータ構造内のフラグがセッ
トされ、CPU40が仮想8086モードであることを
示す。このコードは646及び648を介してタスク6
16で共通コードと併合される。タスク618で、CP
U40が仮想8086モードの場合、制御はタスク65
0に分岐し、DS、ES、FS及びGSの値がセグメン
トE000Hデータ構造に保管される。このコードはタ
スク624で共通コードと併合される。ここからコード
は上述のように、タスク624乃至632に沿って実行
され、最終的に残りの延期ルーチン・コードに"復帰"す
る(リセットに続き分岐する)。
【0319】致命的延期エラー・ルーチンが、図38に
おいてタスク652乃至664により示される。このル
ーチンは、不正の特権レベルを有するコードがCPU状
態を保管しようとするとき、タスク638で呼ばれる。
最初にタスク654で、フェールセーフ・タイマがリセ
ットされる。次にタスク656で、スピーカが多数回可
聴周波数のビープを発生する(例えば886Hz、0.
25秒間のビープをビープ間隔1/6秒で3回発生)。
3回のビープがユーザに、試行された延期が実行されな
かったことを警報する。ビープの後、タスク658でフ
ェールセーフ・タイマが再度リセットされ、フェールセ
ーフ・タイマが満了して電源装置17を遮断するまで
に、一貫した15秒乃至18秒を提供する。
【0320】次に、致命的延期エラー・ルーチンは、タ
スク660及び662で、スイッチ21がユーザにより
押下されたか、すなわちユーザが延期の打切りを希望し
ているか否かを繰り返しチェックする。スイッチはCP
U40がマイクロコントローラU2に閉鎖事象が発生し
たかどうかを問い合わすことにより、その閉鎖をチェッ
クされる。ユーザがボタン21を押下した場合、実行制
御は上述のタスク640に戻る。ユーザが15秒乃至1
8秒以内にボタン21を押下しないと、フェールセーフ
・タイマが満了し、電源装置17がマイクロコントロー
ラU2によりオフされ、明らかなように、システム電圧
が許容範囲から落ちるので、CPU40によるコードの
全ての実行が停止する。
【0321】図39乃至図42を参照すると、CPU復
元ルーチンのフローチャートが示され、タスク700で
開始する。このルーチンは、残りのハードウェア及びメ
モリが延期以前のそれらの状態に復元された後に、再開
ルーチンにより呼び出される。最初にタスク702で、
セグメントE000Hがまだ読出し/書込み可能でない
場合、それを読出し/書込み可能にするべきである。
【0322】次にタスク704で、実行コードのフロー
は、CPU40がその延期時点において、仮想8086
モードで実行されていたか否かに依存して分岐する。シ
ステム10が延期されたときに、CPU40が仮想80
86モードで実行されていた場合、仮想8086CPU
復元に固有のタスク706乃至728が実行される。次
にコードはタスク730乃至748の共通パスに併合す
る。
【0323】CPU状態が保管されるときに、CPU4
0が仮想8086モードであった場合、CR3、LDT
R及びTRは、これらの値をセグメントE000Hデー
タ構造に保管するために、CPU状態保管ルーチンによ
りアクセスされることができない。従って、CR3、L
DTR及びTRが、それぞれタスク706、708及び
710で予測されなければならない。一般に、これらは
システムRAM53を通じて、CR3、LDTR及びT
Rが指し示す構造を探索することにより予測される。例
えば、GDT内でLDTエントリを見い出すことは、L
DTRの決定を可能にする。
【0324】CR3はタスク706で予測される。CR
3は、ページ・ディレクトリのページ・フレーム・アド
レスを保持するページ・ディレクトリ・ベース・レジス
タ(PDBR)、ページ・レベル・キャッシュ不能(P
CD)ビット、及びページ・レベル書込みスルー(PW
T)ビットを保持する。PDBRの予測は、ページ・デ
ィレクトリがシステムRAM53内の4K境界から直接
開始しなければならない事実、及びCPU状態保管ルー
チンによりセグメントE000Hデータ構造に保管され
たIDTR及びGDTRの値を知り、BIOSコードが
セグメントF000Hから実行されていると仮定するこ
とにより、達成される。この仮定は合理的である。BI
OSコードが高速化のために、既にシャドーRAM内に
シャドーイングされているからである。オペレーティン
グ・システムがBIOSコードを異なる領域にコピーし
た場合、CR3の予測は失敗する。
【0325】上述の認識及び仮定にもとづき、物理メモ
リのあらゆる4Kページが、BIOSコード・セグメン
トに対応するページ変換テーブルの存在を突き止めるた
めに、テストされる。すなわち、ページ内のオフセット
03C0Hは、値000F0XXX、000F1XX
X、000F2XXX、...、000FEXXXを含
む。そのページが突き止められると、前記突き止められ
たページ・テーブルの物理アドレスに対応する第1エン
トリを有するページ・ディレクトリを求めて、システム
RAM53が探索される。ページ・ディレクトリの物理
アドレスは、PDBRの値の良き"推測(guess)"であ
る。
【0326】次に、PDBRがGDTR及びIDTRの
アドレスを正しく変換することを保証することにより、
仮定のPDBRが検証される。すなわち、PDBRはG
DTRのリニア・アドレスを変換するために使用され、
GDTの第1エントリがヌルであることが検証される
(GDTの最初の8バイトは、任意のCPUモードにお
いて常に00Hである)。返却される物理アドレスが、
物理メモリの範囲内にあることが検証される。リニア−
物理変換を達成するために、CPU変換方法を模倣する
サブルーチンが使用される。すなわち、変換アドレスが
ESIに戻され、物理メモリ内に物理ページが存在すれ
ば、キャリー・フラグCFがクリアされ、物理メモリ内
に物理ページが存在しないと、CFがセットされる。こ
の変換ルーチンにより、GDTの第1バイトがメモリ5
3から読出される。GDTの第1エントリがヌルの場
合、仮定のPDBRはその1次テストを合格し、従って
再度テストされる。PDBRは次に、変換ルーチンを用
いて、IDTを見い出すIDTRを変換するために使用
される。次に、返却される物理アドレスが、物理メモリ
の範囲内にあることが検証される。IDTの最初の位置
が物理メモリ内に存在する場合、PDBRはその2次テ
ストに合格する。
【0327】仮定のPDBRが正しくGDTR及びID
TRに変換されると、その値がPDBRであると仮定さ
れ、セグメントE000Hデータ構造内のCR3領域に
書込まれる。一方、仮定のCR3がいずれかのテストを
合格しない場合、ルーチンは再度開始し、有効なCR3
を導出し得る別のBIOSコード・セグメント・ページ
変換テーブルを求めて、システム・メモリを探索する。
【0328】PCD及びPWTは、正規のプレーナ・オ
ペレーションでは、常に00Hに固定されるものと仮定
される。これらの値は0にセットされ、セグメントE0
00Hデータ構造内のCR3領域に、PDBRと一緒に
書込まれる。
【0329】CR3が予測されると、次にタスク708
でLDTRが予測される。LDTRはCR3が予測され
たならば、LDTがGDT内のどこかに存在すること、
及びLDTがメモリ内に存在しなければならないことか
ら、予測され得る。LDTRを予測するために、存在が
記されるLDTを求めてGDTが探索される。物理メモ
リ内に存在し(タスク706に関連して上述された変換
ルーチンを用いてテストされる)、存在が記される第1
のLDTは、LDTRが指し示すテーブルであると仮定
される。そのテーブルの開始の物理アドレスが、セグメ
ントE000Hデータ構造内のLDTR領域に保管され
る。
【0330】LDTRを予測する上述の方法は、たとえ
OS/2下で複数のLDTがその存在を記され、物理メ
モリ内に存在し得るとしても、十分に信頼性のあるもの
と考えられる。EMM386は共通の仮想8086モー
ド・ルーチンであり、従って、表面上は問題を生じ得る
かも知れない。しかしながら、EMM386におけるC
R3及びLDTRは、EMM386が1つのCR3及び
1つのLDTRを有するだけなので、容易に予測するこ
とができる。
【0331】CR3及びLDTRが予測されると、タス
ク710でTRが予測される。本来、GDT及びLDT
内の各タスク選択子エントリは、ビジー・ビットがセッ
トされているタスク状態選択子として探索される。各エ
ントリのタイプ・フィールドがテストされ、それがビジ
ーの80286タスク状態選択子(TSS)か、それと
もビジーの80486タスク状態選択子かがチェックさ
れる。ビジーの286TSSまたはビジーの486TS
Sのいずれかを有する第1エントリは、TRが指し示す
アドレスであると仮定される。ビジーの286TSSま
たは486TSSを有するエントリの物理アドレスは、
セグメントE000Hデータ構造内のTR領域に保管さ
れる。ビジーの286TSSまたは486TSSを有す
るエントリが存在しない場合には、0がセグメントE0
00Hデータ構造内のTR領域に保管される。
【0332】CR3、LDTR及びTRが予測される
と、コードはタスク712へと継続する。タスク712
で、TRが有効なTSSを指し示すと、TRにより指し
示されるTSS内のビジー・ビットが、タスク714で
クリアされる。いずれの場合も、コードは次にタスク7
16に移行し、DS、ES、FS及びGSに、GDTに
おいて有効な選択子がロードされる。タスク718で、
CR3及びCR0に、セグメントE000Hデータ構造
から値がロードされる。次にタスク720でページング
が許可され、リニア・アドレスが物理アドレスに等しい
領域だけが、セグメントE000H及びF000H内の
領域となる。次にタスク722で、IDTR、GDT
R、LDTR及びTRに、セグメントE000Hデータ
構造に記憶されている値がロードされる。
【0333】最終的に、タスク724及び726で、セ
グメントE000Hデータ構造からのGS、FS、D
S、ES、SS、ESP、EFLAGS(VMビットのセット
後)、及びCSに対応する値を、スタックにプッシュす
ることにより、仮想8086割込みスタックが生成され
る。またタスク726で、タスク730のコードに対応
する復帰アドレスが、スタックにプッシュされる。最後
に、IRETD命令が実行され、CPU40を仮想80
86モードに戻し、実行をタスク730に対応するコー
ドに移す。
【0334】タスク730は共通スレッドを開始し、こ
れは図39乃至図42の様々なスレッドにより使用され
る。タスク730において、コプロセッサ44が、セグ
メントE000Hデータ構造に保管された値から復元さ
れる。次にタスク732で、アドレス・ライン20(I
/Oポート92H)の状態が、スタックからポップされ
る(取り出される)。タスク732はまた、SMIベー
スのCPU状態保管ルーチンがジャンプするポイントで
もある(タスク1046参照)。次にタスク734で、
シャドーRAMセグメントE000Hが、再度読出し専
用にされる。タスク736では、図7乃至図9、及び図
52乃至図55に関連して述べたように、フェールセー
フ・タイマを再始動することにより、APMがハードウ
ェアに接続される。次にタスク738で、シャドーRA
MセグメントE000H及びF000Hが読出し専用に
される。最後にタスク740で、CPU状態復元ルーチ
ンが、正常な再開が発生したことを示すフラグをセット
する。タスク742、744及び746は、CPU状態
復元ルーチンにより実行されず、単に延期事象により中
断されたコードに復帰する以前のある時点において、8
つの汎用レジスタがスタックからポップされ、マスク可
能割込みが許可され(但しコードが中断された時点でそ
れらが許可されている場合)、フラグがスタックからポ
ップされることを示すために使用される。最後に、CP
U状態復元ルーチンがスーパバイザ・ルーチンに復帰
し、スーパバイザ・ルーチンが制御をAPMに戻し、A
PMがあらゆる無効の(stale)システム値を更新し、
制御を中断されたコードに戻す。
【0335】タスク704を再度参照し、CPU40が
その中断時に仮想8086モードでなかった場合、コー
ドはタスク750乃至792に沿って実行され、その後
コードは共通スレッド、すなわちタスク730乃至74
8に併合される。タスク750で、セグメントE000
Hデータ構造内のTR値が、TRが有効TSSを指し示
すことを示す場合、タスク752でそのTSS内のビジ
ー・ビットがクリアされる。いずれの場合も、次にタス
ク754で、GDTR及びCR0にセグメントE000
Hデータ構造から値がロードされる。
【0336】次にタスク756乃至764で、ダミー・
ページ・ディレクトリ・テーブル及びページ変換テーブ
ルが、セグメントE000Hにロードされる。最初にタ
スク756で、シャドーRAMセグメントE000Hが
読出し/書込み可能に設定される。第2にタスク758
で、新たなページ・ディレクトリ・テーブルがアドレス
E000Hに生成される。第3にタスク760で、その
新たなページ・ディレクトリ・テーブル内の第1エント
リが、C100Hを指し示すように変更される。第4に
タスク762で、アドレスE000H乃至EFFFHが
存在し、このアドレス範囲においてリニア・アドレスが
物理アドレスに等しいように、新たなページ変換テーブ
ルがC100Hに生成される。最後にタスク764で、
CR3内のページ・ディレクトリ・ベース・レジスタに
E000Hがロードされ、E000H内の新たなダミー
・ページ・ディレクトリ及びページ変換テーブルによ
り、アドレス変換が実行される。タスク754でCR0
がロードされるとき、ページングが再活動化される(適
応可能な場合)。
【0337】次にタスク766で、シャドーRAMセグ
メントE000H及びF000Hが読出し/書込み可能
に設定される。次にタスク768で、CPU40がその
延期時点において16ビット・コードで実行されていた
場合、それは16ビット・モードであって、次にタスク
770で、16ビット・コード・パスを指し示すオフセ
ットがセグメントE000Hデータ構造に保管される。
一方、CPU40が16ビット・モードでなかった場合
には、それは32ビット・モードであって、次にタスク
772で、16ビット・オフセットの代わりに、32ビ
ット・コード・パスを指し示すオフセットがセグメント
E000Hデータ構造に保管される。いずれの場合に
も、これらのコード・パスは並列であり、一方が16ビ
ット・オペランドを使用するのに対して、他方は32ビ
ット・オペランドを使用すると言う点においてのみ異な
る。タスク770及び772は、単にオフセットをいず
れかの並列パスにセット・アップするだけである。パス
の一方(オフセットに対応する)が、下記のタスク78
2に入力される。
【0338】次にタスク774において、セグメントE
000Hデータ構造からのCR3値がEDXにロードさ
れ、セグメントE000Hデータ構造からのSS値がE
CXにロードされ、セグメントE000Hデータ構造か
らのESP値がEBPにロードされ、セグメントE00
0Hデータ構造からのTR値がESIの上位半分にロー
ドされ、セグメントE000Hデータ構造からのLDT
R値がESIの下位半分(SI)にロードされる。これ
らの値は後述されるそれらの適正な位置にシフトされ
る。次にタスク776で、GDTR、LDTR及びCR
0に、セグメントE000Hデータ構造からそれらの値
がロードされる。タスク778では、LDTRにSIに
記憶されるLDTR値がロードされる。次にコードは、
タスク770または772のいずれかに配置されるオフ
セットに遠方ジャンプ(far jump)する。この遠方ジャ
ンプは、オペコードを直接ソース・コード内に配置し、
タスク770または772からのオフセットを使用する
ことにより、コード化される。コードは次にタスク78
2において、16ビット・オペコード・パスまたは32
ビット・オペコード・パスのいずれかにおいて、継続さ
れる。
【0339】次にタスク784で、CR3にEDXに記
憶されるCR3値がロードされ、SSにCXに記憶され
るSS値がロードされ、ESPにEBPに記憶されるE
SP値がロードされる。次にタスク786で、GS、F
S、ES、及びDSが、スタックからポップされる。次
にタスク788で、中断されたCPU40がコードをプ
ロテクト・モードで実行していた場合、タスク790で
TRにESIの上位半分に記憶されるTR値がロードさ
れる。いずれの場合も、コードはタスク792に継続
し、デバッグ・レジスタDR0、DR1、DR2、DR
3、DR6及びDR7がスタックからポップされる。
【0340】この時点で、コード・パスは上述した共通
コード・パス、すなわちタスク730乃至748に併合
される。タスク794では、更にエラー回復ルーチン
が、CPU状態保管ルーチンのタスク640から共通コ
ード・パスに併合される。
【0341】図43乃至図45を参照すると、8259
状態保管ルーチンのフローチャートが示され、タスク8
00で開始する。8259の状態の保管は、タスク80
2で、リアル・タイム・クロック98により使用される
周期的割込み値を保管することから始まり、タスク80
4で、他の全ての読出し可能なレジスタをセグメントE
000Hデータ構造に保管する。コンピュータ・システ
ム10のアーキテクチャは、既知のように、特定の82
59読出し専用レジスタが固定値を有することを要求す
る。これらの値は既知であり、決定される必要はない。
獲得が困難な8259値には、8259基底アドレス、
8259スレーブ・アドレス、及び2つの8259がO
Sにより、保留のまたはサービス中の割込みを示すよう
にセットされているか否かが含まれる。
【0342】前記4つの項目は、図43乃至図45の残
りのコードにより確認される。タスク806で、キーボ
ード12割込み及びマウス13割込みだけをマスクしな
いで、8259がマスクされる。
【0343】次にタスク808で、物理メモリの下位1
KをセグメントE000Hデータ構造にコピーすること
により、割込みベクトル・テーブルが保管される。次に
タスク810で、新たな"ダミー"割込みベクトル・テー
ブルが物理メモリの下位1Kにロードされる。これは2
56のダミー割込みサービス・ルーチン(セグメントC
800Hから開始する)を指し示す256の固有ダミー
・ベクトルをロードすることにより達成される。次に、
タスク812で、256のダミー割込みサービス・ルー
チンがセグメントC800H内に生成される。
【0344】次にタスク814で、キーボード12割込
み及びマウス13割込みがディセーブルされる。タスク
816では、応答されなかったキーボード12割込み及
びマウス13割込みが応答されるようになる。
【0345】次にタスク818で、キーボード割込みが
生成され、タスク820で割込みがテストされる。ベー
ス8259が保留にセットされているか、それともサー
ビス中にセットされているかがテストされ、この値がセ
グメントE000Hデータ構造に書込まれる。タスク8
22では、コードは割込みがサービスされるのを待機す
る。そしてタスク824で、ダミー・サービス・ルーチ
ンの1つを呼び出すことにより、割込みがサービスされ
る。ダミー・サービス・ルーチンの呼び出しは8259
基底アドレスを決定し、8259が保留であったか、サ
ービス・モードであったかを判断する。基底アドレス及
びモードがセグメントE000Hデータ構造に保管され
る。
【0346】類似のプロシジャがスレーブ8259につ
いて、タスク826、828、830及び832で実行
される。
【0347】タスク834では、割込みベクトル・テー
ブルが、E000Hデータ構造から物理メモリの下位1
Kにコピーされて、復元される。次にタスク836で、
セグメントE000Hが再度読出し専用にされ、全ての
割込みが復帰の準備のためにタスク838でマスクさ
れ、タスク840で呼び出しプログラムに復帰する。
【0348】図46乃至図49を参照すると、延期ファ
イルを動的に割当てるためのルーチンが示される。タス
ク1012(図29)に関連して示したように、FAT
内に割当てられる延期ファイルは、延期及び再開の間の
それぞれディスクへの迅速な書込み及びそこからの読出
しを可能にするために、連続セクタであるべきである。
また、当業者には明らかなように、延期ファイルはシス
テム状態全体の圧縮内容を記憶するように、十分大きく
なければならない。
【0349】このためにタスク1050で、延期ファイ
ルを動的に割当てるルーチンが開始する。このルーチン
は、システムが再開ルーチンを実行すること無くブート
する度にOSにより実行され、メモリがシステムに追加
された後に実行されるべきである。図46乃至図49に
示される割当てルーチンは、最初にタスク1052で、
CMOS NVRAM96内のフラグをチェックするこ
とにより、パワー管理回路が存在するか否かをテストす
る。パワー管理ハードウェア106が存在しない場合、
プログラムはタスク1054で脱出する。パワー管理ハ
ードウェア106が存在すると、ルーチンは次にタスク
1056で、再開が保留か否かをチェックする。保留の
場合、プログラムはタスク1058で脱出する。
【0350】再開が保留でないと、次にタスク1580
で、システムは延期ファイル生成フラグをチェックする
ことにより、新たな延期ファイルが生成される必要があ
るか否かを判断する。このフラグがセットされている
と、タスク1582で新たな延期ファイル名が生成さ
れ、現延期ファイルとして選択される。
【0351】新たな延期ファイルが生成されない場合、
または新たな延期ファイル名が生成され、そのファイル
が現延期ファイルとして選択された後、ファイルが保管
ファイルとして、FAT内に割当てられなければならな
い。最初にタスク1064で、ファイルのサイズが決定
される。これはシステムRAM53のサイズ、ビデオ・
メモリ58のサイズ、大容量の揮発メモリを有する他の
装置のサイズ、及びCPU40などの様々な装置のレジ
スタの値を記憶するための64Kバイト領域を追加する
ことにより計算される。
【0352】要求保管ファイルのサイズが計算された
後、割当てルーチンは次にタスク1066で、FAT内
の保管ファイルを割当てようとする。ハード・ドライブ
31上に使用可能な十分な記憶空間が存在しない場合、
割当てルーチンはタスク1070で、ハード・ドライブ
31上の使用可能な空間のサイズを増加するためのルー
チンを呼び出す(但し増加が可能な場合)。
【0353】DOS呼び出しはファイル内の連続セクタ
を保証できない。従って、ハード・ドライブ31が保管
ファイルを記憶するための十分な空間を有する場合、割
当てルーチンは次にタスク1072で、空間が連続的か
どうかを判断する。保管ファイルが分割されている場合
(すなわち非連続的)、割当てルーチンはタスク107
4で、保管ファイルのための連続ファイルを提供するよ
うに、ハード・ドライブ31を分割解除するルーチンを
呼び出す(但し提供可能な場合)。
【0354】保管ファイルが分割されない場合には、タ
スク1076で、割当てルーチンが次にシグニチャ("
PS/1パワー管理")を保管ファイルの第1セクタに
書込み、延期ファイル生成フラグがクリアされる。
【0355】次にタスク1584で、システムはSOR
Mフラグをテストすることにより、生成されたばかりの
延期ファイルが、SORM延期ファイルであるべきか否
かを判断する。肯定の場合、SORMビットが特定の延
期ファイルのヘッダ内でセットされ、SORMフラグが
クリアされる。
【0356】次に割当てルーチンはタスク1078で、
この特定の延期ファイルのDOSハンドルを、BIOS
におけるその物理シリンダ、ヘッド、及びセクタに変換
し、これらの値をCMOS NVRAM96に書込む。
最後に、割当てルーチンはタスク1080で脱出する。
【0357】タスク1074で呼ばれた、ハード・ドラ
イブ31を分割解除するルーチンは、図48に示される
ようにタスク1082で開始され、タスク1094まで
継続する。最初にタスク1084で、ハード・ドライブ
31が、当業者には既知のハード・ドライブ圧縮ルーチ
ンの1つを用いて圧縮されているか否かがテストされ
る。
【0358】ハード・ドライブ31が圧縮されていない
場合、次にタスク1086で、ハード・ドライブ31全
体が、当業者には既知の分割解除ユーティリティを用い
て分割解除される。その後ルーチンはタスク1088で
復帰し、再度タスク1090で割当てルーチンの割当て
部分を開始する。
【0359】ハード・ドライブ31が圧縮されている
と、タスク1092でハード・ディスクの圧縮部分が最
小化される。その後タスク1094で、ハード・ドライ
ブ31の非圧縮部分が、当業者には既知の分割解除ユー
ティリティを用いて分割解除される。その後ルーチンは
タスク1088で復帰し、再度タスク1090で割当て
ルーチンの割当て部分を開始する。
【0360】タスク1070で呼ばれた、ハード・ドラ
イブ31上の使用可能空間を増加するルーチンは、図4
9に示されるようにタスク1100で開始され、タスク
11010まで継続する。最初にタスク1102で、ハ
ード・ドライブ31が、当業者には既知のハード・ドラ
イブ圧縮ルーチンの1つを用いて圧縮されているか否か
がテストされる。
【0361】ハード・ドライブ31が圧縮されていない
場合、ハード・ドライブ31は保管ファイルのために使
用可能な十分な空間を有しておらず、メッセージがタス
ク1104で表示され、ユーザに延期及び再開機構を使
用ためには、ユーザは追加のハード・ドライブ容量を追
加するか、ハード・ドライブ31からファイルを消去し
なければならないことを伝える。
【0362】タスク1102でハード・ドライブ31が
圧縮されていると、次にタスク1108で、ハード・ド
ライブ31の非圧縮部分のサイズが増加される(但し増
加が可能な場合)。その後、ルーチンはタスク1110
で復帰し、再度タスク1090で割当てルーチンの割当
て部分を開始する。
【0363】図50を参照すると、待機状態を脱出する
ためのルーチンが示され、タスク1120で開始する。
概念的には、システムは待機状態152を脱出すると
き、自身が正常動作状態150から待機状態152へ遷
移したときに生じた変化を逆に実行する。要するに、シ
ステムは待機状態を脱出するとき、ビデオ信号を復元
し、LED23を照明し、ハード・ドライブ31内のハ
ード・ディスクを回転し、システム・クロックを復元
し、APM CPUアイドル呼び出しを禁止し、APM
ドライバからのCPUアイドル呼び出しが、もはやCP
U40を停止しないようにし、システム10が待機状態
152であることを示すフラグをクリアする。
【0364】最初にルーチンはタスク1122で、シス
テムが待機状態152に入力したとき、チェックポイン
トが生成されたかどうかをテストする。生成された場
合、タスク1124でチェックポイント生成ビットがク
リアされ、チェックポイントがもはや有効でないことを
示す。この特定の態様では、システムが待機状態を脱出
するときチェックポイントは無効にされる。チェックポ
イント・データは、システムが待機状態152の間に故
障する場合にシステムを再開するためだけに使用され
る。なぜなら、ほとんどのシステムは、ハード・ドライ
ブ上の仮想スワップ・ファイルを使用し、チェックポイ
ント・データからの再開によりマシンが置かれる状態で
は、スワップ・ファイルが、チェックポイント・データ
として記憶されたシステム状態により期待されるファイ
ルと全く異なるからである。別の態様では、次のディス
ク・アクセスの後に、チェックポイント・データが無効
にされる。更に別の態様では、システムがチェックポイ
ント・データから再開された場合に、システム問題を生
じ得るファイルへのディスク・アクセスの後に、チェッ
クポイント・データが無効にされる。更に別の態様で
は、チェックポイント・データからの再開が、ハード・
ドライブ31上の一部のまたは全てのデータを喪失させ
得るとの条件の下で、チェックポイント・データが常時
ユーザにとって使用可能である。
【0365】その後、及びタスク1122でチェックポ
イントが生成されなかった場合、CPU40はタスク1
126でマイクロコントローラU2に、(i)ビデオ制
御装置56にビデオ信号の生成を開始させ、(ii)ク
ロック・シンセサイザ906に高い周波数(25MHz
または33MHz)のシステム・クロックを再開させ、
(iii)LED23を照明するように、指令する。次
にタスク1128で、CPU40は適切な値を固定ディ
スク制御装置86に書込み、ハード・ドライブ31内の
ハード・ディスクの回転を開始させる。次にタスク11
30で、CPU停止が発生しないように、APM CP
Uアイドル呼び出しが禁止される。最後にタスク113
2で、待機フラグがクリアされ、システム10が正常動
作状態150であることを示し、ルーチンはタスク11
40で呼び出しプログラムに復帰する。
【0366】図51を参照すると、待機状態に入力する
ためのルーチンが示され、タスク1140で開始する。
要するに、システムが待機状態152に入力するとき、
システムはビデオ信号をブランキングし、LED23を
点滅させ、ハード・ドライブ31内のハード・ディスク
を回転停止し、システム・クロックを低速化し、APM
ドライバからのCPUアイドル呼び出しがCPU40を
停止するように、APM CPUアイドル呼び出しを許
可し、システム10が待機状態152であることを示す
フラグをセットする。
【0367】最初にタスク1142で、チェックポイン
トが生成されるべきか否かがテストされる。生成される
べき場合、大部分の延期ルーチンがタスク1144で実
行され、従って、コンピュータ・システム10の状態が
ハード・ドライブ31上に記憶される。本態様では、シ
ステムが待機状態に入力するとき、チェックポイントが
生成される。別の態様では、図50に関連して述べられ
た注意の上で、チェックポイントが周期的に生成され、
システムを再開するために使用される。次にタスク11
46で、タスク1144で実行された部分的延期から回
復するように、再開ルーチンが十分に実行される。次に
タスク1148で、チェックポイント生成ビットがセッ
トされ、有効なチェックポイントが生成されたことを示
す。この態様では、チェックポイント・データは、シス
テムが待機状態152の間に故障する場合に限り、使用
されることを想起されたい。この場合、システムがブー
トするとき、システムは保管されたチェックポイントか
ら再開される。
【0368】理想的には、チェックポイントはシステム
にとって全く透過的であるべきである。チェックポイン
ト自体は、ハードウェア割込みが発生する場合、データ
損失を回避するために打ち切られるべきである。別の態
様では、正規の延期により、あらゆるハードウェア割込
みが無視される。
【0369】その後、及びタスク1142でチェックポ
イントが生成されるべきでなかった場合、タスク115
0でCPU40はマイクロコントローラU2に、(i)
ビデオ制御装置56にビデオ信号の生成を停止させ、
(ii)クロック・シンセサイザ906にシステム・ク
ロックを高い周波数(25MHzまたは33MHz)か
ら8MHzに落とさせ、(iii)LED23を点滅す
るように、指令する。次にタスク1152で、CPU4
0は適切な値を固定ディスク制御装置86に書込み、ハ
ード・ドライブ31内のハード・ディスクの回転を停止
させる。次にタスク1154で、AMPドライバからの
CPUアイドル呼び出しがCPU40を停止させるよう
に、APM CPUアイドル呼び出しが許可される。最
後にタスク1156で、待機フラグがセットされ、シス
テム10が待機状態152であることを示し、ルーチン
はタスク1158で呼び出しプログラムに復帰する。
【0370】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0371】(1)コンピュータ・システムの電力を管
理する方法であって、 a)第1の事前選択条件セットに応答して、第1の事前
選択時間間隔の後に不活動延期タイマを満了させるステ
ップと、 b)第2の事前選択条件セットに応答して、第2の事前
選択時間間隔の後に前記不活動延期タイマを満了させる
ステップと、 c)前記不活動延期タイマが満了するまで、前記コンピ
ュータ・システムを正常動作状態で動作させるステップ
と、 d)前記不活動延期タイマの満了に応答して、前記コン
ピュータ・システムを前記正常動作状態から脱出させ、
延期状態に遷移させるステップと、 e)前記コンピュータ・システムが前記正常動作状態の
場合、ユーザによる活動に応答して前記不活動延期タイ
マをリセットするステップと、を含む、方法。 (2)前記不活動延期タイマが前記第1の事前選択時間
間隔の後に満了するようにセットされている間に、ユー
ザによる活動に応答して、前記不活動延期タイマを前記
第2の事前選択時間間隔の後に満了させるステップを含
む、前記(1)記載の方法。 (3)少なくとも2つの電力管理状態、すなわちコンピ
ュータ・システムによりコードが正常に実行される正常
動作状態、及び延期状態を有するコンピュータ・システ
ムであって、前記コンピュータ・システムが前記正常動
作状態に有人操作式または無人操作式に入力するものに
おいて、 a)少なくとも1つの不活動延期タイマであって、前記
不活動延期タイマが、前記コンピュータ・システムが前
記有人操作式に前記正常動作モードに入力したことに応
答して、第1の不活動期間の満了を決定し、前記コンピ
ュータ・システムが前記無人操作式に前記正常動作モー
ドに入力したことに応答して、第2の不活動期間の満了
を決定する、前記不活動延期タイマと、 b)前記第1及び第2の不活動期間の一方の満了に応答
して、前記コンピュータ・システムが前記正常動作状態
から前記延期状態に遷移することを活動的に制御する制
御ユニットと、を含む、コンピュータ・システム。 (4)前記少なくとも1つの活動延期タイマが所定事象
に応答して、前記第2の不活動期間から前記第1の不活
動期間に切り替わる、前記(3)記載のコンピュータ・
システム。 (5)前記所定事象がユーザ活動を含む、前記(4)記
載のコンピュータ・システム。 (6)少なくとも2つの電力管理状態、すなわちコンピ
ュータ・システムによりコードが正常に実行される正常
動作状態、及び延期状態を有するコンピュータ・システ
ムであって、前記コンピュータ・システムが前記正常動
作状態に有人操作式または無人操作式に入力するものに
おいて、 a)前記コンピュータ・システムが前記有人操作式に前
記正常動作モードに入力したことに応答して、第1の不
活動期間の満了を決定する第1の不活動延期タイマと、 b)前記コンピュータ・システムが前記無人操作式に前
記正常動作モードに入力したことに応答して、第2の不
活動期間の満了を決定する第2の不活動延期タイマと、 c)前記第1及び第2の不活動期間の一方の満了に応答
して、前記コンピュータ・システムが前記正常動作状態
から前記延期状態に遷移することを活動的に制御する制
御ユニットと、を含む、コンピュータ・システム。 (7)少なくとも4つの電力管理状態、すなわちコンピ
ュータ・システムによりコードが正常に実行される正常
動作状態、待機状態、延期状態、及びオフ状態を有する
コンピュータ・システムであって、前記コンピュータ・
システムが前記正常動作状態に有人操作式または無人操
作式に入力するものにおいて、 a)少なくとも1つの不活動延期タイマであって、前記
不活動延期タイマが、前記コンピュータ・システムが前
記有人操作式に前記正常動作モードに入力したことに応
答して、第1の不活動期間の満了を決定し、前記コンピ
ュータ・システムが前記無人操作式に前記正常動作モー
ドに入力したことに応答して、第2の不活動期間の満了
を決定する、前記不活動延期タイマと、 b)前記第1及び第2の不活動期間の一方の満了に応答
して、前記コンピュータ・システムが前記正常動作状態
から前記延期状態に遷移することを活動的に制御する制
御ユニットと、を含む、コンピュータ・システム。 (8)a)第1の事前選択条件セットに応答して、第1
の事前選択時間間隔の後に不活動延期タイマを満了させ
る手段と、 b)第2の事前選択条件セットに応答して、第2の事前
選択時間間隔の後に前記不活動延期タイマを満了させる
手段と、 c)前記不活動延期タイマが満了するまで、前記コンピ
ュータ・システムを正常動作状態で動作させる手段と、 d)前記不活動延期タイマの満了に応答して、前記コン
ピュータ・システムを前記正常動作状態から脱出させ、
延期状態に遷移させる手段と、 e)前記コンピュータ・システムが前記正常動作状態の
場合、ユーザによる活動に応答して前記不活動延期タイ
マをリセットする手段と、を含む、コンピュータ・シス
テム。 (9)前記不活動延期タイマが前記第1の事前選択時間
間隔の後に満了するようにセットされている間に、ユー
ザによる活動に応答して、前記不活動延期タイマを前記
第2の事前選択時間間隔の後に満了させるステップを含
む、前記(8)記載のコンピュータ・システム。
【図面の簡単な説明】
【図1】本発明を実現するパーソナル・コンピュータの
斜視図である。
【図2】図1のパーソナル・コンピュータのシャシ、カ
バー、電気機械的直接アクセス記憶装置、及びプレーナ
・ボードなどの特定の要素の分解斜視図とそれらの関係
を示す図である。
【図3】図1及び図2のパーソナル・コンピュータの特
定のコンポーネントのブロック図である。
【図4】図1及び図2のパーソナル・コンピュータの特
定のコンポーネントのブロック図である。
【図5】正常、待機、延期及びオフの4つのシステム状
態を示す本発明のコンピュータ・システムの状態図であ
る。
【図6】電源装置の関連部分を示すブロック図である。
【図7】他の図面との様々なインタフェースを示す本発
明のパワー管理回路の電気図面である。
【図8】他の図面との様々なインタフェースを示す本発
明のパワー管理回路の電気図面である。
【図9】他の図面との様々なインタフェースを示す本発
明のパワー管理回路の電気図面である。
【図10】パワー管理回路と内部モデムとの接続を示す
電気図面である。
【図11】パワー管理回路のためのリセット回路内の様
々な信号を示す波形図である。
【図12】電源故障検出及び訂正回路の第2の実施例の
電気図面である。
【図13】本発明のパワー管理プロセッサにより維持さ
れるスイッチ状態の1つの状態図である。
【図14】本発明のパワー・アップ・ルーチンの一般的
なフローチャートを示す図である。
【図15】オペレーティング・システム内のAPMデバ
イス・ドライバによりほぼ毎秒ごとに呼び出されるスー
パバイザ・ルーチンの詳細のフローチャートを示す図で
ある。
【図16】オペレーティング・システム内のAPMデバ
イス・ドライバによりほぼ毎秒ごとに呼び出されるスー
パバイザ・ルーチンの詳細のフローチャートを示す図で
ある。
【図17】APM最終要求処理ルーチンの詳細のフロー
チャートを示す図である。
【図18】APM最終要求拒否ルーチンの詳細のフロー
チャートを示す図である。
【図19】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図20】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図21】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図22】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図23】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図24】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図25】本発明の延期ルーチンの詳細のフローチャー
トを示す図である。
【図26】本発明のブートアップ・ルーチンの詳細のフ
ローチャートを示す図である。
【図27】本発明のブートアップ・ルーチンの詳細のフ
ローチャートを示す図である。
【図28】本発明のブートアップ・ルーチンの詳細のフ
ローチャートを示す図である。
【図29】本発明のブートアップ・ルーチンの詳細のフ
ローチャートを示す図である。
【図30】本発明の再開ルーチンの詳細のフローチャー
トを示す図である。
【図31】本発明の再開ルーチンの詳細のフローチャー
トを示す図である。
【図32】本発明の再開ルーチンの詳細のフローチャー
トを示す図である。
【図33】本発明の再開ルーチンの詳細のフローチャー
トを示す図である。
【図34】本発明の再開ルーチンの詳細のフローチャー
トを示す図である。
【図35】本発明のCPU状態保管ルーチンの詳細のフ
ローチャートを示す図である。
【図36】本発明のCPU状態保管ルーチンの詳細のフ
ローチャートを示す図である。
【図37】本発明のCPU状態保管ルーチンの詳細のフ
ローチャートを示す図である。
【図38】本発明のCPU状態保管ルーチンの詳細のフ
ローチャートを示す図である。
【図39】本発明のCPU状態復元ルーチンの詳細のフ
ローチャートを示す図である。
【図40】本発明のCPU状態復元ルーチンの詳細のフ
ローチャートを示す図である。
【図41】本発明のCPU状態復元ルーチンの詳細のフ
ローチャートを示す図である。
【図42】本発明のCPU状態復元ルーチンの詳細のフ
ローチャートを示す図である。
【図43】本発明の8259状態保管ルーチンの詳細の
フローチャートを示す図である。
【図44】本発明の8259状態保管ルーチンの詳細の
フローチャートを示す図である。
【図45】本発明の8259状態保管ルーチンの詳細の
フローチャートを示す図である。
【図46】本発明のファイル割当て動的保管ルーチンの
詳細のフローチャートを示す図である。
【図47】本発明のファイル割当て動的保管ルーチンの
詳細のフローチャートを示す図である。
【図48】本発明のファイル割当て動的保管ルーチンの
詳細のフローチャートを示す図である。
【図49】本発明のファイル割当て動的保管ルーチンの
詳細のフローチャートを示す図である。
【図50】本発明の待機出口ルーチンの詳細のフローチ
ャートを示す図である。
【図51】本発明の待機入力ルーチンの詳細のフローチ
ャートを示す図である。
【図52】本発明のプロセッサ・パワー管理ルーチンの
詳細のフローチャートを示す図である。
【図53】本発明のプロセッサ・パワー管理ルーチンの
詳細のフローチャートを示す図である。
【図54】本発明のプロセッサ・パワー管理ルーチンの
詳細のフローチャートを示す図である。
【図55】本発明のプロセッサ・パワー管理ルーチンの
詳細のフローチャートを示す図である。
【図56】新たなセッションを開始するために使用され
る本発明のルーチンの詳細のフローチャートを示す図で
ある。
【図57】図56のルーチンにより表示される画面例を
示す図である。
【図58】時間データにもとづき電力を決定し節減する
本発明のルーチンの第2ステージの詳細のフローチャー
トを示す図である。
【図59】システムがどの延期ファイルから再開すべき
かを選択するために、ユーザにより使用される本発明の
多重延期/再開マネージャの例を示す図である。
【図60】時間データにもとづき電力を決定し節減する
本発明のルーチンの第1ステージの詳細のフローチャー
トを示す図である。
【符号の説明】
10 コンピュータ・システム 11 表示モニタ 12 キーボード 13 マウス 14 プリンタ(プロッタ) 15 カバー 16 装飾外部部材 17 電源装置 18 内部遮蔽部材 19 シャシ 20 多層プレーナ 21 電源ボタン(スイッチ) 22 ベース 23 パワー/フィードバックLED 24 フロント・パネル 25 背面パネル 26、28、29、30 ベイ 27 フロッピー・ディスク・ドライブ 31 ハード・ディスク・ドライブ 40 システム・プロセッサ 41 CPUキャッシュ 42 CPUローカル・バス 44 演算コプロセッサ 46 メモリ制御ユニット 48 メモリ制御装置 50 アドレス・マルチプレクサ 52 データ・バッファ 53、54 RAM 56 ビデオ制御装置 58 ビデオ・メモリ 60 システム・キャッシュ・メモリ 62 キャッシュ制御装置 64、68、74 バッファ 66 システム・バス 68 ラッチ・バッファ 70 タイミング・ユニット 71 DMAユニット 72 DMA制御装置 76 ISAバス 78 I/Oスロット 80 アービトレーション制御バス 82 中央アービタ 84 ディスケット・アダプタ 86 総合ドライブ・エレクトロニクス 88 ROM 90 プレーナI/Oバス 92 割込み装置 94 RS232アダプタ 96 不揮発CMOS RAM 98 CMOSリアル・タイム・クロック 100 パラレル・アダプタ 102 タイマ 104 キーボード制御装置 106 パワー管理回路 900 内部モデム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン・テイラー・パンコースト アメリカ合衆国27615、ノース・カロライ ナ州ローリー、ベレチェイス・ドライブ 1616 (72)発明者 ハーバート・スタンレイ・スティールマン アメリカ合衆国40432、ケンタッキー州ロ ーレンスバーグ、バーズタウン・ロード 1800

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムの電力を管理する
    方法であって、 a)第1の事前選択条件セットに応答して、第1の事前
    選択時間間隔の後に不活動延期タイマを満了させるステ
    ップと、 b)第2の事前選択条件セットに応答して、第2の事前
    選択時間間隔の後に前記不活動延期タイマを満了させる
    ステップと、 c)前記不活動延期タイマが満了するまで、前記コンピ
    ュータ・システムを正常動作状態で動作させるステップ
    と、 d)前記不活動延期タイマの満了に応答して、前記コン
    ピュータ・システムを前記正常動作状態から脱出させ、
    延期状態に遷移させるステップと、 e)前記コンピュータ・システムが前記正常動作状態の
    場合、ユーザによる活動に応答して前記不活動延期タイ
    マをリセットするステップと、 を含む、方法。
  2. 【請求項2】前記不活動延期タイマが前記第1の事前選
    択時間間隔の後に満了するようにセットされている間
    に、ユーザによる活動に応答して、前記不活動延期タイ
    マを前記第2の事前選択時間間隔の後に満了させるステ
    ップを含む、請求項1記載の方法。
  3. 【請求項3】少なくとも2つの電力管理状態、すなわち
    コンピュータ・システムによりコードが正常に実行され
    る正常動作状態、及び延期状態を有するコンピュータ・
    システムであって、前記コンピュータ・システムが前記
    正常動作状態に有人操作式または無人操作式に入力する
    ものにおいて、 a)少なくとも1つの不活動延期タイマであって、前記
    不活動延期タイマが、前記コンピュータ・システムが前
    記有人操作式に前記正常動作モードに入力したことに応
    答して、第1の不活動期間の満了を決定し、前記コンピ
    ュータ・システムが前記無人操作式に前記正常動作モー
    ドに入力したことに応答して、第2の不活動期間の満了
    を決定する、前記不活動延期タイマと、 b)前記第1及び第2の不活動期間の一方の満了に応答
    して、前記コンピュータ・システムが前記正常動作状態
    から前記延期状態に遷移することを活動的に制御する制
    御ユニットと、 を含む、コンピュータ・システム。
  4. 【請求項4】前記少なくとも1つの活動延期タイマが所
    定事象に応答して、前記第2の不活動期間から前記第1
    の不活動期間に切り替わる、請求項3記載のコンピュー
    タ・システム。
  5. 【請求項5】前記所定事象がユーザ活動を含む、請求項
    4記載のコンピュータ・システム。
  6. 【請求項6】少なくとも2つの電力管理状態、すなわち
    コンピュータ・システムによりコードが正常に実行され
    る正常動作状態、及び延期状態を有するコンピュータ・
    システムであって、前記コンピュータ・システムが前記
    正常動作状態に有人操作式または無人操作式に入力する
    ものにおいて、 a)前記コンピュータ・システムが前記有人操作式に前
    記正常動作モードに入力したことに応答して、第1の不
    活動期間の満了を決定する第1の不活動延期タイマと、 b)前記コンピュータ・システムが前記無人操作式に前
    記正常動作モードに入力したことに応答して、第2の不
    活動期間の満了を決定する第2の不活動延期タイマと、 c)前記第1及び第2の不活動期間の一方の満了に応答
    して、前記コンピュータ・システムが前記正常動作状態
    から前記延期状態に遷移することを活動的に制御する制
    御ユニットと、 を含む、コンピュータ・システム。
  7. 【請求項7】少なくとも4つの電力管理状態、すなわち
    コンピュータ・システムによりコードが正常に実行され
    る正常動作状態、待機状態、延期状態、及びオフ状態を
    有するコンピュータ・システムであって、前記コンピュ
    ータ・システムが前記正常動作状態に有人操作式または
    無人操作式に入力するものにおいて、 a)少なくとも1つの不活動延期タイマであって、前記
    不活動延期タイマが、前記コンピュータ・システムが前
    記有人操作式に前記正常動作モードに入力したことに応
    答して、第1の不活動期間の満了を決定し、前記コンピ
    ュータ・システムが前記無人操作式に前記正常動作モー
    ドに入力したことに応答して、第2の不活動期間の満了
    を決定する、前記不活動延期タイマと、 b)前記第1及び第2の不活動期間の一方の満了に応答
    して、前記コンピュータ・システムが前記正常動作状態
    から前記延期状態に遷移することを活動的に制御する制
    御ユニットと、 を含む、コンピュータ・システム。
  8. 【請求項8】a)第1の事前選択条件セットに応答し
    て、第1の事前選択時間間隔の後に不活動延期タイマを
    満了させる手段と、 b)第2の事前選択条件セットに応答して、第2の事前
    選択時間間隔の後に前記不活動延期タイマを満了させる
    手段と、 c)前記不活動延期タイマが満了するまで、前記コンピ
    ュータ・システムを正常動作状態で動作させる手段と、 d)前記不活動延期タイマの満了に応答して、前記コン
    ピュータ・システムを前記正常動作状態から脱出させ、
    延期状態に遷移させる手段と、 e)前記コンピュータ・システムが前記正常動作状態の
    場合、ユーザによる活動に応答して前記不活動延期タイ
    マをリセットする手段と、 を含む、コンピュータ・システム。
  9. 【請求項9】前記不活動延期タイマが前記第1の事前選
    択時間間隔の後に満了するようにセットされている間
    に、ユーザによる活動に応答して、前記不活動延期タイ
    マを前記第2の事前選択時間間隔の後に満了させるステ
    ップを含む、請求項8記載のコンピュータ・システム。
JP12756096A 1995-06-07 1996-05-22 コンピュータ・システム Expired - Fee Related JP3341970B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US477857 1995-06-07
US08/477,857 US5752044A (en) 1995-06-07 1995-06-07 Computer system having multi-level suspend timers to suspend from operation in attended and unattended modes

Publications (2)

Publication Number Publication Date
JPH096459A true JPH096459A (ja) 1997-01-10
JP3341970B2 JP3341970B2 (ja) 2002-11-05

Family

ID=23897629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12756096A Expired - Fee Related JP3341970B2 (ja) 1995-06-07 1996-05-22 コンピュータ・システム

Country Status (2)

Country Link
US (1) US5752044A (ja)
JP (1) JP3341970B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678834B1 (en) 1998-03-20 2004-01-13 International Business Machines Corporation Apparatus and method for a personal computer system providing non-distracting video power management

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100521252B1 (ko) * 1997-06-16 2006-01-12 삼성전자주식회사 화면출력상태 제어기능을 갖는 컴퓨터 시스템 및 그 제어방법
JP3943665B2 (ja) * 1997-09-01 2007-07-11 株式会社東芝 スリープ制御方法、およびイベント通知方法
US6401209B1 (en) * 1998-03-09 2002-06-04 Micron Technology, Inc. Method for automatically initiating a computer security and/or screen saver mode
US6367020B1 (en) * 1998-03-09 2002-04-02 Micron Technology, Inc. System for automatically initiating a computer security and/or screen saver mode
US6374145B1 (en) * 1998-12-14 2002-04-16 Mark Lignoul Proximity sensor for screen saver and password delay
US6457134B1 (en) * 1999-04-21 2002-09-24 Palm, Inc. Portable computer with differentiated time-out feature
US20030074590A1 (en) * 2001-10-12 2003-04-17 Fogle Steven L. Computer system with improved entry into powersave and lock modes and method of use therefor
US7181510B2 (en) * 2002-01-04 2007-02-20 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a secure embedded I/O processor for a remote server management controller
JP3777136B2 (ja) * 2002-04-01 2006-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、データのデッドコピー方法、プログラム、コンピュータ装置の稼動方法
KR100495657B1 (ko) * 2002-05-03 2005-06-16 삼성전자주식회사 복수의 통신 모드들을 갖는 집적 회로 장치 및 그것의동작 방법
US7219243B2 (en) * 2002-06-26 2007-05-15 Lg Electronics Inc. Home network power saving device and method for the same
TW591478B (en) 2002-11-12 2004-06-11 Mitac Technology Corp Apparatus and method of using personal computer to integrate functions of home electronics
US20040218351A1 (en) * 2002-11-12 2004-11-04 Mitac Technology Corp. Method and apparatus for integrating personal computer and electronic device functions
US7353413B2 (en) * 2003-08-18 2008-04-01 Intel Corporation Computer system power policy adjustment in response to an affirmative indication from a user
US7472186B2 (en) * 2004-09-09 2008-12-30 International Business Machines Corporation Method for using SNMP as an RPC mechanism for exporting the data structures of a remote library
FR2877784A1 (fr) * 2004-11-08 2006-05-12 Thomson Licensing Sa Appareil et dispositif a alimentation electrique et module d'alimentation en puissance electrique
US7559011B1 (en) * 2006-02-10 2009-07-07 Xilinx, Inc. Circuit having a programmable circuit and method of validating a bitstream loaded into a programmable device
US9288637B2 (en) * 2006-05-16 2016-03-15 Lear Corporation Mobile router network with valet mode function
US7898500B2 (en) * 2006-05-22 2011-03-01 Microsoft Corporation Auxiliary display within a primary display system
WO2008121113A1 (en) 2007-04-03 2008-10-09 Tte Technology, Inc. System and method toggling between system power modes based on motion detection
US8589563B2 (en) 2007-07-10 2013-11-19 Cisco Technology, Inc. System, method, and apparatus for maintaining call state information for real-time call sessions
US20100148708A1 (en) * 2008-12-11 2010-06-17 Jorgenson Joel A Voltage scaling of an electric motor load to reduce power consumption
US8464083B1 (en) 2010-06-20 2013-06-11 Google Inc. Exiting low-power state without requiring user authentication
JP5704904B2 (ja) * 2010-11-29 2015-04-22 キヤノン株式会社 データ処理装置、データ処理装置の制御方法及びプログラム
US10552267B2 (en) * 2016-09-15 2020-02-04 International Business Machines Corporation Microcheckpointing with service processor
US10795422B2 (en) 2018-07-24 2020-10-06 Motorola Solutions, Inc. Method and apparatus for mission critical standby of a portable communication drive
CN114020140B (zh) * 2020-02-12 2023-11-28 地平线(上海)人工智能技术有限公司 控制硬件模块的方法及装置、电子设备和存储介质
CN113467923A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 一种设备休眠方法及计算设备
US11550649B2 (en) * 2021-03-17 2023-01-10 Qualcomm Incorporated System-on-chip timer failure detection and recovery using independent redundant timers
CN115312115B (zh) * 2022-09-30 2022-12-13 芯天下技术股份有限公司 闪存芯片挂起功能的验证方法、装置、设备及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5977531A (ja) * 1982-10-27 1984-05-04 Hitachi Ltd リモ−トパワ−オンオフ方式
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US5142684A (en) * 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5021983B1 (en) * 1989-11-13 1996-05-28 Chips & Technologies Inc Suspend/resume apparatus and method for reducing power consumption in battery powered computers
US5355501A (en) * 1990-03-09 1994-10-11 Novell, Inc. Idle detection system
US5008829A (en) * 1990-06-14 1991-04-16 International Business Machines Corporation Personal computer power supply
US5193176A (en) * 1990-10-17 1993-03-09 Powercard Supply C.A. Computer work saving during power interruption
US5410711A (en) * 1991-02-14 1995-04-25 Dell Usa, L.P. Portable computer with BIOS-independent power management
US5504907A (en) * 1991-02-14 1996-04-02 Dell Usa, L.P. Power management system with adaptive control parameters for portable computer
US5283819A (en) * 1991-04-25 1994-02-01 Compuadd Corporation Computing and multimedia entertainment system
JPH07101376B2 (ja) * 1991-06-10 1995-11-01 松下電器産業株式会社 システム再起動装置
US5369771A (en) * 1991-12-23 1994-11-29 Dell U.S.A., L.P. Computer with transparent power-saving manipulation of CPU clock
US5410713A (en) * 1992-01-02 1995-04-25 Smith Corona/Acer Power-management system for a computer
US5300831A (en) * 1992-09-04 1994-04-05 Pham Dac C Logic macro and protocol for reduced power consumption during idle state

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678834B1 (en) 1998-03-20 2004-01-13 International Business Machines Corporation Apparatus and method for a personal computer system providing non-distracting video power management

Also Published As

Publication number Publication date
US5752044A (en) 1998-05-12
JP3341970B2 (ja) 2002-11-05

Similar Documents

Publication Publication Date Title
JP4028605B2 (ja) Sormセッションを有するコンピュータ・システム及び方法
JP3341970B2 (ja) コンピュータ・システム
JPH096486A (ja) 多重延期及び再開機能を有するコンピュータ・システム及び方法
KR100196893B1 (ko) 컴퓨터 시스템
KR100218613B1 (ko) 컴퓨터시스템및글리치회로
KR100232314B1 (ko) 컴퓨터 시스템
CA2156540C (en) Automatic backup system for advanced power management (apm)
US6081752A (en) Computer system having power supply primary sense to facilitate performance of tasks at power off
KR100196883B1 (ko) 컴퓨터 시스템
US5603038A (en) Automatic restoration of user options after power loss
US5551043A (en) Standby checkpoint to prevent data loss
US5581692A (en) Automatic clearing of power supply fault condition in suspend system
EP0749063A2 (en) Method and apparatus for suspend/resume operation in a computer
KR100207884B1 (ko) 컴퓨터 시스템, 코드 실행 제어 방법, 및 컴퓨터 시스템 전력 관리 방법

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370