JP2006350572A - 記憶装置、画像形成装置及びシステムデータ管理方法 - Google Patents

記憶装置、画像形成装置及びシステムデータ管理方法 Download PDF

Info

Publication number
JP2006350572A
JP2006350572A JP2005174360A JP2005174360A JP2006350572A JP 2006350572 A JP2006350572 A JP 2006350572A JP 2005174360 A JP2005174360 A JP 2005174360A JP 2005174360 A JP2005174360 A JP 2005174360A JP 2006350572 A JP2006350572 A JP 2006350572A
Authority
JP
Japan
Prior art keywords
data
nvram
area
system data
storage device
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.)
Pending
Application number
JP2005174360A
Other languages
English (en)
Inventor
Noriyuki Shioda
憲行 塩田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2005174360A priority Critical patent/JP2006350572A/ja
Publication of JP2006350572A publication Critical patent/JP2006350572A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】
電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置等を提供することを目的とする。
【解決手段】
NVRAM12とカード型メモリ11を備えた記憶装置において、電源断後も記憶すべきシステムデータを、NVRAM12及びカード型メモリ11に分散して記憶するように構成したことにより上記課題を解決する。
【選択図】 図1

Description

本発明は、記憶装置、画像形成装置及びシステムデータ管理方法に係り、特にシステムデータを分散して記憶する記憶装置、画像形成装置及びシステムデータ管理方法に関する。
プリンタ、コピー機又はスキャナ等は、電源断後の起動時まで保存されることを必要とするシステムデータを有する。システムデータは各種設定情報、ハードウェア構成情報、課金情報等があり、これらシステムデータを記憶する記憶装置として、電源断後もデータの保持が可能な不揮発性メモリが利用される。揮発性メモリはデータの読み書きが不揮発性メモリに比べ高速であるが、電源断時には記憶していたデータが消去されるので、システムデータの記憶には使用されない。不揮発性メモリは、書き換え可能ROM(Read Only Memory)、書き換え不可能ROM及び不揮発性RAM(Random Access Memory)に大別される。書き換え可能ROMにはフラッシュメモリ、EEPROM(Electric Erasable Programmable ROM)、EPROM(Erasable Programmable ROM)等があり、書き換え不可能ROMにはマスクROM、不揮発性RAMにはNVRAM(Non−Volatile RAM)、BBSRAM(Battery Backup Static RAM)等がある。HDD(Hard Disk Drive)等の機械的稼動部を有する記憶装置は、不揮発性メモリのような電気的記憶装置に比べ故障発生率が高いため、システムデータを記憶する目的に使用されることはない。
不揮発性メモリの特徴には、主に、容量、書き換えの可否、データの更新手段、許容書き換え回数、価格等がある。
従来技術としては、メモリカードパック内に、メモリカードと不揮発性RAMを備え、ユーザデータをメモリカードに保存し、システムデータを不揮発性RAMに保存することが知られている(特許文献1参照。)。また、SD(Secure Digital)カードから読み出したデータをASIC(Application Specific Integrated Circuit)内のバッファに置くことによりデータの読出しを高速に行うことが知られている(特許文献2参照。)。
特開2004−341989号公報 特開2004−220575号公報
不揮発性メモリの特徴を考慮の上、頻繁に小さなデータ単位での書き換えが行われるシステムデータには、小さな単位でデータの読み書きが可能なNVRAMが使用される。フラッシュメモリには大容量で安価なものが存在するが、データの消去が、例えば1セクタ毎と、本来消去の必要がないデータまで消去され、頻繁に小さな単位で読み書きが行われるシステムデータの保存には無駄が多く適切でないからである。
しかし、システムデータが増大するとフラッシュメモリに比べて小容量のNVRAMでは、必要なシステムデータを記憶することができなくなる。
特許文献1に記載された発明は、メモリパック内部の構成を示し、頻繁に書き換えられるシステムデータのみ不揮発性RAMに置くことにより、メモリカードの書き換え可能回数の制限を回避することを図っているが、システムデータ自体が増大した場合には対応できない。
また、特許文献2に記載された発明は、SDカードにあるプログラム等のデータの読出しを高速にすることを目的としているのであって、不揮発性RAMの他のメモリによる代替を目的としたものではないため、問題の解決には至らない。
このように、大規模のシステムデータを効率的に扱うために、NVRAMが有する小さな単位でも無駄なく読み書きできる機能と、フラッシュメモリが有する大容量と、揮発性メモリが有するデータ読み書きの高速性とを同時に備えた記憶装置は存在しない。
そこで、本発明は電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置、画像形成装置及びシステムデータ管理方法を提供することを目的とする。
上記目的を達成するために、本発明は、不揮発性RAMとフラッシュメモリとを備えた記憶装置において、電源断後も記憶すべきシステムデータが、前記不揮発性RAM及び前記フラッシュメモリに分散して記憶されることを特徴とする。
また、本発明は、揮発性RAMを有し、前記システムデータが、更新前データと更新後データと差分データとから成り、前記更新前データが前記フラッシュメモリに、前記更新後データが前記揮発性RAMに、前記差分データが前記不揮発性RAMに記憶されることを特徴とする。
また、本発明は、前記揮発性RAMの前記更新後データの変更と、前記不揮発性RAMの前記差分データの変更とが同時に行われることを特徴とする。
また、本発明は、前記不揮発性RAMの前記差分データは、0以上の更新履歴から成ることを特徴とする。
また、本発明は、前記フラッシュメモリの前記更新前データの書換えは、前記不揮発性RAMが所定の状態になった場合に行われることを特徴とする。
また、本発明は、前記不揮発性RAMの前記差分データと、前記フラッシュメモリの前記更新前データとから、前記揮発性RAMへ前記更新後データを再構成するデータ再構成手段を有することを特徴とする。
また、本発明は、前記フラッシュメモリの2つの領域に、同一の前記更新前データを逐次記憶する同期手段と、前記不揮発性RAMの前記差分データを消去する消去手段とを有することを特徴とする。
また、本発明は、前記同期手段による前記フラッシュメモリの同期処理中に、電源断が発生した場合、前記データ再構成手段は、前記フラッシュメモリの2つの領域のうち、前記電源断時に記憶中の領域とは異なる領域に記憶された前記更新前データを用いて、前記更新後データを再構成することを特徴とする。
また、本発明は、前記揮発性RAM、前記不揮発性RAM及び前記フラッシュメモリが一つの記憶装置であるかのように、データ書込み読出し制御を行うデバイスドライバを有することを特徴とする。
また、本発明は、電源断後も記憶すべきシステムデータの管理方法であって、不揮発性RAMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、前記システムデータが、前記不揮発性RAM及び前記フラッシュメモリに分散して記憶されることを特徴とする。
また、本発明は、電源断後も記憶すべきシステムデータの管理方法であって、揮発性RAMと不揮発性RAMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、前記システムデータが、更新前データと更新後データと差分データとから成り、前記フラッシュメモリに前記更新前データが、前記揮発性RAMに前記更新後データが、前記不揮発性RAMに前記差分データが記憶されることを特徴とする。
本発明によれば、電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置、画像形成装置及びシステムデータ管理方法を提供することが可能となる。
(本発明の基本原理)
実際に使用するシステムデータを揮発性RAMに記憶し、小さな単位で頻繁に発生する更新情報のみを不揮発性RAMであるNVRAMに逐次記憶し、更新前のシステムデータを記録としてフラッシュメモリに記憶する。
この構成により、読み書きが速い揮発性RAMでシステムデータを読み書きでき、NVRAMを小容量に維持し、フラッシュメモリの更新回数を少なくしながら大容量のシステムデータを管理することが可能となる。また、NVRAMの更新情報とフラッシュメモリの更新前のシステムデータとを用いて、最新のシステムデータが復元できるので、電源断が発生しても再起動時に最新のシステムデータが使用できる。
図1を用いて、本発明の基本原理を説明する。図1(A)は、従来の記憶装置を、図1(B)は、システムデータの増大に対応できない従来の記憶装置を、図1(C)は、システムデータの増大に対応できる本発明による記憶装置を示す。図1(A)の従来の記憶装置では、システムデータは不揮発性メモリのNVRAM12にある領域13Aに記憶される。CPU14は、NVRAM12の領域13Aとの間でシステムデータの読み書きを行う。しかし、図1(B)に示すようにシステムデータに必要な領域13BがNVRAM12の容量を超えると、もはやシステムデータの領域13BをNVRAM12に記憶できなくなる。
一方、図1(C)の本発明による記憶装置では、システムデータはRAM10の領域100Cに記憶される。CPU14は、常時RAM10の領域100Cとの間でシステムデータの読み書きを行う。CPU14は、システムデータ(更新後かつ最新である。)を、NVRAM12ではなく、RAM10の領域100Cに記憶しているので、システムデータの格納に必要な領域100CがNVRAM12の容量を超えても、システムデータの利用が可能である。
また、カード型メモリ11の2つの領域110C及び111C並びにRAM10の領域101Cにあるシステムデータは、更新前の同一のシステムデータである。領域101Cのシステムデータは、後述の同期処理に使用される。なお、後述するように、その後、領域100Cのシステムデータが領域101C、110C及び111Cに複製される。また、カード型メモリ11の2つの領域にシステムデータを記憶するのは、一方のシステムデータが電源断による破壊により使用できなくなった場合にも、他方のシステムデータが使用できるようにするためである。なお、CPUが、カード型メモリ11を更新するタイミングは、後述の同期処理又はデータ再構成処理が起動されたときであり、RAM10やNVRAM12への更新に比べ頻度が低い。
システムデータを更新する場合、CPU14は、領域100Cのシステムデータを更新する。また、CPU14は、領域100Cのシステムデータの更新と同時に、NVRAM12への更新情報の書込みを行う。突然の電源断に備えるためである。NVRAMは不揮発性メモリであり、電源断後もデータを記憶する。従って、この更新後に電源断が発生したとしても、揮発性メモリであるRAM10の領域100Cにあるシステムデータは消失するが、不揮発性メモリであるNVRAM12の更新情報及び不揮発性メモリであるカード型メモリ11の領域110C及び111Cにあるシステムデータは消失しない。そこで、CPU14は、再起動時にNVRAM12の更新情報と、カード型メモリ11のシステムデータ110C又は111Cとから、領域100Cに更新後のシステムデータを復元する。CPU14は引き続き、この復元された領域100Cのシステムデータを利用する。
(同期処理)
図2(A)から図2(F)は同期処理の説明図である。同期処理とは、プロセスに使用されるRAM20の領域200にあるシステムデータをカード型メモリに複製する処理をいう。図2(A)は、システムデータの更新が行われた後の記憶装置の状態を示す。記憶装置を制御するCPU(図示せず)は、RAM20の領域200に更新されたシステムデータを記憶し、NVRAM22に更新情報を記憶する。また、領域201、210及び211のシステムデータはすべて更新前のシステムデータである。その後、同期処理が開始されると、CPUは、領域200のシステムデータを、同じRAM20の領域201に複製する。複製後、領域201のシステムデータは、領域200のシステムデータと同じ内容になる。
図2(B)は、RAMのシステムデータの複製が終了した時点の記憶装置の状態を示す。この状態で、CPUは、領域201のシステムデータを、カード型メモリ21の2つの領域210及び211に逐次複製を開始する。逐次2回の複製を行うのは、後述するように、カード型メモリのどちらか一方のシステムデータが常に使用できる状態にするためである。
また、CPUは、システムデータをカード型メモリへ複製中であっても、RAMの領域200にあるシステムデータの更新を受け付ける必要がある。そこで、同期処理中にシステムデータの更新がある場合とない場合について説明する。
まず、同期処理中にシステムデータの更新がない場合について説明する。
図2(C)は、領域201のシステムデータが領域210へ複製された後の記憶装置の状態を示す。この状態で、CPUは、領域201のシステムデータを領域211へ複製を開始する。領域211への複製が終了すると、更新情報は消去される。更新情報がカード型メモリ21の領域210及び211にあるシステムデータに反映されたからである。
図2(D)は、領域201のシステムデータが領域210及び211へ複製された後の記憶装置の状態を示す。カード型メモリ21の領域210及び211にあるシステムデータと、RAM20の領域200及び201にあるシステムデータとの内容はすべて同じである。また、NVRAM22には更新情報がない状態となっている。以上でCPUは同期処理中にシステムデータの更新がない場合の同期処理を終了する。
次に、同期処理中にシステムデータの更新がある場合を説明する。
図2(E)は、領域201のシステムデータが領域210へ複製された時点の記憶装置の状態を示す。NVRAM22は2つの更新情報を記憶しており、領域200にあるシステムデータは、2つの更新情報を反映している。しかし、領域201のシステムデータは2回目の更新情報を反映していない。また、カード型メモリ21の領域210のシステムデータは2回目の更新情報を反映しておらず、領域211のシステムデータは2つの更新情報を反映していない。この状態で、CPUは、領域201のシステムデータを、領域211に複製を開始する。領域201のシステムデータの領域211への複製が終了すると、1回目の更新情報は消去されるが、2回目の更新情報は消去されない。2回目の更新情報がカード型メモリ21の2つのシステムデータに反映されていないからである。
図2(F)は、領域201のシステムデータが領域211へ複製された後の記憶装置の状態を示す。カード型メモリ21の領域210及び211のシステムデータと、RAM20の領域201のシステムデータとの内容はすべて同じである。領域200のシステムデータは、2回目の更新情報を反映した状態となっている。NVRAM22には2回目の更新情報が記憶されている。これは、2回目の更新情報による領域200のシステムデータの更新が、同期処理開始後に行われたからである。以上でCPUは、同期処理中にシステムデータの更新がある場合の同期処理を終了する。
なお、同期処理は、NVRAM22の空き領域に記憶できる更新情報の数が、記憶装置を制御するCPUが予め定める数になった場合に行われる。更新情報の記憶量がNVRAMの容量を超過しないようにするためである。
(データ再構成処理)
図2(G)から図2(J)はデータ再構成処理の説明図である。RAMのシステムデータは電源断により消失するので、再起動時に最新のシステムデータを復元する必要があり、データ再構成処理は、電源断後の再起動時に、NVRAMの更新情報とカード型メモリのシステムデータを用いて最新のシステムデータをRAMに復元するための処理である。
図2(G)は、図2(D)の状態で電源断が発生した後の記憶装置の状態を示す。電源断により、RAM20の記憶は消失するが、カード型メモリ21の2つの領域210及び211にあるシステムデータは消失しないことを示す。なお、NVRAM22に更新情報はない。
図2(H)は、図2(G)の状態から記憶装置を再起動し、データ再構成処理により、システムデータをRAM20に復元した後の記憶装置の状態を示す。CPUは、カード型メモリ21の領域210のシステムデータを、RAM20の領域200に複製する。領域210のシステムデータは最新の状態であり、CPUは単に領域210のシステムデータを複製するだけで、領域200のシステムデータが電源断前の状態に復元される。以上で、CPUはデータ再構成処理を終了する。
図2(I)は、図2(F)の状態で電源断が発生した後の記憶装置の状態を示す。電源断により、RAM20の記憶は消失するが、カード型メモリ21の2つの領域210及び211にあるシステムデータ及びNVRAM22の2回目の更新情報は消失しない。
図2(J)は、図2(I)の状態から記憶装置を再起動し、データ再構成処理により、システムデータをRAM20に復元した後の記憶装置の状態を示す。CPUは、カード型メモリ21の領域210にあるシステムデータと、NVRAM22の2回目の更新情報とにより、領域200にシステムデータの再構成を行う。これにより、領域200のシステムデータは電源断前の状態に復元される。以上で、CPUはデータ再構成処理を終了する。なお、データ再構成処理は、記憶装置の起動時に毎回行われる。
図3はデータ再構成処理の5つの具体例であり、データ再構成処理に使用されるNVRAMの更新情報及びカード型メモリのシステムデータと、復元されるRAMのシステムデータとの対応を示している。
図3(A)は、図2(B)で電源断が発生した後の記憶装置の状態を示す。再起動時のNVRAM22に更新情報が記憶され、カード型メモリ21の領域210及び211には更新前のシステムデータが記憶されている。CPUは、データ再構成処理によって、NVRAM22の更新情報と、カード型メモリ21の領域210にある更新前のシステムデータとから、RAM20の領域200に更新後のシステムデータを復元する。
図3(B)は、領域210がシステムデータを複製中に電源断が発生した後の記憶装置の状態を示す。再起動時のNVRAM22に更新情報が記憶され、カード型メモリ21の領域211には、更新前のシステムデータが記憶されている。領域210のシステムデータは、破壊されているので、データ再構成処理には使用されない。CPUは、データ再構成処理によって、NVRAM22の更新情報と、カード型メモリ21の領域211の更新前システムデータとから、RAM20の領域200に更新後のシステムデータを復元する。
図3(C)は、図2(D)で電源断が発生した後の記憶装置の状態を示す。再起動時のNVRAM22に更新情報はなく、カード型メモリ21の2つの領域210及び211には、更新後システムデータが記憶されている。CPUは、データ再構成処理によって、カード型メモリ21の領域210にある更新後システムデータのみから、RAM20の領域200に更新後のシステムデータを復元する。
図3(D)は、領域211がシステムデータを複製中に電源断が発生した後の記憶装置の状態を示す。再起動時のNVRAM22に2つの更新情報が記憶されている。また、カード型メモリ21の領域210には、1回目の更新情報で更新されたシステムデータが記憶されている。領域211のシステムデータは、破壊されているので、データ再構成処理には使用されない。CPUは、データ再構成処理によって、NVRAM22の2回目の更新情報と、カード型メモリ21の領域210にあるシステムデータとから、RAM20の領域200に2つの更新情報で更新されたシステムデータを復元する。1回目の更新情報は、システムデータ210に反映されているので、データ再構成処理には使用されない。
図3(E)は、図2(F)で電源断が発生した後の記憶装置の状態を示す。再起動時のNVRAM22に2回目の更新情報が記憶されている。また、カード型メモリ21の2つの領域210及び211には、1回目の更新情報で更新されたシステムデータが記憶されている。領域210及び211のシステムデータは、2回目の更新情報で更新されていない。CPUは、データ再構成処理によって、NVRAM22の2回目の更新情報と、カード型メモリ21の領域210にあるシステムデータとから、RAM20の領域200に2つの更新情報で更新されたシステムデータを復元する。
(ハードウェア構成)
図4は、本発明を実現するための装置のハードウェア構成例である。図4のハードウェア構成は、CPU401、SDカード402、RAM403、NVRAM404、ROM405、同期処理手段406、データ再構成処理手段407、書込み処理手段408、読込み処理手段409及び制御手段410から構成されている。CPU401は、ASIC(図示せず)を有し、SDカード402、RAM403、NVRAM404及びROM405と接続され、SDカード402、RAM403、NVRAM404及びROM405の内容を読み書きすることが可能である。また、CPU401は、RAM403又はROM405に保存されたプログラムを用いて、同期処理手段406、データ再構成処理手段407、書込み処理手段408、読込み処理手段409及び制御手段410を実行する。
電源断後においては、RAM403の内容は消失するが、SDカード402、NVRAM404及びROM405の内容は消失しない。
図5は、図4で示した装置上で動作する制御ソフトウェアの構成例を示す。
CPUは、ユーザ空間551とカーネル空間552を有する。カーネル空間には、OS550の構成要素として、SDカードドライバ507、仮想NVRAMドライバ508及びNVRAMドライバ509が存在する。ユーザ空間551には、装置を制御するソフトウェアがプロセスという形で存在する。プロセスには、装置の初期化時に最初に起動されるinitプロセス501があり、initプロセス501が、装置の動作に必要な他の処理を行う第一プロセス503、第二プロセス504、第三プロセス505等を生成、起動する。各プロセスは仮想NVRAMドライバ508に処理を要求するためのNVRAMライブラリ506を有する。また、initプロセス501は、仮想NVRAM制御プロセス502を起動する。仮想NVRAM制御プロセス502は、ユーザ空間に作業領域であるreadデータ513と、仮想NVRAM構成情報512のデータを有する。
ユーザ空間551とカーネル空間552の間には、仮想NVRAMドライバインターフェース530、SDカードドライバインターフェース531及びNVRAMドライバインターフェース532が存在し、ユーザ空間551にあるプロセスと、カーネル空間552にある対応するドライバとを結ぶ。
SDカード402、RAM403及びNVRAM404は実デバイスであり、図1(C)で示した記憶装置である仮想NVRAM(図示せず)を構成する。
仮想NVRAMを操作するためのデバイスドライバが仮想NVRAMドライバ508である。仮想NVRAM制御プロセス502は、仮想NVRAMドライバ508に対する特殊なプロセスとして、仮想NVRAMドライバ508と協働して仮想NVRAMの処理を行う。仮想NVRAM制御プロセス502以外で、仮想NVRAMを使用するプロセスは、NVRAMライブラリ506が静的あるいは動的にリンクされ、NVRAMライブラリ506を介して仮想NVRAMドライバインターフェース530を使用し、仮想NVRAMの読み書きを行う。仮想NVRAM制御プロセス502は、SDカードドライバインターフェース531とSDカードドライバ507とを介して、SDカード402の読み書きを行い、仮想NVRAMドライバ508を介して、RAM403の読み書きを行い、NVRAMドライバインターフェース532とNVRAMドライバ509とを介して、NVRAM404の読み書きを行う。
図6は、ユーザ空間551に存在する仮想NVRAM構成情報512の構成の例を示す。仮想NVRAM構成情報512は、SDカード402、RAM403及びNVRAM404が仮想NVRAMを構成するために必要な情報であり、仮想NVRAMのデバイス名600、NVRAMのデバイス名601、NVRAMのサイズ602、SDカードのデバイス名603、SDカード内で使用する領域のオフセット604、SDカード内で使用する領域のサイズ605及び同期処理を始める残りキャッシュエントリ数606から構成される。
図7は、NVRAM404の構成の例を示す。NVRAM404は、更新情報を記憶する実デバイスであり、NVRAM特別データエリア700、SDカード書込み制御データ701、キャッシュ制御データ702及びキャッシュエリア703から構成される。また、SDカード書込み制御データ701は、SDカード402の領域に記憶されたシステムデータを管理するための情報であり、SD領域1書込み中フラグ7010、SD領域1世代番号7011、SD領域2書込み中フラグ7012、SD領域2世代番号7013から構成される。キャッシュ制御データ702は、NVRAM404のキャッシュエリア703を管理する情報であり、キャッシュエントリ内の有効なエントリ数7020及びキャッシュエリア内での有効な先頭のエントリのオフセット7021から構成される。キャッシュエリア703は、キャッシュエントリ7030を記憶する領域である。キャッシュエントリ7030は更新情報であり、更新部分のシステムデータにおける相対位置を示すオフセット、世代番号、サイズ及び更新内容から構成される。
図8は、SDカード402の構成の例を示す。SDカード402は、更新前のシステムデータを記憶する実デバイスであり、MBR(Master Boot Record)800、FAT(File Allocation Table)情報801、制御データ802、第一仮想NVRAMデータ803及び第二仮想NVRAMデータ804から構成される。
(データ再構成処理)
データ再構成処理の実施例での活用について、図5のソフトウェア構成図と図9のフローチャートを用いて説明する。
装置起動時に、initプロセス501は、仮想NVRAM制御プロセス502を起動し(S101)、装置の動作に必要な他の処理を行う第一プロセス503、第二プロセス504、第三プロセス505等を起動する(S102、S103、S104)。次に、仮想NVRAM制御プロセス502は、仮想NVRAMのデータ再構成処理を行う。データ再構成処理は、最新のシステムデータを復元する。データ再構成処理を起動中、仮想NVRAM制御プロセス502は、仮想NVRAM制御プロセス502以外のプロセス(503、504、505)からの仮想NVRAMへの読み書き要求(S110, S111, S112)を待機させ、プロセス(503、504、505)を待ち状態にする。これは仮想NVRAMの初期化が完了しない間に、仮想NVRAMへの読み書きが行われないようにするためである。
仮想NVRAM制御プロセス502は、仮想NVRAM構成情報512を読み込み(S105)、また、仮想NVRAMドライバ508、NVRAMドライバ509及びSDカードドライバ507と通信することで、仮想NVRAM構成情報512の内容と仮想NVRAMを構成する実デバイスの内容が整合するかの確認を行う。
次に、仮想NVRAM制御プロセス502は、NVRAMドライバ509とNVRAMドライバインターフェース532を用いて(S120)、NVRAM404にアクセスし(S116)、SDカード書込み制御データ701とキャッシュ制御データ702の読み込み(S117、S121)を行う(P901)。また、仮想NVRAM制御プロセス502は、SDカード書込み制御データ701により、使用するSDカード402の領域を選択する。選択は以下の方法で行う。
まず、仮想NVRAM制御プロセス502は、SD領域1書込み中フラグ7010と、SD領域2書込み中フラグ7012との値を調べる。書き込み中フラグの値が「書き込み中」であることは、SD領域にデータを書き込み中に電源が遮断されたことを意味する。
この場合は、データの整合性が取れていない可能性があるため、書込み中フラグが「書き込み中」となっている領域は使用されない(P902、P903)。SD領域1書込み中フラグ7010と、SD領域2書込み中フラグ7012との両方のフラグが「書き込み中」でない場合には、仮想NVRAM制御プロセス502は、SD領域1世代番号7011とSD領域2世代番号7013を比較し、世代番号の大きな方の領域を選択する。世代番号は対応するSD領域の更新状態を示し、値が大きいほど更新が進んでいることを意味する。世代番号が同じであればSD領域1を選択する(P904)。
仮想NVRAM制御プロセス502は、第一仮想NVRAMデータ803又は第二仮想NVRAMデータ804の一方の領域を選択し、選択された領域に対応するSD領域1世代番号7011又はSD領域2世代番号7013を世代番号(G1)として仮想NVRAMドライバ508に記憶する。仮想NVRAM制御プロセス502は、SDカードドライバ507を介してSDカード402にアクセスし(S106、S107)、選択された仮想NVRAMデータを読み込み(S108、S109)、仮想NVRAM制御プロセス502内のreadデータ513の領域に記憶する(P905、P906)。
次に仮想NVRAM制御プロセス502は、NVRAM404のデータを用い、readデータ513のデータを更新する。この更新処理は以下の手順で行われる。
仮想NVRAM制御プロセス502は、「キャッシュエリア内の有効なエントリ数7020」の値、及び、キャッシュエリア703内の有効なキャッシュエントリ7030の最小の世代番号(G2)を取得する(P907)。キャッシュエリア703内の有効なキャッシュエントリ7030はそれぞれ世代番号を有し、更新の順番が識別できるようになっている。「キャッシュエリア内の有効なエントリ数7020」は、NVRAM404のキャッシュエリア703に記憶された有効なシステムデータの更新情報数(キャッシュエントリ7030の数。)を意味する。値が0なら、システムデータは更新されていないものとして、readデータ513の更新処理は終了する(P908)。値が1以上の場合、キャッシュエリア703内の有効なキャッシュエントリ7030の最小の世代番号(G2)と、選択された仮想NVRAMデータの世代番号(G1)とを比較する(P909)。キャッシュエリア703内には、選択された仮想NVRAMデータに反映された更新情報が残っている場合があるためである。
readデータ513に複製されたデータが有する世代番号(G1)が、最小の世代番号(G2)より大きいか、等しい場合、仮想NVRAM制御プロセス502は、世代番号(G1)に1を加えた世代番号を、更新が反映されていない更新情報の中で最も古い更新情報の世代番号(Gn)とする(P910)。
readデータ513に複製されたデータが有する世代番号(G1)が、最小の世代番号(G2)より小さい場合、仮想NVRAM制御プロセス502は、世代番号(G2)を、更新が反映されていない更新情報の中で最も古い更新情報の世代番号(Gn)とする(P911)。
readデータ513に複製されたデータに反映されていない更新が、NVRAM404に存在する場合は、更新が反映されていない更新情報の中で最も古い世代番号(Gn)から最新の世代番号(G3)までが示す更新情報により逐次更新を行い、電源断発生時の状態まで更新する(P912、P913、P914、P915)。
なお、キャッシュエリア703内の各キャッシュエントリ7030の位置は、キャッシュ制御データ702の「キャッシュエリア内で有効な先頭のエントリのオフセット7021」と各キャッシュエントリ7030のサイズから求められる。各更新は、各キャッシュエントリ7030内に書かれている更新内容を、キャッシュエントリ7030内に記憶されたオフセットで指定されたreadデータ513のデータ中の位置に、同じくキャッシュエントリ7030内に記憶されたサイズ分だけデータを書き込むことで行われる。この更新処理が終了後、仮想NVRAM制御プロセス502は、最新の世代番号(G3)を仮想NVRAMドライバ508中に記憶し(P916)、更新されたreadデータ513を、SDカード中の第一仮想NVRAMデータ803及び第二仮想NVRAMデータ804の両方に逐次複製を行う(P917)。
なお、逐次複製は、複製の前に、SD領域1書き込み中フラグ7010、又は、SD領域2書き込み中フラグ7012の対応するものを「書き込み中」にセットしてから、SDカードドライバ507及びSDカードドライバインターフェース531を使用して行う。
複製が終了したら、SD領域1世代番号7011、又は、SD領域2世代番号7013の対応するものを、仮想NVRAMドライバ508中に保存されている世代番号により更新し、SD領域1書き込み中フラグ7010、又は、SD領域2書き込み中フラグ7012の対応するものの「書込み中」をクリアする。
仮想NVRAM制御プロセス502は、仮想NVRAMドライバ508を介して、RAM403の第一NVRAMデータエリア510及び第二NVRAMデータエリア511に、更新したreadデータ513の内容を書き込む(P918)。仮想NVRAMドライバ508は、通常、第一NVRAMデータエリア510に複製されたシステムデータを利用する。
仮想NVRAM制御プロセス502は、NVRAM404のキャッシュ制御データ702の「キャッシュエリア内の有効なエントリ数7020」及び「キャッシュエリア内で有効な先頭のエントリのオフセット7021」を0とし(P919)、仮想NVRAMドライバ508 に対してデータ再構成処理が完了したことを通知する。仮想NVRAMドライバ508は、待ち状態にされたプロセス(503, 504, 505)を実行可能状態に変更する。以上で、データ再構成処理が完了する。
(書込み処理)
プロセスから仮想NVRAMに対して書き込み要求があった場合の処理について説明する。この処理は以下の手順で行われる(図5を参照。)。
まず、仮想NVRAMドライバ508は、他のプロセスが書き込み処理を行っていないか確認する。他のプロセス等が書き込み処理を行っている間は、重複して書き込み処理を行えないため、プロセスを待ち状態にする。
次に、仮想NVRAMドライバ508は、NVRAM404のキャッシュエリア703に、キャッシュエントリ7030を追加する空き領域が存在するかを確認する。空き領域が存在しない場合は、書込み処理は行わず、プロセスを待ち状態にする。空き領域は、仮想NVRAM構成情報212のNVRAMのサイズ602と、キャッシュエリア703にあるキャッシュエントリ7030のサイズとから計算する。
空き領域が存在する場合、仮想NVRAMドライバ508は、第一NVRAMデータエリア510に対する書込みと同時に、NVRAM404に対しても要求のあった書込みの更新情報を記憶する。
NVRAM404への書込みは、NVRAMドライバ509を使用して、NVRAM404のキャッシュエリア703にキャッシュエントリ7030を追加することで行われる。仮想NVRAMドライバ508が有する世代番号を1を加えた値に更新し、追加されたキャッシュエントリ7030の世代番号としてその値を書き込む。
また、 仮想NVRAMドライバ508は、キャッシュ制御データ702のキャッシュエリア内の有効なエントリ数7020を1加算する。その後、待機状態になっているプロセスが存在する場合には、それらのプロセスを実行可能にする。以上で、書込み処理が完了する。
(同期処理)
同期処理について、図5のソフトウェア構成図及び図10のフローチャートを用いて説明する。
仮想NVRAM制御プロセス502は、キャッシュエリア703の空き領域に記憶できるキャッシュエントリ7030の数が、仮想NVRAM構成情報512の「SDカード同期処理を始める残りキャッシュエントリ数606」になった場合、第一NVRAMデータエリア510の内容をSDカードに書込む同期処理を行う。
仮想NVRAM制御プロセス502は、仮想NVRAMドライバ508に書き込み要求をしたプロセスを一時的に待機させる(P1001)。次に、仮想NVRAMドライバ508から世代番号(G4)を読出し、NVRAM404のキャッシュ制御データ702からキャッシュエリア内の有効なエントリ数7020(E1)を読み出す(P1002)。その後、RAM403中の第一NVRAMデータエリア510の内容を第二NVRAMデータエリア511に複製する(P1003)。複製後、仮想NVRAM制御プロセス502は、待機させたプロセスの書込み要求を仮想NVRAMドライバ508が受け付けるようにする(P1004)。
次に、仮想NVRAM制御プロセス502は、NVRAM404のSD領域1書込み中フラグ7010を「書き込み中」にセットし、SD領域1世代番号7011を仮想NVRAMドライバ508から取得した世代番号(G4)に更新する(P1005)。その後、RAM403中の第二NVRAMデータエリア511の内容をSDカード402の仮想第一NVRAMデータ803に複製し(P1006)、複製後、NVRAM404のSD領域1書き込み中フラグ7010の「書き込み中」をクリアする(P1007)。
同様に、仮想NVRAM制御プロセス502は、NVRAM404のSD領域2書き込み中フラグ7012を「書き込み中」にセットし、SD領域2世代番号7013を仮想NVRAMドライバ508から取得した世代番号(G4)に更新する(P1008)。その後、RAM403中の第二NVRAMデータエリア511の内容をSDカード402の第二仮想NVRAMデータ804に複製し(P1009)、複製後、NVRAM404のSD領域2書き込み中フラグ7012の「書き込み中」をクリアする(P1010)。
仮想NVRAM制御プロセス502は、再度、プロセスの仮想NVRAMドライバ508に対する書込み要求を待機させ(P1011)、NVRAM404のキャッシュ制御データ702のキャッシュエリア内の有効なエントリ数7020(E2)を読み込み(P1012)、新しい有効なキャッシュエントリ数(E2)から、SD領域書込み前に有効であったキャッシュエントリ数(E1)を引き算し(P1013)、結果の値をキャッシュエリア内の有効なエントリ数7020に書き込む(P1014)。仮想NVRAMデータに反映されたキャッシュエントリ7030の領域を開放するためである。また、SDカード書込み前に有効であったキャッシュエントリ数(E1)が示すキャッシュエントリ505のサイズと、SD領域書込み前の「キャッシュエリア内で有効な先頭のエントリのオフセット7021」との加算により求めたオフセット値を「キャッシュエリア内で有効な先頭のエントリのオフセット7021」に書き込む(P1015)。次回の同期処理に備えるためである。
なお、キャッシュエリア703はリングバッファ的に使用され、キャッシュエリア703の最後は最初につながっているものとして扱う。NVRAM404のデータ更新後、仮想NVRAM制御プロセス502は、仮想NVRAMドライバに対して、待機させたプロセスの書込み要求を受け付けるようにする(P1016)。以上で、同期処理が完了する。
以上のように、仮想NVRAM制御プロセス502は、NVRAM509の空き領域がCPUに予め定められた状態になると同期処理を起動し、第一NVRAMデータエリア510の内容をSDカード402に複製した後、NVRAM509に蓄積された更新情報のうち、SDカード402内の第一仮想NVRAMデータ803及び第二仮想NVRAMデータ804の内容に反映された更新情報を消去する。同期処理を終了した時点で、SDカード402中の第一仮想NVRAMデータ803及び第二仮想NVRAMデータ804の内容は、同期処理を開始した時点のRAM403の第一NVRAMデータエリア210の内容を反映しており、NVRAM404のキャッシュエリア703の内容は、同期処理を開始した時点からの更新情報を反映している。この状態で電源断が発生した場合には、SDカード402の第一仮想NVRAMデータ803の内容を、NVRAM404のキャッシュエリア703に記憶されている更新情報で更新することで、電源断時のシステムデータを復元することが可能である。この復元はデータ再構成処理により行われる。
(読出し処理)
仮想NVRAM制御プロセス502以外のプロセスから仮想NVRAMに対して読み出し要求があった場合の処理について説明する。この処理は以下の手順で行われる(図11を参照。)。
まず、仮想NVRAMドライバ508は、プロセスからの読み込み要求が可能かどうかを判断する。仮想NVRAMドライバ508に対して別の書き込み処理が行われている場合は、重複して読み込み処理を行うことができないからである。その場合、プロセスからの読み込み要求を待ち状態にし、別の書き込み処理終了後に待機させた読み込み処理が行われる。仮想NVRAMに対して別の書き込み処理が行われていない場合は、仮想NVRAMドライバ508は、RAM403にある第一NVRAMデータエリア510にアクセスし(S119)、データを読み込み、プロセスに値を返すようにする。仮想NVRAMドライバ508は、NVRAM404及びSDカード402へのアクセスは行わない。以上で、読出し処理が完了する。
(変形例)
図12は、本発明を実現するための装置の変形例である。仮想NVRAMドライバ412により、SDカード402、RAM403及びNVRAM404の複数のデバイスを、ひとつのNVRAMであるかのように扱う。
なお、カード型メモリ媒体としては、上記実施例で説明したSDカードの他、コンパクトフラッシュ(登録商標)カード等が使用できる。
また、本発明は、図4、図12に示された記憶装置を組み込んだ画像形成装置として構成することができる。
本発明の基本原理を説明するための図である。 同期処理及びデータ再構成処理を説明するための図である。 データ再構成処理の具体例を示す図である。 本発明を実現するためのハードウェア構成例の図(その1)である。 実施例を説明するための図である。 仮想NVRAM構成情報の例を説明するための図である。 NVRAMの例を説明するための図である。 SDカードの例を説明するための図である。 データ再構成処理のフローチャートである。 同期処理のフローチャートである。 データ読出し処理を説明するための図である。 本発明を実現するためのハードウェア構成例の図(その2)である。
符号の説明
20 RAM
21 カード型メモリ
22 NVRAM
200 RAMの領域
201 RAMの領域
210 カード型メモリの領域
211 カード型メモリの領域
401 CPU
402 SDカード
403 RAM
404 NVRAM
405 ROM
406 同期処理手段
407 データ再構成処理手段
408 書込み処理手段
409 読出し処理手段
410 制御処理手段
502 仮想NVRAM制御プロセス
508 仮想NVRAMドライバ
510 第一NVRAMデータエリア
511 第二NVRAMデータエリア
512 仮想NVRAM構成情報
513 readデータ

Claims (12)

  1. 不揮発性RAMとフラッシュメモリとを備えた記憶装置において、
    電源断後も記憶すべきシステムデータが、前記不揮発性RAM及び前記フラッシュメモリに分散して記憶されることを特徴とする記憶装置。
  2. 揮発性RAMを有し、
    前記システムデータが、更新前データと更新後データと差分データとから成り、
    前記更新前データが前記フラッシュメモリに、前記更新後データが前記揮発性RAMに、前記差分データが前記不揮発性RAMに記憶されることを特徴とする請求項1に記載の記憶装置。
  3. 前記揮発性RAMの前記更新後データの変更と、前記不揮発性RAMの前記差分データの変更とが同時に行われることを特徴とする請求項2に記載の記憶装置。
  4. 前記不揮発性RAMの前記差分データは、0以上の更新履歴から成ることを特徴とする請求項2又は3のいずれか一項に記載の記憶装置。
  5. 前記フラッシュメモリの前記更新前データの書換えは、前記不揮発性RAMが所定の状態になった場合に行われることを特徴とする請求項2乃至4のいずれか一項に記載の記憶装置。
  6. 前記不揮発性RAMの前記差分データと、前記フラッシュメモリの前記更新前データとから、前記揮発性RAMへ前記更新後データを再構成するデータ再構成手段を有することを特徴とする請求項2乃至5のいずれか一項に記載の記憶装置。
  7. 前記フラッシュメモリの2つの領域に、同一の前記更新前データを逐次記憶する同期手段と、前記不揮発性RAMの前記差分データを消去する消去手段とを有することを特徴とする請求項2乃至6のいずれか一項に記載の記憶装置。
  8. 前記同期手段による前記フラッシュメモリの同期処理中に、電源断が発生した場合、前記データ再構成手段は、前記フラッシュメモリの2つの領域のうち、前記電源断時に記憶中の領域とは異なる領域に記憶された前記更新前データを用いて、前記更新後データを再構成することを特徴とする請求項7に記載の記憶装置。
  9. 前記揮発性RAM、前記不揮発性RAM及び前記フラッシュメモリが一つの記憶装置であるかのように、データ書込み読出し制御を行うデバイスドライバを有することを特徴とする請求項2乃至8のいずれか一項に記載の記憶装置。
  10. 請求項1乃至9のいずれか一項に記載の記憶装置を備えた画像形成装置。
  11. 電源断後も記憶すべきシステムデータの管理方法であって、不揮発性RAMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、
    前記システムデータが、前記不揮発性RAM及び前記フラッシュメモリに分散して記憶されることを特徴とするシステムデータの管理方法。
  12. 電源断後も記憶すべきシステムデータの管理方法であって、揮発性RAMと不揮発性RAMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、
    前記システムデータが、更新前データと更新後データと差分データとから成り、
    前記フラッシュメモリに前記更新前データが、前記揮発性RAMに前記更新後データが、前記不揮発性RAMに前記差分データが記憶されることを特徴とするシステムデータの管理方法。
JP2005174360A 2005-06-14 2005-06-14 記憶装置、画像形成装置及びシステムデータ管理方法 Pending JP2006350572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005174360A JP2006350572A (ja) 2005-06-14 2005-06-14 記憶装置、画像形成装置及びシステムデータ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005174360A JP2006350572A (ja) 2005-06-14 2005-06-14 記憶装置、画像形成装置及びシステムデータ管理方法

Publications (1)

Publication Number Publication Date
JP2006350572A true JP2006350572A (ja) 2006-12-28

Family

ID=37646361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005174360A Pending JP2006350572A (ja) 2005-06-14 2005-06-14 記憶装置、画像形成装置及びシステムデータ管理方法

Country Status (1)

Country Link
JP (1) JP2006350572A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157139A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010157141A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010237914A (ja) * 2009-03-31 2010-10-21 Sanden Corp コンテンツ再生装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157139A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010157141A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010237914A (ja) * 2009-03-31 2010-10-21 Sanden Corp コンテンツ再生装置

Similar Documents

Publication Publication Date Title
US6883114B2 (en) Block device driver enabling a ruggedized file system
US6668336B2 (en) Ruggedized block device driver
US8266365B2 (en) Ruggedized memory device
JP5071798B2 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
JP6441171B2 (ja) メモリシステム
JP5351046B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
US20100030959A1 (en) Snapshot system
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
TWI296778B (en) Method and system for maintaining smbios
JPH03278126A (ja) 計算機システム立上げ方式
JP2005010897A (ja) 計算機システム、計算機システム起動方法およびプログラム
KR19980014589A (ko) 화일시스템의 정보 복구방법
JPH04233639A (ja) ファイル管理システム
JP2006268503A (ja) 計算機システム、ディスク装置およびデータ更新制御方法
EP2174320A2 (en) Input/output control method and apparatus optimized for flash memory
JP2005128590A (ja) スナップショットシミュレーション機能を有するディスクアレイ装置
CN105988895B (zh) 快照处理方法及装置
EP1629386A4 (en) INVARIANT STORAGE POOL AND ITS IMPLEMENTATION
US20150074336A1 (en) Memory system, controller and method of controlling memory system
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
JP2006350572A (ja) 記憶装置、画像形成装置及びシステムデータ管理方法
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP2009205307A (ja) データ格納方法及びその装置、複製データ格納方法及びその装置並びにそれらの制御プログラム
JP2005165528A (ja) ディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラム
JP2010009553A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム