错误处理方法和信息处理装置的制作方法

文档序号:6611654阅读:260来源:国知局
专利名称:错误处理方法和信息处理装置的制作方法
技术领域
本发明一般地涉及错误处理方法和信息处理装置,更具体地,涉及用 于处理在指令总线或数据总线中生成的总线错误的错误处理方法,以及配备有具有哈佛结构(Harvard architecture)的CPU等的信息处理装置。
技术背景对于在车辆等中的应用,要求为微处理器的CPU中的存储器部分提供 奇偶校验或者ECC校验功能。在传统的CPU中,如果在总线访问(bus access)的过程中生成了错误,则无法将正确的指令代码提供到CPU,并 且CPU不得不停止工作。避免CPU这样停止工作的一种方法是当在总线 访问的过程中生成错误时向CPU输入外部中断,但是根据该方法,有可能 在转移到中断例程(interrupt routine)之前执行了产生总线错误的指令代 码。另外,因为CPU并不总是执行如转移指令的情况中的进行总线访问的 指令代码,所以有可能生成毫无意义的中断。此外,在CPU具有指令总线和数据总线相分立的哈佛结构的情况下, 在指令总线上生成针对某指令的总线错误之后,有可能生成针对在该指令 之前执行的指令的数据总线错误。由于这个原因,有必要优先于指令总线 错误来处理数据总线错误。例如,由日本富士通有限公司制造的FR系列 精简指令集计算机(RISC)微型计算机是配备了具有哈佛结构的CPU的 微处理器的一个示例。在这样的CPU中,如果生成了未定义的指令,则指 令译码器部分的指令定序器(sequencer)中的异常处理器(exceptionhandler)被启动,从而通过异常中断陷阱(Exception Interrupt Trap, EIT)过程,生成用于获取未定义的中断例程的起始地址的指令以及用于 保存指示CPU状态的处理器状态(Processor Status, PS)寄存器以及程序 计数(ProgramCounter, PC)寄存器的内容的指令,并转移到中断例程。 图1是示出了传统CPU的重要部分的结构的系统框图。图l所示的传统CPU—般地包括获取部分(F部分)101、译码部分(D部分)102、执 行部分(E部分)1Q3、存储器存取部分(M部分)104以及通用寄存器部 分105。F部分101执行指令获取,以使用内部指令总线Ibus来获得指令代 码。所获得的指令代码被设置在中间寄存器Tf中,并且此状态中的地址被 设置在中间寄存器Tia—f中。F部分101包括Ibus访问控制器111。D部分102解释所获得的指令代码,并为将由E部分103执行的运算 (或计算)和运算模式(加法、减法等)准备必要的数据。更具体地,从 所获得的指令代码中译码出在E部分103中的运算单元(ALU) 132的运 算模式,并将用于所述的运算的寄存器值设置在中间寄存器Ta和Tb中。 当经由内部数据总线Dbus来写入时,将被写入的值被设置在中间寄存器 Tdd中。当由外部中断所引起的内部错误、未定义的指令等被生成时,指 令定序器121内的异常处理器122转移到中断例程,因此,D部分102自 动地提供用于读取中断向量表并存储通用寄存器部分105的PS寄存器和 PC寄存器的内容的指令。在指令定序器121中提供了译码器123和多路转 换器124。 D部分102包括用于锁存由指令定序器121译码得到的运算模 式的中间寄存器Tdec、矩阵(或选择器)125和多路转换器126。图2是用于说明传统CPU的D部分102中的指令定序器121的操作 的流程图。在新获得指令代码之后,该指令代码被输入到D部分102 (步 骤Sl),并且该指令代码被译码(步骤S2)。如果作为译码结果的指令 代码是正常的,则指令的运算模式和通用寄存器部分105的对于所述运算 有必要的内容被设置在中间寄存器Tdec、 Ta、 Tb和Tdd中,并且被提供 到E部分103 (步骤S3)。此后,在下一个周期中,下一个指令被输入并 且开始译码。如果译码结果是未定义指令或者外部中断,则从向量表中获得向量地 址,以使得转移到异常中断的例程,并且用于计算转移地址的运算模式和 通用寄存器部分105的对于运算有必要的内容被提供到E部分103 (步骤 S4)。因为向量表内的每一个地址的数据指向相应异常处理的起始地址,
所以使用向量表的技术通常被用作转移到异常处理的方法,并且每一个地 址的数据还被称作向量地址。在下一个周期中,用于存储PS寄存器的内 容的运算模式以及通用寄存器部分105的对于运算有必要的内容被提供到E部分103 (步骤S5)。此后,用于存储PC寄存器内容的运算模式和通 用寄存器部分105的对于运算有必要的内容被提供到E部分103 (步骤 S6)。步骤S4到S6形成了 EIT过程。此后,进行检查,以判断是否存在 其它中断或错误(步骤S7),如果不存在其它中断或错误(步骤S7中的 否),则对下一指令进行译码。另一方面,如果存在其它中断或错误(步 骤S7中的是),则重复通过EIT过程来进行的向量地址的获取。E部分103从D部分102接收运算模式信号和运算数据,并执行运 算。更具体地,E部分103执行指令运算,并将由运算单元132获得的结 果设置在中间寄存器Te中。如果由于指令的组合导致发生寄存器冒险 (register hazard),则E部分103使用寄存器旁路路线131直接从运算单 元132的输出来设置中间寄存器Ta或Tb和Tdd用来对E部分103进行输 入。E部分103包括利用D部分102内的中间寄存器Tdd的输出来设置的 中间寄存器Ted。M部分104从E部分103接收数据,并使用内部数据总线Dbus来进 行针对存储器部分的读和写。更具体地,M部分104进行用于指令运算结 果的存储器部分、通用寄存器部分105 (PC、 RO到R15)等的读和写。M 部分104包括中间寄存器Tia—m和Dbus访问控制器141。通用寄存器部分105形成CPU的内部寄存器,并包括PC寄存器、PS 寄存器、运算寄存器R0到R15以及多路转换器151。在图1中,ID表示指令代码,IA表示指令代码的地址,而iaccess、 irdy、 IRDY和ISZE分别表示指令代码的存取请求、指令代码的可用输 出、指令代码的可用输入和指令代码的大小。另外,DA、 DDout和DDin 分别表示数据地址、输出数据和输入数据。此外,daccess、 drdy、 DRDY 和DSIZE分别表示数据的存取请求、数据的就绪输出、数据的就绪输入和 数据的大小。指令的地址被存储在各部分101到104的中间寄存器Tia—f —Tia一dec
—Tia—e — Tia一m中。如果对于某指令,运算结果被设置在运算寄存器Ri (1=0到15)中,并且运算寄存器Ri将被用于下一个指令,则设置在运算 寄存器Ri中的运算结果将无法及时地到达D部分102。由于这个原因,提 供了允许将运算单元132的输出设置在中间寄存器Ta或Tb中的路线, 即,寄存器旁路路线131。按CPU获取指令的顺序来执行指令的处理。每输入一个时钟,就有一 个指令被顺序地传送到F部分101、 D部分102、 E部分103和M部分 104,并且CPU根据该指令来操作。如果指令I1被F部分101获得,并且 响应于下一个时钟,这个指令I1被传送到D部分102,则F部分101响应 于所述的下一时钟同时获得指令12。如图3到图8所示,这种操作被重 复,并且指令II到15的流水线处理被进行。图3是用于说明传统CPU的 操作的时序图。图4是用于说明图3所示的状态(1)的示图,图5是用于 说明图3所示的状态(2)的示图,图6是用于说明图3所示的状态(3) 的示图,图7是用于说明图3所示的状态(4)的示图,以及图8是用于说 明图3所示的状态(5)的示图。在图4到图8中,nop表示"不操作"。传统的CPU不具有总线错误输入装置。因此,如果在存储器部分中生 成诸如奇偶校验错误之类的错误,则无法从外部来准备CPU可执行的指 令,并且CPU停止工作。另外,如果CPU获得指令,检测出奇偶校验错 误,并使用外部中断来指示该奇偶校验错误的检出,则有可能执行产生总 线错误的指令。此外,即使CPU获取指令并检测出奇偶校验错误,当由于 转移指令等的执行而使得没有执行所获取的指令时,也将生成毫无意义的 中断。此外,如果在指令总线上生成总线错误,则随后将生成针对刚刚在 前的指令的数据总线错误,因此,有必要考虑处理的优先级顺序。例如,日本专利申请早期公开No. 6-242977提出了一种单片微处理 器,该单片微处理器被构造用于检测数据地址的奇偶校验错误。因此,根据具有哈佛结构的传统CPU,存在这样的一种问题很难对 在指令总线或数据总线上生成的总线错误进行适当的处理。发明内容因此,本发明的一般性目的是提供解决上述问题的新颖有用的错误处 理方法和信息处理装置。本发明的另一个更具体的目的是提供能够对在指令总线或数据总线上 生成的总线错误进行适当的处理的错误处理方法和信息处理装置。本发明的又一个目的是提供一种用于对在CPU的总线上生成的错误进 行处理的错误处理方法,该方法包括以下步骤(a)通过总线错误输入 部分向CPU输入在CPU的指令总线和数据总线中的至少一个上生成的总 线错误;(b)通过CPU的总线错误计数器部分来对总线错误计数;以及 (c)基于总线错误计数器部分的值来指定与CPU相耦合的存储器部分的区域。根据本发明的错误处理方法,可以对在指令总线或数据总线上生成 的总线错误进行适当的处理。本发明的又一个目的是提供一种信息处理装置,该装置包括CPU; 与CPU相耦合的存储器部分;总线错误输入部分,被配置用于向CPU输 入在CPU的指令总线和数据总线中的至少一个上生成的总线错误;总线错 误计数器部分,被配置用于对在CPU中生成的总线错误进行计数;以及指 定部分,被配置用于基于总线错误计数器部分的值来指定存储器部分的区 域。根据本发明的信息处理装置,可以对在指令总线或数据总线上生成的 总线错误进行适当的处理。当结合附图来阅读以下的详细描述时,本发明的其它目的和另外的特 征将变得一目了然。


图1是示出了传统CPU的重要部分的结构的系统框图;图2是用于说明在传统CPU的译码部分内的指令定序器的操作的流程图;图3是用于说明传统CPU的操作的时序图; 图4是用于说明状态(1)的示图; 图5是用于说明状态(2)的示图; 图6是用于说明状态(3)的示图; 图7是用于说明状态(4)的示图8是用于说明状态(5)的示图;图9是示出了应用本发明的微处理的重要部分的系统框图; 图IO是示出了存储器部分的结构的系统框图;图11是示出了存储器部分的写信号、读信号和控制信号之间的关系 的示图;图12是示出了本发明的第一实施例的重要部分的系统框图;图13是用于说明第一实施例的指令定序器的操作的流程图;图14是用于说明在指令总线上生成错误的情况下的操作的时序图;图15是用于说明在数据总线上生成错误的情况下的操作的时序图;图16是用于说明在EIT过程期间在数据总线上生成错误的情况下的 操作的时序图;图n是示出了本发明的第二实施例的重要部分的系统框图;图18是用于说明第二实施例的指令定序器的操作的流程图;图19是用于说明在指令总线上生成错误的情况下的操作的时序图;图20是用于说明在数据总线上生成错误的情况下的操作的时序图。
具体实施方式
在本发明中,提供了针对CPU的指令总线和数据总线的总线错误输入 部分或装置。另外,在CPU中提供了总线错误计数器部分或装置,并且该总线错误计数器部分或装置的内容被输出用于指定存储器部分的页面(page)。例如,如果在指令总线上生成总线错误,或者在数据总线上生 成总线错误,则当做出判断以转移到未定义指令的异常向量时,总线错误 计数器部分或装置被更新。当在指令总线上生成总线错误时,对未定义指 令的处理可以在确认在数据总线上针对刚刚在前的指令没有生成总线错误 之后再进行。当在数据总线上生成总线错误时,可以通过禁止通用寄存器 部分被未定义指令之后的指令进行设置,来进行对未定义指令的处理。当获得指令时在指令总线上生成奇偶校验错误的情况下,指令总线错 误信号被输入到指令总线错误输入部分或装置。因此,当做出判断以执行 生成错误的指令时,在这种情况下的CPU可以执行EIT过程,并转移到
错误处理的例程。另外,在数据总线上生成奇偶校验错误的情况下,数据 错误信号被输入到数据总线错误输入部分或装置。因此,在这种情况下可 以取消对随后的指令的处理。因此,可以通过硬件处理来处理针对在指令 总线和数据总线上生成的错误的错误处理的优先级顺序,从而使得没有必 要考虑通过软件处理的错误处理。通过参考图9及随后的附图,以下将给出对根据本发明的错误处理方 法和信息处理装置的实施例的说明。[第一实施例]图9是示出了应用本发明的微处理器的重要部分的系统框图。图9所示的微处理器1具有CPU 2和存储器部分3和4。例如,存储器部分3是 由闪存存储器(Flash)形成的,而存储器部分4是由RAM形成的。CPU 2和存储器部分3经由指令总线5连接,而CPU 2和存储器部分4经由数 据总线6连接。指令总线5包括指令存取大小信号线ISIZE、指令地址线 IA、指令数据线ID、就绪信号线IRDY、指令总线错误信号线IBERR以 及指令总线错误计数信号线IBER—CNTR。数据总线6包括数据存取大小 信号线DSIZE、数据地址线DA、数据线DD、就绪信号线DRDY、数据 总线错误信号线DBERR和数据总线错误计数信号线DBER—CNTR。指令 总线错误信号线IBERR和数据总线错误信号线DBERR形成了如上所述的 总线错误输入部分或装置。图10是示出了存储器部分3的结构的系统框图。存储器部分4可以具 有与存储器部分3相同的结构。存储器部分3 (或存储器部分4)具有逻 辑电路31、页存储器(page memory)部分32和奇偶校验器33。例如, 页存储器部分32由页存储器0到4组成。在图10中,AD表示指令或数 据的地址,R/WX表示读信号或写信号,CSOX到CSOX表示从逻辑电路 31输出的片选信号,IBERR/DBERR表示从奇偶校验器33输出的指令总 线错误信号或数据总线错误信号,以及IDout/DDout表示从页存储器部分 32输出的指令输出或数据输出。逻辑电路31基于错误计数信号 ER—CNTR、指令或数据的地址AD以及读或写信号R/WX来生成片选信 号CS0X到CS3X。当然,形成页存储器部分32的页存储器的数目并不限 于4。图ll是示出了读信号、写信号和控制信号的关系的示图,所述的控制信号即存储器部分3 (或存储器部分4)的片选信号CS0X到CS3X。在图 11中,符合"0"指示控制信号的激活逻辑电平,而符号"X"指示控制 信号的非激活逻辑电平。如图11所示,在写的过程中,针对存储器部分 32的所有页存储器0到3,指令或数据被写入。另一方面,在读的过程 中,指令或数据被从由错误计数信号ER—CNTR指示的页存储器部分32的 一个页存储器中读出。图12是示出了本发明的第一实施例的重要部分的系统框图。CPU2 — 般地包括获取部分(F部分)51、译码部分(D部分)52、执行部分(E 部分)53、存储器存取部分(M部分)54和通用寄存器部分55。F部分51执行指令获取以使用内部指令总线Ibus来获得指令代码。所 获得的指令代码被设置在中间寄存器Tf中,并且此状态中的地址被设置在 中间寄存器Tia—f中。F部分51包括Ibus访问控制器511。D部分52解释所获得的指令代码,并准备对将由E部分53执行的运 算(或计算)以及运算模式(加法、减法等)有必要的数据。更具体地, 在E部分53内的运算单元(ALU) 532的运算模式被从所获得的指令代码 中译码得到,并且将用于所述运算的寄存器值被设置在中间寄存器Ta和 Tb中。当经由内部数据总线Dbus来写入时,要被写入的值被设置在中间 寄存器Tdd中。当产生了由外部中断所导致的内部错误、未定义指令等 时,指令定序器521内的异常处理器522转移到中断例程,从而D部分52 自动地提供用于读取中断向量表和保存通用寄存器部分55的PS寄存器和 PC寄存器的内容的指令。指令定序器521内具有译码器523和多路转换器 524。 D部分52包括中间寄存器Tdec、矩阵(或选择器)525和多路转换 器526,其中中间寄存器Tdec用于锁存由指令定序器521译码的运算模 式。M部分54从E部分接收数据,并使用内部数据总线Dbus来针对存储 器部分进行读或写。更具体地,M部分54对存储器部分、通用寄存器部 分55 (PC, R0到R15)等进行针对指令运算结果的读或写。M部分54包
括中间寄存器Tia_m和Dbus访问控制器541 。通用寄存器部分55形成CPU2的内部寄存器,并包括PC寄存器、PS 寄存器、BEAR寄存器、BEDR寄存器、数据总线错误计数器 DBER_CNTR、指令总线错误计数器IBER—CNTR、运算寄存器R0到R15 以及多路转换器551。在本实施例中,PS寄存器存储指令总线错误IBER 和数据总线错误DBER,并指示总线错误BERR的生成。BEAR寄存器存 储总线错误BERR被生成时的地址。BEDR寄存器存储总线错误BERR被 生成时的数据。数据总线错误计数器DBER—CNTR对数据总线错误 DBERR进行计数,而指令总线错误计数器IBER—CNTR对指令总线错误 IBERR进行计数。指令总线错误计数器IBER—CNTR和数据总线错误计数 器DBER—CNTR形成总线错误计数器部分或装置。在图12中,ID表示指令代码,IA表示指令代码的地址,iberr表示内 部指令总线错误输出,IBERR表示来自图10所示的奇偶校验器33的指令 总线错误信号输入。另外,iaccess、 irdy、 IRDY和ISIZE分别表示指令代 码的内部存取请求、指令代码的内部就绪信号输出、来自存储器部分3的 指令代码的就绪信号输入和输出到存储器部分3的指令代码的大小。此 外,DA、 DDout和DDin分别表示数据地址、输出数据和输入数据,dberr 表示内部数据总线错误信号输出,而DBERR表示来自图IO所示的奇偶校 验器33的数据总线错误信号输入。此外,daccess、 drdy、 DRDY和 DSIZE分别表示数据的内部存取请求、数据的内部就绪信号输出、来自存 储器部分4的数据的就绪信号输入和输出到存储器部分4的数据的大小。指令的地址被接连存储在部分51到54的中间寄存器Tia—f —Tia—dec —Tia一e — Tia—m中。如果对于某指令,运算结果被设置在运算寄存器Ri (i二0到15)中,并且该运算寄存器Ri将被用于下一个指令,则设置在运 算寄存器Ri中的运算结果将不会及时地到达D部分52。由于这个原因, 提供了允许将运算单元532的输出设置在中间寄存器Ta或Tb中的路线, 即,寄存器旁路路线531。按CPU2获取指令的顺序来执行指令的处理。每输入一个时钟,每个 指令就被接连地传送到F部分51、 D部分52、 E部分53和M部分54,并
且CPU 2根据指令来操作。如果F部分51获得指令II,并且响应于下一 个时钟这个指令II被传送到D部分52,则F部分51响应于所述的下一时 钟同时获得指令12。这种操作被重复,从而进行对指令II到15的流水线 处理。在本实施例中,当生成指令总线错误IBERR或数据总线错误DBERR 时,执行总线错误处理以在不执行重试处理的情况下(除了其中执行EIT 过程的情况之外)对总线错误进行处理。首先,将给出对生成指令总线错误IBERR的情况的描述。在这种情况 下,当在指令获取过程中生成指令总线错误IBERR时,为了维持指令的连 续性,D部分52等待,直到确认在刚刚在前的指令处没有生成数据总线错 误DBERR。如果在刚刚在前的指令处没有生成数据总线错误DBERR,则 本实施例的异常处理器522在下一个周期中提供用于转移到未定义异常的 指令,随后,指令总线错误计数器IBER—CNTR的值被向上计数。接下来,将给出对生成数据总线错误DBERR的情况的描述。在这种 情况下,当在M部分54中生成数据总线错误DBERR时,在M部分54的 M阶段中禁止将值设置在通用寄存器部分55内的运算寄存器RO到R15 中。在生成数据总线错误DBERR的指令之后,在中断向量被读取前,在 运算寄存器ro到r15中的值的设置被禁止,直到在m部分54中对所获 得的指令的处理结束。在生成数据总线错误DBERR之后,异常处理器 522在下一个周期中提供EIT过程的指令。图13是用于说明本第一实施例的指令定序器521的操作的流程图。在 新获得指令代码之后,指令代码被输入到D部分52 (步骤Sll),然后指 令代码被译码(步骤S12)。如果译码结果为指令代码是正常的,则指令 的运算模式以及通用寄存器部分55中对运算有必要的内容被设置在中间 寄存器Tdec、 Ta、 Tb和Tdd中,并提供到E部分53 (步骤S13)。此 后,在下一周期中,下一个指令被输入并且译码被启动。如果译码结果是未定义的指令或外部中断,则执行根据总线错误的处 理或者根据所述中断的处理。如果生成指令总线错误IBERR,则处理前进 到步骤S14。如果生成数据总线错误DBERR,则处理前进到步骤S23或S26。如果数据总线错误DBERR是在向量存取的过程中被生成的,或者数 据总线错误DBERR是在保存PS寄存器的内容的过程中被生成的,则处理 前进到步骤S23。另一方面,如果数据总线错误DBERR是在保存PC寄存 器的内容的过程中被生成的,则处理前进到步骤S26。如果生成其它中 断,则处理前进到步骤S29。步骤S14判断数据总线错误输出dberr是否被输入了,并且如果在步 骤S14中的判断结果为否,则步骤S15插入不操作(NOP)。步骤S16对 判断数据总线错误输出dberr是否被输入,并且如果在步骤S16中的判断 结果为否,则步骤S17插入NOP。如果在步骤S14或步骤S16中的判断结 果为是,则处理返回到步骤S14。为了转移到异常中断的例程,g卩,指令 总线错误IBERR的中断例程,步骤S18从向量表获取向量地址,并向E 部分53提供用于计算地址的运算模式以及通用寄存器部分55的对于运算 有必要的内容。在下一周期中,步骤S19向E部分53提供用于保存PS寄 存器的内容的运算模式以及通用寄存器部分55的对于运算有必要的内 容。步骤S20向E部分53提供用于保存PC寄存器的内容的运算模式以及 通用寄存器55的对于运算有必要的内容。步骤S18到S20构成了 EIT过 程。此后,步骤S21判断数据总线错误输出dberr是否被输入。如果在步 骤S21中的判断结果为否,则步骤S22对是否存在其它中断或错误进行判 断。如果不存在其它中断或错误并且步骤S22的判断结果为否,则处理返 回到步骤Sll以对下一指令进行译码。如果步骤S21或S22中的判断结果 为是,则处理返回到步骤S14。为了转移到异常中断的例程,即数据总线错误DBERR的中断例程, 步骤S23从向量表获得向量地址,并向E部分53提供用于计算地址的运 算模式以及通用寄存器部分55的对于运算有必要的内容。在下一周期 中,步骤S24向E部分53提供用于保存PS寄存器的内容的运算模式以及 通用寄存器部分55的对于运算有必要的内容。步骤S25向E部分53提供 用于保存PC寄存器的内容的运算模式以及通用寄存器部分55的对于运算 有必要的内容,然后处理前进到步骤S21。步骤S23到步骤S25构成了 EIT过程。 为了转移到异常中断的例程,即数据总线错误DBERR的中断例程, 步骤S26从向量表获得向量地址,并向E部分53提供用于计算地址的运 算模式以及通用寄存器部分55的对于运算有必要的内容。步骤S27在下 一周期中插入NOP。步骤S28向E部分53提供用于保存PC寄存器的内 容的运算模式以及通用寄存器部分55的对于运算有必要的内容,然后处 理前进到步骤S21。步骤S26到步骤S28构成了 EIT过程。为了转移到其它中断的例程,步骤S293从向量表获得向量地址,并 向E部分53提供用于计算地址的运算模式以及通用寄存器部分55的对于 运算有必要的内容。在下一周期中,步骤S30向E部分53提供用于保存 PS寄存器的内容的运算模式以及通用寄存器部分55的对于运算有必要的 内容。步骤S31向E部分53提供用于保存PC寄存器的内容的运算模式以 及通用寄存器部分55的对于运算有必要的内容,然后处理前进到步骤 S21。步骤S29到步骤S31构成了EIT过程。因此,在输入到指令定序器521的指令代码为正常的情况下,类似于 传统CPU的处理被执行。但是,如果在译码的过程中生成指令总线错误 IBERR,则插入NOP直到确认在刚刚在前的指令处没有生成数据总线 Dbus错误为止。该确认最多花费2个周期的时间。此后,与指令总线错误 IBERR相对应的EIT过程的指令被输入。另一方面,如果在译码过程中生 成数据总线错误DBERR,则与数据总线错误DBERR相对应的EIT过程的 指令被输入,并且当在EIT过程期间生成数据总线错误DBERR、在向量 存取过程中生成数据总线错误DBERR以及在保存PS寄存器的内容的过程 中生成数据总线错误DBERR时,相同的操作被执行。如果在保存PC寄 存器的内容的过程中生成数据总线错误DBERR,则处理经过一序列路 线,该序列路线执行向量存取以及PC寄存器的内容的保存的重试。图14是用于说明在指令总线Ibus上生成错误的情况下的操作的时序 图。在图14以及随后将描述的图15、图16、图19和图20中,F、 D、 E 和M分别指示F部分51 、 D部分52、 E部分53和M部分54 (即,F阶 段、D阶段、E阶段和M阶段的处理),ED表示在D阶段中的EIT过 程,EE表示在E阶段中的EIT过程,而EM表示在M阶段中的EIT过
程。另外,纵向延伸的矩形标记指示寄存器的处理,由四个矩形构成的四 方形标记指示译码器的处理,具有"+ "符号的环形标记指示ALU的处理,nop指示不操作(NOP) , LD指示加载(LoaD)指令,而ST指示存 储(STore)指令。此外,在图14到图16中,与图12中的相应部分相同 的那些部分由相同的标号来指定。如图14所示,在各个周期cyclel到cycle9中执行以下处理。周期cyclel是指令II的获取周期。这个指令II是生成指令总线错误 IBERR的指令的刚刚在前的指令。周期cycle2是指令II的译码周期,并且还是指令12的获取周期。在 这个周期cyde2中,指令总线错误IBERR被输入到CPU 2。在周期cycle3中,通过锁存指令总线错误IBERR (外部信号),指令 总线错误iberr (内部信号)被获得,并且被输入到指令定序器521。因 此,指令定序器521向E部分53提供与NOP指令相对应的运算模式信 号,直到确认不存在刚刚在前的指令Il的数据总线错误DBERR。在周期cycle4中,D部分52继续向E部分53提供与NOP指令相对应 的运算模式信号。这时,在M部分54中产生指令II的数据总线Dbus存 取,并且没有生成数据总线错误DBERR。于是,在周期cycle5的开始 处,指令总线错误计数器IBER一CNTR计数,并且存储器部分3 (或存储 器部分4)被切换。如果在周期cycle4中生成了数据总线错误DBERR,则 执行针对生成了数据总线错误的情况的操作,如随后将结合图15来描述 的。在周期cycle5中,为了响应于在针对数据总线Dbus的指令II的存取 周期中生成的错误而转移到指令总线Ibus的错误处理的例程,D部分52 将用于计算向量地址的运算模式以及通用寄存器部分55的内容设置到中 间寄存器Ta和Tb,并将其提供到E部分53。通用寄存器55的内容包括 表示向量表的起始地址的TBR,以及表示中断号并指示从向量表的起始点 开始的地址位置的VectNo。在周期cycle6中,E部分53对存在针对指令总线Ibus的错误处理例 程的向量地址的地址进行计算。与此同时,D部分52通过指令定序器521
在中间寄存器Ta和Tb中设置用于保存PS寄存器的内容的运算模式以及 通用寄存器部分55的内容,并将其提供到E部分53。在周期cycle7中,经由数据总线Dbiis来获得向量地址,并且在周期 cycle7之后,所述向量地址被加载到PC寄存器。E部分53对PS寄存器的 内容将被写入的地址进行计算,并将所述地址设置在中间寄存器Te中。D 部分52向E部分53提供用于对保存发生错误的PC寄存器的值(EPC寄 存器的内容)的地址进行计算的运算模式以及通用寄存器部分55的内 容。在周期cycle8中,从向量表加载到指令总线Ibus的PC寄存器的值被 输出作为指令总线Ibus的地址IA,并且指令被从针对指令总线Ibus的错 误处理例程的地址中获得。对于数据总线Dbus, PS寄存器的值被写入存 储器部分3 (或存储器部分4),并且运算寄存器R15的值被更新。E部 分53对用于保存发生错误的PC寄存器的值(EPC寄存器的内容)的地址 进行计算。D部分52检査以确定是否存在接下来将被接受的中断等,并且 如果不存在接下来将被接受的中断等,则插入NOP。另一方面,如果存在 接下来将被接受的中断等,D部分52则对用于获取所述中断的向量地址的 运算模式以及通用寄存器部分55的内容进行准备。为了方便起见,图14 示出了不存在接下来将被接受的中断等的情况。在周期cycle9中,发生错误的PC寄存器的值(EPC寄存器的内容) 被从数据总线Dbus保存到存储器部分3 (或存储器部分4)中,并且运算 寄存器R15的值被更新。E部分53执行NOP。 D部分52对指令总线Ibus 的错误处理例程的指令进行译码。在周期cycle9之后,针对指令的正常处 理被执行。因此,当生成指令总线错误IBERR并且针对刚刚在前的指令没有生成 数据总线错误DBERR时,指令总线错误计数器IBER_CNTR计数。如果 当所有位都为"1"(全"1")时指令总线错误IBERR被生成,则并非所 有位都变为"0"(全"0"),并且CPU 2输出HALT (停止工作)信号 并呈现停止工作的状态。仅当CPU2被复位时,指令总线错误计数器 IBER—CNTR才被复位。
图15是用于说明在数据总线Dbus上生成错误的情况下的操作的时序 图。在图15中,步骤S101执行"LD @Rj, Ri",步骤S102取消指令II 并且步骤S103取消指令12。步骤S104执行"LD @(TBR, VectNo), PC",步骤S105执行"ST PS, @-R15",并且步骤S106执行"ST EPC, @-R15"。步骤S107执行"N0P1",并且如果存在下一个EIT过程,则 重复步骤S104到S106。步骤S108执行异常程序的指令。TBR表示向量 表的起始地址,VectNo.表示中断号并指示从向量表的起始开始的地址位 置。如图15所示,在各个周期cyclel到cycle9中执行以下处理。周期cyclel是在数据总线Dbus的存取周期中针对其生成了数据总线 错误DBERR的指令II的获取周期。这个指令II是用于经由数据总线 Dbus从存储器部分3 (或存储器部分4)读取数据的指令。在周期cycle2中,指令12 (或指令II)被获得。D部分52对指令II 进行译码。在周期cycle3中,E部分53计算指令II的地址。D部分52对指令12 进行译码。F部分51获取指令13。在周期cycle4中,对指令II的读取访问经由数据总线Dbus来进行, 但是错误被生成,并且数据总线错误DBERR被输入到CPU 2。因此,所 读取的数据并没有被设置在通用寄存器部分55 (Ri)中。另外,通过数据 总线Dbus的访问而在通用寄存器部分55中进行的值的设置被禁止,直到 周期cycle6。 E部分53执行指令I2,而D部分52对指令13进行译码。在周期cycle5中,指令12的访问经由数据总线Dbus来进行,但是通 过访问而获得的数据并没有被加载到通用寄存器部分55。换句话说,指令 12被取消。数据总线错误计数器DBER—CNTR响应于数据总线错误 DBERR而计数,并且存储器部分3 (或存储器部分4)被切换。E部分53 执行指令13,并且D部分52基于数据总线错误dberr来向E部分53提供 用于获取向量地址的运算模式以及通用寄存器部分55的对所述运算模式 有必要的值,所述数据总线错误dberr是通过锁存作为外部信号的数据总 线错误DBERR而获得的内部信号。在这种状态下,在周期cycle4中获得 的指令被丢弃。
在周期cyde6中,指令13的周期经由数据总线Dbus来执行,但是其 结果没有被反映到通用寄存器部分55。 E部分53计算向量地址。D部分 52将用于保存PS寄存器的内容的运算模式以及通用寄存器部分55的对所 述运算模式有必要的内容设置在中间寄存器中。在周期cycle7中,向量被经由数据总线Dbus从向量地址中读取,并 且所读取的向量被设置在PC寄存器中。E部分53计算用于保存PS寄存 器的内容的地址。D部分52将用于对保存发生了错误的PC寄存器的值的 地址进行计算的运算模式以及通用寄存器部分55的针对所述运算模式的 内容保存在中间寄存器中。在周期cycle8中,指令代码经由指令总线Ibus通过设置在PC寄存器 中的地址被获得,并获得错误处理例程的起始地址。PS寄存器的内容经由 数据总线Dbus被写入存储器部分3 (或存储器部分4) 。 E部分53计算用 于保存发生了错误的PC寄存器的值的地址。在D部分52中,如果存在其 它异常中断,则指令定序器521执行EIT过程,但是如果不存在其它异常 中断,则插入NOP。为了方便起见,图15示出了插入NOP的情况。在周期cycle9中,发生了错误的PC寄存器的值经由数据总线Dbus被 写入存储器部分3 (或存储器部分4),并且E部分53执行NOP。 D部分 53执行步骤S108的译码,并且在周期cycle9之后,针对指令的正常的处 理被执行。因此,当在数据总线Dbus上生成数据总线错误DBERR时,数据总线 错误计数器DBER—CNTR进行计数。如果当所有位都为"1"(全"1") 时生成数据总线错误DBERR,则并不是所有位都变为"0"(全 "0"),并且CPU2输出HALT信号并呈现停止工作的状态。仅当CPU 2被复位时,数据总线错误计数器DBER—CNTR才被复位。图16是用于说明在EIT过程期间在数据总线上生成错误的情况下的操 作的时序图。如图16所示,在各个周期cyclel到cyclel3中执行了以下处 理。周期cyclel到cycle8对应于如下序列其中由于在针对数据总线 Dbus的正常指令的存取周期中生成的数据总线错误DBERR而执行向量获 取、PS寄存器内容的保存以及PC寄存器内容的保存。在周期cycle9中,在数据总线Dbus的存取周期中,按PC寄存器的内 容被保存的顺序,数据总线错误DBERR被生成。由于这个原因,对运算 寄存器R15进行的寄存器值的更新被禁止。在周期cycly10中,数据总线错误计数器DBER—CNTR的值被向上计 数,存储器部分3 (或存储器部分4)被切换。由于不存在其它中断,所 以在数据总线Dbus上没有操作(NOP)被执行。E部分53执行已经被读 取的转移(JMP)指令的操作。D部分52不对JMP指令12进行译码,但 在中间寄存器中对用于重试向量获取的运算模式和寄存器值进行设置。在周期cyclyll中,JMP指令II周期在数据总线Dbus上执行,但是 这个周期的结果并没有被设置在通用寄存器部分55中。E部分53对所重 试的地址获取的地址进行计算。D部分52对是否存在其它中断进行检査, 如果不存在其它中断则插入NOP。在周期cyclel2中,在数据总线Dbus上进行向量获取的存取,并且这 个周期的结果被设置在PC寄存器中。因为不存器其它中断,所以E部分 53执行NOP。 D部分52将用于保存发生错误的PC寄存器的值的运算模 式以及通用寄存器部分55的对于该运算模式有必要的内容设置在中间寄 存器中。在周期cyclel3和随后的周期中,由向量获取所读取的PC寄存器的值 被加载,发生错误的PC寄存器的值被经由数据总线Dbus来写入存储器部 分3 (或存储器部分4),并且指令被顺序地执行。[第二实施例]图17是示出了本发明的第二实施例的重要部分的系统框图。在图17 中,与图12中的相应部分相同的那些部分被用相同的标号来指示,并将 省略对它们的描述。在CPU 2A的F部分51A中提供了未定义代码替换部 分512。这个未定义代码替换部分512可以由选择器来形成。在本实施例中,如果生成指令总线错误IBERR或者数据总线错误 DBERR,则执行重试,并且如果总线错误仍然被生成,则执行总线错误处 理。
首先,将给出对生成指令总线错误IBERR的情况的描述。当在指令获取过程中生成指令总线错误IBERR时,所有流水线阶段都被重新执行,F 部分51的F阶段的重试被执行,并且指令总线错误计数器IBER一CNTR的 值被更新。如果即使在执行了指定次数的重试之后还是生成指令总线错误 IBERR,则异常处理器522执行对未定义异常的EIT过程。当针对发生指 令总线错误IBERR的指令的刚刚在前的指令而生成数据总线错误DBERR 时,取消对未定义异常的处理。接下来,将给出对生成数据总线错误DBERR的情况的描述。当在M 部分54中生成数据总线错误DBERR时,在M部分54的M阶段中禁止将 值设置在通用寄存器部分55内的运算寄存器R0到R15中。另外,所有的 流水线阶段被重新执行,M部分54的M阶段的重试被执行,并且数据总 线错误计数器DBER—CNTR的值被更新。如果即使在执行了指定次数的重 试之后还是生成数据总线错误DBERR,则异常处理器522执行对未定义 异常的EIT过程。在本实施例中,当在一周期中生成数据总线错误 DBERR时,异常处理器522在这一周期中提供EIT过程的指令。如果在EIT过程的期间生成数据总线错误DBERR,则执行EIT过程 的重试。这种重试的生成模式可以与如上所述的第一实施例的相同。图18是用于说明本第二实施例的指令定序器521的操作的流程图。在图18中,与图13中的相应步骤相同的那些步骤被用相同的标号来指示, 并将省略对它们的描述。在图18中,如果译码所得的结果是未定义指 令,或者接受了外部(或其它)中断,则执行根据总线错误的处理或者根 据中断的处理。如果生成了数据总线错误DBERR,则处理前进到步骤S23 或S26。如果在向量存取过程中或者在保存PS寄存器内容的过程中生成数 据总线错误DBER,则处理前进到步骤S23。另一方面,如果在保存PC 寄存器内容的过程中生成数据总线错误DBERR,则处理前进到步骤S26。 如果生成了其它中断,则处理前进到步骤S29。在步骤S25或S28或S31之后,步骤S41对是否存在其它中断或错误 进行判断。如果既不存在中断也不存在错误并且步骤S41中的判断结果为 否,则处理返回到步骤Sll以对下一指令进行译码。如果在步骤S41中的
判断结果为是,则处理返回到当在步骤S12中的判断结果为否时所执行的 处理。因此,在输入到指令定序器521的指令代码为正常的情况下,执行类 似于传统CPU的处理。但是,如果在译码过程中生成指令总线错误,则 未定义指令替换部分512在F部分51和D部分52之间用未定义指令来替 换所述指令,而不是由指令定序器521来进行复制,并且指令定序器521 并不对该指令进行处理。对于生成数据总线错误DBERR的情况的处理与 如上所述的第一实施例的相同。图19是用于说明在指令总线Ibus上生成错误的情况的操作的时序 图。如图19所示,以下处理被在各个周期cyclel到cycle7中执行。在周期cyclel中,开始指令II的获取周期。如果在周期cycle2中开始指令12的获取周期却生成了指令总线错误 IBERR,并且在周期cycle3中响应于其而更新了指令总线错误计数器 IBER—CNTR的值,则从存储器部分3 (或存储器部分4)的相同地址重新 获取指令12。在这种状态下,指令II的译码所得的信息保留被存储在D 部分52的中间寄存器Tdec、 Ta、 Tb和Tdd中。在周期cycle4中,因为当在周期cycle3中指令总线错误计数器 IBER—CNTR的所有位都为"1"(全"1")时生成了指令总线错误 IBERR,所以输入到D部分52 (译码器523)的指令代码被未定义指令代 码取代。因此,提供给E部分53的运算信息是设置在中间寄存器中的用 于执行未定义指令中断的向量获取的运算信息。在周期cycle5中,经由数据总线Dbus来执行指令II的周期,没有生 成数据总线错误DBERR,并且没有取消下一指令。E部分53对用于向量 获取的地址进行计算。D部分52将用于保存PS寄存器的内容的运算信息 设置在中间寄存器中。在周期cycle6中,经由数据总线Dbus来执行向量获取,并且从存储 器部分3 (或存储器部分4)读取的数据被设置在PC寄存器中。E部分53 对用于保存PC寄存器内容的地址进行计算。D部分52将用于对用于保存 发生了错误的PC寄存器的值(EPC寄存器的内容)的地址进行计算的运
算信息设置到中间寄存器中。在周期cyde7和随后的周期中,设置在PC寄存器中的值被作为地址 值来输出在指令总线Ibus上,并且在错误处理的例程的起始处的指令被获 取。PS寄存器的内容被经由数据总线Dbus来存储在存储器部分3 (或存 储器部分4)中,并且运算寄存器R15的值被更新。E部分53对用于保存 EPC寄存器的内容的地址进行计算。如果存在其它中断,则D部分52将 该中断的向量获取的运算信息设置到中间寄存器中。图19示出了不存在 其它中断的情况,这样NOP被插入。此后执行的周期与在普通的或传统 的CPU中的对指令的流水线处理的那些周期相同。图20是用于说明针对在数据总线Dbus上生成错误的情况的操作的时 序图。在图20中,步骤S201执行"LD @Rj, Ri",步骤S202取消指令 II,而步骤S203取消指令12并且执行"LD @ (TBR, VectNo), PC"。步骤S204执行"ST PS, @-R15",而步骤S205执行"ST EPC, @-R15"。步骤S206执行"N0P1",并且如果存在下一个EIT过程则重 复步骤S203到S205。步骤S207执行异常程序的指令。如图20所示,以 下处理被在各个周期cyclel到cycle8中执行。在周期cyclel到cycle4中,通过流水线处理来顺序地执行对针对其而 在数据总线Dbns上生成错误的加载(LD)指令、下一个指令I1和指令I2 的处理。为了方便起见,假设在图20中数据总线错误DBERR是在周期 cycle4中针对LD指令而在数据总线Dbus上生成的。在周期cycle5中,因为在周期cyde4中生成了数据总线错误 DBERR,所以数据总线错误计数器DBER—CNTR进行计数,并且在周期 cycle5中执行了数据总线Dbus的周期的重试。在这种状态下,指令总线 Ibus、 D部分52和E部分53上的结果并没有被加载到中间寄存器,并且值被按其原来的样子来存储。如果当数据总线错误计数器dberj:ntr的所有位都为"1"(全"1")时生成数据总线错误DBERR,则执行对该 数据总线错误DBERR的EIT过程。通过不将M部分54的M阶段的结果 反映给在通用寄存器部分55内的运算寄存器R0到R15,发生数据总线错 误DBERR的指令的下一指令(指令II)被取消。另外,指令定序器521
利用用于在D部分52中进行向量获取的指令来替换下一指令12,并且将 用于对向量地址的地址进行计算的信息提供给E部分53。在周期cycle6中,E部分53对向量地址的地址进行计算。另外,用于 保存PS寄存器的内容的运算信息被设置在中间寄存器中。在周期cycle7中,向量地址被经由数据总线Dbus来读取,并且针对 数据总线错误DBERR的错误处理例程的起始地址被读取并设置在PC寄 存器中。E部分53对用于保存PS寄存器的内容的地址进行计算。D部分 52将用于保存发生了错误的PC寄存器的值(EPC寄存器的内容)的运算 信息提供给E部分53。在周期cyde8和随后的周期中,经由指令总线Ibus来从在PC寄存器 中的新值的地址中读取指令。PS寄存器的内容被经由数据总线Dbus来保 存在存储器部分3 (或存储器部分4)中。E部分53对用于保存EPC寄存 器的内容的地址进行计算。此后执行的操作与由普通的或传统的CPU所进 行的存取操作相同。因此,根据在此之前描述的各个实施例,在CPU中提供了总线错误输 入部分或装置,或者总线错误信号线。由于这个原因,即使当在存储器部 分中发生了诸如奇偶校验错误之类的错误时,也可以执行错误处理并继续 CPU的运行。另外,当CPU获得指令并检测到奇偶校验错误时,发生了 奇偶校验错误的指令将不被执行。即使CPU获得指令,检测到奇偶校验错 误并且没有执行该指令,也不会生成毫无意义的异常。此外,即使在指令 总线上生成了总线错误,并在此后针对刚刚在前的指令生成了数据总线错 误,也没有必要考虑软件处理的优先级顺序。可以在生成总线错误之后立 即由总线错误计数器部分或装置来切换存储器部分。本申请要求在2Q06年9月29日于日本专利局提出的日本专利申请 No.2006-269635的优先权,该申请公开的内容通过引用而结合于此。此外,本发明并不限于这些实施例,在不脱离本发明的范围的情况下 可以做出各种变化和修改。
权利要求
1.一种用于处理在CPU的总线上生成的错误的错误处理方法,包括以下步骤a)通过总线错误输入部分,向所述CPU输入在所述CPU的指令总线和数据总线中的至少一个上生成的总线错误;b)通过所述CPU的总线错误计数器部分来对总线错误计数;以及c)基于所述总线错误计数器部分的值,指定与所述CPU相耦合的存储器部分的区域。
2. 如权利要求1所述的错误处理方法,包括d) 如果在所述指令总线上生成所述总线错误并做出判断以转移到未 定义指令的异常向量,或者如果在所述数据总线上生成了所述总线错误, 则当生成所述总线错误时,更新所述总线错误计数器部分的值。
3. 如权利要求l所述的错误处理方法,包括e) 如果在所述数据总线上生成所述总线错误,则当生成所述总线错 误时,更新所述总线错误计数器部分的值。
4. 如权利要求1所述的错误处理方法,包括f) 当在所述指令总线上生成所述总线错误时,在确认针对刚刚在前的 指令没有生成总线错误之后,执行未定义指令的处理。
5. 如权利要求1所述的错误处理方法,包括g) 当在所述数据总线上生成所述总线错误时,通过禁止由随后的指 令对通用寄存器部分进行设置来执行未定义指令的处理。
6. 如权利要求1所述的错误处理方法,包括h) 当获得指令时在所述存储器部分中生成奇偶校验错误的时候,向所述总线错误输入部分输入错误信号,其中,当所述CPU做出判断以执行生成了错误的指令时,所述CPU 执行异常中断陷阱(EIT)过程,并转移到错误处理的例程。
7. 如权利要求1所述的错误处理方法,包括i) 当在所述数据总线上生成奇偶校验错误并且错误信号通过所述总线错误输入部分被输入到所述CPU时,取消对随后指令的处理。
8. 如权利要求1所述的错误处理方法,其中,所述的步骤C)基于所 述总线错误计数器部分的值、指令或数据的地址以及读或写信号来指定与 所述CPU相耦合的所述存储器部分的页。
9. 如权利要求1所述的错误处理方法,包括j)通过将指令总线错误和数据总线错误存储在指示所述CPU的状态 的处理器状态寄存器中,来指示所述总线错误的生成。
10. 如权利要求1所述的错误处理方法,包括k)当生成指令总线错误或数据总线错误时执行重试,并且如果即使 在所述重试之后还是生成总线错误,则执行总线错误处理。
11. 一种信息处理装置,包括 CPU;存储器部分,所述存储器部分与所述CPU相耦合;总线错误输入部分,所述总线错误输入部分被配置用于向所述CPU输 入在所述CPU的指令总线和数据总线中的至少一个上生成的总线错误;总线错误计数器部分,所述总线错误计数器部分被配置用于对在所述 CPU中生成的所述总线错误进行计数;以及指定部分,所述指定部分被配置用于基于所述总线错误计数器部分的 值来指定所述存储器部分的区域。
12. 如权利要求ll所述的信息处理装置,包括更新部分,所述更新部分被配置用于如果在所述指令总线上生成所 述总线错误并做出判断以转移到未定义指令的异常向量,或者如果在所述 数据总线上生成了所述总线错误,则当所述总线错误被生成时,更新所述 总线错误计数器部分的值。
13. 如权利要求ll所述的信息处理装置,包括更新部分,所述更新部分被配置用于如果在所述数据总线上生成所 述总线错误,则当所述总线错误被生成时,更新所述总线错误计数器部分 的值。
14. 如权利要求ll所述的信息处理装置,包括被配置用于当所述总线错误在所述指令总线上生成时,在确认针对刚 刚在前的指令没有生成总线错误之后,执行未定义指令的处理的部分。
15. 如权利要求ll所述的信息处理装置,包括通用寄存器部分,所述通用寄存器部分包括所述总线错误计数器部 分;以及被配置用于当所述总线错误在所述数据总线上生成时,通过禁止由随 后的指令对所述通用寄存器部分进行设置来执行未定义指令的处理的部 分。
16. 如权利要求ll所述的信息处理装置,包括被配置用于当指令被获得时奇偶校验错误在所述存储器部分中被生成 的时候,向所述总线错误输入部分输入错误信号的部分,其中,在所述CPU做出判断以执行生成了错误的指令时,所述CPU 执行异常中断陷阱(EIT)过程,并转移到错误处理的例程。
17. 如权利要求ll所述的信息处理装置,包括被配置用于当奇偶校验错误在所述数据总线上被生成并且错误信号通过所述总线错误输入部分被输入到所述CPU时,取消对随后指令的处理部分。
18. 如权利要求11所述的信息处理装置,其中,所述的指定部分基于所述总线错误计数器部分的值、指令或数据的地址以及读或写信号来指定与所述CPU相耦合的所述存储器部分的页。
19. 如权利要求ll所述的信息处理装置,包括处理器状态寄存器,所述处理器状态寄存器被配置用于指示所述CPU的状态,其中,所述总线错误的生成是通过将指令总线错误和数据总线错误存 储在所述处理器状态寄存器中来指示的。
20. 如权利要求ll所述的信息处理装置,包括被配置用于当指令总线错误或数据总线错误被生成时执行重试,并且 如果即使在所述重试之后还是生成总线错误则执行总线错误处理的部分。
全文摘要
本发明提供了一种错误处理方法和信息处理装置。错误处理方法通过以下步骤来对在CPU的总线上生成的错误进行处理通过总线错误输入部分向CPU输入在CPU的指令总线和数据总线中的至少一个上生成的总线错误;通过CPU的总线错误计数器部分对总线错误计数;以及基于总线错误计数器部分的值来指定与CPU相耦合的存储器部分的区域。
文档编号G06F11/00GK101154171SQ20071014202
公开日2008年4月2日 申请日期2007年8月20日 优先权日2006年9月29日
发明者笹崎勋 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1