JPH07200111A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH07200111A
JPH07200111A JP5351165A JP35116593A JPH07200111A JP H07200111 A JPH07200111 A JP H07200111A JP 5351165 A JP5351165 A JP 5351165A JP 35116593 A JP35116593 A JP 35116593A JP H07200111 A JPH07200111 A JP H07200111A
Authority
JP
Japan
Prior art keywords
cpu
state
stop
clock
smi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5351165A
Other languages
English (en)
Other versions
JP3302149B2 (ja
Inventor
Nobutaka Nakamura
伸隆 中村
Masayo Yamaki
昌代 八巻
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
Priority to JP35116593A priority Critical patent/JP3302149B2/ja
Priority to US08/364,720 priority patent/US5706407A/en
Publication of JPH07200111A publication Critical patent/JPH07200111A/ja
Priority to US08/893,926 priority patent/US6016548A/en
Application granted granted Critical
Publication of JP3302149B2 publication Critical patent/JP3302149B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Power Sources (AREA)

Abstract

(57)【要約】 【目的】OS環境に影響されないCPUスリープ機能を
実現する。 【構成】システム内の各種ハードウェア割込み要求信号
IRQ0〜IRQ15,NMIが監視され、タイマ割込
み(IRQ0)を除く他のすべての割込み要求信号が4
秒間発生されない時にグローバルスタンバイSMIがC
PU11に供給される。このグローバルスタンバイSM
Iによって実行されるグローバルスタンバイSMIルー
チンは、CPU11をストップグラントステートに設定
する。これにより、CPU11はスリープモードに移行
される。このようなグローバルスタンバイSMIを使用
したスリープ制御を行うことにより、OS環境によらず
に常に同一のスリープモード機能を提供することが可能
になり、またCPU11をスリープモードに移行するた
めのトリガを増やすことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ラップトップタイプ
またはノートブックタイプのポータブルパソーナルコン
ピュータシステムに関し、特に消費電力の低減のために
CPUの動作速度を制御する機能を持つコンピュータシ
ステムに関する。
【0002】
【従来の技術】近年、携行が容易でバッテリにより動作
可能なラップトップタイプまたはノートブックタイプの
パーソナルポータブルコンピュータが種々開発されてい
る。この種のポータブルコンピュータに於いては、無駄
な消費電力を低減するために、所定の条件下においては
CPUを自動的に停止させるといういわゆるCPUスリ
ープモード機能が設けられている。
【0003】従来のCPUスリープモード機能は、オペ
レータによるキーボード操作が一定時間以上実行されな
いことを条件に、実行される。
【0004】すなわち、アプリケーションプログラムが
キー入力待ちになると、BIOS(Basic I/O
System)のINT16Hがコールされ、キーボ
ード制御ルーチンが実行される。このBIOSのキーボ
ード制御ルーチンは、一定時間内にキーボード入力がな
いと、CPUにプログラム実行を停止させるためのHA
LT命令を実行させる。このCPUのHALTサイクル
がシステムハードウェアによって検出されると、システ
ムハードウェアは、CPUの消費電力を低減させるため
に、クロック周波数を低下またはクロックを完全に停止
することによってCPUをスリープモードに移行させ
る。CPUがスリープモードにある時は、クロック周波
数が低下されている場合と、クロックが完全に停止され
ている場合のどちらであっても、CPUによるプログラ
ム実行は一切行われない。
【0005】しかしながら、従来のスリープモード機能
によって検出できるCPUのアイドル状態は、アプリケ
ーションプログラムがキーボード入力待ちになった時の
CPUアイドルだけである。このため、アプリケーショ
ンプログラムがキーボード以外のI/Oデバイスの動作
完了を持っているような場合には、CPUがアイドル状
態であっても、CPUをスリープモードに移すことがで
きない。
【0006】この場合、そのI/Oデバイスの動作完了
までに要する時間、CPUの電力が無駄に消費されるこ
とになる。特に、動作速度の遅いI/Oデバイスからの
動作完了通知や、バスマスターなどの高度なインテリジ
ェントを持ったI/Oデバイスからの動作完了通知をア
プリケーションプログラムが待っているような場合に
は、CPUが比較的長い時間アイドル状態であるにもか
かわらず、CPUをスリープモードに移行することがで
きない。このため、無駄に消費されるCPUの電力も大
きくなる。
【0007】このように、従来のスリープモード機能
は、CPUをスリープモードに移行させる契機となるト
リガが少ないため、十分なパワーセーブを実現できない
という欠点を有している。
【0008】また、BIOSがシステムハードウェアを
制御できるのは、そのBIOSに対応した特定のオペレ
ーティングシステム(OS)環境下のみである。このた
め、スリープモード機能が正常に動作するか否かはOS
環境に大きく依存し、OS環境によってはスリープモー
ド機能が何等動作しなくなってしまうこともある。
【0009】さらに、従来のスリープモード機能では、
CPUをスリープモードから復帰させるのに時間がかか
るという問題がある。
【0010】すなわち、CPUがスリープモードの状態
で何等かのシステムイベントが発生すると、システムハ
ードウェアはCPUへのクロック供給を再開、またはク
ロック周波数を高くする。しかし、クロックを通常の状
態に切り替えても、CPU動作を直ぐには開始すること
ができない。特に、最近のPLL(Phase Loc
ked Loop)内蔵の高性能マイクロプロセッサ、
例えば、米インテル社により開発され製造販売されてい
るIntel486シリーズのマイクロプロセッサなど
においては、クロック切り替えから一定期間(例えば1
ms程度)、CPUの動作開始が待たされる。これは、
次の理由による。
【0011】すなわち、この種のマイクロプロセッサ
は、PLLを含む内部発振器を持ち、外部から供給され
るクロックに同期した高速クロックをそのPLLにより
発生させ、それを利用して高速動作を実現している。こ
のため、このマイクロプロセッサが正常に動作するため
には、外部から供給されるクロックの位相が安定してい
ることが必要とされる。さもないと、PLLの同期動作
に異常が来たされるからである。したがって、PLL内
蔵の高性能マイクロプロセッサをCPUとして使用して
いるシステムにおいては、CPUクロックの切り替えを
行う従来のスリープモード機能を適用すると、スリープ
モードからの復帰に時間が掛かり、システム性能が悪化
される欠点がある。
【0012】
【発明が解決しようとする課題】従来のスリープモード
機能では、CPUがスリープモードに設定されるのは、
BIOSのキーボード制御ルーチンが一定時間キーボー
ド入力がないことを検出した時のみである。このため、
CPUをスリープモードに移行するためのトリガが少な
く、CPUがアイドル状態であってもCPUをスリープ
モードに移すことができない場合が多かった。また、B
IOSがハードウェアを制御できるのはそのBIOSに
対応したOS環境のみであるため、OS環境によってC
PUをスリープモードに移行できない欠点があった。さ
らに、スリープモードではCPUクロックが低下または
停止されているので、スリープモードからノーマルモー
ドへの復帰に時間を要する欠点があった。
【0013】この発明はこのような点に鑑みてなされた
ものであり、OS環境によらずに常に同一のスリープモ
ードを実現でき、且つCPUの電力消費を十分に低減す
ることができるコンピュータシステムを提供することを
目的とする。
【0014】また、この発明は、PLL内蔵の高性能C
PUをスリープモードから高速に復帰させることができ
るコンピュータシステムを提供することを目的とする。
【0015】
【課題を解決するための手段および作用】この発明によ
るコンピュータシステムは、実行対象の各種プログラム
が格納されるメインメモリと、システム管理プログラム
を呼び出すための命令を格納し、前記メインメモリのア
ドレス空間の一部にマッピングされるオーバーレイメモ
リと、前記メインメモリのプログムを実行するプログラ
ム実行モードと前記オーバーレイメモリの命令を実行す
るシステム管理モードとを有し、所定の割込み入力端子
に供給される割込み信号に応答して前記プログラム実行
モードから前記システム管理モードにスイッチするCP
Uと、前記CPUによって呼び出された前記システム管
理プログラムに含まれるスリープ制御ルーチンを実行
し、前記CPUの動作状態を第1ステートからそれより
も電力消費の少ない第2ステートに切り替えるCPUス
リープ手段と、コンピュータシステム内で発生される前
記CPUへの各種ハードウェア割込み要求信号を監視
し、予め設定された第1のタイムアウト時間前記全ての
ハードウェア割込み要求信号が発生されない時システム
アイドルを検出するシステムアイドル検出手段と、この
システムアイドル検出手段によるシステムアイドルの検
出に応答して前記CPUの割込み入力端子にシステムア
イドルを示す割込み信号を供給し、前記CPUスリープ
手段による前記CPUの動作状態の切り替え処理を実行
させる手段とを具備することを第1の特徴とする。
【0016】このコンピュータシステムにおいては、シ
ステム内の各種ハードウェア割込み要求信号が監視さ
れ、それらすべてのハードウェア割込み要求信号が所定
時間発生されない時にシステムアイドルが検出され、こ
れによってCPUがスリープモードに移行される。この
ため、CPUをスリープモードに移行するためのトリガ
が増え、アプリケーションプログラムがキーボード入力
待ちになった時のCPUアイドルだけでなく、アプリケ
ーションプログラムがキーボード以外のI/Oデバイス
の動作完了を持っているような場合にも、CPUをスリ
ープモードに移行させることができる。したがって、C
PUがアイドルであるにもかかわらずCPUが動作状態
に維持されているという事態を防止でき、CPUの電力
消費を十分に低減することができる。
【0017】また、システムアイドルの検出には、ハー
ドウェア割込み要求信号が利用されている。このハード
ウェア割込み要求信号はシステム内の各種I/Oデバイ
スから発生させる物理的な信号であり、その検出にはB
IOSは一切利用されない。さらに、CPUスリープ手
段の処理をCPUへの割込み信号の供給のみによっての
み起動でき、OSやBIOSはCPUスリープ手段の起
動処理に一切関知しない。したがって、ハードウェアレ
ベルでシステムアイドルの検出、およびCPUスリープ
制御を行うことが可能となり、OS環境によらずに常に
同一のスリープモード機能を実現できる。
【0018】また、この発明によるコンピュータシステ
ムは、外部クロックに応じて内部クロックを生成するP
LLを内蔵し、命令が実行されるノーマルステートと、
命令実行および前記外部クロックが停止されるクロック
停止ステートと、前記ノーマルステートと前記クロック
停止ステートとの中間に位置し、命令実行が停止され前
記外部クロックの停止が可能なクロック停止許可ステー
トとを含む動作ステートを有し、クロック停止許可を示
すクロック停止信号の発生に応答して前記ノーマルステ
ートから前記クロック停止許可ステートに移行され、前
記クロック停止信号の発生停止に応答して前記クロック
停止許可ステートからノーマルステートに復帰されるC
PUを利用し、CPUスリープ手段によって前記CPU
をクロック停止許可ステートに設定することを第2の特
徴とする。
【0019】このコンピュータシステムにおいては、C
PUスリープとしてCPUのクロック停止許可ステート
が利用されている。このステートでは、一切の命令実行
が停止されるので、外部クロックを停止すること無く、
CPUの消費電力を低減することができる。このため、
外部クロックを動的に切り替えること無くCPUをスリ
ープモードから復帰できるので、PLL内蔵の高性能C
PUを高速にスリープモードから復帰させることが可能
となる。
【0020】さらに、この発明によるコンピュータシス
テムは、外部クロックに応じて内部クロックを生成する
PLLを内蔵し、命令が実行されるノーマルステート
と、命令実行および前記外部クロックが停止されるクロ
ック停止ステートと、前記ノーマルステートと前記クロ
ック停止ステートとの中間に位置し、命令実行が停止さ
れ前記外部クロックの停止が可能なクロック停止許可ス
テートとを含む動作ステートを有し、クロック停止許可
を示すクロック停止信号の発生に応答して前記ノーマル
ステートから前記クロック停止許可ステートに移行さ
れ、前記クロック停止信号の発生停止に応答して前記ク
ロック停止許可ステートからノーマルステートに復帰さ
れるCPUと、前記クロック停止信号を発生するクロッ
ク停止信号発生手段と、前記CPUによって実行される
各種プログラムを格納するメインメモリと、システム管
理プログラムを呼び出すための命令を格納し前記メイン
メモリのアドレス空間の一部にマッピングされるオーバ
ーレイメモリであって、前記CPUの所定の割込み入力
端子に割込み信号が供給された際に前記CPUによって
前記命令が実行されるオーバーレイメモリと、前記CP
Uによって呼び出される前記システム管理プログラムに
含まれるスリープ制御ルーチンを実行し、前記クロック
停止信号発生手段にクロック停止信号の発生を指示する
CPUスリープ手段と、コンピュータシステム内で発生
される前記CPUへの各種ハードウェア割込み要求信号
を監視し、予め設定された時間前記全てのハードウェア
割込み要求信号が発生されない時システムアイドルを検
出するシステムアイドル検出手段と、このシステムアイ
ドル検出手段によるシステムアイドルの検出に応答して
前記CPUの割込み入力端子にシステムアイドルを示す
割込み信号を供給し、前記CPUスリープ手段にクロッ
ク停止信号発生指示の発行処理を実行させる手段と、前
記各種ハードウェア割込み要求信号を監視し、前記ハー
ドウェア割込み要求信号の1つが発生された時システム
イベントの発生を検出するシステムイベント検出手段
と、このシステムイベント検出手段によるシステムイベ
ントの発生検出に応答して、前記クロック停止信号発生
手段に前記クロック停止信号の発生を停止させ、前記C
PUをクロック停止許可ステートからノーマルステート
に復帰させる手段とを具備し、前記CPUスリープ手段
は、前記システムアイドルを示す割込み信号の発生から
前記システムイベント検出手段によるシステムイベント
の発生検出までの期間前記CPUがクロック停止許可ス
テートとノーマルステートを交互に繰り返すように、前
記クロック停止信号発生手段に前記クロック停止信号を
断続的に発生させる手段を含むことを第3の特徴とす
る。
【0021】このコンピュータシステムにおいては、C
PUはスリープモードにおいてクロック停止許可ステー
トとノーマルステートをある時間間隔で交互に繰り返
す。クロック停止許可ステートにおいてはCPUの一切
の命令実行は停止されるが、ノーマルステートにおいて
は命令実行の再開が可能となる。このため、スリープモ
ードの期間、つまりシステムアイドルが検出されてから
システムイベントの発生が検出されるまでの期間、CP
Uによるプログラム実行は完全には停止されず、CPU
は断続的にプログラムを実行することが可能である。し
たがって、メモリのベンチマークテストなどのようにI
/Oを使用せずに演算処理を行うようなプログラムをC
PUが実行している時にアイドル状態の誤検出により誤
ってCPUがスリープモードに移行されても、プログラ
ム実行が突然停止されて以降何等処理が進まないという
事態の発生を防止できる。また、スリープモードにおい
てはCPUの平均動作速度を遅くできるので、このスリ
ープ制御方式でも平均的な意味では十分にCPUの電力
消費を低減することができる。
【0022】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0023】図1には、この発明の一実施例に係わるコ
ンピュータシステムの構成が示されている。このコンピ
ュータシステムは、ラップトップタイプまたはノートブ
ックタイプのパーソナルコンピュータシステムであり、
CPU11、システムコントローラ12、メインメモリ
13、BIOS ROM14、およびバス変換回路15
を備えている。
【0024】CPU11およびメインメモリ13は、3
2ビット幅のデータバスを含むCPUバス100に接続
されている。CPUバス100は、バス変換回路15を
介して16ビット幅のデータバスを含むISA仕様のシ
ステムバス200に接続されている。
【0025】また、このシステムには、割込みコントロ
ーラ16、キーボードコントローラ17、システムタイ
マ18、および他の各種I/Oデバイス19が設けられ
ており、これらはシステムバス200に接続されてい
る。
【0026】CPU11としては、例えば、米インテル
社により製造販売されているマイクロプロセッサSL
Enhanced Intel486が使用される。S
LEnhanced Intel486は、4種類のク
ロックモデル、1×クロックモデル、1/2×クロック
モデル、1/3×クロックモデル、2×クロックモデル
に大別される。1×クロックモデル、1/2×クロック
モデル、1/3×クロックモデルはPLL内蔵のモデル
であり、2×クロックモデルはPLLを持たないモデル
である。このシステムでは、PLL内蔵の高性能プロセ
ッサである1×クロックモデル、1/2×クロックモデ
ル、または1/3×クロックモデルのSL Enhan
ced Intel486が使用される。
【0027】以下、1×クロックモデルのSL Enh
anced Intel486をCPU11として使用
した場合を例にとって説明する。
【0028】すなわち、CPU11はPLL回路111
を内蔵しており、このPLL回路111は外部クロック
CLKに基づいてその外部クロックCLKと同一または
それよりも高速の内部クロックCLK2を生成する。こ
のCPU11は、図2に示されているように、電力消費
の異なる3つの動作ステート、つまり、ノーマルステー
ト(Normal State)、ストップグラントス
テート(Stop Grant State)、および
ストップクロックステート(STOP Clock S
tate)を有している。
【0029】ノーマルステートはCPU11の通常の動
作ステートであり、命令はこのノーマルステートにおい
て実行される。このノーマルステートは電力消費の最も
多いステートであり、その消費電流は〜700mA程度
である。
【0030】最も電力消費の少ないのはストップクロッ
クステートであり、その消費電流は〜50μA程度であ
る。このストップクロックステートにおいては、命令の
実行が停止されるだけでなく、外部クロックCLKおよ
び内部クロックCLK2も停止されている。
【0031】ストップグラントステートは、ノーマルス
テートとストップクロックステートの中間の動作ステー
トであり、その消費電流は20〜50mA程度と比較的
少ない。ストップグラントステートにおいては、命令は
実行されない。また、外部クロックCLKおよび内部ク
ロックCLK2は共にランニング状態であるが、CPU
内部ロジックへの内部クロックCLK2の供給は停止さ
れる。このストップグラントステートは外部クロックC
LKの停止可能なステートであり、このストップグラン
トステートにおいて外部クロックCLKを停止すると、
CPU11はストップグラントステートからストップク
ロックステートに移行する。
【0032】ノーマルステートとストップグラントステ
ート間の遷移は、ストップクロック(STPCLK)信
号によって高速に行うことができる。
【0033】すなわち、ノーマルステートにおいてCP
U11に供給されるSTPCLK信号がイネーブルつま
りアクティブステートに設定されると、CPU11は、
現在実行中の命令が完了後、次の命令を実行すること無
く、内部のパイプラインをすべて空にしてから、ストッ
プグラントサイクルを実行して、ノーマルステートから
ストップグラントステートに移行する。一方、ストップ
グラントステートにおいてSTPCLK信号がディスエ
ーブルつまりインアクイブステートに設定されると、C
PU11は、ストップグラントステートからノーマルス
テートに移行し、次の命令の実行を再開する。
【0034】また、ストップグラントステートからスト
ップクロックステートへの移行は、外部クロックCLK
を停止することによって瞬時に行われる。ストップクロ
ックステートにおいてCPU11への外部クロックCL
Kの供給が再開されると、1ms後にCPU11はスト
ップグラントステートに移行する。このようにストップ
クロックステートからの復帰には時間がかかる問題があ
る。
【0035】以上のように、ストップグラントステート
は、ノーマルステートに比べ非常にローパワーであり、
且つSTPCLK信号によってノーマルステート、つま
り命令実行状態に高速に復帰できるという特徴を持って
いる。このため、このシステムでは、CPUスリープモ
ードとしてストップクロックステートではなく、ストッ
プグラントステートが利用される。
【0036】さらに、図1のCPU11は、次のような
システム管理機能を備えている。
【0037】すなわち、CPU11は、アプリケーショ
ンプログラムやOSなどのプログラムを実行するための
リアルモード、プロテクトモード、仮想86モードの
他、システム管理モード(SMM;System Ma
nagement mode)と称されるシステム管理
または電力管理専用のシステム管理プログラムを実行す
るための動作モードを有している。
【0038】リアルモードは、最大で1Mバイトのメモ
リ空間をアクセスできるモードであり、セグメントレジ
スタで表されるベースアドレスからのオフセット値で物
理アドレスが決定される。プロテクトモードは1タスク
当たり最大4Gバイトのメモリ空間をアクセスできるモ
ードであり、ディスクプリタテーブルと称されるアドレ
スマッピングテーブルを用いてリニアアドレスが決定さ
れる。このリニアアドレスレスは、ページングによって
最終的に物理アドレスに変換される。仮想86モード
は、リアルモードで動作するように構成されたプログラ
ムをプロテクトモードで動作させるためのモードであ
り、リアルモードのプログラムはプロテクトモードにお
ける1つのタスクとして扱われる。
【0039】システム管理モード(SMM)は疑似リア
ルモードであり、このモードでは、ディスクプリタテー
ブルは参照されず、ページングも実行されない。システ
ム管理割込み(SMI;System Management Inter
rupt)がCPU11に発行された時、CPU11の動作
モードは、リアルモード、プロテクトモード、または仮
想86モードから、SMMにスイッチされる。SMMで
は、システム管理またはパワーセーブ制御専用のシステ
ム管理プログラムが実行される。
【0040】SMIはマスク不能割込みNMIの一種で
あるが、通常のNMIやマスク可能割込みINTRより
も優先度の高い、最優先度の割り込みである。このSM
Iを発行することによって、システム管理プログラムと
して用意された種々のSMIサービスルーチンを、実行
中のアプリケーションプログラムやOS環境に依存せず
に起動することができる。このコンピュータシステムに
おいては、OS環境に依存せずに常に同一のスリープモ
ード機能を実現するために、このSMIを利用してCP
Uスリープが制御される。
【0041】システムコントローラ12は、このシステ
ム内のメモリやI/Oを制御するためのゲートアレイで
あり、ここにはCPU11へのSMI信号およびSTP
CLK信号の発生を制御するためのハードウェアが組み
込まれている。
【0042】メインメモリ13は、オペレーティングシ
ステム、処理対象のアプリケーションプログラム、およ
びアプリケーションプログラムによって作成されたユー
ザデータ等を格納する。SMRAM(System M
anagement RAM)50は、メインメモリ1
3のアドレス30000Hから3FFFFHまでのアド
レス空間にマッピングされるオ−バレイであり、SMI
信号がCPU11に入力された時だけアクセス可能とな
る。ここで、SMRAMがマッピングされるアドレス範
囲は固定ではなく、SMBASEと称されるレジスタに
よって4Gバイト空間の任意の場所に変更することが可
能である。SMBASEレジスタは、SMM中でないと
アクセスできない。SMBASEレジスタの初期値は、
アドレス3000Hである。
【0043】CPU11がSMMに移行する時には、C
PUステータス、つまりSMIが発生された時のCPU
11のレジスタ等が、SMRAM50にスタック形式で
セーブされる。このSMRAM50には、BIOSRO
M14のシステム管理プログラムを呼び出すための命令
が格納されている。この命令は、CPU11がSMMに
入った時に最初に実行される命令であり、この命令実行
によってシステム管理プログラムに制御が移る。
【0044】BIOS ROM14は、BIOS(Bas
ic I/O System )を記憶するためのものであり、
プログラム書き替えが可能なようにフラッシュメモリに
よって構成されている。BIOSは、リアルモードで動
作するように構成されている。このBIOSには、シス
テムブート時に実行されるIRTルーチンと、各種I/
Oデバイスを制御するためのデバイスドライバと、シス
テム管理プログラムが含まれている。システム管理プロ
グラムは、SMMにおいて実行されるプログラムであ
り、グローバルスタンバスSMIルーチンおよびソフト
ウェアSMIルーチンなどを含むSMIプログラムと、
実行するSMIルーチンを決定するためのSMIハンド
ラ等を含んでいる。
【0045】グローバルスタンバイSMIルーチンおよ
びソフトウェアSMIルーチンにはは、それぞれCPU
11をスリープモードに設定するためのスリープ制御ル
ーチンが含まれている。また、グローバルスタンバイS
MIルーチンには、システムステータスをセーブした後
にシステムをパワーオフするオートパワーオフルーチン
も含まれている。
【0046】SMIハンドラは、SMIが発生した時に
CPU11によって最初に呼び出されるBIOS内のプ
ログラムであり、これによって、SMIの発生要因のチ
ェックや、その発生要因に対応したSMIルーチンの呼
び出しが実行される。
【0047】バス変換回路15は、CPUバス100の
32ビットデータバスとシステムバス200の16ビッ
トデータバスとの間のバス幅変換などを行う。
【0048】割込みコントローラ16は、キーホードコ
ントローラ17、システムタイマ18、およびその他の
I/Oデバイス19からの割込み要求信号IRQ0〜I
RQ15を受信し、その割込み要求信号の優先順位にし
たがってCPU11への割込み信号INTRの発生を制
御する。この場合、発生された割込み要求信号を示すス
テータス情報は、割込みコントローラ16内のレジスタ
に保持される。割込み信号INTRは、ハードウェア割
込み要求信号(IRQ0〜IRQ15)のいずれか1つ
が発生された時に発生される。
【0049】ここで、IRQ0は、例えば55m秒単位
でシステムタイマ18から発生されるタイマ割込み要求
信号である。IRQ0の発生間隔はプログラマブルに設
定可能であり、OS環境によっては高速タスク切替えの
ために55msよりもさらに短い値に設定される場合も
ある。IRQ1は、キー入力時にキーホードコントロー
ラ17から発生されるキーボード割込み信号である。ま
た、キーホードコントローラ17からの割り込み信号に
は、マウス操作時に発生される割込み信号IRQ12も
ある。IRQ2〜IRQ11,IRQ13〜IRQ15
は、システム内のその他の各種I/Oデバイス19(例
えば、フロッピーディスクコントローラ、ハードディス
クコントローラ、シリアルポート、SCSIポート、な
ど)からの割込み要求信号である。
【0050】次に、システムコントローラ12に設けら
れた、SMIおよびSTPCLKの発生制御のためのハ
ードウェア構成について説明する。
【0051】システムコントローラ12は、図示のよう
に、I/Oレジスタ群121、グローバルスタンバイタ
イマ122、ソフトウェアSMIタイマ123、システ
ムイベント検出回路124、グローバルスタンバイSM
I発生回路125、ソフトウェアSMI発生回路12
6、他の要因のSMI発生回路127、OR回路12
8,130、およびストップクロック制御回路129、
およびNMI発生回路131を備えている。
【0052】I/Oレジスタ群121は、CPU11に
よってリード/ライト可能なレジスタ群であり、ここに
は、SMIの発生要因を示すSMIステータス情報がコ
ントローラ12内のハードウェアによってセットされる
と共に、グローバルスタンバイタイムアウト値、および
ソフトウェアSMIワーニングタイムアウトカウント値
などがCPU11によってセットされる。グローバルス
タンバイタイムアウト値はグローバルスタンバイタイマ
122に送られ、ソフトウェアSMIワーニングタイム
アウトカウント値はソフトウェアSMIタイマ123に
送られる。さらに、I/Oレジスタ群121には、スト
ップクロック制御回路129にSTPCLKを発生させ
るためのストップクロックコマンドがCPU11によっ
てセットされる。このストップクロックコマンドは、ス
トップクロック制御回路129に送られる。
【0053】グローバルスタンバイタイマ122は、例
えば4秒単位でカウント動作するアップカウンタであ
り、レジスタ群121にグローバルスタンバイタイムア
ウト値がセットされることによってカウント動作が開始
される。システムイベント検出回路124からシステム
イベント検出信号が発生されると、グローバルスタンバ
イタイマ122のカウント値はリセットされ、カウント
値“0”からカウント動作が再開される。カウント値と
グローバルスタンバイタイムアウト値が一致した時、グ
ローバルスタンバイタイムアウト信号がグローバルスタ
ンバイタイマ122から発生される。このグローバルス
タンバイタイムアウト信号は、グローバルスタンバイタ
イムアウト値によって指定された時間の間システムイベ
ントが発生しなかった事を示す。このグローバルスタン
バイタイムアウト信号は、グローバルスタンバイSMI
発生回路125にグローバルスタンバイSMIを発生さ
せる。
【0054】ソフトウェアSMIタイマ123は、例え
ば1m秒単位でカウント動作するアップカウンタであ
り、レジスタ群121にソフトウェアSMIワーニング
タイムアウト値がセットされることによってカウント動
作が開始される。システムイベント検出回路124から
システムイベント検出信号が発生されると、ソフトウェ
アSMIタイマ123のカウント値はリセットされ、カ
ウント値“0”からカウント動作が再開される。カウン
ト値とソフトウェアSMIワーニングタイムアウト値が
一致した時に、ソフトウェアSMIワーニングタイムア
ウト信号がソフトウェアSMIタイマ123から発生さ
れる。ソフトウェアSMIワーニングタイムアウト信号
は、ソフトウェアSMI発生回路126にソフトウェア
SMIを発生させる。
【0055】システムイベント検出回路124は、ハー
ドウェア割込み信号、およびNMIを監視し、システム
イベントの発生を検出する。システムイベントの発生が
検出された時、システムイベント検出回路124は、シ
ステムイベント検出信号を発生する。
【0056】ここで、システムイベントとは、タイマ割
込み(IRQ0)を除くハードウェア割込み要求信号、
つまりIRQ1〜IRQ15と、NMIをいう。
【0057】システムイベント検出回路124は、シス
テムコントローラ12の入力ピン数削減のために、IR
Q1〜IRQ15は実際には監視せず、その代わりにI
NTRとIRQ0を監視する。この場合、システムイベ
ント検出回路124は、INTRの発生時にIRQ0が
アクィティブステートで無かったらIRQ1〜IRQ1
5のいずれかが発生した(システムイベント)と判断す
る。この場合、実際には、IRQ0がアクティブステー
トであっても、その1回のアクティブステートの期間内
にINTRが2回発生した時には、システムイベントの
発生と見なされる。
【0058】すなわち、図3(A)に示されているよう
に、IRQ0がアクィティブ(H)に維持されている期
間内に2回のINTRが発生した場合は、1回目のIN
TR発生時にはシステムイベントの発生とは見なされな
いが、2回目のINTR発生時にはシステムイベントの
発生と見なされる。一方、図3(B)に示されているよ
うに、IRQ0が途中でインアクイブ(L)に戻る場合
には、連続する2回のINTR発生時にIRQ0が共に
アクティブ(H)であっても、システムイベントの発生
とは見なされない。
【0059】これは、IRQ0〜15はエッジトリガの
信号であるので、インアクティブステートからアクィテ
ィブステートに変化するときのエッジだけが有効であ
り、それがアクィティブステートに維持されている期間
は意味を持たないからである。
【0060】すなわち、図3(C)に示されているよう
に、IRQ0は、一旦発生されると一定期間(27ms
程度)アクティブ(H)に維持される。このため、IR
Q0は、タイマ処理が終了した後もすぐにはインアクテ
ィブ(L)に戻らず、アクティブステート(H)に維持
される。従って、IRQ0がアクティブステート(H)
に維持されている期間において、最初に発生されたIN
TRはIRQ0によるものであるが、2回目に発生され
たINTRはIRQ1のようなIRQ0以外の要因によ
るものである。
【0061】以上の理由から、システムイベント検出回
路124によってシステムイベントが検出されるのは、
次の2つの場合である。2 1)INTRの発生時にIRQ0がアクィティブステー
トで無い場合。
【0062】2)IRQ0がアクティブステートであっ
ても、その1回のアクティブステートの期間内にINT
Rが2回発生した場合。
【0063】グローバルスタンバイSMI発生回路12
5は、グローバルスタンバイタイムアウト値によって指
定される時間の間システムイベントが発生されなかった
時、すなわち、グローバルスタンバイタイマ122から
グローバルスタンバイタイムアウト信号が発生された時
に、システムアイドルを示すグローバルスタンバイSM
Iを発生する。グローバルスタンバイSMIは、OR回
路128を介してCPU11に供給される。グローバル
スタンバイタイムアウト信号が発生された時、グローバ
ルスタンバイSMIの発生を示すSMIステータス情報
がレジスタ群12にセットされる。
【0064】ソフトウェアSMI発生回路126は、ソ
フトウェアSMIタイマ123からのソフトウェアSM
Iワーニングタイムアウト信号に応答して、ソフトウェ
アSMIを発生する。このソフトウェアSMIは、OR
回路128を介してCPU11に供給される。ソフトウ
ェアSMIワーニングタイムアウト信号が発生された
時、ソフトウェアSMIの発生を示すSMIステータス
情報がレジスタ群121にセットされる。
【0065】他の要因のSMI発生回路127は、グロ
ーバルスタンバイタイムアウトおよびソフトウェアSM
Iワーニングタイムアウト以外の要因によるSMI(外
部入力SMI、I/Oトラップ機能によるSMI、ロー
カルスタンバイタイムアウトによるSMI、電源からの
サスペンドレジュームボタン信号によるSMI)を発生
する。
【0066】ストップクロック制御回路129は、CP
U11によってレジスタ群121にストップクロック発
生コマンドがセットされた時に、CPU11をストップ
グラントステートに移行させるストップクロック信号
(STPCLK)を発生する。このSTPCLKは、O
R回路130からストップブレーク信号が供給された時
にその発生が停止される。ストップブレーク信号は、C
PU11をストップグラントステートからノーマルステ
ートに復帰させるために発生される。ストップブレーク
信号の発生要因としては、すべてのSMIと、IRQ0
〜IRQ15によって発生するINTRと、NMIであ
る。
【0067】NMI発生回路131は、I/Oチャネル
チェックなどのNMI発生要因に応答して、NMIを発
生する。このNMIは、CPU11、システムイベント
検出回路124、およびOR回路130に供給される。
【0068】このシステムコントローラ12において
は、システムイベント検出回路124によってシステム
内の各種ハードウェア割込み要求信号が監視され、タイ
マ割込みを除く他のすべてのハードウェア割込み要求信
号が所定時間発生されない時にシステムアイドルが検出
され、これによってCPU11をスリープモードに移行
させるためのグローバルスタンバイSMIが発生され
る。
【0069】CPU11からストップクロックコマンド
が発行されると、ストップクロック制御回路129はS
TPCLKを発生し、CPU11をストップグラントス
テートに設定する。この状態でハードウェア割込みなど
のストップブレーク要因が発生すると、ストップクロッ
ク制御回路129は、CPU11にそのハードウェア割
込みに対応する処理を実行させるために、STPCLK
の発生を停止してCPU11をノーマルステートに戻
す。
【0070】また、このシステムコントローラ12にお
いては、スリープモードにおいてストップグラントステ
ートとノーマルステートがある時間間隔で交互に繰り返
されるように、ストップブレーク用のソフトウェアSM
Iと再スリープ用のソフトウェアSMIが交互に発生さ
れる。これは、STPCLK信号を発生する前にソフト
ウェアSMIタイマ123にストップブレーク用のタイ
ムアウト時間をセットすると共に、そのストップブレー
ク用のソフトウェアSMIによってストップブレークが
発生したときに再スリープ用のタイムアウト時間をソフ
トウェアSMIタイマ123にセットすることによって
実現される。
【0071】この場合、もしストップブレーク要因とし
てのソフトウェアSMIが発生される前にキーボード割
込みなどのハードウェア割込み要求信号による他のスト
ップブレーク要因が発生したならば、タイムアウトの時
間を待たずに、そのハードウェア割込み要求信号による
ストップブレークが先に引き起こされる。これにより、
サービスを要求しているキーボードコントローラ17や
他のI/Oデバイス19に素早くサービスを提供でき
る。
【0072】また、ストップブレーク要因がタイマ割込
みの場合には、CPU11を再度ストップグラントステ
ートに戻すための再スリープ処理が実行される。
【0073】以下、SMIおよびSTPCLKを利用し
たCPUスリープ制御の動作手順を説明する。
【0074】まず、図4および図5を参照して、CPU
11にSMIが発行された時のCPU11の動作につい
て説明する。
【0075】CPU11にSMIが入力されると、CP
U11は、まず、SMRAM50をメインメモリ13の
アドレス30000Hから3FFFFHまでのアドレス
空間にマッピングする(ステップS1)。これにより、
メインメモリ13のアドレス30000Hから3FFF
FHはアクセス不能となり、代わりにSMRAM50が
アクセス可能となる。
【0076】SMRAM50には、CPUステート格納
エリア、SMIハンドラ作業エリアが設けられており、
またBIOS ROM14のSMIハンドラを割り込み
先として指定するジャンプコードがセットされている。
【0077】次いで、CPU11は、SMIが入力され
た時のCPU11の各種レジスタの内容(CPUステー
タス)をSMRAM50のCPUステート格納エリアに
スタック形式でセーブする(ステップS2)。そして、
CPU11は、SMMのスタートアドレス38000H
のコード、つまりSMRAM50のアドレス38000
Hにセットされているジャンプコードをフェッチし、そ
のジャンプコードで指定されるBIOS ROM14の
SMIハンドラを実行する(ステップS3)。ここまで
のステップS1〜S3の処理は、CPU11のマイクロ
プログラムによって実行されるものである。
【0078】ジャンプコードの実行によって呼び出され
るSMIハンドラは、どのような要因でSMIが発生さ
れたかを決定するために、SMI発生要因をチェックす
る(ステップS4)。この処理では、システムコントロ
ーラ12のレジスタ群121にセットされているSMI
ステータス情報が参照される。例えば、グローバルスタ
ンバイタイムアウトによるSMIであれば、SMIハン
ドラは、そのSMIに対応するBIOSのSMIサービ
スルーチン、つまりグローバルスタンバイSMIルーチ
ンの実行をリクエストする(ステップS5)。また、ソ
フトウェアSMIワーニングタイムアウトによるSMI
であれば、SMIハンドラは、ソフトウェアSMIルー
チンの実行をリクエストする(ステップS5)。グロー
バルスタンバイSMIルーチンおよびソフトウェアSM
Iルーチンには、それぞれCPUスリープ制御ルーチン
が含まれている。
【0079】このように、CPUスリープ制御ルーチン
は、OSやBIOSを一切介さずに、CPU11にSM
I信号を供給することだけで起動することができる。
【0080】次に、図6および図7を参照して、スリー
プモードの期間CPU11をストップグラントステート
に維持する場合のCPUスリープ制御動作を説明する。
【0081】システムのブートロート時には、グローバ
ルスタンバイタイマ122には、システムアイドル検出
のための検出時間がグローバルスタンバイタイムアウト
値としてセットされる。このグローバルスタンバイタイ
ムアウト値は、システムアイドル時に直ぐにCPU11
をスリープモードに移行できるように、比較的短い時
間、好ましくは4秒、8秒、……1分のいずれか(ここ
では、4秒)に指定される。このタイマの初期設定は、
IRTルーチンによって実行される。
【0082】システムスタート後、4秒の時間、タイマ
割込みを除く一切のハードウェア割込み要求信号が発生
されないと、グローバルスタンバイタイマ122からグ
ローバルスタンバイタイムアウト信号が発生される(ス
テップS11)。このグローバルスタンバイタイムアウ
ト信号に応答して、グローバルスタンバイSMI発生回
路125はグローバルスタンバイSMI信号を発生する
(ステップS12)。この時、レジスタ群121には、
グローバルスタンバイタイムアウトによるSMIが発生
したことを示すSMIステータス情報がセットされる。
【0083】CPU11は、SMI信号に応答してSM
Mに入り、グローバルスタンバイSMIルーチンを実行
する(ステップS13)。グローバルスタンバイSMI
ルーチンは、グローバルスタンバイタイムアウト値をオ
ートパワーオフ用の時間、たとえば30分(または1時
間)に設定し直し(ステップS14)、その後、STP
CLKの発生を指示するストップクロックコマンドをレ
ジスタ群121にセットする。
【0084】ストップクロック制御回路129は、その
ストップクロックコマンドに応答して、STPCLKを
発生する(ステップS15)。CPU11は、これに応
答してスリープモードつまりストップグラントステート
に設定される。これにより、CPU11の命令実行は停
止され、グローバルスタンバイSMIルーチンの途中で
その実行が停止される。
【0085】スリープモードにおいてストップブレーク
要因が発生されると(ステップS16)、それがストッ
プブレーク信号としてストップクロック制御回路129
に送られる。このストップブレーク要因信号に応答し
て、ストップクロック制御回路129は、STPCLK
を停止する(ステップS17)。これにより、CPU1
1はストップグラントステートからノーマルステートに
移行し、スリープモードから抜ける。そして、グローバ
ルスタンバイSMIルーチンが次の命令から実行開始さ
れる。
【0086】グローバルスタンバイSMIルーチンは、
まず、ストップブレークの要因をチェックし、ストップ
ブレーク要因がシステムイベント(タイマ割込み以外の
ハードウェア割込み要求信号)か、タイマ割込みかを調
べる(ステップS18)。この要因チェックは、割込み
コントローラ16の割込みステータスレジスタなどを参
照することによって行うことができる。
【0087】ストップブレーク要因がシステムイベント
の発生であった場合には、グローバルスタンバイSMI
ルーチンは、グローバルスタンバイタイムアウト値を4
秒に戻し(ステップS19)、その後レジューム(RS
M)命令を実行する(ステップS20)。これにより、
SMIによって割り込まれたOSまたはアプリケーショ
ンプログラムにリターンされ、CPU11はスリープモ
ードから通常動作モードに復帰する。そして、そこで、
システムイベントの要因となった割込みに対するサービ
スが実行される。
【0088】SMM中は、INTRによる割り込み(I
RQ0を含む)はCLIによってマスクされている。ま
た、NMIもマスクされている。
【0089】一方、ストップブレーク要因がタイマ割込
み(IRQ0)であった場合には、グローバルスタンバ
イSMIルーチンは、再スリープ用ソフトウェアSMI
を一定時間後に発生させるために、ソフトウェアSMI
タイマ123に時間T2をセットし(ステップS2
1)、その後レジューム(RSM)命令を実行する(ス
テップS20)。これにより、SMIによって割り込ま
れたOSまたはアプリケーションプログラムに一旦リタ
ーンされその中でIRQ0によるタイマ割り込みが処理
されるが、その後すぐに、CPU11は再スリープ用ソ
フトウェアSMIによって再びスリープモードに移行す
る。
【0090】タイマ割込みがブレーク要因として発生し
た場合の再スリープ処理の手順を図7に示す。
【0091】図7に示されているように、ステップS2
1によってソフトウェアSMIタイマ123にセットさ
れた時間T2だけ経過すると、ソフトウェアSMIタイ
マ123からソフトウェアSMIワーニングタイムアウ
ト信号が発生される(ステップS22)。このソフトウ
ェアSMIワーニングタイムアウト信号に応答して、ソ
フトウェアSMI発生回路126は、再スリープのため
のソフトウェアSMI信号を発生する(ステップS2
3)。この時、レジスタ群121には、ソフトウェアS
MIワーニングタイムアウトによるSMIが発生したこ
とを示すSMIステータス情報がセットされる。
【0092】CPU11は、SMI信号に応答してSM
Mに入り、ソフトウェアSMIルーチンを実行する(ス
テップS24)。ソフトウェアSMIルーチンは、再ス
リープのためのソフトウェアSMIであることを確認す
ると、STPCLKの発生を指示するストップクロック
コマンドをレジスタ群121にセットする。ストップク
ロック制御回路129は、そのストップクロックコマン
ドに応答して、STPCLKを発生する(ステップS2
5)。CPU11は、これに応答してスリープモードつ
まりストップグラントステートに再設定される。
【0093】図8には、CPU11がクローバルスタン
バイタイムアウトによるSMIによってスリープモード
に移行してから、キーボード割込みなどのシステムイベ
ントによってスリープモードから通常動作モードに復帰
するまでのタイミングチャートが示されている。
【0094】図8において、t1は、CPU11が通常
動作モードの期間において4秒間システムイベントが発
生しないことによって発生するグローバルスタンバイタ
イムアウトの発生タイミングを示す。このタイミングt
1において、CPU11はSMMに入り、その時実行対
象となっているプログラムからグローバルスタンバイS
MIルーチンに制御が移る。t2はSTPCLK信号の
発生タイミングであり、このタイミングt2においてC
PU11はストップグラントステートに入る。t3は、
キーボード割込みなどのシステムイベントの発生タイミ
ングを示す。このタイミングt3において、CPU11
はストップグラントステートからノーマルステートに復
帰する。t4は、RSM命令の実行タイミングであり、
このRSM命令の実行によってグローバルスタンバイS
MIルーチンから割り込み元のプログラムに制御が戻
る。キーボード割り込みなどの割り込み処理は、そこで
行われる。
【0095】図9には、タイマ割込みによるストップブ
レークの発生によって再スリープ処理が実行される場合
のタイミングチャートが示されている。
【0096】図9において、t1は、CPU11が通常
動作モードの期間において4秒間システムイベントが発
生しないことによって発生するグローバルスタンバイタ
イムアウトの発生タイミングを示す。このタイミングt
1において、CPU11はSMMに入り、その時実行対
象となっているプログラムからグローバルスタンバイS
MIルーチンに制御が移る。t2はSTPCLK信号の
発生タイミングであり、このタイミングt2においてC
PU11はストップグラントステートに入る。t3は、
タイマ割込みの発生タイミングを示す。このタイミング
t3において、CPU11は一旦ストップブレークさ
れ、ストップグラントステートからノーマルステートに
復帰する。t4は、一定時間後に再スリープ用のソウト
ウェアSMIを発生させるための準備処理の実行タイミ
ングを示す。t5は、RSM命令の実行タイミングであ
り、このRSM命令の実行によってグローバルスタンバ
イSMIルーチンから割り込み元のプログラムに一旦制
御が戻る。タイマ割り込み処理は、こちらで行われる。
t6は、再スリープ用のソフトウェアSMIの発生タイ
ミングを示す。このタイミングt6において、CPU1
1は再度SMMに入り、ソフトウェアSMIルーチンを
実行する。t7はSTPCLK信号の発生タイミングで
あり、このタイミングt7においてCPU11はストッ
プグラントステートに入る。t8は、キーボード割込み
などのシステムイベントの発生タイミングを示す。この
タイミングt8において、CPU11はストップグラン
トステートからノーマルステートに復帰する。今回は、
再スリープの設定はされない。t9は、RSM命令の実
行タイミングであり、このRSM命令の実行によってソ
フトウェアSMIルーチンから割り込み元のプログラム
に制御が戻り、CPU11はスリープモードから通常動
作モードに復帰する。キーボード割り込み処理は、こち
らで行われる。
【0097】このように、このスリープ制御システムに
おいては、ストップブレーク要因がシステムイベントの
発生の場合にはCPU11はスリープモードから直ぐに
復帰されるが、タイマ割込みの場合には再スリープ処理
によってスリープモードが継続される。
【0098】また、前述のシステムイベントおよびタイ
マ割込みの他、オートパワーオフ用のグローバルスタン
バイタイムアウトによるSMIがストップブレーク要因
として発生される場合もある。
【0099】すなわち、CPU11のスリープモードが
30分継続して維持された場合には、グローバルスタン
バイタイムアウトによるSMIがストップブレ−ク要因
として発生される。
【0100】この場合には、CPU11は図5のステッ
プ19,20の処理によってスリープモードを抜けた
後、グローバルスタンバイSMI信号に対応するグロー
バルスタンバイSMIルーチンを実行する。グローバル
スタンバイSMIルーチンは、レジレタ群121にセッ
トされているのグローバルスタンバイタイムアウト値が
30分であることを確認すると、オートパワーオフルー
チンをコールする。オートパワーオフルーチンは、パワ
ーオン時にシステムがパワーオフされる直前の状態にシ
ステムを復旧するために必要なシステムステータスをメ
インメモリ13にセーブしたのち、メインメモリ13を
除くシステム内の他のほとんどすべてのユニットをパワ
ーオフする。
【0101】以上説明したように、このコンピュータシ
ステムにおけるスリープ制御においては、システム内の
各種ハードウェア割込み要求信号IRQ0〜IRQ1
5,NMIが監視され、タイマ割込み(IRQ0)を除
く他のすべての割込み要求信号が所定時間発生されない
時にシステムアイドルが検出され、これによってCPU
11がスリープモードに移行される。このため、CPU
11をスリープモードに移行するためのトリガが増え、
アプリケーションプログラムがキーボード入力待ちにな
った時のCPUアイドルだけでなく、アプリケーション
プログラムがキーボード以外のI/Oデバイスの動作完
了を持っているような場合にも、CPU11をスリープ
モードに移行させることができる。したがって、CPU
11がアイドルであるにもかかわらずCPU11が動作
状態に維持されているという事態を防止でき、CPU1
1の電力消費を十分に低減することができる。
【0102】また、システムアイドルの検出には、ハー
ドウェア割込み要求信号が利用されている。このハード
ウェア割込み要求信号RQ0〜IRQ15はシステム内
の各種I/Oデバイスから発生させる物理的な信号であ
り、その検出にはBIOSは一切利用されない。さら
に、スリープシーケンスを含むSMIルーチンをCPU
11へのSMI信号の供給のみによってのみ起動でき、
OSやBIOSはSMIルーチンの起動処理に一切関知
しない。
【0103】したがって、ハードウェアレベルでシステ
ムアイドルの検出およびスリープ制御を実現することが
でき、OS環境によらずに常に同一のスリープモード機
能を提供することが可能になる。また、BIOSを介さ
ずにハードウェアを直接制御するアプリケ−ションプロ
グラムを実行しているような場合でも、システムアイド
ルの検出およびCPUスリープ制御を行うことができ
る。
【0104】さらに、スリープモードにおいてはCPU
11はストップグラントステートに維持されている。こ
のストップグラントステートでは、一切の命令実行が停
止されるので、外部クロックを停止すること無く、CP
Uの消費電力を低減することができる。このため、外部
クロックを動的に切り替えること無くCPUをスリープ
モードから復帰でき、PLL内蔵の高性能CPUを高速
にスリープモードから復帰させることが可能となる。
【0105】以下、スリープモードにおいてストップグ
ラントステートとノーマルステートとをある時間間隔で
交互に繰り返す場合の動作について説明する。このスリ
ープモード制御方式は、スリープモードにおいてCPU
11を完全に停止させておくのではなく、その動作速度
を遅くする方式である。この方式を採用するのは、次の
理由からである。
【0106】すなわち、このシステムにおいては、4秒
のグローバルスタンバイタイムアウトに応答してCPU
11をスリープモードに設定し、システムイベントの発
生によってスリープモードの解除を行っている。このた
め、例えばメモリのベンチマークテストなどのようにI
/Oを使用せずに演算処理を行うようなプログラムをC
PU11が実行している時に、誤ってCPU11がスリ
ープモードに設定されてしまうという可能性がある。こ
の場合、もしCPU11の動作を完全に停止させてしま
うと、イベント待ちでないにも拘らず、実行させたいプ
ログラムが突然実行停止され、以降何等処理が進まない
という事態が発生する。ユーザがキー入力などを行うこ
とによってスリープモードを解除すればその状態から抜
け出すことは可能であるが、キー入力がなければその状
態からいっこうに抜け出す事はできない。
【0107】したがって、このような事態の発生を防止
するためには、スリープモードにおいてCPU11を完
全に停止させておくのではなく、CPU11を低速で動
作させることが好ましい。
【0108】このシステムにおいては、以下説明するよ
うに、ストップグラントステートとノーマルステートの
デューティー制御によって、スリープモードにおけるC
PU11の動作速度の低下させている。
【0109】すなわち、図10に示されているように、
システムスタート後、4秒の時間の間タイマ割込みを除
く一切のハードウェア割込み要求信号が発生されない
と、グローバルスタンバイタイマ122からグローバル
スタンバイタイムアウト信号が発生される(ステップS
31)。このグローバルスタンバイタイムアウト信号に
応答して、グローバルスタンバイSMI発生回路125
はグローバルスタンバイSMI信号を発生する(ステッ
プS32)。この時、レジスタ群121には、グローバ
ルスタンバイタイムアウトによるSMIが発生したこと
を示すSMIステータス情報がセットされる。
【0110】CPU11は、SMI信号に応答してSM
Mに入り、グローバルスタンバイSMIルーチンを実行
する(ステップS33)。グローバルスタンバイSMI
ルーチンは、グローバルスタンバイタイムアウト値をオ
ートパワーオフ用の時間、たとえば30分に設定し直し
(ステップS34)、その後、ストップブレーク用ソフ
トウェアSMIを一定時間後に発生させるために、ソフ
トウェアSMIタイマ123に時間T1(例えば、2m
秒)をセットする(ステップS35)。この後、グロー
バルスタンバイSMIルーチンは、STPCLKの発生
を指示するストップクロックコマンドをレジスタ群12
1にセットする。
【0111】ストップクロック制御回路129は、その
ストップクロックコマンドに応答して、STPCLKを
発生する(ステップS36)。CPU11は、これに応
答してスリープモードつまりストップグラントステート
に設定される。これにより、CPU11の命令実行は停
止され、グローバルスタンバイSMIルーチンの途中で
その実行が停止される。
【0112】スリープモードに移行してから時間T1が
経過すると、ストップブレーク用ソフトウェアSMIワ
ーニングタイムアウト信号がソフトウェアSMIタイマ
123から発生される(ステップS37)。このソフト
ウェアSMIワーニングタイムアウト信号に応答して、
ソフトウェアSMI発生回路126はストップブレーク
用のソフトウェアSMIを発生する(ステップS3
8)。このソフトウェアSMIは、ストップブレーク信
号としてストップクロック制御回路129に送られると
共に、CPU11に送られる。
【0113】ストップクロック制御回路129は、ST
PCLKを停止する(ステップS39)。これにより、
CPU11はストップグラントステートからノーマルス
テートに移行し、グローバルスタンバイSMIルーチン
が次の命令から実行開始される。
【0114】グローバルスタンバイSMIルーチンは、
まず、再スリープ用ソフトウェアSMIを一定時間後に
発生させるために、ソフトウェアSMIタイマ123に
時間T2(例えば、1m秒)をセットし(ステップS4
0)、この後レジューム(RSM)命令を実行する(ス
テップS41)。これにより、SMIによって割り込ま
れたOSまたはアプリケーションプログラムにリターン
される。
【0115】この後、CPU11は、ステップS38で
発生されたソフトウェアSMIに対応する処理を行うた
めにSMMに入り、ソフトウェアSMIルーチンを実行
する(ステップS42)。しかし、ステップS38で発
生されたソフトウェアSMIはストップブレークのため
に発生されたダミーSMIであるので、これによって呼
び出されたソフトウェアSMIルーチンは何も処理を行
わずにRSM命令を実行し、直ぐに、ダミーSMIによ
って割り込まれたOSまたはアプリケーションプログラ
ムにリターンする(ステップS43)。
【0116】CPU11がノーマルステートに移行して
から時間T2が経過すると、ソフトウェアSMIタイマ
123からソフトウェアSMIワーニングタイムアウト
信号が発生される(ステップS44)。このソフトウェ
アSMIワーニングタイムアウト信号に応答して、ソフ
トウェアSMI発生回路126は、再スリープのための
ソフトウェアSMI信号を発生する(ステップS4
5)。この時、レジスタ群121には、ソフトウェアS
MIワーニングタイムアウトによるSMIが発生したこ
とを示すSMIステータス情報がセットされる。
【0117】CPU11は、SMI信号に応答してSM
Mに入り、ソフトウェアSMIルーチンを実行する(ス
テップS46)。ソフトウェアSMIルーチンは、再ス
リープのためのソフトウェアSMIであることを確認す
ると、再びストップブレーク用ソフトウェアSMIを一
定時間後に発生させるために、ソフトウェアSMIタイ
マ123に時間T1をセットする(ステップS47)。
この後、ソフトウェアSMIルーチンは、STPCLK
の発生を指示するストップクロックコマンドをレジスタ
群121にセットする。
【0118】ストップクロック制御回路129は、その
ストップクロックコマンドに応答して、STPCLKを
発生する(ステップS48)。CPU11は、これに応
答してスリープモードつまりストップグラントステート
に設定される。これにより、CPU11の命令実行は停
止され、ソフトウェアSMIルーチンの途中でその実行
が停止される。
【0119】このようにして、スリープモードにおいて
はストップグラントステートとノーマルステートが交互
に繰り返される。
【0120】そして、例えばストップグラントステート
においてソフトウェアSMI以外の要因によるストップ
ブレークが発生した場合には、次の処理が成される。
【0121】すなわち、ソフトウェアSMI以外の要因
によるストップブレークが発生すると(ステップS4
9)、それがストップブレーク信号としてストップクロ
ック制御回路129に送られる。このストップブレーク
要因信号に応答して、ストップクロック制御回路129
は、STPCLKを停止する(ステップS50)。これ
により、CPU11はストップグラントステートからノ
ーマルステートに移行する。そして、ソフトウェアSM
Iルーチンが次の命令から実行開始される。
【0122】ソフトウェアSMIルーチンは、まず、ス
トップブレークの要因をチェックし、ストップブレーク
要因がシステムイベント(タイマ割込み以外のハードウ
ェア割込み要求信号)か、タイマ割込みかを調べる(ス
テップS51)。この要因チェックは、割込みコントロ
ーラ16の割込みステータスレジスタなどを参照するこ
とによって行うことができる。
【0123】ストップブレーク要因がシステムイベント
の発生であった場合には、ソフトゥエアSMIルーチン
は、グローバルスタンバイタイムアウト値を4秒に戻し
(ステップS52)、その後レジューム(RSM)命令
を実行する(ステップS53)。これにより、SMIに
よって割り込まれたOSまたはアプリケーションプログ
ラムにリターンされ、CPU11はスリープモードから
通常動作モードに復帰する。そして、そこで、システム
イベントの要因となった割込みに対するサービスが実行
される。
【0124】一方、ストップブレーク要因がタイマ割込
み(IRQ0)であった場合には、ソフトウェアSMI
ルーチンは、再スリープ用ソフトウェアSMIを一定時
間後に発生させるために、ソフトウェアSMIタイマ1
23に時間T2をセットし(ステップS54)、その後
レジューム(RSM)命令を実行する。これにより、S
MIによって割り込まれたOSまたはアプリケーション
プログラムに一旦リターンされるが、CPU11は再ス
リープ用ソフトウェアSMIによって直ぐにストップグ
ラントステートに移行する。この結果、スリープモード
が継続される。
【0125】図11には、CPU11が、ストップグラ
ントとノーマルステートスリープモードが交互に繰り返
されるスリープモードに移行してからキーボード割込み
などのシステムイベントによってそのスリープモードか
ら通常動作モードに復帰するまでのタイミングチャート
が示されている。
【0126】図11において、t1は、CPU11が通
常動作モードの期間において4秒間システムイベントが
発生しないことによって発生するグローバルスタンバイ
タイムアウトの発生タイミングを示す。このタイミング
t1において、CPU11はSMMに入り、その時実行
対象となっているプログラムからグローバルスタンバイ
SMIルーチンに制御が移る。t2は、一定時間後にス
トップブレーク用のソウトウェアSMIを発生させるた
めの準備処理の実行タイミングを示す。t3は、STP
CLK信号の発生タイミングであり、このタイミングt
3においてCPU11はストップグラントステートに入
る。t4は、ストップブレーク用のソウトウェアSMI
の発生タイミングを示す。タイミングt4で発生された
ソウトウェアSMIはストップブレーク要因となり、C
PU11はストップグラントステートからノーマルステ
ートに戻る。t5は、一定時間後に再スリープ用のソウ
トウェアSMIを発生させるための準備処理の実行タイ
ミングを示す。t6は、RSM命令の実行タイミングで
あり、このRSM命令の実行によってグローバルスタン
バイSMIルーチンから割り込み元のプログラムに制御
が戻る。
【0127】t7は、タイミングt4で発生されたスト
ップブレーク用ソフトウェアSMI(ダミーSMI)に
対応するSMM処理への移行タイミングである。t8
は、ダミーSMIに対応するSMM処理におけるRSM
命令の実行タイミングであり、このタイミングt8で割
り込み元のプログラムに再び制御が戻る。t9は、再ス
リープ用のソフトウェアSMIの発生タイミングを示
す。このタイミングt6において、CPU11は再度S
MMに入り、ソフトウェアSMIルーチンを実行する。
【0128】tAは、タイマ割込みの発生タイミングを
示す。このタイミングtAにおいて、CPU11は一旦
ストップブレークされ、ストップグラントステートから
ノーマルステートに復帰する。tBは、キーボード割込
みなどのシステムイベントの発生タイミングを示す。こ
のタイミングtBにおいて、CPU11はストップグラ
ントステートからノーマルステートに復帰する。tc
は、RSM命令の実行タイミングであり、このRSM命
令の実行によってソフトウェアSMIルーチンから割り
込み元のプログラムに制御が戻り、CPU11はスリー
プモードから通常動作モードに復帰する。
【0129】このように、このスリープ制御システムに
おいては、CPU11はスリープモードにおいてストッ
プグラントステートとノーマルステートをある時間間隔
で交互に繰り返す。ストップグラントステートにおいて
はCPU11の一切の命令実行は停止されるが、ノーマ
ルステートにおいては命令実行の再開が可能となる。こ
のため、スリープモードの期間、つまりシステムアイド
ルが検出されてからシステムイベントの発生が検出され
るまでの期間、CPU11によるプログラム実行は完全
には停止されず、CPU11は断続的にプログラムを実
行することが可能である。したがって、システムアイド
ルの誤検出により誤ってCPU11がスリープモードに
移行されても、I/O待ちをしないベンマークテストな
どのプログラムが突然実行停止されるといった事態の発
生を防止できる。また、この方式においても、スリープ
モードにおいてはCPU11の平均動作速度を遅くでき
るので、平均的な意味では十分にCPU11の電力消費
を低減することができる。
【0130】さらに、ストップブレーク要因としてのソ
フトウェアSMIが発生される前にキーボード割込みな
どのハードウェア割込み要求信号による他のストップブ
レーク要因が発生した場合には、そのハードウェア割込
み要求信号によるストップブレークが先に引き起こされ
る。これにより、サービスを要求しているキーボードコ
ントローラ17や他のI/Oデバイス19に素早くサー
ビスを提供できる。
【0131】次に、図12乃至図14を参照して、グロ
ーバルスタンバイSMIルーチンとソフトウェアSMI
ルーチンそれぞれの処理手順を具体的なケースを例にと
って説明する。
【0132】図12には、スリープモードにおいてスト
ップグラントステートとノーマルステートをある時間間
隔で交互に繰り返す場合におけるグローバルスタンバイ
SMIルーチンとソフトウェアSMIルーチンそれぞれ
のフローチャートが示されている。
【0133】4秒の時間の間タイマ割込みを除く一切の
ハードウェア割込み要求信号が発生されないと、グロー
バルスタンバイSMI信号が発生されてグローバルスタ
ンバイSMIルーチンが実行される。グローバルスタン
バイSMIルーチンは、まず、グローバルスタンバイタ
イムアウト値をオートパワーオフ用の時間、たとえば3
0分に設定し直し(ステップS61)、その後、ストッ
プブレーク用ソフトウェアSMIを一定時間後に発生さ
せるために、ソフトウェアSMIタイマ123に時間T
1をセットする(ステップS62)。この後、グローバ
ルスタンバイSMIルーチンは、システムコントローラ
12にSTPCLKの発生を指示する(ステップS6
3)。
【0134】これにより、STPCLKが発生され、そ
こから時間T1が経過するまでの期間CPU11はスト
ップグラントステートに設定される。グローバルスタン
バイSMIルーチンは、ステップS63を実行完了した
時点でその実行が停止される。
【0135】スリープモードに移行してから時間T1が
経過すると、ストップブレーク用ソフトウェアSMI信
号が発生される。これにより、CPU11はストップグ
ラントステートからノーマルステートに移行し、グロー
バルスタンバイSMIルーチンが次の命令から実行開始
される。
【0136】グローバルスタンバイSMIルーチンは、
まず、再スリープ用ソフトウェアSMIを一定時間後に
発生させるために、ソフトウェアSMIタイマ123に
時間T2をセットし(ステップS64)、この後レジュ
ーム(RSM)命令を実行する(ステップS65)。こ
れにより、SMIによって割り込まれたOSまたはアプ
リケーションプログラムにリターンされる。
【0137】この後、CPU11は、ストップブレーク
用ソフトウェアSMIに対応する処理を行うためにSM
Mに入り、ソフトウェアSMIルーチンを実行する。
【0138】ソフトウェアSMIルーチンは、スリープ
モードの中で発生されたソフトウェアSMIがダミーS
MIであるかことを確認すると、何も処理を行わずにR
SM命令を実行し、直ぐに、ダミーSMIによって割り
込まれたOSまたはアプリケーションプログラムにリタ
ーンする(ステップS71,75)。
【0139】CPU11がノーマルステートに移行して
から時間T2が経過すると、再スリープのためのソフト
ウェアSMI信号が発生され、CPU11はソフトウェ
アSMIルーチンを実行する。ソフトウェアSMIルー
チンは、再スリープのためのソフトウェアSMIである
ことを確認すると(ステップS71)、再びストップブ
レーク用ソフトウェアSMIを一定時間後に発生させる
ために、ソフトウェアSMIタイマ123に時間T1を
セットする(ステップS72)。この後、ソフトウェア
SMIルーチンは、システムコントローラ12にSTP
CLKの発生を指示する(ステップS73)。
【0140】これにより、STPCLKが発生され、そ
こから時間T1が経過するまでの期間CPU11はスト
ップグラントステートに設定される。ソフトウェアSM
Iルーチンは、ステップS73を実行完了した時点でそ
の実行が停止される。
【0141】スリープモードに移行してから時間T1が
経過すると、ストップブレーク用ソフトウェアSMI信
号が発生される。これにより、CPU11はストップグ
ラントステートからノーマルステートに移行し、ソフト
ウェアSMIルーチンが次の命令から実行開始される。
【0142】ソフトウェアSMIルーチンは、まず、再
スリープ用ソフトウェアSMIを一定時間後に発生させ
るために、ソフトウェアSMIタイマ123に時間T2
をセットし(ステップS74)、この後レジューム(R
SM)命令を実行する(ステップS75)。これによ
り、SMIによって割り込まれたOSまたはアプリケー
ションプログラムにリターンされる。
【0143】この後、CPU11は、ストップブレーク
用ソフトウェアSMIに対応する処理を行うためにSM
Mに入り、ソフトウェアSMIルーチンを実行する。
【0144】ソフトウェアSMIルーチンは、スリープ
モードの中で発生されたソフトウェアSMIがダミーS
MIであることを確認すると、何も処理を行わずにRS
M命令を実行し、直ぐに、ダミーSMIによって割り込
まれたOSまたはアプリケーションプログラムにリター
ンする(ステップS71,75)。
【0145】このようにして、ソフトウェアSMIルー
チンが繰り返し実行されることにより、スリープモード
が継続される。
【0146】図13には、CPU11がスリープモード
においてノーマルステートに設定されている状態で、再
スリープ用のソフトウェアSMIが発生される前にキー
ボード割込みなどのシステムイベントが発生した場合の
ソフトウェアSMIルーチンの処理が示されている。
【0147】CPU11がノーマルステートに復帰して
から時間T2が経過する前にキーボード割込みが発生す
ると、ソフトウェアSMIタイマ123のカウント値は
システムイベント検出信号によって一旦リセットされ
る。このため、この場合には、CPU11がノーマルス
テートに復帰してからキーボード割込みが発生するまで
の時間αと時間T2との和の時間(T2+α)だけ経過
した時に、ソフトウェアSMIが発生される。
【0148】ソフトウェアSMIルーチンは、時間T2
よりも長い時間経過した後にソフトゥエアSMIが発生
された事実からそれがシステムイベントによるソフトウ
ェアSMIであることを確認すると、再スリープ用のソ
フトウェアSMIタイマの設定をせず、グローバルスタ
ンバイタイムアウト値を4秒に戻し(ステップS8
1)、その後レジューム(RSM)命令を実行する(ス
テップS82)。
【0149】図14には、グローバルスタンバイタイム
アウトによってCPU11がストップグラントステート
に移行してから時間T1が経過する前に、キーボード割
り込みなどのシステムイベントが発生した場合のグロー
バルスタンバイSMIルーチンの処理が示されている。
【0150】前述したように、4秒の時間の間タイマ割
込みを除く一切のハードウェア割込み要求信号が発生さ
れないと、グローバルスタンバイSMI信号が発生され
てグローバルスタンバイSMIルーチンが実行される。
グローバルスタンバイSMIルーチンは、まず、グロー
バルスタンバイタイムアウト値をオートパワーオフ用の
時間、たとえば30分に設定し直し(ステップS9
1)、その後、ストップブレーク用ソフトウェアSMI
を一定時間後に発生させるために、ソフトウェアSMI
タイマ123に時間T1をセットする(ステップS9
2)。この後、グローバルスタンバイSMIルーチン
は、システムコントローラ12にSTPCLKの発生を
指示する(ステップS93)。
【0151】これにより、STPCLKが発生され、そ
こから時間T1が経過するまでの期間CPU11はスト
ップグラントステートに設定される。グローバルスタン
バイSMIルーチンは、ステップS93を実行完了した
時点でその実行が停止される。
【0152】この状態で、スリープモードに移行してか
ら時間T1が経過する前(ここでは、T1−β)にキー
ボード割込みが発生すると、それがストップブレーク要
因となってCPU11はストップグラントステートから
ノーマルステートに移行する。そして、グローバルスタ
ンバイSMIルーチンが次の命令から実行開始される。
【0153】グローバルスタンバイSMIルーチンは、
スリープモードに移行してから時間T1が経過する前に
ストップブレークが発生したという事実からそのストッ
プブレーク要因がシステムイベントであることを確認す
ると、グローバルスタンバイタイムアウト値を4秒に戻
し(ステップS94)、その後レジューム(RSM)命
令を実行する(ステップS95)。
【0154】次に、図15を参照して、グローバルスタ
ンバイSMIルーチンに設けられたスリープ制御ルーチ
ンの実際のフローチャートを説明する。
【0155】グローバルスタンバイSMIルーチンは、
そのル−チンの実行が要求されると、まず、レジスタ群
121にセットされているグローバルスタンバイタイム
アウト値がスリープ用の値(4秒)かオートオフ用の値
(30分)かを調べる(ステップS101)。オートオ
フ用の値(30分)がセットされている場合には、グロ
ーバルスタンバイSMIルーチンは、オートオフルーチ
ンをコールし、システムをパワーオフさせる。
【0156】一方、スリープ用の値(4秒)がセットさ
れている場合には、グローバルスタンバイSMIルーチ
ンは、まず、グローバルスタンバイタイムアウト値を変
更し、グローバルスタンバイタイマ122にオートオフ
用の値(30分)をセットする(ステップS102)。
この後、グローバルスタンバイSMIルーチンは、シス
テムタイマ18内蔵のカウンタによって指定されるその
時の時間(t1)を読み取った後、ストップブレーク用
ソフトウェアSMIを一定時間後に発生させるためにソ
フトウェアSMIタイマ123に時間T1をセットする
(ステップS103)。この後、グローバルスタンバイ
SMIルーチンは、STPCLKの発生を指示するスト
ップクロックコマンドをレジスタ群121にセットする
(ステップS104)。
【0157】次いで、グローバルスタンバイSMIルー
チンは、システムタイマ18内蔵のカウンタによって指
定されるその時の時間(t2)を読み取り、 t2−t1< T1 が成立するか否かを検出し、その検出結果に応じてスト
ップブレーク要因がストップブレーク用ソフトウェアS
MI以外であるか否かを判断する(ステップS10
5)。
【0158】式{t2−t1< T1}の不成立は、時
間T1が経過する以前にストップブレークが発生してい
ないこと、つまり、ストップブレーク要因がストップブ
レーク用ソフトウェアSMIであることを意味する。一
方、式{t2−t1< T1}の成立は、時間T1以内
にストップブレークが発生したこと、つまり、ストップ
ブレーク要因がストップブレーク用ソフトウェアSMI
以外の要因によるものであることを意味する。
【0159】ストップブレーク要因がストップブレーク
用ソフトウェアSMI以外の要因によるものである場合
には、グローバルスタンバイSMIルーチンは、その要
因がタイマ割込みであるか否かを調べる(ステップS1
06)。この要因チェック処理は、例えば、割込みコン
トローラ16のレジスタを参照することにより実現する
ことができる。
【0160】ストップブレーク要因がタイマ割込みでは
なかった場合には、グローバルスタンバイSMIルーチ
ンは、システムイベント、すなわちIRQ1〜15また
はNMIが発生したと判断し、グローバルスタンバイタ
イムアウト値を4秒に戻し(ステップS108)、その
後レジューム(RSM)命令を実行する(ステップS1
09)。
【0161】一方、ストップブレーク要因がストップブ
レーク用ソフトウェアSMIまたはタイマ割込みであっ
た場合には、グローバルスタンバイSMIルーチンは、
システムタイマ18内蔵のカウンタによって指定される
その時の時間(t1′)を読み取ってそれを所定のレジ
スタにセットした後、再スリープ用ソフトウェアSMI
を一定時間後に発生させるためにソフトウェアSMIタ
イマ123に時間T2をセットし(ステップS10
7)、その後レジューム(RSM)命令を実行する(ス
テップS109)。なお、ステップS107において
は、SMIルーチンの中でストップブレーク用ソフトウ
ェアSMI(ダミーSMI)が発生されたことを示すフ
ラグをメモリ13やシステムコントローラ12内のレジ
スタなどにセットする処理も行われる。
【0162】次に、図16を参照して、ソフトウェアS
MIルーチンに設けられたスリープ制御ルーチンの実際
のフローチャートを説明する。
【0163】ソフトウェアSMIルーチンは、ソフトウ
ェアSMI信号がCPU11に供給される事によってそ
のル−チンの実行が要求されると、SMIルーチンの中
で発生されたSMI信号か否かに基づき、そのソフトウ
ェアSMI信号がダミーSMI信号か否かを判断する
(ステップS201)。この判断は、メモリ13やシス
テムコントローラ12内のレジスタなどにセットされて
いるフラグをステップS201で参照することによって
実現する事ができる。
【0164】この後、ソフトウェアSMIルーチンは、
システムタイマ18内蔵のカウンタによって指定される
その時の時間(t2′)を読み取り、 t2′−t1′< T2 が成立するか否かを検出し、その検出結果に応じて、発
生されたSMI信号がシステムイベントの発生によるソ
フトウェアSMIであるか否かを判断する(ステップS
202)。
【0165】式{t2′−t1′< T2}の成立は、
発生されたSMI信号がシステムイベントの発生による
ものであることを意味する。一方、式{t2′−t1′
<T2}の不成立は、発生されたSMI信号が再スリー
プ用ソフトウェアSMIであることを意味する。
【0166】発生されたSMI信号がシステムイベント
の発生によるものである場合には、ソフトウェアSMI
ルーチンは、グローバルスタンバイタイムアウト値を4
秒に戻し(ステップS208)、その後レジューム(R
SM)命令を実行する(ステップS209)。
【0167】一方、発生されたSMI信号が再スリープ
用ソフトウェアSMIによるものであった場合には、ソ
フトウェアSMIルーチンは、まず、システムタイマ1
8内蔵のカウンタによって指定されるその時の時間(t
1)を読み取った後、ストップブレーク用ソフトウェア
SMIを一定時間後に発生させるためにソフトウェアS
MIタイマ123に時間T1をセットする(ステップS
203)。この後、ソフトウェアSMIルーチンは、S
TPCLKの発生を指示するストップクロックコマンド
をレジスタ群121にセットする(ステップS20
4)。
【0168】次いで、ソフトウェアSMIルーチンは、
システムタイマ18内蔵のカウンタによって指定される
その時の時間(t2)を読み取り、 t2−t1< T1 が成立するか否かを検出し、その検出結果に応じてスト
ップブレーク要因がストップブレーク用ソフトウェアS
MI以外であるか否かを判断する(ステップS20
5)。
【0169】式{t2−t1< T1}の不成立は、時
間T1が経過する前にストップブレークが発生していな
いこと、つまり、ストップブレーク要因がストップブレ
ーク用ソフトウェアSMIであることを意味する。一
方、式{t2−t1< T1}の成立は、時間T1以内
にストップブレークが発生したこと、つまり、ストップ
ブレーク要因がストップブレーク用ソフトウェアSMI
以外の要因によるものであることを意味する。
【0170】ストップブレーク要因がストップブレーク
用ソフトウェアSMI以外の要因によるものである場合
には、ソフトウェアSMIルーチンは、その要因がタイ
マ割込みであるか否かを調べる(ステップS206)。
この要因チェック処理は、例えば、割込みコントローラ
16のレジスタなどを参照することにより実現すること
ができる。
【0171】ストップブレーク要因がタイマ割込みでは
なかった場合には、ソフトウェアSMIルーチンは、シ
ステムイベント、すなわちIRQ1〜15またはNMI
が発生したと判断し、グローバルスタンバイタイムアウ
ト値を4秒に戻し(ステップS208)、その後レジュ
ーム(RSM)命令を実行する(ステップS209)。
【0172】一方、ストップブレーク要因がストップブ
レーク用ソフトウェアSMIまたはタイマ割込みであっ
た場合には、ソフトウェアSMIルーチンは、システム
タイマ18内蔵のカウンタによって指定されるその時の
時間(t1′)を読み取ってそれを所定のレジスタにセ
ットした後、再スリープ用ソフトウェアSMIを一定時
間後に発生させるためにソフトウェアSMIタイマ12
3に時間T2をセットし(ステップS207)、その後
レジューム(RSM)命令を実行する(ステップS20
9)。なお、ステップS207においては、ダミーSM
Iである事を示す前述のフラグのセット処理も実行され
る。
【0173】以上説明したように、この実施例では、ス
リープモードにおいてストップグラントステートとノー
マルステートを交互に繰り返すことにより、例えばメモ
リのベンチマークテストの実行中などにCPU11を誤
ってスリープモードに設定してしまった場合でも、その
プログラム実行が突然停止されてしまったまま処理がい
っこうに進まないという事態の発生を防止する事ができ
る。
【0174】なお、この実施例では、システムイベント
やストップブレークイベントの発生要因をシステムタイ
マ18の時間を計ってチェックしたが、例えば、システ
ムコントローラ12内に専用のタイマを設けたり、ある
いはシステムイベントの発生を示す情報をレジスタなど
に保持できるようにシステムコントローラ12を構成す
れば、システムタイマ18を利用せずにそれら要因のチ
ェックを行うことができる。
【0175】また、この実施例では、SMIハンドラ、
ソフトウェアSMIルーチンおよびグローバルスタンバ
イSMIルーチンを含むシステム管理プログラムをBI
OSROM14に格納し、SMRAM50のアドレス3
8000HのジャンプコードによってBIOS ROM
14のSMIハンドラを呼び出すように構成したが、こ
の発明では、CPU11が最初にフェッチするアドレス
38000Hのコードによってシステム管理プログラム
が呼び出されることが肝要であるので、SMRAM50
におけるアドレス38000Hから始まる領域にSMI
ハンドラを格納し、そのSMIハンドラによってBIO
S ROM14のソフトウェアSMIルーチンおよびグ
ローバルスタンバイSMIルーチンを呼び出すように構
成することも可能である。また、ソフトウェアSMIル
ーチンおよびグローバルスタンバイSMIルーチンを含
むシステム管理プログラム全体をSMRAM50に格納
しても良いことはもちろんである。
【0176】さらに、前述のSMBASEレジスタを使
って、アドレス38000Hを他の値に変更することも
可能である。
【0177】
【発明の効果】以上詳記したように、この発明によれ
ば、OS環境によらずに常に同一のスリープモードを実
現でき、且つCPUの電力消費を十分に低減することが
できる。また、PLL内蔵の高性能CPUを使用した場
合でも、そのCPUをスリープモードから高速に復帰さ
せることが可能となる。
【図面の簡単な説明】
【図1】この発明の一実施例に係わるコンピュータシス
テムの構成を示すブロック図。
【図2】同実施例のシステムに設けられたCPUの3つ
の動作ステートを説明するための図。
【図3】同実施例のシステムに設けられたシステムイベ
ント検出回路の動作原理を説明するための図。
【図4】同実施例のシステムに設けられたCPUにSM
Iが発行された時のメモリマップを説明するための図。
【図5】同実施例のシステムに設けられたCPUにSM
Iが発行された時のCPUの動作を説明するための図。
【図6】同実施例のシステムにおいてスリープモードの
期間CPUをストップグラントステートに維持する場合
の第1のCPUスリープ制御動作を説明するための図。
【図7】図6のCPUスリープ制御動作においてタイマ
割込みによるストップブレークが発生した場合の再スリ
ープ処理を説明するための図。
【図8】図6のCPUスリープ制御動作においてCPU
がスリープモードに移行してから通常動作モードに復帰
するまでの動作を説明するタイミングチャート。
【図9】図6のCPUスリープ制御動作においてタイマ
割込みによるストップブレークイベントの発生に応答し
て実行される再スリープ処理を説明するタイミングチャ
ート。
【図10】同実施例のシステムにおいてスリープモード
の期間CPUをストップグラントステートとノーマルス
テートに交互に切り替える第2のCPUスリープ制御動
作を説明するための図。
【図11】図10のCPUスリープ制御動作においてC
PUがスリープモードに移行してから通常動作モードに
復帰するまでの動作を説明するタイミングチャート。
【図12】図10のCPUスリープ制御動作を実現する
ために必要なグローバルスタンバイSMIルーチンとソ
フトウェアSMIルーチンそれぞれの処理手順を示すフ
ローチャート。
【図13】図12のソフトウェアSMIルーチンによっ
て実行されるシステムイベント発生時の処理手順を示す
フローチャート。
【図14】図12のグローバルスタンバイSMIルーチ
ンによって実行されるシステムイベント発生時の処理手
順を示すフローチャート。
【図15】図10のCPUスリープ制御動作を実現する
ためのグローバルスタンバイSMIルーチンの詳細な手
順を示すフローチャート。
【図16】図10のCPUスリープ制御動作を実現する
ためのソフトウェアSMIルーチンの詳細な手順を示す
フローチャート。
【符号の説明】
11…CPU、12…システムコントローラ、13…メ
インメモリ、14…BIOS ROM、16…割込みコ
ントローラ、17…キーボードコントローラ、18…シ
ステムタイマ、19…他のI/Oデバイス、121…レ
ジスタ群、122…グローバルスタンバイSMIタイ
マ、123…ソフトウェアSMIタイマ、124…シス
テムイベント検出回路、125…グローバルスタンバイ
SMI発生回路、126…ソフトウェアSMI発生回
路、129…ストップブレーク制御回路。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 実行対象の各種プログラムが格納される
    メインメモリと、 システム管理プログラムを呼び出すための命令を格納
    し、前記メインメモリのアドレス空間の一部にマッピン
    グされるオーバーレイメモリと、 前記メインメモリのプログムを実行するプログラム実行
    モードと前記オーバーレイメモリの命令を実行するシス
    テム管理モードとを有し、所定の割込み入力端子に供給
    される割込み信号に応答して前記プログラム実行モード
    から前記システム管理モードにスイッチするCPUと、 前記CPUによって呼び出された前記システム管理プロ
    グラムに含まれるスリープ制御ルーチンを実行し、前記
    CPUの動作状態を第1ステートからそれよりも電力消
    費の少ない第2ステートに切り替えるCPUスリープ手
    段と、 コンピュータシステム内で発生される前記CPUへの各
    種ハードウェア割込み要求信号を監視し、予め設定され
    た第1のタイムアウト時間前記全てのハードウェア割込
    み要求信号が発生されない時システムアイドルを検出す
    るシステムアイドル検出手段と、 このシステムアイドル検出手段によるシステムアイドル
    の検出に応答して前記CPUの割込み入力端子にシステ
    ムアイドルを示す割込み信号を供給し、前記CPUスリ
    ープ手段に前記CPUの動作状態の切り替え処理を実行
    させる手段とを具備することを特徴とするコンピュータ
    システム。
  2. 【請求項2】 前記CPUは、外部クロックに応じて内
    部クロックを生成するPLLを内蔵し、命令が実行され
    るノーマルステートと、命令実行および前記外部クロッ
    クが停止されるクロック停止ステートと、前記ノーマル
    ステートと前記クロック停止ステートとの中間に位置
    し、命令実行が停止され前記外部クロックの停止が可能
    なクロック停止許可ステートとを含む動作ステートを有
    し、クロック停止許可を示すクロック停止信号の発生に
    応答して前記ノーマルステートから前記クロック停止許
    可ステートに移行され、前記クロック停止信号の発生停
    止に応答して前記クロック停止許可ステートからノーマ
    ルステートに復帰されるCPUであって、 前記CPUスリープ手段は、前記CPUに前記クロック
    停止信号を供給して、前記CPUの動作ステートをノー
    マルステートからクロック停止許可ステートに切り替え
    る手段を含むことを特徴とする請求項1記載のコンピュ
    ータシステム。
  3. 【請求項3】 前記CPUスリープ手段は、 前記第1タイムアウト時間のタイムアウトによって発生
    される前記割込み信号に応答して、前記システムアイド
    ル検出手段のタイムアウト時間を前記第1のタイムアウ
    ト時間よりも長い第2のタイムアウト時間に変更する手
    段と、 前記CPUが前記第2ステートの状態において前記第2
    タイムアウト時間のタイムアウトによってシステムアイ
    ドルを示す割込み信号が前記CPUに供給された際、前
    記CPUによって呼び出された前記システム管理プログ
    ラムに含まれるオートパワーオフルーチンを実行してシ
    ステムをパワーオフする手段とをさらに含むことを特徴
    とする請求項1記載のコンピュータシステム。
  4. 【請求項4】 外部クロックに応じて内部クロックを生
    成するPLLを内蔵し、命令が実行されるノーマルステ
    ートと、命令実行および前記外部クロックが停止される
    クロック停止ステートと、前記ノーマルステートと前記
    クロック停止ステートとの中間に位置し、命令実行が停
    止され前記外部クロックの停止が可能なクロック停止許
    可ステートとを含む動作ステートを有し、クロック停止
    許可を示すクロック停止信号の発生に応答して前記ノー
    マルステートから前記クロック停止許可ステートに移行
    され、前記クロック停止信号の発生停止に応答して前記
    クロック停止許可ステートからノーマルステートに復帰
    されるCPUと、 前記クロック停止信号を発生するクロック停止信号発生
    手段と、 前記CPUによって実行される各種プログラムを格納す
    るメインメモリと、 システム管理プログラムを呼び出すための命令を格納し
    前記メインメモリのアドレス空間の一部にマッピングさ
    れるオーバーレイメモリであって、前記CPUの所定の
    割込み入力端子に割込み信号が供給された際に前記CP
    Uによって前記命令が実行されるオーバーレイメモリ
    と、 前記CPUによって呼び出される前記システム管理プロ
    グラムに含まれるスリープ制御ルーチンを実行し、前記
    クロック停止信号発生手段にクロック停止信号の発生を
    指示するCPUスリープ手段と、 コンピュータシステム内で発生される前記CPUへの各
    種ハードウェア割込み要求信号を監視し、予め設定され
    た時間前記全てのハードウェア割込み要求信号が発生さ
    れない時システムアイドルを検出するシステムアイドル
    検出手段と、 このシステムアイドル検出手段によるシステムアイドル
    の検出に応答して前記CPUの割込み入力端子にシステ
    ムアイドルを示す割込み信号を供給し、前記CPUスリ
    ープ手段にクロック停止信号発生指示の発行処理を実行
    させる手段とを具備することを特徴とするコンピュータ
    システム。
  5. 【請求項5】 前記各種ハードウェア割込み要求信号を
    監視し、前記ハードウェア割込み要求信号の1つが発生
    された時に前記クロック停止信号発生手段に前記クロッ
    ク停止信号の発生を停止させるためのストップブレーク
    信号を発生し、前記CPUをクロック停止許可ステート
    からノーマルステートに復帰させるストップブレーク手
    段をさらに具備することを特徴とする請求項4記載のコ
    ンピュータシステム。
  6. 【請求項6】 前記CPUスリープ手段は、前記CPU
    のノーマルステートへの復帰に応答して、前記ストップ
    ブレーク信号の発生要因が一定時間間隔でハードウェア
    割込み要求信号を発生するシステムタイマからのタイマ
    割込みか否かを決定する手段と、前記タイマ割込みが前
    記ストップブレーク信号の発生要因であることが決定さ
    れた時、前記クロック停止信号発生手段にクロック停止
    信号の発生を指示して前記CPUを再びクロック停止許
    可ステートに移行させる手段とをさらに含むことを特徴
    とする請求項5記載のコンピュータシステム。
  7. 【請求項7】 タイムアウト時間がセットされてからそ
    のタイムアウト時間経過した際に前記CPUのクロック
    停止許可ステートの終了を示すストップブレーク信号を
    発生し、前記CPUをクロック停止許可ステートからノ
    ーマルステートに復帰させるストップブレーク手段と、 前記CPUがクロック停止許可ステートに移行されてか
    ら所定時間経過した時に前記第1の割込み信号が発生さ
    れるように、前記システムアイドルを示す割込み信号に
    応答して前記ストップブレーク手段に所定のタイムアウ
    ト時間をセットする手段をさらに具備することを特徴と
    する請求項4記載のコンピュータシステム。
  8. 【請求項8】 タイムアウト時間がセットされてからそ
    のタイムアウト時間経過した際に前記CPUのノーマル
    ステートの終了を示す割込み信号を前記CPUの割込み
    入力端子に供給して、前記CPUスリープ手段にクロッ
    ク停止信号発生指示の発行処理を実行させる割込み信号
    発生手段と、 前記ストップブレーク信号の発生によって前記CPUが
    ノーマルステートに復帰されてから所定時間経過した時
    に前記ノーマルステートの終了を示す割込み信号が発生
    されるように、前記ストップブレーク信号の発生に応答
    して前記割込み信号発生手段に所定のタイムアウト時間
    をセットする手段とをさらに具備することを特徴とする
    請求項7記載のコンピュータシステム。
  9. 【請求項9】 外部クロックに応じて内部クロックを生
    成するPLLを内蔵し、命令が実行されるノーマルステ
    ートと、命令実行および前記外部クロックが停止される
    クロック停止ステートと、前記ノーマルステートと前記
    クロック停止ステートとの中間に位置し、命令実行が停
    止され前記外部クロックの停止が可能なクロック停止許
    可ステートとを含む動作ステートを有し、クロック停止
    許可を示すクロック停止信号の発生に応答して前記ノー
    マルステートから前記クロック停止許可ステートに移行
    され、前記クロック停止信号の発生停止に応答して前記
    クロック停止許可ステートからノーマルステートに復帰
    されるCPUと、 前記クロック停止信号を発生するクロック停止信号発生
    手段と、 前記CPUによって実行される各種プログラムを格納す
    るメインメモリと、 システム管理プログラムを呼び出すための命令を格納し
    前記メインメモリのアドレス空間の一部にマッピングさ
    れるオーバーレイメモリであって、前記CPUの所定の
    割込み入力端子に割込み信号が供給された際に前記CP
    Uによって前記命令が実行されるオーバーレイメモリ
    と、 前記CPUによって呼び出される前記システム管理プロ
    グラムに含まれるスリープ制御ルーチンを実行し、前記
    クロック停止信号発生手段にクロック停止信号の発生を
    指示するCPUスリープ手段と、 コンピュータシステム内で発生される前記CPUへの各
    種ハードウェア割込み要求信号を監視し、予め設定され
    た時間前記全てのハードウェア割込み要求信号が発生さ
    れない時システムアイドルを検出するシステムアイドル
    検出手段と、 このシステムアイドル検出手段によるシステムアイドル
    の検出に応答して前記CPUの割込み入力端子にシステ
    ムアイドルを示す割込み信号を供給し、前記CPUスリ
    ープ手段にクロック停止信号発生指示の発行処理を実行
    させる手段と、 前記各種ハードウェア割込み要求信号を監視し、前記ハ
    ードウェア割込み要求信号の1つが発生された時システ
    ムイベントの発生を検出するシステムイベント検出手段
    と、 このシステムイベント検出手段によるシステムイベント
    の発生検出に応答して、前記クロック停止信号発生手段
    に前記クロック停止信号の発生を停止させ、前記CPU
    をクロック停止許可ステートからノーマルステートに復
    帰させる手段とを具備し、 前記CPUスリープ手段は、 前記システムアイドルを示す割込み信号の発生から前記
    システムイベント検出手段によるシステムイベントの発
    生検出までの期間前記CPUがクロック停止許可ステー
    トとノーマルステートを交互に繰り返すように、前記ク
    ロック停止信号発生手段に前記クロック停止信号を断続
    的に発生させる手段を含むことを特徴するコンピュータ
    システム。
JP35116593A 1993-12-28 1993-12-28 コンピュータシステム Expired - Fee Related JP3302149B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP35116593A JP3302149B2 (ja) 1993-12-28 1993-12-28 コンピュータシステム
US08/364,720 US5706407A (en) 1993-12-28 1994-12-27 System for reallocation of memory banks in memory sized order
US08/893,926 US6016548A (en) 1993-12-28 1997-07-15 Apparatus for controlling duty ratio of power saving of CPU

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35116593A JP3302149B2 (ja) 1993-12-28 1993-12-28 コンピュータシステム

Publications (2)

Publication Number Publication Date
JPH07200111A true JPH07200111A (ja) 1995-08-04
JP3302149B2 JP3302149B2 (ja) 2002-07-15

Family

ID=18415496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35116593A Expired - Fee Related JP3302149B2 (ja) 1993-12-28 1993-12-28 コンピュータシステム

Country Status (1)

Country Link
JP (1) JP3302149B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018511104A (ja) * 2015-03-27 2018-04-19 インテル・コーポレーション 改善されたハイブリッドスリープ電力管理のための技術

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018511104A (ja) * 2015-03-27 2018-04-19 インテル・コーポレーション 改善されたハイブリッドスリープ電力管理のための技術

Also Published As

Publication number Publication date
JP3302149B2 (ja) 2002-07-15

Similar Documents

Publication Publication Date Title
US6016548A (en) Apparatus for controlling duty ratio of power saving of CPU
JP3075957B2 (ja) コンピュータシステム
JP3943665B2 (ja) スリープ制御方法、およびイベント通知方法
JP3798476B2 (ja) コンピュータシステムおよびそのシステムにおけるキャッシュメモリのパワーダウン制御方法
JP3442100B2 (ja) コンピュータシステムのシステムイメージをセーブする方法及びこの方法を実施するコンピュータシステム
US5546568A (en) CPU clock control unit
USRE39284E1 (en) Method and apparatus for reducing power consumption in a system using power management software capable of placing multiple configurable system devices in a reduced power consumption state
KR100370368B1 (ko) 내부 온도가 기준 온도를 초과할 때 슬립 모드로 진입하는 에이씨피아이를 채용한 컴퓨터 시스템 및 그 방법
US5369771A (en) Computer with transparent power-saving manipulation of CPU clock
US6832311B2 (en) Information processing system and resume processing method used in the system
US6055643A (en) System management method and apparatus for supporting non-dedicated event detection
JPH0458047B2 (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
JPH07101386B2 (ja) 電池で作動するコンピュータおよびその初期設定方法
JP2002215597A (ja) マルチプロセッサ装置
JP3253881B2 (ja) コンピュータシステムおよびそのシステムにおけるハイバネーション制御方法
JP3943764B2 (ja) コンピュータシステムおよびそのcpu性能制御方法
US6321289B1 (en) Apparatus for automatically notifying operating system level applications of the occurrence of system management events
JPH1153049A (ja) コンピュータシステム
CN101281416A (zh) 确保系统关机完成的方法
JP3302149B2 (ja) コンピュータシステム
JPH11110085A (ja) ポータブルコンピュータ
JP3961669B2 (ja) コンピュータシステムおよびデータ転送制御方法
JPH11102238A (ja) コンピュータシステムおよびそのシステムにおけるサスペンド制御方法
JP2001117663A (ja) コンピュータシステムおよびその処理速度制御方法

Legal Events

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