JP6110560B2 - Method, apparatus and system for handling PCIe link failures - Google Patents

Method, apparatus and system for handling PCIe link failures Download PDF

Info

Publication number
JP6110560B2
JP6110560B2 JP2016510920A JP2016510920A JP6110560B2 JP 6110560 B2 JP6110560 B2 JP 6110560B2 JP 2016510920 A JP2016510920 A JP 2016510920A JP 2016510920 A JP2016510920 A JP 2016510920A JP 6110560 B2 JP6110560 B2 JP 6110560B2
Authority
JP
Japan
Prior art keywords
pcie device
lane
pcie
link
downstream
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
JP2016510920A
Other languages
Japanese (ja)
Other versions
JP2016526311A (en
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016526311A publication Critical patent/JP2016526311A/en
Application granted granted Critical
Publication of JP6110560B2 publication Critical patent/JP6110560B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • 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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Hardware Redundancy (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、データ伝送技術の分野に関し、特にPCIeリンク故障を処理する方法、装置及びシステムに関する。   The present invention relates to the field of data transmission technology, and more particularly to a method, apparatus and system for handling PCIe link failures.

現在、データ伝送技術の分野では、PCIe(Peripheral Component Interconnect Express、ペリフェラル・コンポーネント・インターコネクト・エクスプレス)プロトコルが広く適用されてきた。PCIeプロトコルが装置に適用されるとき、データ伝送はポイント・ツー・ポイント形式により装置間で実行される。PCIeプロトコルを利用することによってデータ伝送を実行する装置は、PCIe装置として総称される。システムでは、リンク接続は、シリアライザ/デ・シリアライザ(serdes,Serializer/De−Serializer)回路を利用することによって、2つのPCIe装置の間の通信のため実現可能である。2つのPCIe装置がデータ伝送を実行するとき、データ伝送は、ネゴシエートされたレートによりserdesを利用することによって実行される。2つのPCIe装置の間のリンクは、1,2,4,8,16又は32個のserdesを含むものであってもよい。複数のserdesがあるとき、これらのserdesは連続する数字を昇順に利用することによって、逐次的に番号付けされる。1つのserdesはリンクの1つのレーン(lane)であり、serdes番号はレーン番号として参照される。   Currently, in the field of data transmission technology, a peripheral component interconnect express (PCIe) protocol has been widely applied. When the PCIe protocol is applied to devices, data transmission is performed between devices in a point-to-point format. Devices that perform data transmission by using the PCIe protocol are collectively referred to as PCIe devices. In the system, link connection can be realized for communication between two PCIe devices by utilizing a serializer / deserializer (serdes, Serializer / De-Serializer) circuit. When two PCIe devices perform data transmission, data transmission is performed by utilizing serdes with the negotiated rate. The link between two PCIe devices may include 1, 2, 4, 8, 16, or 32 serdes. When there are multiple serdes, these serdes are numbered sequentially by using consecutive numbers in ascending order. One serdes is one lane of the link, and the serdes number is referred to as a lane number.

2つのPCIe装置の間のデータ伝送の帯域幅(W)は、レーン数(N)とネゴシエートされたレート(S)との積に等しく、すなわち、帯域幅の式はW=N×Sである。2つのPCIe装置の間のリンクのネゴシエートされたレート(S)は、使用されるPCIeプロトコルのバージョンにより変わり、現在、1秒間に1つの回路により伝送可能なデータの容量を示す、GEN1(2.5 GT/s)、GEN2(5.0 GT/s)、GEN3(8.0 GT/s)及びGEN4(16.0 GT/s)である4つのタイプのネゴシエートされたレートがある。一般に、1つのPCIe装置のリンクによりサポートされるネゴシエートされたレート(S)は固定され、この場合、通信帯域幅(W)のますます高くなるユーザ要求を充たすため、帯域幅は、リンクのレーン数(N)を増やすことによってしか改善できない。   The bandwidth (W) of data transmission between two PCIe devices is equal to the product of the number of lanes (N) and the negotiated rate (S), ie the bandwidth equation is W = N × S. . The negotiated rate (S) of the link between two PCIe devices varies depending on the version of the PCIe protocol used and currently indicates the amount of data that can be transmitted by one circuit per second, GEN1 (2. There are four types of negotiated rates: 5 GT / s), GEN2 (5.0 GT / s), GEN3 (8.0 GT / s) and GEN4 (16.0 GT / s). In general, the negotiated rate (S) supported by a link of one PCIe device is fixed, in this case the bandwidth is the link lane in order to meet the increasingly demanding user demand of communication bandwidth (W). It can be improved only by increasing the number (N).

2つのPCIe装置がデータを送信するとき、2つのPCIe装置の間のリンクの全てのレーンが同時に利用される必要がある。レーンの1つにおいて故障が発生した場合、データ伝送が中断される。従来技術では、PCIe装置に接続されるレーンにおいて故障が発生すると、PCIe装置は、PCIeプロトコルの再ネゴシエーション機構に従ってリンクネゴシエーションを実行する。リンクネゴシエーション中、ネゴシエーションは、最小のレーン番号のレーンから始まって実行され、リンクネゴシエーションは、レーン番号の昇順に逐次的に実行される。レーン番号の昇順にリンク再ネゴシエーションを連続的に実行する方式は、上方ネゴシエーションとして参照される。例えば、GEN2のレート及び16のリンク幅(PCIe2.0×16)について当初にネゴシエートする必要があるPCIe装置のレーン番号2において故障が発生すると、PCIe装置は、PCIeプロトコルの再ネゴシエーション機構に従って、レーン番号0から始まって上方にリンクネゴシエーションを実行する。ネゴシエーションは、レーン番号2における故障のためレーン番号2に対して逐次的に実行することができず、レーン番号0からレーン番号1までネゴシエーションが実行された後、リンクネゴシエーションは継続できない。この場合、ネゴシエーションは2つのレーン、レーン番号0及びレーン番号1のみに対して実行が成功し、すなわち、データ伝送はレーン番号0及びレーン番号1においてしか継続できない。PCIeプロトコルに規定される2つのPCIe装置の間のリンクのレーン幅によると、2つのPCIe装置の間のリンクのレーン幅は、再ネゴシエーションにより取得される2であり、すなわち、2つのレーンしかデータを送信するためPCIe装置に提供することはできない。この場合、帯域幅の式におけるNは元の16から2に変更され、PCIe装置の間のデータ伝送の性能は、元の性能の1/8にすぎない。しかしながら、レーン番号1において故障が発生した場合、上記の再ネゴシエーション方法によると、1つのレーンしかネゴシエートできず、この場合、データ伝送性能は、元の性能の1/16にすぎない。   When two PCIe devices transmit data, all the lanes of the link between the two PCIe devices need to be used simultaneously. If a failure occurs in one of the lanes, data transmission is interrupted. In the prior art, when a failure occurs in a lane connected to a PCIe device, the PCIe device performs link negotiation according to a renegotiation mechanism of the PCIe protocol. During link negotiation, negotiation is performed starting from the lane with the smallest lane number, and link negotiation is sequentially performed in ascending order of lane numbers. A method of continuously executing link renegotiation in ascending order of lane numbers is referred to as upward negotiation. For example, if a failure occurs in lane number 2 of a PCIe device that needs to be initially negotiated for a GEN2 rate and a link width of 16 (PCIe 2.0 × 16), the PCIe device follows the renegotiation mechanism of the PCIe protocol, Link negotiation is performed upward starting from number 0. Negotiation cannot be executed sequentially for lane number 2 due to a failure in lane number 2, and link negotiation cannot be continued after the negotiation from lane number 0 to lane number 1 is executed. In this case, the negotiation is successful for only two lanes, lane number 0 and lane number 1, that is, data transmission can only continue on lane number 0 and lane number 1. According to the lane width of the link between two PCIe devices specified in the PCIe protocol, the lane width of the link between two PCIe devices is 2, which is obtained by renegotiation, i.e. only two lanes of data Can not be provided to the PCIe device for transmitting. In this case, N in the bandwidth equation is changed from the original 16 to 2, and the performance of data transmission between PCIe devices is only 1/8 of the original performance. However, when a failure occurs in lane number 1, according to the above renegotiation method, only one lane can be negotiated. In this case, the data transmission performance is only 1/16 of the original performance.

従来技術では、PCIe装置の間のリンクのレーンにおいて故障が発生すると、リンクのレーン幅の再ネゴシエーションは、故障したレーンのレーン番号によって大きく制限され、再ネゴシエーションにより取得されるレーン幅に関する不確実性とレーン幅が大きく減少するケースとを導き、レーンのデータ伝送性能に重大な影響を与える。   In the prior art, when a failure occurs in the lane of a link between PCIe devices, the lane width renegotiation of the link is largely limited by the lane number of the failed lane, and the uncertainty regarding the lane width obtained by renegotiation And a case where the lane width is greatly reduced, which has a significant influence on the data transmission performance of the lane.

これを鑑み、本発明は、故障が発生するレーンのレーン番号の制限のため、再ネゴシエーションにより取得されたレーン幅において不確実性が存在し、レーン幅が大きく減少するケースが発生するかもしれず、レーンの伝送性能に重大な影響を与える従来技術における問題を解決するため、PCIeリンク故障を処理する方法、装置及びシステムを提供する。   In view of this, the present invention may cause a case where there is uncertainty in the lane width obtained by renegotiation due to the limitation of the lane number of the lane in which the failure occurs, and the lane width is greatly reduced. To solve the problems in the prior art that have a significant impact on lane transmission performance, a method, apparatus and system for handling PCIe link failures is provided.

本発明の第1の態様は、PCIeリンク故障を処理する方法であって、
PCIe装置が、前記PCIe装置と下流のPCIe装置との間のリンクのレーンにおいて故障が発生したと検出し、メッセージ・シグナルド・インタラプトMSIメッセージを中央処理ユニットCPUに送信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、送信するステップと、
前記PCIe装置が、現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするステップと、
前記CPUが、前記受信したMSIメッセージにおけるデバイスIDに従って、前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び前記現在レーン幅値Nを取得するステップと、
前記CPUが、NとM/2とを比較するステップと、
N<M/2である場合、前記CPUが、レーン反転処理を実行するよう前記PCIe装置に指示するステップと、
前記PCIe装置が、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行するステップと、
前記PCIe装置が、新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートし、N’個のレーンを利用することによって前記下流のPCIe装置とのデータ伝送を実行し続けるステップと、
を有する方法を提供する。
A first aspect of the invention is a method for handling a PCIe link failure comprising:
A PCIe device detecting that a failure has occurred in a lane of a link between the PCIe device and a downstream PCIe device, and sending a message signaled interrupt MSI message to a central processing unit CPU, the MSI Sending a message having a device ID of said PCIe device;
The PCIe device negotiates with the downstream PCIe device to obtain a current lane width value N;
The CPU obtaining the PCIe device lane negotiation capability value M and the current lane width value N from the PCIe device according to the device ID in the received MSI message;
Said CPU comparing N and M / 2;
If N <M / 2, the CPU instructs the PCIe device to perform lane inversion processing;
The PCIe device performs the lane inversion process on a link between the PCIe device and the downstream PCIe device;
The PCIe device continues to execute data transmission with the downstream PCIe device by negotiating with the downstream PCIe device and using the N ′ lanes to obtain a new current lane width value N ′. Steps,
A method is provided.

第1の態様の第1の可能な実現方式では、当該方法は更に、N≧M/2である場合、前記PCIe装置が、ネゴシエーションにより取得されたN個のレーンを利用することによって、前記下流のPCIe装置とのデータ伝送を実行し続けるステップを有する。   In a first possible implementation manner of the first aspect, the method further comprises: if N ≧ M / 2, the PCIe device uses the N lanes obtained by negotiation to cause the downstream The step of continuing to perform data transmission with other PCIe devices.

第1の態様又は第1の態様の第1の可能な実現方式を参照して、第2の可能な実現方式では、N<M/2である場合、当該方法は更に、前記CPUが、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするステップを有する。   Referring to the first aspect or the first possible implementation manner of the first aspect, in the second possible implementation manner, if N <M / 2, the method further comprises: Invalidating the lane number 0 to the lane number (M / 2-1) of the link between the PCIe device and the downstream PCIe device.

本発明の第2の態様は、PCIeリンク故障を処理する方法であって、
PCIe装置により報告されたメッセージ・シグナルド・インタラプトMSIメッセージを受信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、受信するステップと、
前記デバイスIDに従って前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び現在レーン幅値Nを取得するステップであって、前記現在レーン幅値Nは、前記PCIe装置が下流のPCIe装置とネゴシエートすることによって取得される、取得するステップと、
NとM/2とを比較するステップと、
N<M/2である場合、レーン反転処理を実行するよう前記PCIe装置に指示するステップと、
を有する方法を提供する。
A second aspect of the invention is a method for handling a PCIe link failure comprising:
Receiving a message signaled interrupt MSI message reported by a PCIe device, wherein the MSI message has a device ID of the PCIe device;
Obtaining a lane negotiation capability value M and a current lane width value N of the PCIe device from the PCIe device according to the device ID, the current lane width value N being negotiated with a downstream PCIe device by the PCIe device; A step of obtaining, obtained by
Comparing N and M / 2;
If N <M / 2, instructing the PCIe device to perform lane inversion processing;
A method is provided.

第2の態様の第1の可能な実現方式では、N<M/2である場合、当該方法は更に、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするステップを有する。   In a first possible implementation manner of the second aspect, if N <M / 2, the method further includes lane number 0 to lane number () of the link between the PCIe device and the downstream PCIe device. M / 2-1) is invalidated.

第2の態様又は第2の態様の第1の可能な実現方式を参照して、第2の可能な実現方式では、前記PCIe装置のレーンネゴシエーション能力値Mは、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーンの合計数に等しい。   Referring to the second aspect or the first possible implementation scheme of the second aspect, in a second possible implementation scheme, the lane negotiation capability value M of the PCIe device is the PCIe device and the downstream PCIe Equal to the total number of lanes in the link to the device.

本発明の第3の態様は、PCIeリンク故障を処理する方法であって、
PCIe装置が、前記PCIe装置と下流のPCIe装置との間のリンクのレーンにおいて故障が発生したと検出し、メッセージ・シグナルド・インタラプトMSIメッセージを中央処理ユニットCPUに送信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、送信するステップと、
現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするステップと、
前記CPUにより送信されたレーン反転処理を実行する指示を受信し、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行するステップと、
新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートし、N’個のレーンを利用することによって前記下流のPCIe装置とのデータ伝送を実行し続けるステップと、
を有する方法を提供する。
A third aspect of the present invention is a method for handling a PCIe link failure comprising:
A PCIe device detecting that a failure has occurred in a lane of a link between the PCIe device and a downstream PCIe device, and sending a message signaled interrupt MSI message to a central processing unit CPU, the MSI Sending a message having a device ID of said PCIe device;
Negotiating with the downstream PCIe device to obtain a current lane width value N;
Receiving an instruction to perform lane inversion processing transmitted by the CPU, and executing the lane inversion processing for a link between the PCIe device and the downstream PCIe device;
Negotiating with the downstream PCIe device to obtain a new current lane width value N ′ and continuing to perform data transmission with the downstream PCIe device by using N ′ lanes;
A method is provided.

第3の態様の第1の可能な実現方式では、前記PCIe装置が前記CPUにより送信されたレーン反転処理を実行する指示を所定の時間内に受信しなかった場合、前記PCIe装置が、N個のレーンを利用することによって、前記下流のPCIe装置とのデータ伝送を実行し続ける。   In a first possible implementation manner of the third aspect, if the PCIe device does not receive the instruction to execute the lane inversion processing transmitted by the CPU within a predetermined time, the number of PCIe devices is N. , The data transmission with the downstream PCIe device continues to be executed.

本発明の第4の態様は、PCIeリンク故障を処理するシステムであって、当該システムは、中央処理ユニットCPU、PCIe装置及び下流のPCIe装置を有し、前記CPUは前記PCIe装置に接続され、前記PCIe装置はリンクを利用することによって前記下流のPCIe装置に接続され、
前記PCIe装置は、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーンにおいて故障が発生したか検出し、故障が発生すると、メッセージ・シグナルド・インタラプトMSIメッセージを前記CPUに報告するよう構成され、前記MSIメッセージは前記PCIe装置のデバイスIDを有し、前記PCIe装置は更に、現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするよう構成され、
前記CPUは、前記MSIメッセージにおけるデバイスIDに従って、前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び前記現在レーン幅値Nを取得し、NとM/2とを比較し、N<M/2であるとき、レーン反転処理を実行するよう前記PCIe装置に指示するよう構成され、
前記PCIe装置は更に、前記CPUにより送信されたレーン反転処理を実行する指示を受信した後に、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行し、新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートするよう構成されるシステムを提供する。
A fourth aspect of the present invention is a system for handling a PCIe link failure, the system comprising a central processing unit CPU, a PCIe device and a downstream PCIe device, the CPU being connected to the PCIe device, The PCIe device is connected to the downstream PCIe device by using a link,
The PCIe device is configured to detect whether a failure has occurred in a lane of a link between the PCIe device and the downstream PCIe device, and report a message / signaled interrupt MSI message to the CPU when the failure occurs. The MSI message has a device ID of the PCIe device, and the PCIe device is further configured to negotiate with the downstream PCIe device to obtain a current lane width value N;
The CPU obtains the lane negotiation capability value M and the current lane width value N of the PCIe device from the PCIe device according to the device ID in the MSI message, compares N with M / 2, and N <M / 2 is configured to instruct the PCIe device to perform lane inversion processing;
The PCIe device further executes the lane inversion processing for the link between the PCIe device and the downstream PCIe device after receiving the instruction to execute the lane inversion processing transmitted by the CPU. A system configured to negotiate with the downstream PCIe device to obtain a current lane width value N ′.

第4の態様の第1の可能な実現方式では、N<M/2であるとき、前記CPUは更に、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするよう構成される。   In a first possible implementation manner of the fourth aspect, when N <M / 2, the CPU further lane number 0 to lane number () of the link between the PCIe device and the downstream PCIe device. M / 2-1) is invalidated.

本発明の第5の態様は、PCIeリンク故障を処理するPCIe装置であって、検出モジュール5031、MSIモジュール5033、ネゴシエートモジュール5035、レジスタ5037及びレーン反転モジュール5039を有し、
前記レジスタ5037は、前記PCIe装置の現在レーン幅値N及びレーンネゴシエーション能力値Mを格納し、
前記検出モジュール5031は、前記PCIe装置503と下流のPCIe装置との間のリンク504の通信状態をモニタリングし、前記リンク504のレーンにおいて故障が発生したと検出すると、レーン故障指示メッセージを前記MSIモジュール5033に送信するよう構成され、
前記MSIモジュール5033は、前記検出モジュール5031により送信された前記レーン故障指示メッセージを受信した後に、MSIメッセージを中央処理ユニットCPU501に送信するよう構成され、前記MSIメッセージは前記PCIe装置503のデバイスIDを含み、
前記ネゴシエートモジュール5035は、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン幅をネゴシエートするよう構成され、
前記レーン反転モジュール5039は、前記CPUにより送信されたレーン反転処理を実行する指示を受信した後に、前記PCIe装置と前記下流のPCIe装置の間のリンクのレーンに対して前記レーン反転処理を実行するよう構成されるPCIe装置を提供する。
A fifth aspect of the present invention is a PCIe device for processing a PCIe link failure, and includes a detection module 5031, an MSI module 5033, a negotiate module 5035, a register 5037, and a lane inversion module 5039.
The register 5037 stores a current lane width value N and a lane negotiation capability value M of the PCIe device,
The detection module 5031 monitors the communication state of the link 504 between the PCIe device 503 and the downstream PCIe device, and when detecting that a failure has occurred in the lane of the link 504, the detection module 5031 sends a lane failure indication message to the MSI module. Configured to transmit to 5033,
The MSI module 5033 is configured to transmit an MSI message to the central processing unit CPU 501 after receiving the lane failure indication message transmitted by the detection module 5031, and the MSI message includes a device ID of the PCIe device 503. Including
The negotiate module 5035 is configured to negotiate the lane width of the link between the PCIe device and the downstream PCIe device;
The lane reversal module 5039 performs the lane reversal process on the lane of the link between the PCIe device and the downstream PCIe device after receiving the instruction to perform the lane reversal process transmitted by the CPU. A PCIe device configured as described above is provided.

従来技術と比較して、本発明は、PCIeリンク故障を処理する方法、装置及びシステムを開示し、PCIe装置の現在レーン幅値とレーンネゴシエーション能力値Mとを比較することによって、当該方法は、PCIe装置のレーン幅が、故障が発生したレーンのレーン番号に関わらず、レーンネゴシエーション能力値の半分を維持することを保証することができることが、上記の技術的方策からわかる。本発明において開示されるPCIeリンク故障を処理する方法、装置及びシステムは、リンク再ネゴシエーションに課せられる故障したレーンのレーン番号の制限を大きく緩和し、これにより、最適なリンク幅が再ネゴシエーションの後に達成できる。   Compared to the prior art, the present invention discloses a method, apparatus and system for handling PCIe link failure, and by comparing the current lane width value of the PCIe apparatus and the lane negotiation capability value M, the method comprises: It can be seen from the above technical measures that the PCIe device lane width can be guaranteed to maintain half of the lane negotiation capability value regardless of the lane number of the lane in which the failure occurred. The method, apparatus and system for handling PCIe link failures disclosed in the present invention greatly relaxes the lane number limitation of failed lanes imposed on link renegotiation, so that the optimal link width can be improved after renegotiation. Can be achieved.

本発明の実施例又は従来技術における技術的方策をより明確に説明するため、以下において、実施例又は従来技術を説明するのに必要な添付図面が簡単に紹介される。明らかに、以下の説明における添付図面は本発明の単なる実施例を示し、当業者は、提供された添付図面から他の図面を依然として導出してもよい。
図1は、本発明の実施例において開示されるPCIe装置の間の接続の概略図である。 図2は、本発明の実施例において開示されるPCIe装置の間の接続の簡略化された概略図である。 図3は、本発明の実施例において開示されるPCIe装置の間の他の接続の簡略化された概略図である。 図4は、本発明の実施例において開示されるPCIe装置のリンク故障を処理する方法のフローチャートである。 図5は、本発明の実施例において開示されるPCIe装置の概略的な構成図である。
BRIEF DESCRIPTION OF THE DRAWINGS To describe the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly introduces the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description show merely examples of the present invention, and those skilled in the art may still derive other drawings from the provided accompanying drawings.
FIG. 1 is a schematic diagram of a connection between PCIe devices disclosed in an embodiment of the present invention. FIG. 2 is a simplified schematic diagram of connections between PCIe devices disclosed in embodiments of the present invention. FIG. 3 is a simplified schematic diagram of another connection between PCIe devices disclosed in embodiments of the present invention. FIG. 4 is a flowchart of a method for handling a link failure of a PCIe device disclosed in an embodiment of the present invention. FIG. 5 is a schematic configuration diagram of a PCIe device disclosed in an embodiment of the present invention.

以下は、本発明の実施例における添付図面を参照して本発明の実施例における技術的方策を明確且つ完全に説明する。明らかに、説明される実施例は、本発明の実施例の全てでなく単に一部である。   The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely a part rather than all of the embodiments of the present invention.

本発明は、PCIe(Peripheral Component Interconnect Express、ペリフェラル・コンポーネント・インターコネクト・エクスプレス)装置のリンク故障を処理する新規な方法を提供する。PCIeプロトコルを利用することによってデータ伝送を実行する装置は、PCIe装置として総称される。PCIe装置は、独立した装置に統合されるチップであってもよいし、又は物理的に独立した装置であってもよいし、ここでは限定されない。PCIe装置の間の接続関係について、図1が参照されてもよい。図1に示されるように、2つのPCIe装置はデータ伝送を実行するため直接接続されてもよく、例えば、ルートコンプレクス(root complex)装置の下流のポートは、ルートコンプレクスとPCIe装置1との間のデータ伝送を実現するため、PCIe装置1の上流のポートに直接接続される。データ伝送はまた、例えば、スイッチを利用することによってデータ伝送を実現するなど、2つのPCIe装置の間で間接的に実行されてもよい。例えば、ルートコンプレクスの下流のポートはスイッチの上流のポートに接続され、スイッチの下流のポートは、ルートコンプレクスとPCIe装置2との間のデータ伝送を実現するため、PCIe装置2の上流のポートに接続される。1つのPCIe装置は複数のPCIe装置に同時に接続されてもよく、図1に示されるように、ルートコンプレクスは、PCIe装置1及びスイッチに同時に接続される。これらのPCIe装置は、中央化された方式により中央処理ユニットCPUによって管理されてもよい。   The present invention provides a novel method for handling link failures in PCIe (Peripheral Component Interconnect Express) devices. Devices that perform data transmission by using the PCIe protocol are collectively referred to as PCIe devices. The PCIe device may be a chip integrated into an independent device, or may be a physically independent device, and is not limited here. Reference may be made to FIG. 1 for connection relationships between PCIe devices. As shown in FIG. 1, two PCIe devices may be directly connected to perform data transmission, for example, the downstream port of a root complex device is between the root complex and the PCIe device 1 In order to realize this data transmission, it is directly connected to the upstream port of the PCIe device 1. Data transmission may also be performed indirectly between two PCIe devices, for example, implementing data transmission by utilizing a switch. For example, the downstream port of the route complex is connected to the upstream port of the switch, and the downstream port of the switch is connected to the upstream port of the PCIe device 2 in order to realize data transmission between the root complex and the PCIe device 2. Connected. One PCIe device may be simultaneously connected to a plurality of PCIe devices. As shown in FIG. 1, the route complex is simultaneously connected to the PCIe device 1 and the switch. These PCIe devices may be managed by the central processing unit CPU in a centralized manner.

データ伝送はリンク接続によって2つのPCIe装置の間で実現され、リンクはシリアライザ/デ・シリアライザ(serdes,Serializer/De−Serializer)回路であってもよい。例えば、ルートコンプレクスの下流のポートは、複数のserdesを利用することによってPCIe装置1の上流のポートに接続され、これらのserdesは、ルートコンプレクスとPCIe装置1との間のリンクを形成する。2つのPCIe装置の間には1,2,4,8,16又は32個のserdesがあってもよく、2つのPCIe装置の間のserdesは2つのPCIe装置の間のリンクを形成する。2つのPCIe装置の間のデータ伝送の帯域幅(W)は、レーン数(N)とネゴシエートされたレート(S)との積に等しく、すなわち、帯域幅の式はW=N×Sである。2つのPCIe装置の間のリンクのネゴシエートされたレート(S)は、利用されるPCIeプロトコルのバージョンによって変わり、現在、1秒間に1つの回路により伝送可能なデータの容量を示すGEN1(2.5 GT/s)、GEN2(5.0 GT/s)、GEN3(8.0 GT/s)及びGEN4(16.0 GT/s)である4つのタイプのネゴシエートされたレートがある。一般に、1つのPCIe装置のリンクによりサポートされるネゴシエートされたレート(S)は固定され、この場合、通信帯域幅(W)のますます高くなるユーザ要求を充たすため、帯域幅は、リンクのレーン数(N)を増やすことによってしか改善できない。   Data transmission is realized between the two PCIe devices by a link connection, and the link may be a serializer / deserializer (serdesizer, serializer / de-serializer) circuit. For example, the downstream port of the root complex is connected to the upstream port of the PCIe device 1 by using a plurality of serdes, and these serdes form a link between the root complex and the PCIe device 1. There may be 1, 2, 4, 8, 16 or 32 serdes between two PCIe devices, and the serdes between two PCIe devices form a link between the two PCIe devices. The bandwidth (W) of data transmission between two PCIe devices is equal to the product of the number of lanes (N) and the negotiated rate (S), ie the bandwidth equation is W = N × S. . The negotiated rate (S) of the link between two PCIe devices varies depending on the version of the PCIe protocol used and is currently GEN1 (2.5 indicating the amount of data that can be transmitted by one circuit per second. There are four types of negotiated rates: GT / s), GEN2 (5.0 GT / s), GEN3 (8.0 GT / s) and GEN4 (16.0 GT / s). In general, the negotiated rate (S) supported by a link of one PCIe device is fixed, in this case the bandwidth is the link lane in order to meet the increasingly demanding user demand of communication bandwidth (W). It can be improved only by increasing the number (N).

複数のserdesがあるとき、これらのserdesは、昇順に連続する数字を利用することによって逐次的に番号付けされ、この場合、1つserdesは2つのPCIe装置の間のリンクのレーン(lane)であり、serdes番号はレーン番号として参照される。例えば、図1に示されるルートコンプレクスとPCIe装置1との間のレーンは、0から15までの数字を利用することによって、左から右に逐次的に番号付けされる。ここに説明されるserdesは、既存のserdes構造を利用し、既存の機能をサポートし、ここでは別には再説明されない。   When there are multiple serdes, these serdes are numbered sequentially by using consecutive numbers in ascending order, where one serdes is a lane of links between two PCIe devices. Yes, the serdes number is referred to as the lane number. For example, the lanes between the root complex shown in FIG. 1 and the PCIe device 1 are sequentially numbered from left to right by using numbers from 0 to 15. The serdes described here utilize the existing serdes structure and support existing functionality and will not be described again here.

2つのPCIe装置が接続されるとき、リンクネゴシエーションを開始した一方のPCIe装置が上流のPCIe装置として参照され、当該一方のPCIe装置に接続された他方が下流のPCIe装置として参照される。図1に示されるように、ルートコンプレクス及びPCIe装置1が接続されるとき、ルートコンプレクスが上流のPCIe装置であり、PCIe装置1が下流のPCIe装置である。ルートコンプレクス及びスイッチが接続されるとき、ルートコンプレクスが上流のPCIe装置であり、スイッチが下流のPCIe装置である。スイッチは更にPCIe装置2に接続され、この場合、スイッチが上流のPCIe装置であり、PCIe装置2が下流のPCIe装置である。1つのPCIe装置が複数のPCIe装置に同時に接続されるとき、データ伝送は、独立したリンクを利用することによって、当該1つのPCIe装置と他の全てのPCIe装置との間で実行される。例えば、PCIeスイッチがPCIe装置2及びPCIe装置3に同時に接続され、リンク1を利用することによって、PCIeスイッチとPCIe装置2との間のデータ伝送が実現され、リンク2を利用することによって、スイッチとPCIe装置3との間のデータ伝送が実現される。リンク1及びリンク2は互いに独立して存在し、互いに影響を与えない。リンク1及びリンク2のレーン数は、同じであってもよいし、又は異なるものであってもよい。しかしながら、データ伝送は、同じ方式によりリンクを利用することによってPCIe装置の間で実行される。以下において、2つのPCIe装置の間のリンクにおいて実行される故障を処理する方法の具体例を利用することによって説明が与えられる。   When two PCIe devices are connected, one PCIe device that has started link negotiation is referred to as an upstream PCIe device, and the other connected to the one PCIe device is referred to as a downstream PCIe device. As shown in FIG. 1, when the route complex and the PCIe device 1 are connected, the route complex is an upstream PCIe device, and the PCIe device 1 is a downstream PCIe device. When the route complex and the switch are connected, the route complex is the upstream PCIe device and the switch is the downstream PCIe device. The switch is further connected to a PCIe device 2, in which case the switch is an upstream PCIe device and the PCIe device 2 is a downstream PCIe device. When one PCIe device is simultaneously connected to multiple PCIe devices, data transmission is performed between the one PCIe device and all other PCIe devices by utilizing independent links. For example, a PCIe switch is simultaneously connected to the PCIe device 2 and the PCIe device 3, and data transmission between the PCIe switch and the PCIe device 2 is realized by using the link 1, and the switch is obtained by using the link 2. And the PCIe device 3 are realized. Link 1 and link 2 exist independently of each other and do not affect each other. The number of lanes of link 1 and link 2 may be the same or different. However, data transmission is performed between PCIe devices by utilizing links in the same manner. In the following, an explanation will be given by utilizing a specific example of a method for handling a fault performed on a link between two PCIe devices.

全体的な処理をより明確且つより明示的にするため、図2に示されるように、2つのPCIe装置の間の接続関係が簡単化され、ここで、第1PCIe装置は、上流のPCIe装置であり、第2PCIe装置とのレーンネゴシエーションを実行する。第2PCIe装置は、下流のPCIe装置である。中央処理ユニットCPUは、2つのPCIe装置を管理する。第1PCIe装置と第2PCIe装置との間のリンクは16個のserdesを含み、各serdesは、第1PCIe装置と第2PCIe装置との間のリンクのレーンであり、16個のレーンは、左から右に0から始まって15まで連続的に番号付けされる。図2に示されるように、番号0のレーンはレーン番号0として参照され、番号1のレーンはレーン番号1として参照され、同様に、番号15のレーンはレーン番号15である。ここでのレーン数は、説明のためだけに利用される。実際の利用では、1,2,4,8又は32個のレーンが要求に従って設定されてもよく、それの実現原理は、16個のレーンの実現原理と同じである。   To make the overall process clearer and more explicit, the connection relationship between the two PCIe devices is simplified, as shown in FIG. 2, where the first PCIe device is the upstream PCIe device. Yes, lane negotiation with the second PCIe device is executed. The second PCIe device is a downstream PCIe device. The central processing unit CPU manages two PCIe devices. The link between the first PCIe device and the second PCIe device includes 16 serdes, each serdes is the lane of the link between the first PCIe device and the second PCIe device, and the 16 lanes are from left to right Are numbered sequentially from 0 to 15. As shown in FIG. 2, the lane number 0 is referred to as lane number 0, the lane number 1 is referred to as lane number 1, and similarly, the lane number 15 is lane number 15. The number of lanes here is used for explanation only. In actual use, 1, 2, 4, 8 or 32 lanes may be set according to the requirements, and its implementation principle is the same as that of 16 lanes.

メッセージ・シグナルド・インタラプト(MSI,message signal interrupt)機能が、第1PCIe装置に設定される。第1PCIe装置と第2PCIe装置との間に接続されるリンクの1以上のレーンにおいて故障が発生したと検出すると、第1PCIe装置は、MSIメッセージをCPUに報告し、ここで、MSIメッセージは第1PCIe装置のデバイスIDを含む。第1PCIe装置は、故障したレーンのレーン番号をレジスタに記憶する。第1PCIe装置は、第1PCIe装置と第2PCIe装置との間のリンクの現在レーン幅値Nを取得するため、PCIeプロトコルの再ネゴシエーション機構に従って第2PCIe装置とのレーン再ネゴシエーションを実行する。レーン再ネゴシエーション中、PCIeに規定されるレーンネゴシエーション機構に従って、第1PCIe装置は、ネゴシエーションが故障したレーンに対して実行されるまで、最小のレーン番号のレーンから開始してレーン番号の昇順に上方に第2PCIe装置とのリンクネゴシエーションを連続的に実行する。故障したレーンに対するネゴシエーションの実行は成功できないため、再ネゴシエーション処理は終了する。第1PCIe装置は更に、PCIeプロトコルに指定される2つのPCIe装置の間のリンクのレーン数に従って、リンクの現在レーン幅値Nを決定する。レーン番号は連続的である必要があり、リンクネゴシエーションは最小の番号のレーンから開始されるため、再ネゴシエーションにより取得されたレーン数は故障したレーンのレーン番号によって変わり、不確実性が存在する。故障したレーンのレーン番号が相対的に小さいとき、再ネゴシエーションにより取得されたレーン数もまた大きく減少し、すなわち、取得された現在レーン幅値Nは大きく減少し、これにより、2つのPCIe装置の間のデータ伝送の性能に重大な影響を与える。例えば、第1PCIe装置と第2PCIe装置との間のレーン番号3において故障が発生すると、第1PCIe装置は、PCIeプロトコルのネゴシエーション機構に従って、レーン番号0から開始して、第2PCIe装置とのリンクネゴシエーションを実行する。レーン番号0には故障は発生しておらず、従って、ネゴシエーションは成功し、ネゴシエーションはレーン番号1に進み、レーン番号1におけるネゴシエーションは成功し、ネゴシエーションはレーン番号2に進み、レーン番号2におけるネゴシエーションは成功し、ネゴシエーションはレーン番号3に進む。レーン番号において故障が発生するため、ネゴシエーションの実行は成功できない。さらに、レーン番号は連続的である必要があり、ネゴシエーションはレーン番号3において中断した後に継続できなくなる。この場合、3つのレーンのみ、すなわち、レーン番号0、レーン番号1及びレーン番号2が利用可能である。さらに、2つのPCIe装置の間のリンクはPCIeプロトコルに従って1,2,4,8,16又は32個のレーンを含みうるため、第1PCIe装置と第2PCIe装置との間のネゴシエーションにより取得される現在レーン幅値Nは2である。当初は、データ伝送を実行するのに利用可能な第1PCIe装置と第2PCIe装置との間のレーンは16個あるが、レーン番号3において故障が発生した後、再ネゴシエーションにより取得され、データ伝送を実行するのに利用可能であるレーンは2つしかなく、これは当初の1/8である。この場合、第1PCIe装置と第2PCIe装置との間のリンクのレーン幅は大きく減少し、データ伝送性能は明らかに低下する。第1PCIe装置と第2PCIe装置との間のレーン番号1において故障が発生した場合、同様に、レーン番号0しか利用可能でない。この場合、第1PCIe装置と第2PCIe装置との間の再ネゴシエーションにより取得される現在レーン幅値Nは1であり、当初の1/16であり、データ伝送性能は大きく低下する。   A message signaled interrupt (MSI) function is set in the first PCIe device. Upon detecting that a failure has occurred in one or more lanes of the link connected between the first PCIe device and the second PCIe device, the first PCIe device reports an MSI message to the CPU, where the MSI message is the first PCIe device. Contains the device ID of the device. The first PCIe device stores the lane number of the failed lane in the register. The first PCIe device performs lane renegotiation with the second PCIe device according to the renegotiation mechanism of the PCIe protocol in order to obtain the current lane width value N of the link between the first PCIe device and the second PCIe device. During lane renegotiation, according to the lane negotiation mechanism specified in PCIe, the first PCIe device starts from the lane with the lowest lane number and proceeds upward in ascending lane number until the negotiation is performed on the failed lane. The link negotiation with the second PCIe device is continuously executed. Since the negotiation for the failed lane cannot be successfully executed, the renegotiation process ends. The first PCIe device further determines the current lane width value N of the link according to the number of lanes of the link between the two PCIe devices specified in the PCIe protocol. Since the lane numbers need to be contiguous and link negotiation starts from the lowest numbered lane, the number of lanes acquired by renegotiation varies with the lane number of the failed lane, and there is uncertainty. When the lane number of the failed lane is relatively small, the number of lanes acquired by renegotiation is also greatly reduced, i.e., the acquired current lane width value N is greatly reduced, thereby causing the two PCIe devices to The data transmission performance between the two will be seriously affected. For example, if a failure occurs in lane number 3 between the first PCIe device and the second PCIe device, the first PCIe device starts from lane number 0 according to the negotiation mechanism of the PCIe protocol, and performs link negotiation with the second PCIe device. Run. No failure has occurred in lane number 0, so the negotiation is successful, the negotiation proceeds to lane number 1, the negotiation in lane number 1 is successful, the negotiation proceeds to lane number 2, and the negotiation in lane number 2 Succeeds and negotiation proceeds to lane number 3. Since a failure occurs in the lane number, the negotiation cannot be executed successfully. Furthermore, the lane numbers need to be sequential and the negotiation cannot continue after suspending at lane number 3. In this case, only three lanes, ie, lane number 0, lane number 1 and lane number 2 are available. In addition, since the link between two PCIe devices can contain 1, 2, 4, 8, 16 or 32 lanes according to the PCIe protocol, the current obtained by negotiation between the first PCIe device and the second PCIe device The lane width value N is 2. Initially, there are 16 lanes between the first PCIe device and the second PCIe device that can be used to perform data transmission, but after a failure occurs in lane number 3, it is obtained by renegotiation, and data transmission is performed. There are only two lanes available to run, which is 1/8 of the original. In this case, the lane width of the link between the first PCIe device and the second PCIe device is greatly reduced, and the data transmission performance is clearly reduced. Similarly, when a failure occurs in lane number 1 between the first PCIe device and the second PCIe device, only lane number 0 can be used. In this case, the current lane width value N acquired by renegotiation between the first PCIe device and the second PCIe device is 1, which is 1/16 of the initial value, and the data transmission performance is greatly deteriorated.

本発明の本実施例では、第1PCIe装置により報告されたMSIメッセージを受信した後に、CPUはインタラプト処理プロセスに入る。CPUは、MSIメッセージにおける第1PCIe装置のデバイスIDに従って、第1PCIe装置から第1PCIe装置の現在レーン幅値N及び第1PCIe装置のレーンネゴシエーション能力値Mを取得する。第1PCIe装置のレーンネゴシエーション能力値Mは、第1PCIe装置が第2PCIe装置とネゴシエートすることによって取得可能な最大レーン幅値を表す。第1PCIe装置によるネゴシエートにより取得可能な最大レーン幅値は、第1PCIe装置と第2PCIe装置との間のリンクのレーンの合計数である。本実施例では、第1PCIe装置と第2PCIe装置との間のリンクのレーンは16個あり、従って、第1PCIe装置が第2PCIe装置とネゴシエートすることにより取得可能な最大レーン幅値は16であり、第1PCIe装置のレーンネゴシエーション能力値Mは16である。第1PCIe装置の現在レーン幅値Nは、第1PCIe装置が第2PCIe装置と再ネゴシエートすることにより取得される現在レーン幅値Nである。例えば、上述されるように、第1PCIe装置及び第2PCIe装置を接続する16個のレーンがあり、第1PCIe装置と第2PCIe装置との間のレーン番号3において故障が発生すると、第1PCIe装置は、2である現在レーン幅値Nを取得するため、PCIeプロトコルの再ネゴシエーション機構に従って第2PCIe装置と再ネゴシエートする。   In this embodiment of the invention, after receiving the MSI message reported by the first PCIe device, the CPU enters an interrupt processing process. The CPU acquires the current lane width value N of the first PCIe device and the lane negotiation capability value M of the first PCIe device from the first PCIe device according to the device ID of the first PCIe device in the MSI message. The lane negotiation capability value M of the first PCIe device represents a maximum lane width value that can be acquired by the first PCIe device negotiating with the second PCIe device. The maximum lane width value that can be acquired by negotiation by the first PCIe device is the total number of lanes of the link between the first PCIe device and the second PCIe device. In this embodiment, there are 16 lanes of the link between the first PCIe device and the second PCIe device, and therefore the maximum lane width value that can be obtained by the first PCIe device negotiating with the second PCIe device is 16. The lane negotiation capability value M of the first PCIe device is 16. The current lane width value N of the first PCIe device is a current lane width value N acquired when the first PCIe device renegotiates with the second PCIe device. For example, as described above, there are 16 lanes connecting the first PCIe device and the second PCIe device, and when a failure occurs in lane number 3 between the first PCIe device and the second PCIe device, the first PCIe device In order to obtain a current lane width value N of 2, renegotiate with the second PCIe device according to the renegotiation mechanism of the PCIe protocol.

CPUは、第1PCIe装置の取得した現在レーン幅値Nとレーンネゴシエーション能力値Mとを比較する。本発明では、CPUは、2つのPCIe装置の間のリンクのレーン数の規則に従って、NとM/2とを比較する。   The CPU compares the current lane width value N acquired by the first PCIe device with the lane negotiation capability value M. In the present invention, the CPU compares N and M / 2 according to the rule of the number of lanes of links between two PCIe devices.

N≧M/2である場合、CPUは処理を実行しない。第1PCIe装置がCPUにより送信された指示を所定の時間内に受信しない場合、第1PCIe装置は、再ネゴシエーションにより取得されたN個のレーンを利用することによって、第2PCIe装置とのデータ伝送を実行し続ける。この場合、N≧M/2は、故障したレーンのレーン番号が(M/2−1)より大きいことを示しており、2つのPCIe装置の間のリンクは1,2,4,8,16又は32個のレーンを含みうるため、第1PCIe装置が第2PCIe装置と再ネゴシエートすることによって取得される現在レーン幅値NはM/2であり、第1PCIe装置は、再ネゴシエーションにより取得されるリンクレーンを利用することによって、第2PCIe装置とのデータ伝送を実行し続ける。   When N ≧ M / 2, the CPU does not execute the process. If the first PCIe device does not receive the instruction transmitted by the CPU within a predetermined time, the first PCIe device performs data transmission with the second PCIe device by using N lanes acquired by renegotiation. Keep doing. In this case, N ≧ M / 2 indicates that the lane number of the failed lane is greater than (M / 2-1), and the link between the two PCIe devices is 1, 2, 4, 8, 16 Alternatively, the current lane width value N obtained by the first PCIe device renegotiating with the second PCIe device is M / 2 since the first PCIe device may include 32 lanes, and the first PCIe device is a link obtained by the renegotiation. By using the lane, data transmission with the second PCIe device is continued.

N<M/2である場合、CPUは、第1PCIe装置と第2PCIe装置との間のリンクに対してレーン反転処理を実行するよう第1PCIe装置に指示する。N<M/2であるとき、第1PCIe装置が第2PCIe装置と再ネゴシエートすることにより取得される現在レーン幅は、トータルのリンク幅の半分未満であり、これは、故障したレーンのレーン番号がM/2未満であることを示す。レーン反転処理は、第1PCIe装置が第1PCIe装置と第2PCIe装置との間のリンクのレーンを反対方向に再番号付けすることを示す。第1PCIe装置と第2PCIe装置との間のリンクのレーンが当初は左から右に0から始まって15まで番号付けされている場合、第1PCIe装置がレーン反転処理を実行した後、第1PCIe装置と第2PCIe装置との間のリンクのレーンは右から左に0から15まで番号付けされ、逆の場合も同様である。例えば、本実施例では、第1PCIe装置がレーン反転処理を実行した後、元のレーン番号15のレーン番号は15から0に変更され、すなわち、元のレーン番号15はレーン番号0に変更され、元のレーン番号14のレーン番号は14から1に変更され、すなわち、元のレーン番号14はレーン番号1に変更され、残りは同様に導くことができる。レーン反転処理を実行するよう第1PCIe装置に指示する前に、CPUは更に、第1PCIe装置と第2PCIe装置との間のレーン番号0からレーン番号(M/2−1)を無効にしてもよい。レーン番号0からレーン番号(M/2−1)が無効にされた後、第1PCIe装置は、無効にされたレーンをもはや番号付けする必要はない。この場合、第1PCIe装置は、元のレーン番号M/2のレーン番号が(M/2−1)に変更されるまで、レーン反転処理を実行し、元のレーン番号Mのレーン番号を0に変更し、元のレーン番号(M−1)のレーン番号を1に変更するなど行う。 When N <M / 2, the CPU instructs the first PCIe device to execute the lane inversion process for the link between the first PCIe device and the second PCIe device. When N <M / 2, the current lane width obtained by the first PCIe device renegotiating with the second PCIe device is less than half of the total link width, because the lane number of the failed lane is Indicates less than M / 2. The lane inversion process indicates that the first PCIe device renumbers the lane of the link between the first PCIe device and the second PCIe device in the opposite direction. If the lane of the link between the first PCIe device and the second PCIe device is initially numbered from 0 to 15 starting from 0 to the left, the first PCIe device performs the lane inversion process and then the first PCIe device The lane of the link between the device and the second PCIe device is numbered from 0 to 15 from right to left, and vice versa. For example, in the present embodiment, after the first PCIe device performs the lane inversion process, the lane number of the original lane number 15 is changed from 15 to 0, that is, the original lane number 15 is changed to lane number 0, The lane number of the original lane number 14 is changed from 14 to 1, that is, the original lane number 14 is changed to lane number 1 and the rest can be similarly derived. Before instructing the first PCIe device to execute the lane inversion process, the CPU may further invalidate the lane number (M / 2-1) from lane number 0 between the first PCIe device and the second PCIe device. . After the lane number 0 to lane number (M / 2-1) is invalidated, the first PCIe device no longer needs to number the invalidated lanes. In this case, the first PCIe device executes lane inversion processing until the lane number of the original lane number M / 2 is changed to (M / 2-1), and the lane number of the original lane number M is set to 0. And the lane number of the original lane number (M-1) is changed to 1.

レーン反転処理を実行した後、第1PCIe装置は、新たな現在レーン幅値N’を取得するため、第2PCIe装置との新たな現在レーン幅値に対して再ネゴシエーションを実行する。第1PCIe装置が第2PCIe装置と現在レーン幅を再ネゴシエートするための方法は、上記の再ネゴシエーション方法と同じである。PCIeプロトコルの要求に従って、第1PCIe装置は、反転後の最小の番号のレーンから開始してネゴシエーションを実行し、レーン番号の昇順により上方に連続的に第2PCIe装置とのリンクネゴシエーションを再実行する。すなわち、第1PCIe装置は反転されたレーン番号0から始まるネゴシエーションを実行し、その後、ネゴシエーションがレーン番号(M/2−1)に対して実行されるまで、レーン番号1及びレーン番号2に対して逐次的にネゴシエーションを実行する。第1PCIe装置は、N<M/2の場合にはレーン反転処理を実行し、この場合、故障したレーンのレーン番号はM/2未満であり、すなわち、故障したレーンは、レーン番号0からレーン番号(M/2−1)までの1つであり、レーン番号0からレーン番号(M/2−1)までは無効とされるが、レーン番号M/2からレーン番号Mにおいて故障は発生せず、データ伝送が実行可能である。従って、第1PCIe装置がレーン反転を実行した後、新たなレーン番号0からレーン番号(M/2−1)において故障は発生せず、第1PCIe装置が第2PCIe装置と再ネゴシエートすることにより取得される新たな現在レーン幅値N’はM/2である。   After executing the lane inversion process, the first PCIe device executes renegotiation on the new current lane width value with the second PCIe device in order to obtain a new current lane width value N ′. The method for the first PCIe device to renegotiate the current lane width with the second PCIe device is the same as the above-described renegotiation method. In accordance with the request of the PCIe protocol, the first PCIe device executes the negotiation starting from the lowest-numbered lane after the inversion, and continuously re-executes the link negotiation with the second PCIe device upward in the ascending order of the lane numbers. That is, the first PCIe device performs the negotiation starting from the inverted lane number 0, and thereafter, for lane number 1 and lane number 2, until the negotiation is performed for the lane number (M / 2-1). Perform negotiations sequentially. The first PCIe device executes the lane inversion process when N <M / 2, and in this case, the lane number of the failed lane is less than M / 2, that is, the failed lane is lane number 0 to lane No. from lane number 0 to lane number (M / 2-1) is invalid, but no failure occurs from lane number M / 2 to lane number M. Instead, data transmission can be performed. Therefore, after the first PCIe device performs the lane inversion, a failure does not occur in the new lane number 0 to lane number (M / 2-1), and the first PCIe device is acquired by renegotiating with the second PCIe device. The new current lane width value N ′ is M / 2.

PCIe装置のレーンにおいて故障が発生すると、本発明の方策を利用することは、再ネゴシエーションにより取得されるレーン幅が、故障したレーンのレーン番号に関わらず、元のレーン幅の1/2であることを保証することが可能であり、故障したレーンのレーン番号が相対的に小さいとき、PCIe装置のレーン値が大きく減少し、これにより、PCIe装置の間のデータ伝送速度が影響を受けることを回避する。   When a failure occurs in a lane of a PCIe device, using the measures of the present invention, the lane width obtained by renegotiation is 1/2 of the original lane width regardless of the lane number of the failed lane. When the lane number of the failed lane is relatively small, the lane value of the PCIe device is greatly reduced, which affects the data transmission rate between the PCIe devices. To avoid.

本発明の技術的方策が、特定の具体例を利用することによって以下において詳細に記載及び説明される。PCIe装置の間の接続関係が図3に示され、方法の処理については、図4を参照されたい。   The technical measures of the present invention are described and explained in detail below by utilizing specific embodiments. The connection relationship between the PCIe devices is shown in FIG. 3, and see FIG. 4 for the processing of the method.

以下に説明されるPCIe装置は、PCIeプロトコルを利用することによって他の装置と通信する装置を参照する。図3に示されるように、ルートコンプレクス(root complex)装置は、PCIeプロトコルを利用することによって下流のPCIe装置と通信するPCIe装置、すなわち、図2に示される第1PCIe装置などの上流のPCIe装置を表す。PCIe装置1(PCIe apparatus 1)は、PCIeプロトコルを利用することによって上流のPCIe装置と通信するPCIe装置、すなわち、図2に示される第2PCIe装置などの下流のPCIe装置を表す。さらに、PCIe装置は、物理的に独立した装置であってもよいし、又は、デバイスに統合されたチップであってもよく、図1に示されるPCIe装置に限定されるものでない。   A PCIe device described below refers to a device that communicates with other devices by utilizing the PCIe protocol. As shown in FIG. 3, a root complex device is a PCIe device that communicates with a downstream PCIe device by utilizing the PCIe protocol, ie, an upstream PCIe device such as the first PCIe device shown in FIG. Represents. The PCIe device 1 (PCIe apparatus 1) represents a PCIe device that communicates with an upstream PCIe device by using the PCIe protocol, that is, a downstream PCIe device such as the second PCIe device shown in FIG. Further, the PCIe device may be a physically independent device, or may be a chip integrated into the device, and is not limited to the PCIe device shown in FIG.

root complexは、下流のポートを利用してデータ伝送を実現することによって、PCIe装置1の上流のポートに接続される。本実施例は、root complexとPCIe装置1との間に16個のserdesがある具体例を利用することによって説明される。これら16個のserdesは、root complexとPCIe装置1との間のリンクを形成し、1つのserdesは1つのレーンとして参照される。すなわち、root complexとPCIe装置1との間のレーン数は16であり、すなわち、X16である。さらに、16個のレーンは、左から右に0から15まで連続的に番号付けされる。この場合、root complexとPCIe装置1との間の最大レーン幅値は16である。root complexのレーンネゴシエーション能力値Mは、root complexの最大レーン幅値に等しく、root complexの最大レーン幅値は、root complexによるネゴシエートにより取得可能なroot complexとPCIe装置1との間の最大レーン数を表す。本実施例では、root complexのレーンネゴシエーション能力値Mは16に等しい。root complexは、root complexのレーンネゴシエーション能力値Mをレジスタに記憶する。PCIeプロトコルの規定に従って、2つのPCIe装置の間のリンクは1,2,4,8,16又は32個のレーンを含むものであってもよい。本実施例は、具体例として16個のレーンを利用することによって説明される。リンクが1,2,4,8又は32個のレーンを有するとき、その実現方式は16個のレーンの実現方式と同じである。   The root complex is connected to the upstream port of the PCIe device 1 by realizing data transmission using the downstream port. The present embodiment will be described by using a specific example in which there are 16 serdes between the root complex and the PCIe device 1. These 16 serdes form a link between the root complex and the PCIe device 1, and one serdes is referred to as one lane. That is, the number of lanes between the root complex and the PCIe device 1 is 16, that is, X16. In addition, the 16 lanes are numbered consecutively from 0 to 15 from left to right. In this case, the maximum lane width value between the root complex and the PCIe device 1 is 16. The lane negotiation capability value M of the root complex is equal to the maximum lane width value of the root complex, and the maximum lane width value of the root complex is the maximum number of lanes between the root complex and the PCIe device 1 that can be obtained by negotiation by the root complex. Represents. In the present embodiment, the lane negotiation capability value M of the root complex is equal to 16. The root complex stores the lane negotiation capability value M of the root complex in a register. The link between two PCIe devices may include 1, 2, 4, 8, 16, or 32 lanes, as defined by the PCIe protocol. This embodiment will be described by using 16 lanes as a specific example. When a link has 1, 2, 4, 8 or 32 lanes, its implementation is the same as that of 16 lanes.

root complexは更に、他のPCIe装置に接続されてもよい。root complexが複数のPCIe装置に接続されるとき、図1に示されるように、root complexは更にスイッチに接続されてもよく、root complexとPCIe装置との間のレーンネゴシエーション能力値は、互いを区別するため、M1,M2及びM3として別々に記録されてもよい。以下の方法では、root complexが1つのPCIe装置に接続される具体例を利用することによって説明が与えられる。root complexが複数のPCIe装置に接続されるとき、root complexとPCIe装置の何れかとの間のレーンにおける故障を処理する方法は、本実施例におけるものと同様である。   The root complex may also be connected to other PCIe devices. When the root complex is connected to multiple PCIe devices, as shown in FIG. 1, the root complex may be further connected to a switch, and the lane negotiation capability value between the root complex and the PCIe device For distinction, they may be recorded separately as M1, M2 and M3. In the following method, an explanation is given by using a specific example in which a root complex is connected to one PCIe device. When the root complex is connected to a plurality of PCIe devices, the method for handling a failure in the lane between the root complex and one of the PCIe devices is the same as in the present embodiment.

メッセージ・シグナルド・インタラプト(MSI,message signal interrupt)機能が、root complexに設定される。root complexは、PCIe装置1に接続されるレーンをモニタリングし、root complexとPCIe装置1との間のレーン幅が変更されたことを検出すると、root complexは、MSIメッセージをCPUに報告する。root complexがPCIe装置1とのデータ伝送を実行すると、2つの装置の間に接続される全てのレーン(すなわち、全てのserdes)が利用される。その何れか1以上のレーンにおいて故障が発生すると、root complexは、root complexとPCIe装置1との間のレーン幅が変更されたことを検出し、root complexは、MSIメッセージを生成し、MSIメッセージをCPUに報告する。MSIメッセージは、root complexのポートのB:D:F(バス番号:デバイス番号:ファンクション番号)などのroot complexのデバイスIDを含む。root complexは、故障したレーンのレーン番号をレジスタに記憶する。本実施例では、root complexとPCIe装置1との間のレーン番号5において故障が発生し、root complexは、レーン番号5において故障が発生したと検出し、故障したレーンのレーン番号情報をレジスタに記憶する。   A message signaled interrupt (MSI, message signal interrupt) function is set to the root complex. The root complex monitors the lane connected to the PCIe device 1 and detects that the lane width between the root complex and the PCIe device 1 has changed, and the root complex reports an MSI message to the CPU. When the root complex executes data transmission with the PCIe device 1, all lanes connected between the two devices (that is, all serdes) are used. If a failure occurs in any one or more of the lanes, the root complex detects that the lane width between the root complex and the PCIe device 1 has been changed, and the root complex generates an MSI message and generates an MSI message. To the CPU. The MSI message includes a root complex device ID such as B: D: F (bus number: device number: function number) of the root complex port. The root complex stores the lane number of the failed lane in a register. In the present embodiment, a failure occurs in lane number 5 between the root complex and the PCIe device 1, and the root complex detects that a failure has occurred in lane number 5, and stores the lane number information of the failed lane in a register. Remember.

MSIメッセージをCPUに報告した後、root complexは、現在レーン幅値Nを取得するため、PCIe装置1と再ネゴシエートする。PCIeプロトコルの規定によると、PCIe装置の間のリンクのレーンネゴシエーションは、故障が発生したレーンに対してネゴシエーションが実行されるまで、最小の番号のレーンから開始される。このようにして、ネゴシエーションの実行が成功したレーンのレーン番号は依然として連続的であり、データを送信するのに利用可能なレーン数が取得されてもよい。本実施例では、root complexは、レーン番号0から始まってPCIe装置1とネゴシエートし、レーン番号0に対して実行されたネゴシエーションが成功した後(すなわち、レーン番号0が正常であり、データを送信するのに利用可能である)、それから、レーン番号0に対してネゴシエーションが実行される。残りは同様に導くことができる。ネゴシエーションがレーン番号5に対して実行されると、レーン番号5において故障が発生しているため、レーン番号5に対して実行されるネゴシエーションは不成功であり、root complexはPCIe装置1とのネゴシエートを止める。ルートコンプレクスとPCIe装置1との間のレーン番号0からレーン番号4までに対するネゴシエーションの実行は成功し、すなわち、root complexとPCIe装置1との間の5つのレーンに対するネゴシエーションの実行は成功する。このとき、2つのPCIe装置の間のレーンが1,2,4,8,16又は32個のレーンを含みうるPCIeプロトコルの規定によると、root complexとPCIe装置1との間の現在レーン幅値Nが4であると判断される。root complexは、再ネゴシエーションにより取得された現在レーン幅値Nをレジスタに記憶する。   After reporting the MSI message to the CPU, the root complex renegotiates with the PCIe device 1 to obtain the current lane width value N. According to the specification of the PCIe protocol, the lane negotiation of the link between the PCIe devices is started from the lowest-numbered lane until the negotiation is performed on the lane where the failure has occurred. In this way, the lane numbers of the lanes that have been successfully negotiated are still sequential, and the number of lanes available for transmitting data may be obtained. In this embodiment, the root complex starts with lane number 0 and negotiates with the PCIe device 1, and after the negotiation executed for lane number 0 is successful (that is, lane number 0 is normal and data is transmitted). Then, negotiation is performed for lane number 0. The rest can be guided as well. When the negotiation is executed for the lane number 5, since a failure has occurred in the lane number 5, the negotiation executed for the lane number 5 is unsuccessful, and the root complex is negotiated with the PCIe device 1. Stop. Negotiations for lane number 0 to lane number 4 between the root complex and the PCIe device 1 are successful, that is, negotiations for five lanes between the root complex and the PCIe device 1 are successful. At this time, the current lane width value between the root complex and the PCIe device 1 according to the specification of the PCIe protocol in which the lane between the two PCIe devices may include 1, 2, 4, 8, 16, or 32 lanes. It is determined that N is 4. The root complex stores the current lane width value N acquired by renegotiation in a register.

root complexにより報告されたMSIメッセージを受信した後に、CPUは、インタラプト処理プロセスに入る。CPUは、MSIメッセージからroot complexのIDを抽出し、それから、取得したIDに従ってroot complexのレジスタからroot complexの現在レーン幅値N及びレーンネゴシエーション能力値Mを読む。root complexの現在レーン幅値Nは、root complexがroot complexとPCIe装置1との間のレーンにおいて故障が発生したことを検出した後に、PCIe装置1との再ネゴシエートにより取得される。本実施例では、root complexとPCIe装置1との間のserdesレーン番号5において故障が発生した後、再ネゴシエーションにより取得された現在レーン幅値Nは4である。具体的なネゴシエーション方法は前のパラグラフで説明され、ここでは個別に再説明されない。さらに、上述されるように、本実施例では、root complexとPCIe装置1との間には16個のレーンがあり、従って、root complexのレーンネゴシエーション能力値Mは16である。   After receiving the MSI message reported by the root complex, the CPU enters an interrupt processing process. The CPU extracts the root complex ID from the MSI message, and then reads the current lane width value N and lane negotiation capability value M of the root complex from the root complex register according to the acquired ID. The current lane width value N of the root complex is obtained by renegotiation with the PCIe device 1 after the root complex detects that a failure has occurred in the lane between the root complex and the PCIe device 1. In the present embodiment, the current lane width value N acquired by renegotiation is 4 after a failure has occurred in the serdes lane number 5 between the root complex and the PCIe device 1. The specific negotiation method is described in the previous paragraph and is not individually re-explained here. Furthermore, as described above, in this embodiment, there are 16 lanes between the root complex and the PCIe device 1, and thus the lane negotiation capability value M of the root complex is 16.

CPUは、root complexの現在レーン幅値Nとroot complexのレーンネゴシエーション能力値Mとを比較する。本発明では、CPUは、2つのPCIe装置の間のリンクのレーン数の規則に従ってNとM/2とを比較する。   The CPU compares the current lane width value N of the root complex with the lane negotiation capability value M of the root complex. In the present invention, the CPU compares N and M / 2 according to the rule for the number of lanes of links between two PCIe devices.

N≧M/2であるとき、root complexがPCIe装置1とネゴシエートすることによって取得される現在レーン幅値は最大レーン幅値の半分であり、この場合、CPUは処理を実行しない。root complexがCPUにより送信された指示を所定の時間内に受信しなかった場合、root complexは、再ネゴシエーションにより取得されるN個のリンクレーンを利用することによって、PCIe装置1つのデータ伝送を実行し続ける。   When N ≧ M / 2, the current lane width value obtained by the root complex negotiating with the PCIe device 1 is half of the maximum lane width value, and in this case, the CPU does not execute processing. If the root complex does not receive the instruction sent by the CPU within a predetermined time, the root complex performs data transmission for one PCIe device by using N link lanes acquired by renegotiation. Keep doing.

N<M/2であるとき、root complexがPCIe装置1とネゴシエートすることによって取得される現在レーン幅値は、最大レーン幅値の半分未満であり、この場合、root complexとPCIe装置1との間のリンクの幅は大きく減少する。この場合、CPUは、root complexとPCIe装置1との間のレーン番号0からレーン番号(M/2−1)までを無効にし、root complexにレーン反転処理を開始するよう指示する。レーン反転処理は、PCIe装置がPCIe装置と下流のPCIe装置との間のリンクのレーンを反対方向に再び番号付けする。レーン反転処理を開始した後、root complexは、root complexとPCIe装置1との間のレーンを反対方向に再び番号付けする。root complexとPCIe装置1との間のレーンは、左から右に昇順に連続的に番号付けされる。レーン反転処理を開始した後、root complexは、右から左に昇順にroot complexとPCIe装置1との間のレーンを連続的に番号付けする。具体的な番号付け処理の関連する説明は、上記に提供され、ここでは個別に再説明されない。元のレーン番号0からレーン番号(M/2−1)までは無効にされるため、root complexは、レーン反転処理を開始した後に無効にされたレーンを番号付けしない。このように、root complexは、右から左に昇順に0から始めて(M/2−1)までroot complexとPCIe装置1との間のレーンを連続的に番号付けする。   When N <M / 2, the current lane width value obtained by the root complex negotiating with the PCIe device 1 is less than half of the maximum lane width value. In this case, the root complex and the PCIe device 1 The width of the link in between is greatly reduced. In this case, the CPU invalidates the lane number 0 to the lane number (M / 2-1) between the root complex and the PCIe device 1 and instructs the root complex to start the lane inversion process. In the lane reversal process, the PCIe device renumbers the lanes of the link between the PCIe device and the downstream PCIe device in the opposite direction. After starting the lane inversion process, the root complex renumbers the lanes between the root complex and the PCIe device 1 in the opposite direction. Lanes between the root complex and the PCIe device 1 are sequentially numbered from left to right in ascending order. After starting the lane inversion process, the root complex sequentially numbers the lanes between the root complex and the PCIe device 1 in ascending order from right to left. A related description of the specific numbering process is provided above and will not be reintroduced here individually. Since the original lane number 0 to the lane number (M / 2-1) are invalidated, the root complex does not number invalidated lanes after starting the lane inversion process. In this way, the root complex sequentially numbers the lanes between the root complex and the PCIe device 1 starting from 0 in ascending order from right to left to (M / 2-1).

レーン反転処理を終了した後、root complexは、それからroot complexとPCIe装置との間のリンクの新たな現在レーン幅値N’を取得するため、PCIe装置1とのレーン幅ネゴシエーションを実行する。PCIeプロトコルの規則によると、ネゴシエーションが故障が発生したレーンに対して実行されるまで、PCIe装置の間のネゴシエーションが最小番号のレーンから開始される。レーン反転処理を終了した後、root complexは、故障が発生したレーンに対してネゴシエーションが実行されるまで、新たなレーン番号0から始まるネゴシエーションを実行し、通信に利用可能なレーン数を決定する。root complexは、その後、PCIeプロトコルに規定される、2つのPCIe装置の間のリンクのレーン数の要件に従って新たな現在レーン幅値N’を決定する。root complexは、ネゴシエーションにより取得される新たなN’の個数のレーンを利用することによって、PCIe装置1とのデータ伝送を実行し続ける。   After completing the lane inversion process, the root complex then performs a lane width negotiation with the PCIe device 1 to obtain a new current lane width value N ′ of the link between the root complex and the PCIe device. According to the rules of the PCIe protocol, negotiations between PCIe devices are started from the lowest numbered lane until negotiation is performed on the failed lane. After completing the lane inversion process, the root complex executes a negotiation starting from a new lane number 0 until the negotiation is performed on the lane in which the failure has occurred, and determines the number of lanes available for communication. The root complex then determines a new current lane width value N 'according to the requirement for the number of lanes of the link between two PCIe devices as defined in the PCIe protocol. The root complex continues to execute data transmission with the PCIe device 1 by using the new N ′ number of lanes acquired by the negotiation.

本実施例では、レーン番号5において故障が発生し、Nは4であり、Mは16であり、4<8(N<M/2)である。CPUは、root complexとPCIe装置1との間のレーン番号0からレーン番号(M/2−1)(すなわち、7番)までを無効にし、レーン反転処理を実行するようroot complexに指示する。当該指示を受信した後、root complexは、root complexとPCIe装置1との間のレーンを反対方向に再び番号付けする。レーン番号15のレーン番号は15から0に変更され、すなわち、元のレーン番号15はレーン番号0に変更され、レーン番号14のレーン番号は14から1に変更され、すなわち、元のレーン番号14はレーン番号1に変更され、残りは同様に導くことができる。レーン番号0からレーン番号(M/2−1)(すなわち、7番)までが無効にされるため、レーン反転処理は、元のレーン番号M/2(すなわち、8番)がレーン番号(M/2−1)(すなわち、7番)に変更された後に終了される。レーン反転を終了した後、root complexはPCIe装置1とのレーン再ネゴシエーションを実行し、新たな反転されたレーン番号0から始まるネゴシエーションが実行され、レーン番号に従って上方にネゴシエーションが連続的に実行される。データ伝送は、故障が発生しない元のレーン番号8から元のレーン番号15までに対して実行可能であるため、root complexがPCIe装置1とのレーン再ネゴシエーションを再び実行するとき、8つのレーンに対してネゴシエーションの実行が成功する。さらに、PCIeプロトコルは、レーン幅が1,2,4,8,16及び32の1つであると規定しているため、PCIe装置1とのルートコンプレクスによる再ネゴシエートにより取得される新たな現在レーン幅値N’は8である。   In this embodiment, a failure occurs in lane number 5, N is 4, M is 16, and 4 <8 (N <M / 2). The CPU invalidates the lane number 0 to the lane number (M / 2-1) (that is, No. 7) between the root complex and the PCIe device 1 and instructs the root complex to execute the lane inversion process. After receiving the instruction, the root complex renumbers the lanes between the root complex and the PCIe device 1 in the opposite direction. The lane number of lane number 15 is changed from 15 to 0, that is, the original lane number 15 is changed to lane number 0, and the lane number of lane number 14 is changed from 14 to 1, that is, the original lane number 14 Is changed to lane number 1 and the rest can be led in the same way. Since the lane number 0 to the lane number (M / 2-1) (ie, No. 7) are invalidated, the lane inversion processing is performed so that the original lane number M / 2 (ie, No. 8) / 2-1) (i.e., No. 7) and then finished. After completing the lane inversion, the root complex executes the lane renegotiation with the PCIe device 1, the negotiation starting from the newly inverted lane number 0 is executed, and the negotiation is continuously executed upward according to the lane number. . Since the data transmission can be performed for the original lane number 8 to the original lane number 15 in which no failure occurs, when the root complex executes the lane renegotiation with the PCIe device 1 again, the data transmission is performed in eight lanes. The negotiation is successfully executed. Further, since the PCIe protocol stipulates that the lane width is one of 1, 2, 4, 8, 16 and 32, a new current lane acquired by renegotiation by the route complex with the PCIe device 1 The width value N ′ is 8.

root complexは、root complexとPCIe装置1との間の新たな反転されたレーン番号0から新たな反転されたレーン番号7(すなわち、8番)までを利用することによって、データ伝送を実行し続ける。具体的なデータ伝送処理は、既存の実現方式と同様であり、ここでは個別に再説明されない。   The root complex continues to perform data transmission by utilizing the new inverted lane number 0 to the new inverted lane number 7 (ie, number 8) between the root complex and the PCIe device 1. . The specific data transmission process is the same as that of the existing implementation method, and is not described again here.

このようにして、2つのPCIe装置の間のリンクのレーンにおいて故障が発生した場合、本発明において提供される方策を利用することは、PCIe装置のレーンネゴシエーション能力値の1/2である個数のレーンが、故障したレーンのレーン番号に関係なく利用可能であることを保証でき、PCIe装置の間のリンクの伝送速度及び性能を最大程度まで保証する。   Thus, in the event of a failure in the lane of the link between two PCIe devices, utilizing the measures provided in the present invention will reduce the number of lane negotiation capability values of ½ of the PCIe device. The lane can be guaranteed to be usable regardless of the lane number of the failed lane, and the transmission speed and performance of the link between the PCIe devices are guaranteed to the maximum extent.

本発明は更に、PCIe装置のリンク故障を処理するシステムを提供し、システムの構成は図2に示される。システムは、中央処理ユニットCPU201、第1PCIe装置203及び第2PCIe装置205を有する。第1PCIe装置及び第2PCIe装置は、複数のシリアライザ/デ・シリアライザ(serdes,Serializer/De−Serializer)回路を利用することによって接続される。複数のserdesは、第1PCIe装置と第2PCIe装置との間でデータを伝送するのに利用されるリンク204を構成し、各serdesはレーンであり、レーンはある順序に連続的に番号付けされる。2つのPCIe装置の間には1,2,4,8,16又は32個のserdesがあってもよく、本実施例は具体例として16個のserdesを利用することによって説明される。すなわち、第1PCIe装置203と第2PCIe装置205との間には16個のserdes、すなわち、16個のレーンがあり、これら16個のレーンは左から右に0から始まって15まで連続的且つ順次的に番号付けされる。番号0のレーンはレーン番号0であり、同様に、番号15のレーンはレーン番号15である。serdesは、既存のserdes構造を利用し、既存の機能をサポートし、ここでは個別に再説明されない。本発明の本実施例では、いくつのserdesがリンクにあっても、その実現原理は同様である。   The present invention further provides a system for handling link failures of PCIe devices, the system configuration being shown in FIG. The system includes a central processing unit CPU 201, a first PCIe device 203, and a second PCIe device 205. The first PCIe device and the second PCIe device are connected by using a plurality of serializer / deserializer (serdes, Serializer / De-Serializer) circuits. The plurality of serdes constitute a link 204 used to transmit data between the first and second PCIe devices, each serdes is a lane, and the lanes are sequentially numbered in a certain order. . There may be 1, 2, 4, 8, 16 or 32 serdes between two PCIe devices, and this embodiment will be described by using 16 serdes as a specific example. That is, there are 16 serdes, that is, 16 lanes between the first PCIe device 203 and the second PCIe device 205, and these 16 lanes are sequentially and sequentially from left to right starting from 0 to 15. Numbered. The lane number 0 is lane number 0. Similarly, the lane number 15 is lane number 15. serdes uses the existing serdes structure and supports existing functionality and is not individually re-described here. In this embodiment of the present invention, the realization principle is the same regardless of how many serdes are in the link.

メッセージ・シグナルド・インタラプト(MSI、message signal interrupt)機能が、第1PCIe装置203に設定される。第2PCIe装置205に接続されるリンク204の1以上のレーンにおいて故障が発生したと検出すると、第1PCIe装置203は、MSIメッセージをCPU201に報告し、ここで、MSIメッセージは第1PCIe装置203のデバイスIDを含む。   A message signaled interrupt (MSI) function is set in the first PCIe device 203. When detecting that a failure has occurred in one or more lanes of the link 204 connected to the second PCIe device 205, the first PCIe device 203 reports an MSI message to the CPU 201, where the MSI message is the device of the first PCIe device 203. Includes ID.

第1PCIe装置203は、第1PCIe装置203と第2PCIe装置205との間のリンク204の現在レーン幅値Nを取得するため、PCIeプロトコルの再ネゴシエーション機構に従って第2PCIe装置205とレーン再ネゴシエーションを実行する。レーン再ネゴシエーション中、PCIeプロトコルに規定されるレーンネゴシエーション機構によると、第1PCIe装置203は、故障したレーンに対してネゴシエーションが実行されるまで、最小のレーン番号のレーンから始めてレーン番号の昇順により上方に第2PCIe装置205とのリンクネゴシエーションを再び連続的に実行する。故障したレーンに対してネゴシエーションの実行が成功できないため、再ネゴシエーション処理は終了される。第1PCIe装置203は更に、PCIeプロトコルに規定される2つのPCIe装置の間のリンクのレーン数に従って、リンクの現在レーン幅値Nを決定する。   The first PCIe device 203 performs lane renegotiation with the second PCIe device 205 according to the PCIe protocol renegotiation mechanism in order to obtain the current lane width value N of the link 204 between the first PCIe device 203 and the second PCIe device 205. . During lane renegotiation, according to the lane negotiation mechanism specified in the PCIe protocol, the first PCIe device 203 starts from the lane with the lowest lane number and proceeds upward in ascending lane number until the failed lane is negotiated. The link negotiation with the second PCIe device 205 is continuously executed again. Since the negotiation cannot be successfully executed for the failed lane, the renegotiation process is terminated. The first PCIe device 203 further determines the current lane width value N of the link according to the number of lanes of the link between the two PCIe devices specified by the PCIe protocol.

レーン番号は連続している必要があり、リンクネゴシエーションは最小番号のレーンから開始されるため、再ネゴシエーションにより取得されるレーン数は故障したレーンのレーン番号によって変わり、不確実性が存在する。故障したレーンのレーン番号が相対的に小さいとき、再ネゴシエーションにより取得されるレーン数はまた大きく減少し、すなわち、取得された現在レーン幅値Nは大きく減少し、従って、2つのPCIe装置の間のデータ伝送の性能に重大な影響を与える。   Since the lane numbers need to be consecutive and link negotiation starts from the lane with the smallest number, the number of lanes acquired by renegotiation varies depending on the lane number of the failed lane, and there is uncertainty. When the lane number of the failed lane is relatively small, the number of lanes acquired by renegotiation is also greatly reduced, i.e., the acquired current lane width value N is greatly reduced, and therefore between two PCIe devices. Will significantly affect the performance of data transmission.

本発明の本実施例では、第1PCIe装置203により報告されたMSIメッセージを受信した後に、CPU201はインタラプト処理プロセスに入る。CPU201は、MSIメッセージにおける第1PCIe装置203のデバイスIDに従って、第1PCIe装置203から第1PCIe装置203の現在レーン幅値N及び第1PCIe装置203のレーンネゴシエーション能力値Mを取得する。第1PCIe装置203のレーンネゴシエーション能力値Mは、第1PCIe装置203が第2PCIe装置205とネゴシエートすることにより取得可能な最大レーン幅値、すなわち、第1PCIe装置203と第2PCIe装置205との間のレーンの合計数を表す。本実施例では、第1PCIe装置203と第2PCIe装置205との間に16個のレーンがあり、従って、第1PCIe装置203が第2PCIe装置205とネゴシエートすることにより取得可能な最大レーン幅値は16であり、第1PCIe装置203のレーンネゴシエーション能力値Mは16である。第1PCIe装置203の現在レーン幅値Nは、第1PCIe装置203が第2PCIe装置205と再ネゴシエートすることにより取得される現在レーン幅値Nである。   In this embodiment of the invention, after receiving the MSI message reported by the first PCIe device 203, the CPU 201 enters an interrupt processing process. The CPU 201 acquires the current lane width value N of the first PCIe device 203 and the lane negotiation capability value M of the first PCIe device 203 from the first PCIe device 203 according to the device ID of the first PCIe device 203 in the MSI message. The lane negotiation capability value M of the first PCIe device 203 is the maximum lane width value that can be acquired by the first PCIe device 203 negotiating with the second PCIe device 205, that is, the lane between the first PCIe device 203 and the second PCIe device 205. Represents the total number of In the present embodiment, there are 16 lanes between the first PCIe device 203 and the second PCIe device 205. Therefore, the maximum lane width value that can be acquired by the first PCIe device 203 negotiating with the second PCIe device 205 is 16 The lane negotiation capability value M of the first PCIe device 203 is 16. The current lane width value N of the first PCIe device 203 is the current lane width value N acquired when the first PCIe device 203 renegotiates with the second PCIe device 205.

CPU201は、第1PCIe装置203の取得された現在レーン幅値Nとレーンネゴシエーション能力値Mとを比較する。本発明では、CPU201は、2つのPCIe装置の間のリンクのレーン数の規則に従って、NとM/2とを比較する。   The CPU 201 compares the acquired current lane width value N and the lane negotiation capability value M of the first PCIe device 203. In the present invention, the CPU 201 compares N and M / 2 according to the rule for the number of lanes of links between two PCIe devices.

N≧M/2である場合、第1PCIe装置203は、再ネゴシエーションにより取得されるリンクレーンを利用することによって、第2PCIe装置205とのデータ伝送を実行し続ける。この場合、N≧M/2は、故障したレーンのレーン番号は(M/2−1)より大きいことを示し、2つのPCIe装置の間のリンクが1,2,4,8,16又は32個のレーンを含みうるため、第1PCIe装置203が第2PCIe装置205と再ネゴシエートすることによって取得される現在レーン幅値NはM/2であり、第1PCIe装置203は、再ネゴシエーションにより取得されるリンクレーンを利用することによって、第2PCIe装置205とのデータ伝送を実行し続ける。CPU201は、このような状態においては処理を実行しない。第1PCIe装置203は期間を設定してもよく、第1PCIe装置203が設定された期間内にCPU201の指示を受信しなかった場合、第1PCIe装置203は、再ネゴシエーションにより取得されるリンクレーンを利用することによって、第2PCIe装置205とのデータ伝送を実行し続ける。   When N ≧ M / 2, the first PCIe device 203 continues to execute data transmission with the second PCIe device 205 by using the link lane acquired by renegotiation. In this case, N ≧ M / 2 indicates that the lane number of the failed lane is greater than (M / 2-1), and the link between the two PCIe devices is 1, 2, 4, 8, 16, or 32. Since the first PCIe device 203 re-negotiates with the second PCIe device 205, the current lane width value N obtained by re-negotiation with the second PCIe device 205 is M / 2, and the first PCIe device 203 is acquired by renegotiation. By using the link lane, data transmission with the second PCIe device 205 is continued. The CPU 201 does not execute processing in such a state. The first PCIe device 203 may set a period, and if the first PCIe device 203 does not receive an instruction from the CPU 201 within the set period, the first PCIe device 203 uses a link lane acquired by renegotiation. As a result, the data transmission with the second PCIe device 205 is continued.

N<M/2である場合、CPU201は、第1PCIe装置203にレーン反転処理を実行するよう指示する。N<M/2であるとき、第1PCIe装置203が第2PCIe装置205と再ネゴシエートすることによって取得される現在レーン幅は、合計のリンク幅の半分未満であり、故障したレーンのレーン番号がM/2未満であることを示す。レーン反転処理は、第1PCIe装置203が第1PCIe装置203と第2PCIe装置205との間のレーンを反対方向に再番号付けする。例えば、本実施例では、第1PCIe装置203と第2PCIe装置205との間のレーンは、当初は左から右に0から始まって15まで番号付けされる。第1PCIe装置203がレーン反転処理を実行した後、元のレーン番号15のレーン番号は15から0に変更され、すなわち、元のレーン番号15はレーン番号0に変更され、元のレーン番号14のレーン番号は14から1に変更され、すなわち、元のレーン番号14はレーン番号1に変更され、残りは同様に導くことができる。レーン反転処理を実行するよう第1PCIe装置に指示する前に、CPU201は更に、第1PCIe装置と第2PCIe装置との間のレーン番号0からレーン番号(M/2−1)までを無効にしてもよい。レーン番号0からレーン番号(M/2−1)までが無効にされた後、第1PCIe装置203は、元のレーン番号Mのレーン番号を0に変更し、元のレーン番号(M−1)のレーン番号を1に変更するなど、元のレーン番号M/2のレーン番号が(M/2−1)に変更されるまで、レーン反転処理を実行する。レーン反転処理を実行した後、第1PCIe装置203は、新たな現在レーン幅値N’を取得するため第2PCIe装置205による新たな現在レーン幅に関する再ネゴシエーションを実行する。第1PCIe装置203が第2PCIe装置205と現在レーン幅を再ネゴシエートする方法は、上記の再ネゴシエーション方法と同じである。PCIeプロトコルの要求に従って、第1PCIe装置203は、反転後に最小番号のレーンから始めてネゴシエーションを実行し、レーン番号の昇順に上方に連続的に第2PCIe装置205とのリンクネゴシエーションを再実行する。すなわち、第1PCIe装置203は、反転されたレーン番号0から始まるネゴシエーションを実行し、その後、ネゴシエーションがレーン番号(M/2−1)に対して実行されるまで、レーン番号1及びレーン番号2に対して逐次的にネゴシエーションを実行する。第1PCIe装置203は、N<M/2の場合にレーン反転処理を実行し、この場合、故障したレーンのレーン番号はM/2未満であり、すなわち、故障したレーンはレーン番号0からレーン番号(M/2−1)までの1つであり、レーン番号0からレーン番号(M/2−1)までが無効とされるが、レーン番号M/2からレーン番号Mまでは故障が発生しておらず、データ伝送が実行可能である。その後、第1PCIe装置203がレーン反転を実行した後、新たなレーン番号0からレーン番号(M/2−1)までにおいて故障は発生せず、第1PCIe装置203が第2PCIe装置205と再ネゴシエートすることによって取得された新たな現在レーン幅値N’はM/2である。第1PCIe装置203は、再ネゴシエーションにより取得される新たなレーンリンクを利用することによって、第2PCIe装置205とのデータ伝送を実行し続ける。   When N <M / 2, the CPU 201 instructs the first PCIe device 203 to execute lane inversion processing. When N <M / 2, the current lane width obtained by the first PCIe device 203 renegotiating with the second PCIe device 205 is less than half of the total link width, and the lane number of the failed lane is M Indicates less than / 2. In the lane inversion process, the first PCIe device 203 renumbers the lanes between the first PCIe device 203 and the second PCIe device 205 in the opposite direction. For example, in this embodiment, the lanes between the first PCIe device 203 and the second PCIe device 205 are initially numbered from left to right starting at 0 and ending at 15. After the first PCIe device 203 executes the lane inversion process, the lane number of the original lane number 15 is changed from 15 to 0, that is, the original lane number 15 is changed to lane number 0, and the original lane number 14 The lane number is changed from 14 to 1, that is, the original lane number 14 is changed to lane number 1 and the rest can be similarly derived. Before instructing the first PCIe device to execute the lane inversion process, the CPU 201 further disables the lane number 0 to the lane number (M / 2-1) between the first PCIe device and the second PCIe device. Good. After the lane number 0 to the lane number (M / 2-1) are invalidated, the first PCIe device 203 changes the lane number of the original lane number M to 0, and the original lane number (M-1) The lane inversion process is executed until the lane number of the original lane number M / 2 is changed to (M / 2-1), such as changing the lane number of the original lane number to 1. After executing the lane inversion process, the first PCIe device 203 performs renegotiation on the new current lane width by the second PCIe device 205 in order to obtain a new current lane width value N ′. The method in which the first PCIe device 203 renegotiates the current lane width with the second PCIe device 205 is the same as the above-described renegotiation method. In accordance with the request of the PCIe protocol, the first PCIe device 203 performs negotiation starting from the lowest numbered lane after inversion, and continuously re-executes link negotiation with the second PCIe device 205 in the ascending order of the lane numbers. That is, the first PCIe device 203 executes the negotiation starting from the inverted lane number 0, and then changes to lane number 1 and lane number 2 until the negotiation is performed on the lane number (M / 2-1). Negotiations are executed sequentially. The first PCIe device 203 performs the lane inversion process when N <M / 2, and in this case, the lane number of the failed lane is less than M / 2, that is, the failed lane has the lane number 0 to the lane number. (M / 2-1) and lane number 0 to lane number (M / 2-1) are invalid, but a failure occurs from lane number M / 2 to lane number M. Data transmission is possible. Thereafter, after the first PCIe device 203 performs lane inversion, no failure occurs from the new lane number 0 to the lane number (M / 2-1), and the first PCIe device 203 renegotiates with the second PCIe device 205. The new current lane width value N ′ obtained by this is M / 2. The first PCIe device 203 continues to execute data transmission with the second PCIe device 205 by using a new lane link acquired by renegotiation.

PCIe装置のレーンに故障が発生すると、本発明の方策を利用することは、再ネゴシエーションにより取得されたレーン幅が、故障したレーンのレーン番号に関係なく元のレーン幅の1/2であることを保証することが可能であり、故障したレーンのレーン番号が比較的小さく、このため、PCIe装置の間のデータ伝送の速度が影響を受けるとき、PCIe装置のレーン値が大きく減少する。   When a failure occurs in a lane of a PCIe device, using the measure of the present invention is that the lane width acquired by renegotiation is 1/2 of the original lane width regardless of the lane number of the failed lane. The lane number of the PCIe device is greatly reduced when the lane number of the failed lane is relatively small, and therefore the data transmission speed between the PCIe devices is affected.

本発明の実施例における第1PCIe装置503の内部構成図について、図5を参照されたい。図5に示されるように、第1PCIe装置503は、検出モジュール5031、MSIモジュール5033、ネゴシエートモジュール5035、レジスタ5037及びレーン反転モジュール5039を有する。   Refer to FIG. 5 for an internal configuration diagram of the first PCIe device 503 in the embodiment of the present invention. As shown in FIG. 5, the first PCIe device 503 includes a detection module 5031, an MSI module 5033, a negotiate module 5035, a register 5037, and a lane inversion module 5039.

検出モジュール5031は、第1PCIe装置503と第2PCIe装置505との間のリンク504の通信状態をモニタリングするよう構成される。第1PCIe装置503と第2PCIe装置504との間のリンク504は複数のシリアライザ/デ・シリアライザ(serdes,Serializer/De−Serializer)回路を有し、各serdesはレーン(lane)である。リンク504の1以上のレーンにおいて故障が発生したと検出すると、検出モジュール5031は、レーン故障指示メッセージをMSIモジュール5033に送信し、故障したレーンに関する情報を記憶のためレジスタ5037に送信する。   The detection module 5031 is configured to monitor the communication state of the link 504 between the first PCIe device 503 and the second PCIe device 505. The link 504 between the first PCIe device 503 and the second PCIe device 504 has a plurality of serializer / deserializer (serdes, Serializer / De-Serializer) circuits, and each serdes is a lane. When detecting that a failure has occurred in one or more lanes of the link 504, the detection module 5031 sends a lane failure indication message to the MSI module 5033 and sends information about the failed lane to the register 5037 for storage.

MSIモジュール5033は、検出モジュール5031のレーン故障指示メッセージを受信した後に、MSIメッセージを中央処理ユニットCPU501に送信するよう構成される。送信されるMSIメッセージは第1PCIe装置503のデバイスIDを含む。   The MSI module 5033 is configured to send the MSI message to the central processing unit CPU 501 after receiving the lane failure indication message of the detection module 5031. The transmitted MSI message includes the device ID of the first PCIe device 503.

ネゴシエートモジュール5035は、第1PCIe装置503と第2PCIe装置505との間のレーン幅をネゴシエートするよう構成される。2つのPCIe装置の間のリンクのレーンは、ある順序により連続的に番号付けされる。2つのPCIe装置の間のリンクは、1,2,4,8,16又は32個のレーンを有してもよく、本実施例は、具体例として16個のレーンを利用することによって説明される。例えば、図5に示されるように、第1PCIe装置503と第2PCIe装置505との間のリンク504のレーンは、0から始まって左から右に連続的に番号付けされる。左から右に逐次的にレーン番号0、レーン番号1、レーン番号2、....及びレーン番号15がある。PCIeプロトコルのネゴシエーション機構によると、リンクネゴシエーションが実行されると、最小の番号のレーンから始まってネゴシエーションが実行され、ネゴシエーションが故障したレーンに対して実行されるまで、レーン番号の昇順に上方に連続的に第2PCIe装置505とのリンクネゴシエーションが再実行される。故障したレーンに対するネゴシエーションの実行は成功できないため、再ネゴシエーション処理は終了する。第1PCIe装置503は更に、PCIeプロトコルに規定される2つのPCIe装置の間のリンクのレーン数に従って、第1PCIe装置503と第2PCIe装置505との間のリンクの現在レーン幅値Nを決定する。   The negotiate module 5035 is configured to negotiate the lane width between the first PCIe device 503 and the second PCIe device 505. The lanes of links between two PCIe devices are numbered consecutively in some order. The link between two PCIe devices may have 1, 2, 4, 8, 16, or 32 lanes, and this embodiment is illustrated by utilizing 16 lanes as an example. The For example, as shown in FIG. 5, the lanes of the link 504 between the first PCIe device 503 and the second PCIe device 505 are sequentially numbered from left to right starting with 0. Lane number 0, lane number 1, lane number 2,. . . . And there is lane number 15. According to the PCIe protocol negotiation mechanism, when link negotiation is performed, the negotiation starts with the lowest numbered lane and continues upward in ascending lane number until the negotiation is performed on the failed lane. Thus, the link negotiation with the second PCIe device 505 is executed again. Since the negotiation for the failed lane cannot be successfully executed, the renegotiation process ends. The first PCIe device 503 further determines a current lane width value N of the link between the first PCIe device 503 and the second PCIe device 505 according to the number of lanes of the link between the two PCIe devices specified by the PCIe protocol.

レジスタ5037は、第1PCIe装置503の現在レーン幅値N及びレーンネゴシエーション能力値Mなどの情報を含む情報を記憶するよう構成される。   The register 5037 is configured to store information including information such as the current lane width value N and the lane negotiation capability value M of the first PCIe device 503.

レーン反転モジュール5039は、レーン反転処理を実行する指示を受信した後に、リンク504のレーンに対してレーン反転処理を実行するよう構成される。   The lane inversion module 5039 is configured to perform lane inversion processing on the lane of the link 504 after receiving an instruction to perform lane inversion processing.

リンク504の1以上のレーンにおいて故障が発生したと検出すると、検出モジュール5031は、レーン故障指示メッセージをMSIモジュール5033に送信し、故障したレーンに関する情報を記憶のためレジスタ5037に送信する。   When detecting that a failure has occurred in one or more lanes of the link 504, the detection module 5031 sends a lane failure indication message to the MSI module 5033 and sends information about the failed lane to the register 5037 for storage.

ネゴシエートモジュール5035は、再ネゴシエーションを開始し、第1PCIe装置503と第2PCIe装置505との間の現在レーン幅値Nを決定する。ネゴシエートモジュール5035は、リンク504における最小の番号のレーンから始めてネゴシエーションを実行し、すなわち、レーン番号0から始めてネゴシエーションを実行し、レーン番号0に対してネゴシエーションの実行が成功した後、レーン番号0に対してネゴシエーションが実行され、故障したレーンに対してネゴシエーションが実行されるまで、残りが同様に導くことができる。本実施例では、リンク504のレーン番号5において故障が発生したと仮定する。ネゴシエートモジュール5035が再ネゴシエーションを開始すると、レーン番号0からレーン番号4までに対してネゴシエーションの実行が成功する。この場合、5つのレーンが通信に利用可能であるが、2つのPCIe装置の間のリンクは1,2,4,8,16又は32個のレーンを有してもよく、従って、第1PCIe装置503と第2PCIe装置505との間の現在レーン幅値Nは4である。   The negotiate module 5035 starts renegotiation and determines a current lane width value N between the first PCIe device 503 and the second PCIe device 505. The negotiate module 5035 performs the negotiation starting from the lowest numbered lane in the link 504, that is, the negotiation is performed starting from the lane number 0, and the negotiation is successfully performed for the lane number 0. Negotiations are performed on the rest, and the rest can be similarly guided until negotiations are performed on the failed lane. In the present embodiment, it is assumed that a failure has occurred in lane number 5 of the link 504. When the negotiate module 5035 starts renegotiation, the negotiation is successfully executed for lane number 0 to lane number 4. In this case, five lanes are available for communication, but the link between the two PCIe devices may have 1, 2, 4, 8, 16 or 32 lanes, so the first PCIe device The current lane width value N between 503 and the second PCIe device 505 is 4.

MSIモジュール5033により送信されたMSIメッセージを受信した後に、CPU501は、MSIメッセージに含まれるデバイスIDに従って、第1PCIe装置503のレジスタ5037から第1PCIe装置の現在レーン幅値N及びレーンネゴシエーション能力値Mを取得する。本実施例では、第1PCIe装置と第2PCIe装置との間のリンクのレーン数は16であり、このため、CPU501により取得される第1PCIe装置のレーンネゴシエーション能力値Mは16である。現在レーン幅値Nは4である。   After receiving the MSI message transmitted by the MSI module 5033, the CPU 501 obtains the current lane width value N and lane negotiation capability value M of the first PCIe device from the register 5037 of the first PCIe device 503 according to the device ID included in the MSI message. get. In this embodiment, the number of lanes of the link between the first PCIe device and the second PCIe device is 16, and therefore the lane negotiation capability value M of the first PCIe device acquired by the CPU 501 is 16. The current lane width value N is 4.

CPU501は、取得したレーンネゴシエーション能力値M及び現在レーン幅値Nを比較する。本発明では、CPU501は、2つのPCIe装置の間のリンクのレーン数の規則に従ってN及びM/2を比較する。   The CPU 501 compares the acquired lane negotiation capability value M and the current lane width value N. In the present invention, the CPU 501 compares N and M / 2 according to the rule of the number of lanes of links between two PCIe devices.

N<M/2であるとき、CPU501は、レーン反転処理を実行するよう、すなわち、第1PCIe装置503と第2PCIe装置505との間のリンク504のレーンを反対方向に再番号付けするよう第1PCIe装置503のレーン反転モジュール5039に指示する。例えば、図5に示されるように、現在、リンク504のレーンは、左から右に0から始めて15まで連続的に番号付けされる。レーン反転処理を実行するとは、リンク504のレーン番号15のレーン番号が15から0に変更され、すなわち、レーン番号15がレーン番号0に変更され、レーン番号14のレーン番号が1に変更され、すなわち、レーン番号14がレーン番号1に変更され、残りが同様に導くことができることを意味する。レーン反転処理が実行された後、リンク504のレーンは、右から左に0から始めて15まで連続的に番号付けされる。第1PCIe装置503のレーン反転モジュール5039がレーン反転処理を終了した後、ネゴシエートモジュール5035は、それから第1PCIe装置503と第2PCIe装置505との間のリンク504に対してレーンネゴシエーションを再開し、新たな現在レーン幅値N’を決定し、ネゴシエーション方法は上記の方法と同じであり、ここでは個別に再説明されない。第1PCIe装置503は、ネゴシエーションにより取得された新たな現在レーン幅を利用することによって、第2PCIe装置505とのデータ伝送を実行する。N<M/2が故障したレーンのレーン番号が(M/2−1)未満であることを示すため、再ネゴシエーションにより取得される新たな現在レーン幅値はM/2以上である。この場合、リンク504のレーンにおいて故障が発生した後に再ネゴシエーションにより取得されるレーン幅値がM/2以上であることが保証可能であり、リンク504の伝送性能を保証する。   When N <M / 2, the CPU 501 performs the lane inversion process, that is, the first PCIe to renumber the lanes of the link 504 between the first PCIe device 503 and the second PCIe device 505 in the opposite direction. Instruct the lane inversion module 5039 of the device 503. For example, as shown in FIG. 5, currently the lanes of link 504 are sequentially numbered from left to right starting at 0 and ending at 15. When the lane inversion process is executed, the lane number of the lane number 15 of the link 504 is changed from 15 to 0, that is, the lane number 15 is changed to lane number 0, the lane number of the lane number 14 is changed to 1, That is, lane number 14 is changed to lane number 1, and the rest can be derived in the same manner. After the lane inversion process is performed, the lanes of link 504 are sequentially numbered from 0 to 15 starting from 0 to the right. After the lane reversal module 5039 of the first PCIe device 503 completes the lane reversal process, the negotiate module 5035 then resumes lane negotiation for the link 504 between the first PCIe device 503 and the second PCIe device 505, and a new The current lane width value N ′ is determined and the negotiation method is the same as described above and will not be re-explained here separately. The first PCIe device 503 performs data transmission with the second PCIe device 505 by using the new current lane width acquired by the negotiation. Since N <M / 2 indicates that the lane number of the failed lane is less than (M / 2-1), the new current lane width value acquired by renegotiation is M / 2 or more. In this case, it is possible to guarantee that the lane width value acquired by renegotiation after a failure occurs in the lane of the link 504 is M / 2 or more, and the transmission performance of the link 504 is guaranteed.

N<M/2であるとき、CPU501は更に、第1PCIe装置503と第2PCIe装置505との間のリンク504のレーン番号0からレーン番号(M/2−1)までをまず無効にし、それからレーン反転処理を実行するよう第1PCIe装置503のレーン反転モジュール5039に指示する。N<M/2であって、ネゴシエーションにより取得された現在レーン幅がM/2未満であるため、それは、故障したレーンのレーン番号が(M/2−1)未満であることを示す。レーン番号M/2からレーン番号Mまでには故障は発生せず、データ伝送が実行可能である。このように、CPU501は、リンク504のレーン番号0からレーン番号(M/2−1)までを無効にし、レーン反転処理を実行すると、第1PCIe装置503のレーン反転モジュール5039は、レーン番号M/2のレーン番号がM/2から(M/2−1)に変更されるまで、レーン番号Mのレーン番号をMから0に変更し、レーン番号(M−1)のレーン番号を(M−1)から0に変更するなどである。リンクの元のレーン番号0から元のレーン番号(M/2−1)までが無効にされるため、第1PCIe装置503のレーン反転モジュール5039は、これらの無効にされたレーンに対してレーン反転をもはや実行しない。レーン反転が終了した後、ネゴシエートモジュール5035は、第1PCIe装置503と第2PCIe装置505との間のリンク504に対するレーンネゴシエーションを再開し、新たな現在レーン幅値N’を決定する。この場合、リンク504の新たなレーン番号0から新たなレーン番号(M/2−1)までが通信に利用可能である。すなわち、リンク504のレーンにおいて故障が発生した後、再ネゴシエーションにより取得されるレーン幅値はM/2に等しく、リンク504の伝送性能を保証する。   When N <M / 2, the CPU 501 further invalidates the lane number 0 to lane number (M / 2-1) of the link 504 between the first PCIe device 503 and the second PCIe device 505 first, and then the lane The lane inversion module 5039 of the first PCIe device 503 is instructed to execute the inversion process. Since N <M / 2 and the current lane width obtained by negotiation is less than M / 2, it indicates that the lane number of the failed lane is less than (M / 2-1). No failure occurs from lane number M / 2 to lane number M, and data transmission can be executed. As described above, when the CPU 501 invalidates the lane number 0 to the lane number (M / 2-1) of the link 504 and executes the lane inversion process, the lane inversion module 5039 of the first PCIe device 503 causes the lane number M / Until the lane number of 2 is changed from M / 2 to (M / 2-1), the lane number of lane number M is changed from M to 0, and the lane number of lane number (M-1) is changed to (M- For example, change from 1) to 0. Since the original lane number 0 to the original lane number (M / 2-1) of the link is invalidated, the lane inversion module 5039 of the first PCIe device 503 performs lane inversion for these invalidated lanes. No longer run. After the lane inversion is completed, the negotiate module 5035 resumes lane negotiation for the link 504 between the first PCIe device 503 and the second PCIe device 505, and determines a new current lane width value N ′. In this case, a new lane number 0 to a new lane number (M / 2-1) of the link 504 can be used for communication. That is, after a failure occurs in the lane of the link 504, the lane width value acquired by renegotiation is equal to M / 2, and the transmission performance of the link 504 is guaranteed.

N≧M/2であるとき、それは、第1PCIe装置503と第2PCIe装置505との間のリンクの現在レーン幅がM/2以上であることを示し、この場合、リンク504の性能は最大程度まで保持される。CPU501は処理を実行しない。第1PCIe装置503が所定の制限時間内にCPU501の指示を受信しなかった場合、第1PCIe装置503は、ネゴシエーションにより取得された現在レーン幅Nを利用することによって、第2PCIe装置504とのデータ伝送を実行する。リンク504の伝送性能がまた保証される。 When N ≧ M / 2, it indicates that the current lane width of the link between the first PCIe device 503 and the second PCIe device 505 is M / 2 or more, and in this case, the performance of the link 504 is the maximum. Hold up. The CPU 501 does not execute processing. If the 1PCIe device 503 does not receive an indication of CPU501 within a predetermined time limit, the 1PCIe device 503, by using the current lane width N acquired by the negotiation data between the first 2PCIe 504 5 Perform transmission. The transmission performance of the link 504 is also guaranteed.

本発明の本実施例では、第1PCIe装置503のレーンネゴシエーション能力値Mは16であり、リンク504のレーン番号5において故障が発生し、第1PCIe装置のネゴシエーションモジュール5035が第2PCIe装置505と再ネゴシエートすることにより取得された現在レーン幅値Nは4である。この場合、4<16/2であり、すなわち、N<M/2であり、CPU501は、リンク504のレーン番号0からレーン番号7までを無効にし、レーン反転を実行するよう第1PCIe装置503のレーン反転モジュール5039に指示する。第1PCIe装置503のレーン反転モジュール5039は、レーン番号8のレーン番号が7に変更されるまで、リンク504のレーン番号15のレーン番号を0に変更し、レーン番号14のレーン番号を1に変更する。リンク504の元のレーン番号0から元のレーン番号7までが無効とされたため、レーン反転モジュール5039はもはやそれらを番号付けしない。このようにして、第1PCIe装置503と第2PCIe装置505との間のリンク504は現在は8つのレーンを含む。第1PCIe装置503のネゴシエートモジュール5035は、8である新たな現在レーン幅値N’を取得するため、第2PCIe装置505とのレーン再ネゴシエーションを実行する。第1PCIe装置503は、リンク504の8つのレーンを利用することによって、第2PCIe装置505とのデータ伝送を実行し続ける。   In this embodiment of the present invention, the lane negotiation capability value M of the first PCIe device 503 is 16, a failure occurs in the lane number 5 of the link 504, and the negotiation module 5035 of the first PCIe device re-negotiates with the second PCIe device 505. The current lane width value N obtained by doing this is 4. In this case, 4 <16/2, that is, N <M / 2, and the CPU 501 invalidates the lane numbers 0 to 7 of the link 504 and executes the lane inversion so that the first PCIe device 503 performs the lane inversion. The lane inversion module 5039 is instructed. The lane inversion module 5039 of the first PCIe device 503 changes the lane number of the lane number 15 of the link 504 to 0 and changes the lane number of the lane number 14 to 1 until the lane number of the lane number 8 is changed to 7. To do. Since the original lane number 0 through the original lane number 7 of the link 504 have been invalidated, the lane inversion module 5039 no longer numbers them. In this way, the link 504 between the first PCIe device 503 and the second PCIe device 505 currently includes eight lanes. The negotiation module 5035 of the first PCIe device 503 performs lane renegotiation with the second PCIe device 505 in order to obtain a new current lane width value N ′ of 8. The first PCIe device 503 continues to execute data transmission with the second PCIe device 505 by using the eight lanes of the link 504.

このようにして、本発明において提供される技術的方策を利用することによって、2つのPCIe装置の間のリンクのレーンにおいて故障が発生すると、2つのPCIe装置が元のリンクの1/2のレーンが故障したレーンの番号に関わらずデータ伝送を実行し続けるため提供することができ、これは、従来技術におけるリンク幅に課された故障レーンのレーン番号の制限を緩和し、これにより、最適なリンク幅が再ネゴシエーション後に実現できる。   Thus, by utilizing the technical measures provided in the present invention, if a failure occurs in the lane of a link between two PCIe devices, the two PCIe devices will be half the lane of the original link. Can be provided to continue to perform data transmission regardless of the number of the failed lane, which relaxes the lane number limitation of the failed lane imposed on the link width in the prior art, thereby providing the optimum Link width can be achieved after renegotiation.

本明細書では、第1及び第2などの関係語があるエンティティ又は処理を他のものと区別するためだけに利用され、これらのエンティティ又は処理の間に何れか実際の関係又はシーケンスが存在することを必ずしも必要又は意味するものでないことが更に留意されるべきである。さらに、“含む”、“含む”という用語又はそれらの他の何れかの変形は非排他的な包含をカバーすることを意図し、これにより、要素のリストを含む処理、方法、物又は装置はこれらの要素を含むだけでなく、明示的に列記されていない他の要素もまた含むか、又は当該処理、方法、物又は装置に固有の要素を更に含む。“〜を含む”に先行する要素は、更なる制約なく、要素を含む処理、方法、物又は装置における更なる同一の要素の存在を排除しない。
当業者は、開示された実施例の上記の説明に従って本発明を実現又は利用してもよい。本明細書に定義される通常の原理は、本発明の精神又は範囲から逸脱することなく他の実施例において実現されてもよい。従って、本発明は、本明細書に説明された実施例に限定されず、本明細書に開示される原理及び新規性に従う最も広い範囲に拡張される。
As used herein, an entity or process having a relational word such as first and second is only used to distinguish it from others, and there is any actual relationship or sequence between these entities or processes. It should be further noted that this is not necessarily necessary or implied. Further, the terms “comprising”, “comprising” or any other variation thereof are intended to cover non-exclusive inclusions, whereby a process, method, article or device including a list of elements is included. In addition to including these elements, other elements not explicitly listed are also included, or further elements specific to the process, method, article or device are included. An element preceding “comprising” does not exclude the presence of additional identical elements in a process, method, article or device that includes the elements without further restriction.
Those skilled in the art may implement or utilize the invention in accordance with the above description of the disclosed embodiments. The normal principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the invention. Accordingly, the present invention is not limited to the embodiments described herein, but extends to the widest scope consistent with the principles and novelty disclosed herein.

Claims (6)

Peripheral Component Interconnect Express(PCIe)リンク故障を処理する方法であって、
PCIe装置が、前記PCIe装置と下流のPCIe装置との間のリンクのレーンにおいて故障が発生したと検出し、メッセージ・シグナルド・インタラプト(MSI)メッセージを中央処理ユニット(CPU)に送信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、送信するステップと、
前記PCIe装置が、現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするステップと、
前記CPUが、前記受信したMSIメッセージにおけるデバイスIDに従って、前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び前記現在レーン幅値Nを取得するステップと、
前記CPUが、NとM/2とを比較するステップと、
N<M/2である場合、前記CPUが、レーン反転処理を実行するよう前記PCIe装置に指示するステップと、
前記PCIe装置が、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行するステップと、
前記PCIe装置が、新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートし、N’個(N’≧1)のレーンを利用することによって前記下流のPCIe装置とのデータ伝送を実行し続けるステップと、
前記CPUが、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするステップと、
を有する方法。
A method of handling a Peripheral Component Interconnect Express (PCIe) link failure, comprising:
The PCIe device detects that a failure has occurred in the lane of the link between the PCIe device and a downstream PCIe device, and sends a message signaled interrupt (MSI) message to the central processing unit (CPU). The MSI message has a device ID of the PCIe device;
The PCIe device negotiates with the downstream PCIe device to obtain a current lane width value N;
The CPU obtaining the PCIe device lane negotiation capability value M and the current lane width value N from the PCIe device according to the device ID in the received MSI message;
Said CPU comparing N and M / 2;
If N <M / 2, the CPU instructs the PCIe device to perform lane inversion processing;
The PCIe device performs the lane inversion process on a link between the PCIe device and the downstream PCIe device;
The PCIe device negotiates with the downstream PCIe device to obtain a new current lane width value N ′, and uses N ′ (N ′ ≧ 1) lanes to communicate with the downstream PCIe device. Continuing to perform data transmission;
The CPU invalidating the lane number 0 to the lane number (M / 2-1) of the link between the PCIe device and the downstream PCIe device;
Having a method.
当該方法は更に、
M/2である場合、前記PCIe装置が、ネゴシエーションにより取得されたN個のレーンを利用することによって、前記下流のPCIe装置とのデータ伝送を実行し続けるステップを有する、請求項記載の方法。
The method further includes:
If it is N M / 2, the PCIe device, by utilizing the N lanes obtained by the negotiation, including the step of continuing to perform data transmission with the downstream PCIe device, according to claim 1, wherein the method of.
Peripheral Component Interconnect Express(PCIe)リンク故障を処理する方法であって、
PCIe装置により報告されたメッセージ・シグナルド・インタラプト(MSI)メッセージを受信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、受信するステップと、
前記デバイスIDに従って前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び現在レーン幅値Nを取得するステップであって、前記現在レーン幅値Nは、前記PCIe装置が下流のPCIe装置とネゴシエートすることによって取得される、取得するステップと、
NとM/2とを比較するステップと、
N<M/2である場合、レーン反転処理を実行するよう前記PCIe装置に指示するステップと、
前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするステップと、
を有する方法。
A method of handling a Peripheral Component Interconnect Express (PCIe) link failure, comprising:
Receiving a message signaled interrupt (MSI) message reported by a PCIe device, the MSI message having a device ID of the PCIe device;
Obtaining a lane negotiation capability value M and a current lane width value N of the PCIe device from the PCIe device according to the device ID, the current lane width value N being negotiated with a downstream PCIe device by the PCIe device; A step of obtaining, obtained by
Comparing N and M / 2;
If N <M / 2, instructing the PCIe device to perform lane inversion processing;
Invalidating lane number 0 to lane number (M / 2-1) of the link between the PCIe device and the downstream PCIe device;
Having a method.
前記PCIe装置のレーンネゴシエーション能力値Mは、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーンの合計数に等しい、請求項記載の方法。 4. The method of claim 3 , wherein the lane negotiation capability value M of the PCIe device is equal to the total number of lanes on the link between the PCIe device and the downstream PCIe device. Peripheral Component Interconnect Express(PCIe)リンク故障を処理する方法であって、
PCIe装置が、前記PCIe装置と下流のPCIe装置との間のリンクのレーンにおいて故障が発生したと検出し、メッセージ・シグナルド・インタラプトMSIメッセージを中央処理ユニット(CPU)に送信するステップであって、前記MSIメッセージは前記PCIe装置のデバイスIDを有する、送信するステップと、
現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするステップと、
前記CPUにより送信されたレーン反転処理を実行する指示を受信し、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行するステップと、
新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートし、N’個のレーンを利用することによって前記下流のPCIe装置とのデータ伝送を実行し続けるステップと、
前記PCIe装置が前記CPUにより送信されたレーン反転処理を実行する指示を所定の時間内に受信しなかった場合、前記PCIe装置が、N個のレーンを利用することによって、前記下流のPCIe装置とのデータ伝送を実行し続けるステップと、
を有する方法。
A method of handling a Peripheral Component Interconnect Express (PCIe) link failure, comprising:
The PCIe device detects that a failure has occurred in a lane of a link between the PCIe device and a downstream PCIe device, and sends a message signaled interrupt MSI message to a central processing unit (CPU), Transmitting the MSI message having a device ID of the PCIe device;
Negotiating with the downstream PCIe device to obtain a current lane width value N;
Receiving an instruction to perform lane inversion processing transmitted by the CPU, and executing the lane inversion processing for a link between the PCIe device and the downstream PCIe device;
Negotiating with the downstream PCIe device to obtain a new current lane width value N ′ and continuing to perform data transmission with the downstream PCIe device by using N ′ lanes;
If the PCIe device does not receive the instruction to execute the lane inversion processing transmitted by the CPU within a predetermined time, the PCIe device uses the N lanes to Continuing to execute the data transmission of
Having a method.
Peripheral Component Interconnect Express(PCIe)リンク故障を処理するシステムであって、
当該システムは、中央処理ユニット(CPU)、PCIe装置及び下流のPCIe装置を有し、前記CPUは前記PCIe装置に接続され、前記PCIe装置はリンクを利用することによって前記下流のPCIe装置に接続され、
前記PCIe装置は、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーンにおいて故障が発生したか検出し、故障が発生すると、メッセージ・シグナルド・インタラプト(MSI)メッセージを前記CPUに報告するよう構成され、前記MSIメッセージは前記PCIe装置のデバイスIDを有し、前記PCIe装置は更に、現在レーン幅値Nを取得するため、前記下流のPCIe装置とネゴシエートするよう構成され、
前記CPUは、前記MSIメッセージにおけるデバイスIDに従って、前記PCIe装置から前記PCIe装置のレーンネゴシエーション能力値M及び前記現在レーン幅値Nを取得し、NとM/2とを比較し、N<M/2であるとき、レーン反転処理を実行するよう前記PCIe装置に指示し、前記PCIe装置と前記下流のPCIe装置との間のリンクのレーン番号0からレーン番号(M/2−1)までを無効にするよう構成され、
前記PCIe装置は更に、前記CPUにより送信されたレーン反転処理を実行する指示を受信した後に、前記PCIe装置と前記下流のPCIe装置との間のリンクに対して前記レーン反転処理を実行し、新たな現在レーン幅値N’を取得するため、前記下流のPCIe装置とネゴシエートするよう構成されるシステム。
A system for handling Peripheral Component Interconnect Express (PCIe) link failures, comprising:
The system includes a central processing unit (CPU), a PCIe device, and a downstream PCIe device, and the CPU is connected to the PCIe device, and the PCIe device is connected to the downstream PCIe device by using a link. ,
The PCIe device detects whether a failure has occurred in the lane of the link between the PCIe device and the downstream PCIe device, and reports a message signaled interrupt (MSI) message to the CPU when the failure occurs. The MSI message has a device ID of the PCIe device, and the PCIe device is further configured to negotiate with the downstream PCIe device to obtain a current lane width value N;
The CPU obtains the lane negotiation capability value M and the current lane width value N of the PCIe device from the PCIe device according to the device ID in the MSI message, compares N with M / 2, and N <M / When 2, the lane inversion process is instructed to the PCIe device, and the lane number 0 to lane number (M / 2-1) of the link between the PCIe device and the downstream PCIe device is invalidated. is configured to,
The PCIe device further executes the lane inversion processing for the link between the PCIe device and the downstream PCIe device after receiving the instruction to execute the lane inversion processing transmitted by the CPU. A system configured to negotiate with the downstream PCIe device to obtain a current lane width value N ′.
JP2016510920A 2014-04-02 2014-04-02 Method, apparatus and system for handling PCIe link failures Active JP6110560B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/074584 WO2015149293A1 (en) 2014-04-02 2014-04-02 Method, device and system for processing pcie link failure

Publications (2)

Publication Number Publication Date
JP2016526311A JP2016526311A (en) 2016-09-01
JP6110560B2 true JP6110560B2 (en) 2017-04-05

Family

ID=51912365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016510920A Active JP6110560B2 (en) 2014-04-02 2014-04-02 Method, apparatus and system for handling PCIe link failures

Country Status (5)

Country Link
US (1) US9785530B2 (en)
EP (1) EP2961098B1 (en)
JP (1) JP6110560B2 (en)
CN (1) CN104170322B (en)
WO (1) WO2015149293A1 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9859974B2 (en) 2015-06-25 2018-01-02 International Business Machines Corporation Rerouting bus data signals from faulty signal carriers to existing healthy signal carriers
US9858161B2 (en) 2015-10-27 2018-01-02 International Business Machines Corporation Implementing cable failover in multiple cable PCI express IO interconnections
CN105700967A (en) * 2016-01-08 2016-06-22 华为技术有限公司 PCIe (Peripheral Component Interconnect Express) equipment and detection method thereof
CN107590089B (en) * 2016-07-06 2020-09-18 技嘉科技股份有限公司 Method for controlling PCI-E channel by basic input and output system
CN107888442B (en) 2016-09-30 2021-05-14 华为技术有限公司 Port rate determining method and computer equipment
KR102569761B1 (en) * 2016-10-05 2023-08-22 삼성전자주식회사 Semiconductor device, semiconductor system and method for operating semiconductor device
CN106502952B (en) * 2016-10-24 2019-08-02 郑州云海信息技术有限公司 A kind of PCIE device goes offline safely design method
US10585831B2 (en) * 2017-01-27 2020-03-10 Hewlett Packard Enterprise Development Lp PCIe connectors
CN107703362A (en) * 2017-12-07 2018-02-16 郑州云海信息技术有限公司 A kind of server master board PCIE signal line impedence measurement jig
US20190250930A1 (en) * 2018-02-12 2019-08-15 Western Digital Technologies, Inc. Method and apparatus for configuring a serial data link
US10657080B2 (en) * 2018-03-29 2020-05-19 Quanta Computer Inc. Method and system for checking errors on cables
CN109495463B (en) * 2018-11-02 2021-06-29 郑州云海信息技术有限公司 Link width negotiation method, device and computer readable storage medium
CN111371582B (en) * 2018-12-26 2021-04-16 大唐移动通信设备有限公司 PCIE link fault processing method and device
CN109815043B (en) 2019-01-25 2022-04-05 华为云计算技术有限公司 Fault processing method, related equipment and computer storage medium
CN109885420B (en) * 2019-02-27 2022-06-17 苏州浪潮智能科技有限公司 PCIe link fault analysis method, BMC and storage medium
US11836101B2 (en) * 2019-11-27 2023-12-05 Intel Corporation Partial link width states for bidirectional multilane links
CN114385534A (en) * 2020-10-19 2022-04-22 华为技术有限公司 Data processing method and device
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
KR102635457B1 (en) * 2021-05-24 2024-02-13 에스케이하이닉스 주식회사 PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THEREOF
CN115150254B (en) * 2022-06-29 2023-05-23 苏州浪潮智能科技有限公司 PCIe link fault detection method, detection device, equipment and medium

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322659B2 (en) * 2003-12-19 2009-09-02 エヌイーシーコンピュータテクノ株式会社 Serial transmission control device, computer system, and serial transmission control method
US7444558B2 (en) * 2003-12-31 2008-10-28 Intel Corporation Programmable measurement mode for a serial point to point link
US7844767B2 (en) * 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
JP4558519B2 (en) 2005-01-18 2010-10-06 富士通株式会社 Information processing apparatus and system bus control method
US7705850B1 (en) * 2005-11-08 2010-04-27 Nvidia Corporation Computer system having increased PCIe bandwidth
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
US20090003335A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Device, System and Method of Fragmentation of PCI Express Packets
US8139575B2 (en) * 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
CN101872330B (en) * 2009-11-04 2012-07-25 杭州海康威视数字技术股份有限公司 Interrupt processing method of multi-PCIE (Peripheral Component Interface Express) equipment system
WO2012023198A1 (en) * 2010-08-19 2012-02-23 富士通株式会社 Bus control device and bus control method
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
JP5786492B2 (en) 2011-06-29 2015-09-30 富士通株式会社 COMMUNICATION DEVICE, COMMUNICATION CIRCUIT, AND COMMUNICATION METHOD
EP2685760B1 (en) * 2011-07-27 2018-04-04 Huawei Technologies Co., Ltd. Device, link energy management method and link energy management system for peripheral component interconnect (pci) express
US9292465B2 (en) * 2011-12-21 2016-03-22 Intel Corporation Dynamic link width adjustment
WO2013162512A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Adaptive low-power link-state entry policy for active interconnect link power management
JP6069897B2 (en) * 2012-06-05 2017-02-01 富士通株式会社 Data transmission apparatus and data transmission method
US20140003283A1 (en) * 2012-06-28 2014-01-02 David J. Koenen Network lane reconfiguration
US9009370B2 (en) * 2013-03-04 2015-04-14 Lsi Corporation Intelligent data buffering between interfaces
KR102033112B1 (en) * 2013-07-15 2019-10-16 한국전자통신연구원 Peripheral Component Interconnect Express switch apparatus and method for controlling connection using the same
CN103440188B (en) * 2013-08-29 2016-09-28 福建星网锐捷网络有限公司 The detection method of a kind of PCIE hardware fault and device

Also Published As

Publication number Publication date
JP2016526311A (en) 2016-09-01
EP2961098A4 (en) 2016-01-27
EP2961098B1 (en) 2017-06-14
WO2015149293A1 (en) 2015-10-08
CN104170322A (en) 2014-11-26
CN104170322B (en) 2017-06-20
US20150324268A1 (en) 2015-11-12
EP2961098A1 (en) 2015-12-30
US9785530B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
JP6110560B2 (en) Method, apparatus and system for handling PCIe link failures
JP4768017B2 (en) Point-to-point link negotiation method and apparatus
US9396152B2 (en) Device, system and method for communication with heterogenous physical layers
US20080294831A1 (en) Method for link bandwidth management
KR102569761B1 (en) Semiconductor device, semiconductor system and method for operating semiconductor device
JP2016076257A5 (en)
KR102420530B1 (en) Alternative protocol selection
US20120059489A1 (en) System and method for communication handshaking between processors
US10091059B2 (en) Handling connections between network devices that support multiple port communication modes
WO2015014127A1 (en) Method and apparatus for detecting interface connection between devices
TWI327275B (en) Substitute sata host for communicating with a sata device and related methods
CN115550291B (en) Switch reset system and method, storage medium, and electronic device
JP6264155B2 (en) Information processing apparatus, information processing apparatus control method, and information processing apparatus control program
US8909843B1 (en) Peripheral component interconnect express switch apparatus and method of controlling connection thereof
JP2009116732A (en) Information processor and information processing method
JP6418021B2 (en) Information processing apparatus and information processing apparatus control method
WO2013097604A1 (en) Method and device for processing failure of serial-parallel converting circuit
JP6573236B2 (en) Communication device and receiving device
CN117135029A (en) Communication fault processing method, system and equipment
TWI704460B (en) A method of maintaining memory sharing in clustered system
JP6222724B2 (en) USB device, USB system, data transfer method, and program
JP2014057269A (en) Semiconductor device
TW201742400A (en) Network device and auto detecting method for direct link thereof
JP2005228222A (en) Serial data transfer method and device
CN110554984B (en) CPLD-based serial port bridging method and system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170131

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: 20170214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170309

R150 Certificate of patent or registration of utility model

Ref document number: 6110560

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250