(57)【要約】【課題】サブパケット単位でデータ送信するＤＭＡコントローラに対して、パケット単位でリソースの占有を許す。【解決手段】ＤＭＡＣ０〜ＤＭＡＣ２は、パケットをサブパケットに分割して画像リング２００８に送信する。それに先だって、まずリソースマネージャ１０５に対して送信先のリソースを要求する。そしてパケットの送信後にリソースの解放を要求する。リソースマネージャは、割り当て済みのリソースを管理しており、リソースが要求されると、そのリソースが割り当て済みでなければ、要求元のＤＭＡＣにリソースを割り当て、そのリソースを割り当て済みとして管理する。割り当て済みなら、リソース要求を待機させる。そしてリソース解放要求に従って、リソースを解放する。【選択図】図１
2004040637.tif 000002
【特許請求の範囲】
【請求項１】
データをパケット単位で送受信するパケット通信装置であって、
パケットを分割して送信する複数の送信部を有する送信手段と、
前記送信手段により送信されるパケットのあて先であるリソースを、パケットを単位として排他管理する管理手段と
を備えることを特徴とするパケット通信装置。
【請求項２】
前記送信部は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を前記管理手段に通知し、前記管理手段から与えられた送信許可に基づいてパケットを分割してあて先へと送信し、送信終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、使用されているリソース情報を記憶する記憶手段を有し、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、前記送信部から前記リソースの解放が通知された場合には、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化することを特徴とする請求項１に記載のパケット通信装置。
【請求項３】
前記リソースは、ひとつの半導体回路上に存在する複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子が前記リソースとして管理されることを特徴とする請求項２に記載のパケット通信装置。
【請求項４】
前記リソースは、複数の半導体回路上に存在する、複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子および前記半導体回路を識別するための識別子が前記リソースとして管理されることを特徴とする請求項２に記載のパケット通信装置。
【請求項５】
前記リソースは、受信した分割されたパケットを再組み立てして処理することを特徴とする請求項１に記載のパケット通信装置。
【請求項６】
データをパケット単位で送受信するパケット通信制御方法であって、
パケットを分割して送信する複数の送信部の各々は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を、使用されているリソース情報を記憶する記憶手段を有する管理手段に通知し、
前記管理手段は、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、
前記送信部は、前記送信許可に応じてパケットを分割して送信し、その終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、前記送信部からの前記リソースの解放の通知に応じて、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化することを特徴とするパケット通信制御方法。
【請求項７】
請求項１乃至５のいずれか１項に記載のパケット通信装置により、画像処理ユニットを前記リソースとして、制御部と前記画像処理ユニットとのインターフェース回路を前記送信手段として接続し、パケット化された画像データが前記インターフェース回路から前記画像処理ユニットへと送信されることを特徴とする画像処理装置。
【請求項８】
パケット化されたデータをサブパケットに分割して送信する複数のＤＭＡコントローラと該ＤＭＡコントローラによるデータ送信を調停する調停回路とを備えるインターフェース回路であって、
前記調停回路は、前記複数のＤＭＡコントローラそれぞれが要求するリソースを登録するメモリと、
該メモリに登録されたリソースと、前記複数のＤＭＡコントローラそれぞれが要求するリソースとを比較する比較回路と、
前記ＤＭＡコントローラからリソース要求が発行されると、前記比較回路による比較の結果、一致するリソースが前記メモリに登録されていないと判定された場合には、リソース要求を発行したＤＭＡコントローラに対してリソースの占有許可を発行し、前記ＤＭＡコントローラからリソース解放要求が発行されると、前記メモリからソース解放要求対象のリソースを削除する管理シーケンサとを備え、
前記複数のＤＭＡコントローラそれぞれは、前記パケットの送信前の前記調停回路に対してリソースを要求し、送信号にリソース解放を要求することを特徴とするパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば画像データと前記画像データに関する情報を含むヘッダとで構成されるデータパケットによる通信を行うパケット通信装置及びパケット通信制御方法に関する。
に関する。
【０００２】
【従来の技術】
近年、デジタル複合機等において、画像処理の効率化やメモリの削減等のために、画像データをパケット化して処理する技術、さらには、パケットの転送によって長時間バスやリングなどの通信チャネルが占有されることを防ぐため、パケットをさらに細かくサブパケットという単位に分割し、サブパケット単位でバスやリングなどの通信チャネルにより送信する技術が提案されている。
【０００３】
しかし、複数のマスタ（送信側デバイス）が、同一のスレーブ（受信側デバイス）に対して、パケット化したデータをサブパケットに分割して送信しようとする場合、スレーブが同時にひとつのパケットしか取り扱えないと、スレーブがあるパケットのサブパケットを受信中に、他のパケットのサブパケットを並行して受信すると、スレーブは誤動作を起こしてしまう。
【０００４】
これを避けるためには、スレーブをリソースとし、複数のマスタがターゲットとするスレーブが重ならないように、ソフトウェアによりパケット単位でリソースの排他利用を行わせるためのリソース管理を行なう必要があった。
【０００５】
【発明が解決しようとする課題】
しかしながら、ソフトウェアによるリソース管理をパケット毎に行なうのはオーバーヘッドが大きく、性能が大きく落ち込んでしまう。性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかしこのような方法では、ＤＭＡコントローラ（ＤＭＡＣ）の起動はタイル伸張部の数の範囲内に限られる。
【０００６】
本発明は上記従来例に鑑みてなされたもので、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のＤＭＡＣを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させるパケット通信装置及びパケット通信制御方法を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明は次の構成を有する。
【０００８】
データをパケット単位で送受信するパケット通信装置であって、
パケットを分割して送信する複数の送信部を有する送信手段と、
前記送信手段により送信されるパケットのあて先であるリソースを、パケットを単位として排他管理する管理手段とを備える。
【０００９】
更に好ましくは、前記送信部は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を前記管理手段に通知し、前記管理手段から与えられた送信許可に基づいてパケットを分割してあて先へと送信し、送信終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、使用されているリソース情報を記憶する記憶手段を有し、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、前記送信部から前記リソースの解放が通知された場合には、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【００１０】
更に好ましくは、前記リソースは、ひとつの半導体回路上に存在する複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子が前記リソースとして管理される。
【００１１】
更に好ましくは、前記リソースは、複数の半導体回路上に存在する、複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子および前記半導体回路を識別するための識別子が前記リソースとして管理される。
【００１２】
更に好ましくは、前記リソースは、受信した分割されたパケットを再組み立てして処理する。
【００１３】
あるいは、データをパケット単位で送受信するパケット通信制御方法であって、
パケットを分割して送信する複数の送信部の各々は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を、使用されているリソース情報を記憶する記憶手段を有する管理手段に通知し、
前記管理手段は、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、
前記送信部は、前記送信許可に応じてパケットを分割して送信し、その終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、前記送信部からの前記リソースの解放の通知に応じて、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【００１４】
あるいは、上記いずれかのパケット通信装置により、画像処理ユニットを前記リソースとして、制御部と前記画像処理ユニットとのインターフェース回路を前記送信手段として接続し、パケット化された画像データが前記インターフェース回路から前記画像処理ユニットへと送信されることを特徴とする画像処理装置にある。
【００１５】
あるいは、パケット化されたデータをサブパケットに分割して送信する複数のＤＭＡコントローラと該ＤＭＡコントローラによるデータ送信を調停する調停回路とを備えるインターフェース回路であって、
前記調停回路は、前記複数のＤＭＡコントローラそれぞれが要求するリソースを登録するメモリと、
該メモリに登録されたリソースと、前記複数のＤＭＡコントローラそれぞれが要求するリソースとを比較する比較回路と、
前記ＤＭＡコントローラからリソース要求が発行されると、前記比較回路による比較の結果、一致するリソースが前記メモリに登録されていないと判定された場合には、リソース要求を発行したＤＭＡコントローラに対してリソースの占有許可を発行し、前記ＤＭＡコントローラからリソース解放要求が発行されると、前記メモリからソース解放要求対象のリソースを削除する管理シーケンサとを備え、
前記複数のＤＭＡコントローラそれぞれは、前記パケットの送信前の前記調停回路に対してリソースを要求し、送信号にリソース解放を要求する。
【００１６】
【発明の実施の形態】
本発明は、画像データを一定サイズのタイルに分割し、タイル単位で様々な処理を施す画像処理装置に係るものである。この画像処理装置は、拡大や縮小等の様々な画像処理ユニットを備えており、それら画像処理ユニットにおいてはタイルを単位として処理が行われる。これら画像処理ユニットは画像リングインターフェースと呼ばれる高速インターフェースで画像メモリやプロセッサと接続されている。タイルはそれが転送される際には、ヘッダやフッタが付されたパケットとされ、そのパケットは更に分割されたサブパケットとして画像リングインターフェース上を転送される。画像データのタイル化およびパケット化は、例えば後述する図７，図８のＲＡＭ２００２に格納された画像データに対してＣＰＵ（０），ＣＰＵ（１）により行われる。パケットからの画像データの再構成も同様である。またパケットの転送に際してサブパケット化は、例えば画像リングインターフェース（１），（２）により行われる。この場合サブパケットからのパケットの再構成は、画像リングインターフェースのみならず、サブパケット単位でデータを受信してタイル単位で処理を行う各画像処理ユニットにより行われる。
【００１７】
以下、本発明に係る装置及びその動作について詳細に説明する。
【００１８】
［ハードウェア全体構成（図６）］
本実施形態における画像処理装置を含むネットワークシステム全体の構成図を図６に示す。
【００１９】
画像処理装置１００１は、後述する図７，図８のコントローラ２０００にスキャナ２０７０とプリンタ２０９５とを接続してなる複合画像処理装置である。この装置は、スキャナから読み込んだ画像をローカルエリアネットワーク（ＬＡＮ）１０１０に流したり、ＬＡＮから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないファクシミリ（ＦＡＸ）送信手段により、公衆電話交換網（ＰＳＴＮ）または総合サービスデジタル通信網（ＩＳＤＮ）１０３０に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトできる。データベースサーバ１００２は、複合画像処理装置１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００２０】
データベースクライアント１００３は、データベースサーバ１００２のクライアント端末で、データベース１００２に保存されている画像データを閲覧／検索等できる。
【００２１】
電子メールサーバ１００４は、電子メールメッセージの送受信機能や、メールボックス機能、メッセージ管理機能を有するサーバである。複合画像処理装置１００１は読み取らった画像を電子メールの添付画像としてネットワークに送信できるが、電子メールサーバ１００４は、その電子メールを受信することができる。電子メールクライアント１００５は、電子メールサーバ１００４の受け取ったメールを受信する。利用者はそこで電子メールを閲覧したり送信したりすることができる。
【００２２】
ワールドワイドウエブ（ＷＷＷ）サーバ１００６は、ハイパーテキストマークアップ言語（ＨＴＭＬ）文書を構内ネットワーク（ＬＡＮ）に提供するＷＷＷサーバである。複合画像処理装置１００１は、ＷＷＷサーバ１００６で提供されるＨＴＭＬ文書をプリントアウトできる。ドメインネームシステム（ＤＮＳ）サーバ１００７は、ホスト名とインターネットプロトコル（ＩＰ）アドレスの対応関係を記述したデータベースを管理しており、クライアントからの要求に応じて、ホスト名からそのＩＰアドレスを参照できるようにする。
【００２３】
ルータ１０１１は、ＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットに、前述したデータベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４、複合画像処理装置１００１と同様の装置が、それぞれ１０２０、１０２１、１０２２、１０２３として連結している。一方、複合画像処理装置１００１は、ＰＳＴＮまたはＩＳＤＮ１０３０を介して、ファクシミリＦＡＸ装置１０３１と送受信可能になっている。
【００２４】
また、ＬＡＮ上にプリンタ１０４０も連結されており、複合画像処理装置１００１により読み取った画像をプリントアウト可能なように構成されている。
【００２５】
［コントローラの構成（図７，８）］
画像処理装置１００１を制御するコントローラ２０００の構成を図７及び図８に示す。
【００２６】
コントローラユニット２０００には画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５が接続される一方、ＬＡＮ２０１１や公衆回線ＷＡＮ２０５１にも接続される。コントローラユニット２０００は、画像入力デバイスや画像出力デバイス、通信回線を用いた画像情報やデバイス情報の入出力、ページ記述言語（ＰＤＬ）データのイメージ展開などを制御する。
【００２７】
ＣＰＵ２００１はシステム全体を制御するプロセッサである。コントローラユニット２０００では２つのＣＰＵを用いている。これら２つのＣＰＵは、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００２８】
システムバスブリッジ２００７はバススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、入出力（ＩＯ）バス１２１２７、サブバススイッチ２１２８、ＩＯバス（２）２１２９、画像リングインターフェース（１）２１４７、画像リングインターフェース（２）２１４８が接続される。
【００２９】
サブバススイッチ２１２８は、第２のバススイッチであり、画像ＤＭＡ（ダイレクトメモリアクセス）（１）２１３０、画像ＤＭＡ（２）２１３２、フォント伸張部３１３４、ソート回路２１３５、ビットマップトレース部２１３６が接続され、これらのＤＭＡから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【００３０】
ＲＡＭ２００２はＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭ２００２はＲＡＭコントローラ２１２４により制御される。本実施形態では、ダイレクトＲＤＲＡＭを採用する例を示す。
【００３１】
ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭコントローラ２１２５により制御される。
【００３２】
画像ＤＭＡ（１）２１３０は、画像圧縮部２１３１に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像圧縮部２１３１を制御し、ＲＡＭ２００２上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う。本実施形態では、ＪＰＥＧを圧縮アルゴリズムに採用した例を示す。
【００３３】
画像ＤＭＡ（２）２１３２は、画像伸張部２１３３に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像伸張部２１３３を制御し、ＲＡＭ２００２上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施形態では、ＪＰＥＧを伸張アルゴリズムに採用した例を示す。
【００３４】
フォント伸張部２１３４は、ＬＡＮインターフェース２０１０等を介し外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ２００３もしくは、ＲＡＭ２００２内に格納された、圧縮フォントデータの伸張を行う。本実施形態では、ＦＢＥアルゴリズムを採用した例を示した。
【００３５】
ソート回路２１３５は、ＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。
【００３６】
ビットマップトレース回路２１３６は、ビットマップデータより、エッジ情報を抽出する回路である。
【００３７】
ＩＯバス（１）２１２７は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインターフェース２１３８、汎用シリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯインターフェース２１４１が接続される。ＩＯバス１には、バスアービタ（図示せず）が含まれる。
【００３８】
操作部Ｉ／Ｆ（インターフェース）２００６は、操作部ＵＩ（ユーザインターフェース）２０１２とのインターフェース部で、操作部ＵＩ２０１２に表示する画像データを操作部ＵＩ２０１２に対して出力する。また、操作部ＵＩ２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００３９】
ＩＯバス（２）２１２９は内部ＩＯバスの一種であり、汎用バスインターフェース（１）及び（２）２１４２と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２にはバスアービタ図示せずが含まれる。
【００４０】
汎用バスインターフェース２１４２は、２つの同一のバスインターフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施例では、ＰＣＩバス２１４３を採用した例を示した。
【００４１】
ＨＤＤ２００４はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ２１４４を介して一方のＰＣＩバス２１４３に接続される。
【００４２】
ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１に接続し、情報の入出力を行う。
【００４３】
モデム２０５０は公衆回線２０５１に接続し、情報の入出力を行う。
【００４４】
画像リングインターフェース（１）２１４７及び画像リングインターフェース（２）２１４８は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化後に圧縮されたデータをＲＡＭ２００２とタイル画像処理部２１４９間で転送するＤＭＡコントローラである。
【００４５】
画像リング２００８は、一対の単方向接続経路の組み合わせにより構成される（画像リング１及び画像リング２）。画像リング２００８は、タイル画像処理部２１４９内で、画像リングインターフェース（３）２１０１及びタイル画像インターフェース（４）２１０２を介し、タイル伸張部２１０３、コマンド処理部２１０４、ステータス処理部２１０５、タイル圧縮部２１０６に接続される。本実施形態では、タイル伸張部２１０３を２組、タイル圧縮部を３組実装する例を示した。
【００４６】
タイル伸張部２１０３は、画像リングインターフェースへの接続に加え、タイルバス２１０７に接続され、画像リングより入力された圧縮後の画像データを伸張し、タイルバス２１０７へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを伸張アルゴリズムとして採用した例を示す。
【００４７】
タイル圧縮部２１０６は、画像リングインターフェースへの接続に加え、タイルバス２１０７に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング２００８へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【００４８】
コマンド処理部２１０４は、画像リングインターフェースへの接続に加え、レジスタ設定バス２１０９に接続され、ＣＰＵ２００１より発行されて画像リングを介して入力されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当画像処理ブロックへ書き込む。また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース（４）２１０２に転送する。ここで、コマンド処理部２１０４によるレジスタの設定および読み出しの対象となる画像処理ユニットは、図７，図８においては、タイル伸長部（１）〜（２）２１０３、タイル圧縮部（１）〜（３）２１０６、外部バスＩＦ部２１２０、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６、メモリ制御部２１２２、画像入力インターフェース２１１２、画像出力インターフェース２１１３となる。この実施形態における説明では、これらを単に画像処理ユニットと称する場合もある。なお図７，図８においては、タイル伸長部（１）〜（２）２１０３およびタイル圧縮部（１）〜（３）２１０６とレジスタ設定バス２１０９との間の接続は図示されていないが、これらの画像処理ユニットもまたコマンドによるレジスタ設定の対象となる。なお、設定・読み出し対象となるレジスタそのものは図示されていないが、レジスタ設定バスを介して読み書き可能なように各画像処理ユニットに備えられている。
【００４９】
ステータス処理部２１０５は各画像処理部の情報を監視し、ＣＰＵ２００１に対して割り込みを発行するための割り込みパケット（Ｉｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔ）を生成し、画像リングインターフェース（４）２１０２に出力する。
【００５０】
タイルバス２１０７には上記ブロックに加え、レンダリング部インターフェース２１１０、画像入力インターフェース２１１２、画像出力インターフェース２１１３、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６などの機能ブロック（画像処理ユニット）が接続される。画像処理にあたっては、これらの画像処理ユニットのうち、処理内容に応じて選択された画像処理ユニット間において、タイルバス２１０７を介して画像データがタイル単位でフィードされ、各画像処理ユニットにおいて順次処理が遂行される。すなわちいわゆるパイプライン的な処理を行うことができる。
【００５１】
レンダリング部インターフェース２１１０は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号２１１１にて接続される。レンダリング部インターフェースは、タイルバス２１０７に加え、メモリバス２１０８、レジスタ設定バス２１０９への接続を有し、入力されたラスタ画像を、レジスタ設定バスを介して設定された所定の方法によりタイル画像へと構造を変換すると同時にクロックの同期化を行い、タイルバス２１０７に対し出力を行う。
【００５２】
画像入力インターフェース２１１２は、後述するスキャナ用画像処理部２１１４により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス２１０７に対し出力を行う。
【００５３】
画像出力インターフェース２１１３は、タイルバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部２１１５へ出力する。
【００５４】
画像回転部２０３０は画像データの回転を行う。解像度変換部２１１６は画像の解像度の変更を行う。色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行う。２値化部２１１８は、多値カラー、グレースケール画像を２値化する。多値化部２１１９は２値画像を多値データへ変換する。
【００５５】
外部バスインターフェース部２１２０は、画像リングインターフェース１，２，３，４、コマンド処理部、レジスタ設定バスを介し、ＣＰＵ２００１により発行された、書き込み、読み出し要求を外部バス（３）２１２１に変換出力するバスブリッジである。外部バス（３）２１２１は、本実施形態では、プリンター用画像処理部２１１５、スキャナー用画像処理部２１１４に接続されている。
【００５６】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ（１）及び画像メモリ（２）２１２３に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリとしてシンクロナスＤＲＡＭ（ＳＤＲＡＭ）を用いた例を示した。
【００５７】
スキャナー用画像処理部２１１４では、画像入力デバイスであるスキャナ２０７０によりスキャンされた画像データを補正画像処理する。
【００５８】
プリンタ用画像処理部２１１５では、プリンタ出力のための補正画像処理を行い、結果をプリンタ２０９５へ出力する。
【００５９】
レンダリング部２０６０はＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００６０】
［タイル画像（パケット）フォーマット］
本発明によるコントローラユニット２０００内では、画像データ、ＣＰＵ２００１によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【００６１】
本実施形態では、図９に示すデータパケット、図１０に示すコマンドパケット、図１１に示すインタラプトパケット（割込パケット）の３種の異なる種類のパケットが使用される。
【００６２】
［データパケット（図９）］
本実施形態では、画像データは、３２ピクセル×３２ピクセルのタイル単位の画像データ３００２に分割されて取り扱われる。このタイル単位の画像に、必要なヘッダ情報３００１及び画像付加情報等３００３を付加してデータパケットとする。以下にヘッダ情報３００１に含まれる情報について説明を行なう。
【００６３】
パケットのタイプはヘッダ情報３００１内のパケットタイプ（ＰｃｋｔＴｙｐｅ）３００４で区別される。ＰｃｋｔＴｙｐｅ３００４にはリピートフラグが含まれており、データパケットの画像データが１つ前に送信したデータパケットの画像データと同一の場合、リピートフラグがセットされる。
【００６４】
チップＩＤ（ＣｈｉｐＩＤ）３００５はパケットを送信するターゲットとなるチップのＩＤを示す。
【００６５】
データタイプ（ＤａｔａＴｙｐｅ）３００６はデータのタイプを示す。
【００６６】
ページＩＤ（ＰａｇｅＩＤ）３００７はページを示しており、ジョブＩＤ（ＪｏｂＩＤ）３００８はソフトウェアで管理するためのジョブ識別子を格納する。
【００６７】
タイルの番号はＹ方向のタイル座標３００９とＸ方向のタイル座標３０１０の組み合わせで、ＹｎＸｎで表される。
【００６８】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー（多値グレースケールを含む）の場合はＪＰＥＧを、２値の場合はパックビッツを採用している。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ（ＣｏｍｐｒｅｓｓＦｌａｇ）３０１７で示される。
【００６９】
処理命令（ＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎ）３０１１は左詰で処理順に設定され、各処理ユニットは、データパケットの処理後、そのパケットのＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎを左に８ビットシフトする。ＰｒｏｃｅｓｓＩｎｓｔｒｕｃｔｉｏｎ３０１１はユニットＩＤ（ＵｎｉｔＩＤ）３０１９とモード（Ｍｏｄｅ）３０２０の組が８組格納されている。ＵｎｉｔＩＤ３０１９は各処理ユニットを指定し、Ｍｏｄｅ３０２０は各処理ユニットでの動作モードを指定する。これにより、１つのパケットを８つの処理ユニットで連続して、それぞれの処理ユニットについて設定されたモードで処理することができる。
【００７０】
パケットバイト長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）３０１２はパケットのトータルバイト数を示す。
【００７１】
画像データバイト長（ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ）３０１５は画像データのバイト数、Ｚデータバイト長（ＺＤａｔａＢｙｔｅＬｅｎｇｔｈ）３０１６は画像付加情報のバイト数を表し、画像データオフセット（ＩｍａｇｅＤａｔａＯｆｆｓｅｔ）３０１３、Ｚデータオフセット（ＺＤａｔａＯｆｆｓｅｔ）３０１４はそれぞれのデータのパケットの先頭からのオフセットを表している。
【００７２】
［パケットテーブル（図１２）］
各パケットは図１２に示すパケットテーブル６００１によって管理される。
【００７３】
パケットテーブル６００１の構成要素は次の通りである。テーブルに登録されたパケットアドレスポインタ（ＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ）６００２およびパケット長（ＰａｃｋｅｔＬｅｎｇｔｈ）６００５それぞれの値について０を５ビット付加すると、それぞれパケットの先頭アドレスおよびパケットのバイト長となる。
【００７４】
ＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ（２７ビット）＋０００００（５ビット）＝パケット先頭アドレス（３２ビット）
ＰａｃｋｅｔＬｅｎｇｔｈ（１１ビット）＋０００００（５ビット）＝パケットのバイト長（１６ビット）
なおパケットテーブル６００１とチェーンテーブル６０１０は分割されないものとする。
【００７５】
パケットテーブル６００１のエントリはタイルの走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００，０００／００１，０００／００２，．．．．という順で並んでいる。このパケットテーブル６００１の各エントリは一意にひとつのタイルを示す。また、Ｙｎ／Ｘｍａｘ（ＸｍａｘはＸ方向についての最大値）の次のエントリはＹｎ＋１／Ｘ０となる。
【００７６】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに１つ前のエントリと同じＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ，ＰａｃｋｅｔＬｅｎｇｔｈを格納する。すなわち１つのパケットデータを２つのエントリが指すようなかたちになる。この場合、２つめのテーブルエントリのＲｅｐｅａｔＦｌａｇ６００３がセットされる。
【００７７】
パケットがチェインＤＭＡにより複数に分断された場合は、分割フラグ（ＤｉｖｉｄｅＦｌａｇ）６００４をセットし、そのパケットの先頭部分が入っているチェインブロックのチェインテーブル番号（ＣｈａｉｎＴａｂｌｅＮｏ）６００６をセットする。
【００７８】
チェインテーブル６０１０のエントリはチェインブロックアドレス（ＣｈａｉｎＢｌｏｃｋＡｄｄｒｅｓｓ）６０１１とチェインブロック長（ＣｈａｉｎＢｌｏｃｋＬｅｎｇｔｈ）６０１２を有しており、テーブルの最後のエントリにはアドレス長さ共に０を格納しておく。
【００７９】
［コマンドパケットフォーマット（図１０）］
コマンドパケットフォーマットはレジスタ設定バス２１０９へのアクセスを行うためのものである。本パケットを用いることにより、ＣＰＵ２００１より画像メモリ２１２３へのアクセスも可能である。
【００８０】
チップＩＤ（ＣｈｉｐＩＤ）４００４にはコマンドパケットの送信先となる画像処理部２１４９を表すＩＤが格納される。
【００８１】
ページＩＤ（ＰａｇｅＩＤ）４００７、ジョブＩＤ（ＪｏｂＩＤ）４００８はソフトウェアで管理するためのページＩＤとジョブＩＤを格納する。
【００８２】
パケットＩＤ（ＰａｃｋｅｔＩＤ）４００９は１次元で表される。データパケットのＸ座標のみを使用する。
【００８３】
パケットバイト長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）４０１０は１２８バイト固定である。
【００８４】
パケットデータ部４００２には、アドレス４０１１とデータ４０１２の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはコマンドタイプ（ＣｍｄＴｙｐｅ）４００５で示され、コマンドの数はコマンド数（ＣｍｄＮｕｍ）４００６で示される。
【００８５】
［割り込みパケットフォーマット（図１１）］
割り込みパケット（Ｉｎｔｅｒｒｕｐｔ　Ｐａｃｋｅｔ）フォーマットは画像処理部２１４９からＣＰＵ２００１への割り込みを通知するためのものである。ステータス処理部２１０５は割り込みパケットを送信すると、次に送信の許可がされるまでは割り込みパケットを送信してはならない。
【００８６】
パケットバイト長（ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ）５００６は１２８バイト固定である。
【００８７】
パケットデータ部５００２には、画像処理部２１４９の各内部モジュールのステータス情報５００７が格納されている。ステータス処理部２１０５は画像処理部２１４９内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００８８】
チップＩＤ（ＣｈｉｐＩＤ）５００４には割り込みパケットの送信先となるシステム制御部２１５０を表すＩＤが、また、割り込みチップＩＤ（ＩｎｔＣｈｉｐＩＤ）５００５には割り込みパケットの送信元となる画像処理部２１４９を表すＩＤが格納される。
【００８９】
［パケットの転送］
次に画像リング２００８でのパケット転送について説明する。
【００９０】
図２はパケットをさらに分割したサブパケットを説明するための図である。本発明に係るコントローラユニット２０００ではパケットを分割し、それぞれの分割されたものに、さらに属性を付加してサブパケットを作成し、サブパケット単位で画像リング２００８にデータを伝達させる。サブパケットの属性には、そのサブパケットがどのパケットのサブパケットであるかや、どの画像処理部に送るべきかの情報が含まれる。
【００９１】
ここで注意すべきは、パケットからサブパケットへの分割は、１枚の画像からタイルへの分割とは本質的に異なるということである。言い換えると、パケットからサブパケットへのさらなる細分化は、タイルのサイズを小さくした、さらなる細分化では実現できないということである。具体的に言うと、タイルのサイズは３２ピクセル×３２ピクセルや６４ピクセル×６４ピクセルが一般的である。本実施形態では３２×３２ピクセルとしている。その理由は、これより小さいサイズでは問題があるからである。たとえば、データの圧縮では、ある範囲内のピクセルを参照することにより符号化しているが、タイルのサイズが小さいと効率的な圧縮ができないか、あるいは圧縮自体ができない。画像処理においても同様なことが言える。つまり、パケットは処理の最小単位であり、画像データのサイズをそれ以下にすると処理が行えないか、あるいは処理を行えても良好な結果が得られないものである。パケットからサブパケットへの分割は、パケットをビット列として単純に分割したものである。そして、サブパケットは画像リング２００８を伝達する最小単位である。
【００９２】
図２において、画像データ２０１は一定サイズのタイル２０２に分割される。このタイルが、図７及び図８の画像処理ユニットにおける処理の単位となる。例えば、タイル伸長部やタイル圧縮部などでは、タイル単位で処理が行われる。タイル２０２にはそれをデータ部２０５とし、ヘッダ２０４が付されてパケット２０３となる。ヘッダ２０４には、例えば画像データにおけるパケットの位置などの情報が含まれる。
【００９３】
パケット２０３は、サブパケット２０６，２０８，２０９に分割される。各サブパケットには属性２０７が付加される。またパケット２０３のフッタ２１０については、それのみでサブパケット２１１が構成される。フッタ２１０はヘッドと同じ構成であり、送信は必須ではない。
【００９４】
［サブパケットの属性］
図３にサブパケットの属性２０７の構成を示す。属性２０７には、ページＩＤ（ＰａｇｅＩＤ）３０１、ジョブＩＤ（ＪｏｂＩＤ）３０２、パケットタイプ（ＰａｃｋｅｔＴｙｐｅ）３０３、チップＩＤ（チップＩＤ）３０４、ユニットＩＤ（ＵｎｉｔＩＤ）３０５、パケット開始（ＳｔａｒｔｏｆＰａｃｋｅｔ）フラグ３０６、データ終了（ＥｎｄｏｆＤａｔａ）フラグ３０７、パケット終了（ＥｎｄｏｆＰａｃｋｅｔ）フラグ３０８といったフィールドが存在する。
【００９５】
属性２０７はすべてのサブパケットについており、ページＩＤ３０１、ジョブＩＤ３０２、パケットタイプ３０３、チップＩＤ３０４、ユニットＩＤ３０５の内容はそのサブパケットが属するパケットのヘッダ２０４からコピーされる。ユニットＩＤ３０５についてはヘッダ内の処理命令３０１１の一番最初のユニットＩＤがコピーされる。
【００９６】
パケットの先頭のヘッダ２０４が含まれたサブパケット２０６の属性には、パケット開始フラグ３０６がセットされる。これにより、そのサブパケットがパケットの先頭であることが示される。また、パケット転送の後にフッタ２１０の転送を行なわない場合、パケットの最後のサブパケット２０９では、データ終了フラグ３０７およびパケット終了フラグ３０８の両方のフラグがセットされる。パケット転送の後にフッタ２１０の転送を行なう場合は、パケットの最後のサブパケット２０９で、データ終了フラグ３０７がセットされ、その後のフッタ２１０の転送を行なうサブパケット２１１でパケット終了フラグ３０８がセットされる。
【００９７】
フッタは送られる場合と送られない場合がある。フッタの構成要素はヘッダと同じである。パケットを転送する際、ヘッダを一番最初に転送し、その後パケットデータを転送する。ヘッダにはパケットデータの属性や長さなどが格納される。
【００９８】
イメージデータを圧縮してパケットを作成して転送を行なう場合などは、イメージデータを圧縮し終わるまでヘッダの内容が確定しない。そのため、圧縮機能を持ったパケット送信装置などは、圧縮した１パケット分のイメージデータを一時的に格納するバッファを持つ必要がある。本実施形態では、ヘッダをパケットの最後にフッタとして転送することができるプロトコルを採用しているため、ヘッダの内容が確定しないまま、ヘッダを転送することが可能で、圧縮したイメージデータもその都度転送することを可能としている。このため、１パケット分のイメージデータを格納するバッファを削減することも可能である。
【００９９】
［画像リングインターフェース］
図１に画像リングインターフェース１（２１４７）内部のブロック図を示す。画像リングインターフェース１（２１４７）はＲＡＭ２００２に格納されているパケットを読み出し、画像リング２００８に送信するためにＤＭＡＣ０（１０２）、ＤＭＡＣ１（１０３）、ＤＭＡＣ２（１０３）の３つのＤＭＡＣを持つ。各ＤＭＡＣからＲＡＭ２００２へのアクセス、及び画像リング２００８へのアクセスはサブパケット単位で行なわれ、それぞれシステムバスアービタ１０１と画像リングアービタ１０６により調停される。サブパケット単位での転送にすることで、ひとつのパケットが画像リング２００８を長い時間占有してしまうことが防げる。しかし、それぞれのＤＭＡＣによるＲＡＭ２００２へのアクセスと画像リング２００８へのアクセスにおいては、転送径路の異なるパケットデータがサブパケット毎に混在して転送される。
【０１００】
ここで注意が必要なのは、画像処理部２１４９のタイル伸張部１とタイル伸張部２（２１０３）はパケットに格納されている圧縮画像データを伸張する機能を持っているが、同時にひとつのパケットしか取り扱えないため、あるパケットを受信中に他のパケットのサブパケットが混じると、誤動作を起こしてしまうことである。
【０１０１】
これを避けるためには、２つのタイル伸張部をリソースとし、ＤＭＡＣ０（１０２）、ＤＭＡＣ１（１０３）、ＤＭＡＣ２（１０３）の３つのＤＭＡＣで使用するタイル伸張部が重ならないように、ソフトウェアにおいてリソース管理を行なう必要がある。リソースの管理とは、例えばリソースを、それを要求するプロセスやハードウエア等に割り当ててその排他利用を実現することである。ソフトウェアによるリソース管理をパケット毎に行なうのは、オーバーヘッドが大きく、性能が大きく落ち込んでしまう。そこで性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかし、このような方法では、ＤＭＡＣの起動はタイル伸張部の数の範囲内に限られる。
【０１０２】
本発明に係るコントローラユニット２０００では、リソースマネージャ１０５がパケット毎に各ＤＭＡＣを調停してリソース管理することで、タイル伸張部の数以上のＤＭＡＣを同時に起動することが可能になっている。以下にリソースマネージャ１０５の動作について詳細に説明する。
【０１０３】
各ＤＭＡＣは以下の信号によってリソースマネージャ１０５との通信を行なう。なおこの説明においては、「信号名（送信元→送信先）：説明」という形式で記載している。また、信号名中の（ｎ）は表記上の便宜であって、信号名においてはかっこが付されていない０乃至２の数字により（ｎ）が置換される。また、ある信号名中のｎの値と同一のｎの値を信号名中に有する信号を、それぞれについて対応する信号と呼ぶことにする。
ｄｍａｃ（ｎ）＿ｐｋｔｓｅｎｄ＿ｒｅｑ（ＤＭＡＣ→リソースマネージャ１０５）
：ＤＭＡＣがパケット送信を始める前にリソースを要求するためにアサートする。
ｄｍａｃ（ｎ）＿ｐｋｔｓｅｎｄ＿ｇｎｔ（リソースマネージャ１０５→ＤＭＡＣ）
：信号ｄｍａｃ（ｎ）＿ｐｋｔｓｅｎｄ＿ｒｅｑのアサートに対して、リソースが重なっていない場合にパケット送信の許可を示すためにアサートされる。
ｄｍａｃ（ｎ）＿ｒｅｌｅａｓｅ（ＤＭＡＣ→リソースマネージャ１０５）
：ＤＭＡＣがパケット送信を終了後、リソースを解放するためにアサートする。
ｄｍａｃ（ｎ）＿ｒｅｌｅａｓｅ＿ａｃｋ（リソースマネージャ１０５→ＤＭＡＣ）
：ｄｍａｃ（ｎ）＿ｒｅｌｅａｓｅのアサートに従ってリソースを解放したことをＤＭＡＣに通知するためにアサートされる。
ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］（ＤＭＡＣ→リソースマネージャ１０５）
：画像処理部２１４９が複数接続されている場合に、どれを使用するかをこのＩＤで報告する。なお、画像処理部２１４９が１チップの半導体回路（ＬＳＩ）で実現されている場合には、どのチップを使用するかを選択する信号となる。
ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］（ＤＭＡＣ→リソースマネージャ１０５）
：どのタイル伸張部を使用するかをこのＩＤで報告する。
【０１０４】
これらの信号は各ＤＭＡＣ毎に存在しており、（ｎ）がＤＭＡＣの番号を表す。本実施例ではＤＭＡＣ０、ＤＭＡＣ１、ＤＭＡＣ２の計３つのＤＭＡＣが存在しており、（ｎ）にはそれぞれ０、１、２、が入る。
【０１０５】
リソースマネージャ１０５は内部に各ＤＭＡＣが確保したリソースを記憶するために以下のようなリソースレジスタを持つ。これらは各ＤＭＡＣ毎に存在しており、（ｎ）には各ＤＭＡＣの番号の０、１、２が入る。
ｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］
ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］
ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇ。
【０１０６】
リソースマネージャ１０５はＤＭＡＣからリソース確保の要求がきてそれを許可した場合、リソース要求を発行したＤＭＡＣに対応するｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ，ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄそれぞれに、ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ，ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄそれぞれの信号で報告されたチップＩＤ、ユニットＩＤを格納し、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇに１をセットする。
【０１０７】
また、ＤＭＡＣはパケットの送信が終了すると、リソースの解放を行なう。これにより、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇは０にクリアされる。すなわち、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇに１がセットされている場合は、ＤＭＡＣ（ｎ）により、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄおよびｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄで特定されるリソースは使用中であり、０がセットされている場合はＤＭＡＣ（ｎ）はリソースを使用していないことになる。
【０１０８】
したがって、ＤＭＡＣ（ｎ）からリソース確保の要求がきた場合には、リソースマネージャ１０５はリソースレジスタを参照し、現在使用中のリソースと、ＤＭＡＣ（ｎ）からのリソース要求とが一致しているかどうかを判断し、一致していなければ許可をし、一致していれば、使用中のリソースが解放されるまで待たせる。
【０１０９】
図４にＤＭＡＣ０１０２とリソースマネージャ１０５との間の通信の信号波形の例を示す。ＤＭＡＣ０（１０２）はパケットを送信する前にリクエスト信号であるｄｍａｃ０＿ｐｋｔｓｅｎｄ＿ｒｅｑをアサートする（タイミングｔ１）。同時にサブパケットの属性に含まれるチップＩＤ３０４およびユニットＩＤ３０５に基づいて信号ｄｍａｃ０＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ０＿ｕｎｉｔｉｄ［４：０］をそれぞれ確定させる。
【０１１０】
リソースマネージャ１０５はＤＭＡＣ０（１０２）からのリクエストを受け、そのときに他のＤＭＡＣが同じチップＩＤとユニットＩＤを使用していないかをチェックし、使用していなければ、グラント信号であるｄｍａｃ０＿ｐｋｔｓｅｎｄ＿ｇｎｔをアサートし、パケットの送信を許可する（タイミングｔ２）。同時にリソースマネージャ内部のリソースレジスタにＤＭＡＣ０が使用するチップＩＤとユニットＩＤを保存する。
【０１１１】
ＤＭＡＣ０はリソースの占有をおえたなら、すなわち１パケット分のサブパケットの送信を終えたならば、ｄｍａｃ０＿ｒｅｌｅａｓｅ信号をアサートする（タイミングｔ３）。
【０１１２】
リソースマネージャ１０５はＤＭＡＣ０（１０２）からのリソース解放通知を受け、応答信号であるｄｍａｃ０＿ｒｅｌｅａｓｅ＿ａｃｋをアサートする（タイミングｔ４）。同時にリソースマネージャ内部のＤＭＡＣ０に対応するレジスタｒｅｇ＿ｄｍａｃ０＿ｕｓｉｎｇの内容を０にする。
【０１１３】
［リソースマネージャ１０５の動作（図５）］
図５にリソースマネージャ１０５の内部構成を示し、その動作例について詳細に説明する。
【０１１４】
今、ＤＭＡＣ０からリクエストがあったとする。リソースマネージメントシーケンサ５０１はｄｍａｃ０＿ｐｋｔｓｅｎｄ＿ｒｅｑ信号を受けると比較装置５０２からのリソースの比較の結果を待つ。
【０１１５】
ｄｍａｃ０＿ｐｋｔｓｅｎｄ＿ｒｅｑ信号は比較装置５０２にも入力されており、この信号がアサートされると、ｄｍａｃ０＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ０＿ｕｎｉｔｉｄ［４：０］をリソースメモリ５０３に保存されている有効なすべてのチップＩＤ、ユニットＩＤと比較する。リソースメモリ５０３には先に説明したリソースレジスタが設けられている。保存されているチップＩＤ，ユニットＩＤが有効かどうかはｉ＿ｄｍａｃ（ｎ）＿ｖａｌｉｄ（ｎ＝０〜２）がアサートされていれば有効、アサートされていなければ無効と判断する。
【０１１６】
比較の結果、ＤＭＡＣ０から要求のあったチップＩＤとユニットＩＤがすでにリソースメモリに保存されていれば、ｈｉｔ０信号をアサートし、使用されていなければｈｉｔ０信号はアサートされない。ここで、比較に数サイクル要する場合、リソースマネージメントシーケンサ５０１は必要なサイクル数以降にｈｉｔ０信号を評価する。
【０１１７】
ｈｉｔ０信号がアサートされなければ、ｄｍａｃ０＿ｓｅｔ信号がアサートされ、ｄｍａｃ０＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ０＿ｕｎｉｔｉｄ［４：０］をリソースメモリ５０３に保存される。ここでリソースメモリ５０３のＤＭＡＣ０のチップＩＤ、ユニットＩＤが有効となり、ｉ＿ｄｍａｃ０＿ｖａｌｉｄがアサートされる。保存されているチップＩＤ、ユニットＩＤはｉ＿ｄｍａｃ０＿ｃｈｉｐｉｄ［３：０］、ｉ＿ｄｍａｃ０＿ｕｎｉｔｉｄ［４：０］として比較装置５０２に通知される。
【０１１８】
リソースメモリ５０３への保存が終わると、ｄｍａｃ０＿ｐｋｔｓｅｎｄ＿ｇｎｔがアサートされ、ＤＭＡＣ０のパケット送信が許可される。
【０１１９】
この後、ＤＭＡＣ１からＤＭＡＣ０と同じチップＩＤ、ユニットＩＤに対してリクエストがきたとする。比較装置５０２はｄｍａｃ１＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ１＿ｕｎｉｔｉｄ［４：０］をリソースメモリ５０３に保存されている有効なすべてのチップＩＤ、ユニットＩＤと比較する。
【０１２０】
ここで、ｄｍａｃ１＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ１＿ｕｎｉｔｉｄ［４：０］がｉ＿ｄｍａｃ０＿ｃｈｉｐｉｄ［３：０］、ｉ＿ｄｍａｃ０＿ｕｎｉｔｉｄ［４：０］と一致するので、比較装置５０２はｈｉｔ１信号をアサートする。この場合リソースマネージメントシーケンサ５０１はｄｍａｃ１＿ｐｋｔｓｅｎｄ＿ｇｎｔ信号をアサートすることができず、ＤＭＡＣ１はパケット送信を待たされることになる。
【０１２１】
ＤＭＡＣ０のパケット送信が終了すると、ｄｍａｃ０＿ｒｅｌｅａｓｅ信号がアサートされる。リソースマネージメントシーケンサ５０１はｄｍａｃ０＿ｃｌｒ信号をアサートし、リソースメモリ５０３に保存されているＤＭＡＣ０のチップＩＤとユニットＩＤを無効にし、ｄｍａｃ０＿ｒｅｌｅａｓｅ＿ａｃｋ信号をアサートする。
【０１２２】
リソースメモリ５０３はｄｍａｃ０＿ｃｌｒ信号を受け、ｉ＿ｄｍａｃ０＿ｖａｌｉｄ信号をネゲートする。
【０１２３】
比較装置５０２はｄｍａｃ１＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ１＿ｕｎｉｔｉｄ［４：０］が保存されているチップＩＤ、ユニットＩＤと一致しなくなったのでｈｉｔ１信号をネゲートする。
【０１２４】
これを受け、リソースマネージメントシーケンサ５０１はリソースメモリ５０３にＤＭＡＣ１のチップＩＤ、ユニットＩＤを保存し、ＤＭＡＣ１にパケット送信を許可することになる。
【０１２５】
以上の動作を一般化して説明すると次のように説明できる。
【０１２６】
図５のリソースマネージャにおいて、比較装置５０２はＤＭＡＣごとに対応して設けられている。すなわちＤＭＡＣ（ｎ）（ｎ＝０，１，２）それぞれについて比較装置（ｎ）が用意されている。
【０１２７】
比較装置（ｎ）は、ｄｍａｃ（ｎ）＿ｐｋｓｅｎｄ＿ｒｅｑ信号が活性化信号として入力されており、この信号がアサートされると後述する信号値の比較を行う。
【０１２８】
比較装置（ｎ）にはまた、ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］信号が入力される。そして、入力されたｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］の組を、ｍ＝０〜２について、ｉ＿ｄｍａｃ（ｍ）＿ｃｈｉｐｉｄ［３：０］およびｉ＿ｄｍａｃ（ｍ）＿ｕｎｉｔｉｄ［４：０］の組のそれぞれと比較する。ただし、ｉ＿ｄｍａｃ（ｍ）＿ｃｈｉｐｉｄ［３：０］およびｉ＿ｄｍａｃ（ｍ）＿ｕｎｉｔｉｄ［４：０］信号は、ｉ＿ｄｍａｃ（ｍ）＿ｖａｌｉｄ信号がアサートされている場合に限って有効である。
【０１２９】
比較の結果、ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］の組と一致するｉ＿ｄｍａｃ（ｍ）＿ｃｈｉｐｉｄ［３：０］およびｉ＿ｄｍａｃ（ｍ）＿ｕｎｉｔｉｄ［４：０］の組がｍ＝０〜２について存在すれば、ｈｉｔ（ｎ）信号がアサートされる。すなわち、ｈｉｔ（ｎ）信号は、ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］の組の値が、いずれかのＤＭＡＣのリソースレジスタに既に登録されている状態を示す。
【０１３０】
リソースメモリ５０３には、上述したリソースレジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇ、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］が、ｎ＝０〜２について設けられている。そして、ｄｍａｃ（ｎ）＿ｓｅｔがアサートされると、対応する信号ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］、ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］の値がそれぞれレジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］に書き込まれ、同様に対応するレジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇに１がセットされる。
【０１３１】
また、ｄｍａｃ（ｎ）＿ｃｌｒ信号がアサートされると、対応するレジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇに０がセットされる。
【０１３２】
各レジスタｒｅｇ＿ｄｍａｃ（ｍ）＿ｕｓｉｎｇ、ｒｅｇ＿ｄｍａｃ（ｍ）＿ｃｈｉｐｉｄ［３：０］、ｒｅｇ＿ｄｍａｃ（ｍ）＿ｕｎｉｔｉｄ［４：０］の値はすべて、信号ｉ＿ｄｍａｃ（ｍ）＿ｕｓｉｎｇ、ｉ＿ｄｍａｃ（ｍ）＿ｃｈｉｐｉｄ［３：０］、ｉ＿ｄｍａｃ（ｍ）＿ｕｎｉｔｉｄ［４：０］として比較装置（ｎ）それぞれに入力されている。
【０１３３】
リソースマネージメントシーケンサ５０１は、ｄｍａｃ（ｎ）＿ｐｋｔｓｅｎｄ＿ｒｅｑ信号がアサートされると、比較装置（ｎ）が前述したｈｉｔ（ｎ）信号を出力するのに要する時間待機してから、アサートされたｄｍａｃ（ｎ）＿ｐｋｔｓｅｎｄ＿ｒｅｑ信号に対応するｈｉｔ（ｎ）信号の値をテストする。ｈｉｔ（ｎ）信号がアサートされていれば、要求されたリソース、すなわちｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］で特定されるタイル圧縮部等の画像処理ユニットは、すでにいずれかのＤＭＡＣに対してその使用が許可されている。したがって、その要求はリソースが解放されるまで待機させられる。
【０１３４】
一方、ｈｉｔ（ｎ）信号がアサートされていない場合には、要求されたリソースは未使用である。そこで、リソースマネジメントシーケンサ５０１はｄｍａ（ｎ）＿ｓｅｔ信号をアサートする。これにより、ｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇが１にセットされ、レジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］に、ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］およびｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］信号の値がセットされる。そして、ｄｍａｃ（ｎ）＿ｐｋｓｅｎｄ＿ｇｎｔ信号をアサートする。
【０１３５】
これにより、リソースを要求したＤＭＡＣ（ｎ）は要求したリソースを獲得でき、サブパケットの転送を開始する。
【０１３６】
さてＤＭＡＣ（ｎ）が１パケット分のデータ転送を終えてＤＭＡＣ（ｎ）＿ｒｅｌｅａｓｅ信号をアサートすると、リソースマネジメントシーケンサ５０１は、ＤＭＡＣ（ｎ）ｃｌｒ信号をアサートする。これにより、ＤＭＡＣ（ｎ）が占有していたリソースを示すレジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｓｉｎｇには０がセットされ、レジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］及びｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］の値は無効となって、比較装置５０２による比較対象から外される。
【０１３７】
この結果、レジスタｒｅｇ＿ｄｍａｃ（ｎ）＿ｃｈｉｐｉｄ［３：０］及びｒｅｇ＿ｄｍａｃ（ｎ）＿ｕｎｉｔｉｄ［４：０］で示されるリソースの空きを待機しているＤＭＡＣ（ｉ）があれば、比較装置（ｉ）における出力信号ｈｉｔ（ｉ）がネゲートされるために、ＤＭＡＣ（ｉ）に対して、そのリソースが割り当てられる。
【０１３８】
以上のようにして、リソースの管理が行われている。なお、同時に複数のＤＭＡＣが同一のリソースを要求している場合には、適当な優先順位を付けてリソースを割り当てる。最も簡単には、ＤＭＡＣ０，１，２のそれぞれに固定的に順位を割り当てる方法がある。また、先着順とする方法も採り得る。この場合には、リソースマネジメントシーケンサ５０１は、待機させられているリソース要求の発生順序を記憶しておく。そして、ｈｉｔ（ｎ）信号の状態変化があれば、要求を発した順に、要求元のＤＭＡＣ（ｎ）に対応するｈｉｔ（ｎ）信号を順番にテストする。最初にネゲートされていることが判定されたｈｉｔ（ｎ）信号に対応するＤＭＡＣ（ｎ）から順にリソースを割り当てる。
【０１３９】
このように、リソース要求が競合する場合には、適当な順序でスケジュールすることもできる。
【０１４０】
以上説明したように、本実施形態によれば、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のＤＭＡＣを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させることが可能となる。
【０１４１】
また以上のようにして、リソース要求元であるマスタごとに、要求するリソースの空きを判定し、空いていればそのリソース要求元によって要求されているリソースを排他的に割り当てる。本実施形態の場合、排他管理の単位はパケットであり、リソースである画像処理ユニット、例えば画像伸長部は、ひとつのパケットを構成するサブパケットのみを受信して処理することができる。もちろんその逆に、リソースからデータをサブパケット単位で送信する場合にも同様である。
【０１４２】
さらに、リソースマネージャによりパケット単位でリソースの競合を調停するために、排他利用されるリソースを、複数のマスタによって、１パケットの処理に要する時間を単位として時分割で共有することができる。
【０１４３】
本実施形態ではリソースマネージャはハードウエアのリソースマネジメントシーケンサを中核として構成されるために、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【０１４４】
以上、本発明を特定の実施例に関して図示しかつ説明したが、さらに他の修正および改善が可能であろう。例えば、ここに述べた通信経路の信号は、他の名称を持つが同じ基本的な機能を果すものとすることができる。様々な信号のビット幅、および他の値は設計に応じて変えることができる。
【０１４５】
また、本実施形態ではチップＩＤとユニットＩＤの両方をリソースとして管理しているが、ターゲットとなるチップがひとつの半導体回路（ＬＳＩ）で実現されている場合はＵｎｉｔＩＤのみをリソースとして管理するだけで十分である。
【０１４６】
一方、データパケットや、コマンドパケットなど、ひとつのターゲットが二種類のパケットを同時に受け取れる場合には、リソースをパケットの種類ごとに分けて管理する必要があり、この場合は、パケットの種類も同時にリソースとして管理することになる。
【０１４７】
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【０１４８】
【発明の効果】
以上説明したように、本発明によれば、パケットを単位としてリソースを排他管理することで、当該リソースにおいては、パケット単位でデータを受信してその処理を行うことができる。このため、複数のパケットが混在する状況を防止でき、そのような状況に対応するための処理を行わずに済むことで、処理を効率化できる。
【０１４９】
さらに、排他利用されるリソースを、複数のマスタによって、１パケットの処理に要する時間を単位として時分割で共有することができる。
【０１５０】
さらに、リソースの排他管理をハードウエアにより行うことで、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【０１５１】
さらに、パケットを単位としてリソースを排他管理することで、当該リソースに関して、パケットを分割したサブパケット単位でデータの転送を行っても、他のパケットを構成するサブパケットと混在する状態での転送を防止できる。これにより、サブパケットの再組立て等の管理を簡易化できる。また、サブパケットに分割されている場合でもリソースはパケット単位でデータを扱えばよいために、その構成を簡易化できる。
【図面の簡単な説明】
【図１】画像リングインターフェース１内部のブロック図。
【図２】パケットをさらに分割したサブパケットを表す図。
【図３】アトリビュートの構成を示した図。
【図４】ＤＭＡＣとリソースマネージャとの間の通信の信号波形の例を示す図。
【図５】リソースマネージャの内部構成を表す図。
【図６】本システムの実使用環境を表す図。
【図７】本システムコントローラの全体ブロック図。
【図８】本システムコントローラの全体ブロック図。
【図９】イメージパケットを表す図。
【図１０】コマンドパケットを表す図。
【図１１】インタラプトパケットを表す図。
【図１２】パケットテーブルを表す図。
【図１】
2004040637.tif 000003
【図２】
2004040637.tif 000004
【図３】
2004040637.tif 000005
【図４】
2004040637.tif 000006
【図５】
2004040637.tif 000007
【図６】
2004040637.tif 000008
【図７】
2004040637.tif 000009
【図８】
2004040637.tif 000010
【図９】
2004040637.tif 000011
【図１０】
2004040637.tif 000012
【図１１】
2004040637.tif 000013
【図１２】
2004040637.tif 000014