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

コンピュータシステム

Info

Publication number
JP3302149B2
JP3302149B2 JP35116593A JP35116593A JP3302149B2 JP 3302149 B2 JP3302149 B2 JP 3302149B2 JP 35116593 A JP35116593 A JP 35116593A JP 35116593 A JP35116593 A JP 35116593A JP 3302149 B2 JP3302149 B2 JP 3302149B2
Authority
JP
Japan
Prior art keywords
cpu
clock
state
stop
clock stop
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
JP35116593A
Other languages
English (en)
Other versions
JPH07200111A (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
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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、パーソナルコンピュ
ータシステムに関し、特に消費電力の低減のためにCP
Uの動作速度を制御する機能を持つコンピュータシステ
ムに関する。
【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のアイドル状態は、アプ
リケーションプログラムがキーボード入力待ちになった
時のCPUアイドルだけである。このため、アプリケー
ションプログラムがキーボード以外のI/Oデバイスの
動作完了を待っているような場合には、CPUがアイド
ル状態であっても、CPUをスリープモードに移すこと
ができない。
【0013】この発明はこのような点に鑑みてなされた
ものであり、CPUのパワーセーブの深さを自在に設定
することのできるコンピュータシステムを提供すること
を目的とする。
【0014】
【0015】
【課題を解決するための手段および作用】この発明のコ
ンピュータシステムは、実行対象の各種プログラムが格
納されるメインメモリと、システム管理プログラムを呼
び出すための命令を格納し、前記メインメモリのアドレ
ス空間の一部にマッピングされるオーバーレイメモリ
と、前記メインメモリのプログムを実行するプログラム
実行モードと前記オーバーレイメモリの命令を実行する
システム管理モードとを有し、所定の割込み入力端子に
供給される割込み信号に応答して前記プログラム実行モ
ードから前記システム管理モードにスイッチするCPU
と、前記CPUによって呼び出された前記システム管理
プログラムに含まれるスリープ制御ルーチンを実行し、
前記CPUの動作状態を第1ステートからそれよりも電
力消費の少ない第2ステートに切り替えるCPUスリー
プ手段と、コンピュータシステム内で発生される前記C
PUへの各種ハードウェア割込み要求信号を監視し、予
め設定された第1のタイムアウト時間前記全てのハード
ウェア割込み要求信号が発生されない時システムアイド
ルを検出するシステムアイドル検出手段と、このシステ
ムアイドル検出手段によるシステムアイドルの検出に応
答して前記CPUの割込み入力端子にシステムアイドル
を示す割込み信号を供給し、前記CPUスリープ手段に
前記CPUの動作状態の切り替え処理を実行させる手段
とを具備し、前記CPUスリープ手段は、前記第1タイ
ムアウト時間のタイムアウトによって発生される前記割
込み信号に応答して、前記システムアイドル検出手段の
タイムアウト時間を前記第1のタイムアウト時間よりも
長い第2のタイムアウト時間に変更する手段と、前記C
PUが前記第2ステートの状態において前記第2タイム
アウト時間のタイムアウトによってシステムアイドルを
示す割込み信号が前記CPUに供給された際、前記CP
Uによって呼び出された前記システム管理プログラムに
含まれるオートパワーオフルーチンを実行してシステム
をパワーオフする手段とを含むことを特徴とする。
た、この発明のコンピュータシステムは、外部クロック
に応じて内部クロックを生成するPLLを内蔵し、命令
が実行されるノーマルステートと、命令実行および前記
外部クロックが停止されるクロック停止ステートと、前
記ノーマルス テートと前記クロック停止ステートとの中
間に位置し、前記外部クロックを維持したままの状態で
命令実行が停止されるクロック停止許可ステートとを含
む動作ステートを有し、クロック停止許可を示すクロッ
ク停止信号の発生に応答して前記ノーマルステートから
前記クロック停止許可ステートに移行され、前記クロッ
ク停止許可ステートにおける外部クロックの停止に応答
してクロック停止ステートに移行し、前記クロック停止
許可ステートにおける前記クロック停止信号の発生停止
に応答して前記クロック停止許可ステートからノーマル
ステートに復帰されるCPUと、前記クロック停止信号
を発生するクロック停止信号発生手段と、前記CPUに
よって実行される各種プログラムを格納するメインメモ
リと、システム管理プログラムを呼び出すための命令を
格納し前記メインメモリのアドレス空間の一部にマッピ
ングされるオーバーレイメモリであって、前記CPUの
所定の割込み入力端子に割込み信号が供給された際に前
記CPUによって前記命令が実行されるオーバーレイメ
モリと、前記所定の割り込み入力端子に割り込み信号が
入力されることによって前記CPUが前記メインメモリ
のプログラムを実行するプログラム実行モードから前記
オーバーレイメモリの命令を実行するシステム管理モー
ドにスイッチした際に、前記CPUによって呼び出され
る前記システム管理プログラムに含まれるスリープ制御
ルーチンを実行し、前記クロック停止信号発生手段にク
ロック停止信号の発生を指示するCPUスリープ手段
と、コンピュータシステム内で発生される前記CPUへ
の各種ハードウェア割込み要求信号を監視し、予め設定
された時間前記全てのハードウェア割込み要求信号が発
生されない時システムアイドルを検出するシステムアイ
ドル検出手段と、このシステムアイドル検出手段による
システムアイドルの検出に応答して前記CPUの前記割
込み入力端子にシステムアイドルを示す割込み信号を供
給し、前記CPUスリープ手段にクロック停止信号発生
指示の発行処理を実行させる手段とを具備することを特
徴とする。
【0016】このコンピュータシステムにおいては、シ
ステム内の各種ハードウェア割込み要求信号が監視さ
れ、それらすべてのハードウェア割込み要求信号が所定
時間発生されない時にシステムアイドルが検出され、こ
れによってCPUがスリープモードに移行される。この
ため、CPUをスリープモードに移行するためのトリガ
が増え、アプリケーションプログラムがキーボード入力
待ちになった時のCPUアイドルだけでなく、アプリケ
ーションプログラムがキーボード以外のI/Oデバイス
の動作完了を持っているような場合にも、CPUをスリ
ープモードに移行させることができる。したがって、C
PUがアイドルであるにもかかわらずCPUが動作状態
に維持されているという事態を防止でき、CPUの電力
消費を十分に低減することができる。
【0017】また、システムアイドルの検出には、ハー
ドウェア割込み要求信号が利用されている。このハード
ウェア割込み要求信号はシステム内の各種I/Oデバイ
スから発生させる物理的な信号であり、その検出にはB
IOSは一切利用されない。さらに、CPUスリープ手
段の処理をCPUへの割込み信号の供給のみによっての
み起動でき、OSやBIOSはCPUスリープ手段の起
動処理に一切関知しない。したがって、ハードウェアレ
ベルでシステムアイドルの検出、およびCPUスリープ
制御を行うことが可能となり、OS環境によらずに常に
同一のスリープモード機能を実現できる。
【0018】
【0019】またクロック停止許可ステートを用いた低
消費電力制御を行う構成としているので、CPUに供給
する外部クロックを停止または低速にするといったクロ
ック自体の制御を一切行うことなく、システムアイドル
時における無駄なCPUの電力消費を低減でき、また外
部クロックを停止または低速にするといったクロック制
御を行う必要がないのでPLLを内蔵するCPUにおい
ても、通常のノーマルステートにCPUを高速に復帰さ
せることが可能となる。 また、CPUの動作モードを、
メインメモリのプログラムを実行するプログラム実行モ
ードから、オーバーレイメモリのシステム管理プログラ
ムを実行するためのシステム管理モードにスイッチさせ
る割り込み信号を発生して、クロック停止信号の発生制
御をシステム管理モードで行うという構成を採用してお
り、これによってクロック許可停止ステートを用いたC
PUの低消費電力制御をOS環境等によらずに実現でき
る。
【0020】さらに、この発明のコンピュータシステム
は、外部クロックに応じて内部クロックを生成するPL
Lを内蔵し、命令が実行されるノーマルステートと、命
令実行および前記外部クロックが停止されるクロック停
止ステートと、前記ノーマルステートと前記クロック停
止ステートとの中間に位置し、前記外部クロックを維持
したままの状態で命令実行が停止されるクロック停止許
可ステートとを含む動作ステートを有し、クロック停止
許可を示すクロック停止信号の発生に応答して前記ノー
マルステートから前記クロック停止許可ステートに移行
され、前記クロック停止許可ステートにおける外部クロ
ックの停止に応答してクロック停止ステートに移行し、
前記クロック停止許可ステートにおける前記クロック停
止信号の発生停止に応答して前記クロック停止許可ステ
ートからノーマルステートに復帰されるCPUと、前記
クロック停止信号を発生するクロック停止信号発生手段
と、前記CPUによって実行される各種プログラムを格
納するメインメモリと、システム管理プログラムを呼び
出すための命令を格納し前記メインメモリのアドレス空
間の一部にマッピングされるオーバーレイメモリであっ
て、前記CPUの所定の割込み入力端子に割込み信号が
供給された際に前記CPUによって前記命令が実行され
るオーバーレイメモリと、前記所定の割り込み入力端子
に割り込み信号が入力されることによって前記CPUが
前記メインメモリのプログラムを実行するプログラム実
行モードから前記オーバーレイメモリの命令を実行する
システム管理モードにスイッチした際に、前記CPUに
よって呼び出される前記システム管理プログラムに含ま
れるスリープ制御ルーチンを実行して、前記クロック停
止信号発生手段にクロック停止信号の発生を指示するC
PUスリープ手段と、コンピュータシステム内で発生さ
れる前記CPUへの各種ハードウェア割込み要求信号を
監視し、予め設定された時間前記全てのハードウェア割
込み要求信号が発生されない時システムアイドルを検出
するシステムアイドル検出手段と、このシステムアイド
ル検出手段によるシステムアイドルの検出に応答して前
記CPUの前記割込み入力端子にシステムアイドルを示
す割込み信号を供給して、前記CPUスリープ手段を起
動する手段と、タイムアウト時間がセットされてからそ
のタイムアウト時間経過した際に、前記クロック停止信
号発生手段による前記クロッ ク停止信号の発生を停止さ
せ且つ前記CPUの前記割込み入力端子に割り込み信号
を供給して、前記CPUスリープ手段を起動するタイマ
手段とを具備し、前記CPUスリープ手段は、前記シス
テムアイドルを示す割込み信号によって起動されたと
き、前記クロック停止信号発生指示を発行する前に、第
1のタイムアウト時間を前記タイマ手段にセットする手
段と、前記第1のタイムアウト時間の経過に対応する前
記タイマ手段からの割り込み信号によって起動されたと
き、第2のタイムアウト時間を前記タイマ手段にセット
した後に、前記CPUを前記プログラム実行モードに戻
す手段と、前記第2のタイムアウト時間の経過に対応す
る前記タイマ手段からの割り込み信号によって起動され
たとき、前記第1のタイムアウト時間を前記タイマ手段
にセットする手段とを含むことを特徴とする。 またこの
発明のコンピュータシステムは、外部クロックに応じて
内部クロックを生成するPLLを内蔵し、命令が実行さ
れるノーマルステートと、命令実行および前記外部クロ
ックが停止されるクロック停止ステートと、前記ノーマ
ルステートと前記クロック停止ステートとの中間に位置
し、前記外部クロックを維持したままの状態で命令実行
が停止されるクロック停止許可ステートとを含む動作ス
テートを有し、クロック停止許可を示すクロック停止信
号の発生に応答して前記ノーマルステートから前記クロ
ック停止許可ステートに移行され、前記クロック停止許
可ステートにおける外部クロックの停止に応答してクロ
ック停止ステートに移行し、前記クロック停止許可ステ
ートにおける前記クロック停止信号の発生停止に応答し
て前記クロック停止許可ステートからノーマルステート
に復帰されるCPUと、前記CPUに前記クロック停止
信号を発生するクロック停止信号発生手段と、前記CP
Uがクロック停止許可ステートとノーマルステートとを
交互に繰り返すように、前記クロック停止信号発生手段
に前記クロック停止信号を断続的に発生させる制御手段
とを具備することを特徴とする。 またこの発明のコンピ
ュータシステムは、外部クロックが供給されるCPU
と、前記CPUのステートを命令が実行されるノーマル
ステートから前記外部クロックを維持したまま命令実行
が停止されるクロック停止許可ステートに切り替えるた
めに、前記CPUにクロック停止信号を発生するクロッ
ク停止信号発生手段と、前記CPUがクロック停止許可
ステートとノーマルステートとを交互に繰り 返すよう
に、前記クロック停止信号発生手段に前記クロック停止
信号を断続的に発生させる制御手段とを具備することを
特徴とする。 またこの発明のコンピュータシステムは、
外部クロックが供給されるCPUと、前記CPUのステ
ートを命令が実行されるノーマルステートから前記外部
クロックを維持したまま命令実行が停止されるクロック
停止許可ステートに切り替えるために、前記CPUにク
ロック停止信号を発生するクロック停止信号発生手段
と、前記CPUによって実行される各種プログラムを格
納するメインメモリと、システム管理プログラムを呼び
出すための命令を格納し前記メインメモリのアドレス空
間の一部にマッピングされるオーバーレイメモリであっ
て、前記CPUの所定の割込み入力端子に割込み信号が
供給された際に前記CPUによって前記命令が実行され
るオーバーレイメモリと、前記所定の割り込み入力端子
に割り込み信号が入力されることによって前記CPUが
前記メインメモリのプログラムを実行するプログラム実
行モードから前記オーバーレイメモリの命令を実行する
システム管理モードにスイッチした際に、前記CPUに
よって呼び出される前記システム管理プログラムに含ま
れるスリープ制御ルーチンを実行して、前記CPUがク
ロック停止許可ステートとノーマルステートとを交互に
繰り返すように前記クロック停止信号発生手段に前記ク
ロック停止信号を断続的に発生させる制御手段と、タイ
ムアウト時間がセットされてからそのタイムアウト時間
経過した際に、前記クロック停止信号発生手段による前
記クロック停止信号の発生を停止させ且つ前記CPUの
前記割込み入力端子に割り込み信号を供給して、前記制
御手段を起動するタイマ手段とを具備し、前記制御手段
は、前記ノーマルステートと前記クロック停止許可ステ
ートとを交互に繰り返すデューティー制御を開始すると
き、前記クロック停止信号発生手段にクロック停止信号
の発生を指示する前に、第1のタイムアウト時間を前記
タイマ手段にセットする手段と、前記第1のタイムアウ
ト時間の経過に対応する前記タイマ手段からの割り込み
信号によって起動されたとき、第2のタイムアウト時間
を前記タイマ手段にセットした後に、前記CPUを前記
プログラム実行モードに戻す手段と、前記第2のタイム
アウト時間の経過に対応する前記タイマ手段からの割り
込み信号によって起動されたとき、前記第1のタイムア
ウト時間を前記タイマ手段にセットする手段とを含むこ
とを特 徴とする。
【0021】このコンピュータシステムにおいては、C
PUはスリープモードにおいてクロック停止許可ステー
トとノーマルステートをある時間間隔で交互に繰り返
す。クロック停止許可ステートにおいてはCPUの一切
の命令実行は停止されるが、ノーマルステートにおいて
は命令実行の再開が可能となる。このため、スリープモ
ードの期間、つまりシステムアイドルが検出されてから
システムイベントの発生が検出されるまでの期間、CP
Uによるプログラム実行は完全には停止されず、CPU
は断続的にプログラムを実行することが可能である。し
たがって、メモリのベンチマークテストなどのようにI
/Oを使用せずに演算処理を行うようなプログラムをC
PUが実行している時にアイドル状態の誤検出により誤
ってCPUがスリープモードに移行されても、プログラ
ム実行が突然停止されて以降何等処理が進まないという
事態の発生を防止できる。また、スリープモードにおい
てはCPUの平均動作速度を遅くできるので、このスリ
ープ制御方式でも平均的な意味では十分にCPUの電力
消費を低減することができる。特にCPUをシステム管
理モードにスイッチさせる割り込み信号と、タイマ手段
の併用によって、クロック許可停止ステートを終了させ
るための割り込み信号と再度クロック許可停止ステート
に切り替えるための割り込み信号を発生する構成を用い
ることにより、OS環境によらずにノーマルステートと
クロック許可停止ステートとのデューティー制御を行う
ことが可能となる。
【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スリープモ
ードとしてストップクロックステートではなく、ストッ
プグラントステートが利用される。なお、この発明にお
けるスリープモードは従来技術におけるスリープモード
とは異なり、プログラムは実行される。この発明のスリ
ープモードでは、CPU11はノーマルステートとスト
ップグラントステートとの間を反復かつ間断的に遷移す
る。
【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つの場合である。 1)INTRの発生時にIRQ0がアクティブステート
で無い場合。 2)IRQ0がアクティブステートであっても、その1
回のアクティブステートの期間内にINTRが2回発生
した場合。
【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】
【発明の効果】以上詳記したように、この発明によれ
ば、CPUはノーマルモードとスリープモードとを有
し、いずれのモードにおいてもプログラムは実行され
る。スリープモードにおいては、CPUはノーマルステ
ートとストップグラントステートとの間のデューティ比
が可変設定され、それによりCPUのパワーセーブの深
さが制御される。また、ストップブレークの要因がソフ
トウエアSMI以外である場合には、システムタイマ割
込みか否かを判断し、システムタイマ割込みでない場合
には、CPUが電力節約に切り替えられる。また、CP
Uの内部クロックを停止させる周期信号のデューティ比
を変更することにより、CPUの動作速度を低減し、そ
れにより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…ストップブレーク制御回路。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−176921(JP,A) 特開 平5−257590(JP,A) 特開 平5−341976(JP,A) 特開 平5−324196(JP,A) 特開 平2−294716(JP,A) 特開 昭62−235617(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 1/26 - 1/32

Claims (9)

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

Also Published As

Publication number Publication date
JPH07200111A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
US6016548A (en) Apparatus for controlling duty ratio of power saving of CPU
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
US5931951A (en) Computer system for preventing cache malfunction by invalidating the cache during a period of switching to normal operation mode from power saving mode
JP3442100B2 (ja) コンピュータシステムのシステムイメージをセーブする方法及びこの方法を実施するコンピュータシステム
US5504910A (en) Power management unit including software configurable state register and time-out counters for protecting against misbehaved software
US5560024A (en) Computer power management system
JP3075957B2 (ja) コンピュータシステム
US5369771A (en) Computer with transparent power-saving manipulation of CPU clock
US6457135B1 (en) System and method for managing a plurality of processor performance states
US6832311B2 (en) Information processing system and resume processing method used in the system
JPH11110090A (ja) コンピュータのパワー状態を制御する方法及び装置
JPH10228340A (ja) 電子装置
JPH1185335A (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
JP2000039937A (ja) コンピュータシステムおよびそのパワーセーブ制御方法
US6321289B1 (en) Apparatus for automatically notifying operating system level applications of the occurrence of system management events
JP3302149B2 (ja) コンピュータシステム
JPH11338640A (ja) コンピュータシステムおよびデータ転送制御方法
JP3542409B2 (ja) 情報処理装置
JPH11102238A (ja) コンピュータシステムおよびそのシステムにおけるサスペンド制御方法
JP3047534B2 (ja) 電力低消費システム
JP2003345474A (ja) コンピュータシステムおよびデータ転送制御方法
JPH0883133A (ja) コンピュータシステム及びそのクロック制御方法

Legal Events

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