(57)【特許請求の範囲】
【請求項１】
コンピュータシステムがリフレッシュカウンタと不動作にする入力を備えるマイクロプロセッサとを含み、
上記リフレッシュカウンタが第１の所定カウント値に達したことを第１のコンパレータによって検出し、
上記マイクロプロセッサを不動作にする入力に結合されている不動作にする信号を上記第１の所定カウント値の上記検出に応答して有効とし、
上記リフレッシュカウンタが第２の所定カウント値に達したことを第２のコンパレータによって検出し、
上記第２の所定カウント値の上記検出に応答して上記不動作にする信号を無効にし、
上記リフレッシュカウンタが第３の所定カウント値に達したことを第３のコンパレータによって検出し、
上記第３の所定カウント値の上記検出に応答してリフレッシュサイクルを起動する各ステップからなる、コンピュータシステムにおいて実効マイクロプロセッサ速度を減少させる方法。
【請求項２】
上記コンピュータシステムが減速カウントレジスタを含み、上記リフレッシュカウンタが第１の所定カウント値に達したことを検出する上記ステップが、上記リフレッシュカウンタを上記減速カウントレジスタと比較するステップを更に備える請求項１の方法。
【請求項３】
個々のマイクロプロセッサの演算速度をシミュレートするための値を上記減速カウントレジスタに設定するステップを更に備える請求項２の方法。
【請求項４】
上記マイクロプロセッサが内部レベル１キャッシュを更に含み、上記マイクロプロセッサを不動作にする信号を有効にする上記ステップの前に上記レベル１キャッシュを不動作にするステップを更に備える請求項１の方法。
【請求項５】
アドレスライン及び制御ラインを有するバスと、
不動作にする入力を有し、上記バスに接続されているマイクロプロセッサと、
上記バスに接続されているメモリサブシステムと、
上記メモリサブシステムを制御するためのメモリコントローラと、
上記メモリコントローラに周期的にリフレッシュ信号を供給し、上記メモリコントローラに上記メモリサブシステムのリフレッシュを開始させる、リフレッシュカウンタと、
上記リフレッシュカウンタに接続されており、上記リフレッシュカウンタが第１の所定カウント値に達したことを検出する、第１のコンパレータと、
上記リフレッシュカウンタに接続されており、上記リフレッシュカウンタが第２の所定カウント値に達したことを検出する、第２のコンパレータと、
上記第１のコンパレータと上記第２のコンパレータと上記マイクロプロセッサを不動作にする回路とに接続されており、上記リフレッシュカウンタが上記第１の所定カウント値に達したことを上記第１のコンパレータが検出することに応答して上記マイクロプロセッサを不動作にする入力への不動作にする信号を有効とし、上記リフレッシュカウンタが上記第２の所定カウント値に達したことを上記第２のコンパレータが検出することに応答して上記不動作にする信号を無効にする、マイクロプロセッサを不動作及び動作可能にする論理と、
上記リフレッシュカウンタに接続されており、上記リフレッシュカウンタがリフレッシュカウント値に達したことを検出することに応答してリフレッシュサイクルを起動しかつ上記リフレッシュカウンタを再ロードする、第３のコンパレータとを備える、マイクロプロセッサ速度制御を有するコンピュータシステム。
【発明の詳細な説明】
【０００１】
本発明はマイクロコンピュータ利用のコンピュータシステムに関する。特に、本発明は、コンピュータシステムのリフレッシュカウンタを利用したマイクロプロセッサ速度の効果的な制御のための方法及び装置に関する。
【０００２】
コンピュータ工業はその開始から事実上無抑制の進展が指数関数的な速度であった。前世代よりも同時によりパワフルで、速く、しかも小形であるパーソナルコンピュータの開発という明確なゴールを達成するために、これらの進展が続いている。
【０００３】
これらの進展は、しかしながら、より旧型で速度の遅いマイクロプロセッサで実行するために開発されたソフトウエアの互換性の問題を生じさせた。これは特に、実効的な速度がマイクロプロセッサの実行速度に依存している初期のコンピュータ及びコンピュータゲームソフトウエアのために開発されたコピー防止機構において明らかである。より新しく、速いマイクロプロセッサで実行するとき、コピー防止機構はしばしばディスクアクセスの作動を完全に妨害し、ゲームソフトウエアが稲妻のような速度で走り、ユーザの使用が全くできなくなる。ある種のネットワークドライバは、マイクロプロセッサ速度の変更により使用不能となることもある。
【０００４】
これらのより新しく、速いマイクロプロセッサの実効速度をプロセッサのクロック速度を変更することなく調整するハードウエアも開発されている。これは、マイクロコンピュータシステム内の１５ミリ秒毎のリフレッシュ要求により起動されてＣＰＵの実行を所定時間幅で定期的に停止させることによりなされている。マイクロプロセッサが停止される時間幅を調整することにより、クロック周波数の変更に関連した問題を生じさせることなく、より新しく、速いマイクロプロセッサを旧型で遅いマイクロプロセッサとして動作させ、実行速度依存のソフトウエアを正しく作動させることが可能となる。この減速は、１９９１年３月２１日出願の「一定プロセッサ速度でのコンピュータシステム速度制御」という名称の米国特許第5,125,088 号、１９９３年２月１８日に許可された「外部アドレス信号を供給する内部キャッシュマイクロプロセッサ減速回路を持つコンピュータシステム」という名称のシリアル番号07/431,648号、及び１９９３年１２月２９日出願の「消費電力を削減したコンピュータシステム速度制御装置」という名称のシリアル番号08/175,145号に更に記載されていて、これらの全部がここで引用により組入れられている。
【０００５】
これらの速度制御の方法は、しかしながら、減速回路を実現するために追加のハードウエアを必要とする。今日の高度に集積されたコンピュータシステムの傾向からすると、部品点数の削減又はこのような回路の簡素化が大いに求められている。
【０００６】
本発明により構成されたマイクロプコンピュータ利用のシステムは、システムクロック周波数を変更することなく、その実効速度を低下させる方法及び装置を含む。この減速は、本発明によるコンピュータシステムにおいて利用されるメモリリフレッシュ回路に近接結合された回路により達成される。
【０００７】
特に、本発明によって構成されたこのシステムは、周期的にゼロまで減数計数してメモリをリフレッシュさせるリフレッシュカウンタを含む。このリフレッシュカウンタは初期カウント値でロードされる。このリフレッシュカウンタの出力は本発明によるコンピュータシステムの減速制御に利用される。このカウンタのカウント値が所定以下になると、マイクロプロセッサはホールト入力またはマイクロプロセッサの減速入力を用いてホールト状態に置かれる。その後このカウンタが第２の所定の閾値以下になると、マイクロプロセッサはこのホールト状態から解除される。
【０００８】
マイクロプロセッサがホールト状態に置かれる閾値を適当に設定することにより、実効的なプロセッサ速度が制御される。概ね、プロセッサは各リフレッシュ期間の一定パーセンテージの間ホールトにされ、マイクロプロセッサの型式とコンピュータシステムの種々の他の面の両方によって、システムの実効速度は十分に古い世代のコンピュータのそれを示すようになされる。
【０００９】
ある種のマイクロプロセッサの入力は、マイクロプロセッサがそのアドレス及びデータバスで通信するのを妨げるが、その内部キャッシュで走るのを妨げられることはない。このようなマイクロプロセッサを使用するとき、内部キャッシュはオフにされている。その後、アドレス及びデータラインのホールト信号がマイクロプロセッサに対し送出されると、そのキャッシュが不動作（disable ）であるからプロセッサは実効的に停止される。
【００１０】
このようにして、リフレッシュカウンタを利用することにより、コンピュータシステムの実効速度はエレガントに継ぎ目なしに制御される。
【００１１】
以下の詳細な説明では、アクティブロウ信号に関する特別な用語を使用している。アスタリスクを伴う信号はアクティブロウ信号である。このような信号が「アサート」される（asserted）と記載されると、これは信号が論理低レベルで、信号に付随する機能を有効（enable）にする。信号が「デアサート」される
（deasserted）と逆が生じる。統一と混乱防止のため、アクティブハイ信号の場合、信号の否定は同様にアスタリスクを信号に付加することにより示され、アクティブロウ信号に対してはこのアスタリスクを除去することにより示される。入力信号が物理的な負論理入力（即ち、アクティブロウ）の場合、それは付けられている。
【００１２】
図面に向けると、図１は本発明によるシステム減速が具体化されているコンピュータシステム１００を示す。このコンピュータシステム１００は、マイクロプロセッサ１０２を含み、これはコントローラ用特化集積回路（ＡＳＩＣ）を介してメインメモリサブシステム１０３及びＰＣＩバス１０４に結合されている。このコントローラＡＳＩＣ１０６は、レベル２（Ｌ２）キャッシュコントローラ１０８、メモリコントローラ１１０、及びＰＣＩコントローラ１１２を含む種々の回路ブロックを含んでいる。これらの論理ブロックは、接合（glue）ロジック１１４並びに制御のデルタ構成（delta configuration ）及びアドレス線により結合されている。このＬ２キャッシュコントローラ１０８は、マイクロプロセッサ１０２をキャッシュ・スタティックラム（ＳＲＡＭ）１１６に直接に接続している。メモリコントローラ１１０は、メインメモリサブシステム１０３を制御する。ＰＣＩコントローラ１１２は、ＰＣＩバス１０４をメインメモリサブシステム１０３及びマイクロプロセッサ１０２の双方に接続する。コントローラＡＳＩＣ１０６内の回路及びコントローラＡＳＩＣ１０６を各デバイスに結合している種々のバスは例示である。実際面では、マイクロプロセッサ１０２、キャッシュＳＲＡＭ１１６、メインメモリサブシステム１０３及びＰＣＩバス１０４間のデータフローの制御を行なう別のチップが含まれるであろう。これらのチップは簡素化のため省略されているが、どんな場合でもコントローラＡＳＩＣ１０６により制御される。コントローラＡＳＩＣ１０６は更に、マイクロプロセッサ１０２、メインメモリサブシステム１０３及びＰＣＩバス１０４間の制御及びアドレス信号を扱う。図１に示すように、キャッシュＳＲＡＭ１１６のコントロール線は、コントローラＡＳＩＣ１０６により直接制御されるが、マイクロプロセッサ１０２は、キャッシュＳＲＡＭ１１６のアドレス及びデータ線に直接接続されている。
【００１３】
ＰＣＩバス１０４には、ＳＣＳＩシステム１１８、ビデオコントローラ１２０及びネットワーク・インターフェイス・コントローラ（ＮＩＣ）１２２が接続されている。これらのデバイスは例示であって、当然広範囲の各種デバイスをＰＣＩバス１０４に接続することができる。ＥＩＳＡバスコントローラ（ＥＢＣ）１２４が、ＥＩＳＡバス１２６をＰＣＩバス１０４に接続する。
【００１４】
図１のコンピュータシステム１００は、単なる例示であって、広範囲な多様な別のコンピュータシステムを本発明によるシステム減速に実施することができる。図１のコンピュータシステムにおいて、好ましくはマイクロプロセッサ１０２はインテルの８０４８６又はペンティアム（商標）プロセッサまたはこれらのファミリーの種々のプロセッサの内の１つであってよい。これは、ここではＡＨＯＬＤとして示されているプロセッサ減速入力を含む必要がある。マイクロプロセッサ１０２は、好ましくはレベル１（Ｌ１）キャッシュ１０３をも含む。プロセッサが例えばペンティアム（商標）であれば、ＡＨＯＬＤ入力は、キャッシュが作動可能（enable）となっていれば、Ｌ１キャッシュ１０３に基づく演算動作を不作動（disable ）にはしない。しかしＬ１キャッシュ１０３が不作動にされている場合には、ＡＨＯＬＤ入力は、それがアサート（assert）されたとき、プロセッサ動作を不作動とする。キャッシュＳＲＡＭ１１６は、直接マップされたＳＲＡＭか又は二方向のセットアソシエイティブ（set associative ）ＳＲＡＭであって、二方向モードで単一または二重バンクされた（dual banked ）ものが可能である。更に、キャッシュＳＲＡＭ１１６は、好ましくはバーストＲＡＭを使用して具体化される。
【００１５】
図２に向くと、接合（glue）論理１１４内に組込まれた回路が、本発明による種々の特徴を具体化したものとして示されている。特に、図２の回路はプロセッサＡＨＯＬＤ入力を形成する。ＡＨＯＬＤはアドレスホールド入力のことであり、８０４８６またはペンティアム（商標）シリーズのプロセッサにおいては、マイクロプロセッサ１０２がその外部処理を行なうのを停止させ、Ｌ１キャッシュ１０３の探索のための外部アドレスを待たせておく。図３に関連して以下に議論するように、減速が作動可能にされると、Ｌ１キャッシュ１０３は作動不可とされ、同時にＡＨＯＬＤ入力を許可して内部処理を不動作とする。Ｌ１キャッシュ１０３を動作不可にしても、何れにしろプロセッサ１０２を減速すること期待しているのであるから、プロセッサ１０２の演算に悪影響が生じることはない。
【００１６】
ＡＨＯＬＤは、本発明による減速構成として利用することができる一例に過ぎない。前に引用により組込まれている特許及び出願において議論されているように、利用できる他の入力は、ＨＯＬＤ入力、ＥＡＤＳ＊入力及びＳＴＰＣＬＫ入力である。ＳＴＰＣＬＫ入力を利用する場合には、ＳＴＰＣＬＫ入力がプロセッサ１０２の全演算を停止させ、外部バス動作だけはそうしないので、Ｌ１キャッシュ１０３を動作不可にする必要はない。マイクロプロセッサ技術に詳しいものであれば、これらの異なる入力を利用することの効果を容易に理解するであろうし、そのような技術のあるものにおいて過大な実験を行なうことなく変更が容易であろう。本発明は、特にホールト入力自体を与えることよりも、そのようなマイクロプロセッサ１０２のホールト入力に与える信号の発生に関係する。
【００１７】
図２において、１０ビットのリフレッシュカウンタ２００が示されている。これはシステムクロック信号ＣＬＫで駆動され、減数モードに設定されている。１０ビットのリフレッシュカウンタ２００は、その入力として８ビットのリフレッシュレートレジスタＲＥＦＲＡＴＥ［７：０］２０１からの入力を含み、このレジスタは、書込み操作を利用してコントローラＡＳＩＣ１０６内の入力／出力アドレスに典型的にセットされる。リフレッシュカウンタ２００のロード入力への真値信号は、リフレッシュカウンタ２００の上位８ビットにＲＥＦＲＡＴＥをロードさせ、その下位２ビットは論理ゼロにロードされる。ロード入力がその後ロー又は偽にされると、クロック入力のシステムクロック信号ＣＬＫが、クロックサイクルごとにリフレッシュカウンタ２００をカウントダウンさせる。こうしてＲＥＦＲＡＴＥ［７：０］に４を掛けた値が、リフレッシュカウンタ２００のゼロまでのカウントダウンまでに何クロックサイクル経過するかを決定する。
【００１８】
リフレッシュカウンタ２００は、出力としてリフレッシュカウントの信号ＲＦＳＨＣＮＴＲ［９：０］のグループを与える。これらの信号は、コンパレータ２０２に与えられ、ＲＦＳＨＣＮＴＲ［９：］がゼロに達したとき、コンパレータ２０２は真出力を与える。このコンパレータ２０２の出力は、２つの機能をなす。第１は、真のとき、この出力はメモリコントローラ１１０内の図示しないリフレッシュ論理に命令してメインメモリサブシステム１０３にメモリリフレッシュサイクルを通知する。第２に、コンパレータ２０２の出力は、リフレッシュカウンタ２００のロード入力を真にし、｛ＲＥＦＲＡＴＥ［７：０］｝をリフレッシュカウンタ２００にロードさせる。
【００１９】
リフレッシュカウンタ２００及びコンパレータ２０２は、こうして結合し、クロック速度とＲＥＦＲＡＴＥによって決定された周期的出力を発生する。この出力は、メモリコントローラ１１０をしてメインメモリサブシステム１０３を周期的にリフレッシュさせる。ＣＬＫが５０ＭＨｚの信号であれば、ＲＥＦＲＡＴＥは約１８８であり、好ましいリフレッシュレートである１５マイクロ秒毎にメモリをリフレッシュさせる。
【００２０】
本発明によると、リフレッシュカウンタ２００の出力は、マイクロプロセッサ１０２のＡＨＯＬＤ入力に供給される信号ＰＡＨＯＬＤをアサートまたはデアサートにするためにも使用される。作動コンパレータ２０４が、ＲＦＳＨＣＮＴＲ［９：２］と、コントローラＡＳＩＣ１０６の標準入力／出力動作を利用してセットされた減速カウントレジスタ２０５のＳＬＯＷＨＣＮＴ［７：０］とを比較する。ＲＦＳＨＣＮＴＲ［９：２］がＳＬＯＷＨＣＮＴ［７：０］と等しくなると、コンパレータ２０４は、減速可出力信号ＳＬＯＷＨＯＮ真を供給する。
【００２１】
同様にして、作動解除コンパレータ２０６がＲＥＳＨＣＮＴＲ［９：２］を入力として受け、ＲＦＳＨＣＮＴＲ［９：２］がゼロになったとき、作動解除コンパレータ２０６は、減速解除出力信号ＳＬＯＷＨＯＦＦ真を供給する。
【００２２】
ＳＬＯＷＨＯＮはＤ型フリップフロップ２０８のセット入力として供給され、一方ＳＬＯＷＨＯＦＦはクリア入力として供給される。このフリップフロップ２０８は、ＣＬＫによりクロックされていて、そのＤ入力がＱ出力に結合され、セット及びクリア入力が同期化されている。フリップフロップ２０８のＱ出力は、信号ＳＬＯＷＨ＿ＰＡＨＯＬＤを与え、これはＯＲゲート２１０の入力として供給され、ここでＯＲゲート２１０入力信号ＰＡＨＯＬＤ＿ＯＴＨＥＲで示されている別のＰＡＨＯＬＤ論理と組み合わされる。ＯＲゲート２１０の出力は、次にＤ型フリップフロップ２１２を用いてクロックに同期化され、ＰＡＨＯＬＤとして与えられる。
【００２３】
システム設計者は、ＳＬＯＷＨＣＮＴ［７：０］を適当な値に設定し、実効システム速度を所望どおりに減少させる。減速回路を全体的に不動作にするためには、システム設計者は、ＳＬＯＷＨＣＮＴ［７：０］をＲＥＦＲＡＴＥ［７：０］よりも大きい値に設定する。すると作動解除コンパレータ２０４がＳＬＯＨＯＮ真を与えることはなく、ＳＬＯＷＨ＿ＰＡＨＯＬＤは偽のままである。
【００２４】
実効プロセッサ速度は単にクロック速度の関数ではないので、システム設計者は、或る種の他の旧世代のプロセッサ模擬するためにＳＬＯＷＨＣＮＴ［７：０］の適当な値を経験的に決定しなければならない。例えば、５０ＭＨｚで動作しているペンティアムプロセッサは、１０ＭＨｚで動作している８０２８６プロセッサの単純に５倍の速度で動作するわけではない。何故なら、ペンティアムは命令実効時の効率がよりよく、１０ＭＨｚの８０２８６と同じクロック速度で動作した場合でも、効果的により速く走る。このためシステム設計者は、旧世代プロセッサを模擬するためにＳＬＯＷ＿ＰＡＨＯＬＤがアサートされるべき適当なデューティサイクルを経験的に決定しなければならない。
【００２５】
実際のデューティサイクルは、式（ＲＥＦＲＡＴＥ―ＳＬＯＷＨＣＮＴ）／（ＲＥＦＲＡＴＥ）で与えられる。例えば、ＲＥＦＲＡＴＥが２００で、ＳＬＯＷＨＣＮＴが１９０であれば、ＳＬＯＷＨ＿ＰＡＨＯＬＤは時間の約９５％がアサートされていて、プロセッサは通常の速度の約５％で走ることになる。互換性の目的で利用しない場合でも、ＰＡＨＯＬＤがＳＴＰＣＬＫ入力に代りとして与えられれば、電力節約になる。
【００２６】
この回路は専用カウンタの必要をなくすが、その代わり単に二つのコンパレータとフリップフロップを必要とする。従来のプロセッサ速度低減回路と比較すると、この優雅で効率的な回路は、部品点数を大いに削減して同等な機能を与える。
【００２７】
図３に向うと、ＳＥＴＳＰＥＥＤルーチン３００のフローチャート説明が示されている。ＳＥＴＳＰＥＥＤ３００は、マイクロプロセッサ１０２の実効速度の変更が必要になると呼出される。例えば、起動時に、コンピュータシステム１００はＳＥＴＳＰＥＥＤ３００を呼出してマイクロプロセッサ１０２の実効速度をセットし、ネットワークドライバが正しく作動するようにする。ステップ３０２から開始し、マイクロプロセッサ１０２の減速モードが要求されているか否かが調べられる。そうであれば、制御はステップ３０４に進み、ここでＳＬＯＷＣＮＴが図２に関して上述した必要値にセットされる。次に制御はステップ３０６に進み、ここでＬ１キャッシュ１０３が作動可（enable）とされていたならば作動不可（disable ）とされる。これでマイクロプロセッサ１０２は、ＡＨＯＬＤがアサートされたときでさえも、そのＬ１キャッシュ１０３により内部的に演算を続けることを妨げられる。次に制御はステップ３０８に進み、ＳＥＴＳＰＥＥＤ３００は、それを呼出しているどんなルーチンからでも復帰する。
【００２８】
ステップ３０２で減速モードがオンでないと決定された場合には、制御は代りにステップ３１０に進み、必要とされたならＬ１キャッシュ１０３がオンにされる。マイクロプロセッサ１０２が実効的に減速モードで動作していない場合であってもＬ１キャッシュ１０３をオンにさせない必要が生じる場合がある。何れにしろ、ステップ３０６において任意にオフにされるよりはむしろＬ１キャッシュ１０３は他のシステムパラメータにより要求されたとおりにセットされる。
【００２９】
ステップ３１０からステップ３１２に進み、ＳＬＯＷＣＮＴが次に全て“１”にセットされる。前に図２に関連して検討したように、これはＳＬＯＷＨＰＡＨＯＬＤがアサートされるのを防ぐ。これは次には減速モードを不作動にする。制御は次にステップ３０８に進み、ＳＥＴＳＰＥＥＤルーチンはそれを呼出しているルーチンに復帰する。
【００３０】
こうして減速モードで動作しているときには、Ｌ１キャッシュ１０３は不動作にされ、ＳＬＯＷＣＮＴは適当な値にセットされる。通常のモードで動作しているときには、Ｌ１キャッシュ１０３は必ずしも不動作にはされないが、他のシステムパラメータに応じてセットされ、ＳＬＯＷＣＮＴは、減速回路によりマイクロプロセッサ１０２のＡＨＯＬＤ入力のアサートを阻止する値にセットされる。
【００３１】
以上の発明の開示及び記述は例示であり、その説明のためであり、サイズ、形、材料、部品、回路素子、配線接続及び接触において並びに例示回路の詳細、構成、及び動作方式において、種々の変更が発明の精神を逸脱することなく可能である。
【図面の簡単な説明】
以下の図面に関連して好ましい実施例の詳細な説明を考慮すれば本発明の一層の理解が得られるであろう。図面において、
【図１】この発明を組込んでいるコンピュータシステムのブロック図である。
【図２】実効マイクロプロセッサ速度の低減に必要な信号を形成する回路の概略図である。
【図３】実効マイクロプロセッサ速度をセットしそのＬ１キャッシュを動作可能及び不動作にするために使用されるルーチンのフローチャート図である。
【図１】
0003695546.tif 000002
【図２】
0003695546.tif 000003
【図３】
0003695546.tif 000004