JP2021033423A - コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 - Google Patents

コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 Download PDF

Info

Publication number
JP2021033423A
JP2021033423A JP2019149894A JP2019149894A JP2021033423A JP 2021033423 A JP2021033423 A JP 2021033423A JP 2019149894 A JP2019149894 A JP 2019149894A JP 2019149894 A JP2019149894 A JP 2019149894A JP 2021033423 A JP2021033423 A JP 2021033423A
Authority
JP
Japan
Prior art keywords
access
data
address
sector
storage area
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
Application number
JP2019149894A
Other languages
English (en)
Inventor
晴彦 寺田
Haruhiko Terada
晴彦 寺田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2019149894A priority Critical patent/JP2021033423A/ja
Priority to US17/627,984 priority patent/US20220276957A1/en
Priority to PCT/JP2020/026700 priority patent/WO2021033445A1/ja
Priority to TW109127020A priority patent/TW202127256A/zh
Publication of JP2021033423A publication Critical patent/JP2021033423A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear 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

【課題】Xp−ReRAM(クロスポイントReRAM)の特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図るコントローラを提供する。【解決手段】書込み可能な不揮発性メモリ20を有する半導体記憶装置の動作を制御するコントローラ10は、不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、データ記憶領域に対するアクセスを制御するアクセス制御部110と、アクセスによって生じる複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部130と、を備える。摩耗平準化処理部は、摩耗平準化処理を、アクセスごとに所定の確率で行う。【選択図】図6

Description

本技術は、コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法に関する。
従来、不揮発性を備える書き換え可能な半導体記憶装置が知られているが、近年では、不揮発性を備えつつ、DRAMを超える記憶容量及びDRAMに匹敵する高速性を備える書き換え可能な半導体記憶装置として、抵抗変化型RAM(ReRAM(Resistive RAM))が注目されている。ReRAMは、電圧の印加によって変化するセルの抵抗値の状態により情報を記録する。とりわけ、Xp−ReRAM(クロスポイントReRAM)は、ワード線とビット線との交差部に、記憶素子として機能する抵抗変化素子(VR:Variable Resistor)と双方向ダイオード特性を有する選択素子(SE:Selector Element)とが直列に接続されたセル構造を有する。
このような書き換え可能な半導体記憶装置は、その動作時に、所定の動作不良が希に起きることが知られている。このため、このような動作不良に対処するための技術が提案されている。
例えば、下記特許文献1は、メモリコントローラが、論理ブロックカウンタにおいて、データの書き込み先の論理ブロックアドレスの記録回数が相対的に多い場合、論物変換テーブルにおいて論理ブロックアドレスが割り当てられていない物理ブロックであるスペアブロックの中で、物理ブロックカウンタの消去回数が相対的に少ない物理ブロックアドレスを割り当てることで、物理ブロックの消去回数を平均化する技術を開示する。
また、下記特許文献2は、Xp−ReRAMにおいて、所定の低抵抗状態LRと高抵抗状態HRとの間を電気信号の印加に応じて可逆的に変化する抵抗変化素子を有する参照セルの抵抗値を、例えば、低抵抗状態における抵抗分布の上限値(LRmax)や、高抵抗状態における抵抗分布の下限値(HRmin)といった、メモリセルアレイ内の各メモリセルが情報を保持している状態の境界的な条件(最悪状態)に設定した上で、当該参照セルの抵抗値の経時変化を観察し、当該参照セルにおいて、各メモリセルよりも先に情報の保持状態の劣化を検出してリフレッシュ動作を行う技術を開示する。
また、下記特許文献3は、ReRAMにおいて、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持し、保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断し、リフレッシュが必要となる場合には書込みに加えてリフレッシュをさらに行う技術を開示する。
また、下記特許文献4は、ReRAMにおいて、ライト処理(書込み処理)時に2値(「0」「1」)のうちの一方の値への書換えと他方の値への書換えとを順に実行するメモリセルに対する入力データの少なくとも一部において前述の2値のうちの特定の値のビット数が基準値(例えば、半数)を超えるか否かを判定して当該判定の結果を示す判定データを生成し、前述のビット数が基準値を超えると判定された場合には少なくとも一部を反転した入力データをライトデータとして判定データとともにメモリセルへ出力する技術を開示する。
特開2016−184402号公報 国際公開2012/140903号 国際公開2016/067846号 特開2013−239142号公報
動作不良には、例えば記憶素子へのデータの書込みに失敗する書込み不良が含まれる。書込み不良は、上述のXp−ReRAMを有する半導体記憶装置においても発生することが確認されており、動作の信頼性の低減や使用寿命が短くなるといった影響が生じる。Xp−ReRAMにおける書込み不良には、Xp−ReRAMの特性によりメモリ内においてセルの摩耗が局在化することに起因するものがある。
しかしながら、特許文献1−4に示されるような技術は、Xp−ReRAMの特性を考慮した上でメモリ内におけるセルの摩耗の局在化を解消し、書込み不良の低減を図るものではなかった。
そこで、本技術の目的は、Xp−ReRAMの特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図ることができるコントローラ、半導体記憶装置及び該装置における摩耗平準化処理方法を提供することである。
上記課題を解決するための本技術は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。
ある観点に従う本技術は、書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う。
なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。
また、「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことをいい、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
本技術の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
本技術の一実施形態に係る半導体記憶装置の概略的構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置内のダイの概略的構造を示す図である。 本技術の一実施形態に係る半導体記憶装置内のバンクの概略的構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置内のメモリセルアレイの概略的構造を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるセクタデータの構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置の機能的構成の一例を示すブロックダイアグラムである。 本技術の一実施形態に係る半導体記憶装置におけるマッピング情報のデータ構造の一例を示す図である。 本技術の一実施形態におけるセクタグループ管理情報に基づく論理セクタと物理セクタとの対応付け一例を説明する図である。 本技術の一実施形態におけるセクタグループ管理情報に基づく論理セクタと物理セクタとの対応付け一例を説明する図である。 本技術の一実施形態に係る不揮発性メモリの情報空間を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるデータの書込み処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるデータの書込み処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理でのセクション更新処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるデータの読出し処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理のシミュレーション結果を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるリフレッシュ処理の検証結果を示す図である。
以下、図面を参照して本技術の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本技術は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
図1は、本技術の一実施形態(以下、「本実施形態」と略記する)に係る半導体記憶装置1の概略的構造の一例を示す図である。同図に示すように、半導体記憶装置1は、例えば、コントローラ10と、複数の書換え可能な不揮発性メモリ(以下「不揮発性メモリ」という)20と、ワークメモリ30と、ホストインターフェース40とを含み構成され、これらは例えば1つのボード50上に配置され得る。
コントローラ10は、半導体記憶装置1の動作を統括的に制御するコンポーネントである。本技術におけるコントローラ10は、後述するように、メモリセルMCの摩耗の局在に対処するための処理を行い得るように構成されている。
不揮発性メモリ20は、図示しないホストから受信したユーザデータや各種の制御データを記憶するためのコンポーネントであり、本例では、10個の不揮発性メモリパッケージ20(1)〜20(10)が設けられている。ReRAMは、不揮発性メモリの一例である。制御データは、例えば、メタデータ、アドレス管理データ、及びエラー訂正データ等を含む。1つの不揮発性メモリパッケージ20は、例えば8ギガバイト×8ダイの64ギガバイトのメモリ容量を有する。したがって、10個のうち8個の不揮発性メモリパッケージに有効データを記憶可能な不揮発性メモリ20は、64ギガバイト×8パッケージの512ギガバイトのメモリ容量を実現する。また、図2に示すように、各ダイDは、例えば16個のバンクBと、各バンクBに対応するマイクロコントローラ70(図2中、「μC」と略記)と、周辺回路/インターフェース回路60とを含み構成される。また、図3に示すように、各バンクBは、1ビットのアクセス単位をそれぞれ有するメモリセルアレイ(本例では256個)からなるタイルTと、これらのタイルTを制御するマイクロコントローラ70とを含み構成される。各バンクBは、マイクロコントローラ70の制御の下、タイルT群を協調動作させ、全体で所定バイトサイズ(本例では256バイト)のデータブロックのアクセスを実現する。
タイルTは、例えば、図4に示すように、2層のメモリセルアレイ構造となっている。本例において2層メモリセルアレイは、上部ワード線UWLとビット線BLとの各交点及び下部ワード線LWLとビット線BLとの各交点に1ビットのメモリセルMCを有する。メモリセルMCは、抵抗値の高低の状態により1ビットの情報を記録する抵抗変化素子VR(Variable Resistor)と、双方向ダイオード特性を有する選択素子SE(Selector Element)の直列構造となっている。なお、以下では、「メモリセル」を単に「セル」と称することもある。
図1に戻り、ワークメモリ30は、半導体記憶装置1の高速化や摩耗低減等のために設けられ、不揮発性メモリ20に格納された管理データの全部又は一部を一時的に保持するコンポーネントである。ワークメモリ30は、例えば高速アクセス可能なDRAM等の書換え可能な揮発性メモリにより構成される。ワークメモリ30のサイズは、不揮発性メモリ20のサイズに応じて設定され得る。
ホストインターフェース40は、半導体記憶装置1が、コントローラ10の制御下、図示しないホストとデータ通信をするためのインターフェース回路である。ホストインターフェース40は、例えば、PCI Express規格に従って構成される。
上述したように、Xp−ReRAMにおいては、セルの摩耗が局在化することで書き込み不良が発生し得る。書込み不良には、以下のようなものがある。
(1)書込み摩耗による書込み不良
メモリセルMCの抵抗変化素子VRは、物理的特性から、抵抗値をHRS(高抵抗状態)からLRS(低抵抗状態)に変化させるセット、又はLRSからHRSに変化させるリセットを繰り返すこと、つまりデータ(ビットデータ)の書込みないしは書換えにより摩耗する。これを書込み摩耗(Write Endurance Wore-out)という。メモリセルMCに対する書込みないしは書き換えには、書込み摩耗に基づく限度がある。一のメモリセルMCは、データの消去および書込み(セット又はリセット)を1回として計測する書き換え回数(書込み回数)が書き込み耐用回数(Write Endurance)に達すると書込み摩耗が限度となり、最終的に、スタック不良を引き起こす。本実施形態による半導体記憶装置1において、メモリセルMCの書込み耐用回数は、例えば120万(1.2e6)回である。
スタック不良とは、メモリセルMCにおいて抵抗変化素子VRの抵抗値がHRSからLRSに、又はLRSからHRSに変化しなくなるエラーであって、これにより書き込み不良が生じる。スタック不良には、抵抗変化素子VRがLRSにスタックするスタック−LRS及び抵抗変化素子VRがHRSにスタックするスタック−HRS(以下これらをまとめて「スタック−LRS/HRS」と表記することもある。)がある。スタック−LRS及びスタック−HRSの何れにスタックするかは、メモリセルMCの特性や書込まれるデータのパターンに依存し、また、不定であり得る。
(2)読出し摩耗による書込み不良
メモリセルMCの選択素子SEは、書込みのみならず読出しを繰り返すことによっても摩耗する。これを読出し摩耗(Read Endurance Wore-out)という。読出し摩耗はLRSのメモリセルMCからの読出しの繰り返しによって生じる。具体的には、読出しの対象となるメモリセルMCがLRSである場合、選択状態(オン状態)の選択素子SEの両端(ワード線とビット線BL)の電圧が低下して当該両端の間に急激に電流が流れる現象(スナップ)が生じる。このスナップが繰り返されることで読出し摩耗が生じる。メモリセルMCに対するデータの読出しには、読出し摩耗に基づく限度があり、LRSでの読出し回数が読出し耐用回数(Read Endurance)に達すると、スナップによる読出し摩耗が限度となり、最終的にディスターブ不良を引き起こす。本例において、メモリセルMCの読出し耐用回数は、例えば600万(6.0e6)回である。
読出し摩耗によってディスターブ不良が発生すると、選択素子SEのしきい値電圧が通常より低くなり、メモリセルMCには低電圧の電流が流れる。これにより、ディスターブ不良が発生したメモリセルMCと同一ワード線(上部ワード線UWL、下部ワード線LWL)及びビット線BL上の他のメモリセルMCも書込み不良となる。
ディスターブ不良は、Xp−ReRAM特有の不良であり、スタック不良と異なり、ワード線及びビット線BLを共有する多数の正常なメモリセルMCにも書込み不良を引き起こす。このため、読出し摩耗を防止することにより、不揮発性メモリ20の動作信頼性や使用寿命の大幅な向上が期待できる。
(3)連続読出しによる書込み不良
また、LRSにあるメモリセルMCからの読出し回数が上述の読出し耐用回数に達していなくても、連続読出し(Read-induced Over-SET)によって書込み不良が発生し得る。連続読出しは、LRSにあるメモリセルMCを、HRSに変化させることなく連続して読出す回数(連続読出し回数)が連続読出し基準回数(Over-Set Criteria)に達することにより、スタック−LRSを引き起こす現象である。本例では、連続読出し基準回数は例えば1万(1.04e)回程度である。連続読出しによる書込み不良は、選択素子SEの特性および抵抗変化素子VRの特性の両方に起因しており、Xp−ReRAM特有の不良である。
このように、本技術における3種類の書込み不良は、特定のメモリセルMCに対するアクセス(書き込み、書き換えまたは読出し等)が繰り返されること、つまりアクセスが集中することによって、不揮発性メモリ20内においてメモリセルMCの摩耗(抵抗変化素子VR、選択素子SEの摩耗)が局在的することに起因する。そこで、本技術によるコントローラ10は、不揮発性メモリ20において発生する書込み不良に対処する処理として、不揮発性メモリ20に対するアクセス時において所定の確率で、各メモリセルMCの摩耗を平準化する摩耗平準化処理を行い得るように構成されている。摩耗平準化処理は不揮発性メモリ20内全体でメモリセルMCへのアクセスを分散させ得る処理である。
摩耗平準化処理の一例としては、例えばアドレスリマッピング処理、データ反転処理、リフレッシュ処理がある。アドレスリマッピング処理は、アドレスリマッピング(Address Remapping)技術により不揮発性メモリ20内の各メモリセルMCの書込み(書き換え含む)回数を平均化するための処理である。また、データ反転処理は、メモリセルMCに書込むデータ(書込みデータ)を反転させて、不揮発性メモリ20内における各メモリセルMCのセット処理回数とリセット処理回数とを平均化する処理である。また、リフレッシュ処理は、不揮発性メモリ20内においてアクセス対象のメモリセルMCのうちLRSにある全てのメモリセルMCを一旦HRSに変化させて、LRSでの連続読み出しを防止する処理である。これらの摩耗平準化処理の詳細は後述する。
本技術における半導体記憶装置1では、これらの摩耗平準化処理によって、不揮発性メモリ20内全体でメモリセルMCの摩耗が平準化されてメモリセルMCの摩耗の局在が解消され、書込み不良が防止可能となる。また、不揮発性メモリ20は、摩耗平準化処理によって書込み不良が防止されることで、使用寿命が最大化される。
本技術に係る半導体記憶装置1では、メモリアクセスは、例えば、セクション、セクタ及びページというデータブロックの単位で管理される。すなわち、セクションは、不揮発性メモリ20のメモリ容量(512ギガバイト)を8キロバイト単位に区切って管理するデータブロックである。セクションは、例えば320バイト(実データは256バイト)のデータブロックであるセクタを32個格納する。セクタは320バイトのセクタデータを格納するデータブロックであり、図示しないホストとの基本アクセス単位である。セクタデータは、半導体記憶装置1上で、例えば32バイトのデータブロックであるページに10分割され、それぞれ異なる10チャネルを通じて不揮発性メモリ20に書き込まれて記憶される。ページは、不揮発性メモリ20の1つのダイDにおける1つのバンクへのアクセス単位であり、各ページ中の各ビットには、各バンクB中のタイルTの各ビット(メモリセルMC)が対応する。
本技術に係る半導体記憶装置1においてセクタは、不揮発性メモリ20内の複数のメモリセルMCに基づくデータ記憶領域に相当する物理セクタと、コントローラ10におけるアクセス制御のために物理セクタにマッピング(対応付け)された仮想的なデータ記憶領域に相当する論理セクタとに分けて管理される。また、32個の物理セクタを格納するセクションを物理セクションとし、物理セクタにマッピングされた32個の論理セクタを格納するセクションを論理セクションとする。また、詳しくは後述するが、半導体記憶装置1では、物理セクション及び物理セクタを特定する物理アドレス(後述する物理セクションアドレス、物理セクタアドレス)と、論理セクション及び論理セクタを特定する論理アドレス(後述する論理セクションアドレス、論理セクタアドレス)とがセクション単位でマッピングされている。つまり、半導体記憶装置1においてセクションは、論理アドレスと物理アドレスとのマッピングに用いられるアクセス単位である。これにより、半導体記憶装置1におけるメモリアクセスにおいて、コントローラ10はデータ記憶領域である物理セクタにアクセス可能となる。
図5は、本技術の一実施形態に係る半導体記憶装置1におけるセクタデータの構造の一例を示す図である。すなわち、同図に示すように、セクタデータは、例えば、256バイトの実データと、8バイトのメタデータと、4バイトの論理セクションアドレス・反転フラグ(以下「LA/IV」という)と、45バイトのECCパリティ(以下「パリティ」という)と、7バイトのパッチとから構成される320バイトのデータである。メタデータは、実データを管理するための二次的なデータであり、例えばアドレス情報、CRCチェックサム、バージョン番号及びタイムスタンプ等を含む。実データ及びメタデータは、図示しないホストから受信されるユーザデータに相当する。パリティは、例えば、実データ、メタデータ及びLA/IVをペイロードとして生成されるパリティデータである。パッチは、セクタ内に発生したスタック不良及びディスターブ不良のメモリセルMCに本来記録されるべき正しい値を格納する。なお、セクタデータは、図示しないホストと半導体記憶装置1との間のアクセス単位でもある。320バイトのセクタデータは、半導体記憶装置1上で、例えば10チャネルに分割されて記憶される。LA/IV、パリティ及びパッチは、ユーザデータに対してコントローラ10によって付加されるデータである。
ここで、通常、半導体記憶装置に対しては相対的に小さいアクセス単位でのパフォーマンス向上やビットコストの低減といったことがユーザから望まれている。一方でエラー訂正の観点では、相対的に大きなアクセス単位でパリティを生成することによってエラー訂正能力の向上が見込まれる。これらの状況に鑑み、本例の半導体記憶装置1は、実データサイズを256バイトとしている。なお、セクタデータにおける実データのサイズは、求められる条件(パフォーマンスやエラー訂正の精度等)に応じて適宜設計され得る。
図6は、本技術の一実施形態に係る半導体記憶装置1の機能的構成の一例を示すブロックダイアグラムである。同図は、図1に示した半導体記憶装置1の構成を機能的に示したものである。
同図において、コントローラ10は、不揮発性メモリ20を有する半導体記憶装置1の動作を統括的に制御する。例えば、コントローラ10は、ホストインターフェース部40を介して、図示しないホストからアクセスコマンドを受信すると、当該アクセスコマンドに応じて、後述のアクセス制御部110によって不揮発性メモリ20に対してアクセスし、その結果をホストに発行ないしは送信するように制御を行う。
本例では、コントローラ10は、不揮発性メモリ20に対するアクセスによって生じるメモリセルMCの摩耗の局在化を解消し、書き込み不良の発生を低減するための様々な処理(摩耗平準化処理)を行う。コントローラ10は、同図に示すように、アクセス制御部110と、摩耗平準化処理部130と、ECC処理部120と、を含み構成され得る。
アクセス制御部110は、不揮発性メモリ20における物理セクタを特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、物理セクタに対するアクセスを制御する。ここで、物理セクタは、不揮発性メモリ20における複数のメモリセルMCの幾つか(本例では、320バイト分(320個)のメモリセルMC)に基づくデータ記憶領域の一形態である。
アクセス制御部110は、コントローラ10がホストから受信したアクセスコマンドに基づいて、不揮発性メモリ20へのアクセスを制御する。アクセスコマンドは、上述のセクタデータ(図5参照)のうち、ユーザデータ(実データ及びメタデータ)とともにコントローラ10に受信される。アクセスコマンドには、少なくとも不揮発性メモリ20のセクタ(物理セクタ)へのデータ書込みを要求する書込みアクセスコマンドと、物理セクタからのデータ読出しを要求する読出しアクセスコマンドがある。アクセス制御部110は、書込みアクセスコマンドを受信すると、物理セクタに対してデータを書込む書込みアクセスを行う。また、アクセス制御部110は、読出しアクセスコマンドを受信すると、物理セクタからデータを読出す読出しアクセスを行う。
アクセス制御部110は、不揮発性メモリ20のセクタ(物理セクタ)へのアクセスにあたり、図示しないホストから受信された論理アドレスを不揮発性メモリ20上の物理アドレスに変換するアドレス変換処理を行う。具体的には、論理アドレスは、図示しないホストからアクセスコマンドとともに送信されたユーザデータ(実データ及びメタデータ(図5参照))のうちメタデータにアドレス情報として格納されている。アクセス制御部110は、受信した論理アドレスに基づき、後述するワークメモリ30上の作業用アドレス変換テーブル310が保有するマッピング情報を参照し、アドレス変換処理を行う。アドレス変換処理では、ホストから受信した論理アドレスに対応する半導体記憶装置1の論理アドレス(本例では論理セクションアドレス)を、不揮発性メモリ20上の物理アドレスに変換する。なお、コントローラ10は、アクセス制御部110とは独立した機能構成として、アドレス変換処理を実行するアドレス変換部を有していてもよい。
図7は、アドレス変換処理に用いられるマッピング情報を構成するアドレスのデータ構造の一例を示す図である。マッピング情報は、物理セクションアドレスと、物理セクションアドレスにマッピング(対応付け)された論理セクションアドレスと、論理セクションアドレスに付随するセクタ管理情報とで構成され、作業用アドレス変換テーブル310に格納される。本実施形態においてマッピング情報は、セクション単位で作業用アドレス変換テーブル310に保持されている。つまり、マッピング情報は、作業用アドレス変換テーブル310において、32個の物理セクタを格納する物理セクションごとに保持されている。詳しくは後述するが、本実施形態において、マッピング情報における物理セクションアドレスと論理セクションアドレスとの対応付けは可変となっている。
物理セクションアドレスは、不揮発性メモリ20上のデータ記憶領域である物理セクタを格納する物理セクションを特定するためのアドレスであり、例えば、2ビットのダイID、13ビットのワード線アドレス、11ビットのビット線アドレスの合計26ビットからなる。ダイIDは不揮発性メモリ20(1)〜(10)のそれぞれにおけるダイDを識別する情報であり、ワード線アドレスは、ダイDにおける各バンクB内の各タイルTにおける各上部ワード線UWL、各下部ワード線LWLを特定するアドレスであり、ビット線アドレスは、各タイルTにおける各ビット線BLを特定するアドレスである。本実施形態による半導体記憶装置1において、各タイルTは、8192(2^13)本のワード線(上部ワード線UWL及び下部ワード線LWLがそれぞれ4096本ずつ)と、2048(2^11)本のビット線BLとを有する。物理セクションアドレスでは、各不揮発性メモリ20内のダイDと、当該ダイDが有するバンクB内のメモリセルMCとが特定される。
半導体記憶装置1において、物理セクションには、アクセス制御部110におけるアクセス制御に用いるデータブロックである論理セクションがマッピングされている(後述の図8A及び図8B参照)。論理セクションアドレスは、物理セクションアドレスと同様に26ビットのビット列であり、物理セクションにマッピングされた論理セクションを特定するためのアドレスである。論理セクションアドレスは、コントローラ10によって任意の物理セクションアドレスにマッピングされる。
セクタ管理情報は、2ビットのセクタグループ管理情報と12ビットのグループ内管理情報の合計14ビットからなり、論理セクション内の32個のセクタ(論理セクタ)と物理セクション内の32個のセクタ(物理セクタ)とのマッピングを管理する情報である。本技術では、メモリセルMCの摩耗の平準化とマッピング情報の肥大化防止との両立に鑑み、アドレス変換テーブル(後述のアドレス変換テーブル210及び作業用アドレス変換テーブル310)において、論理セクション内の32個の論理セクタを8個単位の4つのセクタグループに区切り、このセクタグループ単位で、論理セクタと物理セクタとのマッピングを管理している。なお、本例においてセクタグループは、マッピング情報における論理セクタの管理に用いるグループであり、半導体記憶装置1におけるデータブロックではない。2ビットのセクタグループ管理情報は、セクタグループ単位(8個単位)で論理セクタと物理セクタとのマッピングを管理する情報である。さらに、アドレス変換テーブル(アドレス変換テーブル210、作業用アドレス変換テーブル310)では、各セクタグループ内の8個の論理セクタそれぞれと、各セクタグループにマッピングされた8個の物理セクタそれぞれとの一対一のマッピングを、3ビットのグループ内管理情報によって管理する。後述する図8に示すように、12ビットのグループ内管理情報には、4セクタグループ(本例ではグループ00〜03)分の各3ビットのグループ内管理情報が含まれる。
31ビットの論理アドレス情報(論理セクションアドレス及び1セクタグループ分のセクタ管理情報)は、ホストから受信された論理アドレスによって特定可能である。したがって、アクセス制御部110は、アクセスコマンドを受信すると、アドレス変換処理においてアドレス変換テーブル(例えば作業用アドレス変換テーブル310)を参照し、受信した論理アドレスに基づいて、マッピング情報から論理セクションアドレス(アクセス先論理セクションアドレス)を取得する。アクセス制御部110は取得したアクセス先論理セクションアドレスから、論理セクション内の論理セクタを一意に特定するための論理セクタアドレスを生成する。論理セクタアドレスは、受信した論理アドレスに対応する26ビットの論理セクションアドレスと、5ビットのセクション内セクタアドレスからなる。ここで、セクション内セクタアドレスは、セクタ管理情報における2ビットのセクタ管理情報と、4セクタグループのうち一のセクタグループに対応する3ビットのグループ内管理情報から生成される。アクセス制御部110は、受信した論理アドレスに基づいて、取得したアクセス先論理セクションアドレスに対応する4セクタグループから一のセクタグループを特定する。
アクセス制御部110は、論理セクタアドレスを生成すると、生成した論理セクタアドレスを、物理セクタアドレスに変換する。物理セクタアドレスは、物理セクタを特定するアドレスであって、物理セクション内に格納された32個の物理セクタを区別するために用いられる。
物理セクタアドレスは、取得した論理セクションアドレスに対応する26ビットの物理セクションアドレスと、1ビットのチャネルグループID、及び4ビットのバンクアドレスの合計31ビットからなる。チャネルグループID及びバンクアドレスは、論理セクタアドレスにおける5ビットのセクション内セクタアドレスを変換して生成される。チャネルIDは、コントローラ10と不揮発性メモリ20(1)〜(10)のそれぞれとを接続するチャネルを特定する情報である。本実施形態において、コントローラ10と10パッケージの不揮発性メモリ20とは、10チャネル×2系統の計20チャネルで接続される。具体的には、各不揮発性メモリ20は系統の異なる2チャネルでコントローラ10と接続されており、各不揮発性メモリ20内の8つのダイDは、4ダイずつ異なる系統のチャネルに接続されている。また、バンクアドレスは、各ダイDが有する16個のバンクBのそれぞれを特定するアドレスであって、各ダイD内のバンクBには異なるアドレスが割り当てられている。
このように本技術による半導体記憶装置1は、ホストから受信した論理アドレスを、アドレス変換テーブル(アドレス変換テーブル210、作業用アドレス変換テーブル310)に保持されたマッピング情報に基づいて、物理アドレス(本例では物理セクタアドレス)に変換することができる。
アクセス制御部110は、アドレス変換処理において取得した物理セクタアドレスを含むアクセス対象の物理セクタに対応するマッピング情報を、摩耗平準化処理部130に出力する。これにより、摩耗平準化処理部130は、アクセス対象の物理セクタに属するメモリセルMCについて、摩耗の局在化を解消するための摩耗平準化処理を行うことができる。
摩耗平準化処理部130は、アクセス(書込みアクセス又は読出しアクセス)によって生じる不揮発性メモリ20内のメモリセルMCの摩耗を平準化する摩耗平準化処理を行う。本実施形態によるコントローラ10において、摩耗平準化処理部130が、アクセス対象の物理セクタに属するメモリセルMCについて摩耗平準化処理を行うことで、不揮発性メモリ20全体においてメモリセルMCの摩耗の局在化が解消される。これにより、コントローラ10は、不揮発性メモリ20内のメモリセルMCの摩耗を平準化して、書込み不良の発生を低減することができる。
また、本実施形態による摩耗平準化処理部130は、アクセス制御部110による物理セクタへのアクセスごとに所定の確率で、摩耗平準化処理を行う。つまり、摩耗平準化処理部130は、物理セクタに属するメモリセルMCへのデータの書込み回数や、メモリセルMCにおけるデータの消去回数、メモリセルMCからのデータの読出し回数等の計測(カウント)を行うことなく、確率論的に摩耗平準化処理を実行する。
通常、不揮発性メモリを有する半導体記憶装置は、突然の電源遮断時にもデータ信頼性を維持することが望まれる。従って、上述のような各種回数に基づくカウンタベースでのアルゴリズムでは、カウンタ情報を逐次不揮発性メモリに保存する必要が生じる。しかしながら、頻繁にカウンタ情報を不揮発性メモリへ記録すると、ホストとの間のアクセス速度を低下させる場合があり、アクセス速度の低下は、半導体記憶装置におけるアクセス頻度(iops:秒間入出力回数)が高いほど、半導体記憶装置の動作性能への影響が大きくなる。ここで、Xp−ReRAMでは、10メガiopsを超えるアクセス頻度が標榜される。したがって、従来のフラッシュメモリベースの半導体記憶装置(アクセス頻度が100キロiops以下程度)では顕在化しないカウンタ情報の記録コストが顕著になる。そこで、本技術によるコントローラ10は、カウンタベースではなく、上述のように確率論的に摩耗平準化処理を実行する。これにより、コントローラ10は、半導体記憶装置1におけるアクセス速度を低下させることなく要求される動作性能を維持しながら、摩耗平準化処理を行うことができる。
摩耗平準化処理部130は、例えば摩耗平準化処理としてアドレスリマッピング処理を行うアドレスリマッピング部132と、データ反転処理を行うデータ反転部134と、リフレッシュ処理を行うリフレッシュ部136と、所定数値範囲の乱数を生成する乱数生成部138と、を含み構成され得る。アドレスリマッピング部132はテーブル更新部の一形態であり、データ反転部134はデータ反転処理部の一形態であり、リフレッシュ部136は抵抗状態変更部の一形態である。
アドレスリマッピング部132は、アドレスリマッピング(Address Remapping)技術により不揮発性メモリ20内の各メモリセルMCの書き換え回数(書込み回数)を平均化するためのアドレスリマッピング処理を行う。このアドレスリマッピング処理がテーブル更新処理の一例である。具体的には、アドレスリマッピング部132は、アドレスリマッピング処理として、アクセス制御部110による物理セクタへのアクセスごとに所定のアドレスリマッピング確率で、作業用アドレス変換テーブル310内のマッピング情報を更新する。この所定のアドレスリマッピング確率が第1の確率の一例である。つまり、本実施形態におけるアドレスリマッピング処理は、不揮発性メモリ20へのアクセスごとに確率論的に実行される。
本実施形態においてアドレスリマッピング部132は、アドレスリマッピング処理として、作業用アドレス変換テーブル310におけるマッピング情報をセクション単位で更新するセクション更新処理と、当該マッピング情報を上述のセクタグループ単位で更新するセクタグループ更新処理とを行い得る。
アドレスリマッピング部132は、セクション更新処理において、アクセス制御部110による物理セクタへのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のアドレスリマッピング確率でマッピング情報を更新し、アクセス先論理セクションアドレスにマッピングされる物理セクションアドレスを更新する。これにより、アクセス対象の物理セクタと論理セクタとのマッピングが、セクションごとに更新される。すなわち、アドレスリマッピング部132は、アドレスリマッピング処理によるマッピング情報の更新を、アクセス対象の物理セクタが格納されるセクション(物理セクション)ごとに行うことができる。
また、アドレスリマッピング部132は、セクタグループ更新処理において、アクセス制御部110による物理セクタへのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のアドレスリマッピング確率でマッピング情報を更新し、アクセス先論理セクションアドレスに付随するセクタ管理情報(図7参照)を更新する。セクタグループ更新処理には、アクセス対象の物理セクタのマッピング情報においてセクタグループ管理情報を更新する第1グループ更新処理と、アクセス対象の物理セクタのマッピング情報においてグループ内管理情報を更新する第2グループ更新処理とが含まれる。
ここで、図8A及び図8Bを用いてセクタ管理情報におけるセクタグループ管理情報及びグループ内管理情報について、セクション内における物理セクタと論理セクタとのマッピングと合わせて説明する。
図8A中の1段目には、8キロバイト相当のデータブロックである物理セクションPS内に格納された32個の物理セクタの並び順を図示している。本例において、物理セクションPS内に格納された物理セクタは、物理セクタアドレスPST0〜31で特定される。物理セクションPS内において、32個の物理セクタは、例えば物理セクタアドレスの昇順に格納されている。図8A中の1段目では、物理セクタアドレスPST0の物理セクタを先頭として、物理セクタアドレスPST31の物理セクタまでの32個のセクタがこの順に並んでいる。本実施形態において、物理セクション内における物理セクタの割り付けは固定であり、物理セクション内での物理セクタの並び順も固定である。したがって、例えば物理セクションPS内の32個の物理セクタは全て、同じ論理セクション(本例では、論理セクションLS)に対応付けられる。
また、図8A中の2〜4段目には、物理セクションPSとマッピングされた論理セクションLS内の32個の論理セクタの並び順を図示している。本例において、論理セクションLS内に格納された論理セクタは、論理セクタアドレスLST0〜31で特定される。上述のように、セクタ管理情報は、論理セクタを8個単位の4つのセクタグループに区切り、このセクタグループ単位で、論理セクタと物理セクタとのマッピングを管理している。図8A中2〜4段目では、理解を容易にするため、論理セクションLS内の32個の論理セクタを8個×4セクタグループ(セクタグループ00〜03)に分けて図示している。
本例において、セクタグループ00は、論理セクションLS内の論理セクタアドレスの上位8番目まで(論理セクタアドレスLST0〜7)に対応する論理セクタを含み、セクタグループ01は、論理セクタアドレスの上位9番目から16番目まで(論理セクタアドレスLST8〜15)に対応する論理セクタを含み、セクタグループ02は、論理セクタアドレスの上位17番目から24番目まで(論理セクタアドレスLST16〜23)に対応する論理セクタを含み、セクタグループ03は、論理セクタアドレスの上位25番目から32番目まで(論理セクタアドレスLST24〜31)に対応する論理セクタを含んでいる。また、セクタグループ内の論理セクタの割り付けは固定である。
また本実施形態において、論理セクション内の論理セクタの割り付けは、物理セクタと同様に固定であり、さらに各セクタグループ内の論理セクタの割り付けも固定である。一方で、論理セクション内における論理セクタの並び順は、セクタグループごと又はセクタグループ内の個々の論理セクタについて可変となっている。本実施形態においてマッピング情報におけるセクタ管理情報は、物理セクタの並び順(固定)に対する論理セクタのセクタグループ単位での並び順(可変)のシフト数(並び順)を示しており、これにより物理セクタと論理セクタとのセクタグループ単位でのマッピングが可能となっている。
本例において、図8A中の2段目の左側に記載したセクタ管理情報1において、セクタグループ管理情報=「0」、グループ内管理情報=「0,0,0,0」である。セクタグループ管理情報及びグループ内管理情報は実際にはビットデータであるが、理解を容易にするため、図8A及び図8B中では10進数の数値に置き換えて図示している。セクタグループ管理情報及びグループ内管理情報における各データ(数値)は、論理セクタの並び順に係るシフト数を示している。例えば、シフト数が「0」であることは、物理セクタの並び順に対して、論理セクタの並び順がシフトされていないことを示す。具体的には、セクタグループ管理情報=「0」は、物理セクタの並び順に対して、セクタグループ00〜03のセクタグループ単位の並び順がシフトされていないことを示している。
また、グループ内管理情報=「0,0,0,0」は、セクタグループ00〜03内のいずれの論理セクタも、物理セクタの並び順に対して配置がシフトされていないことを示している。図8A及び図8B中では、理解を容易にするため、セクタグループ00〜03に対応するグループ内管理情報をカンマ区切りで示している。グループ内管理情報の4つデータは、この順に、セクタグループ00〜03それぞれのシフト数を示している。グループ内管理情報は、実際はセクタグループ00〜03に対応する3ビットのデータが連続する12ビットのビット列である。12ビットのグループ内管理情報は、冒頭から3ビットがセクタグループ00に対応し、以下3ビットずつセクタグループ01〜03に対応している。グループ内管理情報はセクタグループごとに3ビットで、セクタグループ内の8個の論理セクタのシフト数を示している。
このように、セクタグループ管理情報=「0」かつグループ内管理情報=「0,0,0,0」のセクタ管理情報1は、物理セクションPS内の物理セクタの並び順と、論理セクションLS内の論理セクタの並び順が一致していることを示している。この並び順が一致している状態を、シフト基準状態という。
図8A中の3段目において、セクタ管理情報2は、セクタグループ管理情報=「1」かつグループ内管理情報=「0,0,0,0」となっている。セクタグループ管理情報=「1」は、論理セクタの並び順、具体的にはシフト基準状態に対するセクタグループ00〜03の並び順が、一方向(本例では論理セクタアドレスの先頭方向)に1つシフトされている1シフト状態であることを示している。本例においてセクタグループ管理情報の1シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ01、02、03、00の順に循環的にシフトしている。このように、セクタグループ管理情報は、シフト基準状態に対する4セクタグループのシフト数を示している。なお、セクタ管理情報2において、グループ内管理情報=「0,0,0,0」であるため、各セクタグループ内における各論理セクタの並び順はシフト基準状態から変更されていない。これは、セクタ管理情報3でも同様である。
シフト基準状態に対して、セクタグループ内の論理セクタの並び順が1シフト状態となることは、すなわち、物理セクタの固定された並び順に対して、論理セクタの並び順がグループ単位で1シフト状態であることを示す。したがって、セクタグループの並び順が1シフト状態の場合、例えばセクタグループ01内の論理セクタを特定する論理セクタアドレスLST8〜15は物理セクタアドレスPST0〜7に、この順でマッピングされ、セクタグループ02内の論理セクタを特定する論理セクタアドレスLST16〜23は、物理セクタアドレスPST8〜15に、この順でマッピングされ、セクタグループ03内の論理セクタを特定する論理セクタアドレスLST24〜32は物理セクタアドレスPST16〜23に、この順でマッピングされ、セクタグループ00内の論理セクタを特定する論理セクタアドレスLST0〜7は物理セクタアドレスPST24〜31に、この順でマッピングされる。
また、図示は省略するが、セクタグループ管理情報=「2」は、シフト基準状態に対するセクタグループ00〜03の並び順が、論理セクタアドレスの先頭方向に2つシフトされている2シフト状態であることを示す。本例においてセクタグループの2シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ02、03、00、01の順に循環的にシフトしている。
また、図8A中の4段目において、セクタ管理情報3は、セクタグループ管理情報=「3」かつグループ内管理情報=「0,0,0,0」となっている。セクタグループ管理情報=「3」は、シフト基準状態に対するセクタグループ00〜03の並び順が、論理セクタアドレスの先頭方向に3つシフトされている1シフト状態であることを示している。本例においてセクタグループの3シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ03、00、01、02の順に循環的にシフトしている。
このように、本実施形態において、セクタグループ管理情報は、セクタグループごとの論理セクション内の論理セクタの並び順(シフト数)を示している。上述のように、セクタグループ管理情報では、物理セクタと論理セクタとのセクタグループ単位でのマッピングを、物理セクタの並び順に対する論理セクタのセクタグループ単位での並び順のシフト数を示すセクタグループ管理情報(2ビット)によって特定することができる。
つまり、アドレスリマッピング部132は、第1グループ更新処理によりセクタグループ管理情報を更新することで、マッピング情報の更新を物理セクション内の幾つかの物理セクタごとに行うことができる。ここで、物理セクション内の幾つかの物理セクタとは、セクタグループ内の論理セクタと対応する8個の物理セクタに相当する。すなわち、第1グループ更新処理では、論理セクション内における論理セクタの並び順、つまり物理セクタと論理セクタとのマッピングが、セクタグループ単位(8セクタ単位)で更新される。また、セクタグループ管理情報における並び順のシフト数は、常にシフト基準状態を基準としている。したがって、例えばセクタグループ管理情報が「0」から「3」に更新された場合と、セクタグループ管理情報が「1」から「3」更新された場合とでは、同様に、論理セクタの並び順は3シフト状態(図8A中の4段目参照)となる。
図8B中の1段目は、図8Aと同様に、物理セクションPS内に格納された32個の物理セクタの並び順を図示している。図8B中の2段目の左側に記載したセクタ管理情報4において、セクタグループ管理情報=「0」、グループ内管理情報=「2,0,0,0」である。グループ内管理情報=「2,0,0,0」は、セクタグループ内の論理セクタの並び順が、セクタグループ00内のみ2シフト状態であり、他のセクタグループ01〜03内ではシフト基準状態のままである(シフトしていない)ことを示している。このため、セクタグループ00内における論理セクタの並び順は、シフト基準状態(図8A中2段目参照)に対して、論理セクタアドレスの先頭方向に2つシフトされた2シフト状態となっている。具体的には、2シフト状態では、セクタグループ00内における論理セクタの並び順が、論理セクタアドレスLST2〜7,0,1の順に循環的にシフトしている。
なお、セクタ管理情報4においてセクタグループ管理情報は、「0」である。つまり、セクタグループ単位での物理セクタと論理セクタとのマッピングがシフト基準状態のままである。このため、本例において、セクタ管理情報4では、論理セクタと物理セクタとのマッピングは、セクタグループ00にマッピングされた物理セクタアドレスPST0〜7の8個の物理セクタそれぞれについてのみ更新される。具体的には、セクタ管理情報4によれば、セクタグループ00内の論理セクタを特定する論理セクタアドレスLST2〜7,0,1は、この順に、それぞれ図8B中1段目に示す物理セクタアドレスPST0〜7で特定される物理セクタにマッピングされる。
また、図8B中の3段目の左側に記載したセクタ管理情報5において、セクタグループ管理情報=「0」、グループ内管理情報=「5,0,5,0」である。これは、セクタグループ00,02内では論理セクタの並び順が5シフト状態であり、他のセクタグループ01,03内では論理セクタの並び順がシフト基準状態のままである(シフトしていない)ことを示している。このため、セクタグループ00内における論理セクタの並び順は、シフト基準状態(図8A中2段目参照)に対して、論理セクタアドレスの先頭方向に5つシフトされた5シフト状態となっている。具体的には、セクタグループ00内における論理セクタの並び順が、論理セクタアドレスLST5〜7,0〜4の順に循環的にシフトしている。また、同様に、セクタグループ02内における論理セクタの並び順は5シフト状態となっている。このため、具体的には、セクタグループ02内における論理セクタの並び順が、論理セクタアドレスLST21〜23,16〜20の順に循環的にシフトしている。
なお、管理情報5では、管理情報4と同様に、セクタグループ管理情報は、「0」である。つまり、セクタグループ00〜03の並び順はシフト基準状態のままである。このため、セクタグループ00内の論理セクタとセクタグループ00にマッピングされた物理セクタアドレスPST0〜7の8個の物理セクタそれぞれ、及びセクタグループ02内の論理セクタとセクタグループ02にマッピングされた物理セクタアドレスPST16〜23の8個の物理セクタそれぞれについて、マッピングが更新される。具体的には、セクタグループ00内の論理セクタアドレスLST5〜7,0〜4で特定される8個の論理セクタは、この順に、図8B中1段目に示す物理セクタアドレス00〜07で特定される物理セクタにそれぞれマッピングされる。また、セクタグループ02内の論理セクタアドレスLST21〜23,16〜20で特定される8個の論理セクタは、この順に、図8B中1段目に示す物理セクタアドレスPST16〜23で特定される物理セクタにそれぞれマッピングされる。
このように、本実施形態において、グループ内管理情報は、セクタグループ内の論理セクタの循環状態(シフト数)を示している。上述のように、グループ内管理情報は、各セクタグループ内の8個の論理セクタそれぞれと、各セクタグループにマッピングされた8個の物理セクタそれぞれとの一対一のマッピングを、3ビットずつのグループ内管理情報によって管理する。
なお、本技術においてセクタグループの数は、4個に限られず、各セクタグループに同数の論理セクタが含まれていれば4個以下であっても、4個以上であってもよい。セクタグループ単位でのシフト数を示すセクタグループ管理情報は、セクタグループの個数(n個)−1を最大値とする第1数値範囲に設定されていればよい。ただし、セクタグループ管理情報の数値範囲が増えると、セクタグループ管理情報のビット数を増やす必要がある。したがって、マッピング情報の肥大化抑制の観点では、セクタグループ数は4個以下であるとよい。また、セクタグループの数に応じて、セクタグループ内の論理セクタ数も変化する。セクタグループ内での論理セクタのシフト数を示すグループ内管理情報は、セクタグループ内の論理セクタ個数(m個)−1を最大値とする第2数値範囲に設定されればよい。
アドレスリマッピング部132は、第2グループ更新処理によりグループ内管理情報を更新することで、マッピング情報の更新を物理セクション内の幾つかの物理セクタ(セクタグループにマッピングされた8個の物理セクタ)それぞれについて行うことができる。すなわち、第2グループ更新処理では、セクタグループ内における論理セクタそれぞれの並び順が更新される。また、グループ内管理情報における並び順のシフト数は、常にシフト基準状態を基準としている。したがって、一のグループ内管理情報(例えばセクタグループ00のグループ内管理情報)が「0」から「2」に更新された場合と、当該グループ内管理情報が「1」から「2」に更新された場合とでは、同様に、セクタ内の論理セクタの並び順は2シフト状態(図8B中の2段目参照)となる。
本実施形態では、アドレスリマッピング部132がセクタグループ管理情報とグループ内管理情報との組合せ(セクタ管理情報)を更新することによって、セクタグループ単位での論理セクタの並び順と、セクタグループ内での論理セクタの並び順とをそれぞれ個別に制御することができる。
セクタグループ更新処理(第1更グループ新処理及び第2グループ更新処理)によって、セクタ管理情報(図7参照)におけるセクタグループ管理情報及びグループ内管理情報が更新されると、セクタグループ管理情報とグループ内管理情報とで生成されるセクション内セクタアドレスが更新される。つまり、アクセス先論理セクションアドレスに基づく論理セクタアドレスから変換される物理セクタアドレスが更新される。
本実施形態においてアドレスリマッピング部132は、セクション更新処理と同時に、セクタグループ更新処理(第1グループ更新処理および第2グループ更新処理)を行い得る。つまり、アドレスリマッピング部132は、セクション単位でのマッピング情報の更新時には、セクタグループ単位、及びセクタグループ内のそれぞれの論理セクタについてのマッピング情報の更新も合わせて行い得る。したがって、本実施形態によるコントローラ10においてアドレスリマッピング部132は、マッピング情報におけるマッピングの階層(セクション、セクション内のセクタグループ、セクタグループ内のセクタ)が異なる、複数種類のアドレスリマッピング処理を合わせて実行可能に構成される。またマッピングの階層の違いは、マッピング情報の更新規模の違いにも相当する。マッピング情報の更新規模は、セクション→セクタグループ→セクタグループ内の各セクタ、の順に小さくなっている。
アドレスリマッピング部132は、セクタグループ更新処理における第2グループ更新処理のみを単独で実行し、アクセス対象の物理セクタのマッピング情報においてグループ内管理情報を単独で更新する場合もある。
本実施形態において、セクション更新処理とセクタグループ更新処理(第1グループ更新処理及び第2グループ更新処理)のいずれも、不揮発性メモリ20へのアクセス(書込みアクセス及び読出しアクセス)ごとに確率論的に実行される。
本実施形態に係るコントローラ10において、アドレスリマッピング確率のうち、第2グループ更新処理を実行する確率である第2アドレスリマッピング確率は、書込みアクセスごとに0.025%であればよく、読出しアクセスごとに0.01%であればよい。これに対し、アドレスリマッピング確率のうち、セクション更新処理を実行する確率である第1アドレスリマッピング確率は、アクセス(書込みアクセス及び読出しアクセス)ごとに第2アドレスリマッピング確率の8分の一の確率であればよい。具体的には、第1アドレスリマッピング確率は、書込みアクセスごとに0.003125%であればよく、読出しアクセスごとに0.00125%であればよい。
このように、アドレスリマッピング部132がアドレスリマッピング処理を行うアドレスリマッピング確率の値は、アクセス制御部110が行うアクセスが書込みアクセス又は読出しアクセスのいずれであるかによって異なっていてもよい。
データ反転部134は、メモリセルMCに書込むデータ(書込みデータ)を反転させて、不揮発性メモリ20内における各メモリセルMCのセット処理回数とリセット処理回数とを平均化するデータ反転処理を行う。具体的には、データ反転部134は、データ反転処理として、書込みアクセス対象の物理セクタに属するメモリセルMCに書込まれる書込みデータ内のビットを反転する。本実施形態においてデータ反転部134は、アクセス制御部110による書込みアクセスごとに、所定の反転実行確率で、データ反転処理を行う。この所定の反転実行確率が、第2の確率の一例である。つまり、本実施形態におけるデータ反転処理は、不揮発性メモリ20へのアクセス(本例では、書込みアクセス)ごとに確率論的に実行される。
本実施形態に係るコントローラ10において、反転実行確率は40%以上60%以下の範囲であればよく、50%であるとさらに好適である。
また、データ反転部134は、書込みアクセス時において、データ反転処理を行ったか否かを示すデータ反転情報を書込みデータに付加する。具体的には、データ反転部134は、データ反転処理を実行したか否か示す1ビットの反転フラグ(IV)を生成する。例えば、IV=「0」はデータ反転処理が実行されず、書込みデータが反転されていないことを示す。また、IV=「1」は、データ反転処理が実行され、書き込みデータが反転されていることを示す。書込みデータにIVが付加されて不揮発性メモリ20内に記憶されることで、読出し時において当該セクタデータを反転前の状態に復号することができる。IVは、データ反転処理の処理結果、つまりデータ反転の実行有無に基づいて生成されていればよい。IVは、例えばデータ反転部134によって書込みデータに付加されてもよいし、データ反転処理結果(例えば、データ反転実行無し=「0」、データ反転実行有り=「1」)に基づいて、アクセス制御部110、またはコントローラ10によって書込みデータに付加されてもよい。
リフレッシュ部136は、不揮発性メモリ20内においてアクセス対象のメモリセルMCのうちLRSにある全てのメモリセルMCを一旦HRSに変化させて、LRSでの連続読み出しを防止するリフレッシュ処理を行う。このリフレッシュ処理が、抵抗状態変更処理の一例である。具体的には、本実施形態においてリフレッシュ部136は、リフレッシュ処理として、コントローラ10による不揮発性メモリ20へのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のリフレッシュ実行確率でアクセス対象の物理セクタに対応するメモリセルMCをリフレッシュする処理を行う。この所定のリフレッシュ実行確率が、第3の確率の一例である。つまり、本実施形態におけるリフレッシュ処理は、不揮発性メモリ20へのアクセス(本例では、書込みアクセス)ごとに確率論的に実行される。本実施形態におけるリフレッシュ処理は、アクセス対象の物理セクタに対応するメモリセルMCが有する抵抗変化素子VRのうち、LRS(低抵抗状態)の抵抗変化素子VRを、HRS(高抵抗状態)に変化させる処理である。
本実施形態による半導体記憶装置1における不揮発性メモリ20の特性、すなわち、連続読出し基準回数が1万回程度であることを考慮すると、本技術に係るコントローラ10において、リフレッシュ実行確率は例えば0.25%であるとよい。
乱数生成部138は、所定の数値範囲内で乱数を生成する乱数生成処理を実行する。乱数生成部138が生成した乱数は、摩耗平準化処理部130の各処理部(アドレスリマッピング部132、データ反転部134及びリフレッシュ部136)において、摩耗平準化処理(アドレスリマッピング処理、データ反転処理、及びリフレッシュ処理)の実行有無の決定に用いられる。
ECC処理部120は、パリティチェックにより、データに発生したエラー(符号誤り)を検出し、これを訂正するための処理を行う。本例では、ECC処理部120は、アドレス指定された、複数のバンクBからなる物理セクタへのアクセス時に、セクタデータに対してECC符号化/復号化処理を行う。ECC処理部120は、例えば、ECCエンコーダ122とECCデコーダ124とを含む。ECC処理部120は、典型的には、ランダムエラー及び少数ビットのスタック不良及びRD不良によるエラーに対処する。
ECCエンコーダ122は、物理セクタに対してデータを書き込む際に、パリティビットを生成し、これを該データに付加する。例えば、コントローラ10が、図示しないホストから実データ及びメタデータからなる書込みデータを受信すると、該データに基づいてLA/IVを生成する。これを受けて、ECCエンコーダ122は、実データ、メタデータ及びLA/IVをペイロードとして、BCH符号に基づいて、パリティを生成する。このパリティにより、コントローラ10は、例えば313バイトあたり合計30ビットまでのエラーを訂正し得る。本例では、書込み時のエラーは、例えば313バイトあたり12ビットまで訂正されるものとし、したがって、ランダムエラーは18ビットまで訂正され得る。
ECCデコーダ124は、セクタからデータを読み出す際に、付加されているパリティに基づいて、エラーチェックを行い、検出されたエラーを訂正して、データを復旧する。本例では、読み出し時のエラーは、例えば313バイトあたり18ビットまで訂正し得る。
本技術の不揮発性メモリ20は、上述したように、タイルT群をマイクロコントローラ70のアクセス制御単位とした複数のメモリパッケージから構成される。不揮発性メモリ20は、例えば、ユーザデータ220と各種の管理データとを格納する。各種の管理データは、例えば、バックアップされたアドレス変換テーブル210と、スペアデータ240とを含む。各種の管理データは、後述する。
アドレス変換テーブル210は、図示しないホストから受信されたアクセスコマンドが示す論理アドレスを、不揮発性メモリ20上の物理セクタアドレスに変換するためのマッピング情報を格納したテーブルである。アドレス変換テーブル210はバックアップ用のアドレス変換テーブルであって、半導体記憶装置1の動作中、ワークメモリ30に展開され、作業用アドレス変換テーブル310として保持される。なお、アドレス変換テーブル210のダウンサイジングのため、アドレス変換テーブル210において扱われるアドレス単位は、ECC処理に適合したセクタサイズ(本例では320バイト)よりも大きくても良い。本例では、アドレス変換テーブル210のアドレス単位を8キロバイトのセクション単位とし、アドレス変換テーブル210における1アドレスに、32組の実データ(各256バイト)と、パリティと、パッチとを含んでも良い。
アドレス変換テーブル210と作業用アドレス変換テーブル310とは、半導体記憶装置1の動作中、コントローラ10の制御の下、同期される。これにより、コントローラ10は、作業用アドレス変換テーブル310を参照することで、アドレス変換テーブル210に格納されているマッピング情報と同等の情報を高速で参照可能となる。さらに、半導体記憶装置1は、アドレス変換テーブル210と作業用アドレス変換テーブル310との同期により、突発的な電源断時にもアドレス変換テーブル310内のマッピング情報を復旧可能であり、動作信頼性を向上することができる。
バックアップ用のアドレス変換テーブル210には、インデックスとエントリで構成されるマッピング情報(図7参照)が複数保持されている。アドレス変換テーブル210は、マッピング情報における物理セクションアドレスをインデックス(索引)とし、インデックスに紐つくエントリとして、物理セクションアドレスにマッピング(対応付け)された論理セクションアドレス及びセクタ管理情報を保持している。つまり、アドレス変換テーブル210は、論理アドレスを索引として物理アドレスを取得する形式のアドレス変換テーブルに対して、物理セクションアドレスを索引とする逆引きテーブルである。アドレス変換テーブル210は、例えばエントリの参照時において、テーブル内を探索することなく、インデックス(物理セクションアドレス)によってエントリの格納位置を特定し、その格納位置を直接アクセスすることで、効率的にエントリ(論理セクションアドレス及びセクタ管理情報)を取得することができる。
スペアデータ240は、セクタ内の固定不良の発生数に応じて、当該セクタごと代替するために用いるデータである。より具体的には、例えばセクタ内の不良セルのエラーを訂正するECPエンジン(不図示)により訂正され得るエラーの所定のビット数(例えば56ビット)を超えるビット数のエラーが発生した場合、当該セクタに格納されるべきデータがスペアデータとして記憶される。
本例のワークメモリ30は、上述したように、不揮発性メモリ20に格納された管理データの全部又は一部を一時的に保持する。ワークメモリ30は、半導体記憶装置1の高速化及び摩耗防止のため、設けられている。ワークメモリ30は、少なくとも作業用アドレス変換テーブル310を含み構成され得る。
作業用アドレス変換テーブル310は、不揮発性メモリ20に保持されたバックアップ用のアドレス変換テーブル210の実質的なコピーである。ここでいう「実質的なコピー」とは、データフォーマットを問わず、元データの内容に意味的に同じであるデータをいう。例えば、作業用アドレス変換テーブル310が、圧縮形式や冗長形式のデータのアドレス変換テーブル210から復元されたものである場合、それは、実質的なコピーであるといえる。半導体記憶装置1の起動により、アクセス制御部110の制御の下、不揮発性メモリ20から読み出されたアドレス変換テーブル210は、ワークメモリ30上に作業用アドレス変換テーブル310として保持される。本実施形態において、マッピング情報の参照は通常、ワークメモリ30上の作業用アドレス変換テーブル310に対して行われる。バックアップ用のアドレス変換テーブル210は、作業用アドレス変換テーブル310が更新された場合のみ更新される。
図9は、本技術の一実施形態に係る不揮発性メモリの情報空間を説明するための図である。同図に示すように、不揮発性メモリ20の物理セクションは、アドレス変換テーブル210を介して論理セクションにマッピングされ、論理セクションは、データコンテンツに関連付けられる。
同図に示すように、データコンテンツは、複数のセクタ(本例では32個)の何れかにセクタデータとして格納される。ユーザセクションは、データコンテンツのうちのユーザデータ(実データ及びメタデータ)を関連付けて格納している。スペアセクションは、代替されるべきスペアセクタを関連付けて格納している。不良セクションは、固定不良(ハードエラー)が発生した物理アドレスが示していたデータを関連付けて格納している。アドレス変換テーブルセクションは、アドレス変換テーブル210を関連付けて格納している。なお、アドレス変換テーブルセクションと物理セクションとのマッピングは固定されている。つまり、物理セクションは、アドレス変換テーブル210によって通常の論理セクション(ユーザセクション、スペアセクション及び不良セクション)と任意にマッピング可能な通常の物理セクションと、アドレス変換テーブル自体を格納し、アドレス変換テーブルセクションとのマッピングが固定されたマッピング固定の格納用の物理セクションとに分けられる。
アドレス変換テーブルセクションと物理セクションとのマッピングが固定されていることで、半導体記憶装置1の起動時においてコントローラ10は、アドレス変換テーブルを参照することなく物理セクションからバックアップ用のアドレス変換テーブル210読み出して、ワークメモリ30上に作業用アドレス変換テーブル310を展開することができる。マッピング固定の物理セクションにマッピングされたアドレス変換テーブルセクションは、図示しないホストにおいて利用可能な論理アドレスとマッピングされていないため、ホスト側からは参照できない。したがって、アドレス変換テーブルセクションと物理セクションとのマッピングが固定されてもホスト側からの悪意あるアクセス等による影響は受けない。
なお、本実施形態において、セクション(物理セクション、論理セクション)のサイズは、8キロバイトとしたが、本技術はこれに限られない。セクションのサイズは、半導体記憶装置1の仕様や、不揮発性メモリ20とワークメモリ30とのコスト比に応じて、適宜変更され得る。例えば、セクションのサイズが大きい程、作業用アドレス変換テーブル310のデータ量が小さくなり、容量の小さいワークメモリ30に展開することができる。一方、セクションのサイズが小さい程、アドレスリマッピング処理における1回のマッピング更新時に、アクセスするデータ量が小さくなり、アドレスリマッピング処理の実行に伴う、パフォーマンス低下を抑制できる。さらに、セクションのサイズが小さい場合には、スペアセクションの単位を小さくできるため、例えば書込み不良時の救済率が向上する。
図10A及び図10Bは、本実施形態に係る半導体記憶装置1におけるデータの書込み処理の一例を説明するためのフローチャートである。
当該書込み処理は、以下で説明されるように、摩耗平準化処理(アドレスリマッピング処理、データ反転処理及びリフレッシュ処理)を含む。
当該書込み処理は、例えば、コントローラ10が図示しないホストから通常の書込みアクセスコマンドを受信した場合に実行される。すなわち、図10Aに示すように、コントローラ10が書込みコマンドを受信すると、アクセス制御部110がアドレス変換処理により、書き込み先の物理セクタの物理セクタアドレスを取得する。具体的には、アクセス制御部110は、ワークメモリ30上の作業用アドレス変換テーブル310を参照し、アクセス先論理セクションアドレス(ここでは、書込み先の論理セクションアドレス)を変換して書込み先の物理セクタアドレスを取得する(S1001)。
アクセス制御部110は、例えばアクセス先論理セクションアドレスと、書込み先の物理セクタアドレスを摩耗平準化処理部130に出力する。この出力に基づいて、摩耗平準化処理部130に含まれるアドレスリマッピング部132は、アドレスリマッピング処理の制御を行う(S2000)。データの書込み処理に伴うアドレスリマッピング処理の制御については、後述する。アドレスリマッピング部132は、アドレスリマッピング処理の制御を行うと、処理結果を摩耗平準化処理部130に出力する。アドレスリマッピング処理の処理結果は、例えばアドレスリマッピング処理の実行有無を示すフラグ情報である。
アドレスリマッピング処理結果の出力に基づいて、摩耗平準化処理部130に含まれるデータ反転部134はデータ反転処理の制御を開始する。具体的には、データ反転部134は、乱数生成部138からデータ反転処理の実行有無を決定するためのデータ反転決定乱数を取得する(S1002)。データ反転乱数を取得すると、データ反転部134は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S1003)。ここで、実行数値範囲とは、乱数生成部138が生成可能なデータ反転乱数の数値範囲(0〜n)と同一の数値範囲のうち、反転実行確率(例えば50%)に相当する個数の数値からなる数値範囲である。データ反転部134は、取得したデータ反転決定乱数が実行数値範囲内に含まれると判定すると(S1003のYes)、書込みデータのデータ反転処理を行う(S1004)。これにより、書込みアクセスごとに例えば50%の反転実行確率に基づいて、確率論的にデータ反転処理が実行される。
具体的には、データ反転部134は、書込みデータのデータ反転処理として、書込みデータ内のビット値を反転(「1」→「0」、「0」→「1」)する処理を行う。データ反転時において、書込みデータは、書込みアクセスコマンドとともにホストから受信した256バイトの実データ及び8バイトのメタデータからなるデータである。本実施形態においてデータ反転部134は、データ反転処理において書込みデータの全ビット値を反転する。
なお、データ反転部134は、データ反転処理において書込みデータのうち一部のビットを反転するように構成されてもよい。この場合、いずれのビットを反転するかは、例えば乱数生成部138が生成する乱数に基づいて無作為に決定されてもよい。
データ反転部134は、データ反転処理を行うと、データ反転処理が実行され、書き込みデータが反転されていることを示す反転フラグIV(例えば「1」)を生成する(S1005)。一方、データ反転部134は、取得したデータ反転決定乱数が実行数値範囲内に含まれていないと判定すると(S1003のNo)、データ反転処理が実行されておらず書き込みデータが反転していないことを示す反転フラグIV(例えば「0」)を生成する(S1006)。生成された反転フラグIVは、摩耗平準化処理部130を介してアクセス制御部110に出力される。
以上のようにして、データ反転部134は確率論的にデータ反転処理の制御(S1002〜S1006)を実行し、書込みデータのアクセスパターンに偏りがある場合でも、メモリセルMCの書き換え回数を改善するとともに、各メモリセルMCがLRSとなる確率を低減して、書込み摩耗及び読出し摩耗に対処する。
アクセス制御部110は、反転フラグIVが出力されると31ビットの論理セクタアドレスLAと合わせて、反転フラグIVを書込みデータに付加する(S1007)。これにより書込みデータには新たに4バイト(32ビット)のデータ(LA+IV)が付加される。
書込みデータに付加された論理セクタアドレスは、半導体記憶装置1内の通信路やワークメモリ30上におけるデータの不具合(例えばデータ化け)の検出、訂正に用いられる。例えば、アクセス制御部110は物理セクタへのアクセス時において、アクセス対象の物理セクタ内のデータに付加された論理セクタアドレスと、受信した論理アドレスに基づいて作業用アドレス変換テーブル310から取得した論理セクタアドレスとが一致するか否かを判定する。ここで、当該2つの論理セクタアドレスが一致しない場合、アクセス制御部110は半導体記憶装置1内の通信路やワークメモリ30上にデータの不具合(例えばデータ化け)があると判定し、データ不具合を訂正することができる。
次に、アクセス制御部110は、ECCエンコーダ122に書込みデータを出力して、書込みデータにパリティを付加する(図10BのS1008)。ECCエンコーダ122は、出力された書込みデータについて、実データ、メタデータ及びLA/IVをペイロードとして、BCH符号に基づいて、パリティを生成する。アクセス制御部110は、書込みデータにパリティが付加されると、書込みデータを摩耗平準化処理部130に出力する。これに基づいて、摩耗平準化処理部130のリフレッシュ部136は、リフレッシュ処理の制御を開始する。
具体的には、リフレッシュ部136は、乱数生成部138からリフレッシュ処理の実行有無を決定するためのリフレッシュ決定乱数を取得する(S1009)。リフレッシュ部136は、リフレッシュ決定乱数を取得すると、取得した乱数が実行数値範囲に含まれるか否かを判定する(S1010)。ここで、実行数値範囲は、乱数生成部138が生成可能なデータ反転乱数の数値範囲(0〜n)と同一の数値範囲のうち、リフレッシュ実行確率(例えば0.25%)に相当する個数の数値からなる数値範囲である。リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれると判定すると(S1010のYes)、不揮発性メモリ20にリフレッシュコマンドを発行する(S1011)。これにより、アクセス対象の物理セクタに属するメモリセルMCに書込みデータが書き込まれる書込みアクセスごとに例えば0.25%のリフレッシュ実行確率に基づいて、確率論的にリフレッシュ処理が実行される。リフレッシュ処理を実行すると、リフレッシュ部136は、摩耗平準化処理部130を介してアクセス制御部110に、リフレッシュ処理を行った旨の処理結果(例えば「1」)を出力する。
本実施形態において、リフレッシュコマンドは、LRSにあるメモリセルMCを、一旦HRSに変化させた上で、データを書込むためのコマンドである。リフレッシュコマンドの発行に伴い、リフレッシュ部136は、書込みデータを不揮発性メモリ20に発行する。これにより、リフレッシュ処理とともに書込みデータが不揮発性メモリ20に書込まれる。書込みデータは、例えば320バイトである。具体的には、書込みデータは32バイトのページに10分割され、アクセス対象の物理セクタに属する複数のメモリセルMCに書込まれる。
一方、リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれないと判定すると(S1010のNo)、摩耗平準化処理部130を介してアクセス制御部110に、リフレッシュ処理を行っていない旨の処理結果(例えば「0」)を出力する。アクセス制御部110は、当該処理結果に基づいて、書込みデータとともに書込みコマンドを不揮発性メモリ20に発行する(S1012)。これにより、書込みコマンドによって書込みデータがアクセス対象の物理セクタに属する複数のメモリセルMCに書込まれる。
本実施形態において、リフレッシュコマンドは、リフレッシュ処理専用のコマンドとしてコントローラ10に実装されていることが望ましい。具体的には、リフレッシュコマンドは、アクセス対象の物理セクタに対応するメモリセルMCにデータを書き込む書込みアクセス時に、アクセス制御部110が発行する書込みコマンド及びアクセス対象の物理セクタに対応するメモリセルMCからデータを読出す読出しアクセス時にアクセス制御部110が発行する読出しコマンドとは別個のコマンドであるとよい。これにより、コントローラ10は、リフレッシュ処理の高速化を図ることができる。なお、本技術はこれに限られず、リフレッシュ処理は、例えば、通常の読出しコマンドまたは書込みコマンドに、データ装填コマンドを組み合わせて発行することで実現してもよい。ここで、データ装填コマンドは、コントローラ10からのデータ入力なしに、所定のデータ(全ビット「0」または全ビット「1」))をメモリセルに書込むコマンドである。
以上のようにして、リフレッシュ部136は、確率論的にリフレッシュ処理の制御(S1009〜S1011)を実行して、各メモリセルMCの連続読出し回数が連続読出し基準回数に達する確率を低減し、連続読出しによる書込み不良に対処する。
次に、不揮発性メモリ20へのデータ書き込みが行われると、アクセス制御部110は、エラー数の確認を行う(S1013)。アクセス制御部110は、リフレッシュコマンドまたは書込みコマンドの発行後、所定の時間の経過を待って、モードレジスタ読出しコマンドを発行して、書込みデータ中の書込みできなかったビット数(エラー数)を確認する。つまり、モードレジスタ読出しコマンドにより、直前の書込みコマンドまたはリフレッシュコマンドの実行によって物理セクタ内の書込み不良が発生したメモリセルMCの数が取得される。
次に、アクセス制御部110は、確認したエラー数が、所定数(例えば13ビット数)以上であるか否かを判定する(S1014)。エラー数が12ビット数以下の場合(S1014のNo)、当該エラーは、ECC処理により訂正されることになる、エラー訂正後、アクセス制御部110は、書込み処理を終了する。一方、アクセス制御部110は、エラー数が所定数以上であると判定した場合(S1014のYes)、代替処理を実行する(S1015)。代替処理においてアクセス制御部110は、書込みデータの書込み先をスペアデータ240に格納されているスペアセクタを示す物理セクタアドレスに割り当てる。アクセス制御部110は、代替処理後、再度書込みデータへのパリティ付加(S1008)以降の処理を実行する。
以上のようにして、コントローラ10のアクセス制御部110は、ある物理セクタについて、摩耗平準化処理を実行した上で、データ書込み処理を実行する。
図11Aは本実施形態に係る半導体記憶装置1におけるアドレスリマッピング処理の一例を説明するためのフローチャートである。また、図11Bは、本実施形態に係る半導体記憶装置1におけるアドレスリマッピング処理のうち、セクション更新処理の一例を説明するためのフローチャートである。ここで、図11A及び図11Bを参照して、上述のデータ書込み処理時における、アドレスリマッピング処理の制御(S2000)について説明する。
アドレスリマッピング部132は、アクセス制御部110がアクセス先論理セクションアドレスと、書込み先の物理セクタアドレスを摩耗平準化処理部130に出力すると(図10AのS1001)、この出力に基づいて、セクション更新処理の実行有無を決定するためのセクション更新決定乱数を取得する(S2001)。セクション更新決定乱数を取得すると、アドレスリマッピング部132は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S2002)。ここで、実行数値範囲とは、乱数生成部138が生成可能なセクション更新決定乱数の数値範囲(0〜n)と同一の数値範囲のうち、書込みアクセス時における第1アドレスリマッピング確率(例えば0.003125%)に相当する個数の数値からなる数値範囲である。アドレスリマッピング部132は、取得したセクション更新決定乱数が実行数値範囲内に含まれると判定すると(S2002のYes)、セクション更新処理を行う(S3000)。これにより、書込みアクセスごとに例えば0.003125%の第1アドレスリマッピング確率に基づいて、確率論的にセクション更新処理の制御が実行される。
このように、アドレスリマッピング部132は、アクセスごと(本例では、書込みアクセスごと)に、乱数生成部138が生成した乱数に基づいてアドレスリマッピング処理(本例では、セクション更新処理)を行うか否かを決定する。
ここで、図11Bを参照してセクション更新処理について説明する。アドレスリマッピング部132は、セクション更新処理において、まず作業用アドレス変換テーブル310から、無作為に、一のマッピング情報を取得する(S3001)。ここで取得するマッピング情報は、アクセス制御部110のアクセス対象の物理セクタに対応するマッピング情報でなければよい。ここで、アドレスリマッピング部132は、例えば乱数生成部138が生成する乱数に基づいて、取得対象の一のマッピング情報を決定してもよい。例えばアドレスリマッピング部132は、作業用アドレス変換テーブル310内の論理セクションアドレスに相当する数値範囲の乱数を乱数生成部138から取得し、取得した乱数値が示す論理セクションアドレスに紐付くマッピング情報を取得してもよい。
続いて、アドレスリマッピング部132は、作業用アドレス変換テーブル310を更新して、セクションアドレスのマッピングを更新する(S3002)。具体的には、アドレスリマッピング部132は、アクセス先論理セクションアドレス(例えば「LS001」)にマッピングされた物理セクションアドレス(例えば、「PS001」)を、無作為に取得した一のマッピング情報における物理セクションアドレス(例えば「PS002」)にマッピングする。さらに、アドレスリマッピング部132は、アクセス先論理セクションアドレス(LS001)にマッピングされていた物理セクションアドレス(「PS001」)を、無作為に取得した一のマッピング情報における論理セクションアドレス(例えば「LS002」)にマッピングする。これにより、アクセス対象の物理セクタを特定する一の論理セクションアドレス(LS001)に対応付く一の物理セクションアドレス(PS001)が、一の物理セクションアドレスと異なる無作為に選択した他の物理セクションアドレス(PS002)で置き換えられる。
アドレスリマッピング部132は、セクションアドレスのマッピングを更新すると、セクション単位でのデータの入れ替えを行い(S3003)、アドレスリマッピング更新処理の制御に戻る。具体的には、アドレスリマッピング部132はアクセス先論理セクションアドレス(「LS001」)にマッピングされていた更新前の物理セクションアドレス(「PS001」)が示す物理セクション内の物理セクタのデータと、新たにマッピングされた更新後の物理セクションアドレス(「PS002」)が示す物理セクション内の物理セクタのデータとを入れ替える。これにより、無作為に選択した他の物理セクションアドレス(PS002)で特定される物理セクタに記憶されたデータが、更新前の物理セクションアドレス(「PS001」)で特定される物理セクタに記憶されたデータに置き換えられる。
図11Aに戻って、アドレスリマッピング部132はセクション更新処理を実行すると、上述の第1グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるセクタグループ管理情報を更新する(S2003)。具体的には、アドレスリマッピング部132は、アクセス先論理セクションアドレス(「LS001」)に対応するセクタグループ管理情報を更新する。アドレスリマッピング部132は、第1グループ更新処理におけるセクタグループ管理情報の更新値を無作為に決定する。アドレスリマッピング部132は、第1グループ更新処理時において、上述の第1数値範囲内の乱数を乱数生成部138から取得し、取得された乱数を、セクタグループ管理情報の更新値としてもよい。アドレスリマッピング部132は第1グループ更新処理を実行すると、上述の第2グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるグループ内管理情報を更新する(S2006)。
一方、アドレスリマッピング部132は、取得したセクション更新決定乱数が実行数値範囲内に含まれていないと判定すると(S2002のNo)、第2グループ更新処理の実行有無を決定するための第2グループ更新処理決定乱数を取得する(S2004)。第2グループ更新処理決定乱数を取得すると、アドレスリマッピング部132は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S2005)。ここで、実行数値範囲とは、乱数生成部138が生成可能な第2グループ更新処理決定乱数の数値範囲(0〜n)と同一の数値範囲のうち、書込みアクセス時における第2アドレスリマッピング確率(例えば0.025%)に相当する個数の数値からなる数値範囲である。アドレスリマッピング部132は、取得した第2グループ更新処理決定乱数が実行数値範囲内に含まれると判定すると(S2005のYes)、上述の第2グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるグループ内管理情報を更新する(S2006)。
第2グループ更新処理におけるグループ内管理情報の更新値は、無作為に決定される。例えば、アドレスリマッピング部132は、第2グループ更新処理時において、上述の第2数値範囲内の乱数を乱数生成部138から取得し、取得された乱数を、グループ内管理情報の更新値としてもよい。
アドレスリマッピング部132は、グループ内管理情報を更新すると、不揮発性メモリ20上のバックアップ用のアドレス変換テーブル210を更新して、作業用アドレス変換テーブル310と同期する(S2007)。本例においてアドレスリマッピング部132は、アドレス変換テーブル210を更新すると、データ書込み処理のS1002(図10A参照)に戻る。
逆引きテーブルであるバックアップ用のアドレス変換テーブル210は、アドレスリマッピング処理によってアクセス対象の物理セクタが平準化されることに伴い、参照回数が平準化される。このため、図9に示すように、マッピングが固定された領域に格納されていても、アドレス変換テーブル210のデータを記憶するメモリセルMCの摩耗を平準化することができる。
以上のようにして、アドレスリマッピング部132は、アドレス変換テーブル210を更新して、セクション単位、セクタグループ単位、またはセクタグループ内の論理セクタ単位で、特定のセクタへのアクセス集中によるメモリセルMCの書込み摩耗に対処するためのアドレスリマッピング処理を実行する。
図12は、本技術の一実施形態に係る半導体記憶装置1におけるデータの読出し処理の一例を説明するためのフローチャートである。当該読出し処理は、以下で説明されるように、摩耗平準化処理を含む。当該読出し処理は、例えば、コントローラ10が図示しないホストから通常の読出しアクセスコマンドを受信した場合に実行される。
すなわち、同図に示すように、コントローラ10が読出しコマンドを受信すると、アクセス制御部110がアドレス変換処理により、読出し先の物理セクタの物理セクタアドレスを取得する。具体的には、アクセス制御部110は、ワークメモリ30上の作業用アドレス変換テーブル310を参照し、アクセス先論理セクションアドレス(ここでは、読出し先の論理セクションアドレス)を変換して読出し先の物理セクタアドレスを取得する(S1201)。
次に、アクセス制御部110は、読出しコマンドに基づく読出し先の物理セクタアドレスからデータの読み出しを行う(S1202)。アクセス制御部110が発行した読出しコマンドによって不揮発性メモリ20の読出し先の物理セクタからデータが読み出されると、これを受けて、アクセス制御部110は、ECC処理部120のECCデコーダ124に読出しデータを出力してECC復号化を行う(S1203)。ECCデコーダ124は、読出しデータに付加されているパリティに基づいてECC復号化処理を行う。例えば、ECCデコーダ124は読出しデータに付加されているパリティに基づいて、エラーチェックを行い、検出されたエラーを訂正して、データを復旧する。ECC復号化を行うと、アクセス制御部110は読出しデータに付加された反転フラグ(IV)を確認する。アクセス制御部110は、反転フラグ(IV)が「1」であると判定すると(S1204のYes)、当該読出しデータが書き込み時にデータ反転されていると判定し、読出しデータについて反転復号化処理を行う(S1205)。具体的には、アクセス制御部110は、読出しデータにおける実データ及びメタデータの全ビットを反転する。一方、アクセス制御部110は、反転フラグ(IV)が「0」であると判定すると(S1204のNo)、当該読出しデータが書き込み時にデータ反転されていないと判定し、反転復号化処理をスキップする。
続いて、アクセス制御部110は、読出しデータをホストに送信する(S1206)。アクセス制御部110は読出しデータをホストに送信すると、摩耗平準化処理部130に、送信結果を出力する。これに基づいて、摩耗平準化処理部130におけるリフレッシュ部136は、リフレッシュ処理の制御を行う(S1207)。ここで、リフレッシュ処理の制御内容は、書込み処理時と同様である(図10BのS1009〜S1011)なお、データ読出し処理時のリフレッシュ処理において、リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれないと判定すると(S1010のNo)、リフレッシュ処理の制御を終了する。また、データ読出し処理時のリフレッシュ処理においてリフレッシュ部136は、リフレッシュコマンドとともに、ECC復号化処理を行った読出しデータを不揮発性メモリ20に発行する。これにより、読出し先の物理セクタアドレスに、ECC復号化処理後の読出しデータが書き戻される。また、リフレッシュ部136は、データ読出し処理時においてリフレッシュコマンドを発行しない場合、書込みコマンドとともにECC復号化処理後の読出しデータを不揮発性メモリ20に発行してもよい。
続いて、摩耗平準化処理部130におけるアドレスリマッピング部132は、アドレスリマッピング処理の制御を行う(S2000)。ここで、データ読出し処理時におけるアドレスリマッピング処理の制御内容は、データ書込み処理時と同様である(図11A参照)。ただし、データ読出し処理におけるアドレスリマッピング処理において、セクション更新処理の実行に係る第1アドレスリマッピング確率は、0.00125%である。また、読出し処理におけるアドレスリマッピング処理において、第2グループ更新処理の実行に係る第2アドレスリマッピング確率は、0.01%である。アドレスリマッピング部132におけるアドレスリマッピング処理が終了すると、アクセス制御部110はデータ読出し処理を終了する。
以下、本実施形態によるコントローラ10が実行する摩耗平準化処理の効果について、シミュレーション結果を交えながら説明する。図13は、本実施形態によるアドレスリマッピング処理のシミュレーション結果を示すヒストグラムである。本例では、アドレスリマッピング処理におけるセクション更新処理及びセクタグループ更新処理をソフトウェア実装し、各メモリセルMCに対するアクセスの平均化効果をシミュレーションした。本シミュレーションには、モンテカルロ法を用いた。本シミュレーションでは、不揮発性メモリの構成を16,384セクタ=512セクション×32セクタと仮定した。また、本シミュレーションのソフトウェア実装では、擬似乱数を発生させることで、上述の第1アドレスリマッピング確率(書込みアクセスごとに0.003125%、読出しアクセスごとに0.00125%)に従って、セクション更新処理を実行した。当該セクション更新処理時には、セクタグループ更新処理(第1グループ更新処理、第2グループ更新処理)も合わせて実行した。さらに、本シミュレーションのソフトウェア実装では、擬似乱数を発生させることで、第2アドレスリマッピング確率(書込みアクセスごとに0.025%、読出しアクセスごとに0.01%)に従って、セクタグループ更新処理のうち第2グループ更新処理を実行した。
まず、アドレスリマッピング処理のシミュレーションとして、特定の論理セクタに対して集中的に書込みアクセスを行い、各物理セクタへのデータの書込み(セット又はリセット)回数を算出した。具体的には、特定の論理セクタを示す論理セクタアドレスに対して、16,384×4.0e6回(本実施形態における物理セクタごとの生涯書込み回数の平均値)の書込みアクセスを集中させ、各物理セクタへのデータの書込み回数を算出した。図13上段は、本シミュレーションにおいて算出された書込み回数に対するセクタ(本例では物理セクタ)数の分布を示すヒストグラムである。なお、生涯書込み回数の平均値は、不揮発性メモリ20において想定される生涯書込み容量(2エクサバイト)/不揮発性メモリ20の容量(512ギガバイト)として求めた。
さらに、アドレスリマッピング処理のシミュレーションとして、特定の論理セクタに対して集中的に読出しアクセスを行い、各物理セクタからのデータの読出し回数を算出した。具体的には、特定の論理セクタを示す論理セクタアドレスに対して、16,384×1.0e7回(本実施形態における物理セクタごとの生涯読出し回数の平均値)の読出しアクセスを集中させ、各物理セクタからのデータの読出し回数を算出した。図13下段は、本シミュレーションにおいて算出された読出し回数に対するセクタ(本例では物理セクタ)数の分布を示すヒストグラムである。なお、生涯読出し回数の平均値は、不揮発性メモリ20において想定される生涯読出し容量(5エクサバイト)/不揮発性メモリ20の容量(512ギガバイト)として求めた。
上述のシミュレーションの結果、図13上段に示すように、特定の論理セクタを示す論理セクタアドレスに対して極端に偏った書込みアクセスを行った場合であっても、不揮発性メモリ上の物理セクタのうち99.9%が想定される生涯書込み回数の平均値(4.0e6)+20%=4.8e6以下の書込み回数となるように、アドレスリマッピング処理によって書込み回数を平均化できることが確かめられた。
また、上述のシミュレーションの結果、図13下段に示すように、特定の論理セクタを示す論理セクタアドレスに対して極端に偏った読出しアクセスを行った場合であっても、不揮発性メモリ上の物理セクタのうち99.9%が想定される生涯読出し回数の平均値(1.0e7)+20%=1.2e7以下の読出し回数となるように、アドレスリマッピング処理によって読出し回数を平均化できることが確かめられた。
このように、本技術によるコントローラ10は、摩耗平準化処理として、アドレスリマッピング処理のうちセクション更新処理を、例えば書込みアクセスごとに0.003125%、読出しアクセスごとに0.00125の確率でセクタグループ更新処理とともに実行し、アドレスリマッピング処理のうち第2グループ更新処理を、例えば書込みアクセスごとに0.025%、読出しアクセスごとに0.01%の確率で実行することで、各物理セクタに属する各メモリセルMCへの書込み回数、読出し回数を平均化することができる。
また、本技術によるコントローラ10は、摩耗平準化処理として、確率論的にデータ反転処理を行う。例えば、書込みアクセス時に50%の確率でデータ反転することで、書込みごとにビット値が変わる確率は50%とみなすことができる。これにより、コントローラ10は、偏りのあるデータパターン(例えば、全ビット「0」又は全ビット「1」)においても、メモリセルMCの書き換え回数を平均化して、書込み摩耗を平準化することができる。また、書込みアクセス時に50%の確率でデータ反転が行われ、かつ読出しアクセスごとに所定確率(例えば0.00125%)でセクション更新処理及びセクタグループ更新処理が実行されることで、各メモリセルMCの生涯LRS読出し回数、つまり生涯読出し回数のうち各メモリセルMCがLRSである回数を50%程度にすることができる。これは、偏りのあるデータパターンにおいても同様である。
また、図14は、本実施形態によるリフレッシュ処理の検証結果を示す図である。本実施形態による不揮発性メモリ20において、例えば連続読出し基準回数が10000回である場合、読出しアクセスごとのリフレッシュ実行確率(図14中では「実行確率/読出しアクセス」と表記)を0.30%、0.25%、0.20%としてリフレッシュ処理の検証を行った。図14に示すように、リフレッシュ実行確率を0.30%とすると、連続読出しによる書込み不良の発生率は、0.001%未満(図14中では「0.000%」と表記)となり、リフレッシュ実行確率を0.25%とすると連続読出しによる書込み不良の発生率は0.013%となり、リフレッシュ実行確率を0.20%とすると連続読出しによる書込み不良の発生率は2.020%となった。なお図14中では、連続読出しによる書込み不良の発生率を「不良発生率」と表記した。また「不良発生率」は、セクタ数比(全物理セクタ数のうち、連続読出しによる書込み不良が発生した物理セクタ数の割合)として求めた。
本例において、リフレッシュ実行確率を0.30%とした場合、連続読出しによる書込み不良の発生率は0.001%未満と大幅に低減されるものの、一方で、半導体記憶装置1の動作性能への影響(例えば動作性能の低下)が大きい。また、リフレッシュ実行確率を0.20%とした場合、上述のように連続読出しによる書込み不良の発生率は2%以上となり、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を0.25%とした場合、上述のように連続読出しによる書込み不良の発生率を0.01%程度にまで抑えることができるため、スペアセクション内のわずかなスペアアドレスで書込み不良に対する補償(救済)が可能であり、さらに半導体記憶装置1の動作性能への影響もごくわずかである。したがって、連続読出し基準回数が10000回の場合、リフレッシュ実行確率は0.25%が最適である。
また、不揮発性メモリ20において、例えば連続読出し基準回数が5000回である場合、読出しアクセスごとのリフレッシュ実行確率を0.60%、0.50%、0.40%としてリフレッシュ処理の検証を行った。図14に示すように、本例においてリフレッシュ実行確率を0.60%とすると、連続読出しによる書込み不良の発生率は0.001%未満となり、リフレッシュ実行確率を0.50%とすると連続読出しによる書込み不良の発生率は0.013%となり、リフレッシュ実行確率を0.40%とすると連続読出しによる書込み不良の発生率は1.980%となった。
本例において、読出しアクセスごとのリフレッシュ実行確率を0.60%とすると、書込み不良の発生率は0.001%未満となるものの、半導体記憶装置1の動作性能への影響が大きくなる。また、当該リフレッシュ実行確率を0.40%とすると、連続読出しによる書込み不良の発生率が2%程度となるため、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を0.50%とすると、連続読出しによる書込み不良の発生率を0.01%程度にまで抑えることができ、さらに半導体記憶装置1の動作性能への影響も比較的小さいため、好適である。
また、不揮発性メモリ20において、例えば連続読出し基準回数が2000回である場合、読出しアクセスごとのリフレッシュ実行確率を1.30%、1.20%、1.10%としてリフレッシュ処理の検証を行った。図14に示すように、リフレッシュ実行確率を1.30%とすると、連続読出しによる書込み不良の発生率は0.004%となり、リフレッシュ実行確率を1.20%とすると、連続読出しによる書込み不良の発生率は0.033%となり、リフレッシュ実行確率を1.10%とすると、連続読出しによる書込み不良の発生率は0.247%となった。
本例において、読出しアクセスごとのリフレッシュ実行確率を1.30%とすると書込み不良の発生率は0.004%まで低減されるものの、半導体記憶装置1の動作性能への影響が大きくなる。また、当該リフレッシュ実行確率を1.10%とすると、連続読出しによる書込み不良の発生率が0.2%以上となるため、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を1.20%とすると、連続読出しによる書込み不良の発生率を0.03%程度に抑えることができ、さらに半導体記憶装置1の動作性能への影響も比較的小さいため、好適である。
以上のように、本技術によれば、Xp−ReRAMの特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図ることができるコントローラ、半導体記憶装置及び該装置における摩耗平準化処理方法を提供することができるようになる。
上記各実施形態は、本技術を説明するための例示であり、本技術をこれらの実施形態にのみ限定する趣旨ではない。本技術は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本技術の要旨に含まれる。
また、本技術は、以下のような技術的事項を含み構成されても良い。
(1)
書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、
前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、
前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う、
コントローラ。
(2)
前記摩耗平準化処理部は、
前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
前記(1)に記載のコントローラ。
(3)
前記テーブル更新部は、
前記アクセス対象の前記データ記憶領域を特定する一の前記論理アドレスに対応付く一の前記物理アドレスを、前記一の物理アドレスと異なる無作為に選択した他の前記物理アドレスで置き換える、
前記(2)記載のコントローラ。
(4)
前記テーブル更新部は、前記他の物理アドレスで特定される前記データ記憶領域に記憶されたデータを、前記一の物理アドレスで特定される前記データ記憶領域に記憶されたデータで置き換える、
前記(3)記載のコントローラ。
(5)
乱数を生成する乱数生成部を備え、
前記テーブル更新部は、
前記アクセスごとに前記乱数生成部が生成した乱数に基づいて前記テーブル更新処理を行うか否かを決定する、
前記(2)乃至(4)の何れか一つに記載のコントローラ。
(6)
前記アドレス変換テーブルは、所定個数の前記データ記憶領域を格納する格納領域ごとに前記マッピング情報を保持し、
前記テーブル更新部は、前記テーブル更新処理を前記アクセス対象の前記データ記憶領域が格納される前記格納領域ごとに行う
前記(2)から(5)の何れか一つに記載のコントローラ。
(7)
前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域ごとに行う
前記(6)に記載のコントローラ。
(8)
前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域のそれぞれについて行う
前記(7)記載のコントローラ。
(9)
前記アクセス制御部が制御する前記アクセスは、前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス及び前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読み出す読出しアクセスを含み、
前記テーブル更新部が前記テーブル更新処理を行う前記第1の確率の値は、前記アクセスが前記書込みアクセス又は前記読出しアクセスのいずれであるかによって異なる
前記(2)から前記(8)のいずれか一つに記載のコントローラ。
(10)
前記摩耗平準化処理部は、
前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
前記(1)から(9)の何れか一つに記載のコントローラ。
(11)
前記データ反転処理部は、前記書込みアクセス時において、前記データ反転処理を行ったか否かを示すデータ反転情報を前記書込みデータに付加する、
前記(10)に記載のコントローラ。
(12)
前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
複数の前記メモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
前記摩耗平準化処理部は、
前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
前記(1)から(11)の何れか一つに記載のコントローラ。
(13)
前記抵抗状態変更部は、
前記抵抗状態変更処理を実行するための抵抗状態変更コマンドを前記アクセス対象の前記データ記憶領域を有する前記不揮発性メモリに発行して、前記抵抗状態変更処理を実行し、
前記抵抗状態変更コマンドは、
前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス時に前記アクセス制御部が発行する書込みコマンド及び前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読出す読出しアクセス時に前記アクセス制御部が発行する読出しコマンドとは別個のコマンドである、
前記(12)記載のコントローラ。
(14)
書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリと、
前記不揮発性メモリを制御するコントローラと、を備える半導体記憶装置であって、
前記コントローラは、
前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を実行する摩耗平準化処理部と、を有し、
前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で実行する、
半導体記憶装置。
(15)
前記摩耗平準化処理部は、
前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
前記(14)記載の半導体記憶装置。
(16)
前記摩耗平準化処理部は、
前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
前記(14)または(15)に記載の半導体記憶装置。
(17)
前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
前記複数のメモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
前記摩耗平準化処理部は、
前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
前記(14)から(16)のいずれか1項に記載の半導体記憶装置。
(18)
書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリを備える半導体記憶装置において、前記複数のメモリセルの摩耗を平準化する摩耗平準化処理方法であって、
前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御することと、
前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を、前記アクセスごとに所定の確率で行うことと、
を含み、
前記摩耗平準化処理を行うことは、前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うことを含む、
摩耗平準化処理方法
(19)
前記摩耗平準化処理を行うことは、
前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うことを含む、
前記(18)記載の摩耗平準化処理方法。
(20)
前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
前記摩耗平準化処理を行うことは、
前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行うことを含む、
前記(18)または(19)記載の摩耗平準化処理方法。
1…半導体記憶装置
10…コントローラ
110…アクセス制御部
120…ECC処理部
122…ECCエンコーダ
124…ECCデコーダ
130…摩耗平準化処理部
132…アドレスリマッピング部
134…データ反転部
136…リフレッシュ部
138…乱数生成部
20…不揮発性メモリ(不揮発性メモリパッケージ)
210…アドレス変換テーブル
220…ユーザデータ
240…スペアデータ
30…ワークメモリ
310…作業用アドレス変換テーブル
40…ホストインターフェース、ホストインターフェース部
B…バンク
D…ダイ
T…タイル

Claims (20)

  1. 書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、
    前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
    前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、
    前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う、
    コントローラ。
  2. 前記摩耗平準化処理部は、
    前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
    請求項1記載のコントローラ。
  3. 前記テーブル更新部は、
    前記アクセス対象の前記データ記憶領域を特定する一の前記論理アドレスに対応付く一の前記物理アドレスを、前記一の物理アドレスと異なる無作為に選択した他の前記物理アドレスで置き換える、
    請求項2記載のコントローラ。
  4. 前記テーブル更新部は、前記他の物理アドレスで特定される前記データ記憶領域に記憶されたデータを、前記一の物理アドレスで特定される前記データ記憶領域に記憶されたデータで置き換える、
    請求項3記載のコントローラ。
  5. 乱数を生成する乱数生成部を備え、
    前記テーブル更新部は、
    前記アクセスごとに前記乱数生成部が生成した乱数に基づいて前記テーブル更新処理を行うか否かを決定する、
    請求項2に記載のコントローラ。
  6. 前記アドレス変換テーブルは、所定個数の前記データ記憶領域を格納する格納領域ごとに前記マッピング情報を保持し、
    前記テーブル更新部は、前記テーブル更新処理を前記アクセス対象の前記データ記憶領域が格納される前記格納領域ごとに行う
    請求項2に記載のコントローラ。
  7. 前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域ごとに行う
    請求項6に記載のコントローラ。
  8. 前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域のそれぞれについて行う
    請求項7記載のコントローラ。
  9. 前記アクセス制御部が制御する前記アクセスは、前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス及び前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読み出す読出しアクセスを含み、
    前記テーブル更新部が前記テーブル更新処理を行う前記第1の確率の値は、前記アクセスが前記書込みアクセス又は前記読出しアクセスのいずれであるかによって異なる
    請求項2に記載のコントローラ。
  10. 前記摩耗平準化処理部は、
    前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
    請求項1に記載のコントローラ。
  11. 前記データ反転処理部は、前記書込みアクセス時において、前記データ反転処理を行ったか否かを示すデータ反転情報を前記書込みデータに付加する、
    請求項10に記載のコントローラ。
  12. 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
    複数の前記メモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
    前記摩耗平準化処理部は、
    前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
    請求項1に記載のコントローラ。
  13. 前記抵抗状態変更部は、
    前記抵抗状態変更処理を実行するための抵抗状態変更コマンドを前記アクセス対象の前記データ記憶領域を有する前記不揮発性メモリに発行して、前記抵抗状態変更処理を実行し、
    前記抵抗状態変更コマンドは、
    前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス時に前記アクセス制御部が発行する書込みコマンド及び前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読出す読出しアクセス時に前記アクセス制御部が発行する読出しコマンドとは別個のコマンドである、
    請求項12記載のコントローラ。
  14. 書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリと、
    前記不揮発性メモリを制御するコントローラと、を備える半導体記憶装置であって、
    前記コントローラは、
    前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
    前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を実行する摩耗平準化処理部と、を有し、
    前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で実行する、
    半導体記憶装置。
  15. 前記摩耗平準化処理部は、
    前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
    請求項14記載の半導体記憶装置。
  16. 前記摩耗平準化処理部は、
    前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
    請求項14記載の半導体記憶装置。
  17. 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
    前記複数のメモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
    前記摩耗平準化処理部は、
    前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
    請求項14記載の半導体記憶装置。
  18. 書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリを備える半導体記憶装置において、前記複数のメモリセルの摩耗を平準化する摩耗平準化処理方法であって、
    前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御することと、
    前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を、前記アクセスごとに所定の確率で行うことと、
    を含み、
    前記摩耗平準化処理を行うことは、前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うことを含む、
    摩耗平準化処理方法。
  19. 前記摩耗平準化処理を行うことは、
    前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うことを含む、
    請求項18記載の摩耗平準化処理方法。
  20. 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
    前記摩耗平準化処理を行うことは、
    前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行うことを含む、
    請求項18記載の摩耗平準化処理方法。
JP2019149894A 2019-08-19 2019-08-19 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 Pending JP2021033423A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019149894A JP2021033423A (ja) 2019-08-19 2019-08-19 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法
US17/627,984 US20220276957A1 (en) 2019-08-19 2020-07-08 Controller, semiconductor storage device, and a wear-leveling processing method in the device
PCT/JP2020/026700 WO2021033445A1 (ja) 2019-08-19 2020-07-08 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法
TW109127020A TW202127256A (zh) 2019-08-19 2020-08-10 控制器、半導體記憶裝置、及該裝置中之磨耗調平化處理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019149894A JP2021033423A (ja) 2019-08-19 2019-08-19 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法

Publications (1)

Publication Number Publication Date
JP2021033423A true JP2021033423A (ja) 2021-03-01

Family

ID=74660866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019149894A Pending JP2021033423A (ja) 2019-08-19 2019-08-19 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法

Country Status (4)

Country Link
US (1) US20220276957A1 (ja)
JP (1) JP2021033423A (ja)
TW (1) TW202127256A (ja)
WO (1) WO2021033445A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2787601A1 (fr) * 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
JP2008181203A (ja) * 2007-01-23 2008-08-07 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US10228878B1 (en) * 2017-10-30 2019-03-12 Western Digital Technologies, Inc. Wear leveling in non-volatile storage
US11023150B2 (en) * 2019-07-01 2021-06-01 International Business Machines Corporation Block mode toggling using hybrid controllers

Also Published As

Publication number Publication date
WO2021033445A1 (ja) 2021-02-25
TW202127256A (zh) 2021-07-16
US20220276957A1 (en) 2022-09-01

Similar Documents

Publication Publication Date Title
US9176817B2 (en) Data management in solid state storage devices
US8762622B2 (en) Enhanced MLC solid state device
US10417124B2 (en) Storage system that tracks mapping to a memory module to be detached therefrom
US9136020B2 (en) Semiconductor memory device
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
KR101459861B1 (ko) 스트라이프 기반 메모리 작동
US9037951B2 (en) Data management in solid state storage systems
US8453033B2 (en) Semiconductor memory device
US11200162B2 (en) Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
US9575844B2 (en) Mass storage device and method of operating the same to back up data stored in volatile memory
TWI484334B (zh) 非揮發記憶體的區域式管理方法
JP2015535640A (ja) ランタイム可変raid保護スキームを有する方法、ソリッドステートドライブコントローラー、及びデータ格納装置
KR20130078973A (ko) 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US8370680B2 (en) Solid state storage system for controlling reserved area and method of controlling the same
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
WO2021033445A1 (ja) コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法
WO2021029143A1 (ja) 半導体記憶装置及び該装置における不良メモリセルに対するエラー処理方法
JP7302497B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
US20230153038A1 (en) Storage device performing self-diagnosis and storage system including the same
CN118606223A (zh) 一种透明压缩存储设备中的地址映射方法