JP2016086377A - 画像処理装置、プログラム再起動方法、およびコンピュータプログラム - Google Patents

画像処理装置、プログラム再起動方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP2016086377A
JP2016086377A JP2014219936A JP2014219936A JP2016086377A JP 2016086377 A JP2016086377 A JP 2016086377A JP 2014219936 A JP2014219936 A JP 2014219936A JP 2014219936 A JP2014219936 A JP 2014219936A JP 2016086377 A JP2016086377 A JP 2016086377A
Authority
JP
Japan
Prior art keywords
core
program
job
image processing
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014219936A
Other languages
English (en)
Other versions
JP6464663B2 (ja
Inventor
佳実 中山
Yoshimi Nakayama
佳実 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2014219936A priority Critical patent/JP6464663B2/ja
Publication of JP2016086377A publication Critical patent/JP2016086377A/ja
Application granted granted Critical
Publication of JP6464663B2 publication Critical patent/JP6464663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Or Security For Electrophotography (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】従来よりも容易にマルチコアのCPUにおいてプログラムの安定化を図る。【解決手段】第一のプログラムがRAM10bにロードされ第一のコア1CR1によって実行されているときに、第一のプログラムと同一の第二のプログラムをRAM10bにロードする。第一のプログラムを第一のコア1CR1によって実行する代わりに、第二のプログラムを第二のコア1CR2によって実行する。そして、第二のプログラムが第二のコア1CR2によって実行されるのに伴って第一のプログラムを実行するためのリソースを解放する。【選択図】図4

Description

本発明は、マルチコアのCPUを有する画像処理装置におけるプログラムの再起動の技術に関する。
近年、「MFP(Multi Function Peripherals)」または「画像形成装置」などと呼ばれる、多機能な画像処理装置が普及している。
画像処理装置は、ROM(Read Only Memory)またはHDD(Hard Disk Drive)などからプログラムをRAM(Random Access Memory)上に展開し、このプログラムをCPU(Central Processing Unit)に実行させることによって処理を行う。
複数のCPUを備えた画像処理装置が提案されている。複数のCPUを設けることによって、画像処理装置全体の管理の処理およびジョブに関する処理などを並列して行うことを従来よりも容易に実現することができる。
また、複数のCPUを備えたシステムにおいて一つのCPUに異常が検出された場合にシステム全体のダウンタイムを低減する技術が提案されている。特許文献1に記載される画像形成装置は、ソフトウェア記憶手段と、プロセッサと、処理の進行結果を記憶する記憶手段と、ソフトウェア暴走検出手段と、外部バスと、を有する複数の情報処理装置を備えた画像形成装置である。第一の情報処理装置は、外部バスを介して他の情報処理装置に暴走通知を通知する暴走通知手段と、を有し、暴走通知を取得した第二の情報処理装置が、第一の情報処理装置から進行結果を読み出す情報読み出し手段と、進行結果を記憶手段に記憶し、第一及び第二の情報処理装置以外の情報処理装置に送信する進行結果送信手段と、再起動後の前記第一の情報処理装置に処理を再開させる復帰手段と、を有する。
特開2013−54314号公報
ところで、近年、画像処理装置のCPUとして、マルチコアのCPUが普及しつつある。マルチコアのCPUによると、複数のCPUを設ける場合と同様に、並列処理が従来よりも容易に実行可能となる。
特許文献1に記載される技術によると、一つのCPUに異常が検出された場合に装置を復帰させることができる。
しかし、マルチコアのCPUにおいては、異常の原因がRAMにある場合に、この技術では画像処理装置を復帰させることができないことがある。マルチコアのCPUにおいては、各コアがRAMを共有するからである。したがって、この技術では、マルチコアのCPUにおいてプログラムを安定して実行させることが難しい。
本発明は、このような問題点に鑑み、従来よりも容易にマルチコアのCPUにおいてプログラムを安定して実行させることを、目的とする。
本発明の一形態に係る画像処理装置は、第一のコアおよび第二のコアを有するプロセッサと、前記第一のコアおよび前記第二のコアによって共有されるメモリと、を有し、特定の処理を行うための第一のプログラムが前記メモリにロードされ前記第一のコアによって実行されているときに、前記第一のプログラムと同一の第二のプログラムが前記メモリにロードされ、前記第一のプログラムが前記第一のコアによって実行される代わりに、前記第二のプログラムが前記第二のコアによって実行され、前記第二のプログラムが前記第二のコアによって実行されるのに伴って前記第一のプログラムを実行するための第一のリソースが解放される。前記特定の処理の一例は、画像の入出力を伴うジョブを制御する処理である。
好ましくは、前記第一のリソースは、前記第二のコアが前記第二のプログラムに基づいて前記特定の処理を行うことができる状態になった後に解放される。
または、前記第二のコアが前記状態になるまでに前記第一のコアが前記特定の処理を新たに実行する必要が生じた場合に、前記第一のリソースを解放するのを中止し、前記第二のプログラムを実行するための第二のリソースを解放する。
本発明によると、従来よりも容易にマルチコアのCPUにおいてプログラムの安定化を図ることができる。
画像処理システムの全体的な構成の例を示す図である。 画像処理装置のハードウェア構成の例を示す図である。 スキャンユニットの構成の例を示す図である。 RAMの使用の状況の遷移の例を示す図である。 画像処理装置の機能的構成の例を示す図である。 中止要否判別処理の流れの例を説明するフローチャートである。 制御プログラムによる全体的な処理の流れの例を説明するフローチャートである。 制御プログラムによる全体的な処理の流れの例を説明するフローチャートである。 一部のリソースを引き継ぐ場合の、RAMの使用の状況の例を示す図である。
図1は、画像処理システム3の全体的な構成の例を示す図である。図2は、画像処理装置1のハードウェア構成の例を示す図である。図3は、スキャンユニット10iの構成の例を示す図である。
画像処理システム3は、画像に関する種々の処理を実行するシステムであって、図1に示すように、画像処理装置1、端末装置21、および通信回線28などによって構成される。
画像処理装置1と端末装置21とは、通信回線28を介して通信を行うことができる。通信回線28として、公衆回線、いわゆるLAN(Local Area Network)回線、インターネット、または専用線などが用いられる。
画像処理装置1は、コピー、プリント、ファックス、およびスキャナなどの機能を集約した装置である。一般に、「画像形成装置」、「複合機」、または「MFP(Multi Function Peripheral)」などと呼ばれることがある。
画像処理装置1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、大容量記憶装置10d、タッチパネルディスプレイ10e、操作キーパネル10f、NIC(Network Interface Card)10g、モデム10h、スキャンユニット10i、およびプリントユニット10jなどによって構成される。
タッチパネルディスプレイ10eは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびCPU10aが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ10eは、タッチされた位置を示す信号をCPU10aへ送る。
操作キーパネル10fは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
NIC10gは、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルで端末装置21との間でデータのやり取りを行う。
モデム10hは、ファクシミリ端末との間でG3などのプロトコルでファックスデータをやり取りする。
スキャンユニット10iは、スキャンの対象の用紙(以下、「原稿」と記載する。)から画像を読み取って画像データを生成する。スキャンユニット10iは、図3に示すように、イメージセンサ10i1、読取用スリット10i2、フラットベッド10i3、およびADF(Auto Document Feeder)10i4などによって構成される。
ADF10i4は、原稿がセットされると、それを1枚ずつ読取用スリット10i2へ向けて搬送する。フラットベッド10i3には、原稿がユーザによってセットされる。
イメージセンサ10i1は、ADF10i4に原稿がセットされた場合は、原稿が読取用スリット10i2を通過する際に、原稿をスキャンして画像データを生成する。または、フラットベッド10i3に原稿がセットされた場合は、フラットベッド10i3を走査することによって原稿をスキャンして画像データを生成する。
プリントユニット10jは、スキャンユニット10iによって読み取られた画像のほか、NIC10gまたはモデム10hによって他の装置から取得した画像を用紙に印刷する。
CPU10aは、複数のコアを有するマルチコアCPUである。本実施形態では、CPU10aとして、4つのコア1CRを有するクアッドコアが用いられる。以下、それぞれのコア1CRを「第一のコア1CR1」、「第二のコア1CR2」、…、「第四のコア1CR4」と区別して記載することがある(図4参照)。RAM10bは、4つのコア1CRによって共有される。
ROM10cまたは大容量記憶装置10dには、制御プログラム1PAが記憶されている。制御プログラム1PAは、RAM10bに常駐し、CPU10aのいずれかのコア1CRによって実現される。大容量記憶装置10dとして、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などが用いられる。
制御プログラム1PAは、画像処理装置1の全体的な制御、例えば、ジョブの実行に関する全体的な制御を行う。
図1に戻って、端末装置21は、画像処理装置1のサービスを受けるクライアントである。端末装置21として、パーソナルコンピュータ、スマートフォン、またはタブレットコンピュータなどが用いられる。
図4は、RAM10bの使用の状況の遷移の例を示す図である。図5は、画像処理装置1の機能的構成の例を示す図である。図6は、中止要否判別処理の流れの例を説明するフローチャートである。
次に、制御プログラム1PAによって実現される機能について、図4〜図6を参照しながら説明する。
制御プログラム1PAは、RAM10bにロードされ、4つのコア1CRのうちのいずれか1つによって実行される。
ところで、一般に、プログラムを実行していると、メモリの分断化またはメモリリークが発生する。これにより、エラーが発生しやすくなったり処理が遅くなったりすることがある。そこで、従来、メモリの分断化またはメモリリークを解消するために、プログラムを再起動する。具体的には、プログラムを終了してメモリからプログラムを解放し、プログラムを再度、メモリにロードして実行する。ところが、再起動によるダウンタイムが生じるので、ユーザにとって不便が生じることがある。
しかし、制御プログラム1PAによると、再起動に伴うダウンタイムを従来よりも短くすることができる。その仕組みの概要を、制御プログラム1PAを第一のコア1CR1が実行している場合を例に、図4を参照しながら説明する。
次の通りである。
図4に示す状態Aの通り、RAM10bに、制御プログラム1PAがロードされ、第一のコア1CR1によって実行される。第一のコア1CR1は、適宜、ジョブの制御などを行うとともに、再起動すべきか否かを判別する。
再起動すべきである場合に、第一のコア1CR1は、RAM10bの空いている領域に制御プログラム1PAをロードし、他のコア1CRに実行させる。本例では、図4に示す状態Bのように、第二のコア1CR2に実行させる。これにより、同じ制御プログラム1PAが2つ、並行して実行される。
ただし、第二のコア1CR2は、直ちには、ジョブの制御などを行わず、第一のコア1CR1からのコマンドを待つ。
第一のコア1CR1は、実行中のジョブが完了したら、ジョブの制御などを開始するように第二のコア1CR2に対して指令する。すると、図4に示す状態Cのように、第二のコア1CR2は、待機を終了し、適宜、ジョブの制御などを行うとともに、再起動すべきか否かを判別する。第一のコア1CR1は、制御プログラム1PAを終了する。
そして、図4に示す状態Dのように、第一のコア1CR1が実行していた制御プログラム1PAがRAM10bから解放される。
以下、並行して実行され得る同一の2つの制御プログラム1PAを区別するために、先に起動されるほうを「先制御プログラム1PA1」と記載し、後に起動されるほうを「後制御プログラム1PA2」と記載することがある。
なお、第一のコア1CR1は先制御プログラム1PA1のみを実行し、第二のコア1CR2は後制御プログラム1PA2のみを実行するのが望ましいが、他のプログラムを並行して実行してもよい。
制御プログラム1PAについて、さらに詳細に説明する。制御プログラム1PAによると、図5に示すジョブ制御部101、終了処理部102、および引継処理部103などが実現される。
ジョブ制御部101は、外部からの入力に従ってジョブを生成し、キューに登録する。そして、登録順および各ハードウェアの稼働の状況などに応じて、各ジョブを各ハードウェアに実行させる。
例えば、ユーザが原稿の用紙をセットしコピーのコマンドを入力した場合は、ジョブ制御部101は、コピージョブを生成し、キューに登録する。そして、このコピージョブの順番が訪れると、このコピージョブの実行を開始する。
または、ユーザが原稿の用紙をセットしスキャンのコマンドを入力した場合は、ジョブ制御部101は、スキャンジョブを生成し、キューに登録する。そして、このスキャンジョブの順番が訪れると、このスキャンジョブの実行を開始する。
または、ユーザが原稿の用紙をセットしファックスによる送信のコマンドを入力した場合は、ジョブ制御部101は、ファックス送信ジョブを生成し、キューに登録する。そして、このファックス送信ジョブの順番が訪れると、このファックス送信ジョブの実行を開始する。
または、PDL(Page Description Language)で記述された印刷データおよびプリントのコマンドが端末装置21から送信されてきた場合は、ジョブ制御部101は、プリントジョブを生成し、キューに登録する。そして、このプリントジョブの順番が訪れると、このプリントジョブの実行を開始する。
または、ファックスデータがファックス端末から送信されてきた場合は、ジョブ制御部101は、ファックス受信ジョブを生成し、キューに登録する。そして、このファックス受信ジョブの順番が訪れると、このファックス受信ジョブの実行を開始する。
これらのジョブを実行する際に、ジョブ制御部101は、RAM10bの空き領域に、ジョブに応じて作業領域を確保し、適宜、データを記憶させる。また、適宜、作業領域を解放する。作業領域が確保することができない場合は、他の処理が終わって空き領域ができるまでジョブの実行を待つ。
また、ジョブの種類またはジョブの状況などに応じて、他のコア1CRにジョブを割り振って実行させてもよい。意図的に特定のコア1CRに特定のジョブを割り振って実行させることもある。コア1CRおよびRAM10bのこれらの制御は、公知の方法によって行われる。
なお、ジョブ制御部101は、この制御プログラム1PAが先制御プログラム1PA1として用いられているときに機能する。
終了処理部102は、再起動タイミング検知部121、プログラム起動処理部122、中止要否判別部123、リソース解放処理部124、および開始指令部125などによって構成される。終了処理部102は、この制御プログラム1PAが先制御プログラム1PA1として働く場合に機能する。そして、先制御プログラム1PA1を終了し、後制御プログラム1PA2にジョブの制御を引き継がせるための処理を、次のように行う。
再起動タイミング検知部121は、制御プログラム1PAを再起動すべきタイミングが訪れたことを検知する。例えば、次の(1)〜(5)の場合に、このタイミングが訪れたことを検知する。(1)ジョブ制御部101による処理にエラーが発生した場合。(2)実行待ちのジョブがなくなった場合。(3)この制御プログラム1PAを起動してから所定の時間が経過した場合。(4)省電力モードに移行することになった場合または省電力モードに移行に移行した場合。(5)処理の量が所定の量以上であるジョブを終了した場合。
ジョブの量は、印刷する枚数、スキャンする枚数、取り扱う画像の解像度またはカラーであるかモノクロであるか、などに応じて、予め用意された算出方法によって求めればよい。算出方法は、公知のものを用いればよい。
プログラム起動処理部122は、この制御プログラム1PA(先制御プログラム1PA1)を終了することなく、新たに制御プログラム1PA(後制御プログラム1PA2)を起動させる。すなわち、RAM10bの空き領域に新たに制御プログラム1PAを後制御プログラム1PA2としてロードする。そして、他のコア1CRにこれを実行させる。以下、第二のコア1CR2が後制御プログラム1PA2を実行する場合を例に説明する。
すると、第二のコア1CR2は、後制御プログラム1PA2に従って処理を開始する。後制御プログラム1PA2によると、まずは、ジョブ制御部101ないし引継処理部103のうちの引継処理部103が動作する。ジョブ制御部101および終了処理部102は未だ動作せず、開始の指令を受けるまで待機する。
したがって、この時点においては、先制御プログラム1PA1および後制御プログラム1PA2が並行に実行されているが、第一のコア1CR1および先制御プログラム1PA1によってジョブ制御部101および終了処理部102のみが動作し、第二のコア1CR2および後制御プログラム1PA2によって引継処理部103のみが動作している。
中止要否判別部123は、後制御プログラム1PA2の起動が開始された後、これを中止すべきか継続すべきかを、例えば図6に示す方法で判別する。
中止要否判別部123は、カウンタCtを有している。カウンタCtには、制御プログラム1PA(本例では、先制御プログラム1PA1)が起動しジョブ制御部101が動作し始めた直後に「0」がセットされる。
中止要否判別部123は、後制御プログラム1PA2の起動が開始された後、ジョブ制御部101によってジョブが新たに受け付けられるごとに、そのジョブの種類または条件に応じて、中止すべきか継続すべきかを図6に示す手順で判別する。
そのジョブがファックス送信ジョブまたはファックス受信ジョブである場合は(図6の#701でYes)、中止要否判別部123は、起動を継続すべきであると判別する(#704)。
そのジョブがコピージョブまたはスキャンジョブである場合、つまり、スキャンユニット10iを使用するジョブである場合は(#701でNo、#702でYes)、中止要否判別部123は、ADF10i4を使用するか否かによって次のように判別する。
ADF10i4を使用しない場合は(#703でNo)、中止要否判別部123は、起動を継続すべきであると判別する(#704)。
一方、ADF10i4を使用する場合は(#703でYes)、中止要否判別部123は、起動を中止すべきであると判別する(#705)。さらに、カウンタCtに「1」を加算する(#706)。
「カウンタCt」は、起動を中止すべきであると判別した回数をカウントするためのカウンタである。カウンタCtには、この制御プログラム1PA(本例では、先制御プログラム1PA1)の起動の際に「0」がセットされる。
なお、ADF10i4を使用するか否かは、原稿がADF10i4およびフラットベッド10i3のどちらにセットされたのかによって判別することができる。前者の場合は、ADF10i4を使用すると判別し、後者の場合はADF10i4を使用しないと判別すればよい。
そのジョブがプリントジョブである場合は(#701でNo、#702でNo)、中止要否判別部123は、起動を中止すべきであると判別し(#705)、カウンタCtに「1」を加算する(#706)。
なお、カウンタCtが「10」に達している場合は、中止要否判別部123は、図6に示した判別の処理をスキップする。そして、ジョブの種類およびジョブの状況に関わらず、起動を継続すべきであると判別する。
リソース解放処理部124は、起動を中止すべきであると中止要否判別部123によって判別された場合に、後制御プログラム1PA2の起動のためのリソースを解放する。具体的には、RAM10bの中の、後制御プログラム1PA2を起動するための作業領域および後制御プログラム1PA2を記憶するための領域を解放する。さらに、第二のコア1CR2が後制御プログラム1PA2を実行し始めている場合は、これを中止させる。
ところで、上述の通り、第二のコア1CR2によって後制御プログラム1PA2が実行され始めると、引継処理部103が開始するが、ジョブ制御部101および終了処理部102は待機する。
開始指令部125は、第一のコア1CR1が管理するジョブがすべて完了しており、かつ、第二のコア1CR2によって引継処理部103が開始すると、第二のコア1CR2に対して開始コマンド41を与える。
第二のコア1CR2において、引継処理部103は、開始コマンド41が与えられると、画像処理装置1の全体的な制御を第一のコア1CR1から引き継ぐ処理を次のように行う。
引継処理部103は、待機解除部131およびリソース解放処理部132などによって構成される。
待機解除部131は、開始コマンド41が与えられると、ジョブ制御部101および終了処理部102の待機を解除し、ジョブ制御部101および終了処理部102による処理を開始させる。
リソース解放処理部132は、先制御プログラム1PA1のためのリソースを解放する。具体的には、第一のコア1CR1に先制御プログラム1PA1を終了させる。RAM10bの中の、先制御プログラム1PA1が記憶されている領域を解放する。先制御プログラム1PA1の作業領域が残っていれば、これも解放する。
図7および図8は、制御プログラム1PAによる全体的な処理の流れの例を説明するフローチャートである。
次に、画像処理装置1の電源がオンになりまたはリセットされてから制御プログラム1PAの再起動が完了するまでの全体的な処理の流れを、図7および図8のフローチャートを参照しながら説明する。
画像処理装置1の電源がオンになりまたはリセットされると、制御プログラム1PAが起動し、第一のコア1CR1は、この制御プログラム1PAに基づいて、図7および図8に示す手順で処理を実行する。この制御プログラム1PAは、先制御プログラム1PA1として用いられる。
今回の起動は、電源のオンまたはリセットによるものなので(#711でYes)、第一のコア1CR1は、通常通りのセットアップを行う(#712)。具体的には、ハードウェアの初期化、ドライバの起動、および種々のデータのロードなどを行う。さらに、本実施形態では、カウンタCtに「0」をセットする(#716)。
第一のコア1CR1は、ジョブの実行に関する制御など、画像処理装置1の全体的な制御を適宜、実行する(#717)。さらに、所定の事項(例えば、前に述べた(1)〜(5))が起きたか否かを監視することによって、再起動のタイミングが訪れたか否かの検知を試みる(#718)。
再起動のタイミングが訪れたことを検知したら(#719でYes)、第一のコア1CR1は、制御プログラム1PAの起動を開始させる(#720)。なお、この制御プログラム1PAは、後制御プログラム1PA2として用いられる。
第二のコア1CR2および後制御プログラム1PA2によるセットアップが完了するまでに、第一のコア1CR1が新たなジョブを生成することがある。
第一のコア1CR1は、新たなジョブを生成したら(#721でYes)、再起動(後制御プログラム1PA2の起動)を中止すべきか継続すべきかを判別する(#723)。判別の方法は、前に図6で説明した通りである。
ただし、カウンタCtの値が10以上である場合、つまり、中止すべきであると10回以上判別したことがある場合は(#722でYes)、第一のコア1CR1は、図6に示した方法に依らず、継続すべきであると判別する(#724)。
第一のコア1CR1は、中止すべきであると判別すると(#725でYes)、後制御プログラム1PA2の起動のためのリソースを解放する(#726)。
そして、このジョブが完了したら(#727でYes)、ステップ#720に戻って、第一のコア1CR1は、後制御プログラム1PA2の起動を一からやり直す。ステップ#717に戻って、再起動のタイミングの検知からやり直してもよい。
継続すべきであると判別した場合は(#725でNo)、第一のコア1CR1は、第二のコア1CR2および後制御プログラム1PA2によるジョブ等の制御の準備が整い(#728でYes)、かつ、すべてのジョブが完了していれば(#729でYes)、開始コマンド41を第二のコア1CR2に与える(#730)。
一方、第二のコア1CR2も、後制御プログラム1PA2に基づいて、図7および図8に示す手順で処理を実行する。
後制御プログラム1PA2の起動は、電源のオンまたはリセットによるものはなく、再起動のためのものなので(#711でNo)、第二のコア1CR2は、一部の処理(例えば、特定のハードウェアの初期化または特定のドライバの起動)をスキップしてセットアップを行う(#713)。セットアップ後、開始コマンド41が与えられるのを待つ。
そして、第一のコア1CR1から開始コマンド41を与えられると(#714でYes)、第二のコア1CR2は、第一のコア1CR1による先制御プログラム1PA1の実行を終了させ、先制御プログラム1PA1を実行するためのリソースを解放する(#715)。さらに、カウンタCtに「0」をセットし(#716)、画像処理装置1の全体的な制御を適宜、実行し(#717)、再起動のタイミングの検知を試みる(#718)。ステップ#716以降の処理は、電源のオンまたはリセットによる起動の場合と同様である。
また、ステップ#716以降は、この制御プログラム1PAの役割が、後制御プログラム1PA2から先制御プログラム1PA1に変わる。そして、上記の(1)〜(5)のいずれかの条件を満たしたときに、制御プログラム1PAをRAM10bにロードし、他のコア1CR(第一のコア1CR1、第三のコア1CR3、または1CR4)に実行させる。このように、制御プログラム1PAが、次から次に別々のコア1CRによって実行される。
つまり、N番目に制御プログラム1PA(以下、「制御プログラム1PAb」と記載する。)が起動すると、(N−1)番目に起動された同一の制御プログラム1PA(以下、「制御プログラム1PAa」と記載する。)が終了し、制御プログラム1PAaのためのリソースが解放される。その後、一定の要件が満たされた場合に、同一の制御プログラム1PA(以下、「制御プログラム1PAc」と記載する。)が起動される。そして、制御プログラム1PAcの起動後、制御プログラム1PAbが終了し制御プログラム1PAbのリソースが解放される。
本実施形態によると、従来よりも容易にマルチコアのCPUにおいてプログラムの安定化を図ることができる。しかも、第二のコア1CR2および後制御プログラム1PA2によるジョブの制御が可能になった時点で先制御プログラム1PA1のリソースを解放するので、ダウンタイムを軽減することができる。
図9は、一部のリソースを引き継ぐ場合の、RAM10bの使用の状況の例を示す図である。
本実施形態では、先制御プログラム1PA1のためのリソースをすべて解放したが、図9に示すように、一部のリソースを継続し、後制御プログラム1PA2において使用できるようにしてもよい。つまり、RAM10bに展開した制御プログラム1PAのイメージのみを再構築してもよい。例えば、タッチパネルディスプレイ10eに表示させる画面のデータが記憶されている領域または種々の事項の設定値のデータが記憶されている領域などを残し、第二のコア1CR2に引き継いでもよい。この場合は、第一のコア1CR1は、再起動が必要になった際に、これらの領域のアドレスを第二のコア1CR2へ通知すればよい。または、これらのデータを所定の領域にコピーし、第二のコア1CR2へ引き継いでもよい。
本実施形態では、中止要否判別部123は、プリントジョブが新たに発生し、またはADFを使用するコピージョブまたはスキャンジョブが発生した場合に、制御プログラム1PAの再起動を中止すべきと判別したが、ジョブの種類および条件に関わらず中止すべきと判別してもよい。または、画像処理装置1のスペックまたは環境などに応じて、他の種類のジョブの発生した場合に、中止すべきと判別してもよい。
省電力モードの最中に、先制御プログラム1PA1を終了し後制御プログラム1PA2を起動した場合は、第二のコア1CR2は、第一のコア1CR1から開始コマンド41を与えられてもジョブ制御部101および終了処理部102を直ちには開始しないのが望ましい。省電力モードが解除してから、ジョブ制御部101および終了処理部102を開始するのが望ましい。そして、後制御プログラム1PA2が起動してから経過した時間を、省電力モードが解除してから計るのが望ましい。
本実施形態では、中止要否判別部123は、カウンタCtの値が10以上になったらジョブの種類に関わらず、再起動を継続すべきと判別したが、カウンタCtの代わりに、制御プログラム1PAを再起動すべきタイミングが訪れてからの時間を計るタイマを設け、このタイマによって所定の時間が計時されたら、無条件に再起動を継続すべきと判別してもよい。
第一のコア1CR1が制御するジョブにエラーが発生して後制御プログラム1PA2を起動する場合は、第二のコア1CR2は、エラーに伴って再起動を行う旨のメッセージをタッチパネルディスプレイ10eに表示してもよい。第二のコア1CR2および後制御プログラム1PA2によるジョブの制御が開始したら、第二のコア1CR2は、再起動を完了した旨のメッセージをタッチパネルディスプレイ10eに表示してもよい。表示の処理は、後制御プログラム1PA2に記述しておけばよい。
本実施形態では、4つのコア1CRからなるマルチコアプロセッサをCPU10aとして用いたが、他の個数(例えば、2つ、6つ、または8つなど)のコア1CRからなるマルチコアプロセッサを用いてもよい。
その他、画像処理システム3、画像処理装置1の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
1 画像処理装置
10a CPU(プロセッサ)
10b RAM(メモリ)
1CR1 第一のコア
1CR2 第二のコア
1PA1 先制御プログラム(第一のプログラム)
1PA2 後制御プログラム(第二のプログラム)

Claims (12)

  1. 少なくとも第一のコアおよび第二のコアを有するプロセッサと、
    前記第一のコアおよび前記第二のコアによって共有されるメモリと、
    を有し、
    特定の処理を行うための第一のプログラムが前記メモリにロードされ前記第一のコアによって実行されているときに、前記第一のプログラムと同一の第二のプログラムが前記メモリにロードされ、
    前記第一のプログラムが前記第一のコアによって実行される代わりに、前記第二のプログラムが前記第二のコアによって実行され、
    前記第二のプログラムが前記第二のコアによって実行されるのに伴って前記第一のプログラムを実行するための第一のリソースが解放される、
    ことを特徴とする画像処理装置。
  2. 前記特定の処理は、画像の入出力を伴うジョブを制御する処理である、
    請求項1に記載の画像処理装置。
  3. 前記第一のリソースは、前記第二のコアが前記第二のプログラムに基づいて前記特定の処理を行うことができる状態になった後に解放される、
    請求項1または請求項2に記載の画像処理装置。
  4. 前記第二のコアが前記状態になるまでに前記第一のコアが前記特定の処理を新たに実行する必要が生じた場合に、前記第一のリソースを解放するのを中止し、前記第二のプログラムを実行するための第二のリソースを解放する、
    請求項1ないし請求項3のいずれかに記載の画像処理装置。
  5. 前記特定の処理は、他の装置からTCP/IPの通信によって受信した画像をプリントするプリントジョブ、ADF(Auto Document Feeder)を使用して画像をスキャンし用紙に複写する第一のコピージョブ、前記ADFを使用せずに画像をスキャンし用紙に複写する第二のコピージョブ、前記ADFを使用して画像をスキャンし画像データを生成する第一のスキャンジョブ、前記ADFを使用せずに画像をスキャンし画像データを生成する第二のスキャンジョブ、他の装置から電話回線を介して受信した画像をプリントするファックス受信ジョブ、または画像をスキャンして電話回線を介して他の装置へ送信するファックス送信ジョブを制御する処理であり、
    前記第二のコアが前記状態になるまでに、前記第一のコアが前記特定の処理として、前記プリントジョブ、前記第一のコピージョブ、または前記第一のスキャンジョブを制御する処理を新たに実行する必要が生じた場合に、前記第一のリソースを解放するのを中止し、前記第二のプログラムを実行するための第二のリソースを解放する、
    請求項1ないし請求項3のいずれかに記載の画像処理装置。
  6. 新たに実行する必要が生じた前記特定の処理が完了した後、前記第二のプログラムが前記メモリにロードされる、
    請求項4または請求項5に記載の画像処理装置。
  7. 前記第二のプログラムは、前記第一のコアおよび前記第一のプログラムによる前記特定の処理にエラーが発生した場合、当該画像処理装置が前記特定の処理を実行していない場合、前記第一のプログラムが実行され始めてから所定の時間が経過した場合、当該画像処理装置が省電力モードに切り換わった場合、または所定の量以上である前記特定の処理を実行した場合に、前記メモリにロードされる、
    請求項1ないし請求項6のいずれかに記載の画像処理装置。
  8. 前記第一のリソースを解放する際に、前記第一のコアおよび前記第一のプログラムが使用する、ハードウェアに関する設定値のデータは、前記メモリに残され、前記第二のコアおよび前記第二のプログラムによって使用される、
    請求項1ないし請求項7のいずれかに記載の画像処理装置。
  9. 前記第二のコアが前記状態になるまでに前記第一のコアが前記特定の処理を新たに実行する必要が所定の複数回以上生じた場合または新たに生じた後所定の時間が経過した場合は、前記第一のリソースを解放するのを中止することなく、前記第二のプログラムがロードされ前記第二のコアによって実行される、
    請求項6に記載の画像処理装置。
  10. 前記第一のコアおよび前記第一のプログラムによる前記特定の処理にエラーが発生した場合に、前記第二のコアによって第一のメッセージをディスプレイに表示させ、前記第二のコアが前記第二のプログラムに基づいて前記特定の処理を行うことができる状態になった後に第二のメッセージを前記ディスプレイに表示させる、
    請求項7に記載の画像処理装置。
  11. 少なくとも第一のコアおよび第二のコアを有するプロセッサと、前記第一のコアおよび前記第二のコアによって共有されるメモリと、を有する画像処理装置において、特定の処理を行うための第一のプログラムを再起動するプログラム再起動方法であって、
    前記第一のプログラムが前記メモリにロードされ前記第一のコアによって実行されているときに、前記第一のプログラムと同一の第二のプログラムを前記メモリにロードし、
    前記第一のプログラムを前記第一のコアによって実行する代わりに、前記第二のプログラムを前記第二のコアによって実行し、
    前記第二のプログラムを前記第二のコアによって実行するのに伴って前記第一のプログラムを実行するためのリソースを解放する、
    ことを特徴とするプログラム再起動方法。
  12. 複数のコアを有しかつ前記複数のコアがメモリを共有するように構成されたプロセッサに用いられるコンピュータプログラムであって、
    前記複数のコアのうちのいずれかに、
    前記複数のコアのうちの他のいずれかによって実行される、当該コンピュータプログラムと同一である第二のコンピュータプログラムのためのリソースを解放する第一の処理を実行させ、
    特定の処理が行われるように入力装置または出力装置を制御する第二の処理を実行させ、
    当該コンピュータプログラムと同一のコンピュータプログラムである第三のコンピュータプログラムを前記メモリにロードし前記複数のコアのうちの他のいずれかに実行させる第三の処理を実行させる、
    ことを特徴とするコンピュータプログラム。
JP2014219936A 2014-10-29 2014-10-29 画像処理装置、プログラム再起動方法、およびコンピュータプログラム Active JP6464663B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014219936A JP6464663B2 (ja) 2014-10-29 2014-10-29 画像処理装置、プログラム再起動方法、およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014219936A JP6464663B2 (ja) 2014-10-29 2014-10-29 画像処理装置、プログラム再起動方法、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2016086377A true JP2016086377A (ja) 2016-05-19
JP6464663B2 JP6464663B2 (ja) 2019-02-06

Family

ID=55973407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014219936A Active JP6464663B2 (ja) 2014-10-29 2014-10-29 画像処理装置、プログラム再起動方法、およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6464663B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223035A (ja) * 1996-02-19 1997-08-26 Toshiba Corp 計算機システム
JP2002318710A (ja) * 2001-04-23 2002-10-31 Nec Corp 複合事象監視システム、複合事象監視方法及びプログラム
JP2010000716A (ja) * 2008-06-20 2010-01-07 Oki Data Corp 電子制御装置
JP2011166564A (ja) * 2010-02-12 2011-08-25 Brother Industries Ltd 画像処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223035A (ja) * 1996-02-19 1997-08-26 Toshiba Corp 計算機システム
JP2002318710A (ja) * 2001-04-23 2002-10-31 Nec Corp 複合事象監視システム、複合事象監視方法及びプログラム
JP2010000716A (ja) * 2008-06-20 2010-01-07 Oki Data Corp 電子制御装置
JP2011166564A (ja) * 2010-02-12 2011-08-25 Brother Industries Ltd 画像処理装置

Also Published As

Publication number Publication date
JP6464663B2 (ja) 2019-02-06

Similar Documents

Publication Publication Date Title
US10110764B2 (en) Image forming apparatus that shifts into different power saving states and control method thereof
JP5991104B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6648877B2 (ja) 画像形成装置及びその制御方法、プログラム
US8854648B2 (en) Printing system and printing control apparatus
US8543677B2 (en) Communication control device, method, and computer readable medium allowing an information processing device to be in a power saving mode for an extended period and allowing an application part to continue functioning
US10097626B2 (en) Cooperation system
JP2014126924A (ja) 情報処理装置、プログラム、情報処理ステム
RU2694281C1 (ru) Устройсво формирования изображения, способ обработки информации и программа
US9026576B2 (en) Image processing device, job processing method, and program
JP2007306143A (ja) 画像処理装置
JP5141743B2 (ja) 画像処理装置
JP2013190950A (ja) 制御装置、及び起動方法
US9917968B2 (en) Image processing device and terminal device using application programming interface corresponding to specific function
US20170187889A1 (en) Information processing apparatus, information system, information processing method, and storage medium
JP6464663B2 (ja) 画像処理装置、プログラム再起動方法、およびコンピュータプログラム
US9047552B2 (en) Forming system and image forming apparatus that generate image log data to server
JP5332923B2 (ja) 画像形成装置
US20130003133A1 (en) Image reading control apparatus and image reading method for executing image reading processing based on a reading instruction
JP2010252079A (ja) 画像形成装置のジョブ登録及びその高速起動
JP6842640B2 (ja) 管理サーバーおよびサーバープログラム
JP5669709B2 (ja) 動作制御プログラム及び情報処理装置
JP2016117195A (ja) 画像処理装置、画像処理装置の制御方法及び画像処理装置の制御プログラム
JP2017207692A (ja) 画像形成装置及び画像形成装置の制御方法
JP6464657B2 (ja) 画像処理装置、プログラム更新方法、およびコンピュータプログラム
JP2015213262A (ja) 情報処理装置及びその制御方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180821

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181224

R150 Certificate of patent or registration of utility model

Ref document number: 6464663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150