(57)【要約】【課題】パケット受信処理資源のコストを抑えながら２つのチャネル間で重複するパケットを処理する。【解決手段】演算処理装置は、２つのチャネルの入力側において第１のパケットの末尾と第２のパケットの先頭とが同一サイクルで重複する状況において、第２のパケットが１サイクル長のパケットであることを検出すると、２つのチャネルの出力側において第２のパケットの側のチャネルを１サイクル遅延した遅延状態とさせる遅延交換処理部と、遅延交換処理部から出力される２つのチャネルのパケットを処理するパケット処理部とを含む。【選択図】図９
2020072337.tif 000002
【特許請求の範囲】
【請求項１】
２つのチャネルの入力側において第１のパケットの末尾と第２のパケットの先頭とが同一サイクルで重複する状況において、前記第２のパケットが１サイクル長のパケットであることを検出すると、前記２つのチャネルの出力側において前記第２のパケットの側のチャネルを１サイクル遅延した遅延状態とさせる遅延交換処理部と、
前記遅延交換処理部から出力される前記２つのチャネルのパケットを処理するパケット処理部と
を含む演算処理装置。
【請求項２】
前記遅延交換処理部は、前記遅延状態において、前記２つのチャネルの入力側においていずれのチャネルにもパケットが存在しないサイクルが発生すると、前記遅延状態を終了させる請求項１記載の演算処理装置。
【請求項３】
前記遅延交換処理部は、前記遅延状態において、前記第２のパケットの側のチャネルの入力側において複数サイクル長である第３のパケットの末尾と複数サイクル長である第４のパケットの先頭とが連続すると、前記遅延状態を終了すると共に、前記２つのチャネルの出力側においてチャネル間でデータを交換するデータ交換状態を開始する請求項１又は２記載の演算処理装置。
【請求項４】
前記遅延交換処理部は、前記データ交換状態において、前記２つのチャネルの入力側において複数チャネル長である第５のパケットの末尾と複数サイクル長パケットの先頭とが重複していないとき、前記第５のパケットの末尾が発生したサイクルで前記データ交換状態を終了させる請求項３記載の演算処理装置。
【請求項５】
前記遅延交換処理部は、
前記２つのチャネルの入力側においてパケットの状態をデコードするデコード部と、
前記デコード部の出力を論理演算する論理回路と、
前記２つのチャネルの入力側から受け取ったデータを１クロックサイクル遅延させる遅延回路と、
前記２つのチャネルの入力側におけるデータと前記遅延回路から出力されるデータとのいずれかを前記論理回路の出力に応じて選択する第１のセレクタ回路と
を含む請求項１乃至４のいずれか一項に記載の演算処理装置。
【請求項６】
前記遅延交換処理部は、
前記２つのチャネルのうちの第１のチャネルに対応するデータと前記２つのチャネルのうちの第２のチャネルに対応するデータとの一方を前記論理回路の出力に応じて選択する第２のセレクタ回路と、
前記２つのチャネルのうちの前記第１のチャネルに対応するデータと前記２つのチャネルのうちの前記第２のチャネルに対応するデータとの他方を前記論理回路の出力に応じて選択する第３のセレクタ回路と
を含む請求項５に記載の演算処理装置。
【請求項７】
２つのチャネルのパケットを処理する演算処理装置において、
２つのチャネルの入力側において第１のパケットの末尾と第２のパケットの先頭とが同一サイクルで重複する状況において、前記第２のパケットが１サイクル長のパケットであることを検出すると、前記２つのチャネルの出力側において前記第２のパケットの側のチャネルを１サイクル遅延した遅延状態とさせ
前記２つのチャネルの出力側におけるパケットを処理する
各段階を実行する演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
ＰＣＩｅ（Peripheral Component Interconnect Express）は、ポイント・トゥ・ポイントのシリアルリンクであり、マザーボードレベルでの相互接続及び拡張カードインターフェース等に用いられる。１，２，４，８，１２，１６，又は３２レーンでの２点間の相互接続が可能であり、１レーンは、送信及び受信の各々に一対の差動ペアが割り当てられた４本の信号線からなる。ＰＣＩｅでは情報伝送の制御・管理のために、ソフトウェア層、トランザクション層、テータリンク層、及び物理層からなる階層構造が規定されている。
【０００３】
送信側のソフトウェア層では、読み出しや書き込みをリクエストするために、ＴＬＰ（Transaction Layer Packet）の生成に必要な情報（トランザクションタイプ、アドレス、送信データ量等）をトランザクション層に送信する。受信側のソフトウェア層では、トランザクション層が受信したＴＬＰに含まれる情報（トランザクションタイプ、アドレス、受信データ量等）をトランザクション層から受けとる。
【０００４】
トランザクション層では、ソフトウェア層から受け取った情報に基づいて、ヘッダ、ペイロード（書き込みリクエストの場合）、及び必要に応じてＥＣＲＣ（End to End CRC）を含むＴＬＰを生成し、生成したＴＬＰをデータリンク層に送信する。ヘッダは、アドレス、ＴＬＰタイプ、転送サイズ、リクエスターＩＤ又はコンプリーターＩＤ、タグ等を含む。ここでリクエスターＩＤは要求側が送信するリクエストＴＬＰに含まれ、コンプリーターＩＤは要求に応答する側が送信するコンプリーションＴＬＰに含まれる。タグはリクエストＴＬＰとコンプリーションＴＬＰとで同じものが用いられる。受信側のトランザクション層では、データリンク層から受信したＴＬＰに対してＥＣＲＣエラーをチェックし、エラーが無く且つその他の不備も無ければヘッダに含まれる情報及びペイロードをソフトウェア層に送信する。送信側のトランザクション層においては、要求送信時のリクエストＴＬＰのタグと応答受信時のコンプリーションＴＬＰのタグとを照合することにより、期待した応答が返ってきたかのチェック（コンプリーションチェック）が行われる。
【０００５】
送信側のデータリンク層では、シーケンス番号とＬＣＲＣ（Link CRC）とをＴＬＰに付加し、これらが付加されたＴＬＰを物理層に送信する。また当該ＴＬＰのコピーが再送バッファ（Retry Buffer）に保存される。受信側のデータリンク層では、物理層を介して受信したＴＬＰに対してパケットの抜けや多重受信チェックをシーケンス番号に基づいて行うと共に、ＬＣＲＣエラーをチェックする。受信側のデータリンク層は、エラーがなければＡＣＫ−ＤＬＬＰ（Data Link Layer Packet）を生成して送信側に送信すると共に、シーケンス番号とＬＣＲＣとを取り除いたＴＬＰをトランザクション層に送信する。送信側のデータリンク層では、ＡＣＫ−ＤＬＬＰを受信側から受け取ることによりＴＬＰの送信完了を確認し、再送バッファをクリアする。一方、エラー発生を示すＮＡＫ−ＤＬＬＰを受信側から受け取った場合には、送信側のデータリンク層は、再送バッファに保存されているＴＬＰを再送信する。
【０００６】
物理層では、データリンク層から受け取ったＴＬＰ又はＤＬＬＰに対してスタートとエンドとを示すフレーミングキャラクタ（即ちフレーミングシンボル又はフレーミングトークン）を付加する。仕様及び条件によってはスタートを示すフレーミングキャラクタのみが付加され、エンドを示すフレーミングキャラクタは付加されない。フレーミングキャラクタの付加されたパケットはリンクを介して相手側に送信される。物理層がリンクからパケットを受信すると、当該パケットはデータリンク層に送信される。フレーミングキャラクタは、パケットの開始と終了を検出するために用いられる。リンクに複数のレーンが存在する場合、物理層からリンクに送信されるパケットは、複数のレーンに対して順番にバイト毎に割り振られる。
【０００７】
ＰＣＩｅのリンクを介しての情報の送受信に関しては、クレジット管理によるフロー制御が行われる。フロー制御はトランザクション層においてフロー制御のためのＤＬＬＰを定期的に送信することにより実行され、受信側のバッファにＴＬＰを受信するスペースが存在しない限り送信側からＴＬＰを送信しないように制御する。
【０００８】
図１は、８レーンでのデータ伝送におけるパケット配置の一例を示す図である。パケット配置２０１は、物理層における８個のレーンＬａｎｅ０乃至Ｌａｎｅ７に対して割り当てられたパケットの配置の一例を示す。１レーンには１バイト（８ビット）の情報が割り当てられ、伝送するパケットが８個のレーンＬａｎｅ０乃至Ｌａｎｅ７の各々に対して１バイト毎に順番に割り当てられる。図１に示されるパケット配置２０１では、４個のレーンが１つの枠に纏めて示されており、図示される枠の１つが４バイト長の情報を示す。パケット配置２０１における１行（横一列）が１シンボルのサイクルに対応する。
【０００９】
ＴＬＰを送信する場合、例えばＰＣＩｅ−Ｇｅｎ３ならばｓｔｐトークン（ＴＬＰのスタートを示すフレーミングトークン）に続き、データリンク層から供給されたＴＬＰの情報が各レーンに配置される。ｓｔｐトークンは４バイト長であり、ＴＬＰの情報は、３又は４ダブルワード（１２又は１６バイト）に亘るヘッダＨＤＲとペイロードＤＴ０乃至ＤＴＰｘ（ｘは正の整数）とを含む。ペイロードはＤＴ０のみである場合もある。各レーンでは、１２８ビットの情報を１２８ｂ／１３０ｂ符号化により１３０ビットに変換し、変換後の情報をシリアルに送信する。
【００１０】
パケット配置２０２は、物理層においてパケット配置２０１に示される複数のパケットを受信した場合に、各パケットからフレーミングトークンｓｔｐを取り除き、残りの情報（データリンク層で用いる情報）を８バイト幅のパラレルバスに配置した配置例を示す。８レーンのリンクを介して情報の送受信を行う場合、データリンク層以上の層では８バイト幅のパラレルバスを用いて、上記の１シンボルを１クロックサイクルで転送する。図１では、パケット配置２０１が４バイト幅のグループ２つに分けて示されているのに合わせて、パケット配置２０２も４バイトずつ纏めて上位４バイト［６３：３２］と下位４バイト［３１：０］とに分けて示している。
【００１１】
データリンク層においては、その後の処理のしやすさを考慮して、各パケットの先頭は上位４バイト［６３：３２］側に詰めて配置（即ち図１において左詰で配置）し、且つ１つのパケットに含まれる情報は隙間を空けずに連続して配置する。そのようにしてパケットをデータリンク層に配置した結果、パケットの末尾が上位４バイト［６３：３２］側に位置する場合には、下位４バイト［３１：０］側は空とする。
【００１２】
図１に示す第１のクロックサイクルでは、パケット配置２０１においてｓｔｐとＨＤＲ２０３とを受信しているが、このＨＤＲ２０３をパケット配置２０２の第１のクロックサイクルで左詰に配置してしまうと、下位４バイトが空いてしまう。従って、パケット配置２０２においてはＨＤＲ２０３を第２のクロックサイクルで左詰に配置し、パケット配置２０１において第２クロックサイクルで受信したＨＤＲ２０４をパケット配置２０２において第２クロックサイクルの下位４バイト側に配置している。以下同様にして、物理層で受信したパケット配置２０１の各パケットをデータリンク層において８バイトのパラレルバスに配置すると、図１にパケット配置２０２として示される配置が得られる。
【００１３】
データリンク層におけるパケット配置２０２のパラレルデータを生成する際には、物理層で受信した各パケットからｓｔｐトークンの４バイト分を取り除いている。上記のようにパケットの先頭を左詰にすることにより生じる空白は最大で４バイトであるので、この空白を設けることにより生じる遅延は、４バイトのｓｔｐトークンを除去することにより埋め合わせされる。従って、物理層において８レーンに割り当てられたパケットをデータリンク層において８バイトのパラレルバスに配置する際に、徐々にタイミングが遅れてしまうことはない。即ち、受信側において、相手側から送信されてくる情報を受信できなくなることはない。
【００１４】
図２は、１６レーンでのデータ伝送におけるパケット配置の一例を示す図である。パケット配置２１１は、物理層における１６個のレーンＬａｎｅ０乃至Ｌａｎｅ１５に対して割り当てられたパケットの配置の一例を示す。１レーンには１バイト（８ビット）の情報が割り当てられ、伝送するパケットが１６個のレーンＬａｎｅ０乃至Ｌａｎｅ１５の各々に対して１バイト毎に順番に割り当てられる。図２に示されるパケット配置２１１では、４個のレーンが１つの枠に纏めて示されており、図示される枠の１つが４バイト長の情報を示す。パケット配置２１１における１行（横一列）が１シンボルのサイクルに対応する。各パケットの構成及びリンクを介しての情報伝送の態様は図１の場合と同様である。またデータリンク層において、各パケットの先頭は上位４バイト側に詰めて配置し、且つ１つのパケットに含まれる情報は隙間を空けずに連続して配置するという原則も、図１の場合と同様である。
【００１５】
物理層で受信したパケット配置２１１からデータリンク層におけるパラレルデータを生成する際には、受信した各パケットからｓｔｐトークンの４バイト分を取り除くことになる。しかしながら、１６レーン構成の場合、パケットの先頭を左詰にすることにより生じる空白は最大で１２バイト（４バイト×３個）であるので、この空白を設けることにより生じる遅延は、４バイトのｓｔｐトークンを除去しても埋め合わせることはできない。従って、物理層において１６レーンに割り当てられたパケットをデータリンク層において１６バイト幅の一本のパラレルバスに配置したのでは、徐々にタイミングが遅れていってしまう。
【００１６】
図２の右側に示すパケット配置２１２及び２１３は、パケット配置２１１で受信した複数のパケットをパラレルデータとしてデータリンク層に配置した場合の配置の一例である。パケット配置２１２及び２１３は各々が１６バイト幅である２個のパラレルバス（２個のチャネル）に対応している。パケット配置２１１に示される各パケットからフレーミングトークンｓｔｐを取り除いた残りの情報（データリンク層で用いる情報）が、これら２個のチャネルに配置されている。
【００１７】
図１に示す８レーン構成の場合には、データリンク層において８バイト幅のパラレルバス一本で充分であった。しかし図２に示す１６レーン構成の場合には、前述のように最大で１２バイトの空白が生成されるので、データリンク層において１６バイト幅のパラレルバス一本では不十分である。即ち、物理層において１６レーンに割り当てられたパケットをデータリンク層において１６バイトのパラレルバス一本に配置したのでは、徐々にタイミングが遅れ、相手側から送信されてくる情報を受信できなくなってしまう。そこで図２に示すパケット配置２１２及び２１３のように、各々が１６バイト幅である２個のチャネルにパケットを配置することにより、相手側から送信されてくる情報を漏れなく受信することが可能となる。
【００１８】
図２から分かるように、パケット配置２１２とパケット配置２１３との間では、殆どのクロックサイクルにおいてパケット同士の重なりがない。２つのチャネル間でパケット同士が重なるのは、あるパケットの末尾と次のパケットの先頭とが同一のクロックサイクルに位置する場合のみである。一般に、受信側においてパケットの先頭で実行する処理とパケットの末尾で実行する処理とは異なるので、あるパケットの末尾と次のパケットの先頭とが重なっても、受信処理のための資源を二重に設ける必要はない。しかしながらパケットのなかには、１クロックサイクルの長さのパケットも存在する。そのような１サイクルパケットの先頭と末尾とは同一のクロックサイクルにおいて受信される。
【００１９】
先行パケットの末尾と後続パケットの先頭とが重なり、且つ当該後続パケットが１サイクルパケットであった場合、先行パケットの末尾と後続パケットの末尾とが同一クロックサイクルで重なることになる。この場合、パケット末尾で実行する処理のための受信側の資源を二重に設けないと処理が間に合わなくなる可能性がある。
【００２０】
ＬＣＲＣが確定するのはパケットの末尾であるから、パケットの末尾でＬＣＲＣチェックが行われる。またパケットが正常であることが確定するのがパケットの末尾であるから、シーケンス番号のチェック結果の確定も必然的に末尾で行うことが必要になる。またパケットの末尾においてパケットの長さが確定するので、パケットの長さのチェックも末尾で行われることになる。更に、ＥＣＲＣが確定するのはパケットの末尾であるから、パケットの末尾でＥＣＲＣチェックが行われる。このように、パケット末尾で行う処理量が非常に多いため、パケット末尾で実行する処理の資源を二重に設けると、大量の資源が重複して設けられることになりコストが増大する。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開平９−２００２３９号公報
【特許文献２】特開２０１２−１２８８０９号公報
【特許文献３】特開平１１−８５９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
以上を鑑みると、パケット受信処理資源のコストを抑えながら２つのチャネル間で重複するパケットを処理することが望まれる。
【課題を解決するための手段】
【００２３】
演算処理装置は、２つのチャネルの入力側において第１のパケットの末尾と第２のパケットの先頭とが同一サイクルで重複する状況において、前記第２のパケットが１サイクル長のパケットであることを検出すると、前記２つのチャネルの出力側において前記第２のパケットの側のチャネルを１サイクル遅延した遅延状態とさせる遅延交換処理部と、前記遅延交換処理部から出力される前記２つのチャネルのパケットを処理するパケット処理部とを含む。
【発明の効果】
【００２４】
本願開示の少なくとも１つの実施例によれば、パケット受信処理資源のコストを抑えながら２つのチャネル間で重複するパケットを処理することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】８レーンでのデータ伝送におけるパケット配置の一例を示す図である。
【図２】１６レーンでのデータ伝送におけるパケット配置の一例を示す図である。
【図３】ＰＣＩｅの送受信システムの構成の一例を示す図である。
【図４】ＰＣＩｅ受信回路の構成の一例を示す図である。
【図５】遅延交換処理部を設けたデータリンク層ユニット（受信側）の構成の一例を示す図である。
【図６】トランザクション層ユニット（受信側）の構成の一例を示す図である。
【図７】遅延交換処理部を設けたトランザクション層ユニット（受信側）の構成の一例を示す図である。
【図８】トランザクション層ユニット（受信側）に遅延交換処理部を設けた場合のデータリンク層ユニット（受信側）の構成の一例を示す図である。
【図９】遅延交換処理の第１の例を示すタイミングチャートである。
【図１０】遅延交換処理の第２の例を示すタイミングチャートである。
【図１１】遅延交換処理の第３の例を示すタイミングチャートである。
【図１２】遅延交換処理の第４の例を示すタイミングチャートである。
【図１３】遅延交換処理の第５の例を示すタイミングチャートである。
【図１４】パケットに同期するコマンドの一例を示す図である。
【図１５】遅延交換処理部の処理を実行する論理回路の第１の部分を示す図である。
【図１６】遅延交換処理部の処理を実行する論理回路の第２の部分を示す図である。
【図１７】遅延交換処理部の処理を実行する論理回路の第３の部分を示す図である。
【図１８】遅延交換処理部の処理を実行する論理回路の第４の部分を示す図である。
【図１９】遅延交換処理部の処理を実行する論理回路の第５の部分を示す図である。
【図２０】遅延交換処理部の処理を実行する論理回路の第６の部分を示す図である。
【図２１】図１５乃至図２０に示される各信号の状態の変化を示すタイミングチャートである。
【図２２】遅延交換処理部による遅延交換動作の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図面において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００２７】
図３は、ＰＣＩｅの送受信システムの構成の一例を示す図である。図３及び以降の同様の図において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。
【００２８】
図３に示す送受信システムは、着目コンポーネント１０及び対向コンポーネント３００とを含み、両者の間が１６レーンのリンクで結合されている。着目コンポーネント１０は、送信回路１１、ＰＣＩｅ受信回路１２、及びデータ処理部１３とを含む。
【００２９】
送信回路１１は、着目コンポーネント１０から対向コンポーネント３００へ伝送する情報を送信する。ＰＣＩｅ受信回路１２は、対向コンポーネント３００から着目コンポーネント１０へ伝送する情報を受信する。データ処理部１３は、ＰＣＩｅ受信回路１２から受信通知を受け取ると、ＰＣＩｅ受信回路１２に制御信号を印加することによりＰＣＩｅ受信回路１２から受信データを受け取る。
【００３０】
図４は、ＰＣＩｅ受信回路１２の構成の一例を示す図である。ＰＣＩｅ受信回路１２は、物理層ユニット２１、データリンク層ユニット２２、トランザクション層ユニット２３、及び受信バッファ２４を含む。ＰＣＩｅ受信回路１２は、受信したパケットに対して種々の処理を施す処理装置として機能する。物理層ユニット２１は、１６レーンからなるリンクを介してＴＬＰやＤＬＬＰ等のパケットを受信する。物理層ユニット２１は、各々が１６バイトのパラレルバスである２つのチャネルＣＨ０及びＣＨ１を介し、受信パケットのうちデータリンク層で必要な情報（例えばシーケンス番号やＬＣＲＣが付加されたＴＬＰ）をデータリンク層ユニット２２に供給する。
【００３１】
物理層ユニット２１は、各レーンにおいて受信したデータからフレーミングキャラクタを検出することにより、パケットの先頭や末尾を検出し、検出したパケットを２つのチャネルＣＨ０及びＣＨ１に送信する。この際、物理層ユニット２１は、例えば図２を用いて説明した配置の仕方と同様にして、１６レーンのリンクから受信したパケットをデータリンク層における２つのチャネルに配置すればよい。図４に示される例では、１６個のレーンを有するリンクと各々が１６バイト幅である２つのチャネルとを想定しているが、レーンの数やチャネルの幅等に関する構成は、この例に示された構成に限定されるものではない。シリアルで受信したパケットをパラレルバスに配置する際に、複数本のチャネルが用いられ、複数本のチャネル間でパケットの先頭と末尾とが重複する構成であればよい。
【００３２】
データリンク層ユニット２２は、受信したＴＬＰに対してパケットの抜けや多重受信チェックをシーケンス番号に基づいて行うと共に、ＬＣＲＣエラーをチェックする。データリンク層ユニット２２は、シーケンス番号とＬＣＲＣとを取り除いたＴＬＰを、各々が１６バイトのパラレルバスである２つのチャネルＣＨ０及びＣＨ１を介し、トランザクション層ユニット２３に送信する。データリンク層ユニット２２は、ＡＣＫ−ＤＬＬＰを受け取った場合にはＴＬＰの送信完了を確認し、送信回路１１に含まれるデータリンク層（送信側）の再送バッファ（図示されない）をクリアする。データリンク層ユニット（送信側）は、エラー発生を示すＮＡＫ−ＤＬＬＰを受け取った場合には、再送バッファに保存されているＴＬＰを再送信する。
【００３３】
トランザクション層ユニット２３は、データリンク層から受信したＴＬＰに対して必要に応じ、ＥＣＲＣエラーをチェックする。また、ＴＬＰのヘッダ情報およびヘッダ情報とデータの整合性などをチェックする。トランザクション層ユニット２３は、エラーが無ければヘッダに含まれる情報及び受信通知をソフトウェア層に相当するデータ処理部１３（図１）に送信すると共に、ペイロードを受信バッファ２４に格納する。受信ＴＬＰがコンプリーションＴＬＰである場合、トランザクション層ユニット２３は、要求送信時のリクエストＴＬＰのタグと応答受信時のコンプリーションＴＬＰのタグとを照合することにより、期待した応答が返ってきたかのコンプリーションチェックを行う。ヘッダは、アドレス、ＴＬＰタイプ、転送サイズ、リクエスターＩＤ又はコンプリーターＩＤ、タグ等を含む。
【００３４】
図５は、データリンク層ユニット２２の構成の一例を示す図である。図５に示すデータリンク層ユニット２２は、遅延交換処理部３１、チャネル選択部３２、シーケンス番号チェック部３３、比較部３４、ＬＣＲＣ計算部３５−１及び３５−２、チャネル選択部３６、及びチェック結果確認部３７を含む。データリンク層ユニット２２は、チャネルＣＨ０及びＣＨ１の各々において、シーケンス番号ＳＱＮ、ＴＬＰ、ＬＣＲＣ、及び（必要に応じて）消去指示ＤＥＬを、物理層ユニット２１から受け取る。消去指示ＤＥＬ（ＥＤＢ：EnD Bad）は、送信中のデータにおいてエラーを検出したとき等に対向コンポーネント３００が当該送信データを取り消すために送信する指示である。この消去指示ＤＥＬはパケット末尾に同期して送られてくるので、当該パケットを受信して次段に送るかどうかは末尾で確定する。
【００３５】
遅延交換処理部３１は、後段においてパケット受信処理資源のコストを抑えながら２つのチャネル間での重複するパケット処理を可能にするために、一方のチャネルのデータタイミングを遅延させると共に、必要に応じて２つのチャネル間でのデータ交換を行う。この遅延交換処理については後述する。
【００３６】
図２において説明したように、２つのチャネル間でパケットが重複する状況としては、先行パケットの末尾と後続パケットの先頭とが同一クロックサイクルで重なる場合のみである。更に後続パケットが１サイクルパケットである場合には、２つのチャネル間でパケットの末尾が重複することになる。なお、２つのチャネル間でパケットの先頭が重複することはない。即ち、先行パケットの末尾と後続パケットの先頭とが重複している状況において、先行パケットは常に複数サイクル長を有するパケットである。
【００３７】
遅延交換処理部３１は、２つのチャネル間でパケットの末尾が重複する状態を解消するような処理を実行する。即ち、遅延交換処理部３１から出力される２つのチャネルにおいては、一方のチャネルにおけるパケットの末尾と他方のチャネルにおけるパケットの末尾とが重複しないようにタイミング調整がされている。またチャネル間でパケットの先頭同士が重複することもない。先頭同士及び末尾同士は重複しないが、先頭と末尾とが互いに重複する状態は存在する。
【００３８】
遅延交換処理部３１を設けたことにより、ＰＣＩｅ受信回路１２において遅延交換処理部３１より後段でパケットを処理するパケット処理部（トランザクション層ユニット２３等）は、２つのチャネル間で末尾同士が重複するパケットを処理する必要がなくなる。従って、パケット処理部における処理資源の二重化や処理の複雑化を避けながらも、２つのチャネル間で重複するパケットを処理可能となる。
【００３９】
チャネル選択部３２は、遅延交換処理部３１から出力される２つのチャネルのうちいずれかのチャネルにおいてパケットの先頭を検出すると、当該パケットのシーケンス番号ＳＱＮをシーケンス番号チェック部３３に送信する。チャネル選択部３２は更に、遅延交換処理部３１から出力される２つのチャネルのうちいずれかのチャネルにおいてパケットの末尾を検出すると、当該パケットのＬＣＲＣを比較部３４に送信する。
【００４０】
シーケンス番号チェック部３３は、現在保持しているシーケンス番号と今回受領したシーケンス番号とを比較することにより、パケットの受信に抜けがないか及びパケットを多重受信していないか等をチェックする。シーケンス番号チェック部３３が保持するシーケンス番号は、チェック結果確認部３７からの指示によりパケット末尾のタイミングにおいてパケットひとつ正常受信する毎に１増加されて更新される。
【００４１】
比較部３４は、チャネル選択部３２から受領するＬＣＲＣとチャネル選択部３６から受領するＬＣＲＣ計算値とを比較し、チェック結果確認部３７に比較結果を通知する。チャネル選択部３６が出力するＬＣＲＣ計算値は、ＬＣＲＣ計算部３５−１及び３５−２により計算される。ＬＣＲＣ計算部３５−１及び３５−２は、パケットを構成する各バイト（或いは複数バイト長のデータ部分）に対してＣＲＣを順次計算していくため、両チャネルで並行してＬＣＲＣ計算を実行する。遅延交換処理部３１の出力において、両チャネル間でのパケット重複は完全には解消されていないので、ＬＣＲＣ計算部３５−１及び３５−２は並列に設けられることになる。チャネル選択部３６は、比較対象となるチャネルに対するＬＣＲＣ計算値を選択して出力する。
【００４２】
チェック結果確認部３７は、比較部３４からの比較結果に基づいて、ＬＣＲＣエラーの有無を確認する。比較部３４からの比較結果がＬＣＲＣ一致を示す場合、チェック結果確認部３７はＬＣＲＣエラー無しと判断する。シーケンス番号チェックに問題なく、ＬＣＲＣチェックに問題なく、且つパケット消去指示ＤＥＬを受信していないならば、チェック結果確認部３７は、シーケンス番号の増加を指示するとともに、遅延交換処理部３１から供給されるＴＬＰからＬＣＲＣを除去したもの、及び消去指示ＤＥＬを値を変化させずに出力する。エラーしていた場合は消去指示ＤＥＬが消去を示す値となる。これらの確認処理及び出力処理は、２つのチャネルＣＨ０及びＣＨ１に対して独立に実行される。
【００４３】
データリンク層ユニット２２においては、遅延交換処理部３１が設けられることにより、２つのチャネル間でパケット末尾が重複する状態が発生しないようになっている。仮にパケット末尾が重複してしまうと、ＬＣＲＣ計算部３５−１及び３５−２だけでなく比較部３４も二重に設ける必要がある。また更に、シーケンス番号チェック部３３におけるシーケンス番号更新処理が複雑になる。例えば、同一のクロックサイクルにおいて２つの末尾を同時に受信した場合に、通常とは異なる制御として、シーケンス番号の更新処理において１増加ではなく２増加することが必要になったりする。また後段のトランザクション層ユニット２３においても同様に処理資源の二重化や処理の複雑化が必要になる。図５の構成のように遅延交換処理部３１を設けることにより、データリンク層ユニット２２及び後段におけるパケット処理部における処理資源の二重化や処理の複雑化を避けながらも、２つのチャネル間で重複するパケットを処理可能となる。
【００４４】
図６は、トランザクション層ユニット２３の構成の一例を示す図である。図６に示すトランザクション層ユニット２３は、チャネル選択部４１、ヘッダ保持部４２、ヘッダ情報チェック部４３、コンプリーションチェック部４４、及び選択確認部４５を含む。トランザクション層ユニット２３は、チャネルＣＨ０及びＣＨ１の各々において、ＴＬＰ及び（必要に応じて）消去指示ＤＥＬをデータリンク層ユニット２２から受け取る。
【００４５】
チャネル選択部４１は、遅延交換処理部３１から出力される２つのチャネルのうちいずれかのチャネルにおいてパケットの先頭を検出すると、当該パケットのヘッダをヘッダ保持部４２及びコンプリーションチェック部４４に送信する。また更にチャネル選択部４１は、遅延交換処理部３１から出力される２つのチャネルのうちいずれかのチャネルにおいてパケットの末尾を検出すると、当該末尾に関する情報をコンプリーションチェック部４４に送信する。
【００４６】
ヘッダ情報チェック部４３は、ヘッダ保持部４２に保持されたヘッダの情報に基づいて種々のチェックを行う。コンプリーションチェック部４４は、受信パケットがリードリクエストに対するコンプリーションであった場合には、送信したリクエストと受信したコンプリーションとの対応確認を行う。ヘッダ情報には、ヘッダ長、データ付きか否かを示すフォーマット情報、リクエスト種別を示すタイプ情報、パケット長情報等が含まれる。受信パケットがリードリクエストに対するコンプリーションであった場合には、コンプリーションステータス情報等もヘッダに含まれる。受信パケットとリクエストとの対応が取れなかったり、パケット長情報が実際のパケット長と異なっていたり、コンプリーションステータス情報とフォーマット情報が問題のある組合せであったりする等、何らかの不整合があった場合にはエラー報告される。また、サポートしないリクエスト種別であった場合にもその旨がエラー報告される。エラー報告は、ヘッダ情報チェック部４３又はコンプリーションチェック部４４から選択確認部４５に送信される。
【００４７】
選択確認部４５は、チェック結果に問題が無い場合には、パケットの末尾が検出された方のチャネルに同期して受信通知を送出する。選択確認部４５は更に、受信バッファ２４に書き込み指示ＷＥを印加すると共に、データリンク層ユニット２２から受け取ったＴＬＰのペイロードＤＴを受信バッファ２４に書き込む。
【００４８】
図５において遅延交換処理部３１が仮に設けられていないとすると、図６のトランザクション層ユニット２３において、ヘッダ保持部４２、ヘッダ情報チェック部４３、コンプリーションチェック部４４、及び選択確認部４５を二重化することが必要になってしまう。図５に示される構成のようにデータリンク層ユニット２２において遅延交換処理部３１を設けることにより、トランザクション層ユニット２３においても、処理資源の二重化や処理の複雑化を避けながら、２つのチャネル間で重複するパケットを処理可能となる。
【００４９】
以上に説明した構成においては、遅延交換処理部３１をデータリンク層ユニット２２に設けたが、遅延交換処理部を設ける位置はトランザクション層ユニット２３であってもよい。以下に、遅延交換処理部をトランザクション層ユニットに設けた構成について説明する。
【００５０】
図７は、遅延交換処理部を設けたトランザクション層ユニットの構成の一例を示す図である。図７に示すトランザクション層ユニット２３Ａは、遅延交換処理部３１Ａ、ヘッダ保持部４２、ヘッダ情報チェック部４３、コンプリーションチェック部４４、及び選択確認部４５を含む。トランザクション層ユニット２３は、チャネルＣＨ０及びＣＨ１の各々において、ＴＬＰ及び（必要に応じて）消去指示ＤＥＬをデータリンク層ユニット２２から受け取る。
【００５１】
遅延交換処理部３１Ａは、後段においてパケット受信処理資源のコストを抑えながら２つのチャネル間での重複するパケット処理を可能にするために、一方のチャネルのデータタイミングを遅延させると共に、必要に応じて２つのチャネル間でのデータ交換を行う。遅延交換処理部３１Ａの構成及び動作は、前述の遅延交換処理部３１の構成及び動作と同様である。この遅延交換処理部３１Ａから出力される２つのチャネルにおいては、一方のチャネルにおけるパケットの末尾と他方のチャネルにおけるパケットの末尾とが重複しないようにタイミング調整がされている。またチャネル間でパケットの先頭同士が重複することもない。先頭同士及び末尾同士は重複しないが、先頭と末尾とが互いに重複する状態は存在してよい。図７に示されるヘッダ保持部４２、ヘッダ情報チェック部４３、コンプリーションチェック部４４、及び選択確認部４５の構成及び動作は、図６に示される対応各部の構成及び動作と同一であってよい。
【００５２】
遅延交換処理部３１Ａが仮に設けられていないとすると、ヘッダ保持部４２、ヘッダ情報チェック部４３、コンプリーションチェック部４４、及び選択確認部４５を二重化することが必要になってしまう。図７に示される構成のようにトランザクション層ユニット２３Ａにおいて遅延交換処理部３１Ａを設けることにより、処理資源の二重化や処理の複雑化を避けながら、２つのチャネル間で重複するパケットを処理可能となる。
【００５３】
図８は、トランザクション層ユニットに遅延交換処理部を設けた場合のデータリンク層ユニットの構成の一例を示す図である。図８に示すデータリンク層ユニット２２Ａは、チャネル選択部３２Ａ、シーケンス番号チェック部３３Ａ、比較部３４−１及び３４−２、ＬＣＲＣ計算部３５−１及び３５−２、及びチェック結果確認部３７Ａを含む。
【００５４】
図８に示されるデータリンク層ユニット２２においては、図５に示される遅延交換処理部３１が設けられていないので、２つのチャネル間でパケット末尾が重複する状態が発生することになる。パケット末尾が重複してしまうと、ＬＣＲＣ計算部３５−１及び３５−２だけでなく比較部も二重に設ける必要があり、図８に示される構成では比較部３４−１及び３４−２が並列に設けられている。
【００５５】
チャネル選択部３２Ａは、受信パケットの先頭を検出すると、当該パケットのシーケンス番号ＳＱＮをシーケンス番号チェック部３３Ａに送信する。シーケンス番号チェック部３３Ａは、現在保持しているシーケンス番号と今回受領したシーケンス番号とを比較することにより、パケットの受信に抜けがないか及びパケットを多重受信していないか等をチェックする。シーケンス番号チェック部３３Ａが保持するシーケンス番号は、チェック結果確認部３７Ａからの指示により、パケット末尾のタイミングにおいて１増加されて更新される。但し、２つのチャネルで同時に受信パケットの末尾が検出された場合には通常とは異なる制御が実行され、シーケンス番号チェック部３３Ａは、保持しているシーケンス番号を更新時に１増加させるのではなく２増加させる。
【００５６】
比較部３４−１及び３４−２は、２つのチャネルＣＨ０及びＣＨ１にそれぞれ対応して設けられる。比較部３４−１及び３４−２の各々は、対応チャネルにおける受信パケットに含まれるＬＣＲＣとＬＣＲＣ計算部３５−１及び３５−２の対応する一方から受領するＬＣＲＣ計算値とを比較し、チェック結果確認部３７Ａに比較結果を通知する。チェック結果確認部３７Ａは、比較部３４−１又は３４−２からの比較結果に基づいて、対応チャネルにおけるＬＣＲＣエラーの有無を確認する。比較部３４−１又は３４−２からの比較結果がＬＣＲＣ一致を示す場合、チェック結果確認部３７Ａは対応チャネルにおいてＬＣＲＣエラー無しと判断する。シーケンス番号チェックに問題なく、ＬＣＲＣチェックに問題なく、且つパケット消去指示ＤＥＬを受信していないならば、チェック結果確認部３７Ａは、物理層ユニット２１から供給されるＴＬＰからＬＣＲＣを除去したもの、及び消去指示ＤＥＬを値を変化させずに出力する。これらの比較処理、確認処理、及び出力処理は、２つのチャネルＣＨ０及びＣＨ１に対して独立に実行される。
【００５７】
以下に、遅延交換処理部３１が実行する遅延処理及び交換処理について説明する。図２を用いて説明したように、２つのチャネル間でパケット同士が重なるのは、あるパケットの末尾と次のパケットの先頭とが同一のクロックサイクルに位置する場合のみである。先行パケットの末尾と後続パケットの先頭とが重なり、且つ当該後続パケットが１サイクルパケットであった場合、先行パケットの末尾と後続パケットの末尾とが同一クロックサイクルで重なることになる。この場合、パケット末尾で実行する処理のための受信側の資源を二重に設けないと処理が間に合わなくなる可能性がある。
【００５８】
遅延交換処理部３１は、２つのチャネルの入力側において複数サイクル長である第１のパケットの末尾と１サイクル長である第２のパケットの末尾とが重複した場合、第２のパケット側のチャネルの出力側においてデータを１サイクル遅延させる状態を開始する。これにより、先行パケットの末尾と後続パケットの末尾とが同一クロックサイクルで重複する状態を出力側において解消することができる。
【００５９】
遅延交換処理部３１は、チャネルの出力側において一方のチャネルが１サイクル遅延している遅延状態において、チャネルの入力側においていずれのチャネルにもパケットが存在しないサイクルが発生すると、チャネルの遅延状態を終了する。これにより、遅延状態を終了して元のタイミングに戻すことができる。遅延状態が継続している状態においてパケットの末尾同士が再び重複する事象が生起すると、その度に更に遅延量が増加していく結果となるので、適切な機会を逃さずに遅延状態を終了させることが好ましい。
【００６０】
図９は、遅延交換処理の第１の例を示すタイミングチャートである。図９（ａ）は、遅延交換処理部３１へ入力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。図９（ｂ）は、遅延交換処理部３１から出力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。
【００６１】
図９（ａ）に示す例では、サイクルＴ１において、第１のチャネルＣＨ０における複数サイクル長であるパケット５１の末尾と第２のチャネルＣＨ１における１サイクル長であるパケット５２の末尾とが重複している。遅延交換処理部３１は、パケット５２側のチャネルＣＨ１のデータを１サイクル遅延させる状態をこのサイクルＴ１から開始する。その結果、図９（ｂ）に示すように、１サイクル長のパケット５２は１サイクル遅延されてサイクルＴ１からサイクルＴ２に移されている。
【００６２】
図９（ａ）に示すように、サイクルＴ２において、入力側のいずれのチャネルにもパケットが存在しないサイクルが発生している。図９（ｂ）に示すように、チャネルＣＨ１が遅延している状態において、このサイクルＴ２が到来すると、チャネルＣＨ１の遅延状態を当該サイクルＴ２で終了する。
【００６３】
図１０は、遅延交換処理の第２の例を示すタイミングチャートである。図１０（ａ）は、遅延交換処理部３１へ入力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。図１０（ｂ）は、遅延交換処理部３１から出力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。
【００６４】
図１０（ａ）に示す例では、サイクルＴ３において、第１のチャネルＣＨ０における複数サイクル長であるパケット５３の末尾と第２のチャネルＣＨ１における１サイクル長であるパケット５４の末尾とが重複している。遅延交換処理部３１は、パケット５４側のチャネルＣＨ１のデータを１サイクル遅延させる状態をこのサイクルＴ３から開始する。その結果、図１０（ｂ）に示すように、１サイクル長のパケット５４並びに後続する複数サイクル長のパケット５５及び１サイクル長のパケット５６が１サイクル遅延されている。
【００６５】
図１０（ａ）に示すように、サイクルＴ４において、いずれのチャネルにもパケットが存在しないサイクルが発生している。図１０（ｂ）に示すように、チャネルが遅延している状態において、このサイクルＴ４が到来すると、チャネルの遅延状態を当該サイクルＴ４で終了する。
【００６６】
また更なる制御動作として、遅延交換処理部３１は以下の動作を実行する。遅延交換処理部３１は、遅延状態にあるチャネルにおいて複数サイクル長である第３のパケットの末尾と複数サイクル長である第４のパケットの先頭とが入力側で連続すると、チャネルの遅延状態を終了すると共に、出力側でチャネル間のデータ交換を開始する。このようにして、データ交換により空きのある側のチャネルに第４のパケットを逃すことにより、出力側において第４のパケットを遅延のない状態に保ちながら、遅延状態を終了して元のタイミングに戻すことができる。なおチャネル間でのデータ交換は、複数チャネル長パケットの末尾と複数サイクル長パケットの先頭とが入力側でチャネル間において重複していないとき、当該単独末尾の発生により終了させる。これにより、適切なタイミングでチャネル間のデータ交換を終了して元の状態に戻すことができる。
【００６７】
図１１は、遅延交換処理の第３の例を示すタイミングチャートである。図１１（ａ）は、遅延交換処理部３１へ入力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。図１１（ｂ）は、遅延交換処理部３１から出力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。
【００６８】
図１１（ａ）に示す例では、サイクルＴ５において、第１のチャネルＣＨ０における複数サイクル長であるパケット５７の末尾と第２のチャネルＣＨ１における１サイクル長であるパケット５８の末尾とが重複している。遅延交換処理部３１は、パケット５８側のチャネルＣＨ１のデータを１サイクル遅延させる状態をこのサイクルＴ５から開始する。その結果、図１１（ｂ）に示すように、１サイクル長のパケット５８並びに後続する複数サイクル長のパケット５９が１サイクル遅延されている。
【００６９】
図１１（ａ）に示すように、サイクルＴ６において、複数サイクル長であるパケット５９の末尾と複数サイクル長であるパケット６０の先頭とが入力側で連続している。図１１（ｂ）に示すように、チャネルＣＨ１が遅延している状態において、このサイクルＴ６が到来すると、チャネルＣＨ１の遅延状態を終了すると共にチャネル間でのデータ交換を開始する。このチャネル間のデータ交換により、パケット６０が元のタイミングから遅延されることとなく、チャネルＣＨ１からチャネルＣＨ０に移動される。またチャネルＣＨ１における遅延状態は終了する。またチャネル間でのデータ交換は、複数サイクル長パケット６０の末尾が複数サイクル長パケットの先頭と入力側で重複していないので、当該単独末尾の発生により終了させる。このようにして、パケット６０を遅延のない状態に保ちながら、チャネルＣＨ１での遅延状態を終了して元のタイミングに戻すことができる。
【００７０】
図１２は、遅延交換処理の第４の例を示すタイミングチャートである。図１２（ａ）は、遅延交換処理部３１へ入力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。図１２（ｂ）は、遅延交換処理部３１から出力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。
【００７１】
図１２（ａ）に示す例では、サイクルＴ７において、第１のチャネルＣＨ０における複数サイクル長であるパケット６１の末尾と第２のチャネルＣＨ１における１サイクル長であるパケット６２の末尾とが重複している。遅延交換処理部３１は、パケット６２側のチャネルＣＨ１のデータを１サイクル遅延させる状態をこのサイクルＴ７から開始する。その結果、図１２（ｂ）に示すように、１サイクル長のパケット６２並びに後続する複数サイクル長のパケット６３が１サイクル遅延されている。
【００７２】
また図１２（ａ）のサイクルＴ９において、第２のチャネルＣＨ１における複数サイクル長であるパケット６４の末尾と第１のチャネルＣＨ０における１サイクル長であるパケット６５の末尾とが重複している。遅延交換処理部３１は、パケット６４側のチャネルＣＨ０のデータを１サイクル遅延させる状態をこのサイクルＴ９から開始する。その結果、図１２（ｂ）に示すように、１サイクル長のパケット６５が１サイクル遅延されている。
【００７３】
図１２（ａ）に示すように、サイクルＴ８において、複数サイクル長であるパケット６３の末尾と複数サイクル長であるパケット６４の先頭とが入力側で連続している。図１２（ｂ）に示すように、チャネルＣＨ１が遅延している状態において、このサイクルＴ８が到来すると、チャネルＣＨ１の遅延状態を終了すると共にチャネル間でのデータ交換を開始する。このチャネル間のデータ交換により、パケット６４が元のタイミングから遅延されることなく、チャネルＣＨ１からチャネルＣＨ０に移動される。またチャネルＣＨ１における遅延状態は終了する。またチャネル間でのデータ交換は、複数サイクル長パケット６４の末尾が複数サイクル長パケットの先頭と入力側で重複していないので、当該単独末尾の発生により終了させる。このようにして、パケット６４を遅延のない状態に保ちながら、チャネルＣＨ１での遅延状態を終了して元のタイミングに戻すことができる。
【００７４】
図１２（ａ）に示すように、サイクルＴ１０において、入力側のいずれのチャネルにもパケットが存在しないサイクルが発生している。図１２（ｂ）に示すように、チャネルＣＨ０が遅延している状態において、このサイクルＴ１０が到来すると、チャネルＣＨ０の遅延状態を当該サイクルＴ１０で終了する。
【００７５】
図１３は、遅延交換処理の第５の例を示すタイミングチャートである。図１３（ａ）は、遅延交換処理部３１へ入力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。図１３（ｂ）は、遅延交換処理部３１から出力される２つのチャネルＣＨ０及びＣＨ１におけるパケットを示す。
【００７６】
図１３（ａ）に示す例では、サイクルＴ１１において、第１のチャネルＣＨ０における複数サイクル長であるパケット７１の末尾と第２のチャネルＣＨ１における１サイクル長であるパケット７２の末尾とが重複している。遅延交換処理部３１は、パケット７２側のチャネルＣＨ１のデータを１サイクル遅延させる状態をこのサイクルＴ１１から開始する。その結果、図１３（ｂ）に示すように、１サイクル長のパケット７２並びに後続する複数サイクル長のパケット７３が１サイクル遅延されている。
【００７７】
図１３（ａ）に示すように、サイクルＴ１２において、複数サイクル長であるパケット７３の末尾と複数サイクル長であるパケット７４の先頭とが入力側で連続している。図１３（ｂ）に示すように、チャネルＣＨ１が遅延している状態において、このサイクルＴ１２が到来すると、チャネルＣＨ１の遅延状態を終了すると共にチャネル間でのデータ交換を開始する。このチャネル間のデータ交換により、パケット７４が元のタイミングから遅延されることなく、チャネルＣＨ１からチャネルＣＨ０に移動される。またチャネルＣＨ１における遅延状態は終了する。
【００７８】
上記チャネル間でのデータ交換は、パケット７４の末尾が複数サイクル長パケット７５の先頭と入力側で重複しているので、パケット７４の末尾において終了することなく継続される。このチャネル間のデータ交換により、パケット７５が元のタイミングから遅延されることなく、チャネルＣＨ０からチャネルＣＨ１に移動される。
【００７９】
チャネル間でのデータ交換は、サイクルＴ１３において、複数サイクル長パケット７５の末尾が複数サイクル長パケットの先頭と入力側で重複していないので、当該単独末尾の発生により終了させる。このようにして、パケット７４及び７５を遅延のない状態に保ちながら、チャネルＣＨ１での遅延状態を終了して元のタイミングに戻すことができる。
【００８０】
以上、図９乃至図１３に示される例を用いて説明したようにして、遅延交換処理部３１は２つのチャネル間におけるパケット末尾同士の重複を解消する処理を実行する。これらの処理は、パケットに同期するコマンドを用いて論理回路によりパケットデータの遅延及びチャネル間の交換を制御することにより実現することができる。
【００８１】
図１４は、パケットに同期するコマンドの一例を示す図である。チャネルＣＨ０のパケットに同期してコマンドＣｍｄ０が供給され、チャネルＣＨ１のパケットに同期してコマンドＣｍｄ１が供給される。図１４に示すパケット及びコマンドの時間変化は、図１３（ａ）に示されるパケットの時間変化に対応する。
【００８２】
コマンド「ＳＴ」は複数サイクル長パケットの先頭サイクル（第１サイクル）を示す。コマンド「ＭＩＤ」は複数サイクル長パケットの中間サイクル（第２サイクルから末尾サイクルの１つ前のサイクル迄）を示す。コマンド「ＥＮＤ」は複数サイクル長パケットの末尾サイクルを示す。コマンド「１ＣＹ」は１サイクル長パケットが配置されたサイクルを示す。これらのコマンドが、ＴＬＰやＤＬＬＰ等のパケットに同期して物理層ユニット２１からデータリンク層ユニット２２に供給されてよい。具体的には、物理層ユニット２１が、２つのチャネルにパケットを配置する際にこれらのコマンドを生成し、各チャネルにおいてパケットデータに同期してコマンドを送信してよい。即ち、チャネルＣＨ０に同期してコマンドＣｍｄ０が送信され、チャネルＣＨ１に同期してコマンドＣｍｄ１が送信される。
【００８３】
図１５は、遅延交換処理部３１の処理を実行する論理回路の第１の部分を示す図である。図１５に示す論理回路は、デコーダ８１、デコーダ８２、ＡＮＤ回路８３、ＡＮＤ回路８４、一方の入力が負論理のＡＮＤ回路８５、及び一方の入力が負論理のＡＮＤ回路８６を含む。デコーダ８１は、第１のチャネルＣＨ０の状態を示すコマンドＣｍｄ０をデコードし、デコード結果に一致する一本の出力信号線をハイにする。例えば、コマンドＣｍｄ０が複数サイクル長パケットの末尾サイクルを示す「ＥＮＤ」である場合、デコーダ８１は「ＥＮＤ」に対応する出力信号線をハイに設定し、その他の出力信号線をローに設定する。同様に、デコーダ８２は、第２のチャネルＣＨ１の状態を示すコマンドＣｍｄ１をデコードし、デコード結果に一致する一本の出力信号線をハイにする。
【００８４】
ＡＮＤ回路８３は、現在のサイクルにおいてチャネルＣＨ０が１サイクルパケットであり且つチャネルＣＨ１がパケット末尾である場合に、出力ｓｅｔ＿ｄｅｌａｙ０をハイに設定する。それ以外の場合は出力はローに設定される。ＡＮＤ回路８４は、現在のサイクルにおいてチャネルＣＨ０がパケット末尾であり且つチャネルＣＨ１が１サイクルパケットである場合に、出力ｓｅｔ＿ｄｅｌａｙ１をハイに設定する。それ以外の場合は出力はローに設定される。これらの出力ｓｅｔ＿ｄｅｌａｙ０及びｓｅｔ＿ｄｅｌａｙ１が、それぞれチャネルＣＨ０及びＣＨ１において、遅延状態を設定（開始）するために用いられる。
【００８５】
一方の入力が負論理のＡＮＤ回路８５は、チャネルＣＨ０が１サイクルパケットであり且つチャネルＣＨ１がパケット末尾であるサイクルにおいてローであり、それ以外でコマンドＣｍｄ０に等しいＣｍｄ＿ｍｏｄ０を生成する。一方の入力が負論理のＡＮＤ回路８６は、チャネルＣＨ０がパケット末尾であり且つチャネルＣＨ１が１サイクルパケットであるサイクルにおいてローであり、それ以外でコマンドＣｍｄ１に等しいＣｍｄ＿ｍｏｄ１を生成する。
【００８６】
図１６は、遅延交換処理部３１の処理を実行する論理回路の第２の部分を示す図である。図１５に示す論理回路は、Ｄフリップフロップ８７−０、８７−１、８８−０、及び８８−１を含む。各Ｄフリップフロップは、チャネルＣＨ０及びＣＨ１が同期しているクロック信号に同期して入力データを取り込む。
【００８７】
これにより、Ｄフリップフロップ８７−０及び８７−１は、コマンドＣｍｄ０及びＣｍｄ１をそれぞれ１クロック遅延させる。１クロック遅延されたコマンドはコマンドＣｍｄ０＿ｔ１及びＣｍｄ１＿ｔ１と表記される。またＤフリップフロップ８８−０及び８８−１は、チャネルＣＨ０のトランザクションレイヤーパケットＴＬＰ０及びチャネルＣＨ１のトランザクションレイヤーパケットＴＬＰ１をそれぞれ１クロック遅延させる。１クロック遅延されたそれぞれのパケットはＴＬＰ０＿ｔ１及びＴＬＰ１＿ｔ１と表記される。後述するように、所定条件が満たされたときにＴＬＰ０及びＴＬＰ１をそれぞれＴＬＰ０＿ｔ１及びＴＬＰ１＿ｔ１で置き換えることにより、１クロック遅れた遅延状態を設定することができる。
【００８８】
図１７は、遅延交換処理部３１の処理を実行する論理回路の第３の部分を示す図である。図１７に示す論理回路は、デコーダ８１及び８２、負論理入力ＡＮＤ回路９０、ＯＲ回路９１及び９２、Ｄフリップフロップ９３、一方の入力が負論理のＡＮＤ回路９４、ＯＲ回路９５及び９６、Ｄフリップフロップ９７、及び一方の入力が負論理のＡＮＤ回路９８を含む。
【００８９】
デコーダ８１の出力「ｖａｌｉｄ」は、図１５に示される４つの出力ＳＴ，ＭＩＤ，ＥＮＤ，及び１ＣＹのＯＲ演算に相当する。デコーダ８２の出力「ｖａｌｉｄ」は、図１５に示される４つの出力ＳＴ，ＭＩＤ，ＥＮＤ，及び１ＣＹのＯＲ演算に相当する。従って負論理入力ＡＮＤ回路９０（即ちＮＯＲ回路）は、デコーダ８１の４つの出力信号及びデコーダ８２の４つの出力信号の全てがローのときにハイになる出力を生成する。前述のように、遅延交換処理部３１は、チャネルが遅延している状態において、入力側のいずれのチャネルにもパケットが存在しないサイクルが発生すると、チャネルの遅延状態を終了する。負論理入力ＡＮＤ回路９０の出力は、この「いずれのチャネルにもパケットが存在しないサイクル」を検出した検出信号である。
【００９０】
図１５に示した遅延設定信号ｓｅｔ＿ｄｅｌａｙ０があるサイクルでハイになると、次のクロックサイクルから、Ｄフリップフロップ９３の出力である遅延状態信号ｄｅｌａｙ０がハイとなる。遅延状態信号ｄｅｌａｙ０のハイ状態はＤフリップフロップ９３がリセットされるまで継続する。このリセットが起こり遅延状態が終了するための1つの条件は、負論理入力ＡＮＤ回路９０の出力がハイになること、即ち「いずれのチャネルにもパケットが存在しないサイクル」が発生したことである。
【００９１】
同様に、図１５に示した遅延設定信号ｓｅｔ＿ｄｅｌａｙ１があるサイクルでハイになると、次のクロックサイクルから、Ｄフリップフロップ９７の出力である遅延状態信号ｄｅｌａｙ１がハイとなる。遅延状態信号ｄｅｌａｙ１のハイ状態はＤフリップフロップ９７がリセットされるまで継続する。このリセットが起こり遅延状態が終了するための1つの条件は、負論理入力ＡＮＤ回路９０の出力がハイになること、即ち「いずれのチャネルにもパケットが存在しないサイクル」が発生したことである。
【００９２】
図１８は、遅延交換処理部３１の処理を実行する論理回路の第４の部分を示す図である。図１８に示す論理回路は、デコーダ８１及び８２、一方の入力が負論理のＡＮＤ回路１００及び１０１、ＯＲ回路１０２及び１０３、Ｄフリップフロップ１０４、及び一方の入力が負論理のＡＮＤ回路１０５を含む。この論理回路は更に、デコーダ１０６、ＡＮＤ回路１０７、デコーダ１０６、及びＡＮＤ回路１０７を含む。
【００９３】
デコーダ１０６は、第１のチャネルＣＨ０における１サイクル遅れたコマンドＣｍｄ０＿ｔ１をデコードし、デコード結果を出力する。ＡＮＤ回路１０７は、チャネルＣＨ０におけるコマンドＣｍｄ０のデコード結果ＳＴと、チャネルＣＨ０における１サイクル遅れたコマンドＣｍｄ０＿ｔ１のデコード結果ＥＮＤと、チャネルＣＨ０における遅延状態信号ｄｅｌａｙ０とのＡＮＤを演算する。このＡＮＤ回路１０７の出力は、遅延状態にあるチャネルＣＨ０において複数サイクル長であるパケットの末尾と複数サイクル長であるパケットの先頭とが連続するとハイになり、チャネル間データ交換を設定する信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ０をハイにする。またその次のクロックサイクルにおいて、チャネル間データ交換状態であることを示す信号ｃｒｏｓｓｌｉｎｅがハイになる。
【００９４】
デコーダ１０８は、第２のチャネルＣＨ１における１サイクル遅れたコマンドＣｍｄ１＿ｔ１をデコードし、デコード結果を出力する。ＡＮＤ回路１０９は、チャネルＣＨ１におけるコマンドＣｍｄ１のデコード結果ＳＴと、チャネルＣＨ１における１サイクル遅れたコマンドＣｍｄ１＿ｔ１のデコード結果ＥＮＤと、チャネルＣＨ１における遅延状態信号ｄｅｌａｙ１とのＡＮＤを演算する。このＡＮＤ回路１０９の出力は、遅延状態にあるチャネルＣＨ１において複数サイクル長であるパケットの末尾と複数サイクル長であるパケットの先頭とが連続するとハイになり、チャネル間データ交換を設定する信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ１をハイにする。またその次のクロックサイクルにおいて、チャネル間データ交換状態であることを示す信号ｃｒｏｓｓｌｉｎｅがハイになる。
【００９５】
一方の入力が負論理のＡＮＤ回路１００の出力は、第１のチャネルＣＨ０において複数サイクル長であるパケットの末尾が検出されたサイクルで、第２のチャネルＣＨ１において複数サイクル長であるパケットの先頭が検出されていない場合、ハイに設定される。同様に一方の入力が負論理のＡＮＤ回路１０１の出力は、第２のチャネルＣＨ１において複数サイクル長であるパケットの末尾が検出されたサイクルで、第１のチャネルＣＨ０において複数サイクル長であるパケットの先頭が検出されていない場合、ハイに設定される。これらのＡＮＤ回路１００又は１０１の出力のハイ設定により、データ交換リセット信号ｒｅｓｅｔ＿ｃｒｏｓｓｌｉｎｅがハイになり、チャネル間データ交換状態であることを示す信号ｃｒｏｓｓｌｉｎｅがリセットされる。即ち、複数チャネル長パケットの末尾と複数サイクル長パケットの先頭とが入力側でチャネル間において重複していないとき、チャネル間データ交換状態は終了される。
【００９６】
なおチャネル間データ交換を設定する信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ０は、図１７に示されるＯＲ回路９１の一方の入力に印加される。これにより、遅延状態にあるチャネルＣＨ０において複数サイクル長パケットの末尾と複数サイクル長パケットの先頭とが連続すると、チャネルＣＨ０の遅延状態を終了する遅延状態リセット信号ｒｅｓｅｔ＿ｄｅｌａｙ０がハイに設定される。遅延状態リセット信号ｒｅｓｅｔ＿ｄｅｌａｙ０のハイへの設定に応じて、チャネルＣＨ０の遅延状態が終了される。
【００９７】
同様に、チャネル間データ交換を設定する信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ１は、図１７に示されるＯＲ回路９５の一方の入力に印加される。これにより、遅延状態にあるチャネルＣＨ１において複数サイクル長パケットの末尾と複数サイクル長パケットの先頭とが連続すると、チャネルＣＨ１の遅延状態を終了する遅延状態リセット信号ｒｅｓｅｔ＿ｄｅｌａｙ１がハイに設定される。遅延状態リセット信号ｒｅｓｅｔ＿ｄｅｌａｙ１のハイへの設定に応じて、チャネルＣＨ１の遅延状態が終了される。
【００９８】
図１９は、遅延交換処理部３１の処理を実行する論理回路の第５の部分を示す図である。図１９に示す論理回路は、セレクタ回路１１０乃至１１５を含む。
【００９９】
セレクタ回路１１０は、遅延状態信号ｄｅｌａｙ０がローであるときに遅延のないパケットＴＬＰ０を選択し、遅延状態信号ｄｅｌａｙ０がハイであるときに１サイクル遅延したパケットＴＬＰ０＿ｔ１を選択し、選択したパケットを出力する。同様に、セレクタ回路１１３は、遅延状態信号ｄｅｌａｙ１がローであるときに遅延のないパケットＴＬＰ１を選択し、遅延状態信号ｄｅｌａｙ１がハイであるときに１サイクル遅延したパケットＴＬＰ１＿ｔ１を選択し、選択したパケットを出力する。このようにセレクタ回路１１０及び１１３を制御することにより、遅延交換処理部３１によるチャネルＣＨ０及びＣＨ１に対する遅延動作が実行される。
【０１００】
セレクタ回路１１１及び１１２にそれぞれ印加される選択制御信号であるデータ交換設定信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ１及びデータ交換状態信号ｃｒｏｓｓｌｉｎｅは、チャネル間でデータ交換する期間において一方のみがハイになる。具体的には、チャネル間データ交換を開始（設定）するサイクルでのみｓｅｔ＿ｃｒｏｓｓｌｉｎｅ１がハイになり、その後のサイクルにおいてはｃｒｏｓｓｌｉｎｅがハイに維持される。これらの信号がハイである期間において、セレクタ回路１１１及び１１２が、チャネルＣＨ０側ではなくチャネルＣＨ１側のパケットを選択し、選択したパケットを出力する。これにより、出力ＴＬＰ＿ｏｕｔ０は、チャネル間でのデータ交換が行われたパケットとなる。
【０１０１】
セレクタ回路１１４及び１１５にそれぞれ印加される選択制御信号であるデータ交換設定信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ０及びデータ交換状態信号ｃｒｏｓｓｌｉｎｅは、チャネル間でデータ交換する期間において一方のみがハイになる。具体的には、チャネル間データ交換を開始（設定）するサイクルでのみｓｅｔ＿ｃｒｏｓｓｌｉｎｅ０がハイになり、その後のサイクルにおいてはｃｒｏｓｓｌｉｎｅがハイに維持される。これらの信号がハイである期間において、セレクタ回路１１４及び１１５が、チャネルＣＨ１側ではなくチャネルＣＨ０側のパケットを選択し、選択したパケットを出力する。これにより、出力ＴＬＰ＿ｏｕｔ１は、チャネル間でのデータ交換が行われたパケットとなる。
【０１０２】
図２０は、遅延交換処理部３１の処理を実行する論理回路の第６の部分を示す図である。図２０に示す論理回路は、セレクタ回路１２０乃至１２５を含む。図２０に示す回路の構成及び印加されるセレクタ制御信号は、図１９に示される回路の構成及び印加されるセレクタ制御信号と同一であり、各セレクタ回路に入力される選択対象の信号がパケットではなくコマンドである点のみが異なる。図２０に示す論理回路は図１９に示す論理回路と同様に動作し、セレクタ回路１２０乃至１２５により、各チャネルにおけるコマンドの遅延、及びチャネル間でのコマンドの交換が適宜実行される。
【０１０３】
図２１は、図１５乃至図２０に示される各信号の状態の変化を示すタイミングチャートである。チャネルＣＨ０及びＣＨ１におけるコマンドの時間変化が、コマンドＣｍｄ０及びＣｍｄ１として図２１の最上段に示される。このコマンドＣｍｄ０及びＣｍｄ１に示されるコマンドが与えられたときに、図１５乃至図２０に示される回路の各信号部分が変化する様子が、図２１の他の部分に示される。
【０１０４】
例えばサイクルＴ１１において、チャネルＣＨ１における複数サイクル長であるパケットの末尾（コマンドＣｍｄ１の「ＥＮＤ」）とチャネルＣＨ０における１サイクル長であるパケットの末尾（コマンドＣｍｄ０の「１ＣＹ」）とが重複している。その結果、遅延設定信号ｓｅｔ＿ｄｅｌａｙ０がこのサイクルＴ１１においてハイになる（図２１において線の入っている区間が信号値がハイであるサイクルを示す）。この遅延設定信号ｓｅｔ＿ｄｅｌａｙ０のハイ設定に応じて、遅延状態信号ｄｅｌａｙ０がその後の暫くの期間（この例では４サイクルの期間）においてハイを維持する。この期間、コマンドＣｍｄ＿ｏｕｔ０に示されるように、チャネルＣＨ０のコマンドが１サイクルだけ遅延される。
【０１０５】
またサイクルＴ１２において、複数サイクル長であるパケットの末尾（Ｃｍｄ０の「ＥＮＤ」）と複数サイクル長であるパケットの先頭（Ｃｍｄ０の「ＳＴ」）とが入力側で連続している。その結果、このサイクルＴ１２において、遅延状態リセット信号ｒｅｓｅｔ＿ｄｅｌａｙ０がハイになり、それに応じて遅延状態信号ｄｅｌａｙ０のハイ状態が終了する。またこのサイクルＴ１２において、データ交換設定信号ｓｅｔ＿ｃｒｏｓｓｌｉｎｅ０がハイになり、それに応じてその後の暫くの期間（この例では３サイクルの期間）においてデータ交換状態信号ｃｒｏｓｓｌｉｎｅがハイを維持する。この期間、コマンドＣｍｄ＿ｏｕｔ０及びＣｍｄ＿ｏｕｔ１に示されるように、チャネル間で交換されたコマンドが出力される。
【０１０６】
更にサイクルＴ１３において、複数サイクル長パケットの末尾（Ｃｍｄ１の「ＥＮＤ」）が複数サイクル長パケットの先頭と入力側で重複していない。その結果、このサイクルＴ１３において、データ交換リセット信号ｒｅｓｅｔ＿ｃｒｏｓｓｌｉｎｅがハイになり、データ交換状態信号ｃｒｏｓｓｌｉｎｅがリセットされる。これにより、チャネル間でのデータ交換状態が終了される。
【０１０７】
以上説明したように、図１５乃至図２１に示されるデコーダ、論理回路、遅延回路、及びセレクタ回路を用い、パケットに同期するコマンドに基づき動作する論理回路を実現することにより、パケットデータの遅延及びチャネル間の交換を制御することができる。これにより、簡潔な構成で、効率的且つ高速に、遅延交換処理を実現することが可能となる。
【０１０８】
図２２は、遅延交換処理部３１による遅延交換動作の処理の流れを示すフローチャートである。図２２において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、Ａステップの次にＢステップを実行することが可能なだけでなく、Ｂステップの次にＡステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Ｂステップの次にＡステップが実行されてもよいことは自明である。Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【０１０９】
ステップＳ１で、遅延交換処理部３１は、複数サイクル長であるパケットの末尾と１サイクルパケットとを同時に受信したか否かを判定する。判定結果がＮＯの場合、遅延交換処理部３１は図２２に示す手順の処理を終了する。判定結果がＹＥＳの場合、処理はステップＳ２に進む。
【０１１０】
ステップＳ２で、遅延交換処理部３１は、上記の１サイクルパケットが発生した側のチャネルにおいて遅延を開始する。ステップＳ３で、遅延交換処理部３１は、上記の１サイクルパケットが発生したサイクルＣＹＬ１において、１サイクルパケットが発生した側のチャネルのコマンド出力を抑止する。ステップＳ４で、遅延交換処理部３１は、サイクルＣＹＬ１の次のサイクルから、１サイクルパケットが発生した側のチャネルにおいて１サイクル遅延された信号（コマンド及びパケット）を選択する。
【０１１１】
ステップＳ５で、遅延交換処理部３１は、両方のチャネルにパケットの存在しないサイクルが発生したか否かを判定する。判定結果がＹＥＳの場合、遅延交換処理部３１はステップＳ６において遅延状態を終了させ、その後図２２に示す手順の処理を終了する。判定結果がＮＯの場合、処理はステップＳ７に進む。
【０１１２】
ステップＳ７で、遅延交換処理部３１は、遅延設定されているチャネルにおいて複数サイクル長であるパケットの先頭を受信したか否かを判定する。判定結果がＮＯの場合、遅延交換処理部３１はステップＳ５に戻り以降の処理を継続する。判定結果がＹＥＳの場合、処理はステップＳ８に進む。
【０１１３】
ステップＳ８で、遅延交換処理部３１は、遅延が設定されているチャネルにおいて、上記複数サイクル長であるパケットの先頭を受信したサイクルＣＹＬ２で遅延状態を終了させる。ステップＳ９で、遅延交換処理部３１は、サイクルＣＹＬ２において、チャネル間でのデータ交換を設定する信号をアサートする。ステップＳ１０で、遅延交換処理部３１は、上記複数サイクル長であるパケットの先頭を、サイクルＣＹＬ２において、遅延が設定されていたチャネルとは反対側のチャネルから出力する。ステップＳ１０で、遅延交換処理部３１は、サイクルＣＹＬ２の次のサイクルから、チャネル間におけるデータ交換状態を維持する。
【０１１４】
ステップＳ１２で、遅延交換処理部３１は、複数サイクル長であるパケットの単独末尾を受信したか否かを判定する。判定結果がＮＯの場合、遅延交換処理部３１はステップＳ５に戻り以降の処理を継続する。判定結果がＹＥＳの場合、処理はステップＳ１３に進む。ステップＳ１３で、遅延交換処理部３１は、チャネル間データ交換状態を終了させる。以上で、遅延交換処理部３１によるパケットの遅延交換を制御する手順を終了する。
【０１１５】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【０１１６】
例えば上記実施例の説明では、ＰＣＴｅを例に用いて説明したが、前述と同様の問題が発生するパケット受信システムであれば、本願の構成を適用することが可能である。即ち、２チャネル間において先行パケットの末尾と後続の１サイクルパケットの末尾とが同一のサイクルで重複する状態を解消することが望まれる状況であれば、上記の実施例で説明した遅延交換処理を適用することができる。
【符号の説明】
【０１１７】
１０  着目コンポーネント
１１  送信回路
１２  ＰＣＩｅ受信回路
１３  データ処理部
２１  物理層ユニット
２２  データリンク層ユニット
２３  トランザクション層ユニット
２４  受信バッファ
３１  遅延交換処理部
３２  チャネル選択部
３３  シーケンス番号チェック部
３４  比較部
３５−１，３５−２  ＣＲＣ計算部
３６  チャネル選択部
３７  チェック結果確認部
４１  チャネル選択部
４２  ヘッダ保持部
４３  ヘッダ情報チェック部
４４  コンプリーションチェック部
４５  選択確認部
３００  対向コンポーネント
【図１】
2020072337.tif 000003
【図２】
2020072337.tif 000004
【図３】
2020072337.tif 000005
【図４】
2020072337.tif 000006
【図５】
2020072337.tif 000007
【図６】
2020072337.tif 000008
【図７】
2020072337.tif 000009
【図８】
2020072337.tif 000010
【図９】
2020072337.tif 000011
【図１０】
2020072337.tif 000012
【図１１】
2020072337.tif 000013
【図１２】
2020072337.tif 000014
【図１３】
2020072337.tif 000015
【図１４】
2020072337.tif 000016
【図１５】
2020072337.tif 000017
【図１６】
2020072337.tif 000018
【図１７】
2020072337.tif 000019
【図１８】
2020072337.tif 000020
【図１９】
2020072337.tif 000021
【図２０】
2020072337.tif 000022
【図２１】
2020072337.tif 000023
【図２２】
2020072337.tif 000024