(57)【要約】【課題】  電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置等を提供することを目的とする。【解決手段】  ＮＶRＡM１２とカード型メモリ１１を備えた記憶装置において、電源断後も記憶すべきシステムデータを、ＮＶRＡM１２及びカード型メモリ１１に分散して記憶するように構成したことにより上記課題を解決する。【選択図】  図１
2006350572.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性RＡMとフラッシュメモリとを備えた記憶装置において、
電源断後も記憶すべきシステムデータが、前記不揮発性RＡM及び前記フラッシュメモリに分散して記憶されることを特徴とする記憶装置。
【請求項２】
揮発性RＡMを有し、
前記システムデータが、更新前データと更新後データと差分データとから成り、
前記更新前データが前記フラッシュメモリに、前記更新後データが前記揮発性RＡMに、前記差分データが前記不揮発性RＡMに記憶されることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記揮発性RＡMの前記更新後データの変更と、前記不揮発性RＡMの前記差分データの変更とが同時に行われることを特徴とする請求項２に記載の記憶装置。
【請求項４】
前記不揮発性RＡMの前記差分データは、０以上の更新履歴から成ることを特徴とする請求項２又は３のいずれか一項に記載の記憶装置。
【請求項５】
前記フラッシュメモリの前記更新前データの書換えは、前記不揮発性RＡMが所定の状態になった場合に行われることを特徴とする請求項２乃至４のいずれか一項に記載の記憶装置。
【請求項６】
前記不揮発性RＡMの前記差分データと、前記フラッシュメモリの前記更新前データとから、前記揮発性RＡMへ前記更新後データを再構成するデータ再構成手段を有することを特徴とする請求項２乃至５のいずれか一項に記載の記憶装置。
【請求項７】
前記フラッシュメモリの２つの領域に、同一の前記更新前データを逐次記憶する同期手段と、前記不揮発性RＡMの前記差分データを消去する消去手段とを有することを特徴とする請求項２乃至６のいずれか一項に記載の記憶装置。
【請求項８】
前記同期手段による前記フラッシュメモリの同期処理中に、電源断が発生した場合、前記データ再構成手段は、前記フラッシュメモリの２つの領域のうち、前記電源断時に記憶中の領域とは異なる領域に記憶された前記更新前データを用いて、前記更新後データを再構成することを特徴とする請求項７に記載の記憶装置。
【請求項９】
前記揮発性RＡM、前記不揮発性RＡM及び前記フラッシュメモリが一つの記憶装置であるかのように、データ書込み読出し制御を行うデバイスドライバを有することを特徴とする請求項２乃至8のいずれか一項に記載の記憶装置。
【請求項１０】
請求項１乃至9のいずれか一項に記載の記憶装置を備えた画像形成装置。
【請求項１１】
電源断後も記憶すべきシステムデータの管理方法であって、不揮発性RＡMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、
前記システムデータが、前記不揮発性RＡM及び前記フラッシュメモリに分散して記憶されることを特徴とするシステムデータの管理方法。
【請求項１２】
電源断後も記憶すべきシステムデータの管理方法であって、揮発性RＡMと不揮発性RＡMとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、
前記システムデータが、更新前データと更新後データと差分データとから成り、
前記フラッシュメモリに前記更新前データが、前記揮発性RＡMに前記更新後データが、前記不揮発性RＡMに前記差分データが記憶されることを特徴とするシステムデータの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、画像形成装置及びシステムデータ管理方法に係り、特にシステムデータを分散して記憶する記憶装置、画像形成装置及びシステムデータ管理方法に関する。
【背景技術】
【０００２】
プリンタ、コピー機又はスキャナ等は、電源断後の起動時まで保存されることを必要とするシステムデータを有する。システムデータは各種設定情報、ハードウェア構成情報、課金情報等があり、これらシステムデータを記憶する記憶装置として、電源断後もデータの保持が可能な不揮発性メモリが利用される。揮発性メモリはデータの読み書きが不揮発性メモリに比べ高速であるが、電源断時には記憶していたデータが消去されるので、システムデータの記憶には使用されない。不揮発性メモリは、書き換え可能ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、書き換え不可能ＲＯＭ及び不揮発性ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に大別される。書き換え可能ＲＯＭにはフラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等があり、書き換え不可能ＲＯＭにはマスクＲＯＭ、不揮発性ＲＡＭにはＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  ＲＡＭ）、ＢＢＳＲＡＭ（Ｂａｔｔｅｒｙ  Ｂａｃｋｕｐ  Ｓｔａｔｉｃ  ＲＡＭ）等がある。ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の機械的稼動部を有する記憶装置は、不揮発性メモリのような電気的記憶装置に比べ故障発生率が高いため、システムデータを記憶する目的に使用されることはない。
【０００３】
不揮発性メモリの特徴には、主に、容量、書き換えの可否、データの更新手段、許容書き換え回数、価格等がある。
【０００４】
従来技術としては、メモリカードパック内に、メモリカードと不揮発性ＲＡＭを備え、ユーザデータをメモリカードに保存し、システムデータを不揮発性ＲＡＭに保存することが知られている（特許文献１参照。）。また、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードから読み出したデータをＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）内のバッファに置くことによりデータの読出しを高速に行うことが知られている（特許文献２参照。）。
【特許文献１】特開２００４−３４１９８９号公報
【特許文献２】特開２００４−２２０５７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
不揮発性メモリの特徴を考慮の上、頻繁に小さなデータ単位での書き換えが行われるシステムデータには、小さな単位でデータの読み書きが可能なＮＶＲＡＭが使用される。フラッシュメモリには大容量で安価なものが存在するが、データの消去が、例えば１セクタ毎と、本来消去の必要がないデータまで消去され、頻繁に小さな単位で読み書きが行われるシステムデータの保存には無駄が多く適切でないからである。
【０００６】
しかし、システムデータが増大するとフラッシュメモリに比べて小容量のＮＶＲＡＭでは、必要なシステムデータを記憶することができなくなる。
【０００７】
特許文献１に記載された発明は、メモリパック内部の構成を示し、頻繁に書き換えられるシステムデータのみ不揮発性ＲＡＭに置くことにより、メモリカードの書き換え可能回数の制限を回避することを図っているが、システムデータ自体が増大した場合には対応できない。
【０００８】
また、特許文献２に記載された発明は、ＳＤカードにあるプログラム等のデータの読出しを高速にすることを目的としているのであって、不揮発性ＲＡＭの他のメモリによる代替を目的としたものではないため、問題の解決には至らない。
【０００９】
このように、大規模のシステムデータを効率的に扱うために、ＮＶＲＡＭが有する小さな単位でも無駄なく読み書きできる機能と、フラッシュメモリが有する大容量と、揮発性メモリが有するデータ読み書きの高速性とを同時に備えた記憶装置は存在しない。
【００１０】
そこで、本発明は電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置、画像形成装置及びシステムデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、不揮発性RＡMとフラッシュメモリとを備えた記憶装置において、電源断後も記憶すべきシステムデータが、前記不揮発性RＡM及び前記フラッシュメモリに分散して記憶されることを特徴とする。
【００１２】
また、本発明は、揮発性ＲＡＭを有し、前記システムデータが、更新前データと更新後データと差分データとから成り、前記更新前データが前記フラッシュメモリに、前記更新後データが前記揮発性ＲＡＭに、前記差分データが前記不揮発性ＲＡＭに記憶されることを特徴とする。
【００１３】
また、本発明は、前記揮発性ＲＡＭの前記更新後データの変更と、前記不揮発性ＲＡＭの前記差分データの変更とが同時に行われることを特徴とする。
【００１４】
また、本発明は、前記不揮発性ＲＡＭの前記差分データは、０以上の更新履歴から成ることを特徴とする。
【００１５】
また、本発明は、前記フラッシュメモリの前記更新前データの書換えは、前記不揮発性RＡMが所定の状態になった場合に行われることを特徴とする。
【００１６】
また、本発明は、前記不揮発性ＲＡＭの前記差分データと、前記フラッシュメモリの前記更新前データとから、前記揮発性ＲＡＭへ前記更新後データを再構成するデータ再構成手段を有することを特徴とする。
【００１７】
また、本発明は、前記フラッシュメモリの２つの領域に、同一の前記更新前データを逐次記憶する同期手段と、前記不揮発性ＲＡＭの前記差分データを消去する消去手段とを有することを特徴とする。
【００１８】
また、本発明は、前記同期手段による前記フラッシュメモリの同期処理中に、電源断が発生した場合、前記データ再構成手段は、前記フラッシュメモリの２つの領域のうち、前記電源断時に記憶中の領域とは異なる領域に記憶された前記更新前データを用いて、前記更新後データを再構成することを特徴とする。
【００１９】
また、本発明は、前記揮発性ＲＡＭ、前記不揮発性ＲＡＭ及び前記フラッシュメモリが一つの記憶装置であるかのように、データ書込み読出し制御を行うデバイスドライバを有することを特徴とする。
【００２０】
また、本発明は、電源断後も記憶すべきシステムデータの管理方法であって、不揮発性ＲＡＭとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、前記システムデータが、前記不揮発性ＲＡＭ及び前記フラッシュメモリに分散して記憶されることを特徴とする。
【００２１】
また、本発明は、電源断後も記憶すべきシステムデータの管理方法であって、揮発性ＲＡＭと不揮発性ＲＡＭとフラッシュメモリとを備えた記憶装置におけるシステムデータの管理方法において、前記システムデータが、更新前データと更新後データと差分データとから成り、前記フラッシュメモリに前記更新前データが、前記揮発性ＲＡＭに前記更新後データが、前記不揮発性RＡMに前記差分データが記憶されることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、電源断後も記憶すべき大容量のシステムデータを保存できる記憶装置、画像形成装置及びシステムデータ管理方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００２３】
（本発明の基本原理）
実際に使用するシステムデータを揮発性ＲＡＭに記憶し、小さな単位で頻繁に発生する更新情報のみを不揮発性ＲＡＭであるＮＶＲＡＭに逐次記憶し、更新前のシステムデータを記録としてフラッシュメモリに記憶する。
【００２４】
この構成により、読み書きが速い揮発性ＲＡＭでシステムデータを読み書きでき、ＮＶＲＡＭを小容量に維持し、フラッシュメモリの更新回数を少なくしながら大容量のシステムデータを管理することが可能となる。また、ＮＶＲＡＭの更新情報とフラッシュメモリの更新前のシステムデータとを用いて、最新のシステムデータが復元できるので、電源断が発生しても再起動時に最新のシステムデータが使用できる。
【００２５】
図１を用いて、本発明の基本原理を説明する。図１（Ａ）は、従来の記憶装置を、図１（Ｂ）は、システムデータの増大に対応できない従来の記憶装置を、図１（Ｃ）は、システムデータの増大に対応できる本発明による記憶装置を示す。図１（Ａ）の従来の記憶装置では、システムデータは不揮発性メモリのＮＶＲＡＭ１２にある領域１３Ａに記憶される。ＣＰＵ１４は、ＮＶＲＡＭ１２の領域１３Ａとの間でシステムデータの読み書きを行う。しかし、図１（Ｂ）に示すようにシステムデータに必要な領域１３ＢがＮＶＲＡＭ１２の容量を超えると、もはやシステムデータの領域１３ＢをＮＶＲＡＭ１２に記憶できなくなる。
【００２６】
一方、図１（Ｃ）の本発明による記憶装置では、システムデータはＲＡＭ１０の領域１００Ｃに記憶される。ＣＰＵ１４は、常時ＲＡＭ１０の領域１００Ｃとの間でシステムデータの読み書きを行う。ＣＰＵ１４は、システムデータ（更新後かつ最新である。）を、ＮＶＲＡＭ１２ではなく、ＲＡＭ１０の領域１００Ｃに記憶しているので、システムデータの格納に必要な領域１００ＣがＮＶＲＡＭ１２の容量を超えても、システムデータの利用が可能である。
【００２７】
また、カード型メモリ１１の２つの領域１１０Ｃ及び１１１Ｃ並びにＲＡＭ１０の領域１０１Ｃにあるシステムデータは、更新前の同一のシステムデータである。領域１０１Ｃのシステムデータは、後述の同期処理に使用される。なお、後述するように、その後、領域１００Ｃのシステムデータが領域１０１Ｃ、１１０Ｃ及び１１１Ｃに複製される。また、カード型メモリ１１の２つの領域にシステムデータを記憶するのは、一方のシステムデータが電源断による破壊により使用できなくなった場合にも、他方のシステムデータが使用できるようにするためである。なお、ＣＰＵが、カード型メモリ１１を更新するタイミングは、後述の同期処理又はデータ再構成処理が起動されたときであり、ＲＡＭ１０やＮＶＲＡＭ１２への更新に比べ頻度が低い。
【００２８】
システムデータを更新する場合、ＣＰＵ１４は、領域１００Ｃのシステムデータを更新する。また、ＣＰＵ１４は、領域１００Ｃのシステムデータの更新と同時に、ＮＶＲＡＭ１２への更新情報の書込みを行う。突然の電源断に備えるためである。ＮＶＲＡＭは不揮発性メモリであり、電源断後もデータを記憶する。従って、この更新後に電源断が発生したとしても、揮発性メモリであるＲＡＭ１０の領域１００Ｃにあるシステムデータは消失するが、不揮発性メモリであるＮＶＲＡＭ１２の更新情報及び不揮発性メモリであるカード型メモリ１１の領域１１０Ｃ及び１１１Ｃにあるシステムデータは消失しない。そこで、ＣＰＵ１４は、再起動時にＮＶＲＡＭ１２の更新情報と、カード型メモリ１１のシステムデータ１１０Ｃ又は１１１Ｃとから、領域１００Ｃに更新後のシステムデータを復元する。ＣＰＵ１４は引き続き、この復元された領域１００Ｃのシステムデータを利用する。
（同期処理）
図２（Ａ）から図２（Ｆ）は同期処理の説明図である。同期処理とは、プロセスに使用されるＲＡＭ２０の領域２００にあるシステムデータをカード型メモリに複製する処理をいう。図２（Ａ）は、システムデータの更新が行われた後の記憶装置の状態を示す。記憶装置を制御するＣＰＵ（図示せず）は、ＲＡＭ２０の領域２００に更新されたシステムデータを記憶し、ＮＶＲＡＭ２２に更新情報を記憶する。また、領域２０１、２１０及び２１１のシステムデータはすべて更新前のシステムデータである。その後、同期処理が開始されると、ＣＰＵは、領域２００のシステムデータを、同じＲＡＭ２０の領域２０１に複製する。複製後、領域２０１のシステムデータは、領域２００のシステムデータと同じ内容になる。
【００２９】
図２（Ｂ）は、ＲＡＭのシステムデータの複製が終了した時点の記憶装置の状態を示す。この状態で、ＣＰＵは、領域２０１のシステムデータを、カード型メモリ２１の２つの領域２１０及び２１１に逐次複製を開始する。逐次２回の複製を行うのは、後述するように、カード型メモリのどちらか一方のシステムデータが常に使用できる状態にするためである。
【００３０】
また、ＣＰＵは、システムデータをカード型メモリへ複製中であっても、ＲＡＭの領域２００にあるシステムデータの更新を受け付ける必要がある。そこで、同期処理中にシステムデータの更新がある場合とない場合について説明する。
【００３１】
まず、同期処理中にシステムデータの更新がない場合について説明する。
【００３２】
図２（Ｃ）は、領域２０１のシステムデータが領域２１０へ複製された後の記憶装置の状態を示す。この状態で、ＣＰＵは、領域２０１のシステムデータを領域２１１へ複製を開始する。領域２１１への複製が終了すると、更新情報は消去される。更新情報がカード型メモリ２１の領域２１０及び２１１にあるシステムデータに反映されたからである。
【００３３】
図２（Ｄ）は、領域２０１のシステムデータが領域２１０及び２１１へ複製された後の記憶装置の状態を示す。カード型メモリ２１の領域２１０及び２１１にあるシステムデータと、ＲＡＭ２０の領域２００及び２０１にあるシステムデータとの内容はすべて同じである。また、ＮＶＲＡＭ２２には更新情報がない状態となっている。以上でＣＰＵは同期処理中にシステムデータの更新がない場合の同期処理を終了する。
【００３４】
次に、同期処理中にシステムデータの更新がある場合を説明する。
【００３５】
図２（Ｅ）は、領域２０１のシステムデータが領域２１０へ複製された時点の記憶装置の状態を示す。ＮＶＲＡＭ２２は２つの更新情報を記憶しており、領域２００にあるシステムデータは、２つの更新情報を反映している。しかし、領域２０１のシステムデータは２回目の更新情報を反映していない。また、カード型メモリ２１の領域２１０のシステムデータは２回目の更新情報を反映しておらず、領域２１１のシステムデータは２つの更新情報を反映していない。この状態で、ＣＰＵは、領域２０１のシステムデータを、領域２１１に複製を開始する。領域２０１のシステムデータの領域２１１への複製が終了すると、１回目の更新情報は消去されるが、２回目の更新情報は消去されない。２回目の更新情報がカード型メモリ２１の２つのシステムデータに反映されていないからである。
【００３６】
図２（Ｆ）は、領域２０１のシステムデータが領域２１１へ複製された後の記憶装置の状態を示す。カード型メモリ２１の領域２１０及び２１１のシステムデータと、ＲＡＭ２０の領域２０１のシステムデータとの内容はすべて同じである。領域２００のシステムデータは、２回目の更新情報を反映した状態となっている。ＮＶＲＡＭ２２には２回目の更新情報が記憶されている。これは、２回目の更新情報による領域２００のシステムデータの更新が、同期処理開始後に行われたからである。以上でＣＰＵは、同期処理中にシステムデータの更新がある場合の同期処理を終了する。
【００３７】
なお、同期処理は、ＮＶＲＡＭ２２の空き領域に記憶できる更新情報の数が、記憶装置を制御するＣＰＵが予め定める数になった場合に行われる。更新情報の記憶量がＮＶＲＡＭの容量を超過しないようにするためである。
（データ再構成処理）
図２（Ｇ）から図２（Ｊ）はデータ再構成処理の説明図である。ＲＡＭのシステムデータは電源断により消失するので、再起動時に最新のシステムデータを復元する必要があり、データ再構成処理は、電源断後の再起動時に、ＮＶＲＡＭの更新情報とカード型メモリのシステムデータを用いて最新のシステムデータをＲＡＭに復元するための処理である。
【００３８】
図２（Ｇ）は、図２（Ｄ）の状態で電源断が発生した後の記憶装置の状態を示す。電源断により、ＲＡＭ２０の記憶は消失するが、カード型メモリ２１の２つの領域２１０及び２１１にあるシステムデータは消失しないことを示す。なお、ＮＶＲＡＭ２２に更新情報はない。
【００３９】
図２（Ｈ）は、図２（Ｇ）の状態から記憶装置を再起動し、データ再構成処理により、システムデータをＲＡＭ２０に復元した後の記憶装置の状態を示す。ＣＰＵは、カード型メモリ２１の領域２１０のシステムデータを、ＲＡＭ２０の領域２００に複製する。領域２１０のシステムデータは最新の状態であり、ＣＰＵは単に領域２１０のシステムデータを複製するだけで、領域２００のシステムデータが電源断前の状態に復元される。以上で、ＣＰＵはデータ再構成処理を終了する。
【００４０】
図２（Ｉ）は、図２（Ｆ）の状態で電源断が発生した後の記憶装置の状態を示す。電源断により、ＲＡＭ２０の記憶は消失するが、カード型メモリ２１の２つの領域２１０及び２１１にあるシステムデータ及びＮＶＲＡＭ２２の２回目の更新情報は消失しない。
【００４１】
図２（Ｊ）は、図２（Ｉ）の状態から記憶装置を再起動し、データ再構成処理により、システムデータをＲＡＭ２０に復元した後の記憶装置の状態を示す。ＣＰＵは、カード型メモリ２１の領域２１０にあるシステムデータと、ＮＶＲＡＭ２２の２回目の更新情報とにより、領域２００にシステムデータの再構成を行う。これにより、領域２００のシステムデータは電源断前の状態に復元される。以上で、ＣＰＵはデータ再構成処理を終了する。なお、データ再構成処理は、記憶装置の起動時に毎回行われる。
【００４２】
図３はデータ再構成処理の５つの具体例であり、データ再構成処理に使用されるＮＶＲＡＭの更新情報及びカード型メモリのシステムデータと、復元されるＲＡＭのシステムデータとの対応を示している。
【００４３】
図３（Ａ）は、図２（Ｂ）で電源断が発生した後の記憶装置の状態を示す。再起動時のＮＶＲＡＭ２２に更新情報が記憶され、カード型メモリ２１の領域２１０及び２１１には更新前のシステムデータが記憶されている。ＣＰＵは、データ再構成処理によって、ＮＶＲＡＭ２２の更新情報と、カード型メモリ２１の領域２１０にある更新前のシステムデータとから、ＲＡＭ２０の領域２００に更新後のシステムデータを復元する。
【００４４】
図３（Ｂ）は、領域２１０がシステムデータを複製中に電源断が発生した後の記憶装置の状態を示す。再起動時のＮＶＲＡＭ２２に更新情報が記憶され、カード型メモリ２１の領域２１１には、更新前のシステムデータが記憶されている。領域２１０のシステムデータは、破壊されているので、データ再構成処理には使用されない。ＣＰＵは、データ再構成処理によって、ＮＶＲＡＭ２２の更新情報と、カード型メモリ２１の領域２１１の更新前システムデータとから、ＲＡＭ２０の領域２００に更新後のシステムデータを復元する。
【００４５】
図３（Ｃ）は、図２（Ｄ）で電源断が発生した後の記憶装置の状態を示す。再起動時のＮＶＲＡＭ２２に更新情報はなく、カード型メモリ２１の２つの領域２１０及び２１１には、更新後システムデータが記憶されている。ＣＰＵは、データ再構成処理によって、カード型メモリ２１の領域２１０にある更新後システムデータのみから、ＲＡＭ２０の領域２００に更新後のシステムデータを復元する。
【００４６】
図３（Ｄ）は、領域２１１がシステムデータを複製中に電源断が発生した後の記憶装置の状態を示す。再起動時のＮＶＲＡＭ２２に２つの更新情報が記憶されている。また、カード型メモリ２１の領域２１０には、１回目の更新情報で更新されたシステムデータが記憶されている。領域２１１のシステムデータは、破壊されているので、データ再構成処理には使用されない。ＣＰＵは、データ再構成処理によって、ＮＶＲＡＭ２２の２回目の更新情報と、カード型メモリ２１の領域２１０にあるシステムデータとから、ＲＡＭ２０の領域２００に２つの更新情報で更新されたシステムデータを復元する。１回目の更新情報は、システムデータ２１０に反映されているので、データ再構成処理には使用されない。
【００４７】
図３（Ｅ）は、図２（Ｆ）で電源断が発生した後の記憶装置の状態を示す。再起動時のＮＶＲＡＭ２２に２回目の更新情報が記憶されている。また、カード型メモリ２１の２つの領域２１０及び２１１には、１回目の更新情報で更新されたシステムデータが記憶されている。領域２１０及び２１１のシステムデータは、２回目の更新情報で更新されていない。ＣＰＵは、データ再構成処理によって、ＮＶＲＡＭ２２の２回目の更新情報と、カード型メモリ２１の領域２１０にあるシステムデータとから、ＲＡＭ２０の領域２００に２つの更新情報で更新されたシステムデータを復元する。
【実施例】
【００４８】
（ハードウェア構成）
図４は、本発明を実現するための装置のハードウェア構成例である。図４のハードウェア構成は、ＣＰＵ４０１、ＳＤカード４０２、ＲＡＭ４０３、ＮＶＲＡＭ４０４、ＲＯＭ４０５、同期処理手段４０６、データ再構成処理手段４０７、書込み処理手段４０８、読込み処理手段４０９及び制御手段４１０から構成されている。ＣＰＵ４０１は、ＡＳＩＣ（図示せず）を有し、ＳＤカード４０２、ＲＡＭ４０３、ＮＶＲＡＭ４０４及びＲＯＭ４０５と接続され、ＳＤカード４０２、ＲＡＭ４０３、ＮＶＲＡＭ４０４及びＲＯＭ４０５の内容を読み書きすることが可能である。また、ＣＰＵ４０１は、ＲＡＭ４０３又はＲＯＭ４０５に保存されたプログラムを用いて、同期処理手段４０６、データ再構成処理手段４０７、書込み処理手段４０８、読込み処理手段４０９及び制御手段４１０を実行する。
【００４９】
電源断後においては、ＲＡＭ４０３の内容は消失するが、ＳＤカード４０２、ＮＶＲＡＭ４０４及びＲＯＭ４０５の内容は消失しない。
【００５０】
図５は、図４で示した装置上で動作する制御ソフトウェアの構成例を示す。
【００５１】
ＣＰＵは、ユーザ空間５５１とカーネル空間５５２を有する。カーネル空間には、ＯＳ５５０の構成要素として、ＳＤカードドライバ５０７、仮想ＮＶＲＡＭドライバ５０８及びＮＶＲＡＭドライバ５０９が存在する。ユーザ空間５５１には、装置を制御するソフトウェアがプロセスという形で存在する。プロセスには、装置の初期化時に最初に起動されるinitプロセス５０１があり、initプロセス５０１が、装置の動作に必要な他の処理を行う第一プロセス５０３、第二プロセス５０４、第三プロセス５０５等を生成、起動する。各プロセスは仮想ＮＶＲＡＭドライバ５０８に処理を要求するためのＮＶＲＡＭライブラリ５０６を有する。また、initプロセス５０１は、仮想ＮＶＲＡＭ制御プロセス５０２を起動する。仮想ＮＶＲＡＭ制御プロセス５０２は、ユーザ空間に作業領域であるｒｅａｄデータ５１３と、仮想ＮＶＲＡＭ構成情報５１２のデータを有する。
【００５２】
ユーザ空間５５１とカーネル空間５５２の間には、仮想ＮＶＲＡＭドライバインターフェース５３０、ＳＤカードドライバインターフェース５３１及びＮＶＲＡＭドライバインターフェース５３２が存在し、ユーザ空間５５１にあるプロセスと、カーネル空間５５２にある対応するドライバとを結ぶ。
【００５３】
ＳＤカード４０２、ＲＡＭ４０３及びＮＶＲＡＭ４０４は実デバイスであり、図１（Ｃ）で示した記憶装置である仮想ＮＶＲＡＭ（図示せず）を構成する。
【００５４】
仮想ＮＶＲＡＭを操作するためのデバイスドライバが仮想ＮＶＲＡＭドライバ５０８である。仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭドライバ５０８に対する特殊なプロセスとして、仮想ＮＶＲＡＭドライバ５０８と協働して仮想ＮＶＲＡＭの処理を行う。仮想ＮＶＲＡＭ制御プロセス５０２以外で、仮想ＮＶＲＡＭを使用するプロセスは、ＮＶＲＡＭライブラリ５０６が静的あるいは動的にリンクされ、ＮＶＲＡＭライブラリ５０６を介して仮想ＮＶＲＡＭドライバインターフェース５３０を使用し、仮想ＮＶＲＡＭの読み書きを行う。仮想ＮＶＲＡＭ制御プロセス５０２は、ＳＤカードドライバインターフェース５３１とＳＤカードドライバ５０７とを介して、ＳＤカード４０２の読み書きを行い、仮想ＮＶＲＡＭドライバ５０８を介して、ＲＡＭ４０３の読み書きを行い、ＮＶＲＡＭドライバインターフェース５３２とＮＶＲＡＭドライバ５０９とを介して、ＮＶＲＡＭ４０４の読み書きを行う。
【００５５】
図６は、ユーザ空間５５１に存在する仮想ＮＶＲＡＭ構成情報５１２の構成の例を示す。仮想ＮＶＲＡＭ構成情報５１２は、ＳＤカード４０２、ＲＡＭ４０３及びＮＶＲＡＭ４０４が仮想ＮＶＲＡＭを構成するために必要な情報であり、仮想ＮＶＲＡＭのデバイス名６００、ＮＶＲＡＭのデバイス名６０１、ＮＶＲＡＭのサイズ６０２、ＳＤカードのデバイス名６０３、ＳＤカード内で使用する領域のオフセット６０４、ＳＤカード内で使用する領域のサイズ６０５及び同期処理を始める残りキャッシュエントリ数６０６から構成される。
【００５６】
図７は、ＮＶＲＡＭ４０４の構成の例を示す。ＮＶＲＡＭ４０４は、更新情報を記憶する実デバイスであり、ＮＶＲＡＭ特別データエリア７００、ＳＤカード書込み制御データ７０１、キャッシュ制御データ７０２及びキャッシュエリア７０３から構成される。また、ＳＤカード書込み制御データ７０１は、ＳＤカード４０２の領域に記憶されたシステムデータを管理するための情報であり、ＳＤ領域１書込み中フラグ７０１０、ＳＤ領域１世代番号７０１１、ＳＤ領域２書込み中フラグ７０１２、ＳＤ領域２世代番号７０１３から構成される。キャッシュ制御データ７０２は、ＮＶＲＡＭ４０４のキャッシュエリア７０３を管理する情報であり、キャッシュエントリ内の有効なエントリ数７０２０及びキャッシュエリア内での有効な先頭のエントリのオフセット７０２１から構成される。キャッシュエリア７０３は、キャッシュエントリ７０３０を記憶する領域である。キャッシュエントリ７０３０は更新情報であり、更新部分のシステムデータにおける相対位置を示すオフセット、世代番号、サイズ及び更新内容から構成される。
【００５７】
図８は、ＳＤカード４０２の構成の例を示す。ＳＤカード４０２は、更新前のシステムデータを記憶する実デバイスであり、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）８００、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）情報８０１、制御データ８０２、第一仮想ＮＶＲＡＭデータ８０３及び第二仮想ＮＶＲＡＭデータ８０４から構成される。
（データ再構成処理）
データ再構成処理の実施例での活用について、図５のソフトウェア構成図と図９のフローチャートを用いて説明する。
【００５８】
装置起動時に、initプロセス５０１は、仮想ＮＶＲＡＭ制御プロセス５０２を起動し（Ｓ１０１）、装置の動作に必要な他の処理を行う第一プロセス５０３、第二プロセス５０４、第三プロセス５０５等を起動する（S１０２、Ｓ１０３、Ｓ１０４）。次に、仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭのデータ再構成処理を行う。データ再構成処理は、最新のシステムデータを復元する。データ再構成処理を起動中、仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭ制御プロセス５０２以外のプロセス（５０３、５０４、５０５）からの仮想ＮＶＲＡＭへの読み書き要求（S１１０, S１１１, S１１２）を待機させ、プロセス（５０３、５０４、５０５）を待ち状態にする。これは仮想ＮＶＲＡＭの初期化が完了しない間に、仮想ＮＶＲＡＭへの読み書きが行われないようにするためである。
【００５９】
仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭ構成情報５１２を読み込み（S１０５）、また、仮想ＮＶＲＡＭドライバ５０８、ＮＶＲＡＭドライバ５０９及びＳＤカードドライバ５０７と通信することで、仮想ＮＶＲＡＭ構成情報５１２の内容と仮想ＮＶＲＡＭを構成する実デバイスの内容が整合するかの確認を行う。
【００６０】
次に、仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭドライバ５０９とＮＶＲＡＭドライバインターフェース５３２を用いて（Ｓ１２０）、ＮＶＲＡＭ４０４にアクセスし（Ｓ１１６）、ＳＤカード書込み制御データ７０１とキャッシュ制御データ７０２の読み込み（Ｓ１１７、S１２１）を行う（Ｐ９０１）。また、仮想ＮＶＲＡＭ制御プロセス５０２は、ＳＤカード書込み制御データ７０１により、使用するＳＤカード４０２の領域を選択する。選択は以下の方法で行う。 
まず、仮想ＮＶＲＡＭ制御プロセス５０２は、ＳＤ領域１書込み中フラグ７０１０と、ＳＤ領域２書込み中フラグ７０１２との値を調べる。書き込み中フラグの値が「書き込み中」であることは、ＳＤ領域にデータを書き込み中に電源が遮断されたことを意味する。
【００６１】
この場合は、データの整合性が取れていない可能性があるため、書込み中フラグが「書き込み中」となっている領域は使用されない（Ｐ９０２、Ｐ９０３）。ＳＤ領域１書込み中フラグ７０１０と、ＳＤ領域２書込み中フラグ７０１２との両方のフラグが「書き込み中」でない場合には、仮想ＮＶＲＡＭ制御プロセス５０２は、ＳＤ領域１世代番号７０１１とＳＤ領域２世代番号７０１３を比較し、世代番号の大きな方の領域を選択する。世代番号は対応するＳＤ領域の更新状態を示し、値が大きいほど更新が進んでいることを意味する。世代番号が同じであればＳＤ領域１を選択する（Ｐ９０４）。
【００６２】
仮想ＮＶＲＡＭ制御プロセス５０２は、第一仮想ＮＶＲＡＭデータ８０３又は第二仮想ＮＶＲＡＭデータ８０４の一方の領域を選択し、選択された領域に対応するＳＤ領域１世代番号７０１１又はＳＤ領域２世代番号７０１３を世代番号（Ｇ１）として仮想ＮＶＲＡＭドライバ５０８に記憶する。仮想ＮＶＲＡＭ制御プロセス５０２は、ＳＤカードドライバ５０７を介してＳＤカード４０２にアクセスし（Ｓ１０６、Ｓ１０７）、選択された仮想ＮＶＲＡＭデータを読み込み（Ｓ１０８、Ｓ１０９）、仮想ＮＶＲＡＭ制御プロセス５０２内のｒｅａｄデータ５１３の領域に記憶する（Ｐ９０５、Ｐ９０６）。
【００６３】
次に仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭ４０４のデータを用い、ｒｅａｄデータ５１３のデータを更新する。この更新処理は以下の手順で行われる。
【００６４】
仮想ＮＶＲＡＭ制御プロセス５０２は、「キャッシュエリア内の有効なエントリ数７０２０」の値、及び、キャッシュエリア７０３内の有効なキャッシュエントリ７０３０の最小の世代番号（Ｇ２）を取得する（Ｐ９０７）。キャッシュエリア７０３内の有効なキャッシュエントリ７０３０はそれぞれ世代番号を有し、更新の順番が識別できるようになっている。「キャッシュエリア内の有効なエントリ数７０２０」は、ＮＶＲＡＭ４０４のキャッシュエリア７０３に記憶された有効なシステムデータの更新情報数（キャッシュエントリ７０３０の数。）を意味する。値が０なら、システムデータは更新されていないものとして、ｒｅａｄデータ５１３の更新処理は終了する（Ｐ９０８）。値が１以上の場合、キャッシュエリア７０３内の有効なキャッシュエントリ７０３０の最小の世代番号（Ｇ２）と、選択された仮想ＮＶＲＡＭデータの世代番号（Ｇ１）とを比較する（Ｐ９０９）。キャッシュエリア７０３内には、選択された仮想ＮＶＲＡＭデータに反映された更新情報が残っている場合があるためである。
【００６５】
ｒｅａｄデータ５１３に複製されたデータが有する世代番号（Ｇ１）が、最小の世代番号（Ｇ２）より大きいか、等しい場合、仮想ＮＶＲＡＭ制御プロセス５０２は、世代番号（Ｇ１）に１を加えた世代番号を、更新が反映されていない更新情報の中で最も古い更新情報の世代番号（Ｇn）とする（Ｐ９１０）。
【００６６】
ｒｅａｄデータ５１３に複製されたデータが有する世代番号（Ｇ１）が、最小の世代番号（Ｇ２）より小さい場合、仮想ＮＶＲＡＭ制御プロセス５０２は、世代番号（Ｇ２）を、更新が反映されていない更新情報の中で最も古い更新情報の世代番号（Ｇn）とする（Ｐ９１１）。
【００６７】
ｒｅａｄデータ５１３に複製されたデータに反映されていない更新が、ＮＶＲＡＭ４０４に存在する場合は、更新が反映されていない更新情報の中で最も古い世代番号（Ｇn）から最新の世代番号（Ｇ３）までが示す更新情報により逐次更新を行い、電源断発生時の状態まで更新する（Ｐ９１２、Ｐ９１３、Ｐ９１４、Ｐ９１５）。  
なお、キャッシュエリア７０３内の各キャッシュエントリ７０３０の位置は、キャッシュ制御データ７０２の「キャッシュエリア内で有効な先頭のエントリのオフセット７０２１」と各キャッシュエントリ７０３０のサイズから求められる。各更新は、各キャッシュエントリ７０３０内に書かれている更新内容を、キャッシュエントリ７０３０内に記憶されたオフセットで指定されたｒｅａｄデータ５１３のデータ中の位置に、同じくキャッシュエントリ７０３０内に記憶されたサイズ分だけデータを書き込むことで行われる。この更新処理が終了後、仮想ＮＶＲＡＭ制御プロセス５０２は、最新の世代番号（Ｇ３）を仮想ＮＶＲＡＭドライバ５０８中に記憶し（Ｐ９１６）、更新されたｒｅａｄデータ５１３を、ＳＤカード中の第一仮想ＮＶＲＡＭデータ８０３及び第二仮想ＮＶＲＡＭデータ８０４の両方に逐次複製を行う（Ｐ９１７）。
【００６８】
なお、逐次複製は、複製の前に、ＳＤ領域１書き込み中フラグ７０１０、又は、ＳＤ領域２書き込み中フラグ７０１２の対応するものを「書き込み中」にセットしてから、ＳＤカードドライバ５０７及びＳＤカードドライバインターフェース５３１を使用して行う。
【００６９】
複製が終了したら、ＳＤ領域１世代番号７０１１、又は、ＳＤ領域２世代番号７０１３の対応するものを、仮想ＮＶＲＡＭドライバ５０８中に保存されている世代番号により更新し、ＳＤ領域１書き込み中フラグ７０１０、又は、ＳＤ領域２書き込み中フラグ７０１２の対応するものの「書込み中」をクリアする。 
仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭドライバ５０８を介して、ＲＡＭ４０３の第一ＮＶＲＡＭデータエリア５１０及び第二ＮＶＲＡＭデータエリア５１１に、更新したｒｅａｄデータ５１３の内容を書き込む（Ｐ９１８）。仮想ＮＶＲＡＭドライバ５０８は、通常、第一ＮＶＲＡＭデータエリア５１０に複製されたシステムデータを利用する。
【００７０】
仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭ４０４のキャッシュ制御データ７０２の「キャッシュエリア内の有効なエントリ数７０２０」及び「キャッシュエリア内で有効な先頭のエントリのオフセット７０２１」を０とし（Ｐ９１９）、仮想ＮＶＲＡＭドライバ５０８ に対してデータ再構成処理が完了したことを通知する。仮想ＮＶＲＡＭドライバ５０８は、待ち状態にされたプロセス（５０３, ５０４, ５０５）を実行可能状態に変更する。以上で、データ再構成処理が完了する。
（書込み処理）
プロセスから仮想ＮＶＲＡＭに対して書き込み要求があった場合の処理について説明する。この処理は以下の手順で行われる（図５を参照。）。
【００７１】
まず、仮想ＮＶＲＡＭドライバ５０８は、他のプロセスが書き込み処理を行っていないか確認する。他のプロセス等が書き込み処理を行っている間は、重複して書き込み処理を行えないため、プロセスを待ち状態にする。
【００７２】
次に、仮想ＮＶＲＡＭドライバ５０８は、ＮＶＲＡＭ４０４のキャッシュエリア７０３に、キャッシュエントリ７０３０を追加する空き領域が存在するかを確認する。空き領域が存在しない場合は、書込み処理は行わず、プロセスを待ち状態にする。空き領域は、仮想ＮＶＲＡＭ構成情報２１２のＮＶＲＡＭのサイズ６０２と、キャッシュエリア７０３にあるキャッシュエントリ７０３０のサイズとから計算する。
【００７３】
空き領域が存在する場合、仮想ＮＶＲＡＭドライバ５０８は、第一ＮＶＲＡＭデータエリア５１０に対する書込みと同時に、ＮＶＲＡＭ４０４に対しても要求のあった書込みの更新情報を記憶する。
【００７４】
ＮＶＲＡＭ４０４への書込みは、ＮＶＲＡＭドライバ５０９を使用して、ＮＶＲＡＭ４０４のキャッシュエリア７０３にキャッシュエントリ７０３０を追加することで行われる。仮想ＮＶＲＡＭドライバ５０８が有する世代番号を１を加えた値に更新し、追加されたキャッシュエントリ７０３０の世代番号としてその値を書き込む。
【００７５】
また、 仮想ＮＶＲＡＭドライバ５０８は、キャッシュ制御データ７０２のキャッシュエリア内の有効なエントリ数７０２０を１加算する。その後、待機状態になっているプロセスが存在する場合には、それらのプロセスを実行可能にする。以上で、書込み処理が完了する。
（同期処理）
同期処理について、図５のソフトウェア構成図及び図１０のフローチャートを用いて説明する。
【００７６】
仮想ＮＶＲＡＭ制御プロセス５０２は、キャッシュエリア７０３の空き領域に記憶できるキャッシュエントリ７０３０の数が、仮想ＮＶＲＡＭ構成情報５１２の「ＳＤカード同期処理を始める残りキャッシュエントリ数６０６」になった場合、第一ＮＶＲＡＭデータエリア５１０の内容をＳＤカードに書込む同期処理を行う。
【００７７】
仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭドライバ５０８に書き込み要求をしたプロセスを一時的に待機させる（Ｐ１００１）。次に、仮想ＮＶＲＡＭドライバ５０８から世代番号（Ｇ４）を読出し、ＮＶＲＡＭ４０４のキャッシュ制御データ７０２からキャッシュエリア内の有効なエントリ数７０２０（Ｅ１）を読み出す（Ｐ１００２）。その後、ＲＡＭ４０３中の第一ＮＶＲＡＭデータエリア５１０の内容を第二ＮＶＲＡＭデータエリア５１１に複製する（Ｐ１００３）。複製後、仮想ＮＶＲＡＭ制御プロセス５０２は、待機させたプロセスの書込み要求を仮想ＮＶＲＡＭドライバ５０８が受け付けるようにする（Ｐ１００４）。
【００７８】
次に、仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭ４０４のＳＤ領域１書込み中フラグ７０１０を「書き込み中」にセットし、ＳＤ領域１世代番号７０１１を仮想ＮＶＲＡＭドライバ５０８から取得した世代番号（Ｇ４）に更新する（Ｐ１００５）。その後、ＲＡＭ４０３中の第二ＮＶＲＡＭデータエリア５１１の内容をＳＤカード４０２の仮想第一ＮＶＲＡＭデータ８０３に複製し（Ｐ１００６）、複製後、ＮＶＲＡＭ４０４のＳＤ領域１書き込み中フラグ７０１０の「書き込み中」をクリアする（Ｐ１００７）。
【００７９】
同様に、仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭ４０４のＳＤ領域２書き込み中フラグ７０１２を「書き込み中」にセットし、ＳＤ領域２世代番号７０１３を仮想ＮＶＲＡＭドライバ５０８から取得した世代番号（Ｇ４）に更新する（Ｐ１００８）。その後、ＲＡＭ４０３中の第二ＮＶＲＡＭデータエリア５１１の内容をＳＤカード４０２の第二仮想ＮＶＲＡＭデータ８０４に複製し（Ｐ１００９）、複製後、ＮＶＲＡＭ４０４のＳＤ領域２書き込み中フラグ７０１２の「書き込み中」をクリアする（Ｐ１０１０）。
【００８０】
仮想ＮＶＲＡＭ制御プロセス５０２は、再度、プロセスの仮想ＮＶＲＡＭドライバ５０８に対する書込み要求を待機させ（Ｐ１０１１）、ＮＶＲＡＭ４０４のキャッシュ制御データ７０２のキャッシュエリア内の有効なエントリ数７０２０（Ｅ２）を読み込み（Ｐ１０１２）、新しい有効なキャッシュエントリ数（Ｅ２）から、ＳＤ領域書込み前に有効であったキャッシュエントリ数（Ｅ１）を引き算し（Ｐ１０１３）、結果の値をキャッシュエリア内の有効なエントリ数７０２０に書き込む（Ｐ１０１４）。仮想ＮＶＲＡＭデータに反映されたキャッシュエントリ７０３０の領域を開放するためである。また、ＳＤカード書込み前に有効であったキャッシュエントリ数（Ｅ１）が示すキャッシュエントリ５０５のサイズと、ＳＤ領域書込み前の「キャッシュエリア内で有効な先頭のエントリのオフセット７０２１」との加算により求めたオフセット値を「キャッシュエリア内で有効な先頭のエントリのオフセット７０２１」に書き込む（Ｐ１０１５）。次回の同期処理に備えるためである。
【００８１】
なお、キャッシュエリア７０３はリングバッファ的に使用され、キャッシュエリア７０３の最後は最初につながっているものとして扱う。ＮＶＲＡＭ４０４のデータ更新後、仮想ＮＶＲＡＭ制御プロセス５０２は、仮想ＮＶＲＡＭドライバに対して、待機させたプロセスの書込み要求を受け付けるようにする（Ｐ１０１６）。以上で、同期処理が完了する。
【００８２】
以上のように、仮想ＮＶＲＡＭ制御プロセス５０２は、ＮＶＲＡＭ５０９の空き領域がＣＰＵに予め定められた状態になると同期処理を起動し、第一ＮＶＲＡＭデータエリア５１０の内容をＳＤカード４０２に複製した後、ＮＶＲＡＭ５０９に蓄積された更新情報のうち、ＳＤカード４０２内の第一仮想ＮＶＲＡＭデータ８０３及び第二仮想ＮＶＲＡＭデータ８０４の内容に反映された更新情報を消去する。同期処理を終了した時点で、ＳＤカード４０２中の第一仮想ＮＶＲＡＭデータ８０３及び第二仮想ＮＶＲＡＭデータ８０４の内容は、同期処理を開始した時点のＲＡＭ４０３の第一ＮＶＲＡＭデータエリア２１０の内容を反映しており、ＮＶＲＡＭ４０４のキャッシュエリア７０３の内容は、同期処理を開始した時点からの更新情報を反映している。この状態で電源断が発生した場合には、ＳＤカード４０２の第一仮想ＮＶＲＡＭデータ８０３の内容を、ＮＶＲＡＭ４０４のキャッシュエリア７０３に記憶されている更新情報で更新することで、電源断時のシステムデータを復元することが可能である。この復元はデータ再構成処理により行われる。
（読出し処理）
仮想ＮＶＲＡＭ制御プロセス５０２以外のプロセスから仮想ＮＶＲＡＭに対して読み出し要求があった場合の処理について説明する。この処理は以下の手順で行われる（図１１を参照。）。 
まず、仮想ＮＶＲＡＭドライバ５０８は、プロセスからの読み込み要求が可能かどうかを判断する。仮想ＮＶＲＡＭドライバ５０８に対して別の書き込み処理が行われている場合は、重複して読み込み処理を行うことができないからである。その場合、プロセスからの読み込み要求を待ち状態にし、別の書き込み処理終了後に待機させた読み込み処理が行われる。仮想ＮＶＲＡＭに対して別の書き込み処理が行われていない場合は、仮想ＮＶＲＡＭドライバ５０８は、ＲＡＭ４０３にある第一ＮＶＲＡＭデータエリア５１０にアクセスし（Ｓ１１９）、データを読み込み、プロセスに値を返すようにする。仮想ＮＶＲＡＭドライバ５０８は、ＮＶＲＡＭ４０４及びＳＤカード４０２へのアクセスは行わない。以上で、読出し処理が完了する。
（変形例）
図１２は、本発明を実現するための装置の変形例である。仮想ＮＶＲＡＭドライバ４１２により、ＳＤカード４０２、ＲＡＭ４０３及びＮＶＲＡＭ４０４の複数のデバイスを、ひとつのＮＶＲＡＭであるかのように扱う。
【００８３】
なお、カード型メモリ媒体としては、上記実施例で説明したＳＤカードの他、コンパクトフラッシュ（登録商標）カード等が使用できる。
【００８４】
また、本発明は、図４、図１２に示された記憶装置を組み込んだ画像形成装置として構成することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の基本原理を説明するための図である。
【図２】同期処理及びデータ再構成処理を説明するための図である。
【図３】データ再構成処理の具体例を示す図である。
【図４】本発明を実現するためのハードウェア構成例の図（その１）である。
【図５】実施例を説明するための図である。
【図６】仮想ＮＶＲＡＭ構成情報の例を説明するための図である。
【図７】ＮＶＲＡＭの例を説明するための図である。
【図８】ＳＤカードの例を説明するための図である。
【図９】データ再構成処理のフローチャートである。
【図１０】同期処理のフローチャートである。
【図１１】データ読出し処理を説明するための図である。
【図１２】本発明を実現するためのハードウェア構成例の図（その２）である。
【符号の説明】
【００８６】
２０    ＲＡＭ
２１    カード型メモリ
２２    ＮＶＲＡＭ
２００  ＲＡＭの領域
２０１  ＲＡＭの領域
２１０  カード型メモリの領域
２１１  カード型メモリの領域
４０１  ＣＰＵ
４０２  ＳＤカード
４０３  ＲＡＭ
４０４  ＮＶＲＡＭ
４０５  ＲＯＭ
４０６  同期処理手段
４０７  データ再構成処理手段
４０８  書込み処理手段
４０９  読出し処理手段
４１０  制御処理手段
５０２  仮想ＮＶＲＡＭ制御プロセス
５０８  仮想ＮＶＲＡＭドライバ
５１０  第一ＮＶＲＡＭデータエリア
５１１  第二ＮＶＲＡＭデータエリア
５１２  仮想ＮＶＲＡＭ構成情報
５１３  ｒｅａｄデータ
【図１】
2006350572.tif 000003
【図２】
2006350572.tif 000004
【図３】
2006350572.tif 000005
【図４】
2006350572.tif 000006
【図５】
2006350572.tif 000007
【図６】
2006350572.tif 000008
【図７】
2006350572.tif 000009
【図８】
2006350572.tif 000010
【図９】
2006350572.tif 000011
【図１０】
2006350572.tif 000012
【図１１】
2006350572.tif 000013
【図１２】
2006350572.tif 000014