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