CN115391079A - 一种基于五级流水线处理器的中断与异常处理方法 - Google Patents

一种基于五级流水线处理器的中断与异常处理方法 Download PDF

Info

Publication number
CN115391079A
CN115391079A CN202211025805.2A CN202211025805A CN115391079A CN 115391079 A CN115391079 A CN 115391079A CN 202211025805 A CN202211025805 A CN 202211025805A CN 115391079 A CN115391079 A CN 115391079A
Authority
CN
China
Prior art keywords
interrupt
exception
stage
processor
instruction
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
Application number
CN202211025805.2A
Other languages
English (en)
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.)
Cetc Shentai Information Technology Co ltd
Original Assignee
Cetc Shentai Information Technology Co 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 Cetc Shentai Information Technology Co ltd filed Critical Cetc Shentai Information Technology Co ltd
Priority to CN202211025805.2A priority Critical patent/CN115391079A/zh
Publication of CN115391079A publication Critical patent/CN115391079A/zh
Pending legal-status Critical Current

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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

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)

Abstract

本发明公开一种基于五级流水线处理器的中断与异常处理方法,属于处理器系统中的中断与异常领域。首先采样外部输入中断、五级流水线处理器中的各阶段异常状态信息;再中断与异常处理控制,在所述五级流水线处理器的译码阶段响应进入和退出中断与异常处理。本发明将中断与异常的处理提前至指令译码阶段实现,可以减少后续指令的冲刷,提高系统的性能;进入和退出中断与异常的处理控制,根据处理器状态更新寄存器,有效的保存和恢复中断与异常发生前状态。

Description

一种基于五级流水线处理器的中断与异常处理方法
技术领域
本发明涉及处理器系统中的中断与异常技术领域,特别涉及一种基于五级流水线处理器的中断与异常处理方法。
背景技术
五级流水线的处理器系统通常包括从存储器中取指令、读寄存器并译码指令、执行操作或计算地址、访问数据存储器中的操作数及将执行或访存结果写入寄存器五部分内容,其中后两部分内容根据实际指令操作进行选择使用。
中断与异常主要是处理器核在顺序执行程序指令流的过程中突然被别的请求打断或遇到异常事情而中止执行当前的程序,转而去处理别的事情;待其处理完了别的事情,然后重新回到之前程序中断的点继续执行之前的程序指令流。
中断主要来源于处理器外部事件的触发。当外部事件有效时,处理器需要保存当前现场,转而处理中断程序,等待中断程序处理完成,处理器恢复之前程序继续执行;异常主要来源处理器内部事件或程序执行中的事件引起的,与中断服务程序类似,异常的进入和退出也需要保存和恢复现场。从本质上来讲,中断与异常的处理流程基本一致,因此也可以说中断与异常可被认为是一种广义上的异常。
在五级流水线的处理器系统中,中断与异常作为一种广义上的异常,可能出现在流水线的各个阶段。因此,针对五级流水线处理器架构中的中断与异常的处理,亟需一种基于五级流水线的处理器中断与异常的处理方法。
发明内容
本发明的目的在于提供一种基于五级流水线处理器的中断与异常处理方法,以解决目前五级流水线处理器架构中出现的中断与异常的问题。
为解决上述技术问题,本发明提供了一种基于五级流水线处理器的中断与异常处理方法,包括:
采样外部输入中断、五级流水线处理器中的各阶段异常状态信息;
中断与异常处理控制,在所述五级流水线处理器的译码阶段响应进入和退出中断与异常处理。
在一种实施方式中,所述外部输入中断包括外部中断、计时器中断、软件中断和调试中断;中断的产生时机处在所述五级流水线处理器的取指、译码、执行、访存及写回五个阶段中的任何一个阶段。
在一种实施方式中,所述五级流水线处理器中的异常包括非法指令、执行运算、指令存储器和数据存储器访问时发生的异常;其中非法指令产生异常在所述五级流水线处理器的译码阶段,执行运算异常出现在所述五级流水线处理器的执行阶段,指令存储器访问产生的异常出现在所述五级流水线处理器的取指阶段,数据存储器访问产生的异常出现在所述五级流水线处理器的访存阶段。
在一种实施方式中,所述中断与异常处理的时机放在五级流水线处理器的译码阶段中,在所述译码阶段收集中断与异常信息,当存在中断与异常响应时,处理器进入中断与异常处理控制,保存当前处理运行状态,转而运行中断与异常服务程序;当此异常或中断处理完成时,软件发送退出中断与异常指令,此时处理器退出中断与异常服务程序,恢复之前运行的程序。
在一种实施方式中,所述译码阶段中发现中断与异常时,进入中断与异常处理控制,保存当前中断与异常的PC值,更新当前中断与异常原因、异常值及中断与异常状态信息,所述中断与异常状态信息通过控制状态寄存器与软件进行交互,通知软件当前处理器中所存在中断与异常的状态信息;当中断与异常发生时,进行流水线冲刷,最后根据软件设置的中断与异常处理入口地址开始中断与异常的程序执行。
在一种实施方式中,当前中断与异常服务程序执行结束时,软件发送中断与异常退出指令,当译码阶段检测到中断与异常退出指令,则退出中断与异常服务程序,处理器从进入中断与异常处理控制时保存的指令PC值处开始继续执行先前的程序,处理器内部同时恢复中断与异常状态信息。
本发明提供的一种基于五级流水线处理器的中断与异常处理方法,可以高效的处理五级流水线处理器中的中断与异常控制问题,主要体现在:
(1)将中断与异常的处理提前至指令译码阶段实现,可以减少后续指令的冲刷,提高系统的性能;
(2)进入和退出中断与异常的处理控制,根据处理器状态更新寄存器,有效的保存和恢复中断与异常发生前状态。
附图说明
图1为本发明提供的中断与异常处理设计结构示意图;
图2为进入中断与异常处理流程图;
图3为退出中断与异常处理流程图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种基于五级流水线处理器的中断与异常处理方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
五级流水线处理器包括取指、译码、执行、访存及写回五个阶段;所述五级流水线处理器中,异常的主要种类有非法指令、执行运算、指令和数据存储器访问时所产生的异常等,其中非法指令产生异常主要在指令译码阶段,执行运算异常主要出现在执行阶段,指令存储器访问产生的异常出现在取指阶段,数据存储器访问产生的异常出现在访存阶段。除此之外,还包括断点异常及环境调用异常等特殊异常形式。中断主要包括外部中断、计时器中断、软件中断及外部调试中断等。
当中断与异常发生,进入中断与异常服务程序处理,保存当前处理运行状态,转而运行中断与异常服务程序;待中断与异常处理结束后,恢复之前运行的程序。进入中断与异常处理时需保证当前指令能够正常提交,当前指令也不处在预测状态。由于进入中断与异常服务程序处理时需要将流水线中后续指令冲刷,流水线指令的冲刷会降低处理器性能,因此,中断与异常提前处理可以减少被冲刷的指令,而分支预测结果可以提前在指令译码阶段实现,相当于指令译码阶段可以确定该指令正常提交情况。针对五级流水线的该特点,本发明将中断与异常的处理控制放在指令译码阶段,在确定当前指令可正常提交情况下,触发中断与异常的控制处理,中断与异常在整个五级流水线中的处理架构如图1所示。在指令译码阶段收集中断与异常信息,当存在中断与异常响应时,处理器进入中断与异常处理控制。当此异常或中断处理完成时,软件发送退出中断与异常指令,此时处理器退出中断与异常服务程序。以下为处理器在进入与退出中断与异常时处理流程。
进入中断与异常服务程序:
当中断与异常单元检测到处理器系统中存在中断与异常发生,则进入中断与异常服务程序控制处理,进入中断与异常处理流程图如图2所示:
首先,处理器停止当前执行程序,冲刷流水线,将流水线中存在的后续指令进行清除;同时更新中断与异常相关的控制状态寄存器。所述控制状态寄存器包括中断与异常PC值寄存器、中断与异常原因寄存器、中断与异常值寄存器以及处理器状态寄存器,以下分别说明这些控制状态寄存器的更新内容。
中断与异常PC值寄存器为保存中断与异常发生时的PC值,待中断与异常服务程序执行结束退出后恢复继续执行先前的指令。中断与异常PC值寄存器的PC值更新方式:
中断引起。如果当前中断与异常类型为外部输入中断,则当前所执行指令继续执行直到正常提交,因此中断与异常PC值寄存器更新值为下一条尚未执行指令PC值;
处理器内部异常引起。如果当前中断与异常类型为处理器内部异常,则分为同步异常和异步异常的处理方式。由于访存产生异常,返回需要一段时间,即处理器访存过程中出现错误所导致的异常可被称为异步异常,异常返回时,流水线中当前PC值并不代表发生错误的PC值,因此在访存阶段处理时,可将当前指令的PC值加以记录。当出现异步异常时,中断与异常PC值寄存器更新值为发生错误指令的PC值;其他异常可称为同步异常。发生同步异常时,当前流水线寄存器提供的PC值即为发生错误指令的PC值,即出现同步异常,中断与异常PC值寄存器更新值为当前发生异常时的PC值;
特殊指令引起。如果处理器内部异常由ECALL/EBREAK指令所引起,则处理方式与中断类似,中断与异常PC值寄存器更新值为下一条尚未执行指令PC值。
中断与异常原因寄存器为记录中断与异常发生时的异常原因,通知软件当前处理器发生的中断与异常类型,即当中断与异常发生时,根据当前所发生中断与异常原因,更新中断与异常原因寄存器内容。
中断与异常值寄存器为记录中断与异常发生时的异常值,主要包括中断与异常发生时的异常地址或指令编码。当处理器响应中断时,中断与异常值寄存器值更新为0,当处理器响应异常时,中断与异常值寄存器根据不同异常类型进行更新。
处理器状态寄存器主要记录中断与异常发生时状态信息,所述处理器状态寄存器主要更新内容为保存当前程序的工作模式,同时将后续中断屏蔽,即在中断与异常处理期间禁止响应新中断。
接下来,软件通过对中断与异常控制状态寄存器的访问,明确当前处理器中断与异常的状态信息,软件便进行当前中断与异常处理,更新中断与异常服务程序入口地址寄存器,处理器根据该中断与异常服务程序入口地址开始执行中断与异常服务程序。
退出中断与异常服务程序:
当中断与异常服务程序执行结束,需要退出中断与异常处理,转而继续执行先前保存好的程序。退出中断与异常处理流程图如图3所示:
退出中断与异常需要软件主动发送中断与异常退出指令。当软件发送退出指令,处理器收到该指令后便执行中断与异常退出流程。
首先,处理器会根据进入中断与异常时更新的中断与异常PC值寄存器,恢复继续执行先前的程序。
接下来,更新处理器状态寄存器,主要包括取消屏蔽中断响应状态及恢复中断与异常处理之前的工作模式。
本发明主要针对存在的中断与异常情况,提供五级流水线处理器内处理外部中断和内部异常方法,在五级流水线处理器的指令译码阶段时响应该中断与异常的处理,并保存中断与异常发生时的状态信息,待中断与异常处理结束后恢复之前的流程。本发明通过将中断与异常处理放到五级流水线处理器中的指令译码阶段响应来更高效的实现五级流水线处理器中断与异常的处理控制。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

Claims (6)

1.一种基于五级流水线处理器的中断与异常处理方法,其特征在于,包括:
采样外部输入中断、五级流水线处理器中的各阶段异常状态信息;
中断与异常处理控制,在所述五级流水线处理器的译码阶段响应进入和退出中断与异常处理。
2.如权利要求1所述的基于五级流水线处理器的中断与异常处理方法,其特征在于,所述外部输入中断包括外部中断、计时器中断、软件中断和调试中断;中断的产生时机处在所述五级流水线处理器的取指、译码、执行、访存及写回五个阶段中的任何一个阶段。
3.如权利要求1所述的基于五级流水线处理器的中断与异常处理方法,其特征在于,所述五级流水线处理器中的异常包括非法指令、执行运算、指令存储器和数据存储器访问时发生的异常;其中非法指令产生异常在所述五级流水线处理器的译码阶段,执行运算异常出现在所述五级流水线处理器的执行阶段,指令存储器访问产生的异常出现在所述五级流水线处理器的取指阶段,数据存储器访问产生的异常出现在所述五级流水线处理器的访存阶段。
4.如权利要求1所述的基于五级流水线处理器的中断与异常处理方法,其特征在于,所述中断与异常处理的时机放在五级流水线处理器的译码阶段中,在所述译码阶段收集中断与异常信息,当存在中断与异常响应时,处理器进入中断与异常处理控制,保存当前处理运行状态,转而运行中断与异常服务程序;当此异常或中断处理完成时,软件发送退出中断与异常指令,此时处理器退出中断与异常服务程序,恢复之前运行的程序。
5.如权利要求4所述的基于五级流水线处理器的中断与异常处理方法,其特征在于,所述译码阶段中发现中断与异常时,进入中断与异常处理控制,保存当前中断与异常的PC值,更新当前中断与异常原因、异常值及中断与异常状态信息,所述中断与异常状态信息通过控制状态寄存器与软件进行交互,通知软件当前处理器中所存在中断与异常的状态信息;当中断与异常发生时,进行流水线冲刷,最后根据软件设置的中断与异常处理入口地址开始中断与异常的程序执行。
6.如权利要求5所述的基于五级流水线处理器的中断与异常处理方法,其特征在于,当前中断与异常服务程序执行结束时,软件发送中断与异常退出指令,当译码阶段检测到中断与异常退出指令,则退出中断与异常服务程序,处理器从进入中断与异常处理控制时保存的指令PC值处开始继续执行先前的程序,处理器内部同时恢复中断与异常状态信息。
CN202211025805.2A 2022-08-25 2022-08-25 一种基于五级流水线处理器的中断与异常处理方法 Pending CN115391079A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211025805.2A CN115391079A (zh) 2022-08-25 2022-08-25 一种基于五级流水线处理器的中断与异常处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211025805.2A CN115391079A (zh) 2022-08-25 2022-08-25 一种基于五级流水线处理器的中断与异常处理方法

Publications (1)

Publication Number Publication Date
CN115391079A true CN115391079A (zh) 2022-11-25

Family

ID=84122645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211025805.2A Pending CN115391079A (zh) 2022-08-25 2022-08-25 一种基于五级流水线处理器的中断与异常处理方法

Country Status (1)

Country Link
CN (1) CN115391079A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215819A (zh) * 2023-09-11 2023-12-12 上海合芯数字科技有限公司 一种机器异常检查中断的处理方法及装置
CN117251393A (zh) * 2023-11-17 2023-12-19 北京智芯微电子科技有限公司 处理器的中断响应方法、装置、芯片、计算机设备和介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215819A (zh) * 2023-09-11 2023-12-12 上海合芯数字科技有限公司 一种机器异常检查中断的处理方法及装置
CN117215819B (zh) * 2023-09-11 2024-03-19 上海合芯数字科技有限公司 一种机器异常检查中断的处理方法及装置
CN117251393A (zh) * 2023-11-17 2023-12-19 北京智芯微电子科技有限公司 处理器的中断响应方法、装置、芯片、计算机设备和介质
CN117251393B (zh) * 2023-11-17 2024-04-12 北京智芯微电子科技有限公司 处理器的中断响应方法、装置、芯片、计算机设备和介质

Similar Documents

Publication Publication Date Title
CN115391079A (zh) 一种基于五级流水线处理器的中断与异常处理方法
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US6694427B1 (en) Method system and apparatus for instruction tracing with out of order processors
JP2951738B2 (ja) 改良されたプロセッサ
US6848044B2 (en) Circuits and methods for recovering link stack data upon branch instruction mis-speculation
CN108694094B (zh) 用于处理存储器访问操作的装置和方法
TW201439904A (zh) 在提前執行中管理潛在無效結果
CN111133418A (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
JP2002342114A (ja) トレースデータ採取可能なプロセッサ
US6681321B1 (en) Method system and apparatus for instruction execution tracing with out of order processors
US8135909B2 (en) System for starting a preload of a second program while a first program is executing
CN111045730B (zh) 一种用于risc-v架构的硬件快速中断处理系统及其方法
US6543003B1 (en) Method and apparatus for multi-stage hang recovery in an out-of-order microprocessor
JPH1196006A (ja) 情報処理装置
JP2000029702A (ja) コンピュ―タ・プロセッサ
US7249285B2 (en) Address watch breakpoints in a hardware synchronization range
JP2009230479A (ja) マイクロプロセッサ
JPH0895798A (ja) データ処理装置
JP3112861B2 (ja) マイクロプロセッサ
EP3743818B1 (en) Commit window move element
JP2783285B2 (ja) 情報処理装置
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JP3766772B2 (ja) 情報処理装置、例外回復処理方法および記録媒体
CN114237709A (zh) 一种处理龙芯处理器浮点运算“未实现”的异常的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination