(57)【要約】メモリにトランザクションを発行するマシーン可読媒体、方法及び装置が開示される。一部の実施例では、メモリコントローラは、選択基準に基づき保留中のトランザクションを選択し、選択されたトランザクションをメモリに発行するようにしてもよい。さらに、メモリコントローラは、あるライトトランザクションが１以上のライトトランザクション系列の最後のライトトランザクションであると判断すると、当該ライトトランザクションによりアクセスされたページをクローズするようにしてもよい。
2006514385.tif 000002
【特許請求の範囲】
【請求項１】
メモリへの書き込み系列の最後の書き込みを検出するステップと、
前記メモリへの最後の書き込みを検出することに応答して、前記メモリのページをクローズするステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
ライトバッファがエンプティであると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項３】
請求項１記載の方法であって、
前記メモリへの読み出しが保留されていると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項４】
請求項１記載の方法であって、
いくつかの保留中の書き込みが下限閾値と所定の関係を有すると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項５】
請求項１記載の方法であって、
前記クローズするステップは、前記ページをクローズするコマンドを前記メモリに発行することから構成されることを特徴とする方法。
【請求項６】
請求項１記載の方法であって、
前記クローズするステップは、前記メモリに前記ページをクローズさせる限定詞により前記最後の書き込みを前記メモリに発行することから構成されることを特徴とする方法。
【請求項７】
メモリのページへの最後の書き込みを検出するステップと、
前記メモリのページへの前記最後の書き込みを検出することに応答して、前記メモリのページをクローズするステップと、
から構成されることを特徴とする方法。
【請求項８】
請求項７記載の方法であって、
ライトバッファがエンプティであると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項９】
請求項７記載の方法であって、
前記メモリへの読み出しが保留されていると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項１０】
請求項７記載の方法であって、
いくつかの保留中の書き込みが下限閾値と所定の関係を有すると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項１１】
請求項７記載の方法であって、
前記メモリのページへのいくつかの保留中の書き込みが下限閾値と所定の関係を有すると判断することに応答して、前記最後の書き込みが検出されることを特徴とする方法。
【請求項１２】
請求項７記載の方法であって、
前記クローズするステップは、前記ページをクローズするコマンドを前記メモリに発行することから構成されることを特徴とする方法。
【請求項１３】
請求項７記載の方法であって、
前記クローズするステップは、前記最後の書き込みの後に前記メモリに前記ページをクローズさせる限定詞により前記最後の書き込みを前記メモリに発行することから構成されることを特徴とする方法。
【請求項１４】
メモリに発行されるリードトランザクションを格納するリードバッファと、
前記メモリに発行されるライトトランザクションを格納するライトバッファと、
前記メモリにリードトランザクションとライトトランザクションを発行し、ライトトランザクション系列の最後のライトトランザクションによりアクセスされた前記メモリのページをクローズするメモリインタフェースと、
選択基準に基づき、前記リードバッファと前記ライトバッファからトランザクションを選択し、前記メモリインタフェースに前記選択されたトランザクションを発行させ、前記ライトトランザクション系列の最後のライトトランザクションを検出することに応答して、前記メモリインタフェースに前記最後のライトトランザクションによりアクセスされたページをクローズするよう指示する制御論理と、
から構成されることを特徴とするメモリコントローラ。
【請求項１５】
請求項１４記載のメモリコントローラであって、
前記制御論理は、ライトバッファがエンプティであると判断することに応答して、ライトトランザクションが前記ライトトランザクション系列の最後のライトトランザクションであると判断することを特徴とするメモリコントローラ。
【請求項１６】
請求項１４記載のメモリコントローラであって、
前記制御論理は、前記リードバッファが少なくとも１つのリードトランザクションを有すると判断することに応答して、ライトトランザクションが前記ライトトランザクション系列の最後のライトトランザクションであると判断することを特徴とするメモリコントローラ。
【請求項１７】
請求項１４記載のメモリコントローラであって、
前記制御論理は、前記ライトバッファが前記メモリへのライトトランザクションの下限閾値を有すると判断することに応答して、ライトトランザクションが前記ライトトランザクション系列の最後のライトトランザクションであると判断することを特徴とするメモリコントローラ。
【請求項１８】
請求項１４記載のメモリコントローラであって、
前記制御論理は、前記ライトバッファが前記メモリのページへのライトトランザクションの下限閾値を有すると判断することに応答して、ライトトランザクションが前記ライトトランザクション系列の最後のライトトランザクションであると判断することを特徴とするメモリコントローラ。
【請求項１９】
請求項１４記載のメモリコントローラであって、
前記制御論理は、前記ライトバッファが前記メモリのページへのライトトランザクションを有しないと判断することに応答して、ライトトランザクションが前記ライトトランザクション系列の最後のライトトランザクションであると判断することを特徴とするメモリコントローラ。
【請求項２０】
請求項１４記載のメモリコントローラであって、
前記メモリインタフェースは、前記ライトトランザクション系列の最後のライトトランザクションによりアクセスされたページをクローズするコマンドを前記メモリに発行することを特徴とするメモリコントローラ。
【請求項２１】
請求項１４記載のメモリコントローラであって、
前記メモリインタフェースは、前記メモリに前記最後のライトトランザクションによりアクセスされたページをクローズする限定詞により前記最後のライトトランザクションを前記メモリに発行することを特徴とするメモリコントローラ。
【請求項２２】
揮発性ランダムアクセスメモリと、
リードトランザクションとライトトランザクションを発行するプロセッサと、
前記プロセッサにより発行されたリードトランザクション及びライトトランザクションをバッファリングし、選択基準に基づき前記揮発性ランダムアクセスメモリに前記リードトランザクションと前記ライトトランザクションを発行し、ライトトランザクション系列の最後のライトトランザクションによりアクセスされたページをクローズするメモリコントローラと、
から構成されることを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムであって、
前記メモリコントローラは、バッファリングされているライトトランザクションが存在しないと判断することに応答して、前記最後の書き込みを検出することを特徴とするシステム。
【請求項２４】
請求項２２記載のシステムであって、
前記メモリコントローラは、少なくとも１つのリードトランザクションが保留されていると判断することに応答して、前記最後の書き込みを検出することを特徴とするシステム。
【請求項２５】
請求項２２記載のシステムであって、
前記メモリコントローラは、前記メモリコントローラが下限閾値のライトトランザクションをバッファリングしていると判断することに応答して、前記最後の書き込みを検出することを特徴とするシステム。
【請求項２６】
請求項２２記載のシステムであって、
前記メモリコントローラは、前記メモリコントローラが前記ページへの下限閾値のライトトランザクションをバッファリングしていると判断することに応答して、前記最後の書き込みを検出することを特徴とするシステム。
【請求項２７】
請求項２２記載のシステムであって、
前記メモリコントローラは、前記最後の書き込みトランザクションによりアクセスされたページをクローズするプリチャージコマンドを前記メモリに発行することを特徴とするシステム。
【請求項２８】
請求項２２記載のシステムであって、
前記メモリコントローラは、前記メモリに前記最後の書き込みによりアクセスされたページをクローズさせる自動プリチャージ限定詞により前記最後の書き込みを前記メモリに発行することを特徴とするシステム。
【請求項２９】
メモリへの書き込み系列の最後の書き込みを検出するステップと、
前記メモリへの最後の書き込みを検出することに応答して、前記メモリのページがクローズされるべきであると通知するステップと、
を計算装置に実行させる複数の命令を有することを特徴とするマシーン可読媒体。
【請求項３０】
請求項２９記載のマシーン可読媒体であって、
前記複数の命令はさらに、ライトバッファがエンプティであると判断することに応答して、前記書き込み系列の書き込みが前記書き込み系列の最後の書き込みであると判断するステップを有することを特徴とする媒体。
【請求項３１】
請求項２９記載のマシーン可読媒体であって、
前記複数の命令はさらに、前記メモリからの読み出しが保留していると判断することに応答して、前記書き込み系列の書き込みが前記書き込み系列の最後の書き込みであると判断するステップを有することを特徴とする媒体。
【請求項３２】
請求項２９記載のマシーン可読媒体であって、
前記複数の命令はさらに、いくつかの保留中の書き込みが下限閾値と所定の関係を有すると判断することに応答して、前記書き込み系列の書き込みが前記書き込み系列の最後の書き込みであると判断するステップを有することを特徴とする媒体。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［背景］
計算装置は、典型的には、プロセッサ、メモリ、及びプロセッサと計算装置の他のコンポーネントにメモリへのアクセスを与えるメモリコントローラから構成される。このような計算装置のパフォーマンスは、当該計算装置のメモリ遅延により大きく影響される。一般に、「メモリ読み出し遅延」は、プロセッサがメモリコントローラにメモリからデータを抽出するよう要求した時点と、メモリコントローラがプロセッサに要求されたデータを提供した時点との間の期間である。同様に、「メモリ書き込み遅延」は、一般にプロセッサがメモリコントローラにデータをメモリに書き込むよう要求した時点と、メモリコントローラがプロセッサにデータがメモリ書き込まれた、あるいは書き込まれることを示した時点との間の期間となる。
【０００２】
計算装置のメモリ遅延の影響を軽減するため、メモリコントローラは典型的には、プロセッサのライトトランザクションをバッファリングし、以降におけるより適切な時点において当該トランザクションのデータをメモリに書き込む。プロセッサに関する限り、このライトトランザクションはメモリコントローラによりバッファリングされると完了する。従って、プロセッサはライトトランザクションのデータがメモリ実際に書き込まれるのを待機することなく継続される。他方、リードトランザクションは、データがメモリから読み出され、プロセッサにわたされるまで、プロセッサの観点からは完了しない。従って、計算装置のパフォーマンスは、典型的には、書き込み遅延より読み出し遅延により依存することとなる。この点から、メモリコントローラはライトトランザクションよりリードトランザクションを優先的に提供する傾向がある。
【０００３】
また、メモリ遅延は、遭遇するページヒット、ページミス及びページエンプティの割合による影響を受ける。計算装置は典型的には、メモリがチャネル、ランク、バンク、ページ及びカラムとして構成される階層的なメモリ構成から構成されている。具体的には、各チャネルは１以上のランクから構成され、各ランクは１以上のバンクから構成され、各バンクは１以上のページから構成されるかもしれない。さらに、各ページは１以上のカラムから構成されるかもしれない。メモリにアクセスするとき、メモリコントローラは典型的には、メモリのあるページを開き、この開かれたページの１以上のカラムにアクセスする。ページヒットアクセスでは、メモリコントローラは、前のメモリリクエストに対するページのカラムにアクセスした後、当該ページを開いたままにし、この開放されたページの異なるカラムにアクセスするようにしてもよい。ページミスアクセスでは、メモリコントローラは、あるバンクの開放されているページを閉じ、同一のバンクの他のページを開き、この新たに開放されたページのカラムにアクセスするようにしてもよい。ページミスは、一般にページヒットアクセスの約３倍の遅延を生じさせる。ページエンプティアクセスでは、メモリコントローラはあるバンクの閉じられているページを開放し、メモリトランザクションのためこの新たに開放されたページのカラムにアクセスするようにしてもよい。ページエンプティアクセスは、一般にはページヒットアクセスの約２倍の遅延を生じさせる。
【０００４】
［詳細な説明］
以下において、メモリのページを知能的にクローズすることにより、全体的なメモリ遅延を減少させる技術が説明される。以下の説明では、本発明のより完全なる理解を提供するため、論理実現形態、オペコード、オペランド指定手段、リソース分割／共有／複製実現形態、各種タイプ及び関連しあうシステムコンポーネント、及び論理分割／統合選択肢などの多数の具体的詳細が与えられる。しかしながら、本発明がこのような具体的詳細なしに実現可能であるということは、当業者には理解されるであろう。他の実施例では、本発明を不明瞭にすることを回避するため、制御構成、ゲートレベル回路及び完全なソフトウェア命令シーケンスは、詳細には示されていない。与えられた説明により、当業者は過度に実験など行うことなく適切な機能を実現することができるであろう。
【０００５】
明細書において、「一実施例」、「ある実施例」、「実施例」などの記載は、説明されている実施例がある特徴または構成を備えてもよいが、すべての実施例がこの特徴や構成を必ずしも有する必要はないということを意味する。さらに、そのような表現は、必ずしも同一の実施例を参照している必要はない。さらに、ある特徴または構成がある実施例に関して説明されているとき、そのような特徴または構成を明示的には説明されない他の実施例に関して有効とすることは、当業者の知識の範囲内であると考えられる。
【０００６】
本発明の実施例は、ハードウェア、ファームウェア、ソフトウェアあるいはそれらの任意の組み合わせにより実現されてもよい。本発明の実施例はまた、１以上のプロセッサにより読み込み及び実行されるマシーン可読媒体上に格納されている命令として実現されてもよい。マシーン可読媒体には、マシーン（計算装置など）により可読な形式により情報を格納または送信するための任意の機構が含まれてもよい。例えば、マシーン可読媒体には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響または他の形態の伝搬信号（搬送波、赤外線信号、デジタル信号など）などが含まれてもよい。さらに、あるアクションを実行するものとして、ファームウェア、ソフトウェア、ルーチン及び命令が説明されるかもしれない。しかしながら、このような説明は単なる便宜上与えられたものであり、実際にはそのようなアクションは、計算装置、プロセッサ、コントローラ、あるいはファームウェア、ソフトウェア、ルーチン、命令などを実行する他の装置から発生されるものであると理解されるべきである。
【０００７】
図１において、計算装置１００の実施例が示される。計算装置１００は、１以上のプロセッサ１０２から構成される。プロセッサ１０２は命令の実行に応答して、アクションを実行するようにしてもよい。例えば、プロセッサ１０２は、プロセッサバス１０４を介しメモリリードトランザクションやメモリライトトランザクションなどの処理を発行するようにしてもよい。
【０００８】
計算装置１００はさらに、チップセット１０６を有するようにしてもよい。チップセット１０６は、プロセッサ１０２をメモリ１０８、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）ファームウェア１１０及び他のコンポーネント１１２（マウス、キーボード、ビデオコントローラ、ハードディスク、フロッピー（登録商標）ディスクなど）に接続する１以上の集積回路パッケージまたはチップから構成されてもよい。チップセット１０６は、プロセッサバス１０４を介しプロセッサ１０２からのトランザクションを受信し、プロセッサ１０２にトランザクションを発行するためのプロセッサバスインタフェース１１４を有するようにしてもよい。チップセット１０６はまた、メモリバス１１８を介しリード及びライトトランザクションをメモリ１０８に発行するメモリコントローラ１１６を有するようにしてもよい。チップセット１０６はさらに、例えば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）バス、ＬＰＣ（Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ）バス及び／または他のＩ／Ｏバスなどのバス１２０を介し他のコンポーネント１１２とアクセスするための１以上のコンポーネントインタフェース（図示せず）を有するようにしてもよい。
【０００９】
一実施例では、ＢＩＯＳファームウェア１１０は、プロセッサ１０２、チップセット１０６及び計算装置１００の他のコンポーネントを初期化するため、システムのスタートアップ中に計算装置１００が実行するルーチンから構成される。さらに、ＢＩＯＳファームウェア１１０は、計算装置１００がそれの１以上のコンポーネントと通信するのに実行するルーチンまたはドライバを有するようにしてもよい。
【００１０】
メモリ１０８は、メモリコントローラ１１６がデータの読み書きを行うアドレス指定可能な記憶領域を設ける記憶装置から構成される。メモリ１０８は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ装置、ＱＤＲ（Ｑｕａｄ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ装置、あるいは他の揮発性または不揮発性記憶装置などの１以上の各種記憶装置から構成されてもよい。さらに、メモリ１０８は、階層的に構成されてもよい。例えば、メモリ１０８は、チャネル、ランク、バンク、ページ及びカラムにより構成されてもよい。
【００１１】
図２に示されるように、メモリコントローラ１１６は、リードバッファ２００とライトバッファ２０２から構成されるライトキャッシュを有するようにしてもよい。メモリコントローラ１１６はさらに、制御論理２０４とメモリインタフェース２０６を有するようにしてもよい。リードバッファ２００は、要求されたデータがメモリ１０８から抽出され、要求元（プロセッサ１０２など）に返されるまで、リードトランザクションのアドレス及びデータをバッファリングするようにしてもよい。同様に、ライトバッファ２０２は、データがメモリ１０８に書き込まれるまで、ライトトランザクションのアドレス及びデータをバッファリングするようにしてもよい。リードバッファ２００とライトバッファ２０２はそれぞれ、１以上のトランザクションのバッファリングをサポートするようにしてもよい。
【００１２】
制御論理２０４は、様々な基準に基づきバッファ２００と２０２からトランザクションを選択し、メモリインタフェース２０６に選択されたトランザクションを実行するよう要求するようにしてもよい。コンピュータのパフォーマンスは、典型的には、メモリ書き込み性能よりメモリ読み出し性能により従属する。従って一実施例では、制御論理２０４は一般にライトトランザクションよりリードトランザクションを優先し、リードバッファが空になるまでライトトランザクションを待機させる。他の実施例では、制御論理２０４はさらに、ライトバッファ２０２のデータをメモリ１０８に書き込む前に、データをライトキャッシュ１９８から削除（ｅｖｉｃｔ）しなければならなくなるまで待機するようにしてもよい。
【００１３】
しかしながら、制御論理２０４は、例えば、ライトバッファ２０２がフルになったり、あるいはライトバッファ２０２における保留中のライトトランザクション数が、ライトバッファ２０２がほとんどフルになったことを示す上限閾値と所定の関係を有するなどの特定の状態の下では、リードトランザクションよりライトトランザクションを優先して選択するようにしてもよい。この場合、制御論理２０４は、ライトバッファを完全にフラッシュ（ｆｌｕｓｈ）し、これにより、保留中のすべてのライトトランザクションを実行のためにメモリインタフェース２０６に与えるようにしてもよい。あるいは制御論理２０４は、ライトバッファ２０２を部分的にフラッシュするようにしてもよい。例えば、制御論理２０４は、メモリインタフェース２０６に所定数のライトトランザクション（例えば、４個など）を与えるようにしてもよいし、あるいは保留中のライトトランザクション数が下限閾値と所定の関係を有するようになるまで、ライトバッファ２０２からライトトランザクションをメモリインタフェース２０６に与えるようにしてもよい。
【００１４】
制御論理２０４はさらに、ライトキャッシュ１９８に格納されているデータによりリードトランザクションを満足するようにしてもよい。メモリコントローラ１１６がメモリ１０８からデータを抽出することなくリクエストを満たすことができるため、ライトバッファ２０２からのデータによりリードトランザクションを満たすことは、リードトランザクションの遅延を減少させるかもしれない。さらに、ライトバッファ２０２のキャッシュされているデータによりリードトランザクションを行うことは、メモリコントローラ１１６とメモリ１０８との間の帯域幅を利用するリードトランザクションは少数であるため、他のリードトランザクションの遅延を減少させるのに役立つかもしれない。さらに、制御論理２０４は、ライトバッファ２０２において、メモリ１０８の同一の場所を対象とするライトトランザクションのデータを合成するようにしてもよい。再び、ライトバッファ２０２においてライトトランザクションを合成することは、ライト合成がメモリコントローラ１１６とメモリ１０８の間のライトトランザクション数を減少させるため、メモリトランザクションの遅延を減少させるかもしれない。
【００１５】
メモリインタフェース２０６は、リードトランザクションに応答して、メモリ１０８からデータを読み出し、ライトトランザクションに応答してメモリ１０８にデータを書き込むようにしてもよい。特に、メモリインタフェース２０６は、トランザクションのアドレスを復号し、読み出し及び／または書き込みのためメモリ１０８のページを開くため、メモリ選択信号をメモリに印加するようにしてもよい。さらに、メモリインタフェース２０８は、プレチャージコマンドを発行することにより、あるいはトランザクション実行後にトランザクションのページをメモリ１０８にクローズさせる自動プレチャージ限定詞（ｑｕａｌｉｆｉｅｒ）によりトランザクションをメモリ１０８に発行することにより開放されているページをクローズするようにしてもよい。
【００１６】
上述のように、制御論理２０４は、ライトトランザクションよりもリードトランザクションを優先させる。従って、ライトトランザクションのかなり後に、プロセッサ１０２により発行されたリードトランザクションの間に配置される傾向がある。このような環境において、リードトランザクションはそれらの時間的分離により、ライトトランザクションへの参照の十分でない空間的局所性（ｓｐａｔｉａｌ  ｌｏｃａｌｉｔｙ）を示す傾向がある。ライトトランザクションによりアクセスされるページが開放されたままである場合、ライトトランザクション系列の最後のライトトランザクションに続くリードトランザクションは、ページヒットアクセスに対するページミスアクセスのより高い比率をもたらす傾向がある。全体的なメモリ遅延を減少させるため、一実施例では、制御論理２０４は、最後のライトトランザクションに続くリードトランザクションがページミスアクセスを生じさせる確率を低下させるように、最後のライトトランザクションによりアクセスされるページを閉じる。上述のように、ページエンプティアクセスは、パージヒットアクセスの約２倍の遅延を有するが、ページミスアクセスはページヒットアクセスの約３倍の遅延を有する。従って、連続する１以上のライトトランザクションの最後のライトトランザクションによりアクセスされるページを放置することがページヒットアクセスより多くのページミスアクセスを生じさせる場合には、当該ページをクローズすることによりライトトランザクションに続くリードトランザクションの遅延を減少させることができるであろう。
【００１７】
従って、図３に示されるように、メモリ遅延を減少させようとするとき、メモリコントローラ１１６はトランザクションをスケジューリングし、プロセッサ１０２が受ける全体的なメモリ遅延を減少させるようにページを閉じるようにしてもよい。図３の方法は、一般に１以上のライトトランザクション系列の最後のライトトランザクションによりアクセスされたメモリ１０８のページを閉じる。しかしながら、メモリコントローラ１１６は、追加的な基準に基づき、メモリ１０８のページを閉じるようにしてもよい。
【００１８】
メモリトランザクションを発行するのに利用可能なタイムスロットが存在すると判断すると、制御論理２０４は、ブロック３００において、保留中のメモリトランザクションが存在するか判断するようにしてもよい。特に、制御論理２０４は、リードバッファ２００とライトバッファ２０２の何れもがメモリ１０８に対し発行されるトランザクションを持たない場合、保留中のメモリトランザクションが存在しないと判断するようにしてもよい。保留中のトランザクションがないと判断されると、制御論理２０４は、メモリトランザクションを発行する次の利用可能なタイムスロットまで図３のスケジューリング方法から抜け出すか、あるいはアイドル状態に入るようにしてもよい。
【００１９】
そうでない場合、制御論理２０４は、ブロック３０２において、選択基準または規則に基づき、リードバッファ２００またはライトバッファ２０２からトランザクションを選択するようにしてもよい。例えば一実施例では、制御論理２０４は、ライトトランザクションよりリードトランザクションを優先し、リードバッファ２００がリードトランザクションを有する場合には、リードトランザクションを選択するようにしてもよい。リードバッファ２００がメモリ１０８に発行されるリードトランザクションを持たないとき、制御論理２０４は、ライトバッファ２０２からライトトランザクションを選択するようにしてもよい。他の実施例では、制御論理２０４はさらに、リードバッファ２００が保留中のリードトランザクションを有するとしても、ライトバッファ２０２からライトトランザクションを選択するようにしてもよい。特に、ライトバッファ２０２がフルであると判断することにより、あるいはライトバッファ２０２がフルに近いということを示すライトバッファの上限閾値をライトバッファ２０２が有すると判断することにより、制御論理２０４はライトトランザクションを選択するようにしてもよい。さらなる他の実施例では、ライトバッファ２０２がフルまたはフルに近いということが検出された後、制御論理２０４は、所定数（例えば、４個）のライトトランザクションが選択されるまで、あるいはライトバッファ２０２がエンプティとなるまで、あるいはライトバッファ２０２がライトトランザクションの下限閾値を有するまで、リードトランザクションに対して優先的にライトトランザクションを選択し続けるようにしてもよい。例えば、この下限閾値は、ライトバッファ２０２が半分埋まっていることに対応するようにしてもよい。
【００２０】
ブロック３０４において、制御論理２０４は、選択されたトランザクションがリードトランザクションであるか、あるいはライトトランザクションであるか判断するようにしてもよい。選択されたトランザクションがリードトランザクションであると判断されると、ブロック３０６において、制御論理２０４は、メモリ１０８から要求されたデータを取得するため、メモリインタフェース３０８に選択されたリードトランザクションをメモリに発行させるようにしてもよい。そうでない場合、ブロック３０８において、制御論理２０４は、選択されたライトトランザクションが１以上のライトトランザクション系列の最後のライトトランザクションであるか判断するようにしてもよい。例えば一実施例では、制御論理２０４は、ライトバッファ２０２が他の保留中のトランザクションを持っていないと判断されると、選択されたライトトランザクションが最後のライトトランザクションであると判断するようにしてもよい。他の実施例では、制御論理２０４はさらに、リードバッファ２００がメモリ１０８に発行する少なくとも１以上のリードトランザクションを有すると判断すると、選択されたライトトランザクションが最後のライトトランザクションであると判断するようにしてもよい。制御論理２０４はさらに、ライトバッファが選択されたライトトランザクションによりアクセスされるメモリのページに対するライトトランザクションをもはや持たないと判断すると、選択されたライトトランザクションが当該系列の最後のライトトランザクションであると判断するようにしてもよい。制御論理２０４はまた、メモリインタフェース２０６が連続する所定数のライトトランザクションをメモリ１０８に発行することに応答して、選択されたライトトランザクションが最後のライトトランザクションであると判断するようにしてもよい。さらに、制御論理２０４は、ライトバッファ２０２がライトトランザクションの下限閾値を有すると判断すると、選択されたライトトランザクションが当該系列の最後のライトトランザクションであると判断するようにしてもよい。制御論理２０４は、上記の基準及び／または他の基準の１以上に基づき、１以上のライトトランザクションの系列の最後のライトトランザクションを決定するようにしてもよいということは理解されるべきである。
【００２１】
選択されたライトトランザクションがライトトランザクション系列の最後のライトトランザクションではないと判断されると、ブロック３１０において、制御論理２０４は、当該ライトトランザクションにより供給されるデータをメモリ１０８に書き込むため、メモリインタフェース２０６に選択されたライトトランザクションをメモリ１０８に発行させるようにしてもよい。そうでない場合、ブロック３１２において、制御論理２０４は、メモリインタフェース２０６に当該ライトトランザクションによりアクセスされたページを閉じるよう指示するようにしてもよい。
【００２２】
ライトトランザクションによりアクセスされたページを閉じるよう指示されると、ブロック３１４において、メモリインタフェース２０６は、選択されたライトトランザクションをメモリ１０８に発行し、当該ライトトランザクションによりアクセスされたページを閉じるようにしてもよい。一実施例では、メモリインタフェース２０６は、このライトトランザクションをメモリ１０８に発行し、その後、ライトトランザクションの後に当該ページを閉じるプリチャージコマンドをメモリ１０８に発行するようにしてもよい。他の実施例では、メモリインタフェース２０６は、ライトトランザクションのデータがページに書き込まれた後、ライトトランザクションによりアクセスされるページをメモリ１０８にクローズさせる自動プリチャージ限定詞により、ライトトランザクションをメモリ１０８に発行するようにしてもよい。
【００２３】
計算装置１００は、例えば、ＲＯＭ、ＲＡＭ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、及び／または電気、光、音響または搬送波、赤外線信号、デジタル信号、アナログ信号などの他の形態の伝搬信号などのマシーン可読媒体の命令を実行することに応答して、本実施例による方法のすべて、またはその一部を実行するようにしてもよい。さらに、本実施例による方法はトランザクション系列として示されたが、一部の実施例では、計算装置１００はパラレルまたは異なる順序により本方法のトランザクションを実行するようにしてもよい。
【００２４】
本発明の特徴が実施例を参照することにより説明されたが、本開示は限定的に解釈されることを意図したものではない。これら実施例の様々な改良と共に、本発明が属する当業者には明らかな他の実施例は、本発明の趣旨及び範囲内に属するものとみなされる。
【図面の簡単な説明】
【００２５】
【図１】図１は、計算装置の一実施例を示す。
【図２】図２は、図１の計算装置のメモリコントローラの一実施例を示す。
【図３】図３は、トランザクションをスケジューリングし、メモリのページを閉じるのに図２のメモリコントローラにより用いられる方法の一実施例を示す。
【図１】
2006514385.tif 000003
【図２】
2006514385.tif 000004
【図３】
2006514385.tif 000005
【国際調査報告】
2006514385.tif 000006
2006514385.tif 000007
2006514385.tif 000008