CN101154171A - 错误处理方法和信息处理装置 - Google Patents

错误处理方法和信息处理装置 Download PDF

Info

Publication number
CN101154171A
CN101154171A CNA2007101420274A CN200710142027A CN101154171A CN 101154171 A CN101154171 A CN 101154171A CN A2007101420274 A CNA2007101420274 A CN A2007101420274A CN 200710142027 A CN200710142027 A CN 200710142027A CN 101154171 A CN101154171 A CN 101154171A
Authority
CN
China
Prior art keywords
instruction
bus
error
bus error
cpu
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
Application number
CNA2007101420274A
Other languages
English (en)
Other versions
CN100547554C (zh
Inventor
笹崎勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cypress Semiconductor Corp
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN101154171A publication Critical patent/CN101154171A/zh
Application granted granted Critical
Publication of CN100547554C publication Critical patent/CN100547554C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种错误处理方法和信息处理装置。错误处理方法通过以下步骤来对在CPU的总线上生成的错误进行处理:通过总线错误输入部分向CPU输入在CPU的指令总线和数据总线中的至少一个上生成的总线错误;通过CPU的总线错误计数器部分对总线错误计数;以及基于总线错误计数器部分的值来指定与CPU相耦合的存储器部分的区域。

Description

错误处理方法和信息处理装置
技术领域
本发明一般地涉及错误处理方法和信息处理装置,更具体地,涉及用于处理在指令总线或数据总线中生成的总线错误的错误处理方法,以及配备有具有哈佛结构(Harvard architecture)的CPU等的信息处理装置。
背景技术
对于在车辆等中的应用,要求为微处理器的CPU中的存储器部分提供奇偶校验或者ECC校验功能。在传统的CPU中,如果在总线访问(busaccess)的过程中生成了错误,则无法将正确的指令代码提供到CPU,并且CPU不得不停止工作。避免CPU这样停止工作的一种方法是当在总线访问的过程中生成错误时向CPU输入外部中断,但是根据该方法,有可能在转移到中断例程(interrupt routine)之前执行了产生总线错误的指令代码。另外,因为CPU并不总是执行如转移指令的情况中的进行总线访问的指令代码,所以有可能生成毫无意义的中断。
此外,在CPU具有指令总线和数据总线相分立的哈佛结构的情况下,在指令总线上生成针对某指令的总线错误之后,有可能生成针对在该指令之前执行的指令的数据总线错误。由于这个原因,有必要优先于指令总线错误来处理数据总线错误。例如,由日本富士通有限公司制造的FR系列精简指令集计算机(RISC)微型计算机是配备了具有哈佛结构的CPU的微处理器的一个示例。在这样的CPU中,如果生成了未定义的指令,则指令译码器部分的指令定序器(sequencer)中的异常处理器(exceptionhandler)被启动,从而通过异常中断陷阱(Exception Interrupt Trap,EIT)过程,生成用于获取未定义的中断例程的起始地址的指令以及用于保存指示CPU状态的处理器状态(Processor Status,PS)寄存器以及程序计数(Program Counter,PC)寄存器的内容的指令,并转移到中断例程。
图1是示出了传统CPU的重要部分的结构的系统框图。图1所示的传统CPU一般地包括获取部分(F部分)101、译码部分(D部分)102、执行部分(E部分)103、存储器存取部分(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(步骤S1),并且该指令代码被译码(步骤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、R0到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(i=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响应于所述的下一时钟同时获得指令I2。如图3到图8所示,这种操作被重复,并且指令I1到I5的流水线处理被进行。图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是示出了应用本发明的微处理的重要部分的系统框图;
图10是示出了存储器部分的结构的系统框图;
图11是示出了存储器部分的写信号、读信号和控制信号之间的关系的示图;
图12是示出了本发明的第一实施例的重要部分的系统框图;
图13是用于说明第一实施例的指令定序器的操作的流程图;
图14是用于说明在指令总线上生成错误的情况下的操作的时序图;
图15是用于说明在数据总线上生成错误的情况下的操作的时序图;
图16是用于说明在EIT过程期间在数据总线上生成错误的情况下的操作的时序图;
图17是示出了本发明的第二实施例的重要部分的系统框图;
图18是用于说明第二实施例的指令定序器的操作的流程图;
图19是用于说明在指令总线上生成错误的情况下的操作的时序图;
图20是用于说明在数据总线上生成错误的情况下的操作的时序图。
具体实施方式
在本发明中,提供了针对CPU的指令总线和数据总线的总线错误输入部分或装置。另外,在CPU中提供了总线错误计数器部分或装置,并且该总线错误计数器部分或装置的内容被输出用于指定存储器部分的页面(page)。例如,如果在指令总线上生成总线错误,或者在数据总线上生成总线错误,则当做出判断以转移到未定义指令的异常向量时,总线错误计数器部分或装置被更新。当在指令总线上生成总线错误时,对未定义指令的处理可以在确认在数据总线上针对刚刚在前的指令没有生成总线错误之后再进行。当在数据总线上生成总线错误时,可以通过禁止通用寄存器部分被未定义指令之后的指令进行设置,来进行对未定义指令的处理。
当获得指令时在指令总线上生成奇偶校验错误的情况下,指令总线错误信号被输入到指令总线错误输入部分或装置。因此,当做出判断以执行生成错误的指令时,在这种情况下的CPU可以执行EIT过程,并转移到错误处理的例程。另外,在数据总线上生成奇偶校验错误的情况下,数据错误信号被输入到数据总线错误输入部分或装置。因此,在这种情况下可以取消对随后的指令的处理。因此,可以通过硬件处理来处理针对在指令总线和数据总线上生成的错误的错误处理的优先级顺序,从而使得没有必要考虑通过软件处理的错误处理。
通过参考图9及随后的附图,以下将给出对根据本发明的错误处理方法和信息处理装置的实施例的说明。
[第一实施例]
图9是示出了应用本发明的微处理器的重要部分的系统框图。图9所示的微处理器1具有CPU 2和存储器部分3和4。例如,存储器部分3是由闪存存储器(Flash)形成的,而存储器部分4是由RAM形成的。CPU2和存储器部分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表示读信号或写信号,CS0X到CS0X表示从逻辑电路31输出的片选信号,IBERR/DBERR表示从奇偶校验器33输出的指令总线错误信号或数据总线错误信号,以及IDout/DDout表示从页存储器部分32输出的指令输出或数据输出。逻辑电路31基于错误计数信号ER_CNTR、指令或数据的地址AD以及读或写信号R/WX来生成片选信号CS0X到CS3X。当然,形成页存储器部分32的页存储器的数目并不限于4。
图11是示出了读信号、写信号和控制信号的关系的示图,所述的控制信号即存储器部分3(或存储器部分4)的片选信号CS0X到CS3X。在图11中,符合“O”指示控制信号的激活逻辑电平,而符号“X”指示控制信号的非激活逻辑电平。如图11所示,在写的过程中,针对存储器部分32的所有页存储器0到3,指令或数据被写入。另一方面,在读的过程中,指令或数据被从由错误计数信号ER_CNTR指示的页存储器部分32的一个页存储器中读出。
图12是示出了本发明的第一实施例的重要部分的系统框图。CPU 2一般地包括获取部分(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形成CPU 2的内部寄存器,并包括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表示来自图10所示的奇偶校验器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。
按CPU 2获取指令的顺序来执行指令的处理。每输入一个时钟,每个指令就被接连地传送到F部分51、D部分52、E部分53和M部分54,并且CPU 2根据指令来操作。如果F部分51获得指令I1,并且响应于下一个时钟这个指令I1被传送到D部分52,则F部分51响应于所述的下一时钟同时获得指令I2。这种操作被重复,从而进行对指令I1到I5的流水线处理。
在本实施例中,当生成指令总线错误IBERR或数据总线错误DBERR时,执行总线错误处理以在不执行重试处理的情况下(除了其中执行EIT过程的情况之外)对总线错误进行处理。
首先,将给出对生成指令总线错误IBERR的情况的描述。在这种情况下,当在指令获取过程中生成指令总线错误IBERR时,为了维持指令的连续性,D部分52等待,直到确认在刚刚在前的指令处没有生成数据总线错误DBERR。如果在刚刚在前的指令处没有生成数据总线错误DBERR,则本实施例的异常处理器522在下一个周期中提供用于转移到未定义异常的指令,随后,指令总线错误计数器IBER_CNTR的值被向上计数。
接下来,将给出对生成数据总线错误DBERR的情况的描述。在这种情况下,当在M部分54中生成数据总线错误DBERR时,在M部分54的M阶段中禁止将值设置在通用寄存器部分55内的运算寄存器R0到R15中。在生成数据总线错误DBERR的指令之后,在中断向量被读取前,在运算寄存器R0到R15中的值的设置被禁止,直到在M部分54中对所获得的指令的处理结束。在生成数据总线错误DBERR之后,异常处理器522在下一个周期中提供EIT过程的指令。
图13是用于说明本第一实施例的指令定序器521的操作的流程图。在新获得指令代码之后,指令代码被输入到D部分52(步骤S11),然后指令代码被译码(步骤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。为了转移到异常中断的例程,即,指令总线错误IBERR的中断例程,步骤S18从向量表获取向量地址,并向E部分53提供用于计算地址的运算模式以及通用寄存器部分55的对于运算有必要的内容。在下一周期中,步骤S19向E部分53提供用于保存PS寄存器的内容的运算模式以及通用寄存器部分55的对于运算有必要的内容。步骤S20向E部分53提供用于保存PC寄存器的内容的运算模式以及通用寄存器55的对于运算有必要的内容。步骤S18到S20构成了EIT过程。此后,步骤S21判断数据总线错误输出dberr是否被输入。如果在步骤S21中的判断结果为否,则步骤S22对是否存在其它中断或错误进行判断。如果不存在其它中断或错误并且步骤S22的判断结果为否,则处理返回到步骤S11以对下一指令进行译码。如果步骤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所示,在各个周期cycle1到cycle9中执行以下处理。
周期cycle1是指令I1的获取周期。这个指令I1是生成指令总线错误IBERR的指令的刚刚在前的指令。
周期cycle2是指令I1的译码周期,并且还是指令I2的获取周期。在这个周期cycle2中,指令总线错误IBERR被输入到CPU 2。
在周期cycle3中,通过锁存指令总线错误IBERR(外部信号),指令总线错误iberr(内部信号)被获得,并且被输入到指令定序器521。因此,指令定序器521向E部分53提供与NOP指令相对应的运算模式信号,直到确认不存在刚刚在前的指令I1的数据总线错误DBERR。
在周期cycle4中,D部分52继续向E部分53提供与NOP指令相对应的运算模式信号。这时,在M部分54中产生指令I1的数据总线Dbus存取,并且没有生成数据总线错误DBERR。于是,在周期cycle5的开始处,指令总线错误计数器IBER_CNTR计数,并且存储器部分3(或存储器部分4)被切换。如果在周期cycle4中生成了数据总线错误DBERR,则执行针对生成了数据总线错误的情况的操作,如随后将结合图15来描述的。
在周期cycle5中,为了响应于在针对数据总线Dbus的指令I1的存取周期中生成的错误而转移到指令总线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中,经由数据总线Dbus来获得向量地址,并且在周期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(停止工作)信号并呈现停止工作的状态。仅当CPU 2被复位时,指令总线错误计数器IBER_CNTR才被复位。
图15是用于说明在数据总线Dbus上生成错误的情况下的操作的时序图。在图15中,步骤S101执行“LD@Rj,Ri”,步骤S102取消指令I1并且步骤S103取消指令I2。步骤S104执行“LD@(TBR,VectNo),PC”,步骤S105执行“ST PS,@-R15”,并且步骤S106执行“ST EPC,@-R15”。步骤S107执行“NOP1”,并且如果存在下一个EIT过程,则重复步骤S104到S106。步骤S108执行异常程序的指令。TBR表示向量表的起始地址,VectNo.表示中断号并指示从向量表的起始开始的地址位置。如图15所示,在各个周期cycle1到cycle9中执行以下处理。
周期cycle1是在数据总线Dbus的存取周期中针对其生成了数据总线错误DBERR的指令I1的获取周期。这个指令I1是用于经由数据总线Dbus从存储器部分3(或存储器部分4)读取数据的指令。
在周期cycle2中,指令I2(或指令I1)被获得。D部分52对指令I1进行译码。
在周期cycle3中,E部分53计算指令I1的地址。D部分52对指令I2进行译码。F部分51获取指令I3。
在周期cycle4中,对指令I1的读取访问经由数据总线Dbus来进行,但是错误被生成,并且数据总线错误DBERR被输入到CPU 2。因此,所读取的数据并没有被设置在通用寄存器部分55(Ri)中。另外,通过数据总线Dbus的访问而在通用寄存器部分55中进行的值的设置被禁止,直到周期cycle6。E部分53执行指令I2,而D部分52对指令I3进行译码。
在周期cycle5中,指令I2的访问经由数据总线Dbus来进行,但是通过访问而获得的数据并没有被加载到通用寄存器部分55。换句话说,指令I2被取消。数据总线错误计数器DBER_CNTR响应于数据总线错误DBERR而计数,并且存储器部分3(或存储器部分4)被切换。E部分53执行指令I3,并且D部分52基于数据总线错误dberr来向E部分53提供用于获取向量地址的运算模式以及通用寄存器部分55的对所述运算模式有必要的值,所述数据总线错误dberr是通过锁存作为外部信号的数据总线错误DBERR而获得的内部信号。在这种状态下,在周期cycle4中获得的指令被丢弃。
在周期cycle6中,指令I3的周期经由数据总线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”),并且CPU 2输出HALT信号并呈现停止工作的状态。仅当CPU2被复位时,数据总线错误计数器DBER_CNTR才被复位。
图16是用于说明在EIT过程期间在数据总线上生成错误的情况下的操作的时序图。如图16所示,在各个周期cycle1到cycle13中执行了以下处理。
周期cycle1到cycle8对应于如下序列:其中由于在针对数据总线Dbus的正常指令的存取周期中生成的数据总线错误DBERR而执行向量获取、PS寄存器内容的保存以及PC寄存器内容的保存。
在周期cycle9中,在数据总线Dbus的存取周期中,按PC寄存器的内容被保存的顺序,数据总线错误DBERR被生成。由于这个原因,对运算寄存器R15进行的寄存器值的更新被禁止。
在周期cycly10中,数据总线错误计数器DBER_CNTR的值被向上计数,存储器部分3(或存储器部分4)被切换。由于不存在其它中断,所以在数据总线Dbus上没有操作(NOP)被执行。E部分53执行已经被读取的转移(JMP)指令的操作。D部分52不对JMP指令I2进行译码,但在中间寄存器中对用于重试向量获取的运算模式和寄存器值进行设置。
在周期cycly11中,JMP指令I1周期在数据总线Dbus上执行,但是这个周期的结果并没有被设置在通用寄存器部分55中。E部分53对所重试的地址获取的地址进行计算。D部分52对是否存在其它中断进行检查,如果不存在其它中断则插入NOP。
在周期cycle12中,在数据总线Dbus上进行向量获取的存取,并且这个周期的结果被设置在PC寄存器中。因为不存器其它中断,所以E部分53执行NOP。D部分52将用于保存发生错误的PC寄存器的值的运算模式以及通用寄存器部分55的对于该运算模式有必要的内容设置在中间寄存器中。
在周期cycle13和随后的周期中,由向量获取所读取的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中的判断结果为否,则处理返回到步骤S11以对下一指令进行译码。如果在步骤S41中的判断结果为是,则处理返回到当在步骤S12中的判断结果为否时所执行的处理。
因此,在输入到指令定序器521的指令代码为正常的情况下,执行类似于传统CPU的处理。但是,如果在译码过程中生成指令总线错误,则未定义指令替换部分512在F部分51和D部分52之间用未定义指令来替换所述指令,而不是由指令定序器521来进行复制,并且指令定序器521并不对该指令进行处理。对于生成数据总线错误DBERR的情况的处理与如上所述的第一实施例的相同。
图19是用于说明在指令总线Ibus上生成错误的情况的操作的时序图。如图19所示,以下处理被在各个周期cycle1到cycle7中执行。
在周期cycle1中,开始指令I1的获取周期。
如果在周期cycle2中开始指令I2的获取周期却生成了指令总线错误IBERR,并且在周期cycle3中响应于其而更新了指令总线错误计数器IBER_CNTR的值,则从存储器部分3(或存储器部分4)的相同地址重新获取指令I2。在这种状态下,指令I1的译码所得的信息保留被存储在D部分52的中间寄存器Tdec、Ta、Tb和Tdd中。
在周期cycle4中,因为当在周期cycle3中指令总线错误计数器IBER_CNTR的所有位都为“1”(全“1”)时生成了指令总线错误IBERR,所以输入到D部分52(译码器523)的指令代码被未定义指令代码取代。因此,提供给E部分53的运算信息是设置在中间寄存器中的用于执行未定义指令中断的向量获取的运算信息。
在周期cycle5中,经由数据总线Dbus来执行指令I1的周期,没有生成数据总线错误DBERR,并且没有取消下一指令。E部分53对用于向量获取的地址进行计算。D部分52将用于保存PS寄存器的内容的运算信息设置在中间寄存器中。
在周期cycle6中,经由数据总线Dbus来执行向量获取,并且从存储器部分3(或存储器部分4)读取的数据被设置在PC寄存器中。E部分53对用于保存PC寄存器内容的地址进行计算。D部分52将用于对用于保存发生了错误的PC寄存器的值(EPC寄存器的内容)的地址进行计算的运算信息设置到中间寄存器中。
在周期cycle7和随后的周期中,设置在PC寄存器中的值被作为地址值来输出在指令总线Ibus上,并且在错误处理的例程的起始处的指令被获取。PS寄存器的内容被经由数据总线Dbus来存储在存储器部分3(或存储器部分4)中,并且运算寄存器R15的值被更新。E部分53对用于保存EPC寄存器的内容的地址进行计算。如果存在其它中断,则D部分52将该中断的向量获取的运算信息设置到中间寄存器中。图19示出了不存在其它中断的情况,这样NOP被插入。此后执行的周期与在普通的或传统的CPU中的对指令的流水线处理的那些周期相同。
图20是用于说明针对在数据总线Dbus上生成错误的情况的操作的时序图。在图20中,步骤S201执行“LD@Rj,Ri”,步骤S202取消指令I1,而步骤S203取消指令I2并且执行“LD@(TBR,VectNo),PC”。步骤S204执行“ST PS,@-R15”,而步骤S205执行“ST EPC,@-R15”。步骤S206执行“NOP1”,并且如果存在下一个EIT过程则重复步骤S203到S205。步骤S207执行异常程序的指令。如图20所示,以下处理被在各个周期cycle1到cycle8中执行。
在周期cycle1到cycle4中,通过流水线处理来顺序地执行对针对其而在数据总线Dbus上生成错误的加载(LD)指令、下一个指令I1和指令I2的处理。为了方便起见,假设在图20中数据总线错误DBERR是在周期cycle4中针对LD指令而在数据总线Dbus上生成的。
在周期cycle5中,因为在周期cycle4中生成了数据总线错误DBERR,所以数据总线错误计数器DBER_CNTR进行计数,并且在周期cycle5中执行了数据总线Dbus的周期的重试。在这种状态下,指令总线Ibus、D部分52和E部分53上的结果并没有被加载到中间寄存器,并且值被按其原来的样子来存储。如果当数据总线错误计数器DBER_CNTR的所有位都为“1”(全“1”)时生成数据总线错误DBERR,则执行对该数据总线错误DBERR的EIT过程。通过不将M部分54的M阶段的结果反映给在通用寄存器部分55内的运算寄存器R0到R15,发生数据总线错误DBERR的指令的下一指令(指令I1)被取消。另外,指令定序器521利用用于在D部分52中进行向量获取的指令来替换下一指令I2,并且将用于对向量地址的地址进行计算的信息提供给E部分53。
在周期cycle6中,E部分53对向量地址的地址进行计算。另外,用于保存PS寄存器的内容的运算信息被设置在中间寄存器中。
在周期cycle7中,向量地址被经由数据总线Dbus来读取,并且针对数据总线错误DBERR的错误处理例程的起始地址被读取并设置在PC寄存器中。E部分53对用于保存PS寄存器的内容的地址进行计算。D部分52将用于保存发生了错误的PC寄存器的值(EPC寄存器的内容)的运算信息提供给E部分53。
在周期cycle8和随后的周期中,经由指令总线Ibus来从在PC寄存器中的新值的地址中读取指令。PS寄存器的内容被经由数据总线Dbus来保存在存储器部分3(或存储器部分4)中。E部分53对用于保存EPC寄存器的内容的地址进行计算。此后执行的操作与由普通的或传统的CPU所进行的存取操作相同。
因此,根据在此之前描述的各个实施例,在CPU中提供了总线错误输入部分或装置,或者总线错误信号线。由于这个原因,即使当在存储器部分中发生了诸如奇偶校验错误之类的错误时,也可以执行错误处理并继续CPU的运行。另外,当CPU获得指令并检测到奇偶校验错误时,发生了奇偶校验错误的指令将不被执行。即使CPU获得指令,检测到奇偶校验错误并且没有执行该指令,也不会生成毫无意义的异常。此外,即使在指令总线上生成了总线错误,并在此后针对刚刚在前的指令生成了数据总线错误,也没有必要考虑软件处理的优先级顺序。可以在生成总线错误之后立即由总线错误计数器部分或装置来切换存储器部分。
本申请要求在2006年9月29日于日本专利局提出的日本专利申请No.2006-269635的优先权,该申请公开的内容通过引用而结合于此。
此外,本发明并不限于这些实施例,在不脱离本发明的范围的情况下可以做出各种变化和修改。

Claims (20)

1.一种用于处理在CPU的总线上生成的错误的错误处理方法,包括以下步骤:
a)通过总线错误输入部分,向所述CPU输入在所述CPU的指令总线和数据总线中的至少一个上生成的总线错误;
b)通过所述CPU的总线错误计数器部分来对总线错误计数;以及
c)基于所述总线错误计数器部分的值,指定与所述CPU相耦合的存储器部分的区域。
2.如权利要求1所述的错误处理方法,包括:
d)如果在所述指令总线上生成所述总线错误并做出判断以转移到未定义指令的异常向量,或者如果在所述数据总线上生成了所述总线错误,则当生成所述总线错误时,更新所述总线错误计数器部分的值。
3.如权利要求1所述的错误处理方法,包括:
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.如权利要求11所述的信息处理装置,包括:
更新部分,所述更新部分被配置用于:如果在所述指令总线上生成所述总线错误并做出判断以转移到未定义指令的异常向量,或者如果在所述数据总线上生成了所述总线错误,则当所述总线错误被生成时,更新所述总线错误计数器部分的值。
13.如权利要求11所述的信息处理装置,包括:
更新部分,所述更新部分被配置用于:如果在所述数据总线上生成所述总线错误,则当所述总线错误被生成时,更新所述总线错误计数器部分的值。
14.如权利要求11所述的信息处理装置,包括:
被配置用于当所述总线错误在所述指令总线上生成时,在确认针对刚刚在前的指令没有生成总线错误之后,执行未定义指令的处理的部分。
15.如权利要求11所述的信息处理装置,包括:
通用寄存器部分,所述通用寄存器部分包括所述总线错误计数器部分;以及
被配置用于当所述总线错误在所述数据总线上生成时,通过禁止由随后的指令对所述通用寄存器部分进行设置来执行未定义指令的处理的部分。
16.如权利要求11所述的信息处理装置,包括:
被配置用于当指令被获得时奇偶校验错误在所述存储器部分中被生成的时候,向所述总线错误输入部分输入错误信号的部分,
其中,在所述CPU做出判断以执行生成了错误的指令时,所述CPU执行异常中断陷阱(EIT)过程,并转移到错误处理的例程。
17.如权利要求11所述的信息处理装置,包括:
被配置用于当奇偶校验错误在所述数据总线上被生成并且错误信号通过所述总线错误输入部分被输入到所述CPU时,取消对随后指令的处理部分。
18.如权利要求11所述的信息处理装置,其中,所述的指定部分基于所述总线错误计数器部分的值、指令或数据的地址以及读或写信号来指定与所述CPU相耦合的所述存储器部分的页。
19.如权利要求11所述的信息处理装置,包括:
处理器状态寄存器,所述处理器状态寄存器被配置用于指示所述CPU的状态,
其中,所述总线错误的生成是通过将指令总线错误和数据总线错误存储在所述处理器状态寄存器中来指示的。
20.如权利要求11所述的信息处理装置,包括:
被配置用于当指令总线错误或数据总线错误被生成时执行重试,并且如果即使在所述重试之后还是生成总线错误则执行总线错误处理的部分。
CNB2007101420274A 2006-09-29 2007-08-20 错误处理方法和信息处理装置 Active CN100547554C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006269635 2006-09-29
JP2006269635A JP5245237B2 (ja) 2006-09-29 2006-09-29 エラー処理方法

Publications (2)

Publication Number Publication Date
CN101154171A true CN101154171A (zh) 2008-04-02
CN100547554C CN100547554C (zh) 2009-10-07

Family

ID=39255846

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101420274A Active CN100547554C (zh) 2006-09-29 2007-08-20 错误处理方法和信息处理装置

Country Status (4)

Country Link
US (1) US8032794B2 (zh)
JP (1) JP5245237B2 (zh)
CN (1) CN100547554C (zh)
TW (1) TWI338836B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514058A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 一种数据失效的处理方法、设备及系统
CN109358903A (zh) * 2017-06-22 2019-02-19 瑞萨电子株式会社 数据访问设备和访问错误通知方法
CN110635964A (zh) * 2018-06-22 2019-12-31 克洛纳测量技术有限公司 用于在总线通信时进行错误处理的方法以及总线通信系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling
US10067827B2 (en) 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
US12001270B2 (en) 2021-12-07 2024-06-04 Microchip Technology Incorporated Vector fetch bus error handling
WO2023107532A1 (en) * 2021-12-07 2023-06-15 Microchip Technology Incorporated Vector fetch bus error handling

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5995500A (ja) 1982-11-24 1984-06-01 株式会社東芝 沸騰水形原子炉
JPS5995500U (ja) * 1983-11-24 1984-06-28 富士通株式会社 記憶装置
JPH01226031A (ja) * 1988-03-07 1989-09-08 Oki Electric Ind Co Ltd 情報処理装置のパイプライン制御方式
JPH0212445A (ja) * 1988-06-30 1990-01-17 Mitsubishi Electric Corp 記憶装置
JPH03154929A (ja) * 1989-11-13 1991-07-02 Nec Corp 中央処理装置
US6757809B1 (en) * 1989-12-16 2004-06-29 Renesas Technology Corp. Data processor having 2n bits width data bus for context switching functions
JPH05100844A (ja) * 1991-10-08 1993-04-23 Nec Corp マイクロ・プロセツサのプログラムウエイト制御回路
JPH05108493A (ja) * 1991-10-17 1993-04-30 Shikoku Nippon Denki Software Kk メモリ制御方式
JPH06242977A (ja) * 1993-02-16 1994-09-02 Mitsubishi Electric Corp 1チップマイクロプロセッサ
JPH08305637A (ja) * 1995-05-10 1996-11-22 Hitachi Ltd 記憶装置
JPH09198257A (ja) * 1996-01-19 1997-07-31 Sanyo Electric Co Ltd プログラム実行方法およびこの方法を用いたプログラム実行装置
JPH10240306A (ja) * 1997-02-24 1998-09-11 Mitsubishi Electric Corp 制御命令演算処理装置
JP3014682B2 (ja) * 1997-11-21 2000-02-28 松下電器産業株式会社 プログラム制御方法及び装置
JP2000148499A (ja) * 1998-11-18 2000-05-30 Fujitsu Ltd スーパースカラ・プロセッサ
US6823448B2 (en) * 2000-12-15 2004-11-23 Intel Corporation Exception handling using an exception pipeline in a pipelined processor
JP4063529B2 (ja) * 2001-11-28 2008-03-19 Necエレクトロニクス株式会社 バスシステムおよびリトライ方法
US7278062B2 (en) * 2003-01-09 2007-10-02 Freescale Semiconductor, Inc. Method and apparatus for responding to access errors in a data processing system
US7370260B2 (en) * 2003-12-16 2008-05-06 Freescale Semiconductor, Inc. MRAM having error correction code circuitry and method therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514058A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 一种数据失效的处理方法、设备及系统
CN103514058B (zh) * 2012-06-29 2016-06-15 华为技术有限公司 一种数据失效的处理方法、设备及系统
CN109358903A (zh) * 2017-06-22 2019-02-19 瑞萨电子株式会社 数据访问设备和访问错误通知方法
CN109358903B (zh) * 2017-06-22 2023-10-24 瑞萨电子株式会社 数据访问设备和访问错误通知方法
CN110635964A (zh) * 2018-06-22 2019-12-31 克洛纳测量技术有限公司 用于在总线通信时进行错误处理的方法以及总线通信系统

Also Published As

Publication number Publication date
TWI338836B (en) 2011-03-11
JP2008090542A (ja) 2008-04-17
US20080082861A1 (en) 2008-04-03
US8032794B2 (en) 2011-10-04
TW200815977A (en) 2008-04-01
JP5245237B2 (ja) 2013-07-24
CN100547554C (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
CN100547554C (zh) 错误处理方法和信息处理装置
US6591378B1 (en) Debug controller in a data processor and method therefor
US6754856B2 (en) Memory access debug facility
US6055625A (en) Pipeline computer with a scoreboard control circuit to prevent interference between registers
US20080109614A1 (en) Speculative data value usage
US7900036B2 (en) System and method for implementing boot/recovery on a data processing sysem
US8195946B2 (en) Protection of data of a memory associated with a microprocessor
CN100334561C (zh) 程序调试装置、程序调试方法
JPS5958547A (ja) マイクロプログラム制御装置のエラ−処理方式
CN100474278C (zh) 直接存储器存取电路以及使用该电路的盘阵列设备
US20100017579A1 (en) Program-Controlled Unit and Method for Operating Same
JP5292706B2 (ja) コンピュータシステム
US6671793B1 (en) Method and system for managing the result from a translator co-processor in a pipelined processor
US20070067677A1 (en) Program-controlled unit and method
US6799285B2 (en) Self-checking multi-threaded processor
WO1997008618A1 (en) Data processing apparatus and method for correcting faulty microcode
CN1329839C (zh) 一种计算机cpu抗干扰的设计方法
US6725362B2 (en) Method for encoding an instruction set with a load with conditional fault instruction
US6990569B2 (en) Handling problematic events in a data processing apparatus
US8176301B2 (en) Millicode assist instructions for millicode store access exception checking
US7353343B2 (en) Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory
JPS5943447A (ja) デ−タ処理装置
EP0655686B1 (en) Retry control method and device for control processor
JPH07262032A (ja) 情報処理装置
CN102364432B (zh) 使用双程序计数器计算待处理指令地址的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: FUJITSU MICROELECTRONICS CO., LTD.

Free format text: FORMER OWNER: FUJITSU LIMITED

Effective date: 20081024

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081024

Address after: Tokyo, Japan, Japan

Applicant after: Fujitsu Microelectronics Ltd.

Address before: Kanagawa

Applicant before: Fujitsu Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: FUJITSU SEMICONDUCTORS CO., LTD

Free format text: FORMER NAME: FUJITSU MICROELECTRON CO., LTD.

CP03 Change of name, title or address

Address after: Kanagawa

Patentee after: Fujitsu Semiconductor Co., Ltd.

Address before: Tokyo, Japan, Japan

Patentee before: Fujitsu Microelectronics Ltd.

ASS Succession or assignment of patent right

Owner name: SPANSION LLC N. D. GES D. STAATES

Free format text: FORMER OWNER: FUJITSU SEMICONDUCTOR CO., LTD.

Effective date: 20140106

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140106

Address after: American California

Patentee after: Spansion LLC N. D. Ges D. Staates

Address before: Kanagawa

Patentee before: Fujitsu Semiconductor Co., Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160408

Address after: American California

Patentee after: Cypress Semiconductor Corp.

Address before: American California

Patentee before: Spansion LLC N. D. Ges D. Staates