众核阵列上并行测试的控制方法及硅后验证系统的制作方法

文档序号:6380103阅读:200来源:国知局
专利名称:众核阵列上并行测试的控制方法及硅后验证系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种众核阵列上并行测试的控制方法及硅后验证系统。
背景技术
随着工艺水平的进步,集成电路的规模和复杂性不断增加,众核已经成为各大处理器研究机构研究的重点,设计复杂度的提高使得众核处理器的验证变得极其困难,普通超标量处理器验证时难得一见的流片后错误在片上多核处理器验证时变得十分常见,原因在于片上多核处理器模拟仿真速度极慢,不难想象,对于片上众核处理器这样规模更大,复杂度更高,模拟仿真速度更慢的芯片来说,验证工作必然更加艰难,进而将会影响到整个验证过程的收敛速度和质量,因此,工业界和学术界对硅后验证领域都极其重视,其中,硅后验证是指通过在实际应用环境中运行一个或多个制造后芯片来验证各种操作条件下芯片 行为的正确性。目前商用处理器关于硅后验证的文献很少且较为浅显,并未深入硅后验证领域如错误重放、系统可观测性与可调试、覆盖率度量、芯片耐受性和修复机制等众多核心问题,而这些问题仍是横亘在硅后验证面前的重要挑战,硅后验证的主要步骤是通过运行测试程序来发现问题,这些测试程序从随机指令序列到终端用户(如操作系统、游戏科学计算等)都有。在验证众核处理器的实际过程中,面临了需要在众核阵列上运行多个并行测试程序的问题,以测试众核阵列在多任务下是否能正确运行。然而目前却没有一种有效的方法能够控制众核阵列上多个并行测试程序的同时运行。

发明内容
本发明实施例提供了一种众核阵列上并行测试的控制方法及硅后验证系统,用于控制众核阵列上的多个并行测试程序的同时运行,且不会产生该多个并行测试程序之间的资源冲突,能够有效的实现众核阵列上多个并行测试程序的同时运行。本发明实施例中描述的一种众核阵列上并行测试的控制方法包括众核处理器上的硅后验证系统获取多个并行测试程序对应的逻辑线程组的映射参数;根据所述映射参数判断所述逻辑线程组之间是否具有相关性;若所述逻辑线程组之间不具有相关性,则按照所述映射参数建立所述逻辑线程组与所述众核阵列中的子阵列之间的映射关系;将所述映射关系发送给操作系统,使得所述操作系统所管理的所述众核阵列按照所述映射关系运行并行测试程序。本发明实施例中描述的硅后验证系统包括获取单元,用于获取多个并行测试程序对应的逻辑线程组的映射参数;
判断单元,用于在所述获取的单元获取所述映射参数之后,根据所述映射参数判断所述逻辑线程组之间是否具有相关性;建立单元,用于在所述判断单元确定所述逻辑线程组之间不具有相关性后,按照所述映射参数建立所述逻辑线程组与所述众核阵列中的子阵列之间的映射关系;发送单元,用于将所述映射关系发送给操作系统,使得所述操作系统所管理的所述众核阵列按照所述映射关系运行并行测试程序。从以上技术方案可以看出,本发明实施例具有以下优点处理器获取多个并行测试程序对应的逻辑线程组的映射参数,并可根据该映射参数判断逻辑线程组之间是否具有相关性,若逻辑线程组之间不具有相关性,则按照该映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系,并将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照该映射关系运行并行测试程序, 能够有效的实现多个并行测试程序的同时运行。


图I为本发明实施例中众核阵列上并行测试的控制方法的一个示意图;图2-a为本发明实施例中8*8众核阵列的示意图;图2_b为本发明实施例中子阵列的划分图;图3为本发明实施例中众核阵列上并行测试的控制方法的另一示意图;图4为本发明实施例中逻辑线程组的状态图;图5为本发明实施例中的众核处理器上的娃后验证系统的结构的一个不意图;图6为本发明实施例中众核处理器上的硅后验证系统的结构的另一示意图。
具体实施例方式本发明实施例提供了一种众核阵列上并行测试的控制方法及硅后验证系统,用于控制众核阵列上同时运行多个并行测试程序,且该多个并行测试程序不会发生资源冲突。请参阅图1,为本发明实施例中众核阵列上并行测试的控制方法及硅后验证系统的实施例,包括101、众核处理器上的硅后验证系统获取多个并行测试程序对应的逻辑线程组的映射参数;在本发明实施例中,在对众核处理器进行硅后验证的过程中,用户需要在众核处理器的众核阵列上同时运行多个并行测试程序,以测试众核阵列在多任务并行下是否能够正确运行,其中,用户可设置该多个并行测试程序对应的逻辑线程组的映射参数,该映射参数为用户为并行测试程序的逻辑线程组分配的核的编号及数目,因此,在本发明实施例中,众核处理器上的硅后验证系统可获取多个并行测试程序对应的逻辑线程组的映射参数,其中,众核处理器上的硅后验证系统可以运行在众核阵列中的主核上。102、根据映射参数判断逻辑线程组之间是否具有相关性;在本发明实施例中,众核处理器上的硅后验证系统将根据获取到的映射参数判断逻辑线程组之间是否具有相关性。103、若逻辑线程组之间不具有相关性,则按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;在本发明实施例中,若逻辑线程组之间不具有相关性,众核处理器上的硅后验证系统将按照获取到的映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系。为了更好的理解,请参阅图2-a,为本发明实施例中,8*8的众核阵列的示意图,其中,数字代表核的编号,若有4个并行测试程序需要在该8*8的众核阵列上同时运行,且用户为该4个并行测试程序配置的映射参数为并行测试程序O的逻辑线程组O的映射参数为OxOfOfOfOf,并行测试程序I的逻辑线程组I的映射参数为OxfOfOfOfO,并行测试程序2的逻辑线程组2的映射参数为OxOf Of Of Of00000000,并行测试程序3的逻辑线程组3的映射参数为0xf0f0f0f000000000,其中,映射参数是用64位无符号长整形数表示的,从低位到高位分别表示第O核到第63核,且二进制数I表示映射,O表示不映射,则众核处理器 上的硅后验证系统将按照各并行测试程序的逻辑线程组的映射参数将8*8众核阵列分为4个子阵列,请参阅图2-b,为子阵列的划分图,在本发明实施例中,硅后验证系统将建立逻辑线程组O与子阵列O之间的映射关系,建立逻辑线程组I与子阵列I之间的映射关系,建立逻辑线程组2与子阵列2之间的映射关系,及建立逻辑线程组3与子阵列3之间的映射关系O104、将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序。在本发明实施例中,硅后验证系统将确定的映射关系发送给操纵系统,使得操作系统所管理的众核阵列按照映射关系运行并进行测试程序,以测试众核阵列在多任务并行下是否能够正确运行。在本发明实施例中,众核处理器上的硅后验证系统通过根据获取到的逻辑线程组的映射参数判断逻辑线程组之间的相关性,若逻辑线程组之间不具有相关性,则按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系,并将映射关系发送给操作系统,使得操作系统所管理的众核阵列运行多个并行测试程序,以测试众核阵列在多任务并行下能否正确运行,实现对众核阵列的验证。为了更好的理解本发明实施例中的众核阵列上并行测试的控制方法,请参阅图3,为本发明实施例中众核阵列上并行测试的控制方法的实施例,包括301、众核处理器上的硅后验证系统获取多个并行测试程序对应的逻辑线程组的映射参数;在本发明实施例中,用户可设置在众核阵列上同时运行的并行测试程序,及设置该多个并行测试程序的映射参数,具体的,用户可通过参数设置或者状态图设置的方式设置映射参数。在本发明实施例中,若用户采用参数设置的方式设置映射参数,则众核处理器上的硅后验证系统可接收到用户设置的多个并行测试程序对应的逻辑线程组的映射参数,若用户采用状态图设置的方式设置映射参数,则众核处理器上的硅后验证系统可接收到用户设置的多个并行测试程序对应的逻辑线程组的状态图。在本发明实施例中,硅后验证系统接收到用户设置的逻辑线程组的状态图之后,将逻辑线程组的状态图转换成映射参数。请参阅图4,为本发明实施例中,线程组O至3的状态图,处理器在得到该状态图之后,将状态图转换成映射参数,分别为逻辑线程组O的映射参数为OxOfOfOfOf,逻辑线程组I的映射参数为OxfOfOfOfO,逻辑线程组2的映射参数为OxOf Of Of Of00000000,逻辑线程组3的映射参数为Oxf Of Of Of000000000。302、计算逻辑线程组对应的映射参数之间的交集;在本发明实施例中,硅后验证系统将计算逻辑线程组对应的映射参数之间是否有交集,以步骤301中描述的逻辑线程组O至3为例,处理器将计算该4个逻辑线程组对应的映射参数之间的交集。303、若交集为空集,则确定逻辑线程组之间不具有相关性,执行步骤305 ;在本发明实施例中,若众核处理器上的硅后验证系统计算得到的交集为空集,则确定逻辑线程组之间不具有相关性。304、若交集为非空集,则确定逻辑线程组之间有相关性,执行步骤307 ;
在本发明实施例中,若众核处理器上的硅后验证系统计算得到的交集为非空集,则确定逻辑线程组之间有相关性。305、按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;本发明实施例中的步骤305与图I所示实施例中的步骤103描述的内容相似,此处不再赘述。306、将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序;在本发明实施例中,处理器将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照该映射关系运行并行测试程序,实现多个并行测试程序在同一个众核阵列上的运行,以测试众核阵列在多任务运行下是否能够正确运行。307、众核处理器上的硅后验证系统将输出提示信息,以提醒用户多个并行测试程序不能在众核阵列上同时运行。在本发明实施例中,若逻辑线程组之间具有相关性,则说明至少有两个逻辑线程组分配了相同的核,若运行将导致多个并行测试程序在资源上产生冲突,不能用于测试众核阵列在多任务下的运行的正确性,因此,众核处理器上的硅后验证系统将输出提示信息,以提醒用户该多个并行测试程序不能在众核阵列上同时运行,用户在接收到提示信息之后,可对该多个并行测试程序的映射参数重新进行设置。需要说明的是,由于在一个众核阵列上同时运行多个并行测试程序,因此不能使用基于硬件的同步方式实现某一个并行测试程序的同步,在本发明实施例中,用户可为众核阵列上子阵列设置标志位,标志位的起始值为0,且并行测试程序对应的子阵列将根据映射参数计算其所需要的同步空间的大小,并申请相应大小的同步空间,使得该并行测试程序对应的子阵列的标志位可保存在该对应的同步空间中,且在并行测试程序运行时,该并行测试程序对应的子阵列的核到达同步之后,该标志位将加1,使得操作系统管理的众核阵列中的子阵列在运行对应的并行测试程序时,可读取同步空间中的标志位,若标志位的值大于等于预置的数值,则确定并行测试程序在对应的子阵列上上实现了同步。例如若并行测试程序O对应的子阵列O包含16个核,则并行测试程序O在子阵列O上运行时,子阵列O中的每个核可读取该子阵列对应的同步空间中的所有标志位,若所有标志位都大于等于到达时设置的值,则确定并行测试程序O实现了同步。在本发明实施例中,众核处理器上的硅后验证系统通过接收用户设置的映射参数或者通过将用户设置的状态图转换成映射参数之后,可计算逻辑线程组对应的映射参数之间的交集,若为空集,则逻辑线程组之间不具有相关性,若为非空集,则逻辑线程组之间具有相关性,且在逻辑线程组之间不具有相关性的情况下,众核处理器上的硅后验证系统将按照该映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系,并将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照该映射关系同时运行多个并行测试程序,实现在不产生资源冲突的情形下,多个并行测试程序的在同一个众核阵列上的运行,且在逻辑线程组之间具有相关性的情况下,输出提示信息提醒用户按照其设置的映射参数不能实现多个并行测试程序在同一个众核阵列上同时运行。此外,通过判断逻辑线程组之间的交集是否为空集能够有效的避免因用户设置错误而导致的众核芯片的损坏。请参阅图5,为本发明实施例中众核处理器上的硅后验证系统的结构的实施例,包 括获取单元501,用于获取多个并行测试程序对应的逻辑线程组的映射参数;判断单元502,用于在所述获取的单元501获取映射参数之后,根据映射参数判断逻辑线程组之间是否具有相关性;建立单元503,用于在判断单元502确定逻辑线程组之间不具有相关性后,按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;发送单元504,用于将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序。在本发明实施例中,硅后验证系统中的获取单元501获取多个并行测试程序对应的逻辑线程组的映射参数;接着,判断单元502根据映射参数判断逻辑线程组之间是否具有相关性;若逻辑线程组之间有相关性,建立单元503按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;并由发送单元504将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序。在本发明实施例中,众核处理器上的硅后验证系统通过根据映射参数判断逻辑线程组之间是否具有相关性;且若逻辑线程组之间有相关性,则按照的映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系,并将映射关系发送给操作系统,使得在操作系统所管理的众核阵列上运行多个并行测试程序,以测试众核阵列在多任务并行下能否正确运行,实现对众核阵列的验证。为了更好的理解本发明实施例中的众核处理器上的硅后验证系统,请参阅图6,为本发明实施例中众核处理器上的硅后验证系统的结构的一个实施例,包括如图5所示实施例中描述的获取单元501,建立单元503,判断单元502及发送单元504,且与图5描述的内容的内容相似,此处不再赘述。在本发明实施例中,获取单元501包括第一接收单元601,用于接收用户设置的多个并行测试程序对应的逻辑线程组的映射参数;第二接收单元602,用于接收用户设置的多个并行测试程序对应的逻辑线程组的状态图;转换单元603,用于在第二接收单元接收逻辑线程组的状态图之后,将逻辑线程组的状态图转换成映射参数,确定多个并行测试程序对应的逻辑线程组的映射参数。
在本发明实施例中,判断单元502包括计算单元604,用于计算逻辑线程组对应的映射参数之间的交集;第一确定单元605,用于若交集为空集,则确定逻辑线程组之间不具有相关性;第二确定单元606,用于若交集为非空集,则确定逻辑线程组之间有相关性。在本发明实施例中,众核处理器上的硅后验证系统还包括提示信息发送单元607,用于若逻辑线程组之间有相关性,则将向用户发送提示信息,以提醒用户多个并行测试程序不能在众核阵列上同时运行。在本发明实施例中,众核处理器上的硅后验证系统中的获取单元501获取多个并行测试程序对应的逻辑线程组的映射参数;其中,获取单元501具体包括由第一接收单元601接收用户设置的多个并行测试程序对应的逻辑线程组的映射参数;或者由第二接收单 元602接收用户设置的多个并行测试程序对应的逻辑线程组的状态图;并由转换单元603将逻辑线程组的状态图转换成映射参数,确定多个并行测试程序对应的逻辑线程组的映射参数。接着,并由判断单元502根据映射参数判断逻辑线程组之间是否具有相关性;且相关性的判断具体包括计算单元604在子阵列确定单元确定逻辑线程组对应的子阵列之后,计算逻辑线程组对应的子阵列之间的交集;若该交集为空集,则第一确定单元605确定逻辑线程组对应的子阵列之间不具有相关性;若交集为非空集,则第二确定单元606确定逻辑线程组对应的子阵列之间有相关性。且在第一确定单元605确定不具有相关性时,建立单元503按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;则发送单元504将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序,且在第二确定单元606确定具有相关性时,提示信息发送单元607将向用户发送提示信息,以提醒用户多个并行测试程序不能在众核阵列上同时运行。在本发明实施例中,众核处理器上的硅后验证系统通过接收用户设置的映射参数或者通过将用户设置的状态图转换成映射参数之后,可计算逻辑线程组对应的映射参数之间的交集,若为空集,则逻辑线程组之间不具有相关性,若为非空集,则逻辑线程组之间具有相关性,且在逻辑线程组之间不具有相关性的情况下,众核处理器上的硅后验证系统将按照该映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系,并将映射关系发送给操作系统,使得在操作系统所管理的众核阵列按照该映射关系同时运行多个并行测试程序,实现在不产生资源冲突的情形下,多个并行测试程序的在同一个众核阵列上的运行,且在逻辑线程组之间具有相关性的情况下,输出提示信息以提醒用户按照其设置的映射参数不能实现多个并行测试程序在同一个众核阵列上同时运行。此外,通过判断逻辑线程组之间的交集是否为空集能够有效的避免因用户设置错误而导致的众核芯片的损坏。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种众核阵列上并行测试的控制方法及硅后验证系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种众核阵列上并行测试的控制方法,其特征在于,包括 众核处理器上的硅后验证系统获取多个并行测试程序对应的逻辑线程组的映射参数; 根据所述映射参数判断所述逻辑线程组之间是否具有相关性; 若所述逻辑线程组之间不具有相关性,则按照所述映射参数建立所述逻辑线程组与所述众核阵列中的子阵列之间的映射关系; 将所述映射关系发送给操作系统,使得所述操作系统所管理的所述众核阵列按照所述映射关系运行并行测试程序。
2.根据权利要求I所述的控制方法,其特征在于,所述众核处理器上的硅后验证系统获取所述多个并行测试程序对应的逻辑线程组的映射参数包括 所述众核处理器上的硅后验证系统接收用户设置的所述多个并行测试程序对应的逻辑线程组的映射参数。
3.根据权利要求I所述的控制方法,其特征在于,所述众核处理器上的硅后验证系统获取所述多个并行测试程序对应的逻辑线程组的映射参数包括 所述众核处理器上的硅后验证系统接收用户设置的所述多个并行测试程序对应的逻辑线程组的状态图; 将所述逻辑线程组的状态图转换成映射参数,确定所述多个并行测试程序对应的逻辑线程组的映射参数。
4.根据权利要求I至3任一项所述的控制方法,其特征在于,所述根据所述映射参数判断所述逻辑线程组之间是否具有相关性包括 计算所述逻辑线程组对应的映射参数之间的交集; 若所述交集为空集,则确定所述逻辑线程组之间不具有相关性; 若所述交集为非空集,则确定所述逻辑线程之间有相关性。
5.根据权利要求4所述的控制方法,其特征在于,所述方法还包括 若所述逻辑线程组之间有相关性,则所述众核处理器的硅后验证系统将输出提示信息,以提醒用户所述多个并行测试程序不能在众核阵列上同时运行。
6.一种众核处理器上的娃后验证系统,其特征字在于,包括 获取单元,用于获取多个并行测试程序对应的逻辑线程组的映射参数; 判断单元,用于在所述获取的单元获取所述映射参数之后,根据所述映射参数判断所述逻辑线程组之间是否具有相关性; 建立单元,用于在所述判断单元确定所述逻辑线程组之间不具有相关性后,按照所述映射参数建立所述逻辑线程组与所述众核阵列中的子阵列之间的映射关系; 发送单元,用于将所述映射关系发送给操作系统,使得所述操作系统所管理的所述众核阵列按照所述映射关系运行并行测试程序。
7.根据权利要求6所述的众核处理器上的硅后验证系统,其特征在于,所述获取单元包括 第一接收单元,用于接收用户设置的所述多个并行测试程序对应的逻辑线程组的映射参数。
8.根据权利要求7所述的众核处理器上的硅后验证系统,其特征在于,所述获取单元还包括 第二接收单元,用于接收用户设置的所述多个并行测试程序对应的逻辑线程组的状态图; 转换单元,用于在所述第二接收单元接收所述逻辑线程组的状态图之后,将所述逻辑线程组的状态图转换成映射参数,确定所述多个并行测试程序对应的逻辑线程组的映射参数。
9.根据权利要求6所述的众核处理器上的硅后验证系统,其特征在于,所述判断单元包括 计算单元,用于计算所述逻辑线程组对应的映射参数之间的交集; 第一确定单元,用于若所述交集为空集,则确定所述逻辑线程组之间不具有相关性; 第二确定单元,用于若所述交集为非空集,则确定所述逻辑线程组之间有相关性。
10.根据权利要求6至9任一项所述的众核处理器上的硅后验证系统,其特征在于,所述众核处理器上的硅后验证系统还包括 提示信息发送单元,用于若所述逻辑线程组之间有相关性,则将向用户发送提示信息,以提醒用户所述多个并行测试程序不能在众核阵列上同时运行。
全文摘要
本发明实施例公开了一种众核阵列上并行测试的控制方法及硅后验证系统。本发明实施例方法包括众核处理器上的硅后验证系统获取多个并行测试程序对应的逻辑线程组的映射参数;根据映射参数判断逻辑线程组之间是否具有相关性;若逻辑线程组之间不具有相关性,则按照映射参数建立逻辑线程组与众核阵列中的子阵列之间的映射关系;将映射关系发送给操作系统,使得操作系统所管理的众核阵列按照映射关系运行并行测试程序,能够有效的实现多个并行测试程序的同时运行。
文档编号G06F11/36GK102929778SQ201210424868
公开日2013年2月13日 申请日期2012年10月30日 优先权日2012年10月30日
发明者李岱峰, 王丽一, 王俊, 谭坚 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1