CN108604210A - 基于执行许可的高速缓存的写分配 - Google Patents

基于执行许可的高速缓存的写分配 Download PDF

Info

Publication number
CN108604210A
CN108604210A CN201780010875.1A CN201780010875A CN108604210A CN 108604210 A CN108604210 A CN 108604210A CN 201780010875 A CN201780010875 A CN 201780010875A CN 108604210 A CN108604210 A CN 108604210A
Authority
CN
China
Prior art keywords
write
cache
address
license
execution
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.)
Granted
Application number
CN201780010875.1A
Other languages
English (en)
Other versions
CN108604210B (zh
Inventor
T·A·萨托里乌斯
J·N·迪芬德尔费尔
M·W·莫罗
J·T·布里奇斯
M·S·麦克勒瓦伊内
R·W·史密斯
K·A·多克瑟尔
T·P·施派尔
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108604210A publication Critical patent/CN108604210A/zh
Application granted granted Critical
Publication of CN108604210B publication Critical patent/CN108604210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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]
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Abstract

用于管理对高速缓存的存取的系统及方法涉及确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可。所述高速缓存可为用于存储数据以及指令的统一高速缓存。在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,高速缓存控制器可基于所述一或多个执行许可而确定是否实施写入‑分配策略或写入‑不分配策略以用于服务所述写入未命中。所述一或多个执行许可可涉及与所述写入地址相关联的特权等级。产生所述写入请求的产生代理程序的执行许可及可从所述写入地址执行的消耗代理程序的执行许可可分别基于所述产生代理程序及所述消耗代理程序的特权等级。

Description

基于执行许可的高速缓存的写分配
技术领域
所公开方面涉及管理处理系统中的高速缓存分配。更具体来说,例示性方面涉及基于执行许可的统一高速缓存中的写入分配。
背景技术
现代处理器可包含一或多个等级的高速缓存存储器(或简单地,“高速缓存”),其经设计为高速存储器。存储于高速缓存中的信息(或“高速缓存信息”)可包含数据、指令或其组合。视高速缓存信息的类型而定,高速缓存可分类为数据高速缓存(D高速缓存)、指令高速缓存(I高速缓存)或组合式数据及指令高速缓存(也称为“统一高速缓存”)。
存取高速缓存的处理程序可涉及处理器进行对特定信息的读取或写入请求且检查高速缓存以查看所请求信息是否存在。如果信息存在,那么高速缓存“命中(hit)”据称发生,且如果信息不存在,那么高速缓存“未命中(miss)”据称发生。视请求涉及读取抑或涉及写入而定,命中或未命中可更具体来说被称作读取命中/读取未命中或写入命中/写入未命中。
更详细来说,在读取命中的情况下,项(命中项)存在于高速缓存中,其对应于与由处理器请求的信息相关联的地址;且从命中项读取信息且将信息从高速缓存传回到处理器。在写入命中的情况下,命中项再次存在于高速缓存中,其对应于处理器希望写入信息到的地址;且处理器将信息写入到高速缓存中的命中项。可以不同方式处置读取未命中及写入未命中的情况,如下文将解释。
读取未命中在处理器存取高速缓存以从项读取信息,但项不存在于高速缓存中时发生。为了服务读取未命中,从另一高速缓存或备份存储位置读取所要信息,且接着将所要信息供应到处理器,且还可将所要信息放置到高速缓存的项中。将所要信息放置到高速缓存的项中(通过产生新项,或以所要信息替换现有项)被称作分配。常规地,可对读取未命中执行分配(假设满足例如存取许可的其它准则,其它准则将在以下章节中加以描述)。
然而,在不同实施方案中,写入未命中可能或可能不引起分配。更详细地考虑写入未命中,写入未命中涉及存取高速缓存以将信息写入到特定项,但所述项不存在于高速缓存中。可通过写入-分配策略或写入-不分配策略来服务写入未命中。写入-分配策略涉及将存储于与写入请求相关联的地址处的高速缓存行大小的块(例如,从备份存储位置)引进到高速缓存的项(分配)中及将所要写入信息存储到所分配项中。使用写入-分配策略可在对所分配项作出后续读取请求的情况下/时改进性能,这是因为对应读取存取将引起高速缓存中的读取命中。性能可关于对所分配项的后续写入存取改进,这是因为后续写入存取将还引起写入命中,其中对应写入信息可更新所分配项,而不涉及对备份存储位置的存取(记住,“直写”策略(其中甚至在写入命中的情况下,写入信息在备份存储位置中经更新)可仍然涉及对备份存储位置的这些存取)。
在写入-不分配策略下,服务高速缓存中的写入未命中可涉及进入检查对应于写入信息的地址的备份存储位置,但不随后更新或分配高速缓存。这意味着将不产生所分配项,且因此,对未分配项的后续写入请求将也未命中。如先前所描述,读取未命中可引起分配,且因此,除非项是基于后续读取存取而分配,否则后续写入请求将继续引起写入未命中且根据写入-不分配策略进行。可在所写入的信息可能不具有与要读取的信息的时间局部性的环境中实施写入-不分配策略。举例来说,在高速缓存为D高速缓存的情况下,写入-不分配策略可就位,其中由处理器执行的程序可能不读取相对最近写入的数据。因此,可避免在写入未命中之后即分配项,此举可改进这些情况下的性能。
可在一些实施方案中使用写入-分配策略与写入-不分配策略的组合(也称作“混合分配策略”)。在混合分配策略中,写入分配可基于与相读取/写入请求相关联的地址而变化。地址可属于存储器的不同页,其中每一内存页与不同分配策略相关联。所要读取/写入存储器存取的分配策略属性可存储于如所属领域中已知的存储器管理单元(MMU)中且从MMU检索,例如,在用于存储器存取的页表项(PTE)中。因此,基于来自PTE的与写入请求相关联的配置或分配策略属性,可决定写入未命中是否引起写入-分配或写入-不分配。
如先前所提及,存储器存取操作还可受额外准则(例如存取许可)影响。举例来说,每一内存页可具有可影响对于属于内存页的地址的读取及写入操作的相关联许可。与地址相关联的PTE可由MMU在确定由处理器所要的读取或写入存取是否具有对应读取或写入许可时使用,可分别视读取或写入许可而允许读取或写入存取进行。因此,如果存取许可对于特定地址存在(即,读取许可对于读取操作存在,或写入许可对于写入操作存在),那么可准许对应存取操作(分别为读取或写入)。
因此,确定对于地址的存取操作是否可引起高速缓存分配可涉及首先确定对应存取许可是否存在,这是因为如果存取许可不存在,那么可不准许存取操作,且因此分配的问题可能不会产生;且如果存取许可的确存在,那么分配可基于可对于地址就位的特定分配策略。举例来说,在写入操作的情况下,确定用于高速缓存中的写入未命中的写入分配策略可为两步骤处理程序,其中第一步骤可涉及确定写入许可对于意图的写入操作是否存在。如果写入许可存在,那么第二步骤可涉及确定在高速缓存中存在写入未命中的情况下是否进行写入-分配或写入-不分配。如果在第一步骤中确定写入许可不存在,那么高速缓存分配的问题可能未决议,这是因为可能不准许写入操作且可能不存取高速缓存。
除了读取及写入许可以外,可与存储器地址或内存页相关联的又一种类型的许可可涉及“执行”许可。执行许可可涉及存储于存储器中的指令,其中,如果存储有指令的地址具有执行许可,那么所述指令可执行;否则,指令可不由特定程序执行。一些内存页(例如,由代码产生器、及时(JIT)编译器及可涉及读取/写入的其它程序以及执行指令针对的内存页)可使读取/写入许可以及执行许可经启用。代码产生器可将经编译程序写入到具有读取、写入及执行许可的内存页,且此后从这些内存页检索经编译程序以供执行。
因此,可了解,可存储数据以及指令的统一高速缓存可具有与统一高速缓存的项相关联的读取、写入及执行许可。常规实施方案在确定是否允许存储器存取时可考虑读取及写入许可。然而,已知方法在确定用于在统一高速缓存中未命中的写入存取的写入分配策略时未考虑执行许可。
发明内容
本发明的例示性方面涉及用于管理对高速缓存的存取的系统及方法,所述高速缓存可经配置为用于存储数据以及指令的统一高速缓存。可(例如)通过使用例如存储器管理单元(MMU)的逻辑来确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可。在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,高速缓存控制器可基于所述一或多个执行许可而确定是否实施写入-分配策略或写入-不分配策略以用于服务所述写入未命中。
在一些方面中,与所述写入地址相关联的所述一或多个执行许可可涉及适用于所述写入地址的一或多个特权等级(例如用户特权等级、监督员特权等级等)的执行许可。产生所述写入请求的产生代理程序及可潜在地从所述写入地址执行的消耗代理程序可各自具有选自所述一或多个特权等级的特权等级。在服务所述写入未命中时,所述产生代理程序以及所述产生代理程序的所述特权等级可能已知;然而,所述潜在消耗代理程序可为未知的,且因此,所述潜在消耗代理程序的相关联特权等级可为未知的。因此,在一些方面中,用于写入未命中的写入分配策略可基于与所述产生代理程序的特权等级相关联的执行许可及/或与所述写入地址的任何其它特权等级相关联的执行许可(例如,可为所述执行许可的函数)。
举例来说,例示性方面涉及一种用于管理高速缓存的方法,所述方法包括确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可。在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,关于是否实施写入-分配策略或写入-不分配策略以用于服务所述写入未命中的确定基于所述一或多个执行许可。
另一例示性方面涉及一种设备,其包括:高速缓存;经配置以确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的逻辑;及高速缓存控制器,其经配置以在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略。
另一例示性方面涉及一种设备,其包括用于确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的装置;及用于在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略的装置。
又一例示性方面涉及一种非暂时性计算机可读存储媒体,其包括在由处理器执行时使得所述处理器执行用于管理高速缓存的操作的代码,所述非暂时性计算机可读存储媒体包括:用于确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的代码;及用于在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略的代码。
附图说明
呈现附图以帮助描述本发明的方面,且附图仅用于说明所述方面而提供,而非所述方面的限制。
图1描绘根据本发明的方面的处理器系统的例示性框图。
图2描绘根据本发明的方面的用于管理高速缓存的例示性方法。
图3描绘可有利地使用本发明的方面的例示性无线装置。
具体实施方式
本发明的方面公开于针对本发明的特定方面的以下描述及相关图式中。可在不脱离本发明的范围的情况下设计出替代性方面。另外,本发明的熟知元件将不予以详细描述或将被省略,以免混淆本发明的相关细节。
词“例示性”在本文中用以意味着“充当实例、例子或说明”。不必将本文中描述为“例示性”的任何方面解释为优选或优于其它方面。同样地,术语“本发明的方面”并不要求本发明的所有方面包含所论述的特征、优点或操作模式。
本文中所使用的术语仅出于描述特定方面的目的,且并不意图限制本发明的方面。如本文中所用,除非上下文另外明确指示,否则单数形式“一(a/an)”及“所述(the)”意图还包含复数形式。应进一步理解,术语“包括”及/或“包含”在本文中使用时指定所陈述的特征、整体、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件或其群组的存在或添加。
另外,许多方面是依据待由(例如)计算装置的元件执行的动作序列来进行描述。应认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(ASIC))、由通过一或多个处理器执行的程序指令或由两者的组合执行。另外,可认为本文中所描述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体在其中存储有在执行时将使相关联处理器执行本文中所描述的功能性的计算机指令的对应集合。因此,本发明的各种方面可以数个不同形式体现,预期所有形式在所要求主题的范围内。另外,对于本文中所描述的方面中的每一个,任何这些方面的对应形式在本文中可被描述为(例如)“经配置以执行所描述动作的逻辑”。
本发明的例示性方面涉及一种包括高速缓存的处理系统。在一些实例中,所述高速缓存可为经配置以存储数据及指令的统一高速缓存。存储或待存储于统一高速缓存中的信息(数据/指令)可具有相关联的读取、写入及执行许可。读取、写入及执行许可可取决于与信息相关联的存储器地址,或更一般来说,取决于包括存储器地址的内存页。
在例示性方面中,应认识到,如果存储器地址具有与其相关联的写入许可及执行许可两者,那么与存储器地址相关联的信息可具有高的将来使用可能性。如先前所提及,具有写入许可可为允许信息写入到存储器地址的基本条件。在一实例中,信息可为指令(使用数据写入操作写入为数据,这是因为写入许可存在)。信息可经提取以在将来执行(例如,使用指令提取,这是因为执行许可存在)。假设信息可存取以供将来执行(或换句话说,可从存储器地址执行),如果写入未命中在尝试将信息写入到统一高速缓存时发生,那么在例示性方面中,可在服务写入未命中时实施写入-分配策略。否则,如果执行许可不存在,那么可基于写入-不分配策略而服务写入未命中。因此,在例示性方面中,与写入地址相关联的执行许可可用以在对写入地址的写入操作的写入未命中的情况下确定高速缓存分配策略。
在例示性方面中,统一高速缓存可由一或多个代理程序或处理程序存取。举例来说,信息可由写入代理程序(在本文中也被称作“产生代理程序”)写入到统一高速缓存。信息可由在本文中被称作“消耗代理程序”的代理程序执行,或更一般来说,“消耗”。在一些情况下,产生代理程序与消耗代理程序可指同一实体(例如,处理器)的处理程序,而在一些情况下,产生代理程序及消耗代理程序可为不同实体(例如,可存取统一高速缓存的不同处理器)。
在处理系统中,一或多个处理器、处理程序或实体(例如,其可存取存储器)可在一或多个特权等级(例如,用户特权等级、监督员特权等级等)下操作,如所属领域中已知的。对于每一特权等级,可存在与每一存储器地址或页相关联的对应读取、写入及执行许可。因此,产生代理程序与消耗代理程序可在相同或不同特权等级下操作,且因此,产生代理程序及消耗代理程序可具有基于其相关联特权等级的执行许可。
当写入请求由产生代理程序产生时,可潜在地消耗将由产生代理程序写入的信息的消耗代理程序可为未知的。因此,如果写入请求引起高速缓存未命中,那么在服务写入未命中时,产生代理程序以及产生代理程序的特权等级可能已知;然而,潜在消耗代理程序可为未知的,且因此,潜在消耗代理程序的相关联特权等级可为未知的。因此,在一些方面中,用于写入未命中的写入分配策略可基于与产生代理程序的特权等级相关联的执行许可及/或与写入地址的任何其它特权等级相关联的执行许可(例如,可为所述执行许可的函数)。
在一些情况下,产生代理程序及消耗代理程序(不论其是否为相同实体或不同实体)可经由存储器管理单元(MMU)来存取统一高速缓存。举例来说,MMU可包括经配置以高速缓存虚拟地址(由代理程序供应)到物理地址(用于寻址统一高速缓存中的存储器位置以及备份存储位置)转换的转换后备缓冲器(TLB)。TLB可具有如先前论述的一或多个页表项(PTE),其中每一PTE可包括虚拟到物理地址转换。在例示性方面中,PTE可经扩展以进一步包含与写入地址相关联的写入及执行许可,连同到由产生代理程序产生的写入请求的写入地址的转换。包括写入地址的PTE可包含与写入地址相关联的一或多个执行许可,其中所述一或多个执行许可可涉及与一或多个特权等级相关联的执行许可。
为简单起见,将参考包括处理器及统一高速缓存的处理系统来论述例示性方面,其中所述处理器可在一或多个特权等级中操作,其中每一特权等级具有相关联读取、写入及执行许可。为简单起见,可由同一处理器执行的处理程序可基于存储器存取请求的类型而被称作产生代理程序或消耗代理程序,但应理解,在不脱离本发明的范围的情况下,所公开方面可容易地扩展到产生代理程序及消耗代理程序可属于不同实体或处理单元的其它变体。
因此,参看图1,说明了例示性处理系统100,其具有处理器105、包括TLB 125的MMU115及高速缓存110。处理器105可为任何类型的处理器组件,例如微处理器、通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、可编程逻辑装置等。在例示性方面中,视所处理交易的性质而定,或更特定来说,视由处理器105产生的存储器存取请求的类型而定,处理器105可经配置为产生代理程序以及消耗代理程序。在各种替代方案中,处理器105可在一或多个特权等级(例如,用户特权等级、监督员特权等级等)下操作。
高速缓存110可为(例如)1阶(L1)高速缓存,且可经配置以高速缓存可由处理器105消耗的信息。在各种方面中,由附图标记175识别的高速缓存控制器可包含根据本发明的方面的用于控制对高速缓存110的存取且用于对于高速缓存110实施各种高速缓存分配策略的逻辑及/或其它装置。尽管未具体说明,但处理系统100可包括具有用于高速缓存110(例如,2阶(L2)高速缓存,其可与也可存在于处理系统100、主存储器等中的一或多个其它处理器或处理核心共享)的一或多个备份存储位置的存储器系统。如果对于由处理器105产生的存储器存取请求在高速缓存110中存在未命中(例如,读取未命中或写入未命中),那么服务未命中可涉及根据所属领域中已知的技术而存取一或多个备份存储位置,且因此,出于简洁性起见,将不在本文中穷举性地详细论述这些技术。本发明的方面涉及未命中后的高速缓存110中的分配,且更确切地说,针对写入未命中后的写入分配(例如,写入-分配或写入-不分配)。可以常规方式(例如,通过分配)处置高速缓存110中的读取未命中,且因此,本发明中将也不穷举性地详细论述读取未命中。
在例示性方面中,高速缓存110可经配置为统一高速缓存以存储指令以及数据。处理器105的产生代理程序可能够将指令以数据形式写入到高速缓存110。随后,可提取高速缓存110中的指令作为待由处理器105的潜在消耗代理程序执行的指令。产生代理程序及潜在消耗代理程序可在对于处理器105可能的一或多个特权等级下操作,其中每一特权等级具有相关联的读取、写入及执行许可。
在存取高速缓存110之前,(例如)通过确定产生代理程序操作所依据的特权等级(用户/监督员)是否具有关于写入地址的写入许可,可确定产生代理程序的对于信息将写入到的预期写入地址的写入许可。假设产生代理程序具有对于信息将写入到高速缓存110的写入地址的写入许可,如果存在写入未命中,那么基于与写入地址相关联的执行许可(例如,用户特权的执行许可及/或监督员特权的执行许可)中的一或多个,可将对应写入未命中服务为写入-分配或为写入-不分配(例如,其中写入分配策略可由高速缓存控制器175实施)。将在以下章节中详细描述基于一或多个执行许可的一或多个功能或组合而使用写入-分配策略及写入-不分配策略来服务写入未命中的实例,同时记住,确定写入分配策略可基于一或多个执行许可的各种其它组合。
尽管任何高速缓存架构(例如,直接映射、完全相联、组相联等)可用于高速缓存110而不脱离本发明的范围,但为解释方便起见,高速缓存110在图1中经展示为直接映射高速缓存。因此,高速缓存110经展示包括一或多个高速缓存行或高速缓存项130,其中每一高速缓存项130包括标记135及信息145。标记135为由对应信息145存储所在的地址(更特定来说,物理地址)的位的所选子集形成的字段。高速缓存110可基于标记135而索引。举例来说,高速缓存控制器175可比较所有高速缓存项130的标记135与需要高速缓存存取的地址(例如,对应于由处理器105进行的存储器存取请求的地址)的对应位,且如果存在与任何高速缓存项130的标记135的匹配,那么存在高速缓存命中,且标记135匹配所要高速缓存存取的地址的高速缓存项被称作命中高速缓存项。如果高速缓存项130中没有一个的标记135匹配所要高速缓存存取的地址,那么存在高速缓存未命中。
在对于对应于写入操作的写入地址存在高速缓存未命中或存在写入未命中的情况下,倘若写入-分配策略用以服务写入未命中,那么可在高速缓存110中产生新高速缓存项(这可涉及使用例如最近最多使用(MRU)、最近最少使用(LRU)等的技术,通过高速缓存控制器175产生新高速缓存项或替换现有高速缓存项的任何方式,如所属领域中已知)。对应于写入地址的先前信息可从发现写入地址的备份存储位置引入到高速缓存110中,且对应于写入操作的信息可写入到新高速缓存项且基于写入地址进行标记(更特定来说,如果写入地址经指定为虚拟地址,那么标记可基于写入地址的物理地址转换)。倘若使用写入-不分配策略,那么服务写入未命中涉及将信息写入到发现写入地址的备份存储位置,但不产生新高速缓存项且不在高速缓存110中的新高速缓存项中写入信息。在确定写入分配策略时可使用的各种许可在一些方面中可由MMU 115提供。
MMU 115可大体上经配置以(例如,与高速缓存控制器175合作)管理对高速缓存110的存取,以及对未明确展示的其它存储器的存取。出于本发明的目的,MMU 115可包括经配置用于地址转换的TLB 125。处理器105可在其操作中使用虚拟地址,而高速缓存110以及处理系统100中的其它存储器可使用物理地址进行索引及存取。TLB 125可存储(例如)可能由处理器105使用的相对少量的虚拟到物理地址转换,以实现对由处理器105产生的存储器存取请求的快速地址转换。就此来说,TLB 125可根据已知技术来填充以存储具有供处理器105将来使用的高可能性的地址转换(例如,频繁使用的地址转换、最近使用的地址转换等)。如果TLB 125不含有特定存储器存取请求的转换(即,存在“TLB未命中”),那么执行页表查询(page table walk)以确定所要地址转换的较耗时处理程序可由MMU 115进行,但用于填充TLB 125及/或处置TLB未命中的技术超出本发明的范围。
在例示性方面中,TLB 125可包含一或多个TLB项(也被称作页表项(PTE),其在图1中由附图标记120集体地指定)。说明了PTE 120的实例PTE 155的其它细节。PTE 155经展示包括虚拟地址(VA)160、到物理地址(PA)140的对应转换。另外,根据例示性方面,TLB 125还可包含许可位,例如监督员写入许可(SW)165、用户写入许可(UW)167、监督员执行许可(SX)170及用户执行许可(UX)172。SW 165及UW 167可为与PA 140(其可为(例如)主存储器中的写入地址)或更一般来说包括物理地址140的内存页的监督员(S)及用户(U)特权等级相关联的写入(W)许可。类似地,SX 170及UX 172可为与PA 140的监督员(S)及用户(U)特权等级相关联的执行(X)许可。PTE 155还可包含对应于物理地址或内存页的一或多个读取许可位,但这些读取许可位未具体展示或描述,这是因为未在本发明中具体地论述读取存取,如先前所陈述。
现将继续参看图1来描述根据例示性方面的用于存取高速缓存110且更具体来说用于确定写入分配的实例处理程序。因此,考虑由处理器105(或处理器105的产生代理程序)产生的特定存储器存取请求。存储器存取请求可为用以将信息(例如,包括指令的写入数据)写入到写入地址的写入请求。由于处理器105作出写入请求,因此写入地址可表达为写入请求中的虚拟地址。假设对于写入请求的TLB 125中的PTE 155的TLB命中,PTE 155包括VA 160及到写入地址的PA 140的对应转换。
另外,PTE 155还包括对应于PA 140的SW 165及UW 167。产生写入请求的产生代理程序的特权等级(用户/监督员)可在写入请求产生时已知。因此,基于产生器的特权等级是监督员抑或用户而分别检查对应写入许可(SW 165或UW 167)。如果不确证(或撤销确证)对应写入许可,那么写入请求的写入许可可能无法获得,且高速缓存控制器175(例如)可不准许针对写入请求的对高速缓存110的存取;可终止写入请求,及/或可以超出本发明的范围的方式来产生及处置例外/错误旗标,且因此可避免高速缓存存取。
如果确证对应写入许可,那么可如下地处理写入请求。举例来说,高速缓存控制器175可使用写入地址或PA 140来咨询或探测高速缓存110。如果高速缓存项130中的任一者具有匹配PA 140的对应位的标记135,那么存在高速缓存命中或写入命中,且高速缓存控制器175可将写入数据写入到命中高速缓存项。另一方面,如果标记135中没有一个匹配PA140的对应位,那么存在写入未命中。
处理写入未命中可基于SX 170及UX 172。在处理写入未命中时,写入数据的潜在消耗代理程序可为未知的。因此,可考虑与写入地址相关联的执行许可SX 170及UX 172中的一或多个,这是因为可执行写入地址的潜在消耗代理程序的特权等级可为监督员特权或用户特权中的一个。在服务写入未命中时进行在高速缓存110中进行写入-分配或写入-不分配的确定时,将在以下章节中详细描述SX 170及UX 172的一或多个组合。
如果基于SX 170及UX 172而确定写入未命中经服务为写入-分配,那么探测一或多个备份存储位置(例如,L2高速缓存、L3高速缓存、主存储器等)且存取包括写入地址或PA140的第一备份存储位置。读出存储于PA 140处的备份存储位置中的先前信息,且高速缓存控制器175可在高速缓存110中产生新高速缓存项150。高速缓存控制器175可将写入数据写入到新高速缓存项150的信息145,且基于PA 140的位来设定新高速缓存项150的标记135。
另一方面,如果基于SX 170及UX 172而确定写入未命中经服务为写入-不分配,那么探测一或多个备份存储位置(例如,L2高速缓存、L3高速缓存、主存储器等)且存取包括PA140的第一备份存储位置。以第一数据重写存储于PA 140处的备份存储位置中的先前信息,但在高速缓存110中不产生新高速缓存项150。
现将更详细地描述写入-分配或写入-不分配确定可基于的SX 170及UX 172的功能或组合。再次,在以下实例中,将假设基于产生代理程序的特权等级的对应写入许可(SW165或UW 167)经确证。此外,产生代理程序的特权等级可能已知,这意味着与已知特权等级相关联的产生代理程序的执行许可也可能已知,然而,与潜在消耗代理程序相关联的特权等级或执行许可可为未知的,但可假设为SX 170或UX 172中的一个。
在第一实例中,仅在确证了SX 170时(即,对于监督员特权存在执行许可时),写入未命中才可服务为写入-分配。在此实例中,可不考虑UX 172的值。
在第二实例中,仅在确证了UX 172时(即,对于用户特权存在执行许可时),写入未命中才可服务为写入-分配。在此实例中,可不考虑SX 170的值。
在第三实例中,仅在确证了SX 170或UX 172中的至少一个时(即,对于监督员特权及/或用户特权存在执行许可时),写入未命中才可服务为写入-分配。
在第四实例中,仅在确证了产生代理程序的特权等级的执行许可时(即,仅在分别基于产生代理程序在监督员特权等级或用户特权等级中操作而确证SX 170或UX 172时),写入未命中才可服务为写入-分配。举例来说,产生代理程序可在监督员特权下操作以产生待由仅具有监督员特权的潜在消耗代理程序(而非由具有用户特权的潜在消耗代理程序)消耗或执行的指令或代码;或产生代理程序可在用户特权下操作以产生待由仅具有用户特权的潜在消耗代理程序(而非由具有监督员特权的潜在消耗代理程序)消耗或执行的指令或代码。因此,在这些实例中,不考虑与并非产生代理程序的特权等级的特权等级相关联的执行许可,但仅考虑与产生代理程序的特权等级相关联的执行许可。
在第五实例中,仅在确证了并非产生代理程序的特权等级的特权等级的执行许可时(即,仅在分别基于产生代理程序是否在用户特权等级或监督员特权等级中操作而确证SX 170或UX 172时),写入未命中才可服务为写入-分配。因此,在此实例中,仅考虑与并非产生代理程序的特权等级的特权等级相关联的执行许可,但不考虑与产生代理程序的特权等级相关联的执行许可。
除了上文所枚举的实例以外,在本发明的范围内,于在写入未命中的情况下确定写入分配策略时还可设计出SX 170及/或UX 172的各种其它算法或逻辑函数。
此外,在一些方面中,在基于一或多个执行许可(例如,与写入地址或PA 140相关联的SX 170及/或UX 172)来确定及实施写入分配策略时,高速缓存控制器175(例如)可重写现有写入分配策略或默认写入分配策略。举例来说,可重写默认写入-不分配策略以强加写入-分配,或基于与写入地址相关联的一或多个执行许可,可重写默认写入-分配策略以强加对于写入未命中的写入-不分配。
因此,应了解,本发明的例示性方面可包含经配置以确定与对高速缓存110的写入请求的写入地址相关联的一或多个执行许可的任何逻辑。在一些方面中,逻辑可包括如上所述的MMU 115。然而,在处理系统100的各种替代性配置中,经配置以确定一或多个执行许可的逻辑不必包含例如MMU 115的MMU。举例来说,逻辑可包含用于控制对高速缓存110的存取的任何其它实体或单元(例如高速缓存控制器175),其中关于各种特权等级(例如,用户/监督员)的写入及执行许可的信息可提供到此逻辑。在一些情况下,对于高速缓存存取可不执行地址转换,且因此可避免例如TLB 125的TLB;举例来说,如果高速缓存110虚拟地标记(即,使用由处理器105产生的存储器存取请求供应的虚拟地址160),那么可在无TLB的情况下存取高速缓存110,且因此,逻辑可包含高速缓存控制器175,所述高速缓存控制器经配置以确定关于可能的各种特权等级(例如,用户/监督员)的上述写入及执行许可的信息。在处理器105可不使用虚拟地址的一些情况下,所产生存储器存取请求可能已为物理地址且高速缓存110可为经物理标记的高速缓存(如图1中所展示),且因此,逻辑可包括经配置以确定上述写入及执行许可的高速缓存控制器175。高速缓存存取、高速缓存配置及经配置以确定到高速缓存的预期写入地址的写入及执行许可的适合逻辑的其它替代方案也是可能的,如所属领域的技术人员将认识到。
因此,应了解,例示性方面包含用于执行本文中所公开的处理程序、功能及/或算法的各种方法。举例来说,图2说明管理高速缓存(例如经配置为统一高速缓存以存储数据以及指令的高速缓存110)的方法200。
更具体来说,方法200的块205包括确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可。举例来说,与写入地址(例如,物理地址140)相关联的一或多个执行许可可基于与包括写入地址的(例如,在下文参看图3展示及论述的存储器305的)内存页相关联的一或多个特权等级(例如,用户/监督员)的执行许可。一或多个执行许可可对应于产生写入请求的产生代理程序的执行许可及可执行写入地址的潜在消耗代理程序的执行许可。产生代理程序及消耗代理程序可为经配置以存取高速缓存110的处理器105的处理程序。在一些方面中,可从转换后备缓冲器(例如,TLB 125)的页表项(例如,PTE 155)检索与写入地址相关联的一或多个执行许可,TLB 125包括写入地址的地址转换(例如,物理地址140)及与写入地址相关联的一或多个执行许可(例如,SX 170、UX 172)。
在块210中,方法200可包含确定对于所述写入请求在所述高速缓存中是否存在写入未命中(例如,高速缓存控制器175可使用物理地址140探测高速缓存110)。如果存在写入未命中,那么高速缓存控制器175(例如)可基于一或多个执行许可而确定是否实施写入-分配策略或写入-不分配策略以用于服务所述写入未命中。
应了解,前述块205到210并非实例的限制。因而,块205到215可组合及/或所述块的次序可重新布置,如切实可行。
图3为根据例示性方面的计算装置300的特定说明性方面的框图。在例示性方面中,计算装置300可经配置以执行图2的方法200。如所展示,计算装置300包含处理器105。已展示如参看图1所描述的包括TLB 125的MMU 115、高速缓存控制器175及高速缓存110,尽管为清楚起见,从图3省略图1中所展示的这些组件的额外细节。应理解,尽管例如包括TLB125的MMU 115、高速缓存控制器175及高速缓存110的方面已在图1及3中展示为处理器105外部的组件,但此布置仅仅出于说明起见,且不应被解释为限制。举例来说,在一些实施方案中,例如包括TLB 125的MMU 115、高速缓存控制器175或高速缓存110的组件可配置在说明为处理器105的块内。所属领域的技术人员应认识到对于根据本发明的方面的处理器105、包括TLB 125的MMU 115、高速缓存控制器175及高速缓存110来说可能的各种其它布置及配置。
图3还展示可为高速缓存110的备份存储位置的存储器305,例如主存储器。尽管未展示,但一或多个其它高速缓存或其它存储器结构也可包含于计算装置300中。图3中还展示显示器315及显示器控制器310,其中显示器控制器310耦合到处理器105及显示器315。
在一些方面中,图3可包含以虚线展示的一些可选块。举例来说,计算装置300可任选地包含耦合到处理器105的译码器/解码器(coder/decoder;CODEC)320(例如,音频及/或语音CODEC);耦合到CODEC 320的扬声器330及麦克风335;及耦合到无线天线340及处理器105的无线控制器325(其可包含调制解调器)。
在上述可选块中的一或多个存在的特定方面中,处理器105、显示器控制器310、存储器305、CODEC 320及无线控制器325可包含于系统级封装或片上系统装置345中;且显示器315、输入装置350、扬声器330、麦克风335、无线天线340及电源355可在片上系统装置345外部,且可耦合到片上系统装置345的组件,例如接口或控制器。
应注意,尽管图3大体上描绘计算装置,但处理器105及存储器305可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、服务器、计算机、膝上型计算机、平板计算机、通信装置及移动电话或其它电子装置中。此外,计算装置300的至少一或多个例示性方面可集成于至少一个半导体裸片中。
所属领域的技术人员应了解,信息及信号可使用多种不同技艺及技术中的任一者来表示。举例来说,遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示。
另外,所属领域的技术人员应了解,结合本文中所公开的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,各种说明性组件、块、模块、电路及步骤已按其功能性在上文大体加以描述。此功能性是实施为硬件抑或软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,但这些实施决策不应被解译为导致脱离本发明的范围。
结合本文中所公开的实施例而描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合体现。软件模块可驻存于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或所属领域中已知的任何其它形式的存储媒体中。例示性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。
因此,本发明的一方面可包含体现用于管理一高速缓存的方法的计算机可读媒体。因此,本发明不限于所说明实例,且用于执行本文中所描述的功能性的任何装置包含于本发明的实施例中。
虽然前述公开内容展示本发明的说明性实施例,但应注意,在不脱离如由所附权利要求书所界定的本发明的范围的情况下,可在本文中作出各种改变及修改。无需以任何特定次序来执行根据本文中所描述的本发明的实施例的方法权利要求的功能、步骤及/或动作。此外,尽管可以单数形式来描述或要求本发明的元件,但除非明确地陈述对单数形式的限制,否则预期复数形式。

Claims (29)

1.一种用于管理高速缓存的方法,所述方法包括:
确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可;及
在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而确定是否实施写入-分配策略或写入-不分配策略以用于服务所述写入未命中。
2.根据权利要求1所述的方法,其中所述高速缓存为经配置以存储数据及指令的统一高速缓存。
3.根据权利要求1所述的方法,其中与所述写入地址相关联的所述一或多个执行许可是基于与包括所述写入地址的内存页相关联的一或多个执行许可。
4.根据权利要求1所述的方法,其中所述一或多个执行许可包括与所述写入地址相关联的一或多个特权等级的执行许可。
5.根据权利要求4所述的方法,其中产生所述写入请求的产生代理程序的执行许可基于所述产生代理程序的特权等级,且经配置以从所述写入地址执行的消耗代理程序的执行许可是基于所述消耗代理程序的特权等级。
6.根据权利要求4所述的方法,其中所述产生代理程序及所述消耗代理程序为经配置以存取所述高速缓存的处理器的处理程序。
7.根据权利要求4所述的方法,其中所述一或多个特权等级包括用户特权等级及监督员特权等级。
8.根据权利要求4所述的方法,其进一步包括在对于所述写入请求存取所述高速缓存之前,确定所述产生代理程序是否具有关于所述写入地址的写入许可。
9.根据权利要求1所述的方法,其中确定与所述写入地址相关联的所述一或多个执行许可包括从转译后备缓冲器TLB的页表项PTE检索所述一或多个执行许可,所述PTE包括所述写入地址的地址转译及与所述写入地址相关联的所述一或多个执行许可。
10.根据权利要求1所述的方法,其中确定是否在所述高速缓存中进行写入-分配或写入-不分配以用于服务所述写入未命中包括重写所述高速缓存的现有写入分配策略。
11.一种设备,其包括:
高速缓存;
经配置以确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的逻辑;及
高速缓存控制器,其经配置以在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略。
12.根据权利要求11所述的设备,其中所述高速缓存为经配置以存储数据及指令的统一高速缓存。
13.根据权利要求11所述的设备,其中与所述写入地址相关联的所述一或多个执行许可是基于与包括所述写入地址的内存页相关联的一或多个执行许可。
14.根据权利要求11所述的设备,其中所述一或多个执行许可包括与所述写入地址相关联的一或多个特权等级的执行许可。
15.根据权利要求14所述的设备,其包括经配置以产生所述写入请求的产生代理程序及经配置以从所述写入地址执行的消耗代理程序,其中所述产生代理程序的执行许可是基于所述产生代理程序的特权等级,且消耗代理程序的执行许可是基于所述消耗代理程序的特权等级。
16.根据权利要求14所述的设备,其进一步包括经配置以存取所述高速缓存的处理器,其中所述产生代理程序及所述消耗代理程序为可由所述处理器执行的处理程序。
17.根据权利要求14所述的设备,其中所述一或多个特权等级包括用户特权等级及监督员特权等级。
18.根据权利要求11所述的设备,其中所述逻辑包括存储器管理单元MMU,所述MMU包括转译后备缓冲器TLB,其中所述TLB包括经配置以存储所述写入地址的地址转译及与所述写入地址相关联的所述一或多个执行许可的页表项PTE。
19.根据权利要求11所述的设备,其中所述高速缓存控制器经配置以重写现有写入分配策略,以基于所述一或多个执行许可而对于所述写入请求实施所述写入-分配或写入-不分配策略。
20.根据权利要求11所述的设备,其集成到装置中,所述装置选自由以下各项组成的群组:机顶盒、音乐播放器、视频播放器、娱乐单元、服务器、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置及移动电话。
21.一种设备,其包括:
用于确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的装置;及
用于在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略的装置。
22.根据权利要求21所述的设备,其中所述高速缓存包括用于存储数据及指令的装置。
23.根据权利要求21所述的设备,其包括用于产生所述写入请求的装置及用于从所述写入地址执行的装置,其中用于产生的所述装置及用于执行的所述装置的执行许可是基于用于产生的所述装置及用于执行的所述装置的特权等级。
24.根据权利要求21所述的设备,其进一步包括用于存储所述写入地址的地址转译及与所述写入地址相关联的所述一或多个执行许可的装置。
25.根据权利要求21所述的设备,其包括用于重写现有写入分配策略的装置。
26.一种非暂时性计算机可读存储媒体,其包括在由处理器执行时使得所述处理器执行用于管理高速缓存的操作的代码,所述非暂时性计算机可读存储媒体包括:
用于确定与对所述高速缓存的写入请求的写入地址相关联的一或多个执行许可的代码;及
用于在对于所述写入请求在所述高速缓存中存在写入未命中的情况下,基于所述一或多个执行许可而对于所述写入请求实施写入-分配或写入-不分配策略的代码。
27.根据权利要求26所述的非暂时性计算机可读存储媒体,其包括用于产生所述写入请求的代码及用于从所述写入地址执行的代码。
28.根据权利要求26所述的非暂时性计算机可读存储媒体,其中所述一或多个执行许可包括与所述写入地址相关联的一或多个特权等级的执行许可。
29.根据权利要求26所述的非暂时性计算机可读存储媒体,其进一步包括用于重写现有写入分配策略的代码。
CN201780010875.1A 2016-03-01 2017-02-08 基于执行许可的高速缓存的写分配 Active CN108604210B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/057,121 2016-03-01
US15/057,121 US20170255569A1 (en) 2016-03-01 2016-03-01 Write-allocation for a cache based on execute permissions
PCT/US2017/016971 WO2017151280A1 (en) 2016-03-01 2017-02-08 Write-allocation for a cache based on execute permissions

Publications (2)

Publication Number Publication Date
CN108604210A true CN108604210A (zh) 2018-09-28
CN108604210B CN108604210B (zh) 2022-08-19

Family

ID=58018350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780010875.1A Active CN108604210B (zh) 2016-03-01 2017-02-08 基于执行许可的高速缓存的写分配

Country Status (11)

Country Link
US (1) US20170255569A1 (zh)
EP (1) EP3423946B1 (zh)
JP (1) JP6960933B2 (zh)
KR (1) KR20180117629A (zh)
CN (1) CN108604210B (zh)
BR (1) BR112018067341A2 (zh)
ES (1) ES2903162T3 (zh)
HK (1) HK1254828A1 (zh)
SG (1) SG11201806067SA (zh)
TW (1) TW201734807A (zh)
WO (1) WO2017151280A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124267A (zh) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 数据写入的方法、设备和计算机程序产品
CN111831587A (zh) * 2020-04-17 2020-10-27 北京奕斯伟计算技术有限公司 数据写入方法、装置和电子设备
WO2021103020A1 (zh) * 2019-11-29 2021-06-03 华为技术有限公司 缓存存储器和分配写操作的方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US11010309B2 (en) * 2018-05-18 2021-05-18 Intel Corporation Computer system and method for executing one or more software applications, host computer device and method for a host computer device, memory device and method for a memory device and non-transitory computer readable medium
CN112559389A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 存储控制装置、处理装置、计算机系统和存储控制方法
US20230418753A1 (en) * 2022-06-28 2023-12-28 Advanced Micro Devices, Inc. Allocation control for cache

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1121216A (zh) * 1994-03-07 1996-04-24 国际商业机器公司 在一个分布式文件系统中高效高速缓存的系统与方法
US5606687A (en) * 1993-10-07 1997-02-25 Sun Microsystems, Inc. Method and apparatus for optimizing supervisor mode store operations in a data cache
CN1231444A (zh) * 1998-02-17 1999-10-13 国际商业机器公司 包含一具有精确模式和非精确模式的悬停状态的高速缓存相关协议
US20020156962A1 (en) * 1999-10-01 2002-10-24 Rajesh Chopra Microprocessor having improved memory management unit and cache memory
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
CN1525373A (zh) * 2003-02-26 2004-09-01 结合颁发内容的数字版权管理(drm)许可证审查高速缓存的用户组信息
US20070079070A1 (en) * 2005-09-30 2007-04-05 Arm Limited Cache controller
US20070094475A1 (en) * 2005-10-20 2007-04-26 Bridges Jeffrey T Caching memory attribute indicators with cached memory data field
CN1991792A (zh) * 2005-09-30 2007-07-04 英特尔公司 用于有效使用高速缓存及存储器的指令辅助高速缓存管理
US20080052466A1 (en) * 2006-08-24 2008-02-28 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
US20100058358A1 (en) * 2008-08-27 2010-03-04 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
CN102566970A (zh) * 2010-09-21 2012-07-11 飞思卡尔半导体公司 用于处理具有高速缓存旁路的修饰指令的数据处理器
GB201409963D0 (en) * 2014-06-05 2014-07-16 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
CN104067246A (zh) * 2012-01-10 2014-09-24 高通股份有限公司 通过物理地址进行的非分配存储器存取
CN105320611A (zh) * 2014-06-30 2016-02-10 英特尔公司 用于细粒存储器保护的方法和设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69427734T2 (de) * 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearadressierter Mikroprozessorcachespeicher
DE69924939T2 (de) * 1998-09-01 2006-03-09 Texas Instruments Inc., Dallas Verbesserte Speicherhierarchie für Prozessoren und Koherenzprotokoll hierfür
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
US8621184B1 (en) * 2008-10-31 2013-12-31 Netapp, Inc. Effective scheduling of producer-consumer processes in a multi-processor system
US8621149B2 (en) * 2009-12-23 2013-12-31 Intel Corporation Controlling access to a cache memory using privilege level information
US9158685B2 (en) * 2012-09-11 2015-10-13 Apple Inc. System cache with cache hint control
US8819342B2 (en) * 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9767040B2 (en) * 2015-08-31 2017-09-19 Salesforce.Com, Inc. System and method for generating and storing real-time analytics metric data using an in memory buffer service consumer framework

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606687A (en) * 1993-10-07 1997-02-25 Sun Microsystems, Inc. Method and apparatus for optimizing supervisor mode store operations in a data cache
CN1121216A (zh) * 1994-03-07 1996-04-24 国际商业机器公司 在一个分布式文件系统中高效高速缓存的系统与方法
CN1231444A (zh) * 1998-02-17 1999-10-13 国际商业机器公司 包含一具有精确模式和非精确模式的悬停状态的高速缓存相关协议
US20020156962A1 (en) * 1999-10-01 2002-10-24 Rajesh Chopra Microprocessor having improved memory management unit and cache memory
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
US20030101320A1 (en) * 2001-10-17 2003-05-29 Gerard Chauvel Cache with selective write allocation
CN1525373A (zh) * 2003-02-26 2004-09-01 结合颁发内容的数字版权管理(drm)许可证审查高速缓存的用户组信息
CN1991792A (zh) * 2005-09-30 2007-07-04 英特尔公司 用于有效使用高速缓存及存储器的指令辅助高速缓存管理
US20070079070A1 (en) * 2005-09-30 2007-04-05 Arm Limited Cache controller
US20070094475A1 (en) * 2005-10-20 2007-04-26 Bridges Jeffrey T Caching memory attribute indicators with cached memory data field
US20080052466A1 (en) * 2006-08-24 2008-02-28 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
US20100058358A1 (en) * 2008-08-27 2010-03-04 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
CN102566970A (zh) * 2010-09-21 2012-07-11 飞思卡尔半导体公司 用于处理具有高速缓存旁路的修饰指令的数据处理器
CN104067246A (zh) * 2012-01-10 2014-09-24 高通股份有限公司 通过物理地址进行的非分配存储器存取
GB201409963D0 (en) * 2014-06-05 2014-07-16 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
CN105320611A (zh) * 2014-06-30 2016-02-10 英特尔公司 用于细粒存储器保护的方法和设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124267A (zh) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 数据写入的方法、设备和计算机程序产品
CN111124267B (zh) * 2018-10-31 2023-10-31 伊姆西Ip控股有限责任公司 数据写入的方法、设备和计算机程序产品
WO2021103020A1 (zh) * 2019-11-29 2021-06-03 华为技术有限公司 缓存存储器和分配写操作的方法
CN111831587A (zh) * 2020-04-17 2020-10-27 北京奕斯伟计算技术有限公司 数据写入方法、装置和电子设备
WO2021208489A1 (zh) * 2020-04-17 2021-10-21 北京磐易科技有限公司 数据写入方法、装置和电子设备

Also Published As

Publication number Publication date
JP2019511045A (ja) 2019-04-18
BR112018067341A2 (pt) 2019-01-08
KR20180117629A (ko) 2018-10-29
CN108604210B (zh) 2022-08-19
SG11201806067SA (en) 2018-09-27
JP6960933B2 (ja) 2021-11-05
WO2017151280A1 (en) 2017-09-08
US20170255569A1 (en) 2017-09-07
EP3423946B1 (en) 2021-12-15
EP3423946A1 (en) 2019-01-09
TW201734807A (zh) 2017-10-01
ES2903162T3 (es) 2022-03-31
HK1254828A1 (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN108604210A (zh) 基于执行许可的高速缓存的写分配
US7975107B2 (en) Processor cache management with software input via an intermediary
US9235514B2 (en) Predicting outcomes for memory requests in a cache memory
US10133675B2 (en) Data processing apparatus, and a method of handling address translation within a data processing apparatus
CN102498477B (zh) Tlb预取
US8244981B2 (en) Combined transparent/non-transparent cache
TW554267B (en) Cache way prediction based on instruction base register
US8219758B2 (en) Block-based non-transparent cache
US20060161758A1 (en) Multiple page size address translation incorporating page size prediction
CN105164653B (zh) 属性字段的多核页表集合
US20180300258A1 (en) Access rank aware cache replacement policy
CN107438837A (zh) 数据高速缓存
KR101893966B1 (ko) 메모리 관리 방법 및 장치, 및 메모리 컨트롤러
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US9146870B2 (en) Performance of accesses from multiple processors to a same memory location
JP6249120B1 (ja) プロセッサ
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
US11704250B2 (en) Using request class and reuse recording in one cache for insertion policies of another cache
US10489304B2 (en) Memory address translation
Benedicte et al. Behavior characterization of the shared last-level cache in a chip multiprocessor

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1254828

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant