《CPU的总线测试装置及其方法.pdf》由会员分享,可在线阅读,更多相关《CPU的总线测试装置及其方法.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104239173 A(43)申请公布日 2014.12.24CN104239173A(21)申请号 201310222082.X(22)申请日 2013.06.06G06F 11/26(2006.01)(71)申请人鸿富锦精密工业(深圳)有限公司地址 518109 广东省深圳市宝安区龙华镇油松第十工业区东环二路2号申请人鸿海精密工业股份有限公司(72)发明人王光建(54) 发明名称CPU的总线测试装置及其方法(57) 摘要本发明之一种CPU的总线测试装置及其方法,所述测试装置与一CPU模块连接,该CPU模块与一内存模块连接。所述CPU模块包含多个CPU,而该多个CP。
2、U又分别包含一一级缓存,该多个CPU分别通过多条QPI总线与其他CPU的一级缓存连接,所述内存模块包含多个内存,所述总线测试装置包含一读取控制模块、一写入控制模块以及一数据刷新模块,该测试装置通过控制多个CPU之间的相互读取和写入操作测试出每条QPI总线的访问速度,为服务器产品的合格性判断提供依据。本发明还提供了一种CPU的总线测试方法。(51)Int.Cl.权利要求书2页 说明书5页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书5页 附图2页(10)申请公布号 CN 104239173 ACN 104239173 A1/2页21.一种CPU的总线测试。
3、装置,所述总线测试装置与一CPU模块相连,该CPU模块与一内存模块连接,该CPU模块中设置多个CPU,该多个CPU通过多条QPI总线连接,其特征在于,该总线测试装置包括:一读取控制模块,用于向所述CPU模块中的CPU发送读取操作指令,并计算读取速度;一写入控制模块,用于向所述CPU模块中的CPU发送写入操作指令,并计算写入速度;以及一数据刷新模块,用于在所述CPU模块中的CPU完成读取或者写入操作后清空对应一级缓存中的数据。2.如权利要求1所述的CPU的总线测试装置,其特征在于,所述测试装置还包括:一缓存确定模块,用于向所述CPU模块中的每个CPU发送一询问指令,并通过每个CPU的响应信息确定。
4、对应缓存的大小;一内存分配模块,根据所述缓存确定模块确定的缓存大小将一内存模块分配为多个与缓存大小相应的内存,以及一数据写入模块,用于向所述内存分配模块分配的多个内存随机写入数据。3.如权利要求1所述的CPU的总线测试装置,其特征在于,所述总线测试装置还包括:一存储模块,用于存储所述读取控制模块和写入控制模块计算出的读取和写入速度,以及一显示模块,用于显示所述存储模块中存储的读取速度和写入速度。4.如权利要求1所述的CPU的总线测试装置,其特征在于,所述存储模块还用于存储所述CPU模块中多个CPU的一级缓存大小以及指向所述内存分配模块分配的内存的地址指针。5.如权利要求1所述的CPU的总线测试。
5、装置,其特征在于,所述显示模块为一显示屏。6.一种CPU的总线测试方法,能够通过多个CPU之间的相互读取和写入操作测试出每条QPI总线的访问速度,其特征在于,该方法包括:a向所述CPU模块中的一个CPU发送一读取操作指令,并根据读取时间和读取数据的大小计算读取速度;b向所述完成读取操作的CPU发送一数据刷新指令;c向所述完成读取操作的CPU发送一写入操作指令,并根据写入时间和写入数据的大小计算写入速度。7.如权利要求6所述的CPU的总线测试方法,其特征在于,所述步骤a之前还包括步骤:d向所述CPU模块中的多个CPU发送一询问指令,根据该多个CPU的响应信息确定缓存的大小;e根据所述缓存确定模块。
6、确定的缓存大小将一内存模块分配为多个与缓存大小相应的内存;f向所述内存分配模块分配的多个内存随机写入数据。8.如权利要求6所述的CPU的总线测试方法,其特征在于,所述步骤d之后还包括步骤:g向所述完成写入操作的CPU发送一数据刷新指令;权 利 要 求 书CN 104239173 A2/2页3h变换其他CPU,重复以上步骤ac,直到与所有CPU连接的QPI总线的读取和写入速度都测试完毕。9.如权利要求6所述的CPU的总线测试方法,其特征在于,还包括步骤:i显示每条QPI总线的读取速度和写入速度。10.如权利要求6所述的CPU的总线测试方法,其特征在于,所述CPU模块中多个CPU在进行读取和写入操。
7、作时,连接同一个CPU的所有QPI总线顺序进行读取或写入操作。权 利 要 求 书CN 104239173 A1/5页4CPU 的总线测试装置及其方法技术领域0001 本发明涉及一种服务器系统的总线测试装置及其方法,尤其涉及一种测试QPI总线的装置及其方法。背景技术0002 随着互联网技术的快速发展,服务器系统给人们的生活带来了越来越大的便利。传统的服务器只有一个CPU(中央处理器),这样的架构已经不能满足对数据的处理要求,所以产生了一种SMP系统(多处理机系统),配合FSB(前端总线)技术,服务器的数据处理能力有了大幅度的提高。但是,FSB技术需要北桥芯片作为多个CPU之间的数据通信桥梁,原本。
8、只需要在CPU之间传输的数据访问速度因北桥芯片的加入而大大变慢,为了解决这一问题,一种新的QPI(快速通道互联)总线技术应运而生。QPI总线技术使多个CPU之间的数据直接传输成为可能,数据访问速度也因此大大提高。在对使用QPI总线技术的服务器产品进行测试时,往往需要检测QPI总线的实际访问速度,以判断服务器产品的实际性能是否达到设计要求。发明内容0003 有鉴于此,有必要提供一种对SMP系统的QPI总线访问速度进行测试的装置及其方法。0004 本发明提供了一种CPU的总线测试装置,所述总线测试装置与一CPU模块相连,该CPU模块与一内存模块连接,该CPU模块中设置多个CPU,该多个CPU通过多。
9、条QPI总线连接,该总线测试装置包括:一读取控制模块,用于向所述CPU模块中的CPU发送读取操作指令,并计算读取速度;一写入控制模块,用于向所述CPU模块中的CPU发送写入操作指令,并计算写入速度;以及一数据刷新模块,用于在所述CPU模块中的CPU完成读取或者写入操作后清空对应一级缓存中的数据。0005 本发明还提供了一种CPU的总线测试方法,能够通过多个CPU之间的相互读取和写入操作测试出每条QPI总线的访问速度,该方法包括:a向所述CPU模块中的CPU发送一读取操作指令,并根据读取时间和读取数据的大小计算读取速度;b向所述CPU模块中完成读取操作的CPU发送一数据刷新指令;c向所述CPU模。
10、块中完成读取操作的CPU发送一写入操作指令,并根据写入时间和写入数据的大小计算写入速度。0006 本发明之CPU的总线测试装置与方法,通过多个CPU之间相连的QPI总线,对每个CPU进行反复读取和写入,以计算出QPI总线的访问速度,为使用QPI总线的服务器产品的合格性判断提供依据。说 明 书CN 104239173 A2/5页5附图说明0007 图1为本发明一实施方式中的系统组成示意图。0008 图2为图1系统的方法流程图。0009 主要元件符号说明QPI总线T1T3CPU模块10第一CPU 11第一一级缓存111第二CPU 12第二一级缓存121第三CPU 13第三一级缓存131第四CPU 。
11、14第四一级缓存141内存模块20第一内存21第二内存22第三内存23第四内存24总线测试装置30QPI总线确定模块31缓存确定模块32内存分配模块33数据写入模块34读取控制模块35数据刷新模块36写入控制模块37存储模块38显示模块39步骤S1S11如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式0010 下面将结合附图,对本发明作进一步的详细说明。0011 请参阅图1,本发明提供了一种CPU的总线测试装置30,所述总线测试装置30与一CPU模块10连接,该CPU模块10又与一内存模块20相连。所述CPU模块10包含多个CPU,该多个CPU中的每个CPU包含一一级缓存,每个CP。
12、U需要处理的数据首先会存放到其一级缓存中。该CPU模块10中的每个CPU分别通过多条QPI总线与其他CPU的一级缓存连接,该多条QPI总线负责CPU之间数据的传输。所述内存模块20也包含多个内存,该内存模块20中内存的数量与所述CPU模块10中CPU的数量相同,并与每个CPU中的一级缓存一一对应。所述总线测试装置30包含一QPI总线确定模块31、一缓存确定模块32、一内存分配模块33、一数据写入模块34、一读取控制模块35、一数据刷新模块36、一写入控制模块37、一存储模块38以及一显示模块39。在本实施方式中,所述CPU模块10包含4个CPU,分别为第一CPU 11、第二CPU 12、第三C。
13、PU 13以及第四CPU 14,对应地,该4个CPU包含的一级缓存分别为第一一级缓存111、第二一级缓存121、第三一级缓存131以及第四一级缓存说 明 书CN 104239173 A3/5页6141。该4个CPU之间通过12条QPI总线连接(图示出3条),T1、T2和T3分别为第一CPU 11与第二CPU 12、第三CPU 13以及第四CPU 14的一级缓存连接的QPI总线。所述内存模块20也包含4个内存,分别为第一内存21、第二内存22、第三内存23以及第四内存24,该第一内存21、第二内存22、第三内存23以及第四内存24分别与所述第一一级缓存111、第二一级缓存121、第三一级缓存13。
14、1以及第四一级缓存141对应连接。在本实施方式中,所述总线测试装置30为一具有多功能模块的控制装置,例如FPGA(现场可编程门阵列)芯片和MCU(微控制器)等,内存模块20为一内存设备(图未示出),其中的第一内存21、第二内存22、第三内存23以及第四内存24分别为该内存设备上的4个内存区域。0012 所述QPI总线确定模块31用于向所述CPU模块10中的每个CPU发送指令确定该CPU模块10中CPU的数量并计算相应的QPI总线数量。在本实施方式中,若所述CPU模块10中的CPU数量为M,则对应的QPI总线数量为M*(M-1)。0013 所述缓存确定模块32用于向所述CPU模块10中的每个CP。
15、U发送指令并确定每个CPU的一级缓存大小。在本实施方式中,该CPU模块10中的每个CPU为相同的型号,其一级缓存大小也相同。0014 所述内存分配模块33用于根据所述缓存确定模块32确定的每个CPU的缓存大小将一内存设备分为与所述CPU模块10中CPU数量及其一级缓存大小相对应的多个内存区域。0015 所述数据写入模块34用于向所述内存分配模块33分配出的多个内存随机写入与该多个内存大小相同的数据。0016 所述读取控制模块35用于向所述CPU模块10中的每个CPU发送读取操作指令,记录每个CPU的读取操作时间,并根据每个CPU的读取操作时间以及所读取的数据大小计算相应的读取速度。0017 所。
16、述数据刷新模块36用于在所述CPU模块10中的CPU完成读取或写入操作后清空一级缓存中的数据。0018 所述写入控制模块37用于向所述CPU模块10中的每个CPU发送读取操作指令,记录每个CPU的写入操作时间,并根据每个CPU的写入操作时间以及写入数据的大小计算相应的写入速度。0019 所述存储模块38用于存储所述内存分配模块33分配的多个内存的对应地址指针以及读取控制模块35和写入控制模块36计算出的每条QPI总线的读取速度和写入速度。0020 所述显示模块39用于显示所述存储模块38存储的每条QPI总线的读取速度和写入速度。0021 请参阅图2,为本发明一实施方式中用于所述CPU的总线测试。
17、装置10上的CPU总线测试方法的流程图。所述CPU总线测试方法能够通过多个CPU之间的相互读取和写入操作测试出每条QPI总线的访问速度,该方法包括:步骤S1,所述QPI总线确定模块31向CPU模块10中的每个CPU分别发送一询问指令,通过该多个CPU的响应信息确定该多个CPU的数量M,并根据该CPU的数量M计算与该多个CPU连接的QPI总线数量N。在本实施方式中,CPU的数量M为4,故根据公式N=M*(M-1)可计算出与该多个CPU连接的QPI总线数量N为12。0022 步骤S2,所述缓存确定模块32向CPU模块10中的每个CPU分别发送一一级缓存说 明 书CN 104239173 A4/5页。
18、7大小询问指令,并通过该多个CPU的响应信息确定与该多个CPU对应的的一级缓存大小,由该总线测试装置30的存储模块38记录每个一级缓存的大小以及与各个CPU的对应关系。在本实施方式中,由于该CPU模块10中的4个CPU具有相同的型号,故该4个CPU的一级缓存大小相同,均为m。0023 步骤S3,所述内存分配模块33根据与所述CPU模块10中多个CPU对应的多个一级缓存的大小将所述内存模块20分配为多个与该多个一级缓存一一对应的内存,并由所述存储模块38记录指向该多个内存的地址指针以及每个CPU与内存的对应关系。在本实施方式中,由于该多个CPU中的一级缓存大小均为m,故该内存分配模块33分配出的。
19、4个内存为该内存模块上4个大小相同的区域,且该内存区域的大小均为m。0024 步骤S4,所述数据写入模块34向所述内存分配模块33分配的多个内存中写入数据。在本实施方式中,该数据写入模块34向内存模块20中的4个内存中分别随机写入大小为m的数据。0025 步骤S5,所述读取控制模块35向所述CPU模块10的其中一个CPU发送一读取操作指令,该CPU接收到读取操作指令后对其他CPU的一级缓存开始进行读取操作。0026 具体地,以第一CPU 11为例,该第一CPU 11接收到读取操作指令后,按顺序读取所述内存模块20的第二内存22、第三内存23和第四内存24中的数据。以第二内存22为例,该第一CP。
20、U 11首先通过QPI总线T1以及指向该第二内存22的地址指针将该第二内存22中的数据复制到第二一级缓存121,然后读取该第二一级缓存121中的数据,并存放于第一一级缓存111中,由该读取控制模块35记录读取操作的时间和读取数据的大小,并计算本次读取操作的读取速度。例如,在t1的时间内读取了大小为m的数据,那么读取速度就是m/t1。当本次读取操作完成后,所述存储模块38记录读取速度,并按顺序进行第三内存23和第四内存24的读取操作。0027 步骤S6,所述数据刷新模块36向完成读取操作的CPU发送一数据刷新指令,该CPU接收到该指令后清空一级缓存中的数据。0028 具体地,仍以第一CPU 11。
21、读取第二CPU 12对应的第二一级缓存121中的数据为例,所述第一CPU 11接收到数据刷新指令后,清空第一一级缓存111和第二一级缓存121中的数据。0029 步骤S7,所述写入控制模块37向完成读取操作的CPU发送一写入操作指令,该CPU接收到写入操作命令后开始对其他CPU的一级缓存进行写入操作。0030 具体地,在所述第一CPU 11接收到写入操作指令后,按顺序向第二一级缓存121、第三一级缓存131和第四一级缓存141中写入数据。以第二一级缓存121为例,该第一CPU 11首先将第一内存21中的数据复制到第一一级缓存111中,然后通过QPI总线T1将该第一一级缓存111中的数据写入到第。
22、二一级缓存121中,由该写入控制模块37记录写入操作的时间和写入数据的大小,并计算本次写入操作的写入速度。例如,在t2的时间内写入了大小为m的数据,那么写入速度就是m/t2。当本次写入操作完成后,所述存储模块38记录写入速度,并按顺序进行第三一级缓存131和第四一级缓存141的写入操作。0031 步骤S8,所述数据刷新模块36向完成写入操作的CPU发送一数据刷新指令,该CPU接收到该指令后清空一级缓存中的数据。0032 具体地,仍以第一CPU 11将数据写入第二CPU 12对应的第二一级缓存121中为说 明 书CN 104239173 A5/5页8例,所述第一CPU 11接收到数据刷新指令后,。
23、清空第一一级缓存111和第二一级缓存121中的数据。0033 步骤S9,变换其他CPU,重复以上步骤S5S7,直到与所有CPU连接的QPI总线的读取和写入速度都测试完毕。为了确保计算结果的精确,需要重复进行多次测试,再将多次测试的读取速度和写入速度分别取平均值即可,QPI总线的访问速度即包含读取速度和写入速度。0034 步骤S10,所述存储模块38存储所述读取控制模块35和写入控制模块37计算出的每一条QPI总线的读取和写入速度。0035 步骤S11,所述显示模块39将存储模块38中存储的每一条QPI总线的读取和写入速度显示出来。在本实施方式中,该显示模块为一显示屏。0036 本发明之CPU的总线测试装置与方法,利用一测试装置控制多个CPU进行相互的读取和写入操作,并计算和记录QPI总线的访问速度,为使用QPI总线的服务器产品的合格性判断提供依据。0037 本技术领域的普通技术人员应当认识到,以上的实施方式仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围之内,对以上实施方式所作的适当改变和变化都落在本发明要求保护的范围之内。说 明 书CN 104239173 A1/2页9图1说 明 书 附 图CN 104239173 A2/2页10图2说 明 书 附 图CN 104239173 A10。