CN114265790A - 用于连续性感知转换后备缓冲器的页分配 - Google Patents
用于连续性感知转换后备缓冲器的页分配 Download PDFInfo
- Publication number
- CN114265790A CN114265790A CN202111019518.6A CN202111019518A CN114265790A CN 114265790 A CN114265790 A CN 114265790A CN 202111019518 A CN202111019518 A CN 202111019518A CN 114265790 A CN114265790 A CN 114265790A
- Authority
- CN
- China
- Prior art keywords
- soft
- priority
- application
- page
- computing system
- 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 abstract description 14
- 239000000872 buffer Substances 0.000 title abstract description 6
- 230000015654 memory Effects 0.000 claims abstract description 131
- 238000000034 method Methods 0.000 claims abstract description 90
- 239000000758 substrate Substances 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 239000004065 semiconductor Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 18
- 230000014616 translation Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 9
- 230000005012 migration Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000004888 barrier function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000005056 compaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了用于连续性感知转换后备缓冲器的页分配。系统、设备和方法可以提供以下技术:为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,以及基于该地址空间的尺寸和布局对一组连续的物理存储器页进行软预留。
Description
相关申请的交叉引用
本申请要求2020年10月1日提交的印度专利申请号202041042862的优先权权益。
技术领域
实施例总体上涉及存储器页分配。更具体地说,实施例涉及用于连续性感知转换后备缓冲器(TLB)的页分配。
背景技术
转换后备缓冲器(TLB)是一种将虚拟地址(VA)映射到物理地址(PA)的高速缓存。TLB可能对系统性能至关重要,因为应用访问的每个地址都会通过TLB缓存寻找相应的物理地址。但是,对于具有大量存储器(例如,兆兆字节的存储器)的系统,增加TLB缓存可能会消耗大量硬件资源(例如,面积和功率两者)。因此,可能会遇到“地址转换壁垒”(例如,地址转换开销成为主要性能瓶颈的情况)。
附图说明
图1是传统基于预留的分配和根据实施例的基于预留的分配的比较示例的框图;
图2是传统地址映射的示例的框图;
图3A和图3B是根据实施例的用于连续性感知TLB的物理页分配的示例的框图;
图4A和图4B是根据实施例的当连续物理页不可用时的页分配示例的框图;
图5是根据实施例的操作性能增强的计算系统的方法的示例的流程图;
图6和图7是根据实施例的在多租户云环境中操作性能增强的计算系统的方法的示例的流程图;
图8是根据实施例的性能增强的计算系统的示例的框图;
图9是根据实施例的半导体封装设备的示例的图示;
图10是根据实施例的处理器的示例的框图;以及
图11是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
已经提出了许多硬件技术,例如CoLT(联合大范围TLB)来缓解地址转换壁垒。此类硬件技术可以称为连续性感知TLB。连续性感知TLB可以使用单个TLB条目来存储N个连续区域的地址转换映射。因此,单个条目可以具有映射任意尺寸的任何区域的灵活性。例如,单个连续性感知TLB条目可以映射5GB的区域,而利用普通TLB(当由4K页支持时)映射该区域需要1,310,720个TLB条目。然而,L2(第2级)TLB高速缓存只有1536个条目。
连续性感知TLB的要求是虚拟到物理地址的映射是连续的。由于操作系统管理此类虚拟到物理映射,因此在操作系统(OS)中没有合适的技术来为应用分配一组连续的物理页的情况下无法有效地使用硬件支持的连续性感知TLB功能。
实施例提供了一种新颖的页分配器,该页分配器支持页的“不流畅的”分配,以利用硬件支持的连续性感知TLB来改善TLB命中。这种分配是通过基于与进程相关联的虚拟地址空间的尺寸和布局对页进行软预留来实现的。
实施例通过支持“不流畅的”分配通过确保页分配时的存储器连续性来解决该问题。更具体地,在实施例中:
-支持“不流畅的”分配,与需要二的幂的分配的BSD(伯克利软件分发,例如FreeBSD开源操作系统)基于预留分配器不同。
-不需要进行重新分配来支持不流畅的分配,而恢复丢失的转换连续性的OS服务(例如,TRANSLATTION RANGER(转换范围器))和CA(连续性感知)分页需要分配以及之后的重新分配以支持不流畅的区域。
通过考虑出错VMA(虚拟存储器区域)的尺寸和布局来实现不流畅的页分配,以分配连续的物理存储器。OS为出错的虚拟地址分配物理页并且随后软预留一组连续的物理存储器页,以确保虚拟到物理地址映射的连续性。提出的连续性感知的页分配器确保尽最大努力将一组连续的物理页分配给应用,以最大限度地发挥硬件支持的连续性感知TLB的优势。连续性感知页分配器不需要对应用进行任何修改。
以前,TRANSLATION RANGER在操作系统中使用压缩,通过将分散的物理存储器页合并成更大的连续区域并迁移物理页来保持连续性。TRANSLATION RANGER使用的方法可能成本高昂,因为页迁移会增加存储器带宽,导致成本高昂的TLB否决,并且通常会增加影响QoS的应用等待时间。
实施例通过确保页分配时的存储器连续性来更根本性地解决该问题。连续性感知页分配器尽最大努力确保将一组连续的物理页分配给应用,以最大限度地发挥硬件支持的连续性感知TLB的优势。在页分配器由于存储器碎片而找不到一组连续页的情况下,可以在提出的连续性感知页分配器的基础上使用诸如TRANSLATION RANGER之类的现有技术。
CA分页是一种可确保在虚拟存储器区域上出现第一页错误时进行大于一页的连续映射的技术。该技术寻找最适合的连续物理存储器区域来映射虚拟地址空间。CA分页为出错的虚拟地址分配仅单个物理页。当相应的虚拟地址出现页错误时,对连续区域中的其余物理页进行分配(类似于请求分页)。因此,其他应用(即使在没有存储器压力的情况下)可能会出现页错误并从上面标识的区域分配物理页是可能的。
本文中描述的实施例在虚拟地址区域上的第一页错误时软预留整个物理地址范围(不同于请求分页),以确保不将此类物理页分配给其他应用。只有当系统处于存储器压力下时,软预留才会失效。这确保了连续映射不会被不必要地破坏。此外,实施例基于诸如以下各项的选择标准将连续性感知区域分配给一个进程或一组进程:进程优先级、进程属于特定用户组(例如,多租户云环境中的付费用户)或其他用户定义的标准。此外,实施例还基于虚拟存储器属性(例如堆、栈、存储器映射区域)定义进程虚拟地址空间内的连续性感知区域的细粒度分配。
FreeBSD中使用的基于预留的分页策略不支持“不流畅”分配。在BSD基于预留的分配中,预留尺寸固定为大页尺寸边界,这对于在传统TLB上是大页尺寸的倍数的VMA区域是最佳的(因为传统TLB与硬件支持的页尺寸相关联)。然而,对于任意尺寸的VMA区域,特别是在具有连续性感知TLB的系统上,大页尺寸边界不是最佳的,因为连续性感知TLB不依赖于硬件支持的页尺寸。
例如,图1示出在传统分配21中,当应用mmap(存储器映射)3MB区域时,BSD基于预留的分配只能预留2MB的连续物理存储器。然而,增强分配23可以预留3MB的连续物理存储器。
本文中描述的连续性感知页分配器技术通过支持不流畅分配来最大化连续物理存储器区域的数量,以利用硬件支持的连续性感知TLB的优势。这种支持是通过在分配物理存储器时考虑进程的VMA的尺寸和布局来实现的。这种技术有效地缓解了“地址转换壁垒”。
实施例可以减少高存储器占用应用所需的高达99%的TLB条目数量。这些减少进而可以显著减少页表走查所花费的总周期,从而可以提高应用/系统性能。这样做可以避免迁移页来确保最大的连续性的成本高昂的技术,诸如压缩。
附加细节
请求分页用于分配物理帧/页以支持进程的虚拟存储器地址。请求分页仅在进程访问虚拟存储器区域(VMA)时分配物理页。在此类分配之后,将虚拟地址(VA)映射到物理地址(PA)的转换被高速缓存在TLB中。
OS中的常规页分配器(诸如Linux内核中的“Buddy(伙伴)”分配器)在为应用分配页时不考虑连续性。为了详细解释,物理存储器由操作系统以硬件支持的基本页尺寸粒度(对于英特尔体系结构为4K)管理,并且当应用页在虚拟地址上出错时对页进行分配。因此,对于应用,分配总是以基本页尺寸粒度的。例外情况是当虚拟存储器区域由大页(例如,2M/4M)支持时,其中尝试将连续的大页物理存储器区域用于分配。
图2示出了LINUX内核中Buddy分配器的页分配策略25,该策略即使在连续物理存储器可用时也无法确保VA到PA的连续性。Buddy分配器维护每CPU(中央处理单元)的尺寸为4K的空闲页的列表,以确保在应用页出错时对页的高效分配。如果由四个虚拟页组成的应用VMA按以下顺序开始页出错:V2、V4、V1、V3,则伙伴分配器按以下顺序分配空闲列表中的页:P1、P2、P3和P4。即使分配了四个连续的物理页,这些页在虚拟地址空间中也不是连续的。即使具有连续性感知TLB,此类VA到PA地址映射也需要4个TLB条目(V1->P3;V2->P1;V3->P4和V4->P2)。因此,Buddy分配器无法确保连续性,因为它不知道虚拟存储器尺寸和布局。
如本文中所描述的VMA尺寸和布局感知页分配器将以P2、P4、P1和P3顺序分配页,使得单个连续感知TLB条目([V1:V4]->[P1:P4])映射整个VMA。
因此,常规页分配器不知晓VMA的尺寸和布局,并且在分配物理页时无法确保连续性。
解决方案
实施例包括用于连续性感知TLB的页分配器。提出的页分配器的新颖之处在于它支持“不流畅”的分配。当虚拟地址中页出错时,分配器会考虑出错的VMA的尺寸和布局来分配物理页,并软预留物理存储器页来对未来的请求进行服务。先前的页分配器(诸如Linux内核中的Buddy分配器)可以只分配二的幂个连续物理页,并且不考虑VMA尺寸和布局来优化物理页分配。
图3A示出了物理页分配27,其中在虚拟页V2页出错时存在使用中的页和空闲页。与选择第一可用空闲页(例如,P1)的常规解决方案不同,本文中描述的页分配器在分配页时考虑VMA尺寸和布局。根据VMA布局,页分配器发现出错发生在VMA中的第二虚拟页并且VMA有四个尚未被访问的虚拟页。据此,页分配器找到具有四个连续物理页的区域,并为V2分配第二物理页P6,并为虚拟页V1、V3和V4软预留其余物理页P5、P7和P8,如图3B中的物理页分配29所示。软预留将确保在系统中出现存储器压力之前这些页不会被分配给不同的VMA或被分配给不同的进程。因此,当应用后续页在V1、V3和V4上出错时,将分配软预留的连续物理页。这确保仅一个连续性感知TLB条目([V1:V4]->[P5:P8])映射整个区域。
然而,如图4A中的页分配31所示,当VMA区域页出错时所需数量的连续物理页可能不可用。当V3页出错时,没有连续的物理页可用于容纳VMA的尺寸和布局。在此类情况下,本文中描述的页分配器尝试最小化所需的连续性感知TLB条目的数量,并确保仅需要最少数量的页迁移来回收连续性。如图4B中的页分配33所示,页分配器可以为V3分配P6,软预留空闲页P4和P7,并进一步标记P5以供进行后台页迁移。因此,当V2后续页出错时,如果迁移完成,则可以分配P5。此策略使连续性最大化,同时使所需的页迁移的数量最小化。
过程
以下过程描述了连续性感知页分配器。页错误处理程序首先通过检查地址边界和访问权限来验证出错地址,并且随后使用出错虚拟地址来唤起alloc_page()。
ALLOC_PAGE(virtual_address VA)
{
1.获取与出错虚拟地址VA相关联的VMA和虚拟页地址。LINUX内核导出调用/宏以取出与出错虚拟地址关联的VMA和虚拟页。
2.计算VMA的尺寸、锚定页(VMA中的第一虚拟页地址)以及VMA内出错VA的虚拟页偏移。
3.查找此VMA的软预留物理页。如果存在此类页,为出错的虚拟页分配软预留页并退出。如果未找到软预留页,则去往下一操作。
4.搜索可以映射整个VMA的连续空闲物理页。使用最佳拟合或第一拟合或任何其他已知算法/试探法来寻找连续的空闲物理页。如果连续物理页不可用,则去往操作7。
5.将出错的虚拟页映射到在上述操作中找到的连续空闲物理页中的相应物理页。
6.软预留其余页并退出。
7.寻找具有最少已分配页数的连续物理存储器区域。将出错的虚拟页映射到由此找到的区域中的相应物理页。将此区域中的所有空闲物理页标记为“软预留”。标记此区域中所有分配的页以供进行后台页迁移。}
实施例还包括用于管理软预留的连续性感知页分配器。这些技术可以通过适当地增强上述过程来使用。
用于管理软预留的附加实施例
可以使软预留技术可用于多租户云环境(例如,性能即服务/PaaS模式)中的付费用户。在多租户云环境中,属于付费用户(例如,订户)的过程或应用被排定优先级:(i)即使在存储器压力期间,此类应用的软预留也不能失效(例如,操作系统可以恢复为交换属于未付费用户的应用的页),(ii)付费用户的应用可以使与非付费用户相关联的软预留失效。类似地,该方法可以基于进程优先级进行扩展。例如,不允许使与高优先级过程关联的软预留失效,而高优先级进程使低优先级过程的软预留失效。软预留还可以应用于虚拟地址空间的部分/子集。例如,页分配器可以使用用于仅对应用的堆、栈或存储器映射区域应用软预留的策略。
用于分配连续区域的附加实施例:
在操作4中可以使用试探法来确定算法尝试寻找连续的空闲物理页的激进性。这种方法使得能够在分配等待时间与TLB命中率之间进行权衡。在操作7中,可以使用试探法来确定页迁移的速率和时间。根据应用的要求,也可能在前台迁移页,而不是在后台迁移。同样在操作7中,基于对存储器带宽利用率的性能影响,可以避免迁移。即使没有迁移,与现有页分配器相比,本文中描述的技术也最小化了所需的连续性感知TLB条目的数量。
图5示出了操作性能增强的计算系统的方法20。方法20可在一个或多个模块中被实现为一组逻辑指令的集合,这些逻辑指令被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等机器或计算机可读存储介质中,被存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)可配置逻辑中,被存储在使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)的电路技术或晶体管-晶体管逻辑(TTL)技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
例如,可以用一种或多种编程语言的任何组合来编写用于实施在方法中所示的操作的计算机程序代码,这些编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规的过程编程语言。另外,逻辑指令可包括汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使对于硬件(例如,主机处理器、中央处理单元/CPU、微控制器等)而言是原生的电子电路系统和/或其他结构组件个性化的状态信息。
所图示的处理块22提供用于检测与虚拟存储器地址相关联的错误。在实施例中,块22涉及确定因为正在运行的程序访问了当前未通过存储器管理单元(MMU)映射到进程的虚拟地址空间的存储器页而由计算机硬件引发了异常。块24可为与错误相关联的虚拟存储器地址分配物理页。在一个示例中,块26确定包含虚拟存储器地址的地址空间的尺寸和布局,其中块28基于地址空间的尺寸和布局对一组连续物理存储器页进行软(例如,能够失效)预留。在实施例中,通过请求操作系统阻止其他应用使用该组连续物理存储器页来执行软预留(例如,使预留页可用于提交)。另外,软预留可以被限于地址空间的一部分(例如,堆、栈)。
因此,方法20至少在进行软预留减少用于高存储器占用应用的TLB条目的数量的程度上增强了性能。如前所述,这些减少可能进而显著减少页表走查所花费的总周期,从而改善应用和/或系统性能。此外,方法20避免了迁移页来确保最大的连续性的成本高昂的技术,诸如压缩。
图6示出了在多租户云环境中操作性能增强型计算系统的方法30。方法30通常可以结合已经讨论过的方法20(图5)来实现。更具体地,方法30可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD可配置逻辑中,被存储在使用诸如例如ASIC、CMOS的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
所图示的块32使得一组连续物理存储器页可供多租户云环境中的付费用户(例如订户)使用。另外,框34可防止软预留的失效。尝试的失效可能是例如存储器压力造成的。在实施例中,框36允许与付费用户相关联的应用使与非付费(例如,非订阅)用户相关联的一个或多个其他软预留失效。因此,方法30通过在多租户设置中促进连续性感知TLB来进一步增强性能。
图7示出了在多租户云环境中操作性能增强的计算系统的另一方法40。方法40通常可以结合已经讨论过的方法20(图5)和/或方法30(图4)来实现。更具体地,方法40可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
所图示的块42提供用于检测使软预留失效的尝试,其中块44确定该尝试是否由比进行软预留的应用(例如,第一应用)具有更高优先级的应用进行。如果否,则块46阻止使软预留失效的尝试。因此,如果尝试是由具有低于与第一应用相关联的第一优先级的第二优先级的第二应用进行的,则执行块46。然而,如果在块44确定尝试是由比进行软预留的应用具有更高优先级的应用进行的,则块48允许使该软预留失效的尝试。因此,如果尝试是由具有高于与第一应用相关联的第一优先级的第三优先级的第三应用进行的,则执行块48。因此,所图示的方法40通过在多租户设置中启用应用的优先级排定来进一步增强性能。
现在转向图8,示出了性能增强的计算系统110。系统110一般可以是具有计算功能的电子设备/系统(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板、服务器)的部分、具有通信功能电子设备/系统(例如,智能电话)的部分、具有成像功能的电子设备/系统(例如,相机、便携式摄像机)的部分、具有媒体播放功能的电子设备/系统(例如,智能电视/TV)的部分、具有可穿戴功能的电子设备/系统(例如,手表、眼部穿戴物、头戴物、脚部穿戴物、首饰)的部分、具有车载功能的电子设备/系统(例如,汽车、卡车、摩托车)的部分、具有机器人功能电子设备/系统(例如,自主机器人)的部分、具有物联网(IoT)功能的电子设备/系统的部分等等,或者具有以上各功能的任何组合的电子设备/系统的部分。
在所示的示例中,系统110包括具有耦合到系统存储器116的集成存储器控制器(IMC)114的主机处理器112(例如,CPU)。在一个实施例中,IO模块118耦合到主机处理器112。所图示的IO模块118与例如显示器124(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器126(例如,有线和/或无线)和大容量存储128(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存等)通信。系统110还可以包括图形处理器120(例如,图形处理单元/GPU),该图形处理器120与主机处理器112和IO模块118合并到芯片上系统(SoC)130中。
在一个示例中,系统存储器116和/或大容量存储128包括一组可执行程序指令122,这些指令在由SoC 130执行时使该SoC 130和/或计算系统110实现已经讨论的方法20(图5)、方法30(图6)和/或方法40(图7)的一个或多个方面。因此,SoC 130可以执行指令122来为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,并且基于该地址空间的尺寸和布局对一组连续的物理存储器页进行软预留。在实施例中,物理存储器页位于系统存储器116中。
因此,至少在进行软预留减少了用于高存储器占用应用的TLB条目的数量的程度上,计算系统110是性能增强的。如已经提到的,这些减少可能进而显著减少页表走查所花费的总周期,从而改善应用和/或系统性能。此外,计算系统110避免迁移页来确保最大的连续性的成本高昂的技术,诸如压缩。
图9示出半导体设备140(例如,包括辅助处理器的芯片和/或封装)。所示设备140包括一个或多个衬底142(例如,硅、蓝宝石、砷化镓)和耦合到(多个)衬底142的逻辑144(例如,晶体管阵列和其他集成电路/IC组件)。在实施例中,逻辑144实现已经讨论过的方法20(图5)、方法30(图6)和/或方法40(图7)的一个或多个方面。因此,逻辑144可以为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,并基于该地址空间的尺寸和布局对一组连续的物理存储器页进行软预留。
逻辑144可至少部分地实现在可配置逻辑或固定功能硬件逻辑中。在一个示例中,逻辑144包括定位(例如,嵌入)在(多个)衬底142内的晶体管沟道区。因此,逻辑144与(多个)衬底142之间的接口可以不是突变结。逻辑144还可被认为包括在(多个)衬底142的初始晶圆上生长的外延层。
图10图示出根据一个实施例的处理器核200。处理器核200可以是用于任何类型的处理器的核,该处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图10中仅图示了一个处理器核200,但处理元件可替代地包括多于一个的图10中所图示的处理器核200。处理器核200可以是单线程核,或对于至少一个实施例,处理器核200可以是多线程的,因为其每个核可包括多于一个的硬件线程上下文(或“逻辑处理器”)。
图10还图示出耦合至处理器核200的存储器270。存储器270可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的各种各样的存储器(包括存储器层级结构的各个层)中的任何一种。存储器270可以包括用于由处理器核200执行的一条或多条代码213指令,其中代码213可以实现已经讨论过的方法20(图5)、方法30(图6)和/或方法40(图7)。处理器核200遵循由代码213指示的指令的程序序列。每条指令可进入前端部分210并由一个或多个解码器220处理。解码器220可生成微操作(诸如采用预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。所图示的前端部分210还包括寄存器重命名逻辑225和调度逻辑230,该调度逻辑230一般分配资源并将与转换指令相对应的操作进行排队以供执行。
处理器核200被示出为包括具有一组执行单元255-1至255-N的执行逻辑250。一些实施例可以包括专用于指定功能或功能组的大量执行单元。其他实施例可包括仅一个执行单元或可以执行特定功能的一个执行单元。所图示的执行逻辑250执行由代码指令指定的操作。
在完成对由代码指令指定的操作的执行之后,后端逻辑260对代码213的指令进行引退。在一个实施例中,处理器核200允许乱序执行但是要求指令的有序引退。引退逻辑265可采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。以此方式,至少在由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表、以及由执行逻辑250修改的任何寄存器(未示出)方面,处理器核200在代码213的执行期间被变换。
虽然未在图10中图示,但处理元件可包括与处理器核200一起处于芯片上的其他元件。例如,处理元件可包括连同处理器核200一起的存储器控制逻辑。处理元件可包括I/O控制逻辑和/或可包括与存储器控制逻辑一起被集成的I/O控制逻辑。处理元件还可包括一个或多个高速缓存。
现在参考图11,所示出的是根据实施例的计算系统1000实施例的框图。图11中所示出的是多处理器系统1000,其包括第一处理元件1070和第二处理元件1080。尽管示出了两个处理元件1070和1080,但是要理解,系统1000的实施例还可包括仅一个此类处理元件。
系统1000被图示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应当理解,图11中所图示的互连中的任何或全部互连可被实现为多分支总线而不是点对点互连。
如图11中所示,处理元件1070和1080中的每一者可以是包括第一处理器核和第二处理器核(即,处理器核1074a和1074b、以及处理器核1084a和1084b)的多核处理器。此类核1074a、1074b、1084a、1084b可被配置成用于以与上文结合图10所讨论的方式类似的方式来执行指令代码。
每个处理元件1070、1080可包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可存储分别由处理器的一个或多个组件(诸如核1074a、1074b,以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可本地地对存储器1032、1034中所存储的数据进行高速缓存以供处理器的组件进行更快速的访问。在一个或多个实施例中,共享高速缓存1896a、1896b可包括一个或多个中间级别高速缓存(诸如第2级(L2)、第3级(L3)、第4级(L4)、或其他级别的高速缓存)、末级高速缓存(LLC)和/或其组合。
虽然被示出为具有仅两个处理元件1070、1080,但要理解,实施例的范围不限于此。在其他实施例中,在给定的处理器中可存在一个或多个附加处理元件。替代地,处理元件1070、1080中的一者或多者可以是除处理器之外的元件,诸如加速器或现场可编程门阵列。例如,(多个)附加处理元件可包括与第一处理器1070相同的(多个)附加处理器、与第一处理器1070异构或不对称的(多个)附加处理器、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。在包括架构、微架构、热、功耗特性等等一系列品质度量方面,处理元件1070、1080之间可以存在各种差异。这些差异自身可有效地表现为处理元件1070、1080之中的不对称性和异构性。对于至少一个实施例,各处理元件1070、1080可驻留在同一管芯封装中。
第一处理元件1070可进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可包括MC 1082以及P-P接口1086和1088。如图11中所示,MC 1072和1082将处理器耦合至相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附连到相应处理器的主存储器的部分。尽管MC 1072和MC 1082被图示为被集成到处理元件1070、1080中,但对于替代实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成于其中。
第一处理元件1070和第二处理元件1080可分别经由P-P互连1076、1086耦合至I/O子系统1090。如图11中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括将I/O子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可使用总线1049将图形引擎1038耦合至I/O子系统1090。替代地,点对点互连可耦合这些组件。
进而,I/O子系统1090可经由接口1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或者可以是诸如PCI快速(PCI Express)总线或另一第三代I/O互连总线之类的总线,但是实施例的范围不限于此。
如图11中所示,各种I/O设备1014(例如,生物计量扫描仪、扬声器、相机、传感器)可连同总线桥1018一起耦合至第一总线1016,该总线桥1018可将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线1020,这些设备包括例如键盘/鼠标1012、(多个)通信设备1026、以及数据存储单元1019(诸如可包括代码1030的盘驱动器或其他大容量存储设备)。所图示的代码1030可以实现已经讨论过的方法20(图5)、方法30(图6)和/或方法40(图7),并且可以类似于已经讨论过的代码213(图10)。此外,音频I/O 1024可耦合至第二总线1020,并且电池1010可向计算系统1000提供功率。
注意,构想了其他实施例。例如,代替于图11的点对点架构,系统可实现多分支总线或者另一此类通信拓扑。而且,可替代地使用比图11中所示的更多或更少的集成芯片来对图11的元件进行分区。
附加注解与示例
示例1包括一种性能增强计算系统,该系统包括网络控制器、耦合到网络控制器的处理器和耦合到处理器的存储器,该存储器包括一组可执行程序指令,这些指令当由处理器执行时使处理器用于:为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,以及基于该地址空间的尺寸和布局对一组连续物理存储器页进行软预留。
示例2包括示例1的计算系统,其中,指令在被执行时,使计算系统用于使该组连续物理存储器页可供多租户云环境中的付费用户使用。
示例3包括示例2的计算系统,其中,指令在被执行时,使计算系统用于:阻止软预留响应于存储器压力而失效,以及允许与付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
示例4包括示例1的计算系统,其中软预留用于具有第一优先级的第一应用相关联,并且其中指令在被执行时,使计算系统用于:阻止具有低于第一优先级的第二优先级的第二应用使软预留失效,以及允许具有高于第一优先级的第三优先级的第三应用使软预留失效。
示例5包括示例1的计算系统,其中软预留将被限制于地址空间的部分。
示例6包括示例1至5中任一项的计算系统,其中,指令在被执行时,进一步使计算系统用于检测关于虚拟存储器地址的错误。
示例7包括一种半导体设备,该半导体设备包括包含一个或多个衬底以及耦合到该一个或多个衬底的逻辑,其中该逻辑至少部分地实现在可配置逻辑或固定功能硬件逻辑中的一者或多者中,耦合到一个或多个衬底的逻辑用于:为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,以及基于该地址空间的尺寸和布局对一组连续的物理存储器页进行软预留。
示例8包括示例7的设备,其中耦合到一个或多个衬底的逻辑用于使该组连续物理存储器页可供多租户云环境中的付费用户使用。
示例9包括示例8的设备,其中耦合到一个或多个衬底的逻辑用于:阻止软预留响应于存储器压力而失效,以及允许与付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
示例10包括示例7的设备,其中软预留用于与具有第一优先级的第一应用相关联,并且其中,耦合到一个或多个衬底的逻辑用于:阻止具有低于第一优先级的第二优先级的第二应用使软预留失效,以及允许具有高于第一优先级的第三优先级的第三应用使软预留失效。
示例11包括示例7的设备,其中软预留被限制于地址空间的一部分。
示例12包括示例7至11中任一项的设备,其中耦合到一个或多个衬底的逻辑用于检测关于虚拟存储器地址的错误。
示例13包括示例7至11中任一项的设备,其中耦合至一个或多个衬底的逻辑包括定位在该一个或多个衬底内的晶体管通道区。
示例14包括至少一种计算机可读存储介质,包括一组可执行程序指令,这些指令在被计算系统执行时,使得该计算系统用于:为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,并基于该地址空间的尺寸和布局对一组连续物理存储器页进行软预留。
示例15包括示例14的至少一种计算机可读存储介质,其中,指令在被执行时使计算系统用于使该组连续物理存储器页可供多租户云环境中的付费用户使用。
示例16包括示例15的至少一种计算机可读存储介质,其中,指令在被执行时使计算系统用于:阻止软预留响应于存储器压力而失效,以及允许与付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
示例17包括示例14的至少一种计算机可读存储介质,其中软预留用于与具有第一优先级的第一应用相关联,并且其中指令在被执行时,使计算系统用于:阻止具有低于第一优先级的第二优先级的第二应用使软预留失效,以及允许具有高于第一优先级的第三优先级的第三应用使软预留失效。
示例18包括示例14的至少一种计算机可读存储介质,其中软预留将被限制于地址空间的部分。
示例19包括示例14至18中任一项的至少一种计算机可读存储介质,其中,指令在被执行时,进一步使计算系统检测关于虚拟存储器地址的错误。
示例20包括一种方法,该方法包括:为与错误相关联的虚拟存储器地址分配物理页,确定包含该虚拟存储器地址的地址空间的尺寸和布局,以及基于该地址空间的尺寸和布局对一组连续物理存储器页进行软预留。
示例21包括示例20的方法,进一步包括使该组连续物理存储器页可供多租户云环境中的付费用户使用。
示例22包括示例21的方法,进一步包括:阻止软预留响应于存储器压力而失效,以及允许与付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
示例23包括示例20的方法,其中软预留与具有第一优先级的第一应用相关联,并且其中该方法进一步包括:阻止具有低于第一优先级的第二优先级的第二应用使软预留失效,以及允许具有高于第一优先级的第三优先级的第三应用使软预留失效。
示例24包括示例20的方法,其中软预留被限制于地址空间的部分。
示例25包括示例20至24中任一项的方法,进一步包括检测关于虚拟存储器地址的错误。
示例26包括用于执行如示例20至25中任一项所述的方法的装置。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线用线表示。一些线可以是不同的以指示更多构成信号路径,可以具有数字标号以指示构成信号路径的数量,和/或可以具有一端或多端的箭头以指示主要信息流向。然而,这不应以限制性方式来解释。相反,此类添加的细节可与一个或多个示例性实施例结合使用以促进更容易地理解电路。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,该一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路、和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是实施例不限于此。随着制造技术(例如,光刻法)随时间变得成熟,预计能制造出更小尺寸的设备。另外,为了说明和讨论的简单起见并且为了避免使实施例的某些方面模糊,到IC芯片和其他组件的公知的功率/接地连接可在附图内示出也可不示出。此外,各种布置可以框图形式示出以避免模糊各实施例,并且这也鉴于关于此类框图布置的实现方式的具体细节高度依赖于在其内实现实施例的计算系统的事实,即此类具体细节应当良好地落在本领域内技术人员的学识范围内。在阐述具体细节(例如电路)以便描述示例实施例的情况下,对本领域内技术人员应显而易见的是,实施例可以在不具有这些具体细节或对这些具体细节作出变型的情况下实施。描述因此被视为是说明性的而不是限制性的。
术语“耦合的”在本公开中可被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等在本公开中可仅用于便于讨论,并且不带有特定时间的或按时间顺序的意义,除非另有陈述。
如在本申请和权利要求书中所使用的,由术语“……中的一个或多个”联接的项列表可意指所列项的任何组合。例如,短语“A、B或C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员从前面的描述将领会,实施例的广泛技术能以各种形式来实现。因此,尽管已结合其特定示例描述了实施例,但实施例的真实范围不应当限于此,因为在研究附图、说明书和所附权利要求书之后,其他修改对于本领域技术人员将变得显而易见。
Claims (25)
1.一种计算系统,包括:
网络控制器;
处理器,耦合至所述网络控制器;以及
存储器,耦合至所述处理器,所述存储器包括一组可执行程序指令,所述指令在被所述处理器执行时,使所述处理器用于:
为与错误相关联的虚拟存储器地址分配物理页,
确定包含所述虚拟存储器地址的地址空间的尺寸和布局,以及
基于所述地址空间的所述尺寸和所述布局,对一组连续的物理存储器页进行软预留。
2.如权利要求1所述的计算系统,其中,所述指令在被执行时使所述计算系统用于使得所述一组连续的物理存储器页能供多租户云环境中的付费用户使用。
3.如权利要求2所述的计算系统,其中,所述指令在被执行时,使所述计算系统用于:
阻止所述软预留响应于存储器压力而失效,以及
允许与所述付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
4.如权利要求1所述的计算系统,其中,所述软预留用于与具有第一优先级的第一应用相关联,并且其中,所述指令在被执行时,使所述计算系统用于:
阻止具有低于所述第一优先级的第二优先级的第二应用使所述软预留失效,以及
允许具有高于所述第一优先级的第三优先级的第三应用使所述软预留失效。
5.如权利要求1所述的计算系统,其中,所述软预留被限制于所述地址空间的部分。
6.如权利要求1-5中任一项所述的计算系统,其中,所述指令在被执行时,进一步使所述计算系统用于检测关于所述虚拟存储器地址的所述错误。
7.一种半导体设备,包括:
一个或多个衬底;以及
逻辑,耦合至所述一个或多个衬底,其中所述逻辑至少部分地被实现在可配置逻辑或固定功能硬件逻辑中的一者或多者中,耦合至所述一个或多个衬底的所述逻辑用于:
为与错误相关联的虚拟存储器地址分配物理页;
确定包含所述虚拟存储器地址的地址空间的尺寸和布局,以及
基于所述地址空间的所述尺寸和所述布局,对一组连续的物理存储器页进行软预留。
8.如权利要求7所述的设备,其中,耦合至所述一个或多个衬底的所述逻辑用于使得所述一组连续的物理存储器页能供多租户云环境中的付费用户使用。
9.如权利要求8所述的设备,其中,耦合至所述一个或多个衬底的所述逻辑用于:
阻止所述软预留响应于存储器压力的而失效;以及
允许与所述付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
10.如权利要求7所述的设备,其中,所述软预留用于与具有第一优先级的第一应用相关联,并且其中耦合至所述一个或多个衬底的所述逻辑用于:
阻止具有低于所述第一优先级的第二优先级的第二应用使所述软预留失效;以及
允许具有高于所述第一优先级的第三优先级的第三应用使所述软预留失效。
11.如权利要求7所述的设备,其中,所述软预留被限制于所述地址空间的部分。
12.如权利要求7-11中任一项所述的设备,其中,耦合至所述一个或多个衬底的所述逻辑用于检测关于所述虚拟存储器地址的所述错误。
13.一种页分配设备,包括:
用于为与错误相关联的虚拟存储器地址分配物理页的装置;
用于确定包含所述虚拟存储器地址的地址空间的尺寸和布局的装置;以及
用于基于所述地址空间的所述尺寸和所述布局对一组连续的物理存储器页进行软预留的装置。
14.如权利要求13所述的设备,进一步包括用于使得所述一组连续物理存储器页能供多租户云环境中的付费用户使用的装置。
15.如权利要求14所述的设备,进一步包括:
用于阻止所述软预留响应于存储器压力而失效的装置;以及
用于允许与所述付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效的装置。
16.如权利要求13所述的设备,其中,所述软预留与具有第一优先级的第一应用相关联,并且所述设备进一步包括:
用于阻止具有低于所述第一优先级的第二优先级的第二应用使所述软预留失效的装置;以及
用于允许具有高于所述第一优先级的第三优先级的第三应用使所述软预留失效的装置。
17.如权利要求13所述的设备,其中,所述软预留被限制于所述地址空间的部分。
18.如权利要求13-17中任一项所述的设备,进一步包括用于检测关于所述虚拟存储器地址的所述错误的装置。
19.一种方法,包括:
为与错误相关联的虚拟存储器地址分配物理页;
确定包含所述虚拟存储器地址的地址空间的尺寸和布局;以及
基于所述地址空间的所述尺寸和所述布局,对一组连续的物理存储器页进行软预留。
20.如权利要求19所述的方法,进一步包括使所述一组连续的物理存储器页能供多租户云环境中的付费用户使用。
21.如权利要求20所述的方法,进一步包括:
阻止所述软预留响应于存储器压力而失效;以及
允许与所述付费用户相关联的应用使与非付费用户相关联的一个或多个其他软预留失效。
22.如权利要求19所述的方法,其中,所述软预留与具有第一优先级的第一应用相关联,并且其中,所述方法进一步包括:
阻止具有低于所述第一优先级的第二优先级的第二应用使所述软预留失效;以及
允许具有高于所述第一优先级的第三优先级的第三应用使所述软预留失效。
23.如权利要求19所述的方法,其中,所述软预留被限制于所述地址空间的部分。
24.如权利要求19-23中任一项所述的方法,进一步包括检测关于所述虚拟存储器地址的所述错误。
25.至少一种计算机可读存储介质,包括一组指令,所述指令在被计算系统执行时使所述计算系统执行权利要求19-23中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041042862 | 2020-10-01 | ||
IN202041042862 | 2020-10-01 | ||
US17/113,801 | 2020-12-07 | ||
US17/113,801 US20210089467A1 (en) | 2020-10-01 | 2020-12-07 | Page allocation for contiguity-aware translation lookaside buffers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114265790A true CN114265790A (zh) | 2022-04-01 |
Family
ID=74882407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111019518.6A Pending CN114265790A (zh) | 2020-10-01 | 2021-09-01 | 用于连续性感知转换后备缓冲器的页分配 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210089467A1 (zh) |
CN (1) | CN114265790A (zh) |
DE (1) | DE102021122219A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009061432A1 (en) * | 2007-11-06 | 2009-05-14 | Credit Suisse Securities (Usa) Llc | Predicting and managing resource allocation according to service level agreements |
US9244513B2 (en) * | 2008-10-28 | 2016-01-26 | International Business Machines Corporation | Reduction of computer resource use in a virtual universe |
KR102402780B1 (ko) * | 2015-06-04 | 2022-05-27 | 삼성전자 주식회사 | 메모리 관리 방법 및 장치 |
GB201704844D0 (en) * | 2017-03-27 | 2017-05-10 | Microsoft Technology Licensing Llc | Manual memory management using lazy patching |
KR102498668B1 (ko) * | 2017-05-17 | 2023-02-09 | 삼성전자주식회사 | 플래시-인지 힙 메모리 관리 방법 및 호스트 장치 |
US10810305B2 (en) * | 2018-02-19 | 2020-10-20 | Intel Corporation | Securing untrusted code using memory protection key and control flow integrity |
WO2019236083A1 (en) * | 2018-06-07 | 2019-12-12 | Nokia Technologies Oy | Mobile edge computing applications management for wireless networks |
CN112148467A (zh) * | 2019-06-28 | 2020-12-29 | 微软技术许可有限责任公司 | 计算资源的动态分配 |
-
2020
- 2020-12-07 US US17/113,801 patent/US20210089467A1/en active Pending
-
2021
- 2021-08-27 DE DE102021122219.2A patent/DE102021122219A1/de active Pending
- 2021-09-01 CN CN202111019518.6A patent/CN114265790A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021122219A1 (de) | 2022-04-07 |
US20210089467A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9921972B2 (en) | Method and apparatus for implementing a heterogeneous memory subsystem | |
US6880022B1 (en) | Transparent memory address remapping | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US9003164B2 (en) | Providing hardware support for shared virtual memory between local and remote physical memory | |
KR102290464B1 (ko) | 시스템 온 칩 및 그것의 주소 변환 방법 | |
US10133677B2 (en) | Opportunistic migration of memory pages in a unified virtual memory system | |
US8176220B2 (en) | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors | |
EP2090987B1 (en) | Cache pooling for computing systems | |
US20120246381A1 (en) | Input Output Memory Management Unit (IOMMU) Two-Layer Addressing | |
US9727482B2 (en) | Address range priority mechanism | |
US20120159039A1 (en) | Generalized Control Registers | |
US20060123197A1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
CN113039531A (zh) | 缓存存储器请求流 | |
US20060123196A1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
US20120144124A1 (en) | Method and apparatus for memory access units interaction and optimized memory scheduling | |
US10657070B2 (en) | Apparatus and method for shared least recently used (LRU) policy between multiple cache levels | |
US20240232096A9 (en) | Hardware assisted memory access tracking | |
US10372622B2 (en) | Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits | |
CN110737407A (zh) | 一种支持混合写策略的数据缓冲存储器实现方法 | |
CN114265790A (zh) | 用于连续性感知转换后备缓冲器的页分配 | |
US11960422B2 (en) | Direct memory access tracking for pass-through devices in virtualized environments | |
WO2022198548A1 (en) | Pasid granularity resource control for iommu |
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 |