(57)【特許請求の範囲】
【請求項１】
システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを、汎用ＯＳ上で実行可能な装置であって、
前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる制御部を有する装置。
【請求項２】
前記制御部は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項１に記載の装置。
【請求項３】
前記装置は画像形成装置であり、
前記制御部は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項１に記載の装置。
【請求項４】
システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを汎用ＯＳ上で実行可能な装置において実行される、前記メカ制御アプリケーションプログラムであって、前記装置に、
前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる手順を実行させるプログラム。
【請求項５】
前記手順は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項４に記載のプログラム。
【請求項６】
前記装置は画像形成装置であり、
前記手順は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項４に記載のプログラム。
【請求項７】
請求項４〜６のいずれか一項に記載のプログラムを記録した前記装置により読み取り可能な記憶媒体。
【請求項８】
システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを、汎用ＯＳ上で実行可能な装置における方法であって、
前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる段階を有する方法。
【請求項９】
前記段階は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項８に記載の方法。
【請求項１０】
前記装置は画像形成装置であり、
前記段階は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサーにタスクを実行させる、装置、プログラム、およびプログラムを記録した記録媒体、ならびに方法に関する。
【背景技術】
【０００２】
画像形成装置の制御は、ユーザーインターフェース、ネットワーク、印刷ジョブの管理、印刷処理の制御等であるシステム制御と、画像形成装置の機械部品の制御等であるメカ制御とに区分することができる。一般的に、システム制御はメインのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で、メカ制御は専用のマイクロプロセッサで実行する構成がとられる。一方、昨今は、ＣＰＵの性能向上、およびコストダウンの要求等から、システム制御とメカ制御とを単一のＣＰＵで実行することが求められている。
【０００３】
しかし、システム制御とメカ制御とを単一のＣＰＵで実行する場合、システム制御に必要な機能性と、メカ制御に必要なリアルタム性とを両立する必要があるが、汎用ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を用いた制御ではメカ制御のリアルタイム性を確保することが困難という問題がある。
【０００４】
下記特許文献１に開示された先行技術においては、マルチコアプラットホームにおいて、優先順位の最も高い作業スレッドを次に実行するコアを、コアの負荷状況に基づいて決定する。そして、決定したコアに、当該作業スレッドを実行しているコアから、当該作業スレッドの実行と並行して、あらかじめ当該作業スレッドを実行するために必要なデータを転送する。これにより、周期的に実行する作業スレッドのソフトリアルタイム性を確保するという。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１２５５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、マルチコア環境におけるリアルタイム性の阻害要因は複数あり、上記先行技術は、タスクマイグレーション後の作業スレッドの実行指示から実際の実行開始までのタイムラグによるソフトリアルタイム性の低下を抑止できるが、それ以外の要因によるリアルタイム性の低下を抑止できず、メカ制御に要求されるリアルタイム性を確保できないという問題がある。
【０００７】
前述の問題は、画像形成装置に限らず、システム制御とメカ制御とを単一のＣＰＵで実行する装置全般に共通するものであった。
【０００８】
本発明は、このような問題を解決するためになされたものである。すなわち、マルチコアプロセッサーにおいて汎用ＯＳを用いる場合に、システム制御の機能性を確保しつつ、メカ制御に要求されるリアルタイム性を確保可能な装置を提供する。
【課題を解決するための手段】
【０００９】
本発明の上記課題は、以下の手段によって解決される。
【００１０】
（１）システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを、汎用ＯＳ上で実行可能な装置であって、前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる制御部を有する装置。
【００１１】
（２）前記制御部は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（１）に記載の装置。
【００１２】
（３）前記装置は画像形成装置であり、前記制御部は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（１）に記載の装置。
【００１３】
（４）システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを汎用ＯＳ上で実行可能な装置において実行される、前記メカ制御アプリケーションプログラムであって、前記装置に、前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる手順を実行させるプログラム。
（５）前記手順は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（４）に記載のプログラム。
（６）前記装置は画像形成装置であり、前記手順は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（４）に記載のプログラム。
【００１４】
（７）上記（４）〜（６）のいずれかに記載のプログラムを記録した前記装置により読み取り可能な記憶媒体。
【００１５】
（８）システム制御を行うためのシステム制御タスクを生成するシステム制御アプリケーションプログラムと、メカ制御を行うためのメカ制御アプリケーションプログラムとを、汎用ＯＳ上で実行可能な装置における方法であって、前記メカ制御に関し、周期的に所定の処理を行うための同一の周期タスクを複数生成し、生成した複数の周期タスクを、複数のコアを有するマルチコアプロセッサーの少なくともいずれか二以上のコアにそれぞれ実行させる段階を有する方法。
（９）前記段階は、前記マルチコアプロセッサーの負荷の状況に基づいて生成する周期タスクの数をさらに決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（８）に記載の方法。
（１０）前記装置は画像形成装置であり、前記段階は、前記周期タスクの数を、前記画像形成装置の動作モードに基づいて決定し、決定した数の前記周期タスクを生成し、生成した周期タスクを前記複数のコアに実行させる、上記（８）に記載の方法。
【発明の効果】
【００１６】
同一の周期タスクを複数生成し、マルチコアプロセッサーの複数のコアにそれぞれ実行させる。これにより、一のコアにおいて周期タスクのリアルタイム性が阻害されても他のコアにおいて周期タスクのリアルタイム性が維持されるため、マルチコアプロセッサーにおいて汎用ＯＳを用いる場合に、システム制御の機能性を確保しつつ、メカ制御に要求されるリアルタイム性を確保することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態に係る画像形成装置のブロック図である。
【図２】マルチコアプロセッサー上で動作するＯＳと、ＯＳ上で動作するシステム制御アプリケーションおよびメカ制御アプリケーションの構成を示す説明図である。
【図３】画像形成装置の例としてのタンデム型カラー画像形成装置の構成図である。
【図４】従来の装置におけるタスクの実行のスケジューリングに関する説明図である。
【図５】周期タスクのデッドラインオーバーに関する説明図である。
【図６】本発明の第一実施形態に係る画像形成装置における、タスクのスケジューリング結果を示す説明図である。
【図７】本発明の第１実施形態に係る、図６に記載のスケジュールが実行される様子を示す説明図である。
【図８】本発明の第１実施形態に係る、マルチコアプロセッサーにタスクを実行させる方法のフローチャートである。
【図９】本発明の第２実施形態に係る、マルチコアプロセッサーにタスクを実行させる方法のフローチャートである。
【発明を実施するための形態】
【００１８】
（第１実施形態）
以下、図面を参照して、本発明の第１実施形態に係る、マルチコアプロセッサーにタスクを実行させる、装置、プログラム、およびプログラムを記録した記録媒体、ならびに方法について詳細に説明する。
【００１９】
図１は、本発明に係る装置の一例である画像形成装置のブロック図である。
【００２０】
画像形成装置１００は、マルチコアプロセッサー１１０、メインメモリ１２０、不揮発メモリ１３０、画像処理部１４０、ネットワーク部１５０、ユーザーインターフェース１６０、画像入力装置１７０、および画像出力装置１８０を有する。マルチコアプロセッサー１１０、メインメモリ１２０、および不揮発メモリ１３０は、メインメモリ１２０または不揮発メモリ１３０に記憶された、後述するメカ制御プログラムとともに制御部を構成する。
【００２１】
画像入力装置１７０は、例えばスキャナーであり、原稿台の所定の読み取り位置にセットされた原稿に蛍光ランプ等の光源で光を当て、その反射光をＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサー等の撮像装置で光電変換して、その電気信号から画像データを生成する。
【００２２】
画像出力装置１８０は、例えばエンジンであり、電子写真方式により帯電、露光、現像、転写、および定着の各工程を経て、用紙に画像データに基づく画像形成を行い出力する。
【００２３】
画像処理部１４０は、ネットワーク部１５０により受信された印刷ジョブに含まれる印刷データのレイアウト処理およびラスタライズ処理を行い、画像データを生成する。印刷ジョブとは、画像形成装置１００に対する印刷命令の総称であり、印刷データおよび印刷設定が含まれる。印刷データとは、印刷の対象である文書のデータであり、印刷データには、例えば、イメージデータ、ベクタデータ、テキストデータといった各種データが含まれる。具体的には、印刷データは、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データ、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）データまたはＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）データであり得る。印刷設定とは、用紙への画像形成に関する設定および印刷物の後処理に関する設定であり、例えば、グレースケールまたはフルカラー、２ｉｎ１、両面印刷、ステープラー、穴あけ、および折り等の各種設定が含まれる。
【００２４】
ネットワーク部１５０は、画像形成装置１００と外部機器との間で通信を行うためのインターフェースであり、イーサネット（登録商標）、ＳＡＴＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＵＳＢ、ＩＥＥＥ１３９４等の規格によるネットワークインターフェースや、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１等の無線通信インターフェース等の各種ローカル接続インターフェース等が用いられる。
【００２５】
ユーザーインターフェース１６０は、各種設定入力を行うタッチパネル、コピー枚数等を設定するテンキー、動作の開始を指示するスタートキー、動作の停止を指示するストップキー、各種設定条件を初期化するリセットキー等により構成されることができる。
【００２６】
マルチコアプロセッサー１１０は、複数のコアが集積されたプロセッサーである。コアは、演算処理を行うための論理回路およびキャッシュメモリを有する。
【００２７】
メインメモリ１２０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により構成され、マルチコアプロセッサー１１０により実行されるプログラムおよび各種データを一時的に記憶する。
【００２８】
不揮発メモリは、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）により構成され、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、システム制御アプリケーション（システム制御アプリケーションプログラム）、およびメカ制御アプリケーション（メカ制御アプリケーションプログラム）を含む各種プログラムおよび各種データを記憶する。ＯＳはコンピュータにおいて、ハードウェアを抽象化したインターフェースをユーザーまたはアプリケーションソフトウェアに提供するソフトウェアであり、ＯＳがマルチコアプロセッサー１１０上で動作する。ＯＳとしては、汎用ＯＳであるＬｉｎｕｘ（登録商標）を利用することができる。
【００２９】
図２は、マルチコアプロセッサー上で動作するＯＳと、ＯＳ上で動作するシステム制御アプリケーションおよびメカ制御アプリケーションの構成を示す説明図である。
【００３０】
システム制御アプリケーション２３０は、画像処理部１４０、ネットワーク部１５０、ユーザーインターフェース１６０、および周辺機器等の制御、ならびに印刷ジョブの管理をマルチコアプロセッサー１１０（すなわち、各コア１１１〜１１４）に実行させるためのプログラムである。以下、システム制御アプリケーション２３０による制御および管理をシステム制御と称する。
【００３１】
メカ制御アプリケーション２２０は、画像入力装置１７０および画像出力装置１８０の機械部品であるメカ部の制御および管理をマルチコアプロセッサー１１０に実行させるためのプログラムである。以下、メカ制御アプリケーション２２０による管理および制御を、メカ制御と称する。メカ部には、例えば、用紙の搬送を行うためのモーター、センサー、クラッチ、およびソレノイドが含まれる。メカ制御アプリケーションは、例えば、用紙の搬送を行うための、モーター、センサー、クラッチ、およびソレノイドの制御や、用紙の搬送の際のこれらの構成部品の異常およびこれらの構成部品による用紙の搬送の異常を検出する。
【００３２】
システム制御アプリケーション２３０およびメカ制御アプリケーション２２０は、それぞれシステム制御およびメカ制御をマルチコアプロセッサー１１０に実行させるためのタスクを生成する。ＯＳ２１０は、システム制御アプリケーション２３０およびメカ制御アプリケーション２２０により生成されるタスクをマルチコアプロセッサー１１０に実行させるための実行順序、およびタスクを実行させるコア１１１〜１１４を決定し、決定したコア１１１〜１１４にタスクを割り当てて実行させる。以下、システム制御を行うためのタスクをシステム制御タスクと、メカ制御を行うためのタスクをメカ制御タスクと称する。
【００３３】
図３は、画像形成装置の例としてのタンデム型カラー画像形成装置の構成図である。タンデム型カラー画像形成装置は、４組の画像形成部によりカラー画像形成を行う。
【００３４】
原稿台上に載置された原稿は画像入力装置１７０の査露光装置の光学系により画像が走査露光され、ラインイメージセンサーに読み込まれ、光電変換された画像情報信号は、画像処理部１４０において、アナログ処理、Ａ／Ｄ変換、シェーディング補正、画像圧縮処理等を行った後、画像形成部の光書込部に入力される。
【００３５】
４組の画像形成部はイエロー（Ｙ）色の画像を形成する画像形成部１１Ｙ、マゼンタ（Ｍ）色の画像を形成する画像形成部１１Ｍ、シアン（Ｃ）色の画像を形成する画像形成部１１Ｃ、黒（Ｋ）色の画像を形成する画像形成部１１Ｋであり、それぞれ共通する符号１１の後に形成する色をあらわす符号Ｙ、Ｍ、Ｃ、Ｋを付して表記する。
【００３６】
画像形成部１１Ｙは、感光体ドラム１Ｙ及びその周囲に配置された帯電部２Ｙ、光書込部３Ｙ、現像装置４Ｙ及びドラムクリーナー５Ｙを有して構成される。
【００３７】
同様に、画像形成部１１Ｍは、感光体ドラム１Ｍの周囲に配置された帯電部２Ｍ、光書込部３Ｍ、現像装置４Ｍ及びドラムクリーナー５Ｍを、画像形成部１１Ｃは、感光体ドラム１Ｃの周囲に配置された帯電部２Ｃ、光書込部３Ｃ、現像装置４Ｃ及びドラムクリーナー５Ｃを、画像形成部１１Ｋは、感光体ドラム１Ｋの周囲に配置された帯電部２Ｋ、光書込部３Ｋ、現像装置４Ｋ及びドラムクリーナー５Ｋを有して構成される。
【００３８】
画像形成部１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋにおけるそれぞれの感光体ドラム１Ｙ、１Ｍ、１Ｃ、１Ｋ、帯電部２Ｙ、２Ｍ、２Ｃ、２Ｋ、光書込部３Ｙ、３Ｍ、３Ｃ、３Ｋ、現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋ及びドラムクリーナー５Ｙ、５Ｍ、５Ｃ、５Ｋはそれぞれ共通する内容の構成である。
【００３９】
画像形成部１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋは、それぞれ光書込部３Ｃ、３Ｍ、３Ｙ、３Ｋにて画像情報信号を感光体ドラム１Ｃ、１Ｍ、１Ｙ、１Ｋに書き込み、感光体ドラム１Ｃ、１Ｍ、１Ｙ、１Ｋに画像情報信号に基づく潜像を形成する。そして潜像は現像装置４Ｃ、４Ｍ、４Ｙ、４Ｋにより現像され、感光体ドラム１Ｃ、１Ｍ、１Ｙ、１Ｋ上に可視画像であるトナー画像が形成される。
【００４０】
画像形成部１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋのそれぞれ感光体ドラム１Ｙ、１Ｍ、１Ｃ、１Ｋに、それぞれ、イエロー（Ｙ）色、マゼンタ（Ｍ）色、シアン（Ｃ）色、黒（Ｋ）色、の画像が形成される。
【００４１】
中間転写ベルト６は、複数のローラーにより巻回され、走行可能に支持されている。
【００４２】
画像形成部１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋより形成された各色のトナー画像は、走行する中間転写ベルト６上に一次転写部７Ｙ、７Ｍ、７Ｃ、７Ｋにより逐次転写されてＹ（イエロー）、Ｍ（マゼンタ）、Ｃ（シアン）、Ｋ（黒）の各色層が重畳したトナーによるカラー画像（以下、「トナー画像」と称する）が形成される。
【００４３】
用紙搬送部ＨＲ１０は用紙Ｓを搬送する。用紙Ｓは給紙トレイ２９１、２９２、２９３に収容されており、第１給紙部１２により給紙され、レジストローラー１３を経て、二次転写部７Ａに搬送され、用紙Ｓ上に中間転写ベルト６上のトナー画像が転写される。二次転写部７Ａは転写手段の一例であり、トナー画像を用紙Ｓに転写させ該用紙Ｓを搬送する。
【００４４】
トナー画像が転写された用紙Ｓは、定着部１４にて熱と圧力とを加えることにより用紙Ｓ上のトナー画像が定着され、トナー画像の転写および定着により画像形成がされた用紙Ｓは定着搬送ローラー１５及び排紙ローラー１６を経て装置外に排出される。
【００４５】
定着部１４は、定着ローラー３１、押圧ローラー３２、加熱ローラー３３、および定着ベルト３４を有する。定着ローラー３１は押圧ローラー３２により押圧され、用紙Ｓ上のトナー画像が載った側が凸になるように略円弧状のニップ領域が形成される。ニップ領域において用紙Ｓは加熱ローラー３３を介して加熱された定着ベルト３４とともに挟持される。そして、用紙Ｓ上に付着されたトナー画像のトナーが加熱および加圧されてトナー画像が用紙Ｓに定着される。定着部１４は定着手段の一例であり、二次転写部７Ａにより用紙Ｓに転写されたトナー画像を用紙Ｓに定着させ、該用紙Ｓを搬送する。
【００４６】
画像形成装置１００は用紙反転部２４を備えており、定着がなされた用紙を定着搬送ローラー１５から用紙反転部２４に導いて表裏を反転し排出、あるいは用紙の両面に画像形成を行うことを可能としている。
【００４７】
画像形成装置１００の本体上部に設置されたユーザーインターフェース１６０から画像形成を行うに際しての用紙Ｓのサイズ、枚数等を設定できる。さらに、ユーザーインターフェース１６０から用紙の種類および各種通紙条件を設定できる。
【００４８】
画像形成のための画像出力装置１８０の上記各部の作動、および用紙Ｓを搬送するための各部の作動は、マルチコアプロセッサー１１０によるタスクの実行により制御される。
【００４９】
図４は、従来の装置におけるタスクの実行のスケジューリングに関する説明図である。
【００５０】
タスクのスケジューリングとは、マルチコアプロセッサー１１０の複数のコア１１１〜１１４のうちタスクを実行させるコアと、当該コアにおけるタスクの実行順序とを決定することである。ＯＳ２１０の機能であるスケジューラーが、システム制御アプリケーション２３０が生成したシステム制御タスク群と、メカ制御アプリケーション２２０が生成したメカ制御タスク群を、対応するコアのランキューに登録することで、タスクのスケジューリングが行われる。ランキューは、メインメモリ１２０に記憶され、各コアが実行するタスクが、実行順序に従って登録される。
【００５１】
ここで、最終的なジョブのスケジューリングはＯＳ２１０の機能であるスケジューラーにより行われるが、システム制御アプリケーション２３０及びメカ制御アプリケーション２２０は、タスクを生成するタイミングや、生成したタスクをＯＳ２１０に通知する（渡す）タイミングを変更することにより、ランキューに対してどのようにタスクが登録されるかを制御することができる。
【００５２】
図４において、Ｔはスケジーラーがスケジューリングを行う周期を示しており、スケジューラーは、周期Ｔに１度、所定数のタスクについてスケジューリングを行うことができる。例えば、各周期Ｔ［０］、Ｔ［１］、Ｔ［２］、Ｔ［３］において、それぞれコア１１１〜１１４ごとに４つのタスクのスケジューリングが行われることができる。
【００５３】
図４において太線枠で示された周期タスクは、一定周期で実行される必要のあるメカ制御タスクである。周期タスクには、例えば、画像入力装置１７０および画像出力装置１８０のメカ部の異常検出を行うメカ制御タスクが含まれる。メカ部の異常検出を行うメカ制御タスクは、異常発生から所定期間内に、異常検出および検出した異常への対処を行うことが要求される。そこで、メカ部の異常検出を行うメカ制御タスクは、必ず一定周期で実行される。
【００５４】
メカ部の異常検出を行うメカ制御タスクの中で実行される用紙搬送の異常検出においては、モーターのステップ数の制御量と連動してセンサーにより用紙の先端位置の検出が周期的に行われ、当該ステップ数の制御量から予測される位置において用紙が検出されない場合に異常検出がなされる。そして、異常検出、および検出した異常への対処であるモーターの停止およびアラームの発信は、異常発生から所定期間内に行われる必要がある。
【００５５】
図４に示すように、周期タスクは、少なくともいずれかのコア１１１〜１１４において、３回のタスク処理に対し１回という周期で、タスクが実行されている。
【００５６】
なお、各周期Ｔ［０］、Ｔ［１］、Ｔ［２］、Ｔ［３］において、同じ番号のタスクは、同じ種類のタスクを示しており、例えば、タスク１はシステム制御タスクである画像処理のタスクとすることができる。なお、タスク１〜タスク１０はシステム制御タスクであり、タスク１１〜タスク１２および周期タスクはメカ制御タスクである。
【００５７】
図５は、周期タスクのデッドラインオーバーに関する説明図である。
【００５８】
デッドラインオーバーとは、図５の点線範囲で示すように、タスクの処理の完了が、タスクの処理の完了が必要となる時間であるデッドライン時間を超えることをいう。図５において、各処理は周期タスクの処理を示している。レイテンシとは、周期タスクの予定されていた処理開始時間の遅延である。ランタイム時間とは、周期タスクの処理時間である。周期ｔとは、１つのタスクに割り当てられた所定の時間である。なお、図５においては、周期タスク以外のタスクを省略し、周期タスクのみを記載している。
【００５９】
周期タスクは、ＯＳ２１０により一定周期で実行されるようにスケジューリングされるが、マルチコアプロセッサー１１０を用いるマルチコア環境において、コア１１１〜１１４の負荷分散を目的としたタスクマイグレーションが行われた際の、キャッシュ、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）のヒット率低下、周期タスクの実行の前に実行されているタスクの処理完了遅延、メモリバスの競合、割り込みの集中発生など、様々なリアルタイム性の阻害要因が存在する。図５においては、３つの周期タスクのうち、２番目に実行された周期タスクに関し、レイテンシおよびランタイム時間が長くなり、その結果、当該周期タスクがデッドラインオーバーとなっている。このように、たとえ一定周期で周期タスクが実行されるようにスケジューリングされていた場合においても、デッドラインオーバーとなる可能性がある。
【００６０】
周期タスクの処理がデッドラインオーバーになると、例えば、原稿搬送精度の低下、ジャム検出遅れによる原稿詰まり、メカの故障などの問題が生じ得る。
【００６１】
例えば、ジャム検出という異常検出処理を行う周期タスクは、ジャムの検出後に搬送動作を停止する処理を、当該周期タスクに割り当てられた所定の時間（図５における周期ｔ）内に完了する必要がある。そして、当該周期タスクの処理がデッドラインオーバーになると、動作停止などの処理が遅れることで原稿詰まりを深刻化させる可能性がある。
【００６２】
図６は、本実施形態に係る画像形成装置における、タスクのスケジューリング結果を示す説明図である。図６において、周期タスクは、コア１１１〜１１４のそれぞれに割り当てられる。これにより、周期タスクについて、コア１１１〜１１４のいずれかにおいてデッドラインオーバーが発生した場合でも、デッドラインオーバーが発生しないコアにより、リアルタイム性を維持して周期タスクすることができる。
【００６３】
図７は、本実施形態に係る、図６に記載のスケジュールが実行される様子を示す説明図である。なお、図７において、周期タスク以外のタスクは省略されている。
【００６４】
マルチコアプロセッサー１１０のコア１〜コア４に割り当てられる周期タスクは同一のタスクである。すなわち、メカ制御アプリケーション２２０は、同一の周期タスクを複数生成し、生成した複数の周期タスクをＯＳ２１０に渡すことで、コア１１１〜１１４（コア１〜コア４）に周期タスクを実行させるスケジューリングを行う。
【００６５】
図７においては、点線範囲で示すように、コア１において２番目に実行された周期タスクがデッドラインオーバーとなっているが、コア１以外のコア２〜コア４においてそれぞれ２番目に実行された周期タスクはデッドラインオーバーとはなっていない。したがって、メカ制御アプリケーション２２０はコア２〜コア４においてそれぞれ２番目に実行された周期タスクのうちのいずれかの周期タスクの処理結果を採用して、メカ制御を行うことができる。例えば、メカ制御アプリケーション２２０は最も早く処理が完了した周期タスクの処理結果を採用することができる。これにより、一のコアにおいて周期タスクのリアルタイム性が阻害されても他のコアにおいて周期タスクのリアルタイム性が維持されるため、メカ制御に要求されるリアルタイム性を確保することができる。
【００６６】
図６において、コア１１１〜１１４のそれぞれに、同じ順番（図６において横方向に揃ったタイミング）で登録された周期タスクは、図７を参照して、必ずしも互いに同期して実行されるわけではない。これは、コア１１１〜１１４のそれぞれにおいて、割り当てられたタスクが非同期で実行されるためである。なお、各コアで実行される同一の周期タスクを同期させることで、周期タスクがコア相互で並列に実行されるようにしてもよい。
【００６７】
なお、図６、７においては、コア１１１〜１１４の全てに周期タスクを割り当てる例を示したが、コア１１１〜１１４のうちのすくなくとも２つのコアに周期タスクを割り当てれば、メカ制御に要求されるリアルタイム性を確保することができる。
【００６８】
メカ制御アプリケーション２２０は、前述の通り、生成した複数の周期タスクをＯＳ２１０に渡すことで、複数のコアに周期タスク実行させることができる。このとき、メカ制御アプリケーション２２０は、周期タスクを実行させるコアを指定することができ、ＯＳ２１０は、指定されたコアに周期タスクを割り当てる。メカ制御アプリケーション２２０は、例えば、コア１１１〜１１４のうち、コア１１１とコア１１２だけに周期タスクが割り当てられるように、周期タスクを実行させるコアを指定することができる。
【００６９】
図８は、本実施形態に係る、マルチコアプロセッサーにタスクを実行させる方法のフローチャートである。本フローチャートの方法は、マルチコアプロセッサー１１０がメカ制御アプリケーション２２０を実行することにより実現される。
【００７０】
メカ制御アプリケーション２２０は、規定数の周期タスクを生成する（Ｓ１０１）。規定数は、例えば１とすることができる。
【００７１】
メカ制御アプリケーション２２０は、マルチコアプロセッサー１１０の負荷状態を取得し（Ｓ１０２）、不揮発メモリ１３０にあらかじめ記憶させたテーブルを参照して、周期タスクの必要数を決定する（Ｓ１０３）。テーブルは次のように作成されることができる。すなわち、マルチコアプロセッサー１１０の負荷状態に応じた、周期タスクのデッドラインオーバーの頻度を計測し、計測結果に基づいて、リアルタイム性を確保するために必要な周期タスク数を決定し、当該負荷状態と周期タスクの必要数とを対応付けることにより作成される。
【００７２】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数より少ないと判断した場合は（Ｓ１０４：ＹＥＳ）、当該必要数と現在作成したタスク数との差分の数の周期タスクを生成する（Ｓ１０５）。これにより、マルチコアプロセッサー１１０の負荷状態に基づいて必要とされる数の周期タスクが生成され、生成された複数の周期タスクがマルチコアプロセッサー１１０の複数のコアにより実行される。
【００７３】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数より多いと判断した場合は（Ｓ１０４：ＮＯ、Ｓ１０６：ＮＯ）、当該必要数と現在作成したタスク数との差分の数の周期タスクを消去する。これにより、テーブルに記載された必要数の周期タスクがマルチコアプロセッサー１１０の複数のコアにより実行される。
【００７４】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数と同じと判断した場合は（Ｓ１０４：ＮＯ、Ｓ１０６：ＹＥＳ）、現在生成した周期タスクが複数のコアにより実行される。
【００７５】
このように、マルチコアプロセッサー１１０の負荷状態に基づいて必要最低限の数の周期タスクをマルチコアプロセッサー１１０の複数のコア１１１〜１１４に実行させることにより、マルチコアプロセッサー１１０の利用効率を向上させつつ、メカ制御に必要となるリアルタイム性を確保できる。
【００７６】
本実施形態は以下の効果を奏する。
【００７７】
同一の周期タスクを複数生成し、マルチコアプロセッサーの複数のコアにそれぞれ実行させる。これにより、一のコアにおいて周期タスクのリアルタイム性が阻害されても他のコアにおいて周期タスクのリアルタイム性が維持されるため、マルチコアプロセッサーにおいて汎用ＯＳを用いる場合に、システム制御の機能性を確保しつつ、メカ制御に要求されるリアルタイム性を確保することができる。
【００７８】
さらに、周期タスクを実行させることによるマルチコアプロセッサーの負荷の状況に基づいて、生成する周期タスクの数を決定する。これにより、マルチコアプロセッサーの利用効率を向上させつつ、メカ制御に必要となるリアルタイム性を確保できる。
【００７９】
（第２実施形態）
本発明の第２実施形態に係る、マルチコアプロセッサーにタスクを実行させる、装置、プログラム、およびプログラムを記録した記録媒体、ならびに方法について詳細に説明する。本実施形態と第１実施形態とで異なる点は、第１実施形態は、マルチコアプロセッサー１１０の負荷状態に基づいて各コアにそれぞれ実行させる周期タスクの数を決定するのに対し、本実施形態は、ジョブの動作モードに基づいてマルチコアプロセッサー１１０の各コアに実行させる周期タスクの数を決定する点である。これ以外の点は、本実施形態は第１実施形態と同様であるため、重複する説明は省略または簡略化する。
【００８０】
図９は、本実施形態に係る、マルチコアプロセッサーにタスクを実行させる方法のフローチャートである。本フローチャートの方法は、マルチコアプロセッサーがメカ制御アプリケーション２２０を実行することにより実現される。
【００８１】
メカ制御アプリケーション２２０は、規定数の周期タスクを生成する（Ｓ２０１）。
【００８２】
メカ制御アプリケーション２２０は、ジョブがネットワーク部１５０により受信されるのを待ち（Ｓ２０２）、印刷ジョブが受信されたときは（Ｓ２０２：ＹＥＳ）、印刷ジョブに含まれるジョブ情報から画像形成装置１００の動作モードを特定する（Ｓ２０３）。ジョブには、印刷ジョブの他、例えば、コピージョブ、スキャンジョブ、ＦＡＸジョブが含まれる。画像形成装置１００の動作モードとしては、例えば、ジョブ種別、カラー／モノクロ等の処理画像種別、印刷とコピーの同時実施等のマルチ動作状態が含まれる。
【００８３】
メカ制御アプリケーション２２０は、特定した動作モードに基づき、不揮発メモリ１３０にあらかじめ記憶させたテーブルを参照して、周期タスクの必要数を決定する（Ｓ２０４）。テーブルは次のように作成されることができる。すなわち、動作モードごとにマルチコアプロセッサー１１０の周期タスクのデッドラインオーバーの頻度を計測し、計測結果に基づいて、リアルタイム性を確保するために必要な周期タスク数を決定し、動作モードと周期タスク数の必要数とを対応付けることにより作成される。
【００８４】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数より少ないと判断した場合は（Ｓ２０５：ＹＥＳ）、当該必要数と現在作成したタスク数との差分の数の周期タスクを生成する（Ｓ２０６）。これにより、マルチコアプロセッサー１１０の動作モードに応じて必要とされる数の周期タスクが生成され、生成された複数の周期タスクがマルチコアプロセッサー１１０の複数のコアにより実行される。
【００８５】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数より多いと判断した場合は（Ｓ２０５：ＮＯ、Ｓ１０６：ＮＯ）、当該必要数と現在作成したタスク数との差分の数の周期タスクを消去する。これにより、テーブルに記載された必要数の周期タスクがマルチコアプロセッサー１１０の複数のコアにより実行される。
【００８６】
メカ制御アプリケーション２２０は、現在生成した周期タスク数が、テーブルに記載された周期タスクの必要数と同じと判断した場合は（Ｓ１０４：ＮＯ、Ｓ１０６：ＹＥＳ）、現在生成した周期タスクが複数のコアにより実行される。
【００８７】
このように、画像形成装置１００の動作モードに基づいて必要最低限の数の周期タスクをマルチコアプロセッサー１１０の複数のコア１１１〜１１４に実行させることにより、マルチコアプロセッサー１１０の利用効率を向上させつつ、メカ制御に必要となるリアルタイム性を確保できる。
【００８８】
メカ制御アプリケーション２２０は、ジョブが終了したと判断したときは（Ｓ２０９：ＹＥＳ）、周期タスク数を規定数に戻し（Ｓ２１０）、次のジョブの受信を待つ（Ｓ２０２）。
【００８９】
本実施形態は以下の効果を奏する。
【００９０】
画像形成装置の動作モードに基づいて、周期タスクの数を決定する。これにより、マルチコアプロセッサーの利用効率を向上させつつ、メカ制御に必要となるリアルタイム性を確保できる。
【００９１】
本発明は上述した実施形態に限定されない。
【００９２】
例えば、上述した実施形態においては、図８および図９のフローチャートの方法をマルチコアプロセッサーがメカ制御アプリケーションを実行することにより実現されるものとして説明したが、メカ制御アプリケーションを実行することにより実現される機能の一部または全部を回路等のハードウェアに置き換えて実現されてもよい。
【００９３】
また、図７においては、マルチコアプロセッサーのすべてのコアに同一の周期タスクを実行させているが、少なくともいずれか二以上のコアに同一の周期タスクを実行させればよく、必要に応じて、周期タスクを実行させるコアの数を限定してもよい。
【００９４】
また、上述した実施形態においては、画像形成装置に実装されたマルチコアプロセッサーにタスクを実行させるものとして説明したが、マルチコアプロセッサーが実装される装置は、当該装置のメカ部のメカ制御を周期タスクにより実施する装置であればよく、例えば、素材の加工装置であってもよい。
【符号の説明】
【００９５】
１００    画像形成装置。
【図１】
0006287923.tif 000002
【図２】
0006287923.tif 000003
【図３】
0006287923.tif 000004
【図４】
0006287923.tif 000005
【図５】
0006287923.tif 000006
【図６】
0006287923.tif 000007
【図７】
0006287923.tif 000008
【図８】
0006287923.tif 000009
【図９】
0006287923.tif 000010