[go: up one dir, main page]

JP2669365B2 - 書換え可能なromファイル装置 - Google Patents

書換え可能なromファイル装置

Info

Publication number
JP2669365B2
JP2669365B2 JP28850994A JP28850994A JP2669365B2 JP 2669365 B2 JP2669365 B2 JP 2669365B2 JP 28850994 A JP28850994 A JP 28850994A JP 28850994 A JP28850994 A JP 28850994A JP 2669365 B2 JP2669365 B2 JP 2669365B2
Authority
JP
Japan
Prior art keywords
file
data storage
data
specific area
buffer
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
JP28850994A
Other languages
English (en)
Other versions
JPH08147202A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP28850994A priority Critical patent/JP2669365B2/ja
Priority to US08/552,290 priority patent/US5933846A/en
Priority to CA002162818A priority patent/CA2162818C/en
Publication of JPH08147202A publication Critical patent/JPH08147202A/ja
Application granted granted Critical
Publication of JP2669365B2 publication Critical patent/JP2669365B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は書換え可能なROMファ
イル装置に関し、特に記憶媒体としてEEPROMやE
PROM等のROMを用いた書換え可能なROMファイ
ル装置に関するものである。
【0002】
【従来の技術】従来の情報処理装置はファイル装置とし
てフロッピーディスク装置やハードディスク装置を用い
ている。しかし、近年例えばノート型パーソナルコンピ
ュータ等に代表される携帯型情報処理装置が普及するに
従って、従来のフロッピーディスク装置やハードディス
ク装置では、寸法が大きい、重い、衝撃に弱い等の問題
点があり、これらの携帯型情報処理装置には不都合であ
ることが判ってきた。
【0003】最近では、これに対処するため、ファイル
装置として半導体素子、例えばRAM等を用い、更に、
これをカード型にしたICカード等が利用されるように
なっている。しかし、RAMをファイル装置として用い
た場合、記憶している内容を保持するためには、バック
アップ用の電源として、例えば電池等をICカード中に
内蔵する必要が有り、この場合、バックアップ用の電池
と主電源の切替回路が必要になる、バックアップ電池が
無くなると記憶内容が失われてしまう、などの問題点が
あった。
【0004】これらの問題点を解決するためには、EE
PROMのような電気的に書換可能なROMを、ファイ
ル装置用の半導体素子として用いることが考えられる。
従来EEPROMを用いたファイル装置としては、例え
ば、「1994年6月、日経バイト、177p〜182
p、ATAドライブ、フラッシュ、ファイル・システ
ム」に示されるように、ハードディスク装置と同じよう
に扱えるものや、ICカードにEEPROMを使用した
ものが特開平2−282885号公報や特公平2−61
15号公報に開示のもの等がある。
【0005】前記の「1994年6月、日経バイト、1
77〜182、ATAドライブ、フラッシュ・ファイル
・システム」に紹介されている「ATAドライブとして
使用する方法」について説明する。この場合はEEPR
OM(本文中ではフラッシュ・メモリと記述)として、
データ消去の際のブロックサイズが比較的小さい512
バイト前後(256、512、1024、2048、4
096、8192、16384バイトなど)のものを用
いている。
【0006】更にこの方法では、カードにはコントロー
ラが内蔵され、このカードを使用する装置のOSから
は、カードがハードディスクと同じにみえる。また、こ
のカードからOS等を立ちあげることが出来る。
【0007】前述の「1994年6月、日経バイト、1
77〜182、ATAドライブ、フラッシュ・ファイル
・システム」に紹介されている「フラッシュ・ファイル
・システム」について説明する。この場合はEEPRO
M(文献ではフラッシュ・メモリと記述)として、デー
タ消去の際のブロックサイズが64バイトのものを通常
用いる。
【0008】この方法では、カード上にコントローラは
無く、代わりにこのカードを使用する装置のOSにデバ
イスドライバを組込み、装置本体のCPUが必要な処理
を行う。
【0009】特開平2−282885号公報では、一般
にEEPROMの書き込みは読み込みに比べて非常に長
時間がかかることを解決し、書換えの多い用途でも処理
時間が長くならないようにしている。本例では、EEP
ROM、EPROMなどの第1のデータ記憶手段と、こ
れ以上の容量を持つ、RAMなどの第2の記憶手段を設
け、電源オン時に第1のデータ記憶手段の内容を全て第
2の記憶手段にコピーし、書換え、読み出し等の処理は
全て第2の記憶手段から行い、電源オフ時に第2の記憶
手段から第1のデータ記憶手段に全ての内容を書き戻す
ことによってこれを実現している。
【0010】特公平2−6115号公報では、ICカー
ドの内容を書換える処理を、カード内部で、外部に内容
を読みだすことなく安全かつ高信頼に行うことを目的と
している。この従来例では、EEPROMの内容を書換
えるときに、書換えを行う特定領域のデータを一旦他の
メモリ領域に待避し、待避したデータの一部を書換えた
後元の領域に書き戻すという動作を行うことによって、
これを実現している。
【0011】
【発明が解決しようとする課題】MSDOS(マイクロ
ソフト社の登録商標)で利用する、EEPROMを用い
たファイル装置では、MSDOS独特のFAT方式と呼
ばれるファイル管理方式に起因する次のような問題点を
解決する必要がある。
【0012】まず、MSDOSのファイル管理方法につ
いて説明する。MSDOSではファイル装置に記憶され
ているデータファイルの管理をFAT(ファイル・アロ
ケーイョン・テーブル)と呼ばれるテーブルを用いて管
理している。図2にこのFAT方式の概要を示す。ファ
イル装置全体はクラスタと呼ばれる単位(1024、2
048、4096、8192、16384バイトなど)
に区切られており、これには先頭から順番に番号が付け
られている。
【0013】FAT2はこのクラスタ一つ一つに対応し
たテーブルで、何番のクラスタがどの順番で使われてい
るかを記録している。各ファイルの先頭データがクラス
タの何番に入っているかは、ディレクトリと呼ばれるテ
ーブル1に記録されている。ファイルがどこに格納され
ているかを知るためには、まずこのディレクトリのテー
ブル1を調べ、ファイル11の先頭が格納されているク
ラスタ番号12を調べる。次にFAT2のファイルの先
頭のクラスタ番号の所をみると、次に続く第2のクラス
タの番号が書かれているので、FAT2のそのクラスタ
の番号の所をみる。するとまたその次のクラスタ番号が
書かれている。このように、次々とクラスタ番号を調
べ、最後にFAT2にFFFが書かれているとそこでフ
ァイルは終わりとなる。この例では、FILE Aがク
ラスタの002から010までに格納され、FILE
Bがクラスタの011から01Eまでに格納されてい
る。実際のFILE A,Bの格納状態は3に示す如く
なる。
【0014】MSDOSはこのような方法でファイルの
格納場所を管理している。使用されていないクラスタ
は、FAT2に000が書かれている。
【0015】MSDOSでは、新しいファイルが作られ
たり、あるファイルが書き直されると、データを適当な
クラスタに書き込み、その後FATに、書き込まれたク
ラスタの情報を書き込む。つまり、FATの書き直しを
行う。通常MSDOSではFAT、ディレクトリ等はフ
ァイル装置の特定の場所(通常クラスタの001番)に
書かれているので、ファイルの書き込みが起こるたび
に、FATが書換えられると、ファイル装置の特定の場
所(例えばクラスタの001番)が頻繁に書換えられる
ことになる。
【0016】ところが、EEPROMでは一部のデータ
を書換えるためにでも、ブロック単位で消去、書換えを
行わなければならないため、ブロック全体のデータを一
度全てバッファに読み出し、バッファ上のデータを書換
え、ブロックのデータを消去し、バッファのデータを書
き戻すという操作を行う必要がある。
【0017】したがって、FAT部分のたとえ1バイト
を書換えるためにでも、ブロック単位(例えば64Kバ
イト)で書換え動作を行う必要があり、ファイルアクセ
ス速度が遅くなる(書換えにかかる時間は、個々のデバ
イスによって異なるが、一般に、1ブロックの消去に数
100msec、1バイトの書込みに、数10μsec
かかる)。また、EEPROMでは、消去出来る回数に
制限(現在約10万回等)があるので、FAT部分のよ
うに頻繁な書換えが、特定の部分に集中すると、EEP
ROMの寿命が極端に短くなってしまう。
【0018】更に、FAT部分でなくても、例えばデー
タファイルの一部分をたとえ1バイトでも書換えると、
前述のようなブロック単位での書換えを行うため、ファ
イルアクセス速度が遅くなるという問題も発生する。
【0019】以上説明したように、EEPROMを使っ
たファイル装置をMSDOSで用いる場合、FAT方式
に起因して、ファイルアクセスが遅くなる、EEPRO
Mの寿命が短くなる等の問題が起こる。EPROMの場
合は、消去は素子単位で行われる。一回の消去には10
分程かかる。また、消去できる回数にも制限がある。し
たがって、EPROMの場合でも、EEPROMと同様
の問題が発生する。
【0020】従来の方法では、MSDOSを用いた情報
処理装置に適用すると、例えば、「1994年6月、日
経バイト、177p〜182p、ATAドライブ、フラ
ッシュ・ファイル・システム」に紹介されている「AT
Aドライブとして使用する方法」では、ファイル装置内
にCPU等が必要になり、小容量(1Mバイト〜数Mバ
イト)のファイル装置にはコスト的に効果的でなく、ま
た、消去ブロックの小さい(512バイト等)素子しか
使えないという問題点がある。
【0021】また、「1994年6月、日経バイト、1
77p〜182p、ATAドライブ、フラッシュ・ファ
イル・システム」に紹介されている「フラッシュ・ファ
イル・システム」では、ファイルの書換え時の複雑な管
理を行うために、高速なCPUが必要で、管理を行なう
プログラム自体も大きい、という問題点がある。
【0022】また、特開平2−282885号公報で
は、ファイル装置の容量と同じサイズ以上の第2の記憶
手段が必要で、MSDOSのように1Mバイト以上のサ
イズのファイル装置を使用する場合、第2の記憶手段が
大きくなり、コストの面など効果が出ないという問題点
がある。
【0023】また、特公平2−6115号公報では、フ
ァイル装置内部にCPU等が必要となり、また、MSD
OSでは、ファイルがクラスタ単位で管理、読み書きさ
れ、かつ、1つのファイルが連続した場所に記載される
のではなく、クラスタ単位でばらばらな位置に記憶され
る場合もあるため、1つのファイルの書換えでも、ばら
ばらになったクラスタを次々に書き換えていくことにな
り、消去、書換えが頻繁に発生し、書込み時間を長くな
り、素子寿命も短くなってしまう、という問題点があ
る。
【0024】
【課題を解決するための手段】本発明によれば、書換え
可能なROMファイル装置であって、ファイルアロケー
ションテーブル格納領域、ディレクトリ格納領域及び書
換え可能ファイル領域が一まとまりとされた特定領域を
有するデータ記憶手段と、前記データ記憶手段の特定領
域の記憶容量を少なくとも有するバッファ手段と、前記
データ記憶手段の特定領域へのアクセス前に前記データ
記憶手段のファイルアロケーションテーブル格納領域、
ディレクトリ格納領域及び書換え可能ファイル領域が一
まとまりとされた前記特定領域の格納データを前記バッ
ファ手段へコピーを行ない、以後の前記データ記憶手段
の特定領域へのアクセスを前記バッファ手段へのアクセ
スに変換し、終了指示に応答して前記バッファ手段の格
納データを前記データ記憶手段の特定領域へ書き戻すよ
制御する制御手段と、前記データ記憶手段の特定領域
以外の領域に対する書込みアクセスを禁止する手段とを
含むことを特徴とする書き換え可能なROMファイル装
置が得られる。
【0025】
【作用】ROMファイルであるEEPROMやEPRO
M内のFAT格納領域、ディレクトリ格納領域、書換え
可能ファイル領域等の、予め書換えることが判っている
領域を1つの特定領域として一ケ所にまとめ、これをE
EPROMかEPROMの一括消去ブロックサイズ(最
小書換え単位)の整数倍に選定しておき、この特定領域
のデータを一時格納するに十分な容量のバッファを別に
準備し、この特定領域へのアクセス前にこのバッファへ
ROMファイルの特定領域のデータをコピーし、以後こ
の領域へのアクセスは全てこのバッファにて行い、RO
Mファイルの使用終了時には一括してバッファのデータ
を書戻すようにしている。
【0026】
【実施例】次に、本発明について図面を参照して説明す
る。図1は本発明の実施例を示すブロック図である。図
1(A)を参照すると、本発明の実施例は、ROMファ
イルとなるデータ記憶部100と、バッファ200と、
プログラムにより動作するアクセス制御部300とで構
成される。
【0027】また、図1(B)に示す如くデータ記憶部
100は内部がその用途によってディレクトリ部分10
1と、FAT部分102と、書換可能ファイル部分10
3と、それ以外の部分105とで構成される。ディレク
トリ部分101と、FAT部分102と、書換可能ファ
イル部分103とで構成される特定領域は一ケ所にまと
められており、その大きさ、記憶位置などは任意である
が、このデータ記憶部のどの位置に、どのくらいの大き
さの領域がとられているかは、予め決め、アクセス制御
部300の初期化時などにパラメータなどによって、ア
クセス制御部300に通知するか、アクセス制御部30
0(プログラム)に組み込んでおく必要がある。
【0028】また、図1には、BIOS(基本入出力オ
ペレーティングシステム)部分400と、MSDOS部
分500と、アプリケーションソフト(AP)部分60
0とが説明のために記述されている。一般にはアクセス
制御部300は、このファイル装置が使われる装置のB
IOS400の一部として実装されるので、説明のため
に、このような構成としたが、アクセス制御部300
は、例えばデバイスドライバとして、あるいは常駐プロ
グラム(TSR)として組み込むことも可能である。ま
た、図9、図11、図15は、アクセス制御手段300
の機能及び動作を説明するフローチャートである。
【0029】次に、図1、図9、図11、図15を用い
て、本実施例の動作について説明する。最初、アクセス
制御部300は、データ記憶部100に記載されている
内容のうち、特定領域(ディレクトリ部分101と、F
AT部分102と、書換可能ファイル部分103とで構
成される)を、バッファ200にすべてコピーする。し
たがって、コピー直後は、バッファ200の内部は、図
1(B)に示すように、ディレクトリ部分201と、F
AT部分202と、書換可能ファイル部分203とが記
憶されており、ディレクトリ部分201とデータ記憶部
100のディレクトリ部分101、FAT部分202と
データ記憶部100のFAT部分102、書換可能ファ
イル部分203とデータ記憶部100の書換可能ファイ
ル部分103は、それぞれ同じデータが記憶されている
ことになる。
【0030】アクセス制御部300が、データ記憶部1
00内の特定領域からバッファ200へのデータのコピ
ーを行なうのは、少なくともデータ記憶部にデータの書
き込みが行われる直前までなされなければならない。
【0031】次に、読み出し動作について主に図9を用
いて説明する。アプリケーションソフトウエア600か
ら、MSDOS500を経て、データ記憶部100から
のデータの読出しが行われた場合、アクセス制御部30
0はこれが終了処理要求かどうか調べ(図9、ステップ
870)、次にこれが初期化要求かどうかを調べる(図
9、ステップ800)。
【0032】次に書き込み要求かどうかを調べ(図9、
ステップ810)、次に読み出しが、データ記憶部10
0中の特定領域内(図1(B)に示すディレクトリ10
1または、FAT102または書換可能ファイル10
3)からの読み出しなのか、それともデータ記憶部10
0中の特定領域外(図1(B)のその他の部分105)
からの読み出しなのかを判別する(図9、ステップ82
0)。この判別は、アクセス制御部300の初期化時に
与えられたパラメータで判別、またはプログラム中の判
別処理(図9、ステップ820)に組み込んでおく、ま
たはアドレス比較などの方法で行われる。
【0033】判別の結果、特定領域外からの読み出しの
場合は、データ記憶部100のその他の部分105から
指定されたデータを読み出し(図9、ステップ830、
図11、ステップ831)、特定領域内からの読み出し
の場合は、バッファ200に記憶されているデータか
ら、読み出し要求のあったデータ記憶部100中の記憶
位置に相当するデータを読み出し(図9、ステップ84
0)、MSDOS500を経由してアプリケーションソ
フトウエア600にデータを返す。
【0034】次に、書き込み動作について説明する。ア
プリケーションソフトウエア600から、MSDOS5
00を経て、データ記憶部100へのデータの書き込み
が行われた場合、アクセス制御部300は、これが終了
処理要求かどうか調べ(図9、ステップ870)、次に
これが初期化要求かどうかを調べ(図9、ステップ80
0)、次に書き込み要求かどうかを調べ(図9ステッ
プ、810)、書き込みであった場合、バッファ200
内の、書き込み要求のあったデータ記憶部中の記憶位置
に相当する位置にデータを書き込む(図9、ステップ8
50)。
【0035】この場合、書込みを行うファイルはデータ
記憶部の書換可能ファイル部分103に記憶されている
ので、この部分と、ディレクトリ部分101、FAT部
分102以外には書込みは起こらないはずである。した
がって、特定領域以外の部分への書込みは発生しないは
ずである。しかし、万一、プログラムのエラーなどによ
り、特定領域以外への書込みが発生したときに、ファイ
ルが破壊されるなどの不都合が発生しないように、ステ
ップ850中にエラー判定を不可することも可能である
(図13(A)、ステップ851、853)。図13は
後で詳しく説明するが、図9のステップ850につい
て、さらに詳しく説明するためのフローチャートであ
る。
【0036】次に、初期化動作について説明する。初期
化動作は、このファイル装置が使われている装置の電源
オン時、あるいはMSDOS初期化動作時(ファイル装
置の接続、交換時、電源オン等)に行われ、このファイ
ル装置の動作状態の初期設定を行うための動作である。
アクセス制御部300は、まず、与えられた動作要求が
終了処理要求かどうか調べ(図9、ステップ870)、
次にこれが初期化要求かどうかを調べ(図9、ステップ
800)、与えられた動作要求が初期化要求である場
合、初期化処理(図9、ステップ860)例えば、バッ
ファ200に使用するメモリの確保等、アクセス制御部
300が動作するための諸設定などを行う。
【0037】次に終了動作について説明する。終了動作
は、このファイル装置が使われている装置の電源オフ
時、あるいはこのファイル装置の使用終了時(ファイル
装置の切離し、交換時、電源オフ等)に行われ、このフ
ァイル装置の動作の終了を行うための動作である。アク
セス制御部300は、まず、与えられた動作要求が終了
処理要求かどうか調べ(図9、ステップ870)、与え
られた動作要求が終了処理要求である場合、終了処理
(図9、ステップ880)を行う。
【0038】図15は終了処理について詳しく説明する
ためのフローチャートである。終了処理では、まず、バ
ッファ200内のデータをデータ記憶部100に書き込
む(図15、ステップ881)。次に、その他の終了処
理(図15、ステップ882)を行う。その他の終了処
理とは、例えば、バッファ200として用いていたメモ
リを開放し、他のプログラムなどがそのメモリを使用で
きるようにする、あるいは、アクセス制御部300のプ
ログラム自身が常駐していたメモリを開放するなどが考
えられる。
【0039】次に、データ記憶部100の構成方法につ
いて説明する。これについて、図3のブロック図を用い
て説明する。データ記憶部100はEPROM、EEP
ROM等の消去可能なROMによって構成できるが、そ
の構成方法は、EEPROM1個をデータ記憶部100
として用いる方法(図3(A))、EPROM1個をデ
ータ記憶部100として用いる方法(図3(B))、E
EPROM複数個をデータ記憶部100として用いる方
法(図3(C))、EPROM複数個をデータ記憶部1
00として用いる方法(図3(D))、EEPROM1
個とEPROM1個をデータ記憶部100として用いる
方法(図3(E))、EEPROM複数個とEPROM
複数個をデータ記憶部100として用いる方法(図3
(F))、EEPROM1個とEPROM複数個をデー
タ記憶部100として用いる方法(図3(G))、EE
PROM複数個とEPROM1個をデータ記憶部100
として用いる方法(図3(H))、などが考えられる。
【0040】EPROMは一般に素子1個単位での消去
が可能で、EEPROMは1個の素子の内部を複数のブ
ロック(消去ブロック)に分け、ブロック単位での消去
が可能である。図1(B)に示したデータ記憶部100
中の特定領域(ディレクトリ101とFAT102と、
書換可能ファイル103とで構成される)は、この消去
単位の1以上の整数倍の大きさで、1以上複数個の消去
単位にまとまってきっちりと治るように配置されるのが
最も効率が良い。
【0041】次に,バッファ200の構成方法について
説明する。これについて図4を用いて説明する。図4は
MSDOSを用いた情報処理装置の一般的なメモリマッ
プである。メモリ700は、この情報処理装置に実装さ
れているメモリ全体であり、この場合、メモリの上限は
アドレスyyyyyyH(yyyyyyHはそれぞれの
情報処理装置によって変わる)であるものとする。
【0042】割り込みベクトル701はMSDOSが動
作するインテル社製のCPUに固有のもので、割り込み
が発生したときにプログラムが分岐するための分岐先ア
ドレス情報が格納されている。
【0043】システム702はMSDOS500やBI
OS400が作業用として、又はMSDOSのカーネル
・システム用として使用される領域で、情報処理装置の
構成、MSDOSのバージョン等によって変わる。した
がってシステム702の上限アドレスxxxxHは、情
報処理装置の構成、MSDOSのバージョン等によって
変化する。
【0044】メイン・メモリ703はアドレスxxxx
H〜9FFFFHまでのメモリであり、通常はMSDO
S500上で動作するアプレケーションソフト(AP)
600が読み込まれ、この部分のメモリを使って動作す
る。情報処理装置によっては、このメイン・メモリの一
部をバンク切り替えによっていくつかのメモリバンクに
切り替えられ場合もある。
【0045】アッパ・メモリ704は情報処理装置の画
面表示用のVRAM(テキスト用、グラフィック用)、
BIOS・ROM、ROM/RAMバンクメモリ等、情
報処理装置を構成するハードウエアがこのアドレスを使
ってアクセス、制御できるようになっている。画面表示
用のVRAM(テキスト用、グラフィック用)等は2画
面分実装されている場合もある。本発明のファイル装置
のROMも通常はROMバンクとしてこの部分のアドレ
スでアクセス、制御できるようにするのが一般的であ
る。しかし、場合によっては、メイン・メモリの一部に
実装したメモリバンクとして、あるいは、後で説明する
ハイ・メモリ705の一部に割り当てる場合も考えられ
る。
【0046】最後のハイ・メモリ705はインテル社製
のCPUで80286、80386、80486等の1
Mバイト以上のアドレス空間を持つCPUで利用可能な
メモリである。以上説明したメモリのうち、メイン・メ
モリはMSDOSからそのまま使用可能だが、アッパ・
メモリやハイ・メモリはその部分のメモリをMSDOS
アプリケーションが利用可能にするためのドライバを組
み込めば、MSDOSから使用可能である。また、VR
AMは一般には、アプリケーションソフトが直接アクセ
スすることはできない。
【0047】本発明の実施例では、上記で説明したMS
DOSからアプリケーションソフトが利用可能なメモリ
の一部をバッファ200として用いることができる。ま
た、上記で説明したMSDOSからアプリケーションソ
フトが利用できないメモリの一部をバッファ200とし
て用いることもできる。
【0048】次に、データ記憶部100の特定領域(デ
ィレクトリ部分101と、FAT部分102と、書換可
能ファイル部分103とで構成される)の構成方法につ
いて説明する。図5はこれを説明するためのブロック図
であり、データ記憶部100は複数個の消去ブロック1
04で構成され(消去ブロックは最低1個でも良い)、
消去ブロック1個の中に、特定領域(ディレクトリ部分
101と、FAT部分102と、書換可能ファイル部分
103とで構成される)が丁度収っている。
【0049】また、バッファ領域200は消去ブロック
104の1個分と同じ大きさである。消去ブロック一個
に丁度収った特定領域はアクセス制御部300の動作に
よりバッファ200にコピーされ、特定領域への書込
み、読み出しはバッファ200の相当部分に対して行わ
れる。終了動作時にはバッファ200内のデータがデー
タ記憶部内の相当部分へアクセス制御部300によって
書き戻される。
【0050】次に、データ記憶部100の特定領域(デ
ィレクトリ部分101と、FAT部分102と、書換可
能ファイル部分103とで構成される)の構成方法につ
いて説明する。図6はこれを説明するためのブロツク図
であり、データ記憶部100は複数個の消去ブロック1
04で構成され(消去ブロックは最低1個でも良い)、
消去ブロック複数個の中に、特定領域(ディレクトリ部
分101と、FAT部分102と、書換可能ファイル部
分103とで構成される)が丁度収っている。
【0051】また、バッファ領域200は消去ブロック
104の複数個分と同じ大きさ(前述の、特定領域が収
っている複数の消去ブロックと同じ大きさ)である。消
去ブロック複数個に丁度収まった特定領域はアクセス制
御部300の動作によりバッファ200にコピーされ、
特定領域への書込み、読み出しはバッファ200の相当
部分に対して行われる。終了動作時にはバッファ200
内のデータがデータ記憶部100内の相当部分へアクセ
ス制御部300によって書き戻される。
【0052】次に、データ記憶部100の構成方法と、
バッファ200の構成方法とについて説明する。データ
記憶部100は図3を用いて説明した構成とし、バッフ
ァ200は図4を用いて説明した構成とすることができ
る。また、データ記憶部100は図3を用いて説明した
構成とし、バッファ200はアブリケーションソフトが
利用できないメモリの一部を用いた構成とすることがで
きる。
【0053】更に、データ記憶部100は図5を用いて
説明した構成とし、バッファ200は図4を用いて説明
した構成とすることもできる。更にはまた、データ記憶
部100は図5を用いて説明した構成とし、バッファ2
00はアプリケーションソフトが利用できないメモリの
一部を用いた構成とすることもできる。
【0054】更に、データ記憶部100は図6を用いて
説明した構成とし、またバッファ200は図4を用いて
説明した構成とすることもできる。また、データ記憶部
100は図6を用いて説明した構成とし、バッファ20
0はアプリケーションソフトが利用できないメモリの一
部を用いた構成とすることもできる。
【0055】次に、データ記憶手段100の構成方法、
特に、特定領域(ディレクトリ部分101と、FAT部
分102と、書換可能ファイル部分103とで構成され
る)の構成方法について説明する。このデータ記憶部1
00は、図3を用いて説明したように、1ないし複数個
のEEPROMまたは、1ないし複数個のEPROMで
構成されている。このとき、特定領域(ディレクトリ部
分101と、FAT部分102と、書換可能ファイル部
分103とで構成される)は消去ブロック1個を用いて
構成される。
【0056】図7はこの時の特定領域の構成方法につい
て説明するためのブロック図である。この構成方法は、
EEPROM106を用いる場合、実線で示すように1
個のEEPROM106でデータ記憶部100を構成し
ても良いし、一点鎖線で示すように、複数個のEEPR
OMで構成してもよい。このとき、EEPROMの1個
の消去ブロックを特定領域として用いる。
【0057】また、EPROM107を用いる場合も同
様であり、点線で示すように、1個のEPROM107
でデータ記憶部100を構成しても良いし、二点鎖線で
示すように、複数個のEEPROMで構成してもよい。
このとき、二点鎖線で示したように、EPROMの1個
を特定領域として用いる。
【0058】データ記憶部100の他の構成方法に関し
て説明する。データ記憶部100は図3を用いて説明し
たように、1ないし複数個のEEPROMまたは、1な
いし複数個のEPROMで構成される。このとき、特定
領域(ディレクトリ部分101と、FAT部分102
と、書換可能ファイル部分103とで構成される)は消
去ブロック複数個を用いて構成される。
【0059】図8はこの時の特定領域の構成方法につい
て説明するためのブロック図である。この構成方法は、
EEPROMを用いる場合、図8の実線で示すように、
1個のEEPROM106でデータ記憶部を構成しても
良いし、図8の一点鎖線で示すように、複数個のEEP
ROMで構成してもよい。このとき、破線で示したよう
に、EEPROMの複数個の消去ブロックを特定領域と
して用いる。
【0060】また、EPROM107を用いる場合も同
様で、図8の二点鎖線で示すように、複数個のEPRO
Mで構成している。このとき、二点鎖線で示したよう
に、EPROMの複数個を特定領域として用いる。
【0061】次に、バッファ200の構成方法について
説明する。図4に示すアドレス0000H〜9FFFF
Hの間の任意のアドレスのメモリまたは、アッパ・メモ
リまたは、100000H以上の任意のアドレスのメモ
リまたは、EMSメモリ(この場合は、EMSをサポー
トするための何等かのドライバ・ソフトなどが必要とな
る)または、上記のメモリの任意の組み合わせを用い、
データ記憶部100中の特定領域(ディレクトリ部分1
01と、FAT部分102と、書換可能ファイル部分1
03とで構成される)と同じ大きさの領域を確保し、バ
ッファ領域200として使用する。
【0062】この場合、必要な領域が連続したアドレス
に確保できない場合、飛び飛びのアドレスとなってもか
まわない。例えば、アドレス0000H〜9FFFFH
の間の任意のアドレスのAKバイトと、UMBメモリ
(アッパ・メモリ)中のBKバイトと、100000H
以上の任意のアドレスのメモリ中のCKバイトと、EM
SメモリのDKバイトを使い、A+B+C+D合計でデ
ータ記憶部100の特定領域と同じサイズのメモリが確
保できればよい。
【0063】バッファ200の他の構成方法について、
図4に示す、例えば、ROM/RAMバンクの一部、V
RAM(2)等、アプリケーションプログラムが通常直
接アクセスできないメモリの一部を用い、データ記憶部
100中の特定領域(ディレクトリ部分101と、FA
T部分102と、書換可能ファイル部分103とで構成
される)と同じ大きさの領域を確保し、バッファ領域2
00として使用する。
【0064】この場合、必要な領域が連続したアドレス
に確保できない場合、飛び飛びのアドレスとなってもか
まわない。例えば、RAMバンク中のAKバイトと、V
RAM(2)の中のBKバイトを使い、A+B合計でデ
ータ記憶部100の特定領域と同じサイズのメモリが確
保できればよい。
【0065】次に、アクセス制御部300がデータ記憶
部100中の特定領域(ディレクトリ部分101と、F
AT部分102と、書換可能ファイル部分103とで構
成される)のデータを、バッファ200にコピーする動
作について説明する。図10(B)はこの動作について
説明するためのフローチャートである。図10はまた、
アクセス制御部300の初期化処理(図9、ステップ8
60)の説明用フローチャートである。
【0066】先に述べたように、アクセス制御部300
の初期化動作は、このファイル装置が使用されている情
報処理装置の電源がオンされたとき、または、MSDO
Sの初期化時に行われる。したがって、図10(B)に
示したように、初期化処理動作の最初に、電源オン直後
かどうか判断し(図10(B)、ステップ862)、電
源オン直後の場合(フラグなどで判断する)はデータ記
憶部100中の特定領域(ディレクトリ部分101と、
FAT部分102と、書換可能ファイル部分103とで
構成される)のデータを、すべてバッファ200にコピ
ーする。
【0067】このとき、バッファ200として使用する
メモリがまだ確保されていない場合は、メモリの確保を
コピーする前に行う。その後、その他の初期化処理、例
えば、電源オン直後であることを示すフラグのリセッ
ト、アクセス制御部300が動作するための諸設定など
を行う。
【0068】この場合、図9に示した各処理、ステップ
830、840、850、880はそれぞれ、図11、
図12A、図13A、図15に示す動作をする。図11
および図15の動作については、先の説明で述べた。
【0069】図12(A)は図9のステップ840の動
作(特定領域内からの読み出し動作)について説明する
ためのフローチャートである。まず、バッファ200に
特定領域のデータがコピー済みかどうか調べ(図12
(A)、ステップ841)、コピー済であれば、データ
記憶からの読み出しを行う代わりに、バッファ200か
らデータを読み出す(図12(A)、ステップ84
8)。
【0070】このバッファ200からの読出し時には、
読出しアドレスがデータ記憶部100内のアドレスとな
っているためにアクセス制御部300はアドレス変換処
理を行って(図12(A)、ステップ846)、バッフ
ァ200の読出しアドレスとする必要がある。このアド
レス変換の方法としては、データ記憶部100の特定領
域101〜103への読出しアドレスを、予め作成され
ているアドレス変換テーブルを用いてバッファ200の
対応アドレスに変換するようにする。
【0071】例えば、図2におけるFILE Aの先頭
クラスタアドレス“002”が読出しアドレスとしてア
クセス指定されれば、この“002”に対応するバッフ
ァアドレスを予めアドレス変換テーブルに格納してお
き、このアドレス変換テーブルに対して“002”を指
定すれば、自動的にこの“002”に対応するバッファ
アドレスが得られることになる。
【0072】コピー済みでない場合は、データ記憶部1
00中の特定領域のデータを読み出す(図12A、ステ
ップ847)。
【0073】図13(A)は図9のステップ850の動
作(特定領域内からの読み出し動作)について説明する
ためのフローチャートであり、データ記憶部100への
書込みを行う代わりに、バッファ200へデータを書き
込む(図13(A)、ステップ852)。このとき書込
みアドレス変換処理859が図12(A)のステップ8
46と同様に行われる。
【0074】この際、先に述べたように、書き込みファ
イルは必ず記憶部100の特定領域内に記憶されている
ので、特定領域外への書き込みが行われることは無い。
したがって図9のフローチャートでも、特定領域外への
書き込みをチェツクしていない。しかし万一、プログラ
ムの異常などのためにシステムが破壊されることを防止
するために、図13Aにステップ851、853を追加
することも可能である。この場合、書込みが特定領域外
への書込みかどうか調べ(図10ステップ851)、特
定領域外への書込みの場合はエラーとする(図10ステ
ップ853)。エラーの処理方法としては、例えば、M
SDOSの「書込み禁止ファイルへの書込み」などのエ
ラーとして処理することができる。
【0075】次に、アクセス制御部300がデータ記憶
部100中の特定領域(ディレクトリ部分101と、F
AT部分102と、書換可能ファイル部分103とで構
成される)のデータを、バッファにコピーする動作につ
いて、図9、図10A、図11、図12B、図13B、
図15を用いて説明する。
【0076】図9は本実施例のアクセス制御部300の
動作を説明するためのフローチャートであり、図10
A、図11、図12B、図13B、図15はそれぞれ、
図9のステップ860、830、840、850、88
0の動作を説明するフローチャートである。
【0077】最初に、初期化動作について説明する。初
期化動作は、このファイル装置が使われている装置の電
源オン時、あるいはMSDOSの初期化動作時に行わ
れ、このファイル装置の動作状態の初期設定を行うため
の動作である。アクセス制御部300は、ます、与えら
れた動作要求が終了処理要求かどうか調べ(図9ステッ
プ870)、次にこれが初期化要求かどうかを調べ(図
9ステップ800)、与えられた動作要求が初期化要求
である場合、初期化処理(図9ステップ860)を行
う。このとき、データ記憶部100内の特定領域(ディ
レクトリ部分101と、FAT部分102と、書換可能
ファイル部分103とで構成される)からバッファ20
0へのデータのコピーは行わず、その他の初期化処理の
みを行う(図10(A)、ステップ861)。その他の
初期化処理とは、例えば、バッファ200に使用するメ
モリの確保等、アクセス制御部300が動作するための
諸設定などをいう。
【0078】次に、読み出し動作について説明する。ア
プリケーションソフトウエアから、MSDOSを経て、
データ記憶部100からのデータの読み出しが行われた
場合、アクセス制御部300は、これが終了処理要求か
どうか調べ(図9ステップ870)、次にこれが初期化
要求かどうかを調べ(図9ステップ800)、次に書き
込み要求かどうかを調べ(図9ステップ810)、次に
読み出しが、特定領域内(ディレクトリ101、又はF
AT102、又は書換可能ファイル103で構成され
る)からの読み出しなのか、それとも特定領域外(図1
Bのその他の部分105)からの読み出しなのかを判別
する(図9ステップ820)。
【0079】この判別は、アクセス制御部300の初期
化時に与えられたパラメータで判別、またはプログラム
中の判別処理ステップ820に組み込んでおく、などの
方法で行われる。判別の結果、特定領域外からの読出し
の場合は、データ記憶部のその他の部分105から指定
されたデータを読出し(図9ステップ830、図11ス
テップ831)、特定領域内からの読み出しの場合は、
最初の読み出しかどうか調べ(図12B、ステップ84
4)、最初であれば、データ記憶部100内の特定領域
(ディレクトリ部分101と、FAT部分102と、書
換可能ファイル部分103とで構成される)からバッフ
ァ200へのデータのコピーを行い(図12B、ステッ
プ845)、アドレス変換を行って(図12(B)、ス
テップ846)バッファ200に記憶されているデータ
から、読み出し要求のあったデータ記憶部中の記憶位置
に相当するデータを読み出し(図12B、ステップ84
2)、MSDOSを経由してアプリケーションソフトウ
エアにデータを返す。
【0080】次に、書き込み動作について説明する。ア
プリケーションソフトウエアから、MSDOSを経て、
データ記憶部100へのデータの書き込みが行われた場
合、アクセス制御部300は、これが終了処理要求かど
うか調べ(図9ステップ870)、次にこれが初期化要
求かどうかを調べ(図9ステップ800)、次に書き込
み要求かどうかを調べ(図9ステップ810)、書き込
みであった場合、最初の書込みかどうか調べ(図13
B、ステップ854)、最初であれば、データ記憶部1
00内の特定領域(ディレクトリ部分101と、FAT
部分102と、書換可能ファイル部分103とで構成さ
れる)からバッファ200へのデータのコピーを行い
(図13(B)、ステップ855)、アドレス変換を行
って(図13(B)、ステップ859)、バッファ20
0内の、書き込み要求のあったデータ記憶部中の記憶位
置に相当する位置にデータを書き込む(図13B、ステ
ップ852)。
【0081】この場合、書き込みを行うファイルは、デ
ータ記憶部の書換可能ファイル部分103に記録されて
いるので、この部分と、ディレクトリ部分101、FA
T部分102以外には書込みは起こらないはずである。
したがって、特定領域以外の部分への書込みは発生しな
いはずである。万一、プログラムのエラーなどにより、
特定領域外への書込みが発生したときに、ファイルが破
壊されるなどの不都合が発生しないように、ステップ8
50中にエラー判定を付加することも可能である(図1
3(B)、ステップ851、853)。
【0082】次に終了動作について説明する。終了動作
は、このファイル装置が使われている装置の電源オフ
時、あるいはこのファイル装置の使用終了時に行われ、
このファイル装置の動作の終了を行うための動作であ
る。アクセス制御部300は、まず、与えられた動作要
求が終了処理要求かどうか調べ(図9、ステップ87
0)、与えられた動作要求が終了処理要求である場合、
終了処理(図9、ステップ860)を行う。
【0083】図15は終了処理について説明するための
フローチャートである。終了処理では、まず、バッファ
200内のデータをデータ記憶部100に書き込む(図
15、ステップ881)。次に、その他の終了処理(図
15、ステップ882)を行う。その他の終了処理と
は、例えば、バッファ200として用いていたメモリを
開放し、他のプログラムなどがそのメモリを使用できる
ようにする。あるいは、アクセス制御部300のプログ
ラム自身が常駐していたメモリを解放するなどが考えら
れる。
【0084】次に、アクセス制御手段300がデータ記
憶部100中の特定領域(ディレクトリ部分101と、
FAT部分102と、書換可能ファイル部分103とで
構成される)のデータを、バッファ手段にコピーする動
作について、図9、図10A、図11、図12A、図1
3B、図15を用いて説明する。
【0085】図9はこの場合のアクセス制御部300の
動作を説明するためのフローチャートであり、図10
A、図11、図12A、図13B、図15はそれぞれ、
図9のステップ860、830、840、850、88
0の動作を説明するフローチャートである。
【0086】最初に、初期化動作について説明する。初
期化動作は、このファイル装置が使われている装置の電
源オン時、あるいはMSDOSの初期化動作時に行わ
れ、このファイル装置の動作状態の初期設定を行うため
の動作である。
【0087】アクセス制御部300は、まず、与えられ
た動作要求が終了処理要求かどうか調べ(図9、ステッ
プ870)、次にこれが初期化要求かどうかを調べ(図
9、ステップ800)、与えられた動作要求が初期化要
求である場合、初期化処理(図9、ステップ860)を
行う。このとき、データ記憶部100内の特定領域(デ
ィレクトリ部分101と、FAT部分102と、書換可
能ファイル部分103とで構成される)からバッファ2
00へのデータのコピーは行わず、その他の初期化処理
のみを行う。
【0088】次に、読み出し動作について説明する。ア
プリケーションソフトウエアから、MSDOSを経て、
データ記憶部100からのデータの読み出しが行われた
場合、アクセス制御部300は、これが終了処理要求か
どうか調べ(図9、ステップ870)、次にこれが初期
化要求かどうかを調べ(図9、ステップ800)、次に
書込み要求かどうかを調べ(図9、ステップ810)、
次に読み出しが、図1Bに示すディレクトリ101、又
はFAT102、又は書換可能ファイル103の特定領
域内からの読み出しなのか、それとも特定領域外(図1
Bのその他の部分105)からの読み出しなのかを判別
する(図9、ステップ820)。
【0089】この判別は、アクセス制御部300の初期
化時に与えられたパラメータで判別、またはプログラム
中の判別処理ステップ820に組み込んでおくなどの方
法で行われる。判別の結果、特定領域外からの読み出し
の場合は、データ記憶部のその他の部分105から指定
されたデータを読み出し(図9、ステップ830、図1
1、ステップ831)、特定領域内からの読み出しの場
合は、特定領域内のデータがデータ記憶部からバッファ
にコピーされているか調べ(図12A、ステップ84
1)、コピー前であれば、バッファからではなく、デー
タ記憶部の特定領域内からデータを読みだす(図12
(A)、ステップ847)。コピー済みであれば、アド
レス変換を行って(図12(A)、ステップ846)、
バッファ200に記憶されているデータから、読み出し
要求のあったデータ記憶部中の記憶位置に相当するデー
タを読み出し(図12A、ステップ848)、MSDO
Sを経由してアプリケーションソフトウエアにデータを
返す。
【0090】次に、書き込み動作について説明する。ア
プリケーションソフトウエアから、MSDOSを経て、
データ記憶部100へのデータの書き込みが行われた場
合、アクセス制御部300は、これが終了処理要求かど
うか調べ(図9、ステップ870)、次にこれが初期化
要求かどうかを調べ(図9、ステップ800)、次に書
き込み要求かどうかを調べ(図9、ステップ810)、
書き込みであった場合、最初の書込みかどうか調べ(図
13B、ステップ854)、最初であれば、データ記憶
部100内の特定領域(ディレクトリ部分101と、F
AT部分102と、書換可能ファイル部分103とで構
成される)からバッファ200へのデータのコピーを行
う(図13B、ステップ855)。そして、アドレス変
換を行って(図13(B)、ステップ859)、バッフ
ァ200に記憶されているデータから、バッファ200
内の、書き込み要求のあったデータ記憶部中の記憶位置
に相当する位置にデータを書き込む(図13B、ステッ
プ852)。
【0091】この場合、書込みを行うファイルは、デー
タ記憶部の書換可能ファイル部分103に記録されてい
るので、この部分と、ディレクトリ部分101、FAT
部分102以外には書込みは起こらないはずである。し
たがって、特定領域以外の部分への書込みは発生しない
はずである。万一、プログラムのエラーなどにより、特
定領域外への書込みが発生したときに、ファイルが破壊
されるなどの不都合が発生しないように、ステップ85
0中にエラー判定を付加することも可能である(図13
B、ステップ851、853)。
【0092】次に終了動作について説明する。終了動作
は、このファイル装置が使われている装置の電源オフ
時、あるいはこのファイル装置の使用終了時に行われ、
このファイル装置の動作の終了を行うための動作であ
る。アクセス制御部300は、まず、与えられた動作要
求が終了処理要求かどうか調べ(図9、ステップ87
0)、与えられた動作要求が終了処理要求である場合、
終了処理(図9、ステップ860)を行う。図15は終
了処理について説明するためのフローチャートである。
【0093】終了処理では、まず、バッファ200内の
データをデータ記憶部100に書き込む(図15、ステ
ップ881)。次に、その他の終了処理(図15、ステ
ップ882)を行う。その他の終了処理とは、例えば、
バッファ200として用いていたメモリを開放し、他の
プログラムなどがそのメモリを使用できるようにする、
あるいは、アクセス制御部300のプログラム自身が常
駐していたメモリを開放するなど、が考えられる。
【0094】次に、アクセス制御部300がデータ記憶
部100中の特定領域(ディレクトリ部分101と、F
AT部分102と、書換可能ファイル部分103とで構
成される)のデータを、バッファにコピーする動作につ
いて、図14を用いて説明する。
【0095】図14はこの場合のアクセス制御部300
の動作を説明するためのフローチャートで、図10B、
図12B、図13B、のステップ855、863、84
5の動作を説明するフローチャートである。
【0096】今までの実施例の説明で述べたように、書
込みを行うファイルは、データ記憶部の書換可能ファイ
ル部分103に記録されているので、この部分とディレ
クトリ部分101、FAT部分102以外には書込みは
起こらない。したがって、特定領域以外の部分への書込
みは発生しない。しかし万一、プログラムのエラーなど
により、特定領域外への書込みが発生したときに、ファ
イルが破壊されるなどの不都合が発生しないように、ス
テップ850中にエラー判定を付加することも可能であ
り(図13B、ステップ851、853)通常の使用で
あれば、不都合は生じない。
【0097】しかし、予め書換可能ファイルとして設定
していないファイルへの書込みを、このファイル装置の
使用者が行った場合や、書換可能ファイルのサイズが変
わったとき、ファイルの記憶位置をMSDOSシステム
が変えてしまった場合などに、特定領域以外の部分へ、
ファイルの書込みが行われる可能性もある。そこで、デ
ータ記憶部のその他の領域105の部分を、使用不可能
領域としてしまうことで、この問題を回避することが考
えられる。
【0098】データ記憶部100中の特定領域のデータ
をバッファ200へコピーした後(図14、ステップ8
56)、データ記憶部100のその他の領域105のう
ち、使用されていない領域をすべて使用不可にする(M
SDOSがファイル装置の壊れたクラスタ/セクタに付
けるマークを付ける、ダミーのファイルを書き込む等)
(図14、ステップ858)。これにより、MSDOS
が特定領域外にファイルを書き込もうとしても、空き部
分が無いので、書き込めない。したがって、ファイル装
置の破壊などの不都合が避けられる。
【0099】
【発明の効果】以上説明してきたように、本発明による
書換え可能なROMファイル装置は、ファイル装置中で
書換えを行われる可能性のある部分を1箇所にまとめ、
まとめた部分のデータを別の記憶手段に一度コピーし、
コピー後の書換えはすべてコピーした別の記憶手段上の
データに対して行い、装置の使用を終了する直前に、も
との書換え可能なROMに書き戻すことによって、ファ
イルの書換えにかかる時間を短縮し、さらに、EEPR
OM等の書換回数に制限があるような記憶素子の寿命を
伸ばすという効果がある。
【図面の簡単な説明】
【図1】本発明の実施例の書換可能なROMファイル装
置のブロック図である。
【図2】MSDOSのファイル管理方法の説明図であ
る。
【図3】データ記憶部の構成方法を示すブロック図であ
る。
【図4】一般的なMSDOSを用いた情報処理装置のメ
モリ構成図である。
【図5】データ記憶部の構成方法を示すブロック図であ
る。
【図6】データ記憶部の構成方法を示すブロック図であ
る。
【図7】データ記憶部の構成方法を示すブロック図であ
る。
【図8】データ記憶部の構成方法を示すブロック図であ
る。
【図9】アクセス制御部の動作を示すフローチャートで
ある。
【図10】アクセス制御部の動作を示すフローチャート
で、特に初期化処理について詳しく示すフローチャート
である。
【図11】アクセス制御部の動作を示すフローチャート
で、特に特定領域外から読み出し動作について詳しく示
すフローチャートである。
【図12】アクセス制御部の動作を示すフローチャート
で、特に特定領域内から読み出し動作について詳しく示
すフローチャートである。
【図13】アクセス制御部の動作を示すフローチャート
で、特に特定領域内への書込み動作について詳しく示す
フローチャートである。
【図14】アクセス制御部の動作を示すフローチャート
で、特に特定領域内をバッファ手段にコピーする動作に
ついて詳しく示すフローチャートである。
【図15】アクセス制御部の動作を示すフローチャート
で、特に終了時について詳しく示すフローチャートであ
る。
【符号の説明】
100 データ記憶部 101 ディレクトリ 102 FAT 103 書換可能ファイル 104 消去ブロック 105 その他の部分 200 バッファ 201 ディレクトリ 202 FAT 203 書換可能ファイル(R/Wファイル) 300 アクセス制御部 400 BIOS 500 MSDOS 600 アプリケーション・ソフト 700 メモリマップ 701 割り込みベクトル 702 システム 703 メイン・メモリ 704 アッパ・メモリ 705 ハイ・メモリ

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 書換え可能なROMファイル装置であっ
    て、ファイルアロケーションテーブル格納領域、ディレ
    クトリ格納領域及び書換え可能ファイル領域が一まとま
    りとされた特定領域を有するデータ記憶手段と、前記デ
    ータ記憶手段の特定領域の記憶容量を少なくとも有する
    バッファ手段と、前記データ記憶手段の特定領域へのア
    クセス前に前記データ記憶手段のファイルアロケーショ
    ンテーブル格納領域、ディレクトリ格納領域及び書換え
    可能ファイル領域が一まとまりとされた前記特定領域の
    格納データを前記バッファ手段へコピーを行ない、以後
    の前記データ記憶手段の特定領域へのアクセスを前記バ
    ッファ手段へのアクセスに変換し、終了指示に応答して
    前記バッファ手段の格納データを前記データ記憶手段の
    特定領域へ書き戻すよう制御する制御手段と、前記デー
    タ記憶手段の特定領域以外の領域に対する書込みアクセ
    スを禁止する手段とを含むことを特徴とする書き換え可
    能なROMファイル装置。
  2. 【請求項2】 前記バッファ手段へのコピーは、装置電
    源供給後の初期化処理動作時に行うようにしたことを特
    徴とする請求項1記載の書き換え可能なROMファイル
    装置。
  3. 【請求項3】 前記バッファ手段へのコピーは、前記デ
    ータ記憶手段の特定領域のデータへの最初のアクセスに
    応答して行うようにしたことを特徴とする請求項1記載
    の書き換え可能なROMファイル装置。
  4. 【請求項4】 前記最初のアクセスは最初の書込みアク
    セスであることを特徴とする請求項3記載の書き換え可
    能なROMファイル装置。
  5. 【請求項5】 前記データ記憶手段は、少なくとも1個
    のEEPROMまたはEPROMからなることを特徴と
    する請求項1〜4いずれか記載の書き換え可能なROM
    ファイル装置。
  6. 【請求項6】 前記データ記憶手段の特定領域として前
    記データ記憶手段の少なくとも1つの最小書換え単位を
    使用することを特徴とする請求項1〜5いずれか記載の
    書き換え可能なROMファイル装置。
JP28850994A 1994-11-24 1994-11-24 書換え可能なromファイル装置 Expired - Fee Related JP2669365B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP28850994A JP2669365B2 (ja) 1994-11-24 1994-11-24 書換え可能なromファイル装置
US08/552,290 US5933846A (en) 1994-11-24 1995-11-02 Rewritable ROM file device having read/write buffer access control via copy of rewritable area
CA002162818A CA2162818C (en) 1994-11-24 1995-11-14 Rewritable rom file device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28850994A JP2669365B2 (ja) 1994-11-24 1994-11-24 書換え可能なromファイル装置

Publications (2)

Publication Number Publication Date
JPH08147202A JPH08147202A (ja) 1996-06-07
JP2669365B2 true JP2669365B2 (ja) 1997-10-27

Family

ID=17731155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28850994A Expired - Fee Related JP2669365B2 (ja) 1994-11-24 1994-11-24 書換え可能なromファイル装置

Country Status (3)

Country Link
US (1) US5933846A (ja)
JP (1) JP2669365B2 (ja)
CA (1) CA2162818C (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
MY122279A (en) * 1999-03-03 2006-04-29 Sony Corp Nonvolatile memory and nonvolatile memory reproducing apparatus
US7102671B1 (en) 2000-02-08 2006-09-05 Lexar Media, Inc. Enhanced compact flash memory card
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123419D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Data handling system
GB0123417D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US6950918B1 (en) 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US7108605B2 (en) * 2002-09-30 2006-09-19 Igt EPROM file system in a gaming apparatus
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
EP1686482B1 (en) * 2003-11-18 2013-03-06 Panasonic Corporation File recording device
JP2007515024A (ja) 2003-12-17 2007-06-07 レクサー メディア, インコーポレイテッド 盗難を避けるための電子装置の販売場所におけるアクティブ化
US20050152251A1 (en) * 2004-01-08 2005-07-14 Victor Company Of Japan, Ltd. Method and apparatus for recording check data of file system on recording medium
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
CN100383736C (zh) * 2004-05-08 2008-04-23 鸿富锦精密工业(深圳)有限公司 串行高阶硬盘架构控制器自动初始化方法
SE527843C2 (sv) * 2004-06-03 2006-06-20 Roxtec Ab Brandskydd för kabelgenomföringar
US6967869B1 (en) * 2004-07-22 2005-11-22 Cypress Semiconductor Corp. Method and device to improve USB flash write performance
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
JP4513818B2 (ja) * 2007-03-07 2010-07-28 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置用プロセスカートリッジ及び画像形成装置
KR100826654B1 (ko) * 2007-04-24 2008-05-06 주식회사 하이닉스반도체 플래시 메모리소자의 동작방법 및 이를 위한 제어회로
US11204714B2 (en) * 2018-10-23 2021-12-21 Microsoft Technology Licensing, Llc Hybrid use of non-volatile memory as storage device and cache

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JPH04313882A (ja) * 1991-04-12 1992-11-05 Fuji Photo Film Co Ltd メモリカードの記録管理方式
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
GB2256735B (en) * 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
EP0528280B1 (en) * 1991-08-09 1997-11-12 Kabushiki Kaisha Toshiba Memory card apparatus
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
JP3412839B2 (ja) * 1992-07-01 2003-06-03 株式会社東芝 不揮発性半導体メモリ装置
JPH06195258A (ja) * 1992-07-08 1994-07-15 Nec Corp 半導体記憶装置
JPH0675836A (ja) * 1992-08-25 1994-03-18 Nippon Densan Corp 補助記憶装置
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US5487161A (en) * 1992-11-25 1996-01-23 Norand Corp. Computerized data terminal with switchable memory address for start-up and system control instructions
JPH06187205A (ja) * 1992-12-18 1994-07-08 Nikon Corp Eepromのアクセス方法および測量機
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5542077A (en) * 1993-09-10 1996-07-30 Compaq Computer Corporation Personal computer with CMOS memory not having a separate battery
JP3662946B2 (ja) * 1993-09-22 2005-06-22 株式会社東芝 ファイル管理方式および携帯可能電子装置
US5590373A (en) * 1994-07-25 1996-12-31 International Business Machines Corporation Field programming apparatus and method for updating programs in a personal communications device
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
日経エレクトロニクス NO.547(1992−2−17)日経BP社、P.133−186、"外部記憶装置に新風、フラッシュメモリーが1.8インチHDDに挑む"

Also Published As

Publication number Publication date
CA2162818A1 (en) 1996-05-25
CA2162818C (en) 1999-10-19
US5933846A (en) 1999-08-03
JPH08147202A (ja) 1996-06-07

Similar Documents

Publication Publication Date Title
JP2669365B2 (ja) 書換え可能なromファイル装置
US5860083A (en) Data storage system having flash memory and disk drive
JP2582487B2 (ja) 半導体メモリを用いた外部記憶システム及びその制御方法
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
JP2856621B2 (ja) 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US4984149A (en) Memory access control apparatus
JP3197815B2 (ja) 半導体メモリ装置及びその制御方法
US6401166B2 (en) Data processing system, block erasing type memory device and memory storing program for controlling memory device
US6412040B2 (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JP4238514B2 (ja) データ記憶装置
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
US20090150588A1 (en) Hard Disk Drive Cache Memory and Playback Device
US7681008B2 (en) Systems for managing file allocation table information
JPH08328762A (ja) 半導体ディスク装置及びそのメモリ管理方法
EP0544252A2 (en) Data management system for programming-limited type semiconductor memory and IC memory card having the data management system
JPH0778766B2 (ja) ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
JPH11134875A (ja) 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
WO2006098212A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2011238176A (ja) 情報処理装置およびドライバ
EP0777183A1 (en) Computer cache system
JP2000298608A (ja) コンピュータデータ記憶媒体及びメモリ管理方法
JP2011520176A (ja) 光ディスクドライブのように動作可能なメモリドライブ及びメモリドライブを光ディスクドライブに仮想化する方法
JP2000163291A (ja) コンピュ―タ読取り可能媒体を準備するためのコンピュ―タシステムおよび方法
JPH113287A (ja) 記憶装置およびそれに用いられる記憶領域管理方法
JPH0695955A (ja) フラッシュ・ファイル・システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070704

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080704

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090704

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100704

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 16

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

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 16

LAPS Cancellation because of no payment of annual fees