非可扫描微处理器的可扫描接口的制作方法

文档序号:6407916阅读:192来源:国知局
专利名称:非可扫描微处理器的可扫描接口的制作方法
技术领域
本发明涉及具有诊断能力的数字处理系统领域。尤其是在一个实施例中,本发明提供了一种扫描可扫描处理器而不干扰形成数字系统一部分的非可扫描微处理器的手段。
为全面诊断纯逻辑电路(即不存储过去的状态的电路),诊断系统只需要控制电路的所有输入和记录输出。把对一组已知的输入的输出与一组预期的输出比较,可以指示出电路是否正常工作。对诸如触发器、锁存器的带有存储元件的电路和存储元件的诊断更复杂。
为了全面诊断有存储元件的电路,不仅必须控制输入,而且内部记忆的状态必须能了解、能控制。一些内部状态可以通过操纵电路的输入来控制。例如,对于计数器的内部状态,即其计的数,可以通过建立计数器的复位输入,使其到达一已知的状态,然后向时钟输入端输入时钟,使其到达所预期的内部状态来控制。当然,对于今天这样复杂的电路是不实用的。而且,对于某些测试,可能需要把内部状态设置成仅仅操作电路的输入不可能达到的状态。
因此,需要一种手段,来读取电路的内部状态和把内部状态设定到一指定的状态。对于分立电路,可以通过探测各存储单元来读取内部状态,可以通过关闭各存储元件的输出并用与所期望的内部状态一致的逻辑值来代替以设定已知状态。然而,对于集成电路,在测试系统和集成电路之间进行数据通信的引脚数严重限制了可以分配给对内部状态测试和控制的引脚数。
一种对集成电路(IC)进行诊断的熟悉的方法包括电路逻辑之间的扫描通路。扫描通路是一串行通路,它连接电路中所有存储元件,或者至少是那些可以归入串行流的可扫描元件的串行通路。使元件处于串行扫描通路,则可以从一个引脚串行读出内部状态,并可用一个引脚来设置内部状态。
集成电路有一个从正常电路操作模式切换到测试模式的机构。在正常电路操作模式中,存储元件对其输入作响应,在测试模式中,存储元件对经过扫描通路的数据作响应。因此,扫描通路中数据的移入和移出,将使存储元件的输出随数据移位而变化。如果该存储元件是一个直接影响电路输出的存储元件,则在扫描通路上测试数据的移位将表现为电路输出端数据波动。
为了把电路设定成已知状态(扫描入),则把对扫描通路内的各存储元件的设定值扫描入扫描输入端,为了读取电路状态(扫描出),则从扫描通路输出端读取数据。扫描入和扫描出是通过向扫描通路提供等于扫描通路内的存储元件数的时钟来进行的。当然,必须提供扫描信号,在扫描信号未建立时允许电路正常操作。因此,在正常操作时,电路的作用如设计的一样,如果建立了扫描允许信号,则电路成为包括所有可诊断存储元件的串行寄存器。


图1示出这一原理。图1示出了平行寄存器10,它具有8位数据输入端、8位数据输出、计时输入端、扫描允许信号输入端、扫描数据输入端的扫描数据。在尚未建立扫描允许信号时,寄存器10以寄存器方式工作,数据在时钟的作用下从输入端I0-I7到输出端O0-O7。
在建立了扫描允许信号时,数据输入不再影响数据输出。数据输出受通过使用时钟的扫描数据输入端扫描进入寄存器的数据影响。这种扫描方法存在一个问题,即寄存器10是一较大系统的一部分。假设寄存器10内全为零,且把“10000000”扫描入寄存器10,“1”在最后作为第7位。因为扫描输入与第0位相联接,所以随着时钟的进入,“1”将脉动通过各输出端,因此,将干扰与寄存器10的输出有关的电路元件,由此干扰其它电路的状态。
寄存器10的输出波动问题的一个解决方法是在寄存器10的输出端设置另一8位不可扫描锁存器,在扫描时不给该锁存器时钟,因此,使有关的电路元件与寄存器10屏蔽(隔离)。然而,这种方法没有办法测试现在加入的非可测试锁存器。
另一种解决方法是协调对寄存器10和对相关元件的扫描。然而,如果相关元件是不可扫描的,例如相关元件是另一制造商提供的密封的IC时,则该方法不可能解决问题。
从上面可以看出,需要一种扫描与诸如微处理器的非可扫描电路具有相关的电路的经改进的手段,它不干扰那些相关性电路的操作。
本发明提供了一种改进的电路诊断系统。
在本发明的诊断系统的一个实施例中,诊断系统可以扫描除非可扫描元件外的所有元件,而不干扰非可扫描元件。一个这样的数字计算机诊断系统是一块包含可扫描处理器ASIC(专用集成电路)的处理器板,它包括有一处理器接口芯片(PIC),用微处理器和PIC之间的处理器总线连接非可扫描微处理器和其它可扫描处理器ASIC。设置有扫描控制器,通过可扫描ASIC(包括PIC)读写数据。一般ASIC是在处理器板上的独立的芯片,每一芯片具有一可独立控制的扫描通路。然而,在另一实施例中,可以把多于一个以上的ASIC与单块芯片结合,或者可以用于一块以上的制成单个的ASIC。而且,处理器电路不需要在一块板上。
在一特定的实施例中,扫描器本身就是一个ASIC维护和诊断芯片(MDC),它产生一个PIC请求,使微处理器进行总线步进(bus-step)。当MDC请求总线步进时,微处理器和处理器ASIC正常运行,一直到PIC确定微处理器能够停止,并且可以不违反总线规约而扫描PIC。在那时,微处理器停止,以等待PIC的响应。因为微处理器正在等待,因此延迟得到响应无须影响微处理器的状态。
本发明的一个优点是可以对从处理器板一直到处理器总线进行扫描而不干扰微处理器状态。在与正常操作设置完全一致的设置中,对包括非可扫描微处理器的计算机系统进行测试,把它设置成一已知状态,或者对它进行调试,在这些场合中这是很有用的。
本发明的另一优点是它也可以使处理板进行总线步进而不需要微处理器内专门的硬件。如果不需任何硬件,那么可以使用标准微处理器。
本发明的再一个优点是它可以使可扫描ASIC的时钟周期单步步进而不使微处理器干扰测试。即使没有微处理器也可以运行一些诊断工作。
参见说明书的其余部分以及附图,可以进一步理解本发明的特点和优点。
图1是一般的可扫描寄存器的框图;
图2是具有非可扫描微处理器和处理器电路的数字计算机的框图;
图3是PIC和MDC之间进行扫描或者处理总线步进而不干扰处理器总线上的微处理器工作的规约状态图;
图4是本发明的输出允许锁存电路和处理器总线信号交换式寄存电路的框图;
图5是PIC的框图,示出了诊断状态机。
图2是在处理器板21上的带有非可扫描微处理器22和可扫描处理器电路24的数字计算机系统20的框图。处理器电路24包括各种ASIC,如处理器接口芯片(PIC)30,存储器接口芯片(MIC)32,处理机间总线控制器34x,y(IPBX/IPBY),输入/输出控制系统(IOS)36和维护和诊断芯片(MDC)38。处理器电路24通过三根总线内部总线(IBus)40、维护总线(Mbus)42和外部总线(EBus)43相互连接。图2示出了处理器电路24,它通过MIC与存储器44相连,通过处理器间控制器34x,y与其它处理单元46x,y相连,通过IOS36和EBus43与I/O设备48相连。PIC30包括状态机(图5作了更详细的图示),其操作将结合图3和图5进行讨论。
Mbus含有控制对连接在Mbus上的ASIC的进行扫描的信号线,使MDC建立ASIC以进行扫描操作,或者保持其所处的状态。将一个ASIC保持其所处的状态可以使MDC扫描另一个ASIC而不干扰被保持的ASIC的状态。Mbus还含有扫描数据线,用于把扫描数据写入ASIC和从ASIC读取扫描数据。
除了Mbus之外,MDC还通过三根线DIAG、REQ、STEP_REQ和DIAG_OK线与PIC相连,尽管在一些实施例中,这些信号提供的信息受到不同信号线组的干扰。
在数字计算机系统20处于正常操作模式时,不需要Mbus。微处理器22通过处理器总线(PBus)50向PIC发出请求,它按顺序通过IBus把请求传送给其它ASIC。例如,如果微处理器22请求存储器写,则该请求将包括待写入的数据,并通过PIC到MIC,以便把与请求相关的数据存储到存储器44中。同样,微处理器22通过PBus将对给定块存储器44的读请求送至PIC,然后,再从PIC通过IBus40送至MIC。作为响应,MIC从存储44中检索出数据,并将它送至PIC,PIC按PBus规约在适当的时候将它传送至微处理器22。
在诊断模式中,MDC可以通过Mbus控制ASIC。尽管所示的Mbus独立地连至各ASIC,但在一些实施例中,扫描通路至ASIC是串行的,即,所有的扫描数据运行通过各ASIC。对于比各ASIC到MDC相连接成本更低的两ASIC之间相连接来说,后种结构是有用的。
一个ASIC的控制测试装置,例如MIC32,是通过把预定状态经Mbus扫描到ASIC中来实现的。因为在处理器电路24内的各ASIC是可扫描的,所以可以监测和改变ASCC状态。因此,由于所有可扫描ASIC的状态可以被扫描入或者被保持,所以MDC不需要考虑与IBus相互影响的ASIC的内部操作。例如,在扫描操作期间,可以以这样一种方法扫描入MIC,即使扫描数据波动出现在IBus上,但如果IBus上的各ASIC也处于MDC控制下,那么这不是一个问题。
通常,在扫描ASIC时,影响ASIC内部电路状态的ASIC的输入能力被封锁。在所有的ASIC联接在串行扫描通路上的场合下,在扫描一个ASIC时,即扫描了所有的ASIC,所以IBus上的扫描数据的波动没有什么作用。在各ASIC具有直接与MDC连接的扫描通路的情况下,MDC可以经Mbus向所有未被扫描的ASIC发出保持命令,防止IBus上的波动向未被扫描的IC触发不希望有的输入操作。总之,因为MDC可以完全控制ASIC及其周围的环境,Mbus就是所有MDC和ASIC之间需要Mbus。图2所示的例外的情况是PIC30,它有一个不受MDC38控制的与微处理器22相连的接口。
除了存储元件之外,MDC可以任意扫描PIC而不管PBus的状态,因为存储元件将影响PBus上的数据,但是即使那些存储元件在设置了如图3所示的状态图中举例的控制逻辑成为可扫描的。这些信号线包含M地址/数据线和K控制线,总计N条。在一个实施例中,控制线为6条(K=6),地址/数据线为82条(M=82,N=88)。有些线在图4中作了更详细的图示。在满足某些条件时,地址/数据线上的数据不会影响微处理器22。在由PIC传到微处理器的控制信号指示地址/数据线上的数据无效时,就满足了这些条件。另一个这样的条件是当微处理器22正等待对微处理器请求的响应,以及PIC仍未处理从PIC到微处理器的“响应准备”信号。因此,MDC必须确信PBus处于这样一条件下,以使能进行扫描而不引起微处理器22进行不希望的操作。
图3是MPC和PIC之间各种规约状态的状态图。由PIC内的状态机52(见图5)跟踪该状态,也可以采用其它结构。重要的是甚至该状态机52也可以被扫描。
图5更详细示出了PIC30。PIC包括状态机52,54,56。设置了信号连接线,以使状态机52把PBus脱离等待(Stay-off-PBus)信号送至PBus状态机54,把IBus脱离等待(Stay-off-IBus)信号送至IBus状态机56,同样,状态机接收PBus状态机54的PBus空闲(PBus-idle)和IBus状态机56的IBus空闲(IBus-idle)信号。
在状态1,PIC和MDC处于正常模式。在建立了DIAG_RREQ信号时,状态机52从状态1变为状态2。在整个说明中,信号被称为“已建立”的信号或具有“真”值的信号,它们可以互换,与之相对的是“未建立”信号和具有“假”值的信号。在希望在进行PIC扫描时建立了一个DIAG_信号,就需要一PBus总线步进或处理器电路24的单个时钟周期步进。
一旦转到状态2,PIC由断开RDY(准备)信号。RDY信号表示两种信号RdRdy(读准备)和WrRdy(写准备),但是为清楚起见,由于在状态机52内独立处理这些信号,因此,在图3中把它们示为一个信号。这些RdRdy和WrRdy信号,由PIC经PBus输出,由微处理器22输入。在状态维持在状态2的各时钟周期时建立另一个信号Stay-off-bus。在有了RDY信号时,总线脱离等待信号也表示两个相似的处理信号PBus脱离等待信号和ZBus脱离等待信号,状态机52把它们输出至状态机54主56(见图5)。状态机52保持在状态2,一直到PBus和IBus两者对于PIC来说空闲为止,此时,状态机52改变到状态3。
总线脱离等待信号被送至状态机54、56,并且,状态机52停留在状态2,一直到它接收到状态机54、56的总线空闲信号。
一旦转到状态3,PIC建立DIAG_OK信号,它向MDC指示可以进行步进和扫描。状态机52保持在状态3,一直MDC断开DIAG_RREQ信号或者MDC建立了STEP_RREQ信号。如果MDC断开DIAG_RREQ信号,状态机52就转变成状态1,完成一次扫描操作流程。一旦转到状态1,PIC建立RDY(RdRdy、WrRdy)信号,并断开总线脱离等待信号。
另一方面,如果维持建立的DIAG_RREQ信号,并建立STEP_RREQ信号,状态机改变成状态中,开始PBus的单步总线步进。一旦转变到状态4,PIC就建立RDY信号,并停留在状态4,一直到有微处理器请求。因为总线步进在下一个处理机请求之前一直运行,因此这不是单步微处理器时钟步进,而是请求与请求之间的单个代码块。当然,一些微处理器可以在每个指令周期产生指令请求,但,在一个最佳实施例中,微处理器包含有一辅助高速缓冲存储器,高速缓冲存储指令和最近使用的数据,使它可以运行几个指令周期而不影响PIC。
状态机52保持在状态4一直到PIC接收到微处理器请求,然后转到状态5。一旦转到状态5,如果DIAG_REQ仍然为真,则PIC就建立DIAG_OK信号,并断开RDY信号。这引起微处理器22要么等待请求的结果,要么继续内部程序(例如从其主和副超高速缓冲存储器读取指令)。无论哪一种情况都不使用PBus。
状态机保持在状态5一直到MPC断开DIAD_REQ信号,或者建立STEP_REQ信号。无论哪一种情况,状态均从状态5转变成状态6,然后转变成状态3。在状态3,如果MDC的信号没有变化,则使状态进入状态1,否则进入状态4。
一旦进入状态6,PIC断开总线脱离等待信号,允许处理器电路24处理请求。状态机52保持状态6一直到请求处理完成,并且把响应送至微处理器22,然后转入状态3。一旦转入状态3,则PIC再次建立总线脱离等待信号,并且如果DIAG_RREQ仍然为真,则建立DIAG_ROK一个时钟周期。
因此,按照图3所示的状态图,PIC和MDC可以协谳扫描处理机电路24的时间,包括对PIC本身的扫描,以及使微处理器22和PBus50总线步进,甚至不需要微处理器22了解发生了什么。这样就不要对微处理器22进行改动。这种方法的一个好处是可以从可用的微处理器中选择微处理器22,而不限于在那些可扫描的微处理器中选择。在一个实施例中,微处理器22是两个协作工作的R4400微处理机器(由Silicon Graghic公司MTI分公司制造)。
当然,如果PIC可以完全扫描,那么出现在PBus的一些控制线上的扫描波动仍可以影响微处理器22。例如,如果,触发器正常输出一个RDY信号后,在扫描运行经过该触发器的扫描通路时,RDY输出将以扫描通路内的存储元件位模式方式波动。因此,为了避免发生不希望有的操作,一些存储元件不能直接与PBus相连。然而,需要一些装置测试这些存储元件。
表1示出了几个PIC输出到PBus上的信号,它们在扫描期间必须保持(“*”表示信号低电平有效)。
信号 值Validln*FExtRqust*FRdRdy*FWrRDY*FIvdAck*TIvdErr*FValidIn*是PBus线,在此线上PIC指示由PIC传送到PBus上的数据有效。EctRqust*是PBus,在此线上,PIC向微处理器发送一个信号。RdRly*和WrRDY*前面已经讨论过。InvAck*和InvErr*是PBus线,在此线上,PIC分别指示微处理器发出的数据无效/数据更新请求是否成功完成。
在扫描操作期间,由于这些线上的信号是微处理器和PIC之间的PBus信号交换规约的一部分,所以PIC必须保持这些位线上的状态。然而,仅仅将影响这些线的存储元件脱离扫描通路是不够的,这是由于读或写这些线也将影响诊断。
图4示出了必要时在进行扫描期间同时提供固定的输出时如何全面地扫描PIC。图4示出了一位存储元件80、N位存储元件82、M位锁存器81、K位2对1多路复用器86、变换器90和N输出驱动器92。对于不同的实施例,其实际的结构是可以变化的,但必要特征是相同的。例如,为清楚起见,存储元件82被画出单个器件,在一些PIC中,存储元件82分散在整个PIC中。
在图4的例子中,存储元件80将在PIC正常操作期间输出的输出允许信号输出至锁存器84,锁存器84在施加到其允许(E)输入端上的信号为低(有效)时,将其输入输出至输出驱动器92的允许输入端。存储元件82将N信号输出至多路复用器86(K信号)或直接输出至输出驱动器92(M信号)。当在多路复用器86的选择(S)输入端没有建立选择信号(即为假或“0”)时,进入多路复用器86的K信号是耦合到PBus的控制线。当锁存器84的E输入端为假时,锁存器84将其输入锁存在输出端上,当建立了多路复用器86的S输入信号(选择输入端设置成“1”)时,多路复用器86从其“1”输入端输入预先选择的一组常数,并将它们输出至PBus的K条控制线上。
现在描述图4所示的电路的使用,在扫描期间,PBus不应有效。因此,扫描期间被驱动的任何PBus应当更多路复用器86输入的K线中的一条。表1所示的信号的例子,这些信号值在扫描期间总是相等的。因此,表1的第一列列出了存储元件82到多路复用器86“0”输入端的K线上的一部分信号,第二列示出了施加到多路复用器86“1”输入端上的常数。
在PIC中,至少一个存储元件(触发器)包含有一位,以指示PIC是否是当前总线主控器。作为图示,假设该位存储存储在元件80中。在扫描开始时,扫描信号线被设置成真,使锁存器84的E输入端变为假,将该位锁存在与输出驱动器92的允许输入端连接的线94上。顺便提一下,允许输入端可以向输出驱动器92的各位扇出(fanout)。另外,K常数位也输出到PBus上。
对于图4的结构,除了锁存器84外,PIC的所有存储元件均可扫描。由于在进行扫描时锁存器84仅仅反射存储元件80中的内容,因此,这并不是一个问题。请注意,存储元件80和82是可扫描的。图4示出了这些元件,它们在扫描通路上。扫描通路从Mbus一直运行到扫描通路上的各存储元件,而存储元件80和82可以处于扫描通路的任意位置上。另外,为了能进行全面的扫描,由于状态机52至少包含三位存储器以记录当前状态(当前状态是6个值之一),所以其本身也是可扫描的。
上面描述的描述仅仅是例子,并不是限制。本技术领域的熟练人员看了揭示的内容可以对本发明的许多改动就变得很明显了。因此,本发明的范围不应参照上述说明进行限定,而应参照所附的权利要求书进行限定。
权利要求
1.一种诊断系统,用于诊断数字计算机内的电路元件的状态,该计算机内的微处理器的内部状态不能用诊断系统进行控制,其特征在于诊断系统包含多个可扫描处理器电路;通过处理器总线连接到微处理器上、并也连接到所述多个可扫描处理器电路上的处理器接口电路,其中,所述处理器接口电路使用预定的总线规约经所述处理器总线与微处理器部线相连;与所述多个可扫描处理器电路和所述处理器接口电路相连的扫描控制器,其中,所述扫描控制器能读出和改变所述多个可扫描处理器电路和所述处理器接口电路的内部状态;由所述扫描控制器向所述处理器接口电路提供维持请求信号的第一信号装置;由所述处理器接口电路向所述扫描控制器提供维持准许信号的第二信号装置;和在所述处理器接口电路内的与所述处理器总线相连的装置,用于所述处理器接口电路的内部状态的改变违反了所述预定的总线规约时不建立所述的维持准许信号。
2.如权利要求1所述的系统,其特征在于,它进一步包含在所述处理器接口电路和所述可扫描处理器电路之间的内部总线;在所述处理器接口电路内的跟踪诊断状态的第一状态机;在所述处理器接口电路内的指示还未建立所述处理器总线的第二状态机,所述第二状态机由所述第一状态机的第一信号控制,所述第一状态机的第一信号指示所述诊断状态在所述处理器总线空闲之后也变成空闲状态;和在所述处理器接口电路内的指示所述内部总线尚未建立的第三状态,所述第三状态机由所述第一状态机的第二信号控制,所述第一状态机的第二信号指示在所述内部总线空闲之后所述诊断状态进入空闲状态。
3.如权利要求1所述的系统,其特征在于,所述维持请求信号包含请求信号和请求类型信号,所述维持类型信号请求扫描或者总线步进,所述处理器接口电路包含响应所述维持类型信号的扫描逻辑电路和总线步进逻辑电路。
4.如权利要求1所述的系统,其特征在于,所述多个可扫描处理器电路、所述处理器接口电路和所述扫描控制器是独立的集成电路芯片,安装在带有微处理器的处理器板上。
5.一种诊断可扫描电路的方法,所述可扫描电路连接在包括不可扫描的电路元件的电路内,其特征在于,所述方法包括用一已知的接口将不可扫描的电路元件与可扫描元件隔开,所述已知的接口把不可扫描的电路元件连接到可扫描接口元件上;建立第一信号,请求诊断,所述第一信号输入到所述可扫描接口元件上;在处理的总线周期内等待完成所述已知接口;在接口处于一固定状态期间,保持由可扫描的接口元件输出的控制信号,所述的固定状态是不可扫描电路元件的这样选择的一个状态,使得在扫描所述可扫描接口元件时,所述接口上的不固定的信号不是不受控制地影响不可扫描电路元件的状态。
6.一种具有可扫描处理器电路和非可扫描微处理器的数字处理器系统,其特征在包含第一逻辑电路,处理器总线具有进行包含总线步进的预定的信号交换的预定的总线规约,所述处理器总线把微处理器连接到可扫描处理器电路上,所述第一逻辑电路与可扫描处理器接口电路相连,所述可扫描处理器接口电路与所述处理器总线相连,所述第一逻辑电路对处理器总线进行总线步进,以使所述可扫描处理器电路可在总线步进之间被扫描,而不违反所述总线规约;第二逻辑电路,与可扫描处理器电路相连,至少使一个扫描电路单步步进;和第三逻辑电路,与第一和第二逻辑电路相连,使所述第一和第二逻辑电路可以包括在通过可扫描处理器电路的扫描通路内。
全文摘要
本发明描述了一种诊断电路元件状态的诊断系统,可以扫描可扫描电路而不干扰违反总线规约的不可扫描电路的状态,不可扫描器件连接在该总线上。处理器接口电路也是可扫描的,它包括对总线起作用的存储元件,防止在总线被使用时进行扫描。通过使用从扫描控制输出到处理器接口电路的维持请求信号和从处理器接口电路输出到扫描控制器的一个或多个维持准许信号来防止扫描操作。
文档编号G06F11/22GK1102895SQ9410814
公开日1995年5月24日 申请日期1994年7月1日 优先权日1993年7月1日
发明者米赞·穆罕默德·拉赫曼, 弗雷德·C·萨贝尼克, 杰夫·A·斯普劳斯 申请人:协力计算机股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1