(57)【特許請求の範囲】
【請求項１】
集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、
前記受信手段により受信された複数の転送要求を保持する第１保持手段と、
属性情報の組合せを第１識別子と対応づけて保持する第２保持手段と、
前記第１保持手段が保持している転送要求のうち、前記第２保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求を優先するように並び替えて送信する送信手段とを有し、
前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか２つの属性の組合せであり、前記送信手段は、前記第１保持手段が保持している複数の転送要求のうち優先して送信する転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第１識別子を前記転送要求の属性情報の組合せの代わりに送信することを特徴とするデータ転送装置。
【請求項２】
前記送信手段は、前記第１識別子を含めたか否かを示す第２識別子を転送要求に付加して送信することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記送信手段は、前記第１識別子を含めずに転送要求を送信した場合に、当該転送要求に含まれる属性情報を前記第２保持手段に保持させることを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、
前記受信手段により受信された複数の転送要求を保持する第１保持手段と、
属性情報の組合せを第１識別子と対応づけて保持する第２保持手段と、
を備えるデータ転送装置によるデータ転送方法であって、
前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか２つの属性の組合せであり、
前記第１保持手段が保持している転送要求のうち、前記第２保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第１識別子を前記転送要求の属性情報の組合せの代わりに含めて優先的に送信するように並び替えて送信することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを使用してデータ転送を行うデータ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
パケットを使用してデータ転送を行う技術が様々な分野に適用されている。ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）はインターネット上のデータ転送をパケットベースで行う技術である。また、ＰＣＩ  ＥＸＰＲＥＳＳ（登録商標）は集積回路間のデータ転送をパケットベースで行う技術である。また、ＮｏＣ（Ｎｅｔｗｏｒｋ  Ｏｎ  Ｃｈｉｐ）は集積回路内のデータ転送をパケットベースで行う技術である。パケットベースでデータ転送を行うメリットは、アドレスやデータ等の転送に必要な様々な情報を少ない信号線で転送できることにある。例えば、ＰＣＩ  Ｅｘｐｒｅｓｓでは、２対の差動線路のみで、データ転送を行うことができる。また、転送レートを上げやすいというメリットがある。しかし、パケットベースの転送方式においては、様々な情報を時間軸上に展開して送信するため、非パケットベースの転送方式に比べて転送に要するサイクル数が多いという問題点がある。そのため、パケット構造を工夫し、必要最低限の情報のみを転送することで、転送に要するサイクル数を減らし、転送効率を上げる技術が提案されている。例として、非特許文献１に開示されているＲＦＣ１１４４に規定されているＶ．Ｊａｃｏｂｓｏｎのヘッダー圧縮方式がある。Ｖ．Ｊａｃｏｂｓｏｎのヘッダー圧縮方式では、直前の転送のパケットとこれから転送を行おうとしているパケットとの比較を行い、差分のあった情報だけを転送することで、パケットを圧縮し転送効率の向上を図っている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＲＦＣ  １１４４  Ｃｏｍｐｒｅｓｓｉｎｇ  ＴＣＰ／ＩＰ  Ｈｅａｄｅｒｓ  Ｆｅｂｒｕａｒｙ  １９９０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１のような従来技術では、直前の転送制御内容との差分しか考慮されないために、直前の転送制御内容とだけ差分が大きくそれ以前の転送制御内容との差分が小さい転送について、パケットが効率良く圧縮されず、転送効率が上がらないという課題がある。
【課題を解決するための手段】
【０００５】
本発明に係るデータ転送装置は、集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、前記受信手段により受信された複数の転送要求を保持する第１保持手段と、属性情報の組合せを第１識別子と対応付けて保持する第２保持手段と、前記第１保持手段が保持している転送要求のうち、前記第２保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求を優先するように並び替えて送信する送信手段とを有し、前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか２つの属性の組合せであり、前記送信手段は、前記第１保持手段から優先して送信する転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第１識別子を前記転送要求の属性情報の組合せの代わりに送信することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、複数の転送制御内容との差分を考慮してパケットを圧縮することができ、効率良くパケットを圧縮し転送効率を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】システムの構成を示す。
【図２】本発明の一実施形態におけるバスブリッジの構成を示す。
【図３】パケットのフォーマットを示す。
【図４】本発明の一実施形態におけるパケット識別子を示す。
【図５】シリアルバスのフォーマットを示す。
【図６】従来例及び本発明の第一実施形態におけるタイミングチャートを示す。
【図７】チップ間通信システムの構成を示す概略図である。
【図８】ＡＸＩバスプロトコルを示す図である。
【図９】履歴保持部が保持するテーブルを示す。
【発明を実施するための形態】
【０００８】
＜実施形態１＞
以下、図面を参照しながら本発明の実施形態１について詳細に説明する。
【０００９】
図７は、本発明の実施形態１のデータ転送装置を備えるチップ間通信システムの構成例を示す。ＣＰＵ９０１、ＲＯＭ９０２、ＲＡＭ９０３は第１バス９０９に接続され、ＰＣＩ９０６、ＵＳＢ９０７、ＩＤＥ９０８は第２バス９１０に接続されている。そして第１バス９０９と第２バス９１０はブリッジ９０４とブリッジ９０５を介して接続されている。この構成は汎用のコンピュータにおける２チップセットの構成で代表的な構成であり、ブリッジ９０４を備えるチップとブリッジ９０５を備えるチップとを備える。
【００１０】
ＣＰＵ９０１はＲＯＭ９０２のプログラムをＲＡＭ９０３に展開し、ＲＡＭからプログラムを読み込んで実行する。第２バスに接続されているＰＣＩ９０６、ＵＳＢ９０７、ＩＤＥ９０８は各種周辺機器（不図示）との接続を制御する制御部である。
【００１１】
ブリッジ９０４はＣＰＵ又はＤＭＡＣ（不図示）によって第１バス９０９のプロトコルに従って送信されるデータ転送要求（リードリクエスト、ライトリクエスト等）を、チップ間接続によってブリッジ９０５へ転送する。なお、ライトリクエストの際はＲＡＭ９０３のデータや不図示のレジスタの値などを包含している。ブリッジ９０５はブリッジ９０４から取得したデータを第２バス９１０のプロトコルに従って、各種周辺回路に転送する。また、データ転送要求は転送対象のデータの転送に用いるデータ伝達方式の種類（バースト長、排他属性、セキュリティ情報、キャッシュ利用の有無）を示す属性情報を含む。例えば、ＣＰＵ又はＤＭＡＣ（不図示）からＰＣＩ９０６、ＵＳＢ９０７、ＩＤＥ９０８へのリードアクセスで読み出すデータ（リスポンス時）やライトアクセスで書込むデータをこの属性情報の示すデータ転送の種類で転送する。
【００１２】
ここで、リクエストに対するリスポンス（リードデータ、リクエスト完了通知等）は、リクエストの送り先からリクエスト送信元へ伝達される。その場合はブリッジ９０５とブリッジ９０４を通過し、リクエストの場合と逆のプロトコル変換をなされるので説明は省略する。
【００１３】
図１はＡＳＩＣ＿Ａ１００とＡＳＩＣ＿Ｂ２００がシリアルバス３００で接続されているシステムの構成を示す。（ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。）シリアルバス３００上では、パケットによるデータ転送が行われる。ＡＳＩＣ＿Ａ１００は第１バスマスタＡ１０１、第１バスマスタＢ１０２、第１ブリッジ１０３、ＤＲＡＭコントローラＡ１０４を有しており、各モジュールは、第１バス１０５によって接続されている。第１バス１０５は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。
【００１４】
第１バスマスタＡ１０１及び第１バスマスタＢ１０２は第１バス１０５を介して、第１ブリッジ１０３とＤＲＡＭコントローラＡ１０４との間でデータ転送を行う。ＤＲＡＭコントローラＡ１０４はＤＲＡＭ  Ｉ／Ｆ  Ａ１０７を介してＤＲＡＭ＿Ａ１０６との間でデータ転送を行う。第１ブリッジ１０３は第１バス１０５からの転送をシリアルバス３００の転送に変換して、接続先のＡＳＩＣ＿Ｂ２００内の第２ブリッジ２０３へ転送を行う。一方、ＡＳＩＣ＿Ｂ２００は第２バスマスタＡ２０１、第２バスマスタＢ２０２、第２ブリッジ２０３、ＤＲＡＭコントローラＢ２０４を有しており、各モジュールは、第２バス２０５によって接続されている。第２バス２０５は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。
【００１５】
第２ブリッジ２０３はシリアルバス３００からの転送を第２バスの転送に変換して、第２バスを介してＤＲＡＭコントローラＢ  ２０４に転送する。第２バスマスタＡ  ２０１及び第２バスマスタ  Ｂ２０２は第２バス  ２０５を介して、ＤＲＡＭコントローラＢ  ２０４との間でデータ転送を行う。ＤＲＡＭコントローラＢ２０４はＤＲＡＭ＿Ｉ／Ｆ＿Ｂ  ２０７を介してＤＲＡＭ＿Ｂ  ２０６との間でデータ転送を行う。なお、第１バスマスタＡ・Ｂや第２バスマスタＡ・Ｂは図７に示すＣＰＵ９０１や、各種周辺機器との接続を制御するＰＣＩ９０６、ＵＳＢ９０７、ＩＤＥ９０８、また不図示のＤＭＡＣなどバスマスタとしてリクエストを出力する構成であればよい。
【００１６】
図２は本実施形態の転送方式を実現するための第１ブリッジ１０３及び第２ブリッジ２０３の構成図である。以下にブリッジのそれぞれの処理について説明する。
【００１７】
〔リクエスト送信処理〕
まず、第１ブリッジ１０３によるデータ転送要求（ライトリクエスト、リードリクエスト等、以下単にリクエストと称す）の送信処理について説明する。第１バスリクエスト受信部１０３０は第１バス  １０５を介して、第１バスマスタＡ  １０１や第１バスマスタＢ  １０２からのリクエストを受信する。リクエストは、転送先のアドレス（Ａｄｄｒｅｓｓ）、Ｗｒｉｔｅ転送かＲｅａｄ転送かを示すフラグ、書き込みデータ（Ｗｄａｔａ）、ストローブ（Ｗｓｔｒｂ）及び転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を有する。
【００１８】
転送属性情報（ＲｅｑＡｔｒｂ  ０／１）は、転送長や転送の優先度等の転送の種類を示す情報を含んでいる。リクエスト送信要求保持部１０３６（第１保持手段）には、第１バスリクエスト受信部１０３０が第１バスから受信し、リクエストパケット変換部１０３１によりパケットに変換される前の転送情報（転送制御内容）を複数保持することが可能である。なお、本実施形態ではリクエスト送信要求保持部１０３６（および後述のレスポンス要求保持部２０３７）はＦＩＦＯキュー（以降、単にキューと称す）を備えており、リクエストパケット変換部１０３１により複数の転送要求を受け付けた順序が識別可能な構成になっている。また、転送情報は転送属性を含むものが例に挙げられるが、以降の説明では簡便のため転送属性を転送情報として扱って説明する。
【００１９】
ここで、リクエストパケット変換部１０３１はキューの任意の段から転送情報を取得しパケット化できる構成となっている。また、リクエスト送信履歴保持部１０３７（第２保持手段）には、直前に送信したパケットの転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が保持される。リクエストパケット変換部１０３１は、受信したリクエストを１つ以上のパケットに変換する。
【００２０】
ここで、リクエストパケット変換部１０３１が変換したパケットを図３（ａ）及び図３（ｂ）に示す。パケットはヘッダー部（以降、単にヘッダーと称す）及びデータ部（以降、簡便のためにデータと称す。なお、厳密にはデータ部はデータを格納するフィールドとして用意されているだけであって、データそのものではないこともある。）によって構成される。ヘッダー及びデータ共に複数の所定長（３２Ｂｉｔ）のキャラクタによって構成される。ヘッダーは、パケットの種類を示す識別子（Ｔｙｐｅ）や転送属性情報（ＲｅｑＡｔｒｂ  ０／１）や転送先のアドレス（Ａｄｄｒｅｓｓ）を有する。また、データは書き込みデータ（Ｗｄａｔａ）やストローブ（Ｗｓｔｒｂ）によって構成され、Ｗｒｉｔｅ転送時に生成される。
【００２１】
以下、リクエストパケット変換部１０３１におけるパケット変換処理について詳細に説明する。リクエストパケット変換部１０３１は、第１バスからのリクエストをパケットに変換する。その際に、リクエストパケット変換部１０３１は、リクエスト送信要求保持部１０３６に保持されている各転送の転送属性情報（ＲｅｑＡｔｒｂ  ０／１）とリクエスト送信履歴保持部１０３７に保持されている転送属性情報（ＲｅｑＡｔｒｂ  ０／１）とを比較する。
【００２２】
比較した結果、リクエスト要求保持部１０３６に保持されている転送属性情報についてリクエスト送信履歴保持部１０３７に保持している転送属性情報（ＲｅｑＡｔｒｂ  ０／１）と一致するものがなければ、リクエストパケット変換部１０３１はリクエスト送信要求保持部１０３６に保持している転送要求をＦＩＦＯ順にパケットに変換する。この際、図３（ａ）に示すように転送属性情報（ＲｅｑＡｔｒｂ  ０／１）がパケットに付加される。この時の識別子は転送属性情報（ＲｅｑＡｔｒｂ  ０／１）がそのまま付加されていることを示す識別子となり、Ｒｅａｄ転送であれば“０００００”、Ｗｒｉｔｅ転送であれば“０１０００”となる。なお、１〜３ビット目がリクエスト送信履歴と一致したことを示す第１識別子に相当し、４ビット目がリードであるかライトであるかを示し、５ビット目が第１識別子を付加しているか否かを示す第２識別子に相当する。また、リクエスト送信履歴保持部１０３７の転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を更新する。
【００２３】
一方でリクエストパケット変換部１０３１はが比較した結果、リクエスト要求保持部１０３６に保持されている転送属性情報についてリクエスト送信履歴保持部１０３７に保持している転送属性情報（ＲｅｑＡｔｒｂ  ０／１）と一致するものが存在した場合、リクエストパケット変換部１０３１は一致した転送情報のうち、最先で受け付けた転送要求の転送情報をパケットに変換する。この際、図３（ｂ）に示すように転送属性情報（ＲｅｑＡｔｒｂ  ０／１）をパケットに付加しない代わりに、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が付加されていないことを示す識別子を付加する。識別子は、例えば、Ｒｅａｄ転送であれば“１００００”、Ｗｒｉｔｅ転送であれば“１１０００”となる。本実施形態のリクエストパケット変換部１０３１は直前に送信したパケットの転送属性情報（ＲｅｑＡｔｒｂ  ０／１）と一致する転送を優先的にパケットに変換して送信するように制御する。
【００２４】
リクエスト送信要求保持部１０３６に２つの転送情報が存在し、第１バス１０５から最初に受信した転送情報についての比較が不一致であり、二番目に受信した転送情報についての比較は一致した場合、リクエストパケット変換部１０３１は二番目に受信した転送情報を優先してパケットに変換する。そのため、第一バスから受信した順番に従ってパケットに変換する場合に比べて、１キャラクタ少ないパケットとなる。リクエストパケット送信部１０３２は、パケットに変換されたリクエストをパラレルーシリアル変換し、シリアルバス３００へ送信する。なお、識別子のビット数は転送属性情報のビット数よりも小さいことが好ましい。
【００２５】
パラレル―シリアル変換の例を図５に示す。図５において“Ｎ”は非転送期間（ＮＯＰ）を示し、“Ｓ”はスタートビットを示す。また、数字はキャラクタ内のＢｉｔ位置を示す。パラレル―シリアル変換は、３２Ｂｉｔ単位のキャラクタごと行われる。３２Ｂｉｔ単位のキャラクタにキャラクタの先頭を示す２Ｂｉｔのスタートビットが付加され、まず、２Ｂｉｔのスタートビットが送信される。その後３２Ｂｉｔ単位のキャラクタの最上位Ｂｉｔから順に１Ｂｉｔずつ送信が行われる。パラレル―シリアル変換されたキャラクタはクロックとともにシリアルバス３００を介して、受信側のＡＳＩＣ＿Ｂ  ２００に送信される。
【００２６】
〔リクエスト受信処理〕
続いて、第２ブリッジ２０３によるリクエストの受信処理について説明する。リクエストパケット受信部２０３０はシリアルバス３００を介してＡＳＩＣ＿Ａ  １００から送信された、キャラクタを受信し、シリアル―パラレル変換する。シリアル―パラレル変換は、３２Ｂｉｔ単位のキャラクタごと行われる。まず、２Ｂｉｔのスタートビットの認識を行う。２Ｂｉｔのスタートビットが認識されたならば、後続の３２Ｂｉｔのシリアルデータを受信しパラレルデータに変換し３２Ｂｉｔのキャラクタを生成し、複数の３２Ｂｉｔのキャラクタによってパケットを生成する。
【００２７】
リクエスト受信履歴保持部２０３６には、直前に受信したパケットの転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が保持される。リクエストパケット逆変換部２０３１は、転送の種類を示す識別子（Ｔｙｐｅ）によってパケットから第２バスへのリクエスト形式への変換を行う。
【００２８】
パケットの識別子が、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が付加されていることを示しているならば、受信したパケットから転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を抽出し、第２バスへのリクエスト形式に変換する。そして、抽出した転送属性情報（ＲｅｑＡｔｒｂ  ０／１）をリクエスト受信履歴保持部２０３６に保持する。
【００２９】
一方、パケットの種類を示す識別子が、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が付加されていないことを示しているならば、直前に受信したパケットの転送属性情報（ＲｅｑＡｔｒｂ  ０／１）を参照して、第２バスへのリクエスト形式に変換する。第２バスリクエスト送信部２０３２は、第２バスへのリクエスト形式に変換されたリクエストをＤＲＡＭコントローラＢ  ２０４へ第２バス  ２０５を介して送信する。
【００３０】
〔レスポンス送信処理〕
続いて、第２ブリッジ２０３によるレスポンスの送信処理について説明する。第２バスレスポンス受信部２０３３は第２バス  ２０５を介して、ＤＲＡＭコントローラＢ  ２０４からのレスポンスを受信する。レスポンスは、エラーか否かを示すステータス情報（ＲｅｓｐＳｔ）、読み出しデータ（Ｒｄａｔａ）、及び転送長や転送のプライオリティーを示す転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）によって構成される。
【００３１】
レスポンス送信要求保持部２０３７には、第２バスレスポンス受信部２０３３が第２バスから受信し、レスポンスパケット変換部２０３４によりパケットに変換される前の転送が少なくとも２個以上保持することが可能である。また、レスポンス送信履歴保持部２０３８には、直前に送信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が保持される。レスポンスパケット変換部２０３４は、第２バス  ２０５からのレスポンスをパケットに変換する。その際に、レスポンス送信要求保持部２０３７に保持されている各転送の転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）とレスポンス送信履歴保持部２０３８に保持されている直前に送信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）を比較する。
【００３２】
比較した結果、直前に送信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）と一致する転送が存在しない場合、レスポンスパケット変換部２０３４はレスポンス送信要求保持部２０３７に保持される最も古い転送をパケットに変換する。この際、図３（ｃ）に示すように転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）がパケットに付加される。この時の転送の識別子は転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が付加されていることを示す識別子となり、Ｒｅａｄ転送であれば“００１００”、Ｗｒｉｔｅ転送であれば“０１１００”となる。また、レスポンス送信履歴保持部２０３８の転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）を更新する。
【００３３】
一方、直前に送信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）と一致する転送がレスポンス送信要求保持部に存在した場合、レスポンスパケット変換部２０３４は一致した転送要求のうち、最も古い転送要求をパケットに変換する。この際、図３（ｄ）に示すように転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）をパケットに付加しない代わりに、転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が付加されていないことを示す識別子を付加する。識別子は、例えば、Ｒｅａｄ転送であれば“１０１００”、Ｗｒｉｔｅ転送であれば“１１１００”となる。本実施形態のレスポンスパケット変換部２０３４は直前に送信したパケットの転送属性情報（ＲｅｑＡｔｒｂ  ０／１）と一致する転送を優先してパケットに変換する。
【００３４】
レスポンス送信要求保持部２０３７に２つの転送情報が存在し、第２バス２０５から最初に受信した転送情報の比較が不一致であり、二番目に受信した転送情報の比較は一致した場合、レスポンスパケット変換部２０３４は二番目に受信した転送情報を優先してパケットに変換する。そのため、第２バス２０５から受信した順番に従ってパケットに変換する場合に比べて、１キャラクタ少ないパケットとなる。レスポンスパケット送信部２０３５は、パケットに変換されたレスポンスをパラレル―シリアル変換し、シリアルバス３００へ送信する。パラレル―シリアル変換の動作は、リクエストパケット送信部１０３２の動作と同じであるため、ここでは説明を省略する。パラレル―シリアル変換されたキャラクタはクロックとともにシリアルバス３００を介して、受信側のＡＳＩＣ＿Ａ  １００に送信される。
【００３５】
〔レスポンス受信処理〕
続いて、第１ブリッジ１０３によるレスポンスの受信処理について説明する。レスポンスパケット受信部１０３３はシリアルバス３００を介してＡＳＩＣ＿Ｂ  ２００から送信された、キャラクタを受信し、シリアル―パラレル変換する。シリアル―パラレル変換の動作は、リクエストパケット受信部２０３０の動作と同じであるため、ここでは説明を省略する。
【００３６】
レスポンス受信履歴保持部１０３８には、直前に受信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が保持される。レスポンスパケット逆変換部１０３４は、転送の種類を示す識別子（Ｔｙｐｅ）によってパケットから第１バス  １０５へのレスポンス形式への変換を行う。パケットの種類を示す識別子が、転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が付加されているパケットを示しているならば、受信したパケットから転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）を抽出し、第１バス  １０５へのレスポンス形式に変換する。また、抽出した転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）をレスポンス受信履歴保持部１０３８に保持する。一方、パケットの種類を示す識別子が、転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）が付加されていないパケットを示している場合、直前に受信したパケットの転送属性情報（ＲｅｓｐＡｔｒｂ  ０／１）を参照して、第１バス  １０５へのレスポンス形式に変換する。第１バスレスポンス送信部１０３５は、第１バス  １０５へのレスポンス形式に変換されたレスポンスを対応するリクエストを発行したマスタへ第１バス  １０５を介して送信する。
【００３７】
〔ＡＸＩ〕
図８は集積回路内で用いられるバスのプロトコルであるＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）バスの制御信号および、アドレス／データ／属性情報を示す。
【００３８】
ＡＸＩバスプロトコルは、５つのチャネルと呼ばれる転送路を有する。各チャネルは、リードのアドレスを運ぶリードアドレスチャネル、ライトのアドレスを運ぶライトアドレスチャネル、リードの応答・データを運ぶリードデータチャネル、ライトのデータを運ぶライトデータチャネル、ライトのレスポンスを運ぶライト応答チャネルである。それぞれのチャネルは転送のやり取り・タイミングを司るＶａｌｉｄ，Ｒｅａｄｙ信号によってハンドシェークを行い、一連の転送の手続きを行う。また、それぞれのチャネルには、データ転送の基本情報となるアドレスやデータ以外に、転送の属性情報として、転送タイプを示すｘＢＵＲＳＴ，転送長を示すｘＬＥＮ、アトミック転送を示すｘＬＯＣ、キャッシュの制御情報を示すｘＣＡＣＨＥ、転送のセキュリティ情報を示すｘＰＲＯＴ、転送のデータ幅のサイズｘＳＩＺＥ、転送の優先度を示すｘＱＯＳ、転送領域区間を示すｘＢＵＲＳＴ、ユーザの任意の情報を運ぶｘＵＳＥＲ信号が規定されている。
【００３９】
〔履歴保持部〕
図９に示すテーブルは各送信履歴保持部（１０３７、２０３８）、受信履歴保持部（２０３６、１０３８）が保持する転送情報（属性情報）の例を示す。図９の例では４つの組合せを保持しているが、上述したように本実施形態の各履歴保持部は属性情報の組合せを少なくとも１つ保持していればよい。
【００４０】
例えば、パケット変換部（１０３１、２０３４）は、送信要求部（１０３６、２０３７）転送要求が受け付けてリクエストパケット変換部１０３１でパケットに変換する転送要求する際に、送信履歴保持部（１０３７、２０３８）に保持されていない属性情報を変換する度に送信履歴保持部（１０３７、２０３８）に属性情報を追加するように構成する。このように構成すると、同様の属性情報を重複して保持しないので効率がよい。また、４つの組合せを保持している状態で新たに属性情報を追加する場合には、一番古いものを削除するように構成すればよい。レスポンス側のレスポンス送信要求保持部２０３７、レスポンスパケット変換部２０３４およびレスポンス送信履歴保持部２０３８も同様に動作するので説明は省略する。なお、リクエストパケット変換部２０３１においてテーブルに属性情報を追加するアルゴリズムをリクエストパケット変換部１０３１のアルゴリズムと統一させておけば、各履歴保持部の保持しているテーブルの一貫性を保つ処理をしなくて済む。
【００４１】
第１バス（ＡＸＩ）、第２バス（ＡＸＩ）の属性情報は、排他制御属性（ＬＯＣＫ）、キャッシュの属性（ＣＡＣＨＥ）、セキュリティ属性（ＰＯＲＴ）、データサイズ（ＳＩＺＥ）、リクエストタイプ（ＢＵＲＳＴ）、送信元（ＩＤ）等を有する。
【００４２】
排他制御属性（ＬＯＣＫ）は、受信装置側でシステムバスを独占的に使用する手続きを行った上で転送を行うか否かを示す。排他制御属性（ＬＯＣＫ）信号として、バスロックを行う転送を行うかどうかを示す“Ｌｏｃｋ”ビットと、システム性能の向上を図るための排他転送を行うかどうかを示す“Ｅｘｃｌｕｓｉｖｅ”ビットと、について各々１ビットで表現している。
【００４３】
キャッシュ属性（ＣＡＣＨＥ）は、受信装置がデータの転送先までの経路において転送内容のバッファリングを許可するか否かを示す。キャッシュ属性（ＣＡＣＨＥ）には４ビット割り当てられ、キャッシュ可能かどうかを示すビット、バッファリングが可能かどうかを示すビット、キャッシュミスした際にＷｒｉｔｅＴｈｒｏｕｇｈ  やＷｒｉｔｅＢａｃｋ  などといったキャッシュシステム自身に指示を出すフィールド（２ビット）がある。
【００４４】
セキュリティ属性は、セキュリティレベルの高いスレーブにデータが受信されるように手続きを行った上で転送を行うか否かを示す。
【００４５】
リクエストタイプ（ＢＵＲＳＴ）は転送のタイプを示し、ＩＮＣＲ（連続アドレス転送）／ＦＩＸＥＤ（アドレス固定）／ＷＲＡＰ（キャッシュミスの際のアドレッシング）の３つを２ビットにエンコードして表現している。
【００４６】
データサイズはデータサイズの示す単位でデータ転送を行うことを示す。例えば、物理的なデータ幅が１２８ビットだとしても、８ｂｉｔ／１６ｂｉｔ／．．／１２８ｂｉｔの様に、どのデータ幅分を転送に使用しているかを示す。なお、説明を簡単にするために送信履歴保持部がテーブルを保持している例について説明しているが、同等の情報であればテーブル形式にする必要はない。
【００４７】
以上のように実施形態１では、第１ブリッジ１０３（又は第２ブリッジ２０３）はリクエストパケットの生成を行う際に、送信要求保持部１０３６（又はレスポンス送信要求保持部２０３７）に保持している転送属性情報（ＲｅｑＡｔｒｂ  ０／１）のうちそれまでに送信したパケットの転送属性情報で履歴保持部１０３７（又は２０３８）に保持している属性情報と一致する転送を優先してパケットに変換して送信する。一致する転送があった場合、転送属性情報（ＲｅｑＡｔｒｂ  ０／１）をパケットに付加せず、転送に必要なキャラクタ数を削減している。これにより、直前に受信した転送と転送属性情報（ＲｅｑＡｔｒｂ  ０／１）が一致せず２個前以前の転送と一致しているような転送であっても、効率的に情報を圧縮し、転送の効率を高めることができる。
【００４８】
図６（ａ）に従来例におけるリクエストパケット送信に要するサイクル数を、図６（ｂ）に本発明におけるリクエストパケット送信の要するサイクル数を示す。図中の数字は転送に要するサイクル数を示すものとする。図６（ａ）及び（ｂ）の例では第１バスマスタＡ１０１からのリクエスト（図中のＡ  −  １〜Ａ  −  ４）と第１バスマスタＢ１０２からのリクエスト（図中のＢ  −  １〜Ｂ  −  ４）が交互に第１ブリッジ１０３に送信される例である。なお、全ての転送は６４ＢｉｔのＳｉｎｇｌｅ  Ｗｒｉｔｅ転送とする。この例において、第１バスマスタＡ  １０１から発行される転送属性情報（ＲｅｑＡｔｒｂ  ０／１）と第１バスマスタＢ１０２から発行される転送属性情報（ＲｅｑＡｔｒｂ  ０／１）は異なっているものとする。図６（ａ）の例においては、パケット生成の際にキャラクタの削減が行われず、各マスタからの全のパケットは３キャラクタのヘッダー及び３キャラクタのデータによって構成され、全部で６キャラクタのパケットとなる。よって、各マスタから４つのＷｒｉｔｅ転送を行うのに、６（キャラクタ数）＊４（各マスタあたりの転送数）＊２（マスタ数）＝４８キャラクタ必要になる。各キャラクタの転送には３４サイクルかかるため、従来例の転送には４８＊３４＝１６３２サイクル必要になる。本発明によれば、各マスタからの２転送目以降のパケット生成の際に、キャラクタの削減が行われる。そのため、キャラクタの削減が行われないパケットのキャラクタ数が６キャラクタであるのに対して、各マスタからの２転送目以降の転送のキャラクタ数は５キャラクタに削減できる。よって、各マスタから４つのＷｒｉｔｅ転送を行うのに必要なキャラクタ数は、６（１転送目のキャラクタ数）＊２（マスタ数）＋５（２転送目以降のキャラクタ数）＊３（各マスタからの総転送数  ―  １）＊２（マスタ数）＝４２キャラクタとなる。各キャラクタの転送には３４サイクルかかるため、本発明の転送には４２＊３４＝１４２８サイクル必要になる。従来例では、同じ転送に１６３２サイクル必要になるため、本発明では従来例よりも２０４サイクル転送に必要なサイクル数を削減できる。
【００４９】
上述の実施形態ではリクエスト送信要求保持部１０３６やレスポンス送信要求保持部２０３７のキューが２段である構成について説明したが、キューの段数はそれ以上設けてもよい。
【００５０】
また、上述の実施形態では、集積回路間（チップ間、モジュール間）におけるデータ転送について説明したが、本発明は同一集積回路（同一チップ、同一モジュール）内におけるデータ転送にも適用することもできる。
【００５１】
ただし、チップ間の転送は、チップ内の転送に比べて、データを転送する能力が低く、システムのボトルネックとなる可能性が高い。チップ内の転送では、「属性情報」、「アドレス」、「データ」についてそれぞれに物理的に信号線が存在し、同時・並列的に転送することができる。一方、チップ間の転送では、製品のコストを下げようとすると共通の信号線を利用してすることになり（チップのＩＯピンはコスト上昇を招くため）、時系列に転送するので、上述の実施形態による転送効率の向上はチップ内転送に比べて顕著である。
【００５２】
さらに、アドレスの上位又は下位について変動しないことが予め分かっている部分があることが予め分かっている場合は属性情報テーブルに上位（又は下位）アドレス情報を含ませて、属性情報と変動のないアドレスの一部分（上位又は下位数ビット分）を一緒に圧縮するように構成してもよい。例えば、ソフトウェアのアドレスマップの特性やバスの規格を考慮すると、あるモジュールにアクセスする場合には常に上位４ビットは固定の”００００”となることが考えられる。その場合は、テーブルに上位アドレス比較値を入れておけば変動のないアドレスビット数分さらにデータ転送効率がよくなる（下位アドレスについても同様）。この場合、変動のないアドレス部分を識別子で置換する場合には、属性情報の組合せが一致することだけを確かめて置換するようにしてもよい。
【００５３】
また、上述の実施形態では属性情報の組合せが保持しているものと一致しない場合は、一致していないことを示す識別子を付加するだけであるが、属性情報の組合せが一致しなくても変動しないアドレス部分を置換するように構成してもよい。その場合には複合側は常に変動しないアドレス部分を付加する構成を設ければよい。
【００５４】
また、上述の実施形態ではバスプロトコルとしてＡＸＩを挙げて説明したが、本発明はデータ、アドレス、属性情報を組み合わせて転送するプロトコルであれば広く効果を発揮することができる。なお、複数の転送内容を１つの属性情報として複数のビット数で表現している場合でも本発明は適用できる。
【図１】
0005906078.tif 000002
【図２】
0005906078.tif 000003
【図３】
0005906078.tif 000004
【図４】
0005906078.tif 000005
【図５】
0005906078.tif 000006
【図６】
0005906078.tif 000007
【図７】
0005906078.tif 000008
【図８】
0005906078.tif 000009
【図９】
0005906078.tif 000010