JP6110560B2 - Method, apparatus and system for handling PCIe link failures - Google Patents
Method, apparatus and system for handling PCIe link failures Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 88
- 230000005540 biological transmission Effects 0.000 claims description 65
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 description 12
- 238000011144 upstream manufacturing Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 101150044561 SEND1 gene Proteins 0.000 description 3
- 102100024058 Flap endonuclease GEN homolog 1 Human genes 0.000 description 2
- 101000833646 Homo sapiens Flap endonuclease GEN homolog 1 Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0745—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/221—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
従来技術では、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
本発明の第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
第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
本発明の第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
The
The
The
The negotiate
The
従来技術と比較して、本発明は、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.
本発明の実施例又は従来技術における技術的方策をより明確に説明するため、以下において、実施例又は従来技術を説明するのに必要な添付図面が簡単に紹介される。明らかに、以下の説明における添付図面は本発明の単なる実施例を示し、当業者は、提供された添付図面から他の図面を依然として導出してもよい。
以下は、本発明の実施例における添付図面を参照して本発明の実施例における技術的方策を明確且つ完全に説明する。明らかに、説明される実施例は、本発明の実施例の全てでなく単に一部である。 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
データ伝送はリンク接続によって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
全体的な処理をより明確且つより明示的にするため、図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
メッセージ・シグナルド・インタラプト(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
本発明の本実施例では、第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
レーン反転処理を実行した後、第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
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
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
レーン反転処理を終了した後、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
本実施例では、レーン番号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
root complexは、root complexとPCIe装置1との間の新たな反転されたレーン番号0から新たな反転されたレーン番号7(すなわち、8番)までを利用することによって、データ伝送を実行し続ける。具体的なデータ伝送処理は、既存の実現方式と同様であり、ここでは個別に再説明されない。
The root complex continues to perform data transmission by utilizing the new
このようにして、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
メッセージ・シグナルド・インタラプト(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
第1PCIe装置203は、第1PCIe装置203と第2PCIe装置205との間のリンク204の現在レーン幅値Nを取得するため、PCIeプロトコルの再ネゴシエーション機構に従って第2PCIe装置205とレーン再ネゴシエーションを実行する。レーン再ネゴシエーション中、PCIeプロトコルに規定されるレーンネゴシエーション機構によると、第1PCIe装置203は、故障したレーンに対してネゴシエーションが実行されるまで、最小のレーン番号のレーンから始めてレーン番号の昇順により上方に第2PCIe装置205とのリンクネゴシエーションを再び連続的に実行する。故障したレーンに対してネゴシエーションの実行が成功できないため、再ネゴシエーション処理は終了される。第1PCIe装置203は更に、PCIeプロトコルに規定される2つのPCIe装置の間のリンクのレーン数に従って、リンクの現在レーン幅値Nを決定する。
The
レーン番号は連続している必要があり、リンクネゴシエーションは最小番号のレーンから開始されるため、再ネゴシエーションにより取得されるレーン数は故障したレーンのレーン番号によって変わり、不確実性が存在する。故障したレーンのレーン番号が相対的に小さいとき、再ネゴシエーションにより取得されるレーン数はまた大きく減少し、すなわち、取得された現在レーン幅値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
CPU201は、第1PCIe装置203の取得された現在レーン幅値Nとレーンネゴシエーション能力値Mとを比較する。本発明では、CPU201は、2つのPCIe装置の間のリンクのレーン数の規則に従って、NとM/2とを比較する。
The
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
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
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
検出モジュール5031は、第1PCIe装置503と第2PCIe装置505との間のリンク504の通信状態をモニタリングするよう構成される。第1PCIe装置503と第2PCIe装置504との間のリンク504は複数のシリアライザ/デ・シリアライザ(serdes,Serializer/De−Serializer)回路を有し、各serdesはレーン(lane)である。リンク504の1以上のレーンにおいて故障が発生したと検出すると、検出モジュール5031は、レーン故障指示メッセージをMSIモジュール5033に送信し、故障したレーンに関する情報を記憶のためレジスタ5037に送信する。
The
MSIモジュール5033は、検出モジュール5031のレーン故障指示メッセージを受信した後に、MSIメッセージを中央処理ユニットCPU501に送信するよう構成される。送信されるMSIメッセージは第1PCIe装置503のデバイスIDを含む。
The
ネゴシエートモジュール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
レジスタ5037は、第1PCIe装置503の現在レーン幅値N及びレーンネゴシエーション能力値Mなどの情報を含む情報を記憶するよう構成される。
The
レーン反転モジュール5039は、レーン反転処理を実行する指示を受信した後に、リンク504のレーンに対してレーン反転処理を実行するよう構成される。
The
リンク504の1以上のレーンにおいて故障が発生したと検出すると、検出モジュール5031は、レーン故障指示メッセージをMSIモジュール5033に送信し、故障したレーンに関する情報を記憶のためレジスタ5037に送信する。
When detecting that a failure has occurred in one or more lanes of the
ネゴシエートモジュール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
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
CPU501は、取得したレーンネゴシエーション能力値M及び現在レーン幅値Nを比較する。本発明では、CPU501は、2つのPCIe装置の間のリンクのレーン数の規則に従ってN及びM/2を比較する。
The
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
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
N≧M/2であるとき、それは、第1PCIe装置503と第2PCIe装置505との間のリンクの現在レーン幅がM/2以上であることを示し、この場合、リンク504の性能は最大程度まで保持される。CPU501は処理を実行しない。第1PCIe装置503が所定の制限時間内にCPU501の指示を受信しなかった場合、第1PCIe装置503は、ネゴシエーションにより取得された現在レーン幅Nを利用することによって、第2PCIe装置5045とのデータ伝送を実行する。リンク504の伝送性能がまた保証される。
When N ≧ M / 2, it indicates that the current lane width of the link between the
本発明の本実施例では、第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
このようにして、本発明において提供される技術的方策を利用することによって、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)
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.
N≧M/2である場合、前記PCIe装置が、ネゴシエーションにより取得されたN個のレーンを利用することによって、前記下流のPCIe装置とのデータ伝送を実行し続けるステップを有する、請求項1記載の方法。 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.
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装置が、前記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.
当該システムは、中央処理ユニット(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 ′.
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)
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)
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 |
-
2014
- 2014-04-02 WO PCT/CN2014/074584 patent/WO2015149293A1/en active Application Filing
- 2014-04-02 CN CN201480000399.1A patent/CN104170322B/en active Active
- 2014-04-02 EP EP14873118.5A patent/EP2961098B1/en active Active
- 2014-04-02 JP JP2016510920A patent/JP6110560B2/en active Active
-
2015
- 2015-07-22 US US14/806,078 patent/US9785530B2/en active Active
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 |