JP2013174972A - メモリシステム、コントローラ、メモリシステムの制御方法 - Google Patents
メモリシステム、コントローラ、メモリシステムの制御方法 Download PDFInfo
- Publication number
- JP2013174972A JP2013174972A JP2012037965A JP2012037965A JP2013174972A JP 2013174972 A JP2013174972 A JP 2013174972A JP 2012037965 A JP2012037965 A JP 2012037965A JP 2012037965 A JP2012037965 A JP 2012037965A JP 2013174972 A JP2013174972 A JP 2013174972A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- conversion table
- physical address
- user data
- 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
Links
Images
Abstract
【課題】書き込み効率の高いメモリシステムを得る。
【解決手段】実施形態のメモリシステムは、ユーザデータ、ホストアドレスに対応するユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、メモリを備える。実施形態のメモリシステムは、メモリ上に少なくとも一部が読み出された逆引きアドレス変換表を用いて第1物理アドレスに対応する第1ホストアドレスを求め、メモリ上に読み出された正引きアドレス変換表を用いて第1ホストアドレスに対応する第2物理アドレスを求め、第1物理アドレスと第2物理アドレスが一致する場合は第1物理アドレスのユーザデータは有効データであると判定し、それ以外の場合は第1物理アドレスのユーザデータは無効データであると判定するアドレス変換表比較部を有するコントローラを備える。
【選択図】図1
【解決手段】実施形態のメモリシステムは、ユーザデータ、ホストアドレスに対応するユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、メモリを備える。実施形態のメモリシステムは、メモリ上に少なくとも一部が読み出された逆引きアドレス変換表を用いて第1物理アドレスに対応する第1ホストアドレスを求め、メモリ上に読み出された正引きアドレス変換表を用いて第1ホストアドレスに対応する第2物理アドレスを求め、第1物理アドレスと第2物理アドレスが一致する場合は第1物理アドレスのユーザデータは有効データであると判定し、それ以外の場合は第1物理アドレスのユーザデータは無効データであると判定するアドレス変換表比較部を有するコントローラを備える。
【選択図】図1
Description
本発明の実施形態は、メモリシステム、コントローラ、メモリシステムの制御方法に関する。
NANDブロック内のユーザデータを、新規書き込みなどにより無効化すると、ブロック内の有効データ量の少ないブロック(低密度ブロック)が発生する。ブロック全体の中で低密度ブロック数が増加すると、使用中のブロック数が増加するため、新規のブロック確保ができなくなってしまう。そのため、ユーザデータが書き込まれたブロックから低密度ブロックを複数選択し、ブロック中の有効なデータを抽出、新規ブロックに移動し、高密度なデータブロックとして書き込みする。低密度ブロックはデータ移動後に解放することができるので、空きブロック数を増やすことができる。この処理をコンパクション処理とよぶ。コンパクション処理では、移動元ブロック内のデータが有効データであるかあるいは無効データであるかの判定が必要となる。このためには、逆引きアドレス変換表(NANDアドレスからホストアドレスへの変換表:Reverse Lookup Table)をメモリ上に用意する必要がある。ちなみに、ホストアドレスからNANDアドレスへの変換表は正引きアドレス変換表(Lookup Table)である。
本発明の一つの実施形態は、書き込み効率の高いメモリシステム、コントローラ、メモリシステムの制御方法を提供することを目的とする。
本発明の一つの実施形態のメモリシステムは、ユーザデータ、ホストアドレスに対応する前記ユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、メモリと、を備える。実施形態のメモリシステムは、前記メモリ上に少なくとも一部が読み出された前記逆引きアドレス変換表を用いて第1の物理アドレスに対応する第1のホストアドレスを求め、前記メモリ上に読み出された前記正引きアドレス変換表を用いて第1のホストアドレスに対応する第2の物理アドレスを求め、第1の物理アドレスと第2の物理アドレスが一致する場合は、第1の物理アドレスの前記ユーザデータは有効データであると判定し、第1の物理アドレスと第2の物理アドレスが一致しない場合は、第1の物理アドレスの前記ユーザデータは無効データであると判定するアドレス変換表比較部を有するコントローラを備える。
図1は、比較例にかかるメモリシステム100の構成を示す。メモリシステム100は、ホストコントローラ2、コントローラ3、NANDコントローラ4、NANDフラッシュメモリ5(不揮発性メモリ)、RAMなどからなるメモリ6(揮発性メモリ)を備える。メモリシステム100はホストコントローラ2を介してホスト機器1と接続する。コンパクション処理では、移動元データについて有効データか無効データかの判定が必要となる。有効なデータとはホストアドレスと対応付けられているデータであり、無効なデータとはホストアドレスが対応付けられていないデータである。比較例においては、NANDフラッシュメモリ5が有するNANDブロック上のデータが、どのホストアドレスに属するかもしくは無効データであることを示す逆引きアドレス変換表(NANDアドレス(物理アドレス)からホストアドレスへの変換表:Reverse Lookup Table)を使用する。逆引きアドレス変換表52はNANDフラッシュメモリ5に保持されており、メモリシステム100の動作時にはメモリ6上に逆引きアドレス変換表52と同じ内容であるがその一部のみを逆引きアドレス変換表(一部)62として展開する。
逆引きアドレス変換表の一例は、図2において逆引きアドレス変換表(B)として示されている。逆引きアドレス変換表(B)には、NANDアドレス上に記録されたユーザデータが有効データの場合、対応するホストアドレスが存在する。例えばNANDアドレスXにはホストアドレスMが、NANDアドレスYにはホストアドレスNが対応している。新規書き込みや、コンパクションによるユーザデータ移動が発生した場合は、移動元のNANDアドレスのユーザデータは無効になるので、当該NANDアドレスに対応するホストアドレスには無効を示す値(無効値)を入れる。図2の逆引きアドレス変換表(B)の例では、NANDアドレスZに対応するホストアドレスに無効値が入っている。
コンパクション時には、この逆引きアドレス変換表を使用することにより、NANDブロック上のデータが有効データか無効データかの判定を行うことができる。なお、ホストデータの読み出しには、ホストアドレスからNANDブロック上のアドレスを参照する正引きアドレス変換表(ホストアドレスからNANDアドレスへの変換表:Lookup Table)(A)が必要となる(図2)。正引きアドレス変換表51もNANDフラッシュメモリ5に保持されており、メモリシステム100の動作時にはメモリ6上に同じ内容の正引きアドレス変換表61が展開される。この正引きアドレス変換表61、51は、同ホストアドレスに対するデータの上書きや、コンパクション処理後に、移動先のNANDアドレスを指すように更新する必要がある。
比較例において、図2に示したホストアドレスNおよびMにユーザデータが上書きされる場合について、図3のフローチャートおよび図4を用いて以下に説明する。
まず、図3のステップS101にて、上書き元の逆引きアドレス変 換表(B)(図2)がNANDフラッシュメモリ5からメモリ6にロード(Load)される。次に、ステップS102にて上書き先の逆引きアドレス変換表(C)がNANDフラッシュメモリ5からメモリ6にロードされる。ここでは、逆引きアドレス変換表(B)および(C)は使用しない場合は不揮発化(NANDフラッシュメモリ5に保持されメモリ6上に存在しない状態)されているとする。また、逆引きアドレス変換表(C)のNANDアドレスPおよびQに対応するホストアドレスには無効値が書き込まれているとする。即ち、アドレスPおよびQは対応するホストアドレスを有しておらず、書き込み可能なアドレスである。正引きおよび逆引きアドレス変換表更新の例として、ホストアドレスNおよびMに新たなユーザデータが上書きされる場合を考える。アドレスNおよびMに書き込まれる新たなユーザデータは、それぞれNANDアドレスQおよびPに書き込まれる(ステップS103)。
次に、図2の逆引きアドレス変換表(B)のNANDアドレスXおよびYに対応するホストアドレスにそれぞれ無効値を書き込む(ステップS104)。その結果、逆引きアドレス変換表(B)は図4に示すようになる。さらに、図4に示すように、逆引きアドレス変換表(C)のNANDアドレスPおよびQに対応するホストアドレスにアドレスMおよびNを新たに書き込む(ステップS105)。そして、図2の正引きアドレス変換表(A)のホストアドレスNおよびMに対応するNANDアドレスに図4に示すようにユーザデータが書き込まれた新たなNANDアドレスQおよびPを書き込んで更新する(ステップS106)。なお、正引きアドレス変換表(A)も必要時にメモリ6にロードするようにしてもよい。これら正引きおよび逆引きアドレス変換表の更新はメモリ6上での操作になるが、その後、逆引きアドレス変換表(B)をNANDフラッシュメモリ5にストア(Store)し(ステップS107)、逆引きアドレス変換表(C)をNANDフラッシュメモリ5にストア(Store)する(ステップS108)。逆引きアドレス変換表(C)を継続して使用する場合はメモリ6に情報を残しておいてもよい。なお、コンパクションの場合は、NANDアドレスPにアドレスXに書かれていたデータがコピーされ、NANDアドレスQにアドレスYに書かれていたデータがコピーされる点が異なるが、アドレスXおよびYに対応するホストアドレスに無効値を書き込まなければならない点は同様である。
上記のように比較例においては、逆引きアドレス変換表を元にNANDフラッシュメモリ5上のデータが有効データか無効データかの判定を行っている。このためには、データの上書きや、コンパクションによるデータ移動が発生しユーザデータの無効化が必要になった場合、元データのNANDアドレスの逆引きアドレス変換表の対応するホストアドレスに当該ホストアドレスは無効であることを示す値(無効値)を入れる必要がある。この処理のために書き込み効率は低下する。また従来、正引きおよび逆引きアドレス変換表をメモリ6上にすべて展開していたが、大きなメモリサイズを必要とするという問題があった。この問題を解決するために例えば、この比較例では逆引きアドレス変換表はNANDフラッシュメモリ5上に不揮発化されている。すなわち、コンパクション処理時などの必要な場合に、NANDフラッシュメモリ5上に不揮発化されている逆引きアドレス変換表52の必要となる一部をメモリ6に逆引きアドレス変換表(一部)62としてロードし使用する。さらに必要な逆引きアドレス変換表がどこに保存されているかを知るために、メモリ6上に逆引きアドレス変換表の保存位置情報(テーブルポインタ)を持っておく。この場合も、不揮発化された逆引きアドレス変換表を更新するためには、不揮発化された逆引きアドレス変換表の読み出し、更新、再不揮発化(NANDフラッシュメモリ5へのストア)を行う必要があるため、オーバヘッドが大きくなるという問題があった。また、頻繁に不揮発化が発生するため、NANDフラッシュメモリ5への書き込み効率が悪化するという問題があった。
以下に添付図面を参照して、実施形態にかかるメモリシステム、コントローラ、メモリシステムの制御方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
(実施形態)
図5は、実施形態にかかるメモリシステム200の構成を示す。メモリシステム200は、ホストコントローラ2、コントローラ3、NANDコントローラ4、NANDフラッシュメモリ5(不揮発性メモリ)、RAMなどからなるメモリ6(揮発性メモリ)を備える。メモリシステム200はホストコントローラ2を介してホスト機器1と接続する。コントローラ3は、書き込み制御部31に加えてコンパクション処理を制御するコンパクション制御部32を備え、コンパクション制御部32はアドレス変換表比較部30を備える。NANDフラッシュメモリ5(不揮発性メモリ)は、ユーザデータの他に、正引きアドレス変換表51(ホストアドレスからNANDアドレス(物理アドレス)への変換表:Lookup Table)、逆引きアドレス変換表52(NANDアドレスからホストアドレスへの変換表:Reverse Lookup Table)、および逆引きアドレス変換表52の保存位置情報(テーブルポインタ)50を記憶している。アドレス変換表比較部30は、メモリ6上の逆引きアドレス変換表62と正引きアドレス変換表61の両方を使用して、コンパクション処理において、ユーザデータが有効データか無効データかの判定を行う。メモリ6上には逆引きアドレス変換表保存位置情報(テーブルポインタ)60も展開されており、後述するようにこれを用いて、必要に応じて、逆引きアドレス変換表52の一部をメモリ6上にロードして逆引きアドレス変換表(一部)62として使用する。
図5は、実施形態にかかるメモリシステム200の構成を示す。メモリシステム200は、ホストコントローラ2、コントローラ3、NANDコントローラ4、NANDフラッシュメモリ5(不揮発性メモリ)、RAMなどからなるメモリ6(揮発性メモリ)を備える。メモリシステム200はホストコントローラ2を介してホスト機器1と接続する。コントローラ3は、書き込み制御部31に加えてコンパクション処理を制御するコンパクション制御部32を備え、コンパクション制御部32はアドレス変換表比較部30を備える。NANDフラッシュメモリ5(不揮発性メモリ)は、ユーザデータの他に、正引きアドレス変換表51(ホストアドレスからNANDアドレス(物理アドレス)への変換表:Lookup Table)、逆引きアドレス変換表52(NANDアドレスからホストアドレスへの変換表:Reverse Lookup Table)、および逆引きアドレス変換表52の保存位置情報(テーブルポインタ)50を記憶している。アドレス変換表比較部30は、メモリ6上の逆引きアドレス変換表62と正引きアドレス変換表61の両方を使用して、コンパクション処理において、ユーザデータが有効データか無効データかの判定を行う。メモリ6上には逆引きアドレス変換表保存位置情報(テーブルポインタ)60も展開されており、後述するようにこれを用いて、必要に応じて、逆引きアドレス変換表52の一部をメモリ6上にロードして逆引きアドレス変換表(一部)62として使用する。
アドレス変換表比較部30による有効データか無効データかの判定の手順を図6および図7のフローチャートを用いて説明する。図6の逆引きアドレス変換表(B)のNANDアドレスXのデータが有効か無効かの判定を例にとり説明する。まず、逆引きアドレス変換表(B)のNANDアドレスXに対応するホストアドレスMを求める(図7、ステップS201)。次に、図6の正引きアドレス変換表(A)より、ホストアドレスMに対応するNANDアドレスX’(図6ではXになっている)を求める(ステップS202)。そして、NANDアドレスXとNANDアドレスX’が等しいか否かでNANDアドレスXのデータが有効か無効かの判定を行う(ステップS203)。即ち、NANDアドレスXとNANDアドレスX’が等しい場合(ステップS203:Yes)は、NANDアドレスXには有効データが存在することになる(ステップS204)。他方、NANDアドレスXとNANDアドレスX’が等しくない場合(ステップS203:No)は、NANDアドレスXのデータは無効データであることになる(ステップS205)。図6のNANDアドレスXの場合は、ステップS202にてX’=Xが求まるので、ステップS203においてNANDアドレスXには有効データが存在すると判定される。同様に、図6のNANDアドレスYにも有効データが存在すると判定される。他方、図6のNANDアドレスZについては、上記ステップS201にて求められたホストアドレスMからは、ステップS202でNANDアドレスZとは異なるNANDアドレスXが求められる。従って、ステップS203にてNANDアドレスZのデータは無効データであると判定される。
上記した有効/無効データの判定を用いたコンパクション処理の手順を図8のフローチャートを用いて説明する。コンパクション処理は空きブロックが少なくなった場合に実行されるが、以下ではその要件を満たしてコンパクション処理の実行がされる場合について説明する。まず、コンパクションの元となるNANDフラッシュメモリ5内のブロックを選択する(ステップS301)。次に、逆引きアドレス変換表保存位置情報(テーブルポインタ)60を用いてブロック単位に存在する逆引きアドレス変換表52をNANDフラッシュメモリ5からメモリ6上に読み出す。メモリ6上にはステップS301で選択されたブロックの逆引きアドレス変換表62が展開される。そして、この逆引きアドレス変換表62および、同じくメモリ6上に展開されている正引きアドレス変換表61に基づいて、NANDアドレス毎のデータの有効/無効が判定される(ステップS302)。ステップS302の判定は上述した図7のフローチャートに基づいて実行される。ステップS302で、有効データと判定されたNANDアドレスのデータは(ステップS302:Yes)、コンパクション先のブロックにコピーされる(ステップS303)。コンパクション先のブロックの逆引きアドレス変換表62のホストアドレスにはコピーしたデータのホストアドレスが書き込まれる。この様子を図6および図9を用いて説明する。例えば、図6の逆引きアドレス変換表(B)がコンパクションの元の逆引きアドレス変換表であるとする。NANDアドレスXおよびYは、ステップS302において有効データが存在すると判定されるので、ステップS303でNANDアドレスXおよびYの有効データはコンパクション先のブロックのNANDアドレスPおよびQにコピーされる。従って、図9の逆引きアドレス変換表(C)のNANDアドレスPおよびQに対応するホストアドレスには、逆引きアドレス変換表(B)にてNANDアドレスXおよびYに対応するホストアドレスMおよびNがそれぞれ書き込まれる。
ステップS302にて、無効データであると判定された場合は(ステップS302:No)、判定されたNANDアドレスの次のNANDアドレスが存在するか否かが判定される(ステップS305)。この場合、同一ブロック内にNANDアドレスが無い場合は、コンパクションの元となる別のブロック(のNANDアドレス)が存在するかまで調べる。次のNANDアドレスが存在する場合(ステップS305:Yes)は次のNANDアドレスに移動し(ステップS306)、データの有効/無効が判定される(ステップS302)。ステップS305において、コンパクションの元となるブロック内のNANDアドレスについて全てデータの有効/無効を判定し終えている場合は次のNANDアドレスが存在しないので(ステップS305:No)、ステップS301に戻って、再度、コンパクションの元となるNANDフラッシュメモリ5内のブロックを選択する。
ステップS303の後は、ステップS304において、コンパクションにより必要な数の空きブロックが確保できたか否かが判定される。必要な数の空きブロックが確保できていない場合(ステップS304:No)は、ステップS305に進む。必要な数の空きブロックが確保できた場合(ステップS304:Yes)は、コンパクション処理を終了する。
本実施形態のコンパクション処理においては、図7のフローチャートに基づいて逆引きアドレス変換表62と正引きアドレス変換表61の両方を使用して、ユーザデータが有効データか無効データかの判定を行うことにより、例えば図6の逆引きアドレス変換表(B)の更新および再不揮発化(NANDフラッシュメモリ5への書き込み)が不要となりコンパクション処理における書き込み効率が向上する。
本実施形態において、図6に示したホストアドレスNおよびMにユーザデータが上書きされる場合について、図10のフローチャートおよび図9を用いて以下に説明する。
まず、図10のステップS401にて、上書き先の逆引きアドレス変換表(C)がNANDフラッシュメモリ5からメモリ6にロードされる。ここでは、逆引きアドレス変換表(C)は使用しない場合は不揮発化されているとする。また、逆引きアドレス変換表(C)のNANDアドレスPおよびQに対応するホストアドレスには無効値が書き込まれているとする。無効値は、初期設定時および上述したコンパクション処理で空ブロックを生成した場合に書き込んでおけばよい。即ち、アドレスPおよびQは対応するホストアドレスを有しておらず、書き込み可能なアドレスである。正引きおよび逆引きアドレス変換表更新の例として、ホストアドレスNおよびMに新たなユーザデータが上書きされる場合を考える。アドレスNおよびMに書き込まれる新たなユーザデータは、それぞれNANDアドレスQおよびPに書き込まれる(ステップS402)。
次に、図9に示すように、逆引きアドレス変換表(C)のNANDアドレスPおよびQに対応するホストアドレスにアドレスMおよびNを新たに書き込む(ステップS403)。そして、図6の正引きアドレス変換表(A)のホストアドレスNおよびMに対応するNANDアドレスに図9に示すようにユーザデータが書き込まれた新たなNANDアドレスQおよびPを書き込んで更新する(ステップS404)。なお、正引きアドレス変換表(A)も必要時にメモリ6にロードするようにしてもよい。これら正引きおよび逆引きアドレス変換表の更新はメモリ6上での操作になるが、その後、逆引きアドレス変換表(C)をNANDフラッシュメモリ5にストア(Store)する(ステップS405)。逆引きアドレス変換表(C)を継続して使用する場合はメモリ6に情報を残しておいてもよい。なお、コンパクションの場合は、NANDアドレスPに新規データではなくアドレスXに書かれていたデータがコピーされ、NANDアドレスQに新規データではなくアドレスYに書かれていたデータがコピーされる点が異なる。
上に説明した本実施形態における上書きのフローチャートを比較例にかかる図3のフローチャートと比較すると、逆引きアドレス変換表(B)のメモリ6へのロード(ステップS101)、逆引きアドレス変換表(B)のホストアドレスへの無効値の書き込み(ステップS104)、逆引きアドレス変換表(B)のNANDフラッシュメモリ5へのストア(Store)(ステップS107)が不要になっており、上書きにおいても書き込み効率の向上が図れることがわかる。
以上説明したように、本実施形態においては、コンパクション処理を実行する場合に必要となる逆引きアドレス変換表をメモリ上に全て展開する必要がないのでメモリ使用量の削減をしたうえで、オーバヘッドの低減、書き込み効率向上が図れる。即ち、ユーザデータの上書き、コンパクションによりデータが無効化された場合に、逆引きアドレス変換表に無効値を入れて更新する必要がなくなる。そのため、逆引きアドレス変換表を不揮発化していても、無効化されるNANDアドレスを有する逆引きアドレス変換表の更新、再不揮発化をする必要がなくなる。また、上書き時には無効化されるNANDアドレスを有する逆引きアドレス変換表の不揮発性メモリからの読み出しも不要となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 ホスト機器、2 ホストコントローラ、3 コントローラ、4 NANDコントローラ、5 NANDフラッシュメモリ、6 メモリ、100、200 メモリシステム。
Claims (18)
- ユーザデータ、ホストアドレスに対応する前記ユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、
メモリと、
前記メモリ上に少なくとも一部が読み出された前記逆引きアドレス変換表を用いて第1の物理アドレスに対応する第1のホストアドレスを求め、前記メモリ上に読み出された前記正引きアドレス変換表を用いて第1のホストアドレスに対応する第2の物理アドレスを求め、第1の物理アドレスと第2の物理アドレスが一致する場合は、第1の物理アドレスの前記ユーザデータは有効データであると判定し、第1の物理アドレスと第2の物理アドレスが一致しない場合は、第1の物理アドレスの前記ユーザデータは無効データであると判定するアドレス変換表比較部を有するコントローラと、
を備えたことを特徴とするメモリシステム。 - 前記コントローラは、コンパクション元となるブロックを前記不揮発性メモリから選択し、選択されたブロックのユーザデータが有効データであるか無効データであるかの判定を前記アドレス変換表比較部に実行させ、有効データと判定されたユーザデータをコンパクション先となるブロックに書き込む
ことを特徴とする請求項1に記載のメモリシステム。 - 前記ブロック毎に前記逆引きアドレス変換表が存在する
ことを特徴とする請求項2に記載のメモリシステム。 - 前記メモリは、前記不揮発性メモリ上の前記逆引きアドレス変換表の位置を示すアドレス変換表保存位置情報を保持し、
前記コントローラは、前記アドレス変換表保存位置情報に基づいて前記逆引きアドレス変換表の少なくとも一部を前記メモリに読み出す
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリシステム。 - 前記コントローラは、前記不揮発性メモリが保持する前記アドレス変換表保存位置情報を前記メモリ上に読み出す、
ことを特徴とする請求項1乃至4のいずれか1項に記載のメモリシステム。 - ユーザデータ、ホストアドレスに対応する前記ユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、メモリと、を備えたメモリシステムのコントローラであって、
前記メモリ上に少なくとも一部が読み出された前記逆引きアドレス変換表を用いて第1の物理アドレスに対応する第1のホストアドレスを求め、前記メモリ上に読み出された前記正引きアドレス変換表を用いて第1のホストアドレスに対応する第2の物理アドレスを求め、第1の物理アドレスと第2の物理アドレスが一致する場合は、第1の物理アドレスの前記ユーザデータは有効データであると判定し、第1の物理アドレスと第2の物理アドレスが一致しない場合は、第1の物理アドレスの前記ユーザデータは無効データであると判定するアドレス変換表比較部を備える、
ことを特徴とするコントローラ。 - コンパクション元となるブロックを前記不揮発性メモリから選択し、選択されたブロックのユーザデータが有効データであるか無効データであるかの判定を前記アドレス変換表比較部に実行させ、有効データと判定されたユーザデータをコンパクション先となるブロックに書き込む
ことを特徴とする請求項6に記載のコントローラ。 - 前記ブロック毎に前記逆引きアドレス変換表が存在する
ことを特徴とする請求項7に記載のコントローラ。 - 前記メモリが保持する前記不揮発性メモリ上の前記逆引きアドレス変換表の位置を示すアドレス変換表保存位置情報に基づいて前記逆引きアドレス変換表の少なくとも一部を前記メモリに読み出す
ことを特徴とする請求項6乃至8のいずれか1項に記載のコントローラ。 - 前記不揮発性メモリが保持する前記アドレス変換表保存位置情報を前記メモリ上に読み出す、
ことを特徴とする請求項6乃至9のいずれか1項に記載のコントローラ。 - ユーザデータ、ホストアドレスに対応する前記ユーザデータの物理アドレスを管理する正引きアドレス変換表、および物理アドレスに対応するホストアドレスを管理する逆引きアドレス変換表を保持する不揮発性メモリと、メモリと、を備えたメモリシステムの制御方法であって、
前記メモリ上に少なくとも一部が読み出された前記逆引きアドレス変換表を用いて第1の物理アドレスに対応する第1のホストアドレスを求め、
前記メモリ上に読み出された前記正引きアドレス変換表を用いて第1のホストアドレスに対応する第2の物理アドレスを求め、
第1の物理アドレスと第2の物理アドレスが一致する場合は、第1の物理アドレスの前記ユーザデータは有効データであると判定し、
第1の物理アドレスと第2の物理アドレスが一致しない場合は、第1の物理アドレスの前記ユーザデータは無効データであると判定する
ことを特徴とするメモリシステムの制御方法。 - コンパクション元となるブロックを前記不揮発性メモリから選択し、
選択されたブロックの第1の物理アドレスのユーザデータが有効データと判定された場合に、当該ユーザデータをコンパクション先となるブロックに書き込む
ことを特徴とする請求項11に記載のメモリシステムの制御方法。 - 前記ブロック毎に前記逆引きアドレス変換表が存在する
ことを特徴とする請求項12に記載のメモリシステムの制御方法。 - 前記メモリが保持する前記不揮発性メモリ上の前記逆引きアドレス変換表の位置を示すアドレス変換表保存位置情報に基づいて前記逆引きアドレス変換表の少なくとも一部を前記メモリに読み出す
ことを特徴とする請求項11乃至13のいずれか1項に記載のメモリシステムの制御方法。 - 前記不揮発性メモリが保持する前記アドレス変換表保存位置情報を前記メモリ上に読み出す、
ことを特徴とする請求項11乃至14のいずれか1項に記載のメモリシステムの制御方法。 - 選択されたブロックの第1の物理アドレスのユーザデータが無効データと判定された場合は、選択された前記ブロック内の第1の物理アドレスの次の物理アドレスのユーザデータが有効データか無効データかを判定する
ことを特徴とする請求項12乃至15のいずれか1項に記載のメモリシステムの制御方法。 - 必要な数の空きブロックが確保されていない場合は、選択された前記ブロック内の第1の物理アドレスの次の物理アドレスのユーザデータが有効データか無効データかを判定する
ことを特徴とする請求項12乃至16のいずれか1項に記載のメモリシステムの制御方法。 - 前記次の物理アドレスが存在しない場合は、コンパクション元となるブロックを前記不揮発性メモリから再度選択する、
ことを特徴とする請求項16または17に記載のメモリシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037965A JP2013174972A (ja) | 2012-02-23 | 2012-02-23 | メモリシステム、コントローラ、メモリシステムの制御方法 |
US13/599,087 US9251055B2 (en) | 2012-02-23 | 2012-08-30 | Memory system and control method of memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037965A JP2013174972A (ja) | 2012-02-23 | 2012-02-23 | メモリシステム、コントローラ、メモリシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013174972A true JP2013174972A (ja) | 2013-09-05 |
Family
ID=49267834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012037965A Pending JP2013174972A (ja) | 2012-02-23 | 2012-02-23 | メモリシステム、コントローラ、メモリシステムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013174972A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305665B2 (en) | 2014-03-31 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10018A (en) * | 1853-09-13 | Richard h | ||
JP2001142774A (ja) * | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
JP2005115561A (ja) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | フラッシュrom制御装置 |
JP2010157141A (ja) * | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
JP2011192260A (ja) * | 2010-02-16 | 2011-09-29 | Toshiba Corp | 半導体記憶装置 |
-
2012
- 2012-02-23 JP JP2012037965A patent/JP2013174972A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10018A (en) * | 1853-09-13 | Richard h | ||
JP2001142774A (ja) * | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
JP2005115561A (ja) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | フラッシュrom制御装置 |
JP2010157141A (ja) * | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
JP2011192260A (ja) * | 2010-02-16 | 2011-09-29 | Toshiba Corp | 半導体記憶装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305665B2 (en) | 2014-03-31 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
US8108592B2 (en) | Memory system and wear leveling method thereof | |
US8782327B1 (en) | System and method for managing execution of internal commands and host commands in a solid-state memory | |
US7844772B2 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
US9223691B2 (en) | Data storage device and method for flash block management | |
US7882300B2 (en) | Apparatus and method for managing nonvolatile memory | |
US20120215965A1 (en) | Storage Device and Computer Using the Same | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
US11455112B2 (en) | Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method | |
US20130138871A1 (en) | Flash Memory Device and Data Access Method for Same | |
US8516182B2 (en) | Controller and memory system for managing data | |
US8909870B2 (en) | Cache evictions from data cache based on content of address translation table cache and address translation table | |
KR20080074247A (ko) | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 | |
JP2008192154A (ja) | メモリマッピング方法およびメモリマッピングシステム | |
WO2011068109A1 (ja) | 記憶装置、およびメモリコントローラ | |
US20080320213A1 (en) | Control device of nonvolatile memory and control method thereof, and storage device | |
JP2013239099A (ja) | 制御装置、記憶装置、記憶制御方法 | |
US20130304972A1 (en) | Control device, storage device, and storage control method | |
JP2018160189A (ja) | メモリシステム | |
US11687448B2 (en) | Memory system and non-transitory computer readable recording medium | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
JP2016085677A (ja) | メモリ管理方法、メモリ管理プログラム及び情報処理装置 | |
US9003128B2 (en) | Cache system and processing apparatus | |
US20150234740A1 (en) | Memory system | |
JP2013174972A (ja) | メモリシステム、コントローラ、メモリシステムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140611 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140617 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141118 |