(57)【要約】【課題】ＭＬＣ型ＮＡＮＤフラッシュメモリにおいて、書込みデータに対して、通常ブロックと縮退ブロックを効率的に割当てる。【解決手段】ＮＡＮＤフラッシュメモリチップ２００には、１セルあたりのビット数がｋビット（ｋ≧２）の通常ブロックと、１セルあたりのビット数がｊビット（ｊ＞ｋ）に縮退している縮退ブロックとが含まれる。コマンドインタフェース部１０１は、ＮＡＮＤフラッシュメモリチップ２００への書込みデータを、複数の入力レートにて入力する。割当てブロック制御部１０６は、書き込みデータの入力レートに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定する。【選択図】図１
2015043183.tif 000002
【特許請求の範囲】
【請求項１】
１セルあたりのビット数がｋビット（ｋ≧２）の通常ブロックと、１セルあたりのビット数がｊビット（ｊ＞ｋ）に縮退している縮退ブロックとが含まれるフラッシュメモリを管理するメモリ管理装置であって、
前記フラッシュメモリへの書込みデータを、複数の入力レートにて入力する書込みデータ入力部と、
書き込みデータの入力レートに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定するブロック数決定部とを有することを特徴とするメモリ管理装置。
【請求項２】
前記ブロック数決定部は、
書き込みデータの入力レートと、未使用の通常ブロックである空き通常ブロックの個数とに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項１に記載のメモリ管理装置。
【請求項３】
前記メモリ管理装置は、更に、
未使用の通常ブロックである空き通常ブロックを管理し、管理している空き通常ブロックのうち、前記ブロック数決定部により決定された通常ブロックの個数分の空き通常ブロックを、書き込み対象空き通常ブロックとして指定する通常ブロック管理部と、
未使用の縮退ブロックである空き縮退ブロックを管理し、管理している空き縮退ブロックのうち、前記ブロック数決定部により決定された縮退ブロックの個数分の空き縮退ブロックを、書き込み対象空き縮退ブロックとして指定する縮退ブロック管理部と、
前記通常ブロック管理部により指定された書き込み対象空き通常ブロックと、前記縮退ブロック管理部により指定された書き込み対象空き縮退ブロックとに書込みデータを書き込むよう前記フラッシュメモリに指示するメモリインタフェース部とを有することを特徴とする請求項１に記載のメモリ管理装置。
【請求項４】
前記ブロック数決定部は、
書込みデータの入力レートが所定レベル以下であれば、書込みデータが縮退ブロックにのみ書き込まれ、書込みデータの入力レートが前記所定レベルを超えれば、書込みデータが通常ブロックにのみ書き込まれるように、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項１に記載のメモリ管理装置。
【請求項５】
前記ブロック数決定部は、
書込みデータの入力レートが所定レベル以下の場合に、前記ｋビットに対する前記ｊビットの比率に基づき、書込みデータの書き込みに用いる縮退ブロックの個数を決定することを特徴とする請求項４に記載のメモリ管理装置。
【請求項６】
前記ブロック数決定部は、
書込みデータの入力レートが所定レベル以下の場合は、通常ブロックを用いることなく、入力レートが高くなるにつれて縮退ブロックの個数を増加させていく第１のパターンに従い、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定し、書込みデータの入力レートが前記所定レベルを超える場合は、１つ以上の通常ブロックを用いながら、入力レートが高くなるにつれて縮退ブロックの個数を増加させていく第２のパターンに従い、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項１に記載のメモリ管理装置。
【請求項７】
前記ブロック数決定部は、
未使用の通常ブロックである空き通常ブロックの個数を、所定の下限値と比較し、
書込みデータの入力レートと、空き通常ブロックの個数と下限値との比較結果とに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項１に記載のメモリ管理装置。
【請求項８】
前記ブロック数決定部は、
前記空き通常ブロックの個数が前記下限値未満である場合に、
書込みデータの入力レートが所定レベル以下であれば、書込みデータが縮退ブロックにのみ書き込まれ、書込みデータの入力レートが前記所定レベルを超えれば、書込みデータが通常ブロックにのみ書き込まれるように、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定し、
前記空き通常ブロックの個数が前記下限値以上である場合に、
書込みデータの入力レートが所定レベル以下の場合は、通常ブロックを用いることなく、入力レートが高くなるにつれて縮退ブロックの個数を増加させていく第１のパターンに従い、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定し、書込みデータの入力レートが前記所定レベルを超える場合は、１つ以上の通常ブロックを用いながら、入力レートが高くなるにつれて縮退ブロックの個数を増加させていく第２のパターンに従い、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項７に記載のメモリ管理装置。
【請求項９】
前記ブロック数決定部は、
未使用の通常ブロックである空き通常ブロックの個数と書込みデータの入力レートとを用いて所定の計算を行い、
計算結果が第１の値であった場合は、通常ブロックの個数が縮退ブロックの個数よりも多くなるようにして、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定し、
計算結果が第２の値であった場合は、縮退ブロックの個数が通常ブロックの個数よりも多くなるようにして、書込みデータの入力レートに応じて、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定することを特徴とする請求項１に記載のメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）型ＮＡＮＤフラッシュメモリへデータを書き込む技術に関する。
【背景技術】
【０００２】
例えば、人工衛星では、地上（例えば日本）と通信できない範囲（例えば地球の裏側）を飛行中は、観測機器（カメラやセンサ）が生成した観測データを、衛星内に保持していないといけないため、データ記録装置を搭載している。
一方、観測機器は低機能な装置であり、観測データを機器内部に蓄えることはできないため、データ記録装置との間でデータ伝送のためのフロー制御を実現することは困難である。
また、観測機器（カメラやセンサ）の高精細化に伴い、データ記録装置に入力される観測データは、巨大化かつ高速化されてきている。
しかし、データ記録装置においても、宇宙環境で正常動作可能なメモリが限られているために巨大なバッファメモリを保持できない、真空であるため熱放出手段が乏しく、電子機器を高速動作させられない、という事情がある。
【０００３】
データ記録装置では、観測機器からの観測データの巨大化に伴い、ＮＡＮＤフラッシュメモリのような大容量かつ低消費電力な不揮発メモリの搭載が行われつつあり、さらにＭＬＣ型ＮＡＮＤフラッシュの利用による更なる大容量化、低消費電力が進んでいくと考えられる。
しかし、ＭＬＣ型ＮＡＮＤフラッシュメモリは、従来のメモリセルあたり２値のＮＡＮＤフラッシュメモリ（これを、ＳＬＣ  （Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）型ＮＡＮＤフラッシュメモリと呼ぶ）に比べ、１つのメモリセルで識別できる電位分布を２ｎ（ｎは多値のレベルで、２、３、４・・・）倍にする必要があり、そのためメモリセルあたりの利用回数（データの再書込み可能な回数）が桁違いに少なくなってしまう。
【０００４】
ＭＬＣ型ＮＡＮＤフラッシュメモリの利用回数の向上策として、例えば特許文献１に示されているような、多値のレベルを落として（つまり識別できる電位分布数を減らして）記録する、という方法がある。
ところが、多値のレベルを落とす（以下、縮退と呼ぶ）ということは、１つのメモリセル当たりに記録可能なデータ量が減少するということであり、例えば多値のレベルを１／２にした縮退の場合には、縮退しない場合に記録していたデータ量を記録するには、２倍の量のメモリセルを必要とするため、メモリの記録容量が１／２になるだけでなく、記録性能も１／２になってしまう。
【０００５】
記録性能の低下を抑えるためには、例えば特許文献２に示されているような、ＮＡＮＤ型フラッシュメモリに対する一般的なコマンドを並列に実行するような高速化手法をとることが考えられるが、一般的には図６に示すような同一のメモリバスに接続された複数の異なるＮＡＮＤ型フラッシュメモリのデバイスチップ間でコマンドの並列実行を行う手法が取られている。
以下、ＮＡＮＤ型フラッシュメモリへの書込み、並列書き込みの詳細を示す。
【０００６】
図６において、観測機器Ａ〜Ｃ・・・は、センサ、カメラ等であり、データ記録装置１に記録するデータを生成し、データ記録装置１の入力部２０へ生成したデータを送信する。
データ記録装置１は、入力部２０、メモリ部１０、出力部３０に大きく分けられる。
入力部２０は、観測機器Ａ〜Ｃ・・・から送られてきた入力データを、データ記録装置１内でのデータ転送レートに整合させてメモリ部１０へ転送する処理を行う。
メモリ部１０は、入力部２０から送られてきた入力データをＮＡＮＤフラッシュメモリチップ２００へ記録・保持する処理を行う。
メモリ部１０は、１つのメモリバス３００に接続された複数のＮＡＮＤフラッシュメモリチップ２００（ＮＡＮＤフラッシュメモリチップ＃１〜＃３・・・）と、これらのＮＡＮＤフラッシュメモリチップ２００を制御するＣＰＵ４００から構成される。
出力部３０は、例えば地上と通信できる位置に来た時に、メモリ部１０からＮＡＮＤフラッシュメモリチップ２００に保持されたデータを読み出し、地上との通信装置へ出力する処理を行う。
【０００７】
図７は、一般的なＮＡＮＤフラッシュメモリチップ２００の内部構成を示しており、図６におけるＮＡＮＤフラッシュメモリチップ＃１〜＃３・・・の個々の内部構成に等しい。
図７において、ＮＡＮＤフラッシュメモリチップ２００は、１つのデバイスチップ内に、メモリインタフェース部２０１、ページバッファ２０２、コマンド処理部２０３及びＮＡＮＤフラッシュメモリ２０４が構成されている。
メモリインタフェース部２０１は、メモリバス３００とのインタフェースである。
ページバッファ２０２は、Ｒｅａｄ／Ｗｒｉｔｅするデータを一時的に保持する。
コマンド処理部２０３は、メモリインタフェース部２０１経由でＣＰＵ４００から送られてきた、Ｒｅａｄ／Ｗｒｉｔｅ／Ｅｒａｓｅ等のコマンドを処理する。
ＮＡＮＤフラッシュメモリ２０４には、実際にデータを保持するメモリ素子が配列されている。
【０００８】
ＮＡＮＤフラッシュメモリ２０４は、複数個のブロックに分けられており、１つのブロックは更に複数のページに分けられている。
新しいデータを記録するためには、一旦データの消去を行わないといけないが、その消去単位がブロックと呼ばれている。
一方、データの書込み（Ｗｒｉｔｅ）／読出し（Ｒｅａｄ）は、ページ単位で行うことができる。
図７では、１つのＮＡＮＤフラッシュメモリ２０４が、（ｙ）個のブロックで構成され、１つのブロックは（ｘ）個のページで構成されていることを示す。
現在、一般的には、ページは１〜４Ｋバイト、ブロックは６４〜２５６Ｋバイト程度の記録容量を持つ。
【０００９】
図８に、このようなＮＡＮＤフラッシュメモリ２０４に対する書込みシーケンスを示す。
最初にＣＰＵ４００から第一コマンドを送出する。
第一コマンドには通常、書込み対象となるブロック番号及び同ブロック内のページ番号を示すアドレス情報が含まれている。
次に、ＣＰＵ４００から１ページ分のデータを転送する。
この転送したデータは、図７におけるページバッファ２０２へ一旦保持される。
つぎにＣＰＵ４００から第二コマンドを送出する。
ＮＡＮＤフラッシュメモリチップ２００では、第二コマンドを契機に、図７におけるページバッファ２０２に保持されたデータを、図７におけるＮＡＮＤフラッシュメモリ２０４の第一コマンド内のアドレス情報に示された所定のブロック、ページへの転送を行うチップ内書込み処理を開始する。
ＣＰＵ４００では、ＮＡＮＤフラッシュメモリチップ２００でのチップ内書込み処理の完了を待ち合わせてから、別の処理シーケンスを開始する必要がある。
【００１０】
ＣＰＵ４００からのＮＡＮＤフラッシュメモリ２０４への書込みは、以上のシーケンスで処理されるが、チップ内書込み処理中は、ＣＰＵ４００とＮＡＮＤフラッシュメモリチップ２００をつなぐメモリバス３００が空き状態となるため、この間に同一バスに接続された別のＮＡＮＤフラッシュメモリチップ２００へのシーケンス（図８における、第一コマンド送出から第二コマンド送出まで）を実施することで、装置全体としての書込み性能を向上させることができる。
この様子を図９に示す。
【００１１】
図９では、ＮＡＮＤフラッシュメモリチップ＃１（以下、単にチップ＃１という）とＮＡＮＤフラッシュメモリチップ＃２（以下、単にチップ＃２という）に対する並列書込みの様子を時系列で示している。
【００１２】
まず、ＣＰＵ４００からはチップ＃１に対する書込みシーケンスをメモリバス３００上に送出する。
次に、チップ＃１がチップ内書込み処理状態になったら、チップ＃２に対する書込みシーケンスをメモリバス３００上へ送出する。
図９でも判るとおり、以上の並列書込みを行うことにより、２ページ分のデータを書込んでいるが、時間軸上ではチップ＃１のチップ内書込み処理が隠蔽される結果となる（または、チップ＃１のチップ書込み処理が短縮される結果となる）。
仮に第一コマンド送出から第二コマンド送出までの時間（通常は書込みデータ転送の時間が支配的である）と、チップ内書込み処理の時間が等しいとすると、図９に示す２つのデバイスチップに対する並列書込みを行うと、通常の書込みで２ページを書込む時間に比べて、３／４の時間で書込むことができる（つまり書込み性能が約３３％アップしたことになる）。
【００１３】
従来、図７及び図８に示すＮＡＮＤフラッシュメモリチップ２００の制御方法としては、特許文献３の中で示される、図１０のような方法が用いられている。
【００１４】
図１０において、ＮＡＮＤフラッシュメモリチップ２００は図７の構造を持つデバイスチップであり、メモリバス３００を介してＣＰＵ４００と接続されている。
ＣＰＵ４００において、コマンドインタフェース部４０１は、より上位のシステム、例えばオペレーティングシステムのファイルシステム等とのインタフェースである。
読出し機能部４０２は、コマンドインタフェース部４０１経由で上位システムから指示された読み出しコマンドを処理する。
書込み機能部４０３は、コマンドインタフェース部４０１経由で上位システムから指示された書込みコマンドを処理する。
消去機能部４０４は、コマンドインタフェース部４０１経由で上位システムから指示された消去コマンドを処理する。
アドレス変換機能部４０５は、上位システムから指定される論理アドレスをＮＡＮＤフラッシュメモリ２０４内のブロック番号、ページ番号に変換する。
空きブロック管理部４０６は、ＮＡＮＤフラッシュメモリ２０４内の各ブロックの状態を管理する。
メモリインタフェース部４０７は、各機能部からの指示に基づき、図９に示すようなＮＡＮＤフラッシュメモリチップ２００とのシーケンスを実施する。
【００１５】
図１０において、ＮＡＮＤフラッシュメモリ２０４の１ページへのデータ書込みは、次のように処理される。
【００１６】
まず、上位システムよりコマンドインタフェース部４０１に対して、論理アドレスを指定したデータの書込みが指示される。
コマンドインタフェース部４０１では、指示されたコマンドが書込みであるため、書込み機能部４０３を呼び出す。
書込み機能部４０３は、空きブロック管理部４０６を呼び出して、データを書込み可能なブロック、即ち消去済みの空きブロックを１つ求める。
次に、書込み機能部４０３は、メモリインタフェース部４０７へ、求めた空きブロックを指定して、メモリインタフェース部４０７へ書込みシーケンスの実行を指示する。
メモリインタフェース部４０７では、メモリバス３００を介して図８に示す書込みシーケンスを実行し、チップ内書込み処理が完了したら書込み機能部４０３へ制御を戻す。
書込み制御部４０３は、アドレス変換機能部４０５を呼び出して、上位システムから指定された論理アドレスと実際にデータを書込んだブロック番号の対応付けを記憶させる。
【００１７】
書込まれたデータは、読出し機能部４０２よりアドレス変換機能部４０５で変換したデバイスチップ内のブロック番号を指定して読み出され、不要になったら消去機能部４０４にて消去された後に空きブロック管理部４０６へ通知されて、消去済み、即ち空きブロックとして管理し、次のデータ書込みに備えられる。
【００１８】
また、複数のＮＡＮＤフラッシュメモリチップ２００へ並列書き込みを行う場合は、書込み機能部４０３は空きブロック管理部４０６から空きブロックを、並列書き込み個数分だけ確保して、メモリインタフェース部４０７へ、並列書き込みのシーケンス実行を指示する。
メモリインタフェース部４０７では、メモリバス３００を介して図９に示す並列書き込みシーケンスを実行する。
なお、並列書き込みを行う空きブロックは、それぞれ別のＮＡＮＤフラッシュメモリチップ内のブロック、ページである必要がある。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００８−１２３３３０号公報
【特許文献２】特表２００９−５３６４２４号公報
【特許文献３】国際公開ＷＯ２００９−００１５１４号
【発明の概要】
【発明が解決しようとする課題】
【００２０】
従来は、以上のようにＭＬＣ型ＮＡＮＤフラッシュメモリの制御、縮退、及び記録高速化を行っており、複数の入力レートでデータを記録するデータ記録装置では、最も高速な入力レートでデータ欠損なく記録する通常ブロック（縮退が行われていない通常のブロック）が枯渇すると、データ記録装置として寿命となってしまう。
即ち、従来のように入力レートに関係なく空きブロックを割当てると、縮退した縮退ブロックの空きブロックでも十分に記録可能な低速な入力レートのデータを通常ブロックの空きブロックに割当ててしまう事態が生じる。
この結果、通常ブロックの枯渇が早期に訪れ、データ記録装置としての寿命が短くなってしまうという課題がある。
【００２１】
この発明は、上記のような課題を解決することを主な目的の一つとしており、書込みデータに対して、通常ブロックと縮退ブロックを効率的に割当てることを主な目的とする。
【課題を解決するための手段】
【００２２】
本発明に係るメモリ管理装置は、
１セルあたりのビット数がｋビット（ｋ≧２）の通常ブロックと、１セルあたりのビット数がｊビット（ｊ＞ｋ）に縮退している縮退ブロックとが含まれるフラッシュメモリを管理するメモリ管理装置であって、
前記フラッシュメモリへの書込みデータを、複数の入力レートにて入力する書込みデータ入力部と、
書き込みデータの入力レートに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定するブロック数決定部とを有することを特徴とするメモリ管理装置。
【発明の効果】
【００２３】
本発明によれば、書き込みデータの入力レートに基づき、書込みデータに対して、通常ブロックと縮退ブロックを効率的に割当てることができる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態１〜４でのＮＡＮＤフラッシュ制御装置の構成例を示す図。
【図２】実施の形態１での書込み機能部と割当てブロック制御部の動作例を示す図。
【図３】実施の形態２での書込み機能部と割当てブロック制御部の動作例を示す図。
【図４】実施の形態３での書込み機能部と割当てブロック制御部の動作例を示す図。
【図５】実施の形態４での書込み機能部と割当てブロック制御部の動作例を示す図。
【図６】実施の形態１〜４でのデータ記録装置の構成例を示す図。
【図７】ＮＡＮＤフラッシュメモリのデバイスチップの一般的な内部構造を示す図。
【図８】ＮＡＮＤフラッシュメモリのデバイスチップに対する外部からの書込みシーケンスを示す図。
【図９】並列書込みの方法を示す図。
【図１０】従来のＮＡＮＤフラッシュ制御方法を示す図。
【発明を実施するための形態】
【００２５】
以下の実施の形態では、複数の入力レートで入力される複数のデータを、同一バスに接続された複数のＭＬＣ型ＮＡＮＤフラッシュメモリへ記録するデータ記録装置において、入力データに適したブロックの割り当てを行う構成を説明する。
より具体的には、多値レベルを落として記録するブロックと、そうでないブロックとを別々に管理し、低速な入力レートのデータ記録には多値レベルを落として記録するブロックを、高速な入力レートのデータ記録には多値レベルを落とさずに記録できるブロックを優先的に割当てる構成を説明する。
【００２６】
実施の形態１．
図１は、本実施の形態に係るＣＰＵ１００の構成例を示す。
ＣＰＵ１００は、図６に示すように、データ記録装置１の一部を構成し、観測機器２からのデータを入力部２０を介して入力し、入力したデータをＮ個のＮＡＮＤフラッシュメモリチップ２００に格納する。
図１において、Ｎ個のＮＡＮＤフラッシュメモリチップ２００は、図６に示したものと同様であり、図７に示した内部構成を持ち、１メモリセルで記録できるデータのビット数がｋビット（ｋ≧２）の通常ブロック（縮退していないブロック）と、１メモリセルで記録できるデータのビット数がｊビット（ｊ＞ｋ）に縮退している縮退ブロックとが含まれる。
本実施の形態でも、ＣＰＵ１００と、Ｎ個のＮＡＮＤフラッシュメモリチップ２００はメモリバス３００で接続されている。
ＣＰＵ１００は、メモリ管理装置の例に相当する。
【００２７】
ＣＰＵ１００において、コマンドインタフェース部１０１は、ＮＡＮＤフラッシュメモリチップ２００への書込みデータを、複数の入力レートにて入力する。
コマンドインタフェース部１０１は、書込みデータ入力部の例に相当する。
【００２８】
読出し機能部１０２は、図１０に示した読出し機能部４０２と同じであるため、説明を省略する。
【００２９】
書込み機能部１０３は、書込みデータの入力レートを通知して、割当てブロック制御部１０６に空きブロックの割当てを要求する。
また、書込み機能部１０３は、割当てブロック制御部１０６により割り当てられた空きブロックへの書込みデータの書き込みをメモリインタフェース部１０９に指示する。
【００３０】
消去機能部１０４及びアドレス変換機能部１０５は、図１０に示した消去機能部４０４及びアドレス変換機能部４０５と同じであるため、説明を省略する。
【００３１】
割当てブロック制御部１０６は、書き込みデータの入力レートに基づき、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定する。
より具体的には、割当てブロック制御部１０６は、書込みデータの入力レートが所定レベル以下であれば、書込みデータが縮退ブロックにのみ書き込まれ、書込みデータの入力レートが所定レベルを超えれば、書込みデータが通常ブロックにのみ書き込まれるように、書込みデータの書き込みに用いる通常ブロックの個数及び縮退ブロックの個数を決定する。
割当てブロック制御部１０６は、ブロック数決定部の例に相当する。
【００３２】
空きブロック管理部１０７は、Ｎ個のＮＡＮＤフラッシュメモリチップ２００のブロックのうちの未使用の通常ブロックを管理する。
未使用の通常ブロックを空き通常ブロックという。
空きブロック管理部１０７は、管理している空き通常ブロックのうち、割当てブロック制御部１０６により決定された個数分の空き通常ブロックを、書き込み対象空き通常ブロックとして指定する。
空きブロック管理部１０７は、通常ブロック管理部の例に相当する。
【００３３】
縮退ブロック管理部１０８は、Ｎ個のＮＡＮＤフラッシュメモリチップ２００のブロックのうちの未使用の縮退ブロックを管理する。
未使用の縮退ブロックを空き縮退ブロックという。
縮退ブロック管理部１０８は、割当てブロック制御部１０６により決定された個数分の空き縮退ブロックを、書き込み対象空き縮退ブロックとして指定する。
【００３４】
メモリインタフェース部１０９は、図１０に示したメモリインタフェース部４０７と異なり、並列書込み機能を有する。
メモリインタフェース部１０９の並列書込み機能は、図８、図９で示したものと同じである。
また、メモリインタフェース部１０９は、空きブロック管理部１０７により指定された書き込み対象空き通常ブロックと、縮退ブロック管理部１０８により指定された書き込み対象空き縮退ブロックとに書込みデータを書き込むようＮＡＮＤフラッシュメモリチップ２００に指示する。
【００３５】
次に、図２を参照して、本実施の形態に係るＣＰＵ１００の動作例を説明する。
図２では、書込み機能部１０３からの空きブロック要求により動作を開始する割当てブロック制御部１０６の処理と、入力レートから空きブロック確保先の管理を決めるための入力レート表の例を示しており、フローチャートにより、処理を具体的に説明する。
【００３６】
まず、書込み機能部１０３が書き込みデータの入力レートをパラメータとして含む空きブロック要求を割当てブロック制御部１０６に出力して、割当てブロック制御部１０６に空きブロックの確保を指示する（Ｓ７１）。
【００３７】
次に、割当てブロック制御部１０６は、パラメータとして渡された入力レートで入力レート表を探索し、一致した行に対応する縮退値を得る（Ｓ７２）。
図２の入力レート表において、縮退値：１の入力レートに対しては、空き縮退ブロックが選択され、縮退値：０の入力レートに対しては、空き通常ブロックが選択される。
つまり、低速な入力レートのデータは空き縮退ブロックに格納され、高速な入力レートのデータは空き通常ブロックに格納される。
図２の入力レート表では、入力レートＡ、Ｂでは、空き縮退ブロックが選択され、入力レートＣ〜Ｅでは、空き通常ブロックが選択される。
【００３８】
次に、割当てブロック制御部１０６は、ステップＳ７２で得た縮退値が０か否かを判定する（Ｓ７３）。
判定の結果、縮退値が０の場合はステップＳ７４へ進み、割当てブロック制御部１０６は、空きブロック管理部１０７からデータ書込み用の空き通常ブロック（書込み対象空き通常ブロック）を確保する。
本実施の形態では、割当てブロック制御部１０６は、１つの空き通常ブロックの確保を空きブロック管理部１０７に指示し、空きブロック管理部１０７は、書込みデータに対して空き通常ブロック（書込み対象空き通常ブロック）を１つ割当て、割当てた空き通常ブロック（書込み対象空き通常ブロック）のブロック番号を割当てブロック制御部１０６に通知する。
一方、ステップＳ７３にて縮退値が０でないと判定された場合はステップＳ７５へ進み、割当てブロック制御部１０６は、縮退ブロック管理部１０８からデータ書込み用の空き縮退ブロック（書込み対象空き縮退ブロック）を確保する。
本実施の形態では、割当てブロック制御部１０６は、１つの空き縮退ブロックの確保を縮退ブロック管理部１０８に指示し、縮退ブロック管理部１０８は、書込みデータに対して空き縮退ブロック（書込み対象空き縮退ブロック）を１つ割当て、割当てた空き縮退ブロック（書込み対象空き縮退ブロック）のブロック番号を割当てブロック制御部１０６に通知する。
【００３９】
割当てブロック制御部１０６は、ステップＳ７４又はステップＳ７５にて空きブロックを確保した後、ステップＳ７２で得た縮退値を付与して、書込み機能部１０３へ確保した空きブロックのブロック番号を返却する。
【００４０】
書込み機能部１０３は、空きブロックに付与された縮退値が１の場合は縮退ブロックとして、縮退値が０の場合は通常ブロックとして書込みシーケンスを実行するよう、メモリインタフェース部１０９へ指示する（Ｓ７６）。
【００４１】
なお、メモリインタフェース部１０９は、通常ブロックの書込みについては、図８に示す書込みシーケンスそのものを行う。
また、縮退ブロックの書込みについては、メモリインタフェース部１０９は、書込みデータを、多値レベルを縮退させたデータに変換し、変換後の書込みデータに対して図８に示す書込みシーケンスを行う。
【００４２】
以上のように、本実施の形態によれば、入力レートが低い場合には縮退ブロックが優先的に使用されるため、高速な入力レートのデータ記録用に、より多くの通常ブロックを割当てることが可能となり、従来に比べデータ記録装置の利用可能期間を延ばすことができる。
【００４３】
なお、図２において、ステップＳ７５での縮退ブロック管理部１０８からの空き縮退ブロックの確保では、多値レベルの減少度（ｋビットに対するｊビットの比率）に応じた個数の空き縮退ブロックを確保するようにしてもよい。
例えば縮退ブロックでは多値レベルを２から１にして記録する場合では、通常ブロック１つ分のデータサイズのデータを縮退ブロックに書き込む場合には、２つの縮退ブロックが必要となる。
このため、割当てブロック制御部１０６は、ステップＳ７５で縮退ブロック管理部１０８から２つの空き縮退ブロックを確保し、書込み機能部１０３へ返却するようにする。
【００４４】
また、図２での入力レート表は、入力レートとそれに対応した縮退値の組合せの表になっているが、これは１例であり、例えば、縮退値が１→０となる境界の入力レート値を持つだけでもよいし、入力レート表自体は書込み機能部１０３が保持する形でも、同じ効果が得られる。
【００４５】
以上、本実施の形態では、複数の入力レートを持つ、複数の連続した入力データを、同一バス上に接続された複数のＭＬＣ型ＮＡＮＤフラッシュメモリへ記録するデータ記録装置を説明した。
【００４６】
また、本実施の形態では、
記録媒体を固定サイズに分割したブロック毎に、ＭＬＣ型ＮＡＮＤフラッシュメモリの多値レベルを落とさずに記録できる通常ブロックの状態やデータの記録状態を保持する、空きブロック管理部と、
ＭＬＣ型ＮＡＮＤフラッシュメモリの多値レベルを落として記録する必要のある縮退ブロックの状態やデータの記録状態を保持する縮退ブロック管理部と、
記録するデータの入力レートに応じて空きブロック管理部、縮退ブロック管理部のいずれから空きブロックを確保するかを切替える、割当てブロック制御部を備え、
データ記録部から渡される入力レートに適切なブロックを確保することにより、高速な入力レートに適した多値レベルを落とさずに記録可能なブロック数の早期枯渇を低減するデータ記録装置を説明した。
【００４７】
実施の形態２．
本実施の形態では、書込み機能部１０３、メモリインタフェース部１０９が並列書き込みに対応している場合の、より効果の高い割当てブロック制御部１０６の処理を示す。
【００４８】
図３は、本実施の形態に係る書込み機能部１０３と割当てブロック制御部１０６の動作例を示す。
なお、本実施の形態に係るＣＰＵ１００の構成も図１に示す通りである。
また、本実施の形態では、実施の形態１との差異を説明する。
本実施の形態で説明していない事項は、実施の形態１と同じである。
【００４９】
図３において、入力レート表は、入力レートＡ〜Ｅに対し複数ブロックへの並列書込みを行った場合の通常ブロック、縮退ブロックの必要個数を格納している。
図３の入力レート表において、Ｘ通常値は空き通常ブロックの必要数を表し、Ｙ通常値は空き縮退ブロックの必要数を表している。
例えば入力レートＣの場合は、並列書込みを行わない場合は、図２の入力レート表で示すように通常ブロックを必要とするが、並列書込みを行う場合は、通常ブロックは０個、縮退ブロックは２個の並列書込みの性能で書込み可能である。
図３の入力レート表では、入力レートＣまでは、通常ブロックを用いることなく、入力レートが高くなるにつれて縮退ブロックの個数を増加させていき、入力レートＤからは、１つ以上の通常ブロックを用いながら、入力レートが高くなるにつれて縮退ブロックの個数を増加させていくように定義されている。
入力レートＡ〜ＣのＸ通常値とＹ通常値の組合せが第１のパターンに相当し、入力レートＤ、ＥのＸ通常値とＹ通常値の組合せが第２のパターンに相当する。
【００５０】
次に、書込み機能部１０３と割当てブロック制御部１０６の処理の流れについて述べる。
【００５１】
ステップＳ７１は、図２で示したもとのと同じである。
割当てブロック制御部１０６は、空きブロック要求を入力すると、入力レート表を探索して、書込み機能部１０３から指定された入力レートに一致する行のＸ、Ｙの値を得る（Ｓ８２）。
次に、割当てブロック制御部１０６は、ステップＳ８２で得たＸの値の個数だけ空きブロック管理部１０７から空き通常ブロックを確保し（Ｓ８３）、また、Ｙの値の個数だけ縮退ブロック管理部１０８から空き縮退ブロックを確保する（Ｓ８４）。
そして、確保した空きブロックのブロック番号が、Ｘ、Ｙの値とともに書込み機能部１０３へ返却され、書込み機能部１０３が、Ｘ、Ｙの値に従った縮退、並列書込みをメモリインタフェース部１０９へ指示する。
【００５２】
以上のように、本実施の形態では、並列書込みが行える場合に、より効率的に低速な入力レートの入力データに対して縮退ブロックを割当てることができ、従来に比べデータ記録装置の利用可能期間を延ばすことができる。
【００５３】
以上、本実施の形態では、割当てブロック制御部が、通常ブロックと縮退ブロックとを組み合わせた並列記録で高速な入力レートを持つ入力データを記録可能なブロックの組を割り当てられる機能を具備していることを説明した。
【００５４】
実施の形態３．
実施の形態３では、縮退ブロックの確保要否を決定する入力レート表を複数持ち、それを通常ブロックの個数で切替える構成を説明する。
【００５５】
図４は、実施の形態３における書込み機能部１０３と割当てブロック制御部１０６の処理フローと入力レート表、及び入力レート表を切替えるための通常ブロック個数の境界値を示す。
なお、本実施の形態に係るＣＰＵ１００の構成も図１に示す通りである。
また、本実施の形態では、実施の形態１との差異を説明する。
本実施の形態で説明していない事項は、実施の形態１と同じである。
【００５６】
図４において、入力レート表１は、図２での入力レート表と同じであり、入力レート表２は、図３での入力レート表と同じである。
また、ステップＳ９４は、図２でのステップＳ７２〜ステップＳ７５と同じ処理フローを示し、ステップＳ９５は、図３でのステップＳ８２〜ステップＳ８４と同じ処理フローを示す。
【００５７】
次に、書込み機能部１０３と割当てブロック制御部１０６の処理の流れについて述べる。
【００５８】
ステップＳ７１は、図２で示したもとのと同じである。
割当てブロック制御部１０６は、空きブロック管理部１０７から空き通常ブロックの総個数Ｐを得る（Ｓ９２）。
次に、割当てブロック制御部１０６は、ステップＳ９２で得たＰと下限値Ｌの値を比較し、（Ｐ＞Ｌ）の場合（Ｓ９３でＹｅｓの場合）は、ステップＳ９４へ進み、入力レート表１に従って、空き通常ブロック／空き縮退ブロックを確保する。
即ち、実施の形態１の図２に示す手順で空きブロックを確保する。
Ｓ９３において（Ｐ≦Ｌ）の場合（Ｎｏの場合）はステップＳ９５へ進み、割当てブロック制御部１０６は、入力レート表２に従って、空き通常ブロック／空き縮退ブロックを確保する。
即ち、実施の形態２の図３に示す手順で空きブロック確保を処理する。
【００５９】
ステップＳ９４又はステップＳ９５で確保された空きブロックのブロック番号は、縮退値、Ｘ、Ｙ値とともに書込み機能部１０３へ返却され、書込み機能部１０３が、それぞれの値に適した書込み方法をメモリインタフェース部１０９へ指示する（Ｓ９６）。
Ｓ９４により空きブロックが確保された場合は、有効な縮退値（０又は１）と無効なＸ、Ｙ値（例えば負値）が返却され、Ｓ９５により空きブロックが確保された場合は、無効な縮退値（０でも１でもない値）と有効なＸ、Ｙ値が返却される。
そして、書込み機能部１０３は、Ｘ、Ｙ値が無効な値の場合は、縮退値の値に従って図２のステップＳ７６と同じ処理を行い、縮退値が無効な値の場合は、Ｘ、Ｙの値に従って図３のステップＳ８５と同じ処理を行う。
【００６０】
以上のように、本実施の形態では、通常ブロックが十分な個数存在する場合は、縮退ブロックの使用を抑えながら、高速な入力レートの入力データの記録に十分な個数の通常ブロックを確保でき、データ記録装置の、例えば衛星システムに必要な寿命を確保するとともに、記録性能の低下を抑制させることができる。
【００６１】
以上、本実施の形態では、割当てブロック制御部に、通常ブロックと縮退ブロックとを組み合わせた並列記録でのブロックの組を割り当てる機能を有効とする、通常ブロックの個数下限を設けたことを説明した。
【００６２】
実施の形態４．
実施の形態４では、入力レートごとに通常ブロック／縮退ブロックの必要個数の組を複数持たせ、それを通常の空きブロック個数や入力レートから計算した結果により切替えることで、実施の形態３でのデータ記録装置の寿命と性能低下の抑制両立を、より効果的に実現する構成を示す。
【００６３】
図５は、実施の形態４における書込み機能部１０３と割当てブロック制御部１０６の処理フローと入力レート表、及び入力レート表の有効位置を演算するための計算式を示す。
なお、本実施の形態に係るＣＰＵ１００の構成も図１に示す通りである。
また、本実施の形態では、実施の形態１との差異を説明する。
本実施の形態で説明していない事項は、実施の形態１と同じである。
【００６４】
図５において、入力レート表は、入力レートＡ〜Ｅに対し、確保すべき通常ブロック／縮退ブロックの個数の組（Ｘ：Ｙ）を複数持っている。
（Ｘ：Ｙ値１）には、通常ブロックの個数が縮退ブロックの個数よりも多くなる組合せが定義されている。
（Ｘ：Ｙ値２）には、縮退ブロックの個数が通常ブロックの個数よりも多くなる組合せが定義されている。
例えば入力レートＣの場合は、（Ｘ：Ｙ）の組は（１：０）と（０：２）を持ち、（Ｘ：Ｙ値１）が選択された場合は通常ブロックを１個、縮退ブロックを０個確保することを、（Ｘ：Ｙ値２）が選択された場合は通常ブロックを０個、縮退ブロックを２個確保することを示している。
計算式は、上記（Ｘ：Ｙ値１）、（Ｘ：Ｙ値２）のどちらを選択するかを決定する方法を示しており、データ記録装置１に現存する通常ブロックの総個数と入力レートを変数とした演算関数であることを示している。
計算結果を示すＶ（１，２）とは、計算結果が第１の値又は第２の値を持つことを示している。
計算結果が第１の値であった場合は、（Ｘ：Ｙ値１）の組合せの中から入力レートに対応する組合せが選択される。
計算結果が第２の値であった場合は、（Ｘ：Ｙ値２）の組合せの中から入力レートに対応する組合せが選択される。
【００６５】
次に、書込み機能部１０３と割当てブロック制御部１０６の処理の流れについて述べる。
【００６６】
ステップＳ７１は、図２で示したもとのと同じである。
割当てブロック制御部１０６は、空きブロック管理部１０７から空き通常ブロックの総個数Ｐを得る（Ｓ１０２）。
次に、割当てブロック制御部１０６は、ステップＳ１０２で得たＰと書込み機能部１０３から与えられた入力レートＲを元に演算関数ｆ（Ｒ，Ｐ）を実行し、その結果Ｖを得る（Ｓ１０３）。
次に、割当てブロック制御部１０６は、入力レートＲから入力レート表を探索し、ステップＳ１０３で得たＶの値に一致するＸ、Ｙの値を得る（Ｓ１０４）。
例えば入力レートＲがＤで、演算関数の結果が２の場合は、Ｘ、Ｙの値は（０：４）となる。
【００６７】
次に、割当てブロック制御部１０６は、ステップＳ１０４で得たＸ、Ｙの値を元に、空きブロック管理部１０７と縮退ブロック管理部１０８から必要な個数の空きブロックを得る（Ｓ１０５）。
即ち、入力レートがＲがＤ、Ｖが２の場合は、通常ブロックは０個、縮退ブロックは４個確保する。
【００６８】
ステップＳ１０５で確保された空きブロックのブロック番号は、Ｘ、Ｙ値とともに書込み機能部１０３へ返却され、書込み機能部１０３は、Ｘ、Ｙの値に対応した書込み方法をメモリインタフェース部１０９へ指示する。
即ち、Ｘ、Ｙ値が（０：４）の場合は、縮退ブロック４個を並列書込みすることとなる。
【００６９】
このように、本実施の形態によれば、通常ブロックが十分な個数存在する場合は、縮退ブロックの使用を抑えながら、高速な入力レートの入力データの記録に十分な個数の通常ブロックを確保でき、通常ブロックの個数の減少に伴って縮退ブロックの使用頻度を上げていくことができるようになり、データ記録装置の、例えば衛星システムに必要な寿命の確保と、記録性能の低下抑制を、より効果的に実現することができる。
【００７０】
以上、本実施の形態では、割当てブロック制御部が、並列記録する通常ブロックと縮退ブロックの組における夫々のブロック数を、通常ブロックの個数で変化させる機能を具備していることを説明した。
【００７１】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００７２】
１００  ＣＰＵ、１０１  コマンドインタフェース部、１０２  読出し機能部、１０３  書込み機能部、１０４  消去機能部、１０５  アドレス変換機能部、１０６  割当てブロック制御部、１０７  空きブロック管理部、１０８  縮退ブロック管理部、１０９  メモリインタフェース部、２００  ＮＡＮＤフラッシュメモリチップ、３００  メモリバス。
【図１】
2015043183.tif 000003
【図２】
2015043183.tif 000004
【図３】
2015043183.tif 000005
【図４】
2015043183.tif 000006
【図５】
2015043183.tif 000007
【図６】
2015043183.tif 000008
【図７】
2015043183.tif 000009
【図８】
2015043183.tif 000010
【図９】
2015043183.tif 000011
【図１０】
2015043183.tif 000012