(57)【要約】  本発明の実施例は、一般に、メモリ装置の信頼性、可用性、およびサービス性の改善を目指す。いくつかの実施例では、メモリ装置は、データ・ビットを格納する第１部分、およびデータ・ビットに対応するエラー訂正コード（ＥＣＣ）ビットを格納する第２部分を有するメモリ・コアを含む。メモリ装置は、メモリ・コアと同じダイ上にエラー訂正ロジックをさらに含む。いくつかの実施例では、エラー訂正ロジックによって、メモリ装置は、ＥＣＣビットを計算し、格納されたＥＣＣビットを計算されたＥＣＣビットと比較することが可能になる。
2009540477.tif 000002
【特許請求の範囲】
【請求項１】
データ・ビットを格納する第１部分、および、前記データ・ビットに対応するエラー訂正コード（ＥＣＣ）ビット（格納されたＥＣＣビット）を格納する第２部分を有するメモリ・コアと、
前記メモリ・コアと同じダイ上のエラー訂正ロジックであって、前記エラー訂正ロジックは、前記データ・ビットに対応するＥＣＣビット（計算されたＥＣＣビット）を計算するためのＥＣＣ計算ロジックを含む、エラー訂正ロジックと、
から構成されることを特徴とするメモリ装置。
【請求項２】
前記メモリ・コアは、前記第１部分に対応する第１メモリ・バンクおよび前記第２部分に対応する第２メモリ・バンクを有するメモリ・バンクの分割バンク対を含むことを特徴とする請求項１記載のメモリ装置。
【請求項３】
前記エラー訂正ロジックは、前記データ・ビット内のエラーを訂正するためのＥＣＣ訂正ロジックをさらに含むことを特徴とする請求項１記載のメモリ装置。
【請求項４】
前記エラー訂正ロジックは、前記格納されたＥＣＣビットを前記計算されたＥＣＣビットと比較するためのコンパレータをさらに含むことを特徴とする請求項３記載のメモリ装置。
【請求項５】
前記エラー訂正ロジックは、前記データ・ビットに対応するＣＲＣビットを生成するための巡回冗長コード（ＣＲＣ）生成ロジックをさらに含むことを特徴とする請求項４記載のメモリ装置。
【請求項６】
前記エラー訂正ロジックは、前記ＣＲＣビットおよび前記データ・ビットをリクエスタに送るためのフレーミング・ロジックをさらに含むことを特徴とする請求項５記載のメモリ装置。
【請求項７】
前記メモリ装置は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）装置を含むことを特徴とする請求項１記載のメモリ装置。
【請求項８】
前記メモリ装置は、エラー検出モードおよび非エラー検出モードで動作可能であることを特徴とする請求項１記載のメモリ装置。
【請求項９】
前記メモリ装置は、前記格納されたＥＣＣビットを前記メモリ・コアの前記第２部分にマッピングするためのマッピング・ロジックをさらに含むことを特徴とする請求項８記載のメモリ装置。
【請求項１０】
メモリ・コアの第１部分からデータ・ビットを読取る段階と、
前記メモリ・コアの第２部分から、格納されたエラー訂正コード（ＥＣＣ）ビットを読取る段階と、
ＥＣＣ計算ロジックを使用して計算されたＥＣＣビットを生成する段階であって、前記メモリ・コアおよび前記ＥＣＣ計算ロジックは、共通の集積回路上にある、段階と、
前記格納されたＥＣＣビットが前記計算されたＥＣＣビットと一致するかどうかを決定するために、前記格納されたＥＣＣビットを前記計算されたＥＣＣビットと比較する段階と、
から構成されることを特徴とする方法。
【請求項１１】
前記メモリ・コアは、前記第１部分に対応する第１メモリ・バンクおよび前記第２部分に対応する第２メモリ・バンクを有する、メモリ・バンクの分割バンク対を含むことを特徴とする請求項１０記載の方法。
【請求項１２】
前記格納されたＥＣＣビットが前記計算されたＥＣＣビットと一致する場合は、前記データ・ビットに対応する巡回冗長コード（ＣＲＣ）ビットを計算する段階と、
前記ＣＲＣビットおよび前記データ・ビットをリクエスタに送る段階と、
をさらに含むことを特徴とする請求項１０記載の方法。
【請求項１３】
前記格納されたＥＣＣビットが前記計算されたＥＣＣビットと一致しない場合は、前記データ・ビットがシングル・ビット・エラーを含むかどうかを決定する段階と、
前記データ・ビットがシングル・ビット・エラーを含む場合は、その後、ＥＣＣ訂正ロジックを使用して前記シングル・ビット・エラーを訂正する段階であって、前記ＥＣＣ訂正ロジックおよび前記メモリ・コアは共通の集積回路上にある、段階と、
をさらに含むことを特徴とする請求項１０記載の方法。
【請求項１４】
前記シングル・ビット・エラーの訂正に続き、前記ＣＲＣビットおよび前記データ・ビットをリクエスタに送る段階を含むことを特徴とする請求項１３記載の方法。
【請求項１５】
前記ＣＲＣビットおよび前記データ・ビットを前記リクエスタに送る段階は、
読取りデータ・フレーム内の前記データ・ビットをフレーミングする段階、
前記ＣＲＣビットを前記読取りデータ・フレームに追加する段階、および、
前記読取りデータ・フレームを前記リクエスタに送る段階、
を含むことを特徴とする請求項１４記載の方法。
【請求項１６】
前記データ・ビットがシングル・ビット・エラーを含まない場合は、エラーをリクエスタに報告する段階をさらに含むことを特徴とする請求項１３記載の方法。
【請求項１７】
ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）装置と、
前記ＤＲＡＭ装置に結合されたリクエスタと、
から構成され、
前記ＤＲＡＭ装置は、
第１メモリ・バンクおよび第２メモリ・バンクを含むメモリ・バンクの分割バンク対であって、前記ＤＲＡＭ装置がエラー検出モードである場合は、データ・ビットは前記第１メモリ・バンクに格納され、対応するエラー訂正コード（ＥＣＣ）ビット（格納されたＥＣＣビット）は前記第２メモリ・バンクに格納される、メモリ・バンクの分割バンク対、および、
前記分割バンク対と同じダイ上のエラー訂正ロジックであって、前記エラー訂正ロジックは、前記データ・ビットに対応するＥＣＣビット（計算されたＥＣＣビット）を計算するためのＥＣＣ生成ロジックを含むエラー訂正ロジックを含む、
ことを特徴とするシステム。
【請求項１８】
前記エラー訂正ロジックは、前記データ・ビット内のエラーを訂正するためのＥＣＣ訂正ロジックを含むことを特徴とする請求項１７記載のシステム。
【請求項１９】
前記エラー訂正ロジックは、前記格納されたＥＣＣビットを前記計算されたＥＣＣビットと比較するためのコンパレータをさらに含むことを特徴とする請求項１８記載のシステム。
【請求項２０】
前記エラー訂正ロジックは、前記データ・ビットに対応するＣＲＣビットを生成するための巡回冗長コード（ＣＲＣ）生成ロジックをさらに含むことを特徴とする請求項１７記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、一般に集積回路の分野に関し、より詳しくは、メモリ装置の信頼性、可用性、およびサービス性を改善するためのシステム、方法、および装置に関する。
【背景技術】
【０００２】
メモリ装置は、一時エラー（またはソフトエラー）のようなエラーに対して脆弱である。これらのエラーが適切に処理されない場合、コンピューティング・システムに不具合が生じる。エラー訂正コード（ＥＣＣ：Error Correcting Code）の形式の冗長情報は、全体的なシステムの信頼性を改善するために使用することができる。しかしながら、冗長情報は、メモリ・システムの必要記憶量を増加させ、それによって、メモリ・システムのコストが増加する。したがって、ＥＣＣは、典型的には、高額または重要なシステムについてのみ使用される。低コスト（またはそれほど重要でない）システムはＥＣＣを使用せず、それらの用途に応じたレベルの信頼性を提供する。
【０００３】
ある場合には、格納装置の追加ビットは、追加の記憶装置（例えば、ダイナミック・ランダム・アクセス・メモリ (ＤＲＡＭ)装置）を追加することによってシステムに加えられる。例えば、データを格納するために８個のＤＲＡＭを使用するシステムは、検出コードを格納するためにさらに追加のＤＲＡＭを使用する。他の場合には、追加ビットは、特にＥＣＣシステムで使用するために設計されたバリアント(variant)ＤＲＡＭに格納される。例えば、ＥＣＣの無い（non-ECC）ＤＲＡＭは、２５６Ｍｂｉｔｓの容量および１６個の出力を有する。ＥＣＣバリアントＤＲＡＭは、２８８Ｍｂｉｔｓの容量および１８個の出力を有する。これらの両方の例では、ＥＣＣシステムは、ＥＣＣの無いものよりも１２．５％大きい格納容量を有する。
【０００４】
ＥＣＣシステム内で異なるＤＲＡＭ装置を使用することは、いくつかの不利な点を有する。例えば、２つ（またはそれ以上）の異なるＤＲＡＭ装置を設計し、生産し、在庫するための関連コストが増加する。さらに、ＥＣＣバリアントＤＲＡＭ装置は、ＥＣＣの無いものよりも大きく、したがって製造がより難しい。ＥＣＣバリアントＤＲＡＭに追加のビットを加えることによって、装置の生産性が低下し、したがって、装置のコストが増加する。２つ（またはそれ以上）の異なるＤＲＡＭ装置を使用することによる他の不利な点は、追加のピン（例えばＥＣＣピン）をサポートするために、ＤＲＡＭ装置と接続されるメモリ・コントローラが必要になることである。さらに、ＥＣＣバリアントＤＲＡＭモジュールのコネクタは、ＥＣＣの無いものよりも大きいので、マザーボード上でより大きいスペースを使用する。
【発明の開示】
【０００５】
本発明の実施例は、制限目的ではなく例示目的であり、添付図面の図中において同様の参照番号は同様の要素を引用する。
【０００６】
本発明の実施例は、一般に、メモリ装置の信頼性(Reliability)、可用性(Availability)、サービス性(Serviceability)（ＲＡＳ）の改善を目指すものである。いくつかの実施例では、メモリ装置は、第１メモリ・バンクおよび第２メモリ・バンクを有する、少なくとも１つの分割バンク対(split bank pair)を含む。エラー検出モードにおいて、データ・ビットはメモリ・バンクの１つに格納され、対応するエラー検出ビットは別のメモリ・バンクに格納される。メモリ装置は、レジスタ・ビット（例えば、モード・レジスタ・セット（ＭＲＳ）レジスタ・ビット）を使用して、いずれかのモードをサポートするために形成される。メモリ装置はさらに、エラー訂正ロジックを含む。以下で述べるように、エラー訂正ロジックは、メモリ装置上にＥＣＣ生成ロジックおよび比較ロジックを集積することにより、読取りリターン・データ（read return data）で巡回冗長コード（ＣＲＣ：Cyclic Redundancy Code）ビットの使用を可能にする。
【０００７】
図１は、本発明の実施例に従って実行されるコンピューティング・システムの選択された状態を示す上位レベルのブロック図である。コンピューティング・システム１００は、リクエスタ１０２、メモリ・コントローラ（またはホスト）１１０、メモリ装置１３０、および相互接続１２０を含む。メモリ・コントローラ１１０は、少なくとも一部分において、リクエスタ１０２とメモリ装置１３０との間の情報の転送を制御する。リクエスタ１０２は、プロセッサ（例えば、中央処理装置および／またはコア）、サービス・プロセッサ、入力／出力装置（例えば、ＰＣＩエクスプレス(Peripheral Component Interconnect Express)装置）、メモリ自体、またはその他のメモリへのアクセスを要求するようなシステム１００の要素である。いくつかの実施例では、メモリ・コントローラ１１０は、リクエスタ１０２と同じダイ上にある。
【０００８】
図示された実施例では、メモリ・コントローラ１１０は、エラー検出ロジック１１２、モード・インディケータ１１４、およびメモリ装置アドレシング・ロジック１１６を含む。エラー検出ロジック１１２は、指定された障害からデータを保護するために冗長情報を使用する。いくつかの実施例では、エラー検出ロジック１１２は、エラー訂正コード（ＥＣＣ）である。
【０００９】
さらに以下で述べるように、いくつかの実施例では、メモリ装置１３０は、エラー検出モードあるいは非エラー検出モードのいずれかで動作することができる。エラー検出モードで動作するとき、メモリ装置１３０は、データ・ビットおよび対応するエラー検出ビット（例えばＥＣＣビット）の両方を格納する。非エラー検出モードで動作するとき、メモリ装置１３０の（ほぼ）全容量は、データ・ビットを格納するために使用される。モード・インディケータ１１４は、メモリ装置１３０が、エラー検出モードで動作しているのか、または非エラー検出モードで動作しているのかについての表示を提供する。いくつかの実施例では、モード・インディケータ１１４は、１またはそれ以上のレジスタ・ビットを含む。
【００１０】
いくつかの実施例では、メモリ装置１３０は、それが、エラー検出モードであるか、または非エラー検出モードであるかによって、読取り／書込みデータのために異なるアドレス・マッピングを適用する。例えば、エラー検出モードで使用されるアドレス・マッピングは、エラー検出ビット（例えばＥＣＣビット）のマッピングを用いてもよい。アドレス・マッピング・ロジック１１６は、メモリ・コントローラ１１０が、メモリ装置１３０によって使用されるアドレス・マッピングを見つけることを可能にする。アドレス・マッピング・ロジック１１６は、複数の記憶位置にアドレス・マッピングの指示を提供することができる任意のロジックである。
【００１１】
メモリ装置１３０は、ＤＲＡＭ装置（あるいは単にＤＲＡＭ）を含む広範囲にわたる任意の装置である。メモリ・コア１４１は、１またはそれ以上の分割バンク対１４０によって組織される。分割バンク対とは、単一のバンクまたは２つの分離したバンクのいずれかとして形成することができるメモリ・バンクの対を意味する。いくつかの実施例では、分割バンク対のそれぞれは、それ自体が行(row)デコーダおよび列(column)デコーダを有する。
【００１２】
いくつかの実施例では、分割バンク対のそれぞれは、メモリのページを提供することができる。例えば、バンク０Ａはページ１４２を提供し、また、バンク０Ｂはページ１４４を提供する。「バンク」とは、メモリ装置によって提供される記憶位置のアレイを意味する。バンク１４２，１４４は、集合的に、論理ページ１４６を提供する。用語「論理ページ」とは、２またはそれ以上の物理的なバンクの論理的な組み合わせを意味する。いくつかの実施例では、ページ１４２およびページ１４４のそれぞれは、１キロバイト（Ｋバイト）のメモリを提供し、また、論理ページ１４６は、２Ｋバイトの正味有効ページ・サイズを提供する。
【００１３】
図示された実施例では、メモリ装置１３０は、モード・インディケータ１３２、ポスト書込みバッファ１３４、部分書込みマスク１３６、および列アドレス生成ロジック１３８を含む。モード・インディケータ１３２は、メモリ装置１３０が、エラー検出モードまたは非エラー検出モードのいずれのモードで動作しているかという表示を提供する。いくつかの実施例では、モード・インディケータ１３２は、モード・レジスタ・セット（ＭＲＳ）のような、１またはそれ以上のビットのレジスタを含む。ポスト書込みバッファ１３４とは、データがメモリ装置１３０のメモリ・コアに書き込まれる前にデータを記入するためのバッファである。部分書込みマスク１３６は、メモリ・コアに書き込まれたデータのために書込みマスクを提供する。いくつかの実施例では、部分書込みマスク１３６は、メモリ装置１３０に格納されたデータに関連するエラー検出ビットにアクセスするために使用される。いくつかの実施例では、列アドレス生成ロジック１３８は、メモリ装置１３０に格納されたデータに関連するエラー検出ビットのための列アドレス情報を生成する。
【００１４】
メモリ装置１３０は、さらにオン−ダイ(on-die)エラー訂正ロジック１６０を含む。いくつかの実施例では、エラー訂正ロジック１６０は、エラー検出モードで動作しているときに、メモリ装置１３０の信頼性、可用性、およびサービス性（ＲＡＳ）を増強させる。より詳しくは、いくつかの実施例では、エラー訂正ロジック１６０によって、メモリ装置１３０は、エラー検出モードで動作しているときでさえ、読取りリターン・データを伴うＣＲＣビットを使用することができる。いくつかの実施例では、エラー訂正ロジック１６０は、ＥＣＣ計算ロジックおよび比較ロジックを含む。この計算および比較ロジックによって、装置は、読取りデータのためのＥＣＣビットをローカルに計算し、ローカルに計算されたＥＣＣビットを格納されたＥＣＣビットと比較することができる。ローカルに計算されたＥＣＣビットが格納されたＥＣＣビットと一致する場合は、次に、読取りリターン・データ内でＣＲＣビットがＥＣＣビットに代わる。ＥＣＣ訂正ロジックについては、図６から図８に関して以下でさらに述べられる。
【００１５】
図２は、本発明の実施例によって実行されるＤＲＡＭの選択された状態を示すブロック図である。ＤＲＡＭ２００は、１６個のメモリ・バンク（０Ａから７Ｂ）または８個の分割バンク対（例えば分割バンク対０Ａ，０Ｂ）を含む。いくつかの実施例では、ＤＲＡＭ２００は、ｘ４またはｘ８ＤＲＡＭのいずれかとして形成することができる。ｘ４モードでは、ＤＲＡＭ２００は、１６個のバンク（０Ａから７Ｂ）を提供し、それぞれのバンクは、６４ビットのデータを４個のデータ（ＤＱ）ピンに提供する。ｘ８モードでは、ＤＲＡＭ２００は、８個の分割バンク対を提供し、それが１２８ビットのデータを８個のＤＱピンに提供する。
【００１６】
いくつかの実施例では、ＤＲＡＭ２００は、エラー検出モード（例えばＥＣＣモード）または非エラー検出モードのいずれかで動作するために形成することができる。エラー検出モードで動作するときは、ＤＲＡＭ２００は、一方の分割バンク（例えばバンク０Ａ）にデータを、かつ、他方の分割バンク（例えばバンク０Ｂ）に対応するエラー検出ビット（例えばＥＣＣビット）を格納することによって、分割バンク・アーキテクチャに影響を及ぼす。いくつかの実施例では、エラー検出モードで動作しているとき、ＤＲＡＭ２００はｘ８ＤＲＡＭとして形成される。
【００１７】
図３は、本発明の実施例に従って、データ・ビットおよびエラー検出ビットを分割バンク対に格納する、選択された状態を示すブロック図である。分割バンク対３００は、バンク０Ａおよびバンク０Ｂを含む。いくつかの実施例では、データは、各バンク内のＮ／Ｍ（例えば７／８）までの位置に格納され、また、対応するエラー検出ビットは、他方の分割バンク対３００の最後の１／Ｍ（例えば１／８）に格納される。例えば、バンク０Ａに格納されたデータをカバーするエラー検出ビットは、バンク０Ｂの記憶位置の先頭の１／８に格納される（３０２）。同様に、バンク０Ｂに格納されたデータをカバーするエラー検出ビットは、バンク０Ａの記憶位置の先頭のｌ／８に格納される（３０４）。いくつかの実施例では、エラー検出ビットは、エラー検出・コード（ＥＣＣ）ビットである。
【００１８】
いくつかの実施例では、ホスト（例えば、図１に示されるメモリ・コントローラ１１０）は、データ・ビットを受け取っている、または提供しているバンクを識別するために、分割バンク対内の特定のバンクをアドレス指定する。メモリ装置がエラー検出モードである場合、それは、内部ロジック（例えば、図１に示された、部分書込みマスク１３６、列アドレス生成ロジック１３８など）を使用して、データ・ビットに対応するエラー検出ビットにアクセスする。データ・ビットおよび対応するエラー検出ビットへのアクセスについては、図４から図８に関して以下でさらに述べられる。
【００１９】
図４は、本発明の実施例に従って、データ・ビットとエラー検出ビットとの間のアドレス・マッピングの例を示すブロック図である。図示された実施例では、データ・ビットは、４１０で示されるようなバンクの分割対内のバンクによって提供されるページの７／８に格納される。対応するエラー検出ビットは、分割バンク対内の別のバンクの上位ｌ／８に格納される（４３０）。例えば、バイト０−７をカバーするＥＣＣビットは、参照番号４３２によって示されるような記憶位置８９６に格納される。同様に、バイト１２８−１３５をカバーするＥＣＣビットは、参照番号４３４によって示されるような記憶位置８９７に格納され、このようなパターンは、図４に示されるように、ページ４１０内のデータ・バイトに対して継続される。いくつかの実施例では、参照番号４３６によって示されるように、バンク４３０の上位ｌ／８の最後のバイト（例えば位置９０３）は使用されない。いくつかの実施例では、バイト８−１５をカバーするエラー検出ビットは、位置９０５に格納され、シーケンスが繰り返される。
【００２０】
図５Ａおよび図５Ｂは、本発明の実施例に従って、書込みデータ・フレームのシーケンスの選択された状態を示す。図５Ａおよび図５Ｂに示された書込みシーケンスは、２つのメモリ装置を備えた並列のメモリ・チャネルを有するシステム内で使用される。各装置は、４つのフレームのすべてを見て、Ｄ０からＤ６３、あるいはＤ６４からＤ１２７のいずれかに割り当てられる。メモリ装置の割当てについては、さらに以下で述べられる。
【００２１】
いくつかの実施例では、書込みシーケンスは以下のフレームを含む。すなわち、書込みヘッダ（Ｗｈ）５０２、ＥＣＣ書込みフレーム（Ｗｅ）５０４、書込みデータ１（Ｗｄ１）５０６、および書込みデータ２（Ｗｄ２）５０８である。いくつかの実施例では、各フレームは、６ビット・フレーム（０から５のラベルが付される）であり、９ビット・ディープ（例えば、ユニット・インターバル（ＵＩ）０から８、または９から１７）である。Ｗｈ５０２は、いくつかのデータ・ビットと同様に、書込みシーケンスのためのヘッダ情報を含む。
【００２２】
Ｗｅ５０４は、関連するデータ・ビットをカバーするためにエラー検出ビット（例えば、ＵＩ１２−１５で示されるＥＣＣビット５１０）を転送する。いくつかの実施例では、エラー検出ビット（例えばＥＣＣビット）は、部分書込みマスク・エンコーディングを用いて、メモリ装置１３０に転送される。すなわち、Ｗｅ５０４は、マスク・ビットがエラー検出ビット（例えば、ユニット・インターバル１２−１５で示されるＥＣＣビット５１０）と置換されるという点を除いて、部分書込みマスク・フレーム（Ｗｍ）と同一のコマンド・エンコーディングを有する。ＥＣＣビット（ＥＣＣ０−ＥＣＣ７）は、データ・ビット（Ｄ０−Ｄ６３）をカバーし、また、ＥＣＣビット（ＥＣＣ８−ＥＣＣ１５）は、データ・ビット（Ｄ６４−Ｄ１２７）をカバーする。いくつかの実施例において、システムがエラー検出モードで動作しているとき、Ｗｅフレーム５０４は、すべての書込みデータの転送に必要である。
【００２３】
Ｗｄ１（５０６）およびＷｄ２（５０８）は、書込み動作のために残りのデータ・ビットを転送する。データ・ビット（Ｄ０−Ｄ６３）は、１つのメモリ装置によって使用され、また、データ・ビット（Ｄ６４−Ｄ１２７）は、別のメモリ装置によって使用される。いくつかの実施例では、メモリ装置内のレジスタ・ビットは、メモリ装置がどのデータ・ビットをピックアップすべきかを決定する。例えば、ＭＲＳレジスタは、メモリ装置にデータ・ビットを割り当てるために使用される。
【００２４】
いくつかの実施例では、アドレス・ビットｇｌ（５１２）は、分割ＰＷＢインプリメンテーションのロードを可能にするために、Ｗｅ５０４で提供される。いくつかの実施例では、メモリ装置は、ＰＷＢのロードに関してｇｌを使用するかどうかを選択することができる。アドレス・ビットｇｌは、書込みＣＡＳで提供され、分割バンクの１つがデータ格納装置およびＥＣＣビット用の他の格納装置に使用されることを示す。
【００２５】
図６は、本発明の実施例に従って、オン−ダイ・エラー訂正ロジックの選択された状態を示すブロック図である。いくつかの実施例では、メモリ装置６００（例えばＤＲＡＭ）は、とりわけ、メモリ・コア６０１およびエラー訂正ロジック６０７を含む。メモリ・コア６０１およびエラー訂正ロジック６０７は、共通チップ上に集積される。いくつかの実施例では、メモリ・コア６０１は、第１部分６０２および第２部分６０４のような複数の部分を含む。例えば、第１部分６０２および第２部分６０４は、それぞれが、分割バンク対における分割バンクである。データ・ビット６０３は第１の部分６０２に格納される。また、対応するＥＣＣビット６０５は第２の部分６０４に格納される。いくつかの実施例では、ＥＣＣビット６０５は、ホスト（例えば、図１に示されるメモリ・コントローラ１１０）によって計算され、書込みデータ・フレーム（例えば、図５に示されるＥＣＣ書込みフレーム５０４）内のメモリ装置６００に提供される。
【００２６】
エラー訂正ロジック６０７は、メモリ装置６００のＲＡＳを改善するためのロジックを含む。いくつかの実施例では、エラー訂正ロジック６０７は、ＥＣＣエラーを検出し訂正するロジックを含む。ＥＣＣビットを転送するために使用されたであろう読取りデータ・フレームの部分は、その後、ＣＲＣビットを転送するために使用される。このように、データ・ビット６０３は、読取りデータ・フレーム内のＥＣＣビットを転送することなく、ソフトエラーおよびリンク・エラーの両方のためにカバーされるであろう。
【００２７】
図示された実施例では、エラー訂正ロジック６０７は、ＥＣＣ訂正ロジック６０６、ＥＣＣ計算ロジック６０８、ＣＲＣ計算ロジック６１０、コンパレータ６１２、およびフレーム・ロジック・ユニット（ＦＬＵ）６１４を含む。他の実施例では、エラー訂正ロジック６０７は、より多くの要素、より少ない要素、および／または異なる要素を含む。さらに、いくつかの実施例では、エラー訂正ロジック６０７の一部として示された１またはそれ以上の要素は、メモリ装置６００の異なる部分で実行される。
【００２８】
ＥＣＣ計算ロジック６０８は、データ６０３をカバーするためにＥＣＣビットを計算する。いくつかの実施例では、ロジック６０８は、ＥＣＣビットを計算するために、ＥＣＣビット６０５を計算するために使用されたものと同じ多項式を使用する。例えば、ロジック６０８は、図１に示されたエラー検出ロジック１１２と同じ多項式を使用する。ロジック６０８は、ほとんど、あらゆるエラー訂正コード多項式を使用する。いくつかの実施例では、多項式はＥＣＣとＣＲＣの組み合わせである。図示された実施例では、ロジック６０８は、６４個のデータ・ビットをカバーするために８個のＥＣＣビットを計算する。他の実施例では、ＥＣＣビットおよび／またはデータ・ビットの数が異なる。
【００２９】
コンパレータ６１２は、計算されたＥＣＣビットを、格納されたＥＣＣビット（例えば、ＥＣＣビット６０５）と比較する。ＥＣＣビットの２つのセットが一致する場合は、コンパレータ６１２はＭＡＴＣＨ信号を表明する。計算されたＥＣＣビットが格納されたＥＣＣビットと一致しない場合は、データ・ビット６０３はエラーを含む。いくつかの実施例では、エラー訂正ロジック６０７は、あるエラーを訂正するためにＥＣＣ訂正ロジック６０６を含む。このような実施例において、ＥＣＣビットの２つのセットが一致しない場合は、コンパレータ６１２がＥＣＣ訂正ロジック６０６にデータ（例えば、ＥＣＣビットが一致しないという指示）を提供し、その問題を訂正可能にする。いくつかの実施例では、ロジック６０６は、シングル・ビット訂正ロジックを含み、ＳＢＣが、例えば６４ビット中から訂正する必要があるシングル・ビットを表示する。コンパレータ６１２が、ロジック６０６が訂正することができないようなウエイト(weight)を有するエラーを検出した場合、コンパレータ６１２は、ＡＬＥＲＴ信号を表明する。コンパレータ６１２は、ビットの１つのセットを別のセットと比較し、比較した結果に応じて１またはそれ以上の信号を表明する主張するのに適切な、任意のロジックである。
【００３０】
上述したように、ＥＣＣ訂正ロジック６０６は、ある種のエラー（例えば、シングル・ビット・エラー）を訂正するためのロジックを含む。いくつかの実施例では、ロジック６０６は、訂正された入力および出力データとして、データ・ビット６０３およびＳＢＣデータを受け取る。エラーが検出されない場合、データ・ビット６０３は、ＥＣＣ訂正ロジック６０６を単に通過する。
【００３１】
ＣＲＣ計算ロジック６１０は、ロジック６０６（例えば、訂正されたデータ・ビットまたはオリジナル・データのいずれか）によって提供されるデータ・ビットをカバーするために、ＣＲＣビットを計算する。いくつかの実施例では、ＣＲＣ計算ロジック６１０は、６４個のデータ・ビットをカバーするために８個のＣＲＣビットを計算する。他の実施例では、ＣＲＣビットの数、および／またはデータ・ビットの数が異なる。ＣＲＣ計算ロジック６１０は、広範囲にわたるＣＲＣ多項式のいずれでも実行するためのロジックを含む。他の実施例では、異なるスキームは、リンク・エラー・プロテクション・ビットを生成するために使用される。例えば、いくつかの実施例では、ロジック６１０は、リンク・エラー・プロテクションを提供するために、パリティ・スキームまたは他のスキームを実行するする。
【００３２】
フレーム・ロジック・ユニット（ＦＬＵ）６１４は、リクエスタへの送信のために、データ・ビットおよび／またはＣＲＣビットをフレームするためのロジックを含む。いくつかの実施例では、ＦＬＵ６１４は、データ・ビットにＣＲＣビットをアペンドする。他の実施例では、ＦＬＵ６１４は、データ・ビットとは別個にＣＲＣビットをフレームする。いくつかの他の実施例では、例えば、２倍のビット・エラーが検出された場合、ＦＬＵ６１４は故障したＥＣＣビットを送信する。
【００３３】
図７は、本発明の実施例に従って、メモリ装置からデータを読取るための、選択された状態を示すフロー・チャートである。工程ブロック７０２において、オン−ダイ・エラー訂正ロジックは、データ・ビットおよび対応するＥＣＣビットを、メモリ・コア（例えば、図６に示されるメモリ・コア６０１）の部分から読取る。説明を容易にするために、用語「格納されたＥＣＣビット」とは、データ・ビットがメモリ装置に書き込まれる前に生成され、かつ、それらがカバーするデータ・ビットと共にメモリ装置に格納されるＥＣＣビットを意味する。用語「計算されたＥＣＣビット」とは、対照的に、メモリ・コアと同じダイ上にあるＥＣＣ計算ロジックによって計算されるＥＣＣビットを意味する。
【００３４】
工程ブロック７０４に関し、オン−ダイＥＣＣ計算ロジック（例えば、図６に示されたロジック６０８）は、格納されたＥＣＣビットを計算するために使用されたのと同じ多項式を使用して、データ・ビットのためにＥＣＣビットを計算する。計算されたＥＣＣビットは、７０６において格納されたＥＣＣビットと比較される。計算されたＥＣＣビットが格納されたＥＣＣビットと一致した場合、オン−ダイＣＲＣ計算ロジックは、７０８に示されるようなビットをカバーするためにＣＲＣを計算する。工程ブロック７１０に関し、ＣＲＣビットおよびデータ・ビットは、（例えば、図６に示されるＦＬＵ６１４使用して）リクエスタに送られる。
【００３５】
計算されたＥＣＣビットが格納されたＥＣＣビットと一致しない場合、オン−ダイ・エラー訂正ロジックは、検出されたエラーがオン−ダイＥＣＣ訂正ロジックによって訂正することができるウエイトを有するかどうかを決定する。例えば、工程ブロック７１４は、シングル・ビット・エラーを検出するエラー訂正ロジックを示す。データ・ビットがシングル・ビット・エラーを含む場合、それは７１６において訂正される。その後、ＣＲＣビットは計算され（７０８）、さらに、ＣＲＣビットおよび訂正されたデータ・ビットは、リクエスタに送られる（７１０）。いくつかの実施例では、訂正されたデータは、メモリ・コアにライト・バックされ、および／または、後でホストが消去することができるようなレジスタ位置に、エラーとして記録(log)される。
【００３６】
検出されたエラーが、訂正することができないことを示すウエイトを有する場合、エラー訂正ロジックは、例えばＡＬＥＲＴ信号を使用してエラーを報告する（７１８）。いくつかの実施例では、故障しているＥＣＣビットは、例えばレジスタ位置に格納される。いくつかの実施例では、シングル・ビット・エラーあるいはダブル・ビット・エラーのいずれかが検出された場合、エラー訂正ロジックは、リクエスタにＥＣＣビット（例えばＣＲＣビットの代わりに）を送る。このような実施例では、さらにＡＬＥＲＴ信号も表明される。その後、ホストは、壊れたデータをどのように処理するかを決定する。
【００３７】
図８は、本発明の実施例に従って、読取りデータ・フレームの選択された状態を示す。システム（例えば、図１に示されるシステム１００）がエラー検出モードである場合、いくつかの実施例では、６４個ビットのデータは、２つの背中合わせのフレーム上で転送される。例えば、フレーム８０２，８０４は、ユニット・インターバル（ＵＩ）０−７および９−１６の６４個のデータ・ビットを転送する。さらに、フレーム８０２，８０４は、８個のＣＲＣビットを転送する。例えば、ＵＩ８内の４個のＣＲＣビット、およびＵＩ１７内の４個のＣＲＣビットである。
【００３８】
いくつかの実施例では、２つの読取りが並行して実行され、１２８個のデータ・ビットが４個のフレームで転送される。例えば、示された実施例では、フレーム８０２，８０４は、最初の６４個のデータ・ビット（例えばｄ０―ｄ６３）を転送し、フレーム８０６，８０８は、別の６４個のデータ・ビット（例えばｄ６４−ｄｌ２７）を転送する。データ・ビットｄ０―ｄ６３（例えばＣＲＣ＿Ａ）をカバーするＣＲＣビットは、フレーム８０２，８０４のＵＩ８，１７でそれぞれ転送される。同様に、データ・ビットｄ６４−ｄｌ２７（例えばＣＲＣ＿Ｂ）をカバーするＣＲＣビットは、フレーム８０６，８０８のＵＩ８，１７でそれぞれ転送される。他の実施例では、読取りフレームは異なる構造を有し、および／または異なる数のフレームが転送される。データ・ビットは、ソフトエラーおよびリンク・エラーの両方のためのカバレッジを有するが、ＣＲＣビットだけが読取りデータ・フレームで戻されるので、メモリ装置のＲＡＳが改善される。
【００３９】
図９は、本発明の実施例に従った、電子システムの選択された状態を示すブロック図である。電子システム９００は、プロセッサ９１０、メモリ・コントローラ９２０、メモリ９３０、入力／出力（Ｉ／Ｏ）コントローラ９４０、無線周波数（ＲＦ）回路９５０、およびアンテナ９６０を含む。動作において、システム９００は、アンテナ９６０を使用して信号を送信および受信する。また、これらの信号は、図９に示されるような様々な要素によって処理される。アンテナ９６０は、指向性アンテナまたは全方向性アンテナである。ここで用いられるように、用語「全方向性アンテナ」は、少なくとも１つの平面内にほぼ一定のパターンを有する任意のアンテナを意味する。いくつかの実施例では、例えばアンテナ９６０は、ダイポール・アンテナまたは４分の１波長アンテナのような全方向性アンテナである。さらに、いくつかの実施例では、例えばアンテナ９６０は、パラボラ・アンテナ、パッチ・アンテナ、または八木アンテナのような指向性アンテナである。いくつかの実施例では、アンテナ９６０は、複数の物理的なアンテナを含む。
【００４０】
無線周波数回路９５０は、アンテナ９６０およびＩ／Ｏコントローラ９４０と通信する。いくつかの実施例では、ＲＦ回路９５０は、通信プロトコルに対応する物理インターフェイス（ＰＨＹ）を含む。例えば、ＲＦ回路９５０は、変調器、復調器、ミキサ、周波数シンセサイザ、低雑音増幅器、電力増幅器、およびその他同種のものを含む。いくつかの実施例では、ＲＦ回路９５０は、ヘテロダイン受信機、および他の実施例を含み、また他の実施例では、ＲＦ回路９５０は、直接変換受信機を含む。例えば、複数のアンテナ９６０を備える実施例では、各アンテナは対応する受信機に結合される。動作において、ＲＦ回路９５０は、アンテナ９６０から通信信号を受信し、Ｉ／Ｏコントローラ９４０にアナログまたはデジタル信号を提供する。さらに、Ｉ／Ｏコントローラ９４０は、ＲＦ回路９５０に信号を提供するが、それは信号上で動作し、次に、それらをアンテナ９６０に送信する。
【００４１】
プロセッサ９１０は任意のタイプの処理装置である。例えば、プロセッサ９１０は、マイクロプロセッサ、マイクロコントローラ、または同種のものである。さらに、プロセッサ９１０は、任意の数のプロセッシング・コアを含み、あるいは任意の数の個別のプロセッサを含む。
【００４２】
メモリ・コントローラ９２０は、図９に示されるプロセッサ９１０と他の要素との間に通信パスを提供する。いくつかの実施例では、メモリ・コントローラ９２０は、同様に他の機能を提供するハブ装置の一部である。図９に示されるように、メモリ・コントローラ９２０は、プロセッサ９１０、Ｉ／Ｏコントローラ９４０、およびメモリ９３０に結合される。
【００４３】
メモリ９３０は、複数のメモリ装置を含む。これらのメモリ装置は、任意のタイプのメモリ技術に基づく。例えば、メモリ９３０は、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、フラッシュ・メモリのような不揮発性メモリまたは他の任意のタイプのメモリである。メモリ９３０は、エラー検出モードおよび非エラー検出モードをサポートする。いくつかの実施例では、メモリ９３０は、オン−ダイ・エラー訂正ロジック９３２を含む。エラー訂正ロジック９３２は、メモリ装置上にＥＣＣ生成ロジックおよび比較ロジックを集積することにより、読取りリターン・データを具備する巡回冗長コード（ＣＲＣ）ビットの使用を可能にする。
【００４４】
メモリ９３０は、１またはそれ以上のモジュール上の単一のメモリ装置あるいは複数のメモリ装置を表わす。メモリ・コントローラ９２０は、相互接続９２２を通ってメモリ９３０にデータを提供し、読込み要求に応じてメモリ９３０からデータを受け取る。コマンドおよび／またはアドレスは、相互接続９２２を通って、あるいは異なる相互接続（図示せず）を通ってメモリ９３０に提供される。メモリ・コントローラ９２０は、メモリ９３０に格納されるべきデータを、プロセッサ９１０から、または別のソースから受け取る。メモリ・コントローラ９２０は、メモリ９３０から受け取るデータを、プロセッサ９１０または他の転送先に提供する。相互接続９２２は、双方向相互接続または一方向相互接続である。相互接続９２２は、複数の並列の導体を含む。その信号は、差動またはシングルエンドである。いくつかの実施例では、相互接続９２２は、順方向マルチフェーズ・クロック・スキームを用いて動作する。
【００４５】
メモリ・コントローラ９２０は、さらにＩ／Ｏコントローラ９４０に結合され、プロセッサ９１０とＩ／Ｏコントローラ９４０との間に通信パスを提供する。Ｉ／Ｏコントローラ９４０は、シリアル・ポート、パラレル・ポート、ユニバーサル・シリアル・バス（ＵＳＢ）ポート、および同種のもののような、Ｉ／Ｏ回路と通信するための回路を含む。図９に示されるように、Ｉ／Ｏコントローラ９４０は、ＲＦ回路９５０への通信パスを供給する。
【００４６】
図１０は、本発明の他の実施例に従って、電子システムの選択された状態を示すブロック図である。電子システム１０００は、メモリ９３０、Ｉ／Ｏコントローラ９４０、ＲＦ回路９５０、およびアンテナ９６０を含み、それらのすべてについては図９に関して上述された。電子システム１０００は、さらに、プロセッサ１０１０およびメモリ・コントローラ１０２０を含む。図１０に示されるように、メモリ・コントローラ１０２０は、プロセッサ１０１０と同じダイ上にある。プロセッサ１０１０は、プロセッサ９１０（図５）に関して上述されたような、任意のタイプのプロセッサである。図９および図１０によって表わされるシステムの例は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ、携帯電話、携帯情報端末、デジタル・ホーム・システム、および同種のものを含む。
【００４７】
本発明の実施例の要素は、さらに、機械読取り可能な命令を格納するための機械読取り可能な媒体として提供される。機械読取り可能な媒体は、フラッシュ・メモリ、光ディスク、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、デジタル汎用／ビデオ・ディスク（ＤＶＤ）ＲＯＭ、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能なプログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）、磁気あるいは光カード、伝播媒体、またはあるいは電子命令を格納するために適切な他のタイプの機械読取り可能な媒体を含むが、それらに制限されることはない。例えば、本発明の実施例は、通信リンク（モデムまたはネットワーク接続）を介して搬送波あるいは他の伝播媒体に乗せられたデータ信号の方法よって、遠隔コンピュータ（例えばサーバ）から要求コンピュータ（例えばクライアント）に転送される、例えば、コンピュータ・プログラムとしてダウンロードされてもよい。
【００４８】
本明細書全体を通して「一実施例」または「ある実施例」と称する場合は、その実施例に関して記述された特定の形状、構造または特性が、本発明の少なくとも１つの実施例に含まれることを意味すると理解されるべきである。したがって、それは強調され、また、本明細書の様々な箇所において、２またはそれ以上の箇所で「ある実施例」または「一実施例」と称する場合は、必ずしも同一の実施例について言及しているとは限らないと理解すべきである。さらに、特定の形状、構造あるいは特性は、本発明の１またはそれ以上の実施例において、適切に組み合わされてもよい。
【００４９】
同様に、本発明の実施例についての以上の記述において、１またはそれ以上の創造的な側面についての理解を助けるための開示を簡素化する目的のために、様々な特徴が単一の実施例、図面、またはそれらの記述にまとめられていることを理解すべきである。しかしながら、このような開示の方法は、各請求項において、請求された主題が明示的に列挙しているよりも多くの特徴を要求する意図を反映していると解釈すべきではない。むしろ、添付の請求項が反映するように、発明の態様は、上記開示された単一の実施例の全特徴よりも少ない。したがって、詳細な説明に続く請求項は、ここに、この詳細な説明に明らかに編入されるものである。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施例に従って実行されるコンピューティング・システムの選択された状態を示す高レベルのブロック図である。
【図２】本発明の実施例に従って実行されるダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）の選択された状態を示すブロック図である。
【図３】本発明の実施例に従って実行されるダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）の選択された状態を示すブロック図である。
【図４】本発明の実施例に従って、データ・ビットとエラー検出ビットとの間のアドレス・マッピングの一例を示すブロック図である。
【図５Ａ】本発明の実施例に従って、書込みデータ・フレームのシーケンスの選択された状態を示す。
【図５Ｂ】本発明の実施例に従って、書込みデータ・フレームのシーケンスの選択された状態を示す。
【図６】本発明の実施例に従って、オン−ダイ・エラー訂正ロジックの選択された状態を示すブロック図である。
【図７】本発明の実施例に従って、メモリ装置からデータを読み取るための選択された状態を示するフロー・チャートである。
【図８】本発明の実施例に従って、読取りデータ・フレームのシーケンスの選択された状態を示す。
【図９】本発明の実施例に従って、電子システムの選択された状態を示すブロック図である。
【図１０】本発明の他の実施例に従って、電子システムの選択された状態を示すブロック図である。
【図１】
2009540477.tif 000003
【図２】
2009540477.tif 000004
【図３】
2009540477.tif 000005
【図４】
2009540477.tif 000006
【図５Ａ】
2009540477.tif 000007
【図５Ｂ】
2009540477.tif 000008
【図６】
2009540477.tif 000009
【図７】
2009540477.tif 000010
【図８】
2009540477.tif 000011
【図９】
2009540477.tif 000012
【図１０】
2009540477.tif 000013
【国際調査報告】
2009540477.tif 000014
2009540477.tif 000015