CN110543433B - 一种混合内存的数据迁移方法及装置 - Google Patents
一种混合内存的数据迁移方法及装置 Download PDFInfo
- Publication number
- CN110543433B CN110543433B CN201910820841.XA CN201910820841A CN110543433B CN 110543433 B CN110543433 B CN 110543433B CN 201910820841 A CN201910820841 A CN 201910820841A CN 110543433 B CN110543433 B CN 110543433B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- address
- write
- cache
- 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
Links
- 230000005012 migration Effects 0.000 title claims abstract description 117
- 238000013508 migration Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种混合内存的数据迁移方法,应用于存储架构系统管理技术领域,包括:当进行写操作时,判断第一内存与第二内存是否发生数据迁移;若第一内存与第二内存发生数据迁移,则待写入数据为待迁移数据,将待迁移数据存入第一交换缓存,以及,获取与待迁移数据对应的交换数据,将交换数据存入第二交换缓存;当进行读操作时,将迁移数据写入第二内存,以及,将交换数据写入第一内存。本公开还提供了一种混合内存的数据迁移装置。以上过程,有效解决了现有技术中混合内存数据迁移速度慢、内存系统性能受数据迁移影响的问题。
Description
技术领域
本公开涉及存储架构系统管理技术领域,尤其涉及一种混合内存的数据迁移方法及装置。
背景技术
动态随机存储器(Dynamic Random Access Memory,简称DRAM)一直以来都是计算机内存系统的首要选择,其结构简单,具有很高的集成度,读写速度快,读写功耗低。但是随着计算机体系结构技术的不断发展和集成电路工艺水平的不断提高,DRAM高静态功耗和可扩展性差的问题日益凸显。新型非易失性存储器(Non Volatile Memory,简称NVM)相比于DRAM,具有非易失、静态功耗极低、存储密度更高的优势。结合DRAM读写速度快和NVM静态功耗低、存储密度高的优势,构建混合内存系统,既能提高内存系统的容量,降低内存系统的功耗,还能保证内存系统的性能不受太大影响。
NVM读功耗和读速度与DRAM相当,但是写功耗和写速度与DRAM相比还有一定差距,另外部分NVM还具有写次数有限的问题,为了减少对NVM的写次数,DRAM与NVM之间需要进行数据迁移,由于在DRAM与NVM混合内存系统中实现数据迁移需要时间,迁移会对内存系统性能造成一定影响,还会增加存储系统的能耗。
发明内容
本公开提供了一种混合内存迁移的数据方法及装置,为混合内存提供相应的数据迁移方法,提高数据迁移的速度。
本公开的一个方面提供了一种混合内存的数据迁移方法,所述混合内存包括第一内存和第二内存,其特征在于,包括:当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移;若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存;当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存。
可选地,所述当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移包括:接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址,所述实际物理地址为所述第一内存或所述第二内存内的内存页的地址;若所述实际物理地址为所述第一内存内的内存页的地址,判断所述第一内存内的内存页的写次数是否达到预设阈值;若所述第一内存内的内存页的写次数达到了所述预设阈值,则所述第一内存将与所述第二内存将发生数据迁移;若所述第一物理地址的内存页的写次数未达到所述预设阈值,则所述第一内存将与所述第二内存不发生数据迁移。
可选地,判断所述第一内存与所述第二内存是否发生数据迁移之后,接收所述数据高速缓存通过所述总线发送来的所述待写入数据。
可选地所述接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址包括:查询所述混合内存内的地址重映射表;若所述地址重映射表中存在所述写地址,获取所述写地址对应的实际物理地址;若所述地址重映射表中不存在所述写地址,则所述写地址即为实际物理地址。
可选地,所述方法还包括:若所述地址重映射表中不存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址和与所述第一内存发生数据迁移的所述第二内存的实际物理地址存入所述地址重映射表中;若所述地址重映射表中存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址在地址重映射表中对应的实际物理地址进行更新。
可选地,若所述实际物理地址为所述第二内存内的内存页的地址,则将所述待写入数据存入所述第二内存的写缓存中,然后将所述待写入数据写入所述第二内存。
可选地,若所述实际物理地址为所述第一内存内的内存页的地址,且所述第一内存内的内存页的写次数未达到所述预设阈值,则将所述待写入数据存入所述第一内存的写缓存中,然后将所述待写入数据写入所述第一内存。
可选地,所述所述当进行读操作时,包括:接收所述数据高速缓存通过所述总线发送来的读请求和读地址,所述读地址为所述第一内存或所述第二内存的地址;根据所述读请求,从所述读地址表示的所述第一内存或所述第二内存中读取数据,存入所述读缓存中;通过所述总线向所述数据高速缓存返回所述读缓存中的数据。
可选地,所述第二内存的交换数据为与第一内存发生数据迁移的交换数据,大小一个cache块大小。
本公开的另一个方面提供了一种混合内存的数据迁移装置,包括:第一处理模块,用于当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移;第二处理模块,用于若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存;第三处理模块,用于当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
本公开实施例提供了一种混合内存的数据迁移方法及装置,实现了DRAM与新型NVM之间的数据迁移分时进行,使数据迁移不影响数据高速缓存(data_cache,简称dcache)对混合内存的访问。同时,dcache写混合内存与从DRAM读出迁移数据并行进行,dcache读混合内存与将迁移数据写回新型NVM和DRAM并行进行,这种dcache对混合内存的读写与数据迁移并行的操作提高了混合内存中数据迁移的速度。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种混合内存的数据迁移方法方法的流程图;
图2示意性示出了本公开实施例提供的一种混合内存控制器的结构框图;
图3示意性示出了本公开实施例提供的一种混合内存控制器的状态图;
图4示意性示出了本公开实施例提供的一种混合内存的数据迁移装置的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示意性示出了本公开实施例提供的一种混合内存的数据迁移方法方法的流程图。
如图1所示,本公开实施例提供的一种混合内存的数据迁移方法方法包括:
步骤S1,当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移。
在本实施例中,混合内存可以为新型NVM和DRAM组成的,其中,第一内存为新型NVM,第二内存为DRAM,当数据高速缓存(简称dcache)访问混合内存时,会通过总线向混合内存控制器发送写请求、写地址和待写入数据,混合内存控制器首先接收到总线发送来的的写请求和写地址,然后接收总线发送来的待写入数据。
dcache是当代计算机系统中必不可少的一部分,能够极大的缓解处理器与内存之间速度不匹配的问题。dcache是内存的一个子集,没有独立的编程空间。当处理器访问dcache时,如果命中,就直接读写dcache,如果不命中,dcache失效,dcache访问内存。
处理器对dcache的写策略分为两种:写回和写穿透。写回是指处理器只写dcache不写内存,当dcache内的数据被替换时才将dcache内的数据写回内存;写穿透是指处理器写dcache的同时也写内存。当采用写回策略时,dcache对内存的访问有两种情况:第一种,dcache内被替换块数据没有被改写过,dcache直接从内存中读出相应块;第二种,dcache内被替换块数据被改写过,那么dcache先将该块数据写回内存,再从内存中读出相应块。因此,dcache每次对内存进行写操作之后,一定还会对内存进行一次读操作。
在本实施例中,混合内存由新型NVM和DRAM组成,第一内存为新型NVM,第二内存为DRAM,由于新型NVM的内存页的写功耗和写延迟较大,当向新型NVM中某一内存页写入数据时,若该页已达到了写次数上限,为了减少对新型NVM过多的写操作造成系统能耗和性能的损失,需要将该页数据与DRAM中某一页的数据进行交换,使后续写操作从新型NVM页面转向DRAM页面。因此,在向新型NVM的内存页写入数据前,需要判断所述新型NVM的内存页的写次数是否达到了预设阈值。
若所述新型NVM内的内存页的写次数达到了所述预设阈值,可将写入新型NVM内存页的待写入数据将直接存入DRAM的内存页中,同时将DRAM中该内存页的数据迁移至新型NVM中,即新型NVM与DRAM发生数据迁移。
当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移包括:
接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址,所述实际物理地址为所述第一内存或所述第二内存内的内存页的地址。
在本实施例中,混合内存控制器接收到所述数据高速缓存通过总线发发送来的写请求和写地址后,首先应该判断写地址指向混合内存中的哪一个内存,包括:
查询所述混合内存内的地址重映射表;
若所述地址重映射表中存在所述写地址,获取所述写地址对应的实际物理地址;
若所述地址重映射表中不存在所述写地址,则所述写地址即为实际物理地址。
地址重映射表中存储有写地址对应的实际物理地址,混合内存控制器根据dcache通过总线发送来的写地址查询地址重映射表,以获得对应的混合内存的实际物理地址。
若所述实际物理地址为所述第一内存内的内存页的地址,判断所述第一内存内的内存页的写次数是否达到预设阈值。
若所述第一内存内的内存页的写次数达到了所述预设阈值,则所述第一内存将与所述第二内存将发生数据迁移。
若所述第一内存内的内存页的写次数未达到所述预设阈值,则所述第一内存将与所述第二内存不发生数据迁移。
判断所述第一内存与所述第二内存是否发生数据迁移之后,接收所述数据高速缓存通过所述总线发送来的所述待写入数据。
步骤S2,若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存。
若新型NVM与DRAM之间发生数据迁移,那么在总线传输待写入数据之前发送的写地址实际对应的实际物理地址为DRAM的地址。
将写地址与实际对应的物理地址存入地址重映射表中,以便下次查询。
除了上述实际物理地址为所述第一内存内的内存页的地址,所述第一内存与所述第二内存发生数据迁移的情况,还可以包括以下两种情形。
若所述实际物理地址为所述第一内存内的内存页的地址,且所述第一内存内的内存页的写次数未达到所述预设阈值,则将所述待写入数据存入所述第一内存的写缓存中,然后将所述待写入数据写入所述第一内存。
当实际物理地址指向的第一内存内的内存页的写次数未达到预设阈值时,说明该内存页足以存储待写入数据,此时,直接将待写入数据存入第一内存的写缓存并存入该内存页,不需要等待数据交换。
若所述实际物理地址为所述第二内存内的内存页的地址,则将所述待写入数据存入所述第二内存的写缓存中,然后将所述待写入数据写入所述第二内存。
当实际物理地址指向的第二内存内的内存页时,直接将待写入数据存入第二内存的写缓存并存入该内存页。
所述第二内存的交换数据为与第一内存发生数据迁移的交换数据,大小为一个cache块大小。
步骤S3,当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存。
dcache每次对内存进行写操作之后,一定还会对内存进行一次读操作。
当进行读操作时,包括:
接收所述数据高速缓存通过所述总线发送来的读请求和读地址,所述读地址为所述第一内存或所述第二内存的地址;
根据所述读请求,从所述读地址表示的所述第一内存或所述第二内存中读取数据,存入所述读缓存中;
通过所述总线向所述数据高速缓存返回所述读缓存中的数据。
若所述第一内存与所述第二内存发生了数据迁移,则将所述第一交换缓存内的迁移数据写入第二内存,所述第二交换缓存内的交换数据写入第一内存。
在本实施例中,若所述新型NVM与所述DRAM发生数据迁移,数据迁移分为两个部分,第一部分是混合内存控制器从DRAM中读出迁移数据,第二部分是混合内存控制器将迁移数据写回新型NVM和DRAM中。第一部分和第二部分是分时进行的,但在进行第一部分和第二部分的同时,并行实现了对dcache待写入数据的存储和dcache请求的读数据的发送。
具体的,首先,在步骤S1中,dcache对混合内存进行写操作时,若新型NVM与DRAM发生数据迁移,混合内存控制器在接收总线发送来的待写入数据,将待写入数据存入第一交换缓存的同时,将DRAM中的一个数据块的数据存入第二交换缓存中。
由于混合内存控制器接收待写入数据需要多个时钟周期,在接收待写入数据的同时并行将DRAM中进行数据迁移的数据块读出,与从总线上接收的待写入数据分别存入不同的交换缓存中,在完成dcache对混合内存写操作的同时,也完成了数据迁移的第一部分。
在本实施例中,当读数据读取完毕后,混合内存控制器向总线返回读数据,同时,还将并行的执行数据迁移的第二部分,将交换数据和迁移数据分别写回新型NVM和DRAM中,即:将第一交换缓存内存储的之前总线发送来的待写入数据写入第二内存DRAM中,将第二交换缓存内存储的迁移数据写入第一内存新型NVM中,完成数据迁移。
当述第一内存与所述第二内存发生了数据迁移,方法还可以包括以下两种情况。
若所述查询地址重映射表中不存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址和与所述第一内存发生数据迁移的所述第二内存的实际物理地址存入所述地址重映射表中。
当所述查询地址重映表中不存在所述写地址,如果所述第一内存与所述第二内存发生了数据迁移,将所述写地址和迁移数据实际存储的实际物理地址存入所述地址重映射表中,便于下次查询。
若所述地址重映射表中存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址在地址重映射表中对应的实际物理地址进行更新。
当所述地址重映射表中存在所述写地址,如果所述第一内存与所述第二内存发生了数据迁移,则迁移数据实际存储的实际物理地址可能发生了变化,此时需要将迁移数据实际存储的实际物理地址替换地址重映射表中的原有地址,实现实际物理地址的更新。
本公开实施例提供了一种混合内存的数据迁移方法及装置,实现了DRAM与新型NVM之间的数据迁移分时进行,使数据迁移不影dcache对内存的访问。同时,dcache写内存与从DRAM读出迁移数据并行进行,dcache读内存与将迁移数据写回新型NVM和DRAM并行进行,这种dcache对混合内存的读写与数据迁移并行的操作提高了混合内存中数据迁移的速度。
图2示意性示出了本公开实施例提供的一种混合内存控制器的结构框图。
如图2所示,本实施例提供的一种混合内存控制器主要包括控制逻辑(control_logic)和两个子控制器模块(nvm_ctrl、dram_ctrl)构成。控制器向上与总线相连(以AXI总线为例),通过总线与dcache进行数据交换,向下与新型NVM和DRAM存储器相连。控制逻辑根据dcache通过总线发来的读写请求和子控制器提供的存储器状态信息,产生相应的控制信号,进行存储器的读写操作。控制器中的硬件存储资源开销主要包括地址重映射表(remap)、新型NVM页面写次数记录表、读缓存(r_buf)、写缓存(w_buf)、第一交换缓存ex_buf0和第二交换缓存ex_bufl。其中,地址重映射表用来记录经过迁移的物理块地址和实际物理块地址之间的映射关系,NVM页写次数记录表用来记录NVM每一页的写次数,交换缓存用来存放需要迁移的数据。
图1给出了当dcache发送的写地址对应为新型NVM的物理地址时,即第一内存的物理地址时,若新型NVM的内存页的写次数达到了预设阈值,新型NVM与DRAM发生数据迁移时的处理方法。
从图2中还可以看出,当dcache通过总线发送来的写地址对应DRAM的内存页的物理地址时,将所述待写入数据存入所述DRAM的写缓存中,然后将所述待写入数据写入所述DRAM,即当dcache通过总线发送来的写地址为第二内存内的内存页的物理地址时,将所述待写入数据存入所述第二内存的写缓存中,然后将所述待写入数据写入所述第二内存的内存页。
从图2中还可以看出,当dcache通过总线发送来的写地址对应为新型NVM的内存页的物理地址时,若新型NVM的内存页的写次数未达到所述预设阈值,新型NVM与DRAM不需要进行数据迁移,直接将待写入数据存入新型NVM的写缓存中,然后将所述待写入数据写入所述新型NVM的内存页,即当dcache通过总线发送来的写地址为第一内存内的内存页的物理地址,且第一内存内的内存页的写次数没有达到预设阈值时,将所述待写入数据存入所述第一内存的写缓存中,然后将所述待写入数据写入所述第一内存。
图3示意性示出了本公开实施例提供的一种混合内存控制器的状态图。
在本实施例中,在进行数据迁移的过程中,参考图2所示的混合内存控制器,混合内存控制器的状态转换过程如图3所示,包括:
混合内存控制器系统初始化,混合内存控制器的系统状态初始化为空闲态(idle);
当dcache通过总线向混合内存控制器发来写请求(wreq)和写地址(waddr),混合内存控制器根据写地址查询地址重映射表,若在表中找到该写地址,说明该写地址经历过数据迁移,从地址重映射表中找出对应的实际物理地址,若没有找到,说明该写地址没有经历过数据迁移,它本身就是实际物理地址。若实际物理地址为第一内存新型NVM的地址,则查询新型NVM的内存页的写次数记录表,若该内存页的写次数达到了预设阈值,则第一内存新型NVM与第二内存DRAM之间需要进行数据迁移,混合内存控制器的系统状态变为读迁移数据态(migra_read);
当dcache通过总线发来待写入数据(wdata),由于第一内存新型NVM与第二内存DRAM之间需要进行数据迁移,混合内存控制器将从总线上接收的数据存放到第一交换缓存中ex_buf0中,以便作为迁移数据。混合内存控制器从总线上接收待写入数据的同时从第二内存DRAM中读取用于交换的数据,存放到第二交换缓存ex_buf1中。当混合内存控制器接收完总线上的待写入数据时,通过总线向dcache发送写响应(bvalid),混合内存控制器的系统状态变为空闲态;
dcache每次写内存之后,一定还有一次读内存。dcache通过总线向混合内存控制器发送读请求(rreq)和读地址(raddr),使混合内存控制器根据读地址查询地址重映射表,找出实际物理地址,无论是读DRAM还是新型NVM,系统状态变为等待读数据态(wait_rdata);
混合内存控制器根据实际物理地址对DRAM或新型NVM存储器进行读操作,将读出的数据直接存放到读缓存中,此时,混合内存控制器的系统状态变为发送读数据态(send_rdata);
混合内存控制器通过总线向dcache发送读响应(rvalid)和读数据(rdata),同时将第一交换缓存ex_buf0中的数据写回DRAM,将第二交换缓存ex_buf1中的数据写回新型NVM。当发送完所有读数据时,混合内存控制器系统状态变为空闲态。
图4示意性示出了本公开实施例提供的一种混合内存的数据迁移装置的结构框图。
如图4所示,本公开实施例提供的一种混合内存的数据迁移装置包括:第一处理模块410、第二处理模块420及第三处理模块430。
具体地,第一处理模块410,用于当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移;
第二处理模块420,用于若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存;
第三处理模块430,用于当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存。
可以理解的是,第一处理模块410、第二处理模块420及第三处理模块430可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一处理模块410、第二处理模块420及第三处理模块430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,第一处理模块410、第二处理模块420及第三处理模块430中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (9)
1.一种混合内存的数据迁移方法,所述混合内存包括第一内存和第二内存,其特征在于,包括:
当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移;
若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存;
当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存;
其中,所述当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移包括:
接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址,所述实际物理地址为所述第一内存或所述第二内存内的内存页的地址;
若所述实际物理地址为所述第一内存内的内存页的地址,判断所述第一内存内的内存页的写次数是否达到预设阈值;
若所述第一内存内的内存页的写次数达到了所述预设阈值,则所述第一内存将与所述第二内存发生数据迁移;
若所述第一内存内的内存页的写次数未达到所述预设阈值,则所述第一内存将与所述第二内存不发生数据迁移。
2.根据权利要求1所述的方法,其特征在于,判断所述第一内存与所述第二内存是否发生数据迁移之后,接收所述数据高速缓存通过所述总线发送来的所述待写入数据。
3.根据权利要求1所述的方法,其特征在于,所述接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址包括:
查询所述混合内存内的地址重映射表;
若所述地址重映射表中存在所述写地址,获取所述写地址对应的实际物理地址;
若所述地址重映射表中不存在所述写地址,则所述写地址即为实际物理地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述地址重映射表中不存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址和与所述第一内存发生数据迁移的所述第二内存的实际物理地址存入所述地址重映射表中;
若所述地址重映射表中存在所述写地址,且所述第一内存与所述第二内存发生了数据迁移,将所述写地址在地址重映射表中对应的实际物理地址进行更新。
5.根据权利要求1所述的方法,其特征在于,若所述实际物理地址为所述第二内存内的内存页的地址,则将所述待写入数据存入所述第二内存的写缓存中,然后将所述待写入数据写入所述第二内存。
6.根据权利要求1所述的方法,其特征在于,若所述实际物理地址为所述第一内存内的内存页的地址,且所述第一内存内的内存页的写次数未达到所述预设阈值,则将所述待写入数据存入所述第一内存的写缓存中,然后将所述待写入数据写入所述第一内存。
7.根据权利要求1所述的方法,其特征在于,所述当进行读操作时,包括:
接收所述数据高速缓存通过所述总线发送来的读请求和读地址,所述读地址为所述第一内存或所述第二内存的地址;
根据所述读请求,从所述读地址表示的所述第一内存或所述第二内存中读取数据,存入读缓存中;
通过所述总线向所述数据高速缓存返回所述读缓存中的数据。
8.根据权利要求1所述的方法,其特征在于,所述第二内存的交换数据为与第一内存发生数据迁移的交换数据,大小为一个cache块大小。
9.一种混合内存的数据迁移装置,其特征在于,包括:
第一处理模块,用于当进行写操作时,判断第一内存与第二内存是否发生数据迁移;
其中,所述当进行写操作时,判断所述第一内存与所述第二内存是否发生数据迁移包括:
接收数据高速缓存通过总线发送来的写请求和写地址,根据所述写地址查询对应的实际物理地址,所述实际物理地址为所述第一内存或所述第二内存内的内存页的地址;
若所述实际物理地址为所述第一内存内的内存页的地址,判断所述第一内存内的内存页的写次数是否达到预设阈值;
若所述第一内存内的内存页的写次数达到了所述预设阈值,则所述第一内存将与所述第二内存发生数据迁移;
若所述第一内存内的内存页的写次数未达到所述预设阈值,则所述第一内存将与所述第二内存不发生数据迁移;
第二处理模块,用于若所述第一内存与所述第二内存发生数据迁移,则待写入数据为待迁移数据,将所述待迁移数据存入第一交换缓存,以及,获取与所述待迁移数据对应的交换数据,将所述交换数据存入第二交换缓存;
第三处理模块,用于当进行读操作时,将所述迁移数据写入所述第二内存,以及,将所述交换数据写入所述第一内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910820841.XA CN110543433B (zh) | 2019-08-30 | 2019-08-30 | 一种混合内存的数据迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910820841.XA CN110543433B (zh) | 2019-08-30 | 2019-08-30 | 一种混合内存的数据迁移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543433A CN110543433A (zh) | 2019-12-06 |
CN110543433B true CN110543433B (zh) | 2022-02-11 |
Family
ID=68712406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910820841.XA Active CN110543433B (zh) | 2019-08-30 | 2019-08-30 | 一种混合内存的数据迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543433B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124953B (zh) * | 2019-12-18 | 2021-04-27 | 海光信息技术股份有限公司 | 数据交换方法、装置、处理器及计算机系统 |
CN114115711B (zh) * | 2021-08-24 | 2023-10-17 | 上海交通大学 | 基于非易失内存文件系统的快速缓存系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN103914406A (zh) * | 2014-03-31 | 2014-07-09 | 中国科学院微电子研究所 | 一种混合内存的迁移方法及系统 |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
CN108762671A (zh) * | 2018-05-23 | 2018-11-06 | 中国人民解放军陆军工程大学 | 基于pcm和dram的混合内存系统及其管理方法 |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
CN108897490A (zh) * | 2018-05-14 | 2018-11-27 | 浙江工商大学 | 一种dram/pram异质混合内存系统的数据管理方法 |
CN109558093A (zh) * | 2018-12-19 | 2019-04-02 | 哈尔滨工业大学 | 一种针对图像处理型负载的混合内存页面迁移方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130329491A1 (en) * | 2012-06-12 | 2013-12-12 | Jichuan Chang | Hybrid Memory Module |
US11977484B2 (en) * | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
-
2019
- 2019-08-30 CN CN201910820841.XA patent/CN110543433B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
CN103914406A (zh) * | 2014-03-31 | 2014-07-09 | 中国科学院微电子研究所 | 一种混合内存的迁移方法及系统 |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
CN108897490A (zh) * | 2018-05-14 | 2018-11-27 | 浙江工商大学 | 一种dram/pram异质混合内存系统的数据管理方法 |
CN108762671A (zh) * | 2018-05-23 | 2018-11-06 | 中国人民解放军陆军工程大学 | 基于pcm和dram的混合内存系统及其管理方法 |
CN109558093A (zh) * | 2018-12-19 | 2019-04-02 | 哈尔滨工业大学 | 一种针对图像处理型负载的混合内存页面迁移方法 |
Non-Patent Citations (2)
Title |
---|
PageSeer: Using PageWalks to Trigger Page Swaps in Hybrid Memory Systems;A.Kokolis et al.;《2019 IEEE International Symposium on High Performance Computer Architecture》;20190328;第596-608页 * |
一种基于访存行为地址映射机制的混合内存系统;王强 等;《小型微型计算机系统》;20140630;第35卷(第4期);第1021-1026页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110543433A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684949B2 (en) | Method and apparatus for accessing data stored in a storage system that includes both a final level of cache and a main memory | |
CN112272816B (zh) | 存储器系统或子系统中的预取信令 | |
US20200081848A1 (en) | Storage device and system | |
CN112262365B (zh) | 存储器系统或子系统中的等待时间指示 | |
US20050055493A1 (en) | [method for accessing large block flash memory] | |
US20180275921A1 (en) | Storage device | |
US11036412B2 (en) | Dynamically changing between latency-focused read operation and bandwidth-focused read operation | |
KR20200085522A (ko) | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
US11494318B2 (en) | Controller and operation method thereof | |
US20110029741A1 (en) | Data management method and memory deivce | |
CN110543433B (zh) | 一种混合内存的数据迁移方法及装置 | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
US20170109277A1 (en) | Memory system | |
US10606488B2 (en) | Selective data flush in a storage device | |
US9262098B2 (en) | Pipelined data I/O controller and system for semiconductor memory | |
US11822474B2 (en) | Storage system and method for accessing same | |
US10180904B2 (en) | Cache memory and operation method thereof | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
US20060143378A1 (en) | Information processing apparatus and control method for this information processing apparatus | |
CN117806570B (zh) | 在线内存扩展方法、装置、设备及存储介质 | |
US20240061786A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
US20240143512A1 (en) | Write buffer linking for easy cache reads | |
KR102343600B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
WO2023142114A1 (zh) | 数据处理方法、装置以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |