集群间交互的一致性设计验证的方法和系统的制作方法

文档序号:6562092阅读:200来源:国知局

专利名称::集群间交互的一致性设计验证的方法和系统的制作方法
技术领域
:本发明涉及试验和/验证设计的方法和系统,更具体地,涉及使用模拟处理的集群间交互的片上系统(SoC)设计验证的方法和系统。
背景技术
:现今,集成电路(IC)芯片在复杂性和精细度上均大大改进。例如,在早期的一代芯片设计中,芯片会包括由逻辑门之间的互连实现的相对简单的电子逻辑块,然而,新一代芯片包含具有常称为“核(core)”的复杂的、模块化IC设计的组合的设计,这些模块化IC设计共同构成整个SoC。这些新一代IC设计通过例如具有包含更小的特征尺寸的能力并由此增加可在单个芯片上建造的电路的数量、大大增加芯片本身的总体功能性和性能特性。但这需要成本更长的设计和验证时间,这又转化成更长的开发和制造成本。要设计这些复杂的IC芯片,IC芯片开发包括设计阶段和验证阶段,其中,后者对确定芯片本身的可使用性并由此对确定芯片的功能性较为关键。例如,正是在验证阶段中确定设计是否如期望的那样工作。验证阶段已向软件模拟方法靠拢,以避免首先以硬件实现设计来验证这些设计的可使用性的成本。但是,由于必须为每一次模拟构建整个设计和试验台,因此多处理器和多核设计可导致非常大的模拟模型。即使当使用现代模拟工具时,模拟负载和执行时间以及构建时间也会变得在成本和时间上无法接受。由于设计的完整的通过级(gatelevel)表示必须被构建并被加载到各处理器的模拟中,因此,在具有处理器间集群的复杂设计的情况下尤其如此。作为示例,在验证设计中,模拟器(例如,功能包含接收以诸如Verilog或VHDL的硬件描述语言(HDL)写成的软件的专用软件)模拟电路设计(例如核)以模拟设计的响应。该响应通过试验实例被应用,以确定设计是否如期望的那样起作用。但是,要实现能接受的无故障设计,验证软件必须将完整的设计加载到现有的工具上以满意地验证设计,即,在模拟中应用多个试验实例以完全执行该设计。由于芯片设计在单核以及多核之间的交互(interaction)中均变得更复杂,因此验证趋于需要更多的时间和计算资源,这主要是由于与整个设计相关的建模和功能的交互的验证。即,例如,由于为仅测试一个功能或测试两个或更多个功能之间的交互,需要加载和实施整个试验设计,因此验证处理呈指数地变长。由于不存在可相互通信以验证多处理器核之间的交互的已知技术,因此,对于多处理器核的验证,该验证处理变得更复杂。当前的验证方法中的这些不足加重时间压力,并大大增加进入市场的时间,进入市场的时间对处于商业竞争中的IC芯片的开发商和市场商家来说是关键因素。
发明内容在本发明的第一方面中,一种方法包括产生取决于已知的次序的试验实例,和在起始处理器上执行试验实例直到其达到已知点。该方法还包括在不同的处理器上执行该试验实例以执行动作,和通知起始处理器采取了动作。起始处理器验证该动作为正在发生。在本发明的另一方面中,一种方法包括提供信号以访问和获得从至少两个处理器中的第一处理器上的分布的试验实例的执行获得的共享信息,使得通过第一处理器完成的任务在分布的试验实例的同时执行期间被传送给所述至少两个处理器中的第二处理器。该方法还包括当接收到所述信号时,通过使用共享信息执行第二处理器上的分布的试验实例的试验实例,以验证设计。该信号在多处理器应用中提供分布的试验实例的控制和同步。在本发明的另一方面中,一种系统包括构成为和适于允许同时执行在不同的处理器上运行的分布的试验实例和传送分布的试验实例的各试验实例的状态的机构。该系统还包括提供握手协议以发出信号指示何时检查在所述不同的处理器的对应的另一处理器上的试验实例的结果并响应以检查结果的模块。在本发明的另一方面中,提供一种包括包含计算机可读程序的计算机可用介质的计算机程序产品。当在计算机上被执行时,计算机可读程序使计算机执行本发明的步骤。图1是说明根据本发明的实施例的框图;图2表示本发明的示例性例子,该例子可等同地代表表示本发明的步骤的流程图;图3是代表失效恢复机构的框图,该框图可等同地代表表示本发明的步骤的流程图;图4是代表实现本发明的系统和方法的示例性例子的框图。具体实施例方式本发明涉及使用改进的模拟处理的多处理器的片上系统(SoC)设计验证的方法和系统。在本发明的实施例中,系统和方法执行同时在多个处理器上运行的分布的试验实例,这些处理器能够传送各试验实例(例如,分布的试验实例)的各个状态以确认或验证跨多个处理器程序的功能。更具体地,该方法和系统提供多处理器TOS(试验操作系统)应用中的分布的试验实例的控制和同步。因此,在实施例中,本发明的系统和方法使得多TOS应用中的任务能够在同时执行(例如,使用共享消息存储器和TestnSet硬件)期间传送以验证多处理器的设计。在一个实现中,试验应用包含以下构成要素中的一个或更多个-使共享消息存储器(SMM)支持TOS间协议(使用例如MPTOSAPI功能调用)的一致性结构;-对共享外部模拟模型(例如,EMU、SMM和timebaseRTM)的基本操作中沟通可执行应用(例如,TOS可执行应用)的信标(semaphore)机构;-在慢和快模式操作中使每一TOS应用在并行试验实例调度中轮询命令队列的机构;和/或-失效恢复机构。通过使用这些结构特征,多处理器核之间的交互可被验证,这导致经验证的鲁棒设计和大大加快的进入市场运转周期。图1示出实现本发明的特征的框图。特别地,图1示出用附图标记100表示的一个或更多个工作站。一个或工作站100包括存储器、一个更多个处理器和其它公知的部件。在本发明的一个实现中,一个或更多个工作站100包括支持TOS间协议的共享消息存储器(SMM)200。一个或更多个工作站100还包括共享存储器锁定(lock)试验和设置硬件(SMMLockTNSHW)300、一个或更多个例如在不同处理器上运行的程序应用400a和400b和失效恢复机构500。程序应用400a、400b可以是运行试验实例(testcase)用于在不同处理器上验证设计的任何常规程序应用,诸如例如autoTOSTM。在一个特定例子中,为了产生特定试验以进行验证,可使用autoTOSTM(或ADF(应用定义文件)(其中规定软件资源))以编辑用户指定的参数(例如资源)。本领域技术人员应当知道,autoTOSTM是用于使试验和产生处理自动化的编辑工具。本领域技术人员应理解,在一个实现中,autoTOSTM可用于产生实现模板的试验实例。仍参照图1,在示出的实施例中,TOS应用在各独立的处理器上同时运行“察觉另一(alternateaware)”(或分布的)试验实例。要实现分布的试验实例,在一个实施例中,可以通过由autoTOS产生的SYSTEMCALLBACK功能在TOS应用之间发送信号。如下面更全面地讨论的那样,通过使用SYSTEMCALLBACK功能,应用400a、400b可通过SMM200相互传送信息,其由SMMLockTNSHW300的握手启动。作为一个示例,SMMLockTNSHW300在至少两个处理器之间实现握手(例如,信号),这为SMM提供了支持至少两个处理器的TOS间协议的一致性结构(coherentstructure)。在一个例子中,当要检查另一TOS应用的结果,握手(例如,握手协议)可向TOS应用发出信号,并响应以检查的结果。以这种方式,握手可用于在锁定和解锁读写操作时启动TOS间通信。这在部分上允许各试验实例的同时运行以及它们的交互。这样,试验实例的功能可“被分布”在不同的处理器之间。在实施例中,SMMLockTNSHW300确保,当从一个处理器设置闭锁(lock)时,系统中的所有其它的处理器查看并适当地识别该闭锁。握手的实现可包含例如VoidEMU_Spin_Lock(void){Unsignedchartemp8=0×80;/*obtainthelock,whenvalid*/If(lock_state!=2)return;While(temp8&0x80)==0x80)READ_MIO8_NOTRACE(KERNEL_TESTNSET+(TOSID*8)+EMULOCK,&temp8);Retum;}(“READ_MIO8_NOTRACE(KERNEL_TESTNSET+(TOSID*8)+EMULOCK,&temp8”isareusableAPI,whichmaybeobtainedfromalibrary.)仍参照图1,SMM200可以为被实现为共享多个处理器的TOS应用的信息的bin文件的SRAM。在实现中,SMM200在对共享外部模拟模型(EMU、SMM和timebaseRTM)的基本操作中为所有的通信TOS可执行应用(executable)提供信标(semaphore)机构。即,在实现中,SMM200提供在读/写操作中共享同一数据的两个程序之间的通信。众所周知,基本操作在一个周期中同时允许读/写操作,使得在读/写操作之间不能执行其它的并行运行的程序。以上述方式,可产生取决于已知的次序的试验实例。作为分布的试验实例,该试验实例可然后以要求的次序在不同的处理器中被执行。例如,起始处理器上的试验实例可运行直到它到达已知的点。取得从起始处理器获得的信息,然后该试验实例可在不同的处理器上运行以执行动作。起始处理可觉察到采取的动作并验证采取了这种动作。图2表示本发明的示例性例子,该例子可等同地代表表示本发明的步骤的流程图。在图2中,两个程序应用的例子,例如TOS-0400a和TOS-1400b,通过使用根据本发明的SMM200和SMMLockTNSHW300相互通信。本领域技术人员应当理解,可以以这里所述的方式用本发明实现多于两个的TOS应用(或其它公知的验证应用)。在一个特定实施例中,SMMLockTNSHW300实现握手,这为SMM提供了支持TOS间协议的一致性结构。例如,在锁定和解锁读写操作时握手提供告之TOS-0400a可与TOS-1400b通信的协议。在图2的实现中,SMM200为要在TOS应用400a、400b之间共享的TOS信息提供队列。该队列可以根据本发明被询问。在图2的例子中,TOS-0400a获得对SMM200的锁定,并且,在TOS-0试验实例中获得的信息或其一部分被传输并被存储在SMM200的队列中。SMM锁定将被释放,并且TOS-0400a将轮询SMM200的队列深度。握手然后将发出信号到TOS-1400b以执行其试验实例程序(其可在不同的处理器上运行),现在可以用从TOS-0应用运行获得的信息执行该试验实例程序。TOS-1400b将轮询队列深度并获得锁定。TOS-1400b将提取消息、释放SMM锁定并执行该消息。该消息将包含在TOS-1上运行的试验实例的执行使用的信息。作为进一步的步骤,TOS-0400a可获得锁定并提取来自队列的响应并释放锁定,这使得TOS-1能够获得锁定(例如,在来自握手的指令下)。TOS-1400b在执行其程序应用时可在队列中存储响应用于参照。SMM的锁定然后可被释放。在这种方式中,TOS-0和TOS-1的试验实例可同时运行(例如,被分布)并可传送它们各自的状态,以确认或验证微处理器(MP)程序。通过使用图2的例子,可以在慢和快模式操作中实现使各TOS应用在并行试验实例调度中轮询命令队列的机构。例如,在实现中,快模式调试试验实例;以及慢模式运行多个试验实例,以在一个模拟运行上验证最大量的验证用试验实例。图3是代表失效恢复机构的框图,该框图可等同地代表表示本发明的步骤的流程图。失效恢复机构可驻留在一个或更多个工作站100上,并被设计为在模拟运行的过程中取消正在TOS应用上运行的试验实例。例如,在图3的例子中,通过使用本发明的失效恢复机构,可以取消TOS-0和/或TOS-1上的分布的应用。在实现中,失效恢复机构在运行分布的试验实例的不同试验实例的TOS应用之间提供信号。作为例子,TOS-0可启动对硬件的试验,该试验同时在根据本发明的TOS-0和TOS-1上运行。TOS-0将向另一TOS、TOS-1发出信号(signal)以检查正在运行的试验的结果。另一方面,TOS-1将等待检查结果的信号。TOS-1将检查硬件结果并将响应发送回TOS-0。TOS-0将等待该结果,并且,如果在预定的时间段内没有提供该结果,那么TOS-1将提供信号以取消正在TOS-1上运行的另一试验实例。可以通过使用例如MPTOS_CAN_ALTERNATEAPI的MPTOS实现该“取消”或“删除(kill)”操作。图4表示实现本发明的系统和方法的实施例。在图4中,可以在运行例如如图2和图3的示例性例子所示的试验实例和失效恢复之前执行下面步骤-初始化TOSCPU/内核(Kernel);-开始芯片初始化;-初始化-BUS;-确定TestnSetLogic;-释放TOS-n-(如果TOS-0)向子应用(Child)发布MPTOS_INIT;-完成芯片初始化;和-向子应用发布MPTOS_ALLGO应当理解,可以通过使用握手协议使这些步骤与TOS-1应用的步骤同步。在图4中,TOS-1(子应用)在运行如例如图2和图3的示例性例子所示的试验实例和失效恢复之前执行下面步骤-初始化CPU/内核(Kernel);-等待来自父应用(Parent)的MPTOS_INIT;-执行芯片初始化;-向父应用发布MPTOS_INIT_COMPLETE;-等待来自父应用的MPTOS_ALLGO;和-执行试验实例调度。应当理解,可以通过使用握手协议使这些步骤与TOS-0应用的步骤同步。仍参照图4,根据以上说明,一旦初始化TOS-0、TOS-1,然后就可同时运行试验实例。如上所述,也可运行失效恢复机构。在一个例子中,失效恢复可包含在与执行试验实例的子应用(child)(或多个子应用)通信的TOS-0上实现的以下伪代码-试验完成,ALLSTOP;-向Child发布MP_ALLSTOP;-等待来自Child的MPTOS_TERMINATED;-发布SIM_CTL-停止模拟器;和-退出。在本例子中,失效恢复可包含在与TOS-0通信的TOS-1(任何子应用)上实现的以下伪代码-试验完成,ALLSTOP;-等待来自父应用的MP_ALLSTOP;-向父应用发布MPTOS_TERMINATED;-退出。以所述的方式,本发明的系统和方法通过使用处理器间消息协议和握手协议在用于多处理验证的多处理器TOS应用中控制和同步分布的试验实例(例如,跨多个提取层)。因此,通过实现本发明的系统和方法,当共享同一HW资源(使用MUTEX结构和存储器分配)时,一个TOS(或其它)应用内的任务可跨编码层(使用功能调用和调回功能)同步和异步通信。这样,能够在保证一致性的同时,在同时在待验证的多处理器SoC设计中运行的多个TOS验证应用之间提供任务间通信。这里所述的方法被用于集成电路芯片的制造中。得到的集成电路芯片以作为裸片的原始晶片形式(即,作为具有多个未被封装的芯片的单一晶片)或以封装的形式被制造者分发。在后一种情况中,芯片被安装在单一芯片封装(诸如具有固定到母板上的引线的塑料载体或其它更高级的载体)或多芯片封装(诸如具有任一或两表面互连或嵌入的互连的陶瓷载体)中。在任何情况下,然后将该芯片作为(a)诸如母板的中间产品或(b)最终产品的一部分与其它芯片、分立的电路元件和/或其它信号处理装置集成。最终产品可以是范围从玩具和其它低端应用到具有显示器、键盘或其它输入设备和中央处理器的先进计算机产品的包含集成电路芯片的任何产品。本发明可采取完全为硬件的实施例、完全为软件的实施例或同时包含硬件和软件要素的实施例的形式。在优选的实施例中,以包含但不限固件、常驻软件、微代码等的软件实现本发明。并且,本发明可采取可从提供程序代码的计算机可用或计算机可读介质访问的计算机程序产品的形式,该程序代码供计算机或任何指令执行系统使用或与其相关使用。为了说明的目的,计算机可用或计算可读介质可以是可包含、存储、传送、传播或传输供指令执行系统、装置或设备使用或与其相关使用的程序的任何装置。介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或器件)或传播媒介。计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前的例子包含紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)和DVD。适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接与存储元件耦合的处理器。存储元件可包括在程序代码的实际执行中使用的局部存储器、大容量存储器、和为了减少在执行中必须从大容量存储器取回代码的次数提供至少一些程序代码的临时存储的高速缓冲存储器。输入/输出或I/O设备(包含但不限于键盘、显示器、指示装置等)可直接或通过居间的I/O控制器与系统耦合。网络适配器也可与系统耦合,以使得数据处理系统能够通过居间的专用或公用网络与其它数据处理系统或远程打印机或存储设备耦合。调制解调器、电缆调制解调器和以太网卡仅是一些当前可用的类型的网络适配器。虽然根据示例性实施例说明了本发明,但本领域技术人员能够认识到,可以用修改方式以及在所附的权利要求书的精神和范围内实践本发明。权利要求1.一种方法,包括产生取决于已知的次序的试验实例;在起始处理器上执行试验实例直到其达到已知点;在不同的处理器上执行该试验实例以执行动作;通知起始处理器采取了所述动作;和起始处理器验证发生了所述动作。2.根据权利要求1的方法,还包括在起始处理器和所述不同的处理器之间提供用于在试验实例的执行期间获得的信息的交换的共享消息存储器。3.根据权利要求2的方法,还包括为SMM提供支持在起始处理器和所述不同的处理器上运行的TOS(试验操作系统)间协议的一致性结构。4.根据权利要求1的方法,还包括提供在起始处理器和所述不同的处理器之间共享的试验实例的基本操作中沟通TOS可执行应用的信标机构。5.根据权利要求1的方法,还包括提供在慢和快模式操作中的至少一个中使起始处理器和所述不同的处理器在并行调度中轮询命令队列的机构。6.根据权利要求1的方法,还包括提供失效恢复机构。7.根据权利要求6的方法,其中,失效恢复机构在模拟运行中取消正在起始处理器和所述不同的处理器中的一个上运行的试验实例。8.根据权利要求7的方法,其中,失效恢复机构包括向所述不同的处理器发出信号以检查正在运行的试验实例的结果;等待与正在运行的试验实例的结果一起返回的信号;和当在预定的时间段内没有返回信号时,取消正在所述不同的处理器上运行的试验实例。9.根据权利要求1的方法,还包括通过使用权利要求1的方法制造集成电路。10.根据权利要求9的方法,还包括分发集成电路芯片的步骤。11.一种方法,包括提供信号以访问和获得从至少两个处理器中的第一处理器上的分布的试验实例的执行获得的共享信息,使得通过第一处理器完成的任务在分布的试验实例的同时执行期间被传送给所述至少两个处理器中的第二处理器;和当接收到所述信号时,通过使用共享信息执行第二处理器上的分布的试验实例的试验实例,以验证设计,其中,所述信号在多处理器应用中提供分布的试验实例的控制和同步。12.根据权利要求11的方法,其中,所述至少两个处理器包含同步运行分布的试验实例的试验实例以验证设计的程序应用。13.根据权利要求11的方法,其中,分布的试验实例同时在所述至少两个处理器上运行。14.根据权利要求11的方法,还包括提供握手协议,以向所述至少两个处理器发出信号来轮询共享存储器中的队列,以获得共享信息。15.根据权利要求11的方法,还包括轮询队列深度并获得锁定以提取共享信息并执行分布的试验实例。16.根据权利要求11的方法,其中,所述信号为共享存储器提供支持所述至少两个处理器之间TOS间协议的一致性结构。17.根据权利要求11的方法,还包括提供失效恢复机构,该失效恢复机构包括向第二处理器发出信号以检查分布的试验实例的结果;等待对所述发出信号的响应;和当等待时间比预定时间长时取消正在第二处理器上运行的分布的试验实例。18.一种系统,包括构成为和适于允许同时执行在不同的处理器上运行的分布的试验实例和传送分布的试验实例的各试验实例的状态的机构;和提供握手协议以发出信号指示何时检查在所述不同的处理器的对应的另一处理器上的试验实例的结果并响应以检查结果的模块。19.根据权利要求18的系统,还包括允许分布的试验实例的试验实例被取消的失效恢复机构。20.根据权利要求18的方法,还包括用于存储和交换试验实例的结果的共享消息存储器,其中,所述机构在保持一致性的多处理器验证软件中提供跨多个提取层的同步。21.一种计算机程序产品,包括包含计算机可读程序的计算机可用介质,其中,当在计算机上被执行时,计算机可读程序使计算机提供信号以访问和获得从至少两个处理器中的第一处理器上的分布的试验实例的执行获得的共享信息,使得通过第一处理器完成的任务在分布的试验实例的同时执行期间被传送给所述至少两个处理器中的第二处理器;和当接收到所述信号时,通过使用共享信息执行第二处理器上的分布的试验实例的试验实例,以验证设计。全文摘要方法和系统包括产生取决于已知的次序的试验实例,和在起始处理器上执行试验实例直到其达到已知点。方法还包括在不同的处理器上执行试验实例以执行动作,和通知起始处理器采取了所述动作。用起始处理器验证该动作为正在发生。文档编号G06F17/50GK1979506SQ20061013731公开日2007年6月13日申请日期2006年10月17日优先权日2005年12月9日发明者罗伯特·J.·德维斯,戴维·W.·米尔顿,帕斯卡·A.·萨姆申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1