説明

不揮発性半導体記憶装置及びデータ処理システム

【課題】キャッシュ機能を用いないで、不揮発性半導体記憶装置における小容量書込みの高速化を図る。
【解決手段】本発明の代表的な実施の形態に係る不揮発性半導体記憶装置(1)は、ホストシステム(2)に接続可能とされ、不揮発性記憶部(11)と、その動作制御を行うコントローラ(12)とを含む。上記コントローラは、論理アドレスと物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定し、上記不揮発性記憶部における対応領域にデータを書込むことで、バッファメモリへのデータ退避を不要とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性半導体記憶装置及びそれを備えたデータ処理システムに係り、不揮発性半導体記憶装置における小容量書込みの高速化技術に関する。
【背景技術】
【0002】
特許文献1には、不揮発性メモリの書き換え技術が記載されている。それによれば、フラッシュメモリの各セクタを順次処理対象として書込み済みデータの消去及びダウンロードデータの書込みを繰り返すことによりフラッシュメモリの書き換え処理を実行するに際し、各セクタの書込み済みデータのチェックサムを示すチェックサムテーブルをフラッシュメモリに記憶しておく。各セクタに対応する記憶容量単位で作成されたダウンロードデータのチェックサムテーブルを取得して、各セクタに対応するチェックサムテーブルとチェックサムテーブルとを比較し、値が一致すると判定されたセクタを処理対象とした前記消去及び書込みの実行を省略して、書き換え処理が実行される毎にチェックサムテーブルを更新する。
【0003】
特許文献2には、非選択データの冗長な書込み操作を不要とでき、ページの配列を書き換えに効率の良い状態に最適化することが可能な記憶装置が記載されている。それによれば、外部との入出力インタフェース回路には内部バスBSを介してNAND型フラッシュメモリよりなる大容量のメインメモリと、強誘電体メモリよりなる比較的小容量の補助メモリが接続されている。さらにメインメモリは内部が高並列化されており、32kBのデータ群が単位ページとして同時にアクセスされ、内部バスBSに入出力転送される。装置内部にはページを管理単位としたアドレステーブルが構築されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−199985号公報
【特許文献2】特開2006−236304号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
不揮発性半導体記憶装置の一例として、フラッシュSSD(Solid State Drive)を挙げることができる。フラッシュSSDは、半導体記憶素子であるフラッシュメモリを使用した記憶装置であり、ハードディスクドライブの機能をエミュレートする仕様であり、ハードディスクドライブと同等のインタフェースを持つ。デバイス内には、フラッシュメモリの他、専用のコントローラなどが組み込まれ、利用上はハードディスクドライブと大差はないと考えられる。フラッシュSSD内のフラッシュメモリには、NAND型が用いられる。フラッシュSSDは、ハードディスクドライブと比較して、小容量の高速アクセスが可能という特徴があり、それはフラッシュSSDの性能を表す重要な指標となっている。小容量の高速アクセスは、NAND型のフラッシュメモリよりも高速アクセス可能なDRAM(ダイナミック・ランダム・アクセス・メモリ)のような揮発性メモリに一時的にデータを保存するキャッシュ機能を用いて実現される。
【0006】
しかしながら、NAND型フラッシュメモリにおけるキャッシュは、DRAMなどの揮発性メモリであるため、不所望な電源遮断により、キャッシュ内のデータが消失するおそれがある。従って、フラッシュSSDの用途によっては、キャッシュ機能を用いないで、小容量書込みの高速化を図ることが強く望まれる。
【0007】
また、従来のフラッシュSSDにおいては、NAND型フラッシュメモリの消去単位やプログラム(書込み)単位毎に論理アドレスを管理している。論理アドレスの単位はセクタとされる。プログラム(書込み)単位は、「ページ」とされ、一つのページは、複数のセクタで構成される。このため、ホストシステムからフラッシュSSD内のNAND型フラッシュメモリに1セクタ分のデータを書込む場合には、当該セクタを含むページのデータがNAND型フラッシュメモリからバッファメモリに読出され、このバッファメモリ内の該当するセクタのデータが更新される。このデータ更新後にバッファメモリ内のデータが、NAND型フラッシュメモリ内の別のアドレスに書込まれ、その書込みが完了した後に、論理アドレスと物理アドレスの変換を行うテーブルが更新される。
【0008】
しかしながら、上記のように、ホストシステムからフラッシュSSD内のNAND型フラッシュメモリに1セクタ分のデータを書込む場合に、当該セクタを含むページのデータがNAND型フラッシュメモリからバッファメモリに読出す必要があるため、小容量の書込みが低速化するおそれがある。
【0009】
本発明の目的は、キャッシュ機能を用いないで、不揮発性半導体記憶装置における小容量書込みの高速化を図るための技術を提供する。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0011】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0012】
すなわち、ホストシステムに接続可能とされ不揮発性半導体記憶装置は、不揮発性記憶部と、その動作制御を行うコントローラとを含む。上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定する。そして上記コントローラは、上記判定結果に基づいて、上記不揮発性記憶部における対応領域に、上記ホストシステムからの書込み指示に係るデータを書込む。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0014】
すなわち、キャッシュ機能を用いないで、不揮発性半導体記憶装置における小容量書込みの高速化を図ることができる。
【図面の簡単な説明】
【0015】
【図1】本発明にかかるデータ処理システムの構成例ブロック図である。
【図2】図1に示されるデータ処理システムに含まれるフラッシュSSDで参照されるテーブルの説明図である。
【図3】図1に示されるデータ処理システムに含まれるフラッシュSSDにおけるフラッシュアレイのデータ構成についての説明図である。
【図4】図1に示されるデータ処理システムに含まれるフラッシュSSDにおけるライト処理のフローチャートである。
【図5】図4に示されるライト処理のフローチャートにおける主要部の詳細を示すフローチャートである。
【図6】図4に示されるライト処理のフローチャートにおける主要部の詳細を示すフローチャートである。
【図7】図4に示されるライト処理のフローチャートにおける主要部の詳細を示すフローチャートである。
【図8】ブロック単位に管理する領域の論物変換テーブルの説明図である。
【図9】消去可能PBAテーブルの説明図である。
【図10】ページ単位に管理する領域の論物変換テーブルの説明図である。
【図11】書込み可能ページテーブルの説明図である。
【図12】セクタ単位に管理する領域の論物変換テーブルの説明図である。
【図13A】ガベージコレクションをリセット処理毎に実行する場合のフローチャートである。
【図13B】ガベージコレクションをリセット処理毎に実行する場合のフローチャートである。
【図14】本発明にかかるデータ処理システムの別の構成例ブロック図である。
【図15A】図14に示されるデータ処理システムで行われるガベージコレクションのフローチャートである。
【図15B】図14に示されるデータ処理システムで行われるガベージコレクションのフローチャートである。
【図16】「ブロックより小さい単位で論物変換する領域」に書込むための領域が不足する場合のガベージコレクションのフローチャートである。
【図17】消去回数カウント値テーブルの説明図である。
【図18】図17に示される消去回数カウント値テーブルを用いたガベージコレクションのフローチャートである。
【発明を実施するための形態】
【0016】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0017】
〔1〕本発明の代表的な実施の形態に係る不揮発性半導体記憶装置(1)は、ホストシステム(2)に接続可能とされ、不揮発性記憶部(11)と、その動作制御を行うコントローラ(12)とを含む。上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定する。そして上記コントローラは、上記判定結果に基づいて、上記不揮発性記憶部における対応領域に、上記ホストシステムからの書込み指示に係るデータを書込む。
【0018】
ここで従来装置でのデータ書込みにおいてバッファメモリへのデータ退避が必要となるのは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位で管理していないことに起因する。この結果、例えばホストシステムから1セクタ分のデータを書込む場合には、当該セクタを含むページのデータをバッファメモリに読出し、このバッファメモリにおいて、該当する1セクタ分のデータを更新する必要がある。
【0019】
これに対して、本発明の代表的な実施の形態に係る不揮発性半導体記憶装置によれば、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とが判定され、その判定結果に基づいて、上記データの上記不揮発性記憶部における書込み先が決定される。このように上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記不揮発性記憶部における書込み先として適切な領域が決定されることにより、バッファメモリへのデータ退避が不要とされるので、ホストシステムから不揮発性半導体記憶装置への小容量書込みの高速化を図ることができる。また、このような小容量書込みの高速化は、DRAM等のキャッシュ機能を用いるものではないので、キャッシュ内のデータが不所望な電源遮断により消失することを心配する必要もない。
【0020】
〔2〕上記〔1〕において、上記不揮発性記憶部の消去単位をブロックとし、上記不揮発性記憶部の書込み単位をページとし、上記ホストシステムからの書込み単位をセクタとするとき、上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ブロック単位と、上記ページ単位と、上記セクタ単位とに分けて管理することができる。
【0021】
〔3〕上記〔2〕において、上記不揮発性記憶部には、上記ブロック単位での管理に対応する第1領域と、上記ページ単位での管理に対応する第2領域と、上記セクタ単位での管理に対応する第3領域とを形成することができる。このとき上記コントローラは、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより大きい場合には上記第1領域に上記データを書込む。また上記コントローラは、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより小さく、且つ、上記ページのサイズより大きい場合には上記第2領域に上記データを書込む。さらに上記コントローラは、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより小さく、且つ、上記ページのサイズより小さい場合には上記第3領域に上記データを書込む。
【0022】
〔4〕上記〔3〕において、上記コントローラは、上記第2領域に対応するブロック又は上記第3領域に対応するブロックにおける有効データを別の領域に移動することによって、上記第2領域又は上記第3領域の空きを増やすためのガベージコレクション処理を実行するように構成することができる。
【0023】
〔5〕上記〔4〕において、リセット処理毎に上記ガベージコレクション処理を実行させることができる(図13A,図13B)。
【0024】
〔6〕上記〔4〕において、上記フラッシュメモリとの間で信号のやり取りを可能とするバスがアイドル状態のときに上記ガベージコレクション処理を実行させることができる(図15A,図15B)。
【0025】
〔7〕上記〔4〕において、上記第2領域又は上記第3領域の書込み可能ページ数が所定数よりも小さい場合に上記ガベージコレクション処理を実行させることができる(図16)。
【0026】
〔8〕本発明の代表的な実施の形態に係るデータ処理システム(100)は、不揮発性半導体記憶装置(1)と、上記不揮発性半導体記憶装置にアクセス可能なホストシステム(2)とを含む。上記不揮発性半導体記憶装置は、不揮発性記憶部(11)と、その動作制御を行うコントローラ(12)とを含む。上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定し、それに基づいて、上記不揮発性記憶部における対応領域に、上記ホストシステムからの書込み指示に係るデータを書込む。
【0027】
上記の構成のデータ処理システムによれば、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とが判定され、その判定結果に基づいて、上記データの上記不揮発性記憶部における書込み先が決定される。このように上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記不揮発性記憶部における書込み先として適切な領域が決定されることにより、バッファメモリへのデータ退避が不要とされるので、ホストシステムから不揮発性半導体記憶装置への小容量書込みの高速化を図ることができる。また、このような小容量書込みの高速化は、DRAM等のキャッシュ機能を用いるものではないので、キャッシュ内のデータが不所望な電源遮断により消失することを心配する必要もない。
【0028】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0029】
《実施の形態1》
図1には、本発明にかかるデータ処理システムが示される。図1に示されるデータ処理システム100は、フラッシュSSD1と、このフラッシュSSD1にアクセス可能なホストシステム(単に「ホスト」という)2とを含む。
【0030】
ホスト2は、特に制限されないが、携帯して利用できるコンピュータシステム(モバイルPC)や、デジタルカメラとされる。このホスト2には、端子を介してフラッシュSSD1が結合されている。
【0031】
フラッシュSSD1は、フラッシュメモリ11、コントローラ12、及び外部RAM13を含み、ホスト2によってリード/ライト可能とされる。フラッシュメモリ11、コントローラ12、及び外部RAM13は、それぞれ公知の半導体集積回路製造技術により、例えば単結晶シリコン基板などの一つの半導体基板に形成されている。
【0032】
フラッシュメモリ11は、特に制限されないが、NAND型とされ、バッファ111と、フラッシュアレイ112とを含む。フラッシュアレイ112へのデータ書込みや、フラッシュアレイ112からのデータ読出しは、バッファ111を介して行われる。フラッシュアレイ112に対する書込み単位(「ページ」という)は、例えば図3に示されるように、2kB+64Bとされ、消去単位(「ブロック」という)は64ページとなっている。また、ホスト2からの書込みの最小単位(「セクタ」という)は、512Bとなっている。尚、セクタ、ページ、及びブロックのサイズは任意に設定することができる。フラッシュメモリ11とコントローラ12とは、バスBSを介して結合されている。
【0033】
コントローラ12は、ホスト2から与えられたコマンドを解釈してフラッシュメモリ11の動作制御を行う。このコントローラ12は、特に制限されないが、ROM(リード・オンリー・メモリ)121、RAM(ランダム・アクセス・メモリ)122、CPU(中央処理装置)123、ECC(エラー検出訂正)回路124、フラッシュインタフェース125、ページバッファ126、バッファインタフェース127、ホストインタフェース128を含む。ROM121には、CPU123で実行されるプログラムが格納される。CPU123は、ROM121内のプログラムを実行することによって、各部の動作制御を行う。RAM122は、CPU123でプログラムが実行される際の作業領域などに利用される。ECC回路124は、フラッシュメモリ1から読出されるデータに符号誤り(エラー)が発生した場合にそれを検出して訂正する。フラッシュインタフェース125は、CPU123、ECC回路124、バッファインタフェース127と、フラッシュメモリ11との間の情報のやり取りを仲介する。ページバッファ126は、フラッシュメモリ11の書込み単位に相当する記憶容量を有する。バッファインタフェース127は、フラッシュインタフェース125、ホストインタフェース128、外部RAM13と、ページバッファ126との間の情報のやり取りを仲介する。ホストインタフェース128は、CPU123、バッファインタフェース127と、ホスト2との間の情報のやり取りを仲介する。
【0034】
外部RAM13は、一定周期のクロック信号に同期して動作するSDRAMとされる。ホスト2は、特に制限されないが、コンピュータシステムとされる。ホスト2から書込まれるデータは、外部RAM13又はページバッファ126に一時格納され、フラッシュメモリ11のバッファ111を介して、フラッシュアレイ112に書込まれる。ここで、フラッシュアレイ112の各ブロックは、消去後に、データの書込みが可能になる。ホスト2がフラッシュメモリ11からデータを読み出す場合には、フラッシュアレイ112からバッファ111を介して、外部RAM13又はページバッファ126に格納され、その後、ホスト2に出力される。
【0035】
CPU123による演算処理においては、各種テーブルが参照される。上記各種テーブルとしては、例えば図2に示されるように、ブロック単位で管理する領域の論物変換テーブルTB1、消去可能PBAテーブルTB2、ページ単位で管理する領域の論物変換テーブルTB3、書込み可能ページテーブルTB4、セクタ単位で管理する領域の論物変換テーブルTB5を挙げることができる。
【0036】
図8には、ブロック単位で管理する領域の論物変換テーブルTB1の構成例が示される。
【0037】
ブロック単位で管理する領域の論物変換テーブルTB1は、ブロック単位で管理する領域の論理アドレスと物理アドレスとの対応を把握可能とするもので、そのサイズは2048Byteである。論物変換テーブルには、複数のエントリー(Entry−0〜Entry−1023)が形成される。Entry−0〜Entry−1023は、物理情報とされ、それぞれ1ブロックを管理するためのテーブル上の領域である。一つのEntryは、16bit(=2B)とされる。各Entryは、そのうちの一つが拡大して示されるように、PBAの格納領域(11bit)とフラッシュアレイのチップ(Chip)番号の格納領域(5bit)が形成される。PBAは0〜7FFhで示され、チップ番号は0〜1Fhで示される。論物変換テーブルの縦軸には、論理情報であるLBAが割り当てられる。Entryの添え字(0〜1023)に対応してLBAが昇順に割り当てられる。例えばEntry−0は、LBA=0から1エントリー分のサイズが割り当てられ、Entry−1は、Entry−0の次のアドレスから1Entry分のサイズが割り当てられる。例えばホスト2がフラッシュメモリ11にLBA0のデータを書込む場合、Entry−0の内容が書き替えられることで、論物変換テーブルが更新される。
【0038】
図9には、消去可能PBAテーブルTB2の構成例が示される。
【0039】
消去可能PBAテーブルTB2は、論理アドレスにかかるデータが格納されていないブロックがどのチップのどの物理アドレスにあるかを把握可能とするテーブルとされ、そのサイズは、2048Byte(バイト)とされる。消去可能PBAテーブルTB2には、複数のエントリー(Entry−0〜Entry−1023)が形成される。Entry−0〜Entry−1023は、物理情報とされ、それぞれ1ブロックを管理するためのテーブル上の領域である。一つのEntryは、16bit(=2B)とされる。各Entryは、そのうちの一つが拡大して示されるように、PBAの格納領域(11bit)とフラッシュアレイのチップ(Chip)番号の格納領域(5bit)が形成される。PBAは0〜7FFhで示され、チップ番号は0〜1Fhで示される。尚、消去可能PBAテーブルTB2は、論理アドレスにかかるデータ格納されていないブロックがどのチップのどの物理アドレスにあるかを把握するためのテーブルとされ、論理情報は不要であるため、LBAは割り当てられていない。
【0040】
図10には、ページ単位で管理する領域の論物変換テーブルTB3の構成例が示される。
【0041】
ページ単位で管理する領域の論物変換テーブルTB3は、ページ単位で管理する領域の論理アドレスと物理アドレスとの対応を把握可能とするもので、そのサイズは、2048Byteとされる。ページ単位で管理する領域の論物変換テーブルTB3には、複数のエントリー(Entry−0〜Entry−168)が形成される。Entry−0〜Entry−168は、それぞれ1ページを管理するためのテーブル上の領域である。一つのEntryは、70bitとされる。各Entryは、そのうちの一つが拡大して示されるように、LBAの格納領域(48bit)、PBAの格納領域(11bit)、ページアドレスを意味するページ番号の格納領域(6bit)、フラッシュアレイのチップ(Chip)番号の格納領域(5bit)が形成される。PBAは0〜7FFF FFFF FFFFhで示され、PBAは0〜7FFhで示され、ページ番号は0〜3Fhで示され、チップ番号は0〜1FFhで示される。
【0042】
図11には、書込み可能ページテーブルTB4の構成例が示される。
【0043】
書込み可能ページテーブルTB4は、書込み可能なページを把握可能とするテーブルであり、そのサイズは、2048Byteとされる。書込み可能ページテーブルTB4には、複数のエントリー(Entry−0〜Entry−681)が形成される。Entry−0〜Entry−681は、それぞれ1ページを管理するためのテーブル上の領域である。一つのEntryは、22bitとされる。各Entryは、そのうちの一つが拡大して示されるように、PBAの格納領域(11bit)、ページアドレスを意味するページ(Page)番号の格納領域(6bit)、フラッシュアレイのチップ(Chip)番号の格納領域(5bit)が形成される。PBAは0〜7FFhで示され、ページ番号は0〜3Fhで示され、チップ番号は0〜1FFhで示される。
【0044】
図12には、セクタ単位で管理する領域の論物変換テーブルTB5の構成例が示される。
【0045】
セクタ単位で管理する領域の論物変換テーブルTB5は、セクタ単位で管理する領域における論理アドレスと物理アドレスとの対応を把握可能とするもので、そのサイズは、2048Byteとされる。セクタ単位で管理する領域の論物変換テーブルTB5には、複数のエントリー(Entry−0〜Entry−168)が形成される。Entry−0〜Entry−168は、それぞれ1セクタを管理するためのテーブル上の領域である。一つのEntryは、72bitとされる。各Entryは、そのうちの一つが拡大して示されるように、LBAの格納領域(48bit)、PBAの格納領域(11bit)、ページアドレスを意味するページ(Page)番号の格納領域(6bit)、フラッシュアレイのチップ(Chip)番号の格納領域(5bit)、セクタ数(2bit)が形成される。LBAは0〜FFFF FFFF FFFFhで示され、PBAは0〜7FFhで示され、ページ番号は0〜3Fhで示され、チップ番号は0〜1FFhで示され、セクタ数は0〜3hで示される。
【0046】
上記ブロック単位で管理する領域の論物変換テーブルTB1、消去可能PBAテーブルTB2、ページ単位で管理する領域の論物変換テーブルTB3、書込み可能ページテーブルTB4、セクタ単位で管理する領域の論物変換テーブルTB5は、フラッシュアレイ112内に格納されており、フラッシュSSD1の初期化処理においてページバッファ126又は外部RAM13にロードされるようになっている。CPU123によるテーブル参照やテーブル情報の更新は、ページバッファ126又は外部RAM13にロードされたテーブルに対して行われる。そしてテーブル情報が更新された場合には、それに応じてフラッシュアレイ112内のテーブルが更新される。
【0047】
図4には、上記フラッシュSSD1におけるライト処理の流れが示される。
【0048】
ホスト2からフラッシュSSD1に対してライトコマンドが発行される(S301)。フラッシュSSD1内のCPU123は、上記ライトコマンドを解析して、書込み先LBA(Logical Block Address)と書込みセクタ数とを取得し(S302)、この書込みセクタ数を「ホストが指定したセクタ数」とする(S303)。ここで、「LBA」とは、ホスト側の論理的なブロックアドレスを意味する。書込み用データは、ホストインタフェース128及びバッファインタフェース127を介してページバッファ126に一時的に保存される。そしてCPU123は、書込みセクタ数がブロックサイズより大きいか否かの判別を行う(S304)。この判別において、書込みセクタ数がブロックサイズより大きい(Yes)と判断された場合には、上記ステップS302で取得された書込み先LBAにかかる書込みデータを、ブロックで管理する領域に書込むための処理がCPU123で実行される(S306)。また、上記ステップS304の判別において、書込みセクタ数がブロックサイズより小さい(No)と判断された場合には、書込みサイズがページサイズより大きいか否かの判別がCPU123で行われる(S305)。この判別において、書込みサイズがページサイズより大きい(Yes)と判断された場合には、上記ステップS302で取得された書込み先LBAをブロックで管理する領域に書込むための処理がCPU123で実行される(S307)。また上記ステップS305の判別において、書込みサイズがページサイズより小さい(No)と判断された場合には、上記ステップS302で取得された書込み先LBAをセクタ単位で管理する領域に書込むための処理がCPU123で実行される(S308)。尚、上記ステップS306、S307、S308の各処理については後に詳述する。
【0049】
上記ステップS306、S307、S308の各処理の後に、書込みセクタ数から、実際に書込んだセクタ数が減算され、書込みセクタ数が0より大きいか否かの判別が行われる(S310)。この判別において、書込みセクタ数が0より大きい(Yes)と判断された場合には、未だ書込み可能であるため、上記ステップS304の判別に戻る。また、上記ステップS310の判別において、書込みセクタ数が0より大きくない(No)と判断された場合には、書込みが不可能であるため、本フローチャートによる処理が終了される。
【0050】
図5には、図4におけるステップS306における書込み処理(書込み先LBAにかかる書込み用データを、ブロック単位で管理する領域に書込むための処理)の詳細が示される。
【0051】
書込み先LBAにかかる書込み用データを、ブロック単位で管理する領域に書込むための処理において、先ず、CPU123によって、消去可能PBA(Physical Block Address)テーブルが参照されて、消去可能ブロックのアドレスが取得され(S401)、当該アドレスに対応する消去可能ブロックが消去される。CPU123は、上記ステップ402で消去されたブロックに対して、上記ページバッファ126に保存されているホスト転送データを書込む(S403)。その後、CPU123によって、ブロック単位で管理する領域の論物変換テーブルTB1と、消去可能PBAテーブルTB2が更新される(S404)。ここで、ブロック単位で管理する領域の論物変換テーブルTB1は、ブロック単位で管理する領域における論理アドレスと物理アドレスとの変換を可能にするもので、ページバッファ126又は外部RAM13に形成される。
【0052】
図6には、図4におけるステップS307の処理(書込み先LBAにかかる書込み用データを、ブロック単位で管理する領域に書込むための処理)の詳細が示される。
【0053】
書込み先LBAにかかる書込み用データを、ブロック単位で管理する領域に書込むための処理において、先ず、CPU123は、書込み可能ページテーブルTB4を参照して書込み可能ページのアドレスを取得する(S501)。書込み可能ページテーブルTB4は、ページバッファ126又は外部RAM13に形成される。そしてCPU123は、書込み可能ページがあるか否かの判別を行う(S502)。書込み可能ページがある(Yes)と判断した場合、ページバッファ126に一時的に保存されているホスト転送データをフラッシュアレイ112へ書込む(S506)。またCPU123は、上記ステップS502の判別において、書込み可能ページが無い(No)と判断した場合、消去可能PBAテーブルTB2を参照して、消去可能ブロックのアドレスを取得し(S503)、当該消去可能ブロックを消去し(S504)、その後、消去したブロックから書込み可能ページを取得する(S505)。そして、取得した着込み可能ページに対してホスト転送データの書込みが行われる(S506)。CPU123は、消去を実行したか否かの判別を行う(S507)。この判別において、消去を実行していない(No)と判断された場合、「ページ単位で管理する領域」の論物変換テーブルと、書込み可能ページテーブルTB4を更新する(S508)。また、上記ステップS507の判別において消去を実行した(Yes)と判断された場合、「ページ単位で管理する領域」の論物変換テーブルと書込み可能ページテーブルTB4と消去可能PBAテーブルTB2とを更新する(S509)。
【0054】
図7には、図4におけるステップS308の処理(書込み先LBAにかかる書込み用データを、セクタ単位で管理する領域に書込むための処理)の詳細が示される。
【0055】
書込み先LBAにかかる書込み用データを、セクタ単位で管理する領域に書込むための処理において、先ず、CPU123は、書込み可能ページテーブルTB4を参照して書込み可能ページのアドレスを取得する(S601)。そしてCPU123は、書込み可能ページがあるか否かの判別を行う(S602)。書込み可能ページがある(Yes)と判断した場合、ページバッファ126に一時的に保存されているホスト転送データをフラッシュアレイ112へ書込む(S606)。またCPU123は、上記ステップS602の判別において、書込み可能ページが無い(No)と判断した場合、消去可能PBAテーブルTB2を参照して、消去可能ブロックのアドレスを取得し(S603)、当該消去可能ブロックを消去し(S604)、その後、消去したブロックから書込み可能ページを取得する(S605)。そして、取得した着込み可能ページに対してホスト転送データの書込みが行われる(S606)。CPU123は、消去を実行したか否かの判別を行う(S607)。この判別において、消去を実行していない(No)と判断された場合、「セクタ単位で管理する領域」の論物変換テーブルと、書込み可能ページテーブルTB4を更新する(S608)。また、上記ステップS607の判別において消去を実行した(Yes)と判断された場合、「セクタ単位で管理する領域」の論物変換テーブルと書込み可能ページテーブルTB4と消去可能PBAテーブルTB2とを更新する(S609)。
【0056】
次に、ガベージコレクションについて説明する。
【0057】
「ブロックより小さい単位で論物変換する領域」は、フラッシュSSD1の全容量より少ない領域に限定される場合があるため、ホスト2から連続して書込みが行われると、空きページが無くなることがある。このため、コントローラ12では、「ブロックより小さい単位で論物変換する領域」に空きページを作るためのガベージコレクションが実行される。ガベージコレクションは、(1)フラッシュSSD1のリセット処理毎に実行することができる。
【0058】
先ず、ガベージコレクションをフラッシュSSD1のリセット処理毎に実行する場合について説明する。
【0059】
図13A及び図13Bには、ガベージコレクションをリセット処理毎に実行する場合のフローチャートが示される。尚、図13A及び図13Bにおいて、「CON1」は、処理が連続していることを示している。
【0060】
フラッシュSSD1に対する電源投入や、リセット信号がアサートされた場合に、所定のリセット処理が起動される(S1301)。つまり、CPU123によって所定のリセットプログラムが実行される。フラッシュSSD1においてリセット処理が行われている期間は、ホスト2に対してビジー状態になる。このビジー状態が解除される前に、以下の処理がCPU123によって行われる。
【0061】
先ず「ブロックより小さい単位で論物変換する領域」の空きページ数の確認がCPU123によって行われる(S1302)。この確認は、ページ単位で管理する領域の論物変換テーブルTB3及びセクタ単位で管理する領域の論物変換テーブルTB5を参照することで行われる。そして、「ブロックより小さい単位で論物変換する領域」の空きページ数が規定値以下であるか否かの判別が行われる(S1303)。この判別において、「ブロックより小さい単位で論物変換する領域」の空きページ数が規定値以下である(Yes)と判断された場合には、ガベージコレクションの必要があるため、消去可能PBAテーブルTB2が参照されることにより、消去可能PBAの取得が行われ(S1304)、取得された消去可能PBAが消去される(S1305)。次に、「ブロックより小さい単位で論物変換する領域」のブロックで、空きページ数が規定値以下のブロックが選択され(S1306)、処理ページ番号を「0」にする。ここで、「処理ページ番号」とは、内部的な変数を意味する。そして、ガベージコレクション処理に要する時間が、規定時間を越えるか否かの判別が行われる(S1308)。ここで、「規定時間」とは、例えばリセット処理のために許容される時間を意味する。ガベージコレクション処理は、このリセット処理のために許容される時間内に終了する必要がある。ガベージコレクション処理に要する時間が、規定時間を越えない(No)と判断された場合には、処理ページ数が当該ブロックにおける最大ページ数未満であるか否かの判別が行われる(S1309)。つまり、これから処理しようとするページ番号が、上記ステップS1305で消去されたブロックにおける最大ページ数に達したか否かが判別される。この判別において、処理ページ数が当該ブロックにおける最大ページ数未満である(Yes)と判断された場合には、当該ページに有効なデータがあるか否かの判別が行われる(S1310)。この判別において、当該ページに有効なデータがある(Yes)と判断された場合には、その有効データがページバッファ126に読出される(S1312)。そして、ページバッファ126に読出された上記データはページサイズ以上であるか否かの判別が行われる(S1313)。この判別において、ページバッファ126に読出された上記データがページサイズ以上である(Yes)と判断された場合には、ページバッファ126に読出された上記データが、上記ステップS1305で消去されたPBAに書込まれる(S1314)。その後、処理ページ番号がインクリメントされた後に(S1311)、上記ステップS1308の判別に戻されることにより、次の処理ページ番号についてのガベージコレクション処理が行われる。
【0062】
上記ステップS1303の判別において、「ブロックより小さい単位で論物変換する領域」の空きページ数が規定値以下ではない(No)と判断された場合には、「ブロックより小さい単位で論物変換する領域」の空きページ数が十分に残っており、ガベージコレクションは不要である。この場合、ページバッファ126上にデータが残っているか否かの判別が行われる(S1315)。この判別において、ページバッファ126上にデータが残っている(Yes)(Yes)と判断された場合には、当該データが、上記ステップS1305で消去されたPBAに書込まれる(S1316)。その後、ガベージコレクションでデータが移動されたか否かの判別が行われる(S1317)。この判別において、ガベージコレクションでデータが移動された(Yes)と判断された場合には、「ブロックより小さい単位で論物変換する領域」の論物変換テーブル、すなわち、ページ単位で管理する領域の論物変換デーブルTB3及びセクタ単位で管理する領域の論物変換テーブルTB5、ブロック単位で管理する領域の領域の論物変換テーブルTBTB1、消去可能PBAテーブルTB2、書込み可能ページテーブルTB4が更新され(S1318)、その後、リセットビジーが解除されることで、リセット処理の終了がホスト2に伝えられる(S1319)。
【0063】
また、上記ステップS1308の判別において、ガベージコレクション処理に要する時間が、規定時間を越える(Yes)と判断された場合には、ガベージコレクション処理を行うべきではないので、上記ステップS1303で「ブロックより小さい単位で論物変換する領域」の空きページ数が規定値以下ではない(No)と判断された場合と同様に、ページバッファ126上にデータが残っているか否かの判別に遷移される(S1315)。
【0064】
上記ステップS1310の判別において、当該ページに有効なデータが無い(No)と判断された場合には、処理ページ番号がインクリメントされた後に(S1311)、上記ステップS1308の判別に戻されることにより、次の処理ページ番号についてのガベージコレクション処理が行われる。また、上記ステップS1313の判別で、ページバッファ上のデータはページサイズ以上ではない(No)と判断された場合には、ステップS1314のデータ書込みを行うことなく、処理ページ番号がインクリメントされた後に(S1311)、上記ステップS1308の判別に戻されることにより、次の処理ページ番号についてのガベージコレクション処理が行われる。そして上記ステップS1309の判別において、処理ページ数が当該ブロックにおける最大ページ数未満ではない(No)と判断された場合には、全ての処理ページ番号についてのガベージコレクション処理が終了したことから、上記ステップS1302の確認処理に戻される。
【0065】
尚、ホスト2からリードコマンドが発行された場合には、コントローラ12によって論物変換テーブルTB1、TB3、又はTB5が参照され、当該リードコマンドにかかるデータがフラッシュメモリ11から読出されて、ホスト2に伝達される。
【0066】
この実施の形態によれば、以下の効果を得ることができる。
【0067】
従来システムに従えば、フラッシュメモリの消去単位やプログラム(書込み)単位毎に論理アドレスを管理していることから、ホストシステムからフラッシュSSD内のフラッシュメモリに1セクタ分のデータを書込む場合には、当該セクタを含むページのデータがフラッシュメモリからバッファメモリに読出され、その後このバッファメモリ内の該当するセクタのデータが更新され、このデータ更新後にバッファメモリ内のデータがフラッシュメモリ内の別のアドレスに書込まれる。このようにホストシステムからフラッシュSSD内のフラッシュメモリに1セクタ分のデータを書込む場合には、ホストシステムが書込みたいセクタ以外のデータをフラッシュメモリから読出さなければならず、それによって、フラッシュSSDにおける小容量書込みの高速化が阻害される。
【0068】
これに対して図1に示されるフラッシュSSD1においては、書込みセクタ数に応じて、データの上記不揮発性記憶部における書込み先が決定される。例えばフラッシュメモリ11に対して1セクタのデータ書込みを実行する場合には、セクタ単位で管理する領域にデータ書込みが行われることになり、上記従来システムでのデータ書込みの場合のように、バッファメモリへのデータ退避を行う必要がないので、小容量書込みの高速化を図ることができる。
【0069】
また、リセット処理毎にガベージコレクション処理が行われることにより、ブロック内に有効データが有る場合に、それが全て別の領域に移動され、当該ブロックは、消去によって再度書込み可能状態とされる。これにより、書込み可能な空き容量を増やすことができる。
【0070】
《実施の形態2》
図14には、本発明にかかる不揮発性半導体記憶装置の一例とされるフラッシュSSD1の別の構成例が示される。
【0071】
図14に示されるフラッシュSSD1が、図1に示されるのと大きく相違するのは、複数のフラッシュメモリ11A,11B,11C,11Dが設けられている点である。フラッシュメモリ11A,11B,11C,11Dは、それぞれ公知の半導体集積回路製造技術により、例えば単結晶シリコン基板などの一つの半導体基板に形成されている。コントローラ12内のフラッシュインタフェース125と、フラッシュメモリ11A,11B,11C,11Dとは、それぞれ専用のバスBS1,BS2,BS3,BS4によって互いに結合されている。コントローラ12は、バスBS1,BS2,BS3,BS4を介してフラッシュメモリ11A,11B,11C,11Dの動作制御を行う。各フラッシュメモリ11A,11B,11C,11Dに対する動作制御の基本的な内容は、図1に示されるフラッシュSSD1の場合と同様である。
【0072】
図14に示される構成において、バスBS1,BS2,BS3,BS4が常に使用されているわけではない。例えばフラッシュメモリ11A〜11Cに対してはデータの書込みが行われているが、フラッシュメモリ11Dに対してはデータの書込みが行われていない場合には、バスBS4がアイドル状態(空き状態)であることが考えられる。そこでアイドル状態のバスが存在する場合に、当該バスを利用して、対応するフラッシュメモリ11A,11B,11C,11Dについてのガベージコレクション処理を実行することができる。
【0073】
図15A及び図15Bには、アイドル状態のバスを用いてガベージコレクション処理を実行する場合のフローチャートが示される。尚、図15A及び図15Bにおいて、「CON2」は、処理が連続していることを示している。このガベージコレクション処理は、CPU123によって行われる。
【0074】
ホスト2からコマンドが受信された後に、書込むLBAとセクタ数が取得され(S1401,S1402)、アイドル状態のバスが存在するか否かの判別が行われる(S1403)。ステップS1402で取得された情報(書込むLBAとセクタ数)によって書込み先が決定される。書込み先が決定すれば、そのとき使用されるバスが判明するため、それに基づいて、アイドル状態のバスが存在するか否かの判別が可能になる。アイドル状態のバスが無い(No)と判断された場合には、ガベージコレクションは実行されない。空きのバスがあると判断された場合には、書込み可能ページテーブルTB4を参照して、当該バスに対応するフラッシュメモリにおいて空きページ数が規定値以下のブロックがあるか否かの確認が行われる(S1404,S1405)。ステップS1405の判別において、空きページ数が規定値以下のブロックがある(Yes)と判断された場合、消去可能PBAテーブルTB2を参照して、消去可能PBAが取得されて、対応データが消去される(S1406,1407)。
【0075】
ガベージコレクションによるデータの移動を行う前に、ホスト2から与えられたコマンドの処理が終了しているか否かの確認が行われる(S1410)。コマンド処理が終了している(Yes)と判断された場合には、ガベージコレクションは行われない。ホスト2から与えられたコマンドの処理が終了していない(No)と判断された場合には、ガベージコレクションが実行される(S1411〜S1416)。ステップS1411〜S1416のガベージコレクション処理は、図13AにおけるステップS1309〜S1314の処理に対応する。すなわち、ブロックより小さい単位で論物変換する領域の論物変換テーブル(TB3,TB5)を参照して、選択したブロック内の有効なデータがあるか確認され(S1412)、有効なデータがある場合は、当該データをページバッファに読出される。ページバッファにページサイズ以上のデータを読み出したか否かの確認が行われ(S1415)、ページサイズ以上のデータが読出された場合に、当該データの書込み行われる(S1416)。ページサイズ未満の場合は、書込みは行われずに、ガベージコレクションが継続される。
【0076】
ガベージコレクションの終了条件になった場合、書込んでいないデータがページバッファ126上に残っているか否かの確認が行われ(S1417)、データが残っている場合のみ、読み出したデータの書込みが実行される(S1418)。その後、ガベージコレクション中にデータの移動を行ったか否かの判定が行われ(S1419)、データ移動を行った場合に、ブロックより小さい単位で論物変換する領域の論物変換テーブル(TB3,TB5)、ブロック単位に管理する領域の論物変換テーブルTB1、消去可能PBAテーブルTB2を更新して論物変換の対応関係が変更される(S1420)。
【0077】
このようにアイドル状態のバスを利用することにより、フラッシュメモリのリード/ライト動作に支障を与えることなく、ガベージコレクション処理を実行することができる。
【0078】
《実施の形態3》
図1や図14に示される構成において、「ブロックより小さい単位で論物変換する領域」がフラッシュSSD1の全容量より少ない場合や、「ブロックより小さい単位で論物変換する領域」に書込むための領域が不足する場合にもガベージコレクションを実行することができる。
【0079】
図16には、「ブロックより小さい単位で論物変換する領域」に書込むための領域が不足する場合のガベージコレクションのフローチャートが示される。
【0080】
ホストからライトコマンドが受信された後(S1501)、「ブロックより小さい単位で論物変換する領域」に書込むための書込み可能ページが存在するか否かの判別が行われる(S1502)。この判別において、書込み可能ページが存在する(Yes)と判断された場合には、その書込み可能ページへの書込みが実行され(S1510)、「ブロックより小さい単位で論物変換する領域」の論物変換テーブル(TB3,TB5)、書込み可能ページテーブルTB4が更新されて(S1511)、本フローチャートによる処理が終了される。上記ステップS1502の判別において、書込み可能ページが存在しない(No)と判断された場合には、消去可能PBAが規定以下か否かの判定が行われる(S1503)。この判別において、規定値以下ではない(No)と判断された場合には、消去可能ページが消去され(S1504)、消去した領域が書込み可能ページとされて、上記ステップS1510の書込み処理に遷移される。上記ステップS1503の判別において、消去可能PBAが規定値以下である(Yes)と判断された場合には、「ブロックより小さい単位で論物変換する領域」の論物変換テーブル(TB3,TB5)が参照されて、有効なデータが最小のブロックの選択が行われる(S1505)。選択したブロックの有効なデータがページバッファ126に読出され(S1506)、消去可能PBAが消去され(S1507)、ページバッファ126上の有効なデータが、消去されたブロックに書込まれる(S1508)。そして「ブロックより小さい単位で論物変換する領域」の論物変換テーブル(TB3,TB5)、書込み可能ページテーブルTB4、消去可能PBAテーブル(TB4)が更新される(S1509)。これにより、有効なデータが最小のブロックを消去可能PBAとすることができ、書込みができない無効なデータを保存した領域を空けることができる。そして上記ステップS1509の処理後に、上記ステップS1510の書込み処理に遷移される。このように、図16に示される処理によれば、「ブロックより小さい単位で論物変換する領域」がフラッシュSSD1の全容量より少ない場合や、「ブロックより小さい単位で論物変換する領域」に書込むための領域が不足する場合にもガベージコレクションを実行することができる。
【0081】
《実施の形態4》
フラッシュメモリの記憶素子は動作原理上絶縁体となる酸化膜を貫通する電子により劣化するため、消去回数が限られている。そこでフラッシュSSD1の製品寿命を延ばすには、ブロック毎の消去回数を平準化するのが望ましい。ブロック毎の消去回数を平準化するには、消去可能PBAテーブルTB2の他に図17に示されるような消去回数の管理するテーブルを持つ構成にすると良い。図17に示される消去回数カウント値テーブルは、図9に示されるエントリー(Entry−0〜Entry−1023)毎に、消去回数をカウントする。
【0082】
図18には、図17に示される消去回数カウント値テーブルを用いた処理の流れが示される。
【0083】
先ず、図17に示される消去回数カウント値テーブルを参照して、消去回数が最小のPBAがガベージコレクション実行PBAとして取得され(S1701)、論物変換テーブル(TB1,TB3,TB5)にガベージコレクション実行PBAが登録されていないことを確認することで、ガベージコレクション実行PBAに有効なデータが存在するか否かの判別が行われる(S1702)。この判別において、ガベージコレクション実行PBAに有効なデータが存在しない(No)と判断された場合には、ガベージコレクション実行PBAを用いてガベージコレクションが実行される(S1706)。このガベージコレクションの具体的な処理内容は、図13A,13Bや、図15A,15Bを用いて説明した通りである。そして消去回数カウント値テーブルにおける、消去を行なったPBAの消去回数がインクリメントされる(S1707)。
【0084】
上記ステップS1702の判別において、ガベージコレクション実行PBAに有効なデータが存在する(Yes)と判断された場合には、消去回数が最大の消去可能PBAが消去され(S1703)、ガベージコレクション実行PBAに保存されている有効データが、上記ステップS1703で消去されたPBAに移動される(S1704)。そして、論物変換テーブルTB1,TB3,TB5、消去可能PBAテーブルTB2、書込み可能ページテーブルTB5が更新されることで、ガベージコレクション実行PBAが消去可能PBAに変更される(S1705)。
【0085】
図18に示される処理が定期的に行われることで、ホスト2からのコマンドによるデータ書込みが著しく少ないブロックについても、ステップS1704での処理により定期的にデータが移動され、消去可能PBAテーブルTB2や、書込み可能ページテーブルTB5に記述されることになるため、フラッシュメモリ内の全ブロックが定期的に消去対象となる。これにより、ブロック毎の消去回数を平準化することができるので、フラッシュSSD1の製品寿命を延ばすことができる。
【0086】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【0087】
1 フラッシュSSD
2 ホスト
11,11A〜11D フラッシュメモリ
12 コントローラ
13 外部RAM
111 バッファ
112 フラッシュアレイ
121 ROM
122 RAM
123 CPU
124 ECC
125 フラッシュインタフェース
126 ページバッファ
127 バッファインタフェース
128 ホストインタフェース
BS,BS1〜BS4 バス

【特許請求の範囲】
【請求項1】
ホストシステムに接続可能な不揮発性半導体記憶装置であって、
不揮発性記憶部と、その動作制御を行うコントローラと、を含み、
上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定し、それに基づいて、上記不揮発性記憶部における対応領域に、上記ホストシステムからの書込み指示に係るデータを書込むことを特徴とする不揮発性半導体記憶装置。
【請求項2】
上記不揮発性記憶部の消去単位をブロックとし、上記不揮発性記憶部の書込み単位をページとし、上記ホストシステムからの書込み単位をセクタとするとき、上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ブロック単位と、上記ページ単位と、上記セクタ単位とに分けて管理する請求項1記載の不揮発性半導体記憶装置。
【請求項3】
上記不揮発性記憶部は、上記ブロック単位での管理に対応する第1領域と、上記ページ単位での管理に対応する第2領域と、上記セクタ単位での管理に対応する第3領域とを含み、
上記コントローラは、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより大きい場合には上記第1領域に上記データを書込み、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより小さく、且つ、上記ページのサイズより大きい場合には上記第2領域に上記データを書込み、上記ホストシステムからの書込み指示に係るデータのサイズが上記ブロックのサイズより小さく、且つ、上記ページのサイズより小さい場合には上記第3領域に上記データを書込む請求項2記載の不揮発性半導体記憶装置。
【請求項4】
上記コントローラは、上記第2領域に対応するブロック又は上記第3領域に対応するブロックにおける有効データを別の領域に移動することによって、上記第2領域又は上記第3領域の空きを増やすためのガベージコレクション処理を実行する請求項3記載の不揮発性半導体記憶装置。
【請求項5】
上記コントローラは、リセット処理毎に上記ガベージコレクション処理を実行する請求項4記載の不揮発性半導体記憶装置。
【請求項6】
上記コントローラは、上記フラッシュメモリとの間で信号のやり取りを可能とするバスがアイドル状態の際に上記ガベージコレクション処理を実行する請求項4記載の不揮発性半導体記憶装置。
【請求項7】
上記コントローラは、上記第2領域又は上記第3領域の書込み可能ページ数が所定数よりも小さい場合に上記ガベージコレクション処理を実行する請求項4記載の不揮発性半導体記憶装置。
【請求項8】
不揮発性半導体記憶装置と、上記不揮発性半導体記憶装置にアクセス可能なホストシステムと、を含むデータ処理システムであって、
上記不揮発性半導体記憶装置は、不揮発性記憶部と、その動作制御を行うコントローラと、を含み、
上記コントローラは、上記ホストシステム側の論理アドレスと上記不揮発性記憶部側の物理アドレスとの対応関係を、上記ホストシステム側のアクセス単位と、上記不揮発性記憶部側のアクセス単位とに分けて管理し、上記ホストシステムからの書込み指示に係るデータのサイズに応じて、上記ホストシステム側のアクセス単位での管理と、上記不揮発性記憶部側のアクセス単位での管理とを判定し、それに基づいて、上記不揮発性記憶部における対応領域に、上記ホストシステムからの書込み指示に係るデータを書込むことを特徴とするデータ処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate