JP3037826B2 - モード切り替え方法及び装置 - Google Patents

モード切り替え方法及び装置

Info

Publication number
JP3037826B2
JP3037826B2 JP4152422A JP15242292A JP3037826B2 JP 3037826 B2 JP3037826 B2 JP 3037826B2 JP 4152422 A JP4152422 A JP 4152422A JP 15242292 A JP15242292 A JP 15242292A JP 3037826 B2 JP3037826 B2 JP 3037826B2
Authority
JP
Japan
Prior art keywords
mode
cpu
register
operation mode
resume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4152422A
Other languages
English (en)
Other versions
JPH05250059A (ja
Inventor
ジェームズ・ティー・エル・コウ
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of JPH05250059A publication Critical patent/JPH05250059A/ja
Application granted granted Critical
Publication of JP3037826B2 publication Critical patent/JP3037826B2/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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はコンピュータシステム
に使用されるリジューム処理制御システムに関し、特に
電源オフ信号に応答してマイクロソフトウインドウズの
動作環境下で動作するコンピュータシステムのステータ
スをセーブし、コンピュータシステムの電源をオフに
し、次にコンピュータシステムの電源をオンにして、コ
ンピュータシステムを元の状態に復帰させる方法に関す
る。
【0002】
【従来の技術】一般的なコンピュータシステム、例えば
80x86マイクロプロセッサあるいはその同等品を用
いた”IBM互換”のマイクロコンピュータでは、シス
テムの電源がオフになると、マイクロプロセッサに関連
するレジスタの内容やメモリロケーションは通常消失す
る。その後、電源がコンンピュータシステムに投入され
ると、初期化ステップが実行され、システムが初期化状
態になる。この場合、電源がオフになる前にシステム内
に存在していたコンピュータプログラムやデータは再度
ロードしなければならない。
【0003】近年、”リジューム”処理機能がある種の
コンピュータシステム、例えば東芝製のラップトップマ
イクロコンピュータに設けられ、電源オフ時にシステム
の動作状態をセーブし、次に電源がオンになったとき
に、電源オフ時に中断された処理に復帰することが可能
なように構成されている。この機能は、表示装置やディ
スクドライブのような大電力を必要とする装置への電力
を遮断し、コンピュータの低電力ダイナミックメモリへ
電力を供給し続けることにより達成される。この電力消
費保持機能により、バッテリ駆動のラップトップコンピ
ュータのように、限られた電源しか持たないコンピュー
タシステムは、必要な電力消費量を最小に抑えながらシ
ステムの現在の状態を維持することができる。
【0004】例えば、東芝製ラップトップコンピュータ
に見られる内蔵リジューム機能(”オートリジューム”
(登録商標)と呼ばれる)により、ユーザはデータを失
うことなく、コンピュータの電源をオフにし、バッテリ
電力を節約することができる。この機能は、コンピュー
タのリードオンリメモリ(ROM)内の基本入出力シス
テム(BIOS)ルーチンに組み込まれている。これら
のBIOSリジュームルーチンは電源遮断要求がノンマ
スカブルインタラプトによりマイクロプロセッサに受信
された後コールされる。このリジューム機能は、すべて
の必要なレジスタ情報をランダムアクセスメモリ(RA
M)にセーブしそのメモリへの電力を供給しながら、他
のコンピュータ装置への電力を遮断することにより行な
われる。通常の電力に戻ると、セーブされた情報はレジ
スタに戻され、システムは元の状態に戻る。
【0005】この特徴は、バッテリの寿命を延ばすため
にユーザが意図的にシステムの電源を落とす場合に有効
であるが、さらにバッテリ電力がロウバッテリになった
ときに有効である。ロウバッテリになると、システム
は、(例えばビープ音を発生して)バッテリの電力が低
下したことをユーザに知らせる。ユーザが所定時間(約
5分)以内にシステムの電源を落とさなかった場合、コ
ンピュータは自動的にリジュームモードになり、電源を
落とす。通常電力が再度印加されると、BIOSがコン
ピュータを元の状態に復帰させるので、データを消失す
ることもなく、また、プログラムの実行が中断されるこ
ともない。
【0006】
【発明が解決しようとする課題】しかしながら、このよ
うなラップトップコンピュータに現在組み込まれている
リジューム処理のBIOSコードはマイクロプロセッサ
が”リアルモード”で動作しているときにMS−DOS
オペレーティングシステム下でのリジューム処理しかサ
ポートしていない。例えば、米国マイクロソフト社が提
供するグラフィカルユーザインターフェースであるウイ
ンドウズ(Windows)のような異なる動作環境下
で動作させると、現在のBIOSリジューム機能では、
マイクロプロセッサで使用されるある種のレジスタおよ
びその他のデータを正しくセーブせず、リジューム処理
ができないという問題がある。これは、一部には、Wi
ndowsの動作環境が、”エンハンストモード”のよ
うな先進のモードで動作するマルチモード80386マ
イクロプロセッサあるいは80386と互換のある80
486等のマイクロプロセッサを使用したコンピュータ
システム上で動作するように設計されているためであ
る。一方、MS−DOSオペレーティングシステムは1
つの”リアルモード”を利用した8086/8088マ
イクロプロセッサ上で動作するように設計されている。
【0007】従って、そのようなコンピュータでBIO
Sが提供する既存のリジューム処理を利用するには、”
ラッパー”をBIOSに作って、BIOSがリジューム
処理を実行できる状態にコンピュータをする必要があ
る。この発明の目的は、Windowsのような先進の
オペレーティングシステムに使用するリジューム処理方
法を提供することである。
【0008】この発明の他の目的は、エンハンストモー
ドで動作する、インテル80386のような先進マイク
ロプロセッサに使用するリジューム処理方法を提供する
ことである。
【0009】この発明のさらに他の目的は、MS−DO
Sリジューム処理BIOSルーチンのような既存のリジ
ューム処理ルーチンとともにマイクロプロセッサのエン
ハンストモードで使用するリジューム処理方法を提供す
ることである。この発明のさらに他の目的は、既存のリ
ジューム処理ルーチンの”ラッパー”として機能するリ
ジューム処理方法を提供することである。
【0010】この発明のさらに他の目的は、既存のリジ
ューム処理ルーチンがコールされる前にオペレーティン
グシステムの動作条件を示すデータをセーブするリジュ
ーム処理方法を提供することである。
【0011】この発明のさらに他の目的は、既存のリジ
ューム処理ルーチンが実行された後に先進マイクロプロ
セッサの動作条件を示すデータを復帰(リストア)する
リジューム処理方法を提供することである。
【0012】この発明のさらに他の目的は、80386
マイクロプロセッサのエンハンストモードのようなマイ
クロプロセッサの先進モードから、ベースモードで動作
するように設計されたコンピュータプログラムを実行す
る80386マイクロプロセッサのリアルモードのよう
な、マイクロプロセッサのベースモードに切り替え、次
に先進モードに切り替える処理を提供することである。
【0013】この発明によれば、エンハンストモードで
動作するインテル80386のような先進のリジューム
処理ドライバが設けられ、先進のマイクロプロセッサの
動作条件を示すデータをシステムメモリにセーブし、リ
アルモードで動作するMS−DOSのような以前から存
在するオペレーティングシステム用に設計された既存の
リジューム処理ルーチンをコールする。既存のリジュー
ム処理ルーチンはさらに、既存のオペレーティングシス
テムに関連する動作条件データをシステムメモリにセー
ブするための処理をさらに行い、電源をオフにするため
のシーケンス制御を行い、コンピュータメモリを除くす
べての回路への電力供給を遮断する。その後、既存のリ
ジューム処理ルーチンは、既存のオペレーティングシス
テムに関連する動作条件データをシステムメモリから復
帰するための処理を行い、この発明のリジューム処理ド
ライバに制御を渡す。リジューム処理ドライバは、先進
のマイクロプロセッサの動作条件を示すデータをシステ
ムメモリからリストアし、リジューム処理ドライバが開
始される前に実行されていたコンピュータプログラムに
制御を渡す。さらに他の実施例では、この発明は、エン
ハンストモードからリアルモードへの切り替えを正しく
行なうことができるとともに、リジューム機能以外のア
プリケーションで使用するためにエンハンストモードへ
戻すことができる。
【0014】
【実施例】以下、詳細な説明を行なう前に、以下の用語
について定義する。
【0015】CPU:中央処理装置はコンピュータシス
テムにおける中央制御回路を形成するマイクロプロセッ
サである。この発明では、CPUはプロテクトモードの
ような先進の動作モードで動作できるとともに、Win
dows Version3.0のような先進のオペレ
ーティングシステムを実行可能なマイクロプロセッサで
ある。
【0016】ディスクリプタテーブル:ディスクリプタ
テーブルはセレクタを物理メモリアドレスにマッピング
するためのテーブルである。このようなテーブルはイン
テル80386のような先進のマイクロプロセッサに使
用され、コンピュータプログラムが使用するメモリのセ
グメントを定義する。この発明に関連するテーブルはロ
ーカルディスクリプタテーブル(LDT)とグローバル
ディスクリプタテーブル(GDT)とインタラプトディ
スクリプタテーブル(IDT)の3種類ある。LDTは
各アクティブプロセスに存在し、そのプロセスにより占
有または共有されているメモリへのアクセスを可能にす
る。GDTはオペレーティングシステムおよびデバイス
ドライバにより使用されるメモリへのアクセスを可能に
する。IDTは複数のインタラプトに対応するベクトル
を格納する。
【0017】エンハンストモード:この発明では、エン
ハンストモードは、80386マイクロプロセッサの”
バーチャル8086”あるいは”386プロテクトモー
ド”あるいは同様のマイクロプロセッサの同様のモード
を指す。
【0018】フックまたは割り込みのフッキング:割り
込みのフッキングとはCPUに新しいインタラプトハン
ドラにアクセスするように再指示する行為である。実際
の”フック”は割り込みが起こる前に実行されなければ
ならない。これは一般には、新しいハンドラのアドレス
を割り込みベクタテーブルあるいはインタラプトディス
クリプタテーブルの適当なロケーションにセットするこ
とにより行なわれる。
【0019】I/Oチャンネルチェックまたはパリティ
エラー:これは、ハードウエアでI/Oパリティエラー
を検出する拡張ボードにより生じる致命的なシステムエ
ラーである。
【0020】NMI:CPUに対して外部からマスク可
能であるが、CPUは無視することのできない、マスク
不可能な割り込みである。例えば、東芝T3100SX
またはT2000SXラップトップコンピュータでは、
2通りの方法でNMIを発生することができる。すなわ
ち、(1)I/Oチャンネルチェックエラーによる方法
と、(2)この発明で述べるパワーダウンリクエストに
よる方法である。
【0021】リジュームまたはリジューミング:リジュ
ーミングは(メモリを除いて)コンピュータへの電力を
遮断し、コンピュータのソフトウエア状態を保存しなが
ら、後で復帰させる動作である。
【0022】セレクタ:セレクタは80386互換のマ
イクロプロセッサのような先進のマイクロプロセッサの
プロテクトモードで使用される値であり、セグメントレ
ジスタにロードすることにより、物理的なメモリセグメ
ントを参照することができる。このセレクタはディスク
リプタテーブル(LDTまたはGDT)のインデックス
として使用される。
【0023】この発明の実現には、インテル80386
互換マイクロプロセッサのエンハンストモードに使用す
るWindows Version 3.0デバイスド
ライバの開発が含まれる。このデバイスドライバは、ノ
ンマスカブルインタラプト(NMI)(インタラプト
2)を”フック”してNMIが発生したときはいつで
も、ドライバが実行されるように設計されている。この
発明のデバイスドライバの基本機能は、既存のリジュー
ムBIOSハンドラがコールされる前にマイクロプロセ
ッサのエンハンストモードに関連したレジスタとデータ
をセーブするためのリジューム処理を提供することであ
る。この処理は通常、リアルモードが切り替えられるま
で、マイクロプロセッサの動作モードをシーケンシャル
に切り替え、次に、その処理を実行するBIOSハンド
ラを実行し、コンピュータシステムの電力を遮断する。
その後、電力が再び供給されると、既存のリジュームB
IOSハンドラは実行を終了し、コントロールをこの発
明のリジュームドライバに戻す。この発明のリジューム
ドライバは以前にセーブしたレジスタとデータをすべて
リストアする。
【0024】この発明の好適実施例によるリジュームド
ライバは(1)ドライバ初期化コードと(2)ドライバ
ランタイムコードとから成る。後で詳述するように、デ
バイスドライバはこの発明によるリジューム機能を完全
にサポートするように書く必要があるが、記述した変更
や追加はクレームした発明の実現の一例に過ぎず他の種
々の変形例が以下の説明から明かであることは当業者に
は容易に理解できる。
【0025】また、上述した要素は、種々のコンピュー
タ言語の1つで書かれたコンピュータプログラムを変更
もしくは書くことにより実現可能であることは、コンピ
ュータプログラミングの分野の当業者には容易に理解で
きる。好適実施例では、80386互換アセンブラ言語
(機械言語)を用いてこの発明を実現している。これ
は、この発明が80386互換動作モードで使用するW
indowsデバイスドライバとして実現されているか
らである。しかしながら、例えばリジュームドライバを
実現するときは、他の適当な言語を使用可能である。以
下に述べる実施例の説明では特に断わりが無い限り、ア
センブラ言語を使用するものとする。
【0026】また、マイクロソフトマクロアセンブラバ
ージョン5.10Bおよびマイクロソフトセグメントー
イクスキュータブルリンカバージョン5.03(共に米
国マイクロソフト社製)を用いてデバイスドライバをア
センブルし、好適実施例におけるこの発明の他のソース
コードをリンク可能であるが、他社の同様のアセンブラ
およびリンカを用いるようにしてもよい。
【0027】この発明のリジュームドライバをインスト
ールするためには、Windowsが、リジュームドラ
イバの存在を認識し、ドライバをインストールするよう
なステップが必要となる。これは、デバイスドライバを
指し示すための”DEVICE=”ラインを挿入し
て、”SYSTEM.INI”ファイルの[386EN
H]セクションを編修することにより実現される。例え
ば、デバイスドライバファイルが”BIOSXLAT.
386”という名前であれば、好適実施例では、次ぎラ
インが追加される。 DEVICE=BIOSXLAT.386
【0028】もちろん、次に、実際のデバイスドライバ
(例えば、BIOSXLAT.386)をWindow
s SYSTEM サブディレクトリにコピーしなけれ
ばならない。
【0029】この発明を実現する上で当業者に入手可能
ないくつかの参考文献が役に立つ。とくに次の文献は、
この発明を実現する種々の観点が詳細に記述されてい
る。”インテル386DXプログラマーズリファレンス
マニュアル”(オーダ#:230985−003)、”
インテル80386システムソフトウエアライタ−ズガ
イド”(オーダ#:231499−001)(共にイン
テル社から入手可能)、”マイクロソフトウインドウズ
ソフトウエアデベロップメント キット、バーチャル
デバイス アダプテーションガイド、バージョン3.
0”、”MS−DOSエンサイクロペディア”、”マイ
クロソフト ウインドウズ ソフトウエアデベロップメ
ント キット、リファレンスボリューム1ー2”(いず
れもマイクロソフト社から入手可能)、”東芝T310
0SXパーソナルコンピュータテクニカルリファレンス
マニュアル”、”東芝T3100SXパーソナルコンピ
ュータBIOS仕様書”(共に、東芝から入手可能)。
当業者は、これらの本が無くてもこの発明を実現可能だ
が、これらの本を参考にすれば役に立つ。マイクロソフ
ト社から入手可能な”マイクロソフトウインドウズデバ
イスデベロップメントキット”は、この発明の好適実施
例でそうしたように、Windowsに使用するデバイ
スドライバを開発するのに役に立つ。
【0030】図1は好適実施例において、この発明が動
作可能なマイクロコンピュータのブロック図である。図
1に示すマイクロコンピュータは”東芝T3100SX
あるいはT2000”ラップトップ”コンピュータのよ
うな、インテリジェントパワーサプライ”を有し、エン
ハンストモードで動作可能な先進マイクロプロセッサを
有する種々のマイクロコンピュータの1つである。図1
に示す構成はコンピュータにより異なるが、この発明の
動作に必要なコンピュータシステムの関連部分(”イン
テリジェントパワーサプライ”を含む)は変わらない。
従って、図1は例示に過ぎない。
【0031】図1において、中央処理装置(CPU)2
4は好適実施例では、”エンハンストモード”で実行可
能なインテル80386互換マイクロプロセッサから成
り、図1のコンピュータシステム11全体の機能を制御
する。好適実施例では、CPU24は後述する図2乃至
図8のフローチャートに示される機能を実行する。さら
に、CPU24は、後述する電源制御回路5の要部を形
成する電源制御CPU20に対してホストCPUとして
機能する。
【0032】リードオンリメモリ(ROM)25はRO
Mのベーシック入出力システム(BIOS)(明示せ
ず)を含む、固定のコンピュータプログラムおよびそれ
に伴うデータを格納する。好適実施例では、ROM B
IOSはCPU24のリアルモードで動作可能なリジュ
ーム処理プログラムを格納する。例えば、東芝社製T3
100SXラップトップコンピュータはCPU24とし
て80386SXマイクロプロセッサを使用し、803
86SXがリアルモードのときに動作可能に設計された
リジューム処理プログラムをROM25に格納してい
る。
【0033】ランダムアクセスメモリ(RAM)26は
変更可能なプログラムおよびCPU24により処理され
るデータを格納する。さらに、RAM24は、実行中の
プログラムに対して、リジューム処理が必要かどうかを
示すリジュームモードフラッグを格納する。このフラッ
グについては後で詳述する。
【0034】ハードディスクドライブ27はマイクロコ
ンピュータシステム本体の専用収納部に脱着可能に介挿
可能であり、好適実施例では、3.5インチハードディ
スクドライブ(HDD)とこのドライブへのアクセスを
制御するハードディスクコントローラ(HDC)(図示
せず)から成る。同様に、フロッピーディスクドライブ
(FDD)28を好適実施例に使用して、脱着可能な磁
気媒体(図示せず)へリード/ライトすることも可能で
ある。さらに、好適実施例では、RS−232Cポート
32を使用することもできる。最後に、ユーザへの視覚
出力として、液晶表示装置(LCD)30が使用され
る。
【0035】電源制御セクション5はこの回路の全体動
作を制御するCPU20を有する。RAM21とROM
22は以下に述べるように電源を制御するのに必要なス
テップを実行するために、CPU20とともに使用され
る。アナログ−デジタル(A/D)コンバータは23は
CPU20に接続され、スイッチ13、15および17
からの信号を供給する。エレメント20、21、22、
および23は電源制御セクション5のマイクロコンピュ
ータ19を構成する。最後に、発光ダイオード(LE
D)ディスプレイ21は電源制御セクションがアクティ
ブかどうかをユーザに視覚的に表示する。
【0036】電源制御手段5は”OFF REQUES
T”,”RESET”,および”LOW BATTER
Y”信号をコンピュータシステム11に供給する。”O
FFREQUEST”および”LOW BATTER
Y”信号はノンマスカブルインタラプト(NMI)とし
て、コンピュータシステム11に供給され、イネーブル
であれば、この発明のリジューム処理機能をスタートさ
せる。”RESET”信号は、コールドブートが要求さ
れたことをコンピュータシステム11に知らせる。最後
に、”OFF ENABLE”はパワーオフ処理が実行
可能であることを知らせるために、コンピュータシステ
ム11から電源制御セクション5に供給される。
【0037】電源制御セクション5はさらに電源レギュ
レータ3に(6)つの電力レベルを供給する。電源レギ
ュレータ3はこれらの電力レベルをコンピュータシステ
ム11および電源制御セクション5に供給する。
【0038】電源1は2つの電力レベルを電源レギュレ
ータ3に供給する。電源1はバッテリ7と交流(AC)
アダプタ9から成る。ACアダプタ9は標準の壁用コン
セントに接続して電源1に電力を供給可能であり、バッ
テリ7は直流を電源1に供給する。さらに、電源1は、
電流動作条件に対応する”電圧”と”電流”を電源制御
セクション5に供給する。
【0039】スイッチ13、15、17は電源制御セク
ション5に接続される。電源スイッチ(POWER S
W)13は、電源遮断処理がユーザにより要求されたこ
とを電源制御セクション5に知らせる。ハードディスク
ドライブスイッチ(HDDSW)15はハードディスク
ドライブ27が動作するかどうかを電源制御セクション
5に知らせる。最後に、リセットスイッチ(RESET
SW)17はコールドブートがコンピュータシステム
11により行なわれることを電源制御セクション5に知
らせる。
【0040】図2乃至8は、この発明の好適実施例の動
作を示すフローチャートである。このフローチャートは
この発明を実現するための特定のシーケンスを示してい
るが、当業者には全体の機能を実現するための種々の変
更をこのシーケンスに行なうことができる。
【0041】図2乃至3はこの発明の好適実施例にもと
ずく初期化シーケンスを示す。このシーケンスはWin
dowsのロード時に実行され、その後、初期化ルーチ
ンのメモリ空間が”破棄”される。(例えば、そのメモ
リは他の目的のために使用される。)この初期化シーケ
ンスは、ホストコンピュータシステム(図1)がこの発
明のリジューム機能、並びに、以下に述べる関連する初
期化機能をサポートできるかどうかを判断する。
【0042】図2のステップ101において、Wind
ows環境はリアルモード初期化シーケンスを始める。
以前に示したように、このステップは、この発明のリジ
ュームデバイスドライバが”SYSTEM.INI”の
適当なロケーションにセットされたとき、Window
sにより実行される標準のWindowsデバイスドラ
イバローディングシーケンスに相当する。その後、Wi
ndowsデバイスドライバローダはこのラインをリー
ドし、標準処理によりリジュームドライバをロードす
る。
【0043】ステップ102ー113はリジュームドラ
イバを適当にインストールするために実行される実際の
初期化ステップの概略を示す。ステップ102は著作権
情報のようなプログラム情報をコンピュータシステムの
ユーザに表示するプロセスを示す。このステップはこの
発明の動作には必要無いが、当該プログラムコードが著
作権登録されているものであることを示すために、好適
実施例に含めている。このステップは、インタラプト2
1(ヘキサ)のサブファンクション9(ヘキサ)のよう
に、通常のBIOSもしくはDOSキャラクタストリン
グ出力ルーチンを介して実行される。
【0044】ステップ103において、ホストCPUが
適当なタイプ(例えば80386)かどうか判断する。
好適実施例では、この発明は、インテル80386互換
マイクロプロセッサで動作するように設計されているの
で、リジュームドライバは80386互換マイクロプロ
セッサが実際に存在するかどうか判断する必要がある。
好適実施例において使用される、T3100SXのよう
な東芝ラップトップコンピュータでは、特別のメモリア
ドレスロケーションを調べてこの判断を行なう。すなわ
ち、マシンがT3100SXの場合(それゆえ8038
6SXマイクロプロセッサの場合)、アドレス0F00
0:E024(ヘキサ)(セグメント:オフセット)で
始まる2バイトに”R”および”0”のASCII文字
が格納されている。この場合、もし、これらのASCI
I値がこのロケーションにあれば、このリジュームドラ
イバはこのマシンで動作すると見なすことができる。東
芝以外のマシンの場合、そのメーカの仕様にもとずいて
同様の判断が行なわれる。
【0045】ステップ104は、リジュームモードがア
クティブであることを示すリジュームビットが不揮発性
のCMOSメモリロケーションにセットされているかど
うか判断する。ユーザは選択的にリジューム機能の動作
をオンまたはオフできるので、この発明のリジュームド
ライバをロードする前にチェックする必要がある。も
し、このビットがリジューム処理がアクティブでないこ
とを示しているなら、リジュームドライバをロードする
必要が無い。
【0046】好適実施例におけるT3100SXの場
合、CMOSリジュームビットは、CMOSリジューム
アドレス(例えばヘキサの39)をレジスタ(例えばA
L)にロードし、このアドレスを適当なポート(例え
ば”OUT”命令を用いてポート70(ヘキサ)に)送
ることによりチェックされる。その後、適当な命令(例
えば”IN”命令)を用いてCMOSI/Oポート(例
えばポート71(ヘキサ))から適当なデータを読み込
むことができる。リジュームビットがセット(例えばビ
ット1)されていない場合、ステップ105が実行され
る。
【0047】ステップ105はマイクロプロセッサが
(ステップ103で判断したような)80386でない
場合、あるいはCMOSリジュームビットが(ステップ
104で判断したように)セットされていない場合に実
行される。この2つのいずれの場合においても、ユーザ
には、この発明のリジュームドライバがサポートされて
いないことを知らせる必要がある。その後、通常のWi
ndowsプロテクトモードの初期化シーケンスならび
に他のWindows初期化ファンクションが実行され
る。この結果、この発明のリジュームドライバはロード
されず、実行されない。
【0048】ステップ103および104が満足された
とすると、リアルモードの初期化ステップが完了する。
このとき、Windowsローダはプロテクトモード部
とこの発明のリジュームドライバの残りの部分をロード
する必要がある。
【0049】ステップ106は後述するWindows
リジュームデバイスドライバプロテクトモードの初期化
の始まりに相当する。ステップ107はモード切り替え
に使用される1Mバイト以下の仮想メモリのブロックを
アロケートするシーケンスから成る。特に、このシーケ
ンスは(後述する)ステップ112が実際のモード切り
替えサブルーチンをコピーする仮想メモリをアロケート
するように実行される。これは、この発明のリジューム
ドライバが定義により1Mバイト以上のアドレスロケー
ションにアロケートされるので、リアルモードで動作し
ているマイクロプロセッサはこのアドレス以上のメモリ
にはアクセスしないためである。
【0050】次ぎに、図3のステップ108が実行され
る。(図2の下部の”A”と図3の上部の”A”は図2
と図3が連続していることを示す。以下、このような表
示が各図面間の連続を示す)ステップ108では(1)
この発明のリジュームデバイスドライバハンドラのアド
レスと、(2)BIOSリジュームハンドラルーチン
(例えばリアルモードで動作可能なコンピュータのBI
OSのリジュームハンドラ)のアドレスを得る。この発
明のリジュームドライバハンドラのアドレスはロードさ
れたリジュームドライバコードから直接得ることもでき
るが、好適実施例では、BIOSリジュームハンドラル
ーチンのアドレスは、そのアドレスを格納する特別のメ
モリロケーションからベクトルとして得ることもでき
る。特に、好適実施例のT3100SXでは、上述し
た”R”と”0”のASCIIバイトの次の2つのダブ
ルワード(例えば4バイト)がBIOSリジュームハン
ドラのアドレスを含む。もちろん、他のマシンでは、適
当なメモリロケーションが使用されることになる。
【0051】ステップ109では、この発明のリジュー
ムドライバが使用できるかそしてリジュームドライバを
ロードする必要があるかどうかを判断する。BIOSリ
ジュームハンドラを指し示す上述したベクトルは、
(0)の値かどうか判断される。もしそうならば、この
ベクトルはBIOSリジュームハンドラのポインタには
相当せず、リジュームドライバはロードされず、使用さ
れない。この場合、コントロールはステップ110に移
る。ステップ110では、この発明による残りのリジュ
ームドライバの初期化をスキップし、コントロールを標
準のWindows初期化シーケンスに渡す。
【0052】リジュームエントリポイントが正しけれ
ば、コントロールはステップ111に渡される。ステッ
プ111は(1)BIOSリジュームハンドラのセグメ
ントとオフセットを得(好適実施例では、この発明がリ
アルモードの初期化シーケンスで動作している間、上述
したベクトルを調べることにより、前もって得ることが
できる)、上述したメモリロケーションにセーブし、
(2)プロテクトモードからリアルモードへの切り替え
(後で詳述する)に使用するダミーのグローバルディス
クリプタテーブル(GDT)をアロケートし、(3)古
いNMIハンドラアドレスを得、(4)この発明のリジ
ュームデバイスドライバを新しいNMIハンドラとし
て”フック”する。
【0053】このダミーGDTは、マイクロソフト社の
マイクロソフトウインドウズデベロップメントキット、
バージョン3.0の一部であるバーチャルマシンマネー
ジャコール”VMMcallの”_Allocate_
Global_V86_Date_area”機能を用
いてアロケート可能である。このようなVMMコール
は、”VMM.INC”および/または”V86MMG
R.INC”エンハンストウインドウズサービスファイ
ルおよびV86モードマネージャデバイスサービスファ
イルをアセンブラ言語のソースコードファイルに”含ま
せる”ことにより実現される。
【0054】同様にして、古いNMIハンドラアドレス
を”VMMcall”の”Get_NMI_Handl
er_Addr”機能により得ることができる。最後
に、古いNMIハンドラアドレスを後で使用するために
セーブすることによりNMIベクトルをこの発明のリジ
ュームドライバにフックして、新しいNMIハンドラの
アドレスを新しいNMIベクトルとして、”VMMca
ll”の”Set_NMI_Handler_Add
r”を用いることによりロードする。新しいハンドラア
ドレスはNMIがリジュームNMIであるかどうか判断
し、もしそうなら、この発明のデバイスドライバをコー
ルする。もしそうでなければ、コントロールは古いNM
Iハンドラにわたる。
【0055】ステップ112では、ステップ107でア
ロケートした1Mバイト境界以下のメモリを、仮想アド
レスから物理アドレスに変換し、マイクロプロセッサの
モードをリアルモードに切り替えるルーチンをメモリ空
間にコピーする。このルーチンは後でコールされ、リア
ルモードへの実際の切り替えを行なう。
【0056】ステップ113は、NMIイベントハンド
ラルーチンのフックである好適実施例の初期化シーケン
スの最後のステップである。(1)NMIハンドラはリ
ジュームデバイスドライバの初期化データセグメントの
ローカルデータでのみ動作することができ、(2)NM
Iが検出されたとき、マイクロプロセッサは仮想モー
ド、386プロテクトモード、286プロテクトモー
ド、リアルモードのいずれかのモードにあり、(3)N
MIハンドラはWindowsサービスをコールするこ
とができないので、NMIイベントハンドラをフックし
て、この発明の実際のランタイム機能を実行する必要が
ある。イベントリクエストプロシージャは非同期に登録
されオペレーティングシステムのバーチャルマシンマネ
ージャ(VMM)がアプリケーションに戻る直前にコー
ルされる。NMIイベントハンドラは通常のイベントハ
ンドラと同様であるが、毎回スケジューリングをする代
わりにNMIイベントチェーンを1回だけフックすれば
よい。従って、後で詳述するこの発明の新しいNMIハ
ンドラルーチンは、NMIがリジュームリクエストによ
り(例えば図1の電源スイッチ13を押すことにより)
発生したことを検出し、この発明のリジュームドライバ
のNMIイベントハンドラがリジューム機能を実行する
のに使用する変数をセットしさえすればよい。NMIイ
ンベントハンドラは上述したように、”VMMcal
l”の”Hook_NMI_Event”を用いてフッ
クすることができる。
【0057】リジュームイベント処理ルーチンがステッ
プ113でフックされると、Windowsは通常のプ
ラクティスに従って、さらに初期化シーケンスを実行す
ることができる。従って、この時点で、この発明のリジ
ュームドライバは完全にロードされインストールされ、
リジューム機能を使用している状態でシステムのパワー
ダウンの要求としてマイクロプロセッサに検出されるN
MIにより、図4乃至図8に示すこの発明のランタイム
リジューム処理を開始する。
【0058】図4において、NMIがマイクロプロセッ
サ(図1のCPU24)により検出された状況を表わし
ている。NMIが検出されると、ステップ115におい
て、NMIがリジュームの実行を要求するユーザにより
発生されたものかどうか判断される。東芝T3100S
Xラップトップコンピュータが使用される好適実施例で
は、”Port B Read/Write Dia
g.register”(ポート61(hex))から
入力されたバイトを調べることによりこの判断を行なう
ことができる。この場合、ビット7がセットされている
とすると、I/Oチャンネルチェックエラー(パリテ
ィ)によりNMIが発生されたと判断し、オリジナルN
MIハンドラは(ステップ116)にジャンプしシステ
ムはホルトする。
【0059】ビット7がセットされていないとすると、
パワーダウンリクエストによりNMIが発生されたと判
断し、ステップ117に進む。ステップ117では、特
別のイベント処理リジュームフラッグがセットされイベ
ントリクエストがなされる。イベントリクエストがなさ
れると、ステップ113でフックしたリジュームNMI
イベント処理ルーチン(”イベントルーチン”)がステ
ップ118で実行される。イベントルーチンは変更する
可能性のあるレジスタ値をプログラムによりセーブし、
ステッップ119に進む。
【0060】ステップ119では、マイクロプロセッサ
が8086モードか386プロテクトモードかを判断す
る。この2つのモードは80386互換マイクロプロセ
ッサのエンハンストモードと呼ばれる2つのモードから
成る。マイクロプロセッサのモードは”VMMcal
l”の”Exec_VxD_Int”ファンクションの
DOSプロテクトモードインターフェースバージョン
0.9(”DPMI”)ファンクションを使用すること
により判断することができる。特に、ダブルワード値”
2F”(hex)(例えばインタラプト#)はこのコー
ル前にスタックにプッシュされ、リターンすると、AX
レジスタの0の値により、マイクロプロセッサがプロテ
クトモードにあることがわかる。
【0061】マイクロプロセッサがバーチャル8086
モードの場合、マイクロプロセッサはステップ120で
386プロテクトモードに切り替えられる。この切り替
えは、バーチャルモードでは、プロセッサコントロール
レジスタは読み込めず、特権命令が実行できないため
に、行なわれる。プロテクトモードエントリポイントセ
グメントおよびプロテクトモードエントリポイントオフ
セット(ESおよびEDIレジスタに格納される)はあ
らかじめ定義したメモリロケーションにセーブされる。
次に、SIレジスタを調べて、そのモード切り替えにメ
モリブロックが必要かどうか判断する。SIレジスタが
ゼロ(0)なら、下記のごとく実際にモード切り替えが
行なわれる。
【0062】SIレジスタの値がゼロ(0)以外であれ
ば、128バイト構成でゼロの値を含む”モード切り替
えバッファ”のセグメントとオフセットが決定されそれ
ぞれ、AXレジスタおよびEBXレジスタにセットされ
る。EBXレジスタは(例えば”SHR”命令により)
セグメント機構を用いて右に4ビットシフトされ、イン
クリメントされ、BXがAXに追加されその結果がレジ
スタESに移動される。
【0063】この時点で、プロテクトモードへの切り替
えが行なわれる。AXレジスタの内容はクリアされ、以
前セーブしたプロテクトモードのエントリポイントオフ
セットが(例えば”CALL DWORD PTR
[PMODE_ENTER_OFF]”但し、”PMO
DE_ENTER_OFF”は以前セーブしたプロテク
トモードエントリオフセットを用いて)をコールされ
る。キャリークリアがセットされなければ、切り替えは
成功と判断される。
【0064】80386プロテクトモードへの切り替え
が行なわれた後、ステップ107において、リジューム
処理ルーチンがコールされる。これは、リアルモードは
1Mバイト境界以上のメモリロケーションをアドレスで
きないので、リジュームドライバはリアルモードへのモ
ード切り替えができないためである。それゆえ、マイク
ロプロセッサをリアルモードへ切り替えるのに必要な実
際のステップは1Mバイト境界以下で動作するルーチン
内から実行される。
【0065】ステップ121は以下に示すように4つの
汎用ステップから成る。初めに、インタラプトは”CL
I”(クリアインタラプトフラッグ)命令および”VM
Mcall”の”Begin_Next_Exe
c”,”Disable_VM_Ints”,および”
End_next_Exec”機能によりディスエーブ
ルされる。第2に、インタラプトマスクが後で使用する
ために所定のメモリロケーションにセーブされ、マスク
パターンが(インタラプトマスクポートを介して)ディ
スエーブルされる。第3にNMIがディスエーブルさ
れ、フロッピーコントローラがリセットされる。
【0066】ステップ122では、(1)マシンステー
タスワード(MSW)を得、所定のメモリロケーション
にセーブし、”MP”および”PS”ビットをクリアし
て更新し、(2)現在のTSS(タスクステートレジス
タ)を得、所定のメモリロケーションにセーブし、TS
Sビジービットをオフにし、(3)GDTレジスタから
グローバルディスクリプタテーブル(GDT)のアドレ
スを得、LDTレジスタからローカルディスクリプタテ
ーブル(LDT)のアドレスを得、IDTレジスタから
インタラプトディスクリプタテーブル(IDT)のアド
レスを得、それらを各所定のメモリロケーションにセー
ブし、(4)スタック情報を所定のメモリロケーション
にセーブし、(5)コントロールプロセッサレジスタを
所定のメモリロケーションにセーブする。
【0067】ステップ123では、テンポラリセレクタ
をつくり、その物理アドレスをリニアアドレスと同じに
する。テンポラリセレクタは、マイクロプロセッサモー
ドがリアルモードに切り替わるときに使用される。ベー
スアドレスの場合を除き、ディスクリプタレジスタ値は
リアルモードでロードできないためテンポラリレジスタ
が必要となる。それゆえ、8086互換(リアルモー
ド)属性情報を、リアルモードに切り替える前にデータ
セグメントディスクリプタレジスタにロードする必要が
ある。
【0068】さらに、ページモードビットをオフにする
ための等価ディスクリプタをアロケートする必要があ
る。このセレクタは8086互換の値をも含む必要があ
る。従って、リアルモードへの切り替えを行なうコード
は、ディスクリプタが8086互換属性情報(すなわ
ち、present=1,privilege lev
el =0,limit=64K,granulari
ty=0,defaultoperand size=
0, conforming=0, readable
=1)を持つコードセグメントに常駐させる必要があ
る。ページモードがイネーブルなので、リアルモードへ
の切り替えを行なうのに必要なコードとデータセグメン
トはリニアアドレスと同じ物理アドレスを持つ必要があ
る。(例えば、これらのセグメントをマップするPTE
は同一のマッピングを定義する必要がある。)この同一
マッピングにより、ページングがディスエブルされる前
後でフェッチされる命令およびオペランドは同じ物理ア
ドレスから得られる。
【0069】ステップ123でテンポラリセレクタを作
るために、”VMMcall”の”_BuildDes
criptorDWORDs”および”_Alloca
te_GDTU_Selector”機能を用いる必要
がある。この結果、セレクタが所定のメモリロケーショ
ンに格納される。同様に、現在のGDTセレクタを、以
下に示すように、以後の処理のために別にとっておく必
要がある。
【0070】ステップ124において、1Mバイトアド
レス境界以下で実行される実際のモード切り替えルーチ
ンが開始される。初めにマイクロプロセッサは8038
6プロテクトモードから80286プロテクトモードに
切り替えられる。この時点で、マイクロプロセッサは、
16ビットの80286コードしか認識できないので、
残りのコードは、80286プロテクトモードのとき
に、正しく実行できるようにアセンブリの前にハードコ
ード化する必要がある。このモード切り替えの後、マイ
クロプロセッサが正しい場所から実行を継続できるよう
に、次の実行可能な命令のメモリアドレス、すなわ
ち、”RETF”命令の戻り先がスタックに”プッシ
ュ”される。
【0071】ステップ125では、80286プロテク
トモードからリアルモードへの切り替えが行なわれる。
さらに、ディスクドライブやプリンタポートのリセット
のような他の機能をこの時点で実行することができる。
一度マイクロプロセッサがリアルモードに切り替わる
と、コントロールは以前にメモリロケーションにセーブ
されたBIOSリジュームハンドラアドレスに渡され
る。
【0072】ステップ126乃至132は、コンピュー
タシステムの電源が落ちる前にBIOSリジュームハン
ドラが行なうステップの概略を示している。このステッ
プは、好適実施例では、東芝T3100SXのようなこ
の発明で使用されるコンピュータシステムのROM内の
リジュームBIOSにより実行される。ステップ126
では、パワーオフスイッチ(図1のエレメント13)に
よりNMIが発生したかどうか判断される(この判断プ
ロセスについては、以前に述べた)。NMIが発生して
なければ、ステップ128でNMIがロウバッテリ状態
により発生したかどうか判断する。ロウバッテリ状態の
NMIは図1の”LOW BATTERY”ラインを介
してコンピュータシステム(図1のエレメント11)に
供給される。もし発生していなければ、リジュームBI
OSは、NMIが(パリティエラーのような)別の条件
により発生したとみなし、ステップ130において適当
なステップを実行する。また、ステップ128でロウバ
ッテリ状態によるNMIであると判断すると、ステップ
127をスキップし、コントロールがステップ129に
移る。
【0073】ステップ126において、パワーオフスイ
ッチによるNMIであると判断すると、ステップ127
が実行される。ステップ127では、リジューム処理を
イネーブにするリジュームフラッグがオンかどうか判断
する。オンでなければ、コントロールはステップ132
に進み、BIOSリジューム処理は行なわれない。一
方、リジュームフラッグがオンであれば、ステップ12
9が実行される。
【0074】ステップ129では、マイクロプロセッサ
のリアルモードに関連するレジスタの内容のようなシス
テムデータをコンピュータシステムのメモリにセーブす
る。その後、ステップ131において、ステップ129
において、データがセーブされたことを示すシステムデ
ータフラッグをコンピュータシステムのメモリにセット
する。電力がコンピュータシステムに復帰すると、この
フラッグを見ることにより、リジュームデータが以前に
セーブされリジュームBIOSがこのデータを適当なレ
ジスタ等にリストアするできることがわかる。
【0075】最後に、ステップ131またはステップ1
27からコントロールが移り、ステップ132が実行さ
れる。ステップ132では、適当なパワーオフコマンド
が(図1のエレメント5からエレメント11に”OFF
REQUEST”ラインを介して)電源制御部に出力
し、電源制御部に対して、コンピュータシステムのすべ
ての領域(但しメモリを除く)の電力を遮断するように
指示する。この時点でコンピュータシステムは実質的に
遮断され、ユーザが電源制御部に対してシステムをリジ
ュームするように指示を出すまで、電力は復帰しない。
【0076】コンピュータシステムのユーザが電源制御
部に対し、(図1の電源スイッチ13を介して)電源の
復帰を指示すると、ステップ133乃至138が実行さ
れる。これらのステップは電源遮断前に実行されていた
リジュームBIOSルーチンにより実行される。ステッ
プ133はパワーオン処理が開始されたことを示す。ス
テップ134において、電源が落ちる前にBIOSによ
りリジューム処理が行なわれていたかどうかが判断され
る。この判断はシステムデータのセーブがステップ12
9で行なわれた場合、ステップ131でセットされたシ
ステムデータフラッグをチェックすることにより行え
る。このフラッグがセットされていれば、リジュームB
IOSルーチンのステップ136乃至138(および残
りのステップ)が実行される。このフラッグがセットさ
れていなければ、通常のパワーオン処理(例えば、”ブ
ート”処理)が実行される。
【0077】リジュームフラッグがリジュームBIOS
によりセットされると、ステップ136が実行される。
このステップはステップ129でセーブした(レジスタ
等の)システムデータをリストアする。ステップ137
において、マイクロプロセッサ(図1のCPU24)の
動作モードが設定される。マイクロプロセッサはすでに
リアルモードで動作しているので、このステップは冗長
かも知れない。しかし、完全を期すために、そして、パ
ワーオフ処理中の意図しないモード切り替えを防止する
ために、マイクロプロセッサのモードをこのステップに
おいてリアルモードにしておくほうがよい。
【0078】ステップ138において、NMIにより中
断されたプログラムに戻る。この発明の場合、この発明
のリジュームドライバにコントロールがわたる。BIO
Sのリジューム処理ルーチンは、80386のエンハン
ストモードで、リジューム機能を実現するために、BI
OSの”ラッパー”としてこの発明のリジュームドライ
バが働いているということはわからないので、リジュー
ムBIOSはNMIによりインタラプトされたプログラ
ムにコントロールを戻すと”考える”。しかし、この発
明によれば、コントロールは実際にはこの発明のリジュ
ームドライバに戻り、コントロールがNMIにより中断
されたプログラムに戻る前にコンピュータシステムのス
テータスのリストアを行なう。
【0079】リジュームBIOSがコントロールをこの
発明に戻すと、ステップ139が実行される。ステップ
139はBIOSリジューム処理が完了したことを示
す。ステップ140では、すべてのインタラプトをディ
スエーブルにし、以前実行していた16ビットのプログ
ラムコード(上述)を実行する。この時点で、ディスク
ドライブやプリンタポートをもう一度リセットするなど
の機能を実行することができる。
【0080】ステップ141では、以下に示す使用のた
めにテンポラリディスクリプタが(16ビットコードの
ままで)作られる。さらに、このとき、マイクロプロセ
ッサはリアルモードから80286プロテクトモードに
切り替わる。マイクロプロセッサのディスクリプタテー
ブルはページングされたリニアアドレス空間なので、マ
イクロプロセサはリニアモードから80386プロテク
トモードに直接切り替わることはできない。それゆえ、
マイクロプロセッサは必要に応じてリアルモードから8
0286プロテクトモードに切り替える必要がある。
【0081】ステップ141が完了し、マイクロプロセ
ッサが80286プロテクトモードに戻ると、ステップ
142が実行される。ステップ142では、ステップ1
22においてセーブしたインタラプトディスクリプタテ
ーブル(IDT)レジスタ、ローカルディスクリプタテ
ーブル(LDT)レジスタ、グローバルディスクリプタ
テーブル(GDT)レジスタ、マシンステータスワード
(MSW)、プロセッサコントロールレジスタ、TSS
等をリストアする。さらに、マイクロプロセッサは80
386プロテクトモード(32ビットフラットモードコ
ード)に切り替わる。適当な命令に実行を確実に移すた
めに、次の命令(例えばステップ143の第1命令)の
セレクト:オフセットロケーションへのファージャンプ
を行なうこともできる。この時点で、マイクロプロセッ
サは8038632ビットフラットプロテクトモードに
戻るので、残りの命令を通常のアセンブラシンタックス
を用いてコード化し、そのコードを32ビット状態に再
配列することができる。
【0082】ステップ142において、コンピュータの
CMOSから現在時刻と日付けをリードし、”DOS_
Update_Time”機能(2D00(he
x))、および”DOS_Update_Date”機
能(2B00(hex))をレジスタAXにシーケンシ
ャルにロードし、DOSサービスリクエスト(21(h
ex))をスタックにプッシュし、時刻と日付けの更新
を要求する”VMMcall”を実行することによりオ
ペレーティングシステムの時間と日付けを更新すること
ができる。
【0083】ステップ143において、以前にディスエ
ーブルにしたインタラプトをNMIも含めてすべてイネ
ーブルにし、以前にアロケートしたテンポラリセレクタ
をすべてデアロケートする。デアロケート処理は、”V
MMcall”の”_Free_GDT−Select
or”機能により行なうことができる。
【0084】最後に、ステップ144において、NMI
が最初に検出されたとき、マイクロプロセッサがバーチ
ャル8086モードであったかどうかが判断される。も
しそうなら、ステップ146が実行される。そうでなけ
れば、ステップ145が実行される。
【0085】すなわち、ステップ146において、マイ
クロプロセッサのモードをバーチャルモードに戻し、コ
ントロールをNMIが検出される以前に実行されていた
プログラムに戻す。T3100SXコンピュータシステ
ムを用いた好適実施例では、マイクロプロセッサのモー
ドは、”DPMI”機能(例えば0306(hex))
をレジスタAXにロードし、”DPMI”機能(ダブル
ワード31(hex))をスタックにプッシュし、”V
MMcall”の”Exec_VxD_Int”機能を
コールすることによりバーチャルモードに切り替えるこ
とができる。他方、ステップ145において、NMIに
より中断されたプログラムにコントロールを迅速に戻
す。
【0086】この発明の他の実施例によれば、リジュー
ム機能以外のアプリケーションで使用される機能を実行
するために、マイクロプロセッサのエンハンストモード
からリアルモードへの切り替え、そしてエンハンストモ
ードに戻すための処理が設けられる。例えば、必要によ
りマイクロプロセッサのリアルモードで実行する必要の
あるアプリケーションをこの発明により、実行すること
ができる。この場合、マイクロプロセッサ(例えばイン
テル80386)のエンハンストモードで動作するコン
ピュータプログラムは、リアルモードでしか動作できな
いアプリケーションをこの発明を用いてリアルモードに
切り替えることができる。アプリケーションの実行が完
了すると、この発明はマイクロプロセッサの動作モード
をエンハンストモード(最初のアクティブ状態に応じて
80386プロテクトモードかバーチャル8086モー
ドのいずれか)に切り替えることができ、もともとのコ
ンピュータプログラムは実行を継続することができる。
従って、当業者には、この発明はリジューム機能を有し
たアプリケーションに限定されず、種々の状況に容易に
適応できることがわかる。
【0087】この詳細な説明からわかるように、この発
明を東芝T3100SXあるいはT2000SXで実現
する場合の好適実施例について述べた。しかしながら、
コンピュータプログラミングおよび/またはコンピュー
タハードウエアデザインの当業者には明らかなように、
この発明は、先進のマイクロプロセッサと、インテリジ
ェントパワーサプライ回路と、リアルモードで動作する
既存のリジューム処理機能を持ったコンピュータシステ
ムならどんなシステムでも実現可能である。さらに、上
述した種々のステップの順番は、上記実施例に限定され
るものではなく、特に断わり書きが無い限り、種々の順
番で実行できる。最後に、この発明の好適実施例は、マ
イクロソフトウインドウズバージョン3.0で動作する
ように設計したが、UNIX等のような他の先進オペレ
ーティングシステムや、モトローラ680x0等のよう
な他の先進マイクロプロセッサの場合にも、この発明の
種々のステップにおいて、格納および検索される、オペ
レーティングシステムおよびマイクロプロセッサに関す
るデータを変更するだけでリジュームドライバを設計で
きる。
【0088】
【発明の効果】MS−DOSリジューム処理BIOSル
ーチンのような既存のリジューム処理ルーチンと結合し
た、マイクロプロセッサのエンハンストモードで使用す
るリジューム処理方法が得られる。
【図面の簡単な説明】
【図1】この発明のリジュームデバイスドライバが好適
実施例において動作可能なコンピュータの種々のコンポ
ーネントを示すブロック図。
【図2】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図3】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図4】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図5】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図6】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図7】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
一部。
【図8】この発明のリジュームドライバがコールされた
とき実行される種々のステップを示すフローチャートの
残りの部分。
【符号の説明】
5・・・電源制御部、7・・・バッテリ、9・・・アダ
プタ、11・・・コンピュータシステム、13・・・パ
ワースイッチ、15・・・ハードディスクドライブスイ
ッチ、19・・・マイクロコンピュータ、24...C
PU、25...ROM、26...RAM、2
7...ハードディスクドライブ、28...フロッピ
ーディスクドライブ、32...RS−232Cポー
ト、30...LCD
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・ティー・エル・コウ アメリカ合衆国、カリフォルニア州 92713−9724,アーバイン,ピー・オ ー・ボックス 19724,アーバイン・ブ ールバード 9740 トーシバ・アメリ カ・インフォメーション・システムズ・ インコーポレーテッド内 (56)参考文献 特開 平3−171217(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 1/00 370 G06F 1/30 G06F 12/16 340

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】第1および第2動作モードで動作可能な中
    央処理装置(CPU)を有し、前記CPUは複数の命令
    を実行可能であり、前記第1および第2動作モードは異
    なるメモリアドレス機構およびデータレジスタ機構を使
    用するコンピュータシステムにおいて、前記第1動作
    ードから前記第2動作モードに切り替え、次に前記第1
    動作モードヘ戻すモード切り替え方法において、 (a)前記第1動作モードの動作状態をセーブするステ
    ップと (b)前記第1動作モードを前記第2動作モードに切り
    替えるステップと (c)前記第2動作モードで動作するように設計された
    コンピュータプログラムを実行するステップと (d)前記第2動作モードから前記第1動作モードヘ切
    り替えるステップと (e)前記ステップ(a)においてセーブした前記第1
    動作モードの動作状態をリストアするステップとで構成
    され 前記ステップ(a)は、 (i)前記CPUの第1動作モードに関連するタスクス
    テートレジスタおよびマシンステータスレジスタをセー
    ブするステップと、 (ii)前記CPUの第1動作モードに関連するグロー
    バルディスクリプタテーブルレジスタ、ローカルディス
    クリプタテーブルレジスタ、インタラプトディスクリプ
    タテーブルレジスタをセーブするステップと、 (iii)前記CPUの第1動作モードに関連するスタ
    ックに関連するレジスタをセーブするステップと、 (iv)前記CPUの第1動作モードに関連するプロセ
    ッサコントロールレジスタをセーブするステップとで構
    成され、 前記ステップ(e)は、 (i)前記CPUの第1動作モードに関連し、前記ステ
    ップ(a)でセーブされたタスクステートレジスタおよ
    びマシンステータスレジスタをリストアするステップ
    と、 (ii)前記CPUの第1動作モードに関連し、前記ス
    テップ(a)でセーブ したグローバルディスクリプタテ
    ーブルレジスタ、ローカルディスクリプタテーブルレジ
    スタ、インタラプトディスクリプタテーブルレジスタを
    リストアするステップと、 (iii)前記CPUの第1動作モードに関連し、前記
    ステップ(a)でセーブしたスタックに関連するレジス
    タをリストアするステップと、 (iv)前記CPUの第1動作モードに関連し、前記ス
    テップ(a)でセーブしたプロセッサコントロールレジ
    スタをリストアするステップとで構成されることを特徴
    とするモード切り替え方法。
  2. 【請求項2】 前記ステップ(c)のコンピュータプロ
    グラムはリジューム処理プログラムであることを特徴と
    する請求項1に記載のモード切り替え方法。
  3. 【請求項3】 前記第1動作モードは前記CPUのエン
    ハンストモードに相当することを特徴とする請求項1に
    記載のモード切り替え方法。
  4. 【請求項4】 前記第2モードは前記CPUのリアルモ
    ードに相当することを特徴とする請求項1に記載のモー
    ド切り替え方法。
  5. 【請求項5】 前記第1動作モードは前記CPUのバー
    チャル8086モードに相当することを特徴とする請求
    項1に記載のモード切り替え方法。
  6. 【請求項6】 前記ステップ(a)乃至(d)は前記C
    PUにより検出されたパワーオフリクエストに応答して
    実行されることを特徴とする請求項1に記載のモード切
    り替え方法。
  7. 【請求項7】 前記ステップ(a)乃至(d)は前記C
    PUのノンマスカブルインタラプトに応答して実行され
    ることを特徴とする請求項1に記載のモード切り替え方
    法。
  8. 【請求項8】 前記ステップ(a)乃至(d)は前記C
    PUにより検出されたロウバッテリ状態に応答して実行
    されることを特徴とする請求項1に記載のモード切り替
    え方法。
  9. 【請求項9】 第1および第2動作モードで動作可能な
    中央処理装置(CPU)を有し、前記CPUは複数の命
    令を実行可能であり、前記前記第1および第2動作モー
    ドは異なるメモリアドレス機構およびデータレジスタ機
    構を使用するコンピュータシステムにおいて、前記第1
    動作モードから第2動作モードに切り 替え、次に前記第
    1モードヘ戻すモード切り替え装置において、 (a)前記第1動作モードの動作状態をセーブする手段
    と、 (b)前記第1動作モードを前記第2動作モードに切り
    替える手段と、 (c)前記第2動作モードで動作するように設計された
    コンピュータプログラムを実行する手段と、 (d)前記第2動作モードから前記第1動作モードヘ切
    り替える手段と、 (e)前記手段(a)においてセーブした前記第1動作
    モードの動作状態をリストアする手段と、 を具備し、 前記手段(a)は、 (i)前記CPUの第1動作モードに関連するタスクス
    テートレジスタおよびマシンステータスレジスタをセー
    ブする手段と、 (ii)前記CPUの第1動作モードに関連するグロー
    バルディスクリプタテーブルレジスタ、ローカルディス
    クリプタテーブルレジスタ、インタラプトディスクリプ
    タテーブルレジスタをセーブする手段と、 (iii)前記CPUの第1動作モードに関連するスタ
    ックに関連するレジスタをセーブする手段と、 (iv)前記CPUの第1動作モードに関連するプロセ
    ッサコントロールレジスタをセーブする手段とを具備
    し、 前記手段(e)は、 (i)前記CPUの第1動作モードに関連し、前記手段
    (a)でセーブされたタスクステートレジスタおよびマ
    シンステータスレジスタをリストアする手段と、 (ii)前記CPUの第1動作モードに関連し、前記手
    段(a)でセーブしたグローバルディスクリプタテーブ
    ルレジスタ、ローカルディスクリプタテーブルレジス
    タ、インタラプトディスクリプタテーブルレジスタをリ
    ストアする手段と、 (iii)前記CPUの第1動作モードに関連し、前記
    手段(a)でセーブしたスタックに関連するレジスタを
    リストアする手段と、 (iv)前記CPUの第1動作モードに関連し、前記手
    段(a)でセーブしたプロセッサコントロールレジスタ
    をリストアする手段とを具備することを特徴とするモー
    ド切り替え装置。
  10. 【請求項10】 前記手段(c)のコンピュータプログ
    ラムはリジューム処理プログラムであることを特徴とす
    る請求項9に記載のモード切り替え装置。
  11. 【請求項11】 前記手段(a)乃至(d)は前記CP
    Uにより検出されたパワーオフリクエストに応答して実
    行されることを特徴とする請求項9に記載のモード切り
    替え装置。
  12. 【請求項12】 前記手段(a)乃至(d)は前記CP
    Uのノンマスカブルインタラプトに応答して実行される
    ことを特徴とする請求項9に記載のモード切り替え装
    置。
  13. 【請求項13】 前記手段(a)乃至(d)は前記CP
    Uにより検出されたロウバッテリ状態に応答して実行さ
    れることを特徴とする請求項9に記載のモード切り替え
    装置。
JP4152422A 1991-06-14 1992-06-11 モード切り替え方法及び装置 Expired - Fee Related JP3037826B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/712,972 US5355490A (en) 1991-06-14 1991-06-14 System and method for saving the state for advanced microprocessor operating modes
US07/712972 1991-06-14

Publications (2)

Publication Number Publication Date
JPH05250059A JPH05250059A (ja) 1993-09-28
JP3037826B2 true JP3037826B2 (ja) 2000-05-08

Family

ID=24864269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4152422A Expired - Fee Related JP3037826B2 (ja) 1991-06-14 1992-06-11 モード切り替え方法及び装置

Country Status (3)

Country Link
US (1) US5355490A (ja)
EP (1) EP0518339A3 (ja)
JP (1) JP3037826B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2779813B2 (ja) * 1988-09-06 1998-07-23 セイコーエプソン株式会社 コンピューター
US5617532A (en) * 1990-10-18 1997-04-01 Seiko Epson Corporation Information processing apparatus and data back-up/restore system for the information processing apparatus
EP0523652B1 (en) * 1991-07-16 1999-02-03 Canon Kabushiki Kaisha Electronic apparatus with resume function
US5410713A (en) * 1992-01-02 1995-04-25 Smith Corona/Acer Power-management system for a computer
US5483656A (en) * 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5497494A (en) * 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5513359A (en) * 1993-07-23 1996-04-30 International Business Machines Corporation Desktop computer having a single-switch suspend/resume function
US5548763A (en) * 1993-07-26 1996-08-20 International Business Machines Corporation Desk top computer system having multi-level power management
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
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
DE4406094C2 (de) * 1994-02-25 2000-04-13 Lp Elektronik Gmbh Vorrichtung zum Betrieb einer Steuerungsanwendung
JPH07271699A (ja) * 1994-03-31 1995-10-20 Canon Inc ネットワークを介して接続される周辺処理装置と情報処理装置並びにその周辺処理装置における制御方法とその周辺処理装置の制御方法
US5630142A (en) * 1994-09-07 1997-05-13 International Business Machines Corporation Multifunction power switch and feedback led for suspend systems
US5832281A (en) * 1994-10-19 1998-11-03 Canon Kabushiki Kaisha Power control apparatus and power control method
US5671422A (en) * 1994-11-14 1997-09-23 Intel Corporation Method and apparatus for switching between the modes of a processor
AU4519596A (en) * 1994-12-22 1996-07-10 Intel Corporation Power budgeting with device specific characterization of power consumption
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5710941A (en) * 1995-02-28 1998-01-20 Microsoft Corporation System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation
US6393584B1 (en) 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
US6148321A (en) * 1995-05-05 2000-11-14 Intel Corporation Processor event recognition
US5701491A (en) * 1995-05-31 1997-12-23 Microsoft Corporation, Inc. Method and system for transitioning the network mode of a workstation
US6807558B1 (en) 1995-06-12 2004-10-19 Pointcast, Inc. Utilization of information “push” technology
US5751950A (en) * 1996-04-16 1998-05-12 Compaq Computer Corporation Secure power supply for protecting the shutdown of a computer system
KR100218186B1 (ko) * 1996-08-21 1999-09-01 윤종용 그래픽 장치의 데이터 저장 및 복구 방법
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6138162A (en) * 1997-02-11 2000-10-24 Pointcast, Inc. Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request
US6173311B1 (en) 1997-02-13 2001-01-09 Pointcast, Inc. Apparatus, method and article of manufacture for servicing client requests on a network
US6335729B2 (en) * 1997-02-28 2002-01-01 Sony Corporation Display method, method of storing image information, display apparatus, navigation apparatus and automobile
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
US6285406B1 (en) * 1997-03-28 2001-09-04 Compaq Computer Corporation Power management schemes for apparatus with converged functionalities
KR19990009846A (ko) * 1997-07-12 1999-02-05 윤종용 U s b 허브를 이용하는 컴퓨터 시스템의 락킹 장치 및 방법
US5978923A (en) * 1997-08-07 1999-11-02 Toshiba America Information Systems, Inc. Method and apparatus for a computer power management function including selective sleep states
US6230259B1 (en) * 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6230274B1 (en) * 1998-11-03 2001-05-08 Intel Corporation Method and apparatus for restoring a memory device channel when exiting a low power state
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
US20020087874A1 (en) * 2000-12-29 2002-07-04 Lippincott Louis A. Apparatus and method for integrated chipset content protection
US7086049B2 (en) * 2002-02-26 2006-08-01 International Business Machines Corporation Background code update for embedded systems
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
DE60323811D1 (de) * 2003-04-09 2008-11-13 Jaluna S A Betriebssysteme
EP1626341B1 (en) * 2003-05-20 2009-07-15 Bosch Corporation Vehicle control system recovery control method
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
JP2007509387A (ja) * 2003-09-30 2007-04-12 ジャルナ エスアー オペレーティングシステム
US7203813B1 (en) * 2003-11-24 2007-04-10 American Megatrends, Inc. Methods, computer systems, and computer readable media for changing module pointer values upon switches between different modes of memory addressing
US20060136765A1 (en) * 2004-12-03 2006-06-22 Poisner David L Prevention of data loss due to power failure
US7529921B2 (en) * 2004-12-17 2009-05-05 Cardiac Pacemakers, Inc. Fast initialization of medical device system having multiple operating systems
US7536568B2 (en) * 2005-12-01 2009-05-19 Covidien Ag Ultra low power wake-up circuit
US7725750B2 (en) * 2006-05-01 2010-05-25 Freescale Semiconductor, Inc. Method of transitioning between active mode and power-down mode in processor based system
WO2009047875A1 (ja) * 2007-10-09 2009-04-16 Mitsubishi Electric Corporation マイクロコンピュータ制御装置
US10318338B2 (en) 2015-01-08 2019-06-11 International Business Machines Corporation Re-launching contextually related application sets
US11635900B2 (en) * 2021-08-27 2023-04-25 Micron Technology, Inc. Memory sub-system signature generation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US4234920A (en) * 1978-11-24 1980-11-18 Engineered Systems, Inc. Power failure detection and restart system
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
US4779187A (en) * 1985-04-10 1988-10-18 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
US5241680A (en) * 1989-06-12 1993-08-31 Grid Systems Corporation Low-power, standby mode computer
US5218607A (en) * 1989-06-23 1993-06-08 Kabushiki Kaisha Toshiba Computer having a resume function and operable on an internal power source
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
JP2644348B2 (ja) * 1989-11-30 1997-08-25 株式会社東芝 コンピュータシステム
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
US5237692A (en) * 1990-11-09 1993-08-17 Ast Research Inc. Internal interrupt controller for a peripheral controller
US5230074A (en) * 1991-01-25 1993-07-20 International Business Machines Corporation Battery operated computer power management system

Also Published As

Publication number Publication date
JPH05250059A (ja) 1993-09-28
EP0518339A3 (en) 1993-12-22
EP0518339A2 (en) 1992-12-16
US5355490A (en) 1994-10-11

Similar Documents

Publication Publication Date Title
JP3037826B2 (ja) モード切り替え方法及び装置
US5339426A (en) System and method for resume processing initialization
JP2880863B2 (ja) サスペンド制御方法およびシステム
CA2231937C (en) Dynamic extension of static device drivers
US5021983A (en) Suspend/resume apparatus and method for reducing power consumption in battery powered computers
US6438668B1 (en) Method and apparatus for reducing power consumption in a digital processing system
JP2650675B2 (ja) マルチモードマイクロプロセッサにおいてプログラムを実行する方法及びオペレーティングシステム
US5125087A (en) Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
CA2227636C (en) Apparatus and method for allowing an operating system to persist across a power off/on cycle
US5867703A (en) Common reset ROM
US5870520A (en) Flash disaster recovery ROM and utility to reprogram multiple ROMS
EP0572332A1 (en) A method and a device for booting a computer at a programmed time
JPH08202563A (ja) コンピュータシステム
JPH08249191A (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
US6154846A (en) System for controlling a power saving mode in a computer system
US5963738A (en) Computer system for reading/writing system configuration using I/O instruction
EP1037133A1 (en) Method and apparatus for alternation between instances of operating systems in computer systems
US6282645B1 (en) Computer system for reading/writing system configuration using I/O instruction
JP3943764B2 (ja) コンピュータシステムおよびそのcpu性能制御方法
JPH06180668A (ja) コンピュータシステム
US6263421B1 (en) Virtual memory system that is portable between different CPU types
US7216189B2 (en) Single BIOS technique for supporting processors with and without 64-bit extensions
KR940009732B1 (ko) 카드의 오퍼레이팅 시스템 부팅방법
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees