(57)【要約】【課題】１つのマルチコアプロセッサでメカコン処理とコントローラー処理とを行なうことができる画像形成装置を提供する。【解決手段】画像形成装置は、複数のコア（１〜４）を有するマルチコアプロセッサ（２００）と、記録媒体に画像を形成するための画像形成機構とを備える。複数のコアの少なくとも１つのコアは、当該コアが実行するＯＳとして、画像形成機構を制御するメカコン処理を実行するための第１のＯＳと、コントローラー処理を実行するための第２のＯＳとを切り替えるための切替制御部（３１０〜３４０）を含む。【選択図】図３
2019084774.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
複数のコアを有するマルチコアプロセッサと、
記録媒体に画像を形成するための画像形成機構とを備え、
前記複数のコアの少なくとも１つのコアは、当該コアが実行するＯＳとして、前記画像形成機構を制御するメカコン処理を実行するための第１のＯＳと、コントローラー処理を実行するための第２のＯＳとを切り替えるための切替制御部を含む、画像形成装置。
【請求項２】
前記コントローラー処理は、画像処理、ユーザーインターフェース処理、ネットワーク処理、記憶装置処理、ファックス処理、およびメール処理のうち少なくとも１つの処理を含む、請求項１に記載の画像形成装置。
【請求項３】
前記画像形成装置は、複数の動作モードを切り替え可能に構成され、
前記マルチコアプロセッサは、
前記複数の動作モードのうち第１の動作モードでは、前記メカコン処理と前記コントローラー処理とを異なるコアで実行し、
前記複数の動作モードのうち第２の動作モードでは、前記メカコン処理と前記コントローラー処理とを同じコアで実行するように構成される、請求項１または２に記載の画像形成装置。
【請求項４】
前記切替制御部は、前記メカコン処理を前記コントローラー処理よりも優先するように構成される、請求項１〜３のいずれか１項に記載の画像形成装置。
【請求項５】
前記マルチコアプロセッサは、前記複数のコアの各々がアクセス可能な共有メモリを含み、
前記第１のＯＳを実行するコアと前記第２のＯＳを実行するコアとは、前記共有メモリに基づいて互いに通信するように構成される、請求項１〜４のいずれか１項に記載の画像形成装置。
【請求項６】
前記画像形成機構は、記録媒体に画像を定着させるための定着装置を含み、
前記マルチコアプロセッサの起動時において、前記第２のＯＳを実行するコアが当該第２のＯＳの初期化処理を行なっている間に、前記第１のＯＳを実行するコアは前記定着装置を制御するメカコン処理を実行するように構成される、請求項１〜５のいずれか１項に記載の画像形成装置。
【請求項７】
前記画像形成装置は、複数の動作モードを切り替え可能に構成され、
前記マルチコアプロセッサは、前記動作モードに応じて、前記複数のコアのうち、前記メカコン処理を実行するコアと、前記コントローラー処理を実行するコアとをそれぞれ決定するように構成される、請求項１〜６のいずれか１項に記載の画像形成装置。
【請求項８】
前記マルチコアプロセッサは、
前記動作モードに応じて、前記複数のコアよりも少ない数のコアにより前記メカコン処理および前記コントローラー処理を実行し、
前記複数のコアのうち前記メカコン処理および前記コントローラー処理のいずれの処理も実行しないコアへの電力供給を遮断するように構成される、請求項７に記載の画像形成装置。
【請求項９】
前記動作モードは、前記画像形成機構が印字処理中であることを表す印字モードを含み、
前記マルチコアプロセッサは、前記動作モードが前記印字モードである場合に、前記メカコン処理を行なうコアと前記コントローラー処理を行なうコアとが異なるコアとなるように前記決定を行なう、請求項７または８に記載の画像形成装置。
【請求項１０】
前記マルチコアプロセッサは、前記動作モードが前記印字モードである場合に、前記メカコン処理を前記複数のコアのうち予め定められた１のコアで実行するように構成される、請求項９に記載の画像形成装置。
【請求項１１】
前記動作モードは、原稿読取装置で原稿を読み取るスキャンモードおよび画像情報を外部装置との間で送受信するためのＦＡＸモードのうち少なくとも一方を含み、
前記マルチコアプロセッサは、前記動作モードが前記スキャンモードまたは前記ＦＡＸモードである場合に、前記印字モードの場合に用いられるコア数よりも少ない数のコア数で前記メカコン処理および前記コントローラー処理を実行するように構成される、請求項９または１０に記載の画像形成装置。
【請求項１２】
前記画像形成装置は、前記画像形成機構によって形成された画像の濃度を検出するための濃度センサーをさらに備え、
前記動作モードは、前記濃度センサーの検出結果に基づいて画像形成機構における画像形成条件を制御する画像安定化モードを含み、
前記マルチコアプロセッサは、前記動作モードが前記画像安定化モードである場合に、前記メカコン処理を前記複数のコアのうち２以上のコアで実行するように構成される、請求項７または８に記載の画像形成装置。
【請求項１３】
前記動作モードは、前記画像形成機構が画像形成可能な状態で待機する待機モードを含み、
前記マルチコアプロセッサは、前記動作モードが前記待機モードである場合に、前記複数のコアのうち１のコアで前記メカコン処理および前記コントローラー処理を実行するように構成される、請求項７または８に記載の画像形成装置。
【請求項１４】
前記動作モードは、前記画像形成装置の消費電力を抑制するためのスリープモードを含み、
前記マルチコアプロセッサは、前記動作モードが前記スリープモードである場合に、前記複数のコアのうち１のコアで前記コントローラー処理を実行するように構成される、請求項７または８に記載の画像形成装置。
【請求項１５】
前記画像形成装置は、前記記録媒体を搬送するための搬送経路をさらに備え、
前記マルチコアプロセッサは、前記搬送経路上における記録媒体の枚数が予め定められた枚数以上の場合に、前記複数のコアのうち前記メカコン処理を実行するためのコアの数を増やすように構成される、請求項１〜１４のいずれか１項に記載の画像形成装置。
【請求項１６】
前記画像形成装置は、当該画像形成装置に記録媒体を供給するための給紙装置を装着可能に構成され、
前記マルチコアプロセッサは、前記複数のコアのうち前記メカコン処理を実行するためのコアの数を、前記給紙装置が前記画像形成装置に装着されていない状態よりも、前記給紙装置が前記画像形成装置に装着されている状態の方が多くなるようにする、請求項１〜１５のいずれか１項に記載の画像形成装置。
【請求項１７】
前記画像形成装置は、当該画像形成装置の状態を検出するためのセンサーをさらに備え、
前記マルチコアプロセッサは、前記センサーの検出結果に基づくデータ解析処理を行なう場合に、前記複数のコアのうち１のコアで当該データ解析処理のみを実行するように構成される、請求項１〜１６のいずれか１項に記載の画像形成装置。
【請求項１８】
前記マルチコアプロセッサは、前記メカコン処理を実行するコアの負荷が予め定められた負荷を超えた場合に、前記コントローラー処理を実行するコアであって前記切替制御部を含むコアのうち最も負荷が軽いコアに当該メカコン処理の一部を実行させる、請求項１〜１７のいずれか１項に記載の画像形成装置。
【請求項１９】
前記マルチコアプロセッサは、処理の起動回数および処理に要する時間のうち少なくとも一方に基づいて前記メカコン処理の一部を決定する、請求項１８に記載の画像形成装置。
【請求項２０】
前記マルチコアプロセッサは、前記複数のコアのうち第１および第２コアを含む２以上のコアで前記コントローラー処理を実行している場合に、前記第１および第２コアの負荷の総和が予め定められた負荷未満であるときは、前記第１および第２コアのうち負荷の軽いコアで実行されているコントローラー処理を、負荷の重いコアで実行する、請求項１〜１９のいずれか１項に記載の画像形成装置。
【請求項２１】
前記メカコン処理を実行するコアは、予め定められた容量以上のデータを前記共有メモリに基づいて前記コントローラー処理を実行するコアに送信する場合に、前記第１のＯＳにおける通信処理を、前記コントローラー処理を実行するコアであって前記切替制御部を含むコアのうち、前記第２のＯＳにおける通信処理を実行するコアに実行させる、請求項５に記載の画像形成装置。
【請求項２２】
前記画像形成装置は、当該画像形成装置の状態を検出するためのセンサーをさらに備え、
前記予め定められた容量以上のデータは、前記画像形成装置の異常を検出するために用いられる前記センサーの検出結果を含む、請求項２１に記載の画像形成装置。
【請求項２３】
前記予め定められた容量以上のデータは、前記画像形成装置の異常が検出された場合に当該異常の原因を特定するために必要なログデータを含む、請求項２１に記載の画像形成装置。
【請求項２４】
前記画像形成装置は、前記メカコン処理を実行するために用いられる周辺回路をさらに含み、
前記マルチコアプロセッサは、前記複数のコアのうち１のコアで前記周辺回路にアクセスするメカコン処理を実行するように構成される、請求項１〜２３のいずれか１項に記載の画像形成装置。
【請求項２５】
前記画像形成装置は、前記メカコン処理を実行するために用いられる周辺回路をさらに含み、
前記マルチコアプロセッサは、前記第２のＯＳで実行する前記コントローラー処理から、前記周辺回路へのアクセスを禁止するように構成される、請求項１〜２４のいずれか１項に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、画像形成装置に関し、より特定的には、マルチコアプロセッサを備える画像形成装置に関する。
【背景技術】
【０００２】
一般的な画像形成装置は、主にメカ機構（例えばモーター）を制御するメカコン処理と、主に画像形成装置で扱うデータを処理（例えば画像処理）するコントローラー処理とをそれぞれ別々のプロセッサで処理している。
【０００３】
メカコン処理は、所定のタイミングに実行される必要がある。そのため、メカコン処理を行なうプロセッサの多くは、リアルタイムＯＳ（Operation System）（以下「ＲＴＯＳ」とも言う）上でメカコン処理を実行する。一方、コントローラー処理は、画像形成装置の生産性向上などに伴い高速に処理される必要がある。そのため、近年の画像形成装置は、処理性能が高いコアが複数搭載されたマルチコアプロセッサを用いて汎用ＯＳ（例えばＬｉｎｕｘ（登録商標））上でコントローラー処理を実行する傾向がある。
【０００４】
このマルチコアプロセッサは、本来メカコン処理およびコントローラー処理の両方を行なうだけの能力を持っている。１つのマルチコアプロセッサで両方の処理を行なうことができれば、画像形成装置の製造コストが削減される。しかし、１つのマルチコアプロセッサがこれらの処理を行なった場合、メカコン処理に要求されるリアルタイム性能を満たせないという問題がある。
【０００５】
このリアルタイム性能の向上に関し、例えば、特開２０１６−０６３４０７号公報（特許文献１）は、「複数のコアで構成されるＣＰＵを含むプロセッサを備え、複数のコアの内の少なくとも１つの所定のコアを、タスクスイッチングによる処理の切り替えが相対的に多い第１の制御方法で動作させ、所定のコア以外の１または複数の他のコアを、タスクスイッチングによる処理の切り替えが相対的に少ない第２の制御方法で動作させ」る画像形成装置を開示している（「要約」参照）。
【０００６】
特開２０１６−１７７４２３号公報（特許文献２）は、マルチコアプロセッサにおける消費電力の抑制を目的として、「制御対象の状況を表す情報から所定時間後の制御対象の状態を推定し、切換えの対象となる制御装置における制御対象の状態の変化に伴って発生する処理負荷に耐えうるようにＣＰＵコアの必要性を判断し、対象となる制御装置にＣＰＵコアの起動，停止の切換えを指示」する制御装置を開示している（「要約」参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−０６３４０７号公報
【特許文献２】特開２０１６−１７７４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の特許文献１に開示される技術は、所定のコアが汎用ＯＳ上でリアルタイム性能が要求される制御を行ない、所定のコア以外の他のコアが汎用ＯＳ上でリアルタイム性能が要求されない制御を行なうものである。しかしながら、汎用ＯＳは処理（タスク）の切り替えに時間がかかる。そのため、特許文献１に開示される技術は、メカコン処理に要求される高いリアルタイム性能を満たせない場合がある。したがって、１つのマルチコアプロセッサでメカコン処理とコントローラー処理とを行なうことができる画像形成装置が必要とされている。
【０００９】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、１つのマルチコアプロセッサでメカコン処理とコントローラー処理とを行なうことができる画像形成装置を提供することである。
【課題を解決するための手段】
【００１０】
ある実施形態に従う画像形成装置は、複数のコアを有するマルチコアプロセッサと、記録媒体に画像を形成するための画像形成機構とを備える。複数のコアの少なくとも１つのコアは、当該コアが実行するＯＳとして、画像形成機構を制御するメカコン処理を実行するための第１のＯＳと、コントローラー処理を実行するための第２のＯＳとを切り替えるための切替制御部を含む。
【００１１】
好ましくは、コントローラー処理は、画像処理、ユーザーインターフェース処理、ネットワーク処理、記憶装置処理、ファックス処理、およびメール処理のうち少なくとも１つの処理を含む。
【００１２】
好ましくは、画像形成装置は、複数の動作モードを切り替え可能に構成される。マルチコアプロセッサは、複数の動作モードのうち第１の動作モードでは、メカコン処理とコントローラー処理とを異なるコアで実行し、複数の動作モードのうち第２の動作モードでは、メカコン処理とコントローラー処理とを同じコアで実行するように構成される。
【００１３】
さらに好ましくは、切替制御部は、メカコン処理をコントローラー処理よりも優先するように構成される。
【００１４】
好ましくは、マルチコアプロセッサは、複数のコアの各々がアクセス可能な共有メモリを含む。第１のＯＳを実行するコアと第２のＯＳを実行するコアとは、共有メモリに基づいて互いに通信するように構成される。
【００１５】
好ましくは、画像形成機構は、記録媒体に画像を定着させるための定着装置を含む。マルチコアプロセッサの起動時において、第２のＯＳを実行するコアが当該第２のＯＳの初期化処理を行なっている間に、第１のＯＳを実行するコアは定着装置を制御するメカコン処理を実行するように構成される。
【００１６】
好ましくは、画像形成装置は、複数の動作モードを切り替え可能に構成される。マルチコアプロセッサは、動作モードに応じて、複数のコアのうち、メカコン処理を実行するコアと、コントローラー処理を実行するコアとをそれぞれ決定するように構成される。
【００１７】
さらに好ましくは、マルチコアプロセッサは、動作モードに応じて、複数のコアよりも少ない数のコアによりメカコン処理およびコントローラー処理を実行し、複数のコアのうちメカコン処理およびコントローラー処理のいずれの処理も実行しないコアへの電力供給を遮断するように構成される。
【００１８】
好ましくは、動作モードは、画像形成機構が印字処理中であることを表す印字モードを含む。マルチコアプロセッサは、動作モードが印字モードである場合に、メカコン処理を行なうコアとコントローラー処理を行なうコアとが異なるコアとなるように決定を行なう。
【００１９】
さらに好ましくは、マルチコアプロセッサは、動作モードが印字モードである場合に、メカコン処理を複数のコアのうち予め定められた１のコアで実行するように構成される。
【００２０】
好ましくは、動作モードは、原稿読取装置で原稿を読み取るスキャンモードおよび画像情報を外部装置との間で送受信するためのＦＡＸモードのうち少なくとも一方を含む。マルチコアプロセッサは、動作モードがスキャンモードまたはＦＡＸモードである場合に、印字モードの場合に用いられるコア数よりも少ない数のコア数でメカコン処理およびコントローラー処理を実行するように構成される。
【００２１】
好ましくは、画像形成装置は、画像形成機構によって形成された画像の濃度を検出するための濃度センサーをさらに備える。動作モードは、濃度センサーの検出結果に基づいて画像形成機構における画像形成条件を制御する画像安定化モードを含む。マルチコアプロセッサは、動作モードが画像安定化モードである場合に、メカコン処理を複数のコアのうち２以上のコアで実行するように構成される。
【００２２】
好ましくは、動作モードは、画像形成機構が画像形成可能な状態で待機する待機モードを含む。マルチコアプロセッサは、動作モードが待機モードである場合に、複数のコアのうち１のコアでメカコン処理およびコントローラー処理を実行するように構成される。
【００２３】
好ましくは、動作モードは、画像形成装置の消費電力を抑制するためのスリープモードを含む。マルチコアプロセッサは、動作モードがスリープモードである場合に、複数のコアのうち１のコアでコントローラー処理を実行するように構成される。
【００２４】
好ましくは、画像形成装置は、記録媒体を搬送するための搬送経路をさらに備える。マルチコアプロセッサは、搬送経路上における記録媒体の枚数が予め定められた枚数以上の場合に、複数のコアのうちメカコン処理を実行するためのコアの数を増やすように構成される。
【００２５】
好ましくは、画像形成装置は、当該画像形成装置に記録媒体を供給するための給紙装置を装着可能に構成される。マルチコアプロセッサは、複数のコアのうちメカコン処理を実行するためのコアの数を、給紙装置が画像形成装置に装着されていない状態よりも、給紙装置が画像形成装置に装着されている状態の方が多くなるようにする。
【００２６】
好ましくは、画像形成装置は、当該画像形成装置の状態を検出するためのセンサーをさらに備える。マルチコアプロセッサは、センサーの検出結果に基づくデータ解析処理を行なう場合に、複数のコアのうち１のコアで当該データ解析処理のみを実行するように構成される。
【００２７】
好ましくは、マルチコアプロセッサは、メカコン処理を実行するコアの負荷が予め定められた負荷を超えた場合に、コントローラー処理を実行するコアであって切替制御部を含むコアのうち最も負荷が軽いコアに当該メカコン処理の一部を実行させる。
【００２８】
さらに好ましくは、マルチコアプロセッサは、処理の起動回数および処理に要する時間のうち少なくとも一方に基づいてメカコン処理の一部を決定する。
【００２９】
好ましくは、マルチコアプロセッサは、複数のコアのうち第１および第２コアを含む２以上のコアでコントローラー処理を実行している場合に、第１および第２コアの負荷の総和が予め定められた負荷未満であるときは、第１および第２コアのうち負荷の軽いコアで実行されているコントローラー処理を、負荷の重いコアで実行する。
【００３０】
さらに好ましくは、メカコン処理を実行するコアは、予め定められた容量以上のデータを共有メモリに基づいてコントローラー処理を実行するコアに送信する場合に、第１のＯＳにおける通信処理を、コントローラー処理を実行するコアであって切替制御部を含むコアのうち、第２のＯＳにおける通信処理を実行するコアに実行させる。
【００３１】
さらに好ましくは、画像形成装置は、当該画像形成装置の状態を検出するためのセンサーをさらに備える。予め定められた容量以上のデータは、画像形成装置の異常を検出するために用いられるセンサーの検出結果を含む。
【００３２】
さらに好ましくは、予め定められた容量以上のデータは、画像形成装置の異常が検出された場合に当該異常の原因を特定するために必要なログデータを含む。
【００３３】
好ましくは、画像形成装置は、メカコン処理を実行するために用いられる周辺回路をさらに含む。マルチコアプロセッサは、複数のコアのうち１のコアで周辺回路にアクセスするメカコン処理を実行するように構成される。
【００３４】
好ましくは、画像形成装置は、メカコン処理を実行するために用いられる周辺回路をさらに含む。マルチコアプロセッサは、第２のＯＳで実行するコントローラー処理から、周辺回路へのアクセスを禁止するように構成される。
【発明の効果】
【００３５】
ある実施形態に従う画像形成装置は、１つのマルチコアプロセッサでコントローラー処理を実行し、かつ正確なタイミングでメカコン処理を実行できる。
【００３６】
開示された技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００３７】
【図１】実施形態に従う画像形成装置の外観構成を表す図である。
【図２】実施形態に従う画像形成装置の電気的な構成を表す図である。
【図３】コアの構成を表すブロック図である。
【図４】切替制御部の処理を説明するための図である。
【図５】マルチコアプロセッサの初期動作の一例を表すシーケンス図である。
【図６】共有メモリを利用した汎用ＯＳとＲＴＯとの間でのデータの送受信処理を表すフローチャートである。
【図７】動作モードの切り替えに応じて汎用ＯＳおよびＲＴＯＳの各々が行なう処理を表すフローチャートである。
【図８】切替テーブルのデータ構造の一例を表す図である。
【図９】メカコンコアからコントローラーコアへメカコン処理を移動する処理を表すフローチャートである。
【図１０】コントローラーコアの数を減らす処理を表すフローチャートである。
【図１１】ある局面に従う汎用ＯＳとＲＴＯＳとの通信を説明するための図である。
【図１２】実施形態に従う汎用ＯＳとＲＴＯＳとの通信を説明するための図である。
【図１３】コントローラーコアのアクセスを制限する処理を説明するための図である。
【発明を実施するための形態】
【００３８】
以下、この技術的思想の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００３９】
［画像形成装置の構成］
図１は、実施形態に従う画像形成装置１００の外観構成を表す図である。図１を参照して、画像形成装置１００は、複数の給紙カセット１１０と、画像形成機構１２０と、排紙トレイ１３０と、操作パネル１４０と、スキャナー１５０と、ＡＤＦ（Auto Document Feeder）１６０とを備える。
【００４０】
各給紙カセット１１０には用紙（記録媒体）が格納されている。給紙カセット１１０は、印刷指示の入力に応答して、用紙を搬送経路に送り出す。これにより、画像形成機構１２０に用紙が供給される。
【００４１】
画像形成機構１２０は、定着装置１２２を含む、用紙に画像を形成するために必要な各種デバイスを有する。一例として、画像形成機構１２０は、Ｙ（イエロー）色、Ｍ（マゼンタ）色、Ｃ（シアン）色、およびＫ（ブラック）色の各色毎に、図示しない感光体、帯電装置、露光装置、現像装置、および１次転写装置を含む。また、画像形成機構１２０は、図示しない中間転写体と、２次転写装置とをさらに含む。画像形成機構１２０は、公知の電子写真技術に従い、これらのデバイスによって用紙に画像を形成する。画像形成機構１２０によって画像を形成された用紙は、排紙トレイ１３０に排出される。
【００４２】
操作パネル１４０は、タッチスクリーンと、ディスプレイと、複数の物理ボタンとを含む。操作パネル１４０は、ユーザから入力された内容を表す信号を後述するマルチコアプロセッサ２００に出力する。
【００４３】
スキャナー１５０は、図示しないプランテンガラス上に載置された原稿を光学的に読み取る原稿読取装置として機能する。スキャナー１５０は、読み取った画像情報をマルチコアプロセッサ２００に出力する。ＡＤＦ１６０は、積載される用紙を最上層のものから搬送路に送り出す。
【００４４】
画像形成装置１００は、給紙装置１７０と接続可能に構成される。給紙装置１７０は、複数の用紙を収容する。また、給紙装置１７０は、画像形成機構１２０に導く搬送経路に収容された用紙を送り出す。
【００４５】
図２は、実施形態に従う画像形成装置１００の電気的な構成を表す図である。図２に示されるように、画像形成装置１００は、複数のコアを有するマルチコアプロセッサ２００を含む。
【００４６】
マルチコアプロセッサ２００は、コア１、コア２、コア３、およびコア４の４つのコアを有する。これらコア１〜コア４の各々はバス２１０に接続されている。
【００４７】
コントローラー周辺回路２２０と共有メモリ２４０とメカコン周辺回路２６０とがバス２１０にさらに接続されている。
【００４８】
コントローラー周辺回路２２０は、電源回路ＩＦ（インターフェース）２２１と、ＨＤＤ（Hard Disk Drive）ＩＦ２２２と、パネルＩＦ２２３と、ネットワークＩＦ２２４と、スキャナー入力部２２５と、画像出力部２２６と、フラッシュＩＦ２２７とを含む。
【００４９】
電源回路ＩＦ２２１は、電源回路２３１に接続されている。電源回路２３１は、各種デバイスに電力を供給する。ＨＤＤＩＦ２２２は、ＨＤＤ２３４に接続されている。ＨＤＤ２３４は、画像情報などを格納している。
【００５０】
パネルＩＦ２２３は、操作パネル１４０に接続されている。パネルＩＦ２２３は、操作パネル１４０に入力されたユーザ操作を示す信号をマルチコアプロセッサ２００に出力する。ネットワークＩＦ２２４は、外部のクライアント端末（例えばパソコン）と接続するためのカードまたはボードであり、一例としてＬＡＮ（Local Area Network）を介してクライアント装置から入力されるプリントジョブのデータをマルチコアプロセッサ２００へ出力する。
【００５１】
スキャナー入力部２２５は、スキャナー１５０によって読み取られた画像情報をマルチコアプロセッサ２００に出力する。画像出力部２２６は、スキャナー入力部２２５を介してスキャナー１５０から入力された画像情報、または外部のクライアント装置から入力された画像情報に基づいて、画像形成に用いられるドットデータを生成する。
【００５２】
フラッシュＩＦ２２７は、フラッシュＲＯＭ２３６に接続されている。フラッシュＲＯＭ２３６は、汎用ＯＳ２３７と、切替テーブル２３８とを格納している。切替テーブル２３８については後述する。
【００５３】
コントローラー周辺回路２２０は、マルチコアプロセッサ２００がコントローラー処理を実行するために用いられる回路である。コントローラー処理は、画像処理、ユーザーインターフェース処理、ネットワーク処理、記憶装置処理、ファックス処理、メール処理などを含む。
【００５４】
画像処理は、例えば、マルチコアプロセッサ２００が、スキャナー入力部２２５を介してスキャナー１５０から入力された画像情報、またはネットワークＩＦ２２４を介して外部のクライアント装置から入力された画像情報に基づく処理を言う。
【００５５】
ユーザーインターフェース処理は、例えば、マルチコアプロセッサ２００がパネルＩＦ２２３を介して操作パネルとデータを送受信する処理を言う。
【００５６】
ネットワーク処理は、マルチコアプロセッサ２００が外部装置とデータを送受信するために必要な処理（例えば、ＴＣＰ（Transmission Control Protocol）、ＩＰ（Internet Protocol）、Ｅｔｈｅｒｎｅｔ（登録商標）における処理）を言う。
【００５７】
記憶装置処理は、例えば、マルチコアプロセッサ２００がＨＤＤＩＦ２２２を介してＨＤＤ２３４に格納されるデータにアクセスする処理を言う。
【００５８】
ファックス処理は、例えば、マルチコアプロセッサ２００がネットワークＩＦ２２４を介して外部装置との間で画像情報を送受信する処理を言う。
【００５９】
メール処理は、例えば、マルチコアプロセッサ２００がネットワークＩＦ２２４を介して外部装置との間で電子メールを送受信する処理を言う。
【００６０】
共有メモリ２４０は、コア１〜コア４のいずれもがアクセス可能なメモリであって、揮発性メモリによって構成され得る。一例として、共有メモリ２４０は、ＳＲＡＭ（Static Random Access Memory）によって構成される。
【００６１】
メカコン周辺回路２６０は、ＧＰＩＯ（General-Purpose Input/Output）２６１と、モーター制御部２６２と、ＳＲＡＭ２６３と、フラッシュＩＦ２６４とを含む。
【００６２】
ＧＰＩＯ２６１は、定着装置１２２およびセンサー２７１群に接続されている。センサー２７１群は、例えば、搬送経路上で用紙が通過したことを光学的に検出するための用紙検出センサー、中間転写ベルト上に１次転写されたトナー像の濃度を光学的に検出するための濃度センサーなど、画像形成装置１００の状態を検出するための各種のセンサーを含む。
【００６３】
モーター制御部２６２は、モーター群２７２に接続されている。モーター群２７２は、用紙を搬送するための搬送ローラーを駆動するためのモーター、感光体を駆動するためのモーターなど、各種のモーターを含む。
【００６４】
ＳＲＡＭ２６３は、画像形成機構１２０を制御するためのメカコン処理（メカコントローラー処理）を実行するコアのワーキングメモリとして機能する。フラッシュＩＦ２６４は、フラッシュＲＯＭ２７４に接続されている。フラッシュＲＯＭ２７４は、ＲＴＯＳ２７５と、切替テーブル２７６とを格納している。切替テーブル２７６については後述する。
【００６５】
なお、他の局面において、メカコン周辺回路２６０は、ＲＴＣ（Real Time Clock）、Ｉ２Ｃ（Inter-Integrated Circuit）、ＳＰＩ（Serial Peripheral Interface）、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）などを含んでいても良い。
【００６６】
メカコン周辺回路２６０は、マルチコアプロセッサ２００が画像形成機構１２０を制御するためのメカコン処理を実行するために用いられる。メカコン処理は周期的に実行される処理（以下、「周期処理」とも言う）とイベントによって実行される処理を含む。周期処理は、例えば、１ｍｓ毎、１０ｍｓ毎、および１００ｍｓ毎に実行される処理を含む。より具体的には、周期処理は、用紙検出センサーの検出結果に従いモーター群２７２を制御する処理、画像形成機構１２０に含まれる帯電装置，現像装置，転写装置およびモーター群２７２を制御してトナー像を作像する処理、定着装置１２２に含まれる図示しないヒーターの温度を調節する処理（以下、「温調処理」とも言う）、搬送経路上のモーター群２７２を駆動して用紙を搬送する処理などを含む。また、メカコン処理は、マルチコアプロセッサ２００がＧＰＩＯ２６１を介してセンサー２７１群の検出結果を取得する処理を含む。
【００６７】
［汎用ＯＳ２３７とＲＴＯＳ２７５との対比］
汎用ＯＳ２３７は、メモリ管理、ファイル管理などの複数の処理を時分割で実行する（ラウンドロビン方式）。汎用ＯＳ２３７は、高機能であるが故に管理しなければならないデータが多い。そのため、汎用ＯＳ２３７は、処理（タスク）の切り替え時に多くの管理データをメモリに退避およびメモリから復帰しなければならず、処理の切替時間が長くなる（例えば、数ｍｓｅｃ）。そのため、汎用ＯＳ２３７は、要求されるリアルタイム性能が高いメカコン処理（例えば、１ｍｓ毎に実行されるべき周期処理）を、正確なタイミングで実行することが難しい。メカコン処理が正確なタイミングで実行されない場合、例えば、モーターの脱調によるジャム、用紙検出センサーの検出タイミングずれによる画像書き出し位置のずれ、およびジャムの誤検知などが生じ得る。
【００６８】
一方、ＲＴＯＳ２７５は、複数の処理を時分割で行なうのではなく、予め定められた優先順位に従って実行する。そのため、ＲＴＯＳ２７５は、第１の処理を実行中に、当該第１の処理より優先順位の高い第２の処理が入力された場合、当該第２の処理を優先的に実行する。そのため、ＲＴＯＳ２７５は、汎用ＯＳ２３７に比して高いリアルタイム性能を有する。
【００６９】
［ＯＳを切り替えるための切替制御部］
図３は、コア１〜コア４の構成を表すブロック図である。図３に示されるように、コア１は切替制御部３１０を、コア２は切替制御部３２０を、コア３は切替制御部３３０を、コア４は切替制御部３４０を、それぞれ有する。
【００７０】
切替制御部３１０〜３４０の機能はそれぞれ同じであるため、切替制御部３１０の機能について説明する。切替制御部３１０は、対応するコア１が実行するＯＳとして、メカコン処理を実行するためのＲＴＯＳ２７５と、コントローラー処理を実行するための汎用ＯＳ２３７とを切り替える。
【００７１】
より具体的には、各コア１〜コア４は、特権モードとユーザーモードとを有している。特権モードはユーザーモードよりも優先して動作する。切替制御部３１０は、コア１の特権モードとユーザーモードとを切り替えることにより、ＲＴＯＳ２７５と汎用ＯＳ２３７とを切り替える。ＲＴＯＳ２７５が特権モードに対応し、汎用ＯＳ２３７がユーザーモードに対応する。以下、図４を用いて、切替制御部３１０がＯＳを切り替えるタイミングについて説明する。
【００７２】
図４は、切替制御部３１０の処理を説明するための図である。図４を参照して、時刻Ｔ１において、コア１に電力供給が開始される。これに伴い、切替制御部３１０は、時刻Ｔ１〜時刻Ｔ２にわたりＲＴＯＳ２７５のＢＯＯＴ処理を実行する。
【００７３】
時刻Ｔ２〜時刻Ｔ３にわたり、コア１はＲＴＯＳ２７５上で複数のメカコン処理を実行する（図４において各四角は処理（タスク）の単位を表す）。なお、実行すべきメカコン処理が存在しない場合、上記の処理は省略される。
【００７４】
時刻Ｔ３にて、切替制御部３１０は、メカコン処理が全て完了したことに応じて、コア１が実行するＯＳをＲＴＯＳ２７５から汎用ＯＳ２３７に切り替えるために、汎用ＯＳ２３７の初期化処理を実行する。
【００７５】
時刻Ｔ４にて、コア１は汎用ＯＳ２３７のＢＯＯＴ処理を開始する。時刻Ｔ５にて、汎用ＯＳ２３７のＢＯＯＴ処理の途中で、ＲＴＯＳ２７５側の割り込みが発生した。これに応じて、切替制御部３１０は、コア１が実行するＯＳを汎用ＯＳ２３７からＲＴＯＳ２７５に切り替えるために、ＲＴＯＳ２７５の初期化処理を実行する。時刻Ｔ６にて、コア１はＲＴＯＳ２７５上で、時刻Ｔ５で発生した割り込みに対応するメカコン処理４１０を実行する。
【００７６】
時刻Ｔ７にて、メカコン処理４２０が実行されている最中にメカコン処理４３０の割り込みが発生した。これに応じてコア１は、メカコン処理４２０を中断してメカコン処理４３０を実行し、メカコン処理４３０が完了した時刻Ｔ８に中断していたメカコン処理４２０を再開する。
【００７７】
時刻Ｔ９にて、切替制御部３１０は、メカコン処理が全て完了したことに応じて、コア１が実行するＯＳをＲＴＯＳ２７５から汎用ＯＳ２３７に切り替えるために、汎用ＯＳ２３７の初期化処理を実行する。時刻Ｔ１０にて、コア１は、汎用ＯＳ２３７のＢＯＯＴ処理を再開し、時刻Ｔ１１にてＢＯＯＴ処理を完了する。その後、コア１は、汎用ＯＳ２３７上でコントローラー処理４４０を実行する。
【００７８】
時刻Ｔ１２にて、ＲＴＯＳ２７５側の割り込みが発生した。これに応じて、切替制御部３１０は、コア１が実行するＯＳを汎用ＯＳ２３７からＲＴＯＳ２７５に切り替えるために、ＲＴＯＳ２７５の初期化処理を実行する。時刻Ｔ１３にて、コア１はＲＴＯＳ２７５上で、時刻Ｔ１２で発生した割り込みに対応するメカコン処理４５０を実行する。
【００７９】
時刻Ｔ１４にて、メカコン処理４５０の実行中に汎用ＯＳ２３７側の割り込みが発生した。係る場合、当該割り込みに対応するコントローラー処理４６０は全てのメカコン処理が完了するまで保留される。そのため、時刻Ｔ１５〜時刻Ｔ１６にわたり切替制御部３１０がコア１がＲＴＯＳ２７５の初期化を行なった後に、コア１は汎用ＯＳ２３７上でコントローラー処理４６０を実行する。
【００８０】
上記のように、切替制御部３１０は、（１）電源投入時にＲＴＯＳ２７５のＢＯＯＴ処理を実行すること、（２）実行すべきメカコン処理が全て完了したことに応じて、対応するコア１が実行するＯＳを汎用ＯＳ２３７に切り替えること、および（３）コントローラー処理の実行中にＲＴＯＳ２７５の割り込みが発生した場合に、対応するコア１が実行するＯＳをＲＴＯＳ２７５に切り替えること、の処理を実行する。（２）および（３）の処理が示すように、切替制御部３１０は、メカコン処理をコントローラー処理よりも優先する。
【００８１】
上記によれば、各コア１〜コア４は、対応する切替制御部３１０〜３４０の作用により、コントローラー処理を実行し、かつ、メカコン処理を遅延なく正確なタイミングで実行できるため、メカコン処理の遅延により生じる不具合（ジャムなど）を抑制できる。
【００８２】
［電源ＯＮ時のマルチコアプロセッサの処理］
次に、画像形成装置１００に電力供給が開始された際のマルチコアプロセッサ２００の処理について説明する。一例として、画像形成装置１００に電力供給が開始されると、マルチコアプロセッサ２００のコア１〜コア３が汎用ＯＳ２３７上でコントローラー処理を実行し、コア４がＲＴＯＳ２７５上でメカコン処理を実行するように構成される。
【００８３】
図５は、マルチコアプロセッサ２００の初期動作の一例を表すシーケンス図である。ステップＳ５１０において、マルチコアプロセッサ２００を含む画像形成装置１００に電力供給が開始される。マルチコアプロセッサ２００は、電力供給の開始を受けて、コア１〜コア４のうち、ひとつのコアが起動する。「起動」とは、デバイスが電力を供給されて動作を開始することを表す。図５に示される例では、コア１が起動する。
【００８４】
ステップＳ５１５にて、コア１の切替制御部３１０は、ＲＴＯＳ２７５のＢＯＯＴ処理および初期化処理を実行する。ステップＳ５２０にて、コア１の切替制御部３１０は、他のコア２〜コア４を起動する。
【００８５】
ステップＳ５２５にて、コア２は、ＲＴＯＳ２７５の初期化処理を実行する。ステップＳ５３０にて、コア３は、ＲＴＯＳ２７５の初期化処理を実行する。ステップＳ５１５、Ｓ５２５およびＳ５３０におけるＲＴＯＳ２７５の初期化処理は、ＲＴＯＳ２７５上で実行される処理（つまりメカコン処理）が存在しないことを確認する処理である。ステップＳ５３５にて、コア１〜コア３は、汎用ＯＳ２３７の初期化処理を実行する。
【００８６】
ステップＳ５４０にて、コア４は、ＲＴＯＳ２７５の初期化処理を実行する。ステップＳ５４５にて、コア４は、ＲＴＯＳ２７５の初期化後、ＧＰＩＯ２６１の初期化処理を実行する。ステップＳ５５０にて、コア４は、定着装置１２２に含まれる加熱ローラーの温度が予め定められた温度になるように、図示しないヒーターの温度を調節する温調処理（ウォームアップ処理）を実行する。ステップＳ５５５にて、コア４は、実行すべき他のメカコン処理を実行する。
【００８７】
ステップＳ５６０にて、コア１〜コア３は、汎用ＯＳ２３７上でコントローラー処理処理を実行する。
【００８８】
上述のステップＳ５３５に示される汎用ＯＳ２３７の初期化処理は、長い時間（例えば１０秒以上）を要する。この処理の間に、コア４は、ＲＴＯＳ２７５上で、ステップＳ５４５〜Ｓ５５５に示されるメカコン処理を実行する。これにより、実施形態に従う画像形成装置１００は、電力供給を開始されてから印字が可能な状態になるまでの時間を短縮できる。
【００８９】
［ＯＳ間の通信］
次に、汎用ＯＳ２３７とＲＴＯＳ２７５との間での通信について説明する。本実施形態において、汎用ＯＳ２３７とＲＴＯＳ２７５とは、コア１〜コア４のいずれもがアクセス可能な共有メモリ２４０を利用してデータの送受信を行なう。より具体的には、汎用ＯＳ２３７およびＲＴＯＳ２７５はそれぞれ、共有メモリ送信関数と共有メモリ受信関数とを有しており、これらの関数を実行することによりデータの送受信を行なう。図６を用いて具体的な処理について説明する。
【００９０】
図６は、共有メモリ２４０を利用した汎用ＯＳ２３７とＲＴＯＳ２７５との間でのデータの送受信処理を表すフローチャートである。なお、図６の例において、コア１が汎用ＯＳ２３７を実行し、コア４がＲＴＯＳ２７５を実行している。
【００９１】
図６を参照して、ステップＳ６１０〜Ｓ６３０は汎用ＯＳ２３７からＲＴＯＳ２７５にデータを送信する処理を、ステップＳ６６０〜Ｓ６８０はＲＴＯＳ２７５から汎用ＯＳ２３７にデータを送信する処理をそれぞれ表す。
【００９２】
ステップＳ６１０にて、汎用ＯＳ２３７（コア１）は、ＲＴＯＳ２７５にデータを送信するために共有メモリ送信関数を実行する。これにより、汎用ＯＳ２３７（コア１）は、送信データを共有メモリ２４０に格納する（ステップＳ６１５）。ステップＳ６２０にて、汎用ＯＳ２３７（コア１）は、ＲＴＯＳ２７５（コア４）に対して受信割り込みをかける。
【００９３】
ステップＳ６２５にて、ＲＴＯＳ２７５（コア４）は、受信割り込みに応じて共有メモリ受信関数を実行する。これにより、ＲＴＯＳ２７５（コア４）は、共有メモリ２４０から格納された送信データを受信する（ステップＳ６３０）。
【００９４】
ステップＳ６６０にて、ＲＴＯＳ２７５（コア４）は、汎用ＯＳ２３７にデータを送信するために共有メモリ送信関数を実行する。これにより、ＲＴＯＳ２７５（コア４）は、送信データを共有メモリ２４０に格納する（ステップＳ６６５）。ステップＳ６７０にて、ＲＴＯＳ２７５（コア４）は、汎用ＯＳ２３７（コア１）に対して受信割り込みをかける。
【００９５】
ステップＳ６７５にて、汎用ＯＳ２３７（コア１）は、受信割り込みに応じて共有メモリ受信関数を実行する。これにより、汎用ＯＳ２３７（コア１）は、共有メモリ２４０から格納された送信データを受信する（ステップＳ６８０）。
【００９６】
上記によれば、汎用ＯＳ２３７とＲＴＯＳ２７５とは、共有メモリ２４０を利用して互いに通信できる。従来、メカコン処理とコントローラー処理とを異なる２つのプロセッサで実行していた画像形成装置は、当該２つのプロセッサ間で通信を行なうための専用の通信線などを有する必要があった。これに対し、実施形態に従う画像形成装置１００は、共有メモリ２４０を利用することにより、専用の通信線を有することなく汎用ＯＳ２３７とＲＴＯＳ２７５との間の通信を実現できる。そのため、画像形成装置１００は、従来の画像形成装置に比して、コスト削減および省スペース化を実現し得る。
【００９７】
［動作モードに応じた制御］
画像形成装置１００は、複数の動作モードを有する。一例として、画像形成装置１００は、印字モード、スキャンモード、ＦＡＸモード、画像安定化モード、待機モード、およびスリープモードを切り替え可能に構成される。
【００９８】
印字モードは、画像形成装置１００が印字ジョブを実行していること、換言すれば、画像形成機構１２０が印字処理中であることを表す。スキャンモードは、画像形成装置１００がスキャンジョブを実行していること、換言すれば、スキャナー１５０が原稿を読み取っていること、およびＡＤＦ１６０が原稿をスキャナー１５０に向けて搬送していること、を表す。
【００９９】
ＦＡＸモードは、画像形成装置１００がＦＡＸジョブを実行していること、換言すれば、画像情報を外部装置との間で送受信していることを表す。画像安定化モードは、画像形成装置１００が画像安定化処理を実行していることを表す。画像安定化処理は、センサー群２７１に含まれる濃度センサーにより検出されたトナー像の濃度に基づいて画像形成機構１２０における画像形成条件を制御する処理を表す。
【０１００】
待機モードは、画像形成機構１２０が画像形成可能な状態（例えば、定着装置における加熱ローラーの温度を所定温度に保つ状態）で待機していることを表す。スリープモードは、画像形成装置１００の消費電力を抑制するために、一部の制御系（例えばコア１）を除き、デバイスへの電力供給を遮断していることを表す。
【０１０１】
これら各動作モードにおいてマルチコアプロセッサ２００が要求されるメカコン処理およびコントローラー処理は異なる。そのため、実施形態に従う画像形成装置１００は、各コア１〜コア４が行なう処理を動作モードに応じて切り替えることにより、処理の最適化を行なう。また、画像形成装置１００は、メカコン処理およびコントローラー処理のいずれの処理も実行しないコアへの電力供給を遮断することにより、低消費電力化を実現する。
【０１０２】
図７および図８を用いて動作モードに応じた制御について具体的に説明する。図７は、動作モードの切り替えに応じて汎用ＯＳ２３７およびＲＴＯＳ２７５の各々が行なう処理を表すフローチャートである。図８は、切替テーブル２３８および切替テーブル２７６の各々についてのデータ構造の一例を表す。
【０１０３】
図７における汎用ＯＳ２３７の処理とＲＴＯＳ２７５の処理とは略同じであるため、以下汎用ＯＳ２３７の処理について説明する。ステップＳ７１０にて、汎用ＯＳ２３７は、画像形成装置１００の動作モードが切り替わったか否かを判断する。汎用ＯＳ２３７は、動作モードが切り替わったと判断した場合（ステップＳ７１０でＹＥＳ）、切替テーブル２３８を参照して、切り替え後の動作モードにおいて、コントローラー処理を実行するコア（以下、「コントローラーコア」とも言う）を特定する。
【０１０４】
ステップＳ７３０にて、汎用ＯＳ２３７は、上記特定されたコアのうち、所定のコアの切替制御部に対して所定の信号を出力する。所定の信号を入力された切替制御部は、対応するコアが実行するＯＳを汎用ＯＳ２３７に切り替える。より具体的には、切替制御部は、対応するコアのモードをユーザーモードに変更し、汎用ＯＳ２３７の初期化処理を実行する。その後、上記特定されたコアは、汎用ＯＳ２３７上でコントローラー処理を実行する。所定のコアは、動作モードの切り替え前にコントローラー処理を実行していないコア（つまり、メカコン処理を実行しているコアおよび起動していないコア）を表す。
【０１０５】
なお、ＲＴＯＳ２７５の場合は、切替テーブル２７６を参照して切り替え後の動作モードにおいてメカコン処理を実行するコア（以下、「メカコンコア」とも言う）を特定し（ステップＳ７２０）、特定されたコアがメカコン処理を実行する。
【０１０６】
図８の切替テーブル２３８および切替テーブル２７６において、「汎用ＯＳ」は対応するコアがコントローラー処理を実行することを表し、「ＲＴＯＳ」は対応するコアがメカコン処理を実行することを表し、「ＯＦＦ」は対応するコアがコントローラー処理およびメカコン処理のいずれも実行しないことを表す。以下、各動作モードにおける各コアの処理について説明する。
【０１０７】
（印字モード）
図８を参照して、印字モードにおいてコア１〜コア３は汎用ＯＳ２３７上でコントローラー処理を実行し、コア４はＲＴＯＳ２７５上でメカコン処理を実行する。より具体的には、コア１〜コア３は、コントローラーコアとして、画像処理、スキャン処理、ネットワーク処理、ユーザーインターフェース処理、メカコンコアとの間の通信処理（以下、「通信処理」とも言う）を実行する。コア４は、メカコンコアとして、モーター群２７２のうち画像形成機構１２０、スキャナー１５０、ＡＤＦ１６０、および搬送経路に設けられたモーターの制御および温調処理を行なう。
【０１０８】
上記のように、マルチコアプロセッサ２００は、印字モードにおいて、コントローラーコアとメカコンコアとを分ける。また、マルチコアプロセッサ２００は、印字モードにおいて予め定められた１のメカコンコア（コア４）でメカコン処理を実行する。
【０１０９】
（スキャンモード／ＦＡＸモード）
スキャンモードまたはＦＡＸモードにおいて、コア１およびコア２は汎用ＯＳ２３７上でコントローラー処理を実行し、コア４はＲＴＯＳ２７５上でメカコン処理を実行する。より具体的には、コア１およびコア２は、コントローラーコアとして、スキャン処理、ネットワーク処理、ユーザーインターフェース処理、通信処理を実行し、コア４は、メカコンコアとして、モーター群２７２のうちスキャナー１５０およびＡＤＦ１６０に設けられたモーターの制御を行なう。
【０１１０】
スキャンモードまたはＦＡＸモードにおいて実行される処理は印字モードにおいて実行される処理よりも少ない。そのため、マルチコアプロセッサ２００は、スキャンモードまたはＦＡＸモードである場合に、印字モードの場合に用いられるコア数（４つ）よりも少ない数のコア数（３つ）でメカコン処理およびコントローラー処理を実行する。
【０１１１】
コア３はコントローラー処理およびメカコン処理のいずれも実行しない。そのため、マルチコアプロセッサ２００は、コア３への電力供給を遮断する。
【０１１２】
（画像安定化モード）
画像安定化モードにおいて、コア１は汎用ＯＳ２３７上でコントローラー処理を実行し、コア２およびコア３はＲＴＯＳ２７５上でメカコン処理を実行する。より具体的には、コア１は、コントローラーコアとして、画像形成条件を算出する処理、ネットワーク処理、ユーザーインターフェース処理、通信処理を実行する。コア２およびコア３は、メカコンコアとして、画像安定化処理を実行するために必要なデータをセンサー群２７１から取得するとともにこれらのデータの規格化を行なう処理、およびモーター群２７２のうち画像形成機構１２０と搬送経路とに設けられたモーターの制御を行なう。
【０１１３】
このように、画像安定化モードにおけるメカコン処理は他のモードにおけるメカコン処理よりも負荷が重い。そのため、マルチコアプロセッサ２００は、画像安定化モードにおいて、メカコン処理を複数のコアのうち２以上のコアで実行する。
【０１１４】
コア４はコントローラー処理およびメカコン処理のいずれも実行しない。そのため、マルチコアプロセッサ２００は、コア４への電力供給を遮断する。
【０１１５】
（待機モード）
待機モードにおいて、コア１は、メカコン処理およびコントローラー処理の両方を実行する。より具体的には、コア１は待機モードにおいて、図４で説明した切替制御部３１０の作用により、ＲＴＯＳ２７５と汎用ＯＳ２３７とを略同時に実行する。
【０１１６】
待機モードにおいて、コア１はコントローラーコアとしてネットワーク処理を、メカコンコアとして温調処理を行なう。このように、待機モードにおけるコントローラー処理の負荷およびメカコン処理の負荷は小さい。そのため、マルチコアプロセッサ２００は、待機モードにおいて、複数のコアのうち１のコアでメカコン処理およびコントローラー処理を実行する。
【０１１７】
コア１〜コア３はコントローラー処理およびメカコン処理のいずれも実行しない。そのため、マルチコアプロセッサ２００は、コア１〜コア３への電力供給を遮断する。
【０１１８】
（スリープモード）
スリープモードにおいて、コア１はコントローラーコアとしてネットワーク処理を実行する。スリープモードにおいてメカコン処理は実行されない。そのため、マルチコアプロセッサ２００は、スリープモードにおいて、複数のコアのうち１のコアでコントローラー処理を実行する。
【０１１９】
コア１〜コア３はコントローラー処理およびメカコン処理のいずれも実行しない。そのため、マルチコアプロセッサ２００は、コア１〜コア３への電力供給を遮断する。
【０１２０】
一例として、動作モードが画像安定化モードから印字モードに切り替わる場合におけるマルチコアプロセッサ２００の処理を説明する。汎用ＯＳ２３７は、切替テーブル２３８に基づいてコア１〜コア３がコントローラー処理を実行するコアであると特定し、ＲＴＯＳ２７５は切替テーブル２７６に基づいてコア４がメカコン処理を実行するコアであると特定する。コア２およびコア３は、ＲＴＯＳ２７５から汎用ＯＳ２３７に切り替わる。そのため、汎用ＯＳ２３７は、コア２およびコア３に対して所定の信号を通知する。切替制御部３２０、切替制御部３３０は、当該所定の信号の入力に応じて、対応するコア２、コア３のモードをユーザーモードに変更するとともに、汎用ＯＳ２３７の初期化処理を実行する。その後、コア１〜コア３は、汎用ＯＳ２３７上でコントローラー処理を実行する。また、コア４は電源供給が遮断されているため、コア１がコア４を起動する。コア４は、切替制御部３４０がＲＴＯＳ２７５を初期化した後、ＲＴＯＳ２７５上でメカコン処理を実行する。
【０１２１】
上記によれば、実施形態に従う画像形成装置１００は、動作モードに応じて最適なコアを用いてメカコン処理およびコントローラー処理を実行できる。加えて、画像形成装置１００は、メカコン処理およびコントローラー処理のいずれも実行しないコアへの電力供給を遮断することにより、低消費電力化を実現する。
【０１２２】
また、画像形成装置１００は、印字モード、スキャンモード、ＦＡＸモード、および画像安定化モードにおいて、コントローラー処理を行なうコアと、メカコン処理を行なうコアとを分ける。これにより、各コア１〜コア４は基本的に、これらの動作モードにおいて汎用ＯＳ２３７とＲＴＯＳ２７５との切り替えを行なわない。その結果、ＯＳ切り替えに伴うオーバーヘッドが削減されるため、画像形成装置１００は効率よくメカコン処理およびコントローラー処理を実行できる。
【０１２３】
なお、上記の例において、汎用ＯＳ２３７は、切替テーブル２３８を参照して、コントローラーコアを特定するように構成されているが、テーブルを用いず、プログラム上で予め用いるコントローラーコアを規定するように構成されてもよい。ＲＴＯＳ２７５も同様である。
【０１２４】
［処理（タスク）の移動］
次に、ＲＴＯＳ２７５上でメカコン処理を実行しているコアから、当該メカコン処理の一部を汎用ＯＳ２３７上でコントローラー処理を実行しているコアへ移動する処理について説明する。本実施形態に従う汎用ＯＳ２３７およびＲＴＯＳ２７５は、コア１〜コア４の間で処理を移動するためのマイグレーション関数を有する。この処理の移動は、タスクマイグレーションまたはプロセスマイグレーションとも言われる。
【０１２５】
基本的には、上述の通りメカコンコアの数は動作モードに応じて定められている。しかしながら、マルチコアプロセッサ２００は、メカコンコアの負荷が大きい場合に、メカコン処理の一部をメカコンコアからコントローラー処理を実行しているコアに移動する。その理由は、メカコンコアの負荷が大きい場合、正確なタイミングでメカコン処理が実行されない結果生じる不具合（例えばジャム）を抑制するためである。
【０１２６】
メカコン処理の移動により、メカコンコアの数が増える。その結果、メカコン処理が各メカコンコアに分散され、メカコンコア１つあたりの負荷が軽減される。
【０１２７】
（機内内蔵枚数）
一例として、マルチコアプロセッサ２００は、印字モードにおいて画像形成装置１００の搬送経路上における用紙（つまり、搬送中の用紙）の枚数（以下、「機内内蔵枚数」とも言う）が多い場合に、メカコン処理の一部をメカコンコアからコントローラーコアへ移動する。その理由は、用紙毎に搬送および画像形成に関するメカコン処理が行なわれるため、機内内蔵枚数が多いほどメカコン処理の負荷が重くなるためである。
【０１２８】
マルチコアプロセッサ２００は、機内内蔵枚数が予め定められた枚数以上になった場合に、メカコン処理をメカコンコアとして機能するコア４から、コントローラーコアとして機能するコア１〜コア３のいずれかにメカコン処理を移動する。例えば、予め定められた枚数はモノクロ印字で８枚、カラー印字で５枚に設定される。また、マルチコアプロセッサ２００は、両面印字の場合は１枚を２枚としてカウントする。
【０１２９】
ある実施形態において、マルチコアプロセッサ２００は、コア４からコア１〜コア３のうち最も負荷の低いコアにメカコン処理を移動する。この場合、メカコン処理を移動されたコアは、メカコン処理だけを行なうように構成されてもよいし、メカコン処理およびコントローラー処理の両方を行なうように構成されてよい。
【０１３０】
（給紙装置が装着されている場合）
画像形成装置１００に給紙装置１７０が装着されている場合、搬送経路が実質的に長くなる。そのため、機内内蔵枚数が増える。画像形成装置１００に複数台の給紙装置１７０が連結可能な場合、機内内蔵枚数は、画像形成装置１００に接続される給紙装置１７０の数が増えるほど、増える。
【０１３１】
そこで、マルチコアプロセッサ２００は、給紙装置１７０から画像形成装置１００に用紙が供給されている場合に、コア４から、コア１〜コア３のいずれかにメカコン処理を移動する。つまり、マルチコアプロセッサ２００は、複数のコアのうちメカコンコアの数を、給紙装置１７０が画像形成装置１００に装着されていない状態よりも、給紙装置１７０が画像形成装置１００に装着されている状態の方が多くなるようにする。
【０１３２】
（制御構造）
図９は、メカコンコアからコントローラーコアへメカコン処理を移動する処理を表すフローチャートである。図９に示される例において画像形成装置１００は印字モードで動作しているとする。
【０１３３】
ステップＳ９１０にて、ＲＴＯＳ２７５（コア４）は、画像形成装置１００の機内内蔵枚数が予め定められた枚数（例えば、モノクロ印字時は８枚、カラー印字時は５枚）以上であるか否かをモニタする。ＲＴＯＳ２７５（コア４）は、機内内蔵枚数が定められた枚枚以上になったと判断した場合、ステップＳ９３０の処理を実行する。
【０１３４】
ステップＳ９２０にて、ＲＴＯＳ２７５（コア４）は、メカコンコアの負荷が９５％以上であるか否かをモニタする。ＲＴＯＳ２７５（コア４）は、メカコンコアの負荷が９５％以上になったと判断した場合、ステップＳ９３０の処理を実行する。
【０１３５】
ステップＳ９３０にて、ＲＴＯＳ２７５（コア４）は、マイグレーション関数を実行し、メカコンコアの負荷が重い旨を汎用ＯＳ２３７（コア１〜コア３）に通知する。
【０１３６】
ステップＳ９４０にて、汎用ＯＳ２３７（コア１〜コア３）は、コントローラーコアのうち、負荷が最も軽いコアを特定する。一例として、コア１の負荷が８０％、コア２の負荷が６０％、コア３の負荷が２０％であるとする。この場合、汎用ＯＳ２３７は、コア３が最も負荷の軽いコントローラーコアであると特定する。汎用ＯＳ２３７は、特定したコアを識別する情報（コアＩＤ）をＲＴＯＳ２７５（コア４）に通知する。
【０１３７】
ステップＳ９５０にて、ＲＴＯＳ２７５（コア４）は、処理の起動回数、および処理に要する時間に基づいて、コントローラーコアに移動させるメカコン処理を特定する。より具体的には、ＲＴＯＳ２７５（コア４）は、起動回数が少なく（つまり、実行される周期が長く）、処理に要する時間が短い処理（タスク）を特定する。
【０１３８】
ステップＳ９６０にて、ＲＴＯＳ２７５（コア４）は、ステップＳ９４０で通知されたコアＩＤに対応するコア３にステップＳ９５０で特定したメカコン処理を移動する。より具体的には、ＲＴＯＳ２７５（コア４）は、移動対称のメカコン処理のメモリ状態やレジスタの状態などのスナップショットを作成し、当該スナップショットをコア３に送信する。スナップショットとは、データを特定のタイミングで抜き出したものの総称である。
【０１３９】
ステップＳ９７０にて、コア３は、切替制御部３３０がＲＴＯＳ２７５を初期化した後に、コア４から受信したスナップショットに基づいて移動されたメカコン処理の状態を復元し、当該メカコン処理を実行する。ステップＳ９８０にて、コア３は、印字ジョブが終了した後に、移動されたメカコン処理を、コア４に移動する。
【０１４０】
上記によれば、実施形態に従う画像形成装置１００は、メカコンコアの負荷が大きい場合に、メカコンコアの数を増やしてメカコンコア１つあたりの負荷を軽減することにより、メカコンコアの負荷が大きいことに起因して生じる不具合を抑制し得る。
【０１４１】
［コントローラーコアのコア数を減らす］
ある局面において、複数のコントローラーコアの各々の負荷が低く、これらのコントローラーコアが実行するコントローラー処理を１つのコントローラーコアで実行可能な場合がある。係る場合、マルチコアプロセッサ２００は、コントローラーコアの数を減らすことによって、消費電力を抑制する。
【０１４２】
図１０は、コントローラーコアの数を減らす処理を表すフローチャートである。図１０において、コア１〜コア３がコントローラーコアとして、汎用ＯＳ２３７上でコントローラー処理を実行している。
【０１４３】
ステップＳ１０１０にて、汎用ＯＳ２３７（コア１〜コア３）は、各コントローラーコアの負荷をモニタする。一例として、コア１の負荷が８０％、コア２の負荷が６０％、コア３の負荷が２０％であるとする。
【０１４４】
ステップＳ１０２０にて、汎用ＯＳ２３７（コア１〜コア３）は、コア１〜コア３のうち２つのコアの負荷の総和が９０％未満である否かを判断する。汎用ＯＳ２３７は、コア２およびコア３の負荷の総和が８０％であることから当該条件を満たしたと判断して（ステップＳ１０２０でＹＥＳ）、ステップＳ１０３０の処理を実行する。
【０１４５】
ステップＳ１０３０にて、上記２つのコア２およびコア３のうち、負荷の低いコア３は、自身が実行するコントローラー処理を負荷の重いコア２へと移動する。当該コアの移動は、上述の処理と同様であるので、繰り返し説明しない。ステップＳ１０４０にて、マルチコアプロセッサ２００は、コア３への電力供給を遮断する。
【０１４６】
上記によれば、実施形態に従う画像形成装置１００は、コントローラーコアの負荷に応じて、起動するコントローラーコアの数を制御することにより、消費電力を抑制できる。
【０１４７】
［データ解析用のコア］
ある局面においてマルチコアプロセッサ２００は、センサー群２７１の検出結果に基づくデータ解析処理を行なうことにより、画像形成装置１００の異常を検出または、画像形成機構１２０の画像形成条件の決定などを行なう。
【０１４８】
実施形態に従うマルチコアプロセッサ２００は、コア１〜コア４のいずれかのコアを、上記のデータ解析処理を行なうための専用のコアとして設定する。例えば、メカコン処理およびコントローラー処理のいずれも行っていないコア（以下、「空きコア」とも言う）が存在する場合、マルチコアプロセッサ２００は、当該空きコアでデータ解析処理を実行する。データ解析処理用の専用のコアを設けることにより、データ解析処理が効率的に実行される。
【０１４９】
空きコアが存在しない場合、マルチコアプロセッサ２００は、コントローラーコアのうち最も負荷の低いコアの処理を、他のコントローラーコアに移動させ、空きコアを作りだす。そして、マルチコアプロセッサ２００は当該空きコアでデータ解析処理を実行する。
【０１５０】
原則、コントローラーコアが汎用ＯＳ２３７上で各種の演算ライブラリを使用して上記データ解析処理を行なうが、メカコンコアがＲＴＯＳ２７５上で当該データ解析処理を行なってもよい。
【０１５１】
［ＯＳ間での大容量通信時の制御］
図１１は、ある局面に従う汎用ＯＳ２３７とＲＴＯＳ２７５との通信を説明するための図である。図１１において、コントローラーコアであるコア１〜コア３のうち、コア２が汎用ＯＳ２３７の通信処理を実行する。また、メカコンコアであるコア４がＲＴＯＳ２７５の通信処理を実行する。係る状況において、ＲＴＯＳ２７５から汎用ＯＳ２３７に大容量データを送受信する場合、図１１に示されるように、共有メモリ２４０へのアクセスがコア２とコア４との間で競合する。その理由は、コア４が共有メモリ２４０にデータを格納するためにアクセスする処理と、コア２が共有メモリ２４０からデータを読み出す処理とが競合するためである。
【０１５２】
このような競合を避けるために共有メモリ２４０とバス２１０との間に、図示しないメモリ調停回路が配置される場合がある。メモリ調停回路は、あるコアから共有メモリ２４０へのアクセスがあった場合に、当該コア以外のコアによって共有メモリ２４０を使用されていない場合に、上記コアの共有メモリ２４０へのアクセスを許可する。
【０１５３】
しかしながら、このようなメモリ調停回路による調停処理が実行されると、当該調停処理に要する時間だけ、ＲＴＯＳ２７５から汎用ＯＳ２３７にデータを送信する処理に要する時間が長くなってしまう。
【０１５４】
図１２は、実施形態に従う汎用ＯＳ２３７とＲＴＯＳ２７５との通信を説明するための図である。実施形態に従うマルチコアプロセッサ２００は、ＲＴＯＳ２７５から汎用ＯＳ２３７に予め定められた容量以上のデータを共有メモリ２４０を用いて送信する場合に、ＲＴＯＳ２７５の通信処理を、汎用ＯＳ２３７の通信処理を実行するコアに移動する。図１２の例では、メカコンコアとして機能するコア４が、汎用ＯＳ２３７の通信処理を実行するコア２にＲＴＯＳ２７５の通信処理を移動する。これにより、共有メモリ２４０にアクセスするコアは１つになるため、上記のような競合を抑制することができる。
【０１５５】
より具体的には、コア２は、メカコン処理（ＲＴＯＳ２７５の通信処理）とコントローラー処理（汎用ＯＳ２３７の通信処理）の両方を実行するが、切替制御部３２０の作用によりメカコン処理を優先して実行する。コア２は、ＲＴＯＳ２７５から汎用ＯＳ２３７へのデータ送信処理が完了すると、メカコン処理（ＲＴＯＳ２７５の通信処理）をコア４へ移動する。
【０１５６】
上記によれば、実施形態に従う画像形成装置１００は、ＲＴＯＳ２７５から汎用ＯＳ２３７へ大容量データを送信する処理を行なうにあたり、メモリ調停回路を用いることなく共有メモリ２４０の競合を抑制できる。画像形成装置１００はさらに、メモリ調停処理に要する時間を抑制する。
【０１５７】
一例として、予め定められた容量以上のデータは、センサー群２７１のうち、画像形成装置１００の異常を検出するために用いられるセンサーの検出結果であり得る。ＲＴＯＳ２７５は、印字ジョブ中に取得されたセンサーの検出結果を、印字ジョブの終了後に汎用ＯＳ２３７に送信し得る。
【０１５８】
他の例として、予め定められた容量以上のデータは、画像形成装置１００の異常が検出された場合に当該異常の原因を特定するために必要なログデータであり得る。当該ログデータは、異常の判断に用いられたセンサーの検出結果の履歴、画像形成機構１２０における画像形成シーケンス中の信号変化を表すシーケンスログなどを含む。
【０１５９】
［メカコン周辺回路へのアクセス］
マルチコアプロセッサ２００は、複数のコアのうち１のコアでメカコン周辺回路２６０にアクセスするメカコン処理を実行する。その理由は、上述の共有メモリ２４０へのアクセスの競合と同じく、複数のコアがメカコン周辺回路２６０にアクセスする場合、当該アクセスが競合し得るためである。
【０１６０】
そのため、マルチコアプロセッサ２００は、上述のメカコン処理の一部をコントローラーコアに移動する場合において、メカコン周辺回路２６０へアクセスしないメカコン処理を優先的に移動するように構成されてもよい。メカコン周辺回路２６０へアクセスしないメカコン処理は、例えば、各コアに設けられた図示しないキャッシュメモリにアクセスするような処理を含む。
【０１６１】
［コントローラー処理からメカコン周辺回路へのアクセス禁止］
図１３は、コントローラー処理のアクセスを制限する処理を説明するための図である。図１３の例において、コントローラーコアとして機能するコア２で実行されているコントローラー処理からメカコン周辺回路２６０へのアクセスが禁止されている。
【０１６２】
上述のように、各コア１〜コア４は、ユーザーモードで汎用ＯＳ２３７を実行し、特権モードでＲＴＯＳ２７５を実行する。ユーザーモードに従うコアは、アクセスできるアドレス領域が制限される。マルチコアプロセッサ２００は、このユーザーモードの機能を利用して汎用ＯＳ２３７を実行するコア上で実行されるコントローラー処理からメカコン周辺回路２６０へのアクセスを禁止する。なお、上述のように、コントローラー処理およびメカコン処理の両方を実行するコアが存在する場合がある。係る場合、当該コアで実行されるメカコン処理はメカコン周辺回路２６０にアクセスできる。
【０１６３】
以下、コントローラー処理からメカコン周辺回路２６０へのアクセスを禁止する理由について説明する。汎用ＯＳ２３７において、存在しないアドレス領域にアクセスしようとするなどの不具合が稀に生じる。このような不具合が発生した場合、コントローラー処理からメカコン周辺回路２６０へアクセスする可能性がある。係る場合、本来必要のないタイミングで、定着装置１２２に含まれるヒーターがＯＮされたり、モーター群２７２に含まれるモーターが駆動されたりし得る。そこで、実施形態に従うマルチコアプロセッサ２００は、コントローラー処理からメカコン周辺回路２６０へのアクセスを禁止することにより、上記のような不具合を防止する。
【０１６４】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１６５】
１，２，３，４  コア、１００  画像形成装置、１１０  給紙カセット、１２０  画像形成機構、１２２  定着装置、１３０  排紙トレイ、１４０  操作パネル、１５０  スキャナー、１７０  給紙装置、２００  マルチコアプロセッサ、２１０  バス、２２０  コントローラー周辺回路、２２５  スキャナー入力部、２２６  画像出力部、２３６，２７４  フラッシュＲＯＭ、２３７  汎用ＯＳ、２３８，２７６  切替テーブル、２４０  共有メモリ、２６０  メカコン周辺回路、２６２  モーター制御部、２７１  センサー群、２７２  モーター群、２７５  ＲＴＯＳ、３１０，３２０，３３０，３４０  切替制御部。
【図１】
2019084774.tif 000003
【図２】
2019084774.tif 000004
【図３】
2019084774.tif 000005
【図４】
2019084774.tif 000006
【図５】
2019084774.tif 000007
【図６】
2019084774.tif 000008
【図７】
2019084774.tif 000009
【図８】
2019084774.tif 000010
【図９】
2019084774.tif 000011
【図１０】
2019084774.tif 000012
【図１１】
2019084774.tif 000013
【図１２】
2019084774.tif 000014
【図１３】
2019084774.tif 000015