CN1500247A - 代理的验证功能单元块 - Google Patents
代理的验证功能单元块 Download PDFInfo
- Publication number
- CN1500247A CN1500247A CNA028075463A CN02807546A CN1500247A CN 1500247 A CN1500247 A CN 1500247A CN A028075463 A CNA028075463 A CN A028075463A CN 02807546 A CN02807546 A CN 02807546A CN 1500247 A CN1500247 A CN 1500247A
- Authority
- CN
- China
- Prior art keywords
- request
- affairs
- data
- bus
- checking
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/24—Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
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)
- Memory System Of A Hierarchy Structure (AREA)
- Microcomputers (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
验证FUB是在代理之中的、能够使计算机系统处于应力条件的一种硬件系统。验证FUB可以监视被发送到外部总线上的事务并且响应该被监视的事务而生成其他事务。该验证FUB可以是一个可编程元件,该元件的响应可以由外部输入加以规定。因此,该验证FUB可以测试种类广泛的系统事件。
Description
背景
本发明涉及到对计算机系统中的微处理器和其他代理进行的应力测试。更具体而言,本发明涉及到在诸如微处理器这样的代理中所提供的芯片(die)上验证功能单元块(″FUB″)。
在计算机系统中,″代理″可以包括使用公共总线接口协议通过公共通信总线与其他设备进行通信的任一设备。典型的代理包括微处理器、存储器控制器、桥接口电路、数字信号处理器以及专用集成电路。应该理解的是,现代代理可以包括被装配到单一集成电路中数百万个晶体管。尽管电路设计在被装配成可操作的集成电路之前进行了仿真,但是为了确保该集成电路在运行中的实际行为与设计意图一样,验证测试则是必须的。
验证测试包括应力测试。应力测试涉及到将代理的运行条件推向它的性能极限,以便确定代理的实际行为与所仿真的预测匹配。然而,应力测试是一个高代价而复杂的、并且其结果不确定的过程,因为常规地它是通过软件控制的算法加以执行的。当集成电路被制造时,常规的应力测试要求集成电路执行被设计的程序指令,以便使代理处于预定的应力条件。例如,软件可以被写成使两个不同的处理器连续地读取和修改相同存储单元的数据。通过建立这两个处理器之间的竞争,就为验证人员观察这些处理器竟争相同数据片时它们的行为提供了机会。当然,所希望的应力事件发生的精确时刻是无法预测的。因此,诊断人员必须观察数千次的总线事务来确定应力事件发生的时间(某些时候,则是确定应力事件是否发生)。不仅仅设计应力测试软件是高代价的,而且检查和解释应力测试结果也是高代价的。
软件控制算法根本不提供许多控制。为了测试外部总线逻辑,即在代理之中用于控制该代理至外部总线接口的电路的功能,理想情况是在该总线上维持一个可支撑级别的高通信量。软件控制算法能够通过操作系统和其他事件所进行的场景切换(context switches)而被中断。这样就会降低该总线上的通信量级别。此外,还没有任何方式能够使软件控制算法足够快地对外部总线上的事件作出响应,以保证定时关系能够被维持在总线上从而能测试某些总线事件。的确,存在许多验证工程师希望去测试的事件而软件根本无法检测它们。所有这些问题都降低了通过软件进行验证测试的效率。
因此,在本领域需要一种供在处理器或者其他代理中使用的改进的验证测试模式。
附图简述
图1是在根据本发明的一个实施例的代理中的FUB的简化框图。
图2是说明根据本发明的一个实施例的操作方法的流程图。
图3说明根据本发明的另一个实施例的代理。
图4是根据本发明的一个实施例的验证FUB的框图。
图5说明根据本发明的一个实施例所构建的处理器的实施例。
图6说明根据本发明的一个实施例的示范性计算机系统。
图7说明根据本发明的另一个实施例的示范性计算机系统。
详细描述
本发明的实施例提供代理的验证FUB,即一种在该代理之中的用于使计算机系统处于应力条件的硬件系统。验证FUB可以监视被发送到外部总线上的事务并且响应该被监视的事务而生成其他事务。该验证FUB可以是一个可编程元件,该元件的响应可以由外部输入加以规定。因此,该验证FUB可以测试种类广泛的系统事件。
图1是在根据本发明的一个实施例的代理100中的FUB的简化框图。代理100可以包括核心110和被提供与外部总线130进行通信的数据请求处理器120。数据请求处理器120可以通过外部总线控制器(″EBC″)140与总线130接口。EBC140管理外部总线130上的事务的进度。核心110可以边执行程序指令边读取和修改数据。它可以生成至数据请求处理器120的数据请求,以便从系统存储器(未示出)的预定存储单元读取数据或者将数据存储到其中。
数据请求处理器120可以接收来自代理100之中的核心110和可能的其他源的数据请求。它对这些数据请求进行解释,并且如果为了完成该请求,该代理必须与其他代理进行通信,则数据请求处理器120就对其做出响应而生成外部总线事务。数据请求处理器120可以包括用于管理这些数据请求的各种队列,并且可以与例如内部高速缓存(未示出)这样的其他FUB相接口,以便管理这些数据请求。在这方面,代理100的体系结构和操作是周知的。
本发明的实施例可以将验证FUB150引入到代理100之中。验证FUB150可以耦合到EBC160以便观察被发送到外部总线130上的事务。响应预定的触发条件,验证FUB150可以为要被发送到外部总线130上的称为″干扰性″总线事务的新事务生成数据。几种不同类型的触发条件是可能的。当观察到新的外部总线事务时,如果该新的事务的请求类型匹配预定类型,则可以生成干扰性事务。第一外部总线事务就是所说的″触发″事务。可选地,所有外部总线事务(除了来自验证FUB150的干扰性事务以外)都可以是触发事务。在这种情形下,会为外部总线130上的每个事务而生成干扰性总线事务。
代理100可以包括选择复用器(″MUX ″)160,以便从数据请求处理器120或者从MUX160中选择事务数据。在一个实施例中,MUX160可以仅仅受到验证FUB150的控制。在可选的实施例中,用虚线表示,MUX160可以受到验证FUB150和核心110这二者的控制。在这种情形下,来自核心110的数据请求可以比来自验证FUB150的数据请求具有更高的优先权。这种可选的实施例在此更加详细地加以论述。
验证FUB150可以提供优于现有的、软件控制模式的用于应力测试的几个优点。验证FUB150在它所位于的代理的时钟域之中操作,并且因此能够以比采用软件控制算法可以获得的可靠性更高的可靠性来建立应力测试事件。在某些应用中,验证FUB150能够观察触发总线事务并生成新的″干扰性″总线事务作为下一个总线事务。因此,使用前面的两个代理竞争相同数据片的例子,本实施例的验证FUB150能够以确保对请求该被竟争的数据的每个和各个总线事务作出响应而生成干扰性总线事务的方式而加以使用。每当观察到请求该数据的事务时,验证FUB可以生成寻址该相同数据的另一个总线事务。因此,就能够避免软件控制算法的这种偶然性。
因为验证FUB150在该代理的时钟域之中操作,该时钟常常要比外部总线的时钟域快得多,所以它可以生成具有比以前可能的细得多的定时关系的应力条件。考虑一种外部总线是管线(pipelined)总线的例子。在诸如为Pentium Pro处理器规定的总线协议这样的管线总线协议中,数据是采用总线事务被请求的。总线事务可以被组织成各种阶段。对于Pentium Pro处理器而言,总线事务包括仲裁阶段、请求阶段、错误阶段、探听阶段、响应阶段以及最后的数据阶段。每种类型的数据请求的进行都不通过所有可能的阶段。管线总线可以允许几个总线事务同时在总线上前进,但是每个请求必须处于不同的阶段。因此,在第一事务结束该请求阶段并进入错误阶段之后,第二事务就可以进入请求阶段。在各种阶段之间的过渡在该外部总线的时钟域发生。对于更多的信息,可以参考Pentium Pro系列开发者手册,第一卷1:说明(http://developer.intel.com/design/pro/MANUALS/242690.HTM)
因为验证FUB 150可以在代理的时钟域之中操作,所以它可以常常在触发总线事务在外部总线上保持挂起时检测和响应触发条件。因此,在一个实施例中,验证FUB150可以在触发它的事务结束之前生成干扰性事务并将其发送到总线上。还没有任何已知的应力测试技术允许代理在触发事务在外部总线上保持挂起的同时捕获和响应该触发事务。
验证FUB150提供另一个优点,即它能够对单处理器计算系统进行应力测试。软件控制的应力测试典型地要求至少两个处理器,每个处理器执行客户软件来生成希望的应力测试场景。验证FUB150可以监听它所位于的代理所生成的事务,并且可以响应在该外部总线上所观察到的事务而生成干扰性事务。此外,不需要任何特殊的软件。因此,取代投入时间和金钱来开发用于多处理器的客户软件,验证FUB 150允许开发者对执行市售软件包的单代理系统中他们的代理进行应力测试。因此,验证FUB150能够显著地降低集成电路开发者的开发成本。
图2是说明根据本发明的一个实施例的操作方法1000的流程图。操作可以在新事务被发送到外部总线上时开始。根据该实施例,事务数据可以被验证FUB捕获(框1010)。该验证FUB可以确定该事务的请求类型是否匹配预定的触发条件(框1020)。如果匹配,则该验证FUB可以使用从外部总线事务中所捕获的地址来生成干扰性事务数据(框1030)。该新的数据请求可以被输出到EBC(框1040)。如果该捕获的数据请求不匹配该预定的触发条件,则该方法可以结束。
可选地,当该捕获的请求类型数据匹配触发条件,该捕获的地址就可以被修改(框1050,用虚线表示)。例如,该捕获的地址可以按照高速缓存线增量而加以增量或者减量。如所周知,存储器系统典型地被组织成通常称为“高速缓存线”的预定单元。例如,在可从Intel公司买到的Pentium Pro处理器中,高速缓存线的长度是32字节。在其他处理器中,高速缓存线可以具有不同的长度。通过按照高速缓存线单位增量(或者减量)锁存的地址,验证FUB150可以将事务指向系统存储器中相邻的存储单元。在这样的实施例中,取代将新的外部事务指向与在该外部总线所观察的地址相同的地址,验证FUB150可以将该新的外部事务指向相邻的高速缓存线。
在另一个实施例中,所捕获的地址可以按照小于一个高速缓存线单位的量而加以增量或者减量。尽管代理可以按照高速缓存线大小的单位交换数据,但是总线事务典型地使用具有小于高速缓存线增量的粒度的地址来寻址系统存储器。这种技术允许计算机系统标识请求的代理所需要的数据″组块(chunk)″,即小于高速缓存线大小的数据单元。通过寻址该代理所需要的具体组块,其他代理(诸如存储器控制器或者存储了该数据的另一代理)可以按照在提交高速缓存线的其他部分之前,首先提供被请求的组块的方式,排定提交被请求的高速缓存线的次序。例如,在Pentium Pro系统中,外部总线事务的数据阶段可以在四个周期上发生,每个周期传送一个8字节的组块。在这样的系统中,被请求组块可以在第一周期加以传送,接着在以后的周期中传送来自该高速缓存线的其余组块。
在所捕获的地址可以按照小于高速缓存线单位的量来加以增量或者减量的这个实施例中,验证FUB150可以使得新的外部总线事务被发送到该外部总线上。该新的总线事务会具有这样的一个地址,该地址指向系统存储器中的、被所捕获的总线事务引用过的、相同的高速缓存线,但是该地址却可以指向在该高速缓存线之中的、与该被捕获的总线事务所指向组块不相同的组块。
当所捕获的地址被修改并且被包括在干扰性事务之中时,可以对不同系统操作条件进行应力测试。如所周知,在操作期间,代理常常从系统存储器中的连续存储单元中检索数据。例如,可执行的程序指令常常被存储在系统存储器的顺序存储单元中。数据数组和其他结构也常常被存储在系统存储器的顺序存储单元中。通过按照高速缓存线增量对被捕获的地址进行增量或者减量,验证FUB150就可以检索可能要被计算机系统中的另一个代理请求的数据。验证FUB150基本上会以另一个代理在稍后将需要该数据的期望来检索该数据,并且能够允许对该计算机系统之中的数据竞争器件进行应力测试。
本发明的实施例在来自核心100和验证FUB150的数据请求之间实行优先权模式。返回到图1,来自验证FUB150的数据请求被显示为与来自数据请求处理器120的数据请求一起输入到MUX160。因此,来自验证FUB150的数据请求可被视为与数据请求处理器120“竞争”外部总线130的资源。根据一个实施例,MUX160不仅可以受到验证FUB150的控制,还可以受到数据请求处理器120的控制。在这样的实施例中,当核心100正在生成至数据请求处理器120的数据请求时,MUX160可以选择来自数据请求处理器120的一个数据请求。当不存在正由核心100生成的任何数据请求时,MUX160可以选择来自验证FUB150的数据请求。因此,来自数据请求处理器120的数据请求可以在比来自验证FUB150的请求具有更高优先权的情况下受到处理。这一特征允许计算机系统执行有用工作的同时发生应力测试。
图3说明根据本发明的另一个实施例的代理200。在这个实施例中,代理200可以包括与在前面的实施例中一样的核心210和数据请求处理器220。在这个实施例中,数据请求处理器220可以登记来自代理200之中的各种源的数据请求,并且可以生成外部总线事务以便完成该数据请求。它可以通过外部总线接口(″EBI″)240与总线230接口,外部总线接口(″EBI″)240可以包括电驱动器和接口电路,以便生成和捕获总线230上的电信号。在这一方面,代理200的操作是周知的。
在一个实施例中,代理200可以包括验证FUB250。验证FUB250可以与EBI240相接口以便观察外部总线230上的事务。验证FUB250可以将干扰性数据请求输出到数据请求处理器220。在这个实施例中,数据请求处理器220可以包括仲裁器260,仲裁器260用于管理被从核心210和各种其他源输入到数据请求处理器220的数据请求。数据请求处理器220可包括用于管理和完成这些数据请求的其他处理元件270。在这个实施例中,验证FUB250可以将数据请求输入到数据请求处理器220,该数据请求会被采用与对来自代理200之中的任何其他源的数据请求相同的方式加以处理。因此,来自验证FUB250的数据请求可以由数据请求处理器220加以排队,并且有可能被在代理200自身之中完成,取决于操作条件。
图3的实施例可选地可以根据数据请求之间的优先权模式操作。用虚线所表示的是,仲裁器260不仅可以受到验证FUB250的控制,而且还可以受到核心210的控制。在核心210正在生成数据请求的同时,仲裁器260可以允许该核心数据请求而拒绝来自验证FUB250的数据请求。在其他时间,仲裁器260可以允许来自验证FUB250的数据请求。
图4是根据本发明的一个实施例的验证FUB300的框图。验证FUB300可以包括事务锁存器310、请求库320以及控制器330。事务锁存器310可以接收来自外部总线130的事务数据,并且将它锁存起来以供在验证FUB300之中的别处使用。请求库320可以是一个寄存器存储器或者存储数据请求的其他数据结构。控制器340可以管理验证FUB300的操作。
根据一个实施例,请求库320可以存储那些能够被数据请求处理器120(图1)处理的数据请求中的每一个的数据模式。请求库320可以从事务锁存器310接收被锁存的地址数据。在控制器330的管理之下,请求库320可以将从事务锁存器310中所接收的地址数据追加到在其中所存储的请求模式,以便形成数据请求。请求库320可以将该数据请求输出到MUX360。因此,验证FUB300可以响应在该外部总线上的事务而生成新的数据请求。
控制器330可以是一个可编程的状态机,在一个实施例中,该状态机具有存储用于标识验证FUB 300应该响应的数据事务的信息的寄存器(未示出)。如图4所示,控制器330可以包括用于存储事务类型数据的第一寄存器332和用于存储数据请求索引的第二寄存器334。该事务类型数据可以确定验证FUB300应该响应的触发条件。第一寄存器332可以是CAM寄存器或者是具有匹配检测逻辑的某个其他寄存器。在初始化模式期间,事务类型数据可以被加载到第一寄存器332。然后,在应力测试期间,控制器330可以从被发送到外部总线130上的事务中接收事务类型数据。如果该新接收的事务类型数据匹配在初始化期间所存储的事务类型数据,则控制器330就可以确定输出来自验证FUB300的新数据请求。
该数据请求索引可以确定验证FUB300将如何响应触发条件。它可以被存储在第二寄存器334中,在初始化期间可以被加载到该寄存器中。该数据请求索引能够寻址在指令库320中所存储的数据请求模式。当控制器330确定相对于第一寄存器332事务类型匹配发生时,则它就可以将来自第二寄存器334中的索引值施加到指令库320,并且使干扰性事务的数据被读出。如所指示的,指令库320可以将从事务锁存器310中所接收的地址值与来自该库中的数据请求模式附加在一起,以便建立有效的数据请求。
如上所述,指令库320可以直接从事务锁存器310接收地址数据。这一实施例允许验证FUB300生成外部总线事务(通过数据请求处理器120),该外部总线事务指向在触发总线事务中所引用的相同数据。在一个可选的实施例中,指令库320可以生成至所涉及的但是并不完全相同的地址的数据请求,以及生成至从事务锁存器310中所接收的地址的数据请求。
图4用虚线说明在控制器330的管理之下进行操作的任选的地址操作器340。地址操作器340可以对来自事务锁存器310的地址数据执行算术运算。它可以将修改后的地址数据输出到指令库320。例如,地址操作器340可以按照高速缓存线增量对地址进行增量或者减量。可选地,该地址操作器可以按照组块值增量或者减量地址。
为了将验证FUB 300集成到现有的设计中,采用不要求改变在现有设计中所提供的数据请求处理器的方式来进行集成可能是很有利的。在这种应用中,给该请求库提供为该代理所规定的每个数据请求也许并不可行。例如,在有些设计中,如果存储器写请求、IO写请求、中断请求、中断确认请求和清理请求是由代理之中的验证FUB300而不是某个其他组件生成的,则它们就可以要求显著改变以便请求和响应逻辑来支持这种数据请求。在这种实施例中,为了简化在那些设计中使用验证FUB300,这些请求可以被从该事务库中忽略。
在另一个实施例中,如果指令的使用可能会破坏高速缓存的一致性或者其他的系统完整性机制,则这些指令就可以被从事务库忽略。如所周知,许多多处理器计算机系统依据高速缓存一致性模式操作,在该高速缓存一致性模式下,在处理器中所存储的数据的每一项被赋予一个一致性状态。该数据的状态确定该处理器可以怎样使用该数据。例如,在已知的″MESI″协议中,数据可以被赋予如下的四种状态之一:
·无效的-尽管该代理可能已经缓存了数据的拷贝,但是该拷贝对于该代理确实不可用的。当该代理需要该数据时,该代理必须从外部存储器或者从另一个高速缓存中提取该数据。
·共享的-被缓存的拷贝是有效的,并且具有与外部存储器中所存储的值相同的值。该代理可以只读取该数据。该数据的拷贝可以被存储在其他代理的高速缓存之中。如果代理不首先执行一个外部总线事务,以便确保该代理独占地控制该数据的拷贝,则该代理就不可以修改处于共享状态的数据。
·独占的-被缓存的拷贝是有效的,并且可以具有与在外部存储器中所存储的值相同的值。当代理缓存处于独占状态的数据时,它就可以读取和写(修改)该数据而不用进行外部高速缓存一致性检查。
·修改的-被缓存的拷贝是有效的并且是“脏”的。它可以比在外部存储器中所存储的拷贝更加新近。该数据在所有其他代理中一定是无效的。
根据本发明的一个实施例,事务库可以忽略有可能使得系统破坏高速缓存一致性规则的某些事务。例如,诸如BRL0(具有零长度的总线读取线)的零数据长度事务、IO读取、和要求一致性支持的其他事务可以在实施例中被忽略。
图5说明根据本发明的一个实施例所构建的处理器400的实施例。处理器400可以包括总线定序单元410(″BSU″)和核心420。BSU410和核心420这二者都可以采用比与外部总线430相关联的速度高得多的速度来操作。外部总线430将处理器400与诸如其他处理器、存储器和其他器件(未示出)这样的其他部件互相连接起来。
BSU本身是已知的。它们可以包括仲裁器440、高速缓存器450、内部队列460和外部事务队列470。仲裁器440可以接收来自诸如核心420以及可能的其他源这样的各种输入的请求。请求可以包括表示正被生成的请求的类型的请求代码以及,只要合适的话,标识该请求所指向的存储单元的地址。
高速缓存450可以是内部存储器。如所周知,相对于核心高速缓存器(未示出),高速缓存450典型地具有大得多的容量。例如,典型高速缓存450可以是256的存储器。相对比而言,核心数据高速缓存可以是16K的存储器,并且核心指令高速缓存可以是16K的存储器。高速缓存450可以是统一的高速缓存,即一个用于存储指令数据和变量数据这二者(统称为″数据″)的高速缓存。BSQ400也可以与较高级的高速缓存(未示出)相接口,该较高级的高速缓存的大小可以是3H或者更大。
来自仲裁器440的读取请求可以被输入到高速缓存450和内部队列460这二者。高速缓存450可以包括控制逻辑(未示出),该控制逻辑能够确定被请求的数据是否存储在高速缓存450之中。如果的确如此,则该请求就被认为″命中″高速缓存450。高速缓存450将通过通信路径(也未示出)将该被请求的数据提供到核心420。否则,该请求就被称为″未命中″该高速缓存。高速缓存450可通过线452将命中或者未命中传送到内部队列430。
内部队列460可以包括控制电路和缓冲存储器,以便处理来自仲裁器430的请求。内部队列460也接收来自高速缓存450的命中/未命中指示符。如果读取请求命中高速缓存450,则内部队列460可以允许该已排队的请求终止,因为它行进到队列460之外。但是如果读取请求未命中高速缓存450,则该请求就应该通过从外部存储器(未示出)检索该被请求的数据而完成。在这种情形下,当该读取请求行进到内部队列460之外时,内部队列460可以使该请求进入外部事务队列470中。
外部事务队列470也可以包括控制电路和缓冲存储器。它可以依据从该代理之中所发出的被排队的请求而使得外部总线事务被发送到外部总线430上。外部事务队列470可以通过外部总线控制器480控制总线430的操作。典型地,将为总线430规定总线协议,外部事务队列470和外部总线控制器480可以依照这种协议而生成和接收信号。
在一个可选的实施例中,内部队列460和外部事务队列470可以被单一的队列代替。因此,图5说明在单一的″事务队列″中所包括的内部队列460和外部事务队列470。本发明的原理在任一实施例中都可应用。在这一方面,BSQ410的操作和结构是已知的。
根据一个实施例,验证FUB490可以观察在BSQ410之中所发送的数据请求,并且对其响应而生成干扰性事务。在一个实施例中,验证FUB490可以捕获由仲裁器440所输出的数据请求。验证FUB 490可以比较用于标识该请求类型和源的数据,以便确定是否要生成新的数据请求。如果要生成,则该新的数据请求就可以被输出到仲裁器440,以便进行独立的处理。
在这个实施例中,BSQ410可以将该被捕获的数据请求和该新的数据请求这二者作为独立的事务而加以处理。指向相同地址的两个独立事务的处理可以在BSQ410自身之中引起某些性能边界条件。当然,在边界条件下评估处理器的性能是应力测试的目标之一。
在另一个实施例中,用虚线表示,验证FUB490还可以监视内部高速缓存450的命中/未命中输出。在这样的实施例中,不仅可以根据数据请求的请求类型而且还可以根据被请求的数据是否处于内部高速缓存450之中来为验证FUB490规定触发条件。
如上所述,验证FUB150(图1)可以响应在外部总线130(图1)上所观察到的触发总线事务来生成干扰性总线事务。在一个可选的实施例中,验证FUB150可以在外部总线130上不存在新事务时生成干扰性总线事务。许多总线协议使用预定的信号来标识新事务的开始。在PentiumPro处理器的总线协议中,ADS#信号的确立(assertion)指示新事务的开始。新事务可以在每个总线时钟周期期间被发送到总线上。在一个实施例中,验证FUB150可以跟踪新事务没有被发送到该外部总线的情况下经过的连续周期的数目。如果该数目超过预定的阈值(例如2),则验证FUB150可以自发地生成干扰性事务。该干扰性事务可以指向从外部总线事务所捕获的上个地址,它有可能已经被修改过(被增量或者被减量)。
如所指出的那样,验证FUB可以被提供在计算机系统的代理之中。验证FUB仅需要被提供在该系统的代理中那个能够对该系统进行应力测试的代理之中。图6说明根据本发明的一个实施例的示范性计算机系统500。计算机系统500可以包括多个代理510-560,每个代理被耦合到公共通信总线570。这些代理中的四个代理被展示为处理器510-540。其他代理包括系统存储器550和IO接口560。验证FUB515被展示为是处理器之一510的构件,但是可选地,可以被提供在其他代理520-560中的一个或者多个之中。
图7说明根据本发明的一个实施例的另一个示范性计算机系统600。同样地,多个代理610-630被耦合到公共通信总线640。在这个例子中,只有一个代理610被展示为处理器。存储器控制器620和IO接口630也在图7中展示。在这个例子中,验证FUB625被展示为存储器控制器的构件。可选地,该验证FUB可以是IO接口630的构件(未示出)。
在此具体地说明和描述了本发明的几个实施例。然而,应该理解的是,本发明的修改和变型是被上述的教导所涵盖的,并且处于所附权利要求的范围之内而不背离本发明的精神和预定的范围。
Claims (19)
1.一种集成电路,包括:
处理核心,
具有与该处理核心通信的仲裁器的数据请求管线,该数据请求管线具有外部总线接口,和
具有耦合到该数据请求管线的外部总线接口的输入的验证FUB。
2.权利要求1的集成电路,其中该验证FUB的输出耦合到该仲裁器。
3.权利要求1的集成电路,其中该验证FUB包括:
耦合到该外部总线接口的事务锁存器,和
与该事务锁存器相通信并且具有耦合到该数据请求管线的输出的请求库。
4.权利要求2的集成电路,还包括耦合到该事务锁存器和该请求库的地址操作器。
5.一种对集成电路进行应力测试的方法,包括:
捕获第一外部总线事务,
当该事务的请求类型匹配触发条件时,生成数据请求,和
根据该数据请求生成干扰性总线事务。
6.权利要求5的方法,其中第一外部总线事务和新的外部总线事务由相同的集成电路生成。
7.权利要求5的方法,其中该数据请求包括在第一外部总线事务中所包含的地址。
8.权利要求5的方法,其中该外部总线事务包括在系统存储器中的第一高速缓存线地址,并且该数据请求包括与第一高速缓存线地址相邻的第二高速缓存线地址。
9.权利要求5的方法,其中该外部总线事务包括指向系统存储器中的高速缓存线的第一部分的地址,并且该数据请求包括指向该高速缓存线的第二部分的第二高速缓存线。
10.权利要求5的方法,其中该干扰性总线事务在第一外部总线事务结束之前生成。
11.一种在集成电路中的验证FUB,用于捕获外部总线事务和生成对被包含在其中的地址的干扰性数据请求。
12.权利要求11的验证FUB,包括:
事务锁存器,
与该事务锁存器通信的请求库,和
与该事务锁存器通信的控制器。
13.一种计算机系统,包括:
多个代理,每个代理都耦合到公共通信总线,该多个代理中的一个代理包括验证FUB。
14.权利要求13的计算机系统,其中所述的那一个代理是处理器。
15.权利要求13的计算机系统,其中所述的那一个代理是存储器控制器。
16.权利要求13的计算机系统,其中所述的那一个代理是IO接口。
17.权利要求13的计算机系统,其中该验证FUB包括:
与该通信总线通信的事务锁存器,
与该事务锁存器通信的请求库,和
与该事务锁存器通信的控制器。
18.一种对计算机系统进行应力测试的方法,包括:
在外部总线上的新事务没有开始的情况下,对所发生的外部总线周期的数目进行统计,
当该数目满足预定的阈值时,在外部总线上生成一个干扰性事务。
19.权利要求18的方法,其中该干扰性事务包括来自前一个总线事务的、已经被修改为指向相邻的高速缓存线的地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/818,788 US7032134B2 (en) | 2001-03-28 | 2001-03-28 | Microprocessor design support for computer system and platform validation |
US09/818,788 | 2001-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1500247A true CN1500247A (zh) | 2004-05-26 |
CN100524242C CN100524242C (zh) | 2009-08-05 |
Family
ID=25226412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028075463A Expired - Fee Related CN100524242C (zh) | 2001-03-28 | 2002-01-25 | 集成电路及其测试和诊断方法和计算机系统用的测试方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7032134B2 (zh) |
CN (1) | CN100524242C (zh) |
AU (1) | AU2002240105A1 (zh) |
GB (3) | GB2409907B (zh) |
TW (1) | TW561337B (zh) |
WO (1) | WO2002079788A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101794B (zh) * | 2006-07-07 | 2012-08-29 | Arm有限公司 | 存储器测试 |
CN103729259A (zh) * | 2012-10-12 | 2014-04-16 | 安凯(广州)微电子技术有限公司 | 一种AHB总线读写burst相互打断的验证方法及装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078712A1 (en) * | 2002-09-12 | 2004-04-22 | Gurushankar Rajamani | Method and apparatus for stressing data paths |
FR2875026A1 (fr) * | 2004-09-03 | 2006-03-10 | St Microelectronics Sa | Dispositif programmable d'interface de commande |
DE102006051444C5 (de) * | 2006-10-31 | 2011-12-08 | Softing Ag | Diagnoseverfahren und -vorrichtung für ein Feldbussystem |
US20090216493A1 (en) * | 2008-02-27 | 2009-08-27 | Underdal Olav M | Hierarchy of diagnosis for advanced diagnostics equipment |
US8478920B2 (en) * | 2010-06-24 | 2013-07-02 | International Business Machines Corporation | Controlling data stream interruptions on a shared interface |
CN104317683A (zh) * | 2014-09-26 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种测试内存功耗的方法 |
US10126362B2 (en) * | 2014-12-15 | 2018-11-13 | International Business Machines Corporation | Controlling a test run on a device under test without controlling the test equipment testing the device under test |
CN107341082A (zh) * | 2017-07-21 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种服务器系统下单体内存功耗测试设计方法 |
CN107992387A (zh) * | 2017-11-30 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种服务器系统下单体硬盘功耗测试方法 |
US11106788B2 (en) | 2018-11-08 | 2021-08-31 | Hewlett Packard Enterprise Development Lp | Security for active data request streams |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4858234A (en) * | 1987-09-04 | 1989-08-15 | Digital Equipment Corporation | Method and apparatus for error recovery in a multibus computer system |
US5001712A (en) | 1988-10-17 | 1991-03-19 | Unisys Corporation | Diagnostic error injection for a synchronous bus system |
US5142673A (en) * | 1989-12-22 | 1992-08-25 | Bull Hn Information Systems Inc. | Bus monitor with dual port memory for storing selectable trigger patterns |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
US5596715A (en) | 1993-07-06 | 1997-01-21 | Digital Equipment Corporation | Method and apparatus for testing high speed busses using gray-code data |
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
US5594875A (en) * | 1994-07-01 | 1997-01-14 | Digital Equipment Corporation | Method and apparatus to provide pended transaction on a non-pended system bus |
US5701409A (en) | 1995-02-22 | 1997-12-23 | Adaptec, Inc. | Error generation circuit for testing a digital bus |
US6012118A (en) * | 1996-12-30 | 2000-01-04 | Intel Corporation | Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus |
US5966306A (en) * | 1997-07-07 | 1999-10-12 | Motorola Inc. | Method for verifying protocol conformance of an electrical interface |
US6618775B1 (en) * | 1997-08-15 | 2003-09-09 | Micron Technology, Inc. | DSP bus monitoring apparatus and method |
US6018807A (en) * | 1997-09-25 | 2000-01-25 | Micron Electronics, Inc. | Simulation "bus contention" detection |
US6134684A (en) | 1998-02-25 | 2000-10-17 | International Business Machines Corporation | Method and system for error detection in test units utilizing pseudo-random data |
US6269360B1 (en) * | 1998-04-24 | 2001-07-31 | International Business Machines Corporation | Optimization of ordered stores on a pipelined bus via self-initiated retry |
GB2338791B (en) | 1998-06-22 | 2002-09-18 | Advanced Risc Mach Ltd | Apparatus and method for testing master logic units within a data processing apparatus |
US6304984B1 (en) * | 1998-09-29 | 2001-10-16 | International Business Machines Corporation | Method and system for injecting errors to a device within a computer system |
US6516428B2 (en) * | 1999-01-22 | 2003-02-04 | Infineon Technologies Ag | On-chip debug system |
AUPQ005099A0 (en) * | 1999-04-29 | 1999-05-20 | Canon Kabushiki Kaisha | Sequential bus architecture |
US6480923B1 (en) * | 1999-08-19 | 2002-11-12 | International Business Machines Corporation | Information routing for transfer buffers |
US6609221B1 (en) * | 1999-08-31 | 2003-08-19 | Sun Microsystems, Inc. | Method and apparatus for inducing bus saturation during operational testing of busses using a pattern generator |
US6557069B1 (en) * | 1999-11-12 | 2003-04-29 | International Business Machines Corporation | Processor-memory bus architecture for supporting multiple processors |
US6748505B1 (en) * | 2000-07-11 | 2004-06-08 | Intel Corporation | Efficient system bus architecture for memory and register transfers |
US6760864B2 (en) * | 2001-02-21 | 2004-07-06 | Freescale Semiconductor, Inc. | Data processing system with on-chip FIFO for storing debug information and method therefor |
-
2001
- 2001-03-28 US US09/818,788 patent/US7032134B2/en not_active Expired - Fee Related
-
2002
- 2002-01-25 GB GB0506951A patent/GB2409907B/en not_active Expired - Fee Related
- 2002-01-25 AU AU2002240105A patent/AU2002240105A1/en not_active Abandoned
- 2002-01-25 WO PCT/US2002/002286 patent/WO2002079788A2/en not_active Application Discontinuation
- 2002-01-25 CN CNB028075463A patent/CN100524242C/zh not_active Expired - Fee Related
- 2002-01-25 GB GB0318622A patent/GB2387917B/en not_active Expired - Fee Related
- 2002-01-25 GB GB0506950A patent/GB2409906B/en not_active Expired - Fee Related
- 2002-03-05 TW TW091104063A patent/TW561337B/zh not_active IP Right Cessation
-
2005
- 2005-12-15 US US11/300,423 patent/US7487398B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101794B (zh) * | 2006-07-07 | 2012-08-29 | Arm有限公司 | 存储器测试 |
CN103729259A (zh) * | 2012-10-12 | 2014-04-16 | 安凯(广州)微电子技术有限公司 | 一种AHB总线读写burst相互打断的验证方法及装置 |
CN103729259B (zh) * | 2012-10-12 | 2017-02-01 | 安凯(广州)微电子技术有限公司 | 一种AHB总线读写burst相互打断的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US7487398B2 (en) | 2009-02-03 |
GB2387917B (en) | 2005-06-08 |
AU2002240105A1 (en) | 2002-10-15 |
GB2409906B (en) | 2005-09-21 |
US20060107120A1 (en) | 2006-05-18 |
CN100524242C (zh) | 2009-08-05 |
WO2002079788A2 (en) | 2002-10-10 |
GB0506950D0 (en) | 2005-05-11 |
TW561337B (en) | 2003-11-11 |
US7032134B2 (en) | 2006-04-18 |
US20020144183A1 (en) | 2002-10-03 |
GB2409906A (en) | 2005-07-13 |
GB2409907B (en) | 2005-09-21 |
WO2002079788A3 (en) | 2004-02-12 |
GB2387917A (en) | 2003-10-29 |
GB0318622D0 (en) | 2003-09-10 |
GB0506951D0 (en) | 2005-05-11 |
GB2409907A (en) | 2005-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tomić et al. | EazyHTM: Eager-lazy hardware transactional memory | |
US7487398B2 (en) | Microprocessor design support for computer system and platform validation | |
US5692185A (en) | Object space manager method and circuit | |
US5426765A (en) | Multiprocessor cache abitration | |
US6542861B1 (en) | Simulation environment cache model apparatus and method therefor | |
US20200201771A1 (en) | Multi-line data prefetching using dynamic prefetch depth | |
EP3676713B1 (en) | Utilization-based throttling of hardware prefetchers | |
JP2902976B2 (ja) | キャッシュフラッシュ装置 | |
US20050144399A1 (en) | Multiprocessor system, and consistency control device and consistency control method in multiprocessor system | |
CN1894662A (zh) | 作为用于执行引导码的ram的处理器缓存存储器 | |
US20060064518A1 (en) | Method and system for managing cache injection in a multiprocessor system | |
US7076767B1 (en) | Method for controlling and collecting information in a data processing system | |
CN101495968A (zh) | 用于软件事务处理存储器系统的硬件加速 | |
US7120836B1 (en) | System and method for increasing cache hit detection performance | |
JP3071752B2 (ja) | ブリッジ方法、バスブリッジ及びマルチプロセッサシステム | |
US10949292B1 (en) | Memory interface having data signal path and tag signal path | |
US6195731B1 (en) | Instrumentation device for a machine with non-uniform memory access | |
KR20220156920A (ko) | 회로부 및 방법 | |
US6463514B1 (en) | Method to arbitrate for a cache block | |
CN1506845A (zh) | 异构代理高速缓存一致性和限制数据传输的方法和装置 | |
US6950906B2 (en) | System for and method of operating a cache | |
EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
US6973541B1 (en) | System and method for initializing memory within a data processing system | |
CN100520737C (zh) | 高速缓存系统、方法及计算机系统 | |
US5793986A (en) | Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1066301 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1066301 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090805 Termination date: 20130125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |