CN117056087B - 云数据中心混合内存优化方法、计算机装置及存储介质 - Google Patents
云数据中心混合内存优化方法、计算机装置及存储介质 Download PDFInfo
- Publication number
- CN117056087B CN117056087B CN202311312528.8A CN202311312528A CN117056087B CN 117056087 B CN117056087 B CN 117056087B CN 202311312528 A CN202311312528 A CN 202311312528A CN 117056087 B CN117056087 B CN 117056087B
- Authority
- CN
- China
- Prior art keywords
- access
- page
- memory
- cache
- data
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005457 optimization Methods 0.000 title claims abstract description 10
- 238000013508 migration Methods 0.000 claims abstract description 67
- 230000005012 migration Effects 0.000 claims abstract description 67
- 238000013507 mapping Methods 0.000 claims abstract description 52
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 230000007246 mechanism Effects 0.000 claims abstract description 10
- 238000013523 data management Methods 0.000 claims abstract description 7
- 230000008901 benefit Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 abstract description 11
- 235000019580 granularity Nutrition 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了云数据中心混合内存优化方法、计算机装置及存储介质,包括:通过实时监测内存访问区域获取内存访问请求,将所有的所述内存访问请求通过访问模式识别器CAM监测访问请求类型;将不同的所述内存访问模式在多线程模式下建立地址映射表;通过所述内存访问请求中高频访问的页面迁移获取对应物理页面的访问键值表;采用混合粒度数据管理策略获取所述热数据在访问页面中的访问特征;通过所述访问特征建立基于高频访问页面迁移的迁移映射表,通过迁移阈值动态调整机制实时迁移数据,降低了末级缓存线程间的干扰问题,实现了精确的热数据识别,减少了地址转换开销,在保持超级页连续性的同时加快了地址转换的速度,提升了系统性能。
Description
技术领域
本发明涉及云数据存储技术领域,具体涉及云数据中心混合内存优化方法、计算机装置及存储介质。
背景技术
大数据催生的很多以数据为中心的技术和应用对计算机内存的容量、速度、能耗提出了更高的要求,传统的DRAM内存技术因其存储密度小,易失性和静态功耗大等问题难以满足新的技术对于大容量内存的需求,为解决传统计算机主存面临的瓶颈,由非易失存储器NVM和动态随机存储器DRAM共同组成计算机内存的混合内存技术的提出受到了学术界的广泛关注,这种新的内存结构的出现对整个系统结构带来了深刻的影响,且主存结构的改变首先会直接影响到缓存系统的设计。
在混合内存环境下,由于末级缓存的DRAM数据和NVM数据存在缺失惩罚不对称的现象,传统的通过优化缓存命中率来提升缓存性能的方法在混合内存环境下不在有效;另一方面,缓存的访问模式的动态变化也是影响缓存性能的关键因素,而缓存在整个存储体系中的作用至关重要。
目前用于混合内存优化方法存在以下问题:(1)混合内存技术对多线程系统下的缓存管理策略带来了新的挑战,由于多线程环境下,共享末级缓存存在严重的线程间干扰问题,需要根据每个线程的缓存访问特征合理的分配末级缓存资源;(2)随着数据密集型应用越来越大的内存消耗,现有的混合内存页面管理策略已经难以解决虚实地址转换开销大的难题,且对高频访问页面不具有实时性,难以快速识别出热页面,易对系统性能造成很大的负面影响。
发明内容
本发明的目的在于提供云数据中心混合内存优化方法、计算机装置及存储介质,以解决现有技术中共享末级缓存存在严重的线程间干扰问题,现有的混合内存页面管理策略已经难以解决虚实地址转换开销大的难题,且对高频访问页面不具有实时性,难以快速识别出热页面的技术问题。
为解决上述技术问题,本发明具体提供下述技术方案:
本发明的第一个方面,提供了云数据中心混合内存优化方法,包括以下步骤:
通过实时监测内存访问区域获取内存访问请求,将所有的所述内存访问请求通过访问模式识别器CAM监测访问请求类型,将每个所述访问请求类型根据缓存状态划分多个内存访问模式;
将不同的所述内存访问模式在多线程模式下建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,所述物理地址用于标识物理地址超级页;
将所述物理地址转换成包含物理地址超级页的页编号和逻辑页编号的二元组,通过所述内存访问请求中高频访问的页面迁移获取对应物理页面的访问键值表,所述访问键值表是多线程的;
统计所述访问键值表的访问频次,根据所述访问频次确定高频访问区域,将所述高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据在访问页面中的访问特征;
通过所述访问特征建立基于高频访问页面迁移的迁移映射表,通过迁移阈值动态调整机制实时迁移数据,并采用页面同步策略实时更新缓存空间,并将更新后的数据同步到存储设备中。
作为本发明的一种优选方案,在所述内存访问区域监测到所述内存访问请求时,采用内存缓存检测模块对所述内存访问区域进行识别,获取每个所述内存访问区域的多线程末级缓存情况,包括:
根据所述内存访问区域的数据采集周期,收集每个线程在末级缓存中的命中和缺失信息,获取每个所述内存访问区域的多线程末级缓存情况;
根据所述末级缓存中的命中和缺失信息对每个线程的访问模式进行识别,并将识别信息送入内存缓存检测模块,获取每个线程对所述内存访问请求的缓存类别;
其中,通过访问模式识别器CAM监测每个所述内存访问请求的类型的方法,包括:
通过所述访问模式识别器CAM并行监测每个所述内存访问区域的多线程末级缓存情况,并收集每个线程在末级缓存中的所述缓存类别;
通过所述缓存类别对并行的多线程设置优先级,将所有的所述内存访问请求进行归类,获取访问请求类型。
作为本发明的一种优选方案,将每个所述访问请求类型根据缓存类别划分多个内存访问模式,包括:
对每个线程设置一个所述访问模式识别器CAM,根据每个所述线程的组路相连数量设置访问计数器,当线程运行时,将每个线程的缓存情况视为独占整个缓存空间的情况;
当访问数据不重复时,将所述访问计数器加一,记录每个线程运行期间的缓存访问信息,利用所述访问模式识别器CAM识别所述缓存访问信息,获取对应的所述访问请求类型;
根据所述访问请求类型将所述内存访问区域的缓存空间设置为总的缓存路数,从总的缓存空间开始分配缓存区域;
循环计算多个所述线程对应缓存区域的边际效益,获取访问模式下的内存分配区域,根据所述内存分配区域的缓存状态划分多个内存访问模式。
作为本发明的一种优选方案,对所述内存访问模式建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,包括:
对所述内存访问模式采用全相联映射查找对应Valid位为1的表项获取地址映射表,遍历所述地址映射表判断所述地址表项页面是否和所述地址映射表中的一个地址表项一致;
如果一致则获取该表项的物理块号,加上对应地址表项页面的偏移获取页面物理地址并寻址,将所述寻址结果作为对应所述内存访问请求的物理地址;
如果不一致,则继续执行遍历操作。
作为本发明的一种优选方案,将所述物理地址用于标识物理地址超级页,以所述二元组的形式获取内存访问模式下的高频访问页面,记录所述高频访问页面的访问键值表,包括:
所述内存访问请求在访问时对物理地址进行寻址,将寻址后的所述物理地址表示为标有超级页页框号和逻辑号的二元组,其中/>表示物理地址所在表项超级页的页框号,/>表示物理地址所在超级页内部的逻辑号;
根据所述超级页页框号和逻辑号的循环次数判断所述二元组是否被第一次访问;
若是第一次被访问,则在NVM存储器中申请一个新的NVM超级页,填充与超级页相关的二元组信息;
若不是第一次被访问,记录当前所述二元组的访问频度,识别出热度较高的所述二元组作为高频访问页面。
作为本发明的一种优选方案,根据所述高频访问页面的访问频次将高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据的访问特征,包括:
保留所述高频访问页面及热数据,并将其保存在PM的C_Sector中,丢弃不含所述热数据的访问请求;在所述PM缓存区更新所述PM的元组,并将其存储在单个或多个缓存行中,通过链表形式连接元组,在所述元组里记录频繁访问的区域;
当接收所述内存访问请求时,根据不同元组所在的区域将更新后的元组放置在不同的地方,获取页面访问的特征,记录页面的访问信息并存储在PM中。作为本发明的一种优选方案,依据所述热数据的访问特征在不同内存间建立迁移映射表,通过迁移阈值动态调整机制实时迁移数据,包括:
根据所述热数据的访问特征收集访问数据的访问键值,建立访问次数链表和访问时间链表,当所述访问次数链表和访问时间链表填满后,将淘汰的数据放入到对应的历史表中;
根据所述淘汰的数据在历史表中的位置,更新访问时间和访问次数的权值,从权重较小的历史表中挑选需要迁移的数据,将所述需要迁移的数据最先放入历史表中;
通过所述历史表建立对应的迁移映射表,根据当前混合内存架构下缓存的内存利用率来周期性的调整迁移阈值。
作为本发明的一种优选方案,对所述迁移映射表采用页面同步策略实时将更新数据同步至原始页面,更新缓存空间,所述页面同步策略在数据迁移过程中采用HiBuffer触发同步方式将加载迁移页面的操作从同步页面中移除,且在加载目标页面的同时,并发的加载同步操作需要的原始页面。
本发明的第二个方面,提供了一种计算机装置,
包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行。
本发明的第三个方面,提供了一种计算机可读存储介质,
所述计算机可读存储介质中存储有计算机执行指令,处理器执行所述计算机执行指令。
本发明与现有技术相比较具有如下有益效果:
本发明采用不同粒度的页面来管理NVM和DRAM内存,将超级页拆分成多个二元组,在超级页内部以二元组为基本粒度进行迁移调度,设置多个线程并行读写的模式,降低了末级缓存线程间的干扰问题,避免了以常规页面为单位的频繁迁移,节省了CPU周期和系统资源。
根据当前DRAM缓存的利用率,采取迁移阈值动态调整策略,尽可能多的将数据放置在DRAM中,以充分利用了DRAM的性能和容量优势,采用热度预测和精确计数相结合的两级热数据识别机制,在不增加过多缓存空间开销的同时,实现了精确的热数据识别,在迁移页面设计了组迁移映射表,减少了地址转换开销,在保持超级页连续性的同时加快了地址转换的速度,提升了系统性能。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本发明实施例提供的云数据中心混合内存优化方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供了云数据中心混合内存优化方法,包括以下步骤:
通过实时监测内存访问区域获取内存访问请求,将所有的所述内存访问请求通过访问模式识别器CAM监测访问请求类型,将每个所述访问请求类型根据缓存状态划分多个内存访问模式;
本实施例中,通过所述访问模式识别器CAM能够及时识别每个线程对应的访问模式特征信息,结合对应的访问模式信息综合进行缓存空间资源的分配,能够有效缓解混合内存下不同类型数据对缓存效率的要求。
将不同的所述内存访问模式在多线程模式下建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,所述物理地址用于标识物理地址超级页;
将所述物理地址转换成包含物理地址超级页的页编号和逻辑页编号的二元组,通过所述内存访问请求中高频访问的页面迁移获取对应物理页面的访问键值表,所述访问键值表是多线程的;
统计所述访问键值表的访问频次,根据所述访问频次确定高频访问区域,将所述高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据在访问页面中的访问特征;
本实施例中,根据所述内存访问请求的访问频次获取热数据迁移的概率分布,当需要迁移数据到SSD层时,只需要对访问区域访问次数的权重和访问时间的权重进行比较,从权重小的历史表属性中进行挑选访问数据,比如当前的访问次数的权重大时,说明现在的访问模式更倾向于当前访问时间的访问次数,那么应该根据访问时间挑选迁移的访问数据,当前访问的访问时间的权重大时,就挑选最早进入当前访问的访问次数历史表中的数据作为迁移数据。
通过所述访问特征建立基于高频访问页面迁移的迁移映射表,通过迁移阈值动态调整机制实时迁移数据,并采用页面同步策略实时更新缓存空间,并将更新后的数据同步到存储设备中。
本实施例中,根据当前缓存的内存利用率来周期性的调整迁移阈值,将当前迁移阈值的调整周期设定为个CPU周期,所述内存利用率表示动态随机存储器中用于缓存NVM热数据的页面所占动态随机存储器总页面的百分比。
在所述内存访问区域监测到所述内存访问请求时,采用内存缓存检测模块对所述内存访问区域进行识别,获取每个所述内存访问区域的多线程末级缓存情况,包括:
根据所述内存访问区域的数据采集周期,收集每个线程在末级缓存中的命中和缺失信息,获取每个所述内存访问区域的多线程末级缓存情况;
根据所述末级缓存中的命中和缺失信息对每个线程的访问模式进行识别,并将识别信息送入内存缓存检测模块,获取每个线程对所述内存访问请求的缓存类别;
其中,通过访问模式识别器CAM监测每个所述内存访问请求的类型的方法,包括:
通过所述访问模式识别器CAM并行监测每个所述内存访问区域的多线程末级缓存情况,并收集每个线程在末级缓存中的所述缓存类别;
通过所述缓存类别对并行的多线程设置优先级,将所有的所述内存访问请求进行归类,获取访问请求类型。
本实施例中,所述访问模式识别器CAM及时识别出每个线程对应的访问模式特征信息,能够动态的感知到NVM缺失数目的信息,然后结合对应的访问模式信息综合进行缓存空间资源的分配,采用半共享式的缓存划分机制,能够有效提高内个线程的可用缓存容量,进一步提升末级缓存的整体性能。
将每个所述访问请求类型根据缓存类别划分多个内存访问模式,包括:
对每个线程设置一个所述访问模式识别器CAM,根据每个所述线程的组路相连数量设置访问计数器,当线程运行时,将每个线程的缓存情况视为独占整个缓存空间的情况;
当访问数据不重复时,将所述访问计数器加一,记录每个线程运行期间的缓存访问信息,利用所述访问模式识别器CAM识别所述缓存访问信息,获取对应的所述访问请求类型;
根据所述访问请求类型将所述内存访问区域的缓存空间设置为总的缓存路数,从总的缓存空间开始分配缓存区域;
循环计算多个所述线程对应缓存区域的边际效益,获取访问模式下的内存分配区域,根据所述内存分配区域的缓存状态划分多个内存访问模式。
本实施例中,利用所述访问模式识别器CAM能够监测到每个线程的运行期间的缓存访问信息,在得到每个线程缓存访问信息后就可以进行访问模式识别,当线程中只能使用多路缓存其中记录访问信息时,可以通过将线程对应的计数器合并作为确实计数器即可,可以得到每个线程在任意缓存空间中划分对应的命中和缺失信息,从而便于找到一种最佳的缓存分配方案。
对所述内存访问模式建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,包括:
对所述内存访问模式采用全相联映射查找对应Valid位为1的表项获取地址映射表,遍历所述地址映射表判断所述地址表项页面是否和所述地址映射表中的一个地址表项一致;
如果一致则获取该表项的物理块号,加上对应地址表项页面的偏移获取页面物理地址并寻址,将所述寻址结果作为对应所述内存访问请求的物理地址;
如果不一致,则继续执行遍历操作。
本实施例中,采用所述地址映射表作为混合内存的地址映射关系,通过所述地址映射表仅仅需要额外访问一次sMMT缓存或sMMT的位图结构,通过快速的位操作即可定位数据所在的存储设备,然后从sMMT表项中获取对应的物理地址,可以降低评价指令延时,提升系统性能。
本实施例中,所述地址映射表中的迁移位图中在默认情况下都为1,表示该动态随机存储器页面中数据是有效的,比特位为0表示该动态随机存储器页面中由于动态随机存储器页面置换而写回了NVM中,当某个NVM组中完成数据迁移操作后,该组对应的sMMT表项的位图皆为1,表示动态随机存储器页面中的数据均是有效的;当动态随机存储器的内存利用率很高并触发动态随机存储器页面置换的时候,将动态随机存储器中较冷的页面迁移回NVM,此时将该动态随机存储器页面对应的sMMT表项的位图中的相应比特位设置为0,表示该动态随机存储器页面的数据是无效的,而真正有效的数据位于NVM中。
本实施例中,所述地址映射表采用替换策略实时更新表中数据,所述替换策略采用类LRU算法,一方面,利用类LRU算法中缓存块在缓存组中的位置信息来计算缓存块的重用几率;另一方面如果页面的热度未达到一定的阈值不参与地址映射表的替换,冷热页切换过程除外;根据上层应用的访存局部性特征返回的热页信息,进行地址映射表的替换,如果是热页变冷页就将页表有效位设置为无效,使该映射表表项成为空项;如果是冷页变成热页,映射表中有空项则直接添加,映射表表满则结合计数位和热度位,应用类LRU算法进行替换,替换伴随着迁移,先将页面的脏数据写回,再迁移新的页面。
将所述物理地址用于标识物理地址超级页,以所述二元组的形式获取内存访问模式下的高频访问页面,记录所述高频访问页面的访问键值表,包括:
所述内存访问请求在访问时对物理地址进行寻址,将寻址后的所述物理地址表示为标有超级页页框号和逻辑号的二元组其中/>表示物理地址所在表项超级页的页框号,/>表示物理地址所在超级页内部的逻辑号;
根据所述超级页页框号和逻辑号的循环次数判断所述二元组是否被第一次访问;
若是第一次被访问,则在NVM存储器中申请一个新的NVM超级页,填充与超级页相关的二元组信息;
若不是第一次被访问,记录当前所述二元组的访问频度,识别出热度较高的所述二元组作为高频访问页面。本实施例中,通过二元组/>查询多级页表实现虚拟地址到实际NVM内存物理地址的转换,减少了地址转换开销,能够在保持超级页连续性的同时加快了地址转换的速度。
根据所述高频访问页面的访问频次将高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据的访问特征,包括:
保留所述高频访问页面及热数据,并将其保存在PM的C_Sector中,丢弃不含所述热数据的访问请求;
在所述PM缓存区更新所述PM的元组,并将其存储在单个或多个缓存行中,通过链表形式连接元组,在所述元组里记录频繁访问的区域;
当接收所述内存访问请求时,根据不同元组所在的区域将更新后的元组放置在不同的地方,获取页面访问的特征,记录页面的访问信息并存储在PM中。
依据所述热数据的访问特征在不同内存间建立迁移映射表,通过迁移阈值动态调整机制实时迁移数据,包括:
根据所述热数据的访问特征收集访问数据的访问键值,建立访问次数链表和访问时间链表,当所述访问次数链表和访问时间链表填满后,将淘汰的数据放入到对应的历史表中;
根据所述淘汰的数据在历史表中的位置,更新访问时间和访问次数的权值,从权重较小的历史表中挑选需要迁移的数据,将所述需要迁移的数据最先放入历史表中;
通过所述历史表建立对应的迁移映射表,根据当前混合内存架构下缓存的内存利用率来周期性的调整迁移阈值。
本实施例中,所根据应用程序的访存行为动态地调整迁移阈值,结合当前DRAM缓存的内存利用率来周期性的调整迁移阈值,在系统初始化阶段,设置初始的迁移阈值为:当DRAM利用率低于20%时,可能当前的迁移阈值设置的过大了,使得应用程序中热度较高的组难以达到迁移阈值,此时应该较大幅度的降低迁移阈值;
当DRAM利用率位于20%-50%之间时,此时有半数左右的NVM热数据完成了迁移,但是此时DRAM内存占用率仍旧不高,难以充分利用DRAM的性能和容量优势,此时应该小幅度的降低迁移阈值,以迁移更多的NVM热数据;
当DRAM利用率位于50%-75%之间时,DRAM利用率已经处在了较高水位,此时应该小幅度的增加迁移阈值,以避免大量的数据迁移造成过大的开销。
当DRAM利用率超过75%-80%时,则应该成倍增加迁移阈值,以避免无益的数据迁移造成的页面抖动。
当DRAM的利用率达到80%时,由独立的操作系统模块完成DRAM页面置换流程,以释放相对较冷的DRAM页面。
对所述迁移映射表采用页面同步策略实时将更新数据同步至原始页面,更新缓存空间,所述页面同步策略在数据迁移过程中采用HiBuffer触发同步方式将加载迁移页面的操作从同步页面中移除,且在加载目标页面的同时,并发的加载同步操作需要的原始页面。
本实施例中,页面同步流程为:为了保证页面的完整性和一致性,首先需要从磁盘中加载原始页面到DRAM中;再将PM中的D_Sector和C_Sector中的更新数据同步到原始页面;最后,同步DRAM_Line中的更新数据,将更新后的页面写入到磁盘中。
本实施例中,采用并发读取的方式将加载页面的操作从同步页面的关键路径中移除,通常HiBuffer触发同步操作的原因是:如果目标数据在内存未命中,HiBuffer在加载目标页面的同时发现内存没有空闲空间,则需要执行替换算法来获得可用空间;在替换操作中,如果被选择的页面含有更新数据,HiBuffer会执行同步操作,因此,我们可以在加载目标页面的同时,并发的加载同步操作需要的原始页面,通过并发读取页面的方式,HiBuffer可以有效的缓解额外I/O造成的开销,减少对系统性能的影响。
第二实施例:一种计算机装置,
包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行。
第三实施例:一种计算机可读存储介质,
所述计算机可读存储介质中存储有计算机执行指令,处理器执行所述计算机执行指令。
本实施例中,所述存储介质支持多元存储方案共存,而云游戏平台存储系统架构从上到下,将存储系统分为中心存储、区域根存储、子区域存储集群、云游戏实例本地存储四个层级,整体上在性能、容灾、成本上取得平衡,拥有配套的镜像分发、存储调度、存档调度等相应的管理和调度系统,方便实现业务的各种需求。
本发明采用不同粒度的页面来管理NVM和DRAM内存,将超级页拆分成多个二元组,在超级页内部以二元组为基本粒度进行迁移调度,设置多个线程并行读写的模式,降低了末级缓存线程间的干扰问题,避免了以常规页面为单位的频繁迁移,节省了CPU周期和系统资源。
根据当前DRAM缓存的利用率,采取迁移阈值动态调整策略,尽可能多的将数据放置在DRAM中,以充分利用了DRAM的性能和容量优势,采用热度预测和精确计数相结合的两级热数据识别机制,在不增加过多缓存空间开销的同时,实现了精确的热数据识别,在迁移页面设计了组迁移映射表,减少了地址转换开销,在保持超级页连续性的同时加快了地址转换的速度,提升了系统性能。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (4)
1.云数据中心混合内存优化方法,其特征在于,包括以下步骤:
通过实时监测内存访问区域获取内存访问请求,将所有的所述内存访问请求通过访问模式识别器CAM监测访问请求类型,将每个所述访问请求类型根据缓存状态划分多个内存访问模式;
将不同的所述内存访问模式在多线程模式下建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,所述物理地址用于标识物理地址超级页;
将所述物理地址转换成包含物理地址超级页的页编号和逻辑页编号的二元组,通过所述内存访问请求中高频访问的页面迁移获取对应物理页面的访问键值表,所述访问键值表是多线程的;
统计所述访问键值表的访问频次,根据所述访问频次确定高频访问区域,将所述高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据在访问页面中的访问特征;
通过所述访问特征建立基于高频访问页面迁移的迁移映射表,通过迁移阈值动态调整机制实时迁移数据,并采用页面同步策略实时更新缓存空间,并将更新后的数据同步到存储设备中;
在所述内存访问区域监测到所述内存访问请求时,采用内存缓存检测模块对所述内存访问区域进行识别,获取每个所述内存访问区域的多线程末级缓存情况,包括:
根据所述内存访问区域的数据采集周期,收集每个线程在末级缓存中的命中和缺失信息,获取每个所述内存访问区域的多线程末级缓存情况;
根据所述末级缓存中的命中和缺失信息对每个线程的访问模式进行识别,并将识别信息送入内存缓存检测模块,获取每个线程对所述内存访问请求的缓存类别;
其中,通过访问模式识别器CAM监测每个所述内存访问请求的类型的方法,包括:
通过所述访问模式识别器CAM并行监测每个所述内存访问区域的多线程末级缓存情况,并收集每个线程在末级缓存中的所述缓存类别;
通过所述缓存类别对并行的多线程设置优先级,将所有的所述内存访问请求进行归类,获取访问请求类型;
将每个所述访问请求类型根据缓存类别划分多个内存访问模式,包括:
对每个线程设置一个所述访问模式识别器CAM,根据每个所述线程的组路相连数量设置访问计数器,当线程运行时,将每个线程的缓存情况视为独占整个缓存空间的情况;
当访问数据不重复时,将所述访问计数器加一,记录每个线程运行期间的缓存访问信息,利用所述访问模式识别器CAM识别所述缓存访问信息,获取对应的所述访问请求类型;
根据所述访问请求类型将所述内存访问区域的缓存空间设置为总的缓存路数,从总的缓存空间开始分配缓存区域;
循环计算多个所述线程对应缓存区域的边际效益,获取访问模式下的内存分配区域,根据所述内存分配区域的缓存状态划分多个内存访问模式;
对所述内存访问模式建立地址映射表,通过所述地址映射表的地址表项获取所述内存访问请求的物理地址,包括:
对所述内存访问模式采用全相联映射查找对应Valid位为1的表项获取地址映射表,遍历所述地址映射表判断地址表项页面是否和所述地址映射表中的一个地址表项一致;
如果一致则获取该表项的物理块号,加上对应地址表项页面的偏移获取页面物理地址并寻址,将寻址结果作为对应所述内存访问请求的物理地址;
如果不一致,则继续执行遍历操作;
将所述物理地址用于标识物理地址超级页,以所述二元组的形式获取内存访问模式下的高频访问页面,记录所述高频访问页面的访问键值表,包括:
所述内存访问请求在访问时对物理地址进行寻址,将寻址后的所述物理地址表示为标有超级页页框号和逻辑号的二元组,其中/>表示物理地址所在表项超级页的页框号,/>表示物理地址所在超级页内部的逻辑号;根据所述超级页页框号和逻辑号的循环次数判断所述二元组/>是否被第一次访问;若是第一次被访问,则在NVM存储器中申请一个新的NVM超级页,填充与超级页相关的二元组信息;
若不是第一次被访问,记录当前所述二元组的访问频度,识别出热度较高的所述二元组作为高频访问页面;
根据所述高频访问页面的访问频次将高频访问区域的数据识别成热数据,采用混合粒度数据管理策略获取所述热数据的访问特征,包括:
保留所述高频访问页面及热数据,并将其保存在PM的C_Sector中,丢弃不含所述热数据的访问请求;
在PM缓存区更新所述PM的元组,并将其存储在单个或多个缓存行中,通过链表形式连接元组,在所述元组里记录频繁访问的区域;
当接收所述内存访问请求时,根据不同元组所在的区域将更新后的元组放置在不同的地方,获取页面访问的特征,记录页面的访问信息并存储在PM中;
依据所述热数据的访问特征在不同内存间建立迁移映射表,通过迁移阈值动态调整机制实时迁移数据,包括:
根据所述热数据的访问特征收集访问数据的访问键值,建立访问次数链表和访问时间链表,当所述访问次数链表和访问时间链表填满后,将淘汰的数据放入到对应的历史表中;
根据所述淘汰的数据在历史表中的位置,更新访问时间和访问次数的权值,从权重小的历史表中挑选需要迁移的数据,将所述需要迁移的数据最先放入历史表中;
通过所述历史表建立对应的迁移映射表,根据当前混合内存架构下缓存的内存利用率来周期性的调整迁移阈值。
2.根据权利要求1所述的云数据中心混合内存优化方法,其特征在于,
对所述迁移映射表采用页面同步策略实时将更新数据同步至原始页面,更新缓存空间,所述页面同步策略在数据迁移过程中采用HiBuffer触发同步方式将加载迁移页面的操作从同步页面中移除,且在加载目标页面的同时,并发的加载同步操作需要的原始页面。
3.一种计算机装置,其特征在于,
包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,通过所述处理器执行权利要求1-2任一项所述的方法。
4.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311312528.8A CN117056087B (zh) | 2023-10-11 | 2023-10-11 | 云数据中心混合内存优化方法、计算机装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311312528.8A CN117056087B (zh) | 2023-10-11 | 2023-10-11 | 云数据中心混合内存优化方法、计算机装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117056087A CN117056087A (zh) | 2023-11-14 |
CN117056087B true CN117056087B (zh) | 2024-01-26 |
Family
ID=88669626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311312528.8A Active CN117056087B (zh) | 2023-10-11 | 2023-10-11 | 云数据中心混合内存优化方法、计算机装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056087B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234432B (zh) * | 2023-11-14 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种混合内存系统的管理方法、管理装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN107368436A (zh) * | 2017-06-29 | 2017-11-21 | 西安交通大学 | 一种联合地址映射表的闪存冷热数据分离存储方法 |
CN111506517A (zh) * | 2020-03-05 | 2020-08-07 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其系统 |
CN111858471A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种实时迁移策略 |
KR20220091023A (ko) * | 2020-12-23 | 2022-06-30 | 연세대학교 산학협력단 | 하이브리드 메모리 장치 및 이의 관리 방법 |
WO2023029971A1 (zh) * | 2021-08-30 | 2023-03-09 | 阿里巴巴(中国)有限公司 | 基于异构内存的数据迁移方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818489B2 (en) * | 2006-11-04 | 2010-10-19 | Virident Systems Inc. | Integrating data from symmetric and asymmetric memory |
-
2023
- 2023-10-11 CN CN202311312528.8A patent/CN117056087B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN107368436A (zh) * | 2017-06-29 | 2017-11-21 | 西安交通大学 | 一种联合地址映射表的闪存冷热数据分离存储方法 |
CN111506517A (zh) * | 2020-03-05 | 2020-08-07 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其系统 |
CN111858471A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种实时迁移策略 |
KR20220091023A (ko) * | 2020-12-23 | 2022-06-30 | 연세대학교 산학협력단 | 하이브리드 메모리 장치 및 이의 관리 방법 |
WO2023029971A1 (zh) * | 2021-08-30 | 2023-03-09 | 阿里巴巴(中国)有限公司 | 基于异构内存的数据迁移方法 |
Non-Patent Citations (1)
Title |
---|
键值数据库缓冲区管理与存储引擎优化技术研究;王晓亮;《中国博士学位论文全文数据库信息科技辑(月刊)》(第03期);第I137-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117056087A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN110134514B (zh) | 基于异构内存的可扩展内存对象存储系统 | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
US10241919B2 (en) | Data caching method and computer system | |
US11086792B2 (en) | Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method | |
US6901483B2 (en) | Prioritizing and locking removed and subsequently reloaded cache lines | |
CN117056087B (zh) | 云数据中心混合内存优化方法、计算机装置及存储介质 | |
US8615634B2 (en) | Coordinated writeback of dirty cachelines | |
CN103038755B (zh) | 多节点系统中数据缓存的方法、装置及系统 | |
CN107391398B (zh) | 一种闪存缓存区的管理方法及系统 | |
US8645627B2 (en) | Memory bus write prioritization | |
US20070124540A1 (en) | Method for tuning a cache | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
WO2015058695A1 (zh) | 一种存储器资源优化方法和装置 | |
US20130275649A1 (en) | Access Optimization Method for Main Memory Database Based on Page-Coloring | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统 | |
CN108572799B (zh) | 一种双向哈希链表的异构内存系统数据页迁移方法 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
CN115407933A (zh) | 基于非易失内存的文件元数据存储方法与系统 | |
Zhang et al. | DualStack: A high efficient dynamic page scheduling scheme in hybrid main memory | |
CN111258923B (zh) | 一种基于异构混合内存系统的页面分配方法 | |
CN108664217A (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN115562592A (zh) | 一种基于云对象存储的内存和磁盘混合缓存方法 | |
Liu et al. | Efficient wear leveling for PCM/DRAM-based hybrid memory | |
US11934307B2 (en) | Apparatus and method for providing coherence data for use when implementing a cache coherency protocol |
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 |