一种数据存取方法及装置的制造方法

文档序号:10612734阅读:303来源:国知局
一种数据存取方法及装置的制造方法
【专利摘要】本发明公开了一种数据存取方法及装置,其中,该方法包括:接收写请求;判断DRAM模拟器中是否存在与所述写请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的写操作;如果否,则判断Flash模拟器中是否存在与所述写请求对应的地址,如果所述Flash模拟器中存在与所述写请求对应的地址,则利用所述Flash模拟器实现对应的写操作。由此,Flash模拟器可以作为DRAM模拟器的后备存储,从而结合DRAM模拟器和Flash模拟器大大增加系统内存的容量,解决现有技术中存在的系统内存容量小的问题。
【专利说明】
一种数据存取方法及装置
技术领域
[0001]本发明涉及非易失性混合内存技术领域,更具体地说,涉及一种数据存取方法及
目.0
【背景技术】
[0002]目前应用于计算机系统中的系统内存一般采用DRAM(DynamicRandom AccessMemory,动态随机存取存储器),这是因为DRAM具有数据存取速度快的特点,能够有效满足计算机系统对于数据存取速度的要求。
[0003]但是,随着大数据环境的来临,DRAM有限的存储容量已经不能够满足大数据环境对于系统内存的存储容量的要求;而且,由于目前DRAM的制作工艺已经达到极限,因此,并不能够通过其制作工艺的改变来增加DRAM的存储容量。
[0004]综上所述,现有技术中的系统内存DRAM存在存储容量较小的问题。

【发明内容】

[0005]本发明的目的是提供一种数据存取方法及装置,以解决现有技术中的系统内存DRAM存在的存储容量较小的问题。
[0006]为了实现上述目的,本发明提供如下技术方案:
[0007]—种数据存取方法,包括:
[0008]接收写请求;
[0009]判断DRAM模拟器中是否存在与所述写请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的写操作;如果否,则判断Flash模拟器中是否存在与所述写请求对应的地址,如果所述Flash模拟器中存在与所述写请求对应的地址,则利用所述Flash模拟器实现对应的写操作。
[0010]优选的,还包括:
[0011]接收读请求;
[0012]判断DRAM模拟器中是否存在与所述读请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的读操作;如果否,则判断Flash模拟器中是否存在与所述读请求对应的地址,如果所述Flash模拟器中存在与所述读请求对应的地址,则利用所述Flash模拟器实现对应的读操作。
[0013]优选的,还包括:
[0014]如果所述Flash模拟器中不存在与所述读请求对应的地址,则由磁盘中获取与所述读请求对应的数据,并将该数据写入所述DRAM模拟器中。
[0015]优选的,利用所述Flash模拟器实现与所述读写请求对应的读写操作,包括:
[0016]将所述Flash模拟器中与所述读请求对应的数据写入所述DRAM模拟器中,并利用所述DRAM模拟器中与所述读请求对应的数据实现对应的读操作;
[0017]将与所述写请求对应的数据写入所述Flash模拟器中,并将所述Flash模拟器中与所述写请求对应的数据写入所述DRAM模拟器中。
[0018]优选的,将数据写入所述DRAM模拟器中,包括:
[0019]按照预设替换算法由所述DRAM模拟器中选取出替换页,并将数据写入所述替换页中。
[0020]优选的,按照预设替换算法由所述DRAM模拟器中选取出替换页,包括:
[0021]由所述DRAM模拟器中选取出未被使用时间大于预设时间的页作为所述替换页。
[0022]优选的,按照预设替换算法由所述DRAM模拟器中选取出替换页之后,还包括:
[0023]判断所述替换页中的数据是否存在于所述Flash模拟器中,如果否,则将所述替换页中的数据写入所述Flash模拟器中。
[0024]优选的,判断所述替换页中的数据是否存在于所述Flash模拟器中,包括:
[0025]判断所述替换页中的数据是否为与所述写操作对应的数据,如果是,则确定所述替换页中的数据不存在于所述Flash模拟器中,如果否,则判断所述替换页中的数据是否为由所述Flash模拟器写入的数据,如果所述替换页中的数据是为由所述Flash模拟器写入的数据,则确定所述替换页中的数据存在于所述Flash模拟器中,如果所述替换页中的数据不为由所述Flash模拟器写入的数据,则确定所述替换页中的数据不存在于所述Flash模拟器中。
[0026]优选的,还包括:
[0027]定时将所述DRAM模拟器中存储的且不存在于所述Flash模拟器中的数据写入至所述Flash模拟器中。
[0028]优选的,包括混合内存控制器、DRAM模拟器及Flash模拟器,其中:
[0029]混合内存控制器接收写请求,并判断DRAM模拟器中是否存在与所述写请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的写操作;如果否,则判断Flash模拟器中是否存在与所述写请求对应的地址,如果所述Flash模拟器中存在与所述写请求对应的地址,则利用所述Flash模拟器实现对应的写操作。
[0030]本发明提供的一种数据存取方法及装置,在接收到写请求后,如果DRAM模拟器中存在与写请求对应的地址,则直接利用DRAM模拟器完成与写请求对应的写操作,如果DRAM模拟器中不存在与写请求对应的地址,而Flash模拟器中存在与写请求对应的地址,则利用Flash模拟器完成与写请求对应的写操作。通过本申请公开的上述技术特征,当DRAM模拟器不存在与写请求对应的地址时可由Falsh模拟器完成对应的写操作,可见,Flash模拟器可以作为DRAM模拟器的后备存储,而Flash模拟器能够实现与Flash同样的功能,DRAM模拟器能够实现与DRAM同样的功能,且Flash由于其存储原理具有比DRAM更大的存储容量,因此,本申请中结合DRAM模拟器和Flash模拟器能够大大增加系统内存的容量,解决现有技术中存在的系统内存容量小的问题。
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0032]图1为本发明实施例提供的一种数据存取方法的流程图;
[0033]图2为本发明实施例提供的一种数据存取装置的结构示意图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]请参阅图1,其示出了本发明实施例提供的一种数据存取方法的流程图,其执行主语均可以为数据存取装置中的混合内存控制器,具体来说,该方法可以包括以下步骤:
[0036]S1:接收写请求。
[0037]需要说明的是,接收由其他终端发送的读写请求后,可以通过对读写请求进行解析得到该请求的类型(即读请求或者是写请求)、大小及该请求对应的数据读写的地址,并创建一个事务,保存该请求的信息,然后将这个事务加入事务队列,没经过一个时钟周期,则从事务队列中取下一个事务,然后根据事务中存储的地址在DRAM(Dynamic RandomAccess Memory,动态随机存取存储器)模拟器中进行查找,即判断DRAM模拟器中是否存在与写请求对应的地址。当然,如果读写请求的数量较少,也可以直接在接收读写请求,并解析得到该请求的上述信息后,直接在DRAM模拟器中查找该请求对应的地址。还可以根据实际需要进行其他设置,均在本发明的保护范围之内。
[0038]S2:判断DRAM模拟器中是否存在与写请求对应的地址,如果是,则执行步骤S3,如果否,则执行步骤S4。
[0039]S3:利用DRAM模拟器实现对应的写操作。
[0040]DRAM模拟器具体可以为DRAMSim2,DRAM模拟器中存在与读请求或写请求对应的地址,S卩DRAM模拟器命中,贝IJ调用DRAM模拟器的读写接口,以利用该读写接口模拟DRAM真实的一次读过程或写过程,进而完成对应的读操作或者写操作。并在完成写操作后,返回写操作的状态,以通知系统这次写操作成功完成。
[0041 ] S4:判断Flash模拟器中是否存在与写请求对应的地址,如果是,则执行步骤S5,如果否,则执行步骤S6。
[0042]S5:利用Flash模拟器实现对应的写操作。
[0043]Flash(缓存)模拟器具体可以为FlashSim,Flash拟器中存在与读请求或写请求对应的地址,即Flash模拟器命中,则调用Flash模拟器的读写接口,以利用该读写接口模拟Flash真实的一次读过程或写过程,进而完成对应的读操作或者写操作。并在完成写操作后,返回写操作的状态,以通知系统这次写操作成功完成。
[0044]S6:停止操作。
[0045 ]如果DRAM模拟器及F Iash模拟器中均不存在与写请求对应的数据,则停止操作。
[0046]需要说明的是,上述实施例中的DRAM模拟器不仅可以充当Flash模拟器的缓存,对操作系统不可见,而且可以作为混合内存控制器与Flash模拟器之间的桥梁。即,混合内存控制器可以通过DRAM模拟器实现对Flash模拟器的控制;而Flash模拟器作为DRAM模拟器的后备存储。
[0047]本申请公开的上述技术特征中,当DRAM模拟器不存在与写请求对应的地址时可由Fal sh模拟器完成对应的写操作,可见,Flash模拟器可以作为DRAM模拟器的后备存储,而Flash模拟器能够实现与Flash同样的功能,DRAM模拟器能够实现与DRAM同样的功能,且Flash由于其存储原理具有比DRAM更大的存储容量,因此,本申请中结合DRAM模拟器和Flash模拟器能够大大增加系统内存的容量,解决现有技术中存在的系统内存容量小的问题。
[0048]需要说明的是,由Flash的擦写次数是有限的,数据存储单元重复擦写会导致击穿,而DRAM的耐写次数可以认为是无限的,因此,通过本申请公开的上述技术特征,减少了Flash模拟器中写入数据的次数,从而减少了 Flash模拟器的擦写次数,降低了成本。另外,利用存取速度较快且具有无限擦除次数的DRAM模拟器作为大容量且具有非易失性的Flash模拟器的缓存,能够在提供较高的数据写入速度的同时,提供更大的存储容量,以充分发挥上述两种模拟器的优势同时一定程度上避免各自的缺陷来提高系统的整体性能。
[0049]本发明实施例提供的一种数据存取方法中,还可以包括:
[0050]接收读请求;
[0051 ]判断DRAM模拟器中是否存在与读请求对应的地址,如果是,则利用DRAM模拟器实现对应的读操作;如果否,则判断Flash模拟器中是否存在与读请求对应的地址,如果Flash模拟器中存在与读请求对应的地址,则利用Flash模拟器实现对应的读操作;如果Flash模拟器中不存在与读请求对应的地址,则停止操作。
[0052]需要说明的是,本发明实施例中对于读写请求的类型为读请求的上述实现步骤与读写请求的类型为写请求中对应实现步骤基本一致,在此不再赘述。主要区别在于,读写请求为写请求时,写操作完成后,返回写操作状态,以通知系统写操作成功完成;而读写请求为读请求时,读操作完成后,返回与读请求对应的数据,以供系统获取。
[0053]本发明实施例提供的一种数据存取方法中,还可以包括:
[0054]如果Flash模拟器中不存在与读请求对应的地址,则由磁盘中获取与读请求对应的数据,并将该数据写入DRAM模拟器中。
[0055]需要说明的是,一般情况下,如果读写请求为写请求,则一定能够在DRAM模拟器或者Flash模拟器中查找到对应的地址;可以如果读写请求为读请求,可能存在在DRAM模拟器及Flash模拟器中均查找不到对应的地址的情况,此时,就会形成缺页;因此,需要由磁盘中获取与读请求对应的数据,而为了下次再接收到该读请求时能够提供对应的数据,还要将由磁盘中获取的数据写入DRAM模拟器中,从而能够大大减少因缺页而产生的磁盘访问请求,提升系统性能。
[0056]本发明实施例提供的一种数据存取方法中,利用Flash模拟器实现与读写请求对应的读写操作,可以包括:
[0057]将Flash模拟器中与读请求对应的数据写入DRAM模拟器中,并利用DRAM模拟器中与读请求对应的数据实现对应的读操作;
[0058]将与写请求对应的数据写入Flash模拟器中,并将Flash模拟器中与写请求对应的数据写入DRAM模拟器中。
[0059]其中,如果读写请求为读请求,则需要将Flash模拟器中与读请求对应的数据写入DRAM模拟器中,已由DRAM模拟器实现与读请求对应的读操作,即实现与读请求对应的数据的返回。而如果读写请求为写请求,则可直接将数据写入Flash模拟器中,但是,还是需要将与写请求对应的数据写入DRAM模拟器中,以在下次对该数据有需求时,可以由DRAM模拟器中直接获取。从而进一步减少在Flash模拟器中进行的数据存取次数,提升系统性能。
[0060]本发明实施例提供的一种数据存取方法中,将数据写入DRAM模拟器中,可以包括:
[0061]按照预设替换算法由DRAM模拟器中选取出替换页,并将数据写入替换页中。
[0062]其中,将数据写入DRAM模拟器中,可以包括将磁盘中的数据写入DRAM模拟器中,也可以包括将Flash模拟器中的数据写入DRAM模拟器中,以及其他将数据写入DRAM模拟器中的情况。
[0063]需要说明的是,替换页可以为空白页也可以为具有数据的页,当其为空白页时,可以直接将数据写入替换页,而当我为具有数据的页时,可以在按照预设替换算法由DRAM模拟器中选取出替换页之后,还包括:
[0064]判断替换页中的数据是否存在于Flash模拟器中,如果否,则将替换页中的数据写入Flash模拟器中。
[0065]需要说明的是,在将数据写入替换页之前,可以判断替换页中的数据是否存在于Flash模拟器中,如果不存在,则为了避免数据丢失,需要将替换页的数据写入Flash模拟器中,如果存在,则可以直接将数据写入替换页中。
[0066]而按照预设替换算法由DRAM模拟器中选取出替换页,可以包括:
[0067]由DRAM模拟器中选取出未被使用时间大于预设时间的页作为替换页。
[0068]具体来说,预设时间可以根据实际需要进行确定,而预设替换算法也可以根据实际需要进行确定,本实施例中,选取未被使用时间大于预设时间的页作为替换页,即选取在一定时间段内未被进行读操作及写操作的页作为替换页,该替换页中的数据很可能在短期内不会被用到,因此,利用上述方案确定替换页可以在一定程度上减少数据的存取次数。
[0069]本发明实施例提供的一种数据存取方法中,判断替换页中的数据是否存在于Flash模拟器中,可以包括:
[0070]判断替换页中的数据是否为与写操作对应的数据,如果是,则确定替换页中的数据不存在于Flash模拟器中,如果否,则判断替换页中的数据是否为由Flash模拟器写入的数据,如果替换页中的数据是为由Flash模拟器写入的数据,则确定替换页中的数据存在于Flash模拟器中,如果替换页中的数据不为由Flash模拟器写入的数据,则确定替换页中的数据不存在于Flash模拟器中。
[0071]具体在实现时,可以在写操作完成时,将写操作对应的DRAM中页的脏位D置I,表示该页被执行过写操作。如果替换页的脏位D为I,则生成一个携带有替换页中数据的Flash写命令并加入Flash写队列,然后调用DRAM模拟器中写接口,将数据写入替换页中。如果替换页的脏位D为0,还需要判断替换页的P位是否为0,如果替换页的P位为0,表示该页中的数据不为由Flah模拟器写入的数据,则生成一个携带有替换页中数据的Flash写命令并加入Flash写队列,然后调用DRAM模拟器中写接口,将数据写入替换页中。如果替换页的P位为I,表示该页中的数据为由Flash模拟器写入的数据,则说明Flash模拟器中存在替换页中的数据,此时,只需直接将数据写入DRAM中即可。由此,能够保证数据不被丢失。
[0072]其中,在每次需要向Flash模拟器中写数据时,需可以生成对应的Flash写命令并加入Flash写队列中,直到Flash写队列中的数据达到预先设定的值时,再一次性将其写入Flash模拟器中,从而减少写入Flash模拟器的次数,减少了写Flash模拟器的开销,提高了系统性能。对应的,在将磁盘中的数据写入DRAM中时,可以同时在Flash模拟器中为该页自动分配一个页表项并预留空间,以方便在后期写入。
[0073]另外,本发明实施例提供的一种数据存取方法中,还可以包括:
[0074]定时将DRAM模拟器中存储的且不存在于Flash模拟器中的数据写入至Flash模拟器中。
[0075]以保证Flash模拟器中能够包含DRAM模拟器中包含的全部数据,避免数据丢失。
[0076]与上述方法实施例相对应,本发明实施例还提供了一种数据存取装置,如图2所示,可以包括混合内存控制器1、DRAM模拟器2及Flash模拟器3,其中:
[0077]混合内存控制器I接收写请求,并判断DRAM模拟器2中是否存在与写请求对应的地址,如果是,则利用DRAM模拟器2实现对应的写操作;如果否,则判断Flash模拟器3中是否存在与写请求对应的地址,如果Flash模拟器3中存在与写请求对应的地址,则利用Flash模拟器3实现对应的写操作。
[0078]其中,混合内存控制器可以分为前端和后端两部分,前端部分(Front-end)负责缓存上层发下来的读写请求和对上层读写请求的反馈,给上层系统提供一个接口,下层存储介质对它是透明的;后端部分(Back-end)则需要为下层存储介质提供一个接口,同时下层存储介质对这一部分也是透明的。当混合内存控制器接收读写请求后,需要判断由DRAM模拟器响应还是由Flash模拟器响应这个请求,这个功能可以由混合内存控制器中的请求调度器来完成。
[0079]本发明实施例还提供了一种数据存取装置,混合内存控制器还可以接收读请求;判断DRAM模拟器中是否存在与读请求对应的地址,如果是,则利用DRAM模拟器实现对应的读操作;如果否,则判断Flash模拟器中是否存在与读请求对应的地址,如果Flash模拟器中存在与读请求对应的地址,则利用Flash模拟器实现对应的读操作。
[0080]本发明实施例还提供了一种数据存取装置,混合内存控制器还可以用于如果Flash模拟器中不存在与读请求对应的地址,则由磁盘中获取与读请求对应的数据,并将该数据写入DRAM模拟器中。
[0081]本发明实施例还提供了一种数据存取装置,混合内存控制器可以包括:
[0082]读请求执行模块,用于将Flash模拟器中与读请求对应的数据写入DRAM模拟器中,并利用DRAM模拟器中与读请求对应的数据实现对应的读操作;
[0083]写请求执行模块,用于将与写请求对应的数据写入Flash模拟器中,并将Flash模拟器中与写请求对应的数据写入DRAM模拟器中。
[0084]本发明实施例还提供了一种数据存取装置,读请求执行模块和写请求执行模块均可以包括:
[0085]选取单元,用于按照预设替换算法由DRAM模拟器中选取出替换页,并将数据写入替换页中。
[0086]本发明实施例还提供了一种数据存取装置,选取单元包括:
[0087]选取子单元,用于由DRAM模拟器中选取出未被使用时间大于预设时间的页作为替换页。
[0088]本发明实施例还提供了一种数据存取装置,混合内存控制器还可以包括:
[0089]判断模块,用于判断替换页中的数据是否存在于Flash模拟器中,如果否,则将替换页中的数据写入Flash模拟器中。
[0090]本发明实施例还提供了一种数据存取装置,判断模块可以包括:
[0091]判断单元,用于判断替换页中的数据是否为与写操作对应的数据,如果是,则确定替换页中的数据不存在于Flash模拟器中,如果否,则判断替换页中的数据是否为由Flash模拟器写入的数据,如果替换页中的数据是为由Flash模拟器写入的数据,则确定替换页中的数据存在于Flash模拟器中,如果替换页中的数据不为由Flash模拟器写入的数据,则确定替换页中的数据不存在于Flash模拟器中。
[0092]本发明实施例还提供了一种数据存取装置,混合内存控制器还可以包括:
[0093]数据更新模块,用于定时将DRAM模拟器中存储的且不存在于Flash模拟器中的数据写入至Flash模拟器中。
[0094]本发明实施例提供的一种数据存取装置中相关部分的说明请参见本发明实施例提供的一种数据存取方法中对应部分的详细说明,在此不再赘述。
[0095]对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据存取方法,其特征在于,包括: 接收写请求; 判断DRAM模拟器中是否存在与所述写请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的写操作;如果否,则判断Flash模拟器中是否存在与所述写请求对应的地址,如果所述Flash模拟器中存在与所述写请求对应的地址,则利用所述Flash模拟器实现对应的写操作。2.根据权利要求1所述的方法,其特征在于,还包括: 接收读请求; 判断DRAM模拟器中是否存在与所述读请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的读操作;如果否,则判断Flash模拟器中是否存在与所述读请求对应的地址,如果所述Flash模拟器中存在与所述读请求对应的地址,则利用所述Flash模拟器实现对应的读操作。3.根据权利要求2所述的方法,其特征在于,还包括: 如果所述Flash模拟器中不存在与所述读请求对应的地址,则由磁盘中获取与所述读请求对应的数据,并将该数据写入所述DRAM模拟器中。4.根据权利要求2所述的方法,其特征在于,利用所述Flash模拟器实现与所述读写请求对应的读写操作,包括: 将所述Flash模拟器中与所述读请求对应的数据写入所述DRAM模拟器中,并利用所述DRAM模拟器中与所述读请求对应的数据实现对应的读操作; 将与所述写请求对应的数据写入所述Flash模拟器中,并将所述Flash模拟器中与所述写请求对应的数据写入所述DRAM模拟器中。5.根据权利要求3或4所述的方法,其特征在于,将数据写入所述DRAM模拟器中,包括: 按照预设替换算法由所述DRAM模拟器中选取出替换页,并将数据写入所述替换页中。6.根据权利要求5所述的方法,其特征在于,按照预设替换算法由所述DRAM模拟器中选取出替换页,包括: 由所述DRAM模拟器中选取出未被使用时间大于预设时间的页作为所述替换页。7.根据权利要求5所述的方法,其特征在于,按照预设替换算法由所述DRAM模拟器中选取出替换页之后,还包括: 判断所述替换页中的数据是否存在于所述Flash模拟器中,如果否,则将所述替换页中的数据写入所述Flash模拟器中。8.根据权利要求7所述的方法,其特征在于,判断所述替换页中的数据是否存在于所述Flash模拟器中,包括: 判断所述替换页中的数据是否为与所述写操作对应的数据,如果是,则确定所述替换页中的数据不存在于所述Flash模拟器中,如果否,则判断所述替换页中的数据是否为由所述Flash模拟器写入的数据,如果所述替换页中的数据是为由所述Flash模拟器写入的数据,则确定所述替换页中的数据存在于所述Flash模拟器中,如果所述替换页中的数据不为由所述Flash模拟器写入的数据,则确定所述替换页中的数据不存在于所述Flash模拟器中。9.根据权利要求1所述的方法,其特征在于,还包括: 定时将所述DRAM模拟器中存储的且不存在于所述Flash模拟器中的数据写入至所述Flash模拟器中。10.—种数据存取装置,其特征在于,包括混合内存控制器、DRAM模拟器及Flash模拟器,其中: 混合内存控制器接收写请求,并判断DRAM模拟器中是否存在与所述写请求对应的地址,如果是,则利用所述DRAM模拟器实现对应的写操作;如果否,则判断Flash模拟器中是否存在与所述写请求对应的地址,如果所述Flash模拟器中存在与所述写请求对应的地址,则利用所述Flash模拟器实现对应的写操作。
【文档编号】G06F12/0893GK105975406SQ201610282531
【公开日】2016年9月28日
【申请日】2016年4月29日
【发明人】王丽, 陈继承, 王洪伟, 赵雅倩
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1