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

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

Info

Publication number
JPWO2010001606A1
JPWO2010001606A1 JP2010518928A JP2010518928A JPWO2010001606A1 JP WO2010001606 A1 JPWO2010001606 A1 JP WO2010001606A1 JP 2010518928 A JP2010518928 A JP 2010518928A JP 2010518928 A JP2010518928 A JP 2010518928A JP WO2010001606 A1 JPWO2010001606 A1 JP WO2010001606A1
Authority
JP
Japan
Prior art keywords
information
data
information recording
access
file system
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
JP2010518928A
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 JPWO2010001606A1 publication Critical patent/JPWO2010001606A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

FATファイルシステム等では、クラスタは順方向にしかリンクされないため、逆方向のシークを実施するには、その都度先頭側からリンクを辿る必要がある。このため、特に大容量化されたデータに関しての逆方向シークはオーバーヘッドが大きいという問題がある。情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するメモリコントローラ(101)において、前記情報記憶媒体に記録されるデータはファイルシステムによって管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する制御部(105)と、前記データの連続性に係わる情報を連続性情報として記録する連続データ管理部(103)とを備える。

Description

本発明は、データの記録を実現するコントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法に関する。
音楽コンテンツや動画コンテンツ、静止画コンテンツなどの各種デジタルデータ(以下、「コンテンツ」という)を、記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリカードなど、様々な種類が存在する。これらの記憶媒体に記録するデータサイズも大きくなる傾向にある。例えば、デジカメにおける解像度が向上されたことや、ムービーにおける高ビットレートを要求する高画質データの記録が実現されたこと等により、記録するデータサイズも大きくなってきている。このように、電子機器の機能向上と、記憶媒体の大容量化に伴い、従来以上に大容量のデータを1つのファイルとして、記録媒体に高速に書き込むような場面が生じている。
記録媒体に書き込むデータは、一般にファイルシステムによって管理されている。従来使用されているファイルシステムとしてFAT(File Allocation Table)ファイルシステムと呼ばれるファイルシステムがある。FATファイルシステムでは、記録領域をクラスタと呼ばれる単位で管理し、データを書き込む際には、空きクラスタをシークしてデータを格納する。また、FATファイルシステムでは、記録されているデータを読み出す際にも同様に、記録されているデータが格納されたクラスタをシークしてデータを読み出す。
このようにして書き込まれるデータ(ファイルシステムにより管理されるデータ)のサイズ増大や記憶媒体の大容量化等により、記憶媒体に対するデータ書き込み処理やデータ読み出し処理に要する時間が長くなるという問題が生じている。
これらの問題を解決する方法としては、例えば、半導体メモリカード毎に、その特性に合うファイルシステムのアクセス方法に限定し、その限定されたアクセス方法においては、所定のアクセス性能を保証可能となるように、半導体メモリカード及びホスト装置のファイルシステムを構成する方法がある。
例えば、特許文献1では、半導体メモリカード内に半導体メモリカードのアクセス性能に関する情報を保持し、ホスト装置からその情報の少なくとも一部を取得できるようにしている。ホスト装置は、その取得した情報を基にファイルシステムの処理内容を合わせることにより、半導体メモリカードに対して連続したデータの高速な書き込みを実現している。
国際公開第2005/015406号パンフレット
FATファイルシステム等では、クラスタのリンク情報は、順方向にしかリンクされていないために、ファイルデータの終端方向から先頭方向へのデータ読み出し(例えば、終端から巻き戻しながら再生を行なうようなケース)が必要となる逆方向のシーク処理(データ読み出し)を実施するには、その都度、先頭側からリンクを辿る必要がある。このため、特に、大容量化されたデータに対して、上記のような逆方向のシーク処理を実施する場合、オーバーヘッドが大きくなる(シーク処理にかかる処理時間が長くなる)という問題がある。
そこで、本発明では、上記問題点に鑑み、FATファイルシステムで管理されるデータのシーク処理を高速化するコントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法を実現することを目的とする。
第1の発明は、情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラであって、制御部と、連続データ管理部と、を備えるコントローラである。
制御部は、情報記憶媒体に記録されるデータはファイルシステムによって管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する。連続データ管理部は、データの連続性に係わる情報を連続性情報として記録する。
これにより、コントローラはデータの連続性に係わる情報を持つことができ、ファイルシステムで管理されるデータのシーク処理を高速化することができる。
第2の発明は、第1の発明であって、制御部は、連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第3の発明は、第1または第2の発明であって、制御部は、外部からの要求に応じて、連続データ管理部に保持する連続性情報を変更する。
これにより、連続性情報を外部から修正・更新等を行うことが可能となる。
第4の発明は、第1から第3のいずれかの発明であって、ファイルシステムの情報を認識するファイルシステム情報管理部をさらに備える。
これにより、コントローラは情報媒体に記録されるファイルの連続性を認識し、ファイルシステムで管理されるデータが高速にシーク処理されることが可能となる。
第5の発明は、第1から第4のいずれかの発明であって、ファイルシステム情報管理部は、連続性情報とファイルシステムの情報に基づいて連続性情報を変更する。
これにより、データが変更された場合等においても変更内容に応じて、連続性情報を更新することが可能となる。
第6の発明は、第1から第4のいずれかの発明であって、ファイルシステム情報管理部は、外部からの要求があった際に、連続性情報とファイルシステムの情報に基づいて、連続性情報を変更する。
これにより、外部からの要求にしたがって、連続性情報を更新することが可能となる。
第7の発明は、第1から第6のいずれかの発明であって、コントローラが制御する情報記憶媒体は、不揮発性メモリである。
これにより、情報記憶媒体は不揮発性の記憶媒体となるため、データ記録後に電源供給を停止してもデータを保持することが可能となる。
第8の発明は、情報記憶媒体と該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを備えた情報記録装置であって、制御部と、連続データ管理部と、を備える。
制御部は、メモリコントローラは、ファイルシステムによって情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータ連続性を検出する。連続データ管理部は、データの連続性に係わる情報を連続性情報として記録する。
これにより、コントローラはデータの連続性に係わる情報を持つことができ、ファイルシステムで管理されるデータのシーク処理を高速化することができる。
なお、「情報記録装置」は、情報記録モジュールを含む概念である。
第9の発明は、第8の発明であって、メモリコントローラは、情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を保持するカード情報管理部をさらに備える。制御部は、アクセス条件を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第10の発明は、第8または第9の発明であって、制御部は、連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第11の発明は、第8または第10の発明であって、制御部は、外部からの要求に応じて、連続データ管理部に保持する連続性情報を変更する。
これにより、連続性情報を外部から修正・更新等を行うことが可能となる。
第12の発明は、情報記憶媒体と、該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを具備する情報記録装置であって、制御部と、ファイルシステム情報管理部と、を備える。
制御部は、コントローラは、ファイルシステムによって情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する。ファイルシステム情報管理部は、データの連続性に係わる情報を連続性情報として記録する連続データ管理部とファイルシステムの情報を認識する。
これにより、コントローラは情報媒体に記録されるファイルの連続性を認識し、ファイルシステムで管理されるデータが高速にシーク処理されることが可能となる。
第13の発明は、第12の発明であって、ファイルシステム情報管理部は、連続性情報とファイルシステムの情報に基づいて連続性情報を変更する。
これにより、データが変更された場合等においても変更内容に応じて、連続性情報を更新することが可能となる。
第14の発明は、第12の発明であって、ファイルシステム情報管理部は、外部からの要求があった際に、連続性情報とファイルシステムの情報に基づいて、連続性情報を変更する。
これにより、外部からの要求にしたがって、連続性情報を更新することが可能となる。
第15の発明は、第5から第14のいずれかの発明であって、情報記憶媒体は、不揮発性メモリである。
これにより、情報記憶媒体は不揮発性の記憶媒体となるため、データ記録後に電源供給を停止してもデータを保持することが可能となる。
第16の発明は、情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、制御部と、ファイルシステム制御部と、を備える。
制御部は、情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を情報記録装置から受信する。ファイルシステム制御部は、アクセス条件に基づいて、情報媒体へ記録するデータのアドレスを決定する。
これにより、アクセス装置は、情報記録装置へ好適なデータ書き込みを行うことが可能となる。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第17の発明は、情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、制御部と、ファイルシステム制御部と、を備える。
制御部は、情報記憶媒体に記録されたデータのアドレス空間上の連続性に係わる連続性情報を情報記録装置から受信する。ファイルシステム制御部は、連続性情報に基づいて、情報記録装置からデータを受信する。
これにより、アクセス装置は、情報記録装置から好適なデータ読み出しを行うことが可能となる。
第18の発明は、第8の発明である情報記録装置と、第16または第17の発明であるアクセス装置と、を備える情報記録システムである。
第19の発明は、情報記憶媒体へのデータ書き込みを制御する情報記録方法であって、アドレス管理ステップと、データ連続性検出ステップと、連続性情報記録ステップと、を備える。
アドレス管理ステップは、データが情報記憶媒体に記録する記録場所をアドレスによって管理する。データ連続性検出ステップは、該アドレス空間上でのデータの連続性を検出する。連続性情報記録ステップは、データの連続性に係わる情報を連続性情報として記録する。
第20の発明は、第19の発明であって、ファイルシステム情報認識ステップをさらに備える。
ファイルシステム情報認識ステップは、ファイルシステムの情報を認識する。
さらに、本発明は上記に記載の発明を、CPUや集積回路で実現されるソフトウェア又はハードウェア等において実行される方法としても実現することが可能である。
本発明により、ファイルシステムで管理されるデータのシーク処理を高速化することが可能となる。
情報記録システムの構成例を示したブロック図 フラッシュメモリの消去ブロックとページとの関係を示す図 FATファイルシステムの構成例を示す図 アクセスモジュールが情報記録モジュールにデータを記録する際のアクセスモジュールの処理例を示すフローチャート アクセスモジュールが受信するアクセス情報の構成例を示す図 情報記録モジュールにおけるデータの書き込み処理の例を示すフローチャート データの連続性を判定する処理の一例を示すフローチャート 連続データ管理情報の一例を示す図 データ読み出し時のアクセスモジュールの処理の例を示すフローチャート FATファイルシステムで管理されるデータの構成例を示す図 FATファイルシステムで管理されるデータに対する読み出しコマンド発行の判定例を示すフローチャート データ読み出し時の情報記録モジュールの処理例を示すフローチャート アクセスモジュールと情報記録モジュール間のコマンド、レスポンス送受信を示す図 連続データ管理情報の一例を示す図 アドレスと記録領域部で連続情報を管理した場合の例を示す図 データ読み出し時のアクセスモジュールの処理の例を示すフローチャート ファイルシステム制御部が複数ブロック分のデータ読み出しコマンドを送信する判断例を示すフローチャート 連続情報取得コマンドとその処理例を示す図 連続情報取得コマンドとその処理例を示す図 情報記録システムにおける連続情報更新コマンドの処理例を示す図 情報記録システムにおける連続情報更新コマンドの処理例を示す図 連続情報をIDで識別する場合の例を示す図 情報記録システムの構成例を示したブロック図 アクセスモジュールの書き込み処理例を示すフローチャート データ書き込み処理前のディレクトリエントリ、FAT、データ領域の構成例を示す図 データ書き込み処理後のディレクトリエントリ、FAT、データ領域の構成例を示す図 データが更新された場合の情報記録モジュール内部の処理例を示すフローチャート 情報記録システムにおける連続データ作成コマンドの送受信例を示す図 情報記録システムにおける連続データ作成コマンドの送受信例を示す図
[第1実施形態]
本発明の第1実施形態について、図面に基づいて詳細に説明する。
<1.1:情報記録システムの構成>
図1は、本発明の実施形態による情報記録システム1000の構成を示したブロック図である。情報記録システム1000は、図1に示すように、情報記録モジュール(情報記録装置)100とアクセスモジュール(アクセス装置)110と、備える。情報記録モジュール(情報記録装置)100とアクセスモジュール(アクセス装置)110とは、伝送路D1により接続されており、相互にデータ、コマンド等の通信が可能である。
(1.1.1:情報記録モジュールの構成)
情報記録モジュール100は、メモリコントローラ101と、記録領域部108と、を備える。情報記録モジュール100は、例えば、半導体メモリカードのような記録媒体、または、再生機、記録機、携帯電話等に組み込まれているデータ記録回路のような装置である。図1に示すように、メモリコントローラ101と、記録領域部108とは、例えば、データバスD2により接続されている。
メモリコントローラ101は、図1に示すように、外部I/F部102と、連続データ管理部103と、カード情報管理部104と、制御部105と、記録領域I/F部106と、アドレス情報管理部107と、バスB2と、を備える。図1に示すように、メモリコントローラ101の各機能部は、バスB2により接続されている。なお、メモリコントローラ101の各機能部の一部または全部を、相互に、直接接続する構成としてもよいことは言うまでもない。
外部I/F部102は、アクセスモジュール110のモジュールアクセス部112と、伝送路D1により接続されている。外部I/F部102は、情報記録モジュール100に対応するアクセスモジュール(再生機器、記録機器等のアクセスモジュール)とのコマンド、データ等の各種情報の受け渡しをする機能を備えている。
連続データ管理部103は、アクセスモジュール110から送信され、記録領域部108に管理されるデータが所定の長さ以上連続して管理されているか否かの情報を管理する機能を備えている。ここでの「所定の長さ以上連続する」とは、アクセスモジュール110でデータ管理が把握可能となる論理的なアドレス空間で、データが所定のサイズ分以上連続していることを示している。
カード情報管理部104は、アクセスモジュール110が情報記録モジュール100にアクセスする場合の好適なアクセス方法に関する各種パラメータ情報(アクセス情報)を管理する。
制御部105は、アクセスモジュール110から受信したコマンドに従って、データの書き込みやデータの読み出し等の処理を行ない、情報記録モジュール100の内部制御を行なう機能を備えている。
記録領域I/F部106は、記録領域部108と接続されており、制御部105等が記録領域部108に対するデータ書き込みやデータ読み出しの際のインタフェース機能を備えている。
アドレス情報管理部107は、記録領域部108に管理されているデータの物理的なアドレス(物理アドレス)と、当該物理的なアドレスのデータをアクセスモジュール110からアクセスするための論理的なアドレス(論理アドレス)との対応を管理するアドレス情報の対応関係を管理する機能を備えている。例えば、アドレス情報管理部107は、論理アドレス/物理アドレス変換テーブルを有しており、当該論理アドレス/物理アドレス変換テーブルにより、論理アドレスを物理アドレスに変換したり、物理アドレスを論理アドレスに変換したりする。
記録領域部108は、データを記録する記録素子等である。具体的には、記録領域部108には、ハードディスクや、光ディスク、不揮発性メモリ等を利用することが可能である。
本実施形態では、記録領域部108に不揮発性メモリを用いた場合を例として説明するが、これに限定するものではない。不揮発性メモリは、不揮発性のデータ記録素子で構成され、例えば、NANDタイプのフラッシュ素子のような半導体記録素子で構成される。このようなNAND型のメモリには、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータを書き込まなければならないという特徴がある。ここで、データを消去する単位は、消去ブロックと呼ばれ、書き込みの最小単位である物理ページ(当該物理ページは、例えば、512バイト単位で構成される。)が複数個集まったブロックとして管理される。各消去ブロックは、通常、2のi乗(iは0以上の整数)個の複数の連続する物理ページ領域から構成される。
図2は、フラッシュメモリFMにおける消去ブロックとページとの関係の一例を示した図である。図2の例では、消去ブロックEBは、0〜(N−1)までのN個のブロックからなり、1個の消去ブロックのサイズは、例えば、128KBとする。1つの消去ブロック単位は、256ページから構成されており、PSN=0〜(N−1)×256+255までの一連の物理ページ番号PSNが付加されている。データの書き込み又はデータの読み出しは、ページ単位で行なうことが可能であるが、データの書き込みに先立ち必要となるデータの消去処理は、消去ブロック(128KB)単位で行なわれる。
(1.1.2:アクセスモジュールの構成)
アクセスモジュール110は、制御部111と、モジュールアクセス部112と、アクセス機能部(アクセスモジュール側ソフト)113と、バスB1と、を備える。
図1に示すように、アクセスモジュール110の各機能部は、バスB1により接続されている。なお、アクセスモジュール110の各機能部の一部または全部を、相互に、直接接続する構成としてもよいことは言うまでもない。
アクセス機能部は、図1に示すように、アプリケーション部(アプリケーションプログラム)114と、ファイルシステム制御部115と、アクセス条件判定部116と、アクセス制御部117と、を含む。
なお、以下では、アクセス機能部113がソフトウェアにより実現される場合について説明するが、これに限定されることはなく、アクセス機能部113の全部または一部をハードウェアにより実現してもよいことは言うまでもない。
制御部111は、アクセスモジュール110の制御を行なう機能を備えている。制御部111は、情報記録モジュール100に対してデータの書き込み、データの読み出し等のコマンドの発行、アクセスモジュール側ソフト(アクセス機能部)の実行処理を行なう等の各種制御実行処理を行う機能を備えている。
モジュールアクセス部112は、伝送路D1を介して情報記録モジュール100の外部IF部102と接続されており、情報記録モジュール100と通信する機能を備えている。モジュールアクセス部112は、伝送路D1を介して、アクセスモジュール110と情報記録モジュール100との間で、各種情報の受け渡しをする機能を備えている。
アクセスモジュール側ソフト(アクセス機能部)113は、主に、アプリケーションプログラム(アプリケーション部)114と、ファイルシステム制御部115と、アクセス条件判定部116と、アクセス制御部117と、から構成される。アクセスモジュール側ソフト(アクセス機能部)113は、アクセスモジュール110内のROM(不図示)等の記憶領域に格納されて、アクセスモジュール110(あるいは情報記録システム1000)の電源起動時にRAM領域(不図示)にロードされ稼動されるソフトウェアである。
アプリケーションプログラム(アプリケーション部)114は、各アプリケーションの処理目的に応じたデータ処理を行い、当該データ処理の対象となるデータを、ファイルシステム制御部115を介して、情報記録モジュール100に対して、書き込み又は読み出すものである。
ファイルシステム制御部115は、情報記録モジュール100に格納されているデータの管理を行なう機能を備えている。例えば、FAT12/16、FAT32のように所定の規格で規定されたファイルシステムフォーマットに従ってデータの読み書きを行なうためのデータ制御を行なう機能を備えている。
ここで、図3を用いて情報記録モジュール100に適用されるFATファイルシステムの構成例を説明する。
図3のファイルシステム管理領域301−Aは、図1の記録領域部108におけるファイルシステムで管理する領域を意味し、その領域内の全領域、あるいは一部の領域に相当する。なお、図3では、LAは、論理アドレスを示す。FATファイルシステムでは、ファイルシステム管理領域301−Aの先頭にファイルシステム管理領域全体を管理するための管理情報格納領域302が存在し、引き続いてファイル内のデータなどを格納するデータ領域303が存在する。管理情報格納領域302は、マスターブートレコード・パーティションテーブル(以下、「MBR・PT」という)304、パーティションブートセクタ(以下、「PBS」という)305、FAT1st306、FAT2nd307(以下、両者を合わせて「FAT」という)、ルートディレクトリエントリ(以下、「RDE」という)308から構成される。
MBR・PT304は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。
PBS305は、1つのパーティション内の管理情報を格納する部分である。
FAT306、307は、ファイルに含まれるデータの論理的な格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に2つの同じ情報を持つものが存在し、2重化されている。
データ領域303は、複数のクラスタ領域に分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルなどは、複数のクラスタに跨ってデータ等を格納しており、各クラスタの繋がりは、FAT1st306、FAT2nd307に格納されたリンク情報により管理されている。
RDE308は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。
アクセス条件判定部116は、情報記録モジュール100から読み出される各種アクセス条件を判定しデータを格納する際のアクセス条件を判定する機能を備えている。
アクセス制御部117は、モジュールアクセス部112に対応したドライバ機能を備えている。アクセス制御部117は、アクセスモジュール110と情報記録モジュール100との間でデータ通信を行うことができるように、ファイルシステム制御部115により扱われるデータを、所定のコマンドフォーマットに変更するなどの機能を備えている。すなわち、アクセス制御部117は、ファイルシステム層のデータ形式を、物理層のデータ形式に変換する機能を備えている。
<1.2:動作>
(1.2.1:データ書き込み処理)
次に、以上のような機能を備える情報記録システム1000における情報記録モジュール100とアクセスモジュール110とのデータの書き込み処理シーケンスについて説明する。
(1.2.1.1:データ書き込み処理(アクセスモジュール110側の処理))
図4は、アクセスモジュール110が、情報記録モジュール100にデータを記録する際のアクセスモジュール110の処理の例を示すフローチャートである。以下、図4のフローチャートを用いて、アクセスモジュール110が、情報記録モジュール100にデータを記録する際のアクセスモジュール110の処理について、説明する。
(ステップS401):
制御部111は、モジュールアクセス部112を介して、情報記録モジュール100から、好適なアクセス条件を取得するためのアクセス情報取得コマンドを、情報記録モジュール100に対して発行する。
(ステップS402):
制御部111は、モジュールアクセス部112を介して、アクセス情報を情報記録モジュール100から受信する。
図5は、このときに受信するアクセス情報の構成例を示す図である。図5(a)に示すように、この場合のアクセス情報は、64バイトの情報で構成され、アクセス条件と連続アクセス単位に関する情報で構成されている。なお、図5(a)に示したアクセス情報の構成は、一例であり、これに限定されないことは言うまでもない。図5の(b)では、その具体例(最適アクセス情報の構成例)を示しており、アクセス情報に、アクセス条件として16KB/クラスタが格納されており、また、連続アクセス単位として4MBが格納されていることを示している。
このようなアクセス情報(図5(b)のアクセス情報)は、以下のことを示している。すなわち、情報記録システム1000において、1クラスタ16KBで、論理アドレス空間上4MB連続してデータを格納した場合、図5(b)のアクセス情報は、そのデータが情報記録モジュール100内に論理的に連続した状態で格納・管理されることを示している。
なお、図示はしていないが、これ以外のアクセス情報の構成として、例えば、次のような構成を採用してもよい。すなわち、既存のアクセス情報、例えば、アクセス性能を示す情報の値をそのまま利用し、その情報とは別に、データが論理アドレス空間で連続しているという情報を保持する機能があるか否かを示すことを「0」か「1」かのビットの情報のみを保持するような情報を含む構成であってもよい。また、ここでは、アクセス情報が64バイトで構成される例を示したが、そのサイズは限定されない。
(ステップS403):
アクセス条件判定部116は、情報記録モジュール100から受信したアクセス条件を読み出し、アクセス条件を判定する。
ここで、「アクセス条件を判定する」とは、前記図5で示した情報のようなアクセス情報からその情報を利用することができるか否かの判定を行うことである。
例えば、アクセス条件判定部116により予め想定されているアクセス条件と同様の条件がアクセス情報に記載されている場合、アクセス条件判定部116は、その値に依存したアクセスが行えると判定し、一方、アクセス条件判定部116により想定されていないアクセス条件がアクセス情報に記載されている場合、アクセス条件判定部116は、当該アクセス条件(アクセス情報に記載されているアクセス条件)を満たさないアクセスを行うことはできないと判定する。
(ステップS404):
ファイルシステム制御部115は、書き込みコマンドを、モジュールアクセス部112を介して、情報記録モジュール100へ送信する。このとき、アクセスモジュール110が送信する書き込みコマンドにおいて、情報記録モジュール100内のどの論理アドレスからデータを格納するのかが引数で指定される。
なお、ファイルシステム制御部115は、書き込みデータの単位であるクラスタ、アクセス条件判定部116で判定したアクセス条件、情報記録モジュール100に既に記録されているデータのファイルシステム構成、アプリケーションプログラム114が要求するデータの書き込みサイズや書き込み速度等のパラメータに基づいて、例えば、ファイルシステム管理情報の更新(データの書き込み)については、データをアクセス条件に合うサイズ分だけ書き込んだ後に行うといったような制御を行う。つまり、ファイルシステム制御部115は、情報記録モジュール100内のどの論理アドレスからどのような順番で、どのようなサイズのデータを書き込むのかといった組み合わせにおいて、予め想定している最適なアクセスとなるような条件に従って、データ書き込み処理についての制御を実行し、ファイルシステム制御部115は、アクセス制御部117とモジュールアクセス部112を介して、情報記録モジュール100に対して、書き込みコマンドを発行する。
(ステップS405):
アクセス制御部117は、モジュールアクセス部112を通して情報記録モジュール100へデータを送信する。ファイルシステム制御部115では、クラスタ単位でデータの取り扱いを行うが、アクセス制御部117では、クラスタをデータブロック単位(例えば、512バイト単位)でデータを取り扱う。そのため、このときモジュールアクセス部112から送信されるデータサイズは、データブロックサイズ単位のデータである。
(ステップS406):
アクセス制御部117は、所定の大きさ分データを送信したか否かを判定する。ここでの「所定の大きさ」とは、例えば、クラスタサイズのようなサイズ単位で管理されるデータの大きさである。もし、所定の大きさ分データを送信していなければ、S405において、再度データブロックサイズ分データを送信する。
(ステップS407):
ファイルシステム制御部115は、全データを送信したか否かを判定する。もし、全データの送信が終わっていない場合には、S404において再度書き込みコマンドを発行する。このときの書き込みコマンドに指定する論理アドレスの値等の判定は、上記ステップS404と同様である。
(1.2.1.2:データ書き込み処理(情報記録モジュール100側の処理))
次に、情報記録モジュール100の処理について説明する。
図6は、情報記録モジュール100におけるデータの書き込み処理の例を示すフローチャートである。図6では、書き込み処理の一例として、説明を簡単にするために消去ブロックの倍数長のデータを書き込む場合における情報記録モジュール100の内部の処理シーケンスを示す。以下、図6のフローチャートを用いて、情報記録モジュール100におけるデータの書き込み処理について、説明する。
(ステップS601):
メモリコントローラ101は、アクセスモジュール110から送信されたコマンドと引数とを外部I/F部102を介して受信する。
(ステップS602):
制御部105は、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する。
(ステップS603):
S602において、情報記録モジュール100が受信したコマンドが不正コマンドであると判断された場合、制御部105は、外部I/F部102を通して、アクセスモジュール110にエラーを通知する。
(ステップS604):
S602において、情報記録モジュール100が受信したコマンドが認識可能なコマンドであると判断された場合、制御部105は、さらに、そのコマンドが書き込みコマンドであるか判定する。
(ステップS605):
S604において、情報記録モジュール100が受信したコマンドが書き込みコマンド以外のコマンドであると判断された場合、制御部105は、各コマンドに対応した処理を実施する。例えば、受信コマンドがアクセス情報取得コマンドである場合、カード情報管理部104からアクセス条件情報を読み出し、アクセスモジュール110へ送信する。
(ステップS606):
S604において、受信コマンドが書き込みコマンドであると判定された場合、制御部105は、書き込み要求のあったデータが連続しているか否かの判定を行う。この場合の詳細な処理については後述する。
(ステップS607):
制御部105は、実際に記録領域部108にデータを書き込む消去ブロックの物理アドレスを決定する。
(ステップS608):
制御部105は、ステップS606で消去ブロックと決定された記録領域部108上の物理ブロックのデータを、記録領域I/F部106を介して、消去する。
(ステップS609):
制御部105は、アクセスモジュール110から1データブロックサイズ分のデータを、外部I/F部102を介して受信する。
(ステップS610):
制御部105は、データの受信を完了すると、受信したデータブロックサイズ分のデータを、記録領域I/F部106を介して、記録領域部108に書き込む。アドレス情報管理部107は、アクセスモジュール110から指定された論理アドレスと実際に記録領域部108に書き込んだ物理アドレスの対応関係を保持する。
(ステップS611):
S609、S610のデータ受信、書き込み処理を、1消去ブロック分のデータ書き込みが完了するまで繰り返し実施する。
(ステップS612):
S606からS610までの1消去ブロック分のデータ書き込み処理を、アクセスモジュール110から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する。アクセスモジュール110から指定された書き込みサイズ分のデータ書き込みが完了した場合、処理を終了する。
(1.2.2:データ連続性の判定処理)
ここで、上記のステップS606におけるデータの連続性を判定する処理について、説明する。図7は、上記のステップS606におけるデータの連続性を判定する処理の一例を示すフローチャートである。図7を用いて、以下、ステップS606におけるデータの連続性を判定する処理について、説明する。
(ステップS701):
制御部105は、アクセスモジュール110から送信された書き込みコマンドに格納されたデータ書き込み位置の論理アドレスが、直前に書き込んだデータの論理アドレスと連続しているか否かの判定を行なう。制御部105は、書き込み位置の論理アドレスが連続していないと判定した場合には、後述するS705へ処理を移す。
(ステップS702):
制御部105は、書き込み位置の論理アドレスが連続していると判定した場合、連続している情報として変数Nをカウントアップする。なお、図示はしていないが、情報記録モジュール100の初期化時等においてNは、「0」で初期化されているものとする。
(ステップS703):
制御部105は、連続領域分論理アドレスが所定のサイズ分連続しているか否かの判定を行なう。具体的には、一定の連続性を示す予め定められた値Pと変数Nとの大小関係(等しい場合も含む)に基づいて判断する。NがPより小さい場合(所定のサイズ分連続していない場合)には、制御部105は、処理を終了させる。
(ステップS704):
ステップS703の処理において、連続領域論理アドレスが所定のサイズ分連続している場合には、制御部105は、連続データ管理部103にある連続データ管理情報の更新を行なう。一例として、所定のサイズが4MB、1クラスタサイズを16KBとすると、ステップS703においてNが「254」にカウントアップされた際に、連続データ管理情報の更新を行なう。
図8は、このときの連続データ管理情報の一例を示す図である。図8では、4MB連続している場合の512バイトのデータブロック単位で論理アドレスの先頭アドレス情報がリスト化されている例を示している。図8中のNo.1には、論理アドレス0x0030と記録されているため、0x0030を開始アドレスとして0x2030までの4MB論理アドレスが連続してデータが格納されていることを示している。同様に、No.2に記録されている0x5000は、論理アドレス0x5000から0x7000まで論理アドレスが連続してデータが格納されていることを示している。
(ステップS705):
制御部105は、アドレスの連続カウンタである変数Nを「0」にリセットする。
以上のように情報記録モジュール100は、アクセスモジュール110から送信されてくるデータに対して、所定の値に基づいて論理アドレス上連続する形でデータが格納されているか否かを判定し、その判定処理により取得した情報を連続データ管理部103に保持する。
なお、ここでは、情報記録システム1000において、論理アドレスで連続する形でデータが格納された場合、その情報を連続データ管理部103に格納する例を示したが、これに限定されることはなく、例えば、FATファイルシステムで管理されるデータの場合、データが格納され、そのデータに対応する管理情報であるFATの情報が正しく更新されたことを確認してから連続データ管理部103に情報を格納するといったように、情報記録システム1000において、管理情報との整合性を確認した後に、連続情報を格納する方法を採用してもよい。
(1.2.3:データ読み出し処理)
次に、本発明の情報記録システム1000における情報記録モジュール100とアクセスモジュール110のデータの読み出し処理シーケンスについて説明する。
なお、ここでは説明を簡単にするためにFATファイルシステム上のFATエントリ等のシステム情報は、既にアクセスモジュール110が読み込んでいるものとし、データ部分のみの読み出し処理のシーケンスのうち、特に、シーク処理を伴った処理のシーケンスについて説明する。
(1.2.3.1:データ読み出し処理(アクセスモジュール110側の処理))
図9は、データ読み出し時のアクセスモジュール110の処理の例を示すフローチャートである。図9を用いて、以下、データ読み出し時のアクセスモジュール110の処理について、説明する。
(ステップS901):
制御部111は、モジュールアクセス部112を介して、情報記録モジュール100に対して、好適なアクセスを行なうためのアクセス情報取得コマンドを発行する。
(ステップS902):
制御部111は、S901の返答であるアクセス情報を情報記録モジュール100から受信する。
(ステップS903):
アクセス条件判定部116は、受信したアクセス情報を読み出し、FATエントリの読み出し時のパラメータ設定等のアクセス情報を判定する。ここでの「アクセス情報の判定」とは、受信したアクセス情報から、その情報を利用することができるか否かの判定を行うことである。例えば、アクセス情報に4MB論理アドレスが連続していれば、連続しているという情報を管理していることが含まれている場合には、アクセス条件判定部116は、予め想定している条件に沿って、FATエントリの読み出し時に4MB分論理アドレス空間をスキップして読み込むことが可能であるなどの判定を行う。
(ステップS904):
ファイルシステム制御部115は、アクセス制御部117を介してFATエントリを参照し、アクセス制御部117が対応するクラスタのデータを1データブロックサイズ分のみ読む込むための読み出しコマンドを、情報記録モジュール100に送信する。このとき、送信する読み出しコマンドには、情報記録モジュール100内のどの論理アドレスからデータを読み出すのかを引数に指定する。
(ステップS905):
ファイルシステム制御部115は、ステップS904で発行したコマンドに対するレスポンス、アクセス条件、読み出しデータの指定等を考慮して、再度1データブロック分のみ読み出すコマンドを発行するか否か、あるいは、複数データブロック分読み出すコマンドを発行するか否かを決定する。このステップS905に関しては、後述する。
(ステップS906):
アクセス制御部117は、ステップS905で発行した読み出しコマンドに対するデータを、情報記録モジュール100から受信する。このとき、受信するデータサイズは、データブロックサイズ単位でのデータである。
(ステップS907):
アクセス制御部117は、所定の大きさ分データを受信した場合には、データ転送を停止するコマンドを送信する。ここでの「所定の大きさ」とは、例えば、情報記録モジュール100から転送される複数のデータブロック単位のデータを1つの単位とするクラスタサイズ単位分のことである。
(ステップS908):
ファイルシステム制御部115は、所定の大きさ分データを受信した場合には、全データを受信したか否かを判定する。もし、全データの受信が終わっていない場合には、ファイルシステム制御部115は、S905において、再度読み出しコマンドを、情報記録モジュール100に対して発行する。
≪FATファイルシステムにおけるクラスタ間の結合を示すリンク情報等の構成≫
次に、FATファイルシステムにおけるクラスタ間の結合を示すリンク情報等の構成について説明する。
図10を用いて、FATファイルシステムで管理されるデータの構成例を説明する。
データ領域は、クラスタと呼ばれる固定長データ単位で管理されており、図10中は、各クラスタには、「1」から始まる昇順のクラスタ番号が付与されている。
管理情報領域に含まれるFAT1Fでは、各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク(FAT1F内の破線矢印)情報を管理しており、各クラスタ番号(FAT1F内の実線矢印で示している番号)に対応したFATエントリから構成されている。
FATエントリは、FATファイルシステムの種別により、1クラスタあたり12ビット、16ビット、32ビットの3種類のうち、いずれかの大きさとなる。図10の例では、16ビットで1エントリが表現される場合を示している。FATエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す0x0000、当該クラスタがリンク終端であることを示す0xFFFFのいずれかの値が格納される。図10の拡大した図(図10の上側の図)のポインタ1からポインタ256で示す部分がクラスタ番号#1から#256に対するFATエントリを示している。この例では、クラスタ#1からクラスタ#256まで連続してデータが格納されている例を示している。クラスタサイズが16KBの場合、16×256で4MBのデータが論理アドレス上連続して格納されていることを示している。また、256番目のFATのエントリは、次のFATエントリを格納しているため、この場合、データは、4MB以上のデータであることを示している。
≪読み出しコマンド発行の判定に関するシーケンス≫
図11では、このようにFATファイルシステムで管理されるデータに対するステップS905の読み出しコマンド発行の判定に関するシーケンスを示している。以下、図11を用いて、ステップS905の読み出しコマンド発行の判定に関するシーケンスについて、説明する。
(ステップS1101):
ファイルシステム制御部115は、アプリケーションプログラム114からの指定によりファイル内のクラスタ単位でのシークサイズ(S)を算出する。
(ステップS1102):
ファイルシステム制御部115は、算出したシークサイズとアクセス情報の連続アクセス単位(Q)との比較を行なう。
図5の(b)に示すようなアクセス単位が4MBのアクセス情報を保持する情報記録モジュール100である場合、4MB連続領域にデータが書き込まれると、情報記録モジュール100は、読み出しコマンドに対するレスポンスコマンドに連続情報フラグを立てる。つまり、最初の512バイトを読み出すための読み出しコマンドに対して連続フラグが立っていた場合には、以降、4MBのFATエントリ分連続していると判断できる。そのため、最初の読み出し位置から4MB分以上先のFATエントリを読み出す必要がある場合には、その間のシーク処理をスキップするような処理も可能となる。このレスポンスコマンドに含まれる連続情報フラグの情報を、上記のような処理に利用するか否かの判定のため、ファイルシステム制御部115は、現在のポインタからのシークサイズ(S)が、そのサイズ(連続アクセス単位(Q))よりも大きいか否かの判定を行なう。
連続フラグの構成例に関しては、図13を用いて説明する。
もし、シークサイズ(S)の方が連続アクセス単位(Q)よりも小さければ、シークサイズ分FATエントリを探索して、ファイルシステム制御部115は、情報記録モジュール100に対して、複数データブロックを読み込むコマンドの発行を行う(ステップS1106)。そして、ステップS906の処理が実行される。
(ステップS1103):
シークサイズの方が連続アクセス単位(Q)よりも大きい場合には、ファイルシステム制御部115は、ステップS904で、情報記録モジュール100に送信した読み出しコマンドに対するレスポンスコマンドに連続フラグが立っているか否かを判断する。連続フラグが立っていない場合には、ファイルシステム制御部115は、情報記録モジュール100に対して、複数データブロックを読み込むコマンドの発行を行う(ステップS1106)。そして、ステップS906の処理が実行される。
(ステップS1104):
レスポンスコマンドに連続フラグが立っている場合には、ファイルシステム制御部115は、所定のサイズ分、FATエントリをスキップする処理を行い、次のクラスタの読み出しアドレスを算出する。
例えば、図5の(b)のようなアクセス情報を返す情報記録モジュールの場合には、4MB分連続してデータが格納されていることが保証されるため、データサイズ4MB分FATエントリをスキップして探索することができる。より具体的には、図10のようなデータを用いた場合、ファイルシステム制御部115は、最初のシーク位置がクラスタ#1の場所、シークサイズ4MB以上が要求された際、4MB以上FATのエントリの検索をスキップすることが可能となるため、クラスタ#256を示す管理情報の位置までのFATエントリの検索を省略することが可能となる。
(1.2.3.2:データ読み出し処理(情報記録モジュール100側の処理))
次に、データ読み出し時の情報記録モジュール100の処理シーケンスについて、図12を用いて説明する。
(ステップS1201):
制御部105は、アクセスモジュール110から送信されたコマンドと引数とを、外部I/F部102を介して、受信する。
(ステップS1202):
制御部105は、アクセスモジュール110から受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する。
(ステップS1203):
S1202において、アクセスモジュール110から受信したコマンドが不正コマンドであると判断された場合、制御部105は、外部I/F部102を通して、アクセスモジュール110にエラーを通知する。
(ステップS1204):
S1202において、アクセスモジュール110から受信したコマンドが認識可能なコマンドであると判断された場合、制御部105は、当該コマンドが読み出しコマンドであるか否かを判定する。
(ステップS1205):
S1204において、読み出しコマンド以外のコマンドであると判断された場合、制御部105は、各コマンドに対応した処理を実施する。例えば、アクセス情報取得コマンドである場合には、制御部105は、アクセス条件情報をアクセスモジュール110へ送信する。
(ステップS1206):
S1204において、読み出しコマンドと判断された場合、制御部105は、連続データ管理部103に管理されている情報を参照し、読み出しコマンドで指定されているデータが論理的なアドレス空間において連続データとして管理されているものに該当するか否かの確認を行なう。
(ステップS1207):
S1206において、連続データであると判断された場合、制御部105は、読み出しコマンドに対するレスポンスデータに連続データであることを示す連続フラグ情報をセットし、アクセスモジュール110へ送信する。
図13に、アクセスモジュール110と情報記録モジュール100との間における読み出しコマンドの発行と、そのコマンドに対するレスポンスとについてのシーケンスの一例を示す。
アクセスモジュール110からは、読み出しコマンド“Read”コマンドがアドレスを伴って情報記録モジュール100に発行される(図13の(1))。情報記録モジュール100では、指定されたアドレスのデータが連続データである場合には、連続フラグをレスポンスに設定してアクセスモジュール110に送信する(図13の(2))。
(ステップS1208):
制御部105は、コマンド引数に格納された読み出し論理アドレス情報に基づいて、アドレス情報管理部107にある論理アドレスと物理アドレスとの対応を示す情報から記録領域部108の物理アドレスを決定する。
(ステップS1209):
制御部105は、S1208で決定された記録領域部108の物理アドレスからデータを読み出し、1データブロック分のデータを、アクセスモジュール110に送信する。
(ステップS1210):
制御部105は、アクセスモジュールから送信停止要求コマンドを受信するまで(全データの送信が終わるまで)、ステップS1208からステップS1209の処理を繰り返してデータを送信する。
以上のように、情報記録システム1000では、情報記録モジュール100側で、所定のサイズ以上アドレスが連続する状態でデータが書き込まれた際の連続情報を管理し、データ読み出し時には、連続データであることをフラグ情報で返すことで、FATファイルシステムを用いた、ファイルデータのシーク時などにおいてアクセスモジュール110側のシステム上のオーバーヘッドを大幅に削減することができる。
なお、本実施形態では、情報記録システム1000の構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態の情報記録システム1000では、情報記録モジュール100のデータ格納処理として、記録領域部108を1つだけ使用するような構成例を示したが、これに限定されることはなく、例えば、記録領域部108へのデータの書き込み速度を向上させるために、情報記録システム1000は、複数の記録領域部108を備え、各記録領域部108のページに対して分散してデータを格納し、必要に応じて、消去ブロックの集約を行なうなど、より複雑なデータ管理方法により各種処理を行なうものであってもよい。この場合、情報記録システム1000において、連続データ管理部103やアドレス情報管理部107で管理されるデータは、上記実施形態で説明したデータ構成ではなく、より複雑なデータ構成となる。情報記録システム1000により管理されるデータは、情報記録システム1000において、アクセスモジュール110が指定する論理アドレスで所定の大きさ分連続してデータが情報記録モジュール100に格納されていることを管理できるものであれば、どのようなデータ構成であってもよい。
(2)本実施形態では、連続データであることを連続データ管理部103で保持管理している例を示したが、その管理方法は、上記で説明したものに限定されない。例えば、図14に示すように、連続データ管理部103において、論理アドレスと一緒に連続データ情報を一意に識別可能なID情報と共に管理し、データ読み出し時には、情報記録モジュール100は、アクセスモジュール110にID情報を伴って返すようにしても構わない。また、図15に示すように、論理的なアドレスと記録領域部108の物理的なアドレスとの対応を管理するアドレス情報管理部107が、所定の領域長でデータが連続しているか否かを示す連続情報フラグを、論理アドレスおよび物理アドレスと対応付けて管理しても構わない。
[第2実施形態]
次に、本発明の第2実施形態について、説明する。
第2実施形態の情報記録システムでは、データの読み出し時において、情報記録モジュール100が、アクセスモジュール110に対して、連続情報を返信するコマンドを備え、アクセスモジュール110からの連続情報取得コマンド要求に応じて、情報記録モジュール100が連続情報を返信する。この点が、第1実施形態と異なる。その他の構成については、第2実施形態の情報記録システムは、第1実施形態の情報記録システムと基本的に同様である。以下、第2実施形態が第1実施形態と異なる点に関して、詳細に説明する。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図16は、データ読み出し時のアクセスモジュール110の処理の例を示すフローチャートである。図9の処理と異なるのは、ステップS905の読み出しコマンドを再発行するか否かの処理がなくなり、ステップS1601とステップS1602とが追加になった点、及び、ステップS904では1データブロック分のデータの読み出しコマンドを送信する処理であったのが、ここでは複数データブロック分のデータの読み出しコマンドを送信するステップS1603となった点であり、その他は同様である。ここでは、ステップS1601、ステップS1602、ステップS1603に関して説明する。
(ステップS1601):
ファイルシステム制御部115は、アクセス制御部117を介して、連続データ情報を取得するためのコマンドを情報記録モジュール100に送信する。
(ステップS1602):
ファイルシステム制御部115は、アクセス制御部117を介して連続データ情報を情報記録モジュール100から受信する。
(ステップS1603):
次に、受信した連続データ情報を基に、ファイルシステム制御部115は、アクセス制御部117を介して複数ブロック分のデータ読み出しコマンドを、情報記録モジュール100に送信する。
図17に、S1603のより詳細な処理フローを示す。
図17の処理において、図11で示した処理と異なる点は、ステップS1103がステップS1701に変更されている点と、ステップS1702およびステップS1703が加わっている点である。その他の構成については、図17の処理は、図11の処理と同様である。ここでは、ステップS1701、ステップS1702、ステップS1703に関して説明する。
(ステップS1701):
ファイルシステム制御部115は、取得した連続データ情報から現在シークしようとしているデータが連続領域に該当するか否かを判断する。
(ステップS1702):
ステップS1701において、現在シークしようとしているデータが連続していないと判断された場合、ファイルシステム制御部115は、FATエントリを順次検索する。
(ステップS1703):
ファイルシステム制御部115は、FATエントリから読み込むクラスタのアドレスを決定し、アクセス制御部117を介して複数データブロック分を読み出すための読み出しコマンドを情報記録モジュール100へ送信する。
≪データ読み出し時の情報記録システムの処理フロー≫
次に、データ読み出し時の情報記録システムの処理フローに関して、図18を用いて説明する。
図18では、まず、アクセスモジュール110が連続情報取得コマンドを情報記録モジュール100に対して送信する。
情報記録モジュール100では、コマンドを取得した際に連続データ管理部103に管理されているデータである、図8又は図14等の連続データに関する情報を所定のフォーマットに整形し、アクセスモジュール110に送信する。
アクセスモジュール110は、連続データに関する情報を受信する。
また、図19は、連続情報取得コマンドの別の構成例を示す図である。図18の構成例に加えて、さらに連続情報取得コマンドに引数を設け、例えば、引数に“1”が指定されている場合には、図18に示すように、連続情報を全て返す。引数に“2”が指定されている場合には、アドレス情報の小さいものから順番に連続情報取得コマンドが送信される毎に1個ずつ連続情報を返す。引数に”3”が指定された場合には、アドレス情報を指定することができ、指定されたアドレスより大きいアドレスで、最も近い連続アドレスの情報を返す。
このようにすることで、本実施形態の情報記録システムでは、連続情報取得コマンドの引数に応じて、情報記録モジュール100で管理している連続情報の返し方を変更することができる。
図19では、引数に“3”を指定された場合のアクセスモジュールと情報記録モジュールとの間の処理シーケンスの一例を示している。アクセスモジュールは、引数“3”を伴った連続情報取得コマンドを、情報記録モジュールに対して発行し、さらに、その次に、アクセスモジュールは、アドレス情報0xA000を指定してコマンドを情報記録モジュールに対して発行している。情報記録モジュールは、アクセスモジュールから受信したアドレス情報から、そのアドレス値より大きい連続情報のうち、もっとも小さいものの連続情報を取得し、取得した連続情報(連続データ情報)を、アクセスモジュールに返す。例えば、図18に示したような連続データ情報を情報記録モジュールが保持している場合には、情報記録モジュールは、アクセスモジュールに対して、0xC000を送信する。
以上のように、本実施形態の情報記録システムでは、情報記録モジュール側で連続情報に関してアクセスモジュール110に通知可能なコマンドを備えることによって、連続情報に関してより詳細な情報を取得することが可能となる。これにより、本実施形態の情報記録システムでは、FATファイルシステムを用いた、ファイルデータのシーク時などにおいて、アクセスモジュール側システム上のオーバーヘッドを大幅に削減等することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、アクセスモジュール110が情報記録モジュール100に対して、連続情報取得コマンドを発行し、情報記録モジュール100が連続情報リストをアクセスモジュール110に返す情報記録システムについて説明したが、これに限定されることはなく、例えば、情報記録システムにおいて、連続情報リストを、アドレスの小さいものから昇順に必ず並んだ状態のものとし、当該連続情報リストを情報記録モジュール100がアクセスモジュール110に返すような構成としてもよい。また、本実施形態では、情報記録システムにおいて、引数を指定するような形で、連続情報リストを全て取得可能、個別に取得可能、指定されたアドレスに近い情報を取得可能とする例を示したが、コマンドの形態は、これに限定されることはなく、情報記録モジュールで管理している連続情報を取得できるコマンドであれば、他の形態のコマンドであっても構わない。例えば、情報記録モジュールは、論理アドレスの開始アドレス情報と、終端アドレス情報が連続しているか否かの情報とを返すコマンドを備え、アクセスモジュール110が開始の論理アドレスと終端の論理アドレスを指定したコマンドを発行した場合に、情報記録モジュールは、そのデータが連続しているか否かを示す情報だけを含むコマンドを返信するような構成としてもよい。
(2)本実施形態では、アクセスモジュール110は、情報記録モジュール100に対して、データ読み出し時に連続情報リストを取得する情報記録システムについて説明したが、これに限定されることはない。例えば、情報記録システムにおいて、情報記録モジュール100は、連続リストに更新があった場合、アクセスモジュール110に、連続リストに更新があったことを示す情報を通知する仕組みを設けて、当該通知があった場合、アクセスモジュール110が、情報記録モジュール100に対して、連続情報リストを取得し直すようなコマンドを発行するような構成としてもよい。
[第3実施形態]
次に、本発明の第3実施形態について、説明する。
本実施形態が第1実施形態及び第2実施形態と異なる点は、情報記録システムにおいて、情報記録モジュール100が、その内部に管理・保持する連続データ情報を更新するコマンドを生成、発行する機能を備え、情報記録モジュール100が、アクセスモジュール110からのコマンド発行に応じて内部のデータを更新する機能を備える点である。その他の構成について同様である。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図20は、本実施形態の情報記録システムにおける連続情報更新コマンドの処理フローについて示した図である。
図20では、まず、アクセスモジュール110が連続情報更新のためのコマンドを発行する。
次に、情報記録モジュール100は、連続情報更新が行なえる場合には、正常なレスポンスをアクセスモジュール110に返す。
次に、アクセスモジュール110は、情報記録モジュールからのレスポンスを受信し、その値が正常であった場合に、情報記録モジュール100に対して、連続データに関する情報を全て送信する。情報記録モジュール100は、連続データに関する情報を、アクセスモジュール110から受信すると、連続データ管理部103が管理している管理情報(連続データ)を更新する。
なお、図示はしていないが、図19に示すコマンドと同様に、連続情報更新コマンドにおいても引数を指定することによって、情報記録システムにおいて、情報記録モジュール内で管理する特定の連続情報のみを更新するようなコマンドを用いるようにしてもよい。この場合、第1実施形態、及び、第2実施形態で示したように、情報記録システムにおいて、情報記録モジュール100内で管理されている連続情報の一部だけを更新することが可能となる。
さらに、本実施形態の情報記録システムにおいて、連続情報更新コマンドによって送信される連続情報は、ID情報を伴って管理されるようにしてもよい。図21は、この場合のコマンドの処理フローについて示した図である。
アクセスモジュール110は、情報記録モジュール100の初期化時に、情報記録モジュール100に対して、特定のID情報を送付する。図21は、アクセスモジュール110が、ID情報として“0x12345ABC”を送信している例を示している。このID情報を受信した情報記録モジュール100は、図22で示すような内部で保持するID情報と、アクセスモジュール110から送信されたID情報とが異なっている場合には、保持している連続アドレス情報を全て消去する。一方、ID情報が一致している場合、情報記録モジュール100は、保持している連続アドレス情報をそのまま使用する。
このように、情報記録システムにおいて、ID情報を伴って連続情報を管理することによって、連続情報に関して異なるアクセスモジュール間で互換性を確保することが可能となる。また、第1実施形態、及び、第2実施形態で示したように、情報記録システムにおいて、情報記録モジュールが保持している連続アドレス情報を、情報記録モジュールからアクセスモジュールに、送信することも可能である。また、情報記録システムにおいて、図21に示すように、必要に応じて、情報記録モジュールが保持している連続アドレス情報を、連続情報更新コマンドによって更新することも可能である。
以上のように、情報記録システムにおいて、情報記録モジュール100で管理する連続データ情報を、アクセスモジュール110から更新できるコマンドを備えることによって、情報記録モジュール100が管理している連続情報を更新することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんのことである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、情報記録システムにおいて、アクセスモジュール110が情報記録モジュール100に対して、連続情報更新コマンドを発行し、送信される連続情報によって、情報記録モジュール100がその内部に管理する連続情報リストを更新する例を示したが、これに限定されることはない。情報記録システムにおいて用いられる連続情報更新コマンドは、情報記録モジュール100で管理される連続アドレス情報が更新されるようなコマンドであればよい。例えば、情報記録システムにおいて、アクセスモジュール110が、情報記録モジュールに対して、特定のアドレス情報のみを送信し、情報記録モジュールは、そのアドレスに関する連続情報を非連続情報に更新する(連続データ管理部で管理されるデータを削除する)ようにしてもよい。
[第4実施形態]
次に、本発明の第4実施形態について、説明する。
図23は、本実施形態の情報記録システム4000の構成を示したブロック図である。
本実施形態の情報記録システム4000は、第1実施形態の情報記録システム1000から、さらにFS情報管理部(ファイルシステム情報管理部)120を備える。この点のみが、本実施形態の情報記録システム4000と、第1実施形態の情報記録システム1000との相違点である。
情報記録システム4000は、図23に示すように、アクセスモジュール110と、情報記録モジュール100Aと、を備える。
情報記録モジュール100Aは、メモリコントローラ101Aと、記録領域部108と、を備える。
メモリコントローラ101Aは、図23に示すように、第1実施形態のメモリコントローラ101に、FS情報管理部(ファイルシステム情報管理部)120を追加したものである。
なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
FS情報管理部120は、記録領域部108に格納しているデータとファイルシステム管理情報との整合性を比較する。例えば、情報記録システム4000が用いるファイルシステムがFATファイルシステムである場合、FS情報管理部120は、ファイルシステム管理情報であるFATテーブルの情報を参照し、参照したFATテーブルの情報と連続データ管理部103で管理されている情報との整合性がとれているか否か、即ち、連続データ管理部103で管理されている連続情報とFATテーブルで管理されているクラスタチェーンが合致しているか否かの判定を行なう機能を備えている。もし、連続データ管理部103で管理されている連続情報とFATテーブルで管理されているクラスタチェーンが合致していない場合、FS情報管理部120は、FATテーブルの情報に基づき、連続データ管理部103で管理する情報を更新する機能を備える。
≪データ更新される際の書き込み処理シーケンス≫
情報記録システム4000において、連続データ管理情報に管理されるデータに対して編集や削除が行われ、データが更新される(更新されたデータが新たに書き込まれる)際の書き込み処理シーケンスの例について説明する。
まず、図24〜図26を用いてFATファイルシステムにおけるファイルデータの書き込み例を説明する。
図24は、アクセスモジュール110の書き込み処理を示すフローチャートである。
図25は、書き込み処理前のディレクトリエントリ、FAT、データ領域の構成の一例を示した図である。
図26は書き込み処理後のディレクトリエントリ、FAT、データ領域の一例を示した図である。FATファイルシステムでは、ルートディレクトリエントリやデータ領域の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリが格納されている。
図25(a)は、ディレクトリエントリの一例を示している。このディレクトリエントリで示されるファイルは、ファイル名が「FILE1.DAT」であり、クラスタ番号0x0030からファイルデータが格納されていることを示している。また、ファイルサイズは0x1400Kバイトである。
図25(b)は、対応クラスタ0x0030〜0x14FF(途中空きクラスタの領域も含む)のFATデータの例が示されている。
また、図25(c)は、1クラスタのサイズを16KBと仮定しており、クラスタ0x0030〜0x14FFの間のうち320クラスタにまたがってファイル「FILE1.DAT」を構成するデータが格納されている。
≪FATファイルシステムの場合のファイルデータの書き込みの処理手順≫
図24は、アクセスモジュール110のファイルシステム制御部115が行なう、FATファイルシステムの場合のファイルデータの書き込みの処理手順の一例を示した図である。図24を用いて、情報記録システム4000において用いるファイルシステムがFATファイルシステムである場合のアクセスモジュール110のファイルシステム制御部115が行なうファイルデータの書き込みの処理手順について、説明する。
(ステップS2401):
ファイルシステム制御部115は、ファイルデータ書き込み処理では、はじめに対象ファイルのディレクトリエントリを読み込む。
(ステップS2402):
ファイルシステム制御部115は、読み込んだディレクトリエントリに格納されたファイル開始クラスタ番号を取得し、ファイルの先頭位置を確認する。
(ステップS2403):
ファイルシステム制御部115は、FATを読み出し、ステップS2402で取得したファイルデータの先頭位置から順にFAT上でリンクを辿り、書き込み位置のクラスタ番号を取得する。
(ステップS2404):
データ書き込みに際し、ファイルシステム制御部115は、ファイルに新たに空き領域を割り当てるか否かを判断する。空き領域の割り当てが不要な場合、ステップS2406の処理が実行される。
(ステップS2405):
空き領域の割り当てが必要な場合、ファイルシステム制御部115は、FAT上で空き領域を検索し、1クラスタの空き領域をファイルの終端に割り当てる。
(ステップS2406):
ファイルシステム制御部115は、現在参照しているクラスタ内にデータを書き込む。具体的には、ファイルシステム制御部115は、現在参照しているクラスタ内にデータを書き込むためのデータ書き込みコマンドを、情報記録モジュール100Aに発行することで、現在参照しているクラスタ内にデータを書き込む。
(ステップS2407):
ファイルシステム制御部115は、全データの書き込みが完了したか否かを判定する。書き込むデータが、まだ残っている場合、ステップS2404の処理に戻る。
(ステップS2408):
全データの書き込みが完了した場合、ファイルシステム制御部115は、ディレクトリエントリ内に格納されたファイルサイズやタイムスタンプなどを更新し、更新した情報を情報記録モジュール100Aに書き込む。具体的には、ファイルシステム制御部115は、情報記録モジュール100Aに対して、上記更新した情報を情報記録モジュール100に書き込むための書き込みコマンドを、発行する。
(ステップS2409):
ファイルシステム制御部115は、FATを情報記録モジュール100Aに書き込むための書き込みコマンドを、情報記録モジュール100Aに対して発行する。情報記録モジュール100Aは、受信した書き込みコマンドに従い、FATを情報記録モジュール100Aの記録領域部108に書き込む。その後、ファイルシステム制御部115は、処理を完了させる。
このファイルデータの書き込み処理により、情報記録システム4000において、図25に示された0x1400Kバイトのデータを持つファイル「FILE1.DAT」に128KBのデータを書き込んだ場合、図26に示されるように、クラスタ番号0x1500以降に新たなデータが書き込まれて、ファイル「FILE1.DAT」は、0x1480Kバイトのデータを持つファイルに変化する(更新される)。
このように、FATファイルシステムでは、ファイルデータの格納領域としてクラスタ単位で領域割り当てが行なわれ、データが格納される。
なお、ここでは、記録されたデータが更新された場合の処理を示したが、データの削除、分割、統合といった編集操作や、FATファイルシステム上のフラグメンテーションをなくすためのデフラグと呼ばれる処理では、格納されているデータサイズは、そのままでファイルシステム上のFAT等の管理データとデータの論理アドレス上の配置だけが編集されることがありえる。
≪各種データが更新された場合の情報記録モジュール100の内部処理シーケンス≫
次に、情報記録システム4000における情報記録モジュール100Aとアクセスモジュール110で、上記のように記録されたデータが更新された場合をはじめとする、各種データが更新された場合の情報記録モジュール100の内部処理シーケンスについて図27を用いて説明する。
情報記録モジュール100Aにデータを書き込む際のアクセスモジュール110の処理シーケンスは、図6で示したものと基本的に同様であり、図6で示した書き込み処理シーケンスのうち、ステップS606の処理をさらに、詳細に示した処理シーケンスを示す図として、図7に示したものがある。ここで、図27で示す処理シーケンスは、図7で示す処理シーケンスのステップS701の処理の前に行なわれる処理として説明する。
(ステップS2701):
FS情報管理部120は、アクセスモジュール110から送信された書き込みコマンドに格納されたコマンドの書き込み位置の論理アドレスから、FATテーブルの更新処理に該当するか否かの判定を行なう。FATテーブルの更新処理でない場合には、処理を終了する。
(ステップS2702):
S2701において、FS情報管理部120がFATテーブルの更新を行うと判断した場合、FS情報管理部120は、更新するFATテーブル上のデータが、連続データ管理部103で管理されているデータに該当するか否かの判定を行なう。連続データ管理部103で管理されるデータでない場合には、処理を終了する。
(ステップS2703):
S2702において、FS情報管理部120が連続データ管理部103で管理されるデータに該当すると判断した場合、FS情報管理部120は、該当する連続データ管理情報を削除し、必要に応じて管理情報の前詰め等の処理を行う。
以上のように、情報記録モジュール100AのFS情報管理部120で、連続データ管理部103で管理している連続情報とFATテーブル上の情報との整合性を確認・更新することで、情報記録システム4000において、連続データ管理部103で管理されている連続情報は、常にファイルシステム上の情報と整合性を保ったものとすることが可能となる。
なお、本実施形態で、情報記録システム4000の構成に関して説明したが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。
[第5実施形態]
次に、本発明の第5実施形態について、説明する。
本実施形態が第4実施形態と異なる点は、情報記録システムにおける連続データ管理部103で管理されるデータにおいて、情報記録モジュール100Aが連続情報作成コマンドを作成・発行する機能を備え、アクセスモジュール110からの連続情報作成コマンド要求に応じてFS情報管理部120がFAT情報とデータ格納情報とを確認し、連続データ情報を作成する点である。その他の構成については基本的に同様である。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図28は、本実施形態の情報記録システムにおける連続データ作成コマンドの発行シーケンスを示す図である。
図28に示すように、アクセスモジュール110からは、連続データ管理部103で管理されるデータを新たに作成するコマンドが発行される。情報記録モジュール100は、コマンドを受信した場合、連続データ管理部103で管理している連続データに関する情報を一旦破棄し、FATテーブルを参照し、論理アドレス上所定の領域長連続してデータが記録されているか否かを判定し、所定の領域長データが格納されていれば、図8で示したような連続情報を作成し連続データ管理部103で管理する。
図28では、本実施形態の情報記録システムにおいて、コマンドを受信した直後に情報記録モジュール100Aは、レスポンスをアクセスモジュール110に返すような例を示したが、さらに、レスポンスを返すのではなく、図29に示すように、本実施形態の情報記録システムにおいて、情報記録モジュール100Aが作成した連続データを返すようにしてもよい。
以上のように、本実施形態の情報記録システムでは、情報記録モジュール100Aでデータに対する連続情報を作成するようなコマンドを作成・発行する機能を備えることによって、アクセスモジュール110は、情報記録モジュール100Aからデータを読み込んでいないときや、意図的に連続情報を再作成させたい場合に、情報記録モジュール100Aに対して処理を実行させることが可能となる。
本実施形態の情報記録システムでは、このように作成した連続情報をアクセスモジュール110に通知する機能を情報記録モジュール100Aが備えることによって、アクセスモジュール110でのFATファイルシステムを用いたファイルデータのシーク時などにおいて、オーバーヘッドを大幅に削減することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、アクセスモジュール110が情報記録モジュール100に対して、連続情報作成コマンドを発行した際、情報記録モジュール100は、連続データ管理部103に保持している連続データを一旦破棄し、新たに連続情報を作成する情報記録システムについて説明したが、これに限定されることはない。例えば、情報記録システムにおいて、連続データ管理部103が保持している連続データを一旦破棄することなく、既存の連続情報とFATの整合性を確認し、連続情報に含まれていない新たな連続情報がFATに含まれる場合には、当該新たな連続情報を連続データテーブルに追加し、一方、連続情報に含まれるデータがFATに含まれない場合には、当該FATに含まれないデータを連続情報から削除するようにしてもよい。また、記録情報システムにおいて、このように連続データ管理部103で管理される連続データの更新を行なうのか、或いは必ず新たに連続データを作り直すのかは、連続情報生成コマンドの引数によって処理を分けるようにしてもよい。さらに、記録情報システムにおいて、連続データを作るのではなく、連続データ管理部103に保持している連続データを全て消去するためだけのコマンドを用いて処理を行うようにしても構わない。
(2)本実施形態では、アクセスモジュール110が情報記録モジュール100Aに対して、連続情報作成コマンドを発行することによって、情報記録モジュール100Aが新たに連続データを作成する情報記録システムについて説明したが、情報記録システムにおいて、連続データの作成に関しては、コマンドの発行に限定されない。情報記録システムは、所定の領域長データが書き込まれたタイミング、FATデータが更新されたタイミング、所定の時間が経過したタイミング、あるいは、初回の電源投入時などのタイミングで、情報記録モジュールが自動的に連続データを作成するものであってもよい。
[他の実施形態]
また、上記実施形態(第1実施形態から第5実施形態)に共通する、例えば以下のような場合も本発明に含まれる。
(1)上記実施形態では、情報記録システムにおいて、FATファイルシステムを利用する例を示したが、使用するのはFATファイルシステムに限定されない。情報記録システムにおいて、情報記録モジュール100(または100A)が、格納されるデータに関して論理的なアドレスを認識・管理し、アクセスモジュール110がその連続情報を取得できれば、他のファイルシステムや他の方法を用いて、情報記録システムがデータ処理を行うようにしてもよい。
(2)上記実施形態では、情報記録モジュールとして半導体素子を使用する例を示したが、これに限定されることはなく、例えば、情報記録モジュールとして、磁気媒体などデジタルデータを記録可能な素子を使用するようにしてもよい。
(3)上記実施形態では、情報記録モジュールとして半導体メモリカードのような構成の例を示したが、具体的な構成は、これに限定されない。情報記録モジュールが取り外し可能なリムーバブルは記録媒体であることはもちろん、情報記録モジュールとアクセスモジュールが一体となったものとして、再生機、録音機、携帯電話、パソコン等の電子装置であってもよい。
(4)上記実施形態では、論理アドレス空間上でのデータ連続性について説明したが、論理アドレスと物理アドレスとが同一である場合には、物理アドレス上でのデータ連続性について扱っても良い。
また、上記実施形態では、コントローラ、情報記録モジュール、アクセスモジュール、情報記録システム等は、もちろん方法の発明としても実施可能である。方法で実施する際には、上記実施形態で示した各構成部をCPU等で実行される処理ステップとして置き換えることで可能である。
なお、本発明においてモジュールとは、装置のみならず、同等の機能を有する部品ユニットやデバイスも含むものである。
なお、上記実施形態で説明した情報記録システム、アクセスモジュールおよび情報記録モジュールにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る情報記録システム、アクセスモジュールおよび情報記録モジュールをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明にかかるコントローラ、アクセスモジュール、情報記録システム及び情報記録方法は、権利情報を高速に書き込み、また、読み出せる機能を情報記録媒体自体が備える構成となっており、記録媒体に対するデータ格納方法として適用できるので、本発明は、データ記録再生技術関連分野において、有用であり、当該分野において、本発明は実施することができる。
1000、4000 情報記録システム
100 情報記録モジュール
101 メモリコントローラ
102 外部I/F部
103 連続データ管理部
104 カード情報管理部
105、111 制御部
106 記録領域I/F部
107 アドレス情報管理部
108 記録領域部
110 アクセスモジュール
112 モジュールアクセス部
113 アクセスモジュール側ソフト
114 アプリケーションプログラム
115 ファイルシステム制御部
116 アクセス条件判定部
117 アクセス制御部
120 FS情報管理部
301 記録領域部
301−A ファイルシステム管理領域
302 管理情報格納領域
303 データ領域
304 MBR・PT
305 PBS
306 FAT1st
307 FAT2nd
308 RDE
1F FAT

本発明は、データの記録を実現するコントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法に関する。
音楽コンテンツや動画コンテンツ、静止画コンテンツなどの各種デジタルデータ(以下、「コンテンツ」という)を、記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリカードなど、様々な種類が存在する。これらの記憶媒体に記録するデータサイズも大きくなる傾向にある。例えば、デジカメにおける解像度が向上されたことや、ムービーにおける高ビットレートを要求する高画質データの記録が実現されたこと等により、記録するデータサイズも大きくなってきている。このように、電子機器の機能向上と、記憶媒体の大容量化に伴い、従来以上に大容量のデータを1つのファイルとして、記録媒体に高速に書き込むような場面が生じている。
記録媒体に書き込むデータは、一般にファイルシステムによって管理されている。従来使用されているファイルシステムとしてFAT(File Allocation Table)ファイルシステムと呼ばれるファイルシステムがある。FATファイルシステムでは、記録領域をクラスタと呼ばれる単位で管理し、データを書き込む際には、空きクラスタをシークしてデータを格納する。また、FATファイルシステムでは、記録されているデータを読み出す際にも同様に、記録されているデータが格納されたクラスタをシークしてデータを読み出す。
このようにして書き込まれるデータ(ファイルシステムにより管理されるデータ)のサイズ増大や記憶媒体の大容量化等により、記憶媒体に対するデータ書き込み処理やデータ読み出し処理に要する時間が長くなるという問題が生じている。
これらの問題を解決する方法としては、例えば、半導体メモリカード毎に、その特性に合うファイルシステムのアクセス方法に限定し、その限定されたアクセス方法においては、所定のアクセス性能を保証可能となるように、半導体メモリカード及びホスト装置のファイルシステムを構成する方法がある。
例えば、特許文献1では、半導体メモリカード内に半導体メモリカードのアクセス性能に関する情報を保持し、ホスト装置からその情報の少なくとも一部を取得できるようにしている。ホスト装置は、その取得した情報を基にファイルシステムの処理内容を合わせることにより、半導体メモリカードに対して連続したデータの高速な書き込みを実現している。
国際公開第2005/015406号パンフレット
FATファイルシステム等では、クラスタのリンク情報は、順方向にしかリンクされていないために、ファイルデータの終端方向から先頭方向へのデータ読み出し(例えば、終端から巻き戻しながら再生を行なうようなケース)が必要となる逆方向のシーク処理(データ読み出し)を実施するには、その都度、先頭側からリンクを辿る必要がある。このため、特に、大容量化されたデータに対して、上記のような逆方向のシーク処理を実施する場合、オーバーヘッドが大きくなる(シーク処理にかかる処理時間が長くなる)という問題がある。
そこで、本発明では、上記問題点に鑑み、FATファイルシステムで管理されるデータのシーク処理を高速化するコントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法を実現することを目的とする。
第1の発明は、情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラであって、制御部と、連続データ管理部と、を備えるコントローラである。
制御部は、情報記憶媒体に記録されるデータはファイルシステムによって管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する。連続データ管理部は、データの連続性に係わる情報を連続性情報として記録する。
これにより、コントローラはデータの連続性に係わる情報を持つことができ、ファイルシステムで管理されるデータのシーク処理を高速化することができる。
第2の発明は、第1の発明であって、制御部は、連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第3の発明は、第1または第2の発明であって、制御部は、外部からの要求に応じて、連続データ管理部に保持する連続性情報を変更する。
これにより、連続性情報を外部から修正・更新等を行うことが可能となる。
第4の発明は、第1から第3のいずれかの発明であって、ファイルシステムの情報を認識するファイルシステム情報管理部をさらに備える。
これにより、コントローラは情報媒体に記録されるファイルの連続性を認識し、ファイルシステムで管理されるデータが高速にシーク処理されることが可能となる。
第5の発明は、第1から第4のいずれかの発明であって、ファイルシステム情報管理部は、連続性情報とファイルシステムの情報に基づいて連続性情報を変更する。
これにより、データが変更された場合等においても変更内容に応じて、連続性情報を更新することが可能となる。
第6の発明は、第1から第4のいずれかの発明であって、ファイルシステム情報管理部は、外部からの要求があった際に、連続性情報とファイルシステムの情報に基づいて、連続性情報を変更する。
これにより、外部からの要求にしたがって、連続性情報を更新することが可能となる。
第7の発明は、第1から第6のいずれかの発明であって、コントローラが制御する情報記憶媒体は、不揮発性メモリである。
これにより、情報記憶媒体は不揮発性の記憶媒体となるため、データ記録後に電源供給を停止してもデータを保持することが可能となる。
第8の発明は、情報記憶媒体と該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを備えた情報記録装置であって、制御部と、連続データ管理部と、を備える。
制御部は、コントローラは、ファイルシステムによって情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータ連続性を検出する。連続データ管理部は、データの連続性に係わる情報を連続性情報として記録する。
これにより、コントローラはデータの連続性に係わる情報を持つことができ、ファイルシステムで管理されるデータのシーク処理を高速化することができる。
なお、「情報記録装置」は、情報記録モジュールを含む概念である。
第9の発明は、第8の発明であって、コントローラは、情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を保持するカード情報管理部をさらに備える。制御部は、アクセス条件を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第10の発明は、第8または第9の発明であって、制御部は、連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する。
これにより、外部に接続される機器が連続性に係わる情報を取得することが可能となる。
第11の発明は、第8または第10の発明であって、制御部は、外部からの要求に応じて、連続データ管理部に保持する連続性情報を変更する。
これにより、連続性情報を外部から修正・更新等を行うことが可能となる。
第12の発明は、情報記憶媒体と、該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを具備する情報記録装置であって、コントローラは、制御部と、ファイルシステム情報管理部と、連続データ管理部とを備える。
制御部は、ファイルシステムによって情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する。連続データ管理部は、データの連続性に係わる情報を連続性情報として記録する。ファイルシステム情報管理部は、ファイルシステムの情報を認識する。
これにより、コントローラは情報媒体に記録されるファイルの連続性を認識し、ファイルシステムで管理されるデータが高速にシーク処理されることが可能となる。
第13の発明は、第12の発明であって、ファイルシステム情報管理部は、連続性情報とファイルシステムの情報に基づいて連続性情報を変更する。
これにより、データが変更された場合等においても変更内容に応じて、連続性情報を更新することが可能となる。
第14の発明は、第12の発明であって、ファイルシステム情報管理部は、外部からの要求があった際に、連続性情報とファイルシステムの情報に基づいて、連続性情報を変更する。
これにより、外部からの要求にしたがって、連続性情報を更新することが可能となる。
第15の発明は、第5から第14のいずれかの発明であって、情報記憶媒体は、不揮発性メモリである。
これにより、情報記憶媒体は不揮発性の記憶媒体となるため、データ記録後に電源供給を停止してもデータを保持することが可能となる。
第16の発明は、情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、制御部と、ファイルシステム制御部と、を備える。
制御部は、情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を情報記録装置から受信する。ファイルシステム制御部は、アクセス条件に基づいて、情報媒体へ記録するデータのアドレスを決定する。
これにより、アクセス装置は、情報記録装置へ好適なデータ書き込みを行うことが可能となる。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第17の発明は、情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、制御部と、ファイルシステム制御部と、を備える。
制御部は、情報記憶媒体に記録されたデータのアドレス空間上の連続性に係わる連続性情報を情報記録装置から受信する。ファイルシステム制御部は、連続性情報に基づいて、情報記録装置からデータを受信する。
これにより、アクセス装置は、情報記録装置から好適なデータ読み出しを行うことが可能となる。
第18の発明は、第8の発明である情報記録装置と、第16または第17の発明であるアクセス装置と、を備える情報記録システムである。
第19の発明は、情報記憶媒体へのデータ書き込みを制御する情報記録方法であって、アドレス管理ステップと、データ連続性検出ステップと、連続性情報記録ステップと、を備える。
アドレス管理ステップは、データが情報記憶媒体に記録する記録場所をアドレスによって管理する。データ連続性検出ステップは、該アドレス空間上でのデータの連続性を検出する。連続性情報記録ステップは、データの連続性に係わる情報を連続性情報として記録する。
第20の発明は、第19の発明であって、ファイルシステム情報認識ステップをさらに備える。
ファイルシステム情報認識ステップは、ファイルシステムの情報を認識する。
さらに、本発明は上記に記載の発明を、CPUや集積回路で実現されるソフトウェア又はハードウェア等において実行される方法としても実現することが可能である。
本発明により、ファイルシステムで管理されるデータのシーク処理を高速化することが可能となる。
情報記録システムの構成例を示したブロック図 フラッシュメモリの消去ブロックとページとの関係を示す図 FATファイルシステムの構成例を示す図 アクセスモジュールが情報記録モジュールにデータを記録する際のアクセスモジュールの処理例を示すフローチャート アクセスモジュールが受信するアクセス情報の構成例を示す図 情報記録モジュールにおけるデータの書き込み処理の例を示すフローチャート データの連続性を判定する処理の一例を示すフローチャート 連続データ管理情報の一例を示す図 データ読み出し時のアクセスモジュールの処理の例を示すフローチャート FATファイルシステムで管理されるデータの構成例を示す図 FATファイルシステムで管理されるデータに対する読み出しコマンド発行の判定例を示すフローチャート データ読み出し時の情報記録モジュールの処理例を示すフローチャート アクセスモジュールと情報記録モジュール間のコマンド、レスポンス送受信を示す図 連続データ管理情報の一例を示す図 アドレスと記録領域部で連続情報を管理した場合の例を示す図 データ読み出し時のアクセスモジュールの処理の例を示すフローチャート ファイルシステム制御部が複数ブロック分のデータ読み出しコマンドを送信する判断例を示すフローチャート 連続情報取得コマンドとその処理例を示す図 連続情報取得コマンドとその処理例を示す図 情報記録システムにおける連続情報更新コマンドの処理例を示す図 情報記録システムにおける連続情報更新コマンドの処理例を示す図 連続情報をIDで識別する場合の例を示す図 情報記録システムの構成例を示したブロック図 アクセスモジュールの書き込み処理例を示すフローチャート データ書き込み処理前のディレクトリエントリ、FAT、データ領域の構成例を示す図 データ書き込み処理後のディレクトリエントリ、FAT、データ領域の構成例を示す図 データが更新された場合の情報記録モジュール内部の処理例を示すフローチャート 情報記録システムにおける連続データ作成コマンドの送受信例を示す図 情報記録システムにおける連続データ作成コマンドの送受信例を示す図
[第1実施形態]
本発明の第1実施形態について、図面に基づいて詳細に説明する。
<1.1:情報記録システムの構成>
図1は、本発明の実施形態による情報記録システム1000の構成を示したブロック図である。情報記録システム1000は、図1に示すように、情報記録モジュール(情報記録装置)100とアクセスモジュール(アクセス装置)110と、備える。情報記録モジュール(情報記録装置)100とアクセスモジュール(アクセス装置)110とは、伝送路D1により接続されており、相互にデータ、コマンド等の通信が可能である。
(1.1.1:情報記録モジュールの構成)
情報記録モジュール100は、メモリコントローラ101と、記録領域部108と、を備える。情報記録モジュール100は、例えば、半導体メモリカードのような記録媒体、または、再生機、記録機、携帯電話等に組み込まれているデータ記録回路のような装置である。図1に示すように、メモリコントローラ101と、記録領域部108とは、例えば、データバスD2により接続されている。
メモリコントローラ101は、図1に示すように、外部I/F部102と、連続データ管理部103と、カード情報管理部104と、制御部105と、記録領域I/F部106と、アドレス情報管理部107と、バスB2と、を備える。図1に示すように、メモリコントローラ101の各機能部は、バスB2により接続されている。なお、メモリコントローラ101の各機能部の一部または全部を、相互に、直接接続する構成としてもよいことは言うまでもない。
外部I/F部102は、アクセスモジュール110のモジュールアクセス部112と、伝送路D1により接続されている。外部I/F部102は、情報記録モジュール100に対応するアクセスモジュール(再生機器、記録機器等のアクセスモジュール)とのコマンド、データ等の各種情報の受け渡しをする機能を備えている。
連続データ管理部103は、アクセスモジュール110から送信され、記録領域部108に管理されるデータが所定の長さ以上連続して管理されているか否かの情報を管理する機能を備えている。ここでの「所定の長さ以上連続する」とは、アクセスモジュール110でデータ管理が把握可能となる論理的なアドレス空間で、データが所定のサイズ分以上連続していることを示している。
カード情報管理部104は、アクセスモジュール110が情報記録モジュール100にアクセスする場合の好適なアクセス方法に関する各種パラメータ情報(アクセス情報)を管理する。
制御部105は、アクセスモジュール110から受信したコマンドに従って、データの書き込みやデータの読み出し等の処理を行ない、情報記録モジュール100の内部制御を行なう機能を備えている。
記録領域I/F部106は、記録領域部108と接続されており、制御部105等が記録領域部108に対するデータ書き込みやデータ読み出しの際のインタフェース機能を備えている。
アドレス情報管理部107は、記録領域部108に管理されているデータの物理的なアドレス(物理アドレス)と、当該物理的なアドレスのデータをアクセスモジュール110からアクセスするための論理的なアドレス(論理アドレス)との対応を管理するアドレス情報の対応関係を管理する機能を備えている。例えば、アドレス情報管理部107は、論理アドレス/物理アドレス変換テーブルを有しており、当該論理アドレス/物理アドレス変換テーブルにより、論理アドレスを物理アドレスに変換したり、物理アドレスを論理アドレスに変換したりする。
記録領域部108は、データを記録する記録素子等である。具体的には、記録領域部108には、ハードディスクや、光ディスク、不揮発性メモリ等を利用することが可能である。
本実施形態では、記録領域部108に不揮発性メモリを用いた場合を例として説明するが、これに限定するものではない。不揮発性メモリは、不揮発性のデータ記録素子で構成され、例えば、NANDタイプのフラッシュ素子のような半導体記録素子で構成される。このようなNAND型のメモリには、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータを書き込まなければならないという特徴がある。ここで、データを消去する単位は、消去ブロックと呼ばれ、書き込みの最小単位である物理ページ(当該物理ページは、例えば、512バイト単位で構成される。)が複数個集まったブロックとして管理される。各消去ブロックは、通常、2のi乗(iは0以上の整数)個の複数の連続する物理ページ領域から構成される。
図2は、フラッシュメモリFMにおける消去ブロックとページとの関係の一例を示した図である。図2の例では、消去ブロックEBは、0〜(N−1)までのN個のブロックからなり、1個の消去ブロックのサイズは、例えば、128KBとする。1つの消去ブロック単位は、256ページから構成されており、PSN=0〜(N−1)×256+255までの一連の物理ページ番号PSNが付加されている。データの書き込み又はデータの読み出しは、ページ単位で行なうことが可能であるが、データの書き込みに先立ち必要となるデータの消去処理は、消去ブロック(128KB)単位で行なわれる。
(1.1.2:アクセスモジュールの構成)
アクセスモジュール110は、制御部111と、モジュールアクセス部112と、アクセス機能部(アクセスモジュール側ソフト)113と、バスB1と、を備える。
図1に示すように、アクセスモジュール110の各機能部は、バスB1により接続されている。なお、アクセスモジュール110の各機能部の一部または全部を、相互に、直接接続する構成としてもよいことは言うまでもない。
アクセス機能部は、図1に示すように、アプリケーション部(アプリケーションプログラム)114と、ファイルシステム制御部115と、アクセス条件判定部116と、アクセス制御部117と、を含む。
なお、以下では、アクセス機能部113がソフトウェアにより実現される場合について説明するが、これに限定されることはなく、アクセス機能部113の全部または一部をハードウェアにより実現してもよいことは言うまでもない。
制御部111は、アクセスモジュール110の制御を行なう機能を備えている。制御部111は、情報記録モジュール100に対してデータの書き込み、データの読み出し等のコマンドの発行、アクセスモジュール側ソフト(アクセス機能部)の実行処理を行なう等の各種制御実行処理を行う機能を備えている。
モジュールアクセス部112は、伝送路D1を介して情報記録モジュール100の外部IF部102と接続されており、情報記録モジュール100と通信する機能を備えている。モジュールアクセス部112は、伝送路D1を介して、アクセスモジュール110と情報記録モジュール100との間で、各種情報の受け渡しをする機能を備えている。
アクセスモジュール側ソフト(アクセス機能部)113は、主に、アプリケーションプログラム(アプリケーション部)114と、ファイルシステム制御部115と、アクセス条件判定部116と、アクセス制御部117と、から構成される。アクセスモジュール側ソフト(アクセス機能部)113は、アクセスモジュール110内のROM(不図示)等の記憶領域に格納されて、アクセスモジュール110(あるいは情報記録システム1000)の電源起動時にRAM領域(不図示)にロードされ稼動されるソフトウェアである。
アプリケーションプログラム(アプリケーション部)114は、各アプリケーションの処理目的に応じたデータ処理を行い、当該データ処理の対象となるデータを、ファイルシステム制御部115を介して、情報記録モジュール100に対して、書き込み又は読み出すものである。
ファイルシステム制御部115は、情報記録モジュール100に格納されているデータの管理を行なう機能を備えている。例えば、FAT12/16、FAT32のように所定の規格で規定されたファイルシステムフォーマットに従ってデータの読み書きを行なうためのデータ制御を行なう機能を備えている。
ここで、図3を用いて情報記録モジュール100に適用されるFATファイルシステムの構成例を説明する。
図3のファイルシステム管理領域301−Aは、図1の記録領域部108におけるファイルシステムで管理する領域を意味し、その領域内の全領域、あるいは一部の領域に相当する。なお、図3では、LAは、論理アドレスを示す。FATファイルシステムでは、ファイルシステム管理領域301−Aの先頭にファイルシステム管理領域全体を管理するための管理情報格納領域302が存在し、引き続いてファイル内のデータなどを格納するデータ領域303が存在する。管理情報格納領域302は、マスターブートレコード・パーティションテーブル(以下、「MBR・PT」という)304、パーティションブートセクタ(以下、「PBS」という)305、FAT1st306、FAT2nd307(以下、両者を合わせて「FAT」という)、ルートディレクトリエントリ(以下、「RDE」という)308から構成される。
MBR・PT304は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。
PBS305は、1つのパーティション内の管理情報を格納する部分である。
FAT306、307は、ファイルに含まれるデータの論理的な格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に2つの同じ情報を持つものが存在し、2重化されている。
データ領域303は、複数のクラスタ領域に分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルなどは、複数のクラスタに跨ってデータ等を格納しており、各クラスタの繋がりは、FAT1st306、FAT2nd307に格納されたリンク情報により管理されている。
RDE308は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。
アクセス条件判定部116は、情報記録モジュール100から読み出される各種アクセス条件を判定しデータを格納する際のアクセス条件を判定する機能を備えている。
アクセス制御部117は、モジュールアクセス部112に対応したドライバ機能を備えている。アクセス制御部117は、アクセスモジュール110と情報記録モジュール100との間でデータ通信を行うことができるように、ファイルシステム制御部115により扱われるデータを、所定のコマンドフォーマットに変更するなどの機能を備えている。すなわち、アクセス制御部117は、ファイルシステム層のデータ形式を、物理層のデータ形式に変換する機能を備えている。
<1.2:動作>
(1.2.1:データ書き込み処理)
次に、以上のような機能を備える情報記録システム1000における情報記録モジュール100とアクセスモジュール110とのデータの書き込み処理シーケンスについて説明する。
(1.2.1.1:データ書き込み処理(アクセスモジュール110側の処理))
図4は、アクセスモジュール110が、情報記録モジュール100にデータを記録する際のアクセスモジュール110の処理の例を示すフローチャートである。以下、図4のフローチャートを用いて、アクセスモジュール110が、情報記録モジュール100にデータを記録する際のアクセスモジュール110の処理について、説明する。
(ステップS401):
制御部111は、モジュールアクセス部112を介して、情報記録モジュール100から、好適なアクセス条件を取得するためのアクセス情報取得コマンドを、情報記録モジュール100に対して発行する。
(ステップS402):
制御部111は、モジュールアクセス部112を介して、アクセス情報を情報記録モジュール100から受信する。
図5は、このときに受信するアクセス情報の構成例を示す図である。図5(a)に示すように、この場合のアクセス情報は、64バイトの情報で構成され、アクセス条件と連続アクセス単位に関する情報で構成されている。なお、図5(a)に示したアクセス情報の構成は、一例であり、これに限定されないことは言うまでもない。図5の(b)では、その具体例(最適アクセス情報の構成例)を示しており、アクセス情報に、アクセス条件として16KB/クラスタが格納されており、また、連続アクセス単位として4MBが格納されていることを示している。
このようなアクセス情報(図5(b)のアクセス情報)は、以下のことを示している。すなわち、情報記録システム1000において、1クラスタ16KBで、論理アドレス空間上4MB連続してデータを格納した場合、図5(b)のアクセス情報は、そのデータが情報記録モジュール100内に論理的に連続した状態で格納・管理されることを示している。
なお、図示はしていないが、これ以外のアクセス情報の構成として、例えば、次のような構成を採用してもよい。すなわち、既存のアクセス情報、例えば、アクセス性能を示す情報の値をそのまま利用し、その情報とは別に、データが論理アドレス空間で連続しているという情報を保持する機能があるか否かを示すことを「0」か「1」かのビットの情報のみを保持するような情報を含む構成であってもよい。また、ここでは、アクセス情報が64バイトで構成される例を示したが、そのサイズは限定されない。
(ステップS403):
アクセス条件判定部116は、情報記録モジュール100から受信したアクセス条件を読み出し、アクセス条件を判定する。
ここで、「アクセス条件を判定する」とは、前記図5で示した情報のようなアクセス情報からその情報を利用することができるか否かの判定を行うことである。
例えば、アクセス条件判定部116により予め想定されているアクセス条件と同様の条件がアクセス情報に記載されている場合、アクセス条件判定部116は、その値に依存したアクセスが行えると判定し、一方、アクセス条件判定部116により想定されていないアクセス条件がアクセス情報に記載されている場合、アクセス条件判定部116は、当該アクセス条件(アクセス情報に記載されているアクセス条件)を満たさないアクセスを行うことはできないと判定する。
(ステップS404):
ファイルシステム制御部115は、書き込みコマンドを、モジュールアクセス部112を介して、情報記録モジュール100へ送信する。このとき、アクセスモジュール110が送信する書き込みコマンドにおいて、情報記録モジュール100内のどの論理アドレスからデータを格納するのかが引数で指定される。
なお、ファイルシステム制御部115は、書き込みデータの単位であるクラスタ、アクセス条件判定部116で判定したアクセス条件、情報記録モジュール100に既に記録されているデータのファイルシステム構成、アプリケーションプログラム114が要求するデータの書き込みサイズや書き込み速度等のパラメータに基づいて、例えば、ファイルシステム管理情報の更新(データの書き込み)については、データをアクセス条件に合うサイズ分だけ書き込んだ後に行うといったような制御を行う。つまり、ファイルシステム制御部115は、情報記録モジュール100内のどの論理アドレスからどのような順番で、どのようなサイズのデータを書き込むのかといった組み合わせにおいて、予め想定している最適なアクセスとなるような条件に従って、データ書き込み処理についての制御を実行し、ファイルシステム制御部115は、アクセス制御部117とモジュールアクセス部112を介して、情報記録モジュール100に対して、書き込みコマンドを発行する。
(ステップS405):
アクセス制御部117は、モジュールアクセス部112を通して情報記録モジュール100へデータを送信する。ファイルシステム制御部115では、クラスタ単位でデータの取り扱いを行うが、アクセス制御部117では、クラスタをデータブロック単位(例えば、512バイト単位)でデータを取り扱う。そのため、このときモジュールアクセス部112から送信されるデータサイズは、データブロックサイズ単位のデータである。
(ステップS406):
アクセス制御部117は、所定の大きさ分データを送信したか否かを判定する。ここでの「所定の大きさ」とは、例えば、クラスタサイズのようなサイズ単位で管理されるデータの大きさである。もし、所定の大きさ分データを送信していなければ、S405において、再度データブロックサイズ分データを送信する。
(ステップS407):
ファイルシステム制御部115は、全データを送信したか否かを判定する。もし、全データの送信が終わっていない場合には、S404において再度書き込みコマンドを発行する。このときの書き込みコマンドに指定する論理アドレスの値等の判定は、上記ステップS404と同様である。
(1.2.1.2:データ書き込み処理(情報記録モジュール100側の処理))
次に、情報記録モジュール100の処理について説明する。
図6は、情報記録モジュール100におけるデータの書き込み処理の例を示すフローチャートである。図6では、書き込み処理の一例として、説明を簡単にするために消去ブロックの倍数長のデータを書き込む場合における情報記録モジュール100の内部の処理シーケンスを示す。以下、図6のフローチャートを用いて、情報記録モジュール100におけるデータの書き込み処理について、説明する。
(ステップS601):
メモリコントローラ101は、アクセスモジュール110から送信されたコマンドと引数とを外部I/F部102を介して受信する。
(ステップS602):
制御部105は、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する。
(ステップS603):
S602において、情報記録モジュール100が受信したコマンドが不正コマンドであると判断された場合、制御部105は、外部I/F部102を通して、アクセスモジュール110にエラーを通知する。
(ステップS604):
S602において、情報記録モジュール100が受信したコマンドが認識可能なコマンドであると判断された場合、制御部105は、さらに、そのコマンドが書き込みコマンドであるか判定する。
(ステップS605):
S604において、情報記録モジュール100が受信したコマンドが書き込みコマンド以外のコマンドであると判断された場合、制御部105は、各コマンドに対応した処理を実施する。例えば、受信コマンドがアクセス情報取得コマンドである場合、カード情報管理部104からアクセス条件情報を読み出し、アクセスモジュール110へ送信する。
(ステップS606):
S604において、受信コマンドが書き込みコマンドであると判定された場合、制御部105は、書き込み要求のあったデータが連続しているか否かの判定を行う。この場合の詳細な処理については後述する。
(ステップS607):
制御部105は、実際に記録領域部108にデータを書き込む消去ブロックの物理アドレスを決定する。
(ステップS608):
制御部105は、ステップS606で消去ブロックと決定された記録領域部108上の物理ブロックのデータを、記録領域I/F部106を介して、消去する。
(ステップS609):
制御部105は、アクセスモジュール110から1データブロックサイズ分のデータを、外部I/F部102を介して受信する。
(ステップS610):
制御部105は、データの受信を完了すると、受信したデータブロックサイズ分のデータを、記録領域I/F部106を介して、記録領域部108に書き込む。アドレス情報管理部107は、アクセスモジュール110から指定された論理アドレスと実際に記録領域部108に書き込んだ物理アドレスの対応関係を保持する。
(ステップS611):
S609、S610のデータ受信、書き込み処理を、1消去ブロック分のデータ書き込みが完了するまで繰り返し実施する。
(ステップS612):
S606からS610までの1消去ブロック分のデータ書き込み処理を、アクセスモジュール110から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する。アクセスモジュール110から指定された書き込みサイズ分のデータ書き込みが完了した場合、処理を終了する。
(1.2.2:データ連続性の判定処理)
ここで、上記のステップS606におけるデータの連続性を判定する処理について、説明する。図7は、上記のステップS606におけるデータの連続性を判定する処理の一例を示すフローチャートである。図7を用いて、以下、ステップS606におけるデータの連続性を判定する処理について、説明する。
(ステップS701):
制御部105は、アクセスモジュール110から送信された書き込みコマンドに格納されたデータ書き込み位置の論理アドレスが、直前に書き込んだデータの論理アドレスと連続しているか否かの判定を行なう。制御部105は、書き込み位置の論理アドレスが連続していないと判定した場合には、後述するS705へ処理を移す。
(ステップS702):
制御部105は、書き込み位置の論理アドレスが連続していると判定した場合、連続している情報として変数Nをカウントアップする。なお、図示はしていないが、情報記録モジュール100の初期化時等においてNは、「0」で初期化されているものとする。
(ステップS703):
制御部105は、連続領域分論理アドレスが所定のサイズ分連続しているか否かの判定を行なう。具体的には、一定の連続性を示す予め定められた値Pと変数Nとの大小関係(等しい場合も含む)に基づいて判断する。NがPより小さい場合(所定のサイズ分連続していない場合)には、制御部105は、処理を終了させる。
(ステップS704):
ステップS703の処理において、連続領域論理アドレスが所定のサイズ分連続している場合には、制御部105は、連続データ管理部103にある連続データ管理情報の更新を行なう。一例として、所定のサイズが4MB、1クラスタサイズを16KBとすると、ステップS703においてNが「254」にカウントアップされた際に、連続データ管理情報の更新を行なう。
図8は、このときの連続データ管理情報の一例を示す図である。図8では、4MB連続している場合の512バイトのデータブロック単位で論理アドレスの先頭アドレス情報がリスト化されている例を示している。図8中のNo.1には、論理アドレス0x0030と記録されているため、0x0030を開始アドレスとして0x2030までの4MB論理アドレスが連続してデータが格納されていることを示している。同様に、No.2に記録されている0x5000は、論理アドレス0x5000から0x7000まで論理アドレスが連続してデータが格納されていることを示している。
(ステップS705):
制御部105は、アドレスの連続カウンタである変数Nを「0」にリセットする。
以上のように情報記録モジュール100は、アクセスモジュール110から送信されてくるデータに対して、所定の値に基づいて論理アドレス上連続する形でデータが格納されているか否かを判定し、その判定処理により取得した情報を連続データ管理部103に保持する。
なお、ここでは、情報記録システム1000において、論理アドレスで連続する形でデータが格納された場合、その情報を連続データ管理部103に格納する例を示したが、これに限定されることはなく、例えば、FATファイルシステムで管理されるデータの場合、データが格納され、そのデータに対応する管理情報であるFATの情報が正しく更新されたことを確認してから連続データ管理部103に情報を格納するといったように、情報記録システム1000において、管理情報との整合性を確認した後に、連続情報を格納する方法を採用してもよい。
(1.2.3:データ読み出し処理)
次に、本発明の情報記録システム1000における情報記録モジュール100とアクセスモジュール110のデータの読み出し処理シーケンスについて説明する。
なお、ここでは説明を簡単にするためにFATファイルシステム上のFATエントリ等のシステム情報は、既にアクセスモジュール110が読み込んでいるものとし、データ部分のみの読み出し処理のシーケンスのうち、特に、シーク処理を伴った処理のシーケンスについて説明する。
(1.2.3.1:データ読み出し処理(アクセスモジュール110側の処理))
図9は、データ読み出し時のアクセスモジュール110の処理の例を示すフローチャートである。図9を用いて、以下、データ読み出し時のアクセスモジュール110の処理について、説明する。
(ステップS901):
制御部111は、モジュールアクセス部112を介して、情報記録モジュール100に対して、好適なアクセスを行なうためのアクセス情報取得コマンドを発行する。
(ステップS902):
制御部111は、S901の返答であるアクセス情報を情報記録モジュール100から受信する。
(ステップS903):
アクセス条件判定部116は、受信したアクセス情報を読み出し、FATエントリの読み出し時のパラメータ設定等のアクセス情報を判定する。ここでの「アクセス情報の判定」とは、受信したアクセス情報から、その情報を利用することができるか否かの判定を行うことである。例えば、アクセス情報に4MB論理アドレスが連続していれば、連続しているという情報を管理していることが含まれている場合には、アクセス条件判定部116は、予め想定している条件に沿って、FATエントリの読み出し時に4MB分論理アドレス空間をスキップして読み込むことが可能であるなどの判定を行う。
(ステップS904):
ファイルシステム制御部115は、アクセス制御部117を介してFATエントリを参照し、アクセス制御部117が対応するクラスタのデータを1データブロックサイズ分のみ読む込むための読み出しコマンドを、情報記録モジュール100に送信する。このとき、送信する読み出しコマンドには、情報記録モジュール100内のどの論理アドレスからデータを読み出すのかを引数に指定する。
(ステップS905):
ファイルシステム制御部115は、ステップS904で発行したコマンドに対するレスポンス、アクセス条件、読み出しデータの指定等を考慮して、再度1データブロック分のみ読み出すコマンドを発行するか否か、あるいは、複数データブロック分読み出すコマンドを発行するか否かを決定する。このステップS905に関しては、後述する。
(ステップS906):
アクセス制御部117は、ステップS905で発行した読み出しコマンドに対するデータを、情報記録モジュール100から受信する。このとき、受信するデータサイズは、データブロックサイズ単位でのデータである。
(ステップS907):
アクセス制御部117は、所定の大きさ分データを受信した場合には、データ転送を停止するコマンドを送信する。ここでの「所定の大きさ」とは、例えば、情報記録モジュール100から転送される複数のデータブロック単位のデータを1つの単位とするクラスタサイズ単位分のことである。
(ステップS908):
ファイルシステム制御部115は、所定の大きさ分データを受信した場合には、全データを受信したか否かを判定する。もし、全データの受信が終わっていない場合には、ファイルシステム制御部115は、S905において、再度読み出しコマンドを、情報記録モジュール100に対して発行する。
≪FATファイルシステムにおけるクラスタ間の結合を示すリンク情報等の構成≫
次に、FATファイルシステムにおけるクラスタ間の結合を示すリンク情報等の構成について説明する。
図10を用いて、FATファイルシステムで管理されるデータの構成例を説明する。
データ領域は、クラスタと呼ばれる固定長データ単位で管理されており、図10中は、各クラスタには、「1」から始まる昇順のクラスタ番号が付与されている。
管理情報領域に含まれるFAT1Fでは、各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク(FAT1F内の破線矢印)情報を管理しており、各クラスタ番号(FAT1F内の実線矢印で示している番号)に対応したFATエントリから構成されている。
FATエントリは、FATファイルシステムの種別により、1クラスタあたり12ビット、16ビット、32ビットの3種類のうち、いずれかの大きさとなる。図10の例では、16ビットで1エントリが表現される場合を示している。FATエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す0x0000、当該クラスタがリンク終端であることを示す0xFFFFのいずれかの値が格納される。図10の拡大した図(図10の上側の図)のポインタ1からポインタ256で示す部分がクラスタ番号#1から#256に対するFATエントリを示している。この例では、クラスタ#1からクラスタ#256まで連続してデータが格納されている例を示している。クラスタサイズが16KBの場合、16×256で4MBのデータが論理アドレス上連続して格納されていることを示している。また、256番目のFATのエントリは、次のFATエントリを格納しているため、この場合、データは、4MB以上のデータであることを示している。
≪読み出しコマンド発行の判定に関するシーケンス≫
図11では、このようにFATファイルシステムで管理されるデータに対するステップS905の読み出しコマンド発行の判定に関するシーケンスを示している。以下、図11を用いて、ステップS905の読み出しコマンド発行の判定に関するシーケンスについて、説明する。
(ステップS1101):
ファイルシステム制御部115は、アプリケーションプログラム114からの指定によりファイル内のクラスタ単位でのシークサイズ(S)を算出する。
(ステップS1102):
ファイルシステム制御部115は、算出したシークサイズとアクセス情報の連続アクセス単位(Q)との比較を行なう。
図5の(b)に示すようなアクセス単位が4MBのアクセス情報を保持する情報記録モジュール100である場合、4MB連続領域にデータが書き込まれると、情報記録モジュール100は、読み出しコマンドに対するレスポンスコマンドに連続情報フラグを立てる。つまり、最初の512バイトを読み出すための読み出しコマンドに対して連続フラグが立っていた場合には、以降、4MBのFATエントリ分連続していると判断できる。そのため、最初の読み出し位置から4MB分以上先のFATエントリを読み出す必要がある場合には、その間のシーク処理をスキップするような処理も可能となる。このレスポンスコマンドに含まれる連続情報フラグの情報を、上記のような処理に利用するか否かの判定のため、ファイルシステム制御部115は、現在のポインタからのシークサイズ(S)が、そのサイズ(連続アクセス単位(Q))よりも大きいか否かの判定を行なう。
連続フラグの構成例に関しては、図13を用いて説明する。
もし、シークサイズ(S)の方が連続アクセス単位(Q)よりも小さければ、シークサイズ分FATエントリを探索して、ファイルシステム制御部115は、情報記録モジュール100に対して、複数データブロックを読み込むコマンドの発行を行う(ステップS1106)。そして、ステップS906の処理が実行される。
(ステップS1103):
シークサイズの方が連続アクセス単位(Q)よりも大きい場合には、ファイルシステム制御部115は、ステップS904で、情報記録モジュール100に送信した読み出しコマンドに対するレスポンスコマンドに連続フラグが立っているか否かを判断する。連続フラグが立っていない場合には、ファイルシステム制御部115は、情報記録モジュール100に対して、複数データブロックを読み込むコマンドの発行を行う(ステップS1106)。そして、ステップS906の処理が実行される。
(ステップS1104):
レスポンスコマンドに連続フラグが立っている場合には、ファイルシステム制御部115は、所定のサイズ分、FATエントリをスキップする処理を行い、次のクラスタの読み出しアドレスを算出する。
例えば、図5の(b)のようなアクセス情報を返す情報記録モジュールの場合には、4MB分連続してデータが格納されていることが保証されるため、データサイズ4MB分FATエントリをスキップして探索することができる。より具体的には、図10のようなデータを用いた場合、ファイルシステム制御部115は、最初のシーク位置がクラスタ#1の場所、シークサイズ4MB以上が要求された際、4MB以上FATのエントリの検索をスキップすることが可能となるため、クラスタ#256を示す管理情報の位置までのFATエントリの検索を省略することが可能となる。
(1.2.3.2:データ読み出し処理(情報記録モジュール100側の処理))
次に、データ読み出し時の情報記録モジュール100の処理シーケンスについて、図12を用いて説明する。
(ステップS1201):
制御部105は、アクセスモジュール110から送信されたコマンドと引数とを、外部I/F部102を介して、受信する。
(ステップS1202):
制御部105は、アクセスモジュール110から受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する。
(ステップS1203):
S1202において、アクセスモジュール110から受信したコマンドが不正コマンドであると判断された場合、制御部105は、外部I/F部102を通して、アクセスモジュール110にエラーを通知する。
(ステップS1204):
S1202において、アクセスモジュール110から受信したコマンドが認識可能なコマンドであると判断された場合、制御部105は、当該コマンドが読み出しコマンドであるか否かを判定する。
(ステップS1205):
S1204において、読み出しコマンド以外のコマンドであると判断された場合、制御部105は、各コマンドに対応した処理を実施する。例えば、アクセス情報取得コマンドである場合には、制御部105は、アクセス条件情報をアクセスモジュール110へ送信する。
(ステップS1206):
S1204において、読み出しコマンドと判断された場合、制御部105は、連続データ管理部103に管理されている情報を参照し、読み出しコマンドで指定されているデータが論理的なアドレス空間において連続データとして管理されているものに該当するか否かの確認を行なう。
(ステップS1207):
S1206において、連続データであると判断された場合、制御部105は、読み出しコマンドに対するレスポンスデータに連続データであることを示す連続フラグ情報をセットし、アクセスモジュール110へ送信する。
図13に、アクセスモジュール110と情報記録モジュール100との間における読み出しコマンドの発行と、そのコマンドに対するレスポンスとについてのシーケンスの一例を示す。
アクセスモジュール110からは、読み出しコマンド“Read”コマンドがアドレスを伴って情報記録モジュール100に発行される(図13の(1))。情報記録モジュール100では、指定されたアドレスのデータが連続データである場合には、連続フラグをレスポンスに設定してアクセスモジュール110に送信する(図13の(2))。
(ステップS1208):
制御部105は、コマンド引数に格納された読み出し論理アドレス情報に基づいて、アドレス情報管理部107にある論理アドレスと物理アドレスとの対応を示す情報から記録領域部108の物理アドレスを決定する。
(ステップS1209):
制御部105は、S1208で決定された記録領域部108の物理アドレスからデータを読み出し、1データブロック分のデータを、アクセスモジュール110に送信する。
(ステップS1210):
制御部105は、アクセスモジュールから送信停止要求コマンドを受信するまで(全データの送信が終わるまで)、ステップS1208からステップS1209の処理を繰り返してデータを送信する。
以上のように、情報記録システム1000では、情報記録モジュール100側で、所定のサイズ以上アドレスが連続する状態でデータが書き込まれた際の連続情報を管理し、データ読み出し時には、連続データであることをフラグ情報で返すことで、FATファイルシステムを用いた、ファイルデータのシーク時などにおいてアクセスモジュール110側のシステム上のオーバーヘッドを大幅に削減することができる。
なお、本実施形態では、情報記録システム1000の構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態の情報記録システム1000では、情報記録モジュール100のデータ格納処理として、記録領域部108を1つだけ使用するような構成例を示したが、これに限定されることはなく、例えば、記録領域部108へのデータの書き込み速度を向上させるために、情報記録システム1000は、複数の記録領域部108を備え、各記録領域部108のページに対して分散してデータを格納し、必要に応じて、消去ブロックの集約を行なうなど、より複雑なデータ管理方法により各種処理を行なうものであってもよい。この場合、情報記録システム1000において、連続データ管理部103やアドレス情報管理部107で管理されるデータは、上記実施形態で説明したデータ構成ではなく、より複雑なデータ構成となる。情報記録システム1000により管理されるデータは、情報記録システム1000において、アクセスモジュール110が指定する論理アドレスで所定の大きさ分連続してデータが情報記録モジュール100に格納されていることを管理できるものであれば、どのようなデータ構成であってもよい。
(2)本実施形態では、連続データであることを連続データ管理部103で保持管理している例を示したが、その管理方法は、上記で説明したものに限定されない。例えば、図14に示すように、連続データ管理部103において、論理アドレスと一緒に連続データ情報を一意に識別可能なID情報と共に管理し、データ読み出し時には、情報記録モジュール100は、アクセスモジュール110にID情報を伴って返すようにしても構わない。また、図15に示すように、論理的なアドレスと記録領域部108の物理的なアドレスとの対応を管理するアドレス情報管理部107が、所定の領域長でデータが連続しているか否かを示す連続情報フラグを、論理アドレスおよび物理アドレスと対応付けて管理しても構わない。
[第2実施形態]
次に、本発明の第2実施形態について、説明する。
第2実施形態の情報記録システムでは、データの読み出し時において、情報記録モジュール100が、アクセスモジュール110に対して、連続情報を返信するコマンドを備え、アクセスモジュール110からの連続情報取得コマンド要求に応じて、情報記録モジュール100が連続情報を返信する。この点が、第1実施形態と異なる。その他の構成については、第2実施形態の情報記録システムは、第1実施形態の情報記録システムと基本的に同様である。以下、第2実施形態が第1実施形態と異なる点に関して、詳細に説明する。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図16は、データ読み出し時のアクセスモジュール110の処理の例を示すフローチャートである。図9の処理と異なるのは、ステップS905の読み出しコマンドを再発行するか否かの処理がなくなり、ステップS1601とステップS1602とが追加になった点、及び、ステップS904では1データブロック分のデータの読み出しコマンドを送信する処理であったのが、ここでは複数データブロック分のデータの読み出しコマンドを送信するステップS1603となった点であり、その他は同様である。ここでは、ステップS1601、ステップS1602、ステップS1603に関して説明する。
(ステップS1601):
ファイルシステム制御部115は、アクセス制御部117を介して、連続データ情報を取得するためのコマンドを情報記録モジュール100に送信する。
(ステップS1602):
ファイルシステム制御部115は、アクセス制御部117を介して連続データ情報を情報記録モジュール100から受信する。
(ステップS1603):
次に、受信した連続データ情報を基に、ファイルシステム制御部115は、アクセス制御部117を介して複数ブロック分のデータ読み出しコマンドを、情報記録モジュール100に送信する。
図17に、S1603のより詳細な処理フローを示す。
図17の処理において、図11で示した処理と異なる点は、ステップS1103がステップS1701に変更されている点と、ステップS1702およびステップS1703が加わっている点である。その他の構成については、図17の処理は、図11の処理と同様である。ここでは、ステップS1701、ステップS1702、ステップS1703に関して説明する。
(ステップS1701):
ファイルシステム制御部115は、取得した連続データ情報から現在シークしようとしているデータが連続領域に該当するか否かを判断する。
(ステップS1702):
ステップS1701において、現在シークしようとしているデータが連続していないと判断された場合、ファイルシステム制御部115は、FATエントリを順次検索する。
(ステップS1703):
ファイルシステム制御部115は、FATエントリから読み込むクラスタのアドレスを決定し、アクセス制御部117を介して複数データブロック分を読み出すための読み出しコマンドを情報記録モジュール100へ送信する。
≪データ読み出し時の情報記録システムの処理フロー≫
次に、データ読み出し時の情報記録システムの処理フローに関して、図18を用いて説明する。
図18では、まず、アクセスモジュール110が連続情報取得コマンドを情報記録モジュール100に対して送信する。
情報記録モジュール100では、コマンドを取得した際に連続データ管理部103に管理されているデータである、図8又は図14等の連続データに関する情報を所定のフォーマットに整形し、アクセスモジュール110に送信する。
アクセスモジュール110は、連続データに関する情報を受信する。
また、図19は、連続情報取得コマンドの別の構成例を示す図である。図18の構成例に加えて、さらに連続情報取得コマンドに引数を設け、例えば、引数に“1”が指定されている場合には、図18に示すように、連続情報を全て返す。引数に“2”が指定されている場合には、アドレス情報の小さいものから順番に連続情報取得コマンドが送信される毎に1個ずつ連続情報を返す。引数に”3”が指定された場合には、アドレス情報を指定することができ、指定されたアドレスより大きいアドレスで、最も近い連続アドレスの情報を返す。
このようにすることで、本実施形態の情報記録システムでは、連続情報取得コマンドの引数に応じて、情報記録モジュール100で管理している連続情報の返し方を変更することができる。
図19では、引数に“3”を指定された場合のアクセスモジュールと情報記録モジュールとの間の処理シーケンスの一例を示している。アクセスモジュールは、引数“3”を伴った連続情報取得コマンドを、情報記録モジュールに対して発行し、さらに、その次に、アクセスモジュールは、アドレス情報0xA000を指定してコマンドを情報記録モジュールに対して発行している。情報記録モジュールは、アクセスモジュールから受信したアドレス情報から、そのアドレス値より大きい連続情報のうち、もっとも小さいものの連続情報を取得し、取得した連続情報(連続データ情報)を、アクセスモジュールに返す。例えば、図18に示したような連続データ情報を情報記録モジュールが保持している場合には、情報記録モジュールは、アクセスモジュールに対して、0xC000を送信する。
以上のように、本実施形態の情報記録システムでは、情報記録モジュール側で連続情報に関してアクセスモジュール110に通知可能なコマンドを備えることによって、連続情報に関してより詳細な情報を取得することが可能となる。これにより、本実施形態の情報記録システムでは、FATファイルシステムを用いた、ファイルデータのシーク時などにおいて、アクセスモジュール側システム上のオーバーヘッドを大幅に削減等することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、アクセスモジュール110が情報記録モジュール100に対して、連続情報取得コマンドを発行し、情報記録モジュール100が連続情報リストをアクセスモジュール110に返す情報記録システムについて説明したが、これに限定されることはなく、例えば、情報記録システムにおいて、連続情報リストを、アドレスの小さいものから昇順に必ず並んだ状態のものとし、当該連続情報リストを情報記録モジュール100がアクセスモジュール110に返すような構成としてもよい。また、本実施形態では、情報記録システムにおいて、引数を指定するような形で、連続情報リストを全て取得可能、個別に取得可能、指定されたアドレスに近い情報を取得可能とする例を示したが、コマンドの形態は、これに限定されることはなく、情報記録モジュールで管理している連続情報を取得できるコマンドであれば、他の形態のコマンドであっても構わない。例えば、情報記録モジュールは、論理アドレスの開始アドレス情報と、終端アドレス情報が連続しているか否かの情報とを返すコマンドを備え、アクセスモジュール110が開始の論理アドレスと終端の論理アドレスを指定したコマンドを発行した場合に、情報記録モジュールは、そのデータが連続しているか否かを示す情報だけを含むコマンドを返信するような構成としてもよい。
(2)本実施形態では、アクセスモジュール110は、情報記録モジュール100に対して、データ読み出し時に連続情報リストを取得する情報記録システムについて説明したが、これに限定されることはない。例えば、情報記録システムにおいて、情報記録モジュール100は、連続リストに更新があった場合、アクセスモジュール110に、連続リストに更新があったことを示す情報を通知する仕組みを設けて、当該通知があった場合、アクセスモジュール110が、情報記録モジュール100に対して、連続情報リストを取得し直すようなコマンドを発行するような構成としてもよい。
[第3実施形態]
次に、本発明の第3実施形態について、説明する。
本実施形態が第1実施形態及び第2実施形態と異なる点は、情報記録システムにおいて、情報記録モジュール100が、その内部に管理・保持する連続データ情報を更新するコマンドを生成、発行する機能を備え、情報記録モジュール100が、アクセスモジュール110からのコマンド発行に応じて内部のデータを更新する機能を備える点である。その他の構成について同様である。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図20は、本実施形態の情報記録システムにおける連続情報更新コマンドの処理フローについて示した図である。
図20では、まず、アクセスモジュール110が連続情報更新のためのコマンドを発行する。
次に、情報記録モジュール100は、連続情報更新が行なえる場合には、正常なレスポンスをアクセスモジュール110に返す。
次に、アクセスモジュール110は、情報記録モジュールからのレスポンスを受信し、その値が正常であった場合に、情報記録モジュール100に対して、連続データに関する情報を全て送信する。情報記録モジュール100は、連続データに関する情報を、アクセスモジュール110から受信すると、連続データ管理部103が管理している管理情報(連続データ)を更新する。
なお、図示はしていないが、図19に示すコマンドと同様に、連続情報更新コマンドにおいても引数を指定することによって、情報記録システムにおいて、情報記録モジュール内で管理する特定の連続情報のみを更新するようなコマンドを用いるようにしてもよい。この場合、第1実施形態、及び、第2実施形態で示したように、情報記録システムにおいて、情報記録モジュール100内で管理されている連続情報の一部だけを更新することが可能となる。
さらに、本実施形態の情報記録システムにおいて、連続情報更新コマンドによって送信される連続情報は、ID情報を伴って管理されるようにしてもよい。図21は、この場合のコマンドの処理フローについて示した図である。
アクセスモジュール110は、情報記録モジュール100の初期化時に、情報記録モジュール100に対して、特定のID情報を送付する。図21は、アクセスモジュール110が、ID情報として“0x12345ABC”を送信している例を示している。このID情報を受信した情報記録モジュール100は、図22で示すような内部で保持するID情報と、アクセスモジュール110から送信されたID情報とが異なっている場合には、保持している連続アドレス情報を全て消去する。一方、ID情報が一致している場合、情報記録モジュール100は、保持している連続アドレス情報をそのまま使用する。
このように、情報記録システムにおいて、ID情報を伴って連続情報を管理することによって、連続情報に関して異なるアクセスモジュール間で互換性を確保することが可能となる。また、第1実施形態、及び、第2実施形態で示したように、情報記録システムにおいて、情報記録モジュールが保持している連続アドレス情報を、情報記録モジュールからアクセスモジュールに、送信することも可能である。また、情報記録システムにおいて、図21に示すように、必要に応じて、情報記録モジュールが保持している連続アドレス情報を、連続情報更新コマンドによって更新することも可能である。
以上のように、情報記録システムにおいて、情報記録モジュール100で管理する連続データ情報を、アクセスモジュール110から更新できるコマンドを備えることによって、情報記録モジュール100が管理している連続情報を更新することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は、上記の実施形態に限定されないのはもちろんのことである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、情報記録システムにおいて、アクセスモジュール110が情報記録モジュール100に対して、連続情報更新コマンドを発行し、送信される連続情報によって、情報記録モジュール100がその内部に管理する連続情報リストを更新する例を示したが、これに限定されることはない。情報記録システムにおいて用いられる連続情報更新コマンドは、情報記録モジュール100で管理される連続アドレス情報が更新されるようなコマンドであればよい。例えば、情報記録システムにおいて、アクセスモジュール110が、情報記録モジュールに対して、特定のアドレス情報のみを送信し、情報記録モジュールは、そのアドレスに関する連続情報を非連続情報に更新する(連続データ管理部で管理されるデータを削除する)ようにしてもよい。
[第4実施形態]
次に、本発明の第4実施形態について、説明する。
図23は、本実施形態の情報記録システム4000の構成を示したブロック図である。
本実施形態の情報記録システム4000は、第1実施形態の情報記録システム1000から、さらにFS情報管理部(ファイルシステム情報管理部)120を備える。この点のみが、本実施形態の情報記録システム4000と、第1実施形態の情報記録システム1000との相違点である。
情報記録システム4000は、図23に示すように、アクセスモジュール110と、情報記録モジュール100Aと、を備える。
情報記録モジュール100Aは、メモリコントローラ101Aと、記録領域部108と、を備える。
メモリコントローラ101Aは、図23に示すように、第1実施形態のメモリコントローラ101に、FS情報管理部(ファイルシステム情報管理部)120を追加したものである。
なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
FS情報管理部120は、記録領域部108に格納しているデータとファイルシステム管理情報との整合性を比較する。例えば、情報記録システム4000が用いるファイルシステムがFATファイルシステムである場合、FS情報管理部120は、ファイルシステム管理情報であるFATテーブルの情報を参照し、参照したFATテーブルの情報と連続データ管理部103で管理されている情報との整合性がとれているか否か、即ち、連続データ管理部103で管理されている連続情報とFATテーブルで管理されているクラスタチェーンが合致しているか否かの判定を行なう機能を備えている。もし、連続データ管理部103で管理されている連続情報とFATテーブルで管理されているクラスタチェーンが合致していない場合、FS情報管理部120は、FATテーブルの情報に基づき、連続データ管理部103で管理する情報を更新する機能を備える。
≪データ更新される際の書き込み処理シーケンス≫
情報記録システム4000において、連続データ管理情報に管理されるデータに対して編集や削除が行われ、データが更新される(更新されたデータが新たに書き込まれる)際の書き込み処理シーケンスの例について説明する。
まず、図24〜図26を用いてFATファイルシステムにおけるファイルデータの書き込み例を説明する。
図24は、アクセスモジュール110の書き込み処理を示すフローチャートである。
図25は、書き込み処理前のディレクトリエントリ、FAT、データ領域の構成の一例を示した図である。
図26は書き込み処理後のディレクトリエントリ、FAT、データ領域の一例を示した図である。FATファイルシステムでは、ルートディレクトリエントリやデータ領域の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリが格納されている。
図25(a)は、ディレクトリエントリの一例を示している。このディレクトリエントリで示されるファイルは、ファイル名が「FILE1.DAT」であり、クラスタ番号0x0030からファイルデータが格納されていることを示している。また、ファイルサイズは0x1400Kバイトである。
図25(b)は、対応クラスタ0x0030〜0x14FF(途中空きクラスタの領域も含む)のFATデータの例が示されている。
また、図25(c)は、1クラスタのサイズを16KBと仮定しており、クラスタ0x0030〜0x14FFの間のうち320クラスタにまたがってファイル「FILE1.DAT」を構成するデータが格納されている。
≪FATファイルシステムの場合のファイルデータの書き込みの処理手順≫
図24は、アクセスモジュール110のファイルシステム制御部115が行なう、FATファイルシステムの場合のファイルデータの書き込みの処理手順の一例を示した図である。図24を用いて、情報記録システム4000において用いるファイルシステムがFATファイルシステムである場合のアクセスモジュール110のファイルシステム制御部115が行なうファイルデータの書き込みの処理手順について、説明する。
(ステップS2401):
ファイルシステム制御部115は、ファイルデータ書き込み処理では、はじめに対象ファイルのディレクトリエントリを読み込む。
(ステップS2402):
ファイルシステム制御部115は、読み込んだディレクトリエントリに格納されたファイル開始クラスタ番号を取得し、ファイルの先頭位置を確認する。
(ステップS2403):
ファイルシステム制御部115は、FATを読み出し、ステップS2402で取得したファイルデータの先頭位置から順にFAT上でリンクを辿り、書き込み位置のクラスタ番号を取得する。
(ステップS2404):
データ書き込みに際し、ファイルシステム制御部115は、ファイルに新たに空き領域を割り当てるか否かを判断する。空き領域の割り当てが不要な場合、ステップS2406の処理が実行される。
(ステップS2405):
空き領域の割り当てが必要な場合、ファイルシステム制御部115は、FAT上で空き領域を検索し、1クラスタの空き領域をファイルの終端に割り当てる。
(ステップS2406):
ファイルシステム制御部115は、現在参照しているクラスタ内にデータを書き込む。具体的には、ファイルシステム制御部115は、現在参照しているクラスタ内にデータを書き込むためのデータ書き込みコマンドを、情報記録モジュール100Aに発行することで、現在参照しているクラスタ内にデータを書き込む。
(ステップS2407):
ファイルシステム制御部115は、全データの書き込みが完了したか否かを判定する。書き込むデータが、まだ残っている場合、ステップS2404の処理に戻る。
(ステップS2408):
全データの書き込みが完了した場合、ファイルシステム制御部115は、ディレクトリエントリ内に格納されたファイルサイズやタイムスタンプなどを更新し、更新した情報を情報記録モジュール100Aに書き込む。具体的には、ファイルシステム制御部115は、情報記録モジュール100Aに対して、上記更新した情報を情報記録モジュール100に書き込むための書き込みコマンドを、発行する。
(ステップS2409):
ファイルシステム制御部115は、FATを情報記録モジュール100Aに書き込むための書き込みコマンドを、情報記録モジュール100Aに対して発行する。情報記録モジュール100Aは、受信した書き込みコマンドに従い、FATを情報記録モジュール100Aの記録領域部108に書き込む。その後、ファイルシステム制御部115は、処理を完了させる。
このファイルデータの書き込み処理により、情報記録システム4000において、図25に示された0x1400Kバイトのデータを持つファイル「FILE1.DAT」に128KBのデータを書き込んだ場合、図26に示されるように、クラスタ番号0x1500以降に新たなデータが書き込まれて、ファイル「FILE1.DAT」は、0x1480Kバイトのデータを持つファイルに変化する(更新される)。
このように、FATファイルシステムでは、ファイルデータの格納領域としてクラスタ単位で領域割り当てが行なわれ、データが格納される。
なお、ここでは、記録されたデータが更新された場合の処理を示したが、データの削除、分割、統合といった編集操作や、FATファイルシステム上のフラグメンテーションをなくすためのデフラグと呼ばれる処理では、格納されているデータサイズは、そのままでファイルシステム上のFAT等の管理データとデータの論理アドレス上の配置だけが編集されることがありえる。
≪各種データが更新された場合の情報記録モジュール100の内部処理シーケンス≫
次に、情報記録システム4000における情報記録モジュール100Aとアクセスモジュール110で、上記のように記録されたデータが更新された場合をはじめとする、各種データが更新された場合の情報記録モジュール100の内部処理シーケンスについて図27を用いて説明する。
情報記録モジュール100Aにデータを書き込む際のアクセスモジュール110の処理シーケンスは、図6で示したものと基本的に同様であり、図6で示した書き込み処理シーケンスのうち、ステップS606の処理をさらに、詳細に示した処理シーケンスを示す図として、図7に示したものがある。ここで、図27で示す処理シーケンスは、図7で示す処理シーケンスのステップS701の処理の前に行なわれる処理として説明する。
(ステップS2701):
FS情報管理部120は、アクセスモジュール110から送信された書き込みコマンドに格納されたコマンドの書き込み位置の論理アドレスから、FATテーブルの更新処理に該当するか否かの判定を行なう。FATテーブルの更新処理でない場合には、処理を終了する。
(ステップS2702):
S2701において、FS情報管理部120がFATテーブルの更新を行うと判断した場合、FS情報管理部120は、更新するFATテーブル上のデータが、連続データ管理部103で管理されているデータに該当するか否かの判定を行なう。連続データ管理部103で管理されるデータでない場合には、処理を終了する。
(ステップS2703):
S2702において、FS情報管理部120が連続データ管理部103で管理されるデータに該当すると判断した場合、FS情報管理部120は、該当する連続データ管理情報を削除し、必要に応じて管理情報の前詰め等の処理を行う。
以上のように、情報記録モジュール100AのFS情報管理部120で、連続データ管理部103で管理している連続情報とFATテーブル上の情報との整合性を確認・更新することで、情報記録システム4000において、連続データ管理部103で管理されている連続情報は、常にファイルシステム上の情報と整合性を保ったものとすることが可能となる。
なお、本実施形態で、情報記録システム4000の構成に関して説明したが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。
[第5実施形態]
次に、本発明の第5実施形態について、説明する。
本実施形態が第4実施形態と異なる点は、情報記録システムにおける連続データ管理部103で管理されるデータにおいて、情報記録モジュール100Aが連続情報作成コマンドを作成・発行する機能を備え、アクセスモジュール110からの連続情報作成コマンド要求に応じてFS情報管理部120がFAT情報とデータ格納情報とを確認し、連続データ情報を作成する点である。その他の構成については基本的に同様である。なお、本実施形態において、上記実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図28は、本実施形態の情報記録システムにおける連続データ作成コマンドの発行シーケンスを示す図である。
図28に示すように、アクセスモジュール110からは、連続データ管理部103で管理されるデータを新たに作成するコマンドが発行される。情報記録モジュール100は、コマンドを受信した場合、連続データ管理部103で管理している連続データに関する情報を一旦破棄し、FATテーブルを参照し、論理アドレス上所定の領域長連続してデータが記録されているか否かを判定し、所定の領域長データが格納されていれば、図8で示したような連続情報を作成し連続データ管理部103で管理する。
図28では、本実施形態の情報記録システムにおいて、コマンドを受信した直後に情報記録モジュール100Aは、レスポンスをアクセスモジュール110に返すような例を示したが、さらに、レスポンスを返すのではなく、図29に示すように、本実施形態の情報記録システムにおいて、情報記録モジュール100Aが作成した連続データを返すようにしてもよい。
以上のように、本実施形態の情報記録システムでは、情報記録モジュール100Aでデータに対する連続情報を作成するようなコマンドを作成・発行する機能を備えることによって、アクセスモジュール110は、情報記録モジュール100Aからデータを読み込んでいないときや、意図的に連続情報を再作成させたい場合に、情報記録モジュール100Aに対して処理を実行させることが可能となる。
本実施形態の情報記録システムでは、このように作成した連続情報をアクセスモジュール110に通知する機能を情報記録モジュール100Aが備えることによって、アクセスモジュール110でのFATファイルシステムを用いたファイルデータのシーク時などにおいて、オーバーヘッドを大幅に削減することが可能となる。
なお、本実施形態で、情報記録システムの構成に関して説明したが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、以下のような場合も本発明に含まれる。
(1)本実施形態では、アクセスモジュール110が情報記録モジュール100に対して、連続情報作成コマンドを発行した際、情報記録モジュール100は、連続データ管理部103に保持している連続データを一旦破棄し、新たに連続情報を作成する情報記録システムについて説明したが、これに限定されることはない。例えば、情報記録システムにおいて、連続データ管理部103が保持している連続データを一旦破棄することなく、既存の連続情報とFATの整合性を確認し、連続情報に含まれていない新たな連続情報がFATに含まれる場合には、当該新たな連続情報を連続データテーブルに追加し、一方、連続情報に含まれるデータがFATに含まれない場合には、当該FATに含まれないデータを連続情報から削除するようにしてもよい。また、記録情報システムにおいて、このように連続データ管理部103で管理される連続データの更新を行なうのか、或いは必ず新たに連続データを作り直すのかは、連続情報生成コマンドの引数によって処理を分けるようにしてもよい。さらに、記録情報システムにおいて、連続データを作るのではなく、連続データ管理部103に保持している連続データを全て消去するためだけのコマンドを用いて処理を行うようにしても構わない。
(2)本実施形態では、アクセスモジュール110が情報記録モジュール100Aに対して、連続情報作成コマンドを発行することによって、情報記録モジュール100Aが新たに連続データを作成する情報記録システムについて説明したが、情報記録システムにおいて、連続データの作成に関しては、コマンドの発行に限定されない。情報記録システムは、所定の領域長データが書き込まれたタイミング、FATデータが更新されたタイミング、所定の時間が経過したタイミング、あるいは、初回の電源投入時などのタイミングで、情報記録モジュールが自動的に連続データを作成するものであってもよい。
[他の実施形態]
また、上記実施形態(第1実施形態から第5実施形態)に共通する、例えば以下のような場合も本発明に含まれる。
(1)上記実施形態では、情報記録システムにおいて、FATファイルシステムを利用する例を示したが、使用するのはFATファイルシステムに限定されない。情報記録システムにおいて、情報記録モジュール100(または100A)が、格納されるデータに関して論理的なアドレスを認識・管理し、アクセスモジュール110がその連続情報を取得できれば、他のファイルシステムや他の方法を用いて、情報記録システムがデータ処理を行うようにしてもよい。
(2)上記実施形態では、情報記録モジュールとして半導体素子を使用する例を示したが、これに限定されることはなく、例えば、情報記録モジュールとして、磁気媒体などデジタルデータを記録可能な素子を使用するようにしてもよい。
(3)上記実施形態では、情報記録モジュールとして半導体メモリカードのような構成の例を示したが、具体的な構成は、これに限定されない。情報記録モジュールが取り外し可能なリムーバブルは記録媒体であることはもちろん、情報記録モジュールとアクセスモジュールが一体となったものとして、再生機、録音機、携帯電話、パソコン等の電子装置であってもよい。
(4)上記実施形態では、論理アドレス空間上でのデータ連続性について説明したが、論理アドレスと物理アドレスとが同一である場合には、物理アドレス上でのデータ連続性について扱っても良い。
また、上記実施形態では、コントローラ、情報記録モジュール、アクセスモジュール、情報記録システム等は、もちろん方法の発明としても実施可能である。方法で実施する際には、上記実施形態で示した各構成部をCPU等で実行される処理ステップとして置き換えることで可能である。
なお、本発明においてモジュールとは、装置のみならず、同等の機能を有する部品ユニットやデバイスも含むものである。
なお、上記実施形態で説明した情報記録システム、アクセスモジュールおよび情報記録モジュールにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る情報記録システム、アクセスモジュールおよび情報記録モジュールをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明にかかるコントローラ、アクセスモジュール、情報記録システム及び情報記録方法は、権利情報を高速に書き込み、また、読み出せる機能を情報記録媒体自体が備える構成となっており、記録媒体に対するデータ格納方法として適用できるので、本発明は、データ記録再生技術関連分野において、有用であり、当該分野において、本発明は実施することができる。
1000、4000 情報記録システム
100 情報記録モジュール
101 メモリコントローラ
102 外部I/F部
103 連続データ管理部
104 カード情報管理部
105、111 制御部
106 記録領域I/F部
107 アドレス情報管理部
108 記録領域部
110 アクセスモジュール
112 モジュールアクセス部
113 アクセスモジュール側ソフト
114 アプリケーションプログラム
115 ファイルシステム制御部
116 アクセス条件判定部
117 アクセス制御部
120 FS情報管理部
301 記録領域部
301−A ファイルシステム管理領域
302 管理情報格納領域
303 データ領域
304 MBR・PT
305 PBS
306 FAT1st
307 FAT2nd
308 RDE
1F FAT

Claims (20)

  1. 情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラであって、
    前記情報記憶媒体に記録されるデータはファイルシステムによって管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する制御部と、
    前記データの連続性に係わる情報を連続性情報として記録する連続データ管理部と、
    を備えるコントローラ。
  2. 前記制御部は、前記連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する、
    請求項1に記載のコントローラ。
  3. 前記制御部は、外部からの要求に応じて、前記連続データ管理部に保持する連続性情報を変更する、
    請求項1または2に記載のコントローラ。
  4. 前記ファイルシステムの情報を認識するファイルシステム情報管理部をさらに備える、
    請求項1から3のいずれかに記載のコントローラ。
  5. 前記ファイルシステム情報管理部は、前記連続性情報とファイルシステムの情報に基づいて前記連続性情報を変更する、
    請求項4に記載のコントローラ。
  6. 前記ファイルシステム情報管理部は、外部からの要求があった際に、前記連続性情報とファイルシステムの情報に基づいて、前記連続性情報を変更する、
    請求項4に記載のコントローラであって、
  7. 前記コントローラが制御する情報記憶媒体は、不揮発性メモリである、
    請求項1から6のいずれかに記載のコントローラ。
  8. 情報記憶媒体と該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを備えた情報記録装置であって、
    前記メモリコントローラは、ファイルシステムによって前記情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータ連続性を検出する制御部と、
    前記データの連続性に係わる情報を連続性情報として記録する連続データ管理部と、
    を備える情報記録装置。
  9. 前記メモリコントローラは、前記情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を保持するカード情報管理部をさらに備え、
    前記制御部は、前記アクセス条件を外部へ出力する、
    請求項8に記載の情報記録装置。
  10. 前記制御部は、前記連続データ管理部が保持する連続性情報に基づいた情報を外部へ出力する、
    請求項8または9に記載の情報記録装置。
  11. 前記制御部は、外部からの要求に応じて、前記連続データ管理部に保持する連続性情報を変更する、
    請求項8から10のいずれかに記載の情報記録装置。
  12. 情報記憶媒体と、該情報記憶媒体へのデータ書き込み又はデータ読み出しを制御するコントローラとを具備する情報記録装置であって、
    前記コントローラは、ファイルシステムによって前記情報記憶媒体に記録されるデータが管理され、該ファイルシステムのアドレス空間上でのデータの連続性を検出する制御部と、
    前記データの連続性に係わる情報を連続性情報として記録する連続データ管理部と前記ファイルシステムの情報を認識するファイルシステム情報管理部と、
    を備える情報記録装置。
  13. 前記ファイルシステム情報管理部は、前記連続性情報とファイルシステムの情報に基づいて前記連続性情報を変更する、
    請求項12に記載の情報記録装置。
  14. 前記ファイルシステム情報管理部は、外部からの要求があった際に、前記連続性情報とファイルシステムの情報に基づいて、前記連続性情報を変更する、
    請求項12に記載の情報記録装置。
  15. 前記情報記憶媒体は、不揮発性メモリである、
    請求項5から14のいずれかに記載の情報記録装置。
  16. 情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、
    前記情報記憶媒体へのデータ記録を連続して行うことに係わるアクセス条件を前記情報記録装置から受信する制御部と、
    前記アクセス条件に基づいて、前記情報媒体へ記録するデータのアドレスを決定するファイルシステム制御部と、
    を備えるアクセス装置。
  17. 情報記憶媒体と該情報記憶媒体を制御するコントローラとを供えた情報記録装置と接続するアクセス装置であって、
    前記情報記憶媒体に記録されたデータのアドレス空間上の連続性に係わる連続性情報を前記情報記録装置から受信する制御部と、
    前記連続性情報に基づいて、前記情報記録装置からデータを受信するファイルシステム制御部と、
    を備えるアクセス装置。
  18. 請求項8に記載の情報記録装置と、
    請求項16または17に記載のアクセス装置と、
    を備える情報記録システム。
  19. 情報記憶媒体へのデータ書き込みを制御する情報記録方法であって、
    データが前記情報記憶媒体に記録する記録場所をアドレスによって管理するアドレス管理ステップと、
    該アドレス空間上でのデータの連続性を検出するデータ連続性検出ステップと、
    前記データの連続性に係わる情報を連続性情報として記録する連続性情報記録ステップと、
    を備える情報記録方法。
  20. 前記ファイルシステムの情報を認識するファイルシステム情報認識ステップをさらに備える、
    請求項19に記載の情報記録方法。

JP2010518928A 2008-07-02 2009-07-01 コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法 Pending JPWO2010001606A1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2008172978 2008-07-02
JP2008172981 2008-07-02
JP2008172981 2008-07-02
JP2008172978 2008-07-02
PCT/JP2009/003060 WO2010001606A1 (ja) 2008-07-02 2009-07-01 コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法

Publications (1)

Publication Number Publication Date
JPWO2010001606A1 true JPWO2010001606A1 (ja) 2011-12-15

Family

ID=41465713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010518928A Pending JPWO2010001606A1 (ja) 2008-07-02 2009-07-01 コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法

Country Status (3)

Country Link
US (1) US20100217787A1 (ja)
JP (1) JPWO2010001606A1 (ja)
WO (1) WO2010001606A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391153B2 (ja) * 2010-06-01 2014-01-15 株式会社バッファロー ファイル管理装置およびファイル管理方法
WO2012052936A1 (en) 2010-10-19 2012-04-26 Humaneyes Technologies Ltd. Methods and systems of generating an interlaced composite image
JP5984585B2 (ja) * 2012-08-28 2016-09-06 キヤノン株式会社 通信装置及びその制御方法
WO2019150847A1 (ja) * 2018-02-05 2019-08-08 パナソニックIpマネジメント株式会社 記録システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736748A (ja) * 1993-07-22 1995-02-07 Toshiba Corp 情報管理装置
JP2003140945A (ja) * 2001-10-30 2003-05-16 Denso Corp ファイルデータ読み出し装置,ナビゲーション装置,コンピュータプログラム,記録媒体及びファイルデータ読み出し方法
JP2005038383A (ja) * 2003-07-02 2005-02-10 Sony Corp ファイル制御システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2200032A3 (en) * 1998-09-18 2010-09-22 Kabushiki Kaisha Toshiba Information recording method, information recording device, and information recording medium
JP4452363B2 (ja) * 2000-02-23 2010-04-21 富士通株式会社 ファイルシステム
JP2001273723A (ja) * 2000-03-28 2001-10-05 Matsushita Electric Ind Co Ltd ハードディスク装置、媒体及び情報集合体
US7747144B2 (en) * 2001-10-01 2010-06-29 Sony Corporation Information processing apparatus, information processing method, recording medium, control
KR100886527B1 (ko) * 2003-02-28 2009-03-02 파나소닉 주식회사 애니메이션을 수반한 대화화면의 표시를 실현할 수 있는 기록매체, 재생장치, 기록방법, 컴퓨터 판독 가능한 기록매체, 재생방법
KR100749298B1 (ko) * 2003-08-06 2007-08-14 마쯔시다덴기산교 가부시키가이샤 반도체 메모리 카드, 액세스 장치 및 액세스 방법
JPWO2005029311A1 (ja) * 2003-09-18 2006-11-30 松下電器産業株式会社 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法
US20080208605A1 (en) * 2006-10-20 2008-08-28 Citrix Systems, Inc. Systems and methods for responding to the occurrence of an event

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736748A (ja) * 1993-07-22 1995-02-07 Toshiba Corp 情報管理装置
JP2003140945A (ja) * 2001-10-30 2003-05-16 Denso Corp ファイルデータ読み出し装置,ナビゲーション装置,コンピュータプログラム,記録媒体及びファイルデータ読み出し方法
JP2005038383A (ja) * 2003-07-02 2005-02-10 Sony Corp ファイル制御システム

Also Published As

Publication number Publication date
WO2010001606A1 (ja) 2010-01-07
US20100217787A1 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
JP4647492B2 (ja) 半導体メモリカード、アクセス装置及びアクセス方法
JP4287433B2 (ja) ファイル記録装置
JP5485163B2 (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP4758518B2 (ja) 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US8626987B2 (en) Flash memory system and defragmentation method
US8589617B2 (en) Write once recording device
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
US20080288710A1 (en) Semiconductor Memory Device and Its Control Method
JP5976608B2 (ja) メモリデバイス
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US20140059273A1 (en) Host apparatus and memory device
KR20080086828A (ko) 메모리 관리 장치 및 방법, 및 메모리 관리시스템
US9778857B2 (en) Recording device, access device, recording system, and recording method
JP4608434B2 (ja) 情報記録媒体のデータ処理装置及びデータ記録方法
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
EP3552121A1 (en) Opportunistic use of streams for storing data on a solid state device
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2004342090A (ja) データ記録装置
JP2008152414A (ja) ライトワンス型情報記録装置、コントローラ、アクセス装置、及びライトワンス型情報記録システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131008