(57)【特許請求の範囲】
【請求項１】
フロントサイドバスのデータバス部分からデータを受信するデータセンス増幅器を有するプロセッサにおいて、
アドレスストローブがアサートされることに応じて前記データセンス増幅器をイネーブルにし、
キューは、前記フロントサイドバスでこれから実行されるトランザクションを追跡し、少なくとも前記キューが空になることに応じて前記データセンス増幅器をディセーブルにすることを有する方法。
【請求項２】
フロントサイドバスのデータバス部分からデータを受信するデータセンス増幅器と、前記フロントサイドバスのアドレスバス部分からアドレスを受信するアドレスセンス増幅器とを有するプロセッサにおいて、
要求指示がアサートされることに応じて前記アドレスセンス増幅器をイネーブルにし、
アドレスストローブがアサートされることに応じて前記データセンス増幅器をイネーブルにし、
前記要求指示がアサート停止されることに応じて前記アドレスセンス増幅器をディセーブルにし、
キューは、前記データバスでこれから実行されるトランザクションを追跡し、少なくとも前記キューが空になることに応じて前記データセンス増幅器をディセーブルにすることを有する方法。
【請求項３】
複数のプロセッサとメモリコントローラとを有し、前記複数のプロセッサ及び前記メモリコントローラはフロントサイドバスを通じて結合されるマルチプロセッサコンピュータシステムの一部であるプロセッサにおいて、
前記プロセッサは、前記フロントサイドバスのアドレスバス部分からアドレスを受信するアドレスセンス増幅器を有し、
第１の要求指示が前記プロセッサのうち１つからアサートされることに応じて前記アドレスセンス増幅器をイネーブルにし、
前記第１の要求指示がアサート停止される前に前記メモリコントローラから第２の要求指示がアサートされた場合、前記第１の要求指示がアサート停止された後に前記アドレスセンス増幅器をイネーブルにし続け、
前記第２の要求指示がアサート停止されることに応じて前記アドレスセンス増幅器をディセーブルにすることを有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、2002年12月11日に出願された米国特許出願第10/317,798の一部継続出願である。
【０００２】
本発明の１つ以上の実施例は、概して、集積回路とコンピュータシステム設計とに関するものである。特に、本発明の１つ以上の実施例は、アドレスバス出力制御用の方法及び装置に関するものである。
【背景技術】
【０００３】
一般的に、コンピュータシステム内の装置間の通信は、そのような装置を相互接続する１つ以上のバスを使用して実行される。これらのバスは、２つの装置を結合する専用バスでもよく、複数のユニット及び装置(例えばバスエージェント)により多重化される非専用バスでもよい。更に、コンピュータシステム内のバスは、特定の種類の情報を伝送することに専用でもよい。例えば、CaliforniaのSanta  ClaraのIntel  Corporationにより開発されたx86マイクロプロセッサアーキテクチャは、アドレス信号とデータ信号と制御信号とをそれぞれ伝送するアドレスバスとデータバスと制御バスとを備えた３つのバスシステムを有する。
【０００４】
Pentium（登録商標）Pro、Pentium（登録商標）II、Pentium（登録商標）III又はPentium（登録商標）4のような進歩したアーキテクチャ及びプロセッサを使用したコンピュータシステムにおいて、バスのトランザクションは一般的にパイプライン型に生じる。特に、次のメモリアクセスは、以前のトランザクション要求が出された後に開始してもよく、バストランザクションの全ての構成要素又はフェーズは、他のバストランザクションが始まり得る前に完了する必要はない。従って、複数のバスエージェントからの要求は、常に保留中でもよい。バストランザクションのパイプライン方式は、別々のデータ及びアドレスバスにより促進される。要求のアドレスがアドレスバスで送信されると、アドレスバスで以前に出されたアドレスに対応するデータ(又は信号)がデータバスに戻されてもよい。
【０００５】
コンピュータシステム内のスループットを増加させるために、膨大な研究とシステムアーキテクチャ設計の取り組みが向けられてきた。データパイプライン方式、順序が狂った実行(out-of-order  execution)等のような技術は、かなり高いクロックレート及びワールドクラスの性能を備えた進歩したアーキテクチャ及び処理を可能にする。
【０００６】
更に、この研究及びアーキテクチャ再設計は、ラップトップコンピュータやハンドヘルド装置や携帯情報端末(PDA:personal  digital  assistant)等のモバイル市場を可能にした。残念ながら、このようなモバイルプラットフォームは、他の電源が利用可能でないときに、各モバイルプラットフォームにより使用されるバッテリー寿命により決定される実行時間に限度があることがある。モバイルプラットフォームの複雑性に応じて、付属バッテリーからの電力リソースは比較的短い時間に使い尽くされることがある。部分的には、このことは、プラットフォームの多数の電子要素が使用されていないときでも、電力を消費し続けるという事実に起因する。
【発明を実施するための最良の形態】
【０００７】
本発明の多様な実施例は、添付図面の図において、限定ではなく一例として示されている。
【０００８】
完全な理解を提供するために、以下の説明において、ロジックの実装や、信号及びバスのサイズ及び名前や、システム構成要素の形式及び相互関係や、ロジックの分割／統合の選択肢のような多数の特定の詳細が示されている。しかし、本発明は、そのような特別の詳細なしに実行され得ることが当業者にわかる。その他に、本発明をあいまいにしないように、制御構成及びゲートレベル回路が詳細に示されていない。包含される説明で、過度の実験を行うことなく、当業者は適切な論理回路を実装することが出来るであろう。
【０００９】
図１は、例示的なコンピュータシステムの従来のプロセッサ(CPU)110及びメモリコントローラ(MCH:memory  controller)構成を示した図である。図示のように、CPU110は、プロセッサシステムバス又はフロントサイドバス(FSB:front-side  bus)102のデータ線を介して受信したデータを取得するように動作する入力バッファ112を有してもよい。CPU110の入力バッファ112は、FSB102のデータバス部分を介してCPU110に送信されるセンスデータに結合され得る複数のアドレスバス入力センス増幅器114(114-1,...,114-N)を有する。
【００１０】
CPU110について、データバス入力センス増幅器114は、次のシステム初期化で継続的にイネーブルである。イネーブルの間に、データ入力センス増幅器114は電力を消費する。
【００１１】
次に図２を参照して、一実施例のプロセッサ(CPU)について説明する。図２に示す実施例では、CPU300はモバイルプラットフォームCPUである。他の実施例では、CPU300は、例えばデジタル信号プロセッサ、グラフィックスプロセッサ、内蔵プロセッサ等を含む異なる形式のプロセッサでもよいことがわかる。
【００１２】
図示のように、CPU300は、併せて入力バッファ310として示されている入力バッファを有する。入力バッファ310は、Nのアドレス入力センス増幅器320(320-1,...,320-N)を有する。センス増幅器320は、内部データバス信号線(paddr)322(322-1,...,322-N-1)に結合された出力を有する。入力バッファ310はまた、更なる内部データ線及び／又は制御線に結合されてもよい。一実施例では、センス増幅器320は、フロントサイドバス(FSB)330の複数のアドレス線FSB  A[0..N-1]#に結合された入力を有する。
【００１３】
一実施例では、FSB330は、Pentium（登録商標）4プロセッサのフロントサイドバスプロトコルと互換性があり、その特徴は、2001年11月1日に公開された同時継続のSingh他の米国特許出願第US2001/0037421A1に記載されている。FSBがPentium（登録商標）4プロセッサのフロントサイドバスと互換性がある場合、FSB330は、64のデータ線FSB  D[0..63]を有する。他の実施例では、FSB330は異なるバスプロトコルと互換性があってもよく、及び／又は異なる数のデータ線を有してもよい。
【００１４】
続けて図２を参照すると、一実施例では、入力バッファ310は、バスクロック(BCLK)信号とFSB330に関連するアドレスバス出力制御(BPRI#)信号350とを受信するように結合されたラッチ352を更に有する。一実施例では、BPRI#信号は、例えばFSB330でCPU300に更に結合されたチップセット装置(図示なし)から受信されてもよい。ラッチ352の出力は、アドレス入力センス増幅器320のそれぞれの入力をイネーブルにするように結合される。
【００１５】
動作中に、BCLK信号が変化すると、ラッチ352は、BPRI#信号の状態をラッチする。BPRI#信号がアサートされることに応じて、入力バッファ310のアドレス入力センス増幅器320は、アドレス線FSB  A[0..N-1]#を介してFSB330からアドレスを取得するようにイネーブルになる。逆に、BPRI#信号がアサート停止されることに応じて、入力アドレスセンス増幅器がディセーブルになる。入力センス増幅器がディセーブルになると、その電力消費(主として、入力バッファにより電流提供されるバイアスによる温度浪費出力(TDP:thermal  dissipation  power))が低減される。
【００１６】
図３は、図２のCPU300が有利に使用され得る一実施例の例示的なシステム500のブロック図である。CPU300に加えて、システム500は、一実施例ではメモリコントロールハブ(MCH:memory  control  hub)510と呼ばれるメモリコントローラと、一実施例ではI/Oコントロールハブ(ICH:I/O  control  hub)530と呼ばれる入出力(I/O)コントローラとを有する。MCH510とICH530とを併せてチップセット502と呼ばれることもある。MCH510は、FSB330を介してCPU300に結合され、バス150を介してICH530に結合されている。メインメモリ520と１つ以上のグラフィックス装置550もMCH510に結合されている。MCHは(例えばモバイルアプリケーションでの使用のため)統合グラフィックサポートを有してもよい。
【００１７】
システム500の入出力サブシステムは、ハードディスクドライブ(HDD)210のように、ICH530に結合された多様な異なる形式の入出力装置を有してもよく、１つ以上のUSBポート190は、ユニバーサルシリアルバス(USB)192を介してICH530に結合されてもよく、及び／又は１つ以上の周辺構成要素相互接続(PCI:pheripheral  component  interconnect)装置180は、対応するバス182を介してICHに結合されてもよい。更に、ある実施例では、１つ以上のオーディオチャネル170及び／又はローカルエリアネットワーク(LAN)インタフェース220もまたICH530に結合されてもよい。
【００１８】
多様なプロセッサとフロントサイドバス技術とを備えた実装が可能である。FSB330がP4プロセッサのフロントサイドバスと互換性がある実施例では、FSB330は、アドレス、データ及び制御部分(代替として、アドレス、データ及び制御バスと呼ばれることもある)を有するパイプライン方式データバスである。
【００１９】
ここで、FSB330に結合された装置はまた、FSB330に関するバスエージェントとも呼ばれる。一実施例では、３つの形式のエージェント(要求エージェント、応答エージェント及び検査エージェント(snoop  agent))がFSB330に存在してもよい。要求エージェントは、例えばメモリ又はI/O読み取り若しくは書き込み要求のような要求を出すことによりトランザクションを開始する装置である。応答エージェントは、例えばI/O対象又はメモリ対象のようなトランザクションの対象である。検査エージェントは、一般的にキャッシュメモリに関連するバスの装置である。他の実施例では、バスエージェントは異なるように分類されてもよい。
【００２０】
FSB330がパイプライン式バスの場合、バストランザクションはフェーズに分離されてもよく、複数のトランザクションが重複してもよい。特に、バストランザクションの全ての構成要素又はフェーズは、他のバストランザクションが始まり得る前に完了する必要はない。
【００２１】
ここで使用される“トランザクション”という用語は、単一のバスアクセス要求に関係するバス活動を示している。トランザクションは複数のフェーズを有し、それぞれのフェーズが特定の形式の情報を通信するバス信号の特別のセットに関連してもよい。一実施例では、例示的なフェーズは、例えば、仲裁フェーズ、要求フェーズ、検査フェーズ、応答フェーズ及び／又はデータフェーズを有してもよい。
【００２２】
要求フェーズでは、要求エージェントは、FSB330で要求制御及びアドレス情報を駆動する。その後の検査フェーズの間に、検索後のデータがローカルに格納されているか否か、及び／又は以前に出されたトランザクションに関してトランザクションが適切に完了する可能性があるか否かについて決定する。応答フェーズでは、応答エージェントは、要求トランザクションが成功したか失敗したかを示す情報を要求エージェントに報告する。要求トランザクションがデータ伝送を有する場合、データ伝送フェーズとも呼ばれるデータフェーズが、データレディ(DRDY#)信号のアサートに応じて開始されてもよい。
【００２３】
図３に示すように、一実施例では、前述のBPRI#信号は、FSB330の一部としてMCH510によりアサート及びアサート停止される。一実施例では、MCHは、BPRI#信号のアサート及びアサート停止を行わせるコントローラ512を有する。代替実施例では、コントローラ512は、FSB330に結合された他の装置／エージェントに備えられてもよい。コントローラ512がBPRI#信号のアサート及びアサート停止を行わせる方法については、以下に詳細に説明する。
【００２４】
一実施例において、コントローラ512は、FSB330にアドレス活動が存在しない間にCPU300の入力アドレスセンス増幅器320がディセーブルになり、アドレス伝送動作の前にイネーブルになるように、BPRI#信号のアサート及びアサート停止を行わせる。一実施例では、コントローラは、プロセッサがアドレス情報を取得するときにBPRI#信号を適用する。前記の他の方法では、コントローラ512は、FSB330で提供されるアドレス値を検知したときにCPU300のセンス増幅器320がイネーブルになるように、BPRI#信号のアサートを行わせる。アドレス値がFSB330を通じてプロセッサに伝送され、所定の時間フレーム(例えば所定数のクロック周期)内に入力アドレス値伝送が存在しない場合、コントローラ512は、センス増幅器の電力消費を減少させるために、BPRI#信号のアサート停止を行わせる。
【００２５】
図４は、(例えば図３でも観測されるような)コンピュータシステム内で使用され得る実施例のBPRI#信号を示したタイミング図である。図４のタイミング図は、1)図２の説明に関して前述したバスクロック(BCLK)信号410と、2)コンピュータシステムプロセッサにより制御されるバス要求信号BR[0]#信号420と、3)BPRI#信号350と、4)バスをロックするLOCK#信号430と、5)アドレスストローブ(address  strobe)信号(ADS#)440と、6)アドレスバスに示されるアドレス値の表示とのクロック周期T1-T10を示している。
【００２６】
前述の信号で、信号名の終わりの“#”は、関連する信号がアクティブ・ローの信号(すなわち、ロジック低レベルになるとアサートされると考えられる)であることを示している。同様の機能を提供するために、関連の回路に対応する変更を行い、代わりにアクティブ・ハイの信号が使用されてもよいことがわかる。更に、一実施例では、FSB330信号の１つ以上は、フルスイング(full  swing)より小さい電圧スイングを有する低電圧スイング信号(swing  signal)である。
【００２７】
図４に示す例のトランザクションでは、FSBはアドレス値の伝送についてクロック周期T1で“不活動”であり、その結果、プロセッサのセンス増幅器はディセーブルの低電力消費状態になる。次にT2において、送信バスエージェントのコントローラは、BPRI#信号350のアサートを行わせることにより、FSBでの受信バスエージェントにアドレス値を伝送する処理を開始する。例えば、送信バスエージェントが受信バスエージェントに要求を送信する必要があると認識すると、その処理が開始されてもよい。ここで、アドレスバスにアドレス値を示すことにより、(例えばバスプロトコルの要求フェーズ中に)要求が行われてもよい。一実施例では、送信バスエージェントはMCH(例えば図３のMCH512)であり、受信バスエージェントはプロセッサ(例えば図３のCPU300)である。この場合、MCHがFSBを使用する必要があるときに、MCHがFSBを制御することができるように、MCHは優先エージェント状態を与えられてもよい。
【００２８】
実施例において、送信エージェント(例えば図３のMCH512)は、(例えば要求がバスで送信されることを認識することにより)アドレス値の伝送が実行されることを認識し、その結果、アドレス値が受信エージェントにより受信される十分前にBPRI#信号350のアサートを行わせる(それにより、受信エージェントのセンス増幅器が適切にイネーブルになり、アドレス値を受信する)コントローラ512を有する。ここで、受信バスエージェントはBPRI#信号のアサートを検出し、それに応じてセンス増幅器がイネーブルになる。従って、一般的に、コントローラが出力信号(例えば図４のBPRI#信号)のアサートを行わせ、次に、受信エージェントのセンス増幅器がイネーブルになるように行わせる。
【００２９】
図４の実施例では、受信バスエージェントは、BPRI#信号350がアサートになったクロック周期に続く次のクロック周期で、そのセンス増幅器をイネーブルにし始める。センス増幅器がFSBから適切にアドレス値を受信することを確保するため、全クロック周期が費やされる(クロック周期T3)。すなわち、図４の実施例では、BPRI#信号350は、クロック周期T2とT3との間のクロックエッジで受信バスエージェントによりラッチされる。受信エージェントによるBPRI#信号の検出に応じて、受信エージェントはセンス増幅器をイネーブルにする。センス増幅器は、送信バスエージェントからアドレス値を受信するために十分にイネーブルになるために、次の全クロック周期(クロック周期T3)を与えられる。クロック周期T3に生じるディセーブルからイネーブルへの変化のため、クロック周期T3ではセンス増幅器は“ディセーブル”とみなされる。図４の実施例のクロック周期T4で、送信バスエージェントは、(図４の“ReqA”及び“ReqB”により示されるように)アドレスストローブ信号(ADS#)440のアサートでFSBのアドレス値を示す。
【００３０】
その結果、図４の実施例では、ReqA及びReqBアドレス値は、適切な位置にあるクロックエッジ(例えば、ReqA値をラッチするためのクロック周期T4の間のバスクロック410の立下りと、ReqB値をラッチするためのクロック周期T4とT5との間のバスクロック410の立ち上がり)で、センス増幅器を通じて受信バスエージェントにラッチされる。送信バスエージェントもまた、クロック周期T5の間にアドレスストローブ440をアサート停止し、それにより、クロック周期T4の間に生じたアドレス値伝送から、アドレス値(周期T6の間の“ReqA”及び“ReqB”)の迅速な次の伝送が明らかに表され得る。次に、アドレスストローブ440は、クロック周期T6の間に再アサートされ、次のアドレス値伝送をもたらす。
【００３１】
図４の実施例では、送信エージェントのコントローラ512は、クロック周期T6の間のアドレスストローブ信号440の再アサートで、BPRI#信号350のアサート停止を行わせる。実施例において、送信バスエージェントのコントローラ(例えば図３のコントローラ512のような前述のコントローラ)は、1)アドレス値の“次の”伝送が少なくともある程度の期間(例えばアドレス値の“現在の”伝送(クロック周期T6での“現在の”伝送はReqAとReqBの第２の伝送である)を過ぎて複数のクロック周期)生じないことを認識し、2)その結果、現在のアドレス値の伝送が受信バスエージェントにより認識されたすぐ後にセンス増幅器をディセーブルにするように、BPRI#信号350のアサート停止を行わせる。また、ここで、実施例においてコントローラは要求がFSBで行われる必要があるか否かを監視することにより、“次の”伝送アドレスが生じるか否かを認識する。すなわち、FSBのアドレスバス部分にアドレス値をセットすることにより、要求がバスに示される。
【００３２】
図４の例では、(図４でわかるように、クロック周期T6とT10との間にアドレス値の伝送が生じないため)少なくとも4クロック周期の間にアドレス値の他の伝送が“T6”の伝送に続かないことが、クロック周期T6時点で認識される。その結果、コントローラ512は、クロック周期T6でBPRI#信号のアサート停止を行わせる。他の実施例では、BPRI#信号440のアサート停止を行わせるために、異なる数のクロック周期又は他の指標の時間が使用されてもよいことがわかる。
【００３３】
アドレスバス出力制御方法は、図５に示すフローチャート500に記載されている。処理ブロック502において、送信エージェント(例えばMCH)は、アドレスが受信エージェント(例えばプロセッサ)に伝送されることを検出する。処理ブロック504において、送信エージェントはいつBPRI#信号がアサートされるかを決定する。処理ブロック506において、送信エージェントはBPRI#信号のアサートを行わせ、受信エージェントのセンス増幅器がアドレスを受信することを可能にする。
【００３４】
処理ブロック508において、送信エージェントは、受信エージェントへのアドレス伝送の終了に基づいて、いつBPRI#信号のアサート停止を行わせるかを決定する。処理ブロック510において、送信エージェントは、受信エージェントのアドレス入力センス増幅器をディセーブルにさせるBPRI#信号のアサート停止を行わせる。
【００３５】
図６は、一実施例に従ってアドレスバス出力制御信号BPRI#のアサート停止を行わせる更なる技術を示したフローチャート600を示している。処理ブロック602において、送信エージェントは、更なるアドレス(現在のアドレスに関して更なるアドレスは受信エージェントに伝送される)が受信エージェントに送信されるか否かを決定する。そのような更なるアドレスが検出されない場合、処理ブロック608において、現在のアドレス伝送の終了に続いてアドレスバス出力制御信号BPRI#がアサート停止になり、受信エージェントのアドレス入力センス増幅器をディセーブルにする。
【００３６】
一方、更なるアドレスが受信エージェントに伝送されることを送信エージェントが検出すると、処理ブロック604において、所定のクロック周期内に更なるアドレスが受信エージェントに送信されるか否かを送信エージェントが決定する。更なるアドレスが所定のクロック周期を超えて伝送される場合、処理ブロック608において、現在のアドレス伝送の終了に続いてアドレスバス出力制御信号BPRI#がアサート停止になり、受信エージェントのアドレス入力センス増幅器をディセーブルにする。
【００３７】
所定のクロック周期内に更なるアドレスが伝送される場合、処理ブロック606において、送信エージェントは、アドレスバス出力制御信号BPRI#のアサート停止を遅延させ、アドレス入力センス増幅器がイネーブルになり続けるようにする。処理ブロック608において、送信エージェントはBPRI#信号をアサート停止し、更なるアドレス伝送の終了に続いて受信エージェントのアドレスセンス増幅器をディセーブルにし、受信エージェントのアドレス入力センス増幅器をディセーブルにする。
【００３８】
データバス出力制御の方法は、図７に示すフォローチャート700に記載されている。処理ブロック702において、受信エージェント(例えばCPU)は、別のエージェントからアドレスを受信する。処理ブロック704において、アドレスを受信する前に、受信エージェントはBPRI#信号のアサートを検出し、アドレスを受信するために受信エージェントのアドレス入力センス増幅器をイネーブルにさせる。処理ブロック706において、受信エージェントはアドレスを受信する。処理ブロック708において、受信エージェントはBPRI#信号のアサート停止を検出し、受信エージェントのアドレス入力センス増幅器のディセーブルを行わせ、電力消費を低減する。
【００３９】
図８は、開示された技術を使用して設計のシミュレーション、エミュレーション及び構成用の多様な設計表現又はフォーマットを示したブロック図である。設計を表すデータは、多数の方法で設計を表してもよい。まず、シミュレーションで有用なように、ハードウェアは、設計されたハードウェアが実行すると予期される方法のコンピュータモデルを本質的に提供するハードウェア記述言語又は他の機能記述言語を用いて表されてもよい。ハードウェアモデル810は、コンピュータメモリのような記憶媒体800に格納されてもよく、それにより、実際に意図した通り機能するか否かを決定するためにハードウェアモデルに特定のテスト一式830を適用するシミュレーションソフトウェア820を使用して、モデルがシミュレーションされてもよい。ある実施例では、シミュレーションソフトウェアは媒体に記録、取得又は包含されない。
【００４０】
更に、ロジック及び／又はトランジスタゲートを備えた回路レベルのモデルが、設計過程のある段階で作られてもよい。そのモデルは、プログラム可能ロジックを使用したモデルを形成する専用ハードウェアシミュレータにより、何度か同様にシミュレーションされてもよい。ある程度のこの形式のシミュレーションは、更にエミュレーション技術でもよい。いずれの場合でも、再構成可能ハードウェアは、開示された技術を使用したモデルを格納した機械読取可能媒体を含み得る他の実施例である。
【００４１】
更に、ある段階でのほとんどの設計は、ハードウェアモデルの多様な装置の物理配置を表すデータのレベルに到達する。従来の半導体構成技術が使用される場合、ハードウェアモデルを表すデータは、集積回路を作るために使用される異なるマスクレイヤ又はマスクの多様な機能の存在又は欠如を特定するデータでもよい。また、集積回路を表すこのデータは、回路ロジック及びデータが技術を実行するためにシミュレーション又は構成され得る点で開示された技術を具体化する。
【００４２】
設計の如何なる表示において、データは如何なる形式の機械読取可能媒体に格納されてもよい。そのような情報を伝送するために変調又は生成された光波又は電波860、メモリ850又はディスクのような磁気若しくは光記憶装置840は、機械読取可能媒体でもよい。これらの媒体の如何なるものも設計情報を運んでもよい。このように、“運ぶ”(例えば機械読取可能媒体が情報を運ぶ)という用語は、記憶装置に格納された情報又は符号化若しくは搬送波に変調された情報をカバーする。設計又は特定の設計を記述するビットのセットは、(搬送波又は記憶媒体のような機械読取可能媒体に具体化されると)それ自体閉じ込められたものであり、また、更なる設計又は構成のため他人により使用されるものである。
【００４３】
［代替実施例］
他の実施例では、異なるシステム構成が使用されてもよいことがわかる。例えば、システム500は単一のCPU300を有するが、他の実施例では(１つ以上のプロセッサが前述のCPU300の構成及び動作と類似し得る)マルチプロセッサシステムが多様な実施例のアドレスバス出力制御手法から恩恵を受けてもよい。例えば、サーバ、ワークステーション、デスクトップコンピュータシステム、ゲームシステム、内蔵コンピュータシステム、ブレードサーバ等のような異なる形式のシステム又は異なる形式のコンピュータシステムが、他の実施例で使用されてもよい。
【００４４】
例示的な実施例を開示したが、特許請求の範囲に定められる本発明の実施例の範囲内にとどまりながら、開示された実施例に変更及び変形が行われ得る。
【００４５】
［下位互換の節電バス設計］
図９は、中央処理ユニット(CPU)901が使用され得る例示的な単一プロセッサコンピュータシステム900のブロック図である。CPU901に加えて、システム900は、一実施例ではメモリコントロールハブ(MCH:memory  control  hub)910と呼ばれるメモリコントローラと、一実施例ではI/Oコントロールハブ(ICH:I/O  control  hub)930と呼ばれる入出力(I/O)コントローラとを有する。複数の半導体チップとして実装されると、MCH910とICH930とを併せてチップセット902と呼ばれることもある。MCH910は、フロントサイドバス(FSB)931を介してCPU901に結合され、バス950を介してICH930に結合されている。メインメモリ920と１つ以上のグラフィックス装置940もMCH910に結合されている。
【００４６】
システム900のI/Oサブシステムは、ハードディスクドライブ(HDD)911のように、ICH930に結合された多様な異なる形式の入出力装置を有してもよく、１つ以上のUSBポート912は、ユニバーサルシリアルバス(USB)913を介してICH930に結合されてもよく、及び／又は１つ以上の周辺構成要素相互接続(PCI)装置914は、対応するPCIバス915を介してICHに結合されてもよい。更に、ある実施例では、１つ以上のオーディオチャネル916及び／又はローカルエリアネットワーク(LAN)インタフェース917もまたICH930に結合されてもよい。少なくとも１つの実施例では、FSB931はIntel社からのP4プロセッサのフロントサイドバスと互換性がある点に留意すべきである。
【００４７】
ここで、FSB931に結合された装置はまた、FSB931に関するバスエージェントとも呼ばれる。一実施例では、３つの形式のエージェント(要求エージェント、応答エージェント及び検査エージェント(snoop  agent))がFSB931に存在してもよい。要求エージェントは、例えばメモリ又はI/O読み取り若しくは書き込み要求のような要求を出すことによりトランザクションを開始する装置である。応答エージェントは、例えばI/O対象又はメモリ対象のようなトランザクションの対象である。検査エージェントは、一般的にキャッシュメモリに関連するバスの装置である。他の実施例では、バスエージェントは異なるように分類されてもよい。
【００４８】
FSB931がパイプライン式バスの場合、バストランザクションはフェーズに分離されてもよく、複数のトランザクションが重複してもよい。特に、バストランザクションの全ての構成要素又はフェーズは、他のバストランザクションが始まり得る前に完了する必要はない。
【００４９】
ここで使用される“トランザクション”という用語は、単一のバスアクセス要求に関係するバス活動を示している。トランザクションは複数のフェーズを有し、それぞれのフェーズが特定の形式の情報を通信するバス信号の特別のセットに関連してもよい。一実施例では、例示的なフェーズは、例えば、仲裁フェーズ、要求フェーズ、検査フェーズ、応答フェーズ及び／又はデータフェーズを有してもよい。
【００５０】
要求フェーズでは、要求エージェントは、FSB931で要求制御及びアドレス情報を駆動する。その後の検査フェーズの間に、検索後のデータがローカルに格納されているか否か、及び／又は以前に出されたトランザクションに関してトランザクションが適切に完了する可能性があるか否かについて決定する。応答フェーズでは、応答エージェントは、要求トランザクションが成功したか失敗したかを示す情報を要求エージェントに報告する。要求トランザクションがデータ伝送を有する場合、データ伝送フェーズとも呼ばれるデータフェーズが、データレディ(DRDY#)信号のアサートに応じて開始されてもよい。
【００５１】
以下に詳細に説明するように、要求信号は、FSB931を使用するためにMCH910によりアサートされてもよい。しばしば、メモリ920が全体としてのコンピュータシステムの全効率の必要の重要性のため、MCH910はFSB931に対して“優先”エージェントと呼ばれる。従って、多様な実施例では、MCH910がFSB931でアサートする前述の要求信号は、“バス優先エージェント要求指示”(BPRI:Bus  Priority  agent  Request  Indication)と呼ばれる。MCH910がFSB931を使用しようとする場合、MCHはBPRI#信号をアサートし、MCH510がFSB931をもはや使用しようとしない場合、MCHはBPRI#信号をアサート停止する(#はアクティブ・ローの信号を示すことに留意すべきである)。MCHは、BPRI#信号のアサート及びアサート停止を制御するコントローラ918(又は制御ロジック918)を有する。
【００５２】
一実施例において、コントローラ918は、MCH910によりFSB931で提供されたアドレス値を検知するときにCPU901内のセンス増幅器がイネーブルになるように、BPRI#信号のアサートを行わせる。アドレス値がFSB931を通じてプロセッサ901に伝送され、所定の時間フレーム(例えば所定数のクロック周期)内に入力アドレス値伝送が存在しない場合、コントローラ918は、センス増幅器の電力消費を減少させるために、BPRI#信号のアサート停止を行わせる。
【００５３】
次に図１０を参照してCPU1001について説明する。図10のCPU1001は、図９を参照して前述したCPU901の実施例に対応するものと考えてもよい。図示のように、CPU1001は、併せて入力バッファ1010として示されている入力バッファを有する。図１０の入力バッファの実施例1010は、(N-1)-3のアドレス入力センス増幅器1020(1020-3,...,1020-(N-1))を有する。センス増幅器1020は、内部データバス信号線(paddr)1022(1022-3,...,1022-(N-1))に結合された出力を有する。入力バッファ1010はまた、更なる内部データ線及び／又は制御線に結合されてもよい。一実施例では、センス増幅器1020は、フロントサイドバス(FSB)1031の複数のアドレス線FSB  A[3..N-1]#に結合された入力を有する。図１０のFSBアドレスバス1031(以下、FSB1031と呼ぶ)は、例えば図９のFSB931のアドレス部分に対応するものとして考えてもよい。
【００５４】
少なくとも一実施例では、FSB1031は、Intel  Pentium（登録商標）4プロセッサ(P4)のフロントサイドバスプロトコルと互換性がある。他の実施例では、FSB1031は異なるバスプロトコルと互換性があってもよいことがわかる。図１０の入力バッファ1010の実施例は、バスクロック(BCLK)信号とFSB1031に関連する前述のBPRI#信号1050とを受信するように構成されたラッチ1052を更に有する。ラッチ1052の出力は、アドレス入力センス増幅器1020のそれぞれの入力をイネーブルにするように結合される。
【００５５】
動作中に、BCLK信号が変化すると、ラッチ1052は、BPRI#信号の状態をラッチする。BPRI#信号がアサートされることに応じて、入力バッファ1010のアドレス入力センス増幅器1020は、アドレス線FSB  A[3..N-1]#を介してFSB1031からアドレスを取得するようにイネーブルになる。逆に、BPRI#信号がアサート停止されることに応じて、入力アドレスセンス増幅器がディセーブルになる。入力センス増幅器がディセーブルになると、その電力消費(例えば、バイアス電流による温度浪費出力(TDP:thermal  dissipation  power))が低減される。
【００５６】
図１１は、(例えば図９で観測されるような)単一プロセッサコンピュータシステム内で使用され得る実施例のBPRI#信号を示したタイミング図である。図１１のタイミング図は、1)前述したバスクロック(BCLK)信号1110と、2)BREQ0#信号1120と、3)前述したBPRI#信号1150と、4) LOCK#信号1130と、5)アドレスストローブ(address  strobe)信号(ADS#)1140と、6)アドレスバスに示されるアドレス値の表示1102、1104と、7)入力バッファセンス増幅器の状態とのクロック周期T1-T10を示している。前述の信号で、信号名の終わりの“#”は、関連する信号がアクティブ・ローの信号(すなわち、ロジック低レベルになるとアサートされると考えられる)であることを示している。同様の機能を提供するために、関連の回路に対応する変更を行い、代わりにアクティブ・ハイの信号が使用されてもよいことがわかる。
【００５７】
図１１に示す例のトランザクションでは、FSBはアドレス値の伝送について最初に“不活動”であり、その結果、プロセッサのセンス増幅器は最初にディセーブルの低電力消費状態になる。次にT2において、送信バスエージェントは、BPRI#信号1150のアサートをすることにより、FSBでの受信バスエージェント(例えばプロセッサ／CPU)にアドレス値を伝送する処理を開始する。図１１の実施例では、受信バスエージェント(例えばCPU)は、BPRI#信号350がアサートされるクロック周期に続くクロック周期の後にアドレス値を受信するように、そのセンス増幅器をイネーブルにさせる。これが、図１１に、“ディセーブル”(クロック周期T3)から“イネーブル”(クロック周期T4)への変化により図示されている。
【００５８】
すなわち、センス増幅器がクロック周期T4の間にFSBからアドレス値を適切に受信することを確保するため、全クロック周期が費やされる(クロック周期T3)。図１１に表され得る少なくとも一実施例によると、BPRI#信号1150は、クロック周期T2とT3との間のクロックエッジで受信バスエージェントによりラッチされる。その後、センス増幅器がイネーブルになり始める。センス増幅器は、送信バスエージェントからアドレス値を受信するために十分にイネーブルになるために、次の全クロック周期(クロック周期T3)を与えられる。クロック周期T4で、送信バスエージェントは、(図１１の“ReqA”及び“ReqB”により示されるように) FSBのアドレス値を示し、アドレスストローブ信号(ADS#)1140をアサートする。
【００５９】
その結果、ReqA及びReqBアドレス値は、適切な位置にあるクロックエッジ(例えば、ReqA値をラッチするためのバスクロック1110の立ち上がりと、ReqB値をラッチするためのバスクロック1110の立下り)で、センス増幅器を通じて受信バスエージェントにラッチされ得る。送信バスエージェントもまた、クロック周期T5の間にアドレスストローブ1140をアサート停止し、それにより、クロック周期T4の間に生じたアドレス値伝送から、アドレス値(周期T6の間の“ReqA”及び“ReqB”)の迅速な次の伝送が明らかに表され得る。次に、アドレスストローブ1140は、クロック周期T6の間に再アサートされ、次のアドレス値伝送をもたらす。
【００６０】
図１１の実施例では、送信エージェントはまた、クロック周期T6の間のアドレスストローブ信号1140の再アサートで、BPRI#信号1150を不活性化する。実施例において、送信バスエージェントでのインテリジェンスの形式(例えば図９のコントローラ918)は、1)アドレス値の“次の”伝送が(クロック周期T6でのReqAとReqBの第２の伝送である)アドレス値の“現在の”伝送を超えて少なくともある数のクロック周期生じないことを認識し、2)その結果、現在のアドレス値の伝送が受信バスエージェントにより認識されたすぐ後にプロセッサでセンス増幅器をディセーブルにするように、BPRI#信号1150を自動的にアサート停止する。
【００６１】
図１１の例では、BPRI#が再びアサートしない限り、MCHにより更なるトランザクションがFSBに対して出されないことがわかる。このように、プロセッサの電力消費を低減するように、入力バッファセンス増幅器がディセーブルに保持され続け得る。図１１の例では、BPRI#はT7でアサート停止としてサンプルされるため、T7とT10との間にバスにADSが出されない。適当な他の実施例では、BIRI#信号のアサート停止を行わせるために、その後のアドレス伝送の間の異なる数のクロック周期又は他の指標の時間が使用されてもよい。
【００６２】
図１０及び１１は、フロントサイドバスのバス要求信号の状態に基づいてアドレスセンス増幅器のイネーブルを起動する低出力バストランザクション手法に関係する。一方、図１２及び１３は、他のフロントサイドバス信号のデータセンス増幅器のイネーブルを起動する低出力バストランザクション手法に関係する(以下に詳細に説明する)。図１０と同様に、図１２は、制御論理回路1252によりイネーブルにされる複数のデータセンス増幅器1220-1〜1002-Nを有するCPU1201を示している。データセンス増幅器1220-1〜1220-Nは、FSBトランザクションのデータフェーズの間にFSBのデータバスに示されるデータを取得する。データセンス増幅器1220-1〜1220-Nは、FSBから受信するデータが存在しない期間にディセーブルになり、その結果、低電力消費になる。図１０〜１３の教示が単一プロセッサにも構成され得ることがわかるであろう。
【００６３】
ここで、制御ロジック回路1252は、必要に応じてセンス増幅器1220-1〜1220-Nをイネーブル／ディセーブルにするために、FSBに関連する特定の信号に応じて、データセンス増幅器1220-1〜1220-Nをイネーブル及びディセーブルにする。特に、実施例において、制御論理回路1252は、1)アドレス信号(例えばADS#)がFSBでアサートされることに応じてデータセンス増幅器1220-1〜1220-Nをイネーブルにし、2)(i)“最後の”データレディ信号(例えばLast_DRDY)がアサート停止されることに応じて、(ii)順序キュー(IOQ:In-Order-Queue)が空になる(例えばRCNTパラメータが0と同じに設定されることにより示される)ことに応じて、及び(iii)データビジー信号(DBSY#)がアサート停止されることに応じて、データセンス増幅器1220-1〜1220-Nをディセーブルにする。ここで、プロセッサ1201は、前述の状態が容易に特定され得るように、バスの状態を追跡するように容易に設計され得る。例えば、“Last_DRDY”信号は、(フロントサイドバス制御信号に対して)プロセッサ内部制御信号として容易に設計され得る。
【００６４】
ADS#信号の起動は、(例えば、ADS#アサートが役割を果たすトランザクションのデータフェーズに、及び／又はその後のトランザクションのデータフェーズに)有効なデータがすぐにデータバスに示され得ることを示す。従って、センス増幅器1220-1〜1220-Nは、そのような有効なデータが示されるようにイネーブルにされるべきである。IOQが空であることと併せてLast_DRDY及びDBSY#信号のアサート停止は、有効なデータがかなりの以後の期間にデータバスに予期されないことを示す。その結果、センス増幅器1220-1〜1220-Nが電力を節約するためにディセーブルになる。
【００６５】
ここで、IOQは、トランザクションがフロントサイドバスに示されるためのトランザクションの有効なデータ応答をキューイングするものと考えられる。従って、IOQが空でない限り、近いうちに有効なデータがフロントサイドバスに現れることが予期され得る。従って、図１２及び１３の手法によると、IOQが空でない限り、データセンス増幅器がイネーブルのままになる。P4互換のアプリケーションでは、まだ実行されていないデータフェーズを追跡するために“RCNT”パラメータが使用される。従って、RCNTパラメータが0に等しく設定されていない場合に、IOQが空でないものとして認識される。RCNTパラメータが0に等しく設定されている場合に、IOQは空であるとして認識される。
【００６６】
図１３は、前述のデータセンス増幅器のイネーブル／ディセーブル機構の例示的な図を示している。図６の図によれば、一対のバストランザクションが観測される。第１のバストランザクションは、1)周期T4でのアサートされたADS#信号(第１のバストランザクションの要求フェーズに対応する)と、2)周期T8及びT9でのアサートされたDRDY#信号及び対応するデータ伝送1301(第１のバストランザクションのデータフェーズに対応する)とを有する。第２のバストランザクションは、1)周期T6でのアサートされたADS#信号(第２のバストランザクションの要求フェーズに対応する)と、2)周期T13及びT14でのアサートされたDRDY#信号及び対応するデータ伝送1302(第２のバストランザクションのデータフェーズに対応する)とを有する。
【００６７】
データセンス増幅器は周期T1からT3までディセーブルである(周期T1からT3までRCNTパラメータ=“0”であることを示す)。周期T3とT4との間の第１のバストランザクションの間にADS#信号はアサートになり、このことは、データセンス増幅器が完全にイネーブルになることを可能にするように次の全クロック周期(T4)を提供することにより、データセンス増幅器がクロック周期T5の開始時にイネーブルであると考えられることに対応する。周期T3とT4との間のADS信号のアサートにより、RCNTパラメータが“0”から“1”に増加することに留意すべきである(すなわち、IOQは周期T3とT4との間に空から空でないものに変化すると考えられる)。データセンス増幅器がイネーブルになると、IOQが空になり(すなわちRCNT=0)データバスがアクティブでないことをDRDY#及びDBSY#信号が示すまで、ディセーブルにならない。
【００６８】
(周期T6での)第２のバストランザクションのADS#アサートが第１のバストランザクション(周期T9)のデータフェーズの終了前に生じるため、周期T6から周期T8までRCNT値が“2”の値に増加する。次に、トランザクションの応答がバスに示されると(例えば周期T8でRS[2:0]#がアクティブになることにより示すように)、RCNTの値を1に減少する。従って、周期T9から始まるRCNT=1は、第１のバストランザクションのデータフェーズが終了していることを示すが、第２のバストランザクションのデータフェーズがまだ終了していないことを示す。図１３の例示的な実施例によると、第２のバストランザクションのデータフェーズは周期T14まで終了しない。(ADS#信号が周期T6から図１３の残りまで非アクティブのままで表されているように)第２のバストランザクションに続いて更なるバストランザクションが生じないため、RCNTが増加しないので、第２のトランザクションのデータフェーズが終了した結果として、RCNTパラメータが“1”から“0”に減少する。
【００６９】
従って、データセンス増幅器をディセーブルにする状態は、(周期T14にDBSY#信号が非アクティブになり周期T15にDRDY#が非アクティブになることにより示されているように)第２のトランザクションのデータフェーズが終了し、対応するRCNTパラメータが“0”に減少したこと(周期T14から始まる)を踏まえて生じる。DRDY#が非アクティブになったときから全クロック周期がディセーブルとしてみなされるデータセンス増幅器を仮定すると、データセンス増幅器は周期T16からディセーブルとみなされる。実際に、隣接したデータ伝送のストリングで“最後の”データ伝送を示すために、中間信号Last_DRDYが使用されてもよい(中間信号Last_DRDYは、同様にプロセッサ内で内部制御信号として実装されてもよい)。例えば、隣接したデータ伝送のストリングで“最後の”データ伝送がバスに示されるときに、Last_DRDY信号はアクティブになってもよい。従って、Last_DRDY信号の非アクティブは、データセンス増幅器がオフになり得る指示である。
【００７０】
図１０〜１３に関する説明は、(例えば図９に示すような)単一のコンピュータ環境を実装するために使用され得る。図１０及び１１はアドレスセンス増幅器用の低電力消費機構に関係し、図１２及び１３はデータセンス増幅器用の低電力消費機構に関係する。更に、少なくとも既存のP4互換の実装に関して、これらの低電力機構はフロントサイドバスに更なる信号の追加を行わずに実装され得る。すなわち、ここに教示される低電力機構は、フロントサイドバスに全く“新しい”信号を追加せずに使用可能であり、そのため、既存のフロントサイドバス実装とピン毎(pin-for-pin)に互換性がある。
【００７１】
図１０〜１３に関して前述した単一プロセッサの実施例に対して、図１４は、“マルチプロセッサ”コンピュータシステムの一部の実施例を示している。ここで、MCH1452及び複数のプロセッサ14000〜14003はFSB1431を共有している。マルチプロセッサ環境では、MCH1452及び複数のプロセッサ14000〜14003のそれぞれが(例えば他のバスエージェントに機能的に依存することにより)バストランザクションを要求してもよい。それにもかかわらず、図１２及び１３に関して前述した同じデータセンス増幅器機構(及びその対応する代替の実装)がマルチプロセッサ環境で使用され得る。すなわち、マルチプロセッサ環境でも、データセンス増幅器は、データセンス増幅器がディセーブルの状態にある間に認識された第１のアサートされたADS#信号により、ディセーブルからイネーブルに変化してもよい。更に、データセンス増幅器は、IOQが空になりデータバスがアイドルになるまで、イネーブルのままになるように構成されてもよい。
【００７２】
しかし、(例えば図１０及び１１に示すような)単一プロセッサの実装のアドレス構成要素に関して、低電力のマルチプロセッサ機構を実装するために変更が行われるべきである。図１５は、図１０のラッチ回路1052に対して行われ得る適切な変更を示している。特に、図１０のラッチ回路1052は、プロセッサ1001が単一プロセッサ環境とのインタフェースになる単独のバス優先エージェント(例えば図９のMCH910)から単一の入力(BPRI#)を受け入れる。一方、図１５のラッチ回路1552は、マルチプロセッサ環境の如何なるバスエージェントからのバストランザクションの開始に応じて、(センス増幅器をイネーブルにするため)センス増幅器のイネーブル／ディセーブル線をラッチするように起動されてもよい。ここでは、一例として、図１５のラッチ回路1552は第１のプロセッサ(例えば、４プロセッサシステムのプロセッサ“0”)に統合されたものとして見ることができ、その結果、ラッチ回路1552は、第１のプロセッサがフロントサイドバスを共有する“他の”バスエージェント(例えば、図１４を参照すると、BPRI#により示されるMCH1452、及びそれぞれBR[1]#〜BR[3]#により表される“他の”３つのプロセッサ14001〜14003)により起動されるバストランザクションの開始に対して反応が良い。
【００７３】
図１５の回路によると、“他の”バスエージェントの何らかがバストランザクションを要求すると、“プロセッサ_0”内のラッチ回路1552はセンス増幅器をイネーブル状態にし、それにより、バスエージェントがバストランザクションを開始する如何なるアドレスをも受信してもよい。更に、バスエージェントの全てがバストランザクションを開始しない場合には常に、ラッチ回路1552はセンス増幅器をディセーブル状態にする。図１６に例を示す。図１６はマルチプロセッサ環境の例示的な“４プロセッサ”を示している。図１６は、これらのプロセッサの第１のもの(例えばプロセッサ0から3のうち“プロセッサ_0”)の動作を示す。図１６によると、プロセッサ0と1と2はバストランザクションを開始せず、図１６を通じてロジックハイの状態1620になるままにより、その対応する要求信号(BR[0]#とBR[1]#とBR[2]#)は非アクティブになる。
【００７４】
一方、第４のプロセッサとMCHの双方は、図１６に示す時間フレーム内にバストランザクションを開始する。特に、第４のプロセッサは、周期T2でBR[3]#出力1630をアサートすることにより、第１のバストランザクションを開始する。MCHは第４のプロセッサ(“プロセッサ_3”)が(周期T4でADS#線1640をアサートすることにより)次の要求フェーズの間にバスを所有していることを認識し、次の要求フェーズを待つ(及び後の周期T6でADS#線1640をアサートする)。多様な実施例では、マルチプロセッサ環境のプロセッサは、“非バス・パーキング(non-bus  parking)”モードで構成されるべきである。非バス・パーキングモードは、プロセッサがフロントサイドバスを“占有”することを回避するマルチプロセッサ環境内の一種の協調又は礼儀である。具体的には、プロセッサ／MCHはその“BR[x]”／“BPRI”信号の各アサートの後に“BR[x]”／“BPRI”信号を非アクティブにし、それにより、(プロセッサがフロントサイドバスの使用を必要とする他のイベントを有している場合でも)プロセッサのトランザクションの後に他のバスエージェントがトランザクション用にバスを使用することができる。“プロセッサ_3”は(周期T4でのADS#信号1640のアサートを介した)対応する要求フェーズのときにBR[3]#線1630を非アクティブにし、MCHは(周期T6でのADS#信号1640のアサートを介した)対応する要求フェーズのときにBPRI#線1650を非アクティブにするため、このような機構の実施例が図１６に示されている。
【００７５】
図１６の非バス・パーキングモードの実施例では、バストランザクションの第１のフェーズ(すなわち仲裁フェーズ)は、BPRI#又はBR[x]#線のアサートで開始し、バストランザクションの第２フェーズ(すなわち要求フェーズ)は、BPRI#又はBR[x]#線のアサートで開始する点に留意すべきである。対応するトランザクションが要求フェーズに入るまでBPRI#又はBR[x]#信号がアサートのままである場合、及びBPRI#又はBR[x]#線がアサート停止になるクロック周期の間に有効なアドレス値が現れる場合、1)BPRI#又はBR[x]#線の何らかのアサートに応じて、アドレスセンス増幅器をイネーブルにすることにより、及び2)BPRI#又はBR[x]#線のアサート停止がBPRI#又はBR[x]#線の全てがアサートでない状態を生じた場合に常に、アドレスセンス増幅器をディセーブルにすることにより、アドレスセンス増幅器の適切なイネーブルが実現され得る。アドレスセンス増幅器はBR[3]#線1630の早いアサートに応じて(周期T1とT2との間に)イネーブルになり、BPRI#線1630の後のアサート停止に応じて(周期T6内に)ディセーブルになるため、図１６はそのような機構を示している点に留意すべきである。
【００７６】
ラッチ回路1552がBCLKの立ち上がりにラッチしたときに、センス増幅器がそのイネーブル／ディセーブル状態を変化するのに十分な時間を与えることにより、センス増幅器がクロック周期T4からT7までの間のみイネーブルになる。この期間は周期T4及びT6で示される有効なアドレス値を取得するのに十分な長さがある。更に、周期T1からT2まで及び周期T8以後アドレスセンス増幅器をディセーブルにすることにより電力消費を低減する(周期T3及びT7は、アドレスセンス増幅器の状態がそれぞれディセーブルからイネーブル及びイネーブルからディセーブルになる変化周期とみなされる)。実施例において、センス増幅器に状態を変化する適切な量の時間を許可するために、BR[x]#又はBPRI[x]#信号のアサートと対応のADS#信号のアサートとの間に少なくとも2クロック周期が費やされる。例えば、図１６に示すように、周期T2の始まりでのBR[3]#信号1630のアサートは、周期T4の始まりでの対応するADS#1640のアサートを生じ、周期T3の始まりでのBPRI#信号1650のアサートは、周期T6の始まりでの対応するADS#1640のアサートを生じる。更なる実施例では、前述の“少なくとも2クロック周期”を確保するために“デフォルト”のP4バスが使用される。
【００７７】
図１７は、図１０及び１２に示す回路の結合として考えられる回路の他の実施例を示している。図１７の回路は、データセンス増幅器1722のイネーブル及びディセーブルと共に、アドレスセンス増幅器1721をイネーブル及びディセーブルする。ここでは、アドレスセンス増幅器1721及びデータセンス増幅器1722の双方を制御するために、単一の制御論理回路1752が使用されている。適切な動作を確保するため、アドレス及びデータセンス増幅器1721、1722の双方は、(図１０の回路に関して図１１に示すアドレスセンス増幅器1721の十分に早いイネーブルを確保するため)BPRI#信号のアクティブでイネーブルになる。アドレス及びデータセンス増幅器1721、1722の双方は、(図１２の回路に関して図１３に示すデータセンス増幅器の十分に遅いディセーブルを確保するため)RCNT=0であり、Last_DRDYが非アクティブになり、DBSY#が非アクティブになると共にディセーブルになる。図１７の回路は単一プロセッサ環境で使用可能であるが、センス増幅器のイネーブルを起動する制御ロジック1752への入力を図１５に示すように再構成することにより、図１７の回路はマルチプロセッサ環境内で互換性を有するように拡張可能である。
【００７８】
図８に関して説明したように、設計のシミュレーション、エミュレーション及び構成の多様な設計表示又はフォーマットが図９から１７の教示について実装され得ることがわかる。
【００７９】
例示的な実施例について説明したが、特許請求の範囲に定められる本発明の実施例の範囲内にあるように、開示された実施例に対して変形及び変更が行われてもよい。
【図面の簡単な説明】
【００８０】
【図１】従来のプロセッサ及びメモリ制御ハブを示したブロック図
【図２】一実施例による入力バッファを有するプロセッサを示したブロック図
【図３】一実施例による単一プロセッサのシステムプラットフォームを示したブロック図
【図４】一実施例によるタイミング図
【図５】一実施例による方法を示したフローチャート
【図６】一実施例による方法を示したフローチャート
【図７】一実施例による方法を示したフローチャート
【図８】開示された技術を使用して設計のシミュレーション、エミュレーション及び構成用の多様な設計表現又はフォーマットを示したブロック図
【図９】一実施例による単一プロセッサのシステムプラットフォームを示したブロック図
【図１０】一実施例によるアドレス入力センス増幅器を有するプロセッサを示したブロック図
【図１１】アドレスセンス増幅器をイネーブルにする技術を示したタイミング図
【図１２】一実施例によるデータセンス増幅器を有するプロセッサ
【図１３】データセンス増幅器をイネーブルにする技術を示したタイミング図
【図１４】一実施例によるマルチプロセッサのシステムプラットフォームを示したブロック図
【図１５】マルチプロセッサ環境でアドレス値をラッチするために使用され得る回路
【図１６】マルチプロセッサ環境内でアドレスセンス増幅器をイネーブルにする技術を示したタイミング図
【図１７】データ及びアドレス値の双方をラッチするために使用され得る回路
【図１】
0004813180.tif 000002
【図２】
0004813180.tif 000003
【図３】
0004813180.tif 000004
【図４】
0004813180.tif 000005
【図５】
0004813180.tif 000006
【図６】
0004813180.tif 000007
【図７】
0004813180.tif 000008
【図８】
0004813180.tif 000009
【図９】
0004813180.tif 000010
【図１０】
0004813180.tif 000011
【図１１】
0004813180.tif 000012
【図１２】
0004813180.tif 000013
【図１３】
0004813180.tif 000014
【図１４】
0004813180.tif 000015
【図１５】
0004813180.tif 000016
【図１６】
0004813180.tif 000017
【図１７】
0004813180.tif 000018