JPWO2009107393A1 - アクセス装置、情報記録装置、コントローラ、及び情報記録システム - Google Patents

アクセス装置、情報記録装置、コントローラ、及び情報記録システム Download PDF

Info

Publication number
JPWO2009107393A1
JPWO2009107393A1 JP2010500574A JP2010500574A JPWO2009107393A1 JP WO2009107393 A1 JPWO2009107393 A1 JP WO2009107393A1 JP 2010500574 A JP2010500574 A JP 2010500574A JP 2010500574 A JP2010500574 A JP 2010500574A JP WO2009107393 A1 JPWO2009107393 A1 JP WO2009107393A1
Authority
JP
Japan
Prior art keywords
data
information
page cache
information recording
specific logical
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.)
Granted
Application number
JP2010500574A
Other languages
English (en)
Other versions
JP5577238B2 (ja
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
Priority to JP2010500574A priority Critical patent/JP5577238B2/ja
Publication of JPWO2009107393A1 publication Critical patent/JPWO2009107393A1/ja
Application granted granted Critical
Publication of JP5577238B2 publication Critical patent/JP5577238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報記録モジュールの不揮発性メモリをファイルシステムにより領域管理する場合において、ファイルデータとファイルシステム管理情報の書き込み処理を高速化し、且つ不揮発性メモリの書き換え寿命低下を防止する方法を提供する。情報記録モジュール(2)の不揮発性メモリ(22)内にページキャッシュ情報(224)を格納すると共に、小サイズのデータ書き込み時に特定の物理ブロックをキャッシュ的に使用する制御を行うページキャッシュ制御部(217)を情報記録モジュール(2)に設ける。また、前記情報記録モジュール(2)に対してページキャッシュの制御に必要な情報を設定するページキャッシュ情報設定部(104)をアクセスモジュール(1)に設ける。アクセスモジュール(1)と情報記録モジュール(2)を組み合わせることにより小サイズのデータ書き込み時にページキャッシュを用いて無駄な巻き込み退避処理の発生を防止し、書き込み処理を高速化できる。

Description

本発明は、データを不揮発性メモリに格納し、ファイルとして管理するアクセス装置、情報記録装置、コントローラ、及び情報記録システムに関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にフラッシュROM等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、フラッシュROM等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
従来、メモリカードや機器内蔵ストレージに格納されたデータは、ファイルシステムにより管理されている。データをファイルシステムにより管理することで、同一のファイルシステムを解釈する機器間でデータをファイルとして共有することが可能となり、ユーザは、自分の格納したデータを複数の機器間で容易に参照したり、コピーしたりすることが可能となる。
従来最も広く使用されているファイルシステムは、FATファイルシステムと呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
図2に、FATファイルシステムの構成を示す。
FATファイルシステムでは、ファイルアロケーションテーブル内の管理単位のビット幅の違いにより、FAT12、FAT16、FAT32などの種類が存在するが、ファイルアロケーションテーブルによる領域管理方法はほぼ同じであり、以下では、FAT16を例に説明する。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域301が存在する。
このファイルシステム管理情報領域301には、マスターブートレコード・パーティションテーブル303、パーティションブートセクタ304、FAT(305、306)、ルートディレクトリエントリ307と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域302を管理するために必要な情報が各々格納されている。
マスターブートレコード・パーティションテーブル303は、ファイルシステムが管理する論理アドレス空間上の領域を複数のパーティションと呼ばれる領域に分割して管理するための情報が格納される領域である。
パーティションブートセクタ304は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。
FAT(305、306)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(305、306)が存在し、一方のFAT(305、306)が破損したとしても他方のFAT(305、306)によりファイルにアクセスできるよう二重化されている。
ルートディレクトリエントリ307は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
また、FATファイルシステムでは、このファイルシステム管理情報領域301に引き続く領域にファイル本体のデータなどを格納するユーザデータ領域302が存在する。
ユーザデータ領域302は、512バイトから32KB程度の大きさを持つクラスタと呼ばれる管理単位毎に分割管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT(305、306)に格納されたリンク情報により管理されている。
また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このユーザデータ領域302の一部を利用して格納される。
図3は、FAT16のディレクトリエントリの構成を示した図である。
ディレクトリエントリ308は、1つのファイル、ディレクトリ毎に32バイトのディレクトリエントリ308が割り当てられ、ファイル、ディレクトリに関する情報を格納している。すなわち、1つのファイルやディレクトリが追加される度に、32バイトのディレクトリエントリ308の情報が新規に作成され、ルートディレクトリエントリ307の領域、あるいはユーザデータ領域302に記録される。ディレクトリエントリ308の先頭8バイトには、ファイルやディレクトリの名称が格納される。
続く3バイトには、拡張子が格納される。
続く1バイトには、ファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。
また、ディレクトリエントリ308には、ファイル・ディレクトリの最終更新日時の情報や、ファイル・ディレクトリデータの実体が格納されているクラスタの開始位置を示す開始クラスタ番号、ファイルサイズのバイト数等が格納される。
このように、ディレクトリエントリ308ではファイルの先頭データを格納したクラスタの位置に関する情報しか保持しないため、ファイルデータが複数クラスタに跨って格納される場合には、その位置情報はFAT(305、306)に保持される。すなわち、ファイルを更新する場合にはファイルデータを書き込むと共に、ディレクトリエントリ308、FAT(305、306)の情報も書き込む必要がある。
続いて、図4を用いてFATファイルシステムにおけるファイルデータ書き込み処理手順について説明する。
(S401):対象ファイルのディレクトリエントリ308を読み出す。
(S402):読み出したディレクトリエントリ308に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する。
(S403):FAT(305、306)をアクセスモジュールのRAM上に読み出し、S402で取得したファイルデータの先頭位置から順にRAM上のFAT(305、306)内でリンクを辿り、書き込み位置のクラスタ番号を取得する。
(S404):ファイルデータ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する。空き領域の割り当てが必要な場合S405の処理に進む。空き領域の割り当てが不要な場合S408の処理に進む。
(S405):RAM上のFAT(305、306)内で空き領域を検索し、1クラスタの空き領域を取得する。FAT(305、306)では値が0x0000に設定されているFATエントリが空きクラスタを意味するため、空き領域を取得する処理は、FAT(305、306)上で0x0000の値を持つFATエントリを取得するという処理になる。具体的には、RAM上のFAT(305、306)内のFATエントリを順次参照し、値が0x0000に設定されているFATエントリを見つけ、該FATエントリの対応クラスタ番号の値を求める。FATエントリの検索処理は、例えば、FAT(305、306)の先頭から終端まで順に処理を実施しても良いし、前回空き領域を割り当てたFATエントリの次のFATエントリから処理を開始してFAT(305、306)の終端まで到達したらFAT(305、306)の先頭に折り返し、前回空き領域を割り当てたFATエントリまで処理を実施しても良い。このようにFATエントリの検索処理手順は、FAT(305、306)領域の全領域に対して空き領域を検索する処理を実現できるものであれば良く、特に限定はされない。
(S406):S405で取得した空きクラスタの番号に対応するFATエントリの値を、リンク終端を意味する値に設定する。FAT(305、306)では、値が0xFFFFに設定されているFATエントリがリンク終端を意味するため、S406では、該当FATエントリの値をRAM上で0xFFFFに設定する処理を実施する。
(S407):現在のリンク終端のクラスタ番号に対応するFATエントリの値を、0xFFFFからS405で取得した空きクラスタの番号にRAM上で設定する。S404において、空き領域を取得する必要があると判断された場合、ファイル終端への追記が実行される。この場合、S403でのリンクを辿る処理においてファイル終端までリンクが辿られているので、現在のリンク終端のクラスタ番号に対応するFATエントリの値は、リンク終端を意味する0xFFFFが設定されている。S407の処理において、S405で新たに取得した空きクラスタへリンクを接続することにより、ファイルのリンクが1クラスタ分長くなり、ファイルデータを追記することが可能となる。
(S408):現在参照している書き込み位置のクラスタ内にファイルデータを書き込む。S404で空き領域取得が必要であると判断した場合、現在参照している書き込み位置は、S405で取得した空きクラスタとなる。また、S404で空き領域取得が不要であると判断した場合、現在参照している書き込み位置は、S403でリンクを辿った結果到達したクラスタとなる。
(S409):全ファイルデータの書き込みが完了したか判定する。まだファイルデータが残っている場合、S404の処理に戻る。一方、全ファイルデータの書き込みが完了した場合、S410の処理に進む。
(S410):ディレクトリエントリ308内に格納されたファイルサイズや最終更新日時等の情報を更新し、情報記録モジュールの不揮発性メモリ内に格納されたディレクトリエントリ308を上書きする。
(S411):情報記録モジュールの不揮発性メモリ内に格納されたFAT(305、306)に、アクセスモジュールのRAM上のFAT(305、306)のデータを上書きし、処理を完了する。
このファイルデータ書き込み処理により、図5に示された60000バイトのデータを持つ「FILE1.TXT」に10000バイトのデータを追記した場合、図6に示されるような70000バイトのデータを持つファイルに変化する。すなわち、空きクラスタとしてクラスタ番号6のクラスタが取得されてファイルデータが追記され、FAT(305、306)上のリンクにクラスタ番号6が接続される。その結果、「FILE1.TXT」のリンクは、クラスタ番号2〜5の4クラスタからなる状態から、クラスタ番号2〜6の5クラスタからなる状態に更新される。
このように、FATファイルシステムでは、ファイルの管理情報がFAT(305、306)とディレクトリエントリ308の両方に格納されていることから、ファイルを更新する場合には、これらの情報も共に更新する必要がある。すなわち、アクセスモジュールが情報記録モジュールに格納されたファイルを更新する場合、図7に示すように、ファイルデータ(DATA)の書き込み処理、ディレクトリエントリ308(DIR)の書き込み処理、FAT(305、306)(FAT1、FAT2)の書き込み処理といった一連の書き込み処理を実施することになる。
ハイビジョン動画のようなコンテンツファイルを情報記録モジュールに格納する場合、映像のビットレートが高いため、例えば、数秒に1回の割合でディレクトリエントリ308、FAT(305、306)を更新する場合でも、ファイルデータの記録サイズは、数MB程度の比較的大きなサイズとなり、この比較的大きな記録サイズにより、ファイルデータが記録されることになる。一方、ディレクトリエントリ308やFAT(305、306)は、情報が更新される部分のみを情報記録モジュールに書き込むため、512バイトから32KB程度の比較的小さなサイズで記録されることになる。
情報記録モジュールの不揮発性メモリにNAND型フラッシュメモリを使用する場合、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさが数百KBから数MBであることから、小サイズの書き込みを実施する場合には、同一物理ブロック内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。そのため、NAND型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、先のディレクトリエントリ308やFAT(305、306)等のファイルシステム管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
また、巻き込み退避処理により小サイズの書き込みを実施する際にも、大きなサイズの書き込み処理が発生することから、NAND型フラッシュメモリの書き換え寿命が短くなるという問題も発生する。
従来、このような問題を解決する方法として、データ書き込みの際にアクセスモジュールが情報記録モジュールへデータ種別を通知する方法が提案されている(例えば、特許文献1参照)。
この方法(従来技術)では、アクセスモジュールが、データ種別として、大きなサイズのファイルデータなのか小さなサイズのファイルシステム管理情報なのかを情報記録モジュールに通知し、この通知に基づいて、情報記録モジュールに設けられた管理単位の異なる2つの不揮発性メモリにデータが振り分けられる。これにより、ファイルデータ、ファイルシステム管理情報の各々が高速に記録され、かつ、不揮発性メモリの書き換え寿命低下を防止することができる。
WO2005/043394A1
(発明が解決しようとする課題)
しかしながら、上記の従来技術では、管理単位の異なる2つの不揮発性メモリを情報記録モジュールに設ける必要があり、従来のような1つの不揮発性メモリで構成した情報記録モジュールに比べコストが高くなる可能性がある。また、2つの不揮発性メモリを搭載することにより情報記録モジュールにおける不揮発性メモリの実装面積が大きくなり、情報記録モジュールの小型化を図ることが難しくなる可能性がある。
本発明では、上記問題点に鑑み、複数の不揮発性メモリを必要とすることなく、ファイルデータおよびファイルシステム管理情報の書き込み処理を高速化し、かつ、不揮発性メモリの書き換え寿命低下を防止するアクセス装置、情報記録装置、コントローラ、及び情報記録システムを提供することを目的とする。
(課題を解決するための手段)
第1の発明は、データを格納する不揮発性メモリを有る情報記録装置に、アクセスするアクセス装置であって、ページキャッシュ情報設定部を備える。
ページキャッシュ情報設定部は、データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知する。
この情報記録装置では、ページキャッシュ情報設定部により、データ書き込みの際に一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報が、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知され、情報記録装置では、その情報に対応して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックを用いて、データの読み出し/書き込み処理を行うことができる。このため、一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、データ書き込み速度を向上させることができる。
なお、「アクセス装置」とは、アクセスモジュールを含む概念である。
第2の発明は、第1の発明であって、ページキャッシュ情報設定部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして設定した、特定の論理アドレスに関する情報を、情報記録装置に通知する。
このアクセス装置では、特定の論理アドレスに関する情報において、特定の論理アドレスの数と、データを一時保持する物理ブロックの個数とが同一であるため、このアクセス装置を用いて、特定の論理アドレスに対して、データ書き込み処理を行う場合、情報記録装置において、巻き込み退避処理の発生を防止することができるので、高速なデータ書き込み処理を行うことができる。
第3の発明は、第1の発明であって、ページキャッシュ情報設定部は、2つ以上の特定の論理アドレスへ記録するデータを一時保持する物理ブロックの数を1つに設定した、特定の論理アドレスに関する情報を、情報記録装置に通知する。
このアクセス装置では、特定の論理アドレスに関する情報において、2つ以上の特定の論理アドレスへ記録するデータを一時保持する物理ブロックの数を1つに設定するので、キャッシュ処理を行うために物理ブロックを少なくすることができる。これにより、キャッシュ処理のためのメモリ領域を抑えながら、巻き込み退避処理の発生を極力抑えた、高速なデータ書き込み処理を実現できる。
第4の発明は、第1から第3のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
これにより、ファイルシステム管理情報の書き込み処理を効率良く行うことができる。
なお、「ファイルシステム管理情報」とは、例えば、FATファイルシステムにおけるFATに関する情報や、ディレクトリエントリに関する情報である。
第5の発明は、不揮発性メモリと、ページキャッシュ制御部と、メモリ制御部と、を備える情報記録装置である。
不揮発性メモリは、データを格納する。
不揮発性メモリ制御部は、不揮発性メモリを制御する。インターフェース部は、外部のアクセス装置とデータの送受信を行う。ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。メモリ制御部は、不揮発性メモリに、ページキャッシュ情報を記録する。
この情報記録装置では、ページキャッシュ制御部により、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理が行われ、メモリ制御部により、不揮発性メモリに、ページキャッシュ情報が記録される。このため、データを一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、データ書き込み速度を向上させることができる。
なお、「情報記録装置」とは、情報記録モジュールを含む概念である。
また、「メモリ制御部」とは、不揮発性メモリに対して所定の処理(例えば、データ読み出し/書き込み処理)を行う機能部であり、例えば、ハードウェアで実現されるものであってもよく、また、CPU、ROM、RAM、不揮発性メモリインターフェース部により、実現されるものであってもよい。さらに、ハードウェアおよびソフトウェアを混在して実現されるものであってもよい。
第6の発明は、第5の発明であって、外部のアクセス装置から特定の論理アドレスに関する情報を受信するインターフェース部をさらに備える。ページキャッシュ情報は、前記インターフェース部が受信した特定の論理アドレスと、不揮発性メモリの物理ブロックとを対応付ける情報を含む。
これにより、ページキャッシュ情報を外部のアクセス装置により設定することができる。
第7の発明は、第5または第6の発明であって、ページキャッシュ制御部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
この情報記録装置では、特定の論理アドレスの数と、データを一時保持する物理ブロックの個数とが同一であるため、この情報記録装置を用いて、特定の論理アドレスに対して、データ書き込み処理を行う場合、巻き込み退避処理の発生を防止することができるので、高速なデータ書き込み処理を行うことができる。
第8の発明は、第5または第6の発明であって、ページキャッシュ制御部は、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
この情報記録装置では、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定するので、キャッシュ処理を行うために物理ブロックを少なくすることができる。これにより、キャッシュ処理のためのメモリ領域を抑えながら、巻き込み退避処理の発生を極力抑えた、高速なデータ書き込み処理を実現できる。
第9の発明は、第5から第8のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
第10の発明は、データを格納する不揮発性メモリを具備する情報記録装置を制御するコントローラであって、ページキャッシュ制御部と、メモリ制御部と、を備える。
ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。メモリ制御部は、不揮発性メモリに、ページキャッシュ情報を記録する。
第11の発明は、第10の発明であって、外部のアクセス装置から特定の論理アドレスに関する情報を受信するインターフェース部をさらに備える。ページキャッシュ情報は、インターフェース部が受信した特定の論理アドレスと、不揮発性メモリの物理ブロックとを対応付ける情報を含む。
第12の発明は、第10または第11の発明であって、ページキャッシュ制御部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
第13の発明は、第10または第11の発明であって、ページキャッシュ制御部は、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
第14の発明は、第10から第13のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
第15の発明は、情報記録装置と、情報記録装置にアクセスするアクセス装置とを有する情報記録システムである。
情報記録装置は、不揮発性メモリと、ページキャッシュ制御部と、を備える。
ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
アクセス装置は、データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知するページキャッシュ情報設定部を備える。
この情報記録システムでは、ページキャッシュ情報設定部により、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理が行われ、そして、アクセス装置のページキャッシュ情報設定部により、データ書き込みの際にデータを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報が、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知される。このため、データを一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、この情報記録システムでは、データ書き込み速度を向上させることができる。
第16の発明は、第15の発明であって、不揮発性メモリに、ページキャッシュ情報を記録するメモリ制御部を備える。
(発明の効果)
本発明によれば、複数の不揮発性メモリを必要とすることなく、ファイルデータおよびファイルシステム管理情報の書き込み処理を高速に行い、かつ、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
本発明の実施の形態1におけるアクセスモジュール、及び情報記録モジュールの構成を示した説明図 FATファイルシステムの構成を示した説明図 ディレクトリエントリの構成を示した説明図 FATファイルシステムにおけるファイルデータ書き込み処理手順を示したフローチャート FATファイルシステムにおけるファイルデータ書き込み前の状態の一例を示した説明図 FATファイルシステムにおけるファイルデータ書き込み後の状態の一例を示した説明図 FATファイルシステムにおけるファイル更新時のアクセスシーケンスの一例を示した説明図 本発明の実施の形態1における不揮発性メモリの構成の一例を示した説明図 従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフローチャート 従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図 本発明の実施の形態1におけるデータ書き込み前のアドレス管理情報の一例を示した説明図 本発明の実施の形態1におけるデータ書き込み処理手順を示したフローチャート 本発明の実施の形態1におけるデータ書き込み途中の物理ブロックの状態の一例を示した説明図 本発明の実施の形態1におけるデータ書き込み後のアドレス管理情報の一例を示した説明図 本発明の実施の形態1におけるページの状態の一例を示した説明図 本発明の実施の形態1におけるデータ読み出し処理手順を示したフローチャート 本発明の実施の形態2におけるデータ書き込み前のアドレス管理情報の一例を示した説明図 本発明の実施の形態2におけるデータ書き込み処理手順を示したフローチャート 本発明の実施の形態2におけるデータ書き込み途中の物理ブロックの状態の一例を示した説明図 本発明の実施の形態2におけるデータ書き込み後のアドレス管理情報の一例を示した説明図 本発明の実施の形態2におけるページの状態の一例を示した説明図
符号の説明
1 アクセスモジュール
2 情報記録モジュール
11,212 CPU
12,213 RAM
13 情報記録モジュールインタフェース
14,214 ROM
21 コントローラ
22 不揮発性メモリ
101 アプリケーション制御部
102 ファイルシステム制御部
103 情報記録モジュールアクセス部
104 ページキャッシュ情報設定部
211 アクセスモジュールインタフェース
215 不揮発性メモリインタフェース
216 アドレス変換制御部
217 ページキャッシュ制御部
221 アドレス管理情報
222 アドレス変換情報
223 フリーブロック情報
224 ページキャッシュ情報
301 ファイルシステム管理情報領域
302 ユーザデータ領域
303 マスターブートレコード・パーティションテーブル
304 パーティションブートセクタ
305,306 FAT
307 ルートディレクトリエントリ
308 ディレクトリエントリ
以下、本発明のアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムについて、図面を参照しつつ説明する。
[実施の形態1]
<1:アクセスモジュール、情報記録モジュールの構成>
図1は、本発明の実施の形態1におけるアクセスモジュール、情報記録モジュールの構成図である。
図1において、アクセスモジュール1は、CPU11、RAM12、情報記録モジュールインタフェース13、ROM14を含む。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムはRAM12を一時記憶領域として使用し、CPU11上で動作する。
情報記録モジュールインタフェース13は、情報記録モジュール2とアクセスモジュール1との接続部であり、制御信号及びデータの送受信を行う。
ROM14は、更に、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部103を含む。
アプリケーション制御部101は、データの生成や電源の制御などアクセスモジュール1全体の制御を行う。
ファイルシステム制御部102は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。
情報記録モジュールアクセス部103は、ファイルシステム制御部102からデータと共にサイズとアドレスを渡され、指定されたサイズのデータを情報記録モジュール2の記録領域内における指定された位置に記録するなど、情報記録モジュール2に対するコマンドやデータの送受信を制御する。
ファイルシステム制御部102は、更に、ページキャッシュ情報設定部104を含む。
ページキャッシュ情報設定部104は、本発明の特徴であるページキャッシュに対するアクセスを制御する制御部であり、従来のアクセスモジュールには存在しないものである。
一方、図1において、情報記録モジュール2は、コントローラ21と不揮発性メモリ22とを含む。
コントローラ21は、不揮発性メモリ22の制御全般を行うモジュールであり、例えば、CPU等を含むシステムLSIとして構成される。
コントローラ21は、更に、アクセスモジュールインタフェース211、CPU212、RAM213、ROM214、および、不揮発性メモリインタフェース215を含む。
アクセスモジュールインタフェース211は、情報記録モジュール2とアクセスモジュール1との接続部であり、情報記録モジュールインタフェース13同様、制御信号及びデータを送受信するインタフェースである。
ROM214には、情報記録モジュール2を制御するプログラムが格納されており、このプログラムは、RAM213を一時記憶領域として使用し、CPU212上で動作する。
不揮発性メモリインタフェース215は、コントローラ21と不揮発性メモリ22との接続部であり、不揮発性メモリ22に対するコマンドやデータの送受信を制御する。
ROM214は、更に、アドレス変換制御部216、ページキャッシュ制御部217を含む。
アドレス変換制御部216は、不揮発性メモリ22上の物理アドレスと、アクセスモジュール1からアクセス可能なアドレス空間として情報記録モジュール2が提供する論理アドレス空間における論理アドレスとの対応付けを制御する制御部であり、従来の情報記録モジュールに存在するアドレス変換制御部と同様の制御部である。
ページキャッシュ制御部217は、本発明の特徴であるページキャッシュを制御する制御部であり、従来の情報記録モジュールには存在しないものである。
また、不揮発性メモリ22は、ユーザデータを格納する領域とは別の領域にアドレス管理情報221を格納する。
アドレス管理情報221は、先に説明した物理アドレスと論理アドレスとの対応付け等、不揮発性メモリ22内の記録領域のアドレス管理に使用する情報である。そのため、ユーザデータは、アクセスモジュール1からアクセス可能な論理アドレス空間内に格納されるのに対し、アドレス管理情報221は、アクセスモジュール1からアクセスできないよう論理アドレス空間の外側(アクセスモジュール1から論理アドレスを用いてアクセスできない領域)に格納される。
アドレス管理情報221は、更に、物理アドレスと論理アドレスとの対応付けを管理するアドレス変換情報222と、空き物理ブロックを管理するフリーブロック情報223と、ページキャッシュを管理するページキャッシュ情報224とを含む。
アドレス変換情報222、フリーブロック情報223は、従来の情報記録モジュールに含まれる情報と同様のものである。
一方、ページキャッシュ情報224は、本発明の特徴であるページキャッシュを管理するための情報であり、従来の情報記録モジュールには存在しないものである。
本発明の実施の形態1における情報記録モジュール2は、不揮発性メモリ22内にページキャッシュ情報224を格納する。
情報記録モジュール2内のページキャッシュ制御部217は、このページキャッシュ情報224を用いて、小サイズのデータ(情報)の書き込み処理を、キャッシュ的に使用される特定の物理ブロック上で実施する。
また、本発明の実施の形態1におけるアクセスモジュール1は、ページキャッシュ情報224に設定すべき情報を情報記録モジュール2に通知するページキャッシュ情報設定部104を備える。これらアクセスモジュール1、情報記録モジュール2を組み合わせることにより、小サイズのデータ(情報)の書き込み処理をページキャッシュ上で実行し、書き込み処理を高速化することが可能となる。また、無駄な巻き込み退避処理を削減することにより、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
<2:不揮発性メモリ22の構成>
続いて図8を用いて、本発明の実施の形態1における不揮発性メモリ22の構成について説明する。
不揮発性メモリ22は、例えば、NAND型フラッシュメモリが用いられる。不揮発性メモリ22は、複数の物理ブロックから構成される。
物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データの読み出し、書き込みを行う単位である。更に、ページは、データ部と冗長部を含む。
データ部は、論理アドレス空間としてアクセスモジュール1からアクセスが可能な領域であり、実際にファイルデータ等が格納される領域である。
また、冗長部は、不揮発性メモリ22の管理情報やECC等が格納される領域であり、アクセスモジュール1からアクセスできない領域である。データ部の大きさは、例えば4KB、冗長部の大きさは128バイト程度となる。
また、データ部にのみ着目した場合の物理ブロックの大きさは、例えば512KB程度となる。よって、この大きさの物理ブロック2048個から構成される不揮発性メモリ22は、総容量1GBとなる。
<3:情報記録モジュールにおけるデータ書き込み処理手順について>
続いて本発明の特徴を明確にするために、従来の情報記録モジュールにおけるデータ書き込み処理手順と、本発明の実施の形態1における情報記録モジュールにおけるデータ書き込み処理手順とを比較して説明する。
(3.1:従来の情報記録モジュールにおけるデータ書き込み処理手順)
まずは、図9、図10を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
図9は、従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフロー図であり、同処理におけるアドレス変換については、情報記録モジュール内のアドレス変換制御部により実施される。
図10は、従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図である。図10(a)は書き込み前の状態を示し、図10(b)は書き込み後の状態を示す。図10(a)に示すように、従来の情報記録モジュールにおけるアドレス管理情報は、アドレス変換情報と、フリーブロック情報とを含む。
アドレス変換情報は、論理アドレスと物理アドレスとの対応付けを管理する情報であり、構成の一例としては各論理ブロックに対して割り当てられている物理ブロックの番号を格納した表により構成される。また、フリーブロック情報は、未割り当ての空き物理ブロックの番号を管理する情報である。
以下、図9を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
(S901):アドレス変換情報を参照し、書き込み対象領域の元データが格納された物理ブロックの番号を取得する。図10の例では、論理ブロック番号0x0001の先頭ページに存在する「データA」を「データE」で上書きする場合を想定する。この場合、アドレス変換情報を参照し論理ブロック番号0x0001に対応する物理ブロック番号として0x0001を取得する。
(S902):フリーブロック情報を参照し、フリーブロックの物理ブロック番号を取得する。図10(a)の例では、フリーブロック情報を参照し、先頭に格納されている値である0x000Eを取得する。すなわち、物理ブロック番号0x000Eのブロックは、現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
(S903):S902で取得したフリーブロックに新データを書き込む。図10の例では、物理ブロック番号0x000Eのブロックの先頭ページに「データE」を書き込む。
(S904):フリーブロックに残りの有効データをコピーする。図10の例では、物理ブロック0x0001のデータB以降のデータは書き込み後も有効なデータとして保持される必要があることから、データB以降の全データをフリーブロックである物理ブロック番号0x000Eのブロックにコピーする。この処理が、一般に、「巻き込み退避処理」と呼ばれている処理である。
(S905):アドレス変換情報を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図10の例では、論理ブロック番号0x0001に対応する物理ブロックとして0x0001が管理されていたが、今回の書き込み処理により0x000Eに変化するため、アドレス変換情報の該当箇所を0x000Eに書き換える。
(S906):元データが格納されていた物理ブロックを消去する。図10の例では、物理ブロック番号0x0001のブロックに含まれる全データを消去する。
(S907):使用したフリーブロックをフリーブロック情報から削除する。図10の例では、物理ブロック番号0x000Eのブロックが使用されたため、フリーブロック情報から0x000Eの番号を削除する。
(S908):元データが格納されていた物理ブロックをフリーブロック情報に登録する。図10の例では、元データが格納されていた物理ブロック番号0x0001のブロックがフリーブロックとして管理されるよう、フリーブロック情報に0x0001の番号を登録する。
これら一連の処理により、アドレス管理情報は、図10(a)の状態から図10(b)の状態に変化する。この例では、1ページの書き込み処理を実施する場合について説明したが、実際にはS904の巻き込み退避処理により該当物理ブロックの残り有効データも全て書き込まれるため、1物理ブロック分の書き込み処理が発生することになる。この巻き込み退避処理の発生頻度は、書き込みデータのデータサイズが大きい程減少し、物理ブロック単位でデータを書き込んだ場合、巻き込み退避処理は発生しなくなる。すなわち、ページサイズが4KB、物理ブロックサイズが512KBの場合を想定すると、4KB書き込む場合と512KB書き込む場合で処理時間がほぼ同じになるため、処理速度でみるとページ単位で書き込んだ場合は物理ブロック単位で書き込んだ場合に比べ128倍遅くなることになる。
本発明では、このように小サイズのデータを書き込んだ場合に生じる速度低下を削減し、かつ、不揮発性メモリの書き換え寿命低下を防止する方法を提供する。
図11は、本発明の実施の形態1における情報記録モジュール2内に存在するアドレス管理情報221の構成の一例を示した説明図である。図11におけるアドレス変換情報222、フリーブロック情報223は、従来の情報記録モジュールに存在する情報と同様である。本発明の実施の形態1におけるアドレス管理情報221は、更に、ページキャッシュ情報224を含む。
ページキャッシュ情報224は、特定の物理ブロックをキャッシュ的に使用して小サイズのデータ書き込みを行う際に必要な情報を格納したものである。図11の例では、3つの物理ブロックをページキャッシュとして使用する場合を示しており、ページキャッシュ番号として、各々0x0000、0x0001、0x0002の番号が一意に割り当てられている。
ページキャッシュ情報224は、各々のページキャッシュ番号に対応する物理ブロックの番号、論理ブロックの番号、論理ページの番号を含む。例えば、図11の例では、ページキャッシュ番号0x0000のページキャッシュには、物理ブロック番号0x03F0のブロックが割り当てられており、論理ブロック番号0x0001、論理ページ番号0x0000の論理アドレスに対する読み書きが発生した場合に、このページキャッシュが使用されることを意味している。
(3.2:情報記録モジュール2におけるデータ書き込み処理手順)
続いて、図11から図15を用いて本発明の実施の形態1の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
図11は、データ書き込み前のアドレス管理情報221の状態の一例を示しており、図14は、データ書き込み後のアドレス管理情報221の状態の一例を示している。
図12は、データ書き込み処理手順を示している。
図13は、データ書き込み途中における、元データが格納されている物理ブロックと、ページキャッシュに割り当てられている物理ブロックの状態を示している。
図15は、ページキャッシュに割り当てられている物理ブロック内のページの状態の一例を示している。
これらの例では、論理ブロック番号0x0001の先頭ページ(論理ページ番号:0x0000)に存在する「データA」を、「データE」、「データF」、・・・、「データZ」で順次上書きする場合を想定している。
以下、図12を用いて本発明の実施の形態1の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
(S1201):ページキャッシュ情報224を参照し、書き込み対象領域がページキャッシュに該当するか確認する。該当する場合は、S1203の処理に進み、該当しない場合は、S1202の処理に進む。
図11の例では、書き込み対象領域を論理ブロック番号0x0001の先頭ページ(論理ページ番号0x0000)とした場合、ページキャッシュ番号0x0000に対応する論理ブロック番号、論理ページ番号と一致するため、書き込み対象領域がページキャッシュ番号0x0000のページキャッシュに該当すると判定する。
(S1202):S1201の判定で書き込み対象領域がページキャッシュに「該当しない」と判定した場合、ページキャッシュを使用せず通常の書き込み処理を実施し、処理を終了する。具体的には、図9のフローで説明した書き込み処理と同様の処理を実施する。この場合、小サイズのデータ(情報)の書き込み処理を実施しても高速に書き込みは行えないが、本発明の実施の形態1では、小サイズのデータ(情報)の書き込み処理は、ページキャッシュを使用し、ファイルデータ等の大きなサイズのデータを、ページキャッシュを使用せずに物理ブロック単位で書き込む場合を想定する。このように、ページキャッシュを小サイズのデータ(情報)の書き込み処理に使用することにより、書き込み処理速度を向上させることが可能となる。例えば、情報記録モジュール2に、動画などのリアルタイムデータを書き込む場合、情報記録モジュール2に、大容量のストリームデータと小容量のファイルシステム管理情報とを交互に記録することになるが、情報記録モジュール2では、小容量のファイルシステム管理情報(小サイズのデータ(情報)の一例)に対して、ページキャッシュを用いて書き込み処理を行うので、巻き込み退避処理の発生を抑制することができる。これにより、情報記録モジュール2におけるデータ書き込み処理速度を向上させることができる。
(S1203):S1201の判定で書き込み対象領域がページキャッシュに「該当する」と判定した場合、該当ページキャッシュの物理ブロック内に空きページが存在するか否かを確認する。空きページが存在する場合は、S1204の処理に進み、存在しない場合は、S1205の処理に進む。
空きページの存在を確認する方法の一例としては、図15に示すように、ページ内の冗長部に使用済みか否かを示すフラグ(Usedフラグ)を格納する方法がある。Usedフラグは、例えば、1ビットのフラグであり、空きページであれば「1」に設定され、データ書き込み済みであれば「0」に設定される。初期値として、全ページのUsedフラグを「1」に設定しておき、ページのデータ部に書き込みを行う際に、併せて冗長部のUsedフラグに「0」を書き込むことにより、どのページが空きページであるか判定することが可能となる。
(S1204):S1203の判定において、該当ページキャッシュの物理ブロック内に空きページが存在すると判定した場合、該当空きページに新データを書き込み、処理を終了する。図13(a)の状態では、ページキャッシュに割り当てられている物理ブロック番号0x03F0のブロックの全ページが消去済みであり、空きページとして管理されている。そのため、論理ブロック番号0x0001、論理ページ番号0x0000に上書きされる「データE」は、ページキャッシュの物理ブロック番号0x03F0の先頭ページに書き込まれ、図13(b)の状態となる。同様に、「データF」、「データG」、・・・、「データY」まで、順次、同一アドレス(同一論理アドレス)に上書きを実施した場合、図13(c)、(d)の状態となる。
(S1205):S1203の判定において、該当ページキャッシュの物理ブロック内に空きページが存在しないと判定した場合、フリーブロック情報223を参照し、フリーブロックの物理ブロック番号を取得する。図11の例では、フリーブロック情報223を参照し、先頭に格納されている値である0x000Eを取得する。すなわち、物理ブロック番号0x000Eのブロックは、現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
(S1206):S1205で取得したフリーブロックに新データを書き込む。図13(e)の例では、物理ブロック番号0x000Eのブロックの先頭ページに「データZ」を書き込む。
(S1207):ページキャッシュ情報224を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図11の例では、ページキャッシュ番号0x0000に対応する物理ブロックとして0x03F0が管理されていたが、今回の書き込み処理により0x000Eに変化するため、ページキャッシュ情報224の該当箇所を0x000Eに書き換える。
(S1208):従来ページキャッシュとして使用されていた旧物理ブロックを消去する。図13(e)の例では、物理ブロック番号0x03F0のブロックに含まれる全データを消去する。
(S1209):使用したフリーブロックをフリーブロック情報223から削除する。図14の例では、物理ブロック番号0x000Eのブロックが使用されたため、フリーブロック情報223から0x000Eの番号を削除する。
(S1210):ページキャッシュとして使用されていた旧物理ブロックをフリーブロック情報223に登録し、処理を終了する。図14の例では、ページキャッシュとして使用されていた物理ブロック番号0x03F0のブロックがフリーブロックとして管理されるよう、フリーブロック情報223に0x03F0の番号を登録する。
これら一連の処理により、アドレス管理情報221は、図11の状態から図14の状態に変化する。図9の従来の書き込み処理手順と図12の本発明の実施の形態1の書き込み処理手順とで最も異なる点は、S904の巻き込み退避処理が本発明の実施の形態1では発生しない点である。本発明の実施の形態1では、ページキャッシュを使用することにより巻き込み退避処理の発生を防止し、小サイズのデータ(情報)の書き込み処理速度を向上させることが可能となる。
<4:データ読み出し処理手順>
続いて、図16を用いて、本発明の実施の形態1の情報記録モジュール2におけるデータ読み出し処理手順を説明する。
(S1601):ページキャッシュ情報224を参照し、読み出し対象領域がページキャッシュに該当するか確認する。該当する場合は、S1604の処理に進み、該当しない場合はS1602の処理に進む。
(S1602):S1601の判定で読み出し対象領域がページキャッシュに「該当しない」と判定した場合、アドレス変換情報222を参照し、読み出し対象領域のデータを格納している物理ブロック番号を取得する。
(S1603)S1602で取得した物理ブロック番号のブロックからデータを読み出し、処理を終了する。
(S1604):S1601の判定で読み出し対象領域がページキャッシュに「該当する」と判定した場合、該当ページキャッシュに割り当てられた物理ブロックからデータを読み出し、処理を終了する。
本発明の実施の形態1では、ページキャッシュを用いた管理を行うために、ページキャッシュに割り当てられた論理アドレスの領域は、アドレス変換情報222により管理される物理ブロックの領域と、ページキャッシュ情報224により管理される物理ブロックの領域との両方にデータが存在する可能性がある。そのため、いずれかのデータを有効なデータとして判定する必要があるが、本発明の実施の形態1では、常に、ページキャッシュ上に格納されたデータを有効なデータとして判定することにより、一意に有効データを特定している。
<5:ページキャッシュ情報設定部104>
続いて本発明の実施の形態1のアクセスモジュール1内のページキャッシュ情報設定部104について説明する。
アクセスモジュール1内のページキャッシュ情報設定部104は、情報記録モジュール2に対してページキャッシュに関する情報を設定、解除する機能を実現する。図7を用いて説明したように、DATA、DIR、FAT1、FAT2の順でデータを書き込む場合、小サイズのデータ(情報)の書き込み処理となるDIRの書き込み処理、FAT1の書き込み処理、FAT2の書き込み処理について、ページキャッシュを使用する。
ページキャッシュを使用する場合には、書き込み処理に先立ち、予めアクセスモジュール1内のページキャッシュ情報設定部104が、情報記録モジュール2に対してページキャッシュ情報224の設定コマンドを発行する。
設定コマンドは、例えば、SetPageCacheInfo(PageCacheNum,LogicalBlockNum,LogicalPageNum)のような形式のものである。
「PageCacheNum」は、情報を設定する対象のページキャッシュ番号を意味し、例えば、図11のように3つのページキャッシュが存在する場合には、0x0000、0x0001、0x0002のいずれかの値を設定する。
「LogicalBlockNum」、「LogicalPageNum」は、ページキャッシュ対象領域とする論理アドレスを意味し、例えば、図11のページキャッシュ番号0x0000の例では、
「LogicalBlockNum」には、0x0001が、
「LogicalPageNum」には、0x0000が、
それぞれ、設定されている。
このように、ページキャッシュ情報224の設定コマンドでは、設定対象のページキャッシュ番号と、対象領域の論理アドレスを設定する。
これにより、該当対象領域が該当ページキャッシュの領域として設定される。そして、この設定以降において、アクセスモジュール1が、情報記録モジュール2に対して、発行する読み出し/書き込みコマンドが、ページキャッシュ対象領域に設定されている領域にアクセスするものである場合、当該コマンドによる読み出し/書き込み処理において、ページキャッシュが使用されることになる。
図11の例では、3つのページキャッシュが存在しているため、それぞれDIR、FAT1、FAT2の領域を予めページキャッシュ領域として登録しておくことで、図7のようなアクセスをした場合に、DIR、FAT1、FAT2がページキャッシュを用いて高速に書き込まれ、一連のファイルデータ書き込み処理を高速化することが可能となる。
また、ページキャッシュの対象領域として設定されている論理アドレスを変更する処理は、アクセスモジュール1から情報記録モジュールに対して、再度SetPageCacheInfoコマンドを発行することで実施することができる。具体的には、PageCacheNumに、以前と同じページキャッシュ番号を設定し、LogicalBlockNum、LogicalPageNumに、以前とは異なる論理アドレスを設定して、SetPageCacheInfoコマンドを発行することにより、該当ページキャッシュの対象領域を変更することができる。
この場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させる必要がある。
この移動処理は、図9で説明した従来のデータ書き込み処理手順と同様の手順により実現できる。具体的には、フリーブロック情報223を参照してフリーブロックを取得し、そのフリーブロックにアドレス変換情報222により管理されている物理ブロックに格納された情報と、ページキャッシュ情報224により管理されている物理ブロックに格納された情報を結合して書き込み、その領域がアドレス変換情報222によって管理されるようにアドレス変換情報222、フリーブロック情報223、ページキャッシュ情報224を更新する。
これらの処理により、既にページキャッシュ領域として設定されている論理アドレスに対応するデータが、アドレス変換情報222によって管理される領域に移動し、該当ページキャッシュを異なる論理アドレスに対して使用することが可能となる。
以上のように、本発明の実施の形態1のアクセスモジュール1と情報記録モジュール2とを組み合わせて使用し、小サイズのデータ(情報)の書き込み処理をページキャッシュで管理し、無駄な巻き込み退避処理の発生を防止することで、書き込み処理を高速に実施することが可能となる。
このように、本実施形態のアクセスモジュール1と情報記録モジュール2では、無駄な巻き込み退避処理の発生を防止することができるので、不揮発性メモリ22に対する書き込み処理回数が削減される。その結果、不揮発性メモリ22の書き換え寿命の低下を防止することも可能となる。
更に、本発明の実施の形態1のページキャッシュによる管理方法では、アクセスモジュール1から情報記録モジュール2に対して、1ページのデータ書き込み処理を実施した場合、不揮発性メモリ22上に書き込まれるデータも常に1ページになる。
そのため、ムービー等でリアルタイムに動画を記録するような場合、従来の書き込み処理手順ではDIR、FAT1、FAT2の更新時に、巻き込み退避処理が発生すると、一例で、処理速度が128倍遅くなるタイミング(期間)が発生する(ページサイズが4KB、物理ブロックサイズが512KBの場合を想定すると、4KB書き込む場合と512KB書き込む場合で処理時間がほぼ同じになるため、処理速度でみるとページ単位で書き込んだ場合は物理ブロック単位で書き込んだ場合に比べ128倍(=512/4)遅くなることになる。)。このため、安定してリアルタイム記録が行えなかった。
それに対し、本発明では、DIR、FAT1、FATの更新時間が、常に一定の短時間で処理されるため(巻き込み退避処理の発生を抑えることができるので、DIR、FAT1、FATの更新処理の最低処理時間を確定させることができるため)、安定してリアルタイム記録を実施することが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は、上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。本発明の実施の形態で記載された数値は一例であり、他の値を使用しても良い。例えば、物理ブロックサイズやページサイズ等の値は全て一例であり、本発明の実施の形態1で記載した値に限定されるものではない。
また、図1の説明において、情報記録モジュール2のコントローラ21の構成を説明したが、その他の構成としても良い。例えば、コントローラ21内のCPU212やRAM213等をコントローラ21の外部に配置しても良いし、逆に、その他の構成要素をコントローラ21内に含ませても良い。
また、本発明の実施の形態ではファイルシステムとして、FAT16を例として説明したが、その他のファイルシステムを用いても良い。
また、情報記録モジュール2の不揮発性メモリ22に格納されるアドレス管理情報221が、アドレス変換情報222、フリーブロック情報223、ページキャッシュ情報224から構成される例について説明したが、この構成は一例であり、同様のアドレス管理を実現できるものであれば、その他の構成としても良い。例えば、アドレス変換情報222を一元的な管理テーブルとして実現せず、ページの冗長部内に情報を分散して格納するような構成としても良い。あるいはアドレス変換情報とフリーブロック情報とを1つのテーブルで一元管理するような構成としても良い。
また、情報記録モジュール2に使用される不揮発性メモリ22の枚数は1枚である必要はなく、複数枚を組み合わせて使用しても良い。特に、複数の不揮発性メモリ22に対して並列にデータ書き込みできるように構成した場合、更に、書き込み処理を高速化することが可能となる。
また、本発明の実施の形態におけるページキャッシュを有効に使用するためには、書き込みサイズをページキャッシュの管理単位に合わせて適切に設定する必要がある。そのため、アクセスモジュール1と情報記録モジュール2との間で、ページサイズや物理ブロックサイズ、ページキャッシュの数等の情報を送受信できるコマンドを設けると、更に効果的である。
また、本発明の実施の形態では、ページキャッシュとして使用される物理ブロックにページ単位で新データが追記される場合について説明した。そのため、ページキャッシュ上に格納されたデータの中で最新の有効データは、常に同一物理ブロック内の最後尾に格納されたデータとなり、一意に特定することが可能となる。この方法は、一例であり、本発明は、この方法に限定されるものではない。例えば、ページキャッシュとして使用される物理ブロック内の任意のページにデータを書き込み、冗長領域に最新のデータであることを示すフラグやシーケンス番号などを格納することにより、最新の有効データが格納されたページを特定しても良い。
また、本実施の形態で説明したSetPageCacheInfoコマンドの形式は一例であり、コマンドの引数として設定する情報は、同様の情報を設定できるものであれば、その他の情報形式を用いても良い。本実施の形態では、説明のために、ページキャッシュ番号を用いて説明したが、これに限定されることはなく、論理アドレスでページキャッシュの対象となるデータを識別する方法を用いるのであれば、必ずしもページキャッシュ番号を用いなくてもよい。
また、本実施の形態では、説明のために、ページキャッシュ情報をページキャッシュ番号と、物理ブロック番号、論理ブロック番号、論理ページ番号を用いて管理する方法を用いたが、これについても、論理アドレス(論理ブロック番号と論理ページ番号)からページキャッシュを識別できるのであれば、必ずしもページキャッシュ番号を用いなくてもよい。
また、本発明の実施の形態では、小サイズのデータ(情報)書き込みとして、DIR、FAT1、FAT2等のファイルシステム管理情報を例に挙げて説明したが、それ以外のデータ書き込みであっても小サイズのデータを書き込む場合であれば、本発明を適用することで書き込み処理を高速化することができる。例えば、テキストデータ等の小サイズのファイルデータを書き込む場合に、ページキャッシュを使用しても良いし、ファイルシステムで記録領域を管理していない場合であっても、小サイズのデータ(情報)書き込みにページキャッシュを使用しても良い。
[実施の形態2]
続いて本発明の別の実施の形態について説明する。
本発明の実施の形態2におけるアクセスモジュール、情報記録モジュールの構成は、図1で説明した構成と同じである。
本発明の実施の形態2が本発明の実施の形態1と異なる点は、ページキャッシュとして、実施の形態1では、3つの物理ブロックを割り当てて管理していた所を、本実施形態では、1つの物理ブロックのみを割り当てて管理するようにした点である。そのため、本発明の実施の形態1では、アドレス管理情報221の構成は、図11に示すものであったが、本実施形態では、アドレス管理情報221の構成は、図17に示すものに変更される。
つまり、図17に示すアドレス管理情報221(実施の形態2)と、図11に示すアドレス管理情報221(実施の形態1)との相違点は、ページキャッシュ情報224内に格納される物理ブロック番号が3つから1つに減少している点である。つまり、本実施形態では、実際にページキャッシュに割り当てられる物理ブロックを減少させることができる。
続いて、図17から図21を用いて、本発明の実施の形態2の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
図17は、データ書き込み前のアドレス管理情報221の状態の一例を示しており、図20は、データ書き込み後のアドレス管理情報221の状態の一例を示している。
図18は、データ書き込み処理手順を示している。
図19は、データ書き込み途中における、ページキャッシュに割り当てられている物理ブロックと、次にページキャッシュに割り当てられるフリーブロックの状態を示している。
図21は、ページキャッシュに割り当てられている物理ブロック内のページの状態の一例を示している。
これらの例では、3つのページキャッシュを順次上書きする場合を想定している。
図18に示したデータ書き込み処理手順が、図12に示したデータ書き込み処理手順と異なる点は、図18に示したデータ書き込み処理手順において、S1807のコピー処理が増加している点である。
本発明の実施の形態2におけるページキャッシュ管理では、1つの物理ブロックに3つのページキャッシュのデータを格納するため、該物理ブロックには、3ページ分の有効データが格納されることになる。
図19は、ページキャッシュに追記を繰り返した後の状態を示した説明図である。
図19(a)の例では、
「データM_0」がページキャッシュ番号0x0000の最新有効データを、
「データM_1」がページキャッシュ番号0x0001の最新有効データを、
「データM_2」がページキャッシュ番号0x0002の最新有効データを、
それぞれ、意味する。
ここで、ページキャッシュ番号0x0000に対して、「データN_0」を書き込んだ場合、物理ブロック番号0x000Eのフリーブロック先頭に「データN_0」が書き込まれる。この際、「データM_0」は、旧データなので(「データM_0」は、「データN_0」により更新される前のデータであり、もはや不要なデータなので)消去しても構わないが、「データM_1」、「データM_2」は、他のページキャッシュの有効データであるため、消去することはできない。
そのため、先に、「データN_0」を書き込んだ物理ブロック番号0x000Eのブロックに、「データM_1」、「データM_2」をコピーし、図19(b)の状態にする。
その後、「データN_1」、「データN_2」のデータが、それぞれページキャッシュに書き込まれた場合、図19(c)の状態となる。
また、この状態でのアドレス管理情報221は、図20の状態となる。
また、図15で説明したページ内の冗長部に格納される情報は、本発明の実施の形態2では、図21のようになる。図21に示すページが、図15に示すページと異なる点は、図21に示すページでは、ページキャッシュ番号が追加されている点である。本発明の実施の形態2では、ページキャッシュに割り当てられる1つの物理ブロックを複数のページキャッシュで共用するため、各ページに対応するページキャッシュの番号を保持する必要がある。そのため、冗長部にページキャッシュ番号を格納するフィールドを設け、対応ページキャッシュの識別に用いる。
以上のように本発明の実施の形態2の情報記録モジュール2は、1つの物理ブロックを複数のページキャッシュで共用して使用する。
これにより、小サイズのデータ(情報)書き込み時に、S1807で説明した若干のコピー処理(上記の例では、3ページ分のコピー処理)が必要になるものの、ページキャッシュとして使用される物理ブロックの個数が1つで実現できるため、より多くの物理ブロックを論理アドレス空間に割り当てることができ、領域使用効率を高めることが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、本発明の実施の形態1に記載された種々の変形例を本発明の実施の形態2に適用しても良い。
[他の実施形態]
なお、上記実施形態で説明したアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明に関わるアクセスモジュール1は、ページキャッシュの制御に必要な情報を設定する機能を有するページキャッシュ情報設定部104を含む。また、本発明の情報記録モジュール2は、不揮発性メモリ22内にページキャッシュ情報224を格納し、その情報を元に特定の物理ブロックをキャッシュ的に使用する機能を有するページキャッシュ制御部217を含む。これらアクセスモジュール1と情報記録モジュール2とを組み合わせることにより、小サイズのデータ書き込み時にページキャッシュを使用し、高速に書き込み処理を実施することが可能となる。また、ページキャッシュにより無駄な巻き込み退避処理の発生を防止することにより、不揮発性メモリ22の書き換え寿命の低下を防止することが可能となる。更に、小サイズのデータ書き込み処理が常に高速に行えることから、リアルタイム記録を安定して実施することが可能となる。
このようなアクセスモジュール1は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器、とりわけコンテンツデータをリアルタイムに情報記録モジュールに記録する必要がある機器に最適であり、PCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。
また、本発明の情報記録モジュール2は、上記デジタルコンテンツなどを格納するメモリカードなどのリムーバブルメディア、あるいは内蔵記録装置等として利用することができる。

本発明は、データを不揮発性メモリに格納し、ファイルとして管理するアクセス装置、情報記録装置、コントローラ、及び情報記録システムに関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にフラッシュROM等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、フラッシュROM等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
従来、メモリカードや機器内蔵ストレージに格納されたデータは、ファイルシステムにより管理されている。データをファイルシステムにより管理することで、同一のファイルシステムを解釈する機器間でデータをファイルとして共有することが可能となり、ユーザは、自分の格納したデータを複数の機器間で容易に参照したり、コピーしたりすることが可能となる。
従来最も広く使用されているファイルシステムは、FATファイルシステムと呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
図2に、FATファイルシステムの構成を示す。
FATファイルシステムでは、ファイルアロケーションテーブル内の管理単位のビット幅の違いにより、FAT12、FAT16、FAT32などの種類が存在するが、ファイルアロケーションテーブルによる領域管理方法はほぼ同じであり、以下では、FAT16を例に説明する。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域301が存在する。
このファイルシステム管理情報領域301には、マスターブートレコード・パーティションテーブル303、パーティションブートセクタ304、FAT(305、306)、ルートディレクトリエントリ307と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域302を管理するために必要な情報が各々格納されている。
マスターブートレコード・パーティションテーブル303は、ファイルシステムが管理する論理アドレス空間上の領域を複数のパーティションと呼ばれる領域に分割して管理するための情報が格納される領域である。
パーティションブートセクタ304は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。
FAT(305、306)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(305、306)が存在し、一方のFAT(305、306)が破損したとしても他方のFAT(305、306)によりファイルにアクセスできるよう二重化されている。
ルートディレクトリエントリ307は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
また、FATファイルシステムでは、このファイルシステム管理情報領域301に引き続く領域にファイル本体のデータなどを格納するユーザデータ領域302が存在する。
ユーザデータ領域302は、512バイトから32KB程度の大きさを持つクラスタと呼ばれる管理単位毎に分割管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT(305、306)に格納されたリンク情報により管理されている。
また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このユーザデータ領域302の一部を利用して格納される。
図3は、FAT16のディレクトリエントリの構成を示した図である。
ディレクトリエントリ308は、1つのファイル、ディレクトリ毎に32バイトのディレクトリエントリ308が割り当てられ、ファイル、ディレクトリに関する情報を格納している。すなわち、1つのファイルやディレクトリが追加される度に、32バイトのディレクトリエントリ308の情報が新規に作成され、ルートディレクトリエントリ307の領域、あるいはユーザデータ領域302に記録される。ディレクトリエントリ308の先頭8バイトには、ファイルやディレクトリの名称が格納される。
続く3バイトには、拡張子が格納される。
続く1バイトには、ファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。
また、ディレクトリエントリ308には、ファイル・ディレクトリの最終更新日時の情報や、ファイル・ディレクトリデータの実体が格納されているクラスタの開始位置を示す開始クラスタ番号、ファイルサイズのバイト数等が格納される。
このように、ディレクトリエントリ308ではファイルの先頭データを格納したクラスタの位置に関する情報しか保持しないため、ファイルデータが複数クラスタに跨って格納される場合には、その位置情報はFAT(305、306)に保持される。すなわち、ファイルを更新する場合にはファイルデータを書き込むと共に、ディレクトリエントリ308、FAT(305、306)の情報も書き込む必要がある。
続いて、図4を用いてFATファイルシステムにおけるファイルデータ書き込み処理手順について説明する。
(S401):対象ファイルのディレクトリエントリ308を読み出す。
(S402):読み出したディレクトリエントリ308に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する。
(S403):FAT(305、306)をアクセスモジュールのRAM上に読み出し、S402で取得したファイルデータの先頭位置から順にRAM上のFAT(305、306)内でリンクを辿り、書き込み位置のクラスタ番号を取得する。
(S404):ファイルデータ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する。空き領域の割り当てが必要な場合S405の処理に進む。空き領域の割り当てが不要な場合S408の処理に進む。
(S405):RAM上のFAT(305、306)内で空き領域を検索し、1クラスタの空き領域を取得する。FAT(305、306)では値が0x0000に設定されているFATエントリが空きクラスタを意味するため、空き領域を取得する処理は、FAT(305、306)上で0x0000の値を持つFATエントリを取得するという処理になる。具体的には、RAM上のFAT(305、306)内のFATエントリを順次参照し、値が0x0000に設定されているFATエントリを見つけ、該FATエントリの対応クラスタ番号の値を求める。FATエントリの検索処理は、例えば、FAT(305、306)の先頭から終端まで順に処理を実施しても良いし、前回空き領域を割り当てたFATエントリの次のFATエントリから処理を開始してFAT(305、306)の終端まで到達したらFAT(305、306)の先頭に折り返し、前回空き領域を割り当てたFATエントリまで処理を実施しても良い。このようにFATエントリの検索処理手順は、FAT(305、306)領域の全領域に対して空き領域を検索する処理を実現できるものであれば良く、特に限定はされない。
(S406):S405で取得した空きクラスタの番号に対応するFATエントリの値を、リンク終端を意味する値に設定する。FAT(305、306)では、値が0xFFFFに設定されているFATエントリがリンク終端を意味するため、S406では、該当FATエントリの値をRAM上で0xFFFFに設定する処理を実施する。
(S407):現在のリンク終端のクラスタ番号に対応するFATエントリの値を、0xFFFFからS405で取得した空きクラスタの番号にRAM上で設定する。S404において、空き領域を取得する必要があると判断された場合、ファイル終端への追記が実行される。この場合、S403でのリンクを辿る処理においてファイル終端までリンクが辿られているので、現在のリンク終端のクラスタ番号に対応するFATエントリの値は、リンク終端を意味する0xFFFFが設定されている。S407の処理において、S405で新たに取得した空きクラスタへリンクを接続することにより、ファイルのリンクが1クラスタ分長くなり、ファイルデータを追記することが可能となる。
(S408):現在参照している書き込み位置のクラスタ内にファイルデータを書き込む。S404で空き領域取得が必要であると判断した場合、現在参照している書き込み位置は、S405で取得した空きクラスタとなる。また、S404で空き領域取得が不要であると判断した場合、現在参照している書き込み位置は、S403でリンクを辿った結果到達したクラスタとなる。
(S409):全ファイルデータの書き込みが完了したか判定する。まだファイルデータが残っている場合、S404の処理に戻る。一方、全ファイルデータの書き込みが完了した場合、S410の処理に進む。
(S410):ディレクトリエントリ308内に格納されたファイルサイズや最終更新日時等の情報を更新し、情報記録モジュールの不揮発性メモリ内に格納されたディレクトリエントリ308を上書きする。
(S411):情報記録モジュールの不揮発性メモリ内に格納されたFAT(305、306)に、アクセスモジュールのRAM上のFAT(305、306)のデータを上書きし、処理を完了する。
このファイルデータ書き込み処理により、図5に示された60000バイトのデータを持つ「FILE1.TXT」に10000バイトのデータを追記した場合、図6に示されるような70000バイトのデータを持つファイルに変化する。すなわち、空きクラスタとしてクラスタ番号6のクラスタが取得されてファイルデータが追記され、FAT(305、306)上のリンクにクラスタ番号6が接続される。その結果、「FILE1.TXT」のリンクは、クラスタ番号2〜5の4クラスタからなる状態から、クラスタ番号2〜6の5クラスタからなる状態に更新される。
このように、FATファイルシステムでは、ファイルの管理情報がFAT(305、306)とディレクトリエントリ308の両方に格納されていることから、ファイルを更新する場合には、これらの情報も共に更新する必要がある。すなわち、アクセスモジュールが情報記録モジュールに格納されたファイルを更新する場合、図7に示すように、ファイルデータ(DATA)の書き込み処理、ディレクトリエントリ308(DIR)の書き込み処理、FAT(305、306)(FAT1、FAT2)の書き込み処理といった一連の書き込み処理を実施することになる。
ハイビジョン動画のようなコンテンツファイルを情報記録モジュールに格納する場合、映像のビットレートが高いため、例えば、数秒に1回の割合でディレクトリエントリ308、FAT(305、306)を更新する場合でも、ファイルデータの記録サイズは、数MB程度の比較的大きなサイズとなり、この比較的大きな記録サイズにより、ファイルデータが記録されることになる。一方、ディレクトリエントリ308やFAT(305、306)は、情報が更新される部分のみを情報記録モジュールに書き込むため、512バイトから32KB程度の比較的小さなサイズで記録されることになる。
情報記録モジュールの不揮発性メモリにNAND型フラッシュメモリを使用する場合、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさが数百KBから数MBであることから、小サイズの書き込みを実施する場合には、同一物理ブロック内に存在する有効なデータを他のブロックにコピーする「巻き込み退避処理」が発生する。そのため、NAND型フラッシュメモリでは、消去単位より小さな単位でデータを書き込むと記録速度が低下し、特に、先のディレクトリエントリ308やFAT(305、306)等のファイルシステム管理情報の書き込みの際に、この速度低下が顕著になるという問題が生じる。
また、巻き込み退避処理により小サイズの書き込みを実施する際にも、大きなサイズの書き込み処理が発生することから、NAND型フラッシュメモリの書き換え寿命が短くなるという問題も発生する。
従来、このような問題を解決する方法として、データ書き込みの際にアクセスモジュールが情報記録モジュールへデータ種別を通知する方法が提案されている(例えば、特許文献1参照)。
この方法(従来技術)では、アクセスモジュールが、データ種別として、大きなサイズのファイルデータなのか小さなサイズのファイルシステム管理情報なのかを情報記録モジュールに通知し、この通知に基づいて、情報記録モジュールに設けられた管理単位の異なる2つの不揮発性メモリにデータが振り分けられる。これにより、ファイルデータ、ファイルシステム管理情報の各々が高速に記録され、かつ、不揮発性メモリの書き換え寿命低下を防止することができる。
WO2005/043394A1
しかしながら、上記の従来技術では、管理単位の異なる2つの不揮発性メモリを情報記録モジュールに設ける必要があり、従来のような1つの不揮発性メモリで構成した情報記録モジュールに比べコストが高くなる可能性がある。また、2つの不揮発性メモリを搭載することにより情報記録モジュールにおける不揮発性メモリの実装面積が大きくなり、情報記録モジュールの小型化を図ることが難しくなる可能性がある。
本発明では、上記問題点に鑑み、複数の不揮発性メモリを必要とすることなく、ファイルデータおよびファイルシステム管理情報の書き込み処理を高速化し、かつ、不揮発性メモリの書き換え寿命低下を防止するアクセス装置、情報記録装置、コントローラ、及び情報記録システムを提供することを目的とする。
第1の発明は、データを格納する不揮発性メモリを有る情報記録装置に、アクセスするアクセス装置であって、ページキャッシュ情報設定部を備える。
ページキャッシュ情報設定部は、データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知する。
この情報記録装置では、ページキャッシュ情報設定部により、データ書き込みの際に一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報が、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知され、情報記録装置では、その情報に対応して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックを用いて、データの読み出し/書き込み処理を行うことができる。このため、一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、データ書き込み速度を向上させることができる。
なお、「アクセス装置」とは、アクセスモジュールを含む概念である。
第2の発明は、第1の発明であって、ページキャッシュ情報設定部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして設定した、特定の論理アドレスに関する情報を、情報記録装置に通知する。
このアクセス装置では、特定の論理アドレスに関する情報において、特定の論理アドレスの数と、データを一時保持する物理ブロックの個数とが同一であるため、このアクセス装置を用いて、特定の論理アドレスに対して、データ書き込み処理を行う場合、情報記録装置において、巻き込み退避処理の発生を防止することができるので、高速なデータ書き込み処理を行うことができる。
第3の発明は、第1の発明であって、ページキャッシュ情報設定部は、2つ以上の特定の論理アドレスへ記録するデータを一時保持する物理ブロックの数を1つに設定した、特定の論理アドレスに関する情報を、情報記録装置に通知する。
このアクセス装置では、特定の論理アドレスに関する情報において、2つ以上の特定の論理アドレスへ記録するデータを一時保持する物理ブロックの数を1つに設定するので、キャッシュ処理を行うために物理ブロックを少なくすることができる。これにより、キャッシュ処理のためのメモリ領域を抑えながら、巻き込み退避処理の発生を極力抑えた、高速なデータ書き込み処理を実現できる。
第4の発明は、第1から第3のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
これにより、ファイルシステム管理情報の書き込み処理を効率良く行うことができる。
なお、「ファイルシステム管理情報」とは、例えば、FATファイルシステムにおけるFATに関する情報や、ディレクトリエントリに関する情報である。
第5の発明は、不揮発性メモリと、ページキャッシュ制御部と、メモリ制御部と、を備える情報記録装置である。
不揮発性メモリは、データを格納する。
不揮発性メモリ制御部は、不揮発性メモリを制御する。インターフェース部は、外部のアクセス装置とデータの送受信を行う。ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。メモリ制御部は、不揮発性メモリに、ページキャッシュ情報を記録する。
この情報記録装置では、ページキャッシュ制御部により、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理が行われ、メモリ制御部により、不揮発性メモリに、ページキャッシュ情報が記録される。このため、データを一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、データ書き込み速度を向上させることができる。
なお、「情報記録装置」とは、情報記録モジュールを含む概念である。
また、「メモリ制御部」とは、不揮発性メモリに対して所定の処理(例えば、データ読み出し/書き込み処理)を行う機能部であり、例えば、ハードウェアで実現されるものであってもよく、また、CPU、ROM、RAM、不揮発性メモリインターフェース部により、実現されるものであってもよい。さらに、ハードウェアおよびソフトウェアを混在して実現されるものであってもよい。
第6の発明は、第5の発明であって、外部のアクセス装置から特定の論理アドレスに関する情報を受信するインターフェース部をさらに備える。ページキャッシュ情報は、前記インターフェース部が受信した特定の論理アドレスと、不揮発性メモリの物理ブロックとを対応付ける情報を含む。
これにより、ページキャッシュ情報を外部のアクセス装置により設定することができる。
第7の発明は、第5または第6の発明であって、ページキャッシュ制御部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
この情報記録装置では、特定の論理アドレスの数と、データを一時保持する物理ブロックの個数とが同一であるため、この情報記録装置を用いて、特定の論理アドレスに対して、データ書き込み処理を行う場合、巻き込み退避処理の発生を防止することができるので、高速なデータ書き込み処理を行うことができる。
第8の発明は、第5または第6の発明であって、ページキャッシュ制御部は、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
この情報記録装置では、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定するので、キャッシュ処理を行うために物理ブロックを少なくすることができる。これにより、キャッシュ処理のためのメモリ領域を抑えながら、巻き込み退避処理の発生を極力抑えた、高速なデータ書き込み処理を実現できる。
第9の発明は、第5から第8のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
第10の発明は、データを格納する不揮発性メモリを具備する情報記録装置を制御するコントローラであって、ページキャッシュ制御部と、メモリ制御部と、を備える。
ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。メモリ制御部は、不揮発性メモリに、ページキャッシュ情報を記録する。
第11の発明は、第10の発明であって、外部のアクセス装置から特定の論理アドレスに関する情報を受信するインターフェース部をさらに備える。ページキャッシュ情報は、インターフェース部が受信した特定の論理アドレスと、不揮発性メモリの物理ブロックとを対応付ける情報を含む。
第12の発明は、第10または第11の発明であって、ページキャッシュ制御部は、特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
第13の発明は、第10または第11の発明であって、ページキャッシュ制御部は、2つ以上の特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
第14の発明は、第10から第13のいずれかの発明であって、特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである。
第15の発明は、情報記録装置と、情報記録装置にアクセスするアクセス装置とを有する情報記録システムである。
情報記録装置は、不揮発性メモリと、ページキャッシュ制御部と、を備える。
ページキャッシュ制御部は、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う。
アクセス装置は、データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知するページキャッシュ情報設定部を備える。
この情報記録システムでは、ページキャッシュ情報設定部により、特定の論理アドレスと不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理が行われ、そして、アクセス装置のページキャッシュ情報設定部により、データ書き込みの際にデータを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報が、情報記録装置に対するデータ書き込み処理に先立ち、情報記録装置に通知される。このため、データを一時保持する物理ブロックを用いて効率良く、小さいサイズのデータの読み出し/書き込み処理を行うことができ、大きいサイズのデータと小さいサイズのデータを混在して書き込む処理を行うような場合、いわゆる「巻き込み退避処理」の発生を抑制し、効率良くデータ書き込み処理を行うことができる。その結果、この情報記録システムでは、データ書き込み速度を向上させることができる。
第16の発明は、第15の発明であって、不揮発性メモリに、ページキャッシュ情報を記録するメモリ制御部を備える。
本発明によれば、複数の不揮発性メモリを必要とすることなく、ファイルデータおよびファイルシステム管理情報の書き込み処理を高速に行い、かつ、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
本発明の実施の形態1におけるアクセスモジュール、及び情報記録モジュールの構成を示した説明図 FATファイルシステムの構成を示した説明図 ディレクトリエントリの構成を示した説明図 FATファイルシステムにおけるファイルデータ書き込み処理手順を示したフローチャート FATファイルシステムにおけるファイルデータ書き込み前の状態の一例を示した説明図 FATファイルシステムにおけるファイルデータ書き込み後の状態の一例を示した説明図 FATファイルシステムにおけるファイル更新時のアクセスシーケンスの一例を示した説明図 本発明の実施の形態1における不揮発性メモリの構成の一例を示した説明図 従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフローチャート 従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図 本発明の実施の形態1におけるデータ書き込み前のアドレス管理情報の一例を示した説明図 本発明の実施の形態1におけるデータ書き込み処理手順を示したフローチャート 本発明の実施の形態1におけるデータ書き込み途中の物理ブロックの状態の一例を示した説明図 本発明の実施の形態1におけるデータ書き込み後のアドレス管理情報の一例を示した説明図 本発明の実施の形態1におけるページの状態の一例を示した説明図 本発明の実施の形態1におけるデータ読み出し処理手順を示したフローチャート 本発明の実施の形態2におけるデータ書き込み前のアドレス管理情報の一例を示した説明図 本発明の実施の形態2におけるデータ書き込み処理手順を示したフローチャート 本発明の実施の形態2におけるデータ書き込み途中の物理ブロックの状態の一例を示した説明図 本発明の実施の形態2におけるデータ書き込み後のアドレス管理情報の一例を示した説明図 本発明の実施の形態2におけるページの状態の一例を示した説明図
以下、本発明のアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムについて、図面を参照しつつ説明する。
[実施の形態1]
<1:アクセスモジュール、情報記録モジュールの構成>
図1は、本発明の実施の形態1におけるアクセスモジュール、情報記録モジュールの構成図である。
図1において、アクセスモジュール1は、CPU11、RAM12、情報記録モジュールインタフェース13、ROM14を含む。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムはRAM12を一時記憶領域として使用し、CPU11上で動作する。
情報記録モジュールインタフェース13は、情報記録モジュール2とアクセスモジュール1との接続部であり、制御信号及びデータの送受信を行う。
ROM14は、更に、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部103を含む。
アプリケーション制御部101は、データの生成や電源の制御などアクセスモジュール1全体の制御を行う。
ファイルシステム制御部102は、FATファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。
情報記録モジュールアクセス部103は、ファイルシステム制御部102からデータと共にサイズとアドレスを渡され、指定されたサイズのデータを情報記録モジュール2の記録領域内における指定された位置に記録するなど、情報記録モジュール2に対するコマンドやデータの送受信を制御する。
ファイルシステム制御部102は、更に、ページキャッシュ情報設定部104を含む。
ページキャッシュ情報設定部104は、本発明の特徴であるページキャッシュに対するアクセスを制御する制御部であり、従来のアクセスモジュールには存在しないものである。
一方、図1において、情報記録モジュール2は、コントローラ21と不揮発性メモリ22とを含む。
コントローラ21は、不揮発性メモリ22の制御全般を行うモジュールであり、例えば、CPU等を含むシステムLSIとして構成される。
コントローラ21は、更に、アクセスモジュールインタフェース211、CPU212、RAM213、ROM214、および、不揮発性メモリインタフェース215を含む。
アクセスモジュールインタフェース211は、情報記録モジュール2とアクセスモジュール1との接続部であり、情報記録モジュールインタフェース13同様、制御信号及びデータを送受信するインタフェースである。
ROM214には、情報記録モジュール2を制御するプログラムが格納されており、このプログラムは、RAM213を一時記憶領域として使用し、CPU212上で動作する。
不揮発性メモリインタフェース215は、コントローラ21と不揮発性メモリ22との接続部であり、不揮発性メモリ22に対するコマンドやデータの送受信を制御する。
ROM214は、更に、アドレス変換制御部216、ページキャッシュ制御部217を含む。
アドレス変換制御部216は、不揮発性メモリ22上の物理アドレスと、アクセスモジュール1からアクセス可能なアドレス空間として情報記録モジュール2が提供する論理アドレス空間における論理アドレスとの対応付けを制御する制御部であり、従来の情報記録モジュールに存在するアドレス変換制御部と同様の制御部である。
ページキャッシュ制御部217は、本発明の特徴であるページキャッシュを制御する制御部であり、従来の情報記録モジュールには存在しないものである。
また、不揮発性メモリ22は、ユーザデータを格納する領域とは別の領域にアドレス管理情報221を格納する。
アドレス管理情報221は、先に説明した物理アドレスと論理アドレスとの対応付け等、不揮発性メモリ22内の記録領域のアドレス管理に使用する情報である。そのため、ユーザデータは、アクセスモジュール1からアクセス可能な論理アドレス空間内に格納されるのに対し、アドレス管理情報221は、アクセスモジュール1からアクセスできないよう論理アドレス空間の外側(アクセスモジュール1から論理アドレスを用いてアクセスできない領域)に格納される。
アドレス管理情報221は、更に、物理アドレスと論理アドレスとの対応付けを管理するアドレス変換情報222と、空き物理ブロックを管理するフリーブロック情報223と、ページキャッシュを管理するページキャッシュ情報224とを含む。
アドレス変換情報222、フリーブロック情報223は、従来の情報記録モジュールに含まれる情報と同様のものである。
一方、ページキャッシュ情報224は、本発明の特徴であるページキャッシュを管理するための情報であり、従来の情報記録モジュールには存在しないものである。
本発明の実施の形態1における情報記録モジュール2は、不揮発性メモリ22内にページキャッシュ情報224を格納する。
情報記録モジュール2内のページキャッシュ制御部217は、このページキャッシュ情報224を用いて、小サイズのデータ(情報)の書き込み処理を、キャッシュ的に使用される特定の物理ブロック上で実施する。
また、本発明の実施の形態1におけるアクセスモジュール1は、ページキャッシュ情報224に設定すべき情報を情報記録モジュール2に通知するページキャッシュ情報設定部104を備える。これらアクセスモジュール1、情報記録モジュール2を組み合わせることにより、小サイズのデータ(情報)の書き込み処理をページキャッシュ上で実行し、書き込み処理を高速化することが可能となる。また、無駄な巻き込み退避処理を削減することにより、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
<2:不揮発性メモリ22の構成>
続いて図8を用いて、本発明の実施の形態1における不揮発性メモリ22の構成について説明する。
不揮発性メモリ22は、例えば、NAND型フラッシュメモリが用いられる。不揮発性メモリ22は、複数の物理ブロックから構成される。
物理ブロックは、データを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また、物理ブロックは、複数のページから構成される。
ページは、データの読み出し、書き込みを行う単位である。更に、ページは、データ部と冗長部を含む。
データ部は、論理アドレス空間としてアクセスモジュール1からアクセスが可能な領域であり、実際にファイルデータ等が格納される領域である。
また、冗長部は、不揮発性メモリ22の管理情報やECC等が格納される領域であり、アクセスモジュール1からアクセスできない領域である。データ部の大きさは、例えば4KB、冗長部の大きさは128バイト程度となる。
また、データ部にのみ着目した場合の物理ブロックの大きさは、例えば512KB程度となる。よって、この大きさの物理ブロック2048個から構成される不揮発性メモリ22は、総容量1GBとなる。
<3:情報記録モジュールにおけるデータ書き込み処理手順について>
続いて本発明の特徴を明確にするために、従来の情報記録モジュールにおけるデータ書き込み処理手順と、本発明の実施の形態1における情報記録モジュールにおけるデータ書き込み処理手順とを比較して説明する。
(3.1:従来の情報記録モジュールにおけるデータ書き込み処理手順)
まずは、図9、図10を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
図9は、従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフロー図であり、同処理におけるアドレス変換については、情報記録モジュール内のアドレス変換制御部により実施される。
図10は、従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図である。図10(a)は書き込み前の状態を示し、図10(b)は書き込み後の状態を示す。図10(a)に示すように、従来の情報記録モジュールにおけるアドレス管理情報は、アドレス変換情報と、フリーブロック情報とを含む。
アドレス変換情報は、論理アドレスと物理アドレスとの対応付けを管理する情報であり、構成の一例としては各論理ブロックに対して割り当てられている物理ブロックの番号を格納した表により構成される。また、フリーブロック情報は、未割り当ての空き物理ブロックの番号を管理する情報である。
以下、図9を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
(S901):アドレス変換情報を参照し、書き込み対象領域の元データが格納された物理ブロックの番号を取得する。図10の例では、論理ブロック番号0x0001の先頭ページに存在する「データA」を「データE」で上書きする場合を想定する。この場合、アドレス変換情報を参照し論理ブロック番号0x0001に対応する物理ブロック番号として0x0001を取得する。
(S902):フリーブロック情報を参照し、フリーブロックの物理ブロック番号を取得する。図10(a)の例では、フリーブロック情報を参照し、先頭に格納されている値である0x000Eを取得する。すなわち、物理ブロック番号0x000Eのブロックは、現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
(S903):S902で取得したフリーブロックに新データを書き込む。図10の例では、物理ブロック番号0x000Eのブロックの先頭ページに「データE」を書き込む。
(S904):フリーブロックに残りの有効データをコピーする。図10の例では、物理ブロック0x0001のデータB以降のデータは書き込み後も有効なデータとして保持される必要があることから、データB以降の全データをフリーブロックである物理ブロック番号0x000Eのブロックにコピーする。この処理が、一般に、「巻き込み退避処理」と呼ばれている処理である。
(S905):アドレス変換情報を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図10の例では、論理ブロック番号0x0001に対応する物理ブロックとして0x0001が管理されていたが、今回の書き込み処理により0x000Eに変化するため、アドレス変換情報の該当箇所を0x000Eに書き換える。
(S906):元データが格納されていた物理ブロックを消去する。図10の例では、物理ブロック番号0x0001のブロックに含まれる全データを消去する。
(S907):使用したフリーブロックをフリーブロック情報から削除する。図10の例では、物理ブロック番号0x000Eのブロックが使用されたため、フリーブロック情報から0x000Eの番号を削除する。
(S908):元データが格納されていた物理ブロックをフリーブロック情報に登録する。図10の例では、元データが格納されていた物理ブロック番号0x0001のブロックがフリーブロックとして管理されるよう、フリーブロック情報に0x0001の番号を登録する。
これら一連の処理により、アドレス管理情報は、図10(a)の状態から図10(b)の状態に変化する。この例では、1ページの書き込み処理を実施する場合について説明したが、実際にはS904の巻き込み退避処理により該当物理ブロックの残り有効データも全て書き込まれるため、1物理ブロック分の書き込み処理が発生することになる。この巻き込み退避処理の発生頻度は、書き込みデータのデータサイズが大きい程減少し、物理ブロック単位でデータを書き込んだ場合、巻き込み退避処理は発生しなくなる。すなわち、ページサイズが4KB、物理ブロックサイズが512KBの場合を想定すると、4KB書き込む場合と512KB書き込む場合で処理時間がほぼ同じになるため、処理速度でみるとページ単位で書き込んだ場合は物理ブロック単位で書き込んだ場合に比べ128倍遅くなることになる。
本発明では、このように小サイズのデータを書き込んだ場合に生じる速度低下を削減し、かつ、不揮発性メモリの書き換え寿命低下を防止する方法を提供する。
図11は、本発明の実施の形態1における情報記録モジュール2内に存在するアドレス管理情報221の構成の一例を示した説明図である。図11におけるアドレス変換情報222、フリーブロック情報223は、従来の情報記録モジュールに存在する情報と同様である。本発明の実施の形態1におけるアドレス管理情報221は、更に、ページキャッシュ情報224を含む。
ページキャッシュ情報224は、特定の物理ブロックをキャッシュ的に使用して小サイズのデータ書き込みを行う際に必要な情報を格納したものである。図11の例では、3つの物理ブロックをページキャッシュとして使用する場合を示しており、ページキャッシュ番号として、各々0x0000、0x0001、0x0002の番号が一意に割り当てられている。
ページキャッシュ情報224は、各々のページキャッシュ番号に対応する物理ブロックの番号、論理ブロックの番号、論理ページの番号を含む。例えば、図11の例では、ページキャッシュ番号0x0000のページキャッシュには、物理ブロック番号0x03F0のブロックが割り当てられており、論理ブロック番号0x0001、論理ページ番号0x0000の論理アドレスに対する読み書きが発生した場合に、このページキャッシュが使用されることを意味している。
(3.2:情報記録モジュール2におけるデータ書き込み処理手順)
続いて、図11から図15を用いて本発明の実施の形態1の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
図11は、データ書き込み前のアドレス管理情報221の状態の一例を示しており、図14は、データ書き込み後のアドレス管理情報221の状態の一例を示している。
図12は、データ書き込み処理手順を示している。
図13は、データ書き込み途中における、元データが格納されている物理ブロックと、ページキャッシュに割り当てられている物理ブロックの状態を示している。
図15は、ページキャッシュに割り当てられている物理ブロック内のページの状態の一例を示している。
これらの例では、論理ブロック番号0x0001の先頭ページ(論理ページ番号:0x0000)に存在する「データA」を、「データE」、「データF」、・・・、「データZ」で順次上書きする場合を想定している。
以下、図12を用いて本発明の実施の形態1の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
(S1201):ページキャッシュ情報224を参照し、書き込み対象領域がページキャッシュに該当するか確認する。該当する場合は、S1203の処理に進み、該当しない場合は、S1202の処理に進む。
図11の例では、書き込み対象領域を論理ブロック番号0x0001の先頭ページ(論理ページ番号0x0000)とした場合、ページキャッシュ番号0x0000に対応する論理ブロック番号、論理ページ番号と一致するため、書き込み対象領域がページキャッシュ番号0x0000のページキャッシュに該当すると判定する。
(S1202):S1201の判定で書き込み対象領域がページキャッシュに「該当しない」と判定した場合、ページキャッシュを使用せず通常の書き込み処理を実施し、処理を終了する。具体的には、図9のフローで説明した書き込み処理と同様の処理を実施する。この場合、小サイズのデータ(情報)の書き込み処理を実施しても高速に書き込みは行えないが、本発明の実施の形態1では、小サイズのデータ(情報)の書き込み処理は、ページキャッシュを使用し、ファイルデータ等の大きなサイズのデータを、ページキャッシュを使用せずに物理ブロック単位で書き込む場合を想定する。このように、ページキャッシュを小サイズのデータ(情報)の書き込み処理に使用することにより、書き込み処理速度を向上させることが可能となる。例えば、情報記録モジュール2に、動画などのリアルタイムデータを書き込む場合、情報記録モジュール2に、大容量のストリームデータと小容量のファイルシステム管理情報とを交互に記録することになるが、情報記録モジュール2では、小容量のファイルシステム管理情報(小サイズのデータ(情報)の一例)に対して、ページキャッシュを用いて書き込み処理を行うので、巻き込み退避処理の発生を抑制することができる。これにより、情報記録モジュール2におけるデータ書き込み処理速度を向上させることができる。
(S1203):S1201の判定で書き込み対象領域がページキャッシュに「該当する」と判定した場合、該当ページキャッシュの物理ブロック内に空きページが存在するか否かを確認する。空きページが存在する場合は、S1204の処理に進み、存在しない場合は、S1205の処理に進む。
空きページの存在を確認する方法の一例としては、図15に示すように、ページ内の冗長部に使用済みか否かを示すフラグ(Usedフラグ)を格納する方法がある。Usedフラグは、例えば、1ビットのフラグであり、空きページであれば「1」に設定され、データ書き込み済みであれば「0」に設定される。初期値として、全ページのUsedフラグを「1」に設定しておき、ページのデータ部に書き込みを行う際に、併せて冗長部のUsedフラグに「0」を書き込むことにより、どのページが空きページであるか判定することが可能となる。
(S1204):S1203の判定において、該当ページキャッシュの物理ブロック内に空きページが存在すると判定した場合、該当空きページに新データを書き込み、処理を終了する。図13(a)の状態では、ページキャッシュに割り当てられている物理ブロック番号0x03F0のブロックの全ページが消去済みであり、空きページとして管理されている。そのため、論理ブロック番号0x0001、論理ページ番号0x0000に上書きされる「データE」は、ページキャッシュの物理ブロック番号0x03F0の先頭ページに書き込まれ、図13(b)の状態となる。同様に、「データF」、「データG」、・・・、「データY」まで、順次、同一アドレス(同一論理アドレス)に上書きを実施した場合、図13(c)、(d)の状態となる。
(S1205):S1203の判定において、該当ページキャッシュの物理ブロック内に空きページが存在しないと判定した場合、フリーブロック情報223を参照し、フリーブロックの物理ブロック番号を取得する。図11の例では、フリーブロック情報223を参照し、先頭に格納されている値である0x000Eを取得する。すなわち、物理ブロック番号0x000Eのブロックは、現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
(S1206):S1205で取得したフリーブロックに新データを書き込む。図13(e)の例では、物理ブロック番号0x000Eのブロックの先頭ページに「データZ」を書き込む。
(S1207):ページキャッシュ情報224を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図11の例では、ページキャッシュ番号0x0000に対応する物理ブロックとして0x03F0が管理されていたが、今回の書き込み処理により0x000Eに変化するため、ページキャッシュ情報224の該当箇所を0x000Eに書き換える。
(S1208):従来ページキャッシュとして使用されていた旧物理ブロックを消去する。図13(e)の例では、物理ブロック番号0x03F0のブロックに含まれる全データを消去する。
(S1209):使用したフリーブロックをフリーブロック情報223から削除する。図14の例では、物理ブロック番号0x000Eのブロックが使用されたため、フリーブロック情報223から0x000Eの番号を削除する。
(S1210):ページキャッシュとして使用されていた旧物理ブロックをフリーブロック情報223に登録し、処理を終了する。図14の例では、ページキャッシュとして使用されていた物理ブロック番号0x03F0のブロックがフリーブロックとして管理されるよう、フリーブロック情報223に0x03F0の番号を登録する。
これら一連の処理により、アドレス管理情報221は、図11の状態から図14の状態に変化する。図9の従来の書き込み処理手順と図12の本発明の実施の形態1の書き込み処理手順とで最も異なる点は、S904の巻き込み退避処理が本発明の実施の形態1では発生しない点である。本発明の実施の形態1では、ページキャッシュを使用することにより巻き込み退避処理の発生を防止し、小サイズのデータ(情報)の書き込み処理速度を向上させることが可能となる。
<4:データ読み出し処理手順>
続いて、図16を用いて、本発明の実施の形態1の情報記録モジュール2におけるデータ読み出し処理手順を説明する。
(S1601):ページキャッシュ情報224を参照し、読み出し対象領域がページキャッシュに該当するか確認する。該当する場合は、S1604の処理に進み、該当しない場合はS1602の処理に進む。
(S1602):S1601の判定で読み出し対象領域がページキャッシュに「該当しない」と判定した場合、アドレス変換情報222を参照し、読み出し対象領域のデータを格納している物理ブロック番号を取得する。
(S1603)S1602で取得した物理ブロック番号のブロックからデータを読み出し、処理を終了する。
(S1604):S1601の判定で読み出し対象領域がページキャッシュに「該当する」と判定した場合、該当ページキャッシュに割り当てられた物理ブロックからデータを読み出し、処理を終了する。
本発明の実施の形態1では、ページキャッシュを用いた管理を行うために、ページキャッシュに割り当てられた論理アドレスの領域は、アドレス変換情報222により管理される物理ブロックの領域と、ページキャッシュ情報224により管理される物理ブロックの領域との両方にデータが存在する可能性がある。そのため、いずれかのデータを有効なデータとして判定する必要があるが、本発明の実施の形態1では、常に、ページキャッシュ上に格納されたデータを有効なデータとして判定することにより、一意に有効データを特定している。
<5:ページキャッシュ情報設定部104>
続いて本発明の実施の形態1のアクセスモジュール1内のページキャッシュ情報設定部104について説明する。
アクセスモジュール1内のページキャッシュ情報設定部104は、情報記録モジュール2に対してページキャッシュに関する情報を設定、解除する機能を実現する。図7を用いて説明したように、DATA、DIR、FAT1、FAT2の順でデータを書き込む場合、小サイズのデータ(情報)の書き込み処理となるDIRの書き込み処理、FAT1の書き込み処理、FAT2の書き込み処理について、ページキャッシュを使用する。
ページキャッシュを使用する場合には、書き込み処理に先立ち、予めアクセスモジュール1内のページキャッシュ情報設定部104が、情報記録モジュール2に対してページキャッシュ情報224の設定コマンドを発行する。
設定コマンドは、例えば、SetPageCacheInfo(PageCacheNum,LogicalBlockNum,LogicalPageNum)のような形式のものである。
「PageCacheNum」は、情報を設定する対象のページキャッシュ番号を意味し、例えば、図11のように3つのページキャッシュが存在する場合には、0x0000、0x0001、0x0002のいずれかの値を設定する。
「LogicalBlockNum」、「LogicalPageNum」は、ページキャッシュ対象領域とする論理アドレスを意味し、例えば、図11のページキャッシュ番号0x0000の例では、
「LogicalBlockNum」には、0x0001が、
「LogicalPageNum」には、0x0000が、
それぞれ、設定されている。
このように、ページキャッシュ情報224の設定コマンドでは、設定対象のページキャッシュ番号と、対象領域の論理アドレスを設定する。
これにより、該当対象領域が該当ページキャッシュの領域として設定される。そして、この設定以降において、アクセスモジュール1が、情報記録モジュール2に対して、発行する読み出し/書き込みコマンドが、ページキャッシュ対象領域に設定されている領域にアクセスするものである場合、当該コマンドによる読み出し/書き込み処理において、ページキャッシュが使用されることになる。
図11の例では、3つのページキャッシュが存在しているため、それぞれDIR、FAT1、FAT2の領域を予めページキャッシュ領域として登録しておくことで、図7のようなアクセスをした場合に、DIR、FAT1、FAT2がページキャッシュを用いて高速に書き込まれ、一連のファイルデータ書き込み処理を高速化することが可能となる。
また、ページキャッシュの対象領域として設定されている論理アドレスを変更する処理は、アクセスモジュール1から情報記録モジュールに対して、再度SetPageCacheInfoコマンドを発行することで実施することができる。具体的には、PageCacheNumに、以前と同じページキャッシュ番号を設定し、LogicalBlockNum、LogicalPageNumに、以前とは異なる論理アドレスを設定して、SetPageCacheInfoコマンドを発行することにより、該当ページキャッシュの対象領域を変更することができる。
この場合、既にページキャッシュ領域として設定されている論理アドレスに対応するデータをページキャッシュ外に移動させる必要がある。
この移動処理は、図9で説明した従来のデータ書き込み処理手順と同様の手順により実現できる。具体的には、フリーブロック情報223を参照してフリーブロックを取得し、そのフリーブロックにアドレス変換情報222により管理されている物理ブロックに格納された情報と、ページキャッシュ情報224により管理されている物理ブロックに格納された情報を結合して書き込み、その領域がアドレス変換情報222によって管理されるようにアドレス変換情報222、フリーブロック情報223、ページキャッシュ情報224を更新する。
これらの処理により、既にページキャッシュ領域として設定されている論理アドレスに対応するデータが、アドレス変換情報222によって管理される領域に移動し、該当ページキャッシュを異なる論理アドレスに対して使用することが可能となる。
以上のように、本発明の実施の形態1のアクセスモジュール1と情報記録モジュール2とを組み合わせて使用し、小サイズのデータ(情報)の書き込み処理をページキャッシュで管理し、無駄な巻き込み退避処理の発生を防止することで、書き込み処理を高速に実施することが可能となる。
このように、本実施形態のアクセスモジュール1と情報記録モジュール2では、無駄な巻き込み退避処理の発生を防止することができるので、不揮発性メモリ22に対する書き込み処理回数が削減される。その結果、不揮発性メモリ22の書き換え寿命の低下を防止することも可能となる。
更に、本発明の実施の形態1のページキャッシュによる管理方法では、アクセスモジュール1から情報記録モジュール2に対して、1ページのデータ書き込み処理を実施した場合、不揮発性メモリ22上に書き込まれるデータも常に1ページになる。
そのため、ムービー等でリアルタイムに動画を記録するような場合、従来の書き込み処理手順ではDIR、FAT1、FAT2の更新時に、巻き込み退避処理が発生すると、一例で、処理速度が128倍遅くなるタイミング(期間)が発生する(ページサイズが4KB、物理ブロックサイズが512KBの場合を想定すると、4KB書き込む場合と512KB書き込む場合で処理時間がほぼ同じになるため、処理速度でみるとページ単位で書き込んだ場合は物理ブロック単位で書き込んだ場合に比べ128倍(=512/4)遅くなることになる。)。このため、安定してリアルタイム記録が行えなかった。
それに対し、本発明では、DIR、FAT1、FATの更新時間が、常に一定の短時間で処理されるため(巻き込み退避処理の発生を抑えることができるので、DIR、FAT1、FATの更新処理の最低処理時間を確定させることができるため)、安定してリアルタイム記録を実施することが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は、上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。本発明の実施の形態で記載された数値は一例であり、他の値を使用しても良い。例えば、物理ブロックサイズやページサイズ等の値は全て一例であり、本発明の実施の形態1で記載した値に限定されるものではない。
また、図1の説明において、情報記録モジュール2のコントローラ21の構成を説明したが、その他の構成としても良い。例えば、コントローラ21内のCPU212やRAM213等をコントローラ21の外部に配置しても良いし、逆に、その他の構成要素をコントローラ21内に含ませても良い。
また、本発明の実施の形態ではファイルシステムとして、FAT16を例として説明したが、その他のファイルシステムを用いても良い。
また、情報記録モジュール2の不揮発性メモリ22に格納されるアドレス管理情報221が、アドレス変換情報222、フリーブロック情報223、ページキャッシュ情報224から構成される例について説明したが、この構成は一例であり、同様のアドレス管理を実現できるものであれば、その他の構成としても良い。例えば、アドレス変換情報222を一元的な管理テーブルとして実現せず、ページの冗長部内に情報を分散して格納するような構成としても良い。あるいはアドレス変換情報とフリーブロック情報とを1つのテーブルで一元管理するような構成としても良い。
また、情報記録モジュール2に使用される不揮発性メモリ22の枚数は1枚である必要はなく、複数枚を組み合わせて使用しても良い。特に、複数の不揮発性メモリ22に対して並列にデータ書き込みできるように構成した場合、更に、書き込み処理を高速化することが可能となる。
また、本発明の実施の形態におけるページキャッシュを有効に使用するためには、書き込みサイズをページキャッシュの管理単位に合わせて適切に設定する必要がある。そのため、アクセスモジュール1と情報記録モジュール2との間で、ページサイズや物理ブロックサイズ、ページキャッシュの数等の情報を送受信できるコマンドを設けると、更に効果的である。
また、本発明の実施の形態では、ページキャッシュとして使用される物理ブロックにページ単位で新データが追記される場合について説明した。そのため、ページキャッシュ上に格納されたデータの中で最新の有効データは、常に同一物理ブロック内の最後尾に格納されたデータとなり、一意に特定することが可能となる。この方法は、一例であり、本発明は、この方法に限定されるものではない。例えば、ページキャッシュとして使用される物理ブロック内の任意のページにデータを書き込み、冗長領域に最新のデータであることを示すフラグやシーケンス番号などを格納することにより、最新の有効データが格納されたページを特定しても良い。
また、本実施の形態で説明したSetPageCacheInfoコマンドの形式は一例であり、コマンドの引数として設定する情報は、同様の情報を設定できるものであれば、その他の情報形式を用いても良い。本実施の形態では、説明のために、ページキャッシュ番号を用いて説明したが、これに限定されることはなく、論理アドレスでページキャッシュの対象となるデータを識別する方法を用いるのであれば、必ずしもページキャッシュ番号を用いなくてもよい。
また、本実施の形態では、説明のために、ページキャッシュ情報をページキャッシュ番号と、物理ブロック番号、論理ブロック番号、論理ページ番号を用いて管理する方法を用いたが、これについても、論理アドレス(論理ブロック番号と論理ページ番号)からページキャッシュを識別できるのであれば、必ずしもページキャッシュ番号を用いなくてもよい。
また、本発明の実施の形態では、小サイズのデータ(情報)書き込みとして、DIR、FAT1、FAT2等のファイルシステム管理情報を例に挙げて説明したが、それ以外のデータ書き込みであっても小サイズのデータを書き込む場合であれば、本発明を適用することで書き込み処理を高速化することができる。例えば、テキストデータ等の小サイズのファイルデータを書き込む場合に、ページキャッシュを使用しても良いし、ファイルシステムで記録領域を管理していない場合であっても、小サイズのデータ(情報)書き込みにページキャッシュを使用しても良い。
[実施の形態2]
続いて本発明の別の実施の形態について説明する。
本発明の実施の形態2におけるアクセスモジュール、情報記録モジュールの構成は、図1で説明した構成と同じである。
本発明の実施の形態2が本発明の実施の形態1と異なる点は、ページキャッシュとして、実施の形態1では、3つの物理ブロックを割り当てて管理していた所を、本実施形態では、1つの物理ブロックのみを割り当てて管理するようにした点である。そのため、本発明の実施の形態1では、アドレス管理情報221の構成は、図11に示すものであったが、本実施形態では、アドレス管理情報221の構成は、図17に示すものに変更される。
つまり、図17に示すアドレス管理情報221(実施の形態2)と、図11に示すアドレス管理情報221(実施の形態1)との相違点は、ページキャッシュ情報224内に格納される物理ブロック番号が3つから1つに減少している点である。つまり、本実施形態では、実際にページキャッシュに割り当てられる物理ブロックを減少させることができる。
続いて、図17から図21を用いて、本発明の実施の形態2の情報記録モジュール2におけるデータ書き込み処理手順について説明する。
図17は、データ書き込み前のアドレス管理情報221の状態の一例を示しており、図20は、データ書き込み後のアドレス管理情報221の状態の一例を示している。
図18は、データ書き込み処理手順を示している。
図19は、データ書き込み途中における、ページキャッシュに割り当てられている物理ブロックと、次にページキャッシュに割り当てられるフリーブロックの状態を示している。
図21は、ページキャッシュに割り当てられている物理ブロック内のページの状態の一例を示している。
これらの例では、3つのページキャッシュを順次上書きする場合を想定している。
図18に示したデータ書き込み処理手順が、図12に示したデータ書き込み処理手順と異なる点は、図18に示したデータ書き込み処理手順において、S1807のコピー処理が増加している点である。
本発明の実施の形態2におけるページキャッシュ管理では、1つの物理ブロックに3つのページキャッシュのデータを格納するため、該物理ブロックには、3ページ分の有効データが格納されることになる。
図19は、ページキャッシュに追記を繰り返した後の状態を示した説明図である。
図19(a)の例では、
「データM_0」がページキャッシュ番号0x0000の最新有効データを、
「データM_1」がページキャッシュ番号0x0001の最新有効データを、
「データM_2」がページキャッシュ番号0x0002の最新有効データを、
それぞれ、意味する。
ここで、ページキャッシュ番号0x0000に対して、「データN_0」を書き込んだ場合、物理ブロック番号0x000Eのフリーブロック先頭に「データN_0」が書き込まれる。この際、「データM_0」は、旧データなので(「データM_0」は、「データN_0」により更新される前のデータであり、もはや不要なデータなので)消去しても構わないが、「データM_1」、「データM_2」は、他のページキャッシュの有効データであるため、消去することはできない。
そのため、先に、「データN_0」を書き込んだ物理ブロック番号0x000Eのブロックに、「データM_1」、「データM_2」をコピーし、図19(b)の状態にする。
その後、「データN_1」、「データN_2」のデータが、それぞれページキャッシュに書き込まれた場合、図19(c)の状態となる。
また、この状態でのアドレス管理情報221は、図20の状態となる。
また、図15で説明したページ内の冗長部に格納される情報は、本発明の実施の形態2では、図21のようになる。図21に示すページが、図15に示すページと異なる点は、図21に示すページでは、ページキャッシュ番号が追加されている点である。本発明の実施の形態2では、ページキャッシュに割り当てられる1つの物理ブロックを複数のページキャッシュで共用するため、各ページに対応するページキャッシュの番号を保持する必要がある。そのため、冗長部にページキャッシュ番号を格納するフィールドを設け、対応ページキャッシュの識別に用いる。
以上のように本発明の実施の形態2の情報記録モジュール2は、1つの物理ブロックを複数のページキャッシュで共用して使用する。
これにより、小サイズのデータ(情報)書き込み時に、S1807で説明した若干のコピー処理(上記の例では、3ページ分のコピー処理)が必要になるものの、ページキャッシュとして使用される物理ブロックの個数が1つで実現できるため、より多くの物理ブロックを論理アドレス空間に割り当てることができ、領域使用効率を高めることが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、本発明の実施の形態1に記載された種々の変形例を本発明の実施の形態2に適用しても良い。
[他の実施形態]
なお、上記実施形態で説明したアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、コントローラ、及び情報記録システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明に関わるアクセスモジュール1は、ページキャッシュの制御に必要な情報を設定する機能を有するページキャッシュ情報設定部104を含む。また、本発明の情報記録モジュール2は、不揮発性メモリ22内にページキャッシュ情報224を格納し、その情報を元に特定の物理ブロックをキャッシュ的に使用する機能を有するページキャッシュ制御部217を含む。これらアクセスモジュール1と情報記録モジュール2とを組み合わせることにより、小サイズのデータ書き込み時にページキャッシュを使用し、高速に書き込み処理を実施することが可能となる。また、ページキャッシュにより無駄な巻き込み退避処理の発生を防止することにより、不揮発性メモリ22の書き換え寿命の低下を防止することが可能となる。更に、小サイズのデータ書き込み処理が常に高速に行えることから、リアルタイム記録を安定して実施することが可能となる。
このようなアクセスモジュール1は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器、とりわけコンテンツデータをリアルタイムに情報記録モジュールに記録する必要がある機器に最適であり、PCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。
また、本発明の情報記録モジュール2は、上記デジタルコンテンツなどを格納するメモリカードなどのリムーバブルメディア、あるいは内蔵記録装置等として利用することができる。
1 アクセスモジュール
2 情報記録モジュール
11,212 CPU
12,213 RAM
13 情報記録モジュールインタフェース
14,214 ROM
21 コントローラ
22 不揮発性メモリ
101 アプリケーション制御部
102 ファイルシステム制御部
103 情報記録モジュールアクセス部
104 ページキャッシュ情報設定部
211 アクセスモジュールインタフェース
215 不揮発性メモリインタフェース
216 アドレス変換制御部
217 ページキャッシュ制御部
221 アドレス管理情報
222 アドレス変換情報
223 フリーブロック情報
224 ページキャッシュ情報
301 ファイルシステム管理情報領域
302 ユーザデータ領域
303 マスターブートレコード・パーティションテーブル
304 パーティションブートセクタ
305,306 FAT
307 ルートディレクトリエントリ
308 ディレクトリエントリ

Claims (16)

  1. データを格納する不揮発性メモリを有する情報記録装置に、アクセスするアクセス装置であって、
    データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、前記情報記録装置に対するデータ書き込み処理に先立ち、前記情報記録装置に通知するページキャッシュ情報設定部を備える、
    アクセス装置。
  2. 前記ページキャッシュ情報設定部は、前記特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして設定した、前記特定の論理アドレスに関する情報を、前記情報記録装置に通知する、
    請求項1記載のアクセス装置。
  3. 前記ページキャッシュ情報設定部は、2つ以上の前記特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定した、前記特定の論理アドレスに関する情報を、前記情報記録装置に通知する、
    請求項1記載のアクセス装置。
  4. 前記特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである、
    請求項1から3のいずれかに記載のアクセス装置。
  5. データを格納する不揮発性メモリと、
    特定の論理アドレスと前記不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行うページキャッシュ制御部と、
    前記不揮発性メモリに、前記ページキャッシュ情報を記録するメモリ制御部と、
    を備える情報記憶装置。
  6. 外部のアクセス装置から前記特定の論理アドレスに関する情報を受信するインターフェース部をさらに備え、
    前記ページキャッシュ情報は、前記インターフェース部が受信した特定の論理アドレスと、前記不揮発性メモリの物理ブロックとを対応付ける情報を含む、
    請求項5に記載の情報記憶装置。
  7. 前記ページキャッシュ制御部は、前記特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う、
    請求項5または6に記載の情報記録装置。
  8. 前記ページキャッシュ制御部は、2つ以上の前記特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う、
    請求項5または6に記載の情報記録装置。
  9. 前記特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである、
    請求項5から8のいずれかに記載の情報記録装置。
  10. データを格納する不揮発性メモリを具備する情報記録装置を制御するコントローラであって、
    特定の論理アドレスと前記不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行うページキャッシュ制御部と、
    前記不揮発性メモリに、前記ページキャッシュ情報を記録するメモリ制御部と、
    を備えるコントローラ。
  11. 外部のアクセス装置から前記特定の論理アドレスに関する情報を受信するインターフェース部をさらに備え、
    前記ページキャッシュ情報は、前記インターフェース部が受信した特定の論理アドレスと、前記不揮発性メモリの物理ブロックとを対応付ける情報を含む、
    請求項10に記載のコントローラ。
  12. 前記ページキャッシュ制御部は、前記特定の論理アドレスの数を、データを一時保持する物理ブロックの個数と同一にして、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う、
    請求項10または11に記載のコントローラ。
  13. 前記ページキャッシュ制御部は、2つ以上の前記特定の論理アドレスに対して、データを一時保持する物理ブロックの数を1つに設定して、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行う、
    請求項10または11に記載のコントローラ。
  14. 前記特定の論理アドレスは、ファイルシステム管理情報を格納する領域を示すアドレスである、
    請求項10から13のいずれかに記載のコントローラ。
  15. 情報記録装置と、前記情報記録装置にアクセスするアクセス装置とを有する情報記録システムであって、
    前記情報記録装置は、
    不揮発性メモリと、
    特定の論理アドレスと前記不揮発性メモリの物理ブロックとを対応付ける情報を含むページキャッシュ情報に基づいて、前記特定の論理アドレスへ記録するデータを一時保持する物理ブロックの管理を行うページキャッシュ制御部と、
    を備え、
    前記アクセス装置は、
    データ書き込みの際に該データを一時保持する物理ブロックが割り当てられる特定の論理アドレスに関する情報を、前記情報記録装置に対するデータ書き込み処理に先立ち、前記情報記録装置に通知するページキャッシュ情報設定部を備える、
    情報記録システム。
  16. 前記情報記憶装置は、前記不揮発性メモリに、前記ページキャッシュ情報を記録するメモリ制御部を備える、
    請求項15に記載の情報記録システム。


JP2010500574A 2008-02-29 2009-02-27 アクセス装置、情報記録装置、コントローラ、及び情報記録システム Active JP5577238B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010500574A JP5577238B2 (ja) 2008-02-29 2009-02-27 アクセス装置、情報記録装置、コントローラ、及び情報記録システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008049358 2008-02-29
JP2008049358 2008-02-29
JP2010500574A JP5577238B2 (ja) 2008-02-29 2009-02-27 アクセス装置、情報記録装置、コントローラ、及び情報記録システム
PCT/JP2009/000886 WO2009107393A1 (ja) 2008-02-29 2009-02-27 アクセス装置、情報記録装置、コントローラ、及び情報記録システム

Publications (2)

Publication Number Publication Date
JPWO2009107393A1 true JPWO2009107393A1 (ja) 2011-06-30
JP5577238B2 JP5577238B2 (ja) 2014-08-20

Family

ID=41015800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500574A Active JP5577238B2 (ja) 2008-02-29 2009-02-27 アクセス装置、情報記録装置、コントローラ、及び情報記録システム

Country Status (3)

Country Link
US (1) US8914579B2 (ja)
JP (1) JP5577238B2 (ja)
WO (1) WO2009107393A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4616396B2 (ja) * 2009-01-26 2011-01-19 シャープ株式会社 録画装置
JP5209793B2 (ja) 2009-08-21 2013-06-12 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
WO2011058700A1 (ja) * 2009-11-11 2011-05-19 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
FI20105743A0 (fi) 2010-06-29 2010-06-29 Tuxera Inc Muistista lukeminen tai muistiin kirjoittaminen
JP4881469B1 (ja) * 2010-09-22 2012-02-22 株式会社東芝 情報処理装置、及び情報処理方法
JP2012113789A (ja) * 2010-11-26 2012-06-14 Buffalo Inc ハードディスクドライブ装置およびその処理装置
US9323670B2 (en) 2010-12-13 2016-04-26 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
US9280477B2 (en) * 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
JP2012173778A (ja) * 2011-02-17 2012-09-10 Sony Corp 管理装置、および管理方法
JP5614337B2 (ja) * 2011-03-08 2014-10-29 富士通セミコンダクター株式会社 メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
CN104102695B (zh) * 2014-06-26 2017-11-10 晨星半导体股份有限公司 智能设备启动过程的数据处理方法及智能设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3766396B2 (ja) * 2003-04-21 2006-04-12 株式会社東芝 メモリ制御装置およびメモリ制御方法
US7058784B2 (en) 2003-07-04 2006-06-06 Solid State System Co., Ltd. Method for managing access operation on nonvolatile memory and block structure thereof
US8185705B2 (en) 2003-10-31 2012-05-22 Panasonic Corporation Information recording medium, information recording medium accessing apparatus and accessing method
JP2005301591A (ja) * 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JP5076411B2 (ja) 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
US20080288436A1 (en) * 2007-05-15 2008-11-20 Harsha Priya N V Data pattern matching to reduce number of write operations to improve flash life

Also Published As

Publication number Publication date
US20100332717A1 (en) 2010-12-30
JP5577238B2 (ja) 2014-08-20
US8914579B2 (en) 2014-12-16
WO2009107393A1 (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
JP5485163B2 (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
JP5400875B2 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
JP4758518B2 (ja) 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
US20080288710A1 (en) Semiconductor Memory Device and Its Control Method
GB2383859A (en) Memory controller managing a file allocation table for a memory card
JPH11203191A (ja) 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
US20150149690A1 (en) Recording device, access device, recording system, and recording method
JP2006277737A (ja) アドレス予測機能をもつ不揮発性記憶装置
JP4551328B2 (ja) 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
KR20130051438A (ko) 엔드리스 메모리
KR101046083B1 (ko) 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법
WO2011121870A1 (ja) データ記録装置、及びデータ記録方法
JP4130808B2 (ja) フォーマット方法
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
WO2018186455A1 (ja) 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2011133947A (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
JP2008152414A (ja) ライトワンス型情報記録装置、コントローラ、アクセス装置、及びライトワンス型情報記録システム
JP2005322074A (ja) 記録デバイスのキャッシュ方法及びデータ記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140527

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250