(57)【要約】【課題】  読み書き可能な不揮発メモリデバイス(HDD, SRAM, FRAM, FLASH等)へ書き込み中に電源断されることによって、データが壊れ、故障(エラーコード出力)することが問題になっています。しかし、書き込み途中だったデータをただ破棄しただけでは複数のデータ間の不整合が発生し、復旧できない可能性があります。【解決手段】  (1)不揮発メモリの領域を細分化し、パリティ計算時間を短縮します。(2)実データ書き込み前に書き込み領域を退避して、電源断に備えます。(3)複数の領域にまたがるデータ書き込みが発生した場合に２つ以上の領域を同時にバックアップする仕組みを用い、データ不整合が起こらないようにします。【選択図】  図１
2008004011.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置内のデータを固定長又は可変長の１つ以上の領域に細分化して管理する機能、
を持つコンピュータ装置において、
該不揮発性記憶装置内の１つ以上の細分化された領域のデータ書き換えの際に、該細分化領域のデータを退避してから書き換える機能、
を有することを特徴とする、コンピュータ装置。
【請求項２】
該不揮発性記憶装置に書き込むデータが、該細分化領域間で連続するデータならば、２つ以上の該細分化領域のデータを退避してから書き換える機能、
を有することを特徴とする、請求項１記載のコンピュータ装置。
【請求項３】
不揮発性記憶装置内への書き込み動作が完了しなかった際に、該退避させたデータを該書き換え中のデータに上書きして復旧する機能
を有することを特徴とする、請求項１記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの書き込み保障方法、特に不揮発性メモリに書き込み中に電源断された場合の復旧方法に関する。
【背景技術】
【０００２】
読み書き可能な不揮発メモリデバイス(HDD, SRAM, FRAM, FLASH等)へ書き込み中に電源断されることによって、データが壊れ、故障(エラーコード出力)することが問題になっています。電源断によって故障する箇所は、階層に分けると下位層から順に、ハードウェア、デバイスドライバ、ファイルシステム、アプリケーション、に分かれます。デバイスドライバより上位層は一般的にソフトウェアによって作成されており、デバイスドライバは管理領域とビット単位の読み書き、ファイルシステムは管理領域とファイル単位のデータ読み書き、アプリケーションは複数のファイル単位のデータ読み書きに関わります。もちろんデバイスドライバは不揮発デバイス毎に管理方式が異なりますし、ファイルシステムを介在しないデバイスも存在します。上記の、ハードウェアの故障は物理的なもので対応が難しいですが、ソフトウェアの故障は方法によって回避可能です。しかし、電源断が発生したときに、単純に故障データを破棄しただけでは、複数ビット単位のデータや複数ファイル単位のデータで、データ間の不整合が発生し復旧できません。
【０００３】
読み書き可能な不揮発メモリデバイス(HDD, SRAM, FRAM, FLASH等)へ書き込み中に電源断された場合の復旧方法について、先行技術を説明します。
【０００４】
特開平０６−１８０６６４（ブラザー工業）は、不揮発メモリ上の制御プログラムを揮発メモリにコピーし、揮発メモリ上の制御プログラムを更新し、揮発メモリ上の制御プログラムを不揮発メモリに書き戻すことで、不揮発メモリの一括消去と更新を可能にする方法に関する発明です。先行特許は、書き戻し中に電源断した場合はアドレス変換して復旧すると記載されていますが、結局データの整合性を保障できません。それに対して本提案は、アドレス変換は行っておらず、書き戻し中に電源断しても復旧できます。
【０００５】
特開平０９−１２８１５６（日立製作所）は、キャッシュメモリを使って、ディスク間で可変長と固定長のデータ変換を行うディスク記録制御システムにおいて、各々のディスク上にバックアップ領域を持ち、電源断時に復旧する方法に関する発明です。本発明は固定可変長の変換は論点ではありません。
【０００６】
特開平０９−３０５４９１（東芝）は、ＨＤＤ書き込みする際にチェックコードを同時にＳＲＡＭに保存する方法に関する発明です。先行特許は、ＨＤＤとＳＲＡＭの書き込みタイミングによって毎回復旧が発生する可能性があります。また、本提案とは論点と復旧方法が異なります。
【０００７】
特開平１０−１６１９３８（東芝）は、ＨＤＤに揮発性キャッシュ領域だけでなく不揮発性キャッシュ領域を付け、ライトバックデータを不揮発性キャッシュ領域にも保存し、電源断時に復旧する方法に関する発明です。本提案は、コストと通信速度上で実用性に乏しいため先行特許の方法は用いていません。また、本提案とは論点と復旧方法が異なります。
【０００８】
特開平１１−０８５６２９（富士通）は、フラッシュメモリの書き換え消去回数を少なくして寿命を延長させる方法で、フラッシュメモリの書き込み最小単位を管理領域とデータ領域に細分化し、入れ替え等による書き換え回数平均化を行う方法です。先行特許は、併用する揮発メモリ上のデータ書き換えがあった場合に復元できない可能性があります。
【０００９】
特開平１１−１５４０５８（東芝）は、複数のディスク装置を用いて、データ書き込み中に電源断した場合に復元する方法に関する発明です。先行特許に対して本発明は、複数の保存装置は用いません。
【００１０】
特開２０００−１３２４６４（キヤノン）は、不揮発性記憶装置にデータを記録する際に、どこまで書き込んだかを示すマーカービットとチェックサムを用いて、電源断時の復旧を容易にする方法に関する発明です。先行発明は、データが大きくなるとチェックサムの計算量が増大する、書き込み中のデータ復元が出来ない、書き込み中のデータが領域をまたがったデータの場合に結局不整合が発生する、といった問題があります。
【００１１】
特開２０００−３０５８６２（三菱電機）は、フラッシュメモリの書き換えに際して、消去領域を他の不揮発性メモリにバックアップして消去する方法に関する発明です。先行発明は、電源断時に復旧することが可能になりますが、フラッシュメモリの消去単位以上の領域を他の不揮発装置に持つ必要があり、またフラッシュメモリの消去回数は減りますが、他の不揮発性メモリの書き換え回数が増えてしまいます。
【００１２】
特開２００１−１５４９２６（静岡日本電気）は、フラッシュメモリの復旧方法に関し、第一不揮発面を書き消去中に第二不揮発面を読み出すことが可能なフラッシュメモリにおいて、さらにバックアップ面を用いて電源断した場合に復旧する方法に関する発明です。先行特許は、本提案とは論点が異なる上、領域がまたがったデータの場合は結局不整合が発生するといった問題があります。
【００１３】
特開２００２−３１２１４７（コニカ）は、不揮発メモリ領域の書き込み回数を増やす方法に関し、揮発性記憶領域Ｎと、Ｎのｎ倍の不揮発記憶領域Ｍを作り、ＭをＮで分割して循環使用することで、局所書き込みをなくす方法に関する発明です。不揮発性記憶装置のデータ記録消去中に電源断があった場合の対応は可能ですが、書き込み中のデータ領域を保障できないことは変わりません。
【００１４】
特開２００２−３５８２４８（パイオニア）は、ＨＤＤへデータ記録中に電源断があった場合の復旧方法に関し、ＦＡＴファイルシステムの管理領域を２重持ちして復旧する方法に関する発明です。先行特許に対し本発明は、電源断の復旧に関していますが、ファイルシステムの管理領域を用いた方法ではありません。
【００１５】
特開２００３−１２２６４７（三菱電機）は、揮発メモリの電源断対応に関し、主記憶装置に一定時間電力を供給する電源システムを備えた情報処理装置において、電源断が発生した後に主記憶装置上のデータを二時記憶装置に保存する方法に関する発明です。先行特許の方法は、電源断した後に主記憶装置と二次記憶装置を動かすための小容量バッテリを必要としており、コストの面で現実的ではないことと、本提案の論点とは異なります。
【００１６】
特開２００４−０２１８１１（日立製作所）は、フラッシュメモリ等の不揮発メモリデバイスを並列に使用し、故障があった場合にパリティデータ、保護コードから復元可能にすることで、耐故障性を向上させる方法に関する発明です。先行特許は、複数のメモリデバイスを持ちますが、本発明は一つのデバイスで完結する点が異なります。
【００１７】
特開２００５−０２５４０１（シャープ）は、ＩＣカード内のフラッシュメモリの電源断対応に関し、ＩＣカード内のデータ領域書き込みの進捗を、ＩＣカード内の管理領域で管理する方法に関する発明です。管理領域で進捗管理する点は、特開２０００−１３２４６４（キヤノン）と同様の方法です。それに対して本発明は、進捗管理は対象にしていません。
【００１８】
特開２００５−０５６１４４（ＮＥＣビューテクノロジー）は、フラッシュメモリの電源断対応に関し、管理領域でデータ書き込み進捗を管理する方法に関する発明です。管理領域で進捗管理する点は、特開２０００−１３２４６４（キヤノン）、特開２００５−０２５４０１（シャープ）、と同様の方法です。それに対して本発明は、進捗管理は対象にしていません。
【００１９】
特開２００５−１４９２９１（日立ハイテクノロジーズ）は、ファイルシステムの電源断対応に関し、管理領域と二つのデータ領域Ａ・Ｂを持ち、データを更新するときは、元データＡに書き込むデータをマージして領域Ｂに書き込み、管理領域が指し示すデータ領域をＡからＢに変更する、方法に関する発明です。先行特許は、管理領域変更中に電源断した場合は復旧できない上、本提案とは論点が異なります。
【００２０】
本提案はこのような状況に鑑みて実施される、コンピュータ装置の不揮発性メモリ復旧に関する発明です。
【特許文献１】特開平０６−１８０６６４号公報
【特許文献２】特開平０９−１２８１５６号公報
【特許文献３】特開平０９−３０５４９１号公報
【特許文献４】特開平１０−１６１９３８号公報
【特許文献５】特開平１１−０８５６２９号公報
【特許文献６】特開平１１−１５４０５８号公報
【特許文献７】特開２０００−１３２４６４号公報
【特許文献８】特開２０００−３０５８６２号公報
【特許文献９】特開２００１−１５４９２６号公報
【特許文献１０】特開２００２−３１２１４７号公報
【特許文献１１】特開２００２−３５８２４８号公報
【特許文献１２】特開２００３−１２２６４７号公報
【特許文献１３】特開２００４−０２１８１１号公報
【特許文献１４】特開２００５−０２５４０１号公報
【特許文献１５】特開２００５−０５６１４４号公報
【特許文献１６】特開２００５−１４９２９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上記より問題は、読み書き可能な不揮発メモリデバイス(HDD, SRAM, FRAM, FLASH等)へ書き込み中に電源断されることによって、データが壊れ、故障(エラーコード出力)することです。しかし、書き込み途中だったデータをただ破棄しただけでは複数のデータ間の不整合が発生し、復旧できない可能性があります。また、既存なメモリ復旧方法を適用して不揮発メモリ全体を一つの領域と考えて誤り検出と訂正を行う場合、大容量のデータのパリティ計算に時間がかかり、実際のデータを書くタイミングとパリティビットを計算して書き込むタイミングが大きくずれてしまい、電源OFFしたときに書き込んだデータとパリティビットの不整合が発生し、復旧できない可能性があります。
【課題を解決するための手段】
【００２２】
(1)不揮発メモリの領域を細分化し、パリティ計算時間を短縮します。(2)実データ書き込み前に書き込み領域を退避して、電源断に備えます。(3)複数の領域にまたがるデータ書き込みが発生した場合に２つ以上の領域を同時にバックアップする仕組みを用い、データ不整合が起こらないようにします。
【発明の効果】
【００２３】
前記方法により、不揮発保存装置への書き込み中に電源断することでソフトウェアの不整合が発生していた問題を解決できます。
【発明を実施するための最良の形態】
【００２４】
以下、本発明とその他の特徴について適宜図面を参照しながら解説する。
【００２５】
（１）ハードウェア構成
本発明の実施例にかかわる画像入出力システムのハードウェア全体構成を、図1を参照しながら説明する。
【００２６】
リーダー部(画像入力装置)200は、原稿画像を光学的に読み取り、画像データに変換する。リーダー部200は、原稿を読取るための機能を持つスキャナユニット210と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット250(以下フィーダと呼ぶ)とで構成される。
【００２７】
プリンタ部(画像出力装置)300は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部300は、複数種類の記録紙カセットを持つ給紙ユニット310と、画像データを記録紙に転写、定着させる機能を持つマーキングユニット320と、印字された記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙ユニット330とで構成される。
【００２８】
制御装置110は、リーダー部200、プリンタ部300、FAXモデム510、HDD(ハードディスクドライブ)520と電気的に接続され、さらにネットワーク400を介して、ホストコンピュータ401,402と画像入出力システム101、及び、FAXモデム510、電話回線500を介してFAX501,502と接続されている。
【００２９】
制御装置110は、リーダー部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。また、リーダー部200から読取った画像データを、コードデータに変換し、ネットワーク400を介してホストコンピュータへ送信するスキャナ機能、ホストコンピュータからネットワーク400を介して受信したコードデータを画像データに変換し、プリンタ部300に出力するプリンタ機能、入力された画像データをFAXモデム510と電話回線500を介して送受信するFAX機能、送受信した画像データをHDD520に蓄積するボックス機能を提供する。
【００３０】
続いて図2を用いて操作部150について説明する。
【００３１】
操作部150は、制御装置110に接続され、液晶タッチパネルで構成され、画像入出力システムを操作するためのユーザI/Fを提供する。
【００３２】
600はLCDタッチパネルであり、主なモード設定、状況表示はここで行われる。601は０〜９までの数値を入力するためのテンキーである。602はIDキーであり、装置が部門管理されている場合に部門番号と暗礁モードを入力する際に使用されるものである。
【００３３】
603は設定されたモードをリセットするためのリセットキー、604は各モードについての説明画面を表示するためのガイドキー、605はユーザーモード画面に入るためのユーザーモードキー、606は割り込みコピーを行うための割り込みキーになっている。
【００３４】
607はコピー動作をスタートさせるためのスタートキー、608は実行中のコピージョブを中止させるためのストップキーである。
【００３５】
609はソフト電源SWであり、押下することによりLCD600のバックライトが消え装置は低電力状態に落ちる。610は節電キーであり、これを押下することで節電状態に入り、再度押下することで節電状態から復帰する。
【００３６】
611、612、613、614はコピー、送信、ボックス、拡張に移行させるためのファンクションキーである。図2ではコピーの標準画面が表示された状態であり、他のファンクションキー612、613、614を押下することでそれぞれの機能の標準画面が表示される。
【００３７】
615はLCDタッチパネルのコントラストを調整するための調整キーである。
【００３８】
616はカウンタ確認キーであり、このキーを押下することでそれまでに仕様したコピー枚数の集計を表示するカウント画面がLCD上に表示される。
【００３９】
617はジョブの実行中、画像メモリへの画像蓄積中を示すLED、618がジャム、ドアオープン等装置がエラー状態にあることを示すエラーLED、619は装置のメインスイッチがONになっていることを示す電源LEDになっている。
【００４０】
図３はリーダー部200及びプリンタ部300の断面図である。リーダー部の原稿給送ユニット250は原稿を先頭順に1枚ずつプラテンガラス211上へ給送し、原稿の読み取り動作終了後、プラテンガラス211上の原稿を排出トレイ219に排出するものである。原稿がプラテンガラス211上に搬送されると、ランプ212を点灯し、そして光学ユニット213の移動を開始させて、原稿を露光走査する。この時の原稿からの反射光は、ミラー214、215、216、及びレンズ217によってCCDイメージセンサ(以下CCDと呼ぶ)218へ導かれる。このように、走査された原稿の画像はCCD218によって読み取られる。CCD218から出力される画像データは、所定の処理が施された後、制御装置110へ転送される。
【００４１】
プリンタ部300のレーザドライバ321はレーザ発光部322を駆動するものであり、制御装置110から出力された画像データに応じたレーザ光をレーザ発光部322に発光させる。このレーザ光は感光ドラム323に照射され、感光ドラム323にはレーザ光に応じた潜像が形成される。この感光ドラム323の潜像の部分には現像器324によって現像剤が付着される。
【００４２】
そして、レーザ光の照射開始と同期したタイミングで、カセット311、カセット312、カセット313、カセット314、手差し給紙段315のいずれかから記録紙を給紙し、転写部325へ搬送路331によって導かれ、感光ドラム323に付着された現像剤を記録紙に転写する。現像剤の乗った記録紙は搬送ベルト326によって、定着部327に搬送され、定着部327の熱と圧力により現像剤は記像紙に定着される。その後、定着部327を通過した記録紙は搬送路325、搬送路324を通り、排紙ビン328に排出される。あるいは、印字面を反転して排紙ビン328に排出する場合には、搬送路336、搬送路338まで導かれ、そこから記録紙を逆方向に搬送し、搬送路337、搬送路324を通る。
【００４３】
また、両面記録が設定されている場合は、定着部327を通過したあと、搬送路336からフラッパ329によって、搬送路333に記録紙は導かれ、その後記録紙を逆方向に搬送し、フラッパ329によって、搬送路338、再給紙搬送路332へ導かれる。再給紙搬送路332へ導かれた記録紙は上述したタイミングで搬送路331を通り、転写部325へ給紙される。
【００４４】
以下、制御装置の詳細について述べる。
【００４５】
（１−１）制御装置の説明
制御装置110の機能を、図４に示すブロック図をもとに説明する。
【００４６】
メインコントローラ111は、主にCPU112と、バスコントローラ113、各種I/Fコントローラ回路とから構成される。
【００４７】
CPU112とバスコントローラ113は制御装置110全体の動作を制御するものであり、CPU112はROM114からROM I/F115を経由して読込んだプログラムに基いて動作する。また、ホストコンピュータから受信したPDL(ページ記述言語)コードデータを解釈し、ラスターイメージデータに伸張する動作も、このプログラムに記述されており、ソフトウェアによって処理される。バスコントローラ113は各I/Fから入出力されるデータ転送を制御するものであり、バス競合時の調停やDMAデータ転送の制御を行う。
【００４８】
DRAM116はDRAM I/F117によってメインコントローラ111と接続されており、CPU112が動作するためのワークエリアや、画像データを蓄積するためのエリアとして使用される。
【００４９】
Network Contorller121はI/F123によってメインコントローラ111と接続され、コネクタ122によって外部ネットワークと接続される。ネットワークとしては一般的にＬＡＮ及びFAXモデム510を介した電話回線500があげられる。
【００５０】
汎用高速バス125には、拡張ボードを接続するための拡張コネクタ124とI/O制御部126とが接続される。汎用高速バスとしては、一般的にPCIバスがあげられる。
【００５１】
I/O制御部126には、リーダー部200、プリンタ部300の各CPUと制御コマンドを送受信するための調歩同期シリアル通信コントローラ127が2チャンネル装備されており、I/Oバス128によって外部I/F回路140,145に接続されている。
【００５２】
パネルI/F132は、LCDコントローラ131に接続され、操作部150上の液晶画面600に表示を行うためのI/Fと、ハードキーやタッチパネルキーの入力を行うためのキー入力I/F130とから構成される。
【００５３】
操作部150は液晶表示部と液晶表示部上に張り付けられたタッチパネル入力装置と、複数個のハードキーを有する。タッチパネルまたはハードキーにより入力された信号は前述したパネルI/F132を介してCPU112に伝えられ、液晶表示部はパネルI/F132から送られてきた画像データを表示するものである。液晶表示部には、本画像表示装置の操作における機能表示や画像データ等を表示する。
【００５４】
リアルタイムクロックモジュール133は、機器内で管理する日付と時刻を更新/保存するためのもので、バックアップ電池134によってバックアップされている。
【００５５】
E-IDEインタフェース161は、外部記憶装置を接続するためのものである。このI/Fを介してハードディスクやCD-ROM ドライブを接続し、プログラムや画像データを書き込んだり読み込んだりすることができる。
【００５６】
コネクタ142と147は、それぞれリーダー部200とプリンタ部300とに接続され、同調歩同期シリアルI/F(143,148)とビデオI/F(144,149)とから構成される。
【００５７】
スキャナI/F140は、コネクタ142を介してリーダー部200と接続され、また、スキャナバス141によってメインコントローラ111と接続されており、リーダー部200から受け取った画像を、その後の過程における処理の内容によって、最適な2値化を行ったり、主走査・副走査の変倍処理を行ったりする機能を有し、さらに、リーダー部200から送られたビデオ制御信号をもとに生成した制御信号を、スキャナバス141に出力する機能も有する。
【００５８】
スキャナバス141からDRAM116へのデータ転送は、バスコントローラ113によって制御される。
【００５９】
プリンタI/F145は、コネクタ147を介してプリンタ部300と接続され、また、プリンタバス146によってメインコントローラ111と接続されており、メインコントローラ111から出力された画像データにスムージング処理をして、プリンタ部300へ出力する機能を有し、さらに、プリンタ部300から送られたビデオ制御信号をもとに生成した制御信号を、プリンタバス146に出力する機能も有する。
【００６０】
DRAM116上に伸張されたラスターイメージデータのプリンタ部への転送は、バスコントローラ113によって制御され、プリンタバス146、ビデオI/F149を経由して、プリンタ部300へDMA転送される。
【００６１】
（１−２）メインコントローラの説明
図５にメインコントローラのブロック図を示す。
【００６２】
プロセッサコア401は、64ビットのプロセッサバス(SCバス)を介して、システム・バス・ブリッジ(SBB)402に接続される。SBB402は4×4の64ビットクロスバスイッチであり、プロセッサコア401の他に、キャッシュメモリを備えたSDRAMやROMを制御するメモリコントローラ403と専用のローカルバス(MCバス)で接続されており、さらに、グラフィックバスであるGバス404、IOバスであるBバス405と接続され、全部で4つのバスに接続される。SBB402は、これら4モジュール間を、可能な限り、同時平行接続を確保することができるように設計されている。
【００６３】
また、データの圧縮伸張ユニット(codec)418とも、 codec I/F を介して接続されている。
【００６４】
Gバス404はGバスアービタ(GBA)406により協調制御されており、スキャナやプリンタと接続するためのスキャナ/プリンタコントローラ(SPC)408に接続される。また、Bバス405は、Bバスアービタ(BBA)407により協調制御されており、SPC408のほか、電力管理ユニット(PMU)409、インタラプトコントローラ(IC)410、UARTを用いたシリアルインタフェースコントローラ(SIC)411、USBコントローラ412、IEEE1284を用いたパラレルインタフェースコントローラ(PIC)413、 LANコントローラ(LANC)414、LCDパネル、キー、汎用入出力コントローラ(PC)415、PCIバスインタフェース(PCIC)416にも接続されている。
【００６５】
PC415には、表示パネルやキーボードを備えた操作パネル417が接続される。
【００６６】
（１−２−１）インタラプトコントローラの説明
インタラプトコントローラ410は、Bバス405に接続され、メインコントローラチップ内の各機能ブロック及び、チップ外部からのインタラプトを集積し、CPUコア401がサポートする、6レベルの外部インタラプト及び、ノンマスカブルインタラプト(NMI)に再分配する。各機能ブロックとは、電力管理ユニット409、シリアルインタフェースコントローラ411、USBコントローラ412、パラレルインタフェースコントローラ413、ＬＡＮコントローラ414、汎用IOコントローラ415、PCIインタフェースコントローラ416、スキャナ/プリンタコントローラ408などである。
【００６７】
（１−２−２）メモリコントローラの説明
メモリコントローラ403は、メモリコントローラ専用のローカルバスであるMCバスに接続され、シンクロナスDRAM(SDRAM)やフラッシュROMやROMを制御する。
【００６８】
（１−３）システムバスブリッジの説明
図６はシステムバスのブロック図を示す。
【００６９】
SBB402は、Bバス(入出力バス)、Gバス(グラフィックバス)、SCバス(プロセッサローカルバス)及びMCバス間の相互接続をクロスバスイッチを用いて提供する、マルチチャネル双方向バスブリッジである。クロスバススイッチにより、2系統の接続を同時に確立することが出来、並列性の高い高速データ転送を実現出来る。
【００７０】
SBB402は、Bバス405と接続するためのBバスインタフェース2009と、Gバス404と接続するためのGバスインタフェース2006と、プロセッサコア401と接続するためのCPUインタフェーススレーブポート2002と、メモリコントローラ403と接続するためのメモリインタフェースマスターポート2001と、 圧縮伸張ユニット418と接続するためのCODECバスインタフェース2014を備えるほか、アドレスバスを接続するアドレススイッチ2003、データバスを接続するデータスイッチ2004を含む。また、プロセッサコアのキャッシュメモリを無効化するキャッシュ無効化ユニット2005を備えている。
【００７１】
（１−３−１）PCIバスインタフェースの説明
PCIバスインタフェース416は、メインコントローラ内部汎用IOバスであるBバスと、チップ外部IOバスであるPCIバスの間をインタフェースするブロックである。
【００７２】
（１−３−２）Gバスアービタ、Bバスアービタの説明
Gバスのアービトレーションは、中央アービトレーション方式であり、各バスマスタに対して専用のリクエスト信号とグラント信号を持つ。このアービタは制御方法をプログラミングすることが出来る。また、バスマスタへの優先権の与え方として、すべてのバスマスタを同じ優先権として、公平にバス権を与える公平アービトレーションモードと、いずれかひとつのバスマスタの優先権を上げ、優先的にバスを使用させる優先アービトレーションモード、のどちらかを指定できる。
【００７３】
Bバスアービタ407は、IO汎用バスであるBバス405のバス使用要求を受け付け、調停の後、使用許可を選択された一つのマスタに対して与え、同時に2つ以上のマスタがバスアクセスを行う事を禁止する。アービトレーション方式は、3段階のプライオリティを持ち、それぞれのプライオリティに複数のマスタをプログラマブルに割り当てられる構成になっている。
【００７４】
（１−４）スキャナコントローラ/プリンタコントローラ
図７はスキャナコントローラ、プリンタコントローラのブロック図である。
【００７５】
スキャナ/プリンタコントローラ408は、VideoI/Fによってスキャナおよびプリンタと接続され、内部バスGバスおよびBバスにインタフェースするブロックである。大別して以下の3つのブロックから構成される。
【００７６】
（１−４−１）スキャナコントローラ
スキャナとビデオI/Fで接続され、動作制御およびデータ転送制御を行なう。Gバス/BバスI/Fユニット(GBI)4301Aとは、IFバスで接続され、データ転送およびレジスタのリード/ライトが行なわれる。
【００７７】
（１−４−２）プリンタコントローラ
プリンタとビデオI/Fで接続され、動作制御およびデータ転送制御を行なう。GBI 4301Bとは、IFバスで接続され、データ転送およびレジスタのリード/ライトが行なわれる。
【００７８】
CPバスは、スキャナとプリンタの画像データおよび水平垂直同期のための同期信号を直結するためのバスである。
【００７９】
（１−４−３）Gバス/Bバス I/Fユニット(GBI)
スキャナコントローラ4302およびプリンタコントローラ4303をGバスまたはBバスに接続するためのユニットである。スキャナコントローラ4302とプリンタコントローラ4303にそれぞれ独立して接続され、GバスとBバスの両方に接続されている。
【００８０】
（１−５）電力管理ユニットの説明
メインコントローラ111は、CPUを内蔵した大規模なASICである。このため、内部のロジックが全部同時に動作してしまうと、大量の熱を発生し、チップ自体が破壊されてしまう恐れがある。これを防ぐために、メインコントローラは、ブロック毎の電力の管理、すなわちパワーマネジメントを行ない、更にチップ全体の消費電力量の監視を行なう。
【００８１】
パワーマネージメントは、それぞれのブロックが各自個別に行なう。各ブロックの消費電力量の情報は、パワーマネージメントレベルとして、電力管理ユニット(PMU)409に集められる。PMU409では、各ブロックの消費電力量を合計し、その値が限界消費電力を超えないように、メインコントローラの各ブロックの消費電力量を一括して監視する。
【００８２】
前記ハードウェアを用いた不揮発メモリの復旧方法について、実施例を用いて以下で説明します。
【実施例１】
【００８３】
図１２のフローチャートを用いて、不揮発記憶装置のデータ書き込みの基本パターンを説明します。
【００８４】
作業中ビットを走査して作業中ビットが立ったままだった場合（Ｆ１１）、電源断等によって前回作業が中断したと判断して、バックアップ領域から作業中ビットが立ったままの領域へデータを戻し（Ｆ１２）、作業中ビットを落とします（Ｆ１３）。次に書き換え領域からバックアップ領域へデータを退避し（Ｆ１４）、書き換え領域のデータ終端が領域間を跨いでいるかどうかを判断し（Ｆ１５）、跨いでいれば退避を継続、跨いでいなければ退避を完了します。次に書き換え領域の作業中ビットを立て（Ｆ１６）、データを書き換え（Ｆ１７）、パリティを計算書き換えし（Ｆ１８）、作業中ビットを落とします（Ｆ１９）。
【００８５】
図８、図９、図１０、図１１は、不揮発記憶領域の領域管理図です。図を説明しますと、データ領域（Ａ０１，Ｚ０１，Ｘ０１）、パリティ領域（Ａ１１，Ｚ０２，Ｘ０２）、書き換え作業中ビット（Ａ０２，Ａ０４，Ｚ０３，Ｘ０３）、バックアップ領域（Ａ０３，Ａ１３，Ｚ０４，Ｘ０４）、領域跨ぎデータ例（Ａ０５，Ｚ２１，Ｘ２１）、領域跨ぎパリティ例（Ａ１５）、領域跨ぎのパリティ計算例（Ｚ２２，Ｘ２２）、となります。図８はデータ・パリティ・バックアップ領域を有する一般的な領域管理図、図９は書き換え領域サイズが大きくなったときのためにバックアップ領域を変更した領域管理図、図１０は全領域データでパリティ無しの領域管理図、図１１は全領域パリティでデータは別に計算する領域管理図です。
【００８６】
図８、図９の不揮発記憶領域の領域管理図を用いて、データが領域間を跨いだ場合について説明します。領域をまたがるデータ配置だった場合（Ｚ２１，Ｘ２１）、複数の領域を結合してパリティを再計算し、領域間のパリティを無効にします。また、書き換え作業中ビットをデータの領域間跨ぎが発生していることを示すフラグとして使用します。領域をまたがるパリティ計算をすることによって、領域毎に退避しても、二つの領域のデータ整合性を保障することができるようになります。
【００８７】
図１０、図１１の不揮発記憶領域の領域管理図を用いて、データのみ、パリティのみの書き込みについて説明します。図１２のフローチャートから、パリティ計算と書き換え（Ｆ１８）を除いたフローを実行します。これによって、パリティ計算無しのケースの書き込み保障が可能になります。
【００８８】
以下は説明しませんが、明示的なものとします。
【００８９】
(1) 書き換え作業中フラグは、不揮発性記憶装置の小さな各領域の最後のビットだけでなく、同じデバイス上のデバイス管理領域や、他のデバイス上などで管理することも可能です。また、書き換え作業中フラグは、不揮発記憶領域上のバイナリセマフォで置き換えることも可能です。
【００９０】
(2) 不揮発性記憶装置上でパリティだけを管理して、データ領域は他のデバイスで計算し生成する場合は、パリティをデータと考えることも可能です。
【００９１】
(3) 不揮発デバイスへ書き込むたびにチェックするのは時間がかかるため、また本方法は主に電源断の復旧対応のため、等の理由から、書き換え作業中フラグは起動時のみのチェックにすることも可能です。
【００９２】
(4) 不揮発席記憶装置の小さな各領域で管理するデータがパリティ無しのデータの場合はパリティ計算をしないことも可能です。
【００９３】
(5) 不揮発席記憶装置の小さな各領域をまたがったデータ書き込みの場合、領域結合してパリティ計算することも、各々の領域のパリティ計算することも、可能です。
【００９４】
(6) 不揮発記憶装置の固定長の領域書き換えについて説明しましたが、可変長でも可能です。
【００９５】
(7) バックアップ領域は、サイズ固定・変更どちらも可能です。また、他の不揮発記憶装置に領域を確保することも可能です。
【００９６】
(8) 不揮発記憶装置のデータ列を単なるビットの並びと判断することで、不揮発記憶装置の書き換え領域が常に終端を跨いでいない(Ｆ１５)と判断することも可能です。
【図面の簡単な説明】
【００９７】
【図１】本実施例に係わる画像入出力システムの全体構成の説明図
【図２】操作部150となるユーザI/F
【図３】リーダー部およびプリンタ部の断面図
【図４】制御装置のブロック図
【図５】メインコントローラのブロック図
【図６】システムバスブリッジのブロック図
【図７】スキャナコントローラ、プリンタコントローラのブロック図
【図８】不揮発メモリ領域のデータ構成図
【図９】不揮発メモリ領域のデータ構成図
【図１０】不揮発メモリ領域のデータ構成図
【図１１】不揮発メモリ領域のデータ構成図
【図１２】実施例１のフローチャート図
【符号の説明】
【００９８】
３３１  搬送路
３３５  搬送路
３３６  搬送路
３３８  搬送路
３３３  搬送路
３３２  再給紙搬送路
３２５  定着部
３２３  感光ドラム
【図１】
2008004011.tif 000003
【図２】
2008004011.tif 000004
【図３】
2008004011.tif 000005
【図４】
2008004011.tif 000006
【図５】
2008004011.tif 000007
【図６】
2008004011.tif 000008
【図７】
2008004011.tif 000009
【図８】
2008004011.tif 000010
【図９】
2008004011.tif 000011
【図１０】
2008004011.tif 000012
【図１１】
2008004011.tif 000013
【図１２】
2008004011.tif 000014