基于延长写时间的优化非易失性存储器写寿命的内存管理方法与流程

文档序号:17160341发布日期:2019-03-20 00:36阅读:199来源:国知局
基于延长写时间的优化非易失性存储器写寿命的内存管理方法与流程

本发明涉及一种计算机系统的内存管理方法。



背景技术:

当前计算机的内存主要是dram存储技术,但是dram技术的发展受到其自身特点的制约,比如周期性消耗能量来刷新电容维持数据、断电后数据丢失等。因此人们提出采用新型的非易失性,比如非易失性随机存储器(reram)和相变储存器(phasechangememroy,pcm)来代替dram作为新一代的计算机内存。这些新型存储器具有密度高、可扩展性强、非易失和静态功耗低等优势。但是新型存储器具有一个共性的缺点:写寿命短。相比于dram,新型存储器的存储单元可被写次数较少,一旦频繁被写以至于超出可写次数的上限,该存储单元就失效,不能继续正确地存储数据。因此新型存储器要代替dram称为下一代内存技术,有待解决的首要问题就是写寿命短。

一般的内存系统从逻辑上组织为通道(channel)、内存组(rank)、内存块(bank)、内存行(row)和存储单元(cell)。多个bank共享某个channel与处理器相连。每个rank包含一组同步工作的bank。bank是最小的可以独立并行工作的物理单元,即同时可有多个bank独立地读/写数据。但是如果两个数据访问请求的目标数据在同一个bank中,那么两个请求只能串行处理,不能并行服务。一个bank包含大量的cell,所有cell横向为row纵向为column排列成二维矩阵。每列的cell与一纵向的位线(bitline)相联,横向的字线(wordline)选中目标行的数据与位线联通后,将数据读取到bank下部的行缓存器(rowbuffer)。数据访问请求到达bank后,要完成数据访问需要经历三个步骤:1)激活:将二维存储阵列中的目标行数据读取到行缓存器;2)读写:读写行缓存器中的数据;3)写回:将行缓存器中的数据写回到二维存储阵列。写数据时间主要就耗费在写回步骤。

将数据写到存储单元时,需要耗费一定的写时间和写能耗去改变存储单元的状态,达到更新数据的目的。如果压缩写时间、提升写数据的速度,就要增大写能耗;反之,延长写时间,就可以降低写能耗。而越大的写能耗则会越快地消耗存储单元的写寿命。写寿命的公式如下:

其中twl表示写延时,而t0是一个与器件相关的常数。uw是存储单元切换的阈值能耗,us是存储单元的写数据能耗。如果取uw/us-1=2,则写时间延长后,对应的写寿命按平方关系增长;uw/us-1的值越大,写寿命则会有更高比例的增长。显然地,延长写寿命的一种方式是在存储数据时尽量延长写时间,但是延长写时间会对内存的存储性能不利。

内存中的控制器包含读和写两个数据请求队列,负责将数据请求分发到各个目标bank,因为读数据请求的优先级高于写数据请求,所以数据请求队列中针对某个bank的读访问请求会优先于写数据请求处理。同一目标bank的两个数据请求称为冲突请求。通常情况下,读写数据访问请求队列的长度大于内存bank数。因此写数据队列中的每个写数据请求,很大可能与读数据队列中的某个数据请求冲突。如果写请求队列中待处理的写数据请求数量突破限值,则触发写清空操作,内存总线只能服务写操作,造成额外的开销,降低性能,所以要保证写数据请求队列中的数据请求的数量,避免写清空。

盲目延长写数据时间的不利影响包括:1)延长数据的写时间,使得写数据请求队列的处理效率降低,更可能造成写数据请求数量突破限值,引发写清空;2)读数据请求优先级高于写数据请求,如果写时间延长,有可能造成后续到达的同一目标bank的读数据请求等待,影响性能。



技术实现要素:

本发明要克服现有技术的上述缺陷,提出基于延长写时间的优化非易失性存储器写寿命的内存管理方法。

本发明的内容和特征就是:利用内存bank的空闲状态,采用bank级延长写时间策略,优化存储器的写寿命;将bank划分为多个能够独立工作的子块结构,提升bank并行处理读写数据请求的能力,创造更多可采用延长写时间处理写数据请求的机会;在bank级延长写时间策略失效的情况下,利用bank子块的并行服务能力,采用子块级延长写时间策略,进一步优化存储器的写寿命。

本发明的一种基于延长写时间的优化非易失性存储器写寿命的内存管理方法,包含以下的技术步骤:

1)bank级延长写时间策略;

内存包含多个bank,每个bank一个时刻只能处理一个读或者写数据请求,不同的读写数据请求对应不同的目标bank,依次扫描写数据队列wq中的每个写数据请求,如果其目标bank与读数据队列rq中的任一个读数据请求的目标bank都不是同一个,则采用延长写时间方式处理当前写数据请求;否则,根据当前wq的长度作相应处理;

2)bank细粒度结构优化;

对bank进行细粒度结构改进,提升bank的并行服务能力。将一个bank沿垂直方向等分为多个相同大小的二维存储阵列子块,每个子块包含局部行缓存器、地址缓存器和地址解析器。每个局部行缓存器都有1位的connected使能信号控制,使得每个时刻只有一个局部行缓存器与全局行缓存器相连,与外界进行数据交换。每个子块的激活和写存储阵列两个阶段可以独立完成,提升并行处理读写数据请求能力。

3)子块级延长写时间策略;

在bank级延长写时间策略的基础上,进一步采用子块级延长写时间策略。依次扫描写数据队列wq中的每个写数据请求时,如果发现当前写数据请求的目标bank与读数据队列rq中的某个读数据请求的目标bank相同,则进一步检视两者的目标子块,如果目标子块不同,则依然可采用延长写时间方式处理写数据请求;否则,再根据当前wq的长度作相应处理。

本发明针对新型易失性存储器写寿命短的问题,提出利用内存bank的空闲状态,采用延长写时间方式处理写数据请求,达到优化存储器写寿命的目标。并且改进内存bank的结构,提升bank并行处理读写数据请求的能力,创造更多可采用延长写时间处理写数据请求的机会,最大限度地改善易失性内存写寿命短的问题。

本发明的优点:不仅可以利用bank级的延长写时间策略,优化存储器的写寿命,还可以在bank级延长写策略失效的情况下,利用子块级的延长写时间策略进一步提升存储器的写寿命。

附图说明

图1是本发明方法的读写数据请求处理图。

图2是本发明方法的bank结构图。

具体实施方式

下面结合附图,进一步说明本发明方法的技术方案。

图1是读写数据请求处理图,内存控制器中包含读数据请求队列和写数据请求队列,内存系统基本的工作单位是bank,每个数据请求根据地址信息分派到目标bank依次处理。图2是bank结构图,图(a)是原始的bank结构图,图(b)是细粒度结构优化后的bank结构图。

本发明的一种基于延长写时间的优化非易失性存储器写寿命的内存管理方法,包含以下的技术步骤:

1.bank级延长写时间策略;

应用程序的读写数据请求到达内存控制器的读写请求队列后,再被分发到各自的目标bank进行处理。各个bank分配到的数据请求数呈现不均匀状态,即个别bank的数据请求数少而导致大部分时间处于空闲状态,为延长写时间处理些写请求提供机会。在不影响性能的前提下,采用延长写时间优化存储单元写寿命的必要条件是一个写数据请求发往内存bank处理之前,读写数据请求队列中没有其他的写数据和读数据请求,等待发往同一个内存bank。图1所示一个4bank的内存,内存控制器中的读写数据请求队列的容量为4,写数据请求队列wq={w11,w12,w21},读数据请求队列rq={r11,r31,r41},其中的wij表示目标为bank[i]的第j个写数据请求,而rij表示目标为bank[i]的第j个读数据请求。写数据队列中的w21是现有队列中唯一发往bank[2]的写访问请求,因此w21可以采用延长写时间处理。bank级延长写时间策略的具体描述如下:

step1:初始化i=1,扫描当前wq中的第i个写数据请求wi,确定wi的目标bank[wi];

step2:扫描当前rq中的每个读数据请求rj,对比每个rj的目标bank[rj]与step1中的bank[wi],如果没有出现冲突,则采用延长写数据时间的方式完成wi;否则,如果当前wq的长度大于总长度的1/2,则以正常写时间的方式完成wi;若wq长度小于1/2,则暂时不对wi处理;

step3:递增i,直到处理完wq中所有的写数据请求;

2.bank细粒度结构优化;

为提升bank的并行服务能力,即bank同时处理多个读写数据请求,需对bank进行细粒度结构优化。图2所示,将一个bank沿垂直方向,等分为多个相同大小的二维存储阵列子块。每个子块包含局部行缓存器(localrowbuffer),以及wordline驱动电路,bank的globalwordline的信号强化后连接到子块的wordline。所有子块可以同步读写数据,每个子块中的数据行共享一局部行缓存器。每个子行拥有自己的地址缓存器和地址解析器,地址缓存器用于暂存来自全局地址缓存器的数据访问请求地址信息,而地址解析器在接收到激活命令时,开始解析地址信息。

虽然每个子块可以独立地激活和访问数据,但数据还是要经由全局的行缓存器传输。而全局rowbuffer每个时刻只能与一个子行的局部行暂存器相连,因此每个子块都有独立的一位connected使能信号,值为"1"的时候,表示与全局的行缓存器连通,局部行缓存器与全局行缓存器之间进行数据访问;反之connected使能信号值为"0",则表示该子块没有与全局行缓存器相连。内存控制器会根据数据访问请求的地址信息,将目标子行的connected使能信号设置为1,并且将其他子行的使能信号清零。

数据访问请求到达结构优化后的bank,数据访问经历如下三个步骤:1)激活:将二维存储阵列中的目标行数据读取到目标子块的局部行缓存器;2)设置目标子块的connected使能信号,连接局部行缓存器与全局行缓存器,完成数据在两者之间的传输;3)将局部行缓存器中的数据写回到目标子块。因为不同子块的步骤1)和3)可以并行操作,提升bank的并行服务能力。

3.bank子块延长写时间策略;

通过延长写数据时间来延长存储单元的写寿命,必要条件是一个写数据请求发往内存bank处理之前,读数据请求队列中没有冲突请求。因为读写数据访问请求队列的长度大于内存bank数。写数据队列中的每个写数据请求,大概率与读数据队列中的某个数据请求冲突。bank级延长写时间的策略在这种情况下失效,因此提出基于bank子块空闲时间延长写时间策略。根据读写队列中每个数据请求的地址,确定访问的目标bank子块,类似于冲突请求,目标为同一bank子块的两个数据请求称为子块冲突访问。

以某4banks内存系统为例,经过细粒度结构优化,每个bank被划分为4个子块,读写数据请求队列的容量为4。假设写数据请求队列wq={w11,w12,w21},读数据请求队列rq={r11,r31,r21},其中wij表示目标为bank[i]的第j个写数据请求,而rij表示目标为bank[i]的第j个读数据请求。写数据队列中的w21与r21发生冲突,因为目标bank均为bank[2],bank级延长写时间策略失效。但是,检查w21与r21的目标地址,发现两者落在bank[2]的不同子块,而不同子块可以并行工作,所以可对w21进行延长写时间操作,这就是子块延长写时间策略。策略的具体描述如下:

step1:初始化i=1,扫描当前wq中的第i个写数据请求wi,确定wi的目标bank[wi];

step2:扫描当前rq中的每个读数据请求rj,对比每个rj的目标bank[rj]与step1中的bank[wi],如果没有出现冲突,则采用延长写数据时间的方式完成wi,转step4;否则,转step3;

step3:检查访问冲突的rj和wi数据请求中的目标地址,确定是否存在子块冲突,如果不存在,则采用延长写数据时间的方式完成wi,否则如果当前wq的长度大于总长度的1/2,则以正常写时间的方式完成wi;若wq长度小于1/2,则暂时不对wi处理;

step4:递增i,直到处理完wq中所有的写数据请求。

本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1