CN105786721A - 一种内存地址映射管理方法及处理器 - Google Patents
一种内存地址映射管理方法及处理器 Download PDFInfo
- Publication number
- CN105786721A CN105786721A CN201410827668.3A CN201410827668A CN105786721A CN 105786721 A CN105786721 A CN 105786721A CN 201410827668 A CN201410827668 A CN 201410827668A CN 105786721 A CN105786721 A CN 105786721A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory space
- relief area
- page
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种内存地址映射管理方法及处理器,该方法包括:处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数;依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。该发明的有益效果为:解决外部存储器读写性能低下,断电或者死机DRAM无法保存数据的问题,配合异构混合内存存储方式的工业服务器的硬件架构,通过NVM内存地址映射的关系实现NVM内存的读写管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存地址映射管理方法及处理器。
背景技术
传统的服务器采用两级存储机制,CPU首先从内部存储存单元中寻找所需的数据,当数据不在内存中时再从外部存储(硬盘)中调取数据。CPU和内存之间的速度差别通过多级缓存得到了解决,但内存与外存之间的速度差距越来越大,达到了10万倍。在大数据处理场合,频繁地访问外存会导致整个系统性能大幅度下降,成为系统性能的瓶颈,制约了数据的访问速度。
现有的技术采用RAID0(RAID0又称为Stripe或Striping,代表了所有RAID级别中最高的存储性能。)方式来提升外部存储(硬盘)的读写速率,也就是通过多个外部存储设备并行读写的方式来提升整体速率,但服务器的基本数据存取架构并没有改变。比如,用两块硬盘来组成RAID0,那么理论速率能够提升到单块硬盘的两倍,但实际速率会低于这个数值。这是因为,采用RAID0方式来提升外部存储(硬盘)的读写速率的方式并没有改变传统服务器平台的存取架构,在这种方式下IO访问瓶颈仍然存在,CPU仍然要通过速率相对较低的IO总线来访问外部存储设备,这就决定了采用这种方式对速率的提升是有条件的,会受到IO访问速率的限制。
现有技术中采用NVDIMM(NVDIMM是在一种集成了DRAM+非易失性内存芯片的内存条规格,能够在完全断电的时候依然保存完整内存数据)方式提高数据的安全性,即在服务器普通内存的基础上加上等容量或更大容量的Flash,平时正常工作时服务器只能访问普通内存(DRAM)的部分,在服务器掉电瞬间NVDIMM会将DRM数据备份到Flash中,下次恢复供电时,系统又会从Flash中将数据恢复到DRAM里,整个系统恢复到断电前的状态。NVDIMM的方式虽然提高了数据的安全性,但是需要与DRAM同等容量的Flash做备份,Flash在系统下不可见,仅在掉电和恢复时才可以使用,导致存储空间利用率很低。同时,从DRAM复制数据到Flash需要一定的时间,DRAM容量越大,复制时间会越长,为完成复制所需要的备用电源也就越大,这就决定了采用NVDIMM的方式内存容量无法做到很大,限制了这一技术不适合在大数据服务器的推广应用。
针对此种情况,在异构混合内存存储方式的工业服务器中需要对NVM内存地址映射进行管理,因此需要开发一种特定的NVM内存地址映射和缓冲区管理方法,来配合实现NVM的读写功能。
发明内容
本发明要解决的技术问题在于,针对上述现有技术中传统服务器架构对外部存储大数据访问的瓶颈,以及在异常断电、死机情况下,无法有效地保护内存数据的问题,提供一种内存地址映射管理方法及处理器。
本发明解决其技术问题所采用的技术方案是:一方面,构造一种内存地址映射管理方法,包括:
处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数;其中,所述缓冲区页面状态表记录多个所述物理地址的页段信息以及缓冲区的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区的多个存储空间;
依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。
在本发明所述的内存地址映射管理方法中,所述处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数之前,还包括:
所述处理器向所述内存模块发出读数据的读请求信息。
在本发明所述的内存地址映射管理方法中,所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段,包括以下子步骤:
S11、判断所述缓冲区是否打开待读数据所在的存储空间,若是,则从所述存储空间读取对应的数据;若否,则转至步骤S12;
S12、判断所述缓冲区中是否存在空闲的存储空间,若是,则根据所述物理地址将页段的数据读取至所述空闲的存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表;若否,则转至步骤S13;
S13、依据所述访问次数,获取访问次数最少的存储空间;
S14、依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更,若否,则根据所述物理地址将页段的数据覆盖所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表;若是,转至步骤S15;
S15、将所述存储空间所存储的内容转存至存储体,根据所述物理地址将页段的数据读取至所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表。
在本发明所述的内存地址映射管理方法中,所述步骤S14还包括,若所述访问次数最少的存储空间的状态已变更,并根据所述访问次数所获取的存储空间的数量超过预设比例时,将所述访问次数最少的存储空间所存储的内容转存至所述存储体,并修改对应的存储空间的变更状态。
在本发明所述的内存地址映射管理方法中,所述处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数之前,还包括:
所述处理器向所述内存模块发出写数据的写请求信息。
在本发明所述的内存地址映射管理方法中,所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段,包括以下子步骤:
S21、判断所述缓冲区是否打开待写数据所在的存储空间,若是,则将对应的数据写入所述存储空间;若否,则转至步骤S22;
S22、判断所述缓冲区中是否存在空闲的存储空间,若是,则执行步骤S23;若否,则执行步骤S24;
S23、判断待写数据是否为整页的数据,若是,则将所述待写数据写入至所述空闲的存储空间,并更新所述缓冲区页面状态表;若否,则读取待写数据所在的页段,更新所述缓冲区页面状态表后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态;
S24、判断待写数据是否为整页的数据,若是,根据所述访问次数所获取的存储空间所存储的内容转存至存储体,将所述待写数据写入至所述存储空间,并修改所述变更状态;若否,则读取待写数据所在的页段,根据所述访问次数所获取的存储空间所存储的内容转存至存储体,更新所述缓冲区页面状态表后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态。
在本发明所述的内存地址映射管理方法中,所述步骤S21之前还包括:
S20、当所述内存模块的缓存空闲时,响应所述写请求信息。
另一方面,提供一种处理器,包括:
访问模块,用于访问内存模块的物理地址;
测取模块,用于获取缓冲区页面状态表中对应的变更状态及访问次数;其中,所述缓冲区页面状态表记录多个所述物理地址的页段信息以及缓冲区的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区的多个存储空间;
分析模块,用于依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。
在本发明所述的处理器中,还包括:
请求模块,用于向所述内存模块发出读数据的读请求信息和/或发出写数据的写请求信息。
在本发明所述的处理器中,所述分析模块包括:
第一读数据判断单元,用于判断所述缓冲区是否打开待读数据所在的存储空间;
第二读数据判断单元,用于判断所述缓冲区中是否存在空闲的存储空间;
读数据测量单元,用于依据所述访问次数,获取访问次数最少的存储空间;
第三读数据判断单元,用于依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更;
第一写数据判断单元,用于判断所述缓冲区是否打开待写数据所在的存储空间;
第二写数据判断单元,用于判断所述缓冲区中是否存在空闲的存储空间;
第三写数据判断单元,用于在所述缓存区存在空闲的存储空间时,判断待写数据是否为整页的数据;
第四写数据判断单元,用于在所述缓存区不存在空闲的存储空间时,判断待写数据是否为整页的数据。
上述公开的一种内存地址映射管理方法及处理器具有以下有益效果:解决外部存储器读写性能低下,断电或者死机DRAM无法保存数据的问题,配合异构混合内存存储方式的工业服务器的硬件架构,通过NVM内存地址映射的关系实现NVM内存的读写管理。
附图说明
图1为一种异构混合内存组件的结构框图;
图2为本发明提供的一种内存地址映射管理方法的流程图;
图3为本发明提供的内存地址映射与缓冲区的关系示意图;
图4为本发明提供的读数据的流程图;
图5为本发明提供的写数据的流程图;
图6为本发明第一实施例提供的处理器的结构框图;
图7为本发明第二实施例提供的处理器的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供了一种内存地址映射管理方法及处理器,其中,本发明采用异构混合内存存储方式的工业服务器的硬件架构100(参见图1,图1为一种异构混合内存组件的结构框图,即硬件架构100,该异构内存组件包括内存控制器1、存储体2以及缓冲区3),主要应用于NVM内存模块中,即内存控制器1优选为NVM控制器,存储体2优选为NVM存储器。NVM内存模块所存储的数据按页进行划分,每页数据4KB,与系统管理的页大小相同。NVM的缓冲区3同样按4KB为一个区域来划分,如果采用1GB的缓冲区3,则可划分出262144个区域,每个区域可放置一页数据。在NVM控制器中利用缓冲区页面状态表10进行管理,缓冲区页面状态表10分别记录了数据页在缓冲区3中的页号(0~262143)、在NVM中的页段和状态,状态信息又包括了Dirty(变更状态),Access(访问次数)。通过缓冲区页面状态表10,可以很容易地获取数据在缓冲区3和NVM中的对应关系,以及数据的使用情况。缓冲区3中的数据页通过缓冲区页面状态表10的对应关系写入NVM存储器中,相反地,从NVM存储器中读取数据页时控制器更新缓冲区页面状态表10。
参见图2,图2为本发明提供的一种内存地址映射管理方法的流程图,该方法包括:
S1、处理器访问内存模块的物理地址,获取缓冲区页面状态表10中对应的变更状态及访问次数;其中,所述缓冲区页面状态表10记录多个所述物理地址的页段信息以及缓冲区3的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区3的多个存储空间;如图3,图3为本发明提供的内存地址映射与缓冲区的关系101示意图,该关系101涉及缓冲区页面状态表10、存储体2以及缓冲区3,缓冲区页面状态表10记录有序号(对应物理地址的页号及缓冲区3对应的存储空间)、页段(对应物理地址的页段及存储体2对应的页段地址)以及状态,该状态包括变更状态(Dirty)及访问次数(Access)。
S2、依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。如图3,序号和页段都具有相应的状态,分析状态的变更状态及访问次数之后,确定最佳的访问页段。
参见图4,图4为本发明提供的读数据的流程图,该读数据的流程包括:
在所述处理器访问内存模块的物理地址,获取缓冲区页面状态表10中对应的变更状态及访问次数之前,所述处理器向所述内存模块发出读数据的读请求信息。由于缓冲区3空间远小于NVM存储器的存储空间,缓冲区3不可能无限制地加载页面数量,控制器还需要对缓冲区3的读写时机进行管理。以下的实施例内容均以存储体2为NVM存储器为例。
所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段的步骤,包括以下子步骤:
S11、判断所述缓冲区3是否打开待读数据所在的存储空间,若是,则从所述存储空间读取对应的数据,即当缓冲区3已经打开了待读数据所在的页,这是直接从缓冲区3读取对应的数据;若否,则转至步骤S12;
S12、判断所述缓冲区3中是否存在空闲的存储空间,若是,则根据所述物理地址将页段的数据读取至所述空闲的存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10,这种情况是缓冲区3中有空闲的空间,此时直接从NVM存储器中将数据页读取到缓冲区3,同时更新缓冲区页面状态表10的信息;若否,则转至步骤S13;
S13、依据所述访问次数,获取访问次数最少的存储空间;即缓冲区3中没有空闲的空间,此时先从缓冲区页面状态表10中获取不同页号的Access(访问次数),先判断出访问次数最少的页号。
S14、依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更,若否,则根据所述物理地址将页段的数据覆盖所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10,例如:判断访问次数最少页号的Dirty(是否变更)位,如果没有变更则直接从NVM存储器中将数据页读取到缓冲区3的这一区域覆盖,同时更新缓冲区页面状态表10的信息;若是,转至步骤S15;
S15、将所述存储空间所存储的内容转存至存储体,根据所述物理地址将页段的数据读取至所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10。即先将此数据页写入NVM存储器中释放这一空间,再从NVM存储器中将需求的数据页读出来,同时更新缓冲区页面状态表10的信息。
由于步骤S15会导致在下次读数据时需要先回写再读取的情况发生,为了解决该问题,可在步骤S14中添加如下替换S15的步骤,该步骤为:若所述访问次数最少的存储空间的状态已变更,并根据所述访问次数所获取的存储空间的数量超过预设比例时,将所述访问次数最少的存储空间所存储的内容转存至所述存储体,并修改对应的存储空间的变更状态。该补充的步骤解决了步骤S15中会占用较多的时间所带来的问题,例如:在缓冲区3占用超过90%时且NVM存储器读写状态空闲时内存控制器1会自动对访问次数较少且存在变更过的数据写入NVM存储器中,同时修改对应页号的Dirty(是否变更)位,以减少在下次读数据时需要先回写再读取的情况发生。
参见图5,图5为本发明提供的写数据的流程图,该写流程包括:
在所述处理器访问内存模块的物理地址,获取缓冲区页面状态表10中对应的变更状态及访问次数之前,所述处理器向所述内存模块发出写数据的写请求信息。
所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段的步骤中,包括以下子步骤:
S20、当所述内存模块的缓存空闲时,响应所述写请求信息。该步骤是为了数据因被覆盖而丢失,故当内存控制器1的缓存(Cache)空闲时允许写入,即数据从Cache向缓冲区3转移。
S21、判断所述缓冲区3是否打开待写数据所在的存储空间,若是,则将对应的数据写入所述存储空间,例如,缓冲区3中已经打开了对应的页,此时数据直接写入缓冲区3,即缓冲区3中已经打开了对应的页,此时数据直接写入缓冲区3;若否,则转至步骤S22;
S22、判断所述缓冲区3中是否存在空闲的存储空间,若是,则执行步骤S23;若否,则执行步骤S24;
S23、判断待写数据是否为整页的数据,若是,则将所述待写数据写入至所述空闲的存储空间,并更新所述缓冲区页面状态表10;若否,则读取待写数据所在的页段,更新所述缓冲区页面状态表10后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态;例如:缓冲区3中没有打开对应的页但是有空闲的空间,同时写入的是整页的数据,这种情况下直接写入缓冲区3的空闲空间,并更新缓冲区页面状态表10;缓冲区3中没有打开对应的页但是有空闲的空间,同时写入的不是整页的数据,这种情况下需要先从NVM存储器中读取数据所在的页,更新缓冲区页面状态表10,再写入数据,并在缓冲区页面状态表10中将Dirty(是否变更)位修改为变更,这种情况效率较低,在系统驱动层应尽量避免,但作为方案的完整性和特殊情况应用而保留。
S24、判断待写数据是否为整页的数据,若是,根据所述访问次数所获取的存储空间所存储的内容转存至存储体2,将所述待写数据写入至所述存储空间,并修改所述变更状态;若否,则读取待写数据所在的页段,根据所述访问次数所获取的存储空间所存储的内容转存至存储体2,更新所述缓冲区页面状态表10后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态。例如:缓冲区3中没有打开对应的页也没有空闲的空间,同时写入的是整页的数据,此时通过LRU算法(LeastRecentlyUsed算法,即近期最少使用算法)将缓冲区3中使用较少的页调出(根据访问次数所得到的较少的页,该些页段可设置为小于一预设值,该些页段存入NVM存储器中,如果Dirty位显示为无变更则直接丢弃数据页),然后写入数据,并更新缓冲区页面状态表10;缓冲区3中没有打开对应的页也没有空闲的空间,同时写入的不是整页的数据,则先从NVM存储器中读取数据所在的页,通过LRU算法将缓冲区3中使用较少的页调出,然后写入数据,并更新缓冲区页面状态表10,并在缓冲区页面状态表10中将Dirty(是否变更)位修改为变更,这种情况同样效率较低,在系统驱动层应尽量避免,也就是应写入整页数据。
缓冲区3与NVM的数据交互因为有缓冲区页面状态表10的存在变得相对简单,控制器获取缓冲区页面状态表10中的页号和NVM页段信息,从缓冲区3对应页号获取的数据页写入对应的NVM页段地址,反过来从NVM页段地址读取的数据写入缓冲区3的同时,控制器分配新的页号并记录到缓冲区页面状态表10中。
参见图6,图6为本发明第一实施例提供的处理器200的结构框图,该处理器200包括:
访问模块201,用于访问内存模块的物理地址;访问模块相当于处理器200与内存组件的接口模块。
测取模块202,用于获取缓冲区页面状态表10中对应的变更状态及访问次数;其中,所述缓冲区页面状态表10记录多个所述物理地址的页段信息以及缓冲区3的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区3的多个存储空间。
分析模块203,用于依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。访问模块201、测取模块202以及分析模块203均可通过处理器200植入相应的程序实现。
参见图7,图7为本发明第二实施例提供的处理器200的结构框图,该实施例不同于上一实施例之处在于,处理器200还包括请求模块204,该请求模块204用于向所述内存模块发出读数据的读请求信息和/或发出写数据的写请求信息。
此外,针对于缓冲区页面状态表10的分析过程,所述分析模块203包括:
第一读数据判断单元,用于判断所述缓冲区3是否打开待读数据所在的存储空间,若是,则从所述存储空间读取对应的数据;若否,则将数据转至第二读数据判断单元处理。
第二读数据判断单元,用于判断所述缓冲区3中是否存在空闲的存储空间;若是,则根据所述物理地址将页段的数据读取至所述空闲的存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10;若否,则将数据转至读数据测量单元处理。
读数据测量单元,用于依据所述访问次数,获取访问次数最少的存储空间。
第三读数据判断单元,用于依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更;若否,则根据所述物理地址将页段的数据覆盖所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10;若是,将所述存储空间所存储的内容转存至存储体2,根据所述物理地址将页段的数据读取至所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表10。
第一写数据判断单元,用于判断所述缓冲区3是否打开待写数据所在的存储空间;若是,则将对应的数据写入所述存储空间;若否,则将数据转至第二写数据判断单元处理。
第二写数据判断单元,用于判断所述缓冲区3中是否存在空闲的存储空间;若是,则将数据转至第三写数据判断单元处理;若否,则将数据转至第四数据判断单元处理。
第三写数据判断单元,用于在所述缓存区3存在空闲的存储空间时,判断待写数据是否为整页的数据;若是,则将所述待写数据写入至所述空闲的存储空间,并更新所述缓冲区页面状态表10;若否,则读取待写数据所在的页段,更新所述缓冲区页面状态表10后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态。
第四写数据判断单元,用于在所述缓存区3不存在空闲的存储空间时,判断待写数据是否为整页的数据。若是,根据所述访问次数所获取的存储空间所存储的内容转存至存储体2,将所述待写数据写入至所述存储空间,并修改所述变更状态;若否,则读取待写数据所在的页段,根据所述访问次数所获取的存储空间所存储的内容转存至存储体2,更新所述缓冲区页面状态表10后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种内存地址映射管理方法,其特征在于,包括:
处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数;其中,所述缓冲区页面状态表记录多个所述物理地址的页段信息以及缓冲区的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区的多个存储空间;
依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。
2.根据权利要求1所述的内存地址映射管理方法,其特征在于,所述处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数之前,还包括:
所述处理器向所述内存模块发出读数据的读请求信息。
3.根据权利要求2所述的内存地址映射管理方法,其特征在于,所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段,包括以下子步骤:
S11、判断所述缓冲区是否打开待读数据所在的存储空间,若是,则从所述存储空间读取对应的数据;若否,则转至步骤S12;
S12、判断所述缓冲区中是否存在空闲的存储空间,若是,则根据所述物理地址将页段的数据读取至所述空闲的存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表;若否,则转至步骤S13;
S13、依据所述访问次数,获取访问次数最少的存储空间;
S14、依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更,若否,则根据所述物理地址将页段的数据覆盖所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表;若是,转至步骤S15;
S15、将所述存储空间所存储的内容转存至存储体,根据所述物理地址将页段的数据读取至所述存储空间,通过所述存储空间读取对应的数据,并更新所述缓冲区页面状态表。
4.根据权利要求3所述的内存地址映射管理方法,其特征在于,所述步骤S14还包括,若所述访问次数最少的存储空间的状态已变更,并根据所述访问次数所获取的存储空间的数量超过预设比例时,将所述访问次数最少的存储空间所存储的内容转存至所述存储体,并修改对应的存储空间的变更状态。
5.根据权利要求1所述的内存地址映射管理方法,其特征在于,所述处理器访问内存模块的物理地址,获取缓冲区页面状态表中对应的变更状态及访问次数之前,还包括:
所述处理器向所述内存模块发出写数据的写请求信息。
6.根据权利要求5所述的内存地址映射管理方法,其特征在于,所述依据所述变更状态及访问次数,确定所访问的所述物理地址的页段,包括以下子步骤:
S21、判断所述缓冲区是否打开待写数据所在的存储空间,若是,则将对应的数据写入所述存储空间;若否,则转至步骤S22;
S22、判断所述缓冲区中是否存在空闲的存储空间,若是,则执行步骤S23;若否,则执行步骤S24;
S23、判断待写数据是否为整页的数据,若是,则将所述待写数据写入至所述空闲的存储空间,并更新所述缓冲区页面状态表;若否,则读取待写数据所在的页段,更新所述缓冲区页面状态表后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态;
S24、判断待写数据是否为整页的数据,若是,根据所述访问次数所获取的存储空间所存储的内容转存至存储体,将所述待写数据写入至所述存储空间,并修改所述变更状态;若否,则读取待写数据所在的页段,根据所述访问次数所获取的存储空间所存储的内容转存至存储体,更新所述缓冲区页面状态表后将所述待写数据写入至所述空闲的存储空间,并修改所述变更状态。
7.根据权利要求6所述的内存地址映射管理方法,其特征在于,所述步骤S21之前还包括:
S20、当所述内存模块的缓存空闲时,响应所述写请求信息。
8.一种处理器,其特征在于,包括:
访问模块,用于访问内存模块的物理地址;
测取模块,用于获取缓冲区页面状态表中对应的变更状态及访问次数;其中,所述缓冲区页面状态表记录多个所述物理地址的页段信息以及缓冲区的多个存储空间的变更状态及访问次数,多个所述物理地址的页段信息对应于所述缓冲区的多个存储空间;
分析模块,用于依据所述变更状态及访问次数,确定所访问的所述物理地址的页段。
9.根据权利要求8所述的处理器,其特征在于,还包括:
请求模块,用于向所述内存模块发出读数据的读请求信息和/或发出写数据的写请求信息。
10.根据权利要求9所述的处理器,其特征在于,所述分析模块包括:
第一读数据判断单元,用于判断所述缓冲区是否打开待读数据所在的存储空间;
第二读数据判断单元,用于判断所述缓冲区中是否存在空闲的存储空间;
读数据测量单元,用于依据所述访问次数,获取访问次数最少的存储空间;
第三读数据判断单元,用于依据所述变更状态判断所述访问次数最少的存储空间的状态是否变更;
第一写数据判断单元,用于判断所述缓冲区是否打开待写数据所在的存储空间;
第二写数据判断单元,用于判断所述缓冲区中是否存在空闲的存储空间;
第三写数据判断单元,用于在所述缓存区存在空闲的存储空间时,判断待写数据是否为整页的数据;
第四写数据判断单元,用于在所述缓存区不存在空闲的存储空间时,判断待写数据是否为整页的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410827668.3A CN105786721A (zh) | 2014-12-25 | 2014-12-25 | 一种内存地址映射管理方法及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410827668.3A CN105786721A (zh) | 2014-12-25 | 2014-12-25 | 一种内存地址映射管理方法及处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105786721A true CN105786721A (zh) | 2016-07-20 |
Family
ID=56389445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410827668.3A Pending CN105786721A (zh) | 2014-12-25 | 2014-12-25 | 一种内存地址映射管理方法及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786721A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776361A (zh) * | 2017-03-10 | 2017-05-31 | 安徽大学 | 一种面向大规模非易失性存储介质的缓存方法和系统 |
CN107329696A (zh) * | 2017-06-23 | 2017-11-07 | 华中科技大学 | 一种保证数据崩溃一致性的方法及系统 |
CN107817945A (zh) * | 2016-09-13 | 2018-03-20 | 中国科学院微电子研究所 | 一种混合内存结构的数据读取方法和系统 |
WO2018119773A1 (zh) * | 2016-12-28 | 2018-07-05 | 华为技术有限公司 | 非易失内存访问方法、装置和系统 |
CN108845959A (zh) * | 2018-06-25 | 2018-11-20 | 联想(北京)有限公司 | 一种内存数据处理方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055532A1 (en) * | 2003-09-05 | 2005-03-10 | James Yu | Method for efficiently controlling read/write of flash memory |
US20050240715A1 (en) * | 2004-04-22 | 2005-10-27 | Desai Kiran R | K-way direct mapped cache |
CN101714065A (zh) * | 2009-11-24 | 2010-05-26 | 西安奇维测控科技有限公司 | 一种闪存控制器的映射信息管理方法 |
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理系统、方法及闪存设备 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN104123241A (zh) * | 2013-04-24 | 2014-10-29 | 华为技术有限公司 | 内存匿名页初始化方法、装置及系统 |
-
2014
- 2014-12-25 CN CN201410827668.3A patent/CN105786721A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055532A1 (en) * | 2003-09-05 | 2005-03-10 | James Yu | Method for efficiently controlling read/write of flash memory |
US20050240715A1 (en) * | 2004-04-22 | 2005-10-27 | Desai Kiran R | K-way direct mapped cache |
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理系统、方法及闪存设备 |
CN101714065A (zh) * | 2009-11-24 | 2010-05-26 | 西安奇维测控科技有限公司 | 一种闪存控制器的映射信息管理方法 |
CN104123241A (zh) * | 2013-04-24 | 2014-10-29 | 华为技术有限公司 | 内存匿名页初始化方法、装置及系统 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817945A (zh) * | 2016-09-13 | 2018-03-20 | 中国科学院微电子研究所 | 一种混合内存结构的数据读取方法和系统 |
CN107817945B (zh) * | 2016-09-13 | 2021-07-27 | 中国科学院微电子研究所 | 一种混合内存结构的数据读取方法和系统 |
WO2018119773A1 (zh) * | 2016-12-28 | 2018-07-05 | 华为技术有限公司 | 非易失内存访问方法、装置和系统 |
US10997078B2 (en) | 2016-12-28 | 2021-05-04 | Huawei Technologies Co., Ltd. | Method, apparatus, and non-transitory readable medium for accessing non-volatile memory |
CN106776361A (zh) * | 2017-03-10 | 2017-05-31 | 安徽大学 | 一种面向大规模非易失性存储介质的缓存方法和系统 |
CN106776361B (zh) * | 2017-03-10 | 2020-07-10 | 安徽大学 | 一种面向大规模非易失性存储介质的缓存方法和系统 |
CN107329696A (zh) * | 2017-06-23 | 2017-11-07 | 华中科技大学 | 一种保证数据崩溃一致性的方法及系统 |
CN107329696B (zh) * | 2017-06-23 | 2019-05-14 | 华中科技大学 | 一种保证数据崩溃一致性的方法及系统 |
CN108845959A (zh) * | 2018-06-25 | 2018-11-20 | 联想(北京)有限公司 | 一种内存数据处理方法、装置和电子设备 |
CN108845959B (zh) * | 2018-06-25 | 2023-06-23 | 联想(北京)有限公司 | 一种内存数据处理方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086774B2 (en) | Address translation for storage device | |
CN109416666B (zh) | 用于存储和读取多个缓存行的装置和方法 | |
US9940261B2 (en) | Zoning of logical to physical data address translation tables with parallelized log list replay | |
US20190243558A1 (en) | Two-level system main memory | |
CN109643275B (zh) | 存储级存储器的磨损均衡设备和方法 | |
TWI465906B (zh) | 用以執行無原子元資料之電力故障安全快取的技術 | |
EP2483782B1 (en) | Power interrupt management | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
US8645610B2 (en) | Organizing and managing a memory blade with super pages and buffers | |
US20110296084A1 (en) | Data storage apparatus and method of writing data | |
US20100235568A1 (en) | Storage device using non-volatile memory | |
US20090182962A1 (en) | Memory Subsystem Hibernation | |
CN105786400B (zh) | 一种异构混合内存组件、系统及存储方法 | |
US11722064B2 (en) | Address translation for storage device | |
CN104461964A (zh) | 一种存储装置 | |
CN102521330A (zh) | 一种桌面虚拟化环境下的镜像分布式存储方法 | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
US20210141736A1 (en) | Storage class memory access | |
KR102168193B1 (ko) | 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법 | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state | |
WO2017107162A1 (zh) | 一种异构混合内存组件、系统及存储方法 | |
US20140032855A1 (en) | Information processing apparatus and method | |
CN113722131A (zh) | 用于促进存储设备中的快速崩溃恢复的方法和系统 | |
KR101480420B1 (ko) | 메모리-디스크 통합 시스템 | |
Kim et al. | Partial page buffering for consumer devices with flash storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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: 20160720 |
|
RJ01 | Rejection of invention patent application after publication |