JP4667014B2 - 記憶管理装置及びその制御方法 - Google Patents

記憶管理装置及びその制御方法 Download PDF

Info

Publication number
JP4667014B2
JP4667014B2 JP2004334805A JP2004334805A JP4667014B2 JP 4667014 B2 JP4667014 B2 JP 4667014B2 JP 2004334805 A JP2004334805 A JP 2004334805A JP 2004334805 A JP2004334805 A JP 2004334805A JP 4667014 B2 JP4667014 B2 JP 4667014B2
Authority
JP
Japan
Prior art keywords
cluster
write
data
file
block
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
Application number
JP2004334805A
Other languages
English (en)
Other versions
JP2006146505A (ja
Inventor
浩義 大島
克己 飯島
陽次郎 田川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004334805A priority Critical patent/JP4667014B2/ja
Priority to US11/271,479 priority patent/US7523280B2/en
Publication of JP2006146505A publication Critical patent/JP2006146505A/ja
Application granted granted Critical
Publication of JP4667014B2 publication Critical patent/JP4667014B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/064Management of blocks
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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]
    • 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

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)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶媒体のデータ記憶を管理する記憶管理装置及びその制御方法に関するものである。
近年、固定ディスクや着脱可能記憶媒体、例えばSD(SecureDigitail)メモリカード等が、パーソナルコンピュータ、PDA、携帯電話、デジタルスチルカメラ等で、ファイルを格納するためのストレージデバイスとして用いられている。また、光磁気ディスク等も広く利用されている。
これら記憶装置は、一度きりの書き込みのみ許すもの、例えば一度データを焼き付けたCD−R等を除いて、記憶データを物理的に保護することは困難であり、記憶データの保護は大部分がユーザの注意に頼っていた。それは、リード/ライト可能な状態にある記憶装置内データを、特定のソフトウェア(例えば、ファイルシステム等)により管理し、プロテクトしていても、他のソフトウェアからは書換えや削除が可能だからである。特に、リード/ライト可能な着脱可能記憶媒体は、装着した機器によりデータ管理ソフトウェアが決定されるため、ソフトウェア依存のプロテクト方法では、データ保護の実現が難しい。さらに、いずれの記憶装置においても、記憶装置のフォーマットを行うと、データは全て削除されてしまう。
しかし近年、データ保護機能を具備する記憶装置が登場してきた。例えばSDメモリカード等は、記憶媒体のデータ領域全体にライトプロテクトをかける全体ライトプロテクト機能を具備している。これは、記憶媒体の側面のスイッチにより、ライトプロテクトON及びOFFを切り替えることにより、記憶媒体内データ全てをライトプロテクトすることができるという機能である。また、SDメモリカードは、記憶媒体のデータ領域一部分にライトプロテクトをかける部分ライトプロテクト機能を具備している。これは、記憶媒体内データ領域を、例えば2KBといったWPブロックと呼ばれる単位で分割し、該WPブロック単位でライトプロテクトすることができるという機能である。また、クラスタ単位での記憶データの消去を管理する技術は、特許文献1に開示されている。
特開2001−188701号公報
しかしながら、前記全体ライトプロテクト機能では、一つのファイルを保護するためにも、記憶媒体全体がライトプロテクトしなくてはならないため、非効率かつ使い勝手が悪いという問題があった。
また、前記部分ライトプロテクト機能では、ファイルの先頭がWPブロックの先頭と一致していなければ、無駄にデータ領域を消費してしまうという問題があった。さらに、例えばFATファイルシステムによりデータを格納する場合、ファイルはクラスタ単位で区切られて、不連続な領域に格納されることがあるため、ファイルの位置を特定するFAT(FileAllocationTable)やディレクトリエントリがフォーマットやFAT更新等により変更されてしまうと、ファイルを復旧することが不可能になってしまうという問題もあった。
本発明は、記憶媒体に対する無駄のないブロック単位でのライトプロテクト及びその復旧が可能となる記憶管理装置及びその制御方法を提供することを目的とする。
上記目的を達成するために、本発明の記憶管理装置は、記憶媒体のデータ領域におけるデータ単位であるクラスタを用いて、前記記憶媒体のデータ記憶を管理する記憶管理装置であって、データを、複数のセクタからなり、かつ前記クラスタのサイズとは異なる所定サイズのブロック単位でライトプロテクトするライトプロテクト手段と、前記ライトプロテクト手段によりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止手段と、前記クラスタのサイズと前記クラスタの開始位置操作することにより、前記クラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界とを一致させるブロック境界一致手段と、を具備することを特徴とする。
本発明によれば、記憶媒体に対する無駄のないブロック単位でのライトプロテクト及びその復旧が可能となる。
以下、図面を参照して本発明の実施の形態を説明する。
(第1の実施形態)
図1は第1の実施形態におけるカメラシステムの構成を表すブロック図である。本カメラシステムは、電子カメラと、これに着脱可能な外部記憶媒体として、SDメモリカード17、PC通信インターフェース19、及びPC通信インターフェース19を介して電子カメラと通信可能に接続されたパーソナルコンピュータ22から構成される。
1はレンズであり、2はレンズ1を通った光を電気信号として出力するCCDユニットである。3はA/Dコンバータであり、CCDユニット2からのアナログ信号をデジタル信号へ変換する。4はSSGユニットであり、CCDユニット2とA/Dコンバータ3に同期信号を供給する。5はCPUであり、本カメラシステムにおける各種の制御を実現する。
6は信号処理アクセラレータであり、信号処理を高速に実現する。7は電池であり、8は電池7よりの電力を電子カメラ全体へ供給するためのDC/DCコンバータである。9は電源コントローラユニットであり、DC/DCコンバータ8をコントロールする。10はパネル操作・教示装置・電源のコントロールを行うサブCPUである。11はユーザへ各種の情報を表示する装置であり、液晶パネル等が用いられる。12はコントロールパネルであり、ユーザが直接操作するレリーズスイッチ、及びメニューボタンを含む。
13はROMであり、OS等のシステムプログラムを格納する。14はDRAMであり、本電子カメラの主記憶であり。15はフラッシュROMであり、内蔵記憶媒体として使用する。16はSDカード等のカーとインターフェース部、17はSDメモリカードの外部記憶媒体である。また、18はDMAコントローラ、19はストロボである。
この電子カメラの撮影時の動作について説明する。コントロールパネル12のレリーズスイッチをユーザが押すと、CPU5がそのことを検出して撮影シーケンスを開始する。以下の動作は全てCPU5によるコントロールで行われることを前提とする。
さて、レリーズスイッチの押下により、SSG4がCCD2を駆動する。CCD2から出力されるアナログ信号は、A/Dコンバータ3でデジタル信号へ変換される。A/Dコンバータ3の出力は、DMAコントローラ18によってDRAM14へDMA転送される。1フレーム分のDMA転送が終了した時点でCPU5は、信号シーケンスを開始する。
信号処理シーケンスでは、フラッシュROM15から信号処理プログラムを主記憶(DRAM14)上に読み出し、主記憶上のデータを信号処理アクセラレータ6へ転送し信号処理を行う。ただし、信号処理アクセラレータ6は信号処理の全てを行うわけではなく、CPU5で行う処理の特に時間のかかる処理などを助ける演算回路であり、CPU5の処理ソフトウェアと連携して動作する。信号処理の一部または全部が終了すると画像ファイルとして、カードインターフェース16を介して、SDメモリカード17へ記録する。このとき、CPU5もしくは信号処理アクセラレータ6は、記録するファイルフォーマットが圧縮処理を必要とするのであれば画像ファイルの圧縮も行う。
図2は、図1に示したSDメモリカード17に記録される画像ファイルシステムの階層構造を示す概念図であり、例えば階層L1〜L4で構成される。
図2において、最上位の階層L1はユーザアプリケーションで、電子カメラ内部で起動するソフトウェアであり、ファイルをファイル名でオープンして読み書きした後クローズする。階層L2は、ファイルシステムAPI層で、ユーザアプリケーションからファンクションコールによって呼び出される。階層L2がドライブ名とファイルシステムを関連付けて管理している。各ドライブ毎にファイルシステムアーキテクチャ層(階層L3)をマウントするように構成しているため、複数のファイルシステムアーキテクチャ(例えばFAT、HP−FS、NFS、NTFS等)を混在されることが可能となっている。なお、ファイルシステムアーキテクチャ層が実際のファイル管理を行う部分である。最下位の階層L4がブロックデバイス層である。
ファイルシステムアーキテクチャ層がブロックデバイス層の提供するサービスを利用してファイル入出力を実現している。なお、ブロックデバイス層では、データを例えば512バイト等のセクタという単位で管理している。該ブロックデバイス層でデバイス毎の入出力制御の違いと、ヘッドやシリンダ等のパラメータの違いを吸収している。これにより、同時に複数の種類のデバイスを混在させたカメラシステムを構築することが出来る。
第1の実施形態におけるカメラシステムでは、SDメモリカード17のブロックデバイスがファイルシステムへ提供するサービスは、(A.1)論理的なセクタ番号で指定したセクタからのデータの読み出し、ならびに(A.2)論理的なセクタ番号で指定したセクタへのデータの書き込みである。
ここで、記憶媒体のデータ構造及びFATファイルシステムについて説明する。図5は、記憶媒体のデータ構造を示している。図5において、501はMBR(Master Boot Record)であり、記憶媒体の先頭から512バイトのデータサイズを占め、図6に示す構造を持っている。該記憶媒体が起動可能な記憶媒体である場合は、601のブートストラップローダ、該記憶媒体の起動プログラムを所持している。起動可能ではない場合は、ブートストラップローダを持っていない。ブートストラップローダ601は、MBR501の先頭から446バイトまでを占める。602はパーティションテーブルであり、該記憶媒体のパーティション502〜50Nの情報が収めら、MBR501の447バイト目から64バイト、510バイト目までに格納されている。
パーティションとは、該記憶媒体の区分けを意味し、一つのパーティションは、一つのファイルシステムにより管理される。一つの記憶媒体は、少なくとも一つ以上のパーティションによって構成される。パーティションテーブル602には、各パーティションの物理的な開始位置、終了位置、論理的な開始位置、総セクタ数が収められている。例外的にパーティションが一つの場合、MBRを持たないことがある。その場合は、記憶媒体全体を一つのパーティションとみなす。
続いて、FATファイルシステムで論理フォーマットされたパーティションのデータ構造を説明する。図7は、FAT16ファイルシステムによりフォーマットした場合のデータ構造を示している。701はPBR(Partition Boot Record)で、図8に示す構造を持っている。図8の801はジャンプ命令で、IPL(Initial Program Loader)803へのジャンプ命令が格納されている。802はBPB(BIOS Parameter Block)でファイルシステムが扱う該パーティションに特化した情報が記録されている。図9は該BPBに含まれるパラメータを示している。803はIPLでこのパーティションの起動プログラムが収められている。
図7の702、及び703はFAT(File Allocation Table)で、ユーザデータ領域705に格納されているファイルの位置情報が収められている。FATファイルシステムは、FAT702及び703により、パーティションに格納されているファイルの位置情報を取得する。そのため、ユーザデータ領域にファイルが格納されていても、FAT702及び703に該ファイルの位置情報が格納されていなければ、ファイルとして認識できない。FAT702及び703には、全く同じデータが収められており、片方はバックアップとして利用する。704はルートディレクトリエントリで、ルートディレクトリに格納されたファイルの管理情報が収められている。705はユーザデータ領域でファイルの本体が格納されている。
第1の実施形態におけるSDメモリカード17は、前記MBRを持たず、データ領域全体が一つのパーティションを構成し、該パーティションは、FAT16ファイルシステムによりフォーマットされ、管理されている。ここで、SDメモリカード17に対するファイルの書き込み、読み出し動作について説明する。
SDメモリカード17内のデータが、図10に示す状態になっているものとする。図10において、1001はルートディレクトリであり、1002はディレクトリ、1003、1004及び1005はファイルである。ディレクトリ1002、ファイル1004及び1005は、ルートディレクトリ1001に格納されている。また、ファイル1003は、ディレクトリ1002に格納されている。
このときのSDメモリカード17内データ構造を、図11に示す。図11において、図10と同一のものは、同じ番号を振っている。ただし、ディレクトリはデータ構造においてはディレクトリエントリと呼ぶ。1101、1102、及び1103は、エントリアイテムであり、ルートディレクトリ1001内に格納されているディレクトリ1002及びファイル1004、1005の格納場所を示している。同じくエントリアイテム1104は、ディレクトリ1002に格納されているファイル1003の格納場所を示している。
ディレクトリエントリ及びファイルは、前記BPB内パラメータ、クラスタサイズ(図9の903)が示すサイズ、例えば8KB等の単位で格納されている。ディレクトリエントリ、及びファイルは、1クラスタ以上のデータ量を持つ場合は、複数のクラスタにまたがって格納される。クラスタの使用状況、及びクラスタ同士のリンク情報は、前記FATに格納されている。ファイル1003は、クラスタ1111、及び1112にまたがって格納されている。連続したクラスタに格納されるか、不連続のクラスタに格納されるかは、SDメモリカード17内のクラスタ使用状況によって決定される。
ファイルデータを読み出すファイル読み出し手段を、ディレクトリ1002に格納されている、ファイル1003を読み出す場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。ただし、ディレクトリ1002のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
図12に前記ファイル読み出し手段をフローチャートで示している。先ず、ファイルシステムソフトウェアは、ステップS1201でディレクトリ1002のクラスタをカレントクラスタとし、ステップS1202でカレントクラスタの先頭から、ファイル1003のエントリアイテムを検索する。続いて、ステップS1203でエントリアイテムを発見したかを判断し、発見できなかった場合は、ステップS1204でカレントクラスタのリンク情報を前記FATから取得する。該リンク情報を基に、ステップS1205でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップS1206で、リンク先クラスタを新たなカレントクラスタとし、ステップS1202へ戻り、繰り返す。
ステップS1203で、ファイル1003のエントリアイテムを発見した場合は、ステップS1207で該エントリアイテムのリンク先クラスタの情報を前記FATから読み出す。該情報は、該クラスタの使用状況及び、リンク状況である。該情報を基に、ステップS1208で該クラスタの使用状況を確認する。該クラスタが使用されている場合は、ステップS1209で該クラスタのデータを読み出し、ステップS1210で該クラスタがリンクされているかを判断する。リンクされていると判断した場合は、ステップS1207に戻り、読み出し動作を繰り返す。リンクされていないと判断した場合は、正常終了する。ステップS1205でリンクされていなかった場合、及びステップS1208で未使用と判断した場合は、ファイルが存在しない、もしくはファイルが壊れていると判断し、エラー終了する。
ファイルデータを書き込むファイル書き込み手段を、ディレクトリ1002に対し、ファイルを作成し、書き込みを行う場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。ただし、ディレクトリ1002のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
図13に前記ファイル書き込み手段をフローチャートで示している。ステップS1301でディレクトリ1002のディレクトリエントリが格納されたクラスタをカレントクラスタとし、ステップS1302でカレントクラスタのディレクトリエントリアイテムを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップS1303で発見したかを判断し、発見できなかった場合は、ステップS1304でカレントクラスタのリンク情報を取得する。該リンク情報を基に、ステップS1305でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップS1306で、リンク先クラスタを新たなカレントクラスタとし、ステップS1302へ戻る。
ステップS1305でリンクされていなかった場合は、新たに空きクラスタを、ディレクトリ1002のディレクトリエントリ領域としてリンクさせ拡張する。先ず、ステップS1307で、前記FATを先頭から順に読み出し、空きクラスタを検索する。ステップS1308で空きクラスタを発見したかを判断し、発見した場合は、ステップS1309でカレントクラスタを発見した空きクラスタへリンクし、空きクラスタはリンクしないようにFATを修正する。さらに、カレントクラスタを発見した空きクラスタに変更する。
ステップS1303でエントリアイテムの空きを発見した場合、及びステップS1309でFATを修正した場合は、ステップS1310でファイルデータ書き込み領域の有無を調べるため、前記FATを先頭から順に読み出し、空きクラスタを検索する。さらに、ステップS1311で、空きクラスタを発見したかを判断し、発見した場合は、ステップS1312で該クラスタへのリンク情報を持ったエントリアイテムを、カレントクラスタのディレクトリエントリに対し追加書き込みを行う。ステップS1309で新たなクラスタをリンクさせた場合は、カレントクラスタの先頭にエントリアイテムを書き込む。続いて、ステップS1313で該クラスタにファイルデータを1クラスタ分書き込み、ステップS1314でまだ書き込まれていないファイルデータがあるかを判断する。まだファイルデータがあった場合は、ステップS1315で再び前記FATから空きクラスタを検索する。ステップS1316で空きクラスタを発見したかを判断し、発見した場合は、ステップS1313に戻り書き込み動作を繰り返す。ステップS1314で、もう全てのファイルデータの書き込みが完了したと判断した場合、ステップS1317で、ファイルデータを書き込んだクラスタを順にリンクさせ、最後のクラスタはリンクさせないように、前記FATの更新を行い、正常終了する。ステップS1308、ステップS1310、及びステップS1315で空きクラスタを発見できなかった場合は、エラー終了する。
ファイルデータを削除するファイル削除手段を、ディレクトリ1002内のファイル1003を削除する場合の動作を例にとり説明する。データの読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。ただし、ディレクトリ1002のディレクトリエントリが格納されているクラスタ番号はわかっているものとする。
図14に前記ファイル削除手段をフローチャートで示している。先ず、ファイルシステムソフトウェアは、ステップS1401でディレクトリ1002のクラスタをカレントクラスタとし、ステップS1402でカレントクラスタの先頭から、ファイル1003のエントリアイテムを検索する。続いて、ステップS1403でエントリアイテムを発見したかを判断し、発見できなかった場合は、ステップS1404でカレントクラスタのリンク情報を前記FATから取得する。該リンク情報を基に、ステップS1405でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップS1406で、リンク先クラスタを新たなカレントクラスタとし、ステップS1402へ戻り、繰り返す。ステップS1403で、ファイル1003のエントリアイテムを発見した場合は、ステップS1407で該エントリアイテムに無効データを書き込み、ステップS1408でFATを更新し、ファイル1003が使用していたクラスタ全てを未使用領域にし、正常終了する。ステップS1405でリンクされていなかった場合は、ファイルが存在しないと判断し、エラー終了する。
以下、SDメモリカードのライトプロテクト機能について説明する。SDメモリカードには、WPブロックと呼ばれる単位でデータ領域の一部分をライトプロテクトする機能が具備されている。WPブロックのサイズは、1セクタ〜2の14乗セクタまでの値がとられ、セクタサイズとともに、カード固有の値となっている。WPブロックは、図19に示すように、データ領域の先頭から重なることなく固定で割り付けられ、各WPブロックには、一意にWPブロックアドレスが割り当てられている。
WPブロックに対する操作には、(B.1)指定WPブロックにライトプロテクトをかける操作、(B.2)指定WPブロックにかけられているライトプロテクトを解除する操作、ならびに(B.3)指定WPブロックがライトプロテクトされているかの状態を参照する操作がある。各操作は、SDカードドライバがSDメモリカードへコマンドを送信し、該コマンドをSDメモリカード内コントローラが処理することで行われる。各操作について説明する。
図15は、前記(B.1)の操作をフローチャートで示した図である。まず、ステップS1501で前記SDカードドライバは、SDメモリカード17へライトプロテクトを要求するコマンドを送信する。該コマンド内には、ライトプロテクトをかけるWPブロックのWPブロックアドレスが含まれている。該コマンドを受信したSDメモリカード内コントローラは、ステップS1502で、指定WPブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップS1503で指定WPブロックアドレスのWPブロックが現在ライトプロテクトされているかを判定する。現在ライトプロテクトされていないと判定した場合は、ステップS1504で指定WPブロックアドレスのWPブロックにライトプロテクトをかけ、正常終了する。ステップS1503で現在ライトプロテクトされていると判定した場合は、その時点で正常終了する。ステップS1502で指定WPブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
図16は、前記(B.2)の操作をフローチャートで示した図である。まず、ステップS1601で前記SDカードドライバは、SDメモリカード17へライトプロテクト解除を要求するコマンドを送信する。該コマンド内には、ライトプロテクトを解除するWPブロックのWPブロックアドレスが含まれている。該コマンドを受信したSDカード内コントローラは、ステップS1602で、指定WPブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップS1603で指定WPブロックアドレスのWPブロックが現在ライトプロテクトされているかを判定する。現在ライトプロテクトされていると判定した場合は、ステップS1604で指定WPブロックアドレスのWPブロックのライトプロテクトを解除し、正常終了する。ステップS1603で現在ライトプロテクトされていないと判定した場合は、その時点で正常終了する。ステップS1602で指定WPブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
図17は、前記(B.3)の操作をフローチャートで示した図である。まず、ステップS1701で前記SDカードドライバは、SDメモリカード17へライトプロテクト状態参照を要求するコマンドを送信する。該コマンド内には、ライトプロテクト状態を参照するWPブロックのWPブロックアドレスが含まれている。該コマンドを受信したSDカード内コントローラは、ステップS1702で、指定WPブロックアドレスが有効な範囲内であるかを判定する。有効な範囲内であると判定した場合は、ステップS1703で指定WPブロックアドレスのWPブロックが現在ライトプロテクトされているかを判定し、その結果をレスポンスに載せ、返信する。ステップS1703における判定がいずれの場合でも、正常終了する。ステップS1702で指定WPブロックアドレスが有効な範囲外であると判定した場合は、エラー終了する。
以下、第1の実施形態におけるSDメモリカード17のデータ構造について説明する。図18にSDメモリカード17の初期状態を示している。図18において、1801はPBR、1802はFAT、1803はルートディレクトリエントリである。また、1804はプロテクトファイル格納用のディレクトリエントリであるプロテクトディレクトリエントリで、ルートディレクトリエントリの直ぐ後に位置するクラスタである。該クラスタは、クラスタ番号、『2』番となる。該プロテクトディレクトリエントリには、ライトプロテクトがかけられている。また、該プロテクトディレクトリエントリはリンクすることはない。そのため、プロテクトディレクトリに格納できるファイル数は制限される。1805は空きクラスタである。該クラスタは、クラスタ番号『3』番であり、前記FATを修正し、使用済みクラスタとなっている。該クラスタは、後述するプロテクトファイル復旧手段において、クラスタのサイズを特定するために利用する。
以下、第1の実施形態における、本発明の第1の特徴であるWPブロック境界一致手段について説明する。該WPブロック境界一致手段とは、クラスタ単位でライトプロテクトを実現するため、クラスタサイズを前記WPブロックサイズの整数倍のサイズにし、かつクラスタ境界と前記WPブロック境界を一致させる手段である。前記カメラシステムでSDメモリカード17をフォーマットすると、該WPブロック境界一致手段により、クラスタ境界と前記WPブロック境界が一致した状態でフォーマットされる。SDメモリカード17は、前記カメラシステムでフォーマットされているものとする。
クラスタ境界は、クラスタ開始位置とクラスタサイズによって決定する。一方WPブロックは、SDメモリカード17固有のサイズであり、可変ではない。そのため、クラスタの開始位置とクラスタサイズをWPブロックに合わせることで境界を一致させる。クラスタ開始位置は、ルートディレクトリエントリの直後であり、図23に示す式で決定する。図23において、2301はパーティションの開始アドレスであり、本実施形態においては先頭アドレス『0』である。2302はリザーブセクタ数、2303はセクタサイズ、2304はFATサイズ、2305はFATの数、ならびに2306はルートディレクトリエントリ数であり、前記BPBのパラメータに含まれている。このとき、図23の式で導かれる値、クラスタ開始位置アドレスが前記WPブロックサイズの整数倍になるようにパラメータを当てはめる。さらに、クラスタサイズは、前記BPBのパラメータであるため、クラスタサイズが前記WPブロックの整数倍になるように、パラメータを当てはめる。前記カメラシステムは、このようにして作成したBPBを基にフォーマットを行うことで、クラスタ境界と前記WPブロックの境界を一致させた状態でのフォーマットを実現している。
具体的な数値を挙げて説明する。SDメモリカード17の固有パラメータが、図20に示す値であるとき、クラスタサイズをWPブロックサイズの4倍の8Kバイトとし、クラスタ境界とWPブロック境界を一致させた上で、図18に示す初期状態を生成する。
先ず、データ領域を無駄にしないため、できる限り多くのクラスタを生成することを目指す。データ領域全体をクラスタとして割り当てると考えると、10M÷8Kから1280個のクラスタが割り当てられることがわかる。しかし、先頭にリザーブセクタ数(PBRを含む)、FATサイズ(×2)、及びルートディレクトリエントリサイズが必要であるため、この分を差し引いた上での最大数を求める。
まず、リザーブセクタ数は、最低でPBR領域として1セクタ必要である。該リザーブセクタ数をYとする。FATサイズは、クラスタ数分のFATエントリを格納できるだけの領域を2個分(FATの数)持つ必要がある。一つのFATエントリは、FAT16においては、16ビットであるため、1セクタで256個のFATエントリを持つことができることがわかる。FATは、少なくともクラスタ数以上のFATエントリを持つ必要があるが、その条件さえ満たしていれば、できるだけ小さい方が良い。一つのFATに必要なセクタ数をXとする。ルートディレクトリエントリサイズは、ルートディレクトリエントリ数に依存する。ルートディレクトリエントリ数は通常512であり、1ディレクトリエントリが32バイトであるため、ルートディレクトリエントリサイズは16Kバイト(32セクタ)である。また、クラスタ境界とWPブロック境界を一致させるため、リザーブセクタ数、FAT、及びルートディレクトリエントリを足し合わせた値が、WPブロックの整数倍になるようにしなければならない。
以上の条件を基に式を立てる。
(式1):クラスタ最大数−(リザーブセクタ数+FATセクタ数×2+ルートディレクトリエントリサイズ)/(クラスタサイズ/セクタサイズ)<1セクタのFATエントリ数×FATセクタ数
(式2):(リザーブセクタ数+FATセクタ数×2+ルートディレクトリエントリサイズ)=(WPブロックサイズ/セクタサイズ)
(式1)、(式2)に値を代入すると以下のようになる。
(式3):1280−(Y+2X+32)/16<256X(X、Yは整数)
(式4):Y+2X+32=4α(X、Y、αは任意の整数)
さらに、(式3)を変換すると、以下のようになる。
(式5):4098X>20480−Y
(式5)において、XはFATのセクタ数であるため、最小値を取る必要がある。Xは整数であるため、Xは5を取ることがわかる。
これをもとに、(式4)を変換すると、以下のようになる。
(式6):Y+42=4α
(式6)において、Yはリザーブセクタ数であり、1以上の整数であれば良い。無駄を省くため最小値を取ると、Yは2であるとことがわかる。
以上の計算により、BPBパラメータを図21に示すように設定した上で、フォーマットを行うと、図22に示すようなデータ構造となり、クラスタ境界とWPブロック境界を一致させることができる。このWPブロック境界一致手段により、クラスタ単位のライトプロテクトが可能となり、ひいてはディレクトリエントリ及びファイル単位のライトプロテクトが可能となる。
以下、先に説明したSDメモリカードのライトプロテクト機能を用い、第1の実施形態における、本発明の第2の特徴であるライトプロテクトアクセス手段について説明する。該ライトプロテクトアクセス手段とは、SDメモリカード17に対する、ライトプロテクトされたファイルの書き込みを行うライトプロテクト書き込み手段、ライトプロテクトされたファイルの削除を行うライトプロテクト削除手段、並びにライトプロテクトされたファイルの書き換えを行うライトプロテクト書き換え手段によって構成される。
先ず、前記ライトプロテクト書き込み手段について説明する。該ライトプロテクト書き込み手段とは、書き込み対象のファイルが新規書き込みファイルである場合に、該ファイルにライトプロテクトをかけ書き込みを行う手段である。図3は、SDメモリカード17に対し、該ライトプロテクト書き込み手段によりファイルを書き込むときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。また、プロテクト実行/解除、状態参照命令は、前記サービス(B.1)〜(B.3)を利用して行う。ただし、クラスタ(ディレクトリエントリを含む)に対するライトプロテクト実行/解除、状態参照は、該クラスタを構成する全ての前記WPブロックに対して、該サービス(B.1)〜(B.3)を実行しているものとする。
図3のフローチャートを説明する。先ず、ステップS301で前記プロテクトディレクトリエントリを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップS302で発見したかを判断し、発見した場合は、続いてステップS303でファイルデータを格納するのに必要なクラスタ数を計算する。さらに、ステップS304でFATを読み出し、必要なクラスタ数分の連続した空きクラスタを検索し、ステップS305で発見したかを判断する。発見した場合は、ステップS306で前記プロテクトディレクトリエントリのライトプロテクトを解除し、ステップS307で該連続空きクラスタの先頭クラスタへのリンク情報をもったエントリアイテムをステップS2501で検索した空きエントリアイテム位置に格納し、ステップS308で再度該プロテクトディレクトリエントリにライトプロテクトをかける。さらに、ステップS309でファイルデータを該連続空きクラスタに書き込み、ステップS310で該連続空きクラスタにライトプロテクトをかけ、ステップS311でFATを更新し、正常終了する。ステップS302でエントリアイテムの空きを発見できなかった場合と、ステップS305で連続空きクラスタを発見できなかった場合は、エラー終了する。
続いて、前記ライトプロテクト削除手段、及び前記ライトプロテクト書き換え手段について説明する。該ライトプロテクト削除手段とは、前記ライトプロテクト書き込み手段により書き込まれたファイルデータを削除する手段であり、該ライトプロテクト書き換え手段とは、前記ライトプロテクト書き込み手段により書き込まれたファイルデータを書き換え、書き込んだファイルに再度ライトプロテクトをかける手段である。該ライトプロテクト削除手段、及び該ライトプロテクト書き換え手段はともに、最初に現在書き込まれているファイルデータのライトプロテクトを解除するライトプロテクト解除動作は共通している。該ライトプロテクト解除動作後、前記ライトプロテクト削除手段は前記サービス(A.3)により削除を行い、前記ライトプロテクト書き換え手段は前記ライトプロテクト書き込み手段により書き込みを行い、動作を完了する。
前記ライトプロテクト解除動作について説明する。図24は、SDメモリカード17内に存在するライトプロテクトされたファイルのライトプロテクトを解除するときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。また、プロテクト実行/解除、状態参照命令は、前記サービス(B.1)〜(B.3)を利用して行う。ただし、クラスタ(ディレクトリエントリを含む)に対するライトプロテクト実行/解除、状態参照は、該クラスタを構成する全ての前記WPブロックに対して、該サービス(B.1)〜(B.3)を実行しているものとする。
図24のフローチャートを説明する。先ず、ステップS2401で前記プロテクトディレクトリエントリを先頭から順に読み出し、書き換え及び削除対象ファイルのエントリアイテムを検索する。ステップS2402で発見したかを判断し、発見した場合は、続いて、ステップS2403で該エントリアイテムから、書き換え及び削除対象ファイルデータが格納されている先頭クラスタを取得し、ステップS2404で該クラスタをカレントクラスタとし、ステップS2405でカレントクラスタのライトプロテクトを解除する。続いて、ステップS2406で、前記FATからカレントクラスタのリンク情報を取得する。該リンク情報を基に、ステップS2407でカレントクラスタがリンクされているかを判断する。リンクされていた場合、ステップS2408で、リンク先クラスタを新たなカレントクラスタとし、ステップS2405へ戻る。ステップS2407で、リンクされていなかった場合は正常終了する。ステップS2402で、エントリアイテムを発見できなかった場合は、エラー終了する。
以下、第1の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段について説明する。該ライトプロテクトファイル復旧手段とは、フォーマット等により、SDメモリカード17のファイルフォーマットが破壊されてしまった場合に、ユーザもしくはシステムの指示により、前記ライトプロテクト書き込み手段により書き込んだファイルを復旧する手段である。ここで、ファイルフォーマットが破壊されてしまった場合とは、SDメモリカード17が、別のホスト(例えばPC等)でフォーマットされ、BPBパラメータやFATが書き換えられ、フォーマットされる前のファイル格納位置を特定することができなくなってしまった場合を指す。
該ライトプロテクトファイル復旧手段は、情報取得ステップとファイルデータ取得ステップにより実現する。該情報取得ステップでは、前記ライトプロテクトファイル書き込み手段により書き込んだファイルのデータが格納されている位置を特定するための情報を取得するステップであり、該ファイルデータ取得ステップは、情報取得ステップで取得したファイル位置情報を基に、ファイルデータを取得するステップである。
先ず、本実施形態における前記情報取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したクラスタに書き込まれている。そのため、該ファイルの位置を特定するためには、クラスタの開始位置とサイズ、及び該ファイルの開始クラスタとファイルのサイズを特定する必要がある。本実施形態においては、図18に示すように、前記プロテクトディレクトリエントリを1つのクラスタで実現し、該プロテクトディレクトリエントリは、初期状態でクラスタ番号『2』番の位置に配置させている。さらに、該プロテクトディレクトリエントリの直後のクラスタは、初期状態で使用済みとし、ライトプロテクトをかけていない。さらに、該プロテクトディレクトリエントリの前には、プロテクトされた領域を作成しないことを前提としていた。そのため、データ領域の先頭からプロテクトされたWPブロックを検索すれば、最初に見つかったWPブロックが該プロテクトディレクトリエントリの先頭であることがわかり、さらに、該WPブロックから連続でプロテクトされている領域を検索すれば、最後に見つかったWPブロックが該プロテクトディレクトリエントリの終端であることがわかる。これにより、クラスタサイズと、クラスタ開始位置が特定できる。また、プロテクトディレクトリエントリには、プロテクトされたファイルのエントリアイテムが格納されているため、ファイルデータの開始クラスタとサイズを特定することができる。
続いて、本実施形態における前記ファイルデータ取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したクラスタに書き込まれている。そのため、前記情報取得ステップで取得したクラスタの開始位置とサイズ、及びファイルの開始クラスタとサイズにより、ファイルデータを取得することができる。
図4は、該ライトプロテクトファイル復旧手段の動作をフローチャートで示している。図4を説明する。先ず、ステップS401でSDメモリカード17のデータ領域の先頭から順に、ライトプロテクトされているWPブロックを検索し、ステップS402で発見したかを判断する。発見した場合には、ステップS403で連続して何個のWPブロックがライトプロテクトされているかを調べる。これにより、前記プロテクトディレクトリエントリと、ファイルフォーマットが破壊される前のクラスタサイズが確定する。
続いて、ステップS404で該プロテクトディレクトリエントリのエントリアイテムを検索する。ステップS405で発見したかを判断し、発見した場合には、ステップS406でエントリアイテムから、該エントリアイテムが示すファイルの開始クラスタ番号と、サイズを取得する。また、前記プロテクトディレクトリエントリのクラスタ(クラスタ番号『2』)を基準にして、ファイルデータ開始アドレスを特定する。次に、ステップS407でファイルデータ開始アドレスから、ファイルサイズ分のデータ領域がライトプロテクトされているかを判断する。該データ領域がライトプロテクトされていた場合、ステップS408でファイルデータを読み出し、他の記憶媒体に保存する。さらに、ステップS409で該データ領域のライトプロテクトを解除し、ステップS404に戻る。ステップS405で、エントリアイテムを発見できなかった場合は、ステップS410でプロテクトディレクトリエントリのライトプロテクトを解除し、正常終了する。ステップS402で、ライトプロテクトされているWPブロックを発見できなかった場合、ステップS407でライトプロテクトされていないと判断した場合は、エラー終了する。
(第2の実施形態)
本発明の第2の実施形態について説明する。本実施形態においても、第1の実施形態で説明したカメラシステムに着脱可能なSDメモリカード17を例に説明を行う。SDメモリカード17のブロックデバイスは、前記サービス(A.1)及び(A.2)を提供可能とし、該SDメモリカード17のデータ領域は、前記MBRを持たず、データ領域全体が一つのパーティションを構成し、該パーティションは、FAT16ファイルシステムによりフォーマットされ、管理されているものとする。また、本実施形態における本発明の第1の特徴であるWPブロック境界一致手段は、第1の実施形態におけるWPブロック境界一致手段と同様の手段であるものとする。
以下、第2の実施形態におけるSDメモリカード17のデータ構造について説明する。本実施形態におけるSDメモリカード17のデータ構造は、特殊なフォーマットではなく、図7に示すFATファイルシステムによるフォーマットを用いる。よって、第1の実施形態のように、前記プロテクトディレクトリ等といったプロテクトファイルを格納するためのディレクトリは存在せず、いずれのディレクトリであってもプロテクトされたファイルを格納することができる。また、特殊なフォーマットではないため、第1の実施形態のように、初期状態が限定されるわけではないため、既にファイルの書き込みが行われている状態のSDメモリカードであっても、FATファイルシステムによりフォーマットされていれば、本実施形態を適応することができる。
以下、第2の実施形態における、本発明の第2の特徴であるライトプロテクトアクセス手段について説明する。該ライトプロテクトアクセス手段は、ライトプロテクトされたファイルの書き込みを行うライトプロテクト書き込み手段、ライトプロテクトされたファイルの削除を行うライトプロテクト削除手段、並びにライトプロテクトされたファイルの書き換えを行うライトプロテクト書き換え手段によって構成される。
先ず、前記ライトプロテクト書き込み手段について説明する。該ライトプロテクト書き込み手段とは、書き込み対象のファイルが新規書き込みファイルである場合に、該ファイルにライトプロテクトをかけ書き込みを行う手段である。該ライトプロテクト書き込み手段は、連続したクラスタにファイルデータを書き込み、該クラスタにライトプロテクトをかける。ただし、ファイルデータが格納される連続クラスタ内、最終クラスタに限り、ライトプロテクトはクラスタ全体ではなく、ファイルデータが格納されているWPブロックのみにかける。このとき、ファイルデータが該最終クラスタを構成するWPブロック全体に及んでいる場合は、該最終クラスタのさらに一つ後のクラスタを使用済み領域として確保する。
これにより、該ライトプロテクト書き込み手段により書き込まれたファイルは、ファイルデータが格納されているWPブロックの内、最終WPブロックの直後のWPブロックには、ライトプロテクトがかけられていないことが保証できる。これは、後述する第2の実施形態におけるライトプロテクトファイル復旧手段において、ファイルのサイズを特定するためである。該ライトプロテクト書き込み手段により、二つのファイルが書き込まれ、この二つのファイルデータが連続していた場合、ファイルデータが格納されるクラスタ全てをライトプロテクトしてしまうと、図27のようになり、ライトプロテクトファイル1とライトプロテクトファイル2が連続したライトプロテクト領域に格納され、境界を特定することができない。そこで、最終WPブロック直後のWPブロックには、ライトプロテクトをかけないことで、図28のようになり、ライトプロテクトファイル1、及び2のサイズを特定することができる。
図25は、SDメモリカード17に対し、該ライトプロテクト書き込み手段によりファイルを書き込むときの動作をフローチャートで示している。読み出し、及び書き込み命令は、全てファイルシステムソフトウェアが、前記サービス(A.1)及び(A.2)を利用して行う。また、プロテクト実行/解除、状態参照命令は、前記サービス(B.1)〜(B.3)を利用して行う。ただし、クラスタ(ディレクトリエントリを含む)に対するライトプロテクト実行/解除、状態参照は、該クラスタを構成する全ての前記WPブロックに対して、該サービス(B.1)〜(B.3)を実行しているものとする。
図25のフローチャートを説明する。先ず、ステップS2501で書き込みを行うディレクトリのディレクトリエントリを先頭から順に読み出し、エントリアイテムの空きを検索する。ステップS2502で発見したかを判断し、発見した場合は、続いてステップS2503でファイルデータを格納するのに必要なクラスタ数を計算する。このとき、ファイルデータが最終クラスタを構成するWPブロックの最終クラスタにまで及ぶ場合は、必要なクラスタ数に1加えた値を必要なクラスタ数とする。さらに、ステップS2504でFATを読み出し、ステップS2503で計算した必要なクラスタ数分の連続した空きクラスタを検索し、ステップS2505で発見したかを判断する。発見した場合は、ステップS2506で該連続空きクラスタの先頭クラスタへのリンク情報をもったエントリアイテムをステップS2501で検索した空きエントリアイテム位置に格納する。さらに、ステップS2507でファイルデータを該連続空きクラスタに書き込み、ステップS2508で該連続空きクラスタの内、最終クラスタを除いた全てのクラスタにライトプロテクトをかける。続いて、ステップS2509で、最終クラスタを構成するWPブロックの内、ファイルデータが格納されたWPブロックに対し、ライトプロテクトをかける。このとき、ファイルデータが格納されたWPブロックが存在しなかった場合、何も行わない。最後に、ステップS2510でFATを更新し、正常終了する。ステップS2502でエントリアイテムの空きを発見できなかった場合と、ステップS2505で連続空きクラスタを発見できなかった場合は、エラー終了する。
続いて、前記ライトプロテクト削除手段、及び前記ライトプロテクト書き換え手段について説明する。該ライトプロテクト削除手段、及び該ライトプロテクト書き換え手段は、第1の実施形態におけるライトプロテクト削除手段、及びライトプロテクト書き換え手段と同様の動作で実現する。ただし、前記ライトプロテクト解除動作を示す図24のステップS2405において、カレントクラスタが連続クラスタの最終クラスタである場合、該カレントクラスタを構成するWPブロックの内、ライトプロテクトいないWPブロックが存在する。このとき、該WPブロックの内、ライトプロテクトされているWPブロックのみに対してライトプロテクト解除を行うものとする。
以下、第2の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段について説明する。該ライトプロテクトファイル復旧手段とは、フォーマット等により、SDメモリカード17のファイルフォーマットが破壊されてしまった場合に、ユーザもしくはシステムの指示により、前記ライトプロテクト書き込み手段により書き込んだファイルを復旧する手段である。ここで、ファイルフォーマットが破壊されてしまった場合とは、SDメモリカード17が、別のホスト(例えばPC等)でフォーマットされ、BPBパラメータやFATが書き換えられ、フォーマットされる前のファイル格納位置を特定することができなくなってしまった場合を指す。
該ライトプロテクトファイル復旧手段は、情報取得ステップとファイルデータ取得ステップにより実現する。該情報取得ステップでは、前記ライトプロテクトファイル書き込み手段により書き込んだファイルのデータが格納されている位置を特定するための情報を取得するステップであり、該ファイルデータ取得ステップは、情報取得ステップで取得したファイル位置情報を基に、ファイルデータを取得するステップである。
先ず、本実施形態における前記情報取得ステップについて説明する。本実施形態においては、前記ライトプロテクト書き込み手段により書き込まれたファイルは、連続したWPブロックに書き込まれており、かつ該WPブロックの最終WPブロック直後のWPブロックはライトプロテクトされていないことが保証されている。そのため、該ファイルの位置を特定するためには、ライトプロテクトされているWPブロックを検索し、該WPブロックから連続してライトプロテクトされているWPブロック数を特定することで、該ファイルの開始位置及びサイズを特定することができる。
続いて、本実施形態における前記ファイルデータ取得ステップについて説明する。前記情報取得ステップで取得したファイルデータの開始位置及びサイズにより、ファイルデータを取得することができる。
図26は、該ライトプロテクトファイル復旧手段の動作をフローチャートで示している。図26を説明する。先ず、ステップS2601でSDメモリカード17のデータ領域の先頭から順に、ライトプロテクトされているWPブロックを検索し、ステップS2602で発見したかを判断する。発見した場合には、ステップS2603で連続して何個のWPブロックがライトプロテクトされているかを調べる。これにより、ライトプロテクトファイルの開始位置とサイズが確定する。
続いて、ステップS2604で、ステップS2603で取得した連続WPブロック内のファイルデータを取得し、ステップS2605で該連続WPブロックのライトプロテクトを解除し、ステップS2602へ戻り繰り返す。ステップS2602で、発見しなかった場合は、正常終了する。
以上説明した実施形態によれば、前記WPブロック境界一致手段、前記ライトプロテクト書き込み手段、及び前記ライトプロテクトファイル復旧手段によって、ファイルデータにライトプロテクトをかける際には、ファイルが格納されたクラスタのみをライトプロテクトすることにより、無駄のないファイルデータのライトプロテクトが行える。また、いずれのソフトウェア及び機器によってデータ管理がされても、ライトプロテクトしたファイルが削除されることはない。さらに、フォーマットなどにより、ファイルシステムが破壊されても、ライトプロテクトしたファイルを復旧することができる。
(他の実施形態)
本実施形態においては、MBRを持たないようにフォーマットされた記憶装置を例に取り説明したが、MBRを持ち、パーティションを複数持つ記憶装置においても、パーティションの開始アドレスの取得手段があれば、本発明を適用できることは言うまでもない。
さらに、本実施形態においては、記憶装置としてSDメモリカードを例に取り説明したが、いずれの記憶装置であっても、データ領域の部分的なライトプロテクト機能を持つ記憶装置においては、本発明を適用できることは言うまでもない。
さらに、本実施形態においては、前記WPブロック境界一致手段により、クラスタとWPブロックの境界を一致させていることを前提に、前記ライトプロテクト書き込み手段、及びライトプロテクトファイル復旧手段を説明したが、クラスタとWPブロックの境界が一致していない場合であっても、プロテクトするファイルデータが一部分でも格納されるWPブロック全てにライトプロテクトをかける手段と、該手段によりライトプロテクトがかけられたWPブロックが一部分でも存在するクラスタを別のデータの書き込み対象となることを防止する手段とを具備する場合、本発明を適用できる。
さらに、本実施形態においては、ライトプロテクトファイルの書き込み時、連続クラスタ領域に書き込むことを前提に説明したが、FAT領域をすべてライトプトテクトし、リンク情報をも保護しておけば、不連続なクラスタ領域にファイルを書き込んでも、本発明を適用できることは言うまでもない。
さらに、本実施形態においては、初期状態として、前記ライトプロテクトディレクトリがルートディレクトリエントリの直後に位置し、かつ該クラスタの直後には使用済みの空きクラスタが位置し、かつライトプロテクトファイルの書き込み時には、該ライトプロテクトディレクトリに書き込むことを前提に説明したが、ライトプロテクトファイルを書き込むディレクトリエントリを全てライトプロテクトし、かつフォーマットされてしまった場合でも、クラスタサイズとクラスタ開始位置を特定する手段を具備する場合、本発明を適用できることは言うまでもない。
さらに、本実施形態においては、FATファイルシステムを例にとり説明したが、記憶装置のデータ領域がいずれのファイルシステムにより管理されていても、クラスタ等のファイルの最小単位が存在する場合、本発明のWPブロック境界一致手段を適用し、本発明を適用できることは言うまでもない。
本発明の第1の実施形態を示すファイル管理手段を適用可能な画像処理システムの一例を示すブロック図である。 図22に示したSDメモリカードを構成するファイルシステムの階層構造を示す概念図である。 第1の実施形態におけるライトプロテクト書き込み手段を示すフローチャート図である。 第1の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段を示すフローチャート図である。 SDメモリカードの一般的な内部データ構造を示すブロック図である。 図5におけるMBRの内部データ構造を示すブロック図である。 図5におけるパーティションをFATファイルシステムでフォーマットした場合の内部データ構造を示すブロック図である。 図7におけるPBRの内部データ構造を示すブロック図である。 図8におけるBPBに含まれるパラメータを示すテーブルである。 SDメモリカードのデータ領域の一例を示す状態図である。 SDメモリカードの図10の状態におけるデータ構造を示す構造図である。 SDメモリカードに対するファイル読み出し手段を示すフローチャート図である。 SDメモリカードに対するファイル書き込み手段を示すフローチャート図である。 SDメモリカードに対するファイル削除手段を示すフローチャート図である。 SDメモリカードのライトプロテクト動作の手順を示すフローチャート図である。 SDメモリカードのライトプロテクト解除動作の手順を示すフローチャート図である。 SDメモリカードのライトプロテクト状態参照動作の手順を示すフローチャート図である。 SDメモリカードに対するライトプロテクト書き込みを行う場合の、初期データ構造を示す図である。 SDメモリカードにおけるWPブロック割り当て構造を示すデータ構造図である。 実施形態1におけるSDメモリカードの固有パラメータの例を示す表である。 図20のパラメータを持つSDメモリカードにWPブロック境界一致手段を適用した場合のBPBパラメータの例を示す表である。 図21のパラメータを基にフォーマットされたSDメモリカードのデータ領域の構造を示す構造図である。 FAT16におけるクラスタ開始アドレス計算式である。 ライトプロテクト削除手段、及びライトプロテクト書き換え手段におけるライトプロテクト解除動作を示すフローチャート図である。 第2の実施形態におけるライトプロテクト書き込み手段を示すフローチャート図である。 第2の実施形態における、本発明の第三の特徴であるライトプロテクトファイル復旧手段を示すフローチャート図である。 ライトプロテクトした場合におけるSDメモリカードのデータ領域の構造を示す構造図1である。 ライトプロテクトした場合におけるSDメモリカードのデータ領域の構造を示す構造図2である。
符号の説明
1 レンズ
2 CCDユニット
3 A/Dコンバータ
4 SSGユニット
5 CPU
6 信号処理アクセラレータ
7 電池
8 DC/DCコンバータ
9 電源コントローラ
10 サブCPU
11 表示装置
12 コントロールパネル
13 ROM
14 DRAM
15 フラッシュROM
16 カードインターフェース
17 外部記憶媒体
18 DMAコントローラ
19 ストロボ

Claims (8)

  1. 記憶媒体のデータ領域におけるデータ単位であるクラスタを用いて、前記記憶媒体のデータ記憶を管理する記憶管理装置であって、
    データを、複数のセクタからなり、かつ前記クラスタのサイズとは異なる所定サイズのブロック単位でライトプロテクトするライトプロテクト手段と、
    前記ライトプロテクト手段によりライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止手段と、
    前記クラスタのサイズと前記クラスタの開始位置操作することにより、前記クラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界とを一致させるブロック境界一致手段と、を具備することを特徴とする記憶管理装置。
  2. 前記ライトプロテクト手段によりライトプロテクトされたブロックのライトプロテクトを解除するライトプロテクト解除手段をさらに具備することを特徴とする請求項1に記載の記憶管理装置。
  3. データが格納される少なくとも一つ以上の前記ブロックの全てに対し、データ書き込み後に前記ライトプロテクト手段によりライトプロテクトをかけるライトプロテクト書き込み手段をさらに具備することを特徴とする請求項1または2に記載の記憶管理装置。
  4. 書き込みデータを連続領域に格納する連続領域格納手段と、
    前記ライトプロテクト書き込み手段により、データが格納される少なくとも一つ以上の前記ブロックの全てに対し、前記連続領域格納手段によるデータ書き込み後にライトプロテクトをかける連続領域ライトプロテクト書き込み手段と、をさらに具備することを特徴とする請求項3に記載の記憶管理装置。
  5. 前記ブロック境界一致手段により、前記クラスタの境界と少なくとも一つ以上の前記ブロックの境界が一致している場合において、前記クラスタに一意のアドレスを割り当てるクラスタアドレス割り当て手段と、前記クラスタアドレス割り当て手段により割り当てられたクラスタアドレスにおいて、所定アドレスを持つクラスタを構成する前記ブロック全てに、前記ライトプロテクト手段によりライトプロテクトをかけるクラスタライトプロテクト手段と、をさらに具備することを特徴とする請求項1に記載の記憶管理装置。
  6. データが格納される少なくとも一つ以上のクラスタに対し、データ書き込み後に、前記クラスタライトプロテクト手段によりライトプロテクトをかけるクラスタライトプロテクト書き込み手段をさらに具備することを特徴とする請求項5に記載の記憶管理装置。
  7. 書き込みデータを連続する前記クラスタに格納する連続クラスタ格納手段と、前記クラスタライトプロテクト書き込み手段により、データが格納される少なくとも一つ以上の前記クラスタの全てに対し、前記連続クラスタ格納手段によるデータ書き込み後にライトプロテクトをかける連続クラスタライトプロテクト書き込み手段と、を具備することを特徴とする請求項5に記載の記憶管理装置。
  8. データ記憶領域におけるデータ単位であるクラスタを用いてデータ記憶を管理する記憶管理装置の制御方法であって、
    データを、複数のセクタからなり、かつ前記クラスタのサイズとは異なる所定サイズのブロック単位でライトプロテクトするライトプロテクト工程と、
    前記ライトプロテクト工程においてライトプロテクトされたブロックへのデータ書き込みを禁止する書き込み禁止工程と、
    前記クラスタのサイズと前記クラスタの開始位置操作することにより、前記クラスタの境界と少なくとも一つ以上の連続した前記ブロックの境界とを一致させるブロック境界一致工程と、を具備することを特徴とする記憶管理装置の制御方法。
JP2004334805A 2004-11-18 2004-11-18 記憶管理装置及びその制御方法 Expired - Fee Related JP4667014B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004334805A JP4667014B2 (ja) 2004-11-18 2004-11-18 記憶管理装置及びその制御方法
US11/271,479 US7523280B2 (en) 2004-11-18 2005-11-10 Storage managing system, storage managing apparatus, and storage managing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004334805A JP4667014B2 (ja) 2004-11-18 2004-11-18 記憶管理装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2006146505A JP2006146505A (ja) 2006-06-08
JP4667014B2 true JP4667014B2 (ja) 2011-04-06

Family

ID=36387801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004334805A Expired - Fee Related JP4667014B2 (ja) 2004-11-18 2004-11-18 記憶管理装置及びその制御方法

Country Status (2)

Country Link
US (1) US7523280B2 (ja)
JP (1) JP4667014B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100541448C (zh) * 2004-12-22 2009-09-16 松下电器产业株式会社 电子设备、格式辨别系统和格式辨别方法
CN100370445C (zh) * 2005-08-10 2008-02-20 北京中星微电子有限公司 一种基于文件分配表的数据传输装置和传输方法
US7472244B2 (en) * 2005-12-08 2008-12-30 Intel Corporation Scheme for securing a memory subsystem or stack
KR101342914B1 (ko) * 2006-11-21 2013-12-19 삼성전자주식회사 파일 복원기능을 구비한 전자장치 및 그 방법
WO2009031245A1 (ja) 2007-09-04 2009-03-12 Nintendo Co., Ltd. ダウンロードセキュリティシステム
EP2187313A4 (en) 2007-09-04 2011-08-03 Nintendo Co Ltd WRITE-IN REGIONAL SECURITY SYSTEM
CN101441602B (zh) * 2007-11-19 2011-01-26 联想(北京)有限公司 硬盘数据保护装置、硬盘、计算机及硬盘数据保护方法
US8073884B2 (en) * 2007-12-20 2011-12-06 Hewlett-Packard Development Company, L.P. System and method to derive high level file system information by passively monitoring low level operations on a FAT file system
JP2010009206A (ja) * 2008-06-25 2010-01-14 Nikon Corp 記録制御装置
US20090322905A1 (en) * 2008-06-25 2009-12-31 Nikon Corporation Storage control device
TWI454912B (zh) * 2012-01-06 2014-10-01 Phison Electronics Corp 資料處理方法、記憶體控制器與記憶體儲存裝置
CN103218300B (zh) * 2012-01-18 2016-01-27 群联电子股份有限公司 数据处理方法、存储器控制器与存储器储存装置
JP5502181B2 (ja) * 2012-12-03 2014-05-28 任天堂株式会社 ダウンロードセキュリティシステム
CN106201353A (zh) * 2016-07-12 2016-12-07 曹蕊 一种用于键值存储系统的数据写入装置及方法
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02193236A (ja) * 1989-01-21 1990-07-30 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
JPH10124384A (ja) * 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
JP2001043112A (ja) * 1999-07-30 2001-02-16 Sony Corp ファイル記録方法およびファイル再生方法およびデータ書込システムおよびデータ読取システムおよびデータ記録再生装置およびデータ書込装置およびデータ読取装置およびデータが記録されたコンピュータが読み取り可能な記録媒体
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
JP2003085010A (ja) * 2001-07-05 2003-03-20 Matsushita Electric Ind Co Ltd 記録装置、記録媒体、プログラム、方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02193236A (ja) * 1989-01-21 1990-07-30 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
JPH10124384A (ja) * 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
JP2001043112A (ja) * 1999-07-30 2001-02-16 Sony Corp ファイル記録方法およびファイル再生方法およびデータ書込システムおよびデータ読取システムおよびデータ記録再生装置およびデータ書込装置およびデータ読取装置およびデータが記録されたコンピュータが読み取り可能な記録媒体
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
JP2003085010A (ja) * 2001-07-05 2003-03-20 Matsushita Electric Ind Co Ltd 記録装置、記録媒体、プログラム、方法

Also Published As

Publication number Publication date
JP2006146505A (ja) 2006-06-08
US20060107009A1 (en) 2006-05-18
US7523280B2 (en) 2009-04-21

Similar Documents

Publication Publication Date Title
JP4667014B2 (ja) 記憶管理装置及びその制御方法
US5933847A (en) Selecting erase method based on type of power supply for flash EEPROM
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
US6378033B1 (en) Electronic device, control method thereof and storage medium
MX2007001185A (es) Sistemas, metodos, medio legible por computadora y aparato para el manejo de memoria utilizando una memoria de acceso aleatorio no volatil.
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US6272611B1 (en) Computer data storage medium having a virtual disk drive and memory management method therefor
JPWO2005103903A1 (ja) 不揮発性記憶システム
JP2006277737A (ja) アドレス予測機能をもつ不揮発性記憶装置
EP2261803A1 (en) Access device, information recording device, information recording system, file management method, and program
US8380666B2 (en) File management device and storage device for managing mapping information between a first file system and a second file system
EP3364303B1 (en) Data arrangement method, storage apparatus, storage controller and storage array
US7046574B2 (en) Memory system
JP3727982B2 (ja) フラッシュrom管理方法及び装置
US11176089B2 (en) Systems and methods for implementing dynamic file systems
JP2006344177A (ja) データ消去装置及びデータ消去プログラム
JP2011138221A (ja) 半導体装置及びメモリシステム
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
JP2006228138A (ja) 半導体記憶装置、記憶制御方法および情報機器
JP3703181B2 (ja) フラッシュrom管理方法及び装置
US11615019B2 (en) Non-volatile storage device, host device, and data storage system to increase data write speed
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JPH0997206A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
GB2346991A (en) Accessing a computer-readable partitioned medium
JP2007004700A (ja) 情報記憶装置、その制御方法、およびその制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100624

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

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: 20110105

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: 20110111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4667014

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees