(57)【要約】  ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供する。不揮発性記憶システム（１００）では、アクセス装置（１）の使用条件指示部（１１）により指示された使用条件に基づいて、不揮発性メモリ（２２）のテンポラリ領域（２３）および通常アクセス領域が設定される。このため、不揮発性記憶システム（１００）では、用途に応じて使用条件を変えることで、不揮発性メモリ（２２）に確保されるテンポラリ領域（２３）および通常アクセス領域（２４）を変えることができる、すなわち、この不揮発性記憶システム（１００）では、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。
2011007511.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、
データの読み書き制御を行うデータ読み書き部と、
フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、
前記受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、
前記使用可能容量を外部に通知する使用可能容量通知部と、
を備えるメモリコントローラ。
【請求項２】
不揮発性メモリに接続され、外部からのアクセス指示に応じて、前記不揮発性メモリに対して、データの読み出し／書き込みを行うメモリコントローラであって、
前記不揮発性メモリに対して、データの読み書き制御を行うデータ読み書き部と、
外部からの前記アクセス指示から、前記不揮発性メモリの使用条件に関する情報を取得する使用条件取得部と、
前記使用条件取得部により取得された前記不揮発性メモリの使用条件に関する情報に基づき、前記不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定した前記テンポラリ領域および前記通常アクセス領域を確保するように、前記不揮発性メモリに指示する使用可能容量決定部と、
前記使用可能容量決定部の指示に基づいて前記不揮発性メモリで確保された前記テンポラリ領域および前記通常アクセス領域に関する情報を取得する使用可能容量取得部と、
を備え、
前記データ読み書き部は、前記不揮発性メモリで確保された前記テンポラリ領域および前記通常アクセス領域を用いて、データの書き込み／読み取り処理を行う、
メモリコントローラ。
【請求項３】
前記使用可能容量決定部は、前記テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
請求項１または２に記載のメモリコントローラ。
【請求項４】
前記使用可能容量決定部は、
１ｃｈのデータからなるシングルｃｈデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「１」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定し、
Ｎｃｈ（Ｎは自然数）のデータからなるマルチｃｈデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「Ｎ」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
請求項３に記載のメモリコントローラ。
【請求項５】
メモリ領域が可変なテンポラリ領域と、メモリ領域が可変な通常アクセス領域と、を含む不揮発性メモリと、
請求項１から４のいずれかに記載のメモリコントローラと、
を備え、
前記不揮発性メモリの前記テンポラリ領域のメモリ領域および／または前記通常アクセス領域のメモリ領域は、前記メモリコントローラからの指示により、決定される、
不揮発性記憶装置。
【請求項６】
請求項５に記載の不揮発性記憶装置と接続して、前記不揮発性記憶装置をフォーマットすると共に、前記不揮発性記憶装置にデータを書き込み、前記不揮発性記憶装置からデータを読み出すアクセス装置であって、
前記不揮発性記憶装置に対して、前記不揮発性記憶装置に使用条件を指示する使用条件指示部と、
前記使用条件指示部の前記使用条件の指示に対するレスポンスであって、前記不揮発性記憶装置が前記使用条件に基づいて確定させた前記不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、前記不揮発性記憶装置に対して、フォーマットを行うように指示するフォーマット部と、
を備えるアクセス装置。
【請求項７】
前記使用条件指示部は、前記不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、前記使用条件の指示を行い、
前記メモリ使用可能容量は、前記不揮発性記憶装置がデータの読み取り／書き込み処理に使用できる全メモリ領域から前記テンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した前記通常アクセス領域のメモリ容量である、
請求項６に記載のアクセス装置。
【請求項８】
請求項５に記載の不揮発性記憶装置と、
請求項６または７に記載のアクセス装置と、
を備える不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに対して、用途に応じた最適なデータ記録を行うことができるメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムに関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にＦｌａｓｈＲＯＭ等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、ＦｌａｓｈＲＯＭ等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にＮＡＮＤ型フラッシュメモリと呼ばれる半導体素子が使用されている。ＮＡＮＤ型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。【０００３】
ＮＡＮＤ型フラッシュメモリは、記憶単位であるメモリセルアレイへのデータの書き込みや消去に比較的長い時間を要するため、複数のメモリセルに対して一括してデータを消去したり書き込んだりできる構造となっている。具体的には、ＮＡＮＤ型フラッシュメモリは、複数の物理ブロック（消去単位）から構成され、各物理ブロックは、複数のページ（書き込み単位）を含み、データの消去は、物理ブロック単位で行われ、データの読み取り／書き込みは、ページ単位で行われる。
ＮＡＮＤ型フラッシュメモリでは、データを書き換える場合、ＨＤＤに代表される磁気記録装置のように直接データを書き換えることができず、一旦データを消去した後、データを記録する（書き込む）必要がある。また、ＮＡＮＤ型フラッシュメモリでは、その消去単位の大きさが数百ＫＢから数ＭＢであることから、小サイズのデータの書き込みを実施する場合には、同一物理ブロック（消去単位ブロック）内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。このため、ＮＡＮＤ型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下するという問題が発生する。例えば、ＦＡＴファイルシステムのディレクトリエントリやＦＡＴ等の頻繁に更新されるデータを書き換える場合、この速度低下が顕著になる。【０００４】
従来、このような問題を解決する技術として、頻繁に更新されるデータ（データブロック）に対して、テンポラリブロック（ログブロック）を割り当て、当該テンポラリブロックに頻繁に更新されるデータを書き込み、「巻き込み退避処理」の発生を抑制する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３６６４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術では、テンポラリブロック数が固定、すなわち、ストレージ・アーキテクチャが固定であり、用途に応じて最適なデータ記録処理を行うことが困難である。例えば、１チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）をフラッシュメモリに記録する場合（シングルｃｈ記録の場合）と、多チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）を記録する場合（マルチｃｈ記録の場合）とでは、テンポラリブロック数（テンポラリ領域）を変化させる、すなわち、ストレージ・アーキテクチャを変更させる方が有利である。つまり、
（１）１チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）をフラッシュメモリに記録する場合、テンポラリブロック数（テンポラリ領域）を少なくし、通常アクセスブロックの数（通常アクセス領域）を多くすることで、最低データ記録速度を保証しつつ、多くの通常アクセス領域を確保することができるため、有利である。
（２）一方、多チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）を記録する場合、テンポラリブロック数（テンポラリ領域）を多くし、通常アクセスブロックの数（通常アクセス領域）を少なくすることで、通常アクセス領域の容量の削減量を最低限度に抑えつつ、多チャンネル分のデータを同時記録する際の最低データ記録速度を保証することができるため、有利である。【０００７】
上記従来の技術では、ストレージ・アーキテクチャが固定であるため、例えば、１チャンネル分のデータ記録と、多チャンネル分のデータ記録と、を併用する場合、最適なデータ記録処理を行うことができない、すなわち、上記従来の技術では、用途に応じた最適なデータ記録処理を行うことができないという問題点がある。
本発明は、上記問題点に鑑み、ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明は、不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、データの読み書き制御を行うデータ読み書き部と、フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、使用可能容量を外部に通知する使用可能容量通知部と、を備える。
これにより、フォーマット時に外部から指示された使用条件に基づいて、好適な動作（例えば、好適なデータ書き込み動作）を行うメモリコントローラを実現することができる。
第２の発明は、不揮発性メモリに接続され、外部からのアクセス指示に応じて、不揮発性メモリに対して、データの読み出し／書き込みを行うメモリコントローラであって、データ読み書き部と、使用条件取得部と、使用可能容量決定部と、使用可能容量取得部と、を備える。【０００９】
データ読み書き部は、不揮発性メモリに対して、データの読み書き制御を行う。使用条件取得部は、外部からのアクセス指示から、不揮発性メモリの使用条件に関する情報を取得する。使用可能容量決定部は、使用条件取得部により取得された不揮発性メモリの使用条件に関する情報に基づき、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定したテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示する。使用可能容量取得部は、使用可能容量決定部の指示に基づいて不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域に関する情報を取得する。
そして、データ読み書き部は、不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み／読み取り処理を行う。
このメモリコントローラでは、不揮発性メモリの使用条件に基づいて不揮発性メモリのテンポラリ領域および通常アクセス領域が決定し、決定されたテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示し、そして、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み／読み取り処理を行うことができる。このため、このメモリコントローラを用いた不揮発性記憶システムでは、用途に応じて使用条件を変えることで、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を変えることができる、すなわち、このメモリコントローラを用いた不揮発性記憶システムでは、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。【００１０】
第３の発明は、第１または第２の発明であって、使用可能容量決定部は、テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
第４の発明は、第３の発明であって、使用可能容量決定部は、１ｃｈのデータからなるシングルｃｈデータを不揮発性メモリに記録する場合、テンポラリブロック数を「１」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、Ｎｃｈ（Ｎは自然数）のデータからなるマルチｃｈデータを不揮発性メモリに記録する場合、テンポラリブロック数を「Ｎ」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
これにより、記録するｃｈ数と同数のテンポラリブロックが確保されるので、巻き込み退避処理（集約処理）の発生頻度を抑えることができ、データ書き込み速度の低下を効果的に抑制することができる。【００１１】
第５の発明は、メモリ領域が可変なテンポラリ領域とメモリ領域が可変な通常アクセス領域とを含む不揮発性メモリと、第１から第４のいずれかの発明であるメモリコントローラと、を備える不揮発性記憶装置である。
不揮発性メモリのテンポラリ領域のメモリ領域および／または通常アクセス領域のメモリ領域は、メモリコントローラからの指示により、決定される。
なお、「不揮発性記憶装置」は、不揮発性記憶モジュールを含む概念である。
第６の発明は、第５の発明である不揮発性記憶装置と接続して、不揮発性記憶装置をフォーマットすると共に、不揮発性記憶装置にデータを書き込み、不揮発性記憶装置からデータを読み出すアクセス装置であって、使用条件指示部と、フォーマット部と、を備える。【００１２】
使用条件指示部は、不揮発性記憶装置に対して、不揮発性記憶装置に使用条件を指示する。フォーマット部は、使用条件指示部の使用条件の指示に対するレスポンスであって、不揮発性記憶装置が使用条件に基づいて確定させた不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、不揮発性記憶装置に対して、フォーマットを行うように指示する。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第７の発明は、第６の発明であって、使用条件指示部は、不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、使用条件の指示を行い、メモリ使用可能容量は、不揮発性記憶装置がデータの読み取り／書き込み処理に使用できる全メモリ領域からテンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した通常アクセス領域のメモリ容量である。【００１３】
第８の発明は、第５の発明である不揮発性記憶装置と、第６または第７の発明であるアクセス装置と、を備える不揮発性記憶システムである。
【発明の効果】
【００１４】
本発明によれば、アクセス装置からのデータ書き込みを好適なアクセス速度で行うメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係る不揮発性記憶システム１００の概略構成図
【図２】シングルｃｈ記録の場合のアクセス装置１および不揮発性記憶装置２の動作シーケンス図
【図３】マルチｃｈ記録の場合のアクセス装置１および不揮発性記憶装置２の動作シーケンス図
【図４】シングルｃｈ記録の場合の論理アドレス／物理アドレス変換テーブルの一例を示す図
【図５】マルチｃｈ記録の場合の通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す図
【図６】巻き込み退避処理（集約処理）を説明するための図
【図７】不揮発性記憶システム１００でのデータ書き込み処理を説明するための図
【図８】不揮発性記憶システム１００でのデータ書き込み処理を説明するための図
【図９】メモリ領域設定コマンドの一部の一例を示す図
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の実施形態について説明する。
［第１実施形態］
＜１．１：不揮発性記憶システムの構成＞
図１に、本実施形態に係る不揮発性記憶システム１００の概略構成図を示す。
図１に示すように、不揮発性記憶システム１００は、アクセス装置（アクセスモジュール）１と、不揮発性記憶装置（不揮発性記憶モジュール）２と、を備え、アクセス装置１と不揮発性記憶装置２とは、外部バスＢ１により接続されており、外部バスＢ１を介して、双方向にデータ通信を行うことができる。
（１．１．１：アクセス装置の構成）
図１に示すように、アクセス装置１は、使用条件指示部１１と、フォーマット部１２と、Ｒ／Ｗ制御部１３と、バスインターフェース部１４と、を備える。
【００１７】
使用条件指示部１１は、例えば、ユーザからの入力情報に基づいて使用条件を設定する。具体的には、使用条件指示部１１は、不揮発性記憶装置２のテンポラリ領域２３に確保するテンポラリブロック数Ｎ＿ｔｍｐを使用条件として設定する。そして、使用条件指示部１１は、設定した使用条件をフォーマット部１２に出力する。
フォーマット部１２は、使用条件指示部１１により設定された使用条件に基づいて、不揮発性記憶装置２に対して発行するメモリ領域設定コマンドを生成する。フォーマット部１２は、生成したメモリ領域設定コマンドをバスインターフェース部１４に出力し、所定のタイミングで、生成したメモリ領域設定コマンドがバスインターフェース部１４を介して不揮発性記憶装置２に送信されるように制御する。
メモリ領域設定コマンドは、例えば、テンポラリブロック数Ｎ＿ｔｍｐを含むものであり、不揮発性記憶装置２に対して、メモリ領域設定コマンドにより指示されたメモリ領域確保（テンポラリ領域２３および通常アクセス領域２４の領域確保）を行うためのものである。
【００１８】
また、フォーマット部１２は、メモリ領域設定コマンドにより設定した不揮発性記憶装置２の不揮発性メモリ２２の通常アクセス領域に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に対して発行する。
Ｒ／Ｗ制御部１３は、不揮発性記憶装置２の不揮発性メモリ２２に記録されたデータを所定の領域から読み出すためのリードコマンド、および、所定のデータを不揮発性記憶装置２の不揮発性メモリ２２の所定の領域に書き込むためのライトコマンドを生成する。Ｒ／Ｗ制御部１３は、生成したコマンドをバスインターフェース部１４に出力し、所定のタイミングで、生成したコマンドがバスインターフェース部１４を介して不揮発性記憶装置２に送信されるように制御する。
バスインターフェース部１４は、不揮発性記憶装置２のホストインターフェース部２１１と外部バスＢ１により接続されており、アクセス装置１と不揮発性記憶装置２との間の通信インターフェース機能を実現させる。また、バスインターフェース部１４は、フォーマット部１２およびＲ／Ｗ制御部１３と接続されている。バスインターフェース部１４は、フォーマット部１２による制御に従い、フォーマット部１２により生成されるメモリ領域設定コマンドやフォーマットコマンドを、外部バスＢ１を介して、不揮発性記憶装置２に送信する。また、バスインターフェース部１４は、Ｒ／Ｗ制御部１３による制御に従い、Ｒ／Ｗ制御部１３により生成されたコマンドを、外部バスＢ１を介して、不揮発性記憶装置２に送信する。
【００１９】
（１．１．２：不揮発性記憶装置の構成）
図１に示すように、不揮発性記憶装置２は、メモリコントローラ２１と、不揮発性メモリ２２と、を備え、メモリコントローラ２１と不揮発性メモリ２２とは、メモリバスＢ２で接続されている。
メモリコントローラ２１は、図１に示すように、ホストインターフェース部２１１と、使用条件取得部２１２と、使用可能容量決定部２１３と、メモリインターフェース部２１４と、使用可能容量取得部２１５と、データ読み書き部２１６と、アドレス管理部２１７と、を備える。
ホストインターフェース部２１１は、アクセス装置１のバスインターフェース部１４と外部バスＢ１により接続されており、アクセス装置１と不揮発性記憶装置２との間の通信インターフェース機能を実現させる。ホストインターフェース部２１１は、アクセス装置１から送信されるメモリ領域設定コマンドを、外部バスＢ１を介して受信し、受信したデータ（コマンド）を使用条件取得部２１２に出力する。また、ホストインターフェース部２１１は、アクセス装置１から送信されるフォーマットコマンド、リードコマンドやライトコマンドを、外部バスＢ１を介して受信し、受信したデータ（コマンド）をデータ読み書き部２１６に出力する。
【００２０】
使用条件取得部２１２は、ホストインターフェース部２１１により受信されたメモリ領域設定コマンドのデータから使用条件に関する情報を抽出する。「使用条件に関する情報」は、例えば、テンポラリブロック数Ｎ＿ｔｍｐである。そして、使用条件取得部２１２は、抽出した使用条件に関する情報を使用可能容量決定部２１３に出力する
使用可能容量決定部２１３は、使用条件取得部２１２により抽出された使用条件に関する情報に基づいて、不揮発性メモリ２２のテンポラリ領域２３の容量および通常アクセス領域２４の容量を決めるためのパラメータを決定する。例えば、「使用条件に関する情報」がテンポラリブロック数Ｎ＿ｔｍｐである場合、使用可能容量決定部２１３は、不揮発性メモリの全容量およびテンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。そして、使用可能容量決定部２１３は、決定したテンポラリブロック数Ｎ＿ｔｍｐおよび通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを、メモリインターフェース部２１４を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
【００２１】
メモリインターフェース部２１４は、不揮発性メモリ２２とメモリバスＢ２により接続されており、メモリコントローラ２１と不揮発性メモリ２２との間の通信インターフェース機能を実現させる。メモリインターフェース部２１４は、使用可能容量決定部２１３、使用可能容量取得部２１５およびデータ読み書き部２１６による制御に従い、不揮発性メモリの所定の領域から所定のデータの読み出し／書き込みを行う。
使用可能容量取得部２１５は、使用可能容量決定部２１３により指示されたテンポラリ領域２３および通常アクセス領域２４が正常に確保されたか否かの情報を、メモリインターフェース部２１４を介して不揮発性メモリ２２から受け取り、使用可能容量決定部２１３の指示通り、正常に、テンポラリ領域２３および通常アクセス領域２４が確保されているか否かを確認する。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報（レスポンス）を、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報（レスポンス）を、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
【００２２】
データ読み書き部２１６は、ホストインターフェース部２１１、メモリインターフェース部２１４およびアドレス管理部２１７と接続されている。データ読み書き部２１６は、主に、以下の（１）〜（４）の処理を行う。
（１）データの書き込み処理
アクセス装置１から送信されたライトコマンドに基づいて、当該ライトコマンドにより指定されている論理アドレスに対応する不揮発性メモリ１の物理アドレスにライトコマンドで指定されたデータを書き込む。
（２）データの読み出し処理
アクセス装置１から送信されたリードコマンドに基づいて、当該リードコマンドにより指定されている論理アドレスに対応する不揮発性メモリ１の物理アドレスからデータを読み出す。
（３）アドレス変換処理
アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、上記（１）、（２）の処理で使用される論理アドレスを物理アドレスに変換する。
（４）不揮発性メモリ２２の通常アクセス領域２４に対する論理フォーマット
アクセス装置１から送信されたフォーマットコマンドに基づいて、不揮発性メモリ２２に確保されている通常アクセス領域に対して論理フォーマットを行う。これにより、不揮発性メモリ２２に記憶されるデータをファイルシステム（例えば、ＦＡＴファイルシステム）により管理することが可能になる。
【００２３】
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルを記憶・保持しており、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、データ読み書き部２１６から指定される論理アドレスを、当該論理アドレスに相当する物理アドレスに変換し、変換した物理アドレスをデータ読み書き部２１６に出力する。
＜１．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム１００の動作について、以下説明する。
映像データ、音声データ、テキストデータから構成される１ｃｈ分のデータを不揮発性記憶システム１００で記録する場合（シングルｃｈ記録の場合）、および複数チャンネル分のデータを不揮発性記憶システム１００で記録する場合（マルチｃｈ記録の場合）を例に、以下、説明する。
【００２４】
（１．２．１：シングルｃｈ記録の場合）
図２に、不揮発性記憶システム１００において、シングルｃｈ記録を行う場合のシーケンス図を示す。図２のシーケンス図を用いて、不揮発性記憶システム１００におけるシングルｃｈ記録動作について、説明する。
（Ｓ１０１、１０２）：
図２に示すように、アクセス装置１は、シングルｃｈ記録準備処理を開始する。具体的には、アクセス装置１の使用条件指示部１１により指示された指示条件に基づいて、フォーマット部１２がテンポラリ領域２３の物理ブロック数であるテンポラリブロック数Ｎ＿ｔｍｐを決定し、決定したテンポラリブロック数Ｎ＿ｔｍｐを含むメモリ領域設定コマンドを生成する。なお、ここでは、シングルｃｈの記録を行うので、テンポラリブロック数Ｎ＿ｔｍｐは、Ｎ＿ｔｍｐ＝１に設定される。
【００２５】
そして、フォーマット部１２は、バスインターフェース部１４および外部バスＢ１を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置２に送信する（Ｓ１０２）。
（Ｓ２０１）：
不揮発性記憶装置２は、アクセス装置１から送信されたメモリ領域設定コマンドを、ホストインターフェース部２１１により受信し、使用条件取得部２１２により、メモリ領域設定コマンドに含まれるテンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐ（＝１）を抽出し、使用可能容量決定部２１３に出力する。
使用可能容量決定部２１３は、テンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。具体的には、不揮発性メモリ２２に含まれるデータ領域として使用することができる物理ブロック数の総数をＡとすると、シングルｃｈ記録を行う場合、
Ｎ＿ｔｍｐ＝１
Ｎ＿ｎｏｒｍａｌ＝Ａ−１
とする。
【００２６】
そして、使用可能容量決定部２１３は、メモリインターフェース部２１４およびメモリバスＢ２を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
（Ｓ２０２）：
使用可能容量取得部２１５は、テンポラリ領域２３において、Ｎ＿ｔｍｐ（＝１）個の物理ブロック確保（テンポラリブロックの確保）、通常アクセス領域２４において、Ｎ＿ｎｏｒｍａｌ（＝Ａ−１）個の物理ブロックの確保（通常アクセスブロックの確保）が正常にできたか否かの情報を不揮発性メモリ２２から受け取る。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（Ｓ１０３〜Ｓ１０５）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し（Ｓ１０３）、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１０４）。
【００２７】
一方、アクセス装置１のフォーマット部１２は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域２４に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に送信する（Ｓ１０５）。
（Ｓ２０３、Ｓ２０４）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたフォーマットコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、ホストインターフェース部２１１を介して、不揮発性メモリ２２の通常アクセス領域２４に対して論理フォーマットを行う（Ｓ２０３）。これにより、不揮発性メモリ２２に記憶されるデータをファイルシステム（例えば、ＦＡＴファイルシステム）により管理することが可能になる。
【００２８】
そして、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了した場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２０４）。
一方、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了しなかった場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２０４）。
（Ｓ１０６〜Ｓ１０８）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１０６）、通常アクセス領域２４に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１０７）。
【００２９】
一方、アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１０６）、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、シングルｃｈ記録処理を開始する（Ｓ１０８）。
（Ｓ１０９）：
アクセス装置１のＲ／Ｗ制御部１３は、シングルｃｈのデータを不揮発性メモリ２２に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置２に送信する。
（Ｓ２０５、Ｓ２０６）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたライトコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、受信したライトコマンドから、不揮発性メモリ２２に書き込むデータおよび書き込み領域を示す論理アドレスＬＡを抽出する。
【００３０】
データ読み書き部２１６は、アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、論理アドレスＬＡを物理アドレスＰＡに変換する。
そして、データ読み書き部２１６は、ライトコマンドのより送信された書き込みデータを、メモリインターフェース部２１４およびメモリバスＢ２を介して、物理アドレスＰＡに相当する不揮発性メモリ２２の領域に書き込む（Ｓ２０５）。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置２は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスＲｅｓＷｒｉｔｅを生成し、アクセス装置１に送信する（Ｓ２０６）。なお、このＳ２０６の処理は、省略してもよい。
（ＳＲｅｃ１）：
不揮発性記憶システム１００では、記録対象のデータが不揮発性記憶装置２の不揮発性メモリ２２に記録が完了するまで、Ｓ１０９、Ｓ２０５、Ｓ２０６の処理が繰り返される。
（Ｓ１１０）：
そして、アクセス装置１は、記録対象としたデータの全てが、不揮発性記憶装置２の不揮発性メモリ２２に記録されたことを確認したら、シングルｃｈ記録処理を終了させる。
【００３１】
以上により、不揮発性記憶システム１００において、シングルｃｈ記録処理が実現される。
（１．２．２：マルチｃｈ記録の場合）
次に、不揮発性記憶システム１００におけるマルチｃｈ記録動作について、説明する。
図３に、不揮発性記憶システム１００において、マルチｃｈ記録を行う場合のシーケンス図を示す。図３のシーケンス図を用いて、不揮発性記憶システム１００におけるマルチｃｈ記録動作について、説明する。
（Ｓ１１１、Ｓ１１２）：
図３に示すように、アクセス装置１は、マルチｃｈ記録準備処理を開始する。具体的には、アクセス装置１の使用条件指示部１１により指示された指示条件に基づいて、フォーマット部１２がテンポラリ領域２３の物理ブロック数であるテンポラリブロック数Ｎ＿ｔｍｐを決定し、決定したテンポラリブロック数Ｎ＿ｔｍｐを含むメモリ領域設定コマンドを生成する。なお、ここでは、マルチｃｈの記録を行うので、テンポラリブロック数Ｎ＿ｔｍｐは、Ｎ＿ｔｍｐ＝Ｋ（Ｋ＞１である整数）に設定される。
【００３２】
そして、フォーマット部１２は、バスインターフェース部１４および外部バスＢ１を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置２に送信する（Ｓ１１２）。
（Ｓ２０７）：
不揮発性記憶装置２は、アクセス装置１から送信されたメモリ領域設定コマンドを、ホストインターフェース部２１１により受信し、使用条件取得部２１２により、メモリ領域設定コマンドに含まれるテンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐ（＝Ｋ）を抽出し、使用可能容量決定部２１３に出力する。
使用可能容量決定部２１３は、テンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。具体的には、不揮発性メモリ２２に含まれるデータ領域として使用することができる物理ブロック数の総数をＡとすると、図２の場合のマルチｃｈ記録を行う場合、
Ｎ＿ｔｍｐ＝Ｋ
Ｎ＿ｎｏｒｍａｌ＝Ａ−Ｋ
とする。
【００３３】
そして、使用可能容量決定部２１３は、メモリインターフェース部２１４およびメモリバスＢ２を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
これにより、不揮発性記憶装置２において、ｃｈ数分（Ｋ個）のテンポラリブロックが確保されることになる。
（Ｓ２０８）：
使用可能容量取得部２１５は、テンポラリ領域２３において、Ｎ＿ｔｍｐ（＝Ｋ）個の物理ブロック確保（テンポラリブロックの確保）、通常アクセス領域２４において、Ｎ＿ｎｏｒｍａｌ（＝Ａ−Ｋ）個の物理ブロックの確保（通常アクセスブロックの確保）が正常にできたか否かの情報を不揮発性メモリ２２から受け取る。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（Ｓ１１３〜Ｓ１１５）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し（Ｓ１１３）、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１１４）。
【００３４】
一方、アクセス装置１のフォーマット部１２は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域２４に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に送信する（Ｓ１１５）。
（Ｓ２０９、Ｓ２１０）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたフォーマットコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、ホストインターフェース部２１１を介して、不揮発性メモリ２２の通常アクセス領域２４に対して論理フォーマットを行う（Ｓ２０９）。
【００３５】
そして、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了した場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２１０）。
一方、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了しなかった場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２１０）。
（Ｓ１１６〜Ｓ１１８）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１１６）、通常アクセス領域２４に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１１７）。
【００３６】
一方、アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１１６）、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、マルチｃｈ記録処理を開始する（Ｓ１１８）。
（Ｓ１１９）：
アクセス装置１のＲ／Ｗ制御部１３は、マルチｃｈのデータのうちの１つのｃｈデータである１ｃｈのデータを不揮発性メモリ２２に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置２に送信する。
（Ｓ２１１、Ｓ２１２）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたライトコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、受信したライトコマンドから、不揮発性メモリ２２に書き込むデータおよび書き込み領域を示す論理アドレスＬＡを抽出する。
【００３７】
データ読み書き部２１６は、アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、論理アドレスＬＡを物理アドレスＰＡに変換する。
そして、データ読み書き部２１６は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部２１４およびメモリバスＢ２を介して、物理アドレスＰＡに相当する不揮発性メモリ２２の領域に書き込む（Ｓ２１１）。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置２は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスＲｅｓＷｒｉｔｅ１を生成し、アクセス装置１に送信する（Ｓ２１２）。なお、このＳ２１２の処理は、省略してもよい。
（Ｓ１２０、Ｓ２１３、Ｓ２１４）：
記録対象であるｃｈ数分（ここでは、Ｋ個のｃｈ分）、各ｃｈに対して、上記Ｓ１１３、Ｓ２０７およびＳ２０８と同様の処理を行う。
（ＳＲｅｃ２）：
不揮発性記憶システム１００では、記録対象のマルチｃｈのデータが不揮発性記憶装置２の不揮発性メモリ２２に記録が完了するまで、Ｓ１１９〜Ｓ２１４の処理（図３中にＳＲｅｃ２で示した処理）が繰り返される。なお、不揮発性記憶装置２では、記録するｃｈ数分（Ｋ個）のテンポラリブロックが確保されているので、各ｃｈデータの記録において、それぞれ、１個のテンポラリブロックを用いて、データ記録処理が実行されるため、不揮発性記憶システム１００では、巻き込み退避処理（集約処理）の発生頻度を抑えることができる。その結果、不揮発性記憶システム１００では、マルチｃｈ記録を行う場合においても、最低速度保証を容易に行うことができる。
（Ｓ１２１）：
そして、アクセス装置１は、記録対象とした全てのデータ（マルチｃｈのデータ）が、不揮発性記憶装置２の不揮発性メモリ２２に記録されたことを確認したら、マルチｃｈ記録処理を終了させる。
【００３８】
以上により、不揮発性記憶システム１００において、マルチｃｈ記録処理が実現される。
（１．２．３：アドレス管理部）
次に、アドレス管理部２１７により管理される論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルについて、説明する。
（１．２．３．１：論理アドレス／物理アドレス変換テーブル）
アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルは、論理ブロックアドレスと、その論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係を保持しているテーブルである。
図４（ａ）に、不揮発性記憶システム１００において、シングルｃｈ記録する場合の論理アドレス／物理アドレス変換テーブルの一部の一例を示す。また、図５（ａ）に、不揮発性記憶システム１００において、マルチｃｈ記録する場合の論理アドレス／物理アドレス変換テーブルの一部の一例を示す。
【００３９】
なお、アクセス装置１は、データを論理アドレス空間により管理しており、図４または図５に示す論理ブロックアドレスは、アクセス装置１が管理する論理アドレス空間内で定義される論理ブロックの論理アドレスである。また、不揮発性記憶装置２は、データを物理アドレス空間により管理しており、図４または図５に示す物理ブロックアドレスは、不揮発性記憶装置２が管理する物理アドレス空間内で定義される物理ブロックの物理アドレスである。
したがって、アクセス装置１が管理しているアドレス空間と不揮発性記憶装置２が管理しているアドレス空間とは異なるが、不揮発性記憶装置２のアドレス管理部２１７によりアドレス変換を行うことで、データ管理におけるアドレス変換のランダム性を確保することができる。つまり、不揮発性記憶装置２でアドレス変換を行うことで、アクセス装置１が管理する論理ブロックを、不揮発性記憶装置２が管理する任意の物理ブロックに割り当てることができる。図４の場合では、論理ブロックアドレス０ｘ００Ａ０の論理ブロックが、常に、物理ブロックアドレス０ｘ００１０の物理ブロックに割り当てられるわけではなく、論理ブロックアドレス０ｘ００Ａ０の論理ブロックを、物理ブロックアドレス０ｘ００１０以外の物理ブロックに割り当てることも可能である。
【００４０】
したがって、アクセス装置１は、不揮発性メモリ２２の物理アドレスを意識することなく、論理アドレスによるデータ管理を行うことができる。
また、論理アドレス／物理アドレス変換テーブルは、図４（ａ）、図５（ａ）の左欄のｃｈ番号を示す情報を保持しなくてもよい。
以下では、説明便宜のため、物理アドレスおよび論理アドレスは、２バイト（１６ビット）のアドレスとする。物理アドレスの上位１２ビットが物理ブロックアドレスを示し、物理アドレスの下位４ビットがページ番号を示すものとする。また、論理アドレスの上位１２ビットが論理ブロックアドレスを示し、論理アドレスの下位４ビットがページ番号を示すものとする。そして、論理ブロックアドレスおよび物理ブロックアドレスは、下位４ビットを「０」にした１６進数による表記を行うものとする。例えば、図６（ａ）の左側の物理ブロックは、物理アドレス０ｘ００１０〜０ｘ００１４（５ページからなる物理ブロック）について、その物理ブロックアドレスを「０ｘ００１０」と表記するものとする。
【００４１】
また、本実施形態においては、論理ブロック内のページ番号と、物理ブロック内のページ番号とが、一致するものとする。したがって、図４（ａ）に示す論理アドレス／物理アドレス変換テーブルにより、例えば、論理アドレス０ｘ００Ａ２は、物理アドレス０ｘ００１２に変換されることになる（論理ブロック内および物理ブロック内でのページ番号は一致する）。なお、他のアドレス体系により論理アドレス、物理アドレス、論理ブロックアドレス、物理ブロックアドレスを表現するようにしてもよいことは、言うまでもない。また、ブロックとページの関係（例えば、１つの物理ブロック内に含まれるページ数）も上記に限定されないのは、言うまでもない。
（１．２．３．２：通常アクセスブロック／テンポラリブロック管理テーブル）
アドレス管理部２１７により管理されている通常アクセスブロック／テンポラリブロック管理テーブルは、通常アクセスブロックアドレスと、その通常アクセスブロックに対応するテンポラリブロックアドレスとの対応関係を保持しているテーブルである。
【００４２】
図４（ｂ）に、不揮発性記憶システム１００において、シングルｃｈ記録する場合の通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す。また、図５（ｂ）に、不揮発性記憶システム１００において、マルチｃｈ記録する場合（記録ｃｈ数Ｋ＝４の場合）の通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す。なお、通常アクセスブロックは、不揮発性メモリ２２の通常アクセス領域２４に確保された物理ブロックであるので、図４または図５に示すように、論理アドレス／物理アドレス変換テーブルの物理ブロックアドレスは、通常アクセスブロックの物理ブロックアドレスと一致する。
アドレス管理部２１７は、記録するｃｈ数分の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。つまり、不揮発性記憶システム１００において、シングルｃｈ記録を行う場合、図４（ｂ）に示すように、１ｃｈ分（１個分）の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。一方、不揮発性記憶システム１００において、マルチｃｈ記録を行う場合、図５（ｂ）に示すように、Ｋｃｈ分（図５（ｂ）の場合は、Ｋ＝４）の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。
【００４３】
（１．２．４：データ書き込み処理）
次に、不揮発性記憶システム１００におけるデータ書き込み処理について、説明する。
まず、巻き込み退避処理（集約処理）について、図６を用いて説明する。
（１．２．４．１：巻き込み退避処理（集約処理））
図６は、巻き込み退避処理（集約処理）を説明するための図である。
図６に示す場合において、有効データであるデータＡ〜データＥを保持している物理ブロック０ｘ００１０にて、データＣをデータＦに更新し、さらに、データＤをデータＧに更新する場合について、説明する。
不揮発性メモリでは、ページ単位での更新を行うことができないので、物理ブロック単位で消去し、有効データをコピーし、さらに、更新データを書き込む処理を行う必要がある。具体的には、図６（ａ）に示すように、まず、全てのページのデータが消去された消去済みブロック（空きブロック）０ｘ０３Ｆ０を用意する。
【００４４】
そして、図６（ｂ）に示すように、物理ブロック０ｘ００１０のデータＡおよびデータＢを、物理ブロック０ｘ０３Ｆ０の０ページおよび１ページにコピーする（ステップ１）。なお、図６の丸で囲んだ番号を「ステップＸ」（Ｘは整数）と表記することとする（以下、同様）。
次に、物理ブロック０ｘ０３Ｆ０の２ページにデータＦを書き込み（ステップ２）、さらに、物理ブロック０ｘ００１０の３ページおよび４ページのデータＤおよびデータＥを、それぞれ、物理ブロック０ｘ０３Ｆ０の３ページおよび４ページにコピーする（ステップ３）。
これにより、有効データは、全て、物理ブロック０ｘ００１０から０ｘ０３Ｆ０に移動されたので、物理ブロック０ｘ００１０を消去する（ステップ４）。
【００４５】
さらに、データＤをデータＧに更新するために、新たな消去済みブロック（空きブロック）０ｘ０４Ａ０を用意する。
そして、物理ブロック０ｘ０３Ｆ０の０ページから２ページまでのデータであるデータＡ、データＢおよびデータＦを、それぞれ、物理ブロック０ｘ０４Ａ０の０ページから２ページにコピーする（ステップ５）。
次に、物理ブロック０ｘ０４Ａ０の３ページにデータＧを書き込む（ステップ６）。
そして、物理ブロック０ｘ０３Ｆ０の４ページのデータＥを物理ブロック０ｘ０４Ａ０の４ページにコピーする（ステップ７）。
これにより、有効データは、全て、物理ブロック０ｘ０３Ｆ０から０ｘ０４Ａ０に移動されたので、物理ブロック０ｘ０３Ｆ０を消去する（ステップ８）。
【００４６】
このように、同一物理ブロックのデータを更新する場合、巻き込み退避処理が発生する頻度が多くなりやすく（図６の場合では、２度の物理ブロックの消去処理が発生している）、物理ブロックの消去処理に時間がかかるため、不揮発性メモリへのデータ書き込み処理速度が低下する原因となる。
（１．２．４．２：不揮発性記憶システム１００でのデータ書き込み処理）
次に、不揮発性記憶システム１００でのデータ書き込み処理について、図７および図８を用いて、説明する。
図７は、不揮発性記憶システム１００において、論理アドレスが０ｘ００Ａ２であるデータＣをデータＦに書き換え、さらに、論理アドレスが０ｘ００Ａ３であるデータＤをデータＧに書き換える場合の論理ブロック、通常アクセスブロックおよびテンポラリブロックの状態を模式的に示した図である。なお、図７に「論理ブロック」として示したブロックは、アクセス装置１がデータを管理する単位であり、アクセス装置１が管理する論理アドレス空間内で論理アドレスにより管理されるブロックである。また、図７に「通常アクセスブロック」として示したブロックは、不揮発性記憶装置２がデータを管理する単位であり、不揮発性記憶装置２が管理する物理アドレス空間内で物理アドレスにより管理されるブロックである。なお、通常アクセスブロックは、不揮発性記憶装置２の通常アクセス領域内に確保される物理ブロックである。
【００４７】
図７を用いて、不揮発性記憶システム１００において、論理アドレスが０ｘ００Ａ２であるデータＣをデータＦに書き換え、さらに、論理アドレスが０ｘ００Ａ３であるデータＤをデータＧに書き換える場合の処理について説明する。
（図７（ａ）の状態）：
アクセス装置１から不揮発性記憶装置２に対して、論理アドレス０ｘ００Ａ２のデータＣをデータＦに書き換えるためのライトコマンドが発行される。
データ読み書き部２１６は、受信したライトコマンドから書き換えデータの論理ブロックアドレス０ｘ００Ａ０を抽出し、アドレス管理部２１７に出力する。
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルｔｂ１を参照し、論理ブロックアドレスが０ｘ００Ａ０の論理ブロックは、物理ブロックアドレスが０ｘ００１０であることを検出する。さらに、アドレス管理部２１７は、通常アクセスブロック／テンポラリブロック管理テーブルｔｂ２を参照し、物理ブロックアドレスが０ｘ００１０である通常アクセスブロックのテンポラリブロックの物理ブロックアドレスが０ｘ０５００であることを検出する。そして、アドレス管理部２１７は、検出結果をデータ読み書き部２１６に出力する。
【００４８】
データ読み書き部２１６は、アドレス管理部２１７からの検出結果に基づいて、図７（ａ）の状態において、物理ブロックアドレスが０ｘ００１０である通常アクセスブロックに、有効データであるデータＡ〜データＥが、存在することを検出する。なお、物理ブロックの各ページのステータス（有効／無効／空き（消去済み））の情報は、各ブロックのページの冗長部に保持されるものであってもよいし、各ブロックの所定の領域で管理されるものであってもよいし、また、不揮発性メモリ２２の所定の物理ブロックを管理用ブロックとして、当該所定の物理ブロックで管理されるものであってもよい。
つまり、図７（ａ）の状態において、データ書き込み部２１６は、物理ブロックアドレスが０ｘ００１０の通常アクセスブロックのページ０〜ページ４に、有効データであるデータＡ〜データＥが書き込まれており、物理ブロックアドレスが０ｘ０５００のテンポラリブロックは、消去済みブロック（空きブロック）であることを把握する。
（図７（ｂ）の状態）：
次に、データ読み書き部２１６は、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ０および１のデータＡおよびＢを、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ０および１にコピーする。そして、データ読み書き部２１６は、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ０および１のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ０および１のステータスを「空き」から「有効」に変更する（ステップ１）。
【００４９】
次に、データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ２にデータＦを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ２のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ２のステータスを「空き」から「有効」に変更する（ステップ２）。
この段階で、データＣがデータＦに書き換えられたことになる。
（図７（ｃ）の状態）：
次に、データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ３にデータＧを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ３のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ３のステータスを「空き」から「有効」に変更する（ステップ３）。
【００５０】
この段階で、データＤがデータＧに書き換えられたことになる。
以上のように、データＣをデータＦに書き換え、さらに、データＤをデータＧに書き換える場合、図６で説明した場合とは異なり、物理ブロックの消去処理が発生しない。
つまり、不揮発性記憶システム１００では、テンポラリブロックを用いることで、巻き込み退避処理（集約処理）の発生を抑えることができる。
図８を用いて、図７（ｃ）の状態から、さらに、データＥをデータＨに書き換える場合について、説明する。
（図８（ａ）の状態）：
データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ４にデータＨを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ４のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ４のステータスを「空き」から「有効」に変更する（ステップ４）。
【００５１】
この段階で、通常アクセスブロックおよびテンポラリブロックに空きページがないので、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）に対して消去処理が実行される。そして、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）が通常アクセスブロックに変更される。
（図８（ｂ）の状態）：
データ読み書き部２１６は、空きブロック（図８（ｂ）の場合では、物理ブロックアドレスが０ｘ０６００の物理ブロック）を、新たなテンポラリブロックとして設定する。
アドレス管理部２１７は、図８（ｂ）のように変更された通常アクセスブロックおよびテンポラリブロックの関係を、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに反映させる。
【００５２】
以上により、不揮発性記憶システム１００では、物理ブロックの消去処理が発生した後も、テンポラリブロックを確保することができる。
不揮発性記憶システム１００において、シングルｃｈ記録をする場合、上記で説明したデータ書き込み処理が実行される。これにより、不揮発性記憶システム１００では、シングルｃｈ記録をする場合、テンポラリ領域を必要最小限にとどめ、通常アクセス領域を最大限確保することができる。
一方、不揮発性記憶システム１００において、マルチｃｈ記録をする場合、上記で説明した処理がｃｈ数分実行される。つまり、不揮発性記憶システム１００において、Ｋｃｈ分の記録処理を行う場合、Ｋ個分のテンポラリブロックが確保され、上記で説明した処理が実行される。このため、不揮発性記憶システム１００では、マルチｃｈ記録を行う場合であっても、巻き込み退避処理（集約処理）の発生を抑制し、書き込み処理速度の低下を抑えることができる。したがって、不揮発性記憶システム１００では、例えば、最低記録速度保証を容易にすることができるというメリットがある。
【００５３】
つまり、不揮発性記憶システム１００では、シングルｃｈ記録を行う場合と、マルチｃｈ記録を行う場合とで、テンポラリ領域２３と通常アクセス領域とを変更し、処理速度（特にデータ書き込み処理の処理速度）とメモリ使用可能容量とを最適化することができる。
なお、本実施形態では、不揮発性記憶システム１００において、シングルｃｈ記録およびマルチｃｈ記録を行う場合を例に、ストレージ・アーキテクチャを変更する場合について説明したが、上記に限定されることはなく、例えば、不揮発性記憶システム１００において採用されるアプリケーションに応じて、不揮発性記憶システム１００のストレージ・アーキテクチャを変更するようにしてもよい。
つまり、不揮発性記憶システム１００では、用途を変更した場合、当該変更した用途に応じて、ストレージ・アーキテクチャ、すなわち、テンポラリ領域２３および通常アクセス領域２４の設定を柔軟に変更することができるため、不揮発性記憶システム１００では、用途に応じた最適化を容易に実現することができる。
【００５４】
なお、不揮発性記憶システム１００において、テンポラリブロックを使用して書き込まれたデータの読み出し処理は、以下のように行う。
すなわち、アクセス装置１のＲ／Ｗ制御部は、リードコマンドを生成し、バスインターフェース部１４を介して、アクセス装置１から不揮発性記憶装置２にリードコマンドを送信する。
データ読み書き部２１６は、送信されたリードコマンドから、読み取り対象のデータの論理アドレスを抽出する。
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルにより、当該論理アドレスのデータ（有効データ）が存在するテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスを検出し、データ読み書き部２１６に出力する。
【００５５】
データ読み書き部２１６は、アドレス管理部２１７により検出されたテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスに基づいて、有効データがある物理アドレスを確定し、確定した物理アドレスからデータを読み出す。
例えば、図７（ｂ）の状態において、論理アドレス０ｘ００Ａ２のデータを読み出す場合、データ読み書き部２１６は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルにより、論理アドレス０ｘ００Ａ２のデータが通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）またはテンポラリブロック（物理ブロックアドレス：０ｘ０５００）のいずれかにあると判断する。さらに、データ読み書き部２１６は、ページのステータスを確認し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２のデータが「有効」であり、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ番号２のデータが「無効」であることを検出する。そして、データ読み書き部２１６は、読み出すべきデータがテンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２であると判断し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２のデータ（データＦ）を読み出す。
【００５６】
［他の実施形態］
なお、上記実施形態において、フォーマット部１２により生成されるメモリ領域設定コマンドは、テンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐを含むものであるとして、説明したが、これに限定されることはなく、例えば、以下のようなものであってもよい。
すなわち、図９（ａ）、（ｂ）に示すように、マルチｃｈ記録であることを示すマルチｃｈフラグを設け、当該マルチｃｈフラグが「０」の場合、シングルｃｈ記録を行うことを示し、当該マルチｃｈフラグが「１」の場合、マルチｃｈ記録を行うことを示すようにする。
そして、シングルｃｈ記録を行う場合、図９（ａ）に示すように、最小使用帯域を示す情報をマルチｃｈフラグの後に続ける。
【００５７】
マルチｃｈ記録を行う場合、図９（ｂ）に示すように、マルチｃｈフラグの後に、ｃｈ数Ｎを示す領域を設け、さらに、その後に、１ｃｈの最小使用帯域、２ｃｈの最小使用帯域、・・・、Ｎｃｈの最小使用帯域と、Ｎｃｈ分の最小使用帯域を示す領域を設ける。
不揮発性記憶装置２は、このようなメモリ領域設定コマンドを受信し、シングルｃｈ記録の場合は、メモリ領域設定コマンドにより指示された最小使用帯域（例えば、ＳＤＴＶの１ｃｈ分のデータを記録する場合、最小使用帯域を４［Ｍｂｐｓ］として指定し、ＨＤＴＶの１ｃｈ分のデータを記録する場合、最小使用帯域を１０［Ｍｂｐｓ］として指定する）を実現できるように、不揮発性メモリ２２のテンポラリ領域２３および通常アクセス領域２４の設定を行う。
一方、マルチｃｈ記録を行う場合、不揮発性記憶装置２は、図９（ｂ）に示す領域を含むメモリ領域設定コマンドを受信し、当該メモリ領域設定コマンドに含まれる情報に基づいて、１ｃｈ〜Ｎｃｈの各ｃｈにおいて、最小使用帯域が確保できるように、不揮発性メモリ２２のテンポラリ領域２３および通常アクセス領域２４の設定を行う。
【００５８】
なお、上記実施形態において、マルチｃｈ記録を行う場合、ｃｈごとに、１個のテンポラリブロックを設定する場合について、説明したが、これに限定されることはなく、例えば、マルチ記録ｃｈ数Ｋに対して、ｉｎｔ（Ｋ／２）個のテンポラリブロックを設定するようにしてもよい。なお、ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数を示す。
特に、不揮発性記憶システム１００において、最小使用帯域が確保できる最低限のテンポラリブロックを設定することで、通常アクセス領域を最大限に利用することができる。
また、メモリ領域設定コマンドで、クラスを指定し、指定されたクラスの条件を満たすように、不揮発性記憶システム１００の不揮発性記憶装置２において、テンポラリ領域２３および通常アクセス領域２４の設定を行うようにしてもよい。例えば、メモリ領域設定コマンドにおいて、４段階のクラスを設定するようにし、
（１）クラス１では、最小使用帯域ｘ１として指定し、
（２）クラス２では、最小使用帯域ｘ２（ｘ２＞ｘ１）として指定し、
（３）クラス３では、最小使用帯域ｘ３（ｘ３＞ｘ２）として指定し、
（４）クラス４では、最小使用帯域ｘ４（ｘ４＞ｘ３）として指定し、
メモリ領域設定コマンドにより指定された要件を満たすように、不揮発性記憶装置２がテンポラリ領域２３および通常アクセス領域２４の設定を行うようにしてもよい。
【００５９】
また、上記実施形態では、図２および図３において、テンポラリ領域の設定処理応答（レスポンス）ＲｅｓＳｅｔ（Ｓ２０２、Ｓ２０８）を、不揮発性記憶装置２からアクセス装置１に返信する場合について、説明したが、これに限定されることはなく、例えば、レスポンスの返信処理を省略するようにしてもよい。
また、上記実施形態では、メモリ領域設定コマンドと、フォーマットコマンドと、が別のコマンドである場合について、説明したが、これに限定されることはなく、たとえば、メモリ領域設定コマンドに含める情報をフォーマットコマンドに含め、フォーマットコマンドのみをアクセス装置から不揮発性記憶装置に送信するようにしてもよい。この場合、不揮発性記憶装置は、テンポラリ領域および通常アクセス領域の設定、および、通常アクセス領域に対する論理フォーマットを一括して処理し、いずれかの処理でエラーが発生した場合、エラー情報を含むレスポンスをアクセス装置に送信し、全ての処理が正常に完了した場合は、正常完了したことを示す情報を含むレスポンスをアクセス装置に送信するようにすればよい。
【００６０】
また、上記実施形態では、アクセス装置と不揮発性記憶装置とは、別個の装置であることを前提として説明したが、これに限定されることはなく、アクセス装置、不揮発性記憶装置、およびアクセス装置と不揮発性記憶装置とを接続する外部バスは、単独の装置内に実装されるものであってもよい。
また、上記実施形態で説明した不揮発性記憶システム、アクセス装置、不揮発性記憶装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００６１】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００６２】
本発明に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置は、用途に応じた最適なデータ記録を行うことができるため、不揮発性メモリ関連産業分野において、有用であり、本発明は、当該分野において実施することができる。
【符号の説明】
【００６３】
１００  不揮発性記憶システム
１  アクセス装置（アクセスモジュール）
１１  使用条件指示部
１２  フォーマット部
１３  Ｒ／Ｗ制御部
１４  バスインターフェース部
２  不揮発性記憶装置
２１  メモリコントローラ
２１１  ホストインターフェース部
２１２  使用条件取得部
２１３  使用可能容量決定部
２１４  メモリインターフェース部
２１５  使用可能容量取得部
２１６  データ読み書き部
２１７  アドレス管理部
２２  不揮発性メモリ
２３  テンポラリ領域
２３１  テンポラリブロック
２４  通常アクセス領域
２４１  通常アクセスブロック
２５１  レジスタ領域
【図１】
2011007511.tif 000003
【図２】
2011007511.tif 000004
【図３】
2011007511.tif 000005
【図４】
2011007511.tif 000006
【図５】
2011007511.tif 000007
【図６】
2011007511.tif 000008
【図７】
2011007511.tif 000009
【図８】
2011007511.tif 000010
【図９】
2011007511.tif 000011
【手続補正書】
【提出日】平成23年1月11日(2011.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリに接続可能であり、外部からのアクセス指示に応じて、前記不揮発性メモリに対して、データの読み出し／書き込みを行うメモリコントローラであって、
外部からの前記アクセス指示から、前記不揮発性メモリの使用条件に関する情報を取得する使用条件取得部と、
前記使用条件取得部により取得された前記不揮発性メモリの使用条件に関する情報に基づき、前記不揮発性メモリのテンポラリ領域を決定する使用可能容量決定部と、
前記決定されたテンポラリ領域および前記決定されたテンポラリ領域とは異なる通常アクセス領域を用いて、前記不揮発性メモリに対して、データの読み書き制御を行うデータ読み書き部と、
を備えるメモリコントローラ。
【請求項２】
前記使用可能容量決定部は、前記テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
請求項１に記載のメモリコントローラ。
【請求項３】
前記使用可能容量決定部は、前記データ読み書き部が前記不揮発性メモリに対して書き込むデータのチャンネル数に応じて、前記不揮発性メモリのテンポラリ領域の容量を設定する、
請求項１に記載のメモリコントローラ。
【請求項４】
前記使用可能容量決定部は、
１ｃｈのデータからなるシングルｃｈデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「１」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定し、
Ｎｃｈ（Ｎは自然数）のデータからなるマルチｃｈデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「Ｎ」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
請求項２に記載のメモリコントローラ。
【請求項５】
メモリ領域が可変なテンポラリ領域と、メモリ領域が可変な通常アクセス領域と、を含む不揮発性メモリと、
請求項１から４のいずれかに記載のメモリコントローラと、
を備え、
前記不揮発性メモリの前記テンポラリ領域のメモリ領域および／または前記通常アクセス領域のメモリ領域は、前記メモリコントローラからの指示により、決定される、
不揮発性記憶装置。
【請求項６】
請求項５に記載の不揮発性記憶装置と接続して、前記不揮発性記憶装置をフォーマットすると共に、前記不揮発性記憶装置にデータを書き込み、前記不揮発性記憶装置からデータを読み出すアクセス装置であって、
前記不揮発性記憶装置に対して、前記不揮発性記憶装置に使用条件を指示する使用条件指示部と、
前記使用条件指示部の前記使用条件の指示に対するレスポンスであって、前記不揮発性記憶装置が前記使用条件に基づいて確定させた前記不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、前記不揮発性記憶装置に対して、フォーマットを行うように指示するフォーマット部と、
を備えるアクセス装置。
【請求項７】
前記使用条件指示部は、前記不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、前記使用条件の指示を行い、
前記メモリ使用可能容量は、前記不揮発性記憶装置がデータの読み取り／書き込み処理に使用できる全メモリ領域から前記テンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した前記通常アクセス領域のメモリ容量である、
請求項６に記載のアクセス装置。
【請求項８】
請求項５に記載の不揮発性記憶装置と、
請求項６または７に記載のアクセス装置と、
を備える不揮発性記憶システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに対して、用途に応じた最適なデータ記録を行うことができるメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムに関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にＦｌａｓｈＲＯＭ等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、ＦｌａｓｈＲＯＭ等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にＮＡＮＤ型フラッシュメモリと呼ばれる半導体素子が使用されている。ＮＡＮＤ型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
【０００３】
ＮＡＮＤ型フラッシュメモリは、記憶単位であるメモリセルアレイへのデータの書き込みや消去に比較的長い時間を要するため、複数のメモリセルに対して一括してデータを消去したり書き込んだりできる構造となっている。具体的には、ＮＡＮＤ型フラッシュメモリは、複数の物理ブロック（消去単位）から構成され、各物理ブロックは、複数のページ（書き込み単位）を含み、データの消去は、物理ブロック単位で行われ、データの読み取り／書き込みは、ページ単位で行われる。
ＮＡＮＤ型フラッシュメモリでは、データを書き換える場合、ＨＤＤに代表される磁気記録装置のように直接データを書き換えることができず、一旦データを消去した後、データを記録する（書き込む）必要がある。また、ＮＡＮＤ型フラッシュメモリでは、その消去単位の大きさが数百ＫＢから数ＭＢであることから、小サイズのデータの書き込みを実施する場合には、同一物理ブロック（消去単位ブロック）内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。このため、ＮＡＮＤ型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下するという問題が発生する。例えば、ＦＡＴファイルシステムのディレクトリエントリやＦＡＴ等の頻繁に更新されるデータを書き換える場合、この速度低下が顕著になる。
【０００４】
従来、このような問題を解決する技術として、頻繁に更新されるデータ（データブロック）に対して、テンポラリブロック（ログブロック）を割り当て、当該テンポラリブロックに頻繁に更新されるデータを書き込み、「巻き込み退避処理」の発生を抑制する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３６６４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術では、テンポラリブロック数が固定、すなわち、ストレージ・アーキテクチャが固定であり、用途に応じて最適なデータ記録処理を行うことが困難である。例えば、１チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）をフラッシュメモリに記録する場合（シングルｃｈ記録の場合）と、多チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）を記録する場合（マルチｃｈ記録の場合）とでは、テンポラリブロック数（テンポラリ領域）を変化させる、すなわち、ストレージ・アーキテクチャを変更させる方が有利である。つまり、
（１）１チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）をフラッシュメモリに記録する場合、テンポラリブロック数（テンポラリ領域）を少なくし、通常アクセスブロックの数（通常アクセス領域）を多くすることで、最低データ記録速度を保証しつつ、多くの通常アクセス領域を確保することができるため、有利である。
（２）一方、多チャンネル分の映像・音声データ（テキストデータ等を含んでもよい）を記録する場合、テンポラリブロック数（テンポラリ領域）を多くし、通常アクセスブロックの数（通常アクセス領域）を少なくすることで、通常アクセス領域の容量の削減量を最低限度に抑えつつ、多チャンネル分のデータを同時記録する際の最低データ記録速度を保証することができるため、有利である。
【０００７】
上記従来の技術では、ストレージ・アーキテクチャが固定であるため、例えば、１チャンネル分のデータ記録と、多チャンネル分のデータ記録と、を併用する場合、最適なデータ記録処理を行うことができない、すなわち、上記従来の技術では、用途に応じた最適なデータ記録処理を行うことができないという問題点がある。
本発明は、上記問題点に鑑み、ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明は、不揮発性メモリに接続可能であり、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、データの読み書き制御を行うデータ読み書き部と、フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、使用可能容量を外部に通知する使用可能容量通知部と、を備える。
これにより、フォーマット時に外部から指示された使用条件に基づいて、好適な動作（例えば、好適なデータ書き込み動作）を行うメモリコントローラを実現することができる。
第２の発明は、不揮発性メモリに接続可能であり、外部からのアクセス指示に応じて、不揮発性メモリに対して、データの読み出し／書き込みを行うメモリコントローラであって、データ読み書き部と、使用条件取得部と、使用可能容量決定部と、使用可能容量取得部と、を備える。
【０００９】
データ読み書き部は、不揮発性メモリに対して、データの読み書き制御を行う。使用条件取得部は、外部からのアクセス指示から、不揮発性メモリの使用条件に関する情報を取得する。使用可能容量決定部は、使用条件取得部により取得された不揮発性メモリの使用条件に関する情報に基づき、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定したテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示する。使用可能容量取得部は、使用可能容量決定部の指示に基づいて不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域に関する情報を取得する。
そして、データ読み書き部は、不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み／読み取り処理を行う。
このメモリコントローラでは、不揮発性メモリの使用条件に基づいて不揮発性メモリのテンポラリ領域および通常アクセス領域が決定し、決定されたテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示し、そして、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み／読み取り処理を行うことができる。このため、このメモリコントローラを用いた不揮発性記憶システムでは、用途に応じて使用条件を変えることで、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を変えることができる、すなわち、このメモリコントローラを用いた不揮発性記憶システムでは、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。
【００１０】
第３の発明は、第１または第２の発明であって、使用可能容量決定部は、テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
第４の発明は、第３の発明であって、使用可能容量決定部は、１ｃｈのデータからなるシングルｃｈデータを不揮発性メモリに記録する場合、テンポラリブロック数を「１」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、Ｎｃｈ（Ｎは自然数）のデータからなるマルチｃｈデータを不揮発性メモリに記録する場合、テンポラリブロック数を「Ｎ」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
これにより、記録するｃｈ数と同数のテンポラリブロックが確保されるので、巻き込み退避処理（集約処理）の発生頻度を抑えることができ、データ書き込み速度の低下を効果的に抑制することができる。
【００１１】
第５の発明は、メモリ領域が可変なテンポラリ領域とメモリ領域が可変な通常アクセス領域とを含む不揮発性メモリと、第１から第４のいずれかの発明であるメモリコントローラと、を備える不揮発性記憶装置である。
不揮発性メモリのテンポラリ領域のメモリ領域および／または通常アクセス領域のメモリ領域は、メモリコントローラからの指示により、決定される。
なお、「不揮発性記憶装置」は、不揮発性記憶モジュールを含む概念である。
第６の発明は、第５の発明である不揮発性記憶装置と接続して、不揮発性記憶装置をフォーマットすると共に、不揮発性記憶装置にデータを書き込み、不揮発性記憶装置からデータを読み出すアクセス装置であって、使用条件指示部と、フォーマット部と、を備える。
【００１２】
使用条件指示部は、不揮発性記憶装置に対して、不揮発性記憶装置に使用条件を指示する。フォーマット部は、使用条件指示部の使用条件の指示に対するレスポンスであって、不揮発性記憶装置が使用条件に基づいて確定させた不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、不揮発性記憶装置に対して、フォーマットを行うように指示する。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第７の発明は、第６の発明であって、使用条件指示部は、不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、使用条件の指示を行い、メモリ使用可能容量は、不揮発性記憶装置がデータの読み取り／書き込み処理に使用できる全メモリ領域からテンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した通常アクセス領域のメモリ容量である。
【００１３】
第８の発明は、第５の発明である不揮発性記憶装置と、第６または第７の発明であるアクセス装置と、を備える不揮発性記憶システムである。
【発明の効果】
【００１４】
本発明によれば、アクセス装置からのデータ書き込みを好適なアクセス速度で行うメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係る不揮発性記憶システム１００の概略構成図
【図２】シングルｃｈ記録の場合のアクセス装置１および不揮発性記憶装置２の動作シーケンス図
【図３】マルチｃｈ記録の場合のアクセス装置１および不揮発性記憶装置２の動作シーケンス図
【図４】シングルｃｈ記録の場合の論理アドレス／物理アドレス変換テーブル及び通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す図
【図５】マルチｃｈ記録の場合の論理アドレス／物理アドレス変換テーブル及び通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す図
【図６】巻き込み退避処理（集約処理）を説明するための図
【図７】不揮発性記憶システム１００でのデータ書き込み処理を説明するための図
【図８】不揮発性記憶システム１００でのデータ書き込み処理を説明するための図
【図９】メモリ領域設定コマンドの一部の一例を示す図
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の実施形態について説明する。
［第１実施形態］
＜１．１：不揮発性記憶システムの構成＞
図１に、本実施形態に係る不揮発性記憶システム１００の概略構成図を示す。
図１に示すように、不揮発性記憶システム１００は、アクセス装置（アクセスモジュール）１と、不揮発性記憶装置（不揮発性記憶モジュール）２と、を備え、アクセス装置１と不揮発性記憶装置２とは、外部バスＢ１により接続されており、外部バスＢ１を介して、双方向にデータ通信を行うことができる。
（１．１．１：アクセス装置の構成）
図１に示すように、アクセス装置１は、使用条件指示部１１と、フォーマット部１２と、Ｒ／Ｗ制御部１３と、バスインターフェース部１４と、を備える。
【００１７】
使用条件指示部１１は、例えば、ユーザからの入力情報に基づいて使用条件を設定する。具体的には、使用条件指示部１１は、不揮発性記憶装置２のテンポラリ領域２３に確保するテンポラリブロック数Ｎ＿ｔｍｐを使用条件として設定する。そして、使用条件指示部１１は、設定した使用条件をフォーマット部１２に出力する。
フォーマット部１２は、使用条件指示部１１により設定された使用条件に基づいて、不揮発性記憶装置２に対して発行するメモリ領域設定コマンドを生成する。フォーマット部１２は、生成したメモリ領域設定コマンドをバスインターフェース部１４に出力し、所定のタイミングで、生成したメモリ領域設定コマンドがバスインターフェース部１４を介して不揮発性記憶装置２に送信されるように制御する。
メモリ領域設定コマンドは、例えば、テンポラリブロック数Ｎ＿ｔｍｐを含むものであり、不揮発性記憶装置２に対して、メモリ領域設定コマンドにより指示されたメモリ領域確保（テンポラリ領域２３および通常アクセス領域２４の領域確保）を行うためのものである。
【００１８】
また、フォーマット部１２は、メモリ領域設定コマンドにより設定した不揮発性記憶装置２の不揮発性メモリ２２の通常アクセス領域に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に対して発行する。
Ｒ／Ｗ制御部１３は、不揮発性記憶装置２の不揮発性メモリ２２に記録されたデータを所定の領域から読み出すためのリードコマンド、および、所定のデータを不揮発性記憶装置２の不揮発性メモリ２２の所定の領域に書き込むためのライトコマンドを生成する。Ｒ／Ｗ制御部１３は、生成したコマンドをバスインターフェース部１４に出力し、所定のタイミングで、生成したコマンドがバスインターフェース部１４を介して不揮発性記憶装置２に送信されるように制御する。
バスインターフェース部１４は、不揮発性記憶装置２のホストインターフェース部２１１と外部バスＢ１により接続されており、アクセス装置１と不揮発性記憶装置２との間の通信インターフェース機能を実現させる。また、バスインターフェース部１４は、フォーマット部１２およびＲ／Ｗ制御部１３と接続されている。バスインターフェース部１４は、フォーマット部１２による制御に従い、フォーマット部１２により生成されるメモリ領域設定コマンドやフォーマットコマンドを、外部バスＢ１を介して、不揮発性記憶装置２に送信する。また、バスインターフェース部１４は、Ｒ／Ｗ制御部１３による制御に従い、Ｒ／Ｗ制御部１３により生成されたコマンドを、外部バスＢ１を介して、不揮発性記憶装置２に送信する。
【００１９】
（１．１．２：不揮発性記憶装置の構成）
図１に示すように、不揮発性記憶装置２は、メモリコントローラ２１と、不揮発性メモリ２２と、を備え、メモリコントローラ２１と不揮発性メモリ２２とは、メモリバスＢ２で接続されている。
メモリコントローラ２１は、図１に示すように、ホストインターフェース部２１１と、使用条件取得部２１２と、使用可能容量決定部２１３と、メモリインターフェース部２１４と、使用可能容量取得部２１５と、データ読み書き部２１６と、アドレス管理部２１７と、を備える。
ホストインターフェース部２１１は、アクセス装置１のバスインターフェース部１４と外部バスＢ１により接続されており、アクセス装置１と不揮発性記憶装置２との間の通信インターフェース機能を実現させる。ホストインターフェース部２１１は、アクセス装置１から送信されるメモリ領域設定コマンドを、外部バスＢ１を介して受信し、受信したデータ（コマンド）を使用条件取得部２１２に出力する。また、ホストインターフェース部２１１は、アクセス装置１から送信されるフォーマットコマンド、リードコマンドやライトコマンドを、外部バスＢ１を介して受信し、受信したデータ（コマンド）をデータ読み書き部２１６に出力する。
【００２０】
使用条件取得部２１２は、ホストインターフェース部２１１により受信されたメモリ領域設定コマンドのデータから使用条件に関する情報を抽出する。「使用条件に関する情報」は、例えば、テンポラリブロック数Ｎ＿ｔｍｐである。そして、使用条件取得部２１２は、抽出した使用条件に関する情報を使用可能容量決定部２１３に出力する
使用可能容量決定部２１３は、使用条件取得部２１２により抽出された使用条件に関する情報に基づいて、不揮発性メモリ２２のテンポラリ領域２３の容量および通常アクセス領域２４の容量を決めるためのパラメータを決定する。例えば、「使用条件に関する情報」がテンポラリブロック数Ｎ＿ｔｍｐである場合、使用可能容量決定部２１３は、不揮発性メモリの全容量およびテンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。そして、使用可能容量決定部２１３は、決定したテンポラリブロック数Ｎ＿ｔｍｐおよび通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを、メモリインターフェース部２１４を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
【００２１】
メモリインターフェース部２１４は、不揮発性メモリ２２とメモリバスＢ２により接続されており、メモリコントローラ２１と不揮発性メモリ２２との間の通信インターフェース機能を実現させる。メモリインターフェース部２１４は、使用可能容量決定部２１３、使用可能容量取得部２１５およびデータ読み書き部２１６による制御に従い、不揮発性メモリの所定の領域から所定のデータの読み出し／書き込みを行う。
使用可能容量取得部２１５は、使用可能容量決定部２１３により指示されたテンポラリ領域２３および通常アクセス領域２４が正常に確保されたか否かの情報を、メモリインターフェース部２１４を介して不揮発性メモリ２２から受け取り、使用可能容量決定部２１３の指示通り、正常に、テンポラリ領域２３および通常アクセス領域２４が確保されているか否かを確認する。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報（レスポンス）を、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報（レスポンス）を、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
【００２２】
データ読み書き部２１６は、ホストインターフェース部２１１、メモリインターフェース部２１４およびアドレス管理部２１７と接続されている。データ読み書き部２１６は、主に、以下の（１）〜（４）の処理を行う。
（１）データの書き込み処理
アクセス装置１から送信されたライトコマンドに基づいて、当該ライトコマンドにより指定されている論理アドレスに対応する不揮発性メモリ１の物理アドレスにライトコマンドで指定されたデータを書き込む。
（２）データの読み出し処理
アクセス装置１から送信されたリードコマンドに基づいて、当該リードコマンドにより指定されている論理アドレスに対応する不揮発性メモリ１の物理アドレスからデータを読み出す。
（３）アドレス変換処理
アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、上記（１）、（２）の処理で使用される論理アドレスを物理アドレスに変換する。
（４）不揮発性メモリ２２の通常アクセス領域２４に対する論理フォーマット
アクセス装置１から送信されたフォーマットコマンドに基づいて、不揮発性メモリ２２に確保されている通常アクセス領域に対して論理フォーマットを行う。これにより、不揮発性メモリ２２に記憶されるデータをファイルシステム（例えば、ＦＡＴファイルシステム）により管理することが可能になる。
【００２３】
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルを記憶・保持しており、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、データ読み書き部２１６から指定される論理アドレスを、当該論理アドレスに相当する物理アドレスに変換し、変換した物理アドレスをデータ読み書き部２１６に出力する。
＜１．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム１００の動作について、以下説明する。
映像データ、音声データ、テキストデータから構成される１ｃｈ分のデータを不揮発性記憶システム１００で記録する場合（シングルｃｈ記録の場合）、および複数チャンネル分のデータを不揮発性記憶システム１００で記録する場合（マルチｃｈ記録の場合）を例に、以下、説明する。
【００２４】
（１．２．１：シングルｃｈ記録の場合）
図２に、不揮発性記憶システム１００において、シングルｃｈ記録を行う場合のシーケンス図を示す。図２のシーケンス図を用いて、不揮発性記憶システム１００におけるシングルｃｈ記録動作について、説明する。
（Ｓ１０１、１０２）：
図２に示すように、アクセス装置１は、シングルｃｈ記録準備処理を開始する。具体的には、アクセス装置１の使用条件指示部１１により指示された指示条件に基づいて、フォーマット部１２がテンポラリ領域２３の物理ブロック数であるテンポラリブロック数Ｎ＿ｔｍｐを決定し、決定したテンポラリブロック数Ｎ＿ｔｍｐを含むメモリ領域設定コマンドを生成する。なお、ここでは、シングルｃｈの記録を行うので、テンポラリブロック数Ｎ＿ｔｍｐは、Ｎ＿ｔｍｐ＝１に設定される。
【００２５】
そして、フォーマット部１２は、バスインターフェース部１４および外部バスＢ１を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置２に送信する（Ｓ１０２）。
（Ｓ２０１）：
不揮発性記憶装置２は、アクセス装置１から送信されたメモリ領域設定コマンドを、ホストインターフェース部２１１により受信し、使用条件取得部２１２により、メモリ領域設定コマンドに含まれるテンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐ（＝１）を抽出し、使用可能容量決定部２１３に出力する。
使用可能容量決定部２１３は、テンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。具体的には、不揮発性メモリ２２に含まれるデータ領域として使用することができる物理ブロック数の総数をＡとすると、シングルｃｈ記録を行う場合、
Ｎ＿ｔｍｐ＝１
Ｎ＿ｎｏｒｍａｌ＝Ａ−１
とする。
【００２６】
そして、使用可能容量決定部２１３は、メモリインターフェース部２１４およびメモリバスＢ２を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
（Ｓ２０２）：
使用可能容量取得部２１５は、テンポラリ領域２３において、Ｎ＿ｔｍｐ（＝１）個の物理ブロック確保（テンポラリブロックの確保）、通常アクセス領域２４において、Ｎ＿ｎｏｒｍａｌ（＝Ａ−１）個の物理ブロックの確保（通常アクセスブロックの確保）が正常にできたか否かの情報を不揮発性メモリ２２から受け取る。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（Ｓ１０３〜Ｓ１０５）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し（Ｓ１０３）、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１０４）。
【００２７】
一方、アクセス装置１のフォーマット部１２は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域２４に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に送信する（Ｓ１０５）。
（Ｓ２０３、Ｓ２０４）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたフォーマットコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、ホストインターフェース部２１１を介して、不揮発性メモリ２２の通常アクセス領域２４に対して論理フォーマットを行う（Ｓ２０３）。これにより、不揮発性メモリ２２に記憶されるデータをファイルシステム（例えば、ＦＡＴファイルシステム）により管理することが可能になる。
【００２８】
そして、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了した場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２０４）。
一方、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了しなかった場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２０４）。
（Ｓ１０６〜Ｓ１０８）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１０６）、通常アクセス領域２４に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１０７）。
【００２９】
一方、アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１０６）、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、シングルｃｈ記録処理を開始する（Ｓ１０８）。
（Ｓ１０９）：
アクセス装置１のＲ／Ｗ制御部１３は、シングルｃｈのデータを不揮発性メモリ２２に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置２に送信する。
（Ｓ２０５、Ｓ２０６）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたライトコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、受信したライトコマンドから、不揮発性メモリ２２に書き込むデータおよび書き込み領域を示す論理アドレスＬＡを抽出する。
【００３０】
データ読み書き部２１６は、アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、論理アドレスＬＡを物理アドレスＰＡに変換する。
そして、データ読み書き部２１６は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部２１４およびメモリバスＢ２を介して、物理アドレスＰＡに相当する不揮発性メモリ２２の領域に書き込む（Ｓ２０５）。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置２は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスＲｅｓＷｒｉｔｅを生成し、アクセス装置１に送信する（Ｓ２０６）。なお、このＳ２０６の処理は、省略してもよい。
（ＳＲｅｃ１）：
不揮発性記憶システム１００では、記録対象のデータが不揮発性記憶装置２の不揮発性メモリ２２に記録が完了するまで、Ｓ１０９、Ｓ２０５、Ｓ２０６の処理が繰り返される。
（Ｓ１１０）：
そして、アクセス装置１は、記録対象としたデータの全てが、不揮発性記憶装置２の不揮発性メモリ２２に記録されたことを確認したら、シングルｃｈ記録処理を終了させる。
【００３１】
以上により、不揮発性記憶システム１００において、シングルｃｈ記録処理が実現される。
（１．２．２：マルチｃｈ記録の場合）
次に、不揮発性記憶システム１００におけるマルチｃｈ記録動作について、説明する。
図３に、不揮発性記憶システム１００において、マルチｃｈ記録を行う場合のシーケンス図を示す。図３のシーケンス図を用いて、不揮発性記憶システム１００におけるマルチｃｈ記録動作について、説明する。
（Ｓ１１１、Ｓ１１２）：
図３に示すように、アクセス装置１は、マルチｃｈ記録準備処理を開始する。具体的には、アクセス装置１の使用条件指示部１１により指示された指示条件に基づいて、フォーマット部１２がテンポラリ領域２３の物理ブロック数であるテンポラリブロック数Ｎ＿ｔｍｐを決定し、決定したテンポラリブロック数Ｎ＿ｔｍｐを含むメモリ領域設定コマンドを生成する。なお、ここでは、マルチｃｈの記録を行うので、テンポラリブロック数Ｎ＿ｔｍｐは、Ｎ＿ｔｍｐ＝Ｋ（Ｋ＞１である整数）に設定される。
【００３２】
そして、フォーマット部１２は、バスインターフェース部１４および外部バスＢ１を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置２に送信する（Ｓ１１２）。
（Ｓ２０７）：
不揮発性記憶装置２は、アクセス装置１から送信されたメモリ領域設定コマンドを、ホストインターフェース部２１１により受信し、使用条件取得部２１２により、メモリ領域設定コマンドに含まれるテンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐ（＝Ｋ）を抽出し、使用可能容量決定部２１３に出力する。
使用可能容量決定部２１３は、テンポラリブロック数Ｎ＿ｔｍｐに基づいて、通常アクセス領域２４の物理ブロック数である通常アクセスブロック数Ｎ＿ｎｏｒｍａｌを決定する。具体的には、不揮発性メモリ２２に含まれるデータ領域として使用することができる物理ブロック数の総数をＡとすると、図２の場合のマルチｃｈ記録を行う場合、
Ｎ＿ｔｍｐ＝Ｋ
Ｎ＿ｎｏｒｍａｌ＝Ａ−Ｋ
とする。
【００３３】
そして、使用可能容量決定部２１３は、メモリインターフェース部２１４およびメモリバスＢ２を介して、不揮発性メモリ２２のレジスタ領域に書き込み、不揮発性メモリ２２のテンポラリ領域２３の容量（ブロック数）および通常アクセス領域２４の容量（ブロック数）を確定させる。
これにより、不揮発性記憶装置２において、ｃｈ数分（Ｋ個）のテンポラリブロックが確保されることになる。
（Ｓ２０８）：
使用可能容量取得部２１５は、テンポラリ領域２３において、Ｎ＿ｔｍｐ（＝Ｋ）個の物理ブロック確保（テンポラリブロックの確保）、通常アクセス領域２４において、Ｎ＿ｎｏｒｍａｌ（＝Ａ−Ｋ）個の物理ブロックの確保（通常アクセスブロックの確保）が正常にできたか否かの情報を不揮発性メモリ２２から受け取る。
（１）指示通り正常に、テンポラリ領域２３および通常アクセス領域２４が確保されている場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了したことを示す情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（２）一方、指示通りのテンポラリ領域２３および通常アクセス領域２４が確保できなかった場合、使用可能容量取得部２１５は、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスＲｅｓＳｅｔに含めて、ホストインターフェース部２１１および外部バスＢ１を介して、アクセス装置１に送信する。
（Ｓ１１３〜Ｓ１１５）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し（Ｓ１１３）、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１１４）。
【００３４】
一方、アクセス装置１のフォーマット部１２は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＳｅｔを解析し、フォーマット部１２により指示された通り、不揮発性メモリ２２のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域２４に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置２に送信する（Ｓ１１５）。
（Ｓ２０９、Ｓ２１０）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたフォーマットコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、ホストインターフェース部２１１を介して、不揮発性メモリ２２の通常アクセス領域２４に対して論理フォーマットを行う（Ｓ２０９）。
【００３５】
そして、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了した場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２１０）。
一方、指示通り正常に、通常アクセス領域２４に対する論理フォーマットが完了しなかった場合、不揮発性メモリ２２から使用可能容量取得部２１５に、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部２１５は、通常アクセス領域２４に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスＲｅｓＦｍｔをアクセス装置１に、ホストインターフェース部２１１を介して送信する（Ｓ２１０）。
（Ｓ１１６〜Ｓ１１８）：
アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１１６）、通常アクセス領域２４に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う（Ｓ１１７）。
【００３６】
一方、アクセス装置１は、不揮発性記憶装置２から送信されたレスポンスＲｅｓＦｍｔを解析し（Ｓ１１６）、通常アクセス領域２４に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、マルチｃｈ記録処理を開始する（Ｓ１１８）。
（Ｓ１１９）：
アクセス装置１のＲ／Ｗ制御部１３は、マルチｃｈのデータのうちの１つのｃｈデータである１ｃｈのデータを不揮発性メモリ２２に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置２に送信する。
（Ｓ２１１、Ｓ２１２）：
不揮発性記憶装置２のデータ読み書き部２１６は、アクセス装置１から送信されたライトコマンドを、ホストインターフェース部２１１を介して受信する。データ読み書き部２１６は、受信したライトコマンドから、不揮発性メモリ２２に書き込むデータおよび書き込み領域を示す論理アドレスＬＡを抽出する。
【００３７】
データ読み書き部２１６は、アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに基づいて、論理アドレスＬＡを物理アドレスＰＡに変換する。
そして、データ読み書き部２１６は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部２１４およびメモリバスＢ２を介して、物理アドレスＰＡに相当する不揮発性メモリ２２の領域に書き込む（Ｓ２１１）。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置２は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスＲｅｓＷｒｉｔｅ１を生成し、アクセス装置１に送信する（Ｓ２１２）。なお、このＳ２１２の処理は、省略してもよい。
（Ｓ１２０、Ｓ２１３、Ｓ２１４）：
記録対象であるｃｈ数分（ここでは、Ｋ個のｃｈ分）、各ｃｈに対して、上記Ｓ１１３、Ｓ２０７およびＳ２０８と同様の処理を行う。
（ＳＲｅｃ２）：
不揮発性記憶システム１００では、記録対象のマルチｃｈのデータが不揮発性記憶装置２の不揮発性メモリ２２に記録が完了するまで、Ｓ１１９〜Ｓ２１４の処理（図３中にＳＲｅｃ２で示した処理）が繰り返される。なお、不揮発性記憶装置２では、記録するｃｈ数分（Ｋ個）のテンポラリブロックが確保されているので、各ｃｈデータの記録において、それぞれ、１個のテンポラリブロックを用いて、データ記録処理が実行されるため、不揮発性記憶システム１００では、巻き込み退避処理（集約処理）の発生頻度を抑えることができる。その結果、不揮発性記憶システム１００では、マルチｃｈ記録を行う場合においても、最低速度保証を容易に行うことができる。
（Ｓ１２１）：
そして、アクセス装置１は、記録対象とした全てのデータ（マルチｃｈのデータ）が、不揮発性記憶装置２の不揮発性メモリ２２に記録されたことを確認したら、マルチｃｈ記録処理を終了させる。
【００３８】
以上により、不揮発性記憶システム１００において、マルチｃｈ記録処理が実現される。
（１．２．３：アドレス管理部）
次に、アドレス管理部２１７により管理される論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルについて、説明する。
（１．２．３．１：論理アドレス／物理アドレス変換テーブル）
アドレス管理部２１７により管理されている論理アドレス／物理アドレス変換テーブルは、論理ブロックアドレスと、その論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係を保持しているテーブルである。
図４（ａ）に、不揮発性記憶システム１００において、シングルｃｈ記録する場合の論理アドレス／物理アドレス変換テーブルの一部の一例を示す。また、図５（ａ）に、不揮発性記憶システム１００において、マルチｃｈ記録する場合の論理アドレス／物理アドレス変換テーブルの一部の一例を示す。
【００３９】
なお、アクセス装置１は、データを論理アドレス空間により管理しており、図４または図５に示す論理ブロックアドレスは、アクセス装置１が管理する論理アドレス空間内で定義される論理ブロックの論理アドレスである。また、不揮発性記憶装置２は、データを物理アドレス空間により管理しており、図４または図５に示す物理ブロックアドレスは、不揮発性記憶装置２が管理する物理アドレス空間内で定義される物理ブロックの物理アドレスである。
したがって、アクセス装置１が管理しているアドレス空間と不揮発性記憶装置２が管理しているアドレス空間とは異なるが、不揮発性記憶装置２のアドレス管理部２１７によりアドレス変換を行うことで、データ管理におけるアドレス変換のランダム性を確保することができる。つまり、不揮発性記憶装置２でアドレス変換を行うことで、アクセス装置１が管理する論理ブロックを、不揮発性記憶装置２が管理する任意の物理ブロックに割り当てることができる。図４の場合では、論理ブロックアドレス０ｘ００Ａ０の論理ブロックが、常に、物理ブロックアドレス０ｘ００１０の物理ブロックに割り当てられるわけではなく、論理ブロックアドレス０ｘ００Ａ０の論理ブロックを、物理ブロックアドレス０ｘ００１０以外の物理ブロックに割り当てることも可能である。
【００４０】
したがって、アクセス装置１は、不揮発性メモリ２２の物理アドレスを意識することなく、論理アドレスによるデータ管理を行うことができる。
また、論理アドレス／物理アドレス変換テーブルは、図４（ａ）、図５（ａ）の左欄のｃｈ番号を示す情報を保持しなくてもよい。
以下では、説明便宜のため、物理アドレスおよび論理アドレスは、２バイト（１６ビット）のアドレスとする。物理アドレスの上位１２ビットが物理ブロックアドレスを示し、物理アドレスの下位４ビットがページ番号を示すものとする。また、論理アドレスの上位１２ビットが論理ブロックアドレスを示し、論理アドレスの下位４ビットがページ番号を示すものとする。そして、論理ブロックアドレスおよび物理ブロックアドレスは、下位４ビットを「０」にした１６進数による表記を行うものとする。例えば、図６（ａ）の左側の物理ブロックは、物理アドレス０ｘ００１０〜０ｘ００１４（５ページからなる物理ブロック）について、その物理ブロックアドレスを「０ｘ００１０」と表記するものとする。
【００４１】
また、本実施形態においては、論理ブロック内のページ番号と、物理ブロック内のページ番号とが、一致するものとする。したがって、図４（ａ）に示す論理アドレス／物理アドレス変換テーブルにより、例えば、論理アドレス０ｘ００Ａ２は、物理アドレス０ｘ００１２に変換されることになる（論理ブロック内および物理ブロック内でのページ番号は一致する）。なお、他のアドレス体系により論理アドレス、物理アドレス、論理ブロックアドレス、物理ブロックアドレスを表現するようにしてもよいことは、言うまでもない。また、ブロックとページの関係（例えば、１つの物理ブロック内に含まれるページ数）も上記に限定されないのは、言うまでもない。
（１．２．３．２：通常アクセスブロック／テンポラリブロック管理テーブル）
アドレス管理部２１７により管理されている通常アクセスブロック／テンポラリブロック管理テーブルは、通常アクセスブロックアドレスと、その通常アクセスブロックに対応するテンポラリブロックアドレスとの対応関係を保持しているテーブルである。
【００４２】
図４（ｂ）に、不揮発性記憶システム１００において、シングルｃｈ記録する場合の通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す。また、図５（ｂ）に、不揮発性記憶システム１００において、マルチｃｈ記録する場合（記録ｃｈ数Ｋ＝４の場合）の通常アクセスブロック／テンポラリブロック管理テーブルの一例を示す。なお、通常アクセスブロックは、不揮発性メモリ２２の通常アクセス領域２４に確保された物理ブロックであるので、図４または図５に示すように、論理アドレス／物理アドレス変換テーブルの物理ブロックアドレスは、通常アクセスブロックの物理ブロックアドレスと一致する。
アドレス管理部２１７は、記録するｃｈ数分の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。つまり、不揮発性記憶システム１００において、シングルｃｈ記録を行う場合、図４（ｂ）に示すように、１ｃｈ分（１個分）の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。一方、不揮発性記憶システム１００において、マルチｃｈ記録を行う場合、図５（ｂ）に示すように、Ｋｃｈ分（図５（ｂ）の場合は、Ｋ＝４）の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。
【００４３】
（１．２．４：データ書き込み処理）
次に、不揮発性記憶システム１００におけるデータ書き込み処理について、説明する。
まず、巻き込み退避処理（集約処理）について、図６を用いて説明する。
（１．２．４．１：巻き込み退避処理（集約処理））
図６は、巻き込み退避処理（集約処理）を説明するための図である。
図６に示す場合において、有効データであるデータＡ〜データＥを保持している物理ブロック０ｘ００１０にて、データＣをデータＦに更新し、さらに、データＤをデータＧに更新する場合について、説明する。
不揮発性メモリでは、ページ単位での更新を行うことができないので、物理ブロック単位で消去し、有効データをコピーし、さらに、更新データを書き込む処理を行う必要がある。具体的には、図６（ａ）に示すように、まず、全てのページのデータが消去された消去済みブロック（空きブロック）０ｘ０３Ｆ０を用意する。
【００４４】
そして、図６（ｂ）に示すように、物理ブロック０ｘ００１０のデータＡおよびデータＢを、物理ブロック０ｘ０３Ｆ０の０ページおよび１ページにコピーする（ステップ１）。なお、図６の丸で囲んだ番号を「ステップＸ」（Ｘは整数）と表記することとする（以下、同様）。
次に、物理ブロック０ｘ０３Ｆ０の２ページにデータＦを書き込み（ステップ２）、さらに、物理ブロック０ｘ００１０の３ページおよび４ページのデータＤおよびデータＥを、それぞれ、物理ブロック０ｘ０３Ｆ０の３ページおよび４ページにコピーする（ステップ３）。
これにより、有効データは、全て、物理ブロック０ｘ００１０から０ｘ０３Ｆ０に移動されたので、物理ブロック０ｘ００１０を消去する（ステップ４）。
【００４５】
さらに、データＤをデータＧに更新するために、新たな消去済みブロック（空きブロック）０ｘ０４Ａ０を用意する。
そして、物理ブロック０ｘ０３Ｆ０の０ページから２ページまでのデータであるデータＡ、データＢおよびデータＦを、それぞれ、物理ブロック０ｘ０４Ａ０の０ページから２ページにコピーする（ステップ５）。
次に、物理ブロック０ｘ０４Ａ０の３ページにデータＧを書き込む（ステップ６）。
そして、物理ブロック０ｘ０３Ｆ０の４ページのデータＥを物理ブロック０ｘ０４Ａ０の４ページにコピーする（ステップ７）。
これにより、有効データは、全て、物理ブロック０ｘ０３Ｆ０から０ｘ０４Ａ０に移動されたので、物理ブロック０ｘ０３Ｆ０を消去する（ステップ８）。
【００４６】
このように、同一物理ブロックのデータを更新する場合、巻き込み退避処理が発生する頻度が多くなりやすく（図６の場合では、２度の物理ブロックの消去処理が発生している）、物理ブロックの消去処理に時間がかかるため、不揮発性メモリへのデータ書き込み処理速度が低下する原因となる。
（１．２．４．２：不揮発性記憶システム１００でのデータ書き込み処理）
次に、不揮発性記憶システム１００でのデータ書き込み処理について、図７および図８を用いて、説明する。
図７は、不揮発性記憶システム１００において、論理アドレスが０ｘ００Ａ２であるデータＣをデータＦに書き換え、さらに、論理アドレスが０ｘ００Ａ３であるデータＤをデータＧに書き換える場合の論理ブロック、通常アクセスブロックおよびテンポラリブロックの状態を模式的に示した図である。なお、図７に「論理ブロック」として示したブロックは、アクセス装置１がデータを管理する単位であり、アクセス装置１が管理する論理アドレス空間内で論理アドレスにより管理されるブロックである。また、図７に「通常アクセスブロック」として示したブロックは、不揮発性記憶装置２がデータを管理する単位であり、不揮発性記憶装置２が管理する物理アドレス空間内で物理アドレスにより管理されるブロックである。なお、通常アクセスブロックは、不揮発性記憶装置２の通常アクセス領域内に確保される物理ブロックである。
【００４７】
図７を用いて、不揮発性記憶システム１００において、論理アドレスが０ｘ００Ａ２であるデータＣをデータＦに書き換え、さらに、論理アドレスが０ｘ００Ａ３であるデータＤをデータＧに書き換える場合の処理について説明する。
（図７（ａ）の状態）：
アクセス装置１から不揮発性記憶装置２に対して、論理アドレス０ｘ００Ａ２のデータＣをデータＦに書き換えるためのライトコマンドが発行される。
データ読み書き部２１６は、受信したライトコマンドから書き換えデータの論理ブロックアドレス０ｘ００Ａ０を抽出し、アドレス管理部２１７に出力する。
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルｔｂ１を参照し、論理ブロックアドレスが０ｘ００Ａ０の論理ブロックは、物理ブロックアドレスが０ｘ００１０であることを検出する。さらに、アドレス管理部２１７は、通常アクセスブロック／テンポラリブロック管理テーブルｔｂ２を参照し、物理ブロックアドレスが０ｘ００１０である通常アクセスブロックのテンポラリブロックの物理ブロックアドレスが０ｘ０５００であることを検出する。そして、アドレス管理部２１７は、検出結果をデータ読み書き部２１６に出力する。
【００４８】
データ読み書き部２１６は、アドレス管理部２１７からの検出結果に基づいて、図７（ａ）の状態において、物理ブロックアドレスが０ｘ００１０である通常アクセスブロックに、有効データであるデータＡ〜データＥが、存在することを検出する。なお、物理ブロックの各ページのステータス（有効／無効／空き（消去済み））の情報は、各ブロックのページの冗長部に保持されるものであってもよいし、各ブロックの所定の領域で管理されるものであってもよいし、また、不揮発性メモリ２２の所定の物理ブロックを管理用ブロックとして、当該所定の物理ブロックで管理されるものであってもよい。
つまり、図７（ａ）の状態において、データ書き込み部２１６は、物理ブロックアドレスが０ｘ００１０の通常アクセスブロックのページ０〜ページ４に、有効データであるデータＡ〜データＥが書き込まれており、物理ブロックアドレスが０ｘ０５００のテンポラリブロックは、消去済みブロック（空きブロック）であることを把握する。
（図７（ｂ）の状態）：
次に、データ読み書き部２１６は、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ０および１のデータＡおよびＢを、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ０および１にコピーする。そして、データ読み書き部２１６は、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ０および１のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ０および１のステータスを「空き」から「有効」に変更する（ステップ１）。
【００４９】
次に、データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ２にデータＦを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ２のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ２のステータスを「空き」から「有効」に変更する（ステップ２）。
この段階で、データＣがデータＦに書き換えられたことになる。
（図７（ｃ）の状態）：
次に、データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ３にデータＧを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ３のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ３のステータスを「空き」から「有効」に変更する（ステップ３）。
【００５０】
この段階で、データＤがデータＧに書き換えられたことになる。
以上のように、データＣをデータＦに書き換え、さらに、データＤをデータＧに書き換える場合、図６で説明した場合とは異なり、物理ブロックの消去処理が発生しない。
つまり、不揮発性記憶システム１００では、テンポラリブロックを用いることで、巻き込み退避処理（集約処理）の発生を抑えることができる。
図８を用いて、図７（ｃ）の状態から、さらに、データＥをデータＨに書き換える場合について、説明する。
（図８（ａ）の状態）：
データ読み書き部２１６は、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ４にデータＨを書き込み、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ４のステータスを「有効」から「無効」に変更し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ４のステータスを「空き」から「有効」に変更する（ステップ４）。
【００５１】
この段階で、通常アクセスブロックおよびテンポラリブロックに空きページがないので、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）に対して消去処理が実行される。そして、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）が通常アクセスブロックに変更される。
（図８（ｂ）の状態）：
データ読み書き部２１６は、空きブロック（図８（ｂ）の場合では、物理ブロックアドレスが０ｘ０６００の物理ブロック）を、新たなテンポラリブロックとして設定する。
アドレス管理部２１７は、図８（ｂ）のように変更された通常アクセスブロックおよびテンポラリブロックの関係を、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルに反映させる。
【００５２】
以上により、不揮発性記憶システム１００では、物理ブロックの消去処理が発生した後も、テンポラリブロックを確保することができる。
不揮発性記憶システム１００において、シングルｃｈ記録をする場合、上記で説明したデータ書き込み処理が実行される。これにより、不揮発性記憶システム１００では、シングルｃｈ記録をする場合、テンポラリ領域を必要最小限にとどめ、通常アクセス領域を最大限確保することができる。
一方、不揮発性記憶システム１００において、マルチｃｈ記録をする場合、上記で説明した処理がｃｈ数分実行される。つまり、不揮発性記憶システム１００において、Ｋｃｈ分の記録処理を行う場合、Ｋ個分のテンポラリブロックが確保され、上記で説明した処理が実行される。このため、不揮発性記憶システム１００では、マルチｃｈ記録を行う場合であっても、巻き込み退避処理（集約処理）の発生を抑制し、書き込み処理速度の低下を抑えることができる。したがって、不揮発性記憶システム１００では、例えば、最低記録速度保証を容易にすることができるというメリットがある。
【００５３】
つまり、不揮発性記憶システム１００では、シングルｃｈ記録を行う場合と、マルチｃｈ記録を行う場合とで、テンポラリ領域２３と通常アクセス領域とを変更し、処理速度（特にデータ書き込み処理の処理速度）とメモリ使用可能容量とを最適化することができる。
なお、本実施形態では、不揮発性記憶システム１００において、シングルｃｈ記録およびマルチｃｈ記録を行う場合を例に、ストレージ・アーキテクチャを変更する場合について説明したが、上記に限定されることはなく、例えば、不揮発性記憶システム１００において採用されるアプリケーションに応じて、不揮発性記憶システム１００のストレージ・アーキテクチャを変更するようにしてもよい。
つまり、不揮発性記憶システム１００では、用途を変更した場合、当該変更した用途に応じて、ストレージ・アーキテクチャ、すなわち、テンポラリ領域２３および通常アクセス領域２４の設定を柔軟に変更することができるため、不揮発性記憶システム１００では、用途に応じた最適化を容易に実現することができる。
【００５４】
なお、不揮発性記憶システム１００において、テンポラリブロックを使用して書き込まれたデータの読み出し処理は、以下のように行う。
すなわち、アクセス装置１のＲ／Ｗ制御部は、リードコマンドを生成し、バスインターフェース部１４を介して、アクセス装置１から不揮発性記憶装置２にリードコマンドを送信する。
データ読み書き部２１６は、送信されたリードコマンドから、読み取り対象のデータの論理アドレスを抽出する。
アドレス管理部２１７は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルにより、当該論理アドレスのデータ（有効データ）が存在するテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスを検出し、データ読み書き部２１６に出力する。
【００５５】
データ読み書き部２１６は、アドレス管理部２１７により検出されたテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスに基づいて、有効データがある物理アドレスを確定し、確定した物理アドレスからデータを読み出す。
例えば、図７（ｂ）の状態において、論理アドレス０ｘ００Ａ２のデータを読み出す場合、データ読み書き部２１６は、論理アドレス／物理アドレス変換テーブルおよび通常アクセスブロック／テンポラリブロック管理テーブルにより、論理アドレス０ｘ００Ａ２のデータが通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）またはテンポラリブロック（物理ブロックアドレス：０ｘ０５００）のいずれかにあると判断する。さらに、データ読み書き部２１６は、ページのステータスを確認し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２のデータが「有効」であり、通常アクセスブロック（物理ブロックアドレス：０ｘ００１０）のページ番号２のデータが「無効」であることを検出する。そして、データ読み書き部２１６は、読み出すべきデータがテンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２であると判断し、テンポラリブロック（物理ブロックアドレス：０ｘ０５００）のページ番号２のデータ（データＦ）を読み出す。
【００５６】
［他の実施形態］
なお、上記実施形態において、フォーマット部１２により生成されるメモリ領域設定コマンドは、テンポラリ領域２３のテンポラリブロック数Ｎ＿ｔｍｐを含むものであるとして、説明したが、これに限定されることはなく、例えば、以下のようなものであってもよい。
すなわち、図９（ａ）、（ｂ）に示すように、マルチｃｈ記録であることを示すマルチｃｈフラグを設け、当該マルチｃｈフラグが「０」の場合、シングルｃｈ記録を行うことを示し、当該マルチｃｈフラグが「１」の場合、マルチｃｈ記録を行うことを示すようにする。
そして、シングルｃｈ記録を行う場合、図９（ａ）に示すように、最小使用帯域を示す情報をマルチｃｈフラグの後に続ける。
【００５７】
マルチｃｈ記録を行う場合、図９（ｂ）に示すように、マルチｃｈフラグの後に、ｃｈ数Ｎを示す領域を設け、さらに、その後に、１ｃｈの最小使用帯域、２ｃｈの最小使用帯域、・・・、Ｎｃｈの最小使用帯域と、Ｎｃｈ分の最小使用帯域を示す領域を設ける。
不揮発性記憶装置２は、このようなメモリ領域設定コマンドを受信し、シングルｃｈ記録の場合は、メモリ領域設定コマンドにより指示された最小使用帯域（例えば、ＳＤＴＶの１ｃｈ分のデータを記録する場合、最小使用帯域を４［Ｍｂｐｓ］として指定し、ＨＤＴＶの１ｃｈ分のデータを記録する場合、最小使用帯域を１０［Ｍｂｐｓ］として指定する）を実現できるように、不揮発性メモリ２２のテンポラリ領域２３および通常アクセス領域２４の設定を行う。
一方、マルチｃｈ記録を行う場合、不揮発性記憶装置２は、図９（ｂ）に示す領域を含むメモリ領域設定コマンドを受信し、当該メモリ領域設定コマンドに含まれる情報に基づいて、１ｃｈ〜Ｎｃｈの各ｃｈにおいて、最小使用帯域が確保できるように、不揮発性メモリ２２のテンポラリ領域２３および通常アクセス領域２４の設定を行う。
【００５８】
なお、上記実施形態において、マルチｃｈ記録を行う場合、ｃｈごとに、１個のテンポラリブロックを設定する場合について、説明したが、これに限定されることはなく、例えば、マルチ記録ｃｈ数Ｋに対して、ｉｎｔ（Ｋ／２）個のテンポラリブロックを設定するようにしてもよい。なお、ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数を示す。
特に、不揮発性記憶システム１００において、最小使用帯域が確保できる最低限のテンポラリブロックを設定することで、通常アクセス領域を最大限に利用することができる。
また、メモリ領域設定コマンドで、クラスを指定し、指定されたクラスの条件を満たすように、不揮発性記憶システム１００の不揮発性記憶装置２において、テンポラリ領域２３および通常アクセス領域２４の設定を行うようにしてもよい。例えば、メモリ領域設定コマンドにおいて、４段階のクラスを設定するようにし、
（１）クラス１では、最小使用帯域ｘ１として指定し、
（２）クラス２では、最小使用帯域ｘ２（ｘ２＞ｘ１）として指定し、
（３）クラス３では、最小使用帯域ｘ３（ｘ３＞ｘ２）として指定し、
（４）クラス４では、最小使用帯域ｘ４（ｘ４＞ｘ３）として指定し、
メモリ領域設定コマンドにより指定された要件を満たすように、不揮発性記憶装置２がテンポラリ領域２３および通常アクセス領域２４の設定を行うようにしてもよい。
【００５９】
また、上記実施形態では、図２および図３において、テンポラリ領域の設定処理応答（レスポンス）ＲｅｓＳｅｔ（Ｓ２０２、Ｓ２０８）を、不揮発性記憶装置２からアクセス装置１に返信する場合について、説明したが、これに限定されることはなく、例えば、レスポンスの返信処理を省略するようにしてもよい。
また、上記実施形態では、メモリ領域設定コマンドと、フォーマットコマンドと、が別のコマンドである場合について、説明したが、これに限定されることはなく、たとえば、メモリ領域設定コマンドに含める情報をフォーマットコマンドに含め、フォーマットコマンドのみをアクセス装置から不揮発性記憶装置に送信するようにしてもよい。この場合、不揮発性記憶装置は、テンポラリ領域および通常アクセス領域の設定、および、通常アクセス領域に対する論理フォーマットを一括して処理し、いずれかの処理でエラーが発生した場合、エラー情報を含むレスポンスをアクセス装置に送信し、全ての処理が正常に完了した場合は、正常完了したことを示す情報を含むレスポンスをアクセス装置に送信するようにすればよい。
【００６０】
また、上記実施形態では、アクセス装置と不揮発性記憶装置とは、別個の装置であることを前提として説明したが、これに限定されることはなく、アクセス装置、不揮発性記憶装置、およびアクセス装置と不揮発性記憶装置とを接続する外部バスは、単独の装置内に実装されるものであってもよい。
また、上記実施形態で説明した不揮発性記憶システム、アクセス装置、不揮発性記憶装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００６１】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００６２】
本発明に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置は、用途に応じた最適なデータ記録を行うことができるため、不揮発性メモリ関連産業分野において、有用であり、本発明は、当該分野において実施することができる。
【符号の説明】
【００６３】
１００  不揮発性記憶システム
１  アクセス装置（アクセスモジュール）
１１  使用条件指示部
１２  フォーマット部
１３  Ｒ／Ｗ制御部
１４  バスインターフェース部
２  不揮発性記憶装置
２１  メモリコントローラ
２１１  ホストインターフェース部
２１２  使用条件取得部
２１３  使用可能容量決定部
２１４  メモリインターフェース部
２１５  使用可能容量取得部
２１６  データ読み書き部
２１７  アドレス管理部
２２  不揮発性メモリ
２３  テンポラリ領域
２３１  テンポラリブロック
２４  通常アクセス領域
２４１  通常アクセスブロック
２５１  レジスタ領域
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2011007511.tif 000012
【図２】
2011007511.tif 000013
【図３】
2011007511.tif 000014
【図４】
2011007511.tif 000015
【図５】
2011007511.tif 000016
【図６】
2011007511.tif 000017
【図７】
2011007511.tif 000018
【図８】
2011007511.tif 000019
【図９】
2011007511.tif 000020
【国際調査報告】
2011007511.tif 000021
2011007511.tif 000022
2011007511.tif 000023
2011007511.tif 000024