JP2013206307A - メモリ制御装置、データ記憶装置及びメモリ制御方法 - Google Patents

メモリ制御装置、データ記憶装置及びメモリ制御方法 Download PDF

Info

Publication number
JP2013206307A
JP2013206307A JP2012076708A JP2012076708A JP2013206307A JP 2013206307 A JP2013206307 A JP 2013206307A JP 2012076708 A JP2012076708 A JP 2012076708A JP 2012076708 A JP2012076708 A JP 2012076708A JP 2013206307 A JP2013206307 A JP 2013206307A
Authority
JP
Japan
Prior art keywords
data
flash memory
memory
logical
compaction
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
JP2012076708A
Other languages
English (en)
Inventor
Satoshi Arai
智 荒井
Yoshihisa Kojima
慶久 小島
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012076708A priority Critical patent/JP2013206307A/ja
Publication of JP2013206307A publication Critical patent/JP2013206307A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】テーブルのコンパクション処理を実行する場合に、フラッシュメモリに対するアクセスを低減し、コンパクション処理の効率化を図ることができるメモリ制御装置を提供する。
【解決手段】リード・ライトコントローラ13は、データ及び論理・物理アドレス変換用の第1のテーブルを記憶するフラッシュメモリに対する読み出し、書き込みを実行する。バッファメモリ16は、第1のテーブルの一部または全てを含むキャッシュテーブルとして使用する第2のテーブル、及び第1及び第2のテーブルの論理・物理アドレスを管理する管理テーブルを格納する。第1のテーブルコントローラ152は、第2のテーブルを使用して論理・物理アドレスの変換処理を実行する。第2のテーブルコントローラ151は、第1のテーブルのコンパクション処理を実行し、コンパクション元領域内のデータの有効・無効判定処理を管理テーブルを使用して実行する。
【選択図】図1

Description

本発明の実施形態は、フラッシュメモリを使用するデータ記憶装置のメモリ制御装置及びメモリ制御方法に関する。
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を使用するSSD(solid state drive)の開発が推進されている。フラッシュメモリは、データの読み出し単位と書き込み単位がページ単位であるのに対して、データの消去単位がブロック単位である。また、書き換え対象の記憶領域に対しては、書き換え前に消去処理が必要となる。
このようなフラッシュメモリの特性から、SSDでは、特にフラッシュメモリに記録された論理・物理アドレス変換用のテーブルなどの情報をバッファメモリに格納することで、フラッシュメモリに対するアクセスが削減されている。
また、フラッシュメモリに対するデータの書き換えが進むと、無効なデータ(最新でないデータ)により、ブロック内は有効データを格納できない記憶領域の割合が増大する。SSDは、ブロック内の記憶領域を有効活用するために、コンパクション(compaction)処理を実行する。
特開2010−157141号公報
コンパクション処理は、フラッシュメモリに記録されたユーザデータだけでなく、論理・物理アドレス変換用のテーブルを記録しているブロックもコンパクション対象ブロックとなる。コンパクション処理では、コンパクション対象ブロック内のデータの有効または無効を判定する処理などのために、フラッシュメモリからテーブルのデータを読み出す処理が必要となる。
そこで、本発明の目的は、テーブルのコンパクション処理を実行する場合に、フラッシュメモリに対するアクセスを低減し、コンパクション処理の効率化を図ることができるメモリ制御装置を提供することにある。
実施形態によれば、メモリ制御装置は、リード・ライトコントローラと、バッファメモリと、第1のテーブルコントローラと、第2のテーブルコントローラとを具備する。リード・ライトコントローラは、データ及び論理・物理アドレス変換用の第1のテーブルを記憶するフラッシュメモリに対する読み出し、書き込みを実行する。バッファメモリは、前記リード・ライトコントローラにより読み出された第1のテーブルの一部または全てを含むキャッシュテーブルとして使用する第2のテーブル、及び前記第1及び第2のテーブルの論理・物理アドレスを管理する管理テーブルを格納する。第1のテーブルコントローラは、前記第2のテーブルを使用して論理・物理アドレスの変換処理を実行する。第2のテーブルコントローラは、前記第1のテーブルのコンパクション処理を実行し、当該コンパクション処理のコンパクション元領域内のデータの有効・無効判定処理を前記バッファメモリに格納された管理テーブルを使用して実行する。
実施形態に関するSSDの構成を説明するためのブロック図。 実施形態に関するLUTの構成を説明するための図。 実施形態に関するLUTキャッシュテーブルの構成を説明するための図。 実施形態に関するNVLUT正引きテーブルの構成を説明するための図。 実施形態に関するNVLUT逆引きテーブルの構成を説明するための図。 実施形態に関するコンパクション処理を説明するための図。 実施形態に関するデータ書き込み処理を説明するためのフローチャート。 実施形態に関するLUTコンパクション処理を説明するためのフローチャート。 実施形態に関するLUTコンパクション処理を説明するためのフローチャート。
以下図面を参照して、実施形態を説明する。
[データ記憶装置の構成]
図1は、実施形態に係るデータ記憶装置の構成を示すブロック図である。
図1に示すように、データ記憶装置はSSD(solid state drive)であり、SSDコントローラ10と、不揮発性メモリのNAND型フラッシュメモリ(以下、フラッシュメモリ)18とを有する。フラッシュメモリ18はSSDのデータ記憶媒体であり、通常ではチャネル毎に分割されている。
SSDコントローラ10は、ホストインターフェース(ホストI/F)11と、メイン制御部12と、リード・ライト(R/W)制御部13と、データ用バッファメモリ(以下データバッファ)14と、ルックアップテーブル(LUT:lookup table)制御部(以下LUT制御部)15と、テーブル用バッファメモリ(以下テーブルバッファ)16と、フラッシュメモリコントローラ(以下NANDコントローラ)17と、データバス19とを有する。
ホストI/F11は、SSDコントローラ10とホストデバイス20との間で、データ、コマンド、アドレスの転送(送受信)を制御する。ホストデバイス20は、例えばSATA(Serial ATA)規格のインターフェースを含むコンピュータなどである。メイン制御部12は、マイクロプロセッサ(MPU)から構成されており、SSDコントローラ10の全体的制御(各要素間の連携など)を実行する。本実施形態では、メイン制御部12は、リード・ライト制御部13、データバッファ14、及びLUT制御部15の連携するように制御する。
R/W制御部13は、基本的にはNANDコントローラ17に対して、リードコマンド及びライトコマンドを発行する。NANDコントローラ17は、チャネル毎のフラッシュメモリ18に対応し、R/W制御部13からのリードコマンドに応じてフラッシュメモリ18からデータを読み出す。また、NANDコントローラ17は、R/W制御部13からのライトコマンドに応じてフラッシュメモリ18にデータを書き込む。
R/W制御部13は、本実施形態に関係するコマンド・ディスパッチャ(CD: Command dispatcher、以下CD部と表記する)130と、コンパクション・マネージャ(CM: compaction manager、以下CM部と表記する)131と、ライトコントローラ(WC:write controller、以下WC部と表記する)132と含む。データを書き込み時に、WC部132はCD部130に対してライトコマンドを発行する。CD部130は、WC部132や図示しないリードコントローラなどからのコマンドを整理し、NANDコントローラ17に渡すためのコマンドに変更して送出する。CM部131は、後述するコンパクション処理に必要なLUTデータの書き込み要求を実行する。具体的には、CM部131は、コンパクション元ブロックのアドレスの提示などの処理を含む。
データバッファ14は、リードバッファ(RB)140と、ライトバッファ(WB)141を含むSRAM(Static Random Access Memory)のバッファメモリである。RB140は、フラッシュメモリ18から読み出されたデータを一時的に格納する。ホストI/F11は、RB140に格納されたデータをホストデバイス20に転送する。WB141は、フラッシュメモリ18に書き込むためのデータを一時的に格納する。例えば、ホストI/F11は、ホストデバイス20から受信したデータをWB141に格納する。
LUT制御部15は、アドレス変換部150と、LUTコンパクション処理部151を含む。アドレス変換部150は基本的には、テーブルバッファ16に格納されているルックアップテーブル(以下、LUTと表記する場合がある)を参照して、フラッシュメモリ18にデータを書き込むときの論理・物理アドレス変換処理を実行する。LUTコンパクション処理部151は本実施形態の主要部であり、後述するように、フラッシュメモリ18に記録されているLUTのコンパクション処理を実行する。
テーブルバッファ16は、DRAM(Dynamic Random Access Memory)160及びSRAM161を含み、後述するように、複数種のLUTを格納する。LUT制御部15は、テーブルバッファ16に格納されている各LUTを参照して、アドレス変換処理及びLUTコンパクション処理を実行する。
[テーブル構成]
図2は、テーブルバッファ16及びフラッシュメモリ18に格納されるLUTの構成を説明するための図である。
図2に示すように、テーブルバッファ16のDRAM160には、LUTキャッシュテーブル(以下、LUTキャッシュと省略する場合がある)200が格納される。DRAM160には、LUTキャッシュ200以外に、後述するLUT正引きテーブル201及びLUT逆引きテーブル202が格納される。
ここで、NV(Non-Volatile)LUTは、不揮発化されたLUTを意味する。具体的には、図2に示すように、フラッシュメモリ18に格納されたLUTであり、LUTキャッシュ200に対応するNVLUT210である。
また、SRAM161には、後述するLAB-Indexテーブル(以下、LIテーブルと表記する場合がある)203及びLUTコンパクションリスト204が格納される。さらに、フラッシュメモリ18には、NVLUT210以外に、NVLUT正引きテーブル211及びNVLUT逆引きテーブル212が格納される。
図3は、LUTキャッシュ200の構成を示す図である。
図3に示すように、LUTキャッシュ200は、ホストデバイス20からのリード要求またはライト要求時に、アドレス変換部150が参照して、論理アドレス(LBA:Logical Block Address)を物理アドレス(PBA:Physical Block Address)に変換するためのテーブルである。後述するように、LUTキャッシュ200は、例えばSSDの電源投入時にフラッシュメモリ18上に分散記録されているNVLUT210がDRAM160上に展開されたテーブルである。
ここで、アドレス変換部150は、論理アドレスとしてLBAから論理クラスタアドレス(LCA: Logical Cluster Address)を求める。LCAは、フラッシュメモリ18上のアクセス単位であるクラスタの論理的位置を示すアドレスである。例えば1クラスタは8セクタ(1セクタは512バイト)に相当するデータ領域である。従って、PBAはクラスタの物理的位置に相当し、最新のクラスタ位置を示す。なお、PBAとして、LBAとPBAとの仲介アドレスであるメディア・ブロック・アドレス(MBA:Media Block Address)またはメディア・クラスタ・オフセット(MCO:Media Cluster Offset)を使用してもよい。
図3に示すように、LUTキャッシュ200が不揮発化されたものが、フラッシュメモリ18に書き込まれたNVLUT210である。即ち、R/W制御部13及びNANDコントローラ17により、DRAM160上のLUTキャッシュ200は、フラッシュメモリ18に書き込まれて、NVLUT210として保存される。
ここで、テーブルバッファ16には、図示しないLUTダーティテーブル(Dirty table)が格納されている。このLUTダーティテーブルは、電源遮断時などに、DRAM160上のLUTキャッシュ200とフラッシュメモリ18上のNVLUT210との整合性を保つために使用される。即ち、LUTキャッシュ200とNVLUT210との差異が登録される。LUTダーティテーブルに一定量が登録されると、この差異情報が更新情報として、フラッシュメモリ18上のNVLUT210に書き込まれることになる。
ホストデバイス20からのリード要求またはライト要求時に、論理アドレス(LBAまたはLCA)から物理アドレス(PBA,MBAまたはMCO)への変換処理は、LUTキャッシュ200が使用される。DRAM160及びSRAM161において、LUTキャッシュ200以外の各テーブルなどは、後述するように、LUTキャッシュ200の不揮発化、再構築、コンパクション処理のために使用される。
図4は、LUT正引きテーブル201の構成を示す図である。
図4に示すように、LUT正引きテーブル201は、論理アドレスとしてリージョン番号(RN:Region Number)から、フラッシュメモリ18上のNVLUT210の位置を示す物理アドレス(PBA)を求めるために使用される。LUT正引きテーブル201が不揮発化されたものが、フラッシュメモリ18に書き込まれたNVLUT正引きテーブル211である。即ち、R/W制御部13及びNANDコントローラ17により、DRAM160上のLUT正引きテーブル201は、フラッシュメモリ18に書き込まれて、不揮発性化されたNVLUT正引きテーブル211として保存される。
図5は、LUT逆引きテーブル202の構成を示す図である。
図5に示すように、LUT逆引きテーブル202は、物理アドレス(PBA)としてフラッシュメモリ18上のNVLUT210用の有効論理ブロック(アクティブブロック)内の位置から、その位置に書き込まれているNVLUT210のリージョン番号(RN)を求めるために使用される。即ち、LUT逆引きテーブル202は、アクティブブロック内に、どのリージョン(番号)に対応するNVLUT210のエントリが配置されているかを示すテーブルである。LUT逆引きテーブル202は、フラッシュメモリ18に書き込まれて、不揮発化されたNVLUT逆引きテーブル212として保存される。
前述したように、テーブルバッファ16のSRAM161には、LIテーブル203が格納される(図2を参照)。LIテーブル203は、LAB-Index(LUT Active Block Index)テーブルであり、アクティブブロック内に配置されたNVLUT210の物理アドレス(MBA)からLUT逆引きテーブル202内の位置を求めるためのテーブルである。また、SRAM161には、LUTコンパクションリスト204が格納される。LUTコンパクションリスト204は、コンパクション元のアクティブブロックから抽出された有効なリージョン(番号)を登録するためのリストである。
ここで、リージョン(Region)とは、例えばLUTキャッシュ200を不揮発化する場合の最小単位である。即ち、リージョンは、LUTキャッシュ200の各エントリがフラッシュメモリ18に書き込まれて、NVLUT210を再構築する場合の最小データサイズである。
[コンパクション処理]
先ず、コンパクション処理の背景として、図7のフローチャートを参照して、本実施形態のSSDコントローラ10によるユーザデータの書き込み処理を説明する。
ホストデバイス20からライト要求(ライトコマンドの受信)があると、SSDコントローラ10はユーザデータ(ホストデータ)の書き込み処理を開始する(ブロック700)。ホストI/F11は、ホストデバイス20からライトコマンドに伴う書き込み用データ(ライトデータ)を受信すると、ライトバッファ(WB)141に格納する(ブロック701)。メイン制御部12は、WB141に一定量のライトデータが格納されると、R/W制御部13のWC部132にライト要求を行う。
WC部132は、当該ライトデータを書き込むアドレスを示す情報を含むログデータを作成し、CD部130に対して書き込み命令を発行する(ブロック702)。CD部130は、WC部132からのコマンドを整理し、NANDコントローラ17に渡すためのコマンドに変更して送出する(ブロック703)。NANDコントローラ17は、WB141からライトデータを読み出して、フラッシュメモリ18に書き込むライト処理を実行する(ブロック704)。
ここで、WC部132は、NANDコントローラ17によるライト処理が終了すると、LUT制御部15に対して、フラッシュメモリ18に新たに書き込まれたデータのアドレスに基づいてLUTを更新するアドレス更新処理を要求する。LUT制御部15は、フラッシュメモリ18のアドレスを管理しているLUTにおいて、論理・物理アドレス間のアドレス変換用データを更新する。
このようなデータの書き込み処理において、SSDでは、ホストデバイス20からのデータの書き込み単位がセクタであるのに対して、フラッシュメモリ18上でLUTによるデータの管理単位がクラスタである。クラスタは、セクタより容量的に大きい単位であり、例えば1クラスタが8セクタに相当する。このため、SSDは、書き込み処理での書き換え対象のセクタを含むクラスタのデータをフラッシュメモリ18から読み出して、フラッシュメモリ18の外部にあるバッファ領域に一時的に格納する。そして、バッファ領域で書き換え対象のセクタのデータを書き換えて、クラスタ単位のデータをフラッシュメモリ18に書き戻す動作が行われる。これを、リード・モディファイ・ライト(RMW: Read Modify Write)処理と呼ぶ。
RMW処理では、読み出したデータをフラッシュメモリ18上の元のブロック位置に書き戻すことができないため、新たな場所に書き込むことになる。即ち、データを書き換える場合に、元のデータを消去するのではなく、別の場所に新たなデータを書き加える。このため、最新のデータ(書き換えたデータ)を有効データとし、元のデータを無効データとして論理的に区別する必要がある。この有効データの記録位置を効率よく検索するためにLUTが必要となる。
SSDでは、フラッシュメモリ18に対するデータの消去単位がブロック単位であるのに対して、書き込み単位がページ単位である。ブロックは、ページより容量的に大きい単位である。このため、データの書き込み時間は、消去時間より1/10以下程度の短さである。また、フラッシュメモリ18のセルの寿命は、消去と書き換えの繰り返し回数により大きく影響される。この場合、複数のブロック間の消去回数の均一化は、後述するコンパクション処理でのコンパクション元ブロックの選定方法により実現される。即ち、消去回数が比較的少ないものをコンパクション元ブロックとして選定する。コンパクション処理では、このコンパクション元ブロックがフリーブロック(書き込み可能なブロック)化されて再利用可能となる。このようなコンパクション処理においても、LUTが有効である。
以下、図6を参照して、コンパクション処理の概要を説明する。
図6に示すように、例えば3ブロック分のコンパクション元ブロック600が存在する場合に、コンパクション処理は、各ブロック600から有効データ(最新のデータ)601を収集する。これらの有効データ601を、コンパクション先ブロック(消去済みのブロック)610に移動させる。この動作を繰り返すことにより、有効データのみのブロック610と無効データのみのブロック600とに分離することができる。無効データのみのブロック600は、消去処理により新たなデータの書き込み可能な記録ブロック(フリーブロック)620として再生することができる。
以上のようなコンパクション処理は、ユーザデータが記録されているブロックだけでなく、LUTが記録されているブロックに対しても必要となる。即ち、図2に示すように、フラッシュメモリ18上に記録されているNVLUT210などである。前述したように、ホストデバイス20からライト要求が発生すると、ユーザデータの書き込み処理に伴って、アドレス更新処理に応じたLUTのデータ(アドレス変換用データ)の変更処理が必要となる。この場合、LUT制御部15は、後述するように、R/W制御部13のCM部131を介してNVLUT210のTデータの書き換え要求を実行する(図9のフローチャートを参照)。
ここで、本実施形態では、図2に示すように、DRAM160上には、LUTキャッシュ200が格納される。LUTキャッシュ200は、例えばSSDの電源投入時に、メイン制御部12の制御に基づいて、R/W制御部13、データバッファ14、及びLUT制御部15の連携動作により、フラッシュメモリ18上から読み出されたNVLUT210のコピーである。NVLUT210は、フラッシュメモリ18上に分散記録されている。
前述したように、ホストデバイス20からライト要求に応じたユーザデータ(ホストデータ)は、一連の書き込み処理によりフラッシュメモリ18上に書き込まれる。この場合、ユーザデータのアドレス(論理アドレスと物理アドレス)を管理するLUTのデータ(アドレス変換用データ)を更新する必要がある。本実施形態では、LUT制御部15は、DRAM160上のLUTキャッシュ200のアドレス変換用データを更新するだけで、フラッシュメモリ18上のNVLUT210のデータ更新処理を実行しない。
従って、本実施形態では、ホストデバイス20からライト要求に応じたデータ書き込み処理時には、アドレス解決処理(論理アドレスから物理アドレスを求める処理)とアドレス更新処理を高速に行うことができる。即ち、DRAM160上のLUTキャッシュ200を使用し、フラッシュメモリ18上のNVLUT210をアクセスする必要がないためである。なお、ホストデバイス20からリード要求に応じたデータ読み出し処理時にも、DRAM160上のLUTキャッシュ200が常に最新の状態に更新されるため、論理アドレスから物理アドレスへの変換処理のために、フラッシュメモリ18上のNVLUT210を読み出す必要はない。
次に、主として図8及び図9のフローチャートを参照して、本実施形態のLUTのコンパクション処理を説明する。
本実施形態では、LUT制御部15のLUTコンパクション処理部151が、LUTのコンパクション処理を実行する。R/W制御部13のCM部131は、LUTコンパクション処理部151と連携し、後述するコンパクション処理に必要なLUTデータの書き込み要求などの処理を実行する(図9のフローチャートを参照)。
図8に示すように、CM部131は、コンパクション元ブロック(図6のブロック600に相当)の物理アドレス(ここではMBA)をLUTコンパクション処理部151に通知する(ブロック800)。LUTコンパクション処理部151は、DRAM160上のLUT逆引きテーブル202を参照し、NVLUT210のリージョン番号(RN)を求める(ブロック801)。
但し、実際には、LUTコンパクション処理部151は、SRAM161に格納されたLIテーブル203を参照して、NVLUT210のリージョン番号(RN)を求める。即ち、LUTコンパクション処理部151は、アクティブブロック内に配置されたNVLUT210の物理アドレス(MBA)からLUT逆引きテーブル202内の位置を求める。これにより、フラッシュメモリ18上のアクティブブロック(コンパクション元ブロック)内に、当該リージョン番号に対応するNVLUT210のエントリ(アドレス変換データ)が配置されていることが確認される。
LUTコンパクション処理部151は、LUT逆引きテーブル202から検索したNVLUT210のリージョン番号(RN)が有効データを示すか否かを判定するリージョンの有効・無効判定処理を行なう(ブロック802)。具体的には、LUTコンパクション処理部151は、DRAM160上のLUT正引きテーブル201を参照し、リージョン番号(RN)に対応するNVLUT210の物理アドレス(MBA)を求める。
LUTコンパクション処理部151は、DRAM160上のLUT逆引きテーブル202とLUT正引きテーブル201の相互参照により、リージョン番号に対応する各物理アドレスが同一であれば、当該リージョン番号が有効データ(最新のエントリ)を示すものと判定(有効判定)する(ブロック803のYES)。LUTコンパクション処理部151は、有効であると判定したリージョン番号を、SRAM161のLUTコンパクションリスト204に登録する(ブロック804)。LUTコンパクションリスト204は、コンパクション元のアクティブブロックから抽出された有効なリージョン(番号)を登録するためのリストである。
一方、LUTコンパクション処理部151は、各物理アドレスが不一致であれば当該リージョン番号が無効データを示すものと判定し、何も処理せずに次の処理に移行する(ブロック803のNO,805)。
次に、R/W制御部13は、LUTコンパクション処理部151と連携し、コンパクション処理によりLUTコンパクションリスト204に登録されたリージョン番号のLUTデータ(エントリデータ)をフラッシュメモリ18上のブロックに書き込む処理を実行する(ブロック806)。図9のフローチャートを参照して具体的に説明する。
図9に示すように、R/W制御部13のCM部131は、エントリデータの書き込み要求をWC部132に行なう(ブロック900)。ここで、メイン制御部12は、LUTコンパクション処理部151からLUTコンパクションリスト204に登録されたリージョン番号のリストの通知を受ける(ブロック901)。メイン制御部12は、通知されたリージョン番号に対応するエントリデータを、DRAM160上のLUTキャッシュ200から読み出してWB141に格納する(ブロック902)。即ち、メイン制御部12は、通知されたリージョン番号について、LUTキャッシュ200から該当リージョン番号のエントリデータをWB141に格納して準備する(不揮発化処理の準備)。ここで、エントリデータをWB141に格納せずに、DRAM160上のLUTキャッシュ200からフラッシュメモリ18に直接書き込む処理でもよい。
LUTコンパクション処理部151は、LUT逆引きテーブル202とLUT正引きテーブル201を参照して、リージョン番号に対応するエントリデータをLUTキャッシュ200から読み出す。LUTコンパクション処理部151は、WB141に格納したエントリデータのリージョン番号を、LUTコンパクションリスト204から削除する(ブロック903)。
この後の処理は、前述したユーザデータの書き込み処理と同様である。即ち、WC部132は、CD部130に対してフラッシュメモリ18上の新しいブロックにエントリデータを書き込むための書き込み命令を発行する(ブロック904)。CD部130は、WC部132からのコマンドを整理し、NANDコントローラ17に渡すためのコマンドに変更して送出する(ブロック905)。NANDコントローラ17は、WB141からエントリデータを読み出して、フラッシュメモリ18上の新しいブロックに書き込むライト処理を実行する(ブロック906)。
LUTコンパクション処理部151は、DRAM160上のLUT正引きテーブル201とLUT逆引きテーブル202の更新処理を行なう(ブロック907)。即ち、LUT正引きテーブル201には、あるリージョン番号のエントリデータを書き込んだフラッシュメモリ18上の場所(PBA)を記録する。LUT逆引きテーブル202には、当該フラッシュメモリ18上の場所(PBA)に書き込みしたリージョン番号を記録する。
このような書き込み処理により、コンパクション処理によりLUTコンパクションリスト204に登録されたリージョン番号のLUTデータ(エントリデータ)を、フラッシュメモリ18上の新たなブロックに書き込むことができる。
再度図8を参照すると、LUTコンパクション処理部151は、コンパクション元ブロックの全てのリージョン番号に対する一連の処理が終了すると、当該コンパクション元ブロックをフリーブロックに設定する(ブロック807のYES、808)。これにより、LUTのコンパクション元ブロックは、図6に示すように、消去処理により新たなデータの記録ブロック(フリーブロック)620として再生することができる。
以上のように本実施形態によれば、LUTのコンパクション処理に必要なコンパクション元ブロック内の有効データと無効データを判定する判定処理を、DRAM160上のLUT逆引きテーブル202とLUT正引きテーブル201の相互参照により実現することができる。
即ち、従来のコンパクション処理では、コンパクション対象ブロック内のデータの有効または無効を判定するために、フラッシュメモリ180から当該LTUデータを読み出す処理が必要であった。これに対して、本実施形態の判定処理は、フラッシュメモリ180からのデータ読み出し処理が不要であり、DRAM160上で実行される。従って、LTUのコンパクション処理の時間を短縮化できるため、LTUのコンパクション処理の効率化を図ることが可能となる。
さらに、本実施形態では、DRAM160上には、LUTキャッシュ200が格納される。LUTキャッシュ200は、フラッシュメモリ18上に分散記録されているNVLUT210のコピーである。ここで、NVLUT210をフラッシュメモリ18上に移動する場合(エントリデータのコピー)に、従来であればフラッシュメモリ18からNVLUT210のデータをバッファメモリ(データバッファ14)に読み出して、このバッファメモリからフラッシュメモリ18に書き戻す処理が必要である。これに対して、本実施形態は、DRAM160上のLUTキャッシュ200のデータをフラッシュメモリ18に書き出すことにより実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…SSDコントローラ、11…ホストインターフェース(ホストI/F)、
12…メイン制御部、13…リード・ライト(R/W)制御部、
14…データ用バッファメモリ(データバッファ)、15…LUT制御部、
16…テーブル用バッファメモリ(テーブルバッファ)、
17…フラッシュメモリコントローラ(NANDコントローラ)、
18…NAND型フラッシュメモリ(フラッシュメモリ)、19…データバス、
20…ホストデバイス。

Claims (11)

  1. データ及び論理・物理アドレス変換用の第1のテーブルを記憶するフラッシュメモリに対する読み出し、書き込みを実行するリード・ライトコントローラと、
    前記リード・ライトコントローラにより読み出された第1のテーブルの一部または全てを含むキャッシュテーブルとして使用する第2のテーブル、及び前記第1及び第2のテーブルの論理・物理アドレスを管理する管理テーブルを格納するバッファメモリと、
    前記第2のテーブルを使用して論理・物理アドレスの変換処理を実行する第1のテーブルコントローラと、
    前記第1のテーブルのコンパクション処理を実行し、当該コンパクション処理のコンパクション元領域内のデータの有効・無効判定処理を前記バッファメモリに格納された管理テーブルを使用して実行する第2のテーブルコントローラと
    を具備するメモリ制御装置。
  2. 前記第1のテーブルコントローラは、
    前記リード・ライトコントローラにより読み出し、書き込みを実行する場合に、前記フラッシュメモリから前記第1のテーブルを読み出すことなく、前記第2のテーブルを使用して論理・物理アドレスの変換処理を実行する請求項1に記載のメモリ制御装置。
  3. 前記リード・ライトコントローラは、
    電源投入時に、前記フラッシュメモリから前記第1のテーブルの一部または全てを読み出して、前記バッファメモリに前記第2のテーブルとして格納する請求項1または請求項2のいずれか1項に記載のメモリ制御装置。
  4. 前記管理テーブルは、
    前記第1のテーブルの所定単位のデータを示す論理的情報から対応する前記フラッシュメモリ上の物理的位置情報を検索するための第1の管理テーブルと、
    前記フラッシュメモリ上の物理的位置情報から前記論理的情報を検索するための第2の管理テーブルと
    を含む請求項1から請求項3のいずれか1項に記載のメモリ制御装置。
  5. 第2のテーブルコントローラにより有効と判定されたデータを示す論理的情報を記憶するメモリを有する請求項1から請求項4のいずれか1項に記載のメモリ制御装置。
  6. 第2のテーブルコントローラは、
    有効と判定したデータを示す論理的情報を前記メモリに記憶し、
    無効と判定したデータを示す論理的情報を無効化する請求項5に記載のメモリ制御装置。
  7. 第2のテーブルコントローラにより有効と判定されたデータを示す論理的情報を記憶するメモリと、
    前記メモリに記憶された論理的情報に基づいて、前記有効と判定されたデータを前記フラッシュメモリのコンパクション先領域に書き込む第3のテーブルコントローラと
    をさらに有する請求項1から請求項4のいずれか1項に記載のメモリ制御装置。
  8. データ及び論理・物理アドレス変換用の第1のテーブルを記憶するフラッシュメモリと、
    第1のテーブルの一部または全てを含むキャッシュテーブルとして使用する第2のテーブル、及び前記第1及び第2のテーブルの論理・物理アドレスを管理する管理テーブルを格納するバッファメモリと、
    前記フラッシュメモリに対する読み出し、書き込みを実行するリード・ライトコントローラと、
    前記第2のテーブルを使用して論理・物理アドレスの変換処理を実行する第1のテーブルコントローラと、
    前記第1のテーブルのコンパクション処理を実行し、当該コンパクション処理のコンパクション元領域内のデータの有効・無効判定処理を前記バッファメモリに格納された管理テーブルを使用して実行する第2のテーブルコントローラと
    を具備するデータ記憶装置。
  9. 前記リード・ライトコントローラは、
    電源投入時に、前記フラッシュメモリから前記第1のテーブルの一部または全てを読み出して、前記バッファメモリに前記第2のテーブルとして格納する請求項8に記載のデータ記憶装置。
  10. 前記管理テーブルは、
    前記第1のテーブルの所定単位のデータを示す論理的情報から対応する前記フラッシュメモリ上の物理的位置情報を検索するための第1の管理テーブルと、
    前記フラッシュメモリ上の物理的位置情報から前記論理的情報を検索するための第2の管理テーブルと
    を含む請求項8または請求項9のいずれか1項に記載のデータ記憶装置。
  11. データ及び論理・物理アドレス変換用の第1のテーブルを記憶するフラッシュメモリと、
    第1のテーブルの一部または全てを含むキャッシュテーブルとして使用する第2のテーブル、及び前記第1及び第2のテーブルの論理・物理アドレスを管理する管理テーブルを格納するバッファメモリとを有するデータ記憶装置に適用するメモリ制御方法であって、
    前記フラッシュメモリに対する読み出し、書き込みを実行する場合に、前記第2のテーブルを使用して論理・物理アドレスの変換処理を実行し、
    前記第1のテーブルのコンパクション処理を実行し、当該コンパクション処理のコンパクション元領域内のデータの有効・無効判定処理を前記バッファメモリに格納された管理テーブルを使用して実行するメモリ制御方法。
JP2012076708A 2012-03-29 2012-03-29 メモリ制御装置、データ記憶装置及びメモリ制御方法 Pending JP2013206307A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012076708A JP2013206307A (ja) 2012-03-29 2012-03-29 メモリ制御装置、データ記憶装置及びメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012076708A JP2013206307A (ja) 2012-03-29 2012-03-29 メモリ制御装置、データ記憶装置及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2013206307A true JP2013206307A (ja) 2013-10-07

Family

ID=49525281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012076708A Pending JP2013206307A (ja) 2012-03-29 2012-03-29 メモリ制御装置、データ記憶装置及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP2013206307A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891825B2 (en) 2015-01-23 2018-02-13 Toshiba Memory Corporation Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
US10331552B2 (en) 2015-03-10 2019-06-25 Toshiba Memory Corporation Storage device and memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891825B2 (en) 2015-01-23 2018-02-13 Toshiba Memory Corporation Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
US10331552B2 (en) 2015-03-10 2019-06-25 Toshiba Memory Corporation Storage device and memory system
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system

Similar Documents

Publication Publication Date Title
TWI385669B (zh) 用於快閃記憶體的平均磨損方法、儲存系統與控制器
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
US8386746B2 (en) Storage unit management methods and systems
JP5066241B2 (ja) メモリシステム
US8521949B2 (en) Data deleting method and apparatus
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US8645614B2 (en) Method and apparatus for managing data of flash memory via address mapping
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US8825946B2 (en) Memory system and data writing method
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
TW201349101A (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
JP2011511388A (ja) メモリマッピング技術
CN110955384A (zh) 数据储存装置以及非挥发式存储器控制方法
CN110674056B (zh) 一种垃圾回收方法及装置
KR20120084906A (ko) 비휘발성 메모리 시스템 및 그 관리 방법
US20230153012A1 (en) Memory system and control method
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2018160189A (ja) メモリシステム
US9304906B2 (en) Memory system, controller and control method of memory
US9329994B2 (en) Memory system
JP2013206307A (ja) メモリ制御装置、データ記憶装置及びメモリ制御方法
US9384124B2 (en) Data storage device, memory control method, and electronic device with data storage device
US11853200B2 (en) Memory system and controller to invalidate data corresponding to a logical address

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109