CN117370083A - 通过单一测试卡中的多个端口使服务器中的多个pcie槽饱和 - Google Patents

通过单一测试卡中的多个端口使服务器中的多个pcie槽饱和 Download PDF

Info

Publication number
CN117370083A
CN117370083A CN202211288007.9A CN202211288007A CN117370083A CN 117370083 A CN117370083 A CN 117370083A CN 202211288007 A CN202211288007 A CN 202211288007A CN 117370083 A CN117370083 A CN 117370083A
Authority
CN
China
Prior art keywords
test
script
slots
computing device
ports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211288007.9A
Other languages
English (en)
Inventor
许宏任
林志钢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN117370083A publication Critical patent/CN117370083A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供了一种通过单一测试卡中的多个端口使服务器中的多个PCIE槽饱和的方法和系统。本公开的一方面提供了一种用于通过多个测试端口使多个I/O槽饱和并验证I/O槽与测试端口之间的链路健康状况的方法和系统。在操作期间,该系统检测具有多个测试端口的测试卡,该多个测试端口耦接到计算设备的多个输入/输出(I/O)槽。该系统经由该多个I/O槽与该多个测试端口通信。该系统通过计算设备为每个测试端口生成脚本,其中,该脚本包括要由测试卡在与计算设备相关联的存储器设备上执行的一系列读取操作和写入操作。该系统允许该多个测试端口执行脚本并执行对应的读取操作和写入操作,由此促进通过单一测试卡的测试端口并行地测试计算设备的I/O槽。

Description

通过单一测试卡中的多个端口使服务器中的多个PCIE槽饱和
背景技术
一种具有多个外围部件互连快速(PCIe)槽的计算设备可能需要进行测试,以便验证给定PCIe槽的各种特征,包括给定PCIe槽的时延、带宽和稳定性。PCIe测试卡可以被用于对计算设备的PCIe输入/输出(I/O)功能进行诊断、故障排除和负载测试。PCIe测试卡的当前配置包括具有多个端口的交换机,其中,仅使用测试卡上的单一端口来使比如服务器等计算设备上的多个PCIe槽之一饱和。因此,因为仅使用了测试卡上的一个单一端口,所以测试卡上的其他端口保持未使用。此外,必须每个PCIe槽使用一个PCIe测试卡,以便在服务器的多个PCIe槽上执行测试。
附图说明
图1图示了根据本申请的一方面的使用单一PCIe测试卡来测试多个PCIe槽的网络环境。
图2图示了根据现有技术的使用多个PCIe测试卡来测试多个PCIe槽的环境。
图3A图示了根据本申请的一方面的使用单一PCIe测试卡来使多个PCIe槽饱和并测试多个PCIe槽的环境,其中,测试端口的数量与槽的数量相同。
图3B图示了根据本申请的一方面的使用单一PCIe测试卡来使多个PCIe槽饱和并测试多个PCIe槽的环境,其中,测试端口的数量大于槽的数量。
图4图示了图3A的单一PCIe测试卡与多个PCIe槽之间的第一电缆配置。
图5图示了图3A的单一PCIe测试卡与多个PCIe槽之间的第二电缆配置。
图6A呈现了根据本申请的一方面的显示为用户界面流的一部分的画面。
图6B呈现了根据本申请的一方面的显示为用户界面流的一部分的画面。
图6C呈现了根据本申请的一方面的显示为用户界面流的一部分的画面。
图7呈现了图示根据本申请的一方面的促进通过单一测试卡中的多个端口使服务器中的多个PCIe槽饱和的方法的流程图。
在这些附图中,相同的附图标记指代相同的附图元素。
具体实施方式
以下描述被呈现以使得本领域的任何技术人员能够制造和使用各方面和示例,并且在特定应用及其要求的上下文中被提供。对所公开方面的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其他各方面和应用。因此,本文所描述的各方面不限于所示的方面,而旨在符合与本文公开的原理和特征一致的最大范围。
具有多个PCIe槽的计算设备可能需要进行测试,以便验证给定PCIe槽的各种特征,包括给定PCIe槽的时延、带宽和稳定性。PCIe测试卡可以被用于对计算设备的PCIe输入/输出(I/O)功能进行诊断、故障排除和负载测试。在本公开中,测试卡或PCIe测试卡可以包括“交换机”,该交换机包括多个“端口”,如下文关于图1所描绘的。也就是说,PCIe测试卡的当前配置包括具有多个端口的交换机。在具有多个PCIe槽的计算设备(例如,服务器)上,当前测试方法允许将一个PCIe测试卡插入到每个槽中(经由PCIe金指状件),其中,仅使用给定PCIe测试卡(或交换机)上的单一端口来使计算设备上的多个PCIe槽之一饱和。因此,因为仅使用了给定测试卡上的一个单一端口,所以给定测试卡上的其他端口保持未使用。此外,必须每个PCIe槽使用一个PCIe测试卡(即,多个PCIe测试卡),以便在服务器的全部多个PCIe槽上执行测试。
假设PCIe测试卡上端口的数量为M而服务器上PCIe槽的数量为N,其中,通常,M大于或等于N,即,PCIe测试卡上端口的数量通常大于或等于服务器上PCIe槽的数量。例如,给定测试卡上的第五代PCIe交换机可以具有M=10个端口,而较旧的服务器可以具有N=3个PCIe槽,并且较新的服务器可以具有N=[5..10]个PCIe槽。这可以导致使用总计N个PCIe测试卡,以便对N个PCIe槽中的每个PCIe槽执行测试,并且因为M个端口中的仅一个端口在总计N个PCIe测试卡中的每个PCIe测试卡上使用,所以在N个PCIe测试卡中的每个PCIe测试卡上,M-1端口保持未使用,如下文关于图2描述的。这可能导致与每个PCIe测试卡相关联的部件和功耗二者的低效使用。
本即时申请的各方面提供了一种解决当前测试方法的低效使用的系统。在所描述的各方面中,仅需要一个PCIe测试卡以在服务器的多个PCIe槽上执行测试。替代使用多个测试卡到多个PCIe槽(即,每个槽一个测试卡)的PCIe金指状件连接,所描述的各方面可以提供单一PCIe测试卡的一些或全部M个端口与服务器上的全部N个PCIe槽之间的连接或耦接,如下文关于图3描述的。这种连接或耦接可以经由定制的PCIe电缆进行,比如Y型电缆或单独电缆,如下文关于图4和图5描述的。这样的配置可以允许系统使用一个单一PCIe测试卡而非总计N个PCIe测试卡在服务器的N个PCIe槽上执行测试。
因此,通过将PCIe测试卡的数量从N减少到1,以及通过在PCIe测试卡(和PCIe测试卡上的对应的交换机)的数量从N降低到1时减少功耗量,所描述的各方面可以产生用于在服务器的PCIe槽上执行测试的更高效的系统和方法。
本公开中使用术语“服务器”来指代计算设备、网络实体或其他设备。服务器可以包括多个槽。本公开中使用术语“槽”来指代印刷电路板或扩展卡或其他I/O相关电路的坞口。术语“槽”和“I/O槽”在本公开中可互换使用。槽或I/O槽的示例是外围部件互连快速(PCIe)槽。PCIe卡或其他PCIe部件可以插入到服务器上的“PCIe槽”中。PCIe槽、卡和部件可以使用工业标准高速计算机总线架构。
本公开中使用术语“测试卡”来指代可以耦接到、连接到或插入服务器的槽以便执行槽的测试的卡。术语“测试卡”和“PCIe测试卡”在本公开中可互换使用,其中,PCIe测试卡可以耦接到、连接到或插入服务器的PCIe槽以便执行槽的测试,该测试可以报包括验证PCIe槽的各种特征,包括PCIe槽的时延、带宽和稳定性。在本公开中,测试卡或PCIe测试卡可以包括“交换机”,并且术语“测试卡的端口”可以与术语“交换机的端口”互换使用。
本公开中使用术语“脚本”指代指令集或序列或者命令集或序列,这些指令集或序列或者命令集或序列可以被发送到端口以对端口的分组发生器进行设置或编程,从而执行存储器读取操作和写入操作。例如,包括在脚本中的命令可以包括数据模式、最大有效负载大小、最大读取请求大小、服务器的存储器的存储器地址,分组发生器向该服务器传送或从该服务器传送读取操作或写入操作。这些命令还可以包括发起或启动分组发生器以编程并开始执行存储器读取操作和写入操作。
使用单一PCIe卡测试PCIe槽的环境
图1图示了根据本申请的一方面的使用单一PCIe测试卡来测试多个PCIe槽的网络环境100。环境100可以包括:设备104、相关联的用户106和外围输入/输出(I/O)用户设备108(例如,显示设备105、键盘106和指示设备107);服务器130和服务器150;以及测试卡120和测试卡140。设备104以及服务器130和服务器150可以经由网络102彼此通信。
每个服务器可以包括多个槽(即,I/O槽或PCIe槽)。例如,服务器130可以包括:槽_1 133;槽_2 134;槽_3 135;以及槽_N 136。类似地,服务器150可以包括:槽_1 153;槽_2154;以及槽_N 155。每个测试卡可以包括交换机,该交换机包括多个端口。例如,测试卡120可以包括交换机122,该交换机包括:端口_1 123;端口_2 124;端口_3 125;以及端口_M126。类似地,测试卡140可以包括交换机142,该交换机包括:端口_1 143;端口_2 144;端口_3 145;以及端口_M 146。
此外,每个端口可以包括其自己的分组发生器和本地私有缓冲器(例如,易失性存储器),该本地私有缓冲器可以存储与运行用于测试目的的脚本或命令相关联的信息。例如,测试卡120的交换机122上的端口_1 123可以包括:分组发生器110,该分组发生器可以被设置或编程为执行例如读取操作和写入操作;以及本地私有缓冲器111,该本地私有缓冲器可以存储脚本/命令112。例如,脚本/命令112可以包括:数据模式113,该数据模式包括读取/写入操作或要写入到存储器的数据;最大有效负载大小114;最大读取请求大小115;存储器地址116,将数据写入到该存储器地址或从该存储器地址读取数据;要写入到服务器117的存储器的数据(还描绘为数据模式113);以及从服务器118的存储器读取的数据。
每个卡的多个测试端口可以耦接到计算设备的多个I/O槽。倘若测试卡120上的测试端口数量M=10以及服务器130上的槽数量N=10,测试卡120上的每个端口可以耦接到服务器130上的相应槽,没有未使用的端口。端口_1 123可以耦接到槽_1 133;端口_2 124可以耦接到槽_2 134;端口_3 125可以耦接到槽_3 135;以及端口_M 126可以耦接到槽_N136。
测试卡上的端口的数量可以相同于或大于服务器上的槽的数量。也就是说,一个单一测试卡可以使服务器的全部槽完全饱和,其中,全部端口被使用或一些端口保持未使用。例如,倘若测试卡140上的测试端口数量M=10以及服务器150上的槽数量N=3(其中,M大于N),测试卡140上的大多数(例如,一些但不是全部)端口可以耦接到服务器150上的相应槽,留下一些未使用的端口,但使用单一测试卡(140)实现服务器150上的N个槽的完全饱和。端口_1 143可以耦接到槽_1 153;端口_2 144可以耦接到槽_2 154;以及端口_3 145可以耦接到槽_N 155。
经由外围I/O用户设备108,用户106可以使用设备104来操作服务器130,例如,在连接到服务器130的服务器管理软件或基板管理控制器(未示出)时经由网络102来远程控制服务器130。服务器130可以安装有通用串行总线(USB)驱动器137,该USB驱动器可以包括软件测试工具138,比如.efi文件。在操作期间,用户106可以通过向服务器130发送命令160为服务器130远程通电。例如,在接收命令160之后,服务器130可以将系统(操作162)引导到统一可扩展固件接口(UEFI)外层、Windows、Linux或其他操作系统,并且用户106随后可以通过向服务器130发送命令164远程执行软件测试工具(例如,.efi文件)。在接收命令164之后,服务器130可以运行或执行测试工具(操作166)。例如,服务器130可以执行.efi文件、搜索或检测测试卡(操作168)以及返回所检测测试卡的指示符(如结果170)。
设备104可以接收结果170并且在显示器105上显示对应的信息,类似于如下文关于图6A描绘的画面600的部分。用户106可以通过向服务器130发送命令172来选择开始测试的一个槽或多个槽。在接收命令172之后,服务器130可以经由槽与端口通信(操作174),例如,通过向测试卡120发送脚本以在耦接到选择的一个槽或多个槽或与选择的一个槽或多个槽相关联的一个端口或多个端口上开始测试。测试卡120可以基于脚本对其分组发生器110进行编程(基于脚本/命令112的操作176)以及例如通过使用由分组发生器110生成的分组来执行脚本(基于脚本/命令112的操作178),以执行对应的读取操作和写入操作。
服务器130可以监测由每个端口运行的脚本的结果(操作180),在这种情况下,脚本/命令112在端口_1 123上运行。例如,服务器130可以从端口_1 123的分组发生器110获得计数器的运行计数并且继续向设备104发送要在显示器105上显示的结果182。下文关于分别为图6A、图6B和图6C的画面600、660和680描绘作为用户界面流的部分的示例画面(包括交互式用户元素)。
用户106还可以向服务器130发送命令来停止选择的端口(比如端口_1 123)上的测试,该命令可以使服务器130向端口_1 123发送对应的命令来停止执行脚本/命令112。虽然这些通信未在图1中明确地标记,但这些通信可以以如上文描述的发送命令172以在选择的端口上开始测试的类似方式发生。
此外,用户106可以通过修改与脚本或命令相关联的特定参数来配置或修改脚本,包括调整最大有效负载大小、最大读取请求大小和存储器地址。例如,用户106可以通过向服务器130发送命令184为选择的槽_1 123和对应的或耦接的端口_1 123修改脚本112以调整这些参数之一。在接收命令130之后,服务器130可以修改脚本或命令(操作186)。在一些方面,服务器130可以向端口_1 123发送命令以停止运行测试(如果测试当前在运行)并使用调整的参数来修改脚本/命令112。端口_1 123可以经由其处理存储在端口_1 123的本地私有缓冲器111中的脚本/命令112的分组发生器110执行这些修改。在一些方面,设备104/服务器130可以基于的一组预定测试参数自动地修改先前生成的脚本。PCIe槽接通的测试可以通过使用单一交换机(即,单一测试卡)的多个端口使服务器的槽完全饱和来执行。
虽然环境100描绘了设备104经由网络102与服务器130和150通信,但在一些方面,用户106和外围I/O用户设备108可以耦接到服务器或与服务器相关联。也就是说,设备104和网络102可以是可选实体,使得上文描述为源自设备104或在该设备处结束的命令和结果不通过网络,而是可以由服务器130直接向用户106和外围I/O设备108传送。
使用多个PCIe卡(现有技术)与使用单一PCIe卡(所描述方面)测试PCIe槽的比较
图2图示了根据现有技术的使用多个PCIe测试卡来测试多个PCIe槽的环境200。环境200可以包括服务器210和多个测试卡220、230、240和250。服务器210可以包括多个槽(即,I/O槽或PCIe槽):槽_1 211;槽_2 212;槽_3 213;以及槽_N 214。每个测试卡可以包括交换机,该交换机包括多个端口。例如,测试卡220可以包括交换机222,该交换机包括:端口_1 223;端口_2 224;端口_3 225;以及端口_M 226。测试卡230可以包括交换机232,该交换机包括:端口_1 233;端口_2 234;端口_3 235;以及端口_M236。测试卡240可以包括交换机242,该交换机包括:端口_1 243;端口_2 244;端口_3245;以及端口_M 246。测试卡250可以包括交换机252,该交换机包括:端口_1 253;端口_2 254;端口_3 255;以及端口_M 256。
每个卡的单一测试端口可以耦接到计算设备的多个I/O槽之一。倘若测试卡220-250中的每个测试卡的测试端口数量M=10以及服务器210上槽的数量N=10,测试卡220-250中的每个测试卡上的一个端口可以耦接到服务器210上的单一槽,在测试卡220-250中的每个测试卡上留下M-1=9个未使用端口。测试卡220的端口_1 223可以耦接到槽_1 211;测试卡230的端口_1 233可以耦接到槽_2 212;测试卡240的端口_1 243可以耦接到槽_3213;以及测试卡250的端口_1 253可以耦接到槽_N 214。虽然环境200描绘了每个测试卡的第一端口耦接到服务器210的槽的,但是测试卡的任一单一端口可以耦接到服务器210的槽。
图3A图示了根据本申请的一方面的使用单一PCIe测试卡来使多个PCIe槽饱和以及测试多个PCIe槽的环境300,其中,测试端口的数量与槽的数量相同。环境300可以包括服务器310和测试卡320。服务器310可以包括多个槽(即,I/O槽或PCIe槽):槽_1 311;槽_2312;槽_3 313;以及槽_N 314。测试卡320可以包括交换机322,该交换机包括多个端口:端口_1 323;端口_2 324;端口_3 325;以及端口_M 326。
测试卡320的多个测试端口可以耦接到服务器310的多个I/O槽311-314。倘若测试卡320上的测试端口数量M=10以及服务器310上的槽数量N=10,测试卡320上的每个端口可以耦接到服务器310上的相应槽,测试卡320上没有未使用的端口。端口_1 323可以耦接到槽_1 311;端口_2 324可以耦接到槽_2 312;端口_3 325可以耦接到槽_3 313;以及端口_M 326可以耦接到槽_N 314。
图3B图示了根据本申请的一方面的使用单一PCIe测试卡来使多个PCIe槽饱和并测试多个PCIe槽的环境330,其中,测试端口的数量大于槽的数量。环境330可以包括服务器340和测试卡320(如在图3A中)。服务器340可以包括多个槽(即,I/O槽或PCIe槽):槽_1341;槽_2 342;以及槽_N 343。
如上文关于图1描述的,测试卡上的端口的数量可以相同于或大于服务器上的槽的数量。一个单一测试卡可以使服务器的全部槽完全饱和,其中,全部端口被使用或一些端口保持未使用。例如,倘若测试卡320上的测试端口数量M=10以及服务器340上的槽数量N=3(其中,M大于N),测试卡320上的大多数(例如,一些但不是全部)端口可以耦接到服务器340上的相应槽,这样留下一些未使用端口,但可以使用单一测试卡(320)实现服务器340上的N个槽的完全饱和。端口_1 323可以耦接到槽_1 341;端口_2 324可以耦接到槽_2 342;以及端口_3 325可以耦接到槽_N 343。
电缆配置
图4图示了图3A的单一PCIe测试卡与多个PCIe槽之间的第一电缆配置400。电缆配置400可以包括Y型连接器元件410。连接器元件410的一侧可以包括到测试卡320上的测试端口中的每个测试端口的连接(例如,分别到端口323、324、325和326的连接401、402、403和404)。连接器元件410的另一侧可以包括到服务器310上的槽中的每个槽的单独电缆或电缆连接(例如,分别到槽311、312、313和314的电缆或电缆连接411、412、413、和414)。电缆配置400可以被设计、定制或实施,使得电缆411-414可以直接插入到它们相应的对应的槽311-314中。
所描述的方面允许软件测试工具在耦接到选择的一个槽或多个槽或与选择的一个槽或多个槽相关联的端口上执行和开始测试。例如,当槽311-314被选择时,测试将通过向测试卡320发送脚本从端口323-326开始。测试卡320可以基于脚本对其相应端口中的每个端口的分组发生器进行编程。脚本可以是相同的脚本或不同的脚本。也就是说,可以对测试工具进行编程以在多个测试端口上执行或安装相同或不同的脚本,从而考虑可以具有不同I/O样式的应用程序。例如,可以为与较大数量的读取操作(比如访问视频文件)相关联的应用程序提供的某些槽,可能需要基于比写入操作或仅读取操作更多的写入进行测试,同时可以为与较大数量的写入操作(比如存储数据文件)相关联的应用程序提供的其他槽,可能需要基于比读取操作或仅写入操作更多的写入进行测试。这些不同的应用程序要求可以导致在每个测试端口上执行或安装不同的脚本。
类似于上文关于图1的服务器130描述的监测,服务器310可以监测由每个端口运行的每个(相同或不同)脚本的结果,以及显示如图6A、图6B和图6C中示出的结果。这些结果可以指示测试端口所耦接的相应槽的带宽饱和以及链路健康状况验证,如下文关于图6A中显示的示例性结果描述的。
图5图示了图3A的单一PCIe测试卡与多个PCIe槽之间的第二电缆配置500。电缆配置500可以包括从测试卡320上的端口中的每个端口到服务器310上的槽中的每个槽的单独电缆或电缆连接(例如,分别到槽311、312、313和314的电缆或电缆连接511、512、513和514)。类似于电缆配置400,电缆配置500可以被设计、定制或实施,使得电缆511-514可以直接插入到它们相应的对应的槽311-314中。
用户界面工具和显示结果
图6A呈现了根据本申请的一方面的显示为用户界面流的一部分的画面600。画面600可以包括来自在用于服务器的多个槽的测试卡上运行脚本的示例性结果,包括执行同步存储器读取操作和写入操作的脚本,即,从与服务器相关联的存储器设备读取数据和将数据写入到与服务器相关联的存储器设备。结果可以包括由以下项指示的信息:用于槽02的行630;用于槽05的行632;用于槽06的行634;用于槽09的行636;以及用于槽10的行638。每个行或槽的信息可以包括:槽数量602;写入操作“(W)”和读取操作“(R)”二者的兆字节/秒(“MB/Sec”)604,该兆字节/秒可以指示当前数据量的单位;写入操作“(W)”和读取操作“(R)”的百分比带宽(“%Bdwdth”)606,该百分比带宽可以指示当前数据量与最大理论数量的比率;链路状态608,例如,该链路状态可以指示PCIe测试卡的训练速度和链路宽度、最大有效负载大小和最大读取请求大小;以及存储器地址610(“MemAddr”),该存储器地址指示偏移或被添加到向其写入或从其读取数据的PCIe测试卡中的存储器地址。
元素605(以加粗线条为边界)指示与写入操作(W)和读取操作(R)二者对应的MB/Sec数据。类似地,元素607(也以加粗线条为边界)指示与写入操作(W)和读取操作(R)二者对应的%Bwdth数据。
画面600还可以包括链路恢复计数640,该链路恢复计数可以指示PCIe测试卡进入恢复模式的次数。例如,元素641可以将每个槽的这个值指示为“<槽数量>:<PCIe测试卡进入恢复模式的数量>,”例如,“02:2”指示槽02在给定的测试循环、周期、间隔或脚本期间进入恢复模式两次,“05:2”指示槽05在给定的测试循环、周期、间隔或脚本期间进入恢复模式两次等。
画面600还可以包括脚本名称642,该脚本名称包括具有“PBName_v1.11.”值的版本信息。画面600可以进一步包括总I/O速度644,该速度具有146660MB/Sec的值(如由元素645所指示的)。元素645的值可以包括列604中针对写入和读取操作二者的全部数量的总和。当脚本运行时,或当计算设备上的测试或测试工具应用程序运行时,列604下的MB/Sec数量和列606的百分比带宽可以不断和动态地被更新。画面600上的示例性结果可以与是发起脚本的执行后的特定时间量(例如,以秒或分钟为单位)的时间向对应。测试工具可以在一行中运行多个脚本,其中,每个脚本可以包括:读取操作和写入操作(如图6A的示例性结果中描绘的);仅读取操作(如图6B的示例性结果中描绘的);或仅写入操作(如图6C的示例性结果中描绘的)。测试工具还可以运行以在检测的测试卡的多个端口上安装相同或不同的脚本。此外,使用图1中描述的测试工具,用户可以修改最大读取请求大小、最大有效负载大小和存储器地址,并且然后通过向给定的服务器发送更新的命令远程执行测试工具。操作可以如上文关于与图1描述的那样进行。
用户随后可以基于更新的命令查看更新的结果,这些结果可以类似于图6A、图6B和图6C的示例性结果来显示。这些结果可以指示带宽的饱和(例如,指示当前数据量与最大理论数量的比率的百分比带宽606)以及链路健康状况的验证,例如,与测试卡与给定的槽之间的链路或连接相关联的健康状况。画面600中的若干项目可以指示链路健康状况。链路状态608可以指示链路健康状况,例如,针对与槽02相对应的行630描绘为“<状态_02>”的链路状态可以指示测试卡的速度和链路宽度、最大有效负载大小和最大读取请求大小。总I/O速度644也可以指示链路健康状况(例如,基于特定预期阈值),并且链路恢复计数640也可以指示链路健康状况(例如,基于测试卡针对给定的槽进入恢复模式的预期次数)。这些预期次数可以是预定的次数或基于其他预定的阈值,例如,预期的总I/O速度和链路恢复计数。
图6B呈现了根据本申请的一方面的显示为用户界面流的一部分的画面660。画面660可以包括来自在用于服务器的多个槽的测试卡上运行脚本的示例性结果,包括执行仅存储器读取操作的脚本,即,数据从与服务器相关联的存储器设备读取数据。这些结果可以包括类似于图6A由行630-638指示的信息。元素672和元素674(以加粗交替点划线为边界)可以分别地指示:读取操作(R)的MB/Sec;以及与读取操作(R)相对应的%Bwdth数据。
画面660还可以包括脚本名称662,该脚本名称包括具有“PBName_v1.12.”值的版本信息。画面660可以进一步包括总I/O速度664,该总I/O速度具有76950MB/Sec的值(如由元素665所指示的)。元素665的值可以包括列604中全部数量的总和,即,针对读取操作。
图6C呈现了根据本申请的一方面的显示为用户界面流的一部分的画面。画面680可以包括来自在用于服务器的多个槽的测试卡上运行脚本的示例性结果,这些结果包括仅执行存储器写入操作的脚本,即,将数据写入到与服务器相关联的存储器设备。这些结果可以包括类似于图6A由行630-638指示的信息。元素692和元素694(以虚线为边界)可以分别地指示:写入操作(W)的MB/Sec;以及与写入操作(W)相对应的%Bwdth数据。
画面680还可以包括脚本名称682,该脚本名称包括具有“PBName_v1.13.”值的版本信息。画面680可以进一步包括总I/O速度684,该总I/O速度具有86130MB/Sec的值(如由元素685所指示的)。元素685的值可以包括列604中全部数量的总和,即,针对写入操作。
用于促进通过多个端口使多个PCIe槽饱和的方法
图7呈现了图示根据本申请的一方面的促进通过单一测试卡中的多个端口使服务器中的多个PCIe槽饱和的方法700的流程图。在操作期间,系统检测具有多个测试端口的测试卡,该多个测试端口耦接到计算设备的多个输入/输出(I/O)槽(操作702)。系统经由计算设备的多个I/O槽与多个测试端口通信(操作704)。系统通过计算设备为每个测试端口生成脚本,其中,脚本包括要由测试卡在与计算设备相关联的存储器设备上执行的一系列读取操作和写入操作(操作706)。系统允许多个测试端口执行脚本并执行对应的读取操作和写入操作,由此促进通过测试卡的多个测试端口并行地测试计算设备的多个I/O槽(操作708)。
通常,所公开的方面提供了一种通过单一交换机中的多个端口使服务器中的多个PCIe槽饱和的方法和系统。在本申请的一个方面中,系统检测具有多个测试端口的测试卡,该多个测试端口耦接到计算设备的多个输入/输出(I/O)槽。系统经由所述计算设备的多个I/O槽与所述多个测试端口通信。系统通过该计算设备为每个测试端口生成脚本,其中,脚本包括要由测试卡在与计算设备相关联的存储器设备上执行的一系列读取操作和写入操作。系统允许多个测试端口执行脚本并执行对应的读取操作和写入操作,由此促进通过测试卡的多个测试端口并行地测试计算设备的多个I/O槽。
在本方面的变型中,该多个测试端口与该多个I/O槽使用第一电缆耦接,该第一电缆具有Y型连接器,该Y型连接器从测试卡到用于计算设备上的多个I/O槽中的每个I/O槽的第一多个电缆和电缆连接器。
在进一步的变型中,该多个测试端口与该多个I/O槽耦接,该第二电缆具有第二多个电缆连接器,该第二多个电缆连接器从测试卡到用于计算设备上的多个I/O槽中的每个I/O槽的第三多个电缆和电缆连接器。
在进一步的变型中,测试卡是外围部件互连快速(PCIe)测试卡,并且计算设备的I/O槽包括计算设备的PCIe槽。
在进一步的变型中,第一数量的多个测试端口大于或等于第二数量的多个I/O槽。
在进一步的变化形式中,测试卡包括交换机,该交换机包括多个测试端口。
在进一步的变型中,由相应测试端口的脚本所指示的一系列读取操作和写入操作用于使带宽饱和以及验证相应测试端口所耦接的相应I/O槽的链路健康状况。
在进一步的变型中,其中,在允许多个测试端口执行脚本并执行对应的读取操作和写入操作之前,系统在多个测试端口中的每个测试端口上安装脚本或不同脚本以及执行以下各项中的至少一项:对应的读取操作;以及对应的写入操作。
在进一步的变型中,安装脚本包括通过相应测试端口的易失性存储器中的相应测试端口存储以下各项中的至少一项:存储器地址,该存储器地址与存储器设备相关联,其中,相应存储器地址与读取操作和写入操作之一相关联;数据,该数据与读取操作和所述写入操作相关联;以及指示该一系列读取操作和写入操作的数据模式。
在进一步的变型中,在该多个测试端口中的每个测试端口上安装脚本是响应于用户生成要在该多个测试端口上安装脚本的命令,并且用户与计算设备或另一计算实体相关联。
在进一步的变型中,在允许该多个测试端口执行脚本并执行对应的读取操作和写入操作之后,系统执行以下操作。该系统在计算设备或另一计算实体的显示屏上显示该多个测试端口执行脚本和执行对应的读取操作和写入操作的结果。该系统基于显示的结果,由用户经由显示屏来修改脚本以包括经修改的一系列读取操作和写入操作。系统将经修改的脚本传输到该多个测试端口。系统允许该多个测试端口执行经修改的脚本并执行对应的读取操作和写入操作,由此促进通过测试卡的多个测试端口并行地进一步测试计算设备的多个I/O槽。
在本申请的另一方面中,一种计算机系统包括处理器和存储器,该存储器耦接到处理器以及存储指令,当这些命令由处理器加载到测试卡时,使测试卡执行的方法,该方法如上文所描述。
在本申请的又另一方面中,一种装置包括:测试卡,该测试卡具有多个测试端口;计算设备,该计算设备具有多个PCIe槽。测试卡的多个测试端口耦接到计算设备的多个PCIe槽。计算设备为多个测试端口中的每个测试端口生成脚本。脚本指示要由测试卡在与计算设备相关联的非易失性存储器上执行的一系列读取操作和写入操作。与测试端口中的剩余测试端口并行地,相应测试端口将通过执行由脚本指示的一系列读取操作和写入操作来运行脚本,由此允许通过测试卡的多个测试端口使计算设备的多个PCIe槽饱和。
已经仅出于说明和描述的目的呈现了各方面的前述描述。所述描述并非旨在是穷举的或将本文描述的各方面限制为所公开的形式。相应地,对于本领域普通技术人员而言,许多的修改和变型将是显而易见的。另外,以上公开内容并非旨在限制本文描述的各方面。本文描述的各方面的范围由所附权利要求书限定。

Claims (20)

1.一种计算机实施的方法,包括:
检测具有多个测试端口的测试卡,所述多个测试端口耦接到计算设备的多个输入/输出I/O槽;
经由所述计算设备的多个I/O槽与所述多个测试端口通信;
通过所述计算设备为每个测试端口生成脚本,其中,所述脚本包括要由所述测试卡在与所述计算设备相关联的存储器设备上执行的一系列读取操作和写入操作;以及
允许所述多个测试端口执行所述脚本并执行对应的读取操作和写入操作,
由此促进通过所述测试卡的所述多个测试端口并行地测试所述计算设备的所述多个I/O槽。
2.如权利要求1所述的方法,
其中,所述多个测试端口与所述多个I/O槽使用第一电缆耦接,所述第一电缆具有Y型连接器,所述Y型连接器从所述测试卡到用于所述计算设备上的所述多个I/O槽中的每个I/O槽的第一多个电缆和电缆连接器。
3.如权利要求1所述的方法,
其中,所述多个测试端口与所述多个I/O槽使用第二电缆耦接,所述第二电缆具有第二多个电缆连接器,所述第二多个电缆连接器从所述测试卡到用于所述计算设备上的所述多个I/O槽中的每个I/O槽的第三多个电缆和电缆连接器。
4.如权利要求1所述的方法,
其中,所述测试卡是外围部件互连快速PCIe测试卡,并且
其中,所述计算设备的所述I/O槽包括所述计算设备的PCIe槽。
5.如权利要求1所述的方法,
其中,所述多个测试端口的第一数量大于或等于所述多个I/O槽的第二数量。
6.如权利要求1所述的方法,
其中,所述测试卡包括交换机,所述交换机包括所述多个测试端口。
7.如权利要求1所述的方法,
其中,由相应测试端口的脚本指示的所述一系列读取操作和写入操作用于使带宽饱和并验证所述相应测试端口所耦接的相应I/O槽的链路健康状况。
8.如权利要求1所述的方法,其中,在允许所述多个测试端口执行所述脚本并执行所述对应的读取操作和写入操作之前,所述方法进一步包括:
在所述多个测试端口中的每个测试端口上安装所述脚本或不同脚本;以及
执行以下各项中的至少一项:所述对应的读取操作;以及所述对应的写入操作。
9.如权利要求8所述的方法,其中,安装所述脚本包括:通过所述相应测试端口的易失性存储器中的相应测试端口存储以下各项中的至少一项:
与所述存储器设备相关联的存储器地址,其中,相应存储器地址与所述读取操作和所述写入操作之一相关联;
与所述读取操作和所述写入操作相关联的数据;以及
指示所述一系列读取操作和写入操作的数据模式。
10.如权利要求8所述的方法,
其中,在所述多个测试端口中的每个测试端口上安装所述脚本是响应于用户生成要在所述多个测试端口上安装所述脚本的命令,并且
其中,所述用户与所述计算设备或另一计算实体相关联。
11.如权利要求10所述的方法,其中,在允许所述多个测试端口执行所述脚本并执行所述对应的读取操作和写入操作之后,所述方法进一步包括:
在所述计算设备或所述另一计算实体的显示屏上显示所述多个测试端口执行所述脚本和执行所述对应的读取操作和写入操作的结果;
基于显示的结果,由所述用户经由所述显示屏修改所述脚本以包括经修改的一系列读取操作和写入操作;
将所述经修改的脚本传输到所述多个测试端口;以及
允许所述多个测试端口执行所述经修改的脚本并执行所述对应的读取操作和写入操作,
由此促进通过所述测试卡的所述多个测试端口进一步并行地测试所述计算设备的所述多个I/O槽。
12.一种计算机系统,包括:
处理器;以及
存储器,所述存储器耦接到所述处理器并且存储指令,所述指令当由所述处理器执行时使所述处理器执行方法,所述方法包括:
检测具有多个测试端口的测试卡,所述多个测试端口耦接到计算设备的多个输入/输出I/O槽;
经由多个I/O槽与所述多个测试端口通信;
通过所述计算设备为每个测试端口生成脚本,其中,所述脚本包括数据模式,所述数据模式包括要由所述测试卡在与所述计算设备相关联的存储器设备上执行的读取操作和写入操作;以及
允许所述多个测试端口执行所述脚本并执行所述数据模式中包括的对应的读取操作和写入操作,
由此促进通过所述测试卡的所述多个测试端口并行地测试所述计算设备的所述多个I/O槽。
13.如权利要求12所述的计算机系统,其中,所述多个测试端口与所述多个I/O槽使用以下各项中的至少一项耦接:
第一电缆,所述第一电缆具有Y型连接器,所述Y型连接器从所述测试卡到用于所述计算设备上的所述多个I/O槽中的每个I/O槽的第一多个电缆和电缆连接器;以及
第二电缆,所述第二电缆具有第二多个电缆连接器,所述第二多个电缆连接器从所述测试卡到用于所述计算设备上的所述多个I/O槽中的每个I/O槽的第三多个电缆和电缆连接器。
14.如权利要求12所述的计算机系统,
其中,所述测试卡是外围部件互连快速PCIe测试卡,并且
其中,所述计算设备的所述I/O槽包括所述计算设备的PCIe槽。
15.如权利要求12所述的计算机系统,
其中,由相应测试端口的所述脚本所包括的所述数据模式用于使带宽饱和并验证所述相应测试端口所耦接的相应I/O槽的链路健康状况,所述数据模式包括要由所述测试卡执行的所述读取操作和写入操作。
16.如权利要求12所述的计算机系统,其中,在允许所述多个测试端口执行所述脚本并执行所述数据模式中包括的所述对应的读取操作和写入操作之前,所述方法进一步包括:
在所述多个测试端口中的每个测试端口上安装所述脚本或不同脚本;以及
执行以下各项中的至少一项:所述对应的读取操作;以及所述对应的写入操作。
17.如权利要求16所述的计算机系统,其中,安装所述脚本包括通过所述相应测试端口的易失性存储器中的相应测试端口存储以下各项中的至少一项:
与所述存储器设备相关联的存储器地址,其中,相应存储器地址与所述读取操作和所述写入操作之一相关联;
与所述读取操作和所述写入操作相关联的数据;以及
指示所述一系列读取操作和写入操作的数据模式。
18.如权利要求16所述的计算机系统,
其中,在所述多个测试端口中的每个测试端口上安装所述脚本是响应于用户生成要在所述多个测试端口上安装所述脚本的命令,并且
其中,所述用户与所述计算设备或另一计算实体相关联。
19.如权利要求18所述的计算机系统,其中,在允许所述多个测试端口执行所述脚本并执行所述对应的读取操作和写入操作之后,所述方法进一步包括:
在所述计算设备或所述另一计算实体的显示屏上显示所述多个测试端口执行所述脚本和执行所述对应的读取操作和写入操作的结果;
基于显示的结果,由所述用户经由所述显示屏修改所述脚本以包括经修改的一系列读取操作和写入操作;
将所述经修改的脚本传输到所述多个测试端口;以及
允许所述多个测试端口执行所述经修改的脚本并执行所述对应的读取操作和写入操作,
由此促进通过所述测试卡的所述多个测试端口进一步并行地测试所述计算设备的所述多个I/O槽。
20.一种装置,包括:
测试卡,所述测试卡具有多个测试端口;
计算设备,所述计算设备具有多个PCIe槽,
其中,所述测试卡的所述多个测试端口耦接到所述计算设备的所述多个PCIe槽;
其中,所述计算设备为所述多个测试端口中的每个测试端口生成脚本,
其中,所述脚本指示要由所述测试卡在与所述计算设备相关联的非易失性存储器上执行的一系列读取操作和写入操作;
其中,与所述测试端口中的剩余测试端口并行地,相应测试端口将通过执行由所述脚本指示的所述一系列读取操作和写入操作来运行所述脚本,
由此允许通过所述测试卡的所述多个测试端口使带宽饱和并验证所述计算设备的所述多个PCIe槽的链路健康状况。
CN202211288007.9A 2022-06-30 2022-10-20 通过单一测试卡中的多个端口使服务器中的多个pcie槽饱和 Pending CN117370083A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/854,609 2022-06-30
US17/854,609 US11966309B2 (en) 2022-06-30 2022-06-30 Saturation of multiple PCIe slots in a server by multiple ports in a single test card

Publications (1)

Publication Number Publication Date
CN117370083A true CN117370083A (zh) 2024-01-09

Family

ID=89167726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211288007.9A Pending CN117370083A (zh) 2022-06-30 2022-10-20 通过单一测试卡中的多个端口使服务器中的多个pcie槽饱和

Country Status (3)

Country Link
US (1) US11966309B2 (zh)
CN (1) CN117370083A (zh)
DE (1) DE102022127485A1 (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW407280B (en) * 1998-06-29 2000-10-01 United Microelectronics Corp Test device with unlimited input/output terminals and method thereof
US8185877B1 (en) * 2005-06-22 2012-05-22 Jpmorgan Chase Bank, N.A. System and method for testing applications
US7743292B2 (en) * 2008-06-13 2010-06-22 Silicon Motion Inc. Apparatus and method for memory card testing
CN102043748B (zh) 2009-10-13 2012-10-31 无锡江南计算技术研究所 PCIe测试平台
US8959272B2 (en) * 2012-07-06 2015-02-17 Blackberry Limited Interposer and intelligent multiplexer to provide a plurality of peripherial buses
US10114658B2 (en) * 2016-05-23 2018-10-30 Baida USA LLC Concurrent testing of PCI express devices on a server platform
US10678721B1 (en) * 2017-02-02 2020-06-09 Amazon Technologies, Inc. Communication link testing
US11940483B2 (en) * 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
CN211505789U (zh) 2019-12-11 2020-09-15 苏州浪潮智能科技有限公司 一种pcie板卡测试装置
US11763913B2 (en) * 2021-07-12 2023-09-19 EMC IP Holding Company LLC Automated testing of functionality of multiple NVRAM cards

Also Published As

Publication number Publication date
US20240004769A1 (en) 2024-01-04
DE102022127485A1 (de) 2024-01-04
US11966309B2 (en) 2024-04-23

Similar Documents

Publication Publication Date Title
US6393588B1 (en) Testing of USB hub
US6516428B2 (en) On-chip debug system
US9747192B2 (en) Automated operating system installation on multiple drives
US7548828B2 (en) Automatic test equipment platform architecture using parallel user computers
US9542304B1 (en) Automated operating system installation
CN110197698B (zh) 自动测试ssd不同电源状态影响的方法及装置
US6442725B1 (en) System and method for intelligent analysis probe
CN107818032A (zh) 一种主板、信息打印方法、系统、装置及存储介质
CN109117299B (zh) 服务器的侦错装置及其侦错方法
CN113204456A (zh) 一种服务器vpp接口的测试方法、治具、装置及设备
KR100755021B1 (ko) 메모리 모듈의 전자적 테스트 방법
US11966309B2 (en) Saturation of multiple PCIe slots in a server by multiple ports in a single test card
US7168029B2 (en) Method for testing a universal serial bus host controller
US10216525B1 (en) Virtual disk carousel
CN114265786A (zh) 自动化测试方法、装置,计算机设备及可读存储介质
CN114328045A (zh) 一种bmc的i2c调试方法、系统、装置及计算机可读存储介质
JP2001318805A (ja) 組み込みシステムのテスト方法及びテストシステム
TWI794996B (zh) 為固態硬碟裝置除錯的裝置及系統
JP4344147B2 (ja) コンピュータの拡張機能検査装置
JP2006235665A (ja) コマンドテスタ
CN102411527A (zh) 一种图像处理芯片的检测方法、开发板和检测系统
TWI575371B (zh) 訊號檢測裝置及方法
CN117389806A (zh) 一种主板调试系统、方法及电子设备
CN100389398C (zh) 定位主板问题元件的测试系统及方法
JP3110418B2 (ja) インサーキットエミュレータおよび制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication