(57)【要約】      （修正有）【課題】１つのＤＩＭＭ上の全てのメモリスタックからのデータ、および場合により多重ＤＩＭＭに対してエラー訂正を実施する方法及び装置を提供する。【解決手段】大容量メモリシステムは、スタックドメモリ集積回路またはチップを用いて構成される。ｐ個のＤＲＡＭ集積回路が作業メモリとしてデータを記憶し、ｑ個のＤＲＡＭ集積回路が前記ｐ個のＤＲＡＭ集積回路に記憶されたデータのパリティ情報を記憶するように構成され、メモリＲＡＩＤ機能を有する。【選択図】図１０ａ
2014194795.tif 000002
【特許請求の範囲】
【請求項１】
第１の速度でアクセス可能な複数のセルから構成されるメモリコアを備える、垂直方向にスタックされた複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記第１の速度よりも大きい速度で、前記ＤＲＡＭ集積回路とメモリバスとの間でインタフェースを設けるインタフェース集積回路と、を備えるメモリデバイス。
【請求項２】
前記インタフェース集積回路が、複数の前記ＤＲＡＭ集積回路とは無関係に、前記メモリバスに一定の負荷をさらに与える、請求項１に記載のメモリデバイス。
【請求項３】
前記ＤＲＡＭ集積回路が複数のＤＲＡＭ集積回路ダイを備える、請求項１に記載のメモリデバイス。
【請求項４】
前記ＤＲＡＭ集積回路が複数のＤＲＡＭ集積回路パッケージを備える、請求項１に記載のメモリデバイス。
【請求項５】
前記インタフェース集積回路が、業界で規定された仕様に従って作動する、請求項１に記載のメモリデバイス。
【請求項６】
前記インタフェース集積回路が、ＤＤＲ２  ＳＲＡＭ仕様に従って作動する請求項１に記載のメモリデバイス。
【請求項７】
メモリスペアリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のスペアプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項１に記載のメモリデバイス。
【請求項８】
所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記インタフェース集積回路に信号を送るメモリコントローラをさらに備え、
前記インタフェース集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項７に記載のメモリデバイス。
【請求項９】
前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項８に記載のメモリデバイス。
【請求項１０】
前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項８に記載のメモリデバイス。
【請求項１１】
メモリミラーリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のミラードプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項１に記載のメモリデバイス。
【請求項１２】
所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記インタフェース集積回路に信号を送るメモリコントローラをさらに備え、
前記インタフェース集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項１１に記載のメモリデバイス。
【請求項１３】
前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項１２に記載のメモリデバイス。
【請求項１４】
前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項１２に記載のメモリデバイス。
【請求項１５】
前記ｐに等しいＤＲＡＭ集積回路の数が、前記ｑに等しいＤＲＡＭ集積回路の数に等しい、請求項１１に記載のメモリデバイス。
【請求項１６】
メモリスキームをさらに備え、
前記スタックされたＤＲＡＭ集積回路が、（ｐ＋１）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に対してデータを格納する作業メモリデバイスとして用いられる複数のＤＲＡＭ集積回路を備え、
少なくとも１つのＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に格納されたデータのための追加の情報を格納し、
ｐが整数値を備える、請求項１に記載のメモリデバイス。
【請求項１７】
前記メモリスキームがＲＡＩＤメモリスキームを備え、前記追加の情報がパリティ情報を備える、請求項１６に記載のメモリデバイス。
【請求項１８】
前記追加の情報がプリフェッチ情報を備える、請求項１６に記載のメモリデバイス。
【請求項１９】
スタックに結合され、少なくとも１つの追加のＤＲＡＭ集積回路を前記スタックに付加するソケットをさらに備える、請求項１に記載のメモリデバイス。
【請求項２０】
前記スタックが、少なくとも１つのインタフェース集積回路と、少なくとも１つのＤＲＡＭ集積回路とを備える、請求項１９に記載のメモリデバイス。
【請求項２１】
前記スタックが、少なくとも１つのインタフェース集積回路を備える請求項１９に記載のメモリデバイス。
【請求項２２】
前記複数のＤＲＡＭ集積回路が、前記メモリデバイスの製造時に、一定数のＤＲＡＭ集積回路を備えるか、または、前記メモリデバイスの製造後に、可変数のＤＲＡＭ集積回路を備える、請求項１に記載のメモリデバイス。
【請求項２３】
異なる時間に、少なくとも１つのＤＲＡＭ集積回路が追加される、請求項１に記載のメモリデバイス。
【請求項２４】
ランク内の複数のＤＲＡＭ集積回路をプリント配線板に実装するソケットを備える請求項１に記載のメモリデバイス。
【請求項２５】
低速でアクセス可能な複数のセルから構成されるメモリコアを備える、垂直方向にスタックされた複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭ集積回路と１つのメモリバスとの間で、前記メモリコアの前記低速アクセスと比較して高い速度でインタフェースを設けるインタフェース集積回路と、を備えるメモリデバイス。
【請求項２６】
第１の速度でアクセス可能な複数のセルから構成されるメモリコアを備える複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路を垂直方向にスタックする手段と、
前記第１の速度よりも大きい速度で、前記ＤＲＡＭ集積回路と、１つのメモリバスとの間でインタフェースを設ける手段と、を備える、メモリデバイス。
【請求項２７】
垂直方向にスタックされた、複数の業界標準のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭ集積回路の電気的負荷と前記メモリバスとを分離するように、アドレス信号、制御信号及びデータ信号のうちの少なくとも１つをバッファリングすることにより、前記複数のＤＲＡＭ集積回路と１つのメモリバスとの間でインタフェースを設けるバッファ集積回路と、を備えるメモリデバイス。
【請求項２８】
前記バッファ集積回路が、前記ＤＲＡＭ集積回路から構成される複数のスタックのためのインタフェースを設ける、請求項２７に記載のメモリデバイス。
【請求項２９】
前記バッファ集積回路が、前記ＤＲＡＭ集積回路から構成されるスタックの外部にある、請求項２７に記載のメモリデバイス。
【請求項３０】
複数のバッファ集積回路が、前記ＤＲＡＭ集積回路から構成されるスタックと関連付けられている、請求項２７に記載のメモリデバイス。
【請求項３１】
メモリスペアリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のスペアプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える請求項２７に記載のメモリデバイス。
【請求項３２】
所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記バッファ集積回路に信号を送るメモリコントローラをさらに備え、
前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３１に記載のメモリデバイス。
【請求項３３】
前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える請求項３２に記載のメモリデバイス。
【請求項３４】
前記メモリコントローラがさらに、前記サイドバンド信号を用いて前記エラーを伝える、請求項３２に記載のメモリデバイス。
【請求項３５】
前記バッファ集積回路が、前記作業メモリ集積回路内で所定数のエラーが生じたか否かを判断するとともに、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３１に記載のメモリデバイス。
【請求項３６】
メモリミラーリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記集積回路の作業メモリプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、ｐに等しく、かつ前記集積回路のミラードメモリプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項２７に記載のメモリデバイス。
【請求項３７】
所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記バッファ集積回路に信号を送るメモリコントローラをさらに備え、
前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３６に記載のメモリデバイス。
【請求項３８】
前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項３７に記載のメモリデバイス。
【請求項３９】
前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項３７に記載のメモリデバイス。
【請求項４０】
前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路にスイッチする命令を受け取る、請求項３７に記載のメモリデバイス。
【請求項４１】
前記バッファ集積回路が、前記作業メモリ集積回路内で所定数のエラーが生じたか否かを判断するとともに、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３６に記載のメモリデバイス。
【請求項４２】
前記バッファ集積回路が、
アドレス情報を格納し、
前記アドレス情報を、現在の読出し動作におけるアドレス情報と比較し、
前記格納されたアドレス情報が現在の読出し動作における前記アドレス情報に匹敵する場合に、前記格納されたアドレス情報を用いる、請求項３６に記載のメモリデバイス。
【請求項４３】
前記バッファ集積回路が、コマンドを受け取り、
前記コマンドが、
アドレス情報を格納し、
前記アドレス情報を、現在の読出し動作におけるアドレス情報と比較し、
前記格納されたアドレス情報が現在の読出し動作における前記アドレス情報に匹敵する場合に、前記アドレス情報を用いる、請求項３６に記載のメモリデバイス。
【請求項４４】
メモリスキームをさらに備え、
前記スタックされたＤＲＡＭ集積回路が、（ｐ＋１）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に対してデータを格納する作業メモリデバイスとして用いられる複数のＤＲＡＭ集積回路を備え、
１つのＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に格納されたデータのための追加の情報を格納し、
ｐが整数値を備える、請求項２７に記載のメモリデバイス。
【請求項４５】
前記メモリスキームがＲＡＩＤメモリスキームを備え、前記追加の情報がパリティ情報を備える、請求項４４に記載のメモリデバイス。
【請求項４６】
スタックに結合され、少なくとも１つの追加のＤＲＡＭ集積回路を前記スタックに追加するソケットをさらに備える、請求項２７に記載のメモリデバイス。
【請求項４７】
前記スタックが、少なくとも１つのインタフェース集積回路と、少なくとも１つのＤＲＡＭ集積回路とを備える、請求項４６に記載のメモリデバイス。
【請求項４８】
前記スタックが、少なくとも１つのインタフェース集積回路を備える、請求項４６に記載のメモリデバイス。
【請求項４９】
前記バッファ集積回路が、業界標準ＤＲＡＭのピン配列を備える、請求項２７に記載のメモリデバイス。
【請求項５０】
前記ＤＲＡＭ集積回路と、少なくとも１つの前記バッファ集積回路とを備える両面ＤＩＭＭプリント配線板をさらに備える、請求項２７に記載のメモリデバイス。
【請求項５１】
前記バッファ集積回路が、ｍ個のこれまでの読出しのアドレスをトラッキングし、現在の読出しのアドレスを前記ｍ個のこれまでの読出しと比較する、請求項２７に記載のメモリデバイス。
【請求項５２】
前記バッファ集積回路が、イベントをトラッキングし、過去のイベントに基づいて、機能を実行する、請求項２７に記載のメモリデバイス。
【請求項５３】
前記イベントがエラーを備え、前記機能が第２の読出し動作を備える、請求項５２に記載のメモリデバイス。
【請求項５４】
前記バッファ集積回路が、前記メモリバスにおいて、１つ以上のプロトコルを１つ以上のプロトコルに変換し、前記ＤＲＡＭ集積回路にアクセスする、請求項２７に記載のメモリデバイス。
【請求項５５】
垂直方向にスタックされた、複数のＪＥＤＥＣ規格のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭの電気的負荷を前記メモリバスから分離するように、アドレス信号、制御信号及びデータ信号のうちの少なくとも１つをバッファリングすることにより、前記複数のＤＲＡＭ集積回路と、１つのメモリバスとの間でインタフェースを設けるバッファ集積回路と、を備えるメモリデバイス。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本特許出願は、２００５年９月２日に出願された“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｏｆ  Ｓｔａｃｋｉｎｇ  ＤＲＡＭｓ”という発明の名称の米国仮特許出願第６０／７１３，８１５号に対する利益を主張する。
【技術分野】
【０００２】
本発明は、幅広いマーケットに対してコスト効率のいいカスタムメモリシステムを構築するという分野に関連する。
【背景技術】
【０００３】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）は、最もポピュラーなタイプの揮発性メモリであり、多くの異なるマーケットで幅広く用いられている。ＤＲＡＭの人気は、大部分はコストパフォーマンス（Ｍｂ／＄）によるものである。ＰＣのメインメモリ市場は、ＤＲＡＭの最大の消費者である。
【０００４】
いくつかの重要なマーケットにおけるＤＲＡＭインタフェース速度は、急激に増加している。例えば、現在のＰＣ市場は、６６７ＭＨｚのＤＤＲ２  ＳＤＲＡＭを使用する。当業界は、２００６年に、８００ＭＨｚのＤＤＲ２  ＳＤＲＡＭを使用する方向に向かっている。また、８００ＭＨｚ〜１６００ＭＨｚのインタフェース速度を有すると期待されているＤＤＲ３  ＳＤＲＡＭを開発する努力も進行中である。
【０００５】
シグナルインテグリティは、インタフェース速度が増すにつれて、ますます困難になってきている。高速においては、クリーンな信号を確保するために、１つのメモリチャネルに対する負荷の数を減らさなければならない。例えば、ＰＣデスクトップセグメントが１３３ＭＨｚのＳＤＲＡＭを使用した場合、バッファリングされていないモジュールを使用した場合には、メモリチャネル（または、バスあるいはインタフェース）当たり３ＤＩＭＭスロットが標準的である。この市場区分がＤＤＲ  ＳＤＲＡＭや現在のＤＤＲ２  ＳＤＲＡＭを採用した場合、メモリチャネル当たりのＤＩＭＭスロットの数は、２に落ちる。ＤＤＲ３速度においては、メモリチャネル当たりたった１ＤＩＭＭスロットが可能であることが予測される。このことは、明らかに、システムの最大記憶容量に対して上限を設けることになる。
【０００６】
コスト効率が良く、かつ現在及び将来の標準規格と互換性があり、シグナルインテグリティのような様々な技術的問題を解決する様態でシステムの記憶容量を増加させる発明に対する要求が明確にある。
【発明の開示】
【０００７】
一実施形態において、大容量メモリシステムが、スタックドメモリ集積回路またはチップを用いて構成される。該スタックドメモリチップは、シグナルインテグリティのような問題をなくすと共に、現在及び将来のメモリ標準規格にも合うように構成される。
【図面の簡単な説明】
【０００８】
【図１】ＦＢ−ＤＩＭＭの場合の一実施形態を示す図である。
【図２ａ】メモリコントローラと２つのＦＢ−ＤＩＭＭとの間の待ち時間を説明する注釈の付いた、図１のＦＢ−ＤＩＭＭを含む図である。
【図２ｂ】各スタックが２つのＤＲＡＭを含む、ＤＲＡＭスタックを有するＦＢ−ＤＩＭＭにアクセスする際の待ち時間を示す図である。
【図３】多重メモリコアチップを含むメモリデバイスの一実施形態を示すブロック図である。
【図４】高速ＤＲＡＭデバイスを非同期メモリコアチップとインタフェースチップとに区分する一実施形態を示すブロック図である。
【図５】メモリデバイスを同期メモリチップとデータインタフェースチップとに区分する一実施形態を示すブロック図である。
【図６】スタックドメモリチップの場合の一実施形態を示す図である。
【図７】メモリデバイスとＤＤＲ２のメモリバスをインタフェースする一実施形態を示すブロック図である。
【図８ａ】１つのＤＩＭＭモジュール上にメモリチップをスタックする一実施形態を示すブロック図である。
【図８ｂ】メモリチップをメモリスペアリングでスタックする一実施形態を示すブロック図である。
【図８ｃ】スタックメモリの作業プールの動作を示すブロック図である。
【図８ｄ】スタックドメモリチップに対してメモリスペアリングを実施する一実施形態を示すブロック図である。
【図８ｅ】スタックごとにメモリスペアリングを実施する一実施形態を示すブロック図である。
【図９ａ】一実施形態によるメモリミラーリングを説明するブロック図である。
【図９ｂ】メモリミラーリングを可能にする記憶装置の場合の一実施形態を説明するブロック図である。
【図９ｃ】メモリのスタックを有するミラードメモリシステムの場合の一実施形態を説明するブロック図である。
【図９ｄ】全てのＤＩＭＭのスタックに対する同時メモリミラーリングを可能にする一実施形態を説明するブロック図である。
【図９ｅ】スタックごとのメモリミラーリングを可能にする一実施形態を説明するブロック図である。
【図１０ａ】書き込み動作中のメモリＲＡＩＤ機能を有するメモリチップのスタックを説明するブロック図である。
【図１０ｂ】読み出し動作中のメモリＲＡＩＤ機能を有するメモリチップのスタックを説明するブロック図である。
【図１１】ＤＲＡＭを高速メモリバスに追加した結果としての従来のインピーダンス負荷を示す。
【図１２】一実施形態による、ＤＲＡＭを高速メモリバスに追加した結果としてのインピーダンス負荷を示す。
【図１３】ソケットを用いて低速メモリチップを追加する一実施形態を説明するブロック図である。
【図１４】スタックの上部にソケットを配置したＰＣＢを示す。
【図１５】スタックの反対側にソケットを配置したＰＣＢを示す。
【図１６】１つ以上のメモリチップを収容できるアップグレードＰＣＢを示す。
【図１７】メモリチップをスタックする一実施形態を説明するブロック図である。
【図１８】８ビット長のＤＤＲ２  ＳＤＲＡＭＳで構成された３チップスタック内でデータマスク（「ＤＭ」）信号を用いてメモリＲＡＩＤを実施するタイミング図である。
【詳細な説明】
【０００９】
２００５年９月２日に提出された“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｏｆ  Ｓｔａｃｋｉｎｇ  ＤＲＡＭｓ”という発明の名称の米国仮特許出願第６０／７１３，８１５号の開示は参照により本明細書に組み込まれる。
【００１０】
大記憶容量を必要とするサーバやワークステーション等の市場区分がある。大記憶容量を可能にする１つの方法は、ＤＲＡＭが、ＡＭＢ（Ａｄｖａｎｃｅｄ  Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ）によってメモリチャネルから電気的に絶縁されているＦＢ−ＤＩＭＭ（Ｆｕｌｌｙ  Ｂｕｆｆｅｒｅｄ  ＤＩＭＭ）を用いることである。ＦＢ−ＤＩＭＭソリューションは、サーバ及びワークステーションの市場区分で用いられることが期待されている。ＡＭＢは、メモリチャネルとＤＲＡＭの間のブリッジとして機能し、また、リピータとしても機能する。このことは、メモリチャネルが常に二地点間接続であることを実現する。図１は、ＦＢ−ＤＩＭＭを有するメモリチャネルの一実施形態を示す。ＦＢ−ＤＩＭＭ１００及び１５０は、ＤＲＡＭチップ（１１０及び１６０）と、ＡＭＢ１２０及び１７０とを含む。高速双方向リンク１３５は、メモリコントローラ１３０をＦＢ−ＤＩＭＭ１００に結合する。同様に、ＦＢ−ＤＩＭＭ１００は、高速双方向リンク１４０を介してＦＢ−ＤＩＭＭ１５０に結合されている。追加のＦＢ−ＤＩＭＭを同様の様態で追加してもよい。
【００１１】
このＦＢ−ＤＩＭＭソリューションは、いくつかの欠点を有しており、主な２つの欠点は、高コストと長い待ち時間（すなわち、低パフォーマンス）である。各ＡＭＢは、１０ドル〜１５ドルの費用がかかり、これは、メモリモジュールコストのかなりの割合を占める。加えて、各ＡＭＢは、かなりの量の待ち時間（〜５ｎｓ）を導入する。そのため、より多くのＦＢ−ＤＩＭＭを追加することによって、システムの記憶容量が増加するにつれて、該システムのパフォーマンスは、一連のＡＭＢの待ち時間によって低下する。
【００１２】
記憶容量を増加させる代わりの方法は、ＤＲＡＭを相互にスタックすることである。このことは、追加の分散型負荷を追加することなく、システムの総記憶容量を増加させる（その代わりに、電気的負荷は、ほぼ単一箇所に追加される）。また、多重ＦＢ−ＤＩＭＭを、スタックＤＲＡＭを含む単一のＦＢ−ＤＩＭＭと置き換えることができるため、ＤＲＡＭを相互にスタックすることは、ＡＭＢのパフォーマンスインパクトを低減する。図２ａは、メモリコントローラと２つのＦＢ−ＤＩＭＭとの間の待ち時間を説明する注釈の付いた図１のＦＢ−ＤＩＭＭを含む。メモリコントローラ１３０とＦＢ−ＤＩＭＭ１００の間の待ち時間は、ｔ１とｔｃ１の合計である。ただし、ｔ１は、ＡＭＢ１２０のメモリチャネルインタフェースと、ＡＭＢ１２０のＤＲＡＭインタフェースとの間の遅延時間（すなわち、ブリッジとして機能する場合のＡＭＢ１２０を介した遅延時間）であり、ｔｃ１は、メモリコントローラ１３０とＦＢ−ＤＩＭＭ１００との間の信号伝播遅延時間である。ｔ１は、ＡＭＢ１２０を通るアドレス又は制御信号の遅延時間と、場合により、ＡＭＢ１２０を通るデータ信号の遅延時間とを含むことに留意されたい。また、ｔｃ１は、メモリコントローラ１３０からＦＢ−ＤＩＭＭ１００への信号の伝播遅延時間と、場合により、ＦＢ−ＤＩＭＭ１００からメモリコントローラ１３０への信号の伝播遅延時間とを含む。図２ａに示すように、メモリコントローラ１３０とＦＢ−ＤＩＭＭ１５０の間の待ち時間は、ｔ２＋ｔ１＋ｔｃ１＋ｔｃ２の合計であり、ただし、ｔ２は、ＡＭＢ１２０の入力メモリチャネルインタフェースと出力メモリチャネルインタフェースとの間の遅延時間であり（すなわち、ＡＭＢ１２０がリピータとして機能している場合）、ｔｃ２は、ＦＢ−ＤＩＭＭ１００とＦＢ−ＤＩＭＭ１５０との間の信号伝播遅延時間である。ｔ２は、ＡＭＢ１２０を介したメモリコントローラ１３０からＦＢ−ＤＩＭＭ１５０への信号の遅延時間と、場合により、ＡＭＢ１２０を介したＦＢ−ＤＩＭＭ１５０からメモリコントローラ１３０への信号の遅延時間とを含む。同様に、ｔｃ２は、ＦＢ−ＤＩＭＭ１００からＦＢ−ＤＩＭＭ１５０への信号の伝播遅延時間と、場合により、ＦＢ−ＤＩＭＭ１５０からＦＢ−ＤＩＭＭ１００への信号の伝播遅延時間とを表す。ｔ１は、ブリッジとして機能しているＡＭＢチップを通る信号の遅延時間を表す。ブリッジは、この場合には、ＡＭＢ１７０である。
【００１３】
図２ｂは、ＤＲＡＭスタックを有するＦＢ−ＤＩＭＭにアクセスする際の待ち時間を示す。ただし、各スタックは、２つのＤＲＡＭを含む。いくつかの実施形態において、「スタック」は、少なくとも１つのＤＲＡＭチップを備える。他の実施形態において、「スタック」は、少なくとも１つのＤＲＡＭチップを有するインタフェースまたはバッファチップを備える。ＦＢ−ＤＩＭＭ２１０は、３つのＤＲＡＭスタック（２２０、２３０及び２４０）と、メモリコントローラ２００によってアクセスされるＡＭＢ２５０とを含む。図２ｂに示すように、これらのＤＲＡＭのスタックにアクセスするための待ち時間は、ｔ１とｔｃ１の合計である。該待ち時間は、２つの標準的なＦＢ−ＤＩＭＭ（すなわち、個々のＤＲＡＭを有するＦＢ−ＤＩＭＭ）を有するメモリチャネルにおける待ち時間よりも、２−ＤＲＡＭスタックを含むＦＢ−ＤＩＭＭを有するメモリチャネルにおける待ち時間の方が少ないことが図２ａ及び図２ｂを見て分かる。図２ｂは、２つの標準的なＦＢ−ＤＩＭＭと、２−ＤＲＡＭスタックを用いるＦＢ−ＤＩＭＭとを比較した場合を示すことに留意されたい。しかし、このことは、ｎ個の標準的なＦＢ−ＤＩＭＭと、ｎ−ＤＲＡＭスタックを用いるＦＢ−ＤＩＭＭとの比較の場合にも拡大適用することができる。
【００１４】
高速ＤＲＡＭを相互にスタックすることは、それ自体の課題を有する。高速ＤＲＡＭがスタックされるにつれて、それぞれの電気的負荷または入力寄生成分（入力キャパシタンス、入力インダクタンス等）が合算されて、シグナルインテグリティ及び電気的負荷の問題を引き起こして、スタックが作動することのできる最大インタフェース速度を制限する。加えて、ソース同期ストローブ信号の使用は、高速ＤＲＡＭをスタックする場合に、さらなる複雑性を導入する。
【００１５】
低速ＤＲＡＭを相互にスタックすることは、高速ＤＲＡＭを相互にスタックすることよりも容易である。高速ＤＲＡＭの詳しい研究は、該高速ＤＲＡＭが、低速メモリコアと高速インタフェースとからなることを示している。従って、高速ＤＲＡＭを２つのチップ、すなわち、低速メモリチップと高速インタフェースチップとに分けることができる場合、単一の高速インタフェースチップの背後に多重低速メモリチップをスタックすることができる。図３は、多重メモリコアチップを含むメモリデバイスの一実施形態を説明するブロック図である。メモリデバイス３２０は、１つの高速インタフェースチップ３００と、高速インタフェースチップ３００の背後にスタックされた複数の低速メモリチップ３１０とを含む。区分化する１つの方法は、高速ＤＲＡＭを、低速でワイドな非同期メモリコアと、高速インタフェースチップとに分けることである。図４は、高速ＤＲＡＭデバイスを非同期メモリコアとインタフェースチップとに区分する一実施形態を説明するブロック図である。メモリデバイス４００は、インタフェースチップ４１０を介してメモリチャネルへインタフェースされる非同期メモリコアチップ４２０を含む。図４に示すように、インタフェースチップ４１０は、アドレス４３０、コマンド４４０及び外部データバスからのデータ４６０を受取り、アドレス４３５、コマンド及び制御４４５及び４５０、並びに内部データバスを通じたデータ４６５を用いて、非同期メモリコアチップ４２０と情報をやりとりする。
【００１６】
しかし、いくつかの他の区分けも可能であることに留意しなければならない。例えば、高速ＤＲＡＭのアドレスバスは、典型的には、データバスよりも低速で作動する。ＤＤＲ４００  ＤＤＲ  ＳＤＲＡＭの場合、アドレスバスが２００ＭＨｚの速度で作動すると共に、データバスが４００ＭＨｚの速度で作動する。一方、ＤＤＲ２−８００ＤＤＲ２  ＳＤＲＡＭの場合、アドレスバスは４００ＭＨｚの速度で作動し、データバスは８００ＭＨｚで作動する。高速ＤＲＡＭは、高データレートをサポートするために、プリフェッチを利用する。従って、各読出しまたは書き込み動作の場合に、４ｎデータビットがメモリコアからアクセスされることを除いて、ＤＤＲ２−８００デバイスは、内部で２００ＭＨｚに等しいレートで作動し、ただし、ｎは、外部データバスの幅である。４ｎ内部データビットは、ｎ外部データピンに多重化又は逆多重化され、このことは、外部データピンが、２００ＭＨｚの内部データレートの４倍で作動することを可能にする。
【００１７】
このため、例えば、高速ｎビット長ＤＤＲ２  ＳＤＲＡＭを区分けする別の方法は、該ＳＤＲＡＭをより遅い４ｎビット長の同期ＤＲＡＭチップと、４ｎからｎにデータ多重化／逆多重化する高速データインタフェースチップとに分割することとすることができる。図５は、メモリデバイスを同期メモリチップとデータインタフェースチップとに区分けする一実施形態を説明するブロック図である。この実施形態の場合、メモリデバイス５００は、同期メモリチップ５１０とデータインタフェースチップ５２０とを含む。同期メモリチップ５１０は、メモリチャネルからアドレス５３０と、コマンド及びクロック５４０とを受け取る。また、該同期メモリチップ５１０は、コマンド及び制御５５０を介するとともに、４ｎビット長内部データバスを通じてデータ５７０を介してデータインタフェースチップ５２０とも接続されている。データインタフェースチップ５２０は、ｎビット長外部データバス５４５及び４ｎビット長内部データバス５７０に接続されている。一実施形態において、ｎビット長高速ＤＲＡＭは、ｍ＊ｎビット長同期ＤＲＡＭチップと、ｍ＊ｎto ｎデータ多重化又は逆多重化を行う高速データインタフェースチップとに区分けすることができる。ただし、ｍはプリフェッチの量であり、すなわちｍ＞１であり、ｍは、典型的には偶数である。
【００１８】
上述したように、いくつかの異なる区分けが可能であるが、いくつかの実施形態においては、区分けは、次のように行うべきである。
・ホストシステムが（メモリデバイスがＤＩＭＭ上にある実施形態において、ＤＩＭＭごとに）単一の負荷のみを、メモリチャネルまたはバスの高速信号またはピンで見る。
・これらのメモリチップをスタックすることがシグナルインテグリティに影響を及ぼさないように、相互にスタックすべきメモリチップが、メモリチャネルまたはバスのデータレート（すなわち、外部データバスのレート）よりも低い速度で作動する。
【００１９】
これに基づいて、多重メモリチップを、該メモリチャネルの信号の一部または全てにインタフェースする単一のインタフェースチップの背後にスタックすることができる。これは、メモリチップのＩ／Ｏ信号の一部または全てが、該ホストシステムのメモリチャネルまたはバスに直接ではなく、該インタフェースチップに接続されていることを意味することに留意されたい。該多重メモリチップからのＩ／Ｏ信号は、該インタフェースチップへ一緒にバスで転送することができるか、または、個々の信号として該インタフェースチップに接続することができる。同様に、該ホストシステムのメモリチャネルまたはバスに直接接続すべき該多重メモリチップからのＩ／Ｏ信号は、一緒にバスで転送することができるか、または、個々の信号として該外部メモリバスに接続されてもよい。該インタフェースチップまたはメモリチャネルまたはバスのいずれかに該Ｉ／Ｏ信号をバスで転送すべき場合、１つ以上のバスを用いることができる。同様に、該メモリチップのための電力は、該インタフェースチップによって供給することができるか、または、該ホストシステムから直接もたらされてもよい。
【００２０】
図６は、スタックドメモリチップの場合の一実施形態を示す。メモリチップ６２０、６３０及び６４０は、ｓ１、ｓ２、ｓ３、ｓ４ならびにｖ１及びｖ２のための入力および／または出力を含む。ｓ１及びｓ２の入力および／または出力は、外部メモリバス６５０に結合されており、ｓ３及びｓ４の入力および／または出力は、インタフェースチップ６１０に結合されている。メモリ信号ｓ１及びｓ４は、バスで転送されない信号の例である。メモリ信号ｓ２及びｓ３は、バスで転送されるメモリ信号の例である。メモリの電源配線ｖ１は、外部バス６５０に直接接続されているメモリ電源の例であり、ｖ２は、インタフェース６１０に接続されたメモリ電源配線の例である。相互にスタックされるべきメモリチップは、複数のダイ、または、複数の個々のパッケージ化された部品としてスタックすることができる。１つの方法は、それらの部品は、スタッキングの前に検査及びバーンインを行うことができるため、個々にパッケージ化された部品をスタックすることである。加えて、パッケージ化された部品は、相互にスタックして一緒にはんだ付けすることができるため、スタックを修復しやすい。例えば、スタック内の一部が故障した場合、該スタックは、はんだを吸い取って、個々のパッケージに分離することができ、この故障したチップを新しい有効なチップと置き換えることができ、また、該スタックは、組立て直すことができる。しかし、上述したようにスタックを修復することが、時間がかかりかつ手間がかかることは明らかである。
【００２１】
有効なｐ−チップメモリスタックを作る１つの方法は、（ｐ＋ｑ）個のメモリチップと１つのインタフェースチップとを用いることであり、ただし、ｑ個の余分なメモリチップ（典型的には、１≦ｑ≦ｐ）はスペアチップであり、ｐ及びｑは整数値からなる。該スタックの組立て中に、ｐ個のメモリチップのうちの１つ以上が損傷した場合、それらのチップは、このスペアチップと置き換えることができる。故障したチップの組立て後の検知は、テスタを用いて、または、該インタフェースチップ内のビルトインセルフテスト（ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ  ｔｅｓｔ；ＢＩＳＴ）ロジックを用いて行うことができる。また、該インタフェースチップは、この置き換えがホストシステムに対して透過的であるように、故障したチップをスペアチップと置き換える能力を有するように設計することもできる。
【００２２】
このアイデアは、スタック内のメモリチップの（通常の作動条件下での）ランタイムの置換に拡大適用することができる。ＤＲＡＭ等の電子メモリチップは、ハード及びソフトメモリエラーを起こしやすい。ハードエラーは、典型的には、該メモリチップが常に間違った結果に戻るような故障したまたは不具合のあるハードウェアによって引き起こされる。例えば、メモリアレイ内のセルは、該セル内に「１」が格納されている場合であっても、常に「０」という値に戻るように、ｌｏｗを持続する可能性がある。ハードエラーは、シリコンの欠陥、はんだ接合の不良、コネクタピンの破損等によって引き起こされる。ハードエラーは、典型的には、厳しい検査と、ＤＲＡＭチップ及びメモリモジュールのバーンインとによって検査することができる。ソフトエラーは、メモリセル付近の障害が該セルの内容を変更した場合に引き起こされるランダムで一時的なエラーである。この障害は、一般に、メモリチップに影響を与える宇宙粒子によって引き起こされる。ソフトエラーは、メモリセルの間違った内容に正しいデータで上書きすることによって修正することができる。ＤＲＡＭの場合、ハードエラーよりもソフトエラーが一般的である。
【００２３】
コンピュータ製造業者は、ソフトエラーに対処するために多くの技術を用いる。最も単純な方法は、誤り訂正符号（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ；ＥＣＣ）を用いることである。この場合、典型的には、６４ビットのデータを格納するのに７２ビットが用いられる。この種の符号は、シングルビットエラーの検出及び訂正、および２ビットエラーの検出を可能にする。ＥＣＣは、ＤＲＡＭチップのハード故障から保護しない。コンピュータ製造業者は、この種のチップ故障から保護するために、チップキル（Ｃｈｉｐｋｉｌｌ）またはアドバンストＥＣＣと呼ばれる技術を用いる。ディスク製造業者は、同様のディスクエラーに対処するために、レイド（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ；ＲＡＩＤ）と呼ばれる技術を用いる。
【００２４】
また、メモリエラーから保護し、より高いレベルのメモリ可用性を提供するために、メモリスペアリング、メモリミラーリング及びメモリＲＡＩＤ等のより高度な技術も利用可能である。これらの特徴は、典型的には、ハイエンドサーバに見られ、メモリコントローラにおいて特別な論理を必要とする。メモリスペアリングは、許容できないレベルのソフトエラーを呈するメモリバンクを置き換えるスペアまたは冗長メモリバンクの使用を伴う。メモリバンクは、単一のＤＩＭＭまたは多重ＤＩＭＭで構成することができる。アドバンストメモリ保護技術に関するこの論考におけるメモリバンクは、ＤＲＡＭの内部バンクと混同すべきではないことに留意されたい。
【００２５】
メモリミラーリングにおいて、データの全てのブロックは、システムまたは作業メモリに、ならびにミラードメモリ内の同じ記憶位置に書き込まれるが、データは、作業メモリのみからリードバックされる。リードバック中に、該作業メモリ内のバンクが、許容できないレベルのエラーを呈する場合、該作業メモリは、該ミラードメモリと置き換えられることになる。
【００２６】
ＲＡＩＤは、ディスクエラーから保護するためにディスク業界によって用いられる周知の一連の技術である。同様のＲＡＩＤ技術は、メモリエラーから保護するために、メモリ技術に適用することができる。メモリＲＡＩＤは、ディスク技術において用いられるＲＡＩＤ３またはＲＡＩＤ４と概念が同じである。メモリＲＡＩＤにおいて、データのブロック（典型的には、いくつかの整数個のキャッシュライン）が、２つ以上のメモリバンクに書き込まれると共に、そのブロックのパリティが専用パリティバンクに格納される。該バンクのうちのいずれかが故障している場合には、該データのブロックを、残りのバンクからのデータと、パリティデータとによって再作成することができる。
【００２７】
これらのアドバンスト技術（メモリスペアリング、メモリミラーリング及びメモリＲＡＩＤ）は、これまでは個々のＤＩＭＭまたはＤＩＭＭの群を用いて実施されてきた。このことは明らかに、メモリコントローラ内に専用ロジックを必要とする。しかし、本開示においては、そのような特徴は、ほとんどメモリスタック内で実施することができ、該メモリコントローラから最小限の追加的サポートのみを必要とし、または、追加サポートを必要としない。
【００２８】
ＤＩＭＭまたはＦＢ−ＤＩＭＭは、個々のＤＲＡＭの代わりにメモリスタックを用いて形成することができる。例えば、標準的なＦＢ−ＤＩＭＭは、９個、１８個またはそれ以上のＤＤＲ２  ＳＤＲＡＭチップを収容できる。ＦＢ−ＤＩＭＭは、９個、１８個、またはそれ以上のＤＤＲ２スタックを収容することができ、各スタックは、１つのＤＤＲ２  ＳＤＲＡＭインタフェースチップと、該インタフェースチップの上部にスタックされた（すなわち、電気的に該インタフェースチップの背後に、すなわち、該インタフェースチップは、電気的に該メモリチップと外部メモリバスとの間にある）１つ以上の低速メモリチップとを含む。同様に、標準的なＤＤＲ２  ＤＩＭＭは、９個、１８個またはそれ以上のＤＤＲ２  ＳＤＲＡＭチップを含むことができる。ＤＤＲ２  ＤＩＭＭは、代わりに、９個、１８個またはそれ以上のＤＤＲ２スタックを含むことができ、各スタックは、１つのＤＤＲ２  ＳＤＲＡＭインタフェースチップと、該インタフェースチップの上部にスタックされた１つ以上の低速メモリチップとを含む。一実施形態に従って形成されたＤＤＲ２スタックの例を図７に示す。
【００２９】
図７は、メモリデバイスをＤＤＲ２メモリバスにインタフェースする一実施形態を説明するブロック図である。図７に示すように、メモリデバイス７００は、ＤＤＲ２  ＳＤＲＡＭインタフェースチップ７１０に結合されたメモリチップ７２０を備える。また、ＤＤＲ２  ＳＤＲＡＭインタフェースチップ７１０は、メモリチップ７２０を外部ＤＤＲ２メモリバス７３０にインタフェースする。上述したように、一実施形態において、有効なｐ−チップメモリスタックは、（ｐ＋ｑ）個のメモリチップと、１つのインタフェースチップとで形成することができ、ただし、ｑ個のチップはスペアとして使用することができ、また、ｐ及びｑは整数値である。該スタック内でメモリスペアリングを実施するために、この（ｐ＋ｑ）個のチップは、チップからなる２つのプール、すなわち、ｐ個のチップからなる作業プールと、ｑ個のチップからなるスペアプールとに分けることができる。従って、該作業プール内の１つのチップが故障した場合、その故障したチップは、該スペアプールからのチップと置き換えることができる。この故障した作業チップのスペアチップによる置き換えは、例えば、作業チップにおけるマルチビット障害の検知によって、または、作業チップからリードバックされたデータにおけるエラーの数が、所定のまたはプログラム可能なエラーしきい値をまたいだときに引き起こされる。
【００３０】
ＥＣＣは、典型的には、メモリチャネル内の６４データビット全体および場合により、複数のメモリチャネルにわたって実施されるため、リードバックされたデータにおけるシングルビットまたはマルチビットエラーの検知は、メモリコントローラ（または、ＦＢ−ＤＩＭＭの場合にはＡＭＢ）によってのみ行われる。該メモリコントローラ（またはＡＭＢ）は、各ＤＩＭＭからリードバックされたデータにおけるエラーの実行カウントを保つように設計することができる。このエラーの実行カウントが所定のまたはプログラムされたしきい値を超えた場合、該メモリコントローラは、エラーを生じている作業プール内のチップを、スペアプールからのチップと置き換えるようにインタフェースチップに伝えることができる。
【００３１】
例えば、ＤＤＲ２  ＤＩＭＭの場合を考察する。該ＤＩＭＭが９個のＤＤＲ２スタック（スタック０〜８、ただし、スタック０は、７２ビット長のメモリチャネルの最下位の８つのデータビットに対応する。また、スタック８は、最上位の８つのデータビットに対応する）を含むと仮定する。また、各ＤＤＲ２スタックが５つのチップからなり、そのうちの４つが作業プールに割当てられており、５番目のチップがスペアプールに割当てられていると仮定する。また、該作業プール内の１番目のチップがアドレスレンジ［Ｎ−１：０］に対応し、該作業プール内の２番目のチップがアドレスレンジ［２Ｎ−１：Ｎ］に対応し、該作業プール内の３番目のチップがアドレスレンジ［３Ｎ−１：２Ｎ］に対応し、該作業プール内の４番目のチップがアドレスレンジ［４Ｎ−１：３Ｎ］に対応し、ただし、「Ｎ」は整数値であると仮定する。
【００３２】
通常の動作条件下では、該メモリコントローラは、アドレスレンジ［４Ｎ−１：３Ｎ］、［３Ｎ−１：２Ｎ］、［２Ｎ−１：Ｎ］及び［Ｎ−１：０］からのデータにおけるエラーのトラックを保つように設計することができる。仮に、アドレスレンジ［３Ｎ−１：２Ｎ］内のデータにおけるエラーが所定のしきい値を超えた場合、該メモリコントローラは、該スタック内のインタフェースチップに、該作業プール内の３番目のチップを該スタック内のスペアチップと置き換えるように命令することができる。この置き換えは、ＤＩＭＭ内の９個全てで同時に、または、スタックごとに行うことができる。アドレスレンジ［３Ｎ−１：２Ｎ］からのデータにおけるエラーが、該ＤＩＭＭからのデータビット［７：０］に限定されると仮定する。前者の場合には、全てのスタックにおける３番目のチップが、それぞれのスタック内のスペアチップと置き換えられる。後者の場合には、スタック０内の３番目のチップ（ＬＳＢスタック）のみが、当該スタック内のスペアチップと置き換えられることになる。後者の場合は、（全てのスタックにおいて同じチップである必要がない）各スタックにおける１つの故障チップを補いまたは許容するのに対して、前者の場合は、該ＤＩＭＭ内の全てのスタックの中で１つの故障チップを補いまたは許容する。そのため、後者の場合の方がよりフレキシブルである。従って、後者の場合、（ｐ＋ｑ）個のメモリチップで形成された有効なｐ−チップスタックに対して、スタックごとにｑ個までのチップが故障してもよく、スペアチップと置き換えることができる。該メモリコントローラ（またはＡＭＢ）は、バンド内信号によって、あるいはサイドバンド信号によって、該インタフェースチップと情報をやりとりすることにより、メモリスペアリング機能（すなわち、故障している作業チップのスペアチップとの置き換え）を引き起こすことができる。システムマネジメントバス（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ；ＳＭＢｕｓ）は、サイドバンド信号の一例である。
【００３３】
いくつかの実施形態に従って構成されたメモリスタック内でのメモリスペアリングの場合の実施形態を図８ａ〜図８ｅに示す。
【００３４】
図８ａは、１つのＤＩＭＭモジュール上にメモリチップをスタックする一実施形態を説明するブロック図である。この例の場合、メモリモジュール８００は、９個のスタック（８１０、８２０、８３０、８４０、８５０、８６０、８７０、８８０及び８９０）を含む。各スタックは、少なくとも２つのメモリチップを備える。一実施形態において、メモリモジュール８００は、ＤＤＲ２の仕様に従って作動するように構成されている。
【００３５】
図８ｂは、メモリスペアリングによってメモリチップをスタックする一実施形態を説明するブロック図である。図８ｂに示すこの例のメモリスタックの場合、メモリデバイス８７５は、作業メモリプールを形成するようにスタックされたメモリチップ（８８５、８８６、８８８及び８９２）を含む。この実施形態の場合、該作業メモリプールにアクセスするために、該メモリチップにはそれぞれ、図８ｂに示すようなアドレスレンジが割当てられている。また、メモリデバイス８７５はまた、該スペアメモリプールを形成するスペアメモリチップ８９５を含む。しかし、該スペアメモリプールは、メモリチップをいくつ備えていてもよい。
【００３６】
図８ｃは、作業メモリプールの動作を説明するブロック図である。この実施形態の場合、メモリモジュール８１２は、複数の集積回路メモリスタック（８１４、８１５、８１６、８１７、８１８、８１９、８２１、８２２及び８２３）を含む。この例の場合、各スタックは、作業メモリプール８２５とスペアメモリチップ８５５とを含む。
【００３７】
図８ｄは、スタックドメモリチップのためのメモリスペアリングを実施する一実施形態を説明するブロック図である。この例の場合、メモリモジュール８２４は、複数の集積回路メモリスタック（８２６、８２７、８２８、８２９、８３１、８３２、８３３、８３４及び８３５）を含む。この実施形態の場合、メモリスペアリングは、１つ以上のメモリチップでデータエラーが発生した（すなわち、１つのアドレスレンジで発生した）場合に、その機能を有効にすることができる。図８ｄに示す例の場合、所定のしきい値を超えているデータエラーが、アドレスレンジ［３Ｎ−１：２Ｎ］におけるＤＱ［７：０］で発生している。メモリスペアリングを実施するために、この故障チップは、該ＤＩＭＭの全てのスタックで同時に置き換えられる。具体的には、この例の場合、故障チップ８５７は、該ＤＩＭＭの全てのメモリスタック内のスペアチップ８５５と置き換えられる。
【００３８】
図８ｅは、スタックごとにメモリスペアリングを実施する一実施形態を説明するブロック図である。この例の場合、メモリモジュール８３６はまた、複数の集積回路メモリスタック（８３７、８３８、８３９、８４１、８４２、８４３、８４４、８４６及び８４７）を含む。各スタックは、作業メモリプールとスペアメモリプール（例えば、スペアチップ８６１）とに割当てられている。この例の場合、メモリチップ８６３がスタック８４７で故障している。メモリスペアリングを可能にするために、スタック８４７内のスペアチップのみが該故障チップと置き換えられ、他の全てのスタックは、該作業プールを用いて作動し続ける。
【００３９】
メモリミラーリングは、各スタック内の（ｐ＋ｑ）個のチップを、２つの等しいサイズのセクション、すなわち、作業セクション及びミラードセクションに分割することによって実施することができる。メモリコントローラによってメモリに書き込まれる各データは、該作業セクション及び該ミラードセクションにおける同じ記憶位置に格納される。該メモリコントローラによって該メモリからデータが読み出される場合、該インタフェースチップは、該作業セクション内の適切な記憶位置のみを読み取り、そのデータを該メモリコントローラに戻す。該メモリコントローラが、この戻されたデータがマルチビットエラーを有することを検知する場合、例えば、読み出したデータにおける累積エラーが所定のまたはプログラムされたしきい値を超えている場合、該メモリコントローラは、（バンド内信号またはサイドバンド信号によって）該インタフェースチップに、該作業セクションを使うことを止めて、その代わりに、該ミラードセクションを作業セクションとして扱うことを命じるように設計することができる。メモリスペアリングの場合に論じたように、この置き換えは、該ＤＩＭＭ内の全てのスタックにわたって行うことができ、または、スタックごとに行うことができる。後者の場合、各スタック内の１つの故障チップを補いまたは許容するのに対して、前者の場合は、該ＤＩＭＭ内の全てのスタックの中で１つの故障チップを補いまたは許容する。そのため、後者の場合の方がよりフレキシブルである。
【００４０】
メモリスタック内でのメモリミラーリングの場合の実施形態を図９ａ〜図９ｅに示す。
【００４１】
図９ａは、一実施形態によるメモリミラーリングを説明するブロック図である。図９ａに示すように、メモリデバイス９００は、メモリを外部メモリバスにインタフェースするインタフェースチップ９１０を含む。該メモリは、作業メモリセクション９２０とミラードメモリセクション９３０とに分けられている。通常の動作中、書き込み動作は、作業メモリセクション９２０及びミラードメモリセクション９３０の両方で行われる。しかし、読み出し動作は、作業メモリセクション９２０のみから行われる。
【００４２】
図９ｂは、メモリミラーリングを可能にするメモリデバイスの場合の一実施形態を説明するブロック図である。この例の場合、メモリデバイス９００は、作業メモリ９２０内で生じた、あるしきい値のエラーにより、ミラードメモリセクション９３０を作業メモリとして用いる。従って、作業メモリセクション９２０は、使用不能作業メモリセクションとして分類される。動作中、インタフェースチップ９１０は、ミラードメモリセクション９３０、および場合により、使用不能作業メモリセクション９２０に対して、書き込み動作を実行する。しかし、メモリミラーリングが可能な状態で、読み出しは、ミラードメモリセクション９３０から行われる。
【００４３】
図９ｃは、集積回路メモリスタックを有するミラードメモリシステムの場合の一実施形態を説明するブロック図である。この実施形態の場合、メモリモジュール９１５は、複数の集積回路メモリスタック（９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９及び９１２）を含む。図９ｃに示すように、各スタックは、図９ｃにおいて「Ｗ」という符号が付けられた作業メモリセクション９５３と、図９ｃにおいて「Ｍ」という符号が付けられたミラードメモリセクション９５１とに分けられている。この例の場合、該作業メモリセクションがアクセスされる（すなわち、ミラードメモリは使用可能ではない）。
【００４４】
図９ｄは、ＤＩＭＭの全てのスタックにわたってメモリミラーリングを同時に可能にする一実施形態を説明するブロック図である。この実施形態の場合、メモリモジュール９２５はまた、ミラードメモリセクション９５６と作業メモリセクション９５８とに分けられた複数の集積回路メモリスタック（９２１、９２２、９２３、９２４、９２６、９２７、９２８、９２９及び９３１）を含む。この実施形態の場合、メモリミラーリングが可能である場合、該ＤＩＭＭ内の各スタックのミラードメモリセクション内の全てのチップは、作業メモリとして使われる。
【００４５】
図９ｅは、スタックごとにメモリミラーリングを可能にする一実施形態を説明するブロック図である。この実施形態の場合、メモリモジュール９３５は、ミラードセクション９６１（「Ｍ」という符号が付けられた）と作業メモリセクション９６３（「Ｗ」という符号が付けられた）とに分けられた複数の集積回路メモリスタック（９４１、９４２、９４３、９４４、９４５、９４６、９４７、９４８及び９４９）を含む。この実施形態の場合、所定のしきい値のエラーが、これらの作業メモリの一部から生じると、対応するスタックからのミラードメモリが作業メモリと置き換えられる。例えば、ＤＱ［７：０］でデータエラーが起こり、あるしきい値を超えた場合には、スタック９４９に対してのみ（「Ｍｕ」という符号が付けられた）ミラードメモリセクション９６１が（「ｕＷ」という符号が付けられた）作業メモリセクション９６３に置き換わる。
【００４６】
一実施形態において、（ｐ＋１）−チップスタック内でのメモリＲＡＩＤは、ｐ個のチップ全てにデータを格納し、かつそれとは別個のチップ（すなわち、パリティチップ）にパリティ（すなわち、エラー訂正符号または情報）を格納することによって実施することができる。従って、データのブロックが該スタックに書き込まれると、該ブロックは、ｐ個の等しいサイズの部分に分かれ、データの各部分は、該スタック内の独立したチップに書き込まれる。すなわち、該データは、該スタック内のｐ個のチップ全てに「ストライピング」される。
【００４７】
例えば、該メモリコントローラが、データブロックＡを該メモリスタックに書き込むとする。該インタフェースチップは、このデータをｐ個の等しいサイズの部分（Ａ１、Ａ２、Ａ３、…、Ａｐ）に分割し、Ａ１を該スタック内の１番目のチップに書き込み、Ａ２を２番目のチップに書き込み、Ａ３を３番目のチップに書き込み、以下、Ａｐが該スタック内のｐ番目のチップに書き込まれるまで同様である。また、データブロックＡ全体のパリティ情報は、該インタフェースチップによって演算されて、該パリティチップ内に格納される。該メモリコントローラが、データブロックＡの読み出し要求を送ると、該インタフェースチップは、１番目、２番目、３番目、…、ｐ番目のチップからそれぞれＡ１、Ａ２、Ａ３、…、Ａｐを読み出してデータブロックＡを形成する。また、該インタフェースチップは、格納されているデータブロックＡのパリティ情報を読み出す。該メモリコントローラが、該スタック内のいずれかのチップからリードバックされたデータ内にエラーを検出すると、該メモリコントローラは、該インタフェースチップに、該パリティ情報と、該データブロックＡの正しい部分とを用いて正しいデータを再生成するように命令することができる。
【００４８】
メモリスタック内でのメモリＲＡＩＤの場合の実施形態を図１０ａ及び図１０ｂに示す。
【００４９】
図１０ａは、書き込み動作の実行中のメモリＲＡＩＤ機能を有するメモリチップからなるスタックを説明するブロック図である。メモリデバイス１０００は、「ｐ＋１」個のメモリチップ（１０１５、１０２０、１０２５及び１０３０）を外部メモリバスにインタフェースするインタフェースチップ１０１０を含む。図１０ａは、データブロック「Ａ」の書き込み動作を示し、データブロック「Ａ」のデータは、メモリチップに次のように書き込まれる。
Ａ＝Ａｐ…Ａ２、Ａ１；
パリティ［Ａ］＝（Ａｐ）ｎ…ｎ（Ａ２）、ｎ（Ａ１）、ただし、「ｎ」は、ビット排他論理和演算子である。
【００５０】
図１０ｂは、読み出し動作中のメモリＲＡＩＤ機能を有するメモリチップからなるスタックを説明するブロック図である。メモリデバイス１０４０は、インタフェースチップ１０５０と、「ｐ」個のメモリチップ（１０６０、１０７０及び１０８０）と、パリティメモリチップ１０９０とを含む。読み出し動作の場合、データブロック「Ａ」は、Ａ１、Ａ２、…Ａｐ及びパリティ［Ａ］からなり、図１０ｂに示すように、それぞれのメモリチップから読み出される。
【００５１】
この技法は、各スタックに格納されたデータを何らかのエラーから回復することができるようにすることに留意されたい。該メモリコントローラは、１つのＤＩＭＭ上の全てのメモリスタックからのデータ、および場合により多重ＤＩＭＭに対してエラー訂正を実施することができる。
【００５２】
他の実施形態においては、余分なチップに格納されたビットは、パリティ以外の代替的機能を有することができる。例として、余分なストレージまたは隠れビットフィールドは、キャッシュラインに、関連するキャッシュラインのアドレスを付けるのに用いることができる。従って、該メモリコントローラがキャッシュラインＡをフェッチした前回を仮定すると、該メモリコントローラは、キャッシュラインＢもフェッチしている（ただし、Ｂは、ランダムアドレスである）。この結果、該メモリコントローラは、該隠れビットフィールド内のキャッシュラインＢのアドレスでキャッシュラインＡを書き戻すことができる。そして、次に該メモリコントローラがキャッシュラインＡを読出すと、該メモリコントローラは、該隠れビットフィールド内のデータも読出し、かつキャッシュラインＢをプリフェッチする。また別の実施形態においては、メタデータまたはキャッシュタグあるいはプリフェッチ情報を該隠れビットフィールドに格納することができる。
【００５３】
従来の高速ＤＲＡＭの場合、余分なメモリの追加は、図１１に示すように、複数のメモリチップをメモリコントローラに接続する高速メモリバスに余計な電気的負荷を加えることを伴う。
【００５４】
図１１は、複数のＤＲＡＭを１つの高速メモリバスに付加する結果としての従来のインピーダンス負荷を示す。この実施形態の場合、メモリコントローラ１１１０は、高速バス１１１５上のメモリにアクセスする。従来のＤＲＡＭの高速メモリバス１１１５に対する負荷（１１２０）を図１１に示す。追加のメモリ容量を従来の方法で付加するために、複数のメモリチップが高速バス１１１５に付加され、その結果として、追加の負荷（１１２５及び１１３０）が高速メモリバス１１１５に付加される。
【００５５】
該メモリバスの速度が増加するのにつれて、該メモリバスに並列に接続することのできるチップの数は減少する。このことは、最大記憶容量を制限する。言い換えると、該メモリバス上の並列チップの数が増加するのにつれて、該メモリバスの速度は低下する。従って、高記憶容量を実現するためには、低速（およびより低いメモリ性能）を容認しなければならない。
【００５６】
高速ＤＲＡＭを高速インタフェースと低速メモリチップとに分けることは、メモリバス速度及びメモリシステムのパフォーマンスに悪影響を及ぼすことなく、余分な記憶容量の追加を容易にする。単一の高速インタフェースチップは、メモリバスからなるラインの一部または全てに接続して、該メモリバスに公知の一定の負荷を与えることができる。該インタフェースチップの反対側は、低速で作動するため、パフォーマンスを犠牲にすることなく、多重低速メモリチップを該インタフェースチップ（の低速側）に接続して、メモリをアップグレードする能力を与えることができる。実質的に、追加的メモリチップの電気的負荷は、（現在、従来の高速ＤＲＡＭを用いた場合である）高速バスから低速バスにシフトしてきている。低速バスに追加の電気的負荷を加えることは常に、高速バスに追加の電気的負荷を加えることの問題よりも、解決するのがかなり容易である。
【００５７】
図１２は、一実施形態による、高速メモリバスに複数のＤＲＡＭを付加する結果としてのインピーダンス負荷を示す。この実施形態の場合、メモリコントローラ１２１０は、高速メモリバス１２１５上の高速インタフェースチップ１２００にアクセスする。該高速インタフェースチップからの負荷１２２０を図１２に示す。低速バス１２４０は、高速インタフェースチップ１２００に結合している。メモリチップ（１２３０及び１２２５）の負荷は、低速バス１２４０に加えられる。その結果として、追加の負荷は、高速メモリバス１２１５には付加されない。
【００５８】
該インタフェースチップに接続される低速メモリチップの数は、該メモリスタックの製造時に一定にしてもよく、または、製造後に変えてもよい。該メモリスタックの製造後に、余分な記憶容量をアップグレードし、かつ付加する能力は、ユーザが、意図される用途に必要なシステム全体の記憶容量の明確な理解を有していない可能性のあるデスクトップＰＣ等のマーケットにおいて特に有用である。追加の記憶容量を付加するこの能力は、ＰＣ業界が、デスクトップやモバイル等のいくつかの主要市場区分においてＤＤＲ３メモリを採用する場合には、非常に重要になる。これは、ＤＤＲ３の速度においては、メモリチャネル当たりで、１つのＤＩＭＭだけがサポートされることが予想されるためである。このことは、エンドユーザにとっては、システムが構築されて出荷された後に、追加のメモリをシステムに付加する簡単な方法がないことを意味する。
【００５９】
メモリスタックの記憶容量を増加させる能力を与えるために、少なくとも１つの低速メモリチップを付加するのにソケットを用いてもよい。一つの態様において、該ソケットは、プリント配線板（ＰＣＢ）の該メモリスタックと同じ側であって、該メモリスタックに隣接して設けることができる。メモリスタックは、少なくとも１つの高速インタフェースチップまたは少なくとも１つの高速インタフェースチップと少なくとも１つの低速メモリチップとからなることができる。図１３は、ソケットを用いて低速メモリチップを付加する一実施形態を説明するブロック図である。この実施形態の場合、ＤＩＭＭ等のプリント配線板（ＰＣＢ）１３００は、高速インタフェースチップからなる１つ以上のスタックを含む。他の実施形態においては、該スタックは、低速メモリチップも含む。図１３に示すように、１つ以上のソケット（１３１０）が、スタック１３２０に隣接してＰＣＢ１３００上に実装されている。ＰＣＢ１３００の記憶容量を増加させるために、低速メモリチップをこれらのソケットに追加することができる。また、この実施形態の場合、ソケット１３１０は、ＰＣＢ１３００上のスタック１３２０と同じ側に配置されている。
【００６０】
該ＰＣＢのスペースが限定されているか、または、該ＰＣＢの寸法が、ある工業規格または顧客の要求を満たさなければならない状況においては、追加の低速メモリチップのためのソケットは、図１４に示すように、該ＰＣＢの該メモリスタックと同じ側にあり、かつ該メモリスタックの上部に位置するように設計することができる。
【００６１】
図１４は、ソケットがスタックの上部に配置されたＰＣＢを示す。ＰＣＢ１４００は、複数のスタック（１４２０）を含む。１つのスタックは、１つの高速インタフェースチップと、場合により、１つ以上の低速メモリチップとを含む。この実施形態の場合、ソケット１４１０は、１つ以上のスタックの上部に位置している。記憶容量を該ＰＣＢ（例えば、ＤＩＭＭ）に付加するために、複数のメモリチップがソケット（１４１０）内に配置されている。別法として、該追加の低速メモリチップのためのソケットは、図１５に示すように、該ＰＣＢの、該メモリスタックとは反対側にあるように設計することができる。
【００６２】
図１５は、ソケットがスタックの反対側に配置されたＰＣＢを示す。この実施形態の場合、ＤＩＭＭ等のＰＣＢ１５００は、高速インタフェースチップと、場合により１つ以上の低速メモリチップとを含む１つ以上のスタック（１５２０）を備える。この実施形態の場合、図１５に示すように、１つ以上のソケット（１５１０）が、該ＰＣＢの、該スタックとは反対側に実装されている。低速メモリチップは、該メモリスタックに１つずつ付加することができる。すなわち、各スタックは、関連するソケットを有することができる。この場合、追加の容量を該メモリシステムに付加することは、１つ以上の低速メモリチップを、メモリランクにおける各スタックに付加することを伴う（ランクは、メモリアクセスに応答する全てのメモリチップまたはスタック、すなわち、共通のチップセレクト信号によって使用可能にされる全てのメモリチップまたはスタックを意味する）。同じ数で同じ密度のメモリチップを、あるランクにおける各スタックに付加しなければならないことに留意されたい。代替的方法は、ランク内の全てのスタックに対して共通のソケットを用いることとすることができる。この場合、追加の記憶容量を付加することは、多重メモリチップを含むＰＣＢを該ソケットに挿入することを伴い、また、該ランクにおける各スタックに対して少なくとも１つのメモリチップがある。上述したように、同じ数で同じ密度のメモリチップを、該ランクにおける各スタックに付加しなければならない。
【００６３】
多くの異なる種類のソケットを使用することができる。例えば、該ソケットは、メス型ソケットとすることができ、アップグレードメモリチップを有するＰＣＢは、関連するオス型ピンを有することができる。
【００６４】
図１６は、１つ以上のメモリチップを収容できるアップグレードＰＣＢを示す。この実施形態の場合、アップグレードＰＣＢ１６１０は、１つ以上のメモリチップ（１６２０）を含む。図１６に示すように、ＰＣＢ１６１０は、オス型ソケットピン１６３０を含む。ＤＩＭＭ  ＰＣＢ上のメス型レセプタクルソケット１６５０は、追加のメモリチップ（１６２０）を含むように、オス型ソケットピン１６３０と嵌合して、その記憶容量をアップグレードする。別のアプローチは、オス型ソケットと、関連するメス型レセプタクルを有するアップグレードＰＣＢとを用いることである。
【００６５】
高速ＤＲＡＭを低速メモリチップと高速インタフェースチップとに分けること、および多重メモリチップを１つのインタフェースチップの背後にスタックすることは、多重チップをスタックすることに関連する性能に不利な条件を確実に最小限にする。しかし、このアプローチは、現在のＤＲＡＭのアーキテクチャへの変更を要し、このこともまた、この技術を市場に送り出すことに関連する時間及びコストを増加させる。より安くかつより迅速なアプローチは、待ち時間を費やすことなく、バッファチップの背後に、多重在庫のある既製品の高速ＤＲＡＭチップをスタックすることである。
【００６６】
現在の在庫品の高速ＤＲＡＭ（ＤＤＲ２  ＳＤＲＡＭ等など）は、ソース同期ストローブ信号を、データの双方向転送のためのタイミング基準として用いる。４ビット長のＤＤＲまたはＤＤＲ２  ＳＤＲＡＭの場合、専用のストローブ信号が、該ＤＲＡＭの４つのデータ信号と関連付けられている。８ビット長チップの場合には、専用ストローブ信号が８つのデータ信号と関連付けられている。１６ビット及び３２ビットチップの場合は、専用ストローブ信号が、８つのデータ信号の各セットと関連付けられている。たいていのメモリコントローラは、メモリチャネルまたはバスにおける４つまたは８つ全てのデータラインのための専用ストローブ信号に適応するように設計されている。その結果、シグナルインテグリティ及び電気的負荷という考慮すべき事柄により、たいていのメモリコントローラは、（７２ビット長のメモリチャネルの場合）ランクごとに９個または１８個のメモリチップのみに接続することが可能である。接続性に対するこの制限は、２つの４ビット長の高速メモリチップを現在の工業規格のＤＩＭＭ上で相互にスタックすることができるが、２つ以上のチップをスタックすることは困難であることを意味する。２つの４ビット長チップを相互にスタックすることは、ＤＩＭＭの密度を倍にすることに留意すべきである。１つのスタックにおける３つ以上のＤＲＡＭに関連するシグナルインテグリティの問題は、スタッキング技術を用いて、１つのＤＩＭＭの密度を２倍以上にすることを困難にする。
【００６７】
以下に述べるスタッキング技術を用いると、相応して４個、６個または８個のＤＲＡＭを相互にスタックすることにより、１つのＤＩＭＭの密度を４倍、６倍または８倍に増加させることが可能である。このことを遂行するために、１つのバッファチップが外部メモリチャネルと複数のＤＲＡＭチップとの間に設けられ、該バッファチップは、該ＤＲＡＭチップへの及び該ＤＲＡＭからのアドレス信号、制御信号及びデータ信号のうちの少なくとも１つをバッファリングする。一つの実施においては、スタックごとに１つのバッファチップを用いてもよい。他の実施においては、スタックごとに１つ以上のバッファチップを用いてもよい。さらに他の実施においては、複数のスタックに対して１つのバッファチップを用いてもよい。
【００６８】
図１７は、複数のメモリチップをスタックする一実施形態を説明するブロック図である。この実施形態の場合、バッファチップ１８１０は、ホストシステムに、典型的には、該ホストシステムのメモリコントローラに結合されている。メモリデバイス１８００は、バッファチップ１８１０の背後にスタックされた少なくとも２つの高速メモリチップ１８２０（例えば、ＤＤＲ２  ＳＤＲＡＭ等のＤＲＡＭ）を含む（例えば、高速メモリチップ１８２０は、バッファチップ１８１０によってアクセスされる）。
【００６９】
図１７に示す実施形態が、既に説明した図３に示す実施形態と同様であることは明らかである。主な違いは、図３に示すスキームにおいては、多重低速メモリチップが、高速インタフェースチップの上部にスタックされていることである。該高速インタフェースチップは、該ホストシステムに対して業界標準のインタフェース（例えば、ＤＤＲ  ＳＤＲＡＭまたはＤＤＲ２  ＳＤＲＡＭ）を与え、該高速インタフェースチップと低速メモリチップとの間のインタフェースは規格外（すなわち、独自仕様）であってもよく、あるいは、業界標準に準拠していてもよい。一方、図１７に示すスキームは、多重高速の在庫品ＤＲＡＭを１つの高速バッファチップの上にスタックする。該バッファチップは、プロトコル変換を実行してもしなくてもよい（すなわち、該バッファチップは、外部メモリチャネル及び高速ＤＲＡＭチップの両方に対して、ＤＤＲ２等の業界標準のインタフェースを提供することができる）。さらに、該バッファチップは、該メモリチップが呈する電気的負荷（すなわち、該メモリチップの入力寄生成分）を該メモリチャネルから簡単に分離することができる。
【００７０】
他の実施において、該バッファチップは、プロトコル変換を実行することができる。例えば、該バッファチップは、ＤＤＲ３からＤＤＲ２への変換を実行することができる。この方式においては、多重ＤＤＲ２  ＳＤＲＡＭチップを、該ホストシステムに対して１つ以上のＤＤＲ３  ＳＤＲＡＭチップとして見える可能性がある。また、該バッファチップは、プロトコルの１つのバージョンから同じプロトコルの別のバージョンに変換することもできる。この種の変換の例として、該バッファチップは、ＤＤＲ２パラメータからなる１つのセットから、ＤＤＲ２パラメータからなる異なるセットへ変換することができる。このように、該バッファチップは、例えば、あるタイプの１つ以上のＤＤＲ２チップ（例えば、４−４−４ＤＤＲ２  ＳＤＲＡＭ）を、該ホストシステムに対して、異なるタイプの２つ以上のＤＤＲ２チップ（例えば、６−６−６ＤＤＲ２  ＳＤＲＡＭ）として見せることができる。他の実施においては、１つのバッファチップを１つ以上のスタックによって共用してもよいことに留意されたい。また、該バッファチップは、該スタックの一部とするのではなく、該スタックに対して外付けとすることも可能である。また、２つ以上のバッファチップを１つのスタックと関連付けてもよい。
【００７１】
バッファチップを用いて、高速ＤＲＡＭの電気的負荷を該メモリチャネルから分離することは、多重（典型的には、２〜８個の）メモリチップを、１つのバッファチップの上にスタックすることを可能にする。一実施形態においては、１つのスタック内の全てのメモリチップは、同じアドレスバスに接続してもよい。別の実施形態においては、複数のアドレスバスを１つのスタック内のメモリチップに接続してもよく、この場合、各アドレスバスは、該スタック内の少なくとも１つのメモリチップに接続する。同様に、１つのスタック内の全てのメモリチップのデータ信号及びストローブ信号は、一実施形態において、同じデータバスに接続することができ、一方、別の実施形態においては、多重データバスを、１つのスタック内の該メモリチップのデータ信号及びストローブ信号に接続することができ、この場合、各メモリチップは、１つのデータバスにのみ接続し、各データバスは、該スタック内の少なくとも１つのメモリチップに接続する。
【００７２】
このようにバッファチップを用いることは、第１の数のＤＲＡＭが、第２の数のうちの少なくとも１つのＤＲＡＭをシミュレートすることを可能にする。本説明の文脈の中で、該シミュレーションは、該システムに対して違って見える該ＤＲＡＭの少なくとも１つの態様（例えば、この実施形態における数等）をもたらす何らかのシミュレーション、エミュレーション、偽装等を指す。異なる実施形態においては、該シミュレーションは、本質的に電気的、本質的に論理的とすることができ、および／または他の何らかの所望の方法で実行することができる。例えば、電気的シミュレーションのコンテキストにおいては、多重ピン、ワイヤ、信号等をシミュレートすることができ、一方、論理的シミュレーションのコンテキストにおいては、特定の機能をシミュレートすることができる。
【００７３】
本実施形態のさらに追加の態様において、該第２の数は、該第１の数よりも大きくまたは小さくすることができる。さらに、後者の場合においては、該第２の数は、単一のＤＲＡＭがシミュレートされるように１とすることができる。本発明の様々な態様を利用することができる異なる任意の実施形態を、本明細書において以下に記載する。
【００７４】
さらにまた他の実施形態において、該バッファチップは、該ＤＲＡＭと、少なくとも１つのＤＲＡＭをシミュレートするシステムとを、複数のＤＲＡＭのうちの少なくとも１つの少なくとも１つの態様とは異なる少なくとも１つの態様とインタフェースするように作動させることができる。このような実施形態の様々な態様によれば、そのような態様は、信号、容量、タイミング、論理インタフェース等を含むことができる。該１つ以上のＤＲＡＭに関連するどのような態様も、上記の方法とは異なる方法でシミュレートすることができるため、当然、そのような態様の例は、単に例示を目的として記載されており、従って、限定するものとして解釈すべきではない。
【００７５】
該信号の場合、そのような信号は、アドレス信号、制御信号、データ信号および／または他の何らかの信号を含むことができる。例えば、上述した多重信号は、より少ないかまたはより多い信号として見えるようにシミュレートすることができ、または、異なる種類に対応するようにシミュレートすることもできる。さらに他の実施形態においては、多重信号を組み合わせて、別の信号をシミュレートすることができる。さらに、信号がアサートされる時間の長さは、異なるようにシミュレートすることができる。
【００７６】
容量の場合、これは、（ＤＲＡＭの数の関数であってもなくてもよい）記憶容量を指すものとする。例えば、該バッファチップは、複数のＤＲＡＭのうちの少なくとも１つの第２の記憶容量よりも大きい（または、小さい）第１の記憶容量を有する少なくとも１つのＤＲＡＭをシミュレートするために動作可能にすることができる。
【００７７】
該態様がタイミングに関連がある場合、該タイミングは、待ち時間（例えば、時間遅延等）に関連する可能性がある。本発明の一つの態様において、そのような待ち時間は、カラムアドレスストローブ（ｃｏｌｕｍｎ  ａｄｄｒｅｓｓ  ｓｔｒｏｂｅ；ＣＡＳ）レイテンシー（ｃｏｌｕｍｎ  ａｄｄｒｅｓｓ  ｓｔｒｏｂｅ  ｌａｔｅｎｃｙ；ｔＣＡＳ）を含み得、これは、データのカラムにアクセスすることに関連する待ち時間を指す。さらに、該待ち時間は、ｔＲＣＤ（ＲＡＳ（ｒｏｗ  ａｄｄｒｅｓｓ  ｓｔｒｏｂｅ）ｔｏ  ＣＡＳ  ｌａｔｅｎｃｙ）を含み得、これは、ＲＡＳとＣＡＳの間で必要な待ち時間を指す。さらに、該待ち時間は、ｔＲＰ（ｒｏｗ  ｐｒｅｃｈａｒｇｅ  ｌａｔｅｎｃｙ）を含み、これは、開いた行に対するアクセスを終了するのに必要な待ち時間を指す。さらに、該待ち時間は、ｔＲＡＳ（ａｃｔｉｖｅ  ｔｏ  ｐｒｅｃｈａｒｇｅ  ｌａｔｅｎｃｙ）を含み、これは、データ要求とプリチャージコマンドとの間のデータのある行にアクセスするのに必要な待ち時間を指す。いずれの場合においても、該バッファチップは、複数のＤＲＡＭのうちの少なくとも１つの第２の待ち時間よりも長い（または短い）第１の待ち時間を有する少なくとも１つのＤＲＡＭをシミュレートするために動作可能にすることができる。本実施形態の様々な特徴を利用する異なる任意の実施形態を以下に記載する。
【００７８】
さらに別の実施形態において、バッファチップは、該システムから信号を受取って、ある遅延の後、その信号を複数のＤＲＡＭのうちの少なくとも１つに伝えるように動作可能にすることができる。ここでもまた、該信号は、アドレス信号、コマンド信号（例えば、起動コマンド信号、プリチャージコマンド信号、書き込み信号等）、データ信号、または、他の何らかの信号を指すものとする。様々な実施形態において、このような遅延は、固定することができ、または、変化する可能性もある。
【００７９】
場合により、該遅延は、上述した信号のうちのいずれか１つまたはそれ以上に関連する累積遅延を含んでもよい。また、該遅延は、（他の信号に対して）間に合うように該信号を前後にタイムシフトすることができる。当然、そのような前後のタイムシフトは、大きさが等しくても等しくなくてもよい。一実施形態において、このタイムシフトは、それぞれが、異なる信号に対して異なる遅延を適用する複数の遅延関数を利用することによって遂行することができる。
【００８０】
さらに、上述したバッファチップは、レジスタ、ＡＭＢ（Ａｄｖａｎｃｅｄ  ｍｅｍｏｒｙ  ｂｕｆｆｅｒ）、少なくとも１つのＤＩＭＭ上に配置された構成要素、メモリコントローラ等を含んでもよいことに留意すべきである。そのようなレジスタは、様々な実施形態において、ＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ；電子素子技術連合評議会）レジスタ、本明細書に記載されている１つ以上の機能を含むＪＥＤＥＣレジスタ、転送、格納および／またはバッファリング能力等を有するレジスタを含むことができる。様々な特徴を利用する異なる任意の実施形態を以下に記載する。
【００８１】
様々な実施形態において、シミュレートしたＤＲＡＭ回路が、所望のＤＲＡＭ規格または他の設計仕様に従って作動するか否かを判断することが望ましい。多くのＤＲＡＭ回路の動作が、ＪＥＤＥＣ規格によって定められており、いくつかの実施形態においては、特定のＪＥＤＥＣ規格のＤＲＡＭを正確にシミュレートすることが望ましい。ＪＥＤＥＣ規格は、ＤＲＡＭ回路が対応しなければならないコマンドと、そのようなコマンドの結果としてのＤＲＡＭ回路の動作とを規定する。例えば、ＤＤＲ２  ＤＲＡＭのためのＪＥＤＥＣ仕様は、ＪＥＳＤ７９−２Ｂとして知られている。
【００８２】
例えば、ＪＥＤＥＣ規格に合っているか否かを判断することが望ましい場合、次のようなアルゴリズムを用いることができる。このようなアルゴリズムは、論理の形式的検証のためのソフトウェア検証ツールのセットを用いて、シミュレートしたＤＲＡＭ回路のプロトコル動作が、所望の規格または他の設計仕様と同じであるかを確認する。この形式的検証は、ＤＲＡＭ規格に記載のＤＲＡＭプロトコルが典型的には、少数のプロトコルコマンド（例えば、ＪＥＤＥＣ  ＤＤＲ２仕様の場合、約１５のプロトコルコマンド）に限定されているため、問題なく実現可能である。
【００８３】
上述したソフトウェア検証ツールの実例は、ＳＹＮＯＰＳＹＳにより供給されるＭＡＧＥＬＬＡＮ、または、ＣＡＤＥＮＣＥにより供給されるＩＮＣＩＳＩＶＥ等の他のソフトウェア検証ツール、ＪＡＳＰＥＲにより供給される検証ツール、ＲＥＡＬ  ＩＮＴＥＮＴにより供給されるＶＥＲＩＸ、ＭＥＮＴＯＲ  ＣＯＲＰＯＲＡＴＩＯＮにより供給される０−ＩＮ等を含む。これらのソフトウェア検証ツールは、ＤＲＡＭのプロトコル及び仕様によって規定されたルールに対応する書き込まれたアサーションを用いる。それらのアサーションはさらに、バッファチップのための論理記述を構成するコードに含まれている。シミュレートしたＤＲＡＭ回路の所望の動作に対応するアサーションを書き込むことにより、所望の設計要件に合っているか否かを判断する裏付けを構築することができる。このようにして、１つの規格、多重規格または他の設計仕様への準拠性のために様々な実施形態をテストすることができる。
【００８４】
例えば、アサーションは、２つのＤＲＡＭ制御信号が、アドレスバス、制御バス及びクロックバスに対して同時に出せるようになっていないと書き込むことができる。当業者は、本明細書に記載された様々なバッファチップ及びＤＲＡＭスタック構成及びアドレスマッピングのうちのどれが適しているかを理解しているだろうが、上述したアルゴリズムは、設計者が、シミュレートしたＤＲＡＭ回路が、所要の規格または他の設計仕様を厳密に合っていることを検証できるようにする。例えば、データのための共通バス及びアドレスのための共通バスを用いるアドレスマッピングが、所要の仕様に合わない制御バス及びクロックバスを生じる場合には、他のバス構成を有するバッファチップのための代替設計またはバッファチップと他の構成要素との間の配線のための代替設計を、所望の規格または他の設計仕様に対する準拠性のために用いてテストすることができる。
【００８５】
該バッファチップは、業界標準のＤＲＡＭと同じ設置面積（例えば、ＤＤＲ２  ＳＤＲＡＭの設置面積）（またはピン配列）を有するように設計することができる。該バッファチップの上にスタックされる高速ＤＲＡＭチップは、業界標準のピン配列を有するか、または非標準のピン配列を有することができる。このことは、各スタックが、単一の業界標準ＤＲＡＭチップと同じ設置面積を有するため、標準的なＤＩＭＭ  ＰＣＢを使用することを可能にする。いくつかの企業は、多重ＤＲＡＭを相互にスタックする独自仕様の方法を開発している（例えば、Ｔｅｓｓｅｒａ，Ｉｎｃ．のμＺ  Ｂａｌｌ  Ｓｔａｃｋ、Ｓｔａｋｔｅｋ  Ｈｏｌｄｉｎｇｓ，Ｉｎｃ．のＨｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｔａｋｐａｋ）。バッファチップ（図１８）または高速インタフェースチップ（図３）のいずれかの背後に多重メモリチップをスタックする開示された技術は、メモリチップをスタックする全ての異なる方法に適合する。この方法はいかなる特定のスタッキング技術も必要としない。
【００８６】
両面ＤＩＭＭ（すなわち、ＰＣＢの両面にメモリチップがあるＤＩＭＭ）は、特に、高速データ及びストローブ信号が、該基板の各面に１つずつある２つのＤＲＡＭへ送られなければならない場合には、片面ＤＩＭＭよりも電気的に分が悪い。これは、データ信号が、各ブランチが基板の両面のＤＲＡＭで終端している、該ＤＩＭＭ上の２つのブランチ（すなわち、Ｔ字型トポロジー）に分かれなければならないことを意味する。Ｔ字型トポロジーは典型的には、シグナルインテグリティの観点から、ニ地点間トポロジーよりも分が悪い。Ｒａｍｂｕｓ社は、高速信号がＴ字型トポロジーではなくニ地点間トポロジーを有するように、両面ＲＩＭＭ（Ｒａｍｂｕｓ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）にミラーパッケージを用いた。このことは、主に品揃えの関係で、ＤＲＡＭメーカーによって広く採用されてはいない。本開示において、該バッファチップは、業界標準のＤＩＭＮピン配列及びミラーピン配列を用いて設計することができる。該バッファチップの背後にスタックされるＤＲＡＭチップは、該バッファチップが業界標準のピン配列またはミラードピン配列を有するかどうかに関わらず、共通の業界標準ピン配列を有することができる。このことは、ミラードパッケージを用いて、それぞれをスタックすると共に、在庫品のＤＲＡＭチップを用いることによって、高速及び高容量の両面ＤＩＭＭを形成することを可能にする。業界標準のＤＲＡＭ  ＰＣＢは全て、該ＰＣＢの両面で標準的な（すなわち、非ミラード）ＤＲＡＭパッケージに適応するように設計されるため、当然、このことは、非標準ＤＩＭＭ  ＰＣＢの使用を要する。
【００８７】
別の態様においては、該バッファチップは、スタックされたメモリチップの電気的負荷をメモリチャネルから分離するだけではなく、メモリスペアリング、メモリミラーリング及びメモリＲＡＩＤ等の冗長性を提供する能力を有するように設計することができる。このことは、業界標準のメモリモジュールと同じ設置面積（すなわち、ピン互換性）を有するだけではなく、全ての冗長性を提供する高密度ＤＩＭＭを形成することを可能にする。この能力は、ＤＩＭＭスロット（または、コネクタ）の数が、サーバマザーボードのスモールフォームファクタによって制約されるブレードサーバ及び１Ｕラックサーバセグメント等のサーバ市場のキーセグメントにとって重要である。多くのアナリストが、該セグメントが、サーバ市場における最も急成長しているセグメントになると予測している。
【００８８】
メモリスペアリングは、（ｐ＋ｑ）個の高速メモリチップと１つのバッファチップとからなる１つ以上のスタックで実施することができる。各スタックのｐ個のメモリチップは、作業プールに割当てられており、オペレーティングシステム（ＯＳ）及びアプリケーションソフトウェア等のシステムリソースに利用できる。該メモリコントローラ（または場合により、ＡＭＢ）が、該スタックの作業プール内のメモリチップのうちの１つが、例えば、訂正不可能なマルチビットエラーを生成したこと、または、所定のしきい値を超える訂正可能なエラーを生成したことを検知した場合、該メモリコントローラは、その不良チップを、該スペアプール内に置かれているｑ個のチップのうちの１つと置き換えることを選択することができる。前述のとおり、該メモリコントローラは、１つの特定のスタック内の１つの作業チップのみがエラー条件を引き起こした場合でも、ランク内の全てのスタックに対してスペアリングを行うことを選択することができ、または、エラー条件を引き起こした特定のスタックのみに、このスペアリング操作を限定することを選択してもよい。前者の方法は、メモリコントローラの観点から実施するのがより簡単であり、一方、後者の方法は、より耐障害性がある。１つの高速インタフェースチップと多重低速ＤＲＡＭとで形成されたスタックの場合のメモリスペアリングを図８に示す。同じ方法を、複数の高速の在庫品ＤＲＡＭと、１つのバッファチップとで形成されたスタックに適用することができる。他の実施においては、該バッファチップは、該スタックの一部ではなくてもよい。さらに他の実施においては、１つのバッファチップを、メモリチップからなる複数のスタックと共に用いることができ、または、複数のバッファチップを、メモリチップからなる単一のスタックによって使用することができる。
【００８９】
メモリミラーリングは、１つのスタック内の複数の高速メモリチップを、２つの等しいセット、すなわち、作業セットとミラードセットとに分割することによって実施することができる。該メモリコントローラがデータを該メモリに書き込む場合、該バッファチップは、該データを、該作業セット及びミラードセットの両方における同じ記憶位置に書き込む。読み取りの間、該バッファチップは、該作業セットからデータを戻す。戻されたデータが訂正不可能なエラー条件を有していた場合、または、戻されたデータにおける累積訂正可能エラーが所定のしきい値を超えた場合には、該メモリコントローラは、その時点から、該作業セットにおけるエラー条件が修正されるまで、該ミラードセットから（メモリ読み取り上の）データを戻すように該バッファチップに命令することができる。該バッファチップは、該作業セット及びミラードセットの両方に書き込みを送り続けることができ、または、書き込みを該ミラードセットのみに限定してもよい。上述したように、該メモリミラーリング動作は、ランク内の全てのメモリスタックに対して同時に引き起こすことができ、または、場合により、スタックごとに行ってもよい。前者の方法は、実施するのがより容易であり、一方、後者の方法は、耐障害性を与える。１つの高速インタフェースチップと、多重低速メモリチップとで形成されたスタックの場合のメモリミラーリングを図９に示す。同じ方法を、複数の高速の在庫品ＤＲＡＭと１つのバッファチップとで形成されたスタックに適用することができる。他の実施においては、該バッファチップは、該スタックの一部ではなくてもよい。さらに他の実施形態においては、１つのバッファチップを、メモリチップからなる複数のスタックと共に用いることができ、または、複数のバッファチップを、メモリチップからなる単一のスタックによって使用することができる。
【００９０】
１つのスタック内でメモリミラーリングを実施することは、スタックに関連するバッファチップの故障からは保護されないという１つの欠点を有している。この場合、該メモリ内のデータは、１つのスタック内の異なる２つのメモリチップにミラーリングされるが、それら２つのチップは両方とも、共通の関連するバッファチップを介してホストシステムに情報を伝えなければならない。従って、あるスタック内のバッファチップが故障した場合、ミラードメモリの能力は無効になる。この問題を解決するための１つの方法は、該作業セット内の全てのチップを１つのスタックにグループ化するとともに、該ミラードセット内の全てのチップを別のスタックにグループ化することである。この場合、該作業スタックは、該ＤＩＭＭ  ＰＣＢの一方の面にあり、該ミラードスタックは、該ＤＩＭＭ  ＰＣＢの他方の面にあるとすることができる。従って、該作業スタック内のバッファチップが故障した場合、該メモリコントローラは、該ＰＣＢの該他方の面のミラードスタックにスイッチすることができる。
【００９１】
該作業セットからミラードセットへのスイッチは、バンド内信号またはサイドバンド信号を、それぞれのスタック内のバッファへ送るメモリコントローラ（またはＡＭＢ）によって引き起こすことができる。別法として、それらのバッファ自体が、該作業セットからミラードセットへスイッチする能力を有するように、論理を該バッファに付加してもよい。例えば、Ｉｎｔｅｌ社のサーバメモリコントローラハブ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ；ＭＣＨ）のうちのいくつかは、該ＭＣＨが、当該記憶位置の最初の読み取りで訂正不可能なエラーを検知した場合、２度目のための記憶位置を読み取ることになる。該バッファチップは、最後のｍ個の読み取りのアドレスのトラックを保持し、かつ現在の読み取りのアドレスを、格納されているｍ個のアドレスと比較するように設計することができる。該バッファチップがこの一致を検知した場合、最も有効なシナリオは、該ＭＣＨがリードバックされた該データ内の訂正不可能なエラーを検地し、問題になっている記憶位置に対して２度目の読み取りを試みることである。この場合、該バッファチップは、該作業セット内の対応する記憶位置における内容がエラーを有していることを知っているため、該ミラードセットから該記憶位置の内容を読出すことができる。また、該バッファチップは、ある期間、このようなイベント（すなわち、訂正不可能なエラーによる記憶場所に対する２度目の読み取り）の数のトラックを保持するように設計することもできる。それらのイベントの数が、変化する時間窓で、あるしきい値を超えた場合には、該バッファチップは、該ミラードセットへ恒久的にスイッチし、該作業セットの機能が無効になっていたことを外部デバイスに知らせる。
【００９２】
高速の在庫品ＤＲＡＭからなる１つのスタック内でメモリＲＡＩＤを実施することは、非標準ＤＲＡＭからなるスタック内でメモリＲＡＩＤを実施することよりも難しい。その理由は、現在の高速ＤＲＡＭが、各読出しまたは書き込みアクセスのそれぞれに対して、一定量の情報を該ＤＲＡＭから読出し、または該ＤＲＡＭに書き込む必要がある最小バースト長を有するためである。例えば、ｎビット長のＤＤＲ２  ＳＤＲＡＭは、４という最小バースト長を有し、このことは、読み取りまたは書き込み動作ごとに、４ｎビットを該ＤＲＡＭから読出し、または該ＤＲＡＭに書き込まなければならないことを意味する。例示目的のため、以下の議論は、複数のスタックを形成するのに用いられる全てのＤＲＡＭが、８ビット長のＤＤＲ２  ＳＤＲＡＭであり、各スタックが専用バッファチップを有すると仮定する。
【００９３】
該スタックを形成するのに８ビット長のＤＤＲ２  ＳＤＲＡＭを用いると仮定すると、８個のスタックがメモリランクごとに必要になる（ＥＣＣに必要な９番目のスタックを無視する）。ＤＤＲ２  ＳＤＲＡＭは、４という最小バースト長を有するため、単一の読み取りまたは書き込み動作は、該メモリコントローラと１つのスタックとの間で、４バイトのデータを転送することを必要とする。このことは、該メモリコントローラが、各読出しまたは書き込み動作に対して、最小限３２バイトのデータ（８個のスタックの場合、スタックごとに４バイト）をメモリランクへ転送しなければならないことを意味する。現在のＣＰＵは典型的には、６４バイトのキャッシュラインを、該システムメモリへのデータ転送、および該システムメモリからのデータ転送の基本単位として用いる。このことは、読出しまたは書き込み動作に対して、８バイトのデータを該メモリコントローラと各スタックとの間で転送することができることを意味する。
【００９４】
１つのスタック内でメモリＲＡＩＤを実施するために、３個の８ビット長ＤＤＲ２  ＳＤＲＡＭと、１つのバッファチップとを含むスタックを形成することができる。１つのスタック内の３つのＤＲＡＭをチップＡ、チップＢ及びチップＣとする。該メモリコントローラが、ランク内の各スタックに対して、８バイトのバースト書込みを実行する（すなわち、該メモリコントローラは、６４バイトのデータ、すなわち１つのキャッシュラインを全ランクに送る）メモリ書込み動作の場合を考察する。該バッファチップは、最初の４バイト（例えば、バイトＺ０、Ｚ１、Ｚ２及びＺ３）をチップＡ内の特定の記憶位置に書き込み、次の４バイト（例えば、バイトＺ４、Ｚ５、Ｚ６及びＺ７）を、チップＢの同じ記憶位置（すなわち、アドレスｘ１、ｘ２、ｘ３及びｘ４）に書き込むように設計されてもよい。また、該バッファチップは、これらの８バイトに相当するパリティ情報をチップＣ内の同じ記憶位置に格納するように設計することもできる。すなわち、該バッファチップは、Ｐ［０，４］＝Ｚ０＾Ｚ４をチップＣのアドレスｘ１に格納し、Ｐ［１，５］＝Ｚ１＾Ｚ５をチップＣのアドレスｘ２に格納し、Ｐ［２，６］＝Ｚ２＾Ｚ６をチップＣのアドレスｘ３に格納し、Ｐ［３，７］＝Ｚ３＾Ｚ７をチップＣのアドレスｘ４に格納する。ただし、＾は、ビット排他論理和演算子である。従って、例えば、Ｐ［０，４］の最下位ビット（ビット０）は、Ｚ０及びＺ４の最下位ビットの排他論理和であり、Ｐ［０，４］のビット１は、Ｚ０のビット１とＺ４のビット１の排他論理和であり、以下同様である。他のストライピング方法を用いることもできることに留意されたい。例えば、該バッファチップは、バイトＺ０、Ｚ２、Ｚ４及びＺ６をチップＡに、バイトＺ１、Ｚ３、Ｚ５及びＺ７をチップＢに格納してもよい。
【００９５】
ここで、該メモリコントローラが同じキャッシュをリードバックする場合、該バッファチップは、チップＡ及びチップＢの両方における記憶位置ｘ１、ｘ２、ｘ３及びｘ４を読出し、チップＡからバイトＺ０、Ｚ１、Ｚ２及びＺ３を戻した後、チップＢからバイトＺ４、Ｚ５、Ｚ６及びＺ７を戻す。ここで、該メモリコントローラが、バイトＺ１内にマルチビットエラーを検知したと仮定する。前述のように、Ｉｎｔｅｌ社のサーバＭＣＨのうちのいくつかは、最初の読出しコマンドに応答して戻されたデータ内に訂正不可能なエラーを検知した場合、アドレス記憶位置を再び読み出す。従って、該メモリコントローラが、バイトＺ１に対応するアドレス記憶位置を再び読み出す場合、該バッファチップは、該メモリコントローラが、訂正不可能なエラーをＺ１内で検知したことを知っているため、２番目の読出しを検知して、Ｚ１ではなくＰ［１，５］＾Ｚ５のビット排他論理和を戻すように設計することができる。
【００９６】
訂正不可能なエラーの検知後の該メモリコントローラの動作は、該バッファチップのエラー回復動作に影響を及ぼす可能性がある。例えば、該メモリコントローラが、訂正不可能なエラーの発生時に、キャッシュライン全体をリードバックするが不良なバイトでスタートするバーストを要求する場合には、適切なカラムアドレスを参照して、どのバイトが該訂正不可能なエラーに相当するかを判断するように該バッファチップを設計することができる。例えば、Ｚ１が訂正不可能なエラーに相当し、該メモリコントローラは、該スタックが、バイトＺ１から続けて、８バイト（Ｚ０〜Ｚ７）を該コントローラへ送り戻すことを要求すると仮定する。換言すれば、該メモリコントローラは、Ｚ１、Ｚ２、Ｚ３、Ｚ０、Ｚ５、Ｚ６、Ｚ７及びＺ４の順番で、この８バイトを送り戻すように該スタックに求める（すなわち、バースト長＝８、バーストタイプ＝シーケンシャル、およびスタートカラムアドレスＡ［２：０］＝００１ｂ）。該バッファチップは、このことが、バイトＺ１が、訂正不可能なエラーに相当し、Ｐ［１，５］＾Ｚ５、Ｚ２、Ｚ３、Ｚ０、Ｚ５、Ｚ６、Ｚ７及びＺ４を戻すことを示すことを認識するように設計することができる。別法として、該バッファチップは、いずれかの所与のバイト内の訂正不可能なエラーだけではなく、チップ全体（この場合、チップＡ）が故障した場合も訂正することが好ましい場合は、Ｐ［１，５］＾Ｚ５、Ｐ［２，６］＾Ｚ６、Ｐ［３，７］＾Ｚ７、Ｐ［０，４］＾Ｚ４、Ｚ５、Ｚ６、Ｚ７及びＺ４を戻すように設計することもできる。一方、該メモリコントローラが、通常の読出し動作中および訂正不可能なエラーによって引き起こされる２番目の読出し中と同じ順序で、キャッシュライン全体を読み出す場合には、該コントローラは、該２番目の読出しを実行する前または最中に、該バッファチップに対して、バンド内信号を介して、または、サイドバンド信号を介して、どのバイトまたはチップが該訂正不可能なエラーに相当するかを知らせなければならない。
【００９７】
しかし、該メモリコントローラが、（単一のバースト長８ではなく）２つの別々のバースト長４で、６４バイトキャッシュラインの読出しまたは書き込みを行う可能性もある。これは、Ｉ／Ｏデバイスがメモリアクセスを開始する場合である可能性もある。また、これは、６４バイトキャッシュラインが、２つのＤＩＭＭに並列に格納される場合である可能性もある。このような場合、メモリＲＡＩＤの実施は、ＤＭ（Ｄａｔａ  Ｍａｓｋ）信号の使用を要する可能性がある。ここでもまた、３個の８ビット長ＤＤＲ２  ＳＤＲＡＭと、１つのバッファチップとで形成されている３チップスタックの場合を考察する。メモリＲＡＩＤは、１つのスタックに書き込まれる４バイトのデータが、２つのメモリチップに対してストライピングされると共に（すなわち、２バイトが各メモリチップに書き込まれる）、パリティが演算されて、第３のメモリチップに格納されることを要する。しかし、該ＤＤＲ２  ＳＤＲＡＭは、最小バースト長４を有し、これは、転送するように設計されている最小データ量が４バイトであることを意味する。これらの両要件を満たすために、該バッファチップは、該ＤＭ信号を用いて、１つのバースト内の４つのバイトのうちの２つをチップＡに導き、かつ１つのバースト内の他の２つのバイトをチップＢに導くように設計することができる。この概念は、以下の例によって最もうまく説明される。
【００９８】
該メモリコントローラは、メモリランクに対して３２バイトの書き込みを行う場合に、バイトＺ０、Ｚ１、Ｚ２及びＺ３を特定のスタックに送り、関連するアドレスがｘ１、ｘ２、ｘ３及びｘ４であるとする。この例における該スタックは、３個の８ビットＤＤＲ２  ＳＤＲＡＭ（チップＡ、チップＢ及びチップＣ）と、１つのバッファチップとで構成されている。該バッファチップは、３つ全てのチップＡ、Ｂ及びＣ上の記憶場所ｘ１、ｘ２、ｘ３及びｘ４に書き込みコマンドを生成し、以下の動作を実行するように設計することができる。
・Ｚ０及びＺ２をチップＡに書き込み、チップＡに対するＺ１及びＺ３の書き込みをマスクする。
・Ｚ１及びＺ３をチップＢに書き込み、チップＢに対するＺ０及びＺ２の書き込みをマスクする。
・（Ｚ０＾Ｚ１）及び（Ｚ２＾Ｚ３）をチップＣに書き込み、他の２つの書き込みをマスクする。
【００９９】
このことは当然、該バッファチップが、メモリＲＡＩＤの実施の詳細を該メモリコントローラから隠すために、単純なアドレス変換を行う能力を有することを要する。図１８は、８ビット長のＤＤＲ２  ＳＤＲＡＭから構成される３つのチップスタックにデータマスク（ＤＭ）信号を用いてメモリＲＡＩＤを実施するタイミング図である。図１８のタイミング図の第１の信号は、ホストシステムから該スタックに送られたデータを表す。ＤＱ＿Ａ及びＤＭ＿Ａという符号が付けられた第２及び第３の信号は、チップＡに対する書き込み動作中に、該バッファチップによってチップＡに送られたデータ信号及びデータマスク信号を表す。同様に、信号ＤＱ＿Ｂ及びＤＭ＿Ｂは、チップＢに対する書き込み動作中に、該バッファチップによってチップＢに送られた信号を表し、信号ＤＱ＿Ｃ及びＤＭ＿Ｃは、チップＣに対する書き込み動作中に、該バッファチップによってチップＣへ送られた信号を表す。
【０１００】
ここで、該メモリコントローラが、該スタックからバイトＺ０、Ｚ１、Ｚ２及びＺ３をリードバックする場合、該バッファチップは、チップＡ及びチップＢの両方から記憶場所ｘ１、ｘ２、ｘ３及びｘ４を読出し、各チップによって戻された４つのバイトから適切な２つのバイトを選択し、元のデータを再構成し、再構成したデータを該メモリコントローラへ戻す。２つのチップに対するデータストライピングは、他の方法で行ってもよいことに留意すべきである。例えば、バイトＺ０及びＺ１をチップＡに書き込み、バイトＺ２及びＺ３をチップＢに書き込んでもよい。また、この概念は、異なる数のチップで形成されているスタックに拡大適用することもできる。例えば、５個の８ビット長ＤＤＲ２  ＳＤＲＡＭチップと、１つのバッファチップとで形成されたスタックの場合、１つのスタックに対する４バイトバーストは、各チップに対して１つのバイトを書き込み、ＤＭ信号を用いて、該バースト内の残りの３つの書き込みをマスクすることにより、４つのチップに対してストライピングすることができる。パリティ情報は、ここでもまた、関連するＤＭ信号を用いて、第５のチップに格納することができる。
【０１０１】
前述のように、該メモリコントローラ（または、ＡＭＢ）が、リードバックされたデータ内に訂正不可能なエラーを検知する場合、該バッファチップは、他のチップ内のデータならびにパリティ情報を用いて、不良データを再構成するように設計することができる。該バッファチップは、該メモリコントローラによって、そうすることを明確に命令された場合、または、該メモリコントローラによって送られた読出し要求をモニタリングし、ある期間中に、同じアドレスに対する多重読出しを検知することにより、あるいは、他のいくつかの手段によって、この動作を実行することができる。
【０１０２】
メモリＲＡＩＤにおける他のメモリチップからのデータ及びパリティデータを用いて、不良データを再構成することは、ある追加の時間を必要とする。すなわち、該バッファチップが該不良データを再構成しなければならない場合のメモリ読出し待ち時間は、通常の読出し待ち時間よりも大きい可能性が大いにある。このことは、多くの方法で適応させることができる。通常の読出し待ち時間が４クロックサイクルであり、該バッファチップが不良データを再生成しなければならない場合の読出し待ち時間を５クロックサイクルとする。該メモリコントローラは、単純に、全ての読出し動作に対して、５クロックサイクルを読出し待ち時間として用いることを選択してもよい。別法として、該コントローラは、全ての通常の読出し動作に対して、４クロックサイクルをデフォルト値とするが、該バッファチップがデータを再生成しなければならない場合には、５クロックサイクルに切り替えてもよい。該バッファチップには、データの一部を再生成しなければならない場合に、該メモリコントローラを機能停止させるという別の選択もある。これら及び他の方法は、本開示の範囲に含まれる。
【０１０３】
上述したように、１つのスタック内での複数のメモリチップと１つのバッファチップの組合せを用いてメモリＲＡＩＤを実施することができる。このことは、単一のメモリチップ内で、または、ランク内の多重メモリチップに対して、マルチビットエラーを訂正する能力を与える。しかし、追加のメモリチップを該スタックに付加することにより、追加のレベルの冗長性を生成することができる。すなわち、該メモリＲＡＩＤがｎ個のチップに対して実施される場合（この場合、データは、（ｎ−１）個のチップに対してストライピングされ、パリティがｎ番目のチップに格納される）、少なくとも（ｎ＋１）個のメモリチップによって該スタックを形成することにより、別のレベルの冗長性を生成することができる。例示目的のため、２つのメモリチップ（例えば、チップＡ及びチップＢ）に対してデータをストライピングすることを望んでいると仮定する。この場合、パリティ情報を格納するために、第３のチップ（例えば、チップＣ）が必要である。第４のチップ（チップＤ）を該スタックに追加することにより、追加のレベルの冗長性を生成することができる。チップＢが故障し、または、容認できないレベルの訂正不可能なエラーを生成していると仮定する。該スタック内のバッファチップは、周知のディスクＲＡＩＤシステムで用いられているのと同様の様態で、チップＡ内のデータと、チップＣ内のパリティ情報とを用いて、チップＢ内のデータを再構成することができる。該メモリシステムのパフォーマンスは、チップＢが有効に置き換えられるまで、（チップＢ内のデータの再生成に関連する潜在的な長い待ち時間により）明らかに劣化する可能性がある。しかし、該スタック（チップＤ）内に未使用のメモリチップを有するため、次のメンテナンス操作まで、チップＢの代わりに該未使用のメモリチップを用いることができる。該バッファチップは、（チップＡ内のデータと、チップＣ内のパリティ情報とを用いて）チップＢ内のデータを再生成して、該再生成したデータをチップＤに書き込むように設計することができる。一旦、このことが完了すると、チップＢは、廃棄することができる（すなわち、もはや該バッファチップによって使用されない）。チップＢ内でのデータの再生成および該再生成されたデータのチップＤへの転送は、バックグランドで（すなわち、チップＡ、チップＢ、チップＣ及びチップＤを含むランクが用いられないときのサイクル中に）実行するように行うことができる。または、チップＤへの該転送は、データ回復動作のために、該メモリコントローラによって明確にスケジューリングされているサイクル中に実行することができる。
【０１０４】
メモリスペアリング、メモリミラーリング及びメモリＲＡＩＤ等のより高いレベルのメモリ保護を実施するのに必要な論理は、各スタックに関連するバッファチップに組込むことができる。または、該論理は、「より包括的な」バッファチップ（すなわち、個々のスタックに関連するデータビットよりも多くのデータビットをバッファリングするバッファチップ）内で実施することができる。例えば、この論理は、ＡＭＢに組込むことができる。この変形例も本開示の範囲に含まれる。
【０１０５】
ソケットからなる手段を用いて、高速インタフェースの背後に、追加の低速メモリチップを付加する方法を開示した。同じコンセプト（図１２、図１３、図１４及び図１５参照）は、バッファチップの背後に、高速の在庫品ＤＲＡＭチップをスタックすることにも適用可能である。このことも本発明の範囲に含まれる。
【０１０６】
本発明を具体的な例示的実施形態に関して説明してきたが、当業者には、本発明の精神及び範囲から逸脱することなく、様々な変更及び修正を行えることが正しく認識される。
【図１】
2014194795.tif 000003
【図２ａ】
2014194795.tif 000004
【図２ｂ】
2014194795.tif 000005
【図３】
2014194795.tif 000006
【図４】
2014194795.tif 000007
【図５】
2014194795.tif 000008
【図６】
2014194795.tif 000009
【図７】
2014194795.tif 000010
【図８ａ】
2014194795.tif 000011
【図８ｂ】
2014194795.tif 000012
【図８ｃ】
2014194795.tif 000013
【図８ｄ】
2014194795.tif 000014
【図８ｅ】
2014194795.tif 000015
【図９ａ】
2014194795.tif 000016
【図９ｂ】
2014194795.tif 000017
【図９ｃ】
2014194795.tif 000018
【図９ｄ】
2014194795.tif 000019
【図９ｅ】
2014194795.tif 000020
【図１０ａ】
2014194795.tif 000021
【図１０ｂ】
2014194795.tif 000022
【図１１】
2014194795.tif 000023
【図１２】
2014194795.tif 000024
【図１３】
2014194795.tif 000025
【図１４】
2014194795.tif 000026
【図１５】
2014194795.tif 000027
【図１６】
2014194795.tif 000028
【図１７】
2014194795.tif 000029
【図１８】
2014194795.tif 000030
【手続補正書】
【提出日】平成26年6月6日(2014.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スタック内に配置された複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路であって、
前記ＤＲＡＭ集積回路のスタックは（ｐ＋ｑ＋ｒ）個のＤＲＡＭ集積回路を備え、ｐ、ｑ及びｒのそれぞれが整数値であり、
前記スタックは、前記ｐ個のＤＲＡＭ集積回路として、少なくとも２個のＤＲＡＭ集積回路を有し、
前記ｐ個のＤＲＡＭ集積回路は作業メモリとしてデータを記憶するように構成され、前記ｑ個のＤＲＡＭ集積回路は前記ｐ個のＤＲＡＭ集積回路に記憶されたデータのパリティ情報を記憶するように構成され、前記ｒ個のＤＲＡＭ集積回路はメモリ集積回路のスペアプールとして用いられるように構成される、
該ＤＲＡＭ集積回路と、
前記ＤＲＡＭ集積回路の前記スタックとメモリコントローラとの間でインタフェースを設けるインタフェース集積回路と、
を備えるシステム。
【請求項２】
前記インタフェース集積回路は、前記ｐ個のＤＲＡＭ集積回路のうち何れか１つのＤＲＡＭ集積回路内のデータを、前記ｐ個のＤＲＡＭ集積回路のうち他のＤＲＡＭ集積回路からのデータと前記ｑ個のＤＲＡＭ集積回路からのパリティ情報とに基づいて再生成するように構成されている、請求項１に記載のシステム。
【請求項３】
前記インタフェース集積回路は、前記メモリコントローラから受信した命令に応えて前記データを再生成するように構成されている、請求項２に記載のシステム。
【請求項４】
前記インタフェース集積回路は、サイドバンド信号を介して前記メモリコントローラから前記命令を受信するように構成されている、請求項３に記載のシステム。
【請求項５】
前記サイドバンド信号は、システムマネジメントバス（ＳＭＢｕｓ）信号である、請求項４に記載のシステム。
【請求項６】
前記インタフェース集積回路は、バンド内信号を介して前記メモリコントローラから前記命令を受信するように構成されている、請求項３に記載のシステム。
【請求項７】
前記インタフェース集積回路は、前記ｐ個のＤＲＡＭ集積回路内の訂正不可能なエラーを検知し、前記訂正不可能なエラーの検知に応えて前記データを再生成するように構成されている、請求項２に記載のシステム。
【請求項８】
前記インタフェース集積回路は、前記メモリコントローラによって送られた読出し要求を監視し、ある期間中の同じメモリアドレスに対する多重読出しを検知することにより、前記訂正不可能なエラーを検知するように構成されている、請求項７に記載のシステム。
【請求項９】
前記インタフェース集積回路は、前記ｒ個のＤＲＡＭ集積回路の少なくとも１つに再生成された前記データを転送するように構成されている、請求項２に記載のシステム。
【請求項１０】
前記インタフェース集積回路は、前記ｐ個、前記ｑ個、及び前記ｒ個のＤＲＡＭ集積回路を含むランクが用いられないときに、前記データを再生成し、前記データを転送するように構成されている、請求項９に記載のシステム。
【請求項１１】
前記インタフェース集積回路は、データ回復動作のために、前記メモリコントローラによってスケジューリングされた時間中に前記データを再生成し、前記データを転送するように構成されている、請求項９に記載のシステム。
【請求項１２】
前記インタフェース集積回路は、バッファチップである、請求項１に記載のシステム。
【請求項１３】
前記スタック内の前記ＤＲＡＭ集積回路のそれぞれは、第１のメモリプロトコルに関連付けられており、
前記インタフェース集積回路は、ＤＲＡＭ集積回路の前記スタックが前記メモリコントローラに対して第２の異なるメモリプロトコルに関連付けられているように見えるように、前記第１のメモリプロトコルを前記第２の異なるメモリプロトコルに変換するように構成されている、請求項１に記載のシステム。
【請求項１４】
前記スタック内の前記ＤＲＡＭ集積回路のそれぞれは、メモリプロトコルの第１のバージョンに関連付けられており、
前記インタフェース集積回路は、ＤＲＡＭ集積回路の前記スタックが前記メモリコントローラに対して前記メモリプロトコルの第２の異なるバージョンに関連付けられているように見えるように、前記メモリプロトコルの前記第１のバージョンを前記メモリプロトコルの前記第２の異なるバージョンに変換するように構成されている、請求項１に記載のシステム。
【請求項１５】
ＤＲＡＭ集積回路の前記スタックは、シングルデュアルインラインメモリモジュール（ＤＩＭＭ）上に配置されている、請求項１に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
［先行技術文献］特開２００４−３２７４７４号公報
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）は、最もポピュラーなタイプの揮発性メモリであり、多くの異なるマーケットで幅広く用いられている。ＤＲＡＭの人気は、大部分はコストパフォーマンス（Ｍｂ／＄）によるものである。ＰＣのメインメモリ市場は、ＤＲＡＭの最大の消費者である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
コンピュータ製造業者は、ソフトエラーに対処するために多くの技術を用いる。最も単純な方法は、誤り訂正符号（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ；ＥＣＣ）を用いることである。この場合、典型的には、６４ビットのデータを格納するのに７２ビットが用いられる。この種の符号は、シングルビットエラーの検出及び訂正、および２ビットエラーの検出を可能にする。ＥＣＣは、ＤＲＡＭチップのハード故障から保護しない。コンピュータ製造業者は、この種のチップ故障から保護するために、チップキル（Ｃｈｉｐｋｉｌｌ）（登録商標）またはアドバンストＥＣＣと呼ばれる技術を用いる。ディスク製造業者は、同様のディスクエラーに対処するために、レイド（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ；ＲＡＩＤ）と呼ばれる技術を用いる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
該作業セットからミラードセットへのスイッチは、バンド内信号またはサイドバンド信号を、それぞれのスタック内のバッファへ送るメモリコントローラ（またはＡＭＢ）によって引き起こすことができる。別法として、それらのバッファ自体が、該作業セットからミラードセットへスイッチする能力を有するように、論理を該バッファに付加してもよい。例えば、Ｉｎｔｅｌ社のサーバメモリコントローラハブ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ；ＭＣＨ）のうちのいくつかは、該ＭＣＨが、当該記憶位置の最初の読み取りで訂正不可能なエラーを検知した場合、２度目のための記憶位置を読み取ることになる。該バッファチップは、最後のｍ個の読み取りのアドレスのトラックを保持し、かつ現在の読み取りのアドレスを、格納されているｍ個のアドレスと比較するように設計することができる。該バッファチップがこの一致を検知した場合、最も有効なシナリオは、該ＭＣＨがリードバックされた該データ内の訂正不可能なエラーを検知し、問題になっている記憶位置に対して２度目の読み取りを試みることである。この場合、該バッファチップは、該作業セット内の対応する記憶位置における内容がエラーを有していることを知っているため、該ミラードセットから該記憶位置の内容を読出すことができる。また、該バッファチップは、ある期間、このようなイベント（すなわち、訂正不可能なエラーによる記憶場所に対する２度目の読み取り）の数のトラックを保持するように設計することもできる。それらのイベントの数が、変化する時間窓で、あるしきい値を超えた場合には、該バッファチップは、該ミラードセットへ恒久的にスイッチし、該作業セットの機能が無効になっていたことを外部デバイスに知らせる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
本発明を具体的な例示的実施形態に関して説明してきたが、当業者には、本発明の精神及び範囲から逸脱することなく、様々な変更及び修正を行えることが正しく認識される。
［特願２０１２−１３２１１９号の出願当初の特許請求の範囲の内容］
１．  第１の速度でアクセス可能な複数のセルから構成されるメモリコアを備える、垂直方向にスタックされた複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記第１の速度よりも大きい速度で、前記ＤＲＡＭ集積回路とメモリバスとの間でインタフェースを設けるインタフェース集積回路と、を備えるメモリデバイス。
２．  前記インタフェース集積回路が、複数の前記ＤＲＡＭ集積回路とは無関係に、前記メモリバスに一定の負荷をさらに与える、請求項１に記載のメモリデバイス。
３．  前記ＤＲＡＭ集積回路が複数のＤＲＡＭ集積回路ダイを備える、請求項１に記載のメモリデバイス。
４．  前記ＤＲＡＭ集積回路が複数のＤＲＡＭ集積回路パッケージを備える、請求項１に記載のメモリデバイス。
５．  前記インタフェース集積回路が、業界で規定された仕様に従って作動する、請求項１に記載のメモリデバイス。
６．  前記インタフェース集積回路が、ＤＤＲ２  ＳＲＡＭ仕様に従って作動する請求項１に記載のメモリデバイス。
７．  メモリスペアリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のスペアプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項１に記載のメモリデバイス。
８．  所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記インタフェース集積回路に信号を送るメモリコントローラをさらに備え、
前記インタフェース集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項７に記載のメモリデバイス。
９．  前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項８に記載のメモリデバイス。
１０．  前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項８に記載のメモリデバイス。
１１．  メモリミラーリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のミラードプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項１に記載のメモリデバイス。
１２．  所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記インタフェース集積回路に信号を送るメモリコントローラをさらに備え、
前記インタフェース集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項１１に記載のメモリデバイス。
１３．  前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項１２に記載のメモリデバイス。
１４．  前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項１２に記載のメモリデバイス。
１５．  前記ｐに等しいＤＲＡＭ集積回路の数が、前記ｑに等しいＤＲＡＭ集積回路の数に等しい、請求項１１に記載のメモリデバイス。
１６．  メモリスキームをさらに備え、
前記スタックされたＤＲＡＭ集積回路が、（ｐ＋１）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に対してデータを格納する作業メモリデバイスとして用いられる複数のＤＲＡＭ集積回路を備え、
少なくとも１つのＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に格納されたデータのための追加の情報を格納し、
ｐが整数値を備える、請求項１に記載のメモリデバイス。
１７．  前記メモリスキームがＲＡＩＤメモリスキームを備え、前記追加の情報がパリティ情報を備える、請求項１６に記載のメモリデバイス。
１８．  前記追加の情報がプリフェッチ情報を備える、請求項１６に記載のメモリデバイス。
１９．  スタックに結合され、少なくとも１つの追加のＤＲＡＭ集積回路を前記スタックに付加するソケットをさらに備える、請求項１に記載のメモリデバイス。
２０．  前記スタックが、少なくとも１つのインタフェース集積回路と、少なくとも１つのＤＲＡＭ集積回路とを備える、請求項１９に記載のメモリデバイス。
２１．  前記スタックが、少なくとも１つのインタフェース集積回路を備える請求項１９に記載のメモリデバイス。
２２．  前記複数のＤＲＡＭ集積回路が、前記メモリデバイスの製造時に、一定数のＤＲＡＭ集積回路を備えるか、または、前記メモリデバイスの製造後に、可変数のＤＲＡＭ集積回路を備える、請求項１に記載のメモリデバイス。
２３．  異なる時間に、少なくとも１つのＤＲＡＭ集積回路が追加される、請求項１に記載のメモリデバイス。
２４．  ランク内の複数のＤＲＡＭ集積回路をプリント配線板に実装するソケットを備える請求項１に記載のメモリデバイス。
２５．  低速でアクセス可能な複数のセルから構成されるメモリコアを備える、垂直方向にスタックされた複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭ集積回路と１つのメモリバスとの間で、前記メモリコアの前記低速アクセスと比較して高い速度でインタフェースを設けるインタフェース集積回路と、を備えるメモリデバイス。
２６．  第１の速度でアクセス可能な複数のセルから構成されるメモリコアを備える複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路を垂直方向にスタックする手段と、
前記第１の速度よりも大きい速度で、前記ＤＲＡＭ集積回路と、１つのメモリバスとの間でインタフェースを設ける手段と、を備える、メモリデバイス。
２７．  垂直方向にスタックされた、複数の業界標準のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭ集積回路の電気的負荷と前記メモリバスとを分離するように、アドレス信号、制御信号及びデータ信号のうちの少なくとも１つをバッファリングすることにより、前記複数のＤＲＡＭ集積回路と１つのメモリバスとの間でインタフェースを設けるバッファ集積回路と、を備えるメモリデバイス。
２８．  前記バッファ集積回路が、前記ＤＲＡＭ集積回路から構成される複数のスタックのためのインタフェースを設ける、請求項２７に記載のメモリデバイス。
２９．  前記バッファ集積回路が、前記ＤＲＡＭ集積回路から構成されるスタックの外部にある、請求項２７に記載のメモリデバイス。
３０．  複数のバッファ集積回路が、前記ＤＲＡＭ集積回路から構成されるスタックと関連付けられている、請求項２７に記載のメモリデバイス。
３１．  メモリスペアリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、メモリ集積回路の作業プールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、メモリ集積回路のスペアプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える請求項２７に記載のメモリデバイス。
３２．  所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記バッファ集積回路に信号を送るメモリコントローラをさらに備え、
前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３１に記載のメモリデバイス。
３３．  前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える請求項３２に記載のメモリデバイス。
３４．  前記メモリコントローラがさらに、前記サイドバンド信号を用いて前記エラーを伝える、請求項３２に記載のメモリデバイス。
３５．  前記バッファ集積回路が、前記作業メモリ集積回路内で所定数のエラーが生じたか否かを判断するとともに、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のスペアプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３１に記載のメモリデバイス。
３６．  メモリミラーリングをさらに備え、
前記スタックされたＤＲＡＭ集積回路が（ｐ＋ｑ）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記集積回路の作業メモリプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｑ個のＤＲＡＭ集積回路が、ｐに等しく、かつ前記集積回路のミラードメモリプールとして用いられる複数のＤＲＡＭ集積回路を備え、
ｐ及びｑが整数値を備える、請求項２７に記載のメモリデバイス。
３７．  所定数のエラーが前記作業メモリ集積回路内で生じたか否かを判断するとともに、前記エラーを知らせるために、前記バッファ集積回路に信号を送るメモリコントローラをさらに備え、
前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３６に記載のメモリデバイス。
３８．  前記メモリコントローラがさらに、バンド内信号を用いて前記エラーを伝える、請求項３７に記載のメモリデバイス。
３９．  前記メモリコントローラがさらに、サイドバンド信号を用いて前記エラーを伝える、請求項３７に記載のメモリデバイス。
４０．  前記バッファ集積回路が、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路にスイッチする命令を受け取る、請求項３７に記載のメモリデバイス。
４１．  前記バッファ集積回路が、前記作業メモリ集積回路内で所定数のエラーが生じたか否かを判断するとともに、前記メモリ集積回路の作業プールからの少なくとも１つのＤＲＡＭ集積回路を、前記メモリ集積回路のミラードプールからの少なくとも１つのＤＲＡＭ集積回路と置き換える、請求項３６に記載のメモリデバイス。
４２．  前記バッファ集積回路が、
アドレス情報を格納し、
前記アドレス情報を、現在の読出し動作におけるアドレス情報と比較し、
前記格納されたアドレス情報が現在の読出し動作における前記アドレス情報に匹敵する場合に、前記格納されたアドレス情報を用いる、請求項３６に記載のメモリデバイス。
４３．  前記バッファ集積回路が、コマンドを受け取り、
前記コマンドが、
アドレス情報を格納し、
前記アドレス情報を、現在の読出し動作におけるアドレス情報と比較し、
前記格納されたアドレス情報が現在の読出し動作における前記アドレス情報に匹敵する場合に、前記アドレス情報を用いる、請求項３６に記載のメモリデバイス。
４４．  メモリスキームをさらに備え、
前記スタックされたＤＲＡＭ集積回路が、（ｐ＋１）個のＤＲＡＭ集積回路を備え、
ｐ個のＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に対してデータを格納する作業メモリデバイスとして用いられる複数のＤＲＡＭ集積回路を備え、
１つのＤＲＡＭ集積回路が、前記ｐ個のＤＲＡＭ集積回路に格納されたデータのための追加の情報を格納し、
ｐが整数値を備える、請求項２７に記載のメモリデバイス。
４５．  前記メモリスキームがＲＡＩＤメモリスキームを備え、前記追加の情報がパリティ情報を備える、請求項４４に記載のメモリデバイス。
４６．  スタックに結合され、少なくとも１つの追加のＤＲＡＭ集積回路を前記スタックに追加するソケットをさらに備える、請求項２７に記載のメモリデバイス。
４７．  前記スタックが、少なくとも１つのインタフェース集積回路と、少なくとも１つのＤＲＡＭ集積回路とを備える、請求項４６に記載のメモリデバイス。
４８．  前記スタックが、少なくとも１つのインタフェース集積回路を備える、請求項４６に記載のメモリデバイス。
４９．  前記バッファ集積回路が、業界標準ＤＲＡＭのピン配列を備える、請求項２７に記載のメモリデバイス。
５０．  前記ＤＲＡＭ集積回路と、少なくとも１つの前記バッファ集積回路とを備える両面ＤＩＭＭプリント配線板をさらに備える、請求項２７に記載のメモリデバイス。
５１．  前記バッファ集積回路が、ｍ個のこれまでの読出しのアドレスをトラッキングし、現在の読出しのアドレスを前記ｍ個のこれまでの読出しと比較する、請求項２７に記載のメモリデバイス。
５２．  前記バッファ集積回路が、イベントをトラッキングし、過去のイベントに基づいて、機能を実行する、請求項２７に記載のメモリデバイス。
５３．  前記イベントがエラーを備え、前記機能が第２の読出し動作を備える、請求項５２に記載のメモリデバイス。
５４．  前記バッファ集積回路が、前記メモリバスにおいて、１つ以上のプロトコルを１つ以上のプロトコルに変換し、前記ＤＲＡＭ集積回路にアクセスする、請求項２７に記載のメモリデバイス。
５５．  垂直方向にスタックされた、複数のＪＥＤＥＣ規格のダイナミックランダムアクセスメモリ（ＤＲＡＭ）集積回路と、
前記ＤＲＡＭの電気的負荷を前記メモリバスから分離するように、アドレス信号、制御信号及びデータ信号のうちの少なくとも１つをバッファリングすることにより、前記複数のＤＲＡＭ集積回路と、１つのメモリバスとの間でインタフェースを設けるバッファ集積回路と、を備えるメモリデバイス。
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図８ｅ
【補正方法】変更
【補正の内容】
【図８ｅ】
2014194795.tif 000031
【外国語明細書】
2014194795000001.pdf