CN104268029A - 一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 - Google Patents
一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 Download PDFInfo
- Publication number
- CN104268029A CN104268029A CN201410489855.5A CN201410489855A CN104268029A CN 104268029 A CN104268029 A CN 104268029A CN 201410489855 A CN201410489855 A CN 201410489855A CN 104268029 A CN104268029 A CN 104268029A
- Authority
- CN
- China
- Prior art keywords
- abnormal
- processor
- circuit
- nested
- exception
- 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.)
- Pending
Links
Landscapes
- Retry When Errors Occur (AREA)
Abstract
本发明创造提供了一种用于嵌入式PowerPC处理器异常嵌套的处理电路,包括:处理器内核、内部寄存器访问电路、用于检测处理器内部异常的检测电路、用于使处理器进入停止状态的暂停控制电路,以及一套使处理器复位的复位控制电路,其特征在于:所述的处理电路还包括:总控制开关电路、可被读写的寄存器控制位、可被读写的包含异常嵌套是否已经发生信息的寄存器标志位、一组可被读写的包含异常嵌套事件最新异常种类编号的寄存器标志段、以及一个可被读写的控制异常嵌套处理方法的寄存器控制位。由于采用上述技术方案,能够有效避免PowerPC处理器由于异常嵌套而造成的处理器进入死机或混乱状态的情况。
Description
技术领域
本发明属于计算机领域,尤其是涉及一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法。
背景技术
中断的响应和处理是嵌入式处理器的核心技术之一,各种主流处理器家族,对于中断的划分和处理方式都不尽相同。PowerPC家族处理器将中断划分为内部异常和外部中断两大类.外部中断的发起来自处理器外部的其他模块,而内部异常的发起则来自处理器内部。
内部异常的发生,是源于处理器运行过程中出现的各种错误,如指令编码未被识别,指令无执行权限,数据存取操作失败等。这些错误会导致处理器不能正确依据预先编写的程序,完成既定动作。当内部异常发生时,PowerPC家族处理器会停止当前程序的执行,并自动进入异常处理模式。
在自动进入异常处理模式后,处理器会根据预先编写好的异常处理程序,保存本次异常发生前处理器的主要状态信息,然后排查并记录异常发生的具体原因,或通过某种手段消除引起本次异常的源头事件。在完成上述动作后,如果异常处理程序认为经过上述处理,异常的源头事件已不存在,则恢复进入异常处理模式前处理器的主要状态信息,并令处理器从异常处理模式返回正常工作模式,继续执行刚才被打断的正常程序.
但在较坏的情况下,如处理器在进入异常处理模式后,未能正常执行预先编写好的异常处理程序,其原因可能为又发生了一次引起处理器异常的事件,此时,对异常的处理将失败.在上述多次异常事件嵌套发生的情况下,处理器中执行的程序流将变得不可控,即俗称的处理器跑飞现象.
发明内容
本发明要解决的问题是提供一种用于嵌入式PowerPC处理器异常嵌套的处理电路及处理方法,尤其适合于复杂情况下处理器异常嵌套的处理。
为解决上述技术问题,本发明采用的技术方案是:一种用于嵌入式PowerPC处理器异常嵌套的处理电路,包括:处理器内核、内部寄存器访问电路、用于检测处理器内部异常的检测电路、用于使处理器进入停止状态的暂停控制电路,以及一套使处理器复位的复位控制电路,其特征在于:所述的处理电路还包括:总控制开关电路、可被读写的寄存器控制位、可被读写的包含异常嵌套是否已经发生信息的寄存器标志位、一组可被读写的包含异常嵌套事件最新异常种类编号的寄存器标志段、以及一个可被读写的控制异常嵌套处理方法的寄存器控制位。
进一步的,所述的处理电路还包括:异常信息收集与记录电路,以及异常嵌套处理信号选择电路。
根据本发明的另一方面,还提供了一种用于嵌入式PowerPC处理器异常嵌套的处理电路的处理方法,所述的方法包括:
监测是否有新的异常发生,如果没有则继续监测,若监测到新的异常发生,则
监测异常嵌套开关状态,若为关闭,则按照普通异常处理流程处理,如果异常嵌套开关状态为打开,则
判断是否发生异常嵌套事件,若非异常嵌套事件转入普通异常处理流程,若为异常嵌套事件,则
读取预存在寄存器中的异常嵌套标志和编号;
异常嵌套处理信号选择电路按照对应的异常嵌套标志和编号进行处理。
更进一步的,所述的用于嵌入式PowerPC处理器异常嵌套的处理电路的处理方法,所述的方法还包括以下步骤:
异常信息收集与记录电路对异常信息进行技术和异常种类编号,并将其存入异常嵌套事件异常种类编号的寄存器标志段。
本发明具有的优点和积极效果是:由于采用上述技术方案,能够有效避免PowerPC处理器由于异常嵌套而造成的处理器进入死机或混乱状态的情况。
附图说明
图1是本发明的的一个实例中处理器异常嵌套处理电路示意图
图2是本发明的的一个实例中处理器异常嵌套处理流程示意图
具体实施方式
首先对于本发明所针对的异常事件进行说明,所述的异常事件特指引起嵌入式PowerPC家族处理器内部异常的事件,具体包括如下几类事件:
1.非法指令事件,即处理器执行一条不能识别的指令。
2.指令权限错误事件,即处理器执行一条可识别的指令,但处理器所处的当前状态,无执行此指令的权限。
3.寄存器权限错误事件,即处理器进行读或写某个寄存器的操作,但处理器所处的当前状态,无读或写此寄存器的权限。
4.寄存器地址错误事件,即处理器进行读或写某个寄存器的操作,但处理器给出的目标地址不正确。
5.存取数据地址错误事件,即处理器对与处理器相连的总线进行存或取数据的操作,但处理器给出的目标地址不正确。
6.存取数据错误事件,即处理器对与处理器相连的总线进行存或取数据的操作,但总线未能正确响应此操作。
7.校验错误事件,即处理器内部的校验电路监测到有校验错误发生。
下面结合附图对本发明做一详尽说明,如图1所示,本发明提供了一种本发明的的一个实例中处理器异常嵌套处理电路,包括了一个总控制开关电路以及对应的一个可读写的处理器内部寄存器控制位。当此控制位被设置为开启时,上述对多次异常事件嵌套的处理机制将在满足条件时发生作用.反之,当此控制位被设置为关闭时,上述对多次异常事件嵌套的处理机制,在满足条件时也不发生作用。此外,还包括了一个异常嵌套事件是否发生的记录电路,以及对应的一个可读写的处理器内部寄存器标志位。当上述总控制开关为开启状态,且发生了一个异常嵌套事件,则该寄存器的标志位变为有效值。该寄存器可以被处理器通过指令进行读写操作。该寄存器的标志位的值不受处理器复位影响。此外还需要一个控制异常嵌套处理办法的选择电路以及对应的一个可读写的处理器内部寄存器控制位。当此控制位被设置为有效时,对异常嵌套处理办法将为使处理器暂停状态;反之,当此控制位被设置为无效时,对异常嵌套处理办法将为使处理器复位。对于处理器暂停后,还需要一个相应的控制处理器进入暂停状态的电路和从暂停状态返回的电路。当总控制开关位与处理办法开关位均有效时,在异常发生嵌套后,该电路使处理器自动进入暂停状态,等待外部调试。在外部调试结束后,可以通过外部调试命令,使处理器从暂停状态返回,继续正常执行目标程序。此外本电路还包括了控制处理器复位的电路。当总控制开关位为有效值,且处理办法开关位为无效时,在异常发生嵌套后,该电路使处理器自动复位。
下面结合本发明所提供的电路和方法在实际过程中的应用对本发明作进一步的阐述,PowerPC处理器会在每个周期监测是否有新的异常事件发生。所述的异常事件为前面所提到的几种情况之一,如果确认了一个新的异常事件产生,则首先依据异常嵌套总控制开关的状态,分为两种情况进行处理,如果控制开关处于关闭或无效状态,则处理器进行普通的异常处理流程。如果控制开关处于开启状态,则由异常收集电路来判断是否有异常嵌套事件发生。如果没有异常嵌套事件发生,则处理器仍旧进行普通的异常处理流程。如果确认发生了异常嵌套事件,则异常收集电路负责更新异常嵌套标志位,以及异常嵌套种类编号段的值。并且根据嵌套种类编号段的值来对应确定异常嵌套处理方法寄存器控制位,此种对应可以通过预设置来完成。而后依据异常嵌套处理方法控制电路的状态,进行对应的处理。异常嵌套总控制开关通过人工进行设置。如果异常嵌套的处理方法被设置为暂停方式,则双路选择电路向处理器内核发出暂停处理器的请求信号,使处理器进入暂停状态。如果异常嵌套的处理方法被设置为非暂停方式,则双路选择电路向处理器内核发出复位处理器的请求信号,使处理器进行复位。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (4)
1.一种用于嵌入式PowerPC处理器异常嵌套的处理电路,包括:处理器内核、内部寄存器访问电路、用于检测处理器内部异常的检测电路、用于使处理器进入停止状态的暂停控制电路,以及一套使处理器复位的复位控制电路,其特征在于:所述的处理电路还包括:总控制开关电路、可被读写的寄存器控制位、可被读写的包含异常嵌套是否已经发生信息的寄存器标志位、一组可被读写的包含异常嵌套事件最新异常种类编号的寄存器标志段、以及一个可被读写的控制异常嵌套处理方法的寄存器控制位。
2.根据权利要求1所述的用于嵌入式PowerPC处理器异常嵌套的处理电路,其特征在于:所述的处理电路还包括:异常信息收集与记录电路,以及异常嵌套处理信号选择电路。
3.一种根据权利要求1所述的用于嵌入式PowerPC处理器异常嵌套的处理电路的处理方法,所述的方法包括:
监测是否有新的异常发生,如果没有则继续监测,若监测到新的异常发生,则
监测异常嵌套开关状态,若为关闭,则按照普通异常处理流程处理,如果异常嵌套开关状态为打开,则
判断是否发生异常嵌套事件,若非异常嵌套事件转入普通异常处理流程,若为异常嵌套事件,则
读取预存在寄存器中的异常嵌套标志和编号;
异常嵌套处理信号选择电路按照对应的异常嵌套标志和编号进行处理。
4.根据权利要求3所述的用于嵌入式PowerPC处理器异常嵌套的处理电路的处理方法,其特征在于所述的方法还包括以下步骤:
异常信息收集与记录电路对异常信息进行技术和异常种类编号,并将其存入异常嵌套事件异常种类编号的寄存器标志段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410489855.5A CN104268029A (zh) | 2014-09-23 | 2014-09-23 | 一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410489855.5A CN104268029A (zh) | 2014-09-23 | 2014-09-23 | 一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104268029A true CN104268029A (zh) | 2015-01-07 |
Family
ID=52159553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410489855.5A Pending CN104268029A (zh) | 2014-09-23 | 2014-09-23 | 一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268029A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535790A (zh) * | 2019-08-23 | 2019-12-03 | 天津芯海创科技有限公司 | 基于semaphore的交换芯片异常报文处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04267438A (ja) * | 1991-02-22 | 1992-09-24 | Nec Corp | 二重例外検出装置 |
CN101075184A (zh) * | 2006-05-18 | 2007-11-21 | 中国科学院计算技术研究所 | 对预处理微指令发生异常多层嵌套进行处理的设备及方法 |
CN101122880A (zh) * | 2007-09-17 | 2008-02-13 | 福建星网锐捷网络有限公司 | 内嵌调试器的嵌入式系统及嵌入式系统调试方法 |
US20140208086A1 (en) * | 2013-01-23 | 2014-07-24 | International Business Machines Corporation | Vector exception code |
-
2014
- 2014-09-23 CN CN201410489855.5A patent/CN104268029A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04267438A (ja) * | 1991-02-22 | 1992-09-24 | Nec Corp | 二重例外検出装置 |
CN101075184A (zh) * | 2006-05-18 | 2007-11-21 | 中国科学院计算技术研究所 | 对预处理微指令发生异常多层嵌套进行处理的设备及方法 |
CN101122880A (zh) * | 2007-09-17 | 2008-02-13 | 福建星网锐捷网络有限公司 | 内嵌调试器的嵌入式系统及嵌入式系统调试方法 |
US20140208086A1 (en) * | 2013-01-23 | 2014-07-24 | International Business Machines Corporation | Vector exception code |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535790A (zh) * | 2019-08-23 | 2019-12-03 | 天津芯海创科技有限公司 | 基于semaphore的交换芯片异常报文处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2966650B1 (en) | Memory built-in self test for a data processing apparatus | |
US10761925B2 (en) | Multi-channel network-on-a-chip | |
US8656228B2 (en) | Memory error isolation and recovery in a multiprocessor computer system | |
RU2012144563A (ru) | Контрольно-вычислительная система, способ управления контрольно-вычислительной системой, а также применение контрольно-вычислительной системы | |
CN108630284B (zh) | 使用存储器内置自测的存储器保护电路测试和存储器擦洗 | |
CN102768531B (zh) | 提高单处理机结构aps系统安全性的方法 | |
CN108073105A (zh) | 基于异构双处理器冗余结构的安全plc装置和实现方法 | |
CN105630732A (zh) | 一种双模冗余微处理器的热切换方法 | |
US10649829B2 (en) | Tracking errors associated with memory access operations | |
CN102521086B (zh) | 基于锁步同步的双模冗余系统及其实现方法 | |
CN104781790B (zh) | 用信号通知软件可恢复错误 | |
KR101448013B1 (ko) | 항공기용 다중 컴퓨터의 고장 허용 장치 및 방법 | |
CN104268029A (zh) | 一种用于嵌入式PowerPC处理器异常嵌套的处理电路及方法 | |
CN1329839C (zh) | 一种计算机cpu抗干扰的设计方法 | |
US20090024908A1 (en) | Method for error registration and corresponding register | |
CN101529397B (zh) | 地址线故障处理装置、地址线故障处理方法、地址线故障处理程序、信息处理装置以及存储器控制器 | |
CN103514071B (zh) | 非破坏性的内存在线测试方法 | |
CN205193787U (zh) | 一种双模冗余流水线的故障检测及回退装置 | |
JP5440673B1 (ja) | プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム | |
US10684908B2 (en) | Method for fault detection in an operating system | |
US9772897B1 (en) | Methods and systems for improving safety of processor system | |
WO2012137321A1 (ja) | 情報処理装置、及びその方法 | |
US20170308469A1 (en) | Resource Processing Method and Device for Multi-controller System | |
JPS6095663A (ja) | 2重化磁気デイスク装置の自動切換装置 | |
JPS59201110A (ja) | プログラマブルコントロ−ラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150107 |
|
RJ01 | Rejection of invention patent application after publication |