JP4403338B2 - Information processing apparatus and information processing method - Google Patents
Information processing apparatus and information processing method Download PDFInfo
- Publication number
- JP4403338B2 JP4403338B2 JP2000196283A JP2000196283A JP4403338B2 JP 4403338 B2 JP4403338 B2 JP 4403338B2 JP 2000196283 A JP2000196283 A JP 2000196283A JP 2000196283 A JP2000196283 A JP 2000196283A JP 4403338 B2 JP4403338 B2 JP 4403338B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- name
- data
- directory
- memory card
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理方法に係り、特にファイルアクセス時の処理に関するものである。
【0002】
【従来の技術】
パーソナルコンピュータやPDA(Personal Digital Assistants:携帯情報機器)などの情報処理装置においては、装置内部に設けられる内部記憶部としてはRAM、フラッシュメモリ等の固体メモリやHDD(Hard Disc Drive)などがあり、また装置外部の記憶部として、光ディスク、光磁気ディスク、磁気ディスク、メモリカードなどの各種の可搬性の記録媒体を利用できるようにされている。
【0003】
【発明が解決しようとする課題】
ところでこれらの情報処理装置からアクセスを行う記録媒体においては、その記録媒体へのアクセス処理を行うファイルシステムにおいて、ディレクトリ構造やファイル名設定方法が規定されているものがある。
例えばディレクトリ名が規定され、データファイルは、その種別に応じて対応するディレクトリ下に置かれるべく規定されていたり、ファイル名称としての基本構造が規定されて、例えばユーザーが任意のファイル名を付けることはできないようなものである。
【0004】
この場合、例えばファイル記録時にユーザーがディレクトリ名やファイル名を誤って指定したため、処理がエラーとなってしまい記録が行えないなどの不都合が生じることがあり、ユーザーにとって使用性のよいものとはいえない。
また、ユーザーやアプリケーションソフトウェアにより、任意に設定した規定外のディレクトリ名やファイル名を有効としてしまうとファイルシステムにとっては不都合となる。
【0005】
【課題を解決するための手段】
本発明はこのような問題に鑑みて、記録媒体へのアクセス処理を行うファイルシステムにおいて、ディレクトリ構造やファイル名設定方法が規定されているものについて好適な処理方式を実現することを目的とする。
【0006】
このため本発明の情報処理装置は、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置において、ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う制御手段を備える。
【0007】
本発明の情報処理方法は、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置の情報処理方法として、上記情報処理装置の制御手段が、ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行うようにする。
【0008】
即ち本発明は、記録媒体に対するファイルアクセスの際に、そのファイルシステムの規定によるディレクトリ名やファイル名が設定されるようにすることで、ユーザーが上記規定を意識しなくてもよいものとする。
【0009】
【発明の実施の形態】
以下、本発明の実施の形態を次の順序で説明する。なお、実施の形態の情報処理装置が記録再生を行う記録媒体はメモリカードとされた例を挙げる。
1.情報処理装置の外観例
2.情報処理装置の構成
3.OS構造及びデータベース構造
4.メモリカード
4−1 外観
4−2 メモリカードの端子及び内部構造
4−3 ファイルシステム処理階層
4−4 物理的データ構造
4−5 物理アドレス及び論理アドレスの概念
4−6 論理−物理アドレス変換テーブル
4−7 ディレクトリ構造
5.FAT構造
6.メモリカードと情報処理装置のインターフェース
7.メモリカードへのファイルアクセス処理
【0010】
1.情報処理装置の外観例
本例の情報処理装置の外観例を図1に示す。
この情報処理装置1は、いわゆるPDA機器として携帯に適した小型軽量の装置とされる。また記録媒体として、後述するメモリカード70を装着し、記録再生を行うことができるものとする。
なお本発明としては、携帯型の情報処理装置に限られず、パーソナルコンピュータをはじめとするあらゆるタイプの情報処理装置に適用できるものであり、また装置が記録を行う記録媒体はメモリカードに限られず、HDD、光ディスク、光磁気ディスク、或いは装置内に固定的に配置されるRAM、フラッシュメモリなど、他の種の記録媒体であってもよいものである。
【0011】
図1(a)(b)(c)(d)は情報処理装置1の外観例としての平面図、右側面図、左側面図、上面図を示している。
図1(d)に示すように装置上面側には後述するメモリカード70を装着可能なメモリスロット7が形成されており、この情報処理装置1は、メモリスロット7に装着されたメモリカード70に対する各種データ(コンピュータ用データ、音楽データ、音声データ、動画像データ、静止画像データ、制御データなど)の記録再生が可能とされる。
なお、この図1の例ではメモリスロット7が2つ形成されていることから、2つのメモリカード70を同時に装着できるようになされている。もちろん、形成するメモリスロット7の数は1つでもよいし、3つ以上でもよい。
【0012】
この情報処理装置1には、平面上に例えば液晶パネルによる表示部2が形成され、アプリケーションソフトウエアの起動及び各種処理に伴う画像、データとしての画像や文字、再生される音声、音楽に付随する情報、さらには操作のガイドメッセージ、再生や編集操作等のためのメニュー画面などが表示される。
【0013】
情報処理装置1上には、ユーザーの操作のための各種の操作子が設けられる。例えば操作キー3a、ジョグダイヤル3b、プッシュダイヤル3cなどがそれぞれ所要部位に形成される。
これらの操作子によりユーザーは、例えば電源操作、メニュー操作、選択操作、文字等の入力操作、その他必要とされる各種の操作を行うことができる。
これらの操作子はもちろん一例にすぎない。即ち配備する操作子の数、種類、位置は多様に考えられる。
【0014】
また、情報処理装置1上には、スピーカ4,マイクロホン5,撮像部6も形成され、音声の出力、入力、撮像による画像の取込なども実行できるようにされている。
【0015】
また各種機器との接続のために、各種端子が形成される。例えば図1(b)のように、ヘッドホン端子10、ライン出力端子12、ライン入力端子11などが形成され、また図1(c)のようにIEEE1394端子8、USB(universal
serial bus)端子9などが形成される。
なお、これらの端子の種類、数、配置位置も、他の例が多様に考えられる。
例えば光ケーブル対応のデジタル入出力端子を備えるようにしたり、或いはSCSIコネクタ、シリアルポート、RS232Cコネクタなどが形成されるようにしても良い。
【0016】
2.情報処理装置の構成
図2に情報処理装置1の内部構成を示す。
図示するように情報処理装置1内には、まず中核となる部位として、システムコントローラ21、CPU22、フラッシュROM23、D−RAM24が設けられる。また基本的なユーザーインターフェースのための部位として操作部35,表示制御部27,表示部2が形成される。
【0017】
システムコントローラ21は操作部35からの操作情報を入力し、それに応じてCPU22に割り込みをかける。
操作部35とは、図1に示した各種操作子3a、3b、3cに相当する。また図1では説明しなかったが、表示部2に操作キーやアイコンの表示を行うとともに表示部2上でのタッチ検出機構を設けることで、タッチパネル操作子を形成してもよく、その場合のタッチパネル操作子も図2でいう操作部35に含まれるものとなる。
【0018】
CPU22は基本ソフト(OS:Operating System)やアプリケーションプログラムが動作される部位となる。
CPU22はシステムコントローラ21を介して供給される操作情報に応じて所要の処理を実行する。
フラッシュROM23は、基本動作プログラム、各種処理定数、設定情報などを記憶する領域とされる。
D−RAM24は、各種処理に必要な情報の記憶、データのバッファリング、CPU22のワークエリアの拡張、その他、CPU22の処理に応じて多様に使用される。またD−RAM24にはストレージエリア(不揮発性領域)が設けられており、そのストレージエリアにはOSやアプリケーションソフトウエアがインストールされる。
そしてD−RAM24にインストールされたアプリケーションソフトウエアは、ユーザからの操作に応じて起動され、CPU22により実行される。
またアプリケーションソフトウエアはユーザーインターフェース画面を持ち、ユーザーの指示による状態遷移に基づいて、D−RAM24に確保されたフレームバッファに描画を行う。
描画された画像データは、表示制御部27に送られ、表示部2に表示される。
【0019】
また上述したようにメモリカード70に対するメモリスロット7が形成され、メモリカード70を装着できるが、CPU22は、メモリカードインターフェース28を介して装着されたメモリカード70に対して書込又は読み出しアクセスすることができる。メモリカードインターフェース28とメモリカード70との間のインターフェース動作については後述する。
CPU22は、装着されたメモリカード70を、拡張的なメモリ領域として利用することができる。
また、もちろんメモリカード70にアプリケーションプログラムが記録されていれば、それをD−RAM24にインストールしたり、或いはアプリケーションやデータを直接D−RAM24に展開して所要処理を実行させることができる。
また、或るアプリケーションに基づいてCPU22が、作成した文書データ、画像データ、オーディオデータ、表計算データなどを、メモリカード70に記録することもできる。
なお、メモリスロット7にメモリカード70が装着されたことを検出することで、メモリカード70に対する動作が記録再生動作可能になったり、或いはメモリカード70に記録されているアプリケーションやデータが自動的にD−RAM24に展開されるなどの、いわゆるホットプラグイン動作も可能である。
またメモリカードインターフェース28は、メモリカード70に記録するデータについての暗号化処理や、読み出したデータの暗号解読処理なども可能とされる。
【0020】
撮像部6は例えばCCD撮像素子及び撮像回路系によりに形成される。撮像部6により取り込まれた撮像画像データは、撮像データインターフェース34を介してD−RAM24に取り込むことができ、またCPU22は所定のアプリケーションプログラムに基づく動作により、撮像画像データの編集やメモリカード70への記録等を実行できる。
【0021】
オーディオインターフェース29は、上述したスピーカ4、マイクロホン5、ヘッドホン端子10、ライン出力端子12,ライン入力端子11から入出力されるオーディオデータのインターフェース部位となる。
例えばマイクロホン5或いはライン入力端子11から入力されたアナログオーディオ信号は、入力オーディオ処理部32でそれぞれ所定の増幅処理やフィルタリングが行われ、A/D変換器33でデジタルオーディオデータとされてオーディオインターフェース29に供給される。オーディオインターフェース29は、入力されたデジタルオーディオデータについて、CPU22の制御に基づいて処理や出力を実行する。例えば所要の圧縮エンコード処理を行った後、メモリカードインターフェース28に供給し、メモリカード70に記録させることができる。またオーディオインターフェース29は、例えばメモリカード70から読み出されるなどして供給されたデジタルオーディオデータについて所定のデコード処理を行い、D/A変換器30に供給する。D/A変換器30はデジタルオーディオデータをアナログオーディオ信号に変換する。出力オーディオ処理部31は供給されたアナログオーディオ信号について、出力先に応じた所定の増幅処理、インピーダンス調整などを行い、スピーカ4,ヘッドホン端子10、ライン出力端子12に出力する。
【0022】
USBインターフェース25は、USBコネクタ9に接続された外部機器との間の通信インターフェースである。CPU22はUSBインターフェース25を介して外部のパーソナルコンピュータ或いは周辺機器などとの間でデータ通信を行うことができる。例えばこの情報処理装置1で扱われる制御データ、コンピュータデータ、画像データ、オーディオデータなどの送受信が実行される。
同様にIEEE1394インターフェース26は、IEEE1394端子8に接続された外部機器との間の通信インターフェースである。CPU22はIEEE1394インターフェース26を介して外部の情報機器との間で各種データ通信を行うことができる。
【0023】
なお、この図2に示す情報処理装置1の構成はあくまでも一例であり、これに限定されるものではない。即ち、一般にパーソナルコンピュータやPDA機器で採用されている各種構成部位を追加したり、或いは実際の製品として不要の部位を削除することは、設計上の都合により決められるものである。
【0024】
3.OS構造及びデータベース構造
続いて図3で、本例の情報処理装置1に搭載されるOS構造について説明する。図3に示すように、OSは、基本ソフトの中心部分としてのカーネルを含むマネージャ層と、標準ライブラリ、及び制御ICなどのハードウエアのレイヤとなるHAL(Hardware Abstraction Layer)から構成される。
アプリケーションソフトウエアは、このようなOS構造による基本動作上で動作される。
またHALに対しては、1又は複数のデバイスドライバとして階層が付加され実際のハードウエア(HW)が駆動される。
【0025】
ここで、特に本例の情報処理装置1の場合は、メモリカード70をドライブ可能とし、かつ後述するがメモリカード70のデータはFATにより管理されることから、OSにFATライブラリが付加され、さらに、メモリカードをハンドリングするためのライブラリ(MSライブラリ)が付加される。
そしてこのFATライブラリ及びMSライブラリに基づいて、メモリドライブがメモリカード70がドライブされる構造とされている。
【0026】
このようなOS構造を持つ本例の情報処理装置1では、さらに通常でいうところの「ファイル」に相当する概念として、「データベース」という概念が導入されている。
ここでいう「データベース」とは、通常いうところのデータベースのように単にデータを蓄積していったものではなく、データベース自体がデータを管理できる構造としてフォーマット化されている。この意味で、「データベース」は「ファイル」に相当する。
【0027】
図4にデータベース構造を示す。即ちデータベースには、ヘッダ(DTBヘッダ)としてデータベースネーム(DTB Name)及びその他情報を含む領域が形成され、さらにポインタテーブルが配される。そしてデータ領域に記録される実際のデータは、ポインタテーブルに記録されたポイント情報により、位置的な管理が行われる状態となっている。
【0028】
このような構造のデータベースとしては、2種類のものが存在する。例えば一般に1つのアプリケーションソフトウエアは複数のファイルで構成され、その中には実行ファイル(***.exe)と、データファイル(***.data)があるが、その実行ファイル(***.exe)に相当するものとして「リソースデータベース(***.prc)」があり、またデータファイル(***.data)に相当するものとして「データベースデータベース(***.dtb)」がある。
【0029】
本例の情報処理装置1では、このような「データベース」という概念によりデータを扱う。従って、メモリカード70において記録再生されるファイル(FATで扱われるファイル)も、上記データベースの形態となる。
なお本明細書では、「ファイル」という言葉を用いるが、これは一般的な概念にあわせて用いているものであり、本実施の形態に関していえば、「ファイル」とは上記構造のデータベースの意味となる。
【0030】
4.メモリカード
4−1 外観
次にメモリカード70について説明していく。
まず図5にメモリカード70の外形形状を示す。
メモリカード70は、例えば図5に示すような板状の筐体内部に例えば所定容量ののメモリ素子を備える。本例としては、このメモリ素子としてフラッシュメモリ(Flash Memory)が用いられるものである。
図5に平面図、正面図、側面図、底面図として示す筐体は例えばプラスチックモールドにより形成され、サイズの具体例としては、図に示す幅W11、W12、W13のそれぞれが、W11=60mm、W12=20mm、W13=2.8mmとなる。
【0031】
筐体の正面下部から底面側にかけて例えば10個の電極を持つ端子部72が形成されており、この端子部72から、内部のメモリ素子に対する読出又は書込動作が行われる。
筐体の平面方向の左上部は切欠部73とされる。この切欠部73は、このメモリカード70を、例えばドライブ装置本体側の着脱機構へ装填する際などに挿入方向を誤ることを防止するためのものとなる。
また筐体上面から底面側にかけて、ラベル貼付面74が形成され、ユーザーが記憶内容を書いたラベルを貼付できるようにされている。
さらに底面側には、記録内容の誤消去を防止する目的のスライドスイッチ75が形成されている。
【0032】
このようなメモリカード70においては、フラッシュメモリ容量としては、4MB(メガバイト),8MB,16MB,32MB,64MB,128MBの何れかであるものとして規定されている。
またデータ記録/再生のためのファイルシステムとして、いわゆるFAT(File Allocation Table)システムが用いられている。
【0033】
書込速度は1500KByte/sec〜330KByte/sec、読出速度は2.45MByte/secとされ、書込単位は512バイト、消去ブロックサイズは8KB又は16KBとされる。
また電源電圧Vccは2.7〜3.6V、シリアルクロックSCLKは最高20MHzとされる。
【0034】
4−2 メモリカードの端子及び内部構造
図6に端子部72の電極構造を示す。図5に示したように端子部72は10個の平面電極が1列に並んだ構造とされるが、図6に示すように各電極(端子T1〜T10)は次の通りとなる。
【0035】
端子T1及びT10は検出電圧Vss端子とされる。
端子T2は、シリアルプロトコルバスステート信号BSの入力端子とされる。
端子T3及びT9は電源電圧Vcc端子とされる。
端子T4はデータ端子、つまりシリアルプロトコルデータ信号の入出力端子とされる。
端子T5及びT7はリザーブ(予備)とされる。
端子T6は検出端子とされ、ドライブ装置側(情報処理装置1のメモリカードインターフェース)がメモリカードの装着検出に用いる。
端子T8は、シリアルクロックSCLKの入力端子とされる。
【0036】
また図6にはメモリカード70の内部構成も示している。
メモリカード70の内部は、コントロールIC80とフラッシュメモリ81が設けられている。コントロールIC80はフラッシュメモリ81に対する書込/読出動作を実行する部位となる。
図からわかるように、コントロールIC80に対しては、端子T2からのシリアルプロトコルバスステート信号BS、端子T8からのシリアルクロックSCLKが供給される。書込動作時には、コントロールIC80は、これらのシリアルプロトコルバスステート信号BS、シリアルクロックSCLKに従って、端子T4から供給されるデータのフラッシュメモリ81への書込を行う。また読出時には、シリアルプロトコルバスステート信号BS、シリアルクロックSCLKに従って、フラッシュメモリ81からデータを読み出し、端子T4からドライブ装置側に出力する。
【0037】
また検出電圧Vssは、検出端子T6に供給されており、ドライブ装置側では、図示するように抵抗Rによって検出端子T6の端子電圧を検出することで、このメモリカード70が装着部(メモリスロット7)に接続されているか否かを検出できるようにされる。
【0038】
4−3 ファイルシステム処理階層
続いて、メモリカード70を記録媒体とするシステムにおけるフォーマットについて説明していく。
図7は、メモリカード70を記録媒体とするシステムのファイルシステム処理階層を示すものである。
この図に示すように、ファイルシステム処理階層としては、アプリケーション処理層の下に、順次、ファイル管理処理層、論理アドレス層、物理アドレス層、フラッシュメモリアクセスがおかれる。
この階層では、ファイル管理処理層がいわゆるFAT(File Allocation Table)となる。
また、この図から分かるように、本例のファイルシステムでは論理アドレス及び物理アドレスという概念が導入されているが、これについては後述する。
【0039】
4−4 物理的データ構造
図8には、メモリカード70内の記憶素子である、フラッシュメモリ81の物理的データ構造が示されている。
フラッシュメモリ81としての記憶領域は、セグメントという固定長のデータ単位が大元となる。このセグメントは、1セグメントあたり4MB(メガバイト)或いは8MBとして規定されるサイズであり、1つのフラッシュメモリ81内におけるセグメント数は、そのフラッシュメモリ81の容量に依存して異なってくる。
【0040】
そして、この1セグメントを図8(a)に示すように、ブロックという固定長のデータ単位として8KB(キロバイト)又は16KBにより区切るようにされる。原則として、1セグメントは512ブロックに区切られることから、図8(a)に示すブロックnについては、n=511とされることになる。但し、フラッシュメモリ81では、書き込み不可な損傷エリアであるディフェクトエリアとしてのブロック数が所定数の範囲で許可されているため、データ書き込みが有効とされる実質的なブロック数を対象とすれば、上記nは511よりも少なくなる。
【0041】
図8(a)に示すようにして形成されるブロック0〜nのうち、先頭の2つのブロック0,1はブートブロックといわれる。但し、実際には有効なブロックの先頭から2つのブロックがブートブロックとして規定されることになっており、必ずしもブートブロックがブロック0,1である保証はない。
そして、残りのブロックが、ユーザデータが格納されるユーザブロックとなる。
【0042】
1ブロックは、図8(d)に示すようにして、ページ0〜mにより分割される。1ページの容量は、図8(e)に示すように、512バイトのデータエリアと16バイトの冗長部よりなる、528(=512+16)バイトの固定長とされる。なお、冗長部の構造については図8(f)により後述する。
また、1ブロック内のページ数としては、1ブロックの容量が8KBの場合には16ページ、16KBの場合には32ページとなる。
【0043】
このような、図8(d)(e)に示されるブロック内のページ構造は、上記ブートブロックとユーザブロックとで共通である。
また、フラッシュメモリ81では、データの読み出し、及び書き込みはページ単位で行われ、データの消去はブロック単位で行われるものとされる。そして、データの書き込みは、消去済みのページに対してしか行われないものとされている。従って、実際のデータの書き換えや書き込みは、ブロック単位を対象として行われることになる。
【0044】
先頭のブートブロックは、図8(b)に示すように、ページ0に対してヘッダーが格納され、ページ1には初期不良データの位置(アドレス)を示す情報が格納される。また、ページ2にはCIS/IDSといわれる情報が格納される。
2つめのブートブロックは図8(c)に示すように、ブートブロックとしてのバックアップのための領域とされている。
【0045】
図8(e)に示された冗長部(16バイト)は、図8(f)に示す構造を有する。
この冗長部は、図のように先頭の第0バイト〜第2バイトの3バイトが、データエリアのデータ内容の更新に応じて書き換えが可能なオーバーライトエリアとされる。このオーバーライトエリアのうち、第0バイトにはブロックステータスが格納され、第1バイトにはデータステータスが格納される(Block Flag Data)。また、第2バイトの上位の所定ビットを利用して変換テーブルフラグ(Page Data Status1)が格納される。
【0046】
原則として第3バイト〜第15バイトは、その内容が現ページのデータ内容に応じて固定とされ、書き換えが不可とされる情報が格納される領域となる。
第3バイトにはアクセス許可やコピー禁止指定等を示す管理フラグ(Block Info)が格納される。
第4,第5バイトから成る2バイトの領域には、後述する論理アドレス(Logic Address)が格納される。
第6〜第10バイトの5バイトの領域は、フォーマットリザーブの領域とされ、続く第11,第12バイトの2バイトが、上記フォーマットリザーブに対して誤り訂正を施すための分散情報ECCを格納する領域とされる。
残る第13〜第15バイトには、図8(e)に示すデータエリアのデータに対して誤り訂正を行うためのデータECCが格納される。
【0047】
上記図8(f)に示した冗長部の第3バイトに格納される管理フラグは、図9に示すようにして、ビット7〜ビット0の各ビットに、その内容が定義されている。
ビット7,6、及びビット1,0はリザーブ(未定義)領域とされている。
ビット5は現ブロックに対してのアクセス許可の「有効」(‘1’;Free)/「無効」(‘0’;Read Protected)を示すフラグが格納される。ビット4には現ブロックについてのコピー禁止指定(‘1’;OK /‘0’;NG)についてのフラグが格納される。
【0048】
ビット3は変換テーブルフラグとされる。この変換テーブルフラグは、現ブロックが後述する論理−物理アドレス変換テーブルであるのか否かを示す識別子であり、このビット3の値が‘0’とされていれば、現ブロックは論理−物理アドレス変換テーブルであることが識別され、‘1’であれば無効となる。つまり、現ブロックは論理−物理アドレス変換テーブルではないことが識別される。
【0049】
ビット2はシステムフラグが格納され、‘1’であれば現ブロックがユーザブロックであることが示され、‘0’であればブートブロックであることが示される。
【0050】
ここで、セグメント及びブロックと、フラッシュメモリ容量との関係を図13(左3列を参照)により説明しておく。
メモリカード70のフラッシュメモリ容量としては、4MB,8MB,16MB,32MB,64MB,128MBの何れかであるものとして規定されている。
そして、最も容量の小さい4MBの場合であると、1ブロックは8KBと規定された上で、そのブロック数としては512個とされる。つまり、4MBはちょうど1セグメントの容量を有するものとされる。そして、8MBの容量であれば、同様に1ブロック=8KBの容量が規定された上で、2セグメント=1024ブロックとなる。なお、前述したように、1ブロック=8KBであれば、1ブロック内のページ数は16ページとなる。
但し16MBの容量では、1ブロックあたりの容量として8KBと16KBの両者が存在することが許可されている。このため、2048ブロック=4セグメント(1ブロック=8KB)のものと、1024ブロック=2セグメント(1ブロック=16KB)のものとの2種類が在ることになる。1ブロック=16KBの場合には、1ブロック内のページ数は32ページとなる。
【0051】
また、32MB,64MB,128MBの容量では、1ブロックあたりの容量は16KBのみであるとして規定される。従って、32MBでは2048ブロック=4セグメントとなり、64MBでは4096ブロック=8セグメントとなり、128MBでは8192ブロック=16セグメントとなる。
【0052】
4−5 物理アドレス及び論理アドレスの概念
次に、上述したようなフラッシュメモリの物理的データ構造を踏まえたうえで、図10に示すデータ書き換え動作に従って、本例のファイルシステムにおける物理アドレスと論理アドレスの概念について説明する。
【0053】
図10(a)には、或るセグメント内から4つのブロックを抜き出して、これを模式的に示している。
各ブロックに対しては物理アドレスが付される。この物理アドレスはメモリにおけるブロックの物理的な配列順に従って決まるもので、或るブロックとこれに対応付けされた物理アドレスとの関係は不変となる。ここでは、図10(a)に示す4ブロックに対して、上から順に物理アドレスの値として、105,106,107,108が付されている。なお、実際の物理アドレスは2バイトにより表現される。
【0054】
ここで、図10(a)に示すように、物理アドレス105,106で示されるブロックがデータの記憶されている使用ブロックで、物理アドレス107,108で示されるブロックがデータが消去(即ち、未記録領域)された未使用ブロックとなっている状態であるとする。
【0055】
そして、論理アドレスであるが、この論理アドレスは、ブロックに対して書き込まれたデータに付随するようにして割り振られるアドレスとされる。そして、この論理アドレスが、後述するFATファイルシステムが利用するアドレスとされている。
図10(a)では、4つの各ブロックに対して、上から順に論理アドレスの値として、102,103,104,105が付されている状態が示されている。なお、論理アドレスも実際には2バイトにより表現されるものである。
【0056】
ここで、上記図10(a)に示す状態から、例えば物理アドレス105に格納されているデータの更新として、内容の書き換え又は一部消去を行うとする。
このような場合、フラッシュメモリのファイルシステムでは、同じブロックに対して更新したデータを再度書き込むことはせずに、未使用のブロックに対してその更新したデータを書き込むようにされる。
つまり、例えば図10(b)に示すようにして、物理アドレス105のデータは消去したうえで、更新されたデータはこれまで未使用ブロックであった物理アドレス107で示されるブロックに書き込むようにされる(処理▲1▼)。
【0057】
そして、処理▲2▼として示すように、データ更新前(図10(a))の状態では物理アドレス105に対応していた論理アドレス102が、更新されたデータが書き込まれたブロックの物理アドレス107に対応するように、論理アドレスについての変更を行うものである。これに伴って、データ更新前は物理アドレス107に対応していた論理アドレス104については、物理アドレス105に対応するように変更されている。
【0058】
つまり、物理アドレスはブロックに対して固有に付されるアドレスであり、論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するようにしてついて回る、ブロック単位の書き込みデータに固有となるアドレスであるとみることができる。
【0059】
このようなブロックのスワップ処理が行われることで、或る同一の記憶領域(ブロック)に対して繰り返し集中的にアクセスされることが無くなり、書き換え回数の上限があるフラッシュメモリの寿命を延ばすことが可能となる。
そして、この際に論理アドレスを上記処理▲2▼のようにして扱うことで、ブロックのスワップ処理によって更新前と更新後のデータとで書き込まれるブロックの移動があるようにされても、FATからは同一のアドレスが見えることになり、以降のアクセスを適正に実行することができるものである。
なお、後述する論理−物理アドレス変換テーブル上での更新のための管理を簡略にすることなどを目的として、ブロックのスワップ処理は、1セグメント内で完結するものとして規定されている。逆に言えば、ブロックのスワップ処理はセグメント間で跨るようにしては行われない。
【0060】
4−6 論理−物理アドレス変換テーブル
上記図10による説明から分かるように、ブロックのスワップ処理が行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理−物理アドレス変換テーブルが必要となる。つまり、論理−物理アドレス変換テーブルをFATが参照することで、FATが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になるものである。逆に言えば、論理−物理アドレス変換テーブルが無ければ、FATによるフラッシュメモリへのアクセスが不可能となる。
【0061】
従来では、例えばセット本体に対してメモリカード70が装着されたときに、セット本体側のマイクロプロセッサがメモリカード70の記憶内容をチェックすることで、セット本体側で論理−物理アドレス変換テーブルの構築を行い、更にこの構築された論理−物理アドレス変換テーブルをセット本体側のRAMに格納するようにしていた。つまり、メモリカード70内には、論理−物理アドレス変換テーブルの情報は格納されてはいなかった。
これに対して本例では、以降説明するようにメモリカード70に対して、論理−物理アドレス変換テーブルを格納するように構成している。
【0062】
図11は、本例のメモリカード70に対して格納される論理−物理アドレス変換テーブルの構築形態を概念的に示すものである。
つまり、本例では、例えば論理アドレスの昇順に従って、これに対応する2バイトの物理アドレスを格納するようにしたテーブル情報を論理−物理アドレス変換テーブルとして構築するようにされる。
なお、前述したように、物理アドレス、及び論理アドレスは共に2バイトで表現される。これは、128MBの最大容量のフラッシュメモリの場合には8192個のブロックが存在するため、最大で、この8192個のブロック数をカバーできるだけのビット数が必要とされることに基づく。
このため、図11において例示している物理アドレスと論理アドレスとについても、実際に即して2バイトで表現している。
但し、ここでは、この2バイトを16進数により表記している。つまり、「0x」によりその後続く値が16進法表記であることが示される。なお、この「0x」により16進数であることを表す表記は、以降の説明において16進数を表記する場合にも同様に用いることとする。(但し、表記の煩雑化を防ぐため「0x」を省略している図面もある。)
【0063】
図12に、上記図11に示した概念に基づく論理−物理アドレス変換テーブルの構造例を示す。
論理−物理アドレス変換テーブルは、フラッシュメモリの最後のセグメント内の或るブロックに対して、図12に示すようにして格納される。
先ず図12(a)に示すように、ブロックを分割するページのうち、ページ0,1からなる2ページの領域がセグメント0用の論理−物理アドレス変換テーブルとして割り当てられる。例えば、図13にて説明したように、フラッシュメモリが4MBの容量であれば1セグメントしか有さないために、このページ0,1のみの領域が論理−物理アドレス変換テーブルの領域となる。
また、例えばフラッシュメモリが8MBの容量であれば2セグメントを有するため、セグメント0用の論理−物理アドレス変換テーブルとして割り当てられるページ0,1に加え、これに続くページ2,3の2ページがセグメント1用の論理−物理アドレス変換テーブルとして割り当てられることになる。
【0064】
以降、フラッシュメモリの容量の増加に応じて、続く2ページごとにセグメントごとの論理−物理アドレス変換テーブルの割り当て領域が設定されていくことになる。そして、最大の128MBの容量を有する場合であれば16セグメントが存在するため、最大では、セグメント15用までのページが論理−物理アドレス変換テーブルの領域として割り当てられることになる。従って、最大の128MBの容量のフラッシュメモリでは、32ページが使用されることになり、図12(a)に示すページNとしては、最大でN=31となる。
これまでの説明から分かるように、論理−物理アドレス変換テーブルは、セグメントごとに管理されるものである。
【0065】
図12(b)は、1セグメントあたりの論理−物理アドレス変換テーブルの構造を示すものとして、2ページ分のデータエリアを抜き出して示している。つまり、1ページのデータエリアは512バイト(図8(e)参照)であることから、図12(b)には、1024(=512×2)バイトが展開されている状態が示されている。
【0066】
図12(b)に示すように、この2ページ分のデータエリアである1024バイトについて2バイトごとに区切り、この2バイトごとの領域を、先頭から順次、論理アドレス0用、論理アドレス1用・・・・、のようにして割付を行い、最後は先頭から991バイト目と992バイト目の2バイトの領域を論理アドレス495用の領域として割り付けるように規定を行う。これら2バイトごとの領域に対して、各論理アドレスが対応する物理アドレスを書き込むようにする。従って、本例の論理−物理アドレス変換テーブルでは、実際のデータ更新によるブロックのスワップ処理などにより物理アドレスと論理アドレスの対応が変更された場合には、論理アドレスを基準として、物理アドレスの格納状態が更新されるようにしてテーブル情報の書き換えが行われることになる。
【0067】
また、残る993バイト目から最後の1024バイト目までの計32バイトの領域は、余剰ブロックの物理アドレスが格納される領域として割り当てられる。つまり、16個の余剰ブロックの物理アドレスを管理することができる。ここでいう余剰ブロックとは、例えばブロック単位でデータの更新を行う際に書き換え対象となるデータを一時待避させる領域として設定されたいわゆるワークブロックなどを言うものである。
【0068】
ところで、1セグメントは512ブロックに分割されているものであると先に説明したのにも関わらず、図12に示したテーブル構造では、管理可能なブロック数が論理アドレス0用〜論理アドレス495用の496ブロックとしている。これは、実際上、上記した余剰アドレスが設定されることと、前述したように、フラッシュメモリでは、或ブロック数のディフェクト(使用不可領域)が許可されている。そのため現実には、相当数のディフェクトブロックが存在することに依る。
従って、実際には、書き込み/消去が有効なブロックを管理するのに、496ブロックを管理できるように構成しておけば充分とされるものである。
【0069】
そして、このようにして論理−物理アドレス変換テーブルが格納されるブロックについては、これを形成する各ページの冗長部における管理フラグ(図9参照)のデータ内容として、この管理フラグのビット3に対して‘0’がセットされることになる。これにより、当該ブロックが論理−物理アドレス変換テーブルが格納されているブロックであることが示されることになる。
【0070】
論理−物理アドレス変換テーブルが格納されるブロックも、論理−物理アドレス変換テーブルの内容の書き換えがあった場合には、例外なく、先に図10にて説明したスワップ処理が行われる。従って、論理−物理アドレス変換テーブルが記録されているブロックは不定であり、或る特定のブロックに論理−物理アドレス変換テーブルを格納するように規定することは出来ない。
そこで、FATは、フラッシュメモリにアクセスして上記した管理フラグのビット3が‘0’とされているブロックを検索することで、論理−物理アドレス変換テーブルが格納されているブロックを識別するようにされる。但し、論理−物理アドレス変換テーブルが格納されているブロックの検索がFATによって容易に行われるようにすることを考慮して、論理−物理アドレス変換テーブルが格納されているブロックは、そのフラッシュメモリ内における最後のナンバが付されたセグメントに在るように、本例では規定するものとされる。これにより、FATは最後のナンバが付されたセグメントのブロックのサーチだけで、論理−物理アドレス変換テーブルを検索することができる。つまり、論理−物理アドレス変換テーブルを検索するのに、フラッシュメモリの全てのセグメントを検索する必要は無いようにされる。
上記図12に示した論理−物理アドレス変換テーブルは、例えばメモリカード70の製造時において格納するようにされる。
【0071】
ここで、再度図13を参照して、フラッシュメモリ容量と論理−物理アドレス変換テーブルのサイズとの関係を説明しておく。
上記図11にて説明したように、1セグメントを管理するための論理−物理アドレス変換テーブルのサイズは2ページ分の1024バイト、つまり1KBとなる。従って、図13の最右列に記されているように、フラッシュメモリが4MB(1セグメント)の容量では論理−物理アドレス変換テーブルは1KBのサイズとなる。また、フラッシュメモリの容量が8MB(2セグメント)では論理−物理アドレス変換テーブルは2KB(4ページ)となる。
また、フラッシュメモリの容量が16MBの場合、2048ブロック=4セグメントのものでは論理−物理アドレス変換テーブルは4KB(8ページ)、1024ブロック=2セグメントのものでは論理−物理アドレス変換テーブルは2KB(4ページ)となる。
そして、フラッシュメモリの容量が32MB(4セグメント)では論理−物理アドレス変換テーブルは4KB(8ページ)、フラッシュメモリの容量が64MB(8セグメント)では論理−物理アドレス変換テーブルは8KB(16ページ)となり、フラッシュメモリの容量が最大の128MB(16セグメント)では論理−物理アドレス変換テーブルは16KB(32ページ)となる。
【0072】
4−7 ディレクトリ構造
メモリカード70に記録されるディレクトリ構成例を図14に示す。
メモリカード70で扱うことのできる主データとしては、コンピュータ用データ、動画データ、静止画データ、メッセージデータ、オーディオデータ、制御用データなどがあるが、このためディレクトリ構造としては、ルートディレクトリから、「VOICE」(メッセージ用ディレクトリ)、「DCIM」(静止画用ディレクトリ)、「MOxxxxnn」(動画用ディレクトリ)、「CONTROL」(制御用ディレクトリ)、「HIFI」(オーディオ用ディレクトリ)、「PM」(情報処理装置用ディレクトリ)が配される。
【0073】
そして図示していないが、各ディレクトリの下には、サブディレクトリやファイル(上述したデータベース)、フォルダ等が配され、いわゆるツリー構造の形態をとることになる。
なお、もちろんこのようなディレクトリ構成は一例にすぎず、実際には情報処理装置1等による記録状況や記録されるファイル種別などに応じてディレクトリ構造が形成される。
【0074】
5.FAT構造
図7のファイルシステム階層で説明したように、ファイル管理処理はFATにより行われることになる。
即ち図2に示した構成の情報処理装置1により、メモリカード70に対する記録再生(データ書込/読出)を実現するには、アプリケーション処理での要求に伴ってFATによるファイル記憶位置管理が参照され、さらに上述した論理−物理アドレス変換が行われて実際のアクセスが行われることになる。
ここで、FATの構造について説明しておく。
【0075】
図15はFATによる管理構造の概要を示している。
なお、本例ではFAT及び論理−物理アドレス変換テーブルはメモリカード70内に格納されることになるが、図15に示すFAT構造が、メモリカード70内での管理構造となるものである。
【0076】
図示するようにFAT管理構造は、パーティションテーブル、空き領域、ブートセクタ、FAT、FATのコピー、ルートディレクトリ、データ領域から成る。
データ領域には、クラスタ2、クラスタ3・・・として単位データを示しているが、このクラスタとは、管理単位となるFATで扱う1データ単位である。
一般にFATでは、クラスタサイズは標準で4Kバイトとされるが、このクラスタサイズは512バイト〜32Kバイトの間で2のべき乗の大きさをとることができる。
本例のメモリカード70では、上述したように1つのブロックが8Kバイト又は16Kバイトとされるが、1ブロック=8Kバイトとされるメモリカード70の場合は、FATで扱うクラスタは8Kバイトとされる。また1ブロック=16Kバイトとされるメモリカード70の場合は、FATで扱うクラスタは16Kバイトとされる。即ち、8Kバイト又は16KバイトがFAT管理上でのデータ単位であり、かつメモリカード70でのブロックとしての1つのデータ単位とされる。なお、従ってメモリカードからみれば、FATで扱われるクラスタサイズ=そのメモリカードのブロックサイズとなる。このため、本例の以降の説明については、簡略化のためにブロック=クラスタとして考えることとする。
【0077】
そして図15左側にブロックナンバとしてx・・・(x+m−1)、(x+m)(x+m+1)(x+m+2)・・・と示したが、例えばこのように各ブロックにおいてFAT構造を構築する各種データは記憶されることになる。
なお、実際には必ずしもこのように物理的に連続する各ブロックに各情報が記憶されるものではない。
【0078】
FAT構造において、まずパーティションテーブルには、FATパーティション(最大2Gバイト)の先頭と終端のアドレスが記述されている。
ブート領域には、いわゆる12bitFAT、16bitFATの別や、FAT構造(大きさ、クラスタサイズ、各領域のサイズなど)が記述される。
【0079】
FATは、後述するように各ファイルを構成するクラスタのリンク構造を示すテーブルとなり、またFATについては続く領域にコピーが記述される。
ルートディレクトリには、ファイル名、先頭クラスタ番号、各種属性が記述される。これらの記述は1つのファイルにつき32バイト使用される。
【0080】
FATにおいては、FATのエントリとクラスタは1対1で対応しており、各クラスタのエントリにはリンク先、つまり後に続くクラスタの番号が記述される。つまり、複数のクラスタ(=ブロック)で形成されている或るファイルについてみると、まずディレクトリによって先頭のクラスタ番号が示され、FATにおけるその先頭クラスタのエントリには、次のクラスタ番号が示される。さらに次のクラスタ番号のエントリには、さらに次のクラスタ番号が示される。このようにクラスタのリンクがFATに記述される。
【0081】
図16はこのようなリンクの概念を模式的に示している(数値は16進値)。
例えば2つのファイル「MAIN.C」「FUNC.C」が存在するとすると、ディレクトリにはこの2つのファイルの先頭クラスタ番号が例えば「002」「004」と記述される。
そしてファイル「MAIN.C」については、クラスタ番号「002」のエントリに次のクラスタ番号「003」が記述され、またクラスタ番号「003」のエントリに次のクラスタ番号「006」が記述される。さらに、クラスタ番号006がこのファイル「MAIN.C」の最後のクラスタであるとすると、クラスタ番号「006」のエントリには、最後のクラスタであることを示す「FFF」が記述される。
これによりファイル「MAIN.C」がクラスタ「002」→「003」→「006」という順番で記憶されている。即ち、仮にクラスタ番号とメモリカード70でのブロック番号が一致していると仮定すると、ファイル「MAIN.C」は、メモリカード70内でブロック「002」「003」「006」に記憶されていることが表現されている。(但し、FATで扱うクラスタは、上述のように論理アドレスで扱うものとなるため、ブロックの物理アドレスとそのまま一致するものではない)
【0082】
また同様にファイル「FUNC.C」については、FATにより、クラスタ「004」→「005」に記憶されていることが表現される。
【0083】
なお、未使用のブロックに対応するクラスタについては、そのエントリは「000」とされる。
【0084】
ところでルートディレクトリの領域に記憶される各ファイルのディレクトリにおいては、図16に示した先頭クラスタ番号だけでなく、例えば図17のように各種データが記述される。
即ちファイル名、拡張子、属性、変更時刻情報、変更日付情報、先頭クラスタ番号、ファイルサイズが、それぞれ図示するバイト数で記述される。
【0085】
また或るディレクトリの下層となるサブディレクトリについては、図15のルートディレクトリの領域ではなく、データ領域に記憶される。つまりサブディレクトリは、ディレクトリ構造を持つファイルとして扱われる。そしてサブディレクトリの場合はサイズは無制限とされ、また自分自身へのエントリと親ディレクトリへのエントリが必要になる。
【0086】
図18に、或るルートディレクトリ内にファイル「DIR1」(属性=ディレクトリ:つまりサブディレクトリ)があり、さらにその中にファイル「DIR2」(属性=ディレクトリ:つまりサブディレクトリ)があり、さらにその中にファイル「FILE」が存在する場合の構造例を示している。
つまりルートディレクトリの領域には、サブディレクトリであるファイル「DIR1」としての先頭クラスタ番号が示され、上述したFATにより、クラスタX、Y、Zがリンクされている状態となる。
この図からわかるように、サブディレクトリ「DIR1」「DIR2」についてはファイルとして扱われてFATのリンクに組み込まれる。
【0087】
6.メモリカードと情報処理装置のインターフェース
図19により、メモリカード70と情報処理装置1のメモリカードインターフェース28の間のシリアルインターフェースシステム構成を説明する。
メモリカード70内のコントロールIC80は、図19に示すようにフラッシュメモリコントローラ80a、レジスタ80b、ページバッファ80c、シリアルインターフェース80dとしての各ブロックを有するものとなっている。
【0088】
フラッシュメモリコントローラ80aは、レジスタ80bに設定されたパラメータに基づいて、フラッシュメモリ81とページバッファ80cの間でのデータ転送を行う。
そしてページバッファ80cにバファリングされたデータはシリアルインターフェース80dを介して情報処理装置1のメモリカードインターフェース28側に転送され、また情報処理装置1のメモリカードインターフェース28から転送されてきたデータはシリアルインターフェース80dを介してページバッファ10cにバファリングされる。
【0089】
メモリカードインターフェース28側では、メモリカード70に対するインターフェース構造として、ファイルマネージャ60、転送プロトコルインターフェース61、シリアルインターフェース62を有する。
ファイルマネージャ60はメモリカード70のファイル管理を行う。例えば本例のシステムではメモリカード70内にはメインデータファイルの管理のための管理ファイルが記憶されているが、情報処理装置1は装填されたメモリカード70から管理ファイルをよみこんでCPU22がファイルマネージャ60を形成することになる。メモリカード70へのアクセスはファイルマネージャ60に従って実行される。
転送プロトコルインターフェース61は、レジスタ80b、ページバッファ80cへのアクセスを実行する。
シリアルインターフェース62は、メモリカード70との間の3つの信号線、即ちSCLK(シリアルクロック)、BS(バスステイト)、SDIO(シリアルデータ入出力)において、任意のデータ転送を行うためのプロトコルを規定する。
【0090】
以上の構成における各部の動作により、情報処理装置1によるメモリカード70(フラッシュメモリ81)に対する読出アクセス/書込アクセスが実行される。
【0091】
7.メモリカードへのファイルアクセス処理
続いて本例の情報処理装置1による特徴的な動作となる、メモリカード70へのデータファイル(データベースデータベース)や実行ファイル(リソースデータベース)の書込/読出のためのファイルアクセス処理について説明していく。
【0092】
ユーザーは情報処理装置1において任意のアプリケーションソフトウエアを起動させることで、そのアプリケーションソフトウエアに基づく処理を実行させることができる。もちろんアプリケーションソフトウエアの動作上において各種のデータファイルを参照し、内容を確認したり編集することなども可能である。
ここで、アプリケーションソフトウエアでの処理過程やユーザー操作に基づいて、メモリカード70にファイルアクセスを行う場合においては、図14等で説明したディレクトリ構成に規定された状態でアクセスが行われなければならない。このために本例では、ファイルアクセス要求が発生した際にCPU22は図20の処理を行うことになる。
【0093】
なお図20の処理はCPU22によって行われる処理であるが、これは起動されているアプリケーションソフトウエアに実装したプログラムに基づいて実行されるファイルアクセス処理としてもよい。もしくは、OSのAPI(Application Programming Interface)として定義され、OSのファイルシステム用ライブラリとしてこのファイルアクセス処理がサポートされるものとしてもよい。
また、このようなファイルアクセス処理を実行するアクセス用のアプリケーションソフトウエアが形成され、CPU22において常時起動されているようにしてもよく、つまりファイルアクセス要求の発生に応じて、そのアクセス用のアプリケーションソフトウエアが動作して図20の処理をCPU22に実行させるものであってもよい。
【0094】
アプリケーションソフトウエアのプログラムに基づく処理又はユーザーの指示に基づく処理において、メモリカード70に対するファイルアクセス要求が発生発生すると、図20のファイルアクセス処理はステップF101からF102に進み、まずそのアクセス要求についてディレクトリが指定されているか否かを判別する。
ディレクトリが指定されていれば、ステップF103でそのディレクトリ名が、メモリカード70のファイルシステム上で適正とされるディレクトリ名であるか否かを判断する。
ここでディレクトリ名が適正であったとしてら、ステップF109に進んで、指定されたディレクトリ名及びファイル名でメモリカード70に対するアクセス処理(書込又は読出処理)を行えばよい。
【0095】
ところが、ファイルアクセス要求の際にディレクトリ名が指定されていなかったり、或いは指定されていたがファイルシステムの規定上、適切でないディレクトリ名であったとしてら、処理をステップF105に進める。
そして当該アクセス要求のあるファイルについてファイルタイプが指定されているか否かを確認する。例えばファイル名に付加された拡張子などによるファイルタイプの指定の情報の有無を判別する。
【0096】
ファイルタイプが指定されていた場合は、ステップF106でその指定されたファイルタイプに応じてディレクトリを設定する。
例えば図14のディレクトリ構造に従って、ファイルタイプが音声データファイルであるとされた場合は、ディレクトリ「VOICE」とし、またファイルタイプが静止画データファイルであるとされた場合は、ディレクトリ「DCIM」とする。
そしてステップF109に進んで、設定されたディレクトリ名を用いて、そのディレクトリ名及びファイル名でメモリカード70に対するアクセス処理を行なう。
【0097】
ステップF105でファイルタイプが指定されていないと判断された場合は、ステップF107でファイルタイプを判別する。例えば書込の際には、例えばアプリケーションソフトウエアに基づく処理上で作成/編集したファイル内容自体からファイルタイプを判別する。
そしてステップF108で、判別したファイルタイプに応じてディレクトリを設定する。上記同様に、例えば、ファイルタイプが音声データファイルであるとされた場合は、ディレクトリ「VOICE」とし、またファイルタイプが静止画データファイルであるとされた場合は、ディレクトリ「DCIM」とする。
そしてステップF109に進んで、設定されたディレクトリ名を用いて、そのディレクトリ名及びファイル名でメモリカード70に対するアクセス処理を行なう。
【0098】
以上のような処理が行われることで、ファイルアクセス要求の際にディレクトリ名が指定されていなかったり、或いはディレクトリ名がメモリカード70のファイルシステムにとって不適切であったとしても、適切なディレクトリ名が設定されてファイルアクセスが実行される。
従って、アプリケーションソフトウエアのプログラム上でメモリカード70のファイルシステムの規定が反映されていない場合や、或いはユーザーが勝手にディレクトリ名を指定したような場合であっても、ファイルシステムの規定は保たれ、メモリカード70に記録されるファイル構造は適切なものとなる。また言い換えれば、ユーザーやアプリケーションソフトウエアがファイルシステム規定を認識しなくとも、適切にファイルアクセスを実行できるものとなる。
【0099】
なお図20の処理は、ディレクトリ名が規定されているという前提で述べたが、ファイル名について、所定の規則で生成するように規定されるファイルシステムを存在する。その場合は、図20の処理をファイル名に対しても行うようにすればよい。
【0100】
以上、実施の形態としての情報処理装置の構成やファイルアクセス処理例を説明してきたが、本発明はこれらの例に限定されることなく、各種の変形例が考えられる。
また本発明を適用できる装置は、携帯型の情報処理装置のみでなく、多岐にわたるものである。
【0101】
【発明の効果】
以上の説明から理解されるように本発明によれば、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う際に、ディレクトリ名又はファイル名として規定に合致したものが指定されているか否かを判別し、規定に合致したディレクトリ名又はファイル名が指定されていなければ、規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行うようにしているため、ユーザーがファイルシステム規定を認識して操作を行う必要はなく、使用性が向上される。
またユーザーが規定を無視して任意にディレクトリ名、ファイル名を設定してしまうことも避けられるため、ファイルシステムとして適切な状態を保つことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態の情報処理装置の平面図、右側面図、左側面図、上面図である。
【図2】実施の形態の情報処理装置のブロック図である。
【図3】実施の形態の情報処理装置のOS構造の説明図である。
【図4】実施の形態の情報処理装置で扱うデータベース構造の説明図である。
【図5】実施の形態のメモリカードの外形形状を示す平面図、正面図、側面図、底面図である。
【図6】実施の形態のメモリカードの内部構造の説明図である。
【図7】実施の形態のファイルシステム処理階層の説明図である。
【図8】実施の形態のメモリカードの物理的データ構造の説明図である。
【図9】実施の形態のメモリカードの管理フラグの説明図である。
【図10】実施の形態のメモリカードにおけるデータ更新処理と物理アドレス及び論理アドレスの概念の説明図である。
【図11】実施の形態の論理−物理アドレス変換テーブルの管理形態の説明図である。
【図12】実施の形態の論理−物理アドレス変換テーブルの構造の説明図である。
【図13】実施の形態のメモリカードのフラッシュメモリ容量/ブロック数/1ブロックの容量/1ページの容量/論理−物理アドレス変換テーブルのサイズの関係の説明図である。
【図14】実施の形態のメモリカードのディレクトリ構造の説明図である。
【図15】FAT構造の説明図である。
【図16】FATによるクラスタ管理形態の説明図である。
【図17】ディレクトリの内容の説明図である。
【図18】サブディレクトリ及びファイルの格納形態の説明図である。
【図19】実施の形態の情報処理装置とメモリカードのインターフェース構成の説明図である。
【図20】実施の形態のメモリカードへのファイルアクセス処理のフローチャートである。
【符号の説明】
1 情報処理装置、2 表示部、3a,3b,3c 操作子、4 スピーカ、5 マイクロホン、6 撮像部、7 メモリスロット、8 IEEE1394端子、9 USB端子、10 ヘッドホン端子、11 ライン入力端子、12 ライン出力端子、21 システムコントローラ、22 CPU、23 フラッシュROM、24 D−RAM、25 USBインターフェース、26 IEEE1394インターフェース、27 表示制御部、28 メモリカードインターフェース、29 オーディオインターフェース、70 メモリカード[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus and an information processing method, and particularly relates to processing at the time of file access.
[0002]
[Prior art]
In information processing apparatuses such as personal computers and PDAs (Personal Digital Assistants), internal storage units provided in the apparatus include solid-state memories such as RAM and flash memory, and HDDs (Hard Disc Drives). Various storage media such as an optical disk, a magneto-optical disk, a magnetic disk, and a memory card can be used as a storage unit outside the apparatus.
[0003]
[Problems to be solved by the invention]
Incidentally, in some recording media accessed from these information processing apparatuses, a directory structure and a file name setting method are defined in a file system that performs access processing to the recording medium.
For example, a directory name is specified, and a data file is specified to be placed under a corresponding directory according to its type, or a basic structure as a file name is specified, for example, a user assigns an arbitrary file name It ’s like you ca n’t.
[0004]
In this case, for example, the user may mistakenly specify a directory name or file name at the time of file recording, which may cause inconveniences such as an error in processing and recording cannot be performed. Absent.
In addition, if a directory name or file name outside the specified rules is validated by a user or application software, it is inconvenient for the file system.
[0005]
[Means for Solving the Problems]
In view of such a problem, an object of the present invention is to realize a suitable processing method for a file system that performs access processing to a recording medium, in which a directory structure and a file name setting method are defined.
[0006]
For this reason, the information processing apparatus of the present inventionIn an information processing apparatus that performs file access to a recording medium based on a file system that defines a directory structure or a file name setting method, when a file access request is made, as the directory name or file name of the file access request, It is determined whether or not a directory name or file name that matches the above rules is specified, and if a directory name or file name that matches the above rules is not specified, the directory name or file name of the file access request is determined. Check the file type specification related to the file access request by extension, and if the file type is specified by the extension, the directory name or file name based on the above rules according to the specified file type Set file access If the file type is not specified by the above extension, the file type is determined from the file content itself, and the file name is accessed according to the specified directory type or file name based on the determined file type. Control means are provided.
[0007]
The information processing method of the present invention provides file access to a recording medium based on a file system in which a directory structure or a file name setting method is defined.As an information processing method of the information processing apparatus that performsWhen there is a file access requestDetermine whether a directory name or file name that matches the above rule is specified as the directory name or file name of the file access request, and if a directory name or file name that matches the above rule is not specified Check the specification of the file type related to the file access request by the directory name or the file name extension related to the file access request, and if the file type is specified by the extension, the specified file type If the file type is specified by the above extension and the file type is not specified by the above extension, the file type is determined from the file content itself, and the file type is determined. Depending on the above directory name or Perform file access by setting the Airu nameLike that.
[0008]
That is, according to the present invention, when a file is accessed to a recording medium, a directory name or a file name according to the definition of the file system is set so that the user does not have to be aware of the above definition.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in the following order. An example in which the recording medium on which the information processing apparatus according to the embodiment performs recording and reproduction is a memory card will be described.
1. Appearance example of information processing equipment
2. Configuration of information processing equipment
3. OS structure and database structure
4). Memory card
4-1 Appearance
4-2 Memory card terminals and internal structure
4-3 File system processing hierarchy
4-4 Physical data structure
4-5 Concept of physical address and logical address
4-6 Logical-physical address conversion table
4-7 Directory structure
5. FAT structure
6). Interface between memory card and information processing device
7). File access processing to memory card
[0010]
1. Appearance example of information processing equipment
An appearance example of the information processing apparatus of this example is shown in FIG.
The
Note that the present invention is not limited to a portable information processing device, but can be applied to any type of information processing device including a personal computer, and the recording medium on which the device records is not limited to a memory card, Other types of recording media such as an HDD, an optical disk, a magneto-optical disk, a RAM, a flash memory, and the like fixedly arranged in the apparatus may be used.
[0011]
FIGS. 1A, 1 </ b> B, 1 </ b> C, and 1 </ b> D are a plan view, a right side view, a left side view, and a top view as appearance examples of the
As shown in FIG. 1D, a
In the example of FIG. 1, since two
[0012]
In this
[0013]
On the
With these operators, the user can perform, for example, a power operation, a menu operation, a selection operation, a character input operation, and various other necessary operations.
Of course, these controls are only examples. That is, the number, type, and position of operators to be deployed can be considered variously.
[0014]
In addition, a
[0015]
Various terminals are formed for connection with various devices. For example, a
serial bus)
Various examples of the types, number, and positions of these terminals can be considered.
For example, a digital input / output terminal corresponding to an optical cable may be provided, or a SCSI connector, a serial port, an RS232C connector, or the like may be formed.
[0016]
2. Configuration of information processing equipment
FIG. 2 shows an internal configuration of the
As shown in the figure, in the
[0017]
The
The
[0018]
The
The
The
The D-
The application software installed in the D-
The application software has a user interface screen and performs drawing in a frame buffer secured in the D-
The drawn image data is sent to the
[0019]
Further, as described above, the
The
Of course, if an application program is recorded in the
Further, the
By detecting that the
The
[0020]
The
[0021]
The audio interface 29 is an interface part for audio data input / output from the
For example, analog audio signals input from the
[0022]
The
Similarly, the IEEE 1394
[0023]
The configuration of the
[0024]
3. OS structure and database structure
Next, the OS structure mounted on the
The application software is operated on the basic operation based on such an OS structure.
For the HAL, a hierarchy is added as one or a plurality of device drivers, and actual hardware (HW) is driven.
[0025]
Here, in particular, in the case of the
Based on the FAT library and the MS library, the memory drive is configured such that the
[0026]
In the
The “database” here is not simply stored data as in a normal database, but is formatted as a structure in which the database itself can manage the data. In this sense, “database” corresponds to “file”.
[0027]
FIG. 4 shows the database structure. That is, in the database, an area including a database name (DTB Name) and other information is formed as a header (DTB header), and a pointer table is arranged. The actual data recorded in the data area is in a state where positional management is performed based on the point information recorded in the pointer table.
[0028]
There are two types of databases having such a structure. For example, in general, one application software is composed of a plurality of files, and there are an execution file (***. Exe) and a data file (***. Data), and the execution file (***). .Exe) is a “resource database (***. Prc)”, and a data file (***. Data) is “database database (***. Dtb)”. .
[0029]
In the
In this specification, the term “file” is used, which is used in accordance with a general concept, and in the present embodiment, “file” means the database having the above structure. It becomes.
[0030]
4). Memory card
4-1 Appearance
Next, the
First, the outer shape of the
The
The case shown as a plan view, a front view, a side view, and a bottom view in FIG. 5 is formed of, for example, a plastic mold. Specific examples of the size include widths W11, W12, and W13 shown in the drawing as W11 = 60 mm, W12 = 20 mm and W13 = 2.8 mm.
[0031]
A
The upper left part of the housing in the planar direction is a
A
Further, on the bottom side, a
[0032]
In such a
A so-called FAT (File Allocation Table) system is used as a file system for data recording / reproduction.
[0033]
The writing speed is 1500 KByte / sec to 330 KByte / sec, the reading speed is 2.45 MByte / sec, the writing unit is 512 bytes, and the erase block size is 8 KB or 16 KB.
The power supply voltage Vcc is 2.7 to 3.6 V, and the serial clock SCLK is 20 MHz at maximum.
[0034]
4-2 Memory card terminals and internal structure
FIG. 6 shows the electrode structure of the
[0035]
Terminals T1 and T10 are detection voltage Vss terminals.
The terminal T2 is an input terminal for the serial protocol bus state signal BS.
Terminals T3 and T9 are power supply voltage Vcc terminals.
The terminal T4 is a data terminal, that is, an input / output terminal for a serial protocol data signal.
Terminals T5 and T7 are reserved.
The terminal T6 is a detection terminal, and the drive device side (the memory card interface of the information processing device 1) is used for detecting the insertion of the memory card.
The terminal T8 is an input terminal for the serial clock SCLK.
[0036]
FIG. 6 also shows the internal configuration of the
Inside the
As can be seen from the figure, the
[0037]
Further, the detection voltage Vss is supplied to the detection terminal T6, and the drive device side detects the terminal voltage of the detection terminal T6 with a resistor R as shown in the figure, so that the
[0038]
4-3 File system processing hierarchy
Subsequently, a format in a system using the
FIG. 7 shows a file system processing hierarchy of a system using the
As shown in this figure, the file system processing hierarchy includes a file management processing layer, a logical address layer, a physical address layer, and flash memory access in order under the application processing layer.
In this hierarchy, the file management processing layer is a so-called FAT (File Allocation Table).
Further, as can be seen from this figure, the concept of logical address and physical address is introduced in the file system of this example, which will be described later.
[0039]
4-4 Physical data structure
FIG. 8 shows a physical data structure of the
The storage area as the
[0040]
Then, as shown in FIG. 8A, this one segment is divided into 8 KB (kilobytes) or 16 KB as a fixed-length data unit called a block. In principle, since one segment is divided into 512 blocks, n = 511 for the block n shown in FIG. However, in the
[0041]
Of the
The remaining blocks are user blocks in which user data is stored.
[0042]
One block is divided into
Further, the number of pages in one block is 16 pages when the capacity of one block is 8 KB, and 32 pages when the capacity of one block is 16 KB.
[0043]
The page structure in the block shown in FIGS. 8D and 8E is common to the boot block and the user block.
In the
[0044]
As shown in FIG. 8B, the head boot block stores a header for
The second boot block is an area for backup as a boot block, as shown in FIG.
[0045]
The redundant part (16 bytes) shown in FIG. 8 (e) has the structure shown in FIG. 8 (f).
As shown in the figure, this redundant part is an overwrite area in which the first three bytes from the 0th byte to the second byte can be rewritten in accordance with the update of the data contents of the data area. In this overwrite area, the block status is stored in the 0th byte, and the data status is stored in the 1st byte (Block Flag Data). Further, the conversion table flag (Page Data Status1) is stored by using a predetermined upper bit of the second byte.
[0046]
As a general rule, the third to fifteenth bytes are areas in which information whose contents are fixed according to the data contents of the current page and cannot be rewritten is stored.
The third byte stores a management flag (Block Info) indicating access permission, copy prohibition designation, and the like.
A 2-byte area consisting of the fourth and fifth bytes stores a logical address (Logic Address) which will be described later.
The 6th to 10th bytes of the 5-byte area are used as a format reserve area, and the subsequent 2nd byte of the 11th and 12th bytes stores the distributed information ECC for performing error correction on the format reserve. It is considered as an area.
The remaining 13th to 15th bytes store data ECC for performing error correction on the data in the data area shown in FIG.
[0047]
The contents of the management flag stored in the third byte of the redundant part shown in FIG. 8 (f) are defined in
[0048]
[0049]
[0050]
Here, the relationship between the segments and blocks and the flash memory capacity will be described with reference to FIG. 13 (see the left three columns).
The flash memory capacity of the
In the case of 4 MB with the smallest capacity, one block is defined as 8 KB, and the number of blocks is 512. That is, 4 MB has a capacity of exactly one segment. And8MBIn the same way, the capacity of 1 block = 8 KB is defined similarly, and 2 segments = 1024 blocks. As described above, if 1 block = 8 KB, the number of pages in one block is 16.
However, with a capacity of 16 MB, it is allowed that both 8 KB and 16 KB exist as the capacity per block. For this reason, there are two types: 2048 blocks = 4 segments (1 block = 8 KB) and 1024 blocks = 2 segments (1 block = 16 KB). When 1 block = 16 KB, the number of pages in one block is 32 pages.
[0051]
In addition, the capacity of 32 MB, 64 MB, and 128 MB is defined as the capacity per block is only 16 KB. Therefore, 2048 blocks = 4 segments in 32 MB, 4096 blocks = 8 segments in 64 MB, and 8192 blocks = 16 segments in 128 MB.
[0052]
4-5 Concept of physical address and logical address
Next, based on the physical data structure of the flash memory as described above, the concept of physical addresses and logical addresses in the file system of this example will be described according to the data rewrite operation shown in FIG.
[0053]
FIG. 10A schematically shows four blocks extracted from a certain segment.
Each block is given a physical address. The physical address is determined according to the physical arrangement order of the blocks in the memory, and the relationship between a certain block and the physical address associated with the block remains unchanged. Here, for the four blocks shown in FIG. 10A, 105, 106, 107, and 108 are assigned as physical address values in order from the top. The actual physical address is represented by 2 bytes.
[0054]
Here, as shown in FIG. 10A, the blocks indicated by the
[0055]
The logical address is an address that is allocated so as to accompany the data written to the block. This logical address is an address used by a FAT file system described later.
FIG. 10A shows a state in which 102, 103, 104, and 105 are assigned as logical address values in order from the top to each of the four blocks. The logical address is actually expressed by 2 bytes.
[0056]
Here, it is assumed that the content is rewritten or partially erased from the state shown in FIG. 10A, for example, as an update of data stored in the
In such a case, in the file system of the flash memory, the updated data is not written again to the same block, but the updated data is written to an unused block.
That is, for example, as shown in FIG. 10B, the data at the
[0057]
Then, as shown as process (2), the
[0058]
In other words, the physical address is an address uniquely assigned to the block, and the logical address is an address unique to the write data in units of blocks that follow the data once written to the block. It can be seen that.
[0059]
By performing such block swap processing, it is possible to avoid repeated and concentrated access to a certain storage area (block), thereby extending the life of the flash memory having an upper limit on the number of rewrites. It becomes possible.
At this time, the logical address is handled as in the above process (2), so that even if there is a movement of the block written in the data before and after the update by the swap process of the block, from the FAT Will see the same address, and the subsequent accesses can be executed properly.
For the purpose of simplifying management for updating on a logical-physical address conversion table, which will be described later, block swap processing is defined as being completed within one segment. Conversely, block swap processing is not performed across segments.
[0060]
4-6 Logical-physical address conversion table
As can be seen from the description with reference to FIG. 10, the correspondence between the physical address and the logical address changes as a result of the block swap processing. Therefore, in order to realize access for writing and reading data to the flash memory, a logical-physical address conversion table indicating correspondence between physical addresses and logical addresses is required. In other words, the FAT refers to the logical-physical address conversion table, so that the physical address corresponding to the logical address specified by the FAT is specified, and the block indicated by the specified physical address can be accessed. It is. In other words, if there is no logical-physical address conversion table, it becomes impossible to access the flash memory by FAT.
[0061]
Conventionally, for example, when the
On the other hand, in this example, as described below, the logical-physical address conversion table is stored in the
[0062]
FIG. 11 conceptually shows a construction form of a logical-physical address conversion table stored in the
In other words, in this example, table information that stores a 2-byte physical address corresponding to the logical address in ascending order is constructed as a logical-physical address conversion table.
As described above, both the physical address and the logical address are expressed by 2 bytes. This is based on the fact that since there are 8192 blocks in the case of a flash memory with a maximum capacity of 128 MB, a maximum number of bits is required to cover the number of 8192 blocks.
Therefore, the physical address and the logical address illustrated in FIG. 11 are also expressed by 2 bytes in accordance with the actual.
However, here, these 2 bytes are expressed in hexadecimal. That is, “0x” indicates that the subsequent value is in hexadecimal notation. It should be noted that the notation indicating a hexadecimal number by “0x” is also used in the same way when noting a hexadecimal number in the following description. (However, in some drawings, “0x” is omitted to prevent complication of notation.)
[0063]
FIG. 12 shows a structural example of a logical-physical address conversion table based on the concept shown in FIG.
The logical-physical address conversion table is stored as shown in FIG. 12 for a certain block in the last segment of the flash memory.
First, as shown in FIG. 12A, among the pages into which the block is divided, a 2-page area consisting of
For example, if the flash memory has a capacity of 8 MB, it has 2 segments. Therefore, in addition to
[0064]
Thereafter, as the capacity of the flash memory increases, the allocation area of the logical-physical address conversion table for each segment is set for every subsequent two pages. If there is a maximum capacity of 128 MB, there are 16 segments. Therefore, at most, pages up to the segment 15 are allocated as areas of the logical-physical address conversion table. Therefore, in the flash memory with the maximum capacity of 128 MB,32A page is to be used, and as a page N shown in FIG.31It becomes.
As can be seen from the above description, the logical-physical address conversion table is managed for each segment.
[0065]
FIG. 12B shows an extracted data area for two pages as a structure of the logical-physical address conversion table per segment. That is, since the data area of one page is 512 bytes (see FIG. 8E), FIG. 12B shows a state where 1024 (= 512 × 2) bytes are expanded. .
[0066]
As shown in FIG. 12 (b), the 1024 bytes of the data area for the two pages is divided into two bytes, and the area for each two bytes is sequentially assigned to the
[0067]
Also, a total area of 32 bytes from the remaining 993 bytes to the last 1024 bytes is allocated as an area for storing the physical address of the surplus block. That is, the physical addresses of 16 surplus blocks can be managed. The surplus block here means, for example, a so-called work block set as an area for temporarily saving data to be rewritten when updating data in units of blocks.
[0068]
By the way, in spite of the fact that one segment is divided into 512 blocks, the table structure shown in FIG. 12 has a manageable number of blocks for
Therefore, in reality, it is sufficient to manage 496 blocks in order to manage blocks in which writing / erasing is effective.
[0069]
For the block in which the logical-physical address conversion table is stored in this manner, the data content of the management flag (see FIG. 9) in the redundant portion of each page forming the block is stored in
[0070]
For the block in which the logical-physical address conversion table is stored, if the contents of the logical-physical address conversion table are rewritten, the swap processing described above with reference to FIG. 10 is performed without exception. Therefore, the block in which the logical-physical address conversion table is recorded is indefinite, and it cannot be defined that the logical-physical address conversion table is stored in a specific block.
Therefore, the FAT accesses the flash memory and searches for a block in which the
The logical-physical address conversion table shown in FIG. 12 is stored, for example, when the
[0071]
Here, the relationship between the flash memory capacity and the size of the logical-physical address conversion table will be described with reference to FIG. 13 again.
As described above with reference to FIG. 11, the size of the logical-physical address conversion table for managing one segment is 1024 bytes for two pages, that is, 1 KB. Therefore, as shown in the rightmost column of FIG. 13, when the flash memory has a capacity of 4 MB (1 segment), the logical-physical address conversion table has a size of 1 KB. When the flash memory capacity is 8 MB (2 segments), the logical-physical address conversion table is 2 KB (4 pages).
When the capacity of the flash memory is 16 MB, the logical-physical address conversion table is 4 KB (8 pages) for 2048 blocks = 4 segments, and the logical-physical address conversion table is 2 KB (4 pages) for 1024 blocks = 2 segments. Page).
When the flash memory capacity is 32 MB (4 segments), the logical-physical address conversion table is 4 KB (8 pages), and when the flash memory capacity is 64 MB (8 segments), the logical-physical address conversion table is 8 KB (16 pages). When the flash memory has a maximum capacity of 128 MB (16 segments), the logical-physical address conversion table is 16 KB (32 pages).
[0072]
4-7 Directory structure
An example of a directory structure recorded in the
The main data that can be handled by the
[0073]
Although not shown, subdirectories, files (the database described above), folders, and the like are arranged under each directory, and take a so-called tree structure.
Of course, such a directory structure is merely an example, and a directory structure is actually formed according to the recording status of the
[0074]
5. FAT structure
As described in the file system hierarchy of FIG. 7, the file management process is performed by FAT.
That is, in order to realize recording / reproduction (data writing / reading) with respect to the
Here, the structure of the FAT will be described.
[0075]
FIG. 15 shows an outline of the management structure by FAT.
In this example, the FAT and the logical-physical address conversion table are stored in the
[0076]
As shown in the figure, the FAT management structure includes a partition table, a free area, a boot sector, a FAT, a copy of the FAT, a root directory, and a data area.
In the data area, unit data is shown as
In general, in FAT, the cluster size is 4K bytes as a standard, but this cluster size can be a power of 2 between 512 bytes and 32K bytes.
In the
[0077]
And on the left side of FIG. 15, x ... (x + m-1), (x + m) (x + m + 1) (x + m + 2) ... are shown as block numbers. For example, various data for constructing the FAT structure in each block are as follows. Will be remembered.
In practice, each piece of information is not necessarily stored in each physically continuous block.
[0078]
In the FAT structure, first, the start and end addresses of the FAT partition (maximum 2 Gbytes) are described in the partition table.
In the boot area, a so-called 12-bit FAT, 16-bit FAT, and FAT structure (size, cluster size, size of each area, etc.) are described.
[0079]
As will be described later, the FAT is a table indicating the link structure of clusters constituting each file, and the FAT is described in a subsequent area.
In the root directory, a file name, a leading cluster number, and various attributes are described. These descriptions use 32 bytes per file.
[0080]
In FAT, FAT entries and clusters have a one-to-one correspondence, and each cluster entry describes the link destination, that is, the number of the cluster that follows. That is, regarding a certain file formed of a plurality of clusters (= blocks), the first cluster number is first indicated by the directory, and the next cluster number is indicated in the entry of the first cluster in the FAT. Further, the next cluster number is indicated in the next cluster number entry. In this way, the cluster link is described in the FAT.
[0081]
FIG. 16 schematically shows the concept of such a link (the numerical value is a hexadecimal value).
For example, if there are two files “MAIN.C” and “FUNC.C”, the first cluster number of these two files is described in the directory as, for example, “002” and “004”.
For the file “MAIN.C”, the next cluster number “003” is described in the entry of the cluster number “002”, and the next cluster number “006” is described in the entry of the cluster number “003”. Further, assuming that the
As a result, the file “MAIN.C” is stored in the order of the clusters “002” → “003” → “006”. That is, assuming that the cluster number and the block number in the
[0082]
Similarly, the file “FUNC.C” is expressed by FAT as being stored in the cluster “004” → “005”.
[0083]
Note that for a cluster corresponding to an unused block, the entry is “000”.
[0084]
By the way, in the directory of each file stored in the area of the root directory, not only the top cluster number shown in FIG. 16 but also various data are described as shown in FIG.
That is, the file name, extension, attribute, modification time information, modification date information, leading cluster number, and file size are described in the number of bytes shown.
[0085]
Also, subdirectories that are lower layers of a certain directory are stored in the data area, not in the area of the root directory in FIG. That is, the subdirectory is treated as a file having a directory structure. For subdirectories, the size is unlimited, and an entry for itself and an entry for the parent directory are required.
[0086]
In FIG. 18, there is a file “DIR1” (attribute = directory: subdirectory) in a certain root directory, and further a file “DIR2” (attribute = directory: subdirectory) is included in the file “DIR1”. An example of the structure when the file “FILE” exists is shown.
That is, in the area of the root directory, the head cluster number as the file “DIR1” which is a subdirectory is shown, and the clusters X, Y, and Z are linked by the above-described FAT.
As can be seen from this figure, the subdirectories “DIR1” and “DIR2” are treated as files and incorporated in the FAT link.
[0087]
6). Interface between memory card and information processing device
A configuration of a serial interface system between the
As shown in FIG. 19, the
[0088]
The flash memory controller 80a performs data transfer between the
The data buffered in the
[0089]
On the side of the
The
The
The
[0090]
By the operation of each unit in the above configuration, read access / write access to the memory card 70 (flash memory 81) by the
[0091]
7). File access processing to memory card
Subsequently, a file access process for writing / reading a data file (database database) and an execution file (resource database) to / from the
[0092]
The user can execute processing based on the application software by starting arbitrary application software in the
Here, when a file access is made to the
[0093]
Note that the processing of FIG. 20 is processing performed by the
Further, application software for access for executing such file access processing may be formed and may be always activated in the
[0094]
When a file access request for the
If a directory is designated, it is determined in step F103 whether the directory name is an appropriate directory name on the file system of the
If it is determined that the directory name is appropriate, the process proceeds to step F109, and an access process (write or read process) to the
[0095]
However, if the directory name is not specified at the time of the file access request, or if it is specified but the directory name is not appropriate in accordance with the rules of the file system, the process proceeds to step F105.
Then, it is confirmed whether or not a file type is specified for the file having the access request. For example, it is determined whether or not there is information specifying the file type based on an extension added to the file name.
[0096]
If the file type has been designated, a directory is set in accordance with the designated file type in step F106.
For example, according to the directory structure of FIG. 14, when the file type is an audio data file, the directory is “VOICE”, and when the file type is a still image data file, the directory is “DCIM”. .
Then, the process proceeds to step F109, and the access processing to the
[0097]
If it is determined in step F105 that the file type is not specified, the file type is determined in step F107. For example, at the time of writing, for example, the file type is determined from the file content itself created / edited in the process based on the application software.
In step F108, a directory is set according to the determined file type. Similarly to the above, for example, when the file type is an audio data file, the directory is “VOICE”, and when the file type is a still image data file, the directory is “DCIM”.
Then, the process proceeds to step F109, and the access processing to the
[0098]
By performing the processing as described above, even if the directory name is not specified in the file access request or the directory name is inappropriate for the file system of the
Therefore, even if the file system specification of the
[0099]
The processing in FIG. 20 has been described on the assumption that a directory name is defined, but there is a file system that is defined so that a file name is generated according to a predetermined rule. In that case, the process of FIG. 20 may be performed on the file name.
[0100]
As described above, the configuration of the information processing apparatus as the embodiment and the file access processing examples have been described. However, the present invention is not limited to these examples, and various modifications can be considered.
The apparatus to which the present invention can be applied is not only a portable information processing apparatus but also a wide variety.
[0101]
【The invention's effect】
As understood from the above description, according to the present invention, when a file access is made to a recording medium based on a file system in which a directory structure or a file name setting method is specified, the directory name or file name is specified. It is determined whether or not a matching item is specified. If a directory name or file name that matches the specification is not specified, the directory name or file name based on the specification is set to perform file access. Therefore, it is not necessary for the user to recognize the file system rules and perform an operation, and usability is improved.
Also, it is possible to prevent the user from ignoring the rules and arbitrarily set the directory name and file name, so that the appropriate state as the file system can be maintained.
[Brief description of the drawings]
FIG. 1 is a plan view, a right side view, a left side view, and a top view of an information processing apparatus according to an embodiment of this invention.
FIG. 2 is a block diagram of the information processing apparatus according to the embodiment.
FIG. 3 is an explanatory diagram of an OS structure of the information processing apparatus according to the embodiment;
FIG. 4 is an explanatory diagram of a database structure handled by the information processing apparatus according to the embodiment.
FIG. 5 is a plan view, a front view, a side view, and a bottom view showing the outer shape of the memory card of the embodiment.
FIG. 6 is an explanatory diagram of an internal structure of the memory card according to the embodiment.
FIG. 7 is an explanatory diagram of a file system processing hierarchy according to the embodiment;
FIG. 8 is an explanatory diagram of a physical data structure of the memory card according to the embodiment.
FIG. 9 is an explanatory diagram of a management flag of the memory card according to the embodiment.
FIG. 10 is an explanatory diagram of the concept of data update processing, physical address, and logical address in the memory card of the embodiment.
FIG. 11 is an explanatory diagram of a management form of a logical-physical address conversion table according to the embodiment.
FIG. 12 is an explanatory diagram of a structure of a logical-physical address conversion table according to the embodiment.
FIG. 13 is an explanatory diagram of a relationship among flash memory capacity / number of blocks / capacity of one block / capacity of one page / size of a logical-physical address conversion table of the memory card according to the embodiment;
FIG. 14 is an explanatory diagram of a directory structure of the memory card according to the embodiment.
FIG. 15 is an explanatory diagram of a FAT structure.
FIG. 16 is an explanatory diagram of a cluster management form by FAT;
FIG. 17 is an explanatory diagram of the contents of a directory.
FIG. 18 is an explanatory diagram of a storage form of subdirectories and files.
FIG. 19 is an explanatory diagram of an interface configuration between the information processing apparatus and the memory card according to the embodiment;
FIG. 20 is a flowchart of file access processing to the memory card according to the embodiment.
[Explanation of symbols]
DESCRIPTION OF
Claims (2)
ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、
上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、
上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、
上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う制御手段を備えた情報処理装置。In an information processing apparatus that performs file access to a recording medium based on a file system that defines a directory structure or a file name setting method,
When there is a file access request, it is determined whether a directory name or file name that meets the above-mentioned rules is specified as the directory name or file name of the file access request.
If the directory name or file name that matches the above rules is not specified, confirm the specification of the file type related to the file access request by the extension of the directory name or file name related to the file access request,
If the file type is specified with the above extension, set the directory name or file name based on the above rules according to the specified file type and perform file access,
If the file type is not specified by the above extension, the control means for determining the file type from the file content itself, and setting the directory name or file name based on the above specification according to the determined file type and performing file access An information processing apparatus comprising:
上記情報処理装置の制御手段が、
ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、
上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、
上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、
上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う情報処理方法。As an information processing method of an information processing apparatus that performs file access to a recording medium based on a file system in which a directory structure or a file name setting method is defined ,
The control means of the information processing apparatus
When there is a file access request, it is determined whether a directory name or file name that meets the above-mentioned rules is specified as the directory name or file name of the file access request.
If the directory name or file name that matches the above rules is not specified, confirm the specification of the file type related to the file access request by the extension of the directory name or file name related to the file access request,
If the file type is specified with the above extension, set the directory name or file name based on the above rules according to the specified file type and perform file access,
If the file type is not specified by the above extension, the file type is determined from the file content itself, and the directory name or file name based on the above rules is set according to the determined file type to perform file access Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000196283A JP4403338B2 (en) | 2000-06-26 | 2000-06-26 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000196283A JP4403338B2 (en) | 2000-06-26 | 2000-06-26 | Information processing apparatus and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002007184A JP2002007184A (en) | 2002-01-11 |
JP4403338B2 true JP4403338B2 (en) | 2010-01-27 |
Family
ID=18694811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000196283A Expired - Fee Related JP4403338B2 (en) | 2000-06-26 | 2000-06-26 | Information processing apparatus and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4403338B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004266357A (en) * | 2003-01-08 | 2004-09-24 | Sony Corp | Editing device and image display unit |
JP5153054B2 (en) * | 2003-10-22 | 2013-02-27 | オリンパス株式会社 | File generation method and file search method |
-
2000
- 2000-06-26 JP JP2000196283A patent/JP4403338B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002007184A (en) | 2002-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4085478B2 (en) | Storage medium and electronic device system | |
RU2242805C2 (en) | Recording method, control device and recording device | |
US7039754B2 (en) | Detachably mounted removable data storage device | |
JP3072722B2 (en) | Data management device and data management method using flash memory and storage medium using flash memory | |
US6278678B1 (en) | Editing apparatus, editing method, and recording medium | |
US20050080985A1 (en) | Data storage device | |
WO2003056432A1 (en) | Memory device and recording/reproducing apparatus using the same | |
US6662269B1 (en) | Data rewriting apparatus, control method, and recording medium | |
JP2008198208A (en) | Operation method for host data processing device, host data processing device, and data storage device | |
JP2001325128A (en) | Method for managing file and recording or reproducing device | |
JP2001325134A (en) | Directory setting method and recorder | |
JP3928724B2 (en) | Recording medium recording control method and recording medium recording control apparatus | |
JP2011138221A (en) | Semiconductor device and memory system | |
JP4403338B2 (en) | Information processing apparatus and information processing method | |
JP4441968B2 (en) | Recording method, management method, and recording apparatus | |
JP2002007204A (en) | Device and method for information processing | |
JP2001331328A (en) | Information processor and its method | |
JP2001331280A (en) | Information processor and information processing method | |
JP4474716B2 (en) | Editing device, editing method | |
JP2001325127A (en) | Access method and recording or reproducing device | |
JPH11120044A (en) | Data processor, data processing method, data processing system and recording medium | |
JP2002007179A (en) | Information processor and file system | |
JP3620241B2 (en) | File management apparatus, file management method, recording medium, and file management system | |
JP4200362B2 (en) | Recording medium recording control method, recording control apparatus, and electronic apparatus | |
JP2002007194A (en) | Information processing method and information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090721 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090831 |
|
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: 20091006 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091019 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |