(57)【特許請求の範囲】
【請求項１】
複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段と、
前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較手段と、
前記第１の比較手段による比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較手段と、
前記第２の比較手段による比較結果に基づいて選択された前記エントリを表す第１の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮手段と
を備えることを特徴とするデータ転送制御装置。
【請求項２】
前記記憶手段が、前記第１の比較手段による比較結果又は前記第２の記憶手段による比較結果に応じて計数動作を行う計数手段を前記エントリ毎に複数有し、
前記第１の比較手段による比較の結果、前記入力情報が前記各エントリ登録情報における前記区分ごとの情報のうち少なくとも１つと一致しなかった場合、前記記憶手段が、前記計数手段の計数値に応じて選択された１つの前記エントリに前記入力情報を記憶することを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記記憶手段が、前記第１の比較手段による比較結果又は前記第２の記憶手段による比較結果に応じて計数動作を行う計数手段を前記エントリ毎に複数有するとともに、有効又は無効を意味する情報を記憶する有効情報記憶手段を前記エントリ毎に複数有し、
前記第１の比較手段による比較の結果、前記入力情報が前記各エントリ登録情報における前記区分ごとの情報のうち少なくとも１つと一致しなかった場合、前記記憶手段が、前記計数手段の計数値又は前記有効情報記憶手段の記憶内容に応じて選択された１つの前記エントリの前記エントリ登録情報として前記入力情報を記憶する
ことを特徴とする請求項１または２に記載のデータ転送制御装置。
【請求項４】
前記複数の区分には、前記入力情報の転送先に係るアドレスを分割した複数の部分に対応する複数の区分が含まれている
ことを特徴とする請求項１から３のうちいずれか１項に記載のデータ転送制御装置。
【請求項５】
前記圧縮手段において、前記転送情報が前記入力情報よりも小さい場合に前記第１から前記第３の情報を用いて前記転送情報が生成される
ことを特徴とする請求項１から４のうちいずれか１項に記載のデータ転送制御装置。
【請求項６】
複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段を参照して、前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較ステップと、
前記第１の比較ステップにより得られた比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較ステップと、
前記第２の比較ステップにより得られた比較結果に基づいて１つの前記エントリを選択する選択ステップと、
前記選択ステップにおいて選択された前記エントリを表す第１の情報と、前記選択ステップにおいて選択された前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、前記選択ステップにおいて選択された前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮ステップと、
を有することを特徴とするデータ転送制御方法。
【請求項７】
複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段と、
前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較手段と、
前記第１の比較手段による比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較手段と、
前記第２の比較手段による比較結果に基づいて選択された前記エントリを表す第１の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮手段と
前記圧縮手段が前記入力情報を圧縮することにより得られた転送情報を送信する送信手段と、
を有するデータ送信部と、
前記送信手段が送信した前記転送情報を受信する受信手段と、
前記エントリ毎に複数に区分された情報を複数エントリ分記憶する第２の記憶手段と、
前記受信手段が受信した前記転送情報に基づいて、前記第２の記憶手段において前記第１の情報に対応する前記エントリでかつ前記第２の情報に対応する区分に記憶されている第１の区分情報と、前記第３の情報が表す第２の区分情報とを用いて、前記圧縮対象の情報を復元する復元手段と、
を有するデータ受信部と、
を備えることを特徴とするデータ転送制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置、データ転送制御方法、およびデータ転送制御システムに関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、システム内でデータを転送するために用いるパケットは、一般的に、パケットの制御種別を示すパケット種別フィールドと、行き先を示すデスティネーションフィールドと、リクエスト元を示すリクエスタフィールドと、アドレスを示すアドレスフィールドとが含まれている。通常、全てのパケットには、上記の各フィールドの情報がパケットヘッダとして含まれている。例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）等、大量のデータを短いパケットの単位で転送する場合でも、全てのパケットに同じようなパケットヘッダが含まれる。すなわち、パケットヘッダの転送が、転送系路のスループットの一部を消費している。そのため、転送経路は、データ転送能力を十分に発揮する事ができないという問題があった。
【０００３】
なお、本願において、データとは、文字、記号、数値等の処理対象となる情報と、上記の各フィールドの情報やパケットの転送等を制御するための制御情報とを含むものであるとする。
【０００４】
一方、パケットのパケット長を長くし、ヘッダ転送のオーバヘッド分を軽減するといった方法も考えられる。しかし、同じ転送経路を、複数のデータ転送で共有するコンピュータシステムの場合、特定のパケットが転送経路を占有する時間を長くすることは、他のパケットのレイテンシ性能を悪化させるという問題が有る。そのため、制御情報以外のデータの転送に用いるパケットにおいても、パケット長が比較的短い（例えば６４Ｂｙｔｅくらいの）パケットとして転送する事が求められる場合が多い。
【０００５】
また、転送するヘッダやデータの一部を圧縮することも考えられる。圧縮技術の一つの手法として、静的または動的辞書を用いてデータを圧縮する技術がある（例えば特許文献１）。特許文献１に記載されている辞書圧縮方式では、転送しようとする文字列が辞書内に存在する場合、文字列に代えて辞書のポインタ（あるいはインデックス）が送信される。この場合、ポインタの大きさが差し替えられた文字列の大きさよりも小さければ圧縮効果が得られる。また、動的辞書を用いる場合、新しい文字列が転送されるときに、データの圧縮側の辞書と伸張側の辞書とで同一の位置に同一の新しい文字列が追加され、辞書が更新される（例えば段落００１３）。また、特許文献１には、他の辞書圧縮の方法としてスライディング・ウィンドウ圧縮を用いる技術が示されている（例えば段落００１４）。スライディング・ウィンドウ圧縮では、固定サイズのスライディング・ウィンドウを移動させながら文字列の比較を行い、一致した場合には辞書のポインタ（あるいはリファレンス）への差し替えが行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００４−５１４３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に記載されている辞書圧縮技術では、圧縮しようとするデータが、辞書に登録されているデータと完全に一致した場合に、辞書のポインタを用いたデータの差し替えが可能となる。したがって、例えば対象とするデータの種類が多いような場合に、辞書のポインタを用いたデータの差し替えを行うことができる確率を高めようとすると、辞書へのデータ登録数を多くする必要がある。しかしながら、辞書のサイズが大きくなると、圧縮対象となる入力データと、登録されているデータとを逐次に比較する場合には比較に要する時間が長くなってしまう。また、入力データと、登録されているデータとを並列的に比較する場合には比較器等の構成が増えてしまう。
【０００８】
本発明は、上記課題を解決することができるデータ転送制御装置、データ転送制御方法、およびデータ転送制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ転送制御装置は、複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段と、前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較手段と、前記第１の比較手段による比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較手段と、前記第２の比較手段による比較結果に基づいて選択された前記エントリを表す第１の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮手段とを備える。
【００１０】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ転送制御方法は、複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段を参照して、前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較ステップと、前記第１の比較ステップによる比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較ステップと、前記第２の比較ステップによる比較結果に基づいて選択された前記エントリを表す第１の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮ステップとを備える。
【００１１】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ転送制御システムは、複数の区分毎に圧縮対象の属性を示すエントリ登録情報を、予め決められた複数の前記区分により構成されるエントリ毎に記憶する記憶手段と、前記エントリ毎に、入力情報と前記エントリ登録情報とが一致するか否かを前記区分毎に比較する第１の比較手段と、前記第１の比較手段による比較結果において一致した前記区分のデータ長を前記エントリ毎に加算した結果を、前記エントリ間で比較する第２の比較手段と、前記第２の比較手段による比較結果に基づいて選択された前記エントリを表す第１の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とが一致する少なくとも１つの前記区分を表す第２の情報と、選択した前記エントリの前記エントリ登録情報と前記入力情報とにおいて一致しない前記区分に対応する前記入力情報を表す第３の情報とを用いて前記入力情報を圧縮する圧縮手段と、前記圧縮手段が前記入力情報を圧縮することにより得られた転送情報を送信する送信手段と、を有するデータ送信部と、前記送信手段が送信した前記転送情報を受信する受信手段と、前記エントリ毎に複数に区分された情報を複数エントリ分記憶する第２の記憶手段と、前記受信手段が受信した前記転送情報に基づいて、前記第２の記憶手段において前記第１の情報に対応する前記エントリでかつ前記第２の情報に対応する区分に記憶されている第１の区分情報と、前記第３の情報が表す第２の区分情報とを用いて、前記圧縮対象の情報を復元する復元手段と、を有するデータ受信部と、を備える。
【発明の効果】
【００１２】
本発明によれば、圧縮対象となる入力情報の全部とエントリ毎の登録情報の全部とが一致していなくても、圧縮対象となる情報の一部と記憶手段（すなわち圧縮辞書に対応するもの）内のいずれかのエントリのいずれかの区分とが一致していれば、圧縮手段によって当該エントリを表す第１の情報（すなわちポインタ）を用いて転送情報を生成することが可能となる。したがって、全部の一致を要求する場合と比較して、記憶手段のエントリ数（すなわちデータ登録数）を増やすことなく、ポインタを用いてデータの差し替えを行うことができる確率を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態の構成を示すブロック図である。
【図２】図１の実施形態で用いられる通常パケットと圧縮パケットのパケットヘッダの構成例を示す図である。
【図３】図１の実施形態における送信側の圧縮辞書テーブル処理部の構成例を示すブロック図である。
【図４】図１のパケット生成論理の動作例を示すフローチャートである。
【図５】図１の実施形態におけるパケット送信側ＬＳＩの動作例を説明するための図表である。
【図６】図１の実施形態における受信側の圧縮辞書テーブル処理部の構成例を示すブロック図である。
【図７】図１の実施形態におけるパケット受信側ＬＳＩの動作例を説明するための図表である。
【図８】図１の実施の形態の動作例を説明するための模式図である。
【図９】図１の実施の形態を主要な機能毎にまとめて模式的に示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明によるデータ転送制御装置の一実施形態を説明するためのブロック図であり、図２は、図１の実施形態で用いられる通常のパケットヘッダと圧縮したパケットヘッダの構成例を示す模式図である。まず、図２を参照して、本発明の実施形態で使用する圧縮していない通常のパケットヘッダ（以下、通常パケットヘッダ）、および、圧縮されているパケットのパケットヘッダ（以下、圧縮パケットヘッダ）のフォーマットの一例について説明する。また、本実施形態で転送されるパケットのうち、パケットヘッダが通常パケットヘッダであるパケットを通常パケット、パケットヘッダが圧縮パケットヘッダであるパケットを圧縮パケット、また、通常パケットまたは圧縮パケットから復元されたパケットを復元パケットと呼ぶ。なお、このパケットヘッダの後ろには、パケットの中身であるデータが格納されている。つまり、パケットヘッダは、パケットの中身であるデータの属性を示す属性情報である。
【００１５】
図２を参照すると、図２（Ａ）に示した通常パケットヘッダ１００００は、パケット識別子フィールド１０００１、パケット種別フィールド１０００２、デスティネーションフィールド１０００３、リクエスタフィールド１０００４、アドレスフィールド１０００５、およびその他のフィールド１０００６から構成されている。また、アドレスフィールド１０００５は、アドレス上位フィールド１０００７、アドレス中位フィールド１０００８、およびアドレス下位フィールド１０００９から構成されている。
【００１６】
パケット識別子フィールド１０００１は、圧縮パケットであるか否かを示す識別子を保持する１ビットのフィールドである。本実施形態において、パケット識別子フィールド１０００１に識別子「１」が格納されている場合、圧縮パケットであることを示す。また、パケット識別子フィールド１０００１に識別子「０」が格納されている場合、通常パケットであることを示す。
パケット種別フィールド１０００２は、パケット種別を示すフィールドである。
デスティネーションフィールド１０００３は、パケットのデスティネーション（リンク先）を示すフィールドである。
リクエスタフィールド１０００４は、リクエスト元の情報を示すフィールドである。
アドレスフィールド１０００５は、通常パケットヘッダ１００００の転送先に係るアドレスを示すフィールドである。つまり、通常パケットの転送先のアドレスを示す情報を格納する。このアドレスフィールド１０００５は、アドレス上位フィールド１０００７、アドレス中位フィールド１０００８、およびアドレス下位フィールド１０００９を含む。これらアドレス上位フィールド１０００７、アドレス中位フィールド１０００８、およびアドレス下位フィールド１０００９は、アドレスフィールド１０００５を所定のビット数で分割したフィールドであり、所定ビット数の上位、中位および下位アドレスを示すフィールドである。
その他のフィールド１０００６は、その他のフィールド情報を示すフィールドである。
【００１７】
図２（Ｂ）に示した圧縮パケットヘッダ１１０００は、パケット識別子フィールド１１００１、エントリ番号フィールド１１００２、差し替え情報フィールド１１００３、および不一致フィールド１１００４から構成される。
パケット識別子フィールド１１００１は、圧縮パケットであるか否かを示す識別子を保持する１ビットのフィールドである。本実施形態において、パケット識別子フィールド１０００１に識別子「１」が格納されている場合、圧縮パケットであることを示す。また、パケット識別子フィールド１０００１に識別子「０」が格納されている場合、通常パケットであることを示す。
エントリ番号フィールド１１００２は、圧縮辞書テーブル処理部２０２２０内のエントリ処理部３１０００（ｉ）の位置を示すフィールドである。なお、圧縮辞書テーブル処理部２０２２０は、エントリ毎に割り当てられる複数のエントリ処理部３１０００（ｉ）として利用可能なハードウエア資源を備える。なお、各エントリ処理部３１０００（ｉ）は、ハードウエア資源内の各エントリ処理部３１０００（ｉ）の使用状況等に応じて割り当てる。なお、エントリとは、圧縮辞書テーブル処理部２０２２０において登録されているパケットヘッダの単位を示す。
差し替え情報フィールド１１００３は、パケットヘッダに含まれるフィールドのうち圧縮されたフィールドを示すフィールドである。
不一致フィールド１１００４は、パケットヘッダに含まれるフィールドのうち圧縮されなかったフィールドを示すフィールドである。なお、圧縮できなかったフィールドに格納されている情報は、圧縮されない情報のまま、パケットの末尾に付加される。
【００１８】
次に、図１を参照して本発明によるデータ転送制御装置の一実施形態の構成について説明する。図１を参照すると、本発明の一実施形態としてのデータ転送制御装置は、パケット送信側ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）２００００内のパケット送信部２０２００として構成されている。
パケット送信側ＬＳＩ２００００は、ＬＳＩ間のインタフェースであるＳｅｒＤｅｓ（Ｓｅｒｉａｌｉｚｅｒ／Ｄｅｓｅｒｉａｌｉｚｅｒ）２２０００を介して、パケット受信側ＬＳＩ２１０００と接続されている。パケット送信側ＬＳＩ２００００とパケット受信側ＬＳＩ２１０００との間のパケット転送は、このＳｅｒＤｅｓ２２０００でシリアル転送される。
【００１９】
パケット送信側ＬＳＩ２００００は、リクエスタ２０１００、パケット送信部（データ転送制御装置）２０２００、およびＳｅｒＤｅｓ送信部２０３００で構成されている。
リクエスタ２０１００は、通常パケットを生成するパケット生成処理を実行する。本実施形態において、リクエスタ２０１００は、パケット受信側ＬＳＩ２１０００に送信する送信実体データを複数個に分割する。このリクエスタ２０１００は、分割された各送信実体データを、通常パケットヘッダ１００００を備える通常パケットの中身データを格納する部分に書き込む。これにより、リクエスタ２０１００は、通常パケットを生成する。
【００２０】
パケット送信部２０２００は、リクエスタ２０１００によって生成された通常パケットを受信側ＬＳＩ２１０００に送信する送信処理と、必要に応じて通常パケットのパケットヘッダを圧縮するパケット圧縮処理とを実行する。このパケット送信部２０２００は、パケット圧縮処理を実行した場合に圧縮パケットを、パケット圧縮処理を実行しない場合に通常パケットを、それぞれＳｅｒＤｅｓ送信部２０３００に出力する。
ＳｅｒＤｅｓ送信部２０３００は、パケット送信部２０２００から出力された通常パケットあるいは圧縮パケットをシリアルデータに変換して、ＳｅｒＤｅｓ２２０００へ送信する。
【００２１】
他方、パケット受信側ＬＳＩ２１０００は、ＳｅｒＤｅｓ受信部２１１００、パケット受信部２１２００、およびターゲット２１３００から構成されている。
ＳｅｒＤｅｓ受信部２１１００は、ＳｅｒＤｅｓ２２０００を介してパケット送信側ＬＳＩ２００００からシリアルデータを受信し、パケット化する。
パケット受信部２１２００は、ＳｅｒＤｅｓ２２０００を介してパケットを受信し、受信したパケットが圧縮パケットであった場合、圧縮パケットを復元する復元処理を実行するとともに、復元した復元パケットをターゲット２１３００に出力する。また、パケット受信部２１２００は、受信したパケットが通常パケットであった場合、パケットを復元する復元処理を実行せずに、そのまま通常パケットをターゲット２１３００出力する。
ターゲット２１３００は、パケット受信部２１２００から出力された復元パケットあるいは通常パケットを受け取り、受け取ったパケットに対して予め決められた処理を実行する。
【００２２】
上述したパケット送信側ＬＳＩ２００００内のパケット送信部２０２００は、通常パケット保持レジスタ２０２１０、圧縮辞書テーブル処理部２０２２０、およびパケット圧縮論理回路２０２３０から構成されている。
通常パケット保持レジスタ２０２１０は、リクエスタ２０１００から受信した通常パケットをＳｅｒＤｅｓ送信部２０３００へ出力するタイミングまで一時的に保持する記憶領域である。
この通常パケット保持レジスタ２０２１０は、有効な通常パケットを保持したタイミングで、リクエスタ２０１００から入力する通常パケットに格納されている情報のうち、通常パケットヘッダ１００００の各フィールドに格納されている情報を、圧縮辞書テーブル処理部２０２２０へ信号線２０２４１を介して出力する。
また同様に、通常パケット保持レジスタ２０２１０は、有効な通常パケットを保持したタイミングで、リクエスタ２０１００から入力する通常パケットに格納されている情報を、パケット圧縮論理回路２０２３０に出力する。つまり、通常パケット保持レジスタ２０２１０は、通常パケットの全てのフィールドに格納されている情報（すなわち通常パケットヘッダ１００００の全てのフィールドに格納されている情報と、通常パケットに含まれる通常パケットヘッダ１００００以外の全てのフィールドに格納されている情報と）を、パケット圧縮論理回路２０２３０へ信号線２０２４２を介して出力する。
【００２３】
圧縮辞書テーブル処理部２０２２０は、複数の論理回路やレジスタなどから構成され、通過するパケットヘッダに格納されている情報に基づき、パケット圧縮論理回路２０２３０による圧縮処理に利用される圧縮対象であるフィールドが登録されているいか否かを判定する。この圧縮辞書テーブル処理部２０２２０は、圧縮対象であるフィールドを検索する際に参照する辞書データを内蔵するレジスタに登録している。つまり、圧縮辞書テーブル処理部２０２２０は、圧縮対象であるフィードを検索する辞書として機能するテーブルを有している。この圧縮辞書テーブル処理部２０２２０は、圧縮対象であるフィードを検索により得た場合、当該フィードを圧縮することを判定する。一方、圧縮対象であるフィードを検索により検出できなかった場合、圧縮辞書テーブル処理部２０２２０は、圧縮処理を実行しないことを判定する。
【００２４】
また、圧縮辞書テーブル処理部２０２２０は、圧縮すると判定した場合に使用するエントリを表すエントリ番号と、当該エントリの中のどのフィールドを圧縮時に使用するのかを表す差し替え情報とを出力する機能とを有している。この圧縮辞書テーブル処理部２０２２０が有する圧縮辞書として機能するテーブルは、通常パケットヘッダ１００００に格納されることが予想されるデータをフィールド単位で比較および選択ならびに書き換え可能な形態で複数組格納している。テーブル内の各組のデータはそれぞれ１個の通常パケットヘッダ１００００に対応している。また、各組のデータの格納位置は、所定の１個のエントリ番号で示されている。本実施形態では、テーブル内の各組のデータが、１個の通常パケットヘッダ１００００に対応する１組のデータを記憶する１組のレジスタ（あるいは一定範囲の記憶領域）を有するエントリと称する回路ブロックに記憶される。
【００２５】
パケット圧縮論理回路２０２３０は、圧縮辞書テーブル処理部２０２２０から出力されたエントリ番号と差し替え情報とに基づき、圧縮するか否かの判定を行う機能と、圧縮すると判定した場合に圧縮パケットヘッダを生成するとともに、生成した圧縮パケットヘッダを通常パケットにおける通常パケットヘッダ１００００と置き換えて、圧縮パケットを合成する機能とを有している。また、パケット圧縮論理回路２０２３０は、圧縮するか否かの判定の結果を表す情報を圧縮情報として信号線２０２４５を用いて圧縮辞書テーブル処理部２０２２０に出力する。また、パケット圧縮論理回路２０２３０は、生成した圧縮パケットまたは圧縮を行わなかった通常パケットをＳｅｒＤｅｓ送信部２０３００へ出力する機能を有している。
【００２６】
ここで、図３を参照して、パケット送信側ＬＳＩ２００００内の圧縮辞書テーブル処理部２０２２０の詳細構成例について説明する。なお、図３では、通常パケット保持レジスタ２０２１０の記憶領域のうち、通常パケットヘッダ１００００を保持する部分の記憶領域のみを示している。図３において通常パケット保持レジスタ２０２１０は、図２（Ａ）に示した通常パケットヘッダ１００００を構成するパケット識別子フィールド１０００１、パケット種別フィールド１０００２、デスティネーションフィールド１０００３、リクエスタフィールド１０００４、アドレス上位フィールド１０００７、アドレス中位フィールド１０００８、アドレス下位フィールド１０００９、およびその他のフィールド１０００６内に格納されているデータを、一時的に保持する複数のレジスタ（記憶領域）２０２１１〜２０２１４、２０２１７〜２０２１９および２０２１６を有している。
【００２７】
図３に示した圧縮辞書テーブル処理部２０２２０は、複数のエントリ処理部３１０００（ｉ）と、ビット幅比較論理回路３２０００と、一致情報選択回路３３０００と、カウンタ制御回路３４０００と、登録先選択回路３５０００とを有している。各エントリ処理部３１０００（ｉ）は、同一構成である。また、各エントリ処理部３１０００（ｉ）には、固有の識別情報（あるいは位置情報）であるエントリ番号（ｉ）がそれぞれ割り当てられている。
【００２８】
圧縮辞書テーブル処理部２０２２０は、通過する通常パケットヘッダ１００００に格納された情報ごとに、エントリ番号（ｉ）を割り当てて、エントリ処理部３１０００（ｉ）として利用されるコンパレータやレジスタを含むハードウエア資源にエントリ処理部３１０００（ｉ）の機能構成を割り当てる。つまり、圧縮辞書テーブル処理部２０２２０は、通話パケット保持レジスタ２０２１０から入力する通常パケットヘッダ１００００に格納された情報に対応するエントリ処理部３１０００（ｉ）が割り当てられているか否かを判定する。対応するエントリ処理部３１０００（ｉ）が割り当てられていない場合、圧縮辞書テーブル処理部２０２２０は、エントリ処理部３１０００（ｉ）として機能していない状態のハードウエア資源に対して、エントリ処理部３１０００（ｉ）を割り当てる。この圧縮辞書テーブル処理部２０２２０による処理を、以下、圧縮辞書テーブル処理部登録処理という。
【００２９】
また、圧縮辞書テーブル処理部２０２２０は、通過する通常パケットヘッダ１００００に格納された情報に対応するエントリ処理部３１０００（ｉ）が登録されている場合、このエントリ処理部３１０００（ｉ）に登録されている情報と通常パケットヘッダ１００００に格納された情報との照合結果に基づき、通常パケットヘッダ１００００の一部の情報を圧縮する。この圧縮辞書テーブル処理部２０２２０による処理を、以下、圧縮処理という。
【００３０】
エントリ処理部３１０００（ｉ）は、Ｖａｌｉｄ（バリッド）レジスタ３１１００、登録パケット情報レジスタ３１２００、一致カウンタ３１３００、７個のコンパレータ３１４０１〜３１４０７、ビット幅加算機３１５００、および束線化回路３１６００を有している。このエントリ処理部３１０００（ｉ）は、上述の圧縮辞書テーブル処理部登録処理によって登録されたエントリ番号（ｉ）毎に、コンパレータやレジスタを含むハードウエア資源に割り当てられる処理部である。
【００３１】
Ｖａｌｉｄレジスタ３１１００は、各エントリ処理部３１０００（ｉ）の有効／無効を示す１ビットのデータが格納される。Ｖａｌｉｄレジスタ３１１００は、例えば、エントリ処理部３１０００（ｉ）として利用されるハードウエア資源に登録された情報が初期化した後等で登録されたエントリ処理部３１０００（ｉ）に対応するデータが格納される前の状態である場合、無効であることを示す情報「０」が格納されている。また、Ｖａｌｉｄレジスタ３１１００は、通過した通常パケットヘッダ１００００に対応するエントリ処理部３１０００（ｉ）が割り当てられ、当該通常パケットヘッダ１００００に格納されている情報が登録パケット情報レジスタ３１２００に登録（格納）された状態である場合、有効であることを示す情報「１」が格納されている。
【００３２】
登録パケット情報レジスタ３１２００は、複数のフィールド（区分）毎に圧縮対象の属性を示すエントリ登録情報を格納する。例えば、登録パケット情報レジスタ３１２００は、通常パケットヘッダ１００００に含まれるフィードのうちパケット識別子フィールド１０００１を除く各フィールドに格納されているエントリ登録情報を、フィールド単位で読み出しおよび書き込み可能に保持するレジスタ（あるいは記憶領域）３１２０１〜３１２０７を有している。
各レジスタ３１２０１〜３１２０７は、通常パケットヘッダ１００００の各フィールド１０００２〜１０００４、１０００７〜１０００９および１０００６のデータである、パケット種別を示すパケット種別情報、デスティネーションを示すデスティネーション情報、リクエスト元の情報を示すリクエスタ情報、上位アドレスを示すアドレス上位情報、中位のアドレスを示すアドレス中位情報、下位アドレスを示すアドレス下位情報、およびその他のフィールド情報を示すその他情報をそれぞれ保持する。各レジスタ３１２０１〜３１２０７には、圧縮辞書テーブル処理部登録処理において、通常パケット保持レジスタ２０２１０のレジスタ２０２１１〜２０２１４、２０２１７〜２０２１９および２０２１６に保持されているデータが所定の条件が成立した場合に取り込まれ、保持される。
【００３３】
一致カウンタ３１３００は、エントリ登録情報を用いてパケット圧縮が行われた回数を保持するカウンタである。
一致カウンタ３１３００には、初期状態で「０」が格納されている。また、一致カウンタ３１３００は、エントリ登録情報を用いてパケット圧縮が行われた場合に、１ずつカウントアップされた情報「１」、「２」、・・・を格納する。
【００３４】
コンパレータ３１４０１〜３１４０７は、通常パケット保持レジスタ２０２１０の各レジスタに格納されている情報（以下、入力情報という）と、登録パケット情報レジスタ３１２００の各レジスタ３１２０１〜３１２０６に格納されている情報（エントリ登録情報）との比較を、それぞれ対応するフィールド毎に行い、通常パケット保持レジスタ２０２１０の入力情報と登録パケット情報レジスタ３１２００のエントリ登録情報が少なくとも１つのフィールドで一致するか否かの判定を行う比較器である。
コンパレータ３１４０１〜３１４０７は、通常パケット保持レジスタ２０２１０に含まれる対応のフィールドに格納されている入力情報と、登録パケット情報レジスタ３１２００に含まれる対応のフィールドに格納されているエントリ登録情報とを比較し、フィールドごとに一致の有無を表す１ビットのデータをそれぞれ出力する。例えば、通常パケット保持レジスタ２０２１０の入力情報と、登録パケット情報レジスタ３１２００のエントリ登録情報とが一致している場合、コンパレータ３１４０１〜３１４０７は「１」を出力する。一方、通常パケット保持レジスタ２０２１０の入力情報と、登録パケット情報レジスタ３１２００のエントリ登録情報とが一致していない場合、コンパレータ３１４０１〜３１４０７は「０」を出力する。
【００３５】
束線化回路３１６００は、全てのコンパレータ３１４０１〜３１４０７の出力を束ねた結果を、エントリ処理部３１０００（ｉ）の比較結果として（ここでは一致情報Ｇｉとして）、エントリ処理部３１０００（ｉ）の外に出力する。この場合、束線化回路３１６００は、７個のコンパレータ３１４０１〜３１４０７の出力を束ねて７ビットの一致情報Ｇｉを出力する。各コンパレータ３１４０１〜３１４０７の比較結果を表す出力はビット幅加算機３１５００へも入力される。
【００３６】
ビット幅加算機３１５００は、各コンパレータ３１４０１〜３１４０７の出力に基づいて、一致したフィールドのビット幅の値を加算して、各エントリ処理部３１０００（ｉ）の一致ビット幅情報Ｈｉとして、エントリ処理部３１０００（ｉ）の外へ出力する。例えば、通常パケットヘッダ１００００のパケット種別フィールド１０００２のビット幅が７ビット、デスティネーションフィールド１０００３のビット幅が５ビットであるとする。また、パケット種別レジスタ２０２１２に格納されている入力情報とパケット種別レジスタ３１２０１に格納されているエントリ登録情報とが一致し、かつ、デスティネーションレジスタ２０２１３に格納されている入力情報とデスティネーションレジスタ３１２０２に格納されているエントリ登録情報とが一致しているとする。さらに、この他のフィールドのレジスタに格納された入力情報とエントリ登録情報とがそれぞれ不一致であったとする。この場合、ビット幅加算機３１５００の出力（一致ビット幅情報Ｈｉ）は、パケット種別フィールドのビット幅「７」と、デスティネーションフィールドのビット幅「５」とを加算した一致ビット幅「１２」となる。また、ビット幅加算機３１５００は、各コンパレータ３１４０１〜３１４０７のいずれにおいても一致している状態が検出されなかった場合には、一致ビット幅情報Ｈｉとして「０」を出力する。
【００３７】
ビット幅比較論理回路３２０００は、比較器、セレクタ、カウンタなどの種々の論理回路の複合回路である。ビット幅比較論理回路３２０００は、各エントリ処理部３１０００（ｉ）から出力された各エントリの一致ビット幅情報Ｈｉとを比較し、比較結果に基づいて一致ビット幅が最大のエントリ処理部３１０００（ｉ）を示すエントリ番号（ｉ）を出力する。
ただし、ビット幅比較論理回路３２０００は、同一の最大値である一致ビット幅情報Ｈｉを有するエントリ処理部３１０００（ｉ）が複数あった場合には、例えば最も若い番号のエントリ番号（ｉ）を出力する。あるいは、ビット幅比較論理回路３２０００は、同一の最大値である一致ビット幅情報Ｈｉを有する各エントリ処理部３１０００（ｉ）の中で一致カウンタ３１３００の値が最も大きいエントリ番号（ｉ）を出力するようにしてもよい。また、ビット幅比較論理回路３２０００は、少なくとも１つのフィールドのビット幅に対応する値以上のビット幅の値が、いずれのエントリ処理部３１０００（ｉ）からも入力されなかった場合、すなわち各エントリ処理部３１０００（ｉ）の各コンパレータ３１４０１〜３１４０７のいずれにおいても一致している状態が検出されなかった場合には、有効なエントリ番号（ｉ）がないことを示す値のエントリ番号（例えば０や負の値；以下、無効なエントリ番号と称する）を出力する。このビット幅比較論理回路３２０００から出力されたエントリ番号は、通常パケット保持レジスタ２０２１０に保持されているパケットを、圧縮パケットヘッダ１１０００（図２参照）に変換する場合（すなわち圧縮する場合）に、エントリ番号フィールド１１００２に格納される値となる。
【００３８】
一致情報選択回路３３０００は、各エントリ処理部３１０００（ｉ）の束線化回路３１６００から出力される一致情報Ｇｉを入力し、ビット幅比較論理回路３２０００から出力されたエントリ番号（ｉ）に基づいて、当該エントリ番号（ｉ）で指定されるエントリ処理部３１０００（ｉ）の束線化回路３１６００の出力（一致情報Ｇｉ）を選択して、差し替え情報Ｓｉとして出力する。この一致情報選択回路３３０００から出力された差し替え情報Ｓｉは、通常パケット保持レジスタ２０２１０に保持されているパケットを、圧縮パケットヘッダ１１０００（図２参照）に変換する場合（すなわち圧縮する場合）に、差し替え情報フィールド１１００３に格納される値となる。なお、一致情報選択回路３３０００は、ビット幅比較論理回路３２０００から無効なエントリ番号が出力された場合にはすべてのビットを０（すなわち差し替えしないことを示す値）とした差し替え情報Ｓｉを出力する。
【００３９】
また、カウンタ制御回路３４０００は、ビット幅比較論理回路３２０００から出力されたエントリ番号（ｉ）とパケット圧縮論理回路２０２３０から入力された圧縮情報とに基づいて、当該エントリ番号（ｉ）を用いたパケット圧縮が行われた場合に、当該エントリ番号（ｉ）で指定される（すなわち一致ビット幅が最大のエントリとして決定された）エントリ処理部３１０００（ｉ）の一致カウンタ３１３００を選択して、選択した一致カウンタ３１３００の値を１加算する。
【００４０】
登録先選択回路３５０００は、各エントリ処理部３１０００（ｉ）０の登録パケット情報レジスタ３１２００内の値の更新を制御する回路である。登録先選択回路３５０００には、各エントリ処理部３１０００（ｉ）におけるＶａｌｉｄレジスタ３１１００の値および一致カウンタ３１３００のカウント値と、パケット圧縮論理回路２０２３０から出力された圧縮情報とが入力される。
この登録先選択回路３５０００は、まず、パケット圧縮論理回路２０２３０から入力された圧縮情報に基づいて圧縮処理が行われなかったことを検出した場合に、Ｖａｌｉｄレジスタ３１１００の値と一致カウンタ３１３００のカウント値とに基づいて１つのエントリ処理部３１０００（ｉ）を選択する。ここで、パケット圧縮論理回路２０２３０において圧縮処理が行われなかった場合とは、パケット圧縮論理回路２０２３０において圧縮パケットヘッダの生成が行われず、通常パケットが出力されることを意味する。この場合、受信側では通常パケットが受信されると受信側の圧縮辞書テーブル処理部２１２２０のエントリ登録情報の更新処理が実施されるため、送信側の圧縮辞書テーブル処理部２０２２０においてもエントリ登録情報の更新処理を実施する必要がある。
【００４１】
なお、Ｖａｌｉｄレジスタ３１１００の値が無効であるエントリ処理部３１０００（ｉ）がある場合には（まだデータが登録されていないエントリ処理部３１０００（ｉ）がある場合には）、無効であるエントリ処理部３１０００（ｉ）の１つが登録先選択回路３５０００によって選択される。
無効であるエントリ処理部３１０００（ｉ）が複数ある場合には、例えば最も若い番号のエントリ番号（ｉ）のエントリ処理部３１０００（ｉ）が登録先選択回路３５０００によって選択される。一方、Ｖａｌｉｄレジスタ３１１００の値が無効であるエントリ処理部３１０００（ｉ）がない場合には、一致カウンタ３１３００のカウント値が最も小さいエントリ処理部３１０００（ｉ）の１つが登録先選択回路３５０００によって選択される。
【００４２】
カウント値が最も小さいエントリ処理部３１０００（ｉ）が複数ある場合には、例えば最も若い番号のエントリ番号（ｉ）のエントリ処理部３１０００（ｉ）が登録先選択回路３５０００によって選択される。そして、登録先選択回路３５０００は、次に、Ｖａｌｉｄレジスタ３１１００の値および一致カウンタ３１３００のカウント値に基づいて選択したエントリ処理部３１０００（ｉ）の登録パケット情報レジスタ３１２００に、通常パケット保持レジスタ２０２１０に保持されているデータを登録する。つまり、通常パケット保持レジスタ２０２１０の各レジスタ２０２１２〜２０２１４、２０２１７〜２０２１９および２０２１６に保持されているデータを、登録パケット情報レジスタ３１２００の各レジスタ３１２０１〜３１２０７に格納する。
また、登録先選択回路３５０００は、Ｖａｌｉｄレジスタ３１１００の値および一致カウンタ３１３００のカウント値に基づいて選択したエントリ処理部３１０００（ｉ）のＶａｌｉｄレジスタ３１１００の値を有効に設定するとともに、一致カウンタ３１３００のカウント値を０にクリアする。
【００４３】
このようにして、パケット圧縮論理回路２０２３０において圧縮処理が行われなかった場合、圧縮辞書テーブル処理部２０２２０内の情報と少なくとも一部が一致しない通常パケットヘッダ１００００は、それが通常パケット保持レジスタ２０２１０を通過した場合に、無効なエントリ、もしくは、カウント値が最小である圧縮辞書テーブル処理部のエントリ処理部３１０００（ｉ）に取り込まれる。つまり、パケット圧縮論理回路２０２３０において圧縮処理が行われなかった場合、通過する通常パケットヘッダ１００００の情報が圧縮辞書テーブル処理部２０２２０に登録されていないため、圧縮辞書テーブル処理部２０２２０は、通過する通常パケットヘッダ１００００の情報をエントリ登録情報として、それぞれ対応するフィールド毎に、登録パケット情報レジスタ３１２００に登録する。
【００４４】
次に、図４および図５を参照して、図１に示したパケット送信側ＬＳＩのパケット圧縮論理回路２０２３０の動作について説明する。図４はパケット圧縮論理回路２０２３０による処理の流れの一例を示すフローチャートである。図５は、動作例を説明するための図表である。図５の図表では、ケース番号１〜７の７種類の動作例に対応する情報を示している。
【００４５】
なお、図５の例では、通常パケットヘッダ１００００のフィールド長を６４ビットとしている。パケット識別子フィールド１０００１のフィールド長を１ビットとしている。パケット種別フィールド１０００２のフィールド長を７ビットとしている。デスティネーションフィールド１０００３のフィールド長を５ビットとしている。リクエスタフィールド１０００４のフィールド長を５ビットとしている。アドレス上位フィールド１０００７のフィールド長を２２ビットとしている。アドレス中位フィールド１０００８のフィールド長を９ビットとしている。アドレス下位フィールド１０００９のフィールド長を８ビットとしている。そして、その他のフィールド１０００６のフィールド長を７ビットとしている。
【００４６】
また、エントリ番号（ｉ）のビット長を８ビットとしている。この場合、例えばエントリ番号（０）を無効なエントリ番号とし、ｉ＝１〜２５５を有効なエントリ番号（ｉ）として用いることができる。
【００４７】
また、差し替え情報Ｓｉの各ビットは、図３のコンパレータ３１４０１〜３１４０７の比較結果が一致している場合に「１」、不一致の場合に「０」としている。例えば、ケース番号１では、差し替え情報Ｓｉの７ビットがすべて「１」となっている。この場合、図３の７個のコンパレータ３１４０１〜３１４０７における比較結果がすべて一致となっていたことを示している。
【００４８】
さて、いまここで、通常パケット保持レジスタ２０２１０が、リクエスタ２０１００からパケットを受信したとすると、パケット圧縮論理回路２０２３０は、まず、圧縮辞書テーブル処理部２０２２０から信号線２０２４４を用いて受信した差し替え情報Ｓｉに差し替えを行うことが可能である旨の設定、すなわち差し替え情報Ｓｉのいずれかのビットに差し替えを行うことが可能であることを示す値（上記の例では１）が設定されているか否かを判定する（図４のステップＳ１１）。パケット圧縮論理回路２０２３０は、差し替え情報Ｓｉが設定されていると判定した場合（ステップＳ１１で「ｙｅｓ」の場合）、差し替え情報Ｓｉの各ビットの値に基づいて圧縮パケットヘッドのビット数を算出する（ステップＳ１２）。
【００４９】
例えば、図５のケース番号１のように、差し替え情報Ｓｉを構成する７個のビットがすべて１である場合、すなわち、いずれかのエントリ番号（ｉ）のエントリ処理部３１０００（ｉ）においてすべてのコンパレータ３１４０１〜３１４０７で一致が検出された場合、当該エントリ処理部３１０００（ｉ）の登録パケット情報レジスタ３１２００に保持されている各フィールドのデータと、通常パケット保持レジスタ２０２１０に保持されている対応する各フィールドのデータとがすべて一致したことになる。この場合、一致ビットの合計数は６３ビットとなる（すなわち通常パケットヘッダ１００００のビット幅６４ビットからパケット識別子フィールド１０００１の１ビットを減じた値となる）。この場合、圧縮パケットヘッダ１１０００は、不一致フィールド１１００４が０ビットとなるので、１ビットのパケット識別子フィールド１１００１と、８ビットのエントリ番号フィールド１１００２と、７ビットの差し替え情報フィールド１１００３との合計１６ビットから構成されることになる。ちなみに、この場合、パケット受信側ＬＳＩ２１０００では、圧縮パケットヘッダ１１０００内のエントリ番号フィールド１１００２内に格納されているエントリ番号（ｉ）の情報のみで（すなわち差し替え情報Ｓｉ無しで）圧縮前の通常パケットヘッダ１００００と同一のデータを復元することができる。
【００５０】
また、例えば、図５のケース番号２のように、差し替え情報Ｓｉを構成する５個のビットが１で、アドレス下位フィールド１０００９とその他のフィールド１０００６とに対応する２個のビットが０であったとする。
この場合、いずれかのエントリ番号（ｉ）のエントリ処理部３１０００（ｉ）において５個のコンパレータ３１４０１〜３１４０５で一致が、また２個のコンパレータ３１４０６〜３１４０７で不一致が検出されたことになる。すなわち、この場合、当該エントリ処理部３１０００（ｉ）の登録パケット情報レジスタ３１２００に保持されている各フィールドのデータは、通常パケット保持レジスタ２０２１０に保持されている対応する各フィールドのデータと比較すると以下のようになる。つまり、下位アドレスを示すアドレス下位情報を保持するレジスタ３１２０６と、その他のフィールド情報を示すその他情報を保持するレジスタ３１２０７とに保持されているデータを除く、レジスタ３１２０１〜３１２０５で保持されているデータが一致したことになる。
【００５１】
この場合、一致ビットの合計数は４８ビットとなる（すなわち通常パケットヘッダ１００００のビット幅６４ビットからパケット識別子フィールド１０００１の１ビット、アドレス下位フィールド１０００９の８ビット、およびその他のフィールド１０００６の７ビットを減じた値となる）。また、この場合、圧縮パケットヘッダ１１０００では、不一致フィールド１１００４に、アドレス下位フィールド１０００９の８ビットのデータとその他のフィールド１０００６の７ビットのデータとが格納されることになる。すなわち、不一致フィールド１１００４のビット数は合計で１５ビットとなる。したがって、圧縮パケットヘッダ１１０００は、１ビットのパケット識別子フィールド１１００１と、８ビットのエントリ番号フィールド１１００２と、７ビットの差し替え情報フィールド１１００３と、１５ビットのその他のフィールド１０００６との合計３１ビットから構成されることになる。
【００５２】
同様に、図５のケース番号３、４、５、６および７の例では、圧縮パケットヘッダ１１０００の合計ビット数は２４、４６、５１、５６および６３ビットとなる。
ここで、ケース番号３は、中位アドレスを示すアドレス中位情報を保持するレジスタ３１２０５と、下位アドレスを示すアドレス下位情報を保持するレジスタ３１２０６と、その他のフィールド情報を示すその他情報を保持するレジスタ３１２０７とに保持されているデータが不一致となる例に対応している。
また、ケース番号４は、ケース番号３で不一致としたレジスタ３１２０５〜３１２０７に加え、上位アドレスを示すアドレス上位情報を保持するレジスタ３１２０４に保持されているデータが不一致となる例に対応している。
また、ケース番号５は、ケース番号４で不一致としたレジスタ３１２０４〜３１２０７に加え、リクエスト元の情報を示すリクエスタ情報を保持するレジスタ３１２０３に保持されているデータが不一致となる例に対応している。
また、ケース番号６は、ケース番号５で不一致としたレジスタ３１２０３〜３１２０７に加え、デスティネーションを示すデスティネーション情報を保持するレジスタ３１２０２に保持されているデータが不一致となる例に対応している。
そして、ケース番号７は、ケース番号６で不一致としたレジスタ３１２０２〜３１２０７に加え、パケット種別を示すパケット種別情報を保持するレジスタ３１２０１に保持されているデータが不一致となる例に対応している。
【００５３】
次に、パケット圧縮論理回路２０２３０は、圧縮時のパケットヘッダすなわち圧縮パケットヘッダのビット数と、非圧縮時のパケットヘッダすなわち通常パケットヘッダ１００００のビット数とを比較する（ステップＳ１４）。例えば図５に示した例では、パケット圧縮論理回路２０２３０が、ステップＳ１３で求めた圧縮パケットヘッダのビット数と、通常パケットヘッダ１００００のビット数６４ビットとを比較する。
【００５４】
ステップＳ１３での比較の結果、圧縮時のパケットヘッダすなわち圧縮パケットヘッダのビット数が、非圧縮時のパケットヘッダすなわち通常パケットヘッダ１００００のビット数より少ない場合（ステップＳ１４で「ｙｅｓ」の場合）、パケット圧縮論理回路２０２３０は、エントリ番号（ｉ）および差し替え情報Ｓｉと通常パケットヘッダ１００００とに基づいて圧縮パケットヘッダ１１０００を生成する（ステップＳ１５）。また、ステップＳ１５では、パケットヘッダ１１０００を生成した旨を示す圧縮情報が出力される。
【００５５】
上述したように、図５のケース番号１の例では、圧縮パケットヘッダ１１０００のビット数が１６ビットとなるので、ステップＳ１４では圧縮パケットヘッダのビット数が、通常パケットヘッダ１００００のビット数６４ビットより少ないとパケット圧縮論理回路２０２３０によって判定される（ステップＳ１４で「ｙｅｓ」）。
よって、ステップＳ１５では、パケット圧縮論理回路２０２３０によって圧縮パケットヘッダが生成される。この場合、上述したように、１ビットのパケット識別子フィールド１１００１と、８ビットのエントリ番号フィールド１１００２と、７ビットの差し替え情報フィールド１１００３とからなる合計１６ビットの圧縮パケットヘッダ１１０００がパケット圧縮論理回路２０２３０によって生成される。
【００５６】
また、図５のケース番号２の例では、圧縮パケットヘッダ１１０００のビット数が３１ビットとなるので、ステップＳ１４では圧縮パケットヘッダのビット数が、通常パケットヘッダ１００００のビット数６４ビットより少ないと判定される（ステップＳ１４で「ｙｅｓ」）。よって、ステップＳ１５ではパケット圧縮論理回路２０２３０によって圧縮パケットヘッダが生成される。
この場合、上述したように、１ビットのパケット識別子フィールド１１００１と、８ビットのエントリ番号フィールド１１００２と、７ビットの差し替え情報フィールド１１００３と、１５ビットのその他のフィールド１０００６からなる合計３１ビットの圧縮パケットヘッダ１１０００がパケット圧縮論理回路２０２３０によって生成される。
【００５７】
他方、例えば図５のケース番号５の例では、圧縮パケットヘッダ１１０００のビット数が６７ビットとなるので、ステップＳ１４では圧縮パケットヘッダのビット数が、通常パケットヘッダ１００００のビット数６４ビットより少なくないとパケット圧縮論理回路２０２３０によって判定される（ステップＳ１４で「ｎｏ」）。
この場合には、パケット圧縮論理回路２０２３０は、通常パケット保持レジスタ２０２１０から受信した通常パケットをＳｅｒＤｅｓ送信部２０３００に向けて出力する（ステップＳ１７）。また、ステップＳ１１の判定結果がｎｏとなった場合も同様にステップＳ１７から通常パケットが出力される。
【００５８】
ステップＳ１５でパケット圧縮論理回路２０２３０が圧縮パケットヘッダを生成すると、パット生成論理２０２３０は、通常パケット保持レジスタ２０２１０から受信した通常パケットの通常パケットヘッダ１００００をステップＳ１５で生成した圧縮パケットヘッダで差し替えることで、圧縮パケットを生成し、ＳｅｒＤｅｓ送信部２０３００に向けて出力する（ステップＳ１６）。
【００５９】
例えば、図５のケース番号１の例では、６４ビットの通常パケットヘッダ１００００がパケット圧縮論理回路２０２３０によって１６ビットの圧縮パケットヘッダに差し替えられる。
この場合、６４ビットから１６ビットへの４８ビットの削減効果が得られる。また、図５のケース番号２の例では、６４ビットの通常パケットヘッダ１００００がパケット圧縮論理回路２０２３０によって３１ビットの圧縮パケットヘッダに差し替えられる。この場合、６４ビットから３１ビットへの３３ビットの削減効果が得られる。
同様に、図５のケース番号３とケース番号４の例では、それぞれ２４ビットと２ビットの削減効果を得ることができる。一方、ケース番号５〜７の例では、削減効果が無く、パケットヘッダは圧縮されない。
【００６０】
このように、パケット圧縮論理回路２０２３０は、圧縮辞書テーブル処理部２０２２０から受信したエントリ番号（ｉ）と、差し替え情報Ｓｉの情報を元に、通常パケット保持レジスタ２０２１０から受信した通常パケットヘッダ１００００を圧縮効果がある場合に圧縮パケットヘッダに差し替えることで、圧縮パケットを生成する。
一方、パケット圧縮論理回路２０２３０は、圧縮辞書テーブル処理部２０２２０から受信した差し替え情報Ｓｉで、差し替え情報Ｓｉで差し替えた場合に通常パケットよりビット幅が大きくなる場合は、差し替えを行わず、通常パケットのまま転送を行う。
【００６１】
なお、図５に示した図表について詳細に説明を行うと次のようになる。すなわち、図５に示した図表は、パケット送信側ＬＳＩ２００００のパケット圧縮論理回路２０２３０の動作の一例を示している。
図５の図表では、パケット圧縮論理回路２０２３０が圧縮辞書テーブル処理部２０２２０から受信する差し替え情報Ｓｉのケース（全ケースではない）と、その時に生成する圧縮パケットのビット幅、および、圧縮パケット生成の有無を示している。
なお、各フィールドのビット幅は仮に設定した値であり、コンピュータシステムの制御方式に依存し増減する事が有る。
本実施形態では、パケット識別子フィールドは１ビット幅（０は通常パケット、１は圧縮パケット）、パケット種別フィールドは７ビット、デスティネーションフィールドは５ビット、リクエスタフィールドは５ビット、アドレスフィールドは３９ビットとし、アドレスフィールドの一致比較範囲は上位２２ビット、中位９ビット、下位８ビットと分割している。
また、これら以外の、その他フィールドは７ビットとして、計算している。圧縮パケットに関しては、パケット識別子フィールド１ビット、エントリ番号情報を８ビット、差し替え情報Ｓｉを７ｂｉｔとし、不一致フィールドは、不一致フィールドの数、幅により可変である。この場合、不一致フィールドが存在しない圧縮パケットでも、１６ビットの幅を必要となる。尚、通常パケットのヘッダのビット幅は、６４ビットとしている。
【００６２】
さらに、図５の図表のケース番号１を例に説明する。ケース１では、圧縮辞書テーブル処理部２０２２０から信号線２０２４４で受信する差し替え情報Ｓｉは、比較対象の全てのフィールドで一致を検出したことを示す結果なので、一致ビットは６３ビットという結果となる。
圧縮パケットを生成した場合、不一致フィールド分が存在しないので、圧縮パケットのビット幅は１６ビットのみとなり、４８ビットの削減効果が有る。
この場合、パケット圧縮論理回路２０２３０は効果有りと判断し、差し替え動作を行う。ケース２〜４に関しても同様であるが、不一致した情報を不一致フィールドに追加するため、その分効果は低くなるが、通常パケットと比べてビット幅を削減できるため、圧縮パケットへの差し替えは実施する。ケース５〜７に関しては、圧縮パケットを生成した場合、圧縮パケットの方が通常パケットよりも大きくなるため、圧縮パケットへの差し替えは実施されない。
【００６３】
一方、図１に示したパケット受信部２１２００は、圧縮パケット保持レジスタ２１２１０、圧縮辞書テーブル処理部２１２２０、およびパケット復元論理２１２３０から構成される。圧縮パケット保持レジスタ２１２１０は、ＳｅｒＤｅｓ受信部２１１００から受信した圧縮パケットまたは通常パケットのパケットヘッダをターゲット２１３００へ出力するタイミングまで一時保持する。圧縮辞書テーブル処理部２１２２０は、復元情報のデータとなる先行パケットのヘッダ情報を保持する。パケット復元論理２１２３０は、パケットヘッダを圧縮前の情報に復元し、またはそのまま用いて通常パケットを生成し、ターゲット２１３００へ送信する。
【００６４】
パケット受信側ＬＳＩ２１０００内の圧縮辞書テーブル処理部２１２２０の詳細構成例を図６に示す。なお、図６では、圧縮パケット保持レジスタ２１２１０の中で、圧縮パケットヘッダを保持する部分をレジスタ２１２１０Ａとして、また、通常パケットヘッダ１００００を保持する部分をレジスタ２１２１０Ｂとして示している。
すなわち、図６においてレジスタ（あるいは記憶領域）２１２１１Ｂ〜２１２１８Ｂには、図２（Ａ）に示した通常パケットヘッダ１００００を構成するパケット識別子フィールド１０００１、パケット種別フィールド１０００２、デスティネーションフィールド１０００３、リクエスタフィールド１０００４、アドレス上位フィールド１０００７、アドレス中位フィールド１０００８、アドレス下位フィールド１０００９、およびその他のフィールド１０００６内のデータが保持される。
また、レジスタ（あるいは記憶領域）２１２１１Ａ〜２１２１４Ａには、図２（Ｂ）に示した圧縮パケットヘッダ１１０００を構成するパケット識別子フィールド１１００１、エントリ番号フィールド１１００２、差し替え情報フィールド１１００３、および不一致フィールド１１００４内のデータが保持される。
【００６５】
図３に示した圧縮辞書テーブル処理部２１２２０は、複数のエントリ処理部４１０００（ｉ）と、カウンタ制御回路４４０００と、登録先選択回路４５０００と、パケット情報選択回路４６０００とを有している。各エントリ処理部４１０００（ｉ）は、同一構成であるが、各エントリ処理部４１０００（ｉ）には固有の識別情報（あるいは位置情報）である異なるエントリ番号（ｉ）が割り当てられている。
【００６６】
エントリ処理部４１０００（ｉ）は、Ｖａｌｉｄレジスタ４１１００、およびパケット情報レジスタ４１２００を有している。Ｖａｌｉｄレジスタ４１１００は、図３に示したＶａｌｉｄレジスタ３１１００に対応する構成であり、そのエントリの有効／無効を示す１ビットのデータが格納される。
Ｖａｌｉｄレジスタ４１１００は、例えば、初期化した後等でデータが格納される前の状態で無効に、パケット情報レジスタ４１２００に通常パケットヘッダ１００００が格納された状態で有効に設定される。
パケット情報レジスタ４１２００は、図３に示した登録パケット情報レジスタ３１２００に対応する構成であり、通常パケットヘッダ１００００の各フィールド情報をフィールド単位で読み出しおよび書き込み可能に保持するレジスタである。
一致カウンタ４１３００は、図３に示した一致カウンタ３１３００に対応する構成であり、後続パケットと一致した回数（すなわち、パケット情報レジスタ４１２００が保持するデータがパケットヘッダを復元する際に使用された回数）を保持するカウンタである。
この一致カウンタ４１３００は、初期状態で０にクリアされ、圧縮パケット保持レジスタ２１２１０内のレジスタ２１２１２Ａに保持されたエントリ番号（ｉ）が当該エントリ処理部４１０００（ｉ）のエントリ番号（ｉ）と一致した場合に１ずつカウントアップするカウンタである。
【００６７】
パケット情報レジスタ４１２００は、図３に示した登録パケット情報レジスタ３１２００に対応する構成であり、レジスタ（あるいは記憶領域）４１２０１〜４１２０７を有している。
各レジスタ４１２０１〜４１２０７は、通常パケットヘッダ１００００の各フィールド１０００２〜１０００４、１０００７〜１０００９および１０００６のデータである、パケット種別を示すパケット種別情報、デスティネーションを示すデスティネーション情報、リクエスト元の情報を示すリクエスタ情報、上位アドレスを示すアドレス上位情報、中位のアドレスを示すアドレス中位情報、下位アドレスを示すアドレス下位情報、およびその他のフィールド情報を示すその他情報をそれぞれ保持する。
各レジスタ４１２０１〜４１２０７には、圧縮パケット保持レジスタ２１２１０のレジスタ２０２１１Ｂ〜２０２１４Ｂ、２０２１７Ｂ〜２０２１９Ｂおよび２０２１６Ｂに保持されているデータが取り込まれ、保持される。つまり、圧縮パケット保持レジスタ２１２１０に（圧縮パケットではなく）通常パケットが通過する際に、複数のエントリ処理部４１０００（ｉ）中から登録先選択回路４５０００で１つのエントリ処理部４１０００（ｉ）が選択され、そして、選択されたエントリ処理部４１０００（ｉ）にデータの取り込みが行われる。
【００６８】
また、カウンタ制御回路４４０００は、図３に示したカウンタ制御回路３４０００に対応する構成であり、圧縮パケット保持レジスタ２１２１０内のレジスタ２１２１１Ａに保持されているパケット識別子フィールドが圧縮状態であることを示している場合に、レジスタ２１２１２Ａに保持されたエントリ番号（ｉ）と一致するエントリ処理部４１０００（ｉ）を選択し、選択した一致カウンタ４１３００の値を１加算する。
【００６９】
また、登録先選択回路４５０００は、図３に示した登録先選択回路３５０００に対応する構成であり、各エントリ処理部４１０００（ｉ）０内のパケット情報レジスタ４１２００内の値の更新を制御する回路である。
登録先選択回路４５０００には、圧縮パケット保持レジスタ２１２１０内のレジスタ２１２１１Ｂおよびレジスタ２１２１１Ａに保持されている値（パケット識別子フィールド）と、各エントリ処理部４１０００（ｉ）におけるＶａｌｉｄレジスタ４１１００の値および一致カウンタ４１３００のカウント値とが入力される。
【００７０】
この登録先選択回路４５０００は、圧縮パケット保持レジスタ２１２１０内のレジスタ２１２１１Ｂに保持されているパケット識別子フィールドが圧縮状態ではない（すなわち通常パケットヘッダ１００００である）ことを示している場合に、Ｖａｌｉｄレジスタ４１１００の値と一致カウンタ４１３００のカウント値とに基づいて１つのエントリ処理部４１０００（ｉ）０を選択する。
この選択で用いられる条件は、図３に示した登録先選択回路３５０００で使われるものと同一である。つまり、Ｖａｌｉｄレジスタ４１１００の値が無効であるエントリ処理部４１０００（ｉ）がある場合には、無効であるエントリ処理部４１０００（ｉ）の１つが登録先選択回路４５０００によって選択される。
無効であるエントリ処理部４１０００（ｉ）が複数ある場合には、例えば最も若い番号のエントリ番号（ｉ）のエントリ処理部４１０００（ｉ）が登録先選択回路４５０００によって選択される。
一方、Ｖａｌｉｄレジスタ４１１００の値が無効であるエントリ処理部４１０００（ｉ）がない場合には、一致カウンタ４１３００のカウント値が最も小さいエントリ処理部４１０００（ｉ）の１つが登録先選択回路４５０００によって選択される。
カウント値が最も小さいエントリ処理部４１０００（ｉ）が複数ある場合には、例えば最も若い番号のエントリ番号（ｉ）のエントリ処理部４１０００（ｉ）が登録先選択回路４５０００によって選択される。
【００７１】
そして、登録先選択回路４５０００は、Ｖａｌｉｄレジスタ４１１００の値および一致カウンタ４１３００のカウント値に基づいて選択したエントリ処理部４１０００（ｉ）のパケット情報レジスタ４１２００に、圧縮パケット保持レジスタ２１２１０のレジスタ２１２１０Ｂに保持されているデータを登録する。つまり、圧縮パケット保持レジスタ２１２１０の各レジスタ２０２１２Ｂ〜２０２１４Ｂ、２０２１７Ｂ〜２０２１９Ｂおよび２０２１６Ｂに保持されているデータ（つまり通常パケットヘッダの情報）を、パケット情報レジスタ４１２００の各レジスタ４１２０１〜４１２０７に格納する。
また、登録先選択回路４５０００は、Ｖａｌｉｄレジスタ４１１００の値および一致カウンタ４１３００のカウント値に基づいて選択したエントリ処理部４１０００（ｉ）のＶａｌｉｄレジスタ４１１００の値を有効に設定するとともに、一致カウンタ４１３００のカウント値を０にクリアする。
【００７２】
このようにして、圧縮辞書テーブル処理部２１２２０内の情報と一致しない通常パケットヘッダは、それが圧縮パケット保持レジスタ２１２１０を通過した場合に、無効なエントリ、もしくは、カウント値が最小である圧縮辞書テーブル処理部のエントリ処理部４１０００（ｉ）に取り込まれる。
【００７３】
上記のように、登録先選択回路４５０００によるエントリ処理部４１０００（ｉ）の選択条件は、図３に示した登録先選択回路３５０００によるエントリ処理部３１０００（ｉ）の選択条件と同一となるように設定されている。したがって、圧縮辞書テーブル処理部２０２２０内の各エントリ処理部３１０００（ｉ）の各レジスタ３１１００および３１２００ならびに一致カウンタ３１３００に格納されているデータと、圧縮辞書テーブル処理部２１２２０内の各エントリ処理部４１０００（ｉ）の各レジスタ４１１００および４１２００ならびに一致カウンタ４１３００に格納されているデータとは一致することになる。
【００７４】
すなわち、圧縮辞書テーブル処理部２０２２０のパケット情報の保持制御は、パケット送信側ＬＳＩ２００００の圧縮辞書テーブル処理部２０２２０での制御と同じである。このため、時間差は有るものの、パケット受信側ＬＳＩ２１０００内の圧縮辞書テーブル処理部２１２２０内の情報は、通常パケットが圧縮パケット保持レジスタ２１２１０を通過するタイミングにおいて、該通常パケットが、パケット送信側ＬＳＩ２００００において通常パケット保持レジスタ２０２１０を通過した時点でのパケット送信側ＬＳＩ２００００の圧縮辞書テーブル処理部２０２２０内の情報と一致する。したがって、パケット送信側ＬＳＩ２００００で、ＳｅｒＤｅｓ送信部２０３００から圧縮パケットを出力したタイミングにおけるパケット送信側ＬＳＩ２００００の圧縮辞書テーブル処理部２０２２０内の該パケットで指定したエントリが保持していた情報は、該パケットがパケット受信側ＬＳＩ２１０００の圧縮パケット保持レジスタ２１２１０を通過するタイミングにおけるパケット受信側ＬＳＩ２１０００の圧縮辞書テーブル処理部２１２２０内の該パケットで指定したエントリが保持している情報と一致するため、受信側の圧縮辞書テーブル処理部２１２２０の情報を用いてパケットの復元が可能である。
【００７５】
また、パケット情報選択回路４６０００は、圧縮パケット保持レジスタ２１２１０内のレジスタ２１２１１Ｂおよびレジスタ２１２１１Ａに保持されている値（すなわちパケット識別子）と、レジスタ２１２１２Ａに保持されている値（すなわちエントリ番号（ｉ））と、レジスタ２１２１３Ａに保持されている値（すなわち差し替え情報Ｓｉ）とに基づいて、パケット復元論理２１２３０に出力されるパケット情報を生成する。パケット情報は、差し替えが行われるフィールドのデータを有して構成されるものであり、圧縮パケット保持レジスタ２１２１０に圧縮パケットヘッダが保持されている場合にのみ生成される。すなわち、レジスタ２１２１１Ｂおよびレジスタ２１２１１Ａに保持されている値（すなわちパケット識別子）が圧縮パケットであることを示している場合にのみ生成される。圧縮パケットである場合、パケット情報選択回路４６０００は、レジスタ２１２１２Ａに保持されている値（すなわちエントリ番号（ｉ））で指示されるエントリ処理部４１０００（ｉ）のパケット情報レジスタ４１２００において、レジスタ２１２１３Ａに保持されている値（すなわち差し替え情報Ｓｉ）で指示されたフィールドの値を保持するレジスタ４１２０１〜４１２０７の１または複数に格納されているデータを、パケット情報として出力する。
【００７６】
次に図７を参照して、パケット受信側ＬＳＩ２００００のパケット復元論理２１２３０の動作について説明する。図７は、通常パケットヘッダ１００００の例と、圧縮パケットヘッダの５つの例に対するパケット復元論理２１２３０の動作例を説明するための図表である。図７では、パケット復元論理２１２３０が圧縮パケット保持レジスタ２１２１０から受信する差し替え情報Ｓｉのケース（全ケースではない）と、その時に生成する復元パケットの各フィールドの参照元を示している。これらの例で、パケット識別子フィールドは、０で通常パケット、１で圧縮パケットを表す。なお、Ｘは値が無効であることを示している。差し替え情報Ｓｉは、ビット毎に、１で各フィールドを圧縮辞書テーブル処理部２１２２０内のデータで差し替えること、０で差し替えないことを表す。また、図７の図表の「パケット生成」の欄は、生成されるパケットヘッダの各フィールドが、通常もしくは圧縮パケットヘッダ内のフィールドまたは圧縮辞書テーブル処理部２１２２０内のデータのどれを用いて生成されたかを示している。「そのまま」はパケット受信側ＬＳＩ２００００が受信したパケットヘッダ内の当該フィールドの値をそのまま用いることを示している。「テーブル」は圧縮辞書テーブル処理部２１２２０において対応するエントリ処理部４１０００（ｉ）内のデータを用いることを示している。また、「不一致フィールド」はパケット受信側ＬＳＩ２００００が受信した圧縮パケットヘッダ内の不一致フィールドの値を用いることを示している。
【００７７】
パケット復元論理２１２３０は、圧縮辞書テーブル処理部２１２２０から信号線２１２４３を用いて受信したパケット情報と、圧縮パケット保持レジスタ２１２１０から信号線２１２４２を用い入力された差し替え情報Ｓｉおよび圧縮パケットの不一致フィールドを元に、通常パケットを復元する。
【００７８】
先ず、図７のケース番号１を例に説明する。ケース１では、圧縮パケット保持レジスタ２１２１０のパケット識別子フィールドが０、すなわち通常パケットである事を示している。このため、パケット復元論理２１２３０では、パケットの復元動作は行わない。これに対して、ケース番号２〜６に関しては、圧縮パケット保持レジスタ２１２１０のパケット識別子フィールドが１、すなわち圧縮パケットであるため、パケット復元論理２１２３０は、パケットの復元動作を行う。この時、圧縮パケット保持レジスタ２１２１０から信号線２１２４２を用いて入力された差し替え情報Ｓｉが「１」であるビットに対応するフィールドに関しては、圧縮辞書テーブル処理部２１２２０から信号線２１２４３を用いて出力されたパケット情報を参照し、各フィールドの情報を生成する。差し替え情報Ｓｉが「０」であるビットに対応するフィールドに関しては、信号線２１２４２を用いて入力した不一致フィールドの情報を参照してフィールドの情報を生成し、各フィールドをマージして元のパケットの情報に復元する。
【００７９】
以降では、図１および図８を参照し、連続したアドレス空間に対する複数のパケット転送を行うＤＭＡ転送を例に、圧縮辞書への登録、および、後続パケットにおけるパケットヘッダの圧縮、復元についての動作を説明する。図８は、以下の動作例で処理される情報の具体例を示している。また、圧縮辞書テーブル処理部２０２２０および２１２２０にはデータがなにも登録されていないこととする。
【００８０】
［圧縮辞書への登録］
リクエスタ２０１００がターゲット２１３００のメモリに対するＤＭＡ転送の最初のパケットの送出を行う。最初のパケットがリクエスタ２０１００からパケット送信部２０２００へ出力され、パケット送信部２０２００内の通常パケット保持レジスタ２０２１０に取り込まれる。通常パケット保持レジスタ２０２１０はパケットヘッダの情報を信号線２０２４１で送信側の圧縮辞書テーブル処理部２０２２０へ出力する。以下では、図８（Ａ）のパケットヘッダＰ１が圧縮辞書テーブル処理部２０２２０へ出力された場合を例にとり説明する。図８（Ａ）のパケットヘッダＰ１は、各フィールド１０００１〜１０００４、１０００７〜１０００９および１０００６にデータＤ１〜Ｄ８を格納して構成されている。ただし、Ｄ１は圧縮されていないパケットヘッドであることを示す０となっている。
【００８１】
送信側の圧縮辞書テーブル処理部２０２２０は、信号線２０２４１を参照し、圧縮対象のパケットヘッダが、送信側の圧縮辞書テーブル処理部２０２２０内の有効なエントリに一致する、もしくは、一部の情報が一致するエントリが存在するか否かを判定する（ここでは、最初のパケットなので一致するエントリは存在しない）。この場合、送信側の圧縮辞書テーブル処理部２０２２０における判定の結果、エントリの一致は無かったため、送信側の圧縮辞書テーブル処理部２０２２０は、差し替え情報Ｓｉ（信号線２０２４４）として、一致なし（差し替え情報Ｓｉ＝オール０）という結果をパケット圧縮論理回路２０２３０へ出力する。また、差し替え情報Ｓｉ＝オール０なので、パケット圧縮論理回路２０２３０からは圧縮情報（信号線２０２４５）として圧縮処理を行わない旨の情報が出力される。したがって、送信側の圧縮辞書テーブル処理部２０２２０は、テーブル内の各エントリ処理部３１０００（ｉ）が有する一致カウンタカウンタ値を比較し、一致回数が一番少ないエントリ、もしくは、無効なエントリへ、通常パケット保持レジスタ２０２１０からのパケットヘッダＰ１の情報を全て取り込み、以降は有効なエントリとして、保持する。ここでは、図８（Ｂ）に示すようにエントリ番号「１」のエントリ処理部３１０００（ｉ）における登録パケット情報レジスタ３１２００の各レジスタ３１２０１〜３１２０７にパケットヘッダＰ１のパケット識別子フィールド１０００１を除く各フィールドのデータＤ２〜Ｄ８が取り込まれる。
【００８２】
送信側の圧縮辞書テーブル処理部２０２２０から、差し替え情報Ｓｉ（信号線２０２４４）として、一致なし（オール０）という結果を受信した、パケット圧縮論理回路２０２３０は、圧縮動作は行わず、通常パケット保持レジスタ２０２１０からの信号線２０２４２を用いて受信した通常パケットをそのままの形でＳｅｒＤｅｓ送信部２０３００へ転送する。ここでＳｅｒＤｅｓ送信部２０３００へ転送された通常パケットのパケットヘッダは、図８（Ａ）の通常パケットヘッダＰ１と同一である。
【００８３】
ＳｅｒＤｅｓ２２０００を通過して、パケット受信側ＬＳＩ２１０００のＳｅｒＤｅｓ受信部２１１００へ受信されたパケットは、パケット受信部２１２００の圧縮パケット保持レジスタ２１２１０へ圧縮されていないパケットの形（パケット識別＝０）で取り込まれる。圧縮パケット保持レジスタ２１２１０は受信側の圧縮辞書テーブル処理部２１２２０へ受信したパケットヘッダの情報を信号線２１２４１で出力し、これを受信した受信側の圧縮辞書テーブル処理部２１２２０は、送信側の圧縮辞書テーブル処理部２０２２０と同様に、受信側の圧縮辞書テーブル処理部２１２２０内の有効なエントリに一致する、もしくは、一部の情報が一致するエントリが存在するか否かの判定を行う（ここでは送信側と同様に、一致するエントリは存在しない）。
【００８４】
受信側の圧縮辞書テーブル処理部２１２２０の判定の結果、エントリの一致は無かったため、受信側の圧縮辞書テーブル処理部２１２２０は、テーブル内の各エントリ処理部４１０００（ｉ）が有する一致カウンタ４１３００のカウンタ値を比較し、一致回数が一番少ないエントリ、もしくは、無効なエントリへ圧縮パケット保持レジスタ２１２１０からのパケットヘッダの情報を全て取り込み、以降は有効なエントリとして、保持する。尚、登録エントリを決定する論理も、送信側の圧縮辞書テーブル処理部２０２２０と受信側の圧縮辞書テーブル処理部２１２２０で同じとするため、本例で示した、１つのパケットが二つの圧縮辞書内において登録されるエントリの番号は、同一となる。すなわち、図８（Ｃ）に示したように、エントリ番号１のエントリ処理部４１０００（ｉ）におけるパケット情報レジスタ４１２００の各レジスタ４１２０１〜４１２０７にパケットヘッダＰ１のパケット識別子フィールド１０００１を除く各フィールドのデータＤ２〜Ｄ８が取り込まれる。
【００８５】
圧縮パケット保持レジスタ２１２１０は受信側の圧縮辞書テーブル処理部２１２２０へパケット情報を出力すると同時に、パケット復元論理２１２３０へパケットの情報を信号線２１２４２で出力する。これを受信したパケット復元論理２１２３０はパケットの復元動作は行わず、そのままのパケットの情報を、ターゲット２１３００へ出力する。ここでターゲット２１３００へ出力されるパケットのパケットヘッダは、図８（Ａ）の通常パケットヘッダＰ１と同一である。
【００８６】
ＤＭＡ転送の最初のパケットの転送に関しては、圧縮動作が行われていないため、スループットの改善効果は無く、圧縮辞書テーブル処理部の情報を更新したのみの動作となる。
【００８７】
［パケットの圧縮と復元動作］
リクエスタ２０１００がターゲット２１３００のメモリに対するＤＭＡ転送の２個目のパケットの送出を行う。最初のパケットとのパケットヘッダ差分は、アドレスの下位のみであり、他は全て一致する。図８（Ｄ）に２個目のパケットとしての通常パケットヘッダＰ２を示した。通常パケットヘッダＰ２では、アドレス下位フィールド１０００９の値がＤ７からＤ７−２に変わっている。
【００８８】
リクエスタ２０１００は２個目のＤＭＡパケットをパケット送信部２０２００へ出力し、パケット送信部２０２００内の通常パケット保持レジスタ２０２１０に取り込まれる。通常パケット保持レジスタ２０２１０はパケットヘッダの情報を信号線２０２４１で送信側の圧縮辞書テーブル処理部２０２２０へ出力する。送信側の圧縮辞書テーブル処理部２０２２０は、該信号２０２４１を参照し、送信側の圧縮辞書テーブル処理部２０２２０内の有効なエントリに一致する、もしくは、一部の情報が一致するエントリが存在するか否かを判定する。送信側の圧縮辞書テーブル処理部２０２２０は１個目のＤＭＡパケットで登録したエントリの情報とアドレス下位以外の情報が一致している事を検出し、パケット圧縮論理回路２０２３０へ、エントリ番号（信号線２０２４３）および差し替え情報Ｓｉ（信号線２０２４４）を出力する。また、送信側の圧縮辞書テーブル処理部２０２２０は、パケット圧縮論理回路２０２３０から圧縮した旨を示す圧縮情報が入力された場合に、一致したエントリの一致カウンタ３１３００を１加算し、圧縮転送が行われた回数を記録する。この例では、差し替え情報Ｓｉは、２進数で「１１１１１０１」となる。ただし、差し替え情報Ｓｉの各ビットは、０が差し替えを行わない場合、１が差し替えを行う場合を示している。また、差し替え情報Ｓｉの各ビットは、最上位ビットがパケット種別フィールド１０００２に対応し、順次下位に向けて、デスティネーションフィールド１０００３、リクエスタフィールド１０００４、アドレス上位フィールド１０００７、アドレス中位フィールド１０００８、アドレス下位フィールド１０００９、およびその他のフィールド１０００６に対応している。すなわち、差し替え情報Ｓｉ「１１１１１０１」は、アドレス下位フィールド１０００９の差し替えを行わず、他のフィールドについては差し替えを行うことを示している。
【００８９】
有効な差し替え情報Ｓｉ（すなわちいずれかのビットが１となっている差し替え情報Ｓｉ）（信号線２０２４４）を受信したパケット圧縮論理回路２０２３０は、パケット識別子を１（圧縮パケット）として、送信側の圧縮辞書テーブル処理部２０２２０から受信したエントリ番号の情報、および、差し替え情報Ｓｉを、それぞれエントリ番号フィールド、および、差し替え情報フィールドに、通常パケット保持レジスタ２０２１から信号線２０２４２で受信したアドレスの下位フィールドを不一致フィールドに適用した、圧縮パケットを生成し、ＳｅｒＤｅｓ送信部２０３００へ転送する。図８（Ｅ）にここでＳｅｒＤｅｓ送信部２０３００へ転送される圧縮パケットの圧縮パケットヘッダＰ３を示した。圧縮パケットヘッダＰ３のパケット識別子フィールド１１００１は「１」、エントリ番号フィールド１１００２はエントリ番号＝「００００００１」、差し替え情報フィールド１１００３は差し替え情報Ｓｉ「１１１１１０１」、および不一致フィールド１１００４は通常パケットヘッダＰ２のアドレス下位フィールドの値「Ｄ７−２」となっている。
【００９０】
ＳｅｒＤｅｓ２２０００を通過して、パケット受信側ＬＳＩ２１０００のＳｅｒＤｅｓ受信部２１１００へ受信された圧縮パケットは、パケット受信部２１２００の圧縮パケット保持レジスタ２１２１０へ圧縮パケットの形（パケット識別＝１）で取り込まれる。圧縮パケット保持レジスタ２１２１０は受信側の圧縮辞書テーブル処理部２１２２０へパケットヘッダの情報を信号線２１２４１で出力する。これを受信した受信側の圧縮辞書テーブル処理部２１２２０は、圧縮パケットヘッダのエントリ番号フィールド１１００２の情報から、先のＤＭＡ転送パケット受信時に該エントリに登録された情報を読み出し、パケット情報として、パケット復元論理２１２３０へ出力する。また、これと同時に、該エントリの一致カウンタ４１３００を１加算し、送信側の圧縮辞書テーブル処理部２０２２０の情報と一致させる。
【００９１】
圧縮パケット保持レジスタ２１２１０は受信側の圧縮辞書テーブル処理部２１２２０へパケットヘッダの情報を出力すると同時に、パケット復元論理２１２３０へパケットの情報を信号線２１２４２で出力する。これを受信したパケット復元論理２１２３０は、差し替え情報Ｓｉを元に、パケットの復元を行う。即ち、この例において、差し替え情報Ｓｉでは、アドレス下位以外のフィールドは圧縮辞書テーブル処理部２１２２０に一致という情報となるので、アドレス下位以外の情報は、受信側の圧縮辞書テーブル処理部２１２２０から出力されたパケット情報を参照し、アドレス下位のフィールドに関しては、圧縮パケット保持レジスタ２１２１０からの不一致フィールドの情報を参照する事で、パケットの復元を行う。図８（Ｅ）および（Ｆ）はここで復元された復元パケットのパケットヘッダＰ３と各フィールドのデータの参照元との関係を示している。アドレス下位フィールド１１００９のデータＤ７−２は圧縮パケットヘッダＰ３の不一致フィールド１１００４に基づいて復元されている。他のフィールドは、受信側の圧縮辞書テーブル処理部２１２２０のエントリ番号＝１のエントリ処理部４１０００（ｉ）のパケット情報レジスタ４１２００の対応するフィールドのデータに基づいて復元されている。
【００９２】
そして、パケットヘッダを復元したパケット復元論理２１２３０は、ターゲット２１３００へ該復元したパケットヘッダを出力する。
【００９３】
本実施形態によれば、圧縮対象となる入力情報の全部とエントリ毎のエントリ登録情報の全部とが一致していなくても、いずれかのエントリ処理部３１０００（ｉ）において、圧縮対象となる入力情報の一部と圧縮辞書テーブル処理部内のエントリ登録情報のいずれかのフィールドの情報とが一致していれば、パケット圧縮論理回路２０２３０によって当該エントリを表すエントリ番号（ｉ）を用いて圧縮した情報を生成することが可能となる。すなわち、圧縮辞書のエントリ数（すなわちデータ登録数）を増やすことなく、エントリ番号（すなわち圧縮辞書のポインタ）を用いてデータの差し替えを行うことができる確率を高めることができる。
【００９４】
なお、上記の実施形態では、圧縮対象をパケットヘッダの部分としているが、これに限らず、本発明は、パケットヘッダ以外の例えば所定の制御情報などのデータに対して適用することも可能である。
【００９５】
なお、本発明の特徴は次のようにとらえることができる。本発明は、ＬＳＩ間のデータ転送および制御情報の転送を、パケットを用いて転送するコンピュータシステムにおいて、出現頻度の高いパケットヘッダ等を、パケットの送出制御部で圧縮して転送する機能と、パケットの受信部において、該圧縮パケットを復元する機能を設けることにより、必要な情報を失うことなく、転送経路のスループットを改善できる事を特徴としている。
【００９６】
また、本発明は、複数のエントリを有し、パケットのヘッダ情報等を格納する事ができる圧縮辞書テーブル処理部をパケット送信部、およびパケット受信部に設け、パケット送信部からパケット受信部へ通過するパケットに同期して、それぞれの圧縮辞書内の情報を同じ状態とする様に制御する。パケット送信部においては、パケット受信部へ転送するパケットのアドレス等の情報を、圧縮辞書テーブル処理部で索引し、圧縮可能なパケットであると判断した場合は、パケットのヘッダ情報等をパケット受信部に在る圧縮辞書内のポインタ（ヘッダ情報等より短い情報）に差し替える事で、パケットヘッダ等の情報量を削減し、転送経路に占めるパケットヘッダ等の帯域を小さくする事でスループットを向上する事を可能とする。また、パケット受信部においては、圧縮辞書内のポインタからヘッダ情報を復元することで、情報を失うことなく従来と同様に動作する事を可能とする。
【００９７】
なお、本発明の実施の形態に対しては、例えば、パケット送信部２０２００やパケット受信部２１２００内のブロックを分割したり、統合したり、多重化したりする等の変更を適宜行うことが可能である。また、上記実施形態では、登録先選択回路３５０００および登録先選択回路４５０００についてはＶａｌｉｄレジスタの値や一致カウンタのカウント値に基づいて登録先のエントリ番号（ｉ）を選択することとしたが、不揮発性のメモリなどを用いて過去の使用実績を記録してそれに基づいて登録先のエントリを決定する等、他の手法を用いて登録先を決定することもできる。また、本発明のデータ転送制御装置は、パケット送信部２０２００としてとらえるだけでなく、パケット送信側ＬＳＩ２００００としてとらえるようにしたり、さらにパケット受信側ＬＳＩ２１０００とあわせて送受信システムとしてとらえるようにしたりすることもできる。また、パケット送信部２０２００等は、ＣＰＵ（中央処理装置）とＣＰＵで実行されるプログラムとを用いて構成することができ、そのプログラムは通信回線やコンピュータ読み取り可能な記録媒体に記録して流通させることが可能である。
【００９８】
なお、上記実施形態の構成と、特許請求の範囲の記載事項との対応は次のとおりである。特許請求の範囲の「記憶手段」は圧縮辞書テーブル処理部２０２２０および登録パケット情報レジスタ３１２００に対応している。「圧縮対象の情報」は通常パケットヘッダに対応している。「エントリ」はエントリ処理部３１０００（ｉ）に、「区分」はフィールド１０００２〜１０００９およびレジスタ３１２０１〜３１２０７に対応している。「第１の比較手段」は圧縮辞書テーブル処理部２０２２０およびコンパレータ３１４０１〜３１４０７に対応している。「第２の比較手段」は圧縮辞書テーブル処理部２０２２０およびビット幅比較論理回路３２０００に対応している。「第１の情報」はエントリ番号フィールド１１００２に、「第２の情報」は差し替え情報フィールド１１００３に、「第３の情報」は不一致フィールド１１００４に、それぞれ対応している。「計数手段」が一致カウンタ３１３００に対応している。そして、「有効情報記憶手段」がＶａｌｉｄレジスタ３１１００に対応している。
【００９９】
また、「送信手段」は、ＳｅｒＤｅｓ送信部２０３００に対応している。「受信手段」はＳｅｒＤｅｓ受信部２１１００に対応している。「第１の記憶手段」は圧縮辞書テーブル２０２２０および登録パケット情報レジスタ３１２００に対応している。「第２の記憶手段」は圧縮辞書テーブル処理部２０２２０およびパケット情報レジスタ４１２００に対応している。「復元手段」はパケット復元論理２１２３０に対応している。「第１の区分情報」はレジスタ４１２０１〜４１２００に格納されているデータに対応している。「第２の区分情報」は不一致フィールド１１００４に格納されているデータに対応している。
【０１００】
また、上記実施形態の構成を主要な機能毎にまとめ、模式的に示すと図９に示すように表すことができる。なお、上記実施形態の構成に対応するものには同一の符号を付けている。すなわち、本発明のデータ転送制御装置１０は、エントリ毎に複数に区分された情報を複数エントリ分記憶する記憶手段１と、圧縮対象の情報２０と記憶手段１に記憶されている情報とをエントリ毎かつ区分毎に比較する第１の比較手段２と、第１の比較手段２による比較結果を複数のエントリ間で比較する第２の比較手段３と、第２の比較手段３による比較結果に基づいて選択された１つのエントリを表す第１の情報と、選択したエントリにおいて圧縮対象の情報２０と一致した１個以上の区分を表す第２の情報と、圧縮対象の情報２０において選択したエントリに記憶されている情報と一致しなかった０個以上の区分に対応する情報を表す第３の情報とを用いて転送情報を生成する圧縮手段４とを備えることで構成されている。
【０１０１】
また、本実施の形態に係るパケット送信側ＬＳＩ２００００とパケット受信側ＬＳＩ２１０００は、内部にコンピュータシステムを有している。そして、動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１０２】
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものであってもよい。
【０１０３】
さらに、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１０４】
２００００  パケット送信側ＬＳＩ
２０１００  リクエスタ
２０２００  パケット送信部
２０２１０  通常パケット保持レジスタ
２０２２０  圧縮辞書テーブル処理部
２０２３０  ＳｅｒＤｅｓ送信部
２０２３０  パケット生成論理
２１０００  パケット受信側ＬＳＩ
２１１００  ＳｅｒＤｅｓ受信部
２１２００  パケット受信部
２１２１０  圧縮パケット保持レジスタ
２１２２０  圧縮辞書テーブル処理部
２１２３０  パケット復元論理
１１００１  パケット識別子フィールド
１１００２  エントリ番号フィールド
１１００３  差し替え情報フィールド
１１００４  不一致フィールド
【図１】
0005828256.tif 000002
【図２】
0005828256.tif 000003
【図３】
0005828256.tif 000004
【図４】
0005828256.tif 000005
【図５】
0005828256.tif 000006
【図６】
0005828256.tif 000007
【図７】
0005828256.tif 000008
【図８】
0005828256.tif 000009
【図９】
0005828256.tif 000010