(57)【特許請求の範囲】
【請求項１】
内部クロックの停止指示を示す指示信号及び割り込み処理の指示を示す割り込み信号を受信可能なＣＰＵと、
前記ＣＰＵへ前記指示信号をアサートする手段と、
システムイベントが発生した場合、前記割り込み信号を発生する割り込み手段と、
前記指示信号が前記ＣＰＵへアサートされている間に前記割り込み手段により割り込み信号が発生された場合、前記割り込み信号を保持し前記ＣＰＵへのアサートをブロックし、前記指示信号のアサートが解除された後に前記割り込み信号を前記ＣＰＵへアサートする手段と、
を具備することを特徴とするコンピュータシステム。
【請求項２】
内部クロックの停止指示を示す指示信号の受信に応じて、省電力状態へ移行するＣＰＵと、
前記ＣＰＵへ前記指示信号をアサートする手段と、
システムイベントが発生した場合、割り込み信号を発生する割り込み手段と、
前記ＣＰＵが前記省電力状態である間に前記割り込み手段により割り込み信号が発生された場合、前記割り込み信号を保持し前記ＣＰＵへのアサートをブロックし、前記省電力状態が解除された後に前記割り込み信号を前記ＣＰＵへアサートする手段と、
を具備することを特徴とするコンピュータシステム。
【請求項３】
前記指示信号はストップクロック（STPCLK）信号であることを特徴とする請求項１または２に記載のコンピュータシステム。
【請求項４】
前記割り込み信号を前記ＣＰＵへアサートした後、所定時間は前記ストップクロック信号の入力を禁止することを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記ストップクロック信号のアサートが解除されたことに応じて、前記ストップクロック信号をアサートが禁止される時間をカウントするタイマ手段を具備することを特徴とする請求項４に記載のコンピュータシステム。
【請求項６】
内部クロックの停止指示を示す指示信号及び割り込み処理の指示を示す割り込み信号を受信可能なＣＰＵを具備するコンピュータシステムの動作制御方法において、
前記ＣＰＵへ前記指示信号をアサートし、
システムイベントが発生した場合、前記割り込み信号を発生し、
前記指示信号が前記ＣＰＵへアサートされている間に前記割り込み信号が発生した場合、前記割り込み信号を保持し前記ＣＰＵへのアサートをブロックし、
前記指示信号のアサートが解除された後に前記割り込み信号を前記ＣＰＵへアサートすることを特徴とする動作制御方法。
【請求項７】
内部クロックの停止指示を示す信号の受信に基づいて省電力状態へ移行するＣＰＵを具備するコンピュータシステムの動作制御方法において、
前記ＣＰＵへ前記信号をアサートし、
システムイベントが発生した場合、前記ＣＰＵへ割り込み処理の指示を示す割り込み信号を発生し、
前記ＣＰＵが前記省電力状態の間に前記割り込み信号が発生した場合、前記割り込み信号を保持し前記ＣＰＵへのアサートをブロックし、
前記ＣＰＵが省電力状態から解除された後に前記割り込み信号を前記ＣＰＵへアサートすることを特徴とする動作制御方法。
【請求項８】
ＣＰＵの内部クロックを停止するストップクロック信号を受信するＣＰＵを具備するコンピュータシステムにおいて、
前記ＣＰＵをＣＰＵが低電力状態にセットされるストップグラント状態にするためのストップクロック信号をアサートする手段と、
前記ＣＰＵがストップグラント状態にあるときに、リフレッシュサイクルを実行する手段と、
前記ＣＰＵがストップグラント状態にあるときにリフレッシュサイクルを実行するか否かを指定する手段と、
前記ＣＰＵがストップグラント状態にあるときにリフレッシュサイクルを実行することが指定されたとき、ＨＯＬＤ要求をＣＰＵに伝達せずに、ＣＰＵの代わりにＨＯＬＤアクノリッジ信号（ＨＬＤＡ）を出す手段と、
を具備するコンピュータシステム。
【請求項９】
ＣＰＵの内部クロックを停止するストップクロック信号を受信するＣＰＵを具備するコンピュータシステムにおいて、
前記ＣＰＵをＣＰＵが低電力状態にセットされるストップグラント状態にするためのストップクロック信号をアサートする手段と、
前記ＣＰＵがストップグラント状態にあるときに、リフレッシュサイクルを実行する手段と、
前記ＣＰＵがストップグラント状態にあるときにリフレッシュサイクルを実行するか否かを指定する手段と、
前記リフレッシュサイクルのサイクル長を切り替える手段と、
を具備するコンピュータシステム。
【請求項１０】
ＣＰＵの内部クロックを停止するストップクロック信号を受信するＣＰＵを具備するコンピュータシステムにおいて、
前記ＣＰＵの動作速度を減少し、消費電力を節約するために前記ストッククロック信号を一定時間アサートする手段と、
前記ストップクロック信号がアサートされる時に割り込みが既に発生されている場合、ストップクロックをアサートすることなく前記ＣＰＵにＨＯＬＤ信号を出力し、前記ＣＰＵがｈｏｌｄ状態に設定され、リフレッシュサイクルを実行する手段とを具備するコンピュータシステム。
【請求項１１】
ＣＰＵの内部クロックを停止するストップクロック信号を受信するＣＰＵを具備するコンピュータシステムにおいて、
前記ＣＰＵの動作速度を減少し、消費電力を節約するために前記ストッククロック信号を一定時間アサートする手段と、
前記ストップクロック信号がアサートされた後にＨＡＬＴ信号が発生される場合、前記ＣＰＵをＨＡＬＴ状態に設定する手段と、
前記ストップクロック信号のアサート中に、ＨＯＬＤ信号を前記ＣＰＵに出力し、前記ＣＰＵにリフレッシュサイクルを実行させる手段と、
リフレッシュサイクルの実行後、前記ＣＰＵを低電力状態に設定されるストックグラント状態に設定するために割り込み信号を前記ＣＰＵに発行し、ＣＰＵがストックグラント状態の時にＣＰＵにストップグラントサイクルを実行させる手段と、
前記ＣＰＵがストックグラントサイクルを完了後、ストッククロック信号をデアサートする手段とを具備するコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばパーソナルコンピュータ等のコンピュータシステムに関し、特にシステム内のストップクロック機能を使用した省エネルギーモードを実現したコンピュータシステム及びその動作制御方法に関する。
【０００２】
【従来の技術】
近年、携行が容易でバッテリにより動作可能なノートブックタイプまたはラップトップタイプのポータブルパーソナルコンピュータが種々開発されている。この種のコンピュータにおいては、バッテリによる駆動時間をできるだけ長くするため、種々の電力節約のための工夫が成されている。
【０００３】
例えば、ＣＰＵの消費電力を少なくするために、ＣＰＵの動作速度を遅くして、ＣＰＵの消費電流を減らす工夫が成されている。一方、ＣＰＵ（ｃｅｎｔｒａｌ ｐｒｏｃｅｓｓｉｎｇ ｕｎｉｔ）は年々高速化されている。例えば米国インテル社の８０２８６から８０３８６、８０４８６、Ｐｅｎｔｉｕｍ，…と高速化を続け、ＣＰＵ内部クロックの高速化、ＣＰＵバス幅の拡張が成されている。
【０００４】
ところで、例えば上記ＰｅｎｔｉｎｕｍをＣＰＵとしてノートブック型等のポータブルコンピュータに実装する場合、消費電力が大きいため発熱をいかに抑えるかという問題がある。ＣＰＵの消費電流は入力クロックにほぼ比例するので、ロースピード（クロックを落として）で動かしてやれば、消費電流が減少し、結果として発熱を抑えることができる。基本的にはＣＰＵがもつストップクロック機能を使用して、ＣＰＵ温度が上昇したらクロックを低速にするというように、クロックの切り替えを行うことが考えらる。
【０００５】
ストップクロック機能はＣＰＵへの内部クロックを停止することによりＣＰＵの消費電力を制御する割り込み機構（ＳＴＰＣＬＫ＃信号）であり、例えば上記インテル社の８０４８６やＰｅｎｔｉｕｍ等が持つ機能である。上記低電力状態はストップグラントステート（Ｓｔｏｐ Ｇｒａｎｔ ｓｔａｔｅ）と呼ばれている。さらに、このＳＴＰＣＬＫ＃割り込みはある範囲内で入力周波数を変化させたり、ＣＬＫ入力周波数を完全に停止させることが可能である。ＣＬＫ入力が完全に停止した場合には、ＣＰＵはストップクロックステート（Ｓｔｏｐ Ｃｌｏｃｋ ｓｔａｔｅ）、すなわち最も低い電力状態にすることが可能である。
【０００６】
しかし、ストップクロック機能を使用したクロック切り替えでは、クロック切り替え後１ｍｓの間はＣＰＵが正常に動作しないので、ダイナミックに切り替えができないという制約がある。
【０００７】
また、従来、リフレッシュサイクル（ＩＳＡバスリフレッシュサイクルと呼ぶこともある）を実行する場合、ＣＰＵのクロックを切り替える場合と、リフレッシュサイクルを長くして見かけ上ＣＰＵ速度を遅くするという２つの方法があった。従来のリフレッシュサイクルの実行は、ＣＰＵがこの間アクセスしないようにＣＰＵを止めて行っていた。すなわち、図１６に示すようにＨＯＬＤ信号をだして１５μＳに１回リフレッシュ動作を行っていた。ＨＯＬＤ信号がでると、ＣＰＵは完全に動作を停止する。このリフレッシュサイクルを延ばして同図波線に示すごとく引き延ばし、例えばリフレッシュサイクルを例えば７μＳにしたとすると、見かけ上ＣＰＵは１／２のスピードで動作しているように見える。ただし、ＣＰＵはプログラムを実行しないだけで、ＣＰＵの消費電流は変わらない。この場合、ユーザが例えばセットアップメニューでＣＰＵの動作速度をＨＩＧＨからＬＯＷに切り替えた場合、上述したようなリフレッシュサイクルの引き延ばしによりＣＰＵの動作速度を見かけ上遅くしていた。しかしながら、上述したように、このＨＯＬＤの期間、ＣＰＵの消費電流は変わらない。したがって、見かけ上、ＣＰＵの動作速度を遅くしたとしても、動作時間は変わらず、バッテリの駆動時間を長くすることには寄与しない。
【０００８】
ところで、システム仕様として、ＣＰＵハイスピード／ロースピードという設定機能を有したコンピュータシステムがある。従来、このようなコンピュータシステムでは上述したような問題があるため、実際にはクロックの切り替えを行っておらず、リフレッシュ時のホールドサイクルを延長して見かけ上の動作スピードを遅くしているにすぎない。すなわち、図１５に示すようにマイクロプロセッサは低速化せずに、リフレッシュホールドタイムをスローダウンタイマにより延長して、マイクロプロセッサを通常よりも長くホールドしている。プロセッサはプログラムのフェッチおよび実行ができないので見かけ上低速に見える。
【０００９】
この場合、ＣＰＵをロースピードにしたとしてもＣＰＵの消費電流は変わらないという不都合を生じる。このため、見かけ上のスピードを落とすとともに、消費電流も低減されることが望まれている。また、このロースピードモード時にホールドサイクルの代わりにストップクロック機能を使用してリフレッシュサイクルを行うことが望まれている。
【００１０】
【発明が解決しようとする課題】
この発明はこのような点に鑑みてなされたもので、ストップクロック機能を使用して効率良く消費電流を低減することができるコンピュータシステム及びその動作制御方法を提供することである。
【００１１】
【課題を解決するための手段】
上記した課題を解決し目的を達成するために、本発明は以下に示す手段を用いている。
【００１２】
本発明のコンピュータシステムは、内部クロックの停止指示を示す指示信号及び割り込み処理の指示を示す割り込み信号を受信可能なＣＰＵと、前記ＣＰＵへ前記指示信号をアサートする手段と、システムイベントが発生した場合、前記割り込み信号を発生する割り込み手段と、前記指示信号が前記ＣＰＵへアサートされている間に前記割り込み手段により割り込み信号が発生された場合、前記割り込み信号を保持し前記ＣＰＵへのアサートをブロックし、前記指示信号のアサートが解除された後に前記割り込み信号を前記ＣＰＵへアサートする手段とを具備する。
【００１３】
本発明のコンピュータシステムはストップクロック機能を使用して効率良く消費電流を低減することができる。
【００１４】
【発明の実施の形態】
以下、この発明の一実施の形態について説明する。図１はこの発明のストップクロック機能を使用した省エネルギーモード機能を備えたコンピュータシステムの一実施の形態を示す概略ブロック図である。同図に示すように、ＣＰＵ１は例えば、米国インテル社のＳＬエンハンスト８０４８６またはＰｅｎｔｉｕｍ（Ｐ５４Ｃ）相当の３２ビットＣＰＵである。ＣＰＵ１はＣＰＵバス５を介してＣＰＵコントロールゲートアレイ３およびメインＤＲＡＭ７と接続されている。ＣＰＵコントロールゲートアレイ３はデータバスドライブブロック、ＣＰＵコントロールブロック、ＤＲＡＭマッパー、ＤＲＡＭコントロールブロック、ＣＰＵサイクルチェックブロックから構成される。ＣＰＵコントローラはＣＰＵサイクルの制御（ＤＲＡＭコントローラ、ＶＬバスからの信号を基にＣＰＵに対してサイクル終了の制御を行う）、ＣＰＵアドレスデコード（内部メモリ（６４ビット）、拡張メモリ（３２ビット）、メモリ、ｅｘｔｅｎｄｅｄメモリ、０００Ｃ００００Ｈ−０００ＦＦＦＦＦＨの１６ＫＢ毎のウインドウ、ＳＭ−ＲＡＭ、ライトプロテクトエリア、キャッシュエリア）、データバスドライバへの制御信号出力（ラッチ信号、バイトレーンスワップ信号）、Ｉ／Ｏバッファイネーブル信号の出力等の制御を行う。ＤＲＡＭマッパーはＤＲＡＭマッピング（ＣＰＵアドレスからＤＲＡＭアドレスへのアドレス変換、ＤＲＡＭ論理アドレスの生成、ｃｏｎｖｅｎｔｉｏｎａｌ エリアに対応するＤＲＡＭ論理アドレス生成、ｅｘｔｅｎｄｅｄ エリアに対応するＤＲＡＭ論理アドレス生成、ＳＭ−ＲＡＭエリアに対応するＤＲＡＭ論理アドレス生成）を行う。ＤＲＡＭコントローラはＤＲＡＭ制御（ＤＲＡＭへのアクセス（ＣＰＵおよび外部マスタ・ＤＭＡ）を制御、Ｌ１ライトバックキャッシュ対応制御、シャドウリフレッシュ制御、３２ビット拡張ＤＲＡＭに対するアクセスのサイクル変換（６４ｘ３２））を行う。その他、上記各ブロックからのレジスタデータのセレクタ、ＡＤＳ＃のディレイ制御回路、ＣＰＵへのクロック出力ディレイ制御回路、クロック／リセット／サスペンドコントロール回路、テストのための付加回路等が設けられている。また、ＣＰＵコントロールゲートアレイ３はＶＬバス９を介してＩＳＡコントローラゲートアレイ１１、拡張ＤＲＡＭ１３、およびＶＧＡコントローラ１５と接続されている。ＩＳＡコントローラ１１は、上記ＶＧＡコントローラ１５および拡張ＤＲＡＭ１３を制御するとともに、ＣＰＵコントロールゲートアレイ３を介してＣＰＵ１と、ＶＧＡコントローラ１５および拡張ＤＲＡＭ１３をインターフェースする。
【００１５】
図２はインターバルストップクロック（ＳＴＰＣＬＫ＃）を一定間隔でアサートするための回路例を示す。図２に示す回路は図１のＩＳＡコントロールゲートアレイ１１に設けられるが、ＣＰＵコントロールゲートアレイ３内に設けてもよい。インターバルストップクロック（ＳＴＰＣＬＫ＃）機能については、例えば１９９３年発行の「Ｉｎｔｅｌ ４８６ Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ Ｆａｍｉｌｙ Ｄａｔａ Ｂｏｏｋ Ａｄｄｅｎｄｕｍ：ＳＬ ＥｎｈａｎｃｅｄＩｎｔｅｌ ４８６ Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ Ｆａｉｍｉｌｙ」、および１９９４年発行「Ｐｅｎｔｉｕｍ Ｐｒｏｃｅｓｓｏｒ Ｆａｍｉｌｙ Ｕｓｅｒ’ｓ Ｍａｎｕａｌ」に詳述されている。同図において、カウンタＡ１７は図３（ａ）に示すリクエスト信号（ＩＳＲＱ１）のリクエスト期間をカウントするカウンタである。リクエスト期間は、インターバルストップクロックイネーブルレジスタ（ＲＥＧＡ）１９により設定される。カウンタＢ２３は図３（ｄ）に示すストップクロック信号（ＳＴＰＣＬＫ＃）のホールド期間をカウントするカウンタである。ホールド期間はインターバルストップクロックホールドレジスタ（ＲＥＧＢ）２５によりプログラマブルに設定される。
【００１６】
インターバルストップクロックイネーブルレジスタ１９の機能は次の通りである。設定された時間、一定間隔でＣＰＵ１にストップクロック要求を送り、ＣＰＵ１がそれを受け付けたとき（ＣＰＵ１がストップグラントサイクルを発生してきたときだけ）、別に設定された時間、ストップグラントステートを続けた後、ＳＴＰＣＬＫ＃をデアサート（ＨＩＧＨに）する。
【００１７】
INTERVAL STOPCLOCK ENABLE REG.
bit7-1:INTSC(INTERVAL STOPCLOCK ENABLE)
インターバルストップクロック機能をイネーブルする。
【００１８】
０の時：インターバルストップクロック機能をディスエーブルにする。
【００１９】
１の時：インターバルストップクロック機能をイネーブルにする。
【００２０】
カウンタＡ１７はこのｂｉｔを１にすることにより動きだし、０にするとカウンタが停止（クリア）される。
【００２１】
bit6-3:INH3-0(INTERVAL STOPCLOCK INHIBIT TIME)
SMI,NMI,INTR,INIT,VGA アクセスが入った時だけ、一定時間インターバルストップクロック（ＳＴＰＣＬＫ＃）を禁止する。INH3-0がすべて０の時は、インターバルストップクロック（ＳＴＰＣＬＫ＃）を禁止する機能は動作しない。
【００２２】
ＤＩＳ３    ２  １  ０  インターバルストップクロック禁止期間
０          ０  ０  ０  禁止しない
０          ０  ０  １  １ｍｓ
０          ０  １  ０  ２ｍｓ
０          ０  １  １  ３ｍｓ
・
・
１          １  １  １  １５ｍｓ
ｂｉｔ２−０：ＩＮＴＢ２−０
（ＩＮＴＥＲＶＡＬ ＴＩＭＥＲ ＢＩＴ２−０）
ＳＴＰＣＬＫ＃をアサートする間隔を指定する。ｂｉｔ７＝１の時のみ有効。
【００２３】
0003713488.tif 000002
また、インターバルストップクロックホールドレジスタ２５のビットアサインメントおよび機能は次の通りである。
【００２４】
ｂｉｔ７−６：ＩＲＱ０ＳＬ，ＶＧＡＳＬ
インターバル・ストップクロックを禁止する条件を変える。
【００２５】
IRW0SL=0: タイマ割り込みによるＩＲＱ０を除いたＩＮＴＲ（Ｉｎｔｅｒｒｕｐｔ Ｒｅｑｕｅｓｔ）で一定時間インターバルを禁止する。
【００２６】
IRQ0SL=1: タイマ割り込みによるＩＲＱ０も含んだＩＮＴＲで一定時間インターバルを禁止する。
【００２７】
VGASL=0:ＶＧＡに対するアクセスで、一定時間インターバルを禁止する。
【００２８】
VGASL=1:ＶＧＡに対するアクセスはインターバルを禁止しない。
【００２９】
bit5-0:HTIM5-0(HOLD TIMER 5-0)
ＳＴＰＣＬＫ＃をアサートしている時間（ホールド時間）を指定する。ストップグラントサイクルの始まり（ＡＤＳ＃）から１０ＣＬＫ経ってからカウンタが動作を始め、このビットによる設定値に達したところでＳＴＰＣＬＫ＃がデアサート（ＨＩＧＨ）される。カウンタＢ２３はインターバルストップクロック機能がディスエーブルされるか、このビット設定値にするか、割り込み要因などでＳＴＰＣＬＫ＃がブレークされた段階でクリアされ、かつ動作を停止する。
【００３０】
0003713488.tif 000003
図２において、比較回路２１はカウンタＡ１７のカウンタ出力とレジスタＡ１９のカウンタ設定値とを比較し、一致するとクリア信号をカウンタＡ１７のクリア端子に供給し、カウンタＡ１７をクリアする。比較回路２９はカウンタＢ２３のカウンタ出力とレジスタＢ２５のカウンタ設定値とを比較し、一致すると、ＡＮＤゲート２７を介してカウンタＢ２３のクリア端子に供給する。なお、デコード回路３１はＣＰＵステータスをデコードし、ストップグラントステートを検出する回路である。ストップグラントステートはＣＰＵ１内部のＰＬＬにクロックに入力されるが、ＰＬＬの出力を止めた状態であり、ＣＰＵの消費電流が低減（Ｉｃｃ＝２０無いし５０ｍＡ）された高速ウエイクアップ状態である。詳細は上述した「Ｉｎｔｅｌ４８６ Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ ＦａｉｍｉｌｙＤａｔａ Ｂｏｏｋ Ａｄｄｅｎｄｕｍ］および「Ｐｅｎｔｉｕｍ Ｐｒｏｃｅｓｓｏｒ Ｆａｉｍｉｌｙ Ｕｓｅｒ’ｓ Ｍａｎｕａｌ］に記載されている。ＡＮＤゲート２７はストップグラントステートのときに、比較回路２９からのクリア信号をカウンタＢ２３に供給する。
【００３１】
３１はスナップモード（通常は、一定間隔でＳＴＰＣＬＫ＃をアサートして見かけ上の動作スピードを落し、割り込みなどの要因が発生した場合は、ある一定時間ＳＴＰＣＬＫ＃のアサートを禁止して高速動作させるモード）を実現するためのインヒビットタイマ回路である。カウンタ３３、レジスタ１９、比較回路３７は図４（ａ）に示すインターバルストップクロック禁止区間を設定する回路であり、カウンタ３３はイベント（例えばＩＮＴＲ（Ｉｎｔｅｒｒｕｐｔ Ｒｅｑｕｅｓｔ）、ＮＭＩ（Ｎｏｎ−Ｍａｓｋａｂｌｅ Ｉｎｔｅｒｒｕｐｔ）、ＳＭＩ（Ｓｙｓｔｅｍ Ｍａｎａｇｅｍｅｎｔ Ｉｎｔｅｒｒｕｐｔ）、ＳＲＥＳＥＴ（Ｓｙｓｔｅｍ Ｒｅｓｅｔ），ＩＮＩＴ（Ｉｎｉｔｉａｌｉｚｅ）等、これらの信号は、上述した「ＳＬ Ｅｎｈａｎｃｅｄ Ｉｎｔｅｌ ４８６ Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ Ｆａｉｍｉｌｙ」および「Ｐｅｎｔｉｕｍ Ｐｒｏｃｅｓｓｏｒ Ｆａｍｉｌｙ Ｕｓｅｒ’ｓ Ｍａｎｕａｌ」に詳述されている）の発生に応答してカウントを始める。レジスタ１９のビット６−３には上述したインターバルストップクロック禁止区間が１ｍｓ及至１５ｍｓの範囲で設定される。比較回路３７はカウンタ３３のカウンタ出力とレジスタ３５のカウンタ設定値とを比較し、一致するまで、インターバルストップクロック禁止信号をＡＮＤゲート３９に出力し、ＡＮＤゲート３９はこの間、図５に示すようにインターバルストップクロック（ＳＴＰＣＬＫ＃）を出力しない。
【００３２】
調停回路４１はインターバルストップクロック（ＳＴＰＣＬＫ＃）が動作中、ＩＮＴＲ、ＳＭＩ，ＮＭＩ、ＳＲＥＳＥＴ（ＩＮＩＴ）、ＶＧＡアクセスがあった場合の処理を行う回路であり、図６に示すように処理を行う。
【００３３】
図６の表に示すように、１）インターバルストップクロックが出力されていてかつＣＰＵが動作している場合、２）インターバルストップクロックが出力されていてＳＴＰＣＬＫ＃＝０のとき、および３）インターバルストップクロックが出力されていてＣＰＵ１がストップグラントステート状態にあるときの３つの状態が存在する。タイマ割り込みによるＩＲＱ０では上記１）及至３）のいずれの状態においてもインヒビットタイマ３１は動作しない。
【００３４】
１）の状態では、ＩＮＴＲ（ＩＲＱ０及至ＩＲＱ１５）、ＳＭＩ、ＮＭＩ、ＳＲＥＳＥＴ（ＩＮＩＴ）及びＶＧＡアクセスがあった場合、インヒビットタイマ３１を開始する。２）の状態では、ＩＮＴＲ（ＩＲＱ０及至ＩＲＱ１５）、ＳＭＩ，ＮＭＩＳＲＥＳＥＴ（ＩＮＩＴ）及びＶＧＡアクセスがあった場合、インヒビットタイマを開始しかつＣＰＵはストップグラントサイクル待ちになる。さらに３）の状態ではＩＮＴＲ（ＩＲＱ０及至ＩＲＱ１５）、ＳＭＩ、ＮＭＩ、ＳＲＥＳＥＴ（ＩＮＩＴ）があったとき、ストップグラントステートがブレークされ、インヒビットタイマ３１が開始される。なお、ＣＰＵ１がストップグラントステート中はＶＧＡアクセスは起きない。
【００３５】
図７はインターバルストップクロックの詳細タイミングである。同図（ａ）に示すようにインターバルストップクロックリクエスト（ＩＳＲＱ１）が出力されると、同図（ｂ）に示すようにｓＴＰＣＬＫ＃がアサートされる；。（但し、すでにＩＮＴＲ、ＮＭＩ、ＳＭＩ、ＳＲＥＳＥＴ、ＩＮＩＴがあった場合にはＳＴＰＣＬＫ＃をアサートしない。）同図（ｂ）でＳＴＰＣＬＫ＃がアサートされると、ＣＰＵは同図（ｃ）に示すようにストップグラントステートになる。ＣＰＵがストップグラントステートになり、ストップグラントサイクルのＡＤＳ＃（新しいバスサイクルの開始を示す信号）から１０ＣＬＫ後にホールトブレークタイマ（カウンタ２３、レジスタ２５、比較回路２９０が動作を開始し、レジスタ２５で指定された期間カウントすると同図（ｄ）に示すようにホールドタイマを終了し同図（ａ）に示すインターバルストップクロックリクエスト（ＩＳＲＱ１）が取り下げられる。
【００３６】
図８はインターバルストップクロック（ＳＴＰＣＬＫ＃）がアサートされてＣＰＵがストップグラントステートにあるときに、他のブレーク要因が発生した場合のタイミングチャートである。同図（ｅ）に示すように、他のブレーク要因が発生した場合、同図（ｂ）に示すＳＴＰＣＬＫ＃がデアサートされ、同図（ａ）及び同図（ｄ）に示すようにインターバルストップクロックのリクエスト（ＩＳＲＱ１）及びホールドタイマ（カウンタ２３、レジスタ２５、比較回路２９）がクリアされる。
【００３７】
次に、ストップクロックリフレッシュ機能について説明する。ストップクロックリフレッシュ機能は、ＩＳＡバスリフレッシュサイクル時に従来のＨＯＬＤ／ＨＬＤＡサイクルの代わりにＳＴＰＣＬＫ＃信号をアサートすることにより、ストップグラント状態でリフレッシュサイクルを行う。
【００３８】
ＩＳＡバスリフレッシュ機能は例えば、ノート型パソコンの拡張コネクタを介してデスクステーションを接続した場合に、デスクステーションのスロットにＤＲＡＭ拡張メモリカードが接続される場合が考えられる。この場合、ＣＰＵインターフェース信号としてリフレッシュ信号がバスの仕様として定義されている。ＣＰＵは、このリフレッシュ信号がアクティブになっているときに、拡張メモリカードをリフレッシュするように構成されている。
【００３９】
この機能は、例えば図１に示すＩＳＡコントロールゲートアレイ１１内に設けられる。ただし、ＣＰＵコントロールゲートアレイ３内にあってもよい。ＩＳＡコントロールゲートアレイ１１では、リフレッシュによるストップクロック要求が発生した時に、ＩＮＴＲ，ＮＭＩ，ＳＭＩ＃，ＩＮＩＴのアサートおよびホルトサイクルであるかどうかを監視し、これらの要因がすでに発生していた場合は、通常のＨＯＬＤ／ＨＬＤＡサイクルによるリフレッシュに切り替える。この場合は、ＳＴＰＣＬＫ＃をアサートしない。前記要因が発生していない場合に限り、ＳＴＰＣＬＫ＃をアサートし、同時にＩＮＴＲ，ＮＭＩ，ＳＭＩ＃，ＩＮＩＴをブロックする。さらにＳＴＰＣＬＫ＃アサート後にホルトサイクルが発生した場合は、ＳＴＰＣＬＫ＃をデアサートする。ただし、ＩＮＴＲ，ＮＭＩ，ＳＭＩ＃，ＩＮＩＴはブロックしたままとし、ホルトサイクルがブレークされないようにする。
【００４０】
ホルトサイクルとストップグラントステートは、消費電流という点では同じであり、ともにＣＰＵが停止している状態である。従って、ホルトサイクルをブレークし、その後にストップグラントステート状態に移行させてリフレッシュを行っても意味がない。従って、ＩＳＡコントロールゲートアレイはＳＴＰＣＬＫ＃を出力した後にもしホルトサイクルが発生した場合は、疑似的にストップグラントサイクルが発生したとみなし（ＳＴＰＣＬＫ＃はデアサートしない）、もともと（ストップクロックステート時）サポートしているＨＯＬＤ／ＨＬＤＡ肩代り回路により、ゲートアレイ内部でＨＬＤＡ信号（ホールドアクノリッジ信号）を生成する。リフレッシュ時のホールド延長回路によるホールド要求が切れた段階でＨＬＤＡをデアサートし、かつＩＮＴＲ，ＮＭＩ，ＳＭＩ＃，ＩＮＩＴのブロックを解除するようにする。この場合は、ＣＰＵがホルトステートの時にリフレッシュサイクルを行うことになる。なお、このホールド延長回路によるリフレッシュ時のホールド延長時間はレジスタで指定することによりプログラマブルに設定される。
【００４１】
なお、ＳＴＰＣＬＫ＃アサート後にホルトサイクルが発生した場合に、ブロックしていたＨＯＬＤ信号をＣＰＵへ出力し、通常のＨＯＬＤ／ＨＬＤＡによるリフレッシュに切り替えるようにしてもよい。
【００４２】
次に、ストップクロックリフレッシュ機能について説明する。ストップクロックリフレッシュコントロールレジスタのビットアサインメントとその機能はつぎの通りである。
【００４３】
STOPCLOCK REFERESH CONTROL REG.
bit7: ストップクロックリフレッシュをイネーブル／ディスエーブルする。
【００４４】
０の時、通常のリフレッシュ
１の時、リフレッシュ時にＳＴＰＣＬＫ＃を制御する。
【００４５】
従来のＩＳＡリフレッシュを、ＨＯＬＤ／ＨＬＤＡで制御する代わりにＳＴＰＣＬＫ＃を用いる。ＩＳＡリフレッシュ中はＣＰＵをストップグラントステートにして消費電力を減らす。リフレッシュホールド時間を長く設定すればＣＰＵがストップグラントステートでいる時間も長くなり、より電力消費を抑えることができる。
【００４６】
ＳＴＰＣＬＫ＃を制御するのは、ＩＳＡリフレッシュによるＨＯＬＤ要求が起きたときだけである。ＤＭＡ／マスタによるＨＯＬＤ要求では、ＳＴＰＣＬＫ＃＝ＬＯＷにならない。
【００４７】
ストップクロックリフレッシュがイネーブルであったとき、ＩＳＡリフレッシュによるＨＯＬＤはＣＰＵに伝えない。ゲートアレイの中でＨＬＤＡの肩代りを行う。
【００４８】
ＩＳＡリフレッシュによるストップグラントステートはＳＭＩ，ＮＭＩ，ＩＮＴＲ、ＩＮＩＴ，ＳＲＥＳＥＴによってブレークされない。ＩＳＡリフレッシュによるストップグラントステート中はＳＭＩ，ＮＭＩ，ＩＮＴＲ，ＳＲＥＳＥＴがブロックされ、ストップグラント終了後、最初のＡＤＳ＃の立ち上がりで出し直される。
【００４９】
ＣＰＵではグラントステート中もＳＭＩ，ＮＭＩ，ＩＮＴＲ，ＩＮＩＴをブロックしない。
【００５０】
bit6-1:Not used
ＩＳＡリフレッシュによるＳＴＰＣＬＫ＃はＳＲＥＳＥＴと調停する。ＩＳＡリフレッシュによってＳＴＰＣＬＫ＃＝ＬＯＷとなっている間、ＳＲＥＳＥＴ要求はブロックされ、ＳＴＰＣＬＫ＃＝ＨＩＧＨになったときＳＲＥＳＥＴを出し直す。（ＡＤＳ＃を待たない）ＳＲＥＳＥＴ中はＩＳＡリフレッシュによるＨＯＬＤ要求があってもＳＴＰＣＬＫ＃をＬＯＷにアサートしない。リフレッシュによるＨＯＬＤ要求があった場合、これをブロックせずＣＰＵへ素通しする。ＣＰＵはＳＲＥＳＥＴ中でもＨＯＬＤを受け付ける。
【００５１】
ストップクロック機能と、ストップクロックリフレッシュ機能を同時にイネーブルしてよい。ＨＡＬＴストップクロックまたはレジスタリードストップクロックでＳＴＰＣＬＫ＃＝ＬＯＷであったとき、ＩＳＡリフレッシュによるＨＯＬＤ中はブレークイベントがマスクされる。（この時ＨＯＬＤ／ＨＬＤＡ処理はゲートアレイが肩代りしてＨＯＬＤはＣＰＵへ伝えない）リフレッシュ終了後にマスクが解除され、ブレークイベント（ＩＮＴＲ，ＮＭＩ，ＳＭＩ，ＩＮＩＴ，ＳＲＥＳＥＴ）を受け付ける。
【００５２】
図９はストップクロックリフレッシュタイミングを示すタイミングチャートである。図９（ｄ）のホールドリクエスト信号（ＨＤＲＱ）が出力されると、同図（ｃ）に示すようにホールドリクエスト信号がアクティブリフレッシュによるものであることを示す信号（ＲＦＳＴＳ）が出力される。この結果、同図（ｂ）に示すストップクロック信号（ＳＴＰＣＬＫ＃）がアサートされる。この結果、同図（ｊ）に示すようにＣＰＵ１はストップグラントステートになり同図（ｈ）に示すようにストップグラントサイクルの開始を示すＡＤＳ＃信号が出力される。なお同図（ｅ）に示すようにＳＴＰＣＬＫ＃がアサートされてもＨＯＬＤ信号をＣＰＵに出さず、ＨＯＬＤ／ＨＬＤＡ肩代り回路による同図（ｇ）に示すホールドアクノリッジ信号（ＣＧＨＬＤＡＺ）を出力する。
【００５３】
なお、ＨＯＬＤ／ＨＬＤＡ肩代り回路は図１４に示すように、今、タイマから割り込み信号に応答してリフレッシュ制御回路がＨＯＬＤ／ＨＬＤＡ肩代り回路にＨＯＬＤ要求を出したとする。このとき、もしＣＰＵがクロック切り替え直後だとすると、ＣＰＵの仕様により内部ＰＬＬが安定するまでに１ｍｓの時間がかかるため、この間ＣＰＵは動作しない。一方、ＤＲＡＭリフレッシュは１５μＳ置きに行わなければならないので、ＤＲＡＭリフレッシュは行うことができない。このため、ＨＯＬＤ／ＨＬＤＡ肩代り回路があたかもＣＰＵがＨＯＬＤ要求を受け付けたかのごとくにＨＬＤＡ信号を出力する。
【００５４】
そして、同図（ｋ）に示すようにリフレッシュモードを示す信号（ＲＦＭＤ３）が出力されリフレッシュサイクルが実行される。図１０はＳＴＰＣＬＫ＃をアサートするときに、すでに割り込みがあった場合におけるストップクロックリフレッシュと割り込みとの関係を示すタイミングチャートである。
【００５５】
同図（ｅ）に示すようにホールドリクエスト信号（ＨＤＲＱ）が出力され、同図（ｄ）に示すように割り込み要求（ＩＮＴＲ）がでているのでＳＴＰＣＬＫ＃はアサートされず、同図（ｆ）に示すようにＨＯＬＤ信号がＣＰＵ１に出力される。個の結果、同図（ｇ）に示すようにＣＰＵ１はホールド状態となり、通常のリフレッシュサイクルが実行される。
【００５６】
図１１はＣＰＵが８０４８６の場合に、ＳＴＰＣＬＫ＃をアサートした後に割り込みがでた場合の各種信号のタイミングを示すタイミングチャートである。図１１（ｆ）に示すようにホールドリクエスト信号（ＨＤＲＱ）が出力され、同図（ｅ）に示すようにホールドリクエスト信号がアクティブリフレッシュによるものであることを示す信号（ＲＦＳＴＳ）が出力される。この結果、同図（ｄ）に示すように割り込み要因が発生した場合、ブロックされＣＰＵ１には出力されない。その間同図（ｈ）に示すようにＣＰＵ１はストップグラントステートになり、同図（ｉ）に示すようにリフレッシュサイクルが実行される。その後同図（ｃ）に示すように図示しない。ＡＤＳ＃の出力でＩＮＴＲ０のブロック（阻止）が解除される。
【００５７】
図１２はＣＰＵがＰｅｎｔｉｕｍの場合に、ＳＴＰＣＬＫ＃をアサートした後に、割り込みがでた場合の各種信号のタイミングを示すタイミングチャートである。
【００５８】
図１２（ｆ）に示すようにホールドリクエスト信号（ＨＤＲＱ）がでて同図（ｅ）に示すアクティブリフレッシュ信号（ＲＦＳＴＳ）が出力されると同図（ｄ）に示すようにＳＴＰＣＬＫ＃がアサートされる。この後同図（ｂ）に示す割り込み信号（ＩＮＴＲ）が出力されると、ＩＳＡコントロールゲートアレイ１１はこの信号をブロックせずに、同図（ｃ）に示すようにスルーでＣＰＵ１に出力する。そして同図（ｈ）に示すようにＣＰＵ１はストップグラントステートとなり、同図（ｉ）に示すようにリフレッシュモードを示す信号（ＲＦＭＤ３）が出力されリフレッシュサイクルが実行される。
【００５９】
図１３はＨＡＬＴが来たときのストップクロックリフレッシュとＨＡＬＴとの関係を示すタイミングチャートである。ＣＰＵがＰｅｎｔｉｕｍのとき、ＨＡＬＴステートからストップグラントに入れない仕様になっている。もし、ＳＴＰＣＬＫ＃をアサートした後にＨＡＬＴサイクルが来た場合、ＣＰＵはＨＡＬＴステートのまま止まる。８０４８６ではＨＡＬＴステートからストップグラントサイクルが起きるので問題ないが、ＰｅｎｔｉｕｍではＨＡＬＴステートを抜けなければグラントサイクルは起きない。ＨＡＬＴステートを抜けるには割り込み（ＩＮＴＲ，ＮＭＩ，ＳＭＩ＃）が必要なため、ストップグラント中も割り込みスルーとする必要がある。図１３（ｂ）に示すようにＳＴＰＣＬＫ＃がアサートされた後にＨＡＬＴが来たら同図（ｈ）に示すようにＣＰＵ１はＨＡＬＴステートに留まる。そしてＩＳＡコントロールゲートアレイ１１はＳＴＰＣＬＫ＃をアサートしたまま同図（ｅ）に示すＨＯＬＤ信号をＣＰＵ１に出力する。ＣＰＵ１は同図（ｈ）に示すようにホールドアクノリッジ信号（ＨＬＤＡ）を出力し、同図（ｉ）に示すようにリフレッシュサイクルを実行する。その後同図（ｊ）に示すように割り込み信号（ＩＮＴＲ）を発生し同図（ｈ）に示すようにＣＰＵ１はＨＡＬＴステートを抜けストップグラントステートに入る。ＣＰＵ１がストップグラントステートサイクルを完了すると同図（ｂ）に示すようにＩＳＡコントロールゲートアレイ１１はＳＴＰＣＬＫ＃をデアサートする。
【００６０】
図２に示すストップクロック調停回路４１の機能は次の通りである。
【００６１】
ＳＭＩ＃要求、ＩＮＩＴ（ＳＲＥＳＥＴ）要求、ＮＭＩ要求、ＩＮＴＲ要求、ＳＴＰＣＬＫ要求、ＨＯＬＤ要求の調停を行う。なお、ＣＰＵとしてＰｅｎｔｉｕｍ相当を対象とする場合を「Ｐ５４モード」、ＳＬエンハンスト４８６相当を対象とする場合を「Ｅ４８６モード」と呼んで制御を区別する。
【００６２】
１．優先順位 （Ａ＞ＢはＢよりもＡの方が優先度が高いことを示す）
複数の要求が重なった場合の優先度を以下の様に決める。
【００６３】
ＳＭＩ＃＞ＩＮＩＴ（ＳＲＥＳＥＴ）＞ＳＴＰＣＬＫ＃
ＮＭＩ，ＩＮＴＲ＞ＳＴＰＣＬＫ＃
ＳＭＩ，ＩＮＩＴ（ＳＲＥＳＥＴ）と、ＮＭＩ、ＩＮＴＲ間には順位付けを行わない。
【００６４】
互いに相手の影響を受けることはない。ＳＴＰＣＬＫ＃は複数の要因により発生する。以下の６要因がある。
【００６５】
１）クロックチェンジによる要求
２）Ｉ／Ｏリードによるクロック停止要求
３）Ｉ／Ｏリードによるストップグラント要求
４）ＨＡＬＴによるクロック停止要求
５）インターバルストップグラント要求
６）リフレッシュストップグラント要求これら、６要因についても優先度を決める。
【００６６】
クロックチェンジ＞Ｉ／Ｏリードクロック停止＞Ｉ／Ｏリードグラント＞ＨＡＬＴクロック停止＞インターバルグラント＞リフレッシュグラントＰ５４ＣモードではＣＰＵの仕様によりＨＡＬＴステート状態からストップグラントサイクルは発生しないのでＨＡＬＴによるクロック停止自体をサポートしない。クロックチェンジ、Ｉ／Ｏリードクロック停止、ＨＡＬＴクロック停止、リフレッシュグラントによるＳＴＰＣＬＫ＃要求は、ＨＯＬＤ要求とも調停を行う。
【００６７】
クロックチェンジ＞Ｉ／Ｏリードクロック停止＞ＨＡＬＴクロック停止＞リフレッシュグラント＞ＨＯＬＤ要求Ｉ／Ｏリードによるストップグラント要求、インターバルストップグラント要求とＨＯＬＤ要求間の調停は必要ない。
【００６８】
ＳＴＰＣＬＫ＃要因に対応した制御はＳＴＡＴＥ１からＳＴＡＴＥ６の６状態を制御して行う。
【００６９】
ＳＴＡＴＥ１：ＣＰＵがＳＴＰＣＬＫ＃を受け付けられる状態。
【００７０】
ＳＴＡＴＥ２：いずれかの要因によりＳＴＰＣＬＫ＃がアサートされているが、ストップグラントサイクルが未完了である状態。
【００７１】
ＳＴＡＴＥ３：ストップグラントサイクルが完了した状態。実際には、ストップグラントサイクル完了後、ＳＴＰＣＬＫ＃デアサート可能となる数クロック分の待時間が終了した時点でこの状態となる。ＳＴＡＴＥ３からＳＴＡＴＥ６へ移るケースも有り。
【００７２】
ＳＴＡＴＥ４：肩代り処理 ＡＮＤ／ＯＲ クロック操作処理に割り当てる。
【００７３】
ＳＴＡＴＥ５：ＳＴＡＴＥ４を経て遷移した場合のＳＴＰＣＬＫ＃デアサート処理に割り当てる。
【００７４】
ＳＴＡＴＥ６：ＳＴＰＣＬＫ＃デアサートから次のＳＴＰＣＬＫ＃アサート可までのプリチャージ時間を保つ状態。
【００７５】
（Ｉ）クロックチェンジ 各ＳＴＡＴＥ処理
ＳＴＡＴＥ１…クロックチェンジ要求と他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求、ＨＡＬＴとの調停を行うキャンセル条件は無い。ＳＴＰＣＬＫ＃をアサートする。
【００７６】
ＳＴＡＴＥ２…他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロックを行う。ＨＡＬＴの発生を監視し、検出したならば、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロックを解除する。ストップグラントサイクルの完了によりＳＴＡＴＥ３へ移る。
【００７７】
ＳＴＡＴＥ３…ＨＡＬＴ発生していなければ、ＳＴＡＴＥ４へ移る。ＨＡＬＴが発生していたならば、要求ラッチＦ／Ｆはクリアせずに、ＳＴＰＣＬＫ＃をデアサートする。（同期用Ｆ／Ｆのみクリアする）ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００７８】
ＳＴＡＴＥ４…肩代りＨＬＤＡ処理を行う（ＣＧＨＬＤＡＺをイネーブルにする）。
【００７９】
クロック切り替え処理を行う。クロッック切り替え処理が終了したならば、ＳＴＡＴＥ５へ移る。
【００８０】
ＳＴＡＴＥ５…肩代りＨＬＤＡ処理を行う。肩代りＨＬＤＡが終了したならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００８１】
ＳＴＡＴＥ６…ＨＡＬＴの検出をクリアする。ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロック（阻止）を解除する。ＳＴＰＣＬＫ＃プリチャージが終了したならばＳＴＡＴＥ１へ移る。ＳＴＡＴＥ１へ移ると同時に他のＳＴＰＣＬＫ＃要求のブロックが解除される。
【００８２】
（ＩＩ）Ｉ／Ｏリードクロック停止 各ＳＴＡＴＥ処理
ＳＴＡＴＥ１…Ｉ／Ｏリードクロック停止要求と他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求、ＨＡＬＴとの調停を行う。キャンセル条件は無い。ＳＴＰＣＬＫ＃をアサートする。
【００８３】
ＳＴＡＴＥ２…他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロックを行う。ＨＡＬＴの発生を監視し、検出したならば、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロックを解除する。ストップグラントサイクルの完了によりＳＴＡＴＥ３へ移る。
【００８４】
ＳＴＡＴＥ３…ＨＡＬＴ発生していなければ、ＳＴＡＴＥ４へ移る。ＨＡＬＴ発生していたならば、要求ラッチＦ／Ｆはクリアせずに、ＳＴＰＣＬＫ＃をデアサートする。（同期用Ｆ／Ｆのみクリアする）ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００８５】
ＳＴＡＴＥ４…肩代りＨＬＤＡ開始処理を行う。（ＣＧＨＬＤＡＺをイネーブルにする）クロック停止処理を行う。ブレークイベントの監視を行う。ブレークイベント…ＳＭＩ要求あり、ＩＮＩＴ（ＳＲＥＳＥＴ）要求あり、ＮＭＩ要求ありかつＮＭＩＳＬ＝１、ＩＮＴ要求ありかつＩＮＴＳＬ＝１の４条件。ブレークイベント検出したならば、クロック始動処理を開始する。クロック始動処理を完了したならば、ＳＴＡＴＥ５へ移る。
【００８６】
ＳＴＡＴＥ５：肩代りＨＬＤＡ終了処理を行う。肩代りＨＬＤＡ終了したならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００８７】
ＳＴＡＴＥ６…ＨＡＬＴの検出をクリアする。ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＯＬＤ要求のブロックを解除する。ＳＴＰＣＬＫ＃プリチャージ時間が終了したならばＳＴＡＴＥへ移る。ＳＴＡＴＥ１へ移ると同時に他のＳＴＰＣＬＫ＃要求のブロックが解除される。
【００８８】
（ＩＩＩ）Ｉ／Ｏリードグラント各ＳＴＡＴＥ処理
ＳＴＡＴＥ１…Ｉ／Ｏリードグラント要求と他のＳＴＰＣＬＫ＃要求、ＳＭＩ要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求との調停を行う。キャンセル条件はない。ＳＴＰＣＬＫ＃をアサートする。
【００８９】
ＳＴＡＴＥ２…他のＳＴＰＣＬＫ＃要求のブロックを行う。ストップグラントサイクルの完了によりＳＴＡＴＥ３へ移る。
【００９０】
ＳＴＡＴＥ３…ブレークイベントの監視を行う。ブレークイベント…ＳＭＩ＃要求あり、ＩＮＩＴ（ＳＲＥＳＥＴ）要求あり、ＮＭＩ要求ありかつＮＭＩＳＬ＝１、ＩＮＴ要求ありかつＩＮＴＳＬ＝１の４条件。ブレークイベントを検出したならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００９１】
ＳＴＡＴＥ６…ＳＴＰＣＬＫ＃プリチャージ時間が終了したならばＳＴＡＴＥ１へ移る。ＳＴＡＴＥ１へ移ると同時に他のＳＴＰＣＬＫ＃要求のブロックが解除される。
【００９２】
（ＩＶ）インターバルグラント 各ＳＴＡＴＥ処理
ＳＴＡＴＥ１…インターバルグラント要求と他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求との調停を行う。調停に負けた場合は、インターバルグラント要求をキャンセルする。（要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする）。ＳＴＰＣＬＫ＃をアサートする。
【００９３】
ＳＴＡＴＥ２…他のＳＴＰＣＬＫ＃要求のブロックを行う。ストップグラントサイクルの完了によりＳＴＡＴＥ３へ移る。
【００９４】
ＳＴＡＴＥ３…インターバルブレークイネーブルを発行する。ブレークイベントの監視を行う。ブレークイベント…ＳＭＩ＃要求あり、ＩＮＩＴ（ＳＲＥＳＥＴ）要求あり、ＮＭＩ要求あり、かつＮＭＩＳＬ＝１、ＩＮＴ要求ありかつＩＮＴＳＬ＝１、インターバルストップクロックホールドタイムアウトの５条件。ブレークイベントを検出したならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００９５】
ＳＴＡＴＥ６…インターバルブレークイネーブルを取り消す。ＳＴＰＣＬＫ＃プリチャージ時間が完了したならばＳＴＡＴＥ１へ移る。ＳＴＡＴＥ１へ移ると同時に他のＳＴＰＣＬＫ＃要求のブロックが解除される。
【００９６】
（Ｖ）リフレッシュグラント 各ＳＴＡＴＥ処理
ＳＴＡＴＥ１…リフレッシュグラント要求と他のＳＴＰＣＬＫ＃要求、ＳＭＩ＃要求、ＩＮＩＴ要求、ＮＭＩ／ＩＮＴＲ要求、ＨＡＬＴとの調停を行う。調停に負けた場合は、リフレッシュグラント要求をキャンセルする。（要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする）ＳＴＰＣＬＫ＃をアサートする。
【００９７】
ＳＴＡＴＥ２…他のＳＴＰＣＬＫ＃要求、ＨＯＬＤ要求のブロックを行う。ＨＡＬＴの発生を監視し、検出したならば、ＨＯＬＤ要求のブロックを解除する。ストップブラントサイクルの完了によりＳＴＡＴＥ３へ移る。
【００９８】
ＳＴＡＴＥ３…ＨＡＬＴ発生していなければ、ＳＴＡＴＥ４へ移る。ＨＡＬＴ発生していたならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【００９９】
ＳＴＡＴＥ４…肩代りＨＬＤＡ開始処理を行う。（ＣＧＨＬＤＡＺをイネーブルにする）。ブレークイベントの監視（＝リフレッシュのＨＤＲＱデアサート）を行う。ブレークイベントを検出したならば、ＳＴＡＴＥ５へ移る。
【０１００】
ＳＴＡＴＥ５…肩代りＨＬＤＡ終了処理を行う。肩代りＨＬＤＡ終了したならば、要求ラッチＦ／Ｆと同期用Ｆ／Ｆをクリアする。ＳＴＰＣＬＫ＃デアサートによりＳＴＡＴＥ６へ移る。
【０１０１】
ＳＴＡＴＥ６：ＨＡＬＴの検出をクリアする。ＨＯＬＤ要求のブロックを解除する。ＳＴＰＣＬＫ＃プリチャージ時間が終了したならばＳＴＡＴＥ１へ移る。ＳＴＡＴＥ１へ移ると同時に他のＳＴＰＣＬＫ＃要求のブロックが解除される。
【０１０２】
【発明の効果】
以上述べたごとく、この発明によれば、コンピュータシステムの消費電力を効率良く低減することができる。
【図面の簡単な説明】
【図１】  この発明のストップクロック機能を使用した省エネルギーモード機能を備えたコンピュータシステムの一実施例を示すブロック図。
【図２】  図１に示すＩＳＡコントローラ１１内に設けられた、ストップクロック機能を使用した省エネルギーモード機能を実現するための回路を示す回路図。
【図３】  インターバルストップクロックの基本タイミングを示すタイミングチャート。
【図４】  スナップモードを説明するためのタイミングチャート。
【図５】  インターバルストップクロックを禁止する際のタイミングを示すタイミングチャート。
【図６】  インターバルストップクロックが動作中、ＩＮＴＲ、ＳＭＩ，ＮＭＩ，ＳＲＥＳＥＴ（ＩＮＩＴ）、ＶＲＡＭアクセスがあった場合の処理を示す図。
【図７】  インターバルストップクロックタイミングの詳細タイミングを示すタイミングチャート。
【図８】  途中で他のブレーク要因（ＩＮＴＲ，ＮＭＩ，ＳＭＩ，ＳＲＥＳＥＴ，ＩＮＩＴ）があった場合のインターバルストップクロックのタイミングを示すタイミングチャート。
【図９】  ストップクロックリフレッシュタイミングを示すタイミングチャート。
【図１０】  ＳＴＰＣＬＫ＃をアサートするときに、すでに割り込みがあった場合におけるストップクロックリフレッシュと割り込みとの関係を示すタイミングチャート。
【図１１】  ＣＰＵとして８０４８６を用いた場合において、ＳＴＰＣＬＫ＃をアサートした後に、割り込みがでた場合におけるストップクロックリフレッシュと割り込みとの関係を示すタイミングチャート。
【図１２】  ＣＰＵとしてＰｅｎｔｉｕｍを用い場合において、ＳＴＰＣＬＫ＃をアサートした後に、割り込みがでた場合におけるストップクロックリフレッシュと割り込みとの関係を示すタイミングチャート。
【図１３】  ＣＰＵとしてＰｅｎｔｉｕｍを用いた場合に、ＨＡＬＴが来たときのストップクロックリフレッシュとＨＡＬＴとの関係を示すタイミングチャート。
【図１４】  ＨＯＬＤ／ＨＬＤＡ肩代り回路を説明するための説明図。
【図１５】  リフレッシュサイクルを引き延ばすことによりＣＰＵの動作速度を見かけ上遅らせるための回路例を示す図。
【図１６】  リフレッスサイクルを引き延ばすことによりＣＰＵの動作速度を見かけ上遅らせる際のＨＯＬＤ信号の引き延ばしを説明するための概念図。
【符号の説明】
１…ＣＰＵ、３…ＣＰＵコントロールゲートアレイ、５…ＣＰＵバス、７…メインＤＲＡＭ、９…ＶＬバス、１１…ＩＳＡコントロールゲートアレイ、１３…拡張ＤＲＡＭ、１５…ＶＧＡコントローラ、１７…インターバルストップクロックリクエスト用カウンタ、１９…インターバルストップクロックイネーブルレジスタ、２１…比較回路、２３…インターバルストップクロック信号のホールド期間用カウンタ、２５…インターバルストップクロックホールドレジスタ、２７…ＡＮＤゲート、２９…比較回路、３１…インヒビットタイマ、３３…スナップモード用カウンタ、３７…スナップモード用比較回路、４１…調停回路。
【図１】
0003713488.tif 000004
【図２】
0003713488.tif 000005
【図３】
0003713488.tif 000006
【図４】
0003713488.tif 000007
【図５】
0003713488.tif 000008
【図６】
0003713488.tif 000009
【図７】
0003713488.tif 000010
【図８】
0003713488.tif 000011
【図９】
0003713488.tif 000012
【図１０】
0003713488.tif 000013
【図１１】
0003713488.tif 000014
【図１２】
0003713488.tif 000015
【図１３】
0003713488.tif 000016
【図１４】
0003713488.tif 000017
【図１５】
0003713488.tif 000018
【図１６】
0003713488.tif 000019