JP4066991B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP4066991B2 JP4066991B2 JP2004319381A JP2004319381A JP4066991B2 JP 4066991 B2 JP4066991 B2 JP 4066991B2 JP 2004319381 A JP2004319381 A JP 2004319381A JP 2004319381 A JP2004319381 A JP 2004319381A JP 4066991 B2 JP4066991 B2 JP 4066991B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- erase
- write
- block buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
しかし、フラッシュメモリにおいては、新たなデータを直接上書きすることができない。つまり、フラッシュメモリ上のデータの書き換えを行なうには、書き込みの前にまず、64Kなどといった消去単位を、一旦、一括して消去しなければならない。消去単位を消去した後、消去した消去単位全体を新たに書き込むことによりデータの書き換えを行なう。
このための書き換え方式の技術として、特許文献1がある。図18は、この従来技術の回路の概略を示す構成図である。図18を用いて動作を説明する。
又、このようにレジスタに記録されたデータが消失することを防ぐためには、レジスタに一旦記録されたデータは、すぐにフラッシュメモリに書き込まなくてはならなかった。そのため、動作上、フラッシュメモリの書き換え毎にフラッシュメモリの消去を行う必要があり、結果として、書き換えの回数と同じ回数だけの消去回数が必要であった。一方、フラッシュメモリには、消去可能な回数に制限(一般に10万回程度)があり、できるだけ消去回数を減らすことも必要であるが、上記従来技術においては、徒にフラッシュメモリの消去回数を増やすことになり、その寿命を短縮させる原因となっていた。
又、本発明は、フラッシュメモリの消去回数への制限の課題に対し、簡易な構造で、かつ信頼性を維持しつつ、フラッシュメモリの消去回数を削減することにより、フラッシュメモリの劣化を低減することのできる情報処理装置を提供することを第2の目的とする。
図1はこの発明の一実施の形態である情報処理装置の構成を示す図である。図1において、101は複数の消去単位領域からなるフラッシュメモリである。このフラッシュメモリは、予め定められた消去単位ごとにデータの消去および書き込みがなされるメモリである。
102は、フラッシュメモリとは異なり、データの書き換えのために一定の消去単位を消去する必要がなく任意のデータ単位でメモリへのデータの直接書き込みが可能であり、かつ不揮発性のメモリである。具体的には、バッテリーバックアップSRAMである。
202は、不揮発性メモリ102内のエリアであって、消去単位番号を記録する消去単位番号保持領域である。
まず、S101において、フラッシュメモリ101へのデータの書き込み要求を受ける。この書き込み要求には、書き込むデータとしての書き込み要求データ、データを書き込むフラッシュメモリ上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
次に、S102において、消去単位の容量と書き込み要求領域から、書き込み要求領域を含む消去単位の番号と、書き込み要求領域が対応する消去単位内の位置を算出する。尚、書き込み要求領域はフラッシュメモリ101全体の相対的位置を特定するアドレスであり、消去単位内の位置は特定の消去単位内での相対的位置を特定するものである。
そして、S104において、待避手段112に待避指示を出す。この待避指示には、消去単位の番号と、書き込み要求領域が対応する消去単位内の位置についての情報が含まれている。この指示を受けた待避手段112は、S102において算出した消去単位番号の消去単位領域内のデータであって、S103において書き込まれた領域に対応する部分以外のデータである不変データを、消去ブロックバッファ103に書き込む。この明細書において、不変データとは、消去単位領域内のデータの内、書き込み要求データによって書き換えられないデータをいう。
書き込み要求発生の度にS101〜S105の処理が実行される。
書き込み制御手段111は、S105において、フラッシュメモリ101の消去指示を出した後、この消去指示に含まれるフラッシュメモリ101の消去単位の番号を、不揮発性メモリ102内に設けられた消去単位番号保持領域202に記録する。
フラッシュメモリ101へのデータの書き込みが終了すると、書き込み制御手段111は消去単位番号保持領域202に記録された消去単位番号を無効にする。
電源断の発生及び電源入力後に、書き込み制御手段111は、不揮発性メモリ102内の消去単位番号保持領域202を確認する。消去単位番号保持領域202に有効な消去単位番号が存在している場合には、書き込みが終了していないと判断され、消去ブロックバッファ103に記録されているデータを、フラッシュメモリ101へ書き込む処理を行う。消去ブロックバッファ103に記録されているデータが書き込まれるフラッシュメモリ101内の消去単位の番号は、消去単位番号保持領域202に記録されている。その後、消去単位番号保持領域202に記憶された消去単位番号を無効にする。消去単位番号保持領域202に有効な消去単位番号が存在しない場合には、フラッシュメモリ101へ書き込む処理を行なわずに、そのまま復旧処理を終了する。
以上の処理により、装置に対する電源断が発生した場合の、復旧処理が可能となる。
さらに、本実施の形態ではS102において、消去単位の容量と書き込み要求領域から、書き込み要求領域を含む消去単位の番号と、書き込み要求領域が対応する消去単位内の位置を算出しているが、書き込み要求データにこれらデータを含めるようにすることも可能である。その場合には、S102の算出処理は省略される。
図4は、本発明の他の実施形態である、情報処理装置の概略を示す構成図である。図において、201はフラッシュメモリ101又は不揮発性メモリ102からデータを読み出す読み出し手段、202は不揮発性メモリ102内のエリアであって、消去単位番号を記録する消去単位番号保持領域である。他の構成は、図1において説明した構成の同一又は相当部であり、説明を省略する。読み出し手段201は、ソフトウエアがプロセッサ181上で動作することにより実現される。
尚、本実施の形態においては、特に、同一の消去単位領域へ、連続して書き込みデータを書き込む場合の動作について説明する。
まず、S201において、フラッシュメモリ101へのデータの書き込み要求を受ける。この要求の内容は、実施の形態1と同様である。
次に、S202において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。この消去単位の番号を求める方法は、実施の形態1と同様である。
消去番号の記録が存在しなければ、S204において、書き込みデータを消去ブロックバッファ103に書き込む。消去ブロックバッファ103への書き込み動作は、実施の形態1と同様である。
次に、S205において、待避手段112に対して待避指示を行なう。待避指示の内容は、実施の形態1と同様である。待避手段112は、S202で求めた番号のフラッシュメモリの消去単位から、不変データを消去ブロックバッファ103に書き込む。
続いて、S206において、S202において求めた消去単位番号を消去番号保持領域202に記録する。この後、フラッシュメモリ101にデータを書き込むことなく、メモリへのデータの書き込み処理を終了する。
判定により消去単位番号が異なる場合には、S208において、消去命令手段301に対し消去指示を行なう。消去指示の内容は実施の形態1と同様である。この指示を受けた消去命令手段301は、フラッシュメモリ101の消去手段に対し、消去単位の番号が対応するフラッシュメモリ内の1つの消去単位を消去するように命令を出す。フラッシュメモリ101の消去手段による消去が完了すると、書き込み手段302が消去ブロックバッファ103の内容を、フラッシュメモリ101内のこの消去単位の領域に書き込む。
S207でS202で求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致する場合には、S209において、書き込み要求データを消去ブロックバッファ103へ書き込む。
以上説明したように、消去単位番号の記録が存在していない場合にはS201〜S206の手順で処理が実行され、消去単位番号の記録が存在している場合にはS201〜S203、S207、S208、S204〜S206の手順で処理が実行されるか若しくは、S201〜S203、S207、S209の手順で処理が実行される。即ち、書き込み要求が第1回目の要求であった場合には、S201〜S206の手順で処理が実行され、第2回目の書き込み要求以降は、S201〜S203、S207、S208、S204〜S206の手順で処理が実行されるか若しくは、S201〜S203、S207、S209の手順で処理が実行される。以上の処理が書き込み要求が発生する度に実行される。
まず、S211において読み出し要求を受ける。読み出し要求には、読み出し要求領域としてのフラッシュメモリ101のアドレスと読み出すデータの大きさに関する情報が含まれている。
次に、S212において、読み出し要求領域を含むフラッシュメモリの消去単位の番号を書き込み時と同様に求める。尚、読み出し要求領域とは、読み出すべきデータが記憶されているフラッシュメモリ101上のエリアであり、フラッシュメモリ101上の相対的位置を特定する。
一致した場合には、読み出し領域のデータは消去ブロックバッファに保持されているので、S214において、消去ブロックバッファからデータを読み出す。
消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS212おいて求めたものと一致しない場合には、読み出し領域のデータは消去ブロックバッファに保持されていないので、S215において、フラッシュメモリからデータの読み出しを行なう。
尚、本実施の形態においても、実施の形態1と同様に電源断時の復旧処理を行うことが可能である。この場合、書き込み未終了フラグとして、消去単位番号の記録を利用してもよい。これは、フラッシュメモリへの書き込みの後に、消去単位番号を無効にすることにより実現できる。
この実施の形態ではS205において、フラッシュメモリの消去単位から不変データを消去ブロックバッファ103に書き込む待避処理を行なっているが、この処理は遅くとも不変データをフラッシュメモリ101に書き込むまでに実行され完了していればよい。また、S204における書き込み要求データの消去ブロックバッファへの書き込みは、次回の書き込み要求の書き込み要求データを消去ブロックバッファに書き込むまでに実行すればよい。
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態2と同様であり、図4に示される。本実施形態の基本的動作は実施の形態2と同様である。本実施形態においては、フラッシュメモリからデータを待避させた後のステップとして、その消去単位のデータ消去を行う。
本実施の形態におけるメモリへのデータ書き込み時の動作を、図7を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まず、S301において、データの書き込み要求を受ける。書き込み要求の内容は実施の形態1と同様である。
次に、S302において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。消去単位の番号を求める動作については、実施の形態1と同様である。
S303において消去単位番号保持領域202に消去番号の記録が存在しなければ、S304において、書き込み要求データを消去ブロックバッファ103に書き込む。
続いてS305において、待避手段112に対して待避指示を行なう。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、消去単位内の不変データを消去ブロックバッファ103に書き込むことにより待避させる。
さらにS306において、S302で求めた消去単位番号を、消去単位番号保持領域202に記録する。
次にS307において、消去命令手段301に対して消去指示を出す。消去指示には、S302で求めた消去単位番号の情報が含まれている。消去指示を受けた消去命令手段301は、S305における消去ブロックバッファへの待避が完了した消去単位領域内のデータを消去するように、命令を出す
消去単位番号が異なる場合には、S309において、書き込み手段302に対し書き込み指示を行なう。この書き込み指示には、消去単位番号に関する情報が含まれる。書き込み指示を受けた書き込み手段302は、現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。フラッシュメモリ101の当該消去単位領域のデータは、以前の書き込み処理時(S307)にすでに消去されているため、すでに消去された消去単位領域に消去ブロックバッファ103のデータを書き込む書き込み処理のみを行なう。これ以降は消去番号の記録が存在しなかった場合と同様に、S304〜S307の処理を行う。
尚、本実施の形態における読み出し時の動作は、実施の形態2の場合と同様である。
以上の処理が書き込み要求が発生する度に実行される。
この発明の実施の形態によれば、フラッシュメモリからデータを待避させた後にフラッシュメモリのデータを消去するので、消去ブロックバッファのデータをフラッシュメモリに書き込む際には、フラッシュメモリのデータを消去する処理を行う必要がない。フラッシュメモリの消去は、フラッシュメモリがハードウェア的に行うため、プロセッサが他の処理を平行して行うことができる。例えば、入出力インターフェースから主記憶装置へのデータの書き込みや、プロセッサ内の計算処理等を並列的に行うことができる。
以上のように、本実施の形態においては、フラッシュメモリからデータを待避させた後にフラッシュメモリのデータを消去するので、フラッシュメモリにデータを書き込む際にフラッシュメモリのデータを消去する必要がない。そのため、実施の形態2の奏する効果に加え、書き込み処理の時間を短縮することができる。又、フラッシュメモリの消去処理と平行してプロセッサの処理が可能となり、情報処理装置全体の処理速度の向上を図ることが可能となる。
図8は本発明の他の実施形態における情報処理装置の構成を示す図である。図において、402は任意のデータ単位で書き込み可能な不揮発性メモリ102上に構成され、書き込みデータを記録する書き込みバッファである。書き込みバッファ402は、書き込みデータを記録するためのものであり、不変データを記録することはない。403は書き込みバッファ管理領域である。書き込みバッファ管理領域403には、消去単位番号、消去単位内オフセットおよびデータサイズとが記憶される。他の構成は、図3における構成の同一もしくは相当部であり説明を省略する。 図9は、書き込みバッファ管理領域403に記録されているデータの内容を示す図である。書き込みバッファ管理領域403には、書き込みバッファ402に保持されたデータが書き込まれるべきフラッシュメモリ101上の消去単位番号と、この消去単位領域内の書き込み領域の位置を特定するオフセットと、書き込み領域の大きさに関するデータを保持する。消去単位番号の「−1」は、これ以上書き込みデータが存在しないことを意味する。ここでは、書き込み領域の大きさは一定になっているが、この大きさは個々のデータ毎に異なっていてもよい。
まず、S401において、データの書き込み要求を受ける。書き込み要求の内容は、実施の形態1と同様である。
次に、S402において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。この動作は、実施の形態1と同様である。
続いてS403において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
ここで、消去番号の記録が存在しなければ、S404において、書き込み制御手段111は、書き込み要求データを消去ブロックバッファ103に書き込む。
続いて、S406において、S402で求めた消去単位番号を消去単位番号保持領域202に記録する。
さらに、S407において、消去命令手段301に対して消去指示を出す。消去指示の内容は実施の形態2と同様である。消去指示を受けた消去命令手段301は、消去ブロックバッファ103へ待避された消去単位の消去を行なうように、フラッシュメモリ101に命令を出す。
S408において消去単位番号が異なる場合には、S409において、書き込みバッファ管理領域403を参照し、書き込みバッファ管理領域403に記録されている情報から、書き込み要求領域と同一の領域に書き込みを行なうデータが既に書き込みバッファ402に存在するかを判定する。この判定は、書き込みバッファ管理領域403に記憶されている消去単位番号及び消去単位内オフセットおよびサイズから把握することができる。換言すれば、S409においては、書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域に含まれるか否かを判定する。書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域に含まれる場合としては、例えば、書き込み要求領域で特定される領域と既に書き込みバッファ402に存在するデータの書き込み要求領域とが完全に同一の場合、及び書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域内に収まる場合の2つの場合が該当する。
続いて、S404からS407の処理を、消去単位番号の記録が存在しない場合と同様に行なう。
次にS413において、書き込みバッファ管理領域403に、S412で書き込んだ書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号とその中での位置を特定するオフセット、及び書き込みデータの大きさを記録する。書き込みバッファ管理領域403における管理情報と、書き込みバッファ402における書き込みデータの対応づけは、各エリアにおけるアドレス上の順序が同一になるように記録されることで行われる。尚、書き込みバッファ管理領域403に、書き込みデータが記録されている書き込みバッファ内のアドレスを記録することにより、各管理情報と書き込みデータの対応づけを行ってもよい。
S408で、S402で算出した消去単位番号が消去単位番号保持領域202に存在する記録と一致すると判定された場合には、S415において、書き込み要求データを消去ブロックバッファに書き込む。書き込み要求データの消去ブロックバッファへの書き込み動作については実施の形態1と同様である。
まずS451において、読み出し要求を受ける。この読み出し要求の内容は実施の形態2と同様である。
次にS452において、読み出し要求領域を含むフラッシュメモリの消去単位番号を求める。消去単位の番号を求める動作は実施の形態2と同様である。
続いてS453において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
消去単位番号の記録が存在しない場合には、S454において、書き込みバッファ管理領域403の管理情報を参照し、読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在するかを判定する。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在しない場合には、S456において、読み出しデータをフラッシュメモリ101から読み出す。
S453で消去単位番号保持領域202に消去単位番号の記録が存在し、かつS452で求めた消去単位番号と一致する場合には、読み出し領域のデータは消去ブロックバッファ103に保持されているので、S457において、消去ブロックバッファ103から読み出しデータを読み出す。
以上の処理が読み出し要求が発生する度に実行される。
図12は本実施の形態における情報処理装置の構成を示す図である。図において、501は書き込みバッファ402のデータを移動するバッファ移動手段である。他の構成は、既に説明した構成の同一もしくは相当部であり、説明を省略する。本実施形態の基本的動作は実施の形態4と同様であるが、バッファ移動手段501によって、書き込みバッファ402内の同一の消去単位領域に含まれるデータを、消去ブロックバッファ103に移動する処理を有する点で実施の形態4と相違する。
実施の形態5における書き込み時の動作を、図13および図14を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まずS501において、データの書き込み要求を受ける。書き込み要求の内容は実施の形態1と同様である。
次にS502において、書き込み要求領域が含まれるフラッシュメモリの消去単位の番号を求める。消去単位番号を求める動作は実施の形態1と同様である。
消去単位番号保持領域202に消去番号の記録が存在しなければ、S504において、書き込みデータを消去ブロックバッファ103に書き込む。
さらにS505において、待避手段112に対して待避指示を行なう。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、待避処理として不変データを消去ブロックバッファ103へ書き込む。
続いて、S506において、S502において求めた消去単位番号を消去単位番号保持領域202に記録する。
次にS507において、消去命令手段301に対して消去指示を出す。消去指示の内容は実施の形態1と同様である。消去指示を受けた消去命令手段301は、すでに消去ブロックバッファ103への待避が完了した消去単位領域内のデータを消去するようにフラッシュメモリ101に命令を出す。
S508において消去単位番号が異なる場合には、S509において、書き込みバッファ管理領域403を参照し、書き込み要求領域と同一の領域に書き込まれるデータが既に書き込みバッファに存在するかを判定する。
S509で書き込み要求領域と同一の領域に書き込まれるデータが書き込みバッファに存在しないと判定された場合には、S510の処理として、S502において求めた消去単位番号と同じ消去単位番号のデータが書き込みバッファ402に存在するかを書き込みバッファ管理領域403を参照して判定する。
S510で同じ消去単位番号のデータが書き込みバッファ402に存在しない場合には、さらにS511において、書き込み要求データを書き込むことができる領域が書き込みバッファ402に存在するかを判定する。
S511において空き領域がないと判断した場合には、S512において書き込み制御手段111は、書き込み手段302に対し書き込み指示を行なう。書き込み指示を受けた書き込み手段302は、現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。
これ以降、S504〜S507の処理を行ない、消去単位番号の記録が存在しない場合と同一の処理を行なう。
S514において、書き込みバッファ管理領域に、管理情報として、消去単位番号とその中でのオフセット、及び書き込みデータの大きさを記録する。
S509で書き込み要求領域と同一の領域に書き込まれるデータが書き込みバッファに存在すると判定された場合には、S516において書き込み制御手段111は、書き込み要求領域と同一の領域に書き込まれるデータが存在するエリアに書き込み要求データを上書きする。
S508においてS502で算出した消去単位番号が消去単位番号保持領域202に存在する記録と一致すると判定された場合には、S517において、書き込み要求データの消去単位番号と同一の消去単位番号のデータが記憶されている消去ブロックバッファ103内のエリアに書き込み要求データを上書きする。
まずS521において、消去ブロックバッファ103に現在登録されているデータをフラッシュメモリ101に書き込む。
次にS522において、書き込み要求データを消去ブロックバッファ103へ書き込む。
続いてS523において、バッファ移動手段501は書き込みバッファ402に記録されているデータの内、書き込み要求データの消去単位と同一の消去単位に含まれる全ての書き込みデータを、消去ブロックバッファ103へ移動する。書き込み要求データの書き込み要求領域と、既に書き込みバッファ402に記憶されている書き込みデータの書き込み要求領域とが異なる場合には、書き込み要求データ及び書き込みバッファ402に記憶されている書き込みデータがすべて消去ブロックバッファ103に記憶される。書き込み要求データの書き込み要求領域と、既に書き込みバッファ402に記憶されている書き込みデータの書き込み要求領域とが一部重複する場合には、重複する領域については書き込み要求データが優先的に消去ブロックバッファ103に書き込まれ、重複しない部分については書き込み要求データ及び書き込みバッファ402に記憶されている書き込みデータがそれぞれ消去ブロックバッファ103に書き込まれる。
続いて、S525において消去単位番号を消去単位番号保持領域202に記録し、S526において、書き込みバッファ402から消去ブロックバッファ103へ移動に伴う書き込みバッファ管理領域403の更新を行う。
最後にS527において、消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301は消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。
以上の処理が書き込み要求が発生する度に実行される。
この実施の形態の情報処理装置によれば、フラッシュメモリ101の同一消去単位領域に含まれる書き込みバッファ403上の書き込みデータ及び書き込み要求データを消去ブロックバッファ103にまとめることにより、書き込みバッファ402を効率よく使用することができるので、実施の形態4の効果に加え、フラッシュメモリ101への書き込み回数をより低減でき、フラッシュメモリ101の劣化を低減することができるという効果がある。
この場合、S510において、書き込み制御手段111は、書き込みバッファ管理領域403を参照し、書き込みバッファ402に記憶されている書き込みデータの一番多い消去単位を判定する。これは、書き込みバッファ管理領域403内の消去単位番号を参照することにより判定可能である。
S510において同一の消去単位に含まれる書き込みデータが書き込みバッファ402内に存在しない場合には、S511の処理に進む。
S510において同一の消去単位に含まれる書き込みデータが書き込みバッファ402内に存在する場合には、S510で書き込みデータの一番多い消去単位を判定し、S515において、書き込みバッファ402内に記憶されている複数の書き込みデータのバッファデータ移動処理を行う。
その後、S525とS526の間において、書き込み要求データを書き込みバッファ402に書き込む。
S526において新たな書き込みデータに基づき管理情報の更新を行い、最後にS527の処理を行う。
以上のように、書き込みデータの一番多い消去単位の書き込みデータを消去ブロックバッファ103に移動することで、さらに効率的に不揮発性メモリ102を利用することが可能となる。
実施の形態6における情報処理装置の構成は、実施の形態5の場合と同一である。但し、書き込みバッファ管理領域403には、図9で示したものに加えて、書き込みバッファ402の領域の使用頻度に関する情報が記録される。ここでは、図15に示すように、バッファの領域を使用する使用頻度の情報の一例として、書き込みバッファ402へのデータ書き込みが行われる度に1ずつ加算され、書き込まれた順番を特定する書き込みの一連番号と、バッファ領域への書き込み回数とを記録するものとする。
本実施形態は、実施の形態5と基本的動作において同様であるが、特に、書き込みバッファ402へのの領域を使用する使用頻度に基づき、書き込みデータの移動を行うものである。
まずS601において、データの書き込み要求を受け、さらにS602において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。書き込み要求の内容と消去単位の番号を求める動作は実施の形態1と同様である。
続いてS603において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
消去番号の記録が存在しなければ、S604において、書き込み要求データを消去ブロックバッファ103に書き込む。
続いてS606において、S602において求めた消去単位番号を消去単位番号保持領域202に記録する。
さらにS607において、消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301がすでに消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。消去指示の内容は実施の形態1と同様である。
S608で消去単位番号が異なる場合には、S609において、書き込みバッファ管理領域403を参照し、書き込みバッファに書き込み要求領域と同一領域のデータが存在するかを判定する。
S609で同一領域のデータが存在しない場合には、S610の処理として、S602において求めた消去単位番号と同じ消去単位のデータが書き込みバッファに存在するかを、書き込みバッファ管理領域403を参照して判定する。
S610で同じ消去単位のデータが書き込みバッファに存在しない場合には、さらにS611において、書き込み制御手段111は書き込み要求のデータを書き込むことができる領域が書き込みバッファ402に存在するかを判定する。
S611で空き領域がない場合には、S612でバッファデータ移動処理(2)を行なうが、これについては後述する。
次に、S614において、書き込みバッファ管理領域403内のデータの書き込まれたバッファに対応する部分に、フラッシュメモリ上での位置を示す情報として、消去単位番号とその中でのオフセット、書き込まれた大きさを記録するとともに、バッファの領域の使用頻度の情報として、書き込みの一連番号と、バッファ書き込み回数の初期値として1を記録する。
続いてS631において、書き込みバッファ管理領域403内の、対応する領域についてのバッファの領域の使用頻度の情報として、書き込みの一連番号を記録し、バッファ書き込み回数を1加算したものに更新する。
S608においてS602で算出した消去単位番号が消去単位番号保持手段302に存在する記録と一致すると判定された場合には、S630において、書き込み要求データを消去ブロックバッファ103に書き込む。
まず、S681で現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。
S682において、書き込みバッファ管理領域403を検索し、使用頻度の低い書き込みバッファの領域を選択する。使用頻度の判定は、書き込みバッファ管理領域403内の書き込みの一連番号および書き込み回数を用いて行ない、一連番号が最も小さく、かつ書き込み回数が最も少ない領域があれば、その領域を選択する。一連番号が最小の領域と、書き込み回数が最少の領域が一致しない場合には、一連番号が小さい順に書き込み回数を調べていき、書き込み回数が最少のものを選択する。尚、書き込み回数が最少のものではなく、一連番号が最小のものを選択してもよい。
続いてS684において、書き込み要求データを、消去ブロックバッファ103へ移動されたデータが記録されていた書き込みバッファ内の領域へ書き込む。
次にS685において、消去ブロックバッファ103へ移動されたデータを含むフラッシュメモリ101の消去単位について、待避手段301に対し待避指示を行なう。待避指示をうけた待避手段301は、待避指示に従い、消去単位の不変データを消去ブロックバッファ103へ書き込むことにより待避させる。
続いてS687において、書き込みバッファ管理領域403の、書き込みバッファ402から消去ブロックバッファ103へ移動されたエリアに対応する部分を、新たに書き込まれたデータに対応するように更新する。
最後にS688において消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301は、消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。
以上の処理が書き込み要求が発生する度に実行される。
以上のように、本実施の形態の情報処理装置によれば、書き込みバッファ上で使用頻度の低い領域を先にフラッシュメモリに書き込むことにより、書き込みバッファを効率よく使用することができるので、実施の形態5の効果に加え、フラッシュメモリへの書き込み回数をさらに低減でき、フラッシュメモリの劣化を低減することができるという効果がある。
図19は発明の実施の形態7における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号領域202内の値と同じ値が記録される消去単位番号確認領域、611は情報処理装置の起動時に実行され、消去単位番号領域202,および消去単位番号確認領域601内のデータを元に、消去ブロックバッファ103の内容をフラッシュメモリ101に書き戻す復旧手段である。他の構成は、図1において説明した構成の同一又は相当部であり、説明を省略する。
この実施の形態ではS703、S706、S708の処理を有する点で相違するため、この点を中心に説明する。
続いて、S703にてS702において求められた消去単位番号を消去単位番号保持領域202に書き込む。
その後、S704で消去ブロックバッファ103へ書き込み要求データを書き込み、S705で待避手段112に待避指示を出す。
次に、S707にて消去命令手段301に対して消去指示を出した後、書き込み手段302に書き込み指示を出す。
以上がメモリへのデータ書き込み時の動作である。
復旧手段611はまず、S781において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いてS782にて、消去単位番号保持領域202内と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
S782にて、番号が存在する場合、S783にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
以上が復旧手段611の動作である。
さらに、不揮発性メモリが電池などでデータの内容を保持するようなメモリの場合において、電源断後の電池の電圧降下により、不揮発性メモリの内容が不定になった場合でも、復旧手段に消去番号保持領域および消去番号確認領域内の値をチェックするようにしたので、不揮発性メモリの内容が不安定になっているかを検知することができる情報処理装置を得ることができる。
図22は発明の実施の形態8における情報処理装置の概略を示す構成図である。図において、602は不揮発性メモリ102内のエリアであって、消去ブロックバッファ103の内容が正しいことを示すチェック値を格納する消去ブロックバッファ確認領域である。他の構成は、図19において説明した構成の同一又は相当部であり、説明を省略する。
この実施の形態ではS807の処理を有する点で相違するため、この点を中心に説明する。
S807の後、S808、S809の処理を実行する。
以上がメモリへのデータ書き込み時の動作である。
この実施の形態ではS884、S885の処理を有する点で相違するため、この点を中心に説明する。
S884では、消去ブロックバッファ103内のデータをチェックし、消去ブロックバッファ確認領域602の値と比較する。即ち図23でのS807での処理と同様の規則で消去ブロックバッファ103内のデータを計算することで得られる値と、消去ブロックバッファ確認領域602の値とを比較する。通常、両者の値は同一値になるが、消去ブロックバッファに本発明の手段以外の操作によりデータが書きまれたり、消去ブロックバッファ103が使用している不揮発性メモリが故障した場合には両者の値は一致しない。
両者の値が一致しなければ、S885にて値が妥当でないと判断する。
S885にて値が妥当であると判断した場合、S887、S888の処理を実行する。
以上が復旧手段611の動作である。
さらに、消去ブロックバッファに他手段から不正なデータ書き込みがあっても、それを検出することができる。
図25は発明の実施の形態9における情報処理装置の概略を示す構成図である。図において、603は不揮発性メモリ102内のエリアであって、消去ブロックバッファ103およびフラッシュメモリ101に対する書き込みを禁止または許可することを意味する値を格納する書き込み禁止フラグ領域である。また図において、612は書き込み禁止フラグ領域603に書き込み許可を意味する値を書き込む書き込み許可指示手段、613は書き込み禁止フラグ領域603に書き込み禁止を意味する値を書き込む書き込み禁止指示手段である。他の構成は図4において説明した構成の同一または相当部であり、説明を省略する。
この実施の形態ではS902、S903の処理を有する点で相違するため、この点を中心に説明する。
S902にて書き込み禁止フラグ領域の値が書き込み禁止を意味する値でない場合、S904に進む。S904以降の処理は実施の形態2と同様である。
以上がメモリへのデータ書き込み時の動作である。
書き込み許可指示手段612は、書き込み許可指示を受けるとS952にて書き込み禁止フラグ領域603に書き込み許可を意味する値を書き込み、処理を終了する。これにより、以降のメモリへのデータ書き込み時に、データを書き込むことが可能になる。
以上が書き込み許可指示手段612の動作である。
まず、S982において、消去単位番号保持領域603の内容を参照し、消去単位番号の記録が存在するか判定する。存在しない場合、S985へ進む。
以上が書き込み禁止指示手段613の動作である。
また、書き込み禁止指示時に、消去ブロックバッファの内容をフラッシュメモリに書き込むようにし、書き込み禁止状態では不揮発性メモリにデータが残らないようにしたので、不揮発性メモリが電池などでデータの内容を保持するようなメモリの場合において、電源断後の電池の電圧降下による不揮発性メモリ内のデータ破壊においても、データが消去されないようにすることができる。
図29は実施の形態10における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号保持領域202内の値と同じ値が記録される消去単位番号確認領域、611は情報処理装置の起動時に実行され、消去単位番号保持領域202, および消去単位番号確認領域601内のデータを元に、消去ブロックバッファ103の内容をフラッシュメモリ101に書き戻す復旧手段である。他の構成は図4において説明した構成の同一または相当部であり、説明を省略する。
この実施の形態ではS1004、S1007、S1010の処理を有する点で相違するため、この点を中心に説明する。
以上がメモリへのデータ書き込み時の動作である。
復旧手段はまず、S1051において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いてS1052にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
S1052にて、番号が存在する場合、S1053にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かを判定する。
値が同一な場合、消去ブロックバッファにはデータが残っていることを示すので、復旧手段611はS1054にて、消去命令手段301に対し消去指示を出した後、書き込み手段302に書き込み指示を出し、消去ブロックバッファ103の内容をフラッシュメモリ101に書き込む。この消去指示および書き込み指示の内容は、実施の形態7におけるデータ書き込み時の動作(図23)のS808の処理と同様である。
以上が復旧手段611の動作である。
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態10と同様であり、図29に示される。本実施の形態の基本動作は復旧手段611の処理動作以外は実施の形態10と同じである。
本実施の形態における復旧手段611の動作を図32を用いて説明する。
S1102にて番号が存在する場合、S1103にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かを判定する。値が同一な場合、消去ブロックバッファにはデータが残っていることを意味し、処理を終了する。
以上が復旧手段611の動作である。
図33は、実施の形態11における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号保持領域202内の値と同じ値が記録される消去単位番号確認領域、604は消去ブロックバッファを一定サイズ毎に区切り、各区域内のデータが正しいことを示すチェック値が格納された消去ブロックバッファ管理領域である。
この実施の形態ではS1205、S1206、S1211の処理を有する点で相違するため、この点を中心に説明する。
そして、S1204を実行した後、S1205において書き込みデータを消去ブロックバッファに書き込むため消去ブロックバッファ書き込み手段614に指示を行う。この指示には、書き込みデータの消去ブロックバッファ103上の位置およびサイズおよび書き込みデータが含まれる。消去ブロックバッファ書き込み手段614の具体的な処理内容については後述する。
続いて、S1207でS1202において求められた消去単位番号を消去単位番号確認領域601に書き込む。S1207の処理が終了すると、フラッシュメモリ101にデータを書き込むことなく、メモリへのデータ書き込み処理を終了する。
以上がメモリへのデータ書き込み時の動作である。
待避手段112は、まずS1231において書き込み要求データが含まれるフラッシュメモリ101内の消去単位領域の先頭から、書き込み要求データが含まれる領域の先頭までのデータをフラッシュメモリ101から読み出し、消去ブロックバッファ書き込み手段614に指示し、読み出したデータを消去ブロックバッファ103に書き込む。この時、消去ブロックバッファ書き込み手段614への指示には、消去単位領域の先頭アドレス、消去単位領域の先頭アドレスから書き込み要求領域の先頭までのサイズ、およびフラッシュメモリ101から読み出したデータが含まれる。
以上が、待避手段112の動作である。これにより、消去単位領域内の不変データが消去ブロックバッファ103に書き込まれる。
まず、S1251において、消去ブロックバッファ103への書き込み要求を受ける。この書き込み要求には、書き込むデータとしての書き込み要求データ、データを書き込む消去ブロックバッファ103上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
続いてS1254において、書き込んだ領域に対するチェック値を求め、それを消去ブロックバッファ管理領域の対応するチェック値領域に書き込む。例えば、100〜999までの書き込みをS1253にて行った場合、S1254は図34の書き込み領域1のデータチェック値に消去ブロックバッファ103内のオフセット0〜999までのデータチェック値を書き込む。このデータチェック値は対応する領域内のデータが正しいか否かをチェックする基準値として用いられるものであり、領域内のデータ値を全て加算したチェックサム値などが入る。
以上が消去ブロックバッファ書き込み手段の動作である。
復旧手段はまず、S1281において、消去番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いて、S1282にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
S1282で番号が存在する場合、S1283にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
S1283で消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一である場合、S1284に進む。
S1286にて、消去ブロックバッファ内の最終領域まで到達した場合、処理を終了する。これにより、復旧後、消去ブロックバッファ内のデータは正しいことがわかる。
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、消去ブロックバッファ管理領域604の構造と消去ブロックバッファ書き込み手段614および復旧手段611の動作以外は実施の形態12と同様である。
まず、S1301にて、消去ブロックバッファ103への書き込み要求を受ける。この書き込み要求には、書き込みデータとしての書き込み要求データ、データを書き込み消去ブロックバッファ103上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
次に、S1303において、消去ブロックバッファ管理領域604を検索する。
S1304において、S1301で受けた書き込み要求の書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域と同一領域か判定する。もし、同一領域が存在する場合、S1305に進み、既に消去ブロックバッファ管理領域604に保持されているデータチェック値を書き込み要求データのデータチェック値に更新し、処理を終了する。
以上が消去ブロックバッファ書き込み手段614の動作である。
復旧手段611はまず、S1351において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いて、S1282にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
S1352において、番号が存在する場合、S1353にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
値が同一でない場合、S1357に進み、情報処理装置にエラー通知を行う。これにより、情報処理装置は書き込み途中の電源断を検出することができる。その後、S1358にて、消去単位番号保持領域202および消去単位番号確認領域601をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
続いて、S1355にて算出した値と消去ブロックバッファ管理領域604の領域情報にあるデータチェック値をチェックする。
以上のように、この実施の形態によれば、消去ブロックバッファ管理領域に登録する領域を可変サイズにするようにしたので、消去ブロックバッファ書き込み手段でバッファへの書き込み時に書き込み要求領域を分割する必要がなく、メモリへのデータ書き込み処理を高速に行うことができる。
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、読み出し手段の動作以外は実施の形態12と同様である。
この実施の形態ではS1405、S1406、S1407の処理を有する点で相違するため、この点を中心に説明する。
消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS1402において求めたものと一致しない場合には、読み出し領域のデータは消去ブロックバッファに保持されていないので、S1404において、フラッシュメモリからデータの読み出しを行う。
続いてS1406において、読み出した領域に対応する消去ブロックバッファ管理領域604のデータチェック値を用いて、読み出した領域のデータが正しいか否かを判定する。即ち、S1405で消去ブロックバッファ103から読み出したデータを用いて値を算出し(この算出規則は消去ブロックバッファ管理領域604のデータチェック値を算出する算出規則と同様の規則である。)、この算出値と読み出した領域に対応する消去ブロックバッファ管理領域604のデータチェック値とが同一か否かを判定する。
両者が同一の値であれば、消去ブロックバッファ103から読み出したデータが妥当であると判断する。
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、読み出し手段の動作以外は実施の形態12と同様である。
本実施の形態における読み出し手段201の動作を図44を用いて説明する。図44において、S1501〜S1506は実施の形態14の処理(図43のS1401〜S1406)と同一であるので説明を省略する。
尚、S1504の処理は、消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS1502において求めたものと一致しない場合にも行う。
図45は本発明の他の実施の形態における情報処理装置の構成を示す図である。図において、605は消去ブロックバッファの消去単位番号情報や書き込みバッファの消去単位番号情報などが入るバッファ管理領域である。また、611は情報処理装置の起動時に実行され、バッファ管理領域605内の情報に従い、消去ブロックバッファ103および書き込みバッファ402のデータを復旧させる復旧手段である。他の構成は、図8における構成の同一もしくは相当部であり説明を省略する。なお、図8における消去単位番号保持領域202は図45ではバッファ管理領域605内に設定される。
まず、S1601でデータの書き込み要求を受けるとS1602で書き込み要求がされたフラッシュメモリの消去単位の番号を求める。この動作は、実施の形態1および4と同様である。
ここで消去番号の記録が存在しなければ、S1604において、書き込み制御手段111は、消去ブロックバッファ管理領域6051内にある消去単位番号保持領域にS1602で求めた消去単位番号を格納する。
続いて、S1605において書き込み要求データを消去ブロックバッファ103に書き込み、S1606において待避手段112に対して待避指示を行う。待避指示の内容および待避手段の処理動作は実施の形態1および4と同様である。
次に、S1609において消去命令手段301に対して消去指示を出す。消去指示の内容および消去命令手段301の動作は実施の形態4と同様である。
S1611で書き込み要求領域と同一の領域に書き込みを行うデータが書き込みバッファ402に存在しないと判断した場合には、さらにS1612において書き込み制御手段111は書き込みバッファ402の空き領域を調べる。この処理は、実施の形態4と同様である。
続いて、S1614において消去ブロックバッファ管理領域6051の消去単位番号保持領域と消去単位番号確認領域の内容をクリアする。これにより、消去ブロックバッファ601にはデータが残っていないことを示す。
さらに、この後、S1604からS1609の処理を、消去単位番号の記録が存在しない場合と同様に行う。
次にS1616において、書き込みバッファ管理領域6052に書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号、消去単位番号が示す領域内で書き込みデータの位置を特定するオフセット、書き込みデータのサイズ、書き込みデータが正しいか否かのチェックに用いるデータチェック値、および前記3つの4つのデータが正しいか否かのチェックに用いる管理領域チェック値を記録する。書き込みバッファ管理領域6052における管理情報と、書き込みバッファ402における書き込みデータの対応づけは、各エリアにおけるアドレス上の順序が同一になるように記録されていることで行われる。
続いてS1618において、書き込みバッファ管理領域6052の内、S1617で書き込みデータを書き込んだ領域に関する領域情報を更新する。この時更新される情報は、データチェック値および管理領域チェック値である。
続いて、S1620において、消去ブロックバッファ管理領域6051のデータチェック値領域に、更新された消去ブロックバッファ103内のデータから求めたデータチェック値を書き込む。
以上がメモリへのデータ書き込み時の動作である。
まずS1651において、読み出し要求を受ける。この読み出し要求の内容は実施の形態4と同様である。
S1652において、読み出し要求領域を含むフラッシュメモリの消去単位番号を求める。消去単位番号を求める動作は実施の形態4と同様である。
消去単位番号の記録が存在しない場合には、S1657において、書き込みバッファ管理領域6052の管理情報を参照し、読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在するかを判定する。
データが妥当でないと判定した場合、S1650において、情報処理装置にエラーを通知し、処理を終了する。
データが妥当でないと判定した場合、S1656において、情報処理装置にエラーを通知し、処理を終了する。
以上がメモリからのデータ読み出し時の動作である。
復旧手段611はまずS1681において、消去ブロックバッファ管理領域6051の消去単位番号保持領域の値と消去単位番号確認領域の値を読み出す。続いてS1682において、消去単位番号保持領域と消去単位番号確認領域にフラッシュメモリ内の消去単位番号が存在するかを判定する。
消去単位番号保持領域の値と消去単位番号確認領域の値が同一の場合、S1684において、消去ブロックバッファ管理領域6051にあるデータチェック値を読み出す。
S1685で、消去ブロックバッファ103内のデータが妥当である場合、消去ブロックバッファ103内のデータは破壊されていないことになるので、書き込みバッファの状態を復旧させるために、S1687でバッファ管理領域605の書き込みバッファ管理領域の領域情報を読み出す。
S1689で、書き込みバッファ402内のデータが正しいと判断した場合、S1691でこの領域情報が書き込みバッファ管理領域に保持されている領域情報の最後かを判定する。領域情報の最後である場合、処理を終了する。
S1689で、書き込みバッファのデータが正しくない場合、S1690において、書き込みバッファ管理領域6052の当該領域情報をクリアし、領域情報および当該書き込みバッファを別のデータが使用することを可能にする。そして、S1691に進み、次の領域情報へ処理を進める。
S1682で、消去ブロックバッファ管理領域6051にある消去単位番号保持領域と消去単位番号確認領域に消去単位番号の記録がない場合、S1687〜S1691を実施し、書き込みバッファ104の復旧処理を行う。
さらに、消去ブロックバッファおよび書き込みバッファに他手段から不正なデータ書き込みがあっても、それを検出することができる。
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態16と同様であり、図45に示される。本実施の形態では、復旧手段の動作以外は実施の形態16と同様である。
本実施の形態における復旧手段611の動作を図50を用いて説明する。図50は、実施の形態16における復旧手段の動作が一部相違している。
S1705で消去ブロックバッファのデータが正しくないと判断した場合、S1707に進み、S1707において消去単位番号保持領域と消去単位番号確認領域をクリアし、消去ブロックバッファ103を再利用可能にしてから、S1708に進み、書き込みバッファ402の復旧処理を行う。
S1702〜S1707の処理により消去ブロックバッファ103の復旧処理が完了すると、復旧手段611はS1708において、書き込みバッファ管理領域6052の領域情報を読み出す。
S1709で書き込みバッファ管理領域6052の領域情報が妥当でないと判断した場合およびS1710で書き込みバッファ402内のデータが正しくないと判断した場合、書き込みバッファ402の書き込み途中で電源断が発生したと考えられるので、S1716において、当該領域情報を書き込みバッファ管理領域6052から削除し、書き込みバッファ402を再利用可能にする。
次にS1712において、待避手段112に対して待避指示を行う。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、消去単位内の不変データを消去ブロックバッファ103に書き込むことにより待避させる。
次にS1716において、S1708で読み出した領域情報を書き込みバッファ管理領域6052から削除し、書き込みバッファ402の当該領域を再利用可能にする。
書き込みバッファ管理領域の最後ではない場合、当該領域情報の次に登録されている領域情報に対し、S1708〜S1717の処理を行う。
書き込みバッファ管理領域の最後である場合、書き込みバッファ402には、データが残っていないので、処理を終了する。
図51は本発明の他の実施の形態における情報処理装置の構成を示す図である。図において、185は揮発性メモリであるDRAMであり、DRAM185には、不揮発性メモリ102内の消去単位番号保持領域202と同じ値を持つ消去単位番号保持領域606と不揮発性メモリ102内の書き込みバッファ管理領域403と同じ値を持つ書き込みバッファ管理領域607とを備える。このDRAM185は不揮発性メモリ102よりもデータの読み書きが高速である。
また図において、611は情報処理装置の起動時に実行される復旧手段である。他の構成は図8における構成の同一もしくは相当部であり、説明を省略する。
まず、S1801、S1802の処理は実施の形態4と同様である。
続いて、S1803において、DRAM185上の消去単位番号保持領域606を参照し、消去単位番号の記録が存在するかを判定する。
ここで消去単位番号の記録が存在しなければ、S1804において、書き込み制御手段111は書き込み要求データを消去ブロックバッファ103に書き込む。
続いてS1806において、S1802で求めた消去単位番号を不揮発性メモリ102上の消去単位番号保持領域202およびDRAM185上の消去単位番号保持領域606に記録する。DRAM185への消去単位番号の書き込み処理は図54のS1851の処理に相当する。
S1803においてDRAM185上の消去単位番号保持領域606に消去単位番号の記録が存在する場合には、S1808において、S1802で求めた消去単位番号がDRAM185上の消去単位番号保持領域606に存在する記録と一致するかを判定する。
続いて、S1804からS1807の処理を、消去単位番号の記録が存在しない場合と同様に行う。
次にS1813において、不揮発性メモリ102上の書き込みバッファ管理領域403およびDRAM185上の書き込みバッファ管理領域607に、S1812で書き込んだ書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号とその中での位置を特定するオフセット、及び書き込みデータの大きさを記録する。このDRAM185へ書き込みデータに関する管理情報を記録する処理は、図54のS1852に相当する。
S1808で、S1802で算出した消去単位番号がDRAM185上の消去単位番号保持領域606に存在する記録と一致すること判定された場合には、S1815において、書き込み要求データを消去ブロックバッファ103に書き込む。
まずS1831およびS1832は、実施の形態4と同様である。
続いてS1833において、DRAM185上の消去単位番号保持領域606を参照し、消去単位番号の記録が存在するかを判定する。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在しない場合には、S1836において、読み出しデータをフラッシュメモリ101から読み出す。
以上の処理がメモリからのデータ読み出し時の動作である。
復旧手段611はまず、S1851において、DRAM185上の消去単位番号保持領域606に、不揮発性メモリ102上の消去単位番号保持領域202の内容を書き込む。これは、DRAM185は揮発性メモリであり、情報処理装置の再起動時にデータが消去されてしまうためである。
以上が復旧手段の動作である。この動作により、復旧手段の処理完了後、不揮発性メモリ102上の消去単位番号保持領域202および書き込みバッファ管理領域403の内容と、DRAM185上の消去単位番号保持領域606および書き込みバッファ管理領域607の内容は同じになる。
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態5と同様であり、図12に示される。
実施の形態19における書き込み時の動作を図55を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。
図55において、S1901〜S1910、S1914、S1915は実施の形態5の処理(図13のS501〜S510、S516、S517)と同一であるので説明を省略する。
この実施の形態ではS1910の後にS1911、S1912、S1913の処理を有する点で相違するため、この点を中心に説明する。
S1910で空き領域が存在すると判断した場合には、S1911において書き込み制御手段111は、書き込みデータを書き込みバッファ402の空き領域へ書き込む。続いて、S1912において、書き込みバッファ管理領域403に管理情報として、消去単位番号とその中のオフセット、及び書き込みデータの大きさを記録する。S1912が完了後、処理を終了する。
S1910において書き込みバッファ402に空き領域が存在しない場合には、S1913においてバッファデータ移動処理を行う。
まず、S1951において、消去ブロックバッファ103に現在登録されているデータをフラッシュメモリ101に書き込む。
続いて、S1954において、待避手段112に対して待避指示を行い、待避指示を受けた待避手段112は、S1953において消去ブロックバッファ103へ書き込まれた領域以外のデータである不変データを、フラッシュメモリの当該消去単位から待避する。さらに、S1955において、消去単位番号を消去単位番号保持領域202に記録する。
次に、S1957において、S1952で算出した領域群に書き込み要求データが存在したか判定する。書き込み要求データが存在しなかった場合、S1958において、S1956の動作によって空きができた書き込みバッファ402に書き込み要求データを書き込み、書き込みバッファ管理領域403に書き込み要求データに関する管理情報を登録する。
以上はメモリ書き込み時の動作である。
尚、実施の形態19における読み出し時の動作は、実施の形態4と同一である。
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態5と同様であり、図12に示される。また、メモリ書き込み時におけるバッファ移動処理以外は実施の形態19と同一である。
書き込みバッファ402に空き領域が存在しない場合に行われる、バッファデータ移動処理の動作を図57を用いて説明する。以下の各処理は、断りのない限り書き込み制御手段111の動作である。
この実施の形態ではS2009以降の処理としてさらにS2010〜S2018の処理を有する。
S2010において書き込み制御手段111は、書き込みバッファ管理領域403を検索し、書き込みバッファ管理領域403に登録されている領域で、同一消去単位内に含まれる領域群にグループ分けした場合にグループ分けした領域群のサイズがnバイトよりも小さい領域群の群数を調べる。
S2011において、群数がm個よりも大きい場合、書き込みバッファの内容を空にする処理を行う。
まず、S2012において書き込み制御手段111は、書き込み手段302に書き込み指示を行い、消去ブロックバッファの内容をフラッシュメモリ101に書き込む。
続いて、S2015において、待避手段112に待避指示を行い、待避指示を受けた待避手段112は、S2014において消去ブロックバッファ103へ書き込まれた領域以外のデータである不変データを、フラッシュメモリの当該消去単位から待避する。さらに、S2016において、消去単位番号を消去単位番号保持領域202に記録する。
次に、S2108において、S2017で更新された書き込みバッファ管理領域403を検索し、まだ登録されている管理情報が存在するか判定する。登録されている管理情報が存在する場合、S2012からS2018の処理をさらに続行する。
登録されている管理情報が存在しない場合、処理を終了する。これにより、書き込みバッファ403にはデータが残らなくなる。
Claims (10)
- あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、
消去ブロックバッファ、消去単位番号保持領域および消去単位番号確認領域とを備え、任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、
前記消去単位領域に記憶されたデータの内、前記第1の書き込みデータによる書き換えが行われない不変データを前記消去ブロックバッファに書き込む待避手段と、
前記第1の書き込みデータを書き込むべき消去単位領域を特定する情報を前記消去単位番号保持領域に書き込み、前記第1の書き込みデータを前記消去ブロックバッファに書き込み、前記第1の書き込みデータおよび前記不変データの書き込み完了後に、前記消去単位番号保持領域に書き込んだ情報に対応する情報を前記消去単位番号確認領域に書き込む書き込み制御手段と、
前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去単位領域に書き込むメモリ書き込み手段と、
前記情報処理装置の復旧時に、前記消去単位番号保持領域と前記消去単位番号確認領域の情報に基づいて復旧処理を行う復旧手段とを有することを特徴とする情報処理装置。 - 前記第2のメモリは、前記消去ブロックバッファ内のデータを処理することで得られるデータチェック値が書き込まれる消去ブロックバッファ確認領域を有し、
前記書き込み制御手段は、前記データチェック値を前記消去ブロックバッファ確認領域に書き込み、
前記復旧手段は、前記消去単位番号保持領域の値、前記消去単位番号確認領域の値および前記消去ブロックバッファ確認領域のデータチェック値に基づいて復旧処理を行うことを特徴とする請求項1記載の情報処理装置。 - 前記消去ブロックバッファは、前記第1の書き込みデータの書き込み要求後に発生する第2の書き込み要求まで前記第1の書き込みデータおよび前記第1の消去単位領域内の不変データを保持し、
前記第2の書き込み要求が前記第1の消去単位領域に第2の書き込みデータを書き込むことを要求する場合に、前記書き込み制御手段は前記第2の書き込みデータを前記消去ブロックバッファに書き込み、前記メモリ書き込み手段は前記第2の書き込みデータが書き込まれた前記消去ブロックバッファ内のデータを前記第1の消去単位領域に書き込むことを特徴とする請求項1に記載の情報処理装置。 - 前記書き込み制御手段は、前記第1のメモリの消去単位領域への前記消去ブロックバッファ内のデータの書き込みが完了した後、前記消去単位番号保持領域および前記消去単位番号確認領域のデータを消去することを特徴とする請求項1記載の情報処理装置。
- 前記復旧手段は、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値とが同一の場合に、前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去手段によって消去された前記第1のメモリの消去単位領域に書き込むよう前記メモリ書き込み手段に対して指示することを特徴とする請求項1または請求項3記載の情報処理装置。
- 前記復旧手段は、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値とが同一でない場合に、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値を消去することを特徴とする請求項1または請求項3に記載の情報処理装置。
- あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、
消去ブロックバッファ、前記消去ブロックバッファ内の領域を分割して管理し、当該分割領域内のデータを処理することで得られるデータチェック値が格納される消去ブロックバッファ管理領域、消去単位番号保持領域および消去単位番号確認領域とを備え、任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、
前記第1の書き込みデータを前記消去ブロックバッファに書き込み、前記消去単位領域に記憶されたデータの内、前記第1の書き込みデータによる書き換えが行われない不変データを前記消去ブロックバッファに書き込み、書き込んだ領域に対応するチェック値を前記消去ブロックバッファ管理領域に書き込む消去ブロックバッファ書き込み手段と、
前記不変データを前記消去ブロックバッファに書き込むように前記消去ブロックバッファ書き込み手段に指示する待避手段と、
前記第1の書き込みデータを書き込むべき消去単位領域を特定する情報を前記消去単位番号保持領域に書き込み、前記第1の書き込みデータを前記消去ブロックバッファに書き込むように前記消去ブロックバッファ書き込み手段に指示し、前記第1の書き込みデータおよび前記不変データの書き込み完了後に、前記消去単位番号保持領域に書き込んだ情報に対応する情報を前記消去単位番号確認領域に書き込む書き込み制御手段と、
前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去単位領域に書き込むメモリ書き込み手段と、
前記情報処理装置の復旧時に、前記消去単位番号保持領域の値、前記消去単位番号確認領域の値および前記データチェック値に基づいて復旧処理を行う復旧手段とを有することを特徴とする情報処理装置。 - 前記消去ブロックバッファ書き込み手段は、第2の書き込みデータの書き込み要求領域が前記消去ブロックバッファ管理領域に管理されている前記分割領域と同一の場合に、前記データチェック値を書き換えることを特徴とする請求項7記載の情報処理装置。
- 読み込み要求されたデータが前記消去ブロックバッファに記憶されている場合に、前記消去ブロックバッファからデータを読み込む読み込み手段を備え、
当該読み込み手段は、前記消去ブロックバッファ管理領域に記憶されている前記データチェック値に基づいて前記消去ブロックバッファ内のデータが正しいと判断した場合に、前記消去ブロックバッファからデータを読み込むことを特徴とする請求項7記載の情報処理装置。 - 読み込み要求されたデータが前記消去ブロックバッファに書き込まれている場合に、前記消去ブロックバッファからデータを読み込む読み込み手段を備え、 当該読み込み手段は、前記消去ブロックバッファ管理領域に記憶されている前記データチェック値に基づいて前記消去ブロックバッファ内のデータが正しくないと判断した場合には、前記第1のメモリからデータを読み込むことを特徴とする請求項7記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004319381A JP4066991B2 (ja) | 1999-02-19 | 2004-11-02 | 情報処理装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4126099 | 1999-02-19 | ||
JP2004319381A JP4066991B2 (ja) | 1999-02-19 | 2004-11-02 | 情報処理装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000025179A Division JP3632543B2 (ja) | 1999-02-19 | 2000-02-02 | データ記憶方法および情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007304492A Division JP4572930B2 (ja) | 1999-02-19 | 2007-11-26 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005071388A JP2005071388A (ja) | 2005-03-17 |
JP4066991B2 true JP4066991B2 (ja) | 2008-03-26 |
Family
ID=34424934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004319381A Expired - Fee Related JP4066991B2 (ja) | 1999-02-19 | 2004-11-02 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4066991B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5050508B2 (ja) * | 2006-11-29 | 2012-10-17 | 大日本印刷株式会社 | 記憶装置、記憶装置のプログラム及び記憶処理方法 |
JP4978181B2 (ja) * | 2006-12-19 | 2012-07-18 | コニカミノルタビジネステクノロジーズ株式会社 | メモリ装置 |
TWI354892B (en) * | 2007-11-15 | 2011-12-21 | Genesys Logic Inc | Method of immediate data update with flash memory |
JP5228946B2 (ja) * | 2009-01-28 | 2013-07-03 | 株式会社ユピテル | 電子機器およびプログラム |
JP5853590B2 (ja) * | 2011-10-26 | 2016-02-09 | 大日本印刷株式会社 | Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等 |
-
2004
- 2004-11-02 JP JP2004319381A patent/JP4066991B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005071388A (ja) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4192129B2 (ja) | メモリ管理装置 | |
EP1244019A2 (en) | Memory device comprising a non-volatile memory | |
US20080195799A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
JP4722704B2 (ja) | 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 | |
JP2008033788A (ja) | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 | |
JP4691209B2 (ja) | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム | |
EP2955633A1 (en) | Data erasing method and device for flash memory | |
EP2391937A1 (en) | Storage system and storage control method that compress and store data elements | |
JP5224800B2 (ja) | 情報処理装置およびデータ復旧方法 | |
US20190187936A1 (en) | Shingled magnetic recording trim operation | |
CN113360082B (zh) | 存储系统及其控制方法 | |
US10915478B2 (en) | Method and apparatus for scatter gather processing engine in a storage controller for caching applications | |
JP3632543B2 (ja) | データ記憶方法および情報処理装置 | |
JP4066991B2 (ja) | 情報処理装置 | |
JP4572930B2 (ja) | 情報処理装置 | |
JP4608434B2 (ja) | 情報記録媒体のデータ処理装置及びデータ記録方法 | |
US9122416B2 (en) | Mainframe storage apparatus that utilizes thin provisioning | |
JP5729479B2 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
JP4731325B2 (ja) | 記録媒体、データ処理装置及びデータ処理方法 | |
US9852746B2 (en) | Information processing apparatus, method of controlling the same, program and storage medium | |
JP4245021B2 (ja) | ストレージ装置、ストレージシステム、ストレージ装置の制御方法 | |
TW201621668A (zh) | 資料儲存裝置及其資料寫入方法 | |
JP4535049B2 (ja) | 仮想ライブラリ装置、仮想ライブラリ装置の制御方法、仮想ライブラリ装置の制御プログラム | |
JP4180100B2 (ja) | ファイル管理装置 | |
JP4244836B2 (ja) | コンピュータシステム、そのバックアップ/リストア方法、ホストコンピュータ、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071002 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071231 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |