(57)【要約】      （修正有）【課題】メモリ装置の寿命を、比較的少数のメモリセルにおける寿命よりも、大多数のメモリセルにおける寿命まで延ばし信頼性の向上を図る。【解決手段】メモリ装置から読み出したデータを表す読み出し信号を受信し、前記読み出し信号に関連づけられたビット誤り率および／またはビット誤り数を決定する、誤り訂正コーディング（ＥＣＣ）デコーダと、および前記ビット誤り率および／または前記ビット誤り数がエラー閾値と一致または超過するか否かに、少なくとも部分的に基づいて、前記メモリ装置のリマップしたリマップアドレスを内容アドレス指定可能メモリ装置（ＣＡＭ）に供給する、リマップコントローラと、を備えた、システムを提供する。【選択図】図２
2011023099.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置から読み出したデータを表す読み出し信号を受信し、前記読み出し信号に関連づけられたビット誤り率および／またはビット誤り数を決定する、誤り訂正コーディング（ＥＣＣ）デコーダと、および
前記ビット誤り率および／または前記ビット誤り数がエラー閾値と一致または超過するか否かに、少なくとも部分的に基づいて、前記メモリ装置のリマップしたリマップアドレスを内容アドレス指定可能メモリ装置（ＣＡＭ）に供給する、リマップコントローラと、
を備えた、ことを特徴とするシステム。
【請求項２】
請求項１記載のシステムにおいて、前記ＣＡＭは、読み出しアドレスを受信し、前記読み出しアドレスが前記ＣＡＭ内に記憶された前記リマップアドレスに対応するか否かに少なくとも部分的に応答する応答信号を送信するよう構成した、システム。
【請求項３】
請求項２記載のシステムにおいて、さらに、前記メモリ装置から読み出すためのアドレスとして使用するために、前記読み出しアドレスまたは前記リマップアドレスのいずれかを選択する選択部分であって、前記選択は、少なくとも部分的に前記応答信号に基づいて行う、該選択部分を備えた、システム。
【請求項４】
請求項１記載のシステムにおいて、前記メモリ装置は、メインメモリ部分およびスペアメモリ部分を有し、また前記リマップアドレスは前記スペアメモリ部分内のメモリ場所に対応するものとした、システム。
【請求項５】
請求項４記載のシステムにおいて、前記メモリ装置は、さらに、前記ＥＣＣデコーダおよび相変化メモリ部分を有する、システム。
【請求項６】
請求項１記載のシステムにおいて、前記ビット誤り率および／または前記ビット誤り数は、少なくとも部分的に、前記メモリの物理的劣化に応じて生ずるものとした、システム。
【請求項７】
メモリ装置から読み出したデータを表す信号に関連するビット誤り率および／またはビット誤り数を決定するステップと、
前記ビット誤り率および／または前記ビット誤り数がエラー閾値と一致するまたは超過するか否かに、少なくとも部分的に基づいて、前記メモリ装置のリマップしたリマップアドレスを内容アドレス指定可能メモリ装置（ＣＡＭ）に供給するステップと、および
前記リマップアドレスを表す信号をＣＡＭに記憶するステップと
を備えることを特徴とする方法。
【請求項８】
請求項７記載の方法において、さらに、
読み出しアドレスを受信するステップと、
前記読み出しアドレスが前記ＣＡＭに記憶された前記リマップアドレスに対応するか否かに少なくとも部分的に対応する応答信号を送信するステップを
備える、方法。
【請求項９】
請求項８記載の方法において、さらに、
前記メモリ装置から読み出すためのアドレスとして使用するために、前記読み出しアドレスまたは前記リマップアドレスのいずれかを選択する選択ステップであって、前記選択は、少なくとも部分的には前記送信された応答信号に基づいて行う、該選択ステップを備える、方法。
【請求項１０】
請求項７記載の方法において、さらに、
前記リマップアドレスに対応する前記メモリ装置の一部を退役させるステップを備える、方法。
【請求項１１】
請求項１０記載の方法において、前記メモリ装置の前記一部を退役させるステップは、電子信号が表す情報を、前記メモリ装置の前記一部から前記メモリ装置の他の部分に移転するステップを有する、方法。
【請求項１２】
請求項７記載の方法において、前記メモリ装置は、メインメモリ部分およびスペアメモリ部分を有し、前記リマップアドレスは、前記スペアメモリ部分のメモリ位置に対応するものとした、方法。
【請求項１３】
請求項１２記載の方法において、前記メモリ装置は、さらに、前記ＥＣＣデコーダおよび相変化メモリ部分を有する構成とした、方法。
【請求項１４】
請求項７記載の方法において、前記ビット誤り率および／または前記ビット誤り数は、少なくとも部分的に、前記メモリの物理的劣化に応じて生ずるものとした、方法。
【請求項１５】
読み出しリクエストを送信するプロセッサと、
メモリ装置から読み出したデータを表す読み出し信号を受信し、前記読み出しリクエストに応答して、前記データを表す前記読み出し信号に関連するビット誤り率および／またはビット誤り数を決定する、誤り訂正コーディング（ＥＣＣ）デコーダと、および
前記ビット誤り率および／または前記ビット誤り数がエラー閾値と一致するまたは超過するか否かに、少なくとも部分的には基づいて、前記メモリ装置のリマップしたリマップアドレスを内容アドレス指定可能メモリ装置（ＣＡＭ）に供給する、リマップコントローラと
を備えた、ことを特徴とするシステム。
【請求項１６】
請求項１５記載のシステムにおいて、前記ＣＡＭは、読み出しアドレスを前記プロセッサから受信し、前記読み出しアドレスが前記ＣＡＭ内に記憶された前記リマップアドレスに対応するか否かに、少なくとも部分的には応答する応答信号を送信するよう構成した、システム。
【請求項１７】
請求項１６記載のシステムにおいて、さらに、前記メモリ装置から読み出すためのアドレスとして使用するために、前記読み出しアドレスまたは前記リマップアドレスのいずれかを選択する選択部分を備え、前記選択は、少なくとも部分的に前記信号に基づいて行う、該選択部分を備えた、システム。
【請求項１８】
請求項１５記載のシステムにおいて、前記メモリ装置は、メインメモリ部分およびスペアメモリ部分を有し、また前記リマップアドレスは前記スペアメモリ部分のメモリ場所に対応するものとした、システム。
【請求項１９】
請求項１８記載のシステムにおいて、前記メモリ装置は、さらに、前記ＥＣＣデコーダおよび相変化メモリ部分を有する、システム。
【請求項２０】
請求項１５記載のシステムにおいて、前記ビット誤り率および／または前記ビット誤り数は、少なくとも部分的に、前記メモリの物理的劣化に応じて生ずるものとした、請求項１５記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置のリマッピングに関する。
【背景技術】
【０００２】
メモリ装置は、様々なタイプの電子機器、数例を挙げるならコンピュータ、携帯電話、ＰＤＡ、データロガー、ナビゲーション機器等に使用される。このような電子機器において、数例を挙げるならＮＡＮＤまたはＮＯＲフラッシュメモリ、ＳＲＡＭ、ＤＲＡＭ、および相変化メモリなど、様々なタイプの不揮発性メモリ装置が使用される。一般的に、書き込みまたはプログラミングプロセスを使用して、そのようなメモリ装置に情報を記憶し、読み出しプロセスを使用して、記憶された情報を読み出すことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このような不揮発性メモリ装置は、時間が経つにつれ徐々に劣化するメモリセルから構成されるため、メモリセルへのアクセス時に読み出しおよび／または書き込みにおけるエラーが起こる可能性が高まる。このようなエラーは、例えばメモリ装置内で後に補正されるものの、エラーの数が増加するにつれ、そのようなエラー補正は困難または不可能となる。
【課題を解決するための手段】
【０００４】
本明細書にわたる用語「一実施形態（one embodiment）」「実施形態（an embodiment）」とは、実施形態に関連する特別な特徴、構造、または特性が、特許請求の範囲における発明要旨としての、少なくとも1つの実施形態に含まれることを意味する。従って、本明細書を通して散見される「一実施形態」「実施形態」という表現は、必ずしも全て同じ実施形態を示すわけではない。さらに、特別な特徴、構造、または特性が、1つ以上の実施形態において組み合わせられることもある。
【０００５】
一実施形態において、メモリ装置は、時間と共に徐々に劣化するメモリセルから構成されており、メモリ装置の読み出し中に１つ以上のエラーが起こる可能性を高める。そのようなエラーは、例えばエラー補正コード（ＥＣＣ）または他のアルゴリズムを用いるコンピュータシステム内の幾つかの領域で補正される。システムの観点から、このようなエラー傾向があるセルの使用を継続するか否かについて決定することができる。以下に詳細に説明するように、このような決定は、少なくとも部分的にはエラーの数と、例えばメモリ装置の設計段階で定義されるエラー閾値との比較に基づく。ある実施において、特定メモリセルの使用は、そのようなセルが過剰な数のエラーを表示する前に中止する。言い換えれば、エラー傾向があるメモリセルの使用は、そのようなメモリセルが、エラー閾値に近づいていく程の多数回のエラーを引き起こした場合に中止される。このような閾値には、例えばメモリセルの使用を中止する決定を行うために到達する必要はない。従って、エラー閾値に近づいていく数のエラー回数を観測することが、特定のメモリが間もなく過剰に多い数のエラーを引き起こすということを予測する方法であり、このようにして、例えばメモリセルが実際に重篤な機能不全を発症する前に、そのようなエラー傾向があるメモリセルの使用を中止する。特定メモリセルの使用を中止する場合、全メモリ装置の全容量を維持するように、代替メモリセルを選択する。
【０００６】
従って、一実施形態において、メモリ装置のサイズ容量を維持するプロセスは、エラー傾向があるメモリ位置を、全体的なシステムメモリ空間（例えば、メモリ装置容量）を失わずに、適切に機能するメモリ位置にリマップすることを含む。このようなリマッピングは、少なくとも部分的には、エラー傾向があるメモリ位置からの読み出し結果として起こるエラーの量および／または頻度に関する情報に基づく。ここで、メモリ位置は、このようなメモリ位置および／またはメモリ部分を識別する１つまたは複数のアドレスを用いて、読み出しおよび／または書き込みプロセスなどを介してアクセスされるメモリ装置の一部を指して言う。以下に詳細に説明するように、メモリの特定部分の読み出しに関連するビットエラー率および／またはビットエラー数を決定するためには、例えばＥＣＣデコーダを使用する。その後、ビットエラー率および／またはビットエラー数を、例えばエラーの許容数の実質的制限から構成されるエラー閾値と比較する。その比較の結果によって、エラーを発生するメモリの特定部分に対する使用中止などの退役に関する決定を行う。
【０００７】
特定の実施形態では、メモリ装置の一部の退役プロセスは、メモリ装置の退役予定部分に記憶されたデータを表す信号を、メモリ装置の他の部分に移動することを含む。ある実施例においては、メモリ装置の退役部分から移転されたそのようなデータは、メモリ装置のスペア部分に移動される。以下に詳細に説明するように、例えば、このようなメモリのスペア部分は、初めにメモリ装置の全容量の一部として認識または考慮されていなかったメモリ装置の物理的位置である。メモリ装置の一部の退役プロセスはまた、メモリ装置の退役予定部分のアドレスを、メモリ装置の新しいスペア部分のアドレスと一致するようにリマップすることを含む。このようなリマップされたアドレスは、以下に詳細に記載するように、例えば内容アドレス指定可能（連想記憶）メモリ（content-addressable memory：ＣＡＭ）に記憶する。もちろん、このようなプロセスは単なる例でしかなく、特許請求の範囲の要旨を限定するものではない。
【０００８】
一実施形態において、上記のようなプロセスは、相変化メモリ（ＰＣＭ）装置より構成されるメモリ装置に関連する。従って、ＰＣＭが古くなると、ＰＣＭの一部分により引き起こされるビット誤り率および／またはビット誤り数は増加する。このようなエラーは、ある程度までは、例えばＥＣＣデコーダおよび／または他のエラー補正アルゴリズムを用いて補正することができる。しかし、エラー数はそのようなエラー補正技術の許容量を超えて増加することもある。従って、メモリ部分が過剰な数のエラーを引き起こしている、もしくは引き起こし始めたという兆候を示した時に、そのようなメモリ部分を退役させることが望ましい。
【０００９】
上記のような実施形態は、比較的信頼性の低い技術を含むメモリ装置を有効利用できるようにする。例えば、以前は使用不可能であると考えられていたダイを、本明細書に記載する実施形態を用いて利用することができる。さらに、このような実施形態によれば、メモリ装置の寿命を、比較的少数のメモリセルにおける寿命よりも、大多数のメモリセルにおける寿命まで延ばすことができる。
限定するものではない、また排他的なものではない実施形態を、添付図面につき説明するが、特に明示しない限り、図面において同一参照符号は同様の部分を示す。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態による、メモリ構成の概略図である。
【図２】本発明の一実施形態による、メモリリマッププロセスのフローチャートである。
【図３】本発明の他の実施形態による、メモリリマッププロセスのフローチャートである。
【図４】本発明の他の実施形態による、ベクトルリマップテーブルの説明図である。
【図５】本発明の一実施形態による、メモリシステムの概略的ブロック図である。
【図６】本発明の他の実施形態による、メモリシステムの概略的ブロック図である。
【図７】本発明の一実施形態による、コンピュータシステムおよびメモリ装置の概略的ブロック図である。
【発明を実施するための形態】
【００１１】
図1は、一実施形態による、メモリ構成の概略図である。メモリ装置１００を、メインメモリ１１０とスペアメモリ１２０とに分割する。メモリ装置１００は、数例を挙げるなら、ＮＡＮＤまたはＮＯＲフラッシュメモリ、ＳＲＡＭ、ＤＲＡＭ、もしくはＰＣＭなどから構成する。メモリ装置１００は、互いに隣接する、しないに係わらず、また単独装置内に存在する、しないに係わらず、このようなメインおよびスペアメモリ部分、および／または１つ以上の他のメモリ部分を含む、ユーザがアドレス指定可能なメモリ空間から構成される。メインメモリ１１０およびスペアメモリ１２０は、例えば、読み出し、書き込みおよび／または消去のプロセスによってアクセスできる独立したアドレス指定可能な空間により構成される。
【００１２】
一実施例によると、メモリ装置１００の１つ以上の部分は、メモリ装置１００の特別な状態で表現されるデータおよび／または情報を表す信号を記憶する。例えば、データおよび／または情報を表す電子信号は、メモリ装置の一部に「記憶」し、この記憶は、データおよび／または情報を二進法（１と０など）で表すようにメモリ装置１００のその部分の状態に作用する、もしくは状態を変更することで行う。従って、特別な実施例において、データおよび／または情報を表す信号を記憶するメモリの一部におけるこのような状態変更は、メモリ装置１００の異なる状態もしくは異なるものへの変換を構成する。
【００１３】
メモリ装置１００は、初期的にメモリ装置１００の完全に使用可能な容量と一致するメインメモリ１１０から構成する。このような初期構成は、メモリ装置の容量決定に含む必要のないスペアメモリ１２０を付加的に設ける。しかし、メインメモリの一部が、例えば読み出し／書き込みプロセス中に使用不能もしくは過剰な数のエラーを生ずるようになった場合、メインメモリ１１０の一部を置換するためにスペアメモリ１２０を使用する。もちろん、このようなメモリ装置の構成の詳細は単なる一例であり、特許請求の範囲の要旨を限定するものではない。
【００１４】
図２は、一実施形態による、メモリ読み出しプロセス２００のフローチャートである。ブロック２０５において、メモリ装置の一部に記憶された情報を表す信号の読み出しプロセスの開始は、例えば、記憶されたデータを読み出すべき１つ以上のメモリ位置のそれぞれを識別する１つ以上の読み出しアドレスを提供するシステムアプリケーションによって、開始する。ブロック２１０において、１つ以上のそのような読み出しアドレスを、例えばＣＡＭに供給し、このＣＡＭで供給された読み出しアドレスに対応するリマップしたリマップアドレスの候補をサーチする。ある実施例では、ＣＡＭは元アドレスを対応するリマップアドレスに関連付けたデータベースおよび／またはテーブルを記憶する。従って、このようなＣＡＭをサーチすることで、ブロック２３０において、入来する元の読み出しアドレスがＣＡＭ内の対応リマップアドレスに関連付けられているか否かを決定する。もし関連付けられておらず、特定の元の読み出しアドレスに関連付けられたリマップアドレスが否定的な結果を返した場合、読み出しプロセス２００はブロック２４０に進み、元の読み出しアドレスを出力する。その結果、ブロック２５０において、元の読み出しアドレスを使用して、メモリ装置からの読み出しを行う。その後、ブロック２６０で、メモリ装置の元の読み出しアドレスから読み出されたデータを、エラーチェックハードウエアおよび／またはソフトウエア、例えばＥＣＣデコーダおよび／または他の誤り補正アルゴリズムに供給する。
【００１５】
一方、ブロック２３０において、受信する元の読み出しアドレスが対応するリマップアドレスを有すると決定された場合、読み出しプロセス２００はブロック２４５に進み、特定の元読み出しデータに対応するリマップアドレスを伝送する。この結果、ブロック２５５で、リマップ読み出しアドレスを使用してメモリ装置からの読み出しを行う。ある実施例において、メモリ装置のスペア部分は、リマップアドレスが使用される場合は読み出しをすることができるが、このような限定は単なる一例に過ぎない。その後、ブロック２６０において、メモリ装置のリマップしたリマップ読み出しアドレスから読み出されたデータを、エラーチェックハードウエアおよび／またはソフトウエア、例えばＥＣＣデコーダおよび／または他のエラー補正アルゴリズムに供給する。もちろん、そのようなメモリ読み出しプロセスの詳細は単なる一例に過ぎず、特許請求の範囲の発明要旨を限定するものではない。
【００１６】
図３は、一実施例によるメモリ読み出しプロセス３００のフローチャートである。ブロック３０５において、メモリ装置の一部に記憶された情報を表す信号の読み出しプロセスの開始は、例えば、記憶されたデータを表す信号読み出そうとする１つ以上のメモリ位置をそれぞれ識別する１つ以上の読み出しアドレスを提供するシステムアプリケーションによって開始する。例えば読み出しデータをパリティチェックすることによる、ＥＣＣハードウエアおよび／またはソフトウエアを使用して、読み出しデータにおけるエラーをチェックおよび／または補正する。その後、ブロック３１０において、最初に読み出したデータを補正した読み出しデータと比較し、これによりメモリ読み出しプロセスにおいて発生したエラー数を決定する。ある特定の実施例において、このようなエラー数は、ビット誤り率（ＢＥＲ）として表すことができ、このビット誤り率（ＢＥＲ）は、例えば読み出しビットの合計数に対する誤りビットの割合である。ブロック３２０において、メモリ装置の一部からの読み出しによるＢＥＲまたはエラー数は、例えばそれ以上のさらなるエラーはうまく補正できない最高許容ＢＥＲもしくは最高許容エラー数等の値で構成したエラー閾値と比較し、このようなエラー閾値は、例えば図１に示すメモリ装置１００のような特定の記憶装置が許容可能なＢＥＲのほぼ上限値またはエラー数を示す数で構成される。このようなエラー閾値またはそれ以下では、ＥＣＣのハードウエアおよび／またはソフトウエアは、読み出しデータを補正できる。しかし、エラー閾値を越えると、少なくともいくつかの読み出しエラーが補正されない可能性が比較的高くなる。
【００１７】
ブロック３３０では、メモリ装置の一部を退役させるか否かについて、少なくとも部分的にはメモリのそのような一部からの読み出しが過多数のエラーを生ずるか否かにより決定される。もしエラー数がエラー閾値以下である場合、読み出しプロセス３００はブロック３４０に進み、例えば読み出しデータを要求したアプリケーションに読み出しデータを供給する。一方、もしエラー数がエラー閾値を越える場合、読み出しプロセス３００はブロック３５０に進み、例えば、過多数のエラーを引き起こしたメモリの一部分を退去させることを開始する。特定の実施例においては、このようなエラー傾向があるメモリ部分に初期的に記憶されていたデータを、有効および／または正常であることがわかっている他のメモリ部分に移動する。このような新たなメモリ部分は、例えば図１に示すスペアメモリ１２０のようなスペアメモリの一部により構成される。ブロック３６０では、データの元のメモリ位置を識別する１つまたは複数のメモリアドレスを、データを移転する新しいメモリ位置を認識するようリマッピングする。ある実施例において、リマッピングは、例えばベクトルを介して元のアドレスと一致する新しいアドレスを割り当てるステップを有し、このステップにより、元のアドレスの呼び出しが移転されたデータの位置を特定する新しいアドレスにリダイレクトするベクトルことができるようにする。ブロック３７０において、このようなリマップしたリマップアドレスに関する情報をＣＡＭに供給し、このＣＡＭは、以下に詳細に説明するようにこのような情報をベクトルリマップテーブルに保持する。メモリのエラー傾向がある部分のリマッピング後、読み出しプロセス３００はブロック３４０に進み、例えば、読み出しデータを要求したアプリケーションに読み出しデータを供給する。もちろん、このような読み出しプロセスは単なる一例でしかなく、特許請求の範囲の要旨を限定するものではない。
【００１８】
図４は、一実施形態による、ベクトルリマップテーブル４００の説明図である。他の実施例において、テーブル４００に含まれる情報は、テーブルにフォーマットする必要がなく、このような情報は、例えば情報を整理する項目列または他の手段で構成する。このような情報は信号として、例えばＣＡＭに記憶する。項目列４１０は、アドレス１、アドレス２、アドレス３などの元アドレス４４０のリストで構成し、状態項目列４２０は、項目列４１０にリストされている、対応する元アドレスがリマップされたか否かに関する情報で構成し、項目列４３０は、項目列４１０に記載された元アドレス４４０と対応する、アドレス１′、アドレス２′、アドレス３′等、リマップしたリマップアドレス４５０のリストで構成する。
【００１９】
ある実施例において、元アドレス４４０は、アプリケーションおよび／または1つ以上のアドレス位置でメモリ装置１００に記憶された情報を要求するシステムによる読み出しリクエストに含まれる１つ以上のアドレスで構成される。状態項目列４２０は、元アドレス４４０がリマップされたか否かを表すメタデータで構成する。このようなリマッピングが行われた場合、項目列４３０は元アドレス４４０に対応するリマップアドレス４５０で構成する。図1に示す例を説明すると、アドレス１、アドレス５、アドレス７およびアドレス８は、それぞれアドレス１′、アドレス５′、アドレス７′およびアドレス８′にリマップされており、アドレス２、アドレス３、アドレス４およびアドレス６はリマップされていない。ここで、リマップされていない元アドレスは、対応するリマップアドレスを項目列４３０に持たない。他の実施例においては、例えば、リマップアドレス４５０の存在が特定の元アドレス４４０のリマッピングが行われたことを充分に示すため、状態項目列４２０がテーブル４００に含ませる必要がない。もちろん、ベクトルリマップテーブルのこのような詳細およびリマップ情報の記憶形式は単なる例でしかなく、特許請求の範囲の要旨を限定するものではない。
【００２０】
図５は、一実施形態による、メモリシステム５００のブロック図である。コントローラ５１０は、データが読み出されるメモリ装置５２５の位置を特定するアドレスを含む読み出しリクエスト５０５を示す１つ以上の信号を受け取るよう構成する。メモリ装置５２５は、例えば上述のように、メインメモリ５２０およびスペアメモ５３０により構成する。読み出しリクエストを伴う入来するアドレスはＣＡＭ５１５を通過し、このＣＡＭ５１５において、このようなアドレスは、ＣＡＭ５１５に記憶された内容（コンテンツ）と比較され、これら内容（コンテンツ）は、元アドレスと関連付けられたリマップアドレスを有する。ある特定の実施例において、リマッピングプロセスは、システムレベルでユーザによって生成された特別な命令および／または信号なしで生じ、これにより、読み出しリクエストを伴う入来するアドレスが常に元アドレスから構成され、このようなアドレスはＣＡＭのサーチ後にのみ、関連するリマップアドレスに関連付けすることができる。換言すれば、ＣＡＭ５１５は、元アドレス空間をリマップアドレス空間に変換する。このようにして、コントローラ５１０は、読み出しリクエスト５０５がリマップされたアドレスを含むか否かを決定する。この決定に従って、コントローラ５１０は読み出しリクエスト５０５をメインメモリ５２０またはスペアメモリ５３０に命令してデータを読み出す。例えば、読み出しリクエスト５０５のアドレスがリマップされていない場合、コントローラ５１０は読み出しリクエストをメインメモリ５２０に転送し、一方、アドレスがリマッピングされている場合、コントローラ５１０は、スペアメモリ５３０に向けられる読み出しリクエスト５０５がリマップされたアドレスから構成されるよう変更する。その後、メインメモリ５２０または５３０は読み出しデータ５３５を、例えばエラーカウンタおよび／またはＥＣＣデコーダから構成されるエラー検出ブロック５４０に提供する。一実施例において、ＥＣＣデコーダから構成されるエラー検出ブロック５４０は、メモリ装置５２５のダイ素子内に配置する。他の実施例では、ＥＣＣデコーダから構成されるエラー検出ブロック５４０は、例えば、アプリケーション内のようなシステムレベルに配置する。エラー検出ブロック５４０は、読み出しデータ５３５に存在するいかなるエラーも検出および／または補正することができ、検出されたエラーをＢＥＲおよび／またはビット誤り数として表す。従って、エラー検出ブロック５４０は、アプリケーションおよび／またはホストシステムのような、読み出しリクエスト５０５を発生させる構成要素に、補正された読み出しデータ５４５を提供することができる。エラー検出ブロック５４０はまた、読み出しデータ５３５に存在するエラーの数に関する情報を、比較エンジン５５０に提供する。エラー検出ブロック５４０をメモリ装置５２５のダイ素子内に配置したＥＣＣデコーダで構成する場合、このようなエラー情報は、システムレベルの比較エンジンアプリケーションによりアクセス可能である。ある実施において、たとえば、ＥＣＣデコーダは、検出されたエラー数とエラー閾値とを比較する比較エンジン５５０がアクセスできるエラー情報レジスタを含む。
【００２１】
上述のように、このようなエラー閾値は最大限許容可能なＢＥＲまたはエラー数値で構成する。比較エンジン５５０は、このような比較の結果５６０をコントローラ５１０に提供する。少なくとも部分的にはこの比較結果に基づいて、コントローラ５１０はメモリ装置５２５の特定部分を退役させるか否かを決定する。この比較が、メモリ装置５２５の特定部分が例えば読み出しプロセス中に過多数のビット誤りを引き起こしたことを示す場合、コントローラ５１０はメモリのエラー傾向がある部分を退役させるプロセスを開始する。この退役プロセスは、メモリの退役部分に記憶されたデータをメモリの他の部分へ移転するステップを有する。例えば、データはメインメモリ５２０の特定部分からスペアメモリ５３０に移動される。従って、コントローラ５１０はメモリの退役部分を認識するアドレスを、移転されたデータを含むメモリの新たな部分を識別するアドレスに変更する。このような変更したリマップアドレスを、つぎにＣＡＭ５１５に書き込み、このＣＡＭ５１５において上述のように元アドレスと関連付けすることができる。このメモリ退役プロセスは、例えば読み出しリクエスト５０５を発生するアプリケーションおよび／またはホストシステムに関してシームレスに起こる。もちろん、メモリシステムのこのような実施例は単なる一例でしかなく、特許請求の範囲の要旨を限定するものではない。
【００２２】
図６は、本発明の一実施形態によるメモリシステム６００のブロック図である。ユーザーアプリケーション６１０は、読み出しリクエストをドライバ６４０に供給するよう構成する。ある実施例において、ユーザーアプリケーション６１０、ＣＡＭ６２５、および／またはドライバ６４０は、命令のようなソフトウエアから構成することができ、これら命令は、例えば以下に説明するような１つ以上のプロセスを実施する１つ以上の専用プロセッサによって実行することができる。一方、記憶装置６５０はハードウエアで構成することができるが、特許請求の範囲の要旨をこれに限定するものではない。
【００２３】
一実施形態において、ユーザーアプリケーション６１０は元の読み出しアドレスをＣＡＭ６２５に供給し、このＣＡＭ６２５は、例えば、元読み出しアドレスのリスト有するセクター６２０、および対応するリマップ読み出しアドレスのリストを有するセクター６３０から構成される。従って、ＣＡＭ６２５は、少なくとも部分的には特定の読み出しアドレスがリマップされたか否かに基づいて、元読み出しアドレスまたはリマップ読み出しアドレスを有する読み出しリクエストを出力する。つぎに、ドライバ６４０は、このようなアドレスをＰＣＭ記憶装置６５０に供給し、このＰＣＭ記憶装置６５０におけるデータの読み出し位置を特定しながら供給する。ＰＣＭ記憶装置６５０は、例えば、上述のようにメインＰＣＭダイ６６０およびスペアＰＣＭダイ６７０を有する。ＰＣＭ記憶装置６５０のいずれの部分も、少なくとも部分的には、例えばドライバ６４０から供給されたアドレスに基づいて読み出される。
【００２４】
その後、メインＰＣＭダイ６６０またはスペアＰＣＭダイ６７０のいずれかは、読み出しデータをＥＣＣエンジン６８０に供給し、このＥＣＣエンジン６８０は、例えばエラーカウンタおよび／またはＥＣＣデコーダを有する。ある実施形態において、ＥＣＣエンジン６８０はＰＣＭ記憶装置６５０のダイ素子内に配置する。ＥＣＣエンジン６８０は、読み出しデータに存在するいかなるエラーも検出および／または補正し、このような検出されたエラーを、例えば、符号語毎および／またはアクセスされたデータ塊毎のＢＥＲおよび／またはビット誤り数として表す。したがって、ＥＣＣエンジン６８０は補正した読み出しデータをユーザーアプリケーション６１０に供給し、さらに読み出しデータ内に存在するエラー数に関する情報をドライバ６４０に供給する。次に、ドライバ６４０は検出したエラーの数を、例えばユーザーアプリケーション６１０に供給する。少なくとも部分的にはこのようなエラーの数に基づいて、ユーザーアプリケーション６１０は、例えば上述の１つ以上のプロセスを用いて、ＰＣＭ記憶装置６５０の特定部分を退役させるか否かを決定することができる。もちろん、このようなメモリシステムの実施および構成は単なる一例でしかなく、特許請求の範囲の要旨を限定するものではない。
【００２５】
図７は、例えば上述のようにメイン部分およびスペア部分とに分割されるメモリ装置７１０を含むコンピュータシステム７００の実施形態を示す概略図である。コンピュータ装置７０４は、メモリ装置７１０を管理するよう構成することができる任意の装置、機器および／または機械を代表する。メモリ装置７１０は、メモリコントローラ７１５およびメモリ７２２で構成する。限定するものではなく単なる一例として、コンピュータ装置７０４としては、１つ以上のコンピュータ装置および／またはプラットフォーム、例えばデスクトップコンピュータ、ノート型コンピュータ、ワークステーション、サーバー装置等、１つ以上のパーソナルコンピュータまたはコミュニケーション装置または機器、例えばパーソナル・デジタル・アシスタント、移動通信装置等、コンピュータシステムおよび／または関連するサービスプロバイダの能力、例えばデータベースまたはデータ保存サービスプロバイダ／システム等、および／またはこれらの任意の組み合わせがある。
【００２６】
システム７００に示す様々な装置のすべてまたは一部、およびさらにここに表すプロセスや手段が、ハードウエア、ファームウエア、ソフトウエア、またはそれらの任意の組み合わせを使用または含んで実施されることを認識すべきである。従って、限定ではなく単なる一例として、コンピュータ装置７０４はバス７４０およびホストまたはメモリコントローラ７１５を介してメモリ７２２に動作可能に結合される、少なくとも１つの処理ユニット７２０を含む。処理ユニット７２０は、データ計算手順または処理の少なくとも１部を実行するよう構成可能な１つ以上の回路を代表する。限定するものではなく一例として、処理ユニット７２０としては、１つ以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラム可能論理回路、フィールド・プログラマブル・ゲートアレイ等またはこれらの任意の組み合わせがあり得る。処理ユニット７２０は、例えば上述のメモリ分割処理と同様、読み出し、書き込みおよび／または消去などのメモリ関連の操作を処理するメモリコントローラ７１５と通信することができる。処理ユニット７２０としては、メモリコントローラ７１５と通信するよう構成したオペレーティングシステムがあり得る。例えば、このようなオペレーティングシステムは、バス７４０を超えてメモリコントローラ７１５に送られるコマンドを生成する。このようなコマンドは、例えば、メモリ７２２の少なくとも一部を分割し、１つ以上の属性を特定の位置に関連付け、部分的にはプログラムおよび記憶されるデータのタイプに基づいて特定の位置をプログラムするための命令を含む。
【００２７】
メモリ７２２は、任意のデータ記憶装置を代表する。メモリ７２２は、例えば、第１メモリ７２４および／または第２メモリ７２６を含む。特定の実施例において、メモリ７２２は、上述のように、少なくとも部分的には１つ以上のメモリの属性および／またはメモリ管理プロセスに基づいて分割されたメモリで構成することができる。第１メモリ７２４としては、例えばランダム・アクセス・メモリ、リード・オンリー・メモリ等がある。図示の実施例においては、処理ユニット７２０から分離して示しているが、第１メモリ７２４の全てまたは一部を、処理ユニット７２０内に設ける、またはコロケーション／結合することができると理解されたい。
【００２８】
第２メモリ７２６としては、例えば第１メモリと同一または同種のメモリ、および／または、例えばディスクドライブ、光学ディスクドライブ、テープドライブ、固体メモリドライブ等の、１つ以上のデータ記憶装置またはシステムがあり得る。ある実施例において、第２メモリ７２６は、コンピュータ可読媒体７２８を動作可能に受け入れ可能な、もしくは結合するよう構成することができる。コンピュータ可読媒体７２８としては、例えば、システム７００内の１つ以上の装置に対するアクセス可能なデータ、コードおよび／または命令を有する、および／または生成することができる任意の媒体があり得る。
【００２９】
コンピュータ装置７０４としては、例えば、入力／出力装置７３２があり得る。入力／出力装置７３２は、人間および／または機械による入力を受け付けまたはその反対に発生させるよう構成することができる、1つ以上の装置または構成、および／または、人間および／または機械による出力を供給またはその反対に提供するよう構成することができる、1つ以上の装置または構成を代表する。限定するものではなく一例として、入力／出力装置５３２としては、動作可能に構成されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポート等があり得る。
【００３０】
上述の詳細な説明において、特許請求の範囲の要旨を完全に理解できるよう、多数の特定の詳細を記載した。しかし、特許請求の範囲の要旨は、これらの特定の詳細無しで実施できることを、当業者であれば理解できるであろう。当業者には、周知の方法、装置またはシステムは、特許請求の範囲の要旨を不明瞭にしないよう、詳細には記載しなかった。
【００３１】
上述の詳細に説明したいくつかの部分は、特定装置のメモリ内もしくは専用コンピュータ装置またはプラットフォーム内に記憶されたバイナリデジタル信号の操作のアルゴリズムまたは象徴的な表現として提示されている。この特定の明細書内の文脈において、特定装置等の用語は、プログラムソフトウエアからの命令に従って特定の操作を行うよう一度プログラムされれば、汎用コンピュータを含む。アルゴリズムに関する記述または象徴的表現は、信号処理またはそれに関連する技術における当業者によって、彼らがその研究内容を他の当業者に伝えるために使用する技術の例である。ここでは、そして一般的には、アルゴリズムは、所望の結果をもたらす操作または同様の信号処理の自己一貫性を有するシーケンスであると考えられる。この文脈において、操作または処理は物理的な量の物理的操作を含む。必ずしもそうであるとは限らないが、通常そのような量は、記憶、移動、連結または他の操作が可能な電気的または磁気的信号の形式を取る。主に一般使用の理由で、このような信号は、ビット、データ、値、要素、シンボル、文字、用語、数字、数詞等と呼ぶことが便利であることが時々証明されている。しかし、これらの全てまたは類似用語は適切な物理的量に関連付けられ、単に便利なラベルであるにすぎないことを理解されたい。以下の説明から明らかなように、特に明記しない限り、本明細書の考察を通して使用されている用語「処理」、「計算」、「演算」、「決定」等は、専用コンピュータまたは類似の専用電子コンピュータ装置等における特定装置の作用または処理を示す。従って、本明細書の文脈において、専用コンピュータまたは類似の専用電子コンピュータ装置は、専用コンピュータまたは類似の専用電子コンピュータ装置のメモリ、レジスタ、または他の情報記憶装置、送信装置またはディスプレイ装置内における物理電子的量または物理磁気的量として一般的に代表される信号を操作または変換できる。
【００３２】
本明細書で使用される「および」、「および／または」、「または」という用語は、少なくとも部分的にはそれが使用される文脈によって、様々な意味を含む。一般的には、「または」と同様に「および／または」は、Ａ, ＢまたはＣ、のような羅列を関連付けるために用いられた場合、ここではＡ, ＢまたはＣを意味する排他的意味と同様に、Ａ, ＢおよびＣを意味する両立的な意味が意図される。本明細書にわたる「一実施形態」または「実施形態」という言及は、実施例に関連して表された特定の特徴、構造、または特性が、特許請求の範囲における要旨の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書の様々な個所において出現する表現「一実施形態」または「実施形態」の全てが同じ実施形態を示している訳ではない。さらに、特定の特徴、構造、または特性を、１つ以上の実施形態において組み合わせることも可能である。ここで説明する実施形態としては、デジタル信号を用いて作動するマシン、デバイス、エンジン、または装置があり得る。このような信号は、電子信号、光学信号、電磁的信号、または位置間で情報を提供する任意の形式のエネルギーがある。
【００３３】
実施形態と現在考えられるものを図示および説明したが、特許請求の範囲の要旨から逸脱することなく様々な変更を行うことや均等物による代替が可能であることは、当業者であれば理解できるであろう。加えて、本明細書に記載した主要概念から逸脱せずに特定の状況を特許請求の範囲における要旨の教示に適応するよう様々な変更を行うことも可能である。従って、特許請求の範囲の要旨は、開示された特定の実施形態に限定されず、添付の特許請求の範囲内にある全ての実施形態およびその均等物を含むことを意図する。
【図１】
2011023099.tif 000003
【図２】
2011023099.tif 000004
【図３】
2011023099.tif 000005
【図４】
2011023099.tif 000006
【図５】
2011023099.tif 000007
【図６】
2011023099.tif 000008
【図７】
2011023099.tif 000009
【外国語明細書】
2011023099000001.pdf