CN117724765A - 处理器和从处理器检测软错误的方法 - Google Patents

处理器和从处理器检测软错误的方法 Download PDF

Info

Publication number
CN117724765A
CN117724765A CN202311186118.3A CN202311186118A CN117724765A CN 117724765 A CN117724765 A CN 117724765A CN 202311186118 A CN202311186118 A CN 202311186118A CN 117724765 A CN117724765 A CN 117724765A
Authority
CN
China
Prior art keywords
instruction
original
register file
register
copy
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
CN202311186118.3A
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.)
Samsung Electronics Co Ltd
Industry Academic Cooperation Foundation of Yonsei University
Original Assignee
Samsung Electronics Co Ltd
Industry Academic Cooperation Foundation of Yonsei 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 Samsung Electronics Co Ltd, Industry Academic Cooperation Foundation of Yonsei University filed Critical Samsung Electronics Co Ltd
Publication of CN117724765A publication Critical patent/CN117724765A/zh
Pending legal-status Critical Current

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • 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/0751Error or fault detection not based on redundancy
    • 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/1479Generic software techniques for error detection or fault masking
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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
    • 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/3802Instruction prefetching
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)

Abstract

提供了一种处理器和检测软错误的方法。该处理器包括指令流水线,其顺序地处理原始指令和通过复制原始指令而生成的复制指令。原始寄存器堆将通过在指令流水线中处理原始指令而获得的结果存储在其第n索引的寄存器内。复制寄存器堆将通过在指令流水线中处理复制指令而获得的结果存储在其第n索引的寄存器内。比较单元响应于控制信号而比较原始寄存器堆中的第n索引的寄存器与复制寄存器堆中的第n索引的寄存器并且输出错误检测信号。

Description

处理器和从处理器检测软错误的方法
相关申请的交叉引用
要求2022年9月16日提交于韩国知识产权局的韩国专利申请No.10-2022-0117447的优先权,其公开内容整体以引用方式并入本文中。
技术领域
本公开涉及从处理器检错,更具体地,涉及一种处理器和从处理器检测软错误的方法。
背景技术
软错误(或瞬态故障)通常是指存储在诸如晶体管的半导体器件中的比特值作为瞬态因素(例如,中子或α粒子之间的碰撞)的结果而从“0”反转为“1”或从“1”反转为“0”的错误。与永久硬件故障所导致的硬错误相比,软错误是暂时失灵的结果。由软错误导致的不准确比特值可能在处理器的操作期间导致致命处理错误。结果,存在经济地利用处理器资源以在致命的处理器失灵之前准确检测软错误的需求。
发明内容
根据本公开的一方面,提供了一种处理器,包括:指令流水线,其顺序地处理原始指令和通过复制原始指令而生成的复制指令。原始寄存器堆将通过处理来自指令流水线的原始指令而获得的结果存储在其第n索引的寄存器中。复制寄存器堆将通过处理来自指令流水线的复制指令而获得的结果存储在其第n索引的寄存器中。比较单元响应于控制信号比较原始寄存器堆中的第n索引的寄存器与复制寄存器堆中的第n索引的寄存器并输出错误检测信号。
根据本公开的另一方面,提供了一种检测软错误的方法,包括:通过指令流水线执行原始指令;将原始指令的执行结果存储在原始寄存器堆的第n索引的寄存器中;将原始指令复制到复制指令;通过指令流水线执行复制指令;将复制指令的执行结果存储在复制寄存器堆的第n索引的寄存器中;以及比较原始寄存器堆的第n索引的寄存器与复制寄存器堆的第n索引的寄存器。
根据本公开的另一方面,提供了一种处理器,其包括至少两个核。所述至少两个核中的每一个包括:指令流水线,其包括多个级,在所述多个级处,在第x指令循环中处理原始指令并且在第x+1指令循环中处理复制指令;原始寄存器堆,其包括多个寄存器并且暂时存储指令流水线相对于原始指令的执行结果;原始程序计数器,其在第x指令循环改变并且在第x+1指令循环维持;复制寄存器堆,其包括数量与原始寄存器堆中的寄存器相同的寄存器,并且暂时存储指令流水线相对于复制指令的执行结果;复制程序计数器,其在第x+1指令循环改变并且在第x+2指令循环维持;以及比较单元,其比较原始寄存器堆和复制寄存器堆中相同索引的寄存器或原始程序计数器与复制程序计数器并且输出错误检测信号。
附图说明
通过参照附图详细描述其示例性实施例,本公开的以上和其它特征和优点将变得更显而易见,在附图中:
图1示出根据本公开的实施例的处理器;
图2是示出根据本公开的实施例的从处理器检测软错误的方法的流程图;
图3示出根据本公开的实施例的指令流水线;
图4示出在描述图3的指令流水线的操作中供参考的表;
图5示出根据本公开的实施例的复制控制单元的控制操作;
图6示出根据本公开的实施例的处理器;
图7示出在描述根据本公开的实施例的复制原始指令的方法中供参考的框图;
图8示出根据本公开的实施例的用于通过复制程序计数器来检测软错误的处理器;
图9示出根据本公开的实施例的指令流水线;
图10和图11示出在描述根据本公开的实施例的相对于存储指令检测软错误的方法中供参考的图;
图12是示出根据本公开的实施例的应用程序计数器的控制的软错误检测方法的流程图;
图13是示出根据本公开的实施例的应用错误检测时间的控制的软错误检测方法的流程图;
图14和图15是在描述根据本公开的实施例的针对各个特定指令从处理器检测软错误的操作中供参考的图;
图16示出根据本公开的实施例的处理器。
具体实施方式
以下,详细且清晰地描述本公开的实施例,以允许本领域普通技术人员制造和使用本文中要求保护的本公开而无需过度实验。
图1示出根据本公开的实施例的处理器100的软错误检测资源,图2是示出根据本公开的实施例的从处理器100检测软错误的方法200的流程图。
参照图1和图2,根据本公开的实施例的处理器100包括指令流水线110、原始寄存器堆120、复制寄存器堆130和比较单元140。在此示例中,原始寄存器堆120包括第0索引至第z索引的寄存器R0至Rz(其中z是正整数),复制寄存器堆130包括第0’索引至第z’索引的寄存器R0’至Rz’(其中z’是正整数)。这里,z可等于z’。顺便说一句,这里要注意,用于检测软错误的资源相对最少,这允许实现相对简单的软错误检测处理。
根据本公开的实施例的从处理器100检测软错误的方法200包括:在操作S210中执行原始指令;在操作S220中将原始指令的执行结果存储在原始寄存器堆120的第n索引的寄存器中;在操作S230中将原始指令复制为复制指令;在操作S240中执行复制指令;在操作S250中将复制指令的执行结果存储在复制寄存器堆130的第n索引的寄存器中;以及在操作S260中比较原始寄存器堆120的第n索引的寄存器与复制寄存器堆130的第n索引的寄存器。
根据本公开的实施例的图1的处理器100可使用根据本公开的实施例的用于检测软错误的图2的方法200来检测软错误。另外,根据本公开的实施例的软错误检测方法200可在根据本公开的实施例的处理器100中执行。然而,本公开不限于此,根据本公开的实施例的处理器100可使用与方法200不同的方法来检测软错误。另外,根据本公开的实施例的软错误检测方法200可在与处理器100不同的处理器中执行。以下,为了描述方便,示出根据本公开的实施例的处理器100通过使用软错误检测方法200来检测软错误,并且根据本公开的实施例的软错误检测方法200在处理器100中执行。
仍参照图1和图2,根据本公开的实施例的处理器100中所包括的指令流水线110在操作S210中顺序地处理原始指令OIN。
在操作S240中,指令流水线110顺序地处理与原始指令OIN对应的复制指令DIN。例如,在操作S230中通过复制原始指令OIN来生成复制指令DIN。根据本公开的实施例的通过复制原始指令OIN来生成复制指令DIN的各种方法将稍后描述。
指令流水线110顺序地处理原始指令OIN或复制指令DIN,使得执行原始指令OIN或复制指令DIN所需的指令流水线110中所包括的总级通过与处理器100的指令循环同步来执行,从而生成原始指令OIN或复制指令DIN的执行结果。
图3示出根据本公开的实施例的指令流水线110,图4示出图3的指令流水线110的操作。
参照图1、图3和图4,根据本公开的实施例的指令流水线110可包括提取单元FU、解码单元DU、执行单元EU和写回单元WU。
提取单元FU可提取原始指令OIN和复制指令DIN。提取单元FU可通过先入先出(FIFO)缓冲器实现为队列。提取单元FU可包括原始提取单元OFU和复制提取单元DFU,其中,原始提取单元OFU从外部提取原始指令OIN,复制提取单元DFU复制提取到原始提取单元的原始指令OIN以将其存储为复制指令DIN。即,可由原始提取单元OFU中的原始指令OIN的复制而生成复制指令DIN。
在这种情况下,当分别在第一指令循环和第二指令循环中将第一原始指令INS1和第二原始指令INS2提取到原始提取单元OFU时,可分别在第二指令循环和第三指令循环中将第一原始指令INS1和第二原始指令INS2提取到复制提取单元DFU。
解码单元DU可顺序地解码原始指令OIN和复制指令。解码单元DU可解析原始指令OIN和复制指令DIN的操作码,并且可访问操作数所指示的寄存器。例如,解码单元DU可对原始指令OIN进行解码以访问原始寄存器堆120的第m索引的寄存器Rm,并且可对复制指令DIN进行解码以访问复制寄存器堆130的第m索引的寄存器Rm’。
以下,为了描述方便,原始寄存器堆120的寄存器可被称为原始寄存器,复制寄存器堆130的寄存器可被称为复制寄存器。另外,在理解本公开时,除非会出现不清晰,否则对于寄存器、寄存器的索引或寄存器值的提及可混合或一起使用。
根据本公开的实施例的指令流水线110还可包括第一复用器MUX1和第二复用器MUX2以便于解码单元DU对原始指令OIN和复制指令DIN之一进行解码并且处理原始寄存器Rm和复制寄存器Rm’之一。响应于控制信号XCON,第一复用器MUX1和第二复用器MUX2可分别向解码单元DU发送原始指令OIN和复制指令DIN之一和原始寄存器Rm和复制寄存器Rm’之一。
对第一原始指令INS1和第二原始指令INS2的解码操作可分别在第二指令循环和第四指令循环中执行,对第一复制指令INS1’和第二复制指令INS2’的解码操作可分别在第三指令循环和第五指令循环中执行。
执行单元EU可执行与来自解码单元DU的解码结果对应的操作。例如,当原始指令OIN和复制指令DIN的操作码是任意两个寄存器相加的“ADD”时,执行单元EU可输出通过算术和逻辑单元ALU将两个寄存器相加而获得的结果。
写回单元WU可将来自执行单元EU的执行结果写入原始寄存器堆120的第n索引的寄存器Rn和复制寄存器堆130的第n索引的寄存器Rn’。第一原始指令INS1可分别由执行单元EU和写回单元WU在第三指令循环和第四指令循环中处理,并且可被写入原始寄存器堆120的第n索引的寄存器Rn中。第一复制指令INS1’可分别由执行单元EU和写回单元WU在第四指令循环和第五指令循环中处理,并且可被写入复制寄存器堆130的第n索引的寄存器Rn’中。第二原始指令INS2和第二复制指令INS2’也可通过上述相同的操作写入对应寄存器中。
如上所述,通过根据本公开的实施例的指令流水线110的结构顺序地执行原始指令OIN和复制指令DIN,以使用于检测软错误的硬件资源、功率和执行时间的增加最小化。
另外,由于根据本公开的实施例的处理器100包括相同的寄存器堆以用于暂时存储执行原始指令OIN和复制指令DIN所需的操作数或原始指令OIN和复制指令DIN的执行结果,所以如下所述,检测软错误的过程可简化。
原始寄存器堆120可包括多个寄存器。多个寄存器可各自具有相同的大小,例如32比特或64比特。如上所述,通过在指令流水线110中处理原始指令OIN而获得的结果可被存储在原始寄存器堆120的寄存器中。例如,通过在写回单元WU中处理第一原始指令INS1而获得的结果可被存储在第n索引的寄存器Rn中。各个寄存器可被指示为索引R0至Rz。
暂时存储复制指令DIN的操作数或处理复制指令DIN的结果的复制寄存器堆130可具有按照与原始寄存器堆120的索引相同的方式设定的索引。如图1所示,当原始寄存器堆120的索引被设定为R0至Rz时,复制寄存器堆130的索引也被设定为R0至Rz。然而,在本公开中,为了将原始寄存器堆120的索引与复制寄存器堆130的索引相区分,原始寄存器堆120的索引被指示为R0至Rz,复制寄存器堆130的索引被指示为R0’至Rz’。另外,复制寄存器堆130中的寄存器的大小和数量可与原始寄存器堆120中的寄存器相同。
通过在指令流水线110中处理复制指令DIN而获得的结果被存储在复制寄存器堆130中的索引的寄存器中,其中,该索引与存储通过处理原始指令OIN而获得的结果的原始寄存器堆120中相同。如上所述,当通过处理第一原始指令INS1而获得的结果被存储在原始寄存器堆120中的第n索引的寄存器Rn中时,通过处理与第一原始指令INS1对应的第一复制指令INS1’而获得的结果可被存储在复制寄存器堆130中的第n索引的Rn’中。
由于通过处理任意指令而获得的结果可用作另一指令的操作数,所以用于存储用于处理原始指令OIN的操作数和用于处理复制指令DIN的操作数的寄存器的索引可相同。在上述示例中,原始指令OIN和复制指令DIN的操作数可全部被存储在第m索引的寄存器Rm和Rm’中。
比较单元140可响应于控制信号XCON,对原始寄存器堆120中的第n索引的寄存器Rn与复制寄存器堆130中的第n索引的寄存器Rn’进行比较并且输出错误检测信号XERR。例如,当原始寄存器Rn和复制寄存器Rn’相同时,错误检测信号XERR被输出为逻辑低“L”以指示未检测到软错误。另一方面,当原始寄存器Rn和复制寄存器Rn’彼此不同时,错误检测信号XERR被输出为逻辑高“H”以指示检测到软错误。
如上所述,由于复制寄存器堆130与原始寄存器堆120分离地被包括在内,原始寄存器堆120的结构与复制寄存器堆130相同,并且为原始指令OIN和复制指令DIN分配相同的索引,所以可简化用于检测在执行原始指令OIN时可能出现的软错误的处理。因此,可节省检测软错误所需的资源、功率和时间。
图6示出根据本公开的实施例的处理器100。
参照图6,根据本公开的实施例的处理器100包括如图1中的指令流水线110、原始寄存器堆120、复制寄存器堆130和比较单元140。另外,图6的处理器100还可包括程序计数器(PC)寄存器150、指令存储器160和复制控制单元170。
程序计数器寄存器150可存储指定要执行的原始指令OIN的原始程序计数器OPC。存储在指令存储器160的地址中的原始指令OIN可被提取到指令流水线110,其中,原始指令OIN与原始程序计数器OPC对应。在原始指令OIN被提取到指令流水线110之后,原始程序计数器OPC可具有改变的值。例如,在原始指令OIN被提取到指令流水线110之后,原始程序计数器OPC的值可从“0x0004”增加一到“0x0008”。
复制控制单元170可生成控制复制指令DIN的生成和处理以检测软错误的控制信号XCON。例如,复制控制单元170可识别从指令存储器160提取到指令流水线110的原始指令OIN,并且根据原始指令OIN的类型控制要复制的对应复制指令DIN。
例如,复制控制单元170可控制复制指令DIN与原始指令OIN相同地复制。
图5示出根据本公开的实施例的复制控制单元170的控制操作。
参照图5和图6,当处理器100是ARM处理器时,根据本公开的实施例的复制控制单元170可控制原始指令OIN“ADD R0,R1,R2”被复制为复制指令DIN“ADD R0’,R1’,R2’”,其中,原始指令OIN“ADD R0,R1,R2”获取寄存器R1和R2之和以存储在原始寄存器堆120的寄存器R0中,并且复制指令DIN“ADD R0’,R1’,R2’”获取寄存器R1’和R2’之和以存储在复制寄存器堆130的寄存器R0’中。
返回参照图6,复制控制单元170可控制复制指令DIN被复制为不同于原始指令OIN的类型。例如,当处理器100是ARM处理器时,并且当提取到指令流水线110的原始指令OIN是“STR”(即,命令存储在存储器中的指令)时,复制控制单元170可控制复制指令DIN被复制为“LDR”(即,命令从存储器加载到寄存器的指令)。下面将更详细地描述原始指令OIN是“STR”的示例。
另外,复制控制单元170可控制图3的指令流水线110中的第一复用器MUX1和第二复用器MUX2以及原始寄存器堆120和复制寄存器堆130的更新,或者可生成用于控制与比较单元140中要比较的对象的比较操作的控制信号XCON。
图7示出根据本公开的实施例的复制原始指令的方法。
参照图7,可将与原始程序计数器OPC对应的原始指令OIN从指令存储器160提取到原始提取单元OFU。与原始程序计数器OPC对应的原始指令OIN可从指令存储器160作为复制指令DIN被提取到复制提取单元DFU。如上所述,根据本公开的实施例的处理器100可根据所需条件和情况使用各种方法来复制原始指令OIN,以使得在检测软错误时可提高控制的灵活性。
如上,描述了在根据本公开的实施例的处理器100中复制原始寄存器堆120以相对于数据流检测软错误。以下,将描述在处理器100中相对于控制流检测软错误或者在执行阶段使用空闲资源而非最终结果检测软错误。
图8示出根据本公开的实施例的用于通过复制程序计数器来检测软错误的处理器100。
参照图8,根据本公开的实施例的处理器100可包括如图6中的指令流水线110、原始寄存器堆120、复制寄存器堆130、比较单元140、程序计数器寄存器150、指令存储器160和复制控制单元170。另外,程序计数器寄存器150可包括原始程序计数器寄存器152和复制程序计数器寄存器154。
如上所述,原始程序计数器寄存器152可存储与原始指令OIN对应的原始程序计数器OPC。复制程序计数器寄存器154可存储与复制指令DIN对应的复制程序计数器DPC。
可通过针对原始指令OIN在第一指令循环中复制原始程序计数器OPC来存储复制程序计数器DPC。在第一指令循环之后,在指令流水线110处理复制指令DIN的同时,复制程序计数器DPC可改变。例如,在复制指令DIN被提取在指令流水线110中之后,复制程序计数器DPC可改变。
这里,响应于控制信号XCON,比较单元140可比较原始程序计数器OPC与复制程序计数器DPC并且输出错误检测信号XERR。
当原始程序计数器OPC和复制程序计数器DPC相同时,比较单元140将错误检测信号XERR输出为逻辑低“L”以指示未检测到软错误。另外,当原始程序计数器OPC和复制程序计数器DPC彼此不同时,比较单元140将错误检测信号XERR输出为逻辑高“H”以指示检测到软错误。
在执行原始指令OIN的同时出现软错误以使得原始程序计数器OPC和复制程序计数器DPC彼此不同可存在两种情况。第一种情况是原始程序计数器OPC本身中存在错误,从而错误地执行指令存储器160的另一地址中存储的指令,而非要执行的指令。具体地,当程序计数器改变为与诸如ARM处理器的“JMP”(跳转)指令或“BEQ”(分支)指令的指令的执行结果对应的任意地址值时,程序计数器中出现错误的概率可能较高。第二种情况是原始程序计数器OPC正常,但在执行与原始程序计数器OPC对应的原始指令OIN时存在错误。
图9示出根据本公开的实施例的指令流水线110。
参照图6和图9,根据本公开的实施例的指令流水线110包括如图3中的提取单元FU、解码单元DU、执行单元EU和写回单元WU,并且还可包括用于向设置在处理器100外部的数据存储器发送数据或从数据存储器接收数据的存储器访问单元MU。例如,当原始指令OIN是存储指令“STR”时,存储在原始寄存器堆120的任意寄存器中的数据可通过存储器访问单元MU发送到数据存储器。另一方面,当原始指令OIN是加载指令“LDR”时,数据可通过存储器访问单元MU从数据存储器加载到原始寄存器堆120的任意寄存器。
图10和图11示出根据本公开的实施例的相对于存储指令检测软错误的方法200。
首先,参照图8和图10,在根据存储指令检测软错误时,类似于原始指令OIN而非存储指令“STR”的情况,根据本公开的实施例的软错误检测方法200包括:在操作S210中执行原始指令OIN;以及在操作S220中将原始指令OIN的执行结果存储在原始寄存器堆120的第n索引的寄存器Rn中。
另外,在操作S232中,当原始指令OIN是存储指令“STR”时,复制控制单元170可在操作S234中将复制指令DIN设定为加载指令“LDR”并且可在操作S230中将原始指令OIN复制为复制指令DIN。
当复制指令DIN是加载指令“LDR”时,在操作S240中执行复制指令DIN,然后在操作S255中,可将复制指令DIN的执行结果存储在原始寄存器堆120的第n索引的寄存器Rn中,而非复制寄存器堆130的第n索引的寄存器Rn’。
类似于其它指令,在操作S260中,比较单元140可比较原始寄存器堆120的第n索引的寄存器Rn与复制寄存器堆130的第n索引的寄存器Rn’并且可输出错误检测信号XERR。
接下来,参照图10和图11,当根据本公开的实施例的处理器100是ARM处理器时,在操作S210中执行原始指令OIN“STR R0→[R1]”的同时,原始寄存器堆120的寄存器R0被访问①并存储在数据存储器的地址[R1]中②。地址[R1]是存储在原始寄存器堆120的寄存器R1中的值。这里,根据原始指令OIN“STR R0→[R1]”的执行,在操作S220中维持原始寄存器堆120中的寄存器R0的值。
接下来,在操作S234中相对于原始指令OIN“STR R0→[R1]”复制复制指令DIN“LDRR0←[R1’]”。然后,在操作S240中,复制寄存器堆130的寄存器R1’被访问③并且存储在数据存储器的地址[R1’]中的数据R0被发送到处理器100④。在操作S255中,发送到处理器100的数据R0通过图7中的指令流水线110的存储器访问单元MU和写回单元WU被存储在原始寄存器堆120的寄存器R0中⑤。
这里,复制指令的执行结果被存储在复制寄存器堆130的寄存器R0’中,其中,复制指令对应于在原始指令OIN“STR R0←[R1]”执行之前执行的原始指令。与原始寄存器堆120的寄存器R0相同的值可被存储在复制寄存器堆130的寄存器R0’中。
在这方面,比较单元140可在操作S260中比较原始寄存器堆120的寄存器R0(复制指令DIN“LDR R0←[R1’]”的执行结果)与复制寄存器堆130的寄存器R0’(对应于原始指令OIN“STR R0←[R1]”的执行结果),并且可输出错误检测信号XERR。
在执行存储指令“SRT”时出现软错误的情况下,从而1)当错误数据被存储在正常数据存储器区域中,并且2)正常数据被存储在错误地址中时,根据本公开的实施例的处理器100和软错误检测方法200可用于简单且准确地检测软错误。假设复制寄存器堆130的寄存器R0’中不存在错误,在1)的情况下由比较单元140比较的原始寄存器堆120的寄存器R0可能是损坏的数据,在2)的情况下由比较单元140比较的原始寄存器堆120的寄存器R0可能是完全不同的数据。因此,在两种情况下,复制寄存器堆130的寄存器R0’和原始寄存器堆120的寄存器R0彼此不同,错误检测信号XERR可从比较单元140输出为逻辑高“H”。
依据根据上述本公开的实施例的处理器100和软错误检测方法200,可简单且准确地检测出现软错误并由此错误地执行存储指令“SRT”的两种情况。
图12是示出根据本公开的实施例的应用程序计数器的控制的软错误检测方法200的流程图。
参照图8和图12,如图2中,根据本公开的实施例的软错误检测方法200包括:在操作S210中执行原始指令OIN;在操作S220中将原始指令OIN的执行结果存储在原始寄存器堆120的第n索引的寄存器Rn中;在操作S230中将原始指令OIN复制为复制指令DIN;在操作S240中执行复制指令DIN;在操作S250中将复制指令DIN的执行结果存储在复制寄存器堆130的第n索引的寄存器Rn’中;以及在操作S260中比较原始寄存器堆120的第n索引的寄存器Rn与复制寄存器堆130的第n索引的寄存器Rn’。
这里,根据图12的软错误检测方法200,为了控制原始程序计数器OPC和复制程序计数器DPC用于执行原始指令OIN和复制指令DIN,可在操作S210中在执行原始指令OIN的同时在两个指令循环中改变原始程序计数器OPC,并且可在操作S270-2中维持复制程序计数器DPC。
例如,在第一指令循环中,原始程序计数器OPC的值可从“0x0000”增加一到“0x0004”,复制程序计数器DPC的值可维持在“0x0000”。然后,在第三指令循环中,原始程序计数器OPC的值可从“0x0004”增加一到“0x0008”,复制程序计数器DPC的值可增加一到“0x0004”。作为参考,在第一指令循环中当首先执行原始指令OIN时,即,当原始程序计数器OPC指示“0x0000”(指令存储器160的第一地址)时,复制程序计数器DPC可复制原始程序计数器OPC并且可具有值“0x0000”。
另外,根据图12的软错误检测方法200,为了控制原始程序计数器OPC和复制程序计数器DPC用于执行原始指令OIN和复制指令DIN,可在操作S240中执行复制指令DIN的同时在两个指令循环中维持原始程序计数器OPC,并且可在操作S270-4中改变复制程序计数器DPC。例如,在第n指令循环中,复制程序计数器DPC的值可从“0x0000”增加一到“0x0004”,原始程序计数器OPC的值可维持在“0x0000”。然后,在第n+2指令循环中,原始程序计数器OPC的值可从“0x0000”增加一到“0x0004”,复制程序计数器DPC的值可从“0x0004”增加一到“0x0008”。
在根据本公开的实施例的指令流水线110的结构中,针对程序计数器执行优化的控制操作以顺序地执行原始指令OIN和复制指令DIN,以使得检测软错误所需的硬件资源、功耗和执行时间的增加可最小化。
图13是示出根据本公开的实施例的应用错误检测时间的控制的软错误检测方法的流程图。
参照图8和图13,根据本公开的实施例的软错误检测方法200可包括:当原始指令OIN是存储指令“STR”时,在由比较单元140执行的操作S262中比较原始寄存器堆120的第n索引的寄存器Rn与复制寄存器堆130的第n索引的寄存器Rn’以生成错误检测信号XERR。比较单元140可在存储指令“STR”的执行完成时执行S262中的比较操作。可以这样的方式识别命令执行何时完成:复制控制单元170从写回单元WU接收关于指令的信息,然后在指令流水线110的最终步骤执行相关控制操作。
另外,根据本公开的实施例的软错误检测方法200可包括:在操作S264中比较原始程序计数器OPC与复制程序计数器DPC,其中执行操作S264的时刻与操作S262中比较第n索引的寄存器Rn与寄存器Rn’的时刻不同。
如上所述,原始指令OIN和复制指令DIN交替地执行,以使得比较单元140可在每两个指令循环中比较寄存器值与程序计数器值以检测软错误。然而,原始指令OIN的执行结果被暂时存储在原始寄存器堆120中,并且一个原始指令OIN或多个原始指令OIN的最终执行结果可以是发送到设置在处理器100外部的数据存储器的值或数据。在根据本公开的实施例的处理器100和软错误检测方法200中,针对指令的最终执行结果执行寄存器值的比较,因此,可节省检测软错误所需的功率和时间。
另外,在根据本公开的实施例的处理器100和软错误检测方法200中,在没有执行寄存器值的比较以检测软错误的循环中,比较单元140连同对最终执行结果的比较一起对原始程序计数器OPC和复制程序计数器DPC进行比较,其中资源分配相对不大。因此,检测的准确性可改进。如上所述,除了程序计数器的软错误之外,可在执行指令的同时通过比较原始程序计数器OPC和复制程序计数器DPC来检测其它软错误。
图14和图15示出根据本公开的实施例的相对于各个特定指令从处理器100检测软错误的操作。
参照图8、图14和图15,第一原始指令INS1“ADD R0,R1,R2”、第二原始指令INS2“R1=0x0100”和第三原始指令INS3“STR R0→[R1]”可在根据本公开的实施例的处理器100中顺序地执行。这里,第一原始指令INS1至第三原始指令INS3可被复制为第一复制指令INS1’至第三复制指令INS3’以执行。即,第一复制指令INS1’“ADD R0’,R1’,R2’”、第二复制指令INS2’“R1’=0x0100”和第三复制指令INS3’“LDR R0←[R1’]”可顺序地执行。
更具体地,第一原始指令INS1可在第一指令循环中被提取到原始提取单元OFU。因此,原始程序计数器OPC改变以指示下一地址“0x0004”,并且复制程序计数器DPC可维持“0x0000”(初始复制的原始程序计数器OPC的值)。
接下来,第二原始指令INS2和第一复制指令INS1’可分别在第二指令循环中分别被提取到原始提取单元OFU和复制提取单元DFU。因此,原始程序计数器OPC可维持现有地址“0x0004”,并且复制程序计数器DPC可改变以指示下一地址“0x0004”。
除此之外,第一原始指令INS1可由解码单元DU解码,从而可访问原始寄存器堆120的寄存器R1和R2。作为参考,图15示出在第二指令循环中第一复制指令INS1’被提取到复制提取单元DFU;然而,在第一指令循环中,第一复制指令INS1’和第一原始指令INS1可同时被分别提取到复制提取单元DFU和原始提取单元OFU。
在第三指令循环中,第二原始指令INS2可被保持在原始提取单元OFU中,并且第二复制指令INS2’可被提取到复制提取单元DFU。与此同时,第一复制指令INS1’可由解码单元DU解码,从而可访问复制寄存器堆130的寄存器R1’和R2’。解码的第一原始指令INS1可由执行单元EU执行。
在第四指令循环中,第三原始指令INS3可被提取到原始提取单元OFU,并且第二复制指令INS2’可被保持到复制提取单元DFU。与此同时,第二原始指令INS2可由解码单元DU解码,并且第一复制指令INS1’可由执行单元EU执行。不需要访问数据存储器的第一原始指令INS1可由存储器访问单元MU保持。
在第五指令循环中,第三原始指令INS3被保持在原始提取单元OFU中,并且第三复制指令INS3’可被提取到复制提取单元DFU。与此同时,第二复制指令INS2’可由解码单元DU解码,并且第二原始指令INS2可由执行单元EU执行。不需要访问数据存储器的第一复制指令INS1’可由存储器访问单元MU保持。第一原始指令INS1的执行完成,因此,寄存器R1和R2之和可由写回单元WU存储在原始寄存器堆120的寄存器R0中。
在第六指令循环中,第三复制指令INS3’可被保持在复制提取单元DFU中。与此同时,第三原始指令INS3可由解码单元DU解码,并且第二复制指令INS2’可由执行单元EU执行。不需要访问数据存储器的第二原始指令INS2可由存储器访问单元MU保持。第一复制指令INS1’的执行完成,因此,寄存器R1’和R2’之和可由写回单元WU存储在复制寄存器堆130的寄存器R0’中。
在第七指令循环中,第三复制指令INS3’可由解码单元DU解码,并且第三原始指令INS3可由执行单元EU执行。与此同时,不需要访问数据存储器的第二复制指令INS2’可由存储器访问单元MU保持。第二原始指令INS2的执行完成,因此,“0x0100”可由写回单元WU存储在原始寄存器堆120的寄存器R1中。
在第七指令循环中,比较单元140可针对分别在第五指令循环和第六指令循环中完成各自的执行的第一原始指令INS1和第一复制指令INS1’比较原始程序计数器OPC和复制程序计数器DPC,因此,可检测软错误。
在第八指令循环中,第三复制指令INS3’可由执行单元EU执行。与此同时,第三原始指令INS3可将数据发送到存储在寄存器R1中的地址,其中,数据被存储在原始寄存器堆120的寄存器R0中并通过存储器访问单元MU发送到数据存储器。第二复制指令INS2’的执行完成,因此,“0x0100”可由写回单元WU存储在复制寄存器堆130的寄存器R1’中。
在第九指令循环中,第三复制指令INS3’可通过存储器访问单元MU从数据存储器接收存储在复制寄存器堆130中的寄存器R1的地址中的数据。与此同时,第三原始指令INS3的执行完成,因此,原始寄存器堆120中的寄存器R0的值可由写回单元WU维持。
在第九指令循环中,比较单元140可针对分别在第七指令循环和第八指令循环中完成各自的执行的第二原始指令INS2和第二复制指令INS2’比较原始程序计数器OPC和复制程序计数器DPC,因此,可检测软错误。
在第十指令循环中,第三复制指令INS3’的执行完成,因此,从数据存储器接收的数据可由写回单元WU加载到原始寄存器堆120的寄存器R0。
在第十一指令循环中,比较单元140比较原始寄存器堆120的寄存器R0与复制寄存器堆130的寄存器R0’,因此,可检测软错误。
图16示出根据本公开的实施例的处理器100。
参照图1和图16,根据本公开的实施例的处理器100可包括至少两个核。至少两个核中的至少一个可包括指令流水线110、原始寄存器堆120、原始程序计数器OPC、复制寄存器堆130、复制程序计数器DPC和比较单元140,如第一核CR1中那样。指令流水线110包括在其中在第x指令循环中处理原始指令OIN并且在第x+1指令循环中处理复制指令DIN的各个级。原始寄存器堆120包括各种寄存器并且暂时存储指令流水线110相对于原始指令OIN的执行结果。原始程序计数器OPC在第x指令循环改变并且在第x+1指令循环维持。复制寄存器堆130包括数量与原始寄存器堆120相同的寄存器,并且暂时存储指令流水线110相对于复制指令DIN的执行结果。复制程序计数器DPC在第x+1指令循环改变并且在第x+2指令循环维持。比较单元140比较原始寄存器堆120和复制寄存器堆130中相同索引的寄存器或者原始程序计数器OPC与复制程序计数器DPC,并且输出错误检测信号XERR。
图16没有示出它们之间的连接,然而,本领域普通技术人员将通过以上描述清楚地理解。
根据本公开的实施例,在处理器和软错误检测方法中没有单独地包括用于检测软错误的核,因此,可节省资源。另外,用于原始指令的原始寄存器堆和用于复制指令的复制寄存器堆具有相同的结构,因此,检测软错误所需的处理的复杂度可降低。
如本领域中传统的,可根据执行所描述的功能的块来描述和示出实施例。这些块在本文中可称为单元或模块等,物理上由诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等的模拟和/或数字电路实现,可选地可由固件和/或软件驱动。例如,电路可具体实现于一个或多个半导体芯片中,或者诸如印刷电路板等的基板支撑件上。构成块的电路可由专用硬件、或由处理器(例如,一个或更多个编程的微处理器和相关电路)、或由执行块的一些功能的专用硬件和执行块的其它功能的处理器的组合实现。在不脱离本公开的范围的情况下,实施例的各个块可物理上分离为两个或更多个相互作用和分立的块。同样,在不脱离本公开的范围的情况下,实施例的块可物理上组合成更复杂的块。实施例的一方面可通过存储在非暂时性存储介质内并由处理器执行的指令来实现。
以下,尽管详细描述了本公开的代表性实施例,但本公开所属领域的普通技术人员将理解,在不脱离本公开的范围的情况下,能够对上述实施例进行各种修改。例如,根据本公开的实施例的处理器100是ARM处理器;然而,本公开不限于此。因此,本公开的范围不应限于所描述的实施例,而是应该不仅由本文描述的权利要求限定,而且由权利要求和等同物限定。

Claims (20)

1.一种处理器,包括:
指令流水线,其顺序地处理原始指令和从所述原始指令生成的复制指令;
原始寄存器堆,其将通过在所述指令流水线内处理所述原始指令而获得的原始结果存储在所述原始寄存器堆的第n索引的寄存器中,其中n是整数;
复制寄存器堆,其将通过在所述指令流水线内处理所述复制指令而获得的复制结果存储在所述复制寄存器堆的第n索引的寄存器中;以及
比较单元,其响应于控制信号,比较所述原始寄存器堆中的所述第n索引的寄存器的第一值与所述复制寄存器堆中的所述第n索引的寄存器的第二值以输出错误检测信号。
2.根据权利要求1所述的处理器,其中,所述原始寄存器堆的索引和所述复制寄存器堆的索引被设定为彼此相同。
3.根据权利要求1所述的处理器,其中,包括在所述原始寄存器堆中的寄存器的大小和数量被设定为与所述复制寄存器堆中的寄存器的大小和数量相同。
4.根据权利要求1所述的处理器,其中,所述指令流水线包括:
提取单元,其提取所述原始指令和所述复制指令;
解码单元,其顺序地解码所述提取单元的原始指令和复制指令;
执行单元,其执行从所述解码单元获得的解码结果;以及
写回单元,其将从所述执行单元获得的执行结果写入所述原始寄存器堆中的所述第n索引的一个寄存器和所述复制寄存器堆中的所述第n索引的一个寄存器。
5.根据权利要求4所述的处理器,其中,所述提取单元包括:
原始提取单元,其从指令存储器提取与原始程序计数器的计数值对应的所述原始指令;以及
复制提取单元,其复制提取到所述原始提取单元的所述原始指令以将其存储为所述复制指令。
6.根据权利要求4所述的处理器,其中,所述提取单元包括:
原始提取单元,其从指令存储器提取与原始程序计数器的计数值对应的所述原始指令;以及
复制提取单元,其从指令存储器提取与所述原始程序计数器的计数值对应的所述原始指令,以将其存储为所述复制指令。
7.根据权利要求4所述的处理器,其中,所述解码单元对所述原始指令进行解码以访问所述原始寄存器堆中的第m索引的寄存器,并且对所述复制指令进行解码以访问所述复制寄存器堆中的第m索引的寄存器。
8.根据权利要求1所述的处理器,还包括:
复制程序计数器,原始程序计数器的与所述原始指令对应的计数值被复制给所述复制程序计数器,并且所述复制程序计数器在所述指令流水线处理所述复制指令的同时被改变,其中
所述比较单元响应于所述控制信号而比较所述原始程序计数器的第一计数值与所述复制程序计数器的第一计数值以输出所述错误检测信号。
9.根据权利要求1所述的处理器,还包括:复制控制单元,其生成用于生成和处理所述复制指令并且用于控制所述比较单元的比较操作的所述控制信号。
10.根据权利要求9所述的处理器,其中,当所述原始指令是存储指令时,所述复制控制单元生成与所述存储指令对应的加载指令作为所述复制指令并且将所述复制指令的执行结果存储在所述原始寄存器堆中的所述第n索引的寄存器中。
11.一种检测软错误的方法,包括:
通过指令流水线执行原始指令;
将所述原始指令的执行结果存储在原始寄存器堆的第n索引的寄存器中;
复制所述原始指令作为复制指令;
在所述指令流水线内执行所述复制指令;
将所述复制指令的执行结果存储在复制寄存器堆的第n索引的寄存器中;以及
比较所述原始寄存器堆的所述第n索引的寄存器的第一值与所述复制寄存器堆的所述第n索引的寄存器的第二值。
12.根据权利要求11所述的方法,其中,在执行所述原始指令的同时复制所述原始指令。
13.根据权利要求11所述的方法,其中,复制所述原始指令作为所述复制指令包括:从指令存储器提取与原始程序计数器的计数值对应的所述原始指令,并且将所述原始指令存储为所述复制指令。
14.根据权利要求11所述的方法,其中,复制所述原始指令作为所述复制指令包括:
当所述原始指令是存储指令时,生成与所述存储指令对应的加载指令作为所述复制指令;以及
将所述复制指令的执行结果存储在所述原始寄存器堆的所述第n索引的寄存器中,而非所述复制寄存器堆的所述第n索引的寄存器中。
15.根据权利要求11所述的方法,其中:
执行所述原始指令包括:对所述原始指令进行解码以访问所述原始寄存器堆的第m索引的寄存器,并且
执行所述复制指令包括:对所述复制指令进行解码以访问所述复制寄存器堆的第m索引的寄存器。
16.根据权利要求11所述的方法,其中,当所述原始指令是存储指令时,执行所述原始寄存器堆和所述复制寄存器堆的第n索引的寄存器的所述第一值和所述第二值的比较。
17.根据权利要求11所述的方法,还包括:
在执行所述原始指令的同时,改变原始程序计数器的对应于所述原始指令的第一计数值,并且维持复制程序计数器的对应于所述复制指令的第二计数值;以及
在执行所述复制指令的同时,改变所述复制程序计数器的所述第二计数值并且维持所述原始程序计数器的所述第一计数值。
18.根据权利要求11所述的方法,还包括:
复制与所述原始指令对应的原始程序计数器的第一计数值作为复制程序计数器的第二计数值;
在执行所述复制指令的同时,改变所述复制程序计数器的所述第二计数值;以及
比较所述原始程序计数器的第一计数值与所述复制程序计数器的所述第二计数值。
19.根据权利要求18所述的方法,其中,在每个不同的指令循环中执行对所述原始寄存器堆和所述复制寄存器堆的第n索引的寄存器的所述第一值和所述第二值的比较以及对所述原始程序计数器的所述第一计数值与所述复制程序计数器的所述第二计数值的比较。
20.一种包括至少两个核的处理器,其中,所述至少两个核中的每一个包括:
指令流水线,其包括多个级,在所述多个级处,在第x指令循环中处理原始指令并且在第x+1指令循环中处理复制指令;
原始寄存器堆,其包括多个寄存器并且暂时存储所述指令流水线相对于所述原始指令的执行结果;
原始程序计数器,其在第x指令循环改变并且在第x+1指令循环维持;
复制寄存器堆,其包括数量与所述原始寄存器堆相同的寄存器并且暂时存储所述指令流水线相对于所述复制指令的执行结果;
复制程序计数器,其在第x+1指令循环改变并且在第x+2指令循环维持;以及
比较单元,其比较所述原始寄存器堆和所述复制寄存器堆中的相同索引的寄存器的值或者所述原始程序计数器和所述复制程序计数器的值,并且输出错误检测信号。
CN202311186118.3A 2022-09-16 2023-09-14 处理器和从处理器检测软错误的方法 Pending CN117724765A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220117447A KR20240038497A (ko) 2022-09-16 2022-09-16 프로세서 및 프로세서에서의 소프트 에러 검출 방법
KR10-2022-0117447 2022-09-16

Publications (1)

Publication Number Publication Date
CN117724765A true CN117724765A (zh) 2024-03-19

Family

ID=87845774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311186118.3A Pending CN117724765A (zh) 2022-09-16 2023-09-14 处理器和从处理器检测软错误的方法

Country Status (4)

Country Link
US (1) US20240095113A1 (zh)
EP (1) EP4339781A1 (zh)
KR (1) KR20240038497A (zh)
CN (1) CN117724765A (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296312B2 (en) * 2016-05-20 2019-05-21 Arizona Board Of Regents On Behalf Of Arizona State University Methods, apparatuses, and systems for zero silent data corruption (ZDC) compiler technique

Also Published As

Publication number Publication date
KR20240038497A (ko) 2024-03-25
US20240095113A1 (en) 2024-03-21
EP4339781A1 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
CN111164578B (zh) 核内锁步模式的错误恢复
US7409589B2 (en) Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
JP5129450B2 (ja) 情報処理装置
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
US6631463B1 (en) Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US7725685B2 (en) Intelligent SMT thread hang detect taking into account shared resource contention/blocking
US7478276B2 (en) Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
CN100449499C (zh) 在微处理器恢复单元中进行写队列读数据的方法和装置
JPH07160501A (ja) データ処理システム
CN110192186B (zh) 使用矢量处理电路的错误检测
GB2525715A (en) Pipelined ECC-protected memory access
CN115867888A (zh) 用于利用主-影子物理寄存器文件的方法和系统
US6539471B2 (en) Method and apparatus for pre-processing instructions for a processor
US8032794B2 (en) Error processing method and information processing apparatus
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
US7249243B2 (en) Control word prediction and varying recovery upon comparing actual to set of stored words
Pflanz et al. Online check and recovery techniques for dependable embedded processors
CN117724765A (zh) 处理器和从处理器检测软错误的方法
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
CN115080315A (zh) 故障检测及处理方法、装置、处理器及电子设备
TW202418068A (zh) 處理器及自處理器偵測軟錯誤的方法
US8793689B2 (en) Redundant multithreading processor
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
EP1235139A2 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
CN118093253A (zh) 一种多核锁步处理器多级快速错误恢复系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication