(57)【要約】【課題】ソフト処理がジョブの後半で発生した場合のハードウェア待ち時間を減少させスループットを向上させる。【解決手段】論理回路及びプロセッサで構成され、前記論理回路と前記プロセッサとの間で同期をとりながら複数のタスクを処理するデータ処理装置であって、前記論理回路又は前記プロセッサで実行する複数のタスクをバッファリングするバッファ手段と、前記バッファリングされたタスクをスケジューリングするタスクスケジューラと、前記スケジューリングされたタスクを保持する保持手段とを有し、前記論理回路は、前記スケジューリングされたタスクを切り替えてマルチスレッド処理可能であることを特徴とする。【選択図】図１
2010020415.tif 000002
【特許請求の範囲】
【請求項１】
論理回路及びプロセッサで構成され、前記論理回路と前記プロセッサとの間で同期をとりながら複数のタスクを処理するデータ処理装置であって、
前記論理回路又は前記プロセッサで実行する複数のタスクをバッファリングするバッファ手段と、
前記バッファリングされたタスクをスケジューリングするタスクスケジューラと、
前記スケジューリングされたタスクを保持する保持手段とを有し、
前記論理回路は、前記スケジューリングされたタスクを切り替えてマルチスレッド処理可能であることを特徴とするデータ処理装置。
【請求項２】
前記タスクスケジューラは、前記プロセッサによる必要なタスクを優先的に処理するようにスケジューリングすることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記プロセッサは、スケジューリングされたタスク内で前記論理回路では処理不可能な処理を実行することを特徴とする請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクをハードウェアとソフトウェアとで同期しながら協調処理するデータ処理装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ開発の大規模化に伴い設計資産のＩＰ化による再利用が進むと共に、高性能、高機能、かつ機能拡張可能なＩＰの必要性が高まっている。そのため、従来ハードウェアによって全体が構成されていたＩＰに代わり、ハード／ソフト協調データ処理装置としてハードウェアＩＰに加えてプロセッサで構成されるソフトＩＰを含んだハード／ソフト協調データ処理装置の開発が行われている。
【０００３】
一般的にハード／ソフト協調データ処理装置では使用頻度の高い処理や高速処理が要求される場合はハードＩＰ部分での処理割合を多くする。そして、使用頻度の低い処理や下位互換性を維持する為の処理等は、ソフトＩＰ部分で処理割合を多くすることで高性能かつ高機能、高拡張化を実現している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、通常ソフト処理はハード処理に比べて処理時間が大幅に増加するため、ソフト処理が実行された場合、ハードＩＰはソフトＩＰ処理との同期を取るために、ソフト処理終了まで待ち状態となりストールする。そのため、同期処理が必要なタスクをハード／ソフト協調データ処理装置でソフト処理した場合、ハードＩＰはソフトＩＰ処理が終了するまでストール状態となり、スループットが低下し、システム要求性能が満たせないケースが発生する可能性がある。そこで、ハードウェアで実行中のタスクを切り替え、ソフトウェア処理が終了するまでの間、ハードウェアで他のタスクを実行していた。
【０００５】
しかし、ソフト処理が発生するタスクが処理するジョブの後半であった場合、タスク切り替えを行っても切り替え可能なタスクが存在せずソフト処理による待ち時間を隠蔽することができない場合がある。
本発明は、ソフト処理を必要とするタスクの処理順を先に処理するようスケジューリングすることで、ソフト処理がジョブの後半で発生した場合のハードウェア待ち時間を減少させスループットを向上させる。
【課題を解決するための手段】
【０００６】
本発明は、論理回路及びプロセッサで構成され、前記論理回路と前記プロセッサとの間で同期をとりながら複数のタスクを処理するデータ処理装置であって、前記論理回路又は前記プロセッサで実行する複数のタスクをバッファリングするバッファ手段と、前記バッファリングされたタスクをスケジューリングするタスクスケジューラと、前記スケジューリングされたタスクを保持する保持手段とを有し、前記論理回路は、前記スケジューリングされたタスクを切り替えてマルチスレッド処理可能であることを特徴とするデータ処理装置等、を提供する。
【発明の効果】
【０００７】
本発明によれば、タスク処理の並列度を高めてスループットを向上させることが可能となる。
【発明を実施するための最良の形態】
【０００８】
図１は、本実施形態に係るデータ処理装置の概略構成図である。
データ処理装置は、マルチスレッド処理可能な画像形成装置であるハードウェアＩＰ７００と、内部にプロセッサを含みソフトウェア処理を行うソフトウェアＩＰ７０１と、画像形成装置が処理するタスクを一時的に保持しておくバッファ７０９とを有する。また、データ処理装置は、バッファ７０９にバッファリングされているタスクのスケジューリングを行うタスクスケジューラ７０８と、タスクスケジューラ７０８でスケジューリングされたタスクを保持するメモリ７０２とを有する。ここでＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ ｐｒｏｐｅｒｔｙ）とは、特定機能を実現する機能ブロックの意味で用いている。また、ハードウェアＩＰ７００とソフトウェアＩＰ７０１とは、互いにＰｅｅｒ−Ｔｏ−Ｐｅｅｒなバスで接続され、各タスクは互いに独立していてタスク間の依存関係はない。
【０００９】
７００は、マルチスレッド処理可能な画像形成装置で論理回路で構成されたハードウェアＩＰであり、メモリ７０２からタスクを読み出すと共にタスク内のコマンドを解析、実行することで所望の画像を生成する。また、ハードウェアＩＰ７００は、タスク内に処理不可能なコマンドを検出すると、ソフトウェアＩＰ７０１にコマンドを出力し、ソフトウェアＩＰ７０１の処理結果を受信することで所望の画像を生成する。
【００１０】
７０１は、内部にプロセッサを有し、ソフト処理を用いて画像処理を行うソフトウェアＩＰである。ソフトウェアＩＰ７０１は、ハードウェアＩＰ７００からコマンドを受信し、処理結果をハードウェアＩＰ７００に出力することで所望の画像を生成する。
７０８は、ハードウェアＩＰ７００及びソフトウェアＩＰ７０１が処理するタスクをスケジューリングするタスクスケジューラである。タスクスケジューラ７０８は、バッファ７０９に保持されたタスクをメモリ７０２に転送する際、ソフトウェアＩＰ７０１の処理が発生するタスクを優先して転送する。また、本文中タスクと表示リストとは同義で使用しており、以下で表示リスト又はタスクは同一の意味で使用される。
【００１１】
図２は、図１に示すデータ処理装置におけるマルチスレッド処理可能なハードウェアＩＰ７００の詳細を示す構成図である。図２には、図１で上述したハードウェアＩＰ７００が示されている。
ハードウェアＩＰ７００は、画像形成手段１００と、コンテキスト情報保持手段１０２と、プロセッサ処理検出手段１０３と、コンテキスト読み出し手段１０４と、コンテキスト書き戻し手段１０５と、プロセッサ処理終了検出手段１０６とによって構成される。
図２に示すプロセッサ１０１は、図１に示すソフトウェアＩＰ７０１である。
ここで、１００は、論理回路で構成された画像形成手段である。画像形成手段１００は、メモリ１０７から表示リストを読み出すと共に表示リストにＩＤを付与し、コンテキスト書き戻し手段１０５に新規表示リストＩＤが生成されたことを通知する。画像形成手段１００は、表示リストの中に書かれた命令に従って処理を実行し、表示リストの中で処理できない命令を検出したとき、プロセッサ１０１に処理の依頼を発行すると共にプロセッサ１０１の処理終了時に結果を受け取る。
【００１２】
画像形成手段１００は、コンテキスト読み出し手段１０４及びコンテキスト書き戻し手段１０５に自身で実行中の表示リストＩＤを供給し、コンテキスト読み出し手段１０４から発行される処理停止信号により処理を停止する。画像形成手段１００は、処理無効化信号により自身の内部に保存されている処理結果に影響を及ぼす情報を無効化し、コンテキスト情報保持手段１０２に実行中の表示リストのコンテキスト情報を供給する。
【００１３】
また、画像形成手段１００は、コンテキスト書き戻し手段１０５からの指示に従ってコンテキスト情報保持手段１０２に保持されている表示リストのコンテキスト情報を受け取り、実行表示リストのコンテキストとして自身のレジスタに設定する。さらに、画像形成手段１００は、表示リスト処理終了後に表示リストに付与した表示リストＩＤを削除し、コンテキスト書き戻し手段１０５に削除した表示リストＩＤを通知する。
【００１４】
１０１は、プロセッサである。プロセッサ１０１は、画像形成手段１００から処理の依頼を受け取り、処理内容を解析し、必要なデータをメモリ１０７から取得し、処理終了時に結果を画像形成手段１００に発行する。
１０２は、画像形成手段１００のコンテキスト情報を保持するコンテキスト情報保持装置である。コンテキスト情報保持装置１０２は、画像形成手段１００から供給される実行中の表示リストのコンテキスト情報をコンテキスト情報読み出し手段１０４から供給される書き込み制御信号に従い内部に保存する。コンテキスト情報保持装置１０２は、コンテキスト書き戻し手段１０５から供給される読み出し制御信号に従い、内部に保存しているコンテキスト情報を画像形成手段１００に供給する。
【００１５】
１０３は、画像形成手段１００からプロセッサ１０１に処理の依頼が発生したことを検出するプロセッサ処理検出手段である。プロセッサ処理検出手段１０３は、画像形成手段１００からプロセッサ１０１に発行される処理の転送を行っている信号線の変化を監視する。そして、処理が発行されたとき、プロセッサ処理検出手段１０３は、コンテキスト読み出し手段１０４に画像形成手段１００からプロセッサ１０１に処理の依頼が行われたことを通知する。
【００１６】
１０４は、画像形成手段１００からコンテキスト情報保持手段１０２に供給されるコンテキストの保存場所を指示する信号を生成するためのコンテキスト読み出し手段である。コンテスト読み出し手段１０４は、画像形成手段１００から自身が実行中の表示リストＩＤを受け取り、プロセッサ処理検出手段１０３からプロセッサ処理要求が発行されたことを通知する信号を受信する。コンテスト読み出し手段１０４は、コンテキスト書き戻し手段１０５からコンテキスト読み出し開始指示信号を受信する。
コンテスト読み出し手段１０４は、画像形成手段１００に処理停止を指示する信号を発行し、画像形成手段１００に処理無効化を指示する信号を発行する。また、コンテスト読み出し手段１０４は、画像形成手段１００からコンテキスト情報保持手段１０２に供給されるコンテキストの保存場所を指示する信号を発行する。コンテスト読み出し手段１０４は、コンテキスト書き戻し手段１０５からのコンテキスト読み出し指示の場合に限りコンテキストの読み出しが終了した後でコンテキスト書き戻し手段１０５にコンテキスト読み出し終了通知を発行する。
【００１７】
１０５は、コンテキスト情報保持手段１０２から画像形成手段１００に書き戻されるコンテキスト情報を制御するコンテキスト書き戻し手段である。コンテキスト書き戻し手段１０５は、画像形成手段１００から供給される新規生成表示リストＩＤと終了表示リストＩＤと現在実行中の表示リストＩＤを受信する。コンテキスト書き戻し手段１０５は、表示リストに優先順位付けを行うと共にプロセッサ処理終了検出手段１０６から発行されるプロセッサ処理が終了した表示リストＩＤを受信する。コンテキスト書き戻し手段１０５は、画像形成手段１００で実行中の表示リストとプロセッサで処理が終了した表示リストの優先順位を比較する。コンテキスト書き戻し手段１０５は、プロセッサで処理が終了した表示リストの優先順位が高い場合のみ、コンテキスト読み出し手段１０４にコンテキスト読み出し指示信号を優先的に発行する。コンテキスト書き戻し手段１０５は、コンテキスト読み出し手段１０４からコンテキスト読み出し終了通知を受け取った後で画像形成手段１００にコンテキスト書き戻し指示信号を発行する。そして、コンテキスト書き戻し手段１０５は、コンテキスト情報保持手段１０２に読み出すコンテキストを指示する信号を発行する。
【００１８】
１０６は、プロセッサ１０１から画像形成装置１００に処理結果が発行されたことを検出するプロセッサ処理終了検出手段である。プロセッサ処理終了検出手段１０６は、プロセッサ１０１と画像形成装置１００間の信号を監視し、プロセッサ１０１の処理が終了したことを検出するとコンテキスト書き戻し手段１０５に処理結果に付与されていた表示リストＩＤを発行する。
１０７は、メモリである。メモリ１０７は、処理する表示リスト及び処理に必要なデータ及び処理結果を保存する。
【００１９】
図３は、画像形成手段１００の画像形成に関する機能のブロック図である。画像形成手段１００は、オブジェクト・グラフィック記述から得られた表示リストを処理して画素を生成する。表示リストにはオリジナルのオブジェクト・グラフィック記述に含まれる描画オブジェクトが副走査線方向（ｙ座標）の昇順にソートされて記録されている。その他に各オブジェクトの稜線情報は、稜線テーブルとして、各稜線と対応づけられたレベル情報と他のレベルの同一座標の画素との関係（演算方法）がレベルテーブルとして、オブジェクト内部の色を決定するための情報がフィルテーブルとして含まれる。また、オブジェクトの色を決定するための情報としては、色を生成するためのデータや処理が指定されており、ビットマップの読込みや圧縮画像を伸張し、その結果から任意の画素を取り込むことを指定している場合もある。
【００２０】
図３に示す画像形成手段１００は、後述する２０１〜２０７及び２１０〜２１３のモジュールから構成されている。そのうち２０１〜２０６をパイプラインモジュールと呼ぶものとする。
２０１は、システムバスにアクセスして該表示リストを読み込み、命令ストリームを解釈して、後述の２０２〜２０５からなる後段のパイプラインモジュールに対する内部コマンドを発行する命令実行部である。
２０２は、命令実行部２０１によって発行された内部コマンドに従って該表示リストに含まれる稜線情報を読み取る稜線処理部である。稜線処理部２０２は、走査線単位で描画オブジェクトの稜線情報を抽出し、該稜線情報を走査線方向（ｘ座標）の昇順にソートした後、後述するパイプライン後段に位置するレベル優先度決定部２０３に該稜線情報をメッセージとして転送する
【００２１】
２０３は、レベル優先度決定部である。レベル優先度決定部２０３は、命令実行部２０１によって発行された命令に従って該表示リストに含まれるレベルテーブルと稜線処理部２０２によって生成された該稜線情報とを読み込む。そして、各走査線毎に各レベルの優先度と活性化された（描画に影響する）画素範囲を決定する。レベル優先度決定部２０３は、各走査線の該活性化された画素範囲の情報を優先度順にソートして他のレベルの画素との関係情報と共に画素範囲情報とする。レベル優先度決定部２０３は、後述するパイプライン後段に位置する塗りつぶしデータ決定部２０４に該画素範囲情報を転送する。
【００２２】
２０４は、命令実行部２０１によって発行された内部コマンドに従って該表示リストに含まれるフィルテーブルとレベル優先度決定部２０３によって生成された該画素範囲情報とを読み込む塗りつぶしデータ決定部である。塗りつぶしデータ決定部２０４は、レベル毎に活性化された画素の色を決定し、後述するパイプライン後段に位置する色合成部２０５に該活性化された画素の色情報をレベル優先度決定部２０３から転送されてきた画素範囲情報と共に転送する
【００２３】
２０５は、色合成部である。色合成部２０５は、命令実行部２０１によって発行された内部コマンドに従ってレベル優先度決定部２０３によって生成された各レベルの画素範囲情報と塗りつぶしデータ決定部２０４によって決定された画素の色情報を基に画素単位に色を決定する演算を実行する。色合成部２０５は、画素の最終的な色を生成する色合成部である。
２０６は、色合成部２０５によって生成された最終画素を接続された外部機器に送出する画素出力部である。
【００２４】
２０７は、稜線処理部２０２、レベル優先度決定部２０３、塗りつぶしデータ決定部２０４、色合成部２０５によるシステムバスへのアクセスに対する調停、順序付けを行いシステムバスへアクセスを中継するバスアクセス調停部である。
なお、稜線処理部２０２、レベル優先度決定部２０３、塗りつぶしデータ決定部２０４及び色合成部２０５それぞれに対して拡張部品を追加することが可能である。また、塗りつぶしデータ決定部２０４に対しては画像伸張部２１０を追加することもできる。また、画像伸張部２１０は、さらに拡張部品を追加することが可能である。
以上のような拡張は、システムに要求される性能及びコストに応じてなされる。
【００２５】
２１０は、画素色決定の際に圧縮画像を扱うことを可能にする例えばＪＰＥＧをサポートする拡張モジュールであるところの画像伸張部である。
２１１は、ＰｏｓｔＳｃｒｉｐｔに対応する拡張モジュールであるところの稜線処理拡張部である。
２１２は、ＧＤＩに対応する拡張モジュールであるところの稜線処理拡張部である。
【００２６】
２１３は、ＪＢＩＧに対応する拡張モジュールであるところの画像伸張拡張部である。
表示リストに上述の稜線処理部２０２、レベル優先度決定部２０３、塗りつぶしデータ決定部２０４及び色合成部２０５に実装されていない機能を要する内部コマンドが命令実行部２０１によって発行される。そのときに、該内部コマンドの処理をプロセッサ１０１に対して依頼することができる。例えば、稜線処理部２０２は、自身の基本機能として直線セグメントの処理機能を有しているとすると、拡張モジュールであるところのＰｏｓｔＳｃｒｉｐｔとＧＤＩとの処理機能を併せ持つことになる。しかし、ベジエ曲線等のスプライン曲線の処理機能は持っていない。命令実行部２０１が表示リスト中にベジエ曲線の処理を必要とする命令を検出すると、命令実行部２０１は、稜線処理部２０２に対してベジェ曲線を処理する内部コマンドを発行する。
稜線処理部２０２は、プロセッサ１０１にベジエ曲線の処理を依頼し、プロセッサ１０１による実行結果を受け取った後に次の稜線の処理を実行する。
【００２７】
図４は、一連の画像形成フローにおける図３の画像形成手段の位置付けを示すフローチャートである。
図４に示すフローチャートは、ステップＳ３１のオブジェクト・グラフィック記述から始まる。このオブジェクト・グラフィック記述は、ホスト・プロセッサによって生成されるか、システムメモリによって提供され、グラフィック・オブジェクトのパラメータを記述する。オブジェクト・グラフィック記述には、ディスプレイ上の１点から別の点まで横断する直線の稜線、直交する線を含む複数の稜線によって二次元オブジェクトが定義される直交稜線フォーマットを含むいくつかのオブジェクトを組み込むことができる。これ以外に、連続曲線によってオブジェクトが定義されるフォーマットも適当である。これらには、乗算を実行する必要なしに二次曲線を単一の出力空間内で画像形成できるようにするいくつかのパラメータによって単一の曲線を記述できる二次多項式の線分を含めることができる。三次スプラインや類似物等のそれ以外のデータ・フォーマットを使用することもできる。オブジェクトには、多数の異なる稜線タイプの混合物を含めることができる。
【００２８】
通常、全てのフォーマットに共通するのは、それぞれの線（直線であれ曲線であれ）の始点と終点の識別子であり、通常は、これらは、スキャン・ライン番号によって識別され、したがって、その曲線を画像形成することのできる特定の出力空間が定義される。
【００２９】
次に、ステップＳ３２では、画像形成されるグラフィック・オブジェクトの記述に必要なデータを識別し、表示リスト生成を実行する。表示リスト生成は、ホスト・プロセッサで実行されるソフトウェア・モジュールとして実施されることが好ましい。表示リスト生成では、周知のグラフィック記述言語、グラフィック・ライブラリ呼出し又は他のアプリケーション固有フォーマットのうちの１つ又は複数で表現されたオブジェクト・グラフィック記述を表示リストに変換する。
表示リストは、通常は、ステップＳ３３の表示リスト・ストアで書き込まれる。
表示リスト・ストアは、一般にＲＡＭ内で形成されるが、その代わりに画像形成手段がローカルに有するメモリ内で形成することもできる。表示リスト・ストアには、複数の構成要素を含めることができ、その１つは命令ストリームであり、もう１つは稜線情報であり、ラスタ画像画素データを含めることができる。命令ストリームには、特定の画像内で所望される特定のグラフィック・オブジェクトを画像形成するために画像形成手段によって読み取られる、命令として解釈可能なコードが含まれる。
【００３０】
ステップＳ３４では、表示リスト・ストアは、画像形成手段によって読み取られる。画像形成手段は、表示リストをラスタ画素のストリームに変換する。このストリームはステップＳ３５において、例えばプリンタ、ディスプレイ又はメモリ・ストア等の別の装置に転送することができる。
【００３１】
図５は、本実施形態に係るコンテキスト情報保持手段の概略図である。
４００は、表示リストＩＤ“０”用の入力コンテキストのセレクタであり、コンテキスト読み出し手段１０４から発行される制御信号に従い、画像形成手段１００から供給されるコンテキスト情報とレジスタファイル２１０の情報をセレクトする。
４１０は、表示リストＩＤ“０”用コンテキスト情報を保持するレジスタファイルである。
【００３２】
４０１は、表示リストＩＤ“１”用の入力コンテキストのセレクタであり、コンテキスト読み出し手段１０４から発行される制御信号に従い、画像形成手段１００から供給されるコンテキスト情報とレジスタファイル２１１の情報をセレクトする。
４１１は、表示リストＩＤ“１”用コンテキスト情報を保持するレジスタファイルである。
４０２は、表示リストＩＤ“２”用の入力コンテキストのセレクタであり、コンテキスト読み出し手段１０４から発行される制御信号に従い、画像形成手段１００から供給されるコンテキスト情報とレジスタファイル２１２の情報をセレクトする。
４１２は、表示リストＩＤ“２”用コンテキスト情報を保持するレジスタファイルである。
【００３３】
４０３は、表示リストＩＤ“３”用の入力コンテキストのセレクタであり、コンテキスト読み出し手段１０４から発行される制御信号に従い、画像形成手段１００から供給されるコンテキスト情報とレジスタファイル２１３の情報をセレクトする。
４１３は、表示リストＩＤ“３”用コンテキスト情報を保持するレジスタファイルである。
４２０は、出力コンテキスト情報のセレクタである。セレクタ４２０は、コンテキスト書き戻し手段１０５から発行される制御信号に従い、レジスタファイル２１０，２１１，２１２，２１３のうち何れか１つを選択して画像形成手段１００に対して保存されたコンテキスト情報を発行する。
【００３４】
次に、図２に示す画像形成装置のタスク切り替え動作について説明する。
本実施形態では表示リストＩＤは、４つまで付与可能な構成のときであり、説明を簡単にするため、２つの表示リストのスイッチ動作のみ説明する。
まず、画像形成手段１００は、バスを介してメモリ１０７から表示リストを読み出すと共に表示リストに表示リスト毎に一意に識別可能なＩＤとして“０”を付与する。付与した新規表示リストＩＤをコンテキスト書き戻し手段１０５に通知し、表示リストの中に書かれた命令に従って処理を実行する。また、画像形成手段１００は、実行中の表示リストの表示リストＩＤ“０”をコンテキスト読み出し手段１０４及びコンテキスト書き戻し手段１０５に絶えず供給する。そして、画像形成手段１００は、内部で実行中の表示リストのコンテキスト情報もまたコンテキスト情報保持手段１０２に絶えず供給している。
【００３５】
画像形成手段１００は、表示リストの処理中に処理できない命令を検出したとき、プロセッサ１０１に表示リストＩＤ“０”が付与された処理依頼を発行すると同時に表示リストの処理を中断する。プロセッサ処理検出手段１０３は、画像形成手段１００からプロセッサ１０１に処理の依頼が行われたことを検出すると、コンテキスト読み出し手段１０４にプロセッサ１０１への処理依頼が発生したことを通知する。
【００３６】
コンテキスト読み出し手段１０４は、プロセッサ処理検出手段１０３から信号を受け取り、画像形成手段１００で実行中の表示リストＩＤ“０”のコンテキスト保存を指示する信号をコンテキスト情報保持手段１０２に通知する。
コンテキスト情報保持手段１０２は、コンテキスト情報読み出し手段１０４から受け取った表示リストＩＤ“０”のコンテキスト情報の保存場所２１０に画像形成手段１００から常に供給されているコンテキスト情報を保存する。
【００３７】
画像形成手段１００は、処理中断後に２１１〜２１３が使用されていないことを確認した後、メモリ１０７から新規表示リストの読み出しを行うと共に読み出した表示リストに表示リストＩＤ“１”を付与する。そして、付与した新規表示リストＩＤ“１”をコンテキスト書き戻し手段１０５に通知し、表示リストの中に書かれた命令に従って処理を実行する。自身で実行中の表示リストの表示リストＩＤ“１”をコンテキスト読み出し手段１０４及びコンテキスト書き戻し手段１０５に絶えず供給し、内部で実行中の表示リストのコンテキスト情報もまたコンテキスト情報保持手段１０２に絶えず供給している。
【００３８】
画像形成手段１００で新規に表示リストＩＤが生成された際、コンテキスト書き戻し手段１０５は、画像形成手段１００から新規に生成された表示リストＩＤの通知を受けると表示リスト毎の優先順位付けを行う為に内部で表示リストＩＤの管理をおこなう。本実施形態では、新規に生成された表示リストＩＤは、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）方式で管理される。生成されてから経過時間が大きい表示リストほど優先順位が高いものとする。本実施形態では表示リストＩＤは、新規表示リストの生成時に新たに生成され、表示リストの終了時に削除される。そのため、本動作例においては表示リストＩＤ“０”が表示リストＩＤ“１”より優先順位は高い。
【００３９】
プロセッサ１０１は、画像形成手段１００から受け取ったコマンドの処理終了後に表示リストＩＤ“０”を付与した処理結果を画像形成手段１００に発行する。
プロセッサ処理終了検出手段１０６は、プロセッサ１０１が画像形成手段１００に処理結果を発行したことを検出すると、処理結果に付与された表示リストＩＤ“０”を読み出し、コンテキスト書き戻し手段１０５に表示リストＩＤを発行する。
コンテキスト書き戻し手段１０５は、プロセッサ処理終了検出手段１０６から受信した表示リストＩＤ“０”が現在実行中の表示リストＩＤ“１”の表示リストより優先順位が高いので、コンテキスト読み出し手段１０４に読み出し信号を発行する。
コンテキスト読み出し手段１０４は、読み出し信号を受け取ると、画像形成手段１００に処理停止を指示する信号を発行すると共に表示リストＩＤ“１”のコンテキスト情報を保存するための制御信号をコンテキスト情報保持手段１０２に発行する。
コンテキスト保存が終了した後、画像形成手段１００で実行中の表示リストの無効化指示信号を発行すると同時にコンテキスト書き戻し手段１０５にコンテキスト読み出し終了信号を発行する。また、それと共に画像形成手段１００に処理停止信号の発行を止める。
【００４０】
コンテキスト書き戻し手段１０５は、コンテキスト読み出し手段１０４からコンテキスト読み出し終了信号を受け取ると、コンテキスト情報保持装置１０２に表示リストＩＤ“０”を発行すると共に画像形成手段１００にコンテキスト書き込み信号を発行する。
画像形成手段１００は、コンテキスト書き戻し手段１０５からコンテキスト書き込み信号を受け取るとコンテキスト情報保持手段１０２から供給されるコンテキストを内部にセットして表示リストＩＤ“０”の処理を継続する。
表示リストＩＤ“０”の処理が全て終了すると画像形成手段１００は、表示リストＩＤ“０”の削除をコンテキスト書き戻し手段１０５に通知する。これにより、画像形成手段１００からプロセッサ１０１に処理依頼を行ったとき、コンテキストを切り替えて別の表示リストの処理を継続する。プロセッサ１０１で処理終了後に再びプロセッサ１０１に処理依頼を行ったコンテキストを切り替える。これにより画像形成手段１００の待ち時間を減らしスループットを向上させる。
【００４１】
次に、図１に示す画像形成装置のタスクスケジューラ７０８の動作について説明する。
画像形成装置が処理するタスク（表示リスト）は、外部システムからバッファ７０９に一時的に保管される。タスクスケジューラ７０８は、バッファ７０９内に保持されている表示リスト内コマンドを検索し、ハードウェアＩＰ７００で処理不可能なコマンドが含まれていないかどうか探索を行う。ハードウェアＩＰ７００で処理不可能なコマンドを持つ表示リストを優先してメモリ７０２に転送する。
【００４２】
ハードウェアＩＰ７００は、メモリ７０２内の表示リストの読み込み、解析、処理を開始する。ハードウェアＩＰ７００は、上記コマンド解析中に処理不可能なコマンドを検出するとソフトウェアＩＰ７０１にコマンドを送信し、上述したタスク切り替えを行い、ソフトウェアＩＰ７０１の処理中に他の表示リストの読み込み、解析、処理を行う。そのためタスクスケジューラ７０８は、ソフトウェアＩＰ処理が必要な表示リストを優先してバッファ７０９からメモリ７０２に転送することで、ソフトウェアＩＰ処理中にタスク切り替えによって実行可能な表示リストが増えスループットを向上させることができる。
【００４３】
図６は、タスク切り替え可能な画像形成装置でタスクスケジュールを行わない場合の処理時間を示している。図７は、タスク切り替え可能な画像形成装置でタスクスケジュールを行った場合の処理時間を示している。実行条件として表示リストＡは、画像形成手段処理２００ｃｙｃｌｅ、プロセッサ処理８００ｃｙｃｌｅが必要な処理である。表示リストＢは、画像形成手段処理５００ｃｙｃｌｅが必要な処理である。表示リストＣは、画像形成手段処理１００ｃｙｃｌｅが必要な処理である。
表示リストは、タスクスケジュールを行わない場合、表示リストＢ、表示リストＡ、表示リストＣの順番で処理されるものとする。また、タスクスケジュールを行った場合、表示リストＡ、表示リストＢ、表示リストＣの順番で処理されるものとする。また、説明を簡単にするため、図６及び図７ではタスク切り替えにかかる時間は省略している。
【００４４】
図６に示す５００は、表示リストＢがハードウェアＩＰで処理されていることを示している。５０１は、ハードウェアＩＰで表示リストＡの処理が行われていることを示している。５０２は、ソフトウェアＩＰで表示リストＡの処理が開始されたことを示している。５０５は、ソフトウェアＩＰで表示リストＡの処理が終了したことを示している。５０３は、ハードウェアＩＰがタスク切り替えを行い、表示リストＣの処理を行っていることを示している。５０４は、ハードウェアＩＰがソフトウェアＩＰ処理待ち状態であることを示している。５０６は、ハードウェアＩＰで再び表示リストＡの処理が開始されたことを示している。
図６から明らかなように、表示リストのタスクスケジューリングを行わない場合、表示リストＡ，Ｂ，Ｃの合計処理時間は１５００ｃｙｃｌｅとなる。
【００４５】
図７に示す６００は、ハードウェアＩＰで表示リストＡが処理されていることを示している。６０１は、ソフトウェアＩＰで表示リストＡの処理が開始されたことを示している。６０３は、ソフトウェアＩＰで表示リストＡの処理が終了したことを示している。６０２は、ハードウェアＩＰがタスク切り替えを行い、表示リストＢの処理を行っていることを示している。６０４は、ハードウェアＩＰで表示リストＡの処理が再び開始されたことを示している。６０５は、ハードウェアＩＰで再び表示リストＢの処理が開始されたことを示している。６０６は、ハードウェアＩＰで表示リストＣの処理が開始されたことを示している。
図７から明らかなように、表示リストのタスクスケジューリングを行わない場合、表示リストＡ，Ｂ，Ｃの合計処理時間は１４００ｃｙｃｌｅとなる。
【図面の簡単な説明】
【００４６】
【図１】本実施形態に係るデータ処理装置の概略構成図である。
【図２】本実施形態に係る画像形成装置を示す構成図である。
【図３】本実施形態に係る画像形成手段を示す構成図である。
【図４】本実施形態に係る画像形成フローチャートである。
【図５】本実施形態に係るコンテキスト情報保持装置の構成図である。
【図６】タスクスケジューリングを行わない場合のタイミングチャートである。
【図７】本実施形態に係るタスクスケジューリングを行った場合のタイミングチャートである。
【符号の説明】
【００４７】
７００    ハードウェアＩＰ
７０１    ソフトウェアＩＰ
７０２    メモリ
７０８    タスクスケジューラ
７０９    バッファ
１００    画像形成手段
１０１    プロセッサ
１０２    コンテキスト情報保持手段
１０３    プロセッサ処理検出手段
１０４    コンテキスト読み出し手段
１０５    コンテキスト書き戻し手段
１０６    プロセッサ処理終了検出手段
【図１】
2010020415.tif 000003
【図２】
2010020415.tif 000004
【図３】
2010020415.tif 000005
【図４】
2010020415.tif 000006
【図５】
2010020415.tif 000007
【図６】
2010020415.tif 000008
【図７】
2010020415.tif 000009