(57)【特許請求の範囲】
【請求項１】
キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置であって、
前記画像形成装置の動作を制御する制御部は、
複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する負荷算出部と、
前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する期間予測部と、
前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する処理制御部と、を備える、
ことを特徴とする画像形成装置。
【請求項２】
前記処理制御部は、前記第１の期間に実行される予定の前記複数の処理ステップの内の後のジョブの処理ステップに対して、前記ダミー実行及び前記実実行を行う、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記負荷算出部は、各ジョブの各処理ステップに対して予め設定されたメモリアクセス負荷情報に基づいて、前記期間毎のメモリアクセス負荷を算出する、
ことを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記期間予測部は、前記複数のジョブがコピージョブ及びプリントジョブであり、前記コピージョブにおけるデータ変換と前記プリントジョブにおけるＲＩＰ処理とが重なる場合は、当該処理が重なる期間を、前記第１の期間と判断する、
ことを特徴とする請求項１乃至３のいずれか一に記載の画像形成装置。
【請求項５】
前記期間予測部は、新規ジョブの受信開始時に、前記第１の期間の予測を行う、
ことを特徴とする請求項１乃至４のいずれか一に記載の画像形成装置。
【請求項６】
前記処理制御部は、前記第１の期間よりも前、かつ、前記メモリアクセス負荷が最小となる第２の期間に、前記ダミー実行を行う、
ことを特徴とする請求項１乃至５のいずれか一に記載の画像形成装置。
【請求項７】
前記処理制御部は、前記ダミー実行と前記実実行との切り替えを、フラグにより制御する、
ことを特徴とする請求項１乃至６のいずれか一に記載の画像形成装置。
【請求項８】
前記ダミー実行は、前記メインメモリからジョブに応じた命令を読み出して前記キャッシュメモリに保存する実行形態であり、前記実実行は、前記メインメモリから前記ジョブに応じたデータを読み出し、読み出した前記データを参照して、前記キャッシュメモリに保存した前記命令を実行する実行形態である、
ことを特徴とする請求項１乃至７のいずれか一に記載の画像形成装置。
【請求項９】
前記処理制御部は、前記処理ステップの前記ダミー実行に際して、前記データを参照せずに前記命令を実行する、
ことを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置で動作する並列処理制御プログラムであって、
前記画像形成装置に、
複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する第１処理、
前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する第２処理、
前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する第３処理、を実行させる、
ことを特徴とする並列処理制御プログラム。
【請求項１１】
キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置における並列処理制御方法であって、
複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する第１処理と、
前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する第２処理と、
前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する第３処理と、を実行する、
ことを特徴とする並列処理制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び並列処理制御プログラム並びに並列処理制御方法に関し、特に、マルチコアプロセッサを備える画像形成装置及び当該画像形成装置における並列処理を制御する並列処理制御プログラム並びに並列処理制御方法に関する。
【背景技術】
【０００２】
動作周波数を上げてプロセッサの性能向上を図ることは、消費電力及び冷却の観点から困難になっていることから、消費電力を抑えつつ処理性能を向上させる手法としてマルチコアプロセッサが普及している。マルチコアプロセッサでは、複数のプロセッサコアを使用して並列処理を行うことにより、処理性能の向上を図ることができ、プロセッサコア１つあたりの動作周波数を下げることにより、省電力化を図ることができる。
【０００３】
マルチコアプロセッサを使用して並列処理を行うシステムに関して、例えば、下記特許文献１には、複数のコアを有する複数のマルチコアプロセッサと、各マルチコアプロセッサの資源を共有する共有資源とを有するマルチコアシステムであって、前記各マルチコアプロセッサの負荷情報と、前記共有資源に対するアクセス時の負荷情報とを取得する負荷情報収集手段と、前記負荷情報収集手段により取得した前記各マルチコアプロセッサの負荷情報と、前記アクセス時の負荷情報との条件に基づいて、負荷分散を行うか否かの判定を行う負荷分散判定手段と、前記負荷分散判定手段により、前記負荷分散を行うと判断された際には、負荷を分散する負荷分散手段とを有する構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９１９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記マルチコアプロセッサは様々な装置に採用することができるが、特に、複数の機能を備える装置に採用することにより、大きな効果を発揮することができる。例えば、ＭＦＰ（Multi Function Peripheral）などの画像形成装置にマルチコアプロセッサを採用することにより、コピー／プリント／スキャン／ＦＡＸ等の複数の機能を並列処理することが可能となる。
【０００６】
ここで、複数の機能を複数のプロセッサコアで並列処理する場合、それぞれのプロセッサコアは、メインメモリにアクセスして、対象となる機能の処理に必要な命令（プログラム）やデータを取得する必要がある。そのため、メインメモリへのアクセスが集中し、各プロセッサコアとメインメモリとを繋ぐメモリバスの負荷が大きくなり、この負荷がボトルネックとなって処理性能の低下を招く可能性がある。その結果、制限時間内に各機能の処理を完了させることができず、処理のリアルタイム性の確保が困難になるという問題があった。
【０００７】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、マルチコアプロセッサを採用した構成において、処理のリアルタイム性を確保しつつ、処理性能を向上させることができる画像形成装置及び並列処理制御プログラム並びに並列処理制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一側面は、キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置であって、前記画像形成装置の動作を制御する制御部は、複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する負荷算出部と、前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する期間予測部と、前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する処理制御部と、を備えることを特徴とする。
【０００９】
本発明の一側面は、キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置で動作する並列処理制御プログラムであって、前記画像形成装置に、複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する第１処理、前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する第２処理、前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する第３処理、を実行させることを特徴とする。
【００１０】
本発明の一側面は、キャッシュメモリを保持するプロセッサコアを複数有し、前記複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置における並列処理制御方法であって、複数のジョブの処理ステップの重なりに応じて規定される期間毎に、前記メインメモリへのメモリアクセス負荷を算出する第１処理と、前記期間毎のメモリアクセス負荷に基づいて、前記メインメモリへのメモリアクセス負荷が最大となる第１の期間を予測する第２処理と、前記第１の期間に実行される予定の複数の処理ステップの内のいずれかの処理ステップを、前記第１の期間よりも前の期間に、前記複数のジョブの処理を行っていないプロセッサコアでダミー実行し、前記ダミー実行完了後、当該処理ステップを、前記ダミー実行を行ったプロセッサコアで実実行する第３処理と、を実行することを特徴とする。
【発明の効果】
【００１１】
本発明の画像形成装置及び並列処理制御プログラム並びに並列処理制御方法によれば、マルチコアプロセッサを採用した構成において、メモリアクセス負荷を分散させることが可能となり、メモリアクセスのボトルネックが解消され、処理のリアルタイム性を確保しつつ、処理性能を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例に係る画像形成装置の構成を示すブロック図である。
【図２】本発明の一実施例に係る画像形成装置の制御部の構成を示すブロック図である。
【図３】本発明の一実施例に係る画像形成装置の制御部により実行される機能を示すブロック図である。
【図４】本発明の一実施例に係る画像形成装置の動作を示すフローチャート図である。
【図５】本発明の一実施例に係る画像形成装置におけるコピーの処理ステップの構成を示す図である。
【図６】本発明の一実施例に係る画像形成装置におけるコピーの各処理ステップのメモリアクセス負荷を示すテーブルである。
【図７】本発明の一実施例に係る画像形成装置におけるプリントの処理ステップの構成を示す図である。
【図８】本発明の一実施例に係る画像形成装置におけるプリントの各処理ステップのメモリアクセス負荷を示すテーブルである。
【図９】本発明の一実施例に係る画像形成装置におけるコピー／プリント並列処理の期間を示す図である。
【図１０】本発明の一実施例に係る画像形成装置におけるコピー／プリント並列処理の各期間のメモリアクセス負荷を示すテーブルである。
【図１１】本発明の一実施例に係る画像形成装置におけるコピー／プリント並列処理における並列処理制御の一例を示す模式図である。
【図１２】本発明の一実施例に係る画像形成装置におけるコピー／プリント並列処理における並列処理制御の他の例を示す模式図である。
【図１３】本発明の一実施例に係る画像形成装置におけるコピー／プリント１、２並列処理の期間を示す図である。
【図１４】本発明の一実施例に係る画像形成装置におけるコピー／プリント１、２の並列処理の各期間のメモリアクセス負荷を示すテーブルである。
【図１５】本発明の一実施例に係る画像形成装置におけるコピー／プリント１、２の並列処理における処理制御の一例を示す模式図である。
【図１６】本発明の一実施例に係る画像形成装置におけるコピー／プリント１、２の並列処理における処理制御の他の例を示す模式図である。
【発明を実施するための形態】
【００１３】
背景技術で示したように、消費電力を抑えつつ処理性能を向上させる手法としてマルチコアプロセッサが普及しており、様々な装置に利用されている。特に、コピー／プリント／スキャン／ＦＡＸ等の複数の機能を備えるＭＦＰなどの画像形成装置では、複数の機能の処理を同時に行う必要があることから、マルチコアプロセッサを採用するケースが増えている。
【００１４】
マルチコアプロセッサを用いて並列処理を行う場合、それぞれのプロセッサコアはメインメモリにアクセスして、必要な命令やデータを取得するため、メモリアクセスが集中して、処理性能の低下を招く可能性がある。そして、処理性能の低下によって制限時間内に各処理を完了させることができなくなった場合には、処理のリアルタイム性が確保できなくなる。
【００１５】
この問題に対して、特許文献１では、プログラム実行中に、一定間隔で各プロセッサコアの負荷情報とメモリアクセス時の負荷情報を取得し、システムにおける負荷の偏りを判定し、偏りがある場合は負荷分散が必要であると判断して、移動対象スレッドを決定し、別のプロセッサコアに移動させる方法を提案している。しかしながら、この方法では、メモリアクセス負荷の大きい処理が連続した場合には、スレッドを移動させてもメモリアクセス負荷を軽減することができず、また、スレッドを移動させることによって処理のリアルタイム性が確保できなくなる。
【００１６】
そこで、本発明の一実施の形態では、キャッシュメモリを保持するプロセッサコアを複数有し、複数のプロセッサコアが１つのメインメモリを共有するマルチコアプロセッサを搭載する画像形成装置において、メモリアクセス負荷が大きい期間に実行する処理ステップを、メインメモリから命令のみを読み込んでキャッシュメモリに保存する第１段階（ダミー実行と呼ぶ。）と、メインメモリからデータを読み込んで、キャッシュメモリに保存した命令を実行する第２段階（実実行と呼ぶ。）と、に分割して実行するようにする。
【００１７】
具体的には、新規ジョブの受信開始時に、予め用意した各処理ステップのメモリアクセス負荷情報から、複数のジョブの処理ステップの重なりに応じて規定される期間毎のメモリアクセス負荷を算出し、メインメモリへのアクセスが集中する期間（第１の期間）を予測する。そして、メインメモリへのアクセスが集中する期間に実行する予定のいずれかの処理ステップを、第１の期間よりも前の第２の期間に、別のプロセッサコアでダミー実行し、その後、その処理ステップを、ダミー実行したプロセッサコアで実実行する。
【００１８】
このように、ダミー実行において、メインメモリにアクセスして命令を読み込むことにより、実実行時のメインメモリへのアクセス回数を低減することができるため、メモリアクセス負荷を分散させることができ、処理性能の低下を防ぐことができる。また、メインメモリへのアクセスが集中する期間よりも前の期間にダミー実行を行うため、ダミー実行と実実行の２段階に分割することによる処理の遅延を抑制して、処理のリアルタイム性を確保することができる。
【実施例】
【００１９】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る画像形成装置及び並列処理制御プログラム並びに並列処理制御方法について、図１乃至図１６を参照して説明する。図１は、本実施例の画像形成装置の構成を示すブロック図であり、図２は、制御部の構成を示すブロック図である。また、図３は、制御部により実行される機能を示すブロック図であり、図４は、本実施例の画像形成装置の動作を示すフローチャート図である。また、図５及び図７は、画像形成装置のコピー／プリントの処理ステップの構成を示す図であり、図６及び図８は、コピー／プリントの各処理ステップのメモリアクセス負荷を示すテーブルである。また、図９及び図１３は、並列処理の期間を示す図、図１０及び図１４は、並列処理の各期間のメモリアクセス負荷を示すテーブルであり、図１１、図１２、図１５及び図１６は、並列処理における並列処理制御の一例を示す模式図である。
【００２０】
本実施例の画像形成装置１０は、ＭＦＰなどの画像形成装置などであり、図１に示すように、マルチコアプロセッサ１２とメインメモリ１３とを含み、画像形成装置１０の動作を制御する制御部１１と、ＨＤＤ（Hard Disk Drive）１５と、ネットワークＩ／Ｆ部１６と、スキャナ部１７と、ＦＡＸ制御部１８と、画像形成部１９と、操作表示部２０などで構成される。
【００２１】
マルチコアプロセッサ１２は、図２に示すように、複数のプロセッサコア１２ａ（ここでは０〜Ｎ−１のＮ個のプロセッサコア）と、各々のプロセッサコア１２ａに接続されるキャッシュメモリ１２ｂと、で構成される。そして、各々のプロセッサコア１２ａとキャッシュメモリ１２ｂのセットが、メモリバス１４を介して接続されたメインメモリ１３を共有する構成となっている。
【００２２】
上記メインメモリ１３には、画像形成装置１０の各機能の処理を実行するための命令（プログラムのコード）及び各機能の処理を実行するためのデータが記録される。そして、制御部１１がコピーやプリント、ＦＡＸなどの機能を制御する際、当該機能に割り当てられたプロセッサコア１２ａは、メインメモリ１３から命令及びデータを読み出し、キャッシュメモリ１２ｂに保存して実行することによって当該機能の処理を行う。
【００２３】
具体的には、制御部１１は、スキャナ部１７が原稿から読み取った画像データ（コピーデータ）や、ＦＡＸ制御部１８が送受信する画像データ（ＦＡＸデータ）に対して、エッジ強調処理やスムージング処理、色変換処理等の画像処理を行う。また、外部のコンピュータ装置から取得したプリントジョブ（ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬ（Page Description Language）データ、または、ＰＤＦ（Portable Document Format）データ）に対して、プリントジョブに含まれる各ページをラスタライズしてページ毎の画像データを生成し、生成した画像データ（プリントデータ）に対して上記画像処理を行う。そして、画像処理後の画像データを画像形成部１９にVIDEO出力する。
【００２４】
なお、上記マルチコアプロセッサ１２は、各プロセッサコア１２ａに特定の機能を割り当てるＡＭＰ（Asymmetric Multiprocessing）にて動作させてもよいし、個々のプロセッサコア１２ａが対等の条件でメインメモリ１３を共有するＳＭＰ（Symmetric Multiprocessing）にて動作させてもよいし、ＡＭＰとＳＭＰを併合したＢＭＰ（Bound Multiprocessing）にて動作させてもよい。ＡＭＰで動作させる場合は、本実施例の並列処理制御プログラム（必要に応じてＯＳ（Operating System）など）は特定のプロセッサコア１２ａで実行され、ＳＭＰで動作させる場合は、本実施例の処理制御プログラム（必要に応じてＯＳなど）は全てのプロセッサコア１２ａで実行されることになる。
【００２５】
また、マルチコアプロセッサ１２におけるプロセッサコア１２ａの数は特に限定されない。また、複数のプロセッサコア１２ａは、同種の（規模や構成、処理能力が同じ）コアとしてもよいし、規模や構成、処理能力が異なるコアとしてもよい。
【００２６】
ＨＤＤ１５は、外部のコンピュータ装置から取得したプリントジョブ、プリントジョブから生成した中間データ（ディスプレイリスト）、ディスプレイリストから生成した画像データ（プリントデータ）、スキャナ部１７が原稿から読み取った画像データ（コピーデータ）、ＦＡＸ制御部１８が送受信する画像データ（ＦＡＸデータ）などを保存する。
【００２７】
ネットワークＩ／Ｆ部１６は、電話回線に接続するためのモデムや、ＬＡＮ（Local Area Network）などの構内通信網に接続するためのＮＩＣ（Network Interface Card）などであり、電話回線を介して接続されるＦＡＸ装置とのＦＡＸ通信や構内通信網を介して接続されるコンピュータ装置との通信を可能にする。
【００２８】
スキャナ部１７は、原稿台上に載置された原稿から画像データを光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成され、原稿から読み取った画像データ（コピーデータ）を制御部１１に出力する。
【００２９】
ＦＡＸ制御部１８は、ネットワークＩ／Ｆ部１６を制御し、外部のＦＡＸ装置に対してＦＡＸデータを送信したり、外部のＦＡＸ装置からＦＡＸデータを受信し、受信したＦＡＸデータを制御部１１に出力したりする。
【００３０】
画像形成部１９（エンジン）は、制御部１１からVIDEO出力される画像データに基づき、用紙への印刷処理を行う。具体的には、電子写真方式の場合は、帯電装置により帯電された感光体ドラムに、露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに１次転写し、転写ベルトから用紙に２次転写し、更に定着装置で用紙上のトナー像を定着させる処理を行う。
【００３１】
操作表示部２０は、ＬＣＤ（Liquid Crystal Display）等の表示部上に格子状の透明電極からなるタッチセンサなどの操作部が配置されたタッチパネル、ハードキーなどで構成され、画像形成装置１０の操作画面を提示し、ユーザからの操作を受け付け、操作に応じた信号を制御部１１に出力する。
【００３２】
なお、図１では、画像形成装置１０にスキャナ部１７とＦＡＸ制御部１８と画像形成部１９とを設けたが、本実施例の画像形成装置１０は、並列処理のための複数の機能を備えていればよく、例えば、コピーとプリントのみを実行する場合はＦＡＸ制御部１８を省略することができる。また、画像形成部１９（エンジン）は、必ずしも画像形成装置１０に内蔵されている必要はなく、画像形成部１９が別の装置として分離した構成としてもよい。また、本実施例では、マルチコアプロセッサ１２による並列処理を制御するプログラム（並列処理制御プログラム）をマルチコアプロセッサ１２自身に実行させる構成とするが、マルチコアプロセッサ１２以外のプロセッサに実行させることも可能であり、その場合は、マルチコアプロセッサ１２を管理するプロセッサ（ＣＰＵ（Central Processing Unit）など）を備える構成とすることもできる。
【００３３】
上記構成の画像形成装置１０において、コピーを行う場合は、スキャナ部１７に原稿をスキャンさせ、スキャンデータを次ステップの入力形式に変換するデータ変換を行い、エッジ強調処理やスムージング処理、色変換処理等の画像処理を行った後、画像形成部１９にVIDEO出力する。また、プリントを行う場合は、ＰＤＬ等で記述されたプリントジョブのデータを受信し、プリントジョブに含まれる各ページをラスタライズしてページ毎の画像データを生成し（ＲＩＰ（Raster Image Processing）処理と呼ぶ。）、生成した画像データに対して上記画像処理を行った後、画像形成部１９にVIDEO出力する。また、ＦＡＸ受信を行う場合は、ＦＡＸ制御部１８からＦＡＸデータを受信し、ＦＡＸデータを次ステップの入力形式に変換するデータ変換を行い、変換した画像データに対して上記画像処理を行った後、画像形成部１９にVIDEO出力する。
【００３４】
上記コピーやプリント、ＦＡＸにおける各々の処理ステップを実行する際に、プロセッサコア１２ａは、メモリバス１４を介してメインメモリ１３から命令やデータを読み出すため、複数の機能を同時に実行する場合、処理ステップが重なり、メインメモリ１３へのメモリアクセス負荷が大きくなり、処理能力が低下する。この場合、重なった処理ステップをずらして実行する（特許文献１のようにスレッドを移動させる）ことによって、メモリバス１４へのメモリアクセス負荷を軽減することはできるが、この方法では、メモリアクセス負荷の大きい処理が連続した場合は、処理ステップをずらすことができないし、処理ステップをずらすことによって処理の実行タイミングが遅れ、処理のリアルタイム性を確保することができない。
【００３５】
そこで、本実施例では、処理のリアルタイム性を確保しつつ、処理能力を向上させるために、図３に示すように、制御部１１に、負荷算出部１１ａ、期間予測部１１ｂ、処理制御部１１ｃとしての機能を持たせる。すなわち、制御部１１を、負荷算出部１１ａ、期間予測部１１ｂ及び処理制御部１１ｃとして機能させる並列処理制御プログラムを、いずれか１つのプロセッサコア１２ａに実行させるようにする。
【００３６】
負荷算出部１１ａは、並列処理に際して複数のジョブの処理ステップの重なりに応じて規定される（すなわち、各処理ステップの開始タイミング又は終了タイミングによって区切られる）期間毎に、メインメモリ１３へのメモリアクセス負荷を算出する。期間予測部１１ｂは、算出された期間毎のメモリアクセス負荷に基づいて、メインメモリ１３へのメモリアクセスが集中する（最大となる）期間（第１の期間と呼ぶ。）を予測する。処理制御部１１ｃは、上記予測した第１の期間に実行される予定のいずれかの処理ステップを、第１の期間よりも前の期間（以下、第２の期間と呼ぶ。）に、複数のジョブの処理を行っていないアイドル状態のプロセッサコア１２ａでダミー実行し、その後、その処理ステップを、ダミー実行を行ったプロセッサコア１２ａで実実行する。
【００３７】
なお、ダミー実行とは、処理ステップを実行するために必要な命令のみをメインメモリ１３から読み出してキャッシュメモリに保存する実行形態であり、実実行とは、その処理ステップを実行するために必要なデータをメインメモリ１３から読み出し、読み出したデータを参照して、キャッシュメモリに予め保存した命令を実行する実行形態である。
【００３８】
このように、ダミー実行及び実実行は、処理ステップを通常通りに実行する（命令とデータを併せて読み出す場合）よりもメインメモリ１３へのメモリアクセスが少ないため、処理ステップが重なることによるメモリアクセス負荷の増加を抑制することができ、また、メモリアクセス負荷が最大になる期間よりも前の期間にダミー実行を行うことにより、処理の遅延を抑制して、処理のリアルタイム性を確保することができる。
【００３９】
以下、本実施例の画像形成装置１０の動作について説明する。マルチコアプロセッサ１２は、並列処理制御プログラムを実行することにより、図４のフローチャート図に示す処理を実行する。なお、図４は、コピーとプリントの並列処理を行った場合（コピー中にプリントジョブを受信した場合）の制御フローである。
【００４０】
まず、制御部１１（負荷算出部１１ａ）は、新規プリントジョブを受信すると、各期間におけるメモリアクセス負荷を算出する（Ｓ１０１）。
【００４１】
具体的には、図５に示すように、コピーは、スキャン／データ変換／画像処理／VIDEO出力の４つの処理ステップで構成されることから、図６に示すように、コピーの各処理ステップに対して予めメモリアクセス負荷を設定しておく。また、図７に示すように、プリントは、データ受信／ＲＩＰ処理／画像処理／VIDEO出力の４つの処理ステップで構成されることから、図８に示すように、プリントの各処理ステップに対して予めメモリアクセス負荷を設定しておく。
【００４２】
なお、この処理ステップ毎のメモリアクセス負荷は、実測値としてよいし計算値としてもよい。また、絶対値としてもよいし、相対値としてもよい。また、コピーやプリントにおける用紙サイズや解像度、カラー／モノクロなどの条件によってメモリアクセス負荷が変化することから、メモリアクセス負荷は、各種条件の平均値としてもよいし、よく使用される条件での代表値としてもよく、条件毎のメモリアクセス負荷を用意してもよい。
【００４３】
そして、コピーの途中で新規のプリントジョブを受信した場合、負荷算出部１１ａは、図９に示すように、処理ステップの重なりに応じて規定される期間を設定し、図５及び図７のテーブルを参照して、各々の期間の各処理ステップのメモリアクセス負荷を加算して期間毎のメモリアクセス負荷を算出する。図１０は、期間毎のメモリアクセス負荷を記述したテーブルの一例である。
【００４４】
例えば、期間１はプリントのデータ受信を行っている期間であり、その間、コピーではデータ変換を行っていることから、その期間のメモリアクセス負荷は３５＋１５＝５０となる。また、期間２は、プリントのＲＩＰ処理を開始してからコピーのデータ変換が終了するまでの期間であり、その期間のメモリアクセス負荷は３５＋４０＝７５となる。また、期間３は、コピーの画像処理を行っている期間であり、その間、プリントではＲＩＰ処理を行っていることから、その期間のメモリアクセス負荷は２５＋４０＝６５となる。また、期間４は、コピーのVIDEO出力を開始してからプリントのＲＩＰ処理が終了するまでの期間であり、その期間のメモリアクセス負荷は２０＋４０＝６０となる。また、期間５は、プリントの画像処理を開始してからコピーのVIDEO出力が終了するまでの期間であり、その期間のメモリアクセス負荷は２０＋２５＝４５となる。
【００４５】
図４のフローチャート図に戻って、制御部１１（期間予測部１１ｂ）は、コピーのデータ変換とプリントのＲＩＰ処理とが重なるか期間があるかどうかを判定する（Ｓ１０２）。なお、この判定を行うのは、画像形成装置１０では、コピーとプリントがよく使用される機能であり、コピーのデータ変換及びプリントのＲＩＰ処理は、共にメインメモリ１３へのアクセスが多いからである。そして、コピーのデータ変換とプリントのＲＩＰ処理とが重なる場合は、制御部１１（処理制御部１１ｃ）は、後のジョブの方の処理ステップ（ここではプリントのＲＩＰ処理）を、ダミー実行の対象の処理ステップに決定する（Ｓ１０３）。
【００４６】
一方、コピーのデータ変換とプリントのＲＩＰ処理とが重ならない場合は、制御部１１（期間予測部１１ｂ）は、算出した期間毎のメモリアクセス負荷を比較して、メモリアクセス負荷が最大となる期間（第１の期間）を予測する（Ｓ１０４）。そして、制御部１１（処理制御部１１ｃ）は、第１の期間に実行される予定の複数の処理ステップの中から、ダミー実行の対象となる処理ステップを決定する（Ｓ１０５）。ここでは、図１０のテーブルより、メモリアクセス負荷が最大となる期間は期間２であり、図９より、期間２に行われる処理ステップはコピーのデータ変換とプリントのＲＩＰ処理であることから、後のジョブ（プリント）のＲＩＰ処理をダミー実行の対象の処理ステップに決定する。
【００４７】
次に、制御部１１（処理制御部１１ｃ）は、ダミー実行を開始するタイミングを決定する（Ｓ１０６）。このダミー実行開始タイミングは、メモリアクセス負荷が最大の期間（第１の期間）よりも前の期間の内のメモリアクセス負荷が最小の期間（第２の期間）を選択する。ここでは、第１の期間が期間２であるため、期間１を第２の期間として決定する。
【００４８】
次に、制御部１１（処理制御部１１ｃ）は、ダミー実行に使用するプロセッサコア１２ａを決定する（Ｓ１０７）。このダミー実行用のプロセッサコア１２ａは、アイドル状態のプロセッサコア１２ａの中から選択する。例えば、プロセッサコア０でコピーを行い、プロセッサコア１でプリントを行っている場合は、プロセッサコア２をダミー実行用に割り当てる。
【００４９】
次に、制御部１１（処理制御部１１ｃ）は、対象の処理ステップのダミー実行を開始する（Ｓ１０８）。このダミー実行では、実実行時に必要な命令をキャッシュメモリ１２ｂに読み込むために命令を１通り実行（データを参照せずに命令のみを実行）する。ここで、ダミー実行から実実行までの間に、ダミー実行を行ったプロセッサコア１２ａ（ここではプロセッサコア２）で他の処理を実行すると、キャッシュメモリ１２ｂに読み込んだ命令が失われてしまうため、制御部１１（処理制御部１１ｃ）は、ダミー実行完了後、ダミー実行用プロセッサコア１２ａへの処理の割り当てを禁止（例えば、フラグを設定）する（Ｓ１０９）。
【００５０】
次に、制御部１１（処理制御部１１ｃ）は、ダミー実行を行った処理プロセスに対して実実行が開始できるかを判定する（Ｓ１１０）。この判定を行うのは、ダミー実行は、その処理ステップを行う期間よりも前の期間に行うため、ダミー実行が終了した段階で、その処理ステップの前の処理ステップが終了していない場合が生じるからである。具体的には、プリントのＲＩＰ処理をダミー実行する場合、ＲＩＰ処理の実実行はその前の処理ステップであるデータ受信が完了していないと実施することができないため、データ受信が完了しているか否かに応じて、実実行が開始できるかを判定する。
【００５１】
実実行を開始できない場合（すなわち、ダミー実行を行った処理プロセスの前の処理プロセスが終了していない場合）は、実実行を開始できるようになるまで待機する。実実行を開始できる場合は、制御部１１（処理制御部１１ｃ）は、ダミー実行用プロセッサコアへの処理割り当ての禁止を解除（例えば、フラグを解除）し（Ｓ１１１）、ダミー実行用プロセッサコアに対象となる処理ステップを割り当てて実実行を行い（Ｓ１１２）、その処理ステップ以降の処理ステップもダミー実行用プロセッサコアに実行させる。例えば、プロセッサコア２でＲＩＰ処理をダミー実行した場合は、プロセッサコア２でＲＩＰ処理の実実行を行うと共に、プロセッサコア２で画像処理及びVIDEO出力も行う。
【００５２】
以下、上記フローのダミー実行及び実実行について図面を参照して具体的に説明する。
【００５３】
図１１は、プロセッサコア０でコピーを実行している際に、プリントジョブを受信した場合の並列処理制御の一例である。この場合、各期間のメモリアクセス負荷は図１０のテーブルのようになり、期間２のメモリアクセス負荷が最大となるため、期間２に実行する予定の処理ステップ（プリントのＲＩＰ処理）に対して並列処理制御を行う。具体的には、期間２よりも前の期間である期間１にて、プロセッサコア２を用いてプリントのＲＩＰ処理のダミー実行（一点鎖線で表記）を行う。ここでは、ＲＩＰ処理のダミー実行が終了した段階でプリントのデータ受信が完了しておらず、データ受信が完了しないとＲＩＰ処理の実実行ができないため、期間２の開始と同時にＲＩＰ処理の実実行（二点鎖線で表記）を行う。なお、実実行ではメインメモリ１３から命令を読み込む必要がない（ダミー実行で読み込み済である）ため、通常のＲＩＰ処理（破線で表記）よりも短時間に処理を完了させることができる。その後、ダミー実行及び実実行を行ったプロセッサコア２で画像処理及びVIDEO出力を行う。
【００５４】
このような並列処理制御を行うことにより、処理のリアルタイム性を確保しつつ、メインメモリ１３へのメモリアクセス負荷を軽減して処理能力を向上させることができる。また、実実行の処理時間が通常の処理時間に比べて短くなり、更に、メモリアクセス負荷を軽減することによって制御対象のジョブ以外のジョブの処理時間も短くなるため、処理全体の終了タイミングを早めることができ、複数の処理を効率的に実行することができる。
【００５５】
なお、上記説明では、処理ステップが重なった場合、後のジョブの処理ステップを制御対象としたが、先のジョブの処理ステップを制御対象とすることも可能である。図１２は、プロセッサコア０でコピーを実行している際に、プリントジョブを受信した場合の並列処理制御の他の例である。コピーの画像処理のメモリアクセス負荷が大きな値（例えば、データ変換よりも大きい”４０”）であるとすると、期間３のメモリアクセス負荷が最大（４０＋４０＝８０）となるため、期間３に実施する予定のコピーの画像処理に対して並列処理制御を行うこともできる。具体的には、期間３よりも前の期間（ここでは期間１）にて、プロセッサコア２を用いてコピーの画像処理のダミー実行を行う。ここでも、画像処理のダミー実行が終了した段階でコピーのデータ変換が完了しておらず、データ変換が完了しないと画像処理の実実行ができないため、期間３の開始と同時に画像処理の実実行を行う。このような並列処理制御を行うことによっても、メモリアクセス負荷を軽減して処理能力を向上させることができ、また、処理のリアルタイム性を確保することができる。
【００５６】
以上、コピーとプリントの２つを並列処理する場合について記載したが、３つ以上の処理を並列処理する場合も同様に制御することができる。例えば、コピーのジョブの処理中にプリント１のジョブを受信し、更に、コピー及びプリント１のジョブの処理中にプリント２のジョブを受信した場合、処理ステップの重なりに応じて規定される期間は図１３のようになる。そして、コピー及びプリントの各処理ステップのメモリアクセス負荷が図６及び図８のように設定されている場合、各々の期間のメモリアクセス負荷は図１４に示すテーブルのようになる。
【００５７】
この場合、期間３のメモリアクセス負荷が最も大きいため、期間３に実行する予定の処理ステップに対して並列処理制御を行う。例えば、図１５に示すように、期間３よりも前の期間である期間（ここでは、メモリアクセス負荷は期間２よりも期間１の方が小さいため期間１）にて、プロセッサコア３を用いてプリント２のＲＩＰ処理２のダミー実行を行う。ＲＩＰ処理２のダミー実行が終了した段階でプリント２のデータ受信２が完了していないため、期間３の開始と同時にＲＩＰ処理２の実実行を行う。その後、ダミー実行及び実実行を行ったプロセッサコア３で画像処理２及びVIDEO出力２を行う。このように、３つ以上のジョブを並列処理する場合でも、いずれかのジョブの処理ステップに対して並列処理制御を行うことにより、メモリアクセス負荷を軽減して処理能力を向上させることができると共に、処理のリアルタイム性を確保することができる。
【００５８】
図１５では、最も後のジョブ（ここではプリント２）に対して本実施例の並列処理制御を行ったが、図１２と同様に、先のジョブ（コピーのジョブ又はプリント１のジョブ）に対して本実施例の並列処理制御を行うこともできる。
【００５９】
また、図１５では、１つのジョブの処理ステップに対して本実施例の並列処理制御を行ったが、複数のジョブの処理ステップに対して、本実施例の並列処理制御を行うこともできる。例えば、図１６に示すように、期間３よりも前の期間である期間（ここでは期間１）にて、プロセッサコア３を用いてプリント１のＲＩＰ処理１のダミー実行を行うと共に、プロセッサコア４を用いてプリント２のＲＩＰ処理２のダミー実行を行う。ここで、ＲＩＰ処理１のダミー実行が終了した段階でプリント１のデータ受信１は完了しているため、ＲＩＰ処理１の実実行を直ちに行う。また、ＲＩＰ処理２のダミー実行が終了した段階でプリント２のデータ受信２は完了していないため、期間３の開始と同時にＲＩＰ処理２の実実行を行う。その後、ダミー実行及び実実行を行ったプロセッサコア３でプリント１の画像処理１及びVIDEO出力１を行うと共に、プロセッサコア４でプリント２の画像処理２及びVIDEO出力２を行う。このように、３つ以上のジョブを並列処理する場合に、複数のジョブの処理ステップに対して本実施例の並列処理制御を行うことにより、メモリアクセス負荷を軽減して処理能力を向上させることができると共に、処理のリアルタイム性を確保することができる。
【００６０】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００６１】
例えば、上記実施例では、コピーとプリントを並列処理する場合について記載したが、コピーとＦＡＸ、プリントとＦＡＸ、コピーとプリントとＦＡＸを並列処理する場合に対しても、本発明の並列処理制御を同様に適用することができる。また、コピー／プリント／ＦＡＸ以外の処理（例えば、スキャン）を含む並列処理に対しても、本発明の並列処理制御を同様に適用することができる。
【００６２】
また、上記実施例では、先のジョブの処理中に後のジョブを受信した場合について記載したが、複数のジョブを同時に受信した場合に対しても、本発明の並列処理制御を同様に適用することができる。また、上記実施例では、コピー、プリントを各々４つの処理ステップに分割したが、処理ステップの分割数は任意である。
【００６３】
また、上記実施例では、第１の期間よりも前の第２の期間が存在する場合について記載したが、第１の期間が最も早い期間の場合は、第１の期間に、対象となる処理ステップのダミー実行を行うことになる。その場合、処理ステップの実実行が終了するタイミングは、当該処理ステップを通常通り実行する場合よりも遅くなるが、メインメモリ１３へのメモリアクセス負荷を軽減することは可能である。
【産業上の利用可能性】
【００６４】
本発明は、複数のプロセッサコアで構成されるマルチコアプロセッサを備える画像形成装置、及び当該画像形成装置における並列処理を制御する並列処理制御プログラム、並びに当該並列処理制御プログラムを記録した記録媒体、並びに当該画像形成装置における並列処理制御方法に利用可能である。
【符号の説明】
【００６５】
１０  画像形成装置
１１  制御部
１１ａ  負荷算出部
１１ｂ  期間予測部
１１ｃ  処理制御部
１２  マルチコアプロセッサ
１２ａ  プロセッサコア
１２ｂ  キャッシュメモリ
１３  メインメモリ
１４  メモリバス
１５  ＨＤＤ
１６  ネットワークＩ／Ｆ部
１７  スキャナ部
１８  ＦＡＸ制御部
１９  画像形成部
２０  操作表示部
【図１】
0006465384.tif 000002
【図２】
0006465384.tif 000003
【図３】
0006465384.tif 000004
【図４】
0006465384.tif 000005
【図５】
0006465384.tif 000006
【図６】
0006465384.tif 000007
【図７】
0006465384.tif 000008
【図８】
0006465384.tif 000009
【図９】
0006465384.tif 000010
【図１０】
0006465384.tif 000011
【図１１】
0006465384.tif 000012
【図１２】
0006465384.tif 000013
【図１３】
0006465384.tif 000014
【図１４】
0006465384.tif 000015
【図１５】
0006465384.tif 000016
【図１６】
0006465384.tif 000017