CN116225982A - 通过缓存着色提高虚拟机实时性的方法 - Google Patents

通过缓存着色提高虚拟机实时性的方法 Download PDF

Info

Publication number
CN116225982A
CN116225982A CN202211607364.7A CN202211607364A CN116225982A CN 116225982 A CN116225982 A CN 116225982A CN 202211607364 A CN202211607364 A CN 202211607364A CN 116225982 A CN116225982 A CN 116225982A
Authority
CN
China
Prior art keywords
cache
virtual machine
color
different
virtual machines
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
Application number
CN202211607364.7A
Other languages
English (en)
Inventor
崔建英
陈阳平
张云飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202211607364.7A priority Critical patent/CN116225982A/zh
Publication of CN116225982A publication Critical patent/CN116225982A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开一种通过缓存着色提高虚拟机实时性的方法,包括:S1、根据最后一级缓存LLC的实现和缓存着色技术,计算当前系统缓存颜色数量;S2、给不同虚拟机配置不同的缓存颜色;S3、虚拟机启动时,根据配置的缓存颜色,对映射到该缓存颜色的物理内存建立页表;S4、虚拟机运行时,根据建立的页表,分配的物理内存都会映射到相应的缓存颜色;S5、不同虚拟机使用不同的最后一级缓存LLC。本发明通过缓存着色技术,将最后一级缓存LLC隔离给不同的虚拟机,使在其上运行的操作系统使用不同的LLC,缓存数据互不干扰,使一个虚拟机上运行系统的延时不受其它虚拟机上运行系统活动的影响,提高了虚拟机的实时性。

Description

通过缓存着色提高虚拟机实时性的方法
技术领域
本发明涉及计算机内存管理技术领域,具体为一种通过缓存着色提高虚拟机实时性的方法。
背景技术
在现代计算机层次化的存储结构中,Cache是位于主存和CPU寄存器之间的一层缓存。Cache通常由容量较小、速度较快的SRAM构成,通过缓存CPU所需要的热点数据,减少CPU对于主存的访问,提高访存的效率、弥补CPU计算速度和主存访问速度之间的差距,有利于提升计算机系统的实时性。由于Cache的容量往往远小于主存,所以不能将主存中所有的数据同时缓存在Cache中。当Cache缓存全部被使用时,访问新的数据时,就需要把Cache中旧的数据替换出去,即所谓的Cache冲突。但是如果Cache冲突比较多,增加了主存的访问,延长CPU处理时间,则使系统实时性下降。
现代多核CPU的缓存结构通常具有每个核心独享的第一级缓存,而最后一级缓存(LLC)由所有核心共享。目前通过分区虚拟化可以将cpu、内存等硬件隔离给不同的虚拟机。不同的虚拟机根据业务需求运行不同系统,有的虚拟机运行实时性比较高的RTOS系统,有的虚拟机运行业务处理比较多的通用Linux系统,但是它们所使用的最后一级缓存(LLC)是共享的。因此,运行RTOS系统在LLC缓存的数据可能被运行通用Linux系统的缓存的数据替换掉,导致RTOS系统Cache冲突增加,降低了RTOS系统实时性。这意味着,一个虚拟机上运行系统的延时取决于其它虚拟机上运行系统的活动。
发明内容
本发明的目的在于提供一种通过缓存着色提高虚拟机实时性的方法,可以通过缓存着色,将最后一级缓存LLC隔离给不同的虚拟机,使在其上运行的操作系统使用不同的LLC,以使缓存数据互不影响,从而提高在其上运行系统的实时性。
本发明的一种通过缓存着色提高虚拟机实时性的方法, 基于arm硬件平台,LLC为256KB、4路组相连Cache,通过Jailhouse实现分区虚拟化,将CPU、内存隔离给2个虚拟机,其特征在于,具体包括以下步骤:
S1、根据最后一级缓存LLC的实现和缓存着色技术,计算当前系统缓存颜色数量;其中,缓存颜色数量=LLC路大小/页大小,LLC路大小为单路cache大小,页大小为虚拟机上运行的操作系统所使用的内存页大小;
S2、给不同虚拟机配置不同的缓存颜色;
S3、虚拟机启动时,根据配置的缓存颜色,对映射到该缓存颜色的物理内存建立页表;
S4、虚拟机运行时,根据建立的页表,分配的物理内存都会映射到相应的缓存颜色;
S5、不同虚拟机使用不同的最后一级缓存LLC。
其中,步骤S1中,页大小为4KB,缓存颜色数量为16。
其中,在步骤S2中,有效缓存颜色范围为0~15,将有效缓存颜色范围为0~7的缓存颜色分配给其中一个虚拟机,该虚拟机为第一虚拟机;将有效缓存颜色范围为8~15的缓存颜色分配给另一个虚拟机,该虚拟机为第二虚拟机。
其中:步骤S3的具体步骤为:
第一虚拟机启动时根据配置的有效缓存颜色范围为0~7的缓存颜色,只对物理内存地址0~15位在0x0000~0x7fff的范围的内存页建立页表;
第二虚拟机启动时根据配置的有效缓存颜色范围为8~15的缓存颜色,只对物理内存地址0-15位在0x8000~0xffff的范围的内存页建立页表。
本发明通过缓存着色技术,将最后一级缓存LLC隔离给不同的虚拟机,使在其上运行的操作系统使用不同的LLC,缓存数据互不干扰,使一个虚拟机上运行系统的延时不受其它虚拟机上运行系统活动的影响,提高了虚拟机的实时性。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的一种通过缓存着色提高虚拟机实时性的方法, 基于arm硬件平台,LLC为256KB、4路组相连Cache,通过Jailhouse实现分区虚拟化,将CPU、内存隔离给2个虚拟机,具体包括以下步骤:
S1、根据最后一级缓存LLC的实现和缓存着色技术,计算当前系统缓存颜色数量;其中,缓存颜色为在基于组相连Cache的高端CPU中,给定一块连续的物理内存,会按照一定的映射算法,落在一块连续的Cache集合中,这个连续的Cache集合,我们称之为一个缓存颜色。
缓存颜色数量=LLC路大小/页大小,
其中:LLC路大小为单路cache大小,等于LLC大小/路数,由于本实施例LLC为256,路数为4,LLC路大小则为256KB/4=64KB;页大小为虚拟机上运行的操作系统所使用的内存页大小,通常拟机上运行的操作系统所使用的内存页大小为4KB,本实施例中内存页大小为4KB。
因此,缓存颜色数量为64KB/4KB=16。
S2、给不同虚拟机配置不同的缓存颜色。
通过步骤1计算出缓存颜色的数量为16,则有效缓存颜色范围为0~15,为了保证给不同虚拟机配置不同的缓存颜色,另外为了让处理有更高的性能,尽可能保持缓存颜色的连续性,将有效缓存颜色范围为0~7的缓存颜色分配给其中一个虚拟机,该虚拟机为第一虚拟机;将有效缓存颜色范围为8~15的缓存颜色分配给另一个虚拟机,该虚拟机为第二虚拟机,这样分配给第一虚拟机的缓存颜色与分配给第二虚拟机的缓存颜色不同,且保持了缓存颜色的连续性。
在本实施例中,以上给不同虚拟机配置不同的缓存颜色的优势为:
将不同颜色分配给不同的虚拟机,之间不重合,这样就可以 将后续步骤的缓存隔离给不同虚拟机,这样虚拟机之间不存在cache冲突。但为了有更高的性能,尽可能保持缓存颜色的连续性。
在本实施例中,缓存颜色就是一个概念,如步骤S1中的定义,一个缓存颜色就是一段连续的cache集合,即将cache换分成不同的段,哪些物理内存映射到哪段cache集合里面是固定的。步骤S2只是给虚拟机配置相应缓存颜色,就是说哪个虚拟机使用哪些段的cache。后续步骤根据配置,只对映射到这些cache段的物理内存建立页表。这样分配的物理内存都会映射到这些cache段,从而实现缓存隔离的效果。
S3、虚拟机启动时,根据配置的缓存颜色,对映射到该缓存颜色的物理内存建立页表。在本实施例中,物理内存地址0-11位用于索引页内偏移(页大小为4k),缓存颜色数据量为16,需要物理内存地址12-15位用于确定物理内存页映射到哪个缓存颜色。
具体而言:
1.因为cache比较小,物理内存比较大,需按照一定的算法,将物理内存映射到cache。该技术属于本领域的现有技术。
2.一个物理内存页(4KB)会映射到连续的128个cache集合中(cache line大小为32个字节)。例如,第0个物理页会映射到cache的0到127集合中。第1个物理页会映射到cache的128到255集合中。当cache所有集合被占满时,就会从头重新开始映射,即第i物理页与k+i物理页会映射到同一cache集合中,k等于单路cache大小/页大小(64KB/4KB=16),这个也就是缓存颜色数量。例如第0个物理页与第16个物理页都映射到cache的0到127集合中。
3.物理地址的0-11位表示物理地址低12位。12-15位表示物理地址的12到15位。物理地址的0-11位用于索引页内偏移,物理地址的12-15位就可以确定哪个物理页映射到哪个cache集合中,也即映射到哪个缓存颜色中。
其中:步骤S3的具体步骤为:
第一虚拟机启动时根据配置的有效缓存颜色范围为0~7的缓存颜色,只对物理内存地址0~15位在0x0000~0x7fff的范围的内存页建立页表;
第二虚拟机启动时根据配置的有效缓存颜色范围为8~15的缓存颜色,只对物理内存地址0-15位在0x8000~0xffff的范围的内存页建立页表。
在本实施例中,物理地址的12-15位决定该物理映射到哪个缓存颜色,配置给第一虚拟机的缓存颜色范围是0-7,即0x0000~0x7000,而页大小为4KB,地址范围为0x0000~0x0fff,组合起来就是物理地址0-15位在0x0000~0x7fff的范围。同理,配置给第二虚拟机的缓存颜色范围是8-15,即0x8000~0xf000,而页大小为4KB,地址范围为0x0000~0x0fff,组合起来就是物理地址0-15位在0x8000~0xffff的范围.
S4、虚拟机运行时,根据建立的页表,分配的物理内存都会映射到相应的缓存颜色。在本实施例中,第一虚拟机运行时,根据建立的页表,分配的物理内存都会映射到缓存颜色为0-7的缓存;第二虚拟机运行时,根据建立的页表,分配的物理内存都会映射到缓存颜色为8-15的缓存。
S5、不同虚拟机使用不同的最后一级缓存LLC。即,第一虚拟机和第二虚拟机使用不同的LLC缓存,将最后一级缓存LLC隔离给不同的虚拟机,减少Cache冲突,缓存数据互不干扰,能够实现LLC缓存隔离的效果,提高了虚拟机的实时性。
本发明根据最后一级缓存LLC的实现和缓存着色技术,计算当前系统缓存颜色数量,将不同的缓存颜色分配给不同的虚拟机。虚拟机启动时,只对映射到分配给该虚拟机的缓存颜色的物理内存建立页表。此后,该虚拟机使用的物理内存都会映射到分配给其的缓存颜色的缓存中。从而,实现像将CPU等硬件隔离一样,将LLC隔离给不同的虚拟机。本发明可以通过缓存着色技术,将最后一级缓存LLC隔离给不同的虚拟机,使在其上运行的操作系统使用不同的LLC,缓存数据互不干扰,达到像将CPU等硬件隔离给不同虚拟机的效果。这就意味着,一个虚拟机上运行系统的延时不受其它虚拟机上运行系统活动的影响,提高了虚拟机的实时性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (4)

1.一种通过缓存着色提高虚拟机实时性的方法, 基于arm硬件平台,LLC为256KB、4路组相连Cache,通过Jailhouse实现分区虚拟化,将CPU、内存隔离给2个虚拟机,其特征在于,具体包括以下步骤:
S1、根据最后一级缓存LLC的实现和缓存着色技术,计算当前系统缓存颜色数量;其中,缓存颜色数量=LLC路大小/页大小,LLC路大小为单路cache大小,页大小为虚拟机上运行的操作系统所使用的内存页大小;
S2、给不同虚拟机配置不同的缓存颜色;
S3、虚拟机启动时,根据配置的缓存颜色,对映射到该缓存颜色的物理内存建立页表;
S4、虚拟机运行时,根据建立的页表,分配的物理内存都会映射到相应的缓存颜色;
S5、不同虚拟机使用不同的最后一级缓存LLC。
2.根据权利要求1所述的一种通过缓存着色提高虚拟机实时性的方法,其特征在于,步骤S1中,页大小为4KB,缓存颜色数量为16。
3.根据权利要求2所述的一种通过缓存着色提高虚拟机实时性的方法,其特征在于,在步骤S2中,有效缓存颜色范围为0~15,将有效缓存颜色范围为0~7的缓存颜色分配给其中一个虚拟机,该虚拟机为第一虚拟机;将有效缓存颜色范围为8~15的缓存颜色分配给另一个虚拟机,该虚拟机为第二虚拟机。
4.根据权利要求3所述的一种通过缓存着色提高虚拟机实时性的方法,其特征在于:步骤S3的具体步骤为:
第一虚拟机启动时根据配置的有效缓存颜色范围为0~7的缓存颜色,只对物理内存地址0~15位在0x0000~0x7fff的范围的内存页建立页表;
第二虚拟机启动时根据配置的有效缓存颜色范围为8~15的缓存颜色,只对物理内存地址0-15位在0x8000~0xffff的范围的内存页建立页表。
CN202211607364.7A 2022-12-14 2022-12-14 通过缓存着色提高虚拟机实时性的方法 Pending CN116225982A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211607364.7A CN116225982A (zh) 2022-12-14 2022-12-14 通过缓存着色提高虚拟机实时性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211607364.7A CN116225982A (zh) 2022-12-14 2022-12-14 通过缓存着色提高虚拟机实时性的方法

Publications (1)

Publication Number Publication Date
CN116225982A true CN116225982A (zh) 2023-06-06

Family

ID=86586233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211607364.7A Pending CN116225982A (zh) 2022-12-14 2022-12-14 通过缓存着色提高虚拟机实时性的方法

Country Status (1)

Country Link
CN (1) CN116225982A (zh)

Similar Documents

Publication Publication Date Title
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
CN110869913B (zh) 用于数据处理网络的存储器系统
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US8185695B2 (en) Snoop filtering mechanism
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US20090307434A1 (en) Method for memory interleave support with a ceiling mask
US20130227219A1 (en) Processor, information processing apparatus, and arithmetic method
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
US20080109624A1 (en) Multiprocessor system with private memory sections
US20190042470A1 (en) Method of dirty cache line eviction
US20200293445A1 (en) Adaptive cache reconfiguration via clustering
US20170364442A1 (en) Method for accessing data visitor directory in multi-core system and device
US20220188230A1 (en) Cache Management Method and Apparatus
CN115408307A (zh) 用于存储一致性数据和非一致性数据的高速缓存
WO2019104978A1 (zh) 高速缓存cache地址映射方法以及相关设备
US20230161714A1 (en) Method and system for direct memory access
US20120210070A1 (en) Non-blocking data move design
CN116225982A (zh) 通过缓存着色提高虚拟机实时性的方法
WO2023000696A1 (zh) 一种资源分配方法及装置
CN116225693A (zh) 元数据管理方法、装置、计算机设备及存储介质
US8762647B2 (en) Multicore processor system and multicore processor
CN111026680B (zh) 数据处理系统、电路及方法
CN108920254B (zh) 一种基于细粒度的内存分配方法
US20230359495A1 (en) System and method for heterogeneous memory
CN113918483B (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