专利名称:微处理器以及微处理器的处理方法
技术领域:
本发明涉及一种微处理器,用于根据在微处理器的复位之后执行的测试程序来验证实际机器中的内部功能,以及涉及该微处理器的处理方法。
背景技术:
在现有的微处理器中,在微处理器被复位之后执行引导程序。该引导程序按照一种方式来执行,使得在每个微处理器中预先准备的一个引导地址被设置在一个程序计数器中,并且根据该引导地址,该引导程序被从例如引导ROM这样的存储器装载到微处理器中。因此,在微处理器的复位之后执行的引导程序取决于为每个微处理器固定设置的引导地址。另外,根据该引导地址而被存取的存储器的属性也被固定。
根据上述这种现有的微处理器的发展估计,在一些情况中,尽管上述引导程序在微处理器的复位之后执行,但是由于在微处理器的功能中产生的问题导致不能够进入正常操作状态。在这种情况中,常规微处理器没有用于在该程序中设置另一个地址以在复位之后取代该引导地址的机制,因此不可能验证该微处理器的功能。具体来说,不可能通过设置一个测试地址来访问在该程序计数器中的测试程序以取代该引导地址而独立地验证微处理器的各种独立功能,该测试程序被准备用于在复位之后验证在实际机器中的微处理器的功能,并且通过根据设置的测试地址而访问要被执行的测试程序。
如上文所述,该常规微处理器不能够在复位之后设置除了在该程序计数器中的引导地址之外的一个地址,因此不能够在复位之后执行除了引导程序之外的其它程序。因此,如果在微处理器中出现问题,则不可能通过在微处理器的复位之后执行测试程序而验证微处理器的功能。
发明内容
本发明的一个方面是提供一种具有内置测试的微处理器,其中包括a)寄存器,用于保存测试程序的测试地址;b)下一个地址产生逻辑电路,用于根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;c)第一多路复用器,用于根据测试模式信号选择指定引导程序的引导地址和测试地址的任何一个地址;d)第二多路复用器,用于根据一个复位信号选择被安排在下一步执行的命令的命令地址和由第一多路复用器所选择的地址中的任何一个地址;以及e)程序计数器,用于保存由第二多路复用器所选择的地址,并且用于把所保存的地址输出到下一个地址产生逻辑电路,作为要被接着执行的命令的命令地址。
本发明的第二方面是提供一种具有内置测试的微处理器,其中包括a)缓冲存储器(cash memory),用于存储要在微处理器的正常操作中执行的命令,以及存储在测试操作模式中的测试程序;b)下一个地址产生逻辑电路,用于根据要被接着执行的一个命令的命令地址,产生要被安排在下一步执行的一个命令的命令地址;c)第一多路复用器,用于根据测试模式信号选择指定引导程序的引导地址和作为缓冲存储器的开始地址的测试地址中的任何一个地址;d)第二多路复用器,用于根据一个复位信号选择被安排在下一步执行的命令的命令地址和由第一多路复用器所选择的地址中的任何一个地址;以及e)程序计数器,用于保存由第二多路复用器所选择的地址,并且用于把所保存的地址输出到下一个地址产生逻辑电路,作为要被接着执行的命令的命令地址。
本发明的第三方面是提供一种具有内置测试的微处理器的处理方法,其中包括a)根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;b)根据测试模式信号选择指定引导程序的引导地址和测试程序的测试地址中的任何一个地址;c)根据一个复位信号选择被安排在下一步执行的命令的命令地址和所选择的地址中的任何一个地址;以及d)把根据复位信号选择的地址输出,作为要被接着执行的命令的命令地址。
本发明的第四方面是提供一种具有内置测试的微处理器的处理方法,其中包括a)在正常操作中在缓冲存储器内存储要执行的命令,以及在测试操作模式中在缓冲存储器内存储测试程序;b)根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;c)根据测试模式信号选择指定引导程序的引导地址和测试程序的测试地址中的任何一个地址;d)根据一个复位信号选择被安排在下一步执行的命令的命令地址和根据测试模式信号所选择的地址中的任何一个地址;以及e)把根据复位信号选择的地址输出,作为要被接着执行的命令的命令地址。
图1为示出根据本发明第一实施例的微处理器的结构的示意图。
图2为示出在图1中所示的一个核心处理器内部的PC单元的结构的示意图。
图3为示出根据本发明第一实施例的引导ROM的地址空间的示意图。
图4为示出根据本发明第一实施例的微处理器的处理方法的流程图。
图5为示出根据本发明第二实施例的微处理器的结构的示意图。
图6为示出图5中所示的核心处理器内部的PC单元的结构的示意图。
图7为示出根据本发明第二实施例的微处理器的处理方法的流程图。
具体实施例方式
下面参照附图描述本发明的各个实施例。在下文的附图描述中,相同或类似的参照标号被用于相同或类似的部件。但是,该附图是示意性的,并且应当注意每个测量值的比例与实际情况不同。
(第一实施例)如图1中所示,根据本发明第一实施例的微处理器20包括要作为微处理器20的控制中心的核心处理器21;用于控制微处理器20和引导ROM25之间的存储器存取的ROM控制器22;具有各种功能的多个外围设备23a、23b、23c...;以及用于连接核心处理器21、ROM控制器22和外围设备23a、23b、23c…的系统总线24。另外,微处理器20的外部具有连接到ROM控制器22的引导ROM25;以及连接到外围设备23a、23b、23c…的外部设备26。在这种结构中,当微处理器20被在正常操作模式中复位时,引导ROM25被在ROM控制器22的控制下而选择。然后,存储在引导ROM25中的引导程序的程序31被读入到核心处理器21,从而执行引导处理。
图2为示出在图1中所示的核心处理器21内部的PC单元10的结构的示意图。PC单元10在核心处理器21中执行命令地址的产生控制,如图2中所示,其中包括程序计数器(PC)11、下一个地址产生逻辑电路12、复位控制多路复用器13、复位模式多路复用器14以及测试模式地址保存寄存器(TA)15。
程序计数器11保存要被接着执行的一个命令的命令地址。所保存的命令地址被与用于访问要接着执行的命令的配置一同传送到下一个地址产生逻辑电路12。根据从程序计数器11传送的要接着执行的命令地址,下一个地址产生逻辑电路12产生被安排在下一步执行的命令的命令地址。所产生的命令地址被传送到复位控制多路复用器13。复位控制多路复用器13接收从下一个地址产生逻辑电路12传送的命令地址或者在复位模式多路复用器14中选择的地址,并且根据微处理器20的复位信号选择从外部传送的这些地址中的任何一个地址。被选择的地址被传送到程序计数器11。复位模式多路复用器14接收用于在正常操作模式中复位微处理器20的过程中启动引导程序的引导地址或者被保留在测试模式地址保存寄存器15中的测试地址,并且根据从外部传送的测试模式信号选择这些地址中的任何一个地址。被选择的地址被传送到复位控制多路复用器13。在测试操作模式中的微处理器复位之前,测试模式地址保存寄存器15预先设置从外部传送的测试程序的一个测试地址,并且保存如此设置的测试地址。
如图3中所示,引导ROM25存储引导程序31和测试程序32。测试程序32被存储在存储引导程序31的引导ROM25的剩余可用空间中,如图3中所示。作为引导程序31的开始例子的引导地址在引导ROM25的地址空间中被设置为一个固定值。该引导地址被传送到复位模式多路复用器14。测试程序32包括多个测试程序32a、32b、32c… 。作为各种测试程序32a、32b、32c...,假设各种测试程序例如包括用于测试计算单元的功能中的加法处理的测试程序;用于测试计算单元的整体功能的测试程序;用于测试包括存储器的部分或所有外围设备23a、23b、23c...和功能块的测试程序;等等。当执行各个程序32a、32b、32c...时,各个开始地址,对应于引导ROM25的地址空间中的测试地址1、测试地址2、测试地址3…被从外部传送到测试模式地址保存寄存器15,并且保存在其中。保存引导程序31和测试程序32的引导ROM25可以根据测试程序32的内容由另一个引导ROM适当地替换。另外,当仅仅执行测试时,引导ROM25可以仅仅由存储测试程序32的存储器所替换。
接着,图4为示出根据本发明的第一实施例的微处理器20的处理方法的流程图。
(a)首先,在步骤S11,根据要接着执行的一个命令的命令地址提取并执行一个命令,被保存在程序计数器11中的命令地址以及要被接着执行的命令的命令地址被进一步传送到下一个地址产生逻辑电路12。下一个地址产生逻辑电路12根据从程序计数器11传送的要被接着执行的命令的命令地址产生被安排在下一步执行的命令的命令地址。
(b)接着,在步骤S12中,根据测试模式信号,复位模式多路复用器14选择如下地址中的任何一个地址用于指定引导程序的引导地址;以及测试程序的测试地址。具体来说,在测试模式信号无效的过程中的正常操作模式中的处理器复位之后选择该引导地址;同时,在测试模式信号有效的过程中的测试操作模式中,在复位之后选择测试地址。
(c)接着,在步骤S13,根据复位信号,复位控制多路复用器13选择如下地址中的任何一个地址被安排在下一步执行的命令的命令地址;由下一个地址产生逻辑电路12在步骤S11所产生的命令地址;以及由复位模式多路复用器14所选择的地址。具体来说,在正常操作模式或者在测试操作模式中在微处理器复位之后,复位控制多路复用器13选择根据测试模式信号而选择的地址;同时,在复位被释放之后的正常操作中,复位控制多路复用器13选择被安排在下一步执行的命令的命令地址。
(d)然后,在步骤S14中,程序计数器11保存由复位控制多路复用器13所选择的地址,并且把该地址输出到下一个地址产生逻辑电路12,作为要被接着执行的命令的命令地址。在此,在引导地址被保存在程序计数器11中的情况中,存储在引导ROM25中的引导程序31被根据所保存的引导地址而读入到核心处理器21,并且执行引导程序。同时,当测试地址被保存在程序计数器11中时,存储在引导ROM25中的测试程序32被根据所保存的测试地址而读入到核心处理器21,并且执行测试程序。
接着,将分别描述根据本发明的第一实施例的微处理器20的正常操作模式中的复位操作、在复位被释放之后的正常操作、以及在测试操作模式中的复位操作。
当测试模式信号处于无效状态时在正常操作模式的复位操作中,复位信号变为有效,然后传送到微处理器20。当微处理器20被复位时,由复位模式多路复用器14选择引导地址。被选择的引导地址然后被复位控制多路复用器13进一步选择,并且所选择的引导地址被传送到程序计数器11并且保存在其中。然后,根据在程序计数器11中保存的引导地址,存储在引导ROM25中的引导程序31被读入到核心处理器21以被执行,从而执行该引导程序。
在复位信号变为有效并且微处理器的复位被释放之后的正常操作中,在下一个地址产生逻辑电路12中产生的命令地址被复位控制多路复用器13所选择。所选择的命令地址被传送到程序计数器11,并且保存在其中。然后,根据被保存在程序计数器11中的命令地址,提取并执行该命令。然后,要被下一个执行的命令的命令地址被在下一个地址产生逻辑电路12中产生,并且该命令地址被传送到程序计数器11,并且保存在其中。上述操作被重复执行,从而执行一系列命令。
在测试操作模式的复位操作中,当测试模式信号处于有效状态时,首先,在执行复位操作之前,将作为要在复位之后执行的测试程序的开始地址的测试地址被预先从外部传送到测试模式地址保存寄存器15,并且被保存在其中。在这种状态中,当测试模式信号变为有效并且被传送到复位模式多路复用器14时,保存在测试模式地址保存寄存器15中的测试地址被复位模式多路复用器14所选择。所选择的测试地址被传送到复位控制多路复用器13。然后,当复位信号为有效并且被传送到复位控制多路复用器13时,该测试地址被复位控制多路复用器13所选择。所选择的测试地址被传送到程序计数器11,并且被保存在其中。然后,根据程序计数器11中保存的测试地址,存储在引导ROM25中的测试程序32被读入核心处理器21,并且被执行。因此,根据所执行的测试程序32的内容,测试微处理器的功能。
在根据本发明第一实施例的微处理器中,可以在该微处理器的复位之后由实际机器中的程序独立地验证该微处理器的各个独立功能。
(第二实施例)图5中所示的根据本发明第二实施例的微处理器40不同于根据第一实施例的微处理器20之处在于该核心处理器41包括一个命令缓冲存储器42。该命令缓冲存储器42存储要在正常模式中执行的命令以及存储要在测试操作模式中执行的测试程序32。能够执行用于在测试操作模式中直接测试命令缓冲存储器42的直接存储器测试(DMT)的一个DMT接口43连接到该命令缓冲存储器42。微处理器40具有一种结构,其中被提供在微处理器40的外部的测试器27被连接到DMT接口43,其中从该测试器27可以通过DMT接口43访问该命令缓冲存储器42。
图6为示出在图5中所示的核心处理器41内部的一个PC单元51的结构的示意图。在图6中,与图2中所示的PC单元10相比,该PC单元51被配置如下,取代图2中所示的测试模式地址保存寄存器15,一个测试地址被作为固定值传送到复位模式多路复用器52,被作为固定值而传送的引导地址或测试地址被复位模式多路复用器52所选择,并且被选择的地址被传送到复位控制多路复用器13。除了上文所述之外,PC单元51的结构类似于图2中所示的PC单元10。
请注意,在根据本发明第二实施例的微处理器40中,如图6中所示,测试地址被作为固定值传送到复位模式多路复用器52。但是,如图2中所示,取而代之的是可以提供用于保存测试地址的测试模式地址保存寄存器15。
接着,图7为示出根据本发明第二实施例的微处理器40的处理方法的流程图。
(a)首先,在步骤S21,要被在测试操作模式中执行的测试程序32被从外部提供的测试器27通过DMT接口43写入到命令缓冲存储器42的预定地址空间,然后命令缓冲存储器42变为有效。请注意,在测试操作模式中,DMT接口43执行命令缓冲存储器42的直接存储器测试。
(b)接着,在步骤S22中,提供并执行根据要接着执行的一个命令的命令地址的命令,该命令地址被保存在程序计数器11中。然后,要被接着执行的命令的命令地址被进一步传送到下一个地址产生逻辑电路12。下一个地址产生逻辑电路12根据从程序计数器11传送的要被接着执行的命令的命令地址产生被安排在下一步执行的命令的命令地址。
(c)接着,在步骤S23中,根据测试模式信号,复位模式多路复用器52选择如下地址中的任何一个地址用于指定引导程序的引导地址;以及作为命令缓冲存储器42的开始地址的测试地址。具体来说,在测试模式信号无效的过程中的正常操作模式中的处理器复位之后选择该引导地址;同时,在测试模式信号有效的过程中的测试操作模式中,在复位之后选择测试地址。
(d)接着,在步骤S24,根据复位信号,复位控制多路复用器13选择如下地址中的任何一个地址被安排在下一步执行的命令的命令地址;由下一个地址产生逻辑电路12在步骤S11所产生的命令地址;以及由复位模式多路复用器52所选择的地址。具体来说,在正常操作模式或者在测试操作模式中在微处理器复位之后,复位控制多路复用器13选择根据测试模式信号而选择的地址;同时,在复位被释放之后的正常操作中,复位控制多路复用器13选择被安排在下一步执行的命令的命令地址。
(e)然后,在步骤S25中,程序计数器11保存由复位控制多路复用器13所选择的地址,并且把该地址输出到下一个地址产生逻辑电路12,作为要被接着执行的命令的命令地址。在此,在引导地址被堡存在程序计数器11中的情况中,存储在引导ROM25中的引导程序31被根据所保存的引导地址而读入到核心处理器21,并且执行引导程序。同时,当测试地址被保存在程序计数器11中时,在步骤S21写入到命令缓冲存储器42中的测试程序32被根据所保存的测试地址而读入到核心处理器21,并且执行该测试程序。
接着,将描述根据本发明第二实施例的微处理器40的测试操作模式中的复位操作。请注意,在根据本发明第二实施例的微处理器40的正常操作模式中的复位操作和在复位被释放之后的正常操作类似于上述根据本发明第一实施例的微处理器20的操作,因此将省略对它们的描述。
当测试模式信号处于有效状态时,在微处理器的测试操作模式中的复位操作中,首先要被执行的测试程序32被从外部提供的测试器27通过DMT接口43写入到核心处理器41中的命令缓冲存储器42的预定地址空间,然后命令缓冲存储器42变为有效。从而,当测试模式信号变为有效并且传送到复位模式多路复用器52时,由复位模式多路复用器52选择复位地址。然后,当复位信号为有效并且被传送到复位控制多路复用器13时,由复位控制多路复用器13选择测试地址。所选择的测试地址被传送到程序计数器11,并且被保存在其中。该测试地址被设置为写入在命令缓冲存储器42中的测试程序32的开始地址。因此,根据在程序计数器11中保存的测试地址,写入到命令缓冲存储器42的测试程序32被从命令缓冲存储器42和外部读出。
在根据本发明第二实施例的微处理器中,可以把测试程序32读入核心处理器41,并且执行测试程序,而不用通过ROM控制器22或者通过系统总线24访问引导ROM25。因此,即使当在引导ROM25和ROM控制器22中出现问题时,也可以验证在实际机器中的微处理器的功能。另外,在实际机器中的功能验证的核心处理器的独立性大大增加,使得内置的测试(BIT)具有较高的独立性。
(其它实施例)本领域的技术人员可以根据本发明的思想作出各种变型而不脱离其范围。
本发明的装置可以由各种变型而实现,而不脱离由主权项所给出的本发明的精神和范围。相应地,包含在本申请中的描述被用于说明性的描述,而不被认为是对本发明的限制。
权利要求
1.一种具有内置测试的微处理器,其中包括寄存器,用于保存测试程序的测试地址;下一个地址产生逻辑电路,用于根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;第一多路复用器,用于根据测试模式信号选择指定引导程序的引导地址和测试地址的任何一个地址;第二多路复用器,用于根据一个复位信号选择被安排在下一步执行的命令的命令地址和由第一多路复用器所选择的地址中的任何一个地址;以及程序计数器,用于保存由第二多路复用器所选择的地址,并且用于把所保存的地址输出到下一个地址产生逻辑电路,作为要被接着执行的命令的命令地址。
2.根据权利要求1所述的微处理器,其中第一多路复用器在正常操作模式中的处理器复位之后选择引导地址,并且在测试操作模式中的复位之后选择测试地址。
3.根据权利要求1所述的微处理器,其中第二多路复用器选择在正常操作模式或测试操作模式中的处理器复位之后由第一多路复用器所选择的地址,并且在复位被释放之后的处理器的正常操作中选择被安排在下一步执行的命令的命令地址。
4.一种具有内置测试的微处理器,其中包括缓冲存储器,用于存储要在微处理器的正常操作中执行的命令,以及存储在测试操作模式中的测试程序;下一个地址产生逻辑电路,用于根据要被接着执行的一个命令的命令地址,产生要被安排在下一步执行的一个命令的命令地址;第一多路复用器,用于根据测试模式信号选择指定引导程序的引导地址和作为缓冲存储器的开始地址的测试地址中的任何一个地址;第二多路复用器,用于根据一个复位信号选择被安排在下一步执行的命令的命令地址和由第一多路复用器所选择的地址中的任何一个地址;以及程序计数器,用于保存由第二多路复用器所选择的地址,并且用于把所保存的地址输出到下一个地址产生逻辑电路,作为要被接着执行的命令的命令地址。
5.根据权利要求4所述的微处理器,其中进一步包括用于在测试操作模式中执行缓冲存储器的直接存储器测试的接口。
6.根据权利要求4所述的微处理器,其中第一多路复用器在正常操作模式中的处理器复位之后选择引导地址,并且在测试操作模式中的复位之后选择测试地址。
7.根据权利要求4所述的微处理器,其中第二多路复用器选择在正常操作模式或测试操作模式中的处理器复位之后由第一多路复用器所选择的地址,并且在复位被释放之后的处理器的正常操作中选择被安排在下一步执行的命令的命令地址。
8.一种具有内置测试的微处理器的处理方法,其中包括根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;根据测试模式信号选择指定引导程序的引导地址和测试程序的测试地址中的任何一个地址;根据一个复位信号选择被安排在下一步执行的命令的命令地址和所选择的地址中的任何一个地址;以及把根据复位信号选择的地址输出,作为要被接着执行的命令的命令地址。
9.根据权利要求8所述的方法,其中在基于测试模式信号的地址选择中,在正常操作模式中的微处理器复位之后选择引导地址,并且在测试操作模式中的复位之后选择测试地址。
10.根据权利要求8所述的方法,其中在基于复位信号的地址选择中,在正常操作模式或测试操作模式中的处理器复位之后选择基于测试模式信号而选择的地址,并且在复位被释放之后的处理器正常操作模式中选择被安排在下一步执行的命令的命令地址。
11.一种具有内置测试的微处理器的处理方法,其中包括在正常操作中在缓冲存储器内存储要执行的命令,以及在测试操作模式中在缓冲存储器内存储测试程序;根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;根据测试模式信号选择指定引导程序的引导地址和测试程序的测试地址中的任何一个地址;根据一个复位信号选择被安排在下一步执行的命令的命令地址和根据测试模式信号所选择的地址中的任何一个地址;以及把根据复位信号选择的地址输出,作为要被接着执行的命令的命令地址。
12.根据权利要求11所述的方法,其中进一步包括在测试操作模式中执行缓冲存储器的直接存储器测试。
13.根据权利要求11所述的方法,其中在基于测试模式信号的地址选择中,在正常操作模式中的微处理器复位之后选择引导地址,并且在测试操作模式中的复位之后选择测试地址。
14.根据权利要求11所述的方法,其中在基于复位信号的地址选择中,在正常操作模式或测试操作模式中的处理器复位之后选择基于测试模式信号而选择的地址,并且在复位被释放之后的处理器正常操作模式中选择被安排在下一步执行的命令的命令地址。
全文摘要
一种具有内置测试的微处理器,其中包括寄存器,用于保存测试程序的测试地址;下一个地址产生逻辑电路,用于根据要被接着执行的一个命令的命令地址,产生被安排在下一步执行的一个命令的命令地址;第一多路复用器,用于根据测试模式信号选择指定引导程序的引导地址和测试地址的任何一个地址;第二多路复用器,用于根据一个复位信号选择被安排在下一步执行的命令的命令地址和由第一多路复用器所选择的地址中的任何一个地址;以及程序计数器,用于保存由第二多路复用器所选择的地址,并且用于把所保存的地址输出到下一个地址产生逻辑电路,作为要被接着执行的命令的命令地址。
文档编号G06F9/00GK1430141SQ0215933
公开日2003年7月16日 申请日期2002年12月26日 优先权日2001年12月26日
发明者畠山努 申请人:株式会社东芝