CN103226499A - 一种恢复内部存储器中的异常数据的方法及装置 - Google Patents
一种恢复内部存储器中的异常数据的方法及装置 Download PDFInfo
- Publication number
- CN103226499A CN103226499A CN2013101409726A CN201310140972A CN103226499A CN 103226499 A CN103226499 A CN 103226499A CN 2013101409726 A CN2013101409726 A CN 2013101409726A CN 201310140972 A CN201310140972 A CN 201310140972A CN 103226499 A CN103226499 A CN 103226499A
- Authority
- CN
- China
- Prior art keywords
- instruction
- program element
- address
- article
- processor
- 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.)
- Granted
Links
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000002441 reversible effect Effects 0.000 claims abstract description 66
- 230000002427 irreversible effect Effects 0.000 claims description 55
- 239000011159 matrix material Substances 0.000 claims description 30
- 230000001066 destructive effect Effects 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 17
- 230000003139 buffering effect Effects 0.000 claims description 9
- 230000006378 damage Effects 0.000 abstract 1
- 230000008859 change Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 239000011800 void material Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008485 antagonism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005728 strengthening Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2017—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种恢复内部存储器中的异常数据的方法及装置,方法包括处理器接收数据异常中断信号和异常数据所在的异常指令的地址;处理器挂起正在执行的当前指令,并记录计算机指针所指向的地址;处理器根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;处理器在判断到异常指令属于程序单元以及程序单元中第一条指令至当前指令间的指令均为可逆指令时,调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;处理器将计算机指针重新指向程序单元中的第一条指令的地址,重新执行程序单元,以恢复内部存储器中的异常数据。通过上述方式,本发明能够提高恢复内部存储器中的异常数据的速度。
Description
技术领域
本发明涉及数据恢复技术领域,特别是涉及一种恢复内部存储器中的异常数据的方法及装置。
背景技术
RAM(random access memory,随机访问存储器)具有随机存储、访问速度快等优点,因此,RAM常常用作电信设备、IT设备中的内部存储器。根据RAN存储器的特性,RAM存储器具有三大失效模式,分别为:
硬失效:器件内部发生不可恢复性物理失效,必须更换失效的硬件单元才能够消除故障;
伪硬失效:器件内部硬件单元发生逻辑性死锁,必须通过上下电等操作消除故障,恢复正常运行,伪硬失效并非物理性硬件失效,无需更换硬件单元;
软失效:当高能亚原子粒子穿越超大规模电路存储单元中的硅时,会伴随着自由电荷的产生,这些电荷在极短的时间间隔内(约15ps)会聚集在电路节点中,当超过一定程度,存储的数据就会改变,造成***出错,但软失效对电路的损害不是永久性的,可通过向发生失效的区域重写回正确的数据即可恢复。
随着电信设备和IT设备的体积越来越小,集成度越来越高,RAM发生软失效的概率也越来越高。现有技术中,主要通过在读取RAM数据时,会根据校验算法,比如:奇偶校验算法、ECC(Error Correcting Code,错误检查和纠正)纠检算法等,校验读取到的数据是否发生变异,进而校验得到存储该数据的存储空间是否发生软失效,若存储该数据的空间发生软失效,数据发生了异常,CPU执行***复位操作,恢复异常的数 据。
本发明申请人在长期研究中发现:通过***复位方式恢复RAM中因软失效造成的异常数据,相当于,重新启动***,使***回到初始状态,***使用过程中开启的应用软件均关闭,操作影响大,恢复时间长。
发明内容
本发明实施方式主要解决的技术问题是提供一种恢复内部存储器中的异常数据的方法及装置,能够提高恢复内部存储器中的异常数据的速度。
第一方面,提供一种恢复内部存储器异常数据的方法,包括:处理器接收数据异常中断信号和异常数据所在的异常指令的地址,其中,异常数据存储于内部存储器;处理器挂起正在执行的当前指令,并记录计算机指针所指向的地址;处理器根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;处理器根据异常指令的地址判断异常指令是否属于程序单元;若异常指令属于程序单元,则处理器判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令,可逆指令是指指令中不包含破坏性操作;若程序单元中第一条指令至当前指令间的指令均为可逆指令时,则处理器调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;处理器将计算机指针重新指向程序单元中的第一条指令的地址,重新执行程序单元,以恢复内部存储器中的异常数据。
结合第一方面实现方式,在第一方面的第一种可能实现方式中,处理器判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令的步骤包括:处理器判断程序单元是否为可逆,程序单元的可逆是指程序单元中的所有指令均不包含破坏性操作;若程序单元为不可逆,则处理器获取程序单元中的第一条不可逆指令的地址,并判断第一条不可逆指令的地址是否在计算机指针所指向的地址之后;若程序单元中第一条指令至当前指令间的指令均为可逆指令时,则处理器调用程序单元对应的析构程序单元,以释放程序单元已申请的资源的步骤包括:若程序 单元为可逆,或者,第一条不可逆指令的地址在计算机指针所指向的地址之后,则处理器调用程序单元对应的析构程序单元,以释放程序单元已申请的资源。
结合第一方面的第一种实现方式,在第一方面的第二种可能实现方式中,处理器判断程序单元是否为可逆的步骤包括:处理器获取程序单元的可逆矩阵,并在程序单元的可逆矩阵中查询程序单元是否为可逆,其中,可逆矩阵包括程序单元的可逆信息;处理器获取程序单元中的第一条不可逆指令的地址包括:处理器获取程序单元的起始地址以及从可逆矩阵中获取第一条不可逆指令的偏移量;处理器将起始地址与偏移量之和,作为第一条不可逆指令的地址。
结合第一方面实现方式,在第一方面的第三种可能实现方式中,内部存储器包括缓冲存储器和随机访问存储器;在处理器调用程序单元对应的析构程序单元的步骤之后,处理器将计算机指针指向程序单元的第一条指令的地址的步骤之前,还包括:处理器从缓存存储映射表中,获取程序单元的第一条指令至当前指令之间的指令中的数据的缓存地址,并将缓存地址所指向的缓冲存储器中的缓存空间置为无效。
结合第一方面的第三种实现方式,在第一方面的第四种可能实现方式中,缓冲存储器包括一级缓冲存储器和二级缓冲存储器。
结合第一方面实现方式,在第一方面的第五种可能实现方式中,若程序单元中第一条指令至当前正在执行的指令间存在不可逆指令,或者,异常指令不属于程序单元时,处理器执行***复位操作,以恢复内部存储器中的异常数据。
第二方面,提供一种恢复内部存储器异常数据的装置,包括:接收模块,用于接收数据异常中断信号和异常数据所在的异常指令的地址,其中,异常数据存储于内部存储器;挂起记录模块,用于挂起正在执行的当前指令,并记录计算机指针所指向的地址;获取模块,用于根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;第一判断模块,用于根据异常指令的地址判断异常指令是否属于程序单元;第二判断模块,用于在第一判断模块判断得到异常指令属于程序单元时, 判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令,可逆指令是指指令中不包含破坏性操作;释放模块,用于在第二判断模块判断得到程序单元中第一条指令至当前指令间的指令均为可逆指令时,调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;重指向模块,用于将计算机指针重新指向程序单元的第一条指令的地址,以重新执行程序单元,恢复内部存储器中的异常数据。
结合第二方面实现方式,在第二方面的第一种可能实现方式中,第二判断模块包括:第一判断单元,用于判断程序单元是否为可逆,程序单元的可逆是指程序单元中的所有指令均不包含破坏性操作;获取单元,用于在第一判断单元判断得到程序单元为不可逆时,获取程序单元中的第一条不可逆指令的地址;第二判断单元,用于判断第一条不可逆指令的地址是否在计算机指针所指向的地址之后;释放模块具体用于在第二判断单元判断得到第一条不可逆指令的地址在计算机指针所指向的地址之后,或者,第一判断单元判断得到程序单元为可逆时,调用程序单元对应的析构程序单元,以释放程序单元已申请的资源。
结合第二方面的第一种实现方式,在第二方面的第二种可能实现方式中,第一判断单元具体用于获取程序单元的可逆矩阵,并在可逆矩阵中查询程序单元是否为可逆,其中,可逆矩阵包括程序单元的可逆信息;获取单元具体用于获取程序单元的起始地址以及从可逆矩阵中获取第一条不可逆指令的偏移量,并将起始地址与偏移量之和,作为第一条不可逆指令的地址。
结合第二方面实现方式,在第二方面的第三种可能实现方式中,内部存储器包括缓冲存储器和随机访问存储器;装置还包括无效模块,用于获取程序单元的第一条指令至当前正在执行的指令的之间的指令中的数据的存储地址所映射的缓存地址,并将缓存地址所指向的缓冲存储器中的缓存空间置为无效。
结合第二方面的第三种实现方式,在第二方面的第四种可能实现方式中,缓冲存储器包括一级缓冲存储器和二级缓冲存储器。
结合第二方面实现方式,在第二方面的第五种可能实现方式中,装 置还包括:复位模块,用于在第二判断模块判断得到程序单元中第一条指令至当前指令间存在不可逆指令时,或者,第一判断模块判断得到异常指令不属于程序单元时,执行***复位操作,以恢复内部存储器的异常数据。
在本发明实施方式中,处理器接收数据异常中断信号后,获取异常发生点和当前正在执行的指令所在的程序单元,并在判断到程序单元为可逆时,或者程序单元中的第一条不可逆指令在当前指令之后时,处理器将计算机指针重新指向程序单元的第一条指令,重新执行程序单元,从而能够以正确的数据覆盖内部存储器中发生异常的数据,进而恢复内部存储器中的异常数据。由于上述恢复内部存储器中的异常数据,不需要***复位操作,恢复速度快,并且***使过程中开启的应用程序基本不受影响,操作影响小,加强***对抗内部存储器中的数据异常的能力。
附图说明
为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明恢复内部存储器中的异常数据的方法第一实施方式的流程图;
图2是本发明恢复内部存储器中的异常数据的方法第二实施方式的流程图;
图3是本发明恢复内部存储器中的异常数据的装置第一实施方式的结构示意图;
图4是本发明恢复内部存储器中的异常数据的装置第二实施方式的结构示意图。
具体实施方式
请参阅图1,图1是本发明恢复内部存储器中的异常数据的方法第 一实施方式的流程图。如图所示,方法包括:
步骤101:处理器接收数据异常中断信号和异常数据所在的指令的地址,其中,数据存储于内部存储器;
内部存储器用于存储数据,以供处理器调用。在读取内部存储器的数据时,会根据校验算法对内部存储器的数据进行校验,以判断内部存储器中的数据是否发生了异常。在本发明实施方式中,校验算法不作限定,可为奇偶校验算法、错误检查和纠正校验算法等等。当校验得到内部存储器中的数据发生异常后,中断***向处理器发送数据异常中断信号和异常现场信息,异常现场信息包括异常数据所在异常指令的地址。其中,数据异常是指数据发生改变,导致数据不正确,例如:内部存储器中的某块存储空间发生软失效,导致存储空间内的数据发生改变。
进一步的,本发明实施方式中,处理器的异常处理机制为非精确异常处理机制,非精确异常处理机制是指:异常发生点与处理器接收异常信号间存在时间间隔,在时间间隔内,处理器执行其他指令。
步骤102:处理器挂起正在执行的当前指令,并记录计算机指针所指向的地址;
处理器接收到异常中断信号后,挂起正在执行的当前指令,并记录计算机指针所指向的地址后,才转至后续的异常处理机制。其中,处理器挂起正在执行的当前指令方式可为:停止正在执行的当前指令或者暂挺正在执行的当前指令等等。在本发明实施方式中,计算机指针所指向的地址为处理器正在执行的当前指令的地址。
步骤103:处理器根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;
计算机程序包括一个或者多个程序单元,一个程序单元包含一个或者多个指令,其中,程序单元可为计算机函数。计算机程序从外部存储器调入内部存储器后,计算机程序在内部存储器的存储位置相对固定,更具体而言,计算机程序中的每一个程序单元均分配一段内部存储器的存储空间,程序单元中每一个指令均分配一个存储地址。处理器查询计算机指针所指向的地址是属于哪一段存储空间的地址,即可获得当前正 在执行的程序单元的地址段,进而获得程序单元。
值得说明的是:程序单元中的指令具有先后顺序,正常情况下处理器会按先后顺序执行程序单元中的指令。
步骤104:处理器根据异常指令的地址判断异常指令是否属于该程序单元,若异常指令属于该程序单元时,则进入步骤106,否则进入步骤105;
同样的,处理器也可通过查询异常指令的地址是否属于程序单元的存储空间的地址,即可判断异常指令是否属于该程序单元。
步骤105:处理器执行***复位操作,以恢复内部存储器中的异常数据;
若异常指令不属于该程序单元,则说明异常指令与处理器当前正在执行的指令不属于同一个程序单元,可能处理器在异常发生点与处理器接收异常信号间的时间间隔内,执行其他程序单元的指令,因此,处理器直接通过执行***复位操作,恢复内部存储器中的异常数据。
步骤106:处理器判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令,可逆指令是指指令中不包含破坏性操作,若第一条指令至当前指令间的指令均为可逆指令,则进入步骤107,否则进入步骤105;
指令的执行通常分为三个阶段,分别为:从内部存储器读指令需要使用的数据、操作数据、向内部存储器回写数据。
包含破坏性操作的指令是指无法通过指令的重新执行,消除原操作的影响的指令,比如:自更新类指令、IO类操作的指令。就自更新类指令而言,例如:a=a+1,执行过程为:从内部存储器读a的数据,将a的数据加一,将加一后的a的数据回写到内部存储器,假若a的初始值为0,执行一次a=a+1指令后,a的值变成1,第二次再执行a=a+1,则a的值变成2,相当于,执行一次a=a+1指令,内部存储器中的a的数据就会发生一次变化,破坏了a原来的数据。
其中,处理器获取该程序单元后,可按程序单元中指令的先后顺序逐一判断第一条指令到当前指令间的指令是否包含破坏性操作。
步骤107:处理器调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;
析构程序单元与程序单元刚好相反,用于释放程序单元所申请的资源,比如:信号量,输入输出资源等等。其中,这里所说的析构程序单元还包括判断指令,用于判断程序单元需要申请的资源是否已经给程序单元申请了,只有给程序单元申请了的资源,才能允许释放。
步骤108:处理器将计算机指针重新指向程序单元的第一条指令的地址,重新执行程序单元,以恢复内部存储器中的异常数据。
处理器将计算机指针重新指向程序单元的第一条指令的地址时,处理器会按程序单元中的指令的先后顺序,重新一条一条往下执行指令,相当于,重新执行该程序单元,从而能够以正确数据覆盖内部存储器中的异常数据,恢复内部存储器中异常数据。
在本发明实施方式中,处理器接收数据异常中断信号后,获取异常发生点所在的程序单元,并在判断到该程序单元为可逆时,处理器将计算机指针重新指向程序单元的第一条指令,重新执行程序单元,从而以正确的数据覆盖内部存储器中发生异常的数据,恢复内部存储器中的异常数据。由于上述恢复内部存储器中的异常数据,不需要进行***复位操作,恢复速度快,并且使得***使过程中开启的应用程序基本不受影响,操作影响小,加强***对抗内部存储器发生数据异常的能力。
请参阅图2,图2是本发明恢复内部存储器中的异常数据的方法第二实施方式的流程图。如图所示,方法包括:
步骤201:处理器接收数据异常中断信号和异常数据所在的指令的地址,其中,所述异常数据存储于内部存储器;
内部存储器用于存储处理器运行的数据,在本发明实施方式中,内部存储器包括随机存储器和缓冲存储器。在读取内部存储器的数据时,会对读取的内部存储器的数据进行校验,以判断内部存储器中的数据是否发生了异常。此处所指的异常为内部存储器中的部份存储空间发生软失效,遭成所述部份存储空间中的数据发生改变,从而导致数据不正确。内部存储器的软失效对内部存储器的损害不是永久的,只要重新向内部 存储器写入正确的数据,并覆盖变异数据即可。
进一步的,在本发明实施方式中,异常处理机制为非精确异常处理机制,非精确异常处理机制为:异常发生点与处理器接收异常信号间存在时间间隔,在时间间隔内,处理器继续执行其他指令。
步骤202:处理器挂起正在执行的当前指令,并记录计算机指针所指向的地址;
计算机指针用于指示处理器执行指令,并且计算机指针所指向的地址为处理器正在执行的当前指令的地址。当处理器已经完成当前指令的执行时,计算机指针就会指向下一条指令的地址,处理器转入执行下一条指令。
其中,处理器接收到异常中断信号后,挂起正在执行的当前指令,并记录计算机指针所指向的地址后,才转入后续的异常处理机制。
步骤203:处理器根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;
计算机程序调入内部存储器后,计算机程序中的每一个程序单元均分配一段内部存储器的存储空间,程序单元中每一个指令均分配一个存储地址。通常情况下,程序单元的存储空间为一段连续的存储存空间。因此,处理器查询计算机指针所指向的地址是属于哪一段存储空间的地址,即可判断当前指令是属于哪个程序单元,进而获得程序单元。
步骤204:处理器根据异常指令的地址判断异常指令是否属于该程序单元,若异常指令属于该程序单元时,进入步骤206,否则进入步骤205;
由于计算机程序调入内部存储器后,分配给计算机程序中的程序单元的存储空间相对固定,处理器查询异常指令的地址是否属于程序单元的存储空间的地址,即可判断异常指令是否属于程序单元。
步骤205:处理器执行***复位操作,以恢复内部存储器中的异常数据;
当异常指令与当前指令不在同一个程序单元时,则有可能处理器在异常点与接收异常信号的间隔时间内执行不同程序单元,甚至多个程序 单元,因此,处理器执行***复位操作,恢复内部存储器中的异常数据。其中,异常点与接收异常信号的间隔时间不宜太长,一般情况下,为5个指令时间,当然也可以为其他数量个指令时间。
步骤206:处理器判断程序单元是否为可逆,程序单元的可逆是指程序单元中的所有指令均不包含破坏性操作,若程序单元为可逆,则进入步骤209,否则进入步骤207;
指令的执行通常分为三个阶段,分别为:从内部存储器读指令需要使用的数据、操作数据、向内部存储器回写数据。
包含破坏性操作的指令是指无法通过指令的重新执行,消除原操作的影响的指令,简而言之,在数据没发生变异常的情况下,同样的指令,重复执行时,输出结果会发生变化,例如:a=a+1,执行过程为:从内部存储器读a的数据,将a的数据加一,将加一后的a的数据回写内部存储器,假若a的初始值为0,执行一次a=a+1指令后,a的值变成1,第二次再执行a=a+1,则a的值变成2,相当于,执行一次a=a+1指令,存储的a的数据就会发生一次变化,破坏了a原来的数据。
程序单元的可逆是指程序单元中所有的指令都不包含破坏性操。例如:程序单元void IdleWaitEvent(void)
其中,程序单元void IdleWaitEvent(void)中的ulBackCount!=g_ulIdleCount指令、g_ulIdleCount=0指令以及g_ulIdleCount=g_bNeedDispatcher+ubyDelay指令均不包含破坏性操作,因此,在数 据不出现异常的情况下,无论重复执行多次,程序单元输出的结果都一样的,程序单元void IdleWaitEvent(void)为可逆的。
又例如程序单元:void bspread(void)
其中,由于Icount为全局变量,并且Icount++指令含破坏性操作,每次执行程序单元:程序单元void bspread(void)的输出结果都不一样,该程序单元void bspread(void)为不可逆的。
步骤207:处理器获取程序单元中的第一条不可逆指令的地址;
由于程序单元中的指令具有先后顺序关系,因此,可按程序单元中指令的先后顺序逐一判断各指令是否含破坏性操作,从而获得程序单元中的第一条不可逆指令的地址。若程序单元内部包含很多分支时,并且公共部份的指令都是可逆,不可逆指令均在分支内部,则上述所说第一条可逆指令为指各分支内部的第一条不可逆指令。
步骤208:处理器判断第一条不可逆指令的地址是否在计算机指针所指向的地址之后,若第一条不可逆指令的地址在计算机指针所指向的地址之后,则进入步骤209,否则进入步骤205;
若第一条不可逆指令的地址在计算机指针所指向的地址之后,则说明程序单元中的被处理器执行了的指令均为可逆指令。
在另一实现中,也可在***开阶段建立各程序单元的可逆矩阵,并将可逆矩阵固化到***中,其中,可逆矩阵包括程序单元的可逆信息,例如:程序单元是否为可逆、若程序单元不可逆时,包含程序单元中的第一条不可逆指令的偏移量等等。
则步骤206又可为:处理器获取程序单元的可逆矩阵,并在程序单元的可逆矩阵中查询程序单元是否为可逆,其中,可逆矩阵包括程序单元的可逆信息;
则步骤207又可为:处理器获取程序单元的起始地址以及从可逆矩 阵中获取第一条不可逆指令的偏移量,并将起始地址与偏移量之和,作为第一条不可逆指令的地址。
步骤209:处理器调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;
析构程序单元用于释放程序单元所申请的资源。这里所说的析构程序单元附带判断指令,用于判断程序单元中需要的资源是否已经给程序单元申请了,只有给程序单元申请了的资源,才能允许释放。
步骤210:处理器获取程序单元的第一条指令至当前正在执行的指令的之间的指令中的数据的缓存地址,并将缓存地址所指向缓冲存储器中的缓存空间置为无效;
内部存储器包括随机存储器和缓冲存储器,缓冲存储器用于缓存数据,以提高处理器读写数据的速度。缓冲存储器与随机存储器之间,会建立映射表,对应缓冲存储器与随机存储器之间的映射关系。获得数据的存储地址后,进而可以通过映射表查询到数据的缓存地址。在本发明实施方式中,缓冲存储器包括一级缓冲存储器和二缓缓冲存储器;将缓存地址所指向缓冲存储器中的缓存空间置为无效是指:将缓存地址所指向缓冲存储器中的缓存空间的置为可用状态。
步骤210:处理器将计算机指针重新指向程序单元的第一条指令的地址,重新执行程序单元,以恢复内部存储器中的异常数据。
计算机指针指向程序单元的第一条指令的地址后,处理器从第一条指令开始,重新执行程序单元,并以正常的数据覆盖内部存储器中发生异常的数据。
在本发明实施方式中,处理器接收数据异常中断信号和异常指令的地址后,获取异常指令和当前正在执行的指令所在的程序单元,并在判断到所述程序单元为可逆时,或者程序单元中的第一条不可逆指令在当前指令之后时,处理器将计算机指针重新指向所述程序单元的第一条指令,重新执行所述程序单元,从而能够以正确的数据覆盖内部存储器中发生异常的数据,进而恢复内部存储器中的异常数据。由于上述恢复内部存储器中的异常数据,不需要***复位操作,恢复速度快,并且*** 使过程中开启的应用程序基本不受响,操作影响小,加强***对抗内部存储器中的数据异常的能力。
请参阅图3,图3是本发明恢复内部存储器中的异常数据的装置的结构示意图。如图所示,所述装置30包括:接收模块301、挂起记录模块302、获取模块303、第一判断模块304、第二判断模块305、释放模块306以及重指向模块308。
接收模块301接收数据异常中断信号和异常数据所在的异常指令的地址,其中,异常数据存储于内部存储器。在读取内部存储器的数据时,均会根据校验算法对数据进行校验,以判断数据是否发生异常。其中,这里所述的数据异常是指内部存储器中的数据发生改变,导致数据不正确,例如:内部存储器发生软失效,导致数据发生了变异,或者,其他原因造成内部存储器的发生变异。
挂起记录模块302挂起正在执行的当前指令,并记录计算机指针所指向的地址。其中,计算机指针所指向的地址也是当前指令的地址。获取模块303根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元。其中,程序单元调入内部存储器时,会使用内部存储器的一段存储空间来存储程序单元。获取模块303判断计算机指针所指向的地址属于哪个存储空间的地址,即可获取程序单元的地址段,进而可以获取程序单元。
第一判断模块304根据异常指令的地址判断异常指令是否属于程序单元。在第一判断模块304判断得到异常指令属于程序单元时,第二判断模块305判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令,可逆指令是指指令中不包含破坏性操作。可逆指令和不可逆指令的相关描述可参阅恢复内部存储器中的异常数据的方法第一实施方式中的描述,此处不再一一赘述。
若第二判断模块305判断得到程序单元中第一条指令至当前指令间的指令均为可逆指令时,释放模块306调用程序单元对应的析构程序单元,以释放程序单元已申请的资源。重指向模块310将计算机指针重新指向程序单元的第一条指令的地址,以重新执行程序单元,恢复内部存 储器中的异常数据。
进一步的,第二判断模块305又可包括第一判断单元3051、获取单元3052和第二判断单元3053。在第一判断模块304判断得到异常指令属于程序单元时,第一判断单元3051判断程序单元是否为可逆,程序单元的可逆是指程序单元中的所有指令均不包含破坏性操作。在第一判断单元3051判断得到程序单元为不可逆时,获取单元3052获取程序单元中第一条不可逆指令的地址。第二判断单元3053判断第一条不可逆指令的地址是否在计算机指针所指向的地址之后。则释放模块306具体在第一判断单元3051判断得到程序单元为可逆,或者,第二判断单元3052判断得到第一条不可逆指令的地址在计算机指针所指向的地址之后时,调用程序单元对应的析构程序单元,以释放程序单元已申请的资源。
在另一实现中,可在***开阶段建立程序单元的可逆矩阵,并将可逆矩阵固化到***中,其中,可逆矩阵包括程序单元的可逆信息,例如:程序单元是否为可逆的、若为不可逆,则第一条不可逆指令的偏移量等等。
则第一判断单元3051又可具体用于获取程序单元的可逆矩阵,并在程序单元的可逆矩阵中查询程序单元是否为可逆,其中,可逆矩阵包括程序单元的可逆信息。
获取单元305又可具体用于获取程序单元的起始地址以及从可逆矩阵中获取第一条不可逆指令的偏移量,并将起始地址与偏移量之和,作为第一条不可逆指令的地址。
进一步的,在本发明实施方中,内部存储器包括缓冲存储器和随机访问存储器,缓冲存储器还包括一级缓冲存储器和二级缓冲存储器。缓冲存储器与随机访问存储器之间存在映射关系。装置30还包括无效模块309和复位模块309。
在释放模块308释放程序单元已申请的资源之后中,重指向模块310将计算机指针重新指向程序单元的第一条指令的地址之前,无效模块309获取程序单元的第一条指令至当前指令的之间的所有指令中的数据 的存储地址所映射的缓存地址,并将缓存地址所指向的缓冲存储器中的缓存空间置为无效。
复位模块309在第一判断模块304判断得到异常指令不属于程序单元,或者,在第二判断模块305判断得到程序单元中第一条指令至当前指令间存在不可逆指令时,执行***复位操作,以恢复内部存储器中的异常数据。
在本发明实施方式中,接收模块301接收数据异常中断信号和异常指令后,获取当前指令和异常指令所在的程序单元,并在判断到该程序单元为可逆时,或者,程序单元中第一条不可逆指令在当前指令之后时,重新执行程序单元,从而能够以正确的数据覆盖内部存储器中发生异常的数据,恢复内部存储器中的异常数据。由于上述恢复内部存储器中的异常数据,不需要***复位操作,恢复速度快,并且***使过程中开启的应用程序基本不受响,操作影响小,加强***对抗内部存储器中的数据异常的能力。
请参阅图4,图4是本发明恢复内部存储器异常数据的装置第二实施方式的结构示意图。如图所示,所述装置40包括处理器401、总线402和内部存储器403。内部存储器403和处理器401均与总线402连接。
处理器401用于接收数据异常中断信号和异常数据所在的异常指令的地址,其中,异常数据存储于内部存储器403;挂起当前正在执行的指令,并记录计算机指针所指向的地址;根据计算机指针所指向的地址,获取处理器当前正在执行的程序单元;根据异常指令的地址判断异常指令是否属于程序单元;若异常指令属于程序单元,则处理器判断程序单元中第一条指令至当前指令间的指令是否均为可逆指令,可逆指令是指指令中不包含破坏性操作;若程序单元中第一条指令至当前指令间的指令均为可逆指令,调用程序单元对应的析构程序单元,以释放程序单元已申请的资源;将计算机指针重新指向程序单元的第一条指令的地址,重新执行程序单元,以恢复内部存储器的异常数据。
进一步的,内部存储器403包括随机访问存储器4031和缓冲存储 器4032。随机访问存储器4031和缓冲存储器4032均与总线402连接。则处理器在调用程序单元对应的析构程序单元的步骤之后,将计算机指针指向程序单元的第一条指令的地址的步骤之前,处理器从缓存存储映射表中,获取程序单元的第一条指令至当前正在执行的指令的之间的所有指令中的数据的缓存地址,并将缓存地址所指向的缓冲存储器中的缓存空间置为无效。
其中,处理器401执行的上述处理过程通常是由一段程序控制完成,程序存放于内部存储器401中,当需要进行上述动作时,将程序调入处理器401,由处理器401控制完成。当然,上述处理过程还可以是由硬件完成。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种恢复内部存储器异常数据的方法,其特征在于,所述方法:
处理器接收数据异常中断信号和异常数据所在的异常指令的地址,其中,所述异常数据存储于内部存储器;
所述处理器挂起正在执行的当前指令,并记录计算机指针所指向的地址;
所述处理器根据所述计算机指针所指向的地址,获取所述处理器当前正在执行的程序单元;
所述处理器根据所述异常指令的地址判断所述异常指令是否属于所述程序单元;
若所述异常指令属于所述程序单元,则所述处理器判断所述程序单元中第一条指令至所述当前指令间的指令是否均为可逆指令,所述可逆指令是指指令中不包含破坏性操作;
若所述程序单元中第一条指令至所述当前指令间的指令均为可逆指令时,则所述处理器调用所述程序单元对应的析构程序单元,以释放所述程序单元已申请的资源;
所述处理器将所述计算机指针重新指向所述程序单元中的第一条指令的地址,重新执行所述程序单元,以恢复所述内部存储器中的异常数据。
2.根据权利要求1所述的方法,其特征在于,
所述处理器判断所述程序单元中第一条指令至所述当前指令间的指令是否均为可逆指令的步骤包括:
所述处理器判断所述程序单元是否为可逆,所述程序单元的可逆是指所述程序单元中的所有指令均不包含破坏性操作;
若所述程序单元为不可逆,则所述处理器获取所述程序单元中的第一条不可逆指令的地址,并判断所述第一条不可逆指令的地址是否在所述计算机指针所指向的地址之后;
所述若所述程序单元中第一条指令至所述当前指令间的指令均为可逆指令时,则所述处理器调用所述程序单元对应的析构程序单元,以释放所述程序单元已申请的资源的步骤包括:
若所述程序单元为可逆,或者,所述第一条不可逆指令的地址在所述计算机指针所指向的地址之后,则所述处理器调用所述程序单元对应的析构程序单元,以释放所述程序单元已申请的资源。
3.根据权利要求2所述的方法,其特征在于,
所述处理器判断所述程序单元是否为可逆的步骤包括:
所述处理器获取所述程序单元的可逆矩阵,并在所述程序单元的可逆矩阵中查询所述程序单元是否为可逆,其中,所述可逆矩阵包括所述程序单元的可逆信息;
所述处理器获取所述程序单元中的第一条不可逆指令的地址包括:
所述处理器获取所述程序单元的起始地址以及从所述可逆矩阵中获取所述第一条不可逆指令的偏移量;
所述处理器将所述起始地址与所述偏移量之和,作为所述第一条不可逆指令的地址。
4.根据权利要求1所述的方法,其特征在于,
所述内部存储器包括缓冲存储器和随机访问存储器;
在所述处理器调用所述程序单元对应的析构程序单元的步骤之后,所述处理器将计算机指针指向所述程序单元的第一条指令的地址的步骤之前,还包括:
所述处理器从缓存存储映射表中,获取所述程序单元的第一条指令至所述当前指令之间的指令中的数据的缓存地址,并将所述缓存地址所指向的缓冲存储器中的缓存空间置为无效。
5.根据权利要求4所述的方法,其特征在于,
所述缓冲存储器包括一级缓冲存储器和二级缓冲存储器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述程序单元中第一条指令至当前正在执行的指令间存在不可逆指令,或者,所述异常指令不属于所述程序单元时,所述处理器执行***复位操作,以恢复所述内部存储器中的异常数据。
7.一种恢复内部存储器异常数据的装置,其特征在于,所述装置包括:
接收模块,用于接收数据异常中断信号和异常数据所在的异常指令的地址,其中,所述异常数据存储于内部存储器;
挂起记录模块,用于挂起正在执行的当前指令,并记录计算机指针所指向的地址;
获取模块,用于根据所述计算机指针所指向的地址,获取所述处理器当前正在执行的程序单元;
第一判断模块,用于根据所述异常指令的地址判断所述异常指令是否属于所述程序单元;
第二判断模块,用于在所述第一判断模块判断得到所述异常指令属于所述程序单元时,判断所述程序单元中第一条指令至所述当前指令间的指令是否均为可逆指令,所述可逆指令是指指令中不包含破坏性操作;
释放模块,用于在所述第二判断模块判断得到所述程序单元中第一条指令至所述当前指令间的指令均为可逆指令时,调用所述程序单元对应的析构程序单元,以释放所述程序单元已申请的资源;
重指向模块,用于将所述计算机指针重新指向所述程序单元的第一条指令的地址,以重新执行所述程序单元,恢复内部存储器中的异常数据。
8.根据权利要求7所述的装置,其特征在于,
所述第二判断模块包括:
第一判断单元,用于判断所述程序单元是否为可逆,所述程序单元的可逆是指所述程序单元中的所有指令均不包含破坏性操作;
获取单元,用于在所述第一判断单元判断得到所述程序单元为不可逆时,获取所述程序单元中的第一条不可逆指令的地址;
第二判断单元,用于判断所述第一条不可逆指令的地址是否在所述计算机指针所指向的地址之后;
所述释放模块具体用于在所述第二判断单元判断得到所述第一条不可逆指令的地址在所述计算机指针所指向的地址之后,或者,所述第一判断单元判断得到所述程序单元为可逆时,调用所述程序单元对应的析构程序单元,以释放所述程序单元已申请的资源。
9.根据权利要求8所述的装置,其特征在于,
所述第一判断单元具体用于获取所述程序单元的可逆矩阵,并在所述可逆矩阵中查询所述程序单元是否为可逆,其中,所述可逆矩阵包括所述程序单元的可逆信息;
所述获取单元具体用于获取所述程序单元的起始地址以及从所述可逆矩阵中获取所述第一条不可逆指令的偏移量,并将所述起始地址与所述偏移量之和,作为所述第一条不可逆指令的地址。
10.根据权利要求7所述的装置,其特征在于,
所述内部存储器包括缓冲存储器和随机访问存储器;
所述装置还包括无效模块,用于获取所述程序单元的第一条指令至当前正在执行的指令的之间的指令中的数据的存储地址所映射的缓存地址,并将所述缓存地址所指向的缓冲存储器中的缓存空间置为无效。
11.根据权利要求10所述的装置,其特征在于,
所述缓冲存储器包括一级缓冲存储器和二级缓冲存储器。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
复位模块,用于在所述第二判断模块判断得到所述程序单元中第一条指令至所述当前指令间存在不可逆指令时,或者,所述第一判断模块判断得到所述异常指令不属于程序单元时,执行***复位操作,以恢复内部存储器的异常数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140972.6A CN103226499B (zh) | 2013-04-22 | 2013-04-22 | 一种恢复内部存储器中的异常数据的方法及装置 |
PCT/CN2013/085129 WO2014173090A1 (zh) | 2013-04-22 | 2013-10-12 | 一种恢复内部存储器中的异常数据的方法及装置 |
EP13882984.1A EP2854032B1 (en) | 2013-04-22 | 2013-10-12 | Method and apparatus for restoring exception data in internal memory |
US14/579,577 US9921925B2 (en) | 2013-04-22 | 2014-12-22 | Method and apparatus for recovering abnormal data in internal memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140972.6A CN103226499B (zh) | 2013-04-22 | 2013-04-22 | 一种恢复内部存储器中的异常数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103226499A true CN103226499A (zh) | 2013-07-31 |
CN103226499B CN103226499B (zh) | 2016-02-24 |
Family
ID=48836959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310140972.6A Active CN103226499B (zh) | 2013-04-22 | 2013-04-22 | 一种恢复内部存储器中的异常数据的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9921925B2 (zh) |
EP (1) | EP2854032B1 (zh) |
CN (1) | CN103226499B (zh) |
WO (1) | WO2014173090A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173090A1 (zh) * | 2013-04-22 | 2014-10-30 | 华为技术有限公司 | 一种恢复内部存储器中的异常数据的方法及装置 |
WO2016005898A1 (en) * | 2014-07-08 | 2016-01-14 | International Business Machines Corporation | Method for processing data quality exceptions in data processing system |
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007891B2 (en) * | 2015-09-18 | 2018-06-26 | Sap Se | Re-processing requests in automated warehouses |
CN107608809B (zh) * | 2016-07-11 | 2023-09-29 | 中兴通讯股份有限公司 | 异常处理方法及装置 |
CN111506460B (zh) * | 2020-04-16 | 2023-08-29 | Oppo广东移动通信有限公司 | 内存故障的处理方法、装置、移动终端及存储介质 |
CN117472795A (zh) * | 2020-05-29 | 2024-01-30 | 超聚变数字技术有限公司 | 存储介质管理方法及服务器 |
CN113886213B (zh) * | 2020-06-29 | 2024-06-18 | 腾讯科技(深圳)有限公司 | 程序数据处理方法、装置、计算机可读存储介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101216A1 (en) * | 2004-11-08 | 2006-05-11 | Fujitsu Limited | Disk array apparatus, method of data recovery, and computer product |
CN101046739A (zh) * | 2006-03-31 | 2007-10-03 | 应广科技股份有限公司 | 自我控制的多重微控制***及方法 |
CN101075184A (zh) * | 2006-05-18 | 2007-11-21 | 中国科学院计算技术研究所 | 对预处理微指令发生异常多层嵌套进行处理的设备及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5146569A (en) * | 1986-10-24 | 1992-09-08 | Hitachi, Ltd. | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension |
US5884100A (en) * | 1996-06-06 | 1999-03-16 | Sun Microsystems, Inc. | Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor |
JP3865586B2 (ja) * | 1999-04-30 | 2007-01-10 | 富士通株式会社 | ディスク装置 |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7779238B2 (en) * | 2004-06-30 | 2010-08-17 | Oracle America, Inc. | Method and apparatus for precisely identifying effective addresses associated with hardware events |
US7673190B1 (en) * | 2005-09-14 | 2010-03-02 | Unisys Corporation | System and method for detecting and recovering from errors in an instruction stream of an electronic data processing system |
US9086969B2 (en) * | 2007-12-12 | 2015-07-21 | F5 Networks, Inc. | Establishing a useful debugging state for multithreaded computer program |
JP5385545B2 (ja) * | 2008-04-17 | 2014-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクションの実行を制御する装置及び方法 |
US7975176B2 (en) * | 2008-08-06 | 2011-07-05 | International Business Machines Corporation | Application failure recovery |
US8131976B2 (en) * | 2009-04-13 | 2012-03-06 | International Business Machines Corporation | Tracking effective addresses in an out-of-order processor |
US8522000B2 (en) * | 2009-09-29 | 2013-08-27 | Nvidia Corporation | Trap handler architecture for a parallel processing unit |
US8095824B2 (en) * | 2009-12-15 | 2012-01-10 | Intel Corporation | Performing mode switching in an unbounded transactional memory (UTM) system |
US20140059333A1 (en) * | 2012-02-02 | 2014-02-27 | Martin G. Dixon | Method, apparatus, and system for speculative abort control mechanisms |
US9336046B2 (en) * | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
CN103226499B (zh) * | 2013-04-22 | 2016-02-24 | 华为技术有限公司 | 一种恢复内部存储器中的异常数据的方法及装置 |
-
2013
- 2013-04-22 CN CN201310140972.6A patent/CN103226499B/zh active Active
- 2013-10-12 WO PCT/CN2013/085129 patent/WO2014173090A1/zh active Application Filing
- 2013-10-12 EP EP13882984.1A patent/EP2854032B1/en active Active
-
2014
- 2014-12-22 US US14/579,577 patent/US9921925B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101216A1 (en) * | 2004-11-08 | 2006-05-11 | Fujitsu Limited | Disk array apparatus, method of data recovery, and computer product |
CN101046739A (zh) * | 2006-03-31 | 2007-10-03 | 应广科技股份有限公司 | 自我控制的多重微控制***及方法 |
CN101075184A (zh) * | 2006-05-18 | 2007-11-21 | 中国科学院计算技术研究所 | 对预处理微指令发生异常多层嵌套进行处理的设备及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173090A1 (zh) * | 2013-04-22 | 2014-10-30 | 华为技术有限公司 | 一种恢复内部存储器中的异常数据的方法及装置 |
US9921925B2 (en) | 2013-04-22 | 2018-03-20 | Huawei Technologies Co., Ltd. | Method and apparatus for recovering abnormal data in internal memory |
WO2016005898A1 (en) * | 2014-07-08 | 2016-01-14 | International Business Machines Corporation | Method for processing data quality exceptions in data processing system |
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103226499B (zh) | 2016-02-24 |
US20150113323A1 (en) | 2015-04-23 |
WO2014173090A1 (zh) | 2014-10-30 |
EP2854032B1 (en) | 2016-12-21 |
EP2854032A1 (en) | 2015-04-01 |
US9921925B2 (en) | 2018-03-20 |
EP2854032A4 (en) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103226499A (zh) | 一种恢复内部存储器中的异常数据的方法及装置 | |
CN107357666B (zh) | 一种基于硬件保护的多核并行***处理方法 | |
EP1974272B1 (en) | Method and apparatus for detecting a fault condition and restoration thereafter using user context information | |
Xu et al. | A" flight data recorder" for enabling full-system multiprocessor deterministic replay | |
CN107122289B (zh) | ***回归测试的方法、装置及*** | |
CN104035843B (zh) | 用于提高锁步核可用性的***和方法 | |
CN103116532B (zh) | 从嵌入式软件***中的堆栈损坏故障中恢复 | |
US20100318746A1 (en) | Memory change track logging | |
CN103064784B (zh) | 面向Xen环境的运行时内存泄漏检测方法及其实现*** | |
US10949342B2 (en) | Persistent memory garbage collection | |
EP2842041B1 (en) | Data processing system and method for operating a data processing system | |
Bridges et al. | Cooperative application/OS DRAM fault recovery | |
CN109997118A (zh) | 在永久存储器***中以超高速一致地存储大量数据的方法 | |
TW201915761A (zh) | 在例外遮罩更新指令之後允許未中止的交易處理 | |
CN101901174B (zh) | 基于代码段多副本对比机制提高程序可靠性方法 | |
US9195550B2 (en) | Method for guaranteeing program correctness using fine-grained hardware speculative execution | |
EP2645249A1 (en) | Information processing apparatus, and method of controlling information processing apparatus | |
CN106940681B (zh) | 一种利用跟踪函数和解析工具调试存储软件的方法 | |
CN111061591B (zh) | 基于存储器完整性检查控制器实现数据完整性检查的***和方法 | |
CN104657229A (zh) | 基于高可用性硬件检查点的多核处理器卷回恢复***及其卷回恢复方法 | |
US8165847B2 (en) | Implementing a programmable DMA master with write inconsistency determination | |
US9135110B2 (en) | Method and device for enhancing the reliability of a multiprocessor system by hybrid checkpointing | |
CN103116484B (zh) | 指令处理方法及设备 | |
Smith et al. | Comparison of approaches to use existing architectural features in embedded processors to achieve hardware-assisted test insertion | |
CN115525890A (zh) | 程序的保护方法、检测器、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |