CN105893274B - 一种面向异构内存系统建立检查点的装置 - Google Patents
一种面向异构内存系统建立检查点的装置 Download PDFInfo
- Publication number
- CN105893274B CN105893274B CN201610307028.9A CN201610307028A CN105893274B CN 105893274 B CN105893274 B CN 105893274B CN 201610307028 A CN201610307028 A CN 201610307028A CN 105893274 B CN105893274 B CN 105893274B
- Authority
- CN
- China
- Prior art keywords
- page
- address
- checkpoint
- dram
- physical
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种面向异构内存系统建立检查点的装置,属于计算机系统结构的系统容错技术,解决现有面向异构内存的基于存储的检查点技术开销过大、存在大量无用写的问题。本发明包括异构内存管理模块、地址映射模块、派生页管理模块、检查点调度模块,异构内存管理模块管理异构内存中数据在DRAM和NVM间的移动;地址映射模块提供一种细粒度、低开销的地址映射策略,当写请求试图修改检查点数据时,地址映射模块将写请求映射到其它硬件地址,以保持检查点数据的一致性;派生页管理模块对派生页进行管理;检查点调度模块控制何时触发检查点。本发明对上层应用透明,有效减少了内存占用和冗余写,在维护检查点一致性时减少了无用写,进一步降低了系统运行时间。
Description
技术领域
本发明属于计算机系统结构的系统容错技术,具体涉及一种面向异构内存系统建立检查点的装置。
背景技术
检查点技术是一种常用于系统容错领域的技术,其将系统内存中工作数据和中央处理器(CPU)状态等信息作为检查点保存到非易失存储介质中,当系统遇到故障时,通过检查点中的信息可以将系统恢复到建立检查点时刻的状态。
传统的基于存储器的检查点技术将检查点存储在硬盘或固态硬盘中,受限于硬盘和固态硬盘的读写性能,基于存储器的检查点技术难以高频率进行,这限制了系统的容错能力。内存检查点技术可以解决这种问题,内存检查点技术将检查点存储于内存中的检查点存储区域,利用内存的高访问性能实现了高频进行的检查点。
非易失性存储器(NVM)是一种新型存储介质,其相较于目前常用的静态随机存储器(SRAM)和动态随机存储器(DRAM)具有断电后数据不丢失、大容量的特征;但是,其相较于DRAM、NVM通常有着相近的读延迟,慢一个数量级的写延迟,以及低几个数量级的写入寿命,在性能上有一定的劣势。
由于NVM的这种缺陷,在计算机系统中,其还不能替代DRAM作为内存使用。为了结合DRAM和NVM两者的优势,目前许多研究者提出了使用异构内存系统。异构内存系统指将DRAM和NVM都连接到内存总线上,使用这两者共同构造内存系统。异构内存系统有两种常见结构:DRAM和NVM共享内存地址空间的并列结构,DRAM作为NVM缓存的层次结构。异构内存系统很好地结合了DRAM和NVM两者的优势,具有大容量、高性能、高可靠性的特征,已经成为了未来内存系统的发展趋势。
但是,将传统的内存检查点技术简单迁移到异构内存系统中会遇到如何维护检查点一致性的问题。内存检查点技术将工作数据和检查点都存储于内存中。创建检查点时,将工作数据标记为检查点即可,其并不触发数据的复制。检查点完成后,应用程序恢复运行。如果应用程序此时试图修改工作数据,将破坏上一次得到的检查点。
传统的内存检查点技术常使用日志和写时复制技术来维护检查点的一致性。日志技术要求在写入数据前把数据复制到日志区域,然后再把新数据写入,即写入数据时会触发两倍的写入。写时复制技术受限于地址映射技术,只能在页粒度上执行写时复制。即使页中只有少量数据修改,也需要复制整个页。因此,日志技术和写时复制技术都会触发较大的无用写。异构内存系统中,NVM常常具有较差的写性能。因此日志技术和写时复制技术产生的无用写在异构内存系统中产生了较大性能影响。
目前结合NVM和检查点技术的工作都是基于存储器的检查点技术,将这类技术迁移入异构内存系统中将会导致工作数据和检查点都存放于NVM中。检查点是某一个时刻工作数据的副本,因此工作数据和检查点存在大量的共同数据,所以基于存储器的检查点技术存在大量冗余数据,进一步导致了可用内存减少和冗余写。因此目前还缺乏一种面向异构内存系统的内存检查点技术。
为了便于理解本发明,对有关名词加以说明:
物理页:页表机制负责从虚拟页地址到物理页地址的转换,本文所指物理页和页表机制中的物理页同义,每页物理页包含多个缓存块,每个缓存块包含多个字节。
物理地址:物理页中按字节编址,每个字节具有一个物理地址,如果该物理页缓存在DRAM中,物理地址则指向DRAM中对应缓存页中的字节。当物理页与NVM页建立映射关系后,一个物理地址可能指向物理页所映射到的基础页、派生页中的字节。
缓存块地址、页地址:缓存块地址是缓存块中第一个字节的地址,页地址是页中第一个缓存块中第一个字节的地址。
硬件页:硬件页指DRAM或NVM上的页,相应的硬件地址为硬件页中每个字节的地址,可分为DRAM地址和NVM地址。
基础页和派生页:将NVM存储空间分成基础页存储区和派生页存储区,基础页存储区用于顺序存储基础页,派生页存储区用于顺序存储派生页。
将一页物理页映射到两个NVM硬件页,其中第一个NVM页被称为基础页;第二个NVM页被称为派生页,基础页和派生页分别包含多个缓存块。
各连续页的各物理地址或硬件地址顺序编址。
页内偏移地址:指物理地址或硬件地址减去它们所属页地址以后得到的地址。
本发明为每页物理页建立了物理页脏标记和检查点位置标记两组标记,两组标记各自均包括C位,各位序号与物理页中缓存块序号对应,C为每页物理页中缓存块的个数;
物理页脏标记中,某位为0或1,表示自上一次建立检查点以来物理页相应缓存块未被修改或被修改过;
检查点位置标记中,某位为0或1,表示上一次建立的检查点中,该物理页相应缓存块对应的检查点数据存于基础页或是派生页中。
本发明有关符号说明如下:
对符号内的数值x向下取整。
x mod y:取数值x除以数值y的余数。
发明内容
本发明提供一种面向异构内存系统建立检查点的装置,解决现有面向异构内存的基于存储的检查点技术开销过大、存在大量无用写的问题。
本发明所提供的一种面向异构内存系统建立检查点的装置,包括异构内存管理模块、地址映射模块、派生页管理模块、检查点调度模块,其特征在于:
(1)所述异构内存管理模块接受用户的内存访问请求,判断内存访问请求是否命中DRAM缓存,是则将内存访问请求转发给DRAM,否则进行缓存替换,向地址映射模块发出地址映射请求,根据地址映射模块返回的NVM地址访问NVM,将DRAM中淘汰页写回NVM,要访问的页读入DRAM;
(2)所述地址映射模块接受异构内存管理模块发出的地址映射请求,根据物理页上是否存在物理页脏标记和检查点位置标记,判断相关物理页是否与基础页、派生页建立映射关系,是则将一页物理页地址映射为基础页和派生页两页NVM页地址,限定物理页的第N个缓存块地址只能映射为这两页NVM页的第N个缓存块地址,分别用于存储物理页第N个缓存块的工作数据和最新的检查点;并向异构内存模块返回映射得到的NVM缓存块地址,根据情况更新物理页脏标记;
否则向派生页管理模块发出派生页分配请求,根据派生页管理模块返回的页地址构造一页物理页映射到两页NVM页的映射关系,并为该物理页增加物理页脏标记和检查点位置标记;
(3)所述派生页管理模块接受地址映射模块发出的派生页分配请求,判断派生页存储区中是否存在未被分配的派生页,是则向地址映射模块返回该未被分配的派生页,否则继续判断是否存在可被释放的派生页,是则释放该派生页,并将该页返回给地址映射模块,否则向检查点调度模块发出建立检查点的请求,并不断查询是否已经建立检查点,是则重新寻找可释放的派生页,并将释放的派生页返回给地址映射模块;
(4)检查点调度模块自身定时启动建立检查点或者从派生页管理模块收到建立检查点请求启动建立检查点,建立检查点时,将检查点所包含的数据写入NVM,对相关物理页的检查点位置标记和物理页脏标记进行更新。
所述的面向异构内存系统建立检查点的装置,其特征在于:
所述异构内存管理模块执行下述操作:
(1)等待用户的内存访问请求,收到内存访问请求后进行步骤(2);
(2)检测在DRAM中是否缓存有内存访问请求中的物理地址Ar要访问的页,是则将DRAM中相应页地址赋予DRAM地址Ad,进行步骤(3),否则转步骤(4);
(3)向DRAM转发内存访问请求:将Ad+Ar mod Sp的值赋予Ad,然后,将内存访问请求中的物理地址Ar改为Ad,向DRAM发出该内存访问请求,转步骤(1);
(4)选择淘汰页:搜索DRAM中上一次访问时间距当前时间最久的DRAM页,将其DRAM页地址赋予DRAM地址Ad;
(5)把淘汰页写回NVM:遍历DRAM地址Ad所对应的DRAM页中每个缓存块,判断该缓存块自从该DRAM页缓存到DRAM中以来,到当前时间为止,是否未被修改过,是则继续扫描下一缓存块,直至扫描完毕;进行步骤(6);否则向地址映射模块发送地址映射请求,该地址映射请求为写请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将各DRAM缓存块复制到NVM地址A’所指向的NVM缓存块,继续扫描下一缓存块,直至扫描完毕,进行步骤(6);
(6)把要访问的页读入DRAM:遍历内存访问请求中的物理地址Ar所对应的物理页中的每个缓存块,向地址映射模块发送地址映射请求,该地址映射请求为读请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将A’所指向的各NVM缓存块复制到DRAM页的对应DRAM缓存块中,转步骤(3);所述对应DRAM缓存块指在DRAM页中和NVM缓存块具有相同页内偏移地址的缓存块。
所述的面向异构内存系统建立检查点的装置,其特征在于:
所述地址映射模块执行下述操作:
(1)等待异构内存管理模块发来地址映射请求,收到地址映射请求后进行步骤(2);
(2)根据地址映射请求中的物理地址A,计算其对应的物理页地址Ap:式中,Sp为页大小,单位为字节;
(3)检测Ap所对应的物理页是否存在物理页脏标记和检查点位置标记,是进行步骤(4),否则转步骤(8);
(4)对Ap所对应的物理页的物理页脏标记和检查点位置标记按位进行异或运算,得到异或运算结果P;
(5)计算缓存块在页内的编号N:式中,Sc为缓存块大小,单位为字节;
(6)判断P的第N位是否为0,是则进行步骤(7),否则转步骤(10);
(7)将A的值赋予NVM地址A’,向异构内存管理模块返回A’,转步骤(11);
(8)判断当前地址映射请求是否为写请求,是则转步骤(9),否则进行步骤(7);
(9)向派生页管理模块发出派生页分配请求,等待派生页管理模块返回页地址Al,构造Ap所对应的物理页和两页NVM页间的映射关系:将Ap赋予基础页地址Ab,将Al赋予派生页地址As;然后为Ap所对应的物理页建立物理页脏标记和检查点位置标记两组标记,将两组标记中的各位全部置0,转步骤(4);
(10)返回派生页第N个缓存块的NVM地址A’:A’=As+N×Sc,向异构内存管理模块返回A’,进行步骤(11);
(11)判断当前地址映射请求是否为写请求,是则置物理页脏标记第N位为1,转步骤(1);否则转步骤(1)。
所述的面向异构内存系统建立检查点的装置,其特征在于:
所述派生页管理模块执行下述操作:
(1)在NVM存储空间中建立派生页存储区,将指针L指向派生页存储区的第一页;
(2)等待地址映射模块的派生页分配请求,收到派生页分配请求后进行步骤(3);
(3)判断指针L的指向是否在派生页存储区边界内,是则进行步骤(4),否则转步骤(5);
(4)向地址映射模块返回指针L指向的派生页所对应的页地址,再将指针L后移,指向下一页,转步骤(2);
(5)建立物理页集合S,扫描派生页存储区,判断自建立检查点时间T至当前时间内,各派生页对应的物理页是否未发生过写入,是则将该物理页加入物理页集合S,继续扫描下一派生页,直至扫描完毕,进行步骤(6);否则继续扫描下一派生页,直至扫描完毕,进行步骤(6);
(6)判断物理页集合S是否为空,是则转步骤(13),否则进行步骤(7);
(7)建立DRAM页集合Sd,扫描物理页集合S,判断各物理页是否缓存到DRAM中,是则将该物理页对应的DRAM页加入到Sd中,继续扫描下一物理页,直至扫描完毕,进行步骤(8);否则继续扫描下一物理页,直至扫描完毕,进行步骤(8);
(8)判断DRAM页集合Sd是否为空,是则将物理页集合S中的第一个物理页所对应的派生页地址赋予待释放派生页地址Al,转步骤(10),否则进行步骤(9);
(9)扫描DRAM页集合Sd,判断自建立检查点时间T和该页缓存到DRAM中时间这两者中较晚时间以来,到当前时间为止,是否存在某DRAM页没有发生过写入,是则停止扫描,并将该DRAM页对应物理页所属派生页地址赋予待释放派生页地址Al,转步骤(10),否则转步骤(13);
(10)对Al通过映射关系对应的物理页地址Ap的物理页脏标记和检查点位置标记进行异或运算,得到异或运算结果P;
(11)根据P将待释放派生页中的有效数据写回基础页:顺序遍历P的每一位,判断该位是否为1,是则将派生页中该位序号的缓存块复制到基础页中相应序号的缓存块,进行步骤(12);否则不进行处理,进行步骤(12);
(12)向地址映射模块返回Al,转步骤(2);
(13)向检查点调度模块发出建立检查点请求,进行步骤(14);
(14)向检查点调度模块查询是否已经建立检查点,是则转步骤(5),否则继续步骤(14)。
所述的面向异构内存系统建立检查点的装置,其特征在于:
所述检查点调度模块执行下述操作:
(1)系统启动时,将启动时间赋予建立检查点时间T,并根据用户指令确定建立检查点间隔时间I;
(2)判断是否满足条件(2.1)或者(2.2),是则进行步骤(3),否则继续步骤(2);
(2.1)当前时间-T≥I;
(2.2)收到派生页管理模块的建立检查点请求;
(3)中断系统运行,将当前时间值赋予T,进行步骤(4);
(4)将DRAM所有页写回NVM;将CPU上下文信息、访存队列、元数据均写入NVM,进行步骤(5);
(5)遍历所有具有物理页脏标记和检查点位置标记的物理页,分别对各物理页的物理页脏标记和检查点位置标记按位进行异或运算,将异或运算结果P按位赋予其检查点位置标记,将物理页脏标记各位置0,遍历完毕,进行步骤(6);
(6)标记已经建立检查点,恢复系统运行,转步骤(2)。
本发明借助于DRAM作为NVM缓存的层次型异构内存系统。异构内存管理模块将所有命中DRAM缓存的数据转发到DRAM进行处理,这部分请求没有额外开销,DRAM缺失的数据则执行缓存替换过程,替换过程中执行NVM地址映射,涉及到对NVM进行读写的部分都首先将物理地址发送给地址映射模块,获取NVM地址后再对NVM进行访问。
地址映射模块提供一种用户维护检查点一致性的细粒度、低开销的地址映射策略,其将一页物理页映射到两页NVM硬件页(称为基础页和派生页),限定物理页的第N个缓存块只能映射到这两页NVM硬件页的第N个缓存块中,这两页NVM硬件页的第N个缓存块分别存储物理页第N个缓存块的工作数据和最新的检查点,这种限制使得物理页每个缓存块只需要检查点位置标记的一比特元数据来标记检查点数据存储于基础页还是派生页,因此减少了地址映射模块需要的元数据数量,提高了可行性。
派生页管理模块用于对派生页的管理,向外部暴露派生页申请接口;
检查点调度模块控制何时触发检查点,建立检查点时,将所有具有工作数据角色的缓存块标记为检查点,其它缓存块标记位未使用,这个过程不需要讲工作数据复制为检查点,因此具有很好的性能。
本发明不需要上层应用的改动,因此对上层应用透明;与现有的面向异构内存的基于存储的检查点技术相比较,本发明有效减少了内存占用和冗余写;在维护检查点一致性时减少了无用写,进一步降低了系统运行时间。
附图说明
图1为本发明的模块结构框图;
图2为异构内存管理模块工作流程框图;
图3为地址映射模块工作流程框图;
图4为派生页管理模块工作流程框图;
图5为检查点调用模块工作流程框图。
具体实施方式
以下结合附图及实施例,对本发明进一步详细说明。
如图1所示,本发明包括异构内存管理模块、地址映射模块、派生页管理模块、检查点调度模块。
如图2所示,所述异构内存管理模块执行下述操作:
(1)等待用户的内存访问请求,收到内存访问请求后进行步骤(2);
(2)检测在DRAM中是否缓存有内存访问请求中的物理地址Ar要访问的页,是则将DRAM中相应页地址赋予DRAM地址Ad,进行步骤(3),否则转步骤(4);
(3)向DRAM转发内存访问请求:将Ad+Ar mod Sp的值赋予Ad,然后,将内存访问请求中的物理地址Ar改为Ad,向DRAM发出该内存访问请求,转步骤(1);
(4)选择淘汰页:搜索DRAM中上一次访问时间距当前时间最久的DRAM页,将其DRAM页地址赋予DRAM地址Ad;
(5)把淘汰页写回NVM:遍历DRAM地址Ad所对应的DRAM页中每个缓存块,判断该缓存块自从该DRAM页缓存到DRAM中以来,到当前时间为止,是否未被修改过,是则继续扫描下一缓存块,直至扫描完毕;进行步骤(6);否则向地址映射模块发送地址映射请求,该地址映射请求为写请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将各DRAM缓存块复制到NVM地址A’所指向的NVM缓存块,继续扫描下一缓存块,直至扫描完毕,进行步骤(6);
(6)把要访问的页读入DRAM:遍历内存访问请求中的物理地址Ar所对应的物理页中的每个缓存块,向地址映射模块发送地址映射请求,该地址映射请求为读请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将A’所指向的各NVM缓存块复制到DRAM页的对应DRAM缓存块中,转步骤(3);所述对应DRAM缓存块指在DRAM页中和NVM缓存块具有相同页内偏移地址的缓存块。
如图3所示,所述地址映射模块执行下述操作:
(1)等待异构内存管理模块发来地址映射请求,收到地址映射请求后进行步骤(2);
(2)根据地址映射请求中的物理地址A,计算其对应的物理页地址Ap:式中,Sp为页大小,单位为字节;
(3)检测Ap所对应的物理页是否存在物理页脏标记和检查点位置标记,是进行步骤(4),否则转步骤(8);
(4)对Ap所对应的物理页的物理页脏标记和检查点位置标记按位进行异或运算,得到异或运算结果P;
(5)计算缓存块在页内的编号N:式中,Sc为缓存块大小,单位为字节;
(6)判断P的第N位是否为0,是则进行步骤(7),否则转步骤(10);
(7)将A的值赋予NVM地址A’,向异构内存管理模块返回A’,转步骤(11);
(8)判断当前地址映射请求是否为写请求,是则转步骤(9),否则进行步骤(7);
(9)向派生页管理模块发出派生页分配请求,等待派生页管理模块返回页地址Al,构造Ap所对应的物理页和两页NVM页间的映射关系:将Ap赋予基础页地址Ab,将Al赋予派生页地址As;
然后为Ap所对应的物理页建立物理页脏标记和检查点位置标记两组标记,将两组标记中的各位全部置0,转步骤(4);
(10)返回派生页第N个缓存块的NVM地址A’:A’=As+N×Sc,向异构内存管理模块返回A’,进行步骤(11);
(11)判断当前地址映射请求是否为写请求,是则置物理页脏标记第N位为1,转步骤(1);否则转步骤(1)。
如图4所示,所述派生页管理模块执行下述操作:
(1)在NVM存储空间中建立派生页存储区,将指针L指向派生页存储区的第一页;
(2)等待地址映射模块的派生页分配请求,收到派生页分配请求后进行步骤(3);
(3)判断指针L的指向是否在派生页存储区边界内,是则进行步骤(4),否则转步骤(5);
(4)向地址映射模块返回指针L指向的派生页所对应的页地址,再将指针L后移,指向下一页,转步骤(2);
(5)建立物理页集合S,扫描派生页存储区,判断自建立检查点时间T至当前时间内,各派生页对应的物理页是否未发生过写入,是则将该物理页加入物理页集合S,继续扫描下一派生页,直至扫描完毕,进行步骤(6);否则继续扫描下一派生页,直至扫描完毕,进行步骤(6);
(6)判断物理页集合S是否为空,是则转步骤(13),否则进行步骤(7);
(7)建立DRAM页集合Sd,扫描物理页集合S,判断各物理页是否缓存到DRAM中,是则将该物理页对应的DRAM页加入到Sd中,继续扫描下一物理页,直至扫描完毕,进行步骤(8);否则继续扫描下一物理页,直至扫描完毕,进行步骤(8);
(8)判断DRAM页集合Sd是否为空,是则将物理页集合S中的第一个物理页所对应的派生页地址赋予待释放派生页地址Al,转步骤(10),否则进行步骤(9);
(9)扫描DRAM页集合Sd,判断自建立检查点时间T和该页缓存到DRAM中时间这两者中较晚时间以来,到当前时间为止,是否存在某DRAM页没有发生过写入,是则停止扫描,并将该DRAM页对应物理页所属派生页地址赋予待释放派生页地址Al,转步骤(10),否则转步骤(13);
(10)对Al通过映射关系对应的物理页地址Ap的物理页脏标记和检查点位置标记进行异或运算,得到异或运算结果P;
(11)根据P将待释放派生页中的有效数据写回基础页:顺序遍历P的每一位,判断该位是否为1,是则将派生页中该位序号的缓存块复制到基础页中相应序号的缓存块,进行步骤(12);否则不进行处理,进行步骤(12);
(12)向地址映射模块返回Al,转步骤(2);
(13)向检查点调度模块发出建立检查点请求,进行步骤(14);
(14)向检查点调度模块查询是否已经建立检查点,是则转步骤(5),否则继续步骤(14)。
如图5所示,所述检查点调度模块执行下述操作:
(1)系统启动时,将启动时间赋予建立检查点时间T,并根据用户指令确定建立检查点间隔时间I;
(2)判断是否满足条件(2.1)或者(2.2),是则进行步骤(3),否则继续步骤(2);
(2.1)当前时间-T≥I;
(2.2)收到派生页管理模块的建立检查点请求;
(3)中断系统运行,将当前时间值赋予T,进行步骤(4);
(4)将DRAM所有页写回NVM;将CPU上下文信息、访存队列、元数据均写入NVM,进行步骤(5);
(5)遍历所有具有物理页脏标记和检查点位置标记的物理页,分别对各物理页的物理页脏标记和检查点位置标记按位进行异或运算,将异或运算结果P按位赋予其检查点位置标记,将物理页脏标记各位置0,遍历完毕,进行步骤(6);
(6)标记已经建立检查点,恢复系统运行,转步骤(2)。
Claims (5)
1.一种面向异构内存系统建立检查点的装置,包括异构内存管理模块、地址映射模块、派生页管理模块、检查点调度模块,其特征在于:
(1)所述异构内存管理模块接受用户的内存访问请求,判断内存访问请求是否命中DRAM缓存,是则将内存访问请求转发给DRAM,否则进行缓存替换,向地址映射模块发出地址映射请求,根据地址映射模块返回的NVM地址访问NVM,将DRAM中淘汰页写回NVM,要访问的页读入DRAM淘汰页原来的位置,其中,所述用户的内存访问请求中包括要访问的页的NVM地址;
(2)所述地址映射模块接受异构内存管理模块发出的地址映射请求,根据物理页上是否存在物理页脏标记和检查点位置标记,判断相关物理页是否与基础页、派生页建立映射关系,是则将一页物理页地址映射为基础页和派生页两页NVM页地址,限定物理页的第N个缓存块地址只能映射为这两页NVM页的第N个缓存块地址,分别用于存储物理页第N个缓存块的工作数据和最新的检查点;并向异构内存模块返回映射得到的NVM缓存块地址,根据情况更新物理页脏标记,其中,所述地址映射请求中包括物理页的NVM地址;
否则向派生页管理模块发出派生页分配请求,根据派生页管理模块返回的页地址构造一页物理页映射到两页NVM页的映射关系,并为该物理页增加物理页脏标记和检查点位置标记;
(3)所述派生页管理模块接受地址映射模块发出的派生页分配请求,判断派生页存储区中是否存在未被分配的派生页,是则向地址映射模块返回该未被分配的派生页,否则继续判断是否存在可被释放的派生页,是则释放该派生页,并将该页返回给地址映射模块,否则向检查点调度模块发出建立检查点的请求,并不断查询是否已经建立检查点,是则重新寻找可释放的派生页,并将释放的派生页返回给地址映射模块;
(4)检查点调度模块自身定时启动建立检查点或者从派生页管理模块收到建立检查点请求启动建立检查点,建立检查点时,将检查点所包含的数据写入NVM,对相关物理页的检查点位置标记和物理页脏标记进行更新。
2.如权利要求1所述的面向异构内存系统建立检查点的装置,其特征在于:
所述异构内存管理模块执行下述操作:
(1)等待用户的内存访问请求,收到内存访问请求后进行步骤(2);
(2)检测在DRAM中是否缓存有内存访问请求中的物理地址Ar要访问的页,是则将DRAM中相应页地址赋予DRAM地址Ad,进行步骤(3),否则转步骤(4);
(3)向DRAM转发内存访问请求:将Ad+Ar mod Sp的值赋予Ad,然后,将内存访问请求中的物理地址Ar改为Ad,向DRAM发出该内存访问请求,转步骤(1);
(4)选择淘汰页:搜索DRAM中上一次访问时间距当前时间最久的DRAM页,将其DRAM页地址赋予DRAM地址Ad;
(5)把淘汰页写回NVM:遍历DRAM地址Ad所对应的DRAM页中每个缓存块,判断该缓存块自从该DRAM页缓存到DRAM中以来,到当前时间为止,是否未被修改过,是则继续扫描下一缓存块,直至扫描完毕;进行步骤(6);否则向地址映射模块发送地址映射请求,该地址映射请求为写请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将各DRAM缓存块复制到NVM地址A’所指向的NVM缓存块,继续扫描下一缓存块,直至扫描完毕,进行步骤(6);
(6)把要访问的页读入DRAM:遍历内存访问请求中的物理地址Ar所对应的物理页中的每个缓存块,向地址映射模块发送地址映射请求,该地址映射请求为读请求,包括各缓存块所对应的物理地址A;等待地址映射模块返回NVM地址A’,将A’所指向的各NVM缓存块复制到DRAM页的对应DRAM缓存块中,转步骤(3);所述对应DRAM缓存块指在DRAM页中和NVM缓存块具有相同页内偏移地址的缓存块。
3.如权利要求1所述的面向异构内存系统建立检查点的装置,其特征在于:
所述地址映射模块执行下述操作:
(1)等待异构内存管理模块发来地址映射请求,收到地址映射请求后进行步骤(2);
(2)根据地址映射请求中的物理地址A,计算其对应的物理页地址Ap:式中,Sp为页大小,单位为字节;
(3)检测Ap所对应的物理页是否存在物理页脏标记和检查点位置标记,是进行步骤(4),否则转步骤(8);
(4)对Ap所对应的物理页的物理页脏标记和检查点位置标记按位进行异或运算,得到异或运算结果P;
(5)计算缓存块在页内的编号N:式中,Sc为缓存块大小,单位为字节;
(6)判断P的第N位是否为0,是则进行步骤(7),否则转步骤(10);
(7)将A的值赋予NVM地址A’,向异构内存管理模块返回A’,转步骤(11);
(8)判断当前地址映射请求是否为写请求,是则转步骤(9),否则进行步骤(7);
(9)向派生页管理模块发出派生页分配请求,等待派生页管理模块返回页地址Al,构造Ap所对应的物理页和两页NVM页间的映射关系:将Ap赋予基础页地址Ab,将Al赋予派生页地址As;
然后为Ap所对应的物理页建立物理页脏标记和检查点位置标记两组标记,将两组标记中的各位全部置0,转步骤(4);
(10)返回派生页第N个缓存块的NVM地址A’:A’=As+N×Sc,向异构内存管理模块返回A’,进行步骤(11);
(11)判断当前地址映射请求是否为写请求,是则置物理页脏标记第N位为1,转步骤(1);否则转步骤(1)。
4.如权利要求1所述的面向异构内存系统建立检查点的装置,其特征在于:
所述派生页管理模块执行下述操作:
(1)在NVM存储空间中建立派生页存储区,将指针L指向派生页存储区的第一页;
(2)等待地址映射模块的派生页分配请求,收到派生页分配请求后进行步骤(3);
(3)判断指针L的指向是否在派生页存储区边界内,是则进行步骤(4),否则转步骤(5);
(4)向地址映射模块返回指针L指向的派生页所对应的页地址,再将指针L后移,指向下一页,转步骤(2);
(5)建立物理页集合S,扫描派生页存储区,判断自建立检查点时间T至当前时间内,各派生页对应的物理页是否未发生过写入,是则将该物理页加入物理页集合S,继续扫描下一派生页,直至扫描完毕,进行步骤(6);否则继续扫描下一派生页,直至扫描完毕,进行步骤(6);
(6)判断物理页集合S是否为空,是则转步骤(13),否则进行步骤(7);
(7)建立DRAM页集合Sd,扫描物理页集合S,判断各物理页是否缓存到DRAM中,是则将该物理页对应的DRAM页加入到Sd中,继续扫描下一物理页,直至扫描完毕,进行步骤(8);否则继续扫描下一物理页,直至扫描完毕,进行步骤(8);
(8)判断DRAM页集合Sd是否为空,是则将物理页集合S中的第一个物理页所对应的派生页地址赋予待释放派生页地址Al,转步骤(10),否则进行步骤(9);
(9)扫描DRAM页集合Sd,判断自建立检查点时间T和该页缓存到DRAM中时间这两者中较晚时间以来,到当前时间为止,是否存在某DRAM页没有发生过写入,是则停止扫描,并将该DRAM页对应物理页所属派生页地址赋予待释放派生页地址Al,转步骤(10),否则转步骤(13);
(10)对Al通过映射关系对应的物理页地址Ap的物理页脏标记和检查点位置标记进行异或运算,得到异或运算结果P;
(11)根据P将待释放派生页中的有效数据写回基础页:顺序遍历P的每一位,判断该位是否为1,是则将派生页中该位序号的缓存块复制到基础页中相应序号的缓存块,进行步骤(12);否则不进行处理,进行步骤(12);
(12)向地址映射模块返回Al,转步骤(2);
(13)向检查点调度模块发出建立检查点请求,进行步骤(14);
(14)向检查点调度模块查询是否已经建立检查点,是则转步骤(5),否则继续步骤(14)。
5.如权利要求1所述的面向异构内存系统建立检查点的装置,其特征在于:
所述检查点调度模块执行下述操作:
(1)系统启动时,将启动时间赋予建立检查点时间T,并根据用户指令确定建立检查点间隔时间I;
(2)判断是否满足条件(2.1)或者(2.2),是则进行步骤(3),否则继续步骤(2);
(2.1)当前时间-T≥I;
(2.2)收到派生页管理模块的建立检查点请求;
(3)中断系统运行,将当前时间值赋予T,进行步骤(4);
(4)将DRAM所有页写回NVM;将CPU上下文信息、访存队列、元数据均写入NVM,进行步骤(5);
(5)遍历所有具有物理页脏标记和检查点位置标记的物理页,分别对各物理页的物理页脏标记和检查点位置标记按位进行异或运算,将异或运算结果P按位赋予其检查点位置标记,将物理页脏标记各位置0,遍历完毕,进行步骤(6);
(6)标记已经建立检查点,恢复系统运行,转步骤(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610307028.9A CN105893274B (zh) | 2016-05-11 | 2016-05-11 | 一种面向异构内存系统建立检查点的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610307028.9A CN105893274B (zh) | 2016-05-11 | 2016-05-11 | 一种面向异构内存系统建立检查点的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105893274A CN105893274A (zh) | 2016-08-24 |
CN105893274B true CN105893274B (zh) | 2018-09-21 |
Family
ID=56702556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610307028.9A Active CN105893274B (zh) | 2016-05-11 | 2016-05-11 | 一种面向异构内存系统建立检查点的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893274B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817945B (zh) * | 2016-09-13 | 2021-07-27 | 中国科学院微电子研究所 | 一种混合内存结构的数据读取方法和系统 |
CN108021514B (zh) * | 2016-10-28 | 2020-11-06 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
CN106569960B (zh) * | 2016-11-08 | 2019-05-28 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
CN109508301B (zh) * | 2017-09-14 | 2021-10-29 | 中国移动通信集团重庆有限公司 | 终端、应用数据的处理方法、数据处理设备及存储介质 |
CN109144894B (zh) * | 2018-08-01 | 2023-04-07 | 浙江大学 | 基于数据冗余的内存访问模式保护方法 |
CN111241009B (zh) * | 2019-12-31 | 2023-05-16 | 西安翔腾微电子科技有限公司 | 一种数据反馈方法及装置 |
US11620084B2 (en) * | 2020-12-30 | 2023-04-04 | Samsung Electronics Co., Ltd. | Storage device including memory controller and operating method of memory controller |
CN113434091A (zh) * | 2021-07-07 | 2021-09-24 | 中国人民解放军国防科技大学 | 一种基于混合dram-nvm内存的冷热键值识别方法 |
CN113961150B (zh) * | 2021-10-29 | 2024-04-02 | 苏州浪潮智能科技有限公司 | 一种分布式持久性内存文件系统保持数据一致性的方法 |
CN117435353B (zh) * | 2023-12-20 | 2024-03-29 | 北京遥感设备研究所 | 一种面向高频检查点操作的综合优化方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678863B2 (en) * | 2012-06-12 | 2017-06-13 | Sandisk Technologies, Llc | Hybrid checkpointed memory |
US9898410B2 (en) * | 2013-09-10 | 2018-02-20 | Intel Corporation | Hybrid main memory using a fine-grain level of remapping |
-
2016
- 2016-05-11 CN CN201610307028.9A patent/CN105893274B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
Non-Patent Citations (3)
Title |
---|
A Scalable Double In-memory Checkpoint and Restart Scheme towards Exascale;Gengbin Zheng 等;《2012 IEEE/IFIP 42nd International Conference on Dependable Systems and Networks Workshops》;20120628;第1-6页 * |
Disintegrated Control for Energy-Efficient and Heterogeneous Memory Systems;Tae Jun Ham 等;《2013 IEEE 19th International Symposium on High Performance Computer Architecture》;20130227;第424-435页 * |
Morphable Memory System:A Robust Architecture for Exploiting Multi-Level Phase Change Memories;Moinuddin K.Qureshi 等;《Proceedings of the 37th annual international symposium on Computer architecture》;20100623;第153-162页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105893274A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893274B (zh) | 一种面向异构内存系统建立检查点的装置 | |
TWI709073B (zh) | 分佈式儲存系統、分佈式儲存方法及分佈式設施 | |
US9727452B2 (en) | Distributing metadata across multiple different disruption regions within an asymmetric memory system | |
CN106708423B (zh) | 多模存储管理系统 | |
US8615640B2 (en) | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
US20130042056A1 (en) | Cache Management Including Solid State Device Virtualization | |
US11720487B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN107818052B (zh) | 内存访问方法及装置 | |
US9009396B2 (en) | Physically addressed solid state disk employing magnetic random access memory (MRAM) | |
JP6677740B2 (ja) | ストレージシステム | |
Lee et al. | Eliminating periodic flush overhead of file I/O with non-volatile buffer cache | |
CN103136121A (zh) | 一种固态盘的缓存管理方法 | |
WO2017063495A1 (zh) | 数据迁移方法及装置 | |
CN103530237A (zh) | 一种固态盘阵列的垃圾回收方法 | |
US20190340120A1 (en) | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program | |
KR20090107098A (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN111488125A (zh) | 一种基于Ceph集群的Cache Tier缓存优化方法 | |
Son et al. | Optimizing I/O operations in file systems for fast storage devices | |
US11720288B2 (en) | Memory system with controller to write data to memory based on lifetime information in write command | |
JPH05134812A (ja) | ミラー化された記憶装置の管理方法および装置 | |
Lv et al. | Zonedstore: A concurrent zns-aware cache system for cloud data storage | |
JP2021092915A (ja) | ストレージシステム及びボリューム複製方法 | |
WO2024021487A1 (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
Ni et al. | Leveraging ssd's flexible address mapping to accelerate data copy operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |