CN117897696A - 用于同时地址转换表遍历的休眠/唤醒性能增强 - Google Patents
用于同时地址转换表遍历的休眠/唤醒性能增强 Download PDFInfo
- Publication number
- CN117897696A CN117897696A CN202280056601.7A CN202280056601A CN117897696A CN 117897696 A CN117897696 A CN 117897696A CN 202280056601 A CN202280056601 A CN 202280056601A CN 117897696 A CN117897696 A CN 117897696A
- Authority
- CN
- China
- Prior art keywords
- translation
- conversion
- request
- address
- sleep
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 132
- 238000006243 chemical reaction Methods 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000014616 translation Effects 0.000 claims description 125
- 238000000034 method Methods 0.000 claims description 51
- 230000007704 transition Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000008901 benefit Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241001272996 Polyphylla fullo Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000009172 bursting Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
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
一种存储器地址转换系统,包括转换请求器模块,该转换请求器模块被配置成提供从物理存储器的虚拟地址到真实地址的转换请求。转换高速缓存模块被配置成从转换请求器模块接收转换请求。休眠和唤醒控制模块被配置成用于将所接收的VA与这些表遍历机的所有当前活动的表遍历的VA’进行比较。当确定在给定的表遍历机器中存在地址匹配时,将转换请求与标识号(ID)一起发送到转换请求器模块,以进入休眠。每个表遍历机被配置成在其转换级别完成时,向转换请求器模块提供具有ID的唤醒信号,从而触发当前休眠的转换请求的唤醒和处理,以提供并行的转换表遍历。
Description
背景技术
技术领域
本公开总体上涉及计算机系统,并且更具体地涉及管理处理系统中的存储器表。
背景技术
近年来,计算平台的操作系统使用硬件和软件的组合来将程序所使用的存储器地址(有时被称为虚拟地址)映射到计算机的存储器中的物理地址中。以此方式,主存储器表现为连续的地址空间中的统一段。操作系统管理虚拟地址空间和真实(物理)存储器到虚拟存储器的分配。处理器中的地址转换硬件(有时称为存储器管理单元(MMU))将虚拟地址转换为物理地址。操作系统内的软件可以提供大于真实存储器的容量的虚拟地址空间,由此引用比物理上存在于计算平台中的更多的存储器。通过使用虚拟存储器,软件可使用比物理上可用的存储器更多的存储器。虚拟存储器通过伪装物理存储器的碎片来简化应用编程。
当今的计算系统基于所使用的操作系统的类型来使用不同地址转换机制。为了支持多个计算机系统环境,地址转换硬件在从虚拟地址(VA)转换到真实(即,物理)地址(RA)时应当支持多个页面大小。如本文所使用的,有效地址(EA)是程序看到的地址;虚拟地址(VA)是OS使用的地址;并且实际地址(RA)是实际存储器硬件的地址。
当将EA或VA转换成最终RA时,处理器通常执行遍历转换表的时间密集过程以便产生正确的地址,使得可以访问适当的存储器地址。页表是操作系统存储其虚拟地址(VA)到物理地址的映射的地方,其中每个映射也被称为页表条目(PTE)。转换遍历的结果通常被高速缓存以供稍后使用。然而,时间密集的表遍历过程首先执行,涉及许多存储器读取、高速缓存访问,并且可能停止硬件线程或整个处理器核的进展。
发明内容
在不同实施例中,一种用于在多页大小环境中提供存储器地址转换的方法、系统和计算设备包括接收从物理存储器的虚拟地址(VA)到真实地址(RA)的转换请求。比较一组表遍历(table walks)机的所有当前活动的表遍历的VA与所接收的VA。在基于该比较确定该组表遍历机中的给定表遍历机中存在地址匹配时,将该转换请求与标识号(ID)一起发送至转换请求器模块,使其进入休眠。在确定给定的表遍历机已经完成其转换级别时,将具有ID的唤醒信号发送至转换请求器模块以触发唤醒和处理进入休眠的转换请求。与该组表遍历机的其他转换请求中的一个或多个其他表遍历并行地提供具有ID的转换请求的VA的表遍历。
在一个实施例中,将所接收的VA与当前活动的表遍历的VA’的比较包括:对于每个当前活动的表遍历:将所接收的VA的虚拟地址位与当前活动的表遍历的转换级中的地址的范围进行比较。
在一个实施例中,对于每个活动的表遍历,使用表遍历的状态(即,转换级别)来确定要比较的地址位的数量,以确定是否存在地址冲突。
在一个实施例中,将所接收的VA与当前活动的表遍历的VA’的比较包括:对于每个当前活动的表遍历,将地址的最高有效位(MSB)向下与所支持的最大页面大小的位边界进行比较。
在一个实施例中,在基于该比较确定该组表遍历机中的给定表遍历机中不存在地址匹配时,由该组表遍历机中的表遍历机直接发送待处理的转换请求。
在一个实施例中,在接收到转换请求时,转换高速缓存模块确定VA的转换请求是否先前被成功处理。在确定VA的转换请求先前没有被成功处理时,转换请求被直接发送到一个或多个表遍历机。
在一个实施例中,转换请求包括以下中的至少一个:散列页表(HPT)请求、段表请求、非嵌套基数请求或嵌套基数请求。
在一个实施例中,完成的转换级别是1级基数树目录(RTDB),其用作第一基数转换表的基地址。
在一个实施例中,给定表遍历机的下一级是页表条目(PTE),其用于定义转换的下一范围。下一级也可以是页面目录条目(PDE)。而PTE包括转换的物理地址,PDE包括基数树目录(RTDB),其是到下基表的基指针。两者都可以用于定义用于比较的地址范围。
借助于此处的教导,提供了更有效的存储器地址转换,其提供转换请求的并行处理。从以下将结合附图阅读的对其说明性实施例的详细描述,这些和其他特征将变得显而易见。
附图说明
附图是说明性实施例。它们没有示出所有实施例。另外或替代地,可使用其他实施例。可省略可明显或不必要的细节以节省空间或用于更有效说明。一些实施例可用附加的组件或步骤和/或不用示出的所有组件或步骤来实践。当在不同的附图中出现相同的数字时,它指代相同或相似的部件或步骤。
图1是符合说明性实施例的支持多个并行表遍历的存储器地址转换系统的概念框图。
图2是与说明性实施例一致的多页面大小环境中的存储器地址转换的概念过程流程图。
图3A是与说明性实施例一致的示例休眠/唤醒并行表遍历。
图3B是根据说明性实施例的由系统处理的两个虚拟地址转换请求的表。
图4是根据说明性实施例的用于多页面大小环境中的存储器地址转换的示例过程流。
图5提供了可用于托管存储器地址转换系统的计算机硬件平台的功能框图。
图6描绘了根据说明性实施例的云计算环境。
图7描绘了根据说明性实施例的抽象模型层。
具体实施方式
概述
在以下详细说明中,通过举例的方式阐述了许多具体细节以便提供对相关传授内容的透彻理解。然而,应当清楚的是,可以在没有此类细节的情况下实践本传授内容。在其他情况下,众所周知的方法、过程、部件和/或电路已经以相对高级别描述,而没有细节,以避免不必要地模糊本教导的方面。
本公开总体上涉及管理处理系统中的存储器表的系统和方法。现今,已经开发了能够支持不同操作环境和虚拟机的处理器核。例如,计算系统的一部分可运行转换的基数模式,其使用一系列嵌套表而不是单个大哈希表来为其特定操作系统(OS)找到页表条目,而系统的另一部分运行功率PC,其为其对应的OS使用不同的转换模式。例如,管理程序(有时被称为虚拟机监视器(VMM))可以通过将管理程序操作系统和资源与虚拟机隔离来创建和运行虚拟机(VM),并且实现这种机器的创建和管理,这可以基于不同的OS,同时共享相同的硬件。每个操作系统可涉及基于不同页表的不同地址转换。当进程请求访问其存储器中的数据时,OS的责任是将由该进程提供的虚拟地址(VA)映射到存储所述数据的实际存储器的物理地址。页表是操作系统存储其虚拟地址到物理地址的映射的地方,其中每个映射也被称为页表条目(PTE)。由于使用不同的操作系统,所以可能存在不同转换单元,在本文中有时称为转换模式。
PTE通常用于将由操作系统看到的虚拟地址转换成由硬件使用以处理应用程序的指令的物理地址。执行这种转换的硬件有时被称为存储器管理单元(MMU)。页表中的每一条目包含对应页是否在物理存储器中的指示。如果其在物理存储器中,则页表条目将包括存储所述页的实际存储器地址。当硬件引用页面时,如果该页面的页表项指示当前不在物理内存中,则该硬件引起页面错误异常,调用操作系统的分页管理组件。
如今,高端计算机系统可以支持多个页面大小,这在实现性能增强同时的表遍历时呈现问题。当硬件设计具有多个表遍历引擎时,新的转换请求针对虚拟地址冲突检查当前活动的表遍历引擎。当两个VA’转换到同一页时,发生地址冲突。
通常,如果新的VA转换请求可能去往与活跃转换表遍历相同的页,则停止它,以便避免转换高速缓存中的相同页的多个条目。这种停止破坏了多个硬件表遍历引擎的性能增强优点。
本文中的教导提供休眠和/或唤醒接口,以及支持转换请求者和多个转换表遍历(TW)引擎之间的硬件逻辑,以允许同时的表遍历的重叠。当接收到新的转换请求时,系统使用活动的表遍历引擎的进展状态来确定要比较的VA位的数量。利用多个激活的TW引擎,每个引擎将基于其单独的转换遍历进度生成其自身的VA比特范围。比较的结果确定新转换是否“进入休眠”。当有效TW引擎已经前进到允许同时重叠的下一转换等级时,新平移接收“唤醒”。
在本公开的一个方面中,新请求仅暂时“进入休眠”直至激活的TW引擎可保证新请求将不共享同一页。此时,活动表遍历“唤醒”新请求,从而允许其不仅并行操作,而且利用当前(即,活动)转换遍历进度。例如,如果活动遍历将中间结果存储在转换缓存中,则新请求可以利用活动转换遍历进度。在一些场景中,单独的页面遍历高速缓存(PWC)用于这些中间结果。
在支持多个页面大小的实施例中,地址冲突逻辑将地址的最高有效位(MSB)向下与所支持的最大页面大小的位边界进行比较。在没有此处的教导的情况下,新请求将被停止,直到导致地址冲突的主动转换被解决为止,由此大幅减慢计算系统。
因而,本文的教导提供了用于支持多个页面大小和同时的表遍历的处理器的计算机系统和方法。本文描述的技术可以若干方式实现。下面参考以下附图提供示范性实现方式。
示例架构
现在参见图1,图1是根据说明性实施例的存储器地址转换系统100的概念框图,所述存储器地址转换系统100支持多个并行表遍历,有时被称为存储器管理单元(MMU)。系统100包括转换请求器102,转换请求器102被配置为基于VA提供对RA的请求。例如,转换请求可以是散列页表(HPT)转换请求、段表转换请求、非嵌套基数请求、嵌套基数请求等。
存在转换高速缓存转换后备缓冲器(TLB)接口110,该接口被配置成用于从转换请求器模块102接收高速缓存请求并且取决于该TLB中是否存在地址“未命中”126将该请求提供至一个或多个走表(TW)机器130至136以及休眠和唤醒控制模块120。所述TLB为操作以减少存取用户存储器位置所花费的时间的存储器高速缓冲存储器。TLB110存储先前成功的转换结果。例如,TLB110可以包括不同类型的先前转换,例如EA到VA、VA到RA和EA到RA。如果TLB110发现针对类似请求的先前成功的转换请求(即,TLB“命中”),则该请求返回至具有物理RA的转换请求者。然而,如果来自转换请求器模块102的新转换请求104未命中TLB110(即,相对于当前地址未识别先前成功的转换请求,且因此未识别出TLB未命中),那么将新请求VA104转发到休眠和唤醒及控制模块120。
休眠和唤醒控制模块120将所接收的虚拟地址与具有当前活动的表遍历的虚拟地址(例如,130至136)进行比较。地址范围由表遍历的状态来配置。如本文所使用的,表遍历的状态涉及活动表遍历当前在其上操作的基数树的级别。例如,如果主动遍历在层2上操作,则所比较的地址范围将是12:33;对于层3,12:42:等等。
当确定在当前活动的表遍历中存在地址匹配时,新的转换请求与休眠请求(例如,在活动TW(Req ID)上的“入睡”)一起被返回106至转换请求器模块102。因而,转换请求器模块102将新转换请求存储为具有对应请求标识(ID)号的休眠请求(例如,103)。然而,如果不存在地址匹配,则将新的转换请求分配122至TW机器(例如,130至136)。在一个实施例中,存在从转换高速缓存110到表遍历机130至136的直接路径。该路径124被配置为将VA直接供应至表遍历机130至136。如果来自活动TW的中间结果被存储在转换高速缓存110中,则路径124也可以将它们提供给新的转换请求。
活动表遍历机完成相应的基数转换级别(例如,L1、L2、L3、L4等)并且将具有其相应ID的“唤醒”信号140发送到转换请求器模块102,这触发转换请求器模块102基于接收到的ID重新发送现在休眠的转换请求。当新的转换请求“进入休眠”时,它是具有与其相关联的地址冲突的有效TW ID。因此,当有效TW完成基数级时,其向转换请求器102发送其ID140,转换请求器102然后唤醒具有相同ID的任何休眠的“新”请求103。在一个实施例中,可以通过单个ID来激活(即,唤醒)多于一个休眠请求。
现在参考图2,其为与说明性实施例一致的用于多页面大小环境中的存储器地址转换的概念过程流程图。仅作为示例而非限制,考虑64位VA’的两个基数转换请求,其中所支持的可能页面大小为1G、2M和4K。在没有此处的教导的情况下,如果在相同的1G地址范围VA(0:33)<big endian>(大尾数法)中存在一个活动的表遍历,则将阻止该转换请求;不管实际(未知)页面大小如何。如果实际页面尺寸是4k,那么(250,000-1)其他可能的4k页面转换将突然停止,从而防止任何表遍历重叠。
现在参考提供与示例性实施方式一致的示例性休眠/唤醒平行表遍历的图3A和图3B。例如,在基数转换遍历期间,在每个转换遍历级别访问转换表集合。VA被分成单独的地址比特组,其中,每个组用于在给定的转换级别(例如,图3A中的L1到L4)索引到转换表中。转换表项包括下转换遍历级别的转换表的基本地址,其然后通过下一组VA位来索引。
图3B是根据说明性实施例的由系统处理的两个虚拟地址转换请求的表。VA’表示当前正由表遍历引擎处理的第一(例如,现有的)转换请求,而VA”表示在第一转换请求之后接收的第二(即,新的)转换请求。如图3B的实例所示,在层级1(即,(12:24))处,地址是相同的(即,X017),从而可能导致转换冲突。在这方面,VA”进入休眠,直到用于VA’的水平1的活动表遍历完成。类似地,在层2(即,(25:33))处,地址是相同的(即,X29)。因此,VA”停止(例如,进入休眠)直至由对应的表遍历引擎完成VA’的该等级2。
相比之下,对于级别3,VA’与VA”之间的比较指示地址是不同的(即,X1E与.X07),针对该转换级别,从而允许VA’和VA”由相同的表遍历引擎同时(例如,并行地)处理。因此,即使页面大小不同,本文的教导促进最大化处理的并行化的地址转换请求的有效处理,从而极大地增强存储器地址转换的吞吐量。
返回图2,考虑例如VA(12:63)202的基数表遍历。由于最小页面尺寸是4k(见图3A中的L4),VA(12:51)可以转换成真实(地址)页面号RPN(12:51)。
第一级基数树目录(RTDB)是第一基数转换表的基地址并且提供RA的系统。VA(12:24)204用于索引到该转换表,并且访问的条目包括级别2RTDB。VA(25:33)206索引等级2表以找到等级3RTDB。VA(34:42)208索引级别3表以找到级别4RTDB。最后,VA(43:51)210索引级4表以找到页表条目(PTE),其定义VA(12:51)到RPN(12:51)转换。
在一个实施例中,主动遍历将中间结果存储在转换缓存中。单独的页面遍历高速缓存(PWC)可以用于中间结果。例如,206指向由主动遍历发现的RTDB。如果被缓存,其可以被新的“被唤醒”转换请求使用,从而利用当前活动表遍历的状态。
应注意,作为转换表的基地址的RTDB是通过举例而非限制的方式提供的。也可以使用其他指针。例如,在一个实施例中,2级表项可以是PTE而不是RTDB。在本实施例中,页面大小可以是1G。类似地,级别3表项可以是PTE,在这种情况下,页尺寸是2M,如图3A的表中所示。
在一个实施例中,在树的每一级,VA到RTDB的映射被保存在页面遍历高速缓存(PWC)中以便加速随后的表遍历。例如,VA(12:42)的PWC条目将提供4级RTDB。
当一组TW引擎接收到新的转换请求时,该系统与有效TW引擎执行地址冲突。如果激活的Tw引擎(1G边界)的VA(12:33)与新请求匹配,并且TW引擎尚未访问L2转换表项,则暂时使新请求“进入休眠”,直到激活的TW引擎已经确定不存在1G PTE(L2)。换言之,暂时使新请求“进入休眠”,直到活动的TW引擎已经访问级别2表条目,并且如果不是PTE,则前进到在级别3上工作。由于本实例中支持的最大页面大小为1G,因此其对应于基数树的第2级,其进而对应于(12:33)。
在这种情况下,转换请求器停止其请求,直到活动的TW引擎发送唤醒信号。TW引擎访问L2表项后发送Wake-Up信号,开始访问L3表项。
此时,新的转换请求再次被发送至一个或多个TW引擎的群组,并且再次比较VA(12:33)。但这次,激活的TW引擎已经前进到L2转换表之外,因此此比较不产生休眠信号。
然而,如果有效TW引擎尚未访问L3转换表,则将VA比较扩展到VA(12:42)。如果VA’误比较,则将新请求分配给空闲(例如,可用的)TW引擎,并且两个平移行程可以无批次地并行操作。
当接收到新的转换请求时,系统使用活动的TW条目的进展状态(即,转换级别)来确定要比较的VA位的数量。应注意,对于多个有效TW引擎,每一引擎基于其个别平移遍历进程产生其自身的VA位范围。
在一个实施例中,除了并行操作转换之外,当有效TW引擎发送“唤醒”信号时,它还写入VA(12:33)的PWC,包括新请求可以立即利用的3级RTDB。虽然未明确描述,但是本文的教导还在存在VA(12:42)与尚未访问L3 RTDB(2M边界/潜在PTE)以及更高级的有效TW引擎的冲突时支持“休眠/唤醒”流程。
实例过程
利用示例系统100和200的前述概述,现在考虑示例过程的高级讨论可以是有帮助的。为此,图4呈现了与说明性实施例一致的在支持并行表遍历的同时转换存储器地址的说明性过程400。过程400被示出为逻辑流程图中的框的集合,其表示可以以硬件、软件或其组合实现的操作序列。在软件的上下文中,方框表示当由一个或多个处理器执行时执行所述操作的计算机可执行指令。通常,计算机可执行指令可以包括执行功能或实现抽象数据类型的例程、程序、对象、组件、数据结构等。在每个过程中,描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的方框可以任何顺序组合和/或并行执行以实现该过程。出于讨论的目的,参照图1的架构描述过程400。
在框402处,转换高速缓存110接收从物理存储器的虚拟地址(VA)到真实地址(RA)的转换请求。
在框404处,转换高速缓存110将所接收的VA与一组表遍历机130至136中的所有当前活动的表遍历的VA’进行比较。
在基于该比较确定一组表遍历机中的给定表遍历机中不存在地址匹配时(即,确定框406处的“否”),该请求被转发至框414,在该框中,表遍历机(例如,该组表遍历机130至136中的130)处理该转换请求。
然而,在确定在一组表遍历机中的给定表遍历机中存在地址匹配时(即,确定框406处的“是”),过程继续至框408,将带有标识号(ID)的转换请求返回至有待置于休眠的转换请求器模块。换言之,转换请求暂时停止。
在框410处,确定给定的表遍历机是否已经完成其转换等级。如果是(即,在确定框410处的“是”),则过程继续框412,其中将具有ID 140的唤醒信号发送至转换请求器模块102以触发休眠转换请求(例如,103)的唤醒和处理414。在一个实施例中,当“进入休眠”请求接收到唤醒信号时,该过程继续方框404,其中转换高速缓存110将所接收的VA与一组表遍历机130至136中的所有当前活动的表遍历的VA’进行比较。下地址比较包括更多的位,因为有效TW已经完成了一级。以这种方式,促进具有ID的转换请求的VA的表遍历与该组表遍历机器(例如,130至136)的其他转换请求的一个或多个其他表遍历并行。
示例计算机平台
在一个实施例中,与提供促进最大并行性的存储器地址转换系统相关的功能可以使用一个或多个计算设备来执行。图5提供了可用于托管存储器地址转换单元540的计算机硬件平台500的功能框图。
计算机平台500可包括中央处理单元(CPU)504、硬盘驱动器(HDD)506、随机存取存储器(RAM)和/或只读存储器(ROM)508、键盘510、鼠标512、显示器514和通信接口516,它们连接到系统总线502。
在一个实施例中,HDD506具有包括存储能够以本文中描述的方式执行不同处理的程序(诸如存储器地址转换单元540)的能力。存储器地址转换单元540可具有被配置为执行不同功能的各种模块,诸如在图1和图2的上下文中讨论的那些模块。例如,可存在操作来提供从VA到RA的转换请求的转换请求器。可存在休眠和唤醒控制模块544,该模块能操作以确定当前活动的表遍历机的状态并相应地控制其请求的休眠和唤醒状态。可能存在转换高速缓存,该转换高速缓存被配置成用于从转换请求器模块542接收高速缓存请求并取决于是否存在地址“命中”或地址“未命中”而将其提供至一个或多个表遍历(TW)机器(例如,548至552)或休眠和唤醒控制模块546。这些模块可以执行这里讨论的所有功能以及其他功能。
虽然模块542至552在图5中被示为HDD506的一部分,但是在一些实施例中,这些模块中的一个或多个可以在计算设备500的硬件中实现。例如,在此讨论的模块可以以部分硬件和部分软件的形式来实现。也就是说,图5所示的存储器地址转换单元540的一个或多个组件可以实现为具有晶体管、二极管、电容器、电阻器、电感器、变容二极管和/或忆阻器的电子电路的形式。换言之,存储器地址转换单元540可用一个或多个专门设计的电子电路来实现,这些电子电路通过CPU的组件和/或RAM/ROM 508的模块来执行本文所描述的特定任务和功能。
示例云平台
如上所述,与提供统一存储器地址转换系统相关的功能可以包括如云中的分布式计算和/或存储架构。应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图6,描述了说明性云计算环境600。如图所示,云计算环境600包括一个或多个云计算节点610,云消费者使用的本地计算设备(诸如例如个人数字助理(PDA)或蜂窝电话654A、台式计算机654B、膝上型计算机654C和/或汽车计算机系统654N)可与云计算节点610通信。节点610可以彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境650提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图6中所示的计算设备654A-N的类型仅旨在是说明性的,并且计算节点610和云计算环境650可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图7,示出了由云计算环境650(图6)提供的一组功能抽象层。应提前理解,图7中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如所描述,提供以下层和对应功能:
硬件和软件层760包括硬件和软件组件。硬件组件的示例包括:主框架761;基于RISC(精简指令集计算机)架构的服务器762;服务器763;刀片服务器764;存储设备765;以及网络和网络组件766。在一些实施例中,软件组件包括网络应用服务器软件767和数据库软件768。
虚拟化层770提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器771;虚拟存储772;虚拟网络773,包括虚拟专用网络;虚拟应用和操作系统774;以及虚拟客户端775。
在一个示例中,管理层780可以提供以下描述的功能。资源供应781提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价782在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户783为消费者和系统管理员提供对云计算环境的访问。服务水平管理784提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行785提供云计算资源的预安排和采购,根据该SLA预期该云计算资源的未来要求。
工作负载层790提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航791;软件开发和生命周期管理792;虚拟教室教育递送793;数据分析处理794;如本文所讨论的,事务处理795;以及转换引擎796。
结论
已经出于说明的目的呈现了本传授内容的不同实施例的描述,但并不旨在是详尽的或限于所披露的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然上文已描述了被视为最佳状态和/或其他实例的内容,但应理解,可在其中进行不同修改,且本文所公开的主题可在不同形式和实例中实施,且教示可应用于许多应用中,本文仅描述了其中的一些应用。所附权利要求旨在要求保护落入本传授内容的真实范围内的任何和所有应用、修改和变化。
在此已经讨论的部件、步骤、特征、目的、益处和优点仅是说明性的。它们以及与其相关的讨论都不旨在限制保护范围。虽然本文已经论述了各种优点,但是将理解,并非所有实施例都必须包括所有优点。除非另外说明,否则在本说明书(包括在以下权利要求书中)中阐述的所有测量、值、评级、位置、幅值、大小、以及其他规范都是近似的、不精确的。它们旨在具有与它们有关的功能以及与它们所属领域惯用的功能相一致的合理范围。
还构想了许多其他实施例。这些包括具有更少的、附加的和/或不同的部件、步骤、特征、目的、益处和优点的实施例。这些还包括部件和/或步骤被不同地安排和/或排序的实施例。
本文中参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给适当配置的计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以某种方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
本文中的图中的调用流程、流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
尽管已经结合示例性实施方式描述了上述内容,然而,应当理解的是,术语“示例性的”仅意味着作为实例,而非最佳或者最佳。除了以上立即陈述的之外,已经陈述或展示的任何内容都不旨在或应该被解释为引起任何部件、步骤、特征、对象、益处、优点的奉献或与公众等效,而不管它是否在权利要求中陈述。
应当理解,本文所使用的术语和表达具有普通含义,如对于它们相应的相应查询和研究领域的这些术语和表达所赋予的,除非本文另外阐述具体含义。诸如第一和第二等之类的关系术语可仅用来将一个实体或动作与另一个实体或动作区分开来,而不必要求或暗示这些实体或动作之间的任何实际此类关系或次序。术语“包括(comprises)”、“包括(comprising)”或其任何其他变型旨在覆盖非排他性的包括,从而使得包括一系列要素的过程、方法、物品或装置不仅仅包括那些要素,而且还可以包括未明确列出的或对此类过程、方法、物品或装置固有的其他要素。在没有进一步限制的情况下,由“一个”或“一种”开始的元件不排除在包括该元件的过程、方法、物品或装置中存在另外的相同元件。
提供本公开的摘要以允许读者快速确定本技术公开的性质。在理解其不用于解释或限制权利要求的范围或含义的情况下提交。此外,在以上具体实施方式中,可以看出,出于精简本公开的目的,各个特征在各个实施方式中被组合在一起。本公开的该方法不应被解释为反映所要求保护的实施例具有比每个权利要求中明确记载的特征更多的特征的意图。相反,如以下权利要求所反映的,发明主题在于少于单个披露的实施例的所有特征。因此,以下权利要求由此并入详细说明中,其中每个权利要求独立地作为单独要求保护的主题。
Claims (21)
1.一种在多页大小环境中提供存储器地址转换的方法,包括:
接收从物理存储器的虚拟地址(VA)到真实地址(RA)的转换请求;
将所接收的VA与一组表遍历机中的所有当前活动的表遍历的VA’进行比较;以及
在基于该比较确定该组表遍历机中的给定表遍历机中存在地址匹配之后,将具有标识号(ID)的该转换请求发送至转换请求器模块以进入休眠;
在确定所述给定表遍历机已经完成其转换级别时,将具有所述ID的唤醒信号发送至所述转换请求器模块以触发所述休眠转换请求的唤醒和处理;以及
与所述表遍历机组的其他转换请求中的一个或多个其他表遍历并行地提供具有所述ID的所述转换请求的所述VA的表遍历。
2.根据权利要求1所述的方法,其中,将所接收的VA与所述当前活动的表遍历的所述VA’的所述比较包括:针对每个当前活动的表遍历:将所接收的VA的虚拟地址位与所述当前活动的表遍历的转换级中的地址的范围进行比较。
3.根据权利要求1所述的方法,进一步包括:针对每个活动的表遍历,使用所述表遍历的转换级别来确定有待比较的地址位的数量以确定是否存在地址冲突。
4.根据权利要求1所述的方法,其中,将所接收的VA与所述当前活动的表遍历的VA’的比较包括:对于每个当前活动的表遍历,将所述地址的最高有效位(MSB)向下与所支持的最大页面大小的所述位边界进行比较。
5.根据权利要求1所述的方法,进一步包括:在基于所述比较确定所述一组表遍历机中的给定表遍历机中不存在地址匹配时,发送所述转换请求以便由所述一组表遍历机中的表遍历机直接处理。
6.根据权利要求1所述的方法,进一步包括:
当接收到所述转换请求时,由转换高速缓存模块确定所述VA的所述转换请求是否先前被成功处理;以及
在确定所述VA的所述转换请求先前未被成功处理时,直接将所述转换请求发送至一个或多个表遍历机。
7.根据权利要求1所述的方法,其中,所述转换请求包括以下中的至少一个:
散列页表(HPT)请求;
段表请求;
非嵌套基数请求;或
嵌套基数请求。
8.根据权利要求1所述的方法,其特征在于,所述完成的转换级别为1级基数树目录库(RTDB),其作为第一基数转换表的基地址。
9.根据权利要求1所述的方法,其中,所述给定表遍历机的下一级是页表条目(PTE),所述页表条目用于定义转换的下一范围。
10.一种存储器地址转换系统,包括:
转换请求器模块,被配置为提供从虚拟地址(VA)到物理存储器的真实地址(RA)的转换请求;
转换缓存模块,耦合到所述转换请求器模块并且被配置为从所述转换请求器模块接收所述转换请求;
耦合到所述转换高速缓存模块和所述转换请求器模块并且被配置为执行表遍历的一组表遍历机器;以及
休眠和唤醒控制模块,所述休眠和唤醒控制模块耦合至所述转换请求器模块、转换高速缓存模块和所述表遍历机模块,其中,所述休眠和唤醒控制模块被配置成用于:
将所接收的VA与该组表遍历机中的所有当前活动的表遍历的VA’进行比较;以及
在基于该比较确定该组表遍历机中的给定表遍历机中存在地址匹配之后,将具有标识号(ID)的该转换请求发送至该转换请求器模块以进入休眠;
其中,每个表遍历机被配置成用于在完成其转换级别时将具有标识号(ID)的唤醒信号提供给该转换请求器模块,由此触发对具有相应ID的当前休眠的转换请求的唤醒和处理,以在该组表遍历机中提供并行的转换表遍历。
11.根据权利要求10所述的系统,其中所述系统支持多个页面大小。
12.根据权利要求10所述的系统,其中,将所接收的VA与所述当前活动的表遍历的所述VA’的所述比较包括:针对每个当前活动的表遍历,将所接收的VA的虚拟地址位与所述当前活动的表遍历的转换级中的地址的范围进行比较。
13.根据权利要求10所述的系统,其中,所述休眠和唤醒控制模块被配置成用于针对每个活跃的表遍历使用所述表遍历的转换级别来确定有待比较的地址位的数量以确定是否存在地址冲突。
14.根据权利要求10所述的系统,其中,由所述休眠和唤醒控制模块将所接收的VA与所述当前活动的表遍历的VA’的比较包括:对于每个当前活动的表遍历,将所述地址的最高有效位(MSB)向下与所支持的最大页面大小的所述位边界进行比较。
15.根据权利要求10所述的系统,进一步包括在基于所述比较确定所述一组表遍历机中的给定表遍历机中不存在地址匹配之后,发送所述转换请求以便由所述一组表遍历机中的所述给定表遍历机直接处理。
16.根据权利要求10所述的系统,其中所述转换高速缓存模块还被配置为:
在接收到所述转换请求时,确定所述VA的所述转换请求是否先前被成功处理;以及
在确定所述VA的所述转换请求先前未被成功处理时,直接将所述转换请求发送至一个或多个表遍历机。
17.根据权利要求10所述的系统,其中所述转换请求器模块被配置成提供以下转换请求中的至少一个:
散列页表(HPT)请求;
段表请求;
非嵌套基数请求;或
嵌套基数请求。
18.根据权利要求10所述的系统,其中:
完成转换级别为1级基数树目录库(RTDB),作为第一基数转换表的基地址;
所述休眠和唤醒控制模块用于将所述1级RTDB作为第一基数转换表的基地址。
19.一种计算装置,包括:
处理器;
耦合至所述处理器的物理存储器;
存储器地址转换系统,所述存储器地址转换系统耦合到所述处理器并且被配置成:
接收从所述物理存储器的虚拟地址(VA)到真实地址(RA)的转换请求;
将所接收的VA与一组表遍历机中的所有当前活动的表遍历的VA’进行比较;以及
在基于该比较确定该组表遍历机中的给定表遍历机中存在地址匹配之后,将具有标识号(ID)的该转换请求发送至转换请求器模块以进入休眠;
在确定所述给定表遍历机已经完成其转换级别时,将具有所述ID的唤醒信号发送至所述转换请求器模块以触发所述休眠转换请求的唤醒和处理;以及
与所述表遍历机器组的其他转换请求中的一个或多个其他表遍历并行地提供具有所述ID的所述转换请求的所述VA的表遍历。
20.权利要求19的计算装置,其中所述存储器地址转换系统支持多页大小。
21.一种存储在计算机可读存储介质中的计算机程序产品,包括当由信息处理系统执行时执行权利要求19的任何方法的步骤的计算机程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/461,919 US11636043B2 (en) | 2021-08-30 | 2021-08-30 | Sleeping and waking-up address translation that conflicts with translation level of active page table walks |
US17/461,919 | 2021-08-30 | ||
PCT/CN2022/104829 WO2023029756A1 (en) | 2021-08-30 | 2022-07-11 | Sleep / wake-up performance enhancing for simultaneous address translation table walks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117897696A true CN117897696A (zh) | 2024-04-16 |
Family
ID=85289087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280056601.7A Pending CN117897696A (zh) | 2021-08-30 | 2022-07-11 | 用于同时地址转换表遍历的休眠/唤醒性能增强 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11636043B2 (zh) |
JP (1) | JP2024531054A (zh) |
CN (1) | CN117897696A (zh) |
DE (1) | DE112022003489T5 (zh) |
GB (1) | GB2625226A (zh) |
WO (1) | WO2023029756A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230195533A1 (en) * | 2021-12-22 | 2023-06-22 | Vmware, Inc. | Prepopulating page tables for memory of workloads during live migrations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613083A (en) * | 1994-09-30 | 1997-03-18 | Intel Corporation | Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions |
US7334108B1 (en) | 2004-01-30 | 2008-02-19 | Nvidia Corporation | Multi-client virtual address translation system with translation units of variable-range size |
CN100414519C (zh) | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 一种从虚拟地址向物理地址变换的方法及其装置 |
US10007619B2 (en) | 2015-05-29 | 2018-06-26 | Qualcomm Incorporated | Multi-threaded translation and transaction re-ordering for memory management units |
US10083124B1 (en) | 2017-03-22 | 2018-09-25 | International Business Machines Corporation | Translating virtual memory addresses to physical addresses |
US10649778B1 (en) | 2018-12-04 | 2020-05-12 | International Business Machines Corporation | Performance optimized congruence class matching for multiple concurrent radix translations |
CN113297105B (zh) | 2021-05-08 | 2024-01-09 | 阿里巴巴新加坡控股有限公司 | 一种转换地址的缓存处理方法及装置 |
-
2021
- 2021-08-30 US US17/461,919 patent/US11636043B2/en active Active
-
2022
- 2022-07-11 JP JP2024501476A patent/JP2024531054A/ja active Pending
- 2022-07-11 WO PCT/CN2022/104829 patent/WO2023029756A1/en active Application Filing
- 2022-07-11 GB GB2403483.7A patent/GB2625226A/en active Pending
- 2022-07-11 CN CN202280056601.7A patent/CN117897696A/zh active Pending
- 2022-07-11 DE DE112022003489.0T patent/DE112022003489T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024531054A (ja) | 2024-08-29 |
GB2625226A (en) | 2024-06-12 |
DE112022003489T5 (de) | 2024-05-16 |
US11636043B2 (en) | 2023-04-25 |
WO2023029756A1 (en) | 2023-03-09 |
US20230062909A1 (en) | 2023-03-02 |
GB202403483D0 (en) | 2024-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563458B2 (en) | Offloading and parallelizing translation table operations | |
US9448901B1 (en) | Remote direct memory access for high availability nodes using a coherent accelerator processor interface | |
US11119942B2 (en) | Facilitating access to memory locality domain information | |
US9928000B2 (en) | Memory mapping for object-based storage devices | |
US9742860B2 (en) | Bi-temporal key value cache system | |
CA2734069A1 (en) | Provisioning virtual resources using name resolution | |
US10346169B2 (en) | Selective suppression of instruction cache-related directory access | |
US11194580B2 (en) | Selective suppression of instruction translation lookaside buffer (ITLB) access | |
US10067716B2 (en) | Inaccessibility status indicator | |
WO2023029756A1 (en) | Sleep / wake-up performance enhancing for simultaneous address translation table walks | |
US10691604B2 (en) | Minimizing cache latencies using set predictors | |
US20190155745A1 (en) | Shared memory in a virtual environment | |
US20220237126A1 (en) | Page table manager | |
KR20120070326A (ko) | 메모리 가상화 장치 및 방법 | |
TWI823238B (zh) | 統一記憶體位址轉譯系統、提供一統一記憶體位址轉譯之方法及計算裝置 | |
WO2023140911A1 (en) | Systems and methods with integrated memory pooling and direct swap caching | |
WO2023172319A1 (en) | Direct swap caching with noisy neighbor mitigation and dynamic address range assignment |
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 |