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