JP5341584B2 - コントローラ、及びメモリシステム - Google Patents

コントローラ、及びメモリシステム Download PDF

Info

Publication number
JP5341584B2
JP5341584B2 JP2009065144A JP2009065144A JP5341584B2 JP 5341584 B2 JP5341584 B2 JP 5341584B2 JP 2009065144 A JP2009065144 A JP 2009065144A JP 2009065144 A JP2009065144 A JP 2009065144A JP 5341584 B2 JP5341584 B2 JP 5341584B2
Authority
JP
Japan
Prior art keywords
control unit
block
fat information
data
page
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
JP2009065144A
Other languages
English (en)
Other versions
JP2010218290A (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 JP2009065144A priority Critical patent/JP5341584B2/ja
Priority to TW098129696A priority patent/TWI423021B/zh
Priority to EP09169474A priority patent/EP2230604A1/en
Priority to US12/554,272 priority patent/US8516182B2/en
Priority to KR1020090083863A priority patent/KR101079937B1/ko
Priority to CN2009101728763A priority patent/CN101840307B/zh
Publication of JP2010218290A publication Critical patent/JP2010218290A/ja
Application granted granted Critical
Publication of JP5341584B2 publication Critical patent/JP5341584B2/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本発明は、コントローラ、及びメモリシステムに関する。
従来から、SSD(Solid State Disk)などのように、多数のフラッシュメモリ、及びこれらのフラッシュメモリに記憶されているデータを管理するメモリコントローラなどを搭載したメモリシステムが知られている。
このようなメモリシステムでは、メモリコントローラが、フラッシュメモリの論理番地と物理番地とを対応付けた変換テーブルを参照して、PC(Personal Computer)などのホスト装置から通知される論理番地に対応する物理番地を検索する。そしてメモリコントローラは、ホスト装置から論理番地とともに通知される命令の内容に応じて、検索した物理番地が示すフラッシュメモリ上の領域に対するデータの書き込み、読み出し、又は削除などを行う。
なお、フラッシュメモリに対するデータの処理単位には、通常、物理番地が示す領域そのものであって最小の処理単位となるページと、複数のページを処理単位とするブロックとが存在する。
ところで、フラッシュメモリは、HDD(Hard Disk Drive)などと異なり、既にデータが書き込まれている領域には当該データを消去した後でないと新たなデータを書き込めない、データの消去はブロック単位でしか行えない、及びデータの消去を繰り返すと物理的な劣化が進むなどの特性を有する。
このため、上述したようなメモリシステムでは、メモリコントローラが、ページに記憶されているデータの有効、無効、又は削除などの情報(以下、FAT(File Allocation Table)情報と称する)を管理する(例えば、特許文献1参照)。そしてメモリコントローラは、このFAT情報の書き換え等によりデータの削除や上書きを実現し、ホスト装置から削除命令や上書命令が通知される毎にフラッシュメモリからブロック単位でデータを実際に消去することを回避している。
例えば、データの上書きを行う場合には、メモリコントローラが、上書きされるデータが記憶されているページとは異なるページに上書き用のデータを書き込み、上書きされるデータが記憶されているページのFAT情報を無効に更新し、論理番地と物理番地の対応関係を更新する。
ここで、図29及び図30を参照しながら、特許文献1に記載されたような従来のメモリシステムによるデータの上書き処理前後での、ブロックとFAT情報との対応関係を説明する。
図29は、特許文献1に記載されたような従来のメモリシステムによるデータの上書き処理前のブロック及びFAT情報の状態を説明するための模式図である。図29に示す例は、ブロックXの全てのページにデータが記憶されている状態を示しており、各ページのFAT情報は、有効を示す“V”となっている。
図30は、特許文献1に記載されたような従来のメモリシステムによるデータの上書き処理後のブロック及びFAT情報の状態を説明するための模式図である。図30に示す例は、ブロックXのページ901に記憶されているデータを上書きするための上書き用のデータが、ブロックYのページ902に書き込まれている状態を示しており、ページ901のFAT情報は、無効を示す“IV”に更新されている。
そして、図30に示す状態では、変換テーブルの論理番地と物理番地の対応関係は更新されており、ページ901を示す物理番地X7に対応付けられていた論理番地は、ページ902を示す物理番地Y1に対応付けられている(図示省略)。
特開2006−216036号公報
しかしながら、上述したような従来のメモリシステムでは、上書きなどにより書き込まれるデータを記憶するブロック(図30に示す例ではブロックY、特許文献1に示す例ではログブロック)の各ページについてはFAT情報が管理されていない。
このため、FAT情報が管理されていないブロックでは、ブロックに含まれる各ページに記憶されているデータの状態を管理することができず、フラッシュメモリの記憶領域を有効活用できていない場合がある。
例えば、図30に示す状態において、ページ902に対する削除命令がきた場合であっても、FAT情報がないため、ページ902に記憶されているデータは削除されたデータだということを覚えておくことができない。
このため、ブロックの各ページに記憶されているデータを全て削除するような命令をホスト装置から受け付けた場合にしか、データを実際に削除することができない。つまり、いずれのページにも有効なデータが記憶されていないブロックであっても、即座にデータを消去して新たなデータを書き込める状態に戻すことができず、書き込み可能なブロックの不必要な減少を招き、フラッシュメモリがフラグメンテーションを起こしてしまうおそれがある。
本発明は、上記事情に鑑みてなされたものであり、フラッシュメモリ上の記憶領域を有効活用することができるコントローラ、及びメモリシステムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明の一態様にかかるコントローラは、フラッシュメモリ上の領域の仮想的な位置を示す論理番地と、前記フラッシュメモリ上の前記領域の物理的な位置をページ単位で示す物理番地とを対応付けた変換テーブルを記憶する変換テーブル記憶部と、複数ページ分の領域であるブロックに含まれる各ページに記憶されているデータの状態を示すFAT(File Allocation Table)情報と、前記FAT情報がどのブロックに属するページに記憶されているデータの状態を示す情報であるかを識別するFAT情報識別子とを対応付けて記憶するFAT情報記憶部と、前記ブロックを識別するブロック識別子と、前記ブロックが使用されているか否かを示す使用状態判別情報と、前記使用状態判別情報が使用を示す全ての前記ブロックに対応付けられる前記FAT情報識別子とを対応付けたブロック管理テーブルを記憶するブロック管理テーブル記憶部と、前記変換テーブル、前記FAT情報、及び前記ブロック管理テーブルを用いて、前記フラッシュメモリに記憶されているデータを管理するコントローラ制御部と、を備え、前記FAT情報は、ページに記憶されているデータが有効なデータであるか、無効なデータであるか、又は削除されたデータであるかの少なくともいずれかを示し、前記コントローラ制御部は、前記ブロックに含まれる全てのページの前記FAT情報が削除又は無効を示す場合に、前記ブロック管理テーブルにおいて、当該ブロックの前記使用状態判別情報を未使用に更新するとともに、当該ブロックの前記FAT情報識別子を削除することを特徴とする。
また、本発明の別の態様にかかるメモリシステムは、上記コントローラと、前記コントローラにより、記憶されているデータが管理されるフラッシュメモリと、を備えることを特徴とする。
本発明によれば、フラッシュメモリ上の記憶領域を有効活用することができるという効果を奏する。
図1は、第1実施形態のメモリシステムの構成のブロック図である。 図2は、変換テーブルの一例を示す図である。 図3は、FAT情報の一例を示す図である。 図4は、ブロック管理テーブルの一例を示す図である。 図5は、第1実施形態のメモリシステムの削除動作のフローチャート例である。 図6は、削除命令の内容の一例を示す図である。 図7は、第1実施形態の削除処理のフローチャート例である。 図8は、各ページに記憶されたデータの状態例の図である。 図9は、削除処理終了後のブロックのデータ例の図である。 図10は、削除処理終了後の変換テーブル例の図である。 図11は、削除処理終了後のブロック管理テーブル例の図である。 図12は、削除処理終了後のブロックのデータ例の図である。 図13は、削除処理終了後の変換テーブル例の図である。 図14は、第1実施形態のメモリシステムの読出動作のフローチャート例である。 図15は、第1実施形態の読出処理のフローチャート例である。 図16は、第1実施形態のメモリシステムの書込動作のフローチャート例である。 図17は、第1実施形態の書込処理のフローチャート例である。 図18は、第1実施形態のブロック書込処理のフローチャート例である。 図19は、第1実施形態のページ書込処理のフローチャート例である。 図20は、書込処理終了後のブロック管理テーブル例の図である。 図21は、書込処理後のブロックのデータ例の図である。 図22は、書込処理終了後の変換テーブル例の図である。 図23は、書込処理終了後のブロック管理テーブル例の図である。 図24は、書込処理後のブロックのデータ例の図である。 図25は、書込処理終了後の変換テーブル例の図である。 図26は、第2実施形態のメモリシステムの構成のブロック図である。 図27は、第2実施形態の削除処理のフローチャート例である。 図28は、削除処理終了後の変換テーブル例の図である。 図29は、従来のメモリシステムによるデータ管理手法例の図である。 図30は、従来のメモリシステムによるデータ管理手法例の図である。
以下、添付図面を参照しながら、本発明にかかるコントローラ、及びメモリシステムの最良な実施の形態を詳細に説明する。なお、以下の実施の形態では、メモリシステムとしてSSD(Solid State Disk)を例にとり説明するが、これに限定されるものではない。
(第1の実施の形態)
まず、第1の実施の形態のメモリシステムの構成について説明する。
図1は、第1の実施の形態のメモリシステム1の構成の一例を示すブロック図である。
メモリシステム1は、PC(Personal Computer)などのホスト装置2と外部バス3を介して接続されている。またメモリシステム1は、コントローラ10と複数のフラッシュメモリ11とを備えており、コントローラ10と複数のフラッシュメモリ11とは、専用バス12を介して接続されている。また、ホスト装置2と複数のフラッシュメモリ11とは、外部バス3、コントローラ10内部のデータバス15、及び専用バス12を介して接続されている。
コントローラ10は、ホスト装置2からの各種命令(コマンド)を受け付けて、フラッシュメモリ11に対する各種処理を行うものである。そしてコントローラ10は、命令制御部22と、フラッシュメモリ制御部24と、データ転送制御部26と、コントローラ制御部28と、データ転送メモリ30と、変換テーブル記憶部32と、FAT情報記憶部34と、ブロック管理テーブル記憶部36と、ワークメモリ38とを備える。
命令制御部22は、ホスト装置2と外部バス3を介して接続されており、ホスト装置2から送られてくる読出命令、書込命令、又は削除命令などの各種命令を受け付けるとともに、その応答をホスト装置2に返却する。
フラッシュメモリ制御部24は、複数のフラッシュメモリ11と専用バス12を介して接続されており、命令制御部22により受け付けられた命令に応じてデータの削除、読み出し、書き込みなどをフラッシュメモリ11に対して行う。
データ転送制御部26は、データバス15に接続されており、ホスト装置2及びフラッシュメモリ11間でのデータ転送を行う。具体的には、データ転送制御部26は、命令制御部22又はフラッシュメモリ制御部24からの指示を受け、データバス15に接続されたデータ転送メモリ30に蓄えられているデータを、ホスト装置2又はフラッシュメモリ11に転送する。なお、データ転送制御部26は、例えば、DMAC(Direct Memory Access Controller)などにより実現できる。
データ転送メモリ30は、データ転送制御部26によるデータ転送が行われるまで、転送用のデータを一時的に蓄えておくものである。具体的には、データ転送メモリ30は、ホスト装置2から書き込まれるデータやフラッシュメモリ11から読み出されるデータを一時的に蓄える。なお、データ転送メモリ30は、例えば、揮発性のRAM(Random Access Memory)などにより実現できる。
なお、第1の実施の形態では、データ転送メモリ30が、命令制御部22用のデータ及びフラッシュメモリ制御部24用のデータの両データを蓄えているが、命令制御部22用のデータを蓄えるデータ転送用メモリと、フラッシュメモリ制御部24用のデータを蓄えるデータ転送用メモリとを別々に備えるようにしてもよい。
変換テーブル記憶部32は、フラッシュメモリ11上の領域の仮想的な位置を示す論理番地と、フラッシュメモリ11上の領域の物理的な位置をページ単位で示す物理番地とを対応付けた変換テーブルを記憶する。
図2は、変換テーブルの一例を示す図である。図2に示す例では、例えば論地番地L0と物理番地B0とが対応付けられているが、その対応関係は固定されておらず、フラッシュメモリ11に対するデータの削除処理や書込処理が行われると、後述のコントローラ制御部28により対応関係が更新される。
FAT情報記憶部34は、複数ページ分の領域であるブロックに含まれる各ページに記憶されているデータの状態を示すFAT(File Allocation Table)情報と、FAT情報がどのブロックに属するページに記憶されているデータの状態を示す情報であるかを識別するFAT情報識別子とを対応付けて記憶する。
図3は、FAT情報記憶部34に記憶されているFAT情報の一例を示す図である。図3に示す例では、1ブロックは10ページ分の領域となっており、各ページのFAT情報がブロック単位で管理され、FAT情報識別子に対応付けられている。なお、FAT情報は、“N/A”が未書き込みを示し、“IV”が無効を示し、“V”が有効を示す。また、図3に示す例では、いずれのFAT情報も削除に設定されていないが、“D”が削除を示す。
ブロック管理テーブル記憶部36は、ブロックを識別するブロック識別子と、ブロックが使用されているか否かを示す使用状態判別情報と、使用状態判別情報が“使用”を示す全てのブロックに対応付けられるFAT情報識別子とを対応付けたブロック管理テーブルを記憶する。
図4は、ブロック管理テーブルの一例を示す図である。図4に示す例では、ブロック識別子A、Bのブロックは、いずれも使用状態判別情報が“使用”に設定されており、FAT情報識別子が対応付けられている。このため、FAT情報記憶部34から、FAT情報識別子に対応付けられたFAT情報を参照することが可能となり、ブロックに含まれる各ページのデータの状態を判別できる。
コントローラ制御部28は、命令制御部22、フラッシュメモリ制御部24、及びデータ転送制御部26の動作を制御するものであり、これらの制御部の動作を制御することにより、ホスト装置2及びフラッシュメモリ11間でのデータ転送を制御する。
また、コントローラ制御部28は、変換テーブル、FAT情報、及びブロック管理テーブルを用いて、複数のフラッシュメモリ11に記憶されているデータを管理する。具体的には、ホスト装置2から送られてくる命令の内容に応じて、変換テーブル、FAT情報、及びブロック管理テーブルを更新して、複数のフラッシュメモリ11に記憶されているデータを管理する。
なお、変換テーブル記憶部32、FAT情報記憶部34、及びブロック管理テーブル記憶部36は、例えば、メモリなどにより実現できる。
ワークメモリ38は、コントローラ制御部28が行う各種処理の作業領域に用いられ、変換テーブル、FAT情報、及びブロック管理テーブルなどが展開される。なお、ワークメモリ38は、例えば、揮発性のRAM(Random Access Memory)などにより実現できる。また、ワークメモリ38は、変換テーブル記憶部32、FAT情報記憶部34、及びブロック管理テーブル記憶部36の少なくともいずれかを兼ねるようにしてもよい。
次に、第1の実施の形態のメモリシステムで行われる削除動作について説明する。
図5は、第1の実施の形態のメモリシステム1で行われる削除動作の手順の流れの一例を示すフローチャートである。
まず、命令制御部22は、ホスト装置2から送られてくる削除命令を受け付ける(ステップS100)。なお、削除命令には、命令の種別が削除であることに加え、フラッシュメモリ11上の削除する領域の先頭を示す論理番地や、削除するサイズなどが含まれる。図6は、削除命令の内容の一例を示す図である。図6に示す例では、命令の内容が削除であり、先頭論理番地がL0であり、削除するサイズが256KBとなっている。
続いて、命令制御部22は、受け付けた削除命令をコントローラ制御部28へ通知する(ステップS102)。なお、命令制御部22は、例えば、先頭論理番地が存在するか否か、サイズが適正であるか否かなどの削除命令の検査をした後に、受け付けた削除命令をコントローラ制御部28へ通知する。また、削除命令の検査をコントローラ制御部28が行う場合には、命令制御部22は、受け付けた削除命令をそのままコントローラ制御部28へ送る。
続いて、コントローラ制御部28は、削除命令で通知されたサイズから、削除範囲がフラッシュメモリの複数ページ(複数の物理番地)にまたがっているか否かを確認する(ステップS104)。
そして、削除範囲が複数ページにまたがる場合には(ステップS104でYes)、コントローラ制御部28は、通知された削除命令をページ単位の削除命令に分割し、削除範囲をページ単位に分割する(ステップS106)。なお、削除範囲が複数ページにまたがらない場合には(ステップS104でNo)、コントローラ制御部28は、ステップS106の処理を行わない。
続いて、コントローラ制御部28は、削除命令に従って削除処理を行う(ステップS108)。なお、削除命令が分割されている場合には、コントローラ制御部28は、削除命令数分の削除処理を行う。つまり、コントローラ制御部28は、削除範囲内の各ページに対して削除処理を行う。削除処理の詳細については後述する。
続いて、コントローラ制御部28は、削除処理が全て終了すると、削除処理の終了を命令制御部22へ通知する(ステップS110)。
続いて、命令制御部22は、受け付けた削除命令に基づく削除処理が終了したことをホスト装置2へ通知する(ステップS112)。
この通知により、メモリシステム1で行われる削除動作が完了し、ホスト装置2は、次の命令をメモリシステム1に送ることが可能となる。
図7は、図5のステップS108に示す削除処理の手順の流れの一例を示すフローチャートである。
まず、コントローラ制御部28は、変換テーブルを参照して、処理対象となる論理番地に対応付けられた物理番地が存在するか確認する(ステップS120)。なお、処理対象となる論理番地に対応付けられた物理番地が存在しない場合には(ステップS120でNo)、処理を終了する。
続いて、処理対象となる論理番地に対応付けられた物理番地が存在する場合には(ステップS120でYes)、コントローラ制御部28は、ブロック管理テーブルを参照して、当該物理番地が示すページのFAT情報をFAT情報記憶部34から検索し、検索したFAT情報を、削除を示す“D”に更新する(ステップS122)。
続いて、コントローラ制御部28は、処理対象となる論理番地と物理番地との対応関係が記載されているエントリを、変換テーブルから削除する(ステップS124)。
続いて、コントローラ制御部28は、FAT情報を“D”に更新したページを含むブロックの全ページのFAT情報を走査し、全ページのFAT情報が削除を示す“D”又は無効を示す“IV”であるか否かを確認する(ステップS126)。なお、全ページのFAT情報が“D”又は“IV”でない場合には(ステップS126でNo)、処理を終了する。
一方、全ページのFAT情報が“D”又は“IV”である場合には(ステップS126でYes)、コントローラ制御部28は、ブロック管理テーブルから当該ブロックのブロック識別子に対応付けられたFAT情報識別子を削除する(ステップS128)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、当該ブロックのブロック識別子に対応付けられた使用状態判別情報を“未使用”に更新することにより、当該ブロックを未使用状態にする(ステップS130)。
次に、第1の実施の形態のメモリシステムで行われる削除動作の具体例について説明する。
図8は、ブロックに含まれる各ページに記憶されたデータの状態を示す模式図の一例である。図8に示す例では、ブロックA及びBが示されるとともに、それぞれのブロックに含まれる各ページを示す物理番地と、各ページのFAT情報とが示されている。なお、図8に示す状態での変換テーブル、FAT情報、ブロック管理テーブルは、それぞれ図2、図3、図4に示すものとなる。
以下では、図8に示す状態において、ホスト装置2から論理番地L0〜L7に対する削除命令を受け付けた場合のメモリシステム1の動作について、図5及び図7のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる削除命令を受け付け、コントローラ制御部28へ通知する(図5のステップS100、S102)。
続いて、コントローラ制御部28は、削除範囲が論理番地L0〜L7であるため、削除範囲がフラッシュメモリの8ページ(複数の物理番地)にまたがっていることを確認し、削除命令を8ページ分の削除命令(論理番地L0〜L7それぞれに対する削除命令)に分割する(図5のステップS104、S106)。
このため、コントローラ制御部28は、8ページ分の削除処理を行う(図5のステップS108)。
続いて、コントローラ制御部28は、まず、図2に示す変換テーブルを参照して、処理対象となる論理番地L0に対応付けられた物理番地B0の存在を確認する(図7のステップS120)。
続いて、コントローラ制御部28は、図4に示すブロック管理テーブルを参照して、物理番地B0が示すページを含むブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を検索する。そして、コントローラ制御部28は、このFAT情報識別子21に対応付けられた各ページのFAT情報の中から、物理番地B0が示すページのFAT情報を更に検索し、このFAT情報を“D”に更新する(図7のステップS122)。
続いて、コントローラ制御部28は、図2に示す変換テーブルから、物理番地B0と論理番地L0との対応関係が記載されているエントリを削除する(図7のステップS124)。
続いて、コントローラ制御部28は、ブロックBの全ページのFAT情報(FAT情報識別子21に対応付けられた全てのFAT情報)を走査するが、全ページのFAT情報が“D”又は“IV”でないので、論理番地L0の処理はここで終了となる(図7のステップS126)。
但し、コントローラ制御部28は、論理番地L1〜L7については未処理であり、削除範囲を全て処理していないため、この削除処理(図7のステップS120〜S126)を論理番地L1〜L7まで繰り返す。なお、論理番地L1〜L7に対する削除処理については説明を省略する。
続いて、コントローラ制御部28は、全ての削除処理が終了すると、削除処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた削除命令に基づく削除処理が終了したことをホスト装置2へ通知する(図5のステップS110、S112)。
図9は、論理番地L0〜L7に対する削除処理終了後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図であり、図10は、論理番地L0〜L7に対する削除処理終了後の変換テーブルの状態を示す図である。
図9に示すように、論理番地L0〜L7に対する削除処理終了後のブロックでは、論理番地L0〜L7にそれぞれ対応付けられていた物理番地B0、B1、B2、A3、A4、B3、B5、B4が示すページのFAT情報がいずれも“D”となっている。また、図10に示すように、論理番地L0〜L7に対する削除処理終了後の変換テーブルでは、論理番地L0〜L7それぞれと物理番地B0、B1、B2、A3、A4、B3、B5、B4との対応関係が記載されていたエントリが全て削除されている。
次に、図9に示す状態において、ホスト装置2から論理番地L8に対する削除命令を更に受け付けた場合のメモリシステム1の削除動作について、図5及び図7のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる削除命令を受け付け、コントローラ制御部28へ通知する(図5のステップS100、S102)。
続いて、コントローラ制御部28は、削除範囲が論理番地L8のみであるため、削除範囲がフラッシュメモリの複数ページ(複数の物理番地)にまたがっていないことを確認し、削除命令を分割しない(図5のステップS104)。
このため、コントローラ制御部28は、1ページ分の削除処理を行う(図5のステップS108)。
続いて、コントローラ制御部28は、まず、図10に示す変換テーブルを参照して、処理対象となる論理番地L8に対応付けられた物理番地B6の存在を確認する(図7のステップS120)。
続いて、コントローラ制御部28は、図4に示すブロック管理テーブルを参照して、物理番地B6が示すページを含むブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を検索する。そして、コントローラ制御部28は、このFAT情報識別子21に対応付けられた各ページのFAT情報の中から、物理番地B6が示すページのFAT情報を更に検索し、このFAT情報を“D”に更新する(図7のステップS122)。
続いて、コントローラ制御部28は、図10に示す変換テーブルから、物理番地B6と論理番地L8との対応関係が記載されているエントリを削除する(図7のステップS124)。
続いて、コントローラ制御部28は、ブロックBの全ページのFAT情報(FAT情報識別子21に対応付けられた全てのFAT情報)を走査して、全ページのFAT情報が削除を示す“D”又は無効を示す“IV”であることを確認する(図7のステップS126)。
続いて、コントローラ制御部28は、全ページのFAT情報が“D”又は“N/A”であるため、図4に示すブロック管理テーブルからブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を削除するとともに、ブロック識別子Bに対応付けられた使用状態判別情報を“未使用”に更新する(図7のステップS128、S130)。そして、コントローラ制御部28は、削除範囲を全て処理したため削除処理を終了する。
続いて、コントローラ制御部28は、削除処理が終了すると、削除処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた削除命令に基づく削除処理が終了したことをホスト装置2へ通知する(図5のステップS110、S112)。
図11は、論理番地L8に対する削除処理終了後のブロック管理テーブルの状態を示す図であり、図12は、論理番地L8に対する削除処理終了後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図であり、図13は、論理番地L8に対する削除処理終了後の変換テーブルの状態を示す図である。
図11に示すように、論理番地L8に対する削除処理終了後のブロック管理テーブルでは、ブロックBの使用状態判別情報が“未使用”となっており、FAT情報識別子21も削除されている。このため図12に示すように、ブロックBに含まれる各ページとFAT情報識別子21の各FAT情報との対応付けが解消されており、ブロックB、及びFAT情報識別子21の各FAT情報の再利用が可能になっている。
また、図10に示すように、論理番地L8に対する削除処理終了後の変換テーブルでは、論理番地L8と物理番地B6との対応関係が記載されていたエントリが全て削除されている。
このように第1の実施の形態では、使用されている全てのブロックに含まれる各ページにFAT情報を対応付けているので、フラッシュメモリ上の記憶領域を有効活用することができる。
特に第1の実施の形態では、ページ単位の削除命令にも柔軟に対応でき、適切なタイミングでブロックを再利用可能(データを書き込み可能な状態)にすることができるので、書き込み可能なブロックの不必要な減少を招き、フラッシュメモリがフラグメンテーションを起こしてしまうことを防ぎやすくなる。この結果、ワークメモリの使用量の不必要な増大も防止でき、ワークメモリ上の記憶領域も有効活用することができる。
次に、第1の実施の形態のメモリシステムで行われる読出動作について説明する。
図14は、第1の実施の形態のメモリシステム1で行われる読出動作の手順の流れの一例を示すフローチャートである。以下では、図9に示す状態において、ホスト装置2から論理番地L7〜L8に対する読出命令を受け付けた場合のメモリシステム1の動作を例にとり、読出動作を具体的に説明する。なお、図9に示す状態での変換テーブル、ブロック管理テーブルは、それぞれ図10、図4に示すものとなる。
まず、命令制御部22は、ホスト装置2から送られてくる読出命令を受け付ける(ステップS200)。なお、読出命令には、命令の種別が読み出しであることに加え、フラッシュメモリ11上からデータを読み出す領域の先頭を示す論理番地や、読み出すサイズなどが含まれる。ここでは、読み出す先頭の論理番地がL7であり、読み出すサイズは論理番地L7〜L8のサイズであるものとする。
続いて、命令制御部22は、受け付けた読出命令をコントローラ制御部28へ通知する(ステップS202)。
続いて、コントローラ制御部28は、読出命令で通知されたサイズから、読出範囲がフラッシュメモリの複数ページ(複数の物理番地)にまたがっているか否かを確認する(ステップS204)。
ここでは、コントローラ制御部28は、読出範囲が論理番地L7〜L8であり、読出範囲がフラッシュメモリの2ページ(複数の物理番地)にまたがっていることを確認し(ステップS204でYes)、読出命令を2ページ分の読出命令(論理番地L7〜L8それぞれに対する読出命令)に分割する(ステップS206)。なお、読出範囲が複数ページにまたがらない場合には(ステップS204でNo)、コントローラ制御部28は、ステップS206の処理を行わない。
続いて、コントローラ制御部28は、読出命令に従って読出処理を行う(ステップS208)。なお、読出命令が分割されている場合には、コントローラ制御部28は、読出命令数分の読出処理を行う。つまり、コントローラ制御部28は、読出範囲内の各ページに対して読出処理を行う。ここでは、コントローラ制御部28は、2ページ分の読出処理を行うものとする。なお、読出処理の詳細については後述する。
続いて、コントローラ制御部28は、読出処理が終了すると、読出処理の終了を命令制御部22へ通知する(ステップS210)。
続いて、命令制御部22は、受け付けた読出命令に基づく読出処理が終了したことをホスト装置2へ通知する(ステップS212)。
この通知により、メモリシステム1で行われる読出動作が完了し、ホスト装置2は、次の命令をメモリシステム1に送ることが可能となる。
図15は、図14のステップS208に示す読出処理の手順の流れの一例を示すフローチャートである。
まず、コントローラ制御部28は、変換テーブルを参照して、処理対象となる論理番地に対応付けられた物理番地が存在するか確認する(ステップS220)。ここでは、コントローラ制御部28は、図10に示す変換テーブルを参照して、論理番地L7に対応付けられた物理番地が存在しないことを確認するものとする(ステップS220でNo)。
これは、前述の削除処理により、論理番地L7に対応付けられていた物理番地B4が示すページのFAT情報が“D”に更新され、図2に示す変換テーブルから論理番地L7と物理番地B4との対応関係が記載されたエントリが削除されたためである。
このため、コントローラ制御部28は、全データが“0”であるヌルデータを準備し(ステップS226)、論理番地L7に対する読出命令の応答として、準備したヌルデータをホスト装置2へ転送する(ステップS228)。論理番地L7の処理はここで終了となる。
但し、コントローラ制御部28は、論理番地L8については未処理であり、読出範囲を全て処理していないため、続いて、論理番地L8の処理を行う。
コントローラ制御部28は、図10に示す変換テーブルを参照して、論理番地L8に対応付けられた物理番地B6の存在を確認する(ステップS220でYes)。
続いて、コントローラ制御部28は、図4に示すブロック管理テーブルを参照して、物理番地B6が示すページを含むブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を検索する。そして、コントローラ制御部28は、このFAT情報識別子21に対応付けられた各ページのFAT情報の中から、物理番地B6が示すページのFAT情報を更に検索し、このFAT情報が“V”であることを確認する(ステップS222でYes)。
続いて、コントローラ制御部28は、物理番地B6が示すページに記憶されているデータを読み出し(ステップS224)、論理番地L8に対する読出命令の応答として、読み出したデータをホスト装置2へ転送する(ステップS228)。なお、物理番地B6が示すページのFAT情報が“V”でない場合には(ステップS222でNo)、ステップS226へ進み、ヌルデータを準備する。
そして、コントローラ制御部28は、読出範囲を全て処理したため、読出処理を終了する。
このように第1の実施の形態では、読み出しエラーに対しては、ヌルデータの返却で対応するため、エラー処理を簡略化することができる。
次に、第1の実施の形態のメモリシステムで行われる書込動作について説明する。
図16は、第1の実施の形態のメモリシステム1で行われる書込動作の手順の流れの一例を示すフローチャートである。
まず、命令制御部22は、ホスト装置2から送られてくる書込命令を受け付ける(ステップS300)。なお、書込命令には、命令の種別が書き込みであることに加え、フラッシュメモリ11に書き込む領域の先頭を示す論理番地や、書き込み用のデータのサイズなどが含まれる。
続いて、命令制御部22は、ホスト装置2から外部バス3を介して送られてくる書き込み用のデータの受け付けを開始し、受け付けた書き込み用のデータをデータ転送メモリ30に蓄え始める(ステップS302)。
続いて、命令制御部22は、受け付けた書込命令をコントローラ制御部28へ通知する(ステップS304)。なお、命令制御部22は、書込命令に加え、書き込み用のデータが蓄えられているデータ転送メモリ30上の位置(番地)もコントローラ制御部28へ通知する。
続いて、書込命令で通知されたサイズ分の書き込み用のデータがデータ転送メモリ30に蓄えられると、コントローラ制御部28は、書込命令で通知された論理番地やサイズ、データ転送メモリ30の状態、及びフラッシュメモリ11の状態などを総合して、フラッシュメモリ11に書き込むデータがあるかどうかを判断する(ステップS306)。
なお、コントローラ制御部28は、例えば、データ転送メモリ30内にフラッシュメモリ11のブロックのサイズと同じだけの連続したデータがあるかどうか、又はデータ転送メモリ30の空き容量などを考慮して、フラッシュメモリ11に書き込むデータがあるかどうかを判断する。
書き込むデータがない場合には(ステップS306でNo)、コントローラ制御部28は、書込命令で通知された論理番地とデータ転送メモリ30に蓄えられたデータのサイズから、どの論理番地分までデータ転送メモリ30にデータが格納されたかを計算し、変換テーブルの内容を更新する(ステップS310)。
ここでは、コントローラ制御部28は、書込命令で通知された論理番地に対する読出命令がホスト装置2から通知された場合に対処するため、変換テーブルにおいて、この論理番地とデータ転送メモリ30上での番地を対応付け、フラッシュメモリ11ではなくデータ転送メモリ30から直接データを読み出せるようにしている。
一方、フラッシュメモリ11に書き込むデータがある場合には(ステップS306でYes)、コントローラ制御部28は、当該データをフラッシュメモリ11へ書き込む書込処理を行う(ステップS308)。なお、書込処理は、ブロックサイズ、又はブロックのサイズ未満で行われるため、書き込むデータのサイズがブロックのサイズよりも大きい場合には、書き込むデータのサイズ分の書き込みが完了するまで書込処理が繰り返される。書込処理の詳細については後述する。
続いて、コントローラ制御部28は、フラッシュメモリ11への書込処理終了後、書込命令で通知された論理番地と、データが書き込まれたフラッシュメモリ11上の領域を示す物理番地との対応関係に基づいて、変換テーブルの内容を更新する(ステップS310)。
続いて、コントローラ制御部28は、書込処理の終了を命令制御部22へ通知する(ステップS312)。
続いて、命令制御部22は、受け付けた書込命令に基づく書込処理が終了したことをホスト装置2へ通知する(ステップS314)。
この通知により、メモリシステム1で行われる書込動作が完了し、ホスト装置2は、次の命令をメモリシステム1に送ることが可能となる。
図17は、図16のステップS308に示す書込処理の手順の流れの一例を示すフローチャートである。
まず、コントローラ制御部28は、書き込み対象のデータのサイズがフラッシュメモリ11のブロックのサイズと同一か否かを確認する(ステップS320)。
そして、書き込み対象のデータのサイズがブロックのサイズと同一である場合には、ブロック書込処理を行い(ステップS322)、書き込み対象のデータのサイズがブロックのサイズ未満である場合には、ページ書込処理(ステップS324)を行う。なお、フラッシュメモリにおいては、ブロック書込処理はページ書込処理に比べて容易なため、第1の実施の形態では、ブロック書込処理とページ書込処理とを分けている。
図18は、図17のステップS322に示すブロック書込処理の手順の流れの一例を示すフローチャートである。
まず、コントローラ制御部28は、FAT情報記憶部34から、未使用のFAT情報を1ブロック分取得する(ステップS330)。このとき、取得したすべてのFAT情報を未書き込みを示す“N/A”に設定する。なお、FAT情報が未使用であるか否かは、ブロック管理テーブルにおいて、いずれのブロックにも識別子が対応付けられていないことで判別できる。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、使用状態判別情報が“未使用”に設定されているブロックを取得する(ステップS332)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、取得したブロックの使用状態判別情報を“使用”に更新する(ステップS334)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、取得したブロックのブロック識別子に、取得した1ブロック分のFAT情報のFAT情報識別子を対応付ける(ステップS336)。
続いて、コントローラ制御部28は、フラッシュメモリ制御部24に指示して、取得したブロックに書き込み対象のデータを書き込ませる(ステップS338)。なお、フラッシュメモリのブロックに新たにデータを書き込む場合にはブロックを一旦消去する必要があるが、書き込む時点までに消去できていれば、いつ消去しても構わない。
続いて、コントローラ制御部28は、データを書き込んだブロックの各ページのFAT情報に、ページに記憶されているデータが有効であることを示す“V”を設定する(ステップS340)。
続いて、コントローラ制御部28は、変換テーブルを参照し、処理対象の論理番地(書込命令で通知された論理番地)に現時点で対応付けられている物理番地が示すページのFAT情報を、無効を示す“IV”に更新する(ステップS342)。
続いて、コントローラ制御部28は、FAT情報を“IV”に更新したページを含むブロックの全ページのFAT情報を走査し、全ページのFAT情報が“D”又は“IV”であるか否かを確認する(ステップS344)。なお、全ページのFAT情報が“D”又は“IV”でない場合には(ステップS344でNo)、処理を終了する。
一方、全ページのFAT情報が“D”又は“IV”である場合には(ステップS344でYes)、コントローラ制御部28は、ブロック管理テーブルから当該ブロックのブロック識別子に対応付けられたFAT情報識別子を削除する(ステップS346)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、当該ブロックのブロック識別子に対応付けられた使用状態判別情報を“未使用”に更新することにより、当該ブロックを未使用状態にする(ステップS348)。
図19は、図17のステップS324に示すページ書込処理の手順の流れの一例を示すフローチャートである。
まず、コントローラ制御部28は、変換テーブルを参照して、処理対象の論理番地に対応付けられた物理番地が既に存在するか否かを確認する(ステップS360)。
処理対象の論理番地に対応付けられた物理番地が既に存在する場合には(ステップS360でYes)、コントローラ制御部28は、当該物理番地が示すページを含むブロックの中から、FAT情報が“N/A”となっている最初のページを検索する(ステップS362)。
そして、FAT情報が“N/A”のページが存在する場合には(ステップS364でYes)、コントローラ制御部28は、当該ページを書き込みページに設定する(ステップS366)。
続いて、コントローラ制御部28は、フラッシュメモリ制御部24に指示して、書き込みページに設定されたページに書き込み対象のデータを書き込ませる(ステップS378)。
一方、処理対象の論理番地に対応付けられた物理番地が存在しない場合(ステップS360でNo)、又はFAT情報が“N/A”のページが存在しない場合には(ステップS364でNo)、コントローラ制御部28は、FAT情報記憶部34から、未使用のFAT情報を1ブロック分取得する(ステップS368)。このとき、取得したすべてのFAT情報を未書き込みを示す“N/A”に設定する。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、使用状態判別情報が“未使用”に設定されているブロックを取得する(ステップS370)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、取得したブロックの使用状態判別情報を“使用”に更新する(ステップS372)。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、取得したブロックのブロック識別子に、取得した1ブロック分のFAT情報のFAT情報識別子を対応付ける(ステップS374)。
続いて、コントローラ制御部28は、取得したブロックの先頭ページを書き込みページに設定する(ステップS376)。
続いて、コントローラ制御部28は、フラッシュメモリ制御部24に指示して、書き込みページに設定されたページに書き込み対象のデータを書き込ませる(ステップS378)。
続いて、コントローラ制御部28は、データを書き込んだ書き込みページのFAT情報に、ページに記憶されているデータが有効であることを示す“V”を設定する(ステップS380)。
以降の処理(ステップS382〜ステップS388)は、図18に示すブロック書込処理のフローチャートのステップS342〜ステップS348までの処理と同様であるため、説明を省略する。
次に、第1の実施の形態のメモリシステムで行われる書込動作の具体例について説明する。
以下では、ホスト装置2から、物理番地に対応付けられていない論理番地L0〜L9に対する1ブロックのサイズの書込命令を受け付けた場合のメモリシステム1の書込動作について、図16〜図19のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる書込命令を受け付けるとともに、書き込み用のデータの受け付けを開始し、受け付けた書き込み用のデータをデータ転送メモリ30に蓄え始める(図16のステップS300、S302)。
続いて、命令制御部22は、受け付けた書込命令とともに、書き込み用のデータが蓄えられているデータ転送メモリ30上の位置をコントローラ制御部28へ通知する(図16のステップS304)。
続いて、書込命令で通知されたサイズ分の書き込み用のデータがデータ転送メモリ30に蓄えられると、コントローラ制御部28は、フラッシュメモリ11に書き込むデータがあるかどうかを判断する(図16のステップS306)。ここでは、コントローラ制御部28は、フラッシュメモリ11に書き込むデータがあると判断し、書込処理を行うものとする(図16のステップS308)。
続いて、コントローラ制御部28は、書き込み対象のデータのサイズが1ブロックであるため、ブロック書込処理を行う(図17のステップS322)。
続いて、コントローラ制御部28は、FAT情報記憶部34から、未使用のFAT情報を1ブロック分取得する(図18のステップS330)。ここでは、FAT情報識別子10のFAT情報を取得するものとする。このとき、取得したFAT情報識別子10のすべてのFAT情報を未書き込みを示す“N/A”に設定する。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、使用状態判別情報が“未使用”に設定されているブロックを取得する(図18のステップS332)。ここでは、ブロック識別子AのブロックAを取得するものとする。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、ブロックAの使用状態判別情報を“使用”に更新し、FAT情報識別子10を対応付ける(図18のステップS334、S336)。
続いて、コントローラ制御部28は、データ転送メモリ30に蓄えられている書き込み対象のデータをブロックAに書き込み、ブロックAの各ページのFAT情報に“V”を設定する(図18のステップS338、S340)。
続いて、コントローラ制御部28は、変換テーブルを参照した結果、処理対象の論理番地L0〜L9に現時点で対応付けられている物理番地が存在しないため、図18のステップS342以降の処理は行われず、ブロック書込処理を終了する。
続いて、コントローラ制御部28は、書込命令で通知された論理番地L0〜L9と、データが書き込まれたフラッシュメモリ11上の領域を示す物理番地A0〜A9とを対応付けたエントリで、変換テーブルの内容を更新する(図16のステップS310)。
続いて、コントローラ制御部28は、書込処理が終了すると、書込処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた書込命令に基づく書込処理が終了したことをホスト装置2へ通知する(図16のステップS312、S314)。
図20は、論理番地L0〜L9に対する書込処理終了後のブロック管理テーブルの状態を示す図であり、図21は、論理番地L0〜L9に対する書込処理後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図であり、図22は、論理番地L0〜L9に対する書込処理終了後の変換テーブルの状態を示す図である。
図20に示すように、論理番地L0〜L9に対する書込処理終了後のブロック管理テーブルでは、ブロックAの使用状態判別情報が“使用”となっており、FAT情報識別子10が対応付けられている。このため図21に示すように、ブロックAに含まれる各ページと、FAT情報識別子10の各FAT情報とが対応付けられ、FAT情報は全て“V”となっている。
また、図22に示すように、論理番地L0〜L9に対する書込処理終了後の変換テーブルでは、論理番地L0〜L9と物理番地A0〜A9との対応関係が記載されている。
次に、図21に示す状態において、ホスト装置2から論理番地L1に対する1ページのサイズの書込命令を更に受け付けた場合のメモリシステム1の書込動作について、図16〜図19のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる書込命令を受け付けるとともに、書き込み用のデータの受け付けを開始し、受け付けた書き込み用のデータをデータ転送メモリ30に蓄え始める(図16のステップS300、S302)。
続いて、命令制御部22は、受け付けた書込命令とともに、書き込み用のデータが蓄えられているデータ転送メモリ30上の位置をコントローラ制御部28へ通知する(図16のステップS304)。
続いて、書込命令で通知されたサイズ分の書き込み用のデータがデータ転送メモリ30に蓄えられると、コントローラ制御部28は、フラッシュメモリ11に書き込むデータがあるかどうかを判断する(図16のステップS306)。ここでは、コントローラ制御部28は、フラッシュメモリ11に書き込むデータがあると判断し、書込処理を行うものとする(図16のステップS308)。
続いて、コントローラ制御部28は、書き込み対象のデータのサイズが1ページであるため、ページ書込処理を行う(図17のステップS324)。
続いて、コントローラ制御部28は、図22に示す変換テーブルを参照して、処理対象の論理番地L1に対応付けられた物理番地A1が既に存在することを確認するため、物理番地A1が示すページを含むブロックAの中から、FAT情報が“N/A”となっている最初のページを検索する(図19のステップS360、S362)。
具体的には、コントローラ制御部28は、図20に示すブロック管理テーブルを参照して、物理番地A1が示すページを含むブロックAのブロック識別子Aに対応付けられたFAT情報識別子10を検索する。そして、コントローラ制御部28は、このFAT情報識別子10に対応付けられた各ページのFAT情報の中から、FAT情報が“N/A”となっている最初のページを検索する。
ここでは、図21に示すように、FAT情報識別子10に対応付けられた各ページの中にFAT情報が“N/A”となっているページは存在しないため、コントローラ制御部28は、FAT情報記憶部34から、未使用のFAT情報を1ブロック分取得する(図19のステップS364、S368)。ここでは、FAT情報識別子21のFAT情報を取得するものとする。このとき、取得したFAT情報識別子21のすべてのFAT情報を未書き込みを示す“N/A”に設定する。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、使用状態判別情報が“未使用”に設定されているブロックを取得する(図19のステップS370)。ここでは、ブロック識別子BのブロックBを取得するものとする。
続いて、コントローラ制御部28は、ブロック管理テーブルにおいて、ブロックBの使用状態判別情報を“使用”に更新し、FAT情報識別子21を対応付ける(図19のステップS372、S374)。
続いて、コントローラ制御部28は、取得したブロックBの先頭ページを書き込みページに設定し、データ転送メモリ30に蓄えられている書き込み対象のデータをブロックBの先頭ページに書き込み、ブロックBの先頭ページのFAT情報に“V”を設定する(図19のステップS376、S378、S380)。
続いて、コントローラ制御部28は、図22に示す変換テーブルを参照した結果、処理対象の論理番地L1に現時点で対応付けられている物理番地A1が示すページのFAT情報を、無効を示す“IV”に更新する(図19のステップS382)。
続いて、コントローラ制御部28は、FAT情報を“IV”に更新したページを含むブロックBの全ページのFAT情報を走査し、全ページのFAT情報が“D”又は“IV”でないことを確認し(図19のステップS384)、ページ書込処理を終了する。
続いて、コントローラ制御部28は、書込命令で通知された論理番地L1と、データが書き込まれたフラッシュメモリ11上の領域を示す物理番地B0とを対応付けたエントリで、変換テーブルの内容を更新する(図16のステップS310)。
続いて、コントローラ制御部28は、書込処理が終了すると、書込処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた書込命令に基づく書込処理が終了したことをホスト装置2へ通知する(図16のステップS312、S314)。
図23は、論理番地L1に対する書込処理終了後のブロック管理テーブルの状態を示す図であり、図24は、論理番地L1に対する書込処理後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図であり、図25は、論理番地L1に対する書込処理終了後の変換テーブルの状態を示す図である。
図23に示すように、論理番地L1に対する書込処理終了後のブロック管理テーブルでは、ブロックBの使用状態判別情報が“使用”となっており、FAT情報識別子21が対応付けられている。
このため図24に示すように、ブロックBに含まれる各ページと、FAT情報識別子21の各FAT情報とが対応付けられ、データが書き込まれたページ(物理番地B0が示すページ)のFAT情報は“V”となっている。また、論理番地L1に対する書込処理前に論理番地L1対応付けられていた物理番地A1のFAT情報は“IV”となっている。
また、図25に示すように、論理番地L1に対する書込処理終了後の変換テーブルでは、論理番地L1と物理番地B0との対応関係が記載されている。
このように第1の実施の形態では、書込処理においてフラッシュメモリの未使用のブロックに新たなデータを書き込む度に、当該ブロックを使用状態に更新し、当該ブロックに含まれる各ページにFAT情報を対応付けている。従って、上述したように、フラッシュメモリ上の記憶領域を有効活用することができる。
なお、第1の実施の形態では、書込処理の流れの中でフラッシュメモリ11への書き込みを行っているが、この書込処理の中ではフラッシュメモリ11への書き込み予約だけを行い、ホスト装置2への書込処理の終了を通知してから実際にフラッシュメモリ11へデータを書き込むようにしてもよい。
(第2の実施の形態)
次に、第2の実施の形態では、FAT情報が削除を示す“D”に更新する毎ではなく、ブロックの全ページのFAT情報が“D”又は“IV”である場合に、変換テーブルから、論理番地と物理番地との対応関係が記載されているエントリを削除する例について説明する。
なお、以下では、第1の実施の形態との相違点の説明を主に行い、第1の実施の形態と同様の機能を有する構成要素については、第1の実施の形態と同様の名称・符号を付し、その説明を省略する。
図26は、第2の実施の形態のメモリシステム101の構成の一例を示すブロック図である。メモリシステム101は、コントローラ110に含まれるコントローラ制御部128が、変換テーブル記憶部32に記憶されている変換テーブルを更新するタイミングが、第1の実施の形態のメモリシステム1と相違する。
従って、以下では、第1の実施の形態と第2の実施の形態の主要な相違点であるコントローラ制御部128の変換テーブルの更新タイミングについて説明する。
図27は、第2の実施の形態のメモリシステム101で行われる図5のステップS108に示す削除処理の手順の流れの一例を示すフローチャートである。なお、削除動作の手順の流れについては、第1の実施の形態と同様である。
以下では、図8に示す状態において、ホスト装置2から論理番地L0〜L7に対する削除命令を受け付けた場合のメモリシステム101の動作について、図5及び図27のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる削除命令を受け付け、コントローラ制御部128へ通知する(図5のステップS100、S102)。
続いて、コントローラ制御部128は、削除範囲が論理番地L0〜L7であるため、削除範囲がフラッシュメモリの8ページ(複数の物理番地)にまたがっていることを確認し、削除命令を8ページ分の削除命令(論理番地L0〜L7それぞれに対する削除命令)に分割する(図5のステップS104、S106)。
このため、コントローラ制御部128は、8ページ分の削除処理を行う(図5のステップS108)。
続いて、コントローラ制御部128は、まず、図2に示す変換テーブルを参照して、処理対象となる論理番地L0に対応付けられた物理番地B0の存在を確認する(図27のステップS400)。
続いて、コントローラ制御部128は、図4に示すブロック管理テーブルを参照して、物理番地B0が示すページを含むブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を検索する。そして、コントローラ制御部28は、このFAT情報識別子21に対応付けられた各ページのFAT情報の中から、物理番地B0が示すページのFAT情報を更に検索し、このFAT情報を“D”に更新する(図27のステップS402)。
続いて、コントローラ制御部128は、ブロックBの全ページのFAT情報(FAT情報識別子21に対応付けられた全てのFAT情報)を走査するが、全ページのFAT情報が“D”又は“IV”でないので、論理番地L0の処理はここで終了となる(図27のステップS404でNo)。
但し、コントローラ制御部128は、論理番地L1〜L7については未処理であり、削除範囲を全て処理していないため、この削除処理(図27のステップS400〜S404)を論理番地L1〜L7まで繰り返す。なお、論理番地L1〜L7に対する削除処理については説明を省略する。
続いて、コントローラ制御部128は、全ての削除処理が終了すると、削除処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた削除命令に基づく削除処理が終了したことをホスト装置2へ通知する(図5のステップS110、S112)。
ここで、論理番地L0〜L7に対する削除処理終了後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図は、図9となり、論理番地L0〜L7に対する削除処理終了後の変換テーブルは、図2の状態のままである。
次に、図9に示す状態において、ホスト装置2から論理番地L8に対する削除命令を更に受け付けた場合のメモリシステム101の削除動作について、図5及び図27のフローチャートを参照しながら説明する。
まず、命令制御部22は、ホスト装置2から送られてくる削除命令を受け付け、コントローラ制御部128へ通知する(図5のステップS100、S102)。
続いて、コントローラ制御部128は、削除範囲が論理番地L8のみであるため、削除範囲がフラッシュメモリの複数ページ(複数の物理番地)にまたがっていないことを確認し、削除命令を分割しない(図5のステップS104)。
このため、コントローラ制御部128は、1ページ分の削除処理を行う(図5のステップS108)。
続いて、コントローラ制御部128は、まず、図2に示す変換テーブルを参照して、処理対象となる論理番地L8に対応付けられた物理番地B6の存在を確認する(図27のステップS400)。
続いて、コントローラ制御部128は、図4に示すブロック管理テーブルを参照して、物理番地B6が示すページを含むブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を検索する。そして、コントローラ制御部128は、このFAT情報識別子21に対応付けられた各ページのFAT情報の中から、物理番地B6が示すページのFAT情報を更に検索し、このFAT情報を“D”に更新する(図27のステップS402)。
続いて、コントローラ制御部128は、ブロックBの全ページのFAT情報(FAT情報識別子21に対応付けられた全てのFAT情報)を走査して、全ページのFAT情報が削除を示す“D”又は無効を示す“IV”であることを確認する(図27のステップS404でYes)。
続いて、コントローラ制御部128は、全ページのFAT情報が“D”又は“IV”であるため、図4に示すブロック管理テーブルからブロックBのブロック識別子Bに対応付けられたFAT情報識別子21を削除するとともに、ブロック識別子Bに対応付けられた使用状態判別情報を“未使用”に更新する(図27のステップS406、S408)。
続いて、コントローラ制御部128は、ブロックBに含まれるページを示す物理番地と論理番地とが対応付けられたエントリを、図2に示す変換テーブルから全て削除する(図27のステップS410)。そして、コントローラ制御部128は、削除範囲を全て処理したため削除処理を終了する。
続いて、コントローラ制御部128は、削除処理が終了すると、削除処理の終了を命令制御部22へ通知し、命令制御部22は、受け付けた削除命令に基づく削除処理が終了したことをホスト装置2へ通知する(図5のステップS110、S112)。
ここで、論理番地L8に対する削除処理終了後のブロック管理テーブルは、図11の状態となり、論理番地L8に対する削除処理終了後のブロックに含まれる各ページに記憶されたデータの状態を示す模式図は、図12となる。
図28は、論理番地L8に対する削除処理終了後の変換テーブルの状態を示す図である。図28に示すように、論理番地L8に対する削除処理終了後の変換テーブルでは、論理番地L0〜L2、L5〜L8それぞれと物理番地B0、B1、B2、B3、B5、B4、B6との対応関係が記載されていたエントリが全て削除されている。
このように、使用されている全てのブロックに含まれる各ページにFAT情報を対応付けているので、第2の実施形態のように、変換テーブルの更新をFAT情報が削除を示す“D”に更新する毎に行わず、簡略化することができる。
つまり、変換テーブルの更新を簡略化しても、使用されている全てのブロックに含まれる各ページにFAT情報を対応付けているので、ページ単位の削除命令にも柔軟に対応できる。
また、この時点での変換テーブルの内容も、第1の実施の形態と大差はなく、変換テーブルのデータ量も適切に削減できている。
以上より、第2の実施の形態のように、変換テーブルの更新を簡略化しても、ページ単位の削除命令にも柔軟に対応でき、フラッシュメモリ上の記憶領域を有効活用することができる。
(変形例)
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
上記実施の形態では、論理番地に対応付けられた物理番地が変換テーブルに存在しない場合や、物理番地が示すページのFAT情報が“V”以外の場合には、読出命令の応答として、ヌルデータをホスト装置2へ返答していたが、ヌルデータ以外のデータを返却するようにしてもよい。
例えば、コントローラ制御部28、128が、最も速く読み出すことが可能なフラッシュメモリ11の物理番地をワークメモリ38などに記憶しておき、当該物理番地が示すページに記憶されているデータを読み出してホスト装置2に返却するようにしてもよい。
また例えば、コントローラ制御部28、128が、直前に読み出したデータをワークメモリ38などに記憶しておき、当該データをホスト装置2に返却するようにしてもよい。
また例えば、コントローラ制御部28、128は、コントローラ10、110内で生成された乱数値をホスト装置2に返却するようにしてもよい。なお、乱数の生成は、コントローラ制御部28、128自身が行ってもよいし、乱数発生器などの専用のハードウェアをコントローラ10、110が別途備えるようにしてもよい。
また、上記実施の形態では、物理番地が示すページのFAT情報が“V”の場合のみ、当該物理番地が示すページに記憶されているデータを読み出してホスト装置2に返却しているが、例えば、FAT情報が“D”の場合であっても、当該物理番地が示すページに記憶されているデータを読み出してホスト装置2に返却するようにしてもよい。
FAT情報が“D”に更新される前は“V”であり、このページにはデータが記憶されているため、この情報を読み出してホスト装置2に返却するようにしてもよい。
1、101 メモリシステム
2 ホスト装置
3 外部バス
10、110 コントローラ
11 フラッシュメモリ
12 専用バス
15 データバス
22 命令制御部
24 フラッシュメモリ制御部
26 データ転送制御部
28、128 コントローラ制御部
30 データ転送メモリ
32 変換テーブル記憶部
34 FAT情報記憶部
36 ブロック管理テーブル記憶部
38 ワークメモリ

Claims (9)

  1. フラッシュメモリ上の領域の仮想的な位置を示す論理番地と、前記フラッシュメモリ上の前記領域の物理的な位置をページ単位で示す物理番地とを対応付けた変換テーブルを記憶する変換テーブル記憶部と、
    複数ページ分の領域であるブロックに含まれる各ページに記憶されているデータの状態を示すFAT(File Allocation Table)情報と、前記FAT情報がどのブロックに属するページに記憶されているデータの状態を示す情報であるかを識別するFAT情報識別子とを対応付けて記憶するFAT情報記憶部と、
    前記ブロックを識別するブロック識別子と、前記ブロックが使用されているか否かを示す使用状態判別情報と、前記使用状態判別情報が使用を示す全ての前記ブロックに対応付けられる前記FAT情報識別子とを対応付けたブロック管理テーブルを記憶するブロック管理テーブル記憶部と、
    前記変換テーブル、前記FAT情報、及び前記ブロック管理テーブルを用いて、前記フラッシュメモリに記憶されているデータを管理するコントローラ制御部と、を備え
    前記FAT情報は、ページに記憶されているデータが有効なデータであるか、無効なデータであるか、又は削除されたデータであるかの少なくともいずれかを示し、
    前記コントローラ制御部は、前記ブロックに含まれる全てのページの前記FAT情報が削除又は無効を示す場合に、前記ブロック管理テーブルにおいて、当該ブロックの前記使用状態判別情報を未使用に更新するとともに、当該ブロックの前記FAT情報識別子を削除することを特徴とするコントローラ。
  2. 前記コントローラ制御部は、データの削除を指示する削除命令をホスト装置から受け付けた場合に、当該削除命令で指示された前記論理番地に対応付けられた前記物理番地が示すページの前記FAT情報を削除に更新することを特徴とする請求項に記載のコントローラ。
  3. 前記コントローラ制御部は、更に、前記FAT情報を削除に更新したページを示す前記物理番地、及び当該物理番地に対応付けられている前記論理番地を、前記変換テーブルから削除することを特徴とする請求項に記載のコントローラ。
  4. 前記コントローラ制御部は、前記ブロックに含まれる全てのページの前記FAT情報が削除又は無効を示す場合に、更に、当該ブロックに含まれる各ページを示す前記物理番地、及び当該物理番地に対応付けられている前記論理番地を、前記変換テーブルから削除することを特徴とする請求項に記載のコントローラ。
  5. 前記コントローラ制御部は、データの読み出しを指示する読出命令をホスト装置から受け付け、当該読出命令で指示された前記論理番地に対応付けられた前記物理番地が前記変換テーブルに存在しない場合、又は当該物理番地が示すページの前記FAT情報が削除又は無効を示す場合に、ヌルデータ、予め定められた前記物理番地が示すページに記憶されているデータ、又は予め定められた値の少なくともいずれかを前記ホスト装置に返却することを特徴とする請求項1〜のいずれか1つに記載のコントローラ。
  6. 前記コントローラ制御部は、データの読み出しを指示する読出命令をホスト装置から受け付け、当該読出命令で指示された前記論理番地に対応付けられた前記物理番地が前記変換テーブルに存在しない場合、又は当該物理番地が示すページの前記FAT情報が削除又は無効を示す場合に、乱数を生成して前記ホスト装置に返却することを特徴とする請求項1〜のいずれか1つに記載のコントローラ。
  7. 前記コントローラ制御部は、データの読み出しを指示する読出命令をホスト装置から受け付け、当該読出命令で指示された前記論理番地に対応付けられた前記物理番地が示すページの前記FAT情報が削除を示す場合に、当該ページに記憶されているデータを前記ホスト装置に返却することを特徴とする請求項1〜4のいずれか1つに記載のコントローラ。
  8. 前記コントローラ制御部は、データの書き込みを指示する書込命令をホスト装置から受け付けた場合には、前記ブロック管理テーブルを参照して、前記使用状態判別情報が未使用を示す前記ブロックに含まれるページに、当該書込命令で書き込みを指示されたデータを書き込み、当該ブロックに未使用の前記FAT情報識別子を対応付け、当該ページの前記FAT情報を有効に設定するとともに、当該使用状態判別情報を使用に設定することを特徴とする請求項1〜7のいずれか1つに記載のコントローラ。
  9. 請求項1〜のいずれか1つに記載のコントローラと、
    前記コントローラにより、記憶されているデータが管理されるフラッシュメモリと、を備えることを特徴とするメモリシステム。
JP2009065144A 2009-03-17 2009-03-17 コントローラ、及びメモリシステム Expired - Fee Related JP5341584B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2009065144A JP5341584B2 (ja) 2009-03-17 2009-03-17 コントローラ、及びメモリシステム
TW098129696A TWI423021B (zh) 2009-03-17 2009-09-03 控制器及記憶體系統
EP09169474A EP2230604A1 (en) 2009-03-17 2009-09-04 Controller and memory system
US12/554,272 US8516182B2 (en) 2009-03-17 2009-09-04 Controller and memory system for managing data
KR1020090083863A KR101079937B1 (ko) 2009-03-17 2009-09-07 컨트롤러 및 메모리 시스템
CN2009101728763A CN101840307B (zh) 2009-03-17 2009-09-07 控制器和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009065144A JP5341584B2 (ja) 2009-03-17 2009-03-17 コントローラ、及びメモリシステム

Publications (2)

Publication Number Publication Date
JP2010218290A JP2010218290A (ja) 2010-09-30
JP5341584B2 true JP5341584B2 (ja) 2013-11-13

Family

ID=42268327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009065144A Expired - Fee Related JP5341584B2 (ja) 2009-03-17 2009-03-17 コントローラ、及びメモリシステム

Country Status (6)

Country Link
US (1) US8516182B2 (ja)
EP (1) EP2230604A1 (ja)
JP (1) JP5341584B2 (ja)
KR (1) KR101079937B1 (ja)
CN (1) CN101840307B (ja)
TW (1) TWI423021B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077339B1 (ko) 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
JP5341584B2 (ja) * 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
US11232022B2 (en) 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination
FR2965079A1 (fr) * 2011-03-15 2012-03-23 Continental Automotive France Procede de gestion d'une memoire non volatile
JP5581256B2 (ja) 2011-03-28 2014-08-27 株式会社東芝 メモリシステム、コントローラ、およびメモリシステムの制御方法
KR101392174B1 (ko) * 2011-11-09 2014-05-09 한양대학교 산학협력단 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
CN103176008B (zh) * 2011-12-22 2017-08-25 北京普源精电科技有限公司 一种具有可控测量功能的示波器及其实现方法
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP5659178B2 (ja) 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US9134908B2 (en) * 2013-01-09 2015-09-15 Apple Inc. Logical volume space sharing
US20160316450A1 (en) * 2015-04-22 2016-10-27 Pebble Technology Corp. Living notifications
US10162537B2 (en) * 2015-09-10 2018-12-25 Samsung Electronics Co., Ltd. Methods and systems to detect silent corruption of data
CN106814968B (zh) * 2015-11-27 2020-03-17 群联电子股份有限公司 存储器管理方法与系统及其存储器存储装置
CN107391038B (zh) * 2017-07-26 2020-07-17 深圳市硅格半导体有限公司 资料存储型闪存的数据写入方法、闪存及存储介质
JP2020113187A (ja) * 2019-01-16 2020-07-27 キオクシア株式会社 メモリシステム
KR20220060372A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
JPH07219720A (ja) * 1993-10-01 1995-08-18 Hitachi Maxell Ltd 半導体メモリ装置ならびにその制御方法
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP3503448B2 (ja) * 1997-11-04 2004-03-08 日本ビクター株式会社 フラッシュ型メモリ及びその管理装置
US20050135180A1 (en) * 2000-06-30 2005-06-23 Micron Technology, Inc. Interface command architecture for synchronous flash memory
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6779099B2 (en) * 2001-07-20 2004-08-17 Chien-Tzu Hou Operation method for controlling access attributes of a memorized page of a memory unit and its structure
JP2003233534A (ja) * 2002-02-07 2003-08-22 Hitachi Ltd メモリシステム
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
JP2005108273A (ja) * 2003-09-26 2005-04-21 Toshiba Corp 不揮発性半導体記憶装置
JP2006040264A (ja) * 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
TWI295425B (en) * 2005-04-01 2008-04-01 Integrated Circuit Solution Inc High access speed flash controller
JP4688584B2 (ja) * 2005-06-21 2011-05-25 株式会社日立製作所 ストレージ装置
JP4998404B2 (ja) 2007-08-16 2012-08-15 三菱マテリアル株式会社 パワーモジュール用基板及びその製造方法並びにパワーモジュール
KR101077339B1 (ko) * 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
JP5341584B2 (ja) * 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
JP5377182B2 (ja) * 2009-09-10 2013-12-25 株式会社東芝 制御装置

Also Published As

Publication number Publication date
US8516182B2 (en) 2013-08-20
CN101840307B (zh) 2013-06-12
TWI423021B (zh) 2014-01-11
US20100241819A1 (en) 2010-09-23
CN101840307A (zh) 2010-09-22
TW201035755A (en) 2010-10-01
EP2230604A1 (en) 2010-09-22
JP2010218290A (ja) 2010-09-30
KR20100105317A (ko) 2010-09-29
KR101079937B1 (ko) 2011-11-04

Similar Documents

Publication Publication Date Title
JP5341584B2 (ja) コントローラ、及びメモリシステム
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
USRE42263E1 (en) Address conversion unit for memory device
JP4884382B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US8095723B2 (en) Log-based flash translation layer and operating method thereof
US20120215965A1 (en) Storage Device and Computer Using the Same
JP2019020788A (ja) メモリシステムおよび制御方法
JP2009276853A (ja) フラッシュメモリ装置
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
KR20120084906A (ko) 비휘발성 메모리 시스템 및 그 관리 방법
WO2016123748A1 (zh) 一种闪存存储系统及其读写、删除方法
CN116225334A (zh) 一种冷热数据存储方法、装置以及介质
JP4242245B2 (ja) フラッシュrom制御装置
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
JP2005115562A (ja) フラッシュrom制御装置
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
US20200319999A1 (en) Storage device, control method of storage device, and storage medium
JP2013206307A (ja) メモリ制御装置、データ記憶装置及びメモリ制御方法
TWI407305B (zh) 快閃記憶體之資料存取方法以及快閃記憶體裝置
JP2009163394A (ja) メモリ管理装置およびメモリ管理方法
JP4895264B2 (ja) 記憶装置および情報処理装置
JP2015204071A (ja) 情報処理装置、情報処理方法およびプログラム
JP2013109404A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130808

LAPS Cancellation because of no payment of annual fees