CN115904212A - 数据处理的方法、装置、处理器和混合内存系统 - Google Patents
数据处理的方法、装置、处理器和混合内存系统 Download PDFInfo
- Publication number
- CN115904212A CN115904212A CN202111160263.5A CN202111160263A CN115904212A CN 115904212 A CN115904212 A CN 115904212A CN 202111160263 A CN202111160263 A CN 202111160263A CN 115904212 A CN115904212 A CN 115904212A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- medium
- pages
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 753
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- 230000005012 migration Effects 0.000 claims abstract description 104
- 238000013508 migration Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 49
- 238000009826 distribution Methods 0.000 claims abstract description 48
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000001816 cooling Methods 0.000 claims description 9
- 238000010438 heat treatment Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 230000001427 coherent effect Effects 0.000 claims description 5
- 208000031339 Split cord malformation Diseases 0.000 description 43
- 238000004645 scanning capacitance microscopy Methods 0.000 description 37
- 238000013068 supply chain management Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000000704 physical effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000008187 granular material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F3/0649—Lifecycle management
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
一种应用于分级内存系统的数据处理方法,该分级内存系统包括不同类型的第一内存介质和第二内存介质,该方法包括:获取该分级内存系统的数据分布;根据该数据分布确定数据迁移方式,数据迁移方式用于根据数据分布实现迁移数据集在不同内存介质之间的迁移处理;并根据上述迁移方式执行迁移数据集的所述迁移处理。通过在分级内存系统中实现分级,并结合数据属性实现冷热数据的分级存储方案,既降低了内存的成本,又保证了数据处理的效率。
Description
技术领域
本申请涉及计算机领域,具体涉及一种数据处理的方法、装置、处理器和混合内存系统。
背景技术
随着多核处理器的发展,单个处理器的核数逐渐增多,而处理器访问内存的内存通道的数量却未随之增长,例如,单个中央处理器(central processing unit,CPU)的最大核数可达 64个,而内存通道数仅为8个,这就导致平均分配给每个处理器核的内存带宽和内存容量随着处理器核数的增长变得越来越小,使得内存性能严重限制CPU的性能发挥,内存墙(memory wall)的问题日益突出。
为了解决内存墙的问题,提出了一种开放内存接口(open memoryinterface,OMI),移除CPU中双倍数据速率控制器(double data rate controller,DDRC)和双倍数据速率物理层(double data rate controller physical layer,DDR PHY),并在内存中实现开放内存接口、DDRC 和DDR PHY的功能,上述内存条也称为差分双列直插式内存模组(dual in-line memory module, DDIMM),此时,DDIMM通过开放内存接口与CPU连接。由于移除了CPU中DDRC和DDR PHY,且OMI为基于串行总线接口实现的接口,这就增加了CPU中可用于扩展内存通道的引脚(PIN)的数量,例如,支持开放接口的单个POWER9可提供16个内存通道。
但是,上述方案中支持OMI的处理器仅支持动态随机存取存储器(dynamic randomaccess memory,DRAM)类型的内存颗粒,而该类型的内存颗粒的价格较高,对于大数据(例如, Apache SparkTM)、内存型数据库(例如,Redis)或云服务(例如,云基础设施中采用内存超分配机制提供的虚拟机)等需要部署大容量内存的场景而言,成本更高。因此,如何提供一种低成本的内存墙的解决方案成为亟待解决的技术问题。
发明内容
本申请提供了一种数据处理的方法、装置、处理器和混合内存系统,可以提供一种低成本的内存墙的解决方案
第一方面,提供一种应用于混合内存系统的方法,混合内存系统包括多种不同类型的内存介质,例如,DRAM类型的内存介质和SCM类型的内存介质,处理器可以获取混合内存系统的数据分布;并根据上述数据分布确定数据迁移方式,而数据迁移方式用于根据所述数据分布实现迁移数据集在不同内存介质之间的迁移处理;最后,根据迁移方式执行迁移数据集的所述迁移处理。为了解决高成本的内存墙问题,本申请提出采用不同类型的内存介质构成混合内存系统,并基于数据在不同类型的内存介质之间的数据分布确定数据迁移方式,再结合不用类型的内存介质的属性实现数据迁移,在满足了处理器的算力需求的同时,使能低成本的内存介质,在保证数据处理时延的同时,降低整个混合内存系统的成本。
可选地,数据分布是指数据在不同类型的内存介质中存储方式,具体可以采用以下两种方式确定:
方式1,根据数据的冷热程度确定数据分布,即按照数据的冷热程度将其存储在不同类型的存储介质。
方式2,根据数据的冷热程度和内存介质的物理属性确定,其中,物理属性包括时延、成本、容量和寿命中至少一种。
在一种可能的实现方式中,混合内存系统还包括多个处理器,在初始化节点,可以为每个处理器分配内存资源,并利用LRU链表记录内存页的冷热程度,再基于上述冷热程度执行数据的迁移处理。具体地,先获取混合内存系统的内存布局,内存布局包括内存系统中部署的内存的数量和类型;然后,根据内存布局为每个处理器分配内存资源,利用最新最近使用 LRU链表记录每个处理器被分配的内存资源中存储数据的冷热程度,而LRU链表包括活跃清单Active list和不活跃清单Inactive list,其中,Active list用于标识处理器关联的热数据所在内存页的信息,Inactive list用于标识处理器关联的冷数据所在的内存页的信息。通过LRU 链表的管理方式,可以获知内存页中存储数据的冷热程度,进而根据内存页的属性标签执行数据在不同内存介质之间的迁移处理,例如,可以将热数据迁移至时延敏感型的DRAM类型的内存页中,将冷数据迁移至低成本的SCM类型的内存页中,即能降低混合内存系统的成本,又可以保证数据处理的效率。另一方便,对于2M等大页内存而言,LRU的链表管理方式提供了一种内存页访问热度的管理方式,便于内存介质使用过程中,根据数据属性执行合理的迁移操作,提升整个系统的处理效率,降低内存访问的处理时延。
在另一种可能的实现方式中,利用LRU链表还可以通过扫描请求遍历分级存储系统中与各个处理器关联的不同内存介质中内存页的数据分布,其中,数据分布包括不同内存介质中内存页的状态,内存页的状态包括热页、冷页或空闲页。也即,通过LRU链表的管理可以进一步获知内存页的状态,区分出热页和冷页,进而根据内存页的状态执行数据迁移操作,使得热数据存储在低时延的内存介质中,冷数据存储在低成本的内存介质中,即保证了数据被访问的效率,又降低了整个系统的内存成本。
在另一种可能的实现方式中,不同内存介质还可以分别构建内存池,每个内存池中分别包括多个大页内存,每个大页内存的大小大于第一阈值。对于内存型数据库、大数据或云服务等场景,通过构建大页内存池,内存访问以大页为粒度进行访问,与小页内存相比,每次读取的数据量随之增多,提升了数据处理的效率。而且,在不同类型的内存介质中,还可以进一步结合内存分级机制进行数据迁移,能够进一步提升整个系统的处理速度,同时,降低内存成本。
在另一种可能的实现方式中,内存介质中数据分布还可以周期性通过扫描请求统计不同类型内存介质中各个内存页的冷热程度。通过周期性统计不同类型内存介质中各个内存页的冷热程度,可以动态的实现数据迁移处理过程,使得数据的冷热属性与内存介质的低时延、低成本等特性关联,保证经常被访问的热数据存储在低时延的内存介质中,提升数据被访问的效率,同时,对于被访问次数少的冷数据,则存储在低成本的内存介质中,由此减低整个系统中内存介质的成本。
在另一种可能的实现方式中,每个内存页的冷热程度可以通过以下方式获取:在单位周期内,统计各个内存页中数据被读取的次数;当任意一个内存页中数据被执行一次读取操作时,该内存页的热度加一,该热度可以指示所述单位周期内该内存页中数据被访问的冷热程度。通过单位周期内对内页中数据被访问次数的统计,可以明确内存页的冷热程度,进而根据数据的冷热属性执行数据迁移操作,合理利用不同类型的内存介质资源。
在另一种可能的实现方式中,迁移数据集包括第一数据集,第一数据集包括至少一个热数据,热数据为单位周期内数据被读写的次数大于第一阈值的数据。
在另一种可能的实现方式中,混合内存系统可以根据以下方式确定数据迁移方式:先确定混合内存系统中分级内存机制,分级内存机制用于指示混合内存系统中多种不同类型的内存介质的等级,例如,混合内存系统包括第一等级和第二等级;然后,根据数据分布和分级内存机制确定数据迁移方式。通过将混合内存系统中不同类型的内存介质进行分级,可以进一步结合内存介质的物理属性存储数据,例如,根据内存介质的时延、成本、寿命和容量等物理属性将不同类型的内存介质进行分级,再结合数据的冷热程度进行数据存储,可以充分利用内存介质的优势实现热数据的冷数据的分类管理,提升内存介质的利用率。与此同时,为了保证整个系统中数据处理的效率,还可以根据应用需求和内存介质的物理属性,将时延敏感型数据存储在低时延的内存介质中,将非时延明感型数据存储在低成本的内存介质中,既保证了数据处理效率又降低了整个系统中内存介质的成本。
在另一种可能的实现方式中,第一内存介质归属为第一等级,第二内存介质归属为第二等级,则数据迁移方式包括:从第一内存池中选择一个或多个空闲的内存页,将包括第二内存介质中热页的数据的第一数据集迁移至第一内存池中一个或多个空闲的内存页。通过上述方法,可以根据不同内存介质中热页的数量和低时延型内存介质的空闲资源情况执行迁移操作,将热页的数据迁移至低时延的内存介质,加快数据被访问的处理效率。
可选地,在执行迁移操作前,还可以先判断第一内存介质中空闲页的数量是否大于第二存储介质中热页的数量,当第一内存介质中空闲页的数量大于第二存储介质中热页的数量时,将全部热页数据迁移至第一内存介质,或者将热页数据中部分数据迁移至第一内存介质。
在另一种可能的实现方式中,第一内存介质归属为第一等级,第二内存介质归属为第二等级,迁移数据集还包括第二数据集,第二数据集包括至少一个冷数据,冷数据为单位周期内被读写的次数小于或等于第二阈值的数据,则数据迁移方式包括:从第二内存池中选择一个或多个空闲内存页,将包括第一内存介质中冷页中数据的述第二数据集迁移至上述第二内存池中所述一个或多个空闲内存页。也就是说,冷页的冷数据可以被迁移至低成本的内存介质,使得低时延的内存介质优先存储时延敏感性数据,结合内存介质的不同物理属性,充分利用内存介质的资源。
可选地,执行迁移操作前,还可以先判断第一内存介质中空闲页的数量是否小于或等于所述第二内存介质中热页的数量,当第一内存介质中空闲页的数量小于或等于所述第二内存介质中热页的数量时,将包括第一内存介质中冷页中数据的述第二数据集迁移至上述第二内存池中所述一个或多个空闲内存页。作为一种可能的实现方式,除了将全部冷页的数据迁移至第二内存介质外,还可以将冷页数据中部分数据迁移至第二内存介质。
可选地,在上述将冷数据迁移至低成本的内存介质后,还可以将包括第二内存介质中热页的数据的第一数据集迁移至上述第一内存池中一个或多个空闲的内存页。也即,在低时延的内存机制中冷数据被迁移走后,还可以继续判断低成本的内存介质中是否有热数据,进而将热数据迁移至低时延型的内存介质中。通过上述动态的数据迁移过程,可以结合内存介质的物理属性更合理的利用内存介质资源。
作为一种可能的实施例,上述第一内存介质的时延低于第二内存介质的时延,第一内存介质的成本高于所述第二内存介质。
可选地,第一存储介质的寿命高于第一内存介质,第一存储介质的容量低于第二内存介质的容量。
作为一种可能的实施例,上述第一内存介质为动态随机存取存储器DRAM,第二内存介质为存储级内存SCM,SCM包括相变存储器PCM,磁性随机存储器MRAM、电阻型随机存储器RRAM,铁电式存储器FRAM,快速NAND或纳米随机存储器NRAM中至少一种。
作为一种可能的实施例,处理器与多种不同类型的内存介质通过支持内存语义的接口相连,所述接口包括支持计算机快速链接CXL、缓存一致互联协议CCIX或统一总线UB中至少一种接口。
作为一种可能的实施例,上述混合内存系统为服务器或服务器集群,服务器集群包括两个或两个以上服务器。
作为一种可能的实施例,混合内存系统应用于部署大容量内存的场景,场景包括大数据、内存型数据库或云服务中至少一种。
第二方面,本申请提供一种数据处理的装置,所述数据处理的装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理的方法的操作步骤的各个模块。
第三方面,本申请提供一种处理器,所述处理器包括集成电路,所述集成电路与多种不同类型的内存介质相连,所述集成电路用于实现包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理的方法的操作步骤。
第四方面,本申请提供一种分级存储系统,所述分级存储系统包括处理器和多种内存介质,所述处理器和多种内存介质之间通过总线连接并完成相互间的通信,所述多种内存介质中任意一个内存介质用于存储计算机执行指令,所述分级存储系统运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述分级存储系统中的硬件资源执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种云服务场景的架构示意图;
图2为本申请提供的一种大数据和内存型数据库的系统架构图;
图3本申请提供的一种混合内存系统的结构图;
图4为本申请提供的一种混合内存系统中实施分级内存机制的示意图;
图5为本申请提供的一种最近最少使用链表的结构示意图;
图6为本申请提供的一种数据处理的方法流程示意图;
图7为本申请提供的一种数据处理装置的结构示意图。
具体实施方式
为了便于描述,首先对本申请涉及的术语进行解释。
内存级存储介质(storage-class-memory,SCM),既具有内存(memory)的优势,又兼顾了存储(storage)的特点,简单理解,即为新型非易失存储介质。内存级存储介质具有非易失性、极短的存取时间、每比特价格低廉、固态,无移动区的特点。当前的SCM介质技术有很多,其中相变存储器(phase-change memory,PCM)是最为突出和典型的介质,也是最早有产品面世的内存级存储介质技术之一,例如,基于3D Xpoint开发的傲腾内存( OptaneTMMemory)。除此之外,内存级存储介质还包括磁性随机存储器(magnetoresistive random-access memory,MRAM)、电阻型随机存储器(resistiverandom access memory, RRAM/ReRAM)、铁电式存储器(ferroelectric random accessmemory,FRAM)、快速NAND (fast NAND),纳米随机存储器(Nano-RAM,NRAM)等其他类型。
内核态,也可以称为主机内核态,由于需要限制不同的程序之间的访问能力,防止他们获取其他程序的内存数据,或者获取外围设备的数据,处理器划分出两个权限等级:用户态和内核态。当一个任务或者一个进程执行系统调用而在内核代码中执行时,该进程被称为处于内核态。此时处理器处于特权级最高的内核代码中执行。在内核态,处理器可以访问内存的所有数据,包括外围设备,例如内存,网卡等。
用户态,也可以称为主机用户态,当进程在执行用户自己的代码时,则称其处于用户态。此时处理器在特权级最低的用户代码中运行,仅能使用常规处理器指令集,不能使用操作硬件资源的处理器指令集。在用户态,处理器只能受限地访问内存,且不允许访问外围设备,如输入输出(input/output,IO)读写、网卡访问、申请内存等。
客户用户态,即虚拟机的用户态,虚拟机为运行在物理主机上的虚拟操作系统,在虚拟机操作系统中同样定义了内核态与用户态,也是为了限定虚拟机中权限,划分方式与上述主机内核态和主机用户态类似,在此不再赘述。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述。
为了解决云服务(例如,云基础设施中采用内存超分配机制提供的虚拟机)、大数据(例如,Apache SparkTM)或内存型数据库(例如,Redis)等需要部署大容量内存的场景中使用基于开放内存接口OMI的动态随机存取存储器(dynamic random access memory,DRAM)所带来的成本高的问题,本申请提供一种基于多种不同类型的内存介质实现分级内存机制存储数据的方法,通过支持不同类型的内存介质实现内存扩展,根据混合内存系统(也可以称为分级内存系统)中数据分布确定数据迁移方式,进而实现带有冷热属性标识的迁移数据集在不同内存介质之间的迁移处理。
首先,结合图1和图2分别介绍本申请所涉及的应用场景的架构示意图。
图1为本申请提供的一种云服务场景的架构示意图,如图所示,系统100包括硬件110、主机内核态120、主机用户态130和客户用户态140。
其中,硬件310包括多个处理器(例如,处理器113和处理器114),以及不同类型的内存介质(例如,DRAM和SCM)。
主机内核态120包括虚拟机监视器(Hypervisor),而虚拟机监视器又包括内核虚拟机 (Kernel-based Virtual Machine,KVM)1211和最少最近使用(least latest use,LRU)1212。其中,内核虚拟机1211用于管理主机用户态130中虚拟机132和虚拟机133。虚拟机监视器 121还用于管理最少最近使用1212,最少最近使用1212用于统计DRAM311和SCM312的内存页中数据被访问的活跃程度。
主机用户态130包括策略模块131和虚拟机(例如,虚拟机132和虚拟机133),每个虚拟机上运行一个或多个客户用户态140的应用(例如,应用141和应用142运行在虚拟机132 中,应用143和应用144运行在虚拟机133中)。策略模块131,则用于获取的数据分布确定数据迁移方式。此外,策略模块131还可以为用户提供配置数据迁移的周期的配置接口,从而触发混合内存系统根据上述配置接口获得的周期执行迁移操作。
图2为本申请提供的一种大数据和内存型数据库的系统架构图,如图所示,系统200包括硬件210、主机内核态220和主机用户态230。其中,硬件210与图1中硬件110的结构和功能类似,为了简洁,在此不再赘述。主机内核态220包括虚拟机监视器(Hypervisor)221,用于实现系统200中虚拟化软件的管理,以及最近最少使用2211的管理。虚拟机监视器221 包括内核虚拟机(KVM)4212和最近最少使用(LRU)2211,其中,最近最少使用2211的功能与图1所示的最近最少使用1212的功能相同,在此不再赘述。主机用户态230运行业务操作系统231,即运行大数据应用201或数据库应用202的操作系统,业务操作系统231中又包括调度器2311和内存管理器2312,其中,调度器2311用于获取动态随机存取器412和SCM413的数据分布,以及根据上述数据分布确定数据迁移方式,并通知内存管理器2312根据数据迁移方式执行迁移数据集的迁移处理。
图1或图2所示云服务、大数据或内存型数据库的场景可以以单服务器形态部署,也可以采用服务器集群形式部署,其中,服务器集群中包括多个服务器。
接下来,以图3为例继续介绍本申请实施例提供的一种混合内存系统的结构示意图,该混合内存系统可以是部署云服务、大数据或内存型数据的场景的服务器或服务器集群中任意一个服务器。如图所示,混合内存系统300包括处理器301和多种不同类型的内存介质,例如,内存介质302和内存介质303,而内存介质302可以为DRAM,内存介质303可以为SCM。
值得说明的是,内存介质302和内存介质303所示为两种不同类型的内存介质,每种类型的内存介质可以包括多个,例如,内存介质302可以包括DRAM2021、DRAM2022、DRAM2023和DRAM2024;内存介质303可以包括SCM3031、SCM3032、SCM3033和 SCM3034。
处理器301与内存介质302和内存介质303通过支持内存语义的接口相连,其中,支持内存语义的接口包括支持内存互联(Compute Express LinkTM,CXL)、缓存一致互联协议(Cache Coherent Interconnect for Accelerators,CCIX)或统一总线(unified bus,UB或Ubus)中至少一种接口。
处理器301又包括多个处理器核,以及用于实现内存管理和控制的集成内存控制器 (integrated memory controller,iMC)3014。多个处理器核可以进一步被划分为多个计算集群,每个计算集群包括至少一个处理器核,例如,如图2所示,计算集群3011包括处理器核30111,处理器核30112,处理器核30113和处理器核30114;计算集群3012包括处理器核30121,处理器核30122,处理器核30123和处理器核30124。多个计算集群之间通过片上网络(network on chip,NoC)3013进行通信,片上网络3013用于实现不同计算集群中处理器核之间的通信。对于X86架构的处理器,片上网络3013可以为节点控制器(node controller,NC);对于高级精简指令集计算机器(advanced reduced instruction set computingmachines,ARM)架构的处理器,片上网络3013可以为用于实现处理器核间通信的芯片或逻辑电路。每个计算集群通过多个集成内存控制器3014与不同内存介质进行直接或间接连接。可选地,处理器301中所有处理器核也可以被划分为一个计算集群。
处理器301可以是CPU,例如,X86架构的处理器或ARM架构的处理器。处理器301 还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路 (ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、片上系统(system on chip,SoC)、图形处理器(graphic processingunit, GPU)、人工智能(artificial intelligent,AI)芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。
多种内存介质还可以用于存储操作系统、计算机执行指令(或称为程序代码)、内核和数据,并向处理器301提供计算机执行指令以便处理器301执行上述计算机执行指令以实现相应的功能。示例地,内存介质302可以用于存储操作系统、计算机执行指令、内核,使得处理器301可以执行内存介质302中计算机执行指令以实现具体功能。
内存介质302可以包括只读存储器和随机存取存储器。内存介质302还可以包括非易失性随机存取存储器。内存介质802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM, EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM, SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM, SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM, DR RAM)。可选地,内存介质802还可以是存储级内存SCM,SCM包括相变存储器PCM,磁性随机存储器MRAM、电阻型随机存储器RRAM,铁电式存储器FRAM,快速NAND或纳米随机存储器NRAM中至少一种。
内存介质303的类型与内存介质302类型类似,也可以为上述各种内存介质类型中任意一种,但在混合内存系统300中,内存介质302和内存介质303的类型不同。
图3所示的混合内存系统300仅以一个处理器301为例进行说明,具体实施时,混合内存系统300中可以包括两个或两个以上处理器,每个处理器分别通过集成内存控制器3014与不同类型的内存介质相连。每个集成内存控制器3014与一个内存介质相连,形成一条内存通道。
作为一种可能的实施例,集成内存控制器3014除了如图3所示,被集成在混合内存系统 300的处理器301中外,也可以为处理器301外的片外芯片形式作为混合内存系统300中一个端点设备(endpoint),此时,集成内存控制器3014作为内存扩展器。
作为一种可能的实施例,除了每个集成内存控制器3014分别与一个内存介质相连外,多个集成内存控制器3014也可以构成一个整体,分别通过不同端口提供处理器和内存介质的连接,此时内存控制器3014可以提供类似交换机或交换芯片的多个端口,使得处理器301可以上述内存控制器3014实现与内存介质302和内存介质303的连接。
作为一种可能的实施例,混合内存系统300为混合内存系统,除了如图3所示的内存介质302和内存介质303之外,混合内存系统300中还可以包括其他类型的内存介质,该内存介质的类型与内存介质302和内存介质303的类型不同,例如,还可以在混合内存系统300中添加随机存取存储器(random access memory,RAM)或静态随机存取存储器(staticRAM, SRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)等类型的内存介质中至少一种,此时,服务器200中包括多种类型的混合内存介质。也就是说,混合内存系统300中包括DRAM、 SCM、RAM、SRAM、SDRAM、DDR SDRAM中任意两种或两种以上类型的内存介质。示例地,混合内存系统300中可以利用SDRAM和SCM作为混合内存介质,也可以利用SDRAM 和DRAM作为混合内存介质,还可以利用DRAM、SDRAM和SCM作为内存介质。
为了便于描述,本申请的以下实施例中以DRAM和SCM两种内存介质构成混合内存系统300的混合内存介质为例进行说明。
进一步地,在初始化阶段,混合内存系统300中操作系统(operating system,OS),具体为运行操作系统的处理器(例如,图2中处理器301),可以根据分级内存机制将多种内存介质划分为不同等级。具体地,处理器301可以先根据内存介质物理属性将多种类型的内存介质划分为不用等级,其中,物理属性包括时延、成本、寿命和容量中至少一种,则处理器可以根据物理属性中至少一种将多级内存系统中内存介质划分为多个等级。此外,同一种类型的内存介质可以被划分为一个或多个等级,例如,可以根据不同厂商的内存介质的物理属性将同类型的不同内存介质划分为两个或两个以上等级。为了便于描述,以下实施例中以每种类型的内存介质被划分为一个等级为例进行说明。
示例地,图4为本申请提供的一种混合内存系统中分级内存的示意图,如图所示,混合内存系统400根据内存介质的物理属性将该系统中内存介质划分为两个等级,其中,动态随机存取器411和动态随机存取器412构成的集合410被划分为第一等级,SCM421和SCM421 构成的集合420被划分为第二等级。
值得说明的是,由于介质类型的不同,其物理属性也不同,例如,DRAM的时延低于SCM 的时延,DRAM的成本高于SCM的时延,DRAM的容量低于SCM的容量,DRAM的寿命高于SCM的寿命。具体实施时,可以根据上述物理属性中至少一种将不同类型的内存介质划分为不同等级。
事实上,在初始化阶段,混合内存系统中运行操作系统(operating system,OS)的处理器301还为每个处理器分配了内存资源,并记录了处理器和内存介质之间的对应关系,以便基于上述处理器和不同等级的内存介质的对应关系执行数据读取或写入操作。
在混合内存系统中,可以将每个处理器和/或其关联的内存介质称为非一致性内存访问 (non-uniform memory access,NUMA)节点。为了便于描述,以下实施例中将与处理器关联的内存介质称为NUMA节点。
示例地,如图4所示,混合内存系统400包括两个处理器:处理器401和处理器402,每个处理器分别与不用类型的内存介质相连,每个处理器与内存介质的连接方式可以参考图 3所示的结构,为了简洁,在此不再赘述。通常地,可以将与处理器401相连的DRAM411 称为NUMA节点1,将与处理器402相连的DRAM412称为NUMA节点2,将与处理器401 连接的SCM421称为NUMA节点3,将与处理器402连接的SCM422称为NUMA节点4。
在业务实施过程中,混合内存系统400还可以将每级内存介质划分为不同大小的内存页,以便处理器中运行的应用程序可以对上述内存页进行读或写操作。而按照内存页的大小,又可以将内存页的大小大于第三阈值的内存页称为大页或大页内存,将小于或等于第四阈值的内存页称为小页或小页内存。其中,第三阈值和第四阈值可以相同也可以不同,具体实施时,可以根据业务需求进行配置。示例地,按照当前计算机领域的发展,内存页往往被划分为不同规格,例如,4k,2MB和1GB,其中,4k的内存页也被称为小页或小页内存,2MB或1GB 的内存页则被称为大页或大页内存。具体实施中,同一混合内存系统可以包括多种不同规格的内存页,以便针对不同应用提供不同大小的内存访问方式。例如,对于云服务、大数据或内存型数据库等计算密集型应用,可以利用大页内存实现数据访问,此时,处理器可以以大页内存粒度进行数据的读或写操作,提升数据处理的效率。而对于普通场景,例如,办公应用,则可以采用小页内存实现数据访问。可选地,同一混合内存系统中也可以仅包括大页内存,此时,以便充分利用内存介质的内存资源实现云服务、大数据或内存型数据的内存访问。
作为一种可能的实现方式,对于大容量内存的场景,为了提升数据处理的效率,往往使用大页内存进行数据的处理。例如,将内存介质中内存页按照2M大小划分,并在不同内存介质中分别构建大页内存池,如多个动态随机存取存储类型的内存介质中构建第一大页内存池,多个SCM类型的内存介质中构建第二大页内存池,数据的扫描和迁移操作均以大页内存池的形式进行处理。
可选地,混合内存系统中除了包括大页内存池外,还可以构建小页内存池,也即在不同类型的内存介质中,还可以同时创建多个小页内存,并将多个小页内存构建为一个小页内存。例如,分别在DRAM中和SCM中创建4k大小的小页,将多个DRAM创建的中多个小页构成第一小页内存池,将多个SCM创建的多个小页构成第二小页内存池。
为了便于描述,以下实施例中以动态随机存取存储类型的内存介质和SCM类型的内存介质分别构建大页内存池为例进行说明。
此外,混合内存系统还可以利用最新最近使用LRU链表统计每个NUMA节点中存储数据的冷热程度。具体地,每个NUMA节点关联两个LRU链表,每个NUMA节点可以通过 LRU链表对与其对应的内存介质中已创建的内存页(例如,大页内存)进行统一管理。其中,一个LRU链表用于记录活跃清单(Active list),活跃清单包括内存介质中热数据所在内存页的信息,另一个LRU链表用于记录不活跃清单(Inactive list),不活跃清单包括内存介质中冷数据所在内存页的信息的。示例地,图4中LRU 42112为活跃页清单,LRU 42111为不活跃清单。每个链表的表项为描述系统中每一个内存页的访问信息和对应的内存页的结构体指针。通过表项在Active List(热数据)及Inactive List(冷数据)中的不同位置,表征对应的内存页的冷热程度。其中,热数据,是指单位周期内同一数据被访问的次数大于预设阈值的数据。与之相对,冷数据,则是指单位周期内同一数据被访问的次数小于或等于预设阈值的数据。
LRU链表的结构如图5所示,Active List 500和Inactive List 510分别包括头部、尾部和主体三部分,当遍历任意一个NUMA节点的内存页为热页时,将该内存页的信息(如内存页的地址、标识等用于唯一标识内存页的信息)加载至Active List 500的头部501。也就是说,一旦内核扫描到包括热数据的内存页,则将该内存页的地址或标识添加至Active list的头部。与Active list 500的处理方式类似,当内核遍历到任意一个NUMA节点关联的内存页为冷页时,则在Inactive list 510的头部511中添加一个表项,该表项记录了该内存页的地址或标识添。此时,无论Active list 500还是Inactive list 510,均可以利用多个表项记录各个内存页的信息,在执行扫描请求或根据迁移方式执行迁移处理时,可以根据上述内容提供待扫描及待迁移的内存页的信息,进而基于分级内存机制进行内存页中数据迁移。
在混合内存系统中,处理器301可以根据存储数据的冷热程度将内存页的状态划分为热页、冷页和空闲页,其中,热页是指单位周期内,同一内存页的任意一个数据被访问的次数大于第一阈值的内存页。冷页则是指单位周期内,同一内存页的任意一个数据被访问的次数小于第二阈值的内存页。空闲页则是用于指示未存储数据的内存页。其中,第一阈值和第二阈值可以相同或不同,当第一阈值或第二阈值不同时,第一阈值大于第二阈值。
作为一种可能的实施例,处理器301中包括用于记录页表管理标志位(accessbit)的转换监视缓冲器(translation look aside buffer,TLB),转换监视缓冲器也称为页表缓冲器,是一块位于处理器内的高速存储单元,里面存放的是一些页表文件(虚拟地址到物理地址的转换表page table)。如果“页表”存储在主存储器中,查询页表所付出的代价将会很大,而位于存储器内部的TLB则可以提高从虚拟地址到物理地址的转换效率。处理器可以确定单位周期内一个内存页是否被访问,并统计被访问的次数,通过各个内存页访问次数的分布,定义上述第一阈值和第二阈值,进而判断数据的冷热。
示例地,当access bit=1时,代表对应内存页被访问过;该access bit可以被周期性(如1s) 清零,以及周期性(如40s)统计access bit置位次数,用于区分在40s周期内,页面被访问的情况,从而识别出冷数据(40s内没有被访问过),热数据(40s内被访问过n次,n大于或等于1),从而实现内存数据的冷热识别。
以图2所示的场景为例,主机用户态230中调度器2311可以向主机内核220中虚拟机监视器221发送控制命令,例如,扫描请求和迁移请求,并根据主机内核态220反馈的数据冷热程度的信息确定数据迁移方式,进而控制迁移数据集在不同内存介质之间执行迁移操作。以扫描请求为例,调度器2311向运行的操作系统的内核发送扫描请求,内核会遍历每个NUMA节点关联的两张LRU链表,从中确定自上一次扫描至本次扫描之间被访问过的内存页,并将访问过的页面加载至Active List中,而未访问过的内存页则被加载至Inactive List中,同时更新冷热程度的统计变量,向主机用户态的调度器2311传递扫描结果,使得调度器2311可以获知每个NUMA节点中内存页的冷热程度。
可选地,由于内存介质中内存页的状态随着内存页中数据的访问次数的变化而不同,为了更准确的获知内存介质中数据分布情况,调度器4311可以周期性向处理器上运行的操作系统的内核发送扫描请求,以获得更准确的反映内存介质冷热程度的结果。其中,每个周期的时长可以相同或不同,也即每个周期所关联的时长可以动态调整,动态调整的方式包括根据历史统计信息获得满足性能最优需求的时长或用户配置。
接下来,结合图6进一步介绍本申请提供的数据处理方法,该方法由图3所示的处理器 301执行,该方法包括:
S610、获取混合内存系统的数据分布。
数据分布,用于指示多级内存系统中数据在不同类型的内存介质(例如,第一内存介质和第二内存介质)中的分布情况,具体为第一内存介质或第二内存介质中内存页的冷热程度。具体获取数据分布的方法可以通过上述LRU链表获取各个内存页的冷热程度,为了简洁,在此不再赘述。
作为一种可能的实现方式,数据分布也可以根据数据的冷热程度和内存介质的物理属性确定,其中,物理属性包括时延、成本、容量和寿命中至少一种。
S620、根据数据分布确定数据迁移方式,数据迁移方式用于根据数据分布实现迁移数据集在第一内存介质和第二内存介质之间的迁移处理。
假设如图4所示的混合内存系统400,DRAM类型的内存介质归属为第一等级,SCM类型的内存介质归属为第二等级,则数据迁移方式包括以下两种情况中至少一种:
情况一、将包括SCM类型的内存介质中热页的数据集迁移至DRAM类型的内存介质。
具体地,可以先判断DRAM中空闲页的数量和SCM中热页的数量,然后再执行上述数据集待迁移操作。例如,当DRAM类型的内存介质中空闲页的数量大于SCM类型的内存介质中热页的数量时,将全部热页的数据迁移至DRAM的空闲页。可选地,也可以将热页的数据中部分数据迁移至DRAM的空闲页。
通过上述数据迁移方式,可以将SCM类型的存储介质中热页的数据集存储在DRAM类型的内存介质中,降低数据被访问时的时延。
情况二、将包括DRAM类型的内存介质中冷页中数据集迁移至SCM类型的内存介质。
具体地,可以先判断SCM中空闲页的数量和DRAM中冷页的数量,然后再执行上述数据集待迁移操作。例如,当DRAM类型的内存介质中空闲页的数量小于或等于SCM类型的内存介质中热页的数量时,将全部冷页的数据迁移至SCM的空闲页。可选地,也可以将冷页的数据中部分数据迁移至SCM的空闲页。
通过上述情况二的数据迁移方式,可以将DRAM中冷页中数据集迁移至SCM类型的存储介质,使得被访问频率低的冷数据存储在低成本的内存介质中,进而保证热数据通过时延低的DRAM类型的内存介质存储,提升整个混合内存系统的处理效率。
作为一种可能的实现方式,对于情况二,还可以进一步将包括SCM类型的内存介质中热页的数据集迁移至DRAM类型的内存介质。
S630、根据数据迁移方式执行迁移数据集的迁移处理。
具体地,处理器603确定数据迁移方式后,将冷数据迁移至低成本的SCM类型的内存介质中,将热数据迁移至低时延的DRAM类型的内存介质中,以此实现混合内存系统中分级数据存储,结合数据属性和内存介质的分类实现数据的合理存储,既降低了整个系统的成本又保证了数据处理的效率。
具体地,当处理器603将冷数据迁移至低成本的存储级类型的内存介质时,可以先从SCM 构成的内存页池中选择一个或多个空闲的内存页,例如,在SCM类型的内存介质构成的大页池中选择一个或多个空闲状态的大页内存,然后,然后将待迁移的冷数据迁移至上述选择的空闲的大页内存中。当处理器603需要将热数据迁移至第时延的DRAM时,可以先从DRAM 类型的内存介质的内存池中选择一个或多个空闲的内存页,例如,在动态随机存储器的大页池中选择一个或多个空闲状态的大页内存,然后,然后将待迁移的热数据迁移至上述选择的空闲的大页内存中。
值得说明的是,上述选择空闲的内存页的数量与待迁移数据集的大小和分布有关,具体实施时,可以根据业务需求进行配置。
作为一种可能的实施例,为了适应本申请提供的内存迁移方法,处理器中还可以包括内存复制中间件模块,也可以称为memcpy中间件。内存复制中间件模块可以将根据复制的目的地址判断其归属的NUMA节点,进而确定待迁移的目的地址所在内存介质的介质类型。当需要将DRAM的数据复制至SCM中时,内存复制中间件模块会使用修改后的内存复制(memcpy)指令实现,这一实现可以最大程度地优化SCM的写入带宽。另一方向,从SCM 读取数据至DRAM时,内存复制中间件模块会将数据的地址及数据长度发送给内核(Kernel) 原生的memcpy函数进行处理,进而实现迁移数据集在不同内存介质之间的迁移操作。
通过上述方案的描述可知,通过支持多种不同类型的内存介质,使能SCM内存介质,实现内存类型的扩展,通过内存冷热属性标识,周期性扫描不同内存介质的内存页,进而统计内存页被访问情况,根据冷热属性对应不同性能的分级内存,从系统层面实现分级内存机制,在保证数据处理效率的同时降低内存成本。此外,对于大页内存,提供一种基于LRU链表的冷热管理的数据结构,周期性扫描内存页池中内存页中数据属性,进而确定内存页的状态,基于此实现数据的有效迁移处理。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
上文中结合图1至图6,详细描述了根据本申请实施例所提供的数据处理的方法,下面将结合图7,描述根据本申请实施例所提供的数据处理的装置和混合内存系统。
图7为本申请提供的一种数据处理的装置的结构示意图,如图所示,该装置700应用于混合内存系统,所述混合内存系统包括多种不同类型的内存介质,所述多种内存介质包括第一内存介质和第二内存介质,所述装置700包括:
获取单元701,用于获取所述混合内存系统的数据分布;
策略单元702,用于根据所述数据分布确定数据迁移方式,所述数据迁移方式用于根据所述数据分布实现迁移数据集在所述第一内存介质和所述第二内存介质之间的迁移处理;
迁移单元703,用于根据所述迁移方式执行所述迁移数据集的所述迁移处理。
应理解的是,本申请实施例的装置700可以通过中央处理单元(centralprocessing unit, CPU)实现,也可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。也可以通过软件实现图6所示的数据处理方法时,装置700及其各个模块也可以为软件模块。
可选地,装置700还包括分配单元704,其中,
所述获取单元701,还用于获取所述混合内存系统的内存布局,所述内存布局包括所述内存系统中部署的内存的数量和类型;
所述分配单元704,用于根据所述内存布局为第一处理器分配内存资源,其中,所述第一处理器关联最新最近使用LRU链表,所述LRU链表用于记录所述第一处理器被分配的内存资源中存储数据的冷热程度,所述LRU链表包括活跃清单Active list和不活跃清单Inactive list,所述Active list用于标识所述第一处理器关联的热数据所在内存页的信息,所述Inactive list用于标识所述第一处理器关联的冷数据所在的内存页的信息。
可选地,所述获取单元701,具体用于获取扫描请求;以及,根据所述扫描请求遍历所述分级存储系统中与所述第一处理器关联的所述第一内存介质和所述第二内存介质中内存页的所述数据分布,所述数据分布包括所述第一内存介质和所述第二内存介质中内存页的状态,所述内存页的状态包括热页、冷页或空闲页。
可选地,所述第一内存介质中包括第一大页内存池,所述第二内存介质中包括第二大页内存池,所述第一大页内存池和所述第二大页内存池分别包括至少一个第一内存页,所述至少一个第一内存页中每个第一内存页的大小大于第一阈值。
可选地,所述获取单元701,具体用于周期性获取所述扫描请求,所述扫描请求用于周期性统计所述第一内存介质和所述第二内存介质中所述第一大页内存页池和所述第二大页内存池中所述第一内存页的冷热程度。
可选地,所述策略单元702,用于在单位周期内,统计所述第一内存页中数据被读取的次数;以及,当所述第一内存页中数据被执行一次读取操作时,所述第一内存页的热度加一,所述热度用于指示所述单位周期内所述第一内存页中数据被访问的冷热程度。
可选地,所述策略单元702,具体用于确定所述混合内存系统中分级内存机制,所述分级内存机制用于指示所述混合内存系统中所述多种不同类型的内存介质的等级,所述混合内存系统包括多个等级,所述多个等级包括第一等级和第二等级;以及,根据所述数据分布和所述分级内存机制确定所述数据迁移方式。
可选地,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,
所述迁移单元703,具体用于当所述第一内存介质中空闲页的数量大于所述第二存储介质中热页的数量时,从所述第一内存池中选择一个或多个空闲的内存页,将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一内存池中所述一个或多个空闲的内存页。
可选地,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,所述迁移数据集还包括第二数据集,所述第二数据集包括至少一个冷数据,所述冷数据为单位周期内被读写的次数小于或等于第二阈值的数据,
所述迁移单元703,具体用于当所述第一内存介质中空闲页的数量小于或等于所述第二内存介质中热页的数量时,从第二内存池中选择一个或多个空闲内存页,将包括所述第一内存介质中冷页中数据的所述第二数据集迁移至所述第二内存池中所述一个或多个空闲内存页。
可选地,所述迁移单元703,还用于将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一内存池中一个或多个空闲的内存页。
可选地,所述第一内存介质的时延低于所述第二内存介质的时延,所述第一内存介质的成本高于所述第二内存介质。
可选地,所述第一存储介质的寿命高于所述第一内存介质,所述第一存储介质的容量低于所述第二内存介质的容量。
可选地,所述第一内存介质为动态随机存取存储器DRAM,所述第二内存介质为存储级内存SCM,所述SCM包括相变存储器PCM,磁性随机存储器MRAM、电阻型随机存储器RRAM,铁电式存储器FRAM,快速NAND或纳米随机存储器NRAM中至少一种。
可选地,所述装置与所述多种不同类型的内存介质通过支持内存语义的接口相连,所述接口包括支持计算机快速链接CXL、缓存一致互联协议CCIX或统一总线UB中至少一种接口。
可选地,所述混合内存系统应用于部署大容量内存的场景,所述场景包括大数据、内存型数据库或云服务中至少一种。
根据本申请实施例的装置700可对应于执行本申请实施例中描述的方法,并且装置700 中的各个单元的上述和其它操作和/或功能分别为了实现图5中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请还提供一种混合内存系统,示例地,如图3所示,该混合内存系统包括处理器和多种不同类型的内存介质,为了简洁,在此不再赘述。
本申请还提供一种处理器,该处理器包括集成电路,所述集成电路与多种不同类型的内存介质相连,集成电路用于实现图6所示方法600中各个操作步骤的功能,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (35)
1.一种数据处理方法,其特征在于,所述方法应用于混合内存系统,所述混合内存系统包括多种不同类型的内存介质,所述多种内存介质包括第一内存介质和第二内存介质,所述方法包括:
获取所述混合内存系统中数据在不同类型的内存介质中的数据分布;
根据所述数据分布确定数据迁移方式,所述数据迁移方式用于根据所述数据分布实现迁移数据集在所述第一内存介质和所述第二内存介质之间的迁移处理;
根据所述迁移方式执行所述迁移数据集的所述迁移处理。
2.根据权利要求1所述的方法,其特征在于,所述混合内存系统还包括处理器,
所述处理器关联最新最近使用LRU链表,所述LRU链表用于记录所述处理器被分配的内存资源中存储数据的冷热程度,所述LRU链表包括活跃清单Active list和不活跃清单Inactive list,所述Active list用于标识所述处理器关联的热数据所在内存页的信息,所述Inactive list用于标识所述处理器关联的冷数据所在的内存页的信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取扫描请求;
根据所述扫描请求遍历所述分级存储系统中与所述第一处理器关联的所述第一内存介质和所述第二内存介质中内存页的所述数据分布,所述数据分布包括所述第一内存介质和所述第二内存介质中内存页的状态,所述内存页的状态包括热页、冷页或空闲页。
4.根据权利要求3所述的方法,其特征在于,所述第一内存介质中包括第一大页内存池,所述第二内存介质中包括第二大页内存池,所述第一大页内存池和所述第二大页内存池中的内存页的大小大于第一阈值。
5.根据权利要求3或4所述的方法,其特征在于,所述获取扫描请求,包括:
周期性获取所述扫描请求,所述扫描请求用于周期性统计所述第一内存介质和所述第二内存介质中的内存页的冷热程度。
6.根据权利要求3所述的方法,其特征在于,在获取所述扫描请求之前,所述方法还包括:
在单位周期内,统计所述第一内存页中数据被读取的次数;
当所述第一内存页中数据被执行一次读取操作时,所述第一内存页的热度加一,所述热度用于指示所述单位周期内所述第一内存页中数据被访问的冷热程度。
7.根据权利要求1至6中任一所述的方法,其特征在于,所述迁移数据集包括第一数据集,所述第一数据集包括至少一个热数据,所述热数据为单位周期内数据被读写的次数大于第一阈值的数据。
8.根据权利要求1至7中任一所述的方法,其特征在于,所述根据所述数据分布确定数据迁移方式,包括:
确定所述混合内存系统中分级内存机制,所述分级内存机制用于指示所述混合内存系统中所述多种不同类型的内存介质的等级,所述混合内存系统包括多个等级,所述多个等级包括第一等级和第二等级;
根据所述数据分布和所述混合内存机制确定所述数据迁移方式。
9.根据权利要求8所述的方法,其特征在于,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,则根据所述数据分布和所述分级内存机制确定所述数据迁移方式,包括:
从所述第一大页内存池中选择一个或多个空闲的内存页,将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一大页内存池中所述一个或多个空闲的内存页。
10.根据权利要求8所述的方法,其特征在于,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,所述迁移数据集还包括第二数据集,所述第二数据集包括至少一个冷数据,所述冷数据为单位周期内被读写的次数小于或等于第二阈值的数据,则根据所述数据分布和所述分级内存机制确定所述数据迁移方式,包括:
从第二大页内存池中选择一个或多个空闲内存页,将包括所述第一内存介质中冷页中数据的所述第二数据集迁移至所述第二大页内存池中所述一个或多个空闲内存页。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一内存池中一个或多个空闲的内存页。
12.根据权利要求1至11中任一所述的方法,其特征在于,所述第一内存介质的时延低于所述第二内存介质的时延,所述第一内存介质的成本高于所述第二内存介质。
13.根据权利要求12所述的方法,其特征在于,所述第一存储介质的寿命高于所述第一内存介质,所述第一存储介质的容量低于所述第二内存介质的容量。
14.根据权利要求1至13中任一所述的方法,其特征在于,所述第一内存介质为动态随机存取存储器DRAM,所述第二内存介质为存储级内存SCM,所述SCM包括相变存储器PCM,磁性随机存储器MRAM、电阻型随机存储器RRAM,铁电式存储器FRAM,快速NAND或纳米随机存储器NRAM中至少一种。
15.根据权利要求1至14中任一所述的方法,其特征在于,所述处理器与所述多种不同类型的内存介质通过支持内存语义的接口相连,所述接口包括支持计算机快速链接CXL、缓存一致互联协议CCIX或统一总线UB中至少一种接口。
16.根据权利要求1至15中任一所述的方法,其特征在于,所述混合内存系统为服务器或服务器集群,所述服务器集群包括两个或两个以上服务器。
17.根据权利要求1至16中任一所述的方法,其特征在于,所述混合内存系统应用于部署大容量内存的场景,所述场景包括大数据、内存型数据库或云服务中至少一种。
18.一种数据处理的装置,其特征在于,所述装置应用于混合内存系统,所述混合内存系统包括多种不同类型的内存介质,所述多种内存介质包括第一内存介质和第二内存介质,所述装置包括:
获取单元,用于获取所述混合内存系统中数据在不同类型的内存介质中的数据分布;
策略单元,用于根据所述数据分布确定数据迁移方式,所述数据迁移方式用于根据所述数据分布实现迁移数据集在所述第一内存介质和所述第二内存介质之间的迁移处理;
迁移单元,用于根据所述迁移方式执行所述迁移数据集的所述迁移处理。
19.根据权利要求18所述的装置,其特征在于,所述装置包括处理器,所述处理器关联最新最近使用LRU链表,所述LRU链表用于记录所述处理器被分配的内存资源中存储数据的冷热程度,所述LRU链表包括活跃清单Active list和不活跃清单Inactive list,所述Active list用于标识所述处理器关联的热数据所在内存页的信息,所述Inactive list用于标识所述处理器关联的冷数据所在的内存页的信息。
20.根据权利要求19所述的装置,其特征在于,
所述获取单元,具体用于获取扫描请求;以及,根据所述扫描请求遍历所述分级存储系统中与所述第一处理器关联的所述第一内存介质和所述第二内存介质中内存页的所述数据分布,所述数据分布包括所述第一内存介质和所述第二内存介质中内存页的状态,所述内存页的状态包括热页、冷页或空闲页。
21.根据权利要求20所述的装置,其特征在于,所述第一内存介质中包括第一大页内存池,所述第二内存介质中包括第二大页内存池,所述第一大页内存池和所述第二大页内存池中的内存页的大小大于第一阈值。
22.根据权利要求20或21所述的装置,其特征在于,
所述获取单元,具体用于周期性获取所述扫描请求,所述扫描请求用于周期性统计所述第一内存介质和所述第二内存介质中的内存页的冷热程度。
23.根据权利要求20所述的装置,其特征在于,
所述策略单元,用于在单位周期内,统计所述第一内存页中数据被读取的次数;以及,当所述第一内存页中数据被执行一次读取操作时,所述第一内存页的热度加一,所述热度用于指示所述单位周期内所述第一内存页中数据被访问的冷热程度。
24.根据权利要求18至23中任一所述的装置,其特征在于,
所述策略单元,具体用于确定所述混合内存系统中分级内存机制,所述分级内存机制用于指示所述混合内存系统中所述多种不同类型的内存介质的等级,所述混合内存系统包括多个等级,所述多个等级包括第一等级和第二等级;以及,根据所述数据分布和所述分级内存机制确定所述数据迁移方式。
25.根据权利要求24所述的装置,其特征在于,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,
所述迁移单元,具体用于从所述第一大页内存池中选择一个或多个空闲的内存页,将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一大页内存池中所述一个或多个空闲的内存页。
26.根据权利要求24所述的装置,其特征在于,所述第一内存介质归属为第一等级,所述第二内存介质归属为第二等级,所述迁移数据集还包括第二数据集,所述第二数据集包括至少一个冷数据,所述冷数据为单位周期内被读写的次数小于或等于第二阈值的数据,
所述迁移单元,具体用于从第二大页内存池中选择一个或多个空闲内存页,将包括所述第一内存介质中冷页中数据的所述第二数据集迁移至所述第二大页内存池中所述一个或多个空闲内存页。
27.根据权利要求26所述的装置,其特征在于,
所述迁移单元,还用于将包括所述第二内存介质中热页的数据的第一数据集迁移至所述第一内存池中一个或多个空闲的内存页。
28.根据权利要求18至27中任一项所述的装置,其特征在于,所述第一内存介质的时延低于所述第二内存介质的时延,所述第一内存介质的成本高于所述第二内存介质。
29.根据权利要求28所述的装置,其特征在于,所述第一存储介质的寿命高于所述第一内存介质,所述第一存储介质的容量低于所述第二内存介质的容量。
30.根据权利要求18至29中任一所述的方法,其特征在于,所述第一内存介质为动态随机存取存储器DRAM,所述第二内存介质为存储级内存SCM,所述SCM包括相变存储器PCM,磁性随机存储器MRAM、电阻型随机存储器RRAM,铁电式存储器FRAM,快速NAND或纳米随机存储器NRAM中至少一种。
31.根据权利要求18至30中任一所述的方法,其特征在于,所述装置与所述多种不同类型的内存介质通过支持内存语义的接口相连,所述接口包括支持计算机快速链接CXL、缓存一致互联协议CCIX或统一总线UB中至少一种接口。
32.根据权利要求18至31中任一所述的方法,其特征在于,所述混合内存系统应用于部署大容量内存的场景,所述场景包括大数据、内存型数据库或云服务中至少一种。
33.一种处理器,其特征在于,所述处理器包括集成电路,所述集成电路与多种不同类型的内存介质相连,所述集成电路用于实现上述方法权要1至17中任一项所述方法的操作步骤。
34.一种混合内存系统,其特征在于,所述混合内存系统包括处理器、多种不同类型的内存介质,所述多种内存介质包括第一内存介质和第二内存介质,所述第一内存介质或所述第二内存介质用于存储计算机执行指令,所述处理器执行所述计算机执行指令以实现上述权利要求1至17中任一项所述方法的操作步骤。
35.一种计算机可读存储介质,所述计算机可读存储介质中包括指令,当其在计算机上运行时,使得计算机执行权利要求1至17中任一所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111160263.5A CN115904212A (zh) | 2021-09-30 | 2021-09-30 | 数据处理的方法、装置、处理器和混合内存系统 |
PCT/CN2022/122693 WO2023051715A1 (zh) | 2021-09-30 | 2022-09-29 | 数据处理的方法、装置、处理器和混合内存系统 |
EP22875096.4A EP4390648A1 (en) | 2021-09-30 | 2022-09-29 | Data processing method and apparatus, processor, and hybrid memory system |
US18/611,664 US20240231669A1 (en) | 2021-09-30 | 2024-03-20 | Data processing method and apparatus, processor, and hybrid memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111160263.5A CN115904212A (zh) | 2021-09-30 | 2021-09-30 | 数据处理的方法、装置、处理器和混合内存系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904212A true CN115904212A (zh) | 2023-04-04 |
Family
ID=85750345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111160263.5A Pending CN115904212A (zh) | 2021-09-30 | 2021-09-30 | 数据处理的方法、装置、处理器和混合内存系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240231669A1 (zh) |
EP (1) | EP4390648A1 (zh) |
CN (1) | CN115904212A (zh) |
WO (1) | WO2023051715A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483740A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
CN116700935A (zh) * | 2023-08-04 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 一种内存数据迁移方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149915B (zh) * | 2023-10-31 | 2024-03-29 | 湖南三湘银行股份有限公司 | 用于云端数据库迁移到开源数据库的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699424B (zh) * | 2015-03-26 | 2018-06-12 | 华中科技大学 | 一种基于页面热度的异构内存管理方法 |
CN106227598A (zh) * | 2016-07-20 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种缓存资源的回收方法 |
CN108804350B (zh) * | 2017-04-27 | 2020-02-21 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
CN107193646B (zh) * | 2017-05-24 | 2020-10-09 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN110532200B (zh) * | 2019-08-26 | 2023-08-01 | 北京大学深圳研究生院 | 一种基于混合内存架构的内存系统 |
-
2021
- 2021-09-30 CN CN202111160263.5A patent/CN115904212A/zh active Pending
-
2022
- 2022-09-29 EP EP22875096.4A patent/EP4390648A1/en active Pending
- 2022-09-29 WO PCT/CN2022/122693 patent/WO2023051715A1/zh active Application Filing
-
2024
- 2024-03-20 US US18/611,664 patent/US20240231669A1/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483740A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
CN116483740B (zh) * | 2023-06-21 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
CN116700935A (zh) * | 2023-08-04 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 一种内存数据迁移方法、装置、电子设备及存储介质 |
CN116700935B (zh) * | 2023-08-04 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种内存数据迁移方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4390648A1 (en) | 2024-06-26 |
WO2023051715A1 (zh) | 2023-04-06 |
US20240231669A1 (en) | 2024-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102268722B1 (ko) | 데이터 액세스 장치 및 그것의 동작 방법 | |
TWI781439B (zh) | 映射未經分類之記憶體存取至經分類之記憶體存取 | |
US12066951B2 (en) | Page table hooks to memory types | |
US11663133B2 (en) | Memory tiering using PCIe connected far memory | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
WO2023051715A1 (zh) | 数据处理的方法、装置、处理器和混合内存系统 | |
US10503647B2 (en) | Cache allocation based on quality-of-service information | |
KR20220049026A (ko) | 메모리 네임스페이스에 대한 데이터 바인딩을 위한 메모리 시스템 | |
US20230244394A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
US11836087B2 (en) | Per-process re-configurable caches | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
WO2023051000A1 (zh) | 内存管理方法、装置、处理器及计算设备 | |
WO2014051544A2 (en) | Improved performance and energy efficiency while using large pages | |
WO2023051359A1 (zh) | 控制内存带宽的方法、装置、处理器及计算设备 | |
EP4220414B1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same | |
US20230236737A1 (en) | Storage Controller Managing Different Types Of Blocks, Operating Method Thereof, And Operating Method Of Storage Device Including The Same | |
US11687359B2 (en) | Hybrid memory management apparatus and method for many-to-one virtualization environment | |
US12141465B2 (en) | Object management in tiered memory systems | |
Shen et al. | Zone Based Writing Optimization in User Space | |
US20220197537A1 (en) | Object management in tiered memory systems | |
CN116501243A (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 |