(57)【要約】  メモリモジュールは、不揮発性セルアレイとリマッパとを備える。ページマップテーブルは、不揮発性セルアレイに記憶され、古いページアドレスの新しいページアドレスへのマッピングを含む。リマッパは、古いページアドレスを参照するメモリ動作の対象を古いページアドレスがマッピングされる新しいページアドレスに定めるように構成される。マッピングは、メモリセルが故障状態であると判定されたときに作成される。
2016540288.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出するステップであって、前記ページは、ページアドレスを有しかつ前記メモリセルを含む、検出するステップと、
前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記不揮発性メモリ内のテーブルに記憶するステップと、
検出された誤りの前記累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定めるステップとを含む方法。
【請求項２】
メモリ動作の対象を定める前記ステップは、
前記不揮発性メモリ内のリマッパを、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成するステップをさらに含む、請求項1に記載の方法。
【請求項３】
訂正されたページを提供するために前記ページを訂正するステップと、
前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行するステップであって、前記書込み動作が前記ページアドレスを参照するステップとをさらに含む、請求項2に記載の方法。
【請求項４】
前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項2に記載の方法。
【請求項５】
前記ページマップテーブルをシステムメモリに記憶するステップと、
前記記憶されたページマップテーブルに基づいてリマッパを構成するステップであって、前記リマッパは、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるステップとをさらに含む、請求項4に記載の方法。
【請求項６】
前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項1に記載の方法。
【請求項７】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されたときに、システムに、
不揮発性メモリにページマップテーブルを記憶するステップであって、前記ページマップテーブルは、各エントリが第1のフィールドおよび第2のフィールドを有するエントリのセットを有するステップと、
前記ページマップテーブルに基づいて前記不揮発性メモリ内のリマッパを構成するステップであって、前記リマッパは、前記ページマップテーブル内のエントリにおける前記第1のフィールドに一致するページアドレスを参照するメモリ動作の対象を前記エントリにおける前記第2のフィールドに一致するページアドレスに定めるステップとを含む方法を実行させる非一時的コンピュータ可読記憶媒体。
【請求項８】
前記記憶するステップは、
前記不揮発性メモリ内のページに対して実行される読取り動作に基づいて前記不揮発性メモリ内のメモリセルにおける誤りを検出するステップであって、前記ページは、古いページアドレスを有しかつ前記メモリセルを含む、ステップと、
前記ページマップテーブルに新しいエントリを記憶するステップであって、前記新しいエントリの前記第1のフィールドは、前記古いページアドレスに一致する値を有し、前記新しいエントリの前記第2のフィールドは、新しいページアドレスに一致する値を有する、ステップとをさらに含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
【請求項９】
前記方法は、
エントリのセットを有する誤り状態テーブルを前記不揮発性メモリに記憶するステップであって、前記誤り状態テーブル内の各エントリは、メモリセル位置を示す第1のフィールドと、前記メモリセル位置に関連する検出された誤りの累積数を示す第2のフィールドとを有する、ステップをさらに含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記ページマップテーブルに前記新しいエントリを記憶する前記ステップは、前記誤り状態テーブル内のエントリの前記第2のフィールドが所定のしきい値を超える値を有し、前記誤り状態テーブル内の前記エントリの前記第1のフィールドが前記メモリセルに関するメモリ位置を示す場合にのみ実行される、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記方法は、
前記ページの訂正されたバージョンの記憶動作を実行するステップであって、前記記憶動作は、前記古いページアドレスを参照するステップをさらに含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
不揮発性(NV)セルアレイと、
メモリであって、
前記NVセルアレイに結合される誤り訂正符号(ECC)回路と、
ページアドレスをマッピングするリマッパと、
を備えるメモリと、
前記メモリに結合されるプロセッサとを備え、前記プロセッサが、前記不揮発性メモリ内のページに関する読取り動作を実行したときに、前記ECC回路が前記NVセルアレイのメモリセルにおける誤りを検出したことに応答して、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記NVセル内のテーブルに記憶し、前記ページは、前記メモリセルを含みかつページアドレスを有し、前記プロセッサは、前記リマッパを、検出された誤りの累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記NVセルアレイへのメモリ動作の対象を前記NVセルアレイ内の新しいページアドレスに定めるように構成する、装置。
【請求項１３】
前記ECC回路は、訂正されたページを提供するために前記ページを訂正し、
前記プロセッサは、前記訂正されたページを前記NVセルアレイに書き込むメモリ書込み動作を実行し、前記書込み動作は前記ページアドレスを参照する、請求項12に記載の装置。
【請求項１４】
前記プロセッサは、前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項13に記載の装置。
【請求項１５】
前記プロセッサに結合されるシステムメモリをさらに備え、前記プロセッサは、前記ページマップテーブルをシステムメモリに記憶し、前記プロセッサは、前記リマッパが前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように前記記憶されたページマップテーブルに基づいて前記リマッパを構成する、請求項14に記載の装置。
【請求項１６】
前記プロセッサは、前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項12に記載の装置。
【請求項１７】
前記不揮発性メモリおよび前記プロセッサは、セルラーフォン、コンピュータ、および基地局からなるグループから選択されるデバイス内に存在する、請求項12に記載の装置。
【請求項１８】
プロセッサと、
前記プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出する誤り検出のための手段であって、前記ページは、ページアドレスを有しかつ前記メモリセルを含む、誤り検出のための手段と、
記憶のための手段であって、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記不揮発性メモリ内のテーブルに記憶する手段と、
リマッピングのための手段であって、検出された誤りの累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定める手段とを備える装置。
【請求項１９】
前記プロセッサは前記リマッピングのための手段を、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成する、請求項18に記載の装置。
【請求項２０】
前記誤り検出のための前記手段は、訂正されたページを提供するために前記ページを訂正し、
前記プロセッサは、前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行し、前記書込み動作は前記ページアドレスを参照する、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリに関する。
【背景技術】
【０００２】
不揮発性(NV)ランダムアクセスメモリ(RAM)は、多くの用途において従来のダイナミックランダムアクセスメモリ(DRAM)に置き換わることが期待されている。NV RAMは、スピン式、磁気式、およびそれ以外の形態の相変化メモリセルまたは構造変化メモリセルを利用する場合がある。
【０００３】
NV RAMが直面する1つの問題は、耐久性が有限であることに起因するセルの故障である。プログラミング動作が繰り返される間メモリセルの相または構造を変化させる物理的ストレスが経時的に作用することによって、読取り動作を実行する際、検知される電圧レベルまたは電流レベルが低下する場合があり、それによって読取り誤りが生じることがある。メモリセルの集合に関する耐久性の分布は、正規分布によって表される場合があり、集合中のいくつかのメモリセルには他のメモリセルよりも早く故障することがある。
【０００４】
NV RAMに関連して誤り訂正符号(ECC)が使用される場合があるが、コスト面の理由で、そのような符号は通常、生の(訂正されていない)ビット誤りはメモリセルが消耗し始めたときに生じるランダムイベントであるという仮定に基づいて補正された誤り率を保証するように設計される。したがって、特定のメモリセルがその耐久性の限界に達し、故障し始めた後、そのセルは、故障し続けることによってECC回路の誤り訂正機能に負荷を与える。この現象は、累積誤差として知られており、もはやランダムイベントとしてはモデル化されていない。
【０００５】
1つの解決策は、累積誤差を訂正するようにECC回路を設計することであるが、これによってより多くのチェックビットが必要になるので望ましくない場合がある。別の解決策は、NV RAM内の故障したセルを使用されないように単にマーク付けすることである。そのような手法は、NANDフラッシュメモリにおいて使用される。しかし、この手法は、不良セルが存在するあらゆる箇所に穴を形成するものであり、RAMの動作速度に起因し、かつRAMメモリが物理的に連続する必要があることに起因して、この手法は、本質的にランダムアクセスではない比較的低速のメモリにしか適さない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、不揮発性RAM誤りリマッピングのためのシステムおよび方法を対象とする。
【課題を解決するための手段】
【０００７】
一実施形態では、方法は、プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行するときに不揮発性メモリのメモリセルにおける誤りを検出するステップであって、ページが、ページアドレスを有し、かつメモリセルを含むステップと、メモリセルのメモリ位置およびメモリセルに関する検出された誤りの累積数を有するエントリを不揮発性メモリ内のテーブルに記憶するステップと、検出された誤りの累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定めるステップとを含む。
【０００８】
別の特定の実施形態では、装置は、プロセッサとメモリとを含む。メモリは、不揮発性(NV)セルアレイと、NVセルアレイに結合される誤り訂正符号(ECC)回路と、ページアドレスをマッピングするためのリマッパとを備える。プロセッサは、メモリに結合され、プロセッサは、プロセッサが不揮発性メモリ内のページに関する読取り動作を実行したときにECC回路がNVセルアレイのメモリセルにおける誤りを検出したことに応答して、メモリセルのメモリ位置およびメモリセルに関する検出された誤りの累積数を有するエントリをNVセル内のテーブルに記憶し、ページは、メモリセルを含みかつページアドレスを有する。プロセッサは、検出された誤りの累積数が所定のしきい値を超えた場合に、ページアドレスを参照するNVセルアレイへのメモリ動作の対象をNVセルアレイ内の新しいページアドレスに定めるようにリマッパを構成する。
【０００９】
別の実施形態では、命令を記憶した非一時的コンピュータ可読記憶媒体であって、命令は、少なくとも1つのプロセッサによって実行されたときに、システムに、不揮発性メモリにページマップテーブルを記憶するステップであって、ページマップテーブルがエントリのセットを有し、各エントリが、第1のフィールドおよび第2のフィールドを有するステップと、ページマップテーブルに基づいて不揮発性メモリ内にリマッパを構成するステップであって、リマッパが、ページマップテーブル内のエントリにおける第1のフィールドに一致するページアドレスを参照するメモリ動作の対象をエントリにおける第2のフィールドに一致するページアドレスに定めるステップとを実行させる、非一時的コンピュータ可読記憶媒体が提供される。
【００１０】
別の実施形態では、装置は、プロセッサと、誤り検出のための手段であって、プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行するときに不揮発性メモリのメモリセルにおける誤りを検出し、ページが、ページアドレスを有し、かつメモリセルを含む、誤り検出のための手段と、メモリセルのメモリ位置およびメモリセルに関する検出された誤りの累積数を有するエントリを不揮発性メモリ内のテーブルに記憶する記憶のための手段と、リマッピングのための手段であって、検出された誤りの累積数が所定のしきい値を超えた場合に、ページアドレスを参照する不揮発性メモリへのメモリ動作の対象を不揮発性メモリ内の新しいページアドレスに定める手段とを備える。
【００１１】
添付の図面は、本発明の実施形態の説明を助けるために提示されており、実施形態を限定するためではなく、実施形態を例示するためにのみ与えられている。
【図面の簡単な説明】
【００１２】
【図１】一実施形態が適用されるシステムを示す図である。
【図２】一実施形態によるプロセスを示す流れ図である。
【図３】一実施形態によるページアドレスのマッピングを示す図である。
【図４】一実施形態によるリマッパを示す図である。
【図５】実施形態が適用されるワイヤレス通信システムを示す図である。
【発明を実施するための形態】
【００１３】
本発明の態様は、本発明の特定の実施形態を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替の実施形態を考案してもよい。加えて、本発明の関連する詳細を曖昧にしないように、本発明の周知の要素については詳細に説明せず、またはそのような要素を省略する。
【００１４】
「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
【００１５】
本明細書において使用される用語は、特定の実施形態を説明することのみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書において使用されるときに、単数形“a”、“an”、および“the”は、文によって別段に明確に指示されない限り、複数形をも含むものとする。さらに、本明細書で使用する「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことを理解されよう。
【００１６】
さらに、多くの実施形態については、たとえばコンピューティングデバイスの要素によって実行されるべき一連の動作に関して説明する。特定の回路(たとえば、特定用途向け集積回路(ASIC))、プログラム命令を実行する1つまたは複数のプロセッサ、または両方の組合せが、本明細書において説明する種々の動作を実行する場合があることが認識されよう。さらに、本明細書で説明する一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で完全に具現化されるものと見なすことができる。したがって、本発明の様々な態様は、請求する主題の範囲内にすべて入ることが企図されているいくつかの異なる形式で具現化されてもよい。加えて、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形式について、本明細書では、たとえば、説明された動作を実行する「ように構成される論理」として説明する場合がある。
【００１７】
図1は、一実施形態が適用されるシステム100を示す図である。システム100は、メモリモジュール102とサブシステム104とを備える。サブシステム104は、システムオンチップであってもよく、あるいは複数のチップおよび相互配線を備えてもよい。メモリモジュール102は、NVセルアレイ106と、ECC回路108と、リマッパ110とを備える。NVセルアレイ106は、複数のメモリセルを備え、この場合、メモリセル130は簡略表現である。NVセルアレイ106、ECC回路108、およびリマッパ110は、1つまたは複数のチップ上で実現されてもよい。ECC回路108は、アレイバス112を介してNVセルアレイ106に結合される。
【００１８】
サブシステム104は、プロセッサ114(たとえば、中央演算処理装置またはアプリケーションプロセッサ)と、スタティックランダムアクセスメモリ(SRAM)116と、読取り専用メモリ(ROM)118と、RAMコントローラ120と、メモリストレージコントローラ122とを備える。これらの構成要素は、システムバス122を介して通信する。サブシステム104は、これよりも多くの構成要素を備えてもよく、これらの構成要素のうちのいくつかまたはすべてが1つまたは複数のチップ上に集積されてもよい。メモリストレージコントローラ122は、たとえば、フラッシュメモリ126などの、他の種類のストレージとの通信を可能にする。RAMコントローラ120は、RAMバス128を介してメモリモジュール102との間でインターフェース信号を伝送する。
【００１９】
一実施形態では、メモリセルが故障すると、誤りが訂正され、故障したメモリセルに関連するページが新しいページに再書き込みされる。古いページは、もはや使用されず、古いページの参照は新しいページにリマッピングされる。たとえば、メモリセル130は、ページ132に含まれるように概略的に示されている。メモリセル130が故障状態であることが検出された場合、ページ132が新しいページ、たとえばページ134にリマッピングされる。このプロセスについて以下に説明するが、便宜上、実施形態の説明では、故障したメモリセルを含むページを古いページと呼び、古いページがマッピングされるページを新しいページと呼ぶ。
【００２０】
プロセッサ114がページを取り込むためにNVセルアレイ106に対して読取り動作を実行し、メモリセルにおいてビット誤りが検出されると、ECC回路108は、プロセッサ114が正しいビット値を利用できるように誤りを訂正し、メモリセル位置を示す誤り状態をNVセルアレイ106に記憶する。誤り状態は、そのメモリセルに関して誤りが検出された累積回数を含んでもよい。図1において、誤り状態は、誤り状態テーブル138内のエントリ136として示され、誤り状態エントリ136に関連するメモリセルの位置(物理アドレス)を識別するためのフィールド142と、メモリセルに関する検出された誤りの累積数を記憶するためのフィールド144とを含む。
【００２１】
プロセッサ114は、外部ホストプロセッサと見なされる場合があり、メモリセルが故障状態であるかどうか、すなわち、メモリセルが故障している(不良である)と宣言すべきであるかどうかを判定するために誤り状態テーブルを読み取る。プロセッサ114は、周期的にまたはアルゴリズムに従って誤り状態テーブル138をチェックしてもよく、あるいは読取り動作が実行されたときに必ず誤り状態テーブル138をチェックしてもよい。
【００２２】
誤り状態テーブル138の誤り状態エントリ136に示されたメモリセルは、フィールド144内の検出された誤りの累積数がある所定のしきい値を超えた場合に不良であると宣言してもよい。メモリセルが故障状態であると宣言された後、そのメモリセルが故障状態であると宣言されたことを反映するように誤り状態テーブル138内のそのメモリセルに関連する誤り状態エントリが更新されてもよく、あるいはメモリセルの誤り状態エントリが削除または無視されてもよい。
【００２３】
メモリセルが不良であると宣言されたときに、プロセッサ114は、以前の読取り動作に起因してメモリセルに関連するページをすでにローカルシステムメモリ(たとえば、SRAM 116)内に有する場合があり、あるいはそうでない場合、ページをローカルシステムメモリに導入するために読取り動作を実行する場合がある。いずれの場合も、ECC回路108は、不良であると宣言されたメモリセルに関するビット誤りを訂正している可能性があり、プロセッサ114は、取り込まれたページの正しいコンテンツをプロセッサ114のローカルメモリ内に有することになる。
【００２４】
さらに、メモリセルが不良であると宣言されると、プロセッサ114は、不良なメモリセルを含むページのアドレスの将来の参照が新しいページのアドレスに透過的に向けられるようにリマッパ110を構成(プログラム)する。リマッパ110が構成(プログラム)された後、プロセッサ114は次いで、そのシステムメモリ内にある古いページの訂正済みバージョンによって書込み動作を実行する。次に、古いページの訂正済みコンテンツが、プロセッサ114に対して完全に透過的な方法で新しいページに書き込まれる。古いページは使用不能状態でリマッピングされており、古いページのアドレスを参照する将来のメモリ動作の対象を新しいページのアドレスに定める。
【００２５】
プロセッサ114はまた、上述のマッピング情報によってページマップテーブル140を更新する。ページマップテーブル140は、2つのページアドレス用のフィールド、フィールド148および150を含む、エントリ146などのエントリを備える。フィールド148は、古いページのアドレスを記憶し、フィールド150は新しいページのアドレスを記憶する。この2つのアドレス間の対応(関連)がエントリ146に記憶されるマッピングを定める。
【００２６】
いくつかの実施形態では、電源投入時に、メモリモジュール102内のシーケンサ147が、ページマップテーブル140のコンテンツを取り込み、コンテンツをリマッパ110に記憶することによって、テーブルコピーを実行する。シーケンサ147は、ソフトウェアまたはファームウェアの制御下で動作してもよく、あるいは配線接続されてもよい。ページマップテーブル140のフィールド148および150の構成は、後でより詳しく説明する、図4に示すリマッパ110のレジスタファイル406i_page_addrおよびp_page_addrと同じであってもよい。これによって、シーケンサ147が単純なハードウェアシーケンサであるテーブルコピーを実行することができる。このようにして、故障したメモリセルを含むすべてのページが電源投入後に使用不能状態でマッピングされる。テーブルコピーは、所定の時間制限内に実行され、その後、プロセッサ114およびSOC 104内の他の構成要素はこのメモリモジュール102を利用することができる。
【００２７】
別の実施形態では、プロセッサ114は、ROM 118、SRAM 116、またはその両方に記憶されたブートソフトウェアがフラッシュメモリ126から取り込まれた後ブートソフトウェアを実行する。プロセッサ114は、ブートソフトウェアを実行する際に、ページマップテーブル140からリマッパ110へのテーブルコピーを実行する。そのような実施形態では、シーケンサ147は必要とされない。
【００２８】
マッピング情報がページマップテーブル140に記憶された状態で、ページマップテーブル140がNVセルアレイ106に記憶されている場合、上述のようなテーブルコピーによって、メモリモジュール102を様々なデバイス間で容易に移動させるかまたは共有することができるようにメモリモジュール102のポータビリティが可能になる。
【００２９】
図2は、一実施形態による上述のプロセスを示す流れ図である。NVセルアレイ106内のメモリセルにおける誤りが検出されると(202)、ECC回路108は、プロセッサ114が関連するページの正しいコンテンツを有するように誤りを訂正する(204)。ECC回路108は、メモリセルの位置および検出された誤りの累積数を識別する誤り状態エントリを誤り状態テーブル138に記憶する(206)。メモリセルに関する誤り状態エントリが新たに作成された場合、検出された誤りの累積数は単に1である。誤り状態エントリがすでに作成されている場合、検出された誤りのすでに記憶されている累積数が1だけ増分される。
【００３０】
プロセッサ114は、周期的にチェックされる場合がある誤り状態エントリに記憶された情報に基づいて、または読取り動作が実行されるときに、メモリセルが故障状態であると宣言してもよい(208)。プロセッサ114は、故障したメモリセルに関連するページアドレスを新しいページアドレスにマッピングする新しいマッピングによってリマッパ110を構成する(210)。プロセッサ114は、訂正されたページコンテンツをその元のページアドレスに書き込むが、リマッパ110が新しいマッピングによって構成されているので、訂正されたページコンテンツは新しいページアドレスに書き込まれる(212)。プロセッサ114は、NVセルアレイ106内のページマップテーブル140を新しいマッピングによって更新する(214)。
【００３１】
システムがブートアップを実行すると(216)、プロセッサ114は、メモリモジュール102のNVセルアレイ106に記憶されたページマップテーブル140にアクセスし、ページマップテーブル140に記憶されたデータに従ってリマッパ110を構成する(218)。
【００３２】
メモリセル故障を検出し、リマッパ110を新しいマッピングによって構成するための上記で説明した実施形態について、コンシューマによってフィールド内で使用されるシステム100のコンテキスト内で説明する。しかし、上述の動作は製造時点または試験時点で実行されてもよい。たとえば、工場試験装置は、上述と同様に誤りにフラグ付けすることができ、上述のようにページマップテーブル140の更新を実行することができる。
【００３３】
プロセッサ114は、たとえばSRAM 116またはROM 118などのローカルメモリに記憶された命令を実行する際、ボックス208、210、212、214、および218によって表される上述の動作を実行することができる。したがって、SRAM 116およびROM 118は、プロセッサ114によって実行されたときに、ボックス208、210、212、214、および218によって図示し説明した動作を含むプロセスを実行するような命令を記憶するコンピュータ可読媒体の例である。いくつかの実施形態では、ボックス206によって示される動作は、ECC回路108によって実行されてもよく、あるいはプログラム制御下でプロセッサ114によって実行されてもよい。
【００３４】
図3は、リマッパ110によって実施されるページアドレスのマッピングを示す。参照符号302および見出し「中間ページ」によって示された左側の列は、リマッパ110への入力として提供されるページアドレスを表す。参照符号304および見出し「物理ページ」によって示された右側の列は、リマッパ110の出力として提供されるページアドレスを表す。いくつかの実施形態では、アドレスのページアドレスは、アドレスの上位23ビットであってもよい。図3の矢印はマッピングを示し、幅の広い矢印は、各ブロックを連続するページアドレスにマッピングする識別マッピングを表す。個々の参照符号によって示された矢印306、308、310、312、および314はそれぞれ、物理ページ列304内のより上位のアドレスへのページアドレス0、5、15、127、および511のマッピングを表す。したがって、図3によって表される実施形態では、中間ページ列302内のより上位のアドレスは予約済み(reserved)である。
【００３５】
図4は、リマッパ110のより詳細な図を示す。表記を簡潔にするために、図4に示される用語“i_page addr”および“p_page addr”はそれぞれ、中間ページアドレスおよび物理ページアドレスを表す。図4の特定の実施形態では、ページアドレスは23ビットで表される。リマッパ110への入力として提供された中間ページアドレスは、入力された中間ページアドレスを図2に関して上記で説明したプロセスの結果としてリマッパ110において構成されている様々な中間ページアドレスと比較する比較器のバンクに展開される。説明しやすいように、参照符号402および404によって示された比較器の2つのバンクのみが示されているが、実際にはこれよりもかなり多いバンクが存在する。
【００３６】
物理的に単一のレジスタファイルの一部であってもよいレジスタファイル406および408は、マッピングを記憶する。たとえば、レジスタファイル406は、中間ページアドレスおよび中間ページアドレスがマッピングされる物理ページアドレスを記憶し、このマッピングは比較器402に関連付けられる。比較器402は、入力された中間ページアドレスとレジスタファイル406に記憶された中間ページアドレスが一致することを示す場合、一致を示す選択論理に信号を供給する。選択論理は、この一致を示す出力信号をマルチプレクサ414の選択ポート412に供給する。マルチプレクサ414は次いで、比較器402に関連するレジスタファイル406に記憶された、一致を示す物理ページアドレスを出力として提供する。どの比較器バンクも一致を示さない場合、マルチプレクサ414は単に、入力された中間ページアドレスを出力として伝搬させる。図4の特定の実施形態では演算機能もシフト機能も使用されない。
【００３７】
図5は、実施形態が適用されてもよいワイヤレス通信システムを示す。図5は、基地局504A、504B、および504Cを備えるワイヤレス通信ネットワーク502を示す。図5は、参照符号506によって示されており、セルラーフォン(たとえば、スマートフォン)、タブレット、またはコンピュータもしくはコンピュータシステムなどの、セルラー電話ネットワークに適した何らかの他の種類の通信デバイスなどのモバイル通信デバイスであってもよい、通信デバイスを示す。通信デバイス506は、モバイルである必要はない。図5の特定の例では、通信デバイス506は、基地局504Cに関連付けられたセル内に位置する。矢印508および510は、それぞれアップリンクチャネルおよびダウンリンクチャネルを図式的に表しており、そのチャネルによって、通信デバイス506は基地局504Cと通信する。
【００３８】
実施形態は、たとえば、通信デバイス506もしくは基地局504C、またはその両方に関連付けられるデータ処理システムにおいて用いられてもよい。図5は、本明細書において説明される実施形態が利用される場合がある数多くの適用例のうちの1つのみを示す。
【００３９】
情報および信号が、多種多様な異なる技術および技法のいずれかを用いて表される場合があることが当業者には理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００４０】
さらに、本明細書において開示された実施形態に関連して説明した種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップを、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実現してもよいことが当業者には理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、上記では概してそれらの機能に関して説明してきた。そのような機能性がハードウェアとして実現されるか、またはソフトウェアとして実現されるかは、具体的な適用例およびシステム全体に課される設計制約によって決まる。当業者は、説明された機能性を特定の適用例ごとに様々なやり方で実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００４１】
本明細書で開示した実施形態に関して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組合せにおいて直接具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形の記憶媒体中に存在してもよい。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてもよい。
【００４２】
したがって、本発明の実施形態は、不揮発性RAM誤りリマッピングのための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は図示される例には限定されず、本明細書において説明される機能を実行するためのあらゆる手段が、本発明の実施形態に含まれる。
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において種々の変更および修正を加えることができることに留意されたい。本明細書において説明された本発明の実施形態による方法クレームの機能、ステップおよび/または動作は、特定の順序で実施される必要はない。さらに、本発明の要素は、単数形において記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形も考えられる。
【符号の説明】
【００４３】
100  システム
102  メモリモジュール
104  サブシステム
106  NVセルアレイ
108  ECC回路
110  リマッパ
112  アレイバス
114  プロセッサ
116  SRAM
118  ROM
120  メモリストレージコントローラ
122  システムバス
126  フラッシュメモリ
128  RAMバス
130  メモリセル
132  ページ
134  ページ
136  エントリ
138  誤り状態テーブル
140  ページマップテーブル
142  フィールド
144  フィールド
146  エントリ
147  シーケンサ
148  フィールド
302  中間ページ列
304  物理ページ列
306  矢印
402  比較器
406  レジスタファイル
412  選択ポート
414  マルチプレクサ
502  ワイヤレス通信ネットワーク
506  通信デバイス
【図１】
2016540288.tif 000003
【図２】
2016540288.tif 000004
【図３】
2016540288.tif 000005
【図４】
2016540288.tif 000006
【図５】
2016540288.tif 000007
【手続補正書】
【提出日】平成28年5月9日(2016.5.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出するステップであって、前記ページは、ページアドレスを有しかつ前記メモリセルを含む、検出するステップと、
前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記不揮発性メモリ内のテーブルに記憶するステップと、
検出された誤りの前記累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定めるステップとを含む方法。
【請求項２】
メモリ動作の対象を定める前記ステップは、
前記不揮発性メモリ内のリマッパを、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成するステップをさらに含む、請求項1に記載の方法。
【請求項３】
訂正されたページを提供するために前記ページを訂正するステップと、
前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行するステップであって、前記書込み動作が前記ページアドレスを参照するステップとをさらに含む、請求項2に記載の方法。
【請求項４】
前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項2に記載の方法。
【請求項５】
前記ページマップテーブルをシステムメモリに記憶するステップと、
前記記憶されたページマップテーブルに基づいてリマッパを構成するステップであって、前記リマッパは、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるステップとをさらに含む、請求項4に記載の方法。
【請求項６】
前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項1に記載の方法。
【請求項７】
不揮発性(NV)セルアレイと、
メモリであって、
前記NVセルアレイに結合される誤り訂正符号(ECC)回路と、
ページアドレスをマッピングするリマッパと、
を備えるメモリと、
前記メモリに結合されるプロセッサとを備え、前記プロセッサが、前記不揮発性メモリ内のページに関する読取り動作を実行したときに、前記ECC回路が前記NVセルアレイのメモリセルにおける誤りを検出したことに応答して、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記NVセル内のテーブルに記憶し、前記ページは、前記メモリセルを含みかつページアドレスを有し、前記プロセッサは、前記リマッパを、検出された誤りの累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記NVセルアレイへのメモリ動作の対象を前記NVセルアレイ内の新しいページアドレスに定めるように構成する、装置。
【請求項８】
前記ECC回路は、訂正されたページを提供するために前記ページを訂正し、
前記プロセッサは、前記訂正されたページを前記NVセルアレイに書き込むメモリ書込み動作を実行し、前記書込み動作は前記ページアドレスを参照する、請求項7に記載の装置。
【請求項９】
前記プロセッサは、前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項8に記載の装置。
【請求項１０】
前記プロセッサに結合されるシステムメモリをさらに備え、前記プロセッサは、前記ページマップテーブルをシステムメモリに記憶し、前記プロセッサは、前記リマッパが前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように前記記憶されたページマップテーブルに基づいて前記リマッパを構成する、請求項9に記載の装置。
【請求項１１】
前記プロセッサは、前記ページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項7に記載の装置。
【請求項１２】
前記不揮発性メモリおよび前記プロセッサは、セルラーフォン、コンピュータ、および基地局からなるグループから選択されるデバイス内に存在する、請求項7に記載の装置。
【請求項１３】
プロセッサと、
前記プロセッサが不揮発性メモリ内のページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出する誤り検出のための手段であって、前記ページは、ページアドレスを有しかつ前記メモリセルを含む、誤り検出のための手段と、
記憶のための手段であって、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有するエントリを前記不揮発性メモリ内のテーブルに記憶する手段と、
リマッピングのための手段であって、検出された誤りの累積数が所定のしきい値を超えた場合に、前記ページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定める手段とを備える装置。
【請求項１４】
前記プロセッサは前記リマッピングのための手段を、前記ページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成する、請求項13に記載の装置。
【請求項１５】
前記誤り検出のための前記手段は、訂正されたページを提供するために前記ページを訂正し、
前記プロセッサは、前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行し、前記書込み動作は前記ページアドレスを参照する、請求項14に記載の装置。
【手続補正書】
【提出日】平成28年9月7日(2016.9.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサが不揮発性メモリ内の古いページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出するステップであって、前記古いページは、古いページアドレスを有し、かつ前記メモリセルを含む、検出するステップと、
前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有する誤り状態エントリを、前記不揮発性メモリ内の誤り状態テーブルに記憶するステップと、
前記メモリセルに関する検出された誤りの前記累積数が所定のしきい値を超えた場合に、前記古いページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定めるステップとを含む、方法。
【請求項２】
前記メモリ動作の対象を定めるステップは、
前記不揮発性メモリ内のリマッパを、前記古いページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成するステップを含む、請求項1に記載の方法。
【請求項３】
訂正されたページを提供するために前記古いページを訂正するステップと、
前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行するステップであって、前記メモリ書込み動作が前記古いページアドレスを参照する、ステップとをさらに含む、請求項2に記載の方法。
【請求項４】
前記古いページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項2に記載の方法。
【請求項５】
前記プロセッサによってブートアップを実行するステップと、
前記ブートアップ中に、前記プロセッサによって前記記憶されたページマップテーブルに基づいて前記リマッパを構成するステップと
をさらに含む、請求項4に記載の方法。
【請求項６】
前記古いページアドレスおよび前記新しいページアドレスを示すマッピングを前記不揮発性メモリ内のページマップテーブルに記憶するステップをさらに含む、請求項1に記載の方法。
【請求項７】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されたときに、システムに、
不揮発性メモリにページマップテーブルを記憶するステップであって、前記ページマップテーブルは、各ページマップエントリが第1のフィールドおよび第2のフィールドを有するページマップエントリのセットを有する、ステップと、
前記ページマップテーブルに基づいて前記不揮発性メモリ内のリマッパを構成するステップであって、前記リマッパは、前記ページマップテーブル内のページマップエントリにおける前記第1のフィールドに一致するページアドレスを参照するメモリ動作の対象を、前記ページマップエントリにおける前記第2のフィールドに一致するページアドレスに定める、ステップと
を含む方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項８】
前記不揮発性メモリに記憶するステップは、
前記不揮発性メモリ内の古いページに対して実行される読取り動作に基づいて、前記不揮発性メモリ内のメモリセルにおける誤りを検出するステップであって、前記ページは、古いページアドレスを有し、かつ前記メモリセルを含む、ステップと、
前記ページマップテーブルに新しいページマップエントリを記憶するステップであって、前記新しいページマップエントリの前記第1のフィールドは、前記古いページアドレスに一致する値を有し、前記新しいページマップエントリの前記第2のフィールドは、新しいページアドレスに一致する値を有する、ステップと
をさらに含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
【請求項９】
前記方法は、
誤り状態エントリのセットを有する誤り状態テーブルを前記不揮発性メモリに記憶するステップであって、前記誤り状態テーブル内の各誤り状態エントリは、メモリセル位置を示す第1のフィールドと、前記メモリセル位置に関連する検出された誤りの累積数を示す第2のフィールドとを有する、ステップをさらに含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記ページマップテーブルに前記新しいページマップエントリを記憶するステップは、前記誤り状態テーブル内の誤り状態エントリの前記第2のフィールドが所定のしきい値を超える値を有し、かつ、前記誤り状態テーブル内の前記誤り状態エントリの前記第1のフィールドが前記メモリセルに関するメモリ位置を示す場合に実行される、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記方法は、
前記古いページの訂正されたバージョンの記憶動作を実行するステップであって、前記記憶動作は、前記古いページアドレスを参照する、ステップをさらに含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
メモリであって、
不揮発性(NV)セルアレイと、
前記NVセルアレイに結合される誤り訂正符号(ECC)回路と、
ページアドレスをマッピングするリマッパと
を備えるメモリと、
前記メモリに結合されるプロセッサであって、前記プロセッサが、古いページに関する読取り動作を実行したときに、前記ECC回路が前記NVセルアレイの前記古いページのメモリセルにおける誤りを検出したことに応答するものであり、前記プロセッサが、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有する誤り状態エントリを前記NVセルアレイ内の誤り状態テーブルに記憶する、プロセッサとを備え、
前記古いページは、古いページアドレスを有し、前記プロセッサは、前記リマッパを、前記メモリセルに関する検出された誤りの前記累積数が所定のしきい値を超えた場合に、前記古いページアドレスを参照する前記NVセルアレイへのメモリ動作の対象を前記NVセルアレイ内の新しいページアドレスに定めるように構成する、装置。
【請求項１３】
前記ECC回路は、訂正されたページを提供するために前記古いページを訂正し、
前記プロセッサは、前記訂正されたページを前記NVセルアレイに書き込むメモリ書込み動作を実行し、前記メモリ書込み動作は前記古いページアドレスを参照する、請求項12に記載の装置。
【請求項１４】
前記プロセッサは、前記古いページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項13に記載の装置。
【請求項１５】
前記メモリは、
前記記憶されたページマップテーブルに基づいて、パワーオン中に前記リマッパを構成するシーケンサをさらに備え、前記リマッパは、前記古いページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成される、請求項14に記載の装置。
【請求項１６】
前記プロセッサは、前記古いページアドレスおよび前記新しいページアドレスを示すマッピングを前記NVセルアレイ内のページマップテーブルに記憶する、請求項12に記載の装置。
【請求項１７】
前記メモリおよび前記プロセッサは、セルラーフォン、コンピュータ、および基地局からなるグループから選択されるデバイス内に存在する、請求項12に記載の装置。
【請求項１８】
プロセッサと、
誤り検出のための手段であって、前記プロセッサが不揮発性メモリ内の古いページを読み取るための読取り動作を実行する際に前記不揮発性メモリのメモリセルにおける誤りを検出する誤り検出のための手段であって、前記古いページは、古いページアドレスを有し、かつ前記メモリセルを含む、手段と、
記憶のための手段であって、前記メモリセルのメモリ位置および前記メモリセルに関する検出された誤りの累積数を有する誤り状態エントリを前記不揮発性メモリ内の誤り状態テーブルに記憶する、手段と、
リマッピングのための手段であって、前記メモリセルに関する検出された誤りの前記累積数が所定のしきい値を超えた場合に、前記古いページアドレスを参照する前記不揮発性メモリへのメモリ動作の対象を前記不揮発性メモリ内の新しいページアドレスに定める、手段と
を備える、装置。
【請求項１９】
前記プロセッサは、前記リマッピングのための手段を、前記古いページアドレスを参照するメモリ動作の対象を前記新しいページアドレスに定めるように構成する、請求項18に記載の装置。
【請求項２０】
誤り検出のための前記手段は、訂正されたページを提供するために前記古いページを訂正し、
前記プロセッサは、前記訂正されたページを前記不揮発性メモリに書き込むメモリ書込み動作を実行し、前記メモリ書込み動作は前記古いページアドレスを参照する、請求項19に記載の装置。
【国際調査報告】
2016540288.tif 000008
2016540288.tif 000009
2016540288.tif 000010