説明

半導体記憶装置、及び記憶媒体

【課題】ガベージコレクション処理による処理負荷を軽減し、ガベージコレクション処理の処理時間を短縮する。
【解決手段】フラッシュメモリ10は、予め定められたデータサイズ領域を示すページ単位でデータを書き込み可能な不揮発性記憶部11と、不揮発性記憶部11の指定された領域であって、複数のページを含む該指定された領域における有効データを一時記憶する記憶部12と、不揮発性記憶部11のページに有効なデータがあるか否かを示すアドレスマップ情報に基づいて、指定された領域における有効データを記憶部12に記憶させた後に、記憶部12に記憶された有効データを連続したページに書き込むガベージコレクション処理、及びガベージコレクション処理によって変更されたアドレスマップ情報を出力する処理を実行するコントロールロジック部13とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置、及び記憶媒体に関する。
【背景技術】
【0002】
フラッシュメモリなどの不揮発性の半導体記憶装置を備えた記憶媒体(例えば、メモリカード)が広く使用されている。このようなメモリカードは、フラッシュメモリにおいて無効になった領域を開放し、有効データが記憶された領域の断片化を解消して未使用連続領域を増やすガベージコレクション処理を行っている(例えば、特許文献1を参照)。
【0003】
特許文献1に記載されたようなメモリカードでは、制御部(例えば、マイクロコンピュータ)、擬似スタティックランダムアクセスメモリ(以下、PSRAMという)、及びフラッシュメモリが、共通のデータバスに接続される(特許文献1の図1参照)。このようなメモリカードは、マイクロコンピュータがガベージコレクション処理対象とされるデータをフラッシュメモリから読み出すのに並行して、フラッシュメモリから読み出したデータをSRAMに書き込む。このようなメモリカードは、ガベージコレクション処理対象とされるデータの上記読み出しとSRAMへの書き込みとを同一のメモリサイクルで実現する。また、ガベージコレクション処理対象とされるデータは、マクロコンピュータにも取り込まれる。そのため、マクロコンピュータは、該データに含まれるセクタ管理情報を参照して、PSRAMに書き込むアドレスを制御することにより、ガベージコレクション処理を実行する。ここで、ガベージコレクション処理には、断片化された有効データを連続した領域に記憶させて未使用連続領域を増やすコンパクション処理を含むものとする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−314775号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載されたようなメモリカードでは、ガベージコレクション処理対象とされるデータは、マイクロコンピュータの制御によって、PSRAMに転送される。また、PSRAMに退避されたデータは、マイクロコンピュータの制御によって、フラッシュメモリに書き込まれる。そのため、マイクロコンピュータは、PSRAMに転送する制御をガベージコレクション処理対象とされるデータの読み出し回数分実行する必要がある。また、マイクロコンピュータは、フラッシュメモリに書き込む制御をPSRAMに退避されたデータの書き込み回数分実行する必要がある。
つまり、特許文献1に記載されたようなメモリカード(記憶媒体)では、ガベージコレクション処理によるマイクロコンピュータ(カード制御部)の処理負荷が大きく、処理に時間がかかるという問題があった。
【0006】
本発明は、上記問題を解決すべくなされたもので、その目的は、ガベージコレクション処理による処理負荷を軽減し、ガベージコレクション処理の処理時間を短縮する半導体記憶装置、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【0007】
上記問題を解決するために、本発明は、予め定められたデータサイズ領域を示すページ単位でデータを書き込み可能な不揮発性記憶部と、前記不揮発性記憶部の指定された領域であって、複数の前記ページを含む該指定された領域における有効データを一時記憶する一時記憶部と、前記不揮発性記憶部の前記ページに有効なデータがあるか否かを示す管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記一時記憶部に記憶された前記有効データを連続した前記ページに書き込むガベージコレクション処理、及び前記ガベージコレクション処理によって変更された前記管理情報を出力する処理を実行するロジック部とを備えることを特徴とする半導体記憶装置である。
【0008】
また、本発明は、上記発明において、前記一時記憶部は、前記管理情報を記憶し、前記ロジック部は、前記ガベージコレクション処理によって変更された前記管理情報を前記一時記憶部に記憶させる処理を実行することを特徴とする。
【0009】
また、本発明は、上記発明において、前記管理情報は、前記指定された領域における前記ページに有効なデータがあるか否かを示す部分管理情報であることを特徴とする。
【0010】
また、本発明は、上記発明において、前記ガベージコレクション処理は、前記管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記指定された領域のデータを前記不揮発性記憶部に消去させ、前記指定された領域における連続した前記ページに、前記一時記憶部に記憶された前記有効データを書き込む処理であることを特徴とする。
【0011】
また、本発明は、上記発明において、前記ガベージコレクション処理は、前記管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記指定された領域とは異なる領域における連続した前記ページに、前記一時記憶部に記憶された前記有効データを書き込む処理であることを特徴とする。
【0012】
また、本発明は、上記発明において、前記一時記憶部が、前記不揮発性記憶部の全領域における前記管理情報を示す全体管理情報を記憶することを特徴とする。
【0013】
また、本発明は、上記の半導体記憶装置と、前記不揮発性記憶部の全領域における前記管理情報を示す全体管理情報を記憶する管理情報記憶部と、前記管理情報記憶部に記憶されている全体管理情報に基づいて指定した前記指定された領域における前記ガベージコレクション処理を前記半導体記憶装置に実行させ、前記半導体記憶装置から出力される前記ガベージコレクション処理によって変更された前記管理情報に基づいて、前記管理情報記憶部に記憶されている前記全体管理情報を変更する制御部とを備えることを特徴とする記憶媒体である。
【0014】
また、本発明は、上記発明において、前記制御部は、前記ガベージコレクション処理を前記半導体記憶装置に実行させる前に、前記管理情報記憶部に記憶されている前記管理情報を前記半導体記憶装置に出力することを特徴とする。
【発明の効果】
【0015】
本発明によれば、ガベージコレクション処理による処理負荷を軽減し、ガベージコレクション処理の処理時間を短縮することができる。
【図面の簡単な説明】
【0016】
【図1】本実施形態によるメモリカード及びフラッシュメモリを示す第1の概略ブロック図である。
【図2】本実施形態によるメモリカード及びフラッシュメモリを示す第2の概略ブロック図である。
【図3】本実施形態によるメモリカードとホスト装置の接続例を示す概略ブロック図である。
【図4】本実施形態によるメモリカード及びフラッシュメモリの処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態による記憶媒体(例えば、メモリカード)及び半導体記憶装置(例えば、フラッシュメモリ)について図面を参照して説明する。
図1は、本実施形態によるメモリカード1及びフラッシュメモリ10を示す第1の概略ブロック図である。
この図において、メモリカード1は、フラッシュメモリ10、記憶部20、カード制御部30、発振子40、及びスイッチ50を備えている。なお、フラッシュメモリ10、記憶部20、及びカード制御部30は、内部バス15を介して互いに接続されている。
【0018】
フラッシュメモリ10(半導体記憶装置)は、不揮発性メモリを備えた集積回路(半導体装置)である。フラッシュメモリ10は、不揮発性記憶部11、記憶部12、及びコントロールロジック部13を備えている。なお、不揮発性記憶部11、記憶部12、及びコントロールロジック部13は、内部バス14を介して互いに接続されている。
【0019】
不揮発性記憶部11は、例えば、フラッシュEEPROM(Electrically Erasable Programmable Read Only Memory)である。不揮発性記憶部11は、予め定められたデータサイズ領域を示すページを複数備えており、ページ単位でデータを書き込むことができる。また、不揮発性記憶部11は、複数のページを含むブロックを備えており、ブロック単位でデータを消去する。なお、不揮発性記憶部11は、複数のブロックを備えている。
ここで、ページのデータ長を、例えば、512バイトとし、ブロックは、例えば、16Kバイト(Kは1024バイト)とした例を説明する。
【0020】
記憶部12(一時記憶部)は、例えば、PSRAM(擬似スタティックランダムアクセスメモリ)などの揮発性記憶部である。記憶部12は、ガベージコレクション処理を行う際に、不揮発性記憶部11の指定された領域における有効データを一時記憶する。ここで、不揮発性記憶部11の指定された領域とは、不揮発性記憶部11のガベージコレクション処理対象となる領域であり、複数のページを含む領域である。また、この指定された領域は、後述する全体アドレスマップ情報に基づいてカード制御部30によって指定される。このカード制御部30によって指定される領域は、例えば、ブロック単位で指定される。
【0021】
また、記憶部12は、アドレスマップ情報(管理情報)を記憶する。アドレスマップ情報(管理情報)には、不揮発性記憶部11のそれぞれのページに有効なデータ(有効データ)があるか否かを示す情報が含まれる。ここで、記憶部12は、不揮発性記憶部11の指定された領域のアドレスマップ情報(管理情報)を記憶する。なお、記憶部12の詳細な構成は、図2を参照して後述する。
【0022】
コントロールロジック部13(ロジック部)は、フラッシュメモリ10の各種動作を制御するロジック回路である。コントロールロジック部13は、不揮発性記憶部11に対するデータの消去及び書き込み処理、不揮発性記憶部11に記憶された(書き込まれた)データの読み出し処理、ガベージコレクション処理、及びアドレスマップ制御処理の制御を行う。なお、コントロールロジック部13の詳細な構成は、図2を参照して後述する。
ここで、ガベージコレクション処理とは、フラッシュメモリ10の不揮発性記憶部11において無効になった領域を開放し、有効データが記憶された領域の断片化を解消して未使用連続領域を増やす処理である。また、ガベージコレクション処理には、断片化された有効データを連続した領域に記憶させて未使用連続領域を増やすコンパクション処理を含むものとする。
【0023】
内部バス14は、不揮発性記憶部11、記憶部12、及びコントロールロジック部13の各部から出力されるデータや制御信号などを転送する。なお。内部バス14は、不揮発性記憶部11、記憶部12、及びコントロールロジック部13の間において、共通なデータバスを含む。
【0024】
記憶部20(管理情報記憶部)は、例えば、PSRAMなどの揮発性記憶部である。記憶部20は、不揮発性記憶部11のデータを管理するためのアドレスマップ情報(管理情報)及び不揮発性記憶部11に書き込むデータを記憶する。ここでのアドレスマップ情報(管理情報)は、不揮発性記憶部11の全領域における全体アドレスマップ情報(全体管理情報)である。つまり、記憶部20は、不揮発性記憶部11の全領域におけるアドレスマップ情報を示す全体アドレスマップ情報を記憶する。全体アドレスマップ情報には、不揮発性記憶部11の全領域におけるそれぞれのページに有効なデータ(有効データ)があるか否かを示す情報が含まれる。
【0025】
例えば、全体アドレスマップ情報には、不揮発性記憶部11の全領域におけるそれぞれのページが有効なデータ領域、無効なデータ領域、及び未使用データ領域のいずれかを示す情報が含まれる。
なお、全体アドレスマップ情報は、メモリカード1に電力が供給された際に、カード制御部30によって記憶部20に記憶される。メモリカード1に電力が供給された際に、カード制御部30は、不揮発性記憶部11に記憶されているデータを読み出し、読み出したデータに基づいて、全体アドレスマップ情報を生成する。不揮発性記憶部11に記憶されているデータには、例えば、不揮発性記憶部11の各ページに対応した利用状況を示す情報(有効なデータ領域、無効なデータ領域、及び未使用データ領域のいずれかを示す情報)が含まれている。そして、CPU36は、生成した全体アドレスマップ情報を記憶部20に記憶させる。
なお、上述の各ページに対応した利用状況を示す情報は、例えば、不揮発性記憶部11にデータを書き込む又は、データを消去する際に、カード制御部30によって、不揮発性記憶部11に書き込まれる。
また、記憶部20は、ホストI/F部39を介してホスト装置2(図3参照)から出力されたデータを一時記憶する。
【0026】
発振子40は、例えば、水晶発振子であり、カード制御部30に接続されている。発振子40は、メモリカード1内で使用するクロックを発振する。
スイッチ50は、メモリカード1の使用者によって切り替えられるように配置され、出力端子がカード制御部30に接続されている。スイッチ50は、2つの入力端子を備え、一方の入力端子が電源線VCCに、他方の入力端子がグランド線に接続されている。スイッチ50は、出力端子に、電源線VCCの電位又はグランド線の電位を出力し、メモリカード1にデータの書き込みを禁止する状態と、データの書き込みを許可する状態とを切り替える。
【0027】
カード制御部30(制御部)は、メモリカード1の各部を制御する。カード制御部30は、メモリカード1が接続されるホスト装置2(図3参照)から供給されるコマンドに応じて、フラッシュメモリ10に記憶されているファイルデータを読み出す処理やフラッシュメモリ10にファイルデータを書き込む処理などを制御する。
カード制御部30は、記憶部20に記憶されている全体アドレスマップ情報に基づいて、不揮発性記憶部11の指定した領域におけるガベージコレクション処理をフラッシュメモリ10に実行させる。また、カード制御部30は、フラッシュメモリ10から出力されるガベージコレクション処理によって変更されたアドレスマップ情報(管理情報)に基づいて、記憶部20に記憶されている全体アドレスマップ情報を変更する。
さらに、カード制御部30は、ガベージコレクション処理をフラッシュメモリ10に実行させる前に、記憶部20に記憶されているアドレスマップ情報(管理情報)をフラッシュメモリ10に出力する。
【0028】
また、カード制御部30は、レジスタ部33、データバッファ部34、ECC(Error Check and Correction)部35、CPU(Central Processing Unit)36、OSC(Oscillator)コントローラ部37、及びホストI/F(インターフェース)部39を備えている。なお、レジスタ部33、データバッファ部34、及びホストI/F部39は、内部バス38を介して互いに接続されている。
レジスタ部33は、ホスト装置2からホストI/F部39を介して供給されたコマンド情報を記憶する。レジスタ部33は、記憶したコマンド情報をCPU36に供給する。また、レジスタ部33は、コマンド処理の終了情報やメモリカード1の状態情報などの情報を記憶し、ホストI/F部39を介してホスト装置2に出力する。
なお、スイッチ50から出力される書き込み許可/禁止に関する情報も、レジスタ部33に記憶される。
【0029】
データバッファ部34は、ホスト装置2からホストI/F部39を介して供給された書き込みデータ、及びCPU36によってフラッシュメモリ10の不揮発性記憶部11から読み出されたデータを一時記憶する。
ECC部35は、フラッシュメモリ10の不揮発性記憶部11に書き込まれるデータの誤り訂正符号を生成する。また、ECC部35は、フラッシュメモリ10から読み出されたデータと誤り訂正符号とに基づいて、読み出されたデータの誤り訂正処理を行う。
OSCコントローラ部37は、発振子40を発振させて、クロック信号を生成し、カード制御部30の各部に供給する。
【0030】
CPU36は、ホスト装置2から供給されたコマンド情報をレジスタ部33から読み出して、コマンド情報に応じたコマンド処理を実行する。このコマンド処理によって、CPU36は、上述したフラッシュメモリ10にガベージコレクション処理を実行させる処理、及び記憶部20に記憶されている全体アドレスマップ情報を変更する処理の制御を行う。
【0031】
ホストI/F部39は、ホスト装置2とメモリカード1との間のデータ転送を行う。ホストI/F部39は、シリアル信号線によるシリアルデータ転送を行うシリアルI/F部31と、パラレル信号線によるパラレルデータ転送を行うパラレルI/F部32とを備えている。本実施形態では、ホストI/F部39は、シリアルデータ転送とパラレルデータ転送とを切り替えて使用できる場合の例である。
なお、ホストI/F部39において、DATA0端子〜DATA3端子は、パラレル信号転送用のデータ端子であり、SDIO端子は。シリアルデータ転送用のデータ端子である。また、SCLK端子はデータ転送用のクロック信号を供給する端子であり、BS端子は、データ転送におけるバス状態を切り替える端子である。また、VCC端子及びVSS端子は、電源供給用の端子であり、INS端子は、メモリカード1が接続されたか否かをホスト装置2が判定するための端子である。
【0032】
次に、本実施形態におけるフラッシュメモリ10(半導体記憶装置)について、図2を参照して詳細に説明する。
図2は、本実施形態によるメモリカード1及びフラッシュメモリ10を示す第2の概略ブロック図である。この図において、図1と同じ構成には同一の符号を付してその説明を省略し、図1との相違点のみについて説明する。
【0033】
この図において、記憶部20(管理情報記憶部)は、全体アドレスマップ記憶部80を含んでいる。
全体アドレスマップ記憶部80は、上述した全体アドレスマップ情報(全体管理情報)を記憶する。
【0034】
この図において、記憶部12(一時記憶部)は、アドレスマップ領域60、及びユーザデータ領域70を備えている。
アドレスマップ領域60(管理情報記憶領域)には、ガベージコレクション処理を行う領域(カード制御部30によって指定された不揮発性記憶部11内の領域)に対応したアドレスマップ情報(管理情報)が記憶される。このアドレスマップ情報には、不揮発性記憶部11の各ページに有効なデータ(有効データ)があるか否かを示す管理情報を含んでいる。なお、本実施形態では、上述したように、このアドレスマップ情報は、カード制御部30によって指定された不揮発性記憶部11内の領域に対応した部分アドレスマップ情報である。つまり、このアドレスマップ情報は、カード制御部30によって指定された領域におけるページに有効なデータ(有効データ)があるか否かを示す部分管理情報である。
なお、アドレスマップ領域60は、1ブロック分以上のアドレスマップ情報を記憶する容量を有している。
【0035】
また、アドレスマップ領域60に記憶されるアドレスマップ情報には、旧ブロック情報61、旧ページ情報62、新ブロック情報63、及び新ページ情報64が含まれている。
旧ブロック情報61は、ガベージコレクション処理を行うブロック(指定された領域)を指定する情報である。つまり、旧ブロック情報61は、ガベージコレクション処理が行われる前のファイルデータが記憶されていたブロックのアドレス情報である。なお、旧ブロック情報61は、全体アドレスマップ記憶部80に記憶されている全体アドレスマップ情報におけるガベージコレクション処理対象となる領域に対応したブロックアドレス情報であり、カード制御部30によってアドレスマップ領域60に転送される。
【0036】
旧ページ情報62は、旧ブロック情報61によって指定されたブロックにおいて、各ページに有効データがあるか否かを示す情報である。旧ページ情報62は、旧ブロック情報61と同様に、全体アドレスマップ記憶部80に記憶されている全体アドレスマップ情報におけるガベージコレクション処理対象となる領域に対応したページ情報であり、カード制御部30によってアドレスマップ領域60に転送される。
つまり、旧ブロック情報61、及び旧ページ情報62は、ガベージコレクション処理が行われる前の古いアドレスマップ情報(管理情報)である。
【0037】
これに対して、新ブロック情報63、及び新ページ情報64は、ガベージコレクション処理が行われた後の新しいアドレスマップ情報(管理情報)である。新ブロック情報63、及び新ページ情報64は、コントロールロジック部13のアドレスマップ制御部132によって、アドレスマップ領域60に記憶される。
なお、新ブロック情報63は、ガベージコレクション処理が行われた後のブロックアドレス情報を示し、新ページ情報64は、新ブロック情報63によって指定されたブロックにおいて、各ページに有効データがあるか否かを示す情報である。
【0038】
ユーザデータ領域70には、不揮発性記憶部11のガベージコレクション処理対象となる領域における有効データが一時記憶される。なお、ユーザデータ領域70は、1ブロック分以上のデータを記憶する容量を有している。
【0039】
また、図2において、コントロールロジック部13は、ガベージコレクション制御部131及びアドレスマップ制御部132を備えている。
ガベージコレクション制御部131は、カード制御部30の指示に応じて、不揮発性記憶部11の指定された領域(例えば、指定された1ブロック)のガベージコレクション処理を実行する。ここで、ガベージコレクション処理において、ガベージコレクション制御部131は、アドレスマップ領域60に記憶されるアドレスマップ情報に基づいて、不揮発性記憶部11の指定された領域における有効データをユーザデータ領域70に記憶させる制御を行う。その後に、ガベージコレクション制御部131は、ユーザデータ領域70に記憶された有効データを、不揮発性記憶部11の連続したページに順次書き込む制御を行う。なお、有効データを書き込むページは、不揮発性記憶部11の指定された領域(指定された1ブロック)内のページでもよいし、別のブロック内のページでもよい。また、ガベージコレクション制御部131は、不揮発性記憶部11の指定された領域のデータを消去する制御を行う。さらに、ガベージコレクション制御部131は、ガベージコレクション処理を実行した後に、ガベージコレクション処理が終了したことを示す終了情報(例えば、終了フラグ)をカード制御部30に対して出力する。
【0040】
アドレスマップ制御部132は、アドレスマップ制御処理を実行する。具体的に、アドレスマップ制御部132は、カード制御部30の指示によって、全体アドレスマップ記憶部80から転送されたアドレスマップ情報(旧ブロック情報61及び旧ページ情報62)をアドレスマップ領域60に記憶させる制御を行う。また、アドレスマップ制御部132は、ガベージコレクション処理後に、新しいアドレスマップ情報(新ブロック情報63及び新ページ情報64)をアドレスマップ領域60に記憶させる制御を行う。
さらに、アドレスマップ制御部132は、ガベージコレクション処理によって変更されたアドレスマップ情報(管理情報)を出力する処理を実行する。つまり、アドレスマップ制御部132は、カード制御部30の要求に応じて、アドレスマップ領域60に記憶された新しいアドレスマップ情報(新ブロック情報63及び新ページ情報64)をカード制御部30及び記憶部20の全体アドレスマップ記憶部80に出力する制御を行う。
【0041】
図3は、本実施形態によるメモリカード1とホスト装置2の接続例を示す概略ブロック図である。この図において、図1と同じ構成には同一の符号を付してその説明を省略し、図1との相違点のみについて説明する。
この図における本実施形態では、メモリカード1は、ホスト装置2と接続され、データ処理システムとして適用される場合の例である。ホスト装置2は、メモリカード1に対してファイルデータの書き込み及び読み出しを行う。つまり、ホスト装置2は、例えば、メモリカード1の不揮発性記憶部11に対して、ファイルデータをセクタ単位で書き込み及び読み出しする。ここで、セクタとは、メモリカード1に対してファイルデータの書き込み及び読み出しに用いる予め定められた記録単位である。また、1セクタのデータサイズは、例えば、メモリカード1の不揮発性記憶部11におけるページサイズと等しいものとし、ここでは、512バイトとした例を説明する。
【0042】
また、ホスト装置2は、ホスト制御部21、ディスプレイ部23、外部メモリI/F部24、及びI/O(入出力)部25を備えている。なお、ホスト制御部21、ディスプレイ部23、外部メモリI/F部24、及びI/O(入出力)部25は、内部バス26を介して互いに接続されている。
ホスト制御部21は、ホスト装置2の各部の制御を行う。ホスト制御部21は、外部メモリI/F部24を介して、メモリカード1に記憶(記録)されたファイルデータの読み出し、及び書き込みを制御する。
【0043】
記憶部22は、ホスト装置2がデータ処理を行う際に使用するデータを一時記憶する。ディスプレイ部23は、データ処理した結果などを表示する。I/O部25は、各種信号及びデータの入出力を行う。
外部メモリI/F部24は、ホスト装置2とメモリカード1との間のデータ転送を行う。外部メモリI/F部24は、メモリカード1に対して、コマンド情報、データ(ファイルデータを含む)、及び制御信号を供給する。また、外部メモリI/F部24は、メモリカード1から出力されるデータ(ファイルデータを含む)、及びコマンド処理の終了情報やメモリカード1の状態情報などの情報を受信する。
【0044】
次に、本実施形態におけるメモリカード1及びフラッシュメモリ10の動作について説明する。
本実施形態の一例として、ホスト装置2からセクタデータの書き込みが要求された場合のメモリカード1における動作について、図4を参照して説明する。
図4は、本実施形態によるメモリカード1及びフラッシュメモリ10の処理を示すフローチャートである。この図において、フローチャートは、ホスト装置2の処理とメモリカード1の処理の2つを示す。
【0045】
まず、ホスト装置2は、ファイルデータ(セクタデータ)をメモリカード1に書き込む場合に、メモリカード1にファイルの書き込みコマンドを発行する(ステップS101)。つまり、ホスト装置2は、ファイルデータ(セクタデータ)を書き込むコマンド情報をメモリカード1に出力する。
【0046】
次に、ホスト装置2は、書き込みデータの転送を行う(ステップS102)。つまり、ホスト装置2は、ファイルデータ(セクタデータ)をメモリカード1に転送する。ホスト装置2は、ファイルデータ(セクタデータ)をメモリカード1に転送(出力)した後に、書き込みコマンドの終了情報がメモリカード1から出力されるまで待つ。
【0047】
次に、メモリカード1による処理に移り、メモリカード1は、書き込みデータを記憶部20に記憶させる(ステップS201)。つまり、まず、ホストI/F部39が、ホスト装置2から出力されたコマンド情報を受信して内部バス38を介してレジスタ部33に出力する。レジスタ部33は、コマンド情報を記憶する。また、ホストI/F部39が、ホスト装置2から転送された書き込みデータ(セクタデータ)を受信して内部バス38を介してデータバッファ部34に出力する。データバッファ部34は、ホストI/F部39から出力されたセクタデータを記憶する。次に、CPU36が、レジスタ部33に記憶されたコマンド情報を読み出す。さらに、CPU36は、読み出したコマンド情報に基づいて、データバッファ部34に記憶されたセクタデータを記憶部20に記憶させる制御を行う。これにより、記憶部20は、ホストI/F部39を介してホスト装置2から出力されたセクタデータを記憶する。
【0048】
次に、メモリカード1のカード制御部30は、全体アドレスマップ情報を参照する(ステップS202)。つまり、カード制御部30のCPU36が、全体アドレスマップ情報を記憶部20の全体アドレスマップ記憶部80から読み出して、全体アドレスマップ情報に基づいて書き込みを行うブロックを指定する。そして、カード制御部30のCPU36が、書き込みを行うブロックに対応するアドレスマップ情報を、記憶部20の全体アドレスマップ記憶部80から読み出して、書き込みを行うブロックのページ(セクタ)の利用状況を確認する。なお、全体アドレスマップ情報は、メモリカード1に電力が供給された際に、カード制御部30のCPU36によって記憶部20に記憶されている。
【0049】
次に、CPU36は、ガベージコレクション処理の必要か否かを判定する(ステップS203)。つまり、CPU36は、例えば、全体を書き換え可能なブロックが存在しない場合に、ガベージコレクション処理の必要があると判定し、処理をステップS204に進める。また、CPU36は、例えば、全体を書き換え可能なブロックが存在する場合に、ガベージコレクション処理の必要がないと判定し、処理をステップS207に進める。なお、CPU36は、ガベージコレクション処理の必要か否かを、全体アドレスマップ記憶部80から読み出したアドレスマップ情報に基づいて判定する。
【0050】
次に、ステップS204の処理において、CPU36は、ガベージコレクション処理を行うブロックを指定し、指定したブロックのアドレスマップ情報をフラッシュメモリ10に転送する。つまり、CPU36は、指定したブロックのガベージコレクション処理をフラッシュメモリ10に処理させる。
なお、本実施形態では、指定された領域を1つのブロックとし、ガベージコレクション処理後の有効データも同一のブロックに書き込む場合の例を説明する。
【0051】
次に、フラッシュメモリ10は、ガベージコレクション処理を実行する(ステップS205)。つまり、コントロールロジック部13は、アドレスマップ情報に基づいて、指定されたブロックにおける有効データを記憶部12に記憶させる。その後に、コントロールロジック部13は、指定されたブロックのデータを不揮発性記憶部11に消去させる。そして、コントロールロジック部13は、指定されたブロックにおける連続したページに、記憶部12に記憶された有効データを書き込む処理を実行する。
【0052】
さらに具体的に、フラッシュメモリ10によるガベージコレクション処理を説明すると、ステップS204の処理によって、コントロールロジック部13は、カード制御部30のCPU36から転送されたアドレスマップ情報を記憶部12のアドレスマップ領域60に記憶させる。つまり、コントロールロジック部13は、指定されたブロックのアドレスマップ情報(旧ブロック情報61及び旧ページ情報62)を記憶部12のアドレスマップ領域60に記憶させる。
【0053】
次に、コントロールロジック部13は、不揮発性記憶部11の指定されたブロックの有効データを記憶部12に退避させる(ステップS301)。つまり、コントロールロジック部13は、記憶部12のアドレスマップ領域60に記憶されているアドレスマップ情報(旧ブロック情報61及び旧ページ情報62)に基づいて、指定されたブロックの有効データを記憶部12のユーザデータ領域70に転送して記憶させる。なお、有効データは、旧ページ情報62によってページ単位に判定される。
【0054】
また、旧ブロック情報61には、指定されたブロック(ガベージコレクション処理対象のブロック)のアドレスが含まれている。また、コントロールロジック部13は、指定されたブロックの有効データをユーザデータ領域70に退避させる際に、有効データをユーザデータ領域70の連続した領域に記憶させて、無効データの領域を削除してデータサイズを圧縮するコンパクション処理を行う。この処理は、例えば、無効データである場合に、ユーザデータ領域70の記憶位置を指定するアドレス情報を変更せずに、ユーザデータ領域70にデータを記憶させ、有効データである場合に、アドレス情報を変更してユーザデータ領域70にデータを記憶させる。これにより、有効データのみが、ユーザデータ領域70の連続した領域に記憶される。
【0055】
次に、フラッシュメモリ10は、指定されたブロックのデータを消去する(ステップS302)。つまり、コントロールロジック部13は、指定されたブロックのデータを不揮発性記憶部11に消去させる制御を行う。
【0056】
次に、フラッシュメモリ10は、記憶部12に退避させた有効データを指定されたブロックに書き込む(ステップS303)。つまり、コントロールロジック部13は、記憶部12のユーザデータ領域70に退避させた有効データをページ単位で読み出し、不揮発性記憶部11の指定されたブロックにページ単位で書き込む制御を行う。この際に、コントロールロジック部13は、指定されたブロックの連続したページに順次有効データを書き込む。なお、指定されたブロックの連続したページは、例えば、指定されたブロックにおける最下位アドレスのページから連続したページである。
【0057】
次に、フラッシュメモリ10は、指定されたブロックの新アドレスマップ情報を記憶部12に記憶させる(ステップS304)。つまり、アドレスマップ制御部132が、記憶部12のアドレスマップ領域60に記憶されているアドレスマップ情報を変更する。具体的には、アドレスマップ制御部132は、ガベージコレクション処理後のアドレスマップ情報(新ブロック情報63及び新ページ情報64)をアドレスマップ領域60に記憶させる。そして、アドレスマップ制御部132は、ガベージコレクション処理が終了したことを示す終了フラグを、カード制御部30のCPU36に対して出力する。
【0058】
次に、メモリカード1における処理に戻り、CPU36は、指定されたブロックの新アドレスマップ情報をフラッシュメモリ10から読み出して、全体アドレスマップ情報を更新(変更)する(ステップS206)。つまり、CPU36は、ガベージコレクション処理後のアドレスマップ情報を出力させる要求をフラッシュメモリ10に行い、フラッシュメモリ10のアドレスマップ制御部132は、アドレスマップ領域60に記憶されているガベージコレクション処理後のアドレスマップ情報(新ブロック情報63及び新ページ情報64)を出力する。CPU36は、フラッシュメモリ10から出力されたガベージコレクション処理後のアドレスマップ情報を記憶部20の全体アドレスマップ記憶部80に記憶させて、全体アドレスマップ情報を変更させる。
【0059】
次に、CPU36は、記憶部20に記憶されている書き込みデータを不揮発性記憶部11に書き込む(ステップS207)。なお、ガベージコレクション処理が行われた場合には、CPU36は、上述のガベージコレクション処理を行ったブロック(指定されたブロック)において、未使用領域となったページ(例えば、有効データのある最上ページアドレスの次のページ)に、記憶部20に記憶されている書き込みデータを順次書き込む制御を行う。
【0060】
次に、CPU36は、ステップS207における書き込み処理に伴う全体アドレスマップ情報の更新(変更)する(ステップS208)。なお、CPU36は、全体アドレスマップ情報の変更後に、ホスト装置2に対して、書き込みコマンドが終了したことを示す終了情報をホストI/F部39に出力させる。これにより、CPU36は、処理を終了させる。
【0061】
次に、ホスト装置2は、メモリカード10によって出力された書き込みコマンドの終了情報を受信する(ステップS103)。これにより、ホスト装置2は、書き込みコマンドの処理を終了させる。
【0062】
なお、上述した図4に示される実施形態では、指定された領域を1つのブロックとし、ガベージコレクション処理後の有効データも同一のブロックに書き込む場合の例を説明したが、不揮発性記憶部11に未書き込みのブロックがある場合には、以下のような処理を行ってもよい。例えば、ガベージコレクション処理後の有効データを指定されたブロックとは異なる別のブロックに書き込む処理を行ってもよい。つまり、コントロールロジック部13は、アドレスマップ情報に基づいて、指定されたブロックにおける有効データを記憶部12に記憶させる。その後に、コントロールロジック部13は、指定されたブロックとは異なるブロックにおける連続したページに、記憶部12に記憶された有効データを書き込む処理を実行する。この場合、新ブロック情報63には、指定されたブロックとは異なるブロックを示すアドレス情報が含まれていると共に、指定されたブロック全体を無効とする情報が含まれてもよい。
また、この場合には、コントロールロジック部13は、ガベージコレクション処理において、指定されたブロックのデータを不揮発性記憶部11に消去させる処理を実行してもよいし、実行しなくてもよい。但し、この消去させる処理を実行させない場合には、ガベージコレクション処理とは別に、コントロールロジック部13又はカード制御部30が、無効にされたブロックを消去する処理を行う必要がある。
【0063】
以上のように、本実施形態によるフラッシュメモリ10は、記憶部12(一時記憶部)が、不揮発性記憶部11の指定されたブロックにおける有効データを一時記憶する。そして、コントロールロジック部13(ロジック部)が、指定されたブロックに対するガベージコレクション処理、及びガベージコレクション処理によって変更されたアドレスマップ情報を出力する処理を実行する。また、ガベージコレクション処理において、コントロールロジック部13は、アドレスマップ情報(管理情報)に基づいて、指定されたブロック(領域)における有効データを記憶部12に記憶させる。その後、コントロールロジック部13は、記憶部12に記憶された有効データを連続したページに書き込む。つまり、フラッシュメモリ10が備えるコントロールロジック部13が、ガベージコレクション処理を行い、カード制御部30は、フラッシュメモリ10から出力されるアドレスマップ情報に基づいて、アドレスマップ情報の変更を行う。
【0064】
これにより、フラッシュメモリ10では、ガベージコレクション処理の際に必要なデータ転送が、コントロールロジック部13による制御によって、フラッシュメモリ10内部で行われる。そのため、カード制御部30が、特許文献1に記載されているような複数回のコマンド処理(データの読み出し回数分及びデータの書き込み回数分)によりフラッシュメモリ10に対する連続した読み出し及び書き込みを制御する必要がない。つまり、フラッシュメモリ10では、カード制御部30が、ガベージコレクション処理を指示する1回のコマンド処理により、ガベージコレクション処理を実行することができる。よって、メモリカード1は、メモリカード1のカード制御部30による処理負荷を軽減することができる。
また、上述のように、1回のコマンド処理により、ガベージコレクション処理の際に必要なデータ転送が行われるため、カード制御部30とフラッシュメモリ10との間におけるコマンド情報及びデータの転送回数を低減できる。したがって、メモリカード1は、ガベージコレクション処理の処理時間を短縮することができる。
また、カード制御部30による処理負荷が軽減されるため、メモリカード1の消費電力を低減することができる。
【0065】
なお、本発明の実施形態によれば、フラッシュメモリ10(半導体記憶装置)は、予め定められたデータサイズ領域を示すページ単位でデータを書き込み可能な不揮発性記憶部11と、不揮発性記憶部11の指定された領域であって、複数のページを含む該指定された領域における有効データを一時記憶する記憶部12(一時記憶部)と、不揮発性記憶部11のページに有効なデータ(有効データ)があるか否かを示すアドレスマップ情報(管理情報)に基づいて、指定された領域における有効データを記憶部12に記憶させた後に、記憶部12に記憶された有効データを連続したページに書き込むガベージコレクション処理、及びガベージコレクション処理によって変更されたアドレスマップ情報を出力する処理を実行するコントロールロジック部13(ロジック部)とを備える。
これにより、フラッシュメモリ10は、メモリカード1のカード制御部30によるガベージコレクション処理による処理負荷を軽減し、ガベージコレクション処理の処理時間を短縮することができる。
【0066】
また、記憶部12(一時記憶部)は、アドレスマップ情報(管理情報)を記憶し、コントロールロジック部13(ロジック部)は、ガベージコレクション処理によって変更されたアドレスマップ情報を記憶部12に記憶させる処理を実行する。
これにより、フラッシュメモリ10の内部に、アドレスマップ情報を記憶させるため、ガベージコレクション処理中に、フラッシュメモリ10は、記憶部20に記憶されているアドレスマップ情報を、カード制御部30を介して読み出す必要がなくなる。したがって、フラッシュメモリ10は、ガベージコレクション処理の処理時間をさらに短縮することができる。
【0067】
また、アドレスマップ情報(管理情報)は、指定された領域におけるページに有効なデータ(有効データ)があるか否かを示す部分アドレスマップ情報(部分管理情報)である。
これにより、情報量が減るため、アドレスマップ情報の転送による時間を短縮することができる。したがって、フラッシュメモリ10は、メモリカード1のカード制御部30によるガベージコレクション処理による処理負荷をさらに軽減し、ガベージコレクション処理の処理時間をさらに短縮することができる。また、記憶部12の記憶容量を低減することができるため、フラッシュメモリ10のチップサイズを縮小することができる。
【0068】
また、ガベージコレクション処理は、アドレスマップ情報に基づいて、指定された領域における有効データを記憶部12(一時記憶部)に記憶させた後に、指定された領域のデータを不揮発性記憶部11に消去させ、指定された領域における連続したページに、記憶部12に記憶された有効データを書き込む処理である。
これにより、フラッシュメモリ10は、不揮発性記憶部11の無効になった領域を開放し、有効データが記憶された領域の断片化を解消して、未使用連続領域を効率よく増やすことができる。
【0069】
ガベージコレクション処理は、アドレスマップ情報に基づいて、指定された領域における有効データを記憶部12(一時記憶部)に記憶させた後に、指定された領域とは異なる領域における連続したページに、記憶部12に記憶された有効データを書き込む処理である。
これにより、コントロールロジック部13は、指定された領域とは異なる領域にガベージコレクション処理のデータを書き込むため、指定された領域をガベージコレクション処理中に消去しなくてもよい。そのため、フラッシュメモリ10は、ガベージコレクション処理の処理時間をさらに短縮することができる。
【0070】
また、本発明の実施形態によれば、メモリカード1(記憶媒体)は、上述のフラッシュメモリ10(半導体記憶装置)と、不揮発性記憶部11の全領域におけるアドレスマップ情報を示す全体アドレスマップ情報(全体管理情報)を記憶する記憶部20(管理情報記憶部)と、記憶部20に記憶されている全体アドレスマップ情報に基づいて指定した上述の指定された領域におけるガベージコレクション処理をフラッシュメモリ10に実行させ、フラッシュメモリ10から出力されるガベージコレクション処理によって変更されたアドレスマップ情報に基づいて、記憶部20に記憶されている全体アドレスマップ情報を変更するカード制御部30(制御部)とを備える。
これにより、メモリカード1は、ガベージコレクション処理を指示するカード制御部30による1回のコマンド処理により、ガベージコレクション処理を実行することができる。また、この1回のコマンド処理により、ガベージコレクション処理の際に必要なデータ転送が行われるため、カード制御部30とフラッシュメモリ10との間におけるコマンド情報及びデータの転送回数を低減できる。したがって、メモリカード1は、カード制御部30によるガベージコレクション処理による処理負荷を軽減し、ガベージコレクション処理の処理時間を短縮することができる。
【0071】
また、カード制御部30(制御部)は、ガベージコレクション処理をフラッシュメモリ10(半導体記憶装置)に実行させる前に、記憶部20(管理情報記憶部)に記憶されているアドレスマップ情報(管理情報)をフラッシュメモリ10に出力する。
これにより、記憶部20に記憶されているアドレスマップ情報に基づいて、ガベージコレクション処理を実行するため、フラッシュメモリ10は、ガベージコレクション処理の際に、自身でアドレスマップ情報を生成する必要がなく、ガベージコレクション処理の処理時間を短縮することができる。そのため、メモリカード1は、ガベージコレクション処理の処理時間をさらに短縮することができる。
【0072】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。上記の実施形態において、ファイルデータの書き込みに用いる記録単位であるセクタのサイズと、不揮発性記憶部11の一度に書き込みできるデータサイズ領域であるページのサイズとが等しい(512バイト)である場合の形態を説明したが、これに限定されるものではない。例えば、セクタのサイズが、ページのサイズより大きい形態でもよいし、セクタのサイズが、ページのサイズより小さい形態でもよい。
【0073】
また、上記の実施形態において、ガベージコレクション処理を行う際に、カード制御部30によって指定される領域を、データの消去単位である1ブロックとする形態を説明したが、複数ブロックが指定される形態でもよい。また、この場合、複数のブロックに記憶されている有効データを、指定されたブロック数より少数のブロックに圧縮することも可能である。例えば、2つのブロックに記憶された有効データを1つのブロックにまとめて書き込みことが可能になる。そのため、このような場合には、ガベージコレクション処理によって、より多くの未使用連続領域を確保することができる。
【0074】
また、上記の実施形態において、アドレスマップ領域60には、1ブロック分のアドレスマップ情報を記憶させる形態を説明したが、2つ以上のブロック分のアドレスマップ情報を記憶させる形態でもよいし、全体アドレスマップ情報を記憶させる形態でもよい。すなわち、記憶部12が、不揮発性記憶部11の全領域におけるアドレスマップ情報(管理情報)を示す全体アドレスマップ情報(全体管理情報)を記憶してもよい。なお、この場合には、記憶部20を備えない形態でもよい。
【0075】
また、上記の実施形態において、メモリカード1は、フラッシュメモリ10を1つ備える形態を説明したが、複数のフラッシュメモリ10を備える形態でもよい。メモリカード1が複数のフラッシュメモリ10を備える場合、1つのフラッシュメモリ10においてガベージコレクション処理を行っている間に、他のフラッシュメモリ10にアクセスすることができる。そのため、メモリカード1の処理速度を向上することができる。
特に、この場合において、上述したように記憶部12が、不揮発性記憶部11の全体アドレスマップ情報を記憶し、記憶部20を備えない形態では、フラッシュメモリ10単独でガベージコレクション処理を行うことができる。これにより、カード制御部30は、ガベージコレクション処理の実行コマンドをフラッシュメモリ10aに送付するだけで処理を完了できるため、内部バス15におけるデータの転送量を大幅に削減することができる。
また、図2に示される内部バス15の代わりに、無線によるインターフェースを用いてデータを転送する形態でもよい。この場合、無線インターフェースを追加したフラッシュメモリ10を複数備えて、3次元に配置してもよい。
【0076】
また、上記の実施形態において、フラッシュメモリ10は、アドレスマップ領域60を備えず、コントロールロジック部13が、カード制御部30を介さずに、記憶部20に記憶されているアドレスマップ情報を読み出して使用する形態でもよい。
【0077】
また、上記の実施形態において、不揮発性記憶部11にフラッシュEEPROMを用いる形態を説明したが、フラッシュ型でないEEPROMなどの他の書き換え可能な不揮発性メモリを用いる形態でもよい。
また、上記の実施形態において、記憶部12及び記憶部20は、PSRAMを用いる形態を説明したが、SRAMを用いる形態でもよいし、他の揮発性メモリを用いる形態でもよい。
【0078】
また、上記の実施形態において、記憶媒体の例として、メモリカード1に適用する例を説明したが、これに限定されるものではなく、例えば、USB(Universal Serial Bus)メモリやSDメモリカードなどに適用する形態でもよい。
また、メモリカード1とホスト装置2との間のインターフェースは、上記の実施形態に限定されるものではなく、他のインターフェースを用いる形態でもよい。
【符号の説明】
【0079】
1…メモリカード、2…ホスト装置、10…フラッシュメモリ、11…不揮発性記憶部、12,20,22…記憶部、13…コントロールロジック部、14,15,26,38…内部バス、21…ホスト制御部、23…ディスプレイ部、24…外部メモリI/F部、25…I/O部、30…カード制御部、31…シリアルI/F部、32…パラレルI/F部、33…レジスタ部、34…データバッファ部、35…ECC部、36…CPU、37…OSCコントローラ部、39…ホストI/F部、40…発振子、50…スイッチ、60…アドレスマップ領域、61…旧ブロック情報、62…旧ページ情報、63…新ブロック情報、64…新ページ情報、70…ユーザデータ領域、80…全体アドレスマップ記憶部、131…ガベージコレクション制御部、132…アドレスマップ制御部

【特許請求の範囲】
【請求項1】
予め定められたデータサイズ領域を示すページ単位でデータを書き込み可能な不揮発性記憶部と、
前記不揮発性記憶部の指定された領域であって、複数の前記ページを含む該指定された領域における有効データを一時記憶する一時記憶部と、
前記不揮発性記憶部の前記ページに有効なデータがあるか否かを示す管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記一時記憶部に記憶された前記有効データを連続した前記ページに書き込むガベージコレクション処理、及び前記ガベージコレクション処理によって変更された前記管理情報を出力する処理を実行するロジック部と
を備えることを特徴とする半導体記憶装置。
【請求項2】
前記一時記憶部は、前記管理情報を記憶し、
前記ロジック部は、
前記ガベージコレクション処理によって変更された前記管理情報を前記一時記憶部に記憶させる処理を実行する
ことを特徴とする請求項1に記載の半導体記憶装置。
【請求項3】
前記管理情報は、前記指定された領域における前記ページに有効なデータがあるか否かを示す部分管理情報である
ことを特徴とする請求項1又は請求項2に記載の半導体記憶装置。
【請求項4】
前記ガベージコレクション処理は、
前記管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記指定された領域のデータを前記不揮発性記憶部に消去させ、前記指定された領域における連続した前記ページに、前記一時記憶部に記憶された前記有効データを書き込む処理である
ことを特徴とする請求項1から請求項3のいずれか1項に記載の半導体記憶装置。
【請求項5】
前記ガベージコレクション処理は、
前記管理情報に基づいて、前記指定された領域における有効データを前記一時記憶部に記憶させた後に、前記指定された領域とは異なる領域における連続した前記ページに、前記一時記憶部に記憶された前記有効データを書き込む処理である
ことを特徴とする請求項1から請求項3のいずれか1項に記載の半導体記憶装置。
【請求項6】
前記一時記憶部が、前記不揮発性記憶部の全領域における前記管理情報を示す全体管理情報を記憶することを特徴とする請求項2に記載の半導体記憶装置。
【請求項7】
請求項1に記載の半導体記憶装置と、
前記不揮発性記憶部の全領域における前記管理情報を示す全体管理情報を記憶する管理情報記憶部と、
前記管理情報記憶部に記憶されている全体管理情報に基づいて指定した前記指定された領域における前記ガベージコレクション処理を前記半導体記憶装置に実行させ、前記半導体記憶装置から出力される前記ガベージコレクション処理によって変更された前記管理情報に基づいて、前記管理情報記憶部に記憶されている前記全体管理情報を変更する制御部と
を備えることを特徴とする記憶媒体。
【請求項8】
前記制御部は、
前記ガベージコレクション処理を前記半導体記憶装置に実行させる前に、前記管理情報記憶部に記憶されている前記管理情報を前記半導体記憶装置に出力する
ことを特徴とする請求項7に記載の記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−128900(P2012−128900A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−278481(P2010−278481)
【出願日】平成22年12月14日(2010.12.14)
【出願人】(598045058)株式会社サムスン横浜研究所 (294)
【Fターム(参考)】