JPH05189075A - Os/2オペレーティングシステムのためのリジューム処理方法 - Google Patents
Os/2オペレーティングシステムのためのリジューム処理方法Info
- Publication number
- JPH05189075A JPH05189075A JP4137176A JP13717692A JPH05189075A JP H05189075 A JPH05189075 A JP H05189075A JP 4137176 A JP4137176 A JP 4137176A JP 13717692 A JP13717692 A JP 13717692A JP H05189075 A JPH05189075 A JP H05189075A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- resume
- resume processing
- processing method
- driver
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2200/00—Indexing scheme relating to G06F1/04 - G06F1/32
- G06F2200/16—Indexing scheme relating to G06F1/16 - G06F1/18
- G06F2200/161—Indexing scheme relating to constructional details of the monitor
- G06F2200/1613—Supporting arrangements, e.g. for filters or documents associated to a laptop display
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
テムに使用するリジューム処理方法を提供する。 【構成】リジューム処理ドライバが設けられ、先進のオ
ペレーティングシステムの動作条件を示すデータをシス
テムメモリにセーブし、以前から存在するリジューム処
理ルーチンをコールする。ステップ201の“リジュー
ムNMIが発生した時のアクティブタスク”は、リジュ
ーム処理開始の信号を受けた時コンピュータが動作して
いる状態に関連している。パワーダウン信号は、ユーザ
が電源スイッチを付勢したときに電源回路により発生さ
れる。パワーダウン信号はCPUで発生するNMI信号
である。ステップ202の“リジュームドライバ”はN
MIがCPUで検出後実行されるリジューム処理ドライ
バである。リジューム処理ドライバは先進のオペレーテ
ィングの動作条件を示すデータをメモリからリストア
し、リジュウム以前のコンピュータに制御を渡す。
Description
に使用されるリジューム処理制御システムに関し、特に
電源オフ信号に応答してOS/2オペレーティングシス
テムにより動作するコンピュータシステムのステータス
をセーブし、コンピュータシステムの電源をオフにし、
次にコンピュータシステムの電源をオンにして、コンピ
ュータシステムを元の状態に復帰させる方法に関する。
80x86マイクロプロセッサあるいはその同等品を用
いた”IBM互換”のマイクロコンピュータでは、シス
テムの電源がオフになると、マイクロプロセッサに関連
するレジスタの内容やメモリロケーションは通常消失す
る。その後、電源がコンンピュータシステムに投入され
ると、初期化ステップが実行され、システムが初期化状
態になる。この場合、電源がオフになる前にシステム内
に存在していたコンピュータプログラムやデータは再度
ロードしなければならない。
コンピュータシステム、例えば東芝製のラップトップマ
イクロコンピュータに設けられ、電源オフ時にシステム
の動作状態をセーブし、次に電源がオンになったとき
に、電源オフ時に中断された処理に復帰することが可能
なように構成されている。この機能は、表示装置やディ
スクドライブのような大電力を必要とする装置への電力
を遮断し、コンピュータの低電力ダイナミックメモリへ
電力を供給し続けることにより達成される。この電力消
費保持機能により、バッテリ駆動のラップトップコンピ
ュータのように、限られた電源しか持たないコンピュー
タシステムは、必要な電力消費量を最小に抑えながらシ
ステムの現在の状態を維持することができる。
に見られる内蔵リジューム機能(”オートリジューム”
(登録商標)と呼ばれる)により、ユーザはデータを失
うことなく、コンピュータの電源をオフにし、バッテリ
電力を節約することができる。この機能は、コンピュー
タのリードオンリメモリ(ROM)内の基本入出力シス
テム(BIOS)ルーチンに組み込まれている。このリ
ジューム機能は、すべての必要なレジスタ情報をランダ
ムアクセスメモリ(RAM)にセーブしそのメモリへの
電力を供給しながら、他のコンピュータ装置への電力を
遮断することにより行なわれる。通常の電力に戻ると、
セーブされた情報はレジスタに戻され、システムは元の
状態に戻る。
にユーザが意図的にシステムの電源を落とす場合に有効
であるが、さらにバッテリ電力がロウバッテリになった
ときに有効である。ロウバッテリになると、システム
は、(例えばビープ音を発生して)バッテリの電力が低
下したことをユーザに知らせる。ユーザが所定時間(約
5分)以内にシステムの電源を落とさなかった場合、コ
ンピュータは自動的にリジュームモードになり、電源を
落とす。通常電力が再度印加されると、BIOSがコン
ピュータを元の状態に復帰させるので、データを消失す
ることもなく、また、プログラムの実行が中断されるこ
ともない。
うなラップトップコンピュータに現在組み込まれている
リジューム処理のBIOSコードはMS−DOSオペレ
ーティングシステム下でのリジューム処理しかサポート
していない。例えば、米国マイクロソフト社が提供する
マルチタスクオペレーティングシステムであるOS/2
のような異なるオペレーティングシステムで動作させる
と、現在のBIOSリジューム機能では、OS/2で使
用されるある種のレジスタおよびその他のデータを正し
くセーブせず、リジューム処理ができないという問題が
ある。これは、一部には、OS/2オペレーティングシ
ステムが、マルチモード80286マイクロプロセッサ
あるいは80286と互換のある80386や8048
6等のマイクロプロセッサを使用したコンピュータシス
テム上で動作するように設計されているためである。一
方、MS−DOSオペレーティングシステムはシングル
モードの8086/8088マイクロプロセッサ上で動
作するように設計されている。
Sが提供する既存のリジューム処理を利用するには、”
ラッパー”をBIOSに作って、BIOSがリジューム
処理を実行できる状態にコンピュータをする必要があ
る。この発明の目的は、OS/2のような先進のオペレ
ーティングシステムに使用するリジューム処理方法を提
供することである。
ューム処理BIOSルーチンのような既存のリジューム
処理ルーチンと結合した、OS/2で使用するリジュー
ム処理方法を提供することである。この発明のさらに他
の目的は、既存のリジューム処理ルーチンの”ラッパ
ー”として機能するリジューム処理方法を提供すること
である。
ューム処理ルーチンがコールされる前にオペレーティン
グシステムの動作条件を示すデータをセーブするリジュ
ーム処理方法を提供することである。
ューム処理ルーチンが実行された後にオペレーティング
システムの動作条件を示すデータを復帰(リストア)す
るリジューム処理方法を提供することである。
ライブとパラレルプリンタポートを共にアクティブ状態
にしながら機能することのできるリジューム処理方法を
提供することである。
のリジューム処理ドライバが設けられ、先進のオペレー
ティングシステムの動作条件を示すデータをシステムメ
モリにセーブし、MS−DOSのような以前から存在す
るオペレーティングシステム用に設計された既存のリジ
ューム処理ルーチンをコールする。既存のリジューム処
理ルーチンはさらに、既存のオペレーティングシステム
に関連する動作条件データをシステムメモリにセーブす
るための処理をさらに行い、電源をオフにするためのシ
ーケンス制御を行い、コンピュータメモリを除くすべて
の回路への電力供給を遮断する。その後、既存のリジュ
ーム処理ルーチンは、既存のオペレーティングシステム
に関連する動作条件データをシステムメモリから復帰す
るための処理を行い、この発明のリジューム処理ドライ
バに制御を渡す。リジューム処理ドライバは、先進のオ
ペレーティングシステムの動作条件を示すデータをシス
テムメモリからリストアし、リジューム処理ドライバが
開始される前に実行されていたコンピュータプログラム
に制御を渡す。
について定義する。
ーブルまたはディスエーブルするキーボードコントロー
ラ内のゲート。アドレスライン20は、1Mバイト以上
の64Kバイトメモリセグメントをプログラムがアクセ
スする必要があるか否かに応じてMS−DOSによりイ
ネーブルまたはディスエーブルにすることができる。O
S/2では、基本のデバイスドライバは1Mバイトセグ
メント以上にあるので、このアドレスラインをイネーブ
ルにする必要がある。COMドライバ:COMドライバ
は非同期通信ポートドライバである。
テムにおける中央制御回路を形成するマイクロプロセッ
サである。この発明では、CPUはプロテクトモードの
ような先進の動作モードで動作できるとともに、OS/
2のような先進のオペレーティングシステムを実行可能
なマイクロプロセッサである。
テーブルはセレクタを物理メモリアドレスにマッピング
するためのテーブルである。このようなテーブルはイン
テル80286のような先進のマイクロプロセッサに使
用され、コンピュータプログラムが使用するメモリのセ
グメントを定義する。この発明に関連するテーブルはロ
ーカルディスクリプタテーブル(LDT)とグローバル
ディスクリプタテーブル(GDT)の2種類ある。LD
Tは各アクティブプロセスに存在し、そのプロセスによ
り占有または共有されているメモリへのアクセスを可能
にする。GDTはオペレーティングシステムおよびデバ
イスドライバにより使用されるメモリへのアクセスを可
能にする。
込みのフッキングとはCPUに新しいインタラプトハン
ドラにアクセスするように再指示する行為である。実際
の”フック”は割り込みが起こる前に実行されなければ
ならない。これは一般には、新しいハンドラのアドレス
を割り込みベクタテーブルの適当なロケーションにセッ
トすることにより行なわれる。しかしながら、これは、
オペレーティングシステムのカーネルが常に割り込みベ
クターテーブルを管理し、他のプログラムがテーブルを
変更すると、元のハンドラのアドレスをリストアするマ
イクロプロセッサのインテル80286−互換ラインの
NMI割り込みの場合には、必ずしも可能でない。それ
ゆえ、NMIインタラプトをフックするために、この発
明では、この発明のリジューム処理ドライバを実行させ
るオリジナルハンドラの初めに”ジャンプ”マイクロプ
ロセッサ命令をセットする。
エラー:これは、ハードウエアでI/Oパリティエラー
を検出する拡張ボードにより生じる致命的なシステムエ
ラーである。
能であるが、CPUは無視することのできない、マスク
不可能な割り込みである。例えば、東芝製T3100S
Xラップトップコンピュータでは、2通りの方法でNM
Iを発生することができる。すなわち、(1)I/Oチ
ャンネルチェックエラーによる方法と、(2)この発明
で述べるパワーダウンリクエストによる方法である。P
IC:プログラマブルインタラプトコントローラはある
時刻においてどのインタラプトをイネーブル/ディスエ
ーブルにするかを制御する回路である。
ーミングは(メモリを除いて)コンピュータへの電力を
遮断し、コンピュータのソフトウエア状態を保存しなが
ら、後で復帰させる動作である。
能な、80286互換のマイクロプロセッサにより認識
される特権レベルである。OS/2コードは3つのレベ
ル0、2、3のうちの1つで実行可能である。レベル1
は使用されない。現在の特権レベルはどの命令とメモリ
セグメントをアクセス可能かを決定する。
イクロプロセッサのような先進のマイクロプロセッサの
プロテクトモードで使用される値であり、セグメントレ
ジスタにロードすることにより、物理的なメモリセグメ
ントを参照することができる。このセレクタはディスク
リプタテーブル(LDTまたはGDT)のインデックス
として使用される。
モードではセグメントとして、またプロテクトモードで
はセレクタとして共に有効である。システムローダはタ
イルされたコードセグメントの例である。
MI割り込みベクトルをフックするとともに、リジュー
ムBIOSコードラッパーとして動作するようにOS/
2バージョン1.2オペレーティングシステム下で動作
可能なリジュームドライバを作り、(2)フックをリア
ルモードノンマスカブルインタラプト(NMI)に挿入
し、この発明をOS/2のDOS互換ボックス下で動作
可能にするようにシステムローダを変更し、(3)適当
なコンピュータ上にインストールしたときに”CONF
IG.SYS”ファイル中にリジュームドライバロード
ステートメントを配置するためのシステムイニシャライ
ゼーションプロセスを変更し、および(4)ディスク動
作が終了し、ディスクバッファの内容やデータを消失す
ることなく電力を遮断可能であることをリジュームBI
OSに知らせるようにディスクドライバを変更する。後
で詳述するように、これらの要素は、OS/2バージョ
ン1.2の下でリジューム機能を完全に支持するように
記述または変更しなければならないが、記述した変更や
追加はクレームした発明の実現の一例に過ぎず他の種々
の変形例が以下の説明から明かであることは当業者には
容易に理解できる。
タ言語の1つで書かれたコンピュータプログラムを変更
もしくは書くことにより実現可能であることは、コンピ
ュータプログラミングの分野の当業者には容易に理解で
きる。好適実施例では、80x86互換アセンブラ言語
(機械言語)を用いてこの発明を実現している。これ
は、この発明がデバイスドライバとして実現されている
からである。しかしながら、例えばリジュームドライバ
を実現するときは、他の適当な言語を使用可能である。
以下に述べる実施例の説明では特に断わりが無い限り、
アセンブラ言語を使用するものとする。
ージョン5.10およびマイクロソフトセグメントーイ
クスキュータブルリンカバージョン5.03(共に米国
マイクロソフト社製)を用いてデバイスドライバをアセ
ンブルし、この発明の他のソースコードをリンク可能で
あるが、他社の同様のアセンブラおよびリンカを用いる
ようにしてもよい。
ティングシステムの製造元であるマイクロソフト社製の
バイナリアダプションキット(BAK)および関連する
ソフトウエアツールおよびマニュアルを用いて即チェッ
クし変更する事が可能である。BAKは、この明細書で
述べた変更と追加をどのようにして実現するかについて
のドキュメンテーションを提供するバイナリアダプテー
ションガイド(BAG)を含む。このドキュメンテーシ
ョンに加えて、マイクロソフト社から提供される”アド
バンストOS/2プログラミング”(著者:レイ ダン
カン)のような本がこの発明を実現する上で有効であ
る。
ンをデバッグする際には、マイクロソフト社のカーネル
デバッガを用いてドライバ内のエラー箇所を見つけるこ
とができる。しかしながら、このデバッガを用いてリア
ルモードのNMI割り込みベクトルをフックすることは
できない。これはデバッガがこのベクトルそのものをフ
ックするためである。それゆえ、リアルモードNMIデ
バッグを行なうには、コードを目視検査するか、コード
中にホルト(HALT)命令を意図的に複数箇所に挿入
して実行経路がある経路を通過したかどうかを調べる必
要がある。
ストするには、プロテクトモードおよびリアルモードの
両方でI/Oチャンネルチェックエラーを発生させる必
要がある。これはソフトウエアにより発生できないもの
であり、また通常ハードウエアにより発生できないの
で、拡張シャーシを用いてこの機能を実現可能である。
好適実施例では、1本のワイヤ線がA1ラインにはんだ
ずけされた拡張ボードを有した東芝製拡張シャーシをコ
ンピュータの拡張コネクタ(図1の119)に接続して
いる。I/ONMIを任意に発生させるためには、A1
線を単にグラウンドに落とすことにより、I/Oチャン
ネルチェックNMIを迅速に発生させることができる。
作可能なマイクロコンピュータのブロック図である。図
1に示すマイクロコンピュータは”東芝T3100SX
あるいはT2000”ラップトップ”コンピュータのよ
うな、インテリジェントパワーサプライ”を有し、OS
/2を実行可能な種々のマイクロコンピュータの1つで
ある。図1に示す構成はコンピュータにより異なるが、
この発明の動作に必要なコンピュータシステムの関連部
分(”インテリジェントパワーサプライ”を含む)は変
わらない。従って、図1は例示に過ぎない。
テム構成要素101乃至125に接続されている。中央
処理装置(CPU)101は好適実施例では、OS/2
バージョン1.2オペレーティングシステムを実行可能
なインテル80286互換マイクロプロセッサから成
り、図1のコンピュータシステム全体の機能を制御す
る。好適実施例では、CPU101は後述する図5乃至
図11のフローチャートに示される機能を実行する。さ
らに、CPU101は、後述する電源回路117の要部
を形成する電力制御CPU117Aに対してホストCP
Uとして機能する。
OMのベーシック入出力システム(BIOS)(明示せ
ず)を含む、固定のコンピュータプログラムおよびそれ
に伴うデータを格納する。好適実施例では、ROM B
IOSはCPU101のリアルモードで動作可能なリジ
ューム処理プログラムを格納する。例えば、東芝社製T
3100SXラップトップコンピュータはCPU101
として80386SXマイクロプロセッサを使用し、8
0386SXがリアルモードのときに動作可能に設計さ
れたリジューム処理プログラムをROM102に格納し
ている。
は変更可能なプログラムおよびCPU101により処理
されるデータを格納する。さらに、RAM103は、実
行中のプログラムに対して、リジューム処理が必要かど
うかを示すリジュームモードフラッグを格納する。この
フラッグについては後で詳述する。
4はマイクロコンピュータシステムの種々の構成要素間
のダイレクトメモリアクセスを制御する。プログラマブ
ルインタラプトコントローラ(PIC)105はある時
刻において、どのマイクロプロセッサインタラプトをイ
ネーブルにするかを制御し、CPU101により実行さ
れるコンピュータプログラムにより変更可能である。プ
ログラマブルインターバルタイマ(PIT)106は実
行中のコンピュータプログラムによりセット可能であ
り、指定されたタイムインターバルをカウントダウンす
る。リアルタイムクロック(RTC)107はその日の
現在時刻をCPU101に知らせるためのものであり、
マイクロコンピュータの電源が落ちたときに、その機能
を継続させるための専用電源107A(例えばバッテ
リ)を有する。
AM108をマイクロコンピュータの本体の専用カード
スロットに介挿可能であり、バックアップ電源VBKが
供給される。リジューム機能データは、バックアップ電
源VBKが供給されたバックアップRAM109に格納
可能である。
ータシステム本体の専用収納部に脱着可能に介挿可能で
あり、好適実施例では、3.5インチハードディスクド
ライブ(HDD)110Bとこのドライブへのアクセス
を制御するハードディスクコントローラ(HDC)11
0Aから成る。以下のコントローラは、それぞれ対応す
る装置へのアクセスを制御するとともに、対応する装置
をバス100に接続する。フロッピーディスクコントロ
ーラ(FDC)111Aはフロッピーディスクドライブ
(FDD)111Bおよび/またはオプションの外部フ
ロッピーディスクドライブ(外部FDD)111Cを接
続する。プリンタコントローラ(PRT−CONT)1
12Aはオプションのプリンタ112Bを接続する。ユ
ニバーサルアシンクロナスレシーバトランスミッタ(U
ART)113AはオプションのRS−232Cインタ
ーフェースユニット113Bを接続する。キーボードコ
ントローラ(KBC)114Aはキーボード114Bを
接続する。ディスプレイコントローラ(DISP−CO
NT)115Aはガスプラズマディスプレイ(PDP)
115Bおよびオプションの陰極線管(CRT)115
Dを接続する。
イイメージデータを格納するビデオRAM(VRAM)
115Cに関連している。VRAM115Cにはバック
アップ電源VBKが供給される。
116はシステムバス100を介してCPU101に電
源回路117を接続する。ユーザがスイッチSWをオン
にすることにより電力制御CPU(PC−CPU)11
7Aがマイクロコンピュータシステムの情報を受信する
と、電源制御CPU117Aが電源回路117を制御し
て、PS−IF116を介してノンマスカブルインタラ
プト(NMI)信号をCPU101に送る。さらに、N
MI信号は、メインバッテリ(M−BATT)117B
(後述)により供給される電力がロウレベルになると、
電源回路117により発生可能である。ACアダプタ1
18は商用交流(AC)電力を整流および平滑し、特定
の電圧のDC電力を出力する。ACアダプタ118は、
マイクロコンピュータシステムの各構成要素に電力を供
給する電源回路117に接続される。
は好適実施例では脱着可能なリチャージャブルバッテリ
で構成され、電源回路117に接続される。サブバッテ
リ(S−BATT)117Cは好適実施例では、コンピ
ュータ本体の側面に取り付けられたリチャージャブルバ
ッテリで構成され、2次バッテリとして動作し、電源回
路117に接続される。最後に、拡張コネクタ119は
バス110に接続され拡張回路を構成要素に接続可能に
する。
全体フローを示す。特に、好適実施例におけるこの発明
の動作の流れは、図2のステップ201乃至207に示
す7つの汎用ステップから成る。以下、これらの7つの
ステップを一般的に述べ、さらに図7乃至図11を参照
して後で詳述する。
ームNMIが発生した時のアクティブタスク”というの
は、リジューム処理を開始するための信号を受け取った
とき、コンピュータシステムが動作している状態に関連
している。特に、パワーダウンの信号がCPUにより受
信されるとホストCPU(図1の構成要素101)の複
数の動作モードの1つでコンピュータプログラムを動作
可能である。パワーダウン信号は、コンピュータシステ
ムのユーザが電源スイッチ(図1の構成要素SW)を付
勢したときに電源回路(図1の構成要素117)により
発生される。パワーダウン信号はCPU上で発生される
ノンマスカブルインタラプト(NMI)信号である。
ライバ(RESUME$)”はNMIがCPUにより検
出された後に実行されるリジューム処理ドライバであ
る。好適実施例では、リジュームドライバはコンピュー
タが最初にイニシャライズされるときロードされるイン
ストール可能なデバイスドライバである。特に、ドライ
バのファイルネームは”DEVICE=”ステートメン
トを有した”CONFIG.SYS”構成ファイルに配
置され、コンピュータシステムが最初にブートされると
きにロードされる。この発明のリジューム処理ドライバ
はOS/2”ベースドライバ”(例えばBASEDD0
1)の一部としてあるいはOS/2OEMHLPの一部
として実現可能である。しかしながら、現行のOS/2
システムの設計し直しの程度を最小に抑えるために、ま
たこの発明のリジューム処理ドライバはある種のコンピ
ュータで使用されるように設計されているので、この発
明のリジューム処理ドライバは好適実施例によるインス
トール可能なデバイスドライバである。もちろん、当業
者にはこの発明を実現可能な種々の方法を容易に推考可
能である。
ューム処理ドライバはNMIがCPUにより検出され、
NMIがパワースイッチがオフされたことにより発生さ
れたと判断された後に、実行される。このとき、リジュ
ームドライバはOS/2に関連するある種のデータをコ
ンピュータシステムメモリの適当な領域にセーブするた
めの種々のステップを実行する。この後、リジュームド
ライバは制御をあらかじめ存在するROM BIOSの
リジュームコードに渡す。ROM BIOSリジューム
コードはさらにリジューム処理機能を実行し、メモリを
除いて、コンピュータシステムの各種構成要素に供給さ
れている電力を物理的に遮断する。従って、ステップ2
02に示す、この発明のリジュームドライバは、東芝製
ラップトップのような種々のコンピュータに見られるあ
らかじめ存在する”ラッパー”として作用する。すなわ
ち、リジュームドライバはOS/2オペレーティングシ
ステムに固有のレジスタとデータおよび/またはOS/
2が動作する先進マイクロプロセッサをセーブし、標準
のROM BIOSリジューム処理ルーチンがその機能
を適当に実行可能な状態にコンピュータシステムをセッ
トし、その後種々の構成要件への電力供給を遮断する。
Sリジュームコード”は、上述したように、この発明の
リジュームドライバが実行された後実行されるROM
BIOSリジュームコードルーチンである。好適実施例
では、ROM BIOSリジュームコードは、”リアル
モード”で動作しているときに、コンピュータシステム
のCPU(図1の構成要素101)に関連する必要なレ
ジスタおよびデータのすべてをセーブするように設計さ
れている。それゆえ、もしこのモードで動作していない
のであれば、ステップ202のリジュームドライバがス
テップ203のROM BIOSリジュームコードに制
御を渡すまえに、この発明のリジュームドライバはCP
Uをリアルモードにセットする。このプロセスは後で詳
述する。リアルモードに関連するレジスタおよびデータ
をセーブするためにROM BIOSリジュームコード
が必要なステップをすべて実行した後、”コンピュータ
停止その後電源オン”を実行する。好適実施例では、こ
のステップは、コンピュータシステムの状態に関連す
る、以前にセーブしたレジスタおよびデータを格納する
システムメモリを除いてコンピュータシステムのすべて
の構成要素の電源供給を遮断する。CPUの指示によ
り、電源回路(図1の構成要素117)により電源が遮
断される。ユーザが後に電源スイッチ(図1の構成要素
117)を押すと、電源回路は、コンピュータシステム
の種々の構成要素に電力を再び供給し、制御はステップ
205に渡される。
ュームコード”はステップ203と反対の機能を実行
し、ステップ204で電源が遮断されたとき実行されて
いたステップ203のルーチンと同じROM BIOS
リジュームルーチンである。ステップ205はマイクロ
プロセッサのリアルモードに関連する、以前セーブした
レジスタとデータを復帰(リストア)し、制御をステッ
プ206のリジュームドライバに戻す。上述したよう
に、ステップ205のROM BIOSコードはT31
00SXラップトップコンピュータのような東芝製コン
ピュータに見られるコードから成る。ステップ206
の”リジュームドライバ(RESUME$)”はステッ
プ202と逆の機能を実行し、ステップ202と同じド
ライバにより実行される。ステップ206は以前セーブ
したOS/2に関連するレジスタおよびデータ、並びに
80286互換マイクロプロセッサの関連するモードを
リストアする。ステップ206を終了後、制御はステッ
プ207の”リジュームNMIが発生したときのアクテ
ィブタスク”に制御を渡す。ステップ207はステップ
201でリジューム処理を開始するために電源スイッチ
が最初に押されたとき実行されていたプログラムであ
る。このとき、以前に実行されていたプログラムが再び
実行される。
能をサポートするために、この発明は必要に応じてノン
マスカブルインタラプト(NMI)(インタラプト2)
を”フック”してコンピュータシステムのユーザが電源
スイッチ(図1の構成要素SW)を押したことを検出す
るためにリジュームデバイスドライバを指し示す必要が
ある。しかしながら、これはNMIインタラプトハンド
ラでは不可能である。これは、システムカーネルが常に
割り込みベクトルテーブルを管理し、他のプログラムが
そのテーブルを書換えようとしたとき元のハンドラのア
ドレスをリストアするためである。この制約を回避する
ために、この発明のリジュームドライバは必要に応じて
OS/2ローダとカーネルコードを”パッチ”し、80
286のリアルモードとプロテクトモードのNMI割り
込みをフックする必要がある。この方法は通常良い技術
とは考えられていないが、ベクトルテーブルを直接変更
不可能なので好適実施例では行なわなければならない。
NMI割り込みの”フック”(例えばパッチ)の詳細に
付いては図3および図4に関連して後述する。将来発表
されるOS/2において割り込みベクトルのエントリを
直接変更可能になれば、ここで述べるパッチ処理は必要
なくなり、ベクトリエントリを直接変更可能となる。
NMIベクトルの”フック”はこの発明のリジュームド
ライバの初期化コードが行なう。リアルモードNMIベ
クトルは割り込みベクトルテーブル(IVT)内に設け
られ、プロテクトモードNMIベクトルは割り込みディ
スクリプタテーブル(IDT)内に設けられる。上述し
ように、OS/2カーネルは定期的にこれらのテーブル
を管理し、OS/2カーネルがロード後、テーブル内に
セットされた新しい値に書き換える。それゆえ、上述し
たように、IVTおよびIDTで指定した割り込みハン
ドラのロケーションを直接変更するよりも、元のベクト
ルを変えずに残しておき、各ハンドラの第1ステップを
変更して、この発明のリジュームドライバへのジャンプ
機械語命令を実行するように構成している。この方法で
は、実際にこのコードを重ね書きしているので、元のハ
ンドラにジャンプで戻る必要がない。これは、この発明
のリジュームドライバがすべてのNMI発生に対処する
ので可能である。
みベクトルとプロテクトモードにおけるNMI割り込み
ベクトルの両方をフックするのに必要なステップについ
て述べる。これらのステップを全体のリジューム初期化
および実行シーケンス中にセットする詳細な説明につい
ては、後述する。
ック”するのに必要なステップを示す。基本的には、O
S/2システムローダ300は次の機能を実行するよう
に変更する必要がある。第1にローダは標準のリジュー
ムROM BIOSを指し示す既存のNMIベクトルを
セーブする必要がある。OS/2カーネルはいかなる変
更をも管理しているので、IVT(構成要素301)の
実際のNMIベクトルは変更できないので、元のハンド
ラの第1ステップは、この発明のリジュームドライバに
対応するアドレスにジャンプするように変更する必要が
ある。しかしながら、もとのハンドラはROM BIO
Sにあり(変更できないので)、次の最良の解決方法は
ローダ自身のリアルモードNMIのIVTエントリを変
更することである。これによりカーネルはこの新しいベ
クトルが正しいベクトルであると考える。しかし、ロー
ドする時点で、リジュームドライバがメモリのどこにロ
ードされるかわからないので、図3に示すように、IV
T NMIベクトル(構成要素301)はローダ内のダ
ミーハンドラを指し示すように設定されている。ダミー
ハンドラは図3の構成要素302Aおよび304に示す
ように5つのNOP(no operation)命令
と、BIOS NMIハンドラへのジャンプ命令により
構成されている。
の発明のリジューム機能をサポートしているかどうかに
関係無く、リアルモードNMIベクトルはローダに作ら
れたダミーハンドラルーチンを指し示す。次に、コンピ
ュータがこの発明をサポートしていないと判断される
と、この発明のリジュームドライバはロードされず5つ
のNOP命令は残る。その後、リジュームNMIが発生
すると、コンピュータはダミーハンドラにジャンプし、
5つのNOP命令を実行し、もとのROM BIOSリ
ジュームルーチンにジャンプする。
の発明のOS/2リジュームドライバをサポートしてい
る場合には、リジュームドライバはメモリにロードさ
れ、構成要素302Bおよび303に示すように、NO
P命令がパッチされてこの発明のリジュームドライバへ
のジャンプ命令が実行される。その後、リジュームNM
Iが発生すると、コンピュータはダミーハンドラにジャ
ンプし、次にパッチされたジャンプ命令に続くこの発明
のリジュームドライバへ即ジャンプする。
ルをフックするには、リアルモードにおけるNMI割り
込みベクトルをフックするのに必要なステップと類似し
たステップを付加する必要がある。図4はプロテクトモ
ードにおけるNMI割り込みベクトルをフックするのに
必要なステップを示す。初めに、カーネル(図4の構成
要素407)内の元のプロテクトモードのNMIハンド
ラのアドレスをインタラプトディスクリプタテーブル
(IDT)(図4の構成要素401)から得る必要があ
る。このアドレスはコードセグメントを参照するための
もので、このセグメントへのライトアクセスは制限され
る。
DTから得られたコードセレクタをグローバルディスク
リプタテーブル(GDT)(コードディスクリプタ40
2)へのインデックスとして用いて、元のハンドラの物
理メモリアドレスを得る必要がある。これが行なわれる
と、一般的な”Dev_Help”機能(例えば、”D
evHlp_PhysToVirt”)を介して物理ア
ドレスを仮想アドレスに変換可能である。”Dev_H
elp”機能はデバイスドライバとOS/2カーネルと
の間のインターフェースを可能にする。デフォルト値に
より”DevHlp_PhysToVirt”はセレク
タがデータディスクリプタ(構成要素403)を指し示
すようにする。この”Dev_Help”機能とこの機
能を利用するための関連するドキュメンテーションは、
マイクロソフト社のOS/2に関連する開発ソフトウエ
アに含まれており、適当な”INCLUDE”コマンド
によりリジュームドライバコードにその機能を盛り込む
ことが可能である。
しているので、元のNMIハンドラ(構成要素407)
の第1命令を重ね書きすることが可能である。ファージ
ャンプ命令(構成要素405)はリジュームドライバの
プロテクトモードコードセレクタとNMIハンドラルー
チンのオフセットを用いて、ジャンプ先としてパッチさ
れる。(従って図4の構成要素406にジャンプする)
リアルモードNMIベクトルの”フック”とは反対に、
この場合には、実際には既存コード(NOP命令ではな
い)(構成要素404)へのパッチを行なうので、元の
プロテクトモードハンドラは使用できない。しかしなが
ら、元のハンドラの機能は、NMIが発生したときに、
レジスタダンプを表示し、トラップメッセージを表示
し、最後にシステムを停止するだけなので、問題はな
い。
に加えて、この発明のリジューム機能を完全にサポート
するにはOS/2ディスクデバイスドライバを変更する
必要がある。これは、ROM BIOS内の標準リジュ
ームルーチンは、ディスクBIOSがあるレジスタを変
更することを前提として作られているからである。しか
しながら、OS/2バージョン1.2のプロテクトモー
ドでは、ディスクBIOSコードは使用されない。従っ
て、以下に述べるステップを実行するためには、ディス
クドライバを変更しなければならない。以下に述べる好
適実施例によるディスクドライバの変更は相対的に簡単
であり、当業者には、OS/2ディスクドライブコード
の変更は容易である。
ディスクドライバは、この発明のリジューム機能をサポ
ート可能な、例えば東芝製T3100SXラップトップ
コンピュータのようなコンピュータシステム上で走って
いるかどうか判断する。この発明をサポート可能なら、
リジュームフラッグがセットされ、この発明のリジュー
ムドライバが実際にロードされているかどうかに関係な
く次のステップが実行される。なんらかの理由により、
リジュームドライバが実際にロードされていない場合に
は、後で詳述するように悪い影響を及ぼさない。
のフラッグがセットされ、ディスクアクセスが完了する
とフラッグがクリアされる。従って、リジュームBIO
Sはこのフラッグをチェックすることにより、ハードデ
ィスクドライブ(HDD)が現在アクティブかどうかを
判断することができる。HDDが現在アクティブであれ
ば、リジュームBIOSは電力NMIマスクレジスタの
ビットをセットし、制御をこの発明のリジュームドライ
バに渡す。ディスクアクセスを終了後、リクエストキュ
ーをチェックする前に、ディスクドライバは電力NMI
レジスタのビットをセットする。対応するマスクレジス
タビットがリジュームBIOSによりセットされると、
別のNMIが発生される。しかしながら、今度は、リジ
ュームBIOSはHDDがインアクティブであることを
検出し、ノーマルリジュームBIOSルーチンを実行し
てシステムの電源を遮断する。次に、電源が再度供給さ
れると、ディスクドライバはどこで中断されたかを調べ
る。(すなわち、リクエストキューがあるかどうか調べ
る)
2を変更しなければならない要素として初期化コードが
ある。好適実施例では、この発明のリジュームドライバ
はインストール可能なデバイスドライバから成る。好適
実施例では、このインストール可能なデバイスドライバ
は”RESUMT.SYS”という名前がつけられてい
る。もちろん他の名前をつけてもよい。さらに、この発
明のリジューム機能は、インテリジェントパワーサプラ
イを有し、OS/2バージョン1.2で動作可能な、東
芝製T3100SXのようなコンピュータシステム上で
のみ動作可能である。そのようなコンピュータシステム
が使用される場合にのみ、リジュームドライバがインス
トールされるようにインストレーションコードを変更す
る必要がある。リジュームドライバをインストールする
ためのユーザの手間を最小限にするために、好適実施例
では、インストレーションコードの変更はユーザから見
えるように設計されている。この変更を以下述べる。
ライバコードを関連するコンピュータシステムに含める
ようにするには、OS/2開発に関連するBUILD.
CMDおよびMKOS2.CMDコマンドファイルを変
更する必要がある。BUILD.CMDは(1)リジュ
ームサブディレクトリに行き、リジュームドライバコー
ドをアセンブルしてリンクし、(2)バイナリDISK
2サブディレクトリ内の最後のRESUME.SYSフ
ァイルをパックするように変更する必要がある。(DI
SK2が選択されるのは、OS/2バージョン1.2で
は、他のインストール可能なドライバが常駐しているか
らである。もちろん、他のディスクを使用してもよ
い。)MKOS2.CMDはOS/2インストレーショ
ンディスケットを発生する機能を有し、リジュームドラ
イバ(例えばRESUME.SYS)をインストレーシ
ョンDISK2にコピーするように変更する必要があ
る。
レーションディスケットからユーザのハードディスクド
ライブの適当なサブディレトリにコピー(アンパック)
された全ファイルのリストを保持する。このファイルは
初期化時にOS/2インストレーションプログラム(O
S/2バージョン1.2のSYSINST2.EXE)
により使用される。リジュームドライバのバイナリファ
イル名はDISK2のリストに書かれる。
して(1)適当なコンピュータ(例えば東芝製T310
0SX)が使用されているか、また使用されているなら
(2)リジュームドライバをロードするようにユーザの
CONFIG.SYSを編集する必要がある。OEMH
LP機能81(ヘキサ)(例えばGet Machin
e Type and Mode)を用いてインストー
ルされたマシンを識別することができる。SYSINS
T2.EXEはマシンがリジュームドライバをサポート
可能な場合、次のコマンドをCONFIG.SYSファ
イルにセットするように変更する必要がある。 DEVICE=C: OS2 RESUME.SYS
ムドライバ自身が、上述したようにリアルモードのNM
IベクトルおよびプロテクトモードのNMIベクトル
を”フック”するように初期化の一部を実行し、NMI
を受信後実行されるデスティネーションアドレスを形成
する。図5乃至図11はリジュームドライバが最初に初
期化され次にNMIの発生により実行されるステップを
示すフローチャートである。これらの図について以下に
述べる。
ームドライバをロードしたとき最初に実行される初期化
ステップを示す。ステップ501はシステム開始時にO
S/2デバイスドライバにより操作されるリジュームド
ライバ(好適実施例では、RESUME.SYS)をロ
ードするプロセス示す。ライン ”DEVICE=C:
OS2 RESUME.SYS”がCONFIG.S
YS ファイルからリードされリジュームコードおよび
データがメモリにロードされる。初期化コマンドリクエ
ストパケットにより初期化ルーチンが実行される。次
に、ドライバ初期化プロシージャが実行され、リジュー
ムドライバの初期化が完了する。
々の機能を実行する。初めに、ステップ502はホスト
コンピュータシステムがこの発明のリジューム機能をサ
ポートするタイプのコンピュータシステムかどうか判断
する。この判断は、コンピュータシステムのタイプを示
すコードを含む適当なメモリロケーション(例えば東芝
製コンピュータの場合ROM BIOSアドレス F0
00:FFFA)をリードするとともに、標準ROM
BIOSリジューム機能がサポートされるかどうかを示
す適当なメモリロケーション(例えば東芝製コンピュー
タの場合ROMBIOSアドレス F000:E024
等)を読むことにより行なわれる。特にコンピュータシ
ステムはOS/2オペレーティングシステム(例えば、
80286互換のマイクロプロセッサを有するコンピュ
ータシステムー図1のCPU101)で動作可能でなけ
ればならないので、インテリジェントパワーサプライ回
路(図1の構成要素117)を持つ必要があるととも
に、ROM BIOSに既存のリジューム処理機能を持
つ必要がある。好適実施例では、東芝製T3100SX
あるいはT2000SXラップトップコンピュータがこ
の基準を満足しており、ステップ502ではこれらのマ
シンを具体的に挙げている。しかしながら、インテリジ
ェントパワーサプライを有し、OS/2で動作する他の
コンピュータシステムを用いてこの発明を実現してもよ
い。従って、T3100SXおよびT2000SXは例
示に過ぎない。不適当なコンピュータシステムであると
判断された場合には、ステップ508に示すようにドラ
イバインストレーションメッセージをユーザに表示し、
初期化ステップを完了する。(ステップ509)
判断されると、ステップ503に示すように”オートデ
ィスプレイオフ”(これは、OEMHLPへのヘキサ8
8IOCtlコールを介してコール可能である)をサポ
ートするようにOEMHLPが付けれる。これは、好適
実施例では、OEMHLPファイル名(例えばOEMH
LP$)およびそれに付随するOEMHLPデータ(例
えばリアルモードおよびプロテクトモードでのエントリ
ポイントおよびデータセグメント)のオフセットをそれ
ぞれBXレジスタおよびDIレジスタに移動し、その後
適当な”DEv_Help”(例えばDevHlp_a
ttachdd)をコールすることによりOEMHLP
に付加することにより行なわれる。その後、一般的なO
EMHLP入出力制御(IOCtl)リクエストパケッ
トデータをリクエストパケットのためにリザーブされた
メモリロケーションにロードし、割り込みが発生される
毎にこの情報をリロードする必要を無くしている。この
ようなデータはパケット長、パケットコマンド、GIO
カテゴリ、GIOファンクション等を含む。
504が実行される。ステップ504では、80286
互換のマイクロプロセッサアーキテクチャに従って、G
DT自身を指し示すグローバルディスクリプタテーブル
(GDT)メモリセグメントセレクタを作成するととも
に、64Kリミットのダミーセレクタを作成する。GD
Tセレクタはこの発明のリジュームドライバを介してG
DTのディスクリプタをアクセスするのに用いられる。
最後に、後述するようにリアルモードに切り替えるとき
にダミーセレクタが用いられる。
タを”Dev_Help”機能の適当な機能(例えば”
DevHelp_AllocGDTSelecto
r”)を用いて作成する。次に、適当なアドレスをAX
レジスタおよびBXレジスタにロードし、0(64Kリ
ミットの場合)をCXレジスタにロードし、適当なセレ
クタを選択し、”Dev_Help”の適当なファンク
ション(例えば”DevHlp_PhysToGDTS
elector”をコールすることにより、第1セレク
タがGDTを指し示すようにする。最後に第2セレクタ
を同様にして64Kリミットのダミーセレクタを指し示
すようにする。
うに、プロテクトモードデータ、コードセレクタ、なら
びにリアルモードセグメント値がステップ505に示す
ようにコードセグメントの上部にセーブされる。この情
報はドライバのコードセグメントに保持される必要があ
る。これは、NMIが発生し、リジュームドライバが実
行されると、DSレジスタは中断されたタスクのデータ
セグメントを指し示しているためである。特に上述のデ
ータをコードセグメントにセーブするために次のステッ
プが実行される。
れ、”Dev_Help”ファンクション(例えばDe
vHlp_PhysToVirt”)を介して仮想アド
レスに変換される。(2)デイスクリプタタイプは”D
evHlp_PhysToVirt”ファンクションの
デフォルト値であるDATAではなくCODEが設定さ
れる。(3)ディスクリプタのアトリビュートを実行可
能、読みだし可能、一致、およびアクセス可能に設定す
る。(4)CS(コードセグメント)の物理アドレスを
例えば、”DevHlp_PhysToVirt”ファ
ンクションにより仮想アドレスに変換し、DATAセレ
クタを作る。(5)リアルモードデータセグメント、プ
ロテクトモードデータセレクタ、およびプロテクトモー
ドコードセレクタをリジュームドライバCODEセグメ
ント内の前もってリザーブしたメモリロケーション(例
えばCODEセグメントの上部)にコピーする。このと
き、GDTの仮想アドレスは適当な”Dev_Hel
p”ファンクション(例えばDevHlp_UnPhy
sToVirt)を介して物理アドレスに変換される。
506に示すようにタイマハンドラがインストールされ
る。ある”Dev_Help”はINIT時に実行でき
ないのでタイマハンドラが必要となる。この制約を回避
するために、上述したプロテクトモードおよびリアルモ
ードのNMIベクトルをフックするのに必要なコードを
有するタイマハンドラが作られる。タイマハンドラはマ
イクロプロセッサの”リング0”特権レベル、すなわち
最高特権レベルで実行される。
マハンドラルーチン(後述)のオフセットがレジスタA
Xにセットされ、遅延(例えば1/3秒)がレジスタB
Xにセットされる。つぎに、適当な”Dev_Hel
p”ファンクション(例えばDevHlp_TickC
ount”)がコールされタイマハンドラをインストー
ルする。その後、図6で後述するようにタイマハンドラ
が適当な時間に実行される。
トールされるとステップ507が実行される。初めに、
この発明のリジュームコードのどの部分が初期化後廃棄
可能かがOS/2に知らされる。これは初期化後に残っ
たコードセグメントおよびデータセグメント内の最終ア
ドレスに相当するアドレスを適当なメモリロケーション
にロードし、適当なセグメントの終わりを示すポインタ
として使用することにより行なわれる。つぎに、ドライ
バの名前と関連する著作権情報を示すドライバ名および
著作権メッセージを表示可能である。これはもちろんオ
プションであるがリジュームドライバソフトウエアの著
作権を表示するために好適実施例では行なわれる。
ロセスが完了し、ステップ509が実行される。この時
点で残りのシステムの初期化をOS/2により実行可能
であり、最後に標準OS/2の環境が入力され、ユーザ
はコンピュータシステムに対してノーマルオペレーショ
ンを実行することができる。しかしながら、NMIの形
でパワーオフリクエストがインテリジェントパワーサプ
ライ(図1の構成要素117)により受信されると、こ
の発明のリジュームドライバが実行される。メインリジ
ュームドライバルーチンの動作は図7乃至図11を参照
してさらに詳述する。
よびプロテクトモードベクトルをフックするタイマハン
ドラルーチンを示す。タイマハンドラルーチンは図5の
ステップ506に示すように初期化処理によりインスト
ールされる。適当なときに、タイマハンドラルーチンは
以下に述べるように実行される。
最初にコールされるエントリポイントを示している。こ
れはタイマハンドラが前もってインストールされた後に
起こる。上述したように、タイマハンドラは、好適実施
例では、80286互換マイクロプロセッサの最高特権
レベルに対応する”リング0”で実行される。
が入力された後、タイマハンドラをデインストールする
プロセスに相当する。デインストールプロセスはタイマ
ハンドラのオフセットアドレスをAXレジスタにロード
して、適当な”Dev_Hlp”機能(例えばDevH
lp_ResetTimer)をコールしてタイマをデ
インストールすることにより行なうことができる。
フック”してこの発明のリジュームドライバを指し示す
ステップ603が実行される。(図3の説明参照)最初
に、アドレス0:0のリアルモードベクトルテーブルへ
の仮想ポインタが、適当な”Dev_Help”機能
(例えばDevHlp_PhysToVirt)を利用
して得られる。次に、上述した変更したOS/2ローダ
(OS2LDR)で作られたダミーNMIハンドラのア
ドレスがリアルモードベクトルテーブル(INT2ベク
トル)で得られる。その後、ダミーNMIハンドラにも
ともとセットされていた5つのNOP命令がこの発明の
リジュームドライバへのファージャンプ命令と置き換え
られる。例えば、ファージャンプコマンド(EAヘキ
サ)が第1のNOP命令と置き換えられ、リジュームド
ライバのオフセットとセグメントがそれ以降のNOP命
令と置き換えられる。リアルモードベクトルテーブルの
仮想アドレスは、例えば”Dev_Help”ファンク
ションの”DevHelp_UnPhysToVir
t”ファンクションにより物理アドレスに変換される。
6のステップ604に示すようにプロテクトモードNM
Iベクトルを同様に”フック”する必要がある。(図4
の上述の説明参照)最初に、インタラプトディスクリタ
テーブル(IDT)の仮想アドレスが、適当な”Dev
_Help”ファンクション(例えば、DevHlp_
PhsToVirt)を使用して得られる。次に、ID
T内に格納された元のNMIベクトルが得られ、あらか
じめリザーブしたメモリロケーションに格納される。も
とのNMIベクトルのアドレスはOS/2カーネル内
(CODEセグメント)を指し示すので、セグメントへ
のライトアクセスは制限される。従って、IDTから得
られるコードセレクタを用いてグローバルディスクリプ
タテーブル(GDT)をインデックスし、もとのハンド
ラの物理メモリアドレスを得ることができる。この値
は、適当な”Dev_Help”ファンクション(例え
ばDevHlp_PhysToVirt)を介して仮想
アドレスに変換され、この仮想アドレスのデフォルト値
によりセレクタはDATAディスクリプタを指し示す。
それゆえ、NMIベクトルを効率良く”フック”するた
めに、もとのハンドラの第1命令を重ね書きすることが
可能である。
す、以前にセーブされたオフセットを用いて参照される
DATAセグメント(NMIハンドラCODEセグメン
トの別名)のオフセットを決定することができる。結果
として得られた仮想アドレスを用いて、この発明のデバ
イスドライバのファーアドレスへのジャンプを元のプロ
テクトモードハンドラの初めにパッチすることができ
る。例えば、ファージャンプ命令(EAヘキサ)を第1
ロケーションにパッチことができ、デバイスドライバ
(オフセットおよびセレクタ)のアドレスを次のメモリ
ロケーションにパッチすることができる。
MIベクトルとプロテクトモードNMIベクトルを”フ
ック”した後、ステップ605が実行され、タイマハン
ドラルーチンを抜け出す。このステップが完了すると、
この発明のOS/2リジュームドライバルーチンがイン
ストールされ、コンピュータシステムのユーザは電源ス
イッチをオンすることにNMIがCPUに送られ、前記
リジュームドライバルーチンを使用することができる。
以下、リジュームドライバのメインルーチンを構成する
種々のステップを詳細に述べる。従って、これらのステ
ップは実際のOS/2リジューム処理中であってROM
BIOS内の標準リジュームルーチンが実行される前
に行なわれる。
発明のリジュームドライバ機能のフローを示す。これら
のフローチャートにより表わされるルーチンは上述した
ように、元のNMIハンドラに効率よくパッチするファ
ージャンプのデスティネーションルーチンを形成する。
図7乃至図11により表わされるルーチンはBIOSコ
ードの”ラッパー”として効率よく作用する。リジュー
ムNMIの場合には、リジュームドライバは、制御をB
IOSに渡す前に処理を行い、電力が復帰し、BIOS
リジューム機能が完了した後ポスト処理を行なう。コン
ピュータシステムは実際には、リジュームBIOSコー
ドの途中でパワーダウンする。
(パリティエラー)は、好適実施例では、リジュームN
MI以外に唯一発生することのできる他の種類のNMI
であるが、この場合には、この発明のリジュームドライ
バは前処理を行い、制御をBIOSに渡し、システムを
停止する。このとき、マシンは停止され、ユーザはリセ
ットボタンを押してシステムをリブートする必要があ
る。リジュームドライバに続く実際の実行パスはNMI
の発生に関係なく同じである。
を示すCMOSメモリロケーションがセットされると、
図7乃至図11に示すステップはNMI検出後実行され
る。リジュームドライバが最初に入力されると(図7の
ステップ701)、ドライバはステップ702に示すよ
うに最初にすべてのインタラプトを(例えばCLIアセ
ンブリ言語命令により)ディスエーブルにする。これ
は、INT2(例えばNMI)がトラップゲートであり
INTゲートではないので、OS/2に必要である。
ブラ言語プログラムに続いて、すべてのレジスタおよび
フラッグがPUSHタイプのコマンドによりスタックに
セーブされる。次に、DSレジスタが適当な値に(CP
Uモードによりセグメントかセレクタのいずれか)セッ
トされ、リジュームドライバが現在のプログラマブルイ
ンタラプトコントローラ(PIC)マスクをセーブしス
テップ703でPICをディスエーブルにする。
ているかあるいはプロテクトモードで動作しているかが
ステップ704で判断される。この判断は(例えばSM
SW命令を用いて)マシンステータスワードの適当なビ
ットを調べることにより簡単に行なうことができる。C
PUがリアルモードで動作している場合には、ステップ
708にジャンプする。
きに生じる処理はリアルモードのときよりも複雑であ
る。これは、リジュームBIOSコードに入るまえにC
PUの動作モードを切り替える必要がある。東芝T31
00SXコンピュータでは、BIOSはリアルモードお
よびプロテクトモードの両方で動作するように設計され
ているが、T3100SXBIOSはプロテクトモード
で動作しているときあるバグを有している。したがって
リアルモードで実行するのが望ましい。
モードをリアルモードに切り替える2つの方法がある。
第1に、トリプルフォルトを発生することにより”CP
Uリセット方法”を使用することができる。この方法
は、80286CPUと互換性があるという利点があ
る。他の方法は80386命令を使用した80386C
PUモード切り替えである。この方法は、”CPUリセ
ット方法”とは異なり、リアルモードへ切り替えるとき
にCPU(および全レジスタ)がリセットされないので
望ましい。80386CPUモード切り替え命令は設計
が簡潔になるので、好適実施例ではこの方法が用いられ
る。しかしながら、ホストCPUが80386互換マイ
クロプロセッサではなく80286マイクロプロセッサ
の場合には、”CPUリセット方法”を用いることもで
きる。
作しているときは、CPUをリアルモードにするために
ステップ705ー707が実行される。しかしながら、
BIOS中にある種の細工がされているマシンでは、最
初のステップを実行しなければならない。
東芝T3100SXラップトップコンピュータで実行さ
れている場合、BIOSの欠陥により次のステップを最
初に実行しなければならない。(1)MSWのモニタプ
ロセッサ(MP)ビットとタスク切り替えビット(T
S)をクリアして”co−processor not
present exceptions”が発生するの
を防止しなければならない。(2)タスクステートレジ
スタ(TSR)がセーブされ、タスクに”not bu
sy”を付してBIOSコードがハングアップしないよ
うにし、(3)ローカルディスクリプタテーブルレジス
タ(LDTレジスタ)を前もってリザーブしたメモリロ
ケーションにセーブする必要がある。これはBIOSが
上述した(1)乃至(3)の動作を行なわないからであ
る。T3100SXに存在する上述した欠陥および他の
BIOSコードの欠陥は他のマシンでは存在するかも知
れないし存在しないかも知れない。このような結果が他
のマシンで発見された場合には、上述したような適当な
手段を講じる必要がある。
場合、リアルモードに切り替えるために次のステップ7
05乃至707を実行する必要がある。初めにステップ
705において、CPUモードをプロテクトモードから
リアルモードに切り替えようとしていることを示すフラ
ッグがセットされる。このフラッグは電力が再び復帰し
たときに、モードをリアルモードからプロテクトモード
に切り替える必要があることを示すために使用される。
さらに、ステップ705において、プロテクトモードに
関連するレジスタすなわちSSおよびSPが前もってリ
ザーブしたメモリロケーションにセーブされる。
よびSPレジスタはリジュームドライバのデータセグメ
ントのスタックを指し示すように変更される。最後にス
テップ707において、CPUはリアルモードに切り替
えられる。この切り替えを行なうためのステップについ
て以下説明する。以下に述べるステップは、インテル社
から発行されているインテル80386DXプログラマ
ーリファレンスマニュアルのページ14ー4に記載され
ているステップの後に続くステップである。
セーブしてリジュームドライバのコードセグメントリミ
ットを64Kになるようにパッチする。次に、CSレジ
スタに新しいセグメントリミットをロードするように次
の命令へのファージャンプを実行する。これは、好適実
施例では、CSレジスタをスタックにプッシュし、次の
命令のオフセットをプッシュし、RETF命令を実行す
ることによりシミュレーション可能である。RETF命
令はスタックから”戻り”アドレスを引き出すので”リ
ターン”命令が実行された後次の命令が実行される。
セットしたダミーセレクタがロードされる。このとき、
インタラプトとNMIがディスエーブルされている。
(インタラプトは以前にディスエーブルされ、NMIは
このルーチンがNMIとして取り扱われることによりデ
ィスエーブルされる。)
6互換と仮定して)を使用してコントロールレジスタ0
(CR0)のプロテクトモードイネーブルビット(P
E)をクリアしてCPUをリアルモードにすることがで
きる。好適実施例では、マイクロソフトマクロアセンブ
ラ80386命令/マクロを使用して以下の如くプログ
ラミングしている。 MOV EAX,CR0 AND EAX,NOT1 MOV CR0,EAX しかしながら、他の同様の命令を80386互換マシン
に用いて同様の効果を得ることができる。
をクリアして適当な値をCSレジスタに入れるために次
の命令へのファージャンプを即実行する必要がある。
(もちろんリアルモードアドレシングを用いて)。
ベクトルテーブル(IVT)のベース値とリミット値を
ロードする必要がある。最後に、セグメントレジスタD
S,ES、およびSSにドライバのデータセグメントの
リアルモードアドレスをロードする。このときインタラ
プトは再びイネーブルにならない。これはリジュームド
ライバが中断された処理に戻るまでディスエーブルにし
ておく必要があるからである。
は、ステップ704からステップ708にジャンプし、
CPUがもともとプロテクトモードの場合には、ステッ
プ705乃至707が実行された後ステップ708が実
行される。ステップ708では、好適実施例による東芝
コンピュータで動作している場合、指示フラッグをCL
D命令によりクリアする必要がある。これは、このマシ
ンにおけるリジュームBIOSのバグである。従って、
他のマシンの場合、この命令は必要ないかもしれない。
ロセスが図7から続く。図7のステップが実行された
後、図8のステップ709が実行される。ステップ70
9はフロッピードライブがアクティブかどうか判断する
ステップを含む。この判断は以下の理由により行なう必
要がある。すなわち、リジューム機能がオンのときにフ
ロッピードライブがアクティブで、電力が回復する前に
フロッピードライブのフロッピーディスクをユーザが変
更したような危険な状態から守るために必要となる。も
し上述したことが起きると、コンピュータは、フロッピ
ーディスクが変更されたことがわからず、古いフロッピ
ーの内容にもとずいて、新しいフロッピーに書き込み動
作を行なうことになる。
ライバはフロッピーモーターステータス(0E5ヘキサ
のビット5)をチェックしてフロッピードライブがアク
ティブかどうか見る。フロッピーモータがアクティブな
らば、フロッピードライブはステップ710でリセット
される。(東芝コンピュータの場合、リジュームBIO
Sはフロッピードライブがアクティブならば働かな
い。)またフロッピードライブがアクティブでない場
合、電力が回復してリジュームBIOS内のIRET命
令が実行されると、リストアすべきシステムフラッグが
スタックにプッシュされる。このとき、ステップ711
が実行されリジュームドライバは、あらかじめセーブし
たこのコードのアドレスを用いてもとのBIOSリジュ
ームコードにジャンプすることができる。もとのBIO
Sリジュームコード標準のリジューム処理機能を実行
し、最後にインテリジェントパワーサプライ(図1の構
成要素117)がステップ712においてコンピュータ
の電力をオフにする。
電力がオフになった後で、コンピュータシステムのユー
ザは、図9のステップ713に示すように、インテリジ
ェントパワーサプライに、コンピュータの電力が回復さ
れることを知らせることができる。ユーザはこのときシ
ステムの電源をオフしたときと同じ電源スイッチ(図1
の構成要素SW)を押して知らせることができる。この
スイッチが押されると、コンピュータは、電源オフ時の
BIOSリジュームコードの実行を再開する。BIOS
リジュームコードは各処理を実行してリアルモードレジ
スタおよびデータをリストアし、リジュームドライバが
BIOSをコールした時点でのこの発明のリジュームド
ライバに制御を渡す。
ライバへ制御を渡した後、リジュームドライバはステッ
プ714を実行する。ステップ714はインタラプトを
(例えばCLI命令により)ディスエーブルするステッ
プを含む。これは、好適実施例では、リジュームBIO
Sがインタラプトをオンにしているからである。さら
に、ステップ714はPICが以前にディスエーブルに
されたときセーブされた状態にPICマスクをするステ
ップを含む。
テップ715に示すようにリジュームドライバによりO
S/2のためにリセットする必要がある。これはBIO
Sがこの機能を行なわないためである。例えば、T31
00SXコンピュータの場合、(1)時間軸周波数は3
2、768KHzに設定され、(2)インタラプトレー
トが31.25msになるようにレート選択ビットが設
定され、(3)周期インタラプト、更新完了インタラプ
ト、および24時間モードインタプリテーションがオン
になる。これを行なうための適当な命令が実行される。
う必要のある上述のステップに加えて、アドレスライン
20(A20)をステップ716でイネーブルにする必
要がある。これは、好適実施例では、BIOSコードが
A20をディスエーブルにするためである。東芝OS/
2はA20がイネーブル状態で動作する。従って、BI
OSから戻ったときに、ゲートA20をイネーブルにし
てOS/2がノーマルな実行を継続できるようにしてや
る必要がある。ゲートA20はキーボードコントローラ
(KBC)(図1の構成要素114A)を用いてイネー
ブルにすることができる。好適実施例では、KBCはイ
ンテルの8042チップで構成される。8042は80
386CPUに比べて遅いので、KBCでゲートA20
を制御するのは、処理速度の観点から問題がある。ゲー
トA20は、(1)キーボードコントローラの入力バッ
ファ(KBC入力バッファ)が空となり、(2)出力ポ
ートに書き込み要求をだし、(3)KBCがコマンドを
処理するのを待ち、(4)KBCの出力ポートにビット
1をセットしたバイトを送り、(5)ゲートA20がイ
ネーブルになるまで、KBCに”ヌルパルス出力ポー
ト”コマンドを送ることによりA20ゲートが”安定”
するまで待つことによりゲートA20はイネーブルとな
る。なお、詳細については、IBM ATテクニカルリ
ファレンスマニュアル(IBM社)のページ1ー51、
1−53、および1ー55に記載されている。
テータスフラッグにもとずいて、リジューム機能が開始
されたときフロッピードライブがアクティブであったか
どうか判断する。フロッピードライブがアクティブであ
れば、ステップ718でフロッピードライブが再びリセ
ットされる。この結果、OS/2ディスクドライバは何
か(例えばリジュームプロセス)が起きたとことに気付
き、警告ボックスが表示されてユーザに”Floppy
drive not ready”(例えば装置A)
を警告する。フロッピードライブが以前アクティブでな
かったならば、このリセットステップはスキップされ
る。
もとプロテクトモードにあったかどうか判断する。これ
は、もとのCPUモードが切り替わったことを示す、以
前セーブしたフラッグをチェックすることにより行なわ
れる。CPUがもともとプロテクトモードであった場
合、ステップ720が実行される。モードが切り替わっ
たことを示すモード切り替えフラッグがクリアされる。
その後、以前にセーブしたIDTレジスタ値とGDTレ
ジスタ値がリストアされる。(例えばLIDT命令およ
びLGDT命令により)さらに、プロテクトモードコー
ドとデータセレクタが検索されMPビットとTSビット
がリストアされPEビットがマシンステータスワードメ
モリロケーションにセットされこの値が実際のマシンス
テータスワードに格納され、CPUをプロテクトモード
に切り替える。最後に、プロテクトモードコードセレク
タと次の命令のオフセットをスタックにプッシュしてR
ET命令を実行することにより、CSレジスタに適当な
プロテクトモードをロードする。
クセレクタとポインタをリストアし、プロテクトモード
のDSおよびESレジスタをリストアすることにより行
なわれる。次に、ステップ722はCR0、TSS,お
よびLDTをリストアする。ステップ722は現在のタ
スクに以前セーブしたタスクレジスタ(TR)をロード
してタスクLDTレジスタをリストアする。(リジュー
ムBIOSはセーブしない)つぎに、以前セーブしたコ
ードセグメントリミットドライバのコードディスクリプ
タにパッチする。
かどうかに関係なく、ステップ723が実行される。ス
テップ723はリジューム後パラレルプリンタポートに
継続的にプリント可能にする。通常OS/2はプリンタ
ハードウエアインタラプトを失う、すなわち、プリンタ
インタラプトはリジューム後は起きない。これを回避す
るために、EOIコマンドをプリンタデバイス(IRQ
7)に送り、IRQ7がイネーブルになる。その後、ス
トローブがハイになり、遅延が生じ、ストローブがロウ
になる。
クションIOCtl88(ヘキサ)がコールされ、東芝
コンピュータならびに他のコンピュータ上に見られるオ
ートディスプレイパワーオフカウンタをリセットする。
オートディスプレイオフ機能は通常、所定時間キーボー
ドおよび/またはマウスが操作されないとき、コンピュ
ータのディスプレイを自動的にオフにする。リジューム
モードがイネーブルのときに、パワーダウンリクエスト
が検出されると、次に電力が回復したときに非動作期間
タイマはリセットされない。それゆえ、コンピュータが
リジュームしたときほんのわずかな時間ディスプレイが
オフするかもしれない。これは望ましくない。この発明
の好適実施例では、電力が回復した後、IOCtl88
(ヘキサ)OEMHLPファンクションによりオートデ
ィスプレイパワーオフカウンタがリセットされる。この
ように、リジューム後ディスプレイオフカウンタがリセ
ットする。ステップ724はES:BXにより適当なI
OCtlパケットを指示し、およびOEMHLPをコー
ルすることにより行なうことができる。
る。このステップは電源が落ちる前にスタックにプッシ
ュしたシステムフラッグおよびレジスタをリストアす
る。ステップ725を実行後、リジュームプロセスが完
了し、ステップ726でリジュームドライバはIRET
命令によりコントロールをOS/2アクティブタスクに
渡す。
SXあるいはT2000SXでこの発明を具現化する好
適実施例について述べた。しかしながら、コンピュータ
プログラミングおよび/またはコンピュータハードウエ
アデザインの当業者には明かなように、この発明は先進
のマイクロプロセッサ、インテリジェントパワーサプラ
イ、およびマイクロプロセッサの”リアル”モードでの
既存のリジューム処理機能を有するコンピュータシステ
ムであればどのようなコンピュータシステムでも実現で
きる。さらに、上述したステップの順番は、設計上の問
題であり、特に断わり書きが無い限り種々の順番で実行
できる。最後に、この発明の好適実施例はOS/2で動
作するように設計されているが、UNIX等のような他
の先進オペレーティングシステムや、モトローラ680
x0等のような他の先進マイクロプロセッサの場合に
も、この発明の種々のステップにおいて格納および検索
される、オペレーティングシステムおよびマイクロプロ
セッサに関連するデータを変更するだけでリジュームド
ライバを設計できる。
ーチンのような既存のリジューム処理ルーチンと結合し
た、OS/2で使用するリジューム処理方法が得られ
る。
バが動作可能なコンピュータの全体ブロック図。
ステップを示すフローチャート。
インタラプト(NMI)ベクトルの”フック”処理を示
すブロック図。
トルの”フック”処理を示すブロック図。
のインストールを含む、OS/2リジュームデバイスド
ライバをインストールするのに必要な種々のステップを
示すフローチャート。
に示すリアルモードおよびプロテクトモードNMIベク
トルを”フック”するのに必要であって、図5のタイム
ハンドラにより実行される種々のステップを示すフロー
チャート。
とき実行される種々のステップを示すフローチャートの
一部。
とき実行される種々のステップを示すフローチャートの
一部。
とき実行される種々のステップを示すフローチャートの
一部。
たとき実行される種々のステップを示すフローチャート
の一部。
たとき実行される種々のステップを示すフローチャート
の残りの部分。
3...RAM、104...DMAC、105...
PIC、106...PIT、107...RTC、1
08...拡張RAM、109...バックアップRA
M、118...ACアダプタ、110A...HD
C、110B...HDD、111A...FDC,1
11B...FDD、112A...PRTーCON
T、113A...UART、114A...KBC、
114B...キーボード、115A...DISPー
CONT、115B...PDP,115C...VR
AM、117...インテリジェントパワーサプライ、
300...OS/2システムローダ、301...リ
アルモードインタラプトベクトルテーブル、302
A...NOP命令、302B...ファージャンプ命
令、304...BIOS NMIハンドラ、303、
406...リジュームドライバ、401...プロテ
クトモードインタラプトディスクリプタテーブル、40
2...コードディスクリプタ、403...データデ
ィスクリプタ、407...OS/2カーネル
Claims (32)
- 【請求項1】プロテクトモードおよびリアルモードで動
作可能な中央処理装置(CPU)を有し、OS/2オペ
レーティングシステムで動作するコンピュータシステム
において、パワーオフ信号に応答してCPUの動作条件
を示すシステムデータをセーブし、次に、パワーオン信
号に応答してセーブしたデータをリストアするリジュー
ム処理方法において、 (a)以下のステップを行なうようにリジューム処理ド
ライバをイニシャライズするステップと; (b)前記パワーオフ信号に応答して、OS/2の動作
条件を示す、OS/2オペレーティングシステムに関連
する第1データ群をセーブするステップと; (c)前記OS/2オペレーティングシステムには関連
せず、前記CPUに関連し、前記CPUの動作条件を示
す第2データ群を前記パワーオフ信号に応答してセーブ
するステップと; (d)パワーオン信号に応答してステップ(c)でセー
ブした第2データ群をリストアするステップと;および (e)パワーオン信号に応答してステップ(b)でセー
ブした第1データ群をリストアするステップとで構成さ
れることを特徴とするリジューム処理方法。 - 【請求項2】前記ステップ(b)および(e)はOS/
2デバイスドライバにより実行されることを特徴とする
請求項2に記載のリジューム処理方法。 - 【請求項3】前記ステップ(b)および(e)はOS/
2ベースドライバにより実行されることを特徴とする請
求項1に記載のリジューム処理方法。 - 【請求項4】前記ステップ(b)および(e)はOS/
2OEMHLPドライバにより実行されることを特徴と
する請求項1に記載のリジューム処理方法。 - 【請求項5】前記ステップ(b)乃至(c)は前記CP
Uで発生するノンマスカブルインタラプト(NMI)に
応答して実行されることを特徴とする請求項1に記載の
リジューム処理方法。 - 【請求項6】前記ステップ(a)は (i)ステップ(b)乃至(e)を実行するためにリジ
ューム処理ドライバをロードするステップと;および (ii)前記CPUで発生したNMIに応答してステッ
プ(b)乃至(e)を実行するためにノンマスカブルイ
ンタラプト(NMI)に関連するベクトルを”フック”
するステップとで構成されることを特徴とする請求項1
に記載のリジューム処理方法。 - 【請求項7】前記ステップ(ii)は (A)前記CPUがリアルモードで動作しているとき、
前記CPU上で発生するNMIに応答してステップ
(b)乃至(e)を実行するようにNMIに関連するリ
アルモードベクトルをフックするステップと;および (B)前記CPUがプロテクトモードにあるとき、前記
CPU上で発生するNMIに応答してステップ(b)乃
至(e) を実行するようにNMIに関連するリアルモード
ベクトルをフックするステップとで構成されることを特
徴とする請求項6に記載のリジューム処理方法。 - 【請求項8】前記ステップ(c)乃至(d)はリジュー
ムBIOSルーチンにより実行されることを特徴とする
請求項1に記載のリジューム処理方法。 - 【請求項9】前記ステップ(a)は、 (i)GDTを参照するためにGDTに関連する第2セ
レクタを作成するステップと; (ii)メモリのダミーセグメントを参照するために、
GDTに関連するダミーセレクタを作成するステップ
と; (iii)前記CPUのリアルモードに関連するデータ
セグメントレジスタをリジューム処理コードセグメント
にセーブするステップと; (iv)前記CPUのプロテクトモードに関連するデー
タセレクタレジスタをリジューム処理コードセグメント
にセーブするステップと; (v)前記CPUのプロテクトモードに関連するコード
セレクタレジスタを前記リジューム処理コードセグメン
トにセーブするステップと; (vi)前記CPU上に発生するNMIに応答してステ
ップ(b)乃至(e)を行なうためにノンマスカブルイ
ンタラプト(NMI)に関連するリアルモードベクトル
とプロテクトモードベクトルをフックするためにタイマ
ハンドラをインストールするステップと;および (vii)前記CPU上で発生するNMIに応答してス
テップ(b)乃至(e)を実行するために、ステップ
(vi)に応答してNMIに関連するリアルモードベク
トルとプロテクトモードベクトルをフックするステップ
とで構成されることを特徴とする請求項8に記載のリジ
ューム処理方法。 - 【請求項10】前記メモリのダミーセグメントは64キ
ロバイトの長さを有することを特徴とする請求項9に記
載のリジューム処理方法。 - 【請求項11】前記ステップ(iii)乃至(v)は前
記レジスタを前記リジューム処理コードセグメントの上
部にセーブすることを特徴とする請求項9に記載のリジ
ューム処理方法。 - 【請求項12】前記ステップ(vii)は (A)OS/2ローダオペレーションに応答して前記N
MIに関連するリアルモードベクトルをダミーリアルモ
ードNMIハンドラルーチンを指し示すように設定する
ステップと; (B)ステップ(b)乃至(e)を実行するためにリジ
ューム処理ドライバへジャンプするように前記ダミーリ
アルモードNMIハンドラをパッチするステップと;お
よび (C)ステッ(b)乃至(e)を実行するために、前記
リジュームドライバへジャンプするように前記プロテク
トモードベクトルに関連するプロテクトモードNMIハ
ンドラルーチンをパッチするステップとで構成されるこ
とを特徴とする請求項9に記載のリジューム処理方法。 - 【請求項13】前記ステップ(vii)は前記タイマハ
ンドラをデインストールする初期ステップをさらに有す
ることを特徴とする請求項12に記載のリジューム処理
方法。 - 【請求項14】前記ステップ(b)は (i)前記CPUに関連するインタラプトをディスエー
ブルし、 (ii)フラッグレジスタを含む、前記CPUに関連す
るレジスタをセーブするステップと; (iii)前記CPUに関連するプログラマブルインタ
ラプトコントローラ(PIC)をセーブするステップ
と;および (iv)前記PICをディスエーブルするステップとで
構成されることを特徴とする請求項1に記載のリジュー
ム処理方法。 - 【請求項15】前記セーブステップ(ii)乃至(ii
i)は各データを前記CPUに関連するスタックにセー
ブすることを特徴とする請求項14に記載のリジューム
処理方法。 - 【請求項16】前記ステップ(b)はさらに (v)前記フラッグレジスタを前記スタックにセーブ
し、および (vi)前記CPUのリターンアドレスを前記CPUの
スタックにセーブするステップとで構成されることを特
徴とする請求項14に記載のリジューム処理方法。 - 【請求項17】前記ステップ(i)乃至(vi)は前記
CPUがリアルモードにあるときに実行されることを特
徴とする請求項16に記載のリジューム処理方法。 - 【請求項18】前記ステップ(v)は前記フラッグレジ
スタに関連する指示フラッグをクリアする初期ステップ
をさらに有することを特徴とする請求項16に記載のリ
ジューム処理方法。 - 【請求項19】前記ステップ(b)はさらに(vii)
パワーオフ信号を受信したときにフロッピードライブが
アクティブのとき、前記CPUに関連するフロッピード
ライブをリセットするステップとで構成されることを特
徴とする請求項16に記載のリジューム処理方法。 - 【請求項20】前記ステップ(b)は (v)前記CPUに関連するスタックセレクタとポイン
タをセーブするステップと; (vi)前記スタックポインタをローカルスタックエリ
アを指し示すように設定するステップと; (vii)CPUがリアルモードで動作するように切り
替えるステップと; (viii)前記フラッグレジスタを前記スタックにセ
ーブするステップと;および (ix)前記CPUのリターンアドレスを前記CPUの
スタックにセーブするステップとで構成されることを特
徴とする請求項14に記載のリジューム処理方法。 - 【請求項21】前記セーブステップ(v)は各データを
前記CPUに関連するメモリロケーションにセーブする
ことを特徴とする請求項20に記載のリジューム処理方
法。 - 【請求項22】前記ステップ(i)乃至(ix)は前記
CPUがプロテクトモードにあるとき実行されることを
特徴とする請求項20に記載のリジューム処理方法。 - 【請求項23】前記ステップ(viii)は前記フラッ
グレジスタに関連する指示フラッグをクリアする初期ス
テップをさらに有することを特徴とする請求項20に記
載のリジューム処理方法。 - 【請求項24】前記ステップ(b)はさらに(x)前記
パワーオフ信号を受信したときに、フロッピードライブ
がアクティブであれば、前記CPUに関連するフロッピ
ードライブをリセットするステップをさらに有すること
を特徴とする請求項20に記載のリジューム処理方法。 - 【請求項25】前記ステップ(e)は (i)前記CPUに関連するインタラプトをディスエー
ブルにするステップと; (ii)前記CPUに関連するプログラマブルインタラ
プトコントローラ(PIC)をイネーブルにするステッ
プと; (iii)前記CPUに関連する以前セーブしたPIC
マスクをリストアするステップと; (iv)前記CPUに関連するリアルタイムクロックを
構成するステップと; (v)前記CPUに関連するA20アドレスラインをイ
ネーブルにするステップと;および (vi)前記パワーオフ信号を受信したとき、フロッピ
ードライブがアクティブなら前記CPUに関連するフロ
ッピードライブをリセットするステップとで構成される
ことを特徴とする請求項1に記載のリジューム処理方
法。 - 【請求項26】前記リストアステップ(iii)は前記
CPUに関連するスタックから各データをリストアする
ことを特徴とする請求項25に記載のリジューム処理方
法。 - 【請求項27】前記ステップ(e)は (vii)前記CPUに関連するパラレルポートをリセ
ットするステップと;(viii)前記CPUに関連す
るRS−232ポートをリセットするステップと;およ
び (ix)フラッグレジスタを含む、前記CPUに関連す
る以前セーブしたレジスタをリストアするステップとか
ら成ることを特徴とする請求項25に記載のリジューム
処理方法。 - 【請求項28】前記ステップ(i)乃至(ix)は前記
CPUがリアルモードにあるときに実行されることを特
徴とする請求項27に記載のリジューム処理方法。 - 【請求項29】前記リストアステップ(ix)は前記C
PUに関連するスタックから各データをリストアするこ
とを特徴とする請求項27に記載のリジューム処理方
法。 - 【請求項30】前記ステップ(e)はさらに、 (vii)前記CPUに関連する以前にセーブしたイン
タラプトディスクリプタテーブル(IDT)レジスタ値
をリストアするステップと; (viii)前記CPUに関連する以前にセーブしたグ
ローバルディスクリプタテーブル(GDT)レジスタ値
をリストアするステップと; (ix)ステップ(b)および(e)を実行可能なドラ
イバを参照するためのセレクタをコードセグメントレジ
スタにセットするステップと; (x)前記ドライバを参照するためのセレクタをコード
セグメントレジスタにセットするステップと; (xi)前記CPUに関連するマシンステータスワード
(MSW)のプロテクトモードイネーブルビットをセッ
トするステップと; (xii)前記CPUに関連する以前セーブしたスタッ
クセレクタとポインタをリストアするステップと; (xiii)前記CPUに関連するパラレルポートをリ
セットするステップと;および (xiv)フラッグレジスタを含む、前記CPUに関連
する以前セーブしたレジスタをリストアするステップと
で構成されることを特徴とする請求項25に記載のリジ
ューム処理方法。 - 【請求項31】前記ステップ(i)乃至(xv)は前記
CPUがプロテクトモードにあるときに実行されること
を特徴とする請求項30に記載のリジューム処理方法。 - 【請求項32】前記リストアステップ(vii)乃至
(viii)および(xv)は前記CPUに関連するス
タックから各データをリストアすることを特徴とする請
求項30に記載のリジューム処理方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/707044 | 1991-05-29 | ||
| US07/707,044 US5297282A (en) | 1991-05-29 | 1991-05-29 | Resume processing function for the OS/2 operating system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05189075A true JPH05189075A (ja) | 1993-07-30 |
| JP3437587B2 JP3437587B2 (ja) | 2003-08-18 |
Family
ID=24840134
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13717692A Expired - Lifetime JP3437587B2 (ja) | 1991-05-29 | 1992-05-28 | オペレーティングシステムのためのリジューム処理方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5297282A (ja) |
| EP (1) | EP0516159B1 (ja) |
| JP (1) | JP3437587B2 (ja) |
| DE (1) | DE69224007T2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0744260A (ja) * | 1993-07-23 | 1995-02-14 | Internatl Business Mach Corp <Ibm> | Cpuがプロテクト・モードでコードを実行する状態を保存し復元する方法 |
| JPH0744286A (ja) * | 1993-07-26 | 1995-02-14 | Internatl Business Mach Corp <Ibm> | マルチレベル電源管理を有するコンピュータ・システム |
| CN102567128A (zh) * | 2010-12-14 | 2012-07-11 | 微软公司 | 系统复位 |
Families Citing this family (81)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
| JPH05158664A (ja) * | 1991-12-03 | 1993-06-25 | Canon Inc | 情報処理装置 |
| US5410713A (en) * | 1992-01-02 | 1995-04-25 | Smith Corona/Acer | Power-management system for a computer |
| EP0559221B1 (en) * | 1992-03-06 | 1999-05-12 | Microsoft Corporation | Method for storing programs |
| JP2880863B2 (ja) * | 1992-10-29 | 1999-04-12 | 株式会社東芝 | サスペンド制御方法およびシステム |
| JPH0773046A (ja) * | 1992-12-07 | 1995-03-17 | Intel Corp | コンピュータシステムで回路をエミュレートする 方法及び装置 |
| JPH06180668A (ja) * | 1992-12-11 | 1994-06-28 | Toshiba Corp | コンピュータシステム |
| DE9301336U1 (de) * | 1993-02-01 | 1993-03-18 | Siemens Ag, 8000 Muenchen | Einrichtung zur Interruptsteuerung |
| EP0622731A3 (en) * | 1993-04-26 | 1995-02-15 | Ibm | Boot architecture for micro-core based systems. |
| US5513359A (en) * | 1993-07-23 | 1996-04-30 | International Business Machines Corporation | Desktop computer having a single-switch suspend/resume function |
| US5511202A (en) * | 1993-07-26 | 1996-04-23 | International Business Machines Corporation | Desktop computer system having zero-volt system suspend and control unit for ascertaining interrupt controller base address |
| DE69427480T2 (de) * | 1993-10-04 | 2002-03-28 | Elonex I.P. Holdings Ltd., London | Verfahren und vorrichtung für eine optimierte leistungsversorgung für eine rechnereinrichtung |
| US5475822A (en) * | 1993-11-15 | 1995-12-12 | Motorola, Inc. | Data processing system for resuming instruction execution after an interrupt and method therefor |
| US5459462A (en) * | 1993-12-09 | 1995-10-17 | Onspec Electronic, Inc. | Keyboard controller state machine |
| US5371884A (en) * | 1993-12-21 | 1994-12-06 | Taligent, Inc. | Processor fault recovery system |
| US5535400A (en) * | 1994-01-28 | 1996-07-09 | Compaq Computer Corporation | SCSI disk drive power down apparatus |
| US5696897A (en) * | 1994-01-31 | 1997-12-09 | Sun Microsystems, Inc. | Method and apparatus for a multi-layer system quiescent suspend and resume operation |
| US5555510A (en) * | 1994-08-02 | 1996-09-10 | Intel Corporation | Automatic computer card insertion and removal algorithm |
| US5557777A (en) * | 1994-09-30 | 1996-09-17 | Apple Computer, Inc. | Method and apparatus for system recovery from power loss |
| US5574920A (en) * | 1994-10-25 | 1996-11-12 | Microsoft Corporation | Method for controlling power down of a hard disk drive in a computer |
| US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
| US6438621B1 (en) | 1994-11-14 | 2002-08-20 | Microsoft Corporation | In-memory modification of computer programs |
| WO1996018953A1 (en) * | 1994-12-12 | 1996-06-20 | Intel Corporation | Cpu-cycle stealing for multi-tasking operating system |
| KR0174483B1 (ko) * | 1994-12-22 | 1999-04-01 | 윤종용 | 키신호 입력에 의한 작업 복구가 가능한 컴퓨터 시스템 및 그 제어방법 |
| US5682550A (en) * | 1995-06-07 | 1997-10-28 | International Business Machines Corporation | System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information |
| US5909576A (en) * | 1995-08-16 | 1999-06-01 | International Business Machines Corporation | Method and apparatus for using device drivers of a first operating system, under the control of a second operating system |
| US6327653B1 (en) | 1995-11-07 | 2001-12-04 | Samsung Electronics Co., Ltd. | Technique for easily changing operating systems of a digital computer system using at least two pushbuttons |
| KR0180680B1 (ko) * | 1995-12-08 | 1999-05-15 | 윤종용 | 중앙처리장치의 리셋장치 및 방법 |
| US5787495A (en) * | 1995-12-18 | 1998-07-28 | Integrated Device Technology, Inc. | Method and apparatus for selector storing and restoration |
| US5974552A (en) * | 1995-12-29 | 1999-10-26 | Samsung Electronics Co., Ltd. | Method and apparatus for executing a scheduled operation after wake up from power off state |
| US5802350A (en) * | 1996-01-18 | 1998-09-01 | International Business Machines Corporation | System and method for selecting an interrupt system based upon the operating system of a multiprocessor system |
| US6678712B1 (en) | 1996-01-19 | 2004-01-13 | International Business Machines Corporation | Method and system for executing a program under one of a plurality of mutually exclusive operating environments |
| US5784628A (en) * | 1996-03-12 | 1998-07-21 | Microsoft Corporation | Method and system for controlling power consumption in a computer system |
| KR980013092A (ko) | 1996-07-29 | 1998-04-30 | 김광호 | 교환시스템의 화일관리장치 및 방법 |
| KR100260028B1 (ko) * | 1996-08-13 | 2000-06-15 | 윤종용 | 화일시스템의 정보 복구방법 |
| US6134616A (en) * | 1996-10-28 | 2000-10-17 | International Business Machines Corporation | Method and apparatus for dynamic re-enumeration and reconfiguration of computer devices after system hibernation |
| US5819095A (en) * | 1996-12-20 | 1998-10-06 | International Business Machines Corporation | Method and apparatus for allowing an interrupt controller on an adapter to control a computer system |
| US5787290A (en) * | 1996-12-20 | 1998-07-28 | International Business Machines Corporation | Adapter with an onboard interrupt controller for controlling a computer system |
| US5930495A (en) * | 1997-01-13 | 1999-07-27 | International Business Machines Corporation | Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment |
| US5978912A (en) * | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
| US7441254B1 (en) | 1997-07-09 | 2008-10-21 | International Business Machines Corporation | Simulation of memory-mapped I/O |
| US6076161A (en) * | 1997-08-25 | 2000-06-13 | National Semiconductor Corporation | Microcontroller mode selection system and method upon reset |
| US6216187B1 (en) | 1997-12-01 | 2001-04-10 | Toshiba America Information Systems, Inc. | System for powering down a portable computer in a docking station |
| US6173417B1 (en) | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
| US6167330A (en) * | 1998-05-08 | 2000-12-26 | The United States Of America As Represented By The Secretary Of The Air Force | Dynamic power management of systems |
| US6499050B1 (en) * | 1998-06-09 | 2002-12-24 | Advanced Micro Devices, Inc. | Means used to allow driver software to select most appropriate execution context dynamically |
| US6275893B1 (en) * | 1998-09-14 | 2001-08-14 | Compaq Computer Corporation | Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system |
| US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
| US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
| US7770016B2 (en) | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
| US6519698B1 (en) * | 1999-10-06 | 2003-02-11 | Micron Technology, Inc. | Method for saving system configuration information to shorten computer system initialization time by checking the state of a chassis intrusion detection circuit |
| US6418524B1 (en) * | 1999-12-28 | 2002-07-09 | Ati International Srl | Method and apparatus for dependent segmentation and paging processing |
| US6636963B1 (en) | 1999-12-30 | 2003-10-21 | Cardiac Pacemakers, Inc. | Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium |
| US7216345B1 (en) * | 2000-04-07 | 2007-05-08 | Hall Aluminum Llc | Method and apparatus for protectively operating a data/information processing device |
| US6898697B1 (en) * | 2002-03-29 | 2005-05-24 | Advanced Micro Devices, Inc. | Efficient method for mode change detection and synchronization |
| US7360220B2 (en) * | 2002-10-31 | 2008-04-15 | Intel Corporation | Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm |
| US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
| US8103592B2 (en) * | 2003-10-08 | 2012-01-24 | Microsoft Corporation | First computer process and second computer process proxy-executing code on behalf of first process |
| US7788496B2 (en) * | 2003-10-08 | 2010-08-31 | Microsoft Corporation | First computer process and second computer process proxy-executing code on behalf thereof |
| US7380269B2 (en) * | 2003-10-08 | 2008-05-27 | Microsoft Corporation | Changing code execution path using kernel mode redirection |
| US7979911B2 (en) | 2003-10-08 | 2011-07-12 | Microsoft Corporation | First computer process and second computer process proxy-executing code from third computer process on behalf of first process |
| US8381037B2 (en) | 2003-10-09 | 2013-02-19 | International Business Machines Corporation | Method and system for autonomic execution path selection in an application |
| US7415705B2 (en) * | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
| US7895382B2 (en) | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
| CN100416459C (zh) * | 2004-10-19 | 2008-09-03 | 宁波三维技术有限公司 | 税控收款机异常断电打印发票无缺陷的方法及装置 |
| US7529921B2 (en) * | 2004-12-17 | 2009-05-05 | Cardiac Pacemakers, Inc. | Fast initialization of medical device system having multiple operating systems |
| US20080052708A1 (en) * | 2004-12-31 | 2008-02-28 | Juhang Zhong | Data Processing System With A Plurality Of Subsystems And Method Thereof |
| US7509530B2 (en) * | 2005-01-19 | 2009-03-24 | Sonic Solutions | Method and system for use in restoring an active partition |
| US7673174B2 (en) * | 2005-04-06 | 2010-03-02 | University Of Washington | Recovering device drivers |
| US7581051B2 (en) * | 2005-05-16 | 2009-08-25 | Microsoft Corporation | Method for delivering interrupts to user mode drivers |
| US20140373144A9 (en) * | 2006-05-22 | 2014-12-18 | Alen Capalik | System and method for analyzing unauthorized intrusion into a computer network |
| US8429746B2 (en) | 2006-05-22 | 2013-04-23 | Neuraliq, Inc. | Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems |
| DE112008002277B4 (de) * | 2007-10-09 | 2012-09-20 | Mitsubishi Electric Corp. | Mikrocomputersteuerung |
| US9106697B2 (en) | 2010-06-24 | 2015-08-11 | NeurallQ, Inc. | System and method for identifying unauthorized activities on a computer system using a data structure model |
| US8789189B2 (en) | 2010-06-24 | 2014-07-22 | NeurallQ, Inc. | System and method for sampling forensic data of unauthorized activities using executability states |
| US9354681B2 (en) | 2013-06-28 | 2016-05-31 | Intel Corporation | Protected power management mode in a processor |
| WO2016118216A2 (en) | 2014-11-06 | 2016-07-28 | Intertrust Technologies Corporation | Secure application distribution systems and methods |
| CA2973367A1 (en) | 2015-01-07 | 2016-07-14 | Gosecure Inc. | System and method for monitoring a computer system using machine interpretable code |
| US10452561B2 (en) | 2016-08-08 | 2019-10-22 | Raytheon Company | Central processing unit architecture and methods for high availability systems |
| JP6748146B2 (ja) * | 2018-05-17 | 2020-08-26 | ファナック株式会社 | 制御装置、制御方法及び制御プログラム |
| US20260003738A1 (en) * | 2024-06-28 | 2026-01-01 | Qualcomm Incorporated | Hardware based architecture state save and restore for processing elements |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
| GB1545169A (en) * | 1977-09-22 | 1979-05-02 | Burroughs Corp | Data processor system including data-save controller for protection against loss of volatile memory information during power failure |
| US4143283A (en) * | 1978-01-17 | 1979-03-06 | General Atomic Company | Battery backup system |
| US4432049A (en) * | 1978-09-05 | 1984-02-14 | Pern Shaw | Programmable mode select by reset |
| US4234920A (en) * | 1978-11-24 | 1980-11-18 | Engineered Systems, Inc. | Power failure detection and restart system |
| US4779187A (en) * | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
| US4825358A (en) * | 1985-04-10 | 1989-04-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
| US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
| US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
| US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
| US4907150A (en) * | 1986-01-17 | 1990-03-06 | International Business Machines Corporation | Apparatus and method for suspending and resuming software applications on a computer |
| US4928237A (en) * | 1987-03-27 | 1990-05-22 | International Business Machines Corp. | Computer system having mode independent addressing |
| US5125087A (en) * | 1988-11-07 | 1992-06-23 | Microsoft Corporation | Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register |
| JPH0327419A (ja) * | 1989-06-23 | 1991-02-05 | Toshiba Corp | パーソナルコンピュータ |
| US5175853A (en) * | 1990-10-09 | 1992-12-29 | Intel Corporation | Transparent system interrupt |
-
1991
- 1991-05-29 US US07/707,044 patent/US5297282A/en not_active Expired - Lifetime
-
1992
- 1992-05-28 JP JP13717692A patent/JP3437587B2/ja not_active Expired - Lifetime
- 1992-05-29 EP EP92109114A patent/EP0516159B1/en not_active Expired - Lifetime
- 1992-05-29 DE DE69224007T patent/DE69224007T2/de not_active Expired - Lifetime
-
1993
- 1993-12-07 US US07/162,359 patent/US5339426A/en not_active Expired - Lifetime
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0744260A (ja) * | 1993-07-23 | 1995-02-14 | Internatl Business Mach Corp <Ibm> | Cpuがプロテクト・モードでコードを実行する状態を保存し復元する方法 |
| JPH0744286A (ja) * | 1993-07-26 | 1995-02-14 | Internatl Business Mach Corp <Ibm> | マルチレベル電源管理を有するコンピュータ・システム |
| CN102567128A (zh) * | 2010-12-14 | 2012-07-11 | 微软公司 | 系统复位 |
| US8819487B2 (en) | 2010-12-14 | 2014-08-26 | Microsoft Corporation | System reset |
| US9367400B2 (en) | 2010-12-14 | 2016-06-14 | Microsoft Technology Licensing, Llc | System reset |
| US10067835B2 (en) | 2010-12-14 | 2018-09-04 | Microsoft Technology Licensing, Llc | System reset |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69224007D1 (de) | 1998-02-19 |
| EP0516159A3 (en) | 1994-09-28 |
| US5297282A (en) | 1994-03-22 |
| EP0516159B1 (en) | 1998-01-14 |
| US5339426A (en) | 1994-08-16 |
| DE69224007T2 (de) | 1998-07-02 |
| EP0516159A2 (en) | 1992-12-02 |
| JP3437587B2 (ja) | 2003-08-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3437587B2 (ja) | オペレーティングシステムのためのリジューム処理方法 | |
| JP3037826B2 (ja) | モード切り替え方法及び装置 | |
| US5021983A (en) | Suspend/resume apparatus and method for reducing power consumption in battery powered computers | |
| US5041964A (en) | Low-power, standby mode computer | |
| US6158000A (en) | Shared memory initialization method for system having multiple processor capability | |
| JP2880863B2 (ja) | サスペンド制御方法およびシステム | |
| US5241680A (en) | Low-power, standby mode computer | |
| US6438668B1 (en) | Method and apparatus for reducing power consumption in a digital processing system | |
| US5163153A (en) | Low-power, standby mode computer | |
| CA2120056C (en) | Desktop computer system having zero volt system suspend | |
| CA2120055C (en) | Desktop computer system having multilevel power management | |
| JP3266560B2 (ja) | 情報処理システム及びその制御方法 | |
| JP2726004B2 (ja) | 保護モードでコードを実行するcpuの状態を保存する方法、cpuの状態を不揮発性記憶装置から復元する方法、ページ・ディレクトリ・ベース・レジスタのレジスタ値を推定する方法およびページ・ディレクトリ・ベース・レジスタの推定レジスタ値を検証する方法 | |
| US7058831B2 (en) | System and method for transitioning a system comprising a microcontroller into a low power state in response to a first sleep type which is not recognized by part of the system and a second sleep type which is recognized by part of the system | |
| US5276890A (en) | Resume control system and method for executing resume processing while checking operation mode of CPU | |
| US9372754B2 (en) | Restoring from a legacy OS environment to a UEFI pre-boot environment | |
| US5794054A (en) | Flash ROM sharing between a processor and a controller | |
| US6453423B1 (en) | Computer remote power on | |
| US20040015941A1 (en) | Information-processing apparatus equipped with nonvolatile memory device and firmware-updating method for use in the apparatus | |
| JP3869049B2 (ja) | コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路 | |
| US6681336B1 (en) | System and method for implementing a user specified processing speed in a computer system and for overriding the user specified processing speed during a startup and shutdown process | |
| JPH1039962A (ja) | コンピュータ・システム | |
| US5748971A (en) | Option card hibernation system | |
| US6154846A (en) | System for controlling a power saving mode in a computer system | |
| US20030188115A1 (en) | System and method for backing up data from a quiesced storage device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120606 Year of fee payment: 9 |
|
| EXPY | Cancellation because of completion of term |