TWI237177B - Allocating cache lines - Google Patents

Allocating cache lines Download PDF

Info

Publication number
TWI237177B
TWI237177B TW092132050A TW92132050A TWI237177B TW I237177 B TWI237177 B TW I237177B TW 092132050 A TW092132050 A TW 092132050A TW 92132050 A TW92132050 A TW 92132050A TW I237177 B TWI237177 B TW I237177B
Authority
TW
Taiwan
Prior art keywords
cache memory
data
memory
line
cache
Prior art date
Application number
TW092132050A
Other languages
English (en)
Other versions
TW200417857A (en
Inventor
Mark Schmisseur
Brett Gaines
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200417857A publication Critical patent/TW200417857A/zh
Application granted granted Critical
Publication of TWI237177B publication Critical patent/TWI237177B/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/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/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
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional 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
    • 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/0877Cache access modes
    • G06F12/0886Variable-length word access

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)

Description

1237177 玖、發明說明: 【明所屬^技^4員域】
本發明係有關於分配快取記憶體儲存行之技術。 Γ «yT 5 發明背景 ^丧收一在記憶體中被請求 之位置下㈣财關之請求。此處理“先可能會試圖存 取-與此處理器密切相關聯之記憶體内的資料,諸如快取 10 15 記憶體’而非透過-相對其主記憶典型較慢之存取。通常 —快取記憶體,係包括-可模擬—較大且較慢之主記情的 選定區域或㈣之記憶體。-快取記憶體,通常係依需求 而使填入’在貫體上係較靠近—處理器,以及係具有一較 主記憶體為快速之存取時間。 若該處理㈣記㈣之麵,在織取記,隨内發生 =舉例而5 ’無法在該快取記憶體内,發現到該資 署之副本,職取記憶體,可在此快取記憶體_定一位 ,以儲存其主記憶體内之_被請求的位置處之資料的副 料之=對其主記憶體發出—有關上述請求之位置處的資 之=以及可將此出自主記憶體之資料,填入其選定 在空n體位置内。該快取記憶體,亦可請求及儲存一 4上接近其請求之位置的資料,因為—些可請求 經常會對同-位置或空間上相接近:記憶體 位置的資料,在接近之 T間上做請求,故將空間上相接近 ^ 體内,其效率將可能會增加。在此 20 1237177 一方式中,該處理器可就此對資料之請求,和/或後繼之 請求,而存取此快取記憶體内之資料。 【發明内容】 本發明係為一種方法,其係包括:承受一快取記憶體 5寫入錯失;以及在承受此快取記憶體寫入錯失之後,將一 儲存在一記憶體位址處之資料,寫至一包括無效資料和一 在與此記憶體位址不同之記憶體位址處的資料之快取記憶 體儲存行。 圖式簡單說明 10 第1圖係一包括一快取記憶體之範例性處理系統; 第2圖係顯示一包括快取記憶體儲存行之快取記憶體; 第3圖係顯示一可分配快取記憶體儲存行之範例性程 序;而 第4圖則係顯示一可針對一讀取來處理快取記憶體錯 15 失之範例性程序。 【】 較佳實施例之詳細說明 參照第1圖,-範例性處理系統謂,係包括一處理器 102,其可自動分配一快取記憶體1〇6内之儲存行,而不會 2〇在將資料寫至此分配之儲存行前,將一來自一記憶體ιι〇之 當可貧料,填入此儲存行内。一包括在此處理器撤内之處 理裔核〜104 ’可依據—與快取記憶體1〇6相聯結之快取記 憶體控制器108内所包括一或多的策略,來分配該快取記憶 體106内之一儲存行。 1237177 其快取記憶體控制器l〇8,係可管理一些可檢索來自其 記憶體110之資料及可將此資料置入其快取記憶體1〇6内之 策略’和一些可使此資料保持在其快取記憶體1〇6内及可以 一些相對其快取記憶體1〇6之更新資料來更新其記憶體11〇 5 的策略。其快取記憶體控制器108,通常係使用其快取記憶 體控制器108内所包括之記憶體管理單元(MMU) 112,來具 現此等政策。一此等策略可包括一寫入分配空缺策略。 此寫入分配空缺策略,可運作為一寫入分配策略,連 同或加上其快取記憶體106有關一或多其他之寫入分配策 10 略,其係可於其核心104發生一核心寫入所致之快取記憶體 錯失時開始。一快取記憶體錯失典型發生之時是,其處理 器102透過其核心104内所包括之程式114,而試圖透過其快 取記憶體控制器108,來讀取、寫入、或不然存取其快取記 憶體106内之一特定區段或區塊,但卻無法在其快取記憬體 15 106内找到該資料,因為該資料並未自其記憶體110 ,拷貝 至其快取記憶體106。 在其快取記憶體控制器10 8所控制之寫入分配空缺策 略下,其程式114可不必首先自其記憶體11〇,抓取其資料 之當前版本,扁分配其快取記憶體内之一儲存行,以及將 20 該資料寫至此分配之儲存行内。此儲存行分配通常係論 及:執行某些或所有 在執行一快取記憶體填入運作之程序中要犧牲的健存 行之選擇;若此被犧牲之儲存行内的快取記憶體内容值從 其記憶體110拷貝起業已被修改過,便將此内容值寫至其記 1237177 t體110内’以及更新其快取記憶體⑽有關之標籤資訊, 2以反映其狀之快取記憶體儲存行被犧牲和/或新的内 容有關之記憶體位址中的任何改變。舉例而言,其處理器 102可藉由選擇其快取讀體之—快取記憶體儲存行,來分 5配-快取記憶體儲存行,以及可藉由標記此選定之快取記 憶體儲存行處的内容值為無效,而犧牲此選定之快取記憶 體儲存行處的當前㈣,以及若其快取記㈣⑽内之資料 的版本,係包括-些尚未反映在其記憶體n〇内之更新或修 改,可藉由將上述選定之快取記憶體儲存行處的内容,寫 10回至其記憶體110’來犧牲上述選定之快取記憶體儲存行處 的當前資料。 第2圖係顯示一包括快取記憶體儲存行2〇2(ι)_2〇2(χ) 之快取記憶體200的一個範例,其中之乂係等於任一正整 數。上述之快取記憶體106(第1圖),在具現上可使類似於此 15快取記憶體200。每一快取記憶體儲存行202(l)-202(x),係 包括一位元組204(1)-204(Y)之資料,其中之γ係等於任一正 整數。(其位元組204(1)-204(Υ),係快取記憶體儲存行加以丄) 有關之例示性位元組;每一快取記憶體儲存行 2〇2(1)-2〇2(Χ),係包括一 Υ位元組之資料)。每一 γ位元組之 20資料,可包括任一量之位元組,每一γ位元組,通常係各包 括數目相同之位元組。Υ在此一範例中係以位元組來做測 量,但Υ係可以任何方式來做測量,諸如位元、位元組、或 以任何其他之資料大小。其快取記憶體儲存行 202(1)-202(Χ),在此一範例中,係顯示成一些連續之水平 1237177 列’但彼等快取記憶體儲存行,係可以任何方式來加以組 織。 復參照第1圖,與其使處理器102經由核心1〇4、快取記 憶體控制為108、匯流排界面單元116、處理器匯流排us、 5 記憶體控制器120、和任何其他中介元件(例如,匯流排、 晶片、等等),而請求來自其記憶體110之資料,以及用來 自其記憶體110當前版本之資料,填入其選定之快取記憶體 儲存行,其程式114接著會將資料寫至其選定之快取記憶體 儲存行内,以及標記此寫入之資料為有效。若在將資料寫 10 至其快取§己憶體儲存行期間,有一處理器中斷發生,其核 心104内之中斷軟體常式(ISR) 122,可有助於確保該中斷在 繼續將資料寫至其快取記憶體106之前能適當被處理。其程 式114亦可以一或多快取記憶體儲存行寫至其記憶體11〇内 新寫入之有效資料,來更新其記憶體114。 15 在一快取記憶體錯失之後,在將資料寫至一快取記憶 體儲存行之前,致能一快取記憶體儲存行,使標記為無效, 而非在將資料寫至此快取記憶體儲存行之前,以來自其記 憶體110之當前版本的資料,填入此快取記憶體儲存行,將 可縮小其系統100中之匯流排流量和處理時間。在一快取記 20憶體發生錯失之後,資料並不需要自其記憶體110抓取及使 儲存進其快取記憶體内,而僅需以其處理器1〇2重新寫入。 其核心104或程式114,並不需要包含任何針對彼等快取記 憶體存取之特別指令,以遵循上述之寫入分配空缺策略。 除該寫入分配空缺策略外,其MMU 112亦可具現一些 1237177 涉及檢索(餘存行分配)功能和更新(寫入)功能之快取記憶 體策略。彼等檢索功能,通常係包括使用_些類似分配策 略、寫入分配策略、和讀取/寫入分配策略等策略,隨選 填入其快取記憶體106。一讀取分配策略,通常係論及若正 5被讀取之資料原不在其快取記憶體106内(亦即,一快取記 憶體錯失),其核心104將會自其記憶體110,抓取一資料之 快取記憶體儲存行值。一寫入分配策略,通常係論及若正 被寫入之資料原不在其快取記憶體106内(亦即,一快取記 憶體錯失),其核心104將會自其記憶體110,抓取一資料之 10快取記憶體儲存行值。一讀取/寫入分配策略,通常係論 及彼等具有讀取和寫入兩者特性之資料的讀取分配和寫入 分配策略之組合。 彼等更新功能,通常係包括使用一些類似寫進(wHte through)策略和寫回(write back)策略等策略,以其快取記憶 15體106内改變過之資料,來更新其記憶體110。一寫進策略, 通常係論及其核心1〇4,係於正被寫至其快取記憶體1〇6之 資料,為包含在其快取記憶體1〇6内(亦即,一快取記憶體 命中)時’更新其快取記憶體106和外部記憶體和/或外部 裝置。一寫回策略,通常係論及其核心104,於正被寫至其 20快取記憶體106之資料,為包含在其快取記憶體106内(亦 即,一快取記憶體命中)時,更新其快取記憶體1〇6 ,而非 一些外部記憶體和/或外部裝置。 此外,其快取記憶體控制器108,可容許任何數目和任 何類型可存取其快取記憶體106之機構,藉以遵循上述之寫 1237177 入分配空缺策略。舉例而言,其快取記憶體控制器108,可 具現一或多之處理器、一或多之輸入/輸出(I/O)裝置、和/ 或一或多之其他類型的類似機構有關之寫入分配空缺政 策。 5 在進一步討論快取記憶體之分配儲存行前,將進一步 說明上述系統100中之元件。該系統100中之元件,係可以 多種方式加以具現。 上述之系統100,可能包括一網路系統、電腦系統、晶 片上高積體輸入/輸出(I/O)子系統、或其他類似類型之通 10 訊、機器、電腦、或處理系統。 其處理器102可包括任何微處理器或中央處理單元 (CPU)之處理機構。此處理器102可能包括一或多個別之處 理器。該處理機102可包括一網路處理器、一通用型埋入式 處理器、或其他類似類型之處理器。 15 其快取記憶體106,可包括任何可使一處理機構(例 如,處理器102)與一主記憶體(例如,記憶體110)相橋接之 記憶體機構。此快取記憶體106,通常係具有一較其主記憶 體為快之存取時間。該快取記憶體106,可包括一類似靜態 RAM等專屬性快取隨機存取記憶體、緩衝記憶體、記憶體 20 排組、佇列器、或其他類似之記憶體機構。此快取記憶體 106,可包括一獨立性機構,或其主記憶體之一保留區段。 其快取記憶體106,可包括任何數目之層次。舉例而 言,此快取記憶體106,可包括一如此系統100中所顯示被 建立進其處理器102内之層次1 (L1)快取記憶體。該快取記 11 1237177 憶體106,亦可包括一層次2 (L2)快取記憶體,—可饋送資 料給L1快取記憶體之次級區域。此u快取記憶體,可使建 立進其處理器搬内,可使坐落在其處理器搬外之多晶片 包封模組内的-個分開之;上面,或可使在其處理器ι〇2 5外之一分開的晶片排組上面。 10 15 20 彼等指令和資料,通常係以區塊進出於其快取記憶體 106而相通訊。-區塊通常係論及—作為—通訊或處理 組的位元或位(组之集合。-區塊可包括任何數目之字 組’以及-字組可包括任何數目之位元或位元組。其快取 記憶體106,可將此等區塊儲存進_些類似仏圖之快取記 憶體200中所顯示者的快取記憶體儲存行内。 一快取記憶體儲存行,通常係包括—單一資料項。一 快取記憶體儲存行,可包含-對應於其記憶體iiq内—或多 之位址的資料。每-快取記憶贿存行可屬任何尺寸,^ 例而言32_位歧寬、64_位元組寬、或任何其他之尺寸(二 常係以位元和/或位元組來測量)。 其MMU m可包括-虛擬記憶體電路,其可將邏輯位 址轉譯成實際位址,以及可儲存彼等快取存取策略。此 MMU 112可如此-範例性系統咖中所顯示,4其處理器 舰之-部分,或者該MMUm可為—分開之機構或晶片。。 其MMU 112可包括許多記憶體,彼等可儲存_或多被 稱作分頁表之列表,彼等可使其快取記憶㈣㈣之資料的 虛擬位址,與此資料在其記憶體⑽内之實際位址相匹配'。 該等分頁表,亦可組織其快取記憶體1〇6内之區塊的定義, 12 1237177 以供其核心104内所包括之程式114建立用。該等稱作屬性 位元之定義,可界定出該等分頁表中之每一登錄項有關的 區塊特性,諸如可快取式/不可快取式和各種不同之快取 存取策略。其核心104可將資料有關之請求傳送給 5 n2,以及其MMU 112可基於該資料之主記憶體位址,來決 定該資料是否在其快取記憶體106内,或者該資料是否需要 自其3己憶體110取得。若該資料並不在其記憶體内,其 MMU 112將可發出一分頁出錯中斷。 其快取§己憶體控制器108 ’通常係包括任何可與其核心 10 104、快取記憶體106、和匯流排界面單元116相通訊之機 構。其快取記憶體控制器108,可包括一或多之晶片。 其匯流排界面卓元116 ’可包括任何可使資訊在其快取 記憶體控制器108與處理器匯流排118間相通之軟體、硬 體、或軟體與硬體的組合。 15 其程式114和ISR 122,可各包括任何數目和任何類型 可供其核心104實行和/或執行之指令、常式、應用程式、 和/或程式。 其處理器匯流排118(此系統1〇〇中所包括之任何其他 匯流排),可包括任何可在至少其處理器102與記憶體控制 20器120之間承載資訊的通訊通道、途徑、或鏈路。其匯流排 118可具有任何寬度,舉例而言,16-位元、32-位元、64-位元、專等,以及係可執行於任一速率之下,舉例而言, 33兆赫(MHz)、1〇〇 MHz、等等。此匯流排118可具有〆旁 頻帶特徵,其中之匯流排118,係包括一些各可同時地承載 13 1237177 資料和/或位址資訊之平行通道。 其記憶體110可包括任何之儲存機構。其記憶體11〇之 範例,係包括隨機存取記憶體(RAM),諸如動態RAM或靜 態RAM、唯讀記憶體(ROM)、快閃記憶體、磁帶、磁碟、 5緩衝A憶體、和其他類型之類似儲存機構。其記憶體11〇可 包括一類似RAM晶片等儲存機構,或任何儲存機構之組 合,諸如多重RAM晶片。 其記憶體控制器120,可包括任何可與其記憶體11〇相 通訊及加以管理之機構。其記憶體控制器12〇,可使包括在 10其記憶體110内,或可屬一獨立之機構。其記憶體控制器 120’可包括一或多之晶片。 15 20 此外,此系統100為便於解釋計係加以簡化。此系統1〇〇 可包括或多或少之元件,諸如-或多之儲存機構(快取記憶 體、記憶體、資料庫、緩衝記憶體、等等)、存取橋接器、 晶片集、圖示機構、顯示裝置、1/〇裝置、通訊鍵路(匯流排、 無線鏈路、等等),和其他類似類型可使包括在—類似於系 統100之電腦系統等系統中的元件。彼等1/〇裝置,通常係 包括被用來進出-電腦系統而傳遞資料之裝置。彼等1/0裝 置之範例,係包括滑鼠、鍵盤、列表機、類似監視器等顯 示裝置、磁碟驅動器、圖示裝置、遊戲操縱桿、遊戲操作 桿、Zip磁碟機、掃描器、CD驅動$、DVD驅動器、數據 機、照相機、視訊裝置、麥克風、和其他類似類型之内接、 外接、和内接/外接裝置。 第3圖係顯示—快取記憶體儲存行之範例性分配程序 14 1237177 300。雖然此程序300在說明上,係參照第1圖中所包括之元 件’此一或一包括相同、較多、或較少之元件的類似程序, 無論重新組織與否,可在第1圖之系統中,或在另一類似之 糸統中被執行。 5 通常,此程序300係例示一可以其MMU 112來加以控制 之寫入分配空缺快取記憶體策略。在因一核心寫入所致之 快取記憶體錯失中,其核心104在寫入當前之資料前,並不 會抓取來自其記憶體110之資料,使填入一快取記憶體儲存 行,而係將一快取記憶體儲存行内之所有資料標記為無 10效,以及將該資料寫至此快取記憶體儲存行,而將此寫入 之資料標記為有效。其核心104接著可自其快取記憶體儲存 行追回有效之資料,以及將一單一快取記憶體儲存行内之 資料,寫回至其記憶體110。 在此程序300中,其核心程式114,可將資料寫入(3〇2) 15至其快取記憶體1〇6内之一,,寫入分配空缺”可快取性區 域。其程式114可能寫至一寫入分配空缺可快取性區域,而 承受一核心寫入所致之快取記憶體錯失,舉例而言,其裎 式114有要寫至其快取記憶體106之資料,但因該資料原未 包括在其快取記憶體106内,而會承受一快取記憶體錯失。 2〇該區域將會被決定為一按照一MMU策略之寫入分配空缺 可快取性區域,以及通常係表示為一分頁表中之寫入空缺 快取記憶體區域。 其快取記憶體控制器1〇8,可在其快取記憶體1〇6内, 就該資料分配(3〇4)一快取記憶體儲存行,以及將此快取記 15 1237177 5 10 '思體儲存行内所含之諸,標記(鳥)為無效。其程式ιΐ4 ^精由將雜寫至錢取記龍儲存行,較填人(綱)此 ^取讀體儲存行内。由於在將資料寫至此快取記憶體储 ,仃之前,此快取記憶贿存行内之資料,係標記為無效, ,、快取記憶體控制器108,可容許其程式ιΐ4,將資料寫至 此快取記㈣儲存行。其程式114可將上述寫至此快取記憶 體儲存狀資料,標記⑽财效。其程式⑴可於其將資 料寫至。亥快取s己憶體儲存行時,將此資料標記為有效,或 者其可於其將所有或一特定部份之資料寫至該快取記憶體 儲存行時,將此資料標記為有效。 立其程式114可能會在所有|寫入之資料填入該快取記 憶體儲存行前承受-中斷。一中斷通常係論及有一需要立 即關切或有較當前正在執行之動作為高之優先權的事件。 若有-處理器中斷發生,其ISR122便會送出一信號給其程 I5式1U ’將-中斷傳訊給其程式叫,以使此程式U4能在其 ISR 122處理此中斷之後,而在重制始活動之前使結束或 暫時停止。 若在寫入資料期間並未發生中斷,則其程式114便能寫 入所有要寫至其分配之快取記憶體儲存行的資料(除非有 2〇任何類似電力損失、系統失靈、等等不尋常或干擾之活 動)。其程式114通常可在一手動之追回運作中,追回(312) 該快取記憶體儲存行。其程式114通常會追回該快取記憶體 儲存行内之所有位元組,雖然僅有部份之資料可被收回, 舉例而言,僅有彼等被標記為有效之位元組。一追回運作 16 1237177 通常係包括標記其快取記憶體儲存行内之所有資料為無 效,或否則標記其快取記憶體儲存行為可用於資料之讀取 和/或寫入。然而,當其程式114分配(3〇4)—快取記憶體儲 存行時,可能會發生此快取記憶體儲存行之追回動作,在 5該情況中,其程式並不會在此刻追回該快取記憶體儲存行。 其程式114可將來自上述快取記憶體儲存行所追回之 資料,寫回(314),舉例而言,拷貝或傳送給其記憶體ιι〇, 以致其記憶體110,係包括一最新版本之資料。此一寫回可 能發生在將資料寫至其快取記憶體儲存行之後的任一時 10 刻,包括此資料之實際追回前。 若其程序3GG係被用在-包括多重快取記憶體之系統 中,或許是用以支援多重處理器或一處理器與1/〇子系統之 組合中,任何通訊協定可被用來查對該等多重快取記憶 體,以及可維持每-連貫版本之記憶體位址。將資料寫: 15至其記憶體HO,亦可包括將其他版本之資料寫入至其他快 取記憶體,以使所有儲存一版本之資料的位置,可具有最 新版本之資料。 若在其程式114,完成將資料寫至其快取記憶體儲存 行,以及完成其核心104自執行其程式114,交換至執行其 2〇 ISR m’而服務其中斷之前,有一中斷發生,其核心取 將可存取其快取記憶體施,以及自上述分配之快取記憶體 儲存行,追回其程式114剛寫入之資料。其記憶體u^因 而可以部份健存行之資料來加以吏新。為協助確保使所有 資料寫至其快取記憶體106和記憶體11〇,其程式叫可在其 17 1237177 ISR 122完成該中斷之處理後,重新開始將資料寫至其快取 記憶體106。 當有一中斷發生時,其程式114將會追回(316) 其程式114在該中斷發生前將資料寫入至之被分配的 5 快取記憶體儲存行之所有的有效之位元組。當其程式114將 資料寫至其快取記憶體儲存行時,若此資料係被標記為有 效,則其程式114將可追回所有在上述之中斷發生前寫至其 快取記憶體儲存行的資料。其程式114可在將資料寫至其快 取記憶體儲存行之後的任一時刻,包括此資料之實際追回 10 前,將自該快取記憶體儲存行追回之資料,寫回(318)至其 記憶體110。其核心104可響應上述之中斷,自執行其ISR 122,而交換至處理(320)。 其程式114在配置上,可使全然不追回(316)及寫回 (318),或僅在該中斷被其ISR 122處理過後方追回及寫回, 15 因為追回和寫回,可能會在其中斷之處理中發生,或為一 明確之動作(例如,針對其快取記憶體儲存行内之資料的 替換,而手動清空其快取記憶體儲存行)。此外,追回和寫 回可能全然不會因上述中斷之發生而發生。 在處理該中斷之後,其核心104可返至執行其程式 20 114。其程式114可將資料寫至(322)上述中斷發生前未寫入 之原先分配的快取記憶體儲存行,而作為其原先寫入分配 空缺策略動作之完成。 無論其程式114是否將資料寫至其原先分配之快取記 憶體儲存行,其程式114可藉由就其在上述中斷發生前未寫 18 1237177 刀酉己λ〆。
10料,會寫至其記憶體110,以及其較早追回動作所寫入之資 至其快取記憶體106之資料, 存行,而重新開 將會如上文所立 106及寫回至其 份儲存行因一 快取記憶體儲 回,其餘之資半 會與上述中斷^ 其程式114追回 料,將不會被蓋寫。 第4圖係顯示一可針對一至一可支援一類似上述程序 300(第3圖)所例示之策略的寫入分配空缺策略之區域的讀 取來處理其快取記憶體錯失之範例性程序4〇0。雖然此程序 15 400在說明上,係參照第1圖中所包括之元件,此一或一類 似之程序,係包括相同、較多、或較少之元件的類似程序, 而無論重新組織與否,可在第1圖之系統中,或在另一類似 之系統中被執行。 在此程序400中,其程式II4係承受(402)—可支援一寫 20入分配空缺策略之區域(此一範例中之快取記憶體儲存行) 的核心讀取所致之快取記憶體錯失。其程式114將會決定出 (404),該區域内是否有任何資料包含有效資料。若否,則 其係一總體快取記憶體錯失,以及其程式114將可就其快取 記憶體106,按照一普通讀取分配策略’來處理(4〇6)上述之 19 1237177 快取記憶體錯失。 右輕柄實包含有效料,社収魏錯失,传 :中—對歧糾取記《料糾無《記為有效之資 記憶體儲存行,或者上述之讀取錯失,係—對應 怜|^ 體儲存行内無被標記為有效之資料的快取記 10 體儲存㈣某些被標記為有效之資料的部份錯失。其程 式m將會自其記MllG(或自其財最近版本之資料的 處=器匯流_8上面之任何域),抓取(_)—#前版本 之貝料。其程式114接著亦可以其快取記憶贿存行内之當 則有效資料,來更新(樣)上述抓取之資料。其程式叫亦可 使此更新過之資料,被拷貝(412)回至該快取記憶體儲存 行,以及可標記此快取記憶體儲存行為讀取有效。配合— 貧料有效標記,一讀取有效標記,將僅容許更新過之資料, 寫回至其記憶體110。 此等所說明之技術,並不限於任何特定之硬體或軟體 組態;彼等係玎適用於任何電腦或處理之環境。此等技術 可以硬體、軟體或兩者之組合來加以具現。此等技術可以 —些可在類似行動電腦、固定式電腦'個人數位助理、和 一些各包括一處理器、一可供此處理器讀取之儲存媒體(包 20 括揮發性和非揮發性記憶體和/或儲存元件)、至少之一輪 入裝置、和一或多之輸出裝置的類似裝置等可程式規劃式 機器上面執行之程式中被具現。其程式碼係使施加至一使 用其輸入裝置輸入之資料,藉以執行此等所說明之功能, 以及產生一輸出貧机。此輸出貧机係使施加至一或多之許 1237177 出裝置。 各私式可使具現為一咼階程序或物件導向程式規劃語 吕,使與一機器系統相通訊。然而,此等程式若有需要係 可使具現為組合語言或機器語言。在任_情況中,該語言 5 可為一被編譯或被解譯之語言。 每一此等程式可使儲存在一儲存媒體或裝置上面,舉 例而言,一光碟唯讀記憶體(CD_R〇M)、硬碟、軟碟、或類 似之媒體或裝置,其可供-通用或專用可程式規劃機器讀 取,以便在此儲存媒體或裝置被電腦讀取而執行此文件中 10所說明之程序時,可配置或運作此機器。此系統亦可被視 為要使具現為-可以-程式來加以配置之機器可讀取式餘 存媒體,其中如此配置之儲存媒體,係可使一機器在一特 定及預定之方式中運作。 其他之實施例,係在下文之申請專利範圍的界定範圍 15 内。 【圖式簡單說明】 第1圖係一包括一快取記憶體之範例性處理系統; 第2圖係顯示一包括快取記憶體儲存行之快取記憶體· 第3圖係顯示一可分配快取記憶體儲存行之範例性程 20 序;而 第4圖則係顯示一可針對一讀取來處理快取記憶體錯 失之範例性程序。 【圖式之主要元件代表符號表】 100···處理系統 21 1237177 102.. .處理器 104…處理器核心 106.. .快取記憶體 108.. .快取記憶體控制器 110…記憶體 112.·.記憶體管理單元(MMU) 114·.·程式
116.. .匯流排界面單元 118.. .處理器匯流排 120.. .記憶體控制器 122.. .中斷軟體常式(ISR) 200.. .快取記憶體 202⑴-202(X)…快取記憶體儲存行 204(1)-204(Y)···位元組
22

Claims (1)

1237177 拾、申請專利範圍: 第92132G5G號中請”請專利範圍修正本 1· 一種用於分配快取記憶體儲存行之方法 承受一快取記憶體寫入錯失;以及 在承受該快取記憶體寫入錯失之後
年月g修正其係包括: 將一儲存在 記憶體位址處之資料,寫至-包括無效資料和-在與此 。己1«體位址不同之s己憶體位址處的資料之快取記憶體 儲存行。 10 15 20 2·如申—請專利範圍第旧之方法,其中進—步係包括,在 將貝料寫至5彡快取記憶體健存行之後,以此寫至該快取 記憶體儲存行之資料,來更新-主記憶。 3·如申請專利範,1項之方法,其中進-步係包括,在 承受該快取記㈣“錯失讀,賴資料分配-快取記憶體内所包括之_快取記憶體儲存行,以及將該資料寫至該快取記憶體儲存行。 4·如申請專利範圍第㈣之方法,其中進—步係包括: 在將D亥貝料寫至錢取記憶體儲存行之前,將此快 取記憶體健存行内所包括之資料標記為無效;以及在將該資料寫至雜取記憶體儲存行之後,將該資 料標記為有效。 5.如申請專利範圍第4項之方法,其中進-步係包括,僅 以遠快取記龍儲存行内被標記財效之資料,來更新一主記憶體。
6·如申請專利範圍第〗項之方法 其中進一步係包括: 23 1237177 在對一快取記憶體區域讀取資料時,承受一快取記 憶體讀取錯失;以及 右$玄快取g己憶體區域’包括任何有效資料,則 抓取該資料之當前版本; 以遠有效資料,來更新該抓取之資料; 將該更新過之資料,拷貝至該快取記憶體區域; 以及 標記該快取記憶體區域為有效。
如申請專利範圍第1之方法,其中進一步係包括,若 正當將該資料寫至該快取記憶體之際,如果有—中斷發 生’以及若财要寫至職取記憶體财狀諸,^ 此中斷之别亚未被寫至該快取記憶體儲存行,則 分配該快取記憶體内所包括之-第二快取記憶體 儲存行; 1 將該第二快取記憶體儲存行内所包括之資料標記 為無效;以及 20 儲存Γ中斷前未寫人之資料,寫至該第 快取記憶體
8.如申請專利範圍第7項之方法其中進一步係包括: 追回該第二快取記憶體儲存行;以及 9如由f該追回之_,寫至-主記憶體。 專利範圍第1項之方法, 包括無效之資料。 種包括一機器貝嫖肢之物品,該媒體係包含一些 其中該快取記憶體係僅 機 24 1237177^^5 I Μΐύ 器可執行指令,該等指令可使一機器進行下列動作: , 承受一快取記憶體寫入錯失;以及 在承受該快取記憶體寫入錯失之後,將一儲存在一 記憶體位址處之資料,寫至一包括無效資料和一在與該 _ 5 記憶體位址不同之記憶體位址處的資料之快取記憶體 儲存行。 11.如申請專利範圍第10項之物品,其中進一步係包括,可 使一機器在將該資料寫至該快取記憶體儲存行之後,以 此寫至該快取記憶體儲存行之資料,來更新一主記憶。 · 10 12.如申請專利範圍第10項之物品,其中進一步係包括,可 使一機器在承受一快取記憶體寫入錯失之後,就該資料 分配一快取記憶體内所包括之一快取記憶體儲存行,以 及將該資料寫至該快取記憶體儲存行。 13.如申請專利範圍第10項之物品,其中進一步係包括可使 15 一機器: 在將資料寫至該快取記憶體儲存行之前,將該快取 記憶體儲存行内所包括之資料標記為無效;以及 · 在將該資料寫至該快取記憶體儲存行之後,將該資 料標記為有效。 20 14.如申請專利範圍第13項之物品,其中進一步可使一機器 僅以該快取記憶體儲存行内被標記為有效之資料,來更 新一主記憶體。 15.如申請專利範圍第10項之物品,其中進一步可使一機 器: 25 1237177 在對一快取記憶體區域讀取資料時,承受一快取記 憶體讀取錯失;以及 若該快取記憶體區域,包括任何有效資料,則 抓取該資料之當前版本1 ; 5 以該有效貢料來更新此抓取之貢料, 將此更新過之資料拷貝至該快取記憶體區域;以 及 標記該快取記憶體區域為有效。 16.如申請專利範圍第10項之物品,其中進一步可使一機 10 器,正當將資料寫至該快取記憶體儲存行之際,如果有 一中斷發生,以及若所有要寫至該快取記憶體儲存行之 資料,在此中斷之前並未被寫至該快取記憶體儲存行, 則 分配該快取記憶體内所包括之一第二快取記憶體 15 儲存行; 將該第二快取記憶體儲存行内所包括之資料標記 為無效;以及 將該中斷前未寫入之資料寫至此第二快取記憶體 儲存行。 20 17.如申請專利範圍第10項之物品,其中進一步可使一機 器: 追回該第二快取記憶體儲存行;以及 將該追回之資料寫至一主記憶體。 18.如申請專利範圍第10項之物品,其中該快取記憶體只包 26 123717]辦細片日修正 括無效資料。 19· -種用於分配快取記憶體儲存行之系統,其係包括: 一快取記憶體;和 一快取記憶體控制器,其在配置上可容許一處理器 5 核心’將f料寫至該快取記Μ内所包括僅含有無效資 料之快取記憶體儲存行。 20.如。申請專利範圍第19項之系統,其中進一步係包括一處 理為裝置,其係包括該等處理器核心、快取記憶體,和 快取記憶體控制器。 W^請專利範圍第_之系統,其中該快取記憶體控制 口口在配置上亦可容許該處理器核心自動將資料寫至該 快取記憶體儲存行,而不必|先將有效資料,填入該快 取記憶體儲存行。 、 、 22·—種用於分配快取記憶體儲存行之設備,其係包括: 15 一快取記憶體控制器,其在配置上可容許: 刀配一快取記憶體内之一快取記憶體儲存行; 將該快取記憶體儲存行内所包括之所有資料,標 記為無效; 將資料寫至該快取記憶體儲存行; 20 將寫至該絲記憶體儲存行之資料標記為有效; 追回該快取記憶體儲存行;以及 將該追回及標記為有效之資料寫至—記憶體。 23.如申請專利範圍第22項之設備,其中該快取記憶體錯 失’係發生於該快取記憶體控制器容許分配該快取記憶 27 12371^74··修正: I ^ > Is · I _ 體儲存行之前。 24·如申a月專利範圍第22項之設備,其中該快取記憶體控制 器在配置上亦可容許’如果正當將資料寫至該快取記憶 體儲存行之際,如果有一中斷發生,以及若所有要寫至 5 該快取記憶體儲存行之資料,在此中斷之前並未被寫至 該快取記憶體儲存行,則 分配該快取記憶體内所包括之一第二快取記憶體 儲存行;
將該第二快取記憶體儲存行内所包括之資料標記 1〇 為無效;以及 將該中斷前未寫入之資料寫至此第二快取記憶體 儲存行。 ^申明專利|&圍第22項之設備,其中該快取記憶體控制 15 ^在配置上,亦可容許將資料寫至該快取記憶體儲存 订’而不必首先以來自該記憶體之資料,填人該快取記 十思體儲存行。
26· ^申請專利範圍第22項之設備,其中該快取記憶體控制 在配置上,亦可容許自該處理器核心,將資料寫至該 快取記憶體儲存行。 / 20 27.—種用於分配快取記憶體儲存行之方法,其係包括: 分配-快取記憶體内所包括之一快取記憶體儲存 行; 將該快取記憶體儲存行内所包括之資料標記為無 28 1237¾¾,以修正 將貧料寫至該快取記憶體儲存行; 將寫至該快取記憶體儲存行之資料標記為有效; 追回該快取記憶體儲存行;以及
將该追回及標記為有效之資料寫至—記憶體。 Ί月專利祀圍第27項之方法’其中進—步係包括在分 配該快取記鐘儲存行之前,承受_快取記憶體錯失。 改如申請專利範圍第27項之方法,其中進一步係包括,正 當將資料寫至該快取記憶體儲存行之際,如果有一中斷 10 發生,⑽若财要寫至該錄記丨tiff«行之資料, 在此中斷之前並未被寫至其快取記憶體儲存行,則 分配該快取記憶體内所包括之—第二快取記憶體 將該第二快取記憶體儲存行内所包括之資料標記 為無效;以及 將及中斷别未寫人之資料,寫至該第二快取記憶體 儲存行。
如申請專利範圍第27項之方法,其中進—步係包括,將 貝枓寫至該快取記憶體儲存行,而不必首以來自該記 憶體之㈣’填人該錄記Μ储存行。 29 1237177 年厶月岔曰 修正; /——100 /——102
處理器匯流排
TW092132050A 2002-12-30 2003-11-14 Allocating cache lines TWI237177B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/335,204 US7197605B2 (en) 2002-12-30 2002-12-30 Allocating cache lines

Publications (2)

Publication Number Publication Date
TW200417857A TW200417857A (en) 2004-09-16
TWI237177B true TWI237177B (en) 2005-08-01

Family

ID=32655290

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092132050A TWI237177B (en) 2002-12-30 2003-11-14 Allocating cache lines

Country Status (5)

Country Link
US (1) US7197605B2 (zh)
EP (1) EP1579332A2 (zh)
AU (1) AU2003291822A1 (zh)
TW (1) TWI237177B (zh)
WO (1) WO2004061676A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI594123B (zh) * 2014-12-14 2017-08-01 上海兆芯集成電路有限公司 基於記憶體存取類型以組塊來分配的快取記憶體

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529878B2 (en) 2005-04-29 2009-05-05 Sigmatel, Inc. Method and system of memory management
US7555591B2 (en) * 2005-04-29 2009-06-30 Sigmatel, Inc. Method and system of memory management
EP2115598B1 (en) * 2007-01-25 2011-03-30 Nxp B.V. Hardware triggered data cache line pre-allocation
US8341355B2 (en) 2010-05-25 2012-12-25 International Business Machines Corporation Reducing energy consumption of set associative caches by reducing checked ways of the set association
US8825982B2 (en) * 2010-06-10 2014-09-02 Global Supercomputing Corporation Storage unsharing
WO2014196976A1 (en) * 2013-06-06 2014-12-11 Empire Technology Development, Llc Shared cache data movement in thread migration
CN107111552B (zh) * 2015-04-03 2021-01-08 慧与发展有限责任合伙企业 用于版本控制的方法、版本控制器以及机器可读介质
US11036644B2 (en) * 2017-02-02 2021-06-15 Arm Limited Data processing systems
TWI681293B (zh) 2018-01-10 2020-01-01 瑞昱半導體股份有限公司 暫存記憶體處理方法、暫存記憶體程式與記憶裝置
CN110765034B (zh) * 2018-07-27 2022-06-14 华为技术有限公司 一种数据预取方法及终端设备
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
PL3938894T3 (pl) 2019-03-15 2024-02-19 Intel Corporation Zarządzanie pamięcią wielokafelkową dla wykrywania dostępu krzyżowego między kafelkami, zapewnianie skalowanie wnioskowania dla wielu kafelków i zapewnianie optymalnej migracji stron
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
EP3938888A1 (en) 2019-03-15 2022-01-19 INTEL Corporation Systolic disaggregation within a matrix accelerator architecture
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
US11847062B2 (en) * 2021-12-16 2023-12-19 Advanced Micro Devices, Inc. Re-fetching data for L3 cache data evictions into a last-level cache

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825538A1 (en) 1996-08-16 1998-02-25 Lsi Logic Corporation Cache memory system
US6108752A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
FR2778254B1 (fr) * 1998-04-29 2002-02-15 Texas Instruments France Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
US6438660B1 (en) * 1997-12-09 2002-08-20 Intel Corporation Method and apparatus for collapsing writebacks to a memory for resource efficiency
US6564301B1 (en) * 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US6651143B2 (en) * 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
US6859904B2 (en) * 2001-05-11 2005-02-22 Sun Microsystems, Inc. Apparatus and method to facilitate self-correcting memory
US20040024969A1 (en) * 2002-07-31 2004-02-05 Texas Instruments Incorporated Methods and apparatuses for managing memory
WO2004059491A1 (en) * 2002-12-30 2004-07-15 Intel Corporation Cache victim sector tag buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI594123B (zh) * 2014-12-14 2017-08-01 上海兆芯集成電路有限公司 基於記憶體存取類型以組塊來分配的快取記憶體

Also Published As

Publication number Publication date
AU2003291822A8 (en) 2004-07-29
AU2003291822A1 (en) 2004-07-29
US7197605B2 (en) 2007-03-27
TW200417857A (en) 2004-09-16
EP1579332A2 (en) 2005-09-28
WO2004061676A2 (en) 2004-07-22
WO2004061676A3 (en) 2006-02-02
US20040128452A1 (en) 2004-07-01

Similar Documents

Publication Publication Date Title
TWI237177B (en) Allocating cache lines
TWI741671B (zh) 記憶體系統
US20200264980A1 (en) Apparatus and method of handling caching of persistent data
US9910602B2 (en) Device and memory system for storing and recovering page table data upon power loss
US6457104B1 (en) System and method for recycling stale memory content in compressed memory systems
TWI391821B (zh) 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法
US8639901B2 (en) Managing memory systems containing components with asymmetric characteristics
US6795897B2 (en) Selective memory controller access path for directory caching
TW508575B (en) CLFLUSH micro-architectural implementation method and system
US8291175B2 (en) Processor-bus attached flash main-memory module
RU2427892C2 (ru) Способ и устройство для установки политики кэширования в процессоре
TW200426675A (en) Cache allocation
EP2455865A1 (en) Memory management device
CN107818052B (zh) 内存访问方法及装置
US20130091331A1 (en) Methods, apparatus, and articles of manufacture to manage memory
US20090164715A1 (en) Protecting Against Stale Page Overlays
TWI298126B (en) Method of executing an instruction by a microprocessor in a multiprocessor environment, recording medium comprising a compiler for generating a set of computer executable instructions, and multiprocessor data processing system
JPWO2006107095A1 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
JP2004192615A (ja) ハードウェア管理仮想−物理アドレス変換機構
JP5583274B2 (ja) コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス
KR101893966B1 (ko) 메모리 관리 방법 및 장치, 및 메모리 컨트롤러
US10474575B2 (en) Cache-based communication between execution threads of a data processing system
US11650760B2 (en) Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command
US7523290B2 (en) Very high speed page operations in indirect accessed memory systems
JPWO2010032433A1 (ja) バッファメモリ装置、メモリシステム及びデータ読出方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees