测试方法以及可编程处理器的制作方法

文档序号:6375805阅读:263来源:国知局
专利名称:测试方法以及可编程处理器的制作方法
技术领域
本发明实施例涉及半导体技术,尤其涉及测试方法以及可编程处理器。
背景技术
存储器已广泛地被使用。为确保存储器的可靠性,上市前需要对存储器进行测试。现有技术中CPU通过承载在操作系统之上的测试程序对存储器进行测试,测试过程中对存储器进行访问能够达到的最大频率相对较低。

发明内容
为提高测试过程中对存储器进行访问能够达到的最大频率,提供了测试方法和可编程处理器。第一方面,提供了一种测试方法,可编程处理器确定至少一个存储器;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试。现有技术中,对存储器进行测试是通过软件线程实现的。具体来说,测试程序是承载在操作系统之上的应用程序。CPU需要先通过编译器将承载在操作系统之上的测试程序转化为计算机指令,然后再执行测试程序对应的计算机指令。因此,现有技术执行测试程序的效率较低。上述技术方案中,可编程处理器运行至少一个硬件线程,硬件线程可以直接调用计算机指令。因此,上述技术方案可以提升测试过程中对存储器进行访问能够达到的最大频率,进而提高测试程序的执行效率。在所述第一方面提供的所述测试方法的第一种可能的实现方式中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试之前,所述方法还包括所述可编程处理器接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器运行所述至少一个硬件线程;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括所述至少一个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。根据所述第一方面提供的所述测试方法以及所述第一方面提供的所述测试方法的第一种可能的实现方式,在所述第一方面提供的所述测试方法的第二种可能的实现方式中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括所述可编程处理器并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。根据所述第一方面提供的所述测试方法以及所述第一方面提供的所述测试方法的第一种可能的实现方式,在所述第一方面提供的所述测试方法的第三种可能的实现方式中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括所述可编程处理器并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。根据所述第一方面提供的所述测试方法的第二种可能的实现方式,在所述第一方面提供的所述测试方法的第四种可能的实现方式中,所述消息还包括所述多个硬件线程分别对应的所述多个存储器的标识;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括
所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储器的标识所指示的所述多个存储器进行测试。根据所述第一方面提供的所述测试方法的第三种可能的实现方式,在所述第一方面提供的所述测试方法的第五种可能的实现方式中,所述消息还包括所述多个硬件线程分别对应的所述多个存储空间的标识;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储空间的标识所指示的所述多个存储空间进行测试。根据所述第一方面提供的所述测试方法、所述第一方面提供的所述测试方法的第一种可能的实现方式、所述第一方面提供的所述测试方法的第二种可能的实现方式、所述第一方面提供的所述测试方法的第三种可能的实现方式、所述第一方面提供的所述测试方法的第四种可能的实现方式以及所述第一方面提供的所述测试方法的第五种可能的实现方式,在所述第一方面提供的所述测试方法的第五种可能的实现方式中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试具体包括所述可编程处理器通过多个物理接口对所述至少一个存储器进行测试。第二方面,提供了一种可编程处理器,包括确定单元和测试单元;所述确定单元,用于确定至少一个存储器;所述测试单元,用于运行至少一个硬件线程对所述确定单元确定的所述至少一个存储器进行测试。现有技术中,对存储器进行测试是通过软件线程实现的。具体来说,测试程序是承载在操作系统之上的应用程序。CPU需要先通过编译器将承载在操作系统之上的测试程序转化为计算机指令,然后再执行测试程序对应的计算机指令。因此,现有技术执行测试程序的效率较低。上述技术方案中,可编程处理器运行至少一个硬件线程,硬件线程可以直接调用计算机指令。因此,上述技术方案可以提升测试过程中对存储器进行访问能够达到的最大频率,进而提高测试程序的执行效率。在所述第二方面提供的所述可编程处理器的第一种可能的实现方式中,所述可编程处理器还包括接收单元
所述接收单元,用于在所述测试单元运行所述至少一个硬件线程对所述至少一个存储器进行测试前,接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器运行所述至少一个硬件线程;所述测试单元包括所述至少一个硬件线程,所述至少一个硬件线程用于根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。根据所述第二方面提供的所述可编程处理器以及所述第二方面提供的所述可编程处理器的第一种可能的实现方式,在所述第二方面提供的所述可编程处理器的第二种可能的实现方式中,所述测试单元具体用于并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。 根据所述第二方面提供的所述可编程处理器以及所述第二方面提供的所述可编程处理器的第一种可能的实现方式,在所述第二方面提供的所述可编程处理器的第三种可能的实现方式中,所述测试单元具体用于并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种测试方法的流程图;图2为本发明实施例提供的一种测试方法的流程图;图3为本发明实施例提供的一种测试方法的示意图;图4为本发明实施例提供的一种测试方法的示意图;图5为本发明实施例提供的一种测试方法的示意图;图6为本发明实施例的测试装置的示意图;图7为本发明图6所示的测试装置执行的测试方法的流程图;图8为本发明实施例提供的一种可编程处理器的结构示意图;图9为本发明实施例提供的一种可编程处理器的结构示意图;图10为本发明实施例提供的一种可编程处理器的结构示意图;图11为本发明实施例提供的一种可编程处理器的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图I为本发明实施例提供的一种测试方法的流程图。如图I所示,所述方法包括步骤101、可编程处理 器确定至少一个存储器。步骤102、所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试。所述至少一个存储器为待测试的存储器。上述技术方案中,所述可编程处理器进行测试前,确定待测试的存储器。举例来说,所述至少一个存储器可以为双倍数据速率同步动态随机存取存储器(double data rate synchronous dynamic random access memory, DDR SDRAM)、同步动态随机存取存储器(synchronous dynamic random access memory, SDRAM)、静态随机存取存储器(static random access memory, SRAM)、CF 卡(compact flash card)、固态硬盘(solid-state drive, SSD)、硬盘(hard drive, HD)、安全性数字存储卡(Secure DigitalMemory Card, SDMC)或者多媒体卡(Multimedia Card, MMC) 举例来说,所述可编程处理器与所述至少一个存储器直连。所述至少一个硬件线程调用测试程序对所述至少一个存储器进行测试。所述测试程序为计算机指令。举例来说,所述计算机指令可以存储在所述可编程处理器的指令存储器中。所述测试程序对应一个测试算法。所述测试算法可以是March算法。所述March算法可以是MATS++, March C-, March B, March U或者March G。所述测试March算法也可以是 MATS++、March C-> March B> March U 以及 March G 中的多个的组合。举例来说,SAID HAMDI0UI提出了用于测试存储器的动态故障的March RAW算法。March RAW 算法如下
{frwo;
0(RO, W0, R0, R0, WI, Rl); (R1, Wl, Rl , Rl, W0, R0); U(R0,W0, R0, R0, WI, Rl); U(Rh Wl,Rl, Rl, W0, R0);
JJro}关于至少一个硬件线程对至少一个存储器进行测试,可以包括多种情形。举例来说,可以是一个硬件线程对一个存储器进行测试。举例来说,也可以是多个硬件线程对一个存储器进行测试。例如,多个硬件线程分别对应一个存储器中的多个存储空间。举例来说,也可以是一个硬件线程对多个存储器进行测试。例如,上一时刻,硬件线程对第一个存储器进行测试。下一时刻,硬件线程对第二个存储器进行测试。发明人发现,测试程序的测试效果不仅与测试程序采用的测试算法有关,还与测试应力有关。测试应力是测试程序能否达到预定的测试效果的影响因素之一证。举例来说,March RAW算法中第二步“(R0,W0, R0, R0, Wl,Rl) ”有连续6个动作。通过执行上述6个动作可以发现静态故障以及存储器单元间的动态耦合性故障。上述6个动作中如果任何2个连续的动作执行的时间间隔太大,则无法发现动态耦合故障。本发明实施例提供的技术方案可以提高测试应力。提高测试应力可以提高测试程序的测试效果。现有技术中,对存储器进行测试是通过软件线程实现的。具体来说,测试程序是承载在操作系统之上的应用程序。CPU需要先通过编译器将承载在操作系统之上的测试程序转化为计算机指令,然后再执行测试程序对应的计算机指令。因此,现有技术执行测试程序的效率较低。本发明实施例提供的技术方案中,可编程处理器运行至少一个硬件线程,硬件线程可以直接调用计算机指令。因此,本发明实施例提供的技术方案可以提升测试过程中对存储器进行访问能够达到的最大频率,进而提高测试程序的执行效率。可选的,图I所示的测试方法中,所述可编程处理器运行至少一个硬件线程对所 述至少一个存储器进行测试之前,所述方法还可以包括步骤201、所述可编程处理器接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器运行所述至少一个硬件线程。所述可编程处理器运行至少一个硬件线程对至少一个存储器进行测试包括步骤202、所述至少一个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。图2为一种测试方法的流程图。关于步骤201和步骤202,请参见图2。可选的,图I所示的测试方法中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试可以包括可编程处理器并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,可编程处理器可为网络处理器(Network Processor, NP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processing, DSP)或者现场可编程门阵列(Field — Programmable Gate Array, FPGA)。所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。可选的,上述测试方法中,所述消息还包括所述多个硬件线程分别对应的所述多个存储器的标识;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储器的标识所指示的所述多个存储器进行测试。图3为上述测试方法的示意图。如图3所示,可编程处理器200运行多个硬件线程对多个存储器进行测试。可选的,所述消息还包括多个硬件线程分别对应的多个存储器的标识。所述可编程处理器200运行至少一个硬件线程对至少一个存储器进行测试包括所述多个硬件线程根据所述多个硬件线程分别对应的所述多个存储器的标识分别对所述多个存储器的标识所指示的所述多个存储器进行测试。举例来说,可编程处理器200中的多核处理器可以运行硬件线程200a、硬件线程200b、硬件线程200c分别对存储器100a、存储器100b、存储器100c进行测试。
可编程处理器200运行多个硬件线程对多个存储器进行测试。上述技术方案可以实现多个硬件线程并行对存储器进行测试,从而提高了测试效率。可选的,图I所示的测试方法中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试可以包括所述可编程处理器并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。可选的,上述测试方法中,所述消息还可以包括所述多个硬件线程分别对应的所述多个存储空间的标识;所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包 括所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储空间的标识所指示的所述多个存储空间进行测试。举例来说,当所述可编程处理器为网络处理器、数字信号处理器或者专用集成电路时,所述可编程处理器可以包括多个物理核,所述多个物理核与所述多个硬件线程一一对应。图4为上述测试方法的示意图。如图4所示,可编程处理器200运行多个硬件线程对一个存储器的多个存储空间进行测试。具体来说,图4中的可编程处理器200可以是多核处理器。可编程处理器运行至少一个硬件线程对至少一个存储器进行测试包括所述可编程处理器并行运行多个硬件线程对存储器中的多个存储空间进行测试。参见图4,可编程处理器200中的多核处理器对存储器300中的存储空间400a、存储空间400b以及存储空间400c进行测试。所述多个硬件线程与所述多个存储空间一一对应,可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列。举例来说,所述消息还包括所述多个硬件线程分别对应的所述多个存储空间的标识。存储空间的标识可以是存储空间的起始地址以及存储空间的结束地址。存储空间的标识也可以是存储空间的起始地址以及存储空间的大小。存储空间的标识也可以是存储空间的结束地址以及存储空间的大小。本领域的技术人员可以理解,图4中的可编程处理器200还可以包括存储模块。所述存储模块用于存储所述多个硬件线程分别对应的测试算法。所述存储模块还可以存储测试结果。本领域的技术人员可以理解,当可编程处理器只对一个存储器进行测试时,所述消息中可以不包括所述存储器的标识。当可编程处理器对多个存储器进行测试时,所述消息可包括多个硬件线程分别对应的多个存储器的标识。举例来说,所述消息还可以用于配置待测试的存储器的类型以及所述多个硬件线程的数量。所述CPU还可以将所述多个硬件线程分别对应的测试算法发送至所述可编程处理器中。例如所述CPU将所述多个硬件线程分别对应的测试算法发送至所述可编程处理器的指令存储器中。随后,所述CPU可以向所述可编程处理器发送测试开始的命令。所述可编程处理器收到所述测试开始的命令后,所述多个硬件线程开始对所述多个存储空间进行测试。通过并行对存储器的多个存储空间进行测试,可以提高测试效率。可选的,图I所示的测试方法中,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试具体可以包括所述可编程处理器通过多个物理接口对所述至少一个存储器进行测试。图5为上述测试方法的示意图。如图5所示,可编程处理器200运行多个硬件线程通过多个物理接口对多个存储器进行测试。具体来说,可编程处理器200包含第一物理接口 500a以及第二物理接口 500b。所述可编程处理器200中的多核处理器通过第一物理接口 500a对第一存储器IOOa进行测试。所述可编程处理器200通过第二物理接口 500b对第二存储器IOOb进行测试。所述至 少一个存储器包括所述第一存储器IOOa和所述第二存储器100b。本领域的技术人员可以理解,图5中的可编程处理器200还可以包括存储模块。所述存储模块用于存储所述多个硬件线程分别对应的测试算法。所述存储模块还可以存储测试结果。上述测试方法可实现通过多个物理接口对存储器进行测试。举例来说,上述测试方法并不限于一个物理接口只连接一个存储器。一个物理接口可以连接多个存储器。可以对物理接口上连接的多个存储器进行测试。通过多个物理接口对存储器进行测试可提高测试效率。可选的,图I所示的测试方法中,所述可编程处理器接收CPU发送的消息之前,所述测试方法还可以包括所述CPU在内存中为所述至少一个存储器分配入口队列和出口队列。举例来说,测试开始前,所述CPU向所述可编程处理器发送测试任务。测试完成后,所述CPU获取测试结果。测试操作是所述可编程处理器通过微码实现的。因此,测试开始前所述CPU为所述至少一个存储器分配的所述入口队列可以用于存储测试算法。测试开始前所述CPU为所述至少一个存储器分配的所述出口队列可以用于存储测试结果。所述CPU可以通过所述入口队列和所述出口队列与所述可编程处理器进行通信。举例来说,所述可编程处理器存储所述测试结果。具体来说,所述可编程处理器将所述测试结果存储在所述内存中所述出口队列中。根据上述技术方案可以看出,测试任务是所述可编程处理器通过多个硬件线程完成的。所述CPU向所述可编程处理器发送测试任务后,所述CPU等待测试结束。当测试结束时,所述CPU获取测试结果。测试结果存储在所述出口队列中。当所述CPU获取了测试结果后,所述CPU可以置测试结束标志。图6为本发明实施例提供的一种测试装置的示意图。所述测试装置可以执行图I所示的测试方法。图7为图6所示的测试装置能够执行的测试方法的流程图。下面结合图6和图7对图3所示的测试方法进行具体说明如图6所示,图6所示的测试装置涉及的器件包括CPU 100、可编程处理器200以及存储器O至存储器6。存储器O至存储器6为待测试的存储器。可编程处理器200包括核处理器O至核处理器N。N为正整数。每个核处理器可运行多个硬件线程。可编程处理器200中还包括与多个核处理器分别关联的多个指令存储器以及多个数据存储器。此外,可编程处理器200还包括资源总线仲裁器以及多个控制器。其中,多个指令存储器分别为指令存储器O至指令存储器M。M为正整数。多个数据存储器分别为数据存储器O至数据存储器M。多个控制器分别为控制器I至控制器4。核处理器通过控制器对存储器进行访问。资源总线仲裁器为核处理器确定通过哪个控制器对存储器进行访问。CPU 100通过可编程处理器 200 的外围部件快速互连(peripheral component interconnect express, PCIE)接口与可编程处理器200相连。CPU 100用于发送测试任务,发送测试开始标志,获取测试结果,恢复现场以及打印测试结果。对待测试存储器进行测试是可编程处理器200内部的多个硬件线程完成的。如图7所示,图6所示的测试装置能够执行的测试方法包含了 CPU 100端的流程和可编程处理器200端的流程。CPU 100端的测试过程可以包括测试配置701 =CPU 100对可编程处理器200执行存储器测试所需要资源进行初始化配置。测试配置包括在内存中为待测试的存储器分配对应的入口队列和出口队列。
·
发送指令消息,启动硬件线程702:所述指令消息包括所述待测试的存储器的存储器标识和与待测试的存储器对应的测试算法的标识。该指令消息可以配置待测试的存储器的类型,硬件线程的数量以及测试算法的标识。上述信息可以存储在可编程处理器200的数据存储器中。发送所述指令消息后,启动硬件线程。硬件线程启动后,硬件线程开始执行测试。启动定时任务703:定时任务用于防止硬件线程挂死。测试是否超时704 :检测测试时间是否超时。测试是否完成705 :如果测试时间没有超时,再检测可编程处理器200端的测试过程是否完成。读取测试结果,置结束标志706 :测试任务是可编程处理器200中的多个硬件线程执行的。测试结束后,CPU 100读取测试结果,并置测试结束标志。CPU 100可以读取存储在数据存储器中的测试结果。打印结果、现场恢复707 :通过用户界面打印测试结果信息,并恢复现场。每轮测试前都判断一下测试是否结束,如果没有结束,返回判断测试是否超时704,继续执行可编程处理器200端的测试操作。如果测试结束,释放硬件线程,正常结束测试任务。读取测试结果708 :如果测试时间超时,执行读取测试结果。复位所有硬件线程709 :在测试时间超时情况下,读取测试结果后,对所有硬件线程进行复位。复位后,异常结束测试任务。可编程处理器200端的执行的操作包括对待测试存储器应用对应的测试算法,根据硬件线程的数量并行启动多个硬件线程进行测试。具体的测试过程包括执行测试710 :测试结果放到测试结果队列,可编程处理器200中的多个核处理器并行启动多个测试硬件线程对待测试的存储器进行测试。是否测试结束711 :检测测试过程是否结束;如果测试没结束,继续执行测试。释放硬件线程712 :如果测试结束,对硬件线程进行释放。硬件线程释放后正常结束测试过程。
上述技术方案中,CPU 100下发任务,由可编程处理器200中的核处理器执行测试操作。CPU 100读取测试结果。上述技术方案中,可编程处理器200通过微码实现存储器测试算法,可提高测试的效率。采用多个硬件线程进行测试,可缩短测试时间,提升测试的效率。上述技术方案中,可编程处理器200可以是NP、ASIC、FPGA或者DSP。
图8为本发明实施例提供的一种可编程处理器的结构示意图。所述可编程处理器可以通过图I所示的方法实现。如图8所示,所述可编程处理器200包括确定单元801和测试单元802 ;所述确定单元801,用于确定至少一个存储器。举例来说,所述确定单元可以是固件。所述固件包括硬件电路以及承载在所述硬件电路的软件。所述硬件电路为所述可编程处理器中的部件。所述软件可以承载在CPU发送的消息中。该消息可为图3或图4所示的方法中的所述消息。所述测试单元802,用于运行至少一个硬件线程对所述确定单元确定的所述至少一个存储器进行测试。测试单元802执行的是可编程处理器200对存储器的测试功能。该实施例的可编程处理器通过运行至少一个硬件线程对至少一个存储器进行测试。这种并行多硬件线程的测试方式,能够提高执行测试程序的效率,可以提升测试过程中对存储器进行访问能够达到的最大频率。图9为本发明实施例提供的一种可编程处理器的结构示意图。所述可编程处理器可以通过图I所示的方法实现。图9所示的可编程处理器200可以在图8所示的可编程处理器基础上实现。如图9所示,图9所示的可编程处理器200还包括接收单元901 所述接收单元901,用于在所述测试单元802运行所述至少一个硬件线程对所述至少一个存储器进行测试前,接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器200运行所述至少一个硬件线程。所述测试单元802包括所述至少一个硬件线程,所述至少一个硬件线程用于根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。可选的,所述测试单元802具体用于并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,所述可编程处理器200为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。可选的,所述测试单元802具体用于并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器200为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。图10为本发明实施例提供的一种可编程处理器的结构示意图。图10所示的可编程处理器200能够执行图2所示的方法。图10所示的可编程处理器200连接有多个存储器,可编程处理器200包括多核处理器,用于接收CPU发送的消息,所述消息包括所述多个硬件线程的标识和所述多个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器200运行所述多个硬件线程;存储模块,与所述多核处理器连接,用于存储硬件线程对应的测试算法以及测试结果。可选的,所述可编程处理器200运行多个硬件线程对多个存储器进行测试包括所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储器进行测试。
上述技术方案中,可编程处理器200通过采用硬件线程测试,提升了测试效率。图11为本发明实施例提供的一种可编程处理器的结构示意图。图11所示的可编程处理器是多核CPU300。图11所示的可编程处理器与图10所示的可编程处理器的区别是,图10中的可编程处理器200被图11中的多核CPU300代替。另外,图11中的多核CPU300也执行图10中的CPU 100的操作。因此,图11所示的可编程处理器可以不涉及图10中CPU 100。多核CPU 300是一种多核多硬件线程CPU处理器,其包括的核心器件是多个CPU核,对存储器进行检测时,通过多个CPU核分别测试存储器的多个存储空间。通过多个硬件线程,多个接口并行测试,可以达到较好的测试效果。多核CPU 300有两个存储器接口控制器,分别为控制器I和控制器2。每个控制器外挂两组存储器。控制器I外挂存储器O和存储器I。控制器2外挂存储器2和存储器3。每组IG大小,总计4G。可以通过多个CPU核并行启动对外挂存储器的测试。本实施例由于使用了多核CPU 300对外挂的多个待测试存储器运行多个硬件线程进行测试。CPU 300包含多个CPU核,对外挂的多个待测试存储器进行多个硬件线程并行进行测试,可提高对访问存储器能够达到的最大频率。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(英文缩写为R0M,英文全称为Read-Only Memory)、随机存取存储器(英文缩写为RAM,英文全称为Random AccessMemory )、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种测试方法,其特征在于,包括 可编程处理器确定至少一个存储器; 所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试。
2.根据权利要求I所述的方法,其特征在于,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试之前,所述方法还包括 所述可编程处理器接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器运行所述至少一个硬件线程; 所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括 所述至少一个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。
3.根据权利要求I或2所述的方法,其特征在于,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括 所述可编程处理器并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。
4.根据权利要求I或2所述的方法,其特征在于,所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括 所述可编程处理器并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。
5.根据权利要求3所述的方法,其特征在于,所述消息还包括所述多个硬件线程分别对应的所述多个存储器的标识; 所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括 所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储器的标识所指示的所述多个存储器进行测试。
6.根据权利要求4所述的方法,其特征在于,所述消息还包括所述多个硬件线程分别对应的所述多个存储空间的标识; 所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试包括 所述多个硬件线程根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述多个存储空间的标识所指示的所述多个存储空间进行测试。
7.根据权利要求I至6中任一所述的方法,其特征在于, 所述可编程处理器运行至少一个硬件线程对所述至少一个存储器进行测试具体包括 所述可编程处理器通过多个物理接口对所述至少一个存储器进行测试。
8.一种可编程处理器,其特征在于,包括确定单元和测试单元; 所述确定单元,用于确定至少一个存储器;所述测试单元,用于运行至少一个硬件线程对所述确定单元确定的所述至少一个存储器进行测试。
9.根据权利要求8所述的可编程处理器,其特征在于,还包括接收单元 所述接收单元,用于在所述测试单元运行所述至少一个硬件线程对所述至少一个存储器进行测试前,接收CPU发送的消息,所述消息包括所述至少一个硬件线程的标识和所述至少一个硬件线程对应的测试算法的标识,所述消息用于使所述可编程处理器运行所述至少一个硬件线程; 所述测试单元包括所述至少一个硬件线程,所述至少一个硬件线程用于根据所述消息中的所述测试算法的标识运行所述测试算法对应的计算机指令对所述至少一个存储器进行测试。
10.根据权利要求8或9所述的可编程处理器,其特征在于, 所述测试单元具体用于并行运行多个硬件线程对多个存储器进行测试,所述多个硬件线程与所述多个存储器一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述多个存储器。
11.根据权利要求8或9所述的可编程处理器,其特征在于, 所述测试单元具体用于并行运行多个硬件线程对存储器中的多个存储空间进行测试,所述多个硬件线程与所述多个存储空间一一对应,所述可编程处理器为网络处理器、专用集成电路、数字信号处理器或者现场可编程门阵列,所述至少一个硬件线程为所述多个硬件线程,所述至少一个存储器为所述存储器。
全文摘要
本发明实施例提供一种测试方法以及可编程处理器。其中,该测试方法包括可编程处理器确定至少一个存储器;可编程处理器运行至少一个硬件线程对至少一个存储器进行测试。此外,还提供了可编程处理器。上述技术方案可以提升测试过程中对存储器进行访问能够达到的最大频率。
文档编号G06F15/78GK102841836SQ20121031035
公开日2012年12月26日 申请日期2012年8月28日 优先权日2012年8月28日
发明者孙玉芳, 张康, 苗文彖 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1