JP2023087561A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2023087561A JP2023087561A JP2021202016A JP2021202016A JP2023087561A JP 2023087561 A JP2023087561 A JP 2023087561A JP 2021202016 A JP2021202016 A JP 2021202016A JP 2021202016 A JP2021202016 A JP 2021202016A JP 2023087561 A JP2023087561 A JP 2023087561A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- nonvolatile
- random number
- counter
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 211
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 72
- 238000007781 pre-processing Methods 0.000 claims description 9
- 239000004065 semiconductor Substances 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- NGVDGCNFYWLIFO-UHFFFAOYSA-N pyridoxal 5'-phosphate Chemical compound CC1=NC=C(COP(O)(O)=O)C(C=O)=C1O NGVDGCNFYWLIFO-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】不揮発性メモリの状態を正確に把握し、メモリ容量を低減すること。【解決手段】メモリシステムは、不揮発性メモリと、カウンタを含み、前記不揮発性メモリへの書き込み動作及び読み出し動作を制御し、前記不揮発性メモリの疲弊情報を取得するメモリコントローラと、を備える。前記メモリコントローラは、前記疲弊情報に基づいて前記カウンタを更新し、所定の確率でトリガを生成し、前記トリガに基づいて前記カウンタの情報を不揮発的に記憶する不揮発化処理を実行する。【選択図】図3
Description
本開示の一実施形態は不揮発性メモリを備えるメモリシステムに関する。
近年、不揮発性メモリを備えるメモリシステムが広く普及している(特許文献1~3)。このようなメモリシステムとして、例えば、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。
本開示は、把握している不揮発性メモリの状態の正確さを損なうことなく、コストを低減することを目的とする。
一実施形態に係るメモリシステムは、不揮発性メモリと、カウンタを含み、前記不揮発性メモリへの書き込み動作及び読み出し動作を制御し、前記不揮発性メモリの疲弊情報を取得するメモリコントローラと、を備える。前記メモリコントローラは、前記疲弊情報に基づいて前記カウンタを更新し、所定の確率でトリガを生成し、前記トリガに基づいて前記カウンタの情報を不揮発的に記憶する不揮発化処理を実行する。
以下、実施形態にかかるメモリシステムについて、図面を参照して具体的に説明する。以下の説明において、略同一の機能及び構成を有する構成要素について、同一符号が付されており、必要な場合にのみ重複する説明が行われる。以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示する。実施形態の技術思想は、後述する構成要素の材質、形状、構造、配置等に限定されない。実施形態の技術的思想は、特許請求の範囲に対して、種々の変更を加えたものであってもよい。
以下の各実施形態は、技術的な矛盾が生じない限り、互いに組み合わせることができる。
[1.第1実施形態]
第1実施形態に係るメモリシステムについて説明する。第1実施形態に係るメモリシステム1は、例えば、メモリコントローラ10と、半導体記憶装置としての不揮発性メモリ20と、を含む。メモリコントローラ10は不揮発性メモリ20を制御する。本実施形態において、メモリコントローラ10は、不揮発性メモリ20の読み出し動作及び書き込み動作などの制御を行う機能を有する。
第1実施形態に係るメモリシステムについて説明する。第1実施形態に係るメモリシステム1は、例えば、メモリコントローラ10と、半導体記憶装置としての不揮発性メモリ20と、を含む。メモリコントローラ10は不揮発性メモリ20を制御する。本実施形態において、メモリコントローラ10は、不揮発性メモリ20の読み出し動作及び書き込み動作などの制御を行う機能を有する。
不揮発性メモリの読み出し動作及び書き込み動作に対する耐性は有限である。したがって、ある特定のメモリセルに対して所定の回数の読み出し動作及び書き込み動作が実行されると当該メモリセルの電気特性が劣化する。メモリセルの電気特性が劣化すると、当該メモリセルはデータを記憶する機能を失う。以下の実施形態において、不揮発性メモリのメモリセルの電気特性が劣化することを「疲弊」という。当該疲弊の程度(当該電気特性の劣化の程度)を「疲弊度」という。メモリセルの電気特性の劣化は、例えば当該メモリセルへの書き込み動作及び読み出し動作が実行された回数に依存する。したがって、この場合、これらの動作が実行された回数を「疲弊情報」という。以下の実施形態では、書き込み動作及び読み出し動作がページ単位で実行されるため、上記の疲弊、疲弊度、及び疲弊情報の用語はページを対象として用いられる。
「疲弊情報」の定義は、不揮発性メモリの種類によって異なる。例えば、書き込み動作及び読み出し動作の両方で同程度に疲弊する不揮発性メモリの場合、対象のページについて書き込み動作及び読み出し動作が実行された回数が疲弊情報になり得る。読み出し動作では疲弊せず、書き込み動作でのみ疲弊する不揮発性メモリの場合、対象のページについて書き込み動作が実行された回数のみが疲弊情報になり得る。書き込み動作では疲弊せず、読み出し動作でのみ疲弊する不揮発性メモリの場合、対象のページについて読み出し動作が実行された回数のみが疲弊情報になり得る。書き込み動作及び読み出し動作に加えて、消去動作によって疲弊する不揮発性メモリの場合、上記の書き込み動作及び読み出し動作に加えて、対象のページについて消去動作が実行された回数が疲弊情報になり得る。
例えば、対象のページに設けられたメモリセルが、当該ページに隣接するページに対する読み出し動作及び書き込み動作によって疲弊する場合、対象のページに対する書き込み動作及び読み出し動作が実行された回数に加えて、隣接するページに対する書き込み動作及び読み出し動作が実行された回数が疲弊情報になり得る。
不揮発性メモリでは、対象のページに設けられたメモリセルの疲弊によって、当該メモリセルがデータを記憶できなくなる、又は当該メモリセルに記憶されたデータが消失する可能性がある。したがって、メモリセルの疲弊度を追跡及び管理することが好ましい。
[1-1.メモリシステム1の全体構成]
図1は、一実施形態に係るメモリシステムの構成を説明するためのブロック図である。図1に示すように、メモリシステム(Memory System)1は、メモリコントローラ(Memory Controller)10、複数のメモリセルを含む不揮発性メモリ(NVM)20、電源喪失保護回路(PLP Manager)30、及び予備電源(Battery)40を備える。電源喪失保護回路30及び予備電源40は、メモリコントローラ10に接続されている。メモリシステム1は、中央演算処理装置(CPU)90と接続可能であり、CPU90の主記憶装置として機能する。CPU90は、例えば、パーソナルコンピュータ、携帯端末(例えば、タブレットコンピュータ又はスマートフォン)、撮像装置などの電子機器に搭載される。電子機器は情報処理装置とも称される。また、情報処理装置が、メモリシステム1とCPU90とを含んでもよい。CPU90は、書き込み要求および読み出し要求をメモリシステム1に送信する。図1では、CPU90が1つである構成が例示されているが、CPU90は複数設けられていてもよく、複数のCPU90が互いに接続されていてもよい。また、CPU90は、グラフィックスプロセッシングユニット(GPU)又はアクセラレータなどの他の演算処理装置に置き換えられてもよい。
図1は、一実施形態に係るメモリシステムの構成を説明するためのブロック図である。図1に示すように、メモリシステム(Memory System)1は、メモリコントローラ(Memory Controller)10、複数のメモリセルを含む不揮発性メモリ(NVM)20、電源喪失保護回路(PLP Manager)30、及び予備電源(Battery)40を備える。電源喪失保護回路30及び予備電源40は、メモリコントローラ10に接続されている。メモリシステム1は、中央演算処理装置(CPU)90と接続可能であり、CPU90の主記憶装置として機能する。CPU90は、例えば、パーソナルコンピュータ、携帯端末(例えば、タブレットコンピュータ又はスマートフォン)、撮像装置などの電子機器に搭載される。電子機器は情報処理装置とも称される。また、情報処理装置が、メモリシステム1とCPU90とを含んでもよい。CPU90は、書き込み要求および読み出し要求をメモリシステム1に送信する。図1では、CPU90が1つである構成が例示されているが、CPU90は複数設けられていてもよく、複数のCPU90が互いに接続されていてもよい。また、CPU90は、グラフィックスプロセッシングユニット(GPU)又はアクセラレータなどの他の演算処理装置に置き換えられてもよい。
なお、メモリシステム1は外部記憶装置であってもよい。この場合、図1のCPU90はホストコンピュータに置き換えられてもよい。この場合、メモリシステム1は、メモリコントローラ10と不揮発性メモリ20とが1つのパッケージとして構成されるメモリカード等であってもよく、SSD(Solid State Drive)等であってもよい。
不揮発性メモリ20は、複数のメモリチップ21を含む。メモリコントローラ10は複数のメモリチップ21の各々を制御する。具体的には、メモリコントローラ10は、メモリチップ21の各々に対してデータの書き込み動作及び読み出し動作を実行する。複数のメモリチップ21の各々は、バスを介してメモリコントローラ10に接続されている。各々のメモリチップ21は、複数のブロック22を含む。各々のブロック22は複数のページ23を含む。本実施形態では、上記の書き込み動作及び読み出し動作はページ23単位で実行される。したがって、以下の疲弊情報の管理等はページ単位で行われる。
詳細は後述するが、不揮発性メモリ20の一部の領域(一部のブロック22又は一部のページ23)は、疲弊管理部14のカウンタの情報を不揮発化処理する際に、当該情報の記憶先として使用される。当該領域を「カウンタ格納領域24」という。つまり、カウンタ格納領域24には、疲弊管理部14のカウンタの情報が格納される。
上記のメモリチップ21、ブロック22、及びページ23は、メモリの階層構造又はグループ化の一例を示すものであって、本発明の一実施形態は上記の構成に限定されない。上記の書き込み動作及び読み出し動作に加えて、消去動作がページ単位で実行されてもよい。書き込み動作、読み出し動作、及び消去動作の各々が同じ単位(メモリチップ21、ブロック22、又はページ23)で実行されてもよく、各々のうち少なくとも1つが異なる単位で実行されてもよい。書き込み動作、読み出し動作、及び消去動作はメモリセル単位で実行されてもよい。
不揮発性メモリ20は、データを不揮発に記憶する不揮発性メモリであり、例えば、SCM(Storage Class Memory)である。SCMとして、3次元構造のNAND型フラッシュメモリ、NOR型フラッシュメモリ、クロスポイント型メモリ、相変化メモリ(Phase Change Memory;PCM)、磁気抵抗メモリ(Magnetoresistive Random Access Memory;MRAM)、抵抗変化型メモリ(Resistance Random Access Memory;ReRAM)、強誘電体メモリ(Ferroelectric Random Access Memory;FeRAM)、酸化物半導体メモリ(Oxide Semiconductor Random Access Memory;OSRAM)などの半導体記憶装置が用いられる。不揮発性メモリ20が半導体記憶装置であることは必須ではない。半導体記憶装置以外の種々の記憶媒体に対しても本実施形態を適用することができる。
不揮発性メモリ20のメモリチップ21では、複数のメモリセルがアレイ状に配置されている。各メモリセルは、2値または多値(3以上の値)を記録可能である。メモリチップ21には、複数のメモリセルに接続されたワードライン及びビットラインが設けられている。例えば、メモリチップ21を特定するチップアドレス、ワードラインアドレス、及びビットラインアドレス等を含む物理アドレスによって、メモリセル(又は、ページ)の位置が指定される。
不揮発性メモリ20に用いられるSCMは、DRAM(Dynamic Random Access Memory)等のような主記憶メモリとストレージ(NAND型フラッシュメモリなど)との中間に位置するメモリである。具体的には、速度、コスト、及び寿命の点において、SCMはDRAMとNAND型フラッシュメモリとの中間に位置する。つまり、SCMのアクセス回数はDRAMとは異なり実質無制限ではないため、メモリセルの疲弊度を管理する必要がある。SCMにおけるアクセス粒度は、DRAMと同程度に小さい事が期待されている。例えば、DRAMの読み出し単位または書き込み単位は32B、64B程度である。一方、NAND型フラッシュメモリの読み出し単位または書き込み単位は4KB程度である。
メモリコントローラ10は、CPU90からの書き込み要求に従って不揮発性メモリ20への書き込み動作を制御し、CPU90からの読み出し要求に従って不揮発性メモリ20からの読み出し動作を制御する。
メモリコントローラ10は、例えばSoC(System-On-a-Chip)として構成される半導体集積回路である。以下で説明するメモリコントローラ10の各構成要素の動作の一部又は全部はハードウエアによって実現されるが、CPU(Central Processing Unit)がファームウエアを実行することによって実現されてもよい。
メモリコントローラ10は、ホストインタフェース(Host I/F)11、コマンド処理部(Command Processor)12、NVM制御部(NVM Controller)13、疲弊管理部(Wear Manager)14、及びRAM15を備える。これらの機能ブロックは内部バス19で相互に接続されている。
ホストインタフェース11は、ホストとして機能するCPU90から書き込み要求及び読み出し要求を受信する。書き込み要求は、ライトコマンド、ライトアドレス、及びライトデータを含む。読み出し要求は、リードコマンド及びリードアドレスを含む。ホストインタフェース11は、受信した書き込み要求又は読み出し要求をコマンド処理部12に転送する。ホストインタフェース11は、不揮発性メモリ20から読み出されたユーザデータ、コマンド処理部12の応答などをCPU90へ送信する。
コマンド処理部12は、ホストインタフェース11を介してCPU90から受信したコマンドに応じた制御を実行する。例えば、コマンド処理部12は、CPU90から書き込み要求を受信した場合、ライトコマンドに応じて論理アドレスに該当するライトアドレスを物理アドレスへ変換する。この変換によって、不揮発性メモリ20における物理アドレスが決定される。コマンド処理部12は、当該物理アドレスに対してライトデータの書き込み動作を実行する。上記論理アドレスとして、例えばLBA(Logical Block Addressing)が用いられる。上記物理アドレスは、データが記憶されているページの、不揮発性メモリ20における物理的な位置を示す。コマンド処理部12は、CPU90から受信したライトデータ及び上記の変換によって決定された物理アドレスをNVM制御部13及び疲弊管理部14に出力する。
コマンド処理部12は、CPU90から読み出し要求を受信した場合、論理アドレスに該当するリードアドレスを物理アドレスへ変換する。この変換によって、不揮発性メモリ20における物理アドレスが決定される。コマンド処理部12は、当該物理アドレスに対してデータの読み出し動作を実行する。コマンド処理部12は、上記の変換によって決定された物理アドレスをNVM制御部13及び疲弊管理部14に出力する。
NVM制御部13は、コマンド処理部12から入力されたアクセスの種別(書き込み動作又は読み出し動作)及び上記の物理アドレスに基づいて不揮発性メモリ20にアクセスし、不揮発性メモリ20に対する読み出し動作又は書き込み動作の制御を実行する。NVM制御部13は、ECC(Error Check and Correct;ECC)回路を備えてもよい。ECC回路は、コマンド処理部12から転送されたデータに対して、誤り訂正の符号化処理を実施し、パリティを生成する。ECC回路は、データ及びパリティを含む符号語を不揮発性メモリ20へ出力する。ECC回路は、不揮発性メモリ20から読み出された符号語を用いて誤り訂正の復号化処理を実行し、復号されたデータをコマンド処理部12に転送する。
疲弊管理部14は、不揮発性メモリ20の物理アドレス及び当該物理アドレスに配置されたページの疲弊情報を不揮発性メモリ20から取得し、管理する。例えば、本実施形態では、疲弊管理部14は、所定の物理アドレスに配置されたページに対する書き込み動作及び読み出し動作が実行された回数(以下「書き込み回数」及び「読み出し回数」という)を管理する。疲弊管理部14は、特定のページに対する書き込み回数及び読み出し回数を、当該ページの物理アドレスとともにRAM15に格納する。つまり、RAM15は、ページの疲弊情報が格納されるカウンタとしての機能を有する。RAM15を「疲弊カウンタ」という場合がある。疲弊管理部14は、書き込み動作及び読み出し動作の実行に応じて疲弊カウンタを更新することで、書き込み回数及び読み出し回数を管理する。換言すると、疲弊管理部14は、疲弊情報に基づいて疲弊カウンタを更新する。当該疲弊カウンタは、ページの物理アドレスと当該ページに対する書き込み回数と読み出し回数とを関連付けて管理する。
疲弊管理部14は、ページに対する書き込み動作または読み出し動作が実行されると、所定の確率でトリガを生成する。当該トリガに基づいて、疲弊管理部14は、上記の疲弊カウンタの情報を、例えば、不揮発性メモリ20の一部(以下の「カウンタ格納領域24」)に記憶する。この処理を「不揮発化処理」という場合がある。つまり、不揮発化処理は、上記トリガに基づいて、揮発的に記憶された疲弊カウンタの情報を不揮発的に記憶する処理である。疲弊管理部14の機能及び不揮発化処理の詳細は後述する。
不揮発化処理によって疲弊カウンタの情報を記憶するメモリは、書き込み動作または読み出し動作が実行されたページ23と同じブロック22に属するページ23であってもよく、異なるブロック22に属するページ23であってもよい。後者の場合、疲弊カウンタの情報を記憶するメモリは、書き込み動作または読み出し動作が実行されたページ23と同じメモリチップ21かつ異なるブロック22に属するページ23であってもよく、異なるメモリチップ21に属するページ23であってもよい。
RAM15は、例えばデータバッファとして使用される。上記のように、RAM15は、疲弊カウンタとして機能し、疲弊管理部14によって管理される書き込み回数及び物理アドレスを揮発的に記憶する。RAM15をキャッシュメモリという場合がある。さらに、RAM15は、メモリコントローラ10がCPU90から受信したデータを不揮発性メモリ20へ記憶させるまでに一時的に保持する。RAM15は、不揮発性メモリ20から読み出したデータをCPU90へ送信するまでの間に一時的に保持する。RAM15として、例えば、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)などの汎用メモリを用いることができる。本実施形態では、RAM15がメモリコントローラ10に設けられた構成を例示したが、この構成に限定されない。RAM15は、メモリコントローラ10の外部に設けられてもよい。
電源喪失保護回路30は、不揮発性メモリ20に供給される外部からの電力が遮断されたこと(以下、「電源断」という)を検知する。電源断のうち、外部からの電力が意図せず、不正に遮断されることを「不正電源断」という。電源喪失保護回路30は、不正電源断を検知すると、予備電源40からの電力を不揮発性メモリ20に供給する。上記の不揮発化処理は、上記のトリガとは別に、不正電源断を検知した場合に行われてもよい。
[1-2.疲弊管理部14の構成]
図2を用いて、疲弊管理部14の詳細な構成を説明する。図2に示すように、疲弊管理部14は、乱数生成器(R Generator)141、比較器(Comparator)142、及びカウンタ(Counter)を含む。乱数生成器141は、規則性のないランダムな値を生成する。乱数生成器141は、疲弊管理部14がRAM15の疲弊カウンタを更新する処理に基づいて乱数Rを生成する。比較器142は、乱数生成器141によって生成された乱数Rが所定の集合Sに含まれるか否かを判定する。当該乱数Rが所定の集合Sに含まれると判定された場合、比較器142は、不揮発化処理を実行するためのトリガを生成する。つまり、乱数生成器141によって生成される乱数Rの範囲と、比較器142において規定される所定の集合Sの範囲と、によって所定の確率でトリガが生成される。
図2を用いて、疲弊管理部14の詳細な構成を説明する。図2に示すように、疲弊管理部14は、乱数生成器(R Generator)141、比較器(Comparator)142、及びカウンタ(Counter)を含む。乱数生成器141は、規則性のないランダムな値を生成する。乱数生成器141は、疲弊管理部14がRAM15の疲弊カウンタを更新する処理に基づいて乱数Rを生成する。比較器142は、乱数生成器141によって生成された乱数Rが所定の集合Sに含まれるか否かを判定する。当該乱数Rが所定の集合Sに含まれると判定された場合、比較器142は、不揮発化処理を実行するためのトリガを生成する。つまり、乱数生成器141によって生成される乱数Rの範囲と、比較器142において規定される所定の集合Sの範囲と、によって所定の確率でトリガが生成される。
本実施形態において、比較器142が上記の判定を行う所定の集合Sは、CPU90からの要求の種別、メモリコントローラ10の動作の種別、各種履歴情報、及び疲弊情報等によらず一定の集合である。具体的には、比較器142は、メモリコントローラ10の動作が書き込み動作又は読み出し動作であるかによらず、上記乱数Rが同じ集合Sに含まれるか否かを判定する。
ただし、上記の集合Sは、CPU90からの要求の種別、メモリコントローラ10の動作の種別、各種履歴情報、及び疲弊情報等に依存して異なる集合であってもよい。つまり、比較器142は、メモリコントローラ10の動作が書き込み動作又は読み出し動作であるかに依存して、上記乱数Rが異なる集合Sに含まれるか否かを判定してもよい。又は、比較器142は、不揮発性メモリ20の動作履歴(例えば、書き込み回数の上限値(エンデュランス)に対する現在の書き込み回数の割合)に依存して異なる集合Sに上記乱数Rが含まれるか否かを判定してもよい。
本実施形態では、所定の確率でトリガを生成する方法として、上記のように乱数生成器141及び比較器142を用いる構成を例示したが、この構成に限定されない。所定の確率でトリガを生成することができれば、上記以外の構成を採用してもよい。
[1-3.ウェアレベリング処理について]
メモリコントローラ10は、CPU90からの書き込み要求及び読み出し要求に従って不揮発性メモリ20への書き込み動作を実行するが、一部のページに集中して書き込み動作及び読み出し動作の実行が繰り返される場合がある。不揮発性メモリ20は、特定のページに集中して書き込み動作及び読み出し動作を繰り返し実行すると疲弊し、メモリセルとしての機能を失う場合がある。
メモリコントローラ10は、CPU90からの書き込み要求及び読み出し要求に従って不揮発性メモリ20への書き込み動作を実行するが、一部のページに集中して書き込み動作及び読み出し動作の実行が繰り返される場合がある。不揮発性メモリ20は、特定のページに集中して書き込み動作及び読み出し動作を繰り返し実行すると疲弊し、メモリセルとしての機能を失う場合がある。
そのような問題を回避するために、メモリコントローラ10は、ウェアレベリング処理を行う。ウェアレベリング処理とは、論理アドレスと物理アドレスとの対応関係を変更する処理である。当該対応関係が変更されることによって、CPU90からの書き込み要求及び読み出し要求が論理アドレスによって指定される一部のページに集中した場合であっても、書き込み動作及び読み出し動作が異なる物理アドレスのページに対して行われる。そのため、一部のページに設けられたメモリセルへの疲弊の集中を抑制することができる。
例えば、ウェアレベリング処理における論理アドレス及び物理アドレスは、ページ単位で指定される。そのため、ウェアレベリング処理では、ページ単位で書き込み回数及び読み出し回数が管理され、ページ単位で論理アドレスと物理アドレスとの対応関係の変更が行われる。ただし、上記の処理は複数のページ単位で行われてもよく、ブロック単位で行われてもよい。また、上記のように論理アドレスと物理アドレスとの対応関係の変更に加えて、又はその代わりに、データの移動が行われてもよい。
上記のウェアレベリング処理の前に、当該ウェアレベリング処理の実行要否を決定するウェアレベリングの前処理が行われる。当該ウェアレベリングの前処理では、疲弊カウンタの状況又はその他の疲弊に関する履歴情報に応じて、ウェアレベリング処理を実行する必要があるか否かを判断する。例えば、データの書き込み動作及び読み出し動作が行われるページの物理アドレスに対する書き込み回数及び読み出し回数に偏りがない場合、ウェアレベリング処理を実行する必要はないと判断され、ウェアレベリング処理は実行されずに次工程の処理が行われる。一方、上記の偏りがある場合、ウェアレベリング処理が実行される。上記のウェアレベリングの前処理は、RAM15の疲弊カウンタの更新処理に基づいて行われる。
上記の構成において、不揮発性メモリ20の容量に比べて、疲弊カウンタとして使用されるキャッシュメモリ(RAM15)の容量は十分に小さい。当該キャッシュメモリの容量に比べて、不正電源断の際に不揮発化されるデータの容量は十分に小さい。不正電源断の際にも疲弊情報が消失しないようにするためには、不揮発化処理を頻繁に実行する必要があり、不揮発性メモリ20に対するアクセスが増大することによってメモリ帯域が圧迫される。したがって、このようなメモリへのアクセス回数を抑制しつつ、正確な疲弊情報を保持する必要がある。
さらに、ウェアレベリング処理において、特定のページに対する書き込み回数及び読み出し回数が所定の回数に達した場合にのみ不揮発化処理を行う場合、当該所定の回数の直前で不正電源断が発生する現象が続くと、そのページに対する疲弊情報が正しく更新されない。
本実施形態に係るメモリシステム1によると、疲弊カウンタの更新が行われる度に不揮発化処理が実行されるのではなく、疲弊カウンタの更新に対して所定の確率で発生したトリガに基づいて不揮発化処理が実行される。そのため、不揮発性メモリ20へのアクセス回数が抑制される。さらに、所定の確率で不揮発化処理が行われるので、上記のように特定の現象が発生した場合であっても、疲弊情報が正しく更新されないという問題を抑制することができる。その結果、当該メモリシステム1は、不揮発性メモリ20の状態を正確に把握することができる。その結果、疲弊情報を不揮発化する頻度を低くすることができるため、メモリ帯域幅の消費を小さくすることができる。つまり、消費するメモリ帯域幅のためのメモリチップを低減することができるため、コストを低減することができる。
[1-4.ウェアレベリング処理及び不揮発化処理の動作フロー]
図3を用いて、不揮発化処理の動作について説明する。図3は、一実施形態に係るメモリシステムの不揮発化処理を示すフローチャートである。
図3を用いて、不揮発化処理の動作について説明する。図3は、一実施形態に係るメモリシステムの不揮発化処理を示すフローチャートである。
図3に示すように、まず、CPU90からメモリシステム1に書き込み要求又は読み出し要求(Write/Read request)が送信される(ステップS301)。
書き込み要求に含まれるライトアドレス(論理アドレス)又は読み出し要求に含まれるリードアドレス(論理アドレス)が物理アドレスに変換され、当該物理アドレスに対応する疲弊カウンタが更新される(ステップS302)。具体的には、当該物理アドレスに対応するカウンタが1インクリメントされる(Counter +1)。
疲弊カウンタが更新されると、ウェアレベリングの前処理(Pre-Wear Leveling)が実行される(ステップS303)。具体的には、上記物理アドレスに対応する疲弊カウンタの値が所定のしきい値に達しているか否かを判定する。当該カウンタの値が、所定のしきい値に達していれば後述するウェアレベリング処理を実行し、当該しきい値に達していなければウェアレベリング処理を実行しない。図3に示す動作フローは、ウェアレベリング処理が実行される場合の動作フローである。
上記ウェアレベリングの前処理が実行されると、所定の確率で疲弊カウンタの不揮発化処理が実行される(ステップS304~S306)。
具体的には、まず、乱数Rの生成(Generating R)が行われる(S304)。つまり、上記ウェアレベリングの前処理の実行に続いて乱数生成器141(図2参照)が乱数Rを生成する。続いて、生成された乱数Rが所定の集合Sに含まれているか否かの判定(R∈S?)が行われる(S305)。
生成される乱数R及び集合Sによって、不揮発化処理が実行される確率が決定される。例えば、当該確率を1/128と設定する場合、乱数Rが生成される数値範囲が0~1023の整数に設定され、集合Sが0~7の整数に設定される。もちろん、乱数R及び集合Sのそれぞれの範囲は、上記の範囲に限定されない。例えば、乱数Rが生成される数値範囲が0~1023の整数に設定され、集合Sが0及び128の倍数の集合であってもよい。
生成された乱数Rが集合Sに属する場合(S305の「Yes」)、不揮発化処理(Making counter persistent)が実行される(S306)。一方、生成された乱数Rが集合Sに属しない場合(S305の「No」)、不揮発化処理は実行されず、ウェアレベリング処理(Wear Leveling)が実行される(ステップS307)。
上記のように、本実施形態では、ウェアレベリングの前処理(S303)とウェアレベリング処理(S307)との間で乱数Rの生成(S304)~不揮発化処理(S306)のステップが行われる動作フローを例示したが、この動作フローに限定されない。例えば、S304~S306のステップは、疲弊カウンタの更新(S302)とウェアレベリングの前処理(S303)との間で行われてもよい。又は、S304~S306のステップは、ウェアレベリング処理(S307)の後に行われてもよい。また、本実施形態では、S304~S306のステップが連続する構成を例示したが、S304~S306の順序が維持されていれば、これらのステップは連続していなくてもよく、これらのステップの間に他の処理が行われてもよい。
上記のように、本実施形態では、CPU90からの書き込み要求又は読み出し要求によらず、つまり、メモリコントローラ10の動作が書き込み動作又は読み出し動作であるかによらず、比較器142は、乱数Rが同じ集合Sに含まれるか否かを判定する。ただし、上記の動作は、CPU90からの書き込み要求に対してのみ実行されてもよく、CPU90からの読み出し要求に対してのみ実行されてもよい。
[2.第2実施形態]
図4を用いて、第2実施形態に係るメモリシステムについて説明する。第2実施形態に係るメモリシステムの構成は、第1実施形態に係るメモリシステムの構成と同じなので、その説明を省略する。第2実施形態では、発生するイベントの種類に応じて、不揮発化処理のトリガが発生する確率が異なる。その一例として、疲弊情報が書き込み回数及び読み出し回数の両方を含む場合であって、書き込み動作に対する疲弊度と読み出し動作に対する疲弊度とが異なる場合の動作フローについて説明する。
図4を用いて、第2実施形態に係るメモリシステムについて説明する。第2実施形態に係るメモリシステムの構成は、第1実施形態に係るメモリシステムの構成と同じなので、その説明を省略する。第2実施形態では、発生するイベントの種類に応じて、不揮発化処理のトリガが発生する確率が異なる。その一例として、疲弊情報が書き込み回数及び読み出し回数の両方を含む場合であって、書き込み動作に対する疲弊度と読み出し動作に対する疲弊度とが異なる場合の動作フローについて説明する。
[2-1.ウェアレベリング処理及び不揮発化処理の動作フロー]
図4に示すように、まず、CPU90からメモリシステム1に書き込み要求又は読み出し要求(Write/Read request)が送信される(ステップS401)。
図4に示すように、まず、CPU90からメモリシステム1に書き込み要求又は読み出し要求(Write/Read request)が送信される(ステップS401)。
メモリシステム1は、CPU90から送信された信号が書き込み要求か読み出し要求かを判定する(ステップS402)。CPU90から送信された信号が読み出し要求であれば(S402の「Read」)、読み出し動作用フロー(ステップS411~S414)に進む。一方、CPU90から送信された信号が書き込み要求であれば(S402の「Write」)、書き込み動作用フロー(ステップS421~S424)に進む。
読み出し動作用フローのS411~S413は、図3のS302~S304と同じなので、説明を省略する。書き込み動作用フローのS421~S423は、読み出し動作用フローのS411~S413と類似しているが、S411では1インクリメントされるのに対して、S421では1000インクリメントされている。例えば、書き込み動作に対する疲弊度が読み出し動作に対する疲弊度の1000倍である場合に、上記のようにインクリメントの数を調整することで、疲弊度をカウンタの数値に反映させることができる。読み出し動作用フロー及び書き込み動作用フローの各々において、乱数Rの生成(S413、S423)の後に、集合Sが選択される(S414、S424)。読み出し動作用フローの場合、集合S1として“0”~“N-1”の整数(Nは2以上の自然数)が選択され(S414)、書き込み動作用フローの場合、集合S2として“0”~“1000×N-1”の整数が選択される(S424)。
本実施形態では、CPU90から送信された要求に応じてフローが分岐する構成を例示したが、この構成に限定されない。例えば、乱数Rの生成が行われた後に、書き込み動作又は読み出し動作に応じて、集合S1又は集合S2が選択されてもよい。
読み出し動作用フローの場合、集合Sの選択(S414)の後に、S413において生成された乱数Rが、選択された集合S1に含まれているか否かの判定(R∈S?)が行われる(ステップS431)。書き込み動作用フローの場合、集合Sの選択(S424)の後に、S423において生成された乱数Rが、選択された集合S2に含まれているか否かの判定(R∈S?)が行われる(S431)。ステップS431~S433は、図3のS305~S307と同じなので、説明を省略する。
上記のように、書き込み動作用フローにおける集合S2に含まれる整数の数は、読み出し動作用フローにおける集合S1に含まれる整数の数の1000倍である。したがって、書き込み要求に対して不揮発化処理が実行される確率は、読み出し要求に対して不揮発化処理が実行される確率の1000倍である。
例えば、書き込み動作に対する疲弊度が読み出し動作に対する疲弊度より大きい場合、上記のように不揮発化処理が実行される確率をそれぞれの動作に応じて変更することで、より適切なタイミングで不揮発化処理を実行することができる。つまり、発生するイベントよって対象ページの疲弊度が異なる場合、当該イベントの種類によって不揮発化処理が実行される確率を変更することで、より適切なタイミングで不揮発化処理を実行することができる。
上記のように、本実施形態では、CPU90からの書き込み要求又は読み出し要求に依存して、つまり、メモリコントローラ10の動作が書き込み動作又は読み出し動作であるかに依存して、比較器142は、乱数Rが異なる集合S1又は集合S2に含まれるか否かを判定する。本実施形態では、読み出し動作が実行された場合よりも書き込み動作が実行された場合の方が、不揮発化処理が実行される確率が高い構成を例示したが、書き込み動作が実行された場合よりも読み出し動作が実行された場合の方が、不揮発化処理が実行される確率が高くてもよい。
[3.第3実施形態]
図5を用いて、第3実施形態に係るメモリシステムについて説明する。第3実施形態に係るメモリシステムの構成は、第1実施形態に係るメモリシステムの構成と同じなので、その説明を省略する。第3実施形態では、対象のページに含まれるメモリセルの寿命に応じて不揮発化処理が実行される確率が異なる。その一例として、対象ページの書き込み回数の上限値(エンデュランス)に対する書き込み回数の割合が所定のしきい値を超えた場合に、不揮発化処理が実行される確率を変更する動作フローについて説明する。
図5を用いて、第3実施形態に係るメモリシステムについて説明する。第3実施形態に係るメモリシステムの構成は、第1実施形態に係るメモリシステムの構成と同じなので、その説明を省略する。第3実施形態では、対象のページに含まれるメモリセルの寿命に応じて不揮発化処理が実行される確率が異なる。その一例として、対象ページの書き込み回数の上限値(エンデュランス)に対する書き込み回数の割合が所定のしきい値を超えた場合に、不揮発化処理が実行される確率を変更する動作フローについて説明する。
上記のエンデュランスは、メモリセルの疲弊度のうち、メモリセルの信頼性が保証される限界値である。本実施形態では、エンデュランスが書き込み回数の上限値である構成を例示するが、エンデュランスは、読み出し回数の上限値であってもよく、消去回数の上限値であってもよい。疲弊管理部14がページ毎にエンデュランスを特定することができればいいため、ページ毎にエンデュランスが設けられていてもよく、複数のページ毎に所定のエンデュランスが対応付けられていてもよい。エンデュランスは、予め静的に設定されていてもよく、例えば、メモリシステムの動作履歴又はその他の要因に応じて、疲弊管理部14によって動的に変更されてもよい。
[3-1.ウェアレベリング処理及び不揮発化処理の動作フロー]
図5におけるステップS501~S504は、図3におけるS301~S304と同じなので、説明を省略する。S504で乱数Rが生成されると、書き込み動作が実行される対象のページについて、エンデュランスに対する現在の書き込み回数の割合が算出され、当該割合がしきい値Ethと比較(Endurance > Eth?)される(ステップS505)。例えば、しきい値Ethが90%である場合、対象ページに対する現在の書き込み回数がエンデュランスの90%を超えているか否かが判定される。
図5におけるステップS501~S504は、図3におけるS301~S304と同じなので、説明を省略する。S504で乱数Rが生成されると、書き込み動作が実行される対象のページについて、エンデュランスに対する現在の書き込み回数の割合が算出され、当該割合がしきい値Ethと比較(Endurance > Eth?)される(ステップS505)。例えば、しきい値Ethが90%である場合、対象ページに対する現在の書き込み回数がエンデュランスの90%を超えているか否かが判定される。
上記の書き込み回数は、疲弊カウンタの値であってもよく、メモリコントローラ10が書き込み動作を実行した履歴情報であってもよい。
上記の割合がしきい値Eth以下の場合(S505の「No」)、集合S1が選択される(ステップS506)。一方、上記の割合がしきい値Ethを超えている場合(S505の「Yes」)、集合S3が選択される(ステップS507)。集合S1は、“0”~“N-1”の整数(Nは2以上の自然数)である。集合S3は、“0”~“M-1”の整数(Mは3以上の自然数)である。なお、MはNより大きい。つまり、集合S3に含まれる整数の数は、集合S1に含まれる整数の数より大きい。
上記のように、集合S1又は集合S3が選択されると、S504において生成された乱数Rが、選択された集合に含まれているか否かの判定が行われる(ステップS508)。ステップS508~S510は、図3のS305~S307と同じなので、説明を省略する。
上記のように、集合S3に含まれる整数の数は、集合S1に含まれる整数の数のM/N倍である。したがって、書き込み要求に対して不揮発化処理が実行される確率は、読み出し要求に対して不揮発化処理が実行される確率のM/N倍である。つまり、本実施形態では、対象のページに対する書き込み回数によって、経時的に不揮発化処理が実行される確率を変更することができる。
書き込み回数が予想寿命に近づいているページでは、寿命の予想をより精確に行う必要があるため、不正電源断によって最新の疲弊情報が消失することによる影響は大きい。したがって、上記のように、不揮発化処理が実行される頻度を高くすることで予想された寿命より、寿命が早く訪れる確率を低減することができる。
上記のように、本実施形態では、不揮発性メモリ20の動作履歴(対象ページのエンデュランスに対する書き込み回数の割合)に依存して、比較器142は異なる集合S1又は集合S3に乱数Rが含まれるか否かを判定する。本実施形態では、不揮発性メモリ20に対する書き込み動作の履歴に基づいて集合が選択される構成を例示したが、この構成に限定されない。例えば、集合の選択が不揮発性メモリ20に対する読み出し動作の履歴に基づいて行われてもよい。
本実施形態では、不揮発化処理が発生する確率を変更する回数が1回である動作フローを例示したが、このフローに限定されない。当該確率は複数回変更されてもよい。例えば、しきい値が複数設けられており、当該複数のしきい値毎に上記確率が変更されてもよい。
以上、本発明について図面を参照しながら説明したが、本発明は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態の疲弊管理回路を基にして、当業者が適宜構成要素の追加、削除もしくは設計変更を行ったものも、本発明の要旨を備えている限り、本発明の範囲に含まれる。さらに、上述した各実施形態は、相互に矛盾がない限り適宜組み合わせが可能であり、各実施形態に共通する技術事項については、明示の記載がなくても各実施形態に含まれる。
上述した各実施形態の態様によりもたらされる作用効果とは異なる他の作用効果であっても、本明細書の記載から明らかなもの、又は、当業者において容易に予測し得るものについては、当然に本発明によりもたらされるものと解される。
1:メモリシステム、 10:メモリコントローラ、 11:ホストインタフェース、 12:コマンド処理部、 13:制御部、 14:疲弊管理部、 15:RAM、 19:内部バス、 20:不揮発性メモリ、 21:メモリチップ、 22:ブロック、 23:ページ、 24:カウンタ格納領域、 30:電源喪失保護回路、 40:予備電源、 90:CPU、 141:乱数生成器、 142:比較器、 R:乱数、 S:集合
Claims (10)
- 不揮発性メモリと、
カウンタを含み、前記不揮発性メモリへの書き込み動作及び読み出し動作を制御し、前記不揮発性メモリの疲弊情報を取得するメモリコントローラと、を備え、
前記メモリコントローラは、
前記疲弊情報に基づいて前記カウンタを更新し、
所定の確率でトリガを生成し、
前記トリガに基づいて前記カウンタの情報を不揮発的に記憶する不揮発化処理を実行するメモリシステム。 - 前記メモリコントローラは、前記疲弊情報を揮発的に記憶するキャッシュメモリをさらに含む、請求項1に記載のメモリシステム。
- 前記メモリコントローラは、前記不揮発化処理によって前記不揮発性メモリの一部の領域に前記カウンタの情報を不揮発的に記憶する、請求項1又は2に記載のメモリシステム。
- 前記メモリコントローラは、
前記カウンタの更新処理に基づいて乱数を生成する乱数生成器と、
前記乱数生成器によって生成された乱数が所定の集合に含まれるか否かを判定する比較器と、を備え、
前記比較器によって、前記乱数生成器によって生成された乱数が前記集合に含まれると判定された場合に、前記不揮発化処理を実行する、請求項1乃至3のいずれか一に記載のメモリシステム。 - 前記比較器は、前記メモリコントローラの動作が前記書き込み動作又は前記読み出し動作であるか、によらず同じ前記集合に前記乱数が含まれるか否かを判定する、請求項4に記載のメモリシステム。
- 前記比較器は、前記メモリコントローラの動作が前記書き込み動作又は前記読み出し動作であるか、に依存して異なる前記集合に前記乱数が含まれるか否かを判定する、請求項4に記載のメモリシステム。
- 前記比較器は、前記不揮発性メモリの動作履歴に依存して異なる前記集合に前記乱数が含まれるか否かを判定する、請求項4に記載のメモリシステム。
- 前記不揮発性メモリへの電源が遮断されたことを検知する電源喪失保護回路をさらに備え、
前記電源喪失保護回路は、前記不揮発性メモリへの電源が遮断されたことを検知すると、前記不揮発化処理を実行する、請求項1乃至7のいずれか一に記載のメモリシステム。 - 前記不揮発性メモリは、NAND型フラッシュメモリ、NOR型フラッシュメモリ、相変化メモリ(PCM)、抵抗変化型メモリ(ReRAM)、磁気抵抗メモリ(MRAM)、強誘電体メモリ(FeRAM)、及び酸化物半導体メモリ(OSRAM)のうち、少なくともいずれか一のメモリを含む、請求項1乃至8のいずれか一のメモリシステム。
- 前記メモリコントローラは、
前記疲弊情報に基づいて前記カウンタを更新した後、かつ、前記乱数生成器による乱数の生成の前に、前記疲弊情報に基づいて前記不揮発性メモリ内のデータの移動を行うウェアレベリング処理を実行するか否かを判定する前処理を実行し、
前記不揮発化処理の後に前記ウェアレベリング処理を実行する、請求項4に記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021202016A JP2023087561A (ja) | 2021-12-13 | 2021-12-13 | メモリシステム |
US17/895,776 US12093170B2 (en) | 2021-12-13 | 2022-08-25 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021202016A JP2023087561A (ja) | 2021-12-13 | 2021-12-13 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023087561A true JP2023087561A (ja) | 2023-06-23 |
Family
ID=86694290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021202016A Pending JP2023087561A (ja) | 2021-12-13 | 2021-12-13 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US12093170B2 (ja) |
JP (1) | JP2023087561A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230114414A1 (en) * | 2021-09-28 | 2023-04-13 | Advanced Micro Devices, Inc. | Method and apparatus for protecting memory devices via a synergic approach |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI385669B (zh) | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
EP2761471B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
US20140136884A1 (en) * | 2012-11-15 | 2014-05-15 | Lsi Corporation | Read disturb handling for non-volatile solid state media |
US20160070643A1 (en) | 2014-09-08 | 2016-03-10 | Sandisk Technologies Inc. | System and method of counting program/erase cycles |
US9336136B2 (en) | 2014-10-08 | 2016-05-10 | HGST Netherlands B.V. | Apparatus, systems, and methods for providing wear leveling in solid state devices |
US20230114414A1 (en) * | 2021-09-28 | 2023-04-13 | Advanced Micro Devices, Inc. | Method and apparatus for protecting memory devices via a synergic approach |
-
2021
- 2021-12-13 JP JP2021202016A patent/JP2023087561A/ja active Pending
-
2022
- 2022-08-25 US US17/895,776 patent/US12093170B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US12093170B2 (en) | 2024-09-17 |
US20230185709A1 (en) | 2023-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5980798B2 (ja) | 独立したシリコン素子の動的な上位レベルの冗長モード管理 | |
US9569320B2 (en) | Non-volatile memory program failure recovery via redundant arrays | |
US10475518B2 (en) | Memory system, memory system control method, and program | |
US9229851B2 (en) | Memory controller, semiconductor memory device and control method thereof | |
TWI662410B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
TW201916018A (zh) | 資料儲存裝置與將資料寫入記憶體裝置之方法 | |
US20150179254A1 (en) | Mitigating disturb effects for non-volatile memory | |
WO2016069192A1 (en) | Tracking intermix of writes and un-map commands across power cycles | |
US11693734B2 (en) | Nonvolatile semiconductor memory device | |
US20120166906A1 (en) | Memory system and control method thereof | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
KR20100097456A (ko) | 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법 | |
US9798475B2 (en) | Memory system and method of controlling nonvolatile memory | |
WO2014163952A1 (en) | Tracking erase pulses for non-volatile memory | |
US10235049B2 (en) | Device and method to manage access method for memory pages | |
US12093170B2 (en) | Memory system | |
KR20180087494A (ko) | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN114270304B (zh) | 存储器组件的同一平面内的数据压缩 | |
US12086429B2 (en) | Memory system and controlling method | |
US10817435B1 (en) | Queue-based wear leveling of memory components | |
US11216191B2 (en) | Storage device and operating method of storage device | |
US11789643B2 (en) | Memory system and control method | |
US11853201B2 (en) | Selective single-level memory cell operation | |
US20220269598A1 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20220276957A1 (en) | Controller, semiconductor storage device, and a wear-leveling processing method in the device |