JP2004040637A - パケット通信装置及びパケット通信制御方法 - Google Patents
パケット通信装置及びパケット通信制御方法 Download PDFInfo
- Publication number
- JP2004040637A JP2004040637A JP2002197459A JP2002197459A JP2004040637A JP 2004040637 A JP2004040637 A JP 2004040637A JP 2002197459 A JP2002197459 A JP 2002197459A JP 2002197459 A JP2002197459 A JP 2002197459A JP 2004040637 A JP2004040637 A JP 2004040637A
- Authority
- JP
- Japan
- Prior art keywords
- resource
- packet
- unit
- dmac
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Television Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】サブパケット単位でデータ送信するDMAコントローラに対して、パケット単位でリソースの占有を許す。
【解決手段】DMAC0〜DMAC2は、パケットをサブパケットに分割して画像リング2008に送信する。それに先だって、まずリソースマネージャ105に対して送信先のリソースを要求する。そしてパケットの送信後にリソースの解放を要求する。リソースマネージャは、割り当て済みのリソースを管理しており、リソースが要求されると、そのリソースが割り当て済みでなければ、要求元のDMACにリソースを割り当て、そのリソースを割り当て済みとして管理する。割り当て済みなら、リソース要求を待機させる。そしてリソース解放要求に従って、リソースを解放する。
【選択図】図1
【解決手段】DMAC0〜DMAC2は、パケットをサブパケットに分割して画像リング2008に送信する。それに先だって、まずリソースマネージャ105に対して送信先のリソースを要求する。そしてパケットの送信後にリソースの解放を要求する。リソースマネージャは、割り当て済みのリソースを管理しており、リソースが要求されると、そのリソースが割り当て済みでなければ、要求元のDMACにリソースを割り当て、そのリソースを割り当て済みとして管理する。割り当て済みなら、リソース要求を待機させる。そしてリソース解放要求に従って、リソースを解放する。
【選択図】図1
Description
【0001】
【発明の属する技術分野】
本発明は、例えば画像データと前記画像データに関する情報を含むヘッダとで構成されるデータパケットによる通信を行うパケット通信装置及びパケット通信制御方法に関する。
に関する。
【0002】
【従来の技術】
近年、デジタル複合機等において、画像処理の効率化やメモリの削減等のために、画像データをパケット化して処理する技術、さらには、パケットの転送によって長時間バスやリングなどの通信チャネルが占有されることを防ぐため、パケットをさらに細かくサブパケットという単位に分割し、サブパケット単位でバスやリングなどの通信チャネルにより送信する技術が提案されている。
【0003】
しかし、複数のマスタ(送信側デバイス)が、同一のスレーブ(受信側デバイス)に対して、パケット化したデータをサブパケットに分割して送信しようとする場合、スレーブが同時にひとつのパケットしか取り扱えないと、スレーブがあるパケットのサブパケットを受信中に、他のパケットのサブパケットを並行して受信すると、スレーブは誤動作を起こしてしまう。
【0004】
これを避けるためには、スレーブをリソースとし、複数のマスタがターゲットとするスレーブが重ならないように、ソフトウェアによりパケット単位でリソースの排他利用を行わせるためのリソース管理を行なう必要があった。
【0005】
【発明が解決しようとする課題】
しかしながら、ソフトウェアによるリソース管理をパケット毎に行なうのはオーバーヘッドが大きく、性能が大きく落ち込んでしまう。性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかしこのような方法では、DMAコントローラ(DMAC)の起動はタイル伸張部の数の範囲内に限られる。
【0006】
本発明は上記従来例に鑑みてなされたもので、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のDMACを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させるパケット通信装置及びパケット通信制御方法を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明は次の構成を有する。
【0008】
データをパケット単位で送受信するパケット通信装置であって、
パケットを分割して送信する複数の送信部を有する送信手段と、
前記送信手段により送信されるパケットのあて先であるリソースを、パケットを単位として排他管理する管理手段とを備える。
【0009】
更に好ましくは、前記送信部は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を前記管理手段に通知し、前記管理手段から与えられた送信許可に基づいてパケットを分割してあて先へと送信し、送信終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、使用されているリソース情報を記憶する記憶手段を有し、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、前記送信部から前記リソースの解放が通知された場合には、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【0010】
更に好ましくは、前記リソースは、ひとつの半導体回路上に存在する複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子が前記リソースとして管理される。
【0011】
更に好ましくは、前記リソースは、複数の半導体回路上に存在する、複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子および前記半導体回路を識別するための識別子が前記リソースとして管理される。
【0012】
更に好ましくは、前記リソースは、受信した分割されたパケットを再組み立てして処理する。
【0013】
あるいは、データをパケット単位で送受信するパケット通信制御方法であって、
パケットを分割して送信する複数の送信部の各々は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を、使用されているリソース情報を記憶する記憶手段を有する管理手段に通知し、
前記管理手段は、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、
前記送信部は、前記送信許可に応じてパケットを分割して送信し、その終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、前記送信部からの前記リソースの解放の通知に応じて、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【0014】
あるいは、上記いずれかのパケット通信装置により、画像処理ユニットを前記リソースとして、制御部と前記画像処理ユニットとのインターフェース回路を前記送信手段として接続し、パケット化された画像データが前記インターフェース回路から前記画像処理ユニットへと送信されることを特徴とする画像処理装置にある。
【0015】
あるいは、パケット化されたデータをサブパケットに分割して送信する複数のDMAコントローラと該DMAコントローラによるデータ送信を調停する調停回路とを備えるインターフェース回路であって、
前記調停回路は、前記複数のDMAコントローラそれぞれが要求するリソースを登録するメモリと、
該メモリに登録されたリソースと、前記複数のDMAコントローラそれぞれが要求するリソースとを比較する比較回路と、
前記DMAコントローラからリソース要求が発行されると、前記比較回路による比較の結果、一致するリソースが前記メモリに登録されていないと判定された場合には、リソース要求を発行したDMAコントローラに対してリソースの占有許可を発行し、前記DMAコントローラからリソース解放要求が発行されると、前記メモリからソース解放要求対象のリソースを削除する管理シーケンサとを備え、
前記複数のDMAコントローラそれぞれは、前記パケットの送信前の前記調停回路に対してリソースを要求し、送信号にリソース解放を要求する。
【0016】
【発明の実施の形態】
本発明は、画像データを一定サイズのタイルに分割し、タイル単位で様々な処理を施す画像処理装置に係るものである。この画像処理装置は、拡大や縮小等の様々な画像処理ユニットを備えており、それら画像処理ユニットにおいてはタイルを単位として処理が行われる。これら画像処理ユニットは画像リングインターフェースと呼ばれる高速インターフェースで画像メモリやプロセッサと接続されている。タイルはそれが転送される際には、ヘッダやフッタが付されたパケットとされ、そのパケットは更に分割されたサブパケットとして画像リングインターフェース上を転送される。画像データのタイル化およびパケット化は、例えば後述する図7,図8のRAM2002に格納された画像データに対してCPU(0),CPU(1)により行われる。パケットからの画像データの再構成も同様である。またパケットの転送に際してサブパケット化は、例えば画像リングインターフェース(1),(2)により行われる。この場合サブパケットからのパケットの再構成は、画像リングインターフェースのみならず、サブパケット単位でデータを受信してタイル単位で処理を行う各画像処理ユニットにより行われる。
【0017】
以下、本発明に係る装置及びその動作について詳細に説明する。
【0018】
[ハードウェア全体構成(図6)]
本実施形態における画像処理装置を含むネットワークシステム全体の構成図を図6に示す。
【0019】
画像処理装置1001は、後述する図7,図8のコントローラ2000にスキャナ2070とプリンタ2095とを接続してなる複合画像処理装置である。この装置は、スキャナから読み込んだ画像をローカルエリアネットワーク(LAN)1010に流したり、LANから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないファクシミリ(FAX)送信手段により、公衆電話交換網(PSTN)または総合サービスデジタル通信網(ISDN)1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。データベースサーバ1002は、複合画像処理装置1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0020】
データベースクライアント1003は、データベースサーバ1002のクライアント端末で、データベース1002に保存されている画像データを閲覧/検索等できる。
【0021】
電子メールサーバ1004は、電子メールメッセージの送受信機能や、メールボックス機能、メッセージ管理機能を有するサーバである。複合画像処理装置1001は読み取らった画像を電子メールの添付画像としてネットワークに送信できるが、電子メールサーバ1004は、その電子メールを受信することができる。電子メールクライアント1005は、電子メールサーバ1004の受け取ったメールを受信する。利用者はそこで電子メールを閲覧したり送信したりすることができる。
【0022】
ワールドワイドウエブ(WWW)サーバ1006は、ハイパーテキストマークアップ言語(HTML)文書を構内ネットワーク(LAN)に提供するWWWサーバである。複合画像処理装置1001は、WWWサーバ1006で提供されるHTML文書をプリントアウトできる。ドメインネームシステム(DNS)サーバ1007は、ホスト名とインターネットプロトコル(IP)アドレスの対応関係を記述したデータベースを管理しており、クライアントからの要求に応じて、ホスト名からそのIPアドレスを参照できるようにする。
【0023】
ルータ1011は、LAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、複合画像処理装置1001と同様の装置が、それぞれ1020、1021、1022、1023として連結している。一方、複合画像処理装置1001は、PSTNまたはISDN1030を介して、ファクシミリFAX装置1031と送受信可能になっている。
【0024】
また、LAN上にプリンタ1040も連結されており、複合画像処理装置1001により読み取った画像をプリントアウト可能なように構成されている。
【0025】
[コントローラの構成(図7,8)]
画像処理装置1001を制御するコントローラ2000の構成を図7及び図8に示す。
【0026】
コントローラユニット2000には画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095が接続される一方、LAN2011や公衆回線WAN2051にも接続される。コントローラユニット2000は、画像入力デバイスや画像出力デバイス、通信回線を用いた画像情報やデバイス情報の入出力、ページ記述言語(PDL)データのイメージ展開などを制御する。
【0027】
CPU2001はシステム全体を制御するプロセッサである。コントローラユニット2000では2つのCPUを用いている。これら2つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
【0028】
システムバスブリッジ2007はバススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、入出力(IO)バス12127、サブバススイッチ2128、IOバス(2)2129、画像リングインターフェース(1)2147、画像リングインターフェース(2)2148が接続される。
【0029】
サブバススイッチ2128は、第2のバススイッチであり、画像DMA(ダイレクトメモリアクセス)(1)2130、画像DMA(2)2132、フォント伸張部3134、ソート回路2135、ビットマップトレース部2136が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【0030】
RAM2002はCPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAM2002はRAMコントローラ2124により制御される。本実施形態では、ダイレクトRDRAMを採用する例を示す。
【0031】
ROM2003はブートROMであり、システムのブートプログラムが格納されている。ROMコントローラ2125により制御される。
【0032】
画像DMA(1)2130は、画像圧縮部2131に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像圧縮部2131を制御し、RAM2002上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う。本実施形態では、JPEGを圧縮アルゴリズムに採用した例を示す。
【0033】
画像DMA(2)2132は、画像伸張部2133に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像伸張部2133を制御し、RAM2002上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施形態では、JPEGを伸張アルゴリズムに採用した例を示す。
【0034】
フォント伸張部2134は、LANインターフェース2010等を介し外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM2003もしくは、RAM2002内に格納された、圧縮フォントデータの伸張を行う。本実施形態では、FBEアルゴリズムを採用した例を示した。
【0035】
ソート回路2135は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。
【0036】
ビットマップトレース回路2136は、ビットマップデータより、エッジ情報を抽出する回路である。
【0037】
IOバス(1)2127は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインターフェース2138、汎用シリアルポート2139、インタラプトコントローラ2140、GPIOインターフェース2141が接続される。IOバス1には、バスアービタ(図示せず)が含まれる。
【0038】
操作部I/F(インターフェース)2006は、操作部UI(ユーザインターフェース)2012とのインターフェース部で、操作部UI2012に表示する画像データを操作部UI2012に対して出力する。また、操作部UI2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0039】
IOバス(2)2129は内部IOバスの一種であり、汎用バスインターフェース(1)及び(2)2142と、LANコントローラ2010が接続される。IOバス2にはバスアービタ図示せずが含まれる。
【0040】
汎用バスインターフェース2142は、2つの同一のバスインターフェースから成り、標準IOバスをサポートするバスブリッジである。本実施例では、PCIバス2143を採用した例を示した。
【0041】
HDD2004はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。
【0042】
LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。
【0043】
モデム2050は公衆回線2051に接続し、情報の入出力を行う。
【0044】
画像リングインターフェース(1)2147及び画像リングインターフェース(2)2148は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化後に圧縮されたデータをRAM2002とタイル画像処理部2149間で転送するDMAコントローラである。
【0045】
画像リング2008は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング2008は、タイル画像処理部2149内で、画像リングインターフェース(3)2101及びタイル画像インターフェース(4)2102を介し、タイル伸張部2103、コマンド処理部2104、ステータス処理部2105、タイル圧縮部2106に接続される。本実施形態では、タイル伸張部2103を2組、タイル圧縮部を3組実装する例を示した。
【0046】
タイル伸張部2103は、画像リングインターフェースへの接続に加え、タイルバス2107に接続され、画像リングより入力された圧縮後の画像データを伸張し、タイルバス2107へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを伸張アルゴリズムとして採用した例を示す。
【0047】
タイル圧縮部2106は、画像リングインターフェースへの接続に加え、タイルバス2107に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング2008へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【0048】
コマンド処理部2104は、画像リングインターフェースへの接続に加え、レジスタ設定バス2109に接続され、CPU2001より発行されて画像リングを介して入力されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当画像処理ブロックへ書き込む。また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース(4)2102に転送する。ここで、コマンド処理部2104によるレジスタの設定および読み出しの対象となる画像処理ユニットは、図7,図8においては、タイル伸長部(1)〜(2)2103、タイル圧縮部(1)〜(3)2106、外部バスIF部2120、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116、メモリ制御部2122、画像入力インターフェース2112、画像出力インターフェース2113となる。この実施形態における説明では、これらを単に画像処理ユニットと称する場合もある。なお図7,図8においては、タイル伸長部(1)〜(2)2103およびタイル圧縮部(1)〜(3)2106とレジスタ設定バス2109との間の接続は図示されていないが、これらの画像処理ユニットもまたコマンドによるレジスタ設定の対象となる。なお、設定・読み出し対象となるレジスタそのものは図示されていないが、レジスタ設定バスを介して読み書き可能なように各画像処理ユニットに備えられている。
【0049】
ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対して割り込みを発行するための割り込みパケット(Interrupt Packet)を生成し、画像リングインターフェース(4)2102に出力する。
【0050】
タイルバス2107には上記ブロックに加え、レンダリング部インターフェース2110、画像入力インターフェース2112、画像出力インターフェース2113、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116などの機能ブロック(画像処理ユニット)が接続される。画像処理にあたっては、これらの画像処理ユニットのうち、処理内容に応じて選択された画像処理ユニット間において、タイルバス2107を介して画像データがタイル単位でフィードされ、各画像処理ユニットにおいて順次処理が遂行される。すなわちいわゆるパイプライン的な処理を行うことができる。
【0051】
レンダリング部インターフェース2110は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号2111にて接続される。レンダリング部インターフェースは、タイルバス2107に加え、メモリバス2108、レジスタ設定バス2109への接続を有し、入力されたラスタ画像を、レジスタ設定バスを介して設定された所定の方法によりタイル画像へと構造を変換すると同時にクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0052】
画像入力インターフェース2112は、後述するスキャナ用画像処理部2114により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0053】
画像出力インターフェース2113は、タイルバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部2115へ出力する。
【0054】
画像回転部2030は画像データの回転を行う。解像度変換部2116は画像の解像度の変更を行う。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値カラー、グレースケール画像を2値化する。多値化部2119は2値画像を多値データへ変換する。
【0055】
外部バスインターフェース部2120は、画像リングインターフェース1,2,3,4、コマンド処理部、レジスタ設定バスを介し、CPU2001により発行された、書き込み、読み出し要求を外部バス(3)2121に変換出力するバスブリッジである。外部バス(3)2121は、本実施形態では、プリンター用画像処理部2115、スキャナー用画像処理部2114に接続されている。
【0056】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ(1)及び画像メモリ(2)2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリとしてシンクロナスDRAM(SDRAM)を用いた例を示した。
【0057】
スキャナー用画像処理部2114では、画像入力デバイスであるスキャナ2070によりスキャンされた画像データを補正画像処理する。
【0058】
プリンタ用画像処理部2115では、プリンタ出力のための補正画像処理を行い、結果をプリンタ2095へ出力する。
【0059】
レンダリング部2060はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0060】
[タイル画像(パケット)フォーマット]
本発明によるコントローラユニット2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【0061】
本実施形態では、図9に示すデータパケット、図10に示すコマンドパケット、図11に示すインタラプトパケット(割込パケット)の3種の異なる種類のパケットが使用される。
【0062】
[データパケット(図9)]
本実施形態では、画像データは、32ピクセル×32ピクセルのタイル単位の画像データ3002に分割されて取り扱われる。このタイル単位の画像に、必要なヘッダ情報3001及び画像付加情報等3003を付加してデータパケットとする。以下にヘッダ情報3001に含まれる情報について説明を行なう。
【0063】
パケットのタイプはヘッダ情報3001内のパケットタイプ(PcktType)3004で区別される。PcktType3004にはリピートフラグが含まれており、データパケットの画像データが1つ前に送信したデータパケットの画像データと同一の場合、リピートフラグがセットされる。
【0064】
チップID(ChipID)3005はパケットを送信するターゲットとなるチップのIDを示す。
【0065】
データタイプ(DataType)3006はデータのタイプを示す。
【0066】
ページID(PageID)3007はページを示しており、ジョブID(JobID)3008はソフトウェアで管理するためのジョブ識別子を格納する。
【0067】
タイルの番号はY方向のタイル座標3009とX方向のタイル座標3010の組み合わせで、YnXnで表される。
【0068】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合はパックビッツを採用している。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ(CompressFlag)3017で示される。
【0069】
処理命令(ProcessInstruction)3011は左詰で処理順に設定され、各処理ユニットは、データパケットの処理後、そのパケットのProcessInstructionを左に8ビットシフトする。ProcessInstruction3011はユニットID(UnitID)3019とモード(Mode)3020の組が8組格納されている。UnitID3019は各処理ユニットを指定し、Mode3020は各処理ユニットでの動作モードを指定する。これにより、1つのパケットを8つの処理ユニットで連続して、それぞれの処理ユニットについて設定されたモードで処理することができる。
【0070】
パケットバイト長(PacketByteLength)3012はパケットのトータルバイト数を示す。
【0071】
画像データバイト長(ImageDataByteLengh)3015は画像データのバイト数、Zデータバイト長(ZDataByteLength)3016は画像付加情報のバイト数を表し、画像データオフセット(ImageDataOffset)3013、Zデータオフセット(ZDataOffset)3014はそれぞれのデータのパケットの先頭からのオフセットを表している。
【0072】
[パケットテーブル(図12)]
各パケットは図12に示すパケットテーブル6001によって管理される。
【0073】
パケットテーブル6001の構成要素は次の通りである。テーブルに登録されたパケットアドレスポインタ(PacketAddressPointer)6002およびパケット長(PacketLength)6005それぞれの値について0を5ビット付加すると、それぞれパケットの先頭アドレスおよびパケットのバイト長となる。
【0074】
PacketAddressPointer(27ビット)+00000(5ビット)=パケット先頭アドレス(32ビット)
PacketLength(11ビット)+00000(5ビット)=パケットのバイト長(16ビット)
なおパケットテーブル6001とチェーンテーブル6010は分割されないものとする。
【0075】
パケットテーブル6001のエントリはタイルの走査方向に並んでおり、Yn/Xn=000/000,000/001,000/002,....という順で並んでいる。このパケットテーブル6001の各エントリは一意にひとつのタイルを示す。また、Yn/Xmax(XmaxはX方向についての最大値)の次のエントリはYn+1/X0となる。
【0076】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに1つ前のエントリと同じPacketAddressPointer,PacketLengthを格納する。すなわち1つのパケットデータを2つのエントリが指すようなかたちになる。この場合、2つめのテーブルエントリのRepeatFlag6003がセットされる。
【0077】
パケットがチェインDMAにより複数に分断された場合は、分割フラグ(DivideFlag)6004をセットし、そのパケットの先頭部分が入っているチェインブロックのチェインテーブル番号(ChainTableNo)6006をセットする。
【0078】
チェインテーブル6010のエントリはチェインブロックアドレス(ChainBlockAddress)6011とチェインブロック長(ChainBlockLength)6012を有しており、テーブルの最後のエントリにはアドレス長さ共に0を格納しておく。
【0079】
[コマンドパケットフォーマット(図10)]
コマンドパケットフォーマットはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU2001より画像メモリ2123へのアクセスも可能である。
【0080】
チップID(ChipID)4004にはコマンドパケットの送信先となる画像処理部2149を表すIDが格納される。
【0081】
ページID(PageID)4007、ジョブID(JobID)4008はソフトウェアで管理するためのページIDとジョブIDを格納する。
【0082】
パケットID(PacketID)4009は1次元で表される。データパケットのX座標のみを使用する。
【0083】
パケットバイト長(PacketByteLength)4010は128バイト固定である。
【0084】
パケットデータ部4002には、アドレス4011とデータ4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはコマンドタイプ(CmdType)4005で示され、コマンドの数はコマンド数(CmdNum)4006で示される。
【0085】
[割り込みパケットフォーマット(図11)]
割り込みパケット(Interrupt Packet)フォーマットは画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105は割り込みパケットを送信すると、次に送信の許可がされるまでは割り込みパケットを送信してはならない。
【0086】
パケットバイト長(PacketByteLength)5006は128バイト固定である。
【0087】
パケットデータ部5002には、画像処理部2149の各内部モジュールのステータス情報5007が格納されている。ステータス処理部2105は画像処理部2149内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0088】
チップID(ChipID)5004には割り込みパケットの送信先となるシステム制御部2150を表すIDが、また、割り込みチップID(IntChipID)5005には割り込みパケットの送信元となる画像処理部2149を表すIDが格納される。
【0089】
[パケットの転送]
次に画像リング2008でのパケット転送について説明する。
【0090】
図2はパケットをさらに分割したサブパケットを説明するための図である。本発明に係るコントローラユニット2000ではパケットを分割し、それぞれの分割されたものに、さらに属性を付加してサブパケットを作成し、サブパケット単位で画像リング2008にデータを伝達させる。サブパケットの属性には、そのサブパケットがどのパケットのサブパケットであるかや、どの画像処理部に送るべきかの情報が含まれる。
【0091】
ここで注意すべきは、パケットからサブパケットへの分割は、1枚の画像からタイルへの分割とは本質的に異なるということである。言い換えると、パケットからサブパケットへのさらなる細分化は、タイルのサイズを小さくした、さらなる細分化では実現できないということである。具体的に言うと、タイルのサイズは32ピクセル×32ピクセルや64ピクセル×64ピクセルが一般的である。本実施形態では32×32ピクセルとしている。その理由は、これより小さいサイズでは問題があるからである。たとえば、データの圧縮では、ある範囲内のピクセルを参照することにより符号化しているが、タイルのサイズが小さいと効率的な圧縮ができないか、あるいは圧縮自体ができない。画像処理においても同様なことが言える。つまり、パケットは処理の最小単位であり、画像データのサイズをそれ以下にすると処理が行えないか、あるいは処理を行えても良好な結果が得られないものである。パケットからサブパケットへの分割は、パケットをビット列として単純に分割したものである。そして、サブパケットは画像リング2008を伝達する最小単位である。
【0092】
図2において、画像データ201は一定サイズのタイル202に分割される。このタイルが、図7及び図8の画像処理ユニットにおける処理の単位となる。例えば、タイル伸長部やタイル圧縮部などでは、タイル単位で処理が行われる。タイル202にはそれをデータ部205とし、ヘッダ204が付されてパケット203となる。ヘッダ204には、例えば画像データにおけるパケットの位置などの情報が含まれる。
【0093】
パケット203は、サブパケット206,208,209に分割される。各サブパケットには属性207が付加される。またパケット203のフッタ210については、それのみでサブパケット211が構成される。フッタ210はヘッドと同じ構成であり、送信は必須ではない。
【0094】
[サブパケットの属性]
図3にサブパケットの属性207の構成を示す。属性207には、ページID(PageID)301、ジョブID(JobID)302、パケットタイプ(PacketType)303、チップID(チップID)304、ユニットID(UnitID)305、パケット開始(StartofPacket)フラグ306、データ終了(EndofData)フラグ307、パケット終了(EndofPacket)フラグ308といったフィールドが存在する。
【0095】
属性207はすべてのサブパケットについており、ページID301、ジョブID302、パケットタイプ303、チップID304、ユニットID305の内容はそのサブパケットが属するパケットのヘッダ204からコピーされる。ユニットID305についてはヘッダ内の処理命令3011の一番最初のユニットIDがコピーされる。
【0096】
パケットの先頭のヘッダ204が含まれたサブパケット206の属性には、パケット開始フラグ306がセットされる。これにより、そのサブパケットがパケットの先頭であることが示される。また、パケット転送の後にフッタ210の転送を行なわない場合、パケットの最後のサブパケット209では、データ終了フラグ307およびパケット終了フラグ308の両方のフラグがセットされる。パケット転送の後にフッタ210の転送を行なう場合は、パケットの最後のサブパケット209で、データ終了フラグ307がセットされ、その後のフッタ210の転送を行なうサブパケット211でパケット終了フラグ308がセットされる。
【0097】
フッタは送られる場合と送られない場合がある。フッタの構成要素はヘッダと同じである。パケットを転送する際、ヘッダを一番最初に転送し、その後パケットデータを転送する。ヘッダにはパケットデータの属性や長さなどが格納される。
【0098】
イメージデータを圧縮してパケットを作成して転送を行なう場合などは、イメージデータを圧縮し終わるまでヘッダの内容が確定しない。そのため、圧縮機能を持ったパケット送信装置などは、圧縮した1パケット分のイメージデータを一時的に格納するバッファを持つ必要がある。本実施形態では、ヘッダをパケットの最後にフッタとして転送することができるプロトコルを採用しているため、ヘッダの内容が確定しないまま、ヘッダを転送することが可能で、圧縮したイメージデータもその都度転送することを可能としている。このため、1パケット分のイメージデータを格納するバッファを削減することも可能である。
【0099】
[画像リングインターフェース]
図1に画像リングインターフェース1(2147)内部のブロック図を示す。画像リングインターフェース1(2147)はRAM2002に格納されているパケットを読み出し、画像リング2008に送信するためにDMAC0(102)、DMAC1(103)、DMAC2(103)の3つのDMACを持つ。各DMACからRAM2002へのアクセス、及び画像リング2008へのアクセスはサブパケット単位で行なわれ、それぞれシステムバスアービタ101と画像リングアービタ106により調停される。サブパケット単位での転送にすることで、ひとつのパケットが画像リング2008を長い時間占有してしまうことが防げる。しかし、それぞれのDMACによるRAM2002へのアクセスと画像リング2008へのアクセスにおいては、転送径路の異なるパケットデータがサブパケット毎に混在して転送される。
【0100】
ここで注意が必要なのは、画像処理部2149のタイル伸張部1とタイル伸張部2(2103)はパケットに格納されている圧縮画像データを伸張する機能を持っているが、同時にひとつのパケットしか取り扱えないため、あるパケットを受信中に他のパケットのサブパケットが混じると、誤動作を起こしてしまうことである。
【0101】
これを避けるためには、2つのタイル伸張部をリソースとし、DMAC0(102)、DMAC1(103)、DMAC2(103)の3つのDMACで使用するタイル伸張部が重ならないように、ソフトウェアにおいてリソース管理を行なう必要がある。リソースの管理とは、例えばリソースを、それを要求するプロセスやハードウエア等に割り当ててその排他利用を実現することである。ソフトウェアによるリソース管理をパケット毎に行なうのは、オーバーヘッドが大きく、性能が大きく落ち込んでしまう。そこで性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかし、このような方法では、DMACの起動はタイル伸張部の数の範囲内に限られる。
【0102】
本発明に係るコントローラユニット2000では、リソースマネージャ105がパケット毎に各DMACを調停してリソース管理することで、タイル伸張部の数以上のDMACを同時に起動することが可能になっている。以下にリソースマネージャ105の動作について詳細に説明する。
【0103】
各DMACは以下の信号によってリソースマネージャ105との通信を行なう。なおこの説明においては、「信号名(送信元→送信先):説明」という形式で記載している。また、信号名中の(n)は表記上の便宜であって、信号名においてはかっこが付されていない0乃至2の数字により(n)が置換される。また、ある信号名中のnの値と同一のnの値を信号名中に有する信号を、それぞれについて対応する信号と呼ぶことにする。
dmac(n)_pktsend_req(DMAC→リソースマネージャ105)
:DMACがパケット送信を始める前にリソースを要求するためにアサートする。
dmac(n)_pktsend_gnt(リソースマネージャ105→DMAC)
:信号dmac(n)_pktsend_reqのアサートに対して、リソースが重なっていない場合にパケット送信の許可を示すためにアサートされる。
dmac(n)_release(DMAC→リソースマネージャ105)
:DMACがパケット送信を終了後、リソースを解放するためにアサートする。
dmac(n)_release_ack(リソースマネージャ105→DMAC)
:dmac(n)_releaseのアサートに従ってリソースを解放したことをDMACに通知するためにアサートされる。
dmac(n)_chipid[3:0](DMAC→リソースマネージャ105)
:画像処理部2149が複数接続されている場合に、どれを使用するかをこのIDで報告する。なお、画像処理部2149が1チップの半導体回路(LSI)で実現されている場合には、どのチップを使用するかを選択する信号となる。
dmac(n)_unitid[4:0](DMAC→リソースマネージャ105)
:どのタイル伸張部を使用するかをこのIDで報告する。
【0104】
これらの信号は各DMAC毎に存在しており、(n)がDMACの番号を表す。本実施例ではDMAC0、DMAC1、DMAC2の計3つのDMACが存在しており、(n)にはそれぞれ0、1、2、が入る。
【0105】
リソースマネージャ105は内部に各DMACが確保したリソースを記憶するために以下のようなリソースレジスタを持つ。これらは各DMAC毎に存在しており、(n)には各DMACの番号の0、1、2が入る。
reg_dmac(n)_chipid[3:0]
reg_dmac(n)_unitid[4:0]
reg_dmac(n)_using。
【0106】
リソースマネージャ105はDMACからリソース確保の要求がきてそれを許可した場合、リソース要求を発行したDMACに対応するreg_dmac(n)_chipid,reg_dmac(n)_unitidそれぞれに、dmac(n)_chipid,dmac(n)_unitidそれぞれの信号で報告されたチップID、ユニットIDを格納し、reg_dmac(n)_usingに1をセットする。
【0107】
また、DMACはパケットの送信が終了すると、リソースの解放を行なう。これにより、reg_dmac(n)_usingは0にクリアされる。すなわち、reg_dmac(n)_usingに1がセットされている場合は、DMAC(n)により、reg_dmac(n)_chipidおよびreg_dmac(n)_unitidで特定されるリソースは使用中であり、0がセットされている場合はDMAC(n)はリソースを使用していないことになる。
【0108】
したがって、DMAC(n)からリソース確保の要求がきた場合には、リソースマネージャ105はリソースレジスタを参照し、現在使用中のリソースと、DMAC(n)からのリソース要求とが一致しているかどうかを判断し、一致していなければ許可をし、一致していれば、使用中のリソースが解放されるまで待たせる。
【0109】
図4にDMAC0102とリソースマネージャ105との間の通信の信号波形の例を示す。DMAC0(102)はパケットを送信する前にリクエスト信号であるdmac0_pktsend_reqをアサートする(タイミングt1)。同時にサブパケットの属性に含まれるチップID304およびユニットID305に基づいて信号dmac0_chipid[3:0]、dmac0_unitid[4:0]をそれぞれ確定させる。
【0110】
リソースマネージャ105はDMAC0(102)からのリクエストを受け、そのときに他のDMACが同じチップIDとユニットIDを使用していないかをチェックし、使用していなければ、グラント信号であるdmac0_pktsend_gntをアサートし、パケットの送信を許可する(タイミングt2)。同時にリソースマネージャ内部のリソースレジスタにDMAC0が使用するチップIDとユニットIDを保存する。
【0111】
DMAC0はリソースの占有をおえたなら、すなわち1パケット分のサブパケットの送信を終えたならば、dmac0_release信号をアサートする(タイミングt3)。
【0112】
リソースマネージャ105はDMAC0(102)からのリソース解放通知を受け、応答信号であるdmac0_release_ackをアサートする(タイミングt4)。同時にリソースマネージャ内部のDMAC0に対応するレジスタreg_dmac0_usingの内容を0にする。
【0113】
[リソースマネージャ105の動作(図5)]
図5にリソースマネージャ105の内部構成を示し、その動作例について詳細に説明する。
【0114】
今、DMAC0からリクエストがあったとする。リソースマネージメントシーケンサ501はdmac0_pktsend_req信号を受けると比較装置502からのリソースの比較の結果を待つ。
【0115】
dmac0_pktsend_req信号は比較装置502にも入力されており、この信号がアサートされると、dmac0_chipid[3:0]、dmac0_unitid[4:0]をリソースメモリ503に保存されている有効なすべてのチップID、ユニットIDと比較する。リソースメモリ503には先に説明したリソースレジスタが設けられている。保存されているチップID,ユニットIDが有効かどうかはi_dmac(n)_valid(n=0〜2)がアサートされていれば有効、アサートされていなければ無効と判断する。
【0116】
比較の結果、DMAC0から要求のあったチップIDとユニットIDがすでにリソースメモリに保存されていれば、hit0信号をアサートし、使用されていなければhit0信号はアサートされない。ここで、比較に数サイクル要する場合、リソースマネージメントシーケンサ501は必要なサイクル数以降にhit0信号を評価する。
【0117】
hit0信号がアサートされなければ、dmac0_set信号がアサートされ、dmac0_chipid[3:0]、dmac0_unitid[4:0]をリソースメモリ503に保存される。ここでリソースメモリ503のDMAC0のチップID、ユニットIDが有効となり、i_dmac0_validがアサートされる。保存されているチップID、ユニットIDはi_dmac0_chipid[3:0]、i_dmac0_unitid[4:0]として比較装置502に通知される。
【0118】
リソースメモリ503への保存が終わると、dmac0_pktsend_gntがアサートされ、DMAC0のパケット送信が許可される。
【0119】
この後、DMAC1からDMAC0と同じチップID、ユニットIDに対してリクエストがきたとする。比較装置502はdmac1_chipid[3:0]、dmac1_unitid[4:0]をリソースメモリ503に保存されている有効なすべてのチップID、ユニットIDと比較する。
【0120】
ここで、dmac1_chipid[3:0]、dmac1_unitid[4:0]がi_dmac0_chipid[3:0]、i_dmac0_unitid[4:0]と一致するので、比較装置502はhit1信号をアサートする。この場合リソースマネージメントシーケンサ501はdmac1_pktsend_gnt信号をアサートすることができず、DMAC1はパケット送信を待たされることになる。
【0121】
DMAC0のパケット送信が終了すると、dmac0_release信号がアサートされる。リソースマネージメントシーケンサ501はdmac0_clr信号をアサートし、リソースメモリ503に保存されているDMAC0のチップIDとユニットIDを無効にし、dmac0_release_ack信号をアサートする。
【0122】
リソースメモリ503はdmac0_clr信号を受け、i_dmac0_valid信号をネゲートする。
【0123】
比較装置502はdmac1_chipid[3:0]、dmac1_unitid[4:0]が保存されているチップID、ユニットIDと一致しなくなったのでhit1信号をネゲートする。
【0124】
これを受け、リソースマネージメントシーケンサ501はリソースメモリ503にDMAC1のチップID、ユニットIDを保存し、DMAC1にパケット送信を許可することになる。
【0125】
以上の動作を一般化して説明すると次のように説明できる。
【0126】
図5のリソースマネージャにおいて、比較装置502はDMACごとに対応して設けられている。すなわちDMAC(n)(n=0,1,2)それぞれについて比較装置(n)が用意されている。
【0127】
比較装置(n)は、dmac(n)_pksend_req信号が活性化信号として入力されており、この信号がアサートされると後述する信号値の比較を行う。
【0128】
比較装置(n)にはまた、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]信号が入力される。そして、入力されたdmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組を、m=0〜2について、i_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]の組のそれぞれと比較する。ただし、i_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]信号は、i_dmac(m)_valid信号がアサートされている場合に限って有効である。
【0129】
比較の結果、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組と一致するi_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]の組がm=0〜2について存在すれば、hit(n)信号がアサートされる。すなわち、hit(n)信号は、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組の値が、いずれかのDMACのリソースレジスタに既に登録されている状態を示す。
【0130】
リソースメモリ503には、上述したリソースレジスタreg_dmac(n)_using、reg_dmac(n)_chipid[3:0]、reg_dmac(n)_unitid[4:0]が、n=0〜2について設けられている。そして、dmac(n)_setがアサートされると、対応する信号dmac(n)_chipid[3:0]、dmac(n)_unitid[4:0]の値がそれぞれレジスタreg_dmac(n)_chipid[3:0]、reg_dmac(n)_unitid[4:0]に書き込まれ、同様に対応するレジスタreg_dmac(n)_usingに1がセットされる。
【0131】
また、dmac(n)_clr信号がアサートされると、対応するレジスタreg_dmac(n)_usingに0がセットされる。
【0132】
各レジスタreg_dmac(m)_using、reg_dmac(m)_chipid[3:0]、reg_dmac(m)_unitid[4:0]の値はすべて、信号i_dmac(m)_using、i_dmac(m)_chipid[3:0]、i_dmac(m)_unitid[4:0]として比較装置(n)それぞれに入力されている。
【0133】
リソースマネージメントシーケンサ501は、dmac(n)_pktsend_req信号がアサートされると、比較装置(n)が前述したhit(n)信号を出力するのに要する時間待機してから、アサートされたdmac(n)_pktsend_req信号に対応するhit(n)信号の値をテストする。hit(n)信号がアサートされていれば、要求されたリソース、すなわちdmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]で特定されるタイル圧縮部等の画像処理ユニットは、すでにいずれかのDMACに対してその使用が許可されている。したがって、その要求はリソースが解放されるまで待機させられる。
【0134】
一方、hit(n)信号がアサートされていない場合には、要求されたリソースは未使用である。そこで、リソースマネジメントシーケンサ501はdma(n)_set信号をアサートする。これにより、reg_dmac(n)_usingが1にセットされ、レジスタreg_dmac(n)_chipid[3:0]およびreg_dmac(n)_unitid[4:0]に、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]信号の値がセットされる。そして、dmac(n)_pksend_gnt信号をアサートする。
【0135】
これにより、リソースを要求したDMAC(n)は要求したリソースを獲得でき、サブパケットの転送を開始する。
【0136】
さてDMAC(n)が1パケット分のデータ転送を終えてDMAC(n)_release信号をアサートすると、リソースマネジメントシーケンサ501は、DMAC(n)clr信号をアサートする。これにより、DMAC(n)が占有していたリソースを示すレジスタreg_dmac(n)_usingには0がセットされ、レジスタreg_dmac(n)_chipid[3:0]及びreg_dmac(n)_unitid[4:0]の値は無効となって、比較装置502による比較対象から外される。
【0137】
この結果、レジスタreg_dmac(n)_chipid[3:0]及びreg_dmac(n)_unitid[4:0]で示されるリソースの空きを待機しているDMAC(i)があれば、比較装置(i)における出力信号hit(i)がネゲートされるために、DMAC(i)に対して、そのリソースが割り当てられる。
【0138】
以上のようにして、リソースの管理が行われている。なお、同時に複数のDMACが同一のリソースを要求している場合には、適当な優先順位を付けてリソースを割り当てる。最も簡単には、DMAC0,1,2のそれぞれに固定的に順位を割り当てる方法がある。また、先着順とする方法も採り得る。この場合には、リソースマネジメントシーケンサ501は、待機させられているリソース要求の発生順序を記憶しておく。そして、hit(n)信号の状態変化があれば、要求を発した順に、要求元のDMAC(n)に対応するhit(n)信号を順番にテストする。最初にネゲートされていることが判定されたhit(n)信号に対応するDMAC(n)から順にリソースを割り当てる。
【0139】
このように、リソース要求が競合する場合には、適当な順序でスケジュールすることもできる。
【0140】
以上説明したように、本実施形態によれば、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のDMACを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させることが可能となる。
【0141】
また以上のようにして、リソース要求元であるマスタごとに、要求するリソースの空きを判定し、空いていればそのリソース要求元によって要求されているリソースを排他的に割り当てる。本実施形態の場合、排他管理の単位はパケットであり、リソースである画像処理ユニット、例えば画像伸長部は、ひとつのパケットを構成するサブパケットのみを受信して処理することができる。もちろんその逆に、リソースからデータをサブパケット単位で送信する場合にも同様である。
【0142】
さらに、リソースマネージャによりパケット単位でリソースの競合を調停するために、排他利用されるリソースを、複数のマスタによって、1パケットの処理に要する時間を単位として時分割で共有することができる。
【0143】
本実施形態ではリソースマネージャはハードウエアのリソースマネジメントシーケンサを中核として構成されるために、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【0144】
以上、本発明を特定の実施例に関して図示しかつ説明したが、さらに他の修正および改善が可能であろう。例えば、ここに述べた通信経路の信号は、他の名称を持つが同じ基本的な機能を果すものとすることができる。様々な信号のビット幅、および他の値は設計に応じて変えることができる。
【0145】
また、本実施形態ではチップIDとユニットIDの両方をリソースとして管理しているが、ターゲットとなるチップがひとつの半導体回路(LSI)で実現されている場合はUnitIDのみをリソースとして管理するだけで十分である。
【0146】
一方、データパケットや、コマンドパケットなど、ひとつのターゲットが二種類のパケットを同時に受け取れる場合には、リソースをパケットの種類ごとに分けて管理する必要があり、この場合は、パケットの種類も同時にリソースとして管理することになる。
【0147】
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【0148】
【発明の効果】
以上説明したように、本発明によれば、パケットを単位としてリソースを排他管理することで、当該リソースにおいては、パケット単位でデータを受信してその処理を行うことができる。このため、複数のパケットが混在する状況を防止でき、そのような状況に対応するための処理を行わずに済むことで、処理を効率化できる。
【0149】
さらに、排他利用されるリソースを、複数のマスタによって、1パケットの処理に要する時間を単位として時分割で共有することができる。
【0150】
さらに、リソースの排他管理をハードウエアにより行うことで、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【0151】
さらに、パケットを単位としてリソースを排他管理することで、当該リソースに関して、パケットを分割したサブパケット単位でデータの転送を行っても、他のパケットを構成するサブパケットと混在する状態での転送を防止できる。これにより、サブパケットの再組立て等の管理を簡易化できる。また、サブパケットに分割されている場合でもリソースはパケット単位でデータを扱えばよいために、その構成を簡易化できる。
【図面の簡単な説明】
【図1】画像リングインターフェース1内部のブロック図。
【図2】パケットをさらに分割したサブパケットを表す図。
【図3】アトリビュートの構成を示した図。
【図4】DMACとリソースマネージャとの間の通信の信号波形の例を示す図。
【図5】リソースマネージャの内部構成を表す図。
【図6】本システムの実使用環境を表す図。
【図7】本システムコントローラの全体ブロック図。
【図8】本システムコントローラの全体ブロック図。
【図9】イメージパケットを表す図。
【図10】コマンドパケットを表す図。
【図11】インタラプトパケットを表す図。
【図12】パケットテーブルを表す図。
【発明の属する技術分野】
本発明は、例えば画像データと前記画像データに関する情報を含むヘッダとで構成されるデータパケットによる通信を行うパケット通信装置及びパケット通信制御方法に関する。
に関する。
【0002】
【従来の技術】
近年、デジタル複合機等において、画像処理の効率化やメモリの削減等のために、画像データをパケット化して処理する技術、さらには、パケットの転送によって長時間バスやリングなどの通信チャネルが占有されることを防ぐため、パケットをさらに細かくサブパケットという単位に分割し、サブパケット単位でバスやリングなどの通信チャネルにより送信する技術が提案されている。
【0003】
しかし、複数のマスタ(送信側デバイス)が、同一のスレーブ(受信側デバイス)に対して、パケット化したデータをサブパケットに分割して送信しようとする場合、スレーブが同時にひとつのパケットしか取り扱えないと、スレーブがあるパケットのサブパケットを受信中に、他のパケットのサブパケットを並行して受信すると、スレーブは誤動作を起こしてしまう。
【0004】
これを避けるためには、スレーブをリソースとし、複数のマスタがターゲットとするスレーブが重ならないように、ソフトウェアによりパケット単位でリソースの排他利用を行わせるためのリソース管理を行なう必要があった。
【0005】
【発明が解決しようとする課題】
しかしながら、ソフトウェアによるリソース管理をパケット毎に行なうのはオーバーヘッドが大きく、性能が大きく落ち込んでしまう。性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかしこのような方法では、DMAコントローラ(DMAC)の起動はタイル伸張部の数の範囲内に限られる。
【0006】
本発明は上記従来例に鑑みてなされたもので、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のDMACを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させるパケット通信装置及びパケット通信制御方法を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明は次の構成を有する。
【0008】
データをパケット単位で送受信するパケット通信装置であって、
パケットを分割して送信する複数の送信部を有する送信手段と、
前記送信手段により送信されるパケットのあて先であるリソースを、パケットを単位として排他管理する管理手段とを備える。
【0009】
更に好ましくは、前記送信部は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を前記管理手段に通知し、前記管理手段から与えられた送信許可に基づいてパケットを分割してあて先へと送信し、送信終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、使用されているリソース情報を記憶する記憶手段を有し、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、前記送信部から前記リソースの解放が通知された場合には、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【0010】
更に好ましくは、前記リソースは、ひとつの半導体回路上に存在する複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子が前記リソースとして管理される。
【0011】
更に好ましくは、前記リソースは、複数の半導体回路上に存在する、複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子および前記半導体回路を識別するための識別子が前記リソースとして管理される。
【0012】
更に好ましくは、前記リソースは、受信した分割されたパケットを再組み立てして処理する。
【0013】
あるいは、データをパケット単位で送受信するパケット通信制御方法であって、
パケットを分割して送信する複数の送信部の各々は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を、使用されているリソース情報を記憶する記憶手段を有する管理手段に通知し、
前記管理手段は、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、
前記送信部は、前記送信許可に応じてパケットを分割して送信し、その終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、前記送信部からの前記リソースの解放の通知に応じて、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化する。
【0014】
あるいは、上記いずれかのパケット通信装置により、画像処理ユニットを前記リソースとして、制御部と前記画像処理ユニットとのインターフェース回路を前記送信手段として接続し、パケット化された画像データが前記インターフェース回路から前記画像処理ユニットへと送信されることを特徴とする画像処理装置にある。
【0015】
あるいは、パケット化されたデータをサブパケットに分割して送信する複数のDMAコントローラと該DMAコントローラによるデータ送信を調停する調停回路とを備えるインターフェース回路であって、
前記調停回路は、前記複数のDMAコントローラそれぞれが要求するリソースを登録するメモリと、
該メモリに登録されたリソースと、前記複数のDMAコントローラそれぞれが要求するリソースとを比較する比較回路と、
前記DMAコントローラからリソース要求が発行されると、前記比較回路による比較の結果、一致するリソースが前記メモリに登録されていないと判定された場合には、リソース要求を発行したDMAコントローラに対してリソースの占有許可を発行し、前記DMAコントローラからリソース解放要求が発行されると、前記メモリからソース解放要求対象のリソースを削除する管理シーケンサとを備え、
前記複数のDMAコントローラそれぞれは、前記パケットの送信前の前記調停回路に対してリソースを要求し、送信号にリソース解放を要求する。
【0016】
【発明の実施の形態】
本発明は、画像データを一定サイズのタイルに分割し、タイル単位で様々な処理を施す画像処理装置に係るものである。この画像処理装置は、拡大や縮小等の様々な画像処理ユニットを備えており、それら画像処理ユニットにおいてはタイルを単位として処理が行われる。これら画像処理ユニットは画像リングインターフェースと呼ばれる高速インターフェースで画像メモリやプロセッサと接続されている。タイルはそれが転送される際には、ヘッダやフッタが付されたパケットとされ、そのパケットは更に分割されたサブパケットとして画像リングインターフェース上を転送される。画像データのタイル化およびパケット化は、例えば後述する図7,図8のRAM2002に格納された画像データに対してCPU(0),CPU(1)により行われる。パケットからの画像データの再構成も同様である。またパケットの転送に際してサブパケット化は、例えば画像リングインターフェース(1),(2)により行われる。この場合サブパケットからのパケットの再構成は、画像リングインターフェースのみならず、サブパケット単位でデータを受信してタイル単位で処理を行う各画像処理ユニットにより行われる。
【0017】
以下、本発明に係る装置及びその動作について詳細に説明する。
【0018】
[ハードウェア全体構成(図6)]
本実施形態における画像処理装置を含むネットワークシステム全体の構成図を図6に示す。
【0019】
画像処理装置1001は、後述する図7,図8のコントローラ2000にスキャナ2070とプリンタ2095とを接続してなる複合画像処理装置である。この装置は、スキャナから読み込んだ画像をローカルエリアネットワーク(LAN)1010に流したり、LANから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないファクシミリ(FAX)送信手段により、公衆電話交換網(PSTN)または総合サービスデジタル通信網(ISDN)1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。データベースサーバ1002は、複合画像処理装置1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0020】
データベースクライアント1003は、データベースサーバ1002のクライアント端末で、データベース1002に保存されている画像データを閲覧/検索等できる。
【0021】
電子メールサーバ1004は、電子メールメッセージの送受信機能や、メールボックス機能、メッセージ管理機能を有するサーバである。複合画像処理装置1001は読み取らった画像を電子メールの添付画像としてネットワークに送信できるが、電子メールサーバ1004は、その電子メールを受信することができる。電子メールクライアント1005は、電子メールサーバ1004の受け取ったメールを受信する。利用者はそこで電子メールを閲覧したり送信したりすることができる。
【0022】
ワールドワイドウエブ(WWW)サーバ1006は、ハイパーテキストマークアップ言語(HTML)文書を構内ネットワーク(LAN)に提供するWWWサーバである。複合画像処理装置1001は、WWWサーバ1006で提供されるHTML文書をプリントアウトできる。ドメインネームシステム(DNS)サーバ1007は、ホスト名とインターネットプロトコル(IP)アドレスの対応関係を記述したデータベースを管理しており、クライアントからの要求に応じて、ホスト名からそのIPアドレスを参照できるようにする。
【0023】
ルータ1011は、LAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、複合画像処理装置1001と同様の装置が、それぞれ1020、1021、1022、1023として連結している。一方、複合画像処理装置1001は、PSTNまたはISDN1030を介して、ファクシミリFAX装置1031と送受信可能になっている。
【0024】
また、LAN上にプリンタ1040も連結されており、複合画像処理装置1001により読み取った画像をプリントアウト可能なように構成されている。
【0025】
[コントローラの構成(図7,8)]
画像処理装置1001を制御するコントローラ2000の構成を図7及び図8に示す。
【0026】
コントローラユニット2000には画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095が接続される一方、LAN2011や公衆回線WAN2051にも接続される。コントローラユニット2000は、画像入力デバイスや画像出力デバイス、通信回線を用いた画像情報やデバイス情報の入出力、ページ記述言語(PDL)データのイメージ展開などを制御する。
【0027】
CPU2001はシステム全体を制御するプロセッサである。コントローラユニット2000では2つのCPUを用いている。これら2つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
【0028】
システムバスブリッジ2007はバススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、入出力(IO)バス12127、サブバススイッチ2128、IOバス(2)2129、画像リングインターフェース(1)2147、画像リングインターフェース(2)2148が接続される。
【0029】
サブバススイッチ2128は、第2のバススイッチであり、画像DMA(ダイレクトメモリアクセス)(1)2130、画像DMA(2)2132、フォント伸張部3134、ソート回路2135、ビットマップトレース部2136が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【0030】
RAM2002はCPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAM2002はRAMコントローラ2124により制御される。本実施形態では、ダイレクトRDRAMを採用する例を示す。
【0031】
ROM2003はブートROMであり、システムのブートプログラムが格納されている。ROMコントローラ2125により制御される。
【0032】
画像DMA(1)2130は、画像圧縮部2131に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像圧縮部2131を制御し、RAM2002上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う。本実施形態では、JPEGを圧縮アルゴリズムに採用した例を示す。
【0033】
画像DMA(2)2132は、画像伸張部2133に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像伸張部2133を制御し、RAM2002上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施形態では、JPEGを伸張アルゴリズムに採用した例を示す。
【0034】
フォント伸張部2134は、LANインターフェース2010等を介し外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM2003もしくは、RAM2002内に格納された、圧縮フォントデータの伸張を行う。本実施形態では、FBEアルゴリズムを採用した例を示した。
【0035】
ソート回路2135は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。
【0036】
ビットマップトレース回路2136は、ビットマップデータより、エッジ情報を抽出する回路である。
【0037】
IOバス(1)2127は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインターフェース2138、汎用シリアルポート2139、インタラプトコントローラ2140、GPIOインターフェース2141が接続される。IOバス1には、バスアービタ(図示せず)が含まれる。
【0038】
操作部I/F(インターフェース)2006は、操作部UI(ユーザインターフェース)2012とのインターフェース部で、操作部UI2012に表示する画像データを操作部UI2012に対して出力する。また、操作部UI2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0039】
IOバス(2)2129は内部IOバスの一種であり、汎用バスインターフェース(1)及び(2)2142と、LANコントローラ2010が接続される。IOバス2にはバスアービタ図示せずが含まれる。
【0040】
汎用バスインターフェース2142は、2つの同一のバスインターフェースから成り、標準IOバスをサポートするバスブリッジである。本実施例では、PCIバス2143を採用した例を示した。
【0041】
HDD2004はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。
【0042】
LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。
【0043】
モデム2050は公衆回線2051に接続し、情報の入出力を行う。
【0044】
画像リングインターフェース(1)2147及び画像リングインターフェース(2)2148は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化後に圧縮されたデータをRAM2002とタイル画像処理部2149間で転送するDMAコントローラである。
【0045】
画像リング2008は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング2008は、タイル画像処理部2149内で、画像リングインターフェース(3)2101及びタイル画像インターフェース(4)2102を介し、タイル伸張部2103、コマンド処理部2104、ステータス処理部2105、タイル圧縮部2106に接続される。本実施形態では、タイル伸張部2103を2組、タイル圧縮部を3組実装する例を示した。
【0046】
タイル伸張部2103は、画像リングインターフェースへの接続に加え、タイルバス2107に接続され、画像リングより入力された圧縮後の画像データを伸張し、タイルバス2107へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを伸張アルゴリズムとして採用した例を示す。
【0047】
タイル圧縮部2106は、画像リングインターフェースへの接続に加え、タイルバス2107に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング2008へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックビッツを圧縮アルゴリズムとして採用した例を示す。
【0048】
コマンド処理部2104は、画像リングインターフェースへの接続に加え、レジスタ設定バス2109に接続され、CPU2001より発行されて画像リングを介して入力されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当画像処理ブロックへ書き込む。また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース(4)2102に転送する。ここで、コマンド処理部2104によるレジスタの設定および読み出しの対象となる画像処理ユニットは、図7,図8においては、タイル伸長部(1)〜(2)2103、タイル圧縮部(1)〜(3)2106、外部バスIF部2120、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116、メモリ制御部2122、画像入力インターフェース2112、画像出力インターフェース2113となる。この実施形態における説明では、これらを単に画像処理ユニットと称する場合もある。なお図7,図8においては、タイル伸長部(1)〜(2)2103およびタイル圧縮部(1)〜(3)2106とレジスタ設定バス2109との間の接続は図示されていないが、これらの画像処理ユニットもまたコマンドによるレジスタ設定の対象となる。なお、設定・読み出し対象となるレジスタそのものは図示されていないが、レジスタ設定バスを介して読み書き可能なように各画像処理ユニットに備えられている。
【0049】
ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対して割り込みを発行するための割り込みパケット(Interrupt Packet)を生成し、画像リングインターフェース(4)2102に出力する。
【0050】
タイルバス2107には上記ブロックに加え、レンダリング部インターフェース2110、画像入力インターフェース2112、画像出力インターフェース2113、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116などの機能ブロック(画像処理ユニット)が接続される。画像処理にあたっては、これらの画像処理ユニットのうち、処理内容に応じて選択された画像処理ユニット間において、タイルバス2107を介して画像データがタイル単位でフィードされ、各画像処理ユニットにおいて順次処理が遂行される。すなわちいわゆるパイプライン的な処理を行うことができる。
【0051】
レンダリング部インターフェース2110は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号2111にて接続される。レンダリング部インターフェースは、タイルバス2107に加え、メモリバス2108、レジスタ設定バス2109への接続を有し、入力されたラスタ画像を、レジスタ設定バスを介して設定された所定の方法によりタイル画像へと構造を変換すると同時にクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0052】
画像入力インターフェース2112は、後述するスキャナ用画像処理部2114により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0053】
画像出力インターフェース2113は、タイルバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部2115へ出力する。
【0054】
画像回転部2030は画像データの回転を行う。解像度変換部2116は画像の解像度の変更を行う。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値カラー、グレースケール画像を2値化する。多値化部2119は2値画像を多値データへ変換する。
【0055】
外部バスインターフェース部2120は、画像リングインターフェース1,2,3,4、コマンド処理部、レジスタ設定バスを介し、CPU2001により発行された、書き込み、読み出し要求を外部バス(3)2121に変換出力するバスブリッジである。外部バス(3)2121は、本実施形態では、プリンター用画像処理部2115、スキャナー用画像処理部2114に接続されている。
【0056】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ(1)及び画像メモリ(2)2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリとしてシンクロナスDRAM(SDRAM)を用いた例を示した。
【0057】
スキャナー用画像処理部2114では、画像入力デバイスであるスキャナ2070によりスキャンされた画像データを補正画像処理する。
【0058】
プリンタ用画像処理部2115では、プリンタ出力のための補正画像処理を行い、結果をプリンタ2095へ出力する。
【0059】
レンダリング部2060はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0060】
[タイル画像(パケット)フォーマット]
本発明によるコントローラユニット2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報を、パケット化された形式で転送する。
【0061】
本実施形態では、図9に示すデータパケット、図10に示すコマンドパケット、図11に示すインタラプトパケット(割込パケット)の3種の異なる種類のパケットが使用される。
【0062】
[データパケット(図9)]
本実施形態では、画像データは、32ピクセル×32ピクセルのタイル単位の画像データ3002に分割されて取り扱われる。このタイル単位の画像に、必要なヘッダ情報3001及び画像付加情報等3003を付加してデータパケットとする。以下にヘッダ情報3001に含まれる情報について説明を行なう。
【0063】
パケットのタイプはヘッダ情報3001内のパケットタイプ(PcktType)3004で区別される。PcktType3004にはリピートフラグが含まれており、データパケットの画像データが1つ前に送信したデータパケットの画像データと同一の場合、リピートフラグがセットされる。
【0064】
チップID(ChipID)3005はパケットを送信するターゲットとなるチップのIDを示す。
【0065】
データタイプ(DataType)3006はデータのタイプを示す。
【0066】
ページID(PageID)3007はページを示しており、ジョブID(JobID)3008はソフトウェアで管理するためのジョブ識別子を格納する。
【0067】
タイルの番号はY方向のタイル座標3009とX方向のタイル座標3010の組み合わせで、YnXnで表される。
【0068】
データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では、圧縮アルゴリズムとして、多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合はパックビッツを採用している。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ(CompressFlag)3017で示される。
【0069】
処理命令(ProcessInstruction)3011は左詰で処理順に設定され、各処理ユニットは、データパケットの処理後、そのパケットのProcessInstructionを左に8ビットシフトする。ProcessInstruction3011はユニットID(UnitID)3019とモード(Mode)3020の組が8組格納されている。UnitID3019は各処理ユニットを指定し、Mode3020は各処理ユニットでの動作モードを指定する。これにより、1つのパケットを8つの処理ユニットで連続して、それぞれの処理ユニットについて設定されたモードで処理することができる。
【0070】
パケットバイト長(PacketByteLength)3012はパケットのトータルバイト数を示す。
【0071】
画像データバイト長(ImageDataByteLengh)3015は画像データのバイト数、Zデータバイト長(ZDataByteLength)3016は画像付加情報のバイト数を表し、画像データオフセット(ImageDataOffset)3013、Zデータオフセット(ZDataOffset)3014はそれぞれのデータのパケットの先頭からのオフセットを表している。
【0072】
[パケットテーブル(図12)]
各パケットは図12に示すパケットテーブル6001によって管理される。
【0073】
パケットテーブル6001の構成要素は次の通りである。テーブルに登録されたパケットアドレスポインタ(PacketAddressPointer)6002およびパケット長(PacketLength)6005それぞれの値について0を5ビット付加すると、それぞれパケットの先頭アドレスおよびパケットのバイト長となる。
【0074】
PacketAddressPointer(27ビット)+00000(5ビット)=パケット先頭アドレス(32ビット)
PacketLength(11ビット)+00000(5ビット)=パケットのバイト長(16ビット)
なおパケットテーブル6001とチェーンテーブル6010は分割されないものとする。
【0075】
パケットテーブル6001のエントリはタイルの走査方向に並んでおり、Yn/Xn=000/000,000/001,000/002,....という順で並んでいる。このパケットテーブル6001の各エントリは一意にひとつのタイルを示す。また、Yn/Xmax(XmaxはX方向についての最大値)の次のエントリはYn+1/X0となる。
【0076】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに1つ前のエントリと同じPacketAddressPointer,PacketLengthを格納する。すなわち1つのパケットデータを2つのエントリが指すようなかたちになる。この場合、2つめのテーブルエントリのRepeatFlag6003がセットされる。
【0077】
パケットがチェインDMAにより複数に分断された場合は、分割フラグ(DivideFlag)6004をセットし、そのパケットの先頭部分が入っているチェインブロックのチェインテーブル番号(ChainTableNo)6006をセットする。
【0078】
チェインテーブル6010のエントリはチェインブロックアドレス(ChainBlockAddress)6011とチェインブロック長(ChainBlockLength)6012を有しており、テーブルの最後のエントリにはアドレス長さ共に0を格納しておく。
【0079】
[コマンドパケットフォーマット(図10)]
コマンドパケットフォーマットはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU2001より画像メモリ2123へのアクセスも可能である。
【0080】
チップID(ChipID)4004にはコマンドパケットの送信先となる画像処理部2149を表すIDが格納される。
【0081】
ページID(PageID)4007、ジョブID(JobID)4008はソフトウェアで管理するためのページIDとジョブIDを格納する。
【0082】
パケットID(PacketID)4009は1次元で表される。データパケットのX座標のみを使用する。
【0083】
パケットバイト長(PacketByteLength)4010は128バイト固定である。
【0084】
パケットデータ部4002には、アドレス4011とデータ4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはコマンドタイプ(CmdType)4005で示され、コマンドの数はコマンド数(CmdNum)4006で示される。
【0085】
[割り込みパケットフォーマット(図11)]
割り込みパケット(Interrupt Packet)フォーマットは画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105は割り込みパケットを送信すると、次に送信の許可がされるまでは割り込みパケットを送信してはならない。
【0086】
パケットバイト長(PacketByteLength)5006は128バイト固定である。
【0087】
パケットデータ部5002には、画像処理部2149の各内部モジュールのステータス情報5007が格納されている。ステータス処理部2105は画像処理部2149内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0088】
チップID(ChipID)5004には割り込みパケットの送信先となるシステム制御部2150を表すIDが、また、割り込みチップID(IntChipID)5005には割り込みパケットの送信元となる画像処理部2149を表すIDが格納される。
【0089】
[パケットの転送]
次に画像リング2008でのパケット転送について説明する。
【0090】
図2はパケットをさらに分割したサブパケットを説明するための図である。本発明に係るコントローラユニット2000ではパケットを分割し、それぞれの分割されたものに、さらに属性を付加してサブパケットを作成し、サブパケット単位で画像リング2008にデータを伝達させる。サブパケットの属性には、そのサブパケットがどのパケットのサブパケットであるかや、どの画像処理部に送るべきかの情報が含まれる。
【0091】
ここで注意すべきは、パケットからサブパケットへの分割は、1枚の画像からタイルへの分割とは本質的に異なるということである。言い換えると、パケットからサブパケットへのさらなる細分化は、タイルのサイズを小さくした、さらなる細分化では実現できないということである。具体的に言うと、タイルのサイズは32ピクセル×32ピクセルや64ピクセル×64ピクセルが一般的である。本実施形態では32×32ピクセルとしている。その理由は、これより小さいサイズでは問題があるからである。たとえば、データの圧縮では、ある範囲内のピクセルを参照することにより符号化しているが、タイルのサイズが小さいと効率的な圧縮ができないか、あるいは圧縮自体ができない。画像処理においても同様なことが言える。つまり、パケットは処理の最小単位であり、画像データのサイズをそれ以下にすると処理が行えないか、あるいは処理を行えても良好な結果が得られないものである。パケットからサブパケットへの分割は、パケットをビット列として単純に分割したものである。そして、サブパケットは画像リング2008を伝達する最小単位である。
【0092】
図2において、画像データ201は一定サイズのタイル202に分割される。このタイルが、図7及び図8の画像処理ユニットにおける処理の単位となる。例えば、タイル伸長部やタイル圧縮部などでは、タイル単位で処理が行われる。タイル202にはそれをデータ部205とし、ヘッダ204が付されてパケット203となる。ヘッダ204には、例えば画像データにおけるパケットの位置などの情報が含まれる。
【0093】
パケット203は、サブパケット206,208,209に分割される。各サブパケットには属性207が付加される。またパケット203のフッタ210については、それのみでサブパケット211が構成される。フッタ210はヘッドと同じ構成であり、送信は必須ではない。
【0094】
[サブパケットの属性]
図3にサブパケットの属性207の構成を示す。属性207には、ページID(PageID)301、ジョブID(JobID)302、パケットタイプ(PacketType)303、チップID(チップID)304、ユニットID(UnitID)305、パケット開始(StartofPacket)フラグ306、データ終了(EndofData)フラグ307、パケット終了(EndofPacket)フラグ308といったフィールドが存在する。
【0095】
属性207はすべてのサブパケットについており、ページID301、ジョブID302、パケットタイプ303、チップID304、ユニットID305の内容はそのサブパケットが属するパケットのヘッダ204からコピーされる。ユニットID305についてはヘッダ内の処理命令3011の一番最初のユニットIDがコピーされる。
【0096】
パケットの先頭のヘッダ204が含まれたサブパケット206の属性には、パケット開始フラグ306がセットされる。これにより、そのサブパケットがパケットの先頭であることが示される。また、パケット転送の後にフッタ210の転送を行なわない場合、パケットの最後のサブパケット209では、データ終了フラグ307およびパケット終了フラグ308の両方のフラグがセットされる。パケット転送の後にフッタ210の転送を行なう場合は、パケットの最後のサブパケット209で、データ終了フラグ307がセットされ、その後のフッタ210の転送を行なうサブパケット211でパケット終了フラグ308がセットされる。
【0097】
フッタは送られる場合と送られない場合がある。フッタの構成要素はヘッダと同じである。パケットを転送する際、ヘッダを一番最初に転送し、その後パケットデータを転送する。ヘッダにはパケットデータの属性や長さなどが格納される。
【0098】
イメージデータを圧縮してパケットを作成して転送を行なう場合などは、イメージデータを圧縮し終わるまでヘッダの内容が確定しない。そのため、圧縮機能を持ったパケット送信装置などは、圧縮した1パケット分のイメージデータを一時的に格納するバッファを持つ必要がある。本実施形態では、ヘッダをパケットの最後にフッタとして転送することができるプロトコルを採用しているため、ヘッダの内容が確定しないまま、ヘッダを転送することが可能で、圧縮したイメージデータもその都度転送することを可能としている。このため、1パケット分のイメージデータを格納するバッファを削減することも可能である。
【0099】
[画像リングインターフェース]
図1に画像リングインターフェース1(2147)内部のブロック図を示す。画像リングインターフェース1(2147)はRAM2002に格納されているパケットを読み出し、画像リング2008に送信するためにDMAC0(102)、DMAC1(103)、DMAC2(103)の3つのDMACを持つ。各DMACからRAM2002へのアクセス、及び画像リング2008へのアクセスはサブパケット単位で行なわれ、それぞれシステムバスアービタ101と画像リングアービタ106により調停される。サブパケット単位での転送にすることで、ひとつのパケットが画像リング2008を長い時間占有してしまうことが防げる。しかし、それぞれのDMACによるRAM2002へのアクセスと画像リング2008へのアクセスにおいては、転送径路の異なるパケットデータがサブパケット毎に混在して転送される。
【0100】
ここで注意が必要なのは、画像処理部2149のタイル伸張部1とタイル伸張部2(2103)はパケットに格納されている圧縮画像データを伸張する機能を持っているが、同時にひとつのパケットしか取り扱えないため、あるパケットを受信中に他のパケットのサブパケットが混じると、誤動作を起こしてしまうことである。
【0101】
これを避けるためには、2つのタイル伸張部をリソースとし、DMAC0(102)、DMAC1(103)、DMAC2(103)の3つのDMACで使用するタイル伸張部が重ならないように、ソフトウェアにおいてリソース管理を行なう必要がある。リソースの管理とは、例えばリソースを、それを要求するプロセスやハードウエア等に割り当ててその排他利用を実現することである。ソフトウェアによるリソース管理をパケット毎に行なうのは、オーバーヘッドが大きく、性能が大きく落ち込んでしまう。そこで性能を落とさず、ソフトウェアによってリソース管理を行なう場合には、ページ毎のリソース管理が現実的である。しかし、このような方法では、DMACの起動はタイル伸張部の数の範囲内に限られる。
【0102】
本発明に係るコントローラユニット2000では、リソースマネージャ105がパケット毎に各DMACを調停してリソース管理することで、タイル伸張部の数以上のDMACを同時に起動することが可能になっている。以下にリソースマネージャ105の動作について詳細に説明する。
【0103】
各DMACは以下の信号によってリソースマネージャ105との通信を行なう。なおこの説明においては、「信号名(送信元→送信先):説明」という形式で記載している。また、信号名中の(n)は表記上の便宜であって、信号名においてはかっこが付されていない0乃至2の数字により(n)が置換される。また、ある信号名中のnの値と同一のnの値を信号名中に有する信号を、それぞれについて対応する信号と呼ぶことにする。
dmac(n)_pktsend_req(DMAC→リソースマネージャ105)
:DMACがパケット送信を始める前にリソースを要求するためにアサートする。
dmac(n)_pktsend_gnt(リソースマネージャ105→DMAC)
:信号dmac(n)_pktsend_reqのアサートに対して、リソースが重なっていない場合にパケット送信の許可を示すためにアサートされる。
dmac(n)_release(DMAC→リソースマネージャ105)
:DMACがパケット送信を終了後、リソースを解放するためにアサートする。
dmac(n)_release_ack(リソースマネージャ105→DMAC)
:dmac(n)_releaseのアサートに従ってリソースを解放したことをDMACに通知するためにアサートされる。
dmac(n)_chipid[3:0](DMAC→リソースマネージャ105)
:画像処理部2149が複数接続されている場合に、どれを使用するかをこのIDで報告する。なお、画像処理部2149が1チップの半導体回路(LSI)で実現されている場合には、どのチップを使用するかを選択する信号となる。
dmac(n)_unitid[4:0](DMAC→リソースマネージャ105)
:どのタイル伸張部を使用するかをこのIDで報告する。
【0104】
これらの信号は各DMAC毎に存在しており、(n)がDMACの番号を表す。本実施例ではDMAC0、DMAC1、DMAC2の計3つのDMACが存在しており、(n)にはそれぞれ0、1、2、が入る。
【0105】
リソースマネージャ105は内部に各DMACが確保したリソースを記憶するために以下のようなリソースレジスタを持つ。これらは各DMAC毎に存在しており、(n)には各DMACの番号の0、1、2が入る。
reg_dmac(n)_chipid[3:0]
reg_dmac(n)_unitid[4:0]
reg_dmac(n)_using。
【0106】
リソースマネージャ105はDMACからリソース確保の要求がきてそれを許可した場合、リソース要求を発行したDMACに対応するreg_dmac(n)_chipid,reg_dmac(n)_unitidそれぞれに、dmac(n)_chipid,dmac(n)_unitidそれぞれの信号で報告されたチップID、ユニットIDを格納し、reg_dmac(n)_usingに1をセットする。
【0107】
また、DMACはパケットの送信が終了すると、リソースの解放を行なう。これにより、reg_dmac(n)_usingは0にクリアされる。すなわち、reg_dmac(n)_usingに1がセットされている場合は、DMAC(n)により、reg_dmac(n)_chipidおよびreg_dmac(n)_unitidで特定されるリソースは使用中であり、0がセットされている場合はDMAC(n)はリソースを使用していないことになる。
【0108】
したがって、DMAC(n)からリソース確保の要求がきた場合には、リソースマネージャ105はリソースレジスタを参照し、現在使用中のリソースと、DMAC(n)からのリソース要求とが一致しているかどうかを判断し、一致していなければ許可をし、一致していれば、使用中のリソースが解放されるまで待たせる。
【0109】
図4にDMAC0102とリソースマネージャ105との間の通信の信号波形の例を示す。DMAC0(102)はパケットを送信する前にリクエスト信号であるdmac0_pktsend_reqをアサートする(タイミングt1)。同時にサブパケットの属性に含まれるチップID304およびユニットID305に基づいて信号dmac0_chipid[3:0]、dmac0_unitid[4:0]をそれぞれ確定させる。
【0110】
リソースマネージャ105はDMAC0(102)からのリクエストを受け、そのときに他のDMACが同じチップIDとユニットIDを使用していないかをチェックし、使用していなければ、グラント信号であるdmac0_pktsend_gntをアサートし、パケットの送信を許可する(タイミングt2)。同時にリソースマネージャ内部のリソースレジスタにDMAC0が使用するチップIDとユニットIDを保存する。
【0111】
DMAC0はリソースの占有をおえたなら、すなわち1パケット分のサブパケットの送信を終えたならば、dmac0_release信号をアサートする(タイミングt3)。
【0112】
リソースマネージャ105はDMAC0(102)からのリソース解放通知を受け、応答信号であるdmac0_release_ackをアサートする(タイミングt4)。同時にリソースマネージャ内部のDMAC0に対応するレジスタreg_dmac0_usingの内容を0にする。
【0113】
[リソースマネージャ105の動作(図5)]
図5にリソースマネージャ105の内部構成を示し、その動作例について詳細に説明する。
【0114】
今、DMAC0からリクエストがあったとする。リソースマネージメントシーケンサ501はdmac0_pktsend_req信号を受けると比較装置502からのリソースの比較の結果を待つ。
【0115】
dmac0_pktsend_req信号は比較装置502にも入力されており、この信号がアサートされると、dmac0_chipid[3:0]、dmac0_unitid[4:0]をリソースメモリ503に保存されている有効なすべてのチップID、ユニットIDと比較する。リソースメモリ503には先に説明したリソースレジスタが設けられている。保存されているチップID,ユニットIDが有効かどうかはi_dmac(n)_valid(n=0〜2)がアサートされていれば有効、アサートされていなければ無効と判断する。
【0116】
比較の結果、DMAC0から要求のあったチップIDとユニットIDがすでにリソースメモリに保存されていれば、hit0信号をアサートし、使用されていなければhit0信号はアサートされない。ここで、比較に数サイクル要する場合、リソースマネージメントシーケンサ501は必要なサイクル数以降にhit0信号を評価する。
【0117】
hit0信号がアサートされなければ、dmac0_set信号がアサートされ、dmac0_chipid[3:0]、dmac0_unitid[4:0]をリソースメモリ503に保存される。ここでリソースメモリ503のDMAC0のチップID、ユニットIDが有効となり、i_dmac0_validがアサートされる。保存されているチップID、ユニットIDはi_dmac0_chipid[3:0]、i_dmac0_unitid[4:0]として比較装置502に通知される。
【0118】
リソースメモリ503への保存が終わると、dmac0_pktsend_gntがアサートされ、DMAC0のパケット送信が許可される。
【0119】
この後、DMAC1からDMAC0と同じチップID、ユニットIDに対してリクエストがきたとする。比較装置502はdmac1_chipid[3:0]、dmac1_unitid[4:0]をリソースメモリ503に保存されている有効なすべてのチップID、ユニットIDと比較する。
【0120】
ここで、dmac1_chipid[3:0]、dmac1_unitid[4:0]がi_dmac0_chipid[3:0]、i_dmac0_unitid[4:0]と一致するので、比較装置502はhit1信号をアサートする。この場合リソースマネージメントシーケンサ501はdmac1_pktsend_gnt信号をアサートすることができず、DMAC1はパケット送信を待たされることになる。
【0121】
DMAC0のパケット送信が終了すると、dmac0_release信号がアサートされる。リソースマネージメントシーケンサ501はdmac0_clr信号をアサートし、リソースメモリ503に保存されているDMAC0のチップIDとユニットIDを無効にし、dmac0_release_ack信号をアサートする。
【0122】
リソースメモリ503はdmac0_clr信号を受け、i_dmac0_valid信号をネゲートする。
【0123】
比較装置502はdmac1_chipid[3:0]、dmac1_unitid[4:0]が保存されているチップID、ユニットIDと一致しなくなったのでhit1信号をネゲートする。
【0124】
これを受け、リソースマネージメントシーケンサ501はリソースメモリ503にDMAC1のチップID、ユニットIDを保存し、DMAC1にパケット送信を許可することになる。
【0125】
以上の動作を一般化して説明すると次のように説明できる。
【0126】
図5のリソースマネージャにおいて、比較装置502はDMACごとに対応して設けられている。すなわちDMAC(n)(n=0,1,2)それぞれについて比較装置(n)が用意されている。
【0127】
比較装置(n)は、dmac(n)_pksend_req信号が活性化信号として入力されており、この信号がアサートされると後述する信号値の比較を行う。
【0128】
比較装置(n)にはまた、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]信号が入力される。そして、入力されたdmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組を、m=0〜2について、i_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]の組のそれぞれと比較する。ただし、i_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]信号は、i_dmac(m)_valid信号がアサートされている場合に限って有効である。
【0129】
比較の結果、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組と一致するi_dmac(m)_chipid[3:0]およびi_dmac(m)_unitid[4:0]の組がm=0〜2について存在すれば、hit(n)信号がアサートされる。すなわち、hit(n)信号は、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]の組の値が、いずれかのDMACのリソースレジスタに既に登録されている状態を示す。
【0130】
リソースメモリ503には、上述したリソースレジスタreg_dmac(n)_using、reg_dmac(n)_chipid[3:0]、reg_dmac(n)_unitid[4:0]が、n=0〜2について設けられている。そして、dmac(n)_setがアサートされると、対応する信号dmac(n)_chipid[3:0]、dmac(n)_unitid[4:0]の値がそれぞれレジスタreg_dmac(n)_chipid[3:0]、reg_dmac(n)_unitid[4:0]に書き込まれ、同様に対応するレジスタreg_dmac(n)_usingに1がセットされる。
【0131】
また、dmac(n)_clr信号がアサートされると、対応するレジスタreg_dmac(n)_usingに0がセットされる。
【0132】
各レジスタreg_dmac(m)_using、reg_dmac(m)_chipid[3:0]、reg_dmac(m)_unitid[4:0]の値はすべて、信号i_dmac(m)_using、i_dmac(m)_chipid[3:0]、i_dmac(m)_unitid[4:0]として比較装置(n)それぞれに入力されている。
【0133】
リソースマネージメントシーケンサ501は、dmac(n)_pktsend_req信号がアサートされると、比較装置(n)が前述したhit(n)信号を出力するのに要する時間待機してから、アサートされたdmac(n)_pktsend_req信号に対応するhit(n)信号の値をテストする。hit(n)信号がアサートされていれば、要求されたリソース、すなわちdmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]で特定されるタイル圧縮部等の画像処理ユニットは、すでにいずれかのDMACに対してその使用が許可されている。したがって、その要求はリソースが解放されるまで待機させられる。
【0134】
一方、hit(n)信号がアサートされていない場合には、要求されたリソースは未使用である。そこで、リソースマネジメントシーケンサ501はdma(n)_set信号をアサートする。これにより、reg_dmac(n)_usingが1にセットされ、レジスタreg_dmac(n)_chipid[3:0]およびreg_dmac(n)_unitid[4:0]に、dmac(n)_chipid[3:0]およびdmac(n)_unitid[4:0]信号の値がセットされる。そして、dmac(n)_pksend_gnt信号をアサートする。
【0135】
これにより、リソースを要求したDMAC(n)は要求したリソースを獲得でき、サブパケットの転送を開始する。
【0136】
さてDMAC(n)が1パケット分のデータ転送を終えてDMAC(n)_release信号をアサートすると、リソースマネジメントシーケンサ501は、DMAC(n)clr信号をアサートする。これにより、DMAC(n)が占有していたリソースを示すレジスタreg_dmac(n)_usingには0がセットされ、レジスタreg_dmac(n)_chipid[3:0]及びreg_dmac(n)_unitid[4:0]の値は無効となって、比較装置502による比較対象から外される。
【0137】
この結果、レジスタreg_dmac(n)_chipid[3:0]及びreg_dmac(n)_unitid[4:0]で示されるリソースの空きを待機しているDMAC(i)があれば、比較装置(i)における出力信号hit(i)がネゲートされるために、DMAC(i)に対して、そのリソースが割り当てられる。
【0138】
以上のようにして、リソースの管理が行われている。なお、同時に複数のDMACが同一のリソースを要求している場合には、適当な優先順位を付けてリソースを割り当てる。最も簡単には、DMAC0,1,2のそれぞれに固定的に順位を割り当てる方法がある。また、先着順とする方法も採り得る。この場合には、リソースマネジメントシーケンサ501は、待機させられているリソース要求の発生順序を記憶しておく。そして、hit(n)信号の状態変化があれば、要求を発した順に、要求元のDMAC(n)に対応するhit(n)信号を順番にテストする。最初にネゲートされていることが判定されたhit(n)信号に対応するDMAC(n)から順にリソースを割り当てる。
【0139】
このように、リソース要求が競合する場合には、適当な順序でスケジュールすることもできる。
【0140】
以上説明したように、本実施形態によれば、ハードウェアにより、パケット毎に複数のマスタを調停してリソース管理することで、ソフトウェアが各マスタのターゲットとなるスレーブを意識する必要をなくし、スレーブの数以上のDMACを同時に起動することを可能とし、ソフトウェアのオーバーヘッドをなくし、パケット転送の通信経路の有効利用し、トータルとしてのパケット転送速度を向上させることが可能となる。
【0141】
また以上のようにして、リソース要求元であるマスタごとに、要求するリソースの空きを判定し、空いていればそのリソース要求元によって要求されているリソースを排他的に割り当てる。本実施形態の場合、排他管理の単位はパケットであり、リソースである画像処理ユニット、例えば画像伸長部は、ひとつのパケットを構成するサブパケットのみを受信して処理することができる。もちろんその逆に、リソースからデータをサブパケット単位で送信する場合にも同様である。
【0142】
さらに、リソースマネージャによりパケット単位でリソースの競合を調停するために、排他利用されるリソースを、複数のマスタによって、1パケットの処理に要する時間を単位として時分割で共有することができる。
【0143】
本実施形態ではリソースマネージャはハードウエアのリソースマネジメントシーケンサを中核として構成されるために、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【0144】
以上、本発明を特定の実施例に関して図示しかつ説明したが、さらに他の修正および改善が可能であろう。例えば、ここに述べた通信経路の信号は、他の名称を持つが同じ基本的な機能を果すものとすることができる。様々な信号のビット幅、および他の値は設計に応じて変えることができる。
【0145】
また、本実施形態ではチップIDとユニットIDの両方をリソースとして管理しているが、ターゲットとなるチップがひとつの半導体回路(LSI)で実現されている場合はUnitIDのみをリソースとして管理するだけで十分である。
【0146】
一方、データパケットや、コマンドパケットなど、ひとつのターゲットが二種類のパケットを同時に受け取れる場合には、リソースをパケットの種類ごとに分けて管理する必要があり、この場合は、パケットの種類も同時にリソースとして管理することになる。
【0147】
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【0148】
【発明の効果】
以上説明したように、本発明によれば、パケットを単位としてリソースを排他管理することで、当該リソースにおいては、パケット単位でデータを受信してその処理を行うことができる。このため、複数のパケットが混在する状況を防止でき、そのような状況に対応するための処理を行わずに済むことで、処理を効率化できる。
【0149】
さらに、排他利用されるリソースを、複数のマスタによって、1パケットの処理に要する時間を単位として時分割で共有することができる。
【0150】
さらに、リソースの排他管理をハードウエアにより行うことで、リソース管理のための処理時間のオーバーヘッドをきわめて短時間に抑制できる。
【0151】
さらに、パケットを単位としてリソースを排他管理することで、当該リソースに関して、パケットを分割したサブパケット単位でデータの転送を行っても、他のパケットを構成するサブパケットと混在する状態での転送を防止できる。これにより、サブパケットの再組立て等の管理を簡易化できる。また、サブパケットに分割されている場合でもリソースはパケット単位でデータを扱えばよいために、その構成を簡易化できる。
【図面の簡単な説明】
【図1】画像リングインターフェース1内部のブロック図。
【図2】パケットをさらに分割したサブパケットを表す図。
【図3】アトリビュートの構成を示した図。
【図4】DMACとリソースマネージャとの間の通信の信号波形の例を示す図。
【図5】リソースマネージャの内部構成を表す図。
【図6】本システムの実使用環境を表す図。
【図7】本システムコントローラの全体ブロック図。
【図8】本システムコントローラの全体ブロック図。
【図9】イメージパケットを表す図。
【図10】コマンドパケットを表す図。
【図11】インタラプトパケットを表す図。
【図12】パケットテーブルを表す図。
Claims (8)
- データをパケット単位で送受信するパケット通信装置であって、
パケットを分割して送信する複数の送信部を有する送信手段と、
前記送信手段により送信されるパケットのあて先であるリソースを、パケットを単位として排他管理する管理手段と
を備えることを特徴とするパケット通信装置。 - 前記送信部は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を前記管理手段に通知し、前記管理手段から与えられた送信許可に基づいてパケットを分割してあて先へと送信し、送信終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、使用されているリソース情報を記憶する記憶手段を有し、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、前記送信部から前記リソースの解放が通知された場合には、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化することを特徴とする請求項1に記載のパケット通信装置。 - 前記リソースは、ひとつの半導体回路上に存在する複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子が前記リソースとして管理されることを特徴とする請求項2に記載のパケット通信装置。
- 前記リソースは、複数の半導体回路上に存在する、複数の受信回路を含む電子回路であり、前記受信回路を識別するための識別子および前記半導体回路を識別するための識別子が前記リソースとして管理されることを特徴とする請求項2に記載のパケット通信装置。
- 前記リソースは、受信した分割されたパケットを再組み立てして処理することを特徴とする請求項1に記載のパケット通信装置。
- データをパケット単位で送受信するパケット通信制御方法であって、
パケットを分割して送信する複数の送信部の各々は、パケットの送信前に、パケットのあて先であるリソースを特定するリソース情報を、使用されているリソース情報を記憶する記憶手段を有する管理手段に通知し、
前記管理手段は、前記送信部から通知されるリソース情報と一致するリソース情報が前記記憶手段に記憶されていない場合には、前記送信部に送信許可を与えるとともに当該送信部によるパケットのあて先であるリソースのリソース情報を前記記憶手段により記憶し、
前記送信部は、前記送信許可に応じてパケットを分割して送信し、その終了後に前記管理手段に対してリソースの解放を通知し、
前記管理手段は、前記送信部からの前記リソースの解放の通知に応じて、当該リソースに対応する前記記憶手段に記憶されたリソース情報を無効化することを特徴とするパケット通信制御方法。 - 請求項1乃至5のいずれか1項に記載のパケット通信装置により、画像処理ユニットを前記リソースとして、制御部と前記画像処理ユニットとのインターフェース回路を前記送信手段として接続し、パケット化された画像データが前記インターフェース回路から前記画像処理ユニットへと送信されることを特徴とする画像処理装置。
- パケット化されたデータをサブパケットに分割して送信する複数のDMAコントローラと該DMAコントローラによるデータ送信を調停する調停回路とを備えるインターフェース回路であって、
前記調停回路は、前記複数のDMAコントローラそれぞれが要求するリソースを登録するメモリと、
該メモリに登録されたリソースと、前記複数のDMAコントローラそれぞれが要求するリソースとを比較する比較回路と、
前記DMAコントローラからリソース要求が発行されると、前記比較回路による比較の結果、一致するリソースが前記メモリに登録されていないと判定された場合には、リソース要求を発行したDMAコントローラに対してリソースの占有許可を発行し、前記DMAコントローラからリソース解放要求が発行されると、前記メモリからソース解放要求対象のリソースを削除する管理シーケンサとを備え、
前記複数のDMAコントローラそれぞれは、前記パケットの送信前の前記調停回路に対してリソースを要求し、送信号にリソース解放を要求することを特徴とするパケット通信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197459A JP2004040637A (ja) | 2002-07-05 | 2002-07-05 | パケット通信装置及びパケット通信制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197459A JP2004040637A (ja) | 2002-07-05 | 2002-07-05 | パケット通信装置及びパケット通信制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004040637A true JP2004040637A (ja) | 2004-02-05 |
Family
ID=31705228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002197459A Withdrawn JP2004040637A (ja) | 2002-07-05 | 2002-07-05 | パケット通信装置及びパケット通信制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004040637A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006119824A (ja) * | 2004-10-20 | 2006-05-11 | Canon Inc | ダイレクトメモリアクセス装置及びその制御方法 |
JP2009121805A (ja) * | 2007-11-07 | 2009-06-04 | Ivoclar Vivadent Ag | 燃焼窯 |
US7640374B2 (en) | 2005-01-14 | 2009-12-29 | Fujitsu Limited | Data transfer apparatus by direct memory access controller |
JP2011030209A (ja) * | 2009-06-24 | 2011-02-10 | Olympus Corp | 画像処理装置 |
JP2015185866A (ja) * | 2014-03-20 | 2015-10-22 | 富士ゼロックス株式会社 | パケット生成装置及びプログラム |
-
2002
- 2002-07-05 JP JP2002197459A patent/JP2004040637A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006119824A (ja) * | 2004-10-20 | 2006-05-11 | Canon Inc | ダイレクトメモリアクセス装置及びその制御方法 |
US7640374B2 (en) | 2005-01-14 | 2009-12-29 | Fujitsu Limited | Data transfer apparatus by direct memory access controller |
JP2009121805A (ja) * | 2007-11-07 | 2009-06-04 | Ivoclar Vivadent Ag | 燃焼窯 |
JP2011030209A (ja) * | 2009-06-24 | 2011-02-10 | Olympus Corp | 画像処理装置 |
JP2015185866A (ja) * | 2014-03-20 | 2015-10-22 | 富士ゼロックス株式会社 | パケット生成装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4181839B2 (ja) | システムコントローラ | |
US7724388B2 (en) | Image input/output control apparatus, image processing apparatus, image processing method, data communication apparatus, and data communication method | |
JP4065503B2 (ja) | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 | |
JPH08251322A (ja) | ファクシミリ伝送の待ち時間を最適にするための方法及びシステム | |
JP4612176B2 (ja) | 多機能印刷方法及び多機能印刷システム | |
JP3529205B2 (ja) | 印刷装置 | |
US7193738B2 (en) | Image processing apparatus and method | |
JP2001203842A (ja) | 低優先度ジョブから高優先度ジョブへのリソース移転の最適化方法および装置 | |
JP2001222186A (ja) | 一式の共用リソースに対するジョブストリーミングを実施可能にする方法および装置 | |
JP2001211279A (ja) | イメージを多分割帯化する電子写真式複写システムにおけるシステムリソースに対するジョブコンテンションの管理方法および管理装置 | |
JP2001228749A (ja) | 一式の共用リソースの使用時においてサブジョブに対する多機能処理を実施可能にする方法および装置 | |
JP2000211216A (ja) | 複合機器の情報処理方法及びシステム | |
JP2004040637A (ja) | パケット通信装置及びパケット通信制御方法 | |
JP2001219628A (ja) | 電子写真式複写システムにおけるシステムリソースに対するジョブコンテンションの管理方法および管理装置 | |
JP2003316714A (ja) | 情報処理装置及び方法 | |
KR100570786B1 (ko) | 복합기기의 제어기 | |
JP3730586B2 (ja) | 画像処理装置 | |
JP6833491B2 (ja) | 情報処理装置 | |
JP2006338232A (ja) | 通信システム | |
JP2018118477A (ja) | 画像処理装置とその制御方法、及びプログラム | |
JP2004110619A (ja) | データ通信装置 | |
JP2006166102A (ja) | マルチファンクションシステムコントローラ | |
JP2003304381A (ja) | 情報処理装置及びデータ転送方法 | |
JP2004078376A (ja) | 画像処理装置および画像処理装置のデータ処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
JP2004253906A (ja) | 伸長装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050906 |