(57)【特許請求の範囲】
【請求項１】
外部バスに結合されたコントローラを有するバスエージェントであって、
前記コントローラは、前記外部バスに結合された異なるバスエージェントから出されたデータのトランザクション要求を読み取り、
前記コントローラは、前記要求に関連するデータ配信周期の所定数のクロック周期の前に、データバス出力制御信号のアサートを行わせ、
前記データバス出力制御信号は、前記異なるバスエージェントが前記データを受信する前に、前記異なるバスエージェントの入力データセンス増幅器のセットをイネーブルにするバスエージェント。
【請求項２】
バスへのインタフェースを有するバスエージェントであって、
前記インタフェースは、データを要求する前記バス上の異なるバスエージェントにより出されたトランザクション要求に関連するデータ配信周期の所定数のクロック周期の前に、データバス出力制御信号のアサートを行わせ、
前記データバス出力制御信号は、前記異なるバスエージェントの入力データセンス増幅器のセットがデータを受信することを可能にするバスエージェント。
【請求項３】
バス上のバスエージェントにより、前記バス上の異なるバスエージェントから出されたデータのトランザクション要求を読み取り、
前記トランザクション要求に関連するデータ配信周期を決定し、
前記データ配信周期の所定数のクロック周期の前に、データバス出力制御信号をアサートし、前記異なるバスエージェントが前記データを受信する前に、前記異なるバスエージェントの入力データセンス増幅器のセットをイネーブルにすることを有する方法。
【請求項４】
外部バスと、
前記外部バスに結合されたチップセットと、
バスインタフェースに結合され、プロセッサから出されたデータのトランザクション要求を読み取り、前記プロセッサが前記データを受信する前に、前記トランザクション要求に関連するデータ配信周期の所定数のクロック周期の前にデータバス出力制御信号のアサートを行わせるコントローラと、
を有し、
前記プロセッサは、入力データセンス増幅器のセットを有する入力バッファを有し、前記センス増幅器は、データバス出力制御信号を受信するように結合され、前記センス増幅器は、前記プロセッサが要求データを受信する前に、前記データバス出力制御信号のアサートに応じて前記外部バスからデータを受信するようにイネーブルになるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、割り当てられた出願番号10/317,798の代理人整理番号42.P15268の2002年12月11日に出願された“An  Apparatus  and  Method  For  Address  Bus  Power  Control”という題名の同時継続出願に関係する。
【０００２】
本発明の１つ以上の実施例は、概して、集積回路とコンピュータシステム設計とに関するものである。特に、本発明の１つ以上の実施例は、データバス出力制御用の方法及び装置に関するものである。
【背景技術】
【０００３】
一般的に、コンピュータシステム内の装置間の通信は、そのような装置を相互接続する１つ以上のバスを使用して実行される。これらのバスは、２つの装置を結合する専用バスでもよく、複数のユニット及び装置(例えばバスエージェント)により多重化される非専用バスでもよい。更に、コンピュータシステム内のバスは、特定の種類の情報を伝送することに専用でもよい。例えば、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は、内部データバス信号線(pdata)322(322-1,...,322-N-1)に結合された出力を有する。入力バッファ310はまた、更なる内部データ線及び／又は制御線に結合されてもよい。一実施例では、センス増幅器320は、フロントサイドバス(FSB)330の複数のデータ線FSB  D[0..M]に結合された入力を有する。
【００１４】
一実施例では、FSB330は、Pentium（登録商標）4プロセッサのフロントサイドバスプロトコルと互換性があり、その特徴は、2001年11月1日に公開された同時継続のSingh他の米国特許出願第US2001/0037421A1に記載されている。FSBがPentium（登録商標）4プロセッサのフロントサイドバスと互換性がある場合、FSB330は、64のデータ線FSB  D[0..63]を有する。他の実施例では、FSB330は異なるバスプロトコルと互換性があってもよく、及び／又は異なる数のデータ線を有してもよい。
【００１５】
続けて図２を参照すると、一実施例では、入力バッファ310は、バスクロック(BCLK)信号とFSB330に関連するデータバス出力制御(DPWR#)信号350とを受信するように結合されたラッチ352を更に有する。一実施例では、DPWR#信号は、例えばFSB330でCPU300に更に結合されたチップセット装置(図示なし)から受信されてもよい。ラッチ352の出力は、データ入力センス増幅器320のそれぞれの入力をイネーブルにするように結合される。
【００１６】
動作中に、BCLK信号が変化すると、ラッチ352は、DPWR#信号の状態をラッチする。DPWR#信号がアサートされることに応じて、入力バッファ310のデータ入力センス増幅器320は、データ線FSB  D[0..N]を介してFSB330から要求のデータを取得するようにイネーブルになる。逆に、DPWR#信号がアサート停止されることに応じて、入力データセンス増幅器がディセーブルになる。入力センス増幅器がディセーブルになると、その電力消費(主として、入力バッファにより電流提供されるバイアスによる温度浪費出力(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は、Pentium（登録商標）4プロセッサのフロントサイドバスと互換性があり、アドレス、データ及び制御部分(代替として、アドレス、データ及び制御バスと呼ばれることもある)を有するパイプライン方式データバスである。
【００２０】
ここで、FSB330に結合された装置はまた、FSB330に関するバスエージェントとも呼ばれる。一実施例では、３つの形式のエージェント(要求エージェント、応答エージェント及び検査エージェント(snoop  agent))がFSB330に存在してもよい。要求エージェントは、例えばメモリ又はI/O読み取り若しくは書き込み要求のような要求を出すことによりトランザクションを開始する装置である。応答エージェントは、例えばI/O対象又はメモリ対象のようなトランザクションの対象である。検査エージェントは、一般的にキャッシュメモリに関連するバスの装置である。一実施例では、バスエージェントは異なるように分類されてもよい。
【００２１】
FSB330がパイプライン式バスの場合、バストランザクションはフェーズに分離されてもよく、複数のトランザクションが重複してもよい。特に、バストランザクションの全ての構成要素又はフェーズは、他のバストランザクションが始まり得る前に完了する必要はない。
【００２２】
ここで使用される“トランザクション”という用語は、単一のバスアクセス要求に関係するバス活動を示している。トランザクションは複数のフェーズを有し、それぞれのフェーズが特定の形式の情報を通信するバス信号の特別のセットに関連してもよい。一実施例では、例示的なフェーズは、例えば、仲裁フェーズ、要求フェーズ、検査フェーズ、応答フェーズ及び／又はデータフェーズを有してもよい。
【００２３】
要求フェーズでは、要求エージェントは、FSB330で要求制御及びアドレス情報を駆動する。その後の検査フェーズの間に、検索後のデータがローカルに格納されているか否か、及び／又は以前に出されたトランザクションに関してトランザクションが適切に完了する可能性があるか否かについて決定する。応答フェーズでは、応答エージェントは、要求トランザクションが成功したか失敗したかを示す情報を要求エージェントに報告する。要求トランザクションがデータ伝送を有する場合、データ伝送フェーズとも呼ばれるデータフェーズが、データレディ(DRDY#)信号のアサートに応じて開始されてもよい。
【００２４】
図３に示すように、一実施例では、前述のDPWR#信号は、FSB330の一部としてMCH510によりアサート及びアサート停止される。一実施例では、MCHは、DPWR#信号のアサート及びアサート停止を行わせるコントローラ512(ここではバスインタフェースとも呼ばれる)を有する。代替実施例では、コントローラ512は、FSB330に結合された他の装置／エージェントに備えられてもよい。コントローラ512がDPWR#信号のアサート及びアサート停止を行わせる方法については、以下に詳細に説明する。
【００２５】
一実施例において、コントローラ512は、FSB330にデータ活動が存在しない間にCPU300の入力データセンス増幅器320がディセーブルになり、データ伝送動作の前にイネーブルになるように、DPWR#信号のアサート及びアサート停止を行わせる。一実施例では、コントローラは、トランザクション要求の形式に基づいて、要求データを取得するために予期されるデータアクセス時間を決定する。予期されるデータアクセス時間に基づいて、コントローラ512は、提供されるデータを検知したときにCPU300のセンス増幅器320がイネーブルになるように、DPWR#信号のアサートを行わせる。データフェーズが完了し、所定の時間フレーム(例えば所定数のクロック周期)内に入力データフェーズが存在しない場合、コントローラ512は、センス増幅器の電力消費を減少させるために、DPWR#信号のアサート停止を行わせる。
【００２６】
図４は、一実施例のDPWR#信号を示したタイミング図である。タイミング図は、BCLK信号を提供するために使用され得るバスクロック(BCLK)信号410と、アドレスストローブ(address  strobe)信号(ADS#)420と、DPWR#信号350と、データビジー信号(DBSY#)430と、データレディ(DRDY#)信号440(これらのそれぞれはFSB330の一部である)と、FSB330のデータバス部分のデータ活動を示す信号455とのクロック周期T1-T14を示している。FSBがPentium（登録商標）4プロセッサのフロントサイドバスプロトコルと互換性がある実施例では、DPWR#信号以外の前述の信号は、対応するPentium（登録商標）4プロセッサのフロントサイドバス信号に従って定められて動作する。
【００２７】
前述の信号で、信号名の終わりの“#”は、関連する信号がアクティブ・ローの信号(すなわち、ロジック低レベルになるとアサートされると考えられる)であることを示している。同様の機能を提供するために、関連の回路に対応する変更を行い、代わりにアクティブ・ハイの信号が使用されてもよいことがわかる。更に、一実施例では、FSB330信号の１つ以上は、フルスイング(full  swing)より小さい電圧スイングを有する低電圧スイング信号(swing  signal)である。
【００２８】
図４に示す例のトランザクションでは、CPU300のような要求エージェントは、T1でADS#信号をアサートすることにより、読み取りトランザクション要求を開始する。MCH510のような応答エージェントと、一実施例ではMCHのコントローラ512は、関連のアドレス情報をサンプルし、要求の読み取りトランザクションの形式を検出する。要求の読み取りトランザクションの形式に基づいて、コントローラ512は、データ配信クロック周期を決定するために、要求に関連する予期されるデータアクセス時間を決定する。
【００２９】
次に、コントローラ512は、特定のデータ配信クロック周期の所定数のクロック周期の前にDPWR#信号をアサートし、データがデータバスに到達する前に要求エージェント(CPU300)のセンス増幅器がイネーブルになるのに十分な時間を提供する。一般的に、特定のデータクロック周期は、トランザクションを処理する際の応答エージェント装置により費やされる処理時間の関数である。例えば、“読み取り”トランザクションが12クロック周期を費やすことを応答エージェント(例えばMCH510)が認識すると、12周期の終了の前の“読み取り”トランザクションの要求の後にDPWR#信号のアサートを行わせる(それにより、要求データを受信したときに要求エージェントのセンス増幅器がアクティブになる)。
【００３０】
応答エージェントは、異なるトランザクションについて異なる応答時間を示してもよいことに留意すべきである(例えば、それぞれ図５Ａ及び５Ｂに関して以下に詳細に示すように、ページエンプティ(page  empty)の場合の“部分読み取り”トランザクションについて12クロック周期に対して、“ページミストランザクション”について14クロック周期)。結果として、多様なトランザクションについて応答エージェントの応答時間の特徴を通じて、コントローラ512は、サポートされるトランザクションの形式毎に応じてDPWR#信号のアサートを行わせる。要求エージェントは多様な形式の基礎の技術(例えば、異なる半導体製造処理)で実装されてもよく、同様に、トランザクションで費やされる時間量も実施例毎に異なってもよい。従って、図４及び５Ａ〜５Ｆについて以下に続く例においてDPWR#信号がアサートされる特定のクロック周期時間は、多数の異なる可能な実施例から選択されることがわかる。
【００３１】
図４に示す例では、説明目的で、コントローラ512がデータ配信クロック周期をT12に決定することを仮定する。更に、図示の例示的な実施例では、クロック周期の所定の数は、図示のようにコントローラがT10でDPWR#信号をアサートするように2であることを仮定する。他の実施例では、要求データの予期される有用性からDPWR#信号のアサートを分離するために、異なる数のクロック周期又は他の指標の時間が使用されてもよいことがわかる。
【００３２】
更に、ある実施例では、データが到達したときにデータセンス増幅器がレディになっていることを更に確保するために、応答エージェントはデータ伝送の前の所定数のクロック周期より前であるが、実際のデータ伝送の前の所定数のクロック周期より遅くないときにDPWR#信号をアサートしてもよい。このような実施例では、DPWR#信号のアサートと、返信されてデータバスでレディのデータとの間の所定の分離が維持されることを確保するために、応答エージェントはデータ伝送を遅延してもよい。
【００３３】
CPU300は、T11でバスクロック信号の立ち上がり時にDPWR#信号をサンプルし、クロック周期T12でイネーブルになるように、センス増幅器320にDPWR#信号を提供する。DRDY#信号はT12に応答エージェントによりアサートされ、要求データがCPU300により取得される。
【００３４】
データが伝送されると、応答エージェント(この例ではMCH510)は、DRDY#信号がアサート停止されるようにする。ある実施例では、コントローラ512はまた、並行してDPWR#信号のアサート停止を行わせてもよい。他の実施例では、以下に詳細に説明するように、CPU300を対象とする更なるデータフェーズが所定の時間フレーム内に予期される場合には、DPWR#信号はアサートになったままでもよい。
【００３５】
CPU300は、クロック周期T14でDPWR#信号のアサート停止を検出し、その後すぐにセンス増幅器320をイネーブルにさせる。このように、図４を参照して説明する例示的なトランザクションでは、センス増幅器は全体のトランザクションの13クロック周期から約2クロック周期の間にアクティブ(すなわち、イネーブル)になり、その結果、従来技術と比較して電力の節約を生じる。
【００３６】
いくつかの実施例の動作を更に示すため、図５Ａは、一実施例に従ってページミスの間のDPWR#とデータ入力センス増幅器320との動作を示すタイミング図である。前記のように、応答エージェントは、バスクロックT1でADS#信号のアサートに続いてトランザクションアドレス情報をサンプルすることにより、読み取りトランザクションを検出する。図示の実施例では、要求データのページミスにより、応答エージェントは14クロック周期後(T14)に要求データを返信する。その結果、クロック周期T14の間にイネーブルになるまで、データ入力バッファセンス増幅器320はディセーブルのままになる。従って、コントローラ512は、T14としてデータフェーズクロック周期を計算してもよい。
【００３７】
DPRW#信号のアサートと要求データの到達とを分離する所定数のクロック周期が2である前記の例を続けると、コントローラ512は、バスクロック周期T12でDPWR#信号350のアサートを行わせる。要求エージェントは、バスクロックT13の立ち上がりでDPWR#信号をサンプルし、バスクロック周期T14でセンス増幅器をイネーブルにすることにより応答する。バスクロックT16で、応答エージェントはDRDY#信号440をアサート停止し、コントローラ512はDPWR#信号350のアサート停止を行わせ、バスクロックT16でデータフェーズの終了を示す。従って、図５Ａに示すように、データ入力バッファセンス増幅器のイネーブル及び／又はディセーブルに従って提供される電力の節約は、この特定の例では約12クロック周期である。
【００３８】
一実施例において、データフェーズ終了クロック周期T16の間にセンス増幅器320をイネーブルにし、DRDY#信号のアサート停止に続く次のクロックでデータの取得を可能にするソース同期ストローブ方法(source  synchronization  strobe  method)を可能にするように、DPWR#信号はアサートされたままになってもよい。
【００３９】
図５Ｂは、一実施例に従って部分読み取り動作を示したタイミング図である。図示のように、バスクロックT1でADS#信号420がアサートになり、その結果、バスクロックT12でデータフェーズを生じる。前記の例で説明した同じ２つのクロックウィンドウを仮定すると、図示のようにDPWR#信号がクロック周期T10でアサートになりクロック周期T13でアサート停止になるのに応じて、入力バッファ310のデータ入力センス増幅器320はバスクロックT12でイネーブルになり、バスクロックT14でディセーブルになる。この例では、トランザクションの合計13のうち約2クロック周期の間にデータセンス増幅器320はイネーブルになり、それにより、従来の手法と比較して入力バッファで電力の節約が実現される。
【００４０】
図５Ｃは、一実施例に従ってキャッシュラインバースト読み取り(cache  line  burst  read)の例示的な動作を示したタイミング図である。図示のように、コントローラ512は、バスクロック周期T10にDPWR#信号350のアサートを行わせ、バスクロック周期T11にCPU300によりサンプルされ、それにより、伝搬遅延によって、データ入力センス増幅器320がバスクロック周期T12でイネーブルになる。この例では、データバス330が次のクロック周期(T13)も同様に応答エージェントにより占有されることを示すために、応答エージェントはDBSY#信号430をアサートする。従って、データ入力センス増幅器はクロック周期T12及びT13の間にデータ472を取得し、DRDY#が同じ時間周期の間にアサートされる。DPWR#信号は(DRDY#のアサート停止と実質的に並行して)クロック周期T14にアサート停止され、センス増幅器320はクロック周期T15の間にディセーブルになる(図示なし)。
【００４１】
図５Ｄは、一実施例に従ってDRDY#信号440がアクティブでない間のバースト読み取りトランザクションを示したタイミング図である。一実施例において、システム500は、例えば64ビットデータバス幅を備えた単一チャネルDDRプラットフォーム(制御及びソース同期信号を除く)として構成されてもよい。この例では、DDR伝送レートは例えばバスクロック周期毎に16ビットでもよく、FSB330がPentium（登録商標）4プロセッサのフロントサイドバスと互換性があり、4ポンプ(quad  pumped)である場合、FSB伝送レートは１バスクロック毎に32バイトでもよい。
【００４２】
図示のように、コントローラ512は、バスクロック周期T10でDPWR#信号のアサートを行わせ、バスクロック周期T11でCPU300によりサンプルされ、それにより、伝搬遅延によって、データ入力センス増幅器320がバスクロック周期T12でイネーブルになる。不安定な伝送レートのため、T13にデータ伝送のギャップが存在する。換言すると、バスクロックT14まで、応答エージェントは伝送の準備ができた次の32バイトを有していない。従って、DRDY#信号440はクロック周期T13の間にアサート停止され、次の32バイトが伝送の準備ができるクロック周期T14の間に再アサートされる。図示のように、DBSY#信号430は、T12及びT13にアサートされ、T14にFSB330データバスが応答エージェントにより占有されることを示す。従って、コントローラ512はT10にDPWR#信号350のアサートを行わせ、最後のDRDY#信号440と並行してT15に信号のアサート停止を行わせる。
【００４３】
図５Ｅは、一実施例に従って、間にアイドルクロックなしに連続して読み取りデータ返信が出される例のパイプライン型バスを示したタイミング図である。図示の例では、システム500はデュアルチャネルDDRメモリ構成を提供するが、他の実施例では他のメモリ手法が使用されてもよい。図示のように、データフェーズ伝送ストリームの2クロック周期前に、コントローラ512はバスクロック周期T10にDWDR#信号350のアサートを行わせる。図示の例では、3つの読み取りトランザクション(R1とR2とR3)が要求されている。
【００４４】
トランザクションR1に関連するデータ伝送は、バスクロック周期T12に開始してバスクロックT13に終了する。トランザクションR2に関連するデータ伝送は、バスクロックT14に開始してバスクロックT15に終了する。図示の実施例では、全データストリームでセンス増幅器がオープンなままであることを可能にするために、コントローラ512は連続したデータ伝送の間にDPWR#信号350のアサート停止を行わせない。コントローラ512は、トランザクションR3の最後のDRDY#信号440と並行して、バスクロックT16にDPWR#信号350のアサート停止を行わせる。図示の実施例では、ソース同期受信データの取得を可能にするために、バスクロック周期T16に待ち状態が挿入され、バスクロックT17(図示なし)までDPWR#信号350がCPU300によりサンプルされない。他の実施例では、データレディ信号とデータバス出力制御信号のアサート停止との間に異なる数の待ち状態が挿入されてもよい。
【００４５】
図５Ｆは、一実施例に従って単一のチャネルDDRメモリからのパイプライン型読み取りを示したタイミング図である。図５Ｆに示すように、3クロック周期だけ離れて２つの読み取りトランザクション(R1及びR2)が出される。トランザクションR1はバスクロックT1に出され、トランザクションR2はバスクロック周期T4に出される(図５Ｆに図示なし)。関連のデータはバスクロック周期T12の始めに返信される。この特定の例では、要求エージェントが1チャネルDDRメモリから読み取りデータを要求したという事実のため、応答エージェントは待ち状態をアサートするように要求される。従って、コントローラ512は、トランザクションR2の最後のDRDY#信号440のアサート停止と並行して、バスクロックT18にDPWR#信号350のアサート停止を行わせる。図示のように、コントローラ512は、第１のDRDY#信号440の発行まで、DPWR#信号350のアサート間に所定のクロックギャップ(この例では2クロック周期)を提供するために、バスクロックT15にDPWR#信号のアサート停止を行わせない。
【００４６】
更なる代替実施例は、オンチップ・ライトバックバッファ(on-chip  write  back  buffer)を有するチップセットの場合を含み、コントローラ512は、アドレスストローブ(例えばADS#信号)のアサートから約3クロックの検査フェーズと共に、DPWR#信号のアサートを行わせる。一実施例では、このことにより、バスプロトコルにより割り当てられた時間にデータ伝送が可能になる。一実施例では、このようなバスプロトコルにより許可された時間は、アドレスストローブ(ADS#)信号のアサートから5クロックであり、検査結果に2クロック周期を提供する。
【００４７】
更に、一実施例において、図４に示すようなコンピュータシステム500では、各バスエージェントは、現在処理中の全てのトランザクションの記録と、各トランザクションが現在あるフェーズと、(存在する場合には)各エージェントが各フェーズで有する役目とを維持する。従って、適切なトランザクションの各段階でバス(FSB330)と適切に相互作用するために、各エージェントは、I/Oトランザクションキュー又は順序キュー(IOQ:in-order  queue)を維持する。従って、トランザクションが応答を保証され、トランザクションが終了することを示すと、要求エージェントはIOQからトランザクションを削除する。従って、代替実施例では、要求エージェントのIOQが空になるまでDPWR#信号はアサートのままでもよい。
【００４８】
特定のバスプロトコルと特定の信号とを使用してデータバス出力制御の相対タイミングのいくつかの特定の例について説明したが、異なるバスプロトコル及び信号を用いて代替実施例のデータバス出力制御手法も実装され得ることがわかる。更に、CPU読み取りトランザクションを参照してデータバス出力制御信号について主に説明したが、多様な実施例のデータバス出力制御手法がデータを要求エージェントに配信させる他のトランザクションにも同等に適用可能であることもわかる。例えば、あるシステムでは、アドバンスト・プログラマブル割込みコントローラ(APIC:advanced  programmable  interrupt  controller−図示なし)トランザクションが“書き込み”トランザクションとして定められてもよいが、CPUへの返信データ及び一実施例のデータバス出力制御手法は電力消費を低減するように適用され得る。
【００４９】
データバス出力制御方法は、図６に示すフローチャート600に記載されている。処理ブロック602において、応答エージェントは、(読み取りトランザクションのように)データが要求エージェントに返信されるトランザクションを検出する。処理ブロック604において、応答エージェントはいつデータが配信される予定であるかを決定する。処理ブロック606において、応答エージェントはDPWR#信号のアサートを行わせ、要求エージェントのセンス増幅器がデータを受信することを可能にする。
【００５０】
処理ブロック608において、応答エージェントは、要求エージェントへのデータ伝送の終了に基づいて、いつDPWR#信号のアサート停止を行わせるかを決定する。処理ブロック610において、応答エージェントは、データ入力センス増幅器をディセーブルにさせるDPWR#信号のアサート停止を行わせる。
【００５１】
一実施例において、読み取りトランザクションのデータフェーズが終了すると、DPWR#信号はアサート停止になる。一般的に、読み取りトランザクションのデータフェーズの終了は、DRWY#信号がアサート停止になったときに生じる。しかし、一実施例では、データ入力センス増幅器のディセーブルは、DRDY#信号のアサート停止に続く１つ以上のクロック周期待ち周期だけ遅延し、バスでのソース同期受信データの伝搬を可能にするために使用され、次のDRDY#信号のアサート停止に提供される。
【００５２】
図７は、一実施例に従って出力制御信号DPWR#のアサート停止を行わせる更なる技術を示したフローチャートを示している。処理ブロック700において、応答エージェントは、(要求エージェントに返信されるデータを生じる)更なる今後のトランザクションがあるか否かを決定する。そのような更なるトランザクションが検出されない場合、処理ブロック716において、応答エージェントは、現在のトランザクションのデータフェーズ終了のクロック周期が検出されたか否かを決定する。検出された場合には、処理ステップ714において、出力制御信号DWPR#がアサート停止になる。
【００５３】
一方、(要求エージェントにデータを返信する)更なるトランザクションが検出された場合、処理ブロック704において、更なるトランザクションについてデータフェーズ終了クロック周期が決定される。データフェーズ終了クロック周期が検出されると、処理ブロック706において、更なるトランザクションのデータ終了クロック周期と現在のトランザクションのデータフェーズ終了クロック周期との間の複数のクロック周期が決定される。処理ブロック708において、決定されたクロック周期の数が所定数のクロック周期以下であるか否かが決定される。処理ブロック706の決定されたクロック周期が所定数のクロック周期未満である場合、処理ブロック710において、DPWR#信号のアサート停止が遅延され、要求エージェントのセンス増幅器がイネーブルのままになり、更なるトランザクションの今後のデータを受信することが可能になる。
【００５４】
その結果、処理ブロック712において、更なるトランザクションのデータフェーズ終了クロック周期が検出されるまで、DPWR#信号のアサート停止が遅延し続ける。検出されると、処理ブロック714において、DPWR#信号がアサート停止になる。
【００５５】
データバス出力制御の方法は、図８に示すフォローチャート800に記載されている。処理ブロック802において、要求エージェント(例えばCPU)は、(読み取りトランザクションのように)要求エージェントに返信されるデータを生じる要求トランザクションを出す。処理ブロック804において、データを受信する前に、要求エージェントはDPWR#信号のアサートを検出し、要求データを受信するために要求エージェントのデータ入力センス増幅器をイネーブルにさせる。処理ブロック806において、要求エージェントは要求データを受信する。処理ブロック808において、要求エージェントはDPWR#信号のアサート停止を検出し、要求エージェントのデータ入力センス増幅器のディセーブルを行わせ、電力消費を低減する。
【００５６】
図９は、開示された技術を使用して設計のシミュレーション、エミュレーション及び構成用の多様な設計表現又はフォーマットを示したブロック図である。設計を表すデータは、多数の方法で設計を表してもよい。まず、シミュレーションで有用なように、ハードウェアは、設計されたハードウェアが実行すると予期される方法のコンピュータモデルを本質的に提供するハードウェア記述言語又は他の機能記述言語を用いて表されてもよい。ハードウェアモデル910は、コンピュータメモリのような記憶媒体900に格納されてもよく、それにより、実際に意図した通り機能するか否かを決定するためにハードウェアモデルに特定のテスト一式930を適用するシミュレーションソフトウェア920を使用して、モデルがシミュレーションされてもよい。ある実施例では、シミュレーションソフトウェアは媒体に記録、取得又は包含されない。
【００５７】
更に、ロジック及び／又はトランジスタゲートを備えた回路レベルのモデルが、設計過程のある段階で作られてもよい。そのモデルは、プログラム可能ロジックを使用したモデルを形成する専用ハードウェアシミュレータにより、何度か同様にシミュレーションされてもよい。ある程度のこの形式のシミュレーションは、更にエミュレーション技術でもよい。いずれの場合でも、再構成可能ハードウェアは、開示された技術を使用したモデルを格納した機械読取可能媒体を含み得る他の実施例である。
【００５８】
更に、ある段階でのほとんどの設計は、ハードウェアモデルの多様な装置の物理配置を表すデータのレベルに到達する。従来の半導体構成技術が使用される場合、ハードウェアモデルを表すデータは、集積回路を作るために使用される異なるマスクレイヤ又はマスクの多様な機能の存在又は欠如を特定するデータでもよい。また、集積回路を表すこのデータは、回路ロジック及びデータが技術を実行するためにシミュレーション又は構成され得る点で開示された技術を具体化する。
設計の如何なる表示において、データは如何なる形式の機械読取可能媒体に格納されてもよい。そのような情報を伝送するために変調又は生成された光波又は電波960、メモリ950又はディスクのような磁気若しくは光記憶装置940は、機械読取可能媒体でもよい。これらの媒体の如何なるものも設計情報を運んでもよい。このように、“運ぶ”(例えば機械読取可能媒体が情報を運ぶ)という用語は、記憶装置に格納された情報又は符号化若しくは搬送波に変調された情報をカバーする。設計又は特定の設計を記述するビットのセットは、(搬送波又は記憶媒体のような機械読取可能媒体に具体化されると)それ自体閉じ込められたものであり、また、更なる設計又は構成のため他人により使用されるものである。
【００５９】
［代替実施例］
他の実施例では、異なるシステム構成が使用されてもよいことがわかる。例えば、システム500は単一のCPU300を有するが、他の実施例では(１つ以上のプロセッサが前述のCPU300の構成及び動作と類似し得る)マルチプロセッサシステムが多様な実施例のバス出力制御手法から恩恵を受けてもよい。例えば、サーバ、ワークステーション、デスクトップコンピュータシステム、ゲームシステム、内蔵コンピュータシステム、ブレードサーバ等のような異なる形式のシステム又は異なる形式のコンピュータシステムが、他の実施例で使用されてもよい。
【００６０】
例示的な実施例を開示したが、特許請求の範囲に定められる本発明の実施例の範囲内にとどまりながら、開示された実施例に変更及び変形が行われ得る。
【図面の簡単な説明】
【００６１】
【図１】従来のプロセッサ及びメモリ制御ハブを示したブロック図
【図２】一実施例による入力バッファを有するプロセッサを示したブロック図
【図３】一実施例によるシステムプラットフォームを示したブロック図
【図４】一実施例によるタイミング図
【図５Ａ】異なる実施例によるタイミング図
【図５Ｂ】異なる実施例によるタイミング図
【図５Ｃ】異なる実施例によるタイミング図
【図５Ｄ】異なる実施例によるタイミング図
【図５Ｅ】異なる実施例によるタイミング図
【図５Ｆ】異なる実施例によるタイミング図
【図６】一実施例による方法を示したフローチャート
【図７】一実施例による方法を示したフローチャート
【図８】一実施例による方法を示したフローチャート
【図９】開示された技術を使用して設計のシミュレーション、エミュレーション及び構成用の多様な設計表現又はフォーマットを示したブロック図
【図１】
0004817660.tif 000002
【図２】
0004817660.tif 000003
【図３】
0004817660.tif 000004
【図４】
0004817660.tif 000005
【図５Ａ】
0004817660.tif 000006
【図５Ｂ】
0004817660.tif 000007
【図５Ｃ】
0004817660.tif 000008
【図５Ｄ】
0004817660.tif 000009
【図５Ｅ】
0004817660.tif 000010
【図５Ｆ】
0004817660.tif 000011
【図６】
0004817660.tif 000012
【図７】
0004817660.tif 000013
【図８】
0004817660.tif 000014
【図９】
0004817660.tif 000015