JPH11110300A - 外部記憶装置、データ処理装置及びデータ処理方法 - Google Patents

外部記憶装置、データ処理装置及びデータ処理方法

Info

Publication number
JPH11110300A
JPH11110300A JP9267178A JP26717897A JPH11110300A JP H11110300 A JPH11110300 A JP H11110300A JP 9267178 A JP9267178 A JP 9267178A JP 26717897 A JP26717897 A JP 26717897A JP H11110300 A JPH11110300 A JP H11110300A
Authority
JP
Japan
Prior art keywords
data
block
stored
blocks
management information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9267178A
Other languages
English (en)
Other versions
JP3070539B2 (ja
Inventor
Hiroaki Fuse
博明 布施
Satoru Sasa
哲 佐々
Atsushi Onoe
淳 尾上
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP9267178A priority Critical patent/JP3070539B2/ja
Publication of JPH11110300A publication Critical patent/JPH11110300A/ja
Priority to JP34682699A priority patent/JP3640154B2/ja
Application granted granted Critical
Publication of JP3070539B2 publication Critical patent/JP3070539B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 外部記憶装置が強制的に取り外されたりし
て、同じ論理アドレスを持つ複数のブロックが同時に存
在するような状態(論理アドレスエラー)や、連結アド
レスで指し示されたブロックが存在しないような状態
(連結アドレスエラー)になったとしても、それらのエ
ラーを検出し適切に修復できるようにする。 【解決手段】 記憶領域が複数のブロックに分割されて
なる外部記憶装置にデータを格納する際に、ブロックに
論理アドレスを割り当ててデータを格納するとともに、
データが格納されるブロックに当該データの新旧を示す
識別番号を格納する。そして、外部記憶装置からデータ
を読み出す際に、同じ論理アドレスを持つ複数のブロッ
クが存在する場合には、識別番号に基づいて、それらの
ブロックに格納されているデータの新旧を判別し、新し
い方のデータは無効なデータとし、古い方のデータを有
効なデータとする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、記憶領域が複数の
ブロックに分割されてなる外部記憶装置に関する。ま
た、本発明は、記憶領域が複数のブロックに分割されて
なる外部記憶装置にデータを格納するデータ処理装置に
関する。また、本発明は、記憶領域が複数のブロックに
分割されてなる外部記憶装置にデータを格納する際のデ
ータ処理方法に関する。
【0002】
【従来の技術】パーソナルコンピュータやデジタルスチ
ルカメラ等のようなデータ処理装置に用いられる外部記
憶装置として、フラッシュメモリを備えた外部記憶装置
がある。
【0003】フラッシュメモリを備えた外部記憶装置
は、記憶領域を複数のブロックに分割し、データ領域の
管理をブロック単位で行う。ここで、各ブロックはデー
タ消去の単位となる。すなわち、データを消去する際
は、当該データを含むブロック全体に対して初期化処理
を施す。これにより、当該ブロックに格納されているデ
ータが一括して消去される。
【0004】このような外部記憶装置では、データをブ
ロックに格納するときに、それらのブロックに対してユ
ニークな論理アドレスが設定される。そして、各ブロッ
クは、この論理アドレスを用いて管理される。
【0005】また、外部記憶装置に格納されるデータ
は、通常、ファイル単位で外部記憶装置に格納される
が、一つのファイルが複数のブロックにわたる場合に
は、それらのブロックの連結情報が必要となる。そこ
で、一つのファイルが複数のブロックにわたる場合に
は、当該ファイルを格納しているブロックのそれぞれ
に、次のブロックの論理アドレス(以下、連結アドレス
と称する。)が格納される。
【0006】
【発明が解決しようとする課題】従来、このような外部
記憶装置では、記憶領域内にエラーがあるか否かを検査
する処理や、エラーがあった場合に当該エラーの修復を
試みる処理を、外部記憶装置の起動時に毎回実行するよ
うにしていた。なお、以下の説明では、このような処理
のことを、エラー検出訂正処理と称する。通常、このよ
うなエラー検出訂正処理は、比較的に負荷が大きく処理
に時間を要する処理である。したがって、従来の外部記
憶装置は、エラー検出訂正処理のために、速やかに起動
することができないという問題があった。
【0007】また、データ領域の管理をブロック単位で
行うような外部記憶装置では、ブロックにデータを新規
に書き込んでいるときや、ブロックに格納されているデ
ータを更新しているときなどに、いきなり電源が遮断さ
れたり、データ処理装置から外部記憶装置が強制的に取
り外されたりしたような場合に、同じ論理アドレスを持
つ複数のブロックが同時に存在するような状態(以下、
論理アドレスエラーと称する。)となったり、連結アド
レスで指し示されたブロックが存在しないような状態
(以下、連結アドレスエラーと称する。)となったりす
る可能性がある。当然の事ながら、このような状態にな
ると、ファイルが予期せぬブロックに連結されてしまっ
たりして、外部記憶装置を正常に使用することができな
くなってしまう。
【0008】しかしながら、従来の外部記憶装置は、論
理アドレスエラーや連結アドレスエラーを検出して適切
に修復するような機能を備えていなかった。そのため、
従来は、いきなり電源が遮断されたり、データ処理装置
から外部記憶装置が強制的に取り外されたりしたような
場合に、その後、外部記憶装置を正常に使用することが
できなくなってしまうことがあった。
【0009】本発明は、以上のような従来の実情に鑑み
て提案されたものであり、外部記憶装置に論理アドレス
エラーや連結アドレスエラーが生じても、それらのエラ
ーを検出し適切に修復できるようにすることを目的とし
ている。
【0010】
【課題を解決するための手段】本発明に係る第1の外部
記憶装置は、記憶領域が複数のブロックに分割されてな
り、各ブロックに対して論理アドレスが割り当てられる
外部記憶装置である。各ブロックには、データと共に当
該データの新旧を示す識別番号が格納される。そして、
同じ論理アドレスを持つ複数のブロックが存在する場合
には、識別番号に基づいて、それらのブロックに格納さ
れているデータの新旧が判別され、新しい方のデータは
無効なデータとされ、古い方のデータが有効なデータと
される。
【0011】また、本発明に係る第2の外部記憶装置
は、記憶領域が複数のブロックに分割されてなり、各ブ
ロックに対して論理アドレスが割り当てられる。また、
ブロックに格納するデータをブロック毎に管理するため
の情報である分散管理情報が各ブロックにそれぞれ格納
され、全ブロックを管理するための情報である集合管理
情報が各ブロックの分散管理情報から生成され、ブロッ
ク全体が集合管理情報に基づいて管理される。この外部
記憶装置は、データがファイル単位で格納されるととも
に、一つのファイルが複数のブロックにわたる場合に
は、当該ファイルを格納しているブロックのそれぞれに
次のブロックの論理アドレスが連結アドレスとして格納
される。そして、集合管理情報が生成されるときに、連
結アドレスが指し示す論理アドレスを持つブロックが存
在するか否かが調べられる。
【0012】本発明に係る第1のデータ処理装置は、記
憶領域が複数のブロックに分割されてなる外部記憶装置
にデータを格納する際に、ブロックに論理アドレスを割
り当ててデータを格納するとともに、データが格納され
るブロックに当該データの新旧を示す識別番号を格納す
る。そして、外部記憶装置からデータを読み出す際に、
同じ論理アドレスを持つ複数のブロックが存在する場合
には、識別番号に基づいて、それらのブロックに格納さ
れているデータの新旧を判別し、新しい方のデータは無
効なデータとし、古い方のデータを有効なデータとす
る。
【0013】また、本発明に係る第2のデータ処理装置
は、記憶領域が複数のブロックに分割されてなる外部記
憶装置に対して、各ブロックに論理アドレスを割り当て
てデータを格納するデータ処理装置である。そして、外
部記憶装置に格納するデータをブロック毎に管理するた
めの情報である分散管理情報を各ブロックにそれぞれ格
納するとともに、全ブロックを管理するための情報であ
る集合管理情報を各ブロックの分散管理情報から生成し
て当該集合管理情報に基づいてブロック全体を管理す
る。また、外部記憶装置にデータをファイル単位で格納
する際に、一つのファイルが複数のブロックにわたる場
合には、当該ファイルが格納されるブロックのそれぞれ
に次のブロックの論理アドレスを連結アドレスとして格
納する。そして、集合管理情報を生成するときに、連結
アドレスが指し示す論理アドレスを持つブロックが存在
するか否かを調べる。
【0014】本発明に係る第1のデータ処理方法では、
記憶領域が複数のブロックに分割されてなる外部記憶装
置にデータを格納する際に、ブロックに論理アドレスを
割り当ててデータを格納するとともに、データが格納さ
れるブロックに当該データの新旧を示す識別番号を格納
する。そして、外部記憶装置からデータを読み出す際
に、同じ論理アドレスを持つ複数のブロックが存在する
場合には、識別番号に基づいて、それらのブロックに格
納されているデータの新旧を判別し、新しい方のデータ
は無効なデータとし、古い方のデータを有効なデータと
する。
【0015】また、本発明に係る第2のデータ処理方法
では、記憶領域が複数のブロックに分割されてなる外部
記憶装置に対して、各ブロックに論理アドレスを割り当
ててデータを格納する際に、外部記憶装置に格納するデ
ータをブロック毎に管理するための情報である分散管理
情報を各ブロックにそれぞれ格納する。また、全ブロッ
クを管理するための情報である集合管理情報を各ブロッ
クの分散管理情報から生成して当該集合管理情報に基づ
いてブロック全体を管理する。また、外部記憶装置にデ
ータをファイル単位で格納する際に、一つのファイルが
複数のブロックにわたる場合には、当該ファイルが格納
されるブロックのそれぞれに次のブロックの論理アドレ
スを連結アドレスとして格納する。そして、上記集合管
理情報を生成するときに、連結アドレスが指し示す論理
アドレスを持つブロックが存在するか否かを調べる。
【0016】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。
【0017】1.システムの全体構成 本発明が適用されるシステムの一例について、その全体
構成を図1に示す。このシステムは、ホスト側システム
となるデータ処理装置1と、シリアルインターフェース
を介してデータ処理装置1に接続される外部記憶装置で
あるメモリカード2とから構成される。
【0018】なお、ここでは、データ処理装置1とメモ
リカード2との間でのデータのやり取りをシリアルイン
ターフェースによって行うシステムを例に挙げるが、本
発明は、データのやり取りをパラレルインターフェース
によって行うシステムに対しても適用可能である。
【0019】データ処理装置1は、演算処理装置(CP
U)3と、内部メモリ4と、補助記憶装置5と、シリア
ルインターフェース回路6とを備え、これらがバス7に
よって相互に接続されてなる。このデータ処理装置1
は、例えば、補助記憶装置5に格納されているプログラ
ムを読み出して、当該プログラムを、内部メモリ4をワ
ークエリアとして使用して、CPU3により実行する。
このとき、必要に応じて、シリアルインターフェース回
路6を介してメモリカード2との間でデータのやり取り
を行う。
【0020】なお、本発明が適用されるシステムに使用
されるデータ処理装置1は、外部記憶装置との間でデー
タのやり取りが可能なものであるならば特に限定される
ものではなく、本発明は、パーソナルコンピュータ、デ
ジタルスチルカメラ、デジタルビデオカメラ等、種々の
データ処理装置に適用可能である。
【0021】データ処理装置1とメモリカード2とは、
シリアルインターフェースによって接続されており、具
体的には、少なくとも3本のデータ線SCLK,Sta
te,DIOによって接続される。すなわち、データ処
理装置1とメモリカード2とは、少なくとも、データ伝
送時にクロック信号を伝送する第1のデータ線SCLK
と、データ伝送時に必要なステータス信号を伝送する第
2のデータ線Stateと、メモリカード2に書き込む
データ又はメモリカード2から読み出すデータ等をシリ
アルに伝送する第3のデータ線DIOとによって接続さ
れ、これらを介して、データ処理装置1とメモリカード
2との間でのデータのやり取りを行う。
【0022】データ処理装置1とメモリカード2との間
でのデータのやり取りは、通常、ヘッダーと実データと
から構成されるファイル単位で行われる。なお、ファイ
ルのヘッダーには、例えば、ファイルにアクセスするた
めの情報や、データ処理装置1で実行されるプログラム
で必要とされる情報等が格納される。
【0023】2.メモリカードの構成 メモリカード2は、図2に示すように、いわゆるコント
ロールICからなるコントローラ11と、コントローラ
11によって管理されるフラッシュメモリ12とを備え
ている。
【0024】コントローラ11は、シリアル/パラレル
変換やパラレル/シリアル変換等を行うシリアル/パラ
レル・パラレル/シリアル・インターフェース・シーケ
ンサ13(以下、S/P&P/S・インターフェース・
シーケンサ13と称する。)と、フラッシュメモリ12
へのインターフェースを司るフラッシュメモリ・インタ
ーフェース・シーケンサ14と、S/P&P/S・イン
ターフェース・シーケンサ13とフラッシュメモリ・イ
ンターフェース・シーケンサ14との間でやり取りされ
るデータを一時的に記憶するページバッファ15と、エ
ラー訂正の処理を行うエラー訂正回路16と、フラッシ
ュメモリ12へのアクセスを制御する制御コマンドの生
成等を行うコマンドジェネレータ17と、このメモリカ
ード2のバージョン情報や各種属性情報等が格納されて
いるコンフィグレーションROM18と、各回路に対し
てそれらの動作に必要なクロック信号を供給する発振器
19とを備えている。
【0025】S/P&P/S・インターフェース・シー
ケンサ13は、少なくとも上述した3本のデータ線SC
LK,State,DIOを介して、データ処理装置1
のシリアルインターフェース回路6に接続され、これら
のデータ線SCLK,State,DIOを介して、デ
ータ処理装置1との間でデータのやり取りを行う。すな
わち、S/P&P/S・インターフェース・シーケンサ
13は、ページバッファ15から送られてきたパラレル
データをシリアルデータに変換して、データ処理装置1
のシリアルインターフェース回路6へ送出する。また、
S/P&P/S・インターフェース・シーケンサ13
は、データ処理装置1のシリアルインターフェース回路
6から送られてきたシリアルデータをパラレルデータに
変換して、ページバッファ15へ送出する。
【0026】このS/P&P/S・インターフェース・
シーケンサ13とデータ処理装置1との間でのシリアル
データの伝送は、第1のデータ線SCLKによってデー
タ処理装置1から送られてくるクロック信号によって同
期を取りながら、第3のデータ線DIOによって行われ
る。このとき、第3のデータ線DIOによってやり取り
されるシリアルデータのデータ種別は、第2のデータ線
Stateによって伝送されるステータス信号によって
判別される。ここで、シリアルデータの種別には、例え
ば、フラッシュメモリ12に書き込むべきデータ、フラ
ッシュメモリ12から読み出されたデータ、又はこのメ
モリカード2の動作を制御するための制御データ等があ
る。なお、ステータス信号は、メモリカード2の状態を
示すためにも使用される。ステータス信号によって示さ
れるメモリカード2の状態には、例えば、メモリカード
2が何らかの処理の最中でデータ処理装置1からのデー
タ入力を受け付けない状態や、メモリカード2の側での
処理が終了してデータ処理装置1からのデータ入力を待
っている状態等がある。
【0027】また、S/P&P/S・インターフェース
・シーケンサ13は、データ処理装置1から送られてき
たデータがメモリカード2の動作を制御するための制御
データである場合には、当該制御データをコマンドジェ
ネレータ17に送出する。
【0028】コマンドジェネレータ17は、データ処理
装置1からS/P&P/S・インターフェース・シーケ
ンサ13を介して送られてきた制御データに基づいて、
フラッシュメモリ12へのアクセスを制御する制御コマ
ンドを生成し、当該制御コマンドをフラッシュメモリ・
インターフェース・シーケンサ14へ送出する。フラッ
シュメモリ・インターフェース・シーケンサ14は、後
述するように、この制御コマンドに基づいて、フラッシ
ュメモリ12にデータを書き込んだり、フラッシュメモ
リ12からデータを読み出したりする。
【0029】なお、このコマンドジェネレータ17に
は、誤消去防止スイッチ20が接続されている。そし
て、この誤消去防止スイッチ20がオンになっていると
きには、フラッシュメモリ12に書かれているデータを
消去するように指示する制御データがデータ処理装置1
から送られてきたとしても、コマンドジェネレータ17
は、フラッシュメモリ12に書かれているデータを消去
するような制御コマンドを生成しない。すなわち、この
メモリカード2は、誤消去防止スイッチ20によって、
フラッシュメモリ12に保存されているデータの消去が
行えない状態と、フラッシュメモリ12に保存されてい
るデータの消去が行える状態とを切り換えることが可能
となっている。
【0030】S/P&P/S・インターフェース・シー
ケンサ13とフラッシュメモリ・インターフェース・シ
ーケンサ14との間に配されたページバッファ15は、
いわゆるバッファメモリであり、S/P&P/S・イン
ターフェース・シーケンサ13とフラッシュメモリ・イ
ンターフェース・シーケンサ14との間でやり取りされ
るデータを一時的に記憶する。
【0031】すなわち、S/P&P/S・インターフェ
ース・シーケンサ13からフラッシュメモリ・インター
フェース・シーケンサ14へ送られるデータは、先ず、
S/P&P/S・インターフェース・シーケンサ13か
らページバッファ15に送られて、このページバッファ
15によって一時的に記憶される。このとき、ページバ
ッファ15に記憶されたデータは、エラー訂正回路16
によってエラー訂正符号が付けられる。そして、エラー
訂正符号が付けられたデータは、ページバッファ15か
ら所定のページ単位毎(例えば1ページ=512バイト
とされる。)に、フラッシュメモリ・インターフェース
・シーケンサ14へと送られる。
【0032】或いは、フラッシュメモリ・インターフェ
ース・シーケンサ14からS/P&P/S・インターフ
ェース・シーケンサ13へ送られるデータは、先ず、フ
ラッシュメモリ・インターフェース・シーケンサ14か
らページバッファ15に送られて、このページバッファ
15によって一時的に記憶される。このとき、ページバ
ッファ15に記憶されたデータは、エラー訂正回路16
によってエラー訂正処理が施される。そして、エラー訂
正処理が施されたデータは、ページバッファ15から所
定のページ単位毎に、S/P&P/S・インターフェー
ス・シーケンサ13へと送られる。
【0033】フラッシュメモリ・インターフェース・シ
ーケンサ14は、コマンドジェネレータ17からの制御
コマンドに基づいて、フラッシュメモリ12へのデータ
の書き込みや、フラッシュメモリ12からのデータの読
み出し等を行う。すなわち、フラッシュメモリ・インタ
ーフェース・シーケンサ14は、コマンドジェネレータ
17からの制御コマンドに基づいて、フラッシュメモリ
12からデータを読み出して、当該データを上述のよう
にページバッファ15を介して、S/P&P/S・イン
ターフェース・シーケンサ13へと送出する。或いは、
フラッシュメモリ・インターフェース・シーケンサ14
は、コマンドジェネレータ17からの制御コマンドに基
づいて、S/P&P/S・インターフェース・シーケン
サ13からのデータを、上述のようにページバッファ1
5を介して受け取り、当該データをフラッシュメモリ1
2に書き込む。
【0034】コンフィグレーションROM18には、こ
のメモリカード2のバージョン情報や各種属性情報等が
格納されている。コンフィグレーションROM18に格
納された情報は、必要に応じて、S/P&P/S・イン
ターフェース・シーケンサ13を介してコマンドジェネ
レータ17によって読み出されて使用される。すなわ
ち、コマンドジェネレータ17は、必要に応じて、コン
フィグレーションROM18に格納されている情報を読
み出し、この情報に基づいてメモリカード2に関する各
種設定を行う。
【0035】以上のようなメモリカード2に対して、フ
ラッシュメモリ12に書き込まれるデータが、上述した
3本のデータ線SCLK,State,DIOを介し
て、データ処理装置1からシリアルデータとして送られ
てくると、先ず、S/P&P/S・インターフェース・
シーケンサ13は、当該シリアルデータをパラレルデー
タに変換し、当該パラレルデータをページバッファ15
へ送出する。ページバッファ15は、S/P&P/S・
インターフェース・シーケンサ13から送られてきたデ
ータを一時的に記憶する。このとき、ページバッファ1
5に記憶されたデータには、エラー訂正回路16によっ
てエラー訂正符号が付けられる。そして、エラー訂正符
号が付けられたデータは、所定のページ単位毎にフラッ
シュメモリ・インターフェース・シーケンサ14に送出
される。そして、フラッシュメモリ・インターフェース
・シーケンサ14は、ページバッファ15から送られて
きたデータを、コマンドジェネレータ17からの制御コ
マンドに基づいて、フラッシュメモリ12に書き込む。
以上の処理により、データ処理装置1から送られてきた
データが、フラッシュメモリ12に書き込まれる。
【0036】また、以上のようなメモリカード2からデ
ータを読み出す際は、先ず、コマンドジェネレータ17
からの制御コマンドに基づいて、フラッシュメモリ・イ
ンターフェース・シーケンサ14によって、フラッシュ
メモリ12からデータが読み出される。そして、フラッ
シュメモリ・インターフェース・シーケンサ14は、フ
ラッシュメモリ12から読み出したデータをページバッ
ファ15に送出する。ページバッファ15は、フラッシ
ュメモリ・インターフェース・シーケンサ14から送ら
れてきたデータを一時的に記憶する。このとき、ページ
バッファ15に記憶されたデータには、エラー訂正回路
16によってエラー訂正処理が施される。そして、エラ
ー訂正処理が施されたデータは、所定のページ単位毎に
S/P&P/S・インターフェース・シーケンサ13に
送出される。そして、S/P&P/S・インターフェー
ス・シーケンサ13は、ページバッファ15から送られ
てきたデータを、シリアルデータに変換した上で、上述
した3本のデータ線SCLK,State,DIOを介
して、データ処理装置1へと送出する。以上の処理によ
り、フラッシュメモリ12から読み出されたデータが、
データ処理装置1へと送出される。
【0037】なお、データの書き込みや読み出しを行う
際は、フラッシュメモリ12に書き込まれるデータやフ
ラッシュメモリ12から読み出されたデータのやり取り
が行われるだけでなく、そのやり取りを制御するための
制御データも、データ処理装置1からメモリカード2の
S/P&P/S・インターフェース・シーケンサ13へ
送られる。この制御データは、S/P&P/S・インタ
ーフェース・シーケンサ13からコマンドジェネレータ
17に送られる。そして、コマンドジェネレータ17
は、S/P&P/S・インターフェース・シーケンサ1
3から送られてきた制御データに基づいて、フラッシュ
メモリ12へのアクセスを制御する制御コマンドを生成
する。そして、この制御コマンドは、フラッシュメモリ
・インターフェース・シーケンサ14に送られ、フラッ
シュメモリ・インターフェース・シーケンサ14は、こ
の制御コマンドに基づいてフラッシュメモリ12にアク
セスして、データの書き込みやデータの読み出しを行
う。
【0038】なお、メモリカード2は、上述した3本の
データ線SCLK,State,DIOを備えるだけで
なく、その他に、電圧供給用の配線や、通常は使用しな
いリザーブの配線等を備えていてもよい。例えば、図2
並びに後掲する図3では、上述した3本のデータ線SC
LK,State,DIOの他に、4本の電源用の配線
VSS1,VSS2,VCC,INTと、3本のリザー
ブの配線RSV1,RSV2,RSV3とをメモリカー
ド2に設けた例を挙げている。
【0039】3.メモリカードの外観 つぎに、以上のようなメモリカード2の具体的な外形に
ついて、図3を参照して説明する。
【0040】メモリカード2は、合成樹脂等からなり平
面形状が長方形とされる薄肉のカード状のケース21
に、上述したコントローラ11やフラッシュメモリ12
等が内蔵されてなる。そして、このメモリカード2は、
当該メモリカード2を装着する装着機構を備えたデータ
処理装置1に装着されて使用される。
【0041】このメモリカード2のケース21の前端部
には、斜めに切り欠かれた切り欠き部22が形成されて
おり、更に当該切り欠き部22が形成された部分に、1
0個の凹状部23が形成されている。そして、これらの
凹状部23の内部には、メモリカード2がデータ処理装
置1の装着装置に装着されたときに、データ処理装置1
の接続端子に接続される外部接続用端子が、それぞれ配
されている。すなわち、このメモリカード2は、外部接
続用端子として10本の端子24a,24b,24c,
24d,24e,24f,24g,24h,24i,2
4jを備えている。これらの外部接続用端子の内訳は、
3本のデータ線用の端子24b,24d,24h、4本
の電源用端子24a,24f,24i,24j、及び3
本のリザーブ端子24c,24e,24gである。
【0042】また、このメモリカード2のケース21の
上面には、誤消去防止部材25が取り付けられている。
誤消去防止部材25は、ケース21の内部に収納された
上記誤消去防止スイッチ20に係合されており、この誤
消去防止部材25をスライド操作することにより、誤消
去防止スイッチ20のオン/オフの切り換えを行えるよ
うになっている。
【0043】このメモリカード2には、データ処理装置
1の装着装置に装着された際にメモリカード2がデータ
処理装置1から脱落しないようにするため、ケース20
の側面の一方に円弧状の第1のロック用切欠部26が形
成され、ケース20の側面の他方に矩形状の第2のロッ
ク用切欠部27が形成されている。そして、このメモリ
カード2がデータ処理装置1の装着装置に装着される
と、メモリカード2が脱落しないように、これらのロッ
ク用切欠部26,27が、データ処理装置1の装着装置
に係合される。
【0044】なお、図3に示したメモリカード2は、本
発明が適用される外部記憶装置の一例に過ぎない。すな
わち、本発明は、外部記憶装置の外形に依存することな
く、どんな外形の外部記憶装置にも適用可能である。
【0045】4.記憶領域の構造 つぎに、以上のようなメモリカード2に搭載されるフラ
ッシュメモリ12の記憶領域の構造について説明する。
【0046】このフラッシュメモリ12の記憶領域は、
図4(a)に示すように、データ消去の単位となる複数
のブロックに分割されてなる。なお、これらのブロック
には、このメモリカード2が起動されたときにデータ処
理装置1によって最初に読み込まれるデータであるブー
トデータが格納されるブートブロックと、任意のデータ
が書き込まれるデータブロックとがある。各ブロックに
は、それぞれ固有の物理アドレスが付けられている。こ
れらのブロックは、データ消去の単位であると同時に、
ファイル管理上の最小単位でもある。すなわち、ファイ
ルは1つ又は複数のブロックに格納され、1つのブロッ
クを複数のファイルで利用することはできない。
【0047】そして、各ブロックは、「1」又は「0」
を示す2つの状態を取りうる複数のビットからなり、初
期状態では、全てのビットが「1」とされており、ビッ
ト単位での変更は「1」から「0」へだけが可能となっ
ている。すなわち、「1」及び「0」からなるデータを
書き込む際、「1」については該当するビットをそのま
ま保持し、「0」については該当するビットを「1」か
ら「0」に変更する。
【0048】そして、一度書き込んだデータを消去する
際は、ブロック単位で一括して初期化処理を行い、当該
ブロックの全ビットを「1」とする。これにより、当該
ブロックに書き込まれたデータが一括して消去され、そ
のブロックは再びデータの書き込みが可能な状態とな
る。
【0049】なお、「0」から「1」への変更を行うに
は、ブロック単位で一括して初期化処理を行い、当該ブ
ロックの全ビットを「1」にする必要があるが、「1」
から「0」への変更は、ブロック単位で一括して初期化
処理を行わなくて可能である。以下の説明では、ブロッ
ク単位で一括して初期化処理を行うことなく「1」から
「0」へ変更することを、オーバーライトと称する。
【0050】なお、本発明は、上述のように各ビットが
2つの状態だけを取りうるフラッシュメモリ(いわゆる
2値型のフラッシュメモリ)だけでなく、各ビットが3
つ以上の状態を取りうるフラッシュメモリ(いわゆる多
値型のフラッシュメモリ)にも適用可能である。
【0051】上記フラッシュメモリ12の各ブロック
は、図4(b)に示すように、データの書き込みや読み
出しの単位となる複数のページから構成される。すなわ
ち、このフラッシュメモリ12にデータを書き込む際
は、上述したように、ページ単位にてページバッファ1
5から送られてきたデータが、フラッシュメモリ・イン
ターフェース・シーケンサ14によってページ単位にて
フラッシュメモリ12に書き込まれる。また、このフラ
ッシュメモリ12からデータを読み出す際は、フラッシ
ュメモリ・インターフェース・シーケンサ14によって
ページ単位毎にデータが読み出されて、ページバッファ
15へと送られる。
【0052】各ページは、データエリアと、冗長エリア
とを有している。データエリアは、任意のデータが書き
込まれる領域である。冗長エリアは、データエリアに書
き込まれるデータの管理に必要な情報が格納される領域
である。
【0053】具体的には、図4(c)に示すように、ブ
ロックの先頭ページの冗長エリアには、当該ブロックを
管理するために必要な情報として、いわゆる分散管理情
報が格納される。また、ブロックの2ページ目以降の各
ページの冗長エリアにも、予備の分散管理情報として、
先頭ページの冗長エリアに格納された分散管理情報と同
じものが格納される。ただし、最終ページの冗長エリア
には、分散管理情報ではなく、分散管理情報だけでは管
理しきれない追加情報として、いわゆる追加管理情報が
格納される。
【0054】このように、このフラッシュメモリ12で
は、各ブロック内の冗長エリアに分散管理情報が格納さ
れる。分散管理情報は、当該分散管理情報が格納された
ブロックを管理するための情報である。この分散管理情
報により、例えば、当該ブロックがファイルの先頭とな
るブロックであるか否かについての情報や、複数のブロ
ックからファイルが構成される場合にはそれらのブロッ
クの繋がりを示す情報等を得ることができる。なお、こ
の分散管理情報については、後で詳細に説明する。
【0055】そして、このメモリカード2では、各ブロ
ックの分散管理情報を集めることにより、フラッシュメ
モリ全体を管理するための情報として、いわゆる集合管
理情報を作成して、この集合管理情報をファイルとして
フラッシュメモリ12に格納しておくようにする。
【0056】そして、通常は、集合管理情報によって、
各ブロックにアクセスするために必要な情報を得るよう
にする。すなわち、データ処理装置1とメモリカード2
との間でデータのやり取りを行う際、データ処理装置1
は、集合管理情報をメモリカード2から読み出して内部
メモリ4に管理テーブルを作成し、この管理テーブルに
基づいてメモリカード2にアクセスする。これにより、
データアクセスの都度、個々のブロックに格納された分
散管理情報にアクセスするような必要がなくなり、より
高速なデータアクセスが可能となる。
【0057】5.分散管理情報 つぎに、分散管理情報について詳細に説明する。
【0058】分散管理情報は、当該分散管理情報が格納
されたブロックを管理するための情報であり、16バイ
トの冗長エリアに書き込まれてなる。具体的には、図5
に示すように、1バイトの可/不可フラグと、1バイト
のブロックフラグと、4ビットの最終フラグと、4ビッ
トの参照フラグと、1バイトの管理フラグと、2バイト
の論理アドレスと、2バイトの連結アドレスと、3バイ
トのリザーブ領域と、2バイトの分散管理情報用エラー
訂正符号と、3バイトのデータ用エラー訂正符号とから
なる。
【0059】可/不可フラグは、ブロックが使用可能状
態か使用不可能状態かを示すフラグであり、具体的に
は、「使用可」と「使用不可」の2つの状態を示す。
「使用可」は、当該ブロックが使用可能な状態を示し、
「使用不可」は、当該ブロックが使用不可能な状態であ
ることを示す。例えば、ブロック内に回復不能なエラー
が生じたようなときに、この可/不可フラグが「使用不
可」に設定され、当該ブロックが使用不可とされる。
【0060】ブロックフラグは、ブロックの状態を示す
フラグであり、具体的には、「未使用」「先頭使用」
「使用」「未消去」の4つの状態を示す。「未使用」
は、当該ブロックが未使用又は消去済みで、初期状態
(全ビットが「1」の状態)とされており、直ぐにデー
タの書き込みが可能な状態を示す。「先頭使用」は、当
該ブロックがファイルの先頭で使用されている状態を示
す。なお、ブートデータが格納されたブートブロックに
おいて、ブロックフラグは「先頭使用」とされる。「使
用」は、当該ブロックがファイルの先頭以外で使用され
ている状態を示す。ブロックフラグが「使用」のとき、
当該ブロックは、他のブロックから連結されていること
となる。「未消去」は、当該ブロックに書かれていたデ
ータが無効となった状態を示す。例えば、データの消去
を行うときに、取りあえずブロックフラグを「未消去」
にしておき、処理時間に余裕があるときに、ブロックフ
ラグが「未消去」になっているブロックを消去するよう
にする。これにより、消去処理をより効率良く行うこと
が可能となる。
【0061】最終フラグは、ファイルが終わっているか
否かを示すフラグであり、具体的には、「ブロック連
続」「ブロック最終」の2つの状態を示す。「ブロック
連続」は、次のブロックへの連結があることを示す。す
なわち、「ブロック連続」は、当該ブロックに格納され
たファイルにはまだ続きがあり、当該ファイルが他のブ
ロックに続いていることを示す。「ブロック最終」は、
最終ブロックであることを示す。すなわち、「ブロック
最終」は、当該ブロックに格納されたファイルが、この
ブロックで終了していることを示す。
【0062】参照フラグは、追加管理情報の参照を指定
するためのフラグであり、具体的には、「参照情報な
し」「参照情報あり」の2つの状態を示す。「参照情報
なし」は、ブロックの最終ページの冗長領域に、有効な
追加管理情報が存在しないことを示す。「参照情報あ
り」は、ブロックの最終ページの冗長領域に、有効な追
加管理情報が存在していることを示す。
【0063】管理フラグは、ブロックの属性等を示すフ
ラグである。例えば、この管理フラグによって、当該ブ
ロックが読み出し専用ブロックか、或いは書き込みも可
能なブロックであるかが示される。また、例えば、この
管理フラグによって、当該ブロックがブートブロックで
あるか、或いはデータブロックであるかが示される。
【0064】論理アドレスは、文字通りそのブロックの
論理アドレスを示す。この論理アドレスの値は、データ
の書き換えを行うときなどに必要に応じて更新される。
なお、論理アドレスの値は、正常に処理が行われている
限り、同じ論理アドレスの値を同時に複数のブロックが
持つことがないように設定される。
【0065】ところで、フラッシュメモリの場合、同一
ブロック内でデータを書き換えるには、上述したよう
に、先ずブロック消去を行う必要がある。しかしなが
ら、保証されている消去可能回数には上限があり、ブロ
ック消去の回数は出来るだけ少なくすることが要求され
る。そこで、ブロックのデータを更新する際は、同一の
ブロックを使って新たなデータに書き換えるのではな
く、他のブロックに新たなデータを書き込むようにす
る。このとき、先にデータが格納されていたブロック
は、当該ブロックに格納されていたデータが無効になっ
たことを示すように、ブロックフラグを「未消去」にす
る。そして、このメモリカード2では、このようにデー
タを更新した場合でも、当該データが格納されているブ
ロックを示すアドレスが同じとなるように、各ブロック
に対して予め設定されている物理アドレスとは別に、動
的に変更が可能な論理アドレスを各ブロックに割り当て
て、この論理アドレスでデータが格納されているブロッ
クを表すようにする。
【0066】連結アドレスは、当該ブロックに連結する
ブロックの論理アドレスを示す。すなわち、ブロックに
格納されたファイルにはまだ続きがあり、当該ファイル
が他のブロックに続いている場合、連結アドレスには、
そのファイルの続きが格納された次のブロックの論理ア
ドレスの値が設定される。
【0067】分散管理情報用エラー訂正符号は、分散管
理情報のうち、管理フラグ、論理アドレス、連結アドレ
ス及びリザーブ領域に書き込まれデータを対象としたエ
ラー訂正符号である。なお、可/不可フラグ、ブロック
フラグ、最終フラグ及び参照フラグは、分散管理情報用
エラー訂正符号によるエラー訂正の対象となっていな
い。したがって、可/不可フラグ、ブロックフラグ、最
終フラグ及び参照フラグは、分散管理情報用エラー訂正
符号を更新することなく書き換えることが可能となって
いる。
【0068】データ用エラー訂正符号は、当該データ用
エラー訂正符号が格納されているページのデータエリア
に書き込まれたデータを対象としたエラー訂正符号であ
る。
【0069】なお、分散管理情報用エラー訂正符号やデ
ータ用エラー訂正符号は、メモリカード2の内部に配さ
れたエラー訂正回路16によって使用される。したがっ
て、これらのエラー訂正符号を用いてのエラー訂正は、
データ処理装置1に依存することなく、メモリカード2
に依存した任意の手法を使用することができる。
【0070】6.追加管理情報 つぎに、追加管理情報について詳細に説明する。
【0071】追加管理情報は、ブロックの最終ページの
16バイトの冗長エリアに格納される情報であり、分散
管理情報だけでは管理しきれない追加情報を含んでい
る。
【0072】具体的には、追加管理情報は、図6に示す
ように、1バイトの可/不可フラグと、1バイトのブロ
ックフラグと、4ビットの最終フラグと、4ビットの参
照フラグと、1バイトの識別番号と、2バイトの有効デ
ータサイズと、5バイトのリザーブ領域と、2バイトの
追加管理情報用エラー訂正符号と、3バイトのデータ用
エラー訂正符号とからなる。
【0073】ここで、可/不可フラグ、ブロックフラ
グ、最終フラグ、参照フラグ、リザーブ領域及びデータ
用エラー訂正符号については、分散管理情報の場合と同
様である。また、追加管理情報用エラー訂正符号は、分
散管理情報における分散管理情報用エラー訂正符号に相
当するものであり、追加管理情報のうち、識別番号、有
効データサイズ及びリザーブ領域に書き込まれデータを
対象としたエラー訂正符号である。
【0074】そして、識別番号及び有効データサイズと
が、分散管理情報だけでは管理しきれない追加情報とし
て、追加管理情報に含まれている。
【0075】識別番号は、エラー処理用の情報であり、
ブロックのデータを書き換える度に、この識別番号の値
がインクリメントされる。この識別番号は、何らかのエ
ラーが発生して、同じ論理アドレスを持つブロックが複
数存在するようになってしまった場合に、それらのブロ
ックに書き込まれたデータの新旧を識別するために使用
される。なお、識別番号には1バイトの領域が使用さ
れ、その値の範囲は「0」から「255」までであり、
その初期値は「0」とされる。なお、識別番号が「25
5」を越えたときには「0」に戻される。そして、同じ
論理アドレスを持つデータブロックが複数存在する場合
には、この識別番号の値が小さい方のデータブロックを
有効とする。ただし、ブートブロックについては、ブー
トブロックの予備がある場合、正常時にはそれらのブー
トブロックの識別番号は同じ値とされる。何らかの異常
により、それらのブートブロックの識別番号が異なるよ
うな状態となった場合には、識別番号の値が大きい方の
ブートブロックを有効とする。
【0076】また、有効データサイズは、ブロック内の
有効なデータのサイズを示す。すなわち、当該ブロック
のデータエリアに空きがある場合、有効データサイズに
は、当該データエリアに書き込まれたデータのサイズを
示す値が設定される。このとき、分散管理情報の参照フ
ラグは「参照情報あり」に設定される。なお、ブロック
のデータエリアに空きがない場合、有効データサイズに
は、当該データエリアに空きがないことを示す値とし
て、「0xffff」が設定される。
【0077】なお、以上のような分散管理情報及び追加
管理情報は、ブロック内のデータが更新される毎に、常
に最新情報となるように更新される。
【0078】7.集合管理情報 つぎに、集合管理情報について詳細に説明する。
【0079】集合管理情報は、上述したように、各ブロ
ックの分散管理情報を集めて作成されてなる情報であ
り、ファイルとしてフラッシュメモリ12に格納され
る。すなわち、図7に示すように、各ブロックの分散管
理情報から、全ブロックをまとめて管理するための情報
である集合管理情報のファイルが作成され、この集合管
理情報が所定のブロックのデータエリアに格納される。
なお、集合管理情報は、1つのブロックに格納されるも
のであっても、複数のブロックにわたって格納されるも
のであってもよい。そして、データ処理装置1は、通常
は、この集合管理情報によって、各ブロックにアクセス
するために必要な情報を得るようにする。
【0080】すなわち、メモリカード2に有効な集合管
理情報がファイルとして格納されている場合、データ処
理装置1は、その集合管理情報のファイルを読み出して
内部メモリ4に展開し、メモリカード2を管理するため
の管理テーブルを作成する。なお、集合管理情報のファ
イルの先頭が格納されているブロックの物理アドレス
は、ブートデータに含まれており、データ処理装置1
は、この物理アドレスに基づいて集合管理情報のファイ
ルにアクセスする。
【0081】この集合管理情報は、図8に示すように、
この集合管理情報のヘッダーと、各ブロックの状態を示
すビットマップテーブルと、ブロックにアクセスすると
きに、指定された論理アドレスから物理アドレスへの変
換を行うための変換テーブルと、あるブロックの次のブ
ロックを示す連結テーブルとを有する。
【0082】ビットマップテーブルには、各ブロックの
分散管理情報から抽出された、可/不可フラグ、ブロッ
クフラグ、最終フラグ、参照フラグ及び管理フラグ等の
情報が格納される。
【0083】変換テーブルは、図9に示すように、論理
アドレスに対応する物理アドレスが記述されたテーブル
であり、物理アドレスが格納される領域は、1エントリ
あたり2バイトとされる。この変換テーブルを分散管理
情報から作成するときは、対象となるブロックの分散管
理情報に書かれている論理アドレスを調べ、テーブルの
対応位置にそのブロックの物理アドレスを登録する。な
お、論理アドレスを使用していない場合、対応する物理
アドレスには「0xffff」を設定しておく。
【0084】連結テーブルは、図10に示すように、論
理アドレスに対応する連結アドレスが記述されたテーブ
ルであり、連結アドレスが格納される領域は、1エント
リあたり2バイトとされる。この連結テーブルを分散管
理情報から作成するときは、対象となるブロックの分散
管理情報に書かれている連結アドレスを調べ、テーブル
の対応位置にそのブロックの連結アドレスを登録する。
【0085】8.メモリカード起動時の手順 つぎに、メモリカード2の起動時の手順について、図1
1のフローチャートを参照して説明する。
【0086】このメモリカード2を起動する際は、図1
1に示すように、先ず、ステップS1において、データ
処理装置1は、メモリカード2のブートブロックからブ
ートデータを読み込む。次に、ステップS2へ進む。
【0087】ステップS2において、データ処理装置1
は、ブートブロックからのブートデータの読み込みが正
常に行われたかを確認する。正常に読み込まれたなら
ば、ステップS3へ進み、正常に読み込まれなかったな
らば、ステップS8へ進む。
【0088】ステップ3において、データ処理装置1
は、読み込んだブートデータに基づいて、メモリカード
2が当該データ処理装置1に対応しているか否かを判別
する。対応したメモリカードであるならば、ステップS
4へ進み、対応していないメモリカードならば、ステッ
プS8へ進む。
【0089】ステップS4において、データ処理装置1
は、メモリカード2から集合管理情報を読み込む。な
お、集合管理情報が格納されているブロックの物理アド
レスは、ブートデータの中で指定されている。次に、ス
テップS5へ進む。
【0090】ステップS5において、データ処理装置1
は、有効な集合管理情報の読み込みが正常に行われたか
を確認する。正常に読み込めたならば、ステップS6へ
進み、正常に読み込めなかったならば、ステップS7へ
進む。
【0091】ステップS6において、データ処理装置1
は、読み込んだ集合管理情報を内部メモリ4に展開し、
メモリカード2を管理するための管理テーブルを作成す
る。以上の処理で、メモリカード2の起動時の初期処理
が完了し、メモリカード2の使用が可能となる。
【0092】また、ステップS5で有効な集合管理情報
が正常に読み込めなかったと判断された場合は、上述し
たようにステップS7へ進む。ステップS7において、
データ処理装置1は、各ブロックの分散管理情報を読み
出して、集合管理情報を再構築する。そして、その集合
管理情報を内部メモリ4に展開し、メモリカード2を管
理するための管理テーブルを作成する。以上の処理で、
メモリカード2の起動時の初期処理が完了し、メモリカ
ード2の使用が可能となる。
【0093】一方、ステップS2でブートデータ読み込
み時にエラーが生じたと判断された場合、及び、ステッ
プS3でメモリカード2がデータ処理装置1に対応して
いないと判断された場合は、上述したようにステップS
8へ進む。
【0094】ステップS8に進むのは、メモリカード2
を使用できないときである。そこで、ステップS8にお
いて、データ処理装置1は、例えば、利用不可のメッセ
ージを表示するなどの所定のエラー処理を行い、メモリ
カード2の起動処理を終了する。
【0095】9.データ更新処理時の集合管理情報の取
り扱い データ処理装置1は、メモリカード2へデータを書き込
む処理や、メモリカード2からデータを消去する処理
(以下、これらの処理をまとめて「データ更新処理」と
称する。)を行う毎に、内部メモリ4に保持している管
理テーブルを、メモリカード2の実際の状態と整合する
ように(すなわち、分散管理情報の内容と整合するよう
に)、随時更新していく。一方、メモリカード2にファ
イルとして格納されている集合管理情報は、データ更新
処理毎に更新されるのではなく、適当なタイミングに
て、その変更内容が一括して更新される。
【0096】一般にフラッシュメモリ12の書き換え可
能回数には上限があるが、集合管理情報の書き換えをあ
る程度まとめて一括して行うようにすることで、集合管
理情報が格納されているブロックの書き換え回数を削減
することができ、メモリカード2の長寿命化を図ること
ができる。
【0097】ただし、データ更新処理を行う際は、メモ
リカード2に格納されている集合管理情報のファイルを
無効にしてから行う。これは、分散管理情報と集合管理
情報の一貫性を損なわないためである。データ更新処理
時には、処理の対象となるブロックの分散管理情報は同
時に更新されるが、集合管理情報の内容は同時には更新
されないので、分散管理情報と集合管理情報とが一致し
ない状態となる。そこで、このような状態のときには、
メモリカード2に格納されている集合管理情報のファイ
ルを無効にしておく。
【0098】具体的には、データ更新処理時には、図1
2に示すように、先ず、ステップS11において、デー
タ処理装置1は、メモリカード2に格納されている集合
管理情報が有効であるか無効であるかを判別する。そし
て、集合管理情報が既に無効となっていたならば、その
ままデータ更新処理に移行する。一方、集合管理情報が
有効であれば、ステップS12へ進む。
【0099】ステップS12において、データ処理装置
1は、集合管理情報を無効にする。具体的には、集合管
理情報のファイルが格納されているブロックのブロック
フラグを「未消去」にするか、或いは当該ブロックに対
して消去処理を施してデータを消去する。そして、この
ように集合管理情報を無効にした上で、データ更新処理
に移行する。
【0100】なお、メモリカード2に格納されている集
合管理情報のファイルは、分散管理情報と集合管理情報
の一貫性を損なわないために、データ更新処理時に無効
とされるが、データ処理装置1の内部メモリ4に保持さ
れている管理テーブルの内容は、常に最新の状態となる
ように随時更新される。そして、データ処理装置1は、
通常は、この管理テーブルに基づいて各ブロックを管理
する。
【0101】また、データ更新処理時に無効とされた集
合管理情報は、適当なタイミングで、改めてメモリカー
ド2に書き込まれて、再び有効とされる。なお、ここで
の適当なタイミングとは、例えば、メモリカード2の使
用を終了して電源を落とすときや、メモリカード2への
アクセスが所定時間以上なされなかったときや、データ
の書き換えが所定回数以上行われたときなどである。
【0102】具体的には、例えば、メモリカード2の使
用を終了して電源を落とす前に、図13に示すような終
了処理を行い、集合管理情報を有効なものとする。
【0103】この終了処理では、先ず、ステップS21
において、データ処理装置1は、メモリカード2に格納
されている集合管理情報が有効であるか無効であるかを
判別する。そして、集合管理情報が有効であれば、その
まま処理を終了する。一方、集合管理情報が無効であれ
ば、ステップS22へ進む。
【0104】ステップS22において、データ処理装置
1は、集合管理情報のファイルが格納されているブロッ
クに対して、消去処理が施されているか否かを判別す
る。消去処理が施されていなければ、ステップS23へ
進み、消去処理が施されていれば、ステップS24へ進
む。
【0105】ステップS23において、データ処理装置
1は、集合管理情報のファイルが格納されているブロッ
クに対して消去処理を施す。その後、ステップS24へ
進む。
【0106】ステップS24において、データ処理装置
1は、メモリカード2に集合管理情報を書き込む。この
とき、データ処理装置1は、内部メモリ4に保持してい
る管理テーブルの内容に基づいて新しい集合管理情報の
ファイルを作成し、その新しい集合管理情報のファイル
をメモリカード2に書き込む。これにより、メモリカー
ド2の最新の状態を示す有効な集合管理情報が、メモリ
カード2に格納されたこととなる。
【0107】以上で終了処理が完了し、メモリカード2
に有効な集合管理情報が格納された状態となる。
【0108】10.新規ファイルの書き込み つぎに、メモリカード2に新規なファイルを書き込む際
の処理手順について説明する。メモリカード2にファイ
ルを書き込む際の処理手順は、ファイルサイズが予め分
かっている場合と、分かっていない場合とで異なる。
【0109】10−1 ファイルサイズが予め分かって
いる場合 予めファイルのサイズが分かっている場合は、当該ファ
イルのデータを新規なブロックに書き込む毎に、データ
が当該ブロックに納まるかどうかを判断する。そして、
データがブロック内に納まりきらない場合には、次に続
くブロックの論理アドレスを確保しておき、データをデ
ータエリアに書き込むとともに、次に続くブロックの論
理アドレスを連結アドレスとして分散管理情報を書き込
む。このとき、最終フラグは「ブロック連続」に設定し
ておく。一方、データがブロック内に納まる場合には、
データの端数部分、すなわちデータエリアの空き領域は
「0xffff」としておく。このとき、最終フラグは「ブロ
ック最終」に設定しておき、追加管理情報に有効データ
サイズを書き込んでおく。
【0110】つぎに、以上のように予めサイズが分かっ
ているファイルをメモリカード2に書き込む際の手順に
ついて、図14に示すフローチャートを参照して、詳細
に説明する。なお、図14に示すフローチャート、並び
に後掲する図15及び図17に示すフローチャートで
は、メモリカード2の誤消去防止スイッチ20のチェッ
クや、何らかのエラーが発生したときの処理等について
は省略している。
【0111】予めサイズが分かっているファイルをメモ
リカード2に書き込む際は、先ず、ステップS31にお
いて、データ処理装置1は、メモリカード2に書き込む
実データと、当該実データのヘッダーとを準備する。換
言すれば、ステップS31において、データ処理装置1
は、メモリカード2のデータエリアに書き込むファイル
を準備する。なお、当該ファイルのヘッダーには、ファ
イルのサイズの情報が含まれる。次に、ステップS32
へ進む。
【0112】ステップS32において、データ処理装置
1は、最初にファイルが格納されるブロックのブロック
フラグを「先頭使用」に設定するとともに、空いている
論理アドレスを確保する。次に、ステップS33へ進
む。
【0113】ステップS33において、データ処理装置
1は、空いている物理アドレスを検索する。次に、ステ
ップS34へ進む。
【0114】ステップS34において、データ処理装置
1は、処理の対象となっているブロックにファイルが納
まりきるか否かを判別する。ファイルがブロック内に納
まりきらず、ファイルに続きがある場合には、ステップ
35へ進み、一方、ファイルがブロック内に納まり、フ
ァイルに続きがない場合には、ステップ36へ進む。
【0115】ステップS35において、データ処理装置
1は、次に続くブロックの論理アドレスを確保して、こ
の論理アドレスを連結アドレスとして設定する。次に、
ステップS37へ進む。
【0116】一方、ステップS36において、データ処
理装置1は、最終フラグを「ブロック最終」に設定する
とともに、連結アドレスを「0xffff」に設定する。次
に、ステップS37へ進む。
【0117】ステップS37において、データ処理装置
1は、これまでのステップで設定された情報等に基づい
て、処理の対象となっているブロックについての分散管
理情報を作成する。次に、ステップS38へ進む。
【0118】ステップS38において、データ処理装置
1は、処理の対象となっているブロックに、ページ単位
でデータを順次書き込む。ここで、処理の対象となって
いるブロックにファイルが納まりきらない場合には、1
ブロック分のデータがページ単位で書き込まれる。ま
た、処理の対象となっているブロックにファイルが納ま
りきる場合には、必要なページ分だけページ単位でデー
タが書き込まれる。なお、このステップS38で、ブロ
ックに書き込まれるのは、新規に書き込むファイルのデ
ータと、ステップS37で作成された分散管理情報とで
ある。次に、ステップS39へ進む。
【0119】ステップS39において、データ処理装置
1は、ファイルの全データについて、メモリカード2へ
の書き込みが終了したか否かを判別する。書き込みが終
了しておらず、まだデータが残っていれば、ステップS
33へ戻って処理を繰り返す。一方、書き込みが終了し
ていれば、ステップ40へ進む。
【0120】ステップS40において、データ処理装置
1は、書き込んだデータが、ブロックの途中で終わって
いるか否かを判別する。そして、データがブロックの途
中で終わっていれば、ステップS41へ進む。一方、ブ
ロックの最後までデータが格納されていれば、これで処
理を終了する。
【0121】ステップS41において、データ処理装置
1は、最終ページの冗長エリアに格納される追加管理情
報に有効データサイズを書き込む。すなわち、データ処
理装置1は、ファイルの最後の部分が格納されたブロッ
クのデータエリアに書き込まれたデータのサイズを示す
値を、当該ブロックの追加管理情報に有効データサイズ
として書き込む。
【0122】以上で、予めサイズが分かっているファイ
ルのメモリカード2への書き込みの処理が完了する。
【0123】10−2 ファイルサイズが分かっていな
い場合 ファイルのサイズが予め分からない場合には、次に続く
ブロックの論理アドレスを常に確保しておき、データが
終了した時点で、最終ブロックの最終フラグをオーバー
ライトにより設定する。なお、その他の分散管理情報及
び追加管理情報に関しては、予めファイルサイズが分か
っているときと同様に設定される。
【0124】サイズが予め分かっていないファイルをメ
モリカード2に書き込む際の手順について、図15に示
すフローチャートを参照して、詳細に説明する。
【0125】サイズが予め分かっていないファイルをメ
モリカード2に書き込む際は、先ず、ステップS51に
おいて、データ処理装置1は、メモリカード2に書き込
むファイルの仮のヘッダーを作成する。この段階では、
ファイルサイズが不明なので、この仮のヘッダーには、
ファイルサイズの情報が含まれていない。次に、ステッ
プS52へ進む。
【0126】ステップS52において、データ処理装置
1は、最初にファイルが格納されるブロックのブロック
フラグを「先頭使用」に設定するとともに、空いている
論理アドレスを確保する。次に、ステップS53へ進
む。
【0127】ステップS53において、データ処理装置
1は、メモリカード2に書き込むデータを準備する。次
に、ステップS54へ進む。
【0128】ステップS54において、データ処理装置
1は、メモリカード2に書き込むデータが残っているか
否かを判別する。データが終了しておらず、まだデータ
が残っていれば、ステップS55へ進む。一方、データ
が終了しており、データが残っていなければ、ステップ
S61へ進む。
【0129】ステップS55において、データ処理装置
1は、空いている物理アドレスを検索する。次に、ステ
ップS56へ進む。
【0130】ステップS56において、データ処理装置
1は、次に続くブロックの論理アドレスを確保して、こ
の論理アドレスを連結アドレスとして設定する。次に、
ステップS57へ進む。
【0131】ステップS57において、データ処理装置
1は、これまでのステップで設定された情報等に基づい
て、処理の対象となっているブロックについての分散管
理情報を作成する。次に、ステップS58へ進む。
【0132】ステップS58において、データ処理装置
1は、処理の対象となっているブロックに、ページ単位
でデータを順次書き込む。ここで、処理の対象となって
いるブロックにファイルが納まりきらない場合には、1
ブロック分のデータがページ単位で書き込まれる。ま
た、処理の対象となっているブロックにファイルが納ま
りきる場合には、必要なページ分だけページ単位でデー
タが書き込まれる。なお、このステップS58でブロッ
クに書き込まれるのは、新規に書き込むファイルのデー
タと、ステップS57で作成された分散管理情報とであ
る。次に、ステップS59へ進む。
【0133】ステップS59において、データ処理装置
1は、書き込んだデータが、ブロックのデータエリアの
途中で終わっているか否かを判別する。そして、データ
エリアの最後に至るまでデータが格納されていれば、ス
テップS53へ戻って処理を繰り返す。一方、データが
データエリアの途中で終わっていれば、ステップS60
へ進む。
【0134】ステップS60において、データ処理装置
1は、処理の対象となっているブロックの最終ページの
冗長エリアに格納される追加管理情報に、有効データサ
イズを書き込む。すなわち、データ処理装置1は、ファ
イルの最後の部分が格納されたブロックのデータエリア
に書き込まれたデータのサイズを示す値を、当該ブロッ
クの追加管理情報に有効データサイズとして書き込む。
次に、ステップS61へ進む。
【0135】ステップS61において、データ処理装置
1は、処理の対象となっているブロックの最終フラグを
「ブロック最終」にオーバーライトにより設定する。次
に、ステップS62へ進む。
【0136】ステップS62において、データ処理装置
1は、ファイルのヘッダーを更新する。すなわち、この
段階では、ファイルサイズが明らかとなっているので、
ファイルサイズの情報を含むヘッダーを新たに作成し
て、上述した仮のヘッダーを、ファイルサイズの情報を
含む新たなヘッダーに書き換える。
【0137】以上で、予めサイズが分かっていなかった
ファイルのメモリカード2への書き込みの処理が完了す
る。
【0138】11.ファイルの更新 つぎに、メモリカード2に格納されているファイルを更
新する際の処理手順について説明する。
【0139】ファイルの更新時には、データの書き換え
の対象となるブロックと同じ論理アドレスを別のブロッ
クに付して、当該ブロックに対して新しいデータを書き
込む。このとき、古いデータが書かれているブロック
は、ファイルの更新が終了するまで開放せずに保持して
おく。これにより、ファイル更新中に障害が発生したと
しても、ファイル更新前の状態に復旧することが可能と
なる。
【0140】このようなファイル更新の手順の具体的な
例を図16を参照して説明する。
【0141】図16(a)に示すように、ファイルの先
頭が、論理アドレス「1」のブロックに格納され、ファ
イルの次の部分が、論理アドレス「2」のブロックに格
納され、ファイルの次の部分が、論理アドレス「3」の
ブロックに格納されていたとする。また、論理アドレス
「1」のブロックの識別番号は「6」、論理アドレス
「2」のブロックの識別番号は「4」、論理アドレス
「3」のブロックの識別番号は「1」であったとする。
【0142】そして、このような状態のときに、論理ア
ドレス「2」のブロックのデータを書き換えるとする。
このときは、先ず、図16(b)に示すように、空いて
いる別にブロックに論理アドレス「2」を割り当て、こ
のブロックに新しいデータを書き込む。ここで、新しい
データを書き込むブロックの識別番号には、古いデータ
が書き込まれているブロックの識別番号を1インクリメ
ントした値、すなわち「5」を設定する。
【0143】この段階では、同じ論理アドレスを持つブ
ロックが2つ存在していることとなる。そして、これら
の2つのブロックのうち、識別番号が大きい方のブロッ
クに格納されているデータが新しい方のデータであり、
識別番号が小さい方のブロックに格納されているデータ
が古い方のデータとなる。
【0144】そして、新しいデータの書き込みが正常に
完了したら、次に、図16(c)に示すように、古いデ
ータが書き込まれていたブロックを消去する。なお、こ
のときは、古いデータが書き込まれていたブロックに対
して消去処理を施すのではなく、該当するブロックのブ
ロックフラグを「未消去」にするだけにしておき、後か
ら適当なタイミングで、このブロックに対して消去処理
を施すようにしてもよい。
【0145】以上のような処理の手順について、図17
に示すフローチャートを参照して、詳細に説明する。
【0146】ファイルを更新する際は、先ず、ステップ
S71において、データ処理装置1は、更新の対象とな
るブロックを選択する。次に、ステップS72へ進む。
【0147】ステップS72において、データ処理装置
1は、更新の対象となるブロックの識別番号を読み出
し、その値を1インクリメントした値を、新しいデータ
を書き込むブロックの識別番号として設定する。また、
新しいデータを書き込むブロックの論理アドレスとし
て、更新の対象となるブロックの論理アドレスと同じ値
を設定する。次に、ステップS73へ進む。
【0148】ステップS73において、データ処理装置
1は、ブロックに書き込む新しいデータを準備する。次
に、ステップS74に進む。
【0149】ステップS74において、データ処理装置
1は、空いている物理アドレスを検索する。次に、ステ
ップS75に進む。
【0150】ステップS75において、データ処理装置
1は、データの変更が全て完了しているか否かを判別す
る。完了していなければ、ステップS76へ進み、完了
していれば、ステップS79へ進む。
【0151】ステップS76において、データ処理装置
1は、次に続くブロックの論理アドレスを確保して、こ
の論理アドレスを連結アドレスとして設定する。次に、
ステップS77へ進む。
【0152】ステップS77において、データ処理装置
1は、これまでのステップで設定された情報等に基づい
て、新しいデータを書き込むブロックについての分散管
理情報を作成する。次に、ステップS78へ進む。
【0153】ステップS78において、データ処理装置
1は、ステップS74で検索された物理アドレスのブロ
ックに、ページ単位で新しいデータを順次書き込む。こ
こで、処理の対象となっているブロックにファイルが納
まりきらない場合には、1ブロック分のデータがページ
単位で書き込まれる。また、処理の対象となっているブ
ロックにファイルが納まりきる場合には、必要なページ
分だけページ単位でデータが書き込まれる。なお、この
ステップS78で、ブロックに書き込まれるのは、新し
いファイルのデータと、ステップS77で作成された分
散管理情報とである。そして、このステップS78の後
は、ステップS73へ戻って処理を繰り返す。
【0154】一方、ステップS79において、データ処
理装置1は、最後に更新の対象となっていたブロック
に、連結アドレスが設定されているか否かを判別する。
連結アドレスが設定されていなければ、ステップS80
へ進み、連結アドレスが設定されていたならば、ステッ
プS81へ進む。
【0155】ステップS80において、データ処理装置
1は、最後に新しいデータを書き込んだブロックの最終
フラグを「ブロック最終」に設定する。次に、ステップ
S82へ進む。
【0156】一方、ステップS81において、データ処
理装置1は、最後に新しいデータを書き込んだブロック
の連結アドレスに、最後に更新の対象となっていたブロ
ックに設定されていた連結アドレスの値を設定する。次
に、ステップS82へ進む。
【0157】ステップS82において、データ処理装置
1は、ファイルのヘッダーを更新する。すなわち、ファ
イルの更新により、ファイルサイズが変更となっている
可能性があるので、新しいファイルサイズの情報を含む
ヘッダーを新たに作成して、ファイルのヘッダーを更新
する。次に、ステップS83へ進む。
【0158】ステップS83において、データ処理装置
1は、古いデータが書き込まれていたブロックを消去す
る。なお、このときは、古いデータが書き込まれていた
ブロックに対して消去処理を施すのではなく、該当する
ブロックのブロックフラグを「未消去」にするだけにし
ておき、後から適当なタイミングで、これらのブロック
に対して消去処理を施すようにしてもよい。
【0159】以上でファイルの更新処理が完了する。
【0160】12.エラー検出訂正処理 以上のようなシステムでは、メモリカード2に新規ファ
イルを書き込んでいるときや、メモリカード2に格納さ
れているファイルを更新しているときなどに、いきなり
電源が遮断されたり、メモリカード2がデータ処理装置
1から強制的に取り外されたりすると、同じ論理アドレ
スを持つ複数のブロックが同時に存在するような状態
(すなわち論理アドレスエラー)となってしまったり、
或いは、連結アドレスで指し示されたブロックが存在し
ないような状態(すなわち連結アドレスエラー)となっ
てしまったりする可能性がある。
【0161】そこで、本発明を適用したシステムでは、
集合管理情報を構築する際に、論理アドレスエラーや連
結アドレスエラーを検出して訂正するエラー検出訂正処
理を行うようにする。以下、このエラー検出訂正処理に
ついて、詳細に説明する。
【0162】12−1 エラー検出テーブル 本発明を適用したシステムでは、集合管理情報を構築す
る際に、論理アドレスエラーや連結アドレスエラーの検
出を行う。そして、連結アドレスエラーを検出するため
に使用するテーブルとして、エラー検出テーブルを使用
する。エラー検出テーブルは、連結アドレスエラーの検
出にだけ使用されるテーブルであり、エラー検出訂正処
理を行う際に、データ処理装置1の内部メモリ4に一時
的に確保される。エラー検出テーブルのために確保され
ていた領域は、エラー検出訂正処理が終了した後、開放
される。
【0163】このエラー検出テーブルは、図18に示す
ように、1論理アドレスに対して、各ブロックの連結状
態を示す1ビットの領域を備えたテーブルである。換言
すれば、エラー検出テーブルは、1エントリあたり1ビ
ットとなっており、各エントリは論理アドレスの連結状
態を「0」又は「1」で示す。処理の対象となるブロッ
クがN個ある場合、このエラー検出テーブルが占める領
域は、N/8バイトとなる。
【0164】このエラー検出テーブルは、集合管理情報
を構築しているときと、集合管理情報の構築が終了した
ときとで、各ブロックの連結状態を示す値の意味合いが
異なる。
【0165】集合管理情報を構築している最中におい
て、連結状態を示す値が「0」のとき、そのエントリ
は、正常な状態であることを示しているか、或いは、当
該エントリに対応する論理アドレスが、現在処理の対象
となっているブロックまでの間に他のブロックの連結ア
ドレスで指定されていないことを示している。この状態
のときは、今後の処理が進むに従って、値が「1」にな
る可能性があり、連結アドレスエラーであるかどうか不
確定な状態である。
【0166】また、集合管理情報を構築している最中に
おいて、連結状態を示す値が「1」のとき、そのエント
リは、当該エントリに対応する論理アドレスが、現在処
理の対象となっているブロックまでの間に他のブロック
の連結アドレスとして指定されているが、物理アドレス
に対応していない状態を示す。この状態のときは、今後
の処理が進むに従って、値が「0」になる可能性があ
り、連結アドレスエラーであるかどうか不確定な状態で
ある。
【0167】一方、集合管理情報の構築が終了した段階
で、連結状態を示す値が「1」のとき、そのエントリ
は、当該エントリに対応する論理アドレスが連結アドレ
スとして指定されているのに、対応する物理アドレスが
存在しないことを示している。したがって、この状態の
ときは、連結アドレスエラーである。
【0168】また、集合管理情報の構築が終了した段階
で、連結状態を示す値が「0」のとき、そのエントリ
は、当該エントリに対応する論理アドレスに関する連結
が正常な状態となっていることを示している。
【0169】12−2 連結アドレスエラーの検出 つぎに、以上のようなエラー検出テーブルを用いて行わ
れる、連結アドレスエラーの検出について、具体的な例
を挙げて説明する。
【0170】例えば、図19に示すように、物理アドレ
ス「10」のブロックについて、その論理アドレスが
「1」、その連結アドレスが「3」であり、また、物理
アドレス「17」のブロックについて、その論理アドレ
スが「3」、その連結アドレスが「2」であったとす
る。また、論理アドレスが「2」のブロックは存在しな
いとする。
【0171】このとき、集合管理情報の再構築の処理が
行われると、集合管理情報の再構築に伴って、図20に
示すように、連結アドレスエラーの検出が行われる。
【0172】先ず、初期状態では、図20(a)に示す
ように、論理アドレス「1」「2」「3」のそれぞれに
ついて、エラー検出テーブルの値は、すべて初期値
「0」とする。また、集合管理情報の変換テーブルも、
全て初期値「0xffff」とする。このとき、集合管理情報
の連結テーブルは、全く値が入っていない状態とする。
【0173】次に、論理アドレス「1」のブロックにつ
いての情報を読み込む。これにより、図20(b)に示
すように、論理アドレス「1」に対応する変換テーブル
の値は、論理アドレス「1」のブロックの物理アドレス
の値、すなわち「10」とされる。また、論理アドレス
「1」に対応する連結テーブルの値は、論理アドレス
「1」のブロックの連結アドレスの値、すなわち「3」
とされる。
【0174】次に、論理アドレス「1」に対応する連結
テーブルの値が指し示す論理アドレス「3」のエントリ
を確認する。このとき、論理アドレス「3」のエントリ
には、物理ブロックが割り当てられていないので、図2
0(c)に示すように、論理アドレス「3」に対応する
エラー検出テーブルの値を「1」とする。また、論理ア
ドレス「3」に対応する変換テーブルの値は、連結元の
論理アドレスの値、すなわち「1」とする。
【0175】次に、エラー検出テーブルの値が「1」と
なっている論理アドレス「3」のブロックについて、そ
の情報を読み込む。このとき、論理アドレス「3」のブ
ロックは存在しており、当該ブロックの情報は正常に読
み込むことができる。したがって、図20(d)に示す
ように、論理アドレス「3」に対応するエラー検出テー
ブルの値を「0」とする。また、このとき、論理アドレ
ス「3」に対応する変換テーブルの値は、論理アドレス
「3」のブロックの物理アドレスの値、すなわち「1
7」とする。また、論理アドレス「3」に対応する連結
テーブルの値は、論理アドレス「3」のブロックの連結
アドレスの値、すなわち「2」とする。
【0176】次に、論理アドレス「3」に対応する連結
テーブルの値が指し示す論理アドレス「2」のエントリ
を確認する。このとき、論理アドレス「2」のエントリ
には、物理ブロックが割り当てられていないので、図2
0(e)に示すように、論理アドレス「2」に対応する
エラー検出テーブルの値を「1」とする。また、論理ア
ドレス「2」に対応する変換テーブルの値は、連結元の
論理アドレスの値、すなわち「3」とする。
【0177】次に、エラー検出テーブルの値が「1」と
なっている論理アドレス「2」のブロックについて、そ
の情報の読み込みを試みる。しかしながら、論理アドレ
スが「2」のブロックは存在していないので、この段階
で、連結アドレスエラーであることが判明する。
【0178】12−3 エラー訂正処理 本発明を適用したシステムにおいて、論理アドレスエラ
ーに対するエラー訂正処理は、以下のように行う。
【0179】論理アドレスエラーが生じているときに
は、同じ論理アドレスを持つブロックをそれぞれ調べ
る。そして、ブロックとして完全なものが1つしかない
場合には、完全なブロックを生かして、残りのブロック
は無効とする。
【0180】また、同じ論理アドレスを持つ完全なブロ
ック(ブートブロックを除く。)が複数ある場合には、
識別番号を比較して値が小さい方のブロックを生かす。
なお、一方のブロックの識別番号が「255」であり、
他方のブロックの識別番号が「0」の場合には、識別番
号が「255」のブロックを生かすようにする。
【0181】なお、通常は、同じ論理アドレスを持つブ
ロックが複数あったとしても、それらの識別番号の差は
1である。この条件に当てはまらないような場合には、
システムの側で自動的にエラー訂正処理を行うのではな
く、手動復旧モードとする。
【0182】また、本発明を適用したシステムにおい
て、連結アドレスエラーが生じた場合には、メモリカー
ド2を使用するアプリケーションソフトウェアやメモリ
カード2に格納するデータ等に応じた適切なエラー訂正
処理を行うようにする。具体的には、例えば、以下に挙
げるようなエラー訂正処理を行うようにすればよい。
【0183】すなわち、例えば、最後の連結アドレスが
指し示すブロックとして新規ブロックを割り当てる。そ
して、最後のブロックのデータを正しく読めるページま
で読み込んで、そのページまでのデータを新規ブロック
にコピーする。このとき、新規ブロックの最終フラグは
「ブロック最終」としておく。このようなエラー訂正処
理は、対象となるデータが音楽データ等のようにデータ
の途中でも意味があるデータの場合に、特に好適であ
る。
【0184】或いは、例えば、連結アドレスエラーが生
じたブロックを含むファイル全体を削除する。このよう
なエラー訂正処理は、対象となるデータがプログラムや
画像データ等のようにデータの途中では意味をなさない
データである場合に、特に好適である。
【0185】12−4 集合管理情報の構築とエラー検
出訂正処理 本発明を適用したシステムにおいて、物理アドレスエラ
ーや連結アドレスエラーが発生するのは、データ更新処
理の途中に何らかの障害が発生した場合である。そし
て、本発明を適用したシステムでは、上述したように、
データ更新処理に先だってメモリカード2に格納されて
いる集合管理情報を無効にするようにしている。したが
って、物理アドレスエラーや連結アドレスエラーが発生
するときには、集合管理情報が無効となっている。そし
て、集合管理情報が無効となっているときには、次にメ
モリカード2を起動するときに、全てのブロックの分散
管理情報を調べ直して集合管理情報を再構築する処理が
必ず行われる。
【0186】そこで、このシステムでは、集合管理情報
を再構築する際に、全てのブロックを調べ直すというこ
とに着目し、このときにエラー検出訂正処理を同時に行
う。換言すれば、集合管理情報が有効となっているとき
には、物理アドレスエラーや連結アドレスエラーが発生
している可能性はないので、このときにはエラー検出訂
正処理を行わない。すなわち、この方法では、集合管理
情報の再構築時にだけ、エラー検出訂正処理を行う。こ
れにより、エラー検出訂正処理のためにメモリカード2
に余分にアクセスする必要がなくなる。その結果、例え
ば、メモリカード2の速やかな起動が可能となる。
【0187】このエラー検出訂正処理は、以下のような
手順によって行われる。
【0188】(1)データ処理装置1の内部メモリ4上
の変換テーブルを全て「0xffff」で初期化する。また、
内部メモリ4上にエラー検出テーブルの領域を確保し、
当該エラー検出テーブルを全て「0」で初期化する。
【0189】(2)ブロックの先頭に移動する。
【0190】(3)ブロックから分散管理情報を読み込
み、当該分散管理情報を用いてビットマップテーブルを
構築する。このとき、可/不可フラグが「使用不可」で
あるか、或いはブロックフラグが「未使用」又は「未消
去」である場合には、ビットマップテーブルの作成が終
了したら、次のブロックへ移動して処理を繰り返す。
【0191】(4)ブロックの論理アドレス(以下、論
理アドレスAとする。)と、連結アドレス(以下、論理
アドレスBとする。)とを調べる。
【0192】(5)論理アドレスAが「0xffff」の場合
は、次のブロックへ移動し、(3)へ戻って処理を繰り
返す。
【0193】(6)エラー検出テーブルの論理アドレス
Aの欄を調べる。エラー検出テーブルの論理アドレスA
の欄が「1」となっている場合は、「0」に書き換える
とともに、変換テーブルの論理アドレスAの欄に、論理
アドレス「A」のブロックの物理アドレスを書き込む。
また、エラー検出テーブルの論理アドレスAの欄が
「0」となっている場合は、変換テーブルの論理アドレ
スAの欄を調べる。そして、変換テーブルの論理アドレ
スAの値が「0xffff」のときは、そこに、論理アドレス
Aのブロックの物理アドレスを書き込む。
【0194】なお、変換テーブルの論理アドレスAの値
として、「0xffff」以外の値が既に入っている場合は、
論理アドレスエラーが発生している場合であるので、論
理アドレスエラーに対するエラー訂正処理を行う。
【0195】(7)連結テーブルの論理アドレスAの欄
に、論理アドレスBの値を記入する。
【0196】(8)最終フラグが「ブロック最終」とな
っているかを調べる。「ブロック最終」となっていれ
ば、連結アドレスは無効なので、次のブロックに移動
し、(3)へ戻って処理を繰り返す。
【0197】(9)論理アドレスBに物理アドレスが対
応しているかどうかを、変換テーブルを用いて確認す
る。変換テーブルの論理アドレスBの値が「0xffff」以
外の場合は、論理アドレスBに物理アドレスが対応して
いる。一方、変換テーブルの論理アドレスBの値が「0x
ffff」の場合は、現在のブロックまでの段階では、論理
アドレスBに物理アドレスが対応していない。このとき
は、エラー検出テーブルの論理アドレスBの欄に「1」
を書き込むとともに、変換テーブルの論理アドレスBの
欄に論理アドレスAの値を記入する。その後、次のブロ
ックに移動し、(3)へ戻って処理を繰り返す。
【0198】なお、変換テーブルの論理アドレスBの値
が「0xffff」となっても、ブロックの途中までしか処理
を行っていない段階では、論理アドレスBに物理アドレ
スが本当に対応していないのかは明らかではない。すな
わち、論理アドレスBに物理アドレスが本当に対応して
いない場合と、今後処理を進めて行くに従って、対応す
るブロックが現れる場合との2通りがあり得る。
【0199】(10)全てのブロックに対して処理を行
った後、エラー検出テーブルを参照する。エラー検出テ
ーブルの値が「1」となっている論理アドレスは、物理
アドレスが対応していない。すなわち、連結アドレスエ
ラーが発生している。このときは、変換テーブル内に連
結元のブロックの論理アドレスが格納されているので、
これを用いて元ブロックを特定し、適切なエラー訂正処
理を行う。なお、エラー訂正処理を行った後は、エラー
検出テーブルの値を「0」にし、該当する変換テーブル
の値を「0xffff」にしておく。
【0200】本発明を適用したシステムでは、以上のよ
うに、集合管理情報を構築するときにエラー検出訂正処
理を行う。以下、このような集合管理情報の構築及びエ
ラー検出訂正処理の具体的な方法について、図21乃至
図23に示すフローチャートを参照して、更に詳細に説
明する。
【0201】なお、ここでは、変数としてI,A,B,
C,D,T(I)を使用し、定数としてNを使用する。
変数Iは、物理アドレスが入力される変数であり、変数
Aは、論理アドレスが入力される変数であり、変数B
は、連結アドレスが入力される変数であり、変数C,D
は、識別番号の値が入力される変数であり、変数T
(I)は、論理アドレス「I」に対応するエラー検出テ
ーブルの値を示す変数である。また、定数Nは、総ブロ
ック数を示す定数である。
【0202】集合管理情報を構築する際は、図21のス
テップS101において、データ処理装置1は、変換テ
ーブルを初期化し、全ての値を「0xffff」とする。次に
ステップS102へ進む。
【0203】ステップS102において、データ処理装
置1は、エラー検出テーブルを初期化し、全ての値を
「0」とする。次にステップS103へ進む。
【0204】ステップS103において、データ処理装
置1は、変数Iに「0」を代入する。次にステップS1
04へ進む。
【0205】ステップS104において、データ処理装
置1は、物理アドレス「I」のブロックの分散管理情報
をメモリカード2から読み込む。次にステップS105
へ進む。
【0206】ステップS105において、データ処理装
置1は、ステップS104で読み込んだ分散管理情報の
可/不可フラグを参照して、物理アドレス「I」のブロ
ックが使用可能か否かを判別する。使用可能であれば、
ステップS106へ進み、使用不可能であれば、ステッ
プS129へ進む。
【0207】ステップS106において、データ処理装
置1は、ステップS104で読み込んだ分散管理情報の
ブロックフラグを参照して、物理アドレス「I」のブロ
ックが使用中であるか否かを判別する。具体的には、ブ
ロックフラグが「先頭使用」又は「使用」になっている
か否かを判別する。ブロックフラグが「先頭使用」又は
「使用」になっており、当該ブロックが使用中であれ
ば、ステップS107へ進む。また、当該ブロックが使
用中でなければ、ステップS129へ進む。
【0208】ステップS107において、データ処理装
置1は、物理アドレス「I」のブロックについての情報
をビットマップテーブルに加える。次に、ステップS1
08へ進む。
【0209】ステップS108において、データ処理装
置1は、ステップS104で読み出した分散管理情報に
基づいて、物理アドレス「I」のブロックの論理アドレ
スを変数Aに代入し、物理アドレス「I」のブロックの
連結アドレスを変数Bに代入する。次にステップS10
9へ進む。
【0210】ステップS109において、データ処理装
置1は、Aの値が「0xffff」であるか否かを判別する。
「0xffff」でなければ、ステップS110へ進み、「0x
ffff」であれば、図22のステップS120へ進む。
【0211】ステップS110において、データ処理装
置1は、エラー検出テーブルの論理アドレス「A」の値
を調べる。次にステップS111へ進む。
【0212】ステップS111において、データ処理装
置1は、エラー検出テーブルの論理アドレス「A」の値
が「1」であるかを判別する。「1」であれば、ステッ
プS112へ進み、「1」でなければステップS130
へ進む。
【0213】ステップS112において、データ処理装
置1は、エラー検出テーブルの論理アドレス「A」の値
を「0」に書き換える。次に、ステップS113へ進
む。
【0214】ステップS113において、データ処理装
置1は、変換テーブルの論理アドレス「A」の欄に、変
数「I」(すなわち物理ブロック「I」)を書き込む。
次に、ステップS114へ進む。
【0215】ステップS114において、データ処理装
置1は、連結テーブルの論理アドレス「A」の欄に、変
数「B」(すなわち連結アドレス「B」)を書き込む。
次に、ステップS115へ進む。
【0216】ステップS115において、データ処理装
置1は、最終フラグが「ブロック最終」になっているか
否かを判別する。「ブロック最終」になっていなけれ
ば、ステップS116へ進み、「ブロック最終」になっ
ていれば、図22のステップS120へ進む。
【0217】ステップS116において、データ処理装
置1は、論理アドレス「B」に対応する変換テーブルの
値を調べる。次に、ステップS117へ進む。
【0218】ステップS117において、データ処理装
置1は、論理アドレス「B」に対応する変換テーブルの
値が「0xffff」であるかを判別する。「0xffff」であれ
ば、ステップS118へ進み、「0xffff」でなければ、
図22のステップS120へ進む。
【0219】ステップS118において、データ処理装
置1は、エラー検出テーブルの論理アドレス「B」の欄
を「1」に書き換える。次に、ステップS119へ進
む。
【0220】ステップS119において、データ処理装
置1は、エラー検出テーブルの論理アドレス「B」の欄
に、論理アドレス「A」を書き込む。次に、図22のス
テップS120へ進む。
【0221】図22のステップS120において、デー
タ処理装置1は、変数Iの値と、総ブロック数を示す定
数Nの値とを比較する。I<Nでなければ、ステップS
121へ進み、I<Nであれば、ステップS128へ進
む。
【0222】ステップS121において、データ処理装
置1は、変数Iに「0」を代入する。次にステップS1
22へ進む。
【0223】ステップS122において、データ処理装
置1は、エラー検出テーブルの論理アドレス「I」の値
を示す変数T(I)が「1」であるかを判別する。
「1」でなければステップS123へ進み、「1」であ
ればステップS125へ進む。
【0224】ステップS123において、データ処理装
置1は、変数Iの値と、総ブロック数を示す定数Nの値
とを比較する。I=Nであれば、これで処理を終了す
る。I=Nでなければ、ステップS124へ進む。
【0225】ステップS124において、データ処理装
置1は、変数Iの値を1インクリメントする。その後、
ステップS122へ戻って処理を繰り返す。
【0226】また、ステップS122で変数T(I)が
「1」であったときは、上述したようにステップS12
5へ進む。このステップS125に進むのは、連結アド
レスエラーが生じていたときである。そこで、ステップ
S125において、データ処理装置1は、連結アドレス
エラーに対する所定のエラー訂正処理を行う。ここで
は、上述したように、メモリカード2を使用するアプリ
ケーションソフトウェアやメモリカード2に格納するデ
ータ等に応じた適切なエラー訂正処理を行うようにす
る。そして、エラー訂正処理が完了したら、ステップS
126へ進む。
【0227】ステップS126において、データ処理装
置1は、エラー検出テーブルの論理アドレス「I」の値
を「0」にする。次に、ステップS127へ進む。
【0228】ステップS127において、データ処理装
置1は、変換テーブルの論理アドレス「I」の欄を「0x
ffff」に書き換える。その後、ステップS123へ進
み、上述した処理を行う。
【0229】また、ステップS120でI<Nであった
ときは、上述したようにステップS128へ進む。この
ステップS128へ進むのは、全ブロックについての分
散管理情報の読み出しが完了していないときである。そ
こで、このステップS128において、データ処理装置
1は、変数Iの値を1インクリメントし、その後、図2
1のステップS104へ戻って処理を繰り返す。
【0230】また、図21のステップS105で物理ア
ドレス「I」のブロックが使用不可能であったとき、及
びステップS106で物理アドレス「I」のブロックが
使用中でなかったときは、上述したようにステップS1
29へ進む。
【0231】ステップS129において、データ処理装
置1は、物理アドレス「I」のブロックについての情報
をビットマップテーブルに加える。その後、図22のス
テップS120へ進み、上述した処理を行う。
【0232】また、図21のステップS111でエラー
検出テーブルの論理アドレス「A」の値が「1」でなか
ったときは、上述したようにステップS130へ進む。
このステップS130において、データ処理装置1は、
変換テーブルの論理アドレス「A」の値を調べる。次
に、ステップS131へ進む。
【0233】ステップS131において、データ処理装
置1は、変換テーブルの論理アドレス「A」の値が「0x
ffff」であるかを判別する。「0xffff」であれば、ステ
ップS113へ進んで上述した処理を行い、「0xffff」
でなければ、図23のステップS132へ進む。
【0234】図23のステップS132に進むのは、論
理アドレスエラーが生じて、論理アドレス「A」を持つ
ブロックが2つ存在しているときである。そこで、ステ
ップS132において、データ処理装置1は、論理アド
レス「A」を持つ2つのブロックの識別番号を読み出
す。そして、一方のブロックの識別番号が読み出せた
ら、その値を変数Cに代入する。また、他方のブロック
の識別番号が読み出せたら、その値を変数Dに代入す
る。次にステップS133へ進む。
【0235】ステップS133において、データ処理装
置1は、ステップS132での識別番号の読み出しが正
常に行えたかを判別する。変数Cに代入される識別番号
だけが読み出せたときは、ステップS134へ進み、そ
れ以外のときは、ステップS137へ進む。
【0236】ステップS134において、データ処理装
置1は、変数Dに対応するブロックのブロックフラグを
「未消去」にする。次にステップS135へ進む。
【0237】ステップS135において、データ処理装
置1は、ステップS134での処理、すなわち変数Dに
対応するブロックのブロックフラグを「未消去」にする
処理が成功したかを判別する。成功していれば、図21
のステップS113へ戻って上述した処理を行い、成功
していなければ、ステップS136へ進む。
【0238】ステップS136において、データ処理装
置1は、変数Dに対応するブロックの可/不可フラグを
「使用不可」にする。その後、図21のステップS11
3へ戻って上述した処理を行う。
【0239】また、ステップS137において、データ
処理装置1は、ステップS132での識別番号の読み出
しが正常に行えたかを判別する。変数Dに代入される識
別番号だけが読み出せたときは、ステップS138へ進
み、それ以外のときは、ステップS141へ進む。
【0240】ステップS138において、データ処理装
置1は、変数Cに対応するブロックのブロックフラグを
「未消去」にする。次にステップS139へ進む。
【0241】ステップS139において、データ処理装
置1は、ステップS138での処理、すなわち変数Cに
対応するブロックのブロックフラグを「未消去」にする
処理が成功したかを判別する。成功していれば、図21
のステップS113へ戻って上述した処理を行い、成功
していなければ、ステップS140へ進む。
【0242】ステップS140において、データ処理装
置1は、変数Cに対応するブロックの可/不可フラグを
「使用不可」にする。その後、図21のステップS11
3へ戻って上述した処理を行う。
【0243】また、ステップS141において、データ
処理装置1は、ステップS132での識別番号の読み出
しが正常に行えたかを判別する。変数Cに代入される識
別番号と、変数Dに代入される識別番号との両方が正常
に読み出せたときは、ステップS142へ進む。一方、
両方とも読み出せなかったときには、手動復旧モードに
移行し、手動にてエラーの訂正に必要な適切な処理を行
うようにする。
【0244】ステップS142において、データ処理装
置1は、変数Cの値と、変数Dの値に「1」を加えた値
とを比較する。これらの値が等しければ、ステップS1
34へ進み上述した処理を行い、これらの値が等しくな
ければ、ステップS143へ進む。
【0245】ステップS143において、データ処理装
置1は、変数Dの値と、変数Cの値に「1」を加えた値
とを比較する。これらの値が等しければ、ステップS1
38へ進み上述した処理を行う。一方、これらの値が等
しくないときは、手動復旧モードに移行し、手動にてエ
ラーの訂正に必要な適切な処理を行うようにする。
【0246】以上のような処理により、集合管理情報の
再構築時に、エラー検出訂正処理が同時に行われる。こ
れにより、上述したように、エラー検出訂正処理のため
にメモリカード2に余分にアクセスする必要がなくな
る。すなわち、本発明を適用したシステムでは、データ
の書き込みが正常に終了し有効な集合管理情報がメモリ
カード2に書き戻されている場合には、エラー検出訂正
処理は実行されない。
【0247】このように、本発明を適用したシステムで
は、不要なエラー検出訂正処理を行わないので、メモリ
カード2へのアクセスの高効率化を図ることができる。
特に、上記エラー検出訂正処理は、分散管理情報から集
中管理情報を構築する作業と同時に行われるため、メモ
リカード2へのアクセスが最小限にとどめられる。
【0248】また、本発明を適用したシステムでは、メ
モリカード2の各ブロックに識別番号を付し、この識別
番号を用いて論理アドレスエラーに対処するようにして
いるので、データ更新処理を安全に行うことができる。
すなわち、データ更新処理時に何らかのエラーが発生し
て、同じ論理アドレスを持つブロックが複数存在するよ
うになってしまっても、識別番号を用いることで、デー
タ更新処理前の状態のデータを復旧することができる。
更に、本発明を適用したシステムでは、エラー検出テー
ブルを用いることで、連結アドレスエラーを検出するこ
ともでき、しかも連結先の存在しないブロックを検出す
ることもできる。
【0249】
【発明の効果】以上詳細に説明したように、本発明によ
れば、外部記憶装置に論理アドレスエラーや連結アドレ
スエラーが生じても、それらのエラーを検出し適切に修
復することができる。
【図面の簡単な説明】
【図1】本発明が適用されるシステムの全体構成を示す
図である。
【図2】本発明を適用したメモリカードの構成を示すブ
ロック図である。
【図3】本発明を適用したメモリカードの外観を示す斜
視図である。
【図4】本発明を適用したメモリカードの記憶領域の構
造を示す図である。
【図5】分散管理情報の構成を示す図である。
【図6】追加管理情報の構成を示す図である。
【図7】各ブロックの分散管理情報から集合管理情報を
構築する様子を示す図である。
【図8】集合管理情報の構成を示す図である。
【図9】変換テーブルを示す図である。
【図10】連結テーブルを示す図である。
【図11】メモリカード起動時の手順を示すフローチャ
ートである。
【図12】データ更新処理時の手順を示すフローチャー
トである。
【図13】終了処理の手順を示すフローチャートであ
る。
【図14】サイズが分かっているファイルをメモリカー
ドに書き込むときの手順を示すフローチャートである。
【図15】サイズが分かっていないファイルをメモリカ
ードに書き込むときの手順を示すフローチャートであ
る。
【図16】ファイル更新の手順について、具体的な例を
挙げて示す概念図である。
【図17】ファイル更新の手順を示すフローチャートで
ある。
【図18】エラー検出テーブルを示す図である。
【図19】ブロック間の連結状態の具体的な例を示す図
である。
【図20】連結アドレスエラー検出の例として、ブロッ
ク間の連結状態が図19に示した状態のときの処理の流
れを示す図である。
【図21】集合管理情報の構築とエラー検出訂正処理の
手順を示すフローチャートである。
【図22】集合管理情報の構築とエラー検出訂正処理の
手順を示すフローチャートである。
【図23】集合管理情報の構築とエラー検出訂正処理の
手順を示すフローチャートである。
【符号の説明】
1 データ処理装置、 2 メモリカード、 3 演算
処理装置、 4 内部メモリ、 5 補助記憶装置、
6 シリアルインターフェース回路、 7 バス、 1
1 コントローラ、 12 フラッシュメモリ、 13
シリアル/パラレル・パラレル/シリアル・インター
フェース・シーケンサ、 14 フラッシュメモリ・イ
ンターフェース・シーケンサ、 15 ページバッフ
ァ、 16エラー訂正回路、 17 コマンドジェネレ
ータ、 18 コンフィグレーションROM、 19
発振器、 20 誤消去防止スイッチ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 記憶領域が複数のブロックに分割されて
    なり、各ブロックに対して論理アドレスが割り当てられ
    る外部記憶装置であって、 各ブロックには、データと共に当該データの新旧を示す
    識別番号が格納され、 同じ論理アドレスを持つ複数のブロックが存在する場合
    には、上記識別番号に基づいて、それらのブロックに格
    納されているデータの新旧が判別され、新しい方のデー
    タは無効なデータとされ、古い方のデータが有効なデー
    タとされることを特徴とする外部記憶装置。
  2. 【請求項2】 記憶領域が複数のブロックに分割されて
    なり、各ブロックに対して論理アドレスが割り当てられ
    るとともに、ブロックに格納するデータをブロック毎に
    管理するための情報である分散管理情報が各ブロックに
    それぞれ格納され、全ブロックを管理するための情報で
    ある集合管理情報が各ブロックの分散管理情報から生成
    され、ブロック全体が上記集合管理情報に基づいて管理
    される外部記憶装置において、 データがファイル単位で格納されるとともに、一つのフ
    ァイルが複数のブロックにわたる場合には、当該ファイ
    ルを格納しているブロックのそれぞれに次のブロックの
    論理アドレスが連結アドレスとして格納され、 上記集合管理情報が生成されるときに、連結アドレスが
    指し示す論理アドレスを持つブロックが存在するか否か
    が調べられることを特徴とする外部記憶装置。
  3. 【請求項3】 記憶領域が複数のブロックに分割されて
    なる外部記憶装置にデータを格納する際に、ブロックに
    論理アドレスを割り当ててデータを格納するとともに、
    データが格納されるブロックに当該データの新旧を示す
    識別番号を格納し、 上記外部記憶装置からデータを読み出す際に、同じ論理
    アドレスを持つ複数のブロックが存在する場合には、上
    記識別番号に基づいて、それらのブロックに格納されて
    いるデータの新旧を判別し、新しい方のデータは無効な
    データとし、古い方のデータを有効なデータとすること
    を特徴とするデータ処理装置。
  4. 【請求項4】 記憶領域が複数のブロックに分割されて
    なる外部記憶装置に対して、各ブロックに論理アドレス
    を割り当ててデータを格納するデータ処理装置であっ
    て、 上記外部記憶装置に格納するデータをブロック毎に管理
    するための情報である分散管理情報を各ブロックにそれ
    ぞれ格納するとともに、全ブロックを管理するための情
    報である集合管理情報を各ブロックの分散管理情報から
    生成して当該集合管理情報に基づいてブロック全体を管
    理し、 上記外部記憶装置にデータをファイル単位で格納する際
    に、一つのファイルが複数のブロックにわたる場合に
    は、当該ファイルが格納されるブロックのそれぞれに次
    のブロックの論理アドレスを連結アドレスとして格納
    し、 上記集合管理情報を生成するときに、連結アドレスが指
    し示す論理アドレスを持つブロックが存在するか否かを
    調べることを特徴とするデータ処理装置。
  5. 【請求項5】 記憶領域が複数のブロックに分割されて
    なる外部記憶装置にデータを格納する際に、ブロックに
    論理アドレスを割り当ててデータを格納するとともに、
    データが格納されるブロックに当該データの新旧を示す
    識別番号を格納し、 上記外部記憶装置からデータを読み出す際に、同じ論理
    アドレスを持つ複数のブロックが存在する場合には、上
    記識別番号に基づいて、それらのブロックに格納されて
    いるデータの新旧を判別し、新しい方のデータは無効な
    データとし、古い方のデータを有効なデータとすること
    を特徴とするデータ処理方法。
  6. 【請求項6】 記憶領域が複数のブロックに分割されて
    なる外部記憶装置に対して、各ブロックに論理アドレス
    を割り当ててデータを格納する際に、 上記外部記憶装置に格納するデータをブロック毎に管理
    するための情報である分散管理情報を各ブロックにそれ
    ぞれ格納するとともに、全ブロックを管理するための情
    報である集合管理情報を各ブロックの分散管理情報から
    生成して当該集合管理情報に基づいてブロック全体を管
    理し、 上記外部記憶装置にデータをファイル単位で格納する際
    に、一つのファイルが複数のブロックにわたる場合に
    は、当該ファイルが格納されるブロックのそれぞれに次
    のブロックの論理アドレスを連結アドレスとして格納
    し、 上記集合管理情報を生成するときに、連結アドレスが指
    し示す論理アドレスを持つブロックが存在するか否かを
    調べることを特徴とするデータ処理方法。
JP9267178A 1997-09-30 1997-09-30 外部記憶装置、データ処理装置及びデータ処理方法 Expired - Fee Related JP3070539B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9267178A JP3070539B2 (ja) 1997-09-30 1997-09-30 外部記憶装置、データ処理装置及びデータ処理方法
JP34682699A JP3640154B2 (ja) 1997-09-30 1999-12-06 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9267178A JP3070539B2 (ja) 1997-09-30 1997-09-30 外部記憶装置、データ処理装置及びデータ処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP34682699A Division JP3640154B2 (ja) 1997-09-30 1999-12-06 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム

Publications (2)

Publication Number Publication Date
JPH11110300A true JPH11110300A (ja) 1999-04-23
JP3070539B2 JP3070539B2 (ja) 2000-07-31

Family

ID=17441199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9267178A Expired - Fee Related JP3070539B2 (ja) 1997-09-30 1997-09-30 外部記憶装置、データ処理装置及びデータ処理方法

Country Status (1)

Country Link
JP (1) JP3070539B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051883A (ja) * 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006018594A (ja) * 2004-07-01 2006-01-19 Mitsubishi Electric Corp 情報処理装置
JP2006099419A (ja) * 2004-09-29 2006-04-13 Tietech Co Ltd 不揮発性メモリの制御方法
US7590294B2 (en) 2004-11-29 2009-09-15 Sony Corporation Image compression apparatus and method, and program and recording medium
US7657702B2 (en) 2001-01-19 2010-02-02 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2010267290A (ja) * 2002-10-28 2010-11-25 Sandisk Corp 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
JP2011123560A (ja) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd フラッシュディスク装置
JP2012146340A (ja) * 2012-05-07 2012-08-02 Kyocera Corp 電子機器および記憶方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03246645A (ja) * 1990-02-23 1991-11-05 Nec Corp データ管理方式
JPH07248978A (ja) * 1994-03-11 1995-09-26 Fuji Film Micro Device Kk 不揮発性メモリ
JPH08272698A (ja) * 1995-03-30 1996-10-18 Fujitsu Ltd メモリ書替え装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03246645A (ja) * 1990-02-23 1991-11-05 Nec Corp データ管理方式
JPH07248978A (ja) * 1994-03-11 1995-09-26 Fuji Film Micro Device Kk 不揮発性メモリ
JPH08272698A (ja) * 1995-03-30 1996-10-18 Fujitsu Ltd メモリ書替え装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051883A (ja) * 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
US7818490B2 (en) 2001-01-19 2010-10-19 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US8316177B2 (en) 2001-01-19 2012-11-20 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7970987B2 (en) 2001-01-19 2011-06-28 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7657702B2 (en) 2001-01-19 2010-02-02 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
US7127551B2 (en) 2001-11-16 2006-10-24 Samsung Electronics Co., Ltd. Flash memory management method
JP2010267290A (ja) * 2002-10-28 2010-11-25 Sandisk Corp 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006018594A (ja) * 2004-07-01 2006-01-19 Mitsubishi Electric Corp 情報処理装置
JP4558393B2 (ja) * 2004-07-01 2010-10-06 三菱電機株式会社 情報処理装置
JP2006099419A (ja) * 2004-09-29 2006-04-13 Tietech Co Ltd 不揮発性メモリの制御方法
US7590294B2 (en) 2004-11-29 2009-09-15 Sony Corporation Image compression apparatus and method, and program and recording medium
JP2011123560A (ja) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd フラッシュディスク装置
JP2012146340A (ja) * 2012-05-07 2012-08-02 Kyocera Corp 電子機器および記憶方法

Also Published As

Publication number Publication date
JP3070539B2 (ja) 2000-07-31

Similar Documents

Publication Publication Date Title
JP3912355B2 (ja) データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
JP2914360B2 (ja) 外部記憶装置及びデータ処理方法
US6845434B2 (en) Method for updating parametric data for use in data management system
JP3072722B2 (ja) フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
US6687784B2 (en) Controller for controlling nonvolatile memory unit
JP3233079B2 (ja) データ処理システム及びデータ処理方法
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
US6883060B1 (en) Microcomputer provided with flash memory and method of storing program into flash memory
KR100370893B1 (ko) 일괄 소거형 비휘발성 메모리 장치
JP3268130B2 (ja) フラッシュeepromを用いたデータ処理装置
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
JP2008033801A (ja) メモリデータ管理装置
JP3070539B2 (ja) 外部記憶装置、データ処理装置及びデータ処理方法
JP2002251310A (ja) フラッシュメモリのファイルシステム作成方式
JPH11328982A (ja) フラッシュメモリのデ―タ管理方式
JP3640154B2 (ja) 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム
JP2910745B2 (ja) 記憶装置及びデータ処理方法
JP2003036209A (ja) 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
JP4183237B2 (ja) 記憶装置
JP2002108722A (ja) 記憶装置
JP3624647B2 (ja) 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム
JPH11110263A (ja) 記憶装置、データ処理装置及びデータ処理方法
JP2006099419A (ja) 不揮発性メモリの制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000425

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

Free format text: PAYMENT UNTIL: 20090526

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100526

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100526

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120526

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120526

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130526

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees