(57)【特許請求の範囲】
【請求項１】
複数のバスマスタから、データ転送の種類を示す属性情報であって前記バスマスタの識別子を含む属性情報とアドレスとを含むデータ転送要求を受信する受信手段と、
前記受信手段により受信されたデータ転送要求に含まれるバスマスタの識別子に基づいて、当該データ転送要求が圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、当該データ転送要求が圧縮対象であれば前記受信手段により受信された属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送する送信手段と
を備えることを特徴とするデータ転送装置。
【請求項２】
前記送信手段は、前記受信手段により受信されたデータ転送要求に含まれるバスマスタの識別子がプロセッサを示していれば当該データ転送要求を圧縮対象ではないと判断することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記送信手段は、前記受信手段により受信されたデータ転送要求に含まれるバスマスタの識別子がダイレクトメモリアクセスコントローラを示していれば当該データ転送要求を圧縮対象であると判断することを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
複数のバスマスタから、データ転送の種類を示す属性情報とデータ転送先を示すアドレスとを含むデータ転送要求を受信する受信手段と、
前記受信手段により受信されたデータ転送要求に含まれるデータ転送先を示すアドレスに基づいて、当該データ転送要求が圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、当該データ転送要求が圧縮対象であれば前記受信手段により受信された属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送する送信手段と
を備えることを特徴とするデータ転送装置。
【請求項５】
前記送信手段は、前記受信手段により受信されたデータ転送要求に含まれるデータ転送先を示すアドレスがメモリ領域であると当該データ転送要求を圧縮対象であると判断することを特徴とする請求項４に記載のデータ転送装置。
【請求項６】
前記送信手段は、前記受信手段により受信されたデータ転送要求に含まれるデータ転送先を示すアドレスがＩＯ領域であると当該データ転送要求を圧縮対象ではないと判断することを特徴とする請求項４又は５に記載のデータ転送装置。
【請求項７】
前記受信手段により受信されたデータ転送要求が圧縮対象であるかどうかを判断するための情報を保持する保持手段をさらに備えることを特徴とする請求項１乃至６のいずれか１項に記載のデータ転送装置。
【請求項８】
データ転送の種類を示す属性情報またはアドレスが含まれていないデータ転送要求を受信する受信手段と、
前記受信手段により受信されたデータ転送要求に含まれる情報に基づいて、前記データ転送要求に含める属性情報またはアドレスを出力する出力手段と、
前記出力手段により出力される属性情報またはアドレスを前記転送要求に含めて送信する送信手段と
を備え、
前記出力手段は、データ転送のスタートアドレスと繰り返し回数に基づいて前記受信手段により受信されたデータ転送要求に含めるアドレスを生成することを特徴とするデータ転送装置。
【請求項９】
複数のバスマスタが接続されている第１バスに接続されている送信部と、バススレーブが接続されている第２バスに接続されている受信部と、前記送信部と前記受信部とを接続する第３バスとを有するデータ転送装置であって、
前記送信部は、前記バスマスタが発行するデータ転送要求に含まれる情報に基づいて、当該データ転送要求が圧縮対象であるかどうかを判断し、圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、圧縮対象であれば前記データ転送要求に含まれる属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送し、
前記受信部は、前記第３バスを介して前記送信部により送信されるデータ転送要求が前記第２のパケットフォーマットであると、予め保持している属性情報またはアドレスを前記転送要求に含めて前記バススレーブに転送し、
前記受信部に、前記送信部より送信されるデータ転送要求に含めるアドレスを出力するダイレクトメモリアクセスコントローラを更に有することを特徴とするデータ転送装置。
【請求項１０】
複数のバスマスタから、データ転送の種類を示す属性情報であって前記バスマスタの識別子を含む属性情報とアドレスとを含むデータ転送要求を受信する受信工程と、
前記受信工程で受信されたデータ転送要求に含まれるバスマスタの識別子に基づいて、当該データ転送要求が圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、当該データ転送要求が圧縮対象であれば前記データ転送要求に含まれる属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送する送信工程とを備えることを特徴とするデータ転送方法。
【請求項１１】
複数のバスマスタから、データ転送の種類を示す属性情報とデータ転送先を示すアドレスとを含むデータ転送要求を受信する受信工程と、
前記受信工程で受信されたデータ転送要求に含まれるデータ転送先を示すアドレスに基づいて、当該データ転送要求が圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、当該データ転送要求が圧縮対象であれば前記受信工程により受信された属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送する送信工程と
を備えることを特徴とするデータ転送方法。
【請求項１２】
データ転送の種類を示す属性情報またはアドレスが含まれていないデータ転送要求を受信する受信工程と、
前記受信工程で受信したデータ転送要求に含まれる情報に基づいて、前記データ転送要求に含める属性情報またはアドレスを出力する出力工程と、
前記出力工程で出力された属性情報またはアドレスを前記転送要求に含めて送信する送信工程と
を備え、
前記出力工程では、データ転送のスタートアドレスと繰り返し回数に基づいて前記受信工程により受信されたデータ転送要求に含めるアドレスを生成することを特徴とするデータ転送方法。
【請求項１３】
複数のバスマスタが接続されている第１バスに接続されている送信部と、バススレーブが接続されている第２バスに接続されている受信部と、前記送信部と前記受信部とを接続する第３バスとを有するデータ転送装置によるデータ転送方法であって、
前記送信部は、前記バスマスタが発行するデータ転送要求に含まれる情報に基づいて、当該データ転送要求が圧縮対象であるかどうかを判断し、圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、圧縮対象であれば前記データ転送要求に含まれる属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送し、
前記受信部は、前記第３バスを介して前記送信部により送信されるデータ転送要求が前記第２のパケットフォーマットであると、予め保持している属性情報またはアドレスを前記転送要求に含めて前記バススレーブに転送し、
前記受信部には、前記送信部より送信されるデータ転送要求に含めるアドレスを出力するダイレクトメモリアクセスコントローラを更に有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを使用してデータ転送を行うデータ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
パケットを使用してデータ転送を行う技術は様々な分野に適用されている。例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）はインターネット上のデータ転送をパケットベースで行う技術である。また、ＰＣＩ  ＥＸＰＲＥＳＳ（登録商標）は集積回路間のデータ転送をパケットベースで行う技術である。ＮｏＣ（Ｎｅｔｗｏｒｋ  Ｏｎ  Ｃｈｉｐ）において集積回路内のデータ転送をパケットベースで行う技術もある。パケットベースでデータ転送を行うメリットとして、アドレスやデータ等の転送に必要な様々な情報を少ない信号線で転送できる点や、転送レートを上げやすいという点があげられる。
しかし、パケットベースの転送方式においては、非パケットベースの転送方式に比べて転送に要するサイクル数が多いため、パケット構造を工夫し、転送効率を上げる技術が提案されている。
例えば特許文献１に、送信側データ転送装置が、バストランザクションに含まれるアドレスが連続したアドレスとなっているデータ転送の際には、１つのアドレスに対して複数のデータをパッキングして１転送単位（１パケット）とすることでアドレスやヘッダーを省略し、転送効率を上げる技術が開示されている。
また、特許文献２に、送信側データ転送装置が、パケット内にアドレス自動更新モードと更新回数と複数のデータを含めて送信し、受信側データ転送装置でアドレス自動更新モードの値に応じてアドレスをインクリメントしながら生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０９８７９９号公報
【特許文献２】特許第３８２９８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のバスマスタが同一のインターフェースを介してバススレーブにアクセスをする構成では、インターフェース上には複数のバスマスタのトランザクションが混在するためアドレスが連続し難いため、特許文献１や特許文献２の方法では転送効率が上がり難い。
また、複数のバストランザクションを単純に１つのパケット内にパッキングして転送する従来の方式では、複数のバストランザクションのデータを格納するためのデータバッファについて大容量のものが必要となってしまうおそれがあった。
【課題を解決するための手段】
【０００５】
本発明に係るデータ転送装置は、複数のバスマスタから、データ転送の種類を示す属性情報であって前記バスマスタの識別子を含む属性情報とアドレスとを含むデータ転送要求を受信する受信手段と、前記受信手段により受信されたデータ転送要求に含まれるバスマスタの識別子に基づいて、当該データ転送要求が圧縮対象でなければ前記データ転送要求に含まれる属性情報とアドレスを含める第１のパケットフォーマットに沿って前記データ転送要求を転送し、当該データ転送要求が圧縮対象であれば前記受信手段により受信された属性情報またはアドレスを含めない第２のパケットフォーマットに沿って前記データ転送要求を転送する送信手段とを備えることを特徴とする。
【発明の効果】
【０００６】
バストランザクションに含まれる転送元を示す識別子、転送先を示す識別子やアドレス、又は要求発行元を示す識別子に応じてパケットを圧縮することで、情報を効率よく圧縮し、バスの転送効率が向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】データ転送システムの概略を示すブロック図である。
【図２】パケット送受信部の構成を示す。
【図３】パケットのフォーマットを示す。
【図４】パケット識別子の例を示す。
【図５】シリアルバスのパラレル−シリアル変換を示す。
【図６】パケット送信部のフローチャートを示す。
【図７】２次元の画像データ転送例を示す。
【図８】アドレス生成部のフローチャートを示す。
【図９】パケット受信部の処フローチャートを示す。
【図１０】データ転送システムの概略を示すブロック図である。
【図１１】パケット受信部の構成を示す。
【図１２】パケット受信部のフローチャートを示す。
【図１３】チップ間通信システムの構成を示す。
【図１４】パケットのフォーマットの詳細を示す。
【発明を実施するための形態】
【０００８】
［実施形態１］
図１はＡＳＩＣ＿Ａ１００とＡＳＩＣ＿Ｂ２００がシリアルバス（第３バス）３００で接続されているシステムの構成を示す。（ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。）シリアルバス３００上では、プリントデータ等がパケットによって転送される。
【０００９】
ＡＳＩＣ＿Ａ１００は第１バス１０５を有し、バスマスタとしてＣＰＵ（プロセッサ）１０１およびＤＭＡＣ＿Ａ１０２を有し、バススレーブとしてパケット送信部１０３およびＤＲＡＭコントローラＡ１０４を有している。第１バス１０５は、アドレスやデータ等についてそれぞれ専用線を備えているパラレルバスである。そして、バスマスタであるＣＰＵ１０１及びＤＭＡＣ＿Ａ１０２は、この第１バス１０５を介して、バススレーブであるパケット送信部１０３又はＤＲＡＭコントローラＡ１０４との間でデータ転送（送信又は受信）を行う。
【００１０】
ＤＲＡＭコントローラＡ１０４はＤＲＡＭインターフェースＡ１０７を介してＤＲＡＭ＿Ａ１０６との間でデータ転送（ライトアクセス又はリードアクセス）を行う。パケット送信部１０３は第１バス１０５からの転送をシリアルバス３００の転送に変換して、接続先のＡＳＩＣ＿Ｂ２００へ転送を行う。
【００１１】
一方、ＡＳＩＣ＿Ｂ２００は第２バス２０４を有し、バスマスタとしてパケット受信部２０１を有し、バススレーブとして省電力制御モジュール２０２およびＤＲＡＭコントローラＢ２０３を有している。第２バス２０４は、アドレスやデータ等についてそれぞれ専用線を備えているパラレルバスである。そして、パケット受信部２０１はシリアルバス３００からの転送を第２バスの形式に沿った転送に変換し、第２バスを介して省電力制御モジュール２０２又はＤＲＡＭコントローラＢ２０３との間でデータ転送を行う。ＤＲＡＭコントローラＢ２０３はＤＲＡＭインターフェースＢ２０６を介してＤＲＡＭ＿Ｂ２０５との間でデータ転送を行う。
【００１２】
ここで、図１の構成が、画像処理等を行うメインチップ（ＡＳＩＣ＿Ａ１００）とプリントヘッド制御を行うサブチップ（ＡＳＩＣ＿Ｂ２００）を備えるプリンタ装置の一部である場合について検討する。この場合、送信側データ転送装置であるメインチップは、受信側データ転送装置であるサブチップにプリントデータを転送しつつ、メインチップがサブチップの状態を確認しながら省電力制御を行う。プリントデータ転送のように予め決まった転送はバスマスタであるダイレクトメモリアクセスコントローラ（以下ＤＭＡＣと呼ぶ）が行い、省電力制御のような複雑な処理はＣＰＵが行う。
【００１３】
その際に、送信側データ転送装置内部のシリアルインターフェースはプリントデータと省電力制御データが混在したデータ転送要求（トランザクション）を受け取るが、ＤＭＡＣは連続したアドレスに転送するにも関わらず、シリアルインターフェース上では複数のバスマスタによるバストランザクションが混在する。そのためバストランザクションに含まれるアドレスが連続しないことが多くなり、従来の手法では転送効率が上がり難くなる。
【００１４】
また、メインチップから、複数色のプリントデータを転送する場合、サブチップには各色用にプリントデータバッファ領域が準備されている。複数色のプリントデータを同時に転送すると、色毎のデータは連続したアドレスに転送するにも関わらず、シリアルインターフェースではアドレスが連続しないので、従来の手法では転送効率が上がり難くなる。
【００１５】
そこで、本実施形態でＡＳＩＣ間のインターフェースであるパケット送信部１０３とパケット受信部２０１において、バスマスタに応じてパケットを圧縮する。
【００１６】
図３に本実施形態で用いるパケットのフォーマットの例を示す。図３（ａ）、図３（ｂ）の其々に二種類のフォーマットが定義されている。図３（ａ）は第１のパケットフォーマットを示す。第１のパケットはヘッダー部（以下、単にヘッダーと称す）及びデータ部（以下、単にデータと称す。）を有する。
【００１７】
ヘッダー及びデータ共に複数の３２Ｂｉｔ単位のキャラクタを備える。ヘッダーは、パケットの種類を示す識別子（Ｔｙｐｅ）や転送属性情報（ＲｅｑＡｔｒｂ  ０／１）や転送先のアドレス（Ａｄｄｒｅｓｓ）を含む。ここで、データは書き込みデータ（Ｗｄａｔａ）やストローブ（Ｗｓｔｒｂ）によって構成され、Ｗｒｉｔｅ転送時にのみ生成される。
【００１８】
図３（ｂ）は第２のパケットフォーマットであり、第２のパケットもヘッダー部とデータ部を有するが、第１のパケットフォーマット図３（ａ）と比較すると、ヘッダー部の転送属性情報（ＲｅｑＡｔｒｂ  ０／１）や転送先のアドレス（Ａｄｄｒｅｓｓ）、データ部のストローブ（Ｗｓｔｒｂ）を格納するフィールドが省略されている。
【００１９】
パケットの種類を示す識別子（Ｔｙｐｅ）は第１のパケットフォーマットか第２のパケットフォーマットかを示す識別子となる。
【００２０】
図４は識別子（Ｔｙｐｅ）の例を示す。識別子の上位ビットがパケットフォーマットを示すフラグであり、図４の例では“０”のとき第１のパケットフォーマットであることを示し、“１”のとき第２のパケットフォーマットであることを示す。下位ビットがＷｒｉｔｅ転送かＲｅａｄ転送かを示すフラグで図４の例では、“０”のときＲｅａｄ転送であることを示し、“１”のときＷｒｉｔｅ転送であることを示している。
【００２１】
以降の説明ではキャラクタが３２Ｂｉｔである例を用いて説明するが、図１４に示すようにキャラクタが１６Ｂｉｔなどでもよい。図１４の例であると、図１４（ａ）が第１のパケットフォーマット、図１４（ｂ）が圧縮されたパケットである第２のパケットフォーマットとなる。
【００２２】
図５に３２Ｂｉｔのシリアル伝送の例を示す。“Ｎ”は非転送期間（ＮＯＰ：Ｎｏ  Ｏｐｅｒａｔｉｏｎ）を示し、“Ｓ”はスタートビットを示す。また、数字はキャラクタ内のＢｉｔ位置を示す。パラレル―シリアル変換は、３２Ｂｉｔ単位のキャラクタごと行われる。３２Ｂｉｔ単位のキャラクタにキャラクタの先頭を示す２Ｂｉｔのスタートビットが付加され、まず、２Ｂｉｔのスタートビットが送信される。その後、３２Ｂｉｔ単位のキャラクタの最上位Ｂｉｔから順に１Ｂｉｔずつ送信が行われる。パラレル―シリアル変換されたキャラクタはクロックとともにシリアルバス３００を介して、受信側のＡＳＩＣ＿Ｂ  ２００に送信される。
【００２３】
図２は本実施形態の転送方式を実現するためのパケット送信部１０３及びパケット受信部２０１の概略構成を示す。
【００２４】
まず、パケット送信部１０３について説明する。
【００２５】
第１バスリクエスト受信部１０３０は第１バス１０５を介して、ＣＰＵ１０１やＤＭＡＣ＿Ａ１０２からのバスリクエスト（データ転送要求）を受信する。バスリクエストは、データ転送先のアドレス（Ａｄｄｒｅｓｓ）、Ｗｒｉｔｅ転送かＲｅａｄ転送かを示すフラグ、書き込みデータ（Ｗｄａｔａ）、ストローブ（Ｗｓｔｒｂ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を含んでいる。
【００２６】
転送属性情報（ＲｅｑＡｔｒｂ  ０／１）は、転送長や転送の優先度、バスリクエストを出したバスマスタを識別する番号（以下、マスタＩＤと呼ぶ）等を示す情報を含んでいる。第１バスリクエスト受信部１０３０は、転送先のアドレス（Ａｄｄｒｅｓｓ）を識別し、受信したバスリクエストの転送先アドレスがＡＳＩＣ＿Ｂ２００のアドレスであれば、バスリクエストをリクエストパケット変換部１０３１へ転送する。一方で、転送先アドレスが制御対象保持部１０３３のアドレスであれば、第１バスリクエスト受信部１０３０は受信したバスリクエストを制御対象保持部１０３３へ転送する。
【００２７】
リクエストパケット変換部１０３１は、第１バスリクエスト受信部１０３０から受信したバスリクエストをパケットに変換する。
【００２８】
リクエストパケット変換部１０３１は、受信したバスリクエストを、パケットフォーマット決定部１０３２へ転送する。そして、パケットフォーマット決定部１０３２の指示を受け、第１のパケットフォーマットあるいは、第２のパケットフォーマットに従ったパケットに変換する。その後、リクエストパケット変換部１０３１は変換したパケットをリクエストパケット送信部１０３４に転送する。
【００２９】
制御対象保持部１０３３は、特定のパケットフォーマットに変換する対象のバスリクエストの情報を保持しているレジスタである。これらのレジスタには予めアドレスが割り当てられており、ＣＰＵ等が事前に設定するものとする。本実施形態では、第２のパケットフォーマットの変換対象を、バスリクエストに含まれるマスタＩＤに基づいて決定する。マスタＩＤはバスリクエストの発行元を識別するための情報である。本実施形態では、ＤＭＡＣ＿Ａ  １０２のバスリクエストを、第２のパケットフォーマットの変換対象とするので、ＤＭＡＣ＿Ａ  １０２に対応するマスタＩＤが制御対象保持部１０３３に設定される。
【００３０】
パケットフォーマット決定部１０３２は、リクエストパケット変換部１０３１（または第１バスリクエスト受信部１０３０）からバスリクエストを受け取り、制御対象保持部１０３３に保持されている情報と、前記バスリクエストに含まれる情報とを比較する。そして、パケットフォーマット決定部１０３２は比較結果に応じて、第１のパケットフォーマットと第２のパケットフォーマットのいずれかを判断し（圧縮対象であるかどうかを判断することに相当する）、リクエストパケット変換部１０３２に指示する。具体的には、パケットフォーマット決定部１０３２が、バスリクエストに含まれるマスタＩＤと制御対象保持部１０３３に保持されているマスタＩＤとを比較し、一致しないときは第１のパケットフォーマット、一致するときは第２のパケットフォーマットに決定する。
【００３１】
リクエストパケット送信部１０３４は、リクエストパケット変換部１０３１からパケットに変換されたリクエストを受け取り、パラレル−シリアル変換し、シリアルバス３００へ送信する。
【００３２】
図６にパケット送信部１０３のフローチャートを示す。
【００３３】
パケット送信部１０３は、第１バス１０５を介して、ＣＰＵ  １０１やＤＭＡＣ＿Ａ  １０２からバスリクエストを受信すると処理を開始する。
【００３４】
まず、第１バスリクエスト受信部１０３０がバスリクエストを受信する（Ｓ６０１）。次に、第１バスリクエスト受信部１０３０は、受信したバスリクエストのアドレスが制御対象保持部１０３３のアドレスであるか判定する（Ｓ６０２）。ステップＳ６０２にて、真ならば、制御対象保持部１０３３にバスリクエストに含まれるデータを設定し（Ｓ６０７）、処理を終了する。ステップＳ６０２にて、偽であればバスリクエストをリクエストパケット変換部１０３１に転送し、ステップＳ６０３に進む。
【００３５】
次に、パケットフォーマット決定部１０３２が、バスリクエストに含まれるマスタＩＤが制御対象保持部１０３３に保持している情報と一致するかどうかを判定する（Ｓ６０３）。ステップＳ６０３の判定において、一致すれば、リクエストパケット変換部１０３１は、受信したバスリクエストを第２のパケットフォーマットのパケットに変換する（Ｓ６０４）。例えば、リクエストパケット変換部１０３１は、ＤＭＡＣ＿Ａ  １０２からのバスリクエストを第２のパケットフォーマットのパケットに変換する。
【００３６】
一方、ステップＳ６０３の判定において、一致しなければ、リクエストパケット変換部１０３１は、受信したバスリクエストを第１のパケットフォーマットに従ったパケットに変換する（Ｓ６０５）。例えば、リクエストパケット変換部１０３１は、ＣＰＵ  １０１からのバスリクエストを第１のパケットフォーマットに従ったパケットに変換する。
【００３７】
さらに、リクエストパケット送信部１０３４がリスエスとパケット変換部１０３１により変換されたパケットをパラレル−シリアル変換し、シリアルバス３００へ送信する（Ｓ６０６）。
【００３８】
次に、パケット受信部２０１について説明する。リクエストパケット受信部２０１０はシリアルバス３００を介してＡＳＩＣ＿Ａ  １００から送信された、シリアルデータを受信し、シリアル−パラレル変換する。シリアル―パラレル変換は、３２Ｂｉｔ単位のキャラクタごと行われる。まず、リクエストパケット受信部２０１０は、２Ｂｉｔのスタートビットの認識を行い、２Ｂｉｔのスタートビットに続くシリアルデータを３２Ｂｉｔ毎にパラレルデータへ変換し複数の３２Ｂｉｔのキャラクタを含むパケットを生成する。リクエストパケット受信部２０１０によって生成されたパケットはリクエストパケット逆変換部２０１１に転送される。
【００３９】
リクエストパケット逆変換部２０１１は、リクエストパケット受信部２０１０からのリクエストパケットに含まれる、転送の種類を示す識別子（Ｔｙｐｅ）に応じて、受信したパケットを第２バスに従った形式へ変換する。第１バスと第２バスの形式は異なっていてもよいが、ここでは説明の簡便のため、第２バスのリクエスト形式は第１バスのリクエスト形式と同じものとする。
【００４０】
リクエストパケット逆変換部２０１１は、受信したパケットに含まれる、転送の種類を示す識別子が、第１のパケットフォーマットを示しているならば、受信したパケットからアドレス（Ａｄｄｒ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を抽出し、第２バスへのリクエスト形式に変換する。一方、受信したパケットに含まれる識別子が第２のパケットフォーマットを示しているならば、リクエストパケット逆変換部２０１１はアドレス生成部２０１２へデータを要求し、アドレス（Ａｄｄｒ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を受け取り、第２バスへのリクエスト形式に変換する。
【００４１】
アドレス制御情報保持部２０１３は、アドレス生成に必要な情報を保持しているレジスタである。本実施形態ではＤＭＡＣ＿Ａ  １０２がＤＲＡＭ＿Ｂ  ２０５に対して図７に示す２次元の画像データの転送を行うものとする。転送のスタートアドレスをＳＡ、Ｘ方向のデータ転送回数をＮＵＭ＿Ｘ回、Ｙ方向のライン数をＮＵＭ＿Ｙ、Ｙ方向に１進むときのオフセットアドレスをＯＦＳＴとする。なお、ＤＭＡＣ＿Ａは１回のデータ転送で３２ｂｙｔｅのデータを転送するものとする。
【００４２】
アドレス制御情報保持部２０１３は、ＳＡ、ＮＵＭ＿Ｘ、ＮＵＭ＿Ｙ、ＯＦＳＴの値や、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）及びストローブ（Ｗｔｒｂ）を保持している。また、レジスタには予めアドレスが割り当てられており、ＣＰＵ等が事前に設定するものとする。本実施形態では、ＡＳＩＣ＿Ｂ２００内部にＣＰＵを備えないので、あらかじめＡＳＩＣ＿Ａ１００内部のＣＰＵ  １０１がアドレス制御情報部２０１３のレジスタを設定する。例えば、ＡＳＩＣ＿Ａ１００内部のＣＰＵ  １０１がアドレス制御情報部２０１３のレジスタを設定するためのバスリクエストを発行し、このバスリクエストは第１のパケットフォーマットに従ったパケットでＡＳＩＣ＿Ａ１００からＡＳＩＣ＿Ｂ２００に伝達されてリクエストパケット受信部２０１０などによって設定される。
【００４３】
アドレス生成部２０１２は、第２のパケットフォーマットを第２バスへのリクエスト形式に変換するときに使用するアドレス（Ａｄｄｒｅｓｓ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）、ストローブ（Ｗｔｒｂ）を、アドレス制御情報保持部２０１３に保持されている情報に基づいて生成する。
【００４４】
本実施形態では、アドレス生成部２０１２は、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）及びストローブ（Ｗｔｒｂ）としてアドレス制御情報保持部２０１３に保持されている情報をそのまま転送する。また、アドレス生成部２０１２は中間アドレス（Ｎｅｘｔ  Ａｄｄｒｅｓｓ）を保持する中間アドレスレジスタ（不図示）を備える。
【００４５】
アドレス（Ａｄｄｒｅｓｓ）及びストローブ（Ｗｔｒｂ）は、図８のフローチャートに示す処理によって生成する。本実施形態では、ＣＰＵ  １０１などによってアドレス制御情報保持部２０１３にスタートアドレス（ＳＡ）などのデータが設定されると、アドレス生成部２０１２が図８のアドレス生成処理を開始する（詳細は後述する）。
【００４６】
第２バスリクエスト送信部２０１４は、第２バスへのリクエスト形式に変換されたリクエストを省電力制御モジュール２０２、又は、ＤＲＡＭコントローラＢ  ２０３へ第２バス  ２０４を介して送信する。
【００４７】
図８はアドレス生成部によるアドレス生成処理を示す。
【００４８】
まず、アドレス生成部２０１２はＳＡをアドレス制御情報保持部２０１３から中間アドレスレジスタにロードする（Ｓ８０１）。さらに、アドレス生成部２０１２はＸ方向のデータ転送回数ＮＵＭ＿ＸおよびＹ方向のライン数ＮＵＭ＿Ｙをアドレス制御情報保持部２０１３からロードし、繰り返し処理の回数（ループ回数）として設定する（Ｓ８０２、Ｓ８０３）。
【００４９】
次に、アドレス生成部２０１２はリクエストパケット逆変換部２０１１からのリクエスト生成要求を待つ（Ｓ８０４）。クエストパケット逆変換部２０１１からの要求がくれば、アドレス生成部２０１２は第２バスへのリクエストアドレス（Ａｄｄｒｒｅｓｓ）として中間アドレスレジスタの保持するアドレスを出力し、さらに中間アドレスレジスタの保持するアドレスに１回のデータ転送量（ここでは３２）を加算する（Ｓ８０５）。
【００５０】
アドレス生成部２０１２はステップＳ８０４、Ｓ８０５の処理をＮＵＭ＿Ｘ回繰り返した後に、中間アドレスレジスタの保持するアドレスにＯＦＳＴを加算する（Ｓ８０６）。アドレス生成部２０１２によるステップＳ８０２〜Ｓ８０６の処理はＹ方向のライン数が増加する毎に行われ、ＮＵＭ＿Ｙ回繰り返された後に、処理を終了する。アドレス制御情報保持部２０１３には、一般的なＤＭＡＣに設定する他の情報（アドレス増分など）を保持するレジスタを設けてもよい。
【００５１】
図９はパケット受信部２０１による処理のフローチャートを示す。
【００５２】
パケット受信部２０１は、シリアルバス３００を介してＡＳＩＣ＿Ａ  １００から送信されたキャラクタ単位のシリアルデータを受信すると処理を開始する。
【００５３】
リクエストパケット受信部２０１０がシリアルデータをキャラクタ毎にパラレルデータに変換しパケットへ変換する（Ｓ９０１）。リクエストパケット逆変換部２０１１がパケットヘッダー内の識別子（ＴＹＰＥ）を解析し、最上位ビットが“１”、つまり第２のパケットフォーマットに従ったパケットであるかどうかを判定する（Ｓ９０２）。
【００５４】
リクエストパケット逆変換部２０１１の受信したパケットが、第２のパケットフォーマットに従ったパケットである（Ｓ９０２で真）ならば、リクエストパケット逆変換部２０１１は、アドレス生成部２０１２にアドレスを要求する（Ｓ９０３）。そして、アドレス生成部２０１２により生成したアドレスをリクエストパケット逆変換部２０１１が第２バスのリクエストアドレスとしてパケットに格納する（Ｓ９０４）。
【００５５】
一方で、リクエストパケット逆変換部２０１１の受信したパケットが、第２のパケットフォーマットに従ったパケットでない（Ｓ９０２で偽）ならば、リクエストパケット逆変換部２０１１は、リクエストパケット受信部２０１０から受信したパケットにふくまれているアドレスを第２バスのリクエストアドレスとしてパケットに含める（Ｓ９０５）。そして、第２バスリクエスト送信部２０１４がリクエストパケット逆変換部２０１１から転送されるパケットを第２バスへ送信する（Ｓ９０６）。
【００５６】
以上説明したように、本発明のデータ転送装置によれば、インターフェース上に複数のバスマスタのトランザクションが混在しても、パケット送信部１０３でバスリクエストに付加されたマスタＩＤがＤＭＡＣ＿Ａ  １０２であるときにパケットのアドレス及び転送属性情報の付加を省略した第２のパケットフォーマットに従ったパケットを転送するように制御するため、シリアルバス３００の転送効率が向上する。
【００５７】
また、パケット送信部１０３は第１バスからリクエストトランザクションの受信に応じて処理を開始する様に構成しているので、データバッファの容量が小さくてすむ。
【００５８】
本実施形態では、制御対象保持部１０３３にマスタＩＤを保持し、バスリクエストに付加されたマスタＩＤに応じてパケットフォーマットを決定する例を開示したが、制御対象保持部にアドレス領域の情報を保持し、バスリクエストに付加された転送先アドレス領域に応じてパケットフォーマットを決定してもよい。具体的には、転送先アドレスがＩＯ領域、すなわち省電力制御モジュール２０２（又はＤＲＡＭ＿Ｂ  ２０５以外）のとき第１のパケットフォーマット、前記領域でないとき、すなわち、ＤＲＡＭ＿Ｂ  ２０５のメモリ領域のとき第２のパケットフォーマットと決定してもよい。さらに、本実施形態では２次元の転送を例に挙げたが、アドレス生成部２０１２にアドレスを生成できる設定をすることができれば転送方式に依らず本発明を適用できる。例えば、ｎ次元（ｎは１以上の整数）の転送であれば、ｎ個のループ回数を保持するレジスタやカウンタを設ければよい。
【００５９】
また、送信側データ転送装置１００から複数色のプリントデータを転送する構成においては、パケット内の識別子に転送元のマスタＩＤを示すフィールドを拡張すればよい。
【００６０】
例えば、送信側データ転送装置１００内部に色数に対応した数のＤＭＡＣを備え、各々のＤＭＡＣが各色を転送する構成について、送信側データ転送装置１００内部に、前記複数のＤＭＡＣに対応する複数の制御対象保持部１０３３を備え、それぞれのマスタＩＤを設定する。パケットフォーマット決定部１０３２は前記複数の制御対象保持部１０３３に保持されている情報を参照し、第１のパケットフォーマットか、第２のパケットフォーマットかを決定する。リクエストパケット変換部１０３１は、第２のパケットフォーマットへのパケット変換時に、パケット内の識別子に転送元のマスタＩＤを付加する。
【００６１】
また、受信側データ転送装置２００内部に、前記複数のＤＭＡＣに対応する複数のアドレス生成部２０１２、及びアドレス制御情報保持部２０１３を備え、それぞれのアドレス制御情報を設定する。リクエストパケット逆変換部２０１１は、パケット内の識別子が第２のパケットフォーマットを示しているならば、識別子の転送元のマスタＩＤに応じて、複数のアドレス生成部２０１２の内の１つから、アドレス及び転送属性情報を受け取り、第２バスへのリクエスト形式に変換する。
【００６２】
以上のように、パケット送信部１０３でバスリクエストに付加されたマスタＩＤがＤＭＡＣであるときに各ＤＭＡＣに対応させてパケットのアドレス及び転送属性情報を圧縮した第２のパケットフォーマットに従ったパケットを転送し、転送効率を向上させられる。
【００６３】
また、受信側データ転送装置の内部にＩＯデバイスとＤＲＡＭ間の転送を行うためのＤＭＡＣを備えていれば、このＤＭＡＣのアドレス生成機能を第２のパケットフォーマットのパケット受信に利用することができる。
【００６４】
図１０はＡＳＩＣ＿Ａ  １００とＡＳＩＣ＿Ｃ  ４００がシリアルバス３００で接続されているシステムの構成を示す。
【００６５】
ＡＳＩＣ＿Ｃ  ４００はＡＳＩＣ＿Ｂ  ２００にバスマスタとしてＤＭＡＣ＿Ｃ  ４０２が搭載されている。ＤＭＡＣ＿Ｃ  ４０２はＩＯデバイスコントローラ４０３、及びパケット受信部４０１とＤＲＡＭコントローラＢ２０３との間のデータ転送を行う。ＩＯデバイスコントローラ４０３はＩＯデバイスインターフェース４０５を介してＩＯデバイス４０４との間でデータ転送を行う。
【００６６】
図１１は本実施形態の転送方式を実現するためのパケット受信部４０１の構成図である。
【００６７】
リクエストパケット逆変換部４０１０は、転送の種類を示す識別子（Ｔｙｐｅ）によってパケットから第２バスへのリクエスト形式への変換を行う。第２バスのリクエスト形式は第１バスのリクエスト形式と同じものとする。パケットの種類を示す識別子が、第１のパケットフォーマットを示しているならば、受信したパケットからアドレス（Ａｄｄｒ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を抽出し、第２バスへのリクエスト形式に変換する。一方、識別子が第２のパケットフォーマットを示しているならば、ＤＭＡＣ＿Ｃ  ４０２にデータを転送する。
【００６８】
ＤＭＡＣ＿Ｃ  ４０２は、一次元転送、及び２次元転送が可能なＤＭＡＣであり、ＩＯデバイスコントローラ４０３とＤＲＡＭコントローラＢ２０３間は一次元データを転送、パケット受信部４０１とＤＲＡＭコントローラＢ２０３間は２次元データを転送するとする。内部にアドレス生成部、及びアドレス制御情報保持部を備える。アドレス制御情報保持部には、２次元転送用に、転送のスタートアドレスをＳＡ、Ｘ方向のデータ転送回数をＮＵＭ＿Ｘ回、Ｙ方向のライン数をＮＵＭ＿Ｙ、Ｙ方向に１進むときのオフセットアドレスをＯＦＳＴの情報をレジスタに保持し、図７の２次元転送を行うものとする。図２のアドレス制御情報保持部２０１３と同様に、レジスタにはアドレスが割り当てられており、ＣＰＵ等が事前に設定するものとする。ＤＭＡＣ＿Ｃ  ４０２のチャネルが１チャネルの場合はＩＯデバイスコントローラ４０３の転送と、パケット受信部４０１の転送を、排他的に実行する。一方で、ＤＭＡＣ＿Ｃ  ４０２が複数チャネルの場合は各チャネルの転送を並行して実行する。
【００６９】
図１２にパケット受信部４０１のフローチャートを示す。
【００７０】
パケット受信部４０１は、シリアルバス３００を介してＡＳＩＣ＿Ａ  １００から送信されたキャラクタを受信すると処理を開始する。
【００７１】
リクエストパケット受信部２０１０がキャラクタをパケットに変換する（Ｓ１２０１）。リクエストパケット逆変換部４０１０がパケットヘッダー内の識別子ＴＹＰＥを解析し、最上位ビットが“１”、つまり第２のパケットフォーマットのパケットであるか判定する（Ｓ１２０２）。前記判定にて、真ならば、リクエストパケット逆変換部４０１０は、ＤＭＡＣ＿Ｃ  ４０２にデータを転送して処理を終了する（Ｓ１２０３）。前記判定にて、偽ならば、リクエストパケット逆変換部４０１０は、受信したパケット内のアドレスを第２バスのリクエストアドレスとする（Ｓ１２０４）。その後、第２バスリクエスト送信部２０１４が第２バスへリクエストを送信する（Ｓ１２０５）。
【００７２】
以上説明したように、本発明のデータ転送装置によれば、実施形態１と同様の効果が得られると共に、第２のパケットフォーマットのアドレス生成に既存のＤＭＡＣを兼用することで、回路規模を削減することができる。
【００７３】
上述の実施形態の説明ではチップ間のバス３００にシリアルバスを用いた例を説明したが、シリアルバスでもパラレルバスでも本発明を適用できる。例えば、（パケットの幅でパラレル転送を行う形態：  Ｎｅｔｗｏｒｋ  Ｏｎ  Ｃｈｉｐなど）でもよいし、無線通信などの様々な物理的な転送形態を用いても本発明は適用できる。すなわち、論理層でデータをパケット化するデータ転送について高い効果を発揮し、物理層の形態にはとらわれない。
【００７４】
また、上述の実施形態では、集積回路間（チップ間、モジュール間）におけるデータ転送について説明したが、本発明は同一集積回路（同一チップ、同一モジュール）内におけるデータ転送にも適用することもできる。
【００７５】
ただし、チップ間の転送は、チップ内の転送に比べて、データを転送する能力が低く、システムのボトルネックとなる可能性が高い。チップ内の転送では、「属性情報」「アドレス」「データ」についてそれぞれに物理的に信号線が存在し、同時・並列的に転送することができる。一方、チップ間の転送では、製品のコストを下げようとすると共通の信号線を利用してすることになり（チップのＩＯピンはコスト上昇を招くため）、時系列に転送するので、上述の実施形態による転送効率の向上はチップ内転送に比べて顕著である。
【００７６】
また、第１バス、第２バスのプロトコルはＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）やＯＣＰ（Ｏｐｅｎ  Ｃｏｒｅ  Ｐｒｏｔｏｃｏｌ）でもよいし、第１バスと第２バスとで異なるプロトコルを用いてもよい。
【図１】
0005865067.tif 000002
【図２】
0005865067.tif 000003
【図３】
0005865067.tif 000004
【図４】
0005865067.tif 000005
【図５】
0005865067.tif 000006
【図６】
0005865067.tif 000007
【図７】
0005865067.tif 000008
【図８】
0005865067.tif 000009
【図９】
0005865067.tif 000010
【図１０】
0005865067.tif 000011
【図１１】
0005865067.tif 000012
【図１２】
0005865067.tif 000013
【図１３】
0005865067.tif 000014
【図１４】
0005865067.tif 000015