(57)【要約】【課題】コマンドの先行発行が可能な不揮発性記憶システムにおいて、アクセス装置が電源遮断時のファイルの整合性を保ちつつ、ユーザーデータおよび管理情報データの制御を実施するのは困難であった。【解決手段】コマンドスケジューラ１６２は、ユーザーデータおよび管理情報データにＳｅｑ番号を付与し、同一Ｓｅｑ番号をもつユーザーデータの書き込み完了後に、同一Ｓｅｑ番号を有する管理情報データの書き込みを実行するように制御する。これにより、書き込み中に電源遮断が発生してもファイルの整合性を保つことができる。【選択図】図１
2010049303.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリへのデータ記録を制御するメモリコントローラにおいて、
前記不揮発性メモリへのデータ書き込み、又は前記不揮発性メモリからのデータ読み出しを行う読み書き制御部と、
外部から、処理要求が示されるコマンドパケット及び前記不揮発性メモリへ書き込むデータ有するデータパケットを受信し、これら受信パケットを解析するパケット解析部と、
前記コマンドパケットが有する処理要求を蓄積し、要求される処理の実行時期を管理するコマンドスケジューラとを備え、
前記パケット解析部は、前記読み書き制御部が前記不揮発性メモリへのデータ書き込み又はデータ読み出しを行っている際に、コマンドパケットを受信し、該コマンドパケットの処理要求をコマンドスケジューラへ蓄積することを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、
前記受信パケットは、関連付けられるコマンドパケットとデータパケットで共通の識別子を有し、
前記コマンドパケットが有する処理要求の実施状況を前記識別子で管理する管理部を備え、
前記コマンドスケジューラは、前記実施状況に基づいて、次に実施する処理及び実行時期を管理することを特徴とするメモリコントローラ。
【請求項３】
請求項１乃至２のいずれかに記載のメモリコントローラと、不揮発性メモリを備えた不揮発性記憶装置。
【請求項４】
不揮発性メモリを有する不揮発性記憶装置へデータ書き込みを指示するアクセス装置において、
前記不揮発性記憶装置への処理要求を生成するコマンド生成部と、
前記不揮発性記憶装置へ転送するデータと関連付けられる前記処理要求に対して共通の識別子を割り当てる識別子生成部と、
前記転送するデータ及び前記処理要求から、共通の識別子を有したデータパケット及びコマンドパケットを生成するとともに、前記不揮発性記憶装置の処理状態を検出し、前記不揮発性記憶装置が処理中の際には、前記不揮発性記憶装置へコマンドパケットのみを出力するデータバッファ部とを備えることを特徴とするアクセス装置。
【請求項５】
請求項４に記載のアクセス装置において、前記識別子生成部は、前記不揮発性記憶装置へ転送するデータと関連付けられる該データの管理情報に係わる処理要求についてのみ共通の識別子を割り当てることを特徴とするアクセス装置。
【請求項６】
請求項３に記載の不揮発性記憶装置と請求項４乃至５のいずれかに記載のアクセス装置を備える不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを制御するメモリコントローラ、不揮発性メモリとメモリコントローラを備えた不揮発性記憶装置、前記不揮発性記憶装置へアクセスするアクセス装置、及び前記不揮発性記憶装置とアクセス装置を構成に備える不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。不揮発性記憶装置は、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。この不揮発性記憶装置は、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパソコン（パーソナルコンピュータ）本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなっている。
【０００３】
半導体メモリカードやポータブルオーディオなどの製品に内蔵されたフラッシュメモリは、記憶単位であるメモリセルアレイへの書き込みや消去に比較的長い時間を必要とするため、複数のメモリセルを一括して消去したり書き込んだりできる構造となっている。具体的には、複数の物理ブロック（消去単位）から構成され、各物理ブロックは複数のページ（書き込み単位）を含み、消去は物理ブロック単位で、書き込みはページ単位で行われる。
【０００４】
このような不揮発性記憶装置をデジタルスチルカメラ等のアクセス装置に取り付けて、アクセス装置側からリムーバブルディスクと見なして例えばＦＡＴファイルシステム等のファイルシステムで管理する。ＦＡＴファイルシステムは、ファイル・アローケション・テーブル（以降、ＦＡＴと明記する）を用いて「クラスタ」ごとにファイルデータを管理し、半導体メモリカードなどの不揮発性記憶装置へファイルデータを書き込む際には、空きクラスタにファイルデータをアロケートし、さらに該ファイルデータと該ファイルデータがアロケートされたクラスタ番号（論理アドレス）とを不揮発性記憶装置に指定する。
【０００５】
ファイルデータは、データの実体であるユーザーデータと、ユーザーデータを管理するための管理情報データである、ＦＡＴ１、ＦＡＴ２、ディレクトリエントリ（以後ＤＩＲと略記する）に大別される。ＦＡＴ１は、上述したクラスタ単位でのファイルアロケート情報である。ＦＡＴ２はＦＡＴ１のバックアップであり、ＦＡＴ１と同じ内容を不揮発性記憶装置の別の領域に保持する。ＤＩＲはファイル名、ファイル書き込み時刻などファイルの属性が保持されたデータである。ＦＡＴ１とＦＡＴ２の内容が完全に一致したときに限り、ＦＡＴ情報は正常であるとする。
【０００６】
ところで、ＳＤカードをはじめとする半導体メモリカードは、複数のホスト間でのデータ共有が容易にできるブリッジメディアとしての役割が大きく、ホストに対して装着、抜去が容易であることが特徴である。従ってホストから半導体メモリカードに対してデータの書き込みの最中に、ユーザーの故意または不注意により半導体メモリカードが抜去される可能性がある。このとき、ユーザーデータと、ＦＡＴデータとの関係に不整合が生じると、すでに記録したファイルデータを正しく読み出すことができなくなる。  
【０００７】
上記を解決するための手段として、特許文献１に、旧データが書き換えられた物理領域に対応するアドレス管理情報を、無効予定状態とし、一連の書き込み処理終了までは書き込みを禁止とすることにより、データ書き込み中に抜去等により電源遮断等の障害が生じても、書き込み前の状態、即ち旧データが残っている状態に戻す方法が開示されている。
【０００８】
図７は、不揮発性記憶装置の一つであるＳＤカードと、ビデオカメラ等のアクセス装置からなる従来の不揮発性記憶システムについて説明したブロック図である。また図８は、図７に示すＳＤカードの不揮発性メモリ７７０の論理アドレス空間の一例を示した図である。図８は、ＦＡＴ１、ＦＡＴ２データは、システム領域７７２内の所定の位置に、ユーザーデータとＤＩＲはユーザーデータ領域７７１に格納されることを示している。
【０００９】
アクセス装置７００とＳＤカード７１０は、インターフェースバス７２０で接続されている。アクセス装置７００は、アプリケーション７３０、ファイルシステム７４０、およびＳＤカードＩ／Ｆ部７５０を含む。一方ＳＤカード７１０は、アクセス装置Ｉ／Ｆ部７６０と不揮発性メモリ７７０から構成される。アクセス装置Ｉ／Ｆ部７６０はコマンド解析部７６１と書き込み制御部７６２を含み、また不揮発性メモリ７７０はユーザーデータ領域７７１とシステム領域７７２を含む。
【００１０】
アプリケーション７３０はＡＰＩ呼出部７３１とユーザーデータ入力部７３２からなる。ユーザーデータ入力部７３２は、ファイルに書き込むユーザーデータの供給元であり、アクセス装置７００内部の記憶装置（図示せず）から供給される場合もあれば、アクセス装置７００の外部からＩ／Ｆ（図示せず）を介して供給される場合もある。
【００１１】
ファイルシステム７４０は、コマンド生成部７４１と書き込みアドレス生成部７４２と、管理情報データ生成部７４３からなる。
【００１２】
ユーザーデータのＳＤカード７１０への書き込みは、アプリケーション７３０が、ＡＰＩ呼出部７３１よりＡＰＩを呼び出すと、コマンド生成部７４１がインターフェースバス７２０上でのＷｒｉｔｅコマンドを、書き込みアドレス生成部７４２が書き込み先論理アドレスをＳＤカードＩ／Ｆ部７５０に供給し、インターフェースバス７２０上にＷｒｉｔｅコマンドおよびユーザーデータ入力部７３２より供給される書き込むユーザーデータを転送することで実施する。
【００１３】
アクセス装置Ｉ／Ｆ部７６０はコマンド解析部７６１にてコマンドを解釈する。コマンドがＷｒｉｔｅコマンドのようにデータを伴う場合、アプリケーション７３０は、ユーザーデータ入力部７３２より供給されるユーザーデータをＳＤカードＩ／Ｆ部７５０を介してインターフェースバス７２０経由で転送する。
【００１４】
アクセス装置Ｉ／Ｆ部７６０がユーザーデータを受信したとき、書き込み制御部７６２は、ユーザーデータ領域７７１内の指定された論理アドレスに当該ユーザーデータを書き込む。
【００１５】
一方ＦＡＴデータの書き込みは以下のように実施される。アプリケーション７３０がＡＰＩ呼出部７３１より同期ＡＰＩを呼び出すと、コマンド生成部７４１はＦＡＴ１データのＷｒｉｔｅコマンドが発行され、続いて管理情報データ生成部７４３のＦＡＴ１データをＳＤカードＩ／Ｆ部７５０を介してインターフェースバス７２０経由で転送する。
【００１６】
アクセス装置Ｉ／Ｆ部７６０がＦＡＴ１データを受信したとき、書き込み制御部７６２は、システム領域７７２内の指定された論理アドレスに当該ＦＡＴ１データを書き込む。
【００１７】
以下同様にＦＡＴ２データ、ＤＩＲデータのＷｒｉｔｅコマンドが発行され、前者はシステム領域７７２内に、後者はユーザーデータ領域７７１内にデータが書き込まれることで、ファイル同期ＡＰＩが完了する。
【００１８】
図９は、図７の不揮発性記憶システムにおいて、動画等のユーザーデータを連続的に記録する場合の、インターフェースバス７２０上のコマンドおよびファイルデータを時系列に説明した図である。現行のＳＤカードでは、カード内部で処理を実行中（ｂｕｓｙ状態）に別のコマンドを発行することができない。またＡＰＩ呼出部７３１がＡＰＩを呼び出したとき、所定の処理が完了するまでｂｌｏｃｋｉｎｇされる。
【００１９】
また論理アドレス空間上で、アドレスが不連続の領域に１回のコマンドでファイルデータの読み書きはできない。さらに通常、ファイルデータの書き込みは、上述したように最初にユーザーデータを書き込み、上記が正常に終了した後、ＦＡＴなど、対応する管理情報データの書き込みを実施しなればならない。仮に管理情報データ、ユーザーデータの順に書き込む場合、ユーザーデータ書き込み中に抜去等による電源遮断が発生したとき、ＦＡＴは正しく更新されているが、対応するユーザーデータが更新されていない場合が生じる。そのため、当該ファイルデータをＲｅａｄするとき、書き込みに失敗したユーザーデータのクラスタが読み出されることになり、正しくデータをＲｅａｄすることができなくなるからである。ユーザーデータ、管理情報データの順であれば、例えば特許文献１に記載の方法により、ファイルデータＲｅａｄ時の不整合を防止することができる。
【００２０】
アプリケーション７３０のＡＰＩ呼出部７３１がユーザーデータａの書き込みＡＰＩを発行すると、ファイルシステム７４０のコマンド生成部７４１は「Ｗｒｉｔｅ（ユーザーデータａ）」を発行し、続けてユーザーデータ入力部７３２より供給されたユーザーデータａがアクセス装置７００からＳＤカード７１０に転送される。通常インターフェースバス７２０上の転送速度より、不揮発性メモリへ７７０への書き込み速度が低く、かつ書き込み制御部７６２でのアドレス変換、プログラミング等のオーバーヘッドがあるため、所定のユーザーデータ転送が完了してもＳＤカード７１０内部での処理が未完了のため、しばらくｂｕｓｙ状態が継続する。ｂｕｓｙ状態では、インターフェースバス７２０上のコマンドは発行できない。
【００２１】
ユーザーデータａの書き込みが完了し、ｂｕｓｙ状態が解除になった後、アプリケーション７３０のＡＰＩ呼出部７３１は同期ＡＰＩを呼び出すことができる。このとき、ファイルシステム７４０は、ＳＤカードＩ／Ｆ部７５０を介してユーザーデータａに対応するＦＡＴ１ａデータのＷｒｉｔｅコマンドを発行することができる。
【００２２】
時刻Ｔ１でＦＡＴ１ａのＷｒｉｔｅコマンドが発行されたとき、続けてＦＡＴ１ａデータが転送される。以後同様にＦＡＴ２ａ、ＤＩＲａのＷｒｉｔｅコマンドが発行される。なお、ＦＡＴ１、ＦＡＴ２、ＤＩＲの管理情報データは通常サイズが小さいため、ここではデータ転送完了とｂｕｓｙ状態解除がほぼ同時であるとみなす。
【００２３】
ＤＩＲａの書き込みが完了した後、アプリケーション７３０のＡＰＩ呼出部７３１はユーザーデータｂの書き込みＡＰＩを発行できる。
【特許文献１】特開２００５−２４３０００号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
このように、従来の不揮発性記憶システムにおいては、インターフェースバス７２０上でコマンドもしくはファイルデータの転送が実施されていなくても、ＳＤカードがｂｕｓｙ状態であればコマンドの発行を実施することができないため、バスを効率的に利用できない、という課題があった。
【００２５】
そこで本発明の目的は、ファイルデータ書き込みなどコマンド処理実行中であっても別のコマンドを発行してインターフェースバスを効率よく利用することである。
【課題を解決するための手段】
【００２６】
前記目的を達成するため本発明は、不揮発性メモリへのデータ記録を制御するメモリコントローラにおいて、不揮発性メモリへのデータ書き込み、又は不揮発性メモリからのデータ読み出しを行う読み書き制御部と、外部から、処理要求が示されるコマンドパケット及び不揮発性メモリへ書き込むデータ有するデータパケットを受信し、これら受信パケットを解析するパケット解析部と、コマンドパケットが有する処理要求を蓄積し、要求される処理の実行時期を管理するコマンドスケジューラとを備え、パケット解析部は、読み書き制御部が不揮発性メモリへのデータ書き込み又はデータ読み出しを行っている際に、コマンドパケットを受信し、該コマンドパケットの処理要求をコマンドスケジューラへ蓄積することを特徴とするものである。
【００２７】
これにより、メモリコントローラが不揮発性メモリへデータ書き込み又はデータ読み出しを行っている場合でも、パケット解析部は外部からコマンドパケットを受信することが可能となる。
【００２８】
さらに本発明は、上記に記載のメモリコントローラにおいて、受信パケットは、関連付けられるコマンドパケットとデータパケットで共通の識別子を有し、コマンドパケットが有する処理要求の実施状況を識別子で管理する管理部を備え、コマンドスケジューラは、実施状況に基づいて、次に実施する処理及び実行時期を管理することを特徴とするものである。
【００２９】
これにより、コマンドスケジューラは、個々のコマンドパケットとデータパケットの関連性を識別（認識）することが可能となる。
【００３０】
なお、上記の発明は上記に記載のメモリコントローラと不揮発性メモリを備えた不揮発性記憶装置としても実現することが可能である。この場合には、本発明を各種の情報（データ）を記録する情報記憶媒体として実現することが可能となる。
【００３１】
また本発明は、不揮発性メモリを有する不揮発性記憶装置へデータ書き込みを指示するアクセス装置において、不揮発性記憶装置への処理要求を生成するコマンド生成部と、不揮発性記憶装置へ転送するデータと関連付けられる処理要求に対して共通の識別子を割り当てる識別子生成部と、転送するデータ及び処理要求から、共通の識別子を有したデータパケット及びコマンドパケットを生成するとともに、不揮発性記憶装置の処理状態を検出し、不揮発性記憶装置が処理中の際には、不揮発性記憶装置へコマンドパケットのみを出力するデータバッファ部とを備えることを特徴とするものであってもよい。
【００３２】
これにより、アクセス装置は不揮発性記憶装置の処理状態を検出することで、不揮発性記憶装置へ出力するパケットを選択することが可能となる。そのため、不揮発性記憶装置内部でデータの書き込み又は読み出しが行われている際にも、アクセス装置はコマンドパケットを不揮発性記憶装置へ出力することが可能となる。
【００３３】
さらに本発明は、上記のアクセス装置において、識別子生成部は、不揮発性記憶装置へ転送するデータと関連付けられる該データの管理情報に係わる処理要求についてのみ共通の識別子を割り当てることを特徴とするものであってもよい。
【００３４】
これにより、不揮発性記憶装置は、個々のコマンドパケットとデータパケットの関連性を識別（認識）することが可能となる。
【００３５】
また本発明は、上記の不揮発性記憶装置とアクセス装置を備える不揮発性記憶システムとしても実現することが可能である。この場合には、情報（データ）を記録する情報記憶媒体及びそれに接続されるアクセス装置(ホスト装置)とを備えたシステム全体として効率的にアクセス装置から不揮発性記憶システムへ効率的にデータ及びコマンドの転送が可能となる。
【発明の効果】
【００３６】
本発明によれば、アクセス装置からあるコマンドの実行前、もしくは実行中に、別のコマンドを発行することでコマンド処理のスループットが向上し、インターフェースバスを効率的に利用することが可能となる。
【発明を実施するための最良の形態】
【００３７】
（第１の実施の形態）
図１は、本発明の実施の形態に於ける不揮発性記憶システムの実施方法を示したブロック図である。図１において、不揮発性記憶システムは、アクセス装置１００と不揮発性記憶装置１１０とから構成され、両者はインターフェースバス１２０を介して接続される。
【００３８】
アクセス装置１００は、アプリケーション１３０、ファイルシステム１４０、不揮発性記憶装置Ｉ／Ｆ部１５０から構成される。
【００３９】
アプリケーション１３０は、ＡＰＩ呼出部１３１、ユーザーデータ入力部１３２を含む。またファイルシステム１４０は、コマンド生成部１４１、書き込みアドレス生成部１４２、Ｓｅｑ＃生成部１４３、管理情報データ生成部１４４を含む。また、不揮発性記憶装置Ｉ／Ｆ部１５０は、ヘッダ生成部１５１、ＳｕｂＳｅｑ＃生成部１５２、データバッファ１５３を含む。
【００４０】
一方不揮発性記憶装置１１０は、アクセス装置Ｉ／Ｆ部１６０および不揮発性メモリ１７０から構成される。アクセス装置Ｉ／Ｆ部１６０は、パケット解析部１６１、コマンドスケジューラ１６２、コマンド実行部１６３、書き込み制御部１６４、Ｓｅｑ＃管理部１６５を含む。また不揮発性メモリ１７０は、少なくともユーザーデータ領域１７１、システム領域１７２を含む。なお、不揮発性メモリ１７０内の、ユーザーデータ領域１７１およびシステム領域１７２における論理アドレス空間は、図８と同様とする。
【００４１】
図２は、本実施の形態において、インターフェースバス１２０上のパケット構成を説明した図である。
【００４２】
図２（ａ）は、インターフェースバス１２０上のパケットの基本形である。パケットは、パケット送信順を示すパケット番号（以下パケット＃と略記する）、パケットがコマンドであるかデータを示すパケットＩＤ、パケットの長さを示すパケット長を含むヘッダと、パケットの内容を示すペイロードから構成される。ヘッダは、パケットがコマンド、データに関わらず共通のフォーマットである。一方ペイロードは、パケットＩＤによりそのフォーマットが変化する。
【００４３】
図２（ｂ）は、コマンドの一例として、Ｗｒｉｔｅコマンドのパケット構成を示したものである。Ｗｒｉｔｅコマンドパケットは、パケット＃、パケットＩＤ（ここでは「コマンド」が設定される）、パケット長からなるヘッダに続き、コマンド種別（ここでは「Ｗｒｉｔｅ」が設定される）、どのようなデータをＷｒｉｔｅするかを識別するデータ種別（「ユーザーデータ」、「ＦＡＴ１」などが設定される）、Ｓｅｑ番号、ＳｕｂＳｅｑ番号（以下それぞれＳｅｑ＃、ＳｕｂＳｅｑ＃と略記する）から構成される。Ｓｅｑ＃、ＳｕｂＳｅｑ＃については、後述する。
【００４４】
図２（ｃ）は、ユーザーデータのＷｒｉｔｅコマンドにより、アクセス装置１００から不揮発性記憶装置１１０に転送されるユーザーデータのパケット構成を示したものである。ユーザーデータパケットは、パケット＃、パケットＩＤ（ここでは「データ」が設定される）、パケット長からなるヘッダに続き、データ種別（ここでは「ユーザーデータ」が設定される）、Ｓｅｑ＃、ＳｕｂＳｅｑ＃、書き込み先アドレス（論理アドレス）、ユーザーデータ実体（誤り訂正符号等も含む）から構成される。
【００４５】
図２（ｄ）は、管理情報データの一例として、ＦＡＴ１データのＷｒｉｔｅコマンドにより、アクセス装置１００から不揮発性記憶装置１１０に転送されるＦＡＴ１データのパケット構成を示したものである。ＦＡＴ１データパケットは、パケット＃、パケットＩＤ（ここでは「データ」が設定される）、パケット長からなるヘッダに続き、データ種別（ここでは「ＦＡＴ１」が設定される）、Ｓｅｑ＃、ＳｕｂＳｅｑ＃、書き込み先アドレス（論理アドレス）、ＦＡＴ１データ実体（誤り訂正符号等も含む）から構成される。
【００４６】
以下、図１、図２を用いて、アクセス装置１００から不揮発性記憶装置１１０にデータを書き込むときの動作について説明する。このときインターフェースバス１２０上には、１個のＷｒｉｔｅコマンドパケットに続き、１又は複数個のデータパケットが送信される。
【００４７】
はじめにＷｒｉｔｅコマンドパケットについて説明する。アプリケーション１３０内のＡＰＩ呼出部１３１により、データ書き込みのＡＰＩが呼び出される。このときファイルシステム１４０には、上記指示に合わせて少なくともデータ長、データ参照先が指示される。データ参照先は、ユーザーデータであればユーザーデータ入力部１３２上の、管理情報データであれば管理情報データ生成部１４４の所定の領域である。
【００４８】
ファイルシステム１４０は、コマンド生成部１４１でインターフェースバス１２０上でのＷｒｉｔｅコマンドを生成する。さらにＳｅｑ＃生成部１４３で、当該ＷｒｉｔｅコマンドのＳｅｑ＃を生成する。Ｓｅｑ＃は、ユーザーデータと対応する管理情報データとこれらのデータを記録するためのコマンドを関連付けるための数値であり、Ｓｅｑ＃生成部１４３で一定の規則にしたがって生成する。本実施の形態では、説明の簡略化のために単調増加となるように生成するものとする。ファイルシステム１４０は、上述したＷｒｉｔｅコマンドおよびＳｅｑ＃を不揮発性記憶装置Ｉ／Ｆ部１５０内のデータバッファ１５３に供給する。
【００４９】
不揮発性記憶装置Ｉ／Ｆ部１５０では、上記に対して、ヘッダ生成部１５１により生成されるヘッダ、ＳｕｂＳｅｑ＃生成部１５２により生成されるＳｕｂＳｅｑ＃を付加して、Ｗｒｉｔｅコマンドパケットを生成する。このとき、ヘッダのパケットＩＤは「コマンド」となる。またコマンドパケットの場合、ＳｕｂＳｅｑ＃は常に終端情報が設定される。以下ＳｕｂＳｅｑ＃は８ビット長であると仮定し、終端情報は０ｘＦＦであると定義する。
【００５０】
Ｗｒｉｔｅコマンドパケットは、インターフェースバス１２０を介して、不揮発性記憶装置１１０のパケット解析部１６１に供給される。
【００５１】
パケット解析部１６１では、パケットのヘッダに含まれるパケットＩＤを解析する。解析した結果、コマンドであると判明したとき、コマンドスケジューラ１６２に当該コマンドの内容（この場合は「Ｗｒｉｔｅ」）とＳｅｑ＃が供給される。その後コマンドスケジューラ１６２が、蓄積されたコマンドを適切なタイミングでコマンド実行部１６３に供給することで、当該コマンドが実行される。
【００５２】
次にデータパケットの場合について説明する。データパケットは、不揮発性記憶装置１１０からアクセス装置１００へ転送要求があった場合に、転送される。不揮発性記憶装置１１０から、データパケットの要求があると、書き込み先アドレス生成部１４２は、前述したＷｒｉｔｅコマンド発行に伴って不揮発性メモリ１７０上にて書き込み可能な領域を検出して、その論理アドレスを書き込みアドレスとして生成し、データバッファ１５３に供給する。またＳｅｑ＃生成部１４３は当該ファイルデータのＳｅｑ＃をそれぞれ生成し、データバッファ１５３に供給する。さらに、書き込まれるデータの実体は、上述したユーザーデータ入力部１３２、または管理情報データ生成部１４４上のデータ参照先からデータバッファ１５３に蓄積される。
【００５３】
不揮発性記憶装置Ｉ／Ｆ部１５０では、上記に加え、ヘッダ生成部１５１により生成されるヘッダ、ＳｕｂＳｅｑ＃生成部１５２により生成されるＳｕｂＳｅｑ＃を付加して、データパケットを生成する。このとき、ヘッダのパケットＩＤは「データ」となる。
【００５４】
ＳｕｂＳｅｑ＃には、同一のＳｅｑ＃を有するファイルデータを、インターフェースバス１２０上でパケット分割して送信するときの数値であり、同一Ｓｅｑ＃内では単調増加となるように設定する。同一Ｓｅｑ＃の最終パケットのＳｕｂＳｅｑ＃は０ｘＦＦ（終端情報）を設定する。パケット分割する単位は、アクセス装置１００および不揮発性記憶装置１１０内のバッファサイズや、インターフェースバス１２０の転送速度等に基づいて、不揮発性記憶装置Ｉ／Ｆ部１５０が定めるが、不揮発性メモリ１７０固有の１ページあたりのサイズ、もしくはその倍数であることが望ましい。なお管理情報データはサイズが小さいため、同一Ｓｅｑ＃を持つ管理情報データは１個のパケットで送信することが望ましい。この場合、ＳｕｂＳｅｑ＃＝０ｘＦＦとなる。
【００５５】
データパケットは、インターフェースバス１２０を介して、不揮発性記憶装置１１０のパケット解析部１６１に供給される。
【００５６】
パケット解析部１６１では、パケットのヘッダに含まれるパケットＩＤを解析する。解析した結果、データであると判明したとき、当該パケットの内容が書き込み制御部１６４に蓄積される。書き込み制御部１６４では、データ種別の解析、および各データパケットに多重されている書き込みアドレスが、不揮発性メモリ１７０上の物理アドレスに変換された上で、不揮発性メモリ１７０のユーザーデータ領域１７１、またはシステム領域１７２の所定のアドレスに書き込まれる。なお、管理情報データは、書き込み途中での電源遮断対策のため、すでに書き込み済みの同一データに上書きせず、別の領域に書き込む。そしてすべての管理情報データが正しく書き込まれたときに、以前の管理情報データを消去、もしくは無効化する。これにより、仮に電源遮断により管理情報データが書き込みに失敗した場合でも、以前の管理情報データを用いてユーザーデータと管理情報データとの整合性を保つことができる。
【００５７】
データが不揮発性メモリ１７０の所定の領域に正常に書き込まれたとき、書き込み制御部１６４は、正常に書き込めたパケットのデータ種別、Ｓｅｑ＃およびＳｕｂＳｅｑ＃をＳｅｑ＃管理部１５５に通知する。
【００５８】
Ｓｅｑ＃管理部では、データ種別ごとに、正常に書き込めたデータのＳｅｑ＃およびＳｕｂＳｅｑ＃を管理する。
【００５９】
コマンドスケジューラ１６２は、蓄積されているコマンド、およびＳｅｑ＃管理部１６５の情報を参照しながら、次に実行すべきコマンドをコマンド実行部１６３に供給する。
【００６０】
コマンド実行部１６３は、コマンドスケジューラ１６２から供給されたコマンドを解析し実行する。具体的には、Ｓｅｑ＃＝２のデータのＷｒｉｔｅコマンドを実行する場合は、Ｓｅｑ＃１の際と同様に、インターフェースバス１２０を介してアクセス装置１００に対し当該ファイルデータの転送を要求する。上記転送要求を受けたアクセス装置１００は、データバッファ１５３に蓄積されている当該ファイルデータのデータパケットをインターフェースバス１２０経由で介して不揮発性記憶装置１１０に送信し、不揮発性メモリ１７０の所定の領域への書き込みを実行させる。
【００６１】
図３は、本実施の形態において、ユーザーデータおよび管理情報データのＷｒｉｔｅコマンド発行タイミング、コマンド実行部１６３において実際にコマンドが実行されるタイミング、およびユーザーデータおよび管理情報データのパケットが送信されるタイミングについて、説明した図である。また図４は、図３に記載のシーケンス実行に伴うＳｅｑ＃管理部１６５の管理情報の遷移を記載した図である。なお、以後説明の簡便のため、ユーザーデータ、ＦＡＴ１データ、ＦＡＴ２データ、ＤＩＲデータを、それぞれ記号Ｕ、Ａ、Ｂ、Ｃと記載する。また同一のＳｅｑ＃を持つコマンド、および管理情報データは、１個のパケットで送信するものとする。すなわち、これらのパケットのＳｕｂＳｅｑ＃は常に終端情報（０ｘＦＦ）である。
【００６２】
アクセス装置１００が不揮発性記憶装置１１０の装着を検知したとき、不揮発性記憶装置Ｉ／Ｆ部１５０は、「Ｉｎｉｔｉａｌｉｚｅ」コマンドパケットを、インターフェースバス１２０を介して不揮発性記憶装置１１０に送信する。上記を受信したアクセス装置Ｉ／Ｆ部１６０は、パケット解析部１６１での解析を経てコマンドスケジューラ１６２に供給される。Ｉｎｉｔｉａｌｉｚｅコマンドは、不揮発性メモリ１７０へのデータ書き込みに無関係であるため、直ちにコマンド実行部１６３に供給され、実行可能状態となる。Ｉｎｉｔｉａｌｉｚｅコマンドにより、Ｓｅｑ＃管理部１６５の管理情報初期化を含む不揮発性記憶装置１１０の初期化が行われる。本コマンド処理完了後の、時刻Ｔ０におけるＳｅｑ＃管理部１６５の管理情報を図４（ａ）に示す。
【００６３】
アクセス装置１００が、所定のユーザーデータの書き込みを実行しようとするとき、アプリケーション１３０のＡＰＩ呼出部１３１は書き込みＡＰＩを呼び出す。このとき、書き込みデータ長（ｓｉｚｅ１）も合わせてファイルシステム１４０へ通知する。
【００６４】
ファイルシステム１４０は、コマンド生成部１４１においてＷｒｉｔｅコマンドを、Ｓｅｑ＃生成部１４３でＳｅｑ＃＝１を生成し、不揮発性記憶装置Ｉ／Ｆ部１５０に供給する。不揮発性記憶装置Ｉ／Ｆ部１５０は、Ｓｅｑ＃＝１のユーザーデータのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ｕ［１］）」コマンドパケット生成し、インターフェースバス１２０を介して不揮発性記憶装置１１０に送信する。上記を受信したアクセス装置Ｉ／Ｆ部１６０は、パケット解析部１６１での解析を経てコマンドスケジューラ１６２に供給される。
【００６５】
コマンドスケジューラ１６２は、ユーザーデータの書き込みであるため、直ちにコマンド実行部１６３に供給され、実行可能状態となる。
【００６６】
Ｗｒｉｔｅ（Ｕ［１］）コマンドの実行に伴い、アクセス装置Ｉ／Ｆ部１６０はインターフェースバス１２０を介して不揮発性記憶装置Ｉ／Ｆ部１５０に「Ｕ［１］」のユーザーデータパケットを要求する。
【００６７】
不揮発性記憶装置Ｉ／Ｆ部１５０は、ＳｕｂＳｅｑ＃生成部１５２で生成したＳｕｂＳｅｑ＃＝１をもつユーザーデータパケットＵ［１］−１を生成し、アクセス装置Ｉ／Ｆ部１６０に送信する。ここにＵ［１］−１は、Ｓｅｑ＃＝１のユーザーデータＵ［１］のうち、ＳｕｂＳｅｑ＃＝１のデータパケットであることを意味する。なお、各ユーザーデータパケットをどのような大きさに分割するかは、インターフェースバス１２０の仕様、データバッファ１５３の大きさ等により不揮発性記憶装置Ｉ／Ｆ部１５０が決定する。
【００６８】
上記を受信したアクセス装置Ｉ／Ｆ部１６０はパケット解析部１６１で解析され、書き込み制御部１６４でアドレス変換等の処理を経て、不揮発性メモリ１７０のユーザーデータ領域１７１の所定のアドレスに書き込まれる。
【００６９】
本実施の形態においては、アクセス装置Ｉ／Ｆ部１６０内のコマンドスケジューラ１６２がコマンドの蓄積、および所定のタイミングでの実行指示が可能であるため、アプリケーション１３０は、不揮発性記憶装置１１０がｂｕｓｙ状態であってもコマンドパケットを送信することが可能である。このため、Ｕ［１］−１のユーザーデータパケット転送中、ＡＰＩ呼出部１３１が同期ＡＰＩを呼び出したとき、ファイルシステム１４０（不揮発性記憶装置Ｉ／Ｆ部１５０）は、不揮発性記憶装置１１０がｂｕｓｙ状態であってもＵ［１］−１のパケットの転送が完了すれば、不揮発性記憶装置Ｉ／Ｆ部１５０は、Ｓｅｑ＃＝１のＦＡＴ１データのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ａ［１］）」コマンドパケットを、インターフェースバス１２０を介して不揮発性記憶装置１１０に送信することが可能である。
【００７０】
上記を受信したアクセス装置Ｉ／Ｆ部１６０は、パケット解析部１６１での解析を経てコマンドスケジューラ１６２に供給される。
【００７１】
コマンドスケジューラ１６２は、ユーザーデータの書き込みであるため、直ちにコマンド実行部１６３に供給され、実行可能状態となる。
【００７２】
コマンドスケジューラ１６２は、Ｓｅｑ＃管理部１６５の管理情報（図４（ａ））を参照し、Ｓｅｑ＃＝１であるユーザーデータの書き込みが完了していないことを検出する。よって、Ｗｒｉｔｅ（Ａ［１］）コマンドは、コマンドスケジューラ１６２で蓄積されたままとなる。コマンドスケジューラ１６２は、コマンドが蓄積されている間は、定期的にＳｅｑ＃管理部１６５の管理情報を参照する。
【００７３】
ユーザーデータＵ［１］−１の書き込みが正常に完了した時刻Ｔ１で、書き込み制御部１６４は、Ｓｅｑ＃管理部１６５に、Ｓｅｑ＃＝１、ＳｕｂＳｅｑ＃＝１の正常書き込みを通知する。この結果、Ｓｅｑ＃管理部１６５の管理情報は図４（ｂ）のように更新される。同時にｂｕｓｙ状態が解除される。
【００７４】
ｂｕｓｙが解除されると、次のユーザーデータパケットであるＵ［１］−２の転送が行われる。この場合も再びｂｕｓｙ状態となるが、上述したように同期ＡＰＩ発行に関連したコマンドを発行することが可能である。すなわち不揮発性記憶装置Ｉ／Ｆ部１５０はＳｅｑ＃＝１のＦＡＴ２、ＤＩＲのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ｂ［１］）」、「Ｗｒｉｔｅ（Ｃ［１］）」コマンドパケットを、Ｕ［１］−２パケットの転送完了後送信することが可能となる。そして上記コマンドパケットを送信これらのＷｒｉｔｅコマンドを受信したコマンドスケジューラ１６２は、Ｓｅｑ＃管理部１６５の管理情報（図４（ｂ））を参照して、Ｓｅｑ＃＝１であるユーザーデータの書き込みが完了していないことを検出する。よって、Ｗｒｉｔｅ（Ｂ［１］）、Ｗｒｉｔｅ（Ｃ［１］）コマンドは、同様にコマンドスケジューラ１６２で蓄積されたままとなる。
【００７５】
データバッファ１５３上で、Ｕ［１］の書き込み時に指定されたデータ長ｓｉｚｅ１のデータをすべてパケット化できたとき、最終パケットを意味するＵ［１］−Ｅを生成し、アクセス装置Ｉ／Ｆ部１６０に送信する。Ｕ［１］−Ｅの書き込みが正常に完了した時刻Ｔ２で、書き込み制御部１６４は、Ｓｅｑ＃管理部１６５に、Ｓｅｑ＃＝１、ＳｕｂＳｅｑ＃＝０ｘＦＦの正常書き込みを通知する。この結果、Ｓｅｑ＃管理部１６５の管理情報は図４（ｃ）のように更新され、同時にｂｕｓｙ状態が解除される。
【００７６】
時刻Ｔ２の直後、コマンドスケジューラ１６２がＳｅｑ＃管理部１６５の管理情報（図４（ｃ））を参照し、Ｓｅｑ＃＝１であるユーザーデータの書き込みが完了したことを検出する。これにより、コマンドスケジューラ１６２は、蓄積していたコマンドのうち、Ｗｒｉｔｅ（Ａ［１］）コマンドをコマンド実行部１６３に供給する。この結果、Ｗｒｉｔｅ（Ａ［１］）コマンドが実行され、アクセス装置Ｉ／Ｆ部１６０は、アクセス装置１００へデータパケットの転送を要求し、インターフェースバス１２０を介してＡ［１］のデータパケットを受信する。上記を受信したアクセス装置Ｉ／Ｆ部１６０はパケット解析部１６１で解析され、書き込み制御部１６４でアドレス変換等の処理を経て、不揮発性メモリ１７０のシステム領域１７２の所定のアドレスに書き込まれる。従来の不揮発性記憶システムで説明したように、管理情報データの場合は、データ転送完了とｂｕｓｙ状態解除がほぼ同時であるとみなす。
【００７７】
Ａ［１］データの書き込みが正常に完了した時刻Ｔ３においては、Ｓｅｑ＃管理部１６５の管理情報は、図４（ｄ）のようになる
ＦＡＴ１データＡ［１］パケット転送後、アプリケーション１３０からＳｅｑ＃２の書き込みを指示されたとき、不揮発性記憶装置Ｉ／Ｆ部１５０は、Ｓｅｑ＃＝２のユーザーデータのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ｕ［２］）」コマンドパケットを、インターフェースバス１２０を介して不揮発性記憶装置１１０に送信する。このとき、コマンドスケジューラ１６２には他のコマンド（Ｗｒｉｔｅ（Ｂ［１］）およびＷｒｉｔｅ（Ｃ［１］））が蓄積された状態であるので、Ｗｒｉｔｅ（Ｕ［２］）コマンドは、コマンドスケジューラ１６２に蓄積される。
【００７８】
その後、Ｗｒｉｔｅ（Ｂ［１］）コマンド、Ｗｒｉｔｅ（Ｃ［１］）コマンドが順次実行されると、コマンドスケジューラ１６２に蓄積されたコマンドは、Ｗｒｉｔｅ（Ｕ［２］）コマンドのみとなる。このとき、Ｗｒｉｔｅ（Ｕ［２］）コマンドがコマンド実行部１６３に供給される。この結果、Ｗｒｉｔｅ（Ｕ［２］）コマンドが実行され、アクセス装置Ｉ／Ｆ部１６０は、アクセス装置１００へデータパケットの転送を要求し、インターフェースバス１２０を介してユーザーデータパケットＵ［２］−１が、アクセス装置Ｉ／Ｆ部１６０に対して送信される。
【００７９】
さて、Ｃ［１］データの書き込みが正常に完了した時刻Ｔ４においては、Ｓｅｑ＃管理部１６５の管理情報は、図４（ｅ）のようになる。このとき、Ｓｅｑ＃＝１のユーザーデータ、管理情報データがすべて正しく書き込まれているため、Ｓｅｑ＃＝１のデータは、ファイルデータとして整合性が取れることを意味している。すなわち、時刻Ｔ４の直後に電源遮断が生じても、Ｓｅｑ＃＝１の管理情報データを用いてＳｅｑ＃＝１のユーザーデータを正しく読み出すことができる。
【００８０】
以上説明したように、本実施の形態においては、従来の不揮発性記憶システムと比較した場合、不揮発性記憶装置内でコマンドを蓄積できるようにすることで、不揮発性記憶装置１１０がｂｕｓｙ状態であっても、その間に以降のコマンドパケットの送信が可能となり、バスを効率よく使用することができる。その結果、書き込み時のシステムのスループットを向上させることができる。
【００８１】
また、不揮発性記憶装置内で蓄積されたコマンドを適切なタイミングで実行指示を行うことで、管理情報データは、常に対応するユーザーデータの書き込み完了後に書き込まれるため、書き込み途中の電源遮断が発生しても、正しくファイルを読み出すことができる。具体的には、時刻Ｔ３の後、Ｂ［１］データの書き込み中に電源遮断が生じたとき、Ｓｅｑ＃＝１のＦＡＴ１データとＦＡＴ２データの内容が異なり、かつＤＩＲに含まれるファイル名などの情報が正しく更新されていない事態になる。従ってこの場合、再起動時に、Ａ［１］データ書き込み以前の管理情報データを復元し、Ｕ［１］は無効とする。これにより、ユーザーデータＵ［１］書き込み以前のファイルデータの再生は成功する。
【００８２】
なお、不揮発性記憶装置１１０がｂｕｓｙ状態であるかどうかをアクセス装置１００が検出する方法として、インターフェースバス１２０の専用ピンの状態による検出、もしくはアクセス装置１００からの問い合わせコマンドの実行結果などにより実現可能である。
（第２の実施の形態）
図５は本発明の第２の実施の形態について説明した図である。図５において、５００はアクセス装置、５４０はファイルシステム、５５０は不揮発性記憶装置Ｉ／Ｆ部、５５４はＳｅｑサイズ設定部、５５５はＳｅｑ＃生成部である。
【００８３】
アクセス装置５００はアプリケーション１３０、ファイルシステム５４０および不揮発性記憶装置Ｉ／Ｆ部５５０を含む。
【００８４】
ファイルシステム５４０はコマンド生成部１４１、書き込みアドレス生成部１４２および管理情報データ生成部１４４からなる。
【００８５】
不揮発性記憶装置Ｉ／Ｆ部５５０は、ヘッダ生成部１５１、ＳｕｂＳｅｑ＃生成部１５２、データバッファ１５３、Ｓｅｑサイズ設定部５５４、Ｓｅｑ＃生成部５５５からなる。
【００８６】
以下、第２の実施の形態におけるアクセス装置１００から不揮発性記憶装置１１０にデータを書き込むときの動作を、第１の実施の形態との相違点を中心に述べる。
【００８７】
第１の実施の形態では、ＡＰＩ呼出部１３１が書き込みＡＰＩを呼び出し、ファイルシステム１４０がＷｒｉｔｅコマンドを発行する度にＳｅｑ＃を設定していた。
【００８８】
一方本実施の形態では、アプリケーション１３０が同一のＳｅｑ＃を持つユーザーデータのサイズ（以後Ｓｅｑサイズと呼ぶ）を、不揮発性記憶装置Ｉ／Ｆ部５５０のＳｅｑサイズ設定部５５４にあらかじめ設定しておき、不揮発性記憶装置Ｉ／Ｆ部５５０の内部のＳｅｑ＃生成部５５５がＳｅｑサイズ毎に同一のＳｅｑ＃を設定する。このとき、Ｓｅｑサイズのデータが書き込まれる度に、アクセス装置５００が同期ＡＰＩを発行しなくとも自動的に管理情報データを更新する（同期を取る）。このとき、ファイルシステム５４０がＷｒｉｔｅコマンドを発行するときにＳｅｑ＃は設定されない。従ってファイルシステム５４０が不揮発性記憶装置Ｉ／Ｆ部５４０へコマンドを発効する段階では、図２（ｂ）におけるＷｒｉｔｅコマンドパケットのＳｅｑ＃はＤｏｎ’ｔ  Ｃａｒｅとなる。
【００８９】
上記ユーザーデータのＷｒｉｔｅコマンドが、コマンド実行部１６３で実行状態になると、不揮発性記憶装置Ｉ／Ｆ部５５０に対してユーザーデータパケットの転送を要求する。
【００９０】
不揮発性記憶装置Ｉ／Ｆ部５５０は、アクセス装置５００の所定の領域に格納されたユーザーデータを保持する。Ｓｅｑサイズ設定部５５４は、データバッファ１５３でパケット化されたデータサイズを監視し、あらかじめ設定されたＳｅｑサイズのデータに同一のＳｅｑ＃が付与されるよう、Ｓｅｑ＃生成部５５５に指示する。
【００９１】
よって、データパケットについては、不揮発性記憶装置Ｉ／Ｆ部５５０内において、Ｓｅｑ＃生成部５５５で付与されたＳｅｑ＃が、ＳｕｂＳｅｑ＃とともに設定される。
【００９２】
図６は、本実施の形態において、ユーザーデータおよび管理情報データのＷｒｉｔｅコマンド発行タイミング、コマンド実行部１６３において実際にコマンドが実行されるタイミング、およびユーザーデータおよび管理情報データのパケットが送信されるタイミングについて、説明した図である。なお図６に記載のシーケンス実行に伴うＳｅｑ＃管理部１６５の管理情報の遷移は、図４と同じになる。
【００９３】
第１の実施の形態と同様に、アクセス装置５００が不揮発性記憶装置１１０の装着を検知したとき、Ｉｎｉｔｉａｌｉｚｅコマンドが発行され、不揮発性記憶装置１１０の初期化が実行される。
【００９４】
続いてアプリケーション１３０のＡＰＩ呼出部１３１は、Ｓｅｑサイズ設定ＡＰＩを呼び出す。これに伴い、不揮発性記憶装置Ｉ／Ｆ部５５０のＳｅｑサイズ設定部５５４には、Ｓｅｑサイズ設定ＡＰＩにより設定されたＳｅｑサイズが設定される。
【００９５】
アクセス装置５００が、所定のユーザーデータの書き込みを実行しようとするとき、アプリケーション１３０のＡＰＩ呼出部１３１は書き込みＡＰＩを呼び出す。このとき、書き込みデータ長は指定されない。これに伴い、不揮発性記憶装置Ｉ／Ｆ部５５０は、ユーザーデータのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ｕ）」コマンドパケットを、不揮発性記憶装置１１０に送信し、コマンドスケジューラ１６２にコマンドが蓄積されていないことから、直ちに実行される。
【００９６】
Ｗｒｉｔｅ（Ｕ）コマンドの実行に伴い、不揮発性記憶装置Ｉ／Ｆ部５５０は、ユーザーデータ入力部１３２が供給するユーザーデータと、書き込みアドレス生成部１４２で生成された書き込み先のアドレスをデータバッファ１５３に供給する。
【００９７】
不揮発性記憶装置Ｉ／Ｆ部５５０において、Ｓｅｑ＃生成部５５５はＳｅｑ＃として１を、ＳｕｂＳｅｑ＃生成部１５２はＳｕｂＳｅｑ＃として１を設定し、ヘッダ生成部１５１で生成されるヘッダと合わせてデータバッファ１５３上のユーザーデータに付加する。このようにして「Ｕ［１］−１」のユーザーデータパケットをインターフェースバス１２０上に送信する。
【００９８】
第１の実施の形態と同様に、Ｕ［１］−１のユーザーデータパケット転送が完了しても、不揮発性メモリ１７０に当該ユーザーデータが書き込み完了するまで、不揮発性記憶装置１１０はｂｕｓｙ状態になり、コマンドスケジューラ１６２がコマンドの蓄積、および所定のタイミングでの実行指示が可能であるため、アクセス装置５００は任意のタイミングでＳｅｑ＃＝１に相当するＦＡＴ１データの書き込み指示をすることが可能である。
【００９９】
データバッファ１５３上で、Ｓｅｑサイズ設定部５５４で設定されたＳｅｑサイズのデータをすべてパケット化できたとき、最終パケットを意味するＵ［１］−Ｅを生成し、アクセス装置Ｉ／Ｆ部１６０に送信する。
【０１００】
そして次にユーザーデータを送信するとき、Ｓｅｑ＃生成部５５５で生成されるＳｅｑ＃は２となる。
【０１０１】
本実施の形態では、Ｕ［１］−Ｅのデータパケット送信が完了しても、Ｗｒｉｔｅコマンドを発行することなく、次のユーザーデータでパケットであるＵ［２］−１を送信することができる。データ書き込みを終了するときは、アプリケーション１３０がＡＰＩ呼出部１３１から中断ＡＰＩを発行する。これに伴い、データの転送および書き込みが直ちに中止され、現時点での管理情報データをファイルに記録するためのＷｒｉｔｅコマンドである「Ｗｒｉｔｅ（Ａ［２］）」、「Ｗｒｉｔｅ（Ｂ［２］）」、「Ｗｒｉｔｅ（Ｃ［２］）を発行し、それぞれデータＡ［２］、Ｂ［２］，Ｃ［２］を書き込んで終了する。
【０１０２】
以上より、本実施の形態においても、従来の不揮発性記憶システムと比較した場合、不揮発性記憶装置内でコマンドを蓄積できるようにすることで、不揮発性記憶装置１１０がｂｕｓｙ状態であっても、その間に以降のコマンドパケットの送信が可能となり、バスを効率よく使用することができる。その結果、書き込み時のシステムのスループットを向上させることができる。
【０１０３】
また、本実施の形態では、ユーザーデータを連続して書き込む場合、あらかじめＳｅｑサイズを設定しておくことで、管理情報データ書き込み完了後、都度ユーザーデータＷｒｉｔｅコマンドを発行しなくてすむために、送信すべきＷｒｉｔｅコマンドパケットの数を削減することができる。そのため、データ転送の効率を従来以上に向上させることができ、バスの効率を上げることが可能となる。これは、連続的な動画データの記録などの場合等に特に有効な手段となる。
【０１０４】
また、第１の実施の形態と同様に、不揮発性記憶装置内で蓄積されたコマンドを適切なタイミングで実行指示を行うことで、管理情報データは、常に対応するユーザーデータの書き込み完了後に書き込まれるため、書き込み途中の電源遮断が発生しても、正しくファイルを読み出すことができる。
【０１０５】
なお第１の実施の形態、第２の実施の形態において、Ｗｒｉｔｅコマンドが実行可能になった後に、不揮発性記憶装置からアクセス装置へデータ転送を要求していたが、書き込み制御部１６４の容量が十分な大きさを持っていれば、予め不揮発性記憶装置の書き込み制御部１６４にＷｒｉｔｅコマンドに対応するファイルデータを蓄積しておき、ライトコマンドが実行状態になれば、書き込み制御部１６４に蓄積されたファイルデータを不揮発性メモリ１７０に書き込むという形態も実施可能である。また、この場合には、書き込み制御部１６４に蓄積できるデータ量に応じて、予めデータを蓄積する方法と書き込みの際にアクセス装置へデータ転送を要求する方法を組み合わせる方法を用いても良い。
【０１０６】
また本発明の実施の形態において、ＳｕｂＳｅｑ＃は単調増加の数値であると説明したが、終端情報であるか否かを識別できるだけでもよい。
【０１０７】
またデータ種別ＩＤとしては、コンテンツ保護のための鍵情報など、所定の認証処理を経ないとアクセスできないデータであるセキュアデータを追加したシステムを考えることもできる。
【０１０８】
なお、第１の実施の形態、第２の実施の形態では、コマンドとデータの関連付け等をおこなうためにＳｅｑ＃（Ｓｅｑ番号）やＳｕｂＳｅｑ＃（ＳｕｂＳｅｑ番号）等を付与していたが、本発明は必ずしもこれらの番号に限定するものではない。これらはコマンドとデータの関連付けが他の関連付けとの識別を行えればよく、番号以外でもアルファベット等、他の識別用の記号等（識別子）であってもよい。
【０１０９】
また、第１の実施の形態、第２の実施の形態では、アクセス装置、不揮発性記憶装置、及びこれらからなる不揮発性記憶システムとして実施の形態を説明したが、本発明はこれに限定されるものではない。不揮発性記憶システム１１０のアクセス装置Ｉ／Ｆ部等は、演算部等を備えたメモリコントローラ等の集積回路によって実現することも可能である。その際には、不揮発性記憶装置１１０は、メモリコントローラと不揮発性メモリを主とした構成要素として備え、アクセス装置Ｉ／Ｆ部１６０等で実現した各機能を、メモリコントローラの演算部で実行されるソフトウェア、または同等の機能を回路構成で実現する集積回路としても実現可能である。
【０１１０】
また、第１の実施の形態、第２の実施の形態で説明した不揮発性記憶装置は、同等の機能を備えるデバイス（機能部品等）としても実現可能である。例えば、不揮発性記憶装置１１０を、電気回路基板上に実装される、一部のモジュール、又はこれらを集約した集積回路としても実施することができる。この際には、本発明で説明した不揮発性記憶装置は、不揮発性記憶デバイス（モジュール）としても実現可能である。
【産業上の利用可能性】
【０１１１】
本発明は、データ書き込み途中に電源遮断が生じる可能性の高い、リムーバブルな不揮発性記憶装置において、アクセス装置からコマンドの実行に先んじてコマンドを発行することで、インターフェースバスを効率的に使用し、コマンド処理のスループットを向上させる方法を提案したものであり、高品質の動画撮影など、大容量のデータを高速に不揮発性メモリに書き込むことが要求されるアプリケーションを有する装置、例えばデジタルビデオカメラをはじめとする動画記録再生装置やデジタルスチルカメラをはじめとする静止画記録再生装置、あるいは携帯電話において有益である。
【図面の簡単な説明】
【０１１２】
【図１】本発明の第１の実施の形態の構成を説明したブロック図
【図２】本発明における各パケットのフォーマットについて説明した図
【図３】第１の実施の形態におけるインターフェースバス上のパケットとコマンド処理との関係を説明した図
【図４】第１の実施の形態におけるＳｅｑ＃管理部の状態遷移について説明した図
【図５】本発明の第２の実施の形態の構成を説明したブロック図
【図６】第２の実施の形態におけるインターフェースバス上のパケットとコマンド処理との関係を説明した図
【図７】従来の不揮発性記憶システムの構成を説明したブロック図
【図８】従来の不揮発性記憶システムの論理アドレス空間の構成例を説明した図
【図９】従来の不揮発性記憶システムにおけるコマンドおよび書き込みデータの関係を説明した図
【符号の説明】
【０１１３】
１００、５００、７００    アクセス装置
１１０    不揮発性記憶装置
１２０    インターフェースバス
１３０、７３０    アプリケーション
１３１、７３１    ＡＰＩ呼出部
１３２、７３２    ユーザーデータ入力部
１４０、５４０、７４０    ファイルシステム
１４１、７４１    コマンド生成部
１４２、７４２    書き込みアドレス生成部
１４３、５５５    Ｓｅｑ＃生成部
１４４、７４３    管理情報データ生成部
１５０、５５０    不揮発性記憶装置Ｉ／Ｆ部
１５１    ヘッダ生成部
１５２    ＳｕｂＳｅｑ＃生成部
１５３    データバッファ
１６０、７６０    アクセス装置Ｉ／Ｆ部
１６１、７６１    パケット解析部
１６２    コマンドスケジューラ
１６３    コマンド実行部
１６４、７６２    書き込み制御部
１６５    Ｓｅｑ＃管理部
１７０、７７０    不揮発性メモリ
１７１、７７１    ユーザーデータ領域
１７２、７７２    システム領域
５５４    Ｓｅｑサイズ設定部
７１０    ＳＤカード
７５０    ＳＤカードＩ／Ｆ部
【図１】
2010049303.tif 000003
【図２】
2010049303.tif 000004
【図３】
2010049303.tif 000005
【図４】
2010049303.tif 000006
【図５】
2010049303.tif 000007
【図６】
2010049303.tif 000008
【図７】
2010049303.tif 000009
【図８】
2010049303.tif 000010
【図９】
2010049303.tif 000011