(57)【要約】【課題】複数のコアを用いて並列処理を行う場合に処理の高速性とリアルタイム性とを両立させる。【解決手段】複数のコアで構成されるＣＰＵを含むプロセッサを備え、前記ＣＰＵによって処理が実行される画像形成装置であって、前記複数のコアを管理するＣＰＵコア管理部は、前記複数のコアの内の少なくとも１つの所定のコアを、タスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合、前記第１の処理は、前記所定のコアに実行させ、前記第２の処理は、前記所定のコア及び前記他のコアに分散して実行させる。【選択図】図５
2016063407.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアで構成されるＣＰＵ（Central Processing Unit）を含むプロセッサを備え、前記ＣＰＵによって処理が実行される画像形成装置であって、
前記複数のコアを管理するＣＰＵコア管理部は、
前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳ（Operating System）のタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、
前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、
前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、
前記第１の処理は、前記所定のコアに実行させ、
前記第２の処理は、前記所定のコア及び前記他のコアに分散して実行させる、
ことを特徴とする画像形成装置。
【請求項２】
前記第２の処理は、ＰＤＬ（Page Description Language）で記述された各ページのデータをラスタライズして画像データを生成するＰＤＬ処理であり、
前記ＣＰＵコア管理部は、
前記所定のコア及び前記他のコアに、ページ単位のデータ又は各ページをバンドに分割したバンド単位のデータを処理させる、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記ＣＰＵコア管理部は、
前記所定のコアには、前記他のコアよりもデータ量が少ない、前記ページ単位のデータ又は前記バンド単位のデータを処理させる、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記第１の処理は、公衆回線に接続するためのモデムと通信しながらＦＡＸ画像データの送受信を行うＦＡＸ処理、原稿をスキャンするセンサと通信しながら画像データを取得するスキャン処理、用紙位置を特定するセンサと通信しながら用紙上に画像を形成する画像形成処理の中から選択される１以上の処理である、
ことを特徴とする請求項１乃至３のいずれか一に記載の画像形成装置。
【請求項５】
複数のコアで構成されるＣＰＵ（Central Processing Unit）を含むプロセッサを備え、前記ＣＰＵによって処理が実行される画像形成装置における並列処理の制御方法であって、
前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳ（Operating System）のタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、
前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、
前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、
前記第１の処理を、前記所定のコアに実行させる第１ステップと、
前記第２の処理を、前記所定のコア及び前記他のコアに分散して実行させる第２ステップと、を実行する、
ことを特徴とする並列処理の制御方法。
【請求項６】
前記第２の処理は、ＰＤＬ（Page Description Language）で記述された各ページのデータをラスタライズして画像データを生成するＰＤＬ処理であり、
前記第２ステップでは、
前記所定のコア及び前記他のコアに、ページ単位のデータ又は各ページをバンドに分割したバンド単位のデータを処理させる、
ことを特徴とする請求項５に記載の並列処理の制御方法。
【請求項７】
前記第２ステップでは、
前記所定のコアには、前記他のコアよりもデータ量が少ない、前記ページ単位のデータ又は前記バンド単位のデータを処理させる、
ことを特徴とする請求項６に記載の並列処理の制御方法。
【請求項８】
前記第１の処理は、公衆回線に接続するためのモデムと通信しながらＦＡＸ画像データの送受信を行うＦＡＸ処理、原稿をスキャンするセンサと通信しながら画像データを取得するスキャン処理、用紙位置を特定するセンサと通信しながら用紙上に画像を形成する画像形成処理の中から選択される１以上の処理である、
ことを特徴とする請求項５乃至７のいずれか一に記載の並列処理の制御方法。
【請求項９】
複数のコアで構成されるＣＰＵ（Central Processing Unit）を含むプロセッサを備える装置における、いずれかのコアで動作する並列処理制御プログラムであって、
前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳ（Operating System）のタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、
前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、
前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、
前記装置に、
前記第１の処理を、前記所定のコアに実行させる第１ステップ、
前記第２の処理を、前記所定のコア及び前記他のコアに分散して実行させる第２ステップ、を実行させる、
ことを特徴とする並列処理制御プログラム。
【請求項１０】
前記装置は画像形成装置であり、
前記第２の処理は、ＰＤＬ（Page Description Language）で記述された各ページのデータをラスタライズして画像データを生成するＰＤＬ処理であり、
前記第２ステップでは、
前記所定のコア及び前記他のコアに、ページ単位のデータ又は各ページをバンドに分割したバンド単位のデータを処理させる、
ことを特徴とする請求項９に記載の並列処理制御プログラム。
【請求項１１】
前記第２ステップでは、
前記所定のコアには、前記他のコアよりもデータ量が少ない、前記ページ単位のデータ又は前記バンド単位のデータを処理させる、
ことを特徴とする請求項１０に記載の並列処理制御プログラム。
【請求項１２】
前記装置は画像形成装置であり、
前記第１の処理は、公衆回線に接続するためのモデムと通信しながらＦＡＸ画像データの送受信を行うＦＡＸ処理、原稿をスキャンするセンサと通信しながら画像データを取得するスキャン処理、用紙位置を特定するセンサと通信しながら用紙上に画像を形成する画像形成処理の中から選択される１以上の処理である、
ことを特徴とする請求項９乃至１１のいずれか一に記載の並列処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び並列処理の制御方法並びに制御プログラムに関し、特に、複数のコアで構成されるＣＰＵ（Central Processing Unit）を備える画像形成装置及び当該画像形成装置における並列処理の制御方法並びに制御プログラムに関する。
【背景技術】
【０００２】
昨今、ＭＦＰ（Multi Function Peripheral）などの画像形成装置に搭載されるＣＰＵとして、コア数が１つではなく、複数のコア（マルチコア、メニーコアと呼ばれる。）が採用されてきている。複数のコアを用いて処理を実行する方法として、複数のコアを機能毎に使い分ける第１の方法と、負荷に応じて複数のコアに処理を分散させる第２の方法とがある。
【０００３】
複数のコアを使い分ける方法に関して、例えば、下記特許文献１には、操作に関する指示の入力を受け付けると共に各種表示を行う操作表示部と、画像情報の処理を行う画像処理部と、同種複数のコアを備えたプロセッサと、を備える情報処理装置であって、リアルタイム性を必要としない前記操作部に関連するプロセスについての制御を前記プロセッサの一方のコアで担当するよう固定し、前記プロセスと動作上連携が必要な前記画像処理部に関連するプロセスについての制御を前記プロセッサの他方のコアで担当するよう固定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２６２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記第１の方法では、各々のコアが専用の機能の処理を実行するため、画像形成装置の動作状態によってはほとんど何も処理していないコアが生じ、複数のコアを有効に利用することができず、処理の高速化を図ることができない。一方、第２の方法では、機能に応じてコアを限定しないため、複数のコアを有効に利用することが可能であるが、各々のコアに様々な処理を実行させるため、処理の最適化が困難である。
【０００６】
ここで、ＣＰＵが実行する処理には、高速性が要求される処理（すなわち、センサなどの他のデバイスとの通信を行わずに実行可能な処理）と、リアルタイム性が要求される処理（すなわち、センサなどの他のデバイスとの通信を行いながら実行する処理）とがある。これらの処理が混在する場合において、高速性が要求される処理を優先した最適化を行う場合、タスクスイッチング等の処理の切り替えを行うことなく、ひたすら決められた処理を実行させることになるが、この方法では、タスクスイッチングができない状況に陥り、複合動作ができなくなる。一方、リアルタイム性が要求される処理を優先した最適化を行う場合、タスクスイッチングを行いながら処理を実行することになるが、この方法では、タスクスイッチングがＯＳ（Operating System）のスケジューリングによって制御されるため、一連の処理が所々で停止する様な動作になってしまう。
【０００７】
すなわち、高速性が要求される処理とリアルタイム性が要求される処理とが混在する場合において、高速性が要求される処理を優先すると処理のリアルタイム性を確保することができなくなり、リアルタイム性が要求される処理を優先すると処理の高速性を確保することができなくなり、複数の処理の高速性とリアルタイム性を両立させることができないという問題があった。
【０００８】
また、特許文献１では、リアルタイム性を必要としない（高速性が要求される）プロセスについての制御を一方のコアに割り当て、動作上連携が必要な（リアルタイム性が要求される）プロセスについての制御を他方のコアに割り当てている。しかしながら、この技術では、他方のコアに、動作上連携が必要なプロセスについての制御のみを実行させており、他方のコアを十分に動作させていないため、リアルタイム性を必要としないプロセスについての制御を高速に実行することができない。
【０００９】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、複数のコアを用いて並列処理を行う場合において、処理の高速性とリアルタイム性とを両立させることができる画像形成装置及び並列処理の制御方法並びに制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一側面は、複数のコアで構成されるＣＰＵを含むプロセッサを備え、前記ＣＰＵによって処理が実行される画像形成装置であって、前記複数のコアを管理するＣＰＵコア管理部は、前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳのタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合、前記第１の処理は、前記所定のコアに実行させ、前記第２の処理は、前記所定のコア及び前記他のコアに分散して実行させることを特徴とする。
【００１１】
本発明の一側面は、複数のコアで構成されるＣＰＵを含むプロセッサを備え、前記ＣＰＵによって処理が実行される画像形成装置における並列処理の制御方法であって、前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳのタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、前記第１の処理を、前記所定のコアに実行させる第１ステップと、前記第２の処理を、前記所定のコア及び前記他のコアに分散して実行させる第２ステップと、を実行することを特徴とする。
【００１２】
本発明の一側面は、複数のコアで構成されるＣＰＵを含むプロセッサを備える装置における、いずれかのコアで動作する並列処理制御プログラムであって、前記装置を、前記複数のコアの内の少なくとも１つの所定のコアを、前記ＣＰＵ上で動作するＯＳのタスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、前記所定のコア以外の１又は複数の他のコアを、前記タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ、前記プロセッサ外部のデバイスとの通信が必要な第１の処理と前記プロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、前記装置に、前記第１の処理を、前記所定のコアに実行させる第１ステップ、前記第２の処理を、前記所定のコア及び前記他のコアに分散して実行させる第２ステップ、を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明の画像形成装置及び並列処理の制御方法並びに制御プログラムによれば、複数のコアを用いて並列処理を行う場合において、処理の高速性とリアルタイム性とを両立させることができる。
【００１４】
その理由は、複数のコアで構成されるＣＰＵを含むプロセッサを備える画像形成装置では、プロセッサ外部のデバイスとの通信が必要な第１の処理とプロセッサ外部のデバイスとの通信が不要な第２の処理とを並列処理する場合に、複数のコアの内の少なくとも１つの所定のコアを、処理の切り替えを相対的に多くする制御方法で動作させ、所定のコアを除く１又は複数の他のコアを、処理の切り替えを相対的に少なくする制御方法で動作させ、所定のコアには、第１の処理と第２の処理とを実行させ、他のコアには、第２の処理を実行させる制御を行うからである。すなわち、第１の処理は所定のコアに実行させ、第２の処理は所定のコアと他のコアに分散して実行させる制御を行うからである。
【００１５】
このように、プロセッサ外部のデバイスとの通信が不要な（すなわち、高速性が要求される）第２の処理を、プロセッサ外部のデバイスとの通信が必要な（すなわち、リアルタイム性が要求される）第１の処理を実行する所定のコアにも分散して処理させることにより、第１の処理と第２の処理とを単に別々のコアに割り当てる方法に比べて、第２の処理の高速性を確保することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例に係る画像形成装置の構成を示すブロック図である。
【図２】本発明の一実施例に係る画像形成装置（ＣＰＵコア管理部）の動作を示すフローチャート図である。
【図３】本発明の一実施例に係る画像形成装置における並列処理の制御方法（高速性を優先する場合の制御方法）を説明する図である。
【図４】本発明の一実施例に係る画像形成装置における並列処理の制御方法（リアルタイム性を優先する場合の制御方法）を説明する図である。
【図５】本発明の一実施例に係る画像形成装置における並列処理の制御方法の具体例を説明する図である。
【図６】複数のコアに処理を割り当てる（ページ単位のデータを割り当てる）方法を説明する図である。
【図７】複数のコアに処理を割り当てる（バンド単位のデータを割り当てる）方法を説明する図である。
【図８】複数のコアで並列処理を行う場合の処理時間を説明する図である。
【発明を実施するための形態】
【００１７】
背景技術で示したように、複数のコアを用いて処理を実行する方法として、複数のコアを機能毎に使い分ける第１の方法と、負荷に応じて複数のコアに処理を分散させる第２の方法とがある。
【００１８】
第１の方法では、複数のコアを有効に利用することができないため、処理の高速化を図ることができない。一方、第２の方法では、複数のコアを有効に利用することができるが、処理を最適化することが難しい。また、高速性が要求される処理とリアルタイム性が要求される処理とが混在する場合において、高速性が要求される処理を優先して最適化すると、タスクスイッチングができない状況に陥り複合動作ができなくなる。一方、リアルタイム性が要求される処理を優先して最適化すると、タスクスイッチングにより一連の処理が所々で停止する動作になってしまう。
【００１９】
また、特許文献１では、高速性が要求される処理とリアルタイム性が要求される処理とを別々のコアに割り当てているが、この方法では、リアルタイム性が要求される処理が割り当てられたコアを十分に動作させていないため、高速性が要求される処理を効率的に実行することができない。
【００２０】
特に、ＭＦＰなどの画像形成装置では、ＦＡＸ処理やスキャン処理、画像形成処理などの、プロセッサ外部のデバイス（各種センサやモデムなど）との通信が必要な処理（すなわち、リアルタイム性が要求される処理、リアルタイム系処理などとも呼ばれる。）と、ＰＬＤ（Page Description Language）データを画像データに変換する処理（ＰＤＬ処理と呼ぶ。）などの、プロセッサ外部のデバイスとの通信が不要な処理（すなわち、高速性が要求される処理、非リアルタイム系処理などとも呼ばれる。）と、が混在しているため、これらの処理を効率的に実行できるようにする方法の提案が求められている。
【００２１】
そこで、本発明の一実施の形態では、複数のコアを使用して、プロセッサ外部のデバイスとの通信が必要な第１の処理とプロセッサ外部のデバイスとの通信が不要な第２の処理とを並行処理する際に、少なくとも１つの所定のコアを、タスクスイッチングを行いながら処理を実行する第１の制御方法で動作させ、所定のコアを除く１又は複数の他のコアを、タスクスイッチングを抑えて処理を実行する第２の制御方法で動作させ、第１の処理は所定のコアに実行させ、第２の処理は所定のコアと他のコアに分散して実行させる（すなわち、所定のコアに第１の処理のみならず第２の処理をも実行させる）。
【００２２】
また、所定のコアに第２の処理を実行させる場合、当該コアに分散する第２の処理のデータ量が大きくなると処理が遅延し、第２の処理の高速性を確保することができなくなることから、所定のコアには、データ量が小さい処理（例えば、ＰＤＬ処理における、ページ単位のデータやページを分割したバンド単位のデータ、ページ単位又はバンド単位のデータの内のデータ量が小さいデータ）を分担させるようにする。
【００２３】
このように、タスクスイッチングを行いながらリアルタイム性が要求される処理を実行するコアに、高速性が要求される処理をも分散して実行させることにより、処理の高速性とリアルタイム性とを両立させることができる。
【実施例】
【００２４】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る画像形成装置及び並列処理の制御方法並びに制御プログラムについて、図１乃至図８を参照して説明する。図１は、本実施例の画像形成装置の構成を示すブロック図であり、図２は、本実施例の画像形成装置の動作を示すフローチャート図である。また、図３乃至図５は、並列処理の制御方法を説明する図であり、図６及び図７は、複数のコアに処理を割り当てる方法を説明する図、図８は、複数のコアで並列処理を行う場合の処理時間を説明する図である。
【００２５】
本実施例の画像形成装置１０は、ＭＦＰなどの複合機やプリンタなどであり、図１（ａ）に示すように、ＣＰＵ１１と、ＲＯＭ（Read Only Memory）１２と、ＲＡＭ（Random Access Memory）１３と、入出力バッファ１４と、ＨＤＤ（Hard Disk Drive）１５と、ネットワークＩ／Ｆ部１６と、スキャナ部１７と、ＦＡＸ制御部１８と、画像変換部１９と、画像形成部２０と、操作表示部２１と、ＣＰＵコア管理部２２などで構成される。
【００２６】
ＣＰＵ１１とＲＯＭ１２及びＲＡＭ１３などのメモリとでプロセッサが構成される。ＣＰＵ１１は、プログラムに従って演算するデータ処理装置であり、図１（ｂ）に示すように、複数のコア（ここでは１〜ＮのＮ個のコア）で構成される。ＲＯＭ１２は、画像形成装置１０全体の動作を制御するためのプログラム（後述する並列処理制御プログラムを含む。）、フォントデータなどを記録する。ＲＡＭ１３は、ＣＰＵ１１による制御に必要なデータ及び制御動作時に一時記憶が必要なデータなどを記憶する。なお、複数のコアは、同種の（規模や構成、処理能力が同じ）コアとしてもよいし、規模や構成、処理能力が異なるコアとしてもよい。
【００２７】
入出力バッファ１４は、入力されたデータや出力するデータを一時的に記憶しておくためのメモリであり、例えば、スキャナ部１７から出力される画像データやＦＡＸ制御部１８を用いて送受信するＦＡＸ画像データなどを記憶する。
【００２８】
ＨＤＤ１５は、外部のコンピュータ装置から取得した印刷データ（ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬデータ、または、ＰＤＦ（Portable Document Format）データ）、印刷データから生成した中間データ（ディスプレイリスト）、ディスプレイリストから生成した画像データなどを保存する。
【００２９】
ネットワークＩ／Ｆ部１６は、電話回線に接続するためのモデムや、ＬＡＮ（Local Area Network）などの構内通信網に接続するためのＮＩＣ（Network Interface Card）などであり、電話回線を介して接続されるＦＡＸ装置とのＦＡＸ通信や構内通信網を介して接続されるコンピュータ装置との通信を可能にする。
【００３０】
スキャナ部１７は、原稿台上に載置された原稿から画像データを光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成され、原稿から読み取った画像データを入出力バッファ１４又は画像変換部１９に出力する。
【００３１】
ＦＡＸ制御部１８は、ネットワークＩ／Ｆ部１６を制御し、ナンバーディスプレイ応答（例えば、着信拒否判定までの処理、情報受信端末起動信号に対する一次応答信号の出力までの処理など）や通常着信処理（例えば、ＦＡＸ画像データの受信前までの処理、呼接続確立までの処理、呼出信号に対する一次応答信号の出力までの処理など）、ＦＡＸ画像データの送受信処理などを実行し、受信したＦＡＸ画像データを入出力バッファ１４又は画像変換部１９又は画像形成部２０に出力する。
【００３２】
画像変換部１９は、スキャナ部１７によって読み取られた原稿の画像データや必要に応じてＦＡＸ制御部１８が受信したＦＡＸ画像データに対して、エッジ強調処理やスムージング処理、色変換処理等の画像処理を行う。また、画像変換部１９は、ＰＤＬで記述された印刷データを取得した場合は、印刷データに含まれる各ページをラスタライズしてページ毎の画像データを生成し、生成した画像データに対して上記画像処理を行う。そして、画像処理後の画像データを画像形成部２０に出力する。
【００３３】
画像形成部２０は、画像変換部１９で画像処理を行った画像データやＦＡＸ制御部１８から取得したＦＡＸ画像データに基づき、用紙への印刷処理を行う。具体的には、電子写真方式の場合は、帯電装置により帯電された感光体ドラムに、露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに１次転写し、転写ベルトから用紙に２次転写し、更に定着装置で用紙上のトナー像を定着させる処理を行う。
【００３４】
操作表示部２１は、ＬＣＤ（Liquid Crystal Display）等の表示部上に格子状の透明電極からなるタッチセンサなどの操作部が配置されたタッチパネル、ハードキーなどで構成され、画像形成装置の操作画面を提示し、ユーザからの操作を受け付け、操作に応じた信号をプロセッサに出力する。
【００３５】
ＣＰＵコア管理部２２は、実行する処理に応じてコアの割り当てを決定する。また、各コアの異常判断やタイミング制御などを行う。例えば、各々のコアを、タスクスイッチングを行いながらリアルタイムに処理を実行する制御方法（第１の制御方法）で動作させるか、タスクスイッチングを抑えて高速に処理を実行する制御方法（第２の制御方法）で動作させるかを決定する。そして、プロセッサ外部のデバイスとの通信が必要な処理（リアルタイム性が要求される処理であり、第１の処理と呼ぶ。）と、プロセッサ外部のデバイスとの通信が不要な処理（高速性が要求される処理であり、第２の処理と呼ぶ。）と、を並行処理する場合に、第１の制御方法で動作させるコアには、第１の処理を実行させると共に第２の処理をも実行させ、第２の制御方法で動作させるコアには、第２の処理を実行させる。なお、プロセッサ外部のデバイスとは、スキャナ部１７やＦＡＸ制御部１８、画像形成部２０に設けられたセンサやモデムなどのデバイスであり、プロセッサ内部のＲＡＭ１３（場合によっては入出力バッファ１４やＨＤＤ１５）などの記憶デバイスを除く概念である。
【００３６】
上記ＣＰＵコア管理部２２の制御について具体的に説明する。スキャン動作では、イメージセンサは移動しながら原稿をスキャンして画像データを出力するため、スキャナ部１７を制御するコアは、イメージセンサの移動に合わせて画像データを受信して入出力バッファ１４に保存しないと、画像データの取りこぼしが発生する。すなわち、当該コアは、イメージセンサとの通信を行いながらスキャン処理を実行することになるため、スキャン処理は、プロセッサ外部のデバイスとの通信が必要な第１の処理となる。
【００３７】
また、ＦＡＸ処理では、ネットワークＩ／Ｆ部１６のモデムが検出した信号に基づいてＦＡＸ画像データの送受信を実行するため、ＦＡＸ制御部１８を制御するコアは、モデムの動作に合わせてＦＡＸ画像データを送受信して入出力バッファ１４に保存しないと、ＦＡＸ画像データの取りこぼしが発生する。すなわち、当該コアは、モデムとの通信を行いながらＦＡＸ処理を実行することになるため、ＦＡＸ処理は、プロセッサ外部のデバイスとの通信が必要な第１の処理となる。
【００３８】
また、画像形成処理では、用紙を搬送経路上で移動させながら用紙上に画像を形成するため、画像形成部２０を制御するコアは、用紙の搬送系を制御するセンサから出力される信号に基づいて特定される用紙の位置に合わせて露光装置や現像装置を動作させないと、画像データに基づく画像を適切に用紙に形成することができない。また、定着装置に配置された温度センサから出力される信号に基づいて特定される温度に応じて定着装置を動作させないと、用紙に形成した画像を適切に定着させることができない。すなわち、当該コアは、用紙位置を特定するセンサや定着装置の温度を計測するセンサとの通信を行いながら画像形成処理を実行することになるため、画像形成処理は、プロセッサ外部のデバイスとの通信が必要な第１の処理となる。
【００３９】
一方、画像処理やＰＤＬ処理などの画像変換処理は、画像変換部１９の内部で実行するため、画像変換部１９を制御するコアは、処理途中で生成されるデータ（例えば、ＰＤＬデータから生成される中間データなど）をＲＡＭ１３に記憶したり、ＲＡＭ１３から取り出したりすることはあるものの、上述したセンサやモデムなどのプロセッサ外部のデバイスとの通信を行う必要はない。すなわち、当該コアは、センサやモデムとの通信を行うことなく画像変換処理を実行することになるため、画像変換処理は、プロセッサ外部のデバイスとの通信が不要な第２の処理となる。
【００４０】
そして、プロセッサ外部のデバイスとの通信が必要なスキャン処理やＦＡＸ処理、画像形成処理などの第１の処理と、プロセッサ外部のデバイスとの通信が不要なＰＤＬ処理などの第２の処理と、を並列処理する場合、第１の処理及び第２の処理を各々、別のコアに割り当てることも可能であるが、第１の処理を所定のコアに割り当て、第２の処理の残りのコアに割り当てただけでは、第１の処理を割り当てた所定のコアを十分に動作させることができない。すなわち、第１の処理は、プロセッサ外部のデバイスとの通信を行いながら実行する処理であり、通信待ちの状態では所定のコアはほとんど動作していないため、所定のコアの処理能力を十分に発揮させることができない。そこで、ＣＰＵコア管理部２２は、所定のコアの処理能力を十分に発揮させるために、当該所定のコアに第１の処理のみならず第２の処理も実行させるように制御する。言い換えると、ＣＰＵコア管理部２２は、当該所定のコアを含む複数のコアに第２の処理を分散して実行させるように制御する。
【００４１】
なお、上記ＣＰＵコア管理部２２はハードウェアとして構成してもよいし、プロセッサをＣＰＵコア管理部２２として機能させる並列処理制御プログラムとして構成し、当該並列処理制御プログラムをＣＰＵ１１のいずれかのコアに実行させてもよい。
【００４２】
以下、上記構成の画像形成装置１０における並列処理の制御方法について、図２を参照して説明する。ＣＰＵ１１は、ＲＯＭ１２又はＨＤＤ１５に記憶した並列処理制御プログラムをＲＡＭ１３に展開して実行することにより、図２のフローチャート図に示す各ステップの処理を実行する。
【００４３】
まず、ＣＰＵコア管理部２２は、ＣＰＵ１１からＣＰＵ１１が実行する処理の内容を受信したら（Ｓ１０１のＹｅｓ）、ＣＰＵ１１のいずれかのコアが、リアルタイム性が要求される処理（ＦＡＸ処理などのプロセッサ外部のデバイスとの通信が必要な処理）の実行中であるかを判断する（Ｓ１０２）。
【００４４】
ＣＰＵ１１のいずれかのコアが、リアルタイム性が要求される処理を実行中の場合は、コアを占有せずにタスクスイッチングが頻繁に行えるように調整した制御方法で処理を実行する（Ｓ１０３）。一方、ＣＰＵ１１のいずれのコアも、リアルタイム性が要求される処理を実行中でない場合は、コアを占有して最速で実行できるように調整した制御方法で処理を実行する（Ｓ１０４）。
【００４５】
上記制御方法について具体的に説明する。
【００４６】
まず、コアの割り当て方法について説明する。本実施例の制御において、各コアは機能毎に割り当てない（コアを占有させない）方が処理の高速化を図ることができるが、高い頻度で動作する特定の機能に関しては、コアを占有させた方が処理のリアルタイム性を確保することができ、画像形成装置１０の使い勝手を向上させることができる。そこで、本実施例では、高い頻度で動作する特定の機能に関しては、コアを占有させる（そのコアには第２の処理を分散させない）ようにする。
【００４７】
例えば、ＣＰＵコア管理部２２や操作表示部２１は、高い頻度で動作し迅速な応答が求められることから、同じコアを専用に割り当てる。また、画像形成部２０も、高い頻度で動作するため、専用にコアを割り当てる。一方、ＦＡＸ制御部１８やスキャナ部１７は、使用頻度はそれほど高くなく、動作中もＣＰＵ１１の負荷は低いため、専用にコアを割り当てて占有させるのはコアの有効利用の観点から好ましくない。従って、ＦＡＸ制御部１８やスキャナ部１７には専用にコアを割り当てず、画像変換部１９とコアを兼用するようにする。
【００４８】
次に、コアの制御方法について説明する。例えば、リアルタイム性が要求される処理（ここではＦＡＸ処理）を実行しているコアに、高速性が要求される処理（ここではＰＤＬ処理）を実行させる場合を想定する。図３に示すように、タスクスイッチングを抑えてコアを動作させた場合、ＰＤＬ処理は短時間で終了するが、ＰＤＬ処理が終わるまでＦＡＸ処理を実行することができないため、ＦＡＸ処理が滞ってしまう。この制御方法は高速化に特化した制御方法（第２の制御方法）であり、リアルタイム性が要求されるＦＡＸ制御を行っているコアには適用しないようにする。一方、図４に示すように、タスクスイッチングを頻繁に行ってコアを動作させた場合、適宜ＦＡＸ処理に切り替えることができるため、リアルタイム性に影響なくＦＡＸ通信を行うことができる。この制御方法はタスクスイッチングなどＯＳのスケジューリングを考慮した制御方法（第１の制御方法）であり、リアルタイム性が要求されるＦＡＸ制御を行っているコアに適用するようにする。
【００４９】
具体例を挙げて説明すると、高速性が要求される処理のみを実行する場合は、高速化に特化した第２の制御方法を用いて、使用可能なコア（ＣＰＵコア管理部２２や操作表示部２１に割り当てたコア、及び、画像形成部２０に割り当てたコアを除く全てのコア）に処理を分散させるが、ＦＡＸ処理中においては、図５に示すように、第１の制御方法はＮ−１個のコアに適用し、ＦＡＸ処理を実行しているコア（ここではコアＫ）については、第２の制御方法を適用する。すなわち、ＣＰＵコア管理部２２や操作表示部２１、画像形成部２０等に割り当てた専用のコアを除いたコアの使い方として、ＦＡＸ動作中にＮ−１個のスレッドではなく、Ｎ個のスレッドでＰＤＬ処理を実行する。これにより、Ｎ個のコア全てを有効に活用してＰＤＬ処理を短時間に完了させることができる。
【００５０】
ここで、Ｎ個のスレッドでＰＤＬ処理を実行する場合、各々のスレッドのＰＤＬ処理はＮ個のコアで同じにしてもよいが、Ｎ個のコアが同種のコアの場合は、ＦＡＸ処理を実行しているコアは他のコアに比べて負荷が大きくなる。そこで、ＦＡＸ処理を実行しているコアの負荷を軽減するために、当該コアに実行させるＰＤＬ処理のデータ量を少なくすることが好ましい。
【００５１】
例えば、図６に示すように、ＦＡＸ処理を実行しているコア（図ではコア５）に割り当てるＰＤＬ処理２のプログラムが担うデータをページ単位のデータとしたり、その中のデータ量（図のハッチングで示した領域）が少ないページデータ（図のページ３のデータ）としたりする。また、図７に示すように、ＦＡＸ処理を実行しているコア（同様にコア５）に割り当てるＰＤＬ処理２のプログラムが担うデータを、一時解析が終わった後、１ページをさらにバンドに区切った単位としたり、バンド単位において、データ量（図のハッチングで示した領域）が少ないバンドデータ（図のバンド３のデータ）としたりする。
【００５２】
これにより、リアルタイム性が要求される処理（プロセッサ外部のデバイスとの通信が必要な処理）を実行しているコアでは、他のコアに比べて、より短いか、若しくはあまり長くならない時間で処理を完了させることができ、処理のリアルタイム性と高速性を両立させることができる。
【００５３】
なお、高速性が要求される処理（プロセッサ外部のデバイスとの通信が不要な処理）を分散した場合、全てのコアの処理が完了しないと次の処理に移行することができないため、リアルタイム性が要求される処理を実行しているコアにデータ量が多い処理を割り当てると、全体の処理時間が長くなってしまう。例えば、図８（ａ）に示すように、リアルタイム性が要求される処理を実行しているコア（コアＫ）にデータ量が少ない処理を割り当てた場合、全体の処理時間が長くなることはないが、図８（ｂ）に示すように、コアＫにデータ量が多い処理を割り当てた場合、他のコアよりも処理に時間がかかり、全体の処理が長くなってしまう。
【００５４】
これを回避するためには、ＣＰＵコア管理部２２は、リアルタイム性が要求される処理を実行しているコアの負荷を算出し、その負荷に応じて当該コアに割り当てる高速性が要求される処理のデータ量を調整することが好ましい。なお、リアルタイム性が要求される処理を実行する際、コアの負荷は変動する（デバイスとの通信待ちの状態ではコアはほとんど動作しない）ため、コアの負荷は、デバイスとの通信待ち以外の状態での処理時間や当該処理を実行するためのプログラムに記述されたコマンド数などに基づいて算出することが好ましい。
【００５５】
このように、リアルタイム性が要求される処理（プロセッサ外部のデバイスとの通信が必要な第１の処理）と高速性が要求される処理（プロセッサ外部のデバイスとの通信が不要な第２の処理）とを並行処理する際に、少なくとも１つの所定のコアを、タスクスイッチングを行いながら処理を実行する第１の制御方法で動作させ、所定のコアを除く１又は複数の他のコアを、タスクスイッチングを抑えて処理を実行する第２の制御方法で動作させ、所定のコアに第１の処理のみならず第２の処理をも実行させ、他のコアに第２の処理を実行させることにより、処理のリアルタイム性と高速性を両立させることができる。
【００５６】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００５７】
例えば、上記実施例では、プロセッサ外部のデバイスとの通信が必要な処理として、ＦＡＸ処理とスキャン処理と画像形成処理を例示し、プロセッサ外部のデバイスとの通信が不要な処理としてＰＤＬ処理を例示したが、処理はこれらに限定されない。例えば、プロセッサ外部のデバイスとの通信が必要な処理としては、画像形成部２０に合わせて動作させるパンチやステープルなどの後処理、プロセッサ外部のデバイスとの通信が不要な処理としては、エッジ強調処理やスムージング処理、色変換処理等の画像処理に対しても、本発明の制御を同様に適用することができる。
【００５８】
また、上記実施例では、１つのコアにプロセッサ外部のデバイスとの通信が必要な処理を実行させる場合を示したが、プロセッサ外部のデバイスとの通信が必要な処理を２以上のコアに実行させたり、プロセッサ外部のデバイスとの通信が必要な複数の処理を２以上のコアの各々に実行させたりすることもできる。
【００５９】
また、上記実施例では、ＣＰＵコア管理部２２と操作表示部２１の処理を実行するコアや画像形成部２０の処理を実行するコアには、プロセッサ外部のデバイスとの通信が不要な処理を分散させない（コアを占有する）ようにしたが、これらのコアの負荷が小さい場合には、これらのコアにもプロセッサ外部のデバイスとの通信が不要な処理を分散させることも可能である。
【００６０】
また、上記実施例では、複数のコアを同種の（規模や構成、処理能力が同じ）コアとして説明したが、複数のコアの規模や構成、処理能力が異なっていてもよく、任意のコアに、プロセッサ外部のデバイスとの通信が必要な処理とプロセッサ外部のデバイスとの通信が不要な処理の双方を実行させることができる。
【００６１】
また、上記実施例では、画像形成装置１０における並列処理の制御方法について記載したが、複数のコアで構成されるＣＰＵを含むプロセッサを備え、当該ＣＰＵにより、プロセッサ外部のデバイスとの通信が必要な処理とプロセッサ外部のデバイスとの通信が不要な処理との並列処理が制御される任意の装置に対して、本発明を同様に適用することができる。
【産業上の利用可能性】
【００６２】
本発明は、複数のコアで構成されるＣＰＵを含むプロセッサを備える画像形成装置、及び当該画像形成装置における並列処理の制御方法、並びに当該画像形成装置で動作する並列処理制御プログラム、並びに当該並列処理制御プログラムを記録した記録媒体に利用可能である。
【符号の説明】
【００６３】
１０  画像形成装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  入出力バッファ
１５  ＨＤＤ
１６  ネットワークＩ／Ｆ部
１７  スキャナ部
１８  ＦＡＸ制御部
１９  画像変換部
２０  画像形成部
２１  操作表示部
２２  ＣＰＵコア管理部
【図１】
2016063407.tif 000003
【図２】
2016063407.tif 000004
【図３】
2016063407.tif 000005
【図４】
2016063407.tif 000006
【図５】
2016063407.tif 000007
【図６】
2016063407.tif 000008
【図７】
2016063407.tif 000009
【図８】
2016063407.tif 000010