CN111344686A - 用于聚类物理存储器页面的子页面的系统和方法 - Google Patents

用于聚类物理存储器页面的子页面的系统和方法 Download PDF

Info

Publication number
CN111344686A
CN111344686A CN201780096866.9A CN201780096866A CN111344686A CN 111344686 A CN111344686 A CN 111344686A CN 201780096866 A CN201780096866 A CN 201780096866A CN 111344686 A CN111344686 A CN 111344686A
Authority
CN
China
Prior art keywords
page
physical memory
pages
physical
size
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
CN201780096866.9A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111344686A publication Critical patent/CN111344686A/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

Abstract

提供一种用于分配物理存储器页面的物理存储器子页面的装置,其包括:处理器,用于根据定义的物理存储器子页面大小将至少一个物理存储器页面划分成多个物理存储器子页面,其中所述至少一个物理存储器页面的大小是固定的;以及将所述多个物理存储器子页面映射到物理存储器页面的多个群集,其中为由所述处理器执行的代码分配所述多个群集中的相同群集的物理存储器子页面。

Description

用于聚类物理存储器页面的子页面的系统和方法
背景技术
本发明在其一些实施例中涉及物理存储器管理,且更具体地说,但不仅限于,涉及用于聚类物理存储器页面的子页面的系统和方法。
在具有大量核心的多处理器/多核心处理器的框架和/或妨碍多个逻辑执行单元(任务)共同执行的软件中,由于性能和能效原因,在执行实体之间共享对存储器资源的访问越来越重要。存储器资源包含例如处理器高速缓存,其包含以下各项中的一个或多个:L1、L2、L3和L4(例如,L1、L1-L2、L1-L3和L3-L4)(最高级被称为末级高速缓存(last levelcache,LLC))、经由其LLC互连多个群组/群集的处理器存储器总线/环,以及存储器控制器和其与并行存储器元件(存储体)的(并行)互连。
为了在不同的执行实体之间划分存储器资源的使用,已经引入了不同的技术,其包含页面着色,这是一种需要实施虚拟存储器的完全软件技术。在高速缓存划分的情况下,页面着色需要物理索引和标记的高速缓存。在存储器带宽划分的情况下,页面着色可能需要存储体交错的软件配置。
发明内容
本发明的一个目的是提供一种用于分配物理存储器页面的着色后的物理存储器子页面的装置。
前述目标和其它目标通过独立权利要求的特征实现。另外的实施方案形式通过从属权利要求、说明书以及图式是显而易见的。
根据第一方面,提供一种用于分配物理存储器页面的物理存储器子页面的装置,其包括:处理器,用于:根据定义的物理存储器子页面大小将至少一个物理存储器页面划分成多个物理存储器子页面,其中所述至少一个物理存储器页面的大小是固定的;以及将所述多个物理存储器子页面映射到物理存储器页面的多个群集,其中为由所述处理器执行的代码分配所述多个群集中的相同群集的物理存储器子页面。
本文中所描述的装置提供硬件实施方案,以解决超大页面和标准大小页面的页面着色的技术问题,且解决子页面大小小于标准页面大小的情况下子页面着色的技术问题。提供一种操作所述装置的方法。
本文中所描述的装置、系统、方法和/或代码指令将基于软件的子页面聚类方法(在本文中也被称为页面着色)与超大页面且与硬件修改组合。所描述的硬件实施方案通过软件操作。
通过定义每个物理存储器页面的每个物理存储器子页面的长度(即,标准大小和/或超大大小),装置能够配置分离物理存储器页面(即,标准大小物理存储器页面,和/或超大物理存储器页面)的粒度。
装置能够配置哪些群集(即,物理存储器子页面颜色)将用于每个虚拟存储器页面。
物理存储器页面(即,标准大小页面,和/或超大物理存储器页面)是固定的。举例来说,对于
Figure BDA0002492772680000011
A32e,标准物理存储器页面大小固定为4千字节(kB),且超大物理存储器页面大小固定为1千兆字节(GB)和2兆字节(MB)。不一定需要修改现有硬件架构的现有物理存储器页面大小(即,标准和/或超大)。每个TLB条目是指一个固定物理存储器页面大小(例如,4kB、2MB、1GB)。对于每个TLB条目,通常不混合物理存储器页面大小,例如,在x86架构中。
在第一方面的另一实施方案形式中,所述处理器进一步用于从所述物理存储器页面的开头定义偏移,其中,对经过所述偏移的存储器位置执行且不对所述偏移之前的存储器位置执行所述划分和所述映射。
装置能够从所述物理存储器页面(即,正常大小和/或超大大小)的开头配置偏移。
在第一方面的另一实施方案形式中,所述偏移的大小是所述多个群集的数量乘以定义的虚拟存储器子页面大小的整数倍。
在第一方面的另一实施方案形式中,所述装置进一步包括硬件存储器页面描述符,其存储虚拟存储器页面与相应群集的对应物理存储器页面之间的映射,其中,所述硬件存储器页面描述符包括:虚拟地址、物理页面的起始地址、存储所述定义的物理存储器子页面大小的移位字段、存储所述偏移的偏移字段和存储映射到多个群集的索引的掩码ID字段。
在第一方面的另一实施方案形式中,所述装置进一步包括指向位掩码阵列的群集掩码寄存器,每个位掩码定义对应于所述多个群集的群集掩码。
在第一方面的另一实施方案形式中,某一群集掩码寄存器与多处理器的每个处理器核心和/或多个执行线程的每个线程相关联,其中,位掩码阵列由多个独立执行的元件共享,所述多个独立执行的元件选自包括以下各项的群组:线程、任务、进程和核心。
在第一方面的另一实施方案形式中,所述装置进一步包括存储针对物理存储器子页面的多个不同的定义大小中的每一个的最大数目群集的群集寄存器。
在第一方面的另一实施方案形式中,所述装置进一步包括转换监视缓冲器(translation lookaside buffer,TLB)高速缓存,其包括:存储所述定义虚拟地址的虚拟地址字段、存储所述对应物理存储器页面的所述定义起始地址的物理页面(508)的起始地址、存储所述定义虚拟存储器子页面大小的移位字段、存储所述偏移的偏移字段和存储映射到所述多个群集的索引的掩码ID字段,其中,所述虚拟地址字段、所述物理页面的所述起始地址、所述移位字段、所述偏移字段和所述掩码ID字段经由所述硬件存储器页面描述符传递。
在第一方面的另一实施方案形式中,所述处理器进一步用于:当执行针对虚拟存储器地址的TLB查找指令时访问存储在所述TLB移位字段中的值,以及根据存储在所述移位字段中的值、存储在所述偏移字段中的所述值和存储在掩码ID字段中的所述值来计算对应于所述虚拟存储器地址的物理存储器地址。
装置通过以小于物理存储器超大页面的粒度对物理存储器超大页面进行着色(或分离,即聚类)来以超大物理存储器页面的不同粒度实施页面着色(即,聚类)。
在第一方面的另一实施方案形式中,物理超大页面的每个物理存储器子页面至少与所述物理存储器页面的大小一样大。
在第一方面的另一实施方案形式中,根据物理存储器管理系统的页面粒度管理所述物理存储器页面,且每个物理存储器子页面小于所述页面粒度的大小。
在第一方面的另一实施方案形式中,每个物理存储器子页面不小于由所述处理器访问的高速缓存的高速缓存线。
装置使得基于处理器硬件的标准大小的物理存储页面能够着色(或分离)成小于物理页面的粒度,例如,小到一个高速缓存线的大小,例如64字节。装置对标准大小的物理存储器页面的着色提供了细粒度存储器控制,其提供了改进的资源划分。
在第一方面的另一实施方案形式中,所述多个群集中的每个群集的成员存储在物理存储器中的不连续物理存储器页面中。
除非另有定义,否则本文所用的所有技术和科学术语都具有与本发明普通技术人员公知的含义相同的含义。尽管与本文所述的方法和材料类似或同等的材料和方法可以用于本发明的实施例的实践或测试,但下文描述示例性的方法和/或材料。倘若有冲突,将以包含定义的本专利说明书为准。另外,材料、方法和实例仅为说明性的且并不意图为必定限制性的。
附图说明
本文中仅借助于实例参考附图描述本发明的一些实施例。现特定详细地参考附图,强调细节借助于实例且出于对本发明的实施例的说明性论述的目的示出。就此而言,结合附图进行的描述使可以如何实践本发明的实施例对本领域的技术人员而言变得显而易见。
在附图中:
图1是描绘用以帮助理解所解决的技术问题的针对虚拟存储器页面的现有硬件实施方案的虚拟存储器超大页面的标准实施方案的示意图;
图2是描绘根据本发明的一些实施例的对虚拟存储器页面进行着色的实施方案的示意图;
图3是描绘根据本发明的一些实施例的分成多个物理存储器子页面的虚拟存储器页面的实施方案的示意图,其中每个物理存储器子页面小于标准物理存储器页面的大小;
图4是根据本发明的一些实施例的包含计算设备的系统的方框示意图,该计算设备用于分配物理存储器的物理存储器页面的物理存储器子页面;
图5是描绘根据本发明的一些实施例的计算设备的修改后的硬件页面描述符的示例性架构的示意图;
图6是描绘根据本发明的一些实施例的修改后的CPU核心复合体的示例性架构的示意图;
图7是描绘根据本发明的一些实施例的修改后的TLB高速缓存的示例性架构的示意图;
图8是根据本发明的一些实施例的操作修改后的TLB高速缓存的示例性方法的流程图;以及
图9是描绘根据本发明的一些实施例的应用于伙伴分配器的示例性实施方案的示意图。
具体实施方式
本发明在其一些实施例中涉及物理存储器管理,且更具体地说,但非排他地,涉及用于聚类物理存储器页面的子页面的系统和方法。
如本文中所使用,术语群集或聚类和词语颜色或着色是可互换的。举例来说,为每个群集分配某一颜色。
如本文中所使用,术语超大物理存储器页面是指由硬件定义的超大物理存储器页面实施方案的大小的物理超大存储器页面。应注意,不同实施方案可是指使用其它术语的超大页面,例如,大页面。
如本文中所使用,术语标准大小物理存储器页面是指具有与由硬件定义的物理存储器页面实施方案相同大小的物理存储器页面。
术语超大物理存储器页面、标准物理存储器页面和物理存储器页面有时是可互换的。
本发明的一些实施例的方面涉及用于分配物理存储器页面的物理存储器子页面的装置和/或系统的硬件实施方案。根据定义的物理存储器子页面大小将物理存储器页面划分成物理存储器子页面。至少一个物理存储器页面的大小是固定的,例如4千字节(kB)、2兆字节(MB),或其它值。将物理存储器子页面映射到物理存储器页面的群集。每个相应群集包含映射到相同物理存储器页面(例如,具有4kB、2MB和1千兆字节GB大小)的对应数目个物理存储器子页面的至少两个物理存储器页面。为由处理器(例如,应用程序)执行的代码分配相同群集的物理存储器子页面。应注意,分配到某一群集的一个或多个物理存储器子页面可选自相同物理存储器页面,多达分配到某一群集的可用子页面的总数目。
装置和/或系统包含修改后的硬件存储器页面描述符,其存储物理存储器页面与相应群集的对应物理存储器页面之间的映射。修改后的硬件存储器描述符包含:虚拟地址、物理页面的起始地址、存储定义的物理存储器子页面大小的移位字段、存储偏移的偏移字段和存储映射到群集的索引的掩码ID字段。
装置和/或系统包含指向位掩码阵列的修改后的群集掩码寄存器。每个位掩码定义对应于群集的群集掩码。某一群集掩码寄存器与多处理器的每个处理器核心和/或多个执行线程的每个线程相关联。
装置和/或系统包含转换监视缓冲器(TLB)高速缓存,其包含存储虚拟地址的虚拟地址字段、存储对应物理存储器页面的起始地址的物理页面字段的起始地址、存储定义的物理存储器子页面大小的移位字段、存储偏移的偏移字段以及存储映射到群集的索引的掩码ID字段。
可选地,将物理存储器页面作为物理存储器超大页面进行管理。每个物理存储器超大页面大于一个物理存储器页面的大小。物理超大页面的每个物理存储器子页面至少与物理存储器页面的大小一样大。本文中所描述的系统和/或装置通过以小于物理存储器超大页面的粒度对物理存储器超大页面进行着色(或分离,即聚类)来以超大物理存储器页面的不同粒度实施页面着色(即,聚类)。替代地,根据页面粒度(例如,由物理存储器管理系统定义)对物理存储器页面进行管理。每个物理存储器子页面小于页面粒度的大小。子页面的分配提供了对用于子页面分配,例如用于包处理应用的颜色的细粒度控制(即,群集)。
物理存储器页面(即,标准大小页面,和/或超大物理存储器页面)是固定的。举例来说,对于
Figure BDA0002492772680000041
A32e,标准物理存储器页面大小固定为4千字节(kB),且超大物理存储器页面大小固定为1千兆字节(GB)和2兆字节(MB)。不一定需要修改现有硬件架构的现有物理存储器页面大小(即,标准和/或超大)。每个TLB条目是指一个固定物理存储器页面大小(例如,4kB、2MB、1GB)。对于每个TLB条目,通常不混合物理存储器页面大小,例如,在x86架构中。
本文中所描述的装置提供硬件实施方案,以当子页面大小小于标准页面大小时解决超大页面和标准大小页面的页面着色的技术问题,且解决子页面着色的技术问题。提供一种操作用于基于聚类将虚拟存储器地址转换成物理存储器地址的装置的TLB的方法。
本文中所描述的装置和/或系统使基于软件的子页面聚类方法(在本文中也被称为页面着色)与超大页面且与硬件修改组合。所描述的硬件实施方案通过软件操作。
通过定义每个物理存储器页面的每个物理存储器子页面的长度(即,标准大小和/或超大大小),装置能够配置分离物理存储器页面(即,标准大小物理存储器页面,和/或超大物理存储器页面)的粒度。
装置能够配置哪些群集(即,物理存储器子页面颜色)将用于每个虚拟存储器页面。
本文中所描述的装置和/或系统解决以高效和可操作方式使基于软件的存储器页面聚类(在本文中也被称为页面着色)与基于硬件的超大存储器页面组合的技术问题。对于当前的硬件和软件架构,这种组合实际上是不可能的。现提供对现有技术和所得的基于软件的页面着色与基于硬件的超大存储器页面的不相容性的简要说明。
当前的多核/多处理器计算机普遍存在。通过在多个硬件计算机设备上并行执行软件,这种计算机架构与其前代产品相比提供了改进的性能。然而,为了使多个计算机设备能够共享驻存在存储器中的相同数据,所有计算机设备都需要访问相同的存储器位置,这些存储器位置通常由(硬件)末级高速缓存调解。当在计算机设备之间共享末级高速缓存时,由于在计算机设备(即,核心或CPU)上运行的不同软件应用程序对末级高速缓存的不公平使用而导致性能问题。不公平的使用可能降低每个应用程序的性能,特别是在应用程序代码受存储器限制的情况下(即,执行大量存储器访问)且存储器访问模式由时间局部性表征。页面着色技术目前作为纯软件实施,用于公平地共享末级高速缓存并减少应用程序干扰。
通常,当前的软件应用程序使用由计算设备的分页机制提供的虚拟存储器。虚拟到物理转换的最小粒度是(小)页面。当应用程序在宽存储器区域上运行时,由于虚拟存储器转换的高成本,小页面的使用会显着影响性能。大量页面转换可能导致TLB高速缓存中的大量未命中,从而需要大量存储器访问来获取每个转换(即,称为页面查核行程的操作)。实施硬件大页面以解决所描述的问题以减少TLB未命中。
基于软件的页面着色与基于硬件的超大页面不兼容,因为页面着色设计成根据最小的页面粒度进行操作。基于现有技术,尝试将基于软件的页面着色技术扩展到基于硬件的超大页面着色可能导致颜色极少或根本没有颜色,这有效地消除了实施着色的任何潜在益处。
本文中所描述的装置、系统、方法和/或代码指令(存储在由一个或多个处理器执行的数据存储设备中)有效地实施着色和超大页面的组合,其方式为改进在相同计算机设备上并行运行的应用程序的性能和/或确定性执行。
现在提供关于组合着色和超大页面的其它尝试的简要论述,以帮助理解所解决的技术问题和所描述的解决方案。一个所描述的策略是实施基于硬件的问题解决方案。然而,这种仅硬件解决方案需要制造新的硬件处理器,这些硬件处理器设计成能够采用页面着色与超大页面的结合。通常,由于设计和/或制造中的技术困难,这种解决方案是复杂的且对于实施方案来说并不实际。此外,这些解决方案不够通用,无法满足预期的可能的应用需求。
解决以可操作的方式组合页面着色和超大页面的技术问题的另一种尝试被称为
Figure BDA0002492772680000051
的高速缓存分配技术(Cache Allocation Technology,CAT)。将CAT设计成显然地支持超大页面。然而,无法轻易控制和/或大体上实施CAT,因为解决方案专为基于x86架构的
Figure BDA0002492772680000052
生产的处理器而设计。此外,CAT无法扩展到大量应用程序。
现在参考图1,其是描绘用以帮助理解所解决的技术问题的针对虚拟存储器页面的现有硬件实施方案的虚拟存储器超大页面的标准实施方案的示意图。
虚拟存储器104内的虚拟存储器超大页面102与虚拟地址范围相关联,所述虚拟地址范围与起始虚拟地址(virtual address,VA)106和存储器大小108相关联。通过物理存储器110的初始物理地址(physical address,PA)108和保护特性描述超大页面。VA 106和PA108通常与页面大小自身(由箭头112描绘)对准。超大页面102包含映射到物理地址的连续范围的虚拟地址的连续范围。
物理存储器110中的每个连续标准页面(为了清楚起见,描绘了一个页面114)可用不同颜色描绘(即,页面着色,群集)。由于超大页面102是一系列连续标准物理存储器页面114,因此在超大页面102内,使用所有可用颜色(即,群集)。因此,无法实施超大页面102的页面着色。
现在参考图2,其是描绘根据本发明的一些实施例的对虚拟存储器页面进行着色的实施方案的示意图。
将虚拟存储器204内的虚拟存储器页面202(即,具有标准大小和/或超大页面)映射到物理存储器208中的一组不连续子页面(为了清楚起见,描绘了一个子页面206)。应注意,子页面206可包含标准大小物理存储器页面。
物理存储器208的所述一组不连续子页面206与起始地址PA210和颜色掩码(位掩码)212相关联。
应注意,一个虚拟存储器页面202的所述一组不连续子页面206可跨越对应于多个虚拟存储器页面的物理存储器空间。
在一个实施方案中,虚拟存储器页面202表示超大虚拟存储器页面。物理存储器子页面206表示物理存储器208的标准页面。参考映射到PA 210的虚拟地址(virtualaddress,VA)214描述超大虚拟存储器页面202。定义每个子页面206的大小,可选地对应于物理存储器208的标准物理存储器页面的大小。定义分配到虚拟存储器页面202的区域的颜色(即,群集,例如群集的指示)。虚拟存储器子页面207表示映射到对应物理存储器子页面209的群集。
应注意,在单个超大虚拟存储器页面202中包含相同页面颜色(即,群集)的多次重复。可定义从PA 210的单组颜色的粒度的偏移。
应注意,超大虚拟存储器页面202可占用分散在不同(但是连续的)物理超大页面中的多个物理存储器页面。
现在参考图3,其是描绘根据本发明的一些实施例的分成多个虚拟存储器子页面(为了清楚起见,标记一个虚拟存储器子页面305)的虚拟存储器304的虚拟存储器页面302的实施方案的示意图,所述多个虚拟存储器子页面映射到多个物理存储器子页面(为了清楚起见,标记一个物理存储器子页面306)的对应群集。虚拟存储器子页面307表示映射到对应物理存储器子页面309的群集。
每个物理存储器子页面306小于物理存储器310的标准物理存储器页面(为了清楚起见,标记一个物理存储器页面308)的大小。
传统的虚拟存储器子系统以4kB的粒度(对于大多数传统的ISA)将虚拟存储器映射到物理存储器。这些4kB覆盖了虚拟存储器和物理存储器中的线性范围,作为实例,当范围从虚拟存储器中的0x1000和物理存储器中的0x10000开始时,范围在虚拟存储器中以0x2000结束且在物理存储器中以0x11000结束。对于超大页面和/或标准大小的页面,本文中所描述的装置增加了子页面粒度的颜色(即,群集)的数量。因此,标准页面(例如,4kB)的子页面可定义为任意大小,例如2kB、1kB、512B、256B、128B、64B。最小大小是根据高速缓存线的大小。在图3的图式中,存在例如8种颜色。因此,为了实施8种颜色(即,8个群集),对于4kB大小的虚拟存储器页面来说,物理页面具有512B大小(8高速缓存线)。返回参考图2,应注意,仅配置4个页面颜色(即,4个群集)。可经由位掩码阵列选择4个页面颜色。分配占用了2个标准大小的存储器页面。然而,应注意,不存在物理存储器的浪费,因为另一页表可占用其它子页面颜色而没有任何存储器冲突或保护问题。
现在参考图4,其是根据本发明的一些实施例的包含计算设备402的系统400的方框示意图,所述计算设备用于分配物理存储器408的物理存储器页面的物理存储器子页面。计算设备402表示硬件实施方案,其包含对硬件存储器页面描述符416的条目的修改、处理器406的额外寄存器,和对TLB418高速缓存和相关联TLB逻辑的修改。计算设备402执行虚拟存储器页面与物理存储器子页面之间的映射,如参考图2和/或3所描述。
术语装置、系统和计算设备是可互换的。
计算设备402包含一个或多个处理器406,其将存储在物理存储器408中的物理存储器页面划分成根据物理存储器子页面大小定义的多个物理存储器子页面。至少一个物理存储器页面的大小是静态的。将物理存储器子页面映射到存储在物理存储器存储设备408中的物理存储器页面的群集。每个群集包含映射到物理存储器408的相同物理存储器页面的对应物理存储器子页面的物理存储器设备408的两个或多于两个物理存储器页面。为由处理器406执行的存储在数据存储设备412中的代码410(例如,应用程序)分配相同群集的物理存储器子页面。
每个物理存储器子页面不小于由处理器406访问的高速缓存(可选地,TLB高速缓存418)的高速缓存线的大小。计算设备402使得基于处理器406硬件的标准大小的物理存储页面能够着色(或分离)成小于物理页面的粒度,例如,小到一个高速缓存线的大小,例如64字节。计算设备402对标准大小的物理存储器页面的着色提供了细粒度存储器控制,其提供了改进的资源划分。
每个群集的一个或多个成员可存储在物理存储器408中的不连续物理存储器页面中。
计算设备402可以实施为例如以下各项中的一个或多个:单个计算设备(例如,客户端终端)、并行布置的一组计算设备、网络服务器、网页服务器、存储服务器、本地服务器、远程服务器、客户端终端、移动设备、静止设备、查询一体机、智能手机、笔记本电脑、平板计算机、可穿戴计算设备、眼镜计算设备、表计算设备,和台式计算机。
处理器406可实施为例如中央处理单元(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)、现场可编程门阵列(field programmable gatearray,FPGA)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、定制电路、与其它单元介接的处理器,和/或专用硬件加速器。处理器406可实施为单个处理器、多核心处理器和/或布置成用于并行处理的处理器的群集(其可包含同构和/或异构处理器架构)。
物理存储器设备408和/或数据存储设备412实施为例如以下各项中的一个或多个:随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)和/或存储设备,例如非易失性存储器磁性媒体、半导体存储器设备、硬盘驱动器、可拆卸存储设备和光学媒体(例如,DVD、CD-ROM)。
计算设备402可与用户接口414通信,所述用户接口呈现数据和/或包含用于输入数据的机制,例如以下各项中的一个或多个:触摸屏、显示器、键盘、鼠标、语音激活软件和麦克风。用户接口414可用于配置参数,例如定义每个物理存储器子页面的大小和/或定义可用群集的数量。
现在参考图5,其是描绘根据本发明的一些实施例的参考图4描述的计算设备402的修改后的硬件页面描述符416的示例性架构的示意图。
标准页面描述符架构(与各种处理器架构兼容)存储物理存储器页面与相应群集的对应物理存储器页面之间的映射。标准页面描述符架构描述虚拟存储器范围与页面大小的物理存储器范围之间的等效性。
修改后的页面描述符416包含用于实施方案对物理存储器页面的着色的以下额外字段,如本文中所描述。在标准页面描述符架构中未发现额外字段。应注意,额外字段的次序和/或位置取决于特定处理器实施方案。
*存储虚拟地址的虚拟地址字段。
*存储物理存储器页面的起始地址的物理页面(physical page,PA)字段508的起始地址。
*移位502指示当启用页面子着色时物理存储器子页面中的每一个的定义大小。当将子页面大小设置成相当于页面大小自身时,停用子着色。在示例性实施方案中,移位502可定义为2的幂数,且根据实施的高速缓存线大小定义最小大小。
*偏移504指示必须从PA的开头跳过多少个颜色组(即,具有不同颜色的一组子页面)。从物理存储器页面的开头定义偏移。将物理存储器页面划分成物理存储器子页面以及将物理存储器子页面映射到物理存储器页面的群集可针对经过偏移的存储器位置执行,而不针对偏移之前的存储器位置执行。计算设备402能够从物理存储页面的开头配置偏移(即,正常大小和/或超大大小)。偏移的大小是群集的数量乘以定义的虚拟存储器子页面大小的整数倍。
*掩码ID506指示位掩码阵列中的索引,其中位掩码对应于本文中所描述的颜色掩码。
现在参考图6,其是描绘根据本发明的一些实施例的参考图4描述的计算设备402的处理器406的修改后的CPU核心复合体602的示例性架构的示意图。修改后的CPU核心复合体602包含每个CPU核心和/或每个线程一个颜色掩码寄存器604(在本文中也被称为群集掩码寄存器)。颜色掩码寄存器604指向位掩码阵列606。阵列606可在不同执行单元(例如,线程、任务、进程)之间共享和/或由不同CPU核心共享。每个位掩码(为了清楚起见,描绘了一个位掩码608)定义对应于群集的颜色掩码(在本文中也被称为群集掩码),如本文中所描述。
修改后的CPU核心复合体602包含颜色寄存器610,其存储每个不同定义大小的物理存储器子页面的最大颜色数(即,群集)。应注意,物理存储器子页面可具有不同大小。例如2MB页面可包含4KB页面(具有相同颜色的页面的群集)且当物理存储器子页面的大小固定在4KB页面时,群集粒度可根据高速缓存线大小级,例如64字节(具有相同颜色的高速缓存线的群集)。颜色寄存器610可用于帮助由计算设备402实施的颜色机制的运行时使用。
现在参考图7,其是描绘根据本发明的一些实施例的修改后的TLB高速缓存418的示例性架构的示意图。修改后的TLB高速缓存418是基于对标准TLB高速缓存的修改,以针对每个TLB条目(为了清楚起见,标记一个TLB条目750)包含字段移位702、偏移704和掩码ID706,其存储对应于参考图5描述的修改后的页面描述符416的字段移位502、偏移504、掩码ID506的值。字段虚拟地址(virtual address,VA)730的值、物理页面(physical page,PA)732的起始地址、移位702、偏移704和掩码ID706可经由存储器页面描述符416传递到TLB高速缓存418。掩码阵列(例如,参考图6描述的修改后的CPU核心602的阵列608)可实施为例如高速缓存层级内的高速缓存和/或存储有限数目个元件的专用高速缓存。
现在参考图8,其是根据本发明的一些实施例的操作计算设备402的修改后的TLB高速缓存418的示例性方法的流程图。
在802处,接收用于将虚拟存储器地址转换成物理存储器地址的TLB查找指令。
在804处,当停用聚类时,TLB逻辑根据标准实践继续。
在806处,替代地,当启用聚类时,TLB逻辑基于聚类继续操作。
在808处,修改后的TLB高速缓存418的TLB逻辑检查移位702的值。
在810处,由移位702存储的值用以计算物理地址和由根据由移位702存储的值定义的配置所生成的群集的数量。可选地,将由移位702存储的值加载到执行计算的微拱形寄存器中。
在812处,根据由移位702、偏移704和掩码ID706存储的值计算物理存储器地址。可选地,将存储在偏移704中的值连同根据存储在掩码ID706中的值选择的颜色位掩码一起加载到另一微拱形寄存器中。
在814处,提供映射到虚拟存储器地址的物理存储器地址的值。
应注意,并行地执行关于保护的标准TLB操作检查。
现在参考图9,其是描绘根据本发明的一些实施例的将参考图4描述计算设备402应用于伙伴分配器902的示例性实施方案的示意图。计算设备402实施用于伙伴分配器902,用于在管理程序代码级别(例如,操作系统(operating system,OS)级别,例如根据Linux实施方案)的物理存储器分配。应注意,图9描绘用于存储体着色的实施方案,然而,应理解,计算设备402可实施用于其它应用,例如,用于高速缓存着色。
伙伴分配器902按大小对存储器区域进行分组。在操作中,具有索引0(904)的伙伴分配器桶存储4kB大小的所有存储器区域的指示(由呼出号码906表示)。具有索引1(908)的桶保持8kB大小的所有存储器区域(由呼出号码910表示)。具有增加的索引值的每个后续桶存储增加的更大的存储器区域,每次增加两倍。伙伴分配器902的每个桶进一步按颜色(即,群集)组织(表示为基于存储体颜色的队列912),这是因为页面着色的目标是使OS能够向应用程序分配具有相同颜色的所有存储器区域,这通过着色来达到存储器资源划分。参考图4所描述的计算设备402针对伙伴分配器902的每个桶实施颜色队列914,以实现页面子着色,同时使得OS能够对应用程序进行着色。
在详细解释本发明的至少一个实施例之前,应理解,本发明在其申请案中不必限于在以下描述中阐述和/或在附图和/或实例中所说明的组件和/或方法的结构以及布置的细节。本发明能够具有其它实施例或以各种方式实践或进行。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包含计算机可读存储媒体(或媒体),其上具有计算机可读程序指令以使处理器执行本发明的方面。
计算机可读存储媒体可以是能够保持和存储供指令执行设备使用的指令的有形设备。计算机可读存储媒体可以是例如但不限于:电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适组合。
本文中所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应计算/处理设备,或通过例如因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。
计算机可读程序指令可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一情境下,远程计算机可提供任何类型的网络连接到用户的计算机,包括局域网(local area network,LAN)或广域网(wide area network,WAN),或可对外部计算机作出连接(例如,提供使用互联网服务提供商的因特网)。在一些实施例中,包含例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息将电子电路个人化而执行计算机可读程序指令,以便执行本发明的方面。
本文参看根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或方框图来描述本发明的各方面。应理解,可以通过计算机可读程序指令来实施流程图说明和/或框图中的每个框,以及流程图说明和/或框图中的框的组合。
图中的流程图和框图说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方案的架构、功能性和操作。在这点上,流程图或框图中的每个框可表示包含用于实施指定功能的一个或多个可执行指令的模块、片段、或指令部分。在一些替代实施方案中,框中提及的功能可以不按图中所提及的次序进行。举例来说,事实上,连续示出的两个方框可以几乎同时执行,或者有时候,方框可以按照相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图说明中的每个框,以及框图和/或流程图说明中的框的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或实行专用硬件和计算机指令的组合。
在查阅以下图式和具体实施方式后,本发明的其它系统、方法、特征以及优点将对本领域的技术人员是显而易见的或变得显而易见。希望所有此类另外的系统、方法、特征以及优点都包含在此描述内、在本发明的范围内,且受到所附权利要求书的保护。
已出于说明的目的呈现本发明的各种实施例的描述,但所述描述并不意欲为穷尽性的或限于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,对本领域的技术人员而言多个修改和变化将是显而易见的。本文中所使用的术语经选择以最佳解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或使本领域的一般技术人员能够理解本文所公开的实施例。
预计在专利从此申请案开始成熟的有效期期间,将研发出许多相关处理器和计算设备,且术语处理器和计算设备的范围意图先验地包含所有此类新技术。
本文所使用的术语“约”是指±10%。
术语“包括(comprise/comprising)”、“包含(include/including)”、“具有(having)”和其同源词意指“包含但不限于”。这个术语涵盖术语“由……组成”和“主要由……组成”。
短语“基本上由……组成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
除非上下文另外明确指出,否则如本文中所使用,单数形式“一(a、an)”和“所述”包含复数个参考物。举例来说,术语“化合物”或“至少一个化合物”可以包含多个化合物,包含其混合物。
词语“示例性”在本文中用于意指“充当实例、例子或说明”。描述为“示例性”的任何实施例不一定解释为比其它实施例优选或有利,和/或并不排除来自其它实施例的特征的并入。
本文中使用词语“可选地”意指“在一些实施例中提供且在其它实施例中不提供”。本发明的任何特定实施例皆可包含多个“可选的”特征,除非此类特征相矛盾。
在整个本申请案中,本发明的各种实施例可以范围格式呈现。应了解,范围格式的描述仅仅是为了方便和简洁起见,而不应被解释为是对本发明的范围的固定限制。因此,范围的描述应被认为是已经具体地公开了所有可能的子范围以及所述范围内的个别数值。举例来说,例如1到6的范围描述应被视为已经具体地公开了例如1到3、1到4、1到5、2到4、2到6、3到6等的子范围,以及所述范围内的单个数字,例如1、2、3、4、5和6。不管范围的宽度如何这都适用。
本文中每当指示数字范围时,其意味着包括所指示范围内的任何引用数字(分数或整数)。短语“在第一指示数字与第二指示数字之间的范围/范围”以及“从第一指示数字到第二指示数字的范围/范围”在本文中互换使用并表示包含第一指示数字和第二指示数字以及其间的所有分数和整数数字。
应了解,为了清晰起见在分开的实施例的上下文中描述的本发明的某些特征还可以组合形式提供于单个实施例中。相反,本发明出于简洁的目的在单个实施例的情形中描述的各个特征还可以单独地或以任何合适的子组合提供或在本发明的任何其它描述的实施例中提供为合适的。在各种实施例的上下文中描述的某些特征并非被认为是那些实施例的基本特征,除非所述实施例在不具有那些元件的情况下不起作用。
本说明书中所提及的所有公开案、专利和专利申请案在此以全文引用的方式并入本说明书中,同样,每个单独的公开案、专利或专利申请案也具体且单独地指示以引用的方式并入本文中。另外,对本申请的任何参考的引用或识别不应解释为承认此参考在现有技术中优先于本发明。在使用段落标题的程度上,它们不应被解释为必定限制性的。

Claims (13)

1.一种用于分配物理存储器页面(202)的物理存储器子页面(207)的装置(402),其特征在于,所述装置(402)包括:
处理器(406),其用于:
根据定义的物理存储器子页面大小将至少一个物理存储器页面(202)划分成多个物理存储器子页面(207),其中,所述至少一个物理存储器页面的大小是固定的;以及
将所述多个物理存储器子页面(207)映射到物理存储器页面(209)的多个群集,
其中,为由所述处理器(406)执行的代码(410)分配所述多个群集中的相同群集的物理存储器子页面(207)。
2.根据权利要求1所述的装置(402),其特征在于,所述处理器(406)进一步用于从所述物理存储器页面的开头定义偏移(214),其中,对经过所述偏移(214)的存储器位置执行而不对所述偏移(214)之前的存储器位置执行所述划分和所述映射。
3.根据权利要求2所述的装置(402),其特征在于,所述偏移(214)的大小是所述多个群集的数量乘以定义的虚拟存储器子页面大小的整数倍。
4.根据权利要求2到3中任一项所述的装置(402),其特征在于,所述装置(402)进一步包括硬件存储器页面描述符(416),其存储虚拟存储器页面(202)与相应群集的对应物理存储器页面(209)之间的映射,其中,所述硬件存储器页面描述符(416)包括:
虚拟地址字段,其存储定义虚拟地址,
物理页面(508)的起始地址,其存储所述对应物理存储器页面的定义起始地址,
移位字段(502),其存储所述定义的物理存储器子页面大小,
偏移字段(504),其存储所述偏移,以及
掩码ID字段(506),其存储映射到所述多个群集的索引。
5.根据以上权利要求中的任一项所述的装置(402),其特征在于,进一步包括指向位掩码阵列(606)的群集掩码寄存器(604),每个位掩码(608)定义对应于所述多个群集的群集掩码。
6.根据权利要求5所述的装置(402),其特征在于,某一群集掩码寄存器(604)与多处理器的每个处理器核心(602)和/或多个执行线程的每个线程相关联,其中,位掩码阵列(606)由多个独立执行的元件共享,所述多个独立执行的元件选自包括以下各项的群组:线程、任务、进程和核心。
7.根据权利要求5或权利要求6所述的装置(402),其特征在于,进一步包括群集寄存器(610),其存储针对物理存储器子页面的多个不同的定义大小中的每一个的最大数目群集。
8.根据权利要求5到7中任一项所述的装置(402),其特征在于,进一步包括转换监视缓冲器(TLB)高速缓存(418),其包括:
虚拟地址字段(730),其存储所述定义虚拟地址,
物理页面(532)的起始地址,其存储所述对应物理存储器页面的所述定义起始地址,
移位字段(702),其存储所述定义的物理存储器子页面大小,
偏移字段(704),其存储所述偏移,以及
掩码ID字段(706),其存储映射到所述多个群集的索引,
其中,所述虚拟地址字段、所述物理页面的所述起始地址、所述移位字段(702)、所述偏移字段(704)以及所述掩码ID字段(706)经由所述硬件存储器页面描述符(416)传递。
9.根据权利要求8所述的装置(402),其特征在于,所述处理器(406)进一步用于:
当执行针对虚拟存储器地址的TLB查找指令时访问存储在所述TLB移位字段(702)中的值,以及
根据存储在所述移位字段(702)中的所述值、存储在所述偏移字段(704)中的所述值和存储在所述掩码ID字段(706)中的所述值来计算对应于所述虚拟存储器地址的物理存储器地址。
10.根据以上权利要求中的任一项所述的装置(402),其特征在于,物理超大页面的每个物理存储器子页面至少与所述物理存储器页面的大小一样大。
11.根据以上权利要求中的任一项所述的装置(402),其特征在于,根据物理存储器管理系统的页面粒度管理所述物理存储器页面,且每个物理存储器子页面小于所述页面粒度的大小。
12.根据权利要求11所述的装置(402),其特征在于,每个物理存储器子页面不小于由所述处理器(406)访问的高速缓存的高速缓存线的大小。
13.根据以上权利要求中的任一项所述的装置(402),其特征在于,所述多个群集中的每个群集的成员存储在物理存储器(408)中的不连续物理存储器页面中。
CN201780096866.9A 2017-12-01 2017-12-01 用于聚类物理存储器页面的子页面的系统和方法 Pending CN111344686A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/081118 WO2019105566A1 (en) 2017-12-01 2017-12-01 Systems and methods for clustering sub-pages of physical memory pages

Publications (1)

Publication Number Publication Date
CN111344686A true CN111344686A (zh) 2020-06-26

Family

ID=60569916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780096866.9A Pending CN111344686A (zh) 2017-12-01 2017-12-01 用于聚类物理存储器页面的子页面的系统和方法

Country Status (2)

Country Link
CN (1) CN111344686A (zh)
WO (1) WO2019105566A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199039A (zh) * 2020-09-04 2021-01-08 厦门星宸科技有限公司 虚拟存储管理方法及处理器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666230B (zh) * 2020-05-27 2023-08-01 江苏华创微系统有限公司 在组相联tlb中支持巨页的方法
CN114816773B (zh) * 2022-06-29 2022-09-23 浙江大华技术股份有限公司 数据处理方法、系统、电子装置和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
US20150129911A1 (en) * 2013-11-08 2015-05-14 Wisconsin Alumni Research Foundation Strain tunable light emitting diodes with germanium p-i-n heterojunctions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367470B2 (en) * 2013-11-01 2016-06-14 Cisco Technology, Inc. Bounded cache searches
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
US20150129911A1 (en) * 2013-11-08 2015-05-14 Wisconsin Alumni Research Foundation Strain tunable light emitting diodes with germanium p-i-n heterojunctions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LICHENG CHEN ET AL.: "Scattered Superpage: A Case for Bridging the Gap between Superpage and Page Coloring", 《2013 IEEE 31ST INTERNATIONAL CONFERENCE ON COMPUTER DESIGN(ICCD)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199039A (zh) * 2020-09-04 2021-01-08 厦门星宸科技有限公司 虚拟存储管理方法及处理器
CN112199039B (zh) * 2020-09-04 2022-08-05 星宸科技股份有限公司 虚拟存储管理方法及处理器

Also Published As

Publication number Publication date
WO2019105566A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
US9606936B2 (en) Generalized control registers
US11741019B2 (en) Memory pools in a memory model for a unified computing system
US20120246381A1 (en) Input Output Memory Management Unit (IOMMU) Two-Layer Addressing
US9703566B2 (en) Sharing TLB mappings between contexts
US20130262736A1 (en) Memory types for caching policies
US7290112B2 (en) System and method for virtualization of processor resources
US9830275B2 (en) Translation lookaside buffer
US20150205724A1 (en) System and method of cache partitioning for processors with limited cached memory pools
US9652274B2 (en) Techniques for handling memory accesses by processor-independent executable code in a multi-processor environment
TWI641947B (zh) 用於管理位址轉換和快取記憶體儲存的方法及裝置
JP2019523920A (ja) ページ・フォールト解決法
US8006055B2 (en) Fine granularity hierarchiacal memory protection
TW201633145A (zh) 管理用於記憶體頁面的重用資訊
CN111344686A (zh) 用于聚类物理存储器页面的子页面的系统和方法
US20230409485A1 (en) Flexible cache allocation technology priority-based cache line eviction algorithm
TWI648625B (zh) 管理位址獨立的頁面屬性
CN111344667B (zh) 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
US20220327063A1 (en) Virtual memory with dynamic segmentation for multi-tenant fpgas
EP3593251B1 (en) Systems and methods for managing dynamic random access memory (dram)
WO2023030174A1 (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200626

RJ01 Rejection of invention patent application after publication