CN220983766U - 用于双核锁步的周期故障检测修复电路 - Google Patents

用于双核锁步的周期故障检测修复电路 Download PDF

Info

Publication number
CN220983766U
CN220983766U CN202323224998.7U CN202323224998U CN220983766U CN 220983766 U CN220983766 U CN 220983766U CN 202323224998 U CN202323224998 U CN 202323224998U CN 220983766 U CN220983766 U CN 220983766U
Authority
CN
China
Prior art keywords
core
processing block
register
main core
main
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.)
Active
Application number
CN202323224998.7U
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.)
Wuxi Guoxin Micro Hi Tech Co ltd
Original Assignee
Wuxi Guoxin Micro Hi Tech 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 Wuxi Guoxin Micro Hi Tech Co ltd filed Critical Wuxi Guoxin Micro Hi Tech Co ltd
Application granted granted Critical
Publication of CN220983766U publication Critical patent/CN220983766U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开一种用于双核锁步的周期故障检测修复电路,涉及双核锁步电路领域,主核包括若干组级联的主核处理块,主核处理块包含主核执行单元和主核流水线寄存器;副核包括和主核处理块相同数量个级联的副核处理块;每个处理块分别设置有一个输出比较端;并行比较器包含若干组比较器单元,主核处理块与副核处理块的输出比较端连接到同一组比较器单元的两个输入端,对双核输出进行比较;故障修复控制器连接并行比较器的并行输出端,根据比较输出的结果定位故障点。该电路结构可以定位双核中的故障点,控制故障点重新执行,提高电路运行高稳定性。

Description

用于双核锁步的周期故障检测修复电路
技术领域
本申请实施例涉及双核锁步电路领域,特别涉及一种用于双核锁步的周期故障检测修复电路。
背景技术
以嵌入式高速中央处理器(CPU)为核心的芯片广泛应用于汽车电子电气系统,随着系统复杂性的提高,来自系统失效和随机硬件失效的风险日益增加。为了增强汽车安全性,汽车电子电气系统需要满足ISO 26262《道路车辆功能安全》国际标准,满足标准化汽车全生命周期中的功能安全管理和要求,使得系统之功能安全符合所需汽车安全完整性等级(ASIL)。
双核锁步(dual-core lockstep)技术是ISO 26262标准中对芯片处理器的诊断覆盖率推荐的安全技术措施中典型的硬件冗余技术,是ASIL-D(ASIL的最高安全等级)安全等级的规范要求,被广泛应用在汽车电子控制器芯片中。双核锁步技术指在一个芯片中包含两个相同的处理器核,一个作为主核(master core),一个作为副核(slave core),它们执行相同的代码并严格同步,将输出分别发送到比较逻辑模块,检查它们之间的数据、地址和控制线的一致性,检测到任何不一致时,说明发生了硬件故障,需要采取相应措施。
汽车电子芯片的高性能处理器往往采用多级流水线架构以及指令多发射技术,在同一时钟周期中有多条指令并行处理,而常规的双核锁步技术通过比较两个处理器核的输出结果来进行故障检测,无法准确定位是哪一级流水线出现故障,只能将所有进入流水线的指令视为整体进行故障处理和修复,于是需要多个时钟周期实现故障恢复。
实用新型内容
本申请实施例提供一种用于双核锁步的周期故障检测修复电路,能精准定位电路故障点,有效缩短双核锁步的故障修复时间和电路运行效率。该电路包括主核、副核、并行比较器和故障修复控制器;
所述主核为包括若干组级联的主核处理块,所述主核处理块包含主核执行单元和存储所述主核执行单元输出数据的主核流水线寄存器;所述主核处理块设置有第一寄存器和第二寄存器,两个寄存器相互连接;
所述副核包括和所述主核处理块相同数量个级联的副核处理块;所述主核处理块和所述副核处理块一一对应组成流水线结构,且主副核处理块分别设置有一个输出比较端;
所述并行比较器包含若干组比较器单元,所述主核处理块与所述副核处理块的输出比较端连接到同一组比较器单元的两个输入端,对双核输出进行比较;
所述故障修复控制器连接所述并行比较器的并行输出端,根据比较输出的结果定位故障点;所述故障修复控制器的输出端连接所有的所述主核处理块与所述副核处理块,控制故障点重新执行。
具体的,所述副核处理块包括副核执行单元和副核流水线寄存器;主副核对应处理块和流水线寄存器首尾连接形成流水线结构。
具体的,当双核结构为四级流水线结构时,双核流水线结构依次至少包括取指处理块、译码处理块、计算处理块,以及访存处理块/写回处理块;主副核中各处理块与所述故障修复控制器相互连接;
所述取指处理块包括指令寄存器IM、取指执行单元IF和取指寄存器;
所述译码处理块包括译码执行单元ID和译码寄存器;
所述计算处理块包括计算执行单元EX和计算寄存器;
所述访存处理块包括数据存储器DM、访存执行单元MEM和访存寄存器;
所述写回处理块包括写回执行单元WB、寄存器组REGS和写回寄存器。
具体的,当双核结构为五级流水线结构时,流水线结构依次至少包括取指处理块、译码处理块、计算处理块、访存处理块以及写回处理块;主副核中各处理块与所述故障修复控制器相互连接,基于所述故障修复控制器的电信号进行定点恢复。
具体的,所述主核处理块中还包括主核编码器,所述主核编码器与所述主核流水线寄存器连接,所述主核编码器的输出比较端连接所述并行比较器;
所述副核处理块中还包括副核编码器,所述副核编码器与所述副核流水线寄存器连接,所述副核编码器的输出比较端连接所述并行比较器。
具体的,所述并行比较器的比较器单元包括并行寄存器和比较器单元,所述主核编码器的输出端连接所述并行寄存器的输入端,所述比较器单元的两个输入端分别连接所述并行寄存器的输出端和所述副核编码器的输出端,输出端为所述并行比较器的并行输出端。
具体的,所述故障修复控制器根据所述比较器单元的输出值确定目标故障点,控制故障点前一个主核处理块中的目标流水线寄存器,基于所述目标流水线寄存器中第二寄存器的数据重新执行。
具体的,主核与副核编码器为1024-10编码器。
具体的,1024-10编码器输出为10bit电数据,并输入到对应的并行寄存器。
具体的,每个所述主核处理块与所述副核处理块执行一个时钟周期,所述副核处理块晚所述主核处理块一个时钟周期。
本申请实施例提供的技术方案带来的有益效果至少包括:将传统的双核锁步做更细粒度的划分,以流水线结构设计成若干组主副核处理块。处理块设计成包括执行单元和流水线寄存器的结构,而每个流水线寄存器根据级联缓存,同时将对应级别流水的执行结果输送到并行比较器中比较,从而实现各级流水都能够进行校验,定位出故障点。而在发生故障时,因为主核侧流水线寄存器有两个,所以可以保留一个时钟周期数据用于恢复重新执行。这种双核锁步的处理机制缩短了硬件故障修复的时间,增强了处理器的安全性能。而从硬件成本和开发成本,只需在常规双核锁步架构上增加少量硬件资源,相比较获得的性能,芯片面积和功耗代价很低,有利于商业化应用和推广。
附图说明
图1是传统双核锁步原理的系统结构图;
图2是传统的处理器执行流程的示意图;
图3是本申请实施例提供的用于双核锁步的周期故障检测修复电路图;
图4是一种五级流水结构的单周期双核锁步故障检测修复架构图;
图5是并行比较器的内部结构图;
图6是另一种五级流水结构的单周期双核锁步故障检测修复架构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是传统双核锁步原理的系统结构图,输入和控制模块101的信号同时进入主核102和通过时钟延迟模块103后进入副核104,进入主核和副核的地址、数据、控制均一样,仅在时钟延迟模块103的作用下产生一定时钟周期的时差,通常是相差单个时钟周期。主核102计算结果输出到仲裁模块107等待,并同时经过时钟延迟模块105进入对比模块,副核104计算结果也输出到对比模块106,如果对比模块得出的对比结果完全一致,则通知仲裁模块107放行,如果对比结果不一致,则通知仲裁模块出现错误,由输出和控制模块108采取相应措施。双核锁步正是利用主副核的锁步计算进行硬件自检测。但需要说明的是,因为这种模式只关注于处理器的输出结果而不关注内部具体出错位置。如图2所示,是传统的处理器执行流程的示意图,一条指令被拆分成若干个执行步骤,每个步骤通过对应的执行器和寄存器保存数据,其最终输出结果被送入到对比模块。这种模式在确定出现故障后,并不能确定发生过故障的流程,只能重新取指执行操作。对于多周期并行操作处理器而言会增大系统开销,影响系统性能和执行效率。
本申请遵循双核锁步的基本原理,但是不再把处理器核作为一个整体,而是进入核内部,进行细粒度的锁步计算和对比,实现精准定位故障点的效果。
图3是本申请实施例提供的用于双核锁步的周期故障检测修复电路图,包括主核310、副核320、并行比较器330和故障修复控制器340。主核310和副核320都设计成流水线结构,主核310包括若干组级联的主核处理块311,主核处理块311包含主核执行单元和存储主核执行单元输出数据的主核流水线寄存器。副核320包括和主核处理块311相同数量个级联的副核处理块321。
主核处理块311和副核处理块321根据功能顺序组成流水线结构。如图3中所示,主核处理块至第n主核处理块之间呈级联关系,首位依次连接形成流水线结构;第一副核处理块至第n副核处理块之间同样呈级联关系,首位依次连接形成流水线结构。需要说明的是,因为是双核锁步原理,所以主核处理块和副核处理块之间的功能和连接关系是一一对应的。此外,双核中的每个处理块都分别设置有一个输出比较端连接到并行比较器330。
并行比较器330包含若干组比较器单元,目的为执行相同功能的主核处理块311与副核处理块321的输出比较端连接到同一组比较器单元的两个输入端,对双核输出结果进行比较。
故障修复控制器340连接并行比较器330的并行输出端,根据比较结果定位故障周期和故障点,并通过故障点处对应主核流水线寄存器中的数据复故障。故障恢复就是利用主核流水线寄存器存储的数据,将故障点前的主核流水线寄存器中存储的数据重新执行故障点的功能操作,这样可以在处理器核未完全处理完数据前及时发现故障并修复,修复过程基于故障修复控制器340控制和实现,具体方法步骤参见后续实施例内容。
本申请实施例在传统的双核锁步的基础上,将主核中的所有主核处理块和副核中每个副核处理块都设置为执行一个时钟周期。且相较于传统双核锁步之间的时钟差,本申请实施例将双核中所有执行相同功能操作的副核处理块都设置晚于主核处理块一个时钟周期,也就是将时间差更细粒度的划分到内部的处理块上,实现更精准的比对测试。
流水线结构的实现需要流水线寄存器进行数据暂存,也就是将每一级执行单元处理得到的数据进行保存以及传递给下一级流水,同时又因为流水线结构的特点,流水线寄存器只能暂存数据实现中转的作用,在下一个时钟周期会被冲刷成新的数据。为了实现故障修复的功能,本申请将主核中主核处理块的主核流水线寄存器分为第一寄存器和第二寄存器,其中第一寄存器用来存储主核执行单元输出的数据,也就是待比对数据,该数据需要输送到并行比较器进行比较,而第二寄存器是第一寄存器的复制区,将待比对数据多暂存一个周期,在检测出故障后进行数据回卷修复。
对于副核来说,因为副核的作用主要是为了比对,所以只需要在每个副核处理块中设置用于执行的副核执行单元和对应的副核流水线寄存器,而副核流水线寄存器仅需一个即可。双核结构中,执行相同流水线功能的主核执行单元和副核执行单元完全相同。
在本申请实施例中,双核锁步的流水线阶段数量和每个阶段所需的时钟周期根据具体情况决定。例如浮点运算,其计算周期可以达到四个时钟周期或更多。本申请以一个核处理块执行一个时钟周期为例进行说明,且流水线结构根据流水级别设定。当双核结构是四级流水结构时,双核流水线结构依次至少包括取指处理块、译码处理块、计算处理块,以及访存处理块/写回处理块,主副核中各处理块与故障修复控制器相互连接。
取指处理块包括指令寄存器IM、取指执行单元IF和取指寄存器IF/ID;
译码处理块包括译码执行单元ID和译码寄存器ID/EX;
计算处理块包括计算执行单元EX和计算寄存器EX/MEM;
访存处理块包括数据存储器DM、访存执行单元MEM和访存寄存器MEM/WB;
写回处理块包括写回执行单元WB、和寄存器组REGS和写回寄存器。其中的IF/ID、ID/EX、EX/MEM、MEM/WB以及WBBU都属于流水线寄存器。
在一些特定场景中,当处理器只需要执行一些计算任务时,就不需要访存操作,此时的双核四级流水线结构可以设置为取指操作、译码操作、计算(执行)操作和写回操作。还有在一些特定的场景下,当处理器只需要执行一些读写操作时,就不需要执行计算操作,此时的双核四级流水线结构可以设置为取指操作、译码操作和访存操作。具体采用的流水线结构根据实际情况决定。
当在大多数场景下,会涉及到各种数据处理过程,所以就至少需要设计成五级流水线结构,当双核结构至少为五级流水线结构时,流水线结构依次至少包括取指处理块、译码处理块、计算处理块、访存处理块以及写回处理块。和四级流水线结构相比同时包含了访存处理和写回处理流程。
图4示出了五级流水结构的单周期双核锁步故障检测修复电路图,每个时钟周期执行流水线对应的处理块。主核的取址处理块包括主核取址执行单元410和主核取址寄存器411、译码处理块包括主核译码执行单元412和主核译码寄存器413、计算处理块包括主核计算执行单元414和主核计算寄存器415、访存处理块包括主核访存执行单元416和主核访存寄存器417、写回处理块包括主核写回执行单元418、主核写回寄存器419和主核寄存器组426。类似的,副核的取址处理块包括副核取址执行单元430和副核取址寄存器431、译码处理块包括副核译码执行单元432和副核译码寄存器433、计算处理块包括副核计算执行单元434和副核计算寄存器435、访存处理块包括副核访存执行单元436和副核访存寄存器437、写回处理块包括副核写回执行单元438、副核写回寄存器446和副核寄存器组439。并行处理器403连接各个寄存器,执行相同功能(相同流水级别)的流水线寄存器输出到同一比较器单元的两个端口。
在图4中,主核中的主核指令寄存器420连接主核取指执行单元410,作为流水线起始段,用于提供相关指令;主核数据存储器421连接主核访存执行单元416,实现数据存储,主核寄存器组426连接主核写回执行单元418,用于存储流水线输出数据。对应的,副核指令寄存器440连接副核取指执行单元430;副核数据存储器441连接副核访存执行单元436;副核寄存器组446连接副核写回执行单元438,用于存储流水线输出数据。
为了实现数据暂存功能,在出现故障时进行恢复,在每个主核处理块中的主核流水线寄存器进行分开设置,也就是图4中的A寄存器和B寄存器。其中的A寄存器表示第一寄存器,存储该主核执行单元输出的数据(即待比对数据),用于下一级流水线处理;B寄存器是A寄存器的复制区,用于将数据多暂存一个周期,在并行比较器校验正确后将对应数据复制到此处,在检测出故障后进行数据回卷修复。图4中主核取址寄存器411的两个寄存器为IF/ID A(用411-A标注)和IF/ID B(用411-B标注),其他主核流水线寄存器的寄存器同理。需要说明的是,写回寄存器属于一条流水线的结尾,之后就是下一条指令的操作流水,而新的指令执行数据来源是IM,所以不需要从WBBU写回寄存器向后传递数据,因而直接用于备份而不设置分多个寄存器。
图5是并行比较器的内部结构图,主核与副核将各个处理块的输出连接到并行比较器的若干组比较器单元,每组比较器单元都包含一个并行寄存器501和级联的比较器502。其中,主核侧需要并行寄存器的目的是为了产生时钟延迟,经过延时后的主和数据和副核数据同时输入到比较器中。当对于第二副核来说,其副核处理块的输出可以直接输入到比较器。该并行比较器的并行输出口数量和需要数据匹配的处理块数量一致,结果分别输入到故障修复控制器中。
通过以上结构可以实现五级流水线的逐级比较,通过并行比较器将结果发送到故障修复控制器,当比较器输出的比较结果不一致时,说明双核锁步出现故障,进一步确定故障点并采取修复操作。需要说明的是,对于五级流水线结构,因为不同主副核处理块之间都互相连接(图4中未画出),当执行一些特定步骤且不需要执行全部流水阶段时,可以跳转其中特定流水阶段,并非严格按照流水线顺序执行所有操作。
在一些实施例中,因为各级流水处理过程中得到的数据量大小各异,例如IF/ID(取址寄存器)数据是100个字节,而MEM/WB(计算寄存器)数据是200个字节,这样就需要在并行比较器中就需要设置不同位宽的比较器,或者统一使用最大位宽的比较器。前者需要特制比较器,后者会增大带宽造成资源浪费。而本方案中在双核结构中分别设置了编码器来进行数据编码,这样可以将不同位宽的数据进行统一编码,有利于并行比较器进行数据比较。
图6是加入编码器的单周期双核锁步故障检测修复电路图。在图4的基础上,主核处理块加入有主核编码器,副核处理块加入有副核编码器。主核编码器与主核流水线寄存器连接,主核编码器的输出比较端连接并行比较器。副核编码器与副核流水线寄存器连接,副核编码器的输出比较端连接并行比较器。
同样以五级流水线结构为例进行说明,主核中的主核取址寄存器411连接主核取址编码器422、主核译码寄存器413连接主核译码编码器423、主核计算寄存器415连接主核计算编码器424、主核访存寄存器417连接主核访存编码器425、主核寄存器组419连接主核写回编码器426。同理的,副核中副核取址寄存器431连接副核取址编码器442、副核译码寄存器433连接副核译码编码器443、副核计算寄存器435连接副核计算编码器444、副核访存寄存器437连接副核访存编码器445、副核寄存器组439连接副核写回编码器446。对应到图5中,输入到并行比较器中的数据都是经过比较器编码后的统一位宽数据。
在一种可能的实施方式中,主核与副核编码器采用1024-10编码器,即输入1024bit数据,输出10bit数据,能够把1024bit以内的数据进行唯一编码。选择1024作为最大带宽的原因包括两点,一般寄存器组的容量是32*32=1024bit,而流水线寄存器容量往往小于寄存器组容量,让统一的小带宽的数据在比较器进行比较,节约带宽并实现比较结果的无延迟。并行比较器在主核一侧有五个寄存器,寄存器的作用是将主核编码后的数据存储一个时钟周期,这样和副核编码后的数据同时进入比较器。
主核侧流水线寄存器数据经过编码后全部输出为10bit数据,经过并行寄存器502保存至下一个时钟周期有效,副核流水线寄存器数据经过编码后输出也全部为10bit数据,两个数据同时进入比较器502比较,比较结果输出到故障修复控制器。此外,本申请实施例以延迟一个时钟周期为例,在一些其他实施例中,不同比较器单元中并行寄存器的数量根据执行该级流水所需的周期数决定。
本申请实施例提供一种用于双核锁步的周期故障修复控制方法,应用于上述各方面所述的电路结构,具体包括如下步骤:
步骤701,主核与副核先后读取相同的指令,根据流水线结构执行相应操作;
步骤702,在第i个流水阶段内,主核内第k个级联的主核处理块执行操作,将第k待检数据存储至主核流水线寄存器,并送入并行比较器;副核内第k-1个级联的副核处理块执行操作,将第k-1数据存储至副核流水线寄存器,并送入并行比较器;
步骤703,在第i+1个流水阶段内,主核内第k+1个级联的主核处理块执行操作;副核内第k个级联的副核处理块执行操作,将第k数据存储至副核流水线寄存器,并送入并行比较器;并行比较器将第k待检数据和第k数据进行比较,并将结果发送到故障修复控制器。
步骤704,在第i+2个流水阶段内,当第k个主核处理块中的主核流水线寄存器接收到故障修复控制器反馈的正常信号时,将第k待检数据确定为第k目标数据保存;当接收到故障修复控制器反馈的故障信号时,回卷到第k个主核处理块重新执行,第k个副核处理块在第i+3个流水阶段内同步执行相应操作。
由于流水线结构是循环执行的,在确定第k数据出现异常时,第k-1阶段必然是正常的,也就是说第k-1个主核处理块内主核流水线寄存器的第二寄存器已经保存了校验通过的第k-1目标数据。所以在第i+2个流水阶段内,根据第k-1目标数据再次执行相应操作即可快速修复故障。
本实施例以图4中单周期五级流水结构为例进行说明。
阶段一:在时钟周期CC1,主核中,主核取址执行单元410从主核指令寄存器420进行IF(读指令),结果数据存放在主核取址寄存器411-A中,同时通过主核取址编码器422编码待比对数据输出到并行处理器403。
阶段二:在时钟周期CC2,主核中,主核译码执行单元412进行ID(指令译码和读寄存器组),结果(待检)数据存放在主核译码寄存器413-A中,同时通过主核译码编码器423编码后待比对数据输出到并行处理器403。
副核中,副核取址执行单元430从副核指令寄存器440进行IF,结果数据存放在副核取址寄存器431中,同时通过副核取址编码器442编码后将数据输出到并行处理器403。此时主核取址编码器422的输出和副核取址编码器442的输出在并行处理器403中进行比较,将比较结果输出到故障修复控制器404。因为并行比较器403内部在主核侧有并行寄存器,能够暂存一个周期的数据。
阶段三:在时钟周期CC3,主核中,主核计算执行单元414进行EX(执行或计算地址),结果数据存放在主核计算寄存器415-A中,同时通过主核计算编码器424编码后输出到并行比较器403。如果此时主核取址编码器422和副核取址编码器442输出数据没有故障,通过故障修复控制器404的电信号将主核取址寄存器411-A的待检数据确定为目标数据并复制到寄存器B中。该步骤具体可通过设置逻辑门结构,通过故障修复控制器发起的高电平导通逻辑电路,将数据送入级联的第二寄存器中。
此处需要说明的是,主核的每个流水线寄存器中A->B数据复制发生在后两个时钟结束时,作用是当出现硬件故障时,主核流水线寄存器B中保留的数据能够再次运行发生故障的流水线,这个设计是本申请能够实现单周期修复的原因。
在副核中,副核译码执行单元432进行ID,结果数据存放在副核译码寄存器433,同时通过副核译码编码器443编码后输出到并行比较器403。此时副核译码编码器443的输出和主核译码编码器423的输出在并行比较器403中进行比较,将比较结果输出到故障修复控制器404。
阶段四:在时钟周期CC4,主核中,主核访存执行单元416进行MEM(数据存储器访问),读写主核数据存储器421,结果数据存放在主核访存寄存器417-A中,同时通过主核访存编码器425编码后输出到并行比较器403。如果没有故障,将主核译码寄存器413-A数据复制到寄存器B中。
副核中,副核计算执行单元434进行EX,结果数据存放在副核计算寄存器435,同时通过副核计算编码器444编码后输出到并行比较器403,此时二计算编码器444的输出和主核计算编码器424的输出在并行比较器403中进行比较,将比较结果输出到故障修复控制器404。
阶段五:在时钟周期CC5,主核中,主核写回执行单元418进行WB,结果数据写回主核寄存器组426,同时进行备份到主核写回寄存器419,以及通过主核写回编码器426编码后输出到并行比较器403,完成主核的5级流水线。如果没有故障,将主核计算寄存器415-A数据复制到寄存器B。
副核中,副核访存执行单元436进行MEM,读写副核数据存储器441,结果数据存放在副核访存寄存器437,同时通过副核访存编码器445编码后输出到并行比较器403,此时副核访存编码器445的输出和主核访存编码器425的输出在并行比较器403中进行比较,将比较结果输出到故障修复控制器404。
阶段六:在时钟周期CC6,主核开始新的指令的流水线,IF过程同前,不予详述。如果没有故障,将主核访存寄存器417-A数据复制到寄存器B。
副核中,副核写回执行单元438进行WB,结果数据写回副核寄存器组446,同时将数据备份到副核写回寄存器439,以及通过副核写回编码器446编码后输出到并行比较器403,完成副核的5级流水线。
故障修复控制器在每一个时钟周期进行故障检测,如果无故障则不打断流水线;如果有故障,通过定位是哪一对数据出现问题,从而定位到是哪一级流水线运行过程中出现了故障,检测到故障并定位之后进行故障修复。
补充说明,对于没有MEM或WB的指令,跳过相应的流水线,其他同如上描述。
当发生故障时,根据出现故障的阶段不一样,采取不同的修复措施,具体包括如下情况:
情况一:IF阶段出现故障,即在CC2结束时流水线寄存器比较不一致,修复方法是:在下一个周期,主核重新IF,也即流水线回卷到CC1,此时副核随后同步。
情况二:ID阶段出现故障,即在CC3结束时流水线寄存器比较不一致,修复方法是:在下一个周期,主核重新ID,也即流水线回卷到CC2,此时主核取址寄存器411-B中仍然保存有ID所需的目标数据。副核随后同步。
情况三:EX阶段出现故障,即在CC4结束时流水线寄存器比较不一致,修复方法是:在下一个周期,主核重新EX,也即流水线回卷到CC3,此时主核译码寄存器413-B中仍然保存有EX所需的目标数据。副核随后同步。
情况四:MEM阶段出现故障,即在CC5结束时流水线寄存器比较不一致,修复方法是:在下一个周期,主核重新MEM,也即流水线回卷到CC4,此时主核计算寄存器415-B中仍然保存有MEM所需的目标数据。副核随后同步。
情况五:WB阶段出现故障,即在CC6结束时寄存器组比较不一致,修复方法是:在下一个周期,主核重新WB,也即流水线回卷到CC5,此时主核访存寄存器417-B中仍然保存有WB所需的目标数据。副核随后同步。
综上所述,该方案将传统的双核锁步做更细粒度的划分,实现多级流水线和多指令发射处理器的周期硬件故障检测和恢复,缩短了硬件自检修复的时间,增强了处理器的安全性能。能够在满足ISO 26262《道路车辆功能安全》国际标准的基础上实现更好性能,能够提升芯片产品和系统的性能,从而提升市场竞争力。该方案的实现充分考虑到硬件成本和开发成本,只需在常规双核锁步架构上增加少量硬件资源,相比较获得的性能,芯片面积和功耗代价很低,有利于商业化应用和推广。
以上对本实用新型的较佳实施例进行了描述;需要理解的是,本实用新型并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本实用新型技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本实用新型的实质内容;因此,凡是未脱离本实用新型技术方案的内容,依据本实用新型的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本实用新型技术方案保护的范围内。

Claims (10)

1.一种用于双核锁步的周期故障检测修复电路,其特征在于,包括主核、副核、并行比较器和故障修复控制器;
所述主核为包括若干组级联的主核处理块,所述主核处理块包含主核执行单元和存储所述主核执行单元输出数据的主核流水线寄存器;所述主核处理块设置有第一寄存器和第二寄存器,两个寄存器相互连接;
所述副核包括和所述主核处理块相同数量个级联的副核处理块;所述主核处理块和所述副核处理块一一对应组成流水线结构,且主副核处理块分别设置有一个输出比较端;
所述并行比较器包含若干组比较器单元,所述主核处理块与所述副核处理块的输出比较端连接到同一组比较器单元的两个输入端,对双核输出进行比较;
所述故障修复控制器连接所述并行比较器的并行输出端,根据比较输出的结果定位故障点;所述故障修复控制器的输出端连接所有的所述主核处理块与所述副核处理块,控制故障点重新执行。
2.根据权利要求1所述的用于双核锁步的周期故障检测修复电路,其特征在于,所述副核处理块包括副核执行单元和副核流水线寄存器;主副核对应处理块和流水线寄存器首尾连接形成流水线结构。
3.根据权利要求2所述的用于双核锁步的周期故障检测修复电路,其特征在于,当双核结构为四级流水线结构时,双核流水线结构依次至少包括取指处理块、译码处理块、计算处理块,以及访存处理块/写回处理块;主副核中各处理块与所述故障修复控制器相互连接;
所述取指处理块包括指令寄存器IM、取指执行单元IF和取指寄存器;
所述译码处理块包括译码执行单元ID和译码寄存器;
所述计算处理块包括计算执行单元EX和计算寄存器;
所述访存处理块包括数据存储器DM、访存执行单元MEM和访存寄存器;
所述写回处理块包括写回执行单元WB、寄存器组REGS和写回寄存器。
4.根据权利要求3所述的用于双核锁步的周期故障检测修复电路,其特征在于,当双核结构为五级流水线结构时,流水线结构依次至少包括取指处理块、译码处理块、计算处理块、访存处理块以及写回处理块;主副核中各处理块与所述故障修复控制器相互连接,基于所述故障修复控制器的电信号进行定点恢复。
5.根据权利要求2所述的用于双核锁步的周期故障检测修复电路,其特征在于,所述主核处理块中还包括主核编码器,所述主核编码器与所述主核流水线寄存器连接,所述主核编码器的输出比较端连接所述并行比较器;
所述副核处理块中还包括副核编码器,所述副核编码器与所述副核流水线寄存器连接,所述副核编码器的输出比较端连接所述并行比较器。
6.根据权利要求5所述的用于双核锁步的周期故障检测修复电路,其特征在于,所述并行比较器的比较器单元包括并行寄存器和比较器单元,所述主核编码器的输出端连接所述并行寄存器的输入端,所述比较器单元的两个输入端分别连接所述并行寄存器的输出端和所述副核编码器的输出端,输出端为所述并行比较器的并行输出端。
7.根据权利要求6所述的用于双核锁步的周期故障检测修复电路,其特征在于,所述故障修复控制器根据所述比较器单元的输出值确定目标故障点,控制故障点前一个主核处理块中的目标流水线寄存器,基于所述目标流水线寄存器中第二寄存器的数据重新执行。
8.根据权利要求6所述的用于双核锁步的周期故障检测修复电路,其特征在于,主核与副核编码器为1024-10编码器。
9.根据权利要求6所述的用于双核锁步的周期故障检测修复电路,其特征在于,1024-10编码器输出为10bit电数据,并输入到对应的并行寄存器。
10.根据权利要求1所述的用于双核锁步的周期故障检测修复电路,其特征在于,每个所述主核处理块与所述副核处理块执行一个时钟周期,所述副核处理块晚所述主核处理块一个时钟周期。
CN202323224998.7U 2023-05-04 2023-11-28 用于双核锁步的周期故障检测修复电路 Active CN220983766U (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2023104871621 2023-05-04
CN202310487162.1A CN116225810A (zh) 2023-05-04 2023-05-04 用于双核锁步的周期故障检测修复架构和检测修复方法

Publications (1)

Publication Number Publication Date
CN220983766U true CN220983766U (zh) 2024-05-17

Family

ID=86577217

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310487162.1A Pending CN116225810A (zh) 2023-05-04 2023-05-04 用于双核锁步的周期故障检测修复架构和检测修复方法
CN202323224998.7U Active CN220983766U (zh) 2023-05-04 2023-11-28 用于双核锁步的周期故障检测修复电路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310487162.1A Pending CN116225810A (zh) 2023-05-04 2023-05-04 用于双核锁步的周期故障检测修复架构和检测修复方法

Country Status (1)

Country Link
CN (2) CN116225810A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719749B (zh) * 2023-08-10 2023-11-21 苏州国芯科技股份有限公司 一种处理器运行检测方法、装置、设备及介质
CN118427112B (zh) * 2024-07-05 2024-09-06 西北工业大学 一种多核结构处理器中锁步核调试及容错性能验证系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320579B (zh) * 2015-10-27 2018-03-23 首都师范大学 面向sparc v8处理器的自修复双冗余流水线及容错方法
CN115328668A (zh) * 2022-07-28 2022-11-11 安谋科技(中国)有限公司 故障处理方法、双核锁步系统、电子设备及介质
CN115080315B (zh) * 2022-08-22 2022-12-13 北京国科环宇科技股份有限公司 故障检测及处理方法、装置、处理器及电子设备

Also Published As

Publication number Publication date
CN116225810A (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN220983766U (zh) 用于双核锁步的周期故障检测修复电路
CN112667450B (zh) 一种可动态配置的多核处理器容错系统
CN111164578B (zh) 核内锁步模式的错误恢复
US5384906A (en) Method and apparatus for synchronizing a plurality of processors
CN100578462C (zh) 降低时钟同步双模冗余系统中错误率的装置、方法和系统
US5317726A (en) Multiple-processor computer system with asynchronous execution of identical code streams
US20160092320A1 (en) Electronic fault detection unit
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
WO2020239060A1 (zh) 错误恢复的方法和装置
JPH07129426A (ja) 障害処理方式
US20120210172A1 (en) Multiprocessor switch with selective pairing
JPH0683663A (ja) マルチプロセッサ・コンピュータ・システム
CN114416435A (zh) 一种微处理器架构及微处理器故障检测方法
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
CN118035006B (zh) 一种三核处理器独立和锁步运行可动态配置的控制系统
WO2014084836A1 (en) Fault tolerance in a multi-core circuit
US10949203B2 (en) Technologies for ensuring functional safety of an electronic device
CN116302648A (zh) 一种基于双核锁步处理器的故障处理方法
Kim et al. Ssd: An affordable fault tolerant architecture for superscalar processors
CN117112318A (zh) 基于risc-v架构的双核容错系统
CN115080315B (zh) 故障检测及处理方法、装置、处理器及电子设备
US8954794B2 (en) Method and system for detection of latent faults in microcontrollers
CN107423029B (zh) 计算单元
JP2009505179A (ja) 少なくとも2つの実行ユニットを有する計算機システムにおいてレジスタのマーキングによってスタート状態を定める方法および装置
US20230064905A1 (en) Semiconductor device

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant