JP7103231B2 - コネクション管理ユニット、およびコネクション管理方法 - Google Patents

コネクション管理ユニット、およびコネクション管理方法 Download PDF

Info

Publication number
JP7103231B2
JP7103231B2 JP2018561351A JP2018561351A JP7103231B2 JP 7103231 B2 JP7103231 B2 JP 7103231B2 JP 2018561351 A JP2018561351 A JP 2018561351A JP 2018561351 A JP2018561351 A JP 2018561351A JP 7103231 B2 JP7103231 B2 JP 7103231B2
Authority
JP
Japan
Prior art keywords
packet
reply packet
function
request
connection management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018561351A
Other languages
English (en)
Other versions
JPWO2018131550A1 (ja
Inventor
佑樹 林
順 鈴木
真樹 菅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2018131550A1 publication Critical patent/JPWO2018131550A1/ja
Application granted granted Critical
Publication of JP7103231B2 publication Critical patent/JP7103231B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Description

本発明はコネクション管理ユニット、およびコネクション管理方法に関し、特にコンピュータバスのコネクション管理に関する。
コンピュータシステムでは、I/Oデバイス(Input/outputデバイス)を接続するためのバス規格としてPCI Express(登録商標)プロトコルが広く用いられている(非特許文献1)。PCI Expressプロトコルは一般に、SSD(Solid State Drive)やGPU(Graphics Processing Unit)などのコンピュータの外部デバイスを接続するために使用される。また、近年PCI Expressをネットワークパケットでカプセル化するPCI Express over Ethernet(登録商標)などの技術が出現している(非特許文献2)。
これらのPCI Expressプロトコルでは、CPU(中央処理装置)とI/Oデバイスの通信を行うために、ライトリクエスト、リードリクエスト、コンプリーションの主に3つのパケットが定義されている。ライトリクエストはメモリ書き込み命令であり、リードリクエストはメモリ読み出し命令であり、コンプリーションはライトリクエストやリードリクエストに対する返答パケットである。CPUかI/Oデバイスの一方がリクエストパケットを受信すると、適切なコンプリーションを返却し、適切なメモリ番地へ通知する、またはメモリ書き込みを行うことで通信を実現する。
PCI Expressでは、リクエストパケットに対するコンプリーションパケットにはタイムアウトを設定することが可能であり、タイムアウトが発生するとエラーをコンプリーションの代わりに返答する。ただしPCI Expressはコンピュータ内部バスであり、パケットに長い遅延が挿入されることが想定された作りとなっていないため、経路に長い遅延がある場合に問題が発生する。
図13、図14、図15、図16に、PCI Express通信についてコンプリーションタイムアウトを設定した場合、しなかった場合、およびパケットがロスした場合、遅延した場合、の挙動について、それぞれの組み合わせを図示する。
図13は、PCI Expressプロトコルの中でタイムアウト検知を行う場合で、コンプリーションパケットがパケットロスした場合の挙動を示す。このケースでは、ドライバが送信したリクエストパケットに対するコンプリーションパケットがパケットロスにより返却されず、タイムアウトが検知され、エラーメッセージがリクエスト生成した側に返却される。その後、エラーメッセージを受け取ったドライバがエラーハンドリングを行う。本ケースは想定どおりの挙動であり、特に問題なく動作する。また、図13、図14、図15、図16は、ドライバがリクエストパケットを送信した場合のケースを記載しているが、I/Oデバイスからリクエストパケットを送信する場合についても同様である。
図14は、PCI Expressプロトコルの中でタイムアウト検知を行う場合で、コンプリーションパケットがタイムアウト後に遅延して到着する場合の挙動を示す。このケースではドライバが送信したリクエストパケットに対するコンプリーションパケットが返却される前にタイムアウトが検知され、エラーメッセージがリクエスト生成した側に返却される。その後に正規のコンプリーションパケットがドライバへ返却される。このようにタイムアウトによるエラーメッセージ返却後に、同一リクエストに対するコンプリーションが返却された場合、アドレス書き込みのコンフリクトが発生し、コンピュータソフトウェアに障害またはフリーズが発生してしまう。
図15は、PCI Expressプロトコルの中でタイムアウト検知を行わない場合で、コンプリーションパケットがパケットロスした場合の挙動を示す。このケースではドライバが送信したリクエストパケットに対するコンプリーションパケットがパケットロスにより返却されない。そのためドライバはリクエストに対するコンプリーションを待ち続ける動作となり、コンピュータシステムがフリーズしてしまう。
図16は、PCI Expressプロトコルの中でタイムアウト検知を行わない場合で、コンプリーションパケットが遅延して到着する場合の挙動を示す。このケースではドライバが送信したリクエストパケットに対するコンプリーションパケットがネットワーク遅延により遅延して返却される。この場合はコンプリーションが遅延するものの、正常動作を継続することができる。
以上の4ケースに説明するとおり、PCI Expressプロトコルにおいてタイムアウトを検知する場合ではネットワーク遅延の影響により、リクエストに対するエラー返答および正規のコンプリーション返答が二重に返信される場合がある。リクエストに対するエラー返答および正規のコンプリーション返答が二重に返信されることにより、コンピュータシステムに障害が発生する。PCI Expressプロトコルにおいてタイムアウト検知しない場合では、パケットロスの影響により、リクエストに対するコンプリーションが返却されずに、コンピュータシステムに障害が発生する。
PCI Expressプロトコルは、コンピュータ内部バスのプロトコルであるため、バスの物理的障害によるパケットロスを考慮してタイムアウトの仕組みが導入されている。しかしながら、バス上のパケットが遅延することを考慮したタイムアウトの仕組みとなっておらず、上記設定によりコンピュータバスの障害を回避することができない。これらの現象は、特にPCI Express over Ethernetなどのネットワークを利用したPCI Express通信において顕著に表れる。
特許文献1は、PCI Express等の高速シリアル通信規格のデータ通信装置に関するものであり、データ応答を期待しないダミーリクエストパケットを連続して送信することにより、同期転送時の再送オーバーヘッドを軽減することが提案されている。
特許文献2は、データ処理装置の入出力装置管理に関するものであり、入出力装置からのレディ信号応答待ちのタイムアウト検出を行い、タイムアウト時には擬似レディ信号を生成してその回のデータ転送アクセスを終了させることが提案されている。特許文献2ではこのような制御により、そのときのデータ転送アクセスが異常のまま終了したことを処理内容に反映させることが提案されている。
特許文献3は、異なるソフトウェア・アプリケーションを相互接続するエンタープライズ・サービス・バスを実装しているミドルウェアに関するものである。特許文献3では、エンド・クライアントから届く受信サービス要求を、1次サーバに転送すると共に、1つまたは複数の2次サーバに複製すること、検証機は1次または2次サーバからの応答を全て受信し、受信した最初の応答をエンド・クライアントに返し、後続の応答は破棄することが提案されている。
特開2008-204245号公報 特公昭58-24812号公報 特表2010-524072号公報
"PCI Express Base Specification Revision 2.1", PCI-SIG, 2009. J. Suzuki et al., "ExpressEther - Ethernet-based Virtualization Technology for Reconfigurable Hardware Platform," in Proc. IEEE Symposium on High Performance Interconnects (HOTI'06), Stanford, CA, Aug. 2006, pp.45-51.
上述したコネクション管理手法には、以下のような課題がある。すなわち、PCI Expressをはじめとするコンピュータバスに遅延やパケットロスが発生すると、コンピュータシステムに障害またはフリーズが発生してしまうことである。
その理由は、タイムアウト検知を行う場合には、リクエストパケットに対するコンプリーションがタイムアウトした後で、遅延したパケットが返却され、同じリクエストに対する返答が二重に処理されてしまうためである。また、タイムアウト検知を行わない場合には、リクエストパケットに対するコンプリーションがパケットロスしてしまうと、返答が返ってこないためである。
本発明の目的は、遅延やパケットロスが発生した際にコンピュータシステムに障害またはフリーズを発生させないように、コンピュータバスのコネクション管理を行うコネクション管理ユニット、およびコネクション管理方法を提供することにある。
前記目的を達成するため、本発明に係るコネクション管理ユニットは、リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信に用いられるコネクション管理ユニットであって、
上記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
ダミーの返信パケットを生成し上記リクエスト元へ送信するダミー返信パケット生成送信機能およびまたは、上記ダミーの返信パケットの送信後に上記リクエスト先から届いた正規の返信パケットを破棄するフィルタ機能、を有する。
本発明の一つの態様のコネクション管理方法は、リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、上記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
ダミーの返信パケットを生成し上記リクエスト元へ送信し、上記ダミーの返信パケットの送信後に上記リクエスト先から届いた正規の返信パケットを破棄する。
本発明の他の一つの態様のコネクション管理方法は、リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、上記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
上記リクエスト元へエラー通知すると共に、エラー通知後に上記リクエスト先から届いた正規の返信パケットを破棄する。
本発明は、遅延やパケットロスが発生した際にコンピュータシステムに障害またはフリーズを発生させないように、コンピュータバスのコネクション管理を行うことができる。
本発明の第1実施形態によるコネクション管理ユニットを含むコンピュータを示すブロック図である。 図1のコネクション管理機構の詳細を示すブロック図である。 コンピュータバスを通過するリクエストパケットのフォーマットを示す図である。 コンピュータバスを通過するコンプリーションパケットのフォーマットを示す図である。 本発明の第1実施形態によるコネクション管理ユニットのTransaction IDテーブルの詳細を示す図である。 本発明の第1実施形態のアクセストラップ機能の動作を示す図である。 本発明の第1実施形態のコネクション管理機構で、コンピュータバスでタイムアウトを検知する場合の動作を示す図である。 本発明の第1実施形態のコネクション管理機構で、コンピュータバスでタイムアウトを検知しない場合の動作を示す図である。 本発明の第1実施形態のコネクション管理機構で、コンピュータバスでタイムアウトを検知する場合のパケットの流れを示す図である。 本発明の第1実施形態のコネクション管理機構で、コンピュータバスでタイムアウトを検知しない場合のパケットの流れを示す図である。 本発明の第2実施形態によるコネクション管理ユニットを含むコンピュータシステムを示すブロック図である。 (a)は本発明のその他の実施形態によるコネクション管理機構を実現する情報処理装置のブロック図であり、(b)はその他の実施形態によるコネクション管理機構のブロック図である。 コンピュータバスでタイムアウトを検知する場合で、コンプリーションパケットがロスした場合のアクセスフロー図である。 コンピュータバスでタイムアウトを検知する場合で、コンプリーションパケットが遅延して到達する場合のアクセスフロー図である。 コンピュータバスでタイムアウトを検知しない場合で、コンプリーションパケットがロスした場合のアクセスフロー図である。 コンピュータバスでタイムアウトを検知しない場合で、コンプリーションパケットが遅延して到達する場合のアクセスフロー図である。
本発明の好ましい実施形態について、図面を参照しながら詳細に説明する。
〔第1実施形態〕
初めに、本発明の第1実施形態によるコネクション管理ユニット、およびコネクション管理方法について、説明する。図1は、本発明の第1実施形態によるコネクション管理ユニットを含むコンピュータの全体構成を示したブロック図である。図2は、図1のコンピュータ1内のコネクション管理機構13の詳細を示したブロック図である。図3は、本発明の第1実施形態のアクセストラップ機能でトラップするリクエストパケットのフォーマットの一例である。図4は、本発明の第1実施形態のダミーコンプリーション生成・送信機能により送信されるコンプリーションパケットの例である。図5は、本発明の第1実施形態のTransaction IDテーブルの例を記載した表である。
[構成の説明]
図1のコンピュータ1は、本発明の第1実施形態によるコネクション管理ユニットの一例としてのコネクション管理機構13を含む。図1のコンピュータ1は、CPU10(中央処理装置10)、メモリ11、Root Complex12、コネクション管理機構13、およびI/Oデバイス14(Input/outputデバイス14)を含む。
Root Complex12は、I/Oデバイス14との通信を行う。コネクション管理機構13は、Root Complex12とI/Oデバイス14との間を接続するコンピュータバスに位置する。
I/Oデバイス14は、コンピュータバスプロトコルに準拠したデバイスであり、グラフィックボード(GPU)、ネットワークインターフェースカード(NIC)やストレージデバイス(SATA・NVMe)等を指す。
図1では、I/Oデバイス14が1台の場合を示しているが、コンピュータ1に含まれるI/Oデバイス14の数はこれに限られない。複数のI/Oデバイスをコンピュータ1内に保持する場合も、本実施形態と同様に扱うことができる。
図2のコネクション管理機構13は、図1と同様にRoot Complex12と接続されている。図2のコネクション管理機構13は、Transaction IDテーブル131、アクセストラップ機能132、コンプリーションフィルタ機能133、ダミーコンプリーション生成・送信機能134、およびコネクション検知機能135を含む。
Transaction IDテーブル131は、リクエストパケットをI/Oデバイスやリクエスト種別毎のユニークなトランザクション別に管理する。
アクセストラップ機能132は、リクエストパケットをトラップする。
コンプリーションフィルタ機能133は、同一トランザクションに対して複数のコンプリーション処理が動作することを防ぐ。具体的には、ダミーコンプリーション生成・送信機能134がダミーの返信パケットを生成し送信した後に、正規返信パケットを受信した場合には、この正規返信パケットを破棄する。
ダミーコンプリーション生成・送信機能134は、返信パケットに遅延またはロスが発生した場合、ダミーの返信パケットを生成し送信する。具体的には、コンプリーションが返却されない時に、適切なコンプリーションを生成してリクエスト元に送信する。
コネクション検知機能135は、Root Complex12とI/Oデバイス14を結ぶコンピュータバスのコネクションに遅延がある場合や切断があることを検知する。
図5のTransaction IDテーブルは、デバイスを区別するためのDevice列と、ユニークなトランザクションを区別するためのTransaction ID列と、該当トランザクションのリクエストパケットが送信された時刻を記憶するTimeStamp列と、該当トランザクションのリクエストパケットの内容を保持するPacket情報列と、を含む。
図3は、メモリリクエストパケット(32bit)、メモリリクエストパケット(64bit)、およびリクエストパケット(メモリ以外)のフォーマットの一例を示す。図3のリクエストパケットのフォーマットは、リクエストパケットの種別をしめすTypeフィールドと、リクエスト元のIDが記載されたRequester IDと、複数のリクエストを並列して投げた場合、それらのリクエストを区別するための番号であるTagと、リクエストパケット内のデータであるPayloadを含む。
また、リクエストパケットの宛先として、32bitアドレス空間にアクセスする場合は宛先アドレスを32bitアドレスとして記載する。リクエストパケットの宛先として、64bitアドレス空間にアクセスする場合は宛先アドレスを64bitアドレスとして記載する。リクエストパケットの宛先として、メモリ空間以外の宛先へアクセスする場合はBus/Device/Function番号をヘッダに記載する。
[動作の説明]
次に図6乃至図8に示すフローチャートと、図9および図10のアクセスフロー図を参照して、本実施形態の送信端末の動作について詳細に説明する。
まずはコンピュータシステムのフリーズが発生するパターンとして、コンプリーションタイムアウト検知をリクエストパケット生成元が行う場合について、図6乃至図8を用いて説明する。
まず、リクエスト元(Root Complex12またはI/Oデバイス14)は、リクエスト先(I/Oデバイス14またはRoot Complex12)に対してパケットを送信する。このパケットは、コンピュータバスとコネクション管理機構13を通過してリクエスト先へ到達する。
コネクション管理機構13がリクエスト元からパケットを受信する(A1)と、そのパケットをアクセストラップ機能132に送信する。
アクセストラップ機能132は、受信したパケットのTypeフィールドを見て、リクエストパケットのみを抽出し、リクエストパケットをTransaction IDテーブル131へ保存する(A2)。その後、元々のリクエストパケットをそのままリクエスト先へ送信する(A3)。
アクセストラップ機能132は、抽出したリクエストパケットをTransaction IDテーブル131へ保存する際、図5のTransaction IDテーブルに示すようなフォーマットでリクエストパケットを保持する。
Device列はリクエスト先のIDを示すものであり、リクエストパケットの送信先であるRoot Complex12のIDかI/Oデバイス14のIDが記録される。
Transaction ID列は、トランザクションのユニークなIDであり、PCI Expressをコンピュータバスとして使用する場合は、Tag番号+Address(32bit/64bit)かTag番号+Bus/Device/Function番号が設定される。
Tag番号は、リクエスト先デバイス毎にユニークなシーケンス番号であり、PCI Expressでは、該当Tag番号のコンプリーションが返却されない限り同一Tag番号のリクエストパケットは送信しない。
Addressは、リクエストパケットの宛先アドレスであり、PCI Expressデバイスのメモリ空間がマッピングされているデバイスのアドレス空間である。32bitアドレスで管理されている場合は32bitアドレスが宛先として設定され、64bitアドレスで管理されている場合は64bitアドレスが宛先として設定される。
Bus/Device/Function番号は、メモリ空間に対するリクエストパケット以外で使用される番号であり、リクエスト先のデバイスへリクエストパケットを送信するために必要な番号となる。
PCI Expressの場合、リクエストパケットの種別によってTag+Address(32bit/64bit)か、Tag+Bus/Device/Functionが、各トランザクションのユニークなIDとして使用される。
TimeStamp列は、リクエストパケットをコネクション管理機構13が受信した際の時刻を示す列である。
Packet情報列は、リクエストパケットのうち、Transaction ID以外のヘッダ情報またはPayload情報が含まれるパケット情報である。パケットをそのまますべて保存する場合や、指定した箇所のみを保存する場合がある。
次に、リクエストパケットに対するコンプリーションが遅延した場合の動作について、説明する。
まずコネクション検知機能135は、コネクションの遅延や切断を検知する(B1)。このコネクションの遅延や切断には、コンピュータバスの遅延やリンク障害、コネクションの障害の発生が含まれる。検知方法は例えば、Transaction IDテーブルのTimeStamp値と現在の時刻の差がある一定時間T[ms]以上になったことを検出することにより検知するか、コンピュータバスに障害があったことを外部のエラー検知機構により通知されたときに検知する、とする。
コネクション検知機能135は、エラーを検知した場合、そのエラーをコンプリーションフィルタ機能133に通知する。コネクションの遅延や切断の検知を、Transaction IDテーブルのTimeStamp値から検知する場合は、Transaction ID毎にエラーを通知する。また、コンピュータバスに障害があった場合は、リクエスト元デバイス毎にエラーを通知する。このエラー通知は、コンピュータバスのプロトコルで決定されるタイムアウトよりも早くエラーを検知するものとする。
コンプリーションフィルタ機能133は、コネクション検知機能135から通知されたTransaction IDのコンプリーションをフィルタする(B2)。言い換えるとコンプリーションフィルタ機能133は、コネクション検知機能135から通知を受けた際、Transaction IDを参照し、通知を受けたトランザクションに対するコンプリーションパケットを受信した際に廃棄する。
次にリクエスト元のコンプリーションタイムアウトにより、リクエスト元へエラー通知する(B3)。リクエスト元は、コンピュータバスのプロトコルのタイムアウトにより、コンプリーションの無いリクエストパケットに対して、エラーを通知する。エラーの通知先は、主にCPU10やI/Oデバイス14、またはCPU10上で動作するアプリケーションプログラム等である。
エラー通知を受けたリクエスト元は、エラーハンドリング処理へ移行する(B4)。すなわち、エラー通知を受けたリクエスト元は、エラー通知に対応するエラーハンドリングを行う。ここで、エラーハンドリング後に正規のコンプリーションパケットが遅延して到着した場合にも、コンプリーションフィルタ機能133により、正規のコンプリーションがフィルタされる。このコンプリーションのフィルタにより、正規返信パケットが破棄されるため、同一トランザクションのコンプリーションが二重に返却されることは無い。
次にコンピュータシステムのフリーズが発生するパターンとして、コンプリーションタイムアウト検知をリクエストパケット生成元が行わない場合について、図8、図9を用いて説明する。
アクセストラップ機能132は、A1~A3のフローチャートと同様に動作する。
まずコネクション検知機能135は、コネクションの遅延や切断を検知する(C1)。このコネクションの遅延や切断には、コンピュータバスの遅延やリンク障害、コネクションの障害の発生が含まれる。検知方法は例えば、Transaction IDテーブルのTimeStamp値と現在の時刻の差がある一定時間T[ms]以上になったことを検出することにより検知するか、コンピュータバスに障害があったことを外部のエラー検知機構により通知されたときに検知する、とする。
コネクション検知機能135は、エラーを検知した場合、そのエラーをコンプリーションフィルタ機能133とダミーコンプリーション生成・送信機能134に通知する。コネクションの遅延や切断の検知を、Transaction IDテーブルのTimeStamp値から検知する場合は、Transaction ID毎にエラーを通知する。また、コンピュータバスに障害があった場合は、リクエスト元デバイス毎にエラーを通知する。このエラー通知は、コンピュータバスのプロトコルで決定されるタイムアウトよりも早くエラーを検知するものとする。
コンプリーションフィルタ機能133は、コネクション検知機能135から通知されたTransaction IDのコンプリーションをフィルタする(C2)。言い換えるとエラー通知を受信したコンプリーションフィルタ機能133は、コネクション検知機能135から通知を受けた際、Transaction IDを参照し、通知を受けたトランザクションに対するコンプリーションパケットを受信した際に廃棄する。
次に、ダミーコンプリーション返答機能により、フィルタされたTransaction IDのリクエストに対するダミーコンプリーションを生成し、リクエスト元へ返信する(C3)。エラー通知を受信したダミーコンプリーション生成・送信機能134は、コネクション検知機能135から通知を受けた際、Transaction IDを参照し、通知を受けたトランザクションに対するコンプリーションをダミーコンプリーションとして疑似的に生成する。
この時生成されるダミーコンプリーションの例を、図4に記載する。ダミーコンプリーションのヘッダには、コンプリーションの形式を記載するTypeと、コンプリーション送信元のCompleter IDと、リクエストパケットのTag番号と、リクエスト元のIDであるRequester IDと、Payloadを含む。ここでリクエストパケットのTag番号とリクエスト元のIDであるRequester IDはTransaction IDテーブルを参照して、エラー検知をしたトランザクションと同じ値に設定する。Type値にはコンプリーションパケットであることを示す値を設定する。そのほかのフィールド(Completer IDとPayload)については、Transaction IDテーブルを参照して、同じ値を設定するか、ユーザが任意に決定した値を設定するものとする。
ダミーコンプリーションを受信したリクエスト元は、ダミーコンプリーションに伴うエラーハンドリング処理へ移行する(C4)。すなわちダミーコンプリーションを受信したリクエスト元は、ダミーコンプリーションに伴うエラー処理を行うか、正常動作を継続させる。これによりリクエストに対するコンプリーションが返信されず、コンピュータシステムがフリーズすることを防ぐ。
また、コネクション検知機能135は、コンピュータバスのプロトコルでタイムアウト検知を行うか、行わないか、を認識し、タイムアウト検知を行う場合の動作フローとタイムアウト検知を行わない場合の動作フローの切替えを行う。コンピュータバスプロトコルでタイムアウト検知を行うかどうかを認識する方法としては、コンピュータ上で動作するアプリケーションプログラムの設定を参照して認識する方法や、ユーザがコネクション管理機構13の設定項目として入力する場合がある。
[効果の説明]
次に本実施形態の効果について、説明する。
本実施形態の効果は、コンピュータバスプロトコルでタイムアウトを検知する場合としない場合の双方で、コンピュータシステムに障害またはフリーズが発生することを防ぐことができることにある。その理由は、コンピュータバスを通過するリクエストパケットに対するコンプリーションが返却されない状態、または返却されるコンプリーションが二重に返却される状態を防ぐように、ダミーコンプリーションを生成して返却すること、またはコンプリーションをフィルタするためである。さらにコンピュータバスプロトコルの設定に応じて、コネクション検知機能のエラー通知方法を切り替えられるためである。
〔第2実施形態〕
次に、本発明の第2実施形態によるコネクション管理ユニット、およびコネクション管理方法について、説明する。本実施形態は、第1実施形態のようなコネクション管理ユニットを含むコンピュータを備えた、コンピュータシステムに関するものである。第1実施形態と同様な要素には同じ参照番号を付して、その詳細な説明は省略することとする。
[構成の説明]
図11は、本発明の第2実施形態におけるコンピュータシステムの詳細ブロックを示す。図11のコンピュータシステムは、コンピュータ1と、I/Oデバイスを収容するI/O BOX3と、コンピュータ1とI/O BOX3を繋ぐネットワーク2と、を含む。
図11のコンピュータ1は、本発明の第1実施形態と同様に、コネクション管理ユニットの一例としてのコネクション管理機構13を含むコンピュータ1である。図11のコンピュータ1は、CPU10、メモリ11、Root Complex12、およびコネクション管理機構13を含む。さらに図11のコンピュータ1は、ネットワークI/F15(ネットワークインターフェース15)を含む。
CPU10は、I/O BOX3のI/Oデバイス31と通信するアプリケーションプログラムを動作させる。Root Complex12は、コンピュータバスの通信のために設けられている。本実施形態のコネクション管理機構13は第1実施形態と同様に、コンピュータバス通信におけるコネクションを管理する。
本実施形態のネットワークI/F15は、Root Complex12から生成されるコンピュータバスパケットを、ネットワークパケットでカプセル化・デカプセル化する。
ネットワーク2を介してコンピュータ1に繋がれるI/O BOX3は、コンピュータバスパケットをネットワークパケットでカプセル化・デカプセル化するネットワークI/F30と、I/Oデバイス31と、を含む。
ここで図11のネットワークは、イーサネット(登録商標)やIPネットワークなどの通信ネットワーク等のことを指す。
本実施形態は、第1実施形態のRoot Complex12とI/Oデバイス14間を結ぶコンピュータバスを、ネットワーク2でオーバレイしたものである。なお、図11ではコネクション管理機構13がRoot Complex12とネットワークI/F15の間に挿入されているが、コネクション管理機構13の挿入位置はこれに限られない。すなわち、本実施形態のコネクション管理機構13は、Root Complex12とI/Oデバイス31間のどこに位置していても良い。例えば、ネットワーク2内のルータやスイッチに実装される場合や、I/O BOX3の中に実装される場合なども考えられる。また、コネクション管理機構13の位置により、コネクション管理機構13の動作そのものは変化しない。
[動作の説明]
動作については、コンピュータバスの通信がイーサネットなどのネットワークでオーバレイされるのみで相違するものの、上述した第1実施形態の動作と同様である。
[効果の説明]
本実施形態によれば第1実施形態と同様に、コンピュータバスプロトコルでタイムアウトを検知する場合としない場合の双方で、コンピュータシステムに障害またはフリーズが発生することを防ぐことができる。その理由は、コンピュータバスを通過するリクエストパケットに対するコンプリーションが返却されない状態、または返却されるコンプリーションが二重に返却される状態を防ぐように、ダミーコンプリーションを生成して返却すること、またはコンプリーションをフィルタするためである。さらにコンピュータバスプロトコルの設定に応じて、コネクション検知機能135のエラー通知方法を切り替えられるためである。
さらに本実施形態によれば、コンピュータバスの通信がイーサネットなどのネットワークでオーバレイされたコンピュータシステムにおいても、コンピュータシステムに障害またはフリーズが発生することを防ぐことができる。特に本実施形態では、イーサネットなどのネットワークを使うことにより遅延に大きな揺らぎが発生することから、コンプリーションパケットの遅延に対して対処を行うコネクション管理機構の効果が大きい。
〔その他の実施形態〕
上述した本発明の各実施形態に係るコネクション管理ユニットは、このような構成や動作を実現するプログラムを実行できる情報処理装置によっても実現されうる。このプログラムは、コンピュータ読み取り可能な記録媒体の形態で、流通され得る。このような記録媒体に記録されたプログラムを読み込んで、情報処理装置で実行することにより、本実施形態の機能をソフトウェア的に実現してもよい。
図12(a)は、本発明のその他の実施形態によるコネクション管理ユニットを実現する情報処理装置100のブロック図であり、図12(b)はその他の実施形態によるコネクション管理機構のブロック図である。図12(a)の情報処理装置は、CPU100aと、メモリ100bと、を含む。図12(b)のコネクション管理機構は本発明のその他の実施形態によるコネクション管理ユニットの一例であり、アクセストラップ機能132と、コンプリーションフィルタ機能133と、ダミーコンプリーション生成・送信機能134と、を含む。
このようなハードウェア構成の情報処理装置100で、上述した本発明の実施形態のコネクション管理機構は、実現され得る。すなわち、CPU100aに、アクセストラップ機能132と、コンプリーションフィルタ機能133と、ダミーコンプリーション生成・送信機能134と、を実現させるように構成すればよい。このような機能を情報処理装置に実現させるプログラムは、プログラムを記録した記録媒体の形態で、流通され得る。このプログラムは、CF(Compact Flash(登録商標))およびSD(Secure Digital)等の汎用的な半導体記録デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、またはCD-ROM(Compact Disc Read Only Memory)などの光学記録媒体などの形態で、流通され得る。
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
上記実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、ダミーの返信パケットを生成し前記リクエスト元へ送信するダミー返信パケット生成送信機能およびまたは、前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄するフィルタ機能、を有するコネクション管理ユニット。
(付記2)コンピュータバスプロトコルで定義されるタイムアウトが発生する前に、前記ダミー返信パケット生成送信機能を有効にする、およびまたは、前記フィルタ機能を有効にするコネクション検知機能をさらに有する、付記1に記載のコネクション管理ユニット。
(付記3)前記コンピュータバスを通過するリクエストパケットをトラップするトラップ機能をさらに有する、付記2に記載のコネクション管理ユニット。
(付記4)前記トラップ機能がトラップしたパケットから取得可能な、受信時刻、パケットの送信元、パケットの送信先、トランザクションをユニークに管理するID、をテーブルとして保持する機能を有する、付記3に記載のコネクション管理ユニット。
(付記5)前記ダミーの返信パケットは、前記テーブルを参照し、前記コネクション検知機能で検知したレコードに対するダミーの返信パケットである、付記4に記載のコネクション管理ユニット。
(付記6)コンピュータバスプロトコルにおいて、タイムアウト検知を行いエラー通知をする機能が有効か無効かによって、前記ダミー返信パケット生成送信機能と前記フィルタ機能の有効化・無効化を自動で設定する機能を有する、付記1に記載のコネクション管理ユニット。
(付記7)タイムアウト検知を行い、エラー通知をする機能が有効な場合、前記ダミー返信パケット生成送信機能を無効化し、前記フィルタ機能を有効化する、付記6に記載のコネクション管理ユニット。
(付記8)タイムアウト検知を行わず、エラー通知をする機能が無効な場合、前記ダミー返信パケット生成送信機能を有効化し、前記フィルタ機能を有効化する、付記6に記載のコネクション管理ユニット。
(付記9)リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、ダミーの返信パケットを生成し前記リクエスト元へ送信し、前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄する、コネクション管理方法。
(付記10)リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、前記リクエスト元へエラー通知すると共に、エラー通知後に前記リクエスト先から届いた正規の返信パケットを破棄する、コネクション管理方法。
(付記11)前記コンピュータバスを通過するリクエストパケットをトラップし、トラップしたパケットから取得可能な、受信時刻、パケットの送信元、パケットの送信先、トランザクションをユニークに管理するID、をテーブルとして保持する、付記9又は付記10に記載のコネクション管理方法。
(付記12)リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信に用いられるコネクション管理プログラムであって、コンピュータに、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合に、ダミーの返信パケットを生成し前記リクエスト元へ送信するダミー返信パケット生成送信機能およびまたは、前記ダミーの返信パケットの送信後に届いた正規の返信パケットを破棄するフィルタ機能、を実現させるコネクション管理プログラム。
(付記13)前記コンピュータに、コンピュータバスプロトコルで定義されるタイムアウトが発生する前に、前記ダミー返信パケット生成送信機能を有効にする、およびまたは、前記フィルタ機能を有効にするコネクション検知機能をさらに実現させる、付記12に記載のコネクション管理プログラム。
(付記14)前記コンピュータに、前記コンピュータバスを通過するリクエストパケットをトラップするトラップ機能をさらに実現させる、付記13に記載のコネクション管理プログラム。
(付記15)前記コンピュータに、前記トラップ機能がトラップしたパケットから取得可能な、受信時刻、パケットの送信元、パケットの送信先、トランザクションをユニークに管理するID、をテーブルとして保持する機能をさらに実現させる、付記14に記載のコネクション管理プログラム。
(付記16)前記ダミーの返信パケットは、前記テーブルを参照し、前記コネクション検知機能で検知したレコードに対するダミーの返信パケットである、付記15に記載のコネクション管理プログラム。
(付記17)前記コンピュータに、コンピュータバスプロトコルにおいて、タイムアウト検知を行いエラー通知をする機能が有効か無効かによって、前記ダミー返信パケット生成送信機能と前記フィルタ機能の有効化・無効化を自動で設定する機能をさらに実現させる、付記12に記載のコネクション管理プログラム。
(付記18)タイムアウト検知を行い、エラー通知をする機能が有効な場合、前記ダミー返信パケット生成送信機能を無効化し、前記フィルタ機能を有効化する、付記17に記載のコネクション管理プログラム。
(付記19)タイムアウト検知を行わず、エラー通知をする機能が無効な場合、前記ダミー返信パケット生成送信機能を有効化し、前記フィルタ機能を有効化する、付記17に記載のコネクション管理プログラム。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2017年1月13日に出願された日本出願特願2017-4389号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 コンピュータ
10 CPU
11 メモリ
12 Root Complex
13 コネクション管理機構
131 Transaction IDテーブル
132 アクセストラップ機能
133 コンプリーションフィルタ機能
134 ダミーコンプリーション生成・送信機能
135 コネクション検知機能
14 I/Oデバイス
15 ネットワークI/F
2 ネットワーク
3 I/O BOX
30 ネットワークI/F
31 I/Oデバイス

Claims (5)

  1. リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
    ダミーの返信パケットを生成し前記リクエスト元へ送信するダミー返信パケット生成送信機能およ、前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄するフィルタ機能、を有し、
    コンピュータバスプロトコルにおいて、タイムアウト検知を行いエラー通知をする機能が有効か無効かによって、前記ダミー返信パケット生成送信機能と前記フィルタ機能の有効化・無効化を自動で設定する機能を有する、コネクション管理ユニット。
  2. タイムアウト検知を行い、エラー通知をする機能が有効な場合、前記ダミー返信パケット生成送信機能を無効化し、前記フィルタ機能を有効化する、請求項に記載のコネクション管理ユニット。
  3. タイムアウト検知を行わず、エラー通知をする機能が無効な場合、前記ダミー返信パケット生成送信機能を有効化し、前記フィルタ機能を有効化する、請求項に記載のコネクション管理ユニット。
  4. リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
    ダミーの返信パケットを生成し前記リクエスト元へ送信し、前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄する、コネクション管理方法であり、
    コネクション管理ユニットは、
    コンピュータバスプロトコルにおいて、タイムアウト検知を行いエラー通知をする機能が有効か無効かによって、前記ダミーの返信パケットを生成し前記リクエスト元へ送信するダミー返信パケット生成送信機能と前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄するフィルタ機能の有効化・無効化を自動で設定する、
    コネクション管理方法。
  5. リクエスト元とリクエスト先との間でパケットを送信するコンピュータバスの通信において、前記リクエスト先から送信される返信パケットに遅延またはロスが発生した場合、
    前記リクエスト元へエラー通知すると共に、エラー通知後に前記リクエスト先から届いた正規の返信パケットを破棄する、コネクション管理方法であり、
    コネクション管理ユニットは、
    コンピュータバスプロトコルにおいて、タイムアウト検知を行いエラー通知をする機能が有効か無効かによって、ダミーの返信パケットを生成し前記リクエスト元へ送信するダミー返信パケット生成送信機能と前記ダミーの返信パケットの送信後に前記リクエスト先から届いた正規の返信パケットを破棄するフィルタ機能の有効化・無効化を自動で設定する、
    コネクション管理方法。
JP2018561351A 2017-01-13 2018-01-09 コネクション管理ユニット、およびコネクション管理方法 Active JP7103231B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017004389 2017-01-13
JP2017004389 2017-01-13
PCT/JP2018/000149 WO2018131550A1 (ja) 2017-01-13 2018-01-09 コネクション管理ユニット、およびコネクション管理方法

Publications (2)

Publication Number Publication Date
JPWO2018131550A1 JPWO2018131550A1 (ja) 2019-11-07
JP7103231B2 true JP7103231B2 (ja) 2022-07-20

Family

ID=62839772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561351A Active JP7103231B2 (ja) 2017-01-13 2018-01-09 コネクション管理ユニット、およびコネクション管理方法

Country Status (3)

Country Link
US (1) US11411880B2 (ja)
JP (1) JP7103231B2 (ja)
WO (1) WO2018131550A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175631A (ja) 1999-12-17 2001-06-29 Mitsubishi Electric Corp Cpuカード及びデータ通信方法
JP2006178688A (ja) 2004-12-21 2006-07-06 Nec Corp 多重化装置及びレガシーデバイス多重化方法
JP2012138694A (ja) 2010-12-24 2012-07-19 Canon Imaging Systems Inc クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2015524122A (ja) 2013-05-20 2015-08-20 華為技術有限公司Huawei Technologies Co.,Ltd. ピーシーアイエクスプレスのエンドポイントデバイスにアクセスするための方法、コンピューターシステム、および、装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5824812B2 (ja) 1978-09-22 1983-05-24 株式会社日立製作所 入出力装置管理方式
US5448730A (en) * 1993-12-14 1995-09-05 International Business Machines Corporation Correlating a response with a previously sent request in a multitasking computer system using pipeline commands
JP5151176B2 (ja) 2007-02-21 2013-02-27 株式会社リコー データ通信装置、画像処理システムおよびデータ通信方法
US20080250097A1 (en) 2007-04-04 2008-10-09 Adadeus S.A.S Method and system for extending the services provided by an enterprise service bus
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
JP2013141140A (ja) * 2012-01-05 2013-07-18 Fujitsu Ltd 通信装置及び通信装置のためのプログラム
US8832328B2 (en) * 2012-03-13 2014-09-09 Qualcomm Incorporated Data redirection for universal serial bus devices
US9817786B1 (en) * 2015-06-26 2017-11-14 Amazon Technologies, Inc. Ingress data placement
US20170374044A1 (en) * 2016-06-23 2017-12-28 Ahmed Hassan M ALYUBI Messenger application systems and methods
US10496552B2 (en) * 2017-04-12 2019-12-03 The Regents Of The University Of Michigan Trusted computing system with enhanced memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175631A (ja) 1999-12-17 2001-06-29 Mitsubishi Electric Corp Cpuカード及びデータ通信方法
JP2006178688A (ja) 2004-12-21 2006-07-06 Nec Corp 多重化装置及びレガシーデバイス多重化方法
JP2012138694A (ja) 2010-12-24 2012-07-19 Canon Imaging Systems Inc クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2015524122A (ja) 2013-05-20 2015-08-20 華為技術有限公司Huawei Technologies Co.,Ltd. ピーシーアイエクスプレスのエンドポイントデバイスにアクセスするための方法、コンピューターシステム、および、装置

Also Published As

Publication number Publication date
US20190334826A1 (en) 2019-10-31
WO2018131550A1 (ja) 2018-07-19
US11411880B2 (en) 2022-08-09
JPWO2018131550A1 (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
EP3042298B1 (en) Universal pci express port
JP4347247B2 (ja) データ転送要求を実行するための方法、システム、およびプログラム
US8370447B2 (en) Providing a memory region or memory window access notification on a system area network
US20060039406A1 (en) Systems and methods for tag information validation in wide port SAS connections
WO2017162175A1 (zh) 一种数据传输方法及装置
JP2004531175A (ja) ローカル識別子を使ったエンド・ノード区分
US7409432B1 (en) Efficient process for handover between subnet managers
US10372343B2 (en) Storage system, method, and apparatus for processing operation request
JP2002305535A (ja) データを転送する信頼できるプロトコルを提供する方法および装置
US20170220255A1 (en) Write request processing method, processor, and computer
US10459791B2 (en) Storage device having error communication logical ports
CN113626235A (zh) 容错处理的方法、装置和服务器
JP7103231B2 (ja) コネクション管理ユニット、およびコネクション管理方法
CN104205079A (zh) Rdma网络上的子网管理数据的高效分配
US10686754B2 (en) In-band LDAP over FICON
JP4655733B2 (ja) リング型二重化ネットワークにおける受信方法及び装置
US20190028542A1 (en) Method and device for transmitting data
CN102055729B (zh) iSCSI封包的数据解析方法
Stensland Fault-tolerant routing in SCI networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190703

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220620

R151 Written notification of patent or utility model registration

Ref document number: 7103231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151