TWI446166B - 判定快取策略的方法、處理器和設定快取策略的系統 - Google Patents

判定快取策略的方法、處理器和設定快取策略的系統 Download PDF

Info

Publication number
TWI446166B
TWI446166B TW097102764A TW97102764A TWI446166B TW I446166 B TWI446166 B TW I446166B TW 097102764 A TW097102764 A TW 097102764A TW 97102764 A TW97102764 A TW 97102764A TW I446166 B TWI446166 B TW I446166B
Authority
TW
Taiwan
Prior art keywords
cache
memory
processor
information
memory device
Prior art date
Application number
TW097102764A
Other languages
English (en)
Other versions
TW200842572A (en
Inventor
Michael William Morrow
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 TW200842572A publication Critical patent/TW200842572A/zh
Application granted granted Critical
Publication of TWI446166B publication Critical patent/TWI446166B/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
    • 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Description

判定快取策略的方法、處理器和設定快取策略的系統
本發明大體而言係關於在一處理器中之快取操作,且特定言之,係關於判定快取策略。
藉由在一處理器中本端包括將一或多階快取記憶體以用於儲存頻繁存取或最近使用之資訊而改良處理器效能。處理器快取記憶體為小型快速記憶體,其儲存主記憶體(諸如DRAM或硬碟機)中儲存的所選擇資訊之複本。當指令存取一記憶體位置時,該處理器首先檢查該記憶體位置是否被複寫於本端快取記憶體中。特定言之,比較與記憶體存取相關聯之位址與快取記憶體中之所有標記。若所要記憶體位於該快取記憶體中,則發生快取命中。否則,發生快取未命中。
當發生快取命中時,處理器立即讀取或寫入諸如經識別之快取線中之資料或指令之資訊。若發生快取未命中,則自較高階快取記憶體或主記憶體擷取所要資訊。再者,習知地將新輸入項配置於快取記憶體中以儲存新擷取之資訊。新輸入項包含識別導致快取未命中之位址的標記及自主記憶體擷取之資訊之複本。
為容納新快取輸入項,自快取記憶體逐出現有輸入項。用於選擇自快取記憶體逐出之輸入項的試探法係基於替代策略,諸如,最近最少使用或先進先出。其他快取策略(亦被稱為快取屬性)亦用於判定如何存取、使用並保持快 取記憶體。其他快取策略包括寫入策略、配置策略、快取階策略及自訂策略。
寫入策略判定寫入至快取區塊之資訊何時亦寫入至主記憶體。舉例而言,當使用寫透策略時,同時更新快取記憶體及主記憶體。當採用寫回策略時,僅在對應快取區塊被替代時方更新主記憶體。一次寫入策略使用寫透策略以用於第一次寫入至特定快取區塊且使用寫回策略以用於後續寫入至同一區塊。
快取記憶體配置策略判定何時寫入快取區塊。舉例而言,若與特定快取區塊相關聯之配置策略為"僅在讀取時配置",則在寫入期間不干擾該區塊。相反,當配置策略為"在讀取及寫入時配置"時,在寫入與讀取期間均更新快取區塊。對於具有諸如第一階指令與資料快取記憶體及至少一較高階快取記憶體之多階快取記憶體的處理器而言,快取階策略判定哪一階快取記憶體用於儲存資訊。舉例而言,指令可儲存於第一階指令快取記憶體中,而其他資訊可僅儲存於第二階快取記憶體中。
習知地將快取策略儲存於頁表中。頁表保持於具有儲存於處理器本端之頻繁存取或最近使用之輸入項的主記憶體中,例如,保持於轉譯後備緩衝器(TLB)中。每一頁表輸入項將虛擬位址映射至對應實體位址。特定言之,頁表儲存虛擬頁號及對應實體頁號之清單。虛擬頁號識別配置至執行於處理器上之處理序的虛擬記憶體之各別區塊,而實體頁號識別含有由處理序使用之實際資訊的實體記憶體之 對應區塊。
當處理器存取特定記憶體位置時,使用被提供為存取之部分的虛擬位址之虛擬頁號部分來搜尋頁表輸入項。自匹配頁表輸入項擷取實體頁號。實體頁號及頁偏移形成用於存取所要記憶體位置的實體位址。
若本端處理器快取記憶體內不含有所要記憶體位置,則存取主記憶體。儲存於匹配頁表輸入項中之快取策略資訊判定是否將自主記憶體讀取或寫入至主記憶體的作為記憶體存取之部分的資訊在本端儲存於快取記憶體中,且若如此,則判定資訊如何保持於快取記憶體中。因此,習知地,在每一頁(或每一區塊)基礎上設定快取策略並將快取策略應用於快取記憶體。此外,習知地由作業系統程式化快取策略。因而,快取策略通常應用於處理器上執行所有處理序且在可由特定類型之主記憶體器件使用時導致效率低下。舉例而言,"僅在讀取時配置"快取記憶體配置策略可最佳化諸如圖形應用程式之一些處理序的快取記憶體使用率,但對於其他處理序並非如此。
根據本文中所教示之方法及裝置,使用與在特定記憶體操作期間所存取的目標記憶體器件相關聯之快取策略資訊來判定處理器快取策略。因此,快取操作可經裁剪以適於特定記憶體器件設定而非整體快取策略設定。藉由基於與記憶體操作期間所存取的目標記憶體器件相關聯之快取策略資訊來判定當前記憶體操作之快取策略而改良處理器效 能。
根據處理器之一實施例,該處理器包含至少一快取記憶體及一記憶體管理單元。該至少一快取記憶體經組態以在該處理器本端儲存資訊。該記憶體管理單元經組態以設定該至少一快取記憶體之一或多個快取策略。該記憶體管理單元基於與經組態以儲存由該處理器使用之資訊之一或多個目標記憶體器件相關聯的快取策略資訊來設定該一或多個快取策略。
根據系統之一實施例,該系統包含:一處理器,其具有經組態以在處理器本端儲存資訊的至少一快取記憶體;一或多個目標記憶體器件,其耦接至該處理器;及一記憶體管理單元,其被包括於該處理器中。該一或多個目標記憶體器件經組態以儲存由該處理器使用的資訊。該記憶體管理單元經組態以基於與該一或多個目標記憶體器件相關聯的快取策略資訊來設定該至少一快取記憶體之一或多個快取策略。
當然,本發明不限於上述特徵及優點。在閱讀以下【實施方式】後且在參看隨附圖式後,熟習此項技術者將認識到額外特徵及優點。
圖1說明包括系統10之實施例,其包括一匯流排12,該匯流排12將處理器14耦接至一或多個周邊器件16及主記憶體,諸如,硬碟機(HDD)18及諸如同步DRAM(SDRAM)20及同步圖形RAM(SGRAM)22之DRAM。處理器14包括 一處理器核心24、資料快取記憶體26及指令快取記憶體28、一第二階(L2)快取記憶體30及一匯流排介面單元32。處理器核心24提供對指令流及指令執行的集中控制。資料快取記憶體26及指令快取記憶體28分別儲存資料及指令。L2快取記憶體30提供在資料快取記憶體26及指令快取記憶體28與處理器14外部的主記憶體(諸如,HDD 18、SDRAM 20及SGRAM 22)之間的高速記憶體緩衝器。匯流排介面單元32提供用於在處理器14與處理器14外部之器件(諸如,周邊器件16及主記憶體18、20、22)之間轉移資料、指令、位址及控制信號的機制。
主記憶體18、20、22被表示為在處理器14上執行之處理序的虛擬記憶體。亦即,實體記憶體之頁被配置為虛擬記憶體以在程式執行期間由處理序來使用。頁表34保持於(例如)如圖1中所示之主記憶體18、20、22中以使得能夠在虛擬位址空間與實體位址空間之間進行映射。包括於處理器14中之記憶體管理單元(MMU)36存取頁表34且處理由處理器14發佈之記憶體存取,包括虛擬記憶體管理、記憶體保護、快取記憶體控制及匯流排仲裁。作為虛擬記憶體管理之部分,MMU 36將在處理器14本端之頻繁或最近參考頁表輸入項(PTE)保持於(例如)轉譯後備緩衝器(TLB)38中。
當處理器14存取由虛擬位址識別之所要記憶體位置時,MMU 36存取TLB 38以判定TLB 38是否含有匹配輸入項。若如此,則使用儲存於匹配TLB輸入項中的位址轉譯資訊 而將虛擬位址轉譯成實體位址。否則,針對匹配輸入項而搜尋頁表34。總之,MMU 36基於所得實體位址在實體標記之快取記憶體26、28、30中之一者中起始快取記憶體查找操作。若快取記憶體26、28、30中之一者含有所要記憶體位置,則對應快取線被存取且藉由自快取線讀取或寫入至快取線而完成記憶體存取。否則,MMU 36起始對主記憶體18、20、22的記憶體存取以用於存取所要記憶體位置。
藉由提供識別所要記憶體位置之實體位址來存取主記憶體18、20、22。含有所要記憶體位置之記憶體器件在本文中被稱為目標記憶體器件。根據本文中所揭示之各種實施例,目標記憶體器件可包含包括於系統中的任一可定址記憶體模組、器件或記憶庫。舉例而言,目標記憶體器件可取決於正由處理器14執行的特定處理序而為SDRAM 20、SGRAM 22或其他記憶體器件(未圖示)中之一者。
回應於外部記憶體存取,將與對應目標記憶體器件相關聯之快取策略資訊提供至包括於MMU 36中或與MMU 36相關聯的快取策略設定電路40。快取策略設定電路40基於與對應目標記憶體器件相關聯之快取策略資訊來判定當前記憶體操作之快取策略設定。因此,當處理器14存取特定外部記憶體位置時,快取策略經裁剪以適於含有所要記憶體位置之對應目標記憶體器件。
舉例而言,若記憶體操作係針對SGRAM器件22中之一者,則當目標器件充當多媒體應用程式之視訊訊框緩衝器 時,與目標SGRAM器件相關聯的快取記憶體配置策略可為"僅在讀取時配置"。處理器14可在多媒體應用程式執行期間頻繁地寫入至目標SGRAM器件,但極少自該器件讀取。因此,目標SGRAM器件之快取記憶體配置策略可指示"僅在讀取時配置"以用於改良處理器效能。目標記憶體器件之快取策略資訊亦可指示特定替代策略、寫入策略、配置策略、快取階策略及/或一或多個自訂策略。
在一實施例中,與目標記憶體器件相關聯之快取策略資訊係由記憶體控制器42來提供,該記憶體控制器42提供在如圖1中所示之匯流排12與各種DRAM器件20、22之間的介面。根據此實施例,記憶體控制器42包括位址解碼器電路44,該位址解碼器電路44用於解碼由處理器14提供的作為記憶體存取(例如,讀取或寫入)之部分的實體記憶體位址。由位址解碼器電路44產生之快取策略資訊隨被提供為特定記憶體存取之部分的實體記憶體位址而變。實體位址識別含有記憶體位置之記憶體器件(其為當前記憶體操作之目標)。
圖2說明位址解碼器電路44之一實施例。根據此實施例,解碼器電路44包括一位址解碼器46、一多工器48及一表50,該表50具有與由記憶體控制器42支援之各別記憶體器件20、22相關聯的各種輸入項52。每一表輸入項52含有與對應記憶體器件相關聯之快取策略資訊。
當處理器14存取外部記憶體時,作為存取之部分而包括的實體位址識別由記憶體控制器42支援的記憶體器件20、 22中之一者。位址解碼器46解碼實體位址,進而使多工器48選擇含有與由實體位址識別之目標記憶體器件相關聯的快取策略資訊之輸入項52。記憶體控制器42經由匯流排12及匯流排介面單元32而將選定之快取策略資訊提供至MMU 36(例如,如圖1中之自位址解碼器電路44連接至MMU 36的虛線所示)。快取策略設定電路40使用接收之快取策略資訊來設定當前記憶體操作之快取策略。因此,可根據目標記憶體器件在每一快取線基礎上設定快取策略。
在另一實施例中,由包括於如圖3中所示之處理器14中之位址解碼器電路54來提供快取策略資訊。根據此實施例,位址解碼器電路54基於虛擬位址或實體位址來提供快取策略資訊,例如,如先前所描述且與圖2一致。在又一實施例中,由記憶體控制器42支援的記憶體器件20、22中之一或多者將其快取策略資訊儲存於(例如)器件ID暫存器或其他暫存器(未圖示)中。當由記憶體控制器42來存取目標記憶體器件時,存取策略資訊被提供至控制器42並被轉遞至如先前所描述之處理器14。或者,在不具有請求的情況下,(例如)在系統啟動期間或在處理器14重設後自動地將快取策略資訊提供至處理器14。此外,處理器14可在接收後儲存經裁剪之快取策略資訊,因此避免在隨後存取對應目標記憶體器件時請求同一資訊的需要。實情為,處理器14在內部擷取並使用經裁剪之快取策略資訊。無論如何,快取策略設定電路40均使用目標記憶體器件快取策略資訊來設定記憶體操作期間之快取策略。
圖4說明包括於MMU 36中或與MMU 36相關聯的快取策略設定電路40之實施例。根據此實施例,快取策略設定電路40包括用於設定針對當前記憶體操作之快取策略的選擇電路56。較詳細言之,匹配被提供為記憶體存取之部分的虛擬位址的頁表輸入項(PTE)58係自TLB 38或頁表34擷取(例如,如圖1中自頁表34連接至MMU 36之虛線所示)。基於儲存於匹配PTE 58(在此處實體位址識別所要記憶體位置)中之位址轉譯資訊60而將虛擬位址轉譯成對應實體位址。
若所要記憶體位置並不位於處理器快取記憶體26、28、30中之一者中,則MMU 36起始外部記憶體存取。回應於請求,記憶體控制器42基於所轉譯之實體位址來識別含有所要記憶體位置的目標記憶體器件。處理器14經由記憶體控制器42而獲得對目標記憶體器件之存取。目標記憶體器件執行所要記憶體操作(例如,讀取或寫入)。另外,與目標記憶體器件相關聯的快取策略資訊被作為記憶體操作之部分而提供至快取策略設定電路40並儲存於緩衝器62中,例如,如圖5之步驟100所說明。
選擇電路56處理自匹配PTE 58擷取之快取策略資訊64及儲存於緩衝器62中之目標記憶體器件之快取策略資訊,例如,如由圖5之步驟102所說明。自匹配PTE 58擷取之快取策略資訊64係以目標器件之資訊予以覆寫且被用作當前快取策略設定。然而,若未有快取策略資訊被提供以用於目標記憶體器件,則替代地使用自匹配PTE 58擷取之快取策 略資訊64。
在圖6中說明快取策略設定電路40如何判定快取策略之純說明性實例。處理器核心24發佈對虛擬位址X之記憶體寫入請求。MMU 36自TLB 38或頁表34擷取匹配PTE且使用其來將虛擬位址X轉換成對應實體位址X' 。MMU 36接著使用實體位址X' 來探測實體標記之快取記憶體26、28、30中之一或多者。在此實例中,快取記憶體26、28、30皆不含有如由快取未命中所指示的所要記憶體位置。因此,MMU 36基於實體位址X' 而對記憶體控制器42發佈外部記憶體寫入請求。記憶體控制器42選擇含有由實體位址X' 識別的記憶體位置之目標記憶體器件。目標記憶體器件執行所要寫入操作且向控制器42通知完成寫入。
此外,實體位址X' 被解碼且對應於目標記憶體器件之快取策略資訊如先前描述(例如)由位址解碼器電路44或54來擷取。或者,目標記憶體器件將其快取策略資訊提供至記憶體控制器42。無論如何,皆向MMU 36通知已完成寫入操作。此外,快取策略設定電路40被提供目標記憶體器件之快取策略資訊。在此實例中,快取策略資訊指示"僅在讀取時配置"。因此,寫入操作在處理器14中完成且MMU 36並未在處理器快取記憶體26、28、30中之一者中配置快取線。
圖7藉由展示由處理器核心24對同一虛擬位址X發佈後續讀取請求而繼續例示性說明。謹記,目標記憶體器件之快取策略資訊指示針對由實體位址X' 識別之記憶體位置的" 僅在讀取時配置"。因此,先前未針對實體位址X' 來配置快取線。因此,在當前讀取操作期間發生快取未命中。
此外,當目標記憶體器件完成讀取操作時,因為目標器件之快取策略資訊指示應配置快取線,所以讀取操作並未在處理器14中完成。因此,快取策略設定電路40設定當前快取記憶體配置策略,使得MMU 36指示處理器快取記憶體26、28、30中之一者針對實體位址x' 來配置快取線。此外,與目標記憶體器件相關聯的快取階策略可指示哪一階快取記憶體(例如,第一階快取記憶體26、28或L2快取記憶體30中之一者)應配置快取線。亦可基於目標器件之快取策略資訊來設定其他快取策略。無論如何,對應資料亦被提供至處理器核心24以用於處理。
謹記變化及應用之上述範圍,應理解,本發明不受前述描述限制,亦不受隨附圖式限制。實情為,本發明僅受以下申請專利範圍及其法定均等物限制。
10‧‧‧系統
12‧‧‧匯流排
14‧‧‧處理器
16‧‧‧周邊器件
18‧‧‧主記憶體/硬碟機(HDD)
20‧‧‧主記憶體/同步DRAM(SDRAM)
22‧‧‧主記憶體/同步圖形RAM(SGRAM)
24‧‧‧處理器核心
26‧‧‧資料快取記憶體
28‧‧‧指令快取記憶體
30‧‧‧第二階快取記憶體(L2)
32‧‧‧匯流排介面單元
34‧‧‧頁表
36‧‧‧記憶體管理單元(MMU)
38‧‧‧轉譯後備緩衝器(TLB)
40‧‧‧快取策略設定電路
42‧‧‧記憶體控制器
44‧‧‧位址解碼器電路
46‧‧‧位址解碼器
48‧‧‧多工器
50‧‧‧表
52‧‧‧表輸入項
54‧‧‧位址解碼器電路
56‧‧‧選擇電路
58‧‧‧頁表輸入項(PTE)
60‧‧‧位址轉譯資訊
62‧‧‧緩衝器
64‧‧‧快取策略資訊
圖1為說明包括具有用於判定快取策略之電路之處理器的系統之實施例的方塊圖。
圖2為說明用於提供與記憶體器件相關聯之快取策略資訊的位址解碼器電路之實施例的方塊圖。
圖3為說明包括具有用於判定快取策略之電路之處理器的系統之另一實施例的方塊圖。
圖4為說明用於在處理器中判定快取策略之電路之實施例的方塊圖。
圖5為說明用於在處理器中判定快取策略之程式邏輯之實施例的邏輯流程圖。
圖6為說明圖4之電路如何回應於例示性寫入操作而判定快取策略的圖。
圖7為說明圖4之電路如何回應於例示性讀取操作而判定快取策略的圖。
10‧‧‧系統
12‧‧‧匯流排
14‧‧‧處理器
16‧‧‧周邊器件
18‧‧‧主記憶體/硬碟機(HDD)
20‧‧‧主記憶體/同步DRAM(SDRAM)
22‧‧‧主記憶體/同步圖形RAM(s GRAM)
24‧‧‧處理器核心
26‧‧‧資料快取記憶體
28‧‧‧指令快取記憶體
30‧‧‧第二階(L2)快取記憶體
32‧‧‧匯流排介面單元
34‧‧‧頁表
36‧‧‧記憶體管理單元(MMU)
38‧‧‧轉譯後備緩衝器(TLB)
40‧‧‧快取策略設定電路
42‧‧‧記憶體控制器
44‧‧‧位址解碼器電路

Claims (23)

  1. 一種判定快取策略之方法,其包含:在一處理器中之一記憶體管理單元接收第一快取策略資訊,其中該第一快取策略資訊係基於一與一目標記憶體器件相關聯之頁表輸入項自一位址解碼器電路被接收,且其中該處理器係經由一記憶體控制器耦接至該目標記憶體器件;在該處理器儲存該第一快取策略資訊;及當自該目標記憶體器件在第二快取策略資訊之該記憶體控制器接收一快取策略時,基於自該記憶體控制器接收之該第二快取策略資訊設定該快取策略。
  2. 如請求項1之方法,其中該第二快取策略資訊係儲存在該目標記憶體器件之一器件識別暫存器。
  3. 如請求項1之方法,其進一步包含當該第二快取策略資訊可自該目標記憶體器件使用時,以該第二快取策略資訊覆寫該第一快取策略資訊及基於該第二快取策略資訊設定該快取策略。
  4. 如請求項1之方法,其中該快取策略包括一指示,其指示哪一階快取記憶體配置一快取線以回應於針對該目標記憶體器件之一記憶體操作。
  5. 如請求項1之方法,其進一步包含當該第二快取策略資訊係不可自該目標記憶體器件使用時,基於該第一快取策略資訊設定該快取策略。
  6. 一種處理器,其包含: 一快取記憶體,其經組態以在該處理器本端儲存資訊;及在該處理器內之一記憶體管理單元,該記憶體管理單元經組態以基於與一目標記憶體器件相關聯之快取策略資訊設定一快取策略,以回應於接收來自在該處理器外部且耦接至該目標記憶體器件之一記憶體控制器之該快取策略資訊。
  7. 如請求項6之處理器,其中該記憶體控制器經組態以自該目標記憶體器件接收該快取策略資訊以回應於針對該目標記憶體器件之一記憶體操作。
  8. 如請求項6之處理器,其中該記憶體管理單元進一步經組態以:自該處理器之一位址解碼器電路接收交錯快取策略資訊,其中該交錯快取策略資訊係自一與該目標記憶體器件相關聯之頁表輸入項所擷取。
  9. 一種設定快取策略之系統,其包含:一處理器;一目標記憶體器件,其經組態以儲存由該處理器使用之資訊,其中該目標記憶體器件並非一快取記憶體;及一耦接至該處理器且與該目標記憶體器件相關聯之記憶體控制器,該記憶體控制器包含一位址解碼器電路,其中該處理器包含:一快取記憶體,其經組態以在該處理器本端儲存資訊;及 一記憶體管理單元,其經組態以當一快取策略資訊可自該位址解碼器電路使用時,基於與該目標記憶體器件相關聯之該快取策略資訊設定一該快取記憶體之快取策略。
  10. 如請求項9之系統,其中該記憶體控制器之該位址解碼器電路包含一位址解碼器及具有與該目標記憶體器件相關聯之一輸入項之一表。
  11. 一種判定快取策略之方法,其包含:擷取與一目標記憶體器件相關聯之第一快取策略資訊;在一處理器儲存該第一快取策略資訊,該處理器係經由一記憶體控制器耦接至該目標記憶體器件;及當第二快取策略資訊可自該記憶體控制器使用時:以該第二快取策略資訊覆寫該儲存之第一快取策略資訊;且基於該第二快取策略資訊設定一快取策略。
  12. 如請求項11之方法,其中該記憶體控制器自該目標記憶體器件之一器件身分暫存器接收該第二快取策略資訊。
  13. 如請求項11之方法,其中該快取策略包括一指示,其指示哪一階快取記憶體配置一快取線以回應於針對該目標記憶體器件之一記憶體操作。
  14. 如請求項11之方法,其中該快取策略指示僅在讀取時配置。
  15. 如請求項11之方法,其中該記憶體控制器包含一位址解 碼器電路,其中該位址解碼器電路包含一位址解碼器及具有與該目標記憶體器件相關聯之一輸入項之一表。
  16. 一種處理器,其包含:一快取記憶體,其經組態以在該處理器本端儲存資訊;及一記憶體管理單元,其經組態以:在該處理器儲存第一快取策略資訊,其中該第一快取策略資訊係自一與一目標記憶體器件相關聯之頁表輸入項接收,其中該目標記憶體器件並非一快取記憶體且其中該頁表輸入項係由該處理器識別一與一記憶體存取相關聯之位址;基於該第一快取策略資訊設定一快取策略;及當第二快取策略資訊可自一與該目標記憶體器件相關聯之記憶體控制器使用時:以該第二快取策略資訊覆寫該儲存之第一快取策略資訊;且基於該第二快取策略資訊以另一快取策略置換該快取策略。
  17. 如請求項16之處理器,其中該快取記憶體包含一第二階(L2)快取記憶體。
  18. 一種設定快取策略之系統,其包含:一目標記憶體器件;一與該目標記憶體器件相關聯之記憶體控制器,該記憶體控制器包含一位址解碼器電路;及 一耦接至該記憶體控制器之處理器,該處理器包含:一快取記憶體,其經組態以在該處理器本端儲存資訊;及一記憶體管理單元,其經組態以:在該處理器儲存第一快取策略資訊,其中該第一快取策略資訊係自一與該目標記憶體器件相關聯之頁表輸入項接收,且其中該頁表輸入項係由該處理器識別一與一記憶體存取相關聯之位址;基於該第一快取策略資訊設定一快取策略;及當第二快取策略資訊可自該記憶體控制器使用時,以該第二快取策略資訊覆寫該儲存之第一快取策略資訊且基於該第二快取策略資訊設定該快取策略。
  19. 如請求項18之系統,其中該快取記憶體係一指令快取記憶體。
  20. 如請求項18之系統,其中該快取記憶體係一資料快取記憶體。
  21. 如請求項18之系統,其中該目標記憶體器件係一同步圖形隨機存取記憶體(SGRAM)器件。
  22. 如請求項18之系統,其中該目標記憶體器件係一同步動態隨機存取記憶體(SDRAM)器件。
  23. 如請求項18之系統,其中該快取策略包括一指示,其指示哪一階快取記憶體配置一快取線以回應於針對該目標記憶體器件之一記憶體操作。
TW097102764A 2007-01-24 2008-01-24 判定快取策略的方法、處理器和設定快取策略的系統 TWI446166B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/626,434 US7949834B2 (en) 2007-01-24 2007-01-24 Method and apparatus for setting cache policies in a processor

Publications (2)

Publication Number Publication Date
TW200842572A TW200842572A (en) 2008-11-01
TWI446166B true TWI446166B (zh) 2014-07-21

Family

ID=39456426

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097102764A TWI446166B (zh) 2007-01-24 2008-01-24 判定快取策略的方法、處理器和設定快取策略的系統

Country Status (11)

Country Link
US (1) US7949834B2 (zh)
EP (1) EP2115599B1 (zh)
JP (1) JP5313168B2 (zh)
KR (1) KR101079970B1 (zh)
CN (1) CN101589374B (zh)
BR (1) BRPI0806756A2 (zh)
CA (1) CA2674868C (zh)
MX (1) MX2009007948A (zh)
RU (1) RU2427892C2 (zh)
TW (1) TWI446166B (zh)
WO (1) WO2008092032A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5158576B2 (ja) * 2007-06-05 2013-03-06 日本電気株式会社 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US8151077B1 (en) * 2008-06-30 2012-04-03 Emc Corporation Application aware cache management
US8504776B2 (en) * 2008-08-29 2013-08-06 Infineon Technologies Ag Device and method for controlling caches
US8504839B2 (en) * 2008-10-27 2013-08-06 Advanced Micro Devices, Inc. Method, apparatus, and device for protecting against programming attacks and/or data corruption
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
CN101866321B (zh) * 2010-06-13 2012-03-21 北京北大众志微系统科技有限责任公司 一种高速缓存管理策略的调整方法及系统
US9652560B1 (en) * 2011-07-18 2017-05-16 Apple Inc. Non-blocking memory management unit
US20130042238A1 (en) * 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US8954704B2 (en) 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
US9715455B1 (en) * 2014-05-05 2017-07-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Hint selection of a cache policy
WO2016191569A1 (en) * 2015-05-27 2016-12-01 Google Inc. Memory system architecture
US10019404B2 (en) * 2016-04-20 2018-07-10 Allone Solution Co., Ltd. Accessing method for accessing hybrid hard-disk drive
US10402336B2 (en) * 2017-03-31 2019-09-03 Intel Corporation System, apparatus and method for overriding of non-locality-based instruction handling

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
AU5854796A (en) * 1995-05-10 1996-11-29 3Do Company, The Method and apparatus for managing snoop requests using snoop advisory cells
US5946713A (en) * 1997-08-18 1999-08-31 Intel Corporation Memory attribute palette
JPH1173368A (ja) * 1997-08-28 1999-03-16 Seiko Epson Corp メモリモジュール、情報処理装置の制御方法および記録媒体
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US7328328B2 (en) * 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
WO2003090052A2 (en) * 2002-04-18 2003-10-30 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7353334B2 (en) * 2002-08-19 2008-04-01 Aristos Logic Corporation Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies
US7039756B2 (en) 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
JP4765249B2 (ja) * 2003-11-18 2011-09-07 セイコーエプソン株式会社 情報処理装置およびキャッシュメモリ制御方法
JP4009306B2 (ja) * 2003-11-18 2007-11-14 松下電器産業株式会社 キャッシュメモリおよびその制御方法
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
GB2422926B (en) * 2005-02-04 2008-10-01 Advanced Risc Mach Ltd Data processing apparatus and method for controlling access to memory
US7472225B2 (en) * 2005-06-20 2008-12-30 Arm Limited Caching data
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives

Also Published As

Publication number Publication date
CA2674868A1 (en) 2008-07-31
WO2008092032A1 (en) 2008-07-31
KR101079970B1 (ko) 2011-11-04
MX2009007948A (es) 2009-08-07
CN101589374A (zh) 2009-11-25
US20080177952A1 (en) 2008-07-24
JP2010517179A (ja) 2010-05-20
RU2009131695A (ru) 2011-02-27
EP2115599A1 (en) 2009-11-11
JP5313168B2 (ja) 2013-10-09
KR20090108716A (ko) 2009-10-16
CA2674868C (en) 2015-02-03
EP2115599B1 (en) 2017-07-19
CN101589374B (zh) 2012-07-04
BRPI0806756A2 (pt) 2011-09-13
RU2427892C2 (ru) 2011-08-27
TW200842572A (en) 2008-11-01
US7949834B2 (en) 2011-05-24

Similar Documents

Publication Publication Date Title
TWI446166B (zh) 判定快取策略的方法、處理器和設定快取策略的系統
TWI307839B (en) Method and system of processing translation lookaside buffer entries
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
US8239657B2 (en) Address translation method and apparatus
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
JP5329234B2 (ja) 変換索引マニピェレーション
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
US20100185831A1 (en) Semiconductor integrated circuit and address translation method
EP2416251B1 (en) A method of managing computer memory, corresponding computer program product, and data storage device therefor
CN109219804B (zh) 非易失内存访问方法、装置和系统
US6948032B2 (en) Method and apparatus for reducing the effects of hot spots in cache memories
JP5286796B2 (ja) メモリ制御装置
JP5635311B2 (ja) リンクされているデータストアにおいて、アイテムの保存およびアイテムの上書きを決定するデータ保存プロトコル
US9158697B2 (en) Method for cleaning cache of processor and associated processor
JP7470112B2 (ja) 持続性メモリクリーニング
JP4037806B2 (ja) キャッシュメモリ装置
CN111198827A (zh) 页表预取方法及装置
JP2010176692A (ja) 演算処理装置、情報処理装置及び制御方法