Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7693482B2 - メモリシステム - Google Patents
[go: Go Back, main page]

JP7693482B2 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP7693482B2
JP7693482B2 JP2021153212A JP2021153212A JP7693482B2 JP 7693482 B2 JP7693482 B2 JP 7693482B2 JP 2021153212 A JP2021153212 A JP 2021153212A JP 2021153212 A JP2021153212 A JP 2021153212A JP 7693482 B2 JP7693482 B2 JP 7693482B2
Authority
JP
Japan
Prior art keywords
tag information
tag
management table
memory
memory controller
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.)
Active
Application number
JP2021153212A
Other languages
English (en)
Other versions
JP2023045035A (ja
Inventor
卓三 渡邊
繁男 倉形
克彦 岩井
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021153212A priority Critical patent/JP7693482B2/ja
Priority to US17/592,466 priority patent/US12153824B2/en
Publication of JP2023045035A publication Critical patent/JP2023045035A/ja
Application granted granted Critical
Publication of JP7693482B2 publication Critical patent/JP7693482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本実施形態は、メモリシステムに関する。
近年、NAND型フラッシュメモリ等の不揮発性メモリを備えるメモリシステムが広く普及している。
特開2012-33002号公報
本発明の一実施形態では、半導体記憶装置を搭載したメモリシステムのデータの断片化の抑制と、信頼性の向上を図る。
本実施形態のメモリシステムは、ブロックを有する不揮発性メモリと、前記不揮発性メモリを制御することが可能なメモリコントローラと、を備える。前記メモリコントローラは、消去回数に基づいて前記不揮発性メモリの論理アドレスに割り当てられるタグ情報を管理する第1のタグ情報管理テーブルを保持する。前記タグ情報は、前記消去回数に関する情報に基づいて順に並んだ値が割り当てられる。前記メモリコントローラは、無効データのタグ情報を除く、前記タグ情報に含まれる第1のタグ情報の値以下のタグ情報が割り当てられた論理アドレスに対応するデータに対してガベージコレクションを行う。
第1の実施形態に係るメモリシステムの構成の一例を示すブロック図。 第1の実施形態に係るメモリシステムで用いられるタグ情報割り当てテーブルの構成の一例を示す図。 (a)第1の実施形態に係るメモリシステムに含まれる不揮発性メモリのブロックを概略的に表した図、(b)第1の実施形態に係るメモリシステムで用いられる第1のタグ情報管理テーブルの構成の一例を示す図。 第1の実施形態に係るメモリシステムにおける書き込み動作及びタグ情報書き込み処理を表すシーケンス図。 第1の実施形態に係るメモリシステムに含まれるメモリコントローラにおける書き込み動作及びタグ情報書き込み処理を表すフローチャート。 第1の実施形態に係るメモリシステムにおける消去動作及びタグ情報書き込み処理を表すシーケンス図。 第1の実施形態に係るメモリシステムに含まれるメモリコントローラのガベージコレクションを表すフローチャート。 第2の実施形態に係るメモリシステムの構成の一例を示すブロック図。 第2の実施形態に係るメモリシステムで用いられるタグ情報割り当てテーブルの構成の一例を示す図。 (a)第2の実施形態に係るメモリシステムに含まれる複数の不揮発性メモリを概略的に表した図、(b)第2の実施形態に係るメモリシステムで用いられる第2のタグ情報管理テーブルの構成の一例を示す図。 第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおける書き込み動作時のタグ情報書き込み処理を表すフローチャート。 第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるガベージコレクション処理を表すフローチャート。 第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるガベージコレクション処理の一部を表すフローチャート。 第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるリードディスターブ検査の処理動作を表すフローチャート。
以下、発明を実施するための実施形態について、実質的に同一の構成要素には同一の符号を付し、説明を省略する。
(第1の実施形態)
第1の実施形態に係るメモリシステムを、図1乃至図7を参照して説明する。
(構成)
第1の実施形態に係るメモリシステムの構成を、図1乃至図4を参照して説明する。
図1は、第1の実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステム1は、不揮発性メモリとメモリコントローラ20とを含み、ホスト2により制御される。本実施形態に係るメモリシステムにおいて、不揮発性メモリとして、例えば、NAND型フラッシュメモリ(以下、単にフラッシュメモリと称する)10を備える。ホスト2は、メモリシステム1にアクセスする情報処理装置である。ホスト2は、大量且つ多様なデータをメモリシステム1に保存するサーバであっても良いし、パーソナルコンピュータであっても良い。
メモリシステム1は、ホスト2のメインストレージとして使用され得る。メモリシステム1は、ホスト2に内蔵されても良いし、ホスト2にケーブルまたはネットワークを介して接続されても良い。メモリシステム1は、例えば、SSD(Solid State Drive)、SDTMカード、eMMC(embeded Multi Media Card)、UFS(Universal Flash Storage)等である。
フラッシュメモリ10は、メモリコントローラ20により制御される。本実施形態において、不揮発性メモリはフラッシュメモリ10であるとしたが、これに限定されない。不揮発性メモリは、例えば、NAND型フラッシュメモリ、NOR型フラッシュメモリ、MRAM(Magneto-resistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)のいずれかであっても良い。
フラッシュメモリ10は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含む。メモリセルアレイは、複数のブロックを含む。ブロックは、データ消去動作の最小単位として機能する。各々のブロックは複数のページを含む。複数のページの各々は、同一ワード線に接続された複数のメモリセルを含む。ページは、データ書き込み動作及びデータ読み出し動作の単位である。ページの代わりに1本のワード線に共通して接続された複数のメモリセルをデータ書き込み動作又はデータ読み出し動作の単位としても良い。フラッシュメモリ10は、二次元構造であっても良いし、三次元構造であっても良い。
また、フラッシュメモリ10は、例えば、ファームウェア、タグID割り当てテーブル、タグID管理テーブルT1aを格納することが可能である。
メモリコントローラ20は、ホスト2から命令を受け取り、受け取った命令に基づいてフラッシュメモリ10を制御することが可能である。メモリコントローラ20は、例えば、SoC(System оn a Chip)のような回路によって実現され得る。メモリコントローラ20は、制御部と、RAM(Random Access Memory)22と、ホストインターフェース回路(以下、単にホストI/Fと称する)23と、メモリインターフェース回路(以下、単にメモリI/Fと称する)24と、データバッファ25と、を備える。
制御部は、例えばCPU(Central Processing Unit)21である。CPU21は、メモリコントローラ20の全体の動作を制御することができる。CPU21は、例えば、RAM22上にロードされたファームウェアを実行することで、メモリコントローラ20の動作を制御する。
RAM22は、揮発性メモリの一例である。RAM22は、例えば、フラッシュメモリ10からロードされたファームウェア、タグID割り当てテーブル、タグID管理テーブルT1b等を保持可能であり、CPU21の作業領域として使用される。RAM22は、メモリコントローラ20の外部に設けられても良いし、メモリコントローラ20の内部に設けられても良い。なお、RAM22としては、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)が用いられる。
ホストI/F23は、ホストバスを介してホスト2に接続され、メモリシステム1とホスト2との間の通信を司る。ホストバスは、例えば、SD規格に準拠したバスである。ホストI/F23は、メモリシステム1とホスト2との間で、データ、コマンド、及びアドレスの転送を制御する。
メモリI/F24は、NANDバスを介してフラッシュメモリ10に接続され、メモリコントローラ20とフラッシュメモリ10との間の通信を司る。NANDバスは、例えば、NANDインターフェースに準拠した信号の送受信を行うバスである。
データバッファ25は、ホスト2から受信したデータやフラッシュメモリ10から読み出されたデータを一時的に保持する。データバッファ25は、揮発性メモリである。RAM22が、データバッファ25の機能を有していても良い。
図2は、第1の実施形態に係るメモリシステムで用いられるタグ情報割り当てテーブルの構成の一例を示す図である。本実施形態の説明において、タグIDは、タグ情報のことである。図2に示すように、タグID割り当てテーブルは、フラッシュメモリ10の平均消去回数と、タグIDとの対応を示している。平均消去回数とは、(フラッシュメモリ10の全てのブロックの消去回数の合計)/(フラッシュメモリ10の全てのブロック数)で求められる1ブロックあたりの消去回数の平均を表すものであるが、本実施形態では以下に示すように、ホスト2がメモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数を平均消去回数と見做すこととする。
フラッシュメモリ10等の不揮発性メモリへのデータの書き込み動作には、新たなデータの書き込みとデータの更新とが存在する。データを更新する際の書き込み動作としては、例えば、上書き方式と論理上書き方式とが存在する。
上書き方式とは、上書き不可能なフラッシュメモリ10を疑似的に上書き可能に見せる方式である。この上書き方式では、任意のブロックの任意の位置のデータが更新された場合、当該ブロックから全てのデータを一旦退避させる。そして、当該ブロックに対して消去動作を行ってから、再度当該ブロックに更新されたデータを含む退避させたデータをブロック単位で書き込む。
一方、論理上書き方式は、ページ単位のデータ書込みを行う。この方式では、データが更新された場合、そのデータが存在するページを無効にし、更新されたデータは別ブロック又は同一ブロックの別ページに配置される。つまり、論理アドレスは変わらず、論理アドレスに対応する物理アドレスが変更される。
以上より、フラッシュメモリ10に対してデータの更新を行う場合には、データの無効化、又は消去動作を伴う場合がある。つまり、メモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数はフラッシュメモリ10の平均消去回数と関連している。そのため、本実施形態の説明では、メモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数をフラッシュメモリ10の平均消去回数として表すこととする。
また、メモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数は、時間が経過するほど増加する。よって、フラッシュメモリ10の平均消去回数も時間が経過するとともに増加する。なお、メモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数は、例えば、メモリコントローラ20が管理している。
なお、本実施形態において、平均消去回数及びホスト2がメモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数はパラメータの例である。また、ホスト2がメモリシステム1に対して発行した書き込みコマンドの回数や消去コマンドの回数、実際の消去回数、及びそれらの組み合わせ等、消去回数に関する任意の情報を加味してパラメータとしてもよい。例えば、本実施形態の説明ではホスト2がメモリシステム1に対して発行した書き込みコマンドの1ブロックあたりの平均回数を平均消去回数と見做しているが、実際の平均消去回数をパラメータとして用いても良い。また、ホスト2がメモリシステム1に対して発行した書き込みコマンドの回数に限らず、消去コマンド等の他のコマンドも含めたホスト2がメモリシステム1に対して発行したコマンドの1ブロックあたりの平均回数を平均消去回数と見做しても良い。
本実施形態において、タグIDは、平均消去回数に基づいて、任意の単位の論理アドレス毎に割り当てられる識別子である。本実施形態では、タグIDは4KB単位の論理アドレス毎に割り当てられている。また、本実施形態では、タグIDは4bitであり、タグID=0からタグID=15の16個である。そして、タグID=0は書き込まれているデータが無効データである場合を表す。タグID=1からタグID=15までの15個のIDは、書き込まれているデータが有効データである場合を表し、平均消去回数が5回増加する毎にタグIDが1増加するように、平均消去回数に基づき割り当てられている。図2に示すように、例えば、平均消去回数が5回である時に書き込まれたデータの場合は、任意の単位の論理アドレスに対してタグID=1が割り当てられる。なお、タグIDは、4bitでなく任意の情報量であっても良い。タグIDが1増加する毎の平均消去回数は5回に限らず、任意の回数を割り当てても良い。また、タグIDは、図2に示すように、平均消去回数の上昇に応じて循環させて利用しても良い。タグIDをn巡目に利用する場合、平均消去回数は、((n-1)*(平均消去回数に基づき割り当てられたタグIDの数)+(タグID-1))*(タグIDが1増加する分の平均消去回数)+1から((n-1)*(平均消去回数基づき割り当てられたタグIDの数)+タグID)*(タグIDが1増加する分の平均消去回数)まで、と求められる。本実施形態では、平均消去回数に基づき割り当てられたタグIDの数は15個、タグIDが1増加する分の平均消去回数は5回であるので、例えば、3巡目のタグID=5の場合、データが書き込まれた時のフラッシュメモリ10の平均消去回数は171-175回であると求められる。
図3(a)は、第1の実施形態に係るメモリシステムに含まれる不揮発性メモリのブロックを概略的に表した図である。図3(b)は、第1の実施形態に係るメモリシステムで用いられる第1のタグ情報管理テーブルの構成の一例を示す図である。
第1のタグ情報管理テーブルは、任意の単位の論理アドレス毎に割り当てられたタグ情報を管理するテーブルである。本実施形態では第1のタグ情報管理テーブルはタグID管理テーブルT1(T1a、T1b)である。
具体的には、例えば図3(a)に示すように、各ブロックの物理アドレスは、4KB毎に区切られている。そして、図3(b)に示すように、タグID管理テーブルT1は、図3(a)に示した各ブロックの4KB毎の物理アドレスに対応するように、タグID割り当てテーブルに基づいて4KBの論理アドレス毎に割り当てられたタグIDが記録されている。
(動作)
第1の実施形態に係るメモリシステムの動作を、図4乃至図7を参照して説明する。
(書き込み動作及びタグID書き込み動作)
図4は、第1の実施形態に係るメモリシステムにおける書き込み動作及びタグ情報書き込み処理を表すシーケンス図である。
メモリコントローラ20は、メモリシステム1の電源投入後、フラッシュメモリ10からタグID管理テーブルT1aをRAM22上のタグID管理テーブルT1bにロードする(S110)。本実施形態の説明では、メモリシステム1の電源投入後にタグID管理テーブルT1aをRAM22上にロードしているが、タグID管理テーブルT1aをRAM22上にロードするタイミングはこれに限定されない。
ホスト2は、メモリコントローラ20に対して書き込みコマンドを発行し、データをメモリコントローラ20に送信する(S120)。
メモリコントローラ20は、書き込みコマンド及びデータをホスト2から受信する。そして、書き込みコマンド及びデータを受信したことに応じて、フラッシュメモリ10へデータの書き込みを行う(S130)。また、メモリコントローラ20は、ホスト2から受信した書き込みコマンドの回数を管理する。なお、メモリコントローラ20は、ホスト2から受信した書き込みコマンドの回数を管理するタイミングは任意のタイミングでよい。但し、タイミングはタグID管理テーブルT1bにタグIDを記録する前が好ましい。
メモリコントローラ20は、データが書き込まれた論理アドレスに対してタグID割り当てテーブルに基づいてタグIDを割り当て、RAM22上にロードされたタグID管理テーブルT1bにタグIDを記録する(S140)。
メモリコントローラ20は、タグID管理テーブルT1bへのタグIDの書き込みが完了すると、データの書き込みが完了したことをホスト2に通知し、書き込み及びタグIDの書き込み処理が完了する(S150)。
本実施形態において、メモリコントローラ20は、タグID管理テーブルT1bへのタグIDの書き込み(S140)が完了した後に、データの書き込みが完了したことをホスト2に通知しているが、フラッシュメモリ10へデータの書き込み(S130)を行った後に、データの書き込みが完了したことをホスト2に通知してもよい。その場合、データの書き込みが完了したことをホスト2に通知した後に、メモリコントローラ20は、タグID管理テーブルT1bへのタグIDの書き込みを行う。
以上のように、タグIDはフラッシュメモリ10へのデータの書き込みが行われるタイミングで割り当てられる。また、RAM12上にロードされたタグID管理テーブルT1bは、フラシュメモリ10にデータの書き込みが行われるタイミングで更新される。そして、例えばメモリシステム1の電源を切る前に、更新されたタグID管理テーブルT1bをフラッシュメモリ10に格納されたタグID管理テーブルT1aに書き込んで、フラシュメモリ10に格納されたタグID管理テーブルT1aを更新しても良い。フラッシュメモリ10に格納されたタグID管理テーブルT1aを更新するタイミングはこれに限定されない。例えば、フラッシュメモリ10に格納されたタグID管理テーブルT1aは、一定期間書き込みが行われなかった場合に更新しても良く、任意のタイミングで更新される。
図5は、第1の実施形態に係るメモリシステムに含まれるメモリコントローラにおける書き込み動作時及びタグ情報書き込み処理を表すフローチャートである。図5を用いて、メモリコントローラ20におけるステップS140のより詳細なタグIDの書き込み処理を説明する。
フラッシュメモリ10へデータの書き込み(S130)を行うと、メモリコントローラ20は、まず書き込み動作がデータの更新であったか判断する(S141)。
書き込み動作がデータの更新ではなかった場合(S141;NO)、すなわち新たなデータの書き込みであった場合、ステップS144に進む。一方で、書き込み動作がデータの更新であった場合(S141;YES)、メモリコントローラ20は、論理上書き方式であったか判断する(S142)。
論理上書き方式ではなかった場合(S142;NO)、すなわち上書き方式であった場合、ステップS144に進む。一方で、論理上書き方式であった場合(S142;YES)、更新前のデータが記憶されていた物理アドレスは無効化される。よって、更新前のデータが記憶されていた物理アドレスに対応するタグID管理テーブルT1bに記載のタグIDをタグID=0とする(S143)。
続いて、メモリコントローラ20は、新たなデータ、又は更新したデータを記憶する論理アドレスに対して、タグID割り当てテーブルを基にタグIDを割り当てる(S144)。
メモリコントローラ20は、新たなデータ、又は更新したデータを記憶する論理アドレスに対応するタグID管理テーブルに、ステップS144で割り当てたタグIDを書き込む(S145)。
メモリコントローラ20は、タグID管理テーブルへのタグIDの書き込みが完了すると、図4に示したステップS150に進み、メモリシステム1における書き込み動作及びタグID書き込み処理が完了する。
(消去動作及びタグID書き込み動作)
図6は、第1の実施形態に係るメモリシステムにおける消去動作及びタグ情報書き込み処理を表すシーケンス図である。
メモリコントローラ20は、メモリシステム1の電源投入後、フラッシュメモリ10からタグID管理テーブルT1aをRAM22上のタグID管理テーブルT1bにロードする(S110)。本実施形態の説明では、メモリシステム1の電源投入後にタグID管理テーブルT1aをRAM22上にロードしているが、タグID管理テーブルT1aをRAM22上にロードするタイミングはこれに限定されない。既にタグID管理テーブルT1aがRAM上にロードされている場合は、ステップS110を飛ばしても良い。
ホスト2は、メモリコントローラ20に対して消去コマンドを発行する(S160)。
メモリコントローラ20は、消去コマンドをホスト2から受信する。そして、消去コマンドを受信したことに応じて、データの消去を行う(S170)。
メモリコントローラ20は、タグID割り当てテーブルに基づいてタグIDを割り当て、RAM22上にロードされたタグID管理テーブルT1bにタグIDを記録する。消去動作において、データは消去されるため、消去動作が行われたブロックのタグID管理テーブルT1bにタグID=0を書き込む(S180)。
メモリコントローラ20はタグIDの書き込みが完了すると、データの消去が完了したことをホスト2に通知し、消去動作及びタグIDの書き込み処理が完了する(S190)。
本実施形態において、メモリコントローラ20は、タグID管理テーブルT1bへのタグIDの書き込み(S180)が完了した後に、データの消去が完了したことをホスト2に通知しているが、フラッシュメモリ10のデータの消去(S170)を行った後に、データの消去が完了したことをホスト2に通知してもよい。その場合、データの消去が完了したことをホスト2に通知した後に、メモリコントローラ20は、タグID管理テーブルT1bへのタグIDの書き込みを行う。
(ガベージコレクション)
図7を用いてメモリコントローラ20におけるガベージコレクション動作を説明する。
本実施形態において、ガベージコレクションは、同程度の時期に書き込まれた有効データを集約するために行われる転記処理である。有効データが書き込まれた時期は、タグ情報により管理される。
図7は、第1の実施形態に係るメモリシステムに含まれるメモリコントローラのガベージコレクションを表すフローチャートである。本実施形態の説明において、例えば、フラッシュメモリ10の平均消去回数が16-20回である時に平均消去回数1-5回の時に書き込みが行われたデータを基準としてガベージコレクションを行うとする。すなわち、現在のタグID=4である時に、タグID=1が割り当てられた論理アドレスに対応する物理アドレスのデータがガベージコレクションの基準となる。ガベージコレクションの基準となるタグIDは、第1のタグ情報である。つまり、本実施形態の説明では第1のタグ情報はタグID=1である。
メモリコントローラ20は、フラッシュメモリ10に含まれるガベージコレクションの対象となる任意のブロックを選択する(S210)。
メモリコントローラ20は、選択されたブロックの任意の物理アドレスを選択する。メモリコントローラ20は、選択された物理アドレスに対応するタグIDを、タグID管理テーブルT1bから読み出す(S220)。
メモリコントローラ20は、読み出したタグIDが、第1のタグ情報か否かを確認する(S230)。本実施形態では、第1のタグ情報と同じタグIDが割り当てられた論理アドレスに対応する物理アドレスのデータがガベージコレクションの対象となる。本実施形態の説明では、第1のタグ情報はタグID=1であるため、読み出したタグIDがタグID=1であるかを確認する。
読み出したタグIDが第1のタグ情報でない場合(S230;NO)、ガベージコレクションの対象ではないためステップS250に進む。一方で、読み出したタグIDが第1のタグ情報である場合(S230;YES)、ガベージコレクションの対象となるためタグIDの数をカウントする(S240)。
続いて、メモリコントローラ20は、選択されたブロックの物理アドレスに対応する論理アドレスに割り当てられた全てのタグIDに対して、第1のタグ情報であるかの確認が行われたか確認する(S250)。選択されたブロックの物理アドレスに対応する論理アドレスに割り当てられた全てのタグIDに対して、第1のタグ情報であるかの確認が行われていない場合(S250;NO)、ステップS220に戻る。
選択されたブロックの物理アドレスに対応する論理アドレスに割り当てられた全てのタグIDに対して、第1のタグ情報であるかの確認が行われた場合(S250;YES)、メモリコントローラ20は、カウントした第1のタグ情報のタグIDの数が第1の閾値より少ないか判断する(S260)。ここで、第1の閾値とは、例えば、1つのブロックに含まれるタグIDの総数の半分である。本実施形態において、第1の閾値は1つのブロックに含まれるタグIDの総数の半分であるとしたが、これに限定されず、任意の値としても良い。
カウントした第1のタグ情報のタグIDの数が第1の閾値より少ない場合(S260;YES)、選択されたブロックに含まれる第1のタグ情報が割り当てられた論理アドレスに対応する物理アドレスに書き込まれているデータに対してガベージコレクションを行う(S270)。一方で、カウントした第1のタグ情報のタグIDの数が第1の閾値以上である場合(S260;NO)、ガベージコレクションは行わずにステップS280に進む。カウントした第1のタグ情報のタグIDの数が第1の閾値以上である場合は、既に1つのブロック中に同じタグIDであるデータが集約されていると考えられる。そのため、ガベージコレクションは実施されない。
メモリコントローラ20は、ガベージコレクションの対象となる全てのブロックに対してステップS220~ステップS270の動作が行われたか確認する(S280)。
ガベージコレクションの対象となるブロック全てに対してステップS220~ステップS270の動作が行われていない場合(S280;NO)、ステップS210に戻る。一方で、ガベージコレクション対象のブロック全てに対してステップS220~ステップS270の動作が行われた場合(S280;YES)、ガベージコレクションは完了する。
本実施形態の説明において、現在のタグID=4である時に、タグID=1が割り当てられた論理アドレスに対応する物理アドレスのデータをガベージコレクションの基準である第1のタグ情報としたが、ガベージコレクションの基準となるタグIDはこれに限定されない。例えば、現在のタグID=6である時に、タグID=1が割り当てられた論理アドレスに対応する物理アドレスのデータをガベージコレクションの基準としても良く、現在のタグIDとガベージコレクションの基準となるタグIDの間隔は任意に決定して良い。
また、例えば、平均消去回数が131-135回、すなわち現在のタグIDの割り当てが2巡目のタグID=12の場合に、タグID=9をガベージコレクションの基準のタグIDとする。この時タグID=9が割り当てられたデータは、平均消去回数41-45回の時に書き込みが行われたデータと、平均消去回数が116-120回の時に書き込みが行われたデータとが該当する。しかし、どちらもタグID=9であり、同一のタグIDであるので同じ処理を行う。
(効果)
以上のように、タグIDが同一のデータを基準としてガベージコレクションを実施することによって、同程度の時期に書き込まれたデータを1つのブロックに集約させることが可能となる。すなわち、ガベージコレクションを行った後に、同一ブロック内のデータが断片化してしまうことを抑制できる。さらに、ガベージコレクションの基準となるタグIDの数が第1の閾値より少ない場合にガベージコレクションを行うことによって、既に同程度の時期に書き込まれたデータが集約しているブロックに対してガベージコレクションを行う必要がない。したがって、不要なガベージコレクションを抑えることができ、書き換え(書き込み/消去)パフォーマンスの向上やブロックの寿命の延長が可能となる。
また、本実施形態において、第1の閾値を1つのブロックに含まれるタグIDの総数の半分であるとしたが、第1の閾値がより小さい場合は、ガベージコレクションの処理の頻度を抑えることが可能であり、ブロックの寿命の延長が可能となる。また、第1の閾値がより大きい場合は、ガベージコレクションの処理の頻度は増えるが、同程度の時期に書き込まれたデータをより1つのブロックに集約させることが可能となる。
(第2の実施形態)
第2の実施形態に係るメモリシステムを、図8乃至図14を参照して説明する。第2の実施形態が第1の実施形態と異なる点は、タグID管理テーブルに加えて、ブロック単位タグID管理テーブルを有する点である。タグID管理テーブルに加えて、ブロック単位タグID管理テーブルを有する点以外は、第1の実施形態と同様であるため、同一の符号を付して、詳細な説明は省略する。
(構造)
第2の実施形態に係るメモリシステムを含む情報処理システムの構成を、図8及び図10を参照して説明する。
図8は、第2の実施形態に係るメモリシステムの構成の一例を示すブロック図である。
図8に示すように、フラッシュメモリ10は、タグID管理テーブルT1aに加えて、ブロック単位タグID管理テーブルT2aを格納することが可能である。また、RAM22は、例えば、フラッシュメモリ10からロードされたブロック単位タグID管理テーブルT2aのデータをブロック単位タグID管理テーブルT2bに保持可能である。
図9は、第2の実施形態に係るメモリシステムで用いられるタグ情報割り当てテーブルの構成の一例を示す図である。本実施形態において、例えば、フラッシュメモリ10の書き換え回数の寿命を3000回とする。本実施形態では、このフラッシュメモリ10の書き換え回数の寿命に対応するように、タグIDは8bitで平均消去回数が15回増える毎にタグIDが1増加するように平均消去回数に基づいて割り当てられている。また、タグIDはタグID=0からタグID=256のうち、タグID=0からタグID=200が用いられている。タグID=0は、第1の実施形態と同様に無効データを表す。本実施形態において、タグIDは循環しない。本実施形態では、書き換え回数の寿命を3000回としたがこれに限定されない。書き換え回数の寿命に合わせて、タグIDの情報量を変更したり、タグIDが1増加する平均消去回数を任意の回数としたりしても良い。
図10(a)は、第2の実施形態に係るメモリシステムに含まれる不揮発性メモリを概略的に表した図である。図10(b)は、第2の実施形態に係るメモリシステムで用いられる第2のタグ情報管理テーブルの構成の一例を示す図である。
第2のタグ情報管理テーブルは、第1のタグ情報管理テーブルの任意の単位の代表のタグ情報を管理するテーブルである。本実施形態では、第2のタグ情報管理テーブルは、第1のタグ情報管理テーブルのブロック単位の代表のタグ情報を管理しており、ブロック単位タグID管理テーブルT2(T2a、T2b)である。
具体的には図10(a)に示すように、フラッシュメモリ10は、ブロック毎に区切られている。図10(b)に示すように、ブロック単位タグID管理テーブルT2は、タグID管理テーブルT1のフラッシュメモリ10の複数のブロック各々の代表のタグIDを管理する。本実施形態において、代表のタグIDは最小のタグIDである。例えば、ブロックBLK1に含まれる4KB単位の物理アドレスに対応する論理アドレスに割り当てられたタグIDの最小がタグID=2の場合、ブロックBLK1に対応するブロック単位タグID管理テーブルT2にはタグID=2が記録される。
(動作)
第2の実施形態に係るメモリシステムの動作を、図11乃至図14を参照して説明する。
(書き込み動作及びタグID書き込み動作)
図11は、第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおける書き込み動作時のタグ情報書き込み処理を表すフローチャートである。図11を用いて、メモリコントローラにおける図4に示すステップS140のより詳細なタグIDの書き込み管理シーケンスを説明する。ステップ140以外の部分は第1の実施形態と同様であるため、詳細な説明は省略する。
ステップS141~ステップS145は、図5と同様である。
メモリコントローラ20は、新たなデータ、又は更新したデータを記憶する物理アドレスを含むブロックにおいて、タグID管理テーブルT1bに記載された最小のタグIDを確認する(S146)。なお、無効データであるタグID=0は除く。
続いて、メモリコントローラ20は、新たなデータ、又は更新したデータを記憶する物理アドレスを含むブロックに対応するブロック単位タグID管理テーブルT2bに、確認した最小タグIDを書き込む(S147)。
タグID管理テーブルT1bへのタグIDの書き込み、及びブロック単位タグID管理テーブルT2bへ最小タグIDの書き込みが完了すると、図4に示したステップS150に進む。以上で、書き込み動作及びタグID書き込み動作が完了する。
(ガベージコレクション)
図12は、第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるガベージコレクション処理を表すフローチャートである。図12を用いて、メモリコントローラにおけるガベージコレクション動作を説明する。なお、図7と同様のステップについての詳細な説明は省略し、図7と異なる点について説明する。
メモリコントローラ20は、ブロック単位タグID管理テーブルT2bを用いてブロックを選択する(S310)。ブロックの選択方法については後述する。
メモリコントローラ20は、第1の実施形態と同様に、選択されたブロックの任意の物理アドレスを選択する。メモリコントローラ20は、選択された物理アドレスに対応する論理アドレスに割り当てられたタグIDを、タグID管理テーブルT1bから読み出す(S220)。
メモリコントローラ20は、タグID管理テーブルT1bから読み出したタグIDが、タグID=0より大きく、第1のタグ情報以下であるかを確認する(S330)。すなわち、無効データのタグ情報であるタグID=0を除く第1のタグ情報以下であるタグ情報か確認する。読み出したタグIDが、タグID=0より大きく、ガベージコレクションの対象となるタグID以下である場合(S330;YES)、タグID=0より大きく、第1のタグ情報以下のタグIDの数をカウントする(S340)。読み出したタグIDが、第1のタグ情報より大きい場合(S330;NO)、ガベージコレクションの対象ではないためステップS250に進む。
続いて、メモリコントローラ20は、選択されたブロックに含まれる全ての物理アドレスに対応する論理アドレスに割り当てられたタグIDに対して、タグID=0より大きく第1のタグ情報以下であるかの確認が行われたか確認する(S250)。選択されたブロックに含まれる全ての物理アドレスに対応する論理アドレスに割り当てられたタグIDに対して、タグID=0より大きく第1のタグ情報以下であるかの確認が行われていない場合(S250;NO)、ステップS220に戻る。
選択されたブロックに含まれる全ての物理アドレスに対応する論理アドレスに割り当てられたタグIDに対して、タグID=0より大きく第1のタグ情報以下であるかの確認が行われた場合(S250;YES)、メモリコントローラ20は、カウントしたタグID=0より大きく第1のタグ情報以下のタグIDの数が第1の閾値より少ないか判断する(S360)。
カウントしたタグID=0より大きく第1のタグ情報以下のタグIDの数が第1の閾値より少ない場合(S360;YES)、選択されたブロックに含まれるタグID=0より大きく第1のタグ情報以下のタグIDがついた論理アドレスに対応する物理アドレスに書き込まれているデータに対してガベージコレクションを行う(S270)。一方で、カウントしたタグID=0より大きく第1のタグ情報以下のタグIDの数が第1の閾値以上である場合(S260;NO)、ガベージコレクションは行わずに、ステップS280に進む。
本実施形態の説明において、例えば、フラッシュメモリ10の平均消去回数が21-25回である時、すなわちタグID=5である時に第1のタグ情報であるガベージコレクションの基準となるタグIDがタグID=2とする。この時、タグID管理テーブルT1bでタグID=1及びタグID=2が書き込まれた物理アドレスのデータがガベージコレクションの対象となる。
図13は、第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるガベージコレクション処理の一部を表すフローチャートである。図13を用いて、図12に示すステップS310のより詳細な説明をする。
メモリコントローラ20は、ブロック単位管理テーブルT2aをフラッシュメモリ10からRAM22上のブロック単位管理テーブルT2bに読み出す(S311)。既にブロック単位管理テーブルT2aをフラッシュメモリ10からRAM22上のブロック単位管理テーブルT2bに読み出している場合は、読み出さなくても良い。メモリコントローラ20がブロック単位管理テーブルT2aをフラッシュメモリ10からRAM22上のブロック単位管理テーブルT2bに読み出すタイミングはこれに限定されない。
続いてメモリコントローラ20は、ブロック単位タグID管理テーブルT2bの中で最小のタグIDが記録されたブロックを探索し選択する(S312)。そして、図12のステップS220に進む。
(リードディスターブ検査シーケンス)
フラッシュメモリ10において、データの読み出し動作は、選択されたメモリセルに対して行われる。しかし、選択されたメモリセルだけではなく、当該選択されたメモリセルの周辺の非選択のメモリセルにも閾値を超える電圧が印加される。そのため、当該選択されたメモリセルの周辺の非選択のメモリセルでも弱い書き込み状態となり、閾値電圧が高くなるように変化するリードディスターブが生じる。リードディスターブにより、フラッシュメモリ10のビットエラー率が増加するため、メモリシステム1の信頼性が低下する。そこで、例えば、後述するリードディスターブ検査を行い、訂正されたデータが多かったブロックに書き込まれているデータを、新たなブロック書き直す動作を行うことで、信頼性を保持する。以下、図14を用いて本実施形態におけるリードディスターブ検査の処理動作について説明する。
図14は、第2の実施形態に係るメモリシステムに含まれるメモリコントローラにおけるリードディスターブ検査の処理動作を表すフローチャートである。
図14に示すように、メモリコントローラ20は、メモリシステム1の電源投入時にブロック単位管理テーブルT2aをフラッシュメモリ10からRAM22上のブロック単位管理テーブルT2bに読み出す(S410)。本実施形態では、メモリシステム1の電源投入時にブロック単位管理テーブルT2aを読み出したが、ブロック単位管理テーブルT2aを読み出すタイミングはこれに限定されない。
メモリコントローラ20は、リードディスターブ検査が終了しているかどうか確認する(S420)。リードディスターブ検査とは、例えば、検査対象のブロックに対して読み出し電圧をシフトさせて印加し、読み出したデータをECC(Error Correcting Code)訂正回路に通して、訂正されたデータの多寡を検査することである。ここで訂正されたデータが多かったブロックに書き込まれているデータを新たなブロックに書き直すことで、リードディスターブに対応している。
リードディスターブ検査が既に終了している場合(S420;YES)、リードディスターブ検査の処理動作は完了する。一方で、リードディスターブ検査が終了していない場合(S420;NO)、RAM上に読出したブロック単位タグID管理テーブルT2bから任意のブロックを選択する。メモリコントローラ20は、選択されたブロックのブロック単位管理テーブルT2bに記載のブロック単位の最小タグIDを読み出す(S430)。
メモリコントローラ20は、読み出されたブロック単位の最小タグIDが、タグID=0より大きくリードディスターブ検査の基準となるタグIDより小さいか判断する(S440)。本実施形態において、リードディスターブ検査の基準となるタグIDは第2のタグ情報である。本実施形態の説明では、第2のタグ情報はタグID=4とする。
読み出されたブロック単位の最小タグIDが、第2のタグ情報以上の場合(S440;NO)、ステップS460へ進む。一方で、読み出されたブロック単位の最小タグIDが、タグID=0より大きく第2のタグ情報より小さい場合(S440;YES)、タグID=0より大きくリードディスターブ検査の基準となる第2のタグ情報より小さいタグIDがついているブロックに対してリードディスターブ検査を行う(S450)。本実施形態では、第2のタグ情報はタグID=4であるため、読み出されたブロック単位の最小タグIDがタグID=1,2,3のいずれかである場合、選択されたブロックに対してリードディスターブ検査が行われる。
続いて、メモリコントローラ20は、ブロック単位タグID管理テーブルT2bの全てのブロック単位の最小タグIDに対して、タグID=0より大きく第2のタグ情報より小さいか確認が完了したか確認する(S460)。
ブロック単位タグID管理テーブルの全てのタグIDに対して、タグID=0より大きく第2のタグ情報より小さいか確認が完了していない場合(S460;NO)、ステップS430に戻る。
ブロック単位タグID管理テーブルの全てのブロック単位の最小タグIDに対して、タグID=0より大きく第2のタグ情報より小さいか確認が完了した場合(S460;YES)、リードディスターブ検査の処理動作が完了する。検査後に、リードディスターブ検査において訂正されたデータが多かったブロックに書き込まれているデータを、新たなブロック書き直す動作を行っても良い。
本実施形態では、リードディスターブ検査が終了しているかどうか確認したが、これに限定されない。例えば、前回のリードディスターブ検査から一定回数以上の読み出し動作が行われたかを確認しても良い。その場合、前回のリードディスターブ検査から一定回数以上の読み出し動作が行われていない場合、リードディスターブ検査シーケンスは終了となる。一方で、前回のリードディスターブ検査から一定回数以上の読み出し動作が行われている場合、ステップS430に進む。
(効果)
以上のように、第2の実施形態においても、第1の実施形態と同様の効果を得ることができる。また、本実施形態ではタグIDが循環しない。そのため、ガベージコレクションの対象となるタグIDをタグID=0より大きく第1のタグ情報以下とした場合に、必ず第1のタグ情報と同程度または第1のタグ情報よりも更新頻度が低いデータが対象となる。したがって第1の実施形態よりも効率的に更新頻度が低いデータを集約することが可能である。さらに、ブロック単位タグID管理テーブルT2を設けることで、更新頻度の低いデータが集約したブロックに焦点を当ててリードディスターブ検査を実施することが可能となる。すなわち、リードディスターブを効率的かつ早期発見することができ、信頼性を向上させることが可能である。また、ガベージコレクションを行う際にもブロック単位タグID管理テーブルを用いることで、更新頻度が低いデータが存在するブロックを優先的に選択しガベージコレクションを行うことができ、よりガベージコレクションを効率的に実施することが可能となる。
1・・・メモリシステム、2・・・ホスト、10・・・フラッシュメモリ、20・・・メモリコントローラ、21・・・CPU、22・・・RAM、23・・・ホストI/F、24・・・メモリI/F、25・・・データバッファ。

Claims (18)

  1. ブロックを有する不揮発性メモリと、
    前記不揮発性メモリを制御することが可能なメモリコントローラと、
    を備え、
    前記メモリコントローラは、消去回数に関する情報に基づいて前記不揮発性メモリの論理アドレスに割り当てられるタグ情報を管理する第1のタグ情報管理テーブルを保持し、
    前記タグ情報は、前記消去回数に関する情報に基づいて順に並んだ値が割り当てられ、
    前記メモリコントローラは、無効データのタグ情報を除く、前記タグ情報に含まれる第1のタグ情報の値以下のタグ情報が割り当てられた論理アドレスに対応するデータに対してガベージコレクションを行う
    メモリシステム。
  2. 前記消去回数に関する情報は、ホストが発行した書き込みコマンドの回数に基づく請求項1に記載のメモリシステム。
  3. 前記タグ情報は、前記不揮発性メモリへのデータの書き込み時に割り当てられる請求項1に記載のメモリシステム。
  4. 前記タグ情報は、任意の単位の論理アドレス毎に割り当てられる請求項1に記載のメモリシステム。
  5. 前記メモリコントローラは、前記ブロック内の前記無効データのタグ情報を除く前記第1のタグ情報の値以下のタグ情報が割り当てられた論理アドレスの数が第1の閾値より少ない場合に前記ガベージコレクションを行う請求項1に記載のメモリシステム。
  6. 前記メモリコントローラは、前記ブロック内の前記無効データのタグ情報を除く前記第1のタグ情報の値以下のタグ情報が割り当てられた論理アドレスの数が第1の閾値以上の場合に前記ガベージコレクションを行わない請求項5に記載のメモリシステム。
  7. 前記メモリコントローラは、前記第1のタグ情報管理テーブルにおける前記ブロックのタグ情報のうち一つの代表のタグ情報を管理する第2のタグ情報管理テーブルをさらに保持し、前記第2のタグ情報管理テーブルに基づいてリードディスターブ検査を行う請求項1に記載のメモリシステム。
  8. 前記代表のタグ情報は、前記第1のタグ情報管理テーブルにおける前記ブロックの最小のタグ情報である請求項7に記載のメモリシステム。
  9. 前記メモリコントローラは、前記第2のタグ情報管理テーブルにおいて、前記代表のタグ情報に含まれる第2のタグ情報より小さいタグ情報を有するブロックに前記リードディスターブ検査を行う請求項7に記載のメモリシステム。
  10. ブロックを有する不揮発性メモリと、
    前記不揮発性メモリを制御することが可能なメモリコントローラと、
    を備え、
    前記メモリコントローラは、ホストが発行した書き込みコマンドの回数に基づいて前記不揮発性メモリの論理アドレスに割り当てられるタグ情報を管理する第1のタグ情報管理テーブル保持し、
    前記メモリコントローラは、前記タグ情報に含まれる第1のタグ情報が割り当てられた論理アドレスに対応するデータに対して、前記ブロック内の前記第1のタグ情報が割り当てられた論理アドレスの数が第1の閾値より少ない場合にガベージコレクションを行うメモリシステム。
  11. 前記タグ情報は、前記不揮発性メモリへのデータの書き込み時に割り当てられる請求項10に記載のメモリシステム。
  12. 前記メモリコントローラは、前記ブロック内の前記第1のタグ情報が割り当てられた論理アドレスの数が第1の閾値以上の場合に前記ガベージコレクションを行わない請求項10に記載のメモリシステム。
  13. 前記メモリコントローラは、前記第1のタグ情報管理テーブルにおける前記ブロックのタグ情報のうち一つの代表タグ情報を管理する第2のタグ情報管理テーブルをさらに保持し、前記第2のタグ情報管理テーブルに基づいてリードディスターブ検査を行う請求項10に記載のメモリシステム。
  14. 前記メモリコントローラは、前記第2のタグ情報管理テーブルにおいて、前記代表のタグ情報に含まれる第2のタグ情報より小さいタグ情報を有するブロックに前記リードディスターブ検査を行う請求項13に記載のメモリシステム。
  15. ブロックを有する不揮発性メモリと、前記不揮発性メモリを制御することが可能なメモリコントローラと、を備え、前記メモリコントローラは、パラメータに基づいて前記不揮発性メモリの論理アドレスに割り当てられるタグ情報を管理する第1のタグ情報管理テーブルと、前記第1のタグ情報管理テーブルにおける前記ブロックのタグ情報のうち一つの代表のタグ情報を管理する第2のタグ情報管理テーブルとを保持し、前記第1のタグ情報管理テーブルに基づいて前記不揮発性メモリのガベージコレクションを行い、前記第2のタグ情報管理テーブルに基づいてリードディスターブ検査を行うメモリシステム。
  16. 前記パラメータは、消去回数に関する情報である請求項15に記載のメモリシステム。
  17. 前記パラメータは、ホストが発行した書き込みコマンドの回数である請求項15に記載のメモリシステム。
  18. 前記メモリコントローラは、前記第1のタグ情報管理テーブルで前記タグ情報に含まれる第1のタグ情報が割り当てられた論理アドレスに対応するデータに対して前記ガベージコレクションを行い、前記第2のタグ情報管理テーブルで前記代表のタグ情報に含まれる第2のタグ情報より小さいタグ情報を有するブロックに前記リードディスターブ検査を行う請求項15に記載のメモリシステム。
JP2021153212A 2021-09-21 2021-09-21 メモリシステム Active JP7693482B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021153212A JP7693482B2 (ja) 2021-09-21 2021-09-21 メモリシステム
US17/592,466 US12153824B2 (en) 2021-09-21 2022-02-03 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021153212A JP7693482B2 (ja) 2021-09-21 2021-09-21 メモリシステム

Publications (2)

Publication Number Publication Date
JP2023045035A JP2023045035A (ja) 2023-04-03
JP7693482B2 true JP7693482B2 (ja) 2025-06-17

Family

ID=85572375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021153212A Active JP7693482B2 (ja) 2021-09-21 2021-09-21 メモリシステム

Country Status (2)

Country Link
US (1) US12153824B2 (ja)
JP (1) JP7693482B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011010348A1 (ja) 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置
JP2012164114A (ja) 2011-02-07 2012-08-30 Renesas Electronics Corp 不揮発性半導体記憶装置及びデータ処理システム
JP2013544414A (ja) 2010-12-03 2013-12-12 マイクロン テクノロジー, インク. トランザクションログの復元
JP2019053415A (ja) 2017-09-13 2019-04-04 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム
CN111400201A (zh) 2020-03-19 2020-07-10 合肥兆芯电子有限公司 快闪存储器的数据整理方法、存储装置及控制电路单元

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
JP2011227802A (ja) 2010-04-22 2011-11-10 Funai Electric Co Ltd データ記録装置
JP2012033002A (ja) 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US9135112B2 (en) * 2012-12-11 2015-09-15 Seagate Technology Llc Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US10606510B2 (en) * 2015-10-29 2020-03-31 Netflix, Inc. Memory input/output management
US10289548B1 (en) * 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for garbage collection in a storage system which balances wear-leveling and performance
KR20190019429A (ko) * 2017-08-17 2019-02-27 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US11061617B2 (en) * 2019-02-20 2021-07-13 Marvell Asia Pte, Ltd. High density fractional bit solid state drives using coded set partitions
KR102842450B1 (ko) * 2019-04-16 2025-08-05 에스케이하이닉스 주식회사 메모리 시스템 내 복수의 메모리 블록의 특성을 결정하는 방법 및 장치
KR20210012641A (ko) * 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 메모리 시스템, 데이터 시스템 및 그 동작방법
US11467980B2 (en) * 2020-01-10 2022-10-11 Micron Technology, Inc. Performing a media management operation based on a sequence identifier for a block
US11581058B2 (en) * 2021-05-17 2023-02-14 PetaIO Inc. Adaptive read disturb algorithm for NAND storage accounting for layer-based effect

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011010348A1 (ja) 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置
JP2013544414A (ja) 2010-12-03 2013-12-12 マイクロン テクノロジー, インク. トランザクションログの復元
JP2012164114A (ja) 2011-02-07 2012-08-30 Renesas Electronics Corp 不揮発性半導体記憶装置及びデータ処理システム
JP2019053415A (ja) 2017-09-13 2019-04-04 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム
CN111400201A (zh) 2020-03-19 2020-07-10 合肥兆芯电子有限公司 快闪存储器的数据整理方法、存储装置及控制电路单元

Also Published As

Publication number Publication date
US12153824B2 (en) 2024-11-26
JP2023045035A (ja) 2023-04-03
US20230089246A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US10255192B2 (en) Data storage device and data maintenance method thereof
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
JP5031849B2 (ja) フラッシュメモリのブロック管理方法
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
KR20090077538A (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
US11614886B2 (en) Memory system and operating method thereof
TW202101223A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20200097215A1 (en) Adaptive solid state device management based on data expiration time
US11249838B2 (en) Memory system, memory controller, and method of operating memory controller
US20210365382A1 (en) Memory system, memory controller, and operation method thereof
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
JP2008146254A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
US12430258B2 (en) Padding cached data with valid data for memory flush commands
US12525298B2 (en) Memory block characteristic determination
JP7693482B2 (ja) メモリシステム
JP2008181203A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR102732299B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 위한 컨트롤러
KR20210079637A (ko) 데이터 저장 장치 및 그 동작 방법
US11698856B2 (en) Maintaining sequentiality for media management of a memory sub-system
KR20200121068A (ko) 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러
WO2014185038A1 (ja) 半導体記憶装置およびその制御方法
KR20220068535A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250605

R150 Certificate of patent or registration of utility model

Ref document number: 7693482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150