CN112131032B - 一种基于混合内存系统的故障快速恢复方法 - Google Patents

一种基于混合内存系统的故障快速恢复方法 Download PDF

Info

Publication number
CN112131032B
CN112131032B CN202010887119.0A CN202010887119A CN112131032B CN 112131032 B CN112131032 B CN 112131032B CN 202010887119 A CN202010887119 A CN 202010887119A CN 112131032 B CN112131032 B CN 112131032B
Authority
CN
China
Prior art keywords
function
nvm
stack space
dram
memory system
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
CN202010887119.0A
Other languages
English (en)
Other versions
CN112131032A (zh
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.)
Peking University
Original Assignee
Peking 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 Peking University filed Critical Peking University
Priority to CN202010887119.0A priority Critical patent/CN112131032B/zh
Publication of CN112131032A publication Critical patent/CN112131032A/zh
Application granted granted Critical
Publication of CN112131032B publication Critical patent/CN112131032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/073Error 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 in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公布了一种基于混合内存系统的故障快速恢复方法,混合内存系统为动态随机存取存储器DRAM和非易失性存储器NVM的混合内存系统;在混合内存系统的DRAM和NVM中各自维护一个进程栈空间;设定新的函数限定符,针对使用该新的函数限定符的应用程序实现基于混合内存系统的故障快速恢复。本发明在DRAM和NVM混合内存系统中使用双栈结构运行进程的方法,减轻现有的日志和检查点技术中存在的由于引入大量额外NVM写入从而降低系统性能和设备寿命的问题,并实现系统故障后的快速恢复。

Description

一种基于混合内存系统的故障快速恢复方法
技术领域
本发明属于高性能计算系统故障处理技术领域,涉及混合内存系统故障恢复的方法,具体涉及一种基于双栈运行的混合内存系统故障快速恢复方法,在混合内存系统的DRAM和NVM中各自维护一个进程栈空间加速程序运行,当系统故障发生之后能够快速恢复运行。
背景技术
在高性能计算等其它需要大量节点的运行环境下,某些节点发生系统故障从而导致一些长期运行的计算任务在完成之前就被中断的可能性越来越大,因此需要在故障发生之后快速恢复到故障发生之前的状态以提高更好的可用性。在配备NVM(Non-VolatileMemory,非易失性存储器)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)的混合内存系统中,实现故障恢复通常使用预写日志和周期性的检查点技术。
预写日志需要在更新数据之前先创建日志,并且保证日志的持久化存储必须在数据持久化更新之前完成。预写日志根据内容可分为三类:撤销日志、重做日志、撤销+重做日志。日志项的内容通常包括要更新的数据地址以及数据内容,例如撤销日志的日志项包含(地址,数据旧值),重做日志的日志项包含(地址,数据新值),撤销+重做日志的日志项包含(地址,数据旧值,数据新值)。对于支持事务的系统,日志项的内容还包括事务编号等其它元数据。可以看出,预写日志会增加大量的对NVM额外的写入数据量,因为NVM比DRAM具有更高的写入延迟和有限的写入寿命,所以会降低系统性能以及设备使用时间。
检查点需要周期性地存储应用程序状态的快照,通常分为系统级的检查点和应用级的检查点。系统级的检查点需要存储整个系统内存的快照,需要写入NVM的数据量十分巨大,如果检查点的周期比较短则对NVM十分不友好。应用级的检查点需要程序员决定什么时候建立检查点并且检查点应该存储哪些关键数据,并且写出针对特定应用的复杂的恢复代码,这种方法不但增加了程序员的负担,而且十分容易出错。
因此,现有的日志和检查点技术中存在由于引入大量额外NVM写入从而降低系统性能和设备寿命的问题,同时也导致软件设计复杂化。
发明内容
针对目前现有技术存在的问题,本发明提供一种新的基于混合内存系统的故障快速恢复方法,在DRAM和NVM混合内存系统中使用双栈结构运行进程的方法,减轻现有的日志和检查点技术中存在的由于引入大量额外NVM写入从而降低系统性能和设备寿命的问题,并实现系统故障后的快速恢复。
本发明的原理是:进程的地址空间映射到NVM栈空间中,程序一直运行在NVM栈空间中。本发明为函数引入了新的限定符(如vlt,为volatile的缩写,表示易失性),该限定符是为程序员提供的选项,当程序执行到带有该限定符的函数时,程序转到DRAM栈空间中运行,充分利用DRAM的性能和写入寿命优势,由此利用以函数调用为分界极大降低了双栈代价;如果程序员在编写程序时没有给任何函数添加该限定符,程序一直在NVM中运行。对于需要运行很长时间或者需要大量访存的函数,程序员可以在声明函数时加上限定符vlt。当程序执行到带有vlt声明的函数时,程序转到DRAM栈空间中执行,当函数执行完毕,程序再回到NVM栈空间中执行。当发生故障时,由于整个进程空间在NVM空间中,所以可以快速重启到最近一次在DRAM栈空间中运行的vlt函数,无须重复执行该函数之前所有的计算,只需要判断DRAM栈空间中运行的vlt函数是否成功运行完毕,如果该函数成功运行完毕,则在NVM栈空间中继续运行该函数后面的计算,如果该函数未成功运行完毕,则重新在DRAM栈空间中运行该函数。双栈运行的方法在本领域从未采用的原因是无法确定在转入DRAM栈空间中运行时应该拷贝哪些进程上下文,如果全栈拷贝则代价太大,严重影响程序性能,而本方法以函数为粒度,利用函数调用的特征,找到了拷贝数据最少的转换点,使得利用混合内存系统的双栈运行方法快速恢复系统故障得以高效实现。
本发明的技术方案是:
一种基于混合内存系统的故障快速恢复方法,所述混合内存系统为动态随机存取存储器(DRAM)和非易失性存储器(NVM)混合内存系统,在混合内存系统的DRAM和NVM中各自维护一个进程栈空间,设定一个新的函数限定符,针对使用该新的函数限定符的应用程序实现基于混合内存系统的故障快速恢复;包括如下步骤:
1)在应用程序中,根据需要将一个或多个函数声明为带有新的函数限定符的函数;其中,一个或多个函数可以是预计占据整个程序运行时间的很大比例的需要长时间运行或需要大量访存操作的函数;
2)将即将运行的应用程序的进程地址空间映射到NVM栈空间中;应用程序的进程地址空间包括代码段、数据段、运行时堆段和用户栈段;
3)当应用程序正常运行时,执行如下操作:
A1.混合内存系统在程序编译过程中识别应用程序中的每个函数是否带有设定的函数限定符;为带有设定的函数限定符的函数增加一条转移指令;
A2.执行应用程序,应用程序进程在NVM栈空间中启动运行;
A3.当应用程序执行到步骤A1增加的转移指令时,设置CPU标志寄存器中的一个当前空闲的标志位为1,表明接下来的函数在DRAM栈空间中执行,继续执行操作A4;
否则,转到操作A7;
如果程序中任何一个函数均未添加设定的函数限定符,则不会执行到新增的转移指令;
A4.保存进程上下文到该进程在NVM的特定区域;进程上下文包括页表、页表基址寄存器、程序计数器等;
特定区域是一段固定的NVM地址空间,每个进程分配一段空间,进程结束后则该段空间可再次被别的进程利用为特定区域;
A5拷贝相应函数的参数值到DRAM栈空间,进程切换到DRAM栈空间中运行;
在运行过程中,应用程序的进程指令和数据仍然从NVM栈空间中读取;当需要写入数据时,为了减少NVM的写入磨损和提高写入速度,数据先写入DRAM栈空间中,并且记录写入DRAM栈空间数据的地址和本应该写入NVM栈空间中的数据地址的对应关系,方便函数在执行结束后数据从DRAM栈空间中拷贝到NVM栈空间中;
A6.原子性拷贝DRAM栈空间中发生的修改以及DRAM栈空间中的函数返回值到NVM栈空间,将操作A3中置为1的CPU标志寄存器位置为零;完成函数运行;原子性拷可采用写时复制方式或影子页方式;
A7.进程在NVM栈空间中继续运行;
A8.循环执行操作A3~A7,直到程序运行结束。
4)当系统发生故障需要重启恢复运行时,执行如下操作:
B1.读取保存在NVM特定区域的进程上下文,程序恢复到故障之前最近的一次带有设定函数限定符的函数的调用位置;
如果程序中任何一个函数均未添加设定的函数限定符,则程序重新启动;
B2.判断该带有设定函数限定符函数是否成功在DRAM栈空间中运行完毕,如果是,说明发生故障时,DRAM栈空间中没有正在运行的函数,所以故障没有影响DRAM栈空间,执行步骤B5,程序正常运行;否则执行步骤B3;
判断的方法包括:检验该进程对应的NVM特定区域是否为空,非空则表明未成功,反之则成功;或采用检查CPU标志寄存器的相应位,为1则表明未成功,为0则成功;
B3.拷贝该函数的参数值到DRAM栈空间,进程切换到DRAM栈空间中运行;
B4.原子性拷贝DRAM中发生的修改以及函数返回值到NVM栈空间,将CPU标志寄存器的相应位置0;恢复结束;
B5.进程继续在NVM栈空间中正常运行。
通过上述步骤,实现基于混合内存系统的故障快速恢复。
本发明具体实施时,设定新的函数限定符vlt;在应用程序设计中,可根据需要选择将预计长时间运行或需要大访存操作的函数声明为带有该新限定符的函数。程序在编译过程中,如果遇到该限定符修饰的函数,系统会在带有限定符的函数之前插入一条转移指令,CPU读取执行该转移指令后,会将该函数的执行转入到DRAM栈空间中。程序员可以将预计长时间运行或需要大量访存操作的函数,该函数预计会占据整个程序运行时间的很大比例,例如带有多重循环的复杂的迭代计算的函数,或者对一大块数组内容进行排序的函数等,声明为带有新限定符的函数;当该函数运行完毕,程序再回到NVM栈空间中运行。
本发明的有益效果:
本发明提供一种新的基于混合内存系统的故障快速恢复方法,在DRAM和NVM混合内存系统中使用双栈结构运行进程的方法。利用本发明提供的技术方案,可以不需要程序员编写复杂易错的故障恢复代码就能实现系统故障快速恢复,同时减少对NVM的大量的额外写入,减轻现有的日志和检查点技术中存在的由于引入大量额外NVM写入从而降低系统性能和设备寿命的问题,并实现系统故障后的快速恢复,提高了系统性能和寿命。
附图说明
图1为本发明具体实施时程序正常运行的流程框图。
图2为本发明具体实施时系统故障恢复的流程框图。
具体实施方式
下面结合附图,通过实施例,进一步阐述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于混合内存系统的故障快速恢复方法,所述混合内存系统为DRAM和NVM混合内存系统;进程主要在NVM栈空间中运行,因为NVM是断电非易失的,所以断电或者系统崩溃等故障在重启后才能快速恢复到进程运行的最新进度,不需要从头开始重新各种计算。DRAM则作为加速和减少NVM的寿命磨损。
具体实施时,本发明为混合内存系统引入了新的函数限定符;将即将运行的应用程序的进程地址空间,包括代码段、数据段、运行时堆段和用户栈段映射到NVM栈空间中;提供给程序员一个新的函数限定符,程序在编译过程中,如果遇到该限定符修饰的函数,系统会在带有限定符的函数之前插入一条转移指令,CPU读取执行该转移指令后,会将该函数的执行转入到DRAM栈空间中。程序员可以将预计长时间运行或需要大量访存操作的函数,该函数预计会占据整个程序运行时间的很大比例,例如带有多重循环的复杂的迭代计算的函数,或者对一大块数组内容进行排序的函数等,声明为带有新限定符的函数;当该函数运行完毕,程序再回到NVM栈空间中运行
即将运行的应用程序可以是一个图形渲染的程序,其中必然包含大量数据的矩阵乘法运算,程序员可以将完成该矩阵乘法的函数判定为长时间运行和需要大量访存操作的函数,将其声明为带有新限定符的函数;程序在编译过程中,如果遇到该限定符修饰的函数,系统会在带有限定符的函数之前插入一条转移指令,CPU读取执行该转移指令后,会将该函数的执行转入到DRAM栈空间中,当该函数执行完毕,程序再回到NVM栈空间中运行。
本发明具体实施如下:
A.当程序正常运行时,执行如下操作(如图1所示):
A1.系统在编译过程中识别程序中的每个函数是否带有设定的限定符vlt,为带有设定的限定符的函数增加一条转移指令,该转移指令的作用是通知CPU将接下来的函数转到DRAM栈空间中执行,并设置CPU状态寄存器的某一空闲位;
A2.进程在NVM栈空间中启动运行,创建与进程相关的上下文,包括页表、页表基址寄存器、程序计数器等;
A3.当执行到新增的转移指令时,设置CPU标志寄存器中的一个当前空闲的标志位为1,比如PSW(Program Status Word,程序状态字)12~15位中的任意一位,表明接下来的函数在DRAM中执行;如果程序员没有为程序中的任何一个函数添加设定的限定符,则不会执行到新增的转移指令,执行步骤A7;
A4.保存进程上下文到NVM特定区域,特定区域是一段固定的NVM地址空间,每个进程分配一段,进程结束后则该段空间可再次被别的进程利用;
A5.拷贝函数参数值到DRAM栈空间,进程切换到DRAM栈空间中运行,在运行过程中,指令和数据仍然从NVM栈空间中读取;当需要写入数据时,数据先写入DRAM栈空间中,并且记录写入DRAM栈空间中数据的地址和本应写入NVM栈空间中数据地址的对应关系。
A6.采用原子性拷贝的方法拷贝DRAM栈空间中发生的修改以及函数返回值到NVM栈空间,将步骤A3中置1的CPU标志寄存器位置零,原子性拷贝可以保证该函数或者成功执行完毕,或者什么都没执行;实现原子性拷贝可以采用不同方式,比如写时复制、影子页等方式;拷贝的数据源地址和目的地址则通过A4中记录的映射对应关系确定;
A7.完成函数运行,进程在NVM栈空间中继续运行,完成vlt函数运行需要读取A4步骤中保存的上下文,然后清理掉以备下一次vlt函数运行时所需;完成非vlt函数则不需要做任何事情,直接在NVM栈空间中继续运行;
A8.在NVM栈空间中运行如果再次遇到新增的转移指令则跳转至步骤A3,否则运行到进程结束,进程结束后清空保存该进程上下文的NVM特定区域。
B如果系统发生故障需要重启恢复运行时,执行如下操作(如图2所示):
B1.读取保存在NVM特定区域的进程上下文,程序恢复到故障之前最近的一次vlt函数调用处;
B2.判断该函数是否将成功在DRAM栈空间中运行完毕,如果是,则执行步骤B5,否则执行步骤B3;判断的方法可以有多种方式,比如检验该进程对应的NVM特定区域是否为空,非空则表明未成功,反之则成功,还可以通过检测新增指令设置的标志位,,该位为0说明成功,为1说明未成功;
B3.拷贝函数参数值到DRAM栈空间,进程切换到DRAM栈空间中运行,在运行过程中,指令和数据仍然从NVM栈空间中读取;当需要写入数据时,数据先写入DRAM栈空间中,并且记录写入DRAM栈空间中数据的地址和本应写入NVM栈空间中数据地址的对应关系;
B4.采用原子性拷贝方法拷贝DRAM栈空间中发生的修改以及函数返回值到NVM栈空间,将CPU标志寄存器的相应位置0,拷贝的数据源地址和目的地址则通过B3中记录的映射关系确定;
B5.恢复结束,程序继续正常运行。
采用本发明方法,在运行带函数限定符的函数之前才会保存进程上下文,否则没有保存。因此,将一个程序中执行最慢的部分加入到一个带函数限定符的函数中,即可采用本发明提供的双栈运行方法,否则,没有双栈会降低系统性能和加快存储器的磨损。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。包括但不限于:为函数所引入的限定符、原子性拷贝的方式、判断DRAM中函数是否成功运行完毕的方式等。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (5)

1.一种基于混合内存系统的故障快速恢复方法,所述混合内存系统为动态随机存取存储器DRAM和非易失性存储器NVM的混合内存系统;在混合内存系统的DRAM和NVM中各自维护一个进程栈空间;设定新的函数限定符,针对使用该新的函数限定符的应用程序实现基于混合内存系统的故障快速恢复;包括如下步骤:
1)根据需要将应用程序中的一个或多个函数声明为带有新的函数限定符的函数;所述一个或多个函数可包括预计占据整个程序运行时间的很大比例的需要长时间运行或需要大量访存操作的函数;
2)将即将运行的应用程序的进程地址空间映射到NVM栈空间中;应用程序的进程地址空间包括代码段、数据段、运行时堆段和用户栈段;
3)当应用程序正常运行时,执行如下操作:
A1.混合内存系统在程序编译过程中识别应用程序中的每个函数是否带有设定的函数限定符;为带有设定的函数限定符的函数增加一条转移指令;
A2.执行应用程序,应用程序进程在NVM栈空间中启动运行;
A3.当应用程序执行到A1增加的转移指令时,设置CPU标志寄存器中的一个当前空闲的标志位为1,即表明函数将在DRAM栈空间中执行,继续执行操作A4;否则,
转到操作A7;
A4.保存进程上下文到该进程在NVM的特定区域;所述进程上下文包括页表、页表基址寄存器、程序计数器;所述特定区域是为每个进程分配的一段固定的NVM地址空间,进程结束后,该NVM地址空间可再次被别的进程利用为特定区域;
A5拷贝相应函数的参数值到DRAM栈空间,进程切换到DRAM栈空间中运行;
在运行过程中,应用程序的进程指令和数据仍从NVM中读取;当需要写入数据时,数据先写入DRAM栈空间中,并记录写入DRAM栈空间数据的地址和本应该写入NVM栈空间中的数据地址的对应关系;在函数执行结束后根据该对应关系将数据从DRAM栈空间中拷贝到NVM栈空间中;
A6.采用原子性拷贝方式将DRAM栈空间中发生的修改和DRAM栈空间中的函数返回值拷贝到NVM栈空间,将操作A3中置为1的CPU标志寄存器位置为零,完成函数运行;
A7.进程在NVM栈空间中继续运行;
A8.循环执行操作A3~A7,直到程序运行结束;
4)当系统发生故障需要重启恢复运行时,执行如下操作:
B1.读取保存在NVM特定区域的进程上下文,程序恢复到故障之前最近的一次带有设定函数限定符的函数的调用位置;
B2.判断该带有设定函数限定符函数是否成功在DRAM栈空间中运行完毕;如果是,则发生故障时DRAM栈空间中没有正在运行的函数,执行步骤B5,程序正常运行;否则执行步骤B3;
B3.拷贝该函数的参数值到DRAM栈空间,进程切换到DRAM栈空间中运行;
B4.采用原子性拷贝方式将DRAM栈空间中发生的修改及DRAM栈空间中的函数返回值到NVM栈空间,将CPU标志寄存器的相应位置0;故障恢复结束;
B5.进程继续在NVM栈空间中正常运行;
通过上述步骤,实现基于混合内存系统的故障快速恢复。
2.如权利要求1所述基于混合内存系统的故障快速恢复方法,其特征是,原子性拷贝方式包括采用写时复制方式或影子页方式。
3.如权利要求1所述基于混合内存系统的故障快速恢复方法,其特征是,B1中,如果程序中任何一个函数均未添加设定的函数限定符,则程序重新启动。
4.如权利要求1所述基于混合内存系统的故障快速恢复方法,其特征是,B2判断该带有设定函数限定符函数是否成功在DRAM栈空间中运行完毕;判断的方法包括:检验该进程对应的NVM特定区域是否为空,非空则表明未成功,反之则成功;或采用检查CPU标志寄存器的相应位,为1则表明未成功,为0则表明成功。
5.如权利要求1所述基于混合内存系统的故障快速恢复方法,其特征是,设定新的函数限定符为vlt。
CN202010887119.0A 2020-08-28 2020-08-28 一种基于混合内存系统的故障快速恢复方法 Active CN112131032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010887119.0A CN112131032B (zh) 2020-08-28 2020-08-28 一种基于混合内存系统的故障快速恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010887119.0A CN112131032B (zh) 2020-08-28 2020-08-28 一种基于混合内存系统的故障快速恢复方法

Publications (2)

Publication Number Publication Date
CN112131032A CN112131032A (zh) 2020-12-25
CN112131032B true CN112131032B (zh) 2022-02-11

Family

ID=73847214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010887119.0A Active CN112131032B (zh) 2020-08-28 2020-08-28 一种基于混合内存系统的故障快速恢复方法

Country Status (1)

Country Link
CN (1) CN112131032B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377466B (zh) * 2021-06-29 2022-11-25 展讯通信(天津)有限公司 算法执行方法、装置和电子设备
CN115705194A (zh) * 2021-08-13 2023-02-17 华为技术有限公司 一种硬件内存序架构下的代码处理方法及相应装置
CN117931532B (zh) * 2024-03-25 2024-05-31 山东科技大学 一种片上硬件支持的嵌入式系统程序多粒度恢复方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183379A (zh) * 2015-09-01 2015-12-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法
CN111459846A (zh) * 2020-03-12 2020-07-28 华中科技大学 一种基于混合dram-nvm内存的动态哈希表操作方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898410B2 (en) * 2013-09-10 2018-02-20 Intel Corporation Hybrid main memory using a fine-grain level of remapping
US9430319B2 (en) * 2014-08-26 2016-08-30 Oracle International Corporation Traffic capacity based optimization of SOA fault recovery using linear programming model
CN109976947B (zh) * 2019-03-11 2020-11-27 北京大学 一种面向混合内存的掉电恢复的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183379A (zh) * 2015-09-01 2015-12-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法
CN111459846A (zh) * 2020-03-12 2020-07-28 华中科技大学 一种基于混合dram-nvm内存的动态哈希表操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向大数据应用的混合内存架构特征分析;李鑫 等;《大数据》;20180515;第61-80页 *

Also Published As

Publication number Publication date
CN112131032A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN112131032B (zh) 一种基于混合内存系统的故障快速恢复方法
US11379324B2 (en) Persistent memory transactions with undo logging
US8544022B2 (en) Transactional memory preemption mechanism
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
Cohen et al. Fine-grain checkpointing with in-cache-line logging
EP1132814B1 (en) Computer system and interruption mechanism
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
EP3198448B1 (en) Hardware assisted object memory migration
US11960748B2 (en) SSD supporting read-only mode after PLP backup failure
CN113515412B (zh) 非易失性内存检查点生成方法、装置和电子设备
CN1902581A (zh) 使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新
CN111164694B (zh) 存储器设备和用于存储器设备的易失性管理的方法
CN113722052B (zh) 一种基于数据双版本的非易失内存更新方法
JP4155052B2 (ja) エミュレータ、エミュレーション方法およびプログラム
Izraelevitz Concurrency implications of nonvolatile byte-addressable memory
JP2009230479A (ja) マイクロプロセッサ
US20170357558A1 (en) Apparatus and method to enable a corrected program to take over data used before correction thereof
Liu et al. Efficient Checkpoint under Unstable Power Supplies on NVM based Devices
JPH08137748A (ja) コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
Amslinger et al. Multiversioning hardware transactional memory for fail-operational multithreaded applications
Aksenov et al. Execution of nvram programs with persistent stack
Shu et al. Luna-TX: An Optimized Transactional Mechanism for Persistent Memory
Pattabiraman et al. Software Critical Memory-All Memory is Not Create Equal
Haosen et al. Nonblocking Persistent Software Transactional Memory
JPH01258154A (ja) マイクロ命令実行制御方式

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
GR01 Patent grant
GR01 Patent grant