(57)【特許請求の範囲】
【請求項１】
既存の専用のタグ付け機構を有さない、キャッシュとして構成されるメモリデバイスであって、
ページベースのメモリを含み、
各ページは、第1の部分がデータを含み、第2の部分が前記第1の部分内の前記データに対応するメタデータを含むように、前記第1の部分および前記第2の部分に分割され、
前記メタデータは、前記第1の部分内に記憶される前記データのためのアドレスタグ情報を少なくとも含み、
2つ以上のクロックサイクルにわたる前記メタデータのビットのパイプライン化されたアクセスの間に前記アドレスタグ情報が、前記メタデータのその他のビットよりも前にアクセスできるように、前記メタデータ内のビットの相対配置は、パイプライン化されたアクセス順に基づいている、
メモリデバイス。
【請求項２】
前記メタデータは、同じページ内のデータのみに対応する、請求項1に記載のメモリデバイス。
【請求項３】
前記メタデータは、誤り訂正符号(ECC)情報をさらに含む、請求項1に記載のメモリデバイス。
【請求項４】
前記第1の部分内に記憶されるデータについての割出しは、前記アドレスタグ情報の中間ビットに基づく、請求項1の記載のメモリデバイス。
【請求項５】
前記メタデータは、ディレクトリ情報、メモリコヒーレンシ情報、またはダーティ/有効/ロック情報のうちの少なくとも1つをさらに含む、請求項1に記載のメモリデバイス。
【請求項６】
前記メモリデバイスは、広い入出力インターフェース、真性シリコンビア(TSV)インターフェース、またはスタック型インターフェースのうちの少なくとも1つを介してマスタデバイスに結合する、請求項1に記載のメモリデバイス。
【請求項７】
前記メモリデバイスは、ダイナミックランダムアクセスメモリ(DRAM)デバイスである、請求項6に記載のメモリデバイス。
【請求項８】
少なくとも1つの半導体ダイに統合されている、請求項1に記載のメモリデバイス。
【請求項９】
既存の専用のタグ付け機構を有さないページベースのメモリデバイスをキャッシュとして構成する方法であって、
前記メモリデバイスの各ページを、データを含む第1の部分と、前記第1の部分内の前記データに対応するメタデータを含む第2の部分とに分割するステップであって、前記メタデータが、前記第1の部分内に記憶される前記データのためのアドレスタグ情報を少なくとも含む、ステップと、
2つ以上のクロックサイクルにわたる前記メタデータのビットのパイプライン化されたアクセスの間に、前記アドレスタグ情報が、前記メタデータのその他のビットよりも前にアクセスできるように、パイプライン化されたアクセス順に基づき、前記メタデータのビットを配列するステップと
を含む、方法。
【請求項１０】
前記アドレスタグ情報に基づき、所望の情報が前記ページ内に存在するかどうかを判定するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
前記所望の情報が前記ページ内に存在する場合、前記メモリデバイスから前記所望の情報を読むステップをさらに含む、請求項10に記載の方法。
【請求項１２】
前記所望の情報が前記ページ内に存在しない場合、所定の動作を行うステップをさらに含む、請求項10に記載の方法。
【請求項１３】
前記メタデータは、誤り訂正符号(ECC)情報をさらに含む、請求項9に記載の方法。
【請求項１４】
前記アドレスタグ情報の中間ビットに基づき、前記第1の部分内に記憶される前記データを割出すステップをさらに含む、請求項9の記載の方法。
【請求項１５】
別個のキャッシュ内に前記メタデータを記憶するステップをさらに含む、請求項9に記載の方法。
【請求項１６】
オープンページのメタデータのみを前記別個のキャッシュ内に記憶するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
プロセッサによって実行されたとき、既存の専用のタグ付け機構を有さないページベースのメモリデバイスをキャッシュとして構成するための動作を前記プロセッサに行わせるコードを含むコンピュータ可読記憶媒体であって、
前記メモリデバイスの各ページを、データを含む第1の部分と、前記第1の部分内の前記データに対応するメタデータを含む第2の部分とに分割するためのコードであって、前記メタデータが、前記第1の部分内に記憶される前記データのためのアドレスタグ情報を少なくとも含む、コードと、
2つ以上のクロックサイクルにわたる前記メタデータのビットのパイプライン化されたアクセスの間に、前記アドレスタグ情報が、前記メタデータのその他のビットよりも前にアクセスできるように、パイプライン化されたアクセス順に基づき、前記メタデータのビットを配列するためのコードと
を含む、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する実施形態は、高速、低電力アプリケーション用のメモリ構造を構成することを対象とする。より詳細には、例示的な実施形態は、キャッシュメモリとして使用するための大型ダイナミックランダムアクセスメモリ(DRAM)構造を構成することを対象とする。
【背景技術】
【０００２】
コンピュータ処理システムは、一般に、いくつかのレベルのメモリを備える。第1レベルキャッシュなどのキャッシュは、処理コアすなわち中央処理ユニット(CPU)に最も近く、メインメモリは、CPUから最も離れている。キャッシュは、特に、CPUに近く、オンチップで配置される場合、高速かつ小型である必要がある。したがって、通常、CPUに最も近いキャッシュは、高速を特徴とするスタティックランダムアクセスメモリ(SRAM)から形成される。しかしながら、また、SRAMは、高コストになる。他方では、ダイナミックランダムアクセスメモリ(DRAM)は、SRAMよりも遅いが、あまりコストもかからない。したがって、従来、DRAMは、CPUからより離れた、メインメモリにより近い場所で見られていた。
【０００３】
最近の技術の進歩により、大記憶容量および低電力の特徴を有するDRAMシステムを製造することが実現可能になった。たとえば、広い入出力(IO)インターフェースおよびエネルギー効率が高いスタッキングにより、DRAMにおいて、大記憶容量(2GBもの大きさ)、高帯域データ転送、および以前から知られていたものよりも低いレイテンシも有するDRAMシステムの製造が可能になった。
【０００４】
したがって、比較的大型の記憶装置により、低電力スタック型DRAMシステムが、一部の低電力組込みシステムおよびハンドヘルドデバイスアプリケーションにおいてオンチップメインメモリシステムとして動作することが可能になり得る。しかしながら、そのような低電力スタック型DRAMシステムは、その記憶容量がメインメモリのニーズを満たすほど十分には大きくない可能性があるとき、高性能処理システム内のメインメモリに対する適切な代替物となり得ない。
【０００５】
他方では、ここで、低エネルギーおよび高速を特徴とする低電力スタック型DRAMシステムは、CPUに近いキャッシュには、より魅力的であり得る。たとえば、低電力スタック型DRAMシステムは、CPUの近くに配置するにはあまりにも遅い可能性がある、従来のDRAMシステム用のキャッシュとして構成され得る。したがって、低電力スタック型DRAMシステムは、CPUに近いキャッシュメモリに、以前から知られていたものよりも大きい記憶容量を提供し得る。
【０００６】
しかしながら、現在利用可能な市販の低電力スタック型DRAMモデルは、CPUに近いそのようなキャッシュメモリアプリケーションに対する、その即応利用性を限定し得るいくつかの制限を受ける可能性がある。たとえば、市販の低電力スタック型DRAMシステムは、誤り訂正符号(ECC)と同様の機能を備えていない可能性がある。DRAMセルは、漏れやすく、非常に誤りを起こしやすいことがある。したがって、ECC機構などの、誤り検出および誤り訂正の機能の欠如により、低電力スタック型DRAMシステムは、CPUに近いキャッシュに使用するのに、または誤り防止システム内の他の任意の種類の記憶域として使用するのに適さないことがある。
【０００７】
キャッシュメモリとして使用するために市販の低電力スタック型DRAMシステムを構成する際の別の障害は、タグ付け機構などの、高速データアクセスを可能にする機能に対するサポートの欠如である。よく知られているように、キャッシュメモリは、キャッシュ内の各コピーラインに対応するメモリアドレスを指定するタグ付け機構を含む。効率的なタグ構造により、キャッシュメモリ内の要求データに対する高速検索が可能になる。しかしながら、市販の低電力スタック型DRAMシステムは、タグ付け機構の特徴を示さず、それによって、タグ付き記憶に関する代替技法がない場合に、キャッシュとして使用するのに適さなくなる。DRAMと併せて使用するために適切なタグ付け機構を設計することは、いくつかの課題をもたらす。たとえば、大型DRAM(たとえば、2GB)の場合、タグフィールド自体は、数MBの記憶空間を必要とするであろう。この大きいタグ空間オーバーヘッドは、オンチップにおけるタグの配置および構成にいくつかの課題をもたらす。
【０００８】
さらに、低電力スタック型DRAMのタグ付け機構の設計は、より大きいセット連想度のためのタグ空間を犠牲にすることに関わる潜在的なバランスによって複雑になっており、したがって、高いミス率の問題を招く。同様に、マルチプロセッサ環境におけるディレクトリ情報または他のメモリコヒーレンシ情報に関連するインテリジェンスを含む低電力スタック型DRAMシステムを設計する際にも、課題がもたらされる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、有利なことに、CPUに近いキャッシュメモリアプリケーションに使用するために低電力スタック型DRAMシステムを活用するために、従来のDRAMシステムにおける、誤りに対する感度、効率的なタグ付け機構および関連するインテリジェンス機能の欠如によってもたらされた課題を克服する必要がある。
【課題を解決するための手段】
【００１０】
本発明の例示的な実施形態は、キャッシュメモリとして使用するための大型ダイナミックランダムアクセスメモリ(DRAM)構造を構成するためのシステムおよび方法を対象とする。
【００１１】
たとえば、例示的な実施形態は、ページベースのメモリを含む、既存の専用のメタデータのないメモリデバイスを対象としており、各ページは、第1の部分がデータを含み、第2の部分が第1の部分内のデータに対応するメタデータを含むように、第1の部分および第2の部分に分割される。例示的な実施形態では、メタデータは、誤り訂正符号(ECC)、アドレスタグ、ディレクトリ情報、メモリコヒーレンシ情報、またはダーティ(dirty)/有効/ロック情報のうちの少なくとも1つを含み得る。
【００１２】
別の例示的な実施形態は、既存の専用のメタデータのないページベースのメモリデバイスを構成する方法を対象としており、本方法は、メモリデバイスのページのメタデータ部分からメタデータを読むステップと、メタデータに基づいてページの特徴を判定するステップとを含む。
【００１３】
さらに別の例示的な実施形態は、既存のメタデータのないページベースのメモリデバイスを含むメモリシステムを対象としており、メモリデバイスのページは、第1の記憶手段および第2の記憶手段と、第1の記憶手段内に記憶されるメタデータと、第2の記憶手段内に記憶されるデータとを含み、第1の記憶手段内のメタデータは、第2の記憶手段内のデータと関連している。
【００１４】
別の例示的な実施形態は、プロセッサによって実行されたとき、既存の専用のメタデータのないページベースのメモリデバイスを構成するための動作をプロセッサに行わせる、コードを含む非一時的コンピュータ可読記憶媒体を対象としており、非一時的コンピュータ可読記憶媒体は、メモリデバイスのページのメタデータ部分からメタデータを読むためのコードと、メタデータに基づいてページの特徴を判定するためのコードとを含む。
【００１５】
添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。
【図面の簡単な説明】
【００１６】
【図１】関連するメタデータのないデータのページを含む、従来のDRAMシステムを示す図である。
【図２】ページ内に記憶されたデータに対応する、ページ内に関連するメタデータを含むことによって、DRAMシステムのページがキャッシュに使用するために構成される、例示的な実施形態によるDRAMシステムを示す図である。
【図３】キャッシュとして使用するために構成された例示的なDRAMシステムのパイプライン化されたアクセスに関する例示的なタイムラインを示す図である。
【図４】キャッシュとして使用するための、既存のメタデータのないページベースのメモリシステムを構成する例示的な方法を詳述するフローチャートである。
【発明を実施するための形態】
【００１７】
本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様を開示する。本発明の範囲から逸脱することなく代替的な実施形態を考案することができる。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素については詳細に説明しないか、または省略する。
【００１８】
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
【００１９】
本明細書において使われる用語は、特定の実施形態を記載するためのものに過ぎず、本発明の実施形態を限定することは意図していない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または、「含んでいる(including)」という用語は、本明細書で用いられる場合、述べられた特徴、整数、ステップ、動作、要素、および/または、構成要素の存在を指定するが、1つもしくは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/または、これらの群の存在または追加を排除しないことが理解されよう。
【００２０】
さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実行すべき一連の動作に関して説明される。本明細書で説明する様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることが認識されよう。さらに、本明細書で説明するこれらの一連の動作は、実行時に、関連するプロセッサに本明細書で説明する機能を実施させるコンピュータ命令の対応するセットを内部に記憶した、任意の形式のコンピュータ可読記憶媒体内で全体として具現化されるものと見なすことができる。したがって、本発明の様々な態様は、そのすべてが特許請求する主題の範囲内に入ることが企図されているいくつかの異なる形式で具現化され得る。さらに、本明細書で説明する実施形態ごとに、そのような任意の実施形態の対応する形式を、たとえば、記載の動作を実施する「ように構成された論理」として本明細書で説明することがある。
【００２１】
先に示したように、低電力スタック型DRAMシステムなどの、現在利用可能な市販のDRAMシステムは、極めて誤りやすい可能性があり、したがって、キャッシュメモリに必要なデータ忠実度(data fidelity)の重要な基準を満たしていない可能性がある。したがって、例示的な実施形態は、ECC機構などの、誤り検出および誤り訂正の機能が導入される、そのような低電力スタック型DRAMシステムの構成を含む。実施形態は、最小の記憶空間オーバーヘッドおよび高速アクセスを含むECCビットを導入するために、低電力スタック型DRAMシステムの、データ記憶空間およびページベースのメモリアーキテクチャの効率的な利用も含む。
【００２２】
例示的な実施形態は、利用可能な市販の低電力スタック型DRAMアーキテクチャが、高速データ検索のために組み込まれたタグ付け機構をなくすことも実現する。従来、DRAMシステムは、ページ内にデータを記憶する。たとえば、DRAMシステムは、1KBページサイズで記憶されたデータを含み得る。実施形態は、セットアソシアティブキャッシュ内で各ページを1つのセットとして扱うことにより、ページベースのDRAMメモリを、タグ付け機構を有するキャッシュと同様のメモリに転換することを実現する。以下、一般性を失わずに、説明は、理解しやすいように、単一のセットを含むキャッシュとして構成された低電力スタック型DRAMシステムの単一のページに焦点を当てる。その際、ページ内の各ラインは、セットアソシアティブキャッシュのウェイとして扱うことができ、タグを各ラインに適用することができる。タグは、特定のメモリ位置がキャッシュ内に存在するかどうかを特定するのに必要なビットを含む。一般に、メモリアドレスは、ライン内のバイトを特定するためにメモリアドレスの数個の選択されたビットを使用し、メモリアドレスが対応するセットを特定するために数個の選択された他のビットを使用し、タグを形成するために残りのアドレスビットを利用することができるように構成される。しかしながら、このプロセスによって導入されるタグフィールドは、その記憶域、構成、および配置に課題をもたらす。
【００２３】
第1に、タグフィールドは、かなりの記憶空間を必要とする。たとえば、一実施形態は、キャッシュメモリとして1キロバイト(KB)のページサイズを有する低電力スタック型DRAMの構成を含み得る。したがって、1KBページは、64バイト(B)ラインを含む、16ウェイキャッシュとして構成され得る。物理メモリが1テラバイト(TB)サイズであると仮定すると、物理メモリ空間をアドレス指定するために40ビットが必要になり得る。それに応じて、64Bライン内の1バイトを特定するのに6ビット、1セットを特定するのに21ビットが必要になり得る。したがって、約200万セットを含む、1KB16ウェイDRAMキャッシュ内の各ラインに関するタグを形成するのに、40-(6+21)、すなわち13ビットが必要になり得る。したがって、16ウェイの各々につき1つのキャッシュラインを含む16ウェイキャッシュでは、タグビットの数は、13x16、すなわち208ビットとなり得る。諒解されるように、1KBページサイズのDRAMデータ各々に関する208ビットのタグは、かなりのタグ空間オーバーヘッドをもたらす。
【００２４】
第2に、タグ空間を低減するために、キャッシュの記憶容量全体が不変のままであるように、キャッシュラインサイズは増大し、キャッシュラインエントリの数は減少する可能性があることが認識されよう。しかしながら、キャッシュエントリの数を減少させるという犠牲を払ってキャッシュラインサイズを増大させることにより、ミス率が増大する可能性がある。さらに、また、キャッシュラインサイズを増大させることにより、キャッシュラインが満たされるか、または読み出される際、転送されるデータ量を増大させるという影響を及ぼす。さらに、キャッシュラインおよびページのインテリジェンス機構は、要求データを検索するプロセスにおいてアクセスする必要がある可能性があるページの数に関する重要な意味を有する。したがって、例示的な実施形態は、タグ空間オーバーヘッドおよび構成に関わる課題に対する効率的な解決策について説明する。たとえば、いくつかの実施形態は、ページが読まれると、タグがヒットを示す場合、ページがオープンのまま、対応するデータにアクセスすることができるように、ページ自体の内に、ページ内のデータに対応するタグフィールドを含む。さらに、また、例示的な実施形態は、マルチプロセッサ環境におけるディレクトリ情報およびメモリコヒーレンシ情報の効率的な構成に対するニーズを考慮に入れる。
【００２５】
本明細書で使用する「メタデータ」という用語は、例示的な実施形態のDRAMシステムに導入されるデータに対応する情報および誤り訂正符号の様々なビットを包括的に指す。たとえば、ECCビット、タグ情報(当技術分野で知られているように、ダーティ/有効/ロックモードを含む)、ディレクトリ情報、および他のメモリコヒーレンシ情報は、メタデータと総称することができる。例示的な実施形態は、そのようなメタデータのないDRAMシステムにメタデータを導入するための技法を対象とする。さらに、実施形態は、DRAMシステムを信頼性が高く高効率のキャッシュシステムとして構成するために、効率的な記憶域、構成、およびメタデータへのアクセスを対象とする。
【００２６】
上記のような低電力スタック型DRAMシステムを構成することが参照され、それに焦点が当てられるが、本明細書で説明する実施形態は、そのように限定されることなく、メタデータのない任意のメモリシステムを、メタデータを含むメモリシステムに転換するように容易に拡張することができることが諒解されよう。
【００２７】
以下には、誤り検出/訂正機能のない低電力スタック型DRAMシステムなどのDRAMシステムを、効率的なECC実装形態を含む例示的なDRAMシステムに構成する例示的なプロセスについて説明する。図1を参照すると、ページ102を含む、従来のDRAMシステム100が示されている。ページ102は、1KBのサイズであり、図示のように、16個の行(ワードライン)と、8x64=512個の列(ビットライン)とに分割されている。ページ102は、1KBのDRAMビットセルにデータを記憶するが、各ビットセルは、電荷の形態の情報を記憶するキャパシタから形成される。
【００２８】
先に説明したように、DRAMシステム100は、ビットセルキャパシタが漏れやすいので、揮発性である。内部に記憶された情報を保持するために、キャパシタの定期的なリフレッシュが必要になる。さらに、情報は、電磁界のゆらぎなどの様々な外的要因によってもたらされる誤りを受けやすい。したがって、誤り検出および訂正は、記憶されたデータの忠実度を確実にするために重要である。
【００２９】
誤り検出および訂正に関する一般的な技法は、ECCビットの使用を含む。ECCビットは、データビットに関連する冗長性のレベルを表す。この冗長性は、データの整合性をチェックするために使用される。ECCビットは、正しいことがわかっている元のデータ値に基づいて最初に計算される。単純な例として、ECCビットは、元のデータに存在する論理値「1」の数が奇数であるか、または偶数であるかをパリティ値が示すことができるように、パリティ値を表し得る。後の時点で、データに関するパリティ値が、再び生成され、次いで、提示され、ECCビットと比較され得る。不一致である場合、元のデータに少なくとも1つの誤りがもたらされたことが判定され得る。ECCの基本原理を使用して、高度な誤り分析および誤りが検出された場合に続く誤り訂正に関する、より複雑なアルゴリズムが当技術分野でよく知られている。当業者は、例示的な実施形態によって可能になる、特定のアプリケーション用の適切な誤り検出/訂正アルゴリズムを認識しているので、そのようなアルゴリズムの詳細な説明は、本明細書で提供しない。
【００３０】
ここで図1のDRAMシステム100に戻ると、たとえば、ページ102内にECCビットを導入するのに、いくつかのオプションが利用可能である。従来、ECCビットによってもたらされる12.5%のオーバーヘッドを含む、単一誤り訂正/二重誤り検出(SEC/DED)を有効にするために、64ビットの各データに、8ビットのECC情報が採用される。あらゆる64ビットのデータに関する8ビットのECCのそのような従来の実装形態は、市場における在庫品の入手しやすさによって動機を与えられ得ることを認識されたい。しかしながら、データと並べて組み込まれたECCビットのカスタマイズされた実装形態は、メモリ内の誤りを訂正するのに平均してより少ないビットが必要になるように、より効率的なSEC/DEDであることを可能にする。例示的な実施形態は、SEC/DEDに512ビットのデータ当り11個のECCビットを使用することによってオーバーヘッドを2.1%に、二重誤り訂正(DEC)に512ビットのデータ当り21個のECCビットを使用することによってオーバーヘッドを4.1%に縮小することが可能である。したがって、1KBすなわち1024バイトのデータを含むページ102は、16個の64B(512ビット)ラインにセグメント化され得る。したがって、SEC/DEDの実装形態は、1ページ当り16*11、すなわち176ビットのECCを必要とする可能性がある。
【００３１】
ここで図2を参照すると、1ページ内のECCビットの効率的な配置が示されている。図2は、例示的な実施形態に従って構成されたDRAMシステム200を示す。DRAMシステム200は、例示的な実施形態の低電力スタック型DRAMモデルから形成され得る。DRAMシステム200は、データビットと並んでECCビットを記憶するように構成されたページ202を含む。ページ202は、各ラインが64バイト(512ビット)を含む、16ウェイすなわちラインL0〜L15を含む。ラインL1〜L15は、データを記憶するために利用されるが、ラインL0は、メタデータのために割り当てられる。図2は、ラインL0内の16個の32ビットフィールドE0〜E15を示す。フィールドE0〜E15は、それぞれ、ラインL0〜L15のうちの1つに関するメタデータに一意に対応する。他の情報の中でも、フィールドE0〜E15は、ラインL0〜L15に関するECCビットを含み得る。
【００３２】
例示的な実施形態によると、ラインL1〜L15は、最初に、ページ202内に記憶すべきデータで満たされ得る。次いで、データラインL1〜L15の各々に関するECCビットを計算することができ、ECCビットは、それぞれ、フィールドE1〜E15内に記憶され得る。上記に示したように、ECCの11ビットは、512ビットラインL1〜L15の各々のSEC/DEDには十分であり得る。この例では、フィールドE1〜E15の各々の32ビットのうちの11個は、ECCビットによって占有し得て、したがって、以下でさらに説明するように、ラインL1〜L15に関係する他のメタデータ情報が使用するために21ビットを利用可能にする。フィールドE0に関しては、フィールドE1〜E15に関係するECC情報が、考えられる誤りからの保護をメタデータフィールドにも与えることができるように、フィールドE0内で利用可能にされ得る。いくつかの実装形態では、フィールドE0は、ECC計算を行うために0値に設定され得る。当業者は、上記の詳細な技法に基づいて特定のアプリケーションに関するECCの効率的な実装形態の詳細を認識するであろう。
【００３３】
ここで、図2のページ202内のデータを高速検索するためのタグ付け機構の効率的な実装形態に関する説明を提供する。先に紹介したように、物理メモリ空間全体が、1TBのサイズであることが仮定され得る。1TBの物理メモリ空間は、40ビットを用いてアドレス指定され得る。1TBの物理メモリ全体が64バイト(すなわち、2^6バイト)の粒度でアドレス指定されると仮定すると、1TB(すなわち、2^40バイト)の物理メモリは、2^34個のそのような64バイトラインを含むであろう。タグを形成するのに、合計27ビットのアドレス指定が必要ない。したがって、64バイトラインの各々に対応するための効率的なタグを形成するのに、40ビットのアドレス空間のうちの残りの13ビットで十分である。したがって、この例では、ラインL1〜L15に対応する、13ビットのタグ情報が、フィールドE1〜E15の各々に記憶され得る。
【００３４】
引き続き図2を参照すると、このようにしてフィールドE1〜E15内に記憶されたタグは、ページ202内のラインL1〜L15に対応するタグのすべてがページ202内に確実に含まれるようにする。ここでわかるように、対応するデータと同じページ内のタグのそのような構成は、有利なことに、ページ202がキャッシュとして構成される際、要求データに対するアクセスおよび検索の速度を改善する。
【００３５】
例示的な実施形態では、データ要求がDRAMシステム200のページ202に向けられる際、ページ202は、最初、検査のためにオープンされる。次に、ラインL0にアクセスされ、フィールドE1〜E15内のタグを含むメタデータが分析される。フィールドE1〜E15内のタグのうちの1つにヒットすると、ヒットを起こしたタグに対応するラインL1〜L15は、要求データを含むラインであると判定される。次いで、要求データを含むデータラインが、たとえば、読出動作の際に読み出され得る。他方では、フィールドE1〜E15内に記憶されたタグのいずれにもヒットしない場合、ページ202は要求データを含まないと迅速に判定することができ、ページ202は、迅速にクローズされ得る。代わりに、要求データが、キャッシュ内に存在せず、ミスを起こし、その結果、データが後にキャッシュ内に配置される場合、適正なページが、新規ラインのため、さらにミスの結果として書き戻す必要がある場合もある任意のエビクトされたラインのためにオープンされる。例示的な実施形態において、各ページがセットとして扱われるので、ページ202が要求データを含まないと判定され、ページ202がクローズされると、要求データは、DRAMシステム200内に存在しないと判定され得る。次いで、その後、実施形態は、データ要求を提供するためにメインメモリへのアクセスを開始し得る。このようにして、同じページ内にデータおよび対応するタグを構成することにより、タグデータベースへの別個の劣化したアクセスと、続く記憶データへのアクセスの必要性がなくなり、したがって、アクセス速度およびエネルギー効率を改善することが諒解されよう。
【００３６】
ここで、速度および効率をさらに改善するために、例示的な実施形態におけるメタデータの構成に対するいくつかの最適化を説明する。メモリアクセスは、メモリアクセス動作をいくつかのステップに分割することができるように処理システム内でパイプライン化され得て、各ステップは、システムクロックの単一のサイクルで実行される。そのようなステップは、「ビート」として表すことができ、メモリ動作の第1のビートを第1のクロックサイクルで実行し、第2のビートを次のクロックサイクルで実行する、などとすることができる。メタデータは、最初の数ビートの間に、より多くの重要な情報が利用可能になるように構成され得る。そのような構成は、検査のためにオープンされた特定のページの有用性の迅速な判定を可能にし得る。
【００３７】
たとえば、一実施形態では、ページ202がオープンされた後、第1のビートで利用できるように、13ビットタグのうちの最下位の8ビットが、フィールドE1〜E15内に配置され得る。タグのこれら最下位の8ビットは、ページ202内の要求データに関するヒットまたはミスの可能性の非常に良い推定を与える。フィールドE1〜E15内のタグのうちの1つだけが最下位の8ビットへのヒットをもたらす場合、このヒットは、偽である可能性が低いと判定され得る(他方では、複数のヒットがもたらされる場合、ページ202における要求データの存在を正確に判定するには最下位の8ビットでは不十分である可能性がある)。したがって、第1のビートにおいて単一のヒットが判定される場合、対応するデータに関する初期のフェッチ要求が発され得る。
【００３８】
その後、第2のビートにおいて、タグの残りのビットにアクセスされ、これらのビットは、第1のビートにおいてアクセスされたタグの最下位の8ビットと併せて検討され得る。次いで、完全なタグを、ヒットまたはミスに関して分析することができ、それに応じて動作を行うことができる。たとえば、第2のビートにおいて、第1のビートのヒット表示が偽であると判定される場合、発されたどんな初期フェッチ要求も中止され得る。代わりに、第2のビートにおいて、ヒットと判定または確認された場合、フェッチ要求は、それぞれ、開始または維持され得る。第1および第2のビートにおけるミス表示は、DRAMシステム200内の異なるページに進むために検索プロセスを開始し得る。当業者は、例示的な実施形態の範囲から逸脱することなく、上記で説明したように、同様のラインに関する様々な代替実装形態を認識する。
【００３９】
さらに、最適化は、重要なタグ情報の後で、ECCビットが後のビートにおいてアクセスされ得るように、フィールドE1〜E15内にECCビットを配置するステップを含む。これは、ECCビットが、ページ202内の要求データの存在の迅速な判定には関係していない可能性があるからである。いくつかの実施形態では、(たとえばフィールドE0内に記憶された)メタデータ自体に関するECCビットも判定され得る。誤りがタグ内で起こった可能性があることをそのようなECCビットが明らかにする場合、初期のビートにおけるヒット/ミスの先の判定は、適切に修正する必要があり得る。初期のビートにおけるヒット/ミスの判定に基づくデータの推論的フェッチは、推論的フェッチが予測ミスの場合、電力消費(burning power)という犠牲を払って速度を改善することができるとき、速度とパワー要件との間の許容可能なトレードオフに基づく実施形態において適切に計測され得る。
【００４０】
ここで図3を参照すると、メタデータの最適化された構成に基づいて、ページ202に対するデータ要求を処理するための例示的なタイムラインが示されている。図示のように、時刻302において、検査のためにページ202をオープンする命令が発される。時刻304において、フィールドE1〜E15のタグが、検査のためにページ202のラインL0から要求される。時刻306において、タグの最下位の8ビットが利用可能になる(第1のビート)。時刻308において、タグの残りのビットおよびさらなる任意のメタデータが、ページ202から利用可能になる(第2のビート)。第1および/または第2のビートにおいて、検索されるタグビットに基づいて、ヒット/ミスの判定が行われ得る。検索されたタグのうちの1つにおいて、偽でないヒットが認識されたと仮定すると、対応するラインからの要求は、検索プロセスによって生成され、時刻310においてページ202に達する。時刻312および314では、11個のECCビットは、パート1および2において(たとえば、第3および第4のビートの間に)フィールドE0〜E15から取り出され得る。第1および第2のビートの間にヒットを起こしたラインからの要求データに誤りが存在しないことをECCビットが示すと仮定すると、時刻316〜322の4つのビートにおいて、データ(64バイト)が取り出される。したがって、ページ202に対する検索要求を処理するパイプライン実行は、行うことができ、有利なことに、例示的な実施形態においてメタデータの最適化された構成を利用する。
【００４１】
さらなる有益な特徴が、いくつかの実施形態に含まれ得る。たとえば、実施形態は、次に説明するように、対応するデータと同じページ内の保持用のメタデータからさらなる利点を得ることができる。従来の割出し方式は、連続的にアドレス指定されるラインがセットアソシアティブキャッシュ構造における連続するセット内に構成されるように、タグを形成するための最下位ビットに依存する。各ページが1セットとして構成されてきたので、そのような従来の割出し原理を例示的な実施形態に拡張することにより、連続的にアドレス指定されたラインにおける連続的なミスに対して新規のページをオープンする必要がある可能性があることが暗示されるであろう。そのような連続的なミスに関連する悪影響を最小化するために、実施形態は、最下位ビットとは対照的に、割出しのためにタグの中間ビットを利用し得る。したがって、連続的にアドレス指定されたラインに関するミスは、同じDRAMページ内に確実に入るようにし、複数のDRAMページを連続的にオープンする必要がない。
【００４２】
例示的な例として、例示的な実施形態におけるタグの13ビットのうちの最下位の6ビットが、64バイトライン内の個別のバイトをアドレス指定するために使用され得る。したがって、例示的な実施形態では、従来の技法のような最下位ビットを使用するのではなく、割出しを行うために、位置8〜29のより高い次数のビットを使用することができ、例示的な実施形態は、連続的にアドレス指定されたラインがセットに属することを容易にし、それによって、連続的にアドレス指定されたラインに関するミスが同じDRAMページ内に入るようにする。DRAMページキャッシュ内のラインのそのような構成がページ内の様々なライン間の競合圧力を増大させることができるが、そのような構成は、有利なことに、レイテンシを改善するであろう。認識されるように、15ウェイキャッシュ(ラインL1〜L15、ラインL0はメタデータ用に使用される)を形成するために、ページ202内に16個のラインが構成された。
【００４３】
フィールドE0〜E15において利用できる可能性がある、未使用のメタデータ空間に基づく例示的な実施形態に、さらなる有利な態様を含み得る。ページ202に関して説明してきたように、フィールドE0〜E15の各々は、32ビットを含む。ECCビットは、11ビットを占有し、状態ビット(有効/ダーティ/ロック状態を表す)を含むタグ情報は、13+3=16ビットを占有する。これは、メタデータフィールド内に5ビットの未使用の空間を残す。先に説明したように、ディレクトリ情報および他のキャッシュコヒーレンシ関連の情報は、残りの5ビットのメタデータ内に記憶され得る。さらに、「有効」、「ダーティ」、および「ロック」ビットも、メタデータフィールドに導入することができる。有効およびダーティビットは、古い/修正されたキャッシュラインを追跡および交換するのを支援することができる。時々、関連のDRAMキャッシュラインを無効およびロックとして指定することによって、欠陥部分が修復することがある。より効率的な交換ポリシーまたはプリフェッチ技法を容易にするための情報などの他の情報も、メタデータフィールドに導入され得る。メタデータフィールド内に様々な他の形式のインテリジェンスを含むことができ、当業者は、本明細書で提供する例示的な説明に基づいて、メタデータの適切な構成を認識することが可能である。
【００４４】
さらに、例示的な実施形態は、キャッシュされたメタデータに対応する頻繁にアクセスされるキャッシュラインに関連する情報を迅速に取り出すことができるように、メタデータを別個にキャッシュするように構成することもできる。実装形態が、そのようなメタデータをキャッシュするための別個のキャッシュ構造を含むことができるか、または代わりに、そのようなキャッシュをDRAMシステム200などのDRAMシステムの1つまたは複数のページにおいて行うことができる。さらなる最適化として、メモリシステム上で実行されるアプリケーションの特性に基づいて、オープンページ内の対応するキャッシュラインが将来アクセスされる可能性が高いことがわかっているとき、現在オープンされていることがわかっているページに関連するメタデータのみをキャッシュすることができる。
【００４５】
例示的な実施形態の上記の開示から、ページベースのメモリデバイス(図2のDRAMシステム200など)は、メモリデバイスの各ページ(ページ202など)を第1の部分(たとえば、ラインL1〜L15)および第2の部分(ラインL0など)に分割することができ、第1の部分がデータを含み、第2の部分が第1の部分のデータに対応するメタデータを含むように構成され得ることがわかる。
【００４６】
実施形態は、本明細書で開示されるプロセス、機能および/またはアルゴリズムを実行するための様々な方法を含むことも諒解されよう。たとえば、図4に示すように、一実施形態は、メモリデバイスのページ(たとえば、図2のページ200)のメタデータ部分(たとえば、図2の第2の部分202)からメタデータ(たとえば、図2に示すようにアドレスタグまたはECCビットを含むことができるフィールドE0〜E15)を読むステップ(ブロック402)と、メタデータに基づいてページの特徴を判定するステップ(たとえば、アドレスタグを含むメタデータに基づいて所望の情報が存在するかどうかを判定するステップか、またはECCビットを含むメタデータに基づいてページ内に存在するデータに誤りが検出されるかどうかを判定するステップ、ブロック404)とを含むキャッシュとして、専用のメタデータのないページベースのメモリデバイスを使用する方法を含み得る。本方法は、特徴を判定した結果に基づいて、所望の情報がページ内に存在する場合には所望の情報を読むか、または検出してきた可能性がある誤りを訂正するなど、さらなる動作を行うステップを場合によっては含むことができる(図示せず)。
【００４７】
さらに、DRAMシステム200などの低電力スタック型DRAMは、広い入出力インターフェース、真性シリコンビア(true silicon via)(TSV)インターフェース、またはスタック型インターフェースを介して処理コアなどのマスタデバイスによってアクセスされ得ることが諒解されよう。
【００４８】
情報および信号は、多種多様な技術および技法のいずれかを使用して表すことができることを当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００４９】
さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００５０】
本明細書で開示した実施形態と関連して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、かつ記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。
【００５１】
したがって、本発明の一実施形態は、キャッシュとして使用するためのメモリデバイスを構成するための方法を実施するコンピュータ可読媒体を含んでもよい。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。
【００５２】
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行えることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよび/または動作は、特定の順序で実行されなくてもよい。さらに、本発明の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
【符号の説明】
【００５３】
100  従来のDRAMシステム
102  ページ
200  本発明のDRAMシステム
202  ページ
【図１】
0005745168.tif 000002
【図２】
0005745168.tif 000003
【図３】
0005745168.tif 000004
【図４】
0005745168.tif 000005