JP2914360B2 - 外部記憶装置及びデータ処理方法 - Google Patents
外部記憶装置及びデータ処理方法Info
- Publication number
- JP2914360B2 JP2914360B2 JP26717797A JP26717797A JP2914360B2 JP 2914360 B2 JP2914360 B2 JP 2914360B2 JP 26717797 A JP26717797 A JP 26717797A JP 26717797 A JP26717797 A JP 26717797A JP 2914360 B2 JP2914360 B2 JP 2914360B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- boot
- stored
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
定のブロック単位で行われる記憶手段を備えた外部記憶
装置、並びにそのような外部記憶装置に格納するデータ
についてのデータ処理方法に関する。
ルカメラ等のようなデータ処理装置に用いられる外部記
憶装置として、いわゆるフラッシュメモリを備えた外部
記憶装置がある。
は、記憶領域を複数のブロックに分割し、データ領域の
管理をブロック単位で行う。すなわち、例えば、データ
の消去を行う際は、ブロック単位で行う。また、例え
ば、記憶領域内に回復不能なエラーが生じたときには、
当該エラーが生じた領域を含むブロックを使用しないよ
うにする。なお、以下の説明では、このようなブロック
のことを使用不可ブロックと称する。
該外部記憶装置にアクセスするために必要な情報等が含
まれるブートデータを、予め所定のブロックに格納して
おく。そして、当該外部記憶装置を起動する際は、最初
にブートデータを読み出し、その後、このブートデータ
に基づいて当該外部記憶装置へのアクセスを行い、デー
タの書き込みや読み出しを行う。
データには、通常、当該外部記憶装置へのアクセスに不
可欠な情報が含まれており、ブートデータが読み出せな
くなってしまうと、当該外部記憶装置へのアクセスが不
可能となってしまう。したがって、ブートデータには、
非常に高い信頼性が要求される。
格納されるブロック(以下、ブートブロックと称す
る。)は、予め設定された所定位置のブロックとされて
いた。そして、通常使用するブートブロックが使用不可
ブロックとなってしまっても、ブートデータを読み出せ
るように、ブートデータをコピーしたものを他のブロッ
クにも格納しておくようにしていた。そして、従来の外
部記憶装置では、信頼性をより高めるために、ブートデ
ータのコピーを多数用意し、それらをそれぞれ異なるブ
ロックに格納しておくようにしていた。しかしながら、
ブートデータのコピーを多数用意しておく手法は、記憶
容量の有効利用の点では好ましくない。
ときに、ブートデータのコピー全てが正しく最新のブー
トデータに更新されたかを判別するようにはしていなか
った。したがって、何らかの利用により、ブートデータ
のコピーが正しく最新のブートデータに更新されなかっ
たりすると、最新の正しいブートデータを読み出せなく
なって、外部記憶装置に対する正常なアクセスができな
くなってしまうような場合があった。
意していたとしても、それらのコピーは、オリジナルの
ブートデータの読み出しに失敗したときに使用されるだ
けであった。したがって、従来は、オリジナルのブート
データが格納されたブートブロックの一部のビットが反
転してしまったりして、オリジナルのブートデータの内
容が正しくなくなっていたとしても、当該ブートデータ
を読み出すことさえできれば、当該ブートデータがその
まま使用されてしまうという問題があった。
て提案されたものであり、記憶領域を有効に利用しなが
らも、ブートデータ読み出し時にエラーが発生し難く、
信頼性の高い外部記憶装置を提供することを目的として
いる。また、本発明は、そのような外部記憶装置を実現
するデータ処理方法を提供することも目的としている。
置は、データの消去を所定のブロック単位で行うととも
に、起動時に最初に読み出されるブートデータを格納す
るブロックを有する外部記憶装置である。そして、ブー
トデータがそれぞれ格納された複数の異なるブロックを
備えるとともに、ブートデータが格納された各ブロック
に、それらのブロックに格納されたブートデータの新旧
を示す識別番号が格納される識別番号格納部を備えてい
ることを特徴としている。
上記識別番号に基づいて、上記複数の異なるブロックに
格納された各ブートデータのうち、最新のブートデータ
が読み出され、当該ブートデータを用いて起動される。
時に、上記識別番号に基づいて、上記複数の異なるブロ
ックに格納された各ブートデータの新旧が判別され、古
いブートデータがある場合には当該ブートデータが最新
のブートデータに書き換えられる。
ータの消去を所定のブロック単位で行う外部記憶装置
に、当該外部記憶装置の起動時に最初に読み出されるブ
ートデータを格納する際に、複数の異なるブロックにブ
ートデータをそれぞれ格納するとともに、ブートデータ
が格納された各ブロックに、それらのブロックに格納さ
れたブートデータの新旧を示す識別番号を格納すること
を特徴とする。
部記憶装置を起動する際に、上記識別番号に基づいて、
上記複数の異なるブロックに格納された各ブートデータ
のうち、最新のブートデータを読み出して、当該ブート
データを用いて外部記憶装置を起動する。
上記外部記憶装置を起動する際に、上記識別番号に基づ
いて、上記複数の異なるブロックに格納された各ブート
データの新旧を判別し、古いブートデータがある場合に
は当該ブートデータを最新のブートデータに書き換え
る。
て、図面を参照しながら詳細に説明する。
て、その全体構成を図1に示す。このシステムは、ホス
ト側システムとなるデータ処理装置1と、シリアルイン
ターフェースを介してデータ処理装置1に接続される外
部記憶装置であるメモリカード2とから構成される。
リカード2との間でのデータのやり取りをシリアルイン
ターフェースによって行うシステムを例に挙げるが、本
発明は、データのやり取りをパラレルインターフェース
によって行うシステムに対しても適用可能である。
U)3と、内部メモリ4と、補助記憶装置5と、シリア
ルインターフェース回路6とを備え、これらがバス7に
よって相互に接続されてなる。このデータ処理装置1
は、例えば、補助記憶装置5に格納されているプログラ
ムを読み出して、当該プログラムを、内部メモリ4をワ
ークエリアとして使用して、CPU3により実行する。
このとき、必要に応じて、シリアルインターフェース回
路6を介してメモリカード2との間でデータのやり取り
を行う。
されるデータ処理装置は、外部記憶装置との間でデータ
のやり取りが可能なものであるならば特に限定されるも
のではなく、本発明は、パーソナルコンピュータ、デジ
タルスチルカメラ、デジタルビデオカメラ等、種々のデ
ータ処理装置に適用可能である。
シリアルインターフェースによって接続されており、具
体的には、少なくとも3本のデータ線SCLK,Sta
te,DIOによって接続される。すなわち、データ処
理装置1とメモリカード2とは、少なくとも、データ伝
送時にクロック信号を伝送する第1のデータ線SCLK
と、データ伝送時に必要なステータス信号を伝送する第
2のデータ線Stateと、メモリカード2に書き込む
データ又はメモリカード2から読み出すデータ等をシリ
アルに伝送する第3のデータ線DIOとによって接続さ
れ、これらを介して、データ処理装置1とメモリカード
2との間でのデータのやり取りを行う。
でのデータのやり取りは、通常、ヘッダーと実データと
から構成されるファイル単位で行われる。なお、ファイ
ルのヘッダーには、例えば、ファイルにアクセスするた
めの情報や、データ処理装置1で実行されるプログラム
で必要とされる情報等が格納される。
わゆるコントロールICからなるコントローラ11と、
コントローラ11によって管理されるフラッシュメモリ
12とを備えている。
変換やパラレル/シリアル変換等を行うシリアル/パラ
レル・パラレル/シリアル・インターフェース・シーケ
ンサ13(以下、S/P&P/S・インターフェース・
シーケンサ13と称する。)と、フラッシュメモリ12
へのインターフェースを司るフラッシュメモリ・インタ
ーフェース・シーケンサ14と、S/P&P/S・イン
ターフェース・シーケンサ13とフラッシュメモリ・イ
ンターフェース・シーケンサ14との間でやり取りされ
るデータを一時的に記憶するページバッファ15と、エ
ラー訂正の処理を行うエラー訂正回路16と、フラッシ
ュメモリ12へのアクセスを制御する制御コマンドの生
成等を行うコマンドジェネレータ17と、このメモリカ
ード2のバージョン情報や各種属性情報等が格納されて
いるコンフィグレーションROM18と、各回路に対し
てそれらの動作に必要なクロック信号を供給する発振器
19とを備えている。
ケンサ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へ送出する。
シーケンサ13とデータ処理装置1との間でのシリアル
データの伝送は、第1のデータ線SCLKによってデー
タ処理装置1から送られてくるクロック信号によって同
期を取りながら、第3のデータ線DIOによって行われ
る。このとき、第3のデータ線DIOによってやり取り
されるシリアルデータのデータ種別は、第2のデータ線
Stateによって伝送されるステータス信号によって
判別される。ここで、シリアルデータの種別には、例え
ば、フラッシュメモリ12に書き込むべきデータ、フラ
ッシュメモリ12から読み出されたデータ、又はこのメ
モリカード2の動作を制御するための制御データ等があ
る。なお、ステータス信号は、メモリカード2の状態を
示すためにも使用される。ステータス信号によって示さ
れるメモリカード2の状態には、例えば、メモリカード
2が何らかの処理の最中でデータ処理装置1からのデー
タ入力を受け付けない状態や、メモリカード2の側での
処理が終了してデータ処理装置1からのデータ入力を待
っている状態等がある。
・シーケンサ13は、データ処理装置1から送られてき
たデータがメモリカード2の動作を制御するための制御
データである場合には、当該制御データをコマンドジェ
ネレータ17に送出する。
装置1からS/P&P/S・インターフェース・シーケ
ンサ13を介して送られてきた制御データに基づいて、
フラッシュメモリ12へのアクセスを制御する制御コマ
ンドを生成し、当該制御コマンドをフラッシュメモリ・
インターフェース・シーケンサ14へ送出する。フラッ
シュメモリ・インターフェース・シーケンサ14は、後
述するように、この制御コマンドに基づいて、フラッシ
ュメモリ12にデータを書き込んだり、フラッシュメモ
リ12からデータを読み出したりする。
は、誤消去防止スイッチ20が接続されている。そし
て、この誤消去防止スイッチ20がオンになっていると
きには、フラッシュメモリ12に書かれているデータを
消去するように指示する制御データがデータ処理装置1
から送られてきたとしても、コマンドジェネレータ17
は、フラッシュメモリ12に書かれているデータを消去
するような制御コマンドを生成しない。すなわち、この
メモリカード2は、誤消去防止スイッチ20によって、
フラッシュメモリ12に保存されているデータの消去が
行えない状態と、フラッシュメモリ12に保存されてい
るデータの消去が行える状態とを切り換えることが可能
となっている。
ケンサ13とフラッシュメモリ・インターフェース・シ
ーケンサ14との間に配されたページバッファ15は、
いわゆるバッファメモリであり、S/P&P/S・イン
ターフェース・シーケンサ13とフラッシュメモリ・イ
ンターフェース・シーケンサ14との間でやり取りされ
るデータを一時的に記憶する。
ース・シーケンサ13からフラッシュメモリ・インター
フェース・シーケンサ14へ送られるデータは、先ず、
S/P&P/S・インターフェース・シーケンサ13か
らページバッファ15に送られて、このページバッファ
15によって一時的に記憶される。このとき、ページバ
ッファ15に記憶されたデータは、エラー訂正回路16
によってエラー訂正符号が付けられる。そして、エラー
訂正符号が付けられたデータは、ページバッファ15か
ら所定のページ単位毎(例えば1ページ=512バイト
とされる。)に、フラッシュメモリ・インターフェース
・シーケンサ14へと送られる。
ース・シーケンサ14からS/P&P/S・インターフ
ェース・シーケンサ13へ送られるデータは、先ず、フ
ラッシュメモリ・インターフェース・シーケンサ14か
らページバッファ15に送られて、このページバッファ
15によって一時的に記憶される。このとき、ページバ
ッファ15に記憶されたデータは、エラー訂正回路16
によってエラー訂正処理が施される。そして、エラー訂
正処理が施されたデータは、ページバッファ15から所
定のページ単位毎に、S/P&P/S・インターフェー
ス・シーケンサ13へと送られる。
ーケンサ14は、コマンドジェネレータ17からの制御
コマンドに基づいて、フラッシュメモリ12へのデータ
の書き込みや、フラッシュメモリ12からのデータの読
み出し等を行う。すなわち、フラッシュメモリ・インタ
ーフェース・シーケンサ14は、コマンドジェネレータ
17からの制御コマンドに基づいて、フラッシュメモリ
12からデータを読み出して、当該データを上述のよう
にページバッファ15を介して、S/P&P/S・イン
ターフェース・シーケンサ13へと送出する。或いは、
フラッシュメモリ・インターフェース・シーケンサ14
は、コマンドジェネレータ17からの制御コマンドに基
づいて、S/P&P/S・インターフェース・シーケン
サ13からのデータを、上述のようにページバッファ1
5を介して受け取り、当該データをフラッシュメモリ1
2に書き込む。
のメモリカード2のバージョン情報や各種属性情報等が
格納されている。コンフィグレーションROM18に格
納された情報は、必要に応じて、S/P&P/S・イン
ターフェース・シーケンサ13を介してコマンドジェネ
レータ17によって読み出されて使用される。すなわ
ち、コマンドジェネレータ17は、必要に応じて、コン
フィグレーションROM18に格納されている情報を読
み出し、この情報に基づいてメモリカード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に書き込まれる。
ータを読み出す際は、先ず、コマンドジェネレータ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へと送出される。
際は、フラッシュメモリ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にアク
セスして、データの書き込みやデータの読み出しを行
う。
データ線SCLK,State,DIOを備えるだけで
なく、その他に、電圧供給用の配線や、通常は使用しな
いリザーブの配線等を備えていてもよい。例えば、図2
並びに後掲する図3では、上述した3本のデータ線SC
LK,State,DIOの他に、4本の電源用の配線
VSS1,VSS2,VCC,INTと、3本のリザー
ブの配線RSV1,RSV2,RSV3とをメモリカー
ド2に設けた例を挙げている。
体的な外形について、図3を参照して説明する。
面形状が長方形とされる薄肉のカード状のケース21
に、上述したコントローラ11やフラッシュメモリ12
等が内蔵されてなる。そして、このメモリカード2は、
当該メモリカード2を装着する装着機構を備えたデータ
処理装置1に装着されて使用される。
には、斜めに切り欠かれた切り欠き部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である。
上面には、誤消去防止部材25が取り付けられている。
誤消去防止部材25は、ケース21の内部に収納された
上記誤消去防止スイッチ20に係合されており、この誤
消去防止部材25をスライド操作することにより、誤消
去防止スイッチ20のオン/オフの切り換えを行えるよ
うになっている。
1の装着装置に装着された際にメモリカード2がデータ
処理装置1から脱落しないようにするため、ケース20
の側面の一方に円弧状の第1のロック用切欠部26が形
成され、ケース20の側面の他方に矩形状の第2のロッ
ク用切欠部27が形成されている。そして、このメモリ
カード2がデータ処理装置1の装着装置に装着される
と、メモリカード2が脱落しないように、これらのロッ
ク用切欠部26,27が、データ処理装置1の装着装置
に係合される。
発明が適用される外部記憶装置の一例に過ぎない。すな
わち、本発明は、外部記憶装置の外形に依存することな
く、どんな外形の外部記憶装置にも適用可能である。
載されるフラッシュメモリ12の記憶領域の構造につい
て説明する。なお、以下に説明する記憶領域の構造は、
本発明が適用される外部記憶装置の記憶領域の構造の一
例に過ぎない。
なる複数のブロックに記憶領域が分割されてなるととも
に、ブートデータが格納されるブートブロックを備えた
外部記憶装置に対して広く適用可能であり、その記憶領
域の構造は、以下に説明するような構造でなくてもよ
い。
図4(a)に示すように、データ消去の単位となる複数
のブロックに分割されてなる。なお、これらのブロック
には、このメモリカード2が起動されたときにデータ処
理装置1によって最初に読み込まれるデータであるブー
トデータが格納されるブートブロックと、任意のデータ
が書き込まれるデータブロックとがある。各ブロックに
は、それぞれ固有の物理アドレスが付けられている。こ
れらのブロックは、データ消去の単位であると同時に、
ファイル管理上の最小単位でもある。すなわち、ファイ
ルは1つ又は複数のブロックに格納され、1つのブロッ
クを複数のファイルで利用することはできない。
を示す2つの状態を取りうる複数のビットからなり、初
期状態では、全てのビットが「1」とされており、ビッ
ト単位での変更は「1」から「0」へだけが可能となっ
ている。すなわち、「1」及び「0」からなるデータを
書き込む際、「1」については該当するビットをそのま
ま保持し、「0」については該当するビットを「1」か
ら「0」に変更する。
際は、ブロック単位で一括して初期化処理を行い、当該
ブロックの全ビットを「1」とする。これにより、当該
ブロックに書き込まれたデータが一括して消去され、そ
のブロックは再びデータの書き込みが可能な状態とな
る。
2つの状態だけを取りうるフラッシュメモリ(いわゆる
2値型のフラッシュメモリ)だけでなく、各ビットが3
つ以上の状態を取りうるフラッシュメモリ(いわゆる多
値型のフラッシュメモリ)にも適用可能である。
ックは、図4(b)に示すように、データの書き込みや
読み出しの単位となる複数のページから構成される。す
なわち、このフラッシュメモリ12にデータを書き込む
際は、上述したように、ページ単位にてページバッファ
15から送られてきたデータが、フラッシュメモリ・イ
ンターフェース・シーケンサ14によってページ単位に
てフラッシュメモリ12に書き込まれる。また、このフ
ラッシュメモリ12からデータを読み出す際は、フラッ
シュメモリ・インターフェース・シーケンサ14によっ
てページ単位毎にデータが読み出されて、ページバッフ
ァ15へと送られる。
とを有している。データエリアは、任意のデータが書き
込まれる領域である。冗長エリアは、データエリアに書
き込まれるデータの管理に必要な情報が格納される領域
である。
ロックの先頭ページの冗長エリアには、当該ブロックを
管理するために必要な情報として、いわゆる分散管理情
報が格納される。また、ブロックの2ページ目以降の各
ページの冗長エリアにも、予備の分散管理情報として、
先頭ページの冗長エリアに格納された分散管理情報と同
じものが格納される。ただし、最終ページの冗長エリア
には、分散管理情報ではなく、分散管理情報だけでは管
理しきれない追加情報として、いわゆる追加管理情報が
格納される。
は、各ブロック内の冗長エリアに分散管理情報が格納さ
れる。分散管理情報は、当該分散管理情報が格納された
ブロックを管理するための情報である。この分散管理情
報により、例えば、当該ブロックがファイルの先頭とな
るブロックであるか否かについての情報や、複数のブロ
ックからファイルが構成される場合にはそれらのブロッ
クの繋がりを示す情報等を得ることができる。なお、こ
の分散管理情報については、後で詳細に説明する。
ックの分散管理情報を集めることにより、フラッシュメ
モリ全体を管理するための情報として、いわゆる集合管
理情報を作成して、この集合管理情報をファイルとして
フラッシュメモリ12に格納しておくようにする。
各ブロックにアクセスするために必要な情報を得るよう
にする。すなわち、データ処理装置1とメモリカード2
との間でデータのやり取りを行う際、データ処理装置1
は、集合管理情報をメモリカード2から読み出して内部
メモリ4に展開し、この集合管理情報に基づいてメモリ
カード2にアクセスする。これにより、データアクセス
の都度、個々のブロックに格納された分散管理情報にア
クセスするような必要がなくなり、より高速なデータア
クセスが可能となる。
合管理情報について、更に詳細に説明する。
されたブロックを管理するための情報であり、16バイ
トの冗長エリアに書き込まれてなる。具体的には、図5
に示すように、1バイトの可/不可フラグと、1バイト
のブロックフラグと、4ビットの最終フラグと、4ビッ
トの参照フラグと、1バイトの管理フラグと、2バイト
の論理アドレスと、2バイトの連結アドレスと、3バイ
トのリザーブ領域と、2バイトの分散管理情報用エラー
訂正符号と、3バイトのデータ用エラー訂正符号とから
なる。
態か使用不可能状態かを示すフラグであり、具体的に
は、「使用可」と「使用不可」の2つの状態を示す。
「使用可」は、当該ブロックが使用可能な状態を示し、
「使用不可」は、当該ブロックが使用不可能な状態であ
ることを示す。例えば、ブロック内に回復不能なエラー
が生じたようなときに、この可/不可フラグが「使用不
可」に設定され、当該ブロックが使用不可とされる。
フラグであり、具体的には、「未使用」「先頭使用」
「使用」「未消去」の4つの状態を示す。「未使用」
は、当該ブロックが未使用又は消去済みで、初期状態
(全ビットが「1」の状態)とされており、直ぐにデー
タの書き込みが可能な状態を示す。「先頭使用」は、当
該ブロックがファイルの先頭で使用されている状態を示
す。なお、ブートデータが格納されたブートブロックに
おいて、ブロックフラグは「先頭使用」とされる。「使
用」は、当該ブロックがファイルの先頭以外で使用され
ている状態を示す。ブロックフラグが「使用」のとき、
当該ブロックは、他のブロックから連結されていること
となる。「未消去」は、当該ブロックに書かれていたデ
ータが不要となった状態を示す。例えば、データの消去
を行うときに、取りあえずブロックフラグを「未消去」
にしておき、処理時間に余裕があるときに、ブロックフ
ラグが「未消去」になっているブロックを消去するよう
にする。これにより、消去処理をより効率良く行うこと
が可能となる。
否かを示すフラグであり、具体的には、「ブロック連
続」「ブロック最終」の2つの状態を示す。「ブロック
連続」は、次のブロックへの連結があることを示す。す
なわち、「ブロック連続」は、当該ブロックに格納され
たファイルにはまだ続きがあり、当該ファイルが他のブ
ロックに続いていることを示す。「ブロック最終」は、
最終ブロックであることを示す。すなわち、「ブロック
最終」は、当該ブロックに格納されたファイルが、この
ブロックで終了していることを示す。
するためのフラグであり、具体的には、「参照情報な
し」「参照情報あり」の2つの状態を示す。「参照情報
なし」は、ブロックの最終ページの冗長領域に、有効な
追加管理情報が存在しないことを示す。「参照情報あ
り」は、ブロックの最終ページの冗長領域に、有効な追
加管理情報が存在していることを示す。
ラグである。例えば、この管理フラグによって、当該ブ
ロックが読み出し専用ブロックか、或いは書き込みも可
能なブロックであるかが示される。また、例えば、この
管理フラグによって、当該ブロックがブートブロックで
あるか、或いはデータブロックであるかが示される。
論理アドレスを示す。この論理アドレスの値は、データ
の書き換えを行うときなどに必要に応じて更新される。
なお、論理アドレスの値は、正常に処理が行われている
限り、同じ論理アドレスの値を同時に複数のブロックが
持つことがないように設定される。
ブロックの論理アドレスを示す。すなわち、ブロックに
格納されたファイルにはまだ続きがあり、当該ファイル
が他のブロックに続いている場合、連結アドレスには、
そのファイルの続きが格納された次のブロックの論理ア
ドレスの値が設定される。
理情報のうち、管理フラグ、論理アドレス、連結アドレ
ス及びリザーブ領域に書き込まれデータを対象としたエ
ラー訂正符号である。なお、可/不可フラグ、ブロック
フラグ、最終フラグ及び参照フラグは、分散管理情報用
エラー訂正符号によるエラー訂正の対象となっていな
い。したがって、可/不可フラグ、ブロックフラグ、最
終フラグ及び参照フラグは、分散管理情報用エラー訂正
符号を更新することなく書き換えることが可能となって
いる。
エラー訂正符号が格納されているページのデータエリア
に書き込まれたデータを対象としたエラー訂正符号であ
る。
ータ用エラー訂正符号は、メモリカード2の内部に配さ
れたエラー訂正回路16によって使用される。したがっ
て、これらのエラー訂正符号を用いてのエラー訂正は、
データ処理装置1に依存することなく、メモリカード2
に依存した任意の手法を使用することができる。
16バイトの冗長エリアに格納される情報であり、分散
管理情報だけでは管理しきれない追加情報を含んでい
る。
ように、1バイトの可/不可フラグと、1バイトのブロ
ックフラグと、4ビットの最終フラグと、4ビットの参
照フラグと、1バイトの識別番号と、2バイトの有効デ
ータサイズと、5バイトのリザーブ領域と、2バイトの
追加管理情報用エラー訂正符号と、3バイトのデータ用
エラー訂正符号とからなる。
グ、最終フラグ、参照フラグ、リザーブ領域及びデータ
用エラー訂正符号については、分散管理情報の場合と同
様である。また、追加管理情報用エラー訂正符号は、分
散管理情報における分散管理情報用エラー訂正符号に相
当するものであり、追加管理情報のうち、識別番号、有
効データサイズ及びリザーブ領域に書き込まれデータを
対象としたエラー訂正符号である。
が、分散管理情報だけでは管理しきれない追加情報とし
て、追加管理情報に含まれている。
ブロックのデータを書き換える度に、この識別番号の値
がインクリメントされる。この識別番号は、何らかのエ
ラーが発生して、同じ論理アドレスを持つブロックが複
数存在するようになってしまった場合に、それらのブロ
ックに書き込まれたデータの新旧を識別するために使用
される。なお、識別番号には1バイトの領域が使用さ
れ、その値の範囲は「0」から「255」までであり、
その初期値は「0」とされる。なお、識別番号が「25
5」を越えたときには「0」に戻される。そして、同じ
論理アドレスを持つデータブロックが複数存在する場合
には、この識別番号の値が小さい方のデータブロックを
有効とする。また、後で詳細に説明するように、同じ論
理アドレスを持つブートブロックが複数存在する場合に
は、この識別番号の値が大きい方のブートブロックを有
効とする。
有効なデータのサイズを示す。すなわち、当該ブロック
のデータエリアに空きがある場合、有効データサイズに
は、当該データエリアに書き込まれたデータのサイズを
示す値が設定される。このとき、分散管理情報の参照フ
ラグは「参照情報あり」に設定される。なお、ブロック
のデータエリアに空きがない場合、有効データサイズに
は、当該データエリアに空きがないことを示す値とし
て、「0xffff」が設定される。
管理情報は、ブロック内のデータが更新される毎に、常
に最新情報となるように更新される。
ックの分散管理情報を集めて作成されてなる情報であ
り、ファイルとしてフラッシュメモリ12に格納され
る。すなわち、図7に示すように、各ブロックの分散管
理情報から、全ブロックをまとめて管理するための情報
である集合管理情報のファイルが作成され、この集合管
理情報が所定のブロックのデータエリアに格納される。
なお、集合管理情報は、1つのブロックに格納されるも
のであっても、複数のブロックにわたって格納されるも
のであってもよい。そして、データ処理装置1は、通常
は、この集合管理情報によって、各ブロックにアクセス
するために必要な情報を得るようにする。
データ処理装置1によって、ブートブロックからブート
データが読み込まれるが、このブートデータには、集合
管理情報が格納されているブロックの物理アドレスが指
定されている。そこで、データ処理装置1は、当該物理
アドレスに対応したブロックに格納されている集合管理
情報を読み出して内部メモリ4に展開し、この集合管理
情報に基づいてメモリカード2にアクセスする。なお、
フラッシュメモリ12から集合管理情報を正常に読み出
せなかった場合、データ処理装置1は、全てのブロック
の分散管理情報を読み込み、集合管理情報を再構築して
使用する。
き換え等を行う毎に、内部メモリ4に展開した集合管理
情報を、フラッシュメモリ12の実際の状態と整合する
ように(すなわち、分散管理情報の内容と整合するよう
に)、随時更新していく。一方、フラッシュメモリ12
にファイルとして格納されている集合管理情報は、デー
タの書き換え等を行う毎に更新するのではなく、適当な
タイミングにて、その変更内容が一括して更新される。
なお、ここでの適当なタイミングとは、例えば、電源を
落とす前や、メモリカード2へのアクセスが所定時間以
上なされなかったときや、データの書き換えが所定回数
以上行われたときなどである。
能回数には上限があるが、このようにフラッシュメモリ
12にファイルとして格納されている集合管理情報の書
き換えをある程度まとめて一括して行うようにすること
で、集合管理情報が格納されているブロックの書き換え
回数を削減することができ、メモリカード2の長寿命化
を図ることができる。
ロックの取り扱いについて詳細に説明する。
たときにデータ処理装置1によって最初に読み込まれる
データであり、ブートデータには、メモリカード2にア
クセスするために必要不可欠な情報が含まれている。し
たがって、ブートデータが格納されたブートブロックに
エラーが生じて、ブートデータを正常に読み出すことが
できなくなると、メモリカード2へのアクセスが不可能
になってしまう。したがって、ブートブロックには、非
常に高い信頼性が要求される。
では、常にブートデータをフラッシュメモリ12の先頭
の有効な2ブロックにそれぞれ格納しておくようにす
る。なお、「有効なブロック」とは、使用可能状態にあ
るブロックのことである。換言すれば、「有効なブロッ
ク」とは、可/不可フラグが「使用可」に設定されてい
るブロックである。すなわち、ブートデータをブロック
に格納する際に、有効でないブロック(すなわち、可/
不可フラグが「使用不可」に設定されているブロック)
は、使用することなく飛ばして、有効なブロックにブー
トデータを格納してブートブロックとする。
ド2では、固定された特定のブロックをブートブロック
にするのではなく、有効でないブロックが生じたときに
は、ブートデータを格納するブロックを変更して、有効
な2つのブロックに常にブートデータが格納されるよう
にする。すなわち、例えば、メモリカード2の先頭のブ
ロックにエラーが生じたとしても、常にブートデータは
有効なブロックに二重に保持される。したがって、本発
明を適用したメモリカード2の信頼性は非常に高いもの
となる。
は、追加管理情報に含まれている識別番号を、データブ
ロックの場合とブートブロックの場合とで区別して使用
する。
じ論理アドレスのブロックが複数あったときに、それら
のブロックに格納されているデータの新旧を識別するた
めに識別番号を使用する。ここで、同じ論理アドレスを
持つデータブロックが複数存在するのは、多くの場合、
データブロック更新時に何らかのエラーが発生したため
であり、このとき、識別番号の値が小さい方のデータブ
ロックに格納されているデータが更新前のデータであ
る。そこで、同じ論理アドレスを持つデータブロックが
複数存在する場合には、データを更新する前の状態に戻
すために、識別番号の値が小さい方のデータブロックを
選択し、当該データブロックに格納されているデータを
有効なデータとして採用する。
タブロックに対して論理アドレスが新規に割り当てられ
たときに初期化されて「0」とされる。また、この識別
番号は、データブロックの更新時に1インクリメントさ
れる。なお、上述したように、識別番号が「255」を
越えた場合には「0」に戻される。
たようにフラッシュメモリ12の先頭の有効な2ブロッ
クに格納されたブートデータについて、それらの新旧を
識別するために識別番号を使用する。ブートデータは、
メモリカード2へのアクセスに必要不可欠な情報であ
り、常に最新の情報を用いる必要がある。そして、2つ
のブートブロックの識別番号が異なるのは、多くの場
合、ブートブロックの更新時に何らかのエラーが発生し
たためであり、このとき、識別番号の値が大きいブート
ブロックに格納されているブートデータが、より新しい
情報を含むブートデータである。そこで、2つのブート
ブロックについて、それらの識別番号が異なる場合に
は、識別番号の値が大きい方のブートブロックを選択
し、当該ブートブロックに格納されているデータをブー
トデータとして採用する。
するときにフォーマットされるが、このフォーマット時
に、ブートブロックの識別番号は初期化され「0」とさ
れる。そして、この識別番号は、ブートブロックに格納
されているブートデータを更新した時に1インクリメン
トされる。なお、ブートブロックの場合も、データブロ
ックのときと同様に、識別番号が「255」を越えた場
合には「0」に戻される。
2の先頭の有効な2ブロックをブートブロックにすると
ともに、それらのブートブロックの新旧を識別番号を用
いて管理する際の手順について、更に詳細に説明する。
ときにフォーマットされる。そして、このフォーマット
時にブートブロックが作成される。そこで、まず、フォ
ーマット時のブートブロック作成の手順について説明す
る。
先ず、メモリカード2のコンフィグレーションROM1
8に格納されている情報を読み出し、この情報等に基づ
いてブートブロックに格納するデータ(すなわちブート
データ)を作成する。なお、このデータには、当該デー
タを読み出したときに、そのデータがブートデータであ
ることが分かるように、当該データがブートデータであ
ることを示す情報(以下、ブート識別子と称する。)も
含めておく。
ュメモリ12の先頭の2ブロック(すなわち、物理アド
レスの値が最も小さいブロックと、物理アドレスの値が
その次に小さいブロック)にそれぞれ書き込み、ブート
ブロックと予備のブートブロックとを作成する。このと
き、ブートデータが書き込まれるブロックの追加管理情
報の識別番号を「0」に設定する。エラーなく終了すれ
ば、ブートブロックの作成を終了する。
的には、先ず、該当するブロックに対して消去処理を施
し、その後、当該ブロックに対してブートデータを書き
込むことによって行う。このとき、当該ブロックに対し
て消去処理が正常に行えなかった場合や、消去処理が施
されたブロックに対してブートデータを正常に書き込め
なかった場合には、当該ブロックの可/不可フラグが
「使用不可」に設定され、当該ブロックは使用不可状態
とされる。このとき、可/不可フラグを「使用不可」に
設定できなかった場合には、可/不可フラグを「使用不
可」に設定する処理を何度かリトライする。それでも設
定できない場合には、データ処理装置1はメディア異常
と判断し、そのメモリカード2を受け付けないようにす
る。なお、消去処理が施されたブロックに対してブート
データを正常に書き込めなかった場合には、当該ブロッ
クに途中まで書き込んだブートデータが残ってしまった
りするようなことがないように、可/不可フラグを「使
用不可」に設定する前に、当該ブロックに対して消去処
理を施しておく。
では、ブートブロックにしようとしたブロックにエラー
が発生した場合には、次に使用可能なブロックに対し
て、同様にブートデータの書き込みを試みる。そして、
正常で且つ内容が同一のブートブロックが2個作成され
るまで、この処理を続ける。これにより、内容が同一の
ブートデータがフラッシュメモリ12の先頭の有効な2
ブロックにそれぞれ格納され、先頭の有効な2ブロック
がブートブロック及び予備のブートブロックとなる。
となるブロックの物理アドレスが所定の値Mになった
ら、内容が同一のブートブロックが2個作成されていな
くても、処理を終了する。この所定の値Mは、フラッシ
ュメモリ12の特性等に応じて予め規定しておく。そし
て、対象となるブロックの物理アドレスが所定の値Mに
なったら、ブートブロックが1つだけしか作成されてい
なくても、ブートブロックの作成を終了する。また、対
象となるブロックの物理アドレスが所定の値Mになって
も、ブートブロックが1つも作成されない場合には、メ
ディア異常と判断し、そのメモリカード2を受け付けな
いようにする。
は、書き換え回数が多いブロックでエラーが発生する可
能性が高く、一旦エラーが出始めると、その後もエラー
が生じる確率が高い。そこで、以前ブートブロックとし
て使用されたが、エラーになって使用不可になったブロ
ックは、たとえそのエラーが一時的なものであったとし
ても、そのブロックの再利用はしないようにする。この
ような規則を採用することにより、非常に重要な情報で
あるブートデータは、より信頼性の高いブロックに格納
されることとなり、ブートブロックの信頼性の向上を図
ることができる。なお、この規則は、先頭のブロックか
ら2つめのブートブロックまでの間にだけ、或いは2つ
めのブートブロックが無い場合には物理アドレスが上記
所定の値Mに至るまでの間にだけ適用する。すなわち、
この規則は、高い信頼性が要求されるブートブロックに
ついてだけ適用し、それ以降のブロック(すなわちデー
タブロック)に対しては適用しない。これにより、記憶
領域のより有効な利用を図ることができる。
ーが発生した場合、当該ブートブロックを直ぐに使用不
可にするようなことはしない。例えば、ブートブロック
の書き換え中にメモリカード2がデータ処理装置1から
抜かれた場合、ブートブロックの書き換えが中途半端に
終了している可能性が高い。このようなとき、そのブー
トブロックを次に読み込んだ場合にエラーが発生する
が、そのブロックは再利用が可能であるので、当該ブロ
ックを使用不可にする必要はない。
ような読み込みエラーと、フラッシュメモリ12で回復
不能な障害が発生したために起きた読み込みエラーとを
区別して検出することができない。そこで、ブートブロ
ックの読み込み時にエラーが発生した場合は、当該ブー
トブロックを消去して改めてブートデータを書き込む。
もし、フラッシュメモリ12で回復不能な障害が発生し
ている場合は、ブロック消去やデータ書き込み時にもエ
ラーが発生することとなる。そこで、このようにブロッ
ク消去やデータ書き込み時にエラーが生じたときにだ
け、そのブロックを使用不可とする。
ード2の使用に伴い、その内容を変更する必要が生じ
る。したがって、ブートブロックを更新して、ブートデ
ータを書き換える場合がある。このブートデータの書き
換えは、以下に示すルールに基づいて行う。
きには、集合管理情報の内容を変更する必要がある。そ
こで、ブートデータの書き換えを行う前に、フラッシュ
メモリ12にファイルとして格納されている集合管理情
報を無効にする。なお、次に集合管理情報を用いるとき
は、改めて分散管理情報から構築し直す。
現在ブートデータが格納されているブートブロックに対
して消去処理を施し、そのブロックに新たなブートデー
タを書き込む。すなわち、ブートデータを書き換えると
きは、別のブロックを使用することなく、同一ブロック
の内容を更新する。ただし、ブートブロックの更新時に
エラーが発生し、当該ブロックが使用不可になった場合
は、この限りではない。
は、上述したように2つ作成したブートブロックのう
ち、物理アドレスが小さい方から行う。このとき、内容
を更新したブートブロックの識別番号を1インクリメン
トする。ただし、書き換え前の識別番号の値が「25
5」の場合は「0」とする。
ドレスの大きいほうのブートブロック)を更新して、も
うひとつのブートブロックと同一の内容となるように、
新しいブートデータに書き換えたときは、当該予備のブ
ートブロックの識別番号を、もうひとつのブートブロッ
クの識別番号と同じ値にする。
ロックを更新する際の手順について、図8を参照して説
明する。
ロックが通常使用されるブートブロック(以下、第1の
ブートブロックと称する。)とされ、物理アドレス
「2」のブロックが予備のブートブロック(以下、第2
のブートブロックと称する。)とされている例を示して
いる。また、図8では、ブートデータが正常に書き込ま
れており、当該ブートデータの読み出しが可能な状態の
ことを「OK」として示している。また、ブートデータ
書き換えの最中等により、ブートデータの読み出しが不
可能になっている状態のことを「NG」として示してい
る。
の正常な状態を示している。このとき、第1のブートブ
ロックの識別番号と、第2のブートブロックの識別番号
とは、同じ値である。具体的には、図8(a)の例で
は、第1のブートブロックの識別番号が「10」であ
り、第2のブートブロックの識別番号も同じ「10」と
されている。
8(b)に示すように、物理アドレスの小さいほうのブ
ートブロック、すなわち第1のブートブロックのほうか
ら、ブートデータの書き換えを行う。このとき、第1の
ブートブロックは、ブートデータの書き換えの最中であ
るので、ブートブロックとしては使用できない「NG」
状態となる。
タ処理装置1から強制的に抜かれてしまったりして、処
理が中断されてしまった場合、再起動時に、第1のブー
トブロックをブートブロックとして使用することはでき
ない。このときは、予備のブートブロックである第2の
ブートブロックに格納されているブートデータを読み出
してメモリカード2を起動する。また、このときは、第
2のブートブロックから読み出されたブートデータに基
づいて、第1のブートブロックを再構築する。
ると、図8(c)に示すように、第1のブートブロック
の識別番号が1インクリメントされ、本例ではその値が
「11」とされる。この段階では、第1のブートブロッ
クには新しいブートデータが格納され、第2のブートブ
ロックには古いブートデータが格納された状態となる。
ード2がデータ処理装置1から強制的に抜かれてしまっ
たりして、処理が中断されてしまった場合、再起動時に
は、第1のブートブロックに格納されている新しいブー
トデータ(すなわち、識別番号の値が大きいほうのブー
トブロックに格納されているブートデータ)を読み出し
てメモリカード2を起動する。また、このときは、識別
番号の値が大きいほうのブートブロック(すなわち第1
のブートブロック)に格納されているブートデータに基
づいて、識別番号の値が小さいほうのブートブロック
(すなわち第2のブートブロック)のブートデータを更
新する。
了したら、次に、図8(d)に示すように、物理アドレ
スの大きいほうのブートブロック、すなわち第2のブー
トブロックの更新を行う。このとき、第2のブートブロ
ックは、ブートデータの書き換えの最中であるので、ブ
ートブロックとしては使用できない「NG」状態とな
る。
タ処理装置1から強制的に抜かれてしまったりして、処
理が中断されてしまった場合、再起動時には、第1のブ
ートブロックのブートデータを使用してメモリカード2
は起動されるが、予備のブートブロックが存在しない状
態となる。したがって、このときは、第1のブートブロ
ックから読み出されたブートデータに基づいて、予備の
ブートブロックである第2のブートブロックを再構築す
る。
ると、図8(e)に示すように、第2のブートブロック
の識別番号が1インクリメントされ、本例ではその値が
「11」とされる。これにより、第1のブートブロック
の識別番号と、第2のブートブロックの識別番号とが等
しい値となる。以上の処理により、第1のブートブロッ
クにも第2のブートブロックにも新しいブートデータが
格納された状態となる。
ク読み込みの手順 ブートブロックに格納されたブートデータは、メモリカ
ード2がデータ処理装置1に接続され起動されたとき
に、データ処理装置1に最初に読み込まれる。そこで、
つぎに、メモリカード起動時における、データ処理装置
1によるブートブロック読み込みの手順について詳細に
説明する。
同一内容を持つブートブロックが2つ存在する。そこ
で、このことを確認する処理を、メモリカード起動時に
必ず行う。具体的には、先頭ブロックから順番に、以下
に示すような流れで処理を行い、ブートブロックを調べ
ていく。
るかを確認する。
るかを確認する。
いるかを確認する。
るデータがブートデータであるかを確認する。
報が正常に読めるかを確認する。
のブートブロックの場合には、その値を保存する。2個
目のブートブロックの場合には、1個目のブートブロッ
クの識別番号と値が一致するかを確認する。
1個目のブートブロックの場合、読み出したデータは保
存しておく。2個目のブートブロックの場合、読み出し
たデータと保存しておいた1個目のブートブロックのデ
ータとが一致するかを確認する。
行い、同一識別番号を持ち且つ同一内容を持つブートブ
ロックが2つ確認された時点で、ブートブロックの読み
込みを終了する。このように、メモリカード2の起動時
に2つのブートブロックの確認を行うことにより、メモ
リカード2の信頼性を非常に高めることができる。
になるまで調べた時点で、ブートブロックが1つしか存
在しない場合には、当該ブートブロックに格納されてい
るブートデータを使用してメモリカード2を起動する。
このとき、先頭からM番目までのブロックに使用可能な
ブロックがある場合には、当該ブロックにブートデータ
を書き込んで、改めて予備のブートブロックを作成す
る。先頭からM番目までのブロックに使用可能なブロッ
クがない場合には、ブートブロックが1つの状態のまま
でメモリカード2を動作させる。また、M番目のブロッ
クまで調べた時点で、ブートブロックが存在しなかった
場合には、データ処理装置1はメディア異常と判断し、
そのメモリカード2を受け付けないようにする。
ータが正常に書かれていても識別番号が異なっている場
合には、識別番号の大きいほうのブロックを正当なブー
トブロックとして選択し、メモリカード2の起動には、
識別番号の大きいほうのブロックに格納されているブー
トデータを使用する。ただし、一方の識別番号が「25
5」で他方の識別番号が「0」の場合には、識別番号が
「0」のほうのブロックを正当なブートブロックとして
選択し、当該ブロックのブートデータを使用する。ま
た、1つのブロックにだけブートデータが正常に書かれ
ているときには、そのブロックがブートブロックとして
使用される。
のブートブロック読み込みの手順について、図9乃至図
12に示すフローチャートを参照して、更に詳細に説明
する。なお、ここでは、変数としてI,WB,IDA,
IDBを使用する。変数I,WBは、物理アドレスが入
力される変数であり、変数IDA,IDBは、識別番号
の値が入力される変数である。
うに、先ず、ステップS1において、変数Iに「0」を
代入する。また、変数IDA,IDBに「0」を代入す
る。次に、ステップS2へ進む。
ックを、変数Iが示す物理アドレスのブロックとする。
次に、ステップS3へ進む。
ているブロックから、分散管理情報を読み出せるかを判
別する。分散管理情報を読み出せれば、ステップS4へ
進み、分散管理情報を読み出せなければ、ステップS2
5へ進む。
ているブロックの可/不可フラグが「使用可」になって
いるかを判別する。「使用可」になっていれば、ステッ
プS5へ進み、「使用可」になっていなければ、ステッ
プS22へ進む。
ているブロックのブロックフラグが「先頭使用」になっ
ているかを判別する。「先頭使用」になっていれば、ス
テップS6へ進み、「先頭使用」になっていなければ、
ステップS24へ進む。
ているブロックに格納されているデータに、ブート識別
子が設定されているかを判別する。すなわち、当該デー
タがブートデータであるかを判別する。ブートデータで
あれば、ステップS7へ進み、ブートデータでなけれ
ば、ステップS28へ進む。
ているブロックから、追加管理情報を読み出せるかを判
別する。追加管理情報を読み出せれば、ステップS8へ
進み、追加管理情報を読み出せなければ、ステップS2
5へ進む。
理の対象となっているブロックの識別番号の値を代入す
る。次に、ステップS9へ進む。
ているブロックから、ブートデータを読み出せるかを判
別する。ブートデータを読み出せれば、ステップS10
へ進み、ブートデータを読み出せなければ、ステップS
25へ進む。
っているブロックからブートデータを読み出し、当該ブ
ートデータを保存する。次に、ステップS11へ進む。
値を代入するとともに、変数Iの値を1インクリメント
する。次に、図10のステップS12へ進む。
ロックを、変数Iが示す物理アドレスのブロックとす
る。次に、ステップS13へ進む。
っているブロックから、分散管理情報を読み出せるかを
判別する。分散管理情報を読み出せれば、ステップS1
4へ進み、分散管理情報を読み出せなければ、ステップ
S32へ進む。
っているブロックの可/不可フラグが「使用可」になっ
ているかを判別する。「使用可」になっていれば、ステ
ップS15へ進み、「使用可」になっていなければ、ス
テップS29へ進む。
っているブロックのブロックフラグが「先頭使用」にな
っているかを判別する。「先頭使用」になっていれば、
ステップS16へ進み、「先頭使用」になっていなけれ
ば、ステップS31へ進む。
っているブロックに格納されているデータに、ブート識
別子が設定されているかを判別する。すなわち、当該デ
ータがブートデータであるかを判別する。ブートデータ
であれば、ステップS17へ進み、ブートデータでなけ
れば、ステップS35へ進む。
っているブロックから、追加管理情報を読み出せるかを
判別する。追加管理情報を読み出せれば、ステップS1
8へ進み、追加管理情報を読み出せなければ、ステップ
S32へ進む。
処理の対象となっているブロックの識別番号の値を代入
する。次に、ステップS19へ進む。
数IDBの値とを比較する。変数IDAの値と変数ID
Bの値とが等しければ、ステップS20へ進み、変数I
DAの値と変数IDBの値とが等しくなければ、ステッ
プS32へ進む。
っているブロックから、ブートデータを読み出せるかを
判別する。ブートデータを読み出せれば、ステップS2
1へ進み、ブートデータを読み出せなければ、ステップ
S32へ進む。
っているブロックからブートデータを読み出し、当該ブ
ートデータと、先に読み出して保存しておいたブートデ
ータとが一致しているかを判別する。それらのブートデ
ータが一致しているのは、2つのブートブロックからの
ブートデータの読み出しが正常に行われたときであるの
で、これで処理を終了する。一方、それらのブートデー
タが一致していなければ、ステップS32へ進む。
可/不可フラグが「使用可」になっていなかった場合に
は、上述したようにステップS22へ進む。
した所定の値Mとを比較する。そして、変数Iの値が所
定の値Mよりも小さければ、ステップS23へ進む。ス
テップS22において、変数Iの値が所定の値M以上と
なるのは、M番目のブロックまで調べてもブートデータ
が得られなかった場合であり、このときは、エラーとし
て処理を終了する。
クリメントする。そして、ステップS2へ戻って処理を
繰り返す。
「先頭使用」になっていなかった場合は、上述したよう
にステップ24へ進む。このステップS24では、当該
ブロックフラグが「未使用」になっているかを判別す
る。「未使用」になっていれば、図11のステップS3
6へ進み、「未使用」になっていなければ、ステップ2
5へ進む。
っているブロックに対して消去処理を施す。次に、ステ
ップS26へ進む。
消去処理が正常に完了したかを判別する。消去処理が正
常に完了していれば、図11のステップS36へ進み、
消去処理が正常に完了していなければ、ステップ27へ
進む。
っているブロックの可/不可フラグを「使用不可」に設
定し、その後、ステップS22へ進んで上述した処理を
行う。
タでなかった場合には、上述したようにステップS28
へ進む。
るブロックを他のブロックに移動する。その後、ステッ
プS25へ進んで上述した処理を行う。
出せなかった場合、ステップS7で追加管理情報を読み
出せなかった場合、及びステップS9でブートデータを
読み出せなかった場合にも、上述したようにステップS
25へ進んで、上述した処理を行う。
4で可/不可フラグが「使用可」になっていなかった場
合には、上述したようにステップS29へ進む。このス
テップS29では、変数Iの値と、上述した所定の値M
とを比較する。そして、変数Iの値が所定の値Mよりも
小さければ、ステップS30へ進む。一方、ステップS
29において変数Iの値が所定の値M以上となるのは、
M番目のブロックまで調べても2つめのブートデータが
得られなかった場合であり、このときは、ここでブート
データ読み出しの処理を終了し、先に読み出して保存し
ておいたブートデータを使ってメモリカード2を起動す
る。
クリメントする。そして、ステップS12へ戻って処理
を繰り返す。
「先頭使用」になっていなかった場合は、上述したよう
にステップ31へ進む。このステップS31では、当該
ブロックフラグが「未使用」になっているかを判別す
る。「未使用」になっていれば、図12のステップS4
7へ進み、「未使用」になっていなければ、ステップ3
2へ進む。
っているブロックに対して消去処理を施す。次に、ステ
ップS33へ進む。
消去処理が正常に完了したかを判別する。消去処理が正
常に完了していれば、図12のステップS47へ進み、
消去処理が正常に完了していなければ、ステップ34へ
進む。
っているブロックの可/不可フラグを「使用不可」に設
定し、その後、ステップS29へ進んで上述した処理を
行う。
ータでなかった場合には、上述したようにステップS3
5へ進む。このステップS35では、処理の対象となる
ブロックを他のブロックに移動する。その後、ステップ
S32へ進んで上述した処理を行う。
み出せなかった場合、ステップS17で追加管理情報を
読み出せなかった場合、ステップS19で変数IDAの
値と変数IDBの値とが一致しなかった場合、ステップ
S20でブートデータを読み出せなかった場合、及びス
テップS21でブートデータが一致しなかった場合に
も、上述したようにステップS32へ進んで、上述した
処理を行う。
6では、変数WBに変数Iの値を代入するとともに、変
数Iの値を1インクリメントする。次に、ステップS3
7へ進む。
ロックを、変数Iが示す物理アドレスのブロックとす
る。次に、ステップS38へ進む。
っているブロックから、分散管理情報を読み出せるかを
判別する。分散管理情報を読み出せれば、ステップS3
9へ進み、分散管理情報を読み出せなければ、ステップ
S45へ進む。
っているブロックの可/不可フラグが「使用可」になっ
ているかを判別する。「使用可」になっていれば、ステ
ップS40へ進み、「使用可」になっていなければ、ス
テップS45へ進む。
っているブロックに格納されているデータに、ブート識
別子が設定されているかを判別する。すなわち、当該デ
ータがブートデータであるかを判別する。ブートデータ
であれば、ステップS41へ進む。
っているブロックから、追加管理情報を読み出せるかを
判別する。追加管理情報を読み出せれば、ステップS4
2へ進む。
っているブロックから、ブートデータを読み出せるかを
判別する。ブートデータを読み出せれば、ステップS4
3へ進む。
っているブロックからブートデータを読み出し、当該ブ
ートデータを保存する。次に、ステップS44へ進む。
アドレスのブロックに、ステップS43で読み出して保
存しておいたブートデータを書き込む。このときは、こ
こでブートデータ読み出しの処理を終了し、ステップS
43で読み出して保存しておいたブートデータを使って
メモリカード2を起動する。
み出せなかった場合、及びステップS39で可/不可フ
ラグが「使用可」になっていなかった場合には、上述し
たようにステップS45へ進む。このステップS45で
は、変数Iの値と、上述した所定の値Mとを比較する。
そして、変数Iの値が所定の値Mよりも小さければ、ス
テップS46へ進む。ステップS45において、変数I
の値が所定の値M以上となるのは、M番目のブロックま
で調べてもブートデータが得られなかった場合であり、
このときは、エラーとして処理を終了する。
クリメントする。そして、ステップS37へ戻って処理
を繰り返す。
ータではなかった場合、ステップS41で追加管理情報
を読み出せなかった場合、及びステップS42でブート
データを読み出せなかった場合には、エラーとして処理
を終了する。これは、2つのブートブロックのいずれか
らもブートデータが読み出せなかった場合である。
7では、変数IDBの値が「0xffff」であるかを判別す
る。変数IDBの値が「0xffff」でなければステップS
48へ進み、変数IDBの値が「0xffff」であればステ
ップS49へ進む。
変数IDBの値に「1」を加えた値とを比較する。これ
らの値が等しければ、ステップS49へ進み、等しくな
ければ、ステップS51へ進む。
値を代入する。次に、ステップS50へ進む。
アドレスのブロックに、先に読み出して保存しておいた
ブートデータを書き込む。このときは、ここでブートデ
ータ読み出しの処理を終了し、先に読み出して保存して
おいたブートデータを使ってメモリカード2を起動す
る。
変数IDAの値に「1」を加えた値とを比較する。これ
らの値が等しければ、ステップS50へ進み上述した処
理を行う。
Bの値と、変数IDAの値に「1」を加えた値とが等し
くないと判別されるのは、2つのブートブロックの識別
番号が、等しくなく且つ連続番号でもない場合である。
このような状態となるのは、メモリカード2に何らかの
異常があったときである。しかしながら、ブートデータ
が読み出せなくなっているわけではないので、このとき
は、例えば手動復旧モードとして、データ処理装置1の
側で適切な処理を行うようにする。
ク読み込みの手順である。このように手順により、メモ
リカード2の起動時に2つのブートブロックの確認を行
うことで、メモリカード2の信頼性を非常に高めること
ができる。
れば、複数の異なるブロックにブートデータをそれぞれ
格納するようにしているので、たとえブートデータが格
納されたブロックのうちのいずれかが使用不可能になっ
たとしても、他のブロックのブートデータを用いて、外
部記憶装置を起動することができる。
タの新旧を示す識別番号を格納するようにしているの
で、常に最新のブートデータを使用するようにすること
ができる。すなわち、本発明によれば、たとえ新しいブ
ートデータと古いブートデータとが混在するような状態
になったとしても、常に最新のブートデータを使用する
ようにすることができ、データの一貫性を保証できる。
タ読み出し時にエラーが発生し難く、信頼性の高い外部
記憶装置を提供することができる。
図である。
ロック図である。
視図である。
造を示す図である。
構築する様子を示す図である。
ある。
の手順を示すフローチャートである。
みの手順を示すフローチャートである。
みの手順を示すフローチャートである。
みの手順を示すフローチャートである。
処理装置、 4 内部メモリ、 5 補助記憶装置、
6 シリアルインターフェース回路、 7 バス、 1
1 コントローラ、 12 フラッシュメモリ、 13
シリアル/パラレル・パラレル/シリアル・インター
フェース・シーケンサ、 14 フラッシュメモリ・イ
ンターフェース・シーケンサ、 15 ページバッフ
ァ、 16エラー訂正回路、 17 コマンドジェネレ
ータ、 18 コンフィグレーションROM、 19
発振器、 20 誤消去防止スイッチ
Claims (4)
- 【請求項1】 データの消去を所定のブロック単位で行
うとともに、起動時に最初に読み出されるブートデータ
を格納するブロックを有する外部記憶装置であって、 ブートデータがそれぞれ格納された複数の異なるブロッ
クを備えるとともに、 ブートデータが格納された各ブロックに、それらのブロ
ックに格納されたブートデータの新旧を示す識別番号が
格納される識別番号格納部を備えていることを特徴とす
る外部記憶装置。 - 【請求項2】 データの消去を所定のブロック単位で行
う外部記憶装置に、当該外部記憶装置の起動時に最初に
読み出されるブートデータを格納する際に、 複数の異なるブロックにブートデータをそれぞれ格納す
るとともに、 ブートデータが格納された各ブロックに、それらのブロ
ックに格納されたブートデータの新旧を示す識別番号を
格納することを特徴とするデータ処理方法。 - 【請求項3】 上記外部記憶装置を起動する際に、上記
識別番号に基づいて、上記複数の異なるブロックに格納
された各ブートデータのうち、最新のブートデータを読
み出して、当該ブートデータを用いて外部記憶装置を起
動することを特徴とする請求項2記載のデータ処理方
法。 - 【請求項4】 上記外部記憶装置を起動する際に、上記
識別番号に基づいて、上記複数の異なるブロックに格納
された各ブートデータの新旧を判別し、古いブートデー
タがある場合には当該ブートデータを最新のブートデー
タに書き換えることを特徴とする請求項2記載のデータ
処理方法。
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26717797A JP2914360B2 (ja) | 1997-09-30 | 1997-09-30 | 外部記憶装置及びデータ処理方法 |
SG1998003896A SG71848A1 (en) | 1997-09-30 | 1998-09-25 | External storage apparatus and data processing method |
MYPI98004400A MY121756A (en) | 1997-09-30 | 1998-09-25 | External storage apparatus and data processing method |
US09/162,332 US6330634B1 (en) | 1997-09-30 | 1998-09-28 | External storage apparatus having redundant boot blocks, and data processing method therefor |
AU87138/98A AU753121B2 (en) | 1997-09-30 | 1998-09-29 | External storage apparatus and data processing method |
DE69809527T DE69809527T2 (de) | 1997-09-30 | 1998-09-29 | Externe Speichervorrichtung und Datenverarbeitungsverfahren |
EP98118439A EP0910020B1 (en) | 1997-09-30 | 1998-09-29 | External storage apparatus and data processing method |
CNB981258174A CN1229724C (zh) | 1997-09-30 | 1998-09-30 | 外部存储设备和数据处理方法 |
KR1019980041922A KR100642529B1 (ko) | 1997-09-30 | 1998-09-30 | 외부기억장치및데이터처리방법 |
US09/968,296 US6981136B2 (en) | 1997-09-30 | 2001-10-01 | External storage apparatus having redundant boot blocks, and data processing method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26717797A JP2914360B2 (ja) | 1997-09-30 | 1997-09-30 | 外部記憶装置及びデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11110141A JPH11110141A (ja) | 1999-04-23 |
JP2914360B2 true JP2914360B2 (ja) | 1999-06-28 |
Family
ID=17441184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26717797A Expired - Lifetime JP2914360B2 (ja) | 1997-09-30 | 1997-09-30 | 外部記憶装置及びデータ処理方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US6330634B1 (ja) |
EP (1) | EP0910020B1 (ja) |
JP (1) | JP2914360B2 (ja) |
KR (1) | KR100642529B1 (ja) |
CN (1) | CN1229724C (ja) |
AU (1) | AU753121B2 (ja) |
DE (1) | DE69809527T2 (ja) |
MY (1) | MY121756A (ja) |
SG (1) | SG71848A1 (ja) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6786417B1 (en) * | 1997-06-04 | 2004-09-07 | Sony Corporation | Memory card with write protection switch |
JP2914360B2 (ja) * | 1997-09-30 | 1999-06-28 | ソニー株式会社 | 外部記憶装置及びデータ処理方法 |
US6601140B1 (en) * | 1999-04-07 | 2003-07-29 | Sony Corporation | Memory unit, data processing unit, and data processing method using memory unit type |
US6704865B1 (en) * | 1999-12-23 | 2004-03-09 | Delphi Technologies, Inc. | Microprocessor conditional deterministic reset vector method |
JP3838840B2 (ja) * | 2000-01-06 | 2006-10-25 | Necエレクトロニクス株式会社 | コンピュータ |
JP2001209543A (ja) * | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | フラッシュ・マイコンにおけるプログラム書き換え方法 |
JP2001306543A (ja) * | 2000-04-19 | 2001-11-02 | Nec Corp | マイクロコンピュータ及びフラッシュメモリのデータ書換え方法 |
JP3627915B2 (ja) * | 2000-05-30 | 2005-03-09 | シャープ株式会社 | ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法 |
JP2002091494A (ja) * | 2000-09-13 | 2002-03-27 | Tdk Corp | ディジタル式記録再生装置 |
US6859876B2 (en) * | 2000-12-29 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | System and method for detecting and using a replacement boot block during initialization by an original boot block |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4731020B2 (ja) * | 2001-01-24 | 2011-07-20 | 富士通セミコンダクター株式会社 | 半導体記憶装置、セクタアドレス変換回路、アドレス変換方法及び半導体記憶装置の使用方法 |
JP4763223B2 (ja) * | 2001-01-26 | 2011-08-31 | ソニー株式会社 | Icカード |
JP4218522B2 (ja) * | 2001-06-28 | 2009-02-04 | ソニー株式会社 | 電子装置、情報処理装置、アダプタ装置及び情報交換システム |
CN1122281C (zh) * | 2001-06-30 | 2003-09-24 | 深圳市朗科科技有限公司 | 一种多功能半导体存储装置 |
TW539946B (en) * | 2001-08-07 | 2003-07-01 | Solid State System Company Ltd | Window-based flash memory storage system, and the management method and the access method thereof |
TW516000B (en) * | 2001-09-12 | 2003-01-01 | Winbond Electronics Corp | Method for security protection of digital processing device and apparatus thereof |
US20030109252A1 (en) * | 2001-12-10 | 2003-06-12 | Koninklijke Philips Electronics N.V. | System and method of codec employment in a cellular telephone |
US7562208B1 (en) * | 2002-02-07 | 2009-07-14 | Network Appliance, Inc. | Method and system to quarantine system software and configuration |
EP1372068A3 (en) * | 2002-06-11 | 2006-02-08 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
CN1300707C (zh) * | 2002-07-23 | 2007-02-14 | 华为技术有限公司 | 外部sdram读写处理方法 |
DE10319778A1 (de) * | 2002-12-30 | 2004-07-15 | Databay Ag | Tragbare Speicherkarte mit einer Schnittstelle, System aus Datenverarbeitungsgerät und entsprechender Speicherkarte sowie Verfahren zum Betrieb eines derartigen Systems |
TW200428284A (en) * | 2003-06-03 | 2004-12-16 | Hon Hai Prec Ind Co Ltd | System and method for bootstrap with backup boot-code in single flash ROM |
JP2005190288A (ja) * | 2003-12-26 | 2005-07-14 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US7594135B2 (en) * | 2003-12-31 | 2009-09-22 | Sandisk Corporation | Flash memory system startup operation |
US7197634B2 (en) * | 2004-01-16 | 2007-03-27 | Dell Products L.P. | System and method for updating device firmware |
JP4534498B2 (ja) * | 2004-01-28 | 2010-09-01 | ソニー株式会社 | 半導体装置およびその起動処理方法 |
JP2005275907A (ja) * | 2004-03-25 | 2005-10-06 | Toshiba Corp | 電子機器および同機器の記憶媒体ユニット制御方法 |
EP1607865B1 (en) | 2004-06-14 | 2013-08-14 | Micron Technology, Inc. | Data control unit capable of correcting boot errors, and corresponding method |
KR100684876B1 (ko) * | 2005-01-03 | 2007-02-20 | 삼성전자주식회사 | 독출 시간을 단축시킬 수 있는 플래시 메모리 장치 및 방법 |
KR100698655B1 (ko) | 2005-01-04 | 2007-03-23 | 주식회사 팬택앤큐리텔 | 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법 |
JP4245585B2 (ja) | 2005-06-13 | 2009-03-25 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
TWI267861B (en) * | 2005-09-06 | 2006-12-01 | Alcor Micro Corp | Method and device for loading configuration values of nonvolatile memory |
CN1937083B (zh) * | 2005-09-23 | 2010-05-05 | 安国国际科技股份有限公司 | 非挥发性存储器设定值加载方法与其存储器装置 |
JP4999325B2 (ja) * | 2005-12-21 | 2012-08-15 | ルネサスエレクトロニクス株式会社 | フラッシュメモリ |
US7831854B2 (en) * | 2006-03-21 | 2010-11-09 | Mediatek, Inc. | Embedded system for compensating setup time violation and method thereof |
US8086791B2 (en) * | 2006-08-08 | 2011-12-27 | Dataram, Inc. | Solid state memory device with PCI controller |
US20080040544A1 (en) * | 2006-08-08 | 2008-02-14 | Jason Caulkins | Computer System For Reading And Writing Data |
JP4791286B2 (ja) * | 2006-08-09 | 2011-10-12 | 富士通株式会社 | ディスク装置および電子装置 |
JP4883570B2 (ja) * | 2006-09-27 | 2012-02-22 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、不揮発性半導体記憶装置、及びそれらの動作方法 |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
KR100877609B1 (ko) * | 2007-01-29 | 2009-01-09 | 삼성전자주식회사 | 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법 |
US8351290B1 (en) | 2008-09-12 | 2013-01-08 | Marvell International Ltd. | Erased page detection |
US8151101B2 (en) * | 2008-11-06 | 2012-04-03 | Lenovo (Singapore) Pte. Ltd. | Method, apparatus, and system for quiescing a boot environment |
CN101710253B (zh) * | 2009-11-25 | 2012-06-13 | 安凯(广州)微电子技术有限公司 | 嵌入式系统的深度休眠方法 |
JP5707695B2 (ja) * | 2009-12-08 | 2015-04-30 | 沖電気工業株式会社 | フラッシュディスク装置 |
JP5728982B2 (ja) * | 2010-02-26 | 2015-06-03 | 株式会社Jvcケンウッド | 処理装置および書込方法 |
TWI449414B (zh) | 2010-12-29 | 2014-08-11 | Altek Corp | 影像擷取裝置及其開機方法 |
CN113127085B (zh) * | 2015-08-20 | 2024-07-02 | 美光科技公司 | 从nand媒体快速引导的固态存储装置 |
US11288181B2 (en) * | 2019-03-07 | 2022-03-29 | Silicon Motion, Inc. | Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages |
DE102020212139A1 (de) * | 2020-09-28 | 2022-03-31 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Aktualisieren von Software |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2776929B2 (ja) | 1989-03-29 | 1998-07-16 | 株式会社日立製作所 | カードデータ処理システム及びカードデータの処理方法 |
IT1254937B (it) * | 1991-05-06 | 1995-10-11 | Aggiornamento dinamico di memoria non volatile in un sistema informatico | |
US5410703A (en) | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
EP0596198B1 (en) | 1992-07-10 | 2000-03-29 | Sony Corporation | Flash eprom with erase verification and address scrambling architecture |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JPH0764795A (ja) * | 1993-08-30 | 1995-03-10 | Toshiba Corp | コンピュータシステム |
US5522076A (en) * | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
JP3011035B2 (ja) * | 1994-12-08 | 2000-02-21 | 株式会社日立製作所 | 計算機システム |
GB2295908A (en) | 1994-12-09 | 1996-06-12 | Plessey Telecomm | Updating EPROMs |
US5568641A (en) | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
DE19501707C1 (de) * | 1995-01-20 | 1996-06-05 | Texas Instruments Deutschland | Elektrisches Bauelement und Verfahren zum Abgleichen der inneren Laufzeit eines solchen elektrischen Bauelements |
JP3583829B2 (ja) | 1995-04-13 | 2004-11-04 | 株式会社日立製作所 | 外部記憶サブシステムの制御方法および制御装置 |
JPH08328845A (ja) * | 1995-06-02 | 1996-12-13 | Hioki Ee Corp | Romの制御プログラム書替え方法 |
KR100281869B1 (ko) * | 1995-07-28 | 2001-02-15 | 윤종용 | 보안 기능을 갖는 개인용 컴퓨터, 그의 보안 방법 및 그 보안 장치의 설치 및 제거방법 |
US5701492A (en) * | 1996-03-29 | 1997-12-23 | Canon Kabushiki Kaisha | Fail-safe flashing of EPROM |
US5822582A (en) * | 1996-07-19 | 1998-10-13 | Compaq Computer Corporation | Boot drive selection and hibernation file detection |
US6282675B1 (en) * | 1997-08-06 | 2001-08-28 | Macronix International Co., Ltd. | Fault-tolerant architecture for in-circuit programming |
US6560701B1 (en) * | 1997-02-10 | 2003-05-06 | International Business Machines Corporation | Alternate boot record |
JP2914360B2 (ja) * | 1997-09-30 | 1999-06-28 | ソニー株式会社 | 外部記憶装置及びデータ処理方法 |
JP3884839B2 (ja) * | 1997-10-17 | 2007-02-21 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US6275931B1 (en) * | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US6205548B1 (en) * | 1998-07-31 | 2001-03-20 | Intel Corporation | Methods and apparatus for updating a nonvolatile memory |
-
1997
- 1997-09-30 JP JP26717797A patent/JP2914360B2/ja not_active Expired - Lifetime
-
1998
- 1998-09-25 MY MYPI98004400A patent/MY121756A/en unknown
- 1998-09-25 SG SG1998003896A patent/SG71848A1/en unknown
- 1998-09-28 US US09/162,332 patent/US6330634B1/en not_active Expired - Lifetime
- 1998-09-29 AU AU87138/98A patent/AU753121B2/en not_active Ceased
- 1998-09-29 DE DE69809527T patent/DE69809527T2/de not_active Expired - Lifetime
- 1998-09-29 EP EP98118439A patent/EP0910020B1/en not_active Expired - Lifetime
- 1998-09-30 CN CNB981258174A patent/CN1229724C/zh not_active Expired - Lifetime
- 1998-09-30 KR KR1019980041922A patent/KR100642529B1/ko not_active IP Right Cessation
-
2001
- 2001-10-01 US US09/968,296 patent/US6981136B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
SG71848A1 (en) | 2000-04-18 |
MY121756A (en) | 2006-02-28 |
CN1220424A (zh) | 1999-06-23 |
CN1229724C (zh) | 2005-11-30 |
US6330634B1 (en) | 2001-12-11 |
DE69809527D1 (de) | 2003-01-02 |
JPH11110141A (ja) | 1999-04-23 |
KR100642529B1 (ko) | 2008-01-30 |
EP0910020A1 (en) | 1999-04-21 |
KR19990030334A (ko) | 1999-04-26 |
AU8713898A (en) | 1999-04-22 |
AU753121B2 (en) | 2002-10-10 |
US20040093487A1 (en) | 2004-05-13 |
EP0910020B1 (en) | 2002-11-20 |
US6981136B2 (en) | 2005-12-27 |
DE69809527T2 (de) | 2003-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2914360B2 (ja) | 外部記憶装置及びデータ処理方法 | |
JP3233079B2 (ja) | データ処理システム及びデータ処理方法 | |
JP4668416B2 (ja) | ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護 | |
JP3364356B2 (ja) | メモリ書替え装置 | |
JP3912355B2 (ja) | データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム | |
RU2146399C1 (ru) | Способ записи данных в энергонезависимое запоминающее устройство, способ использования устройства на интегральных схемах, устройство на интегральных схемах | |
JP3072722B2 (ja) | フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体 | |
US7313682B2 (en) | Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code | |
KR100527610B1 (ko) | 저장장치,데이터처리시스템및데이터기록및판독방법 | |
JP3472008B2 (ja) | フラッシュメモリ管理方法 | |
JP3070539B2 (ja) | 外部記憶装置、データ処理装置及びデータ処理方法 | |
JP2910745B2 (ja) | 記憶装置及びデータ処理方法 | |
JP3620478B2 (ja) | 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法 | |
JP3640154B2 (ja) | 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム | |
US7257030B2 (en) | Operating a storage component | |
JP3319361B2 (ja) | 記憶装置、データ処理装置及びデータ処理方法 | |
US20050068842A1 (en) | Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory | |
JP2001043143A (ja) | 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法 | |
JP2004152331A (ja) | 記憶装置 | |
JPH07168769A (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: 19990316 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080416 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120416 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120416 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140416 Year of fee payment: 15 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |