(57)【要約】【課題】  効率的にガベージコレクションを実行する。【解決手段】  所定の容量を有する記録媒体２０と、記録媒体２０と記憶空間を構成し、所定の容量を有する不揮発性固体メモリ２８と、記録媒体２０へのアクセスを制御する制御部２６と、所定の容量を有するバッファメモリ２７と、不揮発性固体メモリ２８へのアクセスを制御するメモリ制御部３０とを備え、ホスト装置１からのアクセスに応じて、メモリ制御部３０によりガベージコレクションが必要かどうかの判断を行い、データの読み出し又はデータの書き込みと並行してガベージコレクションを実行する。【選択図】  図１
2007193883.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録装置において、
第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、
第２の物理アドレスが付されている第２のデータ領域を有し、上記第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、
上記ホスト装置が接続される接続手段と、
上記ホスト装置から転送されてきたデータを上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域に書き込む書込手段と、
上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータが転送されてきた場合、又は上記書込手段により上記不揮発性固体メモリ又は上記記録媒体にデータを書き込んでいる場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断手段と、
上記不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、
上記判断手段によりガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータを上記記憶媒体の所定の領域に書き込むように上記書込手段を制御し、上記不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御する制御手段とを備えることを特徴とするデータ記録装置。
【請求項２】
上記不揮発性固体メモリが複数個備えられている場合には、
上記判断手段は、上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータが転送されてきた場合に、上記複数の不揮発性固体メモリの中からどの不揮発性固体メモリにガベージコレクションが必要なのかを判断し、
上記制御手段は、上記判断手段により一の不揮発性固体メモリに対してガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータをガベージコレクションの対象となっていない他の不揮発性固体メモリの所定の領域に書き込むように上記書込手段を制御し、上記一の不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御することを特徴とする請求項１記載のデータ記録装置。
【請求項３】
上記書込手段は、上記第１の物理アドレスと上記第２の物理アドレスとを管理する論理アドレスで構成され、上記第１の物理アドレスの一部と上記第２の物理アドレスの一部が同一の論理アドレスにより構成され、上記論理アドレスごとに所定の識別情報が書き込まれている識別情報テーブルに基づいて、上記ホスト装置から転送されてきたデータを上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域に書き込むことを特徴とする請求項１記載のデータ記録装置。
【請求項４】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録装置のデータ記録方法において、
上記第２のデータアクセスモードが選択され、上記ホスト装置からデータが転送されてきた場合、又は第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込んでいる際に、書き込み対象となる領域の消去動作が必要な不揮発性固体メモリにデータを書き込んでいる場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断工程と、
上記判断工程によりガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータを、第２の物理アドレスが付されている第２のデータ領域を有し、上記第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記録媒体の所定の領域に書き込む書込工程と、
上記書込工程によるデータの書き込み動作と並行して、上記不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行工程を備えることを特徴とするデータ記録方法。
【請求項５】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ再生装置において、
第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、
第２の物理アドレスが付されている第２のデータ領域を有し、上記第２の領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、
データのバッファリング用に用いられるバッファリングメモリと、
上記ホスト装置が接続される接続手段と、
上記ホスト装置の命令にしたがって、上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域からデータを読み出す読出手段と、
上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータの読み出しが命令された場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断手段と、
上記不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、
上記判断手段によりガベージコレクションが必要であると判断された場合に、上記不揮発性固体メモリから必要となるデータを上記バッファリングメモリ上に読み出すように上記読出手段を制御し、上記不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御する制御手段とを備えることを特徴とするデータ再生装置。
【請求項６】
上記不揮発性固体メモリが複数個備えられている場合には、
上記判断手段は、上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータの読み出しが命令された場合に、上記複数の不揮発性固体メモリの中からどの不揮発性固体メモリにガベージコレクションが必要なのかを判断し、
上記制御手段は、上記判断手段により一の不揮発性固体メモリに対してガベージコレクションが必要であると判断された場合に、上記一の不揮発性固体メモリから必要となるデータを上記バッファリングメモリ上に読み出すように上記読出手段を制御し、上記一の不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御することを特徴とする請求項５記載のデータ再生装置。
【請求項７】
上記読出手段は、上記第１の物理アドレスと上記第２の物理アドレスとを管理する論理アドレスで構成され、上記第１の物理アドレスの一部と上記第２の物理アドレスの一部が同一の論理アドレスにより構成され、上記論理アドレスごとに所定の識別情報が書き込まれている識別情報テーブルに基づき、上記ホスト装置の命令にしたがって、上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域からデータを読み出すことを特徴とする請求項５記載のデータ再生装置。
【請求項８】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ再生装置のデータ再生方法において、
上記第２のデータアクセスモードが選択され、上記ホスト装置からデータの読み出しが命令された場合に、第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断工程と、
上記判断工程によりガベージコレクションが必要であると判断された場合に、上記不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出す読出工程と、
上記読出工程によるデータの読み出し動作と並行して、上記不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行工程を備えることを特徴とするデータ再生方法。
【請求項９】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録再生装置において、
第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、
第２の物理アドレスが付されている第２のデータ領域を有し、上記第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、
データのバッファリング用に用いられるバッファリングメモリと、
上記ホスト装置が接続される接続手段と、
上記ホスト装置から転送されてきたデータを上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域に書き込む書込手段と、
上記ホスト装置の命令にしたがって、上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域からデータを読み出す読出手段と、
上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータが転送されてきた場合、又は上記書込手段により上記不揮発性固体メモリ又は上記記録媒体にデータを書き込んでいる場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第１の判断手段と、
上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータの読み出しが命令された場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第２の判断手段と、
上記不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、
上記第１の判断手段によりガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータを上記記憶媒体の所定の領域に書き込むように上記書込手段を制御し、上記不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御する第１の制御手段と、
上記第２の判断手段によりガベージコレクションが必要であると判断された場合に、上記不揮発性固体メモリから必要となるデータを上記バッファリングメモリ上に読み出すように上記読出手段を制御し、上記不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御する第２の制御手段とを備えることを特徴とするデータ記録再生装置。
【請求項１０】
上記不揮発性固体メモリが複数個備えられている場合には、
上記第１の判断手段は、上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータが転送されてきた場合に、上記複数の不揮発性固体メモリの中からどの不揮発性固体メモリにガベージコレクションが必要なのかを判断し、
上記第１の制御手段は、上記第１の判断手段により一の不揮発性固体メモリに対してガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータをガベージコレクションの対象となっていない他の不揮発性固体メモリの所定の領域に書き込むように上記書込手段を制御し、上記一の不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御することを特徴とする請求項９記載のデータ記録再生装置。
【請求項１１】
上記不揮発性固体メモリが複数個備えられている場合には、
上記第２の判断手段は、上記第２のデータアクセスモードが選択され、上記接続手段に接続されている上記ホスト装置からデータの読み出しが命令された場合に、上記複数の不揮発性固体メモリの中からどの不揮発性固体メモリにガベージコレクションが必要なのかを判断し、
上記第２の制御手段は、上記第２の判断手段により一の不揮発性固体メモリに対してガベージコレクションが必要であると判断された場合に、上記一の不揮発性固体メモリから必要となるデータを上記バッファリングメモリ上に読み出すように上記読出手段を制御し、上記一の不揮発性固体メモリに対してガベージコレクションを実行するように上記ガベージコレクション実行手段を制御することを特徴とする請求項９記載のデータ記録再生装置。
【請求項１２】
上記書込手段は、上記第１の物理アドレスと上記第２の物理アドレスとを管理する論理アドレスで構成され、上記第１の物理アドレスの一部と上記第２の物理アドレスの一部が同一の論理アドレスにより構成され、上記論理アドレスごとに所定の識別情報が書き込まれている識別情報テーブルに基づいて、上記ホスト装置から転送されてきたデータを上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域に書き込み、
上記読出手段は、上記識別情報テーブルに基づき、上記ホスト装置の命令にしたがって、上記不揮発性固体メモリの任意の領域又は上記記憶媒体の任意の領域からデータを読み出すことを特徴とする請求項９記載のデータ記録再生装置。
【請求項１３】
ホスト装置が接続され、上記ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録再生装置のデータ記録再生方法において、
上記第２のデータアクセスモードが選択され、上記ホスト装置からデータが転送されてきた場合、又は第１の物理アドレスが付されている第１のデータ領域を有し、上記第１のデータ領域にデータを書き込んでいる際に、書き込み対象となる領域の消去動作が必要な不揮発性固体メモリにデータを書き込んでいる場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第１の判断工程と、
上記第１の判断工程によりガベージコレクションが必要であると判断された場合に、上記ホスト装置から転送されたデータを、第２の物理アドレスが付されている第２のデータ領域を有し、上記第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記録媒体の所定の領域に書き込む書込工程と、
上記書込工程によるデータの書き込み動作と並行して、上記不揮発性固体メモリに対してガベージコレクションを実行する第１のガベージコレクション実行工程と、
上記第２のデータアクセスモードが選択され、上記ホスト装置からデータの読み出しが命令された場合に、上記不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第２の判断工程と、
上記第２の判断工程によりガベージコレクションが必要であると判断された場合に、上記不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出す読出工程と、
上記読出工程によるデータの読み出し動作と並行して、上記不揮発性固体メモリに対してガベージコレクションを実行する第２のガベージコレクション実行工程を備えることを特徴とするデータ記録再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体と、不揮発性記憶媒体とを備え、共通するファイルシステムに基づき、データの書き込み及び読み出しが行われるデータ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法に関する。
【背景技術】
【０００２】
不揮発性固体メモリには様々のものがあるが、近年注目を集めている大容量記憶装置に用いられているのは、ＮＡＮＤフラッシュメモリである。不揮発性固体メモリは、任意の領域に既にデータが書き込まれている場合において、当該任意の領域に新たなデータを書き込む（プログラムとも呼ばれる）ときには、当該任意の領域に書き込まれているデータを消去する必要がある。この消去動作には、約ｍｓ単位の時間がかかる。また、消去する単位は、ブロックと呼ばれ、データにアクセスする単位（ページ）よりも大きい。
【０００３】
例えば、Toshiba 1Gbit NAND EEPROM TC58NVG0S3AFT05の不揮発性固体メモリでは、ブロックサイズは、128KB（ECCを除く）であり、ページサイズは、2KB（ECCを除く）である。一のブロックに書き込まれているデータを消去するために要する時間は、約2ms（typical）となっている。なお、消去に要する最大時間は、約4msである。
【０００４】
また、このようにして、「データの書き込み」作業の前に、「データの消去」作業による所定の時間を要するため、その時間分ホスト装置は待たされてしまう。
【０００５】
そこで、一般的には、既に消去が行われている（すなわち、データの書き込みが直ぐに行える）別な場所に変更後のデータを書き込む、いわゆる追記型によるデータの書き込み処理を行う。そして、記憶装置内に置かれている論理アドレスを物理アドレスに変換するテーブルを変更し、追記したブロックの物理アドレスと論理アドレスを対応させる。また、同時に、データの入っていたブロック内のページを無効とするための処理を行う。また、無効とされたページは、新たなデータの書き込みに使用できないので、記憶装置がアクセスを受けていない時（例えば、アイドル時間）に、有効なデータを他のブロックに移動した後に、ブロック全体の消去を行う、いわゆるガベージコレクションを行い、将来の新たなデータの書き込みに備える。また、任意のファイルが消去され、無効なページがブロック内に発生した場合にも、上述と同様にガベージコレクションを行う。
【０００６】
【特許文献１】特開平９−９７２１８号公報
【特許文献２】特開平１１−１２６４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、不揮発性固体メモリには、データの書換え回数に制限があるために（１０４〜１０５）、各ブロックにおいて書き込みが行われた回数を同じにする必要がある。このために行われる処理をWear Leveling（書換え回数の平均化）という。
【０００８】
ここで、追記型の書換え処理を採用しつつ、Wear Levelingによる処理を実現するための手法は、種々提案されている（例えば、引用文献１及び２）。
【０００９】
引用文献１では、ガベージコレクションを必要とするブロックの中から、消去回数の少ないものを選んでガベージコレクションを実行し、データの書き込み回数の平均化を実現する方法が示されている。
【００１０】
また、引用文献２では、メモリを、データ書き換え用の領域と、ガベージコレクションを実行するための領域の二つに分けることにより、消去回数を直接用いることなく、書込回数の平均化を行う方法が示されている。
【００１１】
しかしながら、いずれの方法においても、ホスト装置からアクセスがある間は、ホスト装置を待たせることは許されないため、ガベージコレクションは実行されない。そのため、不揮発性固体メモリに十分な記憶容量がありながらも、無効ページ（データの書き込みができないページ）が多くなってしまった場合には、データの書込途中において、書き込むブロックが足りなくなってしまうことがある。このような場合には、ファイルを消去するか、ガベージコレクションを実行し、データを書き込むことができる領域（ブロック）を作成する必要があり、結果的に、ホスト装置から供給されるデータの転送速度が大きく低下してしまう。
【００１２】
そこで、本発明では、このような問題点に鑑みて、データの配置情報を自身で管理できる特性を生かして、ホスト装置からのアクセス中であったとしても、ガベージコレクションを実行し、ホスト装置から供給されるデータの転送速度を一定に保つことができるデータ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るデータ記録装置は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録装置において、第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、第２の物理アドレスが付されている第２のデータ領域を有し、第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、ホスト装置が接続される接続手段と、ホスト装置から転送されてきたデータを不揮発性固体メモリの任意の領域又は記憶媒体の任意の領域に書き込む書込手段と、第２のデータアクセスモードが選択され、接続手段に接続されているホスト装置からデータが転送されてきた場合、又は書込手段により不揮発性固体メモリ又は記録媒体にデータを書き込んでいる場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断手段と、不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、判断手段によりガベージコレクションが必要であると判断された場合に、ホスト装置から転送されたデータを記憶媒体の所定の領域に書き込むように書込手段を制御し、不揮発性固体メモリに対してガベージコレクションを実行するようにガベージコレクション実行手段を制御する制御手段とを備える。
【００１４】
また、本発明に係るデータ記録方法は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録装置のデータ記録方法において、第２のデータアクセスモードが選択され、ホスト装置からデータが転送されてきた場合、又は第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込んでいる際に、書き込み対象となる領域の消去動作が必要な不揮発性固体メモリにデータを書き込んでいる場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断工程と、判断工程によりガベージコレクションが必要であると判断された場合に、ホスト装置から転送されたデータを、第２の物理アドレスが付されている第２のデータ領域を有し、第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記録媒体の所定の領域に書き込む書込工程と、書込工程によるデータの書き込み動作と並行して、不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行工程を備える。
【００１５】
また、本発明に係るデータ再生装置は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ再生装置において、第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、第２の物理アドレスが付されている第２のデータ領域を有し、第２の領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、データのバッファリング用に用いられるバッファリングメモリと、ホスト装置が接続される接続手段と、ホスト装置の命令にしたがって、不揮発性固体メモリの任意の領域又は記憶媒体の任意の領域からデータを読み出す読出手段と、第２のデータアクセスモードが選択され、接続手段に接続されているホスト装置からデータの読み出しが命令された場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断手段と、不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、判断手段によりガベージコレクションが必要であると判断された場合に、不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出すように読出手段を制御し、不揮発性固体メモリに対してガベージコレクションを実行するようにガベージコレクション実行手段を制御する制御手段とを備える。
【００１６】
また、本発明に係るデータ再生方法は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ再生装置のデータ再生方法において、第２のデータアクセスモードが選択され、ホスト装置からデータの読み出しが命令された場合に、第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する判断工程と、判断工程によりガベージコレクションが必要であると判断された場合に、不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出す読出工程と、読出工程によるデータの読み出し動作と並行して、不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行工程を備える。
【００１７】
また、本発明に係るデータ記録再生装置は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録再生装置において、第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が必要な不揮発性固体メモリと、第２の物理アドレスが付されている第２のデータ領域を有し、第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記憶媒体と、データのバッファリング用に用いられるバッファリングメモリと、ホスト装置が接続される接続手段と、ホスト装置から転送されてきたデータを不揮発性固体メモリの任意の領域又は記憶媒体の任意の領域に書き込む書込手段と、ホスト装置の命令にしたがって、不揮発性固体メモリの任意の領域又は記憶媒体の任意の領域からデータを読み出す読出手段と、第２のデータアクセスモードが選択され、接続手段に接続されているホスト装置からデータが転送されてきた場合、又は書込手段により不揮発性固体メモリ又は記録媒体にデータを書き込んでいる場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第１の判断手段と、第２のデータアクセスモードが選択され、接続手段に接続されているホスト装置からデータの読み出しが命令された場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第２の判断手段と、不揮発性固体メモリに対してガベージコレクションを実行するガベージコレクション実行手段と、第１の判断手段によりガベージコレクションが必要であると判断された場合に、ホスト装置から転送されたデータを記憶媒体の所定の領域に書き込むように書込手段を制御し、不揮発性固体メモリに対してガベージコレクションを実行するようにガベージコレクション実行手段を制御する第１の制御手段と、第２の判断手段によりガベージコレクションが必要であると判断された場合に、不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出すように読出手段を制御し、不揮発性固体メモリに対してガベージコレクションを実行するようにガベージコレクション実行手段を制御する第２の制御手段とを備える。
【００１８】
また、本発明に係るデータ記録再生方法は、上述の課題を解決するために、ホスト装置が接続され、ホスト装置の制御にしたがってデータへのアクセスが行われる第１のデータアクセスモードと、自身の制御によってデータへのアクセスを行う第２のデータアクセスモードとを有するデータ記録再生装置のデータ記録再生方法において、第２のデータアクセスモードが選択され、ホスト装置からデータが転送されてきた場合、又は第１の物理アドレスが付されている第１のデータ領域を有し、第１のデータ領域にデータを書き込んでいる際に、書き込み対象となる領域の消去動作が必要な不揮発性固体メモリにデータを書き込んでいる場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第１の判断工程と、第１の判断工程によりガベージコレクションが必要であると判断された場合に、ホスト装置から転送されたデータを、第２の物理アドレスが付されている第２のデータ領域を有し、第２のデータ領域にデータを書き込む際に、その書き込み対象となる領域の消去動作が不要な記録媒体の所定の領域に書き込む書込工程と、書込工程によるデータの書き込み動作と並行して、不揮発性固体メモリに対してガベージコレクションを実行する第１のガベージコレクション実行工程と、第２のデータアクセスモードが選択され、ホスト装置からデータの読み出しが命令された場合に、不揮発性固体メモリに対して、ガベージコレクションが必要かどうかを判断する第２の判断工程と、第２の判断工程によりガベージコレクションが必要であると判断された場合に、不揮発性固体メモリから必要となるデータをバッファリングメモリ上に読み出す読出工程と、読出工程によるデータの読み出し動作と並行して、不揮発性固体メモリに対してガベージコレクションを実行する第２のガベージコレクション実行工程を備える。
【発明の効果】
【００１９】
本発明では、不揮発性固体メモリを使用する上で避けることのできないガベージコレクションを、所定のモードにおいて、他の不揮発性固体メモリ又は記録媒体にデータの書き込みを中断することなく並行して実行することができ、又はホスト装置へのデータ転送に影響を及ぼすことなく並行して実行することができる。
【発明を実施するための最良の形態】
【００２０】
本発明は、データの書き込み対象となる領域に対して、既にデータが書き込まれている場合に、当該領域に対して消去動作が必要な不揮発性固体メモリと、他の記録媒体とにより構成されるデータ記録再生装置において、不揮発性固体メモリ及び他の記録媒体へのアクセスに必要なアドレス情報の制御を行う機能を持ち、不揮発性固体メモリのフラグメンテーションを解消するためのガベージコレクションを効率的に実行するデータ記録再生装置に係るものである。
【００２１】
また、以下の実施例では、他の記録媒体としてＨＤＤ（Hard Disk Drive）を用いるものとし、ＨＤＤと不揮発性固体メモリとを組み合わせたものをハイブリッド記憶装置と呼ぶ。また、不揮発性固体メモリは、既にデータが書き込まれているエリア（ページ）に対してデータを書き込む場合には、当該ページを含むブロックに対して消去動作を必要とするNANDフラッシュメモリを想定している。また、ファイルシステムは、ＭＳ−ＤＯＳ互換ＦＡＴファイルシステムを使用するものとして説明するが、データをファイルとして管理するシステムであればＭＳ−ＤＯＳ互換ＦＡＴファイルシステムに限らずどのようなシステムでも適用することができる。
【００２２】
＜データ記録再生装置の構成＞
図１は、ＰＣ又はＡＶ機器等のホスト装置１と、データ記録再生装置２とが、ＩＤＥ（Integrated Drive Electronics）、ＳＣＳＩ（Small Computer System Interface）、ＦＣ（Fibre Channel）、ＵＳＢ（Universal Serial Bus）等のインターフェースケーブル３を介して接続されて構成されたときの状態を示す図である。
【００２３】
データ記録再生装置２は、図１に示すように、記録媒体２０にデータを書き込み、書き込まれているデータを読み出すヘッド部２１と、記録媒体２０にアクセスする際にヘッド部２１を駆動するヘッド駆動部２２と、記録媒体２０を所定方向に所定の回転数で駆動する記録媒体駆動部２３と、ヘッド駆動部２２と記録媒体駆動部２３を制御するサーボ制御部２４と、ヘッド部２１に接続されており、供給されるデータに対して所定の処理を行うリードライトチャンネル部２５と、サーボ制御部２４とリードライトチャンネル部２５とを制御する制御部２６と、一時的にデータがバッファリングされるバッファメモリ２７と、所定の容量を有する不揮発性固体メモリ２８と、所定の容量を有するページバッファ２９と、データの書き込み及び読み出しを行うために不揮発性固体メモリ２８にアクセスする際にバッファメモリ２９と不揮発性固体メモリ２８とページバッファ２９とを制御するメモリ制御部３０と、所定の演算を行い、データ記録再生装置２の各部に必要なコマンド及びパラメータを設定して動作させる演算処理部（ＣＰＵ）３１と、ＣＰＵ３１による演算等に用いられるメモリ３２と、ホスト装置１とデータ及び制御情報等の送受信を行うインターフェース制御部３３とを備える。また、データ記録再生装置２は、ホスト装置１の制御にしたがってデータのアクセスが行われる第１のデータアクセスモード（PCモード）と、データ記録再生装置２自身の制御によってデータのアクセスを行う第２のデータアクセスモード（AVモード）とを有する。
【００２４】
＜ファイルシステムについて＞
ここで、本発明に係るデータ記録再生装置２で採用するファイルシステムについて図２を参照して説明する。なお、以下では、記録媒体２０をＨＤＤと呼ぶ。
【００２５】
ＨＤＤにおいてデータを記録する最小の単位は、セクタで（通常、５１２ｂｙｔｅ）である。ホスト装置１は、論理ブロックアドレス（LBA）を用いてＨＤＤにアクセスを行う。既に説明したように、不揮発性固体メモリ２８の最小単位はページであり、このページのサイズは、セクタのサイズとは必ずしも一致するわけではないが、セクタの整数倍で構成されている。したがって、論理ページ番号と論理アドレスを容易に関係付けることが可能である。したがって、ホスト装置１は、データ記録再生装置２に対してＨＤＤと同様に不揮発性固体メモリ２８に対しても論理ブロックアドレス（LBA）を用いてアクセスを行うことが可能である。
【００２６】
また、ファイルを管理するファイルシステムでは、複数のセクタ（N個）を１クラスタとし、このクラスタをデータの読み書きの際の最小単位としている。また、ＦＡＴ（File Allocation Table）は、一つのファイルがクラスタにどのように格納されているかを記録してあるテーブルである。このＦＡＴを用いて管理を行うファイルシステムのことをＦＡＴファイルシステムと呼ぶ。以後、クラスタアドレスは、ＬＢＡを単純にＮで割ったものとし、本実施例における説明では、N=16とする（１クラスタ＝8KByte）。
【００２７】
また、ＦＡＴファイルシステムボリュームは、３つの領域（予約領域Ａ、ＦＡＴ領域Ｂ、ファイルとディレクトリデータ領域Ｃ）から構成されている。なお、本実施例では、パーティションは、１つの場合しか想定しないのでボリュームとパーティションは同一のもとなっている。
【００２８】
また、図２では、ディレクトリ項目Ｄにファイル名やその開始クラスタ番号が格納されている。ホスト装置１は、ディレクトリ項目Ｄの中身を読み出して、開始クラスタ番号を知り（図２では「12340h」）、それに対応するＦＡＴ項目（FAT Entry）を参照して、ファイルの次のクラスタがクラスタ番号「12341h」にあることを知る。ホスト装置１は、順次、続くクラスタ番号を求め、最後に「1237Fh」の中身が「EOF（End of File）」であるところまで配置情報を読み出す。そして、ホスト装置１は、読み出した配置情報に基づいてファイルにアクセスを行う。このようなアクセス方法をＰＣモードと呼ぶ。
【００２９】
記録媒体２０は、前述したＦＡＴ（File Allocation Table）ファイルシステムによって管理されており、少なくとも所定のデータサイズ（クラスタ）ごとにアドレス（以下、物理アドレスという。）が付されてなるユーザデータエリアからなるＨＤ（ハードディスク）等のディスク状記録媒体により構成されている。なお、データ記録再生装置２では、記録媒体２０の代わりに所定の容量を有する不揮発性メモリを用いて構成されても良い。ただし、不揮発性メモリは、不揮発性固体メモリ２８とは異なり、データを書き込む際に、対象となるエリア（ページ）に書き込まれているデータの消去動作が不要なメモリであり、例えば、MRAM、FeRAM、nVSRAM等である。
【００３０】
ヘッド部２１は、記録媒体２０がＨＤ等の磁気記録媒体である場合には、外部磁界の大きさや向きにより抵抗値が変化する、いわゆる磁気抵抗効果を利用し、記録媒体２０からの信号磁界を検出するための感磁素子を有する磁気ヘッドにより構成される。
【００３１】
ヘッド駆動部２２は、サーボ制御部２４の制御に応じて、ヘッド部２１の動作を制御する。
【００３２】
記録媒体制御部２３は、サーボ制御部２４の制御に応じて、記録媒体２０を所定の回転数で回転するように制御する。
【００３３】
サーボ制御部２４は、記録媒体２０を所定方向に所定速度で回転駆動させるように記録媒体駆動部２３を制御し、また、記録媒体２０上の所定の場所にアクセスするためにヘッド部２１の駆動を制御する。
【００３４】
リードライトチャンネル部２５は、データの書き込み動作時に、供給されたデータを符号化（変調）し、記録再生系の特性に適したデジタルビット系列に変換した後、変換後のデータをヘッド部２１に供給する。また、リードライトチャンネル部２５は、データの読み出し動作時に、ヘッド部２１から供給された再生信号から高域ノイズを除去した後でアナログデジタル変換器（ADC、Analog Digital Converter）によりデジタル化し、最尤復号法等を用いて所定の処理を行った後、復調を行う。
【００３５】
制御部２６は、バッファメモリ２７、不揮発性固体メモリ２８、リードライトチャンネル部２５、インターフェース制御部３３それぞれの間のデータのやり取りを管理し、データのフォーマットにかかわる処理を行う。また、制御部２６は、当該処理を行う際に、誤り訂正符号による符号化と、誤り検出及び誤り訂正にかかわる処理も併せて行う。
【００３６】
また、ホスト装置１から書き込まれたデータは、記録媒体２０、あるいは不揮発性固体メモリ２８に格納される。バッファメモリ２７は、その際、あるいはデータの読み出し時に、一時的にデータの格納（バッファリング）が行われ、転送速度の違いや起動に伴う遅延などによる性能の低下を抑えるために用いられる。また、通常、バッファメモリ２７は、コストのことを考慮してDRAMあるいはSRAMで構成される。
【００３７】
不揮発性固体メモリ２８は、例えば、ＦＡＴファイルシステムが採用されるＮＡＮＤ型ＦＬＡＳＨメモリカード（Memory Stick、Compact Flash、SD Card等）であり、所定のデータサイズ（ページ）ごとに、所定のアドレス（以下、論理ページ番号という。）が付されてなるデータエリアを有する。また、不揮発性固体メモリ２８は、データを書き込む際に、対象となるページに書き込まれているデータの消去動作が必要なメモリである。
【００３８】
また、不揮発性固体メモリ２８と記録媒体２０とは、後述するように、一部重複エリア（オーバーラップエリア）を有しつつ、同一のアドレス空間（論理ブロックアドレス（LBA））上に配置されている。制御部２６は、そのアドレスを用いて、不揮発性固体メモリ２８と記録媒体２０に対してデータの読み書きの動作を行う。なお、図１に示されているメモリ制御部３０と、バッファメモリ２７と、不揮発性固体メモリ２８とを連結するバスの構成は、一例であり、メモリとのインターフェースに基づいて適宜変更されるものである。
【００３９】
また、ページバッファ２９は、不揮発性固体メモリ２８と、メモリ制御部３０の間に配置され、バッファメモリ２７と不揮発性固体メモリ２８との間で行われるページ単位での転送を効率的に処理するために用いられる。また、ページバッファ２９は、バッファメモリ２９を経由しないで、不揮発性固体メモリ２８内のデータを不揮発性固体メモリ２８の他の場所にコピーする際にも使用される。なお、データ記録再生装置２は、ページバッファ２９を具有していない構成であっても良いが、詳細は後述するが、効率的なガベージコレクションを実行するために具有している方が好ましい。
【００４０】
メモリ制御部３０は、AVモードが選択されているときに、ホスト装置１から供給されるデータを記録媒体２０又は不揮発性固体メモリ２８に書き込む場合、又は記録媒体２０又は不揮発性固体メモリ２８に書き込まれているデータをホスト装置１へ送信する場合に、不揮発性固体メモリ２８に対してガベージコレクションが必要かどうかの判断を行い、必要な場合にはガベージコレクションを行う。
【００４１】
ここで、メモリ制御部３０の動作について説明する。また、不揮発性固体メモリ２８は、1GBitのフラッシュメモリ（Block Size=128KB、Page Size=2KB）であり、ブロックが1024個あり、ページが全部で65536ページで構成されているものとする。また、物理ページ番号は、図３に示すように、上位10bit（「0x000」から「0x3FF」）でブロックを示し、下位6bit（「0x00」から「0x3F」）でブロック内のオフセットを示す。なお、ここでの「x」は、１６進法を表すものとする。また、NANDフラッシュメモリでは、不良ブロックを交替しなければならないので、一部のブロックをその用途に残しておかなければならない。図３では、ブロック番号「0x3F0」から「0x3FF」の16個のブロックをそれにあてている。そのため、論理ページ番号は、上位10bit（「0x000」から「0x3EF」）でブロックを示し、下位６bit（「0x00」から「0x3F」）でブロック内のオフセットを示している。
【００４２】
また、不揮発性固体メモリ２８では、できるだけ均等に各ブロックを消去し、また、できるだけ均等に各ページにデータを書き込むために、所定の追記型処理（Wear Leveling）を行っている。データ記録再生装置２では、この追記型処理を行うために、論理ページ番号に対応する物理ページ番号が記録されるテーブル１と、ブロック番号との対応におけるページの状態を示すフラグ（未使用を「０」で示し、有効を「１」で示し、無効を「２」で示す）が記録されるテーブル２とを利用する。したがって、メモリ制御部３０は、テーブル２を参照することにより、データの書換えが行われ、現在、無効となっているページを知ることができる。また、データ記録再生装置２は、次のデータの書き込みの際に使用されるページを示す「ポインタ」を導入する。
【００４３】
＜ホスト装置の構成＞
また、ホスト装置１は、インターフェース３を介してデータ記録再生装置２とデータの送受信を行うインターフェース制御部４０と、所定の演算処理を行うＣＰＵ４１と、ＣＰＵ４１による演算等に用いられるメモリ４２とを備える。ホスト装置１は、例えば、データ記録再生装置２の長所を生かして効率良く記録再生処理を行うビデオカメラ、デジタルカメラ、音楽プレイヤー等のアプリケーション機器である。
【００４４】
ＣＰＵ４２は、電源起動時、所定の処理手順の実行により、ディスク２０のシステム領域に記録されてなる管理用データであるブート領域、ＦＡＴ領域、ディレクトリ領域に格納されている各データをメモリ４２にアップロードし、このアップロードしたデータを基準にしたパラメータの設定により種々のコマンドをデータ記録再生装置２に対して送信する。
【００４５】
＜新規データの書き込み＞
ここで、新規データの書き込みについて図４を参照して説明する。図４は、論理ページ番号「0x001_00」に書き込みを行った場合の例である。図４（Ａ−１）、（Ａ−２）は、不揮発性固体メモリ２８の論理ページ番号と物理ページ番号の対応関係を示すテーブル１であり、図４（Ｂ−１）、（Ｂ−２）は、ブロック番号とフラグの対応関係を示すテーブル２であり、図４（Ｃ−１）、（Ｃ−２）は、ポインタである。なお、図中の「x」は、（０，１，２）のいずれかの値をとるという意味である。
【００４６】
メモリ制御部３０は、ポインタが「0x002_01」を示しているので（図４（Ｃ−１））、そこにデータの書き込みを行う。次に、メモリ制御部３０は、テーブル１の「0x001_00」に対応する物理ページ番号に、「0x002_01」を入れる（図４（Ａ−２））。また、メモリ制御部３０は、同時にテーブル２で物理ページ番号「0x002_01」に対応するフラグを有効、すなわちフラグを「０」から「１」へ変更する（図４（Ｂ−２））。また、メモリ制御部３０は、ポインタをインクリメントし、「0x002_02」にセットする（図４（Ｃ−２））。
【００４７】
＜データの書き換え＞
つぎに、データの書換えを行う場合について図５を参照して説明する。なお、図５では、論理アドレス番号「0x001_01」に書かれていたデータの書き換えを行ったものである。メモリ制御部３０は、ポインタが「0x003_02」を示しているので（図５（Ｃ−１））、そこに書き込みを行う。次に、メモリ制御部３０は、テーブル１の「0x001_03」に対応する物理ページ番号を「0x002_03」から「0x003_02」に変更し（図５（Ａ−２））、同時にテーブル２で物理ページ番号「0x002_03」に対応するフラグを無効、すなわち、フラグを「１」から「２」へ変更し、書き込みを行った物理ページ番号「0x003_02」に対応するフラグを有効、すなわち、フラグを「０」から「１」へ変更する（図５（Ｂ−２））。また、メモリ制御部３０は、ポインタを一つインクリメントし、「0x003_03」にセットする（図５（Ｃ−２））。
【００４８】
このようにして、データの書き込みを継続してゆくと、無効なページが次第に増加し、最終的には使用できるページがなくなってしまう。そこで、メモリ制御部３０は、有効なデータを他のブロックに移動して、１つのブロック内の全ページを無効化した後に、消去を行い使用可能な領域を増やす処理、いわゆるガベージコレクションを行う。ここで、ガベージコレクションについて、図６及び図７を用いて説明する。なお、図６及び図７では、説明上便宜的に、１ブロックに４個のページがあるものとする。
【００４９】
＜ガベージコレクションについて＞
メモリ制御部３０は、図６に示すように、データを論理ページ「0x000_1」から「0x002_1」まで書き込み（図６（Ａ−１））、その後、論理ページ「0x000_0」と「0x000_1」を書き直し、さらに論理ページ「0x001_2」と「0x002_3」を消去することにより、ガベージコレクションを実行する。テーブル２から分かるように、ブロック１とブロック２に無効なページがあり、それらがガベージコレクションの対象となる（図６（Ｂ−２））。
【００５０】
また、メモリ制御部３０は、図６（Ａ−２）、（Ｂ−２）、（Ｃ−２）に示す状態から、ブロック番号「0x000」、「0x001」の順番でガベージコレクションを実行する（図７乃至図９）。なお、図６（Ａ−２）、（Ｂ−２）、（Ｃ−２）と、図７（Ａ−２）、（Ｂ−２）、（Ｃ−２）は、同一のものである。
【００５１】
メモリ制御部３０は、ブロック番号「0x000」の有効な二つのページ（フラグが「１」を示している）をポインタが与える物理ページ番号「0x003_0」と「0x003_1」にコピーしてテーブル１とテーブル２を適宜更新し、ポインタを「0x003_2」にセットする（ステップＳ１）（図７（Ａ−３）、（Ｂ−３）、（Ｃ−３））。その後、メモリ制御部３０は、ブロック内の全てのページが無効となっているブロック番号「0x000」の消去を行い、テーブル２を更新する（ステップＳ２）（図８（Ａ−４）、（Ｂ−４）、（Ｃ−４））。つぎに、ブロック番号「0x001」内の有効な二つのページ（フラグが「１」を示している）をポインタが与える物理ページ番号「0x003_2」と「0x003_3」にコピーして、テーブル１とテーブル２を適宜更新し、ポインタを「0x004_0」にセットする（ステップＳ３）（図８（Ａ−５）、（Ｂ−５）、（Ｃ−５））。その後、メモリ制御部３０は、ブロック内の全てのページが無効となっているブロック番号「0x001」の消去を行い、テーブル２を更新する（ステップＳ４）（図９（Ａ−６）、（Ｂ−６）、（Ｃ−６））。したがって、ステップＳ１〜ステップＳ４により、ブロック番号「0x000」及びブロック番号「0x001」に属するページに新たなデータを書き込むことができるようになる。
【００５２】
＜不揮発性固体メモリ２８と記録媒体２０の記憶空間＞
ここで、図１０を用いて、データ記録再生装置２内部において不揮発性固体メモリ２８と記録媒体２０の記憶空間がどのように配置されるかを説明する。
【００５３】
データ記録再生装置２との記憶空間は、図１０に示すように、データ記録再生装置２用のシステム領域Ｅと、ディスクキャッシュ領域Ｆと、ユーザ領域Ｇ１と、ユーザ領域Ｇ２と、ユーザ領域Ｇ３とから構成されている。また、ユーザ領域Ｇ１〜Ｇ３は、ホスト装置１から見たＬＢＡ空間に割り当てられている。
【００５４】
システム領域Ｅは、不揮発性固体メモリ２８で構成され、ＣＰＵ３１がブートコードや各種テーブルを格納するため、あるいは二次欠陥の代替処理用の領域として使用するものである。
【００５５】
ディスクキャッシュ領域Ｆは、記録媒体２０で構成され、一時的にデータを格納する目的に使用される。図１０に示す例では、ディスクキャッシュ領域Ｆの容量は、１２８ＭＢｙｔｅである。ホスト装置１は、ディスクキャッシュ領域Ｆに対して直接的にアドレスを指定して書き込みを行うことはできない。
【００５６】
ユーザ領域Ｇ１は、不揮発性固体メモリ２８で構成され、記録媒体２０を用いて一部あるいは全部がバックアップされる。ユーザ領域Ｇ１は、ＭＢＲ（Master Boot Record）とＰＢＲ（Partition Boot Record）を含む予約領域と、ＦＡＴ(File Allocation Table）領域を含む。なお、ＭＢＲは、ホスト装置１から見てＬＢＡ「０」のセクタであり、ブートストラップ・コードやパーティション・テーブルが記録されている。
【００５７】
ユーザ領域Ｇ２は、記録媒体２０で構成され、ファイルの情報を管理するディレクトリ項目Ｄと、実際のデータが入る。なお、ＦＡＴ３２以前では、ルートディレクトリだけは別な領域として分けられていた。また、ディレクトリ項目Ｄには、各ディレクトリ（各ファイル）に関して、ファイル名、拡張子、属性、最新更新時間、開始クラスタ番号、ファイルサイズの各情報が格納されている。
【００５８】
ユーザ領域Ｇ３は、不揮発性固体メモリ２８で構成され、記録媒体２０を用いて一部あるいは全部がバックアップされる。また、ユーザ領域Ｇ３は、ホスト装置１からは通常、データの書き込みができないように設定されていて、特別なモード（ＡＶモード）が選択された時にのみ、データ記録再生装置２自身の管理の元で、データの書き込み可能となる領域である。
【００５９】
また、図１０では、不揮発性固体メモリ２８は、２つのモジュール（Module１及びModule２）から構成されているものとしている。すなわち、論理ページ番号「00000h」から「0ffffh」のページはModule１に属し、また、論理ページ番号「10000h」から「1ffffh」のページはModule２に属する。なお、Module１とModule２は、それぞれ独立にProgram（ページ単位の書き込み動作）と消去動作を行うことができる。
【００６０】
ここで、データ記録再生装置２において、データの書き込み及び読み出しが実行されている間に、そのデータ転送に影響を与えることなくガベージコレクションを実行する方法について、図１１及び図１５のフローチャートを参照して説明する。まず、データの書き込みの場合について説明する。
【００６１】
＜データの書き込み時におけるガベージコレクションについて＞
ＡＶモードにおいて、データの書き込み動作を行う場合には、ホスト装置１は、図１２（Ａ）に示すコマンド（Set Write File Parameter）をデータ記録再生装置２に対して発行し、データ記録再生装置２からファイルの記録開始クラスタ番号を受け取る。なお、データ記録再生装置２は、ホスト装置１に対して図１２（Ｂ）に示すコマンド（Set Write File Parameter）を返信する。
【００６２】
制御部２６は、図１１に示すように、ホスト装置１から供給されたコマンド内のパラメータＭＰが「１」であるかどうかを確認する（ステップＳ１１）。制御部２６は、パラメータＭＰが「１」でない場合には、ホスト装置１から供給されるデータを記録媒体２０に書き込むようにサーボ制御部２４及びリードライトチャンネル部２５を制御する（ステップＳ１２）。なお、パラメータＭＰが「１」に設定されている場合には、ホスト装置１から供給されるデータは、ユーザ領域Ｇ３（不揮発性固体メモリ２８）に書き込まれる。
【００６３】
メモリ制御部３０は、ユーザ領域Ｇ３に空き容量があるかどうかを判断する（ステップＳ１３）。空き容量がない場合には、その旨（abort）をホスト装置１に通知する（ステップＳ１４）。
【００６４】
メモリ制御部３０は、ユーザ領域Ｇ３に空き領域があると判断した場合には、ホスト装置１にファイルの記録開始クラスタ番号を送信する（ステップＳ１５）。
【００６５】
つぎに、メモリ制御部３０は、不揮発性固体メモリ２８にガベージコレクションが必要かどうかを確認する（ステップＳ１６）。メモリ制御部３０は、ステップＳ１６の工程において、ガベージコレクションが必要であると判断した場合、すなわち、全ての不揮発性固体メモリ２８において、ガベージコレクションを必要とするブロックの数が予め定めた数よりも多いとき、又はガベージコレクションを必要とするブロックの数が予め定めた数より多いメモリを、書換え回数の平均化等の理由で使用しなければならないときには、書き込みを行う不揮発性メモリに対してガベージコレクションを実行する（ステップＳ１７）。
【００６６】
また、メモリ制御部３０は、ステップＳ１６の工程において、ガベージコレクションが必要でないと判断した場合、すなわち、不揮発性固体メモリ２８の一部でガベージコレクションを必要とするブロックの数が予め定めた数より多い場合には、それらを避けてデータの書き込みを行う（ステップＳ１８）。
【００６７】
また、制御部２６は、ガベージコレクションが実行されているときには、ホスト装置１から供給されるデータを一時的に記録媒体２０のディスクキャッシュ領域に書き込む（ステップＳ１９）。また、制御部２６は、ファイルの記録開始クラスタ番号と、使用されるディスクキャッシュ領域のアドレスとの対応を与える対応表（ポインタ）を作成する（ステップＳ２０）。なお、データ記録再生装置２は、複数個の不揮発性固体メモリ２８で構成されていても良い。このように構成される場合には、ホスト装置１から供給されるデータは、ガベージコレクションが必要でない他の不揮発性固体メモリ２８、すなわち、ガベージコレクションを必要とするブロックの数が予め定めた数より多い不揮発性固体メモリ２８に対して記録される。
【００６８】
また、メモリ制御部３０は、ガベージコレクションが完了した後、ステップＳ２０の工程において生成された対応表に基づいて、ホスト装置１の許可を受けた後、あるいは自律的に、記録媒体２０のディスクキャッシュ領域に書き込まれたデータを、不揮発性固体メモリ２８に書き戻し、アドレス情報もそれにあわせて更新する工程を有する。
【００６９】
メモリ制御部３０は、不揮発性固体メモリ２８の使用可能なブロック数を更新し（ステップＳ２１）、全てのデータが書き込まれたかどうかを判断する（ステップＳ２２）。メモリ制御部３０は、ステップＳ２２の工程において、全てのデータが書き込まれていないと判断した場合には、ステップＳ１６の工程に戻る。
【００７０】
ここで、データ記録再生装置２の不揮発性固体メモリ２８が２つのモジュール（Module１及びModule２）から構成されている場合において、例えば、Module１は、ガベージコレクションを必要とするブロックの数が予め定めた数よりも多いモジュール、すなわち、ガベージコレクションが必要なモジュールであり、Module２は、ガベージコレクションを必要とするブロックの数が予め定めた数よりも少ないモジュール、すなわち、ガベージコレクションが必要でないモジュールであるときに、不揮発性固体メモリ２８にデータを書き込む際のメモリ制御部３０の動作について図１３を参照して説明する。
【００７１】
メモリ制御部３０は、Module１及びModule２に対して、ガベージコレクションが必要かどうかを判断し、Module１にガベージコレクションが必要であり、Module２にはガベージコレクションが不要であることを認識する。メモリ制御部３０は、Module１とページバッファ２９とを接続して、Module１に対してガベージコレクションを実行する。また、メモリ制御部３０は、Module２とバッファメモリ２７を接続して、Module２に対してデータの書き込みを行う。
【００７２】
このようにして、本発明に係るデータ記録再生装置２では、ガベージコレクションの実行中に、ホスト装置１から供給されるデータを他の記録領域に書き込むことができるので、ガベージコレクションの実行中であってもホスト装置１からのデータ転送を止めることがなく、また、不揮発性固体メモリ２８に十分な記憶容量がありながらも、無効ページ（データの書き込みができないページ）が多くなり、データの書き込み途中において、書き込むブロックが足りなくなってしまう現象を回避することができる。
【００７３】
＜データの読み出し時におけるガベージコレクションについて＞
つぎに、ＡＶモードにおいて、データの読み出し動作を行う場合には、ホスト装置１は、図１４（Ａ）に示すコマンド（Set Read File Parameter）をデータ記録再生装置２に対して発行し、データ記録再生装置２に読み出すファイルの開始クラスタアドレスを通知する。なお、データ記録再生装置２は、ホスト装置１に対して図１４（Ｂ）に示すコマンド（Set Read File Parameter）を返信する。
【００７４】
制御部２６は、図１５に示すように、ホスト装置１から供給されたコマンドに基づいて、読み出すファイルの開始クラスタアドレスを認識し、ユーザ領域Ｇ３へのアクセスを要求するものかどうかを判断する（ステップＳ３１）。
【００７５】
制御部２６は、ステップＳ３１の工程において、ユーザ領域Ｇ３へのアクセスを要求するものでないと判断した場合には、ユーザ領域Ｇ２（記録媒体２０）からデータの読み出しを行い、読み出したデータをホスト装置１に転送する（ステップＳ３２）。
【００７６】
また、メモリ制御部３０は、ステップＳ３１の工程において、ユーザ領域Ｇ３へのアクセスを要求するものであると判断した場合には、不揮発性固体メモリ２８にガベージコレクションが必要であるかどうかを確認する（ステップＳ３３）。なお、ステップＳ３３の工程では、データ記録再生装置２に不揮発性固体メモリ２８が複数個搭載されている場合には、各不揮発性固体メモリ２８に対して、ガベージコレクションを必要とするブロックの数が設定値以上かどうかを確認する。
【００７７】
メモリ制御部３０は、ステップＳ３３の工程において、ガベージコレクションが不要であると判断した場合には、ユーザ領域Ｇ３からデータを読み出し、ホスト装置１へ転送する（ステップＳ３４）。
【００７８】
また、メモリ制御部３０は、ステップＳ３３の工程において、ガベージコレクションが必要であると判断した場合には、ガベージコレクションの対象となっている不揮発性固体メモリ２８に、読み出しの対象となっているデータが書き込まれているかどうかを判断する（ステップＳ３５）。
【００７９】
メモリ制御部３０は、ステップＳ３５において、読み出しの対象となっているデータが書き込まれている不揮発性固体メモリ２８がガベージコレクションの対象であると判断した場合には、当該データが所属しているブロック全体をバッファメモリ２７に読み出し（ステップＳ３６）、不揮発性固体メモリ２８に対してガベージコレクションを実行し（ステップＳ３７）、ステップＳ３７の工程と並行して、バッファメモリ２７に読み出したデータをホスト装置１に転送する（ステップＳ３８）。
【００８０】
また、メモリ制御部３０は、不揮発性固体メモリ２８の使用可能なブロック数を更新し（ステップＳ３９）、全てのデータが読み出されたかどうかを判断する（ステップＳ４０）。メモリ制御部３０は、ステップＳ４０の工程において、全てのデータが読み出されていないと判断した場合には、ステップＳ３３の工程に戻る。
【００８１】
ここで、データ記録再生装置２の不揮発性固体メモリ２８が２つのモジュール（Module１及びModule２）から構成されている場合において、例えば、ホスト装置１から読み出し要求のあったファイルＡが、データｆｂ１と、データｆｂ２と、データｆｂ３と、データｆｂ４と、データｆｂ５とによって構成されており、Module１には、データｆｂ１とデータｆｂ４とが書き込まれており、Module２には、データｆｂ２と、データｆｂ３と、データｆｂ５とが書き込まれている場合に、メモリ制御部３０によってファイルＡを読み出す動作について図１６及び図１７を参照して説明する。なお、モードは、ＡＶモードが選択されているものとする。また、Module１は、ガベージコレクションを必要とするブロックの数が予め定めた数よりも多いモジュール、すなわち、ガベージコレクションが必要なモジュールであり、Module２は、ガベージコレクションを必要とするブロックの数が予め定めた数よりも少ないモジュール、すなわち、ガベージコレクションが必要でないモジュールである。
【００８２】
メモリ制御部３０は、Module１とバッファメモリ２７を接続し、Module１から読み出したデータｆｂ１及びデータｆｂ４をバッファメモリ２７に転送する（図１６）。つぎに、メモリ制御部３０は、Module２とバッファメモリ２７を接続し、Module２から読み出したデータｆｂ２と、データｆｂ３と、データｆｂ５とをバッファメモリ２７に転送する（図１７）。
【００８３】
メモリ制御部３０は、バッファメモリ２７に書き込まれているデータｆｂ１〜ｆｂ５を読み出して、ホスト装置１に転送し、同時に、Module１とページバッファ２９を接続し、Module１に対してガベージコレクションを実行する。
【００８４】
なお、バッファメモリ２７に転送する際のデータ量は、データの転送とガベージコレクションを合わせた時間を確保できるように決めるが、動作の細かい区切り毎、例えば、ページの転送毎に転送量を決めて、バッファメモリ２７に転送しても良い。
【００８５】
このようにして、本発明に係るデータ記録再生装置２では、ホスト装置１の要求に応じて任意のデータを読み出し、読み出したデータをホスト装置１に転送を行うとともに、並行して不揮発性固体メモリ２８に対するガベージコレクションを実行することができる。
【００８６】
また、本発明に係るデータ記録再生装置２は、ホスト装置１がデータの読み出しと、データの書き込みとを同時に要求する場合であっても対応することができる。データ記録再生装置２は、個々の不揮発性固体メモリ２８の各ブロックのページの状態（未使用、有効、無効）に関する管理を常に行っているので、データの書き込みが要求された場合には、ガベージコレクションが必要な不揮発性固体メモリ２８を避け、ガベージコレクションの必要がない他の不揮発性固体メモリ２８、或いは記録媒体２０のディスクキャッシュ領域にデータの書き込みを行い、また、並行してガベージコレクションが必要な不揮発性固体メモリ２８に対してガベージコレクションを実行する。
【００８７】
また、データ記録再生装置２は、データの読み出しが要求された場合には、ガベージコレクションに必要な時間を確保できるように、ガベージコレクションの実行対象となっている不揮発性固体メモリ２８から予めホスト装置１に転送される可能性があるデータを読み出してバッファメモリ２７に転送しておき、その後、当該不揮発性固体メモリ２８に対してガベージコレクションを実行し、また、並行してバッファメモリ２７に書き込まれているデータをホスト装置１に転送する。
【００８８】
このように構成されるデータ記録再生装置２は、所定の容量を有する記録媒体２０と、記録媒体２０と記憶空間を構成する、所定の容量を有する不揮発性固体メモリ２８と、記録媒体２０へのアクセスを制御する制御部２６と、所定の容量を有するバッファメモリ２７と、不揮発性固体メモリ２８へのアクセスを制御するメモリ制御部３０とを備え、不揮発性固体メモリ２８（NAND Flashメモリ）を使用する上で避けることのできないガベージコレクションを、ＡＶモードにおいて、他の不揮発性固体メモリ２８又は記録媒体２０にデータの書き込みを中断することなく並行して実行することができ、及びホスト装置１へのデータ転送に影響を及ぼすことなく並行して実行することができる。
【００８９】
また、データ記録再生装置２は、安定したデータ転送速度をホスト装置１に提供することが可能となるので、例えば、アプリケーション側から見て、動画再生中のこま落ちや、データの録画中における記録ミス等の問題が軽減される。さらに、既存のデータ記録再生装置２によって一般的に実行されているBackground Garbage Collection（データアクセスをしていない時にガベージコレクションを行うこと）の必要性が低下するので、データ記録再生装置２では、データアクセスをしていない時には電源消費が軽減される利点がある。
【００９０】
また、本実施例では、記憶装置としてＨＤＤを具体例にして説明を行ったが、ランダムアクセス可能な記憶装置であれば、例えば、ＣＤ，ＤＶＤ等の光ディスクであっても同様の処理が可能である。また、説明ではＦＡＴファイルシステムを用いたがデータをファイルとして管理するシステムであればどのようなものでも適用できる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態におけるデータ記録再生装置の構成を示すブロック図である。
【図２】ファイルシステムの説明に供するＬＢＡ空間を示す模式図である。
【図３】不揮発性固体メモリのアドレス空間を示す模式図である。
【図４】メモリ制御部の動作（新規データの書き込み）についての説明に供する図である。
【図５】メモリ制御部の動作（データの書き換え）についての説明に供する図である。
【図６】メモリ制御部によるガベージコレクションの動作についての説明に供する第１の図である。
【図７】メモリ制御部によるガベージコレクションの動作についての説明に供する第２の図である。
【図８】メモリ制御部によるガベージコレクションの動作についての説明に供する第３の図である。
【図９】メモリ制御部によるガベージコレクションの動作についての説明に供する第４の図である。
【図１０】不揮発性固体メモリと記録媒体との記憶空間についての説明に供する図である。
【図１１】本発明に係るデータ記録再生装置によるデータの書き込み動作についての説明に供するフローチャートである。
【図１２】データの書き込み動作の際に、データ記録再生装置とホスト装置との間で送受信されるSet Write File Parameterの模式図である。
【図１３】不揮発性固体メモリにデータを書き込む際のメモリ制御部の動作についての説明に供する図である。
【図１４】データの読み出し動作の際に、データ記録再生装置とホスト装置との間で送受信されるSet Read File Parameterの模式図である。
【図１５】本発明に係るデータ記録再生装置によるデータの読み出し動作についての説明に供するフローチャートである。
【図１６】不揮発性固体メモリからデータを読み出す際のメモリ制御部の動作についての説明に供する第１の図である。
【図１７】不揮発性固体メモリからデータを読み出す際のメモリ制御部の動作についての説明に供する第２の図である。
【符号の説明】
【００９２】
１  ホスト装置、２  データ記録再生装置、２０  記録媒体、２１  ヘッド部、２２  ヘッド駆動部、２３  記録媒体駆動部、２４  サーボ制御部、２５  リードライトチャンネル部、２６  制御部、２７  バッファメモリ、２８  不揮発性固体メモリ、２９  ページバッファ、３０  メモリ制御部、３１  演算処理部（ＣＰＵ）、３２  メモリ、３３  インターフェース制御部
【図１】
2007193883.tif 000003
【図２】
2007193883.tif 000004
【図３】
2007193883.tif 000005
【図４】
2007193883.tif 000006
【図５】
2007193883.tif 000007
【図６】
2007193883.tif 000008
【図７】
2007193883.tif 000009
【図８】
2007193883.tif 000010
【図９】
2007193883.tif 000011
【図１０】
2007193883.tif 000012
【図１１】
2007193883.tif 000013
【図１２】
2007193883.tif 000014
【図１３】
2007193883.tif 000015
【図１４】
2007193883.tif 000016
【図１５】
2007193883.tif 000017
【図１６】
2007193883.tif 000018
【図１７】
2007193883.tif 000019