(57)【特許請求の範囲】
【請求項１】
複数の記憶手段と、
前記複数の記憶手段の各々へ同一のデータを書き込む際に各記憶手段へのデータの書き込みを予め定められた時間ずつずらして開始させる書込手段であって、特定の記憶手段への前記同一のデータの書き込みが終了する前に他の記憶手段への前記同一のデータの書き込みを開始させる書込手段と、
前記複数の記憶手段の各々に書き込まれた前記同一のデータを読み出す読出手段と、
前記複数の記憶手段の各々から前記読出手段が読み出した前記同一のデータのうち２つのデータの組み合わせを全ての組み合わせについて選択し、選択した各組み合わせの２つのデータが一致しているか否かをビット単位で判定する判定手段と、
前記全ての組み合わせのうち少なくとも１つの組み合わせが一致していると前記判定手段により判定される場合は該一致した組み合わせのデータを正常なデータとして推定する第１データ推定手段と、
前記組み合わせの全てが不一致であると前記判定手段により判定される場合は不一致となるビット数の最も多い組み合わせの２つのデータのうち、先に前記書込手段により書き込まれたデータの上位から所定ビット数分のデータと、後に前記書込手段により書き込まれたデータの下位から前記所定ビット数分のデータとに基づいて正常なデータを推定する第２データ推定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第２データ推定手段は、前記上位から所定ビット数分のデータと、前記下位から前記所定ビット数分のデータから予測データを生成し、該予測データが前記不一致となるビット数の最も少ない組み合わせの２つのデータと一致している場合に、該予測データを正常なデータとして推定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記上位から前記所定ビット数分のデータは、不一致となるビットのうち最下位のビットよりも上位ビットのデータであり、
前記下位から前記所定ビット数分のデータは、不一致となるビットのうち最上位のビットよりも下位ビットのデータであることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記予め定められた時間とは、データがＮ（Ｎは自然数）ビットである場合に、前記記憶手段に対してＮ／２＋１ビット分の書き込みに要する時間であることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記第１データ推定手段又は前記第２データ推定手段により推定された前記正常なデータを前記書込手段によって再び各記憶手段に書き込ませることによりデータを修復する修復手段をさらに備えることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
複数の記憶手段を備える情報処理装置の制御方法であって、
前記複数の記憶手段の各々へ同一のデータを書き込む際に各記憶手段へのデータの書き込みを予め定められた時間ずつずらして開始させる書込ステップであって特定の記憶手段への前記同一のデータの書き込みが終了する前に他の記憶手段への前記同一のデータの書き込みを開始させる書込ステップと、
前記複数の記憶手段の各々に書き込まれた前記同一のデータを読み出す読出ステップと、
前記複数の記憶手段の各々から読み出した前記同一のデータのうち２つのデータの組み合わせを全ての組み合わせについて選択し、選択した各組み合わせの２つのデータが一致しているか否かをビット単位で判定する判定ステップと、
前記全ての組み合わせのうち少なくとも１つの組み合わせが一致していると前記判定ステップにて判定される場合は該一致した組み合わせのデータを正常なデータとして推定する第１データ推定ステップと、
前記組み合わせの全てが不一致であると前記判定ステップにて判定される場合は不一致となるビット数の最も多い組み合わせの２つのデータのうち、先に前記書込ステップにて書き込まれたデータの上位から所定ビット数分のデータと、後に前記書込ステップにて書き込まれたデータの下位から前記所定ビット数分のデータとに基づいて正常なデータを推定する第２データ推定ステップと
を実行することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、重要情報を複数のメモリに記憶させる情報処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
一般に、情報処理装置は、通常の電源断、メモリへ書き込み中のノイズ、予期せぬ電源断によって消失しては困る重要な情報を複数の半導体メモリに書き込んでバックアップを取る仕組みを用いている。ここで、情報処理装置である画像処理装置の複合機（以下、ＭＦＰと称す。）を例に説明する。例えばＭＦＰにおいて重要な情報とは、消失すると再入力が困難な設定値や保存値である課金機能に用いるプリント枚数のカウンタ値、機器の主要な設定値、ＦＡＸ機能の電話番号帳、Ｅメール機能のアドレスリストなどである。
【０００３】
図１４は、情報処理装置１４００の構成を示す図である。図１４に示すように、情報処理装置１４００では、重要情報バックアップ部１０５にＳＯＣ（System On Chip）１２５０から、パラレルＩＦを介して重要情報を別々のタイミングでＳＲＡＭ１２１０、１２２０、ＦＲＡＭ１２４０に対して書き込んでいた。このように、同じ値を３つのメモリに格納することで消失の可能性を減少させている。なお、ＳＯＣとは、ＣＰＵとＡＳＩＣを一体化して同一パッケージに設けたチップを示す。
【０００４】
図１５は、情報処理装置１４００におけるメモリへのライトタイミングを示す図である。図１６は、情報処理装置１４００におけるメモリからのリードタイミングを示す図である。このように情報処理装置１４００では、各メモリに対して異なるタイミングで書き込み又は読込を行っている。なお、ＳＲＡＭは揮発性であるため別途電池回路１２３０を必要とする。また、ＦＲＡＭは、同じ不揮発性メモリであるＥＥＰＲＯＭより高価である。したがって、情報処理装置１４００の構成では、メモリをＥＥＰＲＯＭで構成するよりもコストが高くなってしまう。
【０００５】
そこで、情報処理装置１４００をコストダウンさせた図１７に示す情報処理装置１７００が考えられる。図１７は、情報処理装置１７００の構成を示す図である。情報処理装置１７００は、重要情報バックアップ部１０５にＳＯＣ１２６０から、シリアルＩＦを介して重要情報を別々のタイミングでシリアルＥＥＰＲＯＭ１２７０、１２８０、１２９０に対して書き込みを行う。情報処理装置１７００は、情報処理装置１４００と比較して、メモリをＥＥＰＲＯＭに変更し、インタフェースをシリアルインタフェースに変更することによりコストダウンを図っている。
【０００６】
図１８は、情報処理装置１７００におけるメモリへのライトタイミングを示す図である。図１９は、情報処理装置１７００におけるメモリからのリードタイミングを示す図である。図１８及び図１９に示すように、情報処理装置１７００のメモリへの書込スピード及びメモリからの読込スピードが情報処理装置１４００よりも遅くなっている。これは、情報処理装置１７００がメモリへのインタフェースをシリアルインタフェースにしたことが主な原因となる。このように、メモリへのアクセス時間が増大すると、ソフトパフォーマンスが低下するという問題が発生する。同時にメモリへのアクセス時間が増大することでノイズや予期せぬ電源断の影響によりデータ化けの可能性が高くなる。
【０００７】
特許文献１は、ホストＣＰＵのソフト負荷を軽くするため、ＣＰＵが細かくポーリングすることなく容易にライト終了を通知するシリアルＥＥＰＲＯＭを提案している。
【特許文献１】特開２００４−１１０４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術には以下の問題がある。上述したように、情報処理装置１４００では、メモリへのアクセススピードについては問題ないが、ＳＲＡＭには別途電池回路が必要となり、ＦＲＡＭが高価であるためコストが増大してしまうという問題がある。また、情報処理装置１７００では、シリアルインタフェースのＥＥＰＲＯＭに変更したことで、コストダウンを望めるがメモリへのアクセススピードが遅くなるという問題がある。さらに、情報処理装置１７００では、メモリへのアクセス時間が増大することでソフトパフォーマンスが低下し、同時に増大したアクセス時間によるノイズや予期せぬ電源断の影響によりデータ化けの可能性が高くなってしまう。また、特許文献１では、ホストＣＰＵの処理負荷を低減させることは可能であるが、メモリへのアクセス時間が増大することによるデータ化けの対策については提案されていない。
【０００９】
本発明は、上述の問題に鑑みて成されたものであり、データの信頼性を確保しつつ、メモリアクセス時間及びコストを低減させる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、例えば、情報処理装置として実現できる。複数の記憶手段と、複数の記憶手段の各々へ同一のデータを書き込む際に各記憶手段へのデータの書き込みを予め定められた時間ずつずらして開始させる書込手段であって、特定の記憶手段への同一のデータの書き込みが終了する前に他の記憶手段への同一のデータの書き込みを開始させる書込手段と、複数の記憶手段の各々に書き込まれた同一のデータを読み出す読出手段と、複数の記憶手段の各々から読出手段が読み出した同一のデータのうち２つのデータの組み合わせを全ての組み合わせについて選択し、選択した各組み合わせの２つのデータが一致しているか否かをビット単位で判定する判定手段と、全ての組み合わせのうち少なくとも１つの組み合わせが一致していると判定手段により判定される場合は一致した組み合わせのデータを正常なデータとして推定する第１データ推定手段と、組み合わせの全てが不一致であると判定手段により判定される場合は不一致となるビット数の最も多い組み合わせの２つのデータのうち、先に書込手段により書き込まれたデータの上位から所定ビット数分のデータと、後に書込手段により書き込まれたデータの下位から所定ビット数分のデータとに基づいて正常なデータを推定する第２データ推定手段とを備えることを特徴とする。
【００１１】
また、本発明は、例えば、複数の記憶手段を備える情報処理装置の制御方法として実現できる。方法は、複数の記憶手段の各々へ同一のデータを書き込む際に各記憶手段へのデータの書き込みを予め定められた時間ずつずらして開始させる書込ステップであって特定の記憶手段への同一のデータの書き込みが終了する前に他の記憶手段への同一のデータの書き込みを開始させる書込ステップと、複数の記憶手段の各々に書き込まれた同一のデータを読み出す読出ステップと、複数の記憶手段の各々から読み出した同一のデータのうち２つのデータの組み合わせを全ての組み合わせについて選択し、選択した各組み合わせの２つのデータが一致しているか否かをビット単位で判定する判定ステップと、全ての組み合わせのうち少なくとも１つの組み合わせが一致していると判定ステップにて判定される場合は一致した組み合わせのデータを正常なデータとして推定する第１データ推定ステップと、組み合わせの全てが不一致であると判定ステップにて判定される場合は不一致となるビット数の最も多い組み合わせの２つのデータのうち、先に書込ステップにて書き込まれたデータの上位から所定ビット数分のデータと、後に書込ステップにて書き込まれたデータの下位から所定ビット数分のデータとに基づいて正常なデータを推定する第２データ推定ステップとを実行することを特徴とする。
【発明の効果】
【００１２】
本発明は、例えば、データの信頼性を確保しつつ、メモリアクセス時間及びコストを低減させる情報処理装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１４】
なお、以下の実施形態では、本発明に係る情報処理装置として、画像処理装置である複合機（以下、ＭＦＰと称す。）を例に説明する。しかし、本発明は、情報処理装置を画像処理装置に限定するわけではなく、また画像処理装置をＭＦＰと限定するわけではない。具体的に、本発明は、装置を制御する制御部と、当該制御部に接続された複数のメモリとを備える情報処理装置であれば適用することができる。
【００１５】
＜情報処理装置の構成＞
まず、図１Ａ及び図１Ｂを参照して、本実施形態に係るＭＦＰの構成について説明する。図１Ａは、本実施形態に係るＭＦＰ１０の構成例を示す図である。
【００１６】
ＭＦＰ１０は、ホストコンピュータ（ＰＣ）５０とローカルエリアネットワーク（ＬＡＮ）６０を介して接続される。ＭＦＰ１０は、画像の入出力機能を有するものであり、紙原稿の読み取り及び紙への印刷出力を行う。読み取った画像情報は、紙に印刷したり、デジタルデータとして保存したり、ＬＡＮを経由して他の機器への転送したりすることも可能である。また、ＰＣ５０からのプリントデータや、他のＭＦＰからの画像情報を受信し、紙への印刷出力も可能である。
【００１７】
ＭＦＰ１０は、上述の機能を実現するためにコントローラユニット１０１、スキャナユニット１０２、操作パネルユニット１０３及び印刷を実行するプリンタユニット１０４を備える。コントローラユニット１０１は、スキャナユニット１０２、操作パネルユニット１０３及びプリンタユニット１０４と信号線を介して接続され、画像情報やデバイス情報の入出力を行う為のコントローラである。スキャナユニット１０２は、原稿から画像を読み取り、読み取った情報をコントローラユニット１０１に提供する。操作パネルユニット１０３は、オペレータへ情報を提示するとともに、オペレータからの入力を取得する。プリンタユニット１０４は、コントローラユニット１０１からの情報に基づいて、印刷を実行する。また、各ユニットの内部ブロックは内部バスで接続され、データの伝達が可能である。
【００１８】
コントローラユニット１０１は、ＳＯＣ１３１０を備える。ＳＯＣ１３１０は、ＣＰＵとＡＳＩＣを一体化して同一パッケージに設けたチップである。ＳＯＣ１３１０は、ＣＰＵ１１００、ＡＳＩＣ／ＤＲＡＭコントローラ１２００、ＡＳＩＣ／バスコントローラ１１９０及びＡＳＩＣシリアルメモリコントローラ１３２０を備える。
【００１９】
ＡＳＩＣ／バスコントローラ１１９０は、パラレルＩＦで構成する内部バスの制御を行う。ＡＳＩＣ／ＤＲＡＭコントローラ１２００は、ＤＲＡＭの制御を行う。ＤＲＡＭ１１１０は、ＣＰＵ１１００を動作させるためのシステムワークメモリである。また、画像データを一時記憶するための画像メモリでもある。ＲＯＭ１１２０は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ１１３０は、ハードディスクドライブで、システムソフトウェア、画像データなどを格納する。
【００２０】
システムソフトウェアは、コピー、ＳＣＡＮ、プリンタ等の機能を実現するためのプログラムであり、ＤＲＡＭ１１１０上に展開されて動作する。画像処理部１１７０は、画像データの入出力に際して、画像データの符号化、復号化、ラスタライズ、回転、多値と２値の変換及び他の適切な画像処理を行う。ＬＡＮＣ１１８０は、ＬＡＮ６０に接続し、画像データの入出力や機器制御にかかわる情報の入出力を行う。ネットワーク上のＰＣ５０又は、他のＭＦＰとの間で出力用画像データを受信して画像出力を行うことや、逆に自機で入力した画像データを送信することも可能である。
【００２１】
プリンタＩＦ１１６０は、プリンタユニット１０４と接続され、プリンタユニット１０４のプリンタ制御部４００と通信を行い、各種プリンタの状態取得やプリンタへの命令送出を行う。また、画像データの同期系／非同期系の変換を行い、プリントデータを伝達する。
【００２２】
スキャナＩＦ１１４０は、スキャナユニット１０２と接続し、スキャナユニット１０２のスキャナ制御部２１０と通信を行い、各種スキャナの状態取得やスキャナへの命令送出を行う。また、画像データの同期系／非同期系の変換を行い、読み取ったスキャナデータを伝達する。
【００２３】
また、スキャナユニット１０２は、スキャナの制御を行うスキャナ制御部２１０、画像処理部２２０、原稿を光学的に読み取るスキャナ２４０及び自動原稿送り装置や原稿台内のスキャナ装置を駆動するスキャナ用モータ２３０を備える。画像処理部２２０は、読み取った画像データのＡ／Ｄ変換、シェーディング処理、他の適切な画像処理を行う。
【００２４】
操作パネルＩＦ１１５０は、操作パネル制御部３２０とのインタフェース部で、操作パネル３１０に表示する画像データを出力する。操作パネル３１０では、オペレータによって押しボタンやテンキーなどによる入力が行われ、コピー処理の開始などの操作を取得する。操作パネル３１０における入力操作は、操作パネルＩＦ１１５０を通じてＣＰＵ１１００が実行するプログラムにより認識される。ＣＰＵ１１００は、認識した入力操作に従って機器全体の設定や、機能の実行指示を行うことで複写やスキャン処理を行わせる。
【００２５】
例えば、ユーザが原稿を複写機にセットし操作パネル３１０やＰＣ５０よりスキャン指示を行うと、ＣＰＵ１１００により、スキャナＩＦ１１４０を介してスキャナ制御部２１０へスキャン命令が伝達され、原稿のスキャンが行われる。読み取られた画像データは適切に処理され、ＨＤＤ１１３０やＰＣ５０に蓄積される。
【００２６】
また、ユーザが原稿を複写機にセットし操作パネル３１０よりコピー指示を行うと、ＣＰＵ１１００により、スキャナＩＦ１１４０を介してスキャナ制御部２１０へスキャン命令が伝達され、原稿のスキャンが行われる。読み取られた画像データは適切に処理され、ＨＤＤ１１３０に蓄積される。さらに、適切な画像処理を行いＨＤＤ１１３０からプリンタＩＦ１１６０を介してプリンタユニット１０４へ転送され、プリンタ４１０によって印刷が行われる。
【００２７】
ユーザがＰＣ５０からプリント指示を行うと、ＰＣ５０よりＬＡＮ６０を経由してプリントデータがＬＡＮＣ１１８０より受け取られ、適切な処理を行った後にＨＤＤ１１３０に蓄積される。さらに、適切な画像処理を行いＨＤＤ１１３０からプリンタＩＦ１１６０を介してプリンタユニット１０４へ転送され、プリンタ４１０によって印刷が行われる。
【００２８】
以下では、図１Ａに示す点線で囲まれた本発明で重要となるブロックについて説明する。
【００２９】
重要情報バックアップ部１０５は、シリアルＥＥＰＲＯＭ１２７０、１２８０、１２９０のようにＮ（Ｎは自然数）個のシリアルＩＦのメモリデバイスで構成される。ここでは、Ｎ＝３の構成を用いて説明を行うがメモリデバイスの数を限定するわけではない。また、図１５では物理的なデバイスが３つ設けられているが、物理的なデバイスが２つ以下に対して内部を論理的に３つに分けた構成でもよい。また、シリアルＩＦメモリの種類としては、ＥＥＰＲＯＭでもその他の方式のメモリデバイスでもよい。さらに、シリアルＩＦの種類としては、４線式でも３線式でも２線式でもその他の方式のＩＦでもよい。この重要情報バックアップ部１０５には、例えば、課金機能に用いるプリント枚数のカウンタ値、機器の主要な設定値、ＦＡＸ機能の電話番号帳、Ｅメール機能のアドレスリストなどが格納される。
【００３０】
ＡＳＩＣシリアルメモリコントローラ１３２０は、演算判定部１３９０、ＩＦ１３６０、１３７０、１３８０及びデータ保存部１３３０、１３４０、１３５０を備える。ＩＦ１３６０は、シリアルＥＥＰＲＯＭ１２７０とのデータのライト、リード制御を行う。ＩＦ１３７０は、シリアルＥＥＰＲＯＭ１２８０とのデータのライト、リード制御を行う。ＩＦ１３８０は、シリアルＥＥＰＲＯＭ１２９０とのデータのライト、リード制御を行う。ここで、ＩＦ１３６０、１３７０、１３８０は、それぞれ書込手段及び読込手段として機能する。
【００３１】
データ保存部１３３０は、シリアルＥＥＰＲＯＭ１２７０とのデータのライト、リードした結果を保存する。データ保存部１３４０はシリアルＥＥＰＲＯＭ１２８０とのデータのライト、リードした結果を保存する。データ保存部１３５０はシリアルＥＥＰＲＯＭ１２９０とのデータのライト、リードした結果を保存する。
【００３２】
演算判定部１３９０は、重要情報バックアップ部１０５から読み込んだデータ同士を照合処理して結果をＣＰＵへ送信する。また重要情報バックアップ部１０５へ書き込むデータや読み取ったデータをＣＰＵから受信する。図１Ｂは、本実施形態に係る演算判定部１３９０の詳細な制御ブロックを示す図である。
【００３３】
演算判定部１３９０は、判定部１３９１、データ推定部１３９２及び修復部１３９３を備える。判定部１３９１は、第１判定手段及び第２判定手段として機能し、選択された２つのデータが一致しているか否かを判定する。具体的に、判定部１３９１は、重要情報バックアップ部１０５の各シリアルＥＥＰＲＯＭからデータを読み込んだ場合に、読み込んだデータのうち２つのデータの組み合わせを全ての組み合わせについて選択する。さらに、判定部１３９１は、選択した各組み合わせの２つのデータが一致しているか否かを判定する。判定部１３９１は、選択した２つのデータを比較することにより当該２つのデータが一致しているか否かを判定する比較部１３９８と、判定するデータの全ビットで一致しない不一致ビットの個数をカウントするカウンタ（カウント手段）１３９４とを備える。なお、データの判定方法の詳細については後述する。
【００３４】
データ推定部１３９２は、判定部１３９１によって全ての組み合わせのうち少なくとも１つの組み合わせが不一致であると判定されると、各組み合わせの判定結果から正常なデータを推定する。具体的に、データ推定部１３９２は、全ての組み合わせのうち一部の組み合わせのみが不一致であると判定されると、簡易推定手段として機能し、一致した組み合わせのデータを正常なデータとして推定する。また、データ推定部１３９２は、組み合わせの全てが不一致であると判定された場合に、詳細推定手段として機能し、各データから有効なビットのみを抽出して結合した結合データを正常なデータとして推定する。そのため、データ推定部１３９２は、有効上位ビット抽出部１３９５、有効下位ビット抽出部１３９６及び結合部１３９７を備える。なお、これらのコンポーネントの詳細及びデータの推定方法の詳細については後述する。
【００３５】
＜比較例との差異＞
次に、図１４及び図１７に示す比較例である情報処理装置１４００、１７００を参照して、本実施形態に係る情報処理装置との差異について説明する。ここでは、本発明の特徴部分となるＳＯＣ及びメモリの差異について説明する。
【００３６】
まず、情報処理装置１４００に備えられるＳＯＣ１２５０及びメモリの差異について説明する。情報処理装置１４００には、ＳＯＣ１２５０の内部に本実施形態に係るＡＳＩＣシリアルメモリコントローラ１３２０に相当するコンポーネントがない。また、メモリとしては、パラレルＩＦのＳＲＡＭ１２１０、ＳＲＡＭ１２２０及びＦＲＡＭ１２４０が使用されている。さらに、ＳＲＡＭ１２１０、１２２０の情報を保持するための電池回路１２３０が備えられている。なおＡＳＩＣバスコントローラ１１９０では、後述する図２及び図３に示す制御が行われない。具体的に、ＡＳＩＣバスコントローラ１１９０では、ＣＰＵから受け取った書き込みデータをパラレルＩＦ経由で図１５に示すタイミングでライトするだけである。また、ＡＳＩＣバスコントローラ１１９０は、ＣＰＵから発行した読み取り制御に応じて、パラレルＩＦ経由で図１６に示すタイミングでリードし、ＣＰＵへ値を返すだけである。
【００３７】
次に、情報処理装置１７００に備えられるＳＯＣ１２６０との差異について説明する。情報処理装置１７００では、ＳＯＣ１２６０の内部にＡＳＩＣシリアルメモリコントローラ１３２０が設けられていない代わりにＡＳＩＣシリアルＥＥＰＲＯＭコントローラ１７０１が設けられている。なお、ＡＳＩＣシリアルＥＥＰＲＯＭコントローラ１７０１では、後述する図２及び図３に示す制御が行われない。ＡＳＩＣシリアルＥＥＰＲＯＭコントローラ１７０１では、ＣＰＵから受け取った書き込みデータを図１８に示すタイミングでライトするだけである。また、ＡＳＩＣシリアルＥＥＰＲＯＭコントローラ１７０１では、ＣＰＵから発行された読み取り制御に応じて、図１９に示すタイミングでリードし、ＣＰＵへ値を返すだけである。
【００３８】
＜書き込み制御＞
次に、図２を参照して、本実施形態に係る書き込み制御について説明する。図２は、本実施形態に係る書き込み制御の処理手順を示す図である。以下に説明する制御は、ＳＯＣ１３１０によって統括的に制御される。なお、ここでＭＦＰ１０は、電源が投入され、各種初期化処理が実行されたスタンバイ状態であるとする。
【００３９】
図２に示す処理は、重要情報バックアップ部１０５への書き込みが発生した場合に実行される。例えば、コピーやプリントが行われると、課金機能に用いるカウンタ値の書き換えが発生する。カウンタ値にはコピー枚数やプリント枚数が記憶されており、枚数に応じて課金処理が行われる。
【００４０】
ステップＳ２０１において、ＣＰＵ１１００は、重要情報バックアップ部１０５への書き込み要求が発生したか否かを判定する。ここで、書き込み要求が発生していれば、Ｓ２０２へ処理が遷移される。一方、発生していない場合は、定期的にＳ２０１の判定が繰り返される。
【００４１】
ステップＳ２０２において、ＣＰＵ１１００は、ＡＳＩＣシリアルメモリコントローラ１３２０へ書き込み制御の発行を行う。具体的に、ＣＰＵ１１００は、重要情報バックアップ部１０５へ書き込むデータをＣＰＵ１１００からＡＳＩＣシリアルメモリコントローラ１３２０へ書き込む。ＡＳＩＣシリアルメモリコントローラ１３２０には、レジスタが備えられており、書き込みデータ、接続されるシリアルＥＥＰＲＯＭの数、アクセス方式、及び、ライト処理かリード処理かの情報などを設定することができる。ライト処理が指定されている場合、ＡＳＩＣシリアルメモリコントローラ１３２０は、同じ値を各シリアルＥＥＰＲＯＭへ書き込むために、以下で説明する処理を実行する。このような複数のメモリへ書き込みを行う際に書き込み時間を短縮するためには、同時に各メモリへ書き込みを実行することが望ましい。しかし、本実施形態では、書き込み時のノイズの混入を考慮して、少なくとも１つのシリアルＥＥＰＲＯＭにノイズが混入しないように、書き込み開始時間を各メモリでずらして行う。
【００４２】
ステップＳ２０３において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３６０を経由してシリアルＥＥＰＲＯＭ１２７０へのライト処理を開始する。
【００４３】
次に、ステップＳ２０４において、ＡＳＩＣシリアルメモリコントローラ１３２０は、シリアルＥＥＰＲＯＭ１２７０への書き込みを開始してから予め定められた時間が経過するまで待機する。ここで、予め定められた時間とは、例えば、ＥＥＰＲＯＭへ書き込むデータがＮ（Ｎは自然数）ビットである場合、Ｎ／２＋１ビット分の書き込みに要する時間である。したがって、ＡＳＩＣシリアルメモリコントローラ１３２０は、書き込むデータが８ビットである場合、データの上位から数えて５ビット目であるｂｉｔ３のライト処理が終了するまで待機することとなる。また、ＡＳＩＣシリアルメモリコントローラ１３２０は、この予め定められた時間を計時することにより検出してもよいが、ＩＦ１３６０を監視して上位５ビットの書き込みが終了時点を検出してもよい。なお、時間の計時は、ＡＳＩＣシリアルメモリコントローラ１３２０内のクロックを数えることで行われる。
【００４４】
予め定められた時間が経過すると、ステップＳ２０５において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３７０を経由してシリアルＥＥＰＲＯＭ１２８０へ行われるライト処理を開始する。即ち、シリアルＥＥＰＲＯＭ１２７０のｂｉｔ２のライト処理と同時にシリアルＥＥＰＲＯＭ１２８０へのライト処理が開始される。
【００４５】
ステップＳ２０６において、ＡＳＩＣシリアルメモリコントローラ１３２０は、Ｓ２０４と同様に、予め定められた時間が経過するまで待機する。予め定められた時間が経過すると、ステップＳ２０７において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３８０を経由してシリアルＥＥＰＲＯＭ１２９０へのライト処理を開始する。即ち、シリアルＥＥＰＲＯＭ１２８０のｂｉｔ２のライト処理と同時にシリアルＥＥＰＲＯＭ１２９０へのライト処理が開始される。
【００４６】
ステップＳ２０８において、ＡＳＩＣシリアルメモリコントローラ１３２０は、書き込みが終了するまで待機し、書き込み制御を終了する。本実施形態ではメモリの数が３つの場合を想定しているため、これで書き込み処理は終了する。したがって、メモリの数が異なる場合は、メモリ数にともない書き込み回数が異なる。
【００４７】
上述のように、本実施形態によれば、書き込み制御において、各シリアルＥＥＰＲＯＭへのデータの書き込みを予め定められた時間ずつずらして開始させる。これにより、本実施形態では、少なくとも１つのシリアルＥＥＰＲＯＭメモリの書き込み時にノイズが混入しないように制御している。
【００４８】
図４は、本実施形態に係る各シリアルＥＥＰＲＯＭへの書き込みタイミングを示すタイミングチャートである。図４において、４０１は、ＣＰＵ１１００の書き込み要求４０５のタイミングを示す。４０２は、ＩＦ１３６０（ＩＦ１とも称す。）を介したＥＥＰＲＯＭ１２７０（ＥＥＰＲＯＭ１とも称す。）への書き込みタイミングを示す。４０３は、ＩＦ１３７０（ＩＦ２とも称す。）を介したＥＥＰＲＯＭ１２８０（ＥＥＰＲＯＭ２とも称す。）への書き込みタイミングを示す。４０４は、ＩＦ１３８０（ＩＦ３とも称す。）を介したＥＥＰＲＯＭ１２９０（ＥＥＰＲＯＭ３とも称す。）への書き込みタイミングを示す。４０６は、シリアルＥＥＰＲＯＭへのデータ書き込み時に発生するノイズＡのタイミングを示す。４０７は、シリアルＥＥＰＲＯＭへのデータ書き込み時に発生するノイズＢのタイミングを示す。
【００４９】
ここで、シリアルＥＥＰＲＯＭ１２７０へ書き込むデータを８ｂｉｔとすると、上位ｂｉｔがデータＡ、下位ｂｉｔがデータＢとなる。同様にシリアルＥＥＰＲＯＭ１２８０へ書き込むデータは、上位ｂｉｔがデータＣ、下位ｂｉｔがデータＤとなる。同様にシリアルＥＥＰＲＯＭ１２９０へ書き込むデータは、上位ｂｉｔがデータＥ、下位ｂｉｔがデータＦとなる。同じ値をバックアップを目的として書き込むため、データＡ＝データＣ＝データＥとなる。同様にデータＢ＝データＤ＝データＦとなる。
【００５０】
図４に示すように、書き込む開始時間をずらすことで、ノイズＡは、ＥＥＰＲＯＭ１２７０への書き込みデータにのみ影響を与えることとなる。即ち、ＥＥＰＲＯＭ１２８０、１２９０へ書き込まれるデータは、ノイズの影響を受けない。また、ノイズＢは、ＥＥＰＲＯＭ１２７０、１２８０への書き込みデータに影響を与えるが、ＥＥＰＲＯＭ１２９０への書き込みデータには、影響を与えない。このように、本実施形態によれば、同時に全てのメモリに対して書き込みを行う書き込み制御と比較して、複数のメモリのうち少なくとも１つのメモリにはノイズが混入されていないデータが書き込まれる可能性が高いと言える。これは、本実施形態に係るＭＦＰ１０の環境において、ノイズの発生が周期的であったとしても１回のアクセスサイクルでノイズが複数回発生する可能性がほとんど無いためである。ここで、１回のアクセスサイクルとは、Ｓ２０３乃至Ｓ２０８の処理を示す。したがって、１回のアクセスサイクルで複数回のノイズが発生する可能性のある環境においては、メモリの数を増やすことも考えられる。また、複数のメモリに対して、全ての書き込みを異なるタイミングで行う書き込み制御と比較すると、本実施形態に係る書き込み制御は、１回のアクセスサイクルに要する時間を低減することができ、それに伴いノイズの発生も低減することができる。
【００５１】
＜読み込み制御＞
次に、図３を参照して、本実施形態に係る読み込み制御について説明する。図３は、本実施形態に係る読み込み制御の処理手順を示す図である。以下に説明する制御は、ＳＯＣ１３１０によって統括的に制御される。なお、ここでＭＦＰ１０は、電源が投入され、各種初期化処理が実行されたスタンバイ状態であるとする。
【００５２】
図３に示す処理は、課金機能に用いるカウンタ値の表示操作やコントローラシステムの動作上必要な場合にカウンタ値の読み出しを行う。或いは、機器の主要な設定値、ＦＡＸ機能の電話番号帳、Ｅメール機能のアドレスリストなどを変更、読み出す場合や、データを書き込んだ後に値を確認する場合などに実行される。
【００５３】
ステップＳ３０１において、ＣＰＵ１１００は、重要情報バックアップ部１０５に記憶されたデータの読み込み要求が発生したか否かを判定する。ここで、読み込み要求が発生していれば、Ｓ３０２へ処理が遷移される。一方、発生していない場合は、定期的にＳ３０１の判定が繰り返される。
【００５４】
ステップＳ３０２において、ＣＰＵ１１００は、ＡＳＩＣシリアルメモリコントローラ１３２０へ読み取り制御命令を発行する。ＡＳＩＣシリアルメモリコントローラ１３２０には、レジスタが備えられており、読み取りデータ、接続されるシリアルＥＥＰＲＯＭの数、アクセス方式、ライト処理かリード処理を示す情報などが設定される。
【００５５】
ステップＳ３０３において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３６０を経由してシリアルＥＥＰＲＯＭ１２７０のデータを読み込み、読み込んだデータをデータ保存部１３３０へ保存する。また、ステップＳ３０４において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３７０を経由してシリアルＥＥＰＲＯＭ１２８０のデータを読み込み、読み込んだデータをデータ保存部１３４０へ保存する。さらに、ステップＳ３０５において、ＡＳＩＣシリアルメモリコントローラ１３２０は、ＩＦ１３８０を経由してシリアルＥＥＰＲＯＭ１２９０のデータを読み込み、読み込んだデータをデータ保存部１３５０へ保存する。その後、ステップＳ３０６において、ＡＳＩＣシリアルメモリコントローラ１３２０は、データ保存部１３３０、１３４０、１３５０（データ保存部１、２、３とも称す。）に読み込まれたデータを演算判定部１３９０へ読み込ませる。このように、ＡＳＩＣシリアルメモリコントローラ１３２０は、重要情報バックアップ部１０５に保存されているＮ（ここでは、Ｎ＝３となる。）個のデータを読み出し、それぞれ別のデータ保存部に格納し、さらに各データを演算判定部１３９０に読み込む。
【００５６】
次に、ステップＳ３０７において、演算判定部１３９０は、読み込んだ各データのうち２つのデータの組み合わせを全ての組み合わせについて選択し、選択した各組み合わせのデータを比較する。したがって、ここでは、データ保存部１、２、データ保存部１、３及びデータ保存部２、３の組み合わせについてそれぞれデータを比較する。また、比較された結果は、演算判定部１３９０の内部で保存される。ここで、図５を参照して、各組み合わせのの比較方法について説明する。図５は、本実施形態に係る演算判定部１３９０において２つのデータを比較する方法を説明する図である。ここでは、一例としてデータ保存部１、２のデータ、即ち、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２８０とに記憶された値を比較する方法について説明する。なお、以下の比較は、判定部１３９１によって実行される。
【００５７】
判定部１３９１は、比較部１３９８を用いて、シリアルＥＥＰＲＯＭ１とシリアルＥＥＰＲＯＭ２の値の各ｂｉｔごとにＥｘ．ＯＲ（排他的論理和）を算出して比較を行う。比較部１３９８は、同様に他の組み合わせについても比較を行い、比較結果を内部に保存する。図５は、データの書き込み中に図４に示すノイズＢが発生したときのデータを想定している。したがって、ＥＥＰＲＯＭ１のｂｉｔ１のデータと、ＥＥＰＲＯＭ２のｂｉｔ６のデータとがノイズを含んでいる。これら２つのデータの排他的論理和は、図５に示す比較結果（０１００００１０）のようになる。即ち、ｂｉｔ１、６が１となり、他のｂｉｔが０となる。判定部１３９１は、この比較結果を保存し、さらに、カウンタ１３９４を用いて不一致ビットの個数をカウントし、保存する。シリアルＥＥＰＲＯＭ１とシリアルＥＥＰＲＯＭ２の比較結果において、不一致ビットは２つとなる。
【００５８】
図４に示すノイズＢの場合、ノイズの影響を受けるのは、シリアルＥＥＰＲＯＭ１２７０のデータＢの１箇所とシリアルＥＥＰＲＯＭ１２８０のデータＣの１個所である。したがって、不一致ビットが発生したシリアルＥＥＰＲＯＭ１２７０の値は２箇所とも化けているわけではない。それにもかかわらず比較不一致ビットが２つ発生するのは、２つのうち１つは実際にデータ化けした箇所で、もう１つは比較相手のシリアルＥＥＰＲＯＭ１２８０のデータが化けているからである。したがって、この時点ではシリアルＥＥＰＲＯＭ１２７０の何れのビットデータにノイズが混入しているか判定できない。
【００５９】
ステップＳ３０７において、演算判定部１３９０は、全ての組み合わせについて上述した方法で比較を行い、比較結果と不一致ビットの個数を各組み合わせごとに保存する。図６は、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２９０とのデータの比較結果を示す図である。図７は、シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０とのデータの比較結果を示す図である。シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、図６に示すように、００００００１０となる。したがって、不一致ビットが１つある。シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、図７に示すように、０１００００００となる。したがって、不一致ビットが１つある。
【００６０】
全ての組み合わせの比較を行うと、ステップＳ３０８において、判定部１３９１は、全ての組み合わせのデータが一致しているか否かを判定する。全ての組み合わせのデータが一致している場合（比較結果が全て００００００００である場合）、ステップＳ３０９において、判定部１３９１は、不一致無しを示す情報をＡＳＩＣシリアルメモリコントローラ１３２０内の判定結果フラグに格納して処理を終了する。即ち、Ｓ３０９では、比較結果が、
ＥＥＰＲＯＭ１＝ＥＥＰＲＯＭ２
ＥＥＰＲＯＭ１＝ＥＥＰＲＯＭ３
ＥＥＰＲＯＭ２＝ＥＥＰＲＯＭ３
となり、すべて一致したので、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２とＥＥＰＲＯＭ３のデータは正常であると判定される。
【００６１】
一方、Ｓ３０８で全ての組み合わせのうち少なくとも１つの組み合わせが不一致である場合、判定部１３９１は、処理をＳ３１０に遷移させる。Ｓ３１０において、判定部１３９１は、全ての組み合わせのデータが不一致であるか否かを判定する。全ての組み合わせのデータが不一致である場合、判定部１３９１は、処理をＳ３１２に遷移させる。一方、全ての組み合わせのデータが不一致でない場合、判定部１３９１は、処理をＳ３１１に遷移させる。
【００６２】
ステップＳ３１１において、データ推定部１３９２は、比較結果に異常はあったが、全ての組み合わせが異常では無かったため、比較結果が一致した組み合わせのデータの何れか一方を正常なデータとして推定する。例えば、図４に示すノイズＡが発生した場合を考えると、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２８０の比較結果は、不一致ビットを１、一致ビットを０とすると、０１００００００となる。したがって、不一致ビットが１つとなる。また、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、０１００００００となる。したがって、不一致ビットが１つとなる。さらに、シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、００００００００となる。したがって、不一致ビットが０となる。即ち、比較結果は、
ＥＥＰＲＯＭ１≠ＥＥＰＲＯＭ２
ＥＥＰＲＯＭ１≠ＥＥＰＲＯＭ３
ＥＥＰＲＯＭ２＝ＥＥＰＲＯＭ３
となる。シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０が一致したことより、シリアルＥＥＰＲＯＭ１２７０のデータにノイズが混入した可能性が高い。しかし、シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０のデータは正常である可能性が高い。
【００６３】
よって、データ推定部１３９２は、比較結果が正常となったデータ保存部１３５０の値（データ保存部１３５０の値でもよい。）を正常なデータとして推定する。さらに、修復部１３９３は、推定された正常なデータを重要情報バックアップ部１０５へ書き込みための書き込み要求を発生させる。また、ＡＳＩＣシリアルメモリコントローラ１３２０は、内部のレジスタの判定結果フラグに正常比較結果からの自動復帰発生をセットし、処理を終了する。
【００６４】
一方、Ｓ３１０で全ての比較結果が不一致であった場合、Ｓ３１２以降の処理で、本実施形態は、各データから正常なビットと推定されるデータの一部を抽出し、正常なデータを生成する。例えば、図４に示すノイズＢが混入した場合、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２８０の比較結果は、不一致ビットを１、比較一致ＢＩＴを０とすると、０１００００１０となる。したがって、不一致ビットが２つとなる。また、シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、図６に示すように、００００００１０となる。したがって、不一致ビットが１つとなる。さらに、シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０の比較結果は、図７に示すように、０１００００００となる。したがって、不一致ビットが１つとなる。
つまり比較結果は、
ＥＥＰＲＯＭ１≠ＥＥＰＲＯＭ２
ＥＥＰＲＯＭ１≠ＥＥＰＲＯＭ３
ＥＥＰＲＯＭ２≠ＥＥＰＲＯＭ３
となり、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２とＥＥＰＲＯＭ３はすべて一致しないことをあらわしている。
【００６５】
本実施形態によれば、図２及び図４に示すような書き込み制御を行っているため、３つ以上のＥＥＰＲＯＭに同時に書き込みを行わない。これにより、ノイズが発生した場合であっても少なくとも１つのデータは影響を受けていないこととなる。したがって、Ｓ３１２以降の処理でこれらの特徴を利用して正常なデータを推定する。
【００６６】
まず、ステップＳ３１２において、データ推定部１３９２は、不一致ビットの数が最も多い組み合わせを選択する。例えば、ノイズＢが発生した場合、上述の比較結果から、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２との比較結果では、不一致ビットが２つとなる。また、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ３との比較結果では、不一致ビットが１つとなる。さらに、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３との比較結果では、不一致ビットが１つとなる。これより不一致ビットの最も多い比較結果はＥＥＰＲＯＭ１とＥＥＰＲＯＭ２を比較したときとなる。この結果を演算判定部１３９０内に保存して、Ｓ３１３へ移行する。
【００６７】
ステップＳ３１３において、データ推定部１３９２は、Ｓ３１２で選択した比較結果において、書き込み制御において、先に書き込んだメモリと後に書き込んだメモリを特定する。つまり、図４に示す書き込みタイミングから、先にデータを書き込んだメモリはシリアルＥＥＰＲＯＭ１２７０であると特定され、この結果が演算判定部１３９０内に保存される。同様に、後にデータを書き込んだメモリはシリアルＥＥＰＲＯＭ１２８０であると特定され、この結果が演算判定部１３９０内に保存される。
【００６８】
続いて、ステップＳ３１４において、有効上位ビット抽出部１３９５は、比較結果から、先にデータが書き込まれたメモリ（シリアルＥＥＰＲＯＭ１２７０）のデータの有効上位ビットを特定する。具体的に、有効上位ビット抽出部１３９５は、比較結果の下位ビットから検索して、不一致ビットの現れる回数が、不一致ビットの個数より１小さくなる（「不一致数−１」となる）ビットよりも上位のビットを有効ビットとして特定する。この「不一致数−１」が有効ビットを特定するための閾値となる。ここでは、不一致数が２であるため閾値は１となる。なお、この閾値は、操作者から設定可能に構成されてもよい。具体的な処理について、図８を参照して説明する。図８は、本実施形態に係る有効上位ビットのデータを抽出する方法を示す図である。
【００６９】
図５に示すように、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果は、０１００００１０で、不一致数は２となる。したがって、閾値は、「不一致数−１」＝１となる。図８に示すように、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果は、０１００００１０なので、下位ビットから不一致ｂｉｔが現れる回数をカウントしていくと、ｂｉｔ１で不一致ｂｉｔが１回現れる。ここで、不一致ビットが現れる回数が１で、「不一致数−１」が１となり、同じになったので、ｂｉｔ１より上位のビット、つまりｂｉｔ２からｂｉｔ７までを有効上位ビットと特定する。一方、ｂｉｔ１とそれより下位側を含めたｂｉｔ１からｂｉｔ０までのｂｉｔを破棄データとする。この結果を先に書き込んだメモリ用の上位ビット側の有効データとして、演算判定部１３９０に保存し、Ｓ３１５へ移行する。
【００７０】
Ｓ３１５において、有効下位ビット抽出部１３９６は、比較結果から、後に書き込まれたメモリ（シリアルＥＥＰＲＯＭ１２８０）のデータの有効下位ビットを特定する。具体的に、有効下位ビット抽出部１３９６は、比較結果の上位ビットから検索して、不一致ビットの現れる回数が、不一致ビットの個数より１小さくなる（「不一致数−１」となる）ビットよりも下位のビットを有効ビットとして特定する。具体的な処理については、図９を参照して説明する。図９は、本実施形態に係る有効下位ビットのデータを抽出する方法を示す図である。
【００７１】
図５に示すように、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果は、０１００００１０で、不一致数は２となる。したがって、閾値は、「不一致数−１」＝１となる。図９に示すように、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果は、０１００００１０なので、上位ビット側から不一致ビットが現れる回数をカウントしていくと、ｂｉｔ６で不一致ビットが１回現れる。
【００７２】
ここで不一致ビットが現れる回数が１、「不一致数−１」が１となり、同じになったので、ｂｉｔ６より下位のビット、つまりｂｉｔ５からｂｉｔ０までを下位ビット側の有効データと特定する。一方、ｂｉｔ６とそれより上位側を含めたｂｉｔ７からｂｉｔ６までを破棄データとする。この結果を後に書き込んだメモリ用の下位ビット側の有効データとして、この結果を演算判定部１３９０に保存し、Ｓ３１６へ移行する。
【００７３】
次に、ステップＳ３１６において、有効上位ビット抽出部１３９５は、Ｓ３１４で特定した上位ビット側の有効データと、Ｓ３１３で選択した先に書き込んだメモリのデータ保存値とのＡＮＤを行い、有効データαを抽出する。具体的に、有効上位ビット抽出部１３９５は、図８に示すように有効ビットを１、破棄ビットを０とした１１１１１１００と、ＥＥＰＲＯＭ１のデータとのＡＮＤを演算する。したがって、上位ビット側の有効データαは、ＥＥＰＲＯＭ１のｂｉｔ７からｂｉｔ２までのデータが抽出されたデータとなる。また、破棄データとなるｂｉｔ１からｂｉｔ０は０となる。この結果を演算判定部１３９０に保存してＳ３１７へ移行する。
【００７４】
ステップＳ３１７において、有効下位ビット抽出部１３９６は、Ｓ３１５で特定した下位ビット側の有効データと、Ｓ３１３で選択した、後に書き込んだメモリのデータ保存値とのＡＮＤを行い、有効データβを抽出する。具体的に、有効下位ビット抽出部１３９６は、図９に示すように有効ビットを１、破棄ビットを０とした００１１１１１１と、ＥＥＰＲＯＭ２のデータとのＡＮＤを演算する。したがって、下位ビット側の有効データβは、ＥＥＰＲＯＭ２のｂｉｔ５からｂｉｔ０までのデータが抽出されたデータとなる。また、破棄データとなるｂｉｔ７からｂｉｔ６は０となる。この結果を演算判定部１３９０に保存してＳ３１８へ移行する。
【００７５】
ステップＳ３１８において、結合部１３９７は、有効データα及び有効データβから予測データγを生成する。図１０は、本実施形態に係る予測データγを生成する方法を示す図である。
【００７６】
図１０に示すように、結合部１３９７は、有効データαと有効データβを結合して、予測データγを生成する。具体的に、結合部１３９７は、有効データαと有効データβのＯＲを行い、８ｂｉｔの予測データγを生成する。この結果を演算判定部１３９０に保存してＳ３１９へ移行する。
【００７７】
Ｓ３１９において、データ推定部１３９２は、Ｓ３０７の比較結果のうち、不一致が発生した回数が最も少ないデータを選択する。ここで、不一致が発生した回数（不一致発生回数）のカウント方法について説明する。
【００７８】
まず、ＥＥＰＲＯＭ１に記憶されたデータの不一致発生回数について説明する。ＥＥＰＲＯＭ１に関連する比較結果は、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ３の比較結果である。これらの比較結果から、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果の不一致ビット２つと、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ３の比較結果の不一致ビット１つを加算すると、３となる。これがＥＥＰＲＯＭ１の不一致発生回数となる。即ち、不一致ビット１つにつき、不一致発生回数１回として換算する。
【００７９】
同様に、ＥＥＰＲＯＭ２に関連する比較結果は、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３の比較結果である。ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２の比較結果の不一致ビット２つと、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３の比較結果の不一致ビット１つを加算すると、３となる。これがＥＥＰＲＯＭ２の不一致発生回数となる。
【００８０】
同様に、ＥＥＰＲＯＭ３に関連する比較結果は、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ３の比較結果、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３の比較結果である。ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３の比較結果の不一致ビット１つと、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３の比較結果の不一致ビット１つを加算すると、２となる。これがＥＥＰＲＯＭ３の不一致発生回数となる。
【００８１】
本実施形態によれば、これらの加算処理は図１１に示す回路で行われる。図１は、本実施形態に係る不一致発生回数を算出する加算回路１１０５を示す図である。以下で説明する加算回路１１０５は、一例であり、本発明を限定するわけではない。即ち、以下の処理が達成できるのであれば他の方式でもよい。
【００８２】
加算回路１１０５は、属性信号１１０１ａ、ｂ、ｃ及び各組み合わせの不一致ビットの個数１１０２ａ、ｂ、ｃを入力として各メモリのデータの不一致発生回数を出力する。このため、加算回路１１０５は、データ遮断回路１１０３ａ、ｂ、ｃ及び加算器１１０４ａ、ｂ、ｃを備える。ここで、ＥＥＰＲＯＭ１のデータの不一致発生回数を求める方法について説明する。他のメモリのデータについては、以下で説明する方法と同様の方法であるため、説明を省略する。
【００８３】
入力力信号である属性信号は、各組み合わせに含まれるデータを示す情報である。例えば、ＥＥＰＲＯＭ１とＥＥＰＲＯＭ２のデータの組み合わせの場合、属性信号は、（１，２）となる。また、ＥＥＰＲＯＭ２とＥＥＰＲＯＭ３のデータの組み合わせの場合、属性信号は、（２，３）となる。図１１に示すように、これらの属性信号と対応する組み合わせの不一致ビットの個数が各データ遮断回路１１０３ａ、ｂ、ｃに入力される。例えば、データ遮断回路１１０３ａは、各加算器ａに接続され、入力情報からＥＥＰＲＯＭ１の不一致発生回数を求めるのに必要となる入力情報を選択して、他の情報を破棄する。したがって、データ遮断回路１１０３ａは、属性信号が（２，３）の不一致ビットの個数１を破棄し、他の情報を加算器１１０４ａに入力する。加算器１１０４ａは、データ遮断回路１１０３ａから入力されたデータを加算してＥＥＰＲＯＭ１の不一致発生回数を出力する。ＥＥＰＲＯＭ１の不一致発生回数は、２＋１＝３となる。同様に、加算器１１０４ｂから出力されるＥＥＰＲＯＭ２の不一致発生回数は、２＋１＝３となる。同様に、加算器１１０４ｃから出力されるＥＥＰＲＯＭ３の不一致発生回数は、１＋１＝２となる。
【００８４】
図３のフローチャートの説明に戻る。加算回路１１０５の結果から、データ推定部１３９２は、ＥＥＰＲＯＭ３の不一致発生回数が２回で最も少ないと特定する。この結果を演算判定部１３９０に保存して、Ｓ３２０へ移行する。
【００８５】
ステップＳ３２０において、データ推定部１３９２は、不一致発生回数が最も少ないメモリのデータ保存値を復帰候補データθとする。これは、図４に示すように書き込みタイミングをずらしているため、不一致発生回数が最も少ないメモリのデータを、ノイズの影響を受けていないデータと推定している。具体的に、データ推定部１３９２は、図１２に示すように、ＥＥＰＲＯＭ３のデータを復帰候補データθと特定する。図１２は、本実施形態に係る復帰候補データθの特定方法を示す図である。
【００８６】
予測データγと復帰候補データθが特定されると、ステップＳ３２１において、判定部１３９１は、図１３に示すように、予測データγと復帰候補データθとが一致するか否かを判定する。図１３は、本実施形態に係る正常なデータを推定する際の比較処理を示す図である。ここで、判定部１３９１は、第２判定手段として機能する。２つのデータが一致する場合、判定部１３９１は、処理をＳ３２２に遷移させる。一方、２つのデータが一致しない場合、判定部１３９１は、処理をＳ３２３に遷移させる。
【００８７】
ステップＳ３２２において、データ推定部１３９２は、復帰候補データθを正常なデータとして推定し、レジスタの判定結果フラグに予測データによる自動復帰発生をセットし、処理を終了させる。ここで、修復部１３９３は、復帰候補データθの値を用いて、重要情報バックアップ部１０５への書き込み要求を発生させる。これにより、シリアルＥＥＰＲＯＭ１２７０、シリアルＥＥＰＲＯＭ１２８０及びシリアルＥＥＰＲＯＭ１２９０のデータ保存値を比較した結果、最初は一致しなかったが、最も確からしい値へと自動的に修復することができる。
【００８８】
一方、ステップＳ３２３において、データ推定部１３９２は、レジスタの判定結果フラグに自動復帰不能エラー発生をセットし、処理を終了する。これにより、自動復帰できなかった場合のエラー処理が実行される。エラー処理とは、例えば、現在の動作を停止し、エラー内容を操作者に通知する処理を示す。
【００８９】
なお本エラーが発生した場合は、コントローラはエラー発生を操作部に表示して、以後重要情報バックアップ部を使用する動作は制限される。（Ｓ１２４）
図３に示す読み込み制御が終了すると、ＡＳＩＣシリアルメモリコントローラ１３２０がＣＰＵ１１００へ割り込みを発生させで判定結果フラグの内容を伝達するか、又はＣＰＵ１１００がポーリングして判定結果フラグを参照する。その後、ＣＰＵ１１００は、判定結果フラグとデータ保存値を読み取って、機器の動作として適切な処理を行う。
【００９０】
以上説明したように、本実施形態に係る情報処理装置は、同一の情報を複数のメモリに書き込む際に、少なくとも１つのメモリに書き込まれるデータが書き込み中のノイズの影響を受けないように、各書き込み開始タイミングをずらす。一方、本情報処理装置は、複数のメモリから当該データを読み込んだ際に、各データを比較して、正常なデータを推定する。具体的に、情報処理装置は、全てのデータが一致した場合は、何れのデータもノイズの影響を受けていないと判断する。また、情報処理装置は、データを比較した少なくとも１つの組み合わせでデータが不一致であった場合、他の一致した組み合わせのデータの何れか一方を正常なデータとして推定する。また、情報処理装置は、全ての組み合わせでデータが一致しない場合、正常なデータと思われる予測データを生成し、比較の結果、最も不一致発生回数の少ない復帰候補データと、当該予測データを比較し、一致すれば復帰候補データを正常なデータとして推定する。
【００９１】
このように、本情報処理装置は、別々のタイミングで複数のメモリに書き込みを行う従来と比較して、高速に書き込み制御を行うことができる。さらに、本情報処理装置は、開始タイミングを所定時間ずつずらしているため、全てのデータがノイズの影響を受ける可能性を低減させている。これは、本実施形態が適用する環境が１回のアクセルサイクルで、ノイズの発生が周期的であったとしても複数回入る可能性がほとんど無いため有効な手法となる。また、１回のアクセスサイクルで複数回のノイズが発生する場合は、メモリの数を増やす等の対策により、本発明を有効に適用することができ、書き込まれた情報の信頼性を向上することができる。また、本情報処理装置は、メモリとしてシリアルＥＥＰＲＯＭを採用することができる。これにより、本情報処理装置は、データの信頼性を確保しつつ、メモリアクセス時間及びコストの増大を抑制することができる。なお、本情報処理装置は、ＡＳＩＣがシリアルＩＦメモリへのアクセスを行うため、ソフトが早期に開放され、ソフトパフォーマンスの低下抑制するという効果がある。
【００９２】
なお、本発明は、上述の実施形態に限らず様々な変形が可能である。例えば、本情報処理装置は、全ての組み合わせのうち一部の組み合わせのみが不一致であると判定された場合は簡易的なデータ推定方法を採用し、組み合わせの全てが不一致である場合は詳細なデータ推定方法を採用する。これにより、本情報処理装置は、正常なデータの推定に要する処理時間を効率化することができる。
【００９３】
また、本情報処理装置は、書き込むデータがＮビットである場合に、メモリに対してＮ／２＋１ビット分の書き込みに要する時間ずつずらして書き込むを開始させてもよい。これにより、本情報処理装置は、一度に３つ以上のメモリに対して書き込み処理が行われないように制御することができる。このように、本情報処理装置は、書き込み中の１回のノイズが３つ以上のメモリに影響を与えないようにすることで、ノイズが混入した際に容易に正常なデータを推定することができる。
【図面の簡単な説明】
【００９４】
【図１Ａ】本実施形態に係るＭＦＰ１０の構成例を示す図である。
【図１Ｂ】本実施形態に係る演算判定部１３９０の詳細な制御ブロックを示す図である。
【図２】本実施形態に係る書き込み制御の処理手順を示す図である。
【図３】本実施形態に係る読み込み制御の処理手順を示す図である。
【図４】本実施形態に係る各シリアルＥＥＰＲＯＭへの書き込みタイミングを示すタイミングチャートである。
【図５】本実施形態に係る演算判定部１３９０において２つのデータを比較する方法を説明する図である。
【図６】シリアルＥＥＰＲＯＭ１２７０とシリアルＥＥＰＲＯＭ１２９０とのデータの比較結果を示す図である。
【図７】シリアルＥＥＰＲＯＭ１２８０とシリアルＥＥＰＲＯＭ１２９０とのデータの比較結果を示す図である。
【図８】本実施形態に係る有効上位ビットのデータを抽出する方法を示す図である。
【図９】本実施形態に係る有効下位ビットのデータを抽出する方法を示す図である。
【図１０】本実施形態に係る予測データγを生成する方法を示す図である。
【図１１】本実施形態に係る不一致発生回数を算出する加算回路１１０５を示す図である。
【図１２】本実施形態に係る復帰候補データθの特定方法を示す図である。
【図１３】本実施形態に係る正常なデータを推定する際の比較処理を示す図である。
【図１４】情報処理装置１４００の構成を示す図である。
【図１５】情報処理装置１４００におけるメモリへのライトタイミングを示す図である。
【図１６】情報処理装置１４００におけるメモリからのリードタイミングを示す図である。
【図１７】情報処理装置１７００の構成を示す図である。
【図１８】情報処理装置１７００におけるメモリへのライトタイミングを示す図である。
【図１９】情報処理装置１７００におけるメモリからのリードタイミングを示す図である。
【符号の説明】
【００９５】
１０５：重要情報バックアップ部
１１００：ＣＰＵ
１１９０：ＡＳＩＣバスコントローラ
１２００：ＡＳＩＣＤＲＡＭコントローラ
１２７０：シリアルＥＥＰＲＯＭ１
１２８０：シリアルＥＥＰＲＯＭ２
１２９０：シリアルＥＥＰＲＯＭＮ
１３１０：ＳＯＣ
１３２０：ＡＳＩＣシリアルメモリコントローラ
１３３０：データ保存部１
１３４０：データ保存部２
１３５０：データ保存部Ｎ
１３６０：ＩＦ１
１３７０：ＩＦ２
１３８０：ＩＦＮ
１３９０：演算判定部
１３９１：判定部
１３９２：データ推定部
１３９３：修復部
１３９４：カウンタ
１３９５：有効上位ビット抽出部
１３９６：有効下位ビット抽出部
１３９７：結合部
１３９８：比較部
【図１Ａ】
0005137550.tif 000002
【図１Ｂ】
0005137550.tif 000003
【図２】
0005137550.tif 000004
【図３】
0005137550.tif 000005
【図４】
0005137550.tif 000006
【図５】
0005137550.tif 000007
【図６】
0005137550.tif 000008
【図７】
0005137550.tif 000009
【図８】
0005137550.tif 000010
【図９】
0005137550.tif 000011
【図１０】
0005137550.tif 000012
【図１１】
0005137550.tif 000013
【図１２】
0005137550.tif 000014
【図１３】
0005137550.tif 000015
【図１４】
0005137550.tif 000016
【図１５】
0005137550.tif 000017
【図１６】
0005137550.tif 000018
【図１７】
0005137550.tif 000019
【図１８】
0005137550.tif 000020
【図１９】
0005137550.tif 000021