CN104375895B - 用于多种存储器间的数据存储调度方法以及装置 - Google Patents

用于多种存储器间的数据存储调度方法以及装置 Download PDF

Info

Publication number
CN104375895B
CN104375895B CN201310351737.3A CN201310351737A CN104375895B CN 104375895 B CN104375895 B CN 104375895B CN 201310351737 A CN201310351737 A CN 201310351737A CN 104375895 B CN104375895 B CN 104375895B
Authority
CN
China
Prior art keywords
data
memory
data set
write
priority
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
CN201310351737.3A
Other languages
English (en)
Other versions
CN104375895A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310351737.3A priority Critical patent/CN104375895B/zh
Priority to PCT/CN2014/084277 priority patent/WO2015021919A1/zh
Publication of CN104375895A publication Critical patent/CN104375895A/zh
Application granted granted Critical
Publication of CN104375895B publication Critical patent/CN104375895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种用于多种存储器间的数据存储调度方法以及装置,可保证各存储器之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。本发明实施例包括:获取各种类型存储器用于指示数据划分的特性参数,特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数,其中,数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;根据特性参数,对每个存储器中存储的数据集分别进行优先级划分;触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。

Description

用于多种存储器间的数据存储调度方法以及装置
技术领域
本发明涉及通信技术领域,尤其是涉及一种用于多种存储器间的数据存储调度方法以及装置。
背景技术
目前动态随机存取存储器(DRAM,Dynamic Random Access Memory)在20纳米nm工艺后出现微缩化困难,容量无法提升,而且刷新功耗大,浪费严重。新型非易失性存储器(NVM,Non-Volatile Memory),例如相变存储器(PCM,Phase change memory)具有微缩化能力强,容量很大,功耗很低等优点,但NVM读写延迟比DRAM大很多,NVM的擦写次数有限。由此诞生了混合存储的概念。
现有的PCM和DRAM混合存储的方案中,DRAM作为访问PCM的缓冲区,所有读取或写入PCM的数据先经过DRAM进行缓存Buffer。但是,此方案没有对数据进行筛选,中央处理器(CPU,Central Processing Unit)的所有访存请求都是面向DRAM,DRAM的带宽有限造成性能的下降。之后学术界出现了基于频率的混合内存高速缓冲存储器Cache策略,将NVM中引用次数高的数据搬移到DRAM。实时统计片外内存总线的带宽消耗动态调整数据重复使用率的判断门限FreqThresh。
但是,该方案中搬移数据只考虑数据本身在Cache使用率提升,但是由于DRAM和NVM的内存请求负载不平衡,在写入速度、擦写次数、节省内存带宽方面的提升都没有做到最优化。
发明内容
本发明实施例提供了一种用于多种存储器间的数据存储调度方法以及装置,可保证各存储器之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
有鉴于此,本发明第一方面提供一种用于多种存储器间的数据存储调度方法,其中,可包括:
获取各种类型存储器用于指示数据划分的特性参数,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;
根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。
在第一方面的第一种可能的实现方式中,所述访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数基于以下方式获得:
对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数。
在第一方面的第二种可能的实现方式中,所述根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分,包括:
根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
将搬移至数据读写缓冲区的数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述读写延迟特性包括从非易失性存储器NVM读取数据的延迟时间、从动态随机存取存储器DRAM读取数据的延迟时间、往NVM写入数据的延迟时间、往DRAM写入数据的延迟时间和数据搬移的时间大小;
所述根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值包括:
将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;
将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;
将所述数据集大小和所述数据搬移的时间大小的乘积,确定为数据搬移成本;
对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;
将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;
将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中,包括:
触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,在第六种可能的实现方式中,所述各种类型存储器包括:DRAM和NVM,所述NVM包括相变存储器PCM、非易失闪存存储器NOR FLASH、固态硬盘SSD和硬盘驱动器HDD中的一种或多种。
本发明第二方面提供一种用于多种存储器间的数据存储调度装置,其中,可包括:
获取模块,用于获取各种类型存储器用于指示数据划分的特性参数,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;
处理模块,用于根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
存储调度模块,用于触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。
在第二方面的第一种可能的实现方式中,所述获取模块,用于基于以下方式获得访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数:对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数。
在第二方面的第二种可能的实现方式中,所述处理模块包括:
计算单元,用于根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
优先级赋予模块,用于将所述数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述读写延迟特性包括从非易失性存储器NVM读取数据的延迟时间、从动态随机存取存储器DRAM读取数据的延迟时间、往NVM写入数据的延迟时间、往DRAM写入数据的延迟时间和数据搬移的时间大小;
所述计算单元具体用于:将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;将所述数据集大小和所述数据搬移的时间大小的乘积,确定出数据搬移成本;对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
结合第二方面或第一方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述存储调度模块具体用于:触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
从以上技术方案可以看出,本发明实施例提供的用于多种存储器间的数据存储调度方法以及装置具有以下优点:通过引入对各存储器的读写延迟特性、搬移的数据集大小、存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种用于多种存储器间的数据存储调度方法的流程示意图;
图2为本发明实施例提供的用于多种存储器间的数据存储调度方法的另一流程示意图;
图3a为本发明实施例提供的数据存储调度方法的一种数据划分示意简图;
图3b为本发明实施例提供的数据存储调度方法的一种数据搬移存储示意简图;
图4为本发明实施例提供的一种用于多种存储器间的数据存储调度装置的结构示意图;
图5为本发明实施例提供的一种数据存储调度装置总体外围接口结构示意图;
图6为本发明实施例提供的一种数据存储调度装置的硬件实现框图及模块定义及接口结构示意图;
图7为本发明实施例提供的多路地址选通及采集单元的结构示意简图;
图8为本发明实施例提供的用于多种存储器间的数据存储调度装置的另一结构示意图。
具体实施方式
本发明实施例提供了一种用于多种存储器间的数据存储调度方法以及装置,用于各存储器之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
以下分别进行详细说明。
请参考图1,图1为本发明实施例提供的一种用于多种存储器间的数据存储调度方法的流程示意图,其中,所述方法包括:
S101、获取各种类型存储器用于指示数据划分的特性参数;
其中,所述数据存储调度方法可以由一个独立于各存储器的调度装置或调度模块执行,该调度装置通过对外接口获取各存储器的各类信息并调度各存储器执行相应动作等。
可以理解的是,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块。
S102、根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
S103、触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。
可以理解的是,所述存储器可以包括动态随机存取存储器(DRAM,Dynamic RandomAccess Memory)和非易失性存储器(NVM,Non-Volatile Memory);其中,所述NVM包括相变存储器(PCM,Phase change memory)、非易失闪存存储器NOR FLASH、固态硬盘(SSD,SolidState Disk)和硬盘驱动器(HDD,Hard Disk Drive)中的一种或多种,所述HDD也可以称为DISK。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度方法,通过引入对各存储器的读写延迟特性、搬移的数据集大小、存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
请参考图2,图2为本发明实施例提供的用于多种存储器间的数据存储调度方法的另一流程示意图,其中,所述方法包括:
S201、获取各种类型存储器用于指示数据划分的特性参数;
其中,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中数据读写缓冲区的不命中次数;
在本发明实施例中,所述存储器大致可以分为动态随机存取存储器DRAM和非易失性存储器NVM两大类型;其中,所述NVM可以包括相变存储器PCM、非易失闪存存储器NORFLASH、固态硬盘SSD和硬盘驱动器HDD中的一种或多种;各种NVM虽然读写机制不同,但都有相似的数据读写缓冲区(如缓冲器高缓Buffer Cache)存放最近访问数据。例如PCM有类似DRAM的行缓存Row Buffer,NAND FLASH和SSD具有页/块缓存Page/Block Buffer,如果本次写入数据命中hit Buffer Cache则存放最近存取数据,相反不命中Miss则要进入存储阵列加载数据。由此,访问数据读写缓冲区的不命中次数Buffer Cache misses的信息来源于随机访问不同Buffer Line,其中,存储阵列往buffer Cache搬移一次数据集大小叫做BufferLine。
可选地,本发明实施例中,所述特性参数可以基于以下方式进行获得:
可以理解的是,所述用于指示数据划分的特性参数中,由于各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小Size这两个特性均属于存储器的一种固有特性,因此可以通过预配置的方式配置在所述调度装置中,在触发数据划分时,通过调用获取到所述读写延迟特性和搬移数据集大小的信息。
所述用于指示数据划分的特性参数中,所述访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数可以基于以下方式获得:
对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数Miss times。
例如:首先,所述调度装置采集地址信息,并根据各存储器地址空间划分进行存储器类别划分;以DRAM访问为例,可以先获取行地址,再获取列地址,而DRAM中的Buffercache是一个行的数据集,即row buffer,因此统计行地址,可以判断本次访问是否命中上次访问的行;也就是说,调度装置从该地址信息中提取行地址,判断上一次访问和本次访问的行地址是否一致,如果一致,则表明本次访问命中上次访问已经打开的Buffer cache数据,存储行地址;若不一致,则表明不命中,并统计不命中次数;其后获取列地址,根据不同的列地址,统计连续命中同一行的次数。
可以理解的是,在行地址始终相同的情况下,可以根据列地址的变化情况来统计命中同一行的次数;若根据行地址统计命中次数,可能会对连续命中的情况统计不全面,因此还需要获取列地址,根据不同的列地址,统计连续命中同一行的次数,以准确统计不命中的次数。
S202、根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
其中,所述读写延迟特性可以包括:从NVM读取数据的延迟时间tread,NVM、从DRAM读取数据的延迟时间tread,DRAM、往NVM写入数据的延迟时间twrite,NVM、往DRAM写入数据的延迟时间twrite,DRAM和将数据搬移的时间大小tMigration
优选地,根据S201获得的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中数据读写缓冲区的不命中次数,可以基于以下方式计算出搬移至数据读写缓冲区的数据集的综合评分值:
S2021、将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;
S2022、将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;
可以理解的是,所述读取延迟时间差值和所述写入延迟时间差值可以认为是数据搬移带来的延迟时间差值。也就是说,本发明实施方式中,所述数据搬移带来的延迟时间差值包括读取延迟时间差值和写入延迟时间差值,其中,所述读取延迟时间差值可记为(tread,NVM-tread,DRAM),所述写入延迟时间差值可记为(twrite,NVM-twrite,DRAM)。
S2023、将所述数据集大小和所述数据搬移的时间大小的乘积,确定为数据搬移成本;
本发明实施例中,所述数据搬移成本可记为Cost=NumMigration X tMigration,其中所述NumMigration可由预先配置的数据集大小Size中获取,所述数据搬移的时间大小tMigration由读写延迟特性中获得。
S2024、对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;
所述数据搬移收益值可以为是数据搬移的延迟减少值,可以包括搬移后从DRAM读取的延迟减少和搬移后往DRAM写入的延迟减少;搬移后从DRAM读取的数据大小、搬移后往DRAM写入的数据大小可由预先配置的数据集大小Size中获取;其中,搬移后从DRAM读取的延迟减少为搬移后从DRAM读取的数据大小NumReadsDRAM和所述读取延迟时间差值(tread,NVM-tread,DRAM)的乘积,搬移后往DRAM写入的延迟减少为搬移后往DRAM写入的数据大小NumWritesDRAM和所述写入延迟时间差值(twrite,NVM-twrite,DRAM)的乘积,也就是说,所述数据搬移收益值可记为Benefit=NumReadsDRAM X(tread,NVM-tread,DRAM)+NumWritesDRAM X(twrite,NVM-twrite,DRAM)。
S2025、将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;
即带宽成本比值可记为BWcost=Cost/Benefit。
S2026、将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
本发明实施例中,通过综合评分值Score表征搬移至数据读写缓冲区的数据集的优先级。所述综合评分值Score为收益成本比值与不命中次数的乘积,所述收益成本比值与带宽成本比值互为倒数,即Score=Miss times/BWcost
S203、将搬移至数据读写缓冲区的数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级;
其中,赋予与所述综合评分值Score所在的预置分值区间所对应的优先级的一种可选实施方式为:调度装置根据计算得到的数据集的综合评分值Score,在预置的分值区间与数据优先级的关系对应表中查找,获取所述综合评分值Score所在的预置分值区间所对应的优先级,并将该部分数据赋予与所述综合评分值Score所在的预置分值区间所对应的优先级;
可以理解的是,在对所述数据集进行优先级划分之前,进一步包括预先划分分值区间,并建立分值区间和数据优先级的关系对应表;即所述预置分值区间与数据优先级的关系对应表是预先设置在调度装置中的;
另外,本发明实施例还可以使用可扩展标记语言(XML,Extensible MarkupLanguage)配置文件的方式来记录预置分值区间与数据优先级的对应信息,此处不作具体限定。
需要说明的是,本发明实施例对数据赋予优先级的过程可以包括对每个存储器中存储的数据集分别进行优先级分类,其后按照优先级的高低将同一优先级的数据集一并搬移存储;也可以对每个存储器中存储的数据集分别进行优先级排序,其后按照优先级的高低逐个分批搬移存储,例如优先级可以分为1~1000级,第一次搬移时,将优先级在900以上的数据往对应的存储器搬移存储,将优先级在100以下的数据往对应的存储器搬移存储。第二次搬移时,将优先级在800以上数据往对应的存储器搬移存储,将优先级在200以下的数据往对应的存储器搬移存储,如此类推,最终每个存储器都存储合理优先级的数据,该方式可减少CPU处理负担,提高处理效率。
S204、触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中。
其中,所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
可以理解的是,针对实际应用需要,根据存储器读写速率或响应速率等,预先对各存储器进行等级划分;本发明实施例中,若按读写速率预先对各存储器进行等级划分,则各存储器按由快到慢的等级排序分别为DRAM、PCM、NOR FLASH、SSD、HDD。
另容易想到的是,触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中,对于原本存储在等级较低的存储器中优先级较低的数据,可以通过搬移的方式存储到等级较高的存储器中,对于原本存储在等级较高的存储器中优先级较高的数据,也可以通过搬移的方式存储到等级较低的存储器中,而对于原本存储在等级较高的存储器中优先级较低的数据和原本存储在等级较低的存储器中优先级较高的数据,则不需要搬移。
可一并参考图3a和图3b,图3a为本发明实施例提供的用于多种存储器间的数据存储调度的方法的一种数据划分示意简图,图3b为本发明实施例提供方法中的一种数据搬移存储示意简图;首先,根据各特性参数对每个存储器中的数据集分别进行了综合评分值Score计算,将各存储器中的数据集进行了优先级排序,如分成四类;对应地,本实施方式中,可以预先设置了四个等级与数据优先级对应的存储器DRAM、PCM、SSD、HDD,若按读写速率预先对这四个存储器进行等级划分,则各存储器按由快到慢的等级排序分别为DRAM、PCM、SSD、HDD;本实施方式中,假设空间局域性好,读写延迟小的视为优先级高,相反空间局域性差,读写延迟差的视为优先级低,即综合评分值Score较低的该部分数据集优先级较高,相反,综合评分值Score较高的该部分数据集优先级较低;如图3a,综合评分值小于或等于100的视为第一优先级,综合评分值大于100且小于或等于500的视为第二优先级,综合评分值大于500且小于或等于1000的视为第三优先级,综合评分值大于1000的视为第四优先级;如图3b所示,将DRAM、PCM、SSD、HDD这四个存储器中存储的数据划分为四个优先级,并触发将同一优先级的数据集搬移到等级与数据优先级对应的存储器中,本实施方式中,所述第一优先级与HDD的等级对应,所述第二优先级与SSD的等级对应,所述第三优先级与PCM的等级对应,所述第四优先级与DRAM的等级对应。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度方法,通过引入对各存储器的读写延迟特性、搬移的数据集大小、访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
为便于更好的实施本发明实施例提供的用于多种存储器间的数据存储调度方法,本发明实施例还提供一种基于上述数据存储调度方法的装置。其中名词的含义与上述数据存储调度方法中相同,具体实现细节可以参考方法实施例中的说明。
请参考图4,图4为本发明实施例提供的一种用于多种存储器间的数据存储调度装置400的结构示意图,其中,所述装置400包括获取模块401、处理模块402和存储调度模块403;
所述获取模块401,用于获取各种类型存储器用于指示数据划分的特性参数;所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;
所述处理模块402,用于根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
所述存储调度模块403,用于触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。
其中,所述各种类型存储器包括动态随机存取存储器DRAM和非易失性存储器NVM;所述NVM包括相变存储器PCM、非易失闪存存储器NORFLASH、固态硬盘SSD和硬盘驱动器HDD中的一种或多种,所述HDD也可以称为DISK。
可以理解的是,所述用于多种存储器间的数据存储调度装置400设置有对外接口,以获取各存储器的各类信息并调度各存储器执行相应动作等。
本发明实施例中,所述装置400的对外接口包含:各种存储器的地址总线或含地址信息的总线,比如可以是串行总线,地址数据和命令是在同一通道串行传输,这时就没有地址\命令\数据总线之分,只是传输的某一段是地址信息;含辅助地址判断的命令信号线,如表征地址总线出现地址信息的信号,例如DRAM行地址选通(RAS,ROW ACCESS STROBE)信号表征地址总线出现行地址,列地址选通(CAS,Column ACCESS STROBE)信号表征地址总线出现列地址;时钟总线、配置接口,即获取所述的各种特性参数的接口、上报数据搬移地址信息的总线,用于将需要搬移的数据地址通知给CPU;以及触发数据搬移的中断信号线。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度装置400,通过引入对各存储器的读写延迟特性、搬移的数据集大小、存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
可选地,本发明实施例中,所述获取模块401可以基于以下方式分别获取各种特性参数:
其中,所述用于指示数据划分的特性参数中,由于各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小Size这两个特性均属于存储器的一种固有特性,因此可以通过预配置的方式配置在所述数据存储调度装置100中,所述获取模块401可以通过调用获取到所述读写延迟特性和搬移数据集大小的信息。
可选地,所述用于指示数据划分的特性参数中,所述获取模块401可以基于以下方式获取访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数:对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数Miss times。
可具体地,首先,所述调度装置采集地址信息,并根据各存储器地址空间划分进行存储器类别划分;以DRAM访问为例,可以先获取行地址,再获取列地址,而DRAM中的Buffercache是一个行的数据集,即row buffer,因此统计行地址,可以判断本次访问是否命中上次访问的行;也就是说,调度装置从该地址信息中提取行地址,判断上一次访问和本次访问的行地址是否一致,如果一致,则表明本次访问命中上次访问已经打开的Buffer cache数据,存储行地址;若否,则表明不命中,并统计不命中次数;其后获取列地址,根据不同的列地址,统计连续命中同一行的次数。
在该实施方式下,所述处理模块402,可以包括:
计算单元,用于根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
优先级赋予模块,用于将所述数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
其中,所述读写延迟特性可以包括:从NVM读取数据的延迟时间tread,NVM、从DRAM读取数据的延迟时间tread,DRAM、往NVM写入数据的延迟时间twrite,NVM、往DRAM写入数据的延迟时间twrite,DRAM和将数据搬移的时间大小tMigration
优选地,所述计算单元可以具体用于:
将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;将所述数据集大小和所述数据搬移的时间大小的乘积,确定为数据搬移成本;对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
可以理解的是,本发明实施方式中,所述读取延迟时间差值和所述写入延迟时间差值可以认为是所述数据搬移带来的延迟时间差值,所述读取延迟时间差值可记为:(tread,NVM-tread,DRAM),所述写入延迟时间差值可记为:(twrite,NVM-twrite,DRAM)。
所述数据搬移成本可记为Cost=NumMigration X tMigration,其中所述NumMigration可由预先配置的数据集大小Size中获取,所述数据搬移的时间大小tMigration由读写延迟特性中获得;所述数据搬移延迟收益值可以为是数据搬移的延迟减少值,包括搬移后从DRAM读取的延迟减少和搬移后往DRAM写入的延迟减少;搬移后从DRAM读取的数据大小、搬移后往DRAM写入的数据大小可由预先配置的数据集大小Size中获取;其中,搬移后从DRAM读取的延迟减少为搬移后从DRAM读取的数据大小NumReadsDRAM和所述读取延迟时间差值(tread,NVM-tread,DRAM)的乘积,搬移后往DRAM写入的延迟减少为搬移后往DRAM写入的数据大小NumWritesDRAM,和所述写入延迟时间差值(twrite,NVM-twrite,DRAM)的乘积,也就是说,所述数据搬移收益值可记为Benefit=NumReadsDRAM X(tread,NVM-tread,DRAM)+NumWritesDRAM X(twrite,NVM-twrite,DRAM)。则所述带宽成本比值可记为BWcost=Cost/Benefit。
本发明实施例中,通过综合评分值表征搬移至数据读写缓冲区的数据集的优先级;所述综合评分值Score为收益成本比值与不命中次数的乘积,所述收益成本比值与带宽成本比值互为倒数,即Score=Miss times/BWcost
优选地,所述优先级赋予模块赋予与所述综合评分值所在的预置分值区间所对应的优先级的一种可选实施方式为:根据计算得到的数据集的综合评分值,在预置的分值区间与数据优先级的关系对应表中查找,获取所述综合评分值所在的预置分值区间所对应的优先级,并将该部分数据赋予与所述综合评分值所在的预置分值区间所对应的优先级;
可以理解的是,预置分值区间与数据优先级的关系对应表是预先设置在所述装置400中的;另外,本发明实施例还可以使用可扩展标记语言XML配置文件的方式来记录预置分值区间与数据优先级的对应信息,此处不作具体限定。
需要说明的是,本发明实施例对数据赋予优先级的过程可以包括对每个存储器中存储的数据集分别进行优先级排序,其后按照优先级的高低逐个搬移存储;也可以对每个存储器中存储的数据集分别进行分类,其后按照优先级的高低将同一优先级的数据集一并搬移存储。
在该实施方式下,所述存储调度模块403,具体用于触发将优先级较高的数据搬移存储到等级较低的存储器中,将优先级较低的数据搬移存储到等级较高的存储器中。其中,所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
可以理解的是,针对实际应用需要,根据存储器读写速率或响应速率等,预先对各存储器进行等级划分;本发明实施例中,若按读写速率预先对各存储器进行等级划分,则各存储器按由快到慢的等级排序分别为DRAM、PCM、NOR FLASH、SSD、HDD。
另容易想到的是,触发将优先级较高的数据搬移存储到等级较低的存储器中,将优先级较低的数据搬移存储到等级较高的存储器中,对于原本存储在等级较低的存储器中优先级较低的数据,可以通过搬移的方式存储到等级较高的存储器中,对于原本存储在等级较高的存储器中优先级较高的数据,也可以通过搬移的方式存储到等级较低的存储器中,而对于原本存储在等级较高的存储器中优先级较低的数据和原本存储在等级较低的存储器中优先级较高的数据,则不需要搬移。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及装置中的模块单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度装置,通过引入对各存储器的读写延迟特性、搬移的数据集大小、访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
为了更好地理解本发明技术方案,以下以一具体应用场景为例,对所述用于多种存储器间的数据存储调度方法和装置进行分析说明:
本发明实施例提供的用于多种存储器间的数据存储调度装置在硬件实施上可以认为是一个调度模块,其将布置在DRAM存储器和NVM存储器(如PCM、SSD、HDD等)的各种缓存caching模块和预取prefetching模块进行合成,并根据各种类型存储器用于指示数据划分的特性参数(空间局域性、读写延迟、数据集大小等)综合考量作出判断和处理。
请参考图5,图5为该调度模块的一种总体外围接口结构示意图;所述调度模块基于各总线时钟和地址选通命令信号,采集各种类型存储器的访存地址;按照数据的空间局域性、读写延迟、数据集大小等特性参数进行综合考量作出最优判断和处理;通过中断触发CPU搬移优先级最高的数据;通过两线式串行总线(IIC,Inter-Integrated Circuit)发送搬移优先级最高的数据的地址信息。
请参考图6,图6为该应用场景下调度模块的硬件实现框图及模块定义及接口结构示意图;所述调度模块包括:获取模块401、处理模块402和存储调度模块403。具体地,所述获取模块401包含多路地址选通和采集单元、判断单元和NVM延迟尺寸配置单元,所述处理模块402可具体为统计计算单元,所述统计计算单元包含命中统计单元、score计算单元;所述存储调度模块403也就是执行单元,可包含门限判断单元、IIC单元、中断控制器。
可以理解的是,所述多路地址选通及采集单元通过时钟信号、各总线地址信号和地址选通信号采集每次访存的地址,其中,时钟信号由时钟总线获得、地址总线有地址总线获得、地址选通信号由命令总线获得;
进一步地,请参考图7,图7为所述多路地址选通及采集单元的结构示意简图,所述多路地址选通及采集单元可以具体包括:各存储器的地址FIFO(先进先出)寄存器;时序仲裁器,用于判断当前采集哪种类型的存储器的信息;转换控制单元,用于切换该类型存储器的读写时序判断;地址信号保持单元,用于将采集的地址信号进行锁存及放大。所述NVM延迟尺寸配置单元用于预先配置各种类型存储器的读写延迟特性、以及搬移至数据读写缓冲区的数据集大小这两个固有特性。
请一并参考图6所示的判断单元的结构示意,若以DRAM存储器访问为例,所述判断单元可以具体包括:地址寄存器,用于存放采集的地址信息,并且根据存储器地址空间划分进行存储器类别划分;行地址锁存器,用于从地址信息中提取行地址(其余NVM采用相应阵列单元替代,例如NANDFLASH为页面缓冲);命中判断单元,用于判断上一次访存和本次访存的行地址是否一致,如果一致则表明本次访存命中上次访存已经打开的buffercache数据,并将行地址和判断结果发送至统计计算单元;列地址计数和锁存器,用于通过判断是否命中,根据不同的列地址,统计连续命中同一行的次数,并将统计结果发送至统计计算单元。
可以理解的是,本应用场景以DRAM存储器访问为例,DRAM访问时是先发行地址,再发列地址。而DRAM中的buffer cache(即row buffer)是一个行的数据集,因此统计行地址,可以判断本次访问是否命中上次访问的行。
请一并参考图6所示的统计计算单元的结构示意,所述统计计算单元包含命中统计单元和score计算单元,所述命中统计单元用于接收判断单元的地址信息、命中信息,并发送至score计算单元;所述score计算单元,用于根据统计的Buffer Cache的Miss次数和总访存次数,计算每个Buffer Cache的Miss率;通过配置表获取DRAM、PCM、NOR FLASH、NANDFLASH SSD和HDD的读写延迟特性,例如可以以时间为单位,比如DRAM访问50ns,PCM200ns等;通过配置表获取DRAM、PCM、NOR FLASH、NAND FLASHSSD和HDD的Buffer Cache尺寸(即数据集大小),例如DRAM/PCM是一个行的大小,一般可以为2KB、NOR/NAND FLASH是一个页的单位,一般可以为2KB、HDD是一个扇区,一般可以为512B;最后根据这些特性参数,计算用于指示数据优先级的综合评分值(Score值),综合考虑各NVM存储器作出统一判断,如对每个存储器中存储的数据分别进行优先级划分。可参考表1,表1为该实施方式中根据各特性参数计算Score值的示意表。
表1
其中,所述Size表示搬移至数据读写缓冲区的数据集大小,所述tread,NVM表示从NVM读取数据的延迟时间,所述tread,DRAM表示从DRAM读取数据的延迟时间,所述twrite,NVM表示往NVM写入数据的延迟时间,所述twrite,DRAM表示往DRAM写入数据的延迟时间,所述tMigration表示将数据从NVM搬移到DRAM的时间大小,且这几个特性参数可以通过预先配置,在计算Score值时调用。所述Benefit表示数据搬移收益值,即数据搬移延迟减少,计算公式为:Benefit=NumReadsDRAM X(tread,NVM-tread,DRAM)+NumWritesDRAM X(twrite,NVM-twrite,DRAM);所述Cost=NumMigration X tMigration;所述1/BWcost为收益成本比值,所述Miss times为不命中次数,所述Score=Miss times/BWcost
根据Score值,可确定该部分数据的优先级;其后,优先将Score值较高(即优先级较低)的数据搬移到DRAM中去。可以理解的是,所述Score值的计算和数据优先级划分的具体过程可参考上述实施例具体实现,此处不作赘述。
请一并参考图6所示的存储调度模块403的结构示意,所述存储调度模块403包括门限判断单元,用于若计算的Score值超过Score值固定门限值,触发NVM和DRAM根据Caching Miss率的高低和本身的等级高低,相互之间进行数据搬移存储;IIC单元,用于将超过Score值固定门限的数据在所属存储器中的地址通过IIC总线发送给CPU;中断控制器,用于通过中断的形式触发各类存储器进行数据搬移和存储。
可以理解的是,应用场景中涉及的各单元模块的功能可根据上述方法和装置实施例中的对应过程进行具体实现,此处不作赘述,另容易想到的是,此处仅以上述应用场景中提供的数据存储调度装置的硬件实现框图为例进行说明,但并不构成对本发明的限定。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度方法以及装置,通过引入对各存储器的读写延迟特性、搬移的数据集大小、存储器中各个数据集在数据读写缓冲区中的不命中次数等特性参数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
请参考图8,图8为本发明实施例提供的一种用于多种存储器间的数据存储调度装置800的结构示意图,其中,所述装置800包括输入装置801、输出装置802和处理器803;
所述处理器803执行以下步骤:
获取各种类型存储器用于指示数据划分的特性参数;所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中。
优选地,所述处理器803可以基于以下方式获取访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数:对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数。
进一步优选地,所述处理器803用于根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分具体包括:根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;将所述数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
更进一步地,所述处理器803用于根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值具体包括:将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;将所述数据集大小和所述数据搬移的时间大小的乘积,确定为数据搬移成本;对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
所述处理器803用于触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中具体包括:触发将优先级较高的数据搬移存储到等级较低的存储器中,将优先级较低的数据搬移存储到等级较高的存储器中。其中,所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
可以理解的是,所述处理器803的功能可根据上述方法和装置实施例中的对应过程进行具体实现,此处不作赘述。
由上述可知,本发明实施例提供的用于多种存储器间的数据存储调度装置800,通过引入对各存储器的读写延迟特性、搬移的数据集大小、存储器中各个数据集在数据读写缓冲区中的不命中次数的综合考虑,对每个存储器中存储的数据进行优先级排序处理,并按不同优先级放入不同的存储器中,有效减少访问延迟,并且做到DRAM和NVM之间的访问负载均衡,在编程速度,擦写次数和节省内存带宽方面做进一步提升。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种用于多种存储器间的数据存储调度方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种用于多种存储器间的数据存储调度方法,其特征在于,包括:
获取各种类型存储器用于指示数据划分的特性参数,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;
根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中;
其中,所述触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中,包括:
触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中;所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
2.根据权利要求1所述的方法,其特征在于,所述访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数基于以下方式获得:
对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分,包括:
根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
将搬移至数据读写缓冲区的数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
4.根据权利要求3所述的方法,其特征在于,所述读写延迟特性包括从非易失性存储器NVM读取数据的延迟时间、从动态随机存取存储器DRAM读取数据的延迟时间、往NVM写入数据的延迟时间、往DRAM写入数据的延迟时间和数据搬移的时间大小;
所述根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值包括:
将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;
将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;
将所述数据集大小和所述数据搬移的时间大小的乘积,确定为数据搬移成本;
对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;
将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;
将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述各种类型存储器包括:DRAM和NVM,所述NVM包括相变存储器PCM、非易失闪存存储器NOR FLASH、固态硬盘SSD和硬盘驱动器HDD中的一种或多种。
6.一种用于多种存储器间的数据存储调度装置,其特征在于,包括:
获取模块,用于获取各种类型存储器用于指示数据划分的特性参数,所述特性参数包括各种类型存储器的读写延迟特性、搬移至数据读写缓冲区的数据集大小以及访问各种类型存储器各个数据集在数据读写缓冲区中的不命中次数,其中,所述数据读写缓冲区为各存储器中从存储阵列搬移出来的数据集临时缓存的模块;
处理模块,用于根据所述特性参数,对每个存储器中存储的数据集分别进行优先级划分;
存储调度模块,用于触发将同一优先级的数据集存储到等级与数据优先级对应的存储器中;
其中,所述存储调度模块具体用于:触发将优先级较高的数据集搬移存储到等级较低的存储器中,将优先级较低的数据集搬移存储到等级较高的存储器中;所述等级较低的存储器具体为读写速率较慢的存储器;所述等级较高的存储器具体为读写速率较快的存储器。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,用于基于以下方式获得访问各种类型存储器中各个数据集在数据读写缓冲区中的不命中次数:对于各存储器,若本次访问的数据不在上一次访问数据读写缓冲区的数据集中,则确定本次访问没有命中所述数据集,并统计所述数据集在数据读写缓冲区的总不命中次数。
8.根据权利要求6所述的装置,其特征在于,所述处理模块包括:
计算单元,用于根据所述特性参数,计算搬移至数据读写缓冲区的数据集的综合评分值;
优先级赋予模块,用于将所述数据集赋予与所述综合评分值所在的预置分值区间所对应的优先级。
9.根据权利要求8所述的装置,其特征在于,所述读写延迟特性包括从非易失性存储器NVM读取数据的延迟时间、从动态随机存取存储器DRAM读取数据的延迟时间、往NVM写入数据的延迟时间、往DRAM写入数据的延迟时间和数据搬移的时间大小;
所述计算单元具体用于:将所述从NVM读取数据与所述从DRAM读取数据的延迟时间差值,确定为读取延迟时间差值;将所述往NVM写入数据与所述往DRAM写入数据的延迟时间差值,确定为写入延迟时间差值;将所述数据集大小和所述数据搬移的时间大小的乘积,确定出数据搬移成本;对所述数据集大小与所述读取延迟时间差值的乘积,和所述数据集大小与所述写入延迟时间差值的乘积进行求和,得到数据搬移收益值;将所述数据搬移成本和所述数据搬移收益值的比值确定为带宽成本比值;将所述不命中次数与所述带宽成本比值的比值确定为搬移至数据读写缓冲区的数据集的综合评分值。
CN201310351737.3A 2013-08-13 2013-08-13 用于多种存储器间的数据存储调度方法以及装置 Active CN104375895B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310351737.3A CN104375895B (zh) 2013-08-13 2013-08-13 用于多种存储器间的数据存储调度方法以及装置
PCT/CN2014/084277 WO2015021919A1 (zh) 2013-08-13 2014-08-13 用于多种存储器间的数据存储调度方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310351737.3A CN104375895B (zh) 2013-08-13 2013-08-13 用于多种存储器间的数据存储调度方法以及装置

Publications (2)

Publication Number Publication Date
CN104375895A CN104375895A (zh) 2015-02-25
CN104375895B true CN104375895B (zh) 2018-02-06

Family

ID=52468062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310351737.3A Active CN104375895B (zh) 2013-08-13 2013-08-13 用于多种存储器间的数据存储调度方法以及装置

Country Status (2)

Country Link
CN (1) CN104375895B (zh)
WO (1) WO2015021919A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834608B (zh) * 2015-05-12 2017-09-29 华中科技大学 一种异构内存环境下的缓存替换方法
WO2017107161A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 基于异构混合内存的nvm内存擦写控制方法和系统
CN106569960B (zh) * 2016-11-08 2019-05-28 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN108153481B (zh) * 2016-12-05 2021-08-03 北京兆易创新科技股份有限公司 一种nand的存储块回收方法和装置
CN106802582B (zh) * 2017-01-18 2019-12-24 北京光年无限科技有限公司 一种用于机器人的传感器数据调用方法以及机器人
KR102417977B1 (ko) * 2017-10-19 2022-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN110618872B (zh) * 2019-09-25 2022-04-15 山东师范大学 混合内存动态调度方法及系统
US11194516B2 (en) 2019-10-08 2021-12-07 Micron Technology, Inc. Media type selection
CN112685670A (zh) * 2020-12-31 2021-04-20 华为技术有限公司 一种数据调度方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145058A (en) * 1997-04-18 2000-11-07 Nec Corporation Device and method for controlling write-back of data in a cache memory connected to a storage
CN1723447A (zh) * 2003-01-27 2006-01-18 松下电器产业株式会社 存储器控制装置
CN101271435A (zh) * 2008-05-20 2008-09-24 北京中星微电子有限公司 一种访问外部存储器的方法
CN102156677A (zh) * 2011-04-19 2011-08-17 威盛电子股份有限公司 快取存储器存取方法及系统
CN102301345A (zh) * 2008-12-30 2011-12-28 英特尔公司 混合存储设备
CN102646071A (zh) * 2012-02-17 2012-08-22 中国科学院微电子研究所 单周期执行高速缓存写命中操作的装置及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774563B2 (en) * 2007-01-09 2010-08-10 International Business Machines Corporation Reducing memory access latency for hypervisor- or supervisor-initiated memory access requests
CN101901132B (zh) * 2009-08-12 2013-08-21 威盛电子股份有限公司 微处理器以及相关储存方法
CN102122270B (zh) * 2011-02-23 2013-08-07 华为技术有限公司 在存储器中查找数据的方法和装置以及存储器
CN102388358B (zh) * 2011-09-30 2014-07-09 华为技术有限公司 在混合存储环境下配置存储设备的方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145058A (en) * 1997-04-18 2000-11-07 Nec Corporation Device and method for controlling write-back of data in a cache memory connected to a storage
CN1723447A (zh) * 2003-01-27 2006-01-18 松下电器产业株式会社 存储器控制装置
CN101271435A (zh) * 2008-05-20 2008-09-24 北京中星微电子有限公司 一种访问外部存储器的方法
CN102301345A (zh) * 2008-12-30 2011-12-28 英特尔公司 混合存储设备
CN102156677A (zh) * 2011-04-19 2011-08-17 威盛电子股份有限公司 快取存储器存取方法及系统
CN102646071A (zh) * 2012-02-17 2012-08-22 中国科学院微电子研究所 单周期执行高速缓存写命中操作的装置及方法

Also Published As

Publication number Publication date
WO2015021919A1 (zh) 2015-02-19
CN104375895A (zh) 2015-02-25

Similar Documents

Publication Publication Date Title
CN104375895B (zh) 用于多种存储器间的数据存储调度方法以及装置
CN107466418B (zh) 用于多级别单元模式非易失性存储器的成本优化单级别单元模式非易失性存储器
Rixner Memory controller optimizations for web servers
CN102053930B (zh) 用于外围组件的命令队列
CN103069400B (zh) 具有可动态调整的移除度量的组合写入缓冲器
CN103425602B (zh) 一种闪存存储设备数据读写的方法、装置及主机系统
Li et al. A performance & power comparison of modern high-speed dram architectures
JP5610636B2 (ja) トラフィッククラスと関連するポートをもつマルチポートのメモリコントローラ
CN103348333B (zh) 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置
CN103946826A (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
CN110888592B (zh) 基于延迟ssd系统智能并行资源利用的请求调度方法及系统
CN107430554A (zh) 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能
CN107408018A (zh) 用于在固态驱动器中适应垃圾收集资源分配的机制
KR20200142086A (ko) 메모리 시스템 또는 서브 시스템의 대기 시간 표시
Zhang et al. A customized design of DRAM controller for on-chip 3D DRAM stacking
CN109164976A (zh) 利用写缓存优化存储设备性能
CN104409099B (zh) 基于FPGA的高速eMMC阵列控制器
CN105426322B (zh) 一种数据的预取方法及装置
CN106802870A (zh) 一种高效的嵌入式系统芯片Nor‑Flash控制器及控制方法
CN103488582B (zh) 写高速缓冲存储器的方法及装置
TWI541648B (zh) 記憶體系統中之通道深度調整
Davis et al. DDR2 and low latency variants
CN103246584B (zh) 片上系统芯片结构及保存调试信息的方法
Khalifa et al. Memory controller architectures: A comparative study
TW201342193A (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
GR01 Patent grant
GR01 Patent grant