CN106775476A - 混合内存系统及其管理方法 - Google Patents

混合内存系统及其管理方法 Download PDF

Info

Publication number
CN106775476A
CN106775476A CN201611176392.2A CN201611176392A CN106775476A CN 106775476 A CN106775476 A CN 106775476A CN 201611176392 A CN201611176392 A CN 201611176392A CN 106775476 A CN106775476 A CN 106775476A
Authority
CN
China
Prior art keywords
data
write
memory
write buffer
read
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
CN201611176392.2A
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.)
PLA University of Science and Technology
Original Assignee
PLA University of Science and Technology
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 PLA University of Science and Technology filed Critical PLA University of Science and Technology
Priority to CN201611176392.2A priority Critical patent/CN106775476A/zh
Publication of CN106775476A publication Critical patent/CN106775476A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种混合内存系统,包括随机存储介质和非易失存储介质,采用统一编码方式进行地址编码;非易失存储介质用于存储原始数据,随机存储介质中包括写缓存单元,用于非易失存储介质的镜像缓存;混合内存系统还包括用于对写缓存单元数据进行索引的数据索引单元、用于将读取或写入的数据与写缓存单元存储的数据进行比对校验的数据校验单元、以及数据迁移单元。并提供了一种与之对应的混合内存系统管理方法。通过该系统及方法,使得随机存储介质和非易失存储介质同时发挥各自的优势,并能实现高效读写策略及数据迁移机制,同时还能保证读写的可靠性。

Description

混合内存系统及其管理方法
技术领域
本发明属于计算机数据存储技术领域,具体涉及一种混合内存系统及其管理方法。
背景技术
根据摩尔定律,计算速度每18个月翻一番,然而内存技术的发展已经遇到瓶颈,造成了巨大的差距。现有的随机存储器(RAM),以动态随机存储器(DRAM)为代表的传统内存技术由于工艺制程的限制,电子的微观特性越来越明显,再加上其本身的物理特性制约。DRAM是易失性存储器,若想保存其中的数据,必须对其进行不断充电,而且使用时需要动态刷新,这导致其面临着时延、功耗、可靠性方面的困境。
近年来,新型非易失性存储器(Non-Volatile Memory,NVM)的兴起与发展为打破传统内存技术的系统性能与能耗瓶颈提供了契机,正推动计算机存储系统结构的变革。相变存储器(Phase Change Memory,PCM)是最具代表性的新型非易失性存储器,具有非易失、低功耗和大容量的优势,其性能虽然远高于非易失的闪存介质,但仍不如DRAM。表1所示的是DRAM与PCM性能对比,从工艺尺寸、能耗、读写性能等方面比较了DRAM与PCM的特性。
表1
部分研究者使用PCM直接内存技术,无论通过MLC与SLC的转换或者重新利用具有bit错误的页面,还是设计计数器加密模式或者研究增量式加密方法,都带来了巨大的能耗,提高了开销。
为构建适应大数据分析的内存系统,研究者们提出了用部分PCM取代DRAM来共同构建混合内存设计方法,两种存储介质相互弥补不足同时能充分发挥各自的优势。2015年山东大学硕士学位论文《基于混合架构的高效页面替换算法的分析》中提出了一种基于混合存储架构的页面替换算法,PCM中的页面采取主动替换的方式将合适的页面替换到DRAM中去,DRAM中的页采取被动的方式调入到PCM中。此系统虽然能够取得较好的效果,但涉及的数据结构过多,产生的能耗比较大,而且无法保证数据的可靠性。2013年《微电子学与计算机》杂志中的《一种混合内存系统访存热点控制方法》中提出一种基于访存热点控制的有效策略,虽然能够增加PCM使用寿命,但读写分布对DRAM区域占用率较高,而且没有考虑到可靠性方面的内容。
根据表1,PCM写能耗太大,需要尽量减少PCM写操作,本文提出一种新的混合内存机制,利用简单的写缓存、日志记录表及纠删码,创造性地将原始数据、校验数据分别放入PCM、DRAM,发挥出DRAM与PCM各自的优势,大大降低存储系统的能耗,减少读写延迟,增强数据的可靠性。
现有的混合内存架构大致分为横向混合内存和纵向混合内存两类。其中,横向混合内存是对DRAM和PCM统一编址,将它们看成一个整体,在此架构中,PCM与DRAM地位平等,由操作系统中的统一页表来进行地址转换,具有很强的扩展性。比如2009年《Proc of the18th International Conference on Parallel Architectures and CompilationTechniques.Raleigh》会议《Exploring phase change memory and 3D die-stacking forpower/thermal friendly,fast and durable memory architectures》文中根据页面修改频繁程度提出一种混合内存系统调度数据的策略。在实现过程中,通过MQ(Multi-Queue)算法把修改频繁的页迁移到DRAM中,算法维持了16个LRU队列,将页挂入队列中并对修改次数计数,当达到阈值之后,便认为是频繁修改的页。该方案发挥PCM和DRAM的优势,但队列开销很大,并且迁移操作影响系统整体性能。2015年山东大学硕士学位论文《基于混合架构的高效页面替换算法的分析》中提出一种基于混合存储架构的页面替换算法中提出的页面替换算法,采取主动替换的方式将PCM合适的页面替换到DRAM中去,当DRAM没有空闲页时调用改进的CLOCK算法将页面调入到PCM中。此系统虽然能取得较好的效果,但涉及的数据结构过多,产生的能耗比较大,而且无法保证数据的可靠性。
发明内容
针对上述技术问题,本发明提出一种混合内存系统及其管理方法,基于横向混合内存架构,在随机存储介质中构建写缓存,将原始数据放入非易失存储介质,校验数据放入随机存储介质中,以此减少非易失存储介质写操作的次数,提高数据读写速度。
本发明技术方案如下:
一种混合内存系统,包括随机存储介质和非易失存储介质,采用统一编码方式进行地址编码;非易失存储介质用于存储原始数据,随机存储介质中包括写缓存单元,用于非易失存储介质的镜像缓存;
当内存系统接收读请求时,首先从写缓存单元查询,若数据存储于写缓存单元中,读取数据,否则,从非易失存储介质中读取相应的数据;
当内存系统接收写请求时,首先从写缓存单元查询,若写缓存单元中已存在,更新即可,否则写入写缓存单元。
进一步的,随机存储介质中还包括数据索引单元,用于对写缓存单元数据的索引。数据索引单元存储多条记录,每一记录至少包含数据所在channel中的rank号,数据所在rank的bank号,所在bank的行号和列号四个字段。
当内存系统接收读请求时,根据请求首先查找数据索引单元,若记录存在,从数据索引单元中读出数据存储地址,再根据数据存储地址从写缓存单元中读取数据;若记录不存在,从非易失存储介质中读取相应数据;
当内存系统接收写请求时,根据请求首先查询数据索引单元,判断写缓存单元中是否存储相应数据,若存有,则根据存储的数据索引单元,取出数据的地址,删除当前数据索引单元的记录,将数据写入取出的地址中,更新记录;若不存有,则在数据索引单元创建一条新的记录,并将数据写入缓存单元。
进一步的,随机存储介质中还包括数据校验单元,用于将读取或写入的数据与写缓存单元存储的数据进行校验。具体可将纠删码引进内存,实现校验功能,生成的冗余数据就是校验数据。
进一步的,数据校验单元包括校验数据存储子单元、校验数据计算子单元和数据比对子单元;
校验数据存储子单元用于存储原始数据对应的校验数据;校验数据计算子单元用于计算读取或写入的数据对应的校验数据;数据比对子单元用于将读取或写入的数据计算得到的校验数据与其在校验数据存储子单元中存储的对应校验数据进行对比校验。
进一步的,数据比对子单元对数据对比校验处理包括:
将读取的数据在校验数据计算子单元中计算得到的校验数据与其在校验数据存储子单元中对应的校验数据的一致性进行对比检验,若一致则返回数据,否则返回error;对更新写入写缓存单元的数据,将其经校验数据计算子单元计算得到对应校验数据后,在校验数据存储子单元更新校验数据;对新写入写缓存单元的数据,将经校验数据计算子单元计算得到的校验数据写入校验数据存储子单元。
进一步的,校验数据计算子单元采用异或操作求得原始数据对应的校验数据,即:
式中,DEC表示校验数据计算子单元求出的校验码,POD表示读取或写入的数据。
进一步的,混合内存系统还包括数据迁移单元,用于系统空闲状态时对非易失存储介质与随机存储介质之间的数据迁移。迁移处理包括以下步骤:
首先在数据索引单元中获取其数据地址,
根据地址从写缓存单元中读取该数据,
再将该数据写入非易失存储介质中,
删除当前数据索引单元中对应的该数据记录,
重复执行上述步骤直到数据索引单元为空为止。
本发明还公开一种混合内存数据管理方法,主要包括以下步骤:
建立混合内存系统,包括采用统一编码方式进行地址编码的随机存储介质和非易失存储介质;非易失存储介质存储单元用于存储原始数据;在随机存储介质中构建用于非易失存储介质的写缓存;
当内存系统接收读请求时,首先从写缓存中查询,若数据存储于写缓存中,读取数据,否则,从非易失存储介质存储单元中读取相应的数据;
当内存系统接收写请求时,首先从写缓存中查询,若写缓存中已存在,更新即可,否则写入写缓存中。进一步的,还包括为随机存储介质中的写缓存构建可存储多条记录的数据索引结构,每一记录至少包含数据所在channel中的rank号,数据所在rank的bank号,所在bank的行号和列号四个字段;
进一步的,为随机存储介质中的写缓存构建可存储多条记录的数据索引结构。
当内存系统接收读请求时,根据请求首先查找数据索引,若记录存在,从记录中读出数据存储地址,再根据数据存储地址从写缓存中读取数据;若记录不存在,查找非易失存储介质中的数据并读取;
当内存系统接收写请求时,根据请求首先查询数据索引,判断写缓存中是否存储相应数据,若存有,则根据存储的数据索引,取出数据的地址,删除当前数据索引记录,并将数据写入取出的地址中,更新记录;若不存有,则在数据索引创建一条新的记录,并将数据写入写缓存。
进一步的,还包括将读取或写入的数据与写缓存单元存储的数据进行对比校验。
对读取的数据计算校验数据,将计算得到的校验数据与其在存储在随机存储介质中的对应的校验数据的一致性进行对比校验,若一致则返回数据,否则返回error;
对更新写入写缓存的数据计算校验数据,将计算后的新的校验数据更新存储在随机存储介质中;对新写入写缓存的数据,将计算得到的校验数据存入随机存储介质中。
进一步的,校验数据计算采用异或操作求得原始数据对应的校验数据,即:
式中,DEC表示校验数据计算子单元求出的校验码,POD表示读取或写入的数据。
进一步的,还包括定期查看系统状态,当系统处于空闲状态时,对非易失存储介质与随机存储介质之间的数据迁移处理;
首先取出一条数据索引记录,
获取该数据的地址,
根据地址从写缓存中读取该数据,
再将该数据写入非易失存储介质中,
删除当前数据索引记录;
重复执行上述步骤,直到数据索引记录为空为止。
本发明所公开的混合内存系统及其管理方法具有如下有益效果:
(1)采用横向混合内存架构,将原始数据放入非易失存储介质,校验数据放入随机存储介质中,并且维持随机存储介质写缓存,此布局机制能够有效减少非易失存储介质写操作的次数。具体如,由于所有的数据都写入DRAM写缓存中,针对总线频繁写请求时,由DRAM执行而非PCM,故能大大减少PCM写操作,明显降低写能耗与写延迟,延长PCM使用寿命。
(2)通过构建数据索引单元,以此降低系统的功耗,减少读写延迟。具体如,使用日志记录表后,读写操作无需直接在存储器中查找数据,而且通过日志记录结合写缓存单元的操作进行,减少了对PCM的写操作,大大降低了功耗。
(3)通过构建数据校验单元以保证数据的可靠性,如,使用纠删码技术。数据校验单元所增加的额外功耗并不大,但比不使用校验的出错概率大大减少,保证了整个系统数据读写过程中的可靠性;并且具有较高的冗余度,节省了内存空间。当读取数据发生错误时,能够利用校验码对数据进行重构。当执行写请求时,对同一条带上的数据进行简单异或操作能够最大限度减少时延与功耗。
(4)可根据需求对随机存储器RAM,如静态随机存储器(SRAM)、动态随机存储器(DRAM)等,和非易失存储器,进行组合设计,特别是新型非易失性存储器(Non-VolatileMemory,NVM),如相变存储器(Phase Change Memory,PCM)等的组合设计,实现多种不同场景的存储应用。
附图说明
图1为混合内存系统框图
图2为混合内存系统的数据检验单元构成框图
图3为基于DRAM与PCM混合内存系统布局示意图
图4为基于混合内存系统的实施例工作流程图
图5为日志记录结构
图6为纠删码布局示意图
图7为DRAMSim2的逻辑结构
图8为内存系统功耗比较
图9为内存系统带宽比较
具体实施方式
结合图1、图2所示,公开一种混合内存系统的实施例,包括随机存储介质和非易失存储介质,采用统一编码方式进行地址编码;非易失存储介质用于存储原始数据的地址,随机存储介质中包括写缓存单元,用于非易失存储介质的镜像缓存。
随机存储介质中还包括数据索引单元,用于对写缓存单元数据的索引。数据索引单元存储多条记录,每一记录至少包含数据所在channel中的rank号,数据所在rank的bank号,所在bank的行号和列号四个字段。随机存储介质中还包括数据校验单元,用于将读取或写入的数据与写缓存单元存储的数据进行校验处理。具体可将纠删码引进内存,实现校验功能,生成的冗余数据就是校验数据。如图2所示,进一步,数据校验单元包括校验数据存储子单元、校验数据计算子单元和数据比对子单元;校验数据存储子单元用于存储原始数据对应的校验数据;校验数据计算子单元用于计算读取或写入的数据对应的校验数据;数据比对子单元用于将读取或写入的数据计算得到的校验数据与其在校验数据存储子单元中存储的对应校验数据进行校验处理。校验数据计算子单元采用异或操作求得原始数据对应的校验数据。
在上述实施例的基础上,本发明还提供另一实施例,随机存储介质中还包括数据迁移单元,用于系统空闲状态时对非易失存储介质与随机存储介质之间的数据迁移处理。
结合图4所示,混合内存数据管理方法,包括以下主要步骤:
第一步:建立混合内存系统,包括采用统一编码方式进行地址编码的随机存储介质和非易失存储介质;非易失存储介质存储单元用于存储原始数据;在随机存储介质中构建用于非易失存储介质的写缓存;
当内存系统接收读请求时,首先从写缓存中查询,若数据存储于写缓存中,读取数据,否则,从非易失存储介质存储单元中读取相应的数据;
当内存系统接收写请求时,首先从写缓存中查询,若写缓存中已存在,更新即可,否则写入写缓存中。
第二步:为随机存储介质中的写缓存构建可存储多条记录的数据索引结构,每一记录至少包含数据所在channel中的rank号,数据所在rank的bank号,所在bank的行号和列号四个字段;
当内存系统接收读请求时,根据请求首先查找数据索引,若记录存在,从记录中读出数据存储地址,再根据数据存储地址从写缓存中读取数据;若记录不存在,查找非易失存储介质中的数据并读取;当内存系统接收写请求时,根据请求首先查询数据索引,判断写缓存中是否存储相应数据,若存有,则根据存储的数据索引,取出数据的地址,删除当前数据索引记录,将数据写入取出的地址中,相当于更新记录;若不存有,则在数据索引创建一条新的记录,并将数据写入写缓存。
第三步:对读取的数据计算校验数据,将计算得到的校验数据与其存储在随机存储介质中的对应的校验数据的一致性进行检验,若一致则返回数据,否则返回error;
对更新写入写缓存的数据计算校验数据,将计算后的新的校验数据更新存储在随机存储介质中;对新写入写缓存的数据,将计算得到的校验数据存入随机存储介质中。
进一步的,还包括定期查看系统状态,当系统处于空闲状态时,对非易失存储介质与随机存储介质之间的数据迁移处理;具体处理如下:
首先取出一条数据索引记录,获取该数据的地址,根据地址从写缓存中读取该数据,再将该数据写入非易失存储介质中,删除当前数据索引记录;重复执行上述步骤,直到数据索引记录为空为止。
在实际应用中,常用的随机存储介质主要是指的随机存储器RAM,如静态随机存储器(SRAM)、动态随机存储器(DRAM)等,非易失存储介质种类较多,如新型非易失性存储器(Non-Volatile Memory,NVM)、只读存储器(ROM)和闪存等,其中,相变存储器(PhaseChange Memory,PCM)是最具代表性的新型非易失性存储器,具有非易失、低功耗和大容量的优势。
结合图3至图6所示,本发明公开另一更为具体的实施例,该实施例基于DRAM和PCM的混合内存,内存系统通过PCM与DRAM的接口与外界进行交互,使得同时发挥DRAM与PCM各自的优势成为可能。
如图3所示,基于DRAM与PCM混合内存系统采用横向混合内存架构。
为了应对PCM的频繁写请求,设计一部分DRAM作为PCM的写缓存buffer,对应的写缓存单元;并且,数据索引单元采取日志记录的方式对写缓存的数据进行索引。一部分DRAM划分存储冗余数据,即校验数据,对应的数据校验单元。由于PCM的写操作寿命有限,需尽量减少对PCM的写操作,同时也为了保持其数据的可靠性,进一步在内存中的校验方式采用了纠删码技术,将数据分为原始数据与校验数据,考虑到校验数据的写操作频率远远高于原始数据的写操作频率,将原始数据存储于PCM,校验数据存储于DRAM。
由于冗余数据、日志记录需频繁修改,故两者与写缓存数据都存储于DRAM,减少PCM的写操作,而PCM作为存储原始数据的地址,与DRAM共同构成整个内存系统,PCM与DRAM在空闲状态进行数据迁移。
如图4所示,为了充分发挥基于DRAM与PCM混合内存系统中DRAM和PCM各自的优势,分别对读请求和写请求的读写策略进行如下设计:
当总线上传来读请求时,内存系统响应读请求,从内存读出数据。
首先,根据请求查找日志记录,若记录存在,说明数据存储于写缓存中,从日志记录中读出数据存储地址,再根据数据存储地址从buffer中读取数据,最后计算数据对应的纠删码,若与DRAM存储的纠删码一致,则返回数据,否则返回error;若记录不存在,查找PCM中的数据,再计算数据对应的纠删码,若与DRAM存储的纠删码一致,则返回数据,否则返回error。
在此过程中,buffer中所有数据均为最近更新所得,首先必须从buffer之中获取,若数据存储于buffer中,检错之后即可返回数据,否则,从PCM中返回相应的数据。这保证所读出的数据均为最新数据,此过程中使用纠删码检错,同时保证数据的可靠性。
当总线上传来写请求时,内存系统响应写请求,将数据写入内存。
首先,查询日志记录,判断buffer中是否存储相应数据,若命中,则根据命中的日志记录,取出数据的地址,删除当前日志记录,更新一条新日志记录,根据地址将数据写入缓存,计算数据相应的纠删码,将纠删码写入DRAM中;若不命中,则创建一条新的记录,将数据写入缓存,再计算数据相应的纠删码,将纠删码写入DRAM中。由于写缓存存储最近更新数据,需要将总线上最新数据写入缓存,分为两种情况,若缓存中已存在,只需更新即可,否则需写入缓存之后,创建新的日志记录。最后,更新其所在条带的纠删码。
在此过程中,由于所有的数据都写入DRAM写缓存中,针对总线频繁写请求时,由DRAM执行而非PCM,故能大大减少PCM写操作,明显降低写能耗与写延迟,延长PCM使用寿命。
上述方法中日志记录的创建、删除与更新是比较重要的一环。简而言之,日志记录实质上是由操作系统所维持的一个为写缓存索引数据的数据结构,其结构如图5所示的日志记录结构:
图5中表明,日志中存储多条记录,每一记录包含四个字段,rank表示数据所在的channel中的rank号,bank表示数据所在rank的bank号,而column、row表示所在bank的行号和列号。
日志记录的创建、删除、修改过程中,虽然造成了一定的额外开销,但是其作用也是非常明显的,即读写请求时明显减少查找数据是否存储于写缓存所带来的功耗与延迟。不仅如此,由于日志记录仅仅存储写缓存的索引,故能降低日志记录的规模,减少读写时对日志记录操作的开销。
该混合内存系统将纠删码应用到存储系统中提高了存储系统的可靠性。基于纠删码的方法与传统的镜像副本技术相比,具有冗余度低、磁盘利用率高等优点。然而,在存储系统中,纠删码通常应用于磁盘阵列,在内存中的应用少之又少。
由于上述混合内存由PCM存储原始数据,为了保持其数据的可靠性,可以考虑使用纠删码技术。将纠删码引进内存,实现校验功能,生成的冗余数据即校验数据。常用的纠删码技术有RS(Reed-Solomon)编码[15]、EVENODD[16]、RDP[17]、X-Code[18]、P-code[19]等。本实施例的混合内存采用类似RAID 4编码,采用最简单的异或操作求出原始数据对应的校验数据,纠删码的数据信息和校验信息布局示意如图6所示:
对同一PCM条带上的数据POD(1),POD(2),POD(3)……POD(n-1),POD(n),求出的校验码为:
在响应读请求的过程中,将读取数据POD所在条带的校验码求出为DEC,与存储的校验码DEC′比较,若DEC=DEC′,则返回正确数据POD;否则返回error。在响应写请求的过程中,每写入一次数据,计算一次写入数据POD所在条带的校验码DEC,将DEC写入DRAM。
内存数据更新频繁,特别是写入数据时所引起的校验码更新额外增加一次对DRAM写操作,所以必须最大限度减少计算校验码所引起的功耗和额外时延,故选取简便易算的纠删码,在保证数据可靠性的同时,避免了过大的开销。
如图4所示,在本实施例中,混合内存系统每一时钟周期查看系统当前状态,当系统空闲时,首先取出一条日志记录,获取其数据地址,根据地址从buffer中读取数据,再将数据写入PCM中,删除当前日志记录,接着重复执行上述回收利用操作直到日志记录为空。
回收利用操作仅于系统空闲状态执行,当执行的过程中系统需要相应读写请求时,立即中断回收利用操作。在执行回收利用操作时,根据日志记录进行写回,而且写回数据之后,必须删除其日志记录,以免后续发生读写错误。由于在相应写请求的过程中,已经对校验码进行更新,故在执行回收利用操作时不需更新校验码。
进一步的,将上述实施例所示的混合内存系统的性能等进行验证。
实验采用linux环境,Ubuntu版本为Ubuntu12.04,虚拟机硬件设置为:内存1GB、硬盘(SCSI)20GB、处理器数量为1。使用DRAMsim2模拟器进行仿真模拟,图7是DRAMsim2的逻辑结构图。
实验的过程中,通过改变system.ini等配置文件中的参数进行模拟,将DRAM存储系统、PCM存储系统、PCM+DRAM混合内存系统进行比较,对照实验。
DRAMSim2可以模拟多channel(通道)的内存,每个channel内都是一个独立的内存系统。本实验所对比的内存系统结构包括以下六种:(1)DRAM-no code,未使用纠删码的DRAM内存系统,(2)PCM-no code,未使用纠删码的PCM内存系统,(3)DRAM+PCM-no code,未使用纠删码的混合内存系统,(4)DRAM-code,使用纠删码的DRAM内存系统,(5)PCM-code,使用纠删码的PCM内存系统,(6)DRAM+PCM-code,使用纠删码的混合内存系统。
在以上六种系统中,分别对六种内存结构进行实验,测试其读写共100次。
实验结构所有的仿真结果如下图8和图9所示。
图8中横轴表示六种不同的系统配置,每种系统配置中,分别是六种系统结构,纵轴表示功耗(单位是瓦特)。图8中纵轴表示带宽(单位是GB/s)。
从图8可以看出,在同一系统配置中,无论是否使用纠删码,DRAM与PCM的混合内存系统功耗比DRAM降低30~40%。这是因为当系统执行读请求时,首先查找日志记录,读出原始数据的地址,然后从存储器中读取数据,相比于直接在存储器中查找数据,大大降低了功耗。当系统执行写请求时,首先写入DRAM缓存,减少了对PCM的写操作,而PCM写操作能耗是DRAM的四倍,故能够最大限度减少写操作的功耗。
在不同的系统配置中,系统功耗各不相同,4号系统功耗相比于另外五种系统最大,这是由于此系统的频率最快,单位时间内执行的总线请求最多,故功耗最大。
本实施例所示的混合内存布局技术与读写策略在功耗上充分体现了其优越性,提高了系统性能。
从图9可以看出,在同一系统配置中,无论是否使用纠删码,DRAM与PCM的混合内存系统带宽比PCM高出约3倍,接近DRAM的带宽,说明混合内存系统在执行读写请求时,DRAM写缓存与日志记录几乎可以隐藏DRAM与PCM延迟的差距。当写请求到来时,先写入DRAM缓存,能够最大限度利用DRAM高带宽的特点。
在不同的系统配置中,系统带宽各不相同,4号系统带宽相比于另外五种系统最大,这是由于此系统的频率最快,总线的频率最快,而且在一定的时间内,执行读写请求数更多,从而交换的数据包数量最多,根据内存的带宽公式所得,4号系统带宽最大。
本实施例所示的混合内存布局技术与读写策略能够最大限度提高系统带宽,达到充分利用资源的目的。
进一步的,通过该实验,对实施例所示的混合内存系统进行以下几个方面分析,
功耗分析:当内存系统加入纠删码之后,带宽相差不大,功耗额外增加如表2所示:
表2
从表2可以看出,加入纠删码之后,功耗增加的额度都在1%~3%之间,虽然造成少量功耗的增加,但是理论和实验已经证实RAID 4纠删码能够减少读写错误,提高系统可靠性[13]。因此,在本文提出的混合内存系统中应用RAID 4纠删码是可行的。
可靠性分析:采用RAID4编码保证数据读写的可靠性。假设每一条带上某一原始数据出错的概率为则出现不能恢复错误的概率是(m为每一条带的原始数据量),比不使用纠删码的出错概率减少保证了整个系统数据读写过程中的可靠性。
空间冗余度分析:所述类似RAID4编码,存储的校验数据量是原始数据量的(n为条带的数量),与镜像副本相比,具有较高的冗余度,节省了内存空间。当读取数据发生错误时,能够利用校验码对数据进行重构。当执行写请求时,对同一条带上的数据进行简单异或操作能够最大限度减少时延与功耗。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种混合内存系统,其特征在于:包括随机存储介质和非易失存储介质,采用统一编码方式进行地址编码,非易失存储介质用于存储原始数据;随机存储介质中包括写缓存单元,用于非易失存储介质的镜像缓存。
2.如权利要求1所述的混合内存系统,其特征在于:随机存储介质中还包括数据索引单元,用于对写缓存单元数据的索引。
3.如权利要求2所述的混合内存系统,其特征在于:数据索引单元存储多条记录,每一记录至少包含数据所在channel中的rank号,数据所在rank的bank号,所在bank的行号和列号四个字段。
4.如权利要求1至3任意一条权利要求所述的混合内存系统,其特征在于:随机存储介质中还包括数据校验单元,用于将读取或写入的数据与写缓存单元存储的数据进行校验。
5.如权利要求4所述的混合内存系统,其特征在于:数据校验单元包括校验数据存储子单元、校验数据计算子单元和数据比对子单元;
校验数据存储子单元用于存储原始数据对应的校验数据;
校验数据计算子单元用于计算读取或写入的数据对应的校验数据;
数据比对子单元用于将读取或写入的数据计算得到的校验数据与其在校验数据存储子单元中存储的对应校验数据进行对比校验。
6.如权利要求1所述的混合内存系统,其特征在于:还包括数据迁移单元,用于系统空闲状态时对非易失存储介质与随机存储介质之间的数据迁移。
7.一种混合内存数据管理方法,其特征在于:
建立混合内存系统,包括采用统一编码方式进行地址编码的随机存储介质和非易失存储介质;非易失存储介质存储单元用于存储原始数据;在随机存储介质中构建用于非易失存储介质的写缓存;
当内存系统接收读请求时,首先从写缓存中查询,若数据存储于写缓存中,读取数据,否则,从非易失存储介质存储单元中读取相应的数据;
当内存系统接收写请求时,首先从写缓存中查询,若写缓存中已存在,更新即可,否则写入写缓存中。
8.如权利要求7所述的混合内存数据管理方法,其特征在于:为随机存储介质中的写缓存构建可存储多条记录的数据索引结构;
当内存系统接收读请求时,根据请求首先查找数据索引,若记录存在,从记录中读出数据存储地址,再根据数据存储地址从写缓存中读取数据;若记录不存在,查找非易失存储介质中的数据并读取;
当内存系统接收写请求时,根据请求首先查询数据索引,判断写缓存中是否存储相应数据,若存有,则根据存储的数据索引,取出数据的地址,删除当前数据索引记录,更新一条索引记录,并将数据写入取出的地址中;若不存有,则在数据索引创建一条新的记录,并将数据写入写缓存。
9.如权利要求7或8所述的混合内存数据管理方法,其特征在于:将读取或写入的数据与写缓存单元存储的数据进行对比校验;
对读取的数据计算校验数据,将计算得到的校验数据与其在存储在随机存储介质中的对应的校验数据的一致性进行对比检验,若一致则返回数据,否则返回error;
对更新写入写缓存的数据计算校验数据,将计算后的新的校验数据更新存储在随机存储介质中;对新写入写缓存的数据,将计算得到的校验数据存入随机存储介质中。
10.如权利要求9所述的混合内存数据管理方法,其特征在于:还包括定期查看系统状态,当系统处于空闲状态时,对非易失存储介质与随机存储介质之间进行数据迁移。
CN201611176392.2A 2016-12-19 2016-12-19 混合内存系统及其管理方法 Pending CN106775476A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611176392.2A CN106775476A (zh) 2016-12-19 2016-12-19 混合内存系统及其管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611176392.2A CN106775476A (zh) 2016-12-19 2016-12-19 混合内存系统及其管理方法

Publications (1)

Publication Number Publication Date
CN106775476A true CN106775476A (zh) 2017-05-31

Family

ID=58890150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611176392.2A Pending CN106775476A (zh) 2016-12-19 2016-12-19 混合内存系统及其管理方法

Country Status (1)

Country Link
CN (1) CN106775476A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479832A (zh) * 2017-08-18 2017-12-15 郑州云海信息技术有限公司 一种基于ca端口的存储离线数据迁移方法
CN107608824A (zh) * 2017-09-01 2018-01-19 中国科学院计算技术研究所 一种非易失性计算装置及其工作方法
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法
CN108268220A (zh) * 2018-02-08 2018-07-10 重庆邮电大学 实时嵌入式系统中基于非易失性混合式内存的软件优化方法
CN108932111A (zh) * 2018-06-15 2018-12-04 深圳市华傲数据技术有限公司 一种数据读写性能的优化方法、介质及设备
CN109213621A (zh) * 2017-07-07 2019-01-15 华为技术有限公司 一种数据处理方法及数据处理设备
CN109521949A (zh) * 2018-08-30 2019-03-26 电子科技大学 一种基于混合便签式存储器的感知写频率数据分配方法
CN109599135A (zh) * 2018-11-14 2019-04-09 西安翔腾微电子科技有限公司 Gpu帧缓冲区的tlm模型、存储方法、存储系统和存储介质
CN109684237A (zh) * 2018-11-20 2019-04-26 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN109960588A (zh) * 2019-03-20 2019-07-02 华中科技大学 一种针对异构内存集群的读请求调度方法及系统
CN110196785A (zh) * 2018-02-27 2019-09-03 浙江宇视科技有限公司 数据备份管理方法、装置及电子设备
CN111273865A (zh) * 2020-01-16 2020-06-12 重庆邮电大学 一种基于可变便笺式存储器的任务分配及调度方法
CN112486777A (zh) * 2020-12-11 2021-03-12 深圳前瞻资讯股份有限公司 一种大数据服务程序日志处理方法及系统
CN114115711A (zh) * 2021-08-24 2022-03-01 上海交通大学 基于非易失内存文件系统的快速缓存系统
CN114281247A (zh) * 2021-11-29 2022-04-05 深圳三地一芯电子有限责任公司 一种基于混合介质的flash带宽分配方法及装置
CN114356647A (zh) * 2022-03-18 2022-04-15 天津德科智控股份有限公司 一种eps系统数据编码及存储方法
CN114527937A (zh) * 2022-01-21 2022-05-24 厦门大学 一种在加密情境下减少非易失性内存写放大方法
WO2022170923A1 (zh) * 2021-02-09 2022-08-18 荣耀终端有限公司 一种数据读写方法和混合型存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
US20100329011A1 (en) * 2009-06-30 2010-12-30 Peter Wung Lee Memory system having nand-based nor and nand flashes and sram integrated in one chip for hybrid data, code and cache storage
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
CN104360825A (zh) * 2014-11-21 2015-02-18 浪潮(北京)电子信息产业有限公司 一种混合内存系统及其管理方法
CN104881371A (zh) * 2015-05-29 2015-09-02 清华大学 持久性内存事务处理缓存管理方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
US20100329011A1 (en) * 2009-06-30 2010-12-30 Peter Wung Lee Memory system having nand-based nor and nand flashes and sram integrated in one chip for hybrid data, code and cache storage
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
CN104360825A (zh) * 2014-11-21 2015-02-18 浪潮(北京)电子信息产业有限公司 一种混合内存系统及其管理方法
CN104881371A (zh) * 2015-05-29 2015-09-02 清华大学 持久性内存事务处理缓存管理方法与装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213621A (zh) * 2017-07-07 2019-01-15 华为技术有限公司 一种数据处理方法及数据处理设备
CN109213621B (zh) * 2017-07-07 2021-08-31 华为技术有限公司 一种数据处理方法及数据处理设备
CN107479832A (zh) * 2017-08-18 2017-12-15 郑州云海信息技术有限公司 一种基于ca端口的存储离线数据迁移方法
CN107608824B (zh) * 2017-09-01 2020-07-31 中国科学院计算技术研究所 一种非易失性计算装置及其工作方法
CN107608824A (zh) * 2017-09-01 2018-01-19 中国科学院计算技术研究所 一种非易失性计算装置及其工作方法
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法
CN108268220A (zh) * 2018-02-08 2018-07-10 重庆邮电大学 实时嵌入式系统中基于非易失性混合式内存的软件优化方法
CN108268220B (zh) * 2018-02-08 2020-12-18 重庆邮电大学 实时嵌入式系统中非易失性混合式内存的软件优化方法
CN110196785B (zh) * 2018-02-27 2022-06-14 浙江宇视科技有限公司 数据备份管理方法、装置及电子设备
CN110196785A (zh) * 2018-02-27 2019-09-03 浙江宇视科技有限公司 数据备份管理方法、装置及电子设备
CN108932111A (zh) * 2018-06-15 2018-12-04 深圳市华傲数据技术有限公司 一种数据读写性能的优化方法、介质及设备
CN109521949A (zh) * 2018-08-30 2019-03-26 电子科技大学 一种基于混合便签式存储器的感知写频率数据分配方法
CN109599135A (zh) * 2018-11-14 2019-04-09 西安翔腾微电子科技有限公司 Gpu帧缓冲区的tlm模型、存储方法、存储系统和存储介质
CN109684237B (zh) * 2018-11-20 2021-06-01 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN109684237A (zh) * 2018-11-20 2019-04-26 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN109960588A (zh) * 2019-03-20 2019-07-02 华中科技大学 一种针对异构内存集群的读请求调度方法及系统
CN111273865A (zh) * 2020-01-16 2020-06-12 重庆邮电大学 一种基于可变便笺式存储器的任务分配及调度方法
CN112486777A (zh) * 2020-12-11 2021-03-12 深圳前瞻资讯股份有限公司 一种大数据服务程序日志处理方法及系统
WO2022170923A1 (zh) * 2021-02-09 2022-08-18 荣耀终端有限公司 一种数据读写方法和混合型存储器
CN114115711A (zh) * 2021-08-24 2022-03-01 上海交通大学 基于非易失内存文件系统的快速缓存系统
CN114115711B (zh) * 2021-08-24 2023-10-17 上海交通大学 基于非易失内存文件系统的快速缓存系统
CN114281247A (zh) * 2021-11-29 2022-04-05 深圳三地一芯电子有限责任公司 一种基于混合介质的flash带宽分配方法及装置
CN114527937A (zh) * 2022-01-21 2022-05-24 厦门大学 一种在加密情境下减少非易失性内存写放大方法
CN114527937B (zh) * 2022-01-21 2023-11-21 厦门大学 一种在加密情境下减少非易失性内存写放大方法
CN114356647A (zh) * 2022-03-18 2022-04-15 天津德科智控股份有限公司 一种eps系统数据编码及存储方法

Similar Documents

Publication Publication Date Title
CN106775476A (zh) 混合内存系统及其管理方法
US10176113B2 (en) Scalable indexing
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN110262922A (zh) 基于副本数据日志的纠删码更新方法及系统
CN109799950A (zh) 中间存储的适应性管理
CN104765574A (zh) 数据云端存储方法
Chang et al. Marching-based wear-leveling for PCM-based storage systems
US11307997B2 (en) Logical to physical data storage mapping
CN112084032B (zh) 一种写优化的持久性内存堆管理方法
Hanyu et al. Design of a one-transistor-cell multiple-valued CAM
CN104778100A (zh) 一种安全备份数据的方法
Xie et al. MICRO: A multilevel caching-based reconstruction optimization for mobile storage systems
Xiang et al. A reliable B-tree implementation over flash memory
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
Catania et al. Design and performance analysis of a disk array system
Liu et al. Efficient wear leveling for PCM/DRAM-based hybrid memory
Niu et al. XPMFS: A new NVM file system for vehicle big data
Weiland et al. Usage scenarios for byte-addressable persistent memory in high-performance and data intensive computing
Choi et al. A hybrid SSD with PRAM and NAND Flash memory
Deng et al. Modeling the aging process of flash storage by leveraging semantic I/O
Gong et al. A write-optimized B-tree layer for NAND flash memory
Chen et al. NVMRA: utilizing NVM to improve the random write operations for NAND‐flash‐based mobile devices
Jin et al. FlashB-tree: a novel B-tree index scheme for solid state drives
CN105260261B (zh) 一种邮件恢复方法
Vetter et al. Blackcomb: Hardware-Software Co-design for Non-Volatile Memory in Exascale Systems

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170531

RJ01 Rejection of invention patent application after publication