(57)【要約】      （修正有）【課題】同時に入力されたＴＬＰ及びＤＬＬＰの双方を記憶する。【解決手段】データ受信装置１は、受信部１０と、バッファ部２１と、ヒストリ記憶部２２と、処理部２３とを有する。受信部１０は、受信データ、トランザクション層パケットのヘッダとデータリンク層パケットを抽出し、バッファ部２１は、データリンク層パケットを記憶し、ヒストリ記憶部２２は、トランザクション層パケットのヘッダ及びデータリンク層パケットを記憶する。処理部２３は、トランザクション層パケットのヘッダ及びデータリンク層パケットを同時に受信部から取得した場合、データリンク層パケットをバッファ部２１に書き込む。また、処理部２３は、何れのパケットも取得しない場合、並びにトランザクション層パケットのヘッダを取得せずにデータリンク層パケットのみを取得した場合、バッファ部に記憶されたデータリンク層パケットをヒストリ記憶部２２に書き込む。【選択図】図１
2019133567.tif 000002
【特許請求の範囲】
【請求項１】
受信した受信信号に含まれる受信データ、トランザクション層パケットのヘッダとデータリンク層パケットを抽出する受信部と、
前記データリンク層パケットを記憶するバッファ部と、
前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを記憶するヒストリ記憶部と、
前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを同時に前記受信部から取得した場合、前記データリンク層パケットを前記バッファ部に書き込み、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットの何れも取得しない場合、並びに前記トランザクション層パケットのヘッダを取得せずに前記データリンク層パケットのみを取得した場合、前記バッファ部に記憶されたデータリンク層パケットを前記ヒストリ記憶部に書き込む処理部と、
を有する、データ受信装置。
【請求項２】
前記処理部は、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットの双方を同時に前記受信部から取得したときに、前記トランザクション層パケットのヘッダを前記ヒストリ記憶部に書き込む、請求項１に記載のデータ受信装置。
【請求項３】
前記処理部は、前記トランザクション層パケットのヘッダを前記受信部から取得したときに、前記トランザクション層パケットのヘッダを、取得した時間と関連付けて前記バッファ部及び前記ヒストリ記憶部の何れか一方に書き込む、請求項１に記載のデータ受信装置。
【請求項４】
前記処理部は、前記データリンク層パケットが前記バッファ部に記憶される間に、前記データリンク層パケットを取得したときに、前記バッファ部に記憶されるデータリンク層パケットと、取得した前記データリンク層パケットを前記ヒストリ記憶部に同時に書き込む、請求項３に記載のデータ受信装置。
【請求項５】
前記処理部は、前記データリンク層パケットが前記バッファ部に記憶される間に、前記トランザクション層パケットのヘッダを取得したときに、前記前記バッファ部に記憶される前記データリンク層パケットを取得した時間からの経過時間が所定のしきい値時間を超えるときに、前記前記バッファ部に記憶される前記データリンク層パケットを前記ヒストリ記憶部に書き込み、取得した前記トランザクション層パケットのヘッダを前記バッファ部に書き込む、請求項３又は４に記載のデータ受信装置。
【請求項６】
前記処理部は、前記データリンク層パケットが前記バッファ部に記憶される間に、前記トランザクション層パケットのヘッダを取得したときに、前記前記バッファ部に記憶される前記データリンク層パケットを取得した時間からの経過時間が前記しきい値時間以下のときに、取得した前記トランザクション層パケットのヘッダを、取得した時間と関連付けて前記ヒストリ記憶部に書き込む、請求項５に記載のデータ受信装置。
【請求項７】
前記処理部は、前記トランザクション層パケットのヘッダが前記バッファ部に記憶される間に、前記トランザクション層パケットのヘッダを取得したときに、前記前記バッファ部に記憶される前記トランザクション層パケットのヘッダを前記ヒストリ記憶部に書き込むと共に、取得した前記トランザクション層パケットのヘッダを、取得した時間と関連付けて前記バッファ部に書き込む、請求項３〜６の何れか一項に記載のデータ受信装置。
【請求項８】
前記バッファ部は、複数の前記データリンク層パケットを記憶可能である、請求項１〜７の何れか一項に記載のデータ受信装置。
【請求項９】
送信装置と受信装置とを有するデータ送受信システムにおいて、
前記受信装置は、前記送信装置から受信した受信信号に含まれる受信データ、トランザクション層パケットのヘッダとデータリンク層パケットを抽出する受信部と、
前記データリンク層パケットを記憶するバッファ部と、
前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを記憶するヒストリ記憶部と、
前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを同時に前記受信部から取得した場合、前記データリンク層パケットを前記バッファ部に書き込み、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットの何れも取得しない場合、並びに、前記トランザクション層パケットのヘッダを取得せずに前記データリンク層パケットのみを取得した場合、前記バッファ部に記憶されたデータリンク層パケットを前記ヒストリ記憶部に書き込む処理部と、
を有する、データ送受信システム。
【請求項１０】
送信装置と受信装置とを有するデータ送受信システムの制御方法において、
前記受信装置が有する受信部が、前記送信装置から受信した受信信号に含まれる受信データ、トランザクション層パケットのヘッダとデータリンク層パケットを抽出し、
前記受信装置が有するバッファ部が、前記データリンク層パケットを記憶し、
前記受信装置が有するヒストリ記憶部が、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを記憶し、
前記受信装置が有する処理部が、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットを同時に前記受信部から取得した場合、前記データリンク層パケットを前記バッファ部に書き込み、前記トランザクション層パケットのヘッダ及び前記データリンク層パケットの何れも取得しない場合、並びに、前記トランザクション層パケットのヘッダを取得せずに前記データリンク層パケットのみを取得した場合、前記バッファ部に記憶されたデータリンク層パケットを前記ヒストリ記憶部に書き込む、データ送受信システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法に関する。
【背景技術】
【０００２】
情報処理回路の動作履歴の記憶、プログラム開発装置におけるプログラムの実行履歴の記憶、並びに情報処理部における障害情報の記録等のために、種々のデータを履歴情報として記憶することが知られている（例えば、特許文献１〜３を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６１−２４６８４８号公報
【特許文献２】特開２００４−２０６４２５号公報
【特許文献３】特開平５−２９８１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
また、ＰＣＩ−ＳＩＧによって策定されたＰＣＩ  Ｅｘｐｒｅｓｓ（以下ＰＣＩｅとも称する）規格と称される通信規格が知られている。ＰＣＩｅは、ＰＣＩ−ＳＩＧによって策定されたＰＣＩ（Peripheral component interconnect）バスの欠点を補完したものであり、ＰＣＩバスのデータ転送レートの３０倍のデータ転送レートが実現可能である。
【０００５】
ＰＣＩｅの物理層は、従来は８レーンのレーン幅が多く採用されていたが、データ転送レートを高くするために１６レーンのレーン幅が採用され始めている。
【０００６】
ＰＣＩｅ規格による受信信号を受信した受信履歴を記憶するために、受信信号に含まれるトランザクション層パケットのヘッダ及びデータリンク層パケットのそれぞれをヒストリ部に記憶することがある。レーン幅が８レーンであるときは、ヒストリ部は、データ構造の関係でトランザクション層パケットのヘッダ及びデータリンク層パケットの双方を同時に入力されることがなかった。しかしながら、レーン幅が１６レーンになると、ヒストリ部は、トランザクション層パケットのヘッダ及びデータリンク層パケットの双方を同時に入力されるおそれがある。
【０００７】
一実施形態では、同時に入力されたトランザクション層パケットのヘッダ及びデータリンク層パケットの双方を記憶可能なヒストリ部を有するデータ受信装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、データ受信装置は、受信部と、バッファ部と、ヒストリ記憶部と、処理部とを有する。受信部は、受信した受信信号に含まれる受信データ、トランザクション層パケットのヘッダとデータリンク層パケットを抽出し、バッファ部は、データリンク層パケットを記憶し、ヒストリ記憶部は、トランザクション層パケットのヘッダ及びデータリンク層パケットを記憶する。処理部は、トランザクション層パケットのヘッダ及びデータリンク層パケットを同時に受信部から取得した場合、データリンク層パケットをバッファ部に書き込む。また、処理部は、トランザクション層パケットのヘッダ及びデータリンク層パケットの何れも取得しない場合、バッファ部に記憶されたデータリンク層パケットをヒストリ記憶部に書き込む。また、処理部は、トランザクション層パケットのヘッダを取得せずにデータリンク層パケットのみを取得した場合、バッファ部に記憶されたデータリンク層パケットをヒストリ記憶部に書き込む。
【発明の効果】
【０００９】
一実施形態では、同時に入力されたトランザクション層パケットのヘッダ及びデータリンク層パケットの双方を記憶することができる。
【図面の簡単な説明】
【００１０】
【図１】（ａ）は第１実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、（ｂ）は（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【図２】図１（ｂ）に示す処理部によるヒストリ記憶処理を説明するための図である。
【図３】図１（ｂ）に示す処理部により実行されるヒストリ記憶処理のフローチャートである。
【図４】（ａ）は第２実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、（ｂ）は（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【図５】図４（ｂ）に示す処理部により実行されるヒストリ記憶処理のフローチャートである。
【図６】（ａ）は第３実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、（ｂ）は（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【図７】図６（ｂ）に示す処理部によるヒストリ記憶処理を説明するための図である。
【図８】図６（ｂ）に示す処理部により実行されるヒストリ記憶処理のフローチャートである。
【図９】実施形態に係るデータ受信装置を有するデータ送受信システムのブロック図である。
【発明を実施するための形態】
【００１１】
以下図面を参照して、実施形態に係るデータ受信装置、データ送受信システム、及びデータ送受信システムの制御方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
【００１２】
（実施形態に係るデータ受信装置の概要）
実施形態に係る情報処理部は、ＰＣＩ  Ｅｘｐｒｅｓｓ受信部と、ヒストリ部とを有する。ＰＣＩ  Ｅｘｐｒｅｓｓ受信部は、ＰＣＩ  Ｅｘｐｒｅｓｓに基づく受信信号を受信し、受信信号に含まれる受信データ、トランザクション層パケットのヘッダ、及びデータリンク層パケットを抽出する。ヒストリ部は、データリンク層パケットを一時的に記憶するバッファ部と、トランザクション層パケットのヘッダ及びデータリンク層パケットを記憶するヒストリ記憶部と、処理部とを有する。処理部は、トランザクション層パケットのヘッダ及びデータリンク層パケットを同時にＰＣＩ  Ｅｘｐｒｅｓｓ受信部から取得したときに、データリンク層パケットをバッファ部に書き込む。処理部は、トランザクション層パケットのヘッダ及びデータリンク層パケットの何れも取得しないとき、バッファ部に記憶されたデータリンク層パケットをヒストリ記憶部に書き込む。また、処理部は、並びにトランザクション層パケットのヘッダを取得せずにデータリンク層パケットのみを取得したときに、バッファ部に記憶されたデータリンク層パケットをヒストリ記憶部に書き込む。
【００１３】
実施形態に係る情報処理部は、データリンク層パケットを書き込み可能なバッファ部を有するので、同時に取得されたトランザクション層パケットのヘッダ及びデータリンク層パケットの双方を記憶することができる。
【００１４】
（第１実施形態に係るデータ受信装置）
図１（ａ）は第１実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、図１（ｂ）は図１（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【００１５】
コンポーネント１０１は、データ受信装置１と、データ受信装置１が受信した受信信号に対応する受信データに所定の処理を実行するデータ処理部１１０とを有する。コンポーネント１０１は、一例ではエンドポイントであり、他の例ではホストが有するルートコンプレックスである。
【００１６】
データ受信装置１は、ＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０と、ヒストリ部２０とを有する。ＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格による受信信号を受信し、受信信号に含まれる受信データ、トランザクション層パケットのヘッダ、及びデータリンク層パケットを抽出する。以下、トランザクション層パケットのヘッダはＴＬＰとも称され、データリンク層パケットはＤＬＬＰとも称される。ＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０の動作及び機能は、よく知られているので、ここでは詳細な説明は省略する。
【００１７】
ヒストリ部２０は、バッファ部２１と、ヒストリ記憶部２２と、処理部２３とを有する。バッファ部２１は、単一のＤＬＬＰを記憶可能な記憶装置であり、例えばレジスタである。ヒストリ記憶部２２は、例えば、ＲＡＭ（Random Access Memory）により実現される。ヒストリ記憶部２２は、処理部２３での処理に用いられるアプリケーションプログラム、データ等を記憶する。例えば、ヒストリ記憶部２２は、アプリケーションプログラムとして、ＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０から取得したＴＬＰ及びＤＬＬＰを記憶するヒストリ記憶処理を実行するためのヒストリ記憶プログラムを記憶する。ヒストリ記憶プログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて、ヒストリ記憶部２２にインストールされてもよい。
【００１８】
処理部２３は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部２３は、ヒストリ部２０の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵである。処理部２３は、ヒストリ部２０の各種処理がヒストリ記憶部２２に記憶されているプログラム等に応じて適切な手順で実行されるように、バッファ部２１等の動作を制御する。処理部２３は、ヒストリ記憶部２２に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。
【００１９】
図２は、処理部２３によるヒストリ記憶処理を説明するための図である。
【００２０】
処理部２３は、矢印Ａで示される第１のタイミングでＴＬＰとＤＰＰＬとをＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０から同時に取得する。次いで、矢印Ｂで示される第２のタイミングで、処理部２３は、ＤＰＰＬをＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０から取得する。
【００２１】
処理部２３は、第１のタイミングでＴＬＰとＤＰＰＬとを同時に取得すると、ＤＬＬＰをバッファ部２１に書き込むと共に、ＴＬＰをヒストリ記憶部２２に書き込む。次いで、処理部２３は、第２のタイミングでＤＰＰＬを取得すると、第１のタイミングで取得しバッファ部２１に書き込んだＤＬＬＰと、第２のタイミングで取得したＤＬＬＰとを同時にヒストリ記憶部２２に書き込む。
【００２２】
処理部２３は、第１のタイミングでＴＬＰと同時に取得したＤＬＬＰをバッファ部２１に一時的に書き込んだ後に、第２のタイミングでヒストリ記憶部２２に書き込むので、同時に取得したＤＬＬＰ及びＴＬＰにヒストリ記憶部２２に書き込むことができる。
【００２３】
図３は、処理部２３により実行されるヒストリ記憶処理のフローチャートである。処理部２３は、所定の実行周期毎に図３に示すヒストリ記憶処理を実行する。
【００２４】
まず、処理部２３は、ＴＬＰとＤＬＬＰとをＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０から同時に取得したか否かを判定する（Ｓ１０１）。処理部２３は、ＴＬＰとＤＬＬＰとを同時に取得したと判定する（Ｓ１０１−ＹＥＳ）と、取得したＤＬＬＰをバッファ部２１に書き込むと共に、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ１０２）。次いで、処理はＳ１０１に戻る。
【００２５】
処理部２３は、ＴＬＰとＤＬＬＰとを同時に取得していないと判定する（Ｓ１０１−ＮＯ）と、ＴＬＰ及びＤＬＬＰの何れかのパケットを取得したか否かを判定する（Ｓ１０３）。処理部２３は、ＴＬＰ及びＤＬＬＰの何れかのパケットを取得したと判定する（Ｓ１０３−ＹＥＳ）と、取得したパケットがＴＬＰであるか否かを判定する（Ｓ１０４）。処理部２３は、取得したパケットがＴＬＰであると判定する（Ｓ１０４−ＹＥＳ）と、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ１０５）。次いで、処理はＳ１０１に戻る。
【００２６】
処理部２３は、取得したパケットがＴＬＰではなくＤＬＬＰであると判定する（Ｓ１０４−ＮＯ）と、バッファ部２１にＤＬＬＰが記憶されているか否かを判定する（Ｓ１０６）。処理部２３は、バッファ部２１にＤＬＬＰが記憶されていると判定する（Ｓ１０６−ＹＥＳ）と、バッファ部２１に記憶されたＤＬＬＰと、取得したＤＬＬＰとをヒストリ記憶部２２に書き込む（Ｓ１０７）。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部２１から削除され、バッファ部２１は解放される。次いで、処理はＳ１０１に戻る。
【００２７】
処理部２３は、バッファ部２１にＤＬＬＰが記憶されていないと判定する（Ｓ１０６−ＮＯ）と、取得したＤＬＬＰをヒストリ記憶部２２に書き込む（Ｓ１０８）。次いで、処理はＳ１０１に戻る。
【００２８】
処理部２３は、ＴＬＰ及びＤＬＬＰの何れのパケットも取得していないと判定する（Ｓ１０３−ＮＯ）と、バッファ部２１にＤＬＬＰが記憶されているか否かを判定する（Ｓ１０９）。処理部２３は、バッファ部２１にＤＬＬＰが記憶されていると判定する（Ｓ１０９−ＹＥＳ）と、バッファ部２１に記憶されたＤＬＬＰをヒストリ記憶部２２に書き込む（Ｓ１１０）。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部２１から削除され、バッファ部２１は解放される。次いで、処理はＳ１０１に戻る。
【００２９】
処理部２３によってバッファ部２１にＤＬＬＰが記憶されていないと判定される（Ｓ１０９−ＮＯ）と、処理は終了する。
【００３０】
（第１実施形態に係るデータ受信装置の作用効果）
データ受信装置１のヒストリ部２０は、ＴＬＰと同時に取得したＤＬＬＰをバッファ部２１に一時的に書き込み、次のタイミングでヒストリ記憶部２２に書き込むので、同時に取得したＤＬＬＰ及びＴＬＰを記憶することができる。
【００３１】
（第２実施形態に係るデータ受信装置）
図４（ａ）は第１実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、図４（ｂ）は図４（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【００３２】
コンポーネント２０１は、データ受信装置２をデータ受信装置１の代わりに有することがコンポーネント１０１と、相違する。データ受信装置２は、バッファ部３１及び処理部３３をバッファ部２１及び処理部２３の代わりに有することがデータ受信装置１と相違する。バッファ部３１及び処理部３３以外のコンポーネント２０１の構成要素の構成及び機能は、同一符号が付されたコンポーネント１０１の構成要素の構成及び機能と同一なので、ここでは詳細な説明は省略する。
【００３３】
バッファ部３１は、単一のＤＬＬＰではなく、複数のＤＬＬＰを記憶可能な記憶装置であり、例えばレジスタである。
【００３４】
処理部３３は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部３３は、ヒストリ部３０の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵである。処理部３３は、ヒストリ部３０の各種処理がヒストリ記憶部２２に記憶されているプログラム等に応じて適切な手順で実行されるように、バッファ部３１等の動作を制御する。処理部３３は、ヒストリ記憶部２２に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。
【００３５】
図５は、処理部３３により実行されるヒストリ記憶処理のフローチャートである。処理部３３は、所定の実行周期毎に図５に示すヒストリ記憶処理を実行する。
【００３６】
Ｓ２０１〜Ｓ２０６の処理は、Ｓ１０１〜Ｓ１０６の処理と同様なので、ここでは詳細な説明は省略する。処理部３３は、バッファ部３１にＤＬＬＰが記憶されていると判定する（Ｓ２０６−ＹＥＳ）と、バッファ部３１に複数のＤＬＬＰが記憶されているか否かを判定する（Ｓ２０７）。処理部３３は、バッファ部３１に複数のＤＬＬＰが記憶されていると判定する（Ｓ２０７−ＹＥＳ）と、バッファ部３１に記憶されるＤＬＬＰの２つをヒストリ記憶部２２に書き込み、取得したＤＬＬＰをバッファ部３１に書き込む（Ｓ２０８）。次いで、処理はＳ２０１に戻る。
【００３７】
処理部３３は、バッファ部３１に単一のＤＬＬＰが記憶されていると判定する（Ｓ２０７−ＮＯ）と、バッファ部３１に記憶されたＤＬＬＰと、取得したＤＬＬＰとをヒストリ記憶部２２に書き込む（Ｓ２０９）。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部３１から削除され、バッファ部３１は解放される。次いで、処理はＳ２０１に戻る。Ｓ２１０〜Ｓ２１２の処理は、Ｓ１０８〜Ｓ１１０の処理と同様なので、ここでは詳細な説明は省略する。
【００３８】
（第２実施形態に係るデータ受信装置の作用効果）
データ受信装置２のヒストリ部３０は、複数のＤＬＬＰを一時的に記憶することができるので、複数回に亘ってＴＬＰとＤＬＬＰとを同時に取得した場合でも、同時に取得したＤＬＬＰ及びＴＬＰを記憶ことができる。
【００３９】
（第３実施形態に係るデータ受信装置）
図６（ａ）は第１実施形態に係るデータ受信装置を搭載するコンポーネントのブロック図であり、図６（ｂ）は図６（ａ）に示すデータ受信装置が有するヒストリ部のブロック図である。
【００４０】
コンポーネント３０１は、データ受信装置３をデータ受信装置１の代わりに有することがコンポーネント１０１と、相違する。データ受信装置３は、バッファ部４１及び処理部４３をバッファ部２１及び処理部２３の代わりに有することがデータ受信装置１と相違する。また、タイマ４４を有することがデータ受信装置１と相違する。バッファ部４１、処理部４３及びタイマ４４以外のコンポーネント３０１の構成要素の構成及び機能は、同一符号が付されたコンポーネント１０１の構成要素の構成及び機能と同一なので、ここでは詳細な説明は省略する。
【００４１】
バッファ部４１は、単一のＤＬＬＰではなく、複数のＴＬＰ及び複数のＤＬＬＰを記憶可能な記憶装置であり、例えばレジスタである。
【００４２】
処理部４３は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部４３は、ヒストリ部４０の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵである。処理部４３は、ヒストリ部４０の各種処理がヒストリ記憶部２２に記憶されているプログラム等に応じて適切な手順で実行されるように、バッファ部４１及びタイマ４４等の動作を制御する。処理部４３は、ヒストリ記憶部２２に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。
【００４３】
タイマ４４は、不図示の発振回路を有し、時刻を計時し、計時した時刻を示す時刻情報をバッファ部４１、ヒストリ記憶部２２及び処理部４３に出力する。
【００４４】
図７は、処理部４３によるヒストリ記憶処理を説明するための図である。図７では、説明を簡明にするために処理部４３の処理の一部である登録優先度判定処理は、処理部４３から分離して記載される。なお、登録優先度判定処理は、処理部４３とは別個の装置により実行されてもよい。
【００４５】
処理部４３は、タイマ４４から入力される時刻情報に基づいて、取得したＴＬＰ、及びバッファ部４１に記憶されるＤＬＬＰの何れをヒストリ記憶部２２に書き込むかを判定する登録優先度判定処理を実行する。
【００４６】
登録優先度判定処理では、処理部４３は、バッファ部４１に記憶されるＤＬＬＰが書き込まれた時間と、タイマが計時した現在時刻との差分と、所定のしきい値時間とを比較する。処理部４３は、ＤＬＬＰが書き込まれた時間がしきい値時間を越えたときに、バッファ部４１に記憶されるＤＬＬＰを、取得したＴＬＰよりも優先してヒストリ記憶部２２に書き込む。処理部４３は、ＤＬＬＰが書き込まれた時間がしきい値時間以下のときに、取得したＴＬＰをヒストリ記憶部２２に書き込む。処理部４３は、ヒストリ記憶部２２にパケットを書き込むときに、書き込むパケットを、パケットがＴＬＰ及びＤＬＬＰの何れかを示すパケット情報、及び取得した時刻を示す時刻情報に関連付ける。
【００４７】
処理部４３は、ヒストリ記憶部２２に書き込むパケットを、取得した時刻を示す時刻情報に関連付けるので、書き込まれる順番が前後した場合でもパケットの取得順序を正確に把握可能である。また、処理部４３は、ヒストリ記憶部２２に書き込むパケットを、パケットがＴＬＰ及びＤＬＬＰの何れかを示すパケット情報に関連付けるので、ヒストリ記憶部２２に記憶されるパケットがＴＬＰ及びＤＬＬＰの何れかであるかを正確に把握できる。
【００４８】
図８は、処理部４３により実行されるヒストリ記憶処理のフローチャートである。処理部４３は、所定の実行周期毎に図５に示すヒストリ記憶処理を実行する。
【００４９】
まず、処理部４３は、ＴＬＰとＤＬＬＰとをＰＣＩ  Ｅｘｐｒｅｓｓ受信部１０から同時に取得したか否かを判定する（Ｓ３０１）。処理部４３は、ＴＬＰとＤＬＬＰとを同時に取得したと判定する（Ｓ３０１−ＹＥＳ）と、取得したＤＬＬＰをバッファ部４１に書き込むと共に、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ３０２）。処理部４３は、取得したＤＬＬＰをバッファ部４１に書き込むときに、ＤＬＬＰをタイマ４４から入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。また、処理部４３は、取得したＴＬＰをヒストリ記憶部２２に書き込むときに、ＴＬＰをタイマから入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００５０】
処理部４３は、ＴＬＰとＤＬＬＰとを同時に取得していないと判定する（Ｓ３０１−ＮＯ）と、ＴＬＰ及びＤＬＬＰの何れかのパケットを取得したか否かを判定する（Ｓ３０３）。処理部４３は、ＴＬＰ及びＤＬＬＰの何れかのパケットを取得したと判定する（Ｓ３０３−ＹＥＳ）と、取得したパケットがＴＬＰであるか否かを判定する（Ｓ３０４）。
【００５１】
処理部４３は、取得したパケットがＴＬＰであると判定する（Ｓ３０４−ＹＥＳ）と、バッファ部４１にＤＬＬＰが記憶されているか否かを判定する（Ｓ３０５）。処理部４３は、バッファ部４１にＤＬＬＰが記憶されていないと判定する（Ｓ３０５−ＮＯ）と、バッファ部４１にＴＬＰが記憶されているか否かを判定する（Ｓ３０６）。処理部４３は、バッファ部４１にＴＬＰが記憶されていると判定する（Ｓ３０６−ＹＥＳ）と、バッファ部４１に記憶されるＴＬＰをヒストリ記憶部２２に書き込むと共に、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ３０７）。ヒストリ記憶部２２に書き込まれたＴＬＰは、バッファ部４１から削除される。処理部４３は、取得したＴＬＰをバッファ部４１に書き込むときに、ＴＬＰをタイマ４４から入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。また、処理部４３は、バッファ部４１に記憶されるＴＬＰをヒストリ記憶部２２に書き込むときに、ＴＬＰをタイマから入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００５２】
処理部４３は、バッファ部４１にＴＬＰが記憶されていないと判定する（Ｓ３０６−ＮＯ）と、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ３０８）。処理部４３は、取得したＴＬＰをヒストリ記憶部２２に書き込むときに、ＴＬＰをタイマ４４から入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００５３】
処理部４３は、バッファ部４１にＤＬＬＰが記憶されていると判定する（Ｓ３０５−ＹＥＳ）と、登録優先度判定処理を実行して、バッファ部４１に記憶されるＴＬＰの書き込みが優先されるか否かを判定する（Ｓ３０９）。具体的には、処理部４３は、バッファ部４１に記憶されるＤＬＬＰが書き込まれた時間と、タイマが計時した現在時刻との差分と、所定のしきい値時間とを比較する。処理部４３は、ＤＬＬＰが書き込まれた時間がしきい値時間を越えたときに、バッファ部４１に記憶されるＤＬＬＰを、取得したＴＬＰ及びＤＬＬＰよりも優先してヒストリ記憶部２２に書き込むと判定する。
【００５４】
処理部４３は、登録優先度判定処理を実行して、バッファ部４１に記憶されるＤＬＬＰの書き込みが優先されないと判定する（Ｓ３０９−ＮＯ）と、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ３０８）。次いで、処理はＳ３０１に戻る。
【００５５】
処理部４３は、バッファ部４１に記憶されるＤＬＬＰの書き込みが優先されると判定する（Ｓ３０９−ＹＥＳ）と、バッファ部４１に記憶されるＤＬＬＰをヒストリ記憶部２２に書き込む。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部４１から削除される。併せて、処理部４３は、取得したＴＬＰをヒストリ記憶部２２に書き込む（Ｓ３１０）。処理部４３は、取得したＴＬＰをバッファ部４１に書き込むときに、ＴＬＰをタイマ４４から入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。また、処理部４３は、バッファ部４１に記憶されるＤＬＬＰをヒストリ記憶部２２に書き込むときに、ＤＬＬＰをタイマから入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。処理部４３は、バッファ部４１に複数のＤＬＬＰが記憶されるとき、ＤＬＬＰに関連付けられる時刻情報を参照して、最も早く書き込まれた２つのＤＬＬＰをヒストリ記憶部２２に書き込む。次いで、処理はＳ３０１に戻る。
【００５６】
処理部４３は、取得したパケットがＴＬＰではなくＤＬＬＰであると判定する（Ｓ３０４−ＮＯ）と、バッファ部４１にＤＬＬＰが記憶されているか否かを判定する（Ｓ３１１）。処理部４３は、バッファ部４１にＤＬＬＰが記憶されていると判定する（Ｓ３１１−ＹＥＳ）と、バッファ部４１に複数のＤＬＬＰが記憶されているか否かを判定する（Ｓ３１２）。処理部４３は、バッファ部４１に複数のＤＬＬＰが記憶されていると判定する（Ｓ３１２−ＹＥＳ）と、バッファ部４１に記憶されるＤＬＬＰの２つをヒストリ記憶部２２に書き込み、取得したＤＬＬＰをバッファ部４１に書き込む（Ｓ３１３）。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部４１から削除される。処理部４３は、取得したＤＬＬＰをバッファ部４１に書き込むときに、ＤＬＬＰをタイマ４４から入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。また、処理部４３は、バッファ部４１に記憶されるＤＬＬＰをヒストリ記憶部２２に書き込むときに、ＤＬＬＰをタイマから入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。処理部４３は、ＤＬＬＰに関連付けられる時刻情報を参照して、最も早く書き込まれた２つのＤＬＬＰをヒストリ記憶部２２に書き込む。次いで、処理はＳ３０１に戻る。
【００５７】
処理部４３は、バッファ部４１に複数のＤＬＬＰが記憶されていないと判定する（Ｓ３１２−ＮＯ）と、取得したＤＬＬＰと、バッファ部４１に記憶されるＤＬＬＰとをヒストリ記憶部２２に書き込む（Ｓ３１４）。処理部４３は、取得したＤＬＬＰ及びバッファ部４１に記憶されるＤＬＬＰをヒストリ記憶部２２に書き込むときに、ＤＬＬＰをタイマ４４から入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００５８】
処理部４３は、バッファ部４１にＤＬＬＰが記憶されていないと判定する（Ｓ３１１−ＮＯ）と、取得したＤＬＬＰをヒストリ記憶部２２に書き込む（Ｓ３１５）。処理部４３は、取得したＤＬＬＰをヒストリ記憶部２２に書き込むときに、ＤＬＬＰをタイマ４４から入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００５９】
処理部４３は、ＴＬＰ及びＤＬＬＰの何れのパケットも取得していないと判定する（Ｓ３０３−ＮＯ）と、バッファ部４１にＴＬＰ及びＤＬＬＰの何れかのパケットが記憶されているか否かを判定する（Ｓ３１６）。処理部４３は、バッファ部４１にＴＬＰ及びＤＬＬＰの何れかのパケットが記憶されていると判定する（Ｓ３１６−ＹＥＳ）と、バッファ部４１に記憶されたパケットをヒストリ記憶部２２に書き込む（Ｓ３１７）。ヒストリ記憶部２２に書き込まれたＤＬＬＰは、バッファ部４１から削除され、バッファ部４１は解放される。処理部４３は、バッファ部４１に記憶されるＴＬＰをヒストリ記憶部２２に書き込むときに、ＴＬＰをタイマ４４から入力される時刻情報、及びＴＬＰであることを示すパケット情報と関連付ける。また、処理部４３は、バッファ部４１に記憶されるＤＬＬＰをヒストリ記憶部２２に書き込むときに、ＤＬＬＰをタイマ４４から入力される時刻情報、及びＤＬＬＰであることを示すパケット情報と関連付ける。次いで、処理はＳ３０１に戻る。
【００６０】
処理部２３によってバッファ部２１にＤＬＬＰが記憶されていないと判定される（Ｓ３１６−ＮＯ）と、処理は終了する。
【００６１】
（第３実施形態に係るデータ受信装置の作用効果）
データ受信装置３のヒストリ部４０は、ヒストリ記憶部２２に書き込むパケットを、取得した時刻を示す時刻情報に関連付けるので、書き込まれる順番が前後した場合でもパケットの取得順序を正確に把握可能である。
【００６２】
データ受信装置３のヒストリ部４０は、書き込むパケットを、パケットがＴＬＰ及びＤＬＬＰの何れかを示すパケット情報に関連付けるので、ヒストリ記憶部２２に記憶されるパケットがＴＬＰ及びＤＬＬＰの何れかであるかを正確に把握できる。
【００６３】
（実施形態に係るデータ受信装置を有するデータ送受信システム）
図９は、実施形態に係るデータ受信装置を有するデータ送受信システムのブロック図である。
【００６４】
データ送受信システム４００は、第１コンポーネント４０１と、第２コンポーネント４０２とを有する。第１コンポーネント４０１と第２コンポーネント４０２との間は、ＰＣＩｅ規格により通信される。第１コンポーネント４０１はエンドポイントであり、第２コンポーネント４０２はホストが有するルートコンプレックスである。
【００６５】
第１コンポーネント４０１は、第２コンポーネント４０２から送信される受信信号を受信するデータ受信装置１と、データ処理部４１０と、ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４１１とを有する。データ処理部４１０は、データ受信装置１が受信した受信信号に対応する受信データに所定の処理を実行する。また、データ処理部４１０は、所定の処理を処理して生成した送信データをＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４１１に出力する。ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４１１は、データ処理部４１０から入力される送信データからＰＣＩｅ規格により送信信号を生成し、生成した送信信号を第２コンポーネント４０２に送信する。ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４１１の動作及び機能は、よく知られているので、ここでは詳細な説明は省略する。
【００６６】
第２コンポーネント４０２は、データ処理部４２０と、ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４２１と、ＰＣＩ  Ｅｘｐｒｅｓｓ受信部４２２とを有する。データ処理部４２０は、ＰＣＩ  Ｅｘｐｒｅｓｓ受信部４２２が受信した送信信号に対応する第１データに所定の処理を実行する。また、データ処理部４２０は、所定の処理を処理して生成した第２データをＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４２１に出力する。ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４２１は、データ処理部４２０から入力される第２データからＰＣＩｅ規格により受信信号を生成し、生成した受信信号を第１コンポーネント４０１に送信する。ＰＣＩ  Ｅｘｐｒｅｓｓ受信部４２２は、第１コンポーネント４０１から送信される送信信号からＰＣＩｅ規格により第１データを生成し、生成した第１データをデータ処理部４２０に出力する。ＰＣＩ  Ｅｘｐｒｅｓｓ送信装置４２１及びＰＣＩ  Ｅｘｐｒｅｓｓ受信部４２２の動作及び機能は、よく知られているので、ここでは詳細な説明は省略する。
【符号の説明】
【００６７】
１〜３    データ受信装置
１０    ＰＣＩ  Ｅｘｐｒｅｓｓ受信部（受信部）
２０、３０、４０    ヒストリ部
２１、３１、４１    バッファ部
２２    ヒストリ記憶部
２３、３３、４３    処理部
【図１】
2019133567.tif 000003
【図２】
2019133567.tif 000004
【図３】
2019133567.tif 000005
【図４】
2019133567.tif 000006
【図５】
2019133567.tif 000007
【図６】
2019133567.tif 000008
【図７】
2019133567.tif 000009
【図８】
2019133567.tif 000010
【図９】
2019133567.tif 000011