CN116302648A - 一种基于双核锁步处理器的故障处理方法 - Google Patents

一种基于双核锁步处理器的故障处理方法 Download PDF

Info

Publication number
CN116302648A
CN116302648A CN202310210412.7A CN202310210412A CN116302648A CN 116302648 A CN116302648 A CN 116302648A CN 202310210412 A CN202310210412 A CN 202310210412A CN 116302648 A CN116302648 A CN 116302648A
Authority
CN
China
Prior art keywords
fault
pipeline
stage
processor
processing module
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
CN202310210412.7A
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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202310210412.7A priority Critical patent/CN116302648A/zh
Publication of CN116302648A publication Critical patent/CN116302648A/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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种基于双核锁步处理器的故障处理方法,所述双核锁步处理器包括主处理器和从处理器,所述双核锁步处理器通过故障检测模块接收处理器后四级流水线输出的数据,输出故障标志信号和故障程序指针,通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚,通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态,防止超标量处理器故障处理过程中的数据冲突,从而实现对故障的全覆盖处理,兼顾低的时间开销和面积开销,同时兼顾高性能和高可靠性的优点。本发明可广泛应用于双核锁步处理器领域。

Description

一种基于双核锁步处理器的故障处理方法
技术领域
本发明涉及双核锁步处理器领域,特别涉及一种基于双核锁步处理器的故障处理方法。
背景技术
车载芯片是汽车实现其核心功能的关键硬件,在汽车“缺芯”和新能源车产销高速增长的双重背景下,车载芯片的需求日益增长。与手机芯片不同,研发车载芯片的瓶颈不在于制程,而在于可靠性、安全性和长效性。车载芯片需要具备功能安全以减轻由外部环境或人类操作引起的软错误对系统可靠性的影响。锁步处理器是缓解软错误、提高系统可靠性并最终实现功能安全的常规解决方案。
同时,车载应用对处理器性能的要求也不断提高。目前,处理器细粒度的故障处理无法兼顾高性能超标量,且在锁步过程中需要保存现场,造成额外的时间和面积开销。
发明内容
为了解决至少一个上述现有技术中存在的技术问题,本发明的目的在于提供一种基于双核锁步处理器的故障处理方法,包括:
所述双核锁步处理器包括主处理器和从处理器;所述基于双核锁步处理器的故障处理方法包括以下步骤:
通过故障检测模块接收后四级流水线输出的数据,输出故障标志信号和故障程序指针;所述后四级流水线为所述双核锁步处理器的后四级流水线阶段;
通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚;
通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态。
进一步地,所述后四级流水线阶段依次为译码级流水线、执行级流水线、访存级流水线以及写回级流水线。
进一步地,通过所述前端故障处理模块将所述故障程序指针传入程序指针寄存器;
根据所述故障程序指针的值,通过所述前端故障处理模块从第一级流水线开始执行故障处理并刷新流水线。
进一步地,所述通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚这一步骤,还包括:
根据来自不同流水线阶段的所述故障标志信号获取不同优先级的故障信息;所述故障信息包括所述故障标志信号和所述故障程序指针;
通过所述前端故障处理模块的复用器接收所述故障标志信号并开启故障计时器;
当故障持续时间超过所述故障计时器设定的可容忍的阈值,触发复位信号以重置系统。
进一步地,所述前端故障处理模块包括第一前端故障处理模块和第二前端故障处理模块;所述第一前端故障处理模块配置在所述双核锁步处理器的第一级PC级流水线;所述第二前端故障处理模块配置在所述双核锁步处理器的第二级取指级流水线;
所述通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚这一步骤,具体包括:
根据所述故障程序指针,通过所述前端故障处理模块获取对应的故障指令;
通过所述第一前端故障处理模块输出所述故障指令的下一条指令的程序指针并进行分支预测;
通过所述第二前端故障处理模块输出所述故障程序指针到指令缓存器;
根据所述第一前端故障处理模块的输出结果,通过所述第一级PC级流水线执行分支跳转;
根据所述第二前端故障处理模块的输出结果,通过所述第二级取值级流水线执行分支跳转。
进一步地,所述第一级PC级流水线和所述第二级取指级流水线还包括分支预测模块;
通过所述分支目标预测模块执行所述分支预测的功能。
进一步地,所述前端故障处理模块包括优先级仲裁器;
在所述根据所述故障程序指针,通过所述前端故障处理模块获取对应的故障指令这一步骤之前,根据所述优先级仲裁器的仲裁规则,确定所述故障程序指针的优先级。
进一步地,所述优先级仲裁器的仲裁规则包括:
不同阶段流水线的故障处理对应不同的分支跳转优先级;
发生故障的指令对应的故障程序指针的优先级高于程序分支跳转指令对应的程序指针;
后级流水线故障的程序指针的优先级高于前级;
系统复位的优先级高于流水线级别回滚的优先级。
进一步地,所述握手信号使用时序逻辑的形式控制;所述选择信号使用组合逻辑的形式控制;
所述通过后端故障处理模块控制所述后四级流水线握手信号和选择信号,管理所述后四级流水线和取指阶段流水线的运行状态这一步骤,具体包括:
响应所述握手信号,控制取指阶段和译码阶段的数据传输;
响应所述选择信号,控制后三级流水线阶段的数据传输。
进一步地,所述虚拟写回的容错机制用于在故障发生时,处理器把数据送入只读寄存器而无需中断流水线和无需保存现场。
本发明的有益效果是:使用超标量的高性能双核锁步处理器,通过故障检测模块检测出处理器后四级流水线的故障,通过前端故障处理模块接收故障检测模块输出的故障信息,进而完成流水线级别的回滚,通过后端故障处理模块控制握手信号和选择信号,以及执行虚拟写回的容错机制,管理后四级流水线的运行状态。本实施例中的故障处理方法,同时兼顾高性能和高可靠性的优点,在前端利用流水线级别回滚进行快速的故障处理,在后端通过执行虚拟写回的容错机制,防止处理器故障处理过程中的数据冲突,从而实现对故障的全覆盖处理,兼顾低的时间开销和面积开销。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的超标量双核锁步处理器架构示意图;
图2为根据本发明一个实施例的故障检测数据通路示意图;
图3为根据本发明一个实施例的前端故障处理模块示意图;
图4为根据本发明一个实施例的后端控制信号数据通路示意图;
图5为根据本发明一个实施例的译码级流水线的故障处理时序示意图;
图6为根据本发明一个实施例的数据冲突实例和“虚拟写回”容错机制示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的一种基于双核锁步处理器的故障处理方法。
图1为根据本发明一个实施例的超标量双核锁步处理器架构示意图。
如图1所示,该超标量双核锁步处理器架构包括:主、从处理器原型(对应图中的主、从模块),故障检测模块,前端故障处理模块,基于“虚拟写回”的后端故障处理模块。
在上述超标量双核锁步处理器架构中,主、从处理器原型的功能在于接收相同的输入,执行相同的运算过程并在各级流水线产生各自的输出。本发明并没有直接复制整个处理器内核,而是复制处理器内核内部的模块,外部接口保持不变。这一特点有助于支持核间互连、核与总线的互连以及与外设的互连,支持系统可配置、可移植。此外,并非所有模块都需要复制,复制的目的是为了进行故障检测,受软错误影响概率极低的模块不需要复制,这样就可以减少面积开销。
本发明基于双核锁步处理器的故障处理方法包括以下步骤:
S1.通过故障检测模块接收后四级流水线输出的数据,输出故障标志信号和故障程序指针;所述后四级流水线为所述双核锁步处理器的后四级流水线阶段;
S2.通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚;
S3.通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态。
进一步地,在上述步骤中,所述后四级流水线阶段依次为译码级流水线、执行级流水线、访存级流水线以及写回级流水线,所述取指阶段流水线为第二级取指级流水线。
作为本故障处理方法实施例的优选实施方式,步骤S1中所述的故障检测模块的功能是配置在后四级流水线接收主、从处理器输出的数据,进行故障的检测。主、从处理器后四级流水线输出的数据将分别进入各级流水线对应的故障检测模块中。如果主、从处理器的后四级流水线寄存器的所有输出结果相同,则直接将主处理器流水线寄存器数据输出至后级流水线;否则,当故障检测模块检测到故障后,将会趋使处理器前端和后端分别进行故障处理的流程,主、从处理器的后四级流水线寄存器的数据将不会被输出至后级。主、从处理器后四级流水线数据的比较和故障标志信号的输出在同一个时序下完成,从而不需要等待一条指令执行至写回阶段就能够开始故障处理的流程。
更具体的,故障检测电路的目标是以较短的关键路径实现快速的故障检测。如图2所示,图2中的故障PC对应故障程序指针,检查器对应故障检测模块。来自主、从处理器的后四级流水线与功能安全有关的关键信号被输入到一组异或门进行逐位比较,异或门的输出是故障标志信号,它将控制指令的分支跳转和数据向后级流水线的传输,同时输出故障程序指针,所述故障程序指针指向主、从处理器的后四级流水线中发生故障的地址。
进一步地,来自不同流水线阶段的故障标志信号携带拥有不同优先级的故障信息进入前端故障处理模块中的复用器,故障信息包括故障标志信号和故障程序指针。这些故障标志信号也被传入前端故障处理模块的复用器中的故障计数器,同时开启故障计数器,如果故障持续时间超过故障计数器设定的可容忍的阈值,它将触发复位信号以重置系统。
作为本故障处理方法实施例的优选实施方式,步骤S2中所述的前端故障处理模块的功能是将发生故障的流水线对应的故障程序指针的值传入程序指针寄存器中,令流水线根据该故障程序指针的值从第一级流水线开始执行故障处理,同时刷新流水线,保证故障的指令和故障之后的指令不会运行到需要写寄存器、存储和外设的阶段。
在上述前端故障处理模块中,除上述功能外,本发明并没有为实现回滚的功能搭建一个专用的电路模块,而是将回滚与分支跳转和分支预测结合,把回滚当作一种“伪”分支跳转指令,主、从处理器后四级流水线数据的比较和程序的回滚在同一个时序下完成。然而,与常规的分支跳转(J型)指令不同,由软错误引起的故障是随机和不可预测的,所以回滚必须通过强制分支跳转和刷新流水线来实现,刷新通过分支目标缓冲区(branch targetbuffer,BTB)输出缺失标志信号实现。这样的设计方案能够满足流水线级别快速回滚的要求,同时兼顾面积开销的节约。
进一步地,作为本故障处理方法实施例的优选实施方式,步骤S2中所述的前端故障处理模块包括第一前端故障处理模块和第二前端故障处理模块,所述第一前端故障处理模块配置在所述双核锁步处理器的第一级PC级流水线,所述第二前端故障处理模块配置在所述双核锁步处理器的第二级取指级流水线。
作为本故障处理方法实施例的优选实施方式,步骤S2,也就是所述通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚这一步骤,具体包括:
S201.根据所述故障程序指针,通过所述前端故障处理模块获取对应的故障指令;
S202.通过所述第一前端故障处理模块输出所述故障指令的下一条指令的程序指针并进行分支预测;
S203.通过所述第二前端故障处理模块输出所述故障程序指针到指令缓存器;
S204.根据所述第一前端故障处理模块的输出结果,通过所述第一级PC级流水线执行分支跳转;
S205.根据所述第二前端故障处理模块的输出结果,通过所述第二级取值级流水线执行分支跳转。
进一步地,本实施例中双核锁步处理器的第一级PC级流水线和第二级取指级流水线还包括分支目标预测模块,通过分支目标预测模块执行分支预测的功能。
进一步地,在S202步骤中前端故障处理模块需要处理器的第一级PC级流水线输出故障指令的下一条指令的程序指针并进行分支预测。其中,PC级流水线的分支目标缓冲器(BTB),输出两个信号:分支预测命中标志和预测的程序指针。为了实现所需的流水线级别的回滚,有必要为故障标志信号提供比跳转标志和命中标志更高的优先级。为了避免影响分支预测模块的判断,刷新标志信号的生成模块被配置在BTB的外部,而不是参与生成命中标志信号。
进一步地,在S203步骤中前端故障处理模块还需要处理器的第二级取指级流水线输出发生故障指令的故障程序指针到指令缓存器中。因此,如果出现故障,有必要立即跳转到故障指令的故障程序指针,所以故障检测模块输出的故障标志信号和故障程序指针的值被送到第二级取指级流水线的前端故障处理模块的复用器中。由于双发射处理器的特性,这里的跳转PC将被处理为一个字节对齐的PC值。在发生故障的情况下,来自故障检测模块的故障程序指针将比分支PC和顺序执行的PC有更高的优先级。通过这种方式,处理器能够在每次遇到故障时快速更新前两个流水线阶段的状态。基于上述设计原则设计的前端故障处理模块如图3所示。
本实施例中,前端故障处理模块中包括优先级仲裁器,在执行上述步骤S201之前,要先根据优先级仲裁器的仲裁规则,确定故障程序指针的优先级。所述优先级仲裁器的仲裁规则,包括:
不同阶段流水线的故障处理对应不同的分支跳转优先级;
发生故障的指令对应的故障程序指针的优先级高于程序分支跳转指令对应的程序指针;
后级流水线故障的程序指针的优先级高于前级;
系统复位的优先级高于流水线级别回滚的优先级。
作为本故障处理方法实施例的优选实施方式,步骤S3中所述的后端故障处理模块的功能是保证故障不会传播到寄存器、存储和外设之中,防止在后续指令中使用了错误的寄存器或存储的信息,造成故障间接性的二次传播。该模块采用握手信号和选择信号管理译码、执行、访存和写回以及取指级流水线的数据传输,模拟分支跳转指令执行过程中处理器的运行状态。
作为本故障处理方法实施例的优选实施方式,步骤S3,也就是所述通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态这一步骤,具体包括:
S301.响应所述握手信号,控制取指阶段和译码阶段的数据传输;
S302.响应所述选择信号,控制后三级流水线阶段的数据传输。
在上述步骤S301和步骤S302中握手信号和选择信号之间是通过如图4所示的数据通路传输的,当握手信号和选择信号为低电平时,被信号作用的两级流水线将重复执行上一个时钟周期执行的指令,这一实施过程实际上相当于模拟了分支跳转指令的运行模式。
进一步地,在步骤S301中所述的握手信号以时序逻辑的形式来控制取指阶段和译码阶段的数据传输,例如,发生在译码阶段的故障处理时序图如图5所示,图5中的主模块对应主处理器,从模块对应从处理器,“通道0_pc”和“通道1_pc”表示对应于并行执行的一对指令的PC值,也可以看作是指令本身。“读主模块寄存器数据”和“读从模块寄存器数据”是在译码阶段由主核和从核同时读到的同一个寄存器的数据。在T0时钟周期,在译码阶段执行的指令是PC,“读主模块寄存器数据”和“读从模块寄存器数据”不同被判定为系统发生了故障。在同一周期内,故障标志信号被置为高电平,取指级流水线跳转到发生故障的指令PC。假设指令PC不是一条分支指令,PC级流水线会跳转到与上述故障指令PC对应的下一条指令PC。为了不引起二次故障,系统在跳转到与故障发生的指令PC时,将握手信号置为低电平,当握手信号在T1时钟周期生效时,译码阶段将重复执行同一指令。假设故障已经成功纠正(“读主模块寄存器数据”=“读从模块寄存器数据”,“选择1”信号在译码级和执行级流水线生效,它们执行的指令与前一个周期相同。在T2时钟周期,“选择1”信号在访存和执行阶段生效。同时,修正后的数据从译码级传输至执行级,处理器恢复了正确的状态。通过这种方式,处理器能够在几个时钟周期内纠正故障。
进一步地,在步骤S302中所述的选择信号以组合逻辑的形式来控制后三级流水线阶段的数据传输。在处理器后端的执行、访存或写回级流水线的故障处理过程更为复杂。尽管对于访存指令来说,“选择1”和“选择1”信号能够帮助锁存内存管理单元(memorymanagement unit,MMU)中的数据和地址而不污染内存,但这些信号并不能防止数据被写回到寄存器中,这可能会导致数据冲突。在本实施例中,一种常见的冲突如图6左侧的数据传输过程所示。在初始阶段,执行级流水线发生了一个故障。0x80000588+4将被写入ra寄存器,覆盖了原来在ra寄存器中存放的数据,原因是存储字(store word,sw)指令和跳转和链接(jump and link,jal)指令并行执行。同时,由于处理器执行流水线级别的回滚,译码阶段正在执行sw,这个指令读取的ra寄存器的值正好是jal指令写回寄存器的数据。因此,最终写入内存的数据是80000588+4,这是由冲突衍生的另一个故障。
作为本故障处理方法实施例的优选实施方式,步骤S3中所述的后端故障处理模块执行“虚拟写回”的容错机制,该机制被用于解决冲突衍生的故障问题。不同于传统的通过保存现场来防止故障衍生的方案,“虚拟写回”容错机制避免了保存现场造成的大量面积和时间开销。
本实施例中,后端故障处理模块执行的虚拟写回的容错机制是一种将数据送入只读寄存器而不暂停处理器的方法。所述虚拟写回的容错机制用于在故障发生时,处理器把数据送入只读寄存器而无需中断流水线和无需保存现场。众所周知,RISC-V指令集架构(RISC-V ISA)规定,地址为0的寄存器是一个只读寄存器,并且总是存0。在发生故障时,两个通道的地址和数据都直接被设置为0。通过这种方式,译码级流水线将能够读取正确的未被覆盖的寄存器存放的值。事实上,向地址为0的寄存器写入任何数据都是可行的,但写入0是最节省功耗的方法。因此,故障处理就等同于图6中的三条带有灰底的指令。访存和写回阶段的故障处理也使用虚拟写回的容错机制来防止故障的衍生。不同的是,虚拟写回的范围扩大为从发生故障的流水线阶段向前延伸到执行级流水线。基于虚拟写回的容错机制,处理器不需要中断流水线,也不需要在故障处理期间将寄存器现场保存到另一份寄存器文件副本中,大大节省了双核锁步架构的时间和面积开销。
综上,本发明的基于双核锁步处理器的故障处理方法与现有技术相比较具有以下优点和
有益效果:
(1)相比于传统的基于处理器的故障处理方法,本发明提出的基于流水线级别回滚的双核锁步处理器是超标量的,目前还没有设计能够基于超标量处理器中实现采用流水线级别回滚的双核锁步架构。
(2)相比于传统的基于处理器的故障处理方法,本发明在故障处理时无需中断或暂停流水线,而是将故障视作强制性的分支跳转指令,实现快速且细粒度的流水线级别的回滚。
(3)相比于传统的基于处理器的故障处理方法,本发明提出了虚拟写回的容错机制代替保存现场,在执行程序的过程中无需持续保存现场,在遇到故障时无需恢复现场,大大节省了面积开销。
需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种基于双核锁步处理器的故障处理方法,所述双核锁步处理器包括主处理器和从处理器,其特征在于,所述基于双核锁步处理器的故障处理方法包括以下步骤:
通过故障检测模块接收后四级流水线输出的数据,输出故障标志信号和故障程序指针;所述后四级流水线为所述双核锁步处理器的后四级流水线阶段;
通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚;
通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态。
2.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述后四级流水线阶段依次为译码级流水线、执行级流水线、访存级流水线以及写回级流水线。
3.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,还包括:
通过所述前端故障处理模块将所述故障程序指针传入程序指针寄存器;
根据所述故障程序指针的值,通过所述前端故障处理模块从第一级流水线开始执行故障处理并刷新流水线。
4.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚这一步骤,还包括:
根据来自不同流水线阶段的所述故障标志信号获取不同优先级的故障信息;所述故障信息包括所述故障标志信号和所述故障程序指针;
通过所述前端故障处理模块的复用器接收所述故障标志信号并开启故障计时器;
当故障持续时间超过所述故障计时器设定的可容忍的阈值,触发复位信号以重置系统。
5.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述前端故障处理模块包括第一前端故障处理模块和第二前端故障处理模块;所述第一前端故障处理模块配置在所述双核锁步处理器的第一级PC级流水线;所述第二前端故障处理模块配置在所述双核锁步处理器的第二级取指级流水线;
所述通过前端故障处理模块接收所述故障标志信号和所述故障程序指针,完成流水线级别的回滚这一步骤,具体包括:
根据所述故障程序指针,通过所述前端故障处理模块获取对应的故障指令;
通过所述第一前端故障处理模块输出所述故障指令的下一条指令的程序指针并进行分支预测;
通过所述第二前端故障处理模块输出所述故障程序指针到指令缓存器;
根据所述第一前端故障处理模块的输出结果,通过所述第一级PC级流水线执行分支跳转;
根据所述第二前端故障处理模块的输出结果,通过所述第二级取值级流水线执行分支跳转。
6.根据权利要求5所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述第一级PC级流水线和所述第二级取指级流水线还包括分支预测模块;
通过所述分支目标预测模块执行所述分支预测的功能。
7.根据权利要求5所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述前端故障处理模块包括优先级仲裁器;
在所述根据所述故障程序指针,通过所述前端故障处理模块获取对应的故障指令这一步骤之前,根据所述优先级仲裁器的仲裁规则,确定所述故障程序指针的优先级。
8.根据权利要求6所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述优先级仲裁器的仲裁规则包括:
不同阶段流水线的故障处理对应不同的分支跳转优先级;
发生故障的指令对应的故障程序指针的优先级高于程序分支跳转指令对应的程序指针;
后级流水线故障的程序指针的优先级高于前级;
系统复位的优先级高于流水线级别回滚的优先级。
9.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述握手信号使用时序逻辑的形式控制;所述选择信号使用组合逻辑的形式控制;
通过后端故障处理模块控制所述后四级流水线的握手信号和选择信号,以及执行虚拟写回的容错机制,管理所述后四级流水线和取指阶段流水线的运行状态这一步骤,具体包括:响应所述握手信号,控制取指阶段和译码阶段的数据传输;
响应所述选择信号,控制后三级流水线阶段的数据传输。
10.根据权利要求1所述的一种基于双核锁步处理器的故障处理方法,其特征在于,所述虚拟写回的容错机制用于在故障发生时,处理器把数据送入只读寄存器而无需中断流水线和无需保存现场。
CN202310210412.7A 2023-03-06 2023-03-06 一种基于双核锁步处理器的故障处理方法 Pending CN116302648A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310210412.7A CN116302648A (zh) 2023-03-06 2023-03-06 一种基于双核锁步处理器的故障处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310210412.7A CN116302648A (zh) 2023-03-06 2023-03-06 一种基于双核锁步处理器的故障处理方法

Publications (1)

Publication Number Publication Date
CN116302648A true CN116302648A (zh) 2023-06-23

Family

ID=86831883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310210412.7A Pending CN116302648A (zh) 2023-03-06 2023-03-06 一种基于双核锁步处理器的故障处理方法

Country Status (1)

Country Link
CN (1) CN116302648A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719749A (zh) * 2023-08-10 2023-09-08 苏州国芯科技股份有限公司 一种处理器运行检测方法、装置、设备及介质
CN118093253A (zh) * 2024-04-28 2024-05-28 西北工业大学 一种多核锁步处理器多级快速错误恢复系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719749A (zh) * 2023-08-10 2023-09-08 苏州国芯科技股份有限公司 一种处理器运行检测方法、装置、设备及介质
CN116719749B (zh) * 2023-08-10 2023-11-21 苏州国芯科技股份有限公司 一种处理器运行检测方法、装置、设备及介质
CN118093253A (zh) * 2024-04-28 2024-05-28 西北工业大学 一种多核锁步处理器多级快速错误恢复系统

Similar Documents

Publication Publication Date Title
CN101495968B (zh) 用于软件事务存储器系统的硬件加速
CN116302648A (zh) 一种基于双核锁步处理器的故障处理方法
US9449717B2 (en) Memory built-in self-test for a data processing apparatus
US11237905B2 (en) Pipelined read-modify-write operations in cache memory
US8140828B2 (en) Handling transaction buffer overflow in multiprocessor by re-executing after waiting for peer processors to complete pending transactions and bypassing the buffer
EP0405489B1 (en) Resource conflict detection method and apparatus included in a pipelined processing unit
KR101531078B1 (ko) 데이터 처리 시스템 및 데이터 처리 방법
CN100407134C (zh) 处置在基于跟踪缓存的处理器中的异常指令的系统及方法
JP2006164277A (ja) プロセッサにおけるエラー除去装置および方法,プロセッサ
US9063907B2 (en) Comparison for redundant threads
CN101313281A (zh) 用于在包括至少两个具有寄存器的执行单元的系统中消除错误的装置和方法
US20090044048A1 (en) Method and device for generating a signal in a computer system having a plurality of components
US8458516B2 (en) Processor system and operation mode switching method for processor system
US20060218124A1 (en) Performance of a data processing apparatus
US9740557B2 (en) Pipelined ECC-protected memory access
US20080263340A1 (en) Method and Device for Analyzing a Signal from a Computer System Having at Least Two Execution Units
US20130326200A1 (en) Integrated circuit devices and methods for scheduling and executing a restricted load operation
US20150286544A1 (en) Fault tolerance in a multi-core circuit
CN111190774B (zh) 一种多核处理器可配置双模冗余结构
US6701484B1 (en) Register file with delayed parity check
US20080313384A1 (en) Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
CN115080315B (zh) 故障检测及处理方法、装置、处理器及电子设备
US7836277B2 (en) Pre-tracing instructions for CGA coupled processor in inactive mode for execution upon switch to active mode and continuing pre-fetching cache miss instructions
EP0374598B1 (en) Control store addressing from multiple sources
US11327759B2 (en) Managing low-level instructions and core interactions in multi-core processors

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