IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

特開2024-47096制御装置、画像処理装置、及び制御プログラム
<>
  • 特開-制御装置、画像処理装置、及び制御プログラム 図1
  • 特開-制御装置、画像処理装置、及び制御プログラム 図2
  • 特開-制御装置、画像処理装置、及び制御プログラム 図3
  • 特開-制御装置、画像処理装置、及び制御プログラム 図4
  • 特開-制御装置、画像処理装置、及び制御プログラム 図5
  • 特開-制御装置、画像処理装置、及び制御プログラム 図6
  • 特開-制御装置、画像処理装置、及び制御プログラム 図7
  • 特開-制御装置、画像処理装置、及び制御プログラム 図8
  • 特開-制御装置、画像処理装置、及び制御プログラム 図9
  • 特開-制御装置、画像処理装置、及び制御プログラム 図10
  • 特開-制御装置、画像処理装置、及び制御プログラム 図11
  • 特開-制御装置、画像処理装置、及び制御プログラム 図12
  • 特開-制御装置、画像処理装置、及び制御プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047096
(43)【公開日】2024-04-05
(54)【発明の名称】制御装置、画像処理装置、及び制御プログラム
(51)【国際特許分類】
   G06F 11/07 20060101AFI20240329BHJP
【FI】
G06F11/07 157
G06F11/07 140J
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022152517
(22)【出願日】2022-09-26
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】塩安 麻人
(72)【発明者】
【氏名】大津 正彦
(72)【発明者】
【氏名】野村 建太
(72)【発明者】
【氏名】谷畑 友樹
(72)【発明者】
【氏名】田口 冬馬
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA11
5B042JJ15
5B042JJ21
(57)【要約】
【課題】複数のプロセッサコアによる通知の競合を防止する。
【解決手段】制御装置30は、複数のCPUコア0~3を備える。複数のCPUコア0~3は、CPUコア0が正常に動作していることを監視するWDT21と、複数のCPUコア0~3の各々に予め対応付けられた複数の記憶領域を有するRAM13とに接続される。複数のCPUコア0~3の各々は、対応するRAM13の記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、CPUコア0は、RAM13の各記憶領域に対して、複数のCPUコア0~3の各々により情報が更新されているか否かを判定し、判定結果に基づいて、WDT21を制御する。
【選択図】図4
【特許請求の範囲】
【請求項1】
複数のプロセッサコアのうちの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、
前記複数のプロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、
に接続された前記複数のプロセッサコアを備え、
前記複数のプロセッサコアの各々は、対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、
前記第1プロセッサコアは、前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かを判定し、判定結果に基づいて、前記監視部を制御する
制御装置。
【請求項2】
前記第1プロセッサコアが前記情報の更新の有無を判定するタイミングは、前記複数のプロセッサコアの各々が前記情報を更新するタイミングとは異なる
請求項1に記載の制御装置。
【請求項3】
前記第1プロセッサコアは、前記情報を更新してから次の更新までの間に、前記情報の更新の有無を判定する
請求項2に記載の制御装置。
【請求項4】
前記メモリは、前記複数のプロセッサコアの各々について前記記憶領域を複数個ずつ有し、
前記複数のプロセッサコアの各々は、対応する前記メモリの複数個の記憶領域に対して、順番に前記情報を定期的に更新し、
前記第1プロセッサコアは、前記複数個の記憶領域のうち何れかの前記情報が更新されている場合に、前記情報が更新されていると判定する
請求項1に記載の制御装置。
【請求項5】
前記第1プロセッサコアは、前記複数個の記憶領域のうち全ての前記情報が更新されていない場合に、前記情報が更新されていないと判定する
請求項4に記載の制御装置。
【請求項6】
前記第1プロセッサコアは、前記複数のプロセッサコアの各々について前記情報が更新されている場合、前記監視部に対して、カウントをクリアするように指示する
請求項1に記載の制御装置。
【請求項7】
前記第1プロセッサコアは、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアの全てをリセットするように指示する
請求項6に記載の制御装置。
【請求項8】
前記第1プロセッサコアは、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアのうち前記異常が発生したプロセッサコアのみをリセットするように指示する
請求項6に記載の制御装置。
【請求項9】
前記監視部は、前記第1プロセッサコアからの指示が一定時間以上ない場合、前記複数のプロセッサコアの全てをリセットするリセット信号を出力する
請求項1に記載の制御装置。
【請求項10】
前記監視部からのリセット信号を受け付け、受け付けたリセット信号に応じて、前記第1プロセッサコアを、予め定めた別のプロセッサコアに代替させる割り込み処理を行う割込部を更に備えた
請求項9に制御装置。
【請求項11】
請求項1~請求項10の何れか1項に記載の制御装置と、
前記制御装置によって制御される画像処理部と、
を含む画像処理装置。
【請求項12】
複数のプロセッサコアの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、
前記複数のプロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、
に接続された前記複数のプロセッサコアのうち前記第1プロセッサコアの制御プログラムであって、
前記第1プロセッサコアに対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、
前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かに基づいて、前記監視部を制御することを、
コンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、画像処理装置、及び制御プログラムに関する。
【背景技術】
【0002】
例えば、特許文献1には、予め割り当てられた処理を実行する第一コアと第二コアとを少なくとも有するマルチコアCPUを備える制御装置が記載されている。この制御装置は、第二コアに、第一コアの異常を検知させる第一コア監視手段と、第一コアに、第二コアの異常を検知させる第二コア監視手段と、を備える。第一コアは、第二コア監視手段を介して第二コアの異常を検知すると、第二コアにより実行される処理を代行する第一代行処理を実行し、第二コアは、第一コア監視手段を介して第一コアの異常を検知すると、第一コアにより実行される処理を代行する第二代行処理を実行する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-73748号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
コントローラに搭載されるプロセッサは、複数のプロセッサコアを搭載して性能を向上している。一方、例えば、高温、高電圧を使用する装置では、安全面からWDT(Watch Dog Timer)を使用し、不具合発生時に安全な状態にするためにシステムをリセットさせている。
【0005】
しかしながら、複数のプロセッサコアでWDTを共用する場合、複数のプロセッサコアの各々が正常に動作し続けていることをWDTに通知する際に、通知が重なってしまうと、重なった通知を調停する調停機能がないと、複数のプロセッサコアの間で競合が発生する。競合が発生すると、WDTが通知を受信できず、プロセッサコアが正常に動作していないと誤認識し、不要なリセットを行う可能性がある。
【0006】
本開示は、複数のプロセッサコアによる通知の競合を防止することができる制御装置、画像処理装置、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、第1態様に係る制御装置は、複数のプロセッサコアのうちの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、複数の前記プロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、に接続された前記複数のプロセッサコアを備え、前記複数のプロセッサコアの各々が、対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、前記第1プロセッサコアが、前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かを判定し、判定結果に基づいて、前記監視部を制御する。
【0008】
また、第2態様に係る制御装置は、第1態様に係る制御装置において、前記第1プロセッサコアが前記情報の更新の有無を判定するタイミングが、前記複数のプロセッサコアの各々が前記情報を更新するタイミングとは異なる。
【0009】
また、第3態様に係る制御装置は、第2態様に係る制御装置において、前記第1プロセッサコアが、前記情報を更新してから次の更新までの間に、前記情報の更新の有無を判定する。
【0010】
また、第4態様に係る制御装置は、第1態様に係る制御装置において、前記メモリが、前記複数のプロセッサコアの各々について前記記憶領域を複数個ずつ有し、前記複数のプロセッサコアの各々が、対応する前記メモリの複数個の記憶領域に対して、順番に前記情報を定期的に更新し、前記第1プロセッサコアが、前記複数個の記憶領域のうち何れかの前記情報が更新されている場合に、前記情報が更新されていると判定する。
【0011】
また、第5態様に係る制御装置は、第4態様に係る制御装置において、前記第1プロセッサコアが、前記複数個の記憶領域のうち全ての前記情報が更新されていない場合に、前記情報が更新されていないと判定する。
【0012】
また、第6態様に係る制御装置は、第1態様に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの各々について前記情報が更新されている場合、前記監視部に対して、カウントをクリアするように指示する。
【0013】
また、第7態様に係る制御装置は、第6態様に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアの全てをリセットするように指示する。
【0014】
また、第8態様に係る制御装置は、第6態様に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアのうち前記異常が発生したプロセッサコアのみをリセットするように指示する。
【0015】
また、第9態様に係る制御装置は、第1態様に係る制御装置において、前記監視部が、前記第1プロセッサコアからの指示が一定時間以上ない場合、前記複数のプロセッサコアの全てをリセットするリセット信号を出力する。
【0016】
また、第10態様に係る制御装置は、第9態様に係る制御装置において、前記監視部からのリセット信号を受け付け、受け付けたリセット信号に応じて、前記第1プロセッサコアを、予め定めた別のプロセッサコアに代替させる割り込み処理を行う割込部を更に備える。
【0017】
更に、上記目的を達成するために、第11態様に係る画像処理装置は、第1態様~第10態様の何れか1態様に記載の制御装置と、前記制御装置によって制御される画像処理部と、を含む。
【0018】
更に、上記目的を達成するために、第12態様に係る制御プログラムは、複数のプロセッサコアの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、前記複数のプロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、に接続された前記複数のプロセッサコアのうち前記第1プロセッサコアの制御プログラムであって、前記第1プロセッサコアに対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かに基づいて、前記監視部を制御することを、コンピュータに実行させる。
【発明の効果】
【0019】
第1態様、第11態様、及び第12態様によれば、複数のプロセッサコアによる通知の競合を防止することができる、という効果を有する。
【0020】
第2態様によれば、同じタイミングにする場合と比較して、適切なタイミングで情報の更新の有無を判定することができる、という効果を有する。
【0021】
第3態様によれば、情報を更新してから次の更新までの間に、情報の更新の有無を判定することができる、という効果を有する。
【0022】
第4態様によれば、複数のプロセッサコアの各々について記憶領域を1個ずつとする場合と比較して、複数のプロセッサコア間でメモリの更新タイミングがずれた場合であっても、情報が更新されていることを適切に判定することができる、という効果を有する。
【0023】
第5態様によれば、複数のプロセッサコアの各々について記憶領域を1個ずつとする場合と比較して、複数のプロセッサコア間でメモリの更新タイミングがずれた場合であっても、情報が更新されていないことを適切に判定することができる、という効果を有する。
【0024】
第6態様によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、監視部のカウントを適切にクリアすることができる、という効果を有する。
【0025】
第7態様によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、複数のプロセッサコアの全てを適切にリセットすることができる、という効果を有する。
【0026】
第8態様によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、異常が発生したプロセッサコアのみを適切にリセットすることができる、という効果を有する。
【0027】
第9態様によれば、第1プロセッサコアに異常が発生した場合であっても、リセット信号を出力することができる、という効果を有する。
【0028】
第10態様によれば、第1プロセッサコアに異常が発生した場合であっても、別のプロセッサコアに代替させることができる、という効果を有する。
【図面の簡単な説明】
【0029】
図1】第1の実施形態に係る画像処理システムの構成の一例を示す図である。
図2】第1の実施形態に係る画像処理装置の電気的な構成の一例を示すブロック図である。
図3】比較例に係る制御装置の構成を示すブロック図である。
図4】第1の実施形態に係る制御装置の構成の一例を示すブロック図である。
図5】第1の実施形態に係るRAMの構成の一例を示す図である。
図6】第1の実施形態に係る制御装置の動作の一例を示すシーケンス図である。
図7】第1の実施形態に係る第1CPUコアの制御プログラムによる処理の流れの一例を示すフローチャートである。
図8】第2の実施形態に係るRAMの構成の一例を示す図である。
図9】第2の実施形態に係る制御装置の動作の一例を示すシーケンス図である。
図10図9に示す制御装置の動作に対応するRAMの更新状態の一例を示す図である。
図11】第2の実施形態に係る複数のCPUコアの制御プログラムによる処理の流れの一例を示すフローチャートである。
図12】第3の実施形態に係る制御装置の構成の一例を示すブロック図である。
図13】第3の実施形態に係る制御装置の動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【0030】
以下、図面を参照して、本開示の技術を実施するための形態の一例について詳細に説明する。なお、動作、作用、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。各図面は、本開示の技術を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本開示の技術は、図示例のみに限定されるものではない。また、本実施形態では、本開示の技術と直接的に関連しない構成や周知な構成については、説明を省略する場合がある。
【0031】
[第1の実施形態]
図1は、第1の実施形態に係る画像処理システム100の構成の一例を示す図である。
【0032】
図1に示すように、本実施形態に係る画像処理システム100は、画像処理装置10と、端末装置50と、を備えている。図1の例では、1台の端末装置を示しているが、その数は任意である。
【0033】
画像処理装置10は、ユーザの指示に従って画像に関する機能を実行する装置である。画像処理装置10は、ユーザが使用する端末装置50とネットワークNを介して接続される。なお、ネットワークNには、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等が適用される。ネットワークNの接続形態に制約はなく、有線、無線、又は有線と無線が混在した形態の何れであってもよい。
【0034】
画像処理装置10は一例として、用紙等の記録媒体に記載された画像を画像データとして読み込むスキャン機能、画像データによって表される画像を記録媒体に形成するプリント機能、及び記録媒体に形成された画像と同一の画像を他の記録媒体に形成するコピー機能を有する。コピー機能、プリント機能、及びスキャン機能は、画像処理装置10における画像処理の一例である。
【0035】
端末装置50には、例えば、ユーザが使用するパーソナルコンピュータ(PC:Personal Computer)、スマートフォン、タブレット端末等の各種デバイスが適用される。
【0036】
ユーザは、端末装置50で生成した画像データを、ネットワークNを通じて画像処理装置10へ送信することで、画像処理装置10に所望の画像処理を実行させる。又は、ユーザは、USB(Universal Serial Bus)メモリ若しくはメモリカード等の可搬型記憶媒体に画像データを記憶して画像処理装置10まで移動し、可搬型記憶媒体を画像処理装置10に接続することで、画像処理装置10に所望の画像処理を実行させてもよい。更に、ユーザは、文字及び画像の少なくとも一方が記載された原稿を持って画像処理装置10まで移動し、原稿を画像処理装置10に読み取らせることで、画像処理装置10に所望の画像処理を実行させてもよい。
【0037】
図2は、第1の実施形態に係る画像処理装置10の電気的な構成の一例を示すブロック図である。
【0038】
図2に示すように、本実施形態に係る画像処理装置10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、入出力インタフェース(I/O)14と、記憶部15と、表示部16と、操作部17と、原稿読取部18と、画像形成部19と、通信部20と、を備えている。CPU11は、プロセッサの一例である。
【0039】
CPU11、ROM12、RAM13、及びI/O14は、バスを介して各々接続されている。I/O14には、記憶部15と、表示部16と、操作部17と、原稿読取部18と、画像形成部19と、通信部20と、を含む各機能部が接続されている。これらの各機能部は、I/O14を介して、CPU11と相互に通信可能とされる。
【0040】
CPU11、ROM12、RAM13、及びI/O14によってコントローラとして機能する制御装置30が構成される。制御装置30は、画像処理装置10の一部の動作を制御するサブ制御部として構成されてもよいし、画像処理装置10の全体の動作を制御するメイン制御部の一部として構成されてもよい。制御装置30の各ブロックの一部又は全部には、例えば、LSI(Large Scale Integration)等の集積回路又はIC(Integrated Circuit)チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御装置30の集積化には、LSIに限らず、専用回路又は汎用プロセッサを用いてもよい。なお、制御装置30は、CPU11のみで構成されていてもよい。
【0041】
ROM12には、CPU11の動作を制御する制御プログラムが記憶される。制御プログラムは、例えば、制御装置30に予めインストールされていてもよい。制御プログラムは、不揮発性の記憶媒体に記憶して、又はネットワークNを介して配布して、制御装置30に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、HDD、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が想定される。
【0042】
記憶部15としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等が用いられる。
【0043】
表示部16には、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro Luminescence)ディスプレイ等が用いられる。表示部16は、タッチパネルを一体的に有していてもよい。操作部17には、例えば、テンキー、スタートキー等の各種の操作キーが設けられている。表示部16及び操作部17は、操作パネルとして、画像処理装置10のユーザから各種の画像処理機能、設定に関する指示を受け付ける。この各種の指示には、例えば、原稿の読み取りを開始させる指示や、原稿のコピーを開始させる指示、画像処理装置10に保持した印刷データの印刷指示等が含まれる。表示部16は、ユーザから受け付けた指示に応じて実行された処理の結果や、処理に対する通知等の各種の情報を表示する。
【0044】
原稿読取部18は、画像処理装置10の上部に設けられた自動原稿送り装置(図示省略)の給紙台に置かれた原稿を1枚ずつ取り込み、取り込んだ原稿を光学的に読み取って画像データを得る。あるいは、原稿読取部18は、プラテンガラス等の原稿台に置かれた原稿を光学的に読み取って画像データを得る。
【0045】
画像形成部19は、原稿読取部18による読み取りによって得られた画像データ、あるいは、端末装置50による印刷指示により得られた画像データに基づく画像を、記録媒体の一例である用紙に形成する。画像形成部19は、画像処理部の一例である。なお、以下では、画像を形成する方式として、電子写真方式を例示して説明するが、インクジェット方式等の他の方式を採用してもよい。
【0046】
画像を形成する方式が電子写真方式の場合、画像形成部19は、感光体ドラム、帯電装置、露光装置、現像装置、転写装置、及び定着装置を含んでいる。帯電装置は、感光体ドラムに電圧を印加して感光体ドラムの表面を帯電させる。露光装置は、帯電装置で帯電された感光体ドラムを画像データに応じた光で露光することにより感光体ドラムに静電潜像を形成する。現像装置は、感光体ドラムに形成された静電潜像をトナーにより現像することで感光体ドラムにトナー像を形成する。転写装置は、感光体ドラムに形成されたトナー像を用紙に転写する。定着装置は、用紙に転写されたトナー像を加熱及び加圧により定着させる。
【0047】
通信部20は、インターネット、LAN、WAN等のネットワークNに接続するための通信インタフェースであり、端末装置50との間でネットワークNを介して通信が可能とされる。
【0048】
図3は、比較例に係る制御装置200の構成を示すブロック図である。
【0049】
図3に示すように、制御装置200は、CPU201を備えている。CPU201は、複数のCPUコア0~3と、入出力I/F(インタフェース)202とを備えている。入出力I/F202には、例えば、GPIO(General Purpose Input Output)、I2C(Inter Integrated Circuit)等が適用される。複数のCPUコア0~3は、入出力I/F202を介してWDT203と接続されている。
【0050】
CPU201は、複数のCPUコア0~3を搭載して性能を向上している。一方、WDT203を使用し、不具合発生時に安全な状態にするためにシステムをリセットさせている。WDT203は、複数のCPUコア0~3が起動すると監視状態に入り、複数のCPUコア0~3上で稼働しているプログラムは一定時間毎に特定の操作を実行して正常に動作していることを表す情報をWDT203に通知する。一定時間を過ぎてもWDT203へ通知が行われないと、何らかのトラブルが発生したとみなし、WDT203によって予め決められた異常時の処理(リセット等)が実行される。
【0051】
複数のCPUコア0~3でWDT203を共用する場合、複数のCPUコア0~3の各々が正常に動作していることをWDT203に通知する際に、通知が重なってしまうと、重なった通知を調停する調停機能がないと、複数のCPUコア0~3の間で競合が発生する。競合が発生すると、WDT203が通知を受信できず、CPUコア0~3が正常に動作していないと誤認識し、不要なリセットを行う可能性がある。
【0052】
このため、本実施形態に係る制御装置30は、複数のプロセッサコアを備え、複数のプロセッサコアの各々は、対応するメモリの記憶領域に対して、正常に動作していることを示す情報を書き込んで更新し、複数のプロセッサコアのうちの何れかのプロセッサコアである第1プロセッサコアは、メモリの各記憶領域に対して、複数のプロセッサコアの各々により情報が更新されているか否かを判定し、判定結果に基づいて、監視部を制御する。
【0053】
図4は、第1の実施形態に係る制御装置30の構成の一例を示すブロック図である。なお、本実施形態では、プロセッサの一例としてCPU11を適用し、プロセッサコアの一例としてCPUコア0~3を適用し、メモリの一例としてRAM13を適用し、監視部の一例としてWDT21を適用した場合について説明する。
【0054】
図4に示すように、制御装置30は、CPU11を備えている。CPU11は、複数のCPUコア0~3と、RAMコントローラ11Aと、入出力I/F11Bとを備えている。入出力I/F11Bには、例えば、GPIO、I2C等が適用される。複数のCPUコア0~3は、RAMコントローラ11Aを介してRAM13と接続され、入出力I/F11Bを介してWDT21と接続されている。なお、複数のCPUコアは、図4の例では4個としているが、CPUコアは2個以上であればよい。また、制御装置30は、CPU11のみを含む構成としてもよいし、CPU11、RAM13、及びWDT21を含む構成としてもよい。
【0055】
WDT21は、上述のWDT203と同様のタイマであるが、本実施形態においては、複数のCPUコア0~3のうち何れかのCPUコアである第1CPUコアが正常に動作していることを監視する。ここで、第1CPUコアは、複数のCPUコア0~3のうちの例えばCPUコア0とする。
【0056】
RAMコントローラ11Aは、複数のCPUコア0~3がRAM13にアクセスする際に、複数のCPUコア0~3からのアクセスが競合しないように、アクセスタイミングを調停する調停機能を備える。
【0057】
図5は、第1の実施形態に係るRAM13の構成の一例を示す図である。
【0058】
図5に示すように、RAM13は、複数のCPUコア0~3の各々に予め対応付けられた複数の記憶領域130~133を有する。図5の例において、コア0用記憶領域130はCPUコア0に対応する記憶領域であり、コア1用記憶領域131はCPUコア1に対応する記憶領域である。コア2用記憶領域132はCPUコア2に対応する記憶領域であり、コア3用記憶領域133はCPUコア3に対応する記憶領域である。なお、これらコア0用記憶領域130、コア1用記憶領域131、コア2用記憶領域132、及びコア3用記憶領域133を総称して記憶領域130~133ともいう。
【0059】
図4及び図5に示すように、複数のCPUコア0~3の各々は、ROM12(図2)に記憶されている制御プログラムを実行することにより、対応するRAM13の記憶領域130~133に対して、正常に動作していることを示す情報(以下、「正常動作情報」という。)を定期的に書き込んで更新する。つまり、CPUコア0は正常動作情報をコア0用記憶領域130に定期的に書き込み、CPUコア1は正常動作情報をコア1用記憶領域131に定期的に書き込む。CPUコア2は正常動作情報をコア2用記憶領域132に定期的に書き込み、CPUコア3は正常動作情報をコア3用記憶領域133に定期的に書き込む。なお、CPUコア0~CPUコア3の各々の書き込みタイミングは、各CPUコアの処理内容に応じて変化することを許容する。
【0060】
第1CPUコアであるCPUコア0は、ROM12(図2)に記憶されている制御プログラムを実行することにより、RAM13の各記憶領域130~133に対して、複数のCPUコア0~3の各々により正常動作情報が更新されているか否かを判定し、判定結果に基づいて、WDT21を制御する。
【0061】
具体的に、CPUコア0が正常動作情報の更新の有無を判定するタイミングは、複数のCPUコア0~3の各々が正常動作情報を更新するタイミングとは異なっている。CPUコア0は、正常動作情報を更新してから次の更新までの間に、正常動作情報の更新の有無を判定する。
【0062】
CPUコア0は、複数のCPUコア0~3の各々について正常動作情報が更新されている場合、WDT21に対して、カウントをクリア(解除)するように指示する。一方、CPUコア0は、複数のCPUコア0~3の何れかについて正常動作情報が更新されていない場合、異常の発生と判定し、WDT21に対して、複数のCPUコア0~3の全てをリセットするように指示する。また、CPUコア0は、複数のCPUコア0~3の何れかについて正常動作情報が更新されていない場合、異常の発生と判定し、WDT21に対して、複数のCPUコア0~3のうち異常が発生したCPUコアのみをリセットするように指示してもよい。
【0063】
図6は、第1の実施形態に係る制御装置30の動作の一例を示すシーケンス図である。
【0064】
図6の(S1)では、CPUコア0~3の各々が、一例として、上述の図5に示す、対応するRAM13の記憶領域130~133に対して、正常動作情報を書き込んで更新する。
【0065】
(S2)では、CPUコア0が、RAM13の各記憶領域130~133に対して、複数のCPUコア0~3の各々により正常動作情報が更新されているか否かを確認する。
【0066】
(S3)では、CPUコア0が、複数のCPUコア0~3の各々により正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。
【0067】
(S4)では、WDT21が、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0068】
(S5)では、CPUコア0~3の各々が、(S1)と同様に、対応するRAM13の記憶領域130~133に対して、正常動作情報を書き込んで更新する。
【0069】
(S6)では、CPUコア0が、RAM13の各記憶領域130~133に対して、複数のCPUコア0~3の各々により正常動作情報が更新されているか否かを確認する。
【0070】
(S7)では、CPUコア0が、複数のCPUコア0~3の各々により正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。
【0071】
(S8)では、WDT21が、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0072】
(S9)では、CPUコア0、2、3の各々は、対応するRAM13の記憶領域130、132、133に対して、正常動作情報を書き込んで更新する。一方、CPUコア1は、対応するRAM13のコア1用記憶領域131に対して、正常動作情報を書き込まないため、更新されない。
【0073】
(S10)では、CPUコア0が、RAM13の各記憶領域130~133に対して、複数のCPUコア0~3の各々により正常動作情報が更新されているか否かを確認する。ここでは、CPUコア1に対応するコア1用記憶領域131の正常動作情報が更新されないため、CPUコア1の何らかの異常として検知する。コア異常を検知した場合、システムを安全な状態にするため、例えば、異常コアのみのリセット処理等で復旧を行う。あるいは、WDT21をクリアせず、WDT21からCPUコア全体をリセット処理し、再起動により復旧を行うようにしてもよい。
【0074】
次に、図7を参照して、第1の実施形態に係る制御装置30の作用について説明する。
【0075】
図7は、第1の実施形態に係る第1CPUコアの制御プログラムによる処理の流れの一例を示すフローチャートである。
【0076】
まず、第1CPUコアの一例であるCPUコア0により制御プログラムが起動され、以下のステップを実行する。
【0077】
図7のステップS101では、CPUコア0が、正常動作情報をRAM13のコア0用記憶領域130に書き込んで更新する。このとき、他のCPUコア1~3についても正常に動作している場合には、CPUコア0と同様に、正常動作情報をRAM13の記憶領域131~133に書き込んで更新する。
【0078】
ステップS102では、CPUコア0が、RAM13の各記憶領域130~133に対して、複数のCPUコア0~3の各々により正常動作情報が更新されているか否か、つまり、異常が発生しているか否かを判定する。異常が発生していない、つまり、正常と判定した場合(否定判定の場合)、ステップS103に移行し、異常が発生していると判定した場合(肯定判定の場合)、ステップS105に移行する。
【0079】
ステップS103では、CPUコア0が、WDT21に対して、カウントのクリアを指示する。WDT21は、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0080】
ステップS104では、CPUコア0が、前回更新から一定時間が経過したか否かを判定する。一定時間が経過したと判定した場合(肯定判定の場合)、ステップS101に戻り処理を繰り返し、一定時間が経過していないと判定した場合(否定判定の場合)、ステップS104で待機となる。
【0081】
一方、ステップS105では、CPUコア0が、WDT21に対して、複数のCPUコア0~3の全て、あるいは、複数のCPUコア0~3のうち異常が発生したCPUコアをリセットするように指示し、本制御プログラムによる一連の処理を終了する。
【0082】
このように本実施形態によれば、複数のプロセッサコアの各々が、対応するメモリの記憶領域に対して、正常動作情報を書き込んで更新し、第1プロセッサコアが、メモリの各記憶領域に対して、複数のプロセッサコアの各々により正常動作情報が更新されているか否かを判定し、判定結果に基づいて、監視部を制御する。これにより、複数のプロセッサコアによる通知の競合が防止される。このため、監視部が複数のプロセッサコアが正常に動作していないと誤認識し、不要なリセットを行うことが防止される。
【0083】
[第2の実施形態]
上記第1の実施形態では、各プロセッサコアは別途優先度の高い処理をしており、メモリの更新タイミングがずれてしまう場合がある。このため、第2の実施形態では、複数のプロセッサコア間でメモリの更新タイミングがずれてしまう場合であっても、メモリ更新が可能な形態について説明する。
【0084】
図8は、第2の実施形態に係るRAM13Aの構成の一例を示す図である。なお、本実施形態に係る制御装置(以下、「制御装置30A」という。)は、上述の図4に示す制御装置30において、RAM13に代えてRAM13Aを備える点で異なり、これ以外の部分では同様の構成とする。
【0085】
図8に示すように、RAM13Aは、複数のCPUコア0~3の各々について記憶領域を複数個ずつ有している。つまり、コア0用記憶領域130は、コア0用記憶領域0及びコア0用記憶領域1を含む。コア1用記憶領域131は、コア1用記憶領域0及びコア1用記憶領域1を含む。コア2用記憶領域132は、コア2用記憶領域0及びコア2用記憶領域1を含む。コア3用記憶領域133は、コア3用記憶領域0及びコア3用記憶領域1を含む。なお、図8の例では、各CPUコアに対応する記憶領域を2個として示しているが、3個以上であってもよい。また、これらコア0用記憶領域0、1、コア1用記憶領域0、1、コア2用記憶領域0、1、及びコア3用記憶領域0、1を総称して記憶領域0、1ともいう。
【0086】
複数のCPUコア0~3の各々は、対応するRAM13Aの複数個の記憶領域0、1に対して、順番に正常動作情報を定期的に書き込んで更新する。つまり、CPUコア0は正常動作情報をコア0用記憶領域0、コア0用記憶領域1に順番に書き込み、CPUコア1は正常動作情報をコア1用記憶領域0、コア1用記憶領域1に順番に書き込む。CPUコア2は正常動作情報をコア2用記憶領域0、コア2用記憶領域1に順番に書き込み、CPUコア3は正常動作情報をコア3用記憶領域0、コア3用記憶領域1に順番に書き込む。
【0087】
第1CPUコアであるCPUコア0は、複数のCPUコア0~3の各々について、複数個の記憶領域0、1のうち何れかの正常動作情報が更新されている場合に、正常動作情報が更新されていると判定する。一方、CPUコア0は、複数個の記憶領域0、1のうち全ての正常動作情報が更新されていない場合に、正常動作情報が更新されていないと判定する。
【0088】
図9は、第2の実施形態に係る制御装置30Aの動作の一例を示すシーケンス図である。図10は、図9に示す制御装置30Aの動作に対応するRAM13Aの更新状態の一例を示す図である。
【0089】
図9の(S11)では、CPUコア0~3の各々が、一例として、上述の図8に示す、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込んで更新する。但し、RAM13Aの記憶領域1には正常動作情報が既に書き込まれているものとする。
【0090】
(S12)では、CPUコア0が、CPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されているか否かを確認する。図10の(S12)では、CPUコア0に対応するコア0用記憶領域0、1が両方とも更新され、CPUコア1に対応するコア1用記憶領域0、1が両方とも更新されている。同様に、CPUコア2に対応するコア2用記憶領域0、1が両方とも更新され、CPUコア3に対応するコア3用記憶領域0、1が両方とも更新されている。なお、ここでは、時系列的に記憶領域1が記憶領域0よりも前である。この場合、記憶領域1のみを確認してもよい。
【0091】
(S13)では、CPUコア0が、複数のCPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。
【0092】
(S14)では、WDT21が、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0093】
(S15)では、CPUコア0~3の各々が、対応するRAM13Aの記憶領域1に対して、正常動作情報を書き込んで更新する。
【0094】
(S16)では、CPUコア0が、CPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されているか否かを確認する。図10の(S16)では、各CPUコア0~3に対応する複数個の記憶領域0、1が両方共に更新されている。なお、ここでは、時系列的に記憶領域0が記憶領域1よりも前である。この場合、記憶領域0のみを確認してもよい。
【0095】
(S17)では、CPUコア0が、複数のCPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。
【0096】
(S18)では、WDT21が、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0097】
(S19)では、CPUコア0、2、3の各々が、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込んで更新する。一方、CPUコア1は、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込まないため更新されない。
【0098】
(S20)では、CPUコア0が、CPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されているか否かを確認する。図10の(S20)では、各CPUコア0、2、3に対応する複数個の記憶領域0、1は両方共に更新されている。一方、CPUコア1に対応する複数個の記憶領域0、1は記憶領域1のみが更新され記憶領域0は更新されない。なお、ここでは、時系列的に記憶領域1が記憶領域0よりも前である。この場合、記憶領域1のみを確認してもよい。
【0099】
(S21)では、CPUコア0が、複数のCPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。なお、WDT21の「タイマカウント」のステップの記載は省略する。
【0100】
(S22)では、CPUコア0、2、3の各々が、対応するRAM13Aの記憶領域1に対して、正常動作情報を書き込んで更新する。一方、CPUコア1は、対応するRAM13Aの記憶領域1に対して、正常動作情報を書き込まないため更新されない。
【0101】
(S23)では、CPUコア0が、CPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されているか否かを確認する。図10の(S23)では、各CPUコア0、2、3に対応する複数個の記憶領域0、1は両方共に更新されている、一方、CPUコア1に対応する複数個の記憶領域0、1は共に更新されない。つまり、CPUコア1については複数個の記憶領域0、1のうち全ての正常動作情報が更新されていないため、CPUコア1の何らかの異常として検知する。コア異常を検知した場合、システムを安全な状態にするため、例えば、異常コアのみのリセット処理等で復旧を行う。あるいは、WDT21をクリアせず、WDT21からCPUコア全体をリセット処理し、再起動により復旧を行うようにしてもよい。
【0102】
次に、図11を参照して、第2の実施形態に係る制御装置30Aの作用について説明する。
【0103】
図11は、第2の実施形態に係る複数のCPUコア0~3の制御プログラムによる処理の流れの一例を示すフローチャートである。
【0104】
まず、複数のCPUコア0~3の各々により制御プログラムが起動され、以下のステップを実行する。
【0105】
図11のステップS111では、CPUコア0~3の各々が、一例として、上述の図8に示す、対応するRAM13Aのコアn(n=0~3)用記憶領域0に正常動作情報を書き込んで更新する。
【0106】
ステップS112では、CPUコア0~3の各々が、対応するRAM13Aのコアn(n=0~3)用記憶領域1に正常動作情報を書き込んで更新し、ステップS111に戻り処理を繰り返す。
【0107】
このように本実施形態によれば、複数のプロセッサコア間でメモリの更新タイミングがずれてしまう場合であっても、複数のプロセッサコアによる通知の競合が防止される。このため、監視部が複数のプロセッサコアが正常に動作していないと誤認識し、不要なリセットを行うことが防止される。
【0108】
[第3の実施形態]
第3の実施形態では、第1プロセッサコアに異常が発生した場合に、別のプロセッサコアに代替させる形態について説明する。
【0109】
図12は、第3の実施形態に係る制御装置30Bの構成の一例を示すブロック図である。
【0110】
図12に示すように、制御装置30Bは、CPU11を備えている。CPU11は、複数のCPUコア0~3と、RAMコントローラ11Aと、入出力I/F11Bと、割込部11Cとを備えている。割込部11Cを備える点以外は上述の第1の実施形態で説明した制御装置30又は第2の実施形態で説明した制御装置30Aと同様の構成である。
【0111】
WDT21は、第1CPUコアであるCPUコア0からの指示が一定時間以上ない場合、複数のCPUコア0~3の全てをリセットするリセット信号を出力する。
【0112】
割込部11Cは、WDT21からのリセット信号を受け付け、受け付けたリセット信号に応じて、CPUコア0を、予め定めた別のCPUコア(図12の例ではCPUコア1)に代替させる割り込み処理を行う。
【0113】
つまり、RAM13又はRAM13Aの更新確認を実施しているCPUコア0に異常が発生した場合はそのコアのみをリセット処理し復旧することができない。このため、WDT21からのリセット要求を割り込みとして別のコアである例えばCPUコア1で受け、CPUコア1からRAM13又はRAM13Aの更新確認を実施しているCPUコア0のみをリセット処理し復旧させる。
【0114】
図13は、第3の実施形態に係る制御装置30Bの動作の一例を示すシーケンス図である。なお、本例では、上述の図8に示すRAM13Aを適用した場合について説明する。
【0115】
図13の(S31)では、CPUコア1~3の各々が、一例として、上述の図8に示す、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込んで更新する。一方、第1CPUコアであるCPUコア0は、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込まないため更新されない。
【0116】
(S32)では、CPUコア1~3の各々が、対応するRAM13Aの記憶領域1に対して、正常動作情報を書き込んで更新する。一方、CPUコア0は、対応するRAM13Aの記憶領域1に対しても、正常動作情報を書き込まないため更新されない。
【0117】
(S33)では、WDT21が、CPUコア0からの指示が一定時間以上ないため、タイマカウントオーバーとなる。
【0118】
(S34)では、WDT21が、割込部11Cに対して、リセット信号を送信し、割込部11Cから予め定めた別のCPUコアであるCPUコア1にリセット信号を送信する。
【0119】
(S35)では、CPUコア1が、異常が発生したCPUコア0に対して、リセット信号を送信する。
【0120】
(S36)では、CPUコア1が、CPUコア2、3の各々に対して、RAM13Aの更新停止を指示する。
【0121】
(S37)では、CPUコア0が、CPUコア1からのリセット信号に応じて、再起動を行う。
【0122】
(S38)では、再起動したCPUコア0が、WDT21に対して、タイマカウントの再開要求を行う。
【0123】
(S39)では、WDT21が、CPUコア0からの再開要求に応じて、タイマカウントを再開する。
【0124】
(S40)では、CPUコア0が、CPUコア0~3の各々に対して、RAM13Aの更新開始を指示する。
【0125】
(S41)では、CPUコア0~3の各々が、対応するRAM13Aの記憶領域0に対して、正常動作情報を書き込んで更新する。
【0126】
(S42)では、CPUコア0~3の各々が、対応するRAM13Aの記憶領域1に対して、正常動作情報を書き込んで更新する。
【0127】
(S43)では、CPUコア0が、CPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されているか否かを確認する。このとき、時系列的に前の記憶領域のみを確認してもよい。
【0128】
(S44)では、CPUコア0が、複数のCPUコア0~3の各々について、対応するRAM13Aの複数個の記憶領域0、1のうち何れかの正常動作情報が更新されていることを確認した場合、入出力I/F11Bを介してWDT21にタイマカウントをクリアするように指示する。
【0129】
(S45)では、WDT21が、CPUコア0からのクリア指示に応じて、タイマカウントをクリアし、新たなタイマカウントを開始する。
【0130】
このように本実施形態によれば、第1プロセッサコアに異常が発生した場合であっても、別のプロセッサコアに代替させることが可能とされる。これにより、複数のプロセッサコアによる通知の競合が防止される。このため、監視部が複数のプロセッサコアが正常に動作していないと誤認識し、不要なリセットを行うことが防止される。
【0131】
なお、上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えば、CPU:Central Processing Unit、等)や、専用のプロセッサ(例えば、GPU:Graphics processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0132】
また、上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は、上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0133】
以上、実施形態は、制御装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、これらのプログラムを記憶したコンピュータが読み取り可能な非一時的記憶媒体の形態としてもよい。
【0134】
その他、上記実施形態で説明した制御装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0135】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0136】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【0137】
以上の実施形態に関し、更に以下を開示する。
【0138】
(((1)))に係る制御装置は、複数のプロセッサコアのうちの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、複数の前記プロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、に接続された前記複数のプロセッサコアを備え、前記複数のプロセッサコアの各々が、対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、前記第1プロセッサコアが、前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かを判定し、判定結果に基づいて、前記監視部を制御する。
【0139】
(((2)))に係る制御装置は、(((1)))に係る制御装置において、前記第1プロセッサコアが前記情報の更新の有無を判定するタイミングが、前記複数のプロセッサコアの各々が前記情報を更新するタイミングとは異なる。
【0140】
(((3)))に係る制御装置は、(((2)))に係る制御装置において、前記第1プロセッサコアが、前記情報を更新してから次の更新までの間に、前記情報の更新の有無を判定する。
【0141】
(((4)))に係る制御装置は、(((1)))~(((3)))の何れか1に係る制御装置において、前記メモリが、前記複数のプロセッサコアの各々について前記記憶領域を複数個ずつ有し、前記複数のプロセッサコアの各々が、対応する前記メモリの複数個の記憶領域に対して、順番に前記情報を定期的に更新し、前記第1プロセッサコアが、前記複数個の記憶領域のうち何れかの前記情報が更新されている場合に、前記情報が更新されていると判定する。
【0142】
(((5)))に係る制御装置は、(((4)))に係る制御装置において、前記第1プロセッサコアが、前記複数個の記憶領域のうち全ての前記情報が更新されていない場合に、前記情報が更新されていないと判定する。
【0143】
(((6)))に係る制御装置は、(((1)))~(((3)))の何れか1に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの各々について前記情報が更新されている場合、前記監視部に対して、カウントをクリアするように指示する。
【0144】
(((7)))に係る制御装置は、(((6)))に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアの全てをリセットするように指示する。
【0145】
(((8)))に係る制御装置は、(((6)))に係る制御装置において、前記第1プロセッサコアが、前記複数のプロセッサコアの何れかについて前記情報が更新されていない場合、異常の発生と判定し、前記監視部に対して、前記複数のプロセッサコアのうち前記異常が発生したプロセッサコアのみをリセットするように指示する。
【0146】
(((9)))に係る制御装置は、(((1)))~(((8)))の何れか1に係る制御装置において、前記監視部が、前記第1プロセッサコアからの指示が一定時間以上ない場合、前記複数のプロセッサコアの全てをリセットするリセット信号を出力する。
【0147】
(((10)))に係る制御装置は、(((9)))に係る制御装置において、前記監視部からのリセット信号を受け付け、受け付けたリセット信号に応じて、前記第1プロセッサコアを、予め定めた別のプロセッサコアに代替させる割り込み処理を行う割込部を更に備える。
【0148】
(((11)))に係る画像処理装置は、(((1)))~(((10)))の何れか1に記載の制御装置と、前記制御装置によって制御される画像処理部と、を含む。
【0149】
(((12)))に係る制御プログラムは、複数のプロセッサコアの何れかのプロセッサコアである第1プロセッサコアが正常に動作していることを監視する監視部と、前記複数のプロセッサコアの各々に予め対応付けられた複数の記憶領域を有するメモリと、に接続された前記複数のプロセッサコアのうち前記第1プロセッサコアの制御プログラムであって、前記第1プロセッサコアに対応する前記メモリの記憶領域に対して、正常に動作していることを示す情報を定期的に書き込んで更新し、前記メモリの各記憶領域に対して、前記複数のプロセッサコアの各々により前記情報が更新されているか否かに基づいて、前記監視部を制御することを、コンピュータに実行させる。
【0150】
(((1)))、(((11)))、及び(((12)))によれば、複数のプロセッサコアによる通知の競合を防止することができる、という効果を有する。
【0151】
(((2)))によれば、同じタイミングにする場合と比較して、適切なタイミングで情報の更新の有無を判定することができる、という効果を有する。
【0152】
(((3)))によれば、情報を更新してから次の更新までの間に、情報の更新の有無を判定することができる、という効果を有する。
【0153】
(((4)))によれば、複数のプロセッサコアの各々について記憶領域を1個ずつとする場合と比較して、複数のプロセッサコア間でメモリの更新タイミングがずれた場合であっても、情報が更新されていることを適切に判定することができる、という効果を有する。
【0154】
(((5)))によれば、複数のプロセッサコアの各々について記憶領域を1個ずつとする場合と比較して、複数のプロセッサコア間でメモリの更新タイミングがずれた場合であっても、情報が更新されていないことを適切に判定することができる、という効果を有する。
【0155】
(((6)))によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、監視部のカウントを適切にクリアすることができる、という効果を有する。
【0156】
(((7)))によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、複数のプロセッサコアの全てを適切にリセットすることができる、という効果を有する。
【0157】
(((8)))によれば、複数のプロセッサコアの各々についての情報更新の有無を考慮しない場合と比較して、異常が発生したプロセッサコアのみを適切にリセットすることができる、という効果を有する。
【0158】
(((9)))によれば、第1プロセッサコアに異常が発生した場合であっても、リセット信号を出力することができる、という効果を有する。
【0159】
(((10)))によれば、第1プロセッサコアに異常が発生した場合であっても、別のプロセッサコアに代替させることができる、という効果を有する。
【符号の説明】
【0160】
10 画像処理装置
11 CPU
11A RAMコントローラ
11B 入出力I/F
11C 割込部
12 ROM
13、13A RAM
14 I/O
15 記憶部
16 表示部
17 操作部
18 原稿読取部
19 画像形成部
20 通信部
30、30A、30B 制御装置
50 端末装置
100 画像処理システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13