(57)【要約】【課題】  命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理する。【解決手段】  第1プロセッサ１０と第2プロセッサ１１〜第５プロセッサ１４との間でコマンドや座標等のやり取りを行うための命令セット、fifo_write reg0, exe_PROｍ, snd_PROnを定義する。exe_PROｍは、この命令を実行するプロセッサを指定する引数（第ｍプロセッサ）であり、snd_PROnは、送り先のプロセッサを指定する引数（第ｎプロセッサ）である。第２プロセッサ１１〜第５プロセッサ１４では、制御プログラムの実行に際して、命令セットのＰＲＯｍが自身のＩＤに一致する場合にのみ命令を実行し、自身のＩＤに一致しない場合にはその命令を破棄する。【選択図】    図１
2006209392.tif 000002
【特許請求の範囲】
【請求項１】
独立した命令セットを実行する共通プロセッサと、同一の命令セットを実行する、前記プロセッサ以外の複数のプロセッサと、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファとからなるマルチプロセッサシステムであって、
前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、
前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断することを特徴とするマルチプロセッサシステム。
【請求項２】
前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記命令は、前記バッファにデータを書き込む命令であることを特徴とする請求項１または２記載のマルチプロセッサシステム。
【請求項４】
所定数の基本色を用いてカラー画像を形成する画像形成装置であって、
同一の命令セットを実行し、前記所定数の基本色の各々の画像を形成する複数のプロセッサと、
独立した命令セットを実行し、前記複数のプロセッサを統合制御する少なくとも１つの共通プロセッサと、
前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファとを具備し、
前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、
前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断することを特徴とする画像形成装置。
【請求項５】
前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とする請求項４記載の画像形成装置。
【請求項６】
前記命令は、前記バッファにデータを書き込む命令であることを特徴とする請求項４または５記載の画像形成装置。
【請求項７】
独立した命令セットを実行する共通プロセッサに対して、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファを介して、同一の命令セットを実行する前記プロセッサ以外の複数のプロセッサからデータを送信するデータ送信方法であって、
前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、
前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とするデータ送信方法。
【請求項８】
前記命令は、前記バッファにデータを書き込む命令であることを特徴とする請求項７記載のデータ送信方法。
【請求項９】
前記命令は、データの送信先であるプロセッサの送信先識別情報を含むことを特徴とする請求項７または８記載のデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム、画像形成装置およびデータ送信方法に関する。
【背景技術】
【０００２】
マルチプロセッサでシステムを構築する場合、プロセッサ間のデータのやり取りを如何に高速に行うかが重要となる。大規模なデータを授受する場合には、共有メモリ等のバッファを使用する場合があるが、サイズの小さなデータの場合には、FIFOなどのように直接プロセッサ間を繋ぐ経路で送受信した方が、バス競合等による待ち時間を排除できるために高速に実行できる。
【０００３】
例えば、図４に示すように、第1プロセッサ１〜第５プロセッサ５から構成され、各プロセッサがＦＩＦＯ６−１〜６−５を有するマルチプロセッサシステムにおいて、第1プロセッサ（ＩＤ＝ＰＲＯ０）１から第2プロセッサ２〜第５プロセッサ５（それぞれ、ＩＤ＝ＰＲＯ１、ＰＲＯ２、ＰＲＯ３、ＰＲＯ４）の各々へデータを送信する場合を考える。ＦＩＦＯへの送信命令は、通常以下のように単独で発行される。
【０００４】
/*
ＰＲＯ１〜ＰＲＯ４は各プロセッサのＩＤ
*/
fifo_write reg0, PRO1      // reg0の内容を第２プロセッサへ送信
fifo_write reg0, PRO2      // reg0の内容を第３プロセッサへ送信
fifo_write reg0, PRO3      // reg0の内容を第４プロセッサへ送信
fifo_write reg0, PRO4      // reg0の内容を第５プロセッサへ送信
【０００５】
また、以下のような専用命令を使用して、全てのプロセッサ２〜５に１命令で発行することも可能である。
fifo_write reg0, (PRO1 | PRO2 | PRO3 | PRO4)
【０００６】
ところで、マルチプロセッサシステムにおいては、各プロセッサが必要に応じて起動され、また実行されるコードも同一でありながら、各プロセッサの役割に応じて挙動を変えることが求められる。
【０００７】
例えば、タンデムカラープリンタシステムにおいては、ＣＭＹＫの画像生成にそれぞれ１つずつプロセッサを割り当て、それらを統合して制御するプロセッサを１つ割り当てることを想定する。上述した例では、図４に示すように、第1プロセッサ１を制御プロセッサ、その他の第２プロセッサ２〜第５プロセッサ５をＣＭＹＫの描画に割り当てるとする。このとき、ＣＭＹＫでは同一のコードが実行されることになる。
【０００８】
第1プロセッサ１と第2プロセッサ２〜第５プロセッサ５との間でコマンドや座標等のやり取りを行いたい場合に、ＦＩＦＯを使用すると高速に行うことができる。例えば、第２プロセッサ２〜第５プロセッサ５から第１プロセッサ１に描画中の座標情報を送りたい場合には、第２プロセッサ２〜第５プロセッサ５側の各々で、
fifo_write reg0, PRO0
を実行し、第1プロセッサ１側で、
fifo_read reg0
を実行することで、データを受理できる。
なお、カラーレーザプリンタにおけるマルチプロセッサの制御に関連する先行技術として、下記の特許文献１がある。
【特許文献１】特開２００１−３８９５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、第２プロセッサ２〜第５プロセッサ５は、ＣＭＹＫの各プレーンを描画しているため、描画位置に関しては、色情報が異なるものの、座標自体は変わらない。このような場合に、上記コマンドにて、第１プロセッサ１にデータを送ると、第１プロセッサ１では、同じデータを受理するために、
fifo_read reg0
fifo_read reg0
fifo_read reg0
fifo_read reg0
というように、同一の命令を実行しなくてはならず、処理速度が低下することになるという問題があった。同一のコードを実行しないようにするためには、第２プロセッサ２〜第５プロセッサ５で実行するコードを変更したり、プロセッサ番号を識別して実行命令を変更したりする必要が生じ、命令オブジェクトコードの増加と判定のためのオーバヘッドが増大するという問題が生じる。
【００１０】
本発明は、このような事情を考慮してなされたものであり、その目的は、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるマルチプロセッサシステム、画像形成装置およびデータ送信方法を提供することにある。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、本発明は、独立した命令セットを実行する共通プロセッサと、同一の命令セットを実行する、前記プロセッサ以外の複数のプロセッサと、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファとからなるマルチプロセッサシステムであって、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断することを特徴とする。
【００１２】
本発明は、上記の発明において、前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とする。
【００１３】
本発明は、上記の発明において、前記命令は、前記バッファにデータを書き込む命令であることを特徴とする。
【００１４】
また、上述した課題を解決するために、本発明は、所定数の基本色を用いてカラー画像を形成する画像形成装置であって、同一の命令セットを実行し、前記所定数の基本色の各々の画像を形成する複数のプロセッサと、独立した命令セットを実行し、前記複数のプロセッサを統合制御する少なくとも１つの共通プロセッサと、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファとを具備し、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断することを特徴とする。
【００１５】
本発明は、上記の発明において、前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とする。
【００１６】
本発明は、上記の発明において、前記命令は、前記バッファにデータを書き込む命令であることを特徴とする。
【００１７】
また、上述した課題を解決するために、本発明は、独立した命令セットを実行する共通プロセッサに対して、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファを介して、同一の命令セットを実行する、前記プロセッサ以外の複数のプロセッサからデータを送信するデータ送信方法であって、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行することを特徴とする。
【００１８】
本発明は、上記の発明において、前記命令は、前記バッファにデータを書き込む命令であることを特徴とする。
【００１９】
本発明は、上記の発明において、前記命令は、データの送信先であるプロセッサの送信先識別情報を含むことを特徴とする。
【発明の効果】
【００２０】
この発明によれば、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断する。したがって、命令を実行すべきプロセッサであるか、実行しないプロセッサであるかを容易に指定することができるので、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるという利点が得られる。
【００２１】
また、本発明によれば、前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行する。したがって、命令を実行すべきプロセッサであるか、実行しないプロセッサであるかを容易に指定することができるので、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるという利点が得られる。
【００２２】
また、本発明によれば、前記命令は、前記バッファにデータを書き込む命令である。したがって、バッファに書き込む前に不要な命令の実行を抑制することができるので、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるという利点が得られる。
【００２３】
また、本発明によれば、同一の命令セットを実行し、前記所定数の基本色の各々の画像を形成する複数のプロセッサと、独立した命令セットを実行し、前記複数のプロセッサを統合制御する少なくとも１つの共通プロセッサと、前記共通プロセッサに対するデータを一時保持する少なくとも１つのバッファとを具備し、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報に基づいて自身が実行すべき命令であるか否かを判断する。したがって、命令を実行すべきプロセッサであるか、実行しないプロセッサであるかを容易に指定することができるので、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるという利点が得られる。
【００２４】
また、本発明によれば、前記複数のプロセッサから前記バッファを介して前記共通プロセッサに対してデータを送信するための前記複数のプロセッサによって実行される命令に、前記複数のプロセッサのうち、いずれのプロセッサによって実行すべき命令であるかを示す実行元識別情報を命令の引数として記述し、前記複数のプロセッサは、前記実行元識別情報と予め自身に割り振られている個別識別情報とが一致した場合に前記命令を実行する。したがって、命令を実行すべきプロセッサであるか、実行しないプロセッサであるかを容易に指定することができるので、命令オブジェクトコードの増加と判定のためのオーバヘッドとを増大することなく、高速に処理することができるという利点が得られる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の一実施形態によるマルチプロセッサシステムを用いた画像形成装置を、図面を参照して説明する。
【００２６】
図１は、本発明の実施形態による画像形成装置の一部構成を示すブロック図である。図において、第２プロセッサ１１〜第５プロセッサ１４は、各々、タンデムカラープリンタシステムにおける、シアン、マゼンタ、イエローおよびブラックからなるＣＭＹＫの描画に割り当てられたプロセッサである。第１プロセッサ１０は、タンデムカラープリンタシステムにおける、ＣＭＹＫの画像生成に割り当てられた第２プロセッサ１１〜第５プロセッサ１４を統合して制御するプロセッサである。第１プロセッサ１０〜第５プロセッサ１４には、それぞれ一意に識別するためのＩＤとして、それぞれＰＲＯ０〜ＰＲＯ４が割り振られている。また、第２プロセッサ１１〜第５プロセッサ１４では同一のコードが実行される。
【００２７】
第1プロセッサ１０〜第５プロセッサ１４は、各々、第1プロセッサ１０と第2プロセッサ１１〜第５プロセッサ１４との間でコマンドや座標等のやり取りを行うためのＦＩＦＯ１５−１〜１５−５を備えている。
【００２８】
本発明の実施形態では、このようなＦＩＦＯ構成において、以下の命令セットを定義する。
fifo_write reg0, exe_PROｍ, snd_PROn
【００２９】
ここで、
reg0：レジスタ番号、
exe_PROｍ：この命令を実行するプロセッサを指定する引数（第ｍプロセッサ）、
snd_PROn：送り先のプロセッサを指定する引数（第ｎプロセッサ）
である。
【００３０】
第２プロセッサ１１〜第５プロセッサ１４は、各々、上記命令セットを実行するのに先立って、自身のＩＤとexe_PROｍで示されるプロセッサ番号とが一致するか判断し、一致すれば命令を実行するが、一致しなければ命令を破棄するようになっている。
【００３１】
次に、上述した実施形態の動作について説明する。ここで、図２は、本実施形態の動作を説明するためのフローチャートである。また、図３は、本実施形態の動作を説明するための概念図である。ＣＭＹＫの描画に割り当てられた第２プロセッサ１１〜第５プロセッサ１４では、制御プログラムの実行に際して、まず、命令を読み込み（Ｓ１０）、当該命令を実行すべきプロセッサを指定する引数、exe_PROｍ（ｍ＝１〜４）が記述されているか否かを判断する（Ｓ１２）。そして、exe_PROｍが記述されてない場合には、そのまま命令を実行する（Ｓ１６）。その後、ステップＳ１０へ戻り、次の命令へ処理を移行する。
【００３２】
一方、exe_PROｍが記述されている場合には、ＰＲＯｍが自身のＩＤに一致するか否かを判断する（Ｓ１４）。そして、ＰＲＯｍが自身のＩＤに一致する場合には、そのまま命令を実行する（Ｓ１６）。その後、ステップＳ１０へ戻り、次の命令へ処理を移行する。
【００３３】
一方、ＰＲＯｍが自身のＩＤに一致しない場合には、その命令を破棄（無視）し、ステップＳ１０へ戻り、次の命令へ処理を移行する。
【００３４】
例えば、第２プロセッサ１１〜第５プロセッサ１４から第１プロセッサ１０に描画中の座標情報を送りたい場合には、第２プロセッサ１１〜第５プロセッサ１４側の各々で、
fifo_write reg0, exe_PRO1, snd_PRO0
と記述することで、図３に示すように、第２プロセッサ１１のみでこの命令が実行され、第１プロセッサ１０にｒｅｇ０の内容を送信するこことなる。
【００３５】
第1プロセッサ１０側では、図３に示すように、
fifo_read reg0
を一度だけ実行すれば、所望のデータを取得することができ、従来に比べ高速に処理することが可能となる。
【００３６】
上述した実施形態によれば、プロセッサ毎にコードを変更した制御プログラムを用意することなく、同一の制御プログラムで、重複する命令実行を排除することができ、高速に処理することができる。
【００３７】
なお、上述した実施形態においては、各プロセッサによる一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムを読み出して実行することによって、上記処理が行われる。すなわち、各プロセッサにおける処理は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
【００３８】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態による画像形成装置の一部構成を示すブロック図である。
【図２】本実施形態の動作を説明するためのフローチャートである。
【図３】本実施形態の動作を説明するための概念図である。
【図４】従来技術によるマルチプロセッサシステムの構成例を示すブロック図である。
【符号の説明】
【００４０】
１０  第１プロセッサ（共通プロセッサ）
１１  第２プロセッサ（複数のプロセッサ）
１２  第３プロセッサ（複数のプロセッサ）
１３  第４プロセッサ（複数のプロセッサ）
１４  第５プロセッサ（複数のプロセッサ）
１５−１  ＦＩＦＯ（バッファ）
１５−２  ＦＩＦＯ
１５−３  ＦＩＦＯ
１５−４  ＦＩＦＯ
１５−５  ＦＩＦＯ
【図１】
2006209392.tif 000003
【図２】
2006209392.tif 000004
【図３】
2006209392.tif 000005
【図４】
2006209392.tif 000006