JP2011133947A - 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム - Google Patents

不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム Download PDF

Info

Publication number
JP2011133947A
JP2011133947A JP2009290366A JP2009290366A JP2011133947A JP 2011133947 A JP2011133947 A JP 2011133947A JP 2009290366 A JP2009290366 A JP 2009290366A JP 2009290366 A JP2009290366 A JP 2009290366A JP 2011133947 A JP2011133947 A JP 2011133947A
Authority
JP
Japan
Prior art keywords
data
access device
mic
valid data
cache area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009290366A
Other languages
English (en)
Inventor
Hirokazu So
広和 宗
Takuji Maeda
卓治 前田
Masayuki Toyama
昌之 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009290366A priority Critical patent/JP2011133947A/ja
Publication of JP2011133947A publication Critical patent/JP2011133947A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】連続するコンテンツのリアルタイム記録を継続しつつ、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に実施し、かつ電源断等によるデータの内容の不整合を回避可能にする。
【解決手段】不揮発性記憶装置1は、キャッシュ領域(MIC)のデータを有効化するタイミングとキャッシュ領域のデータを記憶領域に移動するタイミングをアクセス装置2から指定可能とする。さらに、移動処理は、所定時間を超えないように分割して実施し、各々の分割処理の開始タイミングもアクセス装置2から指定可能とする。第1キャッシュ領域122と第2キャッシュ領域123を切り替えることで、移動処理を実施中にキャッシュ書き込みの受付けを可能とする。
【選択図】図1

Description

本発明は、不揮発性メモリを制御するメモリコントローラと、不揮発性メモリ及びメモリコントローラを備えた半導体メモリカード等の不揮発性記憶装置と、不揮発性記憶装置にアクセスするアクセス装置、及びこれらを含む不揮発性記憶システムに関する。
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して高価格なものではある。しかし、半導体メモリカードは、小型・軽量・耐震性・取り扱いの簡便さ等のメリットが大きいので、デジタルスチルカメラや携帯電話など、ポータブル機器の記録媒体としてその需要が高まっており、最近では、民生用動画記録機器や放送局向けのプロ用動画記録機器の記録媒体としても利用されるようになってきている。さらに、最近では、ポータブル機器だけではなくデジタルテレビやDVDレコーダ等の据え置き機器にも半導体メモリカード用のスロットが標準搭載されており、半導体メモリカードの需要はさらに高まっている。
半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ(主にNAND型)を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
ところで、アクセス装置は、半導体メモリカードの記憶領域の管理をFATファイルシステムなどのファイルシステムによって行う。ファイルシステムを用いることにより、半導体メモリカードには、AVコンテンツなどのファイルデータ本体に加え、ファイルシステムの管理情報であるディレクトリエントリやFATが格納される。
アクセス装置がハイビジョン動画のような大容量のコンテンツファイルを半導体メモリカードに対してリアルタイムに格納する場合(一定の書き込み速度を保証したデータ書き込み処理を行う場合)、電源断などの不測の事態が発生したときには、できるだけ直近のデータまでを有効にすることが望まれる。通常、半導体メモリカードに書き込まれたファイルデータは、ディレクトリエントリ及びFATが適切に更新された後に、ファイルシステムにおける有効なデータとして認識される。従って、アクセス装置が、一定量のファイルデータを半導体メモリカードに書き込んだ後、ディレクトリエントリおよびFATを更新するという手順を繰り返しながら、アクセス装置が半導体メモリカードにデータを記録するのが一般的である。
アクセス装置が、映像のビットレートが高いハイビジョン動画を半導体メモリカードに記録する場合、例えば、数秒に1回の割合でディレクトリエントリとFATを更新する。この場合、ファイルデータ(例えば、ハイビジョン動画のファイルデータ)の記録サイズは、数MB(メガバイト)程度の比較的大きなサイズとなるが、ディレクトリエントリやFATは、情報が更新される部分のみを半導体メモリカードに書き込むので、その記録サイズは、512バイトから32KB(キロバイト)程度の比較的小さなサイズとなる。
フラッシュメモリは、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさは、現在のところ数百KBから数MB程度であるが年々増大する傾向にある。フラッシュメモリにおいて、小サイズの書き込みを実施する場合、同一物理ブロック内に存在する有効なデータを他の物理ブロックにコピーする「巻き込み退避処理」が発生する。そのため、フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、ディレクトリエントリやFATなどのファイルシステムの管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
従来、このような問題を解決する方法として、半導体メモリカードにページキャッシュを搭載する方法が提案されている(例えば、特許文献1参照)。
この方法(従来技術)では、特定論理アドレスに対する小サイズのデータ(例えば、ファイルシステムの管理情報)の書き込み処理を、データを一時的に保持するための物理ブロック(ページキャッシュ用物理ブロック(キャッシュブロック))に対して行い管理することで、無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化することができる。
国際公開第WO/2009/107393号公報
しかしながら、従来技術には以下の課題がある。
アクセス装置が複数のコンテンツデータ(例えば、ハイビジョン動画のデータなど)を半導体メモリカード等の不揮発性記憶装置に記録する場合、各コンテンツデータは、個別のファイルとして記録されるのが一般的である。このように記録するのは、記録されたコンテンツデータの再生や編集などの管理が容易となるためである。さらに、各コンテンツデータに付随する様々な情報(例えば、名称、サムネイル画像、タイムサーチテーブル、ビットレート、再生時間、暗号化情報など)も同様の理由により、各コンテンツデータに関連付けられた別の管理情報ファイル(コンテンツ管理情報ファイル)として、不揮発性記憶装置に記録される場合が多い。
これらのコンテンツデータのディレクトリエントリやFATの書き込み処理、あるいは、コンテンツ管理情報ファイルのディレクトリエントリやFATの書き込み処理において、ページキャッシュを利用することで、巻き込み退避処理の発生を抑えることができる。その結果、アクセス装置および不揮発性記憶装置において、高速なデータ書き込む処理を実現することができる。
しかし、例えば、アクセス装置が不揮発性記憶装置に対して、複数のコンテンツデータを連続的にリアルタイムに記録する場合には、記録する各コンテンツデータを切り替えるときにディレクトリエントリやFATの論理アドレスが変化するので、ページキャッシュの対象領域として設定されている論理アドレスを変更する必要がある。
ページキャッシュとして登録できる論理アドレスには限りがあるので、上記のように複数のコンテンツデータを連続的にリアルタイムに記録する場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させなければならない場合が発生する。
この移動処理は、上記で説明した巻き込み退避処理を含むため、非常に長い時間を要する。具体的な時間は、使用するフラッシュメモリの品種や半導体メモリカードのアーキテクチャにも依存するが、例えば、1つの論理アドレスのデータを移動するのに200ミリ秒〜300ミリ秒という時間がかかる。記録する各コンテンツデータの切り替えには、数十個程度の論理アドレスの変更が伴う場合があり、累積すると10秒、20秒といったオーダーの時間が必要になる。
その結果、次のコンテンツデータの記録のための準備期間が長くなり、次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足する可能性が高くなる。次のコンテンツデータのデータを一時的に保持するためのアクセス装置内のバッファメモリが不足すると、アクセス装置が不揮発性記憶装置に対して記録しようとしているコンテンツ(例えば、ハイビジョン動画)の一部のデータが欠落するため望ましくない。このようなデータの欠落を防止するためにアクセス装置に大量のバッファメモリを搭載するとコスト高につながるため、アクセス装置に大量のバッファメモリを搭載することも望ましくない。
また、各コンテンツデータの切り替えに長い時間を要するため、コンテンツ管理情報ファイル等のデータの書込み中に電源断や不揮発性記憶装置の抜去が発生する可能性が高まる。これに伴い、コンテンツデータファイルやコンテンツ管理情報ファイルにおける内容の不整合が発生する可能性が高まることも望ましくない。
本発明は、上記課題を鑑みてなされたものであり、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能であり、かつ、電源断等によるデータの内容の不整合を回避可能な、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ記録方法、プログラムを提供することを目的とする。
第1の発明は、アクセス装置と通信することができ、アクセス装置からの指示によりデータの読み出しおよび/または書き込みを行う不揮発性記憶装置であって、不揮発性メモリと、コントローラと、を備える。
不揮発性メモリは、データを記憶する。コントローラは、不揮発性メモリの制御を行う。
不揮発性メモリは、アクセス装置からのデータを格納する記憶領域と、記憶領域に書き込むためのデータを一時的に格納するキャッシュ領域と、を含む。
メモリコントローラは、アクセス装置からの指示内容(例えば、コマンドの内容)を解析する指示内容解析処理(例えば、コマンド解析処理)を実行し(実行することができ)、当該指示内容解析処理により解析された指示内容に従い、以下の処理を、それぞれ、アクセス装置が指定する個別のタイミングで実行する。
(1)アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理。
(2)キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理。
(3)キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理。
この不揮発性記憶装置では、不揮発性メモリ上に設けられたキャッシュ領域に格納する(書き込むデータ)を、「有効データ」および「仮有効データ」として管理し、アクセス装置から指示される所定のタイミングで有効化処理を行い、アクセス装置から指示される所定のタイミングで有効化されたデータ(有効データ)を記録領域に移動させることができる。つまり、この不揮発性記憶装置では、有効データのみを記憶領域に移動させるので、例えば、アクセス装置により整合性の確認がとれたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを、アクセス装置が指示できるので、キャッシュ領域を効率良く(こまめに)管理することができる。
したがって、この不揮発性記憶装置では、例えば、キャッシュ領域を用いて、AVコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する(書き込む)ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、この不揮発性記憶装置では、記録処理中に不測の事態(不揮発性記憶装置の電源断や抜去等)が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
第2の発明は、第1の発明であって、メモリコントローラは、アクセス装置からの指示内容がキャッシュ書き込み処理を指示する場合であって、既にキャッシュ領域に「有効データ」が存在している場合、アクセス装置からのデータをキャッシュ領域に「仮有効データ」として書き込み、キャッシュ領域に既存の「有効データ」と新たに書き込んだ「仮有効データ」とを混在させるようにキャッシュ書き込み処理を実行する。
この不揮発性記憶装置では、キャッシュ領域に「有効データ」と「仮有効データ」とが混在させることができる。これにより、アクセス装置が、例えば、コンテンツファイルのデータと、そのコンテンツファイルに関連するコンテンツ管理情報ファイルのデータとの整合性を確認するまで、整合性が確認されていないデータを、キャッシュ領域に「仮有効データ」として保持させることができる。
第3の発明は、第1または第2の発明であって、メモリコントローラは、キャッシュ領域の有効データを記憶領域に移動させる移動処理を、所定の時間を超えない範囲で分割して実施する分割移動処理により実行するものであり、分割移動処理をアクセス装置が指定する個別のタイミングで実行する。
この不揮発性記憶装置では、アクセス装置からの指示に従い、分割処理を、所定の期間において、分割して実行する。したがって、この不揮発性記憶装置では、所定の期間内において、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ(有効データ)の移動処理を、時分割で行うことができる。
例えば、この不揮発性記憶装置において、所定の期間T1〜T2において、2つの番組PRG1、PRG2を連続して記録する場合、PRG2のストリームデータの記憶領域への書き込み処理「S2」と、PRG2のストリームデータのコンテンツ管理情報ファイルデータのキャッシュ領域への書き込み処理「M2」と、PRG1のコンテンツ管理情報ファイルデータの移動処理「m1」(このm1は、所定の期間T(期間Tは、所定の期間T1〜T2よりも短い期間である。)だけ実行される。)とを、所定の期間T1〜T2において、時分割で行うことができる。
このように、不揮発性記憶装置では、例えば、複数のAVコンテンツを連続的に記録する場合、記録対象のAVコンテンツを切り替えるときにおいても、時間のかかるキャッシュ領域に格納されている有効データの移動処理を分割して実施することが可能であるため、次のAVコンテンツの記録が長時間待たされることがない。
第4の発明は、第3の発明であって、所定の時間は、不揮発性記憶装置に1セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下の時間である。
なお、所定の時間は、不揮発性記憶装置に1セクタのデータ書き込みを行う場合に許容される処理時間t1と同一時間にすることが好ましいが、処理時間t1と同程度の時間(例えば、t1±20%の時間)や、処理時間t1と同程度の時間(例えば、t1±20%の時間)以下の所定の時間であってもよい。
第5の発明は、第3または第4の発明であって、アクセス装置からの指示に基づいて、移動処理を分割して実施するか、それとも、分割せずに実施するかを選択することができる。
第6の発明は、第3から第5のいずれかの発明であって、メモリコントローラは、分割移動処理を実行している間に、アクセス装置からキャッシュ書き込み処理の実行を指示された場合、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、キャッシュ書き込み処理を実行する。
これにより、この不揮発性記憶装置では、アクセス装置からのキャッシュ書き込み処理の実行の指示に従い、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、キャッシュ書き込み処理を実行することができる。
第7の発明は、第3から第6のいずれかの発明であって、メモリコントローラは、分割移動処理を実行している間に、アクセス装置から有効化処理の実行を指示された場合、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、有効化処理を実行する。
これにより、この不揮発性記憶装置では、アクセス装置からの有効化処理の実行の指示に従い、分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、有効化処理を実行することができる。
第8の発明は、第1から第7のいずれかの発明であって、メモリコントローラは、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合、キャッシュ領域に格納されている全部または一部の仮有効データを破棄する。
これにより、この不揮発性記憶装置では、所定の状態から、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ(有効データ)の移動処理を、実行することができる。
なお、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合、キャッシュ領域に格納されている全部の仮有効データを破棄し、キャッシュ領域に仮状態が全くない状態にすることが好ましいが、一部の仮有効データを破棄するようにしてもよい。
第9の発明は、第1から第7のいずれかの発明であって、メモリコントローラは、初期化処理においてキャッシュ領域に格納されている仮有効データを検出した場合に、アクセス装置からの指示に基づき、キャッシュ領域に格納されている仮有効データを破棄しない。
これにより、不揮発性記憶装置では、仮有効データを保持した状態から、データの記憶領域への書き込み処理、データのキャッシュ領域への書き込み処理、データ(有効データ)の移動処理を、実行することができる。
第10の発明は、第1から第9のいずれかの発明であって、メモリコントローラは、アクセス装置の指示により移動処理を開始する場合、キャッシュ領域に仮有効データが存在しているならば、キャッシュ領域に存在する仮有効データを有効データに変換した後、移動処理の実行を開始する。
これにより、キャッシュ領域のデータが全て有効データである状態から、移動処理を開始することができる。
第11の発明は、記憶領域とキャッシュ領域とを含む不揮発性記憶装置と通信することができ、不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置ある。このアクセス装置は、以下の処理を、それぞれ、個別のタイミングで実行するように指示する。
(1)キャッシュ領域に、データを仮有効データとして書き込むデータ書き込み処理。
(2)キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理。
(3)キャッシュ領域に格納されている有効データを前記記憶領域へ移動させる移動処理。
このアクセス装置では、不揮発性メモリ上に設けられたキャッシュ領域に格納する(書き込むデータ)を、「有効データ」および「仮有効データ」として管理する不揮発性記憶装置に対して、所定のタイミングで有効化処理の指示を行い、また、不揮発性記憶装置に対して、所定のタイミングで有効化されたデータ(有効データ)を記録領域に移動させることができる。つまり、このアクセス装置は、不揮発性記憶装置に対して、所定のタイミングで、有効データのみを記憶領域に移動させるので、例えば、アクセス装置が整合性の確認をしたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、このアクセス装置は、不揮発性記憶装置に対して、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを指示できるので、不揮発性記憶装置のキャッシュ領域を効率良く(こまめに)管理することができる。
したがって、このアクセス装置では、例えば、キャッシュ領域を用いて、AVコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、不揮発性記憶装置に対して、こまめに更新させる(書き込ませる)ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、このアクセス装置では、記録処理中に不測の事態(不揮発性記憶装置の電源断や抜去等)が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
第12の発明は、第11の発明であって、
(1)ストリームデータの記録中に、ストリームデータに関するコンテンツ管理情報をキャッシュ領域に書き込みデータ書き込み処理の実行を、不揮発性記憶装置に指示し、
(2)コンテンツ管理情報の整合性が確保された時点で、キャッシュ領域に書き込んだデータの有効化処理の実行を、不揮発性記憶装置に指示し、
(3)ストリームデータの記録終了後に、キャッシュ領域に書き込んだデータを記憶領域に移動させる移動処理の実行を、不揮発性記憶装置に指示する。
このアクセス装置では、ストリームデータの記録を行いながら、適宜、ストリームデータと、そのストリームデータに関するコンテンツ管理情報との整合性が確保された時点で、適宜、不揮発性記憶装置に対して、キャッシュ領域に書き込んだデータの有効化処理を実行させることができる。そして、このアクセス装置は、不揮発性記憶装置に対して、ストリームデータの記録終了後に、キャッシュ領域に書き込んだデータを記憶領域に移動させる移動処理を実行させる。
これにより、このアクセス装置では、ストリームデータとそのストリームデータに関するコンテンツ管理情報との整合性をこまめに確認しながら、効率良く、ストリームデータとそのストリームデータに関するコンテンツ管理情報とを不揮発性記憶装置に記録させることができる。
第13の発明は、第11または第12の発明であって、キャッシュ領域に書き込んだデータの記憶領域への移動処理を複数の個別移動処理に分割して行う分割移動処理を実行するように、不揮発性記憶装置に指示し、各々の個別移動処理を実行するタイミングを不揮発性記憶装置に指示する。
これにより、このアクセス装置では、不揮発性記憶装置に対して、分割移動処理を実行させることができる。さらに、このアクセス装置は、不揮発性記憶装置に対して、分割移動処理を構成する複数の個別移動処理のそれぞれの実行開始タイミングを指示することができる。
例えば、分割移動処理が、個別移動処理m1(1)〜m1(N)(Nは、2以上の自然数)から構成される場合、アクセス装置は、個別移動処理m1(k)(1≦k≦N)の処理開始タイミングを、不揮発性記憶装置に対して、指示することができる。
第14の発明は、第13の発明であって、分割移動処理の開始から終了までの期間に含まれる所定の期間において、ストリームデータの記録を実行するように、不揮発性記憶装置に指示する。
これにより、アクセス装置は、不揮発性記憶装置に対して、分割移動処理の開始から終了までの期間において、時分割で、ストリームデータの記録処理および分割移動処理を構成する個別移動処理の実行を行うことができる。そして、アクセス装置は、その時分割処理における処理タイミング、処理順序を、不揮発性記憶装置に対して指示することができる。
第15の発明は、第13または第14の発明であって、分割移動処理の開始から終了までの期間に含まれる所定の期間において、ストリームデータのコンテンツ管理情報をキャッシュ領域に書き込むように、不揮発性記憶装置に指示する。
これにより、アクセス装置は、不揮発性記憶装置に対して、分割移動処理の開始から終了までの期間において、時分割で、ストリームデータのコンテンツ管理情報をキャッシュ領域に書き込む処理および分割移動処理を構成する個別移動処理の実行を行うことができる。そして、アクセス装置は、その時分割処理における処理タイミング、処理順序を、不揮発性記憶装置に対して指示することができる。
第16の発明は、第13から第15のいずれかの発明であって、分割移動処理が完了するまでは、新たな移動処理の開始を、不揮発性記憶装置に指示しない。
これにより、分割移動処理が完了するまで、新たな移動処理が開始されることがないということを保証することができる。
第17の発明は、第1から第10のいずれかの発明である不揮発性記憶装置と、第11から第16のいずれかの発明であるアクセス装置とを備える不揮発性記憶システムである。
第18の発明は、第17の発明である不揮発性記憶システムに用いられるデータ記録方法であって、キャッシュ書き込み処理ステップと、有効化処理ステップと、移動処理ステップと、を備える。
キャッシュ書き込み処理ステップでは、アクセス装置から指定される所定のタイミングで、アクセス装置からのデータをキャッシュ領域に仮有効データとして書き込む。有効化処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている仮有効データを一括して有効データに変換する。移動処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている有効データを記憶領域に移動させる。
このデータ記録方法では、不揮発性メモリ上に設けられたキャッシュ領域に格納する(書き込むデータ)を、「有効データ」および「仮有効データ」として管理する不揮発性記憶装置に対して、アクセス装置から指示される所定のタイミングで有効化処理を行い、アクセス装置から指示される所定のタイミングで有効化されたデータ(有効データ)を記録領域に移動させることができる。つまり、このデータ記録方法では、有効データのみを記憶領域に移動させるので、例えば、アクセス装置により整合性の確認がとれたデータを有効データとし、その有効データのみを記憶領域に移動させることができる。さらに、キャッシュ書き込み処理、有効化処理、および、移動処理の実行タイミングを、アクセス装置が指示できるので、キャッシュ領域を効率良く(こまめに)管理することができる。
したがって、このデータ記録方法では、例えば、キャッシュ領域を用いて、AVコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する(書き込む)ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。その結果、このデータ記録方法では、記録処理中に不測の事態(不揮発性記憶装置の電源断や抜去等)が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置に保持させることができる。
第19の発明は、第17の発明である不揮発性記憶システムに用いられるデータ記録方法であって、キャッシュ書き込み処理ステップと、有効化処理ステップと、移動処理ステップと、を備えるデータ記録方法をコンピュータに実行させるためのプログラムである。
キャッシュ書き込み処理ステップでは、アクセス装置から指定される所定のタイミングで、アクセス装置からのデータをキャッシュ領域に仮有効データとして書き込む。有効化処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている仮有効データを一括して有効データに変換する。移動処理ステップでは、アクセス装置から指定される所定のタイミングで、キャッシュ領域に格納されている有効データを記憶領域に移動させる。
これにより、第18の発明と同様の効果を奏するコンピュータに実行させるためのプログラムを実現することができる。
本発明によれば、不揮発性メモリ上に設けられたキャッシュの対象領域を変更するための処理を効率的に行うことが可能であり、かつ、電源断等によるデータの内容の不整合を回避可能な、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ記録方法、プログラムを実現することができる。
第1実施形態における不揮発性記憶システムを示すブロック図 第1実施形態における不揮発性メモリの構成の一例を示した説明図 第1実施形態における各MICの状態名と取りうる格納データの状態の対応を示す図 第1実施形態におけるMIC操作コマンドとコマンド付随する主なパラメータの種類を示す図 第1実施形態におけるMICの状態とMIC操作コマンドによる状態遷移を示す図 第1実施形態におけるMIC管理テーブルの構成の一例を示した説明図 第1実施形態における不揮発性記憶装置1の初期化コマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のMIC_WRITEコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のCOMMIT_WO_MOVEコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のCOMMIT_W_MOVEコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のCONTINUE_MOVEコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のGET_MIC_INFOコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1の通常のWriteコマンド処理の手順を示すフローチャート 第1実施形態における不揮発性記憶装置1のReadコマンド処理の手順を示すフローチャート 第1実施形態におけるアクセス装置2のアプリケーション部201が不揮発性記憶装置1にAVコンテンツを格納する際のディレクトリ及びファイル構成の一例を示した説明図 従来のアクセス装置がAVコンテンツを格納する際の記録の順序の一例を示した説明図 従来のアクセス装置および第1実施形態におけるアクセス装置2がストリームファイルを記録する際の書込み順序の一例を示した説明図 従来のアクセス装置および第1実施形態におけるアクセス装置2が管理情報ファイルを記録する際の書込み順序の一例を示した説明図 第1実施形態におけるアクセス装置2がAVコンテンツを格納する際の記録の順序の一例を示した説明図 第1実施形態におけるアクセス装置2のコンテンツ記録処理の手順を示すフローチャート 第1実施形態におけるアクセス装置2のコンテンツ記録処理の手順を示すフローチャート 第1実施形態におけるMICの書込みデータの状況の一例を時系列的に示した説明図 第1実施形態における電源断もしくは抜去直後のMICが取りうる状態の組合せを示す説明図 (a)従来のアクセス装置が第1実施形態における不揮発性記憶装置1の初期化を行うシーケンスの一例を示す説明図、(b)第1実施形態におけるアクセス装置が第1実施形態における不揮発性記憶装置1の初期化を行うシーケンスの一例を示す説明図 第1実施形態における初期化コマンド処理直後の第1及び第2MICが取りうる状態の組合せを示す説明図 第1実施形態におけるアクセス装置2のMIC準備処理の手順を示すフローチャート 第1実施形態におけるMIC準備処理のS1004の開始時点における第1及び第2MICが取りうる状態の組合せを示す説明図 第1実施形態におけるMIC準備処理直後の第1及び第2MICが取りうる状態の組合せを示す説明図 第1実施形態の変形例におけるMICの状態とMIC操作コマンドによる状態遷移を示す図 第1実施形態の変形例におけるアクセス装置2がAVコンテンツを格納する際の記録の順序の一例を示した説明図
以下、本発明の実施形態について、図面を参照しながら説明する。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1は、第1実施形態における不揮発性記憶システム1000の概略構成図である。
図1に示すように、不揮発性記憶システム1000は、不揮発性記憶装置1と、不揮発性記憶装置1が装着されるアクセス装置2とを含んで構成される。不揮発性記憶装置1と、アクセス装置2とは、バスB1により接続されて、双方向に通信を行うことができる。
不揮発性記憶装置1は、例えば、半導体メモリカードである。アクセス装置2は、例えば半導体メモリカードに動画コンテンツを記録するビデオレコーダである。
(1.1.1:アクセス装置の構成)
アクセス装置2は、図1に示すように、CPU21と、RAM22と、ROM23と、不揮発性記憶装置インタフェース(不揮発性記憶装置IF)24と、AV入力部25と、符号処理部26と、暗号処理部27と、を含む。アクセス装置2の各機能部は、図1に示すように、バスBA1を介して接続されている。なお、アクセス装置2は、アクセス装置2の機能部の全部または一部が直接接続される構成であってもよい。
CPU21は、RAM22およびROM23を用いて、アクセス装置2の各種制御を行う。
RAM22は、所定のアドレスに対して、各種データの読み出し/書き込み処理を実行することができる。そして、RAM22に保持されているデータ等は、CPU21やアクセス装置2の各機能部からアクセスすることができる。
ROM23には、アクセス装置2を制御するプログラムが格納されている。このプログラムは、RAM22にロードされ、CPU21により実行される。
不揮発性記憶装置インタフェース部24は、不揮発性記憶装置1とアクセス装置2との接続部である。制御信号及びデータは、不揮発性記憶装置インタフェース部24を介して、アクセス装置2と不揮発性記憶装置1との間で、送受信される。
AV入力部25は、外部から放送波などのAV入力データ(映像や音声のデータ、及びこれらに関連する制御データ)を受信する。AV入力部25により受信されたAV入力データは、ROM23に格納されたプログラムによる処理や、符号処理部26による符号処理や、暗号処理部27による暗号処理が施され、コンテンツデータファイル及びコンテンツ管理情報ファイルとして不揮発性記憶装置1に格納される。
符号処理部26は、AV入力部25により受信されたAV入力データに対して、所定の符号方式による符号処理を実行する。
暗号処理部27は、AV入力部25により受信されたAV入力データ(例えば、暗号化が指示されているAV入力データ)、あるいは、符号処理部26により符号処理が実行されたAV入力データに対して、所定の暗号方式による暗号処理を行う。
ROM23は、図1に示すように、アプリケーション部201と、ファイルシステム部202と、キャッシュ制御部203と、不揮発性記憶装置アクセスドライバ部204と、を含む。なお、本実施形態では、アプリケーション部201、ファイルシステム部202、キャッシュ制御部203、および、不揮発性記憶装置アクセスドライバ部204は、ROM23上において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、例えば、アプリケーション部201、ファイルシステム部202、キャッシュ制御部203、および、不揮発性記憶装置アクセスドライバ部204の全部または一部は、ハードウェアで実現されるものであってもよい。
アプリケーション部201は、データの生成や電源の制御などアクセス装置2全体の制御を行う。
ファイルシステム部202は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。
キャッシュ制御部203は、不揮発性記憶装置1が提供するキャッシュ機能を利用するための制御を行う。本実施形態では、キャッシュ制御部203を独立した構成としているが、キャッシュ制御部203は、アプリケーション部201やファイルシステム部202の一部として実装されていてもよい。
不揮発性記憶装置アクセスドライバ部204は、ファイルシステム部202からデータと共にサイズとアドレスとを渡され、指定されたサイズのデータを不揮発性記憶装置1の記憶領域内における指定された位置に記録するなど、不揮発性記憶装置1に対するコマンドやデータの送受信を制御する。また、不揮発性記憶装置アクセスドライバ部204は、キャッシュ制御部203からの指示により、キャッシュ機能に関するコマンドやデータの送受信も制御する。
(1.1.2:不揮発性記憶装置の構成)
図1に示すように、不揮発性記憶装置1は、メモリコントローラ11と、不揮発性メモリ12と、を含む。メモリコントローラ11と、不揮発性メモリ12とは、バスB2により接続されており、メモリコントローラ11は、不揮発性メモリ12と、バスB2を介して、データの送受信(データの読み出し/書き込みや、コマンド送信やレスポンスの受信等)を行うことができる。
メモリコントローラ11は、不揮発性記憶装置1の制御全般を行うモジュールであり、例えば、CPUなどを含むLSIとして構成される。不揮発性メモリ12は、例えば、1つ以上のNAND型フラッシュメモリで構成される。
メモリコントローラ11は、図1に示すように、CPU101と、RAM102と、ROM103と、アクセス装置インタフェース(アクセス装置IF)104と、不揮発性メモリインタフェース(不揮発性メモリIF)105と、を含む。メモリコントローラ11の各機能部は、図1に示すように、バスBC1を介して接続されている。なお、メモリコントローラ11は、メモリコントローラ11の機能部の全部または一部が直接接続される構成であってもよい。
アクセス装置インタフェース部104は、不揮発性記憶装置1とアクセス装置2との接続部である。不揮発性記憶装置インタフェース部24同様、制御信号及びデータは、アクセス装置インタフェース部104を介して、アクセス装置2と不揮発性記憶装置1との間で、送受信される。
ROM103には、不揮発性記憶装置1を制御するプログラムが格納されている。このプログラムは、RAM102にロードされ、CPU101により実行される。
不揮発性メモリインタフェース部105は、メモリコントローラ11と不揮発性メモリ12との接続部である。不揮発性メモリ12に対するコマンドやデータは、不揮発性メモリインタフェース部105を介して、メモリコントローラ11と不揮発性メモリ12との間で、送受信される。
ROM103は、図1に示すように、コマンド処理部106と、アドレス管理部107と、キャッシュ領域管理部108と、を含む。なお、本実施形態では、コマンド処理部106、アドレス管理部107、および、キャッシュ領域管理部108は、ROM103上において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、例えば、コマンド処理部106、アドレス管理部107、および、キャッシュ領域管理部108の全部または一部は、ハードウェアで実現されるものであってもよい。
コマンド処理部106は、アクセス装置インタフェース部104を介して、アクセス装置2から受信したコマンド及びコマンドに関するパラメータを解釈し、コマンドの処理を実行する機能部である。
アドレス管理部107は、不揮発性メモリ12のアドレス管理全般を行う。アドレス管理部107は、アクセス装置2からアクセス可能なアドレス空間として不揮発性記憶装置1が提供する論理アドレス空間における論理アドレスと物理アドレスとの対応付けを管理する。アドレス管理部107は、有効なデータが格納されておらずデータ書き込みに再利用可能なブロックであるフリーブロックの物理アドレスや、データ書き込みに利用不可能な不良ブロックの物理アドレスや、論理アドレスと物理アドレスとの変換テーブルが格納されたブロックの物理アドレスなども管理する。
キャッシュ領域管理部108は、不揮発性メモリ12の第1キャッシュ領域122の状態、及び、第2キャッシュ領域123の状態や、キャッシュ領域(第1キャッシュ領域122、第2キャッシュ領域123)に格納されたデータの情報を管理し、アクセス装置2に対するキャッシュ機能を提供(実現)する。また、キャッシュ領域管理部108は、後述するMIC管理テーブルの生成や更新を行う。
不揮発性メモリ12は、図1に示すように、記憶領域121と、第1キャッシュ領域122と、第2キャッシュ領域123と、フリーブロック領域124と、システム領域125と、を含む。
記憶領域121は、ユーザデータを格納する領域である。
第1キャッシュ領域122および第2キャッシュ領域123は、それぞれ、小サイズでランダムな論理アドレスのユーザデータを一時的に高速に格納するための領域である。第1キャッシュ領域および第2キャッシュ領域は、主に、コンテンツ管理情報(Management Information)をキャッシュ(Cache)として書き込む領域である。簡便化のため、以降では、第1キャッシュ領域を「MIC1」と、第2キャッシュ領域を「MIC2」と呼称するものとする。また、MIC1およびMIC2のいずれか一方のキャッシュ領域のことを、「MIC」と記載する。
フリーブロック領域124は、フリーブロックにより構成される領域である
システム領域125は、メモリコントローラ11が内部的に使用するシステム情報を格納する領域である。システム情報には、論理アドレスと物理アドレスとの変換テーブルの情報や、不良ブロックの情報などが含まれる。
図2は、不揮発性メモリ12の物理的な構成例を示している。
図2に示すように、不揮発性メモリ12は、複数の物理ブロックから構成される。物理ブロックは、データを消去する単位(データ消去単位)であり、不揮発性メモリ12では、データを書き込む前にこのデータ消去単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データ書き込みを行う単位である。更に、ページは、データ部と冗長部とを含む。データ部は、主にアクセス装置2から受信したファイルデータ等が格納される領域である。冗長部は、主に不揮発性メモリ12の管理情報や誤り訂正符号であるECC等が格納される領域である。データ部の大きさは、例えば、4KBであり、冗長部の大きさは、例えば、128バイト程度である。このとき、データ部には、512バイトのセクタデータを8セクタ分格納することができる。また、データ部にのみ着目した場合、物理ブロックの大きさは、例えば、512KB程度となる。よって、この大きさの物理ブロック2048個から構成される不揮発性メモリ12は、総容量1GB(ギガバイト)となる。
≪キャッシュ領域(MIC)の構成≫
不揮発性記憶装置1が、アクセス装置2から、キャッシュ対象となっている論理アドレスにデータ(例えば、コンテンツ管理情報)を書き込むコマンドを受信した場合、アドレス管理部107は、当該論理アドレスに対応する物理アドレス(MICに含まれる物理アドレス(物理ブロックアドレスおよびページアドレス(ブロック内のオフセット)))を特定する。そして、その特定された物理アドレス(MICに含まれる物理アドレス)に、アクセス装置から送信されたデータ(例えば、コンテンツ管理情報)が書き込まれる。
つまり、キャッシュ領域管理部108によって管理されるMICには、アクセス装置2から受信した1つ以上の論理アドレス(キャッシュ対象の論理アドレス)の書き込みデータ(例えば、コンテンツ管理情報)が格納される。そして、MICに格納される各データは、「有効」または「仮有効」という何れかの状態を有する。
状態が「有効」のデータ(以下、「有効データ」という。)とは、不揮発性記憶装置1を再初期化したときに、常に保持されるデータである。
一方、状態が「仮有効」のデータ(以下、「仮有効データ」という。)とは、不揮発性記憶装置1を再初期化したときに、破棄するか、あるいは、仮有効データとして保持するかを、アクセス装置2が選択できるデータである。
MICへの書き込みデータは、まず、仮有効状態でMICに格納される。
その後、MICに格納されているデータは、アクセス装置2のキャッシュ制御部203が指示するタイミングで、仮有効状態から有効状態に変更される。MICに格納されているデータの状態を仮有効から有効に変更することを「有効化」あるいは「有効化処理」と呼ぶものとする。
MICに書き込まれるデータが、コンテンツ管理情報であるとして、以下、説明する。
アクセス装置2は、まず、(複数の)コンテンツ管理情報を仮有効状態として、MICに書き込む。
その後、アクセス装置2は、MICに格納されている(複数の)コンテンツ管理情報の整合性が確保できた時点で、不揮発性記憶装置1に対して、有効化(有効化処理)を指示する。そして、キャッシュ領域管理部108は、既存の1つ以上の仮有効データ(MICに仮有効状態で格納されている(複数)のコンテンツ管理情報)を一括して有効化する。
これにより、不揮発性記憶システム1000では、複数のコンテンツ管理情報の書き込み中に電源断や不揮発性記憶装置1の抜去が発生した場合であっても、仮有効データ(MICに仮有効状態で格納されているコンテンツ情報)を破棄することで、コンテンツ管理情報の内容の整合性を確保(保証)することが容易になる。
なお、「コンテンツ管理情報の整合性が確保できた時点」とは、例えば、AVコンテンツのファイルデータと、その管理情報であるコンテンツ管理情報とが、所定の仕様や、所定の規格(フォーマット)に従って整合性がとれたと判断された時点をいう。より具体的には、例えば、AVコンテンツデータをNバイト書き込む度に、その書き込んだAVコンテンツについてのコンテンツ管理情報を書き込むという仕様(規格)の場合、NバイトのAVコンテンツデータを書き込み、かつ、その書き込んだAVコンテンツについてのコンテンツ管理情報を書き込んだ時点が、「コンテンツ管理情報の整合性が確保できた時点」である。
なお、「コンテンツ管理情報の整合性が確保できた時点」は、アクセス装置2が、アクセス装置2側の仕様等に基づいて、判定することが好ましい。
また、本実施形態における有効データ、仮有効データという区別は、論理的になされるものであり、物理的になされるものではない。より具体的には、あるデータが、有効データであるか、それとも、仮有効データであるかは、論理アドレスにより決定される。例えば、同じMICに論理アドレスMの書き込みを数回連続して実施した場合、それぞれの書き込みは、物理的には別のアドレス(別の物理ページなど)に書き込まれるが、論理的には1つの論理アドレスMの仮有効データが書き込まれることになる。つまり、あるデータが、有効データであるか、それとも、仮有効データであるかの区別は、論理アドレスに基づいて決定(判断)される。
また、MIC1に有効データが存在する状態で、そのMIC1に新たなデータの書き込みを行った場合、MIC1は、既に書き込まれている有効データを保持したまま、新たに仮有効データが書き込まれた状態となる。従って、MIC1に論理アドレスMの仮有効データ(論理アドレスがMであるデータであって、仮有効状態でMICに格納されるデータ)を書き込んだ後、当該仮有効データを有効化して、当該仮有効データを有効データに変更した後、さらに、論理アドレスMに仮有効データを書き込むことが可能である。このとき、MIC1は、論理アドレスMの仮有効データと論理アドレスMの有効データの両方が書き込まれた状態となる。なお、上記では、MICがMIC1である場合について説明したが、MICがMIC2である場合も同様である。
以上のように、同一のMICには、ある論理アドレスのデータを、仮有効データ及び有効データの最大2つ登録することが可能である。
図3は、各MIC(MIC1、及び、MIC2)の状態の種類と、その状態における各MICの格納データが取りうる状態の種類との対応を示している。
各MICは、「ACTIVE」、「MOVING」、「INACTIVE」のいずれかの状態を有する。
状態が「ACTIVE」のMIC(以下、「ACTIVE MIC」という。)とは、アクセス装置2からのデータの書き込みが可能な、活性状態のMICである。
ACTIVE MICにおける格納データの状態として、以下の(1)〜(4)の4つの状態がある。
(1)有効データ及び仮有効データが存在しない(データなし)状態。
(2)有効データのみが存在する状態。
(3)仮有効データのみが存在する状態。
(4)有効データ及び仮有効データの両方が存在する状態。
状態が「MOVING」のMIC(以下、「MOVING MIC」という。)とは、アクセス装置2からのデータの書き込みが禁止されており、該MICに記録された有効データを記憶領域121に移動している状態のMICである。MOVING MICには、常に、有効データのみが存在している。
状態が「INACTIVE」のMIC(以降、「INACTIVE MIC」という。)とは、アクセス装置2からのデータの書き込みが禁止されており、有効データも仮有効データも存在しない、非活性状態のMICである。INACTIVE MICの状態は、常に「データなし」の状態である。
なお、図3に示すように、塗りつぶしのない(白地)のPTN1は、MICの状態が「ACTIVE」であることを示しており、横縞模様のPTN2は、MICの状態が「MOVING」であることを示しており、全面塗りつぶし(黒地)のPTN3は、MICの状態が「INACTIVE」であることを示している。この塗り分けについては、図面の他の図においても同様である。
図4は、不揮発性記憶装置1が提供するキャッシュ機能に関するコマンド(以降、「MIC操作コマンド」という。)と、各MIC操作コマンドに付随する主なパラメータの種類とを示している。本実施形態の不揮発性記憶システム1000では、少なくとも「MIC_WRITE」、「COMMIT_WO_MOVE」、「COMMIT_W_MOVE」、「CONTINUE_MOVE」、「GET_MIC_INFO」、「EXTENDED_INIT」という6つのコマンドを扱うことができる。アクセス装置2のキャッシュ制御部203が指定するタイミングで、アクセス装置2から不揮発性記憶装置1に対して、MIC操作コマンドが発行される。不揮発性記憶装置1のメモリコントローラ11は、アクセス装置2から受信したMIC操作コマンドに応じた処理を行うことでキャッシュ機能を提供(実現)する。
以下、各コマンドの詳細について、説明する。
≪1:MIC_WRITEコマンド≫
MIC_WRITEコマンドは、ACTIVE MICへのデータ書き込みを行うコマンドである。
アクセス装置2は、不揮発性記憶装置1に対して、書き込み論理アドレスや書き込みデータと共に本コマンドを発行する。書き込みデータは、ACTIVE MICに、仮有効データとして格納される。
≪2:COMMIT_WO_MOVEコマンド≫
COMMIT_WO_MOVEコマンドは、ACTIVE MICに存在する仮有効データを一括して有効化するコマンドである。
アクセス装置2は、MICのデータの整合性が確保された状態で、不揮発性記憶装置1に対して、本コマンドを発行する。不揮発性記憶システム1000において、本コマンドによる処理が実行された場合、MICのデータを記憶領域121に移動する処理は発生しない(”WO”は、”Without”の意)。本コマンドにより実行される処理は、ACTIVE MICの格納データの状態の変更のみであるため、本コマンドにより実行される処理は、比較的短時間(数ミリ秒から数十ミリ秒程度)で完了するという特徴を持つ。
≪3:COMMIT_W_MOVEコマンド≫
COMMIT_W_MOVEコマンドは、ACTIVE MICに存在する仮有効データを一括して有効化し、ACTIVE MICをMOVING MICに変更し、該MOVING MICの有効データを記憶領域121に移動するコマンドである(”W”は、”With”の意)。
アクセス装置2は、分割処理の有無に関する指定とともに、不揮発性記憶装置1に対して、本コマンドを発行する。
本コマンドにおいて分割処理「有り」と指定された場合、本コマンド処理が所定の時間Tを超えない範囲で有効データの移動処理(MOVING MICの有効データを記憶領域121に移動する処理)を中断する。これにより、アクセス装置2は、移動処理の途中で、別のコンテンツデータ等を不揮発性記憶装置1に書き込むことが可能となる。
一方、本コマンドにおいて分割処理「無し」と指定された場合、MOVING MICの全ての有効データの移動処理を完了させる(全ての有効データの移動処理が終了するまで、当該移動処理を継続させる)。
アクセス装置2は、MICのデータの整合性が確保された状態で、不揮発性記憶装置1に対して、本コマンドを発行する。特に、記録するコンテンツデータの切り替りタイミングなどで、MICに登録している論理アドレスを一括して切り替える必要がある場合に、アクセス装置2は、不揮発性記憶装置1に対して、本コマンドを発行する。
また、本コマンドにより、ACTIVE MICがMOVING MICに変更されるタイミングと同期して、INACTIVE MICがACTIVE MICに変更される。これにより、不揮発性メモリ12に、必ず、ACTIVE MICが存在することを保証することができるので、移動処理(MOVING MICの有効データを記憶領域121に移動する処理)中に、不揮発性記憶装置1は、アクセス装置2から、新たなMICへの書き込みを受け付けることが可能となる。
なお、本実施形態では、「所定の時間T」を、不揮発性記憶装置1に1セクタのデータ書き込みを行う場合に許容される処理時間と同程度に設定する。より具体的には、「所定の時間T」を、250ミリ秒とか500ミリ秒といった値に設定する。これにより、不揮発性記憶装置1の設計や、アクセス装置2における時間管理をより簡単にできる可能性がある。「所定の時間T」を、不揮発性記憶装置1に1セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下に設定することが好ましい。「所定の時間T」を、不揮発性記憶装置1に1セクタのデータ書き込みを行う場合に許容される処理時間と同一時間に設定するのが簡便で良い。なお、上記設定値は、一例であり、これに限定されないことは言うまでもない。
≪4:CONTINUE_MOVEコマンド≫
CONTINUE_MOVEコマンドは、MOVING MICに存在する有効データの移動処理を継続するコマンドである。
アクセス装置2は、不揮発性記憶装置1に対して、分割処理の有無に関する指定とともに本コマンドを発行する。
本コマンドにおいて分割処理「有り」と指定された場合、本コマンド処理が所定の時間Tを超えない範囲で有効データの移動処理(MOVING MICの有効データを記憶領域121に移動する処理)を中断する。これにより、アクセス装置2は、移動処理の途中で、別のコンテンツデータ等を不揮発性記憶装置1に書き込むことが可能となる。
一方、本コマンドにおいて分割処理「無し」と指定された場合、MOVING MICの全ての有効データの移動処理を完了させる(全ての有効データの移動処理が終了するまで、当該移動処理を継続させる)。
アクセス装置2は、不揮発性記憶装置1に対して、本コマンドを発行して、移動処理を行うタイミングを、不揮発性記憶装置1に明示的に通知する。従って、不揮発性記憶システム1000において、アクセス装置2が頻繁に不揮発性記憶装置1に書き込みを行うタイミング(あるいは期間)では、移動処理を保留しておき、余裕のあるタイミング(あるいは期間)で、移動処理を再開するということが可能となる。本機能は、コンテンツデータのリアルタイム記録(一定の書き込み速度を保証したデータ書き込み処理)を行う場合などに特に有効である。
≪5:GET_MIC_INFOコマンド≫
GET_MIC_INFOコマンドは、MICに関する情報を取得するコマンドである。
アクセス装置2は、不揮発性記憶装置1に対して、不揮発性記憶装置1の初期化直後などに、本コマンドを発行することにより、MICの状態や格納データの状態などを確認することが可能となる。具体的には、本コマンドにより、以下の情報を取得できることが好ましい。
(1)MICに関する情報:
・ACTIVE、MOVING、INACTIVEといった状態を示す情報
(2)格納データに関する情報:
・有効データの数
・仮有効データの数
・登録可能な論理アドレスの数
・登録済みの論理アドレスの数
・登録済みの論理アドレスのうち有効データの数
・登録済みの論理アドレスのうち仮有効データの数
・登録済みの論理アドレスのうち記憶領域121に移動処理済みの数
・登録済みの論理アドレスの値
・有効として登録済みの論理アドレスの値
・仮有効として登録済みの論理アドレスの値
・記憶領域121に移動処理を行うのに必要な時間に関する情報
(3)その他の情報:
・MICへの登録単位(セクタ、複数セクタ、ページ、など)
・MICの数(本実施例の場合はMIC1とMIC2の2つ)
≪6:EXTENDED_INITコマンド≫
EXTENDED_INITコマンドは、不揮発性記憶装置1の初期化処理を行うコマンドである。
アクセス装置2は、不揮発性記憶装置1に対して、仮有効データの扱いに関する指定とともに本コマンドを発行する。
本コマンドにおいて「破棄」を指定された場合、ACTIVE MICに存在する全ての仮有効データを破棄する処理が実行される。
本コマンドにおいて「保持」を指定された場合、ACTIVE MICに存在する全ての仮有効データは、そのまま保持される。
≪MICの状態とMIC操作コマンドによる状態遷移≫
次に、MICの状態とMIC操作コマンドによる状態遷移について、説明する。
図5は、MICの状態(MIC1及びMIC2の各状態の組合せ)とMIC操作コマンドによる状態遷移を示している。
不揮発性記憶装置1は、MIC1とMIC2を備えているが、これらの状態の組合せは次の4つのいずれかとする。
(1)「状態A」はMIC1がACTIVE、MIC2がINACTIVEの状態である。
(2)「状態B」はMIC1がMOVING、MIC2がACTIVEの状態である。
(3)「状態C」はMIC1がINACTIVE、MIC2がACTIVEの状態である。
(4)「状態D」はMIC1がACTIVE、MIC2がMOVINGの状態である。
不揮発性記憶システム1000では、上記4つの状態のみを許すことにより、不揮発性記憶装置1には、常にACTIVE MICが存在することが保証される。このため、アクセス装置2は、いつでも不揮発性記憶装置1のMICにデータを書き込むことが可能となる。
「状態A」または「状態C」において、不揮発性記憶装置1が、アクセス装置2から、COMMIT_W_MOVEコマンドを受信した場合、ACTIVE MICの全ての有効データの移動処理(MOVING MICの有効データを記憶領域121に移動する処理)が開始される。本コマンド処理後に移動処理が完結しなかった場合は、「状態A」から「状態B」に、または、「状態C」から「状態D」に遷移する。一方、本コマンド処理後に移動処理が完結した場合は、「状態A」から「状態C」に、または、「状態C」から「状態A」に遷移する。
「状態B」または「状態D」において、不揮発性記憶装置1が、アクセス装置2から、CONTINUE_MOVEコマンドを受信した場合、MOVING MICの全ての有効データの移動処理(MOVING MICの有効データを記憶領域121に移動する処理)が継続される。本コマンド処理後に移動処理が完結しなかった場合は、それぞれ「状態B」または「状態D」に留まる。一方、本コマンド処理後に移動処理が完結した場合は、「状態B」から「状態C」に、または、「状態D」から「状態A」に遷移する。
不揮発性記憶装置1が、アクセス装置2から、MIC_WRITEコマンド、COMMIT_WO_MOVEコマンド、GET_MIC_INFOコマンドを受信した場合には、状態遷移は発生しない。
≪MIC管理テーブル≫
次に、MIC管理テーブルについて、説明する。
図6は、キャッシュ領域管理部108が生成及び更新するMIC管理テーブルの構成の一例を示している。
MIC管理テーブルには、以下のような情報が格納されていることが好ましい。
・各MICの状態(ACTIVE、MOVING、INACTIVE)、
・各MICに同時に格納することが可能なデータ数(登録可能アドレス数(登録可能な論理アドレス数))、
・各MICに既に格納されているデータ数(登録論理アドレス数)
・登録論理アドレス数のうちの有効データ数
・登録論理アドレス数のうちの仮有効データ数
・MOVING MICにおける移動処理済みの有効データ数
・各MICに格納されたデータの論理アドレス、データ種別(有効、仮有効)、物理ブロックアドレス、物理ページアドレス、物理セクタアドレス、の一覧
MIC管理テーブルは、不揮発性記憶装置1の初期化処理時等にキャッシュ領域管理部108によってRAM102上に生成される。このとき、キャッシュ領域管理部108は、不揮発性メモリ12のシステム領域125に格納された情報などを参照する。システム領域125には、例えば、論理ブロックと物理ブロックとの対応関係に関する情報や、不良ブロックに関する情報や、MICの状態に関する情報や、MICの格納データの状態に関する情報等が、格納されている。本実施形態では、MICの状態に関する情報や、MICの格納データの状態に関する情報は、システム領域125に格納されていることを想定しているが、これに限定されることはなく、例えば、MICの状態に関する情報や、MICの格納データの状態に関する情報は、物理ブロック(MICの物理ブロック)のページの冗長部(図2を参照)に格納されるものであってもよい。
キャッシュ領域管理部108がMIC管理テーブルを更新する場合、RAM102上の値の更新と共に、不揮発性メモリ12のシステム領域125に格納された情報の更新を行う。
<1.2:不揮発性記憶装置の動作>
以下、不揮発性記憶装置1の動作を説明する。
(1.2.1:初期化コマンド処理)
まず、初期化コマンド処理について、説明する。
図7は、不揮発性記憶装置1の初期化コマンド処理の手順を示すフローチャートである。
不揮発性記憶装置1は、アクセス装置2の不揮発性記憶装置インタフェース部24に装着され、電源が投入されると、不揮発性記憶装置1を構成するハードウェア(HW)の初期化処理を行い、初期化コマンド待ち状態となる。
(S101):
不揮発性記憶装置1は、本発明によるアクセス装置2が発行する初期化コマンド(拡張初期化コマンド(EXTENDED_INITコマンド))と、従来のアクセス装置が発行する初期化コマンド(INITコマンド)の両方を受付け可能とする。
そして、不揮発性記憶装置1は、拡張初期化コマンド、または、初期化コマンド(従来アクセス装置が発行する初期化コマンド)を受信すると、従来の不揮発性記憶装置と同様の初期化処理を行う(S101)。すなわち、不揮発性記憶装置1は、メモリコントローラ11内のROM103に格納されたプログラムであるファームウェア(FW)をCPU101に転送し、ソフトウェアによる初期化処理を行う。
このとき、アドレス管理部107は、不揮発性メモリインタフェース部105を介して不揮発性メモリ12からシステム情報を読み出し、RAM102に論理アドレス・物理アドレスの変換テーブルやフリーブロックのリストを作成する。これらのテーブルをRAM102上に作成するのは、それぞれの情報を参照するときに不揮発性メモリ12からの読み出しが省略でき、処理が高速化されるためである。
(S102〜S106):
キャッシュ領域管理部108は、不揮発性メモリ12からシステム情報を読み出し、MIC管理テーブルをRAM102上に作成する。そして、キャッシュ領域管理部108は、作成したMIC管理テーブルを参照し(S102)、MICに仮有効データが存在するか否かを判定する(S103)。
仮有効データが存在していると判定された場合、不揮発性記憶装置1がアクセス装置2から受信した初期化コマンドがEXTENDED_INITであり(S104で「YES」の場合)、かつ、パラメータとして「保持」が指定されているときは(S105で「YESの場合」)、キャッシュ領域管理部108は、なにもせず(仮有効データは仮有効データのまま保持して)処理を終了させる。
上記以外の場合(S104で「NO」場合、または、S105で「NO」の場合)、キャッシュ領域管理部108は、MICに存在する全ての仮有効データを破棄するようにMIC管理テーブルを更新し(S106)、処理を終了させる。
S103で、仮有効データが存在していないと判定された場合(S103で「NO」の場合)、キャッシュ領域管理部108は、処理を終了させる。
(1.2.2:MIC_WRITEコマンド処理)
次に、MIC_WRITEコマンド処理について、説明する。
図8は、不揮発性記憶装置1のMIC_WRITEコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対して、MIC_WRITEコマンドを発行し、そのコマンドには少なくとも書き込みデータの論理アドレスの情報が含まれているものとする。また、本実施形態では、前記コマンドと共に、前記コマンドで指定する論理アドレスへの書き込みデータが転送されるものとする。
(S201、S202):
不揮発性記憶装置1は、アクセス装置2からMIC_WRITEコマンドを受信すると、キャッシュ領域管理部108は、MIC管理テーブルを参照し(S201)、ACTIVE MICにアクセス装置2が指定する論理アドレスを登録可能であるか否かを判定する(S202)。
(S203、S204、S205):
キャッシュ領域管理部108は、登録可能アドレス数が登録論理アドレス数より大きい場合や、既に仮有効データとして登録済みの論理アドレスが指定された場合には「登録可能」と判断する。
(S203〜S205):
S202で「登録可能」と判断された場合、キャッシュ領域管理部108は、ACTIVE_MICに仮有効データの登録があるか否かを判断する(S203)。
S203で、ACTIVE_MICに仮有効データの登録があると判断された場合(S203で「YES」の場合)、ACTIVE MICに登録された同一論理アドレスの仮有効データを受信した書き込みデータで「上書き」する(S204)。
上記の上書きは、例えば、特許文献1に記載されているページキャッシュの技術等によって「巻き込み退避処理」を伴わずに短時間で実現することができる。すなわち、データXをデータYで「上書き」する処理は、データXが書き込まれている物理アドレスA1のデータを直接、データYに書き換えることではなく、別の物理アドレスA2(例えば、未書き込みの物理ページ)に受信した書き込みデータYを書き込んだ後、MIC管理テーブルにおける該論理アドレスの仮有効データが存在する物理アドレスをA1からA2に更新することで実現する。このように「上書き」処理を実行することで、「巻き込み退避処理」を発生させず、「上書き」処理を短時間(MIC管理テーブルの更新処理時間)で実現することができる。
S202で、ACTIVE MICに仮有効データの登録がないと判断された場合(S203で「NO」の場合)、場合、キャッシュ領域管理部108は、アクセス装置2から受信した書き込みデータをACTIVE MICのデータとして、ACTIVE MICに新規書込みする。この「新規書込み」もページキャッシュの技術等によって短時間で実現することができる。そして、キャッシュ領域管理部108は、MIC管理テーブルを更新して論理アドレスなどの情報を新規に登録する。キャッシュ領域管理部108は、書き込みデータを仮有効データとして登録する。
(S206):
S202で、登録不可と判断された場合、キャッシュ領域管理部108は、アクセス装置2へのエラー通知を行って(S206)、処理を終了させる。
(1.2.3:COMMIT_WO_MOVEコマンド処理)
次に、COMMIT_WO_MOVEコマンド処理について、説明する。
図9は、不揮発性記憶装置1のCOMMIT_WO_MOVEコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対してCOMMIT_WO_MOVEコマンドを発行する。不揮発性記憶装置1のキャッシュ領域管理部108は、アクセス装置2からCOMMIT_WO_MOVEコマンドを受信すると、MIC管理テーブルを参照し(S301)、ACTIVE MICに仮有効データが存在するか否かを判定する(S302)。
S302の判定の結果、仮有効データが存在する場合、キャッシュ領域管理部108は、ACTIVE MICに存在する全ての仮有効データを有効データとするようにMIC管理テーブルを更新し(S303)、処理を終了させる。
S302の判定の結果、仮有効データが存在しない場合、キャッシュ領域管理部108は、そのまま処理を終了させる。
(1.2.4:COMMIT_W_MOVEコマンド処理)
次に、COMMIT_W_MOVEコマンド処理について、説明する。
図10は、不揮発性記憶装置1のCOMMIT_W_MOVEコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対してCOMMIT_W_MOVEコマンドを発行し、そのコマンドには少なくとも分割処理の有無に関する指定が含まれているものとする。
(S401、S402):
不揮発性記憶装置1のキャッシュ領域管理部108は、アクセス装置2からCOMMIT_W_MOVEコマンドを受信すると、MIC管理テーブルを参照し(S401)、ACTIVE MICに仮有効データが存在するか否かを判定する(S402)。
仮有効データが存在する場合のみ、キャッシュ領域管理部108は、ACTIVE MICに存在する全ての仮有効データを有効データとするようにMIC管理テーブルを更新する(S403)。
(S404):
その後、キャッシュ領域管理部108は、ACTIVE MICをMOVING MICに、INACTIVE MICをACTIVE MICに変更するようにMIC管理テーブルを更新する(S404)。
(S405〜S410):
S405でMOVING MICに有効データがあると判定された場合(S405で「YES」の場合)、COMMIT_W_MOVEコマンドで、分割処理「有り」と指定されているか否かを判定する(S406)。
COMMIT_W_MOVEコマンドで、分割処理「有り」と指定されている場合(S406で「YES」の場合)、キャッシュ領域管理部108は、所定の時間Tを超えない範囲で有効データの移動処理を実施し、MIC管理テーブルの情報(移動済みの有効データ数など)を更新する(S407)。
そして、キャッシュ領域管理部108は、MOVING MICに移動処理が完了していない有効データが存在するか判断し(S408)、移動処理が完了していない有効データが存在すれば処理を終了させ、存在しなければMOVING MICをINACTIVE MICに変更するようにMIC管理テーブルを更新して(S410)、処理を終了させる。
COMMIT_W_MOVEコマンドで、分割処理「無し」と指定されている場合(S406で「NO」の場合)、キャッシュ領域管理部108は、MOVING MICの全ての有効データの移動処理を完結させた後、MIC管理テーブルの情報(移動済みの有効データ数など)を更新し(S409)、S410の処理を行って処理を終了させる。
S405でMOVING MICに有効データがない場合(S405で「NO」の場合)、キャッシュ領域管理部108は、S410の処理を行って処理を終了させる。
(1.2.5:CONTINUE_MOVEコマンド処理)
次に、CONTINUE_MOVEコマンド処理について、説明する。
図11は、不揮発性記憶装置1のCONTINUE_MOVEコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対して、CONTINUE_MOVEコマンドを発行し、そのコマンドには少なくとも分割処理の有無に関する指定が含まれているものとする。
(S501、S502):
不揮発性記憶装置1のキャッシュ領域管理部108は、CONTINUE_MOVEコマンドを受信すると、MIC管理テーブルを参照し(S501)、MOVING MICに移動済みでない有効データが存在するか否かを判定する(S502)。
(S503〜S507):
S502で、MOVING MICに移動済みでない有効データがあると判定された場合(S502で「YES」の場合)、CONTINUE_MOVEコマンドで、分割指定の有無を判定する(S503)。
CONTINUE_MOVEコマンドで、分割(分割処理)「有り」と指定されている場合(S503で「YES」の場合)、キャッシュ領域管理部108は、所定の時間Tを超えない範囲で有効データの処理を実施し、MIC管理テーブルの情報(移動済みの有効データ数など)を更新する(S504)。
そして、キャッシュ領域管理部108は、MOVING MICに移動処理が完了していない有効データが存在するか判断し(S505)、存在すれば処理を終了させ、存在しなければMOVING MICをINACTIVE MICに変更するようにMIC管理テーブルを更新して(S507)、処理を終了させる。
CONTINUE_MOVEコマンドで、分割(分割処理)「無し」と指定されている場合(S503で「NO」の場合)、キャッシュ領域管理部108は、MOVING MICの全ての有効データの移動処理を完結させた後、MIC管理テーブルの情報(移動済みの有効データ数など)を更新し(S506)、S507の処理を行って処理を終了させる。
S502で、MOVING MICに移動済みでない有効データがないと判定された場合(S502で「NO」の場合)、キャッシュ領域管理部108は、S507の処理を行って処理を終了させる。
(1.2.6:GET_MIC_INFOコマンド処理)
次に、GET_MIC_INFOコマンド処理について、説明する。
図12は、不揮発性記憶装置1のGET_MIC_INFOコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対して、GET_MIC_INFOコマンドを発行する。不揮発性記憶装置1のキャッシュ領域管理部108は、アクセス装置2からGET_MIC_INFOコマンドを受信すると、MIC管理テーブルを参照して現在のMICに関する情報を取得し(S601)、取得した情報を所定の出力形式(例えば、不揮発性記憶システム1000の仕様により決定される形式や、規格によって決定される形式)のデータに変換する(S602)。そして、キャッシュ領域管理部108は、変換(生成した)所定の出力形式のデータをアクセス装置2に出力する(S603)。
(1.2.7:通常のWriteコマンド処理)
次に、通常のWriteコマンド処理について、説明する。
図13は、不揮発性記憶装置1の通常のWriteコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対して、通常のWriteコマンドを発行し、そのコマンドには少なくとも書き込みデータの論理アドレスの情報が含まれているものとする。また、本実施形態では、前記コマンドと共に、前記コマンドで指定する論理アドレスへの書き込みデータが転送されるものとする。
(S701):
不揮発性記憶装置1は、アクセス装置2から通常のWriteコマンドを受信すると、従来の不揮発性記憶装置と同様のデータ書き込み処理を行う(S701)。その結果、受信データは、記憶領域121に格納される。
(S702〜S704):
続いて、キャッシュ領域管理部108は、MIC管理テーブルを参照し(S702)、MICにアクセス装置2がS701で書き込んだ論理アドレスが登録されているか否かを判定する(S703)。
S703で、MICに書き込んだ論理アドレスが登録されていると判定された場合(S703で「YES」の場合)、キャッシュ領域管理部108は、該当する論理アドレスの登録を全て破棄するように、MIC管理テーブルを更新し(S704)、処理を終了させる。
このように、「該当する論理アドレスの登録を全て破棄する」理由は、以下の通りである。例えば、論理アドレスAのデータData1がMICに書き込まれている状態で、通常のWriteコマンドにより、論理アドレスAのデータがData1からData2に上書き(更新)される場合、上書きデータData2は、記憶領域121に書き込まれることになる。この時点で、論理アドレスAのデータは、不揮発性記憶装置1において、MIC(Data1を格納)および記憶領域121(Data2を格納)の2箇所に格納されていることとなる。このとき、最新のデータであるData2は記憶領域121に格納されていることになる。不揮発性記憶システム1000では、MICに格納されているデータが最新データであることを保証するため、上記のように、通常のWriteコマンドにより、論理アドレスAに書き込み処理が実行された場合、その論理アドレスAに対応するMICのデータがあれば、そのMICのデータを破棄する。このようにすることで、論理アドレスAに対応するデータが、記憶領域121とMICの両方に格納されている場合、MICに格納されているデータが、常に最新データであることが保証される。
つまり、キャッシュ領域管理部108は、該当する論理アドレスに対応するデータが、記憶領域121とMICの両方に格納されている場合、MICに格納されているデータが、常に最新データであることを保証するために、「該当する論理アドレスの登録を全て破棄する」のである。
S703で、MICに書き込んだ論理アドレスが登録されていないと判定された場合(S703で「NO」の場合)、キャッシュ領域管理部108は、そのまま処理を終了させる。
(1.2.8:Readコマンド処理)
次に、Readコマンド処理について、説明する。
図14は、不揮発性記憶装置1のReadコマンド処理の手順を示すフローチャートである。
アクセス装置2は、不揮発性記憶装置1に対して、Readコマンドを発行し、そのコマンドには少なくとも読み出しデータの論理アドレスの情報が含まれているものとする。
(S801):
不揮発性記憶装置1は、アクセス装置2からReadコマンドを受信すると、キャッシュ領域管理部108は、MIC管理テーブルを参照し(S801)、MICにアクセス装置2が読み出しを指定する論理アドレスが登録されているか否かを判定する(S802)。
S802で、指定する論理アドレスが登録されていると判定された場合、キャッシュ領域管理部108は、MICに格納された該当する論理アドレスのデータを優先して出力し(S803)、処理を終了させる。不揮発性記憶システム1000では、上記で説明したように、MICに格納されているデータが最新のデータであることが保証される。したがって、S803では、キャッシュ領域管理部108は、MICに格納された該当する論理アドレスのデータを優先して出力する。
S802で、指定する論理アドレスが登録されていないと判定された場合、キャッシュ領域管理部108は、従来の不揮発性記憶装置と同様のデータ読み出し処理を行い(S804)、処理を終了させる。
なお、S803において、MICに同じ論理アドレスが複数格納されている場合には、最新の書き込みデータを出力するものとする。本実施形態においては、同じ論理アドレスであるならば、常に以下の順で新しい書き込みデータとなる。
(1)ACTIVE MICの仮有効データ
(2)ACTIVE MICの有効データ
(3)MOVING MICの有効データ
(4)記憶領域121のデータ
つまり、1つの論理アドレスに対して、MICに、上記(1)〜(4)の4つのデータが格納されている場合、(1)のACTIVE MICの仮有効データが最も新しいデータであり、(4)の記憶領域121のデータが最も古いデータである。
このような関係が保証されるのは、不揮発性記憶装置1が、前述した処理(「1.2.1」〜「1.2.7」の処理)を行うからである。
<1.3:アクセス装置の動作>
続いて、アクセス装置2の動作を説明する。
(1.3.1:ディレクトリ及びファイル構成)
まず、ディレクトリ及びファイル構成について、説明する。
図15は、アクセス装置2のアプリケーション部201が不揮発性記憶装置1にAVコンテンツを格納(記録)する際のディレクトリ及びファイル構成の一例を示している。
本実施形態においては、ルートディレクトリの直下に「VIDEO」ディレクトリが生成され、「VIDEO」ディレクトリの直下に「PRG1」、「PRG2」といった個々のAVコンテンツを格納するディレクトリが生成される。さらに、「PRG1」には映像・音声のストリームデータ本体であるコンテンツファイルの「ST1」ファイルと、前記コンテンツファイルのメタデータ等を格納したコンテンツ管理情報ファイルである「INFO1」、「INFO2」、・・・、「INFON」ファイルというN個のファイルが生成される。「PRG2」ディレクトリにも「PRG1」と同様のファイル群が生成される。
さらに、「VIDEO」ディレクトリの直下には「MNG」という全てのAVコンテンツデータに関するメタデータ等(例えば、AVコンテンツデータの総数、総再生時間、プレイリスト等)を格納するディレクトリが生成される。「MNG」ディレクトリの直下にはコンテンツ管理情報ファイルである「MNG1」、「MNG2」、・・・、「MNGM」ファイルというM個のファイルが生成される。
従って、アクセス装置2は、1つのAVコンテンツを記録する際に、コンテンツファイル以外にも複数のコンテンツ管理情報ファイル(例えば、上記の「INFO1」や「MNG1」等に相当するファイル)の書き込みが必要である。さらに、各々のコンテンツ管理情報ファイルに関するファイルシステム管理情報(ディレクトリエントリやFAT)の更新も必要となる。一般的に、異なるファイルのデータは、異なる論理アドレスに格納されるため、複数のランダムな(アドレスが連続しない)論理アドレスに対する小サイズのデータ書き込みが発生することになる。
(1.3.2:コンテンツ記録処理)
≪コンテンツ記録処理の記録シーケンス≫
図16は、従来のアクセス装置がAVコンテンツを格納する際の記録の順序の一例を示している。図16は、従来のアクセス装置が、放送時間が連続する2つの番組を2つのAVコンテンツとして、「PRG1」ディレクトリと「PRG2」ディレクトリに、それぞれ順に、格納(記録)する状況を、時間軸とともに示す図である。
図16における「S1」、「S2」は、従来のアクセス装置が、映像・音声のストリームデータ本体をコンテンツファイル「ST1」、「ST2」として記録している期間である。図17に示すように、コンテンツファイルの記録は、ストリームデータを書き込んだ後、ストリームデータのファイルシステム管理情報(FATやディレクトリエントリ)を更新するという手順を繰り返す。
また、図16における「M1」、「M2」は、従来のアクセス装置が、メタデータ等のコンテンツ管理情報を複数のコンテンツ管理情報ファイルとして記録している期間である。図18に示すように、複数のコンテンツ管理情報ファイルのデータを書き込んだ後、コンテンツ管理情報ファイルのファイルシステム管理情報(FATやディレクトリエントリ)をまとめて更新する(書き込む)。
従来のアクセス装置は、上述のようにAVコンテンツ毎に順次記録を実施することで、たとえ2つ目の番組の記録中に不揮発性記憶装置の電源断や抜去が発生しても、記録済みの1つ目の番組には影響ないように制御している。但し、このような場合、2つ目の番組に関するコンテンツ管理情報ファイルは未だ記録されていないので、2つ目の番組に関する書き込み途中のストリームデータ以外の情報は全て失われる。また、「M1」、「M2」などのコンテンツ管理情報ファイルの更新に要する期間が長いため、AVコンテンツの切り替りにおいて、次のAVコンテンツの記録が長時間待たされることも課題となる。
本実施形態の不揮発性記憶システム1000では、上記課題を解決させることができる。
図19は、本発明のアクセス装置2が、AVコンテンツを格納する際の記録の順序の一例を示している。図19は、本実施形態の不揮発性記憶システム1000において、放送時間が連続する2つの番組を2つのAVコンテンツ(PRG1およびPRG2)として、「PRG1」ディレクトリと「PRG2」ディレクトリにそれぞれ順に格納(記録)する場合の状況を示している。
(期間T1〜T2):
図19に示すように、期間T1〜T2において、アクセス装置2は、1つ目の番組PRG1の記録においてコンテンツファイル記録処理「S1」とコンテンツ管理情報ファイル記録処理「M1」とを交互に繰り返し記録している。不揮発性記憶システム1000では、アクセス装置2は、コンテンツ管理情報ファイルの更新を不揮発性記憶装置1のMIC1に書き込むことで、短時間にコンテンツ管理情報ファイルの更新処理(書き込み処理)を実施する。このため、不揮発性記憶システム1000では、ストリームデータ本体をリアルタイムに記録しつつ(一定の書き込み速度を保証したデータ書き込み処理を実行しつつ)、こまめにコンテンツ管理情報ファイルを更新することが可能となる。なお、図19に示した複数のコンテンツファイル記録処理(記録期間)「S1」により、PRG1のAVコンテンツファイル(PRG1のAVコンテンツファイル)が記録される。また、図19に示した複数のコンテンツ管理情報ファイル記録処理(記録期間)「M1」により、PRG1の全てのコンテンツ管理情報ファイルが記録される。なお、このような関係については、PRG2のコンテンツファイル記録処理(記録期間)「S2」、PRG2のコンテンツ管理情報ファイル記録処理(記録期間)「M2」についても同様である。
なお、不揮発性記憶システム1000では、コンテンツ管理情報ファイルの内容の整合性が確保される度に(アクセス装置2がコンテンツ管理情報ファイルの内容の整合性を確認する度に)、MIC1の仮有効データを有効化しておく。
(期間T2〜T3):
そして、1つ目の番組PRG1のストリームデータ本体の記録が完了したら(時刻T2)、不揮発性記憶システム1000では、MIC1でのコンテンツ管理情報ファイルの更新処理を短時間(期間T2〜T3)で実施した後、MIC1の仮有効データを有効化してから、2つ目の番組PRG2のストリームデータのコンテンツファイル記録処理「S2」を開始する(時刻T3)。
(期間T3〜T4):
その後、期間T3〜T4において、図19に示すように、不揮発性記憶システム1000では、PRG2のコンテンツファイル記録処理「S2」とPRG1のコンテンツ管理情報ファイルの移動処理「m1」またはPRG2のコンテンツ管理情報ファイルの記録処理「M2」とを交互に繰り返す。つまり、期間T3〜T4において、不揮発性記憶システム1000では、「S2」、「m1」、「S2」、「M2」、「S2」、「m1」、「S2」、「M2」、・・・、という順番で交互に繰り返し記録処理および移動処理を実行する。なお、時系列で、上記のような順序になるよう処理を実行することが好ましいが、これに限定されることはなく、本発明の要旨を逸脱しない範囲で、上記処理の順序を入れ替えてもよい。
ここで、PRG1のコンテンツ管理情報ファイルの移動処理「m1」は、PRG1のコンテンツ管理情報ファイルの記録処理「M1」によってMIC1に格納された有効データを不揮発性記憶装置1の記憶領域121に移動する処理を所定時間Tだけ実行する処理である。
不揮発性記憶システム1000では、MIC1に格納された有効データの記憶領域121への移動処理を行うことにより、続けて3つ目の番組を記録するときに利用できるMIC(図19の場合では、MIC1)を準備することができる。
PRG2のコンテンツ管理情報ファイルの記録処理「M2」は、2つ目の番組PRG2のコンテンツ管理情報ファイルのデータ(更新データ)を、MIC2に書き込む処理であり、短時間に実施される。
不揮発性記憶システム1000では、2つ目の番組PRG2の記録中において、MIC1に格納された有効データの移動処理が完了した時点(時刻T4)より後は、図19に示すように、PRG2のコンテンツファイルの記録処理「S2」とPRG2のコンテンツ管理情報ファイルの記録処理「M2」とを交互に繰り返し実行する。
(期間T5〜T6):
そして、不揮発性記憶システム1000では、2つ目の番組PRG2のストリームデータ本体の記録が完了した時点(時刻T5)から、PRG2のコンテンツ管理情報ファイルの更新をMIC2に対して実施し、MIC2の有効データを不揮発性記憶装置1の記憶領域121に移動する処理(移動処理「m2」)を開始する。この移動処理は、続けて3つ目の番組の記録する必要がある場合には所定時間T以内に分割して実施するが、そうでなければ一括して実施してもよい。不揮発性記憶システム1000において、3つ目の番組を記録しない場合、図19の期間T5〜T6のMIC2の移動処理(有効データのMIC2から記憶領域121への移動処理)「m2」は、一括移動処理とすることが好ましい。
不揮発性記憶システム1000では、アクセス装置2が上述のようにAVコンテンツを記録することで、たとえ2つ目の番組の記録中に不揮発性記憶装置の電源断や抜去が発生しても、記録済みの1つ目の番組には影響ないように制御することが可能である。
さらに、不揮発性記憶システム1000では、記録中の番組に関するコンテンツ管理情報ファイルもこまめに記録し、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性が確保された時点で(アクセス装置2が整合性を確認した時点で)有効化する(有効化処理を実行する)。このため、不揮発性記憶システム1000では、書き込み途中のストリームデータに応じたコンテンツ管理情報ファイルをこまめに生成(更新)することができる。その結果、不揮発性記憶システム1000では、記録処理中に不測の事態(不揮発性記憶装置の電源断や抜去等)が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置1に保持させることができる。
また、不揮発性記憶システム1000では、複数のAVコンテンツを連続的に記録する場合、記録対象のAVコンテンツを切り替えるときにおいても、時間のかかるMICの有効データの移動処理を分割して実施することが可能であるため、次のAVコンテンツの記録が長時間待たされることがない。
≪コンテンツ記録処理の処理フロー≫
次に、不揮発性記憶システム1000におけるコンテンツ記録処理の処理フローについて、説明する。
図20A及び図20Bは、アクセス装置2が不揮発性記憶装置インタフェース部24に装着された不揮発性記憶装置1にコンテンツを記録するときの、不揮発性記憶装置1へのアクセスに着目したコンテンツ記録処理の手順を示すフローチャートである。
コンテンツ記録処理の開始前に、アクセス装置2は、不揮発性記憶装置1の初期化処理と後述するMIC準備処理を完了しているものとする。そして、MIC準備処理の完了によって、不揮発性記憶装置1のMICには、有効データおよび仮有効データが全く存在しない状態となっているものとする。
(S901、S902):
アクセス装置2のアプリケーション部201は、AV入力部25や符号処理部26や暗号処理部27を制御してAVコンテンツのストリームデータ(コンテンツファイルのデータ)をRAM22上に準備する(S901)。そして、アクセス装置2は、不揮発性記憶装置1に対して、通常のWriteコマンドを発行して単位量のストリームデータ(コンテンツファイルのデータ)を記憶領域121に書き込む(S902)。
(S903):
S903において、記録中のAVコンテンツのストリームデータの書き込みが終了したか否かを判断する(S903)。
(S904):
S903で、記録中のAVコンテンツのストリームデータの書き込みが終了したと判断された場合(S903で「YES」の場合)、不揮発性記憶システム1000では、キャッシュ制御部203の指示により1回以上のMIC_WRITEコマンドを、アクセス装置2から不揮発性記憶装置1に発行することで、関連するコンテンツ管理情報ファイルの書き込みを行い、コンテンツ管理情報ファイルの内容の整合性を確保する(S904)。
(S905、S908):
S905において、続けて別のAVコンテンツのストリームデータを記録する必要の有無を判断する(S905)。
S905で、続けて別のAVコンテンツのストリームデータを記録する必要がないと判断された場合(S905で「NO」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、分割処理「無し」の指定と供に、COMMIT_W_MOVEコマンドを発行し、S904でMICに仮有効データとして格納されたコンテンツ管理情報ファイルの更新データを有効化し、有効化したデータを、MICから記憶領域121に移動する処理を完結させて(S908)、コンテンツ記録処理を終了させる。
(S905、S906、S907):
S905において、続けて別のAVコンテンツのストリームデータを記録する必要があると判断された場合(S905で「YES」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、COMMIT_WO_MOVEコマンドを発行し、S904でMICに仮有効データとして格納したコンテンツ管理情報ファイルの更新データを有効化し(S906)、キャッシュ制御部203が内部で管理する「移動待ちフラグ」をONにする(S907)。そして、アクセス装置2は、次のストリームデータの準備(S901)を行う。
(S909):
S903で、AVコンテンツのストリームデータの書き込みが継続していると判断された場合(S903で「NO」の場合)、キャッシュ制御部203が内部的に管理する「前回移動処理実施フラグ」を参照する(S909)。なお、前回移動処理実施フラグの初期値はOFFである。
(S910):
前回移動処理実施フラグがOFFである場合、アクセス装置2は、不揮発性記憶装置1に対して、GET_MIC_INFOコマンドを発行し、不揮発性記憶装置1のMICに関する情報を取得する(S910)。
(S911):
そして、アクセス装置2は、取得した不揮発性記憶装置1のMICに関する情報から、移動処理中のMICがあるか否か、つまり、MOVING MICが存在するか否かを判断する(S911)。
(S912、S913):
S911で、MOVING MICが存在すると判断された場合(S911で「YES」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、分割処理「有り」の指定と供にCONTINUE_MOVEコマンドを発行し、所定時間Tを超えない範囲で移動処理を継続させ(S912)、移動処理実施フラグをONに設定する(S913)。そして、S901の処理に戻る。
(S914):
S911で、MOVING MICが存在しないと判断された場合(S911で「NO」の場合)、アクセス装置2は、キャッシュ制御部203が内部で管理する移動待ちフラグを参照し、MICに移動待ちのデータがあるか否かを判断する(S914)。
(S915、S916、S913):
S914で、参照した移動待ちフラグがONである場合(S914で「YES」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、分割処理「有り」の指定と供にCOMMIT_W_MOVEコマンドを発行し、所定時間Tを超えない範囲で移動処理を実行し、移動待ちフラグをOFFに更新し(S916)、さらに、前回移動処理実施フラグをONに更新し(S913)、S901の処理に戻る。
(S918〜S920):
S914で、参照した移動待ちフラグがOFFである場合(S914で「NO」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、キャッシュ制御部203の指示により1回以上のMIC_WRITEコマンドを発行することで関連するコンテンツ管理情報ファイルの書き込みを行い、コンテンツ管理情報ファイルの内容の整合性を確保する(S918)。そして、アクセス装置2は、不揮発性記憶装置1に対して、COMMIT_WO_MOVEコマンドを発行し、S918でMICに仮有効データとして格納されたコンテンツ管理情報ファイルの更新データを有効化し(S919)、前回移動処理実施フラグをOFFに更新し(S920)、S901の処理に戻る。
また、S909で前回移動処理実施フラグがONである場合(S909で「YES」の場合)も、アクセス装置2は、S918、S919、S920の処理を実施して、S901の処理に戻る。
以上のような手順により、アクセス装置2は、図19で示したコンテンツ記録順序を実現することが可能となる。
図21は、不揮発性記憶システム1000でのコンテンツ記録処理に伴うMICの書き込みデータの状況の時系列的に示す図である。
図21において、T01が最も古く、T14に近づくにつれて新しくなっている。AからFのアルファベットはMICに登録された異なる論理アドレスを表している。()内の数字は、その論理アドレスに対する何番目の書き込みデータであるかを表している。下線ありは仮有効データ、下線なしは有効データを表している。[]付きはMICから記憶領域121への移動処理済みデータであることを表している。
T01:
コンテンツ記録処理前は、MIC1およびMIC12の状態は、T01の状態である。
T02:
コンテンツ記録処理を開始し、S901、S902、S903、S909、S918(MIC_WRITE発行)の処理が実行され、T02の状態となる。
T03:
さらに、S919(COMMIT_WO_MOVE発行)の処理が実行され、T03となる。
T04:
さらに、S920、S901、S902、S903、S904(MIC_WRITE発行)の処理が実行され、T04の状態となる。
T05:
さらに、S905、S906(COMMIT_WO_MOVE発行)の処理が実行され、T05の状態となる。
T06:
さらに、S907、S901、S902、S903、S909、S910(GET_MIC_INFO発行)、S911、S914、S915(COMMIT_W_MOVE(分割あり)発行)の処理が実行され、T06の状態となる。そして、この段階で、MIC1から記憶領域121への移動処理が開始される。そして、T06において、MIC1の状態が「ACTIVE」から「MOVING」となり、MIC2の状態が「INACTIVE」から「ACTIVE」となる。したがって、T06以降では、コンテンツ管理情報ファイルの新規データは、MIC2に書き込まれることになる(MIC2がキャッシュ対象となる)。
T07:
さらに、S916(COMMIT_W_MOVE(分割あり)発行)、S913、S901、S902、S903、S909、S918(MIC_WRITE発行)の処理が実行され、T07の状態となる。
T08:
さらに、S919(COMMIT_WO_MOVE発行)の処理が実行され、T08の状態となる。
T09:
さらに、S920、S901、S902、S903、S909、S910(GET_MIC_INFO発行)、S911、S912(CONTINUE_MOVE(分割あり)発行)の処理が実行され、T09の状態となる。
T10:
さらに、S913、S901、S902、S903、S909、S918(MIC_WRITE発行)の処理が実行され、T10の状態となる。
T11:
さらに、S919(COMMIT_WO_MOVE発行)の処理が実行され、T11の状態となる。
T12:
さらに、S920、S901、S902、S903、S909、S910(GET_MIC_INFO発行)、S911、S912(CONTINUE_MOVE(分割あり)発行)の処理が実行され、T12の状態となる。T12の段階で、MIC1の移動処理の対象のデータがなくなるため、MIC1の状態が「MOVING」から「INACTIVE」に遷移する。
T13:
さらに、S913、S901、S902、S903、S904(MIC_WRITE発行)の処理が実行され、T13の状態となる。
T14:
さらに、S905、S908(COMMIT_WO_MOVE(分割なし)発行)の処理が実行され、T14の状態となる。つまり、T14の段階で、仮有効データを一括した有効し、その有効化したデータのMIC2から記憶領域121への移動処理が一括して実行される。そして、MIC2の状態が「ACTIVE」から「INACTIVE」に遷移し、MIC1の状態が「INACTIVE」から「ACTIVE」に遷移する。
(1.3.3:コンテンツ記録準備処理)
次に、コンテンツ記録準備処理について、説明する。
アクセス装置2が上述したコンテンツ記録処理を正常に完了した場合、不揮発性記憶装置1のMICには、有効データ及び仮有効データが全く存在しない状態となる。一方、コンテンツ記録処理の途中で電源断や抜去が発生した場合、MICに有効または仮有効のデータが残った状態となるため、次のコンテンツ記録処理を開始する前に準備処理を行う必要がある。
図22は、不揮発性記憶システム1000において、コンテンツ記録処理中の電源断もしくは抜去直後のMICが取りうる状態の組合せを示している。
図3及び図5にて説明したようにMIC1及びMIC2のうち一方は、常に、ACTIVE MICである。そして、MICの格納データの状態は、(1)有効データ及び仮有効データが存在しない(データなし)場合と、(2)有効データのみが存在する場合と、(3)仮有効データのみが存在する場合と、(4)有効データ及び仮有効データの両方が存在する場合の4つのケースがある。
また、もう一方のMIC(ACTIVE MICでない方のMIC)は、MOVING MICまたはINACTIVE MICであり、MICがMOVING MICである場合、そのMICの格納データは、有効データであり、MICがINACTIVE MICである場合、データなし、つまり、そのMICに格納されているデータは存在しない。
従って、不揮発性記憶システム1000において、コンテンツ記録処理中の電源断もしくは抜去直後のMICが取りうる状態の組合せの数は、図22に示すように、4かける2で8通りとなる。
そして、これら8通りのいずれかの状態にある不揮発性記憶装置1がアクセス装置に装着され初期化コマンドを受信すると、図7で説明した初期化処理コマンド処理が実行される。不揮発性記憶装置1が従来のアクセス装置に装着された場合、不揮発性記憶装置1は、MICの仮有効データを破棄する(図23(a))。一方、不揮発性記憶装置1が本発明のアクセス装置2に装着された場合、不揮発性記憶装置1は、MICの仮有効データを破棄または保持する(図23(b))。
仮有効データが破棄された場合、MICには仮有効データが存在しない状態となるので、初期化コマンド処理後のMICが取りうる状態の組合せは、図24に示すとおり、4通りとなる。
なお、不揮発性記憶装置1が従来のアクセス装置に装着された場合、従来のアクセス装置側で特別な処理を行わなくても、不揮発性記憶装置1側で、仮有効データを破棄することによって、MICに格納されたコンテンツ管理情報ファイルの整合性が確保される。これにより、既に普及している従来のアクセス装置と本発明の不揮発性記憶装置1との互換性を維持することができる。
また、アクセス装置2が不揮発性記憶装置1に対して初期化コマンドを発行したときに、不揮発性記憶装置1が仮有効データを保持することを選択できることは次の点で有用である。例えば、アクセス装置2が不揮発性記憶装置1への書き込み処理を実行中にエラーが発生し、リトライ処理が必要になったとする。できるだけ確実なリトライ処理を行うために、アクセス装置2が不揮発性記憶装置1に対して初期化コマンドを発行してから再書き込みしようとする場合、不揮発性記憶装置1のMICで仮有効データが保持されていることが望ましい。なぜならば、仮有効データが破棄されてしまうと、これらの1つ以上の仮有効データに関しても、再書き込みが必要となり処理が煩雑になってしまうからである。但し、これは特殊な用途であり、通常は、アクセス装置2でも仮有効の破棄を指定する。
アクセス装置2でも、不揮発性記憶装置1に対して、MICの仮有効データの破棄を指定することで、特別な処理を行わずにコンテンツ管理情報ファイルの整合性が確保される。このことは、アクセス装置2側の処理負荷を削減するという点で有用である。
本発明によるアクセス装置2は、不揮発性記憶装置1に対して、初期化コマンドを発行した後、コンテンツ記録処理前にMIC準備処理を実施する。図25は、アクセス装置2によるMIC準備処理の手順を示すフローチャートである。
(S1001):
アクセス装置2は、不揮発性記憶装置1に対して、GET_MIC_INFOコマンドを発行し、MICに関する情報を取得する(S1001)。
(S1002、S1003):
そして、アクセス装置2は、MICに関する情報から、MOVING MICが存在するか否かを判断する(S1002)。
S1002で、MOVING MICが存在すると判断された場合(S1002で「YES」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、分割処理「無し」の指定と供にCONTINUE_MOVEコマンドを発行し、MOVING MICの有効データを記憶領域121に移動する処理を完結させ、MOVING MICをINACTIVE MICにする。この処理を行うことで、MICが取りうる状態の組合せは、図26に示すとおり、2通りとなる。
S1002で、MOVING MICが存在しないと判断された場合(S1002で「NO」の場合)、アクセス装置2は、何もせず、S1004の処理に移行する。
(S1004、S1005):
次に、アクセス装置2は、MICに関する情報から、ACTIVE MICに有効データが存在するか否かを判断する(S1004)。
ACTIVE MICに有効データが存在しないと判断された場合(S1004で「NO」の場合)、アクセス装置2は、処理を終了させる。
ACTIVE MICに有効データが存在すると判断された場合(S1004で「YES」の場合)、アクセス装置2は、不揮発性記憶装置1に対して、分割処理「無し」の指定と供にCOMMIT_W_MOVEコマンドを発行し、全ての有効データを記憶領域121に移動する処理を完結させる。この処理を行うことで、MICが取りうる状態の組合せは、図27に示すとおり、1通り(MICには有効データ及び仮有効データが全く存在しない状態)となる。
なお、S1004においてACTIVE MICに有効データが存在すると判断された場合であっても、その登録論理アドレス数が登録可能論理アドレス数に対して十分に小さく、アクセス装置2がその後のコンテンツ記録処理に支障ないと判断するならば、S1005の処理を省略することも可能である。
以上のように、不揮発性記憶システム1000では、アクセス装置2がコンテンツ記録準備処理を行うことで、コンテンツ記録処理の途中で電源断や抜去が発生した場合に生じるMICに有効または仮有効のデータが残った状態を解消させることができる。つまり、不揮発性記憶システム1000では、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避させることができるとともに、次のコンテンツ記録処理を、MICには有効データ及び仮有効データが全く存在しない状態から開始させることができる。
したがって、不揮発性記憶システム1000では、電源断や不揮発性記憶装置の抜去等の不測の事態が発生した場合であっても、データの内容の整合性を確保しつつ、確実に、コンテンツ記録処理(データ記録処理)を行うことができる。
≪まとめ≫
以上のように、不揮発性記憶システム1000では、不揮発性メモリ12上に設けられたキャッシュ領域(MIC1、MIC2)に格納する(書き込むデータ)を、「有効データ」および「仮有効データ」として管理するとともに、キャッシュ領域(MIC1、MIC2)を、「ACTIVE」、「MOVING」、「INACTIVE」の3つ状態を所定のコマンドにより遷移させることで管理することで、キャッシュ領域を変更するための処理を効率的に行うことができる。不揮発性記憶システム1000では、上記のように管理されるキャッシュ領域(MIC1、MIC2)を用いて、AVコンテンツ等を記録する際に、コンテンツファイルに付随するファイルであるコンテンツ管理情報ファイルのデータを、こまめに更新する(書き込む)ことができるため、書き込んだコンテンツファイルのデータとコンテンツ管理情報ファイルとの整合性を容易に確保することができる。そのため、不揮発性記憶システム1000では、記録処理中に不測の事態(不揮発性記憶装置の電源断や抜去等)が発生した場合であっても、整合性がとれたコンテンツファイルとそのコンテンツ管理情報ファイルとを不揮発性記憶装置1に保持させることができる。
また、不揮発性記憶システム1000では、複数のAVコンテンツを連続的に記録する場合、記録対象のAVコンテンツを切り替えるときにおいても、時間のかかるMICの有効データの移動処理を分割して実施することが可能であるため、次のAVコンテンツの記録が長時間待たされることがない。
つまり、不揮発性記憶システム1000では、キャッシュ領域(MIC1、MIC2)、および、キャッシュ領域に格納されるデータの状態を適切に管理することで、コンテンツファイルと、そのコンテンツ管理情報ファイルとの整合性を確保させつつ、連続して記録するコンテンツのリアルタイム記録のための準備時間を短縮させることができる。さらに、不揮発性記憶システム1000では、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避することができる。
[他の実施形態]
なお、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。本発明の上記実施形態で記載された数値は一例であり、他の値を使用してもよい。例えば、物理ブロックサイズやページサイズなどの値はすべて一例であり、上記実施形態に記載した値に限定されるものではない。MICへの書き込み単位もセクタに限定されない。
また、以下のような場合も本発明に含まれる。
(1)上記実施形態における、アクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムにおいて、各機能ブロックはLSIなどの半導体装置により個別に1チップ化されてもよいし、一部または全部を含むように1チップ化されてもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(2)上記実施形態における各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現してもよい。なお、上記実施形態に係るアクセス装置、不揮発性記憶装置、コントローラ、及び不揮発性記憶システムハードウェアにより実現する場合、書く処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
(3)上記実施形態におけるMICは、MIC1とMIC2の2つから構成されるものとして説明したが、MICの数はこれに限定されるものではない。例えば、3つ以上存在する場合には、少なくとも1つがACTIVE MICであればアクセス装置2からの書き込みを受付可能である。従って、MOVING MICが存在する状態で、さらに別のACTIVE MICをMOVING MICにすることも可能となる。
また、逆にMICを1つにしてもよい。MICが1つの場合のMICの状態とMIC操作コマンドによる状態遷移を図28に示す。
「状態E」は、MIC1がACTIVEの状態である。
「状態F」は、MIC1がMOVINGの状態である。
MICが1つの場合、不揮発性記憶装置側の実装が簡素化される一方、MICにデータを書き込むことができない状態「状態F」が存在するため、アクセス装置側での制御が複雑化する。
「状態E」において、不揮発性記憶装置がアクセス装置からCOMMIT_W_MOVEコマンドを受信した場合、ACTIVE MICの全ての有効データの移動処理が開始される。そして、コマンド処理後に移動処理が完結しなかった場合、MICの状態は、「状態E」から「状態F」に遷移し、一方、移動処理が完結した場合には、状態遷移は発生しない(「状態E」のままである)。
「状態F」において、不揮発性記憶装置がアクセス装置からCONTINUE_MOVEコマンドを受信した場合、MOVING MICの全ての有効データの移動処理が継続される。そして、コマンド処理後に移動処理が完結しなかった場合、MICの状態は、「状態F」に留まり、一方、移動処理が完結した場合、MICの状態は、「状態F」から「状態E」に遷移する。
不揮発性記憶装置が、アクセス装置から、MIC_WRITEコマンド、COMMIT_WO_MOVEコマンド、GET_MIC_INFOコマンドを受信した場合には、状態遷移は発生しない。なお、「状態F」ではACTIVE MICが存在しないため、MIC_WRITEコマンド、COMMIT_WO_MOVEコマンドを受付けることができない。
MICの数を増やすことでアクセス装置側の制御の自由度が高まり、MICの数を減らすことで不揮発性記憶装置の実装の簡素化と記憶容量の増加が見込める。MICの数を増やした場合のメリットと、MICの数を減らした場合のメリットとは、トレードオフの関係にあるため、不揮発性記憶システムの目的に応じて、MICの数を決定することが望ましい。
(4)上記実施形態におけるMIC操作コマンドは一例である。同様の機能を提供するものであれば、複数のコマンドに分割されていてもよいし、別のコマンドと統合されていてもよい。
(5)上記実施形態における不揮発性記憶装置は、半導体メモリカードのような着脱可能な記憶装置として説明したが、アクセス装置の基板に組み込みできる形式の情報記憶モジュールとして実現してもよい。
(6)上記実施形態において、コンテンツ記録処理は、連続する2つの番組を記録する場合を例に説明したが、これに限定されることない。例えば、不揮発性記憶システム1000において、アクセス装置2のAV入力部25が複数のチューナーを備えている場合などでは、不揮発性記憶システム1000において、連続する複数の番組を同時に記録するようにしてもよい。
図29は、本発明のアクセス装置2がAVコンテンツを格納する際の記録の順序の一例を示している。図29に示すように、放送時間が連続する2つの番組PRG3とPRG5、および、その両方に重複する1つの番組PRG4の計3つの番組を、3つのAVコンテンツ(PRG3、PRG4、PRG5)として、「PRG3」、「PRG4」、「PRG5」ディレクトリにそれぞれ格納するものとする。
(期間T1〜T2):
まず、アクセス装置2は、図29に示すように、期間T1〜T2において、PRG3のコンテンツファイル記録処理「S3」と、PRG4のコンテンツファイル記録処理「S4」と、PRG3のコンテンツ管理情報ファイルおよびPRG4のコンテンツ管理情報ファイルの記録処理「M3・4」を順に繰り返し実行する。不揮発性記憶システム1000では、PRG3及びPRG4のコンテンツファイルのデータが不揮発性メモリ12の記憶領域121に書き込まれた後、各々のコンテンツ管理情報ファイルの更新データ(書き込みデータ)が不揮発性記憶装置1のMIC1に短時間で書き込まれる(短時間で更新処理(書き込み処理)が実行される)。
(期間T2〜T3):
そして、PRG3のストリームデータ本体の記録が完了したら(時刻T2)、不揮発性記憶システム1000では、MIC1でのコンテンツ管理情報ファイルの更新処理を短時間(期間T2〜T3)で実施した後、MIC1の仮有効データを有効化してから、PRG5のストリームデータのコンテンツファイル記録処理「S5」を開始する(時刻T3)。
(期間T3〜T4):
その後、不揮発性記憶システム1000では、図29に示すように、コンテンツファイル記録処理「S5」「S4」と、コンテンツ管理情報ファイル移動処理「m3・4」またはコンテンツ管理情報ファイル記録処理「M5・4」が順に繰り返し実行される。
ここで、コンテンツ管理情報ファイル移動処理「m3・4」は、コンテンツ管理情報記録処理「M3・4」によってMIC1に格納された有効データを不揮発性記憶装置1の記憶領域121に移動する処理を所定時間Tだけ実施する処理である。
また、コンテンツ管理情報記録処理「M5・4」は、PRG4及びPRG5のコンテンツ管理情報ファイルの更新データ(書き込みデータ)を、MIC2に短時間に書き込む処理である。
(期間T4〜T5):
PRG4及びPRG5の記録中においてMIC1に格納された有効データの移動処理が完了した時点(時刻T4)より後は、図29に示すように、不揮発性記憶システム1000では、PRG5のコンテンツファイル記録処理「S5」、PRG4のコンテンツファイル記録処理「S4」、PRG5およびPRG4のコンテンツ管理情報ファイルの記録処理「M5・4」が順に繰り返し実行される。
(期間T5〜T6):
そして、PRG4及びPRG5のストリームデータ本体の記録が完了したら(時刻T5)、MIC2でコンテンツ管理情報ファイルの更新処理(記録処理)が実施され、MIC2の有効データを不揮発性記憶装置1の記憶領域121に移動する処理が開始される。この移動処理は、続けて別の番組の記録する必要がある場合には、所定時間T以内に分割して実施されるが、そうでなければ一括して実施されることが好ましい。つまり、図29の期間T5〜T6のMIC2の移動処理は、続けて別の番組の記録する必要がない場合、一括移動処理とすることが好ましい。
以上のように、本発明は、同時に記録するAVコンテンツが複数になっても適用可能である。
(7)上記実施形態において、図19にて、2つ目の番組PRG2のストリームデータ本体の記録処理(コンテンツファイル記録処理)「S2」を開始した後は、コンテンツファイル記録処理「S2」と、PRG1のコンテンツ管理情報ファイル移動処理「m1」またはPRG2のコンテンツ管理情報ファイルの記録処理「M2」を交互に繰り返すものとしたが、必ずしも交互に繰り返す必要はない。「m1」の実施タイミングは、アクセス装置の都合により任意のタイミングで決定してよい。例えば、RAM22に蓄積されたストリームデータ(コンテンツファイルのデータ)の量が少なく、アクセス装置側の処理に余裕があるとき(期間)に、PRG1のコンテンツ管理情報ファイル移動処理「m1」を実施するようにしてもよい。
(8)上記実施形態において、アクセス装置2と不揮発性記憶装置1とは、別装置である場合について説明したが、これに限定されることはなく、アクセス装置2と不揮発性記憶装置1とは、1つの装置内に構成されるものであってもよい。また、アクセス装置は、アクセスモジュールを含む概念であり、不揮発性記憶装置は、不揮発性記憶モジュールを含む概念である。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明にかかる不揮発性記憶システム、アクセス装置、不揮発性記憶装置、データ記録方法、および、プログラムは、不揮発性メモリ上に設けられたキャッシュの対象領域を変更する処理を効率的に行うことができるため、連続するコンテンツデータ記録のための準備時間を短縮することができるとともに、コンテンツ管理情報ファイル等のデータ書込み中に電源断や不揮発性記憶装置の抜去が発生した場合にも、データの内容の不整合を回避することができる。これは、半導体メモリカードはいうまでもなく、半導体メモリカード等の不揮発性記憶装置を使用した動画や音楽、静止画などのデジタルコンテンツを取り扱うアクセス装置であるPCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等のアクセス装置に最適(有用)であり、本発明は、半導体メモリ関連分野において、実施をすることができる。
1000 不揮発性記憶システム
1 不揮発性記憶装置
2 アクセス装置
11 メモリコントローラ
12 不揮発性メモリ
21、101 CPU
22、102 RAM
23、103 ROM
24 不揮発性記憶装置インタフェース部
25 AV入力部
26 符号処理部
27 暗号処理部
105 不揮発性メモリインタフェース部
106 コマンド処理部
107 アドレス管理部
108 キャッシュ領域管理部
121 記憶領域
122 第1キャッシュ領域
123 第2キャッシュ領域
124 フリーブロック領域
125 システム領域
201 アプリケーション部
202 ファイルシステム部
203 キャッシュ制御部
204 不揮発性記憶装置アクセスドライバ部

Claims (19)

  1. アクセス装置と通信することができ、前記アクセス装置からの指示によりデータの読み出しおよび/または書き込みを行う不揮発性記憶装置であって、
    データを記憶する不揮発性メモリと、
    前記不揮発性メモリの制御を行うコントローラと、
    を備え、
    前記不揮発性メモリは、前記アクセス装置からのデータを格納する記憶領域と、前記記憶領域に書き込むためのデータを一時的に格納するキャッシュ領域と、を含み、
    前記メモリコントローラは、
    前記アクセス装置からの指示内容を解析する指示内容解析処理を実行し、
    前記指示内容解析処理により解析された前記指示内容に従い、
    (1)前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理と、
    (2)前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理と、
    (3)前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理と、
    を、それぞれ、前記アクセス装置が指定する個別のタイミングで実行する、
    不揮発性記憶装置。
  2. 前記メモリコントローラは、
    前記アクセス装置からの指示内容が前記キャッシュ書き込み処理を指示する場合であって、既に前記キャッシュ領域に有効データが存在している場合、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込み、前記キャッシュ領域に既存の有効データと新たに書き込んだ仮有効データとを混在させるように前記キャッシュ書き込み処理を実行する、
    請求項1に記載の不揮発性記憶装置。
  3. 前記メモリコントローラは、
    前記キャッシュ領域の有効データを前記記憶領域に移動させる前記移動処理を、所定の時間を超えない範囲で分割して実施する分割移動処理により実行するものであり、前記分割移動処理を前記アクセス装置が指定する個別のタイミングで実行する、
    請求項1または2に記載の不揮発性記憶装置。
  4. 前記所定の時間は、不揮発性記憶装置に1セクタのデータ書き込みを行う場合に許容される処理時間と同程度以下の時間である、
    請求項3に記載の不揮発性記憶装置。
  5. 前記メモリコントローラは、
    前記アクセス装置からの指示に基づいて、前記移動処理を分割して実施するか、それとも、分割せずに実施するかを選択することができる、
    請求項3または4に記載の不揮発性記憶装置。
  6. 前記メモリコントローラは、
    前記分割移動処理を実行している間に、前記アクセス装置から前記キャッシュ書き込み処理の実行を指示された場合、前記分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、前記キャッシュ書き込み処理を実行する、
    請求項3から5のいずれかに記載の不揮発性記憶装置。
  7. 前記メモリコントローラは、
    前記分割移動処理を実行している間に、前記アクセス装置から有効化処理の実行を指示された場合、前記分割移動処理の開始時刻から終了時刻までの期間に含まれる所定の期間において、前記有効化処理を実行する、
    請求項3から6のいずれかに記載の不揮発性記憶装置。
  8. 前記メモリコントローラは、
    初期化処理において前記キャッシュ領域に格納されている仮有効データを検出した場合、前記キャッシュ領域に格納されている全部または一部の仮有効データを破棄する、
    請求項1から7のいずれかに記載の不揮発性記憶装置。
  9. 前記メモリコントローラは、
    初期化処理において前記キャッシュ領域に格納されている仮有効データを検出した場合に、前記アクセス装置からの指示に基づき、前記キャッシュ領域に格納されている仮有効データを破棄しない、
    請求項1から7のいずれかに記載の不揮発性記憶装置。
  10. 前記メモリコントローラは、
    前記アクセス装置の指示により前記移動処理を開始する場合、前記キャッシュ領域に仮有効データが存在しているならば、前記キャッシュ領域に存在する仮有効データを有効データに変換した後、前記移動処理の実行を開始する、
    請求項1から9のいずれかに記載の不揮発性記憶装置。
  11. 記憶領域とキャッシュ領域とを含む不揮発性記憶装置と通信することができ、前記不揮発性記憶装置へのデータ書き込み及び/またはデータ読み出しを制御するアクセス装置あって、
    前記キャッシュ領域に、データを仮有効データとして書き込むデータ書き込み処理と、
    前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理と、
    前記キャッシュ領域に格納されている有効データを前記記憶領域へ移動させる移動処理と、
    を、前記不揮発性記憶装置に対して、それぞれ、個別のタイミングで実行するように指示する、
    アクセス装置。
  12. ストリームデータの記録中に、前記ストリームデータに関するコンテンツ管理情報を前記キャッシュ領域に書き込み前記データ書き込み処理の実行を、前記不揮発性記憶装置に指示し、
    前記コンテンツ管理情報の整合性が確保された時点で、前記キャッシュ領域に書き込んだデータの有効化処理の実行を、前記不揮発性記憶装置に指示し、
    前記ストリームデータの記録終了後に、前記キャッシュ領域に書き込んだデータを前記記憶領域に移動させる前記移動処理の実行を、前記不揮発性記憶装置に指示する、
    請求項11に記載のアクセス装置。
  13. 前記キャッシュ領域に書き込んだデータの前記記憶領域への移動処理を複数の個別移動処理に分割して行う分割移動処理を実行するように、前記不揮発性記憶装置に指示し、各々の前記個別移動処理を実行するタイミングを前記不揮発性記憶装置に指示する、
    請求項11または12に記載のアクセス装置。
  14. 前記分割移動処理の開始から終了までの期間に含まれる所定の期間において、前記ストリームデータの記録を実行するように、前記不揮発性記憶装置に指示する、
    請求項13に記載のアクセス装置。
  15. 前記分割移動処理の開始から終了までの期間に含まれる所定の期間において、前記ストリームデータのコンテンツ管理情報を前記キャッシュ領域に書き込むように、前記不揮発性記憶装置に指示する、
    請求項13または14に記載のアクセス装置。
  16. 前記分割移動処理が完了するまでは、新たな移動処理の開始を、前記不揮発性記憶装置に指示しない、
    請求項13から15のいずれかに記載のアクセス装置。
  17. 請求項1から10のいずれかに記載の不揮発性記憶装置と、
    請求項11から16のいずれかに記載のアクセス装置と、
    を備える不揮発性記憶システム。
  18. 請求項17に記載の不揮発性記憶システムに用いられるデータ記録方法であって、
    前記アクセス装置から指定される所定のタイミングで、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理ステップと、
    前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理ステップと、
    前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理ステップと、
    を備えるデータ記録方法。
  19. 請求項17に記載の不揮発性記憶システムに用いられるデータ記録方法をコンピュータに実行させるためのプログラムであって、
    前記アクセス装置から指定される所定のタイミングで、前記アクセス装置からのデータを前記キャッシュ領域に仮有効データとして書き込むキャッシュ書き込み処理ステップと、
    前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている仮有効データを一括して有効データに変換する有効化処理ステップと、
    前記アクセス装置から指定される所定のタイミングで、前記キャッシュ領域に格納されている有効データを前記記憶領域に移動させる移動処理ステップと、
    を備えるデータ記録方法をコンピュータに実行させるためのプログラム。
JP2009290366A 2009-12-22 2009-12-22 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム Pending JP2011133947A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009290366A JP2011133947A (ja) 2009-12-22 2009-12-22 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009290366A JP2011133947A (ja) 2009-12-22 2009-12-22 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Publications (1)

Publication Number Publication Date
JP2011133947A true JP2011133947A (ja) 2011-07-07

Family

ID=44346649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009290366A Pending JP2011133947A (ja) 2009-12-22 2009-12-22 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Country Status (1)

Country Link
JP (1) JP2011133947A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017002331A1 (ja) * 2015-07-01 2017-01-05 パナソニックIpマネジメント株式会社 通信システム、記録装置、および通信方法
JP2021526252A (ja) * 2018-06-08 2021-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミングデータの複数のキャッシュ処理

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017002331A1 (ja) * 2015-07-01 2017-01-05 パナソニックIpマネジメント株式会社 通信システム、記録装置、および通信方法
JPWO2017002331A1 (ja) * 2015-07-01 2018-04-12 パナソニックIpマネジメント株式会社 通信システム、記録装置、および通信方法
JP2021526252A (ja) * 2018-06-08 2021-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミングデータの複数のキャッシュ処理
JP7316724B2 (ja) 2018-06-08 2023-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ストリーミングデータの複数のキャッシュ処理

Similar Documents

Publication Publication Date Title
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
JP4736593B2 (ja) データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US8244963B2 (en) Method for giving read commands and reading data, and controller and storage system using the same
US7373477B2 (en) Fragmentation executing method and storage device
JP5400875B2 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
JP5485163B2 (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
US8914579B2 (en) Access device, information recording device, controller, and information recording system
EP1729218A1 (en) Nonvolatile storage system
US20110231597A1 (en) Data access method, memory controller and memory storage system
JP5362010B2 (ja) メモリ装置、ホスト装置およびメモリシステム
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
JP2008027383A (ja) 情報記録装置及びその制御方法
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
JP5209793B2 (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
WO2011121870A1 (ja) データ記録装置、及びデータ記録方法
US20110022793A1 (en) Systems And Methods For Accessing Hard Disk Drives
US8589620B2 (en) Data writing method, memory controller, and memory storage apparatus
JP2011133947A (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
WO2018186455A1 (ja) 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
JP2005209119A (ja) データ記憶装置及び方法、並びに記録再生システム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2011181036A (ja) 記録装置及び記録方法
JP2006338437A (ja) 半導体記録メディアへのデータ記録方法及びアクセス装置