(57)【要約】【課題】  シリアル通信回線の障害が発生した場合に、物理レイヤにおける回線復帰処理後のタイムアウト検出をさせない時点で、データの送信を早期に完了させることを課題とする。【解決手段】  上記課題を解決するシリアル伝送装置は、タイムアウト検出部４２がタイムアウトを検出した場合に加えて、リカバリー状態検出部４７が通信回線の回線復帰処理中である状態を検出した場合に、再送信要求部４３に送信データバッファ４８に格納されている送信済みデータの再送信を指示する。【選択図】図２
2012085244.tif 000002
【特許請求の範囲】
【請求項１】
シリアル通信回線を介してデータの伝送を行うシリアル伝送装置であって、
送信データバッファに格納されたデータを送信先装置に送信する送信部と、
送信したデータに対する応答を所定の期間内に送信先装置から受信しなかった場合にタイムアウトを検出するタイムアウト検出部と、
前記シリアル通信回線の回線復帰処理中であることを示すリカバリー状態を検出するリカバリー状態検出部と、
前記シリアル通信回線を介してデータの送信を行う際に、前記タイムアウト検出部でタイムアウトを検出した場合、又は、前記リカバリー状態検出回路でシリアル通信回線のリカバリー状態を検出した場合に、前記送信データバッファに格納されている送信済みデータの再送信を前記送信部に要求する再送要求部と
を有することを特徴とするシリアル伝送装置。
【請求項２】
請求項１に記載のシリアル伝送装置であって、さらに
前記リカバリー状態検出部で前記シリアル通信回線のリカバリー状態を検出した場合に、前記他の伝送装置に通知する異常通知を生成するとともに前記送信部に送信させる異常通知送信部
を有することを特徴とするシリアル伝送装置。
【請求項３】
請求項１に記載のシリアル伝送装置であって、
前記リカバリー状態検出回路は、前記シリアル通信回線のリンク状態を示す信号がリカバリー状態を示す場合にリカバリー状態を検出する
ことを特徴とするシリアル伝送装置。
【請求項４】
バスにより相互に接続されるプロセッサと、メモリと、シリアル通信回線を介して他の装置との間のデータの伝送を行うシリアル・インタフェースとを有する情報処理装置であって、
前記シリアル・インタフェースは、
送信データバッファに格納されたデータを送信先装置に送信する送信部と、
送信したデータに対する応答を所定の期間内に前記送信先装置から受信しなかった場合にタイムアウトを検出するタイムアウト検出部と、
前記シリアル通信回線の回線復帰処理中であることを示すリカバリー状態を検出するリカバリー状態検出部と、
前記シリアル通信回線を介してデータの送信を行う際に、前記タイムアウト検出部でタイムアウトを検出した場合、又は、前記リカバリー状態検出回路でシリアル通信回線のリカバリー状態を検出した場合に、前記送信データバッファに格納されている送信済みデータの再送信を前記送信部に要求する再送要求部とを有する
ことを特徴とする情報処理装置。
【請求項５】
シリアル通信回線を介してデータの伝送をシリアル伝送装置により行うシリアル伝送方法であって、
送信データバッファに格納されたデータを送信先装置に送信する送信工程と、
送信したデータに対する応答を所定の期間内に前記送信先装置から受信しなかった場合にタイムアウトを検出するタイムアウト検出工程と、
前記シリアル通信回線の回線復帰処理中であることを示すリカバリー状態を検出するリカバリー状態検出工程と、
前記シリアル通信回線を介してデータの送信を行う際に、前記タイムアウト検出工程でタイムアウトを検出した場合、又は、前記リカバリー状態検出工程でシリアル通信回線のリカバリー状態を検出した場合に、前記送信データバッファに格納されている送信済みデータの再送信を前記送信データバッファに要求する再送要求工程と
を有することを特徴とするシリアル伝送方法。
【請求項６】
シリアル通信回線を介してデータの伝送をシリアル伝送装置により行うシリアル伝送方法であって、
前記シリアル通信回線を介して送信されてきたデータを受信するデータ受信工程と、
前記シリアル通信回線の回線復帰処理中であることを示すリカバリー状態を検出するリカバリー状態検出工程と、
前記シリアル通信回線を介して送信されてきたデータの受信を行う際に、前記データ受信工程で正常にデータを受信できなかった場合、又は、前記リカバリー状態検出工程で前記シリアル通信回線のリカバリー状態を検出した場合に、前記他の伝送装置に通知する異常通知を生成するとともに送信処理を行う送信部に送信させる異常通知送信工程と
を有することを特徴とするシリアル伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信回線を介してデータを送受信するシリアル伝送装置、情報処理装置、及びシリアル伝送方法に関するものである。
【背景技術】
【０００２】
図１０は、シリアル伝送を行う一般的なシリアル伝送装置のシステム構成例及びレイヤ構造の例を示した図である。図１０において、装置１１０と装置２１０は、互いにシリアル通信回線３１０で接続され、シリアル通信回線３１０を介してデータの送受信を行う。
【０００３】
シリアル伝送を行う方式には、３つのレイヤ構造を持つものがある。図１０の例では、装置１１０と装置２１０の各々は、物理レイヤ、リンクレイヤ、上位レイヤの各レイヤを有する。ここで、物理レイヤは、シリアル通信回線３１０を介した通信パケットの送受信の制御を行う。リンクレイヤは、シリアル通信回線３１０を介したデータの送受信を論理的に制御する。上位レイヤは通信パケットの生成やソフトウェアに対して通信データの受け渡しを行う。３つのレイヤ構造を持つ転送方式の具体例の一つとして、例えば、PCI Expressによるデータ転送方式では、物理レイヤ（ＰＬ）、データリンクレイヤ（ＤＬＬ）、トランザクションレイヤ（ＴＬ）を有する。
【０００４】
物理レイヤは、リンクレイヤとシリアル通信回線との間のデータ転送を行うほか、シリアル通信回線の接続を確立するための制御も行う。シリアル通信回線の制御としては、シリアル通信回線上で障害が発生した場合の回線復帰処理も含まれる。
【０００５】
リンクレイヤは、対向する装置間のデータ伝送を保証するための制御を行う。リンクレイヤは、上位レイヤからトランザクションレイヤパケット（ＴＬＰ）を受け取り、受け取ったＴＬＰにシーケンス番号（ＳＥＱ）を付加する。シーケンス番号が付加されたＴＬＰデータは、物理レイヤを介して、対向する装置に送信される。
【０００６】
リンクレイヤは、データ送信機能として、ＴＬＰの伝送を行う機能の他に、正常／異常通知により送信完了を判断する機能、タイムアウトを検出する機能、データの再送信機能を有する。また、リンクレイヤは、データ受信機能として、データを受信する機能の他に、受信したデータが正常化異常かを判断し、判断結果を正常／異常通知として対向装置へ送信する機能を有する。各装置はデータの送信側にも受信側にもなり得るため、各装置ごとのリンクレイヤが、これらのデータ送信機能とデータ受信機能の両方の機能を持つ。これらのリンクレイヤのデータ送信機能及びデータ受信機能により、データ伝送がより確実に行われる。このリンクレイヤのデータ送信機能およびデータ受信機能の内容について、以下、具体的に説明する。
【０００７】
リンクレイヤが生成する正常／異常通知は、伝送路（リンク）を管理するためのデータリンクレイヤパケット（ＤＬＬＰ）を用いて対向装置に送信される。正常通知、すなわち、１つ又は複数のＴＬＰを正常に受信したことを通知する肯定応答として、ＡＣＫ  ＤＬＬＰが使用される。異常通知、すなわち、ＴＬＰの再送を要求するための否定応答として、ＮＡＫ  ＤＬＬＰが使用される。
【０００８】
受信側装置は受信したＴＬＰが正常かどうかを判定し、判定結果をＡＣＫ／ＮＡＫ  ＤＬＬＰにより送信側装置に通知する。受信側装置がＴＬＰを正常に受信した場合、ＡＣＫ  ＤＬＬＰに、受信側装置が最後に正常受信したＴＬＰのシーケンス番号を付加して送信側装置に送信する。
【０００９】
送信側装置では、物理レイヤを介して送信されたＴＬＰは、受信側装置からのＡＣＫ／ＮＡＫ  ＤＬＬＰによる送達確認がされるまでは、リトライバッファあるいは送信バッファ等に保存される。リトライバッファに保存されたＴＬＰは、受信側装置でＴＬＰを正常受信できなかった場合のＴＬＰの再送信に使用される。
【００１０】
受信側装置からＡＣＫ  ＤＬＬＰが届いた場合、送信側装置ではリトライバッファに保存してあるＴＬＰのうち、ＡＣＫ  ＤＬＬＰにより送達が確認されたＴＬＰが廃棄される。具体的には、ＡＣＫ  ＤＬＬＰで通知されたシーケンス番号及びそれ以前のシーケンス番号を持つＴＬＰが廃棄される。受信側装置からＮＡＫ  ＤＬＬＰが届いた場合、送信側装置では送達確認されたＴＬＰがリトライバッファから廃棄されるとともに、送達確認されなかったＴＬＰ、つまりリトライバッファに残っているＴＬＰが再度送信される。送信済みのＴＬＰがリトライバッファから廃棄されると、廃棄されたＴＬＰに相当する分だけリトライバッファのバッファ領域が開放される。
【００１１】
送信側装置では、ＴＬＰ送信後、送信先の装置から一定時間内に送達確認が返送されなかった場合、リトライバッファに保存されている送達確認されていないＴＬＰを一番古いものから順に全て再送信する。
【００１２】
送信側装置において、複数回ＴＬＰの再送信が行われても送信先の装置から送達確認が送付されてこない場合には、リンクが正常に動作していないものとみなされる。この場合、送信側装置のリンクレイヤは、物理レイヤにリンクの再トレーニング処理を指示する。再トレーニング指示を受けた物理レイヤは、リンク状態を管理しているステートマシンをリカバリステートに遷移させ、リンクを正常復帰させるための回線復帰処理を行う。
【００１３】
受信側装置では、物理レイヤがエラーを検出した場合や、ＣＲＣ（Cyclic Redundancy Check）エラーが検出された場合に、ＮＡＫ  ＤＬＬＰを送信する。受信したＴＬＰのシーケンス番号が次に受信すべきシーケンス番号に一致するか、または次に受信すべきシーケンス番号よりも小さい番号の場合、受信側装置は、ＡＣＫ  ＤＬＬＰを送信する。受信したＴＬＰのシーケンス番号が次に受信すべきシーケンス番号よりも小さい場合、受信したＴＬＰは、重複受信したＴＬＰであるとして廃棄される。受信したＴＬＰのシーケンス番号が次に受信すべきシーケンス番号以下の番号ではない場合、受信側装置は、ＮＡＫ  ＤＬＬＰを送信する。
【００１４】
上述のような送信側装置と受信側装置におけるＤＬＬＰ応答処理やＴＬＰの再送処理等によって、より確実なデータ送信が行われる。以下、図１１〜１３を用いて具体的に説明する。
【００１５】
図１１は、データ送信が正常に行われた場合の処理フローの例を示した図である。図１１において、上位レイヤは「ＴＬ」で、リンクレイヤは「ＤＬＬ」で、物理レイヤは「ＰＬ」で示されている（以下、同様）。図１１は、送信側の装置Ａと受信側の装置Ｂの各ＴＬ，ＤＬＬ，ＰＬを示すとともに、横軸に時間軸を設けて、データ伝送と応答がどのように行われていくかを示した図である。
【００１６】
図１１において、装置Ａは、時刻Ｔ１にＴＬでデータ（ＴＬＰ）を生成し、生成したＴＬＰにシーケンス番号（ＳＥＱ）「１０」をＤＬＬで付加し、ＰＬを介して装置Ｂへ送信する。装置Ｂは、時刻Ｔ２に装置Ａから送信されたＴＬＰを正常に受信し、受信結果が正常であることを示すＡＣＫ  ＤＬＬＰ応答をシーケンス番号「１０」と共に装置Ａへ送信する。装置Ａは、時刻Ｔ３に装置ＢからのＡＣＫ  ＤＬＬＰ応答を受信することにより、シーケンス番号「１０」のデータ送信処理が正常に行われたことを知る。その後、装置Ａは、時刻Ｔ４に次の送信ＴＬＰにシーケンス番号「１１」を付加して装置Ｂへ送信する。同様の手順により、時刻Ｔ６に装置ＢからのＡＣＫ  ＤＬＬＰ応答を装置Ａが受信し、シーケンス番号「１１」のデータ送信処理が完了する。
図１２は、データ送信で異常が発生した場合の処理フローの例を示した図である。装置Ａは、時刻Ｔ１に送信ＴＬＰにシーケンス番号「１０」を付加して装置Ｂへ送信する。しかし、伝送路上の何らかの理由によってＣＲＣエラーが発生したような場合には、時刻Ｔ２において装置Ｂが装置Ａから送付されたデータを正常に受信できないことがあり得る。この場合、装置ＢはＴＬＰを正常に受信できなかったことを示すＮＡＫ  ＤＬＬＰ応答を装置Ａへ送信する。ＮＡＫ  ＤＬＬＰ応答には、装置Ｂが最後に正常受信したＴＬＰのシーケンス番号「９」が付加される。
【００１７】
装置Ａは、時刻Ｔ３においてＮＡＫ  ＤＬＬＰ応答を受信し、シーケンス番号「１０」のＴＬＰ送信が正常に行われなかったことを知り、リトライバッファに格納されているＴＬＰを時刻Ｔ４に再送信する。時刻Ｔ４に再送信されたＴＬＰは、時刻Ｔ５に装置Ｂに正常に受信され、装置Ｂから装置Ａに対してＡＣＫ  ＤＬＬＰ応答が送信される。その後、時刻Ｔ６に装置ＢからのＡＣＫ  ＤＬＬＰ応答を装置Ａが受信し、シーケンス番号「１０」のデータ送信処理が完了する。
図１３は、データ送信でタイムアウトが発生した場合の処理フローの例を示した図である。装置Ａは、時刻Ｔ１に送信ＴＬＰにシーケンス番号「１０」を付加して装置Ｂへ送信する。装置Ｂは、時刻Ｔ２に装置ＡからのＴＬＰを正常受信し、時刻Ｔ３に装置Ａに対してＡＣＫ  ＤＬＬＰ応答を送信する。しかし、装置Ｂから送信されたＡＣＫ  ＤＬＬＰ応答がリンク経路上において何らかの理由により消失してしまう場合があり得る。この場合、装置Ａでは、タイマカウンタ等により一定時間が経過したことを知ると、タイムアウト（Ｔ．Ｏ．）が発生する（時刻Ｔ４）。
【００１８】
装置Ａにおいてタイムアウトが発生した場合、すなわち、装置Ｂから一定期間内に送達確認が送付されてこない場合、装置Ａは、リトライバッファに保存されているＴＬＰを再送信する（時刻Ｔ５）。時刻Ｔ５に再送信されたＴＬＰは、時刻Ｔ６に装置Ｂに正常に受信され、装置Ｂから装置Ａに対してＡＣＫ  ＤＬＬＰ応答が送信される。その後、時刻Ｔ７に装置ＢからのＡＣＫ  ＤＬＬＰ応答を装置Ａが受信し、シーケンス番号「１０」のデータ送信処理が完了する。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開平０２−２８５７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
シリアル通信回線の障害発生時に、通信回線の回線復帰処理により、送信側装置のリンクレイヤから送信したＴＬＰが喪失することがある。このような場合、送信側装置のリンクレイヤがタイムアウトを検出することによりデータの送信を完了するので、回線復帰処理後のデータ送信完了にタイムアウト期間以上の時間を要していた。以下、リンクレイヤのタイムアウトを「ＲＴＯ」と略記する。
【００２１】
物理レイヤは、通信回線で障害が発生した場合、回線復帰処理を行う。回線復帰処理を行っている間、物理レイヤはリンクレイヤからのデータ送信を停止させる。ここで、リンクレイヤは物理レイヤから独立しているため、物理レイヤが回線復帰処理を行う前にリンクレイヤから物理レイヤに対してデータの送信が行われることがある。このような場合、物理レイヤの回線復帰処理中にリンクレイヤから転送されたデータは物理レイヤで破棄される。
【００２２】
このように、物理レイヤでの回線復帰処理のタイミングとリンクレイヤからのデータ送信タイミングとが競合する場合には、リンクレイヤから送信されたデータが喪失することがある。リンクレイヤから送信されたデータが喪失した場合には、リンクレイヤのタイムアウト検出により、タイムアウト時間経過後にデータが再送信されることになる。
図１４は、送信ＴＬＰが喪失した場合の処理フローの例を示した図である。図１４の例では、装置Ａから時刻Ｔ１にシーケンス番号「１０」が付加されたＴＬＰが物理レイヤに送信される。その際、時刻Ｔ１の直後の時刻Ｔ２において、物理レイヤが通信回線の回線復帰処理を開始している。物理レイヤの回線復帰処理では、装置Ａの物理レイヤと装置Ｂの物理レイヤとがそれぞれ回線復帰処理を行うためのトレーニングシーケンス・パケット（ＴＳパケット）の送受信を行う。ＴＳパケットは、物理レイヤどうしの通信を行うための物理レイヤパケット（ＰＬＰ：Physical Layer Packet）により送受信される。
【００２３】
図１４では、装置Ａのリンクレイヤから送信されたＴＬＰは、物理レイヤが回線復帰処理中であるために、物理レイヤにおいて破棄されてしまう。そのため、装置Ａのリンクレイヤでタイムアウト（ＲＴＯ）が発生する（時刻Ｔ４）。タイムアウト（ＲＴＯ）が発生すると、装置Ａのリンクレイヤはシーケンス番号「１０」のＴＬＰがうまく送信できなかったことを知り、時刻Ｔ５にリトライバッファに格納されているＴＬＰデータを再送信する。再送信されたＴＬＰは、時刻Ｔ６に装置Ｂに受信され、装置ＢからのＡＣＫ  ＤＬＬＰ応答が時刻Ｔ７で装置Ａに受信されて、シーケンス番号「１０」の送信処理が完了する。
【００２４】
図１４の例において、物理レイヤが回線復帰処理を行っている時刻Ｔ２から時刻Ｔ３までの間は、通信回線が使用できないため、ＴＬＰの再送信を待たせる必要がある。しかし、時刻Ｔ３から時刻Ｔ４までのタイムアウト検出までの期間については、ＴＬＰの再送信を待たせる必要はないので、この期間、ＴＬＰの再送信を待たせるのは余分な時間を使ってしまうことになる。
図１５は、正常／異常通知（ＤＬＬＰ）が喪失した場合の処理フローの例を示した図である。図１５の例では、時刻Ｔ１に装置Ｂから装置Ａに対してＴＬＰが送信され、時刻Ｔ２に装置ＡがＴＬＰを正常受信した後、装置Ａのリンクレイヤは、ＡＣＫ  ＤＬＬＰを装置Ｂに対して送信する。しかし、時刻Ｔ２の直後の時刻Ｔ３において、物理レイヤが通信回線の回線復帰処理を開始しており、装置Ａのリンクレイヤが送信したＡＣＫ  ＤＬＬＰは装置Ａの物理レイヤにおいて破棄されてしまう。この場合、装置Ｂのリンクレイヤは、装置Ａからの送達確認の応答を受信できないため、時刻Ｔ５にタイムアウト（ＲＴＯ）が発生する。
【００２５】
時刻Ｔ５のタイムアウトを検出した装置Ｂは、ＴＬＰを正常に送信できなかったと判断して、リトライバッファに格納されているＴＬＰデータを再送信する。この場合、装置Ａではシーケンス番号「１０」のＴＬＰを既に受信しているので、時刻Ｔ６に受信したＴＬＰを破棄するとともに、装置Ｂに対して再度、シーケンス番号「１０」のＡＣＫ  ＤＬＬＰを送信する。
【００２６】
図１５の例においても、物理レイヤの回線復帰処理を行うための時刻Ｔ３から時刻Ｔ４までの間は、通信回線が使用できないため、ＴＬＰの再送信を待たせる必要がある。しかし、時刻Ｔ４から時刻Ｔ５までのタイムアウト検出までの期間については、ＴＬＰの再送信を待たせる必要はないので、この期間、ＴＬＰの再送信を待たせるのは余分な時間を使ってしまうことになる。
【００２７】
図１４、図１５の例で説明したように、従来、リンクレイヤが送信したデータを物理レイヤが回線復帰処理期間中に破棄した場合には、リンクレイヤが送信データの喪失を知る手段はタイムアウト（ＲＴＯ）の検出しかなかった。すなわち、リンクレイヤが送信したデータが喪失した場合、データ送信の完了は、原理的にタイムアウト（ＲＴＯ）時間以下にはできないという問題があった。そのため、本発明では、通信回線の障害が発生した場合に、物理レイヤにおける回線復帰処理後のタイムアウト検出をさせない時点で、データの送信を早期に完了させることを課題とする。
【課題を解決するための手段】
【００２８】
本実施例におけるシリアル通信回線を介してデータの送信及び受信を行うシリアル伝送装置は、前記シリアル通信回線を介して送信されてきたデータを受信するデータ受信部と、送信データバッファに保持された送信データを送信する送信部と、送信データに対する応答が所定の期間内に来なかった場合にタイムアウトを検出するタイムアウト検出部と、前記シリアル通信回線の回線復帰処理中であることを示すリカバリー状態を検出するリカバリー状態検出部と、前記シリアル通信回線を介してデータの送信を行う際に、前記タイムアウト検出部でタイムアウトを検出した場合、又は、前記リカバリー状態検出回路でシリアル通信回線のリカバリー状態を検出した場合に、前記送信データバッファに格納されている送信済みデータの再送信を前記送信部に要求する再送要求部と、を有する。
【発明の効果】
【００２９】
通信回線の障害が発生した場合に、物理レイヤにおける回線復帰処理後のタイムアウト検出を待たないで、データの送信を早期に完了させることが可能となる。また、余分なタイムアウトの検出を防止することが可能となる。
【図面の簡単な説明】
【００３０】
【図１】図１は、実施例を適用したサーバ装置の（概略）構成図を示す。
【図２】図２は、実施例に係るシリアル伝送装置のデータリンクレイヤ及び物理レイヤのブロック図を示す。
【図３】図３は、実施例に係るＴＬＰ再送信処理に関連する回路を説明する図である。
【図４】図４は、実施例に係るＤＬＬＰ再送信処理に関連する回路を説明する図である。
【図５】図５は、データ送信の制御フローを示すフローチャートである。
【図６】図６は、データ受信の制御フローを示すフローチャートである。
【図７】図７は、実施例に係る送信データ（ＴＬＰ）が喪失したときの処理フローを示す。
【図８】図８は、実施例に係る正常／異常通知（ＤＬＬＰ）が喪失したときの処理フローを示す。
【図９】図９は、データリンクレイヤ（ＤＬＬ）と物理レイヤ（ＰＬ）を別チップとした場合のシリアル伝送装置のブロック図を示す。
【図１０】図１０は、一般的なシリアル伝送方式におけるシステム構成及びレイヤ構造を示す。
【図１１】図１１は、データ送信が正常に行われた場合のフローを示す。
【図１２】図１２は、データ送信で異常が発生した場合のフローを示す。
【図１３】図１３は、データ送信でタイムアウトが発生した場合のフローを示す。
【図１４】図１５は、送信データ（ＴＬＰ）が喪失した場合のフローを示す。
【図１５】図１６は、正常／異常通知（ＤＬＬＰ）が喪失した場合のフローを示す。
【発明を実施するための形態】
【００３１】
以下、本発明を実施するための形態について詳細に説明する。
【００３２】
図１は、実施例を適用したサーバ装置の構成例を示した図である。図１に示すサーバ装置１００は、プロセッサ１０とメモリ１２とを有する。また、サーバ装置１００は、外部Ｉ／Ｏデバイス２００との通信を行うためのシリアル・インタフェース２０も有する。プロセッサ１０、メモリ１２、シリアル・インタフェース２０の各々は、バス１４を介して相互に接続される。図１において、サーバ装置を構成する他の要素は、説明の便宜上記載を省略する。
【００３３】
図１のサーバ装置の構成例において、サーバ装置１００と外部Ｉ／Ｏデバイス２００との通信には、PCI Expressインタフェースが使用されるものとする。シリアル・インタフェース２０と外部Ｉ／Ｏデバイス２００のそれぞれにおいて、PCI Expressインタフェースを構成する３階層のレイヤ（ＴＬ、ＤＬＬ、ＰＬ）と、その上位に位置するソフトウェアレイヤとを有する。シリアル・インタフェース２０でのソフトウェアレイヤは、サーバ装置１００のサーバシステムの制御を行うレイヤ（Server System core）の機能を司る。外部Ｉ／Ｏデバイスでのソフトウェアレイヤは、PCI Expressインタフェース３００を介したデータ送受信の制御を行うデバイスドライバ・ソフトウェア（PCI Express Device core）の機能を司る。
【００３４】
各トランザクションレイヤ（ＴＬ）は、上位のソフトウェアレイヤに対してPCI Expressプロトコルに従ったデータ送受信の機能と提供するとともに、対向装置とのデータの送受信を行うためのトランザクションレイヤパケット（ＴＬＰ）の生成等を行う。
【００３５】
データリンクレイヤ（ＤＬＬ）は、対向する装置間のデータ伝送を保証するための制御を行う。物理レイヤ（ＰＬ）は、対向する装置間の通信回線（リンク）の接続を確立する制御や、通信回線を介したデータの送受信、及び、通信回線上で障害が発生した場合の回線復帰処理等を行う。データリンクレイヤ（ＤＬＬ）及び物理レイヤ（ＰＬ）の詳細については、図２を用いて後述する。
図２は、実施例に係るシリアル伝送装置のデータリンクレイヤ及び物理レイヤのブロック図を示す。図２は、シリアル・インタフェース２０の構成要素のうち、特に実施例に関連するデータリンクレイヤ（ＤＬＬ部）４０と物理レイヤ（ＰＬ部）６０に着目して説明する図である。
【００３６】
データリンクレイヤ（ＤＬＬ）の機能を司るＤＬＬ部４０は、トランザクションレイヤ（ＴＬ部）３０から転送されてくるＴＬＰの整形処理を行う。具体的には、ＤＬＬ部４０は、ＴＬ部３０から転送されてくるＴＬＰにシーケンス番号（ＳＥＱ）やＣＲＣ情報を付加してＰＬ部６０に渡したり、ＴＬＰ送信が正常に終了しなかった場合のＴＬＰ再送信処理等を行う。また、ＤＬＬ部４０は、対向装置から受信ＴＬＰに含まれるシーケンス番号やＣＲＣ情報等に基づいて受信結果の確認処理を行い、確認結果をデータリンクレイヤパケット（ＤＬＬＰ）を用いて対向装置に返信する処理を行う。
【００３７】
ＤＬＬ部４０は送信するデータ（パケット）を選択し、物理レイヤ（ＰＬ部６０）に転送する。その際、ＤＬＬ部４０は通信回線の状態（リンク状態）に応じて、ＰＬ部６０へのデータ送信を制御する。ＤＬＬ部４０は、一旦データ送信を開始すると、パケットデータが終了するまでデータを送信する。
【００３８】
さらに、ＤＬＬ部４０は、通信回線のリカバリー状態の検出、すなわち、ＰＬ部６０が通信回線の回線復帰処理を行っている状態の検出を行う。ＴＬＰ又はＤＬＬＰデータを送信中にリカバリー状態を検出すると、ＤＬＬ部４０は、送信中のＴＬＰ又はＤＬＬＰが装置間の通信回線上で喪失したものとみなして、ＴＬＰ又はＤＬＬＰの再送信を予約する。そして、ＰＬ部６０からの通信回線のリンク状態を通知する「ＬＩＮＫ状態」の信号を介して通信回線がリカバリー状態、すなわち回線復帰処理を行っている状態から復帰したことを認識すると、再送信すべきＴＬＰ又はＤＬＬＰをＰＬ部６０に再送信する。
【００３９】
ＤＬＬ部４０が通信回線のリカバリー状態を検出して、ＴＬＰ又はＤＬＬＰを再送信する機構を設けることで、ＤＬＬ部４０がＴＬＰ又はＤＬＬＰの再送信の必要性を早期に認識することができる。その結果、ＰＬ部６０における回線復帰処理後のタイムアウト検出を待たずに、データの送信を早期に完了させることが可能となる。また、余分なタイムアウトの検出も防止することが可能となる。以下、図２のＤＬＬ部４０の各構成部について詳細に説明する。
【００４０】
受信データ処理部４１は、データ受信側のデータリンクレイヤとして機能する場合、ＰＬ部６０を介して受信したＴＬＰデータに基づいて、ＴＬ部３０へ出力するＴＬＰデータを生成する。その際、受信ＴＬＰに含まれるＣＲＣ情報に基づいて、データを正しく受信できたか否かを判定する。ＴＬＰデータを正常に受信できた場合には、受信データ処理部４１は後述の正常通知送信部４５にＡＣＫ  ＤＬＬＰ応答を送信するように指示するとともに、ＳＥＱ番号保持・更新部４４に次に受信するＴＬＰの受信ＳＥＱ番号の更新を指示する。
【００４１】
一方、ＣＲＣエラー等によりＴＬＰデータを正常に受信できなかった場合、受信データ処理部４１は異常通知送信部４６にＮＡＫ  ＤＬＬＰ応答を送信するように指示する。合わせて、受信データ処理部４１は、受信ＳＥＱ番号を更新しないようＳＥＱ番号保持・更新部４４に指示する。この場合、受信データ処理部４１がＳＥＱ番号保持・更新部４４に何も指示しないようにして、受信ＳＥＱ番号が更新されないようにしてもよい。
【００４２】
受信データ部４１は、データ送信側のデータリンクレイヤとして機能する場合、ＰＬ部６０を介して受信したＤＬＬＰに基づいて、送信先装置に送信したＴＬＰが正しく送達されたか否かを判定する。ＡＣＫ  ＤＬＬＰを受信した場合、受信データ部４１は、ＳＥＱ番号保持・更新部４４に対して、送信ＳＥＱ番号の更新を指示する。また、受信したＡＣＫ  ＤＬＬＰに対応する送信済みのＴＬＰデータは不要となるため、受信データ処理部４１は、送信データバッファ４８へ、不要となったＴＬＰデータの廃棄を指示する（不図示）。
【００４３】
一方、受信データ部４１がＮＡＫ  ＤＬＬＰを受信した場合、送信ＴＬＰが送信先の装置で正常に受信されていないため、ＮＡＫ  ＤＬＬＰに基づくＴＬＰの再送信の指示が再送信要求部４３に入力される。この再送信要求部４３へのＴＬＰの再送信の指示は、図２に示すように、受信したＤＬＬＰを特定の回路（不図示）で直接デコードして再送信要求部４３に指示を行ってもよいし、同様の処理を受信データ処理部４１から行ってもよい。ＮＡＫ  ＤＬＬＰを受信した場合には、受信ＳＥＱ番号の更新及び送信済みＴＬＰデータの廃棄は行われない。
【００４４】
タイムアウト検出部４２は、送信ＴＬＰに対するＤＬＬＰ応答が一定期間内に送信先装置から返送されて来ない場合のタイムアウトを検出する。具体的には、タイムアウト検出部４２は、ＴＬＰを送信してから送信したＴＬＰに対応するＤＬＬＰ応答が送信先装置から返送されるまでの期間を計時するタイマカウンタ等を有する。タイムアウト検出部４２のタイマカウンタは、ＴＬＰ送信によりカウントを開始し、ＤＬＬＰ受信によりカウンタを停止又はリセットできればよい。
【００４５】
リカバリー状態検出部４７は、ＰＬ部６０からの通信回線のリンク状態を示す情報である「ＬＩＮＫ状態」の信号に基づいて、通信回線のリカバリー状態、すなわち通信回線の回線復帰処理が行なわれている状態にあるか否かを検出する。通信回線のリカバリー状態が検出された場合、リカバリー状態検出部は、後述の再送信要求部４３、異常通知送信部４６のそれぞれに対して、通信回線のリカバリー状態が発生したことを通知する。
【００４６】
再送信要求部４３は、ＴＬＰデータ再送要求が発生した場合に、送信バッファ４８に格納されている送信済みのＴＬＰを送信先装置に再送信させる指示を行う。ＴＬＰデータ再送要求としては、まず、タイムアウト検出部４２によりタイムアウトが検出された場合のＴＬＰ再送要求がある。また、ＮＡＫ  ＤＬＬＰ応答を受信した場合、すなわち、送信先装置でＴＬＰを正常受信できなかった場合のＴＬＰ再送要求がある。さらに、リカバリー状態検出部４７で通信回線のリカバリー状態を検出した場合にも、通信回線の回線復帰処理中にＴＬＰ送信データが消失している可能性があるため、ＴＬＰ再送要求を発生させる。再送信要求部４３の詳細については、図３を用いて後述する。
【００４７】
ＳＥＱ番号保持・更新部４４は、送信ＴＬＰに付加する送信シーケンス番号やＤＬＬＰに付加する受信シーケンス番号を保持すると共に、ＴＬＰやＤＬＬＰの受信結果に基づいて、保持しているシーケンス番号の更新を行う。
【００４８】
正常通知送信部４５は、受信データ処理部４１で送信元装置からのＴＬＰを正常に受信できた場合に、ＡＣＫ  ＤＬＬＰを生成して送信元装置に送信する。異常通知送信部４６は、受信データ処理部４１で送信元装置からのＴＬＰを正常に受信できなかった場合に、ＮＡＫ  ＤＬＬＰを生成して送信元装置に送信する。リカバリー状態検出部４７で通信回線のリカバリー状態を検出した場合、通信回線の回線復帰処理中にＡＣＫ／ＮＡＫ  ＤＬＬＰデータが消失している可能性がある。従って、リカバリー状態検出部４７は異常通知送信部４６にＮＡＫ  ＤＬＬＰを再送信させる。正常通知送信部４５及び異常通知送信部４６の詳細については、図４を用いて後述する。
【００４９】
送信データバッファ４８は、ＴＬ部３０から送られてくる送信ＴＬＰを格納すると共に、ＴＬＰ送信後のリトライバッファとしても機能するバッファである。再送信要求部４３からの再送信要求があった場合には、送信データバッファ４８は、格納している送信済みＴＬＰを再送信する。送信済みのＴＬＰに対する送信先装置からのＡＣＫ  ＤＬＬＰを受信データ処理部４１が受信した場合、ＡＣＫ  ＤＬＬＰで通知されたシーケンス番号以前のシーケンス番号に対応するＴＬＰデータが送信データバッファ４８から廃棄される。ここでいうＴＬＰデータの廃棄は、該当するＴＬＰデータが格納されていたバッファ領域を開放することをいう。従って、その制御方法としては、該当するバッファ領域に対するバリッド信号がある場合には、該当するバリッド信号をディスエーブルにするように制御すればよい。また、単に該当するバッファ領域を上書き可能な領域として取り扱うようにしてもよく、その他の適切な方法により不要となったＴＬＰデータを廃棄する処理を行えばよい。
【００５０】
ＴＬＰ整形部４９は、送信データバッファ４８からの送信ＴＬＰに、ＳＥＱ番号保持・更新部４４で保持している送信シーケンス番号を付加する。そして、ＴＬＰ整形部４９は、送信シーケンス番号を付加した送信ＴＬＰに対して、データチェックを行うためのＣＲＣ情報を生成して付加する。
【００５１】
送信バスアービタ５０は、ＴＬＰ整形部４９からの送信ＴＬＰの送信要求と、正常通知送信部４５からのＡＣＫ  ＤＬＬＰの送信要求と、異常通知送信部４６からのＮＡＫ  ＤＬＬＰの送信要求とを調停してＰＬ部６０へ送信する処理を行う。その際、ＰＬ部６０から通知される通信回線の状態（ＬＩＮＫ状態）が送信可能な状態であれば、送信バスアービタ５０はパケット送信を開始する。ＰＬ部６０から通知されるＬＩＮＫ状態の信号が送信不可能な状態を示す場合、通信回線が送信可能な状態となるまで、データの送信を保留する。例えば、通信回線がリカバリー状態にある場合には、データ送信できないため、送信バスアービタ５０は通信回線が復帰するまでデータの送信を保留する。
【００５２】
ＰＬ部６０は、データリンクレイヤから受け取った送信ＴＬＰ／ＤＬＬＰをシリアル信号に変換して、シリアル通信回線に送信する。また、ＰＬ部６０は、通信回線を介して受信したシリアル信号をパラレル信号に変換して、受信ＴＬＰ／ＤＬＬＰとしてデータリンクレイヤに渡す。ＰＬ部６０は、通信回線の状態を監視するとともに、通信回線の状態を「ＬＩＮＫ状態」の情報として、信号線６６を介してデータリンクレイヤに通知する。
【００５３】
図２において、送信側の通信回線はＴｘで、受信側の通信回線はＲｘで示される。Ｔｘ，Ｒｘのそれぞれは、一対の差動信号対で構成され、これらの信号はＰＬ部６０で生成される。Ｔｘ及びＲｘの差動信号を介してシリアル信号の送受信が行われる。
【００５４】
ＰＬ部６０は、シリアルデータ受信部６１とシリアルデータ送信部６２とマルチプレクサ６３とＰＬ制御部６４とＬＩＮＫ状態レジスタ６５とを有する。
【００５５】
シリアルデータ受信部６１は、Ｒｘ回線を介して受信したシリアルデータをパラレルデータに変換し、受信データがＴＬＰ、ＤＬＬＰであるか否か等を判別する。受信データがＴＬＰ、ＤＬＬＰである場合、パラレルデータに変換された受信データをＤＬＬ部４０に転送する。
【００５６】
受信データがトレーニングシーケンス・パケット（ＴＳパケット）の場合、ＤＬＬ部４０には転送せずに、受信したＴＳパケット（受信ＴＳ）をＰＬ制御部６４に転送する。ここで、ＴＳパケットとは、物理レイヤ自身で生成するＬＩＮＫ確立用に送信するパケットをいう。ＴＳパケットは、装置の初期化時や通信回線のリカバリー状態における回線復帰処理時などの通信回線の制御を行う際に送信される。ＴＳパケットを受信したＰＬ制御部６４は、送信ＴＳパケット（送信ＴＳ）を生成して、マルチプレクサ６３を介して対向装置へ送信する。
【００５７】
シリアルデータ送信部６２は、マルチプレクサ６３で選択されたＤＬＬ部４０からのＴＬＰ／ＤＬＬＰデータ又は送信ＴＳパケットデータを、パラレル・シリアル変換し、Ｔｘ回線を介して送信先装置に送信する。
【００５８】
マルチプレクサ６３は、ＬＩＮＫ状態に基づいてＴＬＰ、ＤＬＬＰを送信するかＴＳパケットを送信するかを選択する。ＬＩＮＫ状態がデータの送受信が可能な通常状態を示す場合、マルチプレクサ６３は、ＴＬＰ、ＤＬＬＰを選択して出力する。通信回線を介してシリアルデータの送受信ができない場合、例えばＬＩＮＫ状態が不安定な状態においては、マルチプレクサ６３はＴＳパケットを選択して出力する。マルチプレクサ６３がＴＳパケットを選択している場合には、ＤＬＬ部４０から転送される送信ＴＬＰ、ＤＬＬＰはＰＬ部６０で破棄される。
【００５９】
ＰＬ制御部６４は、物理レイヤの制御ステートの管理を行い、シリアル通信回線の接続制御を行う。物理レイヤの制御ステートが前述のリカバリー状態になる条件としては、ＴＬＰ送信で複数回タイムアウトが発生した場合、対向装置からＴＳパケットを受信した場合、プロセッサから直接制御された場合等がある。
【００６０】
ＬＩＮＫ状態レジスタ６５は、通信回線のＬＩＮＫ状態を表示するレジスタであり、ＰＬ制御部６４によりリンク状態が設定される。ＬＩＮＫ状態レジスタ６５は、例えば４ビットのレジスタにより構成され、ＬＩＮＫ状態レジスタ６５に格納された情報は、プロセッサ１０から所定のバス（不図示）を介してアクセスされる。また、ＬＩＮＫ状態レジスタ６５に格納された値は、図２に示す制御信号線６６を介してＤＬＬ部４０へ通知される。
図３は、実施例に係るＤＬＬ部４０におけるＴＬＰ再送信処理に関連する回路を説明する図である。図３において、図２で示した処理ブロックについては同じ番号を付している。また、ＴＬＰ再送信処理に関係しない回路は記載を省略している。
【００６１】
リカバリー状態検出部４７は、物理レイヤの処理を行うＰＬ部６０から通知されるＬＩＮＫ状態通知信号から、通信回線がリカバリー状態にあるか否かを検出する。具体的には、ＰＬ部６０からのＬＩＮＫ状態通知信号とリカバリー状態を示すコード値とを比較器４７−１で比較する。比較器４７−１が、ＬＩＮＫ状態を検出した場合には、本実施例での比較器４７−１は「１」を出力する。
【００６２】
タイムアウト検出部４２は、タイムアウトを検出すると、本実施例でのタイムアウト信号（ＲＴＯ）として「１」を出力する。また、受信データ処理部４１は、ＮＡＫ  ＤＬＬＰを受信すると、本実施例での異常通知信号（ＮＡＫ）として「１」を出力する。
【００６３】
再送信要求部４３は、タイムアウトの発生、対向装置からの異常通知（ＮＡＫ  ＤＬＬＰ）の受信、リカバリー状態の検出のいずれかの事象が発生した場合に、送信ＴＬＰバッファ４８に格納されたＴＬＰを再送信する。
【００６４】
再送信要求部４３のＯＲゲート４３−１は、タイムアウト検出部４２が出力したタイムアウト信号（ＲＴＯ）、受信データ処理部４１が出力した異常通知信号（ＮＡＫ）、リカバリー状態検出部４７が出力したリカバリー状態の検出結果信号を入力し、いずれかの入力信号が「１」になると、「１」を出力する。
【００６５】
ＯＲゲート４３−１出力が「１」であり、かつ、ＳＥＱ番号保持・更新部４４からの、正常通知（ＡＣＫ）待ちをしているＴＬＰがあるか否かを示す信号が「１」である場合に、ＡＮＤゲート４３−２は「１」を出力する。この時点で、ＴＬＰ再送要求信号を生成するＦＦ４３−５出力が、ＴＬＰ再送要求がないことを示す「０」になっているとすれば、ＯＲゲート４３−３の一方の入力は「０」のままである。従って、ＡＮＤゲート４３−２の出力が「１」になると、ＯＲゲート４３−３の出力も「１」となる。
【００６６】
この時点で、ＡＮＤゲート４３−４の一方の端子に反転して入力される後述の再送Ｆｌａｇ信号の値が「０」であれば、ＯＲゲート４３−３出力が「１」になると、ＡＮＤゲート４３−４の出力も「１」となる。その結果、次のクロックサイクルで、ＦＦ４３−５出力が「１」にセットされる。ＦＦ４３−５出力が１にセットされると、送信ＴＬＰバッファ４８に対するＴＬＰ再送要求信号が「１」にセットされる。
【００６７】
送信ＴＬＰバッファ４８は、ＴＬＰ再送要求信号として１が入力されると、送信すべきＴＬＰをＴＬＰ整形部４９に再送信する。送信ＴＬＰバッファ４８は、送信ＴＬＰバッファ４８におけるＴＬＰ再送信処理の実行が開始されると、ＴＬＰ再送信処理の実行中であることを示す再送Ｆｌａｇ信号に「１」を設定する。ＴＬＰ整形部４９へのＴＬＰ再送処理が完了すると、送信ＴＬＰバッファ４８は再送Ｆｌａｇ信号を「０」に戻す。送信ＴＬＰバッファ４８は、再送Ｆｌａｇ信号を再送信要求部４３に通知する。送信ＴＬＰバッファ４８からの再送Ｆｌａｇ信号が１に設定されると、ＡＮＤ４３−４の出力は０となり、次のクロックエッジをトリガとして、ＦＦ４３−５の出力が０となる。
【００６８】
送信ＴＬＰバッファ４８からのＴＬＰには、ＴＬＰ整形部４９で、送信シーケンス番号が付加される。送信シーケンス番号が付加されたＴＬＰは、送信バスアービタ５０へ渡され、物理レイヤへ送信される。
図４は、実施例に係るＤＬＬ部４０におけるＤＬＬＰ再送信処理に関連する回路を説明する図である。図４において、図２で示した処理ブロックについては同じ番号を付している。また、ＤＬＬＰ再送信処理に関係しない回路は記載を省略している。
【００６９】
図４において、正常通知送信部４５は、受信データ処理部４１による受信ＴＬＰのチェック結果が正常（ＯＫ）だった場合、ＴＬＰ送信元に対して、ＡＣＫ  ＤＬＬＰ（ＡＣＫ）を送信する。
【００７０】
具体的には、受信データ処理部４１からの、ＴＬＰ受信結果を示す信号が正常（ＯＫ）であったことを示す値１に設定されると、ＯＲゲート４５−１の片方の入力端子に１が入力される。この時点で、ＡＣＫ  ＤＬＬＰの送信を制御するＦＦ４５−３の出力が、ＡＣＫ送信要求がないことを示す「０」になっているとすれば、ＯＲゲート４５−１の他方の入力端子の値は「０」のままである。従って、ＴＬＰ受信結果を示す信号が「１」に設定されると、ＯＲゲート４５−１の出力端子の値は「１」となる。
【００７１】
この時点で、ＡＮＤゲート４５−２の一方の端子に反転して入力される後述のＡＣＫ  Ｆｌａｇ信号が「０」であれば、ＯＲゲート４５−１出力が「１」になると、ＡＮＤゲート４５−２の出力も「１」となる。その結果、次のクロックサイクルで、ＦＦ４５−３出力が「１」にセットされる。
【００７２】
ＦＦ４５−３出力が「１」になると、正常通知送信部４５は、ＳＥＱ番号保持・更新部４４から入力される受信ＳＥＱ番号を付加したＡＣＫ  ＤＬＬＰ（ＡＣＫ）を生成し、送信バスアービタ５０へ送信する。送信バスアービタ５０は、ＡＣＫ  ＤＬＬＰを受け付けると、ＡＣＫ  ＤＬＬＰの送信要求があることを示すＡＣＫ  Ｆｌａｇを「１」にセットする。そして、実際にＡＣＫ  ＤＬＬＰを物理レイヤに送信すると、送信バスアービタ５０はＡＣＫ  Ｆｌａｇを「０」にもどす。ＡＣＫ  Ｆｌａｇが「１」にセットされた後、何らかの理由により送信バスアービタ５０が物理レイヤへのＡＣＫ  ＤＬＬＰの送信を待たされている間は、ＡＣＫ  Ｆｌａｇは「１」のままとなる。
【００７３】
ＡＣＫ  Ｆｌａｇは送信バスアービタ５０から正常通知送信部４５に通知され、ＡＣＫ  Ｆｌａｇが「１」になると、ＡＮＤゲート４５−２の出力が「０」となり、ＦＦ４５−３出力は「０」に戻される。ＡＣＫ  Ｆｌａｇが「１」の間は、ＡＮＤゲート４５−２の出力は「０」のままとなり、ＡＣＫ  Ｆｌａｇが「０」になった後、受信データ処理部４１からの次の入力が受け付けられる。
【００７４】
次に、異常通知送信部４６の動作を説明する。異常通知送信部４６は、受信データ処理部４１による受信ＴＬＰのチェック結果が異常（ＮＧ）だった場合、又はリカバリー状態検出部４７がリカバリー状態を検出した場合に、ＴＬＰ送信元に対して、ＮＡＫ  ＤＬＬＰ（ＮＡＫ）を送信する。
【００７５】
具体的には、リカバリー状態検出部４７からのリカバリー状態を示す信号及び受信データ処理部４１からのＴＬＰ受信結果が異常だった場合に値１となる信号のいずれかが「１」になると、異常通知送信部４６のＯＲゲート４６−１の出力端子の値は「１」となる。この時点で、ＮＡＫ  ＤＬＬＰの送信を制御するＦＦ４６−４の出力が、ＮＡＫ送信要求がないことを示す「０」になっているとすれば、ＯＲゲート４６−２の一方の入力端子の値は「０」のままとなる。そのため、ＯＲゲート４６−１の出力が「１」になると、ＯＲゲート４６−２の出力も「１」となる。
【００７６】
この時点で、ＡＮＤゲート４６−３の一方の端子に反転して入力される後述のＮＡＫ  Ｆｌａｇ信号が「０」であれば、ＯＲゲート４６−２出力が「１」になると、ＡＮＤゲート４６−３の出力も「１」となる。その結果、次のクロックサイクルで、ＦＦ４６−４出力が「１」にセットされる。
【００７７】
ＦＦ４６−４出力が「１」になると、異常通知送信部４６は、ＳＥＱ番号保持・更新部４４から入力される受信ＳＥＱ番号を付加したＮＡＫ  ＤＬＬＰ（ＮＡＫ）を生成し、送信バスアービタ５０へ送信する。送信バスアービタ５０は、ＮＡＫ  ＤＬＬＰを受け付けると、ＮＡＫ  ＤＬＬＰの送信要求があることを示すＮＡＫ  Ｆｌａｇを「１」にセットする。そして、実際にＮＡＫ  ＤＬＬＰを物理レイヤに送信すると、送信バスアービタ５０はＮＡＫ  Ｆｌａｇを「０」にもどす。ＮＡＫ  Ｆｌａｇが「１」にセットされた後、送信バスアービタ５０が実際にＮＡＫ  ＤＬＬＰを送信するまでの間は、ＮＡＫ  Ｆｌａｇは「１」のままとなる。
【００７８】
ＮＡＫ  Ｆｌａｇは送信バスアービタ５０から異常通知送信部４６に通知され、ＮＡＫ  Ｆｌａｇが「１」になると、ＡＮＤゲート４６−３の出力が「０」となり、ＦＦ４６−４出力は「０」に戻される。ＮＡＫ  Ｆｌａｇが「１」の間は、ＡＮＤゲート４６−３の出力は「０」のままとなり、ＮＡＫ  Ｆｌａｇが「０」になった後、受信データ処理部４１又はリカバリー状態検出部４７からの次の入力が受け付けられる。
図５は、データリンクレイヤのデータ送信機構に関する制御フローを示すフローチャートである。データ（ＴＬＰ）の送信は、最終的に正常通知、すなわちＡＣＫ  ＤＬＬＰを送信先装置から受信することにより完了する。ＴＬＰ送信後に送信先装置が正常に送信ＴＬＰを受信できなかったと想定される場合には、送信済みのＴＬＰを再送信する。ＴＬＰの再送信は、ＴＬＰ送信後に、タイムアウトが発生するか否か、異常通知（ＮＡＫ  ＤＬＬＰ）を受信したか否か、リカバリー状態を検出したか否かにより判定する。
【００７９】
図５において、ＴＬ部３０からＤＬＬ部４０に新規に送信データ（ＴＬＰ）送られてきた場合、ＤＬＬ部４０は、送信シーケンス番号を付加したＴＬＰを送信先の装置へ送信する（Ｓ１０１）。具体的には、ＴＬ部３０から送られてきたＴＬＰは、まず送信データバッファ４８に格納される。その後、ＴＬＰはＴＬＰ整形部４９で送信シーケンス番号を付加され、送信バスアービタ５０を介してＰＬ部６０へ渡され、シリアル通信回線へ送信される。
【００８０】
ＴＬＰが送信されると、正常通知（ＡＣＫ  ＤＬＬＰ）を送信先装置から受信するまで送信済みのＴＬＰを送信データバッファ４８に保存しておく。また、合わせて、ＤＬＬ部４０のタイムアウト検出部４２が、一定時間内に送信先装置からＡＣＫ  ＤＬＬＰが返送されてくるか否かについてタイマによる計測を開始する。その後、送信先の装置からＡＣＫ  ＤＬＬＰが返送されて来るまで、以下の一連の処理を繰り返す。
【００８１】
Ｓ１０１でＴＬＰを送信した後、まず、タイムアウト検出部４２によりタイムアウトが検出されたか否かが判定される（Ｓ１０２）。タイムアウトが発生していなければ（Ｓ１０２  Ｎｏ）、次に異常通知（ＮＡＫ  ＤＬＬＰ）を受信したか否かを判定する（Ｓ１０３）。異常通知（ＮＡＫ  ＤＬＬＰ）を受信していなければ（Ｓ１０３  Ｎｏ）、次にリカバリー状態検出部４７が通信回線のリカバリー状態を検出したか否かを判定する（Ｓ１０４）。リカバリー状態を検出していなければ（Ｓ１０４  Ｎｏ）、次に正常通知（ＡＣＫ  ＤＬＬＰ）を送信先装置から受信したか否かを判定する（Ｓ１０５）。
【００８２】
Ｓ１０５の判定において、まだ正常通知を送信先装置から受信していないと判定された場合（Ｓ１０５  Ｎｏ）、タイムアウト検出部４２のタイマを更新する（Ｓ１０８）。ここで、タイムアウト検出部４２のタイマが自動的に更新されるタイマであれば、Ｓ１０８のタイマ更新処理は飛ばして、再度Ｓ１０２の判定に戻る。このように、基本的には、Ｓ１０１でＴＬＰを送信した後、一定時間内に正常通知を受信するまで、Ｓ１０２〜Ｓ１０５の処理を繰り返すことになる。
【００８３】
Ｓ１０２〜Ｓ１０５の処理を繰り返すなかで、タイムアウトの検出（Ｓ１０２  Ｙｅｓ）、異常通知の受信（Ｓ１０３  Ｙｅｓ）、リカバリー状態の検出（Ｓ１０４  Ｙｅｓ）のいずれかの事象が発生した場合、ＴＬＰが正常に送信できなかったことになる。従って、Ｓ１０７で再送信要求部４３から送信データバッファ４８に再送信要求が出され、送信データバッファ４８に保存してあった送信済みのＴＬＰが送信先装置に再送信される。なお、Ｓ１０７のＴＬＰ再送処理時に、例えば通信回線の回線復帰処理中の状態にある場合には、ＴＬＰの送信が待たされる。その後、通信回線が復帰した後、ＴＬＰが再送信され、Ｓ１０７の処理が完了する。Ｓ１０７においてＴＬＰが再送された後、タイムアウト検出部４２のタイマをリセットして、再度、Ｓ１０２〜Ｓ１０５の処理を繰り返す。
【００８４】
複数回連続してタイムアウトが検出され（Ｓ１０２  Ｙｅｓ）、データの再送（Ｓ１０７）が行われた場合には、通信回線が正常に動作していない可能性があるため、ＰＬ部６０が回線復帰処理を行うのが望ましい（不図示）。また、ＰＬ部６０が独自に通信回線の異常を検出した場合等においても、ＰＬ部６０が通信回線の回線復帰処理を行う。通信回線の回線復帰処理が行われている場合には、Ｓ１０４でリカバリー状態検出部４７がリカバリー状態を検出する（Ｓ１０４  Ｙｅｓ）。リカバリー状態検出部４７で検出された結果は再送信要求部４３へ通知され、前述と同様の処理によりＴＬＰデータの再送信が行われる（Ｓ１０７）。そして、再送信したＴＬＰに対応する正常通知を送信先装置から受信すると、ＴＬＰデータの送信が完了することになる。
【００８５】
Ｓ１０５において、送信先装置から正常通知（ＡＣＫ  ＤＬＬＰ）を受信したと判定された場合（Ｓ１０５  Ｙｅｓ）、送信ＴＬＰが送信先の装置に正常に受信されたことになる（Ｓ１０６）。従って、送信データバッファ４８に保存している送信済みＴＬＰデータは不要となるため、Ｓ１０６において、ＡＣＫ  ＤＬＬＰに含まれるシーケンス番号以前のＴＬＰデータを送信データバッファ４８から廃棄し、ＴＬＰ送信処理が完了する。
【００８６】
尚、図５のフローにおいて、Ｓ１０２、Ｓ１０３、Ｓ１０４の各処理は順番を入れ替えて行っても良い。また、Ｓ１０２〜Ｓ１０５の各処理は、ＤＬＬ部４０内部の動作クロックサイクル時間ごとに各処理を順次行うようにしてもよいし、シリアル通信回線のデータ転送クロックの整数倍のクロックを用いて処理してもよい。
【００８７】
上述のように、ＴＬＰを送信した後の正常通知の受信を待つ間に、リカバリー状態検出の判定処理を行うことで、通信回線がリカバリー状態にある場合でも、タイムアウトを待つことなくＴＬＰの送信を完了させることが可能となる。
図６は、データリンクレイヤのデータ受信機構に関する制御フローを示すフローチャートである。ＴＬＰデータを受信した場合、受信ＴＬＰデータに含まれるＣＲＣ情報に基づくＣＲＣチェックと受信ＴＬＰのシーケンス番号のチェックを行い、正常にＴＬＰを受信できたか否かを判定する。そして、ＴＬＰを正常に受信できたか否かの判定結果に基づいて、正常／異常通知（ＡＣＫ／ＮＡＫ  ＤＬＬＰ）をＴＬＰ送信元へ返送するとともに、受信したＴＬＰデータの受理及び廃棄処理を行う。以下、図６のフローチャートに従って説明する。
【００８８】
ＤＬＬ部４０の受信データ処理部４１は、ＰＬ部６０から転送されてきた、送信元装置からのＴＬＰデータを受信すると（Ｓ１１１）、受信データに含まれるＣＲＣ情報に基づいてＴＬＰを正常に受信できたか否かをチェックする（Ｓ１１２）。
【００８９】
Ｓ１１２のチェックの結果、ＣＲＣエラーを検出して正常にＴＬＰを受信できていないと判定されると（Ｓ１１２  Ｎｏ）、受信したＴＬＰデータを破棄する（Ｓ１２０）。そして、受信データ処理部４１は、チェック結果が異常（ＮＧ）であったことを異常通知送信部４６へ知らせる。ＮＧの知らせを受けた異常通知送信部４６は、ＴＬＰ送信元へ異常通知（ＮＡＫ  ＤＬＬＰ）を送信する（Ｓ１２１）。
【００９０】
Ｓ１１２のＣＲＣチェックの結果が正常であった場合（Ｓ１１２  Ｙｅｓ）、受信ＴＬＰに含まれるシーケンス番号が期待されるシーケンス番号の値と一致するか否かを判定する（Ｓ１１３）。
【００９１】
受信ＴＬＰに含まれるシーケンス番号が期待されるシーケンス番号の値と一致しなかった場合（Ｓ１１３  Ｎｏ）、受信ＴＬＰのシーケンス番号と期待されるシーケンス番号との大小関係を比較する（Ｓ１１７）。受信ＴＬＰのシーケンス番号が期待値よりも小さい場合（Ｓ１１７  Ｙｅｓ）、受信ＴＬＰは過去に受信済みのＴＬＰと重複する。従って、受信データ処理部４１は、受信したＴＬＰを破棄し（Ｓ１１８）、ＴＬＰ送信元に正常通知（ＡＣＫ  ＤＬＬＰ）を返送するよう正常通知送信部４５に指示する。指示を受けた正常通知送信部４５は、ＴＬＰ送信元へ正常通知を送信し（Ｓ１１９）、ＴＬＰの受信処理が終了する。
【００９２】
受信ＴＬＰのシーケンス番号が期待値よりも大きい場合（Ｓ１１７  Ｎｏ）、期待されるシーケンス番号に対するＴＬＰを正常に受信できておらず、当該ＴＬＰを再送信させる必要がある。従って、受信データ処理部４１は、受信したＴＬＰを破棄し（Ｓ１２０）、異常通知送信部４６に異常通知（ＮＡＫ  ＤＬＬＰ）を送信するように指示する。指示を受けた異常通知送信部４６は、ＴＬＰ送信元に対して、最後に正常受信した受信シーケンス番号を付加して異常通知を送信する（Ｓ１２１）。
【００９３】
受信ＴＬＰに含まれるシーケンス番号が期待されるシーケンス番号の値と一致する場合（Ｓ１１３  Ｙｅｓ）、ＴＬＰを正常に受信できたことになるので、受信したＴＬＰをＴＬ部３０に転送する（Ｓ１１４）。その後、受信データ処理部４１は、正常通知送信部４５に正常通知（ＡＣＫ  ＤＬＬＰ）を送信するよう指示し、正常通知送信部４５がＴＬＰ送信元へ正常通知を送信する（Ｓ１１５）。また、受信データ処理部４１は、ＳＥＱ番号保持・更新部４１に対して受信ＳＥＱ番号の更新処理を指示し（Ｓ１１６）、ＴＬＰの受信処理が終了する。
【００９４】
ところで、ＴＬＰデータの受信とほぼ同じ時期にＰＬ部６０での回線復帰処理が行われた場合には、前述したとおり、送信元装置に送信した正常／異常通知（ＡＣＫ／ＮＡＫ  ＤＬＬＰ）が喪失する可能性がある。本実施例では、このような場合においてもタイムアウトを発生させることなく、リカバリー状態から復帰後にデータ送受信を完了させるために、リカバリー状態検出部４７がＰＬ部６０からのＬＩＮＫ状態を監視する。図６のフローでは、スタートの直後に、Ｓ１１１以降のデータ受信処理とは並行して、Ｓ１２２で通信回線のリカバリー状態の検出を行う。リカバリー状態が検出されない場合（Ｓ１２２  Ｎｏ）、Ｓ１２２の条件判定が繰り返し行われる。
【００９５】
リカバリー状態検出部４７は、ＴＬＰデータの受信制御とは独立に通信回線のリカバリー状態を検出した場合（Ｓ１２２  Ｙｅｓ）、異常通知送信部４６に対して異常通知（ＮＡＫ  ＤＬＬＰ）を送信するよう指示する。リカバリー状態検出部４７からの指示を受けた異常通知送信部４６は、最後に正常受信した受信シーケンス番号を付加した異常通知を対向する装置に送信する（Ｓ１２３）。
【００９６】
Ｓ１２２でリカバリー状態が検出された場合の異常通知（Ｓ１２３）は、ＴＬＰデータの受信制御とは独立に行われるため、冗長に異常通知を送信する場合があり得る。また、正常通知と、リカバリー状態検出による異常通知がほぼ同時に送信される可能性もある。しかし、正常通知及び異常通知は、最後に受信データ処理部４１が正常に受信できたシーケンス番号が付加された状態で送信されるため、特に問題とはならない。すなわち、ＴＬＰ送信元の装置は、たとえ異常通知を受信した場合でも、異常通知に付加されているシーケンス番号が送信したＴＬＰのシーケンス番号に一致する場合には、送信したＴＬＰが正常に送達されたことを知ることができる。この場合、ＴＬＰ送信元の装置は、異常通知を受信したとしても、ＴＬＰが正常に送達されたと判断してＴＬＰ送信処理を完了させることができる。
【００９７】
図６のＳ１１５の正常通知が送信された後に、Ｓ１２３の異常通知が送信されたような場合においても、異常通知を受信する対向装置が異常通知に付加されたシーケンス番号を確認することにより、冗長な異常通知を無視あるいは破棄するようにすればよい。具体的には、通信回線がリカバリー状態になったときに正常通知（ＡＣＫ  ＤＬＬＰ）の喪失がなかった場合、対向装置は正常通知を受信できている。この場合、Ｓ１２３で送信されるＮＡＫ  ＤＬＬＰには、先に送信されたＡＣＫ  ＤＬＬＰと同じシーケンス番号が付加される。従って、Ｓ１２３で送信されたＮＡＫ  ＤＬＬＰを受信した対向装置は、ＮＡＫ  ＤＬＬＰに付加されたシーケンス番号が既に送信完了済みのシーケンス番号と判断して、当該ＮＡＫ  ＤＬＬＰを無視すればよい。
【００９８】
通信回線がリカバリー状態になったときに正常／異常通知（ＤＬＬＰ）の喪失があった場合には、対向装置は、通信回線がリカバリー状態から復帰した後に受信するＮＡＫ  ＤＬＬＰのシーケンス番号を確認する。ＮＡＫ  ＤＬＬＰに付加されたシーケンス番号が送信したＴＬＰのシーケンス番号に一致する場合、ＴＬＰが正常に送達されたと判断して送信処理を完了する。ＮＡＫ  ＤＬＬＰに付加されたシーケンス番号が送信したＴＬＰのシーケンス番号よりも小さい場合、ＴＬＰデータを再送信する。
【００９９】
上述の図５及び図６のようにデータ送受信とは独立にリカバリー状態を検出し、ＴＬＰデータ又は異常通知（ＮＡＫ  ＤＬＬＰ）を再送信することで、リカバリー状態に起因するデータ喪失が発生しても、タイムアウトを検出することなく送受信処理を完了させることが可能となる。
【０１００】
なお、図５に示すデータ送信フローの処理と図６に示すデータ受信フローの処理とは、それぞれ別方向のシリアル通信回線（Ｔｘ，Ｒｘ）を使った送信、受信処理である。従って、これらのデータ送信制御とデータ受信制御とは独立して行われる制御である。
次に、図７、図８を用いて上記実施例により課題が解決されることを説明する。
【０１０１】
図７は、実施例に係る送信ＴＬＰが喪失したときの処理フローの例を示す。図１４の場合と同様、装置Ａから時刻Ｔ１にシーケンス番号「１０」が付加されたＴＬＰが装置ＡのＰＬ部６０に送信される。その際、時刻Ｔ１の直後の時刻Ｔ２において、装置Ａと装置Ｂの各々のＰＬ部６０が通信回線の回線復帰処理を開始しており、装置ＡのＤＬＬから送信されたＴＬＰが装置ＡのＰＬ部６０で破棄されてしまう。
【０１０２】
しかし、時刻Ｔ２にＰＬ部６０が回線復帰処理を開始すると、装置Ａのリカバリー状態検出部４７が、通信回線のリカバリー状態を検出し、装置Ａの再送信要求部４３にＴＬＰデータの再送信を指示する。再送信要求部４３がＴＬＰの再送信を送信データバッファ４８に指示すると、送信データバッファ４８に格納されているＴＬＰデータがＴＬＰ整形部４９に渡される。ＴＬＰ整形部４９は、前回ＴＬＰを送信したときと同じシーケンス番号をＴＬＰに付加して、送信バスアービタ５０へ渡す。
【０１０３】
送信バスアービタ５０は、ＰＬ部６０からのＬＩＮＫ状態の情報に基づいてデータを送信可能か否かを判断するので、通信回線がリカバリー状態にある時刻Ｔ２から時刻Ｔ３の間は、ＴＬＰの再送信を保留する。そして、時刻Ｔ３に通信回線がリカバリー状態から復帰した後、ＰＬ部６０からのＬＩＮＫ状態の情報が送信可能な状態を示す情報となるので、送信バスアービタ５０はＴＬＰを再送信する。装置Ａから再送信されたＴＬＰデータは時刻Ｔ４に装置Ｂに受信され、装置Ｂからの正常通知（ＡＣＫ  ＤＬＬＰ）が時刻Ｔ５に装置Ａに受信されて、一連のＴＬＰ送信処理が完了する。
【０１０４】
このように、時刻Ｔ２〜Ｔ３の通信回線の回線復帰処理中に送信ＴＬＰが喪失した場合でも、通信回線のリカバリー状態を検出し、通信回線がリカバリー状態から復帰したことを判別した後にＴＬＰデータを再送信させることで、タイムアウトを発生させることなくＴＬＰデータの再送信を完了させることが可能となる。
図８は、実施例に係る正常／異常通知（ＤＬＬＰ）が喪失したときの処理フローの例を示す。図１５の場合と同様、時刻Ｔ１に装置Ｂから装置Ａに対してシーケンス番号「１０」を付したＴＬＰが送信される。時刻Ｔ２に装置ＡがＴＬＰを正常受信した後、装置Ａは、シーケンス番号「１０」の正常通知（ＡＣＫ  ＤＬＬＰ）を装置Ｂに対して送信する。ここで、時刻Ｔ２の直後の時刻Ｔ３において、ＰＬ部６０が通信回線の回線復帰処理を開始しており、装置Ａのデータリンクレイヤが送信した正常通知はＰＬ部６０で破棄されてしまう。
【０１０５】
しかし、時刻Ｔ３にＰＬ部６０が回線復帰処理を開始すると、装置Ａのリカバリー状態検出部４７が、通信回線のリカバリー状態を検出し、異常通知送信部４６に異常通知を送信するよう指示する。リカバリー状態検出部４７からの指示を受けた異常通知送信部４６は、最後に正常受信したＴＬＰのシーケンス番号「１０」を付加した異常通知（ＮＡＫ  ＤＬＬＰ）を送信バスアービタ５０へ送る。
【０１０６】
送信バスアービタ５０はＰＬ部６０からのＬＩＮＫ状態を参照して、通信回線がリカバリー状態にあるＴ３〜Ｔ４の間、異常通知の送信を保留する。そして、時刻Ｔ４に通信回線がリカバリー状態から復帰したことを検出した後、バスアービタ５０は異常通知を送信し、装置Ｂは、時刻Ｔ５に異常通知を受信する。ここで、装置Ｂが受信した異常通知には、装置Ａが最後に正常に受信したＴＬＰのシーケンス番号「１０」が付加されている。従って、装置Ｂは、シーケンス番号「１０」のＴＬＰについては装置Ａに正常に受信されたことを知ることができ、ＴＬＰの再送は不要であると判断することができる。こうして、シーケンス番号「１０」が付されたＴＬＰの送信処理が完了する。
【０１０７】
仮に、時刻Ｔ３で送信された正常通知（ＡＣＫ  ＤＬＬＰ）が装置Ｂに受信された後に通信回線の回線復帰処理が行なわれた場合にも、通信回線のリカバリー状態からの復帰後に装置Ａから装置Bへの異常通知がなされることになる。しかし、この場合、装置Ｂがシーケンス番号「１０」の正常通知を既に受信済みのため、その後に同じシーケンス番号「１０」の異常通知を受信したとしても、後の異常通知は無視すればよい。
【０１０８】
このように、時刻Ｔ３〜Ｔ４の通信回線の回線復帰処理中に正常／異常通知（ＤＬＬＰ）が喪失した場合でも、通信回線のリカバリー状態を検出して、通信回線がリカバリー状態から復帰した場合に異常通知を送信させることで、タイムアウトを発生させることなくデータ送信処理を完了させることが可能となる。
【０１０９】
以上に述べた実施例では、通信回線のリカバリー状態を検出した場合に、異常通知を送信することで、通信回線が復帰した後の送受信処理を早期に完了させている。リカバリー状態検出時に異常通知をＴＬＰ受信側からＴＬＰ送信元へ送信しておけば、ＴＬＰ受信直後にＤＬＬＰが喪失されたとしても、通信回線復帰後の安定した回線の状態でＴＬＰを再送させ、確実なデータ送信を図ることができる。
【０１１０】
ここで、リカバリー状態検出時に、異常通知を送信する代わりに、直前に送信した正常通知又は異常通知のＤＬＬＰを送信する実施態様としてもよい。リカバリー状態検出時に、直前に送信したＤＬＬＰを送信するには、リカバリー状態検出部４７の検出結果を受信データ処理部４１に通知し、受信データ処理部４１が、直前に送信したＤＬＬＰの再送を正常通知送信部４５又は異常通知送信部４６に指示すればよい。この実施態様にした場合、図８の例では時刻Ｔ４の後に「ＡＣＫ、ＳＥＱ＝１０」の正常通知が再送信され、時刻Ｔ５に一連のＴＬＰ送信処理を完了させることができる。
図９は、データリンクレイヤ（ＤＬＬ）と物理レイヤ（ＰＬ）を別チップとした場合のシリアル伝送装置の構成例を示す。図９の例では、図２におけるＤＬＬ部４０をチップ７０とし、ＰＬ部６０をチップ８０としている。チップ７０及びチップ８０中の各サブブロックで、図２の例での各サブブロックと同じ機能を有するものは、同じ番号で示す。
【０１１１】
物理レイヤの処理を行うチップ８０は、さらにシリアル・パラレル変換等のデータ変換や制御ステート等のロジック回路を１つのチップとし、Ｔｘ、Ｒｘ等の差動信号を生成するアナログ回路を別のチップとする構成としてもよい。チップ７０（ＤＬＬ）とチップ８０（ＰＬ）との間のＴＬＰやＤＬＬＰ信号の受け渡しは図示していないバスインタフェース等を用いて受け渡せばよい。ＬＩＮＫ状態の情報についてもバスインタフェースを介して受け渡してもよいし、専用のバス信号線を介して受け渡してもよい。
【０１１２】
図９におけるチップ７０において、リカバリー状態検出部４７を設け、リカバリー状態の検出結果を再送信要求部４３及び異常通知送信部４６に通知する。通信回線のリカバリー状態を検出した場合に、ＴＬＰやＮＡＫ  ＤＬＬＰの再送信を行わせることで、通信データ喪失時においてもタイムアウトを待つことなくデータ送信処理を完了させることが可能となる。
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【産業上の利用可能性】
【０１１３】
本発明は、シリアル通信回線を介したデータの送受信に利用することができる。特に、シリアル通信回線の制御を行う物理レイヤが通信回線の回線復帰処理を行った場合の送信データ喪失時のデータ再送信処理に利用することができる。
【符号の説明】
【０１１４】
１０    プロセッサ
１２    メモリ
１４    バス
２０    シリアル・インタフェース
３０    トランザクションレイヤ（ＴＬ）部
４０    データリンクレイヤ（ＤＬＬ）部
４１    送信データ処理部
４２    タイムアウト検出部
４３    再送信要求部
４４    ＳＥＱ番号保持・更新部
４５    正常通知送信部
４６    異常通知送信部
４７    リカバリー状態検出部
４８    送信データバッファ
４９    ＴＬＰ整形部
５０    送信バスアービタ
６０    物理レイヤ（ＰＬ）部
６１    シリアルデータ受信部
６２    シリアルデータ送信部
６３    マルチプレクサ
６４    ＰＬ制御部
６５    ＬＩＮＫ状態レジスタ
６６    ＬＩＮＫ状態を通知する制御信号線
１００  サーバ装置
２００  外部Ｉ／Ｏデバイス
３００  PCI Expressインタフェース
【図１】
2012085244.tif 000003
【図２】
2012085244.tif 000004
【図３】
2012085244.tif 000005
【図４】
2012085244.tif 000006
【図５】
2012085244.tif 000007
【図６】
2012085244.tif 000008
【図７】
2012085244.tif 000009
【図８】
2012085244.tif 000010
【図９】
2012085244.tif 000011
【図１０】
2012085244.tif 000012
【図１１】
2012085244.tif 000013
【図１２】
2012085244.tif 000014
【図１３】
2012085244.tif 000015
【図１４】
2012085244.tif 000016
【図１５】
2012085244.tif 000017