JPWO2011007511A1 - メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム - Google Patents

メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム Download PDF

Info

Publication number
JPWO2011007511A1
JPWO2011007511A1 JP2011501055A JP2011501055A JPWO2011007511A1 JP WO2011007511 A1 JPWO2011007511 A1 JP WO2011007511A1 JP 2011501055 A JP2011501055 A JP 2011501055A JP 2011501055 A JP2011501055 A JP 2011501055A JP WO2011007511 A1 JPWO2011007511 A1 JP WO2011007511A1
Authority
JP
Japan
Prior art keywords
data
memory
area
temporary
unit
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
JP2011501055A
Other languages
English (en)
Inventor
中西 雅浩
雅浩 中西
小笠原 敬
敬 小笠原
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
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2011007511A1 publication Critical patent/JPWO2011007511A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供する。不揮発性記憶システム(100)では、アクセス装置(1)の使用条件指示部(11)により指示された使用条件に基づいて、不揮発性メモリ(22)のテンポラリ領域(23)および通常アクセス領域が設定される。このため、不揮発性記憶システム(100)では、用途に応じて使用条件を変えることで、不揮発性メモリ(22)に確保されるテンポラリ領域(23)および通常アクセス領域(24)を変えることができる、すなわち、この不揮発性記憶システム(100)では、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。

Description

本発明は、不揮発性メモリに対して、用途に応じた最適なデータ記録を行うことができるメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムに関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にFlashROM等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、FlashROM等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
NAND型フラッシュメモリは、記憶単位であるメモリセルアレイへのデータの書き込みや消去に比較的長い時間を要するため、複数のメモリセルに対して一括してデータを消去したり書き込んだりできる構造となっている。具体的には、NAND型フラッシュメモリは、複数の物理ブロック(消去単位)から構成され、各物理ブロックは、複数のページ(書き込み単位)を含み、データの消去は、物理ブロック単位で行われ、データの読み取り/書き込みは、ページ単位で行われる。
NAND型フラッシュメモリでは、データを書き換える場合、HDDに代表される磁気記録装置のように直接データを書き換えることができず、一旦データを消去した後、データを記録する(書き込む)必要がある。また、NAND型フラッシュメモリでは、その消去単位の大きさが数百KBから数MBであることから、小サイズのデータの書き込みを実施する場合には、同一物理ブロック(消去単位ブロック)内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。このため、NAND型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下するという問題が発生する。例えば、FATファイルシステムのディレクトリエントリやFAT等の頻繁に更新されるデータを書き換える場合、この速度低下が顕著になる。
従来、このような問題を解決する技術として、頻繁に更新されるデータ(データブロック)に対して、テンポラリブロック(ログブロック)を割り当て、当該テンポラリブロックに頻繁に更新されるデータを書き込み、「巻き込み退避処理」の発生を抑制する技術がある(例えば、特許文献1参照)。
特開2002−366423号公報
しかしながら、上記従来の技術では、テンポラリブロック数が固定、すなわち、ストレージ・アーキテクチャが固定であり、用途に応じて最適なデータ記録処理を行うことが困難である。例えば、1チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)をフラッシュメモリに記録する場合(シングルch記録の場合)と、多チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)を記録する場合(マルチch記録の場合)とでは、テンポラリブロック数(テンポラリ領域)を変化させる、すなわち、ストレージ・アーキテクチャを変更させる方が有利である。つまり、
(1)1チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)をフラッシュメモリに記録する場合、テンポラリブロック数(テンポラリ領域)を少なくし、通常アクセスブロックの数(通常アクセス領域)を多くすることで、最低データ記録速度を保証しつつ、多くの通常アクセス領域を確保することができるため、有利である。
(2)一方、多チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)を記録する場合、テンポラリブロック数(テンポラリ領域)を多くし、通常アクセスブロックの数(通常アクセス領域)を少なくすることで、通常アクセス領域の容量の削減量を最低限度に抑えつつ、多チャンネル分のデータを同時記録する際の最低データ記録速度を保証することができるため、有利である。
上記従来の技術では、ストレージ・アーキテクチャが固定であるため、例えば、1チャンネル分のデータ記録と、多チャンネル分のデータ記録と、を併用する場合、最適なデータ記録処理を行うことができない、すなわち、上記従来の技術では、用途に応じた最適なデータ記録処理を行うことができないという問題点がある。
本発明は、上記問題点に鑑み、ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供することを目的とする。
第1の発明は、不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、データの読み書き制御を行うデータ読み書き部と、フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、使用可能容量を外部に通知する使用可能容量通知部と、を備える。
これにより、フォーマット時に外部から指示された使用条件に基づいて、好適な動作(例えば、好適なデータ書き込み動作)を行うメモリコントローラを実現することができる。
第2の発明は、不揮発性メモリに接続され、外部からのアクセス指示に応じて、不揮発性メモリに対して、データの読み出し/書き込みを行うメモリコントローラであって、データ読み書き部と、使用条件取得部と、使用可能容量決定部と、使用可能容量取得部と、を備える。
データ読み書き部は、不揮発性メモリに対して、データの読み書き制御を行う。使用条件取得部は、外部からのアクセス指示から、不揮発性メモリの使用条件に関する情報を取得する。使用可能容量決定部は、使用条件取得部により取得された不揮発性メモリの使用条件に関する情報に基づき、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定したテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示する。使用可能容量取得部は、使用可能容量決定部の指示に基づいて不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域に関する情報を取得する。
そして、データ読み書き部は、不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み/読み取り処理を行う。
このメモリコントローラでは、不揮発性メモリの使用条件に基づいて不揮発性メモリのテンポラリ領域および通常アクセス領域が決定し、決定されたテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示し、そして、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み/読み取り処理を行うことができる。このため、このメモリコントローラを用いた不揮発性記憶システムでは、用途に応じて使用条件を変えることで、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を変えることができる、すなわち、このメモリコントローラを用いた不揮発性記憶システムでは、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。
第3の発明は、第1または第2の発明であって、使用可能容量決定部は、テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
第4の発明は、第3の発明であって、使用可能容量決定部は、1chのデータからなるシングルchデータを不揮発性メモリに記録する場合、テンポラリブロック数を「1」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、Nch(Nは自然数)のデータからなるマルチchデータを不揮発性メモリに記録する場合、テンポラリブロック数を「N」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
これにより、記録するch数と同数のテンポラリブロックが確保されるので、巻き込み退避処理(集約処理)の発生頻度を抑えることができ、データ書き込み速度の低下を効果的に抑制することができる。
第5の発明は、メモリ領域が可変なテンポラリ領域とメモリ領域が可変な通常アクセス領域とを含む不揮発性メモリと、第1から第4のいずれかの発明であるメモリコントローラと、を備える不揮発性記憶装置である。
不揮発性メモリのテンポラリ領域のメモリ領域および/または通常アクセス領域のメモリ領域は、メモリコントローラからの指示により、決定される。
なお、「不揮発性記憶装置」は、不揮発性記憶モジュールを含む概念である。
第6の発明は、第5の発明である不揮発性記憶装置と接続して、不揮発性記憶装置をフォーマットすると共に、不揮発性記憶装置にデータを書き込み、不揮発性記憶装置からデータを読み出すアクセス装置であって、使用条件指示部と、フォーマット部と、を備える。
使用条件指示部は、不揮発性記憶装置に対して、不揮発性記憶装置に使用条件を指示する。フォーマット部は、使用条件指示部の使用条件の指示に対するレスポンスであって、不揮発性記憶装置が使用条件に基づいて確定させた不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、不揮発性記憶装置に対して、フォーマットを行うように指示する。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第7の発明は、第6の発明であって、使用条件指示部は、不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、使用条件の指示を行い、メモリ使用可能容量は、不揮発性記憶装置がデータの読み取り/書き込み処理に使用できる全メモリ領域からテンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した通常アクセス領域のメモリ容量である。
第8の発明は、第5の発明である不揮発性記憶装置と、第6または第7の発明であるアクセス装置と、を備える不揮発性記憶システムである。
本発明によれば、アクセス装置からのデータ書き込みを好適なアクセス速度で行うメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを実現することができる。
第1実施形態に係る不揮発性記憶システム100の概略構成図 シングルch記録の場合のアクセス装置1および不揮発性記憶装置2の動作シーケンス図 マルチch記録の場合のアクセス装置1および不揮発性記憶装置2の動作シーケンス図 シングルch記録の場合の論理アドレス/物理アドレス変換テーブルの一例を示す図 マルチch記録の場合の通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す図 巻き込み退避処理(集約処理)を説明するための図 不揮発性記憶システム100でのデータ書き込み処理を説明するための図 不揮発性記憶システム100でのデータ書き込み処理を説明するための図 メモリ領域設定コマンドの一部の一例を示す図
以下、図面を参照しながら本発明の実施形態について説明する。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1に、本実施形態に係る不揮発性記憶システム100の概略構成図を示す。
図1に示すように、不揮発性記憶システム100は、アクセス装置(アクセスモジュール)1と、不揮発性記憶装置(不揮発性記憶モジュール)2と、を備え、アクセス装置1と不揮発性記憶装置2とは、外部バスB1により接続されており、外部バスB1を介して、双方向にデータ通信を行うことができる。
(1.1.1:アクセス装置の構成)
図1に示すように、アクセス装置1は、使用条件指示部11と、フォーマット部12と、R/W制御部13と、バスインターフェース部14と、を備える。
使用条件指示部11は、例えば、ユーザからの入力情報に基づいて使用条件を設定する。具体的には、使用条件指示部11は、不揮発性記憶装置2のテンポラリ領域23に確保するテンポラリブロック数N_tmpを使用条件として設定する。そして、使用条件指示部11は、設定した使用条件をフォーマット部12に出力する。
フォーマット部12は、使用条件指示部11により設定された使用条件に基づいて、不揮発性記憶装置2に対して発行するメモリ領域設定コマンドを生成する。フォーマット部12は、生成したメモリ領域設定コマンドをバスインターフェース部14に出力し、所定のタイミングで、生成したメモリ領域設定コマンドがバスインターフェース部14を介して不揮発性記憶装置2に送信されるように制御する。
メモリ領域設定コマンドは、例えば、テンポラリブロック数N_tmpを含むものであり、不揮発性記憶装置2に対して、メモリ領域設定コマンドにより指示されたメモリ領域確保(テンポラリ領域23および通常アクセス領域24の領域確保)を行うためのものである。
また、フォーマット部12は、メモリ領域設定コマンドにより設定した不揮発性記憶装置2の不揮発性メモリ22の通常アクセス領域に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に対して発行する。
R/W制御部13は、不揮発性記憶装置2の不揮発性メモリ22に記録されたデータを所定の領域から読み出すためのリードコマンド、および、所定のデータを不揮発性記憶装置2の不揮発性メモリ22の所定の領域に書き込むためのライトコマンドを生成する。R/W制御部13は、生成したコマンドをバスインターフェース部14に出力し、所定のタイミングで、生成したコマンドがバスインターフェース部14を介して不揮発性記憶装置2に送信されるように制御する。
バスインターフェース部14は、不揮発性記憶装置2のホストインターフェース部211と外部バスB1により接続されており、アクセス装置1と不揮発性記憶装置2との間の通信インターフェース機能を実現させる。また、バスインターフェース部14は、フォーマット部12およびR/W制御部13と接続されている。バスインターフェース部14は、フォーマット部12による制御に従い、フォーマット部12により生成されるメモリ領域設定コマンドやフォーマットコマンドを、外部バスB1を介して、不揮発性記憶装置2に送信する。また、バスインターフェース部14は、R/W制御部13による制御に従い、R/W制御部13により生成されたコマンドを、外部バスB1を介して、不揮発性記憶装置2に送信する。
(1.1.2:不揮発性記憶装置の構成)
図1に示すように、不揮発性記憶装置2は、メモリコントローラ21と、不揮発性メモリ22と、を備え、メモリコントローラ21と不揮発性メモリ22とは、メモリバスB2で接続されている。
メモリコントローラ21は、図1に示すように、ホストインターフェース部211と、使用条件取得部212と、使用可能容量決定部213と、メモリインターフェース部214と、使用可能容量取得部215と、データ読み書き部216と、アドレス管理部217と、を備える。
ホストインターフェース部211は、アクセス装置1のバスインターフェース部14と外部バスB1により接続されており、アクセス装置1と不揮発性記憶装置2との間の通信インターフェース機能を実現させる。ホストインターフェース部211は、アクセス装置1から送信されるメモリ領域設定コマンドを、外部バスB1を介して受信し、受信したデータ(コマンド)を使用条件取得部212に出力する。また、ホストインターフェース部211は、アクセス装置1から送信されるフォーマットコマンド、リードコマンドやライトコマンドを、外部バスB1を介して受信し、受信したデータ(コマンド)をデータ読み書き部216に出力する。
使用条件取得部212は、ホストインターフェース部211により受信されたメモリ領域設定コマンドのデータから使用条件に関する情報を抽出する。「使用条件に関する情報」は、例えば、テンポラリブロック数N_tmpである。そして、使用条件取得部212は、抽出した使用条件に関する情報を使用可能容量決定部213に出力する
使用可能容量決定部213は、使用条件取得部212により抽出された使用条件に関する情報に基づいて、不揮発性メモリ22のテンポラリ領域23の容量および通常アクセス領域24の容量を決めるためのパラメータを決定する。例えば、「使用条件に関する情報」がテンポラリブロック数N_tmpである場合、使用可能容量決定部213は、不揮発性メモリの全容量およびテンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。そして、使用可能容量決定部213は、決定したテンポラリブロック数N_tmpおよび通常アクセスブロック数N_normalを、メモリインターフェース部214を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
メモリインターフェース部214は、不揮発性メモリ22とメモリバスB2により接続されており、メモリコントローラ21と不揮発性メモリ22との間の通信インターフェース機能を実現させる。メモリインターフェース部214は、使用可能容量決定部213、使用可能容量取得部215およびデータ読み書き部216による制御に従い、不揮発性メモリの所定の領域から所定のデータの読み出し/書き込みを行う。
使用可能容量取得部215は、使用可能容量決定部213により指示されたテンポラリ領域23および通常アクセス領域24が正常に確保されたか否かの情報を、メモリインターフェース部214を介して不揮発性メモリ22から受け取り、使用可能容量決定部213の指示通り、正常に、テンポラリ領域23および通常アクセス領域24が確保されているか否かを確認する。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報(レスポンス)を、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報(レスポンス)を、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
データ読み書き部216は、ホストインターフェース部211、メモリインターフェース部214およびアドレス管理部217と接続されている。データ読み書き部216は、主に、以下の(1)〜(4)の処理を行う。
(1)データの書き込み処理
アクセス装置1から送信されたライトコマンドに基づいて、当該ライトコマンドにより指定されている論理アドレスに対応する不揮発性メモリ1の物理アドレスにライトコマンドで指定されたデータを書き込む。
(2)データの読み出し処理
アクセス装置1から送信されたリードコマンドに基づいて、当該リードコマンドにより指定されている論理アドレスに対応する不揮発性メモリ1の物理アドレスからデータを読み出す。
(3)アドレス変換処理
アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、上記(1)、(2)の処理で使用される論理アドレスを物理アドレスに変換する。
(4)不揮発性メモリ22の通常アクセス領域24に対する論理フォーマット
アクセス装置1から送信されたフォーマットコマンドに基づいて、不揮発性メモリ22に確保されている通常アクセス領域に対して論理フォーマットを行う。これにより、不揮発性メモリ22に記憶されるデータをファイルシステム(例えば、FATファイルシステム)により管理することが可能になる。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルを記憶・保持しており、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、データ読み書き部216から指定される論理アドレスを、当該論理アドレスに相当する物理アドレスに変換し、変換した物理アドレスをデータ読み書き部216に出力する。
<1.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システム100の動作について、以下説明する。
映像データ、音声データ、テキストデータから構成される1ch分のデータを不揮発性記憶システム100で記録する場合(シングルch記録の場合)、および複数チャンネル分のデータを不揮発性記憶システム100で記録する場合(マルチch記録の場合)を例に、以下、説明する。
(1.2.1:シングルch記録の場合)
図2に、不揮発性記憶システム100において、シングルch記録を行う場合のシーケンス図を示す。図2のシーケンス図を用いて、不揮発性記憶システム100におけるシングルch記録動作について、説明する。
(S101、102):
図2に示すように、アクセス装置1は、シングルch記録準備処理を開始する。具体的には、アクセス装置1の使用条件指示部11により指示された指示条件に基づいて、フォーマット部12がテンポラリ領域23の物理ブロック数であるテンポラリブロック数N_tmpを決定し、決定したテンポラリブロック数N_tmpを含むメモリ領域設定コマンドを生成する。なお、ここでは、シングルchの記録を行うので、テンポラリブロック数N_tmpは、N_tmp=1に設定される。
そして、フォーマット部12は、バスインターフェース部14および外部バスB1を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置2に送信する(S102)。
(S201):
不揮発性記憶装置2は、アクセス装置1から送信されたメモリ領域設定コマンドを、ホストインターフェース部211により受信し、使用条件取得部212により、メモリ領域設定コマンドに含まれるテンポラリ領域23のテンポラリブロック数N_tmp(=1)を抽出し、使用可能容量決定部213に出力する。
使用可能容量決定部213は、テンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。具体的には、不揮発性メモリ22に含まれるデータ領域として使用することができる物理ブロック数の総数をAとすると、シングルch記録を行う場合、
N_tmp=1
N_normal=A−1
とする。
そして、使用可能容量決定部213は、メモリインターフェース部214およびメモリバスB2を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
(S202):
使用可能容量取得部215は、テンポラリ領域23において、N_tmp(=1)個の物理ブロック確保(テンポラリブロックの確保)、通常アクセス領域24において、N_normal(=A−1)個の物理ブロックの確保(通常アクセスブロックの確保)が正常にできたか否かの情報を不揮発性メモリ22から受け取る。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(S103〜S105):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し(S103)、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う(S104)。
一方、アクセス装置1のフォーマット部12は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域24に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に送信する(S105)。
(S203、S204):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたフォーマットコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、ホストインターフェース部211を介して、不揮発性メモリ22の通常アクセス領域24に対して論理フォーマットを行う(S203)。これにより、不揮発性メモリ22に記憶されるデータをファイルシステム(例えば、FATファイルシステム)により管理することが可能になる。
そして、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了した場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S204)。
一方、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了しなかった場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S204)。
(S106〜S108):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S106)、通常アクセス領域24に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う(S107)。
一方、アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S106)、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、シングルch記録処理を開始する(S108)。
(S109):
アクセス装置1のR/W制御部13は、シングルchのデータを不揮発性メモリ22に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置2に送信する。
(S205、S206):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたライトコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、受信したライトコマンドから、不揮発性メモリ22に書き込むデータおよび書き込み領域を示す論理アドレスLAを抽出する。
データ読み書き部216は、アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、論理アドレスLAを物理アドレスPAに変換する。
そして、データ読み書き部216は、ライトコマンドのより送信された書き込みデータを、メモリインターフェース部214およびメモリバスB2を介して、物理アドレスPAに相当する不揮発性メモリ22の領域に書き込む(S205)。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置2は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスResWriteを生成し、アクセス装置1に送信する(S206)。なお、このS206の処理は、省略してもよい。
(SRec1):
不揮発性記憶システム100では、記録対象のデータが不揮発性記憶装置2の不揮発性メモリ22に記録が完了するまで、S109、S205、S206の処理が繰り返される。
(S110):
そして、アクセス装置1は、記録対象としたデータの全てが、不揮発性記憶装置2の不揮発性メモリ22に記録されたことを確認したら、シングルch記録処理を終了させる。
以上により、不揮発性記憶システム100において、シングルch記録処理が実現される。
(1.2.2:マルチch記録の場合)
次に、不揮発性記憶システム100におけるマルチch記録動作について、説明する。
図3に、不揮発性記憶システム100において、マルチch記録を行う場合のシーケンス図を示す。図3のシーケンス図を用いて、不揮発性記憶システム100におけるマルチch記録動作について、説明する。
(S111、S112):
図3に示すように、アクセス装置1は、マルチch記録準備処理を開始する。具体的には、アクセス装置1の使用条件指示部11により指示された指示条件に基づいて、フォーマット部12がテンポラリ領域23の物理ブロック数であるテンポラリブロック数N_tmpを決定し、決定したテンポラリブロック数N_tmpを含むメモリ領域設定コマンドを生成する。なお、ここでは、マルチchの記録を行うので、テンポラリブロック数N_tmpは、N_tmp=K(K>1である整数)に設定される。
そして、フォーマット部12は、バスインターフェース部14および外部バスB1を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置2に送信する(S112)。
(S207):
不揮発性記憶装置2は、アクセス装置1から送信されたメモリ領域設定コマンドを、ホストインターフェース部211により受信し、使用条件取得部212により、メモリ領域設定コマンドに含まれるテンポラリ領域23のテンポラリブロック数N_tmp(=K)を抽出し、使用可能容量決定部213に出力する。
使用可能容量決定部213は、テンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。具体的には、不揮発性メモリ22に含まれるデータ領域として使用することができる物理ブロック数の総数をAとすると、図2の場合のマルチch記録を行う場合、
N_tmp=K
N_normal=A−K
とする。
そして、使用可能容量決定部213は、メモリインターフェース部214およびメモリバスB2を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
これにより、不揮発性記憶装置2において、ch数分(K個)のテンポラリブロックが確保されることになる。
(S208):
使用可能容量取得部215は、テンポラリ領域23において、N_tmp(=K)個の物理ブロック確保(テンポラリブロックの確保)、通常アクセス領域24において、N_normal(=A−K)個の物理ブロックの確保(通常アクセスブロックの確保)が正常にできたか否かの情報を不揮発性メモリ22から受け取る。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(S113〜S115):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し(S113)、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う(S114)。
一方、アクセス装置1のフォーマット部12は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域24に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に送信する(S115)。
(S209、S210):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたフォーマットコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、ホストインターフェース部211を介して、不揮発性メモリ22の通常アクセス領域24に対して論理フォーマットを行う(S209)。
そして、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了した場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S210)。
一方、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了しなかった場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S210)。
(S116〜S118):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S116)、通常アクセス領域24に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う(S117)。
一方、アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S116)、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、マルチch記録処理を開始する(S118)。
(S119):
アクセス装置1のR/W制御部13は、マルチchのデータのうちの1つのchデータである1chのデータを不揮発性メモリ22に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置2に送信する。
(S211、S212):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたライトコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、受信したライトコマンドから、不揮発性メモリ22に書き込むデータおよび書き込み領域を示す論理アドレスLAを抽出する。
データ読み書き部216は、アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、論理アドレスLAを物理アドレスPAに変換する。
そして、データ読み書き部216は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部214およびメモリバスB2を介して、物理アドレスPAに相当する不揮発性メモリ22の領域に書き込む(S211)。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置2は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスResWrite1を生成し、アクセス装置1に送信する(S212)。なお、このS212の処理は、省略してもよい。
(S120、S213、S214):
記録対象であるch数分(ここでは、K個のch分)、各chに対して、上記S113、S207およびS208と同様の処理を行う。
(SRec2):
不揮発性記憶システム100では、記録対象のマルチchのデータが不揮発性記憶装置2の不揮発性メモリ22に記録が完了するまで、S119〜S214の処理(図3中にSRec2で示した処理)が繰り返される。なお、不揮発性記憶装置2では、記録するch数分(K個)のテンポラリブロックが確保されているので、各chデータの記録において、それぞれ、1個のテンポラリブロックを用いて、データ記録処理が実行されるため、不揮発性記憶システム100では、巻き込み退避処理(集約処理)の発生頻度を抑えることができる。その結果、不揮発性記憶システム100では、マルチch記録を行う場合においても、最低速度保証を容易に行うことができる。
(S121):
そして、アクセス装置1は、記録対象とした全てのデータ(マルチchのデータ)が、不揮発性記憶装置2の不揮発性メモリ22に記録されたことを確認したら、マルチch記録処理を終了させる。
以上により、不揮発性記憶システム100において、マルチch記録処理が実現される。
(1.2.3:アドレス管理部)
次に、アドレス管理部217により管理される論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルについて、説明する。
(1.2.3.1:論理アドレス/物理アドレス変換テーブル)
アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルは、論理ブロックアドレスと、その論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係を保持しているテーブルである。
図4(a)に、不揮発性記憶システム100において、シングルch記録する場合の論理アドレス/物理アドレス変換テーブルの一部の一例を示す。また、図5(a)に、不揮発性記憶システム100において、マルチch記録する場合の論理アドレス/物理アドレス変換テーブルの一部の一例を示す。
なお、アクセス装置1は、データを論理アドレス空間により管理しており、図4または図5に示す論理ブロックアドレスは、アクセス装置1が管理する論理アドレス空間内で定義される論理ブロックの論理アドレスである。また、不揮発性記憶装置2は、データを物理アドレス空間により管理しており、図4または図5に示す物理ブロックアドレスは、不揮発性記憶装置2が管理する物理アドレス空間内で定義される物理ブロックの物理アドレスである。
したがって、アクセス装置1が管理しているアドレス空間と不揮発性記憶装置2が管理しているアドレス空間とは異なるが、不揮発性記憶装置2のアドレス管理部217によりアドレス変換を行うことで、データ管理におけるアドレス変換のランダム性を確保することができる。つまり、不揮発性記憶装置2でアドレス変換を行うことで、アクセス装置1が管理する論理ブロックを、不揮発性記憶装置2が管理する任意の物理ブロックに割り当てることができる。図4の場合では、論理ブロックアドレス0x00A0の論理ブロックが、常に、物理ブロックアドレス0x0010の物理ブロックに割り当てられるわけではなく、論理ブロックアドレス0x00A0の論理ブロックを、物理ブロックアドレス0x0010以外の物理ブロックに割り当てることも可能である。
したがって、アクセス装置1は、不揮発性メモリ22の物理アドレスを意識することなく、論理アドレスによるデータ管理を行うことができる。
また、論理アドレス/物理アドレス変換テーブルは、図4(a)、図5(a)の左欄のch番号を示す情報を保持しなくてもよい。
以下では、説明便宜のため、物理アドレスおよび論理アドレスは、2バイト(16ビット)のアドレスとする。物理アドレスの上位12ビットが物理ブロックアドレスを示し、物理アドレスの下位4ビットがページ番号を示すものとする。また、論理アドレスの上位12ビットが論理ブロックアドレスを示し、論理アドレスの下位4ビットがページ番号を示すものとする。そして、論理ブロックアドレスおよび物理ブロックアドレスは、下位4ビットを「0」にした16進数による表記を行うものとする。例えば、図6(a)の左側の物理ブロックは、物理アドレス0x0010〜0x0014(5ページからなる物理ブロック)について、その物理ブロックアドレスを「0x0010」と表記するものとする。
また、本実施形態においては、論理ブロック内のページ番号と、物理ブロック内のページ番号とが、一致するものとする。したがって、図4(a)に示す論理アドレス/物理アドレス変換テーブルにより、例えば、論理アドレス0x00A2は、物理アドレス0x0012に変換されることになる(論理ブロック内および物理ブロック内でのページ番号は一致する)。なお、他のアドレス体系により論理アドレス、物理アドレス、論理ブロックアドレス、物理ブロックアドレスを表現するようにしてもよいことは、言うまでもない。また、ブロックとページの関係(例えば、1つの物理ブロック内に含まれるページ数)も上記に限定されないのは、言うまでもない。
(1.2.3.2:通常アクセスブロック/テンポラリブロック管理テーブル)
アドレス管理部217により管理されている通常アクセスブロック/テンポラリブロック管理テーブルは、通常アクセスブロックアドレスと、その通常アクセスブロックに対応するテンポラリブロックアドレスとの対応関係を保持しているテーブルである。
図4(b)に、不揮発性記憶システム100において、シングルch記録する場合の通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す。また、図5(b)に、不揮発性記憶システム100において、マルチch記録する場合(記録ch数K=4の場合)の通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す。なお、通常アクセスブロックは、不揮発性メモリ22の通常アクセス領域24に確保された物理ブロックであるので、図4または図5に示すように、論理アドレス/物理アドレス変換テーブルの物理ブロックアドレスは、通常アクセスブロックの物理ブロックアドレスと一致する。
アドレス管理部217は、記録するch数分の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。つまり、不揮発性記憶システム100において、シングルch記録を行う場合、図4(b)に示すように、1ch分(1個分)の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。一方、不揮発性記憶システム100において、マルチch記録を行う場合、図5(b)に示すように、Kch分(図5(b)の場合は、K=4)の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。
(1.2.4:データ書き込み処理)
次に、不揮発性記憶システム100におけるデータ書き込み処理について、説明する。
まず、巻き込み退避処理(集約処理)について、図6を用いて説明する。
(1.2.4.1:巻き込み退避処理(集約処理))
図6は、巻き込み退避処理(集約処理)を説明するための図である。
図6に示す場合において、有効データであるデータA〜データEを保持している物理ブロック0x0010にて、データCをデータFに更新し、さらに、データDをデータGに更新する場合について、説明する。
不揮発性メモリでは、ページ単位での更新を行うことができないので、物理ブロック単位で消去し、有効データをコピーし、さらに、更新データを書き込む処理を行う必要がある。具体的には、図6(a)に示すように、まず、全てのページのデータが消去された消去済みブロック(空きブロック)0x03F0を用意する。
そして、図6(b)に示すように、物理ブロック0x0010のデータAおよびデータBを、物理ブロック0x03F0の0ページおよび1ページにコピーする(ステップ1)。なお、図6の丸で囲んだ番号を「ステップX」(Xは整数)と表記することとする(以下、同様)。
次に、物理ブロック0x03F0の2ページにデータFを書き込み(ステップ2)、さらに、物理ブロック0x0010の3ページおよび4ページのデータDおよびデータEを、それぞれ、物理ブロック0x03F0の3ページおよび4ページにコピーする(ステップ3)。
これにより、有効データは、全て、物理ブロック0x0010から0x03F0に移動されたので、物理ブロック0x0010を消去する(ステップ4)。
さらに、データDをデータGに更新するために、新たな消去済みブロック(空きブロック)0x04A0を用意する。
そして、物理ブロック0x03F0の0ページから2ページまでのデータであるデータA、データBおよびデータFを、それぞれ、物理ブロック0x04A0の0ページから2ページにコピーする(ステップ5)。
次に、物理ブロック0x04A0の3ページにデータGを書き込む(ステップ6)。
そして、物理ブロック0x03F0の4ページのデータEを物理ブロック0x04A0の4ページにコピーする(ステップ7)。
これにより、有効データは、全て、物理ブロック0x03F0から0x04A0に移動されたので、物理ブロック0x03F0を消去する(ステップ8)。
このように、同一物理ブロックのデータを更新する場合、巻き込み退避処理が発生する頻度が多くなりやすく(図6の場合では、2度の物理ブロックの消去処理が発生している)、物理ブロックの消去処理に時間がかかるため、不揮発性メモリへのデータ書き込み処理速度が低下する原因となる。
(1.2.4.2:不揮発性記憶システム100でのデータ書き込み処理)
次に、不揮発性記憶システム100でのデータ書き込み処理について、図7および図8を用いて、説明する。
図7は、不揮発性記憶システム100において、論理アドレスが0x00A2であるデータCをデータFに書き換え、さらに、論理アドレスが0x00A3であるデータDをデータGに書き換える場合の論理ブロック、通常アクセスブロックおよびテンポラリブロックの状態を模式的に示した図である。なお、図7に「論理ブロック」として示したブロックは、アクセス装置1がデータを管理する単位であり、アクセス装置1が管理する論理アドレス空間内で論理アドレスにより管理されるブロックである。また、図7に「通常アクセスブロック」として示したブロックは、不揮発性記憶装置2がデータを管理する単位であり、不揮発性記憶装置2が管理する物理アドレス空間内で物理アドレスにより管理されるブロックである。なお、通常アクセスブロックは、不揮発性記憶装置2の通常アクセス領域内に確保される物理ブロックである。
図7を用いて、不揮発性記憶システム100において、論理アドレスが0x00A2であるデータCをデータFに書き換え、さらに、論理アドレスが0x00A3であるデータDをデータGに書き換える場合の処理について説明する。
(図7(a)の状態):
アクセス装置1から不揮発性記憶装置2に対して、論理アドレス0x00A2のデータCをデータFに書き換えるためのライトコマンドが発行される。
データ読み書き部216は、受信したライトコマンドから書き換えデータの論理ブロックアドレス0x00A0を抽出し、アドレス管理部217に出力する。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルtb1を参照し、論理ブロックアドレスが0x00A0の論理ブロックは、物理ブロックアドレスが0x0010であることを検出する。さらに、アドレス管理部217は、通常アクセスブロック/テンポラリブロック管理テーブルtb2を参照し、物理ブロックアドレスが0x0010である通常アクセスブロックのテンポラリブロックの物理ブロックアドレスが0x0500であることを検出する。そして、アドレス管理部217は、検出結果をデータ読み書き部216に出力する。
データ読み書き部216は、アドレス管理部217からの検出結果に基づいて、図7(a)の状態において、物理ブロックアドレスが0x0010である通常アクセスブロックに、有効データであるデータA〜データEが、存在することを検出する。なお、物理ブロックの各ページのステータス(有効/無効/空き(消去済み))の情報は、各ブロックのページの冗長部に保持されるものであってもよいし、各ブロックの所定の領域で管理されるものであってもよいし、また、不揮発性メモリ22の所定の物理ブロックを管理用ブロックとして、当該所定の物理ブロックで管理されるものであってもよい。
つまり、図7(a)の状態において、データ書き込み部216は、物理ブロックアドレスが0x0010の通常アクセスブロックのページ0〜ページ4に、有効データであるデータA〜データEが書き込まれており、物理ブロックアドレスが0x0500のテンポラリブロックは、消去済みブロック(空きブロック)であることを把握する。
(図7(b)の状態):
次に、データ読み書き部216は、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ0および1のデータAおよびBを、テンポラリブロック(物理ブロックアドレス:0x0500)のページ0および1にコピーする。そして、データ読み書き部216は、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ0および1のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ0および1のステータスを「空き」から「有効」に変更する(ステップ1)。
次に、データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ2にデータFを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ2のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ2のステータスを「空き」から「有効」に変更する(ステップ2)。
この段階で、データCがデータFに書き換えられたことになる。
(図7(c)の状態):
次に、データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ3にデータGを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ3のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ3のステータスを「空き」から「有効」に変更する(ステップ3)。
この段階で、データDがデータGに書き換えられたことになる。
以上のように、データCをデータFに書き換え、さらに、データDをデータGに書き換える場合、図6で説明した場合とは異なり、物理ブロックの消去処理が発生しない。
つまり、不揮発性記憶システム100では、テンポラリブロックを用いることで、巻き込み退避処理(集約処理)の発生を抑えることができる。
図8を用いて、図7(c)の状態から、さらに、データEをデータHに書き換える場合について、説明する。
(図8(a)の状態):
データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ4にデータHを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ4のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ4のステータスを「空き」から「有効」に変更する(ステップ4)。
この段階で、通常アクセスブロックおよびテンポラリブロックに空きページがないので、通常アクセスブロック(物理ブロックアドレス:0x0010)に対して消去処理が実行される。そして、テンポラリブロック(物理ブロックアドレス:0x0500)が通常アクセスブロックに変更される。
(図8(b)の状態):
データ読み書き部216は、空きブロック(図8(b)の場合では、物理ブロックアドレスが0x0600の物理ブロック)を、新たなテンポラリブロックとして設定する。
アドレス管理部217は、図8(b)のように変更された通常アクセスブロックおよびテンポラリブロックの関係を、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに反映させる。
以上により、不揮発性記憶システム100では、物理ブロックの消去処理が発生した後も、テンポラリブロックを確保することができる。
不揮発性記憶システム100において、シングルch記録をする場合、上記で説明したデータ書き込み処理が実行される。これにより、不揮発性記憶システム100では、シングルch記録をする場合、テンポラリ領域を必要最小限にとどめ、通常アクセス領域を最大限確保することができる。
一方、不揮発性記憶システム100において、マルチch記録をする場合、上記で説明した処理がch数分実行される。つまり、不揮発性記憶システム100において、Kch分の記録処理を行う場合、K個分のテンポラリブロックが確保され、上記で説明した処理が実行される。このため、不揮発性記憶システム100では、マルチch記録を行う場合であっても、巻き込み退避処理(集約処理)の発生を抑制し、書き込み処理速度の低下を抑えることができる。したがって、不揮発性記憶システム100では、例えば、最低記録速度保証を容易にすることができるというメリットがある。
つまり、不揮発性記憶システム100では、シングルch記録を行う場合と、マルチch記録を行う場合とで、テンポラリ領域23と通常アクセス領域とを変更し、処理速度(特にデータ書き込み処理の処理速度)とメモリ使用可能容量とを最適化することができる。
なお、本実施形態では、不揮発性記憶システム100において、シングルch記録およびマルチch記録を行う場合を例に、ストレージ・アーキテクチャを変更する場合について説明したが、上記に限定されることはなく、例えば、不揮発性記憶システム100において採用されるアプリケーションに応じて、不揮発性記憶システム100のストレージ・アーキテクチャを変更するようにしてもよい。
つまり、不揮発性記憶システム100では、用途を変更した場合、当該変更した用途に応じて、ストレージ・アーキテクチャ、すなわち、テンポラリ領域23および通常アクセス領域24の設定を柔軟に変更することができるため、不揮発性記憶システム100では、用途に応じた最適化を容易に実現することができる。
なお、不揮発性記憶システム100において、テンポラリブロックを使用して書き込まれたデータの読み出し処理は、以下のように行う。
すなわち、アクセス装置1のR/W制御部は、リードコマンドを生成し、バスインターフェース部14を介して、アクセス装置1から不揮発性記憶装置2にリードコマンドを送信する。
データ読み書き部216は、送信されたリードコマンドから、読み取り対象のデータの論理アドレスを抽出する。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルにより、当該論理アドレスのデータ(有効データ)が存在するテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスを検出し、データ読み書き部216に出力する。
データ読み書き部216は、アドレス管理部217により検出されたテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスに基づいて、有効データがある物理アドレスを確定し、確定した物理アドレスからデータを読み出す。
例えば、図7(b)の状態において、論理アドレス0x00A2のデータを読み出す場合、データ読み書き部216は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルにより、論理アドレス0x00A2のデータが通常アクセスブロック(物理ブロックアドレス:0x0010)またはテンポラリブロック(物理ブロックアドレス:0x0500)のいずれかにあると判断する。さらに、データ読み書き部216は、ページのステータスを確認し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2のデータが「有効」であり、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ番号2のデータが「無効」であることを検出する。そして、データ読み書き部216は、読み出すべきデータがテンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2であると判断し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2のデータ(データF)を読み出す。
[他の実施形態]
なお、上記実施形態において、フォーマット部12により生成されるメモリ領域設定コマンドは、テンポラリ領域23のテンポラリブロック数N_tmpを含むものであるとして、説明したが、これに限定されることはなく、例えば、以下のようなものであってもよい。
すなわち、図9(a)、(b)に示すように、マルチch記録であることを示すマルチchフラグを設け、当該マルチchフラグが「0」の場合、シングルch記録を行うことを示し、当該マルチchフラグが「1」の場合、マルチch記録を行うことを示すようにする。
そして、シングルch記録を行う場合、図9(a)に示すように、最小使用帯域を示す情報をマルチchフラグの後に続ける。
マルチch記録を行う場合、図9(b)に示すように、マルチchフラグの後に、ch数Nを示す領域を設け、さらに、その後に、1chの最小使用帯域、2chの最小使用帯域、・・・、Nchの最小使用帯域と、Nch分の最小使用帯域を示す領域を設ける。
不揮発性記憶装置2は、このようなメモリ領域設定コマンドを受信し、シングルch記録の場合は、メモリ領域設定コマンドにより指示された最小使用帯域(例えば、SDTVの1ch分のデータを記録する場合、最小使用帯域を4[Mbps]として指定し、HDTVの1ch分のデータを記録する場合、最小使用帯域を10[Mbps]として指定する)を実現できるように、不揮発性メモリ22のテンポラリ領域23および通常アクセス領域24の設定を行う。
一方、マルチch記録を行う場合、不揮発性記憶装置2は、図9(b)に示す領域を含むメモリ領域設定コマンドを受信し、当該メモリ領域設定コマンドに含まれる情報に基づいて、1ch〜Nchの各chにおいて、最小使用帯域が確保できるように、不揮発性メモリ22のテンポラリ領域23および通常アクセス領域24の設定を行う。
なお、上記実施形態において、マルチch記録を行う場合、chごとに、1個のテンポラリブロックを設定する場合について、説明したが、これに限定されることはなく、例えば、マルチ記録ch数Kに対して、int(K/2)個のテンポラリブロックを設定するようにしてもよい。なお、int(X)は、Xを超えない最大の整数を示す。
特に、不揮発性記憶システム100において、最小使用帯域が確保できる最低限のテンポラリブロックを設定することで、通常アクセス領域を最大限に利用することができる。
また、メモリ領域設定コマンドで、クラスを指定し、指定されたクラスの条件を満たすように、不揮発性記憶システム100の不揮発性記憶装置2において、テンポラリ領域23および通常アクセス領域24の設定を行うようにしてもよい。例えば、メモリ領域設定コマンドにおいて、4段階のクラスを設定するようにし、
(1)クラス1では、最小使用帯域x1として指定し、
(2)クラス2では、最小使用帯域x2(x2>x1)として指定し、
(3)クラス3では、最小使用帯域x3(x3>x2)として指定し、
(4)クラス4では、最小使用帯域x4(x4>x3)として指定し、
メモリ領域設定コマンドにより指定された要件を満たすように、不揮発性記憶装置2がテンポラリ領域23および通常アクセス領域24の設定を行うようにしてもよい。
また、上記実施形態では、図2および図3において、テンポラリ領域の設定処理応答(レスポンス)ResSet(S202、S208)を、不揮発性記憶装置2からアクセス装置1に返信する場合について、説明したが、これに限定されることはなく、例えば、レスポンスの返信処理を省略するようにしてもよい。
また、上記実施形態では、メモリ領域設定コマンドと、フォーマットコマンドと、が別のコマンドである場合について、説明したが、これに限定されることはなく、たとえば、メモリ領域設定コマンドに含める情報をフォーマットコマンドに含め、フォーマットコマンドのみをアクセス装置から不揮発性記憶装置に送信するようにしてもよい。この場合、不揮発性記憶装置は、テンポラリ領域および通常アクセス領域の設定、および、通常アクセス領域に対する論理フォーマットを一括して処理し、いずれかの処理でエラーが発生した場合、エラー情報を含むレスポンスをアクセス装置に送信し、全ての処理が正常に完了した場合は、正常完了したことを示す情報を含むレスポンスをアクセス装置に送信するようにすればよい。
また、上記実施形態では、アクセス装置と不揮発性記憶装置とは、別個の装置であることを前提として説明したが、これに限定されることはなく、アクセス装置、不揮発性記憶装置、およびアクセス装置と不揮発性記憶装置とを接続する外部バスは、単独の装置内に実装されるものであってもよい。
また、上記実施形態で説明した不揮発性記憶システム、アクセス装置、不揮発性記憶装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置は、用途に応じた最適なデータ記録を行うことができるため、不揮発性メモリ関連産業分野において、有用であり、本発明は、当該分野において実施することができる。
100 不揮発性記憶システム
1 アクセス装置(アクセスモジュール)
11 使用条件指示部
12 フォーマット部
13 R/W制御部
14 バスインターフェース部
2 不揮発性記憶装置
21 メモリコントローラ
211 ホストインターフェース部
212 使用条件取得部
213 使用可能容量決定部
214 メモリインターフェース部
215 使用可能容量取得部
216 データ読み書き部
217 アドレス管理部
22 不揮発性メモリ
23 テンポラリ領域
231 テンポラリブロック
24 通常アクセス領域
241 通常アクセスブロック
251 レジスタ領域
本発明は、不揮発性メモリに対して、用途に応じた最適なデータ記録を行うことができるメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムに関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にFlashROM等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、FlashROM等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
NAND型フラッシュメモリは、記憶単位であるメモリセルアレイへのデータの書き込みや消去に比較的長い時間を要するため、複数のメモリセルに対して一括してデータを消去したり書き込んだりできる構造となっている。具体的には、NAND型フラッシュメモリは、複数の物理ブロック(消去単位)から構成され、各物理ブロックは、複数のページ(書き込み単位)を含み、データの消去は、物理ブロック単位で行われ、データの読み取り/書き込みは、ページ単位で行われる。
NAND型フラッシュメモリでは、データを書き換える場合、HDDに代表される磁気記録装置のように直接データを書き換えることができず、一旦データを消去した後、データを記録する(書き込む)必要がある。また、NAND型フラッシュメモリでは、その消去単位の大きさが数百KBから数MBであることから、小サイズのデータの書き込みを実施する場合には、同一物理ブロック(消去単位ブロック)内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。このため、NAND型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下するという問題が発生する。例えば、FATファイルシステムのディレクトリエントリやFAT等の頻繁に更新されるデータを書き換える場合、この速度低下が顕著になる。
従来、このような問題を解決する技術として、頻繁に更新されるデータ(データブロック)に対して、テンポラリブロック(ログブロック)を割り当て、当該テンポラリブロックに頻繁に更新されるデータを書き込み、「巻き込み退避処理」の発生を抑制する技術がある(例えば、特許文献1参照)。
特開2002−366423号公報
しかしながら、上記従来の技術では、テンポラリブロック数が固定、すなわち、ストレージ・アーキテクチャが固定であり、用途に応じて最適なデータ記録処理を行うことが困難である。例えば、1チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)をフラッシュメモリに記録する場合(シングルch記録の場合)と、多チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)を記録する場合(マルチch記録の場合)とでは、テンポラリブロック数(テンポラリ領域)を変化させる、すなわち、ストレージ・アーキテクチャを変更させる方が有利である。つまり、
(1)1チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)をフラッシュメモリに記録する場合、テンポラリブロック数(テンポラリ領域)を少なくし、通常アクセスブロックの数(通常アクセス領域)を多くすることで、最低データ記録速度を保証しつつ、多くの通常アクセス領域を確保することができるため、有利である。
(2)一方、多チャンネル分の映像・音声データ(テキストデータ等を含んでもよい)を記録する場合、テンポラリブロック数(テンポラリ領域)を多くし、通常アクセスブロックの数(通常アクセス領域)を少なくすることで、通常アクセス領域の容量の削減量を最低限度に抑えつつ、多チャンネル分のデータを同時記録する際の最低データ記録速度を保証することができるため、有利である。
上記従来の技術では、ストレージ・アーキテクチャが固定であるため、例えば、1チャンネル分のデータ記録と、多チャンネル分のデータ記録と、を併用する場合、最適なデータ記録処理を行うことができない、すなわち、上記従来の技術では、用途に応じた最適なデータ記録処理を行うことができないという問題点がある。
本発明は、上記問題点に鑑み、ストレージ・アーキテクチャを、多様な用途に柔軟に対応させることができるメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを提供することを目的とする。
第1の発明は、不揮発性メモリに接続可能であり、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、データの読み書き制御を行うデータ読み書き部と、フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、使用可能容量を外部に通知する使用可能容量通知部と、を備える。
これにより、フォーマット時に外部から指示された使用条件に基づいて、好適な動作(例えば、好適なデータ書き込み動作)を行うメモリコントローラを実現することができる。
第2の発明は、不揮発性メモリに接続可能であり、外部からのアクセス指示に応じて、不揮発性メモリに対して、データの読み出し/書き込みを行うメモリコントローラであって、データ読み書き部と、使用条件取得部と、使用可能容量決定部と、使用可能容量取得部と、を備える。
データ読み書き部は、不揮発性メモリに対して、データの読み書き制御を行う。使用条件取得部は、外部からのアクセス指示から、不揮発性メモリの使用条件に関する情報を取得する。使用可能容量決定部は、使用条件取得部により取得された不揮発性メモリの使用条件に関する情報に基づき、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定したテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示する。使用可能容量取得部は、使用可能容量決定部の指示に基づいて不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域に関する情報を取得する。
そして、データ読み書き部は、不揮発性メモリで確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み/読み取り処理を行う。
このメモリコントローラでは、不揮発性メモリの使用条件に基づいて不揮発性メモリのテンポラリ領域および通常アクセス領域が決定し、決定されたテンポラリ領域および通常アクセス領域を確保するように、不揮発性メモリに指示し、そして、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を用いて、データの書き込み/読み取り処理を行うことができる。このため、このメモリコントローラを用いた不揮発性記憶システムでは、用途に応じて使用条件を変えることで、不揮発性メモリに確保されたテンポラリ領域および通常アクセス領域を変えることができる、すなわち、このメモリコントローラを用いた不揮発性記憶システムでは、ストレージ・アーキテクチャを、多様な用途に対して柔軟に対応させることができる。
第3の発明は、第1または第2の発明であって、使用可能容量決定部は、テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
第4の発明は、第3の発明であって、使用可能容量決定部は、1chのデータからなるシングルchデータを不揮発性メモリに記録する場合、テンポラリブロック数を「1」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、Nch(Nは自然数)のデータからなるマルチchデータを不揮発性メモリに記録する場合、テンポラリブロック数を「N」に決定することで、不揮発性メモリのテンポラリ領域および通常アクセス領域を決定する。
これにより、記録するch数と同数のテンポラリブロックが確保されるので、巻き込み退避処理(集約処理)の発生頻度を抑えることができ、データ書き込み速度の低下を効果的に抑制することができる。
第5の発明は、メモリ領域が可変なテンポラリ領域とメモリ領域が可変な通常アクセス領域とを含む不揮発性メモリと、第1から第4のいずれかの発明であるメモリコントローラと、を備える不揮発性記憶装置である。
不揮発性メモリのテンポラリ領域のメモリ領域および/または通常アクセス領域のメモリ領域は、メモリコントローラからの指示により、決定される。
なお、「不揮発性記憶装置」は、不揮発性記憶モジュールを含む概念である。
第6の発明は、第5の発明である不揮発性記憶装置と接続して、不揮発性記憶装置をフォーマットすると共に、不揮発性記憶装置にデータを書き込み、不揮発性記憶装置からデータを読み出すアクセス装置であって、使用条件指示部と、フォーマット部と、を備える。
使用条件指示部は、不揮発性記憶装置に対して、不揮発性記憶装置に使用条件を指示する。フォーマット部は、使用条件指示部の使用条件の指示に対するレスポンスであって、不揮発性記憶装置が使用条件に基づいて確定させた不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、不揮発性記憶装置に対して、フォーマットを行うように指示する。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第7の発明は、第6の発明であって、使用条件指示部は、不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、使用条件の指示を行い、メモリ使用可能容量は、不揮発性記憶装置がデータの読み取り/書き込み処理に使用できる全メモリ領域からテンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した通常アクセス領域のメモリ容量である。
第8の発明は、第5の発明である不揮発性記憶装置と、第6または第7の発明であるアクセス装置と、を備える不揮発性記憶システムである。
本発明によれば、アクセス装置からのデータ書き込みを好適なアクセス速度で行うメモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システムを実現することができる。
第1実施形態に係る不揮発性記憶システム100の概略構成図 シングルch記録の場合のアクセス装置1および不揮発性記憶装置2の動作シーケンス図 マルチch記録の場合のアクセス装置1および不揮発性記憶装置2の動作シーケンス図 シングルch記録の場合の論理アドレス/物理アドレス変換テーブル及び通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す図 マルチch記録の場合の論理アドレス/物理アドレス変換テーブル及び通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す図 巻き込み退避処理(集約処理)を説明するための図 不揮発性記憶システム100でのデータ書き込み処理を説明するための図 不揮発性記憶システム100でのデータ書き込み処理を説明するための図 メモリ領域設定コマンドの一部の一例を示す図
以下、図面を参照しながら本発明の実施形態について説明する。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1に、本実施形態に係る不揮発性記憶システム100の概略構成図を示す。
図1に示すように、不揮発性記憶システム100は、アクセス装置(アクセスモジュール)1と、不揮発性記憶装置(不揮発性記憶モジュール)2と、を備え、アクセス装置1と不揮発性記憶装置2とは、外部バスB1により接続されており、外部バスB1を介して、双方向にデータ通信を行うことができる。
(1.1.1:アクセス装置の構成)
図1に示すように、アクセス装置1は、使用条件指示部11と、フォーマット部12と、R/W制御部13と、バスインターフェース部14と、を備える。
使用条件指示部11は、例えば、ユーザからの入力情報に基づいて使用条件を設定する。具体的には、使用条件指示部11は、不揮発性記憶装置2のテンポラリ領域23に確保するテンポラリブロック数N_tmpを使用条件として設定する。そして、使用条件指示部11は、設定した使用条件をフォーマット部12に出力する。
フォーマット部12は、使用条件指示部11により設定された使用条件に基づいて、不揮発性記憶装置2に対して発行するメモリ領域設定コマンドを生成する。フォーマット部12は、生成したメモリ領域設定コマンドをバスインターフェース部14に出力し、所定のタイミングで、生成したメモリ領域設定コマンドがバスインターフェース部14を介して不揮発性記憶装置2に送信されるように制御する。
メモリ領域設定コマンドは、例えば、テンポラリブロック数N_tmpを含むものであり、不揮発性記憶装置2に対して、メモリ領域設定コマンドにより指示されたメモリ領域確保(テンポラリ領域23および通常アクセス領域24の領域確保)を行うためのものである。
また、フォーマット部12は、メモリ領域設定コマンドにより設定した不揮発性記憶装置2の不揮発性メモリ22の通常アクセス領域に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に対して発行する。
R/W制御部13は、不揮発性記憶装置2の不揮発性メモリ22に記録されたデータを所定の領域から読み出すためのリードコマンド、および、所定のデータを不揮発性記憶装置2の不揮発性メモリ22の所定の領域に書き込むためのライトコマンドを生成する。R/W制御部13は、生成したコマンドをバスインターフェース部14に出力し、所定のタイミングで、生成したコマンドがバスインターフェース部14を介して不揮発性記憶装置2に送信されるように制御する。
バスインターフェース部14は、不揮発性記憶装置2のホストインターフェース部211と外部バスB1により接続されており、アクセス装置1と不揮発性記憶装置2との間の通信インターフェース機能を実現させる。また、バスインターフェース部14は、フォーマット部12およびR/W制御部13と接続されている。バスインターフェース部14は、フォーマット部12による制御に従い、フォーマット部12により生成されるメモリ領域設定コマンドやフォーマットコマンドを、外部バスB1を介して、不揮発性記憶装置2に送信する。また、バスインターフェース部14は、R/W制御部13による制御に従い、R/W制御部13により生成されたコマンドを、外部バスB1を介して、不揮発性記憶装置2に送信する。
(1.1.2:不揮発性記憶装置の構成)
図1に示すように、不揮発性記憶装置2は、メモリコントローラ21と、不揮発性メモリ22と、を備え、メモリコントローラ21と不揮発性メモリ22とは、メモリバスB2で接続されている。
メモリコントローラ21は、図1に示すように、ホストインターフェース部211と、使用条件取得部212と、使用可能容量決定部213と、メモリインターフェース部214と、使用可能容量取得部215と、データ読み書き部216と、アドレス管理部217と、を備える。
ホストインターフェース部211は、アクセス装置1のバスインターフェース部14と外部バスB1により接続されており、アクセス装置1と不揮発性記憶装置2との間の通信インターフェース機能を実現させる。ホストインターフェース部211は、アクセス装置1から送信されるメモリ領域設定コマンドを、外部バスB1を介して受信し、受信したデータ(コマンド)を使用条件取得部212に出力する。また、ホストインターフェース部211は、アクセス装置1から送信されるフォーマットコマンド、リードコマンドやライトコマンドを、外部バスB1を介して受信し、受信したデータ(コマンド)をデータ読み書き部216に出力する。
使用条件取得部212は、ホストインターフェース部211により受信されたメモリ領域設定コマンドのデータから使用条件に関する情報を抽出する。「使用条件に関する情報」は、例えば、テンポラリブロック数N_tmpである。そして、使用条件取得部212は、抽出した使用条件に関する情報を使用可能容量決定部213に出力する
使用可能容量決定部213は、使用条件取得部212により抽出された使用条件に関する情報に基づいて、不揮発性メモリ22のテンポラリ領域23の容量および通常アクセス領域24の容量を決めるためのパラメータを決定する。例えば、「使用条件に関する情報」がテンポラリブロック数N_tmpである場合、使用可能容量決定部213は、不揮発性メモリの全容量およびテンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。そして、使用可能容量決定部213は、決定したテンポラリブロック数N_tmpおよび通常アクセスブロック数N_normalを、メモリインターフェース部214を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
メモリインターフェース部214は、不揮発性メモリ22とメモリバスB2により接続されており、メモリコントローラ21と不揮発性メモリ22との間の通信インターフェース機能を実現させる。メモリインターフェース部214は、使用可能容量決定部213、使用可能容量取得部215およびデータ読み書き部216による制御に従い、不揮発性メモリの所定の領域から所定のデータの読み出し/書き込みを行う。
使用可能容量取得部215は、使用可能容量決定部213により指示されたテンポラリ領域23および通常アクセス領域24が正常に確保されたか否かの情報を、メモリインターフェース部214を介して不揮発性メモリ22から受け取り、使用可能容量決定部213の指示通り、正常に、テンポラリ領域23および通常アクセス領域24が確保されているか否かを確認する。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報(レスポンス)を、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報(レスポンス)を、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
データ読み書き部216は、ホストインターフェース部211、メモリインターフェース部214およびアドレス管理部217と接続されている。データ読み書き部216は、主に、以下の(1)〜(4)の処理を行う。
(1)データの書き込み処理
アクセス装置1から送信されたライトコマンドに基づいて、当該ライトコマンドにより指定されている論理アドレスに対応する不揮発性メモリ1の物理アドレスにライトコマンドで指定されたデータを書き込む。
(2)データの読み出し処理
アクセス装置1から送信されたリードコマンドに基づいて、当該リードコマンドにより指定されている論理アドレスに対応する不揮発性メモリ1の物理アドレスからデータを読み出す。
(3)アドレス変換処理
アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、上記(1)、(2)の処理で使用される論理アドレスを物理アドレスに変換する。
(4)不揮発性メモリ22の通常アクセス領域24に対する論理フォーマット
アクセス装置1から送信されたフォーマットコマンドに基づいて、不揮発性メモリ22に確保されている通常アクセス領域に対して論理フォーマットを行う。これにより、不揮発性メモリ22に記憶されるデータをファイルシステム(例えば、FATファイルシステム)により管理することが可能になる。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルを記憶・保持しており、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、データ読み書き部216から指定される論理アドレスを、当該論理アドレスに相当する物理アドレスに変換し、変換した物理アドレスをデータ読み書き部216に出力する。
<1.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システム100の動作について、以下説明する。
映像データ、音声データ、テキストデータから構成される1ch分のデータを不揮発性記憶システム100で記録する場合(シングルch記録の場合)、および複数チャンネル分のデータを不揮発性記憶システム100で記録する場合(マルチch記録の場合)を例に、以下、説明する。
(1.2.1:シングルch記録の場合)
図2に、不揮発性記憶システム100において、シングルch記録を行う場合のシーケンス図を示す。図2のシーケンス図を用いて、不揮発性記憶システム100におけるシングルch記録動作について、説明する。
(S101、102):
図2に示すように、アクセス装置1は、シングルch記録準備処理を開始する。具体的には、アクセス装置1の使用条件指示部11により指示された指示条件に基づいて、フォーマット部12がテンポラリ領域23の物理ブロック数であるテンポラリブロック数N_tmpを決定し、決定したテンポラリブロック数N_tmpを含むメモリ領域設定コマンドを生成する。なお、ここでは、シングルchの記録を行うので、テンポラリブロック数N_tmpは、N_tmp=1に設定される。
そして、フォーマット部12は、バスインターフェース部14および外部バスB1を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置2に送信する(S102)。
(S201):
不揮発性記憶装置2は、アクセス装置1から送信されたメモリ領域設定コマンドを、ホストインターフェース部211により受信し、使用条件取得部212により、メモリ領域設定コマンドに含まれるテンポラリ領域23のテンポラリブロック数N_tmp(=1)を抽出し、使用可能容量決定部213に出力する。
使用可能容量決定部213は、テンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。具体的には、不揮発性メモリ22に含まれるデータ領域として使用することができる物理ブロック数の総数をAとすると、シングルch記録を行う場合、
N_tmp=1
N_normal=A−1
とする。
そして、使用可能容量決定部213は、メモリインターフェース部214およびメモリバスB2を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
(S202):
使用可能容量取得部215は、テンポラリ領域23において、N_tmp(=1)個の物理ブロック確保(テンポラリブロックの確保)、通常アクセス領域24において、N_normal(=A−1)個の物理ブロックの確保(通常アクセスブロックの確保)が正常にできたか否かの情報を不揮発性メモリ22から受け取る。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(S103〜S105):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し(S103)、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う(S104)。
一方、アクセス装置1のフォーマット部12は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域24に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に送信する(S105)。
(S203、S204):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたフォーマットコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、ホストインターフェース部211を介して、不揮発性メモリ22の通常アクセス領域24に対して論理フォーマットを行う(S203)。これにより、不揮発性メモリ22に記憶されるデータをファイルシステム(例えば、FATファイルシステム)により管理することが可能になる。
そして、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了した場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S204)。
一方、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了しなかった場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S204)。
(S106〜S108):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S106)、通常アクセス領域24に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う(S107)。
一方、アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S106)、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、シングルch記録処理を開始する(S108)。
(S109):
アクセス装置1のR/W制御部13は、シングルchのデータを不揮発性メモリ22に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置2に送信する。
(S205、S206):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたライトコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、受信したライトコマンドから、不揮発性メモリ22に書き込むデータおよび書き込み領域を示す論理アドレスLAを抽出する。
データ読み書き部216は、アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、論理アドレスLAを物理アドレスPAに変換する。
そして、データ読み書き部216は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部214およびメモリバスB2を介して、物理アドレスPAに相当する不揮発性メモリ22の領域に書き込む(S205)。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置2は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスResWriteを生成し、アクセス装置1に送信する(S206)。なお、このS206の処理は、省略してもよい。
(SRec1):
不揮発性記憶システム100では、記録対象のデータが不揮発性記憶装置2の不揮発性メモリ22に記録が完了するまで、S109、S205、S206の処理が繰り返される。
(S110):
そして、アクセス装置1は、記録対象としたデータの全てが、不揮発性記憶装置2の不揮発性メモリ22に記録されたことを確認したら、シングルch記録処理を終了させる。
以上により、不揮発性記憶システム100において、シングルch記録処理が実現される。
(1.2.2:マルチch記録の場合)
次に、不揮発性記憶システム100におけるマルチch記録動作について、説明する。
図3に、不揮発性記憶システム100において、マルチch記録を行う場合のシーケンス図を示す。図3のシーケンス図を用いて、不揮発性記憶システム100におけるマルチch記録動作について、説明する。
(S111、S112):
図3に示すように、アクセス装置1は、マルチch記録準備処理を開始する。具体的には、アクセス装置1の使用条件指示部11により指示された指示条件に基づいて、フォーマット部12がテンポラリ領域23の物理ブロック数であるテンポラリブロック数N_tmpを決定し、決定したテンポラリブロック数N_tmpを含むメモリ領域設定コマンドを生成する。なお、ここでは、マルチchの記録を行うので、テンポラリブロック数N_tmpは、N_tmp=K(K>1である整数)に設定される。
そして、フォーマット部12は、バスインターフェース部14および外部バスB1を介して、生成したメモリ領域設定コマンドを不揮発性記憶装置2に送信する(S112)。
(S207):
不揮発性記憶装置2は、アクセス装置1から送信されたメモリ領域設定コマンドを、ホストインターフェース部211により受信し、使用条件取得部212により、メモリ領域設定コマンドに含まれるテンポラリ領域23のテンポラリブロック数N_tmp(=K)を抽出し、使用可能容量決定部213に出力する。
使用可能容量決定部213は、テンポラリブロック数N_tmpに基づいて、通常アクセス領域24の物理ブロック数である通常アクセスブロック数N_normalを決定する。具体的には、不揮発性メモリ22に含まれるデータ領域として使用することができる物理ブロック数の総数をAとすると、図2の場合のマルチch記録を行う場合、
N_tmp=K
N_normal=A−K
とする。
そして、使用可能容量決定部213は、メモリインターフェース部214およびメモリバスB2を介して、不揮発性メモリ22のレジスタ領域に書き込み、不揮発性メモリ22のテンポラリ領域23の容量(ブロック数)および通常アクセス領域24の容量(ブロック数)を確定させる。
これにより、不揮発性記憶装置2において、ch数分(K個)のテンポラリブロックが確保されることになる。
(S208):
使用可能容量取得部215は、テンポラリ領域23において、N_tmp(=K)個の物理ブロック確保(テンポラリブロックの確保)、通常アクセス領域24において、N_normal(=A−K)個の物理ブロックの確保(通常アクセスブロックの確保)が正常にできたか否かの情報を不揮発性メモリ22から受け取る。
(1)指示通り正常に、テンポラリ領域23および通常アクセス領域24が確保されている場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了したことを示す情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(2)一方、指示通りのテンポラリ領域23および通常アクセス領域24が確保できなかった場合、使用可能容量取得部215は、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報をレスポンスResSetに含めて、ホストインターフェース部211および外部バスB1を介して、アクセス装置1に送信する。
(S113〜S115):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し(S113)、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できなかったことを示すエラー情報を検出した場合、エラー処理を行う(S114)。
一方、アクセス装置1のフォーマット部12は、不揮発性記憶装置2から送信されたレスポンスResSetを解析し、フォーマット部12により指示された通り、不揮発性メモリ22のメモリ領域設定を完了できたことを示す情報を検出した場合、通常アクセス領域24に対して論理フォーマットを行うためのフォーマットコマンドを生成し、不揮発性記憶装置2に送信する(S115)。
(S209、S210):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたフォーマットコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、ホストインターフェース部211を介して、不揮発性メモリ22の通常アクセス領域24に対して論理フォーマットを行う(S209)。
そして、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了した場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S210)。
一方、指示通り正常に、通常アクセス領域24に対する論理フォーマットが完了しなかった場合、不揮発性メモリ22から使用可能容量取得部215に、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報が出力される。そして、使用可能容量取得部215は、通常アクセス領域24に対する論理フォーマットが正常に完了しなかったことを示すエラー情報を含むレスポンスResFmtをアクセス装置1に、ホストインターフェース部211を介して送信する(S210)。
(S116〜S118):
アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S116)、通常アクセス領域24に対する論理フォーマットが完了しなかったことを示すエラー情報を検出した場合、エラー処理を行う(S117)。
一方、アクセス装置1は、不揮発性記憶装置2から送信されたレスポンスResFmtを解析し(S116)、通常アクセス領域24に対する論理フォーマットが正常に完了したことを示す情報を検出した場合、マルチch記録処理を開始する(S118)。
(S119):
アクセス装置1のR/W制御部13は、マルチchのデータのうちの1つのchデータである1chのデータを不揮発性メモリ22に記録するためのライトコマンドを生成し、生成したライトコマンドを不揮発性記憶装置2に送信する。
(S211、S212):
不揮発性記憶装置2のデータ読み書き部216は、アクセス装置1から送信されたライトコマンドを、ホストインターフェース部211を介して受信する。データ読み書き部216は、受信したライトコマンドから、不揮発性メモリ22に書き込むデータおよび書き込み領域を示す論理アドレスLAを抽出する。
データ読み書き部216は、アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに基づいて、論理アドレスLAを物理アドレスPAに変換する。
そして、データ読み書き部216は、ライトコマンドにより送信された書き込みデータを、メモリインターフェース部214およびメモリバスB2を介して、物理アドレスPAに相当する不揮発性メモリ22の領域に書き込む(S211)。なお、データ書き込み処理の詳細については、後述する。
そして、不揮発性記憶装置2は、ライトコマンドによるデータ書き込みが、正常に完了したか否かの情報を含むレスポンスResWrite1を生成し、アクセス装置1に送信する(S212)。なお、このS212の処理は、省略してもよい。
(S120、S213、S214):
記録対象であるch数分(ここでは、K個のch分)、各chに対して、上記S113、S207およびS208と同様の処理を行う。
(SRec2):
不揮発性記憶システム100では、記録対象のマルチchのデータが不揮発性記憶装置2の不揮発性メモリ22に記録が完了するまで、S119〜S214の処理(図3中にSRec2で示した処理)が繰り返される。なお、不揮発性記憶装置2では、記録するch数分(K個)のテンポラリブロックが確保されているので、各chデータの記録において、それぞれ、1個のテンポラリブロックを用いて、データ記録処理が実行されるため、不揮発性記憶システム100では、巻き込み退避処理(集約処理)の発生頻度を抑えることができる。その結果、不揮発性記憶システム100では、マルチch記録を行う場合においても、最低速度保証を容易に行うことができる。
(S121):
そして、アクセス装置1は、記録対象とした全てのデータ(マルチchのデータ)が、不揮発性記憶装置2の不揮発性メモリ22に記録されたことを確認したら、マルチch記録処理を終了させる。
以上により、不揮発性記憶システム100において、マルチch記録処理が実現される。
(1.2.3:アドレス管理部)
次に、アドレス管理部217により管理される論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルについて、説明する。
(1.2.3.1:論理アドレス/物理アドレス変換テーブル)
アドレス管理部217により管理されている論理アドレス/物理アドレス変換テーブルは、論理ブロックアドレスと、その論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係を保持しているテーブルである。
図4(a)に、不揮発性記憶システム100において、シングルch記録する場合の論理アドレス/物理アドレス変換テーブルの一部の一例を示す。また、図5(a)に、不揮発性記憶システム100において、マルチch記録する場合の論理アドレス/物理アドレス変換テーブルの一部の一例を示す。
なお、アクセス装置1は、データを論理アドレス空間により管理しており、図4または図5に示す論理ブロックアドレスは、アクセス装置1が管理する論理アドレス空間内で定義される論理ブロックの論理アドレスである。また、不揮発性記憶装置2は、データを物理アドレス空間により管理しており、図4または図5に示す物理ブロックアドレスは、不揮発性記憶装置2が管理する物理アドレス空間内で定義される物理ブロックの物理アドレスである。
したがって、アクセス装置1が管理しているアドレス空間と不揮発性記憶装置2が管理しているアドレス空間とは異なるが、不揮発性記憶装置2のアドレス管理部217によりアドレス変換を行うことで、データ管理におけるアドレス変換のランダム性を確保することができる。つまり、不揮発性記憶装置2でアドレス変換を行うことで、アクセス装置1が管理する論理ブロックを、不揮発性記憶装置2が管理する任意の物理ブロックに割り当てることができる。図4の場合では、論理ブロックアドレス0x00A0の論理ブロックが、常に、物理ブロックアドレス0x0010の物理ブロックに割り当てられるわけではなく、論理ブロックアドレス0x00A0の論理ブロックを、物理ブロックアドレス0x0010以外の物理ブロックに割り当てることも可能である。
したがって、アクセス装置1は、不揮発性メモリ22の物理アドレスを意識することなく、論理アドレスによるデータ管理を行うことができる。
また、論理アドレス/物理アドレス変換テーブルは、図4(a)、図5(a)の左欄のch番号を示す情報を保持しなくてもよい。
以下では、説明便宜のため、物理アドレスおよび論理アドレスは、2バイト(16ビット)のアドレスとする。物理アドレスの上位12ビットが物理ブロックアドレスを示し、物理アドレスの下位4ビットがページ番号を示すものとする。また、論理アドレスの上位12ビットが論理ブロックアドレスを示し、論理アドレスの下位4ビットがページ番号を示すものとする。そして、論理ブロックアドレスおよび物理ブロックアドレスは、下位4ビットを「0」にした16進数による表記を行うものとする。例えば、図6(a)の左側の物理ブロックは、物理アドレス0x0010〜0x0014(5ページからなる物理ブロック)について、その物理ブロックアドレスを「0x0010」と表記するものとする。
また、本実施形態においては、論理ブロック内のページ番号と、物理ブロック内のページ番号とが、一致するものとする。したがって、図4(a)に示す論理アドレス/物理アドレス変換テーブルにより、例えば、論理アドレス0x00A2は、物理アドレス0x0012に変換されることになる(論理ブロック内および物理ブロック内でのページ番号は一致する)。なお、他のアドレス体系により論理アドレス、物理アドレス、論理ブロックアドレス、物理ブロックアドレスを表現するようにしてもよいことは、言うまでもない。また、ブロックとページの関係(例えば、1つの物理ブロック内に含まれるページ数)も上記に限定されないのは、言うまでもない。
(1.2.3.2:通常アクセスブロック/テンポラリブロック管理テーブル)
アドレス管理部217により管理されている通常アクセスブロック/テンポラリブロック管理テーブルは、通常アクセスブロックアドレスと、その通常アクセスブロックに対応するテンポラリブロックアドレスとの対応関係を保持しているテーブルである。
図4(b)に、不揮発性記憶システム100において、シングルch記録する場合の通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す。また、図5(b)に、不揮発性記憶システム100において、マルチch記録する場合(記録ch数K=4の場合)の通常アクセスブロック/テンポラリブロック管理テーブルの一例を示す。なお、通常アクセスブロックは、不揮発性メモリ22の通常アクセス領域24に確保された物理ブロックであるので、図4または図5に示すように、論理アドレス/物理アドレス変換テーブルの物理ブロックアドレスは、通常アクセスブロックの物理ブロックアドレスと一致する。
アドレス管理部217は、記録するch数分の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。つまり、不揮発性記憶システム100において、シングルch記録を行う場合、図4(b)に示すように、1ch分(1個分)の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。一方、不揮発性記憶システム100において、マルチch記録を行う場合、図5(b)に示すように、Kch分(図5(b)の場合は、K=4)の通常アクセスブロックとテンポラリブロックとの対応関係を保持する。
(1.2.4:データ書き込み処理)
次に、不揮発性記憶システム100におけるデータ書き込み処理について、説明する。
まず、巻き込み退避処理(集約処理)について、図6を用いて説明する。
(1.2.4.1:巻き込み退避処理(集約処理))
図6は、巻き込み退避処理(集約処理)を説明するための図である。
図6に示す場合において、有効データであるデータA〜データEを保持している物理ブロック0x0010にて、データCをデータFに更新し、さらに、データDをデータGに更新する場合について、説明する。
不揮発性メモリでは、ページ単位での更新を行うことができないので、物理ブロック単位で消去し、有効データをコピーし、さらに、更新データを書き込む処理を行う必要がある。具体的には、図6(a)に示すように、まず、全てのページのデータが消去された消去済みブロック(空きブロック)0x03F0を用意する。
そして、図6(b)に示すように、物理ブロック0x0010のデータAおよびデータBを、物理ブロック0x03F0の0ページおよび1ページにコピーする(ステップ1)。なお、図6の丸で囲んだ番号を「ステップX」(Xは整数)と表記することとする(以下、同様)。
次に、物理ブロック0x03F0の2ページにデータFを書き込み(ステップ2)、さらに、物理ブロック0x0010の3ページおよび4ページのデータDおよびデータEを、それぞれ、物理ブロック0x03F0の3ページおよび4ページにコピーする(ステップ3)。
これにより、有効データは、全て、物理ブロック0x0010から0x03F0に移動されたので、物理ブロック0x0010を消去する(ステップ4)。
さらに、データDをデータGに更新するために、新たな消去済みブロック(空きブロック)0x04A0を用意する。
そして、物理ブロック0x03F0の0ページから2ページまでのデータであるデータA、データBおよびデータFを、それぞれ、物理ブロック0x04A0の0ページから2ページにコピーする(ステップ5)。
次に、物理ブロック0x04A0の3ページにデータGを書き込む(ステップ6)。
そして、物理ブロック0x03F0の4ページのデータEを物理ブロック0x04A0の4ページにコピーする(ステップ7)。
これにより、有効データは、全て、物理ブロック0x03F0から0x04A0に移動されたので、物理ブロック0x03F0を消去する(ステップ8)。
このように、同一物理ブロックのデータを更新する場合、巻き込み退避処理が発生する頻度が多くなりやすく(図6の場合では、2度の物理ブロックの消去処理が発生している)、物理ブロックの消去処理に時間がかかるため、不揮発性メモリへのデータ書き込み処理速度が低下する原因となる。
(1.2.4.2:不揮発性記憶システム100でのデータ書き込み処理)
次に、不揮発性記憶システム100でのデータ書き込み処理について、図7および図8を用いて、説明する。
図7は、不揮発性記憶システム100において、論理アドレスが0x00A2であるデータCをデータFに書き換え、さらに、論理アドレスが0x00A3であるデータDをデータGに書き換える場合の論理ブロック、通常アクセスブロックおよびテンポラリブロックの状態を模式的に示した図である。なお、図7に「論理ブロック」として示したブロックは、アクセス装置1がデータを管理する単位であり、アクセス装置1が管理する論理アドレス空間内で論理アドレスにより管理されるブロックである。また、図7に「通常アクセスブロック」として示したブロックは、不揮発性記憶装置2がデータを管理する単位であり、不揮発性記憶装置2が管理する物理アドレス空間内で物理アドレスにより管理されるブロックである。なお、通常アクセスブロックは、不揮発性記憶装置2の通常アクセス領域内に確保される物理ブロックである。
図7を用いて、不揮発性記憶システム100において、論理アドレスが0x00A2であるデータCをデータFに書き換え、さらに、論理アドレスが0x00A3であるデータDをデータGに書き換える場合の処理について説明する。
(図7(a)の状態):
アクセス装置1から不揮発性記憶装置2に対して、論理アドレス0x00A2のデータCをデータFに書き換えるためのライトコマンドが発行される。
データ読み書き部216は、受信したライトコマンドから書き換えデータの論理ブロックアドレス0x00A0を抽出し、アドレス管理部217に出力する。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルtb1を参照し、論理ブロックアドレスが0x00A0の論理ブロックは、物理ブロックアドレスが0x0010であることを検出する。さらに、アドレス管理部217は、通常アクセスブロック/テンポラリブロック管理テーブルtb2を参照し、物理ブロックアドレスが0x0010である通常アクセスブロックのテンポラリブロックの物理ブロックアドレスが0x0500であることを検出する。そして、アドレス管理部217は、検出結果をデータ読み書き部216に出力する。
データ読み書き部216は、アドレス管理部217からの検出結果に基づいて、図7(a)の状態において、物理ブロックアドレスが0x0010である通常アクセスブロックに、有効データであるデータA〜データEが、存在することを検出する。なお、物理ブロックの各ページのステータス(有効/無効/空き(消去済み))の情報は、各ブロックのページの冗長部に保持されるものであってもよいし、各ブロックの所定の領域で管理されるものであってもよいし、また、不揮発性メモリ22の所定の物理ブロックを管理用ブロックとして、当該所定の物理ブロックで管理されるものであってもよい。
つまり、図7(a)の状態において、データ書き込み部216は、物理ブロックアドレスが0x0010の通常アクセスブロックのページ0〜ページ4に、有効データであるデータA〜データEが書き込まれており、物理ブロックアドレスが0x0500のテンポラリブロックは、消去済みブロック(空きブロック)であることを把握する。
(図7(b)の状態):
次に、データ読み書き部216は、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ0および1のデータAおよびBを、テンポラリブロック(物理ブロックアドレス:0x0500)のページ0および1にコピーする。そして、データ読み書き部216は、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ0および1のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ0および1のステータスを「空き」から「有効」に変更する(ステップ1)。
次に、データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ2にデータFを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ2のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ2のステータスを「空き」から「有効」に変更する(ステップ2)。
この段階で、データCがデータFに書き換えられたことになる。
(図7(c)の状態):
次に、データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ3にデータGを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ3のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ3のステータスを「空き」から「有効」に変更する(ステップ3)。
この段階で、データDがデータGに書き換えられたことになる。
以上のように、データCをデータFに書き換え、さらに、データDをデータGに書き換える場合、図6で説明した場合とは異なり、物理ブロックの消去処理が発生しない。
つまり、不揮発性記憶システム100では、テンポラリブロックを用いることで、巻き込み退避処理(集約処理)の発生を抑えることができる。
図8を用いて、図7(c)の状態から、さらに、データEをデータHに書き換える場合について、説明する。
(図8(a)の状態):
データ読み書き部216は、テンポラリブロック(物理ブロックアドレス:0x0500)のページ4にデータHを書き込み、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ4のステータスを「有効」から「無効」に変更し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ4のステータスを「空き」から「有効」に変更する(ステップ4)。
この段階で、通常アクセスブロックおよびテンポラリブロックに空きページがないので、通常アクセスブロック(物理ブロックアドレス:0x0010)に対して消去処理が実行される。そして、テンポラリブロック(物理ブロックアドレス:0x0500)が通常アクセスブロックに変更される。
(図8(b)の状態):
データ読み書き部216は、空きブロック(図8(b)の場合では、物理ブロックアドレスが0x0600の物理ブロック)を、新たなテンポラリブロックとして設定する。
アドレス管理部217は、図8(b)のように変更された通常アクセスブロックおよびテンポラリブロックの関係を、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルに反映させる。
以上により、不揮発性記憶システム100では、物理ブロックの消去処理が発生した後も、テンポラリブロックを確保することができる。
不揮発性記憶システム100において、シングルch記録をする場合、上記で説明したデータ書き込み処理が実行される。これにより、不揮発性記憶システム100では、シングルch記録をする場合、テンポラリ領域を必要最小限にとどめ、通常アクセス領域を最大限確保することができる。
一方、不揮発性記憶システム100において、マルチch記録をする場合、上記で説明した処理がch数分実行される。つまり、不揮発性記憶システム100において、Kch分の記録処理を行う場合、K個分のテンポラリブロックが確保され、上記で説明した処理が実行される。このため、不揮発性記憶システム100では、マルチch記録を行う場合であっても、巻き込み退避処理(集約処理)の発生を抑制し、書き込み処理速度の低下を抑えることができる。したがって、不揮発性記憶システム100では、例えば、最低記録速度保証を容易にすることができるというメリットがある。
つまり、不揮発性記憶システム100では、シングルch記録を行う場合と、マルチch記録を行う場合とで、テンポラリ領域23と通常アクセス領域とを変更し、処理速度(特にデータ書き込み処理の処理速度)とメモリ使用可能容量とを最適化することができる。
なお、本実施形態では、不揮発性記憶システム100において、シングルch記録およびマルチch記録を行う場合を例に、ストレージ・アーキテクチャを変更する場合について説明したが、上記に限定されることはなく、例えば、不揮発性記憶システム100において採用されるアプリケーションに応じて、不揮発性記憶システム100のストレージ・アーキテクチャを変更するようにしてもよい。
つまり、不揮発性記憶システム100では、用途を変更した場合、当該変更した用途に応じて、ストレージ・アーキテクチャ、すなわち、テンポラリ領域23および通常アクセス領域24の設定を柔軟に変更することができるため、不揮発性記憶システム100では、用途に応じた最適化を容易に実現することができる。
なお、不揮発性記憶システム100において、テンポラリブロックを使用して書き込まれたデータの読み出し処理は、以下のように行う。
すなわち、アクセス装置1のR/W制御部は、リードコマンドを生成し、バスインターフェース部14を介して、アクセス装置1から不揮発性記憶装置2にリードコマンドを送信する。
データ読み書き部216は、送信されたリードコマンドから、読み取り対象のデータの論理アドレスを抽出する。
アドレス管理部217は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルにより、当該論理アドレスのデータ(有効データ)が存在するテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスを検出し、データ読み書き部216に出力する。
データ読み書き部216は、アドレス管理部217により検出されたテンポラリブロックの物理ブロックアドレスおよび通常アクセスブロックの物理ブロックアドレスに基づいて、有効データがある物理アドレスを確定し、確定した物理アドレスからデータを読み出す。
例えば、図7(b)の状態において、論理アドレス0x00A2のデータを読み出す場合、データ読み書き部216は、論理アドレス/物理アドレス変換テーブルおよび通常アクセスブロック/テンポラリブロック管理テーブルにより、論理アドレス0x00A2のデータが通常アクセスブロック(物理ブロックアドレス:0x0010)またはテンポラリブロック(物理ブロックアドレス:0x0500)のいずれかにあると判断する。さらに、データ読み書き部216は、ページのステータスを確認し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2のデータが「有効」であり、通常アクセスブロック(物理ブロックアドレス:0x0010)のページ番号2のデータが「無効」であることを検出する。そして、データ読み書き部216は、読み出すべきデータがテンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2であると判断し、テンポラリブロック(物理ブロックアドレス:0x0500)のページ番号2のデータ(データF)を読み出す。
[他の実施形態]
なお、上記実施形態において、フォーマット部12により生成されるメモリ領域設定コマンドは、テンポラリ領域23のテンポラリブロック数N_tmpを含むものであるとして、説明したが、これに限定されることはなく、例えば、以下のようなものであってもよい。
すなわち、図9(a)、(b)に示すように、マルチch記録であることを示すマルチchフラグを設け、当該マルチchフラグが「0」の場合、シングルch記録を行うことを示し、当該マルチchフラグが「1」の場合、マルチch記録を行うことを示すようにする。
そして、シングルch記録を行う場合、図9(a)に示すように、最小使用帯域を示す情報をマルチchフラグの後に続ける。
マルチch記録を行う場合、図9(b)に示すように、マルチchフラグの後に、ch数Nを示す領域を設け、さらに、その後に、1chの最小使用帯域、2chの最小使用帯域、・・・、Nchの最小使用帯域と、Nch分の最小使用帯域を示す領域を設ける。
不揮発性記憶装置2は、このようなメモリ領域設定コマンドを受信し、シングルch記録の場合は、メモリ領域設定コマンドにより指示された最小使用帯域(例えば、SDTVの1ch分のデータを記録する場合、最小使用帯域を4[Mbps]として指定し、HDTVの1ch分のデータを記録する場合、最小使用帯域を10[Mbps]として指定する)を実現できるように、不揮発性メモリ22のテンポラリ領域23および通常アクセス領域24の設定を行う。
一方、マルチch記録を行う場合、不揮発性記憶装置2は、図9(b)に示す領域を含むメモリ領域設定コマンドを受信し、当該メモリ領域設定コマンドに含まれる情報に基づいて、1ch〜Nchの各chにおいて、最小使用帯域が確保できるように、不揮発性メモリ22のテンポラリ領域23および通常アクセス領域24の設定を行う。
なお、上記実施形態において、マルチch記録を行う場合、chごとに、1個のテンポラリブロックを設定する場合について、説明したが、これに限定されることはなく、例えば、マルチ記録ch数Kに対して、int(K/2)個のテンポラリブロックを設定するようにしてもよい。なお、int(X)は、Xを超えない最大の整数を示す。
特に、不揮発性記憶システム100において、最小使用帯域が確保できる最低限のテンポラリブロックを設定することで、通常アクセス領域を最大限に利用することができる。
また、メモリ領域設定コマンドで、クラスを指定し、指定されたクラスの条件を満たすように、不揮発性記憶システム100の不揮発性記憶装置2において、テンポラリ領域23および通常アクセス領域24の設定を行うようにしてもよい。例えば、メモリ領域設定コマンドにおいて、4段階のクラスを設定するようにし、
(1)クラス1では、最小使用帯域x1として指定し、
(2)クラス2では、最小使用帯域x2(x2>x1)として指定し、
(3)クラス3では、最小使用帯域x3(x3>x2)として指定し、
(4)クラス4では、最小使用帯域x4(x4>x3)として指定し、
メモリ領域設定コマンドにより指定された要件を満たすように、不揮発性記憶装置2がテンポラリ領域23および通常アクセス領域24の設定を行うようにしてもよい。
また、上記実施形態では、図2および図3において、テンポラリ領域の設定処理応答(レスポンス)ResSet(S202、S208)を、不揮発性記憶装置2からアクセス装置1に返信する場合について、説明したが、これに限定されることはなく、例えば、レスポンスの返信処理を省略するようにしてもよい。
また、上記実施形態では、メモリ領域設定コマンドと、フォーマットコマンドと、が別のコマンドである場合について、説明したが、これに限定されることはなく、たとえば、メモリ領域設定コマンドに含める情報をフォーマットコマンドに含め、フォーマットコマンドのみをアクセス装置から不揮発性記憶装置に送信するようにしてもよい。この場合、不揮発性記憶装置は、テンポラリ領域および通常アクセス領域の設定、および、通常アクセス領域に対する論理フォーマットを一括して処理し、いずれかの処理でエラーが発生した場合、エラー情報を含むレスポンスをアクセス装置に送信し、全ての処理が正常に完了した場合は、正常完了したことを示す情報を含むレスポンスをアクセス装置に送信するようにすればよい。
また、上記実施形態では、アクセス装置と不揮発性記憶装置とは、別個の装置であることを前提として説明したが、これに限定されることはなく、アクセス装置、不揮発性記憶装置、およびアクセス装置と不揮発性記憶装置とを接続する外部バスは、単独の装置内に実装されるものであってもよい。
また、上記実施形態で説明した不揮発性記憶システム、アクセス装置、不揮発性記憶装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明に係る不揮発性記憶システム、アクセス装置、不揮発性記憶装置は、用途に応じた最適なデータ記録を行うことができるため、不揮発性メモリ関連産業分野において、有用であり、本発明は、当該分野において実施することができる。
100 不揮発性記憶システム
1 アクセス装置(アクセスモジュール)
11 使用条件指示部
12 フォーマット部
13 R/W制御部
14 バスインターフェース部
2 不揮発性記憶装置
21 メモリコントローラ
211 ホストインターフェース部
212 使用条件取得部
213 使用可能容量決定部
214 メモリインターフェース部
215 使用可能容量取得部
216 データ読み書き部
217 アドレス管理部
22 不揮発性メモリ
23 テンポラリ領域
231 テンポラリブロック
24 通常アクセス領域
241 通常アクセスブロック
251 レジスタ領域

Claims (8)

  1. 不揮発性メモリに接続され、外部からのアクセス指示に応じてデータの読み出し、書き込みを行うメモリコントローラであって、
    データの読み書き制御を行うデータ読み書き部と、
    フォーマット時に外部から指示された使用条件を受信する使用条件受信部と、
    前記受信した使用条件に基づき使用可能容量を決定する使用可能容量決定部と、
    前記使用可能容量を外部に通知する使用可能容量通知部と、
    を備えるメモリコントローラ。
  2. 不揮発性メモリに接続され、外部からのアクセス指示に応じて、前記不揮発性メモリに対して、データの読み出し/書き込みを行うメモリコントローラであって、
    前記不揮発性メモリに対して、データの読み書き制御を行うデータ読み書き部と、
    外部からの前記アクセス指示から、前記不揮発性メモリの使用条件に関する情報を取得する使用条件取得部と、
    前記使用条件取得部により取得された前記不揮発性メモリの使用条件に関する情報に基づき、前記不揮発性メモリのテンポラリ領域および通常アクセス領域を決定し、決定した前記テンポラリ領域および前記通常アクセス領域を確保するように、前記不揮発性メモリに指示する使用可能容量決定部と、
    前記使用可能容量決定部の指示に基づいて前記不揮発性メモリで確保された前記テンポラリ領域および前記通常アクセス領域に関する情報を取得する使用可能容量取得部と、
    を備え、
    前記データ読み書き部は、前記不揮発性メモリで確保された前記テンポラリ領域および前記通常アクセス領域を用いて、データの書き込み/読み取り処理を行う、
    メモリコントローラ。
  3. 前記使用可能容量決定部は、前記テンポラリ領域に含まれる物理ブロックであるテンポラリブロックの数を決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
    請求項1または2に記載のメモリコントローラ。
  4. 前記使用可能容量決定部は、
    1chのデータからなるシングルchデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「1」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定し、
    Nch(Nは自然数)のデータからなるマルチchデータを前記不揮発性メモリに記録する場合、前記テンポラリブロック数を「N」に決定することで、前記不揮発性メモリの前記テンポラリ領域および前記通常アクセス領域を決定する、
    請求項3に記載のメモリコントローラ。
  5. メモリ領域が可変なテンポラリ領域と、メモリ領域が可変な通常アクセス領域と、を含む不揮発性メモリと、
    請求項1から4のいずれかに記載のメモリコントローラと、
    を備え、
    前記不揮発性メモリの前記テンポラリ領域のメモリ領域および/または前記通常アクセス領域のメモリ領域は、前記メモリコントローラからの指示により、決定される、
    不揮発性記憶装置。
  6. 請求項5に記載の不揮発性記憶装置と接続して、前記不揮発性記憶装置をフォーマットすると共に、前記不揮発性記憶装置にデータを書き込み、前記不揮発性記憶装置からデータを読み出すアクセス装置であって、
    前記不揮発性記憶装置に対して、前記不揮発性記憶装置に使用条件を指示する使用条件指示部と、
    前記使用条件指示部の前記使用条件の指示に対するレスポンスであって、前記不揮発性記憶装置が前記使用条件に基づいて確定させた前記不揮発性記憶装置のメモリ使用可能容量に関する情報を含むレスポンスに基づき、前記不揮発性記憶装置に対して、フォーマットを行うように指示するフォーマット部と、
    を備えるアクセス装置。
  7. 前記使用条件指示部は、前記不揮発性記憶装置に対して、テンポラリ領域に含まれるテンポラリブロック数を含む情報により、前記使用条件の指示を行い、
    前記メモリ使用可能容量は、前記不揮発性記憶装置がデータの読み取り/書き込み処理に使用できる全メモリ領域から前記テンポラリブロック数により決定されるテンポラリ領域を除いた領域を通常アクセス領域として設定し、設定した前記通常アクセス領域のメモリ容量である、
    請求項6に記載のアクセス装置。
  8. 請求項5に記載の不揮発性記憶装置と、
    請求項6または7に記載のアクセス装置と、
    を備える不揮発性記憶システム。
JP2011501055A 2009-07-16 2010-06-30 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム Pending JPWO2011007511A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009167689 2009-07-16
JP2009167689 2009-07-16
PCT/JP2010/004309 WO2011007511A1 (ja) 2009-07-16 2010-06-30 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム

Publications (1)

Publication Number Publication Date
JPWO2011007511A1 true JPWO2011007511A1 (ja) 2012-12-20

Family

ID=43449123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011501055A Pending JPWO2011007511A1 (ja) 2009-07-16 2010-06-30 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム

Country Status (3)

Country Link
US (1) US8447922B2 (ja)
JP (1) JPWO2011007511A1 (ja)
WO (1) WO2011007511A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
JP2012234334A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリ装置
KR20140124547A (ko) * 2013-04-17 2014-10-27 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9626112B2 (en) * 2014-12-08 2017-04-18 Symbol Technologies, Llc eMMC functionality expander

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2005327296A (ja) * 2004-05-14 2005-11-24 Toshiba Corp メモリカード内の隠されたメモリを消去する方法及び装置
JP2006260468A (ja) * 2005-03-18 2006-09-28 Nec Electronics Corp 半導体装置
JP2008102900A (ja) * 2006-10-19 2008-05-01 Samsung Electronics Co Ltd メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
JP2009116465A (ja) * 2007-11-02 2009-05-28 Hitachi Ltd 記憶装置及びメモリ制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
KR20060056345A (ko) * 2003-07-25 2006-05-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 하이브리드 기록형 광학 기록 매체
JP4713867B2 (ja) * 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US7769944B2 (en) * 2004-10-01 2010-08-03 Supertalent Electronics, Inc. Partial-write-collector algorithm for multi level cell (MLC) flash
US7426605B2 (en) * 2005-09-30 2008-09-16 Rudelic John C Method and apparatus for optimizing flash device erase distribution
US20100057976A1 (en) * 2008-08-26 2010-03-04 Menahem Lasser Multiple performance mode memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2005327296A (ja) * 2004-05-14 2005-11-24 Toshiba Corp メモリカード内の隠されたメモリを消去する方法及び装置
JP2006260468A (ja) * 2005-03-18 2006-09-28 Nec Electronics Corp 半導体装置
JP2008102900A (ja) * 2006-10-19 2008-05-01 Samsung Electronics Co Ltd メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
JP2009116465A (ja) * 2007-11-02 2009-05-28 Hitachi Ltd 記憶装置及びメモリ制御方法

Also Published As

Publication number Publication date
US8447922B2 (en) 2013-05-21
US20110167209A1 (en) 2011-07-07
WO2011007511A1 (ja) 2011-01-20

Similar Documents

Publication Publication Date Title
TWI386802B (zh) 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
EP2631916B1 (en) Data deletion method and apparatus
KR101888009B1 (ko) 저장 장치
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
US20030177300A1 (en) Data processing method in high-capacity flash EEPROM card system
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
AU2003286967B2 (en) Dual journaling store method and storage medium thereof
JP4881856B2 (ja) 記憶装置
JP5443998B2 (ja) 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム
CN111880749B (zh) 数据读取方法、存储器存储装置及存储器控制电路单元
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JPWO2005083573A1 (ja) 半導体メモリ装置
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
TWI419169B (zh) 用於快閃記憶體的資料存取方法及其儲存系統與控制器
US7941601B2 (en) Storage device using nonvolatile cache memory and control method thereof
TW201225109A (en) Memory storage device, memory controller thereof, and method for programming data thereof
TW201740385A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
WO2011007511A1 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
US8489802B2 (en) Recordable memory device which writes data to reformatted user area of nonvolatile semiconductor memory

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130326