JP4738536B1 - 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法 - Google Patents

不揮発性メモリのコントローラ及び不揮発性メモリの制御方法 Download PDF

Info

Publication number
JP4738536B1
JP4738536B1 JP2010019223A JP2010019223A JP4738536B1 JP 4738536 B1 JP4738536 B1 JP 4738536B1 JP 2010019223 A JP2010019223 A JP 2010019223A JP 2010019223 A JP2010019223 A JP 2010019223A JP 4738536 B1 JP4738536 B1 JP 4738536B1
Authority
JP
Japan
Prior art keywords
data
page
management table
written
valid
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.)
Expired - Fee Related
Application number
JP2010019223A
Other languages
English (en)
Other versions
JP2011159044A (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.)
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 JP2010019223A priority Critical patent/JP4738536B1/ja
Priority to US13/011,761 priority patent/US8171254B2/en
Application granted granted Critical
Publication of JP4738536B1 publication Critical patent/JP4738536B1/ja
Publication of JP2011159044A publication Critical patent/JP2011159044A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/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
    • 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/7205Cleaning, compaction, garbage collection, erase control

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)

Abstract

【課題】コンパクション処理の対象候補となるブロックの検索動作がメインメモリへのアクセス速度に影響しない不揮発性メモリのコントローラを提供する。
【解決手段】不揮発性メモリのコントローラ(1)であって、不揮発性メモリへのデータ書き込み時にデータ書き込みに伴い無効にすべきページが属するブロックの有効ページ数をカウントする手段(5)と、前記カウント手段によりカウントされた有効ページ数が所定数以下の場合、前記ブロックをコンパクション処理の対象とする追加手段(61)とを具備するコントローラ。
【選択図】図1

Description

本発明はフラッシュメモリ等の不揮発性メモリのコントローラ及び不揮発性メモリの制御方法に関する。
一般に不揮発性メモリ、例えばフラッシュメモリはデータの書き込みおよび削除の際に既存データを残したまま別の物理領域へ書き込みを行うため、データの書き込みや削除を繰り返すと、分断された不要な領域が削除されずに残り、使用している領域も非連続的に保持されている。この不要な領域を消去し、使用している領域を連続した領域に纏める処理はコンパクション、あるいはガーベジコレクションと呼ばれる。従来の半導体記憶装置のガーベジコレクション処理は例えば、特許文献1に記載されている。
データ書き込み処理あるいは無効化処理の後、管理データの更新を行い、フラッシュメモリ内の領域使用率を計算する。領域使用率の計算の結果に応じてガーベジコレクションの必要があるか否かを判断し、必要があればガーベジコレクションを行う。ガーベジコレクション処理は比較的時間が長いため、ガーベジコレクション処理と同時にユーザデータクセスを実行すると、ユーザデータクセス時間が通常状態時よりも遅くなってしまう欠点がある。この問題はフラッシュメモリのユーザデータクセス処理とガーベジコレクション処理を異なるタイミングで実行させることにより解決できる。そのため、特許文献1記載の装置は、ガーベジコレクションのような不要なデータを消去するタイミングを外部に通知可能なフラッシュメモリを提供する手段を具備する。比率計算部はフラグ領域の状態を判定して、ユーザ領域の状態を判定してユーザ領域が無効である比率を算出し、算出した比率を制御部に送る。制御部は比率を受信し、データの書き込み動作または無効化処理の直後に外部に出力する。フラッシュメモリの制御部は書き込み命令を受け取ると、指定されたユーザ領域にデータを書き込む。さらに、対応するフラグ領域に、データが有効であることを示す値を書き込む。その後、比率計算部で、フラグ領域の状態を判定して、ユーザ領域が無効である比率を算出させる。比率計算部で算出された比率を受け取り、これをデータバスに出力して外部に通知する。
上記した問題以外にもガーベジコレクション処理による動作速度の低下の要因がある。ガーベジコレクション処理の準備のために、ファームウェアはハードウェアに対して、ガーベジコレクションの対象候補となるブロックの検索動作の要求を定期的もしくは一意に実施する必要がある。
従来、該検索のために一時的にメインメモリへのアクセスが増加し、メインメモリの転送帯域を消費してしまうことがあり、フラッシュメモリとメインメモリとの間のユーザデータ転送に係るメインメモリアクセスが阻害され、結果としてユーザから見た速度性能が劣化する場合があった。
特許文献1記載の半導体記憶装置では、チップ内部の有効ブロック数を判断するために使用する「フラグ領域」と呼ばれるテーブル情報を、フラッシュメモリチップメモリセル部に記憶している。ガーベジコレクション候補を検索する際に必ず該テーブルをアクセス(フラッシュメモリへのアクセス)しなければならない。フラッシュメモリチップ単体でガーベジコレクション候補ブロックを判定する方式のため、チップ毎にガーベジコレクションを実施できる。
再公表特許WO2004/077447
従来の不揮発性メモリのコントローラは、コンパクションの対象候補となるブロックの検索動作によりメインメモリへのアクセス速度が低下するという課題がある。
本発明はコンパクション処理の対象候補となるブロックの検索動作がメインメモリへのアクセス速度に影響しない不揮発性メモリのコントローラ及び不揮発性メモリの制御方法を提供することを目的とする。
本発明の一態様による不揮発性メモリのコントローラは、不揮発性メモリへのデータ書き込み時にデータ書き込みに伴い無効にすべきページが属するブロックの有効ページ数をカウントするカウント手段と、カウント手段によりカウントされた有効ページ数が所定数以下の場合、前記ブロックをコンパクション処理の対象とする追加手段とを具備する。
本発明の他の態様による不揮発性メモリの制御方法は、ライト対象の論理ブロックアドレスを物理ブロックアドレスに変換して不揮発性メモリへデータを書き込むことと、前記不揮発性メモリへのデータ書き込みが終了すると、一定バイトからなるページ毎に不揮発性メモリのデータの有効、無効を管理する有効ページ管理テーブルを更新することと、前記更新された有効ページ管理テーブルに基づいて、前記ライト対象の論理ブロックアドレスに対応し以前にデータが書き込まれた旧物理ブロックの有効ページ数をカウントすることと、カウントした前記有効ページ数が所定数以下の場合、前記旧物理ブロックのアドレスを、所定ページからなるブロック毎にコンパクション処理の候補を管理するコンパクション候補管理テーブルに追加することとを具備する。
本発明の一態様によれば、通常のデータ書き込み動作に付随してコンパクション候補検索の一部とコンパクション候補設定が自動的に実行される。このため、従来のファームウェアが必要としていた定期的なコンパクションの対象候補となるブロックの検索動作の要求を不要とすることができる。このようにファームウェアによって起動される検索動作の回数を低減させることによって、一時的に増加するメインメモリの帯域消費の比率が低下し、NAND型フラッシュメモリとのユーザデータ転送に係るメインメモリへのアクセスが阻害されにくくなるため、その分速度性能劣化を防止できる。
本発明の実施の形態に係る半導体記憶装置を示す図。 ブロック内有効ページ管理ビットマップテーブルを示す図。 コンパクション候補管理テーブルとNAND型フラッシュメモリ内の該当ブロックとの関係を示す図。 NANDフラッシュメモリI/Fの詳細な構成を示すブロック図。 NANDフラッシュメモリI/Fの動作を示すフローチャート。
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1は一実施形態の構成を示すブロック図である。本実施形態は複数の不揮発性メモリ、例えばNAND型フラッシュメモリ8、8、…8を含む。NAND型フラッシュメモリ8、8、…8は例えば半導体ドライブ(Solid State Drive: SSD)の記憶部を構成する。NAND型フラッシュメモリ8、8…8の各々は例えば2〜16個のメモリチップからなる。NAND型フラッシュメモリ8、8、…8はNANDフラッシュメモリコントローラ1に接続される。NANDフラッシュメモリコントローラ1はメモリアクセスバス2bで互いに接続されたCPU2と、メインメモリ3と、NANDフラッシュメモリインターフェース(I/F)6とを具備する。NANDフラッシュメモリインターフェース(I/F)6はNAND型フラッシュメモリ8、8、…8に接続され、NAND型フラッシュメモリ8、8、…8へのアクセスを制御する。メインメモリ3は例えばdRAMからなり、ブロック内有効ページ管理ビットマップテーブル5とコンパクション候補管理テーブル4を含む。
NANDフラッシュメモリコントローラ1のメモリアクセスバス2bには外付けのROM9も接続される。ROM9はファームウェア7を含む。ファームウェア7はCPU2を使用し、NANDフラッシュメモリI/F6内部へのI/OコマンドアクセスによりNAND型フラッシュメモリ8、8、…8へのリードコマンド、ライトコマンドの発行を行う。
NANDフラッシュメモリI/F6はCPU2からの命令を受理し、NAND型フラッシュメモリ8、8、…8とメインメモリ3間のデータ転送を実施する。
ファームウェア7はROM9にプログラムされた内容が、システム電源起動時に、CPU2内部の一時記憶部もしくはメインメモリ3に転送されて動作するものとする。ファームウェア7からのNAND型フラッシュメモリ8、8、…8アクセス操作は論理ブロックアドレス(LBA: Logical Block Address)を用いて実施される。
ブロック内有効ページ管理ビットマップテーブル5は、図2に示すように構成されている。NAND型フラッシュメモリ8、8、…8の各ページが有効(Valid)か無効(Invalid)かを示すためのビットマップ構成をとる。所定のバイト、例えば2112バイト毎に1ページを構成し、所定のページ、例えば64ページが1ブロックを構成する。有効とは、当該ページ内に書き込まれたデータが存在し、そのデータは有効であることを示している。無効とは、当該ページ内に何も書き込まれていないか、もしくは当該ページ内に以前書き込まれていたデータが無効になった場合(同一LBAの最新データが書き込まれた場合)を示している。
ブロック内有効ページ管理ビットマップテーブル5はNAND型フラッシュメモリ8、8、…8への書き込みが発生すると、有効/無効状態が更新される。ファームウェア7からの書き込み操作はLBAを用いて実施される。従って、NAND型フラッシュメモリ8、8、…8に対して実際に書き込む場合は、LBAを物理アドレス(ブロックアドレス、ページアドレス)に変換して、データが書き込まれる。
NAND型フラッシュメモリ8、8、…8は同一セルへの書き込みを実施すると特性上、内部セルの寿命が極端に低下する。それを防ぐため、ファームウェア7とNANDフラッシュメモリI/F6は同じLBAでデータを複数回書き込む場合でも、以前書き込んだ物理アドレスとは異なる物理アドレスのページにデータを新規に書き込み、以前書き込んだ物理アドレスのページに格納されているデータを無効とする処理を行う。この有効/無効管理を実施するためにブロック内有効ページ管理ビットマップテーブル5が存在している。従って、このような書き込み操作を実施しながらシステムが動作しているうちに、いずれは有効ページ数の少ないブロック(すなわち、コンパクション処理の対象となるブロック)が発生してくるのは必須である。
従来、ファームウェア7はブロック内有効ページ数を一意にカウントし、有効数がある一定数以下であれば、そのブロックをコンパクション対象の一つとしてエントリし、コンパクション処理に適用していた。コンパクション処理とは、複数のブロック内の有効ページデータをかき集めて、別のブロックに移動させ、移動元のページを無効化し、何も書かれていない空きブロックを作り出す操作のことであり、コンパクション候補管理テーブル4はそのために存在する。
コンパクションの候補となるブロックは複数種類あり、有効ページ比率が低くなったブロック、エラーが頻発するブロック、リードのみを規定回数実施したブロックなどが挙げられる。本実施形態はこの中で有効ページ比率が低下した時のコンパクション処理に関し、その候補の検索を効率化するためのものである。
従来、ブロック内有効ページ管理ビットマップテーブル5のブロック内有効ページ数のカウントには専用のハードウェアが用いられ、ファームウェア7は定期的、もしくは一意に該ハードウェアを動作させてコンパクション候補を検索特定し、コンパクション候補管理テーブル4に追加していた。そのため、検索動作に必要なメインメモリ3へのアクセスが一時的に集中することがあり、NAND型フラッシュメモリ8、8、…8とのデータ転送に必要なメモリアクセスを阻害し、ユーザに対するデータ提供速度性能を劣化させる事があった。
本実施形態ではデータ書き込み動作終了時にブロック内有効ページ管理ビットマップテーブル5の更新を行うと同時に、無効化する側(同じLBAで以前に書き込んだ物理ブロック)のブロック内有効ページ数カウントを実施し、設定数以下であった場合、以前に書き込んだ物理ブロックをコンパクション候補としてコンパクション候補管理テーブル4に追加する。ファームウェア7が起動するコンパクション候補検索は、コンパクション候補管理テーブル4が保持している候補がある一定量を切った場合に発生する可能性がある。しかし、本実施形態では、データ書き込み動作終了時にハードウェアによってある程度自動的にコンパクション候補管理テーブル4に候補を追加することが可能になるので、ファームウェア7が起動するコンパクション候補の検索動作要求の回数を低減させることができる。そのため、コンパクション候補検索のためのメインメモリ3へのアクセスの集中が緩和され、NAND型フラッシュメモリ8とメインメモリ3との間のユーザデータ転送のためのメインメモリ3へのアクセスが阻害されにくくなり、速度性能劣化を低減することができる。
図3はコンパクション候補管理テーブル4とNAND型フラッシュメモリ8、8、…8内の該当ブロックとの関係を示す図である。コンパクション候補管理テーブル4は主にファームウェア7が管理しており、図の例ではキュー(FIFO)構造を想定している。従って、NAND型フラッシュメモリ8、8、…8内の物理ブロックアドレス(physical block address)の先頭値をキューのデータとし、リードポインタ(RP)とライトポインタ(WP)をそれぞれ具備している。キューへの書き込みはライトポインタが示すアドレスに対して実施し、コンパクションを実行する場合の対象ブロックアドレスはリードポインタをアドレスとしたキューに保持された物理ブロックアドレスが使用される。各々ポインタ操作については一般的なキュー操作方法と同等である。
図4はNANDフラッシュメモリI/F6の詳細なブロック図である。メモリアクセスバス2bはCPU2からNANDフラッシュメモリI/F6をアクセスしたり、NANDフラッシュメモリI/F6からメインメモリ3をアクセスするために使用する内部バスである。
NAND型フラッシュメモリ8へのアクセスはI/Oバッファ57を経由して行われる。メモリアクセスバス2bからのライトデータはデータバッファ52、データプロセッサ53を介してI/Oバッファ57に供給され、I/Oバッファ57からのリードデータはデータプロセッサ53、データバッファ52を介してメモリアクセスバス2bに供給される。I/Oバッファ57とNAND型フラッシュメモリ8とはデータ/ステータスと、コマンドにより接続される。
CPU2からのリードコマンド、ライトコマンドはメモリアクセスバス2bを介してコマンドキュー54に書き込まれる(ファームウェアによりプッシュされる)。ここでのコマンドフォーマットはNANDフラッシュメモリI/F6が処理しやすいビットフォーマットであればよく、ハードウェア実装に依存している。コマンドキュー54にコマンドが書き込まれると、コマンドプロセッサ55はエントリされたコマンドをコマンドキュー54から取り出し、コマンドシーケンサ56にコマンドを発行して起動をかける。
コマンドシーケンサ56はNAND型フラッシュメモリ8のアクセスを実施する。コマンドシーケンサ56はNAND型フラッシュメモリ8のアクセスの際、データプロセッサ53に対してデータ転送要求を実施し、データプロセッサ53はデータ転送が完了するとコマンドシーケンサ56に終了レスポンスを返す。コマンドシーケンサ56は終了コマンドをコマンドプロセッサ55に通知すると、コマンドプロセッサ55はテーブル更新エンジン61に対して終了コマンドを送付する。
テーブル更新エンジン61は終了したコマンドに係るメインメモリ3上のテーブル更新を実施するモジュールであり、コンパクション候補ブロックの有効ページ数サーチ機能やライト終了時の有効ページ管理ビットマップテーブル5の更新処理及び、その他の管理テーブルの更新処理を実施する。本実施形態では本質に関係しないので、有効ページ管理ビットマップテーブル5の更新処理以外の更新処理の説明は省略する。テーブル更新エンジン61はすべての処理を終了後、リプライキュー62に終了コマンド情報をプッシュしてハードウェアとしてのコマンド処理が完了する。
ファームウェア7はリプライキュー62をリードすることによってコマンド実行結果を確認する。
レジスタモジュール59はNANDフラッシュメモリI/F6の各種設定レジスタモジュールであり、CPU2から種々のデータが設定される。レジスタモジュール59はページ有効サーチレジスタ60、コンパクションテーブルエントリライトポインタアドレスレジスタ64を含む。ページ有効サーチレジスタ60はテーブル更新エンジン61に対してライト終了時にページ有効カウントを実施するかどうかを決めるイネーブル(EN)およびコンパクション候補にする場合の有効数閾値(Threshold)を渡す。
図5は一実施形態のライトに関する動作を示すフローチャートである。
ブロック#12でライトコマンドを発行し、ブロック#14でライトコマンドの対象であるLBAを物理アドレス(ブロック/ページ)に変換する。物理アドレスに基づいてブロック#16でNAND型フラッシュメモリ8、8、…8にデータを書き込む。データ書き込み動作が終了すると、ブロック#18でテーブル更新エンジン61はメインメモリ3に配置したブロック内有効ページ管理ビットマップテーブル5をリードする。ブロック#20でビットマップテーブル5を次のように更新する。すなわち、今回の書き込み対象である物理ブロック内の該当ページ部を有効にし、今回の書き込み対象である論理ブロックに対応する以前の書き込み対象の物理ブロックの該当ページ部を無効にする。
ブロック#22でページ有効サーチレジスタ60のイネーブルがオンか否かを判定し、オンの場合、更新後のブロック内有効ページ管理ビットマップテーブル5に基づいて、ブロック#24で以前の書き込み対象の物理ブロックのページフィールド部の有効ページ数をカウントする。ブロック#26で、カウント値を有効数閾値(Threshold)と比較する。
カウント値が有効数閾値(Threshold)以下であった場合、すなわち旧書き込み対象の物理ブロックの有効ページ数が少ない場合、ブロック#28でコンパクション候補管理テーブル4に対して該ブロックをコンパクション候補として追加する。
なお、上述したように、コンパクション候補管理テーブル4はキュー構造を採用しているので、テーブル4にエントリ(コンパクション候補として追加)するためにはテーブル4のライトポインタ情報をハードウェアが知らなければならない。そのため、そのアドレスを示すコンパクションテーブルエントリライトポインタアドレスレジスタ64をレジスタモジュール59に実装している。ライトポインタアドレスレジスタ64に設定されたアドレスを使用してライトポインタが格納されているメインメモリ3を直接アクセスしてライトポインタ情報を得ることができる。
以上説明したように、第1の実施の形態によれば、フラッシュメモリ8、81、…81へのデータ書き込み修了時に、ブロック内有効ページ管理ビットマップテーブル5を更新し、更新後のブロック内有効ページ管理ビットマップテーブル5に基づいて、今回のライト対象の論理ブロックアドレスに対応し以前にデータが書き込まれた旧物理ブロックの有効ページ数をカウントする。カウントした有効ページ数が所定数以下の場合、旧物理ブロックをコンパクション候補としてコンパクション候補管理テーブル4に追加する。
このため、通常のデータ書き込み動作に付随してコンパクション候補検索の一部とコンパクション候補設定が自動的に実行される。従って、従来のファームウェアが必要としていた定期的なコンパクションの対象候補となるブロックの検索動作の要求を不要とすることができる。このようにファームウェアによって起動される検索動作の回数を低減させることによって、一時的に増加するメインメモリの帯域消費の比率が低下し、NAND型フラッシュメモリとのユーザデータ転送に係るメインメモリへのアクセスが阻害されにくくなるため、その分速度性能劣化を防止できる。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。例えば、コンパクション候補管理テーブル4はキュー構造で限定されない。例えば、データチェーン構造をとっていた場合は、チェーンの最終データが保持しているポインタのアドレスに対して、コンパクション候補データのエントリ追加をすればよい。
本発明はNANDフラッシュメモリコントローラ1を使用するシステムであれば、どのようなシステムにも適用可能である。例えば、半導体ドライブ(Solid State Drive: SSD)と呼ばれる機器や、シリコンオーディオ機器、メモリメディアカードなどに適用することができるが、その際には実施例で示した構成の他に、システム特有のホストバスを追加する必要がある。SSDであれば、SAS/SATAのホストバスインターフェース等を追加する必要がある。
また、本発明は、コンピュータに所定の手段を実行させるため、コンピュータを所定の手段として機能させるため、コンピュータに所定の機能を実現させるため、あるいはプログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
また、上述の説明は個々の実施例それぞれについて行ったが、複数の実施例を適宜組み合わせてもよい。
1…NANDフラッシュメモリコントローラ、2…CPU、3…メインメモリ、4…コンパクション候補管理テーブル、5…ブロック内有効ページ管理ビットマップテーブル、6…NANDフラッシュメモリI/F、8…NAND型フラッシュメモリ、9…ROM。

Claims (10)

  1. 不揮発性メモリのコントローラであって、
    不揮発性メモリへのデータ書き込み時にデータ書き込みに伴い無効にすべきページが属するブロックの有効ページ数をカウントするカウント手段と、
    前記カウント手段によりカウントされた有効ページ数が所定数以下の場合、前記ブロックをコンパクション処理の対象とする追加手段と、
    を具備するコントローラ。
  2. ページ毎に不揮発性メモリのデータの有効、無効を管理する有効ページ管理テーブルをさらに具備し、
    前記カウント手段はデータ書き込み時に、ライト対象の論理ブロックアドレスに対応して今回書き込みが行われたページを有効とし、該ライト対象の論理ブロックアドレスに対応して以前に書き込みが行われたページを無効とし、前記有効ページ管理テーブルを更新する請求項1記載のコントローラ。
  3. 前記追加手段は、前記所定数を記憶するレジスタを具備する請求項1記載のコントローラ。
  4. 前記追加手段によりコンパクション処理の対象とされるブロックを記憶するコンパクション候補管理テーブルをさらに具備し、前記コンパクション候補管理テーブルはハードウェアおよびファームウェアの双方からアクセス可能である請求項1記載のコントローラ。
  5. 不揮発性メモリのコントローラであって、
    一定バイトからなるページ毎に不揮発性メモリのデータの有効、無効を管理する有効ページ管理テーブルと、
    所定ページからなるブロック毎にコンパクション処理の候補を管理するコンパクション候補管理テーブルと、
    ライト対象の論理ブロックアドレスを物理ブロックアドレスに変換して不揮発性メモリへデータを書き込む手段と、
    前記不揮発性メモリへのデータ書き込みが終了すると、前記有効ページ管理テーブルを更新する更新手段と、
    前記更新された有効ページ管理テーブルに基づいて、前記ライト対象の論理ブロックアドレスに対応し以前にデータが書き込まれた旧物理ブロックの有効ページ数をカウントする手段と、
    カウントした前記有効ページ数が所定数以下の場合、前記旧物理ブロックのアドレスをコンパクション候補管理テーブルに追加する手段と、
    を具備するコントローラ。
  6. 前記更新手段は前記ライト対象の論理ブロックアドレスから変換され今回書き込みが行われた物理ブロックを有効とし、前記ライト対象の論理ブロックアドレスから変換され以前に書き込みが行われた物理ブロックを無効とする請求項5に記載のコントローラ。
  7. カウントした前記有効ページ数と比較する前記所定数を記憶するレジスタをさらに具備する請求項5記載のコントローラ。
  8. 前記コンパクション候補管理テーブルはハードウェアおよびファームウェアの双方からアクセス可能である請求項5記載のコントローラ。
  9. 不揮発性メモリの制御方法であって、
    ライト対象の論理ブロックアドレスを物理ブロックアドレスに変換して不揮発性メモリへデータを書き込むことと、
    前記不揮発性メモリへのデータ書き込みが終了すると、一定バイトからなるページ毎に不揮発性メモリのデータの有効、無効を管理する有効ページ管理テーブルを更新することと、
    前記更新された有効ページ管理テーブルに基づいて、前記ライト対象の論理ブロックアドレスに対応し以前にデータが書き込まれた旧物理ブロックの有効ページ数をカウントすることと、
    カウントした前記有効ページ数が所定数以下の場合、前記旧物理ブロックのアドレスを、所定ページからなるブロック毎にコンパクション処理の候補を管理するコンパクション候補管理テーブルに追加することと、
    を具備する制御方法。
  10. 前記更新することは前記ライト対象の論理ブロックアドレスから変換され今回書き込みが行われた物理ブロックを有効とし、前記ライト対象の論理ブロックアドレスから変換され以前に書き込みが行われた物理ブロックを無効とする請求項9に記載の制御方法。
JP2010019223A 2010-01-29 2010-01-29 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法 Expired - Fee Related JP4738536B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010019223A JP4738536B1 (ja) 2010-01-29 2010-01-29 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
US13/011,761 US8171254B2 (en) 2010-01-29 2011-01-21 Memory controller and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010019223A JP4738536B1 (ja) 2010-01-29 2010-01-29 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法

Publications (2)

Publication Number Publication Date
JP4738536B1 true JP4738536B1 (ja) 2011-08-03
JP2011159044A JP2011159044A (ja) 2011-08-18

Family

ID=44342653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010019223A Expired - Fee Related JP4738536B1 (ja) 2010-01-29 2010-01-29 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法

Country Status (2)

Country Link
US (1) US8171254B2 (ja)
JP (1) JP4738536B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296455B2 (en) 2017-03-23 2019-05-21 Toshiba Memory Corporation Memory system and control method of nonvolatile memory

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4802284B2 (ja) * 2010-01-29 2011-10-26 株式会社東芝 半導体記憶装置及びその制御方法
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US20140013031A1 (en) * 2012-07-09 2014-01-09 Yoko Masuo Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
JP6008325B2 (ja) * 2013-05-17 2016-10-19 学校法人 中央大学 データ記憶システムおよびその制御方法
JP2015001909A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
US9304906B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Memory system, controller and control method of memory
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9798657B2 (en) 2014-10-15 2017-10-24 Samsung Electronics Co., Ltd. Data storage device including nonvolatile memory device and operating method thereof
KR102391678B1 (ko) 2015-01-22 2022-04-29 삼성전자주식회사 저장 장치 및 그것의 서스테인드 상태 가속 방법
US10423337B2 (en) * 2016-12-27 2019-09-24 SK Hynix Inc. Controller processing data based on a plurality of values and operating method thereof
US10409692B1 (en) * 2017-07-14 2019-09-10 EMC IP Holding Company LLC Garbage collection: timestamp entries and remove reference counts
US11237744B2 (en) * 2018-12-28 2022-02-01 Verizon Media Inc. Method and system for configuring a write amplification factor of a storage engine based on a compaction value associated with a data file
KR20220048864A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175917A (ja) 1992-12-02 1994-06-24 Hitachi Ltd フラッシュメモリ
JPH0736759A (ja) 1993-07-15 1995-02-07 Hitachi Ltd 半導体ファイルシステム
JP2003058417A (ja) 2001-08-21 2003-02-28 Matsushita Electric Ind Co Ltd 記憶装置
CN1689116A (zh) * 2003-02-28 2005-10-26 富士通株式会社 闪存以及存储器控制方法
EP1667014A4 (en) * 2003-09-18 2009-04-08 Panasonic Corp SEMICONDUCTOR CHIP CARD, SEMICONDUCTOR MEMORY CONTROL APPARATUS, AND SEMICONDUCTOR MEMORY CONTROL METHOD
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
DE602006019263D1 (de) * 2005-08-03 2011-02-10 Sandisk Corp Nichtflüchtiger speicher mit blockverwaltung
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
WO2007019217A1 (en) 2005-08-03 2007-02-15 Sandisk Corporation Nonvolatile memory with block management
JP2008146253A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
JP5224706B2 (ja) 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
JP4533968B2 (ja) * 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296455B2 (en) 2017-03-23 2019-05-21 Toshiba Memory Corporation Memory system and control method of nonvolatile memory

Also Published As

Publication number Publication date
JP2011159044A (ja) 2011-08-18
US20110191566A1 (en) 2011-08-04
US8171254B2 (en) 2012-05-01

Similar Documents

Publication Publication Date Title
JP4738536B1 (ja) 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
US11216185B2 (en) Memory system and method of controlling memory system
US10331356B2 (en) Data writing processing into memory of a semiconductor memory device by using a memory of a host device
US9026734B2 (en) Memory system and data deleting method
US9213635B2 (en) Memory system
US8176237B2 (en) Solid state drive with input buffer
JP4643667B2 (ja) メモリシステム
KR101067457B1 (ko) 메모리 시스템
JP4802284B2 (ja) 半導体記憶装置及びその制御方法
US8825946B2 (en) Memory system and data writing method
US20120030413A1 (en) Memory management device, information processing device, and memory management method
US20130212319A1 (en) Memory system and method of controlling memory system
WO2012081731A1 (en) Semiconductor storage device
US20110191529A1 (en) Semiconductor storage device and method of controlling semiconductor storage device
JP4592774B2 (ja) メモリシステム
US9329994B2 (en) Memory system
JP2010176702A (ja) メモリシステム
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
US20240094932A1 (en) Memory system
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
JP2011227930A (ja) 半導体記憶装置及びその制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110307

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110307

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110307

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110323

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: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110426

R151 Written notification of patent or utility model registration

Ref document number: 4738536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees