(57)【要約】【課題】ＤＤＲ  ＳＤＲＡＭインタフェイスのための、システムＥＣＣオーバヘッドを抑制したＤＲＡＭ（本発明では、ダイナミックＲＡＭモジュールの略とする）エラー訂正方法を提供する。【解決手段】前記ＤＲＡＭのデータチップ（複数）からメモリコントローラへデータを送るために多重バーストを含むメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）を前記メモリコントローラと共に遂行する段階と、前記ＤＲＡＭのＥＣＣチップ（単数）を利用して１つ以上のエラーを感知する段階と、前記ＤＲＡＭの前記ＥＣＣチップを利用して前記エラーを有する前記バーストの数を決定する段階と、前記エラーを有する前記バーストの数が所定の閾値より大きいか否か決定する段階と、前記エラーの種類を決定する段階と、前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、前記ＤＲＡＭはメモリチャネル当たり１つのＥＣＣチップを含む。【選択図】図１
2018028910.tif 000002
【特許請求の範囲】
【請求項１】
ＤＤＲ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）インタフェイスを利用してＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ダイナミックＲＡＭモジュール）のメモリエラーを訂正する方法において、
前記ＤＲＡＭのデータチップ（複数）からメモリコントローラへデータを送るために多重のバーストを含むメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）を前記メモリコントローラと共に遂行する段階と、
前記ＤＲＡＭのＥＣＣチップを利用して１つ以上のエラーを感知する段階と、
前記ＤＲＡＭの前記ＥＣＣチップを利用して前記エラーを有する前記バーストの数を決定する段階と、
前記エラーを有する前記バーストの数が所定の閾値（ｔｈｒｅｓｈｏｌｄ  ｎｕｍｂｅｒ）より大きいか否かを決定する段階と、
前記エラーの種類を決定する段階と、
前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、
前記ＤＲＡＭは、メモリチャネル当たり１つのＥＣＣチップを含むことを特徴とする方法。
【請求項２】
前記ＤＲＡＭの前記ＥＣＣチップを利用して前記１つ以上のエラーを感知する段階は、
前記ＥＣＣチップを利用して前記バーストの各々についてパリティチェック（ｐａｒｉｔｙ  ｃｈｅｃｋ）を遂行する段階を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記エラーを有する前記バーストの数が前記閾値より大きくなければ、前記ＤＲＡＭからメモリ読出しを再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記メモリコントローラが前記メモリ読出しを再トライすれば、追加的なエラーを感知する段階と、
前記追加的なエラーが前記感知された１つ以上のエラーと同一のエラーパターンを有するか否かを決定する段階と、をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記追加的なエラーが前記感知された１つ以上のエラーと異なるエラーパターンを有すると決定されれば、前記ＤＲＡＭからメモリ読出しを再び再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記追加的なエラーが前記感知された１つ以上のエラーと同一のエラーパターンを有すると決定されれば、ハードエラー（ｈａｒｄ  ｅｒｒｏｒ）を識別する段階と、
エラー訂正において前記ＤＲＡＭを支援するように前記メモリコントローラを指示する段階と、
前記エラーのアドレス（ａｄｄｒｅｓｓ）を記録する段階をさらに含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記エラーを有する前記バーストの数が前記閾値より大きければ、前記１つ以上のエラーが同一のチップの同一のピンに対応するか否かを決定する段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記１つ以上のエラーが前記ＤＲＡＭの同一のチップの同一のピンに対応すると決定されれば、前記エラーは、ＤＱ故障（ＤＱ  ｆａｉｌｕｒｅ）に対応すると決定する段階と、
前記１つ以上のエラーが前記同一のチップの前記同一のピンに対応しないと決定されれば、前記１つ以上のエラーは、チップ故障（ｃｈｉｐ  ｆａｉｌｕｒｅ）に対応すると決定する段階と、をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記メモリコントローラを指示する段階は、
前記１つ以上のエラーが前記ＤＱ故障又は前記チップ故障に対応すれば、チップキル感知（ｃｈｉｐｋｉｌｌ  ｄｅｔｅｃｔｉｏｎ）を支援するようにメモリコントローラを指示する段階を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記エラーを有する前記バーストの数が前記閾値より大きければ、前記１つ以上のエラーが前記ＤＲＡＭの１つより多いチップに対応するか否かを決定する段階と、
前記１つ以上のエラーが前記ＤＲＡＭの同一のチップに対応すると決定されれば、前記ＤＲＡＭの該当チップは、消去されたことと表示する段階と、
前記１つ以上のエラーが前記ＤＲＡＭの１つより多いチップに対応すると決定されれば、致命的なエラー（ｆａｔａｌ  ｅｒｒｏｒ）を識別する段階と、をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記エラーを有する前記バーストの数が前記閾値より大きければ、前記ＤＲＡＭの他のチップが以前に消去されたか否かを決定する段階と、
前記ＤＲＡＭの前記他のチップが以前に消去されたら、致命的なエラーを識別する段階と、をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
ＤＤＲ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）インタフェイスを通じてメモリコントローラと通信するＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）において、
２つのメモリチャネルを含み、
各メモリチャネルは、
内部にデータを格納し、１つのメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）に対応する各々の多重バーストの間に前記メモリコントローラへ１回データを伝達する多重のデータチップと、
前記データチップの１つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する１つのＥＣＣ（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）チップと、を含むことを特徴とするＤＲＡＭ。
【請求項１３】
前記ＥＣＣチップは、エラーを感知し、前記感知されたエラーの種類をＤＱ故障（ＤＱ  ｆａｉｌｕｒｅ）、チップ故障（ｃｈｉｐ  ｆａｉｌｕｒｅ）、ソフトエラー（ｓｏｆｔ  ｅｒｒｏｒ）又はハードエラー（ｈａｒｄ  ｅｒｒｏｒ）の中で何れか１つとして決定することを特徴とする請求項１２に記載のＤＲＡＭ。
【請求項１４】
前記ＥＣＣチップは、チップキル感知（ｃｈｉｐｋｉｌｌ  ｄｅｔｅｃｔｉｏｎ）を支援するか、又は前記感知されたエラーの前記決定された種類に従ってエラー訂正を支援するようにメモリコントローラを指示することを特徴とする請求項１３に記載のＤＲＡＭ。
【請求項１５】
前記ＥＣＣチップがエラーを感知すれば、前記メモリコントローラが前記ＥＣＣチップの情報読出し出力を遂行するように前記ＥＣＣチップは、前記メモリコントローラへ命令を発行することを特徴とする請求項１２に記載のＤＲＡＭ。
【請求項１６】
前記ＥＣＣチップが１ビットのＥＣＣフラッグ（１−ｂｉｔ  ＥＣＣ  ｆｌａｇ）を利用してエラーを感知すれば、前記メモリ処理の間に前記メモリコントローラへ警告する（ａｌｅｒｔ）、前記ＥＣＣチップと連結された１つのピンをさらに含むことを特徴とする請求項１２に記載のＤＲＡＭ。
【請求項１７】
前記データチップ及び前記ＥＣＣチップは、各メモリ処理の間に前記メモリコントローラへＥＣＣチップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することを特徴とする請求項１２に記載のＤＲＡＭ。
【請求項１８】
メモリコントローラと、
データチップ（複数）とＥＣＣ（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）チップ（複数）とを含むＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）と、を含み、
前記ＥＣＣチップの各々は、前記ＤＲＡＭの該当メモリチャネルの一部のエラーを訂正し、
前記メモリコントローラは、前記ＥＣＣチップが訂正できない他のエラーを訂正するために前記ＥＣＣチップを支援することを特徴とするメモリシステム。
【請求項１９】
前記ＥＣＣチップの各々は、エラー感知に従って前記メモリコントローラへ１ビットのＥＣＣフラッグ（１−ｂｉｔ  ＥＣＣ  ｆｌａｇ）を送るためのピンを含むことを特徴とする請求項１８に記載のメモリシステム。
【請求項２０】
前記ＤＲＡＭは、複数のメモリチャネルを含み、
前記ＤＲＡＭの前記複数のメモリチャネルの各々は、前記ＥＣＣチップの中の１つを含むことを特徴とする請求項１８に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリエラー訂正のための方法及びメカニズムに係る。
【背景技術】
【０００２】
ＤＤＲ  ＳＤＲＡＭ（Ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）はコンピュータで利用されるメモリ集積回路（ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＩＣ）の１種である。
ＤＤＲ  ＳＤＲＡＭは電気的なデータ及びクロック信号のタイミング制御を利用して、より速い伝送速度を達成でき、クロック信号の上昇エッジ（ｒｉｓｉｎｇ  ｅｄｇｅ）及び下降エッジ（ｆａｌｌｉｎｇ  ｅｄｇｅ）の双方を用いてデータを伝送でき、こうして同一のクロック周波数を利用するＳＤＲ  ＳＤＲＡＭ（ｓｉｎｇｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）インタフェイスと比較すれば、データバス帯域幅（ｄａｔａ  ｂｕｓ  ｂａｎｄｗｉｄｔｈ）を効率的に２倍に高め、従って約２倍の帯域幅を達成する。
【０００３】
多様な世代のＤＲＡＭは一般的な類型のデータエラーを感知し、時には訂正するためにデータ格納の最中にＥＣＣ（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ、エラー訂正コード）メモリを利用できる。ＥＣＣメモリはパリティ検査（ｐａｒｉｔｙ  ｃｈｅｃｋｉｎｇ）の利用を通じて、単一のビットエラーを感知し、後の誤動作を防止できる（ｉｍｍｕｎｅ）。ＤＲＡＭシステムにおいては、パリティ検査は、メモリ（例えば、ＤＲＡＭモジュールのパリティ装置又はＥＣＣチップ）に、格納されたデータ（例えば、１バイトデータ）の（奇数又は偶数）パリティを示す余分のパリティビットを格納しておき、独立的にパリティを計算し、そして格納されたパリティと計算されたパリティとを比較してデータエラー／メモリエラーが発生したか否かを感知することによって達成される。
【０００４】
従って、ＤＲＡＭモジュール（例えば、ＤＩＭＭ（ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ））で回収された（ｒｅｔｒｉｅｖｅｄ）、データワード（ｄａｔａ  ｗｏｒｄ）又はデータシンボル（ｄａｔａ  ｓｙｍｂｏｌ）に対応するデータがＤＲＡＭモジュールに書き込まれたデータと同一であることを保証するために、ＥＣＣはデータの１つ以上のビットが間違った状態にフリップされた場合に発生するエラーを訂正できる。
【０００５】
即ち、ＥＣＣリダンダンシ（Ｒｅｄｕｎｄａｎｃｙ）を利用して、ＥＣＣチップはＳＥＣ−ＤＥＤ（ｓｉｎｇｌｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ，ｄｏｕｂｌｅ  ｅｒｒｏｒ  ｄｅｔｅｃｔｉｏｎ、単一エラー訂正・２重エラー感知）を遂行する。これは、ＥＣＣチップが１つのバースト（ｂｕｒｓｔ）で発生する２つのエラーの存在を感知でき、そしてまた孤立して発生した単一の間違ったビットを訂正できることを意味する。即ち、１つのデータチップがエラーを含む（ｃｏｒｒｕｐｔｅｄ）場合、即ち損失された（ｌｏｓｔ）場合、残っているデータチップのデータ及びＥＣＣチップのＥＣＣデータを利用して、エラーを含む、即ち損失された（ｍｉｓｓｉｎｇ）データチップのデータは復元可能である。
【０００６】
追加的に、ＤＲＡＭシステムは、非機能的（ｎｏｎｆｕｎｃｔｉｏｎａｌ、機能を喪失した）データチップの消去（ｅｒａｓｉｎｇ）、即ち不能化（ｄｉｓａｂｌｉｎｇ）のためのチップキル（ｃｈｉｐｋｉｌｌ）メカニズムを含み得る。ＤＤＲ４の多様なチップキルメカニズムは、非機能的チップを感知し、そのモジュール上の位置を見つけ出し、そして消去するために、メモリチャネル当たり２つ以上のＥＣＣ装置／チップを利用する。
【０００７】
例えば、一般的なＤＤＲ４は、８ｎのプリフェッチレングス（ｐｒｅｆｅｔｃｈ  ｌｅｎｇｔｈ）、８のバーストレングス（ｂｕｒｓｔ  ｌｅｎｇｔｈ、即ち、メモリ処理（ｔｒａｎｓａｃｔｉｏｎ、一連の処理、以下、単に「処理」という）当たり８個のバースト）、そして６４ビットのメモリチャネル幅（ｗｉｄｔｈ）を含む。ここで、ｎは該当システム構造で利用されるデータのインタフェイス幅（ｉｎｔｅｒｆａｃｅ  ｗｉｄｔｈ）のビット数である（例えば、インタフェイス幅が４ビットであれば、該当ＤＤＲ４システムのプリフェッチレングスは３２ビットである）。従って、ＤＤＲ４は１つのメモリ処理毎に５１２ビットを伝送する。
【０００８】
ＤＤＲインタフェイス帯域幅を増加し続けるために、新しいＤＤＲインタフェイスはプリフェッチレングスを増加させる。このような新しいＤＤＲインタフェイスは現行のＤＤＲ４インタフェイスのプリフェッチレングスの２倍である１６ｎのプリフェッチレングスを含む。それ故、新しいＤＤＲインタフェイスは、１つのメモリ処理毎にＤＤＲ４システムによって伝送されるデータ量の２倍を伝送する。
この新しいＤＤＲインタフェイスは、また１６のバーストレングス（即ち、各個別のメモリ処理当たり１６個のバースト）、及びメモリチャネル当たり３２ビットのメモリチャネル幅を含み、それ故１つのメモリ処理毎にメモリチャネル当たり５１２ビットをまた伝送する。しかし、このＤＤＲインタフェイスはＤＩＭＭ当たり２つのメモリチャネルを含み、各ＤＩＭＭはコンピュータマザーボード（ｍｏｔｈｅｒｂｏａｒｄ）との連結を可能にするチップピン（ｃｈｉｐ  ｐｉｎｓ）を含む回路基板（ｃｉｒｃｕｉｔ  ｂｏａｒｄ）上に多重ＤＲＡＭチップを含むモジュールである。ＤＤＲ  ＤＩＭＭの２つのメモリチャネルは互いに独立的に効果的に動作する。
【０００９】
ＤＤＲ４より狭いメモリチャネルを有するにも拘らず、新しいＤＤＲインタフェイスは、各メモリチャネルに対してデータを格納し、伝送するように構成される８個のデータ装置（例えば、４ビットのデータチップ）を備えてメモリチャネル当たり３２ビットのデータ幅を含む。このような新しいＤＤＲインタフェイスは、また各メモリチャネルに対して１つの４ビットＥＣＣチップを備えてメモリチャネル当たり４ビットのＥＣＣ幅を有する。従って、ＤＤＲ４のメモリチャネル幅の半分を有することを補償するために、このような新しいＤＤＲインタフェイスはＤＤＲ４の２倍のバーストレングスを有する。このような新しいＤＤＲインタフェイスは２つのメモリチャネルを含み、各メモリチャネルはデータを格納するための専用の８個の４ビットデータチップを有するので、バースト当たり総計６４ビットのメモリデータがある。
【００１０】
それだけでなく、メモリチャネル当たり２つのＥＣＣチップを含むＤＤＲ４と異なり、この新しいＤＤＲインタフェイスは、データを格納するために利用される１６個のデータチップを保護するために、メモリチャネル当たり１つのＥＣＣチップ、又は甚だしくはＤＩＭＭ当たり１つのＥＣＣチップしか有しない。従って、この新しいＤＤＲインタフェイスはＤＤＲ４に比べてＥＣＣオーバヘッド（ｏｖｅｒｈｅａｄ）を削減できる。従って、この新しいＤＤＲインタフェイスがメモリチャネル当たり１つのＥＣＣチップを利用すれば、バースト毎に２つの４ビットＥＣＣチップに対応する８ビットのＥＣＣデータがある。ここで、１つのＥＣＣチップはＤＩＭＭの２つのメモリチャネルの各々にある。従って、この新しいＤＤＲインタフェイスはバースト毎に７２ビットのデータを伝送する。
【００１１】
システムＥＣＣオーバヘッドはデータ幅の減少に対応して増加するので、現在ＤＤＲ４技術を利用してＤＤＲ  ＲＡＳ（ｒｅｌｉａｂｉｌｉｔｙ、ａｖａｉｌａｂｉｌｉｔｙ、ａｎｄ  ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）を維持することは難しい。それだけでなくＤＩＭＭ当たりメモリチャネル数が増加すると、チップキル技術は追加的なＥＣＣオーバヘッドを必要とする。
【００１２】
従って、エラー訂正及びデータ復元の新しい方法を提供し、その際、メモリコントローラからの支援無しで内部的に一部の類型のメモリエラーを訂正することが可能であり、且つ、メモリコントローラからの支援を内部的に訂正できない他の類型のエラーのメモリ訂正に向けることが可能である、ＤＲＡＭ  ＤＩＭＭを提供することが有用である。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第７，７２１，１４０号公報
【特許文献２】米国特許第７，９４９，９３１号公報
【特許文献３】米国特許第８，０４１，９９０号公報
【特許文献４】米国特許第８，５６６，６６９号公報
【特許文献５】米国特許第８，６１２，８２８号公報
【特許文献６】米国特許第８，８６９，００５号公報
【特許文献７】米国特許第８，９９６，９５０号公報
【特許文献８】米国特許第９，２８０，４１８号公報
【特許文献９】米国特許公開第２０１５／００８２１２２号明細書
【特許文献１０】米国特許公開第２０１５／００８９１１１号明細書
【特許文献１１】米国特許公開第２０１５／０２５４００３号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１４】
上述した技術的課題を解決するためになされた本発明の目的は、ＤＤＲ  ＳＤＲＡＭインタフェイスのための、システムＥＣＣオーバヘッドを抑制したＤＲＡＭモジュール支援エラー訂正メカニズムを提供することにある。
以下、本発明では、複数の、通常のＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ダイナミックＲＡＭ）を含むモジュールを簡潔に「ＤＲＡＭ」（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ダイナミックＲＡＭモジュール）と呼び、通常の個々のＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ダイナミックＲＡＭ）をチップと呼ぶ。チップは、データチップとＥＣＣチップを含む。
【課題を解決するための手段】
【００１５】
本開示の実施形態の様相は、エラーを訂正するためにＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ダイナミックＲＡＭモジュール）内ＥＣＣを利用する新しいＤＤＲインタフェイスに係る。
本発明の実施形態によれば、ＤＤＲ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）インタフェイスを利用してＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ダイナミックＲＡＭモジュール）のメモリエラーを訂正する方法が提供される。該方法は前記ＤＲＡＭのデータチップ（複数）からメモリコントローラへデータを送るために多重バーストを含むメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）を前記メモリコントローラと共に遂行する段階、前記ＤＲＡＭのＥＣＣチップ（単数）を利用して１つ以上のエラーを感知する段階、前記ＤＲＡＭの前記ＥＣＣチップを利用して前記エラーを有する前記バーストの数を決定する段階、前記エラーを有する前記バーストの数が所定の閾値（ｔｈｒｅｓｈｏｌｄ  ｎｕｍｂｅｒ）より大きいか否かを決定する段階、前記エラーの種類を決定する段階、及び前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階を含み、前記ＤＲＡＭはメモリチャネル当たり１つのＥＣＣチップを含む。
【００１６】
前記ＤＲＡＭの前記ＥＣＣチップを利用して前記１つ以上のエラーを感知する段階は、前記ＥＣＣチップを利用して前記バーストの各々についてパリティチェック（ｐａｒｉｔｙ  ｃｈｅｃｋ）を遂行する段階を含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きくなければ、前記ＤＲＡＭからメモリ読出しを再トライするように前記メモリコントローラを指示する段階をさらに含むことができる。
前記方法は前記メモリコントローラが前記メモリ読出しを再トライすれば、追加的なエラーを感知する段階、及び前記追加的なエラーが前記感知された１つ以上のエラーと同一のエラーパターンを有するか否かを決定する段階をさらに含むことができる。
前記方法は前記追加的なエラーが前記感知された１つ以上のエラーと異なるエラーパターンを有すると決定されれば、前記ＤＲＡＭからメモリ読出しを再び再トライするように前記メモリコントローラを指示する段階をさらに含むことができる。
前記方法は前記追加的なエラーが前記感知された１つ以上のエラーと同一のエラーパターンを有すると決定されれば、ハードエラー（ｈａｒｄ  ｅｒｒｏｒ）を識別する段階、エラー訂正において前記ＤＲＡＭを支援するように前記メモリコントローラを指示する段階、及び前記エラーのアドレス（ａｄｄｒｅｓｓ）を記録する段階をさらに含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記１つ以上のエラーが同一のチップの同一のピンに対応するか否かを決定する段階をさらに含むことができる。
前記方法は前記１つ以上のエラーが前記ＤＲＡＭの同一のチップの同一のピンに対応すると決定されれば、前記エラーはＤＱ故障（ＤＱ  ｆａｉｌｕｒｅ）に対応すると決定する段階、及び前記１つ以上のエラーが前記同一のチップの前記同一のピンに対応しないと決定されれば、前記１つ以上のエラーはチップ故障（ｃｈｉｐ  ｆａｉｌｕｒｅ）に対応すると決定する段階をさらに含むことができる。
前記メモリコントローラを指示する段階は前記１つ以上のエラーが前記ＤＱ故障又は前記チップ故障に対応すれば、チップキル感知（ｃｈｉｐｋｉｌｌ  ｄｅｔｅｃｔｉｏｎ）を支援するようにメモリコントローラを指示する段階を含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記１つ以上のエラーが前記ＤＲＡＭの１つより多いチップに対応するか否かを決定する段階、前記１つ以上のエラーが前記ＤＲＡＭの同一のチップに対応すると決定されれば、前記ＤＲＡＭの該当チップは消去されたことと表示する段階、及び前記１つ以上のエラーが前記ＤＲＡＭの１つより多いチップに対応することと決定されれば、致命的なエラー（ｆａｔａｌ  ｅｒｒｏｒ）を識別する段階をさらに含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記ＤＲＡＭの他のチップが以前に消去されたか否かを決定する段階、及び前記ＤＲＡＭの前記他のチップが以前に消去されたら、致命的なエラーを識別する段階をさらに含むことができる。
【００１７】
本発明の他の実施形態によれば、ＤＤＲ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）インタフェイスを通じてメモリコントローラと通信するＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）が提供され、該ＤＲＡＭは２つのメモリチャネルを含み、各メモリチャネルは、内部にデータを格納し、１つのメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）に対応する各々の多重バーストの間に前記メモリコントローラへ１回データを伝達する多重データチップ及び前記データチップの１つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する１つのＥＣＣ（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）チップを含む。
【００１８】
前記ＥＣＣチップはエラーを感知し、前記感知されたエラーの種類をＤＱ故障（ＤＱ  ｆａｉｌｕｒｅ）、チップ故障（ｃｈｉｐ  ｆａｉｌｕｒｅ）、ソフトエラー（ｓｏｆｔ  ｅｒｒｏｒ）又はハードエラー（ｈａｒｄ  ｅｒｒｏｒ）の中で何れか１つとして決定することができる。
前記ＥＣＣチップはチップキル感知（ｃｈｉｐｋｉｌｌ  ｄｅｔｅｃｔｉｏｎ）を支援するか、又は前記感知されたエラーの前記決定された種類に従ってエラー訂正を支援するようにメモリコントローラを指示することができる。
前記ＥＣＣチップがエラーを感知すれば、前記メモリコントローラが前記ＥＣＣチップの情報読出し出力を遂行するように前記ＥＣＣチップは前記メモリコントローラへ命令を発行することができる。
前記ＤＲＡＭは、前記ＥＣＣチップが１ビットのＥＣＣフラッグ（１−ｂｉｔ  ＥＣＣ  ｆｌａｇ）を利用してエラーを感知すれば、前記メモリ処理の間に前記メモリコントローラへ警告する（ａｌｅｒｔ）、前記ＥＣＣチップと連結された１つのピンをさらに含むことができる。
前記データチップ及び前記ＥＣＣチップは各メモリ処理の間に前記メモリコントローラへＥＣＣチップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することができる。
【００１９】
本発明の他の実施形態によれば、メモリコントローラ及びデータチップ（複数）とＥＣＣ（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）チップ（複数）とを含むＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）を含み、前記ＥＣＣチップの各々は前記ＤＲＡＭの該当メモリチャネルの一部のエラーを訂正し、前記メモリコントローラは前記ＥＣＣチップが訂正できない他のエラーを訂正するために前記ＥＣＣチップを支援するメモリシステムが提供される。
【００２０】
前記ＥＣＣチップの各々はエラー感知に従って前記メモリコントローラへ１ビットのＥＣＣフラッグ（１−ｂｉｔ  ＥＣＣ  ｆｌａｇ）を送るためのピンを含むことができる。
前記ＤＲＡＭは複数のメモリチャネルを含むことができ、前記ＤＲＡＭの前記複数のメモリチャネルの各々は前記ＥＣＣチップの中の１つを含むことができる。
【発明の効果】
【００２１】
本発明の実施形態は、ＤＤＲ４によって提供されるような基本チップキルＲＡＳ特徴を提供できるアーキテクチャの具現に際して、ＥＣＣ機能を内蔵しない複数のデータチップと単一のＥＣＣチップを有するので、ＥＣＣチップオーバヘッド（即ち、メモリチャネル当たり１つのＥＣＣチップ）を最小限に削減し、内部プリフェッチの大きさを最小限に削減し、しかもＤＤＲ４に対応するインタフェイスに対するＤＤＲインタフェイスの変更を最小限に抑制するだけで、このような特徴を提供することが可能になる。
【図面の簡単な説明】
【００２２】
本発明のこれら及び他の様相は本明細書、請求の範囲、及び添付図面を参照して認識され、理解されるべきである。
【図１】本発明の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図２】本発明の他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図３】本発明のその他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図４】本発明のその他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図５】本発明のその他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図６】本発明のその他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【図７】本発明の１つ以上の実施形態に係ってＤＡＥＣＣ（ＤＲＡＭ  ａｓｓｉｓｔ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング（ｈａｎｄｌｉｎｇ）することを示した順序図である。
【図８】本発明の１つ以上の実施形態に係ってＤＡＥＣＣ（ＤＲＡＭ  ａｓｓｉｓｔ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング（ｈａｎｄｌｉｎｇ）することを示した順序図である。
【発明を実施するための形態】
【００２３】
本発明の特徴及びこれを達成する方法は以下の実施形態及び添付された図面の詳細な説明を参照すれば、さらに容易に理解されることができる。以下、本発明の実施形態は同一の参照番号は同一の構成要素を参照する添付された図面を参照してさらに詳細に説明される。しかし、本発明は多様な形態に具体化されることができ、本明細書で図示された実施形態のみに限定されることと解釈されない。むしろ、このような実施形態は本発明が徹底であり、完全であり、本発明の様相及び特徴を当業者に十分に伝達できるように例として提供される。従って、本発明の様相及び特徴の完全な理解のために当業者に不必要なプロセス、要素、及び技術は説明されないことがある。その他の言及が無い限り、添付図面及び詳細な説明の全般にわたって同一の参照符号は同一の要素を示し、従って、その説明は反複しない。図面で、要素、層、及び領域の相対的な大きさは明確性のために誇張されることができる。
【００２４】
“第１”、”第２”、“第３”等の用語は本明細書で多様な構成要素、成分、領域、層及び／又はセクションを説明するために利用されることができるが、このような構成要素、成分、領域、層及び／又はセクションはこのような用語によって制限されないことと理解されるべきである。このような用語は１つの要素、成分、領域、層又はセクションを他の要素、成分、領域、層又はセクションと区別するために利用される。従って、以下で説明される第１構成要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第２構成要素、成分、領域、層、又はセクションとして説明されることができる。
【００２５】
１つの要素又は図面で図示された他の構成要素又は特徴との特徴的な関係を説明するための説明を容易にするために“下の”、“下”、“低い”、“特定部分の下”、“上に”、“上部”と同一の空間的であり、相対的な用語がここで使用されることができる。空間的であり、相対的な用語は図面で示された方向に加えて使用又は動作で装置の他の方向を含むように意図されたことが理解されるべきである。例えば、仮に図面の装置が裏返したら、他の構成要素又は特徴の“下”又は“下の”又は“特定部分の下”として説明された構成要素は他の構成要素又は特徴の“上に”合わせられるようになる。従って、“下の”又は“特定部分の下”の例示的な用語は上又は下方向の全てを含むことができる。装置は異なりに合わせられ（例えば、９０°は他の方向に回転されること）、そして空間的に相対的な技術語はそれに従って解釈されなければならない。
【００２６】
要素、層、領域、又は成分が他の構成要素、層、領域又は成分“に”、“に結合された”、“に連結された”ことと言及される時、それは他の要素、層、領域、又は成分“に直接的に”、“に直接的に結合された”、“に直接的に連結された”ことであるか、或いは１つ以上の間の要素、層、領域、又は成分が存在することができる。また、構成要素又は層が２つの要素又は層の間として言及される時、それは単なる要素又は層が２つの構成要素又は層間にあるか、又は１つ以上の間の構成要素又は層がまた存在することができる。
【００２７】
次の例で、ｘ軸、ｙ軸、及びｚ軸は直角座標システムの３つの軸に限定されなく、広い意味として解釈されることができる。例えば、ｘ軸、ｙ軸、及びｚ軸は互いに直交することができ、又は互いに直交しない他の方向を示すことができる。
【００２８】
本明細書で使用された用語は単なる特定な実施形態を説明するためのことであり、本発明を制限しようとすることと意図されなかった。本明細書で使用されたように、文脈の上に明確に異なりに意味しない限り、単数形態の“１つ”は複数の形態も含むことと意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語が本明細書で使用される時、このような用語は定まれた特徴、整数、段階、動作、要素、及び／又は成分が存在を明示するが、１つ以上の他の特徴、整数、段階、動作、要素、成分、及び／又はそれらのグループの追加又は存在を不可能なことではない。本明細書で使用されたように、“及び／又は”の用語は１つ以上の列挙された項目と連関された任意のそして全ての組み合わせを含む。“少なくとも１つ”のような表現は要素の全体リストを修正し、そしてリストの個別要素を修正しない。
【００２９】
本明細書で使用されたように、“大体に”、“約”の用語及びこれと類似な用語は近似値の用語として使用され、程度の用語として使用されなく、本発明の当業者によって識別される測定された又は計算された値の固有な変動を考慮するためのことである。また、本発明の実施形態を記述する時、“することができる”の使用は“本発明の１つ以上の実施形態”を意味する。本明細書で使用されたように、“使用”、“使用される”、そして“使用された”の用語は“利用”、“利用される”、そして“利用された”の用語の同義語として各々看做されることができる。また、“例示”の用語は例又は図面を意味する。
【００３０】
特定の実施形態は異なりに具現される場合、特定プロセス順序は説明された順序と異なりに遂行されることができる。例えば、説明された連続的な２つのプロセッサは同時に概ね遂行されるか、或いは説明された順序と反対順序に遂行されることもできる。
【００３１】
本明細書で記述された本発明の実施形態による電子又は電気装置及び／又は他の任意の関連された装置又は要素は任意の適合なハードウェア、ファームウェア（例えば、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組合を利用して具現されることができる。例えば、このような装置の多様な要素は１つの集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＩＣ）チップ又は分離されたＩＣチップで形成されることができる。また、このような装置の多様な要素は柔軟した印刷回路フィルム（Ｆｌｅｘｉｂｌｅ  Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｆｉｌｍ）、ＴＣＰ（Ｔａｐｅ  Ｃａｒｒｉｅｒ  Ｐａｃｋａｇｅ）、印刷回路基板（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ、ＰＣＢ）上に具現されるか、或いは１つの基板上で形成されることができる。また、このような装置の多様な要素はコンピュータプログラム命令を実行し、本明細書で説明された多様な機能を遂行するための他のシステム要素と相互作用する１つ以上のコンピューティング装置で又は１つ以上のプロセッサで遂行されるプロセス又はスレッド（Ｔｈｒｅａｄ）である。コンピュータプログラム命令は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような標準メモリ装置を利用するコンピューティング装置で具現されるメモリ内に格納される。コンピュータプログラム命令はまた、例えばＣＤ−ＲＯＭ、フラッシュドライブ（Ｆｌａｓｈ  Ｄｒｉｖｅ）、又はそのような他の一時的ではないコンピュータ読出し可能なメディア（Ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  Ｃｏｍｐｕｔｅｒ  Ｒｅａｄａｂｌｅ  Ｍｅｄｉａ）に格納されることもあり得る。また、本発明の当業者は本発明の例示的な実施形態の思想及び範囲を逸脱しなく、多様なコンピューティング装置の機能は単一コンピューティング装置に統合されるか、或いは集積され、特定コンピューティング装置の機能が１つ以上の他のコンピューティング装置に分散されることを認識しなければならない。
【００３２】
異なって定義されない限り、本明細書で使用された全ての用語（技術的及び科学的用語を含む）は本発明が属する技術分野で当業者によって一般的に理解される同一の意味を有する。一般的に使用される事前に定義されたこのような用語は本明細書及び／又は関連技術の文脈でそれらの意味と一致する意味を有することと解釈されるべきであり、本明細書で明確に定義されない限り、理想化されるか、或いは過度に形式的なこととして解釈されてはならない。
【００３３】
図１乃至図３と関連されて以下で説明される本発明の実施形態は基本チップキルを提供する。ＤＤＲ４のメカニズムと同一のカバレージ（ｃｏｖｅｒａｇｅ）を欠くにも拘らず、新しいＤＤＲインタフェイスはメモリチャネル当たり単一のＥＣＣチップしか有しないにも拘らず、単一ダイ／チップ訂正を提供することができる。追加的に、以下で説明されるメカニズムはデータチップがフェイル（Ｆａｉｌ、誤動作）した場合を識別するためにＥＣＣチップから提供されるＥＣＣ情報を利用できる。
【００３４】
図１は本発明の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。本発明はメモリ処理（ｔｒａｎｓａｃｔｉｏｎ）当たり１６個のバーストを利用し、多重バースト内の１つのデータチップのデータを保護するために、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ、ダイナミックＲＡＭモジュール）内ＥＣＣ（ｉｎ−ＤＲＡＭ  ＥＣＣ）を利用する。また、本発明の実施形態は、システムＥＣＣエラーが発生したと或るＤＲＡＭ内ＥＣＣが決定した時に、ＤＲＡＭ内ＥＣＣの情報の読み出しをシステム／メモリコントローラに可能にすることによって、１つ以上のバースト内の多重チップからデータを保護するために、ＤＲＡＭ／ＤＩＭＭがシステム／メモリコントローラＥＣＣを利用可能にする。
【００３５】
図１に示したように、本発明の実施形態に係るシステム１００は内部に格納されたＤＡＥＣＣエンジン（ＤＲＡＭ  Ａｓｓｉｓｔ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ  Ｅｎｇｉｎｅ）１２０を含むメモリコントローラ１１０を含む。メモリコントローラ１１０はＤＲＡＭ／ＤＤＲ＿ＤＩＭＭ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）１６０の多様なチップ１４０ａ、１４０ｂにデータを伝達し、多様なチップ１４０ａ、１４０ｂからデータを受信する。図１で、ＤＲＡＭ１６０（或いは、ＤＲＡＭモジュール）の１つのメモリチャネル１５０が図示されている。メモリコントローラ１１０は一般的な（ｎｏｒｍａｌ）読出し及び書込み過程を通じてＤＲＡＭ１６０と“一般（ｎｏｒｍａｌ）”データ１７０を交換するためのメモリ処理１３０を遂行する。本発明の実施形態で、ＤＲＡＭ１６０の各チップ１４０ａ、１４０ｂはチップの４個のピンを通じて４ビット情報を提供する。
【００３６】
ＤＲＡＭ１６０の各メモリチャネル１５０はデータの受信、格納、及び伝達のために８個の４ビットデータチップ（例えば、８個のデータ装置、１４０ａ）を含む。ＤＩＭＭ／ＤＲＡＭのメモリチャネル当たり２つのＥＣＣチップを利用するＤＤＲ４と異なり、本発明の実施形態のＤＲＡＭ１６０はメモリコントローラ１１０にＥＣＣデータを伝送するためにメモリチャネル１５０当たり１つの４ビットＥＣＣチップ（例えば、１つのパリティ装置又はパリティチップ、１４０ｂ）を含む。メモリチャネル１５０当たり単一のＥＣＣチップ１４０ｂのみを含むにも拘らず、本発明の実施形態のＤＲＡＭ１６０はシステム内エラー訂正及び基本的なチップキル能力を提供でき、これは以下でさらに説明される。
【００３７】
本発明の実施形態で、ＤＲＡＭ１６０はバーストを利用してメモリコントローラ１１０とメモリ処理１３０を遂行する際に、これによって、別々の処理において各データ片を伝送するために従来ならば要求されるであろう他の段階を省略して、ＤＲＡＭ１６０は反復的にデータを伝送する。従って、ＤＲＡＭ１６０は、特定条件下に制限された時間区間内に対してではあるけれども、バースティング（ｂｕｒｓｔｉｎｇ）無しで伝送するより速くデータを伝送できる。
【００３８】
ＤＲＡＭ１６０の狭いメモリチャネル幅を補償するために、ＤＲＡＭ１６０は、８のバーストレングスを含むＤＤＲ４を利用するＤＩＭＭのバーストレングスの２倍である１６のバーストレングスを含む。即ち、２つのメモリチャネル１５０の各々のデータ幅が、ＤＤＲ４において利用されるメモリチャネルのデータ幅の半分しか無いことを補償するために、ＤＲＡＭ１６０は各メモリ処理１３０で４ビット幅チップ１４０ａ、１４０ｂの各々に格納されたデータのバースト数を、ＤＤＲ４と比較して２倍だけ内部的にプリフェッチする。
【００３９】
従って、メモリチャネル１５０当たり３６ビット（即ち、９個のチップ１４０ａ、１４０ｂの各々でチップ当たり４ビットずつ）がバースト毎に送られ、データ幅はメモリチャネル１５０当たり３２ビット、ＥＣＣ幅はメモリチャネル１５０当たり４ビットである。これはチャネル当たりメモリ処理１３０当たり総計５７６ビットに相当し（即ち、バースト当たり３６ビットにメモリ処理１３０当たり１６個のバーストを乗じて得られる）、その内、全体データブロックは５１２ビットを占め、残る６４ビットはメモリチャネル１５０のＥＣＣチップ１４０ｂのＥＣＣデータに該当する。
【００４０】
追加的に、ＤＤＲ４と異なり、本発明の実施形態のシステム１００はメモリコントローラ１１０の支援無しでＤＲＡＭ１６０の内部でエラー訂正を達成できる。従来のメモリコントローラに支援されたエラー訂正（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ−ａｓｓｉｓｔｅｄ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ）においては、１つ以上のバースト内の多重データチップ１４０ａの全体に対してデータが保護されるのに比べて、ＤＲＡＭ１６０のＤＲＡＭ内ＥＣＣはメモリコントローラ１１０との通信無しで内部エラー訂正を遂行し、しかも多重バースト内データチップ１４０ａの中の何れか１つ単位に対してデータが保護される。従って、ＤＲＡＭ１６０のＤＲＡＭ内ＥＣＣから内部的に提供された情報と共にメモリコントローラ１１０のＥＣＣを利用して、システム１００はエラー訂正の遂行に際して、メモリコントローラ１１０とＤＲＡＭ１６０とを協同させる。
【００４１】
ＤＲＡＭ内１２８ビットのグループ毎に、ＤＲＡＭレベル（即ち、メモリコントローラ１１０の支援無しで）で内部エラー感知を遂行する１つのＥＣＣチップ１４０ｂを利用することによって、ＤＲＡＭ内ＥＣＣはチップ内部で内部的に生成されたＥＣＣビットを利用して単一ビットエラーを訂正する。本発明の実施形態は、ＤＤＲ４でのメモリアプリケーションに対する何らの変更も齎さず、ＤＲＡＭ１６０とメモリコントローラ１１０との間に異なるインタフェイスを持ち込まない。従って、内部ＥＣＣを提供することによって、エラー復元情報は一般的なデータ伝送１７０内に含まれず、メモリコントローラ１１０に伝達されない。従って、ＥＣＣチップ１４０ｂによるエラーの訂正はメモリコントローラ１１０とのメモリ処理１３０の速度又は性能に影響を及ぼさない。
【００４２】
しかし、或る特定の種類のエラーは、ＥＣＣチップ１４０ｂ単独では訂正できない。その場合、メモリコントローラ１１０がデータ内エラーを感知すれば（例えば、ＤＲＡＭ１６０がメモリコントローラ１１０にエラーの存在を示せば）、この時のみ、メモリコントローラ１１０はエラー訂正をトライするためにＤＲＡＭ１６０に対して特別な命令を発行（ｉｓｓｕｅ）する。即ち、システム／メモリコントローラＥＣＣエラーが発生した時のみ、メモリコントローラ１１０はＤＩＭＭに特定命令を送り、ＤＲＡＭ１６０からＤＲＡＭ内ＥＣＣ情報出力１８０に含まれた情報を受信する。その後に、メモリコントローラ１１０は対応するメモリチャネル１５０の８個のデータチップ１４０ａの中の何れに感知されたエラーの原因があるか否かを決定する。メモリコントローラ１１０が、故障したデータチップの位置を探すために利用する方法は図７乃至図８を参照して以下で説明される。
【００４３】
図２は本発明の他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。前述した実施形態のエラー訂正メカニズムと同様に、本発明の実施形態はメモリ処理当たり１６個のバーストを遂行する。同様に、メモリコントローラ２１０は内部に格納されたＤＡＥＣＣエンジン２２０を含み、ＤＲＡＭ２６０の各メモリチャネル２５０は一般的なデータ２７０の交換のために８個のデータチップ２４０ａ及び１つのＥＣＣチップ２４０ｂを含む。
しかし、前述した実施形態と異なり、ＤＲＡＭ２６０は追加的なピンを通じてメモリコントローラ２１０に１ビットＥＣＣフラッグ（ｆｌａｇ）を送ることによってＥＣＣエラーをメモリコントローラ２１０に通知する。
【００４４】
図２を参照すれば、本発明の実施形態のシステム２００は図１を参照して説明された実施形態のシステム１００と類似である。しかし、本発明の実施形態のＤＲＡＭ／ＤＤＲ＿ＤＩＭＭ２６０はＤＲＡＭ２６０が容易にＥＣＣ情報をメモリコントローラ２１０に伝達するようにするために追加的な１つのピン２９０を具現する。前述した実施形態と異なり、１６個のバーストを含むメモリ処理２３０の間にエラーが発生する時、ＤＲＡＭ２６０は１つの１ビットＥＣＣフラッグで構成される警告（ａｌｅｒｔ）を伝送できるので、ＤＲＡＭ２６０内において訂正できないエラーは常に直ちにメモリコントローラ２１０に露出される。従って、エラーが発生する時、情報はＤＲＡＭ内ＥＣＣチップ２４０ａ、２４０ｂの中の、例えばＤＲＡＭ内ＥＣＣチップ２４０ｂからメモリコントローラ２１０に提供される。
【００４５】
従って、８個のデータチップ２４０ａの中で１つに対応するメモリエラーが発生すれば、本発明の実施形態のＥＣＣチップ２４０ｂのピン２９０は、メモリコントローラ２１０にエラーが発生したことを通知するために１ビットＥＣＣフラッグを設定するために利用される。ピン２９０を通じて１ビットＥＣＣフラッグを感知すると、メモリコントローラ２１０はエラーと関連されたＤＲＡＭ２６０からさらに詳細な情報を得るために特定命令を発行する。メモリコントローラ２１０は図１を参照して説明された実施形態のシステム１００と類似のＤＲＡＭ内ＥＣＣ情報出力２８０を利用してＤＲＡＭ２６０から情報を得る。
【００４６】
図１を参照して説明されたシステム１００の実施形態と異なり、ＤＲＡＭ２６０及びメモリコントローラ２１０の間のＤＤＲインタフェイスは従来のＤＤＲ４から変更される。しかし、他の５７６データビットと共にピン２９０を通じて１ビットＥＣＣフラッグが伝送されるので、性能は悪い影響を受けず、従ってメモリ処理２３０当たり時間が増加しない。
【００４７】
図３は本発明の更にその他の実施形態に係るＤＤＲインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
【００４８】
図３を参照すれば、図１及び図２を各々参照して説明された実施形態のシステム１００、２００と比較すれば、本発明の実施形態は内部に格納されたＤＡＥＣＣエンジン３２０と共にメモリコントローラ３１０を含み、ＤＲＡＭ３６０の各メモリチャネル３５０は一般的なデータ３７０交換のために８個のデータチップ３４０ａ及び１つのＥＣＣチップ３４０ｂを含む。
しかし、本発明の実施形態のシステム３００の各メモリ処理３３０は、１７個のバーストからなる総バースト長に寄与する追加的なバーストを含む。しかし、メモリ処理３３０の１７番目のバーストの間に、ＤＲＡＭ内エラー訂正の間に決定されたＥＣＣ情報はＤＲＡＭ内ＥＣＣ情報出力３８０は、ＤＲＡＭ／ＤＤＲ＿ＤＩＭＭ３６０からメモリコントローラ３１０に伝送される。従ってメモリコントローラ３１０は、各メモリ処理３３０に対する追加的なバーストに伴う性能の低下という犠牲を払って各メモリ処理３３０におけるＤＲＡＭ内ＥＣＣ情報を識別できる。
【００４９】
上述のように、図１の実施形態のシステム１００においては、システム／メモリコントローラＥＣＣエラー（例えば、ＤＲＡＭ１６０のＥＣＣチップ１４０ｂによって修正できないエラー）が生じた時のみにメモリコントローラ１１０がＤＲＡＭ内ＥＣＣ情報の情報出力１８０の読出しを遂行した。しかし、これと異なり、本発明の実施形態のメモリコントローラ３１０は追加的な１７番目のバーストを通じてメモリ処理３３０毎にＤＲＡＭ内ＥＣＣ情報出力３８０の読出しを遂行する。追加的に、メモリコントローラ３１０はシステムレベルのＤＲＡＭ内ＥＣＣによって（例えば、ＤＲＡＭ３６０内で）遂行されるのと同一の、エラー訂正動作を常に遂行する。
【００５０】
前述した実施形態では、ＤＡＥＣＣメカニズムが４ビットＤＲＡＭチップを利用して新しい、狭いＤＤＲインタフェイスに利用できることを説明したが、ＤＡＥＣＣメカニズムは仮にＤＲＡＭチップの内部でＤＲＡＭ内ＥＣＣが遂行されれば、新しいＤＤＲインタフェイスを利用する他のＤＲＡＭアーキテクチャと共に利用されるか、或いはＤＤＲ４と類似なインタフェイスにおいて利用され得る。
【００５１】
例えば、図４はＤＡＥＣＣエンジン４２０が８ビットＤＲＡＭチップ４４０ａ、４４０ｂと共に新しい狭いＤＤＲインタフェイスと関連されて利用できることを示す。このような実施形態で、各チャネル４５０はデータを格納するための４つの８ビットＤＲＡＭチップ４４０ａを含み、システムＥＣＣを格納するための１つの８ビットＤＲＡＭチップ４４０ｂを含む。従って、本発明の実施形態のシステムＥＣＣオーバヘッドは１／４、即ち２５％である。
【００５２】
他の例を挙げれば、図５はＤＡＥＣＣエンジンが４ビットＤＲＡＭチップ５４０ａ、５４０ｂと共にＤＤＲインタフェイスに利用できることを示す。本発明の実施形態で、各チャネル５５０はデータを格納するための１６個の４ビットＤＲＡＭチップ５４０ａを含み、システムＥＣＣを格納するための１つの４ビットＤＲＡＭチップ５４０ｂを含む。従って、この実施形態のシステムＥＣＣオーバヘッドはＤＤＲ４標準の現行ＥＣＣオーバヘッドの半分である１／１６、即ち６．２５％である。
【００５３】
その他の例えば、図６はＤＡＥＣＣエンジンが８ビットＤＲＡＭチップ６４０ａ、６４０ｂと共にＤＤＲ４インタフェイスで利用されることができることを示す。このような実施形態で、各チャネル６５０はデータを格納するために８個の８ビットＤＲＡＭチップ６４０ａを含み、システムＥＣＣを格納するために１つの８ビットＤＲＡＭチップ６４０ｂを含む。従って、システムＥＣＣオーバヘッドは１／８、即ち１２．５％である。
【００５４】
要約すれば、前述した実施形態におけるＤＡＥＣＣは、追加的な１つのＥＣＣＤＲＡＭチップを利用し、且つ、ＤＲＡＭ内ＥＣＣ情報を利用して、任意の種類の構造を有するメモリシステムに対して基本的なチップキル範囲（ｃｈｉｐｋｉｌｌ  ｃｏｖｅｒａｇｅ）を提供するための、一般的なメカニズムである。
【００５５】
図７及び図８は本発明の１つ以上の実施形態に係ってＤＡＥＣＣ（ＤＲＡＭ  ａｓｓｉｓｔ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング（ｈａｎｄｌｉｎｇ）することを示した順序図である。
【００５６】
以下で説明される順序図は図１乃至図６を参照して各々説明された任意のシステムにおいて具現できる。メモリコントローラがＤＲＡＭ内エラー発生を認識すれば、メモリコントローラはエラーパターン（ｅｒｒｏｒ  ｐａｔｔｅｒｎ）を決定するようにトライする。エラーパターンに従って、メモリコントローラはエラーがランダムエラー（ｒａｎｄｏｍ  ｅｒｒｏｒ、（非永久的なエラー））、永久的なエラー（ｐｅｒｍａｎｅｎｔ  ｅｒｒｏｒ）、又はチップキルエラー（ｃｈｉｐｋｉｌｌ  ｅｒｒｏｒ）に対応するか否かを決定する。エラーの種類決定に従って、システムはエラー訂正を遂行する。
【００５７】
様々な種類のエラーの中で、或る種のエラーはチップキルエラーであると言及される。チップキルエラーは、チップの永久的な故障（ｆａｉｌｕｒｅ）、即ちビットエラーの数が或る閾値を超過した単一のチップ／ダイと一般的に対応する。メモリチャネル上の単一の４ビットデータチップの故障はメモリ処理の最中に、多数のバーストにおいて前記データチップに対応する多数の４ビットに対する間違ったデータの提供を惹起する（例えば、前記データチップに対応する４ビットシンボル内多数のエラー）。
従って、本発明の実施形態は、単一チップが何時フェイル（ｆａｉｌ）したかを感知し、その後に単一チップ訂正を引き続き提供しながら、そのチップを非活性化する。即ち、本発明の実施形態は、１つのチップに対応する反複的に間違った４ビットを１つのシンボル（ｓｙｍｂｏｌ）としてグループ化し、フェイル（ｆａｉｌｅｄ）／デッド（ｄｅａｄ）／消去（ｅｒａｓｅｄ）チップに対応するデータを復旧するためにシンボルベースのメカニズム（ｓｙｍｂｏｌ−ｂａｓｅｄ  ｍｅｃｈａｎｉｓｍ）を利用する。
【００５８】
エラーの他の種類はＤＱエラーであると言及される。前述した通り、説明された実施形態のＤＲＡＭで、各チップは４つのデータピンを含み、各ピンはチップに格納された４つのビットの中で１つを出力する。各ピンはＤＱであると言及される。仮に１つのチップのピンの中で１つがフェイルであれば（全体チップの故障と対照的に）、バーストの各々でそのピンから提供されるデータは潛在的にエラーとなる。従って、ピン故障はＤＱエラーであると言及される。
【００５９】
説明された実施形態は各チップの間にインターリーブされる（ｉｎｔｅｒｌｅａｖｅｄ）簡単なパリティアルゴリズム（ｐａｒｉｔｙ  ａｌｇｏｒｉｔｈｍｓ）を利用できる。例えば、説明された実施形態はＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）構成を利用する（例えば、ＲＡＩＤ４と類似な構成）。ＲＡＩＤ４は専用パリティディスク（ｄｅｄｉｃａｔｅｄ  ｐａｒｉｔｙ  ｄｉｓｋ）及び多重ディスク（例えば、チップ）にわたったブロックレベルストライピング（ｂｌｏｃｋ−ｌｅｖｅｌ  ｓｔｒｉｐｉｎｇ  ａｃｒｏｓｓ  ｍｕｌｔｉｐｌｅ  ｄｉｓｋｓ）を利用するＲＡＩＤ構成である。ディスクストライピングはデータのグループをブロックに分割し、そして２つ又はそれ以上の格納装置（例えば、データチップ）にわたってブロックを分散配置（ｓｐｒｅａｄ）することを含む。
【００６０】
従って、ＥＣＣチップに格納されたデータは４個のパリティビットと対応し、８個のデータチップの中の１つからの各ビットはＥＣＣチップによって格納された互いに異なるパリティビットに寄与し、全てのデータチップの中で対応するピンからの１つのビットはパリティビット（例えば、ＥＣＣチップの１つのＥＣＣグループ）の中の１つに寄与する。仮にホストメモリコントローラがデータ及びＥＣＣ情報を利用して１つのピンに対応して繰り返し発生する１つの１ビットエラーを感知すれば、ホストメモリコントローラは４つの可能なビット位置の中で同一のビット位置からエラーを識別する（即ち、ＥＣＣチップの同一パリティビットはバーストの中で一部で発生するエラーを含む）。以下で説明されるように、感知されたエラーパターンからの情報はエラーが何処にあるかを決定するために利用される（例えば、８個のデータチップの中でどれがエラーを引き起こすピンを含むか）。
【００６１】
図７を参照すれば、Ｓ７０１段階で、エラーが感知される。エラーは図１乃至図３を参照して前述した任意のエラー感知方法によって（例えば、追加的なピン２９０（図２）を通じてメモリコントローラ２１０によって感知されるＥＣＣフラッグ、又はメモリ処理３３０の１７番目のバーストの間のＤＲＡＭ内ＥＣＣ情報出力３８０（図３）でメモリコントローラ３１０によって感知されるエラー）及び／又はホストメモリコントローラで遂行されるシステムＥＣＣ（例えば、ＲＡＩＤと類似なパリティチェック）によって感知される。
【００６２】
システムがＳ７０１段階でＤＲＡＭ／ＤＤＲ＿ＤＩＭＭから一部のエラーがあると決定すれば、Ｓ７０２段階で幾つのバーストがエラーを有するかが決定される。これはメモリ処理のバースト毎にパリティチェックを為すことにより遂行できる。異なる種類の故障は異なるエラーパターンを含むので、閾値、又は参照数字、“ｎ”が、感知されたエラーの種類を分類するために利用される。
例えば、ＥＣＣチップの同一のピン位置にＥＣＣエラーがあっても、ＤＱ故障はメモリ処理の全部又は多数のバーストにおいて単なる１ビットパリティエラーとなる。しかし、チップ故障は全部又は多数のバーストにおいて多重ビットのパリティエラー（例えば、４ビットパリティエラー）となる可能性が大きい。追加的に、ランダムエラーは少数のエラーに対応し、少数のバーストに極めて少数のエラービットがある場合に対応する（例えば、単一のバーストで単一の１ビットエラー）。
【００６３】
従って、感知されたエラーの数が閾値より大きい場合、ＤＱ故障又はチップ故障が発生したと予測される。しかし、感知されたエラーの数が閾値より小さいか、或いは同一である場合、１つ以上の個別的なチップから１つ以上のランダムエラーが発生したと予測され、これはＤＲＡＭ内ＥＣＣでは訂正不能であり、訂正のためにメモリコントローラから支援が必要である。
【００６４】
従って、Ｓ７０２段階で、与えられたメモリ処理においてエラーを有するバーストの数が閾値“ｎ”を超過するかが決定される。閾値に到達したか否かによって、Ｓ７０３段階又はＳ７１０段階の中の何れか１つに進行される。即ち、十分に多い数のバーストがパリティエラーを有すると決定されれば（例えば、与えられたメモリ処理においてエラーを有するバーストの数が或る閾値“ｎ”を超える場合）、ＤＱ故障又はチップ故障がある可能性がさらに高く、システムはチップキルメカニズムを進行する。
しかし、感知されたエラーを有するバーストの数が閾値“ｎ”より小さければ（例えば、４バースト又はこれより少ないバースト）、Ｓ７０１段階で感知されたエラーは個別的なチップからのランダム故障の結果である可能性が高い。このようなランダム故障はＤＲＡＭ内ＥＣＣによって訂正可能しないが、エラーは再発しない可能性が大きいので、チップキルメカニズムは利用されない。
【００６５】
上記では閾値の例として４バーストが利用されたが、異なる数が本発明の他の実施形態に利用され得る。その上に、その数は他の実施形態において（例えば、特定装置（デバイス）に対応するように）調整され得る。例えば、対応するメモリ装置が相対的に高い装置エラー率を有し、これに従って多重ランダムエラーが発生する場合、閾値が増加され得る。
【００６６】
Ｓ７０３段階で、Ｓ７０２段階でパリティエラーを有するバーストの数が閾値より大きいと決定されれば（例えば、４バーストより大きい）、システムは８個のデータチップの中の１つがデッドであるか、又は消去されたとを決定するか、或いは８個のデータチップの中の複数個においてエラーがあると決定する。
【００６７】
Ｓ７０３段階でチップが既に消去されたか、又は８個のデータチップの中の複数個のチップにおいてエラーがあると決定されれば、システムはＳ７０９段階で致命的、且つ訂正不能なエラーが発生したと決定する。エラーを有するチップの数は特定命令を利用するか、或いはメモリ処理３３０の１７番目のバーストの最中の何れか１つによってＤＲＡＭ内ＥＣＣ情報出力１８０、２８０、３８０からメモリコントローラ１１０、２１０、３１０によって感知される。
例えば、チップがＤＱ故障、チップ故障、バンク（ｂａｎｋ）故障、又はロー（ｒｏｗ）故障によってデッドであれば、任意の追加的なＤＱ故障又はチップ故障は致命的な故障をもたらし、本発明の実施形態のシステムはメモリチャネル当たり単一のＥＣＣチップしか含まないので、エラー訂正を遂行するための充分な資源をそれ以上含まない。同様に、複数のチップがエラーを含むと、致命的な故障が発生する。
【００６８】
しかし、Ｓ７０３段階で消去されたチップがなく、そして感知されたエラーが単一のデータチップに対応すると決定されれば、Ｓ７０４段階に進行される。例えば、未だ消去されたチップが無ければ、そして感知されたエラーが単一のチップに対応すれば、システムは故障の種類を識別でき、メモリコントローラは故障の種類を記録でき、潛在的にエラーを訂正するために追加措置を実行できる。
【００６９】
Ｓ７０４段階で、感知されたエラーが同一のピンで発生するかが決定される。即ち、Ｓ７０４段階で、システムはバーストの各々に対して同一のピンで感知されたエラーが発生するか否かを決定する。全てのエラーが同一のピンに対応すれば、Ｓ７０５ａ段階で、ＤＲＡＭ内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラはエラーの故障種類をＤＱ故障であると記録する。システムが感知されたエラーが全て同一のピンに対応しないと決定すれば、Ｓ７０５ｂ段階で、ＤＲＡＭ内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラは故障種類をチップ故障として記録する。
【００７０】
Ｓ７０６段階で、故障種類がＤＱ故障又はチップ故障の中の何れか１つであると記録された後、メモリコントローラはチップキル感知（ｃｈｉｐｋｉｌｌ  ｄｅｔｅｃｔｉｏｎ）を支援するために利用される。Ｓ７０６段階で、メモリコントローラはどのようにしてエラーを訂正するか決定するために診断ルーチン（ｄｉａｇｎｏｓｉｓ  ｒｏｕｔｉｎｅ）を開始する。診断ルーチンは図８を参照して後述される。
【００７１】
図８を参照すれば、Ｓ７０６ａ段階で、メモリコントローラは以後にエラー感知を遂行できるように、図７のＳ７０３段階でＤＲＡＭ内ＥＣＣから提供されるＤＲＡＭ内ＥＣＣ情報を既に読み出してある（例えば、ＥＣＣチップによって提供されるＥＣＣビットのＤＲＡＭ内ＥＣＣ情報出力（１８０、２８０、又は３８０））。その後のＳ７０６ｂ段階で、メモリコントローラは全ての進行中であるメモリ処理を維持する。その次のＳ７０６ｃ段階で、メモリコントローラは現在データを格納する（例えば、８個の４ビットデータチップの現在データＤ［５１１：０］に対応する５１２ビット）。その次に、Ｓ７０６ｄ段階で、メモリコントローラは現在データに対応する反転されたデータ（例えば、反転されたデータＤ’［５１１：０］に対応する５１２ビット）を８個の４ビットデータチップに書き込む。その次に、Ｓ７０６ｅ段階で、メモリコントローラは再びデータを出力して読み出す。その次に、Ｓ７０６ｆ段階で、メモリコントローラはエラーの位置を識別するために新しく読み出したデータと既知の反転されたデータを比較する。
【００７２】
図７を参照すれば、Ｓ７０６段階でメモリコントローラがチップキル感知を支援した後、Ｓ７０７段階で、メモリコントローラは感知された全てのエラーが１つのチップに対応するか否かを決定する。仮に単一のデータチップが消去されれば、又は多重ＤＱエラーが感知された場合でも全ての多重ＤＱエラーが同一のチップに対応すれば、Ｓ７０８段階で、メモリコントローラは残っている消去されないチップにデータを再び書き込み、そして次の全てのメモリ処理は消去されたチップに対応するデータを復元するために簡単なパリティアルゴリズムのパリティビットを利用する。
例えば、データ読出しの際に、メモリコントローラがデータチップの中の１つに対応する多重ビットがＳ７０６ｄ段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、Ｓ７０８段階でメモリコントローラは該当データチップが消去されたと表示（ｍａｒｋ）する。しかし、データ読出しの際に、メモリコントローラがデータチップの中で１つのデータチップに１つのピンに対応するビットの中で単一のビットがＳ７０６ｄ段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、Ｓ７０８段階でメモリコントローラは単一のチップの単一のピンのみが消去されたと表示（ｍａｒｋ）する。
【００７３】
しかし、１つより多いチップが消去されたと表示（ｍａｒｋ）されれば、Ｓ７０９段階で、メモリコントローラは致命的であり、且つ訂正不可能なエラーが発生したと判断する。即ち、１つより多いチップでエラーがあれば、予備の追加的なチップがないので、ＤＲＡＭはパリティを遂行するための充分な資源をそれ以上有さない。従って、任意の追加的なチップエラーはＤＲＡＭの交替を必要とする、訂正不可能な、即ち致命的なエラーとなる。
【００７４】
Ｓ７０２段階に戻って、エラーの数が所定の閾値より低いと決定されれば（例えば、メモリ処理において少数のバーストのみがエラーを有する場合）、Ｓ７１０段階で、メモリコントローラはＤＲＡＭから追加的なバーストを受信することによってデータチップからデータを読み出すことを再トライする。
【００７５】
Ｓ７１０段階でデータ読出しを再トライした後に、Ｓ７１１段階でメモリコントローラは相変わらず感知されたエラーがあるか否かを決定する。Ｓ７１１段階で追加的なエラーが感知されなければ、Ｓ７１２段階でメモリコントローラはソフトエラー（ｓｏｆｔ  ｅｒｒｏｒ）、又は一時的エラー（ｔｒａｎｓｉｅｎｔ  ｅｒｒｏｒ）が発生し、それ以上訂正が必要としないを決定する。しかし、Ｓ７１０段階でデータ読出し再トライの後に追加的なエラーがＳ７１１段階で感知されれば、Ｓ７１３段階でエラーがＳ７０１段階で初期に感知されたエラーと同一のエラーパターンを有するかが決定される。エラーが同一のエラーパターンを有するか決定することによって、一致しないソフトエラーのケース（即ち、ソフトエラーがＳ７０１段階で初期に感知されたケース）は無視され、後続の他のソフトエラーはメモリコントローラのＳ７１０段階でデータ読出しを再トライする間に感知される。
【００７６】
Ｓ７１３段階で感知されたエラーがＳ７０１段階で初期に感知されたエラーと同一のエラーパターンを有しなければ、Ｓ７１０段階に戻り、メモリコントローラはデータチップからデータ読出しを再び再トライする。従って、順次的であり、同一でないソフトエラーが発生し、こうして他のエラーパターンがもたらされれば、メモリコントローラはデータ読出しトライを継続する。しかし、Ｓ７１３段階で感知されたエラーがＳ７０１段階で初期に感知されたエラーと同一のエラーパターンを有すれば、Ｓ７１４段階でハードエラー（ｈａｒｄ  ｅｒｒｏｒ、即ち一時的ではないエラー）が発生したと決定される。
【００７７】
Ｓ７１４段階でハードエラー（一時的ではないエラー）の存在が決定された際に、何れのチップも未だ消去されたと表示（ｍａｒｋ）されないと仮定される場合、ＤＲＡＭはＳ７１５段階でメモリコントローラＥＣＣメカニズムを利用してハードエラーの訂正を支援するようにメモリコントローラをトリガー（ｔｒｉｇｇｅｒ）する。メモリコントローラは、例えばエラーの現在住所（例えば、チップ及びピンアドレス）とＤＲＡＭの１つ以上のチップのエラーレジスターに格納されたエラー住所を比較してエラー訂正を支援する。また、メモリコントローラはＤＲＡＭ内ＥＣＣ情報を利用してエラー訂正を支援する。例えば、ＤＲＡＭ内ＥＣＣ情報が単一のチップのみが訂正できないＤＲＡＭ内ＥＣＣエラーを有すると表示（ｉｎｄｉｃａｔｅ）する場合、メモリコントローラはエラーを復旧するためにＥＣＣチップを利用する。
【００７８】
Ｓ７１６段階で、メモリコントローラがハードエラーの訂正に成功したか否かが決定される。エラー訂正が成功の場合、Ｓ７１７段階で、オペレーティングシステム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）はエラーイベントを記録（ｌｏｇ）し、メモリコントローラは各チップ内のＤＲＡＭ内ＥＣＣ情報（例えば、チップエラーレジスタ内の情報）を消去するために他の特定命令を発行する。しかし、エラー訂正が不成功の場合（例えば、１つのチップが既に消去され、従ってシステムはそれ以上ＥＣＣ能力を有しない場合）、メモリコントローラはＳ７０９段階で致命的なエラーが発生したと決定する。
【００７９】
メモリコントローラが致命的であり、訂正不可能なエラーをＳ７０９段階で識別すれば、オペレーティングシステムはシステム／アプリケーションレベルのエラー復旧を遂行する。例えば、オペレーティングシステムはページのコンテンツ（ｃｏｎｔｅｎｔ）を他の物理的ページに再配置して該当物理的ページをリタイア（ｒｅｔｉｒｅ）し、リタイアされたページを仮想メモリシステムによって以後、物理的ページの割当禁止リストに配置する。リタイアされた物理的ページの数が増加するに連れて（例えば、訂正できないエラーの数が増加するに連れて）、システムの有効なメモリ容量は減少する。
【００８０】
従って本発明の実施形態は、ＤＤＲ４によって提供されるのと同様の基本チップキルＲＡＳ特徴を提供できるアーキテクチャを提供し、しかもその際、減少された（例えば、最小の）ＥＣＣチップオーバヘッド（即ち、メモリチャネル当たり１つのＥＣＣチップ）、減少された（例えば、最小の）内部プリフェッチのサイズ（プリフェッチのサイズはＤＲＡＭ内部ＥＣＣと同一のサイズ）、そしてＤＤＲ４に対応するインタフェイスに対するＤＤＲインタフェイスの減少された（例えば、最小の）変更を要するだけで、このような特徴を提供することが可能である。追加的に、本発明の実施形態はＤＤＲ４より狭いチャネル幅と共に新しいＤＤＲインタフェイスのために１２．５％の格納装置オーバヘッドを提供し、基本チップキル能力及びシステムＥＣＣを支援し、そしてメモリコントローラ支援エラー感知メカニズムを支援する。
【００８１】
それだけでなく、本発明の実施形態はメモリチャネル当たり単一のＥＣＣチップしか有していないにも拘らず、基本的なチップキル能力及びシステムＥＣＣを提供できる。本発明の実施形態はまたメモリコントローラがＤＲＡＭ装置からの支援を得て故障チップを識別するメカニズムを提供し、ＤＲＡＭ内ＥＣＣ情報を読み出すメカニズム（例えば、追加的なバーストレングス、追加ピン、又はＤＲＡＭからのレジスタ読出し出力を利用することによる）を提供し、エラー種類（例えば、ソフトエラー又はハードエラー）を識別するための再トライメカニズムを提供し、そして個別の又はロックステップ（ｌｏｃｋ−ｓｔｅｐ）方式のメモリチャネルの中の１つを利用し、且つＳＥＣ−ＤＥＣ（単一エラー訂正・２重エラー感知）又はチップキルＥＣＣを利用して、異なるＥＣＣ能力を提供する。
【００８２】
前記説明は例示的な実施形態を説明するためであり、本発明を制限すると解釈されない。幾つかの例示的な実施形態が説明されたが、当業者は、例示的な実施形態の新規な教示及び長所から実質的に逸脱せずに例示的な実施形態において沢山の修正が可能であることを容易に理解できよう。従って、そのような全ての修正は請求項に定義された例示的な実施形態の範囲内に含まれるように意図される。請求の範囲において、「手段プラス機能」的な表現は構造的等価物のみでなく、等価構造を列挙して本明細書で説明された構造を含むように意図された。従って、前記説明は例示的な実施形態を説明するためであり、開示された特定の実施形態に限定されると解釈されてはならず、開示された例示的な実施形態のみならず、他の例示的な実施形態に対する修正が含まれると理解されなければならない。本発明の概念は、次の請求の範囲によって定義され、請求項の均等物も含まれる。
【符号の説明】
【００８３】
１００，２００，３００      システム
１１０，２１０，３１０      メモリコントローラ
１２０，２２０，３２０，４２０      ＤＡＥＣＣエンジン
１３０，２３０，３３０      メモリ処理
１４０ａ、２４０ａ，３４０ａ，４４０ａ，５４０ａ，６４０ａ      ＤＲＡＭチップ、データチップ
１４０ｂ、２４０ｂ、３４０ｂ、４４０ｂ、５４０ｂ，６４０ｂ      ＤＲＡＭチップ、ＥＣＣチップ
１５０、２５０，３５０，４５０      メモリチャネル
１６０、２６０，３６０      ＤＤＲ＿ＤＩＭＭ／ＤＲＡＭ、ＤＲＡＭ／ＤＤＲ＿ＤＩＭＭ、ＤＲＡＭ
１７０、２７０，３７０      “一般（ｎｏｒｍａｌ）”データ
１８０，２８０，３８０      ＤＲＡＭ内ＥＣＣ情報出力
２９０      追加ピン
【図１】
2018028910.tif 000003
【図２】
2018028910.tif 000004
【図３】
2018028910.tif 000005
【図４】
2018028910.tif 000006
【図５】
2018028910.tif 000007
【図６】
2018028910.tif 000008
【図７】
2018028910.tif 000009
【図８】
2018028910.tif 000010