(57)【要約】【課題】伝送において回路量を減少させ、簡易な制御でエラー救済を行なうこと。【解決手段】入出力処理装置１０と演算装置２０とを伝送路で接続し、入出力処理装置１０から演算装置２０への要求、演算装置２０から入出力処理装置１０への応答をそれぞれ１または複数の要求パケット・応答パケットとして送受信する。パケットの送受信については送達確認を行なわず、エラーパケットは破棄する。入出力処理装置１０は、要求から応答までの時間を監視し、タイムアウト時に要求を再送信する。演算装置２０は、再実行のできない要求に対する応答については、応答パケットを冗長化して送信する。【選択図】        図１
2010050742.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置と第２の装置とを伝送路で接続し、前記第１の装置から前記第２の装置に対する要求と、前記第２の装置から前記第１の装置への応答とを前記伝送路を介して送受信する伝送システムであって、
前記第１の装置は、
前記第２の装置に対する要求を１または複数の要求パケットとして送信し、前記要求から前記応答までの時間が所定時間以上となった場合に前記要求パケットを再送信する要求送信部と、
前記第２の装置からの応答を１または複数の応答パケットとして受信し、受信した応答パケットのうち、エラーパケットと重複パケットとを破棄する応答受信部と、
を備え、
前記第２の装置は、
前記第１の装置から前記要求パケットを受信し、受信した要求パケットのうち、エラーパケットを破棄する要求受信部と、
前記第１の装置に対する前記応答の種類を判別し、特定の種類の応答について選択的に前記応答パケットを冗長化して送信する応答送信部と、
を備えたことを特徴とする伝送システム。
【請求項２】
前記応答送信部は、処理順序の保証が必要な要求に対する応答について選択的に前記応答パケットを冗長化して送信することを特徴とする請求項１に記載の伝送システム。
【請求項３】
前記第１の装置はコンピュータシステムの入出力を担う入出力処理装置であり、前記第２の装置は前記コンピュータシステムの演算処理を担う演算処理装置であることを特徴とする請求項１または２に記載の伝送システム。
【請求項４】
前記応答送信部は、データの書き込み要求に対する応答と、前記第２の装置の処理に対する割り込み要求に対する応答について選択的に前記応答パケットを冗長化して送信することを特徴とする請求項１〜３のいずれか一つに記載の伝送システム。
【請求項５】
前記応答送信部は、データの読み出し要求に対する応答については、前記冗長化の対象外とすることを特徴とする請求項１〜４のいずれか一つに記載の伝送システム。
【請求項６】
前記第１の装置は、処理順序の保証が必要な要求を行なう場合には、当該要求に対する応答を受けた後に次の要求を送信することを特徴とする請求項１〜５のいずれか一つに記載の伝送システム。
【請求項７】
前記第２の装置は、前記第１の装置からエラーパケットを受信した場合、前記第１の装置に送出停止依頼を送信し、以降に受信したパケットを破棄し、前記エラーパケットの受信以前に受信した要求に対する応答が終了した場合に、前記第１の装置に対して送出再開依頼を送信することを特徴とする請求項１〜５のいずれか一つに記載の伝送システム。
【請求項８】
伝送路を介して他の装置と接続する装置であって、
前記他の装置に所定の処理の実行を要求する要求処理部と、
前記要求処理部の要求を１または複数の要求パケットとして前記伝送路を介して送信する要求送信部と、
前記他の装置からの応答を１または複数の応答パケットとして前記伝送路を介して受信する応答受信部と、
を備え、
前記要求送信部は、前記要求から応答までの時間が所定時間以上となった場合に前記要求パケットを再送信し、
前記応答受信部は受信した応答パケットのうちエラーパケットを破棄するエラーパケット破棄部と、重複して受信した重複パケットを破棄する破棄部と、をさらに備えたことを特徴とする伝送装置。
【請求項９】
伝送路を介して他の装置と接続する伝送装置であって、
前記他の装置からの要求を１または複数の要求パケットとして前記伝送路を介して受信する要求受信部と、
前記要求受信部が受信した要求を処理して前記応答を作成する応答処理部と、
前記応答処理部が作成した応答を１または複数の応答パケットとして前記伝送路を介して前記他の装置に送信する応答送信部と、
を備え、
前記応答送信部は、前記応答の種類を判別する応答種別判別部と、前記応答種別判別部による判別結果に基づき、特定の種類の応答について選択的に前記応答パケットを冗長化する応答冗長化処理部と、をさらに備えたことを特徴とする伝送装置。
【請求項１０】
第１の装置と第２の装置とを伝送路で接続し、前記第１の装置から前記第２の装置に対する要求と前記第２の装置から前記第１の装置への応答とを前記伝送路を介して送受信する伝送方法であって、
前記第１の装置が、前記第２の装置に対する要求を１または複数の要求パケットとして送信し、前記要求から前記応答までの時間が所定時間以上となった場合に前記要求パケットを再送信する要求送信ステップと、
前記第２の装置が、前記第１の装置から前記要求パケットを受信し、受信した要求パケットのうち、エラーパケットを破棄する要求受信ステップと、
前記第２の装置が、前記第１の装置に対する前記応答の種類を判別し、特定の種類の応答について選択的に前記応答パケットを冗長化して送信する応答送信ステップと、
前記第１の装置が、前記第２の装置からの応答を１または複数の応答パケットとして受信し、受信した応答パケットのうち、エラーパケットと重複パケットとを破棄する応答受信部と、
を含んだことを特徴とする伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間を伝送路で接続し、処理の要求と応答とを伝送路を介して送受信する伝送システム、またかかる伝送システムに使用する伝送装置、および伝送方法に関する。
【背景技術】
【０００２】
近年、情報処理装置において、ＣＰＵ（演算装置  Central Processing Unit）−ＩＯ（入出力処理装置）間などの各種装置間を、従来のパラレル伝送に比して高速なシリアル伝送で結合することが行なわれている。
【０００３】
これは、各装置間のデータ転送性能に対する要求が高まり、従来のパラレル伝送ではバス幅と転送速度の確保が難しくなってきたためである。
【０００４】
一方で高速なシリアル伝送ではデータ転送性能の要求は満たすものの、データ伝送に関する信頼度の点で劣る。そのため、高速なシリアル伝送では伝送エラー発生時のデータ再送機構が必要となる。
【０００５】
従来の高速シリアル伝送における伝送エラーの救済は、パケット単位のＡＣＫによって行なっていた。具体的には、送信側はパケットごとにシーケンス番号とＣＲＣを指定するとともに、送信済パケットを再送用バッファに記録し、受信側からＡＣＫが応答されるまで保持する。
【０００６】
受信側では受信したパケットのＣＲＣを検査する。そして、正常に受信した場合はシーケンス番号を指定してＡＣＫを応答するが、伝送エラーを検出した場合は該当パケットを破棄し、直前に正常に受信したパケットのシーケンス番号を指定してＮＡＣＫを応答する。
【０００７】
また、送信側では、ＡＣＫ応答を受信した場合、該当するシーケンス番号以前の該当する再送用バッファを開放し、ＮＡＣＫ応答を受信した場合には該当するシーケンス番号以降のパケットを再送用バッファから再送する。
【０００８】
また、パケット単位での伝送制御の変形例として、シリアルバスでパケット伝送を行なうとき、ＡＣＫパケットによるハンドシェイク転送を行なう通信とＡＣＫパケットを送らない通信のいずれかを選択する通信方法（例えば特許文献１参照）や、パケット伝送で受信側からの欠落パケットのみを再送要求することでデータ伝送の効率をあげる技術（例えば特許文献２参照）が知られている。
【０００９】
【特許文献１】特開２００５−２１０３８９号公報
【特許文献２】特開２０００−３４１２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
一般的にパラレル伝送でパケットを転送するよりも、シリアル伝送でパケットを転送するほうが、シリアル/パラレル変換やその他の機構のためにレイテンシーが増加する。そのため、従来のパケット単位でのエラー救済方式では、パケット送信からＡＣＫ応答受信までの間、送信済の全てのパケットを保持できるような巨大な再送用バッファが必要であった。さらに、ＡＣＫ／ＮＡＣＫ応答による送達確認のためのフロー制御も必要であった。
【００１１】
このように、従来のシリアル伝送では、エラー救済のためのデータ再送機構には回路量とフロー制御に多大なコストが費やされるという問題点があった。同様に、従来のパラレル伝送においても、伝送の信頼性よりも伝送速度を重視し、伝送エラー発生時の復旧機構が必須である場合には、かかる復旧機構を実現するためのコストが発生するという問題点があった。
【００１２】
本発明は、上述した従来技術にかかる問題点を解消し、課題を解決するためになされたものであり、伝送において回路量を減少させ、簡易な制御でエラー救済を行なうことのできる伝送システム、伝送装置および伝送方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、開示のシステム、装置および方法は、第１の装置と第２の装置とを伝送路で接続した伝送システムにおいて、第１の装置は第２の装置に対する要求がタイムアウトした場合に要求パケットを再送信し、第２の装置は第１の装置に対する応答が特定の種類である場合に応答パケットを冗長化する。
【発明の効果】
【００１４】
開示のシステム、装置、方法によれば、シリアル伝送において回路量を減少させ、簡易な制御でエラー救済を行なうことのできる伝送システム、伝送装置および伝送方法を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる伝送システム、伝送装置および伝送方法の実施例を図面に基づいて詳細に説明する。
【実施例】
【００１６】
本実施例では、高速なシリアル伝送における低コストのデータ再送機構を以下の３つの動作を用いて実現する。
１．パケット送達確認は一切行わず、リクエスト処理の要求側の時間監視により要求パケットをリクエストキューから再送する。
２．リクエスト処理の再実行により応答パケットの伝送エラーを救済する。
３．リクエスト処理の再実行が不可能なリクエストに対する応答パケットは、パケット転送自身を冗長化する。
【００１７】
図１は、本実施例に係るコンピュータシステム１の概要構成を示す概要構成図である。図１に示したコンピュータシステム１は、入出力処理装置（ＩＯ）１０と演算装置（ＣＰＵ）２０とがシリアル伝送路で接続したシリアル伝送システムである。
【００１８】
入出力処理装置１０は、コンピュータシステム外部の図示しない入出力装置、すなわち入出力デバイスと接続しており、入出力デバイスからの入力を受けて演算装置２０に要求を送信し、演算装置２０からの応答を受けて入出力デバイスに対する出力を行なう。
【００１９】
入出力処理装置１０は、その内部に要求処理部１１、要求送信部１２、応答受信部１３、タイマー１４、入出力デバイス１５を有する。入出力デバイス制御部１５は、図示しない入出力デバイスと接続するインターフェースである。要求処理部１１は、入出力デバイスからの入力に基づいて、演算装置１０に所定の処理の実行を要求する処理を行なう。
【００２０】
要求送信部１２は、要求処理部１１が作成した要求を、１または複数の要求パケットとしてシリアル伝送路を介して演算装置２０に送信する処理を行なう。また、応答受信部１３は、演算装置２０からの応答を１または複数の応答パケットとしてシリアル伝送路を介して受信する処理を行なう。
【００２１】
タイマー１４は、要求送信部１２が要求を送信してから応答受信部１３が応答を受信するまでの時間を計る計時手段である。そして、要求送信部１２は、要求送信からの経過時間が所定時間以上となった応答について、応答パケットの再送信を行なう。
【００２２】
また、応答受信部１３は、その内部にエラーパケット破棄部１３ａおよび冗長パケット破棄１３ｂを有する。エラーパケット破棄部１３ａは、演算装置２０からエラーパケットを受信した場合、すなわち、演算装置２０から受信した応答パケットにエラーが発生した場合に、エラーパケットを破棄する処理を行なう。同様に、冗長パケット破棄部１３ｂは、重複パケットを受信した場合、すなわち、演算装置２０から受信した応答パケットが既に受信した応答パケットと同一である場合に重複パケットを破棄する処理を行なう。
【００２３】
演算装置２０は、入出力処理装置１０から受信した要求を処理し、入出力処理装置１０に対して応答する装置である。また、演算装置２０は、第１メモリ３１および第２メモリ３２に接続しており、メモリへの書き込み、いわゆるストアや、メモリからの読み出し、いわゆるフェッチを行なうことができる。
【００２４】
演算処理部２０は、その内部に応答処理部２１、要求受信部２２、応答送信部２３、およびメモリアクセス制御部２４を有する。要求受信部２２は、入出力処理装置１０からの要求を１または複数の要求パケットとしてシリアル伝送路を介して受信する処理を行なう。ここで、要求受信部２２は、その内部にエラーパケット破棄部２２ａを有している。エラーパケット破棄部２２ａは、入出力処理装置１０からエラーパケットを受信した場合、すなわち、入出力処理装置１０から受信した応答パケットにエラーが発生した場合に、エラーパケットを破棄する処理を行なう。
【００２５】
応答処理部２１は、要求受信部２２が受信した要求を処理して応答を作成する処理を行なう。また、要求受信部２２が受信した要求がフェッチ要求やストア要求である場合、応答処理部２１は、メモリアクセス制御部２４を介して第１メモリ３１や第２メモリに対するデータの書き込み・読み出しを実行する。
【００２６】
応答送信部２３は、応答処理部２１が作成した応答を１または複数の応答パケットとしてシリアル伝送路を介して入出力処理装置１０に送信する処理を行なう。また、応答送信部２３は、その内部に応答種別判別部２３ａおよび応答冗長化処理部２３ｂを有する。
【００２７】
応答種別判別部２３ａは、応答処理部２１が作成した応答の種別を判別する。応答冗長化処理部２３ｂは、応答種別判別部２３ａによる判別結果に基づき、特定の種類の応答について選択的に応答パケットを冗長化する処理を行なう。
【００２８】
特定の種類の応答とは、要求の実行によって他の要求の処理結果に影響を与えるため、単純な再実行が不可能な種類の応答である。たとえば、ストア要求や演算装置２０に対する割り込み要求などである。換言するならば、要求の処理順序の保証が必要な処理である。そのため、ストア要求への応答であるストア応答や、演算装置２０に対する割り込み要求への応答である割り込み応答については、応答パケットを冗長化し、同一内容のパケットを複数送信する。
【００２９】
一方で、メモリ内容を読み出すフェッチ要求については、要求の実行結果が他の要求に影響を与えないため、応答パケットを冗長化する必要はない。
【００３０】
このように、コンピュータシステム１では、入出力処理装置１０からの要求を演算装置２０が実行して処理するリクエスト処理において、リクエスト処理の要求側である入出力装置１０は、要求パケット送出からリクエスト処理完了時の応答パケット受信までを時間監視し、タイムアウト検出時に要求パケットを演算装置２０へ再送する。要求パケットの再送はリクエストキューから、すなわち要求単位で行なう。そのため、入出力処理装置１０は、パケットの再送用バッファは実装しない。また、入出力処理装置１０は、演算装置２０から応答パケットを受信した場合、送達確認のための演算装置２０へのＡＣＫ／ＮＡＣＫ応答は一切行わない。応答パケットで伝送エラーを検出した場合は、該当する応答パケットの破棄のみを行い、規定時間後にタイムアウトを検出し、要求パケットを演算装置２０へ再送する。この再送によって、要求の受信側である演算装置２０ではリクエスト処理が再実行される。また、冗長化された応答パケットは、最初に正常に受信したパケットを使用し、後続の同一パケットは重複パケットとして破棄する。
【００３１】
リクエスト処理の受信側である演算装置２０は、要求パケットを受信した場合、送達確認のための入出力処理装置１０へのＡＣＫ／ＮＡＣＫ応答は一切行わない。要求パケットで伝送エラーを検出した場合は、該当する要求パケットの破棄のみを行う。リクエスト処理の再実行が不可能なリクエストに対する入出力処理装置１０への応答パケットは、パケット転送自身を冗長化し、必ず１つは正常に入出力処理装置１０に受信されるようにしている。
【００３２】
なお、パケット転送の冗長化については、冗長パケットの送信側は同一パケット同士の最大送出間隔を規定し、その時間内に受信側が複数の同一パケットを受信できることを保証するようにしてもよい。この場合、最大送出間隔時間内に連続して伝送エラーを検出した場合は、致命的なエラーとして扱うことで、冗長化したパケット転送が全てエラーとなって全滅したケースでのシステムの誤動作を抑止することができる。例えば、冗長パケットの最大送出間隔を１ミリ秒とした場合、冗長パケットの最初のパケットの送出時刻から最後のパケットの送出時刻までの時間が最大で１ミリ秒となる。従って、冗長パケットの受信側では、１ミリ秒以内で伝送エラーが連続した場合に、冗長パケットが全てエラーとなったと可能性があると判定し、致命的なエラーとして処理を停止して警告を出す。この処理の停止と警告によって、システムの誤動作、すなわち、実際にはリクエスト処理が完了したにも関わらず、冗長化した応答が全滅したことでリクエストが未完了と見なされて再実行されるという誤動作を回避することができる。
【００３３】
図２は、入出力処理装置１０と演算装置２０との間で伝送されるパケットの種類と伝送エラー時の救済処理について説明する説明図である。図２に示したように、まず、入出力処理装置１０から演算装置２０にフェッチ要求パケットを伝送中にエラーが発生した場合、演算装置２０にはパケットが到達しないか、もしくはエラーパケットが演算装置２０に到達するのでエラーパケットについては演算装置２０で破棄を行なう。このエラー自体について演算装置２０から入出力処理装置１０への通知は行なわないが、フェッチ要求が実行されないために入出力処理装置１０へ応答が送信されることもない。そのため、入出力処理装置１０ではリクエストがタイムアウトし、対象要求、すなわち同一のフェッチ要求を再度演算装置２０へ送信することとなる。
【００３４】
つぎに、演算装置２０から入出力処理装置１０にフェッチ応答パケットを伝送中にエラーが発生した場合、入出力処理装置１０にはパケットが到達しないか、もしくはエラーパケットが入出力処理装置１０に到達するのでエラーパケットについては入出力処理装置２１０で破棄を行なう。このエラー自体について入出力処理装置１０から演算装置２０への通知は行なわないが、フェッチ要求の実行完了が確認されず、入出力処理装置１０ではリクエストがタイムアウトする。そのため、入出力処理装置１０は、対象要求、すなわち同一のフェッチ要求を再度演算装置１０へ送信することとなる。
【００３５】
ストア要求と演算装置２０への割り込み要求の伝送中にエラーが発生した場合、演算装置２０にはパケットが到達しないか、もしくはエラーパケットが到達するのでエラーパケットについては演算装置２０が破棄を行なう。この場合も、フェッチ要求伝送中のエラーの場合と同様に、演算装置２０から入出力処理装置１０へのエラー通知は行なわれず、ストア要求、割り込み要求が実行されないために演算装置２０から入出力処理装置１０に応答が送信されることもない。そのため、入出力処理装置１０ではリクエストがタイムアウトし、対象要求の要求を再度演算装置２０に送信することとなる。
【００３６】
ストア要求と割り込み要求の応答については、演算装置２０は、予め応答パケットを冗長化して入出力処理装置１０へ送信する。入出力処理装置１０では、冗長化された応答パケットのうち正常なものを使用する。そのため、応答パケットの伝送中にエラーが発生した場合であっても、入出力処理装置１０は正常な応答を得ることができる。
【００３７】
このように、フェッチ応答パケットの伝送エラーでは演算装置２０から応答パケットを再送するのではなく、入出力処理装置１０からの要求の再発行によるリクエスト処理の再実行で伝送エラーを救済する。フェッチアクセスの性質から、再発行してもキャッシュメモリまたはメインメモリへの再アクセスによる影響が無いためである。
【００３８】
一方、ストア応答と割り込み応答については、再アクセスによる影響範囲が大きいためリクエスト処理の再実行は行なわない。また、ストア応答と割り込み応答の応答パケットについては応答データも伴わずサイズが小さいため、転送自身を冗長化して必ず１つは正常に受信されるようにする。
【００３９】
すなわち、コンピュータシステム１のシリアル伝送では３種の動作によって伝送エラーを救済する。動作タイプ１は、演算装置２０がエラーパケットを破棄し、入出力処理装置１０がタイムアウトを検出して要求パケットを再送信する動作であり、フェッチ要求、ストア要求、割り込み要求に伝送エラーが発生した場合に適用される。動作タイプ２は、入出力処理装置１０がエラーパケットを破棄し、入出力処理装置１０がタイムアウトを検出して要求パケットを演算装置２０へ再送信する動作であり、フェッチ応答に伝送エラーが発生した場合に適用される。動作タイプ３は、パケットを演算装置２０で冗長化して正常なパケットを入出力処理装置１０で選択して使用する動作であり、ストア応答と割り込み応答に適用される。
【００４０】
図３は、動作タイプ１による救済動作について説明する説明図である。図３では、入出力処理装置１０が要求ＲＥＱを発行し、タイマーをスタートさせている。しかし、要求ＲＥＱは、伝送中に伝送エラーを生じた場合に、演算装置２０で破棄される。その結果、演算装置２０からの応答を得られないままタイマーが８をカウントしてタイムアウト（図３Ｔ．Ｏ）する。入出力処理装置１０は、要求ＲＥＱを再発行してタイマーをリスタートする。
【００４１】
図３では、再発行された要求ＲＥＱは、正常に伝送されて演算装置２０に受信されている。演算装置２０は、受信した要求を処理して入出力処理装置１０に対する応答ＲＥＳを発行する。応答ＲＥＳは正常に伝送されて入出力処理装置１０に受信され、入出力処理装置１０はタイマーをリセットして処理を完了する。
【００４２】
図４は、動作タイプ２による救済動作について説明する説明図である。図４では、入出力処理装置１０が要求ＲＥＱを演算装置２０に発行し、タイマーをスタートさせている。要求ＲＥＱは、正常に伝送されて演算装置２０に受信される。演算装置２０は、受信した要求を処理して応答ＲＥＳを発行する。
【００４３】
しかし、応答ＲＥＳは、伝送中に伝送エラーを生じ、入出力処理装置１０で破棄される。その結果、演算装置２０からの正常な応答を得られないままタイマーが８をカウントしてタイムアウトする。入出力処理装置１０は、要求ＲＥＱを再発行してタイマーをリスタートする。
【００４４】
再発行された要求ＲＥＱは、正常に伝送されて演算装置２０に受信される。演算装置２０は、再び要求ＲＥＱを処理して、前回と同様に応答ＲＥＳを発行する。応答ＲＥＳは正常に伝送されて入出力処理装置１０に受信され、入出力処理装置１０はタイマーをリセットして処理を完了する。
【００４５】
図５は、動作タイプ３による救済動作について説明する説明図である。図４では、入出力処理装置１０が要求ＲＥＱを発行し、タイマーをスタートさせている。要求ＲＥＱは、正常に伝送されて演算装置２０に受信される。演算装置２０は、受信した要求を処理して応答ＲＥＳを発行する。この時、演算装置２０は、同一内容の応答ＲＥＳを複数作成し、送信する。
【００４６】
入出力処理装置１０は、同一内容で複数の応答ＲＥＳのうち、エラーした応答ＲＥＳを破棄し、正常な応答ＲＥＳを受信してタイマーをリセットし、処理を完了する。また、いったん正常な応答ＲＥＳを受信した後は、重複する応答ＲＥＳについては正常であっても破棄する。
【００４７】
つぎに、要求の順序保証について説明する。図６は、入出力処理装置１０が順序保証を行なう場合の動作について説明する説明図である。図６ではリクエストの要求元である入出力処理装置１０は、先行リクエストの処理を追い越してはならない後続リクエストが存在する場合、先行リクエストに対する応答を受信してから後続リクエストを演算装置２０に対して発行する。これは、先行リクエストの伝送エラーによるリトライ中に後続リクエストの処理が追い越してしまうことを防ぐためである。この方法によれば、入出力処理装置１０が単独でメモリアクセス順序を保証することができる。
【００４８】
図７は、入出力処理装置１０と演算装置２０とで順序保証を行なう場合の動作について説明する説明図である。図７では、ＲＥＱ１からＲＥＱ６までの処理を順序を入れ替えることなく処理する際に、入出力処理装置１０は、先行リクエストの応答受信を待たずに順次リクエストを送出する。演算装置２０は入出力処理装置１０から受信した順序にリクエスト処理を行うが、ＲＥＱ３のように伝送エラーが発生した場合、それ以降に受信する全パケット、すなわちＲＥＱ４以降の全てのパケットを破棄し、入出力処理装置１０に後続リクエストの送出の停止を依頼する。
【００４９】
入出力処理装置１０はリクエスト送出の停止依頼を受信した場合に、新たなリクエストの送出を停止する。演算装置２０は既に受信済みのリクエストについて処理して応答ＲＥＳを送信し、全ての受信済みリクエスト処理と応答送信が完了したところで、入出力処理装置１０に対してリクエスト送出の再開を依頼する。入出力処理装置１０は再開を依頼された場合、リクエストキュー内の未完了リクエストについて、ＲＥＱ３から順序通り演算装置に対して送出を再開する。このように、入出力処理装置１０と演算装置２０の両方でメモリアクセス順序を保証することで、入出力処理装置単独で順序保証を行なう場合に比して処理を高速に実行することができる。
【００５０】
つぎに、図１に示した要求送信部１２、応答受信部１３、要求受信部２２、応答送信部２３の処理動作について説明する。図８は、要求送信部１２の処理動作を説明するフローチャートである。
【００５１】
図８に示したように、要求送信部１２は、要求処理部１１から要求依頼があったか否かを判定する（Ｓ１０１）。要求処理部１１から要求依頼があった場合（Ｓ１０１，Ｙｅｓ）、要求送信部１２は、要求パケットを作成し（Ｓ１０２）、要求パケットを送信する（Ｓ１０３）。そして、送信した要求についてタイマーをスタートし（Ｓ１０４）、処理を終了する。
【００５２】
一方、要求処理部１１から要求依頼がない場合（Ｓ１０１，Ｎｏ）、要求送信部１２は、タイムアウトした要求があるか否かを判定する（Ｓ１０５）。タイムアウトした要求がある場合（Ｓ１０５，Ｙｅｓ）、要求送信部１２は、タイムアウトした要求の要求パケットを再送信し（Ｓ１０６）、再送信した要求のタイマーを再スタートして（Ｓ１０７）、処理を終了する。
【００５３】
一方、タイムアウトした要求がない場合（Ｓ１０５，Ｎｏ）、要求送信部１２はそのまま処理を終了する。以上、図８に示した処理は、要求送信部１２のメインフローであり、コンピュータシステム１の動作中に繰り返し実行される。
【００５４】
図９は、応答受信部１３の処理動作を説明するフローチャートである。図９に示したように応答受信部１３は、まず、応答パケットを受信したか否かを確認する（Ｓ２０１）。応答パケットを受信していなければ（Ｓ２０１，Ｎｏ）そのまま処理を終了する。応答パケットを受信した場合（Ｓ２０１，Ｙｅｓ）、エラーパケット破棄部１３ａは、受信したパケットが正常であるか否か判定し（Ｓ２０２）、正常でない場合（Ｓ２０２，Ｎｏ）にはパケットを破棄して（Ｓ２０８）、処理を終了する。
【００５５】
受信したパケットが正常である場合（Ｓ２０２，Ｙｅｓ）、冗長パケット破棄部１３ｂは、同一の応答パケットを受信済みであるか否かを判定し（Ｓ２０３）、受信済みであれば（Ｓ２０３，Ｙｅｓ）、パケットを破棄して（Ｓ２０８）、処理を終了する。
【００５６】
同一の応答パケットを受信済みでない場合（Ｓ２０３，Ｎｏ）、応答受信部１３は、受信した応答パケットを蓄積し（Ｓ２０４）、蓄積した応答パケットから一つの応答が完成するか否かを判定する（Ｓ２０５）。そして、蓄積した応答パケットから一つの応答が完成しない場合（Ｓ２０５，Ｎｏ）にはそのまま処理を終了する。
【００５７】
一方、蓄積した応答パケットから一つの応答が完成する場合（Ｓ２０５，Ｙｅｓ）、応答受信部１３は、完成した応答に対応する要求のタイマーをリセットし（Ｓ２０６）、応答を要求処理部１１に渡して（Ｓ２０７）、処理を終了する。以上、図９に示した処理は、応答受信部１３のメインフローであり、コンピュータシステム１の動作中に繰り返し実行される。
【００５８】
図１０は、要求受信部２２の処理動作を説明するフローチャートである。図１０に示したように要求受信部２２は、まず、要求パケットを受信したか否かを確認する（Ｓ３０１）。要求パケットを受信していなければ（Ｓ３０１，Ｎｏ）そのまま処理を終了する。要求パケットを受信した場合（Ｓ３０１，Ｙｅｓ）、エラーパケット破棄部２２ａは、受信したパケットが正常であるか否か判定し（Ｓ３０２）、正常でない場合（Ｓ３０２，Ｎｏ）にはパケットを破棄して（Ｓ３０６）、処理を終了する。
【００５９】
受信したパケットが正常である場合（Ｓ３０２，Ｙｅｓ）、要求受信部２２は、受信した要求パケットを蓄積し（Ｓ３０３）、蓄積した要求パケットから一つの要求が完成するか否かを判定する（Ｓ３０４）。そして、蓄積した要求パケットから一つの要求が完成しない場合（Ｓ３０４，Ｎｏ）にはそのまま処理を終了する。
【００６０】
一方、蓄積した要求パケットから一つの要求が完成する場合（Ｓ３０４，Ｙｅｓ）、要求受信部２２は、完成した要求を応答処理部２１に渡して（Ｓ３０５）、処理を終了する。以上、図１０に示した処理は、要求受信部２２のメインフローであり、コンピュータシステム１の動作中に繰り返し実行される。
【００６１】
図１１は、応答送信部２２の処理動作を説明するフローチャートである。図１１に示したように、応答送信部２３は、応答処理部２１から応答依頼があったか否かを判定する（Ｓ４０１）。応答処理部２１から応答依頼がない場合（Ｓ４０１，Ｎｏ）にはそのまま処理を終了する。
【００６２】
応答処理部２１から応答依頼があった場合（Ｓ４０１，Ｙｅｓ）、応答種別判別部２３ａが、応答の種別を判別する（Ｓ４０２）。応答の種別がストア応答や割り込み応答でない場合（Ｓ４０３，Ｎｏ）には、応答送信部２３は、応答パケットを１セット作成し（Ｓ４０４）、作成した応答パケットを送信して（Ｓ４０５）、処理を終了する。ここで、１セットとは、応答を応答パケットとして送信する際に、１つの応答を１つの応答パケットで送信できる場合には１パケットのみ、１つの応答を形成するために複数の応答パケットが必要である場合には複数の応答パケットをそれぞれ１パケットずつ作成することを示しており、１セットの中では重複パケットは存在しない。
【００６３】
応答の種別がストア応答もしくは割り込み応答である場合（Ｓ４０３，Ｙｅｓ）、応答冗長化処理部２３ｂが応答パケットを複数セット作成する（Ｓ４０６）。そして、応答送信部２３は、作成された応答パケットを全て送信して（Ｓ４０７）、処理を終了する。以上、図１１に示した処理は、応答送信部２３のメインフローであり、コンピュータシステム１の動作中に繰り返し実行される。
【００６４】
以上説明してきたように、本実施例において伝送システムとして機能するコンピュータシステム１では、入出力処理装置１０と演算装置２０とがシリアル伝送の装置とし機能する。入出力処理装置１０は、演算装置２０に対して要求を送信する際に、パケット単位の送達確認は行なわず、要求がタイムアウトした場合に要求の再送信を行なう。また、演算装置２０は、再実行が不可能な要求に対する応答については、応答パケットを冗長化して送信する。
【００６５】
そのため、シリアル伝送の特徴を活かしたデータ転送性能が確保でき、さらに巨大な再送用バッファの削除とパケット送達確認フローの削除を実現し、低コストで伝送エラー救済を行なうことができる。
【００６６】
なお、本実施例ではシリアル伝送における適用例について説明を行なったが、開示のシステム、装置および方法は、パラレル伝送においても適用可能である。すなわち、パラレル伝送において、信頼性よりも伝送速度を重視し、伝送エラー発生時の復旧機構を設ける場合には、開示のシステム、装置、方法を適用することによって低コストで伝送エラー救済を行なうことができる。
【００６７】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【００６８】
（付記１）第１の装置と第２の装置とを伝送路で接続し、前記第１の装置から前記第２の装置に対する要求と、前記第２の装置から前記第１の装置への応答とを前記伝送路を介して送受信する伝送システムであって、
前記第１の装置は、
前記第２の装置に対する要求を１または複数の要求パケットとして送信し、前記要求から前記応答までの時間が所定時間以上となった場合に前記要求パケットを再送信する要求送信部と、
前記第２の装置からの応答を１または複数の応答パケットとして受信し、受信した応答パケットのうち、エラーパケットと重複パケットとを破棄する応答受信部と、
を備え、
前記第２の装置は、
前記第１の装置から前記要求パケットを受信し、受信した要求パケットのうち、エラーパケットを破棄する要求受信部と、
前記第１の装置に対する前記応答の種類を判別し、特定の種類の応答について選択的に前記応答パケットを冗長化して送信する応答送信部と、
を備えたことを特徴とする伝送システム。
【００６９】
（付記２）前記応答送信部は、処理順序の保証が必要な要求に対する応答について選択的に前記応答パケットを冗長化して送信することを特徴とする付記１に記載の伝送システム。
【００７０】
（付記３）前記第１の装置はコンピュータシステムの入出力を担う入出力処理装置であり、前記第２の装置は前記コンピュータシステムの演算処理を担う演算処理装置であることを特徴とする付記１または２に記載の伝送システム。
【００７１】
（付記４）前記応答送信部は、データの書き込み要求に対する応答と、前記第２の装置の処理に対する割り込み要求に対する応答について選択的に前記応答パケットを冗長化して送信することを特徴とする付記１〜３のいずれか一つに記載の伝送システム。
【００７２】
（付記５）前記応答送信部は、データの読み出し要求に対する応答については、前記冗長化の対象外とすることを特徴とする付記１〜４のいずれか一つに記載の伝送システム。
【００７３】
（付記６）前記第１の装置は、処理順序の保証が必要な要求を行なう場合には、当該要求に対する応答を受けた後に次の要求を送信することを特徴とする付記１〜５のいずれか一つに記載の伝送システム。
【００７４】
（付記７）前記第２の装置は、前記第１の装置からエラーパケットを受信した場合、前記第１の装置に送出停止依頼を送信し、以降に受信したパケットを破棄し、前記エラーパケットの受信以前に受信した要求に対する応答が終了した場合に、前記第１の装置に対して送出再開依頼を送信することを特徴とする付記１〜５のいずれか一つに記載の伝送システム。
【００７５】
（付記８）伝送路を介して他の装置と接続する伝送装置であって、
前記他の装置に所定の処理の実行を要求する要求処理部と、
前記要求処理部の要求を１または複数の要求パケットとして前記伝送路を介して送信する要求送信部と、
前記他の装置からの応答を１または複数の応答パケットとして前記伝送路を介して受信する応答受信部と、
を備え、
前記要求送信部は、前記要求から応答までの時間が所定時間以上となった場合に前記要求パケットを再送信し、
前記応答受信部は受信した応答パケットのうちエラーパケットを破棄するエラーパケット破棄部と、重複して受信した重複パケットを破棄する破棄部と、をさらに備えたことを特徴とする伝送装置。
【００７６】
（付記９）伝送路を介して他の装置と接続する伝送装置であって、
前記他の装置からの要求を１または複数の要求パケットとして前記伝送路を介して受信する要求受信部と、
前記要求受信部が受信した要求を処理して前記応答を作成する応答処理部と、
前記応答処理部が作成した応答を１または複数の応答パケットとして前記伝送路を介して前記他の装置に送信する応答送信部と、
を備え、
前記応答送信部は、前記応答の種類を判別する応答種別判別部と、前記応答種別判別部による判別結果に基づき、特定の種類の応答について選択的に前記応答パケットを冗長化する応答冗長化処理部と、をさらに備えたことを特徴とする伝送装置。
【００７７】
（付記１０）第１の装置と第２の装置とを伝送路で接続し、前記第１の装置から前記第２の装置に対する要求と前記第２の装置から前記第１の装置への応答とを前記伝送路を介して送受信する伝送方法であって、
前記第１の装置が、前記第２の装置に対する要求を１または複数の要求パケットとして送信し、前記要求から前記応答までの時間が所定時間以上となった場合に前記要求パケットを再送信する要求送信ステップと、
前記第２の装置が、前記第１の装置から前記要求パケットを受信し、受信した要求パケットのうち、エラーパケットを破棄する要求受信ステップと、
前記第２の装置が、前記第１の装置に対する前記応答の種類を判別し、特定の種類の応答について選択的に前記応答パケットを冗長化して送信する応答送信ステップと、
前記第１の装置が、前記第２の装置からの応答を１または複数の応答パケットとして受信し、受信した応答パケットのうち、エラーパケットと重複パケットとを破棄する応答受信部と、
を含んだことを特徴とする伝送方法。
【図面の簡単な説明】
【００７８】
【図１】図１は、本実施例に係るコンピュータシステム１の概要構成を示す概要構成図である。
【図２】図２は、入出力処理装置１０と演算装置２０との間で伝送されるパケットの種類と伝送エラー時の救済処理について説明する説明図である。
【図３】図３は、図２に示した動作タイプ１による救済動作について説明する説明図である。
【図４】図４は、図２に示した動作タイプ２による救済動作について説明する説明図である。
【図５】図５は、図２に示した動作タイプ３による救済動作について説明する説明図である。
【図６】図６は、入出力処理装置１０が順序保証を行なう場合の動作について説明する説明図である。
【図７】図７は、入出力処理装置１０と演算装置２０とで順序保証を行なう場合の動作について説明する説明図である。
【図８】図８は、要求送信部１２の処理動作を説明するフローチャートである。
【図９】図９は、応答受信部１３の処理動作を説明するフローチャートである。
【図１０】図１０は、要求受信部２２の処理動作を説明するフローチャートである。
【図１１】図１１は、応答送信部２３の処理動作を説明するフローチャートである。
【符号の説明】
【００７９】
１    コンピュータシステム
１０    入出力処理装置
１１    要求処理部
１２    要求送信部
１３    応答受信部
１３ａ，２２ａ  エラーパケット破棄部
１３ｂ  冗長パケット破棄部
１４    タイマー
１５    入出力デバイス制御部
２０    演算装置
２１    応答処理部
２２    要求受信部
２３    応答送信部
２３ａ  応答種別判別部
２３ｂ  応答冗長化処理部
２４    メモリアクセス制御部
３１    第１メモリ
３２    第２メモリ
【図１】
2010050742.tif 000003
【図２】
2010050742.tif 000004
【図３】
2010050742.tif 000005
【図４】
2010050742.tif 000006
【図５】
2010050742.tif 000007
【図６】
2010050742.tif 000008
【図７】
2010050742.tif 000009
【図８】
2010050742.tif 000010
【図９】
2010050742.tif 000011
【図１０】
2010050742.tif 000012
【図１１】
2010050742.tif 000013