(57)【要約】【課題】ＣＰＵの処理に影響を及ぼすことなく、主記憶装置の利用可能なメモリ空間を減少させることなく、ＣＰＵが動作中でない場合もソフトエラーの検知が可能な集積回路、画像処理装置、方法およびプログラムを提供すること。【解決手段】本発明の集積回路は、当該集積回路に実行させる処理を規定した構成情報が保存される第１の記憶手段と、集積回路の動作時に構成情報が展開される第２の記憶手段とを備えており、第１の記憶手段に保存されている構成情報と、第２の記憶手段に展開されている構成情報とを比較してエラーを検知する。【選択図】図１
2014174812.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な集積回路であって、
前記集積回路に実行させる処理を規定した構成情報が保存される第１の記憶手段と、
前記集積回路の動作時に前記構成情報が展開される第２の記憶手段と、
前記第１の記憶手段に保存されている構成情報と、前記第２の記憶手段に展開されている構成情報とを比較してエラーを検知するエラー検知手段と、
を備える、集積回路。
【請求項２】
前記エラー検知手段は、省エネモードへの移行時または通常動作モードへの移行時にエラーを検知する、請求項１に記載の集積回路。
【請求項３】
前記集積回路は、ハッシュ関数を用いて、前記第２の記憶手段に展開されている構成情報をハッシュ化するハッシュ化手段をさらに備え、
前記第１の記憶手段には、前記ハッシュ関数を用いてハッシュ化された構成情報が保存され、
前記エラー検知手段は、前記第１の記憶手段に保存されているハッシュ化された構成情報と、前記ハッシュ化手段がハッシュ化した前記第２の記憶手段の構成情報とを比較してエラーを検知する、請求項１または２に記載の集積回路。
【請求項４】
前記第２の記憶手段は、複数の記憶手段で構成され、前記集積回路が備える複数の回路に実装されており、
前記エラー検知手段は、動作中でない回路が備える前記第２の記憶手段に展開されている構成情報と、前記第１の記憶手段に保存されている構成情報とを比較してエラーを検知する、請求項１に記載の集積回路。
【請求項５】
前記第２の記憶手段は、複数の記憶手段で構成され、前記集積回路が備える複数の回路に実装され、
前記複数の回路は、前記集積回路が実行すべき処理毎に分類されており、
前記エラー検知手段は、前記分類された回路のうち動作中でない回路が備える第２の記憶手段に展開されている構成情報と、前記第１の記憶手段に保存されている構成情報とを比較してエラーを検知する、請求項１に記載の集積回路。
【請求項６】
前記集積回路は、エラー検知処理の実行回数を計数する計数手段をさらに備え、
前記エラー検知手段は、エラー検知処理の実行回数に応じて、前記分類された回路のエラーを検知する、請求項５に記載の集積回路。
【請求項７】
前記エラー検知手段は、エラーを検知した場合に、前記第２の記憶手段に保存すべき構成情報を前記第２の記憶手段に展開する、請求項１〜６のいずれか１項に記載の集積回路。
【請求項８】
請求項１〜７のいずれか１項に記載の集積回路を備える、画像処理装置。
【請求項９】
プログラム可能な集積回路が実行する方法であって、前記方法は、前記集積回路が、
前記集積回路に実行させる処理を規定した構成情報を第１の記憶手段から取得するステップと、
第２の記憶手段に展開されている構成情報を取得するステップと、
前記第１の記憶手段から取得した構成情報と、前記第２の記憶手段から取得した構成情報とを比較してエラーを検知するステップと
を含む、方法。
【請求項１０】
請求項９に記載の方法を集積回路に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラーを検知する集積回路に関し、より詳細には、ＣＰＵに依らず内蔵メモリに展開されたソフトウェアのエラー（以下、単に「ソフトエラー」とする。）を検知する集積回路、画像処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来、製造後にユーザが自由にプログラム可能なＦＰＧＡ（Field Programmable Gate Array）等の集積回路が利用されている。ＦＰＧＡは、当該ＦＰＧＡが実行すべき処理を規定する構成情報を、ＦＰＧＡに内蔵されたＳＲＡＭに書き込むことにより、任意の論理機能を実装することができる。
【０００３】
特許文献１は、このようなＦＰＧＡに蓄えられた電荷量の変動によるソフトエラーを検知するエラー検知技術を開示する。特許文献１が開示する情報処理装置は、ＣＰＵと、主記憶装置と、ＦＰＧＡとを備えており、ＣＰＵがＦＰＧＡから属性情報を読み出し、主記憶装置から期待値を読み出し、これらの情報を比較してＦＰＧＡのソフトエラーを検知する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示する情報処理装置では、ＣＰＵがＦＰＧＡのソフトエラーの検知を行うため、当該検知処理によってＣＰＵが実行する他の処理に影響を及ぼしてしまうという問題があった。
【０００５】
また、特許文献１に開示する情報処理装置では、ソフトエラーの検知処理の実行時に、ＦＰＧＡの属性情報の期待値を主記憶装置に保持させておく必要があるため、主記憶装置の利用可能なメモリ空間が減少してしまうという問題もあった。
【０００６】
さらに、特許文献１に開示する情報処理装置では、ＣＰＵがソフトエラーの検知を行うため、ＣＰＵが動作中でない場合にＦＰＧＡのソフトエラーを検知することができないという問題もあった。
【０００７】
本発明は上記の課題を解決するものであり、ＣＰＵの処理に影響を及ぼすことなく、主記憶装置の利用可能なメモリ空間を減少させることなく、ＣＰＵが動作中でない場合もソフトエラーの検知が可能な集積回路、画像処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の集積回路は、当該集積回路に実行させる処理を規定した構成情報が保存される第１の記憶手段と、集積回路の動作時に構成情報が展開される第２の記憶手段とを備えており、第１の記憶手段に保存されている構成情報と、第２の記憶手段に展開されている構成情報とを比較してエラーを検知する。
【発明の効果】
【０００９】
本発明の集積回路は、上記手段を採用することにより、ＣＰＵの処理に影響を及ぼすことなく、主記憶装置の利用可能なメモリ空間を減少させることなく、ＣＰＵが動作中でない場合も集積回路のソフトエラーを検知することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係る集積回路のハードウェア構成を示す図。
【図２】本発明の集積回路が実行する処理の第１の実施形態を示す図。
【図３】本発明の第２の実施形態に係る集積回路のハードウェア構成を示す図。
【図４】本発明の集積回路が実行する処理の第２の実施形態を示す図。
【図５】本発明の第３の実施形態に係る集積回路のハードウェア構成を示す図。
【図６】本発明の集積回路が実行する処理の第３の実施形態を示す図。
【図７】本発明の第４の実施形態に係る集積回路のハードウェア構成を示す図。
【図８】本発明の集積回路が実行する処理の第４の実施形態を示す図。
【図９】本発明の第５の実施形態に係る集積回路のハードウェア構成を示す図。
【図１０】本発明の集積回路が実行する処理の第５の実施形態を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【００１２】
図１は、本発明の第１の実施形態に係る集積回路のハードウェア構成を示す図である。コントロールボード１００は、ＭＦＰ（Multiple Function Printer）等の画像処理装置の動作を制御する集積回路が実装される基板である。コントロールボード１００は、ＣＰＵ（図示せず）と、主記憶装置（図示せず）と、２次記憶装置（図示せず）と、集積回路１０１とを備える。
【００１３】
ＣＰＵは、２次記憶装置から種々のプログラムを読み出し、当該プログラムを主記憶装置に展開して実行することにより、印刷処理やスキャニング、ＦＡＸ送信等の種々の処理を実行する。
【００１４】
集積回路１０１は、ＦＰＧＡ等のプログラム可能な半導体集積回路であり、データ形式変換処理、色空間変換処理、解像度変換処理、フィルタリング処理等の様々な処理を実行するＡＳＩＣ(Application Specific Integrated Circuit)として機能する。集積回路１０１は、不揮発メモリ１０２と、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄと、エラー検知部１０４とを備える。
【００１５】
不揮発メモリ１０２は、集積回路１０１が実行すべき処理を定義する構成情報（以下、「期待値」とする。）が保存される記憶手段である。本実施形態では、不揮発メモリ１０２として、電荷量の変動によるソフトエラーが発生しないＥＥＰＲＯＭ等の不揮発メモリを採用する。
【００１６】
ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄは、集積回路１０１の動作時に不揮発メモリ１０２に保存されている期待値が展開される記憶手段である。集積回路１０１は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに期待値を書き込むことにより、当該構成情報が規定する処理を実行するＡＳＩＣとして機能する。本実施形態では、期待値が展開される記憶手段としてＳＲＡＭを使用するが、他の実施形態では、種々のＲＡＭを使用することができる。
【００１７】
エラー検知部１０４は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄのソフトエラーを検知する手段であり、半導体装置によって実現することができる。エラー検知部１０４は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに保持されている構成情報と、不揮発メモリ１０２に保存されている期待値とを比較し、これらの情報が相違していればソフトエラーが発生していると判断する。ソフトエラーが発生すると、エラー検知部１０４は、不揮発メモリ１０２に保存されている期待値を、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに書き込むことにより、ソフトエラーを解消する。
【００１８】
集積回路１０１には、図１に示すように、省エネモード時に電力の供給を停止する電源１０５が接続されている。集積回路１０１は、電源１０５からの電力供給の有無を検知することにより、画像処理装置の通常動作モードから省エネモードへの移行や省エネモードから通常動作モードへの移行を検知することができる。
【００１９】
図２は、本発明の集積回路が実行する処理の第１の実施形態を示す図である。以下、図２を参照して、集積回路１０１が実行するエラー検知処理の第１の実施形態について説明する。
【００２０】
図２の処理は、ステップＳ２００から開始し、ステップＳ２０１では、集積回路１０１のエラー検知部１０４が、電源１０５からの電力供給の有無を判断することにより、画像処理装置が省エネモードに移行したか否か判断する。省エネモードに移行していないと判断した場合には（ｎｏ）、ステップＳ２０１の処理が反復する。一方、省エネモードに移行したと判断した場合には（ｙｅｓ）、ステップＳ２０２に処理が分岐する。
【００２１】
ステップＳ２０２では、エラー検知部１０４は、不揮発メモリ１０２から期待値を読み出す。ステップＳ２０３では、エラー検知部１０４は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに展開されている構成情報を読み出す。ステップＳ２０４では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ２０６で処理が終了する。一方、構成情報と期待値が一致しない場合、すなわち、ソフトエラーが発生している場合には（ｎｏ）、ステップＳ２０５に処理が分岐する。
【００２２】
ステップＳ２０５では、エラー検知部１０４は、不揮発メモリ１０２から取得した期待値をＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに保存してソフトエラーを解消し、ステップＳ２０６で処理が終了する。
【００２３】
本実施形態では、通常動作モードから省エネモードへの移行時に上記処理を実行するが、他の実施形態では、省エネモードから通常動作モードへの移行時、すなわち、コントロールボードに実装されたデイバスに電力が供給され、安定して動作するまでの時間内に、上記処理を実行してもよい。これにより、省エネモード時の電力消費量を低減することができる。
【００２４】
図３は、本発明の第２の実施形態に係る集積回路のハードウェア構成を示す図である。以下、図３および４を参照し、集積回路１０１の第２の実施形態について、第１の実施形態との相違点を中心に説明する。
【００２５】
集積回路１０１は、不揮発メモリ１０２と、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄと、エラー検知部１０４と、ハッシュ化部１０６とを備える。
【００２６】
ハッシュ化部１０６は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄから取得した構成情報をハッシュ化する手段であり、半導体装置によって実現することができる。ハッシュ化部１０６は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに保持されている構成情報を任意のハッシュ関数でハッシュ化してハッシュ値を生成する。不揮発メモリ１０２には、ハッシュ化部１０６が使用するハッシュ関数によってハッシュ化された期待値のハッシュ値が保存される。
【００２７】
図４は、本発明の集積回路が実行する処理を示す図である。以下、図４を参照して、集積回路１０１が実行するエラー検知処理の第２の実施形態について説明する。なお、本実施形態では、通常動作モードから省エネモードへの移行時に上記処理を実行するが、他の実施形態では、省エネモードから通常動作モードへの移行時に上記処理を実行してもよい。
【００２８】
図４の処理は、ステップＳ４００から開始し、ステップＳ４０１では、集積回路１０１のエラー検知部１０４が、画像処理装置が省エネモードに移行したか否か判断する。省エネモードに移行していないと判断した場合には（ｎｏ）、ステップＳ４０１の処理が反復する。一方、省エネモードに移行したと判断した場合には（ｙｅｓ）、ステップＳ４０２に処理が分岐する。
【００２９】
ステップＳ４０２では、エラー検知部１０４は、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに展開された構成情報を読み出す。ステップＳ４０３では、ハッシュ化部１０６が、ＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄから読み出した構成情報をハッシュ化してハッシュ値を生成する。ステップＳ４０４では、エラー検知部１０４は、不揮発メモリ１０２から期待値のハッシュ値を読み出す。
【００３０】
ステップＳ４０５では、エラー検知部１０４は、これらのハッシュ値が一致するか否か判断する。ハッシュ値が一致する場合には（ｙｅｓ）、ステップＳ４０８で処理が終了する。一方、ハッシュ値が一致しない場合、すなわち、ソフトエラーが発生している場合には（ｎｏ）、ステップＳ４０６に処理が分岐する。
【００３１】
ステップＳ４０６では、エラー検知部１０４は、ハッシュ化部１０６が使用するハッシュ関数の逆関数によって期待値のハッシュ値を逆ハッシュ化し、期待値を生成する。ステップＳ４０７では、エラー検知部１０４は、当該期待値をＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに保存してソフトエラーを解消し、ステップＳ４０８で処理が終了する。
【００３２】
上述した第２の実施形態では、データ量の少ない構成情報のハッシュ値および期待値のハッシュ値を使用してソフトエラーの発生の有無を判断するため、ソフトエラーの検知や解消に要する時間を短縮することができると共に、不揮発メモリ１０２の消費量を低減することができる。
【００３３】
図５は、本発明の第３の実施形態に係る集積回路のハードウェア構成を示す図である。以下、図５および６を参照して、集積回路１０１の第３の実施形態について、第１の実施形態との相違点を中心に説明する。
【００３４】
集積回路１０１は、不揮発メモリ１０２と、エラー検知部１０４と、セレクタ１０７と、回路１５０，１５２とを備える。回路１５０には、ＳＲＡＭ１０３ａ，１０３ｂが実装され、回路１５２には、ＳＲＡＭ１０３ｃ，１０３ｄが実装される。図５には２つの回路が表されているが、集積回路１０１は、ＳＲＡＭを備えた２以上の回路を備えることができる。
【００３５】
セレクタ１０７は、エラー検知部１０４の指示により、エラー検知部１０４に対し、回路１５０または回路１５２のＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに展開されている構成情報を選択的に出力する。不揮発メモリ１０２には、回路１５０，１５２の期待値がそれぞれ保存されている。
【００３６】
図６は、本発明の集積回路が実行する処理の第３の実施形態を示す図である。以下、図６を参照して、集積回路１０１が実行するエラー検知処理の第３の実施形態について説明する。
【００３７】
図６の処理は、ステップＳ６００から開始し、ステップＳ６０１では、集積回路１０１のエラー検知部１０４が、第１の回路である回路１５０が動作中であるか否か判断する。本実施形態では、回路１５０，１５２が動作中であるか否か示す動作フラグをＳＲＡＭ１０３ａ，１０３ｂ，１０３ｃ，１０３ｄに設定し、エラー検知部１０４が、動作フラグを参照することにより、回路１５０，１５２が動作中であるか否か判断することができる。
【００３８】
第１の回路が動作中の場合には（ｙｅｓ）、ステップＳ６０２に処理が分岐する。ステップＳ６０２では、エラー検知部１０４は、第２の回路である回路１５２が動作中であるか否か判断する。第２の回路が動作中の場合には（ｙｅｓ）、ステップＳ６０１に処理が戻る。一方、第２の回路が動作中でない場合には（ｎｏ）、ステップＳ６０３に処理が分岐する。
【００３９】
ステップＳ６０３では、エラー検知部１０４は、不揮発メモリ１０２から第２の回路の期待値を読み出す。ステップＳ６０４では、エラー検知部１０４は、セレクタ１０７を介して、第２の回路のＳＲＡＭ１０３ｃ，１０３ｄから構成情報を読み出す。ステップＳ６０５では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００４０】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ６１２で処理が終了する。一方、構成情報と期待値が一致しない場合、すなわち、第２の回路のＳＲＡＭにソフトエラーが発生している場合には（ｎｏ）、ステップＳ６０６に処理が分岐する。ステップＳ６０６では、エラー検知部１０４は、不揮発メモリ１０２から取得した第２の回路の期待値をＳＲＡＭ１０３ｃ，１０３ｄに保存することにより、第２の回路のソフトエラーを解消し、ステップＳ６１２で処理が終了する。
【００４１】
ステップＳ６０１で第１の回路が動作中ではないと判断した場合には（ｎｏ）、ステップＳ６０７に処理が分岐する。ステップＳ６０７では、エラー検知部１０４は、第２の回路である回路１５２が動作中であるか否か判断する。第２の回路が動作中でない場合には（ｎｏ）、ステップＳ６０１に処理が戻る。一方、第２の回路が動作中の場合には（ｙｅｓ）、ステップＳ６０８に処理が分岐する。
【００４２】
ステップＳ６０８では、エラー検知部１０４は、不揮発メモリ１０２から第１の回路の期待値を読み出す。ステップＳ６０９では、エラー検知部１０４は、セレクタ１０７を介して、第１の回路のＳＲＡＭ１０３ａ，１０３ｂから構成情報を読み出す。ステップＳ６１０では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００４３】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ６１２で処理が終了する。一方、構成情報と期待値が一致しない場合、すなわち、第１の回路のＳＲＡＭにソフトエラーが発生している場合には（ｎｏ）、ステップＳ６１１に処理が分岐する。ステップＳ６１１では、エラー検知部１０４は、不揮発メモリ１０２から取得した第１の回路の期待値をＳＲＡＭ１０３ａ，１０３ｂに保存することにより、第１の回路のソフトエラーを解消し、ステップＳ６１２で処理が終了する。
【００４４】
上述した第３の実施形態では、動作中でない回路に対してソフトエラーの検知を行うため、画像処理装置が動作中の場合でも、部分的にソフトエラーの検知を行うことができる。また、ソフトエラーの検知対象が限定されるため、ソフトエラーの検知や解消に要する時間を短縮することができる。
【００４５】
図７は、本発明の第４の実施形態に係る集積回路のハードウェア構成を示す図である。以下、図７および８を参照し、集積回路１０１の第４の実施形態について、第３の実施形態との相違点を中心に説明する。
【００４６】
集積回路１０１は、不揮発メモリ１０２と、エラー検知部１０４と、セレクタ１０７と、回路１７１，１７２，１７４，１７５とを備える。回路１７１，１７２，１７４，１７５は、集積回路１０１が実行すべき処理毎に分類される。本実施形態では、回路１７１，１７２，１７４，１７５は、第１群の回路１７０と、第２群の回路１７３とに分類される。
【００４７】
第１群の回路１７０は、回路１７１および回路１７２で構成される。回路１７１にはＳＲＡＭ１０３ａ，１０３ｂが実装され、回路１７２にはＳＲＡＭ１０３ｅ，１０３ｆが実装される。第２群の回路１７３は、回路１７４および回路１７５で構成される。回路１７４にはＳＲＡＭ１０３ｃ，１０３ｄが実装され、回路１７５にはＳＲＡＭ１０３ｇ，１０３ｈが実装される。
【００４８】
セレクタ１０７は、エラー検知部１０４の指示により、エラー検知部１０４に対し、第１群の回路１７０または第２群の回路１７３のＳＲＡＭに展開されている構成情報を選択的に出力する。不揮発メモリ１０２には、第１群の回路１７０のＳＲＡＭ１０３ａ，１０３ｂ，１０３ｅ，１０３ｆの期待値と、第２群の回路１７３のＳＲＡＭ１０３ｃ，１０３ｄ，１０３ｇ，１０３ｈの期待値が保存されている。
【００４９】
図７に示す実施形態では、８つのＳＲＡＭが２つに分類されているが、他の実施形態では、任意の数のＳＲＡＭを任意の数に分類することができる。
【００５０】
図８は、本発明の集積回路が実行する処理の第４の実施形態を示す図である。以下、図８を参照して、集積回路１０１が実行するエラー検知処理の第４の実施形態について説明する。
【００５１】
図８の処理は、ステップＳ８００から開始し、ステップＳ８０１では、集積回路１０１のエラー検知部１０４が、第１群の回路１７０が動作中であるか否か判断する。第１群の回路１７０が動作中の場合には（ｙｅｓ）、ステップＳ８０２に処理が分岐する。
【００５２】
ステップＳ８０２では、エラー検知部１０４は、不揮発メモリ１０２から第２群の回路１７３の期待値を読み出す。ステップＳ８０３では、エラー検知部１０４は、セレクタ１０７を介して、第２群の回路１７３のＳＲＡＭ１０３ｃ，１０３ｄ，１０３ｇ，１０３ｈから構成情報を読み出す。ステップＳ８０４では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００５３】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ８１１で処理が終了する。一方、構成情報と期待値が一致しない場合、すなわち、第２群の回路１７３にソフトエラーが発生している場合には（ｎｏ）、ステップＳ８０５に処理が分岐する。ステップＳ８０５では、エラー検知部１０４は、不揮発メモリ１０２から取得した第２群の回路の期待値をＳＲＡＭ１０３ｃ，１０３ｄ，１０３ｇ，１０３ｈに保存することにより、第２群の回路１７３のソフトエラーを解消し、ステップＳ８１１で処理が終了する。
【００５４】
ステップＳ８０１で第１群の回路１７０が動作中ではないと判断した場合には（ｎｏ）、ステップＳ８０６に処理が分岐する。ステップＳ８０６では、エラー検知部１０４は、第２群の回路１７３が動作中であるか否か判断する。第２群の回路１７３が動作中でない場合には（ｎｏ）、ステップＳ８０１に処理が戻る。一方、第２群の回路１７３が動作中の場合には（ｙｅｓ）、ステップＳ８０７に処理が分岐する。
【００５５】
ステップＳ８０７では、エラー検知部１０４は、不揮発メモリ１０２から第１群の回路１７０の期待値を読み出す。ステップＳ８０８では、エラー検知部１０４は、セレクタ１０７を介して、第１群の回路１７０のＳＲＡＭ１０３ａ，１０３ｂ，１０３ｅ，１０３ｆから構成情報を読み出す。ステップＳ８０９では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００５６】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ８１１で処理が終了する。一方、構成情報と期待値が一致しない場合、すなわち、第１群の回路１７０にソフトエラーが発生している場合には（ｎｏ）、ステップＳ８１０に処理が分岐する。ステップＳ８１０では、エラー検知部１０４は、不揮発メモリ１０２から取得した第１群の回路１７０の期待値をＳＲＡＭ１０３ａ，１０３ｂ，１０３ｅ，１０３ｆに保存することにより、第１群の回路１７０のソフトエラーを解消し、ステップＳ８１１で処理が終了する。
【００５７】
上述した第４の実施形態では、集積回路が実行すべき処理毎に回路を分類し、分類された回路毎にソフトエラーの検知を行うことができる。例えば、第１群の回路に印刷処理に関連する処理を割り当て、第２群の回路にＦＡＸ送信処理に関連する処理を割り当てた場合、印刷処理の実行中は、ＦＡＸ送信処理に関連する処理は実行されないため、第２群の回路に対するソフトエラーの検知処理を実行することができる。すなわち、本実施形態では、動作中ではない回路を容易に特定することができるため、ソフトエラー検知を一層効率的に行うことができる。
【００５８】
図９は、本発明の第５の実施形態に係る集積回路のハードウェア構成を示す図である。以下、図９および１０を参照し、集積回路１０１の第５の実施形態について、第４の実施形態との相違点を中心に説明する。
【００５９】
集積回路１０１は、不揮発メモリ１０２と、エラー検知部１０４と、セレクタ１０７と、回路１７１，１７２，１７４，１７５と、カウンタ１８０とを備える。カウンタ１８０は、エラー検知処理の実行回数を計数する計数手段であり、半導体装置によって実現することができる。
【００６０】
図１０は、本発明の集積回路が実行する処理の第５の実施形態を示す図である。以下、図１０を参照して、集積回路１０１が実行するエラー検知処理の第５の実施形態について説明する。
【００６１】
図１０の処理は、ステップＳ１０００から開始し、ステップＳ１００１では、集積回路１０１のエラー検知部１０４が、カウンタ１８０を参照し、エラー検知処理の実行回数がｎ（ｎ：任意の自然数）の整数倍の値であるか否か判断する。エラー検知処理の実行回数がｎの整数倍の値である場合には（ｙｅｓ）、ステップＳ１００２に処理が分岐する。
【００６２】
ステップＳ１００２では、エラー検知部１０４は、第１群の回路１７０が動作中であるか否か判断する。第１群の回路１７０が動作中でない場合には（ｎｏ）、ステップＳ１００１に処理が戻る。一方、第１群の回路１７０が動作中の場合には（ｙｅｓ）、ステップＳ１００３に処理が分岐する。
【００６３】
ステップＳ１００３では、エラー検知部１０４は、不揮発メモリ１０２から第２群の回路１７３の期待値を読み出す。ステップＳ１００４では、エラー検知部１０４は、セレクタ１０７を介して、第２群の回路１７３のＳＲＡＭ１０３ｃ，１０３ｄ，１０３ｇ，１０３ｈから構成情報を読み出す。ステップＳ１００５では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００６４】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ１０１３に処理が分岐する。一方、構成情報と期待値が一致しない場合、すなわち、第２群の回路１７３にソフトエラーが発生している場合には（ｎｏ）、ステップＳ１００６に処理が分岐する。ステップＳ１００６では、エラー検知部１０４は、不揮発メモリ１０２から取得した第２群の回路の期待値をＳＲＡＭ１０３ｃ，１０３ｄ，１０３ｇ，１０３ｈに保存することにより、第２群の回路１７３のソフトエラーを解消する。
【００６５】
ステップＳ１００１でエラー検知処理の実行回数がｎの整数倍でないと判断した場合には（ｎｏ）、ステップＳ１００７に処理が分岐する。ステップＳ１００７では、エラー検知部１０４が、カウンタ１８０を参照し、エラー検知処理の実行回数がｍ（ｍ：任意の自然数）の整数倍の値であるか否か判断する。
【００６６】
エラー検知処理の実行回数がｍの整数倍の値でない場合には（ｎｏ）、ステップＳ１００１に処理が戻る。一方、エラー検知処理の実行回数がｍの整数倍の値である場合には（ｙｅｓ）、ステップＳ１００８に処理が分岐する。ステップＳ１００８では、エラー検知部１０４は、第２群の回路１７３が動作中であるか否か判断する。第２群の回路１７３が動作中でない場合には（ｎｏ）、ステップＳ１００１に処理が戻る。一方、第２群の回路１７３が動作中の場合には（ｙｅｓ）、ステップＳ１００９に処理が分岐する。
【００６７】
ステップＳ１００９では、エラー検知部１０４は、不揮発メモリ１０２から第１群の回路１７０の期待値を読み出す。ステップＳ１０１０では、エラー検知部１０４は、セレクタ１０７を介して、第１群の回路１７０のＳＲＡＭ１０３ａ，１０３ｂ，１０３ｅ，１０３ｆから構成情報を読み出す。ステップＳ１０１１では、エラー検知部１０４は、当該構成情報と期待値が一致するか否か判断する。
【００６８】
構成情報と期待値が一致する場合には（ｙｅｓ）、ステップＳ１０１３に処理が分岐する。一方、構成情報と期待値が一致しない場合、すなわち、第１群の回路１７０にソフトエラーが発生している場合には（ｎｏ）、ステップＳ１０１２に処理が分岐する。ステップＳ１０１２では、エラー検知部１０４は、不揮発メモリ１０２から取得した第１群の回路１７０の期待値をＳＲＡＭ１０３ａ，１０３ｂ，１０３ｅ，１０３ｆに保存することにより、第１群の回路１７０のソフトエラーを解消する。
【００６９】
ステップＳ１０１３では、エラー検知部１０４は、カウンタ１８０をインクリメントし、ステップＳ１０１４で処理が終了する。本実施形態では、カウンタ１８０の初期値は０である。
【００７０】
上述した第５の実施形態では、エラー検知処理の実行回数を計数し、当該実行回数が任意の回数（ｎの整数倍やｍの整数倍等）となった場合に、ソフトエラーが発生しているか判断する。例えば、ｍを１０とし、ｎを２０とした場合、第１群の回路１７０に対するソフトエラーの検知は１０回に１回実行され、第２群の回路１７３に対するソフトエラーの検知は２０回に１回実行される。これにより、ソフトエラーによる種々の影響等を考慮し、ソフトウェアエラーの重要度に応じて、各回路群に対するソフトエラーの検知頻度を変更することができ、ユーザビリティを向上させることができる。
【００７１】
例えば、画像処理機能を有する回路群にソフトエラーが生じた場合には、出力画像の品質が低下するため、ソフトエラーの検知頻度を高く設定して優先度を高めることにより、出力画像の品質を保つことができる。また、モータのトルク数が僅かに変動するようなソフトエラーの場合には、出力画像の品質が低下することがないため、ソフトエラーの検知頻度を低く設定して優先度を下げることができ、ソフトエラーの検知を効率化させることができる。
【００７２】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができる。いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７３】
１００…コントロールボード、１０１…集積回路、１０２…不揮発メモリ、１０３ａ，１０３ｂ，１０３ｃ，１０３ｄ…ＳＲＡＭ、１０４…エラー検知部、１０５…電源
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２００８−１５９６５号公報
【図１】
2014174812.tif 000003
【図２】
2014174812.tif 000004
【図３】
2014174812.tif 000005
【図４】
2014174812.tif 000006
【図５】
2014174812.tif 000007
【図６】
2014174812.tif 000008
【図７】
2014174812.tif 000009
【図８】
2014174812.tif 000010
【図９】
2014174812.tif 000011
【図１０】
2014174812.tif 000012