【技术实现步骤摘要】
本专利技术涉及计算机领域,并且更为具体地,涉及一种写请求的处理方法和内存控制器。
技术介绍
非易失性存储器(Non-VolatileMemory,NVM)是一种新型的存储器,它具有很多优点,如可按照字节寻址,掉电后数据不丢失,存储密度高,无需频繁刷新,以及能耗低等,因此,很适合作为内存(或称主存)。但是,NVM也存在一些不足之处,如相对较长的写延时、写次数有限等。NVM可以与现有的动态随机存取存储器(DynamicRandomAccessMemory,DRAM)共同构成混合内存,应用程序产生的临时数据可存储在DRAM中,应用程序产生的持久性数据可存储在NVM中。NVM用作内存,需要对现有的体系结构和软件架构进行重新设计或者优化。一种可行的方法是使用软件事务内存(SoftwareTransactionalMemory,STM)技术,该技术能够使得NVM内存的管理维持了事务特性,事务特性包括事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。同时,由于STM技术是基于现有的编程模型,这种使用STM技术对NVM进行管理和控制的方式,易于程序员接受和使用。为了保证NVM内存在使用过程中的一致性,写请求的调度次序需要满足可线性化(Linearizability)的要求,即针对同一个事务,内存控制器需要先将该事务的日志写请求(或称Log写请求)和提交写请求(或称Commit写请求)依次发送至NVM内存中,然后才能将该事务的数据写请求(或称Data写请求)发送至NVM内存中,进行该事务的数 ...
【技术保护点】
一种写请求的处理方法,其特征在于,所述方法由计算机系统中的内存控制器来执行,在所述内存控制器中缓存有写请求队列,所述写请求队列中包含有待调度的事务的写请求,所述计算机系统的内存为非易失性存储器NVM,且所述内存包括多个存储单元,所述方法包括:确定待调度的第一写请求集合中的写请求的数目小于所述内存中的未被占用的存储单元的数目,其中,所述第一写请求集合中的写请求与所述写请求队列中的其他写请求之间有第一内存栅,所述第一写请求集合中的写请求位于所述第一内存栅之前;确定第二写请求集合,其中,所述第二写请求集合中的写请求为日志写请求,所述第二写请求集合中的写请求在所述写请求队列中位于所述第一内存栅之后,且所述第二写请求集合中的写请求的数量与所述第一写请求集合中的写请求的数量的和不大于所述内存中未被占用的存储单元的数量;将所述第一写请求集合中的写请求和所述第二写请求集合中的写请求并行发送至所述内存的未被占用的不同存储单元中。
【技术特征摘要】
1.一种写请求的处理方法,其特征在于,所述方法由计算机系统中的内存控制器来执行,在所述内存控制器中缓存有写请求队列,所述写请求队列中包含有待调度的事务的写请求,所述计算机系统的内存为非易失性存储器NVM,且所述内存包括多个存储单元,所述方法包括:确定待调度的第一写请求集合中的写请求的数目小于所述内存中的未被占用的存储单元的数目,其中,所述第一写请求集合中的写请求与所述写请求队列中的其他写请求之间有第一内存栅,所述第一写请求集合中的写请求位于所述第一内存栅之前;确定第二写请求集合,其中,所述第二写请求集合中的写请求为日志写请求,所述第二写请求集合中的写请求在所述写请求队列中位于所述第一内存栅之后,且所述第二写请求集合中的写请求的数量与所述第一写请求集合中的写请求的数量的和不大于所述内存中未被占用的存储单元的数量;将所述第一写请求集合中的写请求和所述第二写请求集合中的写请求并行发送至所述内存的未被占用的不同存储单元中。2.如权利要求1所述的方法,其特征在于,所述方法还包括:确定待调度的第三写请求集合中的写请求的数目小于所述内存中的未被占用的存储单元的数目,其中,所述第三写请求集合中的写请求与所述写请求队列中的其他写请求之间有第二内存栅,所述第三写请求集合中的写请求位于所述第二内存栅之前;确定第四写请求集合,其中,所述第四写请求集合中的写请求包括提交写请求或中断写请求,所述第四写请求集合中的写请求在所述写请求队列中位于所述第二内存栅之后,所述第四写请求集合中的写请求与所述第三写请求集合中的写请求通过所述第二内存栅相隔,所述第四写请求集合中的每个写请求与所述第三写请求集合中的每个写请求均为不同事务的写请求,且所述第四写请求集合中的写请求的数量与所述第三写请求集合中的写请求的数量的和不大于所述内存中未被占用的存储单元的数量;将所述第三写请求集合中的写请求和所述第四写请求集合中的写请求并行发送至所述内存的未被占用的不同存储单元中。3.如权利要求2所述的方法,其特征在于,所述确定第四写请求集合,
\t包括:根据所述写请求队列中的写请求携带的事务标识,确定所述第四写请求集合,所述事务标识用于指示写请求所属的事务。4.如权利要求1所述的方法,其特征在于,所述方法还包括:确定待调度的第五写请求集合中的写请求的数目小于所述内存中的未被占用的存储单元的数目,其中,所述第五写请求集合中的写请求与所述写请求队列中的其他写请求之间有第三内存栅,所述第五写请求集合中的写请求位于所述第三内存栅之前,所述第五写请求集合中的写请求均不是日志写请求;确定第六写请求集合,其中,所述第六写请求集合中的写请求为提交写请求或中断写请求,所述第六写请求集合中的写请求在所述写请求队列中位于所述第三内存栅之后,所述第六写请求集合中的写请求与所述第五写请求集合中的写请求通过所述第三内存栅相隔,且所述第六写请求集合中的写请求的数量与所述第五写请求集合中的写请求的数量的和不大于所述内存中未被占用的存储单元的数量;将所述第五写请求集合中的写请求和所述第六写请求集合中的写请求并行发送至所述内存的未被占用的不同存储单元中。5.如权利要求1-4中任一项所述的方法,其特征在于,所述确定第二写请求集合,包括:从所述内存的未被占用的存储单元中确定第一存储单元集合,其中,所述第一存储单元集合中的存储单元用于接收除所述第一写请求集合中的写请求之外的写请求;从所述写请求队列中位于所述第一内存栅之后的写请求中选择待发送至所述第一存储单元集合中的存储单元的日志写请求,其中,所述选择的日志写请求构成所述第二写请求集合。6.如权利要求1-5中任一项所述的方法,其特征在于,所述存储单元包括所述内存中的bank。7.一种内存控制器,其特征在于,内存控制器位于计算机系统中,在所述内存控制器中缓存有写请求队列,所述写请求队列中包含有待调度的事务的写请求,所述计算机系统的内存为非易失性存储器NVM,且所述内存包括多个存储单元,所述内存控制器包括:比较模块,用于确定待调度的第一写请求集合中的写请求的数目小于所述内存中的未被占用的存储单元的数目,其中,所述第一写请求集合中的写请求与所述写请求队列中的其他写请求之间有第一内存栅,所述第一写请求集合中的写请求位于所述第一内存栅之前;确定模块,用于确定第二写请求集合,其中,所述第二写请求集合中的写请求为日志写请求,所述第二写请求集合中的写请求在所述写请求队列中位于所述第一内存栅之后,且所述第二写请求集合中的写请求的数量与所述第一写请求集合中的写请求的数量的和不大于所述内存中未被占用的存储单元的数量;处理模块,用于将所述第一写请求集合中的写请求和所述第二写请求集合中的写请求并行发送至所述内存的未被占用的不同存储单...
【专利技术属性】
技术研发人员:舒继武,孙龙,王元钢,
申请(专利权)人:华为技术有限公司,清华大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。