TW201734807A - 基於執行許可之一快取之寫分配 - Google Patents

基於執行許可之一快取之寫分配 Download PDF

Info

Publication number
TW201734807A
TW201734807A TW106106528A TW106106528A TW201734807A TW 201734807 A TW201734807 A TW 201734807A TW 106106528 A TW106106528 A TW 106106528A TW 106106528 A TW106106528 A TW 106106528A TW 201734807 A TW201734807 A TW 201734807A
Authority
TW
Taiwan
Prior art keywords
write
cache
address
execution
agent
Prior art date
Application number
TW106106528A
Other languages
English (en)
Inventor
湯瑪士 安佐 薩多立司
詹姆士 諾立司 迪凡弗
麥克 威廉 摩洛
傑佛瑞 泰德 布萊奇
麥可 史考特 麥夫尼
羅德尼 威尼 史密斯
肯尼士 艾倫 達克塞
湯瑪仕 菲利浦 史派爾
Original Assignee
高通公司
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 高通公司 filed Critical 高通公司
Publication of TW201734807A publication Critical patent/TW201734807A/zh

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/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/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/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

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)
  • Storage Device Security (AREA)

Abstract

用於管理對一快取之存取之系統及方法係關於判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可。該快取可為用於儲存資料以及指令之一統一快取。在對於該寫入請求在該快取中存在一寫入未命中之情況下,一快取控制器可基於該一或多個執行許可而判定是否實施一寫入-分配策略或一寫入-不分配策略以用於服務該寫入未命中。該一或多個執行許可可係關於與該寫入位址相關聯之一特權等級。產生該寫入請求之一產生代理程式之執行許可及可自該寫入位址執行之一消耗代理程式之一執行許可可分別基於該產生代理程式及該消耗代理程式之特權等級。

Description

基於執行許可之一快取之寫分配
所揭示態樣係關於管理處理系統中之快取分配。更特定言之,例示性態樣係關於基於執行許可之統一快取中之寫入分配。
現代處理器可包括一或多個等級之快取記憶體(或簡單地,「快取」),其經設計為高速記憶體。儲存於快取中之資訊(或「快取資訊」)可包括資料、指令或其組合。視快取資訊之類型而定,快取可分類為資料快取(D快取)、指令快取(I快取)或組合式資料及指令快取(亦稱為「統一快取」)。 存取快取之處理程序可涉及處理器進行對特定資訊之讀取或寫入請求且檢查快取以查看所請求資訊是否存在。若資訊存在,則快取「命中(hit)」據稱發生,且若資訊不存在,則快取「未命中(miss)」據稱發生。視請求係關於讀取抑或關於寫入而定,命中或未命中可更特定而言被稱作讀取命中/讀取未命中或寫入命中/寫入未命中。 更詳細而言,在讀取命中之情況下,項(命中項)存在於快取中,其對應於與由處理器請求之資訊相關聯的位址;且自命中項讀取資訊且將資訊自快取傳回至處理器。在寫入命中之情況下,命中項再次存在於快取中,其對應於處理器希望寫入資訊至的位址;且處理器將資訊寫入至快取中之命中項。可以不同方式處置讀取未命中及寫入未命中之情況,如下文將解釋。 讀取未命中在處理器存取快取以自項讀取資訊,但項不存在於快取中時發生。為了服務讀取未命中,自另一快取或備份儲存位置讀取所要資訊,且接著將所要資訊供應至處理器,且亦可將所要資訊置放至快取之項中。將所要資訊置放至快取之項中(藉由產生新項,或以所要資訊替換現有項)被稱作分配。習知地,可對讀取未命中執行分配(假定滿足諸如存取許可之其他準則,其他準則將在以下章節中加以描述)。 然而,在不同實施中,寫入未命中可能或可能不引起分配。更詳細地考慮寫入未命中,寫入未命中涉及存取快取以將資訊寫入至特定項,但該項不存在於快取中。可藉由寫入-分配策略或寫入-不分配策略來服務寫入未命中。寫入-分配策略涉及將儲存於與寫入請求相關聯之位址處的快取行大小之區塊(例如,自備份儲存位置)引進至快取之項(分配)中及將所要寫入資訊儲存至所分配項中。使用寫入-分配策略可在對所分配項作出後續讀取請求之情況下/時改良效能,此係因為對應讀取存取將引起快取中之讀取命中。效能可關於對所分配項的後續寫入存取改良,此係因為後續寫入存取將亦引起寫入命中,其中對應寫入資訊可更新所分配項,而不涉及對備份儲存位置之存取(記住,「直寫」策略(其中甚至在寫入命中之情況下,寫入資訊在備份儲存位置中經更新)可仍然涉及對備份儲存位置之此等存取)。 在寫入-不分配策略下,服務快取中之寫入未命中可涉及進入檢查對應於寫入資訊之位址的備份儲存位置,但不隨後更新或分配快取。此意謂將不產生所分配項,且因此,對未分配項的後續寫入請求將亦未命中。如先前所描述,讀取未命中可引起分配,且因此,除非項係基於後續讀取存取而分配,否則後續寫入請求將繼續引起寫入未命中且根據寫入-不分配策略進行。可在所寫入之資訊可能不具有與要讀取之資訊之時間局部性的環境中實施寫入-不分配策略。舉例而言,在快取為D快取之情況下,寫入-不分配策略可就位,其中由處理器執行之程式可能不讀取相對最近寫入之資料。因此,可避免在寫入未命中之後即分配項,此舉可改良此等情況下下之效能。 可在一些實施中使用寫入-分配策略與寫入-不分配策略之組合(亦稱作「混合分配策略」)。在混合分配策略中,寫入分配可基於與相讀取/寫入請求相關聯之位址而變化。位址可屬於記憶體之不同頁,其中每一記憶體頁與不同分配策略相關聯。所要讀取/寫入記憶體存取之分配策略屬性可儲存於如此項技術中已知之記憶體管理單元(MMU)中且自MMU擷取,例如,在用於記憶體存取之頁表項(PTE)中。因此,基於來自PTE的與寫入請求相關聯之組態或分配策略屬性,可決定寫入未命中是否引起寫入-分配或寫入-不分配。 如先前所提及,記憶體存取操作亦可受額外準則(諸如存取許可)影響。舉例而言,每一記憶體頁可具有可影響對於屬於記憶體頁之位址之讀取及寫入操作之相關聯許可。與位址相關聯之PTE可由MMU在判定由處理器所要之讀取或寫入存取是否具有對應讀取或寫入許可時使用,可分別視讀取或寫入許可而允許讀取或寫入存取進行。因此,若存取許可對於特定位址存在(亦即,讀取許可對於讀取操作存在,或寫入許可對於寫入操作存在),則可准許對應存取操作(分別為讀取或寫入)。 因此,判定對於位址之存取操作是否可引起快取分配可涉及首先判定對應存取許可是否存在,此係因為若存取許可不存在,則可不准許存取操作,且因此分配之問題可能不會產生;且若存取許可的確存在,則分配可基於可對於位址就位的特定分配策略。舉例而言,在寫入操作之情況下,判定用於快取中之寫入未命中的寫入分配策略可為兩步驟處理程序,其中第一步驟可涉及判定寫入許可對於意圖的寫入操作是否存在。若寫入許可存在,則第二步驟可涉及判定在快取中存在寫入未命中之情況下是否進行寫入-分配或寫入-不分配。若在第一步驟中判定寫入許可不存在,則快取分配之問題可能未決議,此係因為可能不准許寫入操作且可能不存取快取。 除了讀取及寫入許可以外,可與記憶體位址或記憶體頁相關聯之又一種類型之許可可係關於「執行」許可。執行許可可係關於儲存於記憶體中之指令,其中,若儲存有指令之位址具有執行許可,則該指令可執行;否則,指令可不由特定程式執行。一些記憶體頁(諸如,由程式碼產生器、及時(JIT)編譯器及可涉及讀取/寫入之其他程式以及執行指令針對之記憶體頁)可使讀取/寫入許可以及執行許可經啟用。程式碼產生器可將經編譯程式寫入至具有讀取、寫入及執行許可之記憶體頁,且此後自此等記憶體頁擷取經編譯程式以供執行。 因此,可瞭解,可儲存資料以及指令之統一快取可具有與統一快取之項相關聯的讀取、寫入及執行許可。習知實施在判定是否允許記憶體存取時可考慮讀取及寫入許可。然而,已知方法在判定用於在統一快取中未命中之寫入存取的寫入分配策略時未考慮執行許可。
本發明之例示性態樣係針對用於管理對一快取之存取之系統及方法,該快取可經組態為用於儲存資料以及指令之一統一快取。可(例如)藉由使用諸如一記憶體管理單元(MMU)之邏輯來判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可。在對於該寫入請求在該快取中存在一寫入未命中之情況下,一快取控制器可基於該一或多個執行許可而判定是否實施一寫入-分配策略或一寫入-不分配策略以用於服務該寫入未命中。 在一些態樣中,與該寫入位址相關聯之該一或多個執行許可可係關於適用於該寫入位址之一或多個特權等級(諸如一使用者特權等級、一監督員特權等級等)的執行許可。產生該寫入請求之一產生代理程式及可潛在地自該寫入位址執行之一消耗代理程式可各自具有選自該一或多個特權等級之一特權等級。在服務該寫入未命中時,該產生代理程式以及該產生代理程式之該特權等級可能已知;然而,該潛在消耗代理程式可為未知的,且因此,該潛在消耗代理程式之相關聯特權等級可為未知的。因此,在一些態樣中,用於一寫入未命中之寫入分配策略可基於與該產生代理程式之特權等級相關聯的執行許可及/或與該寫入位址之任何其他特權等級相關聯的執行許可(例如,可為該等執行許可之函數)。 舉例而言,一例示性態樣係針對一種用於管理一快取之方法,該方法包含判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可。在對於該寫入請求在該快取中存在一寫入未命中之情況下,關於是否實施一寫入-分配策略或一寫入-不分配策略以用於服務該寫入未命中之一判定係基於該一或多個執行許可。 另一例示性態樣係針對一種設備,其包含:一快取;經組態以判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可的邏輯;及一快取控制器,其經組態以在對於該寫入請求在該快取中存在一寫入未命中之情況下,基於該一或多個執行許可而對於該寫入請求實施一寫入-分配或一寫入-不分配策略。 另一例示性態樣係針對一種設備,其包含用於判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可之構件;及用於在對於該寫入請求在該快取中存在一寫入未命中之情況下,基於該一或多個執行許可而對於該寫入請求實施一寫入-分配或一寫入-不分配策略之構件。 又一例示性態樣係針對一種非暫時性電腦可讀儲存媒體,其包含在由一處理器執行時使得該處理器執行用於管理一快取之操作的程式碼,該非暫時性電腦可讀儲存媒體包含:用於判定與對該快取之一寫入請求之一寫入位址相關聯之一或多個執行許可的程式碼;及用於在對於該寫入請求在該快取中存在一寫入未命中之情況下,基於該一或多個執行許可而對於該寫入請求實施一寫入-分配或一寫入-不分配策略的程式碼。
本發明之態樣係揭示於針對本發明之特定態樣的以下描述及相關圖式中。可在不脫離本發明之範疇的情況下設計出替代性態樣。另外,本發明之熟知元件將不予以詳細描述或將被省略,以免混淆本發明之相關細節。 詞「例示性」在本文中用以意謂「充當實例、例子或說明」。不必將本文中描述為「例示性」之任何態樣解釋為較佳或優於其他態樣。同樣地,術語「本發明之態樣」並不要求本發明之所有態樣包括所論述之特徵、優點或操作模式。 本文中所使用之術語僅出於描述特定態樣之目的,且並不意欲限制本發明之態樣。如本文中所用,除非上下文另外明確指示,否則單數形式「一(a/an)」及「該(the)」意欲亦包括複數形式。應進一步理解,術語「包含」及/或「包括」在本文中使用時指定所陳述的特徵、整體、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件或其群組之存在或添加。 另外,許多態樣係關於待由(例如)計算裝置之元件執行的動作序列描述。應認識到,本文中所描述之各種動作可由特定電路(例如,特殊應用積體電路(ASIC))、由藉由一或多個處理器執行之程式指令或由兩者之組合執行。另外,可認為本文中所描述之此等動作序列完全體現於任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體在其中儲存有在執行時將使相關聯處理器執行本文中所描述之功能性的電腦指令之對應集合。因此,本發明之各種態樣可以數個不同形式體現,預期所有形式在所主張標的物之範疇內。另外,對於本文中所描述之態樣中之每一者,任何此等態樣之對應形式在本文中可被描述為(例如)「經組態以執行所描述動作之邏輯」。 本發明之例示性態樣係針對一種包含一快取之處理系統。在一些實例中,該快取可為經組態以儲存資料及指令之一統一快取。儲存或待儲存於統一快取中之資訊(資料/指令)可具有相關聯的讀取、寫入及執行許可。讀取、寫入及執行許可可取決於與資訊相關聯之記憶體位址,或更一般而言,取決於包含記憶體位址之記憶體頁。 在例示性態樣中,應認識到,若記憶體位址具有與其相關聯之寫入許可及執行許可兩者,則與記憶體位址相關聯之資訊可具有高的將來使用可能性。如先前所提及,具有寫入許可可為允許資訊寫入至記憶體位址之基本條件。在一實例中,資訊可為指令(使用資料寫入操作寫入為資料,此係因為寫入許可存在)。資訊可經提取以在將來執行(例如,使用指令提取,此係因為執行許可存在)。假定資訊可存取以供將來執行(或換言之,可自記憶體位址執行),若寫入未命中在嘗試將資訊寫入至統一快取時發生,則在例示性態樣中,可在服務寫入未命中時實施寫入-分配策略。否則,若執行許可不存在,則可基於寫入-不分配策略而服務寫入未命中。因此,在例示性態樣中,與寫入位址相關聯之執行許可可用以在對寫入位址之寫入操作的寫入未命中之情況下判定快取分配策略。 在例示性態樣中,統一快取可由一或多個代理程式或處理程序存取。舉例而言,資訊可由寫入代理程式(在本文中亦被稱作「產生代理程式」)寫入至統一快取。資訊可由在本文中被稱作「消耗代理程式」之代理程式執行,或更一般而言,「消耗」。在一些情況下,產生代理程式與消耗代理程式可指同一實體(例如,處理器)之處理程序,而在一些情況下,產生代理程式及消耗代理程式可為不同實體(例如,可存取統一快取之不同處理器)。 在一處理系統中,一或多個處理器、處理程序或實體(例如,其可存取記憶體)可在一或多個特權等級(諸如,使用者特權等級、監督員特權等級等)下操作,如此項技術中已知的。對於每一特權等級,可存在與每一記憶體位址或頁相關聯之對應讀取、寫入及執行許可。因此,產生代理程式與消耗代理程式可在相同或不同特權等級下操作,且因此,產生代理程式及消耗代理程式可具有基於其相關聯特權等級之執行許可。 當寫入請求由產生代理程式產生時,可潛在地消耗將由產生代理程式寫入之資訊的消耗代理程式可為未知的。因此,若寫入請求引起快取未命中,則在服務寫入未命中時,產生代理程式以及產生代理程式之特權等級可能已知;然而,潛在消耗代理程式可為未知的,且因此,潛在消耗代理程式之相關聯特權等級可為未知的。因此,在一些態樣中,用於寫入未命中之寫入分配策略可基於與產生代理程式之特權等級相關聯的執行許可及/或與寫入位址之任何其他特權等級相關聯的執行許可(例如,可為該等執行許可之函數)。 在一些情況下,產生代理程式及消耗代理程式(不論其是否為相同實體或不同實體)可經由記憶體管理單元(MMU)來存取統一快取。舉例而言,MMU可包含經組態以快取虛擬位址(由代理程式供應)至實體位址(用於定址統一快取中之記憶體位置以及備份儲存位置)轉譯的轉譯後備緩衝器(TLB)。TLB可具有如先前論述之一或多個頁表項(PTE),其中每一PTE可包含虛擬至實體位址轉譯。在例示性態樣中,PTE可經擴展以進一步包括與寫入位址相關聯之寫入及執行許可,連同至由產生代理程式產生之寫入請求的寫入位址之轉譯。包含寫入位址之PTE可包括與寫入位址相關聯之一或多個執行許可,其中該一或多個執行許可可係關於與一或多個特權等級相關聯之執行許可。 為簡單起見,將參考包含一處理器及一統一快取之一處理系統來論述例示性態樣,其中該處理器可在一或多個特權等級中操作,其中每一特權等級具有相關聯讀取、寫入及執行許可。為簡單起見,可由同一處理器執行之處理程序可基於記憶體存取請求之類型而被稱作產生代理程式或消耗代理程式,但應理解,在不脫離本發明之範疇之情況下,所揭示態樣可容易地擴展至產生代理程式及消耗代理程式可屬於不同實體或處理單元之其他變體。 因此,參看圖1,說明了例示性處理系統100,其具有處理器105、包含TLB 125之MMU 115及快取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中無一者匹配PA 140之對應位元,則存在寫入未命中。 處理寫入未命中可基於SX 170及UX 172。在處理寫入未命中時,寫入資料之潛在消耗代理程式可為未知的。因此,可考慮與寫入位址相關聯之執行許可SX 170及UX 172中之一或多者,此係因為可執行寫入位址之潛在消耗代理程式之特權等級可為監督員特權或使用者特權中之一者。在服務寫入未命中時進行在快取110中進行寫入-分配或寫入-不分配之判定時,將在以下章節中詳細描述SX 170及UX 172之一或多個組合。 若基於SX 170及UX 172而判定寫入未命中經服務為寫入-分配,則探測一或多個備份儲存位置(例如,L2快取、L3快取、主記憶體等)且存取包含寫入位址或PA 140之第一備份儲存位置。讀出儲存於PA 140處之備份儲存位置中的先前資訊,且快取控制器175可在快取110中產生新快取項150。快取控制器175可將寫入資料寫入至新快取項150之資訊145,且基於PA 140之位元來設定新快取項150之標記135。 另一方面,若基於SX 170及UX 172而判定寫入未命中經服務為寫入-不分配,則探測一或多個備份儲存位置(例如,L2快取、L3快取、主記憶體等)且存取包含PA 140之第一備份儲存位置。以第一資料覆寫儲存於PA 140處之備份儲存位置中的先前資訊,但在快取110中不產生新快取項150。 現將更詳細地描述寫入-分配或寫入-不分配判定可基於的SX 170及UX 172之功能或組合。再次,在以下實例中,將假定基於產生代理程式之特權等級之對應寫入許可(SW 165或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中所展示之此等組件之額外細節。應理解,儘管諸如包含TLB 125之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或此項技術中已知的任何其他形式之儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可整合至處理器。 因此,本發明之一態樣可包括體現用於管理一快取之方法的電腦可讀媒體。因此,本發明不限於所說明實例,且用於執行本文中所描述之功能性的任何構件包括於本發明之實施例中。 雖然前述揭示內容展示本發明之說明性實施例,但應注意,在不脫離如由附加申請專利範圍所界定之本發明之範疇的情況下,可在本文中作出各種改變及修改。無需以任何特定次序來執行根據本文中所描述的本發明之實施例之方法項之功能、步驟及/或動作。此外,儘管可以單數形式來描述或主張本發明之元件,但除非明確地陳述對單數形式之限制,否則預期複數形式。
100‧‧‧處理系統
105‧‧‧處理器
110‧‧‧快取
115‧‧‧記憶體管理單元(MMU)
120‧‧‧頁表項(PTE)
125‧‧‧轉譯後備緩衝器(TLB)
130‧‧‧快取行
135‧‧‧標記
140‧‧‧實體位址(PA)
145‧‧‧資訊
150‧‧‧新快取項
155‧‧‧頁表項(PTE)
160‧‧‧虛擬位址(VA)
165‧‧‧監督員寫入許可(SW)
167‧‧‧使用者寫入許可(UW)
170‧‧‧監督員執行許可(SX)
172‧‧‧使用者執行許可(UX)
175‧‧‧快取控制器
200‧‧‧方法
205‧‧‧區塊
210‧‧‧區塊
300‧‧‧計算裝置
305‧‧‧記憶體
310‧‧‧顯示器控制器
315‧‧‧顯示器
320‧‧‧寫碼器/解碼器(CODEC)
325‧‧‧無線控制器
330‧‧‧揚聲器
335‧‧‧麥克風
340‧‧‧無線天線
345‧‧‧系統單晶片裝置
350‧‧‧輸入裝置
355‧‧‧電源供應器
呈現附圖以幫助描述本發明之態樣,且附圖係僅用於說明該等態樣而提供,而非該等態樣之限制。 圖1描繪根據本發明之態樣的處理器系統之例示性方塊圖。 圖2描繪根據本發明之態樣的用於管理快取之例示性方法。 圖3描繪可有利地使用本發明之態樣的例示性無線裝置。
100‧‧‧處理系統
105‧‧‧處理器
110‧‧‧快取
115‧‧‧記憶體管理單元(MMU)
120‧‧‧頁表項(PTE)
125‧‧‧轉譯後備緩衝器(TLB)
130‧‧‧快取行
135‧‧‧標記
140‧‧‧實體位址(PA)
145‧‧‧資訊
150‧‧‧新快取項
155‧‧‧頁表項(PTE)
160‧‧‧虛擬位址(VA)
165‧‧‧監督員寫入許可(SW)
167‧‧‧使用者寫入許可(UW)
170‧‧‧監督員執行許可(SX)
172‧‧‧使用者執行許可(UX)
175‧‧‧快取控制器

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之非暫時性電腦可讀儲存媒體,其進一步包含用於覆寫一現有寫入分配策略之程式碼。
TW106106528A 2016-03-01 2017-02-24 基於執行許可之一快取之寫分配 TW201734807A (zh)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
TW201734807A true TW201734807A (zh) 2017-10-01

Family

ID=58018350

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106106528A TW201734807A (zh) 2016-03-01 2017-02-24 基於執行許可之一快取之寫分配

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)

Families Citing this family (8)

* 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
CN111124267B (zh) * 2018-10-31 2023-10-31 伊姆西Ip控股有限责任公司 数据写入的方法、设备和计算机程序产品
CN112559389A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 存储控制装置、处理装置、计算机系统和存储控制方法
CN114616552A (zh) * 2019-11-29 2022-06-10 华为技术有限公司 缓存存储器和分配写操作的方法
CN111831587A (zh) * 2020-04-17 2020-10-27 北京奕斯伟计算技术有限公司 数据写入方法、装置和电子设备
US20230418753A1 (en) * 2022-06-28 2023-12-28 Advanced Micro Devices, Inc. Allocation control for cache

Family Cites Families (23)

* 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
EP0651332B1 (en) * 1993-10-29 2001-07-18 Advanced Micro Devices, Inc. Linearly addressable microprocessor cache
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US6263407B1 (en) * 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
JP2000215102A (ja) * 1998-09-01 2000-08-04 Texas Instr Inc <Ti> プロセッサ用の進歩したメモリ階層構造
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
US6990502B2 (en) * 2003-02-26 2006-01-24 Microsoft Corporation Reviewing cached user-group information in connection with issuing a digital rights management (DRM) license for content
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US20070079070A1 (en) * 2005-09-30 2007-04-05 Arm Limited Cache controller
US7805588B2 (en) * 2005-10-20 2010-09-28 Qualcomm Incorporated Caching memory attribute indicators with cached memory data field
US8606998B2 (en) * 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
US8275971B2 (en) * 2008-08-27 2012-09-25 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
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
US8504777B2 (en) * 2010-09-21 2013-08-06 Freescale Semiconductor, Inc. Data processor for processing decorated instructions with cache bypass
US20130179642A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
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
GB2526849B (en) * 2014-06-05 2021-04-14 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
US9335943B2 (en) * 2014-06-30 2016-05-10 Intel Corporation Method and apparatus for fine grain memory protection
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

Also Published As

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

Similar Documents

Publication Publication Date Title
TW201734807A (zh) 基於執行許可之一快取之寫分配
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US10133675B2 (en) Data processing apparatus, and a method of handling address translation within a data processing apparatus
US10474584B2 (en) Storing cache metadata separately from integrated circuit containing cache controller
JP6133896B2 (ja) 物理アドレスを用いる非割当てメモリアクセス
US7949835B2 (en) Data processing apparatus and method for controlling access to memory
US9436616B2 (en) Multi-core page table sets of attribute fields
US20140089602A1 (en) System cache with partial write valid states
US11474951B2 (en) Memory management unit, address translation method, and processor
US9268697B2 (en) Snoop filter having centralized translation circuitry and shadow tag array
TW201617886A (zh) 指令快取記憶體轉譯管理
US11803482B2 (en) Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
US11188472B2 (en) Caching streams of memory requests
US20090158003A1 (en) Structure for a memory-centric page table walker
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
US20150286270A1 (en) Method and system for reducing power consumption while improving efficiency for a memory management unit of a portable computing device
CN118020056A (zh) 将一个高速缓存中的请求类别和重用记录用于另一个高速缓存的插入策略
JP2024510127A (ja) ページ再マッピングおよびローテーションによるアドレス空間配置のランダム化エントロピーの増大
WO2023064609A1 (en) Translation tagging for address translation caching
CN115080464A (zh) 数据处理方法和数据处理装置