(57)【要約】【課題】  排他制御の対象となる回路モジュールをリセットすることなく、デッドロックを即座に解消することができるようにする。【解決手段】  回路モジュール１Ｃは、回路モジュール１Ａ，１Ｂからの要求信号を受け付け回路モジュール１Ａ，１Ｂの排他制御を行う。監視回路２は、回路モジュール１Ａ，１Ｂからの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂに基づいて、回路モジュール１Ｃがデッドロック状態か否かを判定し、デッドロック状態のときに状態遷移信号ｆｏｒｃｅ＿Ａ１を回路モジュール１Ｃへ直接供給して、回路モジュール１Ｃをデッドロック状態から強制的に状態遷移させる。【選択図】  図１
2011008720.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路モジュールと、
前記複数の回路モジュールからの要求信号を受け付け前記複数の回路モジュールの排他制御を行う調停回路と、
前記複数の回路モジュールからの要求信号に基づいて、前記調停回路がデッドロック状態か否かを判定し、デッドロック状態のときに状態遷移信号を前記調停回路へ供給して、前記調停回路を前記デッドロック状態から強制的に状態遷移させる監視回路と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記調停回路は、前記状態遷移信号を供給されると、前記排他制御の状態を所定の状態へ遷移させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記監視回路は、複数種類の状態遷移信号のうち、前記要求信号に応じた状態遷移信号を前記調停回路へ供給し、
前記調停回路は、前記状態遷移信号の種類に応じた状態へ、排他制御の状態を遷移させること、
を特徴とする請求項１記載の情報処理装置。
【請求項４】
前記調停回路は、前記状態遷移信号の供給を開始した後、前記要求信号に基づいて、前記調停回路がデッドロック状態ではないと判定すると、前記状態遷移信号の供給を停止することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記監視回路は、リコンフィギュアラブル回路であることを特徴とする請求項１から請求項４のいずれか１項記載の情報処理装置。
【請求項６】
請求項１から請求項５のうちのいずれか１項記載の情報処理装置を備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および画像形成装置に関するものである。
【背景技術】
【０００２】
図５は、従来の情報処理装置の一例を示す図である。図５に示す構成において、回路モジュール１０１Ａは、要求信号ｒｅｑ＿Ａを、調停回路としての回路モジュール１０１Ｃへ送信し、回路モジュール１０１Ｃから許可信号ｇｎｔ＿Ａを受信した後に、所定の処理を実行する。同様に、回路モジュール１０１Ｂは、要求信号ｒｅｑ＿Ｂを、調停回路としての回路モジュール１０１Ｃへ送信し、回路モジュール１０１Ｃから許可信号ｇｎｔ＿Ｂを受信した後に、回路モジュール１０１Ａと競合する所定の処理を実行する。例えば、回路モジュール１０１Ａと回路モジュール１０１Ｂが特定のバスやメモリといった同一のリソースを使用する場合、回路モジュール１０１Ａ，１０１Ｂがそのリソースについて競合するため、回路モジュール１０１Ｃは、回路モジュール１０１Ａ，１０１Ｂについて排他制御を行う。なお、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂは、要求発生時の値が１であり、それ以外の時の値が０である。許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂは、実行許可を与える時の値が１であり、それ以外の時の値が０である。
【０００３】
図６は、図５における回路モジュール１０１Ｃの状態遷移図である。
【０００４】
まず、リセットが発生すると、回路モジュール１０１Ｃは、その動作状態を開始状態１１１とし、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂの値を０にリセットする。その後、リセットが解除されると、回路モジュール１０１Ｃの動作状態は、開始状態１１１から初期状態１１２へ遷移する。初期状態１１２では、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂの値は、０とされる。
【０００５】
初期状態１１２において、回路モジュール１０１Ｃは、回路モジュール１０１Ａからの要求信号ｒｅｑ＿Ａの値が０から１になったことを検出すると、動作状態を初期状態１１２から状態１１３へ遷移させる。状態１１３では、回路モジュール１０１Ｃは、許可信号ｇｎｔ＿Ａの値を０から１にする。なお、許可信号ｇｎｔ＿Ｂの値は０のままとされる。
【０００６】
回路モジュール１０１Ａは、許可信号ｇｎｔ＿Ａの値が１となると、所定の処理を実行し、その処理が終了すると、要求信号ｒｅｑ＿Ａの値を１から０にする。状態１１３において、回路モジュール１０１Ｃは、要求信号ｒｅｑ＿Ａの値が０であることを検出すると、動作状態を状態１１３から初期状態１１２へ遷移させる。
【０００７】
同様に、初期状態１１２において、回路モジュール１０１Ｃは、回路モジュール１０１Ｂからの要求信号ｒｅｑ＿Ｂの値が０から１になったことを検出すると、動作状態を初期状態１１２から状態１１４へ遷移させる。状態１１４では、回路モジュール１０１Ｃは、許可信号ｇｎｔ＿Ｂの値を０から１にする。なお、許可信号ｇｎｔ＿Ａの値は０のままとされる。
【０００８】
回路モジュール１０１Ｂは、許可信号ｇｎｔ＿Ｂの値が１となると、所定の処理を実行し、その処理が終了すると、要求信号ｒｅｑ＿Ｂの値を１から０にする。状態１１４において、回路モジュール１０１Ｃは、要求信号ｒｅｑ＿Ｂの値が０であることを検出すると、動作状態を状態１１４から初期状態１１２へ遷移させる。
【０００９】
しかしながら、初期状態１１２において、要求信号ｒｅｑ＿Ａと要求信号ｒｅｑ＿Ｂの値がいずれも１となった場合、回路モジュール１０１Ｃの動作状態が状態１１３，１１４のいずれにも遷移せず、回路モジュール１０１Ａ，１０１Ｂのいずれにも実行権が与えられず、デッドロックに陥ってしまう。
【００１０】
そのようなデッドロックを解消するための技術が提案されている（例えば特許文献１参照）。図７は、そのような従来の情報処理装置の他の例を示す図である。
【００１１】
図７に示す構成において、リコンフィギュアラブル回路１２１は、回路モジュール１０１Ａ，１０１Ｂ，１０１Ｃからの出力される信号に基づいて、デッドロックが発生していると判断すると、ＣＰＵ１２２に割り込みを行う。ＣＰＵ１２２は、割り込みが発生すると、デッドロックを解消するために、回路モジュール１０１Ａ，１０１Ｂをリセットする。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−３０９３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、図７に示す構成では、デッドロックが発生してからＣＰＵ１２２に割り込みを行い、ＣＰＵ１２２がその割り込みに応じてプログラム制御により回路モジュール１０１Ａ，１０１Ｂをリセットするため、デッドロックが解消されるまでに比較的長い時間を要する。このため、リアルタイム性が要求される機器にはこのような構成を採用することは難しい。また、デッドロック解消時に回路モジュール１０１Ａ，１０１Ｂがリセットされてしまうため、デッドロック直前の状態がクリアされてしまう。
【００１４】
本発明は、上記の問題に鑑みてなされたものであり、排他制御の対象となる回路モジュールをリセットすることなく、デッドロックを即座に解消することができる情報処理装置および画像形成装置を得ることを目的とする。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明では以下のようにした。
【００１６】
本発明に係る情報処理装置は、複数の回路モジュールと、複数の回路モジュールからの要求信号を受け付け複数の回路モジュールの排他制御を行う調停回路と、複数の回路モジュールからの要求信号に基づいて、調停回路がデッドロック状態か否かを判定し、デッドロック状態のときに状態遷移信号を調停回路へ供給して、調停回路をデッドロック状態から強制的に状態遷移させる監視回路とを備える。
【００１７】
これにより、プログラム制御を介さずに監視回路が直接、強制的に調停回路を状態遷移させるため、排他制御の対象となる回路モジュールをリセットすることなく、デッドロックを即座に解消することができる。
【００１８】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。この場合、調停回路は、状態遷移信号を供給されると、排他制御の状態を所定の状態へ遷移させる。
【００１９】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、監視回路は、複数種類の状態遷移信号のうち、要求信号に応じた状態遷移信号を調停回路へ供給し、調停回路は、状態遷移信号の種類に応じた状態へ、排他制御の状態を遷移させる。
【００２０】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、調停回路は、状態遷移信号の供給を開始した後、要求信号に基づいて、調停回路がデッドロック状態ではないと判定すると、状態遷移信号の供給を停止する。
【００２１】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、監視回路は、リコンフィギュアラブル回路である。
【００２２】
これにより、装置設計時には未知であった要因によりデッドロック状態が発生する場合でも、その要因に応じて、監視回路の論理を再構成しなおすことで、未知であった要因によるデッドロックも解消することができる。
【００２３】
本発明に係る画像形成装置は、上記のいずれかの情報処理装置を備える。
【発明の効果】
【００２４】
本発明によれば、排他制御の対象となる回路モジュールをリセットすることなく、デッドロックを即座に解消することができる情報処理装置および画像形成装置を得ることができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、図１における監視回路による状態遷移信号ｆｏｒｃｅ＿Ａ１についての状態遷移の一例を示す図である。
【図３】図３は、図１における回路モジュール１Ｃの構成を示すブロック図である。
【図４】図４は、図１における回路モジュール１Ｃの状態遷移図である。
【図５】図５は、従来の情報処理装置の一例を示す図である。
【図６】図６は、図５における回路モジュール１０１Ｃの状態遷移図である。
【図７】図７は、従来の情報処理装置の他の例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図に基づいて本発明の実施の形態を説明する。
【００２７】
図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【００２８】
例えば、この情報処理装置は、印刷装置、複写機、複合機などといった画像形成装置に内蔵することができる。その場合、画像形成装置内のリソース（バス、メモリ、記憶装置など）についての排他制御をこの情報処理装置により行うことができる。
【００２９】
図１において、回路モジュール１Ａは、要求信号ｒｅｑ＿Ａを、調停回路としての回路モジュール１Ｃへ送信し、回路モジュール１Ｃから許可信号ｇｎｔ＿Ａを受信した後に、所定の処理を実行する。同様に、回路モジュール１Ｂは、要求信号ｒｅｑ＿Ｂを、調停回路としての回路モジュール１Ｃへ送信し、回路モジュール１Ｃから許可信号ｇｎｔ＿Ｂを受信した後に、回路モジュール１Ａと競合する所定の処理を実行する。例えば、回路モジュール１Ａと回路モジュール１Ｂが特定のバス、メモリなどといった同一のリソースを使用する場合、回路モジュール１Ａ，１Ｂがそのリソースについて競合するため、回路モジュール１Ｃは、回路モジュール１Ａ，１Ｂについて排他制御を行う。なお、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂは、要求発生時の値が１であり、それ以外の時の値が０である。許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂは、実行許可を与える時の値が１であり、それ以外の時の値が０である。
【００３０】
監視回路２は、デッドロック検出部１１と状態遷移信号生成部１２とを有する専用ハードウェア回路である。デッドロック検出部１１は、排他制御の対象となる回路モジュール１Ａ，１Ｂからの要求信号に基づいて、回路モジュール１Ｃがデッドロック状態か否かを判定し、状態遷移信号生成部１２は、デッドロック状態のときに状態遷移信号を回路モジュール１Ｃへ供給して、回路モジュール１Ｃをデッドロック状態から強制的に状態遷移させる。監視回路２は、回路モジュール１Ｃと信号線で直接接続されている。この実施の形態では、監視回路２は、ＦＰＧＡ（Field Programmable Gate Array）などのリコンフィギュアラブル回路により構成されている。リコンフィギュアラブル回路としては、例えばＩＰ−Ｆｌｅｘ社の「ＤＡＰＤＮＡ」がある。なお、監視回路２は、その一部または全部をＡＳＩＣ（Application Specific Integrated Circuit）で構成されていてもよい。
【００３１】
監視回路２は、状態遷移マシンであり、要求信号の状態に応じて、４つの状態遷移信号ｆｏｒｃｅ＿Ａ１，ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ１，ｆｏｒｃｅ＿Ｂ２のいずれかを回路モジュール１Ｃに供給する。なお、状態遷移信号ｆｏｒｃｅ＿Ａ１，ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ１，ｆｏｒｃｅ＿Ｂ２は、状態遷移を実行させる時の値が１であり、それ以外の時の値が０である。
【００３２】
図２は、図１における監視回路２による状態遷移信号ｆｏｒｃｅ＿Ａ１についての状態遷移の一例を示す図である。
【００３３】
リセット時には、開始状態２１において、状態遷移信号ｆｏｒｃｅ＿Ａ１の値は０にリセットされる。そして、リセットが解除されると、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の状態を初期状態２２に遷移させる。初期状態２２においても、状態遷移信号ｆｏｒｃｅ＿Ａ１の値は０のままである。
【００３４】
そして、初期状態２２において、回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂのいずれか一方の値のみが１となった場合には、非デッドロック状態であるため、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の状態を状態２３へ遷移させ、状態遷移信号ｆｏｒｃｅ＿Ａ１の値を０のままとする。
【００３５】
その後、状態２３において、回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂのいずれの値も０となった場合には、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の状態を初期状態２２へ遷移させる。
【００３６】
一方、初期状態２２において、回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂのいずれの値も１となった場合には、デッドロック状態であるため、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の状態を状態２４へ遷移させ、状態遷移信号ｆｏｒｃｅ＿Ａ１の値を０から１にする。
【００３７】
その後、デッドロック状態が解消され、回路モジュール１Ａの処理が完了し、要求信号ｒｅｑ＿Ａの値が１から０に変化すると、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の状態を初期状態２２へ遷移させ、状態遷移信号ｆｏｒｃｅ＿Ａ１の値を１から０にする。
【００３８】
図３は、図１における回路モジュール１Ｃの構成を示すブロック図である。回路モジュール１Ｃは、状態遷移マシンである。図３において、コンビネーション論理回路３１は、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂ、状態遷移信号ｆｏｒｃｅ＿Ａ１，ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ１，ｆｏｒｃｅ＿Ｂ２、および現在の動作状態から、次の動作状態および許可信号ｇｎｔ＿１，ｇｎｔ＿２の値を決定する。シーケンシャル論理回路３２は、リセット信号を供給されると、動作状態を開始状態にリセットし、クロック信号におけるクロックごとに、現在の動作状態を、コンビネーション管理回路３１から供給される次の動作状態で更新し、その動作状態を次のクロックまで現在の動作状態として保持する。
【００３９】
図４は、図１における回路モジュール１Ｃの状態遷移図である。
【００４０】
まず、リセットが発生すると、回路モジュール１Ｃは、動作状態を開始状態４１とし、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂの値を０にリセットする。その後、リセットが解除されると、回路モジュール１Ｃの動作状態は、開始状態４１から初期状態４２へ遷移する。初期状態４２では、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂの値は、０とされる。
【００４１】
初期状態４２において、回路モジュール１Ｃは、回路モジュール１Ａからの要求信号ｒｅｑ＿Ａの値が０から１になったことを検出すると、動作状態を初期状態４２から状態４３へ遷移させる。また、初期状態４２において、回路モジュール１Ｃは、状態遷移信号ｆｏｒｃｅ＿Ａ１の値が１になったことを検出すると、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値に拘わらず、動作状態を初期状態４２から状態４３へ遷移させる。状態４３では、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ａの値を０から１に変化させる。なお、許可信号ｇｎｔ＿Ｂの値は０のままとされる。
【００４２】
回路モジュール１Ａは、許可信号ｇｎｔ＿Ａの値が１となると、所定の処理を実行し、その処理が終了すると、要求信号ｒｅｑ＿Ａの値を１から０にする。状態４３において、回路モジュール１Ｃは、要求信号ｒｅｑ＿Ａの値が０であることを検出すると、動作状態を状態４３から初期状態４２へ遷移させる。また、状態４３において、回路モジュール１Ｃは、状態遷移信号ｆｏｒｃｅ＿Ａ２の値が１になったことを検出すると、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値に拘わらず、動作状態を状態４３から初期状態４２へ遷移させる。
【００４３】
同様に、初期状態４２において、回路モジュール１Ｃは、回路モジュール１Ｂからの要求信号ｒｅｑ＿Ｂの値が０から１になったことを検出すると、動作状態を初期状態４２から状態４４へ遷移させる。また、初期状態４２において、回路モジュール１Ｃは、状態遷移信号ｆｏｒｃｅ＿Ｂ１の値が１になったことを検出すると、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値に拘わらず、動作状態を初期状態４２から状態４４へ遷移させる。状態４４では、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ｂの値を０から１に変化させる。なお、許可信号ｇｎｔ＿Ａの値は０のままとされる。
【００４４】
回路モジュール１Ｂは、許可信号ｇｎｔ＿Ｂの値が１となると、所定の処理を実行し、その処理が終了すると、要求信号ｒｅｑ＿Ｂの値を１から０にする。状態４４において、回路モジュール１Ｃは、要求信号ｒｅｑ＿Ｂの値が０であることを検出すると、動作状態を状態４４から初期状態４２へ遷移させる。また、状態４４において、回路モジュール１Ｃは、状態遷移信号ｆｏｒｃｅ＿Ｂ２の値が１になったことを検出すると、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値に拘わらず、動作状態を状態４４から初期状態４２へ遷移させる。
【００４５】
次に、上記装置の動作について説明する。通常状態（非デッドロック状態）での動作と、デッドロック状態での動作について順番に説明する。
【００４６】
（ａ）通常状態（非デッドロック状態）での動作
【００４７】
通常状態（非デッドロック状態）では、回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが、（ｒｅｑ＿Ａ＝０，ｒｅｑ＿Ｂ＝０）、（ｒｅｑ＿Ａ＝１，ｒｅｑ＿Ｂ＝０）および（ｒｅｑ＿Ａ＝０，ｒｅｑ＿Ｂ＝１）のいずれかである。
【００４８】
これらの場合、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１，ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ１，ｆｏｒｃｅ＿Ｂ２のいずれの値も０とする。
【００４９】
また、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝０，ｒｅｑ＿Ｂ＝０）である場合には、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂのいずれの値も０とする。
【００５０】
また、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝１，ｒｅｑ＿Ｂ＝０）である場合には、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ａの値を１とし、許可信号ｇｎｔ＿Ｂの値を０とする。これにより、回路モジュール１Ａは、処理の実行権を得て、処理を実行し、処理完了後に、要求信号ｒｅｑ＿Ａの値を０にする。
【００５１】
また、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝０，ｒｅｑ＿Ｂ＝１）である場合には、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ａの値を０とし、許可信号ｇｎｔ＿Ｂの値を１とする。これにより、回路モジュール１Ｂは、処理の実行権を得て、処理を実行し、処理完了後に、要求信号ｒｅｑ＿Ｂの値を０にする。
【００５２】
このように、通常状態では、回路モジュール１Ｃは、回路モジュール１Ａまたは回路モジュール１Ｂからの要求に応じて、処理の実行を許可する。
【００５３】
（ｂ）デッドロック状態での動作
【００５４】
回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝１，ｒｅｑ＿Ｂ＝１）となった場合、監視回路２のデッドロック検出部１１は、デッドロックを検出する。
【００５５】
監視回路２において、デッドロック検出部１１がデッドロックを検出すると、状態遷移信号生成部１２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の値を０から１へ変化させる。
【００５６】
状態遷移信号ｆｏｒｃｅ＿Ａ１の値が１へ変化すると、回路モジュール１Ｃは、回路モジュール１Ａに対する許可信号ｇｎｔ＿Ａの値を１にする。これにより、デッドロックが解消され、回路モジュール１Ａは、処理の実行権を得て、処理を実行し、処理終了後に要求信号ｒｅｑ＿Ａの値を０にする。この時点で、一旦、初期状態４２に戻るため、許可信号ｇｎｔ＿Ａ，ｇｎｔ＿Ｂの値はいずれも０となる。そして、この時点で、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝０，ｒｅｑ＿Ｂ＝１）となるため、回路モジュール１Ｃは、許可信号ｇｎｔ＿Ｂの値を０から１へ変化させる。これにより、回路モジュール１Ｂは、処理の実行権を得て、処理を実行し、処理終了後に要求信号ｒｅｑ＿Ｂの値を０にする。
【００５７】
このように、デッドロックが発生しても、ただちにいずれかの回路モジュール（ここでは、回路モジュール１Ａ）により処理が実行され、その後に、残りの回路モジュールにより処理が実行される。
【００５８】
なお、ここでは、回路モジュール１Ａ，１Ｂの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝１，ｒｅｑ＿Ｂ＝１）となった場合、監視回路２は、状態遷移信号ｆｏｒｃｅ＿Ａ１の値を１とし、その他の状態遷移信号ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ１，ｆｏｒｃｅ＿Ｂ２の値を０とし、回路モジュール１Ａに対して優先的に実行権を与えているが、その代わりに、状態遷移信号ｆｏｒｃｅ＿Ｂ１の値を１とし、その他の状態遷移信号ｆｏｒｃｅ＿Ａ１，ｆｏｒｃｅ＿Ａ２，ｆｏｒｃｅ＿Ｂ２の値を０とし、回路モジュール１Ｂに対して優先的に実行権を与えるようにしてもよい。また、要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂの値の組み合わせが（ｒｅｑ＿Ａ＝１，ｒｅｑ＿Ｂ＝１）となった場合、その時点における他の状態や所定の条件に従って、状態遷移信号ｆｏｒｃｅ＿Ａ１および状態遷移信号ｆｏｒｃｅ＿Ｂ１のいずれかを選択し、選択した状態遷移信号の値のみを１とするようにしてもよい。
【００５９】
また、回路モジュール１Ｃの動作状態が状態４３であるときに別の要因によりデッドロックが発生し回路モジュール１Ａの処理が完了不能となった場合には、監視回路２は、回路モジュール１Ａの処理が完了不能となったと判断すると、状態遷移信号ｆｏｒｃｅ＿Ａ２の値を１にして、そのデッドロックを解消する。これにより、回路モジュール１Ｃの動作状態が初期状態４２に復帰し、回路モジュール１Ｂが実行権を得ることができるようになる。例えば、監視回路２は、要求信号ｒｅｑ＿Ａの値が継続的に１である時間をカウントし、その時間が所定の時間を超えた場合に、回路モジュール１Ａの処理が完了不能となったと判断する。
【００６０】
同様に、回路モジュール１Ｃの動作状態が状態４４であるときに別の要因によりデッドロックが発生し回路モジュール１Ｂの処理が完了不能となった場合には、監視回路２は、回路モジュール１Ｂの処理が完了不能となったと判断すると、状態遷移信号ｆｏｒｃｅ＿Ｂ２の値を１にして、そのデッドロックを解消する。これにより、回路モジュール１Ｃの動作状態が初期状態４２に復帰し、回路モジュール１Ａが実行権を得ることができるようになる。例えば、監視回路２は、要求信号ｒｅｑ＿Ｂの値が継続的に１である時間をカウントし、その時間が所定の時間を超えた場合に、回路モジュール１Ｂの処理が完了不能となったと判断する。
【００６１】
以上のように、上記実施の形態によれば、回路モジュール１Ｃは、回路モジュール１Ａ，１Ｂからの要求信号を受け付け回路モジュール１Ａ，１Ｂの排他制御を行う。監視回路２は、回路モジュール１Ａ，１Ｂからの要求信号ｒｅｑ＿Ａ，ｒｅｑ＿Ｂに基づいて、回路モジュール１Ｃがデッドロック状態か否かを判定し、デッドロック状態のときに状態遷移信号ｆｏｒｃｅ＿Ａ１を回路モジュール１Ｃへ直接供給して、回路モジュール１Ｃをデッドロック状態から強制的に状態遷移させる。
【００６２】
これにより、プログラム制御を介さずに監視回路２が直接、強制的に回路モジュール１Ｃを状態遷移させるため、排他制御の対象となる回路モジュール１Ａ，１Ｂをリセットすることなく、デッドロックを即座に解消することができる。
【００６３】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００６４】
例えば、上記実施の形態では、排他制御の対象となる回路モジュール１Ａ，１Ｂの数は２であるが、３以上でもよい。
【産業上の利用可能性】
【００６５】
本発明は、例えば、画像形成装置におけるリソースについての排他制御に適用可能である。
【符号の説明】
【００６６】
１Ａ，１Ｂ  回路モジュール
１Ｃ  回路モジュール（調停回路の一例）
２  監視回路
【図１】
2011008720.tif 000003
【図２】
2011008720.tif 000004
【図３】
2011008720.tif 000005
【図４】
2011008720.tif 000006
【図５】
2011008720.tif 000007
【図６】
2011008720.tif 000008
【図７】
2011008720.tif 000009