Apparatus and method for adjusting arbitration policy for PCIe Tx logic

By introducing devices and methods to dynamically adjust the arbitration policy into the PCIe transmitter (Tx) logic of the data center server, the request table (TOR) timeout problem of GPU workload running is solved, and the system delay performance is improved.

CN119441094APending Publication Date: 2025-02-14INTEL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310960533.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-01
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

When running GPU workloads in a data center server, you may encounter severe request table (TOR) timeout issues, mainly due to a complete transaction layer package (TLP) sent by the CPU with loosely sorted (RO) bits blocked Processing of delivery TLP.

Method used

By introducing a device and method for dynamically adjusting an arbitration strategy in the PCIe transmitter (Tx) logic, the device includes processing circuitry for determining the TLP counts in the most recent time period and based on these counts in the first arbitration strategy and Choose between the second arbitration strategy. The first arbitration strategy includes polling arbitration between the completed TLP, the delivered TLP, and the non-delivery TLP, while the second arbitration strategy handles the delivered TLP when the completed TLP and the non-delivery TLP are not completed.

Benefits of technology

By dynamically adjusting the arbitration strategy, the TOR timeout is avoided, the processing efficiency of delivered TLP is improved, and the delay penalty for the overall system is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119441094A_ABST
    Figure CN119441094A_ABST
Patent Text Reader

Abstract

The present disclosure provides an apparatus and method for adjusting an arbitration policy for peripheral component interconnect express (PCIe) transmitter (Tx) logic. The method includes determining a complete transaction layer package (TLP) count, a delivery TLP count, and a non-delivery TLP count within a latest time period; and making a selection between a first arbitration policy and a second arbitration policy based on the completion TLP count, the delivery TLP count, and the non-delivery TLP count within the latest time period, where the first arbitration policy includes a polling arbitration between the completion TLP to be processed, the delivery TLP to be processed, and the non-delivery TLP to be processed, and the second arbitration policy includes a polling arbitration between the delivery TLP to be processed, and a polling arbitration between the delivery TLP to be processed and the non-delivery TLP to be processed. And the second arbitration policy includes a polling arbitration between the completion TLP to be processed and the non-delivery TLP to be processed and processing the delivery TLP to be processed in the absence of the completion TLP to be processed and the absence of the non-delivery TLP to be processed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to Peripheral Component Interconnect Express (PCIe) technology, and more particularly, to an apparatus and method for adjusting an arbitration strategy of a PCIe transmitter (Tx) logic. Background Art

[0002] The PCIe standard allows multiple peripheral components (e.g., graphics cards, sound cards, hard drive host adapters, solid-state drives (SSDs), wireless fidelity (Wi-Fi), and Ethernet hardware, etc.) to be connected to the central processing unit (CPU) of a server or personal computer. For example, when a graphics processing unit (GPU) (e.g., Nvidia GPU) workload is running on a data center server (e.g., Intel's Ice Lake (ICL, ICX) server) of a cloud service provider (CSP), 4 A100 GPU cards can be inserted into the PCIe slots on one socket, and a total of 8 A100 GPU cards can be populated on two sockets. As a result, customers of cloud service providers (CSPs) using data center servers may encounter such a problem: when running GPU workloads, the data center server will occasionally encounter severe request table (TOR) timeouts.

[0003] The root cause of TOR timeout is that the CPU of a data center server will send a continuous stream of completion transaction layer packets (TLPs) with the relaxed ordering (RO) bit enabled when running GPU workloads, which have a higher processing priority than the existing posted TLPs / non-posted TLPs in the CPU's PCIe transmitter (Tx) logic. The continuous flow of RO completion TLPs arriving will block the processing of posted TLPs and eventually cause TOR timeout. Summary of the invention

[0004] One aspect of the present disclosure provides an apparatus for adjusting an arbitration strategy. The apparatus includes: a processing circuit configured to: determine a completion transaction layer packet (TLP) count, a delivered TLP count, and a non-delivered TLP count within a recent time period, wherein the completion TLP count indicates the number of completion TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed; and select between a first arbitration strategy and a second arbitration strategy based on the completion TLP count, the delivered TLP count, and the non-delivered TLP count within the recent time period, wherein the first arbitration strategy includes polling arbitration between completion TLPs to be processed, delivered TLPs to be processed, and non-delivered TLPs to be processed, and the second arbitration strategy includes polling arbitration between completion TLPs to be processed and non-delivered TLPs to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed; and an interface circuit coupled to the processing circuit and configured to: send a TLP selected according to the selected arbitration strategy.

[0005] Another aspect of the present disclosure provides an apparatus for adjusting an arbitration strategy. The apparatus includes: a processing circuit configured to: determine a first credit unit change rate for a completion transaction layer packet (TLP) to be processed, a second credit unit change rate for a delivered TLP to be processed, and a third credit unit change rate for a non-delivered TLP to be processed during a recent time period; and select between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed; and an interface circuit coupled to the processing circuit and configured to: send the TLP selected according to the selected arbitration strategy.

[0006] Another aspect of the present disclosure provides a method for adjusting an arbitration strategy. The method includes: determining a completion transaction layer packet (TLP) count, a delivery TLP count, and a non-delivery TLP count in a recent time period, wherein the completion TLP count indicates the number of completion TLPs to be processed, the delivery TLP count indicates the number of delivery TLPs to be processed, and the non-delivery TLP count indicates the number of non-delivery TLPs to be processed; and based on the completion TLP count, the delivery TLP count, and the non-delivery TLP count in the recent time period, selecting between a first arbitration strategy and a second arbitration strategy, wherein the first arbitration strategy includes polling arbitration between completion TLPs to be processed, delivery TLPs to be processed, and non-delivery TLPs to be processed, and the second arbitration strategy includes polling arbitration between completion TLPs to be processed and non-delivery TLPs to be processed, and processing the delivery TLP to be processed when there is no completion TLP to be processed and there is no non-delivery TLP to be processed.

[0007] Another aspect of the present disclosure provides a method for adjusting an arbitration strategy. The method includes: determining a first credit unit change rate for a completion transaction layer packet (TLP) to be processed, a second credit unit change rate for a delivery TLP to be processed, and a third credit unit change rate for a non-delivery TLP to be processed during a recent time period; and selecting between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivery TLP to be processed, and the non-delivery TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivery TLP to be processed and processing the delivery TLP to be processed when there is no completion TLP to be processed and there is no non-delivery TLP to be processed. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Embodiments of the present disclosure will be illustrated by way of example and not limitation in the accompanying drawings in which like reference numerals refer to similar elements.

[0009] Figure 1 A diagram illustrating an example process of Tx arbitration for delivered / non-delivered / completion TLPs according to the PCIe standard.

[0010] Figure 2 A flow chart of a method for adjusting an arbitration strategy according to an embodiment of the present application is shown.

[0011] Figure 3An example pseudo-code implementation of a process for selecting between a first arbitration strategy and a second arbitration strategy based on a completion TLP count, a posted TLP count, and a non-posted TLP count according to an embodiment of the present application is shown.

[0012] Figure 4 A flow chart of another method for adjusting an arbitration strategy according to an embodiment of the present application is shown.

[0013] Figure 5 An example pseudo-code implementation of a process of selecting between a first arbitration strategy and a second arbitration strategy based on a first credit unit change rate, a second credit unit change rate, and a third credit unit change rate according to an embodiment of the present application is shown.

[0014] Figure 6 is a block diagram illustrating components capable of reading instructions from a machine-readable or computer-readable medium and performing any one or more of the methodologies discussed herein, according to some example embodiments. DETAILED DESCRIPTION

[0015] The various aspects of the illustrative embodiments will be described using terms commonly used by those skilled in the art to convey the essence of the present disclosure to other persons skilled in the art. However, it will be readily understood by those skilled in the art that many alternative embodiments may be practiced using portions of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth to provide a thorough understanding of the illustrative embodiments. However, it will be readily understood by those skilled in the art that alternative embodiments may be practiced without these specific details. In other cases, well-known features may be omitted or simplified to avoid blurring the illustrative embodiments.

[0016] Furthermore, various operations will be described as multiple discrete operations in a manner that is most helpful for understanding the illustrative embodiments; however, the order of description should not be construed as implying that these operations are necessarily order dependent. In particular, these operations do not need to be performed in the order presented.

[0017] The phrases "in an embodiment," "in one embodiment," and "in some embodiments" are used repeatedly herein. The phrase generally does not refer to the same embodiment; however, it may. The terms "comprising," "having," and "including" are synonymous unless the context dictates otherwise. The phrases "A or B" and "A / B" mean "(A), (B), or (A and B)."

[0018] The term "non-posted transaction" as used herein refers to a transaction in which the requester expects to receive a completion TLP from the device that completes the request. The completion TLP may be returned later and does not have to be returned immediately. Requests for non-posted transactions may include, for example, memory reads, memory read locks, input / output (I / O) reads, I / O writes, configuration reads (type 0 and type 1), and configuration writes (type 0 and type 1).

[0019] The term "posted transaction" as used herein refers to a transaction for which the requester does not expect and will not receive a completion TLP. Requests for a posted transaction may include, for example, memory writes and message transfers.

[0020] The term "logic" as used herein refers to hardware used to implement a specific function and may be implemented as a circuit, such as an application specific integrated circuit (ASIC) or a field programmable logic array (FPGA). For example, Tx logic may also be referred to as Tx circuit, sequential queue (Q) logic may also be referred to as sequential Q circuit, and so on.

[0021] In order to deal with the above TOR timeout, there are currently two arbitration strategies. Generally speaking, the Tx logic in the CPU performs polling between non-delivery TLPs and completion TLPs. In this case, the delivery TLP is processed only when there are no non-delivery TLPs and completion TLPs in the processing order queue. As a workaround, the Tx logic in the CPU performs polling between non-delivery TLPs, delivery TLPs, and completion TLPs to avoid TOR timeout for delivery TLPs.

[0022] The current polling arbitration strategy can remedy the above CSP problem to avoid starving the processing of delivered TLPs. However, since different workload scenarios may have different characteristics, they cannot achieve the best waiting delay performance according to the actual processing request count / priority of delivered / non-delivered / completed TLPs in a specific workload scenario. All delivered / non-delivered / completed TLPs need to go through the arbitration logic. Therefore, more waiting delay penalties are incurred due to the additional occupation of clock cycles.

[0023] In addition, the requester of a non-posted transaction or a completed transaction will expect to receive a completion TLP from the device that completes the request. In order to realize the transaction cycle, a completion TLP should be sent in response to a non-posted transaction or a completed transaction request. Therefore, compared with the post-type TLP, the non-posted or completed TLP is more sensitive to delay. The PCIe specification defines an important feature called completion timeout to limit the response time. Once the time for processing the transaction exceeds the original setting value, an uncorrectable error (UCE) will occur. As a result, the polling arbitration strategy between all the post-type / non-posted / completed TLPs is not a good solution for the average delay penalty that reduces overall performance.

[0024] In order to achieve better latency performance for processing all delivered / non-delivered / completed TLPs, embodiments of the present application provide an apparatus and method for adjusting the arbitration strategy of the PCIe Tx logic.

[0025] Figure 1 A diagram illustrating an example process of Tx arbitration for delivered / non-delivered / completion TLPs according to the PCIe standard.

[0026] like Figure 1 As shown, pending delivered TLPs, pending non-delivered TLPs, and pending completion TLPs with non-relaxed ordering (which may be referred to as "NRO completion TLPs") are queued in a sequential queue according to a time order. For example, a delivered / non-delivered TLP or an NRO completion TLP will be queued in a sequential queue behind another delivered / non-delivered TLP or NRO completion TLP that arrived before it. However, a completion TLP with relaxed ordering (which may be referred to as an "RO completion TLP") may bypass the TLPs in the sequential queue.

[0027] The sequential Q logic may be used to count the number of delivered TLPs, the number of non-delivered TLPs, and the number of NRO completion TLPs waiting in the sequential queue.

[0028] The number of RO Completion TLPs will be added to the number of NRO Completion TLPs to get the number of Completion TLPs (including NRO Completion TLPs and RO Completion TLPs). Therefore, if a continuous stream of RO Completion TLPs is received quickly enough, the number of RO Completion TLPs will always be greater than zero. This will prevent the Delivered / Non-Delivered TLPs in the sequential queue from being processed.

[0029] As described above, there are currently two arbitration strategies used by the Tx logic to determine which TLP will be processed, such as sent. The default arbitration strategy is to poll between non-delivered TLPs and completed TLPs, and only when there are no non-delivered TLPs and completed TLPs in the sequential queue (that is, the number of non-delivered TLPs and the number of completed TLPs are both zero) can the delivered TLP be processed. As a workaround for the default arbitration strategy, polling is performed between non-delivered TLPs, delivered TLPs, and completed TLPs to allow the sequential queue to "pop up" a delivered TLP or a non-delivered TLP to enter the sequential Q logic flow.

[0030] Embodiments of the present application provide a solution for dynamically adjusting the arbitration strategy of Tx logic for delivered TLPs, non-delivered TLPs, and completed TLPs.

[0031] Figure 2 A flow chart of a method 200 for adjusting an arbitration strategy according to an embodiment of the present application is shown. The method 200 may be performed at a physical layer (eg, Tx logic) of a PCIe device.

[0032] The method 200 includes, at 210, determining a completion TLP count, a delivered TLP count, and a non-delivered TLP count within a recent time period. The completion TLP count indicates the number of completion TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed. The completion TLPs may include completion TLPs with non-relaxed ordering and completion TLPs with relaxed ordering. The delivered TLPs, non-delivered TLPs, and completion TLPs with non-relaxed ordering may be queued in a sequential queue according to a time order, such as Figure 1 The duration of the most recent time period may be preset or may be determined according to the real-time workload of the PCIe device, which is not limited in this document.

[0033] Method 200 includes, at 220, selecting between a first arbitration strategy and a second arbitration strategy based on a completion TLP count, a delivery TLP count, and a non-delivery TLP count in a recent time period. The first arbitration strategy includes a round-robin arbitration between a completion TLP to be processed, a delivery TLP to be processed, and a non-delivery TLP to be processed. The second arbitration strategy includes a round-robin arbitration between a completion TLP to be processed and a non-delivery TLP to be processed. Under the second arbitration strategy, a delivery TLP to be processed will be processed when there is no completion TLP to be processed and there is no non-delivery TLP to be processed.

[0034] In one example, if the ratio of the completed TLP count to the sum of the completed TLP count, the delivered TLP count, and the non-delivered TLP count in the most recent time period is greater than a threshold, the first arbitration strategy can be selected. In another example, if the ratio is not greater than the threshold, the second arbitration strategy can be selected. The threshold can be adjusted according to the actual workload. For example, the threshold can be determined based on a sampled value of the ratio of the completed TLP count to the sum of the completed TLP count, the delivered TLP count, and the non-delivered TLP count when a TOR timeout occurs for a delivered TLP.

[0035] In some embodiments, after the first arbitration strategy or the second arbitration strategy is selected, the selected arbitration strategy may be maintained for a time interval. That is, during the time interval, the Tx logic operates according to the selected arbitration strategy (e.g., selects TLPs from completed TLPs, delivered TLPs, and non-delivered TLPs for transmission), and may pause to select between the first arbitration strategy and the second arbitration strategy. The time interval may also be adjusted according to the actual workload.

[0036] In some embodiments, Figure 2 The method can be implemented in one or more modules as a set of logic instructions stored in a machine or computer readable storage medium such as a random access memory (RAM), a read-only memory (ROM), a programmable ROM (PROM), firmware, flash memory, etc.; implemented in configurable logic such as a programmable logic array (PLA), a field programmable gate array (FPGA), a complex programmable logic device (CPLD); implemented in fixed-function logic hardware using circuit technology such as an application specific integrated circuit (ASIC), a complementary metal oxide semiconductor (CMOS), or a transistor-transistor logic (TTL) technology; or implemented in any combination thereof.

[0037] For example, Figure 2 The computer program code for the operations shown in the method can be written in any combination of one or more programming languages, including object-oriented programming languages, such as JAVA, SMALLTALK, C++, etc., and conventional procedural programming languages, such as the "C" programming language or similar programming languages. In addition, the logic instructions may include assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcodes, state setting data, configuration data of integrated circuits, state information that personalizes hardware-local electronic circuits and / or other structural components (e.g., main processors, central processing units (CPUs), microcontrollers, etc.).

[0038] For example, Figure 3An example pseudo-code implementation of a process for selecting between a first arbitration strategy and a second arbitration strategy based on a completion TLP count, a posted TLP count, and a non-posted TLP count according to an embodiment of the present application is shown.

[0039] like Figure 3 As shown, optionally, there may be a sleep time interval, during which the selected arbitration strategy is maintained and the selection between the first arbitration strategy and the second arbitration strategy is suspended. The sleep time interval may be adjusted according to actual workload.

[0040] As described above, the threshold value can be adjusted according to the actual workload of the PCIe device. For example, the threshold value (P) can be determined by performing three or more (N≥3) samplings when a TOR timeout occurs for a delivered TLP. For i∈{1,2,3,…,N}, P i =completion TLP count / (posted TLP count+non-posted TLP count+completionTLP count), where completion TLP count represents the completed TLP count in the most recent time period, posted TLP count represents the posted TLP count in the most recent time period, and non-posted TLP count represents the non-posted TLP count in the most recent time period. i The minimum value of (i∈{1,2,3,…,N}) can be used as the threshold (P). There may be other ways to determine the adjustable threshold (P), for example, P i The average or other values ​​of (i∈{1,2,3,…,N}).

[0041] Figure 4 A flow chart of another method 400 for adjusting arbitration policy according to an embodiment of the present application is shown. The method 400 may be performed at a physical layer (eg, Tx logic) of a PCIe device.

[0042] The method 400 includes, at 410, determining a first credit unit change rate for a completed TLP to be processed, a second credit unit change rate for a delivered TLP to be processed, and a third credit unit change rate for a non-delivered TLP to be processed during a recent time period. The completed TLPs may include completed TLPs with non-relaxed ordering and completed TLPs with relaxed ordering. The delivered TLPs, the non-delivered TLPs, and the completed TLPs with non-relaxed ordering may be queued in a sequential queue according to a time order, such as Figure 1As shown. The duration of the most recent time period may be preset or may be determined based on the real-time workload of the PCIe device, which is not limited herein. The first credit unit change rate indicates the rate of change over time of credit units allocated for completed TLPs. The second credit unit change rate indicates the rate of change over time of credit units allocated for delivery-based TLPs. The third credit unit change rate indicates the rate of change over time of credit units allocated for non-delivery-based TLPs.

[0043] Method 400 includes, at 420, selecting between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate. The first arbitration strategy includes round-robin arbitration between the completion TLP to be processed, the delivery TLP to be processed, and the non-delivery TLP to be processed. The second arbitration strategy includes round-robin arbitration between the completion TLP to be processed and the non-delivery TLP to be processed. Under the second arbitration strategy, the delivery TLP to be processed will be processed when there is no completion TLP to be processed and there is no non-delivery TLP to be processed.

[0044] In one example, if a first ratio of the first credit unit change rate to the second credit unit change rate is greater than a first threshold value and a second ratio of the first credit unit change rate to the third credit unit change rate is greater than a second threshold value, a first arbitration strategy may be selected. In another example, if the first ratio is not greater than the first threshold value or the second ratio is not greater than the second threshold value, a second arbitration strategy may be selected. The first threshold value and the second threshold value may be adjusted according to the actual workload. For example, the first threshold value may be determined based on a sampled value of the first ratio of the first credit unit change rate to the second credit unit change rate when a TOR timeout occurs for a delivery-based TLP, and the second threshold value may be determined based on a sampled value of the second ratio of the first credit unit change rate to the third credit unit change rate when a TOR timeout occurs for a delivery-based TLP.

[0045] In some embodiments, after the first arbitration strategy or the second arbitration strategy is selected, the selected arbitration strategy may be maintained for a time interval. That is, during the time interval, the Tx logic operates according to the selected arbitration strategy (e.g., selects TLPs from completed TLPs, delivered TLPs, and non-delivered TLPs for transmission), and may pause to select between the first arbitration strategy and the second arbitration strategy. The time interval may also be adjusted according to the actual workload.

[0046] In some embodiments, Figure 4The method can be implemented in one or more modules as a set of logic instructions stored in a machine or computer readable storage medium such as a random access memory (RAM), a read-only memory (ROM), a programmable ROM (PROM), firmware, flash memory, etc.; implemented in configurable logic such as a programmable logic array (PLA), a field programmable gate array (FPGA), a complex programmable logic device (CPLD); implemented in fixed-function logic hardware using circuit technology such as an application specific integrated circuit (ASIC), a complementary metal oxide semiconductor (CMOS), or a transistor-transistor logic (TTL) technology; or implemented in any combination thereof.

[0047] For example, Figure 4 The computer program code for the operations shown in the method can be written in any combination of one or more programming languages, including object-oriented programming languages, such as JAVA, SMALLTALK, C++, etc., and conventional procedural programming languages, such as the "C" programming language or similar programming languages. In addition, the logic instructions may include assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcodes, state setting data, configuration data of integrated circuits, state information that personalizes hardware-local electronic circuits and / or other structural components (e.g., main processors, central processing units (CPUs), microcontrollers, etc.).

[0048] For example, Figure 5 An example pseudo-code implementation of a process of selecting between a first arbitration strategy and a second arbitration strategy based on a first credit unit change rate, a second credit unit change rate, and a third credit unit change rate according to an embodiment of the present application is shown.

[0049] like Figure 5 As shown, optionally, there may be a sleep time interval, during which the selected arbitration strategy is maintained and the selection between the first arbitration strategy and the second arbitration strategy is suspended. The sleep time interval may be adjusted according to actual workload.

[0050] As described above, the first threshold and the second threshold can be adjusted according to the actual workload of the PCIe device. For example, three or more (N≥3) samplings can be performed to determine the first threshold (P1) and the second threshold (P2) when a TOR timeout occurs for a delivered TLP. For i∈{1,2,3,…,N}, Where d(·) / d(t) represents the time derivative of the variable (·), CPL credit count indicates the number of credit units allocated for completed TLPs, P credit count indicates the number of credit units allocated for delivered TLPs, and NP credit count indicates the number of credit units allocated for non-delivered TLPs. i The minimum value of (i∈{1,2,3,…,N}) can be used as the first threshold (P1), P2 i The minimum value of (i∈{1,2,3,…,N}) can be used as the second threshold (P2). There may be other ways to determine the adjustable first threshold (P1) and the second threshold (P2), for example, P1 i The average value of (i∈{1,2,3,…,N}) and P2 i The average or other values ​​of (i∈{1,2,3,…,N}).

[0051] Figure 6 is a block diagram illustrating components capable of reading instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium) and performing any one or more of the methods discussed herein, according to some example embodiments. Specifically, Figure 6 A diagrammatic representation of hardware resources 600 is shown, including one or more processors (or processor cores) 610, one or more memory / storage devices 620, and one or more communication resources 630, each of which may be communicatively coupled via a bus 640. Hardware resources 600 may be part of any entity or non-entity (e.g., a service or function) described in the present disclosure. For embodiments utilizing node virtualization (e.g., NFV), a hypervisor 602 may be executed to provide an execution environment for one or more network slices / subslices to utilize hardware resources 600.

[0052] Processor 610 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP) such as a baseband processor, an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processor 612 and processor 614. In some embodiments, a processor may also be referred to as a “processing circuit.”

[0053] The memory / storage device 620 may include main memory, disk storage, or any suitable combination thereof. The memory / storage device 620 may include, but is not limited to, any type of volatile or non-volatile memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, solid-state storage, etc.

[0054] The communication resources 630 may include an interconnect or network interface component or other suitable device to communicate with one or more peripheral devices 604 or one or more databases 606 via the network 608. For example, the communication resources 630 may include a wired communication component (e.g., for coupling via a universal serial bus (USB), Ethernet, etc.), a cellular communication component, a near field communication (NFC) component, (or Low power) components, wireless fidelity Components and other communication components. The communication resources 630 may also include interface circuits for supporting corresponding communication components, such as communication circuits according to the PCIe standard, cellular communication standards, etc.

[0055] The instructions 650 may include software, programs, applications, applet programs, apps, or other executable code for causing at least any processor 610 to perform any one or more of the methods discussed herein. The instructions 650 may reside in whole or in part in at least one of the processor 610 (e.g., within a buffer memory of the processor), the memory / storage device 620, or any suitable combination thereof. In addition, any portion of the instructions 650 may be transmitted to the hardware resources 600 from any combination of the peripheral device 604 or the database 606. Therefore, the memory of the processor 610, the memory / storage device 620, the peripheral device 604, and the database 606 are examples of computer-readable and machine-readable media.

[0056] The following paragraphs describe examples of various embodiments.

[0057] Example 1. An apparatus for adjusting an arbitration strategy, comprising: a processing circuit configured to: determine a completed transaction layer packet (TLP) count, a delivered TLP count, and a non-delivered TLP count within a recent time period, wherein the completed TLP count indicates the number of completed TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed; and based on the completed TLP count, the delivered TLP count, and the non-delivered TLP count within the recent time period, in a first arbitration strategy and a second arbitration strategy, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed; and an interface circuit, which is coupled to the processing circuit and is configured to: send the TLP selected according to the selected arbitration strategy.

[0058] Example 2. An apparatus as described in Example 1, wherein the processing circuit is further configured to: select the first arbitration strategy if the ratio of the completed TLP count in the most recent time period to the sum of the completed TLP count, the delivered TLP count and the non-delivered TLP count is greater than a threshold; or select the second arbitration strategy if the ratio is not greater than the threshold, wherein the threshold can be adjusted according to the actual workload.

[0059] Example 3. An apparatus as described in Example 2, wherein the threshold is determined based on a sampled value of the ratio of the completion TLP count to the sum of the completion TLP count, the delivery TLP count, and the non-delivery TLP count when a request table (TOR) timeout occurs for the delivered TLP.

[0060] Example 4. An apparatus as described in any of Examples 1 to 3, wherein the processing circuit is further configured to maintain the selected arbitration strategy for a time interval that can be adjusted according to actual workload.

[0061] Example 5. The apparatus of any one of Examples 1 to 4, wherein the Completion TLPs include Completion TLPs with non-relaxed ordering and Completion TLPs with relaxed ordering.

[0062] Example 6. An apparatus for adjusting an arbitration strategy, comprising: a processing circuit configured to: determine a first credit unit change rate for a completion transaction layer packet (TLP) to be processed, a second credit unit change rate for a delivered TLP to be processed, and a third credit unit change rate for a non-delivered TLP to be processed during a recent time period; and select between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed; and an interface circuit coupled to the processing circuit and configured to: send a TLP selected according to the selected arbitration strategy.

[0063] Example 7. An apparatus as described in Example 6, wherein the processing circuit is further configured to: select the first arbitration strategy if a first ratio of the first credit unit change rate to the second credit unit change rate is greater than a first threshold and a second ratio of the first credit unit change rate to the third credit unit change rate is greater than a second threshold; or select the second arbitration strategy if the first ratio is not greater than the first threshold or the second ratio is not greater than the second threshold, wherein the first threshold and the second threshold can be adjusted according to the actual workload.

[0064] Example 8. An apparatus as described in Example 7, wherein the first threshold is determined based on a sampled value of the first ratio of the first credit unit change rate to the second credit unit change rate when a request table (TOR) timeout occurs for the delivered TLP, and the second threshold is determined based on a sampled value of the second ratio of the first credit unit change rate to the third credit unit change rate when a TOR timeout occurs for the delivered TLP.

[0065] Example 9. An apparatus as described in any of Examples 6 to 8, wherein the processing circuit is further configured to maintain the selected arbitration strategy for a time interval that can be adjusted according to actual workload.

[0066] Example 10. The apparatus of any of Examples 6 to 9, wherein the Completion TLPs include Completion TLPs with non-relaxed ordering and Completion TLPs with relaxed ordering.

[0067] Example 11. A method for adjusting an arbitration strategy, comprising: determining a completion transaction layer packet (TLP) count, a delivered TLP count, and a non-delivered TLP count within a recent time period, wherein the completion TLP count indicates the number of completion TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed; and selecting between a first arbitration strategy and a second arbitration strategy based on the completion TLP count, the delivered TLP count, and the non-delivered TLP count within the recent time period, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed.

[0068] Example 12. The method as described in Example 11 also includes: if the ratio of the completed TLP count in the most recent time period to the sum of the completed TLP count, the delivered TLP count and the non-delivered TLP count is greater than a threshold, selecting the first arbitration strategy; or if the ratio is not greater than the threshold, selecting the second arbitration strategy, wherein the threshold can be adjusted according to the actual workload.

[0069] Example 13. A method as described in Example 12, wherein the threshold is determined based on a sampled value of the ratio of the completion TLP count to the sum of the completion TLP count, the delivery TLP count and the non-delivery TLP count when a request table (TOR) timeout occurs for the delivered TLP.

[0070] Example 14. The method of any one of Examples 11 to 13, further comprising maintaining the selected arbitration policy for a time interval that can be adjusted according to actual workload.

[0071] Example 15. A method for adjusting an arbitration strategy, comprising: determining a first credit unit change rate for a completion transaction layer packet (TLP) to be processed, a second credit unit change rate for a delivered TLP to be processed, and a third credit unit change rate for a non-delivered TLP to be processed during a recent time period; and selecting between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and no non-delivered TLP to be processed.

[0072] Example 16. The method as described in Example 15 also includes: if a first ratio of the first credit unit change rate to the second credit unit change rate is greater than a first threshold and a second ratio of the first credit unit change rate to the third credit unit change rate is greater than a second threshold, selecting the first arbitration strategy; or if the first ratio is not greater than the first threshold or the second ratio is not greater than the second threshold, selecting the second arbitration strategy, wherein the first threshold and the second threshold can be adjusted according to the actual workload.

[0073] Example 17. A method as described in Example 16, wherein the first threshold is determined based on a sampled value of the first ratio of the first credit unit change rate to the second credit unit change rate when a request table (TOR) timeout occurs for the delivered TLP, and the second threshold is determined based on a sampled value of the second ratio of the first credit unit change rate to the third credit unit change rate when a TOR timeout occurs for the delivered TLP.

[0074] Example 18. The method of any one of Examples 15 to 17, further comprising maintaining the selected arbitration policy for a time interval that can be adjusted according to actual workload.

[0075] Example 19. A computer-readable storage medium having instructions stored thereon, which, when executed by a processing circuit, cause the processing circuit to perform the method as described in any one of Examples 11 to 18.

[0076] Example 20. A computing device comprising means for performing the method of any one of Examples 11 to 18.

[0077] Although certain embodiments are illustrated and described herein for descriptive purposes, various alternative and / or equivalent embodiments or implementations planned to achieve the same purpose may replace the embodiments shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptation or variation of the embodiments discussed herein. Therefore, it is readily understood that the embodiments described herein are limited only by the appended claims and their equivalents.

Claims

1. A device for adjusting an arbitration strategy, comprising: The processing circuit is configured to: Determining a completion transaction layer packet (TLP) count, a delivered TLP count, and a non-delivered TLP count within a recent time period, wherein the completion TLP count indicates the number of completion TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed; as well as Based on the completion TLP count, the delivery TLP count, and the non-delivery TLP count within the most recent time period, selecting between a first arbitration strategy and a second arbitration strategy, wherein the first arbitration strategy includes a polling arbitration between the completion TLP to be processed, the delivery TLP to be processed, and the non-delivery TLP to be processed, and the second arbitration strategy includes a polling arbitration between the completion TLP to be processed and the non-delivery TLP to be processed and processing the delivery TLP to be processed when there is no completion TLP to be processed and no non-delivery TLP to be processed; as well as an interface circuit coupled to the processing circuit and configured to: Send the TLP selected according to the selected arbitration strategy.

2. The device according to claim 1, wherein: The processing circuit is further configured to: If the ratio of the completed TLP count in the most recent time period to the sum of the completed TLP count, the delivered TLP count and the non-delivered TLP count is greater than a threshold, selecting the first arbitration strategy; or If the ratio is not greater than the threshold, selecting the second arbitration strategy, The threshold can be adjusted according to actual workload.

3. The device as claimed in claim 2, wherein: The threshold is determined based on a sampled value of the ratio of the completion TLP count to the sum of the completion TLP count, the delivery TLP count, and the non-delivery TLP count when a request table (TOR) timeout occurs for the delivered TLP.

4. The device according to claim 1, wherein: The processing circuit is further configured to maintain the selected arbitration strategy for a time interval that can be adjusted according to actual workload.

5. The device according to any one of claims 1 to 4, wherein: The completion TLPs include completion TLPs with non-relaxed ordering and completion TLPs with relaxed ordering.

6. A device for adjusting an arbitration strategy, comprising: The processing circuit is configured to: determining a first credit unit change rate for completion transaction layer packets (TLPs) to be processed, a second credit unit change rate for delivered TLPs to be processed, and a third credit unit change rate for non-delivered TLPs to be processed during a recent time period; as well as selecting between a first arbitration strategy and a second arbitration strategy based on the first credit unit change rate, the second credit unit change rate, and the third credit unit change rate, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivered TLP to be processed, and the non-delivered TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivered TLP to be processed and processing the delivered TLP to be processed when there is no completion TLP to be processed and there is no non-delivered TLP to be processed; as well as an interface circuit coupled to the processing circuit and configured to: Send the TLP selected according to the selected arbitration strategy.

7. The device according to claim 6, wherein: The processing circuit is further configured to: If a first ratio of the first credit unit change rate to the second credit unit change rate is greater than a first threshold and a second ratio of the first credit unit change rate to the third credit unit change rate is greater than a second threshold, selecting the first arbitration strategy; or If the first ratio is not greater than the first threshold or the second ratio is not greater than the second threshold, selecting the second arbitration strategy, The first threshold and the second threshold can be adjusted according to actual workload.

8. The device according to claim 7, wherein: The first threshold is determined based on a sampled value of the first ratio of the first credit unit change rate to the second credit unit change rate when a request table (TOR) times out for the delivered TLP, and the second threshold is determined based on a sampled value of the second ratio of the first credit unit change rate to the third credit unit change rate when a TOR times out for the delivered TLP.

9. The device according to claim 6, wherein: The processing circuit is further configured to maintain the selected arbitration strategy for a time interval that can be adjusted according to actual workload.

10. The device according to any one of claims 6 to 9, wherein: The completion TLPs include completion TLPs with non-relaxed ordering and completion TLPs with relaxed ordering.

11. A method for adjusting an arbitration strategy, comprising: Determining a completion transaction layer packet (TLP) count, a delivered TLP count, and a non-delivered TLP count within a recent time period, wherein the completion TLP count indicates the number of completion TLPs to be processed, the delivered TLP count indicates the number of delivered TLPs to be processed, and the non-delivered TLP count indicates the number of non-delivered TLPs to be processed; as well as Based on the completion TLP count, the delivery TLP count and the non-delivery TLP count within the most recent time period, a selection is made between a first arbitration strategy and a second arbitration strategy, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivery TLP to be processed and the non-delivery TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivery TLP to be processed and processing the delivery TLP to be processed when there is no completion TLP to be processed and no non-delivery TLP to be processed.

12. The method of claim 11, further comprising: If the ratio of the completed TLP count in the most recent time period to the sum of the completed TLP count, the delivered TLP count and the non-delivered TLP count is greater than a threshold, selecting the first arbitration strategy; or If the ratio is not greater than the threshold, selecting the second arbitration strategy, The threshold can be adjusted according to actual workload.

13. The method of claim 12, wherein: The threshold is determined based on a sampled value of the ratio of the completion TLP count to the sum of the completion TLP count, the delivery TLP count, and the non-delivery TLP count when a request table (TOR) timeout occurs for the delivered TLP.

14. The method of any one of claims 11 to 13, further comprising maintaining the selected arbitration strategy for a time interval, the time interval being adjustable according to actual workload.

15. A method for adjusting an arbitration strategy, comprising: determining a first credit unit change rate for completion transaction layer packets (TLPs) to be processed, a second credit unit change rate for delivered TLPs to be processed, and a third credit unit change rate for non-delivered TLPs to be processed during a recent time period; as well as Based on the first credit unit change rate, the second credit unit change rate and the third credit unit change rate, a selection is made between a first arbitration strategy and a second arbitration strategy, wherein the first arbitration strategy includes polling arbitration between the completion TLP to be processed, the delivery TLP to be processed and the non-delivery TLP to be processed, and the second arbitration strategy includes polling arbitration between the completion TLP to be processed and the non-delivery TLP to be processed and processing the delivery TLP to be processed when there is no completion TLP to be processed and there is no non-delivery TLP to be processed.

16. The method of claim 15, further comprising: If a first ratio of the first credit unit change rate to the second credit unit change rate is greater than a first threshold and a second ratio of the first credit unit change rate to the third credit unit change rate is greater than a second threshold, selecting the first arbitration strategy; or If the first ratio is not greater than the first threshold or the second ratio is not greater than the second threshold, selecting the second arbitration strategy, The first threshold and the second threshold can be adjusted according to actual workload.

17. The method of claim 16, wherein: The first threshold is determined based on a sampled value of the first ratio of the first credit unit change rate to the second credit unit change rate when a request table (TOR) times out for the delivered TLP, and the second threshold is determined based on a sampled value of the second ratio of the first credit unit change rate to the third credit unit change rate when a TOR times out for the delivered TLP.

18. The method of any one of claims 15 to 17, further comprising maintaining the selected arbitration strategy for a time interval, the time interval being adjustable according to actual workload.

19. A computer-readable storage medium storing instructions, which, when executed by a processing circuit, cause the processing circuit to perform the method according to any one of claims 11 to 18.

20. A computing device comprising means for performing the method of any one of claims 11 to 18.