SATURATION OF MULTIPLE PCIE SLOTS IN A SERVER BY MULTIPLE CONNECTORS ON A SINGLE TEST CARD

A single PCIe probe card with multiple ports connected to all slots via customized cables addresses inefficiencies in current testing methods, achieving efficient and comprehensive PCIe slot testing by reducing the number of cards and power consumption.

DE102022127485B4Active Publication Date: 2025-10-09HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
DE102022127485
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-06-30
Filing Date
2022-10-19
Publication Date
2025-10-09
Estimated Expiration
2042-10-19

AI Technical Summary

Technical Problem

Current PCIe testing methods require multiple PCIe probe cards to test multiple slots, leading to inefficient use of components and increased power consumption due to unused ports on each card.

Method used

A system that uses a single PCIe probe card with multiple ports connected to all PCIe slots via customized cables, allowing full saturation and efficient testing of all slots without excess components or power consumption.

Benefits of technology

Reduces the number of PCIe probe cards needed from N to 1, optimizing component usage and power efficiency while ensuring comprehensive testing of all PCIe slots.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer-implemented method comprising: Detecting a test card (120, 140, 320) having a plurality of test ports (123-126, 143-146, 323-326) connected to a plurality of input / output (I / O) slots (133-136, 153-155, 311-314, 341-343) of a computing device (130, 150, 310, 340); Communicating with the plurality of test ports via the plurality of I / O slots of the computing device; generating a script (112) for each test port by the computing device, the script comprising a series of read and write operations to be performed by the test card on a storage device associated with the computing device; and Allowing the execution of the script and the performance of the corresponding read and write operations through the plurality of test ports, whereby testing of the plurality of I / O slots of the computing device in parallel is facilitated by the plurality of test ports of the test card; and Modifying the script, wherein modifying the script comprises modifying the script by a user via a display screen (600, 660, 680) of the computing device or other computing unit (104) by adjusting parameters including at least one of a maximum payload size (114), a maximum read request size (115), and memory addresses (116) associated with read and write operations.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] A compute device with multiple Peripheral Component Interconnect Express (PCIe) slots may need to be tested to verify various characteristics of a specific PCIe slot, including the latency, bandwidth, and stability of that particular PCIe slot. PCIe test cards can be used to diagnose, troubleshoot, and load test the PCIe input / output (I / O) functionality of the compute device. A current configuration for a PCIe test card involves a multi-port switch, with only a single port on the test card being used to saturate one of multiple PCIe slots on a compute device, such as a server. Because only a single port on the test card is used, the other ports on the test card remain unused. Additionally, one PCIe test card must be used per PCIe slot to perform the tests on the server's multiple PCIe slots.

[0002] US 2017 / 0 337 069 A1 relates to testing PCIe devices.

[0003] CN 1 14 237 998 A relates to the field of server testing, in particular to a method, a system, an apparatus and a medium for testing PCIe connections.

[0004] CN 2 13 658 911 U relates to the technical field of automated testing, in particular to an automated testing system for PCIe cards.

[0005] The present invention is defined by independent claims 1, 12, 20. Embodiments are subject to the respective dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. shows a network environment in which a single PCIe test card is used to test multiple PCIe slots, in accordance with one aspect of the present application. Fig. shows an environment where multiple PCIe test cards are used to test multiple PCIe slots, in accordance with the state of the art. Fig. shows an environment in which a single PCIe test card is used to saturate and test multiple PCIe slots, where the number of test ports corresponds to the number of slots, in accordance with one aspect of the present application. Fig. shows an environment in which a single PCIe test card is used to saturate and test multiple PCIe slots, where the number of test ports is greater than the number of slots, in accordance with one aspect of the present application. Fig. shows a first cable configuration between the single PCIe test card and the multiple PCIe slots of Fig. . Fig. shows a second cable configuration between the single PCIe test card and the multiple PCIe slots of Fig. . Fig. shows a screen displayed as part of a user interface flow in accordance with an aspect of the present application. Fig. shows a screen displayed as part of a user interface flow in accordance with an aspect of the present application. Fig. shows a screen displayed as part of a user interface flow in accordance with an aspect of the present application. Fig. shows a flowchart illustrating a method that facilitates the saturation of multiple PCIe slots in a server with multiple ports in a single test card according to one aspect of the present application.

[0006] In the figures, like numbers refer to the same elements of the figure. DETAILED DESCRIPTION

[0007] The following description is intended to enable one skilled in the art to make and use the aspects and examples, and is provided in the context of a specific application and its requirements. Various modifications to the disclosed aspects will be readily apparent to one skilled in the art, and the general principles defined herein may be applied to other aspects and applications without departing from the spirit and scope of the present disclosure. Therefore, the aspects described herein are not limited to the aspects shown, but are to be of the widest possible scope consistent with the principles and features disclosed herein.

[0008] A computing device with multiple PCIe slots may need to be tested to verify various characteristics of a particular PCIe slot, including the latency, bandwidth, and stability of the respective PCIe slot. PCIe test cards can be used to diagnose, troubleshoot, and load test the PCIe input / output (I / O) functionality of the computing device. In this disclosure, a test card or PCIe test card may include a "switch" comprising a plurality of "ports," as described below with respect to Fig. is shown. That is, a current configuration for a PCIe test card includes a multi-port switch. For a computing device (e.g., a server) with multiple PCIe slots, current testing procedures allow a PCIe test card to be inserted into each slot (via PCIe Goldfinger), using only a single port on a given PCIe test card (or switch) to saturate one of the computing device's multiple PCIe slots. Thus, because only a single port on a given test card is used, the other ports on that test card remain unused. Furthermore, one PCIe test card must be used per PCIe slot (i.e., multiple PCIe test cards) to perform tests on all PCIe slots on the server.

[0009] Assume a number M of ports on the PCIe test card and a number N of PCIe slots on the server, where in general M is greater than or equal to N, i.e., the number of ports on the PCIe test card is generally greater than or equal to the number of PCIe slots on a server. For example, a Gen5 PCIe switch on a given test card may have M=10 ports, while older servers may have N=3 PCIe slots and newer servers may have N=[5 ... 10] PCIe slots. This may result in a total of N PCIe test cards being used to perform tests on each of the N PCIe slots. Since only one of the M ports on each of the N total PCIe test cards is used, M-1 ports remain unused on each of the N PCIe test cards, as discussed below with respect to Fig. This can lead to inefficient use of both the components and the power consumption of each PCIe test card.

[0010] Aspects of the present application provide a system that addresses the inefficient use of current testing methods. In the described aspects, only one PCIe test card is required to perform tests on multiple PCIe slots of a server. Instead of using PCIe gold finger connections from multiple test cards to multiple PCIe slots (i.e., one test card per slot), the described aspects may provide a connection or coupling between some or all M ports of a single PCIe test card to all N PCIe slots of the server, as described below with respect to Fig. This connection or coupling can be done via custom PCIe cables, such as a Y-cable or separate cables, as described below with respect to the Fig. Such a configuration can allow the system to use a single PCIe test card instead of a total of N PCIe test cards to perform tests on the server's N PCIe slots.

[0011] By reducing the number of PCIe test cards from N to 1 and by reducing power consumption when the number of PCIe test cards (and the corresponding switches on the PCIe test cards) decreases from N to 1, the described aspects can lead to a more efficient system and method for performing tests on PCIe slots of a server.

[0012] The term "server" is used in this disclosure to refer to a computing device, a network unit, or other equipment. A server may include a plurality of slots. The term "slot" in this disclosure refers to a slot for a circuit board, an expansion card, or other I / O-related circuitry. The terms "slot" and "I / O slot" are used interchangeably in this disclosure. An example of a slot or I / O slot is a Peripheral Component Interconnect Express (PCIe) slot. PCIe cards or other PCIe components may be inserted into a "PCIe slot" on a server. PCIe slots, cards, and components may use an industry-standard, high-speed computer bus architecture.

[0013] The term "test card" is used in this disclosure to refer to a card that can be coupled, connected, or inserted into a slot of a server to perform a test of the slot. The terms "test card" and "PCIe test card" are used interchangeably in this disclosure, where a PCIe test card can be coupled, connected, or inserted into a PCIe slot of a server to perform tests of the PCIe slot, which may include verifying various characteristics of the PCIe slot, including the latency, bandwidth, and stability of the PCIe slot. In this disclosure, a test card or a PCIe test card may include a "switch," and the term "ports of a test card" may be used interchangeably with the term "ports of a switch."

[0014] The term "script" is used in this disclosure to refer to a set or sequence of instructions or commands that can be sent to a port to configure or program a packet generator of the port to perform the memory read and write operations. The commands included in the script may include, for example, data patterns, a maximum payload size, a maximum read request size, memory addresses of a server's memory to or from which the packet generator will transmit read or write operations. The commands may also include initiating or starting the packet generator to program and execute the memory read and write operations. An environment for testing PCIe slots with a single PCIe card

[0015] Fig. shows a network environment 100 in which a single PCIe test card is used to test multiple PCIe slots, in accordance with one aspect of the present application. The environment 100 may include: a device 104, an associated user 106, and peripheral I / O user devices 108 (e.g., a display 105, a keyboard 106, and a pointing device 107); a server 130 and a server 150; and a test card 120 and a test card 140. The device 104 and the servers 130 and 150 may communicate with each other over a network 102.

[0016] Each server may have a plurality of slots (i.e., I / O slots or PCIe slots). For example, server 130 may have: a Slot_1 133; a Slot_2 134; a Slot_3 135; and a Slot_N 136. Similarly, server 150 may have: a Slot_1 153, a Slot_2 154, and a Slot_N 155. Each test card may have a switch with a plurality of ports. For example, test card 120 may have a switch 122 having: a Port_1 123; a Port_2 124; a Port_3 125; and a Port_M 126. Similarly, test card 140 may have a switch 142 having: a Port_1 143; a Port_2 144; a connection_3 145 and a connection_M 146.

[0017] In addition, each port may contain its own packet generator and a local private buffer, e.g., a volatile memory, in which information associated with the execution of a script or commands for test purposes can be stored. For example, port 1 123 on switch 122 of test card 120 may include a packet generator 110, which may be configured or programmed to perform, e.g., read and write operations, and a local private buffer 111 in which script / commands 112 may be stored. Scripts / commands 112 may, for example,Comprise: data patterns 113 specifying the read / write operations or data to be written to memory; a maximum payload size 114; a maximum read request size 115; memory addresses 116 to or from which data is to be written or read; data to be written to a memory of the server 117 (also shown as data pattern 113); and data to be read from a memory of the server 118.

[0018] A plurality of test ports on each card can be connected to the plurality of I / O slots of the computing device. With a number of M=10 test ports on the test card 120 and a number of N=10 slots on the server 130, each port on the test card 120 can be connected to a corresponding slot on the server 130, leaving no port unused. Port_1 123 can be connected to Slot_1 133; Port_2 124 can be connected to Slot_2 134; Port_3 125 can be connected to Slot_3 135; and Port_M 126 can be connected to Slot_N 136.

[0019] The number of ports on the test card can be equal to or greater than the number of slots on the server. This means that a single test card can completely saturate all of the server's slots, either using all of the ports or leaving some ports unused. For example, with M=10 test ports on the test card 140 and N=3 (where M is greater than N) slots on the server 150, most (e.g., some, but not all) of the ports on the test card 140 can be connected to a corresponding slot on the server 150, leaving some ports unused, but achieving complete saturation of the N slots on the server 150 with a single test card (140). Port_1 143 can be paired with Slot_1 153, Port_2 144 can be paired with Slot_2 154 and Port_3 145 can be paired with Slot_N 155.

[0020] The user 106, via peripheral I / O user devices 108, can use the device 104 to operate the server 130, e.g., to remotely control the server 130 over the network 102 connected to the server management software or a baseboard management controller (not shown) of the server 130. The server 130 can be installed with a Universal Serial Bus (USB) drive 137, which can contain a software testing tool 138, such as an .efi file. During operation, the user 106 can remotely power on the server 130 by sending a command 160 to the server 130. Upon receiving the command 160, the server 130 can boot the system (operation 162), e.g., B. into a UEFI (Unified Extensible Firmware Interface) shell, Windows, Linux or another operating system, and the user 106 can then remotely execute the software testing tool (e.g. the .efi file) by sending a command 164 to the server 130.After receiving command 164, server 130 may execute the test tool (operation 166). For example, server 130 may execute the .efi file, search for or detect test cards (operation 168), and return an indicator for the detected test cards (as result 170).

[0021] The device 104 may receive the results 170 and display the corresponding information on the display 105, similar to portions of the screen 600 described below with respect to Fig. The user 106 can select one or more slots on which to begin testing by sending a command 172 to the server 130. Upon receiving the command 172, the server 130 can communicate with the ports via the slots (operation 174), e.g., to start the test on the port or ports coupled or connected to the selected slot or slots by sending the script to the test card 120. The test card 120 can program its packet generator 110 based on the script (operation 176 based on the script(s) 112) and execute the script (operation 178 based on the script(s) 112), e.g., by using the packets generated by the packet generator 110 to perform the appropriate read and write operations.

[0022] Server 130 may monitor the results of the script executed by each port (operation 180), in this case, the script / commands 112 executed on port 1 123. For example, server 130 may receive a running counter reading from packet generator 110 of port 1 123 and send the results 182 to device 104 for display on display 105. Example screens as part of the user interface flow, including interactive user elements, are described below with respect to screens 600, 660, and 680 of the Fig. shown.

[0023] The user 106 may also send a command to the server 130 to terminate the test on a selected port (e.g., port 1 123), which may cause the server 130 to send a corresponding command to port 1 123 to terminate the execution of the script(s) 112. These communications are in Fig. Although not explicitly marked, they can proceed in a similar manner as described above for sending command 172 to start the tests on the selected port.

[0024] Additionally, user 106 may configure or modify a script by changing certain parameters associated with the script or commands, including adjusting the maximum payload size, the maximum read request size, and the memory addresses. For example, user 106 may modify script 112 for the selected Slot_1 123 and the corresponding or paired Port_1 123 to adjust any of these parameters by sending a command 184 to server 130. Upon receiving command 130, server 130 may modify the script or commands (operation 186). In some cases, server 130 may send a command to Port_1 123 to stop the execution of a test (if a test is currently in progress) and modify the script / commands 112 with the adjusted parameters.Port_1 123 can make these changes through its packet generator 110, which operates on the script / commands 112 stored in the local private buffer 111 of port_1 123. In some aspects, device 104 / server 130 can automatically modify the previously generated script based on a predetermined set of test parameters. Testing of the PCIe slots can be performed by fully saturating the server's slots using the multiple ports of a single switch (i.e., a single test card).

[0025] While environment 100 depicts device 104 communicating with servers 130 and 150 over network 102, in some aspects, user 106 and peripheral I / O user devices 108 may be coupled or associated with the servers. That is, device 104 and network 102 may be optional entities, such that the commands and results originating or terminating at device 104 described above do not traverse a network and may instead be communicated directly from server 130 to user 106 and peripheral I / O devices 108. Testing PCIe slots with multiple PCIe cards (state of the art) compared to a single PCIe card (described aspect)

[0026] Fig. shows an environment 200 in which multiple PCIe test cards are used to test multiple PCIe slots, in accordance with the prior art. The environment 200 may include a server 210 and multiple test cards 220, 230, 240, and 250. The server 210 may include a plurality of slots (i.e., I / O slots or PCIe slots): a Slot_1 211; a Slot_2 212; a Slot_3 213; and a Slot_N 214. Each test card may include a switch including a plurality of ports. For example, the test card 220 may include a switch 222 including: a Port_1 223; a Port_2 224; a port_3 225 and a port_M 226. Test card 230 may include a switch 232 comprising: a port_1 233; a port_2 234; a port_3 235 and a port_M 236.Test card 240 may include a switch 242 comprising: a port_1 243; a port_2 244; a port_3 245; and a port_M 246. Test card 250 may include a switch 252 comprising: a port_1 253; a port_2 254; a port_3 255; and a port_M 256.

[0027] A single test port on each card can be connected to one of the plurality of I / O slots on the computing device. With M=10 test ports on each of the test cards 220-250 and N=10 slots on the server 210, one port on each of the test cards 220-250 can be connected to a single slot on the server 210, leaving M-1=9 ports on each of the test cards 220-250 unused. Port_1 223 of test card 220 can be connected to Slot_1 211; Port_1 233 of test card 230 can be connected to Slot_2 212; Port_1 243 of test card 240 can be connected to Slot_3 213; and Port_1 253 of test card 250 can be connected to Slot_N 214.While the environment 200 shows the first port of each test card connected to the slots of the server 210, any individual port of a test card can be connected to the slots of the server 210.

[0028] Fig. shows an environment 300 in which a single PCIe test card is used to saturate and test multiple PCIe slots, where the number of test ports corresponds to the number of slots, according to one aspect of the present application. The environment 300 may include a server 310 and a test card 320. Server 310 may include a plurality of slots (i.e., I / O slots or PCIe slots): a Slot_1 311; a Slot_2 312; a Slot_3 313; and a Slot_N 314. The test card 320 may include a switch 322 having a plurality of ports: Port_1 323; Port_2 324; Port_3 325; and Port_M 326.

[0029] The plurality of test ports of test card 320 can be connected to the plurality of I / O slots 311-314 of server 310. With a number M=10 test ports on test card 320 and a number N=10 slots on server 310, each port on test card 320 can be connected to a corresponding slot on server 310, leaving no port on test card 320 unused. Port_1 323 can be connected to Slot_1 311; Port_2 324 can be connected to Slot_2 312; Port_3 325 can be connected to Slot_3 313; and Port_M 326 can be connected to Slot_N 314.

[0030] Fig. shows an environment 330 in which a single PCIe test card is used to saturate and test multiple PCIe slots, where the number of test ports is greater than the number of slots, in accordance with one aspect of the present application. The environment 330 may include a server 340 and a test card 320 (as in Fig. Server 340 may include a plurality of slots (i.e., I / O slots or PCIe slots): a Slot_1 341, a Slot_2 342, and a Slot_N 343.

[0031] As above with regard to Fig. As described, the number of ports on the test card can be equal to or greater than the number of slots on the server. A single test card can fully utilize all of the server's slots, either utilizing all ports or leaving some ports unused. For example, with M=10 test ports on the test card 320 and N=3 (where M is greater than N) slots on the server 340, most (e.g., some, but not all) of the ports on the test card 320 can be connected to a corresponding slot on the server 340, leaving some ports unused, but fully saturating the N slots on the server 340 with a single test card (320). Port_1 323 can be paired with Slot_1 341; Port_2 324 can be paired with Slot_2 342; and port_3 325 can be paired with slot_N 343. Cable configurations

[0032] Fig. shows a first cable configuration 400 between the single PCIe test card and the multiple PCIe slots of Fig. The cable configuration 400 may include a Y-shaped connector element 410. One side of the connector element 410 may include connections to each of the test ports on the test card 320 (e.g., connections 401, 402, 403, and 404 to ports 323, 324, 325, and 326, respectively). The other side of the connector element 410 may include a separate cable or wired connection to each of the slots on the server 310 (e.g., cables or wired connections 411, 412, 413, and 414 to slots 311, 312, 313, and 314, respectively). The cable configuration 400 may be designed, adapted, or implemented so that the cables 411-414 can be inserted directly into the corresponding slots 311-314.

[0033] The described aspects enable the software test tool to execute and begin tests on ports coupled or connected to the selected slot or slots. For example, if slots 311-314 are selected, tests on ports 323-326 begin by sending a script to test card 320. Test card 320 can program the packet generator of each of its respective ports based on the script. The script can be the same or a different script. That is, the test tool can be programmed to execute or install the same or a different script on the multiple test ports to accommodate applications that may have different I / O patterns. For example, certain slots may be dedicated to applications associated with a larger number of read operations (e.g.,Some slots may be dedicated to applications that require more read than write operations, such as accessing video files, and testing based on either more reads than writes or only reads. Other slots may be dedicated to applications that require more write operations than reads, or only write operations. These different application requirements may require different scripts to be run or installed on each test port.

[0034] Similar to the above regarding Server 130 of Fig. described monitoring, server 310 can monitor the results of each (same or different) script executed from each port and display the results as in Fig. The results can indicate bandwidth saturation and connection status verification of a particular slot to which a test port is connected, as described below with respect to the Fig. described using the exemplary results shown.

[0035] Fig. shows a second cable configuration 500 between the single PCIe test card and the multiple PCIe slots of Fig. Cable configuration 500 may include separate cables or wired connections from each of the test card 320 ports to each of the server 310 slots (e.g., cables or wired connections 511, 512, 513, and 514 to slots 311, 312, 313, and 314, respectively). Similar to cable configuration 400, cable configuration 500 may be designed, adapted, or implemented so that cables 511-514 can be inserted directly into the corresponding slots 311-314. User interface tools and displayed results

[0036] Fig. shows a screen 600 displayed as part of a user interface flow according to one aspect of the present application. Screen 600 may include example results from the execution of scripts on a test card for multiple slots of a server, including scripts that perform concurrent memory read and write operations, i.e., read data from and write data to a storage device connected to the server. The results may include the following information: a line 630 for slot 02; a line 632 for slot 05; a line 634 for slot 06; a line 636 for slot 09; and a line 638 for slot 10.The information for each row or slot may include: a slot number 602; megabytes per second (“MB / Sec”) for both write operations (W) and read operations (R) 604, which may indicate the unit of the current data volume; the percentage bandwidth (“%Bdwdth”) for write operations (W) and read operations (R) 606, which may indicate the ratio between the current data volume and the maximum theoretical number; a link status 608, which may indicate, for example, the trained speed and link widths of the PCIe test card, a maximum payload size, and a maximum read request size; and a memory address 610 (“MemAddr”), which specifies an offset or is added to the memory address in the PCIe test card to or from which data is being written or read.

[0037] An element 605 (outlined in bold) displays MB / sec data corresponding to both write (W) and read (R) operations. Similarly, an element 607 (also outlined in bold) displays %Bwdth data corresponding to both write (W) and read (R) operations.

[0038] Screen 600 may also contain a connection recovery number 640, which indicates how often the PCIe test card enters a recovery mode. For example, element 641 may display this value for each slot as " <steckplatznummer>:<Anzahl der Male, die die PCle-Testkarte in den Wiederherstellungsmodus eintritt> ", e.g., "02:2" means that slot 02 enters recovery mode twice during the given test cycle, period, interval, or script, "05:2" means that slot 05 enters recovery mode twice during the given test cycle, period, interval, or script, etc.

[0039] Screen 600 may also include a script name 642, which may include version information with a value of "PBName_v1.11." Screen 600 may further include a total I / O speed 644 with a value of 146660 MB / sec (as indicated by an element 645). The value of element 645 may include a summation of all the numbers in column 604 for both write and read operations. While the script or a test application is running on the computer, the numbers in column 604 for MB / sec and column 606 for the percentage bandwidth may be continuously and dynamically updated. The example results on screen 600 may correspond to a point in time that is a certain amount of time (e.g., in seconds or minutes) after the script began executing. The test tool can execute several scripts in succession, where each script can include: Read and write operations (as in the example results of Fig. shown); only read operations (as in the example results of Fig. shown); or only write operations (as in the example results of Fig. The test tool can also be run to install the same or different scripts on the multiple ports of a detected test card. In addition, the user can use the Fig. The test tool described above can change the maximum read request size, the maximum payload size, and the memory addresses, and then run the test tool remotely by sending an updated command to the specified server. The operation can be performed as described above with respect to Fig. described.

[0040] The user can then view updated results based on the updated command, similar to the example results of the Fig. The results may indicate bandwidth saturation (e.g., the percentage bandwidth 606, which indicates the ratio between the current data volume and the maximum theoretical number), as well as a connection status check, e.g., the connection status or the connection between the test card and a specific slot. Several elements in screen 600 may indicate the connection status. The connection status 608 may indicate the connection status, e.g., a message labeled "<status_02> " for row 630 corresponding to slot 02, display the speed and link widths of the test card, the maximum payload size, and the maximum read request size. The total I / O speed 644 can also display the state of the connection (e.g.based on a certain expected threshold), and the number of connection reestablishments 640 may also indicate the state of the connection (e.g., based on an expected number of times the test card enters recovery mode for a particular slot). These expected numbers may be predetermined numbers or may be based on other predetermined thresholds, such as for the expected total I / O speed and the number of connection reestablishments.

[0041] Fig. shows a screen 660 displayed as part of a user interface flow according to one aspect of the present application. Screen 660 may include exemplary results of executing scripts on a test card for multiple slots of a server, including scripts that perform only memory reads, i.e., read data from a storage device associated with the server. The results may include information specified in lines 630-638, similar to Fig. . Elements 672 and 674 (enclosed by a thick, alternating dotted and dashed line) can respectively indicate: MB / sec for reads (R); and %Bwdth data corresponding to reads (R).

[0042] Screen 660 may also include a script name 662, which may include version information with a value of "PBName_v1.12." Screen 660 may further include a total I / O speed 664 with a value of 76950 MB / s (as indicated by an element 665). The value of element 665 may include a summation of all the numbers in column 604, i.e., for the read operations.

[0043] Fig. shows a screen displayed as part of a user interface flow according to one aspect of the present application. Screen 680 may contain exemplary results of executing scripts on a test card for multiple slots of a server, including scripts that perform only memory write operations, i.e., write data to a storage device connected to the server. The results may include information specified in lines 630-638, similar to Fig. . Elements 692 and 694 (enclosed by a dashed line) can specify, respectively: MB / sec for write operations (W); and %Bwdth data corresponding to write operations (W).

[0044] Screen 680 may also include a script name 682, which may include version information with a value of "PBName_v1.13." Screen 680 may further include a total I / O speed 684 with a value of 86130 MB / sec (as indicated by an element 685). The value of element 685 may include a summation of all the numbers in column 604, i.e., for the write operations. Method to facilitate the saturation of multiple PCIe slots by multiple connectors

[0045] Fig. shows a flowchart illustrating a method 700 that facilitates the saturation of multiple PCIe slots in a server with multiple ports in a single test card, in accordance with one aspect of the present application. During operation, the system detects a test card having a plurality of test ports connected to a plurality of input / output (I / O) slots of a computing device (operation 702). The system communicates with the plurality of test ports via the plurality of I / O slots of the computing device (operation 704). The system generates, through the computing device, a script for each test port, the script comprising a series of read and write operations to be performed by the test card on a storage device connected to the computing device (operation 706).The system enables the plurality of test ports to execute the script and perform the corresponding read and write operations, thereby facilitating parallel testing of the plurality of I / O slots of the computing device by the plurality of test ports of the test card (operation 708).

[0046] In general, the disclosed aspects provide a method and system for saturating multiple PCIe slots in a server with multiple ports in a single switch. In one aspect of the present application, the system detects a test card having a plurality of test ports connected to a plurality of input / output (I / O) slots of a computing device. The system communicates with the plurality of test ports via the plurality of I / O slots of the computing device. The system generates, by the computing device, a script for each test port, wherein the script includes a series of read and write operations to be performed by the test card on a storage device connected to the computing device.The system enables the plurality of test ports to execute the script and perform the corresponding read and write operations, thereby facilitating parallel testing of the plurality of I / O slots of the computing device by the plurality of test ports of the test card.

[0047] In a variation of this aspect, the plurality of test ports and the plurality of I / O slots are connected via a first cable having a Y-connector from the test card to a first plurality of cables and cable connectors for each of the plurality of I / O slots on the computing device.

[0048] In a further variation, the plurality of test ports and the plurality of I / O slots are connected via a second cable having a second plurality of cable ports from the test card to a third plurality of cables and cable ports for each of the plurality of I / O slots of the computing device.

[0049] In another variant, the test card is a Peripheral Component Interconnect Express (PCIe) test card, and the I / O slots of the computing device include PCIe slots of the computing device.

[0050] In a further variant, a first number of the plurality of test ports is greater than or equal to a second number of the plurality of I / O slots.

[0051] In another variant, the test card includes a switch that contains the majority of test ports.

[0052] In another variant, the series of read and write operations that the script specifies for a particular test port is used to saturate a bandwidth and check the connection status of a particular I / O slot to which the particular test port is connected.

[0053] In another variation, the system installs the script or another script on each of the plurality of test ports before allowing the script to execute and the plurality of test ports to perform the corresponding read operations and write operations, and performs at least one of the following: the corresponding read operations and the corresponding write operations.

[0054] In a further variation, installing the script comprises storing at least one of the following elements by a respective test port in a volatile memory of the respective test port: memory addresses associated with the memory device, wherein a respective memory address is associated with one of the read and write operations; data associated with the read and write operations; and a data pattern indicating the series of read and write operations.

[0055] In another variation, installing the script on each of the plurality of test ports occurs in response to a user generating a command to install the script on the plurality of test ports, and the user is connected to the computing device or other computing unit.

[0056] In another variant, after permitting the execution of the script and the performance of the corresponding read and write operations by the plurality of test ports, the system performs the following operations. The system displays, on a display screen of the computing device or other computing unit, the results of the plurality of test ports executing the script and performing the corresponding read and write operations. Based on the displayed results, the system modifies the script via the screen by the user so that it includes a modified series of read and write operations. The system transmits the modified script to the plurality of test ports.The system allows the multiple test ports to execute the modified script and perform the corresponding read and write operations, thereby facilitating further testing of the computing device's multiple I / O slots in parallel through the test card's multiple test ports.

[0057] In another aspect of the present application, a computer system comprises a processor and a memory coupled to the processor that stores instructions that, when loaded by the processor onto a test card, cause the test card to perform a method, the method being as described above.

[0058] In another aspect of the present application, an apparatus comprises: a test card having a plurality of test ports; a computing device having a plurality of PCIe slots. The plurality of test ports of the test card are connected to the plurality of PCIe slots of the computing device. The computing device is operable to generate a script for each test port of the plurality of test ports. The script specifies a series of read and write operations to be performed by the test card on non-volatile memory associated with the computing device. A respective test port executes the script in parallel with the remaining test ports by performing the series of read and write operations specified by the script, thereby enabling the saturation of the plurality of PCIe slots of the computing device by the plurality of test ports of the test card.

[0059] The above descriptions of aspects are for illustrative and descriptive purposes only. They are not intended to be exhaustive and do not limit the aspects described herein to the forms shown. Accordingly, many modifications and variations will be apparent to those skilled in the art. Furthermore, the above disclosure is not intended to limit the aspects described herein. The scope of the aspects described herein is defined by the appended claims.< / steckplatznummer>

Claims

[1] A computer-implemented method comprising: Detecting a test card (120, 140, 320) having a plurality of test ports (123-126, 143-146, 323-326) connected to a plurality of input / output (I / O) slots (133-136, 153-155, 311-314, 341-343) of a computing device (130, 150, 310, 340); Communicating with the plurality of test ports via the plurality of I / O slots of the computing device; generating a script (112) for each test port by the computing device, the script comprising a series of read and write operations to be performed by the test card on a storage device associated with the computing device; and Allowing the execution of the script and the performance of the corresponding read and write operations through the plurality of test ports, whereby testing of the plurality of I / O slots of the computing device in parallel is facilitated by the plurality of test ports of the test card; and Modifying the script, wherein modifying the script comprises modifying the script by a user via a display screen (600, 660, 680) of the computing device or other computing unit (104) by adjusting parameters including at least one of a maximum payload size (114), a maximum read request size (115), and memory addresses (116) associated with read and write operations. [2] The method of claim 1, wherein the plurality of test ports and the plurality of I / O slots are connected using a first cable with a Y-connector (410) from the test card to a first plurality of cables (401-404) and cable connectors (411-414) for each of the plurality of I / O slots on the computing device. [3] The method of claim 1, wherein the plurality of test ports and the plurality of I / O slots are coupled using a first cable having a first plurality of cable connectors from the test card to a second plurality of cables and cable connectors (511-514) for each of the plurality of I / O slots on the computing device. [4] The method according to claim 1, where the test card is a Peripheral Component Interconnect Express (PCIe) test card, and wherein the I / O slots of the computing device comprise PCIe slots of the computing device. [5] The method of claim 1, wherein a first number of the plurality of test ports is greater than or equal to a second number of the plurality of I / O slots. [6] The method of claim 1, wherein the test card comprises a switch (122, 142, 322) containing the plurality of test ports. [7] The method of claim 1, wherein the series of read and write operations indicated by the script for a respective test port are for saturating a bandwidth and checking the state of the connection of a respective I / O slot to which the respective test port is connected. [8] The method of claim 1, wherein the method, before allowing the plurality of test ports to execute the script and perform the corresponding read and write operations, further comprises: Installing the script or various scripts on each of the plurality of test ports; and Performing the corresponding read operations and / or the corresponding write operations. [9] The method of claim 8, wherein installing the script comprises storing at least one of the following elements by a respective test port in a volatile memory of the respective test port: memory addresses (116) associated with the memory device, each memory address being associated with one of the read and write operations; Data associated with read and write operations; and a data pattern (113) specifying the series of read and write operations. [10] The method according to claim 8, wherein installing the script on each of the plurality of test ports occurs in response to a user generating a command (160, 164, 172, 184) to install the script on the plurality of test ports, and wherein the user is connected to the computing device or another computing unit. [11] The method of claim 10, wherein the method, after allowing the execution of the script and the performance of the corresponding read and write operations by the plurality of test ports, further comprises: Displaying the results of the plurality of test ports executing the script and performing the corresponding read and write operations on the display screen of the computing device or other computing unit; wherein the modification of the script further comprises at least one of the following: Change of certain parameters associated with the script by the user via the display screen; or Modification of the script automatically by the computing device based on a predetermined set of test parameters; and in response to the script change: transmitting the modified script to the majority of test ports; and Allowing the execution of the modified script and the performance of the corresponding read and write operations by the plurality of test ports based on at least one of the adjusted parameters and the predetermined set of test parameters, thereby facilitating further testing of the plurality of I / O slots of the computing device in parallel through the plurality of test ports of the test card. [12] A computer system comprising: a processor and a memory connected to the processor and storing instructions that, when executed by the processor, cause the processor to perform a method, the method comprising: Detecting a test card (120, 140, 320) having a plurality of test ports (123-126, 143-146, 323-326) connected to a plurality of input / output (I / O) slots (133-136, 153-155, 311-314, 341-343) of a computing device (130, 150, 310, 340); Communication with the plurality of test ports via the plurality of I / O slots; generating a script (112) for each test port by the computing device, the script comprising a data pattern (113) containing read operations and write operations to be performed by the test card on a storage device associated with the computing device; and Allowing the execution of the script and the performance of the corresponding read and write operations contained in the data pattern by the plurality of test ports, whereby testing of the plurality of I / O slots of the computing device in parallel is facilitated by the plurality of test ports of the test card, and Modifying the script, wherein modifying the script comprises modifying the script by a user via a display screen (600, 660, 680) of the computing device or other computing unit by adjusting parameters including at least one of a maximum payload size (114), a maximum read request size (115), and memory addresses (116) associated with read and write operations. [13] The computer system of claim 12, wherein the plurality of test ports and the plurality of I / O slots are coupled using at least one of the following elements: a first cable having a Y-connector (410) from the test card to a first plurality of cables and cable connectors (411-414) for each of the plurality of I / O slots on the computing device; and a second cable having a second plurality of cable connectors from the test card to a third plurality of cables and cable connectors (511-514) for each of the plurality of I / O slots on the computing device. [14] The computer system according to claim 12, where the test card is a Peripheral Component Interconnect Express (PCIe) test card, and wherein the I / O slots of the computing device comprise PCIe slots of the computing device. [15] The computer system of claim 12, wherein the data pattern, including the read and write operations to be performed by the test card, comprising the script for a respective test port is for saturating a bandwidth (606) and checking the state of the connection of a respective I / O slot to which the respective test port is connected. [16] The computer system of claim 12, wherein the method further comprises, prior to allowing the execution of the script and the performance of the corresponding read and write operations contained in the data pattern by the plurality of test ports: Installing the script or another script on each of the plurality of test ports; and Performing the corresponding read operations and / or the corresponding write operations. [17] The computer system of claim 16, wherein installing the script comprises storing at least one of the following elements by a respective test port in a volatile memory of the respective test port: memory addresses (116) associated with the memory device, wherein a respective memory address is associated with one of the read and write operations; Data associated with read and write operations; and a data pattern (113) specifying the series of read and write operations. [18] The computer system according to claim 16, wherein installing the script on each of the plurality of test ports occurs in response to a user (106) generating a command (160, 164, 172, 184) to install the script on the plurality of test ports, and wherein the user is associated with the computing device or another computing unit. [19] The computer system of claim 18, wherein the method, after allowing the execution of the script and the performance of the corresponding read and write operations by the plurality of test ports, further comprises: Displaying the results of the plurality of test ports executing the script and performing the corresponding read and write operations on the display screen of the computing device or other computing unit; wherein the modification of the script further comprises at least one of the following: Change of certain parameters associated with the script by the user via the display screen; or Modification of the script automatically by the computing device based on a predetermined set of test parameters; and in response to the script change: transmitting the modified script to the majority of test ports; and Allowing the execution of the modified script and the performance of the corresponding read and write operations by the plurality of test ports based on at least one of the adjusted parameters and the predetermined set of test parameters, thereby facilitating further testing of the plurality of I / O slots of the computing device in parallel through the plurality of test ports of the test card. [20] A device comprising: a test card (120, 140, 320) having a plurality of test terminals (123-126, 143-146, 323-326); a computing device (130, 150, 310, 340) having a plurality of PCIe slots (133-136, 153-155, 311-314, 341-343), wherein the plurality of test ports of the test card are connected to the plurality of PCIe slots of the computing device; wherein the computing device is operable to generate a script (112) for each test port of the plurality of test ports, wherein the script specifies a series of read and write operations to be performed by the test card on a non-volatile memory associated with the computing device; where each test port is used to execute the script in parallel with the other test ports by performing the series of read and write operations specified by the script, thereby enabling the saturation of a bandwidth (606) and the verification of the connection status of the plurality of PCIe slots of the computing device by the plurality of test ports of the test card; and wherein the computing device is associated with a display screen (600, 660, 680) through which a user can modify the script by adjusting parameters including at least one of a maximum payload size (114), a maximum read request size (115), and memory addresses (116) associated with read and write operations.

Citation Information

Patent Citations

  • CN000114237998A

  • CN000213658911U

  • Concurrent testing of PCI express devices on a server platform

    US20170337069A1