JP2005071388A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2005071388A
JP2005071388A JP2004319381A JP2004319381A JP2005071388A JP 2005071388 A JP2005071388 A JP 2005071388A JP 2004319381 A JP2004319381 A JP 2004319381A JP 2004319381 A JP2004319381 A JP 2004319381A JP 2005071388 A JP2005071388 A JP 2005071388A
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.)
Granted
Application number
JP2004319381A
Other languages
English (en)
Other versions
JP4066991B2 (ja
Inventor
Naohito Sugai
尚人 菅井
Atsushi Setsutsu
敦 攝津
Saburo Furubayashi
三郎 古林
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004319381A priority Critical patent/JP4066991B2/ja
Publication of JP2005071388A publication Critical patent/JP2005071388A/ja
Application granted granted Critical
Publication of JP4066991B2 publication Critical patent/JP4066991B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 フラッシュメモリのデータを書き換える際の信頼性を向上させること。フラッシュメモリの消去回数を削減することにより、劣化を低減する。
【解決手段】 フラッシュメモリ101と、フラッシュメモリ101の消去単位のデータを記憶する消去ブロックバッファ103と消去単位番号を記憶する消去単位番号保持領域202と消去単位番号確認領域601を有する不揮発性メモリ102と、フラッシュメモリへの書き込み要求データを消去ブロックバッファ103に書き込む書き込み制御手段111と、フラッシュメモリ内の不変データを消去ブロックバッファに待避させる待避手段112と、フラッシュメモリのデータ消去を指示する消去命令手段301と、消去ブロックバッファのデータをフラッシュメモリ101に書き込む書き込み手段と、フラッシュメモリ101を復旧する復旧手段とを備える。
【選択図】 図19

Description

本発明は、あらかじめ定められた消去単位での消去および書き込みがなされる複数の消去単位領域を有するメモリ、例えばフラッシュメモリを使用する情報処理装置に関するものである。
フラッシュメモリは、電気的に消去・書き込みが可能な半導体メモリであり、電源を供給しなくても記憶内容を保持できるという特徴がある。フラッシュメモリは、特に産業用コンピュータにおいて、ハードディスクに代わる記録媒体として使用されることが多い。
しかし、フラッシュメモリにおいては、新たなデータを直接上書きすることができない。つまり、フラッシュメモリ上のデータの書き換えを行なうには、書き込みの前にまず、64Kなどといった消去単位を、一旦、一括して消去しなければならない。消去単位を消去した後、消去した消去単位全体を新たに書き込むことによりデータの書き換えを行なう。
特に、大容量・高密度のフラッシュメモリは、その構造上、一般に消去単位が書き換え単位に比べ大きい。従って、書き換えデータが消去単位よりも容量の小さいことが多くなるが、このようなデータを書き換える場合でも、書き換えないデータ部分も含めた消去単位全体を一旦消去し、書き換えないデータ部分も、もう一度フラッシュメモリに書き込まなくてはならない。
このための書き換え方式の技術として、特許文献1がある。図18は、この従来技術の回路の概略を示す構成図である。図18を用いて動作を説明する。
FRAM4のデータの書き換え動作について説明する。SRAM3上に、FRAM4の書き換え情報をダウンロードする。FRAM4上における書き換えないエリアの情報を、レジスタ5にコピーし、EPROM2内のFRAMクリアプログラムによって、FRAM4の内容を全消去する。そして、SRAM3上にダウンロードした書き換え情報をFRAM4にコピーし、さらに、レジスタ5に待避しておいた情報をFRAM4上の元の書き換えないエリアにコピーする。
特開平5-233478号公報
しかし、上記従来技術においては、フラッシュメモリの書き換え時に情報を待避する領域であるレジスタ5として揮発性のメモリを使用すると、消去後に装置への電源供給が断たれた等の場合には、書き換えを行なう領域のみならず、書き換えを行なわない領域のデータまでもが失われてしまい、信頼性を低下させるという問題があった。
又、このようにレジスタに記録されたデータが消失することを防ぐためには、レジスタに一旦記録されたデータは、すぐにフラッシュメモリに書き込まなくてはならなかった。そのため、動作上、フラッシュメモリの書き換え毎にフラッシュメモリの消去を行う必要があり、結果として、書き換えの回数と同じ回数だけの消去回数が必要であった。一方、フラッシュメモリには、消去可能な回数に制限(一般に10万回程度)があり、できるだけ消去回数を減らすことも必要であるが、上記従来技術においては、徒にフラッシュメモリの消去回数を増やすことになり、その寿命を短縮させる原因となっていた。
この発明は、上記のような問題を解決するためになされたもので、フラッシュメモリのデータを書き換える場合に、メモリのデータが容易に消去することなく、フラッシュメモリへのデータ書き込み時の信頼性を向上させた情報処理装置を提供することを第1の目的とする。
又、本発明は、フラッシュメモリの消去回数への制限の課題に対し、簡易な構造で、かつ信頼性を維持しつつ、フラッシュメモリの消去回数を削減することにより、フラッシュメモリの劣化を低減することのできる情報処理装置を提供することを第2の目的とする。
この発明における情報処理装置は、あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、消去ブロックバッファ、消去単位番号保持領域および消去単位番号確認領域とを備え、任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、前記消去単位領域に記憶されたデータの内、前記第1の書き込みデータによる書き換えが行われない不変データを前記消去ブロックバッファに書き込む待避手段と、前記第1の書き込みデータを書き込むべき消去単位領域を特定する情報を前記消去単位番号保持領域に書き込み、前記第1の書き込みデータを前記消去ブロックバッファに書き込み、前記第1の書き込みデータおよび前記不変データの書き込み完了後に、前記消去単位番号保持領域に書き込んだ情報に対応する情報を前記消去単位番号確認領域に書き込む書き込み制御手段と、前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去単位領域に書き込むメモリ書き込み手段と、前記情報処理装置の復旧時に、前記消去単位番号保持領域と前記消去単位番号確認領域の情報に基づいて復旧処理を行う復旧手段とを有するものである。
この発明によれば、復旧手段は第1の書き込みデータの書き換え処理のどの段階で処理が中断したかを認識することができ、適切な復旧処理が可能となる。
実施の形態1.
図1はこの発明の一実施の形態である情報処理装置の構成を示す図である。図1において、101は複数の消去単位領域からなるフラッシュメモリである。このフラッシュメモリは、予め定められた消去単位ごとにデータの消去および書き込みがなされるメモリである。
102は、フラッシュメモリとは異なり、データの書き換えのために一定の消去単位を消去する必要がなく任意のデータ単位でメモリへのデータの直接書き込みが可能であり、かつ不揮発性のメモリである。具体的には、バッテリーバックアップSRAMである。
103は、不揮発性メモリ102であるバッテリーバックアップSRAM上に設けられ、フラッシュメモリの1つの消去単位領域内のデータを退避して記録するのに十分な大きさの容量を持つ消去ブロックバッファである。本実施の形態においては、消去単位領域と同容量の領域を有するエリアで構成している。この消去ブロックバッファ103は不揮発性メモリであるバッテリーバックアップSRAM上に構成されているので、任意のデータ単位でデータの書き込みが可能である。111はフラッシュメモリ101へのデータの書き込みを制御する書き込み制御手段、112は消去単位領域内のデータを消去ブロックバッファ103に待避させる待避手段、301はフラッシュメモリ101に対し消去単位領域の消去のための命令を出す消去命令手段である。302はフラッシュメモリ101に書き込みデータの書き込みを行う書き込み手段である。以下、書き込みデータとは、フラッシュメモリ101や不揮発性メモリ102等のメモリに対して新たに書き込むべきデータを意味し、又、書き込み要求に含まれる書き込みデータを特に書き込み要求データと呼ぶ。
202は、不揮発性メモリ102内のエリアであって、消去単位番号を記録する消去単位番号保持領域である。
図2は、この実施形態を実現する、具体的なシステムの概略を示す構成図である。181はプロセッサ、102はバッテリーバックアップSRAM、101はフラッシュメモリ、184は入出力インターフェース、185は主記憶としてのDRAMである。書き込み制御手段111、待避手段112、消去命令手段301、書き込み手段302のそれぞれは、プロセッサ上181でソフトウェアが動作することにより実現される。フラッシュメモリ101の消去単位領域内のデータの消去は、消去命令手段301から消去命令を受けたフラッシュメモリ101が、ハードウェア的に行う。この消去単位の具体的な消去は、フラッシュメモリ101が備えた消去手段(不図示)が行う。新たなデータ書き込みは、例えば、入出力インターフェース184から書き込み要求をプロセッサ181が受けることにより行われる。
以下、本実施の形態における、フラッシュメモリ101上のデータの書き換え動作について説明する。図3は、本実施の形態における情報処理装置が、フラッシュメモリ101上のデータの書き換えを行うフローチャートである。以下の各処理は、断りがない限り書き込み制御手段111が行う。
まず、S101において、フラッシュメモリ101へのデータの書き込み要求を受ける。この書き込み要求には、書き込むデータとしての書き込み要求データ、データを書き込むフラッシュメモリ上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
次に、S102において、消去単位の容量と書き込み要求領域から、書き込み要求領域を含む消去単位の番号と、書き込み要求領域が対応する消去単位内の位置を算出する。尚、書き込み要求領域はフラッシュメモリ101全体の相対的位置を特定するアドレスであり、消去単位内の位置は特定の消去単位内での相対的位置を特定するものである。
さらにS103において、書き込み要求データを、消去ブロックバッファ103内の領域であって、書き込み要求領域に対応した位置に書き込む。即ち、S102において算出した消去単位内の位置に対応する消去ブロックバッファ103内の位置に書き込まれる。
そして、S104において、待避手段112に待避指示を出す。この待避指示には、消去単位の番号と、書き込み要求領域が対応する消去単位内の位置についての情報が含まれている。この指示を受けた待避手段112は、S102において算出した消去単位番号の消去単位領域内のデータであって、S103において書き込まれた領域に対応する部分以外のデータである不変データを、消去ブロックバッファ103に書き込む。この明細書において、不変データとは、消去単位領域内のデータの内、書き込み要求データによって書き換えられないデータをいう。
続いてS105において、消去命令手段301に対して消去指示を出す。この消去指示には、フラッシュメモリ101の消去単位の番号が含まれている。この指示を受けた消去命令手段301は、フラッシュメモリ101の消去手段に対し、消去単位の番号が対応するフラッシュメモリ内の1つの消去単位を消去するように命令を出す。フラッシュメモリ101の消去手段による消去が完了すると、書き込み手段302が消去ブロックバッファ103に記憶されたデータを、消去されたフラッシュメモリ101内の消去単位領域に書き込む。
書き込み要求発生の度にS101〜S105の処理が実行される。
ここで、フラッシュメモリ101内のデータの消去からフラッシュメモリ101への書き込みまでの間に装置に対する電源断が発生した場合の復旧処理について説明する。不揮発性メモリ102上の消去ブロックバッファ103にフラッシュメモリ101への書き込みが完了していないデータがあるときに、電源入力後に、この消去ブロックバッファ103上のデータをフラッシュメモリ101に再度書き込む処理について説明する。
まず、通常の処理について説明する。
書き込み制御手段111は、S105において、フラッシュメモリ101の消去指示を出した後、この消去指示に含まれるフラッシュメモリ101の消去単位の番号を、不揮発性メモリ102内に設けられた消去単位番号保持領域202に記録する。
フラッシュメモリ101へのデータの書き込みが終了すると、書き込み制御手段111は消去単位番号保持領域202に記録された消去単位番号を無効にする。
次に、フラッシュメモリ101の消去からフラッシュメモリ101への書き込みまでの間に装置に対する電源断が発生した場合の、復旧処理について説明する。
電源断の発生及び電源入力後に、書き込み制御手段111は、不揮発性メモリ102内の消去単位番号保持領域202を確認する。消去単位番号保持領域202に有効な消去単位番号が存在している場合には、書き込みが終了していないと判断され、消去ブロックバッファ103に記録されているデータを、フラッシュメモリ101へ書き込む処理を行う。消去ブロックバッファ103に記録されているデータが書き込まれるフラッシュメモリ101内の消去単位の番号は、消去単位番号保持領域202に記録されている。その後、消去単位番号保持領域202に記憶された消去単位番号を無効にする。消去単位番号保持領域202に有効な消去単位番号が存在しない場合には、フラッシュメモリ101へ書き込む処理を行なわずに、そのまま復旧処理を終了する。
以上の処理により、装置に対する電源断が発生した場合の、復旧処理が可能となる。
以上のように、この実施の形態によれば、フラッシュメモリ101上の書き換えが行なわれる消去単位内のデータは不揮発性メモリ上の消去ブロックバッファ103領域に待避されているため、フラッシュメモリ上のデータの消去後、フラッシュメモリへの新たなデータの書き込みが完了する前に電源断等が発生しても、データが失われることがなく、フラッシュメモリ上の書き換えに関し、信頼性の高い情報処理装置を得ることができる。
尚、本実施の形態においては、S103で書き込みデータを消去ブロックバッファ103に書き込んだ後に、S104において不変データを待避させているが、この順番が逆であってもよい。又、待避手段112による待避を行った後に、書き込みデータを消去ブロックバッファ103に書き込む場合には、待避させるデータは不変データだけはなく、不変データを含んだ消去単位内の全データを待避させ、その後、待避させたデータに書き込みデータを上書きすればよい。
また、本実施の形態においては、S103で書き込みデータを消去ブロックバッファ103に書き込むこととしているが、書き込みデータの消去ブロックバッファ103への書き込みは、遅くとも、書き込み手段302が消去ブロックバッファ103に記憶されたデータをフラッシュメモリ101内の消去単位領域に書き込む前までに完了していれば良い。
さらに、本実施の形態ではS102において、消去単位の容量と書き込み要求領域から、書き込み要求領域を含む消去単位の番号と、書き込み要求領域が対応する消去単位内の位置を算出しているが、書き込み要求データにこれらデータを含めるようにすることも可能である。その場合には、S102の算出処理は省略される。
この実施の形態において、フラッシュメモリ101は、あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有するメモリの一例であり、フラッシュメモリ101の消去手段(不図示)は、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段の一例であり、バッテリーバックアップSRAM102は、任意のデータ単位でデータの書き込みが可能な不揮発性の消去ブロックバッファの一例である。また、書き込み制御手段111は、消去ブロックバッファに書き込みデータを書き込む書き込みデータ書き込み手段の一例であり、待避手段112は、不変データを消去ブロックバッファに書き込む待避手段の一例であり、書き込み手段302は、書き込みデータおよび不変データを消去単位領域に書き込むメモリ書き込み手段の一例である。
実施の形態2.
図4は、本発明の他の実施形態である、情報処理装置の概略を示す構成図である。図において、201はフラッシュメモリ101又は不揮発性メモリ102からデータを読み出す読み出し手段、202は不揮発性メモリ102内のエリアであって、消去単位番号を記録する消去単位番号保持領域である。他の構成は、図1において説明した構成の同一又は相当部であり、説明を省略する。読み出し手段201は、ソフトウエアがプロセッサ181上で動作することにより実現される。
尚、本実施の形態においては、特に、同一の消去単位領域へ、連続して書き込みデータを書き込む場合の動作について説明する。
本実施の形態において、メモリへのデータ書き込み時の動作を図5を用いて説明する。ここでメモリとは、フラッシュメモリ101と不揮発性メモリ102の双方を含む概念である。尚、以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まず、S201において、フラッシュメモリ101へのデータの書き込み要求を受ける。この要求の内容は、実施の形態1と同様である。
次に、S202において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。この消去単位の番号を求める方法は、実施の形態1と同様である。
続いて、S203において、消去単位番号保持領域202を参照し、消去単位番号保持領域202に消去単位番号の記録が存在するかを判定する。
消去番号の記録が存在しなければ、S204において、書き込みデータを消去ブロックバッファ103に書き込む。消去ブロックバッファ103への書き込み動作は、実施の形態1と同様である。
次に、S205において、待避手段112に対して待避指示を行なう。待避指示の内容は、実施の形態1と同様である。待避手段112は、S202で求めた番号のフラッシュメモリの消去単位から、不変データを消去ブロックバッファ103に書き込む。
続いて、S206において、S202において求めた消去単位番号を消去番号保持領域202に記録する。この後、フラッシュメモリ101にデータを書き込むことなく、メモリへのデータの書き込み処理を終了する。
S203において消去単位番号保持領域202に消去単位番号の記録が存在する場合には、S207において、S202で求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致するかを判定する。
判定により消去単位番号が異なる場合には、S208において、消去命令手段301に対し消去指示を行なう。消去指示の内容は実施の形態1と同様である。この指示を受けた消去命令手段301は、フラッシュメモリ101の消去手段に対し、消去単位の番号が対応するフラッシュメモリ内の1つの消去単位を消去するように命令を出す。フラッシュメモリ101の消去手段による消去が完了すると、書き込み手段302が消去ブロックバッファ103の内容を、フラッシュメモリ101内のこの消去単位の領域に書き込む。
続いて、消去単位番号の記録が存在しない場合と同様に、S204からS206の処理を行ない、書き込みデータの消去ブロックバッファへの書き込み、フラッシュメモリからのデータの退避、消去単位番号の記録を行なう。
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の手順で処理が実行される。以上の処理が書き込み要求が発生する度に実行される。
次に、メモリからのデータ読み出し時の動作について図6を用いて説明する。以下の各処理は、断りがない限り読み出し手段201の動作である。
まず、S211において読み出し要求を受ける。読み出し要求には、読み出し要求領域としてのフラッシュメモリ101のアドレスと読み出すデータの大きさに関する情報が含まれている。
次に、S212において、読み出し要求領域を含むフラッシュメモリの消去単位の番号を書き込み時と同様に求める。尚、読み出し要求領域とは、読み出すべきデータが記憶されているフラッシュメモリ101上のエリアであり、フラッシュメモリ101上の相対的位置を特定する。
続いて、S213において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在し、かつその消去単位番号がS212において求めたものと一致するかを判定する。
一致した場合には、読み出し領域のデータは消去ブロックバッファに保持されているので、S214において、消去ブロックバッファからデータを読み出す。
消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS212おいて求めたものと一致しない場合には、読み出し領域のデータは消去ブロックバッファに保持されていないので、S215において、フラッシュメモリからデータの読み出しを行なう。
以上のように本実施の形態によれば、フラッシュメモリの同一の消去単位領域へ続けて書き込みを行う場合、1回目のデータ書き込みデータを不揮発性メモリ上の消去ブロックバッファに書き込んだ後、フラッシュメモリに消去ブロックバッファ上のデータを書き込まず、さらに2回目の書き込みデータを消去ブロックバッファに記録されているデータに書き込みを行う。同一の消去単位領域への書き込みが更に続く場合は、この処理を続けて行う。この動作により、実施の形態1の奏する効果に加え、フラッシュメモリ上の同一の消去単位領域への連続した書き込みを一括して行なうことにより、フラッシュメモリ上のデータの消去回数を減らすことができ、フラッシュメモリの劣化を低減することが可能となる。
尚、本実施の形態においても、実施の形態1と同様に電源断時の復旧処理を行うことが可能である。この場合、書き込み未終了フラグとして、消去単位番号の記録を利用してもよい。これは、フラッシュメモリへの書き込みの後に、消去単位番号を無効にすることにより実現できる。
この実施の形態ではS205において、フラッシュメモリの消去単位から不変データを消去ブロックバッファ103に書き込む待避処理を行なっているが、この処理は遅くとも不変データをフラッシュメモリ101に書き込むまでに実行され完了していればよい。また、S204における書き込み要求データの消去ブロックバッファへの書き込みは、次回の書き込み要求の書き込み要求データを消去ブロックバッファに書き込むまでに実行すればよい。
実施の形態3.
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態2と同様であり、図4に示される。本実施形態の基本的動作は実施の形態2と同様である。本実施形態においては、フラッシュメモリからデータを待避させた後のステップとして、その消去単位のデータ消去を行う。
本実施の形態におけるメモリへのデータ書き込み時の動作を、図7を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まず、S301において、データの書き込み要求を受ける。書き込み要求の内容は実施の形態1と同様である。
次に、S302において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。消去単位の番号を求める動作については、実施の形態1と同様である。
続いて、S303において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
S303において消去単位番号保持領域202に消去番号の記録が存在しなければ、S304において、書き込み要求データを消去ブロックバッファ103に書き込む。
続いてS305において、待避手段112に対して待避指示を行なう。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、消去単位内の不変データを消去ブロックバッファ103に書き込むことにより待避させる。
さらにS306において、S302で求めた消去単位番号を、消去単位番号保持領域202に記録する。
次にS307において、消去命令手段301に対して消去指示を出す。消去指示には、S302で求めた消去単位番号の情報が含まれている。消去指示を受けた消去命令手段301は、S305における消去ブロックバッファへの待避が完了した消去単位領域内のデータを消去するように、命令を出す
S303において消去単位番号保持領域202に消去単位番号の記録が存在する場合には、S308において、S302で求めた消去単位番号が消去単位番号保持手段302に存在する記録と一致するかを判定する。
消去単位番号が異なる場合には、S309において、書き込み手段302に対し書き込み指示を行なう。この書き込み指示には、消去単位番号に関する情報が含まれる。書き込み指示を受けた書き込み手段302は、現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。フラッシュメモリ101の当該消去単位領域のデータは、以前の書き込み処理時(S307)にすでに消去されているため、すでに消去された消去単位領域に消去ブロックバッファ103のデータを書き込む書き込み処理のみを行なう。これ以降は消去番号の記録が存在しなかった場合と同様に、S304〜S307の処理を行う。
S308で消去単位番号が一致する場合には、書き込み要求データを書き込むべき消去単位領域内のデータは消去ブロックバッファに記録されているので、S310において、書き込み要求データを消去ブロックバッファ103へ書き込む。
尚、本実施の形態における読み出し時の動作は、実施の形態2の場合と同様である。
以上の処理が書き込み要求が発生する度に実行される。
この発明の実施の形態によれば、フラッシュメモリからデータを待避させた後にフラッシュメモリのデータを消去するので、消去ブロックバッファのデータをフラッシュメモリに書き込む際には、フラッシュメモリのデータを消去する処理を行う必要がない。フラッシュメモリの消去は、フラッシュメモリがハードウェア的に行うため、プロセッサが他の処理を平行して行うことができる。例えば、入出力インターフェースから主記憶装置へのデータの書き込みや、プロセッサ内の計算処理等を並列的に行うことができる。
一方、フラッシュメモリにデータを書き込む際にフラッシュメモリのデータを消去する場合には、プロセッサは書き込み要求をうけているので、プロセッサは消去の処理を待たなければならず、他の処理を平行して行うことができない。
以上のように、本実施の形態においては、フラッシュメモリからデータを待避させた後にフラッシュメモリのデータを消去するので、フラッシュメモリにデータを書き込む際にフラッシュメモリのデータを消去する必要がない。そのため、実施の形態2の奏する効果に加え、書き込み処理の時間を短縮することができる。又、フラッシュメモリの消去処理と平行してプロセッサの処理が可能となり、情報処理装置全体の処理速度の向上を図ることが可能となる。
実施の形態4.
図8は本発明の他の実施形態における情報処理装置の構成を示す図である。図において、402は任意のデータ単位で書き込み可能な不揮発性メモリ102上に構成され、書き込みデータを記録する書き込みバッファである。書き込みバッファ402は、書き込みデータを記録するためのものであり、不変データを記録することはない。403は書き込みバッファ管理領域である。書き込みバッファ管理領域403には、消去単位番号、消去単位内オフセットおよびデータサイズとが記憶される。他の構成は、図3における構成の同一もしくは相当部であり説明を省略する。 図9は、書き込みバッファ管理領域403に記録されているデータの内容を示す図である。書き込みバッファ管理領域403には、書き込みバッファ402に保持されたデータが書き込まれるべきフラッシュメモリ101上の消去単位番号と、この消去単位領域内の書き込み領域の位置を特定するオフセットと、書き込み領域の大きさに関するデータを保持する。消去単位番号の「−1」は、これ以上書き込みデータが存在しないことを意味する。ここでは、書き込み領域の大きさは一定になっているが、この大きさは個々のデータ毎に異なっていてもよい。
本実施の形態におけるメモリへの書き込み時の動作を、図10を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まず、S401において、データの書き込み要求を受ける。書き込み要求の内容は、実施の形態1と同様である。
次に、S402において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。この動作は、実施の形態1と同様である。
続いてS403において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
ここで、消去番号の記録が存在しなければ、S404において、書き込み制御手段111は、書き込み要求データを消去ブロックバッファ103に書き込む。
さらに、S405において、待避手段112に対して待避指示を行う。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、S402で算出された消去単位番号で特定される消去単位領域内の不変データを消去ブロックバッファ103に書き込む。
続いて、S406において、S402で求めた消去単位番号を消去単位番号保持領域202に記録する。
さらに、S407において、消去命令手段301に対して消去指示を出す。消去指示の内容は実施の形態2と同様である。消去指示を受けた消去命令手段301は、消去ブロックバッファ103へ待避された消去単位の消去を行なうように、フラッシュメモリ101に命令を出す。
S403において消去単位番号保持領域202に消去単位番号の記録が存在する場合には、S408において、S402で求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致するかを判定する。
S408において消去単位番号が異なる場合には、S409において、書き込みバッファ管理領域403を参照し、書き込みバッファ管理領域403に記録されている情報から、書き込み要求領域と同一の領域に書き込みを行なうデータが既に書き込みバッファ402に存在するかを判定する。この判定は、書き込みバッファ管理領域403に記憶されている消去単位番号及び消去単位内オフセットおよびサイズから把握することができる。換言すれば、S409においては、書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域に含まれるか否かを判定する。書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域に含まれる場合としては、例えば、書き込み要求領域で特定される領域と既に書き込みバッファ402に存在するデータの書き込み要求領域とが完全に同一の場合、及び書き込み要求領域で特定される領域が既に書き込みバッファ402に存在するデータの書き込み要求領域内に収まる場合の2つの場合が該当する。
S409において、書き込み要求領域と同一の領域に書き込みを行なうデータが書き込みバッファ402に存在しない場合には、さらにS410において書き込み制御手段111は、書き込み要求のデータを書き込むことができる領域が書き込みバッファ402に存在するかを、書き込みバッファ402の空き領域を調べることで判定する。空き領域の存在は、書き込みバッファ管理領域403に記録されている情報から知ることができる。本実施の形態では、最後の消去単位番号を−1としておくことで、空き領域の存在を記録する。最後が−1以外であれば、空き領域は存在しない。もちろん、書き込みバッファ402の容量と管理情報に含まれるサイズの情報から、空き領域の存在を求めてもよい。
書き込みバッファ402に空き領域がない場合には、S411において書き込み制御手段111は、書き込み手段302に対し書き込み指示を行なう。書き込み指示の内容は実施の形態1と同様である。書き込み指示を受けた書き込み手段302は、消去ブロックバッファ103に現在記録されているデータをフラッシュメモリ101に書き込む。
続いて、S404からS407の処理を、消去単位番号の記録が存在しない場合と同様に行なう。
S410で書き込みバッファに空き領域が存在した場合には、S412において、書き込みデータを書き込みバッファ402へ書き込む。
次にS413において、書き込みバッファ管理領域403に、S412で書き込んだ書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号とその中での位置を特定するオフセット、及び書き込みデータの大きさを記録する。書き込みバッファ管理領域403における管理情報と、書き込みバッファ402における書き込みデータの対応づけは、各エリアにおけるアドレス上の順序が同一になるように記録されることで行われる。尚、書き込みバッファ管理領域403に、書き込みデータが記録されている書き込みバッファ内のアドレスを記録することにより、各管理情報と書き込みデータの対応づけを行ってもよい。
S409で書き込み要求領域と同一の領域に書き込みを行なうデータが既に存在すると判定された場合には、S414において、書き込みデータを書き込みバッファの同一領域のデータが記録されているエリアに書き込む。
S408で、S402で算出した消去単位番号が消去単位番号保持領域202に存在する記録と一致すると判定された場合には、S415において、書き込み要求データを消去ブロックバッファに書き込む。書き込み要求データの消去ブロックバッファへの書き込み動作については実施の形態1と同様である。
次に、メモリからのデータ読み出し時の動作を図11を用いて説明する。以下の各処理は、断りがない限り読み出し手段201の動作である。
まずS451において、読み出し要求を受ける。この読み出し要求の内容は実施の形態2と同様である。
次にS452において、読み出し要求領域を含むフラッシュメモリの消去単位番号を求める。消去単位の番号を求める動作は実施の形態2と同様である。
続いてS453において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
消去単位番号の記録が存在しない場合には、S454において、書き込みバッファ管理領域403の管理情報を参照し、読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在するかを判定する。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在する場合には、S455において、その領域のデータを書き込みバッファ402から読み出す。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在しない場合には、S456において、読み出しデータをフラッシュメモリ101から読み出す。
S453で消去単位番号保持領域202に消去単位番号の記録が存在し、かつS452で求めた消去単位番号と一致する場合には、読み出し領域のデータは消去ブロックバッファ103に保持されているので、S457において、消去ブロックバッファ103から読み出しデータを読み出す。
以上の処理が読み出し要求が発生する度に実行される。
本実施の形態の情報処理装置によれば、不揮発メモリ102上に、消去ブロックバッファ103に加えて、書き込みデータを記録する書き込みバッファ402を設けているので、異なる消去単位領域に対する複数の書き込みデータを記録することができ、実施の形態3の奏する効果に加え、フラッシュメモリ101への書き込み回数をさらに低減でき、フラッシュメモリ101の劣化を低減することが可能となる。又、特にバッテリバックアップSRAMは、記録容量あたりの値段が高いこともあり、その効率的利用が強く求められているが、本実施の形態のように、消去ブロックバッファ103に加えて、不変データを記録せずに書き込みデータを記録するエリアとして書き込みバッファ402を設けることにより、複数の消去ブロックバッファを設ける場合に比較し、効率的に不揮発メモリ102を利用つつ、フラッシュメモリの劣化を大きく低減することが可能となる。
この実施の形態において、書き込みバッファ402は、不変データを記憶することなく書き込みデータを記憶する書き込みバッファの一例であり、書き込み制御手段111は、第1の消去単位領域に第1の書き込みデータを書き込むことを要求する第1の書き込み要求に対し、前記第1の書き込みデータを前記消去ブロックバッファに書き込む書き込みデータ書き込み手段、および第2の消去単位領域に第2の書き込みデータを書き込むことを要求する第2の書き込み要求に対して、前記第2の書き込みデータを前記書き込みバッファに書き込む書き込みバッファ書き込み手段の一例である。この実施の形態では、データ書き込み手段とバッファ書き込み手段の機能を書き込み制御手段111にて果たしている。待避手段112は、第1の消去単位領域に第1の書き込みデータを書き込むことを要求する第1の書き込み要求に対し、第1の消去単位領域内の不変データを前記消去ブロックバッファに書き込む待避手段の一例である。
実施の形態5.
図12は本実施の形態における情報処理装置の構成を示す図である。図において、501は書き込みバッファ402のデータを移動するバッファ移動手段である。他の構成は、既に説明した構成の同一もしくは相当部であり、説明を省略する。本実施形態の基本的動作は実施の形態4と同様であるが、バッファ移動手段501によって、書き込みバッファ402内の同一の消去単位領域に含まれるデータを、消去ブロックバッファ103に移動する処理を有する点で実施の形態4と相違する。
実施の形態5における書き込み時の動作を、図13および図14を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まずS501において、データの書き込み要求を受ける。書き込み要求の内容は実施の形態1と同様である。
次にS502において、書き込み要求領域が含まれるフラッシュメモリの消去単位の番号を求める。消去単位番号を求める動作は実施の形態1と同様である。
続いてS503において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
消去単位番号保持領域202に消去番号の記録が存在しなければ、S504において、書き込みデータを消去ブロックバッファ103に書き込む。
さらにS505において、待避手段112に対して待避指示を行なう。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、待避処理として不変データを消去ブロックバッファ103へ書き込む。
続いて、S506において、S502において求めた消去単位番号を消去単位番号保持領域202に記録する。
次にS507において、消去命令手段301に対して消去指示を出す。消去指示の内容は実施の形態1と同様である。消去指示を受けた消去命令手段301は、すでに消去ブロックバッファ103への待避が完了した消去単位領域内のデータを消去するようにフラッシュメモリ101に命令を出す。
S503で消去単位番号保持領域202に消去単位番号の記録が存在した場合には、S508において、S502において求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致するかを判定する。
S508において消去単位番号が異なる場合には、S509において、書き込みバッファ管理領域403を参照し、書き込み要求領域と同一の領域に書き込まれるデータが既に書き込みバッファに存在するかを判定する。
S509で書き込み要求領域と同一の領域に書き込まれるデータが書き込みバッファに存在しないと判定された場合には、S510の処理として、S502において求めた消去単位番号と同じ消去単位番号のデータが書き込みバッファ402に存在するかを書き込みバッファ管理領域403を参照して判定する。
S510で同じ消去単位番号のデータが書き込みバッファ402に存在する場合には、バッファデータ移動処理を行なうが、これについては後述する。
S510で同じ消去単位番号のデータが書き込みバッファ402に存在しない場合には、さらにS511において、書き込み要求データを書き込むことができる領域が書き込みバッファ402に存在するかを判定する。
S511において空き領域がないと判断した場合には、S512において書き込み制御手段111は、書き込み手段302に対し書き込み指示を行なう。書き込み指示を受けた書き込み手段302は、現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。
これ以降、S504〜S507の処理を行ない、消去単位番号の記録が存在しない場合と同一の処理を行なう。
S511で書き込みバッファ402に空き領域が存在すると判断した場合には、S513において書き込み制御手段111は、書き込みデータを書き込みバッファ402の空き領域へ書き込む。
S514において、書き込みバッファ管理領域に、管理情報として、消去単位番号とその中でのオフセット、及び書き込みデータの大きさを記録する。
S509で書き込み要求領域と同一の領域に書き込まれるデータが書き込みバッファに存在すると判定された場合には、S516において書き込み制御手段111は、書き込み要求領域と同一の領域に書き込まれるデータが存在するエリアに書き込み要求データを上書きする。
S508においてS502で算出した消去単位番号が消去単位番号保持領域202に存在する記録と一致すると判定された場合には、S517において、書き込み要求データの消去単位番号と同一の消去単位番号のデータが記憶されている消去ブロックバッファ103内のエリアに書き込み要求データを上書きする。
S510において、同じ消去単位番号のデータが書き込みバッファ402に存在する場合に行われる、バッファデータ移動処理の動作を図14を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まずS521において、消去ブロックバッファ103に現在登録されているデータをフラッシュメモリ101に書き込む。
次にS522において、書き込み要求データを消去ブロックバッファ103へ書き込む。
続いてS523において、バッファ移動手段501は書き込みバッファ402に記録されているデータの内、書き込み要求データの消去単位と同一の消去単位に含まれる全ての書き込みデータを、消去ブロックバッファ103へ移動する。書き込み要求データの書き込み要求領域と、既に書き込みバッファ402に記憶されている書き込みデータの書き込み要求領域とが異なる場合には、書き込み要求データ及び書き込みバッファ402に記憶されている書き込みデータがすべて消去ブロックバッファ103に記憶される。書き込み要求データの書き込み要求領域と、既に書き込みバッファ402に記憶されている書き込みデータの書き込み要求領域とが一部重複する場合には、重複する領域については書き込み要求データが優先的に消去ブロックバッファ103に書き込まれ、重複しない部分については書き込み要求データ及び書き込みバッファ402に記憶されている書き込みデータがそれぞれ消去ブロックバッファ103に書き込まれる。
さらにS524において、待避手段112に対して待避指示を行ない、待避指示を受けた待避手段112は、S523において消去ブロックバッファ103へ書き込まれた領域以外のデータである不変データを、フラッシュメモリの当該消去単位から待避する。
続いて、S525において消去単位番号を消去単位番号保持領域202に記録し、S526において、書き込みバッファ402から消去ブロックバッファ103へ移動に伴う書き込みバッファ管理領域403の更新を行う。
最後にS527において、消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301は消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。
以上の処理が書き込み要求が発生する度に実行される。
尚、実施の形態5における読み出し時の動作は、実施の形態4の場合と同一である。
この実施の形態の情報処理装置によれば、フラッシュメモリ101の同一消去単位領域に含まれる書き込みバッファ403上の書き込みデータ及び書き込み要求データを消去ブロックバッファ103にまとめることにより、書き込みバッファ402を効率よく使用することができるので、実施の形態4の効果に加え、フラッシュメモリ101への書き込み回数をより低減でき、フラッシュメモリ101の劣化を低減することができるという効果がある。
尚、本実施の形態において、書き込みデータの移動を、書き込み要求データの消去単位と同一の消去単位に含まれる書き込みデータ及び書き込み要求データではなく、書き込みバッファ402に記憶されている複数の書き込みデータを移動するようにしてもよい。即ち、書き込みバッファ402に記録されている書き込みデータであって、同一の消去単位に含まれる複数の書き込みデータを移動するようにしてもよい。
この場合、S510において、書き込み制御手段111は、書き込みバッファ管理領域403を参照し、書き込みバッファ402に記憶されている書き込みデータの一番多い消去単位を判定する。これは、書き込みバッファ管理領域403内の消去単位番号を参照することにより判定可能である。
S510において同一の消去単位に含まれる書き込みデータが書き込みバッファ402内に存在しない場合には、S511の処理に進む。
S510において同一の消去単位に含まれる書き込みデータが書き込みバッファ402内に存在する場合には、S510で書き込みデータの一番多い消去単位を判定し、S515において、書き込みバッファ402内に記憶されている複数の書き込みデータのバッファデータ移動処理を行う。
バッファデータ移動処理においては、S521、S522の処理を行わず、S510で一番多い消去単位として判定された消去単位を書き込み先として持つ書き込みデータをすべて書き込みバッファ402から消去ブロックバッファ103に移動する。書き込みデータの書き込み要求領域が互いに異なる場合には、書き込みバッファ402に記憶されている書き込みデータがすべて消去ブロックバッファ103に記憶される。書き込み要求データの書き込み要求領域が互いに一部重複する場合には、重複する領域について新しい書き込みデータが優先的に消去ブロックバッファ103に書き込まれる。消去ブロックバッファ103に書き込みが完了した後、移動したデータが記憶されていた書き込みバッファ402のエリアのデータが消去される。
その後、S525とS526の間において、書き込み要求データを書き込みバッファ402に書き込む。
S526において新たな書き込みデータに基づき管理情報の更新を行い、最後にS527の処理を行う。
以上のように、書き込みデータの一番多い消去単位の書き込みデータを消去ブロックバッファ103に移動することで、さらに効率的に不揮発性メモリ102を利用することが可能となる。
実施の形態6.
実施の形態6における情報処理装置の構成は、実施の形態5の場合と同一である。但し、書き込みバッファ管理領域403には、図9で示したものに加えて、書き込みバッファ402の領域の使用頻度に関する情報が記録される。ここでは、図15に示すように、バッファの領域を使用する使用頻度の情報の一例として、書き込みバッファ402へのデータ書き込みが行われる度に1ずつ加算され、書き込まれた順番を特定する書き込みの一連番号と、バッファ領域への書き込み回数とを記録するものとする。
本実施形態は、実施の形態5と基本的動作において同様であるが、特に、書き込みバッファ402へのの領域を使用する使用頻度に基づき、書き込みデータの移動を行うものである。
実施の形態6における書き込み時の動作を、図16および図17を用いて説明する。以下の各処理は、断りがない限り書き込み制御手段111の動作である。
まずS601において、データの書き込み要求を受け、さらにS602において、書き込み要求領域を含むフラッシュメモリの消去単位の番号を求める。書き込み要求の内容と消去単位の番号を求める動作は実施の形態1と同様である。
続いてS603において、消去単位番号保持領域202を参照し、消去単位番号の記録が存在するかを判定する。
消去番号の記録が存在しなければ、S604において、書き込み要求データを消去ブロックバッファ103に書き込む。
次にS605において、待避手段112に対して待避指示を行ない、待避指示を受けた待避手段112が消去単位内の不変データを消去ブロックバッファ103に書き込むことにより待避させる。
続いてS606において、S602において求めた消去単位番号を消去単位番号保持領域202に記録する。
さらにS607において、消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301がすでに消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。消去指示の内容は実施の形態1と同様である。
S603で消去単位番号の記録が存在する場合、S608において、S602で求めた消去単位番号が消去単位番号保持領域302に存在する記録と一致するかを判定する。
S608で消去単位番号が異なる場合には、S609において、書き込みバッファ管理領域403を参照し、書き込みバッファに書き込み要求領域と同一領域のデータが存在するかを判定する。
S609で同一領域のデータが存在しない場合には、S610の処理として、S602において求めた消去単位番号と同じ消去単位のデータが書き込みバッファに存在するかを、書き込みバッファ管理領域403を参照して判定する。
S610で同じ消去単位のデータが書き込みバッファに存在する場合には、S620においてバッファデータ移動処理(1)を行なうが、これは図14に示された実施の形態5のバッファデータ移動処理と同一であり、説明を省略する。
S610で同じ消去単位のデータが書き込みバッファに存在しない場合には、さらにS611において、書き込み制御手段111は書き込み要求のデータを書き込むことができる領域が書き込みバッファ402に存在するかを判定する。
S611で空き領域がない場合には、S612でバッファデータ移動処理(2)を行なうが、これについては後述する。
S611で書き込みバッファに空き領域が存在した場合には、S613において書き込み制御手段111は、書き込み要求データを書き込みバッファへ書き込む。
次に、S614において、書き込みバッファ管理領域403内のデータの書き込まれたバッファに対応する部分に、フラッシュメモリ上での位置を示す情報として、消去単位番号とその中でのオフセット、書き込まれた大きさを記録するとともに、バッファの領域の使用頻度の情報として、書き込みの一連番号と、バッファ書き込み回数の初期値として1を記録する。
S609で書き込み要求と同一領域のデータが存在すると判定された場合には、S630において、書き込み制御手段111は、書き込み要求データを書き込みバッファに書き込む。
続いてS631において、書き込みバッファ管理領域403内の、対応する領域についてのバッファの領域の使用頻度の情報として、書き込みの一連番号を記録し、バッファ書き込み回数を1加算したものに更新する。
S608においてS602で算出した消去単位番号が消去単位番号保持手段302に存在する記録と一致すると判定された場合には、S630において、書き込み要求データを消去ブロックバッファ103に書き込む。
S611で書き込みバッファに空き領域がない場合に行われる、バッファデータ移動処理(2)(S611)の動作を図17を用いて説明する。以下の動作は、断りがない限り書き込み制御手段111の動作である。
まず、S681で現在の消去ブロックバッファ103のデータをフラッシュメモリ101に書き込む。
S682において、書き込みバッファ管理領域403を検索し、使用頻度の低い書き込みバッファの領域を選択する。使用頻度の判定は、書き込みバッファ管理領域403内の書き込みの一連番号および書き込み回数を用いて行ない、一連番号が最も小さく、かつ書き込み回数が最も少ない領域があれば、その領域を選択する。一連番号が最小の領域と、書き込み回数が最少の領域が一致しない場合には、一連番号が小さい順に書き込み回数を調べていき、書き込み回数が最少のものを選択する。尚、書き込み回数が最少のものではなく、一連番号が最小のものを選択してもよい。
S683においては、S682で選択された書き込みバッファのデータを消去ブロックバッファへ103移動する。
続いてS684において、書き込み要求データを、消去ブロックバッファ103へ移動されたデータが記録されていた書き込みバッファ内の領域へ書き込む。
次にS685において、消去ブロックバッファ103へ移動されたデータを含むフラッシュメモリ101の消去単位について、待避手段301に対し待避指示を行なう。待避指示をうけた待避手段301は、待避指示に従い、消去単位の不変データを消去ブロックバッファ103へ書き込むことにより待避させる。
さらにS686において、S685で待避された消去単位番号を消去単位番号保持領域202に記録する。
続いてS687において、書き込みバッファ管理領域403の、書き込みバッファ402から消去ブロックバッファ103へ移動されたエリアに対応する部分を、新たに書き込まれたデータに対応するように更新する。
最後にS688において消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301は、消去ブロックバッファ103へ待避された消去単位の消去を行なうようにフラッシュメモリ101に命令を出す。
以上の処理が書き込み要求が発生する度に実行される。
尚、実施の形態6における読み出し時の動作は、実施の形態4の場合と同一である。
以上のように、本実施の形態の情報処理装置によれば、書き込みバッファ上で使用頻度の低い領域を先にフラッシュメモリに書き込むことにより、書き込みバッファを効率よく使用することができるので、実施の形態5の効果に加え、フラッシュメモリへの書き込み回数をさらに低減でき、フラッシュメモリの劣化を低減することができるという効果がある。
実施の形態7.
図19は発明の実施の形態7における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号領域202内の値と同じ値が記録される消去単位番号確認領域、611は情報処理装置の起動時に実行され、消去単位番号領域202,および消去単位番号確認領域601内のデータを元に、消去ブロックバッファ103の内容をフラッシュメモリ101に書き戻す復旧手段である。他の構成は、図1において説明した構成の同一又は相当部であり、説明を省略する。
本実施の形態において、メモリへのデータ書き込み時の動作を図20を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。図20において、S701、S702、S704、S705、S707は実施の形態1の処理(図3のS101、S102、S103、S104、S105)と同一であるので説明を省略する。
この実施の形態ではS703、S706、S708の処理を有する点で相違するため、この点を中心に説明する。
S701にて書き込み要求を受けた後、S702においてフラッシュメモリ101上の消去単位番号を求める。
続いて、S703にてS702において求められた消去単位番号を消去単位番号保持領域202に書き込む。
その後、S704で消去ブロックバッファ103へ書き込み要求データを書き込み、S705で待避手段112に待避指示を出す。
続いて、S706にてS702において求められた消去単位番号を消去単位番号確認領域601に書き込む。これにより、消去単位番号保持領域202および消去単位番号確認領域601の値が同一の場合、消去ブロックバッファ103への書き込みは全て完了したことを示すことになる。
次に、S707にて消去命令手段301に対して消去指示を出した後、書き込み手段302に書き込み指示を出す。
続いて、S708にて消去単位番号保持領域202と消去単位番号確認領域601の内容をクリアする。これにより、消去ブロックバッファ601にはデータが残っていないことを示す。
以上がメモリへのデータ書き込み時の動作である。
次に、情報処理装置の起動時に実行される復旧手段611の動作を図21を用いて説明する。
復旧手段611はまず、S781において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いてS782にて、消去単位番号保持領域202内と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
番号が存在しない場合、消去ブロックバッファにはデータがないので、復旧手段611の処理を終了する。
S782にて、番号が存在する場合、S783にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
値が同一な場合、メモリへのデータ書き込み時において、消去ブロックバッファ103の内容をフラッシュメモリ101に書き込む最中、即ち図20において、S706からS708の間に電源断が発生し、情報処理装置が再起動されたことになるので、復旧手段611はS784にて、消去命令手段301に対し消去指示を出した後、書き込み手段302に書き込み指示を出し、消去ブロックバッファ103の内容をフラッシュメモリ101に書き込む。この消去指示および書き込み指示の内容は、メモリへのデータ書き込み時の動作(図20)のS707と同様である。
値が同一でない場合、消去ブロックバッファにデータを書き込んでいる最中、即ち図20においてS703からS705の間に電源断が発生し、情報処理装置が再起動されたことになり、消去ブロックバッファ103内のデータは途中までの書き込みデータしか存在しないので、復旧手段611はS785にて、情報処理装置にエラー通知を行う。これにより情報処理装置は書き込み途中の電源断を検出することができる。
S784またはS785の処理が終了すると、復旧手段611はS786にて、消去単位番号保持領域202および消去単位番号確認領域601をクリアする。これは、S784経由の場合、消去ブロックバッファへの書き込みが完了したことを意味し、S785経由の場合はエラー通知にて、消去ブロックバッファのエラーを通知したので、再度消去ブロックバッファを利用可能状態にするために実施する。
以上が復旧手段611の動作である。
以上のように、この実施の形態によれば、メモリへのデータ書き込み時において、消去ブロックバッファへのデータ書き込み前に消去番号保持領域に消去単位番号を書き込み、待避手段に待避指示を出した後に消去単位番号確認領域に消去番号を格納するようにしたので、電源断の復旧時に書き込み要求処理中に電源断が発生したかを検知することができる情報処理装置を得ることができる。
さらに、不揮発性メモリが電池などでデータの内容を保持するようなメモリの場合において、電源断後の電池の電圧降下により、不揮発性メモリの内容が不定になった場合でも、復旧手段に消去番号保持領域および消去番号確認領域内の値をチェックするようにしたので、不揮発性メモリの内容が不安定になっているかを検知することができる情報処理装置を得ることができる。
尚、本実施の形態においては、S785にてエラー通知の後、S786を処理するようにしているが、S785の処理終了後、復旧手段611を終了させ、情報処理装置の再起動時に再度エラー通知させても構わない。また、消去単位番号確認領域に書き込む値を消去単位番号保持領域の値と同一のものとしているが、消去単位番号保持領域の値と伴って変化する値、例えば、消去単位番号保持領域の値のNOT値を設定し、復旧手段611のS783にて消去単位番号保持領域の値と消去番号確認領域の値のNOT値が等しいかでチェックしてもよい。
また、復旧手段611は情報処理押す値の再起動時に実行されると記載しているが、復旧手段611を書き込み要求時に実行してもよい。
実施の形態8.
図22は発明の実施の形態8における情報処理装置の概略を示す構成図である。図において、602は不揮発性メモリ102内のエリアであって、消去ブロックバッファ103の内容が正しいことを示すチェック値を格納する消去ブロックバッファ確認領域である。他の構成は、図19において説明した構成の同一又は相当部であり、説明を省略する。
本実施の形態において、メモリへのデータ書き込み時の動作を図23を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。図23において、S801〜S806、S808、S809は実施の形態7の処理(図20のS701〜S706、S707、S708)と同一であるので説明を省略する。
この実施の形態ではS807の処理を有する点で相違するため、この点を中心に説明する。
S801〜S806の後、S807にて消去ブロックバッファ内のデータが有効であるか否かのチェックに用いる値を消去ブロックバッファ確認領域602に書き込む。この値は消去ブロックバッファ内に書き込まれているデータが正しいか否かをチェック際に用いられるものであり、消去ブロックバッファ内のデータ値をすべて加算したチェックサム値などが入る。
S807の後、S808、S809の処理を実行する。
以上がメモリへのデータ書き込み時の動作である。
次に、情報処理装置の起動時に実行される復旧手段611の動作を図24を用いて説明する。図24において、S881〜S883、S886〜S888は実施の形態7の処理(図21のS781〜S783、S784〜S786)と同一であるので説明を省略する。
この実施の形態ではS884、S885の処理を有する点で相違するため、この点を中心に説明する。
S881〜S883を実施し、S883にて、消去単位番号保持領域202の内の値と消去単位番号確認領域601の値が同一である場合、S884に進む。
S884では、消去ブロックバッファ103内のデータをチェックし、消去ブロックバッファ確認領域602の値と比較する。即ち図23でのS807での処理と同様の規則で消去ブロックバッファ103内のデータを計算することで得られる値と、消去ブロックバッファ確認領域602の値とを比較する。通常、両者の値は同一値になるが、消去ブロックバッファに本発明の手段以外の操作によりデータが書きまれたり、消去ブロックバッファ103が使用している不揮発性メモリが故障した場合には両者の値は一致しない。
両者の値が一致しなければ、S885にて値が妥当でないと判断する。
S885にて値が妥当でないと判断された場合、S886に進み情報処理装置にエラー通知を行う。そして、S889にて消去単位番号保持領域202と消去単位番号確認領域601の内容をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
S885にて値が妥当であると判断した場合、S887、S888の処理を実行する。
以上が復旧手段611の動作である。
以上のように、この実施の形態によれば、消去ブロックバッファ内のデータが正しいことを示す値を保持する消去ブロックバッファ確認領域を備えるようにしたので、消去ブロックバッファを保持している不揮発性メモリが故障し、消去ブロックバッファ内のデータが不正になっても、情報処理装置がそれを検出することができる。
さらに、消去ブロックバッファに他手段から不正なデータ書き込みがあっても、それを検出することができる。
実施の形態9.
図25は発明の実施の形態9における情報処理装置の概略を示す構成図である。図において、603は不揮発性メモリ102内のエリアであって、消去ブロックバッファ103およびフラッシュメモリ101に対する書き込みを禁止または許可することを意味する値を格納する書き込み禁止フラグ領域である。また図において、612は書き込み禁止フラグ領域603に書き込み許可を意味する値を書き込む書き込み許可指示手段、613は書き込み禁止フラグ領域603に書き込み禁止を意味する値を書き込む書き込み禁止指示手段である。他の構成は図4において説明した構成の同一または相当部であり、説明を省略する。
本実施の形態において、メモリへのデータ書き込み時の動作を図26を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。図26において、S901、S904〜911は実施の形態2の処理(図5のS201、S202〜209)と同一であるので説明を省略する。
この実施の形態ではS902、S903の処理を有する点で相違するため、この点を中心に説明する。
まず、S901にてデータの書き込み要求を受けた後、S902にて書き込み禁止フラグ領域をチェックし、その領域の値が書き込み禁止を意味する値になっているかをチェックする。もし、値が書き込み禁止を意味する値になっていた場合、S903に進み、情報処理装置にエラー通知を行い処理を終了する。これにより、書き込み禁止が指定されている限り、消去ブロックバッファ103およびフラッシュメモリ101にデータ書き込みは発生しない。
S902にて書き込み禁止フラグ領域の値が書き込み禁止を意味する値でない場合、S904に進む。S904以降の処理は実施の形態2と同様である。
以上がメモリへのデータ書き込み時の動作である。
次に、書き込み許可指示手段612の動作について図27を用いて説明する。
書き込み許可指示手段612は、書き込み許可指示を受けるとS952にて書き込み禁止フラグ領域603に書き込み許可を意味する値を書き込み、処理を終了する。これにより、以降のメモリへのデータ書き込み時に、データを書き込むことが可能になる。
以上が書き込み許可指示手段612の動作である。
次に、書き込み禁止指示手段613の動作を図28を用いて説明する。
まず、S982において、消去単位番号保持領域603の内容を参照し、消去単位番号の記録が存在するか判定する。存在しない場合、S985へ進む。
S982において、消去単位番号保持領域603に消去単位番号の記録が存在する場合、消去ブロックバッファにデータが残っているので、これをフラッシュメモリ101に書き戻す処理を行う。まず、S983において、消去命令手段301に対し消去指示を出した後、書き込み手段302に書き込み指示を出し、消去ブロックバッファ103の内容をフラッシュメモリ101に書き込む。この消去指示および書き込み指示の内容は、実施の形態7におけるデータ書き込み時の動作(図23)のS808の処理と同様である。続いて、S984にて消去単位番号保持領域202をクリアし、消去ブロックバッファにデータが存在しないことを示す。
次に、S985にて、書き込み禁止フラグ領域603に書き込み禁止を意味する値を書き込む。これにより、以降のメモリへのデータ書き込み時に、データを書き込むことを抑制することが可能となる。
以上が書き込み禁止指示手段613の動作である。
以上のように、この実施の形態によれば、書き込み禁止フラグ領域を設け、書き込み許可指示手段において、書き込みを許可する値を設定し、書き込み禁止手段において書き込みを禁止する値を設定し、書き込み制御手段は書き込み禁止フラグ領域の値が書き込み許可を示すときのみ書き込みを実施するようにしたので、データの書き込みを抑制する情報処理装置を得ることができる。
また、書き込み禁止指示時に、消去ブロックバッファの内容をフラッシュメモリに書き込むようにし、書き込み禁止状態では不揮発性メモリにデータが残らないようにしたので、不揮発性メモリが電池などでデータの内容を保持するようなメモリの場合において、電源断後の電池の電圧降下による不揮発性メモリ内のデータ破壊においても、データが消去されないようにすることができる。
実施の形態10.
図29は実施の形態10における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号保持領域202内の値と同じ値が記録される消去単位番号確認領域、611は情報処理装置の起動時に実行され、消去単位番号保持領域202, および消去単位番号確認領域601内のデータを元に、消去ブロックバッファ103の内容をフラッシュメモリ101に書き戻す復旧手段である。他の構成は図4において説明した構成の同一または相当部であり、説明を省略する。
本実施の形態において、メモリへのデータ書き込み時の動作を図30を用いて説明する。以下の各処理は、断りのない限り書き込み制御手段111の動作である。図30において、S1001〜S1003、S1005、S1006、S1008、S1009、S1011は実施の形態2の処理(図5のS201〜S203、S204、S205、S207、S208、S209)と同一であるので説明を省略する。
この実施の形態ではS1004、S1007、S1010の処理を有する点で相違するため、この点を中心に説明する。
S1001で書き込み要求を受け、S1002で書き込み要求領域を含むフラッシュメモリ101上の消去単位番号を求め、S1003で消去単位番号保持領域202を参照し、消去単位番号保持領域202に消去単位番号の記録が存在するかを判定する。
消去単位番号の記録が存在しなければ、S1004にてS1002にて求められた消去単位番号を消去単位番号保持領域202に書き込む。続いて、S1005で書き込みデータを消去ブロックバッファ103に書き込み、S1006で待避手段112に対して待避指示を行う。待避手段112は、S1002で求めた番号のフラッシュメモリの消去単位領域から、不変データを消去ブロックバッファ103に書き込む。
続いて、S1007にて、S1002において求められた消去単位番号を消去単位番号確認領域601に書き込む。これにより、消去単位番号保持領域202および消去単位番号確認領域601の値が同一の場合、消去ブロックバッファ103への書き込みは全て完了したことを示すことになる。S1007の処理が終了すると、フラッシュメモリ101にデータを書き込むことなく、メモリへのデータ書き込み処理を終了する。
S1003において、消去単位番号保持領域202に消去単位番号の記録が存在する場合には、S1008、S1009により消去ブロックバッファ103の内容をフラッシュメモリ101内に書き込んだ後、S1010にて消去単位番号保持領域202および消去単位番号確認領域601の内容をクリアする。即ち、消去単位番号保持領域202および消去単位番号確認領域601がクリアされているということは消去ブロックバッファ103にデータがないことを示す。
続いて、消去単位番号の記録が存在しない場合と同様に、S1004からS1007の処理を行い、消去単位番号保持領域への消去単位番号の設定、書き込みデータの消去ブロックバッファへの書き込み、フラッシュメモリからのデータの待避、消去単位番号確認領域への消去単位番号の設定を行う。
S1008で、S1002で求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致する場合には、S1011において、書き込み要求データを消去ブロックバッファ103へ書き込む。
以上がメモリへのデータ書き込み時の動作である。
次に、情報処理装置の起動時に実行される復旧手段611の動作を図31を用いて説明する。
復旧手段はまず、S1051において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いてS1052にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
番号が存在しない場合、消去ブロックバッファにはデータがないので、復旧手段の処理を終了する。
S1052にて、番号が存在する場合、S1053にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かを判定する。
値が同一な場合、消去ブロックバッファにはデータが残っていることを示すので、復旧手段611はS1054にて、消去命令手段301に対し消去指示を出した後、書き込み手段302に書き込み指示を出し、消去ブロックバッファ103の内容をフラッシュメモリ101に書き込む。この消去指示および書き込み指示の内容は、実施の形態7におけるデータ書き込み時の動作(図23)のS808の処理と同様である。
値が同一でない場合、まだ消去ブロックバッファの内容が完成していない、即ち図30において、S1005からS1007の間に電源断が発生し、情報処理装置が再起動されたことになり、消去ブロックバッファ103内のデータは途中までの書き込みデータしか存在しないので、復旧手段611はS1055にて、情報処理装置にエラー通知を行う。これにより、情報処理装置は書き込み途中の電源断を検出することができる。
S1054またはS1055の処理が終了すると、復旧手段611はS1056にて、消去単位番号保持領域202および消去単位番号確認領域601をクリアする。これは、S1054経由の場合、消去ブロックバッファへの書き込みが完了したことを意味し、S1055経由の場合はエラー通知にて、消去ブロックバッファのエラーを通知したので、再度消去ブロックバッファを利用可能状態にするために実施される。
以上が復旧手段611の動作である。
以上のように、この実施の形態によれば、メモリへのデータ書き込み時において、消去ブロックバッファへのデータ書き込み前に消去番号保持領域消去単位番号を書き込み、待避手段に待避指示を出した後に消去単位番号確認領域に消去単位番号を格納するようにしたので、電源断の復旧時に書き込み要求処理中に電源断が発生したかを検知することができる情報処理装置を得ることができる。
さらに、復旧時に消去ブロックバッファの内容をフラッシュメモリに書き戻すようにしたので、復旧後に、データの書き込みを行わない限り、データは全てフラッシュメモリ上に存在し、電池等でバックアップする不揮発性メモリを消去ブロックバッファに使うような場合、電源断後の電圧降下による不揮発性メモリ内の内容が不正になることによる、データ破壊を防ぐことができる。
実施の形態11.
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態10と同様であり、図29に示される。本実施の形態の基本動作は復旧手段611の処理動作以外は実施の形態10と同じである。
本実施の形態における復旧手段611の動作を図32を用いて説明する。
復旧手段はまず、S1101において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いて、S1102において、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するか判定する。
番号が存在しない場合、消去ブロックバッファにはデータがないので、復旧手段の処理を終了する。
S1102にて番号が存在する場合、S1103にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かを判定する。値が同一な場合、消去ブロックバッファにはデータが残っていることを意味し、処理を終了する。
値が同一でない場合、消去ブロックバッファ103内のデータは途中までの書き込みデータしか存在しないので、復旧手段611はS1104にて、情報処理装置にエラー通知を行う。これにより、情報処理装置は書き込み途中の電源断を検出することができる。続いて、S1105にて、再度消去ブロックバッファを利用可能状態にするため、消去単位番号保持領域202および消去単位番号確認領域601の内容をクリアする。
以上が復旧手段611の動作である。
以上のように、この実施の形態によれば、復旧時に消去単位番号保持領域の内容と消去単位番号確認領域の内容が一致していた場合はなにもせず、一致していない場合のみエラー通知および消去単位番号保持領域・消去単位番号確認領域のクリアを行うようにしたので、消去ブロックバッファに内容が残っている場合の復旧処理を速くすることができる。
実施の形態12.
図33は、実施の形態11における情報処理装置の概略を示す構成図である。図において、601は不揮発性メモリ102内のエリアであって、消去単位番号保持領域202内の値と同じ値が記録される消去単位番号確認領域、604は消去ブロックバッファを一定サイズ毎に区切り、各区域内のデータが正しいことを示すチェック値が格納された消去ブロックバッファ管理領域である。
また図において、611は情報処理装置の起動時に実行され、消去単位番号領域202、および消去単位番号確認領域611、および消去ブロックバッファ管理領域604内のデータを元に、消去ブロックバッファ103の内容をフラッシュメモリ101に書き戻す復旧手段であり、614は書き込み制御手段111および待避手段112からの書き込み指示により、書き込みデータを消去ブロックバッファに書き込むとともに、書き込んだ領域に対応するチェック値を消去ブロックバッファ管理領域604に書き込む消去ブロックバッファ書き込み手段である。これ以外の構成については、図4と同様である。
次に、消去ブロックバッファ管理領域604の構造を図34を用いて説明する。消去ブロックバッファ管理領域604は消去ブロックバッファ103を一定サイズ、例えば4Kバイト毎に区切り、各区域に対して、その区域内のデータチェックに用いる値、例えば区域内のデータをすべて加算したチェックサム値などが入る。
図34の例では、書き込み領域1のデータチェック値(チェックサム値)が「0x12345678」、書き込み領域2のデータチェック値(チェックサム値)が「0x789a123」、書き込み領域3のデータチェック値(チェックサム値)が「0xa1b8901」となっている(0xは16進数を示す)。書き込み領域1、書き込み領域2、書き込み領域3は消去ブロックバッファ103内の一定サイズの区域を示す。
消去ブロックバッファ書き込み手段614は、書き込み領域1への書き込みがあった場合、消去ブロックバッファ103にデータを書き込むとともに、消去ブロックバッファ管理領域の書き込み領域1に対応する領域、即ち図34において、「0x12345678」が格納されている領域に書き込み領域1のデータチェック値を書き込む。
次に本実施の形態におけるメモリへのデータ書き込み時の動作を図35を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。図35において、S1201〜S1203、S1204、S1207〜S1210は実施の形態10の処理(図29のS1001〜S1003、S1004、S1007〜S1010)と同一であるので説明を省略する。
この実施の形態ではS1205、S1206、S1211の処理を有する点で相違するため、この点を中心に説明する。
S1201〜S1204までを実施の形態10と同様に実行する。
そして、S1204を実行した後、S1205において書き込みデータを消去ブロックバッファに書き込むため消去ブロックバッファ書き込み手段614に指示を行う。この指示には、書き込みデータの消去ブロックバッファ103上の位置およびサイズおよび書き込みデータが含まれる。消去ブロックバッファ書き込み手段614の具体的な処理内容については後述する。
次に、S1206において、待避手段112に対して待避指示を行う。待避手段112の処理内容については後述する。
続いて、S1207でS1202において求められた消去単位番号を消去単位番号確認領域601に書き込む。S1207の処理が終了すると、フラッシュメモリ101にデータを書き込むことなく、メモリへのデータ書き込み処理を終了する。
S1208で、S1202で求めた消去単位番号が消去単位番号保持領域202に存在する記録と一致する場合には、S1211において消去ブロックバッファ書き込み手段に指示し、書き込み要求データを消去ブロックバッファ103へ書き込む。この指示には、書き込みデータの消去ブロックバッファ103上の位置およびサイズおよび書き込みデータが含まれる。消去ブロックバッファ書き込み手段614の具体的な処理内容については後述する。
以上がメモリへのデータ書き込み時の動作である。
次に、フラッシュメモリ101内の不変データを消去ブロックバッファ103に書き込む待避手段112の動作を、図36を用いて説明する。
待避手段112は、まずS1231において書き込み要求データが含まれるフラッシュメモリ101内の消去単位領域の先頭から、書き込み要求データが含まれる領域の先頭までのデータをフラッシュメモリ101から読み出し、消去ブロックバッファ書き込み手段614に指示し、読み出したデータを消去ブロックバッファ103に書き込む。この時、消去ブロックバッファ書き込み手段614への指示には、消去単位領域の先頭アドレス、消去単位領域の先頭アドレスから書き込み要求領域の先頭までのサイズ、およびフラッシュメモリ101から読み出したデータが含まれる。
次に待避手段112はS1232において、書き込み要求データが含まれるフラッシュメモリ101内の消去単位領域の書き込み要求領域の最後から消去単位領域の最後までのデータをフラッシュメモリ101から読み出し、消去ブロックバッファ書き込み手段614に指示し、読み出したデータを消去ブロックバッファ103に書き込む。この時、消去ブロックバッファ書き込み手段614への指示には、消去単位領域内の書き込み要求領域の最後方アドレス、消去単位領域内の書き込み要求領域の最後方アドレスから消去単位領域の最後方アドレスまでのサイズ、およびフラッシュメモリ101から読み出したデータが含まれる。
以上が、待避手段112の動作である。これにより、消去単位領域内の不変データが消去ブロックバッファ103に書き込まれる。
次に、消去ブロックバッファ103にデータを書き込む消去ブロックバッファ書き込み手段614の動作を図37を用いて説明する。
まず、S1251において、消去ブロックバッファ103への書き込み要求を受ける。この書き込み要求には、書き込むデータとしての書き込み要求データ、データを書き込む消去ブロックバッファ103上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
次にS1252において、書き込み要求データを消去ブロックバッファ管理領域で管理するサイズに分割する。例えば、管理するサイズの単位が1000バイトで、書き込み要求データが消去ブロックバッファの先頭からのオフセットで100〜2099のところまでを占める場合、書き込み要求データは、消去ブロックバッファの先頭からのオフセットで、100〜999、1000〜1999, 2000〜2099の3つに分割される。これは、書き込み要求領域から見たオフセットでは、0〜899, 900〜1899, 1900〜1999の領域となる。以降、この分割された領域を先頭から順に処理していく。即ち、まず100〜999の領域、次に1000〜1999の領域、2000〜2099の領域が処理されていく。
次にS1253において、消去ブロックバッファに分割された書き込み要求データを書き込む。この時、書き込み要求データ以外の領域、例えば、100〜999に対する書き込みの場合の、0〜99の部分に対する書き込みは実施しない。
続いてS1254において、書き込んだ領域に対するチェック値を求め、それを消去ブロックバッファ管理領域の対応するチェック値領域に書き込む。例えば、100〜999までの書き込みをS1253にて行った場合、S1254は図34の書き込み領域1のデータチェック値に消去ブロックバッファ103内のオフセット0〜999までのデータチェック値を書き込む。このデータチェック値は対応する領域内のデータが正しいか否かをチェックする基準値として用いられるものであり、領域内のデータ値を全て加算したチェックサム値などが入る。
次にS1255において、書き込み要求データが全て消去ブロックバッファに書き込まれたかをチェックする。S1255において、まだ書き込み要求データがすべて書き込まれていない場合は、次の分割された書き込み要求領域、即ち100〜999に対する書き込みを行っていた場合は、1000〜1999までの領域に対し、S1253およびS1254の処理を行う。
以上が消去ブロックバッファ書き込み手段の動作である。
次に、情報処理装置の起動時に実行される復旧手段611の動作を図38を用いて説明する。
復旧手段はまず、S1281において、消去番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いて、S1282にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
S1281で番号が存在しない場合、消去ブロックバッファにはデータがないので、復旧手段の処理を終了する。
S1282で番号が存在する場合、S1283にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
S1283で値が同一でない場合、S1287に進み、情報処理装置にエラー通知を行う。これにより情報処理装置は書き込み途中の電源断を検出することができる。その後、S1288にて、消去単位番号保持領域202および消去単位番号確認領域601をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
S1283で消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一である場合、S1284に進む。
S1284では、消去ブロックバッファ管理領域604内の各書き込み領域のデータチェック値を読み出す。また、対応する消去ブロックバッファ103内の領域の値を算出する(この算出規則は書き込み領域のデータチェック値の算出規則と同様の規則にて行う、例えばデータチェック値がチェックサム値であれば、データの合計値を算出する)。そして、消去ブロックバッファ管理領域604内の各書き込み領域のデータチェック値と消去ブロックバッファ103内の領域の計算値とを比較する。
両者の値が一致すれば、消去ブロックバッファ103のデータが妥当であると判定する。消去ブロックバッファ内の領域のデータが妥当でない場合、S1287に進み情報処理装置にエラー通知を行う。これにより、本発明の手段以外の操作により消去ブロックバッファ103にデータが書き込まれたり、消去ブロックバッファ103が使用している不揮発性メモリが故障した場合のエラーを検出することができる。そして、S1288にて消去単位番号保持領域202と消去単位番号確認領域601の内容をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
S1285にて、消去ブロックバッファ管理領域604内の値が妥当であると判断した場合、S1286に進む。S1286では、消去ブロックバッファ内のデータチェックが最終領域まで達したかを判定する。最終領域まで達していない場合、次の領域へ進み、S1284〜S1286の処理を続行する。
S1286にて、消去ブロックバッファ内の最終領域まで到達した場合、処理を終了する。これにより、復旧後、消去ブロックバッファ内のデータは正しいことがわかる。
以上のように、この実施の形態によれば、消去ブロックバッファ内を一定のサイズに分割し、個々の領域に対するデータチェック値を格納する消去ブロックバッファ管理領域を設けたので、消去ブロックバッファを保持している不揮発性メモリが故障し、消去ブロックバッファ内のデータが不正になっても、情報処理装置がそれを検出することができる。
さらに、消去ブロックバッファ内を一定サイズに分割したので、消去ブロックバッファに格納されている消去単位領域と同一の領域に対する書き込み要求があった場合、その書き込み要求領域に付随する領域のみデータチェック値を更新すればよく、消去ブロックバッファ全体のデータチェック値を再計算する必要がないので、メモリへのデータ書き込み処理が速くなる。
実施の形態13.
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、消去ブロックバッファ管理領域604の構造と消去ブロックバッファ書き込み手段614および復旧手段611の動作以外は実施の形態12と同様である。
図39は本実施の形態における消去ブロックバッファ管理領域604の構造である。本実施の形態では、消去ブロックバッファを任意のサイズで管理するため、消去ブロックバッファ管理領域には領域を示す情報として、消去ブロックバッファ内のオフセット値、領域のサイズ、データチェック値の3つのデータが保持される。図において、「−1」となっているのは、領域情報が格納されていないことを示す。
本実施の形態における消去ブロックバッファ書き込み手段614の動作を図40を用いて説明する。
まず、S1301にて、消去ブロックバッファ103への書き込み要求を受ける。この書き込み要求には、書き込みデータとしての書き込み要求データ、データを書き込み消去ブロックバッファ103上のアドレスを特定する書き込み要求領域、そしてデータの大きさの情報が含まれている。
続いて、S1302において、書き込み要求データを消去ブロックバッファに103に書き込む。
次に、S1303において、消去ブロックバッファ管理領域604を検索する。
S1304において、S1301で受けた書き込み要求の書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域と同一領域か判定する。もし、同一領域が存在する場合、S1305に進み、既に消去ブロックバッファ管理領域604に保持されているデータチェック値を書き込み要求データのデータチェック値に更新し、処理を終了する。
S1304で同一の領域でないと判定した場合、S1306において、書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域に含まれる(例えば、オフセット0〜1000までの領域が登録されていた時にオフセット200〜400まで領域に対し書き込みがあった場合)か判定する。もし、含まれる場合場合にはS1307にて、消去ブロックバッファ管理領域604に登録されている領域のデータ(消去ブロックバッファ内オフセット、サイズ、データチェック値)を削除する。
そして、登録されていた領域の先頭から書き込み要求データの先頭までの領域を新規に登録(S1308)し、さらに書き込み要求領域を新規登録し(S1309)、最後に書き込み要求データの最後から登録されていた領域の最後までの領域を新規登録(S1310)し、処理を終了する。それぞれ新規登録の際に、消去ブロックバッファ内オフセット、サイズ、データチェック値を書き込む。
S1306にて、消去ブロックバッファ管理領域604に登録されている領域が書き込み要求領域を含まなかった場合、S1311にて、消去ブロックバッファ管理領域604に登録されている領域で、書き込み要求領域が跨ぐ領域があるか判定する。
もし、跨ぐ領域が存在する場合、S1312にて、消去ブロックバッファ管理領域604に登録されている、書き込み要求領域が跨ぐ領域を全て削除する。続いて、跨れた領域の最初の領域の先頭から、書き込み要求領域の先頭までを消去ブロックバッファ管理領域604に新規登録(S1313)し、さらに書き込み要求領域を消去ブロックバッファ管理領域604に新規登録した(S1314)後、書き込み要求領域の最後から跨れた領域の最後の領域の最後までを新規登録(S1315)し、処理を終了する。それぞれ新規登録の際に、消去ブロックバッファ内オフセット、サイズ、データチェック値を書き込む。
S1311にて、消去ブロックバッファ管理領域604に登録されている領域で、書き込み要求領域が跨ぐ領域が存在しない場合、消去ブロックバッファ管理領域604には書き込み要求領域に対する情報が格納されていないので、S1316において、書き込み要求領域を消去ブロックバッファ管理領域604に新規登録する。この時、消去ブロックバッファ管理領域604には、書き込み要求領域の消去ブロックバッファ103上の位置(オフセット)、書き込み要求領域のサイズ、および書き込み要求データが正しいことを示すチェック値が格納される。
以上が消去ブロックバッファ書き込み手段614の動作である。
次に、消去ブロックバッファ管理領域604内のデータ操作を図41の例を用いて説明する。図41では、オフセット値0x2000(0xは16進数を示す)、サイズ0x2000、データチェック値0xfedca123のデータを書き込んだ場合の、消去ブロックバッファ内のデータ操作を示している。
まず、最初の例(例1)は書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域と同一のものがあった場合の例である。この例では、消去ブロックバッファ管理領域604には、オフセット0x2000、サイズ0x2000の領域が既に登録されており、これは書き込み要求データと同じ領域である。
この場合、消去ブロックバッファ書き込み手段614は、図40のS1305の処理、即ち、既に登録されていた領域のチェック値を書き込み要求データに対するチェック値に更新する。これにより、データ書き込み後は図41中の網掛けの部分が更新される。
次の例(例2)は、書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域の中に含まれる場合の例である。この例では、消去ブロックバッファ管理領域604には、オフセット0x1000、サイズ0x4000の領域があり、書き込み要求領域はこの領域に含まれる。この場合、消去ブロックバッファ書き込み手段614は、図40のS1307〜S1310の処理を行う。
初めに、登録されている領域、即ちオフセット0x1000、サイズ0x4000のデータを削除する(図40、S1307)。次に登録されていた領域の先頭から書き込み要求領域の先頭までの領域(オフセット0x1000, サイズ0x1000)を新規登録する(図40, S1308)。そして、書き込み要求領域(オフセット0x2000, サイズ0x2000)を新規登録する(図40, S1309)。最後に、書き込み要求データの最後から登録されていた領域の最後までの領域(オフセット0x4000,サイズ0x1000)を新規登録する(図40, S1310)。これにより、データ書き込み後は図41中の網掛けの部分が更新される。
次の例(例3)は、書き込み要求領域が消去ブロックバッファ管理領域604に登録されている領域を跨ぐ場合の例である。この例では、書き込み要求領域は、消去ブロックバッファ管理領域604に登録されている2つの領域(オフセット0x0000,サイズ0x3000の領域およびオフセット0x3000、サイズ0x2000の領域)を跨ぐ。この場合、消去ブロックバッファ書き込み手段614は、図40のS1312〜S1315の処理を行う。
初めに、登録されている領域、即ちオフセット0x0000,サイズ0x3000の領域およびオフセット0x3000,サイズ0x2000の領域を削除する(図40, S1312)。次に登録されていた領域の内最初の領域(オフセット0x0000、サイズ0x3000)の先頭から、書き込み要求領域の先頭までの領域(オフセット0x0000,サイズ0x2000)を新規登録する(図40, S1313)。そして書き込み要求領域(オフセット0x2000, サイズ0x2000)を新規登録する(図40, S1314)。最後に、書き込み要求領域の最後から跨れた領域の最後の領域の最後までの領域(オフセット0x4000, サイズ0x1000)を新規登録する(図40, S1315)。これにより、データ書き込み後は図41中の網掛けの部分が更新される。
最後の例(例4)は、書き込み要求領域が消去ブロックバッファ管理領域604に登録されていない場合の例である。この例では、消去ブロックバッファ管理領域604には、オフセット0x4000,サイズ0xc000の領域のみ登録されており、書き込み要求領域(オフセット0x2000, サイズ0x2000)は登録されていない。
この場合、消去ブロックバッファ書き込み手段614は図40のS1316の処理、即ち、書き込み要求領域(オフセット0x2000, サイズ0x1000)を消去ブロックバッファ管理領域604に新規登録する。これにより、データ書き込み後は図41中の網掛けの部分が更新される。
次に本実施の形態における復旧手段611の動作を図42を用いて説明する。
復旧手段611はまず、S1351において、消去単位番号保持領域202内の値と消去単位番号確認領域601の値を読み出す。続いて、S1282にて、消去単位番号保持領域202内の値と消去単位番号確認領域601にフラッシュメモリ内の消去単位番号が存在するかチェックする。
番号が存在しない場合、消去ブロックバッファにはデータがないので、復旧手段の処理を終了する。
S1352において、番号が存在する場合、S1353にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一かをチェックする。
値が同一でない場合、S1357に進み、情報処理装置にエラー通知を行う。これにより、情報処理装置は書き込み途中の電源断を検出することができる。その後、S1358にて、消去単位番号保持領域202および消去単位番号確認領域601をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
S1353にて、消去単位番号保持領域202内の値と消去単位番号確認領域601の値が同一である場合、S1354に進む。S1354では、消去ブロックバッファ管理領域604に登録されている領域情報に対応させて、消去ブロックバッファ103内のデータを読み出す。そして、消去ブロックバッファ103内のデータを用いて値を算出する(この算出規則は書き込み領域のデータチェック値の算出規則と同様の規則にて行う、例えばデータチェック値がチェックサム値であれば、データの合計値を算出する)。
続いて、S1355にて算出した値と消去ブロックバッファ管理領域604の領域情報にあるデータチェック値をチェックする。
両者の値が一致すれば、消去ブロックバッファ103のデータが妥当であると判定する。
S1355にて妥当でない、即ち消去ブロックバッファ103内のデータが正しくない場合、S1357に進み、情報処理装置にエラー通知を行う。これにより、本発明の手段以外の操作により消去ブロックバッファ103にデータが書き込まれたり、消去ブロックバッファ103が使用している不揮発性メモリが故障したことを検出することができる。そして、S1358にて消去単位番号保持領域202と消去単位番号確認領域601の内容をクリアする。これにより、消去ブロックバッファを利用可能状態にする。
S1355にて妥当であると判断した場合、S1356に進む、。S1356では、消去ブロックバッファ管理領域604に登録されている領域の最後に到達したかチェックする。領域の最後まで到達していない場合、次の領域に対し、S1354〜S1356の処理を続行する。
S1356にて、消去ブロックバッファ管理領域604に登録されている領域の最後に登録されている領域まで達した場合、処理を終了する。これにより、復旧後、消去ブロックバッファには正しいデータのみ残る。
以上のように、この実施の形態によれば、消去ブロックバッファ管理領域に登録する領域を可変サイズにするようにしたので、消去ブロックバッファ書き込み手段でバッファへの書き込み時に書き込み要求領域を分割する必要がなく、メモリへのデータ書き込み処理を高速に行うことができる。
実施の形態14.
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、読み出し手段の動作以外は実施の形態12と同様である。
本実施の形態における読み出し手段201の動作を図43を用いて説明する。図43において、S1401〜S1403、S1404は実施の形態2の処理(図6のS211〜S213、S215)と同一であるので説明を省略する。
この実施の形態ではS1405、S1406、S1407の処理を有する点で相違するため、この点を中心に説明する。
S1401において読み出し要求を受けると、S1402において読み出し要求領域を含むフラッシュメモリの消去単位の番号を求め、S1403において消去単位番号保持領域202の記録とS1402において求めた消去単位の番号とが一致するかを判定する。
消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS1402において求めたものと一致しない場合には、読み出し領域のデータは消去ブロックバッファに保持されていないので、S1404において、フラッシュメモリからデータの読み出しを行う。
消去単位番号の記録がS1402において求めたものと一致する場合、S1405に進み、読み込み要求領域のデータを消去ブロックバッファ103から読み出す。
続いてS1406において、読み出した領域に対応する消去ブロックバッファ管理領域604のデータチェック値を用いて、読み出した領域のデータが正しいか否かを判定する。即ち、S1405で消去ブロックバッファ103から読み出したデータを用いて値を算出し(この算出規則は消去ブロックバッファ管理領域604のデータチェック値を算出する算出規則と同様の規則である。)、この算出値と読み出した領域に対応する消去ブロックバッファ管理領域604のデータチェック値とが同一か否かを判定する。
両者が同一の値であれば、消去ブロックバッファ103から読み出したデータが妥当であると判断する。
S1406で妥当でないと判断した場合、S1407にて情報処理装置にエラー通知を行い、処理を終了する。S1406で妥当であると判断した場合、読み出した領域のデータは正しい値であるので、そのまま処理を終了する。
以上のように本実施の形態によれば、消去ブロックバッファ管理領域にあるデータチェック値をデータ読み出し時のデータチェック用に利用するようにしたので、本発明以外の手段により消去ブロックバッファにデータ書き込みが発生した場合や不揮発性メモリに故障が発生した場合、読み出し時にそれをエラーとして検出することができる。
実施の形態15.
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態12と同様であり、図33に示される。本実施の形態では、読み出し手段の動作以外は実施の形態12と同様である。
本実施の形態における読み出し手段201の動作を図44を用いて説明する。図44において、S1501〜S1506は実施の形態14の処理(図43のS1401〜S1406)と同一であるので説明を省略する。
この実施の形態ではフラッシュメモリからの読み出しS1504の処理をS1506において消去ブロックバッファ103から読み出したデータが妥当でなかった場合にも行う。S1504では、読み出し要求領域に対応するフラッシュメモリ上の領域からデータを読み込み、その後処理を終了する。
尚、S1504の処理は、消去単位番号の記録が消去単位番号保持領域202に存在しないか、あるいは記録された消去番号がS1502において求めたものと一致しない場合にも行う。
以上のように本実施の形態によれば、消去ブロックバッファ103の読み出し時に、読み出したデータが正しくない場合、消去ブロックバッファ103に対応するフラッシュメモリ上の領域からデータを読み込むようにしたので、書き込み前のデータを使い情報処理装置の動作を継続することができる。
実施の形態16.
図45は本発明の他の実施の形態における情報処理装置の構成を示す図である。図において、605は消去ブロックバッファの消去単位番号情報や書き込みバッファの消去単位番号情報などが入るバッファ管理領域である。また、611は情報処理装置の起動時に実行され、バッファ管理領域605内の情報に従い、消去ブロックバッファ103および書き込みバッファ402のデータを復旧させる復旧手段である。他の構成は、図8における構成の同一もしくは相当部であり説明を省略する。なお、図8における消去単位番号保持領域202は図45ではバッファ管理領域605内に設定される。
図46は、バッファ管理領域605に記録されているデータの内容を示す。バッファ管理領域605は、消去ブロックバッファの情報を格納する消去ブロックバッファ管理領域6051と、書き込みバッファの情報を格納する書き込みバッファ管理領域6052とで構成される。
バッファ管理領域605の消去ブロックバッファ管理領域6051には、消去ブロックバッファ103が保持しているデータに対応するフラッシュメモリ上の消去単位番号を記録する消去単位番号保持領域と、消去単位番号保持領域と同じ値を持つ消去単位番号確認領域と、消去ブロックバッファ内のデータが正しいか否かのチェックに用いるデータチェック値を持つデータチェック値領域が含まれる。
バッファ管理管理領域605の書き込みバッファ管理領域6052には、書き込みバッファ402に保存されてたデータが書き込まれるべきフラッシュメモリ101上の消去単位番号と、この消去単位領域内の書き込み領域の位置を特定するオフセットと、書き込み領域の大きさを示すサイズと、対応する書き込みバッファ内の領域のデータが正しいか否かのチェックに用いるデータチェック値と、この情報領域(消去単位番号領域、消去単位内オフセット、サイズ、データチェック値)のデータが正しいか否かのチェックに用いる管理領域チェック値を保持する。消去単位番号の「−1」は、これ以上書き込みデータが存在しないことを意味する。
本実施の形態におけるメモリへの書き込み時の動作を図47を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。
まず、S1601でデータの書き込み要求を受けるとS1602で書き込み要求がされたフラッシュメモリの消去単位の番号を求める。この動作は、実施の形態1および4と同様である。
続いて、S1603において、消去ブロックバッファ管理領域6051の消去単位番号保持領域を参照し、消去単位番号の記録が存在するかを判定する。
ここで消去番号の記録が存在しなければ、S1604において、書き込み制御手段111は、消去ブロックバッファ管理領域6051内にある消去単位番号保持領域にS1602で求めた消去単位番号を格納する。
続いて、S1605において書き込み要求データを消去ブロックバッファ103に書き込み、S1606において待避手段112に対して待避指示を行う。待避指示の内容および待避手段の処理動作は実施の形態1および4と同様である。
続いてS1607において、データチェック値を消去ブロックバッファ管理領域6051内にあるデータチェック値領域に書き込む。この値は、消去ブロックバッファ103内に書き込まれているデータが正しいか否かをチェックするために用いられる値であり、消去ブロックバッファ103内のデータ値をすべて加算したチェックサム値など、データが正しいか否かをチェックできる値が入る。
さらにS1608において、S1602で求められた消去単位番号を消去ブロックバッファ管理領域6051内にある消去単位番号確認領域に格納する。これにより、消去単位番号保持領域および消去単位番号確認領域の値が同一の場合、消去ブロックバッファ103への書き込みは全て完了したことになる。
次に、S1609において消去命令手段301に対して消去指示を出す。消去指示の内容および消去命令手段301の動作は実施の形態4と同様である。
S1603において消去ブロックバッファ管理領域6051内の消去単位番号保持領域に消去単位番号の記録が存在すると判断した場合には、S1610において、S1602で求めた消去単位番号が消去ブロックバッファ管理領域6051内の消去単位番号保持領域に存在する記録と一致するかを判定する。
S1610で消去単位番号が異なると判断した場合には、S1611において、書き込みバッファ管理領域6052を参照し、書き込みバッファ管理領域6052に記録されている情報から、書き込み要求領域と同一の領域に書き込みを行うデータが既に書き込みバッファ402に存在するかを判定する。この判定は、実施の形態4と同様である。
S1611で書き込み要求領域と同一の領域に書き込みを行うデータが書き込みバッファ402に存在しないと判断した場合には、さらにS1612において書き込み制御手段111は書き込みバッファ402の空き領域を調べる。この処理は、実施の形態4と同様である。
書き込みバッファ402に空き領域が存在しない場合には、S1613において書き込み制御手段111は、書き込み手段301に対し書き込み指示を行う。書き込み指示の内容および書き込み手段301の動作は実施の形態1と同様である。
続いて、S1614において消去ブロックバッファ管理領域6051の消去単位番号保持領域と消去単位番号確認領域の内容をクリアする。これにより、消去ブロックバッファ601にはデータが残っていないことを示す。
さらに、この後、S1604からS1609の処理を、消去単位番号の記録が存在しない場合と同様に行う。
S1612で書き込みバッファに空き領域が存在した場合には、S1615において、書き込みデータを書き込みバッファ402の空き領域へ書き込む。
次にS1616において、書き込みバッファ管理領域6052に書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号、消去単位番号が示す領域内で書き込みデータの位置を特定するオフセット、書き込みデータのサイズ、書き込みデータが正しいか否かのチェックに用いるデータチェック値、および前記3つの4つのデータが正しいか否かのチェックに用いる管理領域チェック値を記録する。書き込みバッファ管理領域6052における管理情報と、書き込みバッファ402における書き込みデータの対応づけは、各エリアにおけるアドレス上の順序が同一になるように記録されていることで行われる。
S1611で書き込み要求領域と同一の領域に書き込みを行うデータが既に存在すると判定された場合には、S1617において、書き込みデータを書き込みバッファの同一領域のデータが記録されているエリアに書き込む。
続いてS1618において、書き込みバッファ管理領域6052の内、S1617で書き込みデータを書き込んだ領域に関する領域情報を更新する。この時更新される情報は、データチェック値および管理領域チェック値である。
S1610で、S1602で算出した消去単位番号が消去ブロックバッファ管理領域6051の消去単位番号保持領域に存在する記録と一致すると判定された場合には、S1619において、書き込み要求データを消去ブロックバッファ103に書き込む。
続いて、S1620において、消去ブロックバッファ管理領域6051のデータチェック値領域に、更新された消去ブロックバッファ103内のデータから求めたデータチェック値を書き込む。
以上がメモリへのデータ書き込み時の動作である。
次に、メモリからのデータ読み出し時の動作を図48を用いて説明する。以下の各処理は、断りのない限り読み出し手段201の動作である。
まずS1651において、読み出し要求を受ける。この読み出し要求の内容は実施の形態4と同様である。
S1652において、読み出し要求領域を含むフラッシュメモリの消去単位番号を求める。消去単位番号を求める動作は実施の形態4と同様である。
続いてS1653において、消去ブロックバッファ管理領域6051の消去単位番号保持領域を参照し、消去単位番号の記録が存在するかを判定する。
消去単位番号の記録が存在しない場合には、S1657において、書き込みバッファ管理領域6052の管理情報を参照し、読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在するかを判定する。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在する場合には、S1659において、そのデータが正しいものかどうかを書き込みバッファ管理領域6052に登録されているデータチェック値を使用して判定する。即ち、読み出し要求領域として特定された領域に書き込まれるべきデータを書き込みバッファ402から読み出し、このデータを用いて値を算出する(この算出規則は書き込みバッファ管理領域6052に登録されるデータチェック値の算出規則を用いる)。そして、算出値と書き込みバッファ管理領域6052に登録されているデータチェック値とを比較して、両者が同一値となれば、書き込みバッファ402のデータが妥当であると判断する。
データが妥当であると判定した場合、S1661において、当該データを書き込みバッファ402から読み出し、処理を終了する。
データが妥当でないと判定した場合、S1650において、情報処理装置にエラーを通知し、処理を終了する。
S1657で読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在しない場合には、S1658において、読み出しデータをフラッシュメモリ101から読み出す。
S1653で消去ブロックバッファ管理領域6051の消去単位番号保持領域に消去単位番号の記録が存在し、かつS1652で求めた消去単位番号と一致する場合には、読み出し要求領域のデータは消去ブロックバッファ103に保持されているので、S1654においてまず、消去ブロックバッファ103内のデータが正しいものであるか、消去ブロックバッファ管理領域6051のデータチェック値値を使用して判定する。この判断手順はS1659の手順と同様である。
データが妥当であると判定した場合、S1655において、当該データを消去ブロックバッファから読み出し、処理を終了する。
データが妥当でないと判定した場合、S1656において、情報処理装置にエラーを通知し、処理を終了する。
以上がメモリからのデータ読み出し時の動作である。
次に、情報処理装置の起動時に実行される復旧手段611の動作を図49を用いて説明する。
復旧手段611はまずS1681において、消去ブロックバッファ管理領域6051の消去単位番号保持領域の値と消去単位番号確認領域の値を読み出す。続いてS1682において、消去単位番号保持領域と消去単位番号確認領域にフラッシュメモリ内の消去単位番号が存在するかを判定する。
消去単位番号が存在する場合、S1683において、消去単位番号保持領域の値と消去単位番号確認領域の値が同一かをチェックする。
消去単位番号保持領域の値と消去単位番号確認領域の値が同一の場合、S1684において、消去ブロックバッファ管理領域6051にあるデータチェック値を読み出す。
続いてS1685にて、消去ブロックバッファ103内のデータが正しいかを読み出したデータチェック値を用いて判定する。この判定は図48のS1654と同様である。
S1685で、消去ブロックバッファ103内のデータが妥当である場合、消去ブロックバッファ103内のデータは破壊されていないことになるので、書き込みバッファの状態を復旧させるために、S1687でバッファ管理領域605の書き込みバッファ管理領域の領域情報を読み出す。
次に、S1688において、書き込みバッファ管理領域6052のデータが正しいかを、管理領域チェック値を用いて判定する。この判定は、管理領域チェック値以外の情報(消去単位番号、オフセット、サイズ、データチェック値)を取出してチェックサム値を算出し、算出して得られたチェックサム値と管理領域チェック値とを比較する。そして両者が一致すれば書き込みバッファ管理領域6052のデータが妥当であると判断する。
S1688で、書き込みバッファ管理領域6052のデータが妥当である場合、S1689において、領域情報に対応する書き込みバッファ402内のデータが正しいか、領域情報にあるデータチェック値を用いて判定する。この判定も上記したチェックサムによる判定方法などを利用して判定される。
S1689で、書き込みバッファ402内のデータが正しいと判断した場合、S1691でこの領域情報が書き込みバッファ管理領域に保持されている領域情報の最後かを判定する。領域情報の最後である場合、処理を終了する。
S1691で、まだ領域情報の最後でない場合、次の領域情報を読み出しその領域情報が正しいかを判定するために、S1687〜S1691の処理を実行する。
S1689で、書き込みバッファのデータが正しくない場合、S1690において、書き込みバッファ管理領域6052の当該領域情報をクリアし、領域情報および当該書き込みバッファを別のデータが使用することを可能にする。そして、S1691に進み、次の領域情報へ処理を進める。
S1688で、領域情報のデータが正しくない場合、S1690において、書き込みバッファ管理領域6052の当該領域情報をクリアし、領域情報および当該書き込みバッファを別のデータが使用することを可能にする。そして、S1691に進み、次の領域情報へ処理を進める。
S1685で、消去ブロックバッファ103内のデータが正しくないと判断した場合、S1686において、消去ブロックバッファ管理領域6051の消去単位番号保持領域および消去単位番号確認領域をクリアし、消去ブロックバッファを使用可能にする。そして、S1687〜S1691を実施し、書き込みバッファ104の復旧処理を行う。
S1683で、消去ブロックバッファ管理領域6051の消去単位番号保持領域と消去単位番号確認領域の値が同一でない場合、S1686において、消去単位番号保持領域および消去単位番号確認領域をクリアし、消去ブロックバッファを使用可能にする。そして、S1687〜S1691を実施し、書き込みバッファ104の復旧処理を行う。
S1682で、消去ブロックバッファ管理領域6051にある消去単位番号保持領域と消去単位番号確認領域に消去単位番号の記録がない場合、S1687〜S1691を実施し、書き込みバッファ104の復旧処理を行う。
以上のように本実施の形態によれば、バッファ管理領域605に消去ブロックバッファを管理する消去ブロックバッファ管理領域6051と書き込みバッファを管理する書き込みバッファ管理領域6052を設け、消去ブロックバッファ管理領域6051には、消去単位番号保持領域の他に消去単位番号確認領域とデータチェック値領域を、書き込みバッファ管理領域6052には、消去単位番号領域と消去単位内のオフセット値領域と書き込みデータサイズ領域の他にデータチェック値領域と管理領域チェック値を保持している。そのため、メモリからのデータ読み出し時および情報処理装置の復旧時に当該データチェック値を用い消去ブロックバッファおよび書き込みバッファのデータが正しいかをチェックすることができ、消去ブロックバッファおよび書き込みバッファを保持している不揮発性メモリが故障し、消去ブロックバッファ内のデータが不正になっても、情報処理装置がそれを検出することができる。
さらに、消去ブロックバッファおよび書き込みバッファに他手段から不正なデータ書き込みがあっても、それを検出することができる。
実施の形態17.
本発明の他の実施の形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態16と同様であり、図45に示される。本実施の形態では、復旧手段の動作以外は実施の形態16と同様である。
本実施の形態における復旧手段611の動作を図50を用いて説明する。図50は、実施の形態16における復旧手段の動作が一部相違している。
S1701〜S1705については実施の形態16で述べたS1681〜S1685の処理と同様である。
S1705で消去ブロックバッファのデータが正しくないと判断した場合、S1707に進み、S1707において消去単位番号保持領域と消去単位番号確認領域をクリアし、消去ブロックバッファ103を再利用可能にしてから、S1708に進み、書き込みバッファ402の復旧処理を行う。
S1705で消去ブロックバッファのデータが正しいと判断した場合、S1706で消去命令手段301に消去指示を行い、消去ブロックバッファに対応するフラッシュメモリの消去単位領域を消去する。この消去指示の内容は、実施の形態1と同様である。そして、書き込み手段302に書き込み指示を出し、消去ブロックバッファの内容を、消去した領域に書き込む。この書き込み指示の内容も実施の形態1と同様である。
そして、S1707において、消去ブロックバッファ管理領域6051の消去単位番号保持領域と消去単位番号確認領域をクリアする。
S1702〜S1707の処理により消去ブロックバッファ103の復旧処理が完了すると、復旧手段611はS1708において、書き込みバッファ管理領域6052の領域情報を読み出す。
次に、S1709、S1710の処理を行う。この処理は実施の形態16で述べたS1688、S1689の処理と同様である。
S1709で書き込みバッファ管理領域6052の領域情報が妥当でないと判断した場合およびS1710で書き込みバッファ402内のデータが正しくないと判断した場合、書き込みバッファ402の書き込み途中で電源断が発生したと考えられるので、S1716において、当該領域情報を書き込みバッファ管理領域6052から削除し、書き込みバッファ402を再利用可能にする。
S1710で書き込みバッファ402内のデータが正しいと判断した場合、S1711において、当該領域情報に対応する書き込みバッファ402のデータを消去ブロックバッファ103に書き込む。
次にS1712において、待避手段112に対して待避指示を行う。待避指示の内容は実施の形態1と同様である。待避指示を受けた待避手段112は、消去単位内の不変データを消去ブロックバッファ103に書き込むことにより待避させる。
続いてS1713において、消去ブロックバッファ管理領域6051を更新、即ち、消去単位番号保持領域および消去単位番号確認領域に消去単位番号を書き込み、S1711およびS1712により消去ブロックバッファ103に書き込まれたデータのデータチェック値を書き込む。
次にS1714において、消去命令手段301に消去指示を行い、消去ブロックバッファ103に対応するフラッシュメモリの消去単位領域を消去する。この消去指示の内容は、実施の形態1と同様である。そして書き込み手段302に書き込み指示を出し、消去ブロックバッファ103の内容を、消去した領域に書き込む。この書き込み指示の内容も実施の形態1と同様である。
続いてS1715にて、消去ブロックバッファ管理領域6051の消去単位番号保持領域と消去単位番号確認領域をクリアする。
次にS1716において、S1708で読み出した領域情報を書き込みバッファ管理領域6052から削除し、書き込みバッファ402の当該領域を再利用可能にする。
次に、S1717において、S1708で読み出した領域情報が、バッファ管理領域605の書き込みバッファ管理領域に登録されている領域情報の最後かを判定する。
書き込みバッファ管理領域の最後ではない場合、当該領域情報の次に登録されている領域情報に対し、S1708〜S1717の処理を行う。
書き込みバッファ管理領域の最後である場合、書き込みバッファ402には、データが残っていないので、処理を終了する。
以上のように本実施の形態によれば、情報処理装置の復旧時に、消去ブロックバッファの内容と書き込みバッファの内容をフラッシュメモリに書き込むようにしたので、復旧後にメモリへのデータ書き込みを行わない限り、不揮発性メモリの故障によるデータの破壊を防ぐことができる。
実施の形態18.
図51は本発明の他の実施の形態における情報処理装置の構成を示す図である。図において、185は揮発性メモリであるDRAMであり、DRAM185には、不揮発性メモリ102内の消去単位番号保持領域202と同じ値を持つ消去単位番号保持領域606と不揮発性メモリ102内の書き込みバッファ管理領域403と同じ値を持つ書き込みバッファ管理領域607とを備える。このDRAM185は不揮発性メモリ102よりもデータの読み書きが高速である。
また図において、611は情報処理装置の起動時に実行される復旧手段である。他の構成は図8における構成の同一もしくは相当部であり、説明を省略する。
次に本実施の形態におけるメモリへの書き込み時の動作を、図52を用いて説明する。以下の各処理は断りのない限り書き込み制御手段111の動作である。
まず、S1801、S1802の処理は実施の形態4と同様である。
続いて、S1803において、DRAM185上の消去単位番号保持領域606を参照し、消去単位番号の記録が存在するかを判定する。
ここで消去単位番号の記録が存在しなければ、S1804において、書き込み制御手段111は書き込み要求データを消去ブロックバッファ103に書き込む。
さらにS1805において、待避手段112に対して待避指示を行う。待避指示の内容および待避手段112の動作は、実施の形態4と同様である。
続いてS1806において、S1802で求めた消去単位番号を不揮発性メモリ102上の消去単位番号保持領域202およびDRAM185上の消去単位番号保持領域606に記録する。DRAM185への消去単位番号の書き込み処理は図54のS1851の処理に相当する。
さらにS1807において、消去命令手段301に対して消去指示を出す。消去指示の内容および消去命令手段301の動作は、実施の形態4と同様である。
S1803においてDRAM185上の消去単位番号保持領域606に消去単位番号の記録が存在する場合には、S1808において、S1802で求めた消去単位番号がDRAM185上の消去単位番号保持領域606に存在する記録と一致するかを判定する。
S1808において消去単位番号が異なる場合には、S1809において、DRAM185上の書き込みバッファ管理領域607を参照し、書き込みバッファ管理領域607に記録されている情報から、書き込み要求領域と同一の領域に書き込みを行うデータが既に書き込みバッファ402に存在するかを判定する。この判定は、DRAM185上の書き込みバッファ管理領域607に記憶されている消去単位番号及び消去単位内オフセットおよびサイズから把握することができる。
S1809において書き込み要求領域と同一の領域に書き込みを行うデータが書き込みバッファ402に存在しない場合には、さらにS1810において書き込み制御手段111は、書き込み要求のデータを書き込むことができる領域が書き込みバッファ402に存在するかを、書き込みバッファ402に空き領域を調べることで判定する。空き領域の存在は、DRAM185上の書き込みバッファ管理領域607に記録されている情報から知ることができる。
書き込みバッファ402に空き領域がない場合には、S1811において書き込み制御手段111は、書き込み手段302に対し書き込み指示を行う。書き込み指示の内容および書き込み手段302の動作は実施の形態4と同様である。
続いて、S1804からS1807の処理を、消去単位番号の記録が存在しない場合と同様に行う。
S1810で書き込みバッファに空き領域が存在した場合には、S1812において、書き込みデータを書き込みバッファ402へ書き込む。
次にS1813において、不揮発性メモリ102上の書き込みバッファ管理領域403およびDRAM185上の書き込みバッファ管理領域607に、S1812で書き込んだ書き込みデータに関する管理情報を記録する。管理情報は、消去単位番号とその中での位置を特定するオフセット、及び書き込みデータの大きさを記録する。このDRAM185へ書き込みデータに関する管理情報を記録する処理は、図54のS1852に相当する。
S1809で書き込み要求領域と同一の領域に書き込みを行うデータが既に存在すると判定された場合には、S1814において、書き込みデータを書き込みバッファの同一領域のデータが記録されているエリアに書き込む。
S1808で、S1802で算出した消去単位番号がDRAM185上の消去単位番号保持領域606に存在する記録と一致すること判定された場合には、S1815において、書き込み要求データを消去ブロックバッファ103に書き込む。
次に、メモリからのデータ読み出し時の動作を図53を用いて説明する。以下の各処理は、断りのない限り読み出し手段201の動作である。
まずS1831およびS1832は、実施の形態4と同様である。
続いてS1833において、DRAM185上の消去単位番号保持領域606を参照し、消去単位番号の記録が存在するかを判定する。
消去単位番号の記録が存在しない場合には、S1834において、DRAM185上の書き込みバッファ管理領域607の管理情報を参照し、読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在するかを判定する。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在する場合には、S1835において、その領域のデータを書き込みバッファ402から読み出す。
読み出し要求領域として特定された領域に書き込まれるべきデータが書き込みバッファ402に存在しない場合には、S1836において、読み出しデータをフラッシュメモリ101から読み出す。
S1833でDRAM185上の消去単位番号保持領域606に消去単位番号の記録が存在し、かつS1832で求めた消去単位番号と一致する場合には、読み出し領域のデータは消去ブロックバッファ103に保持されているので、S1837において、消去ブロックバッファ103から読み出しデータを読み出す。
以上の処理がメモリからのデータ読み出し時の動作である。
次に、復旧手段611の動作を図54を用いて説明する。
復旧手段611はまず、S1851において、DRAM185上の消去単位番号保持領域606に、不揮発性メモリ102上の消去単位番号保持領域202の内容を書き込む。これは、DRAM185は揮発性メモリであり、情報処理装置の再起動時にデータが消去されてしまうためである。
次に、S1852において、DRAM185上の書き込みバッファ管理領域607に、不揮発性メモリ102上の書き込みバッファ管理領域403の内容を書き込む。
以上が復旧手段の動作である。この動作により、復旧手段の処理完了後、不揮発性メモリ102上の消去単位番号保持領域202および書き込みバッファ管理領域403の内容と、DRAM185上の消去単位番号保持領域606および書き込みバッファ管理領域607の内容は同じになる。
以上のように、この実施の形態によれば、消去単位番号保持領域と書き込みバッファ管理領域を不揮発性メモリ102および不揮発性メモリ102よりも高速なDRAM185上に配置し、消去単位番号保持領域および書き込みバッファ管理領域からの読み出しをDRAM185上のもので行い、消去単位番号保持領域および書き込みバッファ管理領域への書き込みはDRAM185および不揮発性メモリ102双方に行い、復旧時は不揮発性メモリ102の内容をDRAM185にコピーするようにしたので、電源断による消去単位番号保持領域および書き込みバッファ管理領域の内容破壊を起こさずに、かつメモリへのデータの書き込みおよびメモリからのデータの読み込みを速く行うことができる。
実施の形態19.
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態5と同様であり、図12に示される。
実施の形態19における書き込み時の動作を図55を用いて説明する。以下の各処理は断りがない限り書き込み制御手段111の動作である。
図55において、S1901〜S1910、S1914、S1915は実施の形態5の処理(図13のS501〜S510、S516、S517)と同一であるので説明を省略する。
この実施の形態ではS1910の後にS1911、S1912、S1913の処理を有する点で相違するため、この点を中心に説明する。
S1901〜S1910については実施の形態5と同様に処理を行う。
S1910で空き領域が存在すると判断した場合には、S1911において書き込み制御手段111は、書き込みデータを書き込みバッファ402の空き領域へ書き込む。続いて、S1912において、書き込みバッファ管理領域403に管理情報として、消去単位番号とその中のオフセット、及び書き込みデータの大きさを記録する。S1912が完了後、処理を終了する。
S1910において書き込みバッファ402に空き領域が存在しない場合には、S1913においてバッファデータ移動処理を行う。
バッファデータ移動処理の動作を図56を用いて説明する。以下の各処理は、断りのない限り書き込み制御手段111の動作である。
まず、S1951において、消去ブロックバッファ103に現在登録されているデータをフラッシュメモリ101に書き込む。
次にS1952において、書き込みバッファ管理領域403と書き込み要求データを検索し、書き込みバッファ管理領域403に登録されている領域および書き込み要求データの内で、同一消去単位内に含まれる領域群にグループ分けした場合にグループ分けした領域群のサイズが一番多い領域群を選択する。
例えば、書き込みバッファに消去単位番号1に含まれる領域が2個あり、それぞれのサイズが100バイトおよび200バイトであったとする。さらに書き込みバッファに消去単位番号2に含まれる領域が3個あり、それぞれのサイズが10バイトおよび20バイトおよび30バイトであったとし、書き込み要求データは消去単位番号3に対する書き込みでサイズが50バイトであったとする。この場合、S1952の処理では、消去単位番号1の領域群のサイズが300バイトと一番多いので、この2つの領域が選択される。
次に、S1953においてバッファ移動手段501は、書き込みバッファ402に記録されているデータおよび書き込み要求データの内、S1952で選択された領域群のデータを消去ブロックバッファ103へ移動する。
続いて、S1954において、待避手段112に対して待避指示を行い、待避指示を受けた待避手段112は、S1953において消去ブロックバッファ103へ書き込まれた領域以外のデータである不変データを、フラッシュメモリの当該消去単位から待避する。さらに、S1955において、消去単位番号を消去単位番号保持領域202に記録する。
次に、S1956において書き込み制御手段111は、S1953で消去ブロックバッファ103へ移動した領域群に関する管理情報を書き込みバッファ管理領域403から削除する。
次に、S1957において、S1952で算出した領域群に書き込み要求データが存在したか判定する。書き込み要求データが存在しなかった場合、S1958において、S1956の動作によって空きができた書き込みバッファ402に書き込み要求データを書き込み、書き込みバッファ管理領域403に書き込み要求データに関する管理情報を登録する。
次にS1959において、消去命令手段301に対して消去指示を出し、消去指示を受けた消去命令手段301は消去ブロックバッファ103へ待避された消去単位の消去を行うようにフラッシュメモリ101に命令を出す。
以上はメモリ書き込み時の動作である。
尚、実施の形態19における読み出し時の動作は、実施の形態4と同一である。
以上のように、この実施の形態によれば、書き込みバッファおよび書き込み要求データを、フラッシュメモリの1消去単位内に収まる領域毎にグループ化し、その内で一番サイズが大きい領域グループを消去ブロックバッファに移動することにより、書き込みバッファの空き領域を効率よく増やすことができるので、フラッシュメモリへの書き込み回数を低減でき、フラッシュメモリの劣化を低減することができる。
実施の形態20.
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は実施の形態5と同様であり、図12に示される。また、メモリ書き込み時におけるバッファ移動処理以外は実施の形態19と同一である。
書き込みバッファ402に空き領域が存在しない場合に行われる、バッファデータ移動処理の動作を図57を用いて説明する。以下の各処理は、断りのない限り書き込み制御手段111の動作である。
図57において、S2001〜S2009は実施の形態19の処理(図56のS1951〜S1959)と同一であるので説明を省略する。
この実施の形態ではS2009以降の処理としてさらにS2010〜S2018の処理を有する。
S2001〜S2009については実施の形態19のS1951〜S1959と同様に実行する。
S2010において書き込み制御手段111は、書き込みバッファ管理領域403を検索し、書き込みバッファ管理領域403に登録されている領域で、同一消去単位内に含まれる領域群にグループ分けした場合にグループ分けした領域群のサイズがnバイトよりも小さい領域群の群数を調べる。
続いて、S2011において、S2010で調べた群数がm個よりも多いか判定する。群数がm個よりも少ない場合、処理を終了する。
S2011において、群数がm個よりも大きい場合、書き込みバッファの内容を空にする処理を行う。
まず、S2012において書き込み制御手段111は、書き込み手段302に書き込み指示を行い、消去ブロックバッファの内容をフラッシュメモリ101に書き込む。
次に、S2013において、書き込みバッファ管理領域403を検索し、書き込みバッファ管理領域403に登録されている領域の内で、同一消去単位内に含まれる領域群にグループ分けした場合にグループ分けした領域群のサイズが一番多い領域群を選択する。
次に、S2014においてバッファ移動手段501は、書き込みバッファ402に記録されているデータの内、S2013で選択された領域群のデータを消去ブロックバッファ103へ移動する。
続いて、S2015において、待避手段112に待避指示を行い、待避指示を受けた待避手段112は、S2014において消去ブロックバッファ103へ書き込まれた領域以外のデータである不変データを、フラッシュメモリの当該消去単位から待避する。さらに、S2016において、消去単位番号を消去単位番号保持領域202に記録する。
次にS2017において書き込み制御手段111は、S2014で消去ブロックバッファ103へ移動した領域群に関する領域情報を書き込みバッファ管理領域403から削除する。
次に、S2108において、S2017で更新された書き込みバッファ管理領域403を検索し、まだ登録されている管理情報が存在するか判定する。登録されている管理情報が存在する場合、S2012からS2018の処理をさらに続行する。
登録されている管理情報が存在しない場合、処理を終了する。これにより、書き込みバッファ403にはデータが残らなくなる。
以上のように、この実施の形態によれば、書き込みバッファに空きがない場合に、書き込みバッファの内容を消去ブロックバッファに移動した後、書き込みバッファ管理領域を検索し、書き込みバッファ管理領域に登録されている領域で、同一消去単位内に含まれる領域群にグループ分けした場合に、グループ分けした領域群のサイズがnバイトより小さい領域群の群数がm個よりも多い場合に、書き込みバッファの内容を空にするようにし、書き込みサイズが小さいものを強制的に書き込みバッファから排除するようにしたので、実施の形態19よりもより効率よく書き込みバッファの空き領域を増やすことができ、フラッシュメモリへの書き込み回数を低減することができる。
実施の形態1の情報処理装置の構成図である。 実施の形態1のシステムの概略を示す構成図である。 実施の形態1における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態2の情報処理装置の構成図である。 実施の形態2における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態2における情報処理装置がメモリからデータを読み出す動作を示すフローチャートである。 実施の形態3における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態4における情報処理装置の構成図である。 書き込みバッファ管理領域に記録されているデータの内容を示す図である。 実施の形態4における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態4における情報処理装置がメモリからデータを読み出す動作を示すフローチャートである。 実施の形態5における情報処理装置の構成図である。 実施の形態5における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 バッファデータ移動処理S515、S620の動作を示すフローチャートである。 書き込みバッファの領域を使用する使用頻度の情報の一例である。 実施の形態6における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 バッファデータ移動処理S612の動作を示すフローチャートである。 従来の回路の概略を示す構成図である。 実施の形態7における情報処理装置の構成図である。 実施の形態7における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 復旧手段611の動作を示すフローチャートである。 実施の形態8における情報処理装置の構成図である。 実施の形態8における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 復旧手段611の動作を示すフローチャートである。 実施の形態9における情報処理装置の構成図である。 実施の形態9における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 書き込み許可指示手段612の動作を示すフローチャートである。 書き込み禁止指示手段613の動作を示すフローチャートである。 実施の形態10における情報処理装置の構成図である。 実施の形態10における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 復旧手段611の動作を示すフローチャートである。 実施の形態11における情報処理装置の復旧手段611の動作を示すフローチャートである。 実施の形態12における情報処理装置の構成図である。 消去ブロックバッファ管理領域604の構造図である。 実施の形態12における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 待避手段112の動作を示すフローチャートである。 消去ブロックバッファ書き込み手段614の動作を示すフローチャートである。 復旧手段611の動作を示すフローチャートである。 実施の形態13における消去ブロックバッファ管理領域604の構造図である。 消去ブロックバッファ書き込み手段614の動作を示すフローチャートである。 消去ブロックバッファ管理領域604のデータ操作の例を示す図である。 復旧手段611の動作を示すフローチャートである。 実施の形態14における情報処理装置のデータ読み出し時の動作を示すフローチャートである。 実施の形態15における情報処理装置のデータ読み出し時の動作を示すフローチャートである。 実施の形態16における情報処理装置の構成図である。 バッファ管理領域605に記録されるデータの内容を示す図である。 実施の形態16における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態16における情報処理装置のデータ読み出し時の動作を示すフローチャートである。 復旧手段611の動作を示すフローチャートである。 実施の形態17における復旧手段611の動作を示すフローチャートである。 実施の形態18における情報処理装置の構成図である。 実施の形態18における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 実施の形態18における情報処理装置のデータ読み出し時の動作を示すフローチャートである。 DRAM152へのデータの書き込み動作を示すフローチャートである。 実施の形態19における情報処理装置がフラッシュメモリ上のデータを書き換える動作を示すフローチャートである。 バッファデータ移動処理の動作を示すフローチャートである。 実施の形態20におけるバッファデータ移動処理の動作を示すフローチャートである。
符号の説明
101 フラッシュメモリ、102 不揮発性メモリ、103 消去ブロックバッファ、111 書き込み制御手段、112 待避手段、185 DRAM、201 読み出し手段、202 消去単位番号保持領域、301 消去命令手段、302 書き込み手段、402 書き込みバッファ、403 書き込みバッファ管理領域、501 バッファ移動手段、601 消去単位番号確認領域、602 消去ブロックバッファ確認領域、603 書き込み禁止フラグ領域、604 消去ブロックバッファ管理領域、605 バッファ管理領域、611 復旧手段、614 消去ブロックバッファ書き込み手段。

Claims (11)

  1. あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、
    消去ブロックバッファ、消去単位番号保持領域および消去単位番号確認領域とを備え、任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、
    前記消去単位領域に記憶されたデータの内、前記第1の書き込みデータによる書き換えが行われない不変データを前記消去ブロックバッファに書き込む待避手段と、
    前記第1の書き込みデータを書き込むべき消去単位領域を特定する情報を前記消去単位番号保持領域に書き込み、前記第1の書き込みデータを前記消去ブロックバッファに書き込み、前記第1の書き込みデータおよび前記不変データの書き込み完了後に、前記消去単位番号保持領域に書き込んだ情報に対応する情報を前記消去単位番号確認領域に書き込む書き込み制御手段と、
    前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去単位領域に書き込むメモリ書き込み手段と、
    前記情報処理装置の復旧時に、前記消去単位番号保持領域と前記消去単位番号確認領域の情報に基づいて復旧処理を行う復旧手段とを有することを特徴とする情報処理装置。
  2. 前記第2のメモリは、前記消去ブロックバッファ内のデータを処理することで得られるデータチェック値が書き込まれる消去ブロックバッファ確認領域を有し、
    前記書き込み制御手段は、前記データチェック値を前記消去ブロックバッファ確認領域に書き込み、
    前記復旧手段は、前記消去単位番号保持領域の値、前記消去単位番号確認領域の値および前記消去ブロックバッファ確認領域のデータチェック値に基づいて復旧処理を行うことを特徴とする請求項1記載の情報処理装置。
  3. あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、
    消去ブロックバッファおよび書き込み禁止フラグ領域を備えた任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、
    前記第1のメモリの第1の消去単位領域に前記第1の書き込みデータを書き込むことを要求する第1の書き込み要求に対し、前記書き込み禁止フラグ領域の値が書き込み許可状態になっている場合に、前記第1の書き込みデータを前記消去ブロックバッファに書き込む書き込み制御手段と、
    前記第1の書き込み要求に対し、前記書き込み禁止フラグ領域の値が書き込み許可状態になっている場合に、前記第1の消去単位領域内の不変データを前記消去ブロックバッファに書き込む待避手段と、
    前記書き込み禁止フラグ領域の値が書き込み許可状態になっている場合に、前記消去ブロックバッファの内容を第1のメモリに書き込むメモリ書き込み手段とを備えたことを特徴とする情報処理装置。
  4. 前記消去ブロックバッファは、前記第1の書き込みデータの書き込み要求後に発生する第2の書き込み要求まで前記第1の書き込みデータおよび前記第1の消去単位領域内の不変データを保持し、
    前記第2の書き込み要求が前記第1の消去単位領域に第2の書き込みデータを書き込むことを要求する場合に、前記書き込み制御手段は前記第2の書き込みデータを前記消去ブロックバッファに書き込み、前記メモリ書き込み手段は前記第2の書き込みデータが書き込まれた前記消去ブロックバッファ内のデータを前記第1の消去単位領域に書き込むことを特徴とする請求項1に記載の情報処理装置。
  5. 前記書き込み制御手段は、前記第1のメモリの消去単位領域への前記消去ブロックバッファ内のデータの書き込みが完了した後、前記消去単位番号保持領域および前記消去単位番号確認領域のデータを消去することを特徴とする請求項1記載の情報処理装置。
  6. 前記復旧手段は、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値とが同一の場合に、前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去手段によって消去された前記第1のメモリの消去単位領域に書き込むよう前記メモリ書き込み手段に対して指示することを特徴とする請求項1または請求項4記載の情報処理装置。
  7. 前記復旧手段は、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値とが同一でない場合に、前記消去単位番号保持領域の値と前記消去単位番号確認領域の値を消去することを特徴とする請求項1または請求項4に記載の情報処理装置。
  8. あらかじめ定められた消去単位でデータの消去および書き込みがなされる複数の消去単位領域を有する第1のメモリと、前記消去単位領域に記憶されたデータを前記消去単位で消去する消去手段とを有し、前記消去単位領域に記憶されたデータを第1の書き込みデータに書き換える情報処理装置において、
    消去ブロックバッファ、前記消去ブロックバッファ内の領域を分割して管理し、当該分割領域内のデータを処理することで得られるデータチェック値が格納される消去ブロックバッファ管理領域、消去単位番号保持領域および消去単位番号確認領域とを備え、任意のデータ単位でデータの書き込みが可能な不揮発性の第2のメモリと、
    前記第1の書き込みデータを前記消去ブロックバッファに書き込み、前記消去単位領域に記憶されたデータの内、前記第1の書き込みデータによる書き換えが行われない不変データを前記消去ブロックバッファに書き込み、書き込んだ領域に対応するチェック値を前記消去ブロックバッファ管理領域に書き込む消去ブロックバッファ書き込み手段と、
    前記不変データを前記消去ブロックバッファに書き込むように前記消去ブロックバッファ書き込み手段に指示する待避手段と、
    前記第1の書き込みデータを書き込むべき消去単位領域を特定する情報を前記消去単位番号保持領域に書き込み、前記第1の書き込みデータを前記消去ブロックバッファに書き込むように前記消去ブロックバッファ書き込み手段に指示し、前記第1の書き込みデータおよび前記不変データの書き込み完了後に、前記消去単位番号保持領域に書き込んだ情報に対応する情報を前記消去単位番号確認領域に書き込む書き込み制御手段と、
    前記消去ブロックバッファに書き込まれた前記第1の書き込みデータおよび前記不変データを前記消去単位領域に書き込むメモリ書き込み手段と、
    前記情報処理装置の復旧時に、前記消去単位番号保持領域の値、前記消去単位番号確認領域の値および前記データチェック値に基づいて復旧処理を行う復旧手段とを有することを特徴とする情報処理装置。
  9. 前記消去ブロックバッファ書き込み手段は、前記第2の書き込みデータの書き込み要求領域が前記消去ブロックバッファ管理領域に管理されている前記分割領域と同一の場合に、前記データチェック値を書き換えることを特徴とする請求項8記載の情報処理装置。
  10. 読み込み要求されたデータが前記消去ブロックバッファに記憶されている場合に、前記消去ブロックバッファからデータを読み込む読み込み手段を備え、
    当該読み込み手段は、前記消去ブロックバッファ管理領域に記憶されている前記データチェック値に基づいて前記消去ブロックバッファ内のデータが正しいと判断した場合に、前記消去ブロックバッファからデータを読み込むことを特徴とする請求項8記載の情報処理装置。
  11. 読み込み要求されたデータが前記消去ブロックバッファに書き込まれている場合に、前記消去ブロックバッファからデータを読み込む読み込み手段を備え、
    当該読み込み手段は、前記消去ブロックバッファ管理領域に記憶されている前記データチェック値に基づいて前記消去ブロックバッファ内のデータが正しくないと判断した場合には、前記第1のメモリからデータを読み込むことを特徴とする請求項8記載の情報処理装置。
JP2004319381A 1999-02-19 2004-11-02 情報処理装置 Expired - Fee Related JP4066991B2 (ja)

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 true JP2005071388A (ja) 2005-03-17
JP4066991B2 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008134945A (ja) * 2006-11-29 2008-06-12 Dainippon Printing Co Ltd 記憶装置、記憶装置のプログラム及び記憶処理方法
JP2008152601A (ja) * 2006-12-19 2008-07-03 Konica Minolta Business Technologies Inc メモリ装置
JP2009123186A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc フラッシュメモリのデータ即時更新方法
JP2010176268A (ja) * 2009-01-28 2010-08-12 Yupiteru Corp 電子機器およびプログラム
JP2013092938A (ja) * 2011-10-26 2013-05-16 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008134945A (ja) * 2006-11-29 2008-06-12 Dainippon Printing Co Ltd 記憶装置、記憶装置のプログラム及び記憶処理方法
JP2008152601A (ja) * 2006-12-19 2008-07-03 Konica Minolta Business Technologies Inc メモリ装置
JP2009123186A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc フラッシュメモリのデータ即時更新方法
JP2010176268A (ja) * 2009-01-28 2010-08-12 Yupiteru Corp 電子機器およびプログラム
JP2013092938A (ja) * 2011-10-26 2013-05-16 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等

Also Published As

Publication number Publication date
JP4066991B2 (ja) 2008-03-26

Similar Documents

Publication Publication Date Title
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
EP1244019A2 (en) Memory device comprising a non-volatile memory
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP4722704B2 (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) 情報処理装置およびデータ復旧方法
JP2009181148A (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) 情報処理装置
JP4608434B2 (ja) 情報記録媒体のデータ処理装置及びデータ記録方法
JP4572930B2 (ja) 情報処理装置
JP5729479B2 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
JP5378604B2 (ja) ThinProvisioningが適用された、メインフレーム系のストレージ装置
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP4731325B2 (ja) 記録媒体、データ処理装置及びデータ処理方法
KR102011059B1 (ko) 스냅샷 이미지 업데이트 장치 및 방법
US9852746B2 (en) Information processing apparatus, method of controlling the same, program and storage medium
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
JP2006323462A (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