具有内置自检功能的处理器的利记博彩app

文档序号:6435039阅读:294来源:国知局
专利名称:具有内置自检功能的处理器的利记博彩app
技术领域
本发明涉及内置自检(BIST)技术,它允许迅速测试和高准确度错误检测包含自检功能的逻辑电路。
用于检测逻辑电路中的错误而使用的一般测试方法是通过从外部向被测电路输入预先产生的测试数据并观测结果输出响应而实现的。然而,随着逻辑电路的规模日益增加,要输入的测试数据的数量也增加,这随之延长了测试时间和增加为进行测试所需要的成本。因此,存在一种日渐增长的趋势,即通过采用BIST技术来降低成本,该种技术是使用内置自检电路使逻辑电路进行自检。
现有BIST技术例如在下述文献中讨论,即在“IEEE计算机的设计和测试”杂志1993年3月发行的(第73-82页)、和在1993年6月发行的(第69-77页)标题为“内置自检指南”的论文。
图2表示的BIST由测试控制部分、模式发生器和响应分析器组成。来自模式发生器的输出信号输入待测试电路,然后把结果响应信号供给响应分析器,监视其状态来检测错误。使用两个主要的方法之一产生模式。一种方法是通过事先存储产生的测试数据和测试程序到ROM等中,并把该数据和程序发送给待检测的电路。对于该方法,可以保存在逻辑电路中的数据量受限制,因为测试数据必须保存在存储器中。因此,虽然可以检测测试数据为之准备的错误,但是其它错误可能不可检测。另外的方法是通过使用伪随机数发生器。伪随机数发生器的使用允许产生很大数目的伪随机数并发送到待测试电路。使用伪随机数的这一方法很难达到高错误检测率,因为如果要检测时序电路,则很难产生所有的状态变化,并因为即使要测试组合电路,也可能产生不可检测的状态。在这一场合,虽然通常增加一个给内部存储设备直接分配伪随机数的电路以允许和组合电路一样处理时序电路,但是所增加的电路的开销使得在测试期间难以进行电路的快速操作和/或增加电路面积。已公开的序号为5-120052(1993)的日本专利公开了结合使用前述模式发生器的两个方法的例子。该方法用于使用微处理器的指令执行功能进行测试,它把测试程序保存在存储器中,而由伪随机数发生器产生该程序使用的数据。在其电路组成中,测试方式指定信号的输入设定自检方式,并当执行预先存储在程序存储器中的测试指令时,自动产生要输入测试目标亦即算术逻辑单元(ALU)的测试数据,并按照在该电路内提供的状态标志的特定状态标准化伪随机数。这样,可以为测试指令供应大量测试数据。然而,即使对于这一方法,因为测试指令保存在程序存储器中,因此,待测试的指令组合数目受限,而且对于其操作与按照指令出现的顺序而不同的逻辑电路元件这经常不可执行足够的测试。
如前述例子所示,自检方法的使用会产生这样的问题,即保存在存储器等中的测试数据使得不能进行足够的测试,而使用只采用伪随机数发生器的方法引起增加相关电路的开销,亦即,操作速度减低及增加电路面积。即使上述两种方法结合,亦即使用处理器的指令执行功能的测试方法也会产生要测试的指令组合数目受限制的问题。为通过采用BIST达到快速测试和高错误检测率,必须解决上述问题。本发明的一个目的是提供允许以高速进行测试操作和允许测试大量指令组合的设备。
为保证实现前述目的,本发明中的处理器的特征在于,它们具有随机产生测试指令的功能,从而允许快速执行测试操作和测试大量的指令组合。
更具体说,一个处理器,其特征在于,通过给处理器提供下述设备可以实现快速操作测试和大量指令组合测试指定要由处理器执行的指令的程序计数器;存储由程序计数器指定的指令的指令寄存器;保存数据的寄存器;适应从指令寄存器卸载指令、然后按照该卸载指令从数据存储寄存器读出数据并执行算术运算和把该算术运算结果存储在数据存储寄存器中的算术逻辑单元;为根据外部输入的测试信号随机产生测试指令的随机数指令发生器。
一个处理器,其特征在于,也可以通过给处理器提供下述设备实现快速操作测试和大量指令组合测试指定要执行的指令的程序计数器;具有多个能存储数据的寄存器的寄存器文件;算术逻辑单元,用于根据由程序计数器指定的指令从该寄存器文件卸载数据、然后执行算术运算和把算术运算结果数据存储在数据寄存器中;用于根据外部输入的测试信号随机产生测试指令的随机数指令发生器;用于把随机数发送到算术逻辑单元执行算术运算的随机数数据输出设备;根据随机数数据存储算术结果的响应分析器。
为实现上述目的,可以实现这样的信息处理系统,它具有程序或数据存储存储器和连接到所述存储器上用于读取或存储数据的处理器,在该种场合,该处理器还包括能存储地址以便访问存储器的地址寄存器;保存要存储到或已从存储器中读取的数据的数据寄存器;算术逻辑单元,通过它根据来自指令寄存器的输出指令操作已经存储到多个寄存器或数据寄存器中的数据;根据外部信号随机产生指令和存储该指令到指令寄存器的指令发生器;在算术逻辑单元中提供的响应分析器,用于按照来自指令发生器的输出指令接受执行后已存入数据寄存器中的数据,这样的处理器可以实现快速操作测试和大量指令组合的测试。
为实现上述目的,可以实现这样的信息处理系统,它具有程序或数据存储器和连接到所述存储器用于读取或存储数据的处理器,在该种场合,该处理器还包括用于输出要执行的指令的指令寄存器;用于存储数据的多个寄存器;能存储地址以便访问存储器的地址寄存器;保存要存储到或已从存储器中读取的数据的数据寄存器;算术逻辑单元,通过它根据来自指令寄存器的输出指令操作已经存储到多个寄存器或数据寄存器中的数据;根据外部信号随机产生指令和存储该指令到指令寄存器的指令发生器;在算术逻辑单元中提供的响应分析器,用于按照来自指令发生器的输出指令接受执行后已存入数据寄存器中的数据,这样的处理器也可以实现快速操作测试和大量指令组合的测试。
另外,在上述处理器中的随机数指令发生器通过下述方法之一或者这些方法的组合允许测试大量的指令组合存储各种测试指令到指令寄存器;随机产生各种测试指令和产生从该寄存器发送适应指令的数据所需要的输出信号;根据预先设置的概率数据选择指令和发送这些指令。
另外,在上述处理器中的随机数指令发生器通过具有保存由特定处理器执行的指令的设备和从保存在指令保存设备中的指令中随机选择指令的设备而允许测试大量指令组合。
另外,在上述处理器中的随机数指令发生器通过具有下述设备而允许测试大量指令组合
用于保存每一待执行指令的部分或全部的部分指令保存设备,用于存储允许执行保存在部分指令保存设备中的部分指令所需要的互补信息的指令互补信息保存设备,用于从部分指令保存设备和指令互补信息保存设备中随机选择部分指令和相应指令互补信息的指令选择设备,用于根据选择的部分指令和指令互补信息补充随机数数据以产生由处理器执行的指令的设备。
另外,当需要的测试方式信号指定自检时,可以通过从随机数数据输出设备发送数据,而不是通过在寄存器文件中由相应指令指定发送数据的寄存器,和通过从响应分析器接受数据而不是通过在寄存器文件中由相应指令指定存储该数据的寄存器而测试大量指令组合。
另外,当需要的测试方式信号指定自检时,这些处理器的响应分析器通过从各程序计数器接受输出信号、从处理器接受存储器访问地址和从各数据寄存器接受输出而进行快速操作测试。


图1是表示本发明的实施例的处理器方框图。
图2表示使用现有BIST技术的配置。
图3列出图1所示处理器的指令。
图4表示图1的处理器的指令格式。
图5是表示图1的处理器的指令格式的详细图。
图6是表示图1的随机数指令发生器的实施例的方框图。
图7表示实现图6中的指令保存设备的存储器的内容。
图8是产生伪随机数的线性反馈移位寄存器(LFSR)的方框图。
图9是表示图1中的随机数指令发生器的另一实施例的方框图。
图10是表示实现图9中的部分指令保存设备的存储器的内容。
图11表示实现图9中的指令互补信息保存设备的存储器的内容。
图12是表示图9中的指令发生器的一个详细实施例的方框图。
图13是表示图1中的随机数数据发生器的一个实施例的方框图。
图14是表示图1中的寄存器文件的一个实施例的方框图。
图15是表示本发明的定序器的一个实施例的方框图。
图16是多路转换输入签名寄存器(MISR)的方框图。
图17是表示图1中的随机数指令发生器的另一实施例的方框图。
图18是表示图13中的随机数指令发生器的一个更具体的实施例的图。
图19是表示图18中的指令适配设备的一个更具体的实施例的图。
下面叙述本发明的实施例。
包括处理器的LSI配置作为本发明的一个实施例示于图1。
在该图中101是适应经由总线111与存储器交换信号的存储器接口;102是程序计数器;103是指令超高速缓冲存储器;104是用于控制程序计数器的定序器;105是指令寄存器;106是用于解码指令寄存器的内容和控制算术逻辑单元及其它单元的解码器;107是寄存器文件,它包括用于随机数数据输出的随机数数据发生器和作为响应分析器的多路转换输入签名寄存器(MISR);108是上述算术逻辑单元(ALU);109是用于与上述存储器交换数据的存储器数据寄存器(MDR);110是给存储器接口指定地址的存储器地址寄存器(MAR);123是用于随机输出为自检需要的指令的随机数指令发生器;125、142和143是用于随机数数据输出的随机数数据发生器;126、127、128和144是用于响应分析的MISR;129、130、131、132和141作为选择器提供,以改变在正常方式和测试方式期间的信号流;类似地,133是从LSI外部施加的测试方式信号以指定自检;134是指示从随机数指令发生器123来的输出指令140的内容的指令信息信号。
在接收指令信息信号134之外,本实施例中的随机数数据发生器可以改变随机数数据产生方法,以便该发生器发展随机数数据输出以匹配从随机数指令发生器发送的指令。输出信号136、137、138和139分别来自MISR144、126、127和128,被发送到处理器外部。
本实施例中叙述的处理器指令列在图3中。所有基本指令都是寄存器间的算术运算指令。提供4类分支指令无条件分支指令BRA,条件分支指令BRAcc(“cc”指分支条件),分支到子例程指令CALL,和从子例程返回指令RTN。
还提供加载指令LOAD和存储指令STOR。另外,以24位模式表示在分支指令、加载指令和存储指令中可指定的地址空间。
图4表示指令格式。所有指令具有固定长度32位。在基本指令格式中的“f”位指示,算术结果是否结合到标志中。类似地,“S1”、“S2”和“D”字段分别指定第一源字段、第二源字段和目的地地址。另外,在分支指令格式中的“d”指示分支目的地的地址。
图5示出指示图4中操作(OP)代码定义的详细指令格式。在基本指令中的所有位0到7都取值“0”,分支指令中的所有位4到7都取值“0”,位8到31由分支目的地的地址占据。在加载和存储指令中的位16取值“1”,而位0的值区分LOAD或STOR。
其次解释本实施例中处理器的正常方式期间的处理流。在正常方式中的基本指令处理期间,首先从指令超高速缓冲存储器103中读出由程序计数器102指定的指令,然后在指令寄存器105中设定。另外,指令信号115和标志信号116从ALU108发送到定序器104以执行对程序计数器102的控制。接着,指令专用寄存器数据从寄存器文件107通过总线118和119传输到ALU108,它然后运算这些数据。最后,这样得到的ALU运算结果通过总线120传输,存储到寄存器文件107内的指令专用寄存器107中。
在分支指令处理期间,首先读出由程序计数器102指定的指令并设定在指令超高速缓冲存储器中。接着,对于BRA,分支目的地地址从指令信号线115被发送到定序器104,通过总线112执行程序计数器102的控制。对于BRAcc,分支目的地地址和来自ALU108的标志信号116从指令信号线115被发送到定序器104,执行程序计数器102的控制。对于CALL,程序计数器102的内容保存在寄存器文件的寄存器0中,而分支目的地地址从指令信号线115被发送到定序器104,通过总线112执行对程序计数器102的控制。对于RTN,寄存器文件内的寄存器0的内容在程序计数器内设定。
在加载或存储指令处理期间,首先读出由程序计数器102指定的指令并在指令超高速缓冲存储器中设定。接着指令信号115和来自ALU108的标志信号116被送往定序器104来控制程序计数器102。接着,指令专用寄存器信号被传送到MAR110。对于STOR,由指令中的S1字段指定的寄存器信号被传送到MDR109。接着,对于STOR,由MAR110指定的地址信号和来自MDR109的数据信号121被送往存储器接口101,从那里然后把该数据存储到相应地址的存储器位置。对于LOAD,由MAR110指定的地址信号117被送往存储器接口101,然后在相应地址内的存储器数据从存储器接口101传送到MDR,该MDR数据被传送到由在指令中的D字段指定的寄存器。
下面解释本实施例中不同于通常方式的自检操作。首先,从处理器外部施加指定自检的测试方式信号133,按照测试方式信号133,来自随机数指令发生器而非来自指令超高速缓冲存储器的输出指令140由选择器141传输到指令寄存器105。根据该测试方式信号133,选择器130选择MISR127作为MAR110地址信号117的输出目的地。类似地,根据测试方式信号133,选择器131选择MISR128作为用于MDR109地址信号121的输出目的地。另外,根据测试方式信号133,来自随机数数据发生器125的随机数数据输出、而非来自存储器接口的数据信号122由选择器132传送到MDR109。此外,根据测试方式信号133,随机数数据发生器142和143发送数据,而不是由该指令指定的寄存器文件107内的寄存器发送数据,以及MISR144接收这些数据,而不是由该指令指定的寄存器文件内的寄存器接收数据。
下面解释在本实施例中的处理器的自检方式期间的处理流。首先,由随机数发生器123产生指令140并传输到指令寄存器105。另外,相应于指令140的指令信息信号134从随机数发生器123发送。接着,如果该指令是基本指令,则指令信号115和来自ALU108的标志信号116被送往定序器104以控制程序计数器102。之后,代替指令专用寄存器信号,来自随机数发生器142和143的随机数数据从寄存器文件107通过总线118和119传输到ALU108,然后在这里操作这些数据。最后,如此得到的运算结果通过总线120存储到MISR的内部寄存器,而不是寄存器文件107内的指令专用寄存器。来自程序计数器102的输出信号也被放入MISR126中。
在分支指令处理期间,在BRA的场合,分支目的地地址从指令信号线115被发送到定序器104以通过总线112执行对程序计数器102的控制。接着,来自程序计数器102的输出信号被放入MISR126。对于BRAcc,分支目的地地址和来自ALU108的标志信号116从指令信号线115被发送到定序器104以控制程序计数器102。接着,来自程序计数器102的输出信号被放入MISR126。对于CALL,程序计数器102的内容被放入寄存器文件107的内部MISR,而不保存在该寄存器文件的寄存器0中。另外,分支目的地地址从指令信号线115发送到定序器104,通过总线112控制程序计数器102。对于RTN,来自寄存器文件内的随机数数据发生器的随机数数据输出而非该寄存器文件内的寄存器0的内容在程序计数器102内设定。接着,来自程序计数器102的输出信号被放入MISR126中。
在加载或存储指令处理期间,指令信号115和来自ALU108的标志信号116被送往定序器104来控制程序计数器102。接着,代替指令专用寄存器信号,来自寄存器文件107内的随机数发生器的输出信号被传送到MAR110。对于STOR,代替由指令中的S1字段指定的寄存器信号,来自寄存器文件107内的随机数发生器的输出信号被传送到MDR109。接着,对于STOR,由MAR110指定的地址信号117被放入MISR128,而来自MDR109的输出数据信号121也被放入MISR128。对于LOAD,由MAR110指定的地址信号117被放入MISR128,然后代替存储器接口101的数据,来自随机数数据发生器的输出信号被传送到MDR109,以及MDR109数据被放入寄存器文件的内部MISR中。
在自检方式,上述相继处理序列从来自随机数指令发生器的指令信号的输出重复。通过在自检期间或在其结束时监视MISR输出信号136、137、138和139,然后比较这些信号与事前已计算的无错误数据,实现错误检测。在不匹配的情况下,判定为出现错误。对在本实施例中表示的LSI进行的模拟自检可以使用逻辑模拟器或错误模拟器执行,以计算为判断所需要的无错误数据。
如上所述,本实施例取这样的配置,它通过重复下面相继的过程允许为正确的指令执行结果测试大量指令随机产生指令,从随机数数据发生器供给指令执行数据,从MISR接受寄存器、程序计数器、MAR和MDR的数据,指令执行结果要包括在这些寄存器中,监视MISR输出信号,比较这些信号与事前计算的无错误MISR输出数据。
如本实施例所示,提供随机指令产生功能允许在指令出现顺序的各种组合下测试。另外,可以改善测试效率,因为匹配所执行的指令的随机数数据可以使用由随机数指令发生器产生的指令信息产生。
图6示出随机数指令发生器的一个实施例,其中该随机数指令发生器包括保存测试指令的指令保存设备71,和随机选择由指令保存设备保存的指令的指令选择设备72。
通过输入指定自检的测试方式信号133开始操作。首先,选择在指令保存设备71中保存的哪一个指令的信息作为选择信号73从指令选择设备72送往指令保存设备71,然后该信息作为指令信息信号134发送。接着,指令保存设备71在接收到选择信号73之后给140发送相应指令。
本实施例中的指令保存设备71可以使用接收选择信号73作为地址信号的存储器实现。图7示出该存储器的一个例子。在该存储器中,给每32位分配地址,在自检期间要产生的指令根据图5的指令格式作为32位代码存储。在图8的例子中,存储“n”数目的指令。例如,由32位代码″00000000000000010000011001100100″指示的″ADD0,R(1),R(19),R(4)″指令存储在地址″0000″,而由32位代码″10000000000000001000010000000100″指示的″LOAD R(1),R(4)″指令存储在地址″n″。
本实施例中的指令选择设备72可以采用通常用作伪随机数发生器的线性反馈移位寄存器(LFSR)实现。该LFSR具有反馈到在该移位寄存器开始级提供的D触发器的移位寄存器的最后级输出,同时使用异或逻辑和给位于中间级的触发器提供反馈。所有位模式,除了所有位取“0”的场合,可以通过取像这样的反馈结构以伪随机数的形式产生。图8示出一个33位LFSR的例子。在该图中,91是D触发器,900到932是33位伪随机数模式输出信号。在该LFSR中,可以通过对D触发器91执行一次移位操作得到一个伪随机数,然后把D触发器的结果信号数据指定给伪随机数模式输出信号900到932。通过按需重复上述移位操作可以得到多个伪随机数模式输出信号。另外,当在初始LFSR数据中的所有位取值“0”时,由于未产生伪随机数,该触发器由一个信号数据的组合启动,除了在所有位取“0”值的场合,当给该LSI加电或测试方式信号改变为自检方式信号时,将用做D触发器91。
图6的实施例可以通过下述方式构造从图8的LFSR中选择输出信号,它包括为指定在存储器内存储的希望的指令必需的位;然后连接相应输出信号线作为地址信号线到存储器;并以1∶1的速率发送与存储器存储的指令关联的地址信号作为为识别从随机数指令发生器发出的指令需要的指令信息信号134。另外,由随机数指令发生器产生指令的概率可以通过使用下述事实为每一指令设定,所述事实为在存储器的多个地址中预先存储一条指令增加该指令由指令选择设备重复选择的概率。
图9表示随机数指令发生器的另一个实施例。该随机数指令发生器包括用于保存每一测试指令的部分或全部的部分指令保存设备1002;指令互补信息保存设备1003,它保存指定为在部分指令保存设备中保存的不完全的部分指令必需的补充部分以成为可执行指令的信息;指令选择设备1001,用于随机选择相应于保存在部分指令保存设备1002中的部分指令和相应于保存在指令互补信息保存设备中的不完全的部分指令的指令互补信息;和产生由处理器执行的指令的指令发生器,这通过根据所选择的部分指令和指令互补信息补充随机数数据而实现。
通过输入指定自检的测试方式信号135启动操作。首先,为选择在指令保存设备1002中的哪一个部分指令的信息作为选择信号1005从指令选择设备1001送往部分指令保存设备1002。同时选择信号1005被送往指令互补信息保存设备以选择相应于所选择的信息的指令互补信息。选择信号1005还作为指令信息信号134被送往部分指令保存设备1002,从那里,相应于选择信号1005的部分指令1006然后传输到指令发生器1004。另外,相应于选择信号1005的指令互补信息1007从指令互补信息保存设备1003送往指令发生器1004。最后,在接收到部分指令1006和指令互补信息1007后,指令发生器1004通过给在部分指令中的缺少部分指定补充随机数数据产生一条可执行指令,然后作为指令140发布该指令。
在本实施例中的部分指令保存设备1002和指令互补信息保存设备1003可以通过使用接收选择信号作为地址信号的存储器实现。图10表示为实现部分指令保存设备的存储器的例子。在该存储器中,为每32位分配地址,而在自检期间要产生的指令根据图5的指令格式作为32位代码存储。此时,在要保存的完整指令代码中,只把通过分配随机数数据补充的位设置为“0”。在图10的例子中,存储“m”数目的指令。例如,由32位代码″00000000000000100000000000000000″指示的指令″SUB0,?,?,?″存储在地址″0001″,而由32位代码″00100000000000000000000000000000″指示的指令″BRA?″存储在地址″0004″,这里指令中的″?″表示在每一指令代码中用随机数数据填充的字段。例如,在地址0001的场合,“?”意味着指令代码中的位17到31将用随机数填充,和相应的位都作为“0”保存。图11示出为实现指令互补信息保存设备的存储器的例子。在该存储器中,为每32位分配地址和以32位模式表示指令互补信息。另外,存储在图10的存储器中保存的部分指令和相应于每一保存的部分指令的指令互补信息以匹配地址。指令互补信息的格式是这样的,使得对应保存在部分指令保存设备中的部分指令,将在要通过分配随机数补充的每一部分指令中的位设置为“1”,而所有其它位设置为“0”。在图11的例子中,对于地址0001,相应于图10中的部分指令的位17到31取值“1”,而所有其它位取“0”。这样,32位代码″0000000000000000111111111111111″存储在相应地址。类似地,对于地址0004,指示一条分支指令的分支目的地地址的位8到31取值″1″,而位0到7取值″0″。这样,32位代码″00000000111111111111111111111111″存储在相应地址中。
图12表示指令发生器1004的一个详细实施例。该指令发生器包括LFSR1301,当指定自检的测试方式信号输入时它作为32位伪随机数模式发生器开始操作;32位的与计算器1302,它接收两组32位数据,然后在为每一位计算逻辑积之后,取出结果;32位的或计算器,它接收两组32位数据,然后在为每一位计算逻辑和之后,取出结果。
在操作期间,首先计算在从指令互补信息保存设备中给出的指令互补信息1007的位之间和在从LFSR1301中给出的伪随机数数据中的位之间的逻辑积,并产生32位数据,通过对只给需要互补的位分配随机数数据作为输出。接着,计算在32位数据中的位和从部分指令保存设备中给出的部分指令1006之间的逻辑和、并通过分配随机数数据给需要互补的位作为输出建立指令140。
可以使用图8所示LFSR实现指令选择设备1001。从LFSR输出选择等于指定部分指令保存设备和指令互补信息保存存储器两者内容所需要的位数的输出信号,然后把选择的信号线作为地址信号线连接。接收到该地址信号的存储器发送作为部分指令1006和指令互补信息1007的相应地址数据。如果该地址数据作为指令信息信号134发送,则可以识别为是来自随机数指令发生器的输出指令。在上述实施例的配置中,为改善效率,应该使在存储器中存储的部分指令数目等于由2的幂表示的数,如对于图6的实施例。然而,LFSR输出也可以标准化为预先存储在存储器内的部分指令数“m”。另外,由随机数指令发生器产生的指令的概率通过利用下述事实可以为每一指令设定,即在存储器的多个地址中预先存储一条指令增加由指令选择设备重复选择该指令的概率。
与图6的实施例相比,图9所示实施例允许测试大量指令组合,因为通过给产生的指令分配随机数数据可以补码每一条指令的一部分。
图13表示用于图1的实施例中的随机数数据发生器的一个详细实施例。该随机数数据发生器包括32位随机数发生器1401到1403;选择器1404,用于从随机数发生器选择一组输出数据然后发送随机数数据1406;解码器1405,其可以接收指令信息信号134,然后判断随机数发生器是否要发送随机数数据,如果是要发送数据,则向选择器不只发送指定相应于该指令信息信号的随机数发生器输出的信息,还发送指定该操作由通过相应信息指定的随机数发生器执行的信号。
随机数发生器1401到1403发送一定数据格式的数据,这些数据格式是允许执行为由相应于指令信息134的指令信息识别的指令的测试项目所必需的。
在处理期间,首先当从随机数发生器123输入指令信息信号134时,解码器1405判断随机数数据发生器是否要发送随机数数据,如果是要发送数据,则给选择器1404发送信号,该信号指定发送相应于该指令信息的随机数数据的随机数发生器,然后解码器指定随机数数据输出操作给随机数发生器1401-1403之一,其发送相应于该指令信息的随机数数据。接着,来自由解码器1405指定的随机数发生器的输出随机数数据作为匹配指令信息信号134的随机数数据发送。在当前实施例中的随机数发生器的场合,作为匹配相应指令的随机数数据,可以发送一定数据格式的随机数数据,这些数据格式是允许执行假定为由相应于指令信息134的指令信息识别的指令的测试项目所必需的。
可以使用利用LFSR及以其输出作为输入的组合电路容易地实现发送匹配一指令信息信号的随机数数据的随机数发生器。例如,如果需要具有固定位数据的一部分作为为测试“a”的指令的数据部分,则这可以通过增加LFSR输出屏蔽电路实现。在图1的实施例中的加载指令作为一个特定的例子表示。LOAD R(S1),R(D)是一条加载指令,通过该指令由通过S1指定的寄存器数据寻址的存储器数据被传输到由D指定的寄存器。在该指令的场合,当不用由S1指定的寄存器数据而使用从随机数发生器的输出数据时,由于地址空间的长度限制为24位,因此该随机数发生器输出数据也必须以24位模式表示。图18表示发送匹配该加载指令的随机数数据的随机数发生器。该随机数发生器包括发送32位伪随机数的LFSR1902,和执行8位逻辑乘的组合逻辑电路1903。
在处理期间,首先当从解码器1405输入操作指令信号1901时,LFSR将发送一个32位伪随机数模式。接着,给逻辑乘法电路1903发送32位伪随机数模式中高阶8位信号,然后逻辑乘法电路对8位全是“0”的信号执行逻辑乘,从而发送8位全取值“0”的数据1905。最后,由数据1905和在32位伪随机数模式中的低阶24位数据1904的组合组成的数据作为匹配该加载指令的32位数据1906发送。
另外,当需要通过调整对每一位要产生“0”和“1”的概率所已得到的数据作为符合具有一定数据格式的指令“b”的数据时(所述数据格式是假定为该指令执行测试项目必需的),可以利用下述事实通过设计一个组合电路来构造一个随机数发生器,所述事实为当取在LFSR的多个输出位之间的逻辑和作为其输出时,“1”的发生概率增加,而当取逻辑积作为其输出时,“0”的发生概率将增加。
在一组位模式作为匹配“c”指令的数据提供的场合,当从该组模式中随机选择的一个模式要被用作匹配该“c”指令的数据时,这可以通过使用LFSR和保存该位模式的存储器实现,然后使用该LFSR的输出以产生存储器数据读出地址。
图17表示图1所用随机数数据发生器的另一实施例。
这些随机数数据发生器包括解码器1805,它可以接收指令信息信号134,然后判断随机数发生器是否要发送随机数数据,如果要发送数据,则不仅发送指定随机数数据输出操作的信号给LFSR1807,而且发送选择匹配该指令信息的随机数数据的信息1808;用于输出32位伪随机数数据的上述LFSR1807;指令适配设备1801到1803,用于在把该数据转换为适应由指令信息信号134识别的指令的随机数数据后给选择器1804发送LFSR输出32位数据;上述选择器1804,使用该选择器按照选择信息1808从指令适配设备的输出中选择适应该指令信息的随机数数据,然后送往下一级。
在处理期间,首先当输入来自随机数发生器123的指令信息信号134时,解码器1805将判断,随机数数据发生器是否要发送随机数数据,如果要发送该数据,则给选择器1804发送指定指令适配设备发送相应于该指令信息的随机数数据的信息,而解码器给LFSR1807发送伪随机数数据输出指令信号1809。接着,接收到该指令的LFSR1807将给指令适配设备1801到1803发送伪随机数数据。在从该LFSR得到该伪随机数数据后,指令适配设备转换该数据为适应该指令的随机数数据并把该随机数数据发送给选择器1804。在该选择器上,然后从指令适配设备的输出伪随机数数据中按照选择信息1808选择适应指令信息信号134的伪随机数数据,并作为适应由指令信息信号134识别的指令的随机数数据1806发送给下一级。
在图1实施例中的处理器的加载指令在本实施例中作为指令适配设备的一个具体例子表示。LOAD R(S1),R(D)是加载指令,由通过S1指定的寄存器数据寻址的存储器数据使用该指令传输到由D指定的寄存器。在该指令的场合,当不用由S1指定的寄存器数据而使用来自一个随机数发生器的输出数据以随机改变相应地址和执行该指令执行测试时,由于地址空间的长度限制为24位,因此该随机数发生器输出数据也必须以24位模式表示。用于转换LFSR1807输出伪随机数数据为匹配该加载指令的格式的指令适配设备示于图19。该指令适配设备包括为执行8位逻辑乘的组合逻辑电路2001和直通电路2002,该直通电路2002不做任何修改原封不动发送24位信号。
图14表示图1实施例中的寄存器文件的一个详细实施例。该寄存器文件包括具有两个读端口和一个写端口和保存数据的32位寄存器;输出选择器1500和1501,它们改变测试方式信号为随机数数据发生器输出信号,而不是寄存器输出信号,然后将该随机数数据发生器输出信号发送给数据总线;接受32位数据作为响应分析器的MISR1505;和输入选择器,使用该选择器把从总线120输入的寄存器写数据通过测试方式信号发送给上述MISR。
在正常操作方式下,从总线120输入的寄存器写数据存储在由一个指令指定的寄存器中。另外,把指令选择的寄存器数据送往总线118和119。在自检方式下,从总线120输入的寄存器写数据由输入选择器送往MISR1505并放入MISR。另外,该指令选择的寄存器数据被改变为随机数数据发生器1503和1504的输出数据,然后从这些随机数数据发生器把该数据发送到总线118和119。
图15表示该种配置的一个实施例的例子,这里,代替定序器104内一个或者多个存储设备,随机数数据输出设备在图1的实施例的情况中发送信号,该测试方式信号指定自检方式。定序器是一个时序电路,它由组合电路块1601和“i”数目的存储设备1604到1606组成。当测试方式信号133指定自检时,选择器1602和1603发送随机数数据发生器1609的输出信号1607和1608,而不发送存储设备1605和1606的输出信号。通过指定图8所示的LFSR的输出中的两位可以得到从随机数数据发生器的输出数据。在本实施例中,虽然这两个存储设备受选择器的选择,但是信号输出配置不因而受限制,而可以包括一个或者多个存储设备。在本实施例中所示配置的引入允许用不同的程序计数器数据进行测试,即使该随机数指令发生器已经产生非分支指令。
图16表示图1实施例中的MISR的配置。该MISR通常用作BIST功能块中的响应分析器,配置该响应分析器以便可以使用异或逻辑和给LFSR的每一位施加信号。在图16中,171是D触发器,而1700到1732是取33位模式的数据输入信号线。为获取数据需要的信号连接到这些数据输入信号线。通过给每一D触发器取在该D触发器输出和要在移位期间获取的数据之间的异或逻辑和来实现数据的获取。重复为数据获取的移位以压缩获得的数据。
根据本发明,通过提供随机产生测试指令的功能,可以进行在大量指令产生序列的组合下的测试。另外,由于匹配被执行的指令的随机数数据可以使用由随机数指令发生器产生的指令信息而产生,因此可以改善测试效率,从而可以获得高错误检测率。另外,通过采用作为随机数指令发生器和随机数数据输出设备的硬件,也可以进行迅速测试。
根据本发明,可以实现高错误检测率和能够进行快速测试。
权利要求
1.一个处理器,包括指定待执行指令的程序计数器,能够存储由所述程序计数器指定的指令的指令寄存器,数据在其中存储的寄存器,算术逻辑单元,适应从所述指令寄存器中卸载指令,然后根据被卸载指令从所述数据存储寄存器中读出数据,和执行算术运算并存储算术结果数据到数据存储寄存器,随机数指令发生器,用于根据外部输入的测试信号随机产生测试指令。
2.根据上述权利要求1的处理器,其中,所述随机数指令发生器根据所述测试信号产生测试指令,和将该测试指令存储到所述指令寄存器中。
3.根据上述权利要求1的处理器,其中,所述随机数指令发生器随机产生测试指令,并根据该特别的测试指令从所述数据存储寄存器中产生用于发送合适数据的输出信号。
4.根据上面权利要求1到3中任何一个权利要求的处理器,其中,所述随机数指令发生器具有多条指令和根据事先建立的条件发送所述指令。
5.一个处理器,包括指定待执行指令的程序计数器,具有多个存储数据的寄存器的寄存器文件,算术逻辑单元,根据由所述程序计数器指定的指令从所述寄存器文件中卸载数据,然后执行算术运算并存储算术结果数据到数据寄存器,随机数指令发生器,用于根据外部输入的测试信号随机产生测试指令,随机数数据输出设备,用于给所述算术逻辑单元发送随机数以执行算术运算,响应分析器,能够根据要存储的所述随机数数据存储算术结果,
6.根据上述权利要求5的处理器,其中,所述响应分析器根据测试信号从程序计数器取输出信号。
7.根据上述权利要求1到6中任何一个权利要求的处理器,其中,所述随机数指令发生器具有保存处理器执行的指令的设备,和从所述指令保存设备随机选择指令的设备。
8.根据上述权利要求1到7中任何一个权利要求的处理器,其中,所述随机数指令发生器另外包括部分指令保存设备,用于保存每一待执行指令的部分或者全部,指令互补信息保存设备,用于保存为允许在所述部分指令保存设备内保存的部分指令执行必需的互补信息,指令选择设备,用于分别从所述部分指令保存设备和所述指令互补信息保存设备随机选择部分指令和相应指令互补信息,根据选择的部分指令和指令互补信息互补随机数数据以产生由处理器执行的指令的设备。
9.一个信息处理系统,具有程序或数据存储存储器和与所述存储器连接为读出或存储数据的处理器;其中,所述处理器另外包括用于输出待执行指令的指令寄存器,多个存储数据的寄存器,能够存储用以访问存储器的地址的地址寄存器,保存要存储到存储器或已从其读出的数据的数据寄存器,算术逻辑单元,通过该算术逻辑单元,根据来自指令寄存器的输出指令对已存储在所述多个寄存器或数据寄存器中的数据进行操作,指令发生器,用于根据外部信号随机产生指令和在指令寄存器中保存该指令,在算术逻辑单元中提供的响应分析器,它根据来自所述指令发生器的输出指令接受在被执行后已存储到数据寄存器中的数据。
全文摘要
通过提供随机数指令发生器123和随机数数据发生器可以实现自检,前者随机产生测试指令,后者根据由随机数指令发生器产生的指令信息信号134产生和发送随机数数据。
文档编号G06F7/38GK1269546SQ00104970
公开日2000年10月11日 申请日期2000年4月5日 优先权日1999年4月5日
发明者彦根和文, 中尾教伸, 畠山一实, 堀田多加志 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1