TWI380173B - Data processing system, cache memory and method for providing cache coherency - Google Patents

Data processing system, cache memory and method for providing cache coherency Download PDF

Info

Publication number
TWI380173B
TWI380173B TW096100418A TW96100418A TWI380173B TW I380173 B TWI380173 B TW I380173B TW 096100418 A TW096100418 A TW 096100418A TW 96100418 A TW96100418 A TW 96100418A TW I380173 B TWI380173 B TW I380173B
Authority
TW
Taiwan
Prior art keywords
memory
consistency
cache
state
block
Prior art date
Application number
TW096100418A
Other languages
English (en)
Other versions
TW200813715A (en
Inventor
Leo J Clark
Guy L Guthrie
William J Starke
Jeffrey A Stuecheli
Derek E Williams
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200813715A publication Critical patent/TW200813715A/zh
Application granted granted Critical
Publication of TWI380173B publication Critical patent/TWI380173B/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/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

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

1380173 九、發明說明: 【發明所屬之技術領域】 本發明大體係關於資料處理,且詳言之,係關於一快取 一致性資料處理系統中之資料處理。 【先前技術】 習知對稱多處理器(S Μ P)電腦系統(諸如伺服器電腦系統) 包括均耦接至通常包含一或多個位址資料及控制匯流排 之系統互連的多個處理單元。系統記憶體耦接至系統互 連,該系統記憶體表示多處理器電腦系統中之最低層之揮 發性記憶體且可由所有處理單元加以存取以用於讀取及寫 入存取。為減少對常駐於系統記憶體中之指令及資料的存 取延遲,每-處理單元通常由各別多層快取記憶體階層進 一步支援,該多層快取記憶體階層之較低層可由一或多個 處理器核心共用。 因為多個處理器核心可能會要求對資料之同一快取列的 寫入存取且因為經修改之快取列並非立即與系統記憶體同 步,所以多處理器電腦系、统之快取記憶體階層通常建構快 取一致性協定以確保各個處理器核心對系統記憶體之内容 的”視野"的至少最小水準之一致性。詳言之,快取一致2 至少要求在處理單元存取記憶體區塊之複本且隨後存取記 憶體區塊之經更新複本之後,處理單元不能再次存=記憶 體區塊之舊複本。 快取一致性協定通常界定與每一快取記憶體階層之快取 列相關聯而儲存的一組一致性狀態以及用以在快取記憶體 117207.doc -6- 1380173 階層之間傳達快取狀態資訊的一組一致性訊息。在典型建 構中,一致性狀態資訊採取熟知的修改,排除,共用,作 廢(MESI)協定或其變體之形式,且一致性訊息指示記憶體 存取請求之請求者及/或接受者之快取記憶體階層中的協 定界定一致性狀態轉變。 在某些快取一致性協定中,回應於隨後操作而不精確地 形成及/或更新一或多個一致性狀態。結果,此等一致性 狀態可能不準確地反映相關聯記憶體區塊的系統範圍的一 致性狀態。本發明認定,不精確或不準確一致性狀態之存 在即使不引起一致性錯誤,亦可在減少或消除不精確一致 性狀態之情泥下導致執行不需要的系統操作。 【發明内容】 鑒於前述内容,本發明提供一種經改良之快取一致性資 料處理系統、快取系統及在快取一致性資料處理系統中之 資料處理之方法。 在一實施例中,一快取一致性資料處理系統包括至少第 一及第二一致性區域。在該資料處理系統之該第一一致性 區域内的一第一快取記憶體中,一記憶體區塊係保持於一 與一位址標記及--致性狀態欄位相關聯之儲存位置。判 定一予以指定與該記憶體區塊相關聯之一位址之本地系統 記憶體是否位於該第——致性區域内。若不是,則將該一 致性狀態攔位設定為一狀態,該狀態指示該位址標記有 效,該儲存位置不含有效資料,該第一一致性區域不含本 地系統記憶體’且在形成該狀態之後,在該第一一致性區 117207.doc 1380173 域外快取該記憶體區塊。 本發明之所有目的、特徵及優點將在 得顯而易見。 【實施方式】 I.示範性資料處理系统
以下實施方式中變 現參看諸圖’且詳言之參看圖丨,說明根據本發明之快 取一致對稱多處理器(SMP)資料處理系統之示範性實施例 的高層方塊I如所展示的,f料處理以⑽包括用以 處理資料及指令的多個處理節點1〇2a、⑽。處理節點 l〇2a、1〇2b耦接至一系統互連11〇以用以傳遞位址資料 及控制資訊。可將系統互連11〇建構為(例如)匯流排互連、 交換互連或現合互連。 在所描繪之實施例中,將每_處理節點⑽實現為含有 四個處理單it H)4a至购之多晶片模組(mcm),較佳將每 -處:單元實現為各別積體電路。每一處理節點ι〇2内之 處理單元104a至l〇4d經耦接以藉由一局域互連ιΐ4而通 信,該局域互連114如同系統互連11〇 一樣可藉由一或多個 匯流排及/或交換器来建構。 耦接至每一局域互連114之裝置不僅包括處理單元ι〇4, 而且包括一或多個系統記憶體1〇8&至1〇8d。常駐於系統記 憶體108中之資料及指令一般可由資料處理系統ι〇〇之任一 處理節點102中的任一處理單元1〇4中之處理器核心加以存 取及修改。在本發明之替代實施例中,一或多個系統記憶 體108可搞接至系統互連11〇而非耦接至一局域互連〖Μ。 117207.doc 熟習此項技術者應瞭解,SMPf料處理f、統⑽可包括 許多額外未說明之組件,諸如互連橋接器、非揮發性健 存、用於錢路或附加m連接的料。㈣此等額外 組件對於本發明之理解並非必要,所以其未在…中加以 說月或在本文中進步加以討論'然而,亦應瞭解,由本 發明提供之增強可應用於各種架構之快取―致資料處理系 統且絕不限於圖1巾所朗之普遍資料處理系統架構。 現參看圖2,描繪根據本發明之一示範性處理單元1〇4的 較詳細方塊圖。在所描繪之實施例中,每一處理單元ι〇4 包括用以獨立處理指令及資料之兩個處理器核心2〇〇a、 200b。每-處理器核心、2〇〇包括心提取並排序用於執行 之指令的至少一指令定序單元(ISU)2〇8及用以執行指令之 一或多個執行單兀224 ^如下文進一步論述的,執行單元 224較佳包括一載入儲存單元(LSU)228,載入儲存單元 (LSU)228用以執行參照記憶體區塊之記憶體存取指令或引 起參照記憶體區塊之操作的產生。 每一處理器核心200之操作由多層揮發性記憶體階層支 援,該多層揮發性記憶體階層在其最低層具有共用系統記 憶體l〇8a至108d,且在其上層具有一或多層快取記憶體。 在所描繪之實施例中,每一處理單元丨〇4包括一整合記憶 體控制器(IMC)206 ’該整合記憶體控制器206回應於自處 理器核心200a至200b接收之請求及由監視程式(s)222在局 域互連114上監視到的操作而控制對系統記憶體1〇8&至 108d之各別系統記憶體在其處理節點1 〇2内的讀取及寫入 117207.doc 1380173 存取。IMC 206包括基址暫存器(BAR)邏輯240,該BAR邏 輯240包括界定IMC 206所負責之位址及同一處理節點1〇2 中之其他IMC 206所負責之位址的範圍暫存器。 在說明性實施例中’處理單元104之快取記憶體階層包 括每一處理器核心200内之一儲存貫穿層一(L1)快取記憶 體226及一由處理單元104之所有處理器核心2〇〇a、200b共 用之層二(L2)快取記憶體230。L2快取記憶體230包括一 L2 陣列及目錄234以及包含一主控器23 2及一監視程式23 6之 快取控制器。主控器232起始局域互連114及系統互連no 上之異動且回應於自相關聯處理器核心200a至200b接收之 記憶體存取(及其他)請求而存取L2陣列及目錄234。監視 程式236監視局域互連114上之操作,提供適當回應,並執 行操作所需之對L2陣列及目錄234的任何存取。監視程式 236包括如同BAR邏輯240—樣指示局域處理節點1〇2中之 IMC 206所負責之位址的BAR邏輯238。 儘管所說明之快取s己憶體階層僅包括兩層快取記憶體, 但熟習此項技術者應瞭解,替代實施例可包括可完全包 括、部分包括或不包括上層快取記憶體之内容的額外層 (L3、L4、L5等)之晶片上或晶片外直插式或後備快取記憶 體。 每一處理單元104進一步包括回應邏輯21〇之一執行個 體’該執行個體建構維持資料處理系統100内之快取一致 性的分佈一致性信號傳輸機構之一部分。此外,每—處理 單元104包括用以選擇性地在其局域互連114與系統互連 117207.doc •10· 110之間轉發通信之互連邏輯212之一執行個體。最後,每 一處理單元104包括一支援一或多個輸入/輸出(1/〇)裝置 (諸如1/0裝置216)之附接的整合1/〇控制器214。1/〇控制器 214可回應於I/O裝置2 16之請求而在局域互連114及/或系統 互連110上發出操作》 現參看圖3,說明L2陣列及目錄234之一示範性實施例的 較詳細方塊圖《如所說明的,L2陣列及目錄234包括一集 合關聯式L2快取記憶體陣列300及L2快取記憶體陣列3〇〇之 内谷之L2快取目錄302。如在習知集合關聯式快取記憶體 中,系統記憶體108中之記憶體位置利用系統記憶體(實)位 址内之預定索引位元而被映射於快取記憶體陣列3〇〇内之 特定適合類。儲存於快取記憶體陣列3〇〇内之特定快取列 被記錄於快取目錄302中’快取目錄302針對快取記憶體陣 列300中之每一快取列含有一目錄項。如熟習此項技術者 所瞭解的’快取目錄302中之每一目錄項至少包含一藉由 利用相應實位址之標記部分而規定儲存於快取記憶體陣列 300中之特定快取列的標記欄位3〇4、一指示該快取列之一 致性狀態的狀態欄位306,及一指示該快取列相對於同一 適合類中之其他快取列之替換次序的最近最少使用(LRU) 欄位308。 π.示範性操作 現參看圖4,描繪圖1之資料處理系統100的局域或系統 互連110、114上之示範性操作的時空圖。該操作開始於L2 快取記憶體230之主控器232(或諸如1/〇控制器214之另一主 117207.doc 11 1380173 控器)在局域互連114及/或系統互連110上發出一請求402 時。請求402較佳包括一指示所要存取之類型的異動類型 及一指示待由該請求存取之資源的資源識別符(例如,實 位址)。請求之共同類型較佳包括以下表I中所述之類型。
表I 請求 描述 讀取 請求記憶體區塊之映像之複本以用於查詢 具修改意向之讀 取(RWITM) 請求記憶體區塊之映像之唯一複本用以更新(修改) 該唯一複本並要求破壞其他複本(若存在) 資料主張 (DCLAIM) 請求權限以將記憶體區塊之現存唯查詢複本政 唯一複本用以更新(修改)該現存唯查詢複本並要求 破壞其他複本(若存在) 資料快取記憶體 區塊清零(DCBZ) 請求權限以無關於記憶體區塊之目前狀態而建立其 新的唯一快取複本並隨後修改其内容;要求破壞立 他複本(若存在) μ 逐出 將記憶體區塊之映像自較高層記憶體複製至較 記憶體以準備破壞較高層複本 取消 ^制破壞未保持於主控器之快取記憶體階層 憶體區塊之快取複本(若存在) 寫入 請求權限以無關於記憶體區塊之目前狀態而建立其 新的唯一複本,且立即將記憶體區塊之映像自較^ 層記憶體複製至較低層記憶體以準備破壞較高層複 本 部分寫入 凊求權限以無關於部分記憶體區塊之目前狀態而建 立其新的唯一複本,且立即將部分記憶體區塊之映 像自較高層記憶體複製至較低層記憶體以準備破壞 較高層複本 請求402由L2快取記憶體23〇之監視程式236以及記憶體 控制器206之監視程式222(圖丨)接收。一般地(存在某些例 外),與請求402之主控器232相同之L2快取記憶體23〇中的 監視程式236並不監視請求4〇2(亦即,一般不存在自監 117207.doc •12- 1380173 視)’此係因為一請求402僅當—處理單元1〇4不能在内部 向請求402提供服務時而傳輸於局域互連114及/或系統互 連110上。接收請求402之每一監視程式222、236可向請求 402提供一表示至少該監視程式之回應的各別部分回應 406。記憶體控制器206内之監視程式222基於(例如)監視程 式222是否對請求位址負責及監視程式222是否具有可用以 向清求提供服務之資源而判定待提供之部分回應4〇6。L2 快取s己憶體2 3 0之監視程式2 3 6可基於(例如)該L2快取記憶 體230之L2快取目錄302之可用性、監視程式236内之用以 處理請求之監視邏輯執行個體的可用性,及與L2快取目錄 302中之請求位址相關聯一致性狀態而判定該監視程式236 之部分回應406。 藉由回應邏輯210之一或多個執行個體階段性或一次性 地在邏輯上組合監視程式222及236之部分回應以判定一對 請求402之系統範圍的組合回應(CR)410。以下述範圍限制 為條件,回應邏輯21 0經由其局域互連114及/或系統互連 110向主控器232及監視程式222、236提供組合回應410以 指示對請求402之系統範圍的回應(例如,成功、失敗、再 試等)。若CR 410指示請求402成功,則CR 410可指示(例 如)被請求記憶體區塊之資料源、被請求記憶體區塊待由 主控器232快取之快取狀態及是否需要用以使一或多個L2 快取記憶體230中之被請求記憶體區塊無效之"清除"(例 如,取消)操作。 回應於組合回應410之接收,主控器232及監視程式 117207.doc -13- 1380173 222、23 6中之一或多者通常執行一或多個操作以向請求 402提供服務《此等操作可包括向主控器232供應資料、使 一或多個L2快取記憶體230中所快取之資料之一致性狀態 無效或以其他方式更新該一致性狀態、執行逐出操作、將 資料寫回系統記憶體108等。若請求402需要,則可在由回 ,· 應邏輯210產生組合回應410之前或之後將被請求之記憶體 區塊或目標記憶體區塊傳輸至主控器232或自主控器232傳 輸。 在以下描述中,一監視程式222、236對請求之部分回應 及由該監視程式回應於請求及/或請求之組合回應所執行 之操作將以參照該監視程式相對於由請求所規定之請求位 址為一致性最高點(HPC)、一致性最低點(LPC)還是既不為 HPC亦不為LPC的方式來加以描述。在本文中,將LPC界 疋為用作記憶體區塊之儲存庫的控制點之記憶體裝置或 1/0裝置。在無記憶體區塊之HPC時,LPC控制對保持記憶 • 體區塊之真映像的儲存器之存取且具有允許或拒絕產生言己 隐體區塊之額外快取複本之請求的權限。對於圖1及圖2之 資料處理系統實施例中之典型請求,LPC將為保持參照記 • 憶體區塊之系統記憶體108的記憶體控制器200。在本文 中將HPC界定為快取記憶體區塊(其可或可不與lPC處之 相應記憶體區塊一致)之真映像且具有允許或拒絕修改記 隐體區塊之請求的權限的唯一識別裝置。描述性地,Hpc 亦可回應於不修改記憶體區塊之操作而向請求者提供記憶 體區塊之複本。因此,對於圖1及圖2之資料處理系統實施 117207.doc 1380173 例中之典型請求,HPC(若存在)將為一L2快取記憶體230。 儘管可利用其他指示符來命名記憶體區塊之HPC,但如以 下參看表II所進一步描述的,本發明之較佳實施例藉由利 用L2快取記憶體230之L2快取目錄302内的選定快取一致性 狀態來命名記憶體區塊之HPC(若存在)。 仍參看圖4,一請求402中所參照之記憶體區塊之HPC(若 存在)或在無HPC,時之記憶體區塊之LPC較佳具有在一保護 視窗404a期間回應於一請求402而保護記憶體區塊之所有 權轉移的責任。在圖4中所展示之示範性情境中,為由請 求402之請求位址規定的記憶體區塊之HPC的監視程式236 在自該監視程式236判定其部分回應406之時間延伸直至監 視程式236接收組合回應4 1 0之保護視窗404a期間保護被請 求記憶體區塊之所有權至主控器232之轉移。在保護視窗 404a期間,監視程式236藉由向規定相同請求位址之其他 、 請求提供部分回應406而保護所有權之轉移,該等其他請 求防止其他主控器在所有權已成功轉移至主控器232之前 獲取所有權。主控器232同樣起始一保護視窗404b以保護 該主控器232在接收組合回應410之後對請求402中所請求 之記憶體區塊之所有權。
因為監視程式222、236均具有用以處理上述CPU及I/O請 求之有限資源,所以可能存在若干不同程度之部分回應及 相應CR。舉例而言,若對被請求之記憶體區塊負責之記 憶體控制器206内之監視程式222具有可用以處理請求之佇 列,則監視程式222可回應以指示其能夠用作請求之LPC 117207.doc 15
的部分回應。冥―+ T 奸求之ϋ 若監視程式222不具有可用以處 ^月 7 ,則監視程式222可回應以指示其為記憶體 區塊之LPC’但當前不能向請求提供服務之部分回應。 β類似地’ L2快取記憶體230中之監視程式236可要求可獲 得之監視邏輯之執行健並對L2快取目錄3G2進行存取以 處^請求。無對此等資源之任一者(或兩者)之存取導致傳 輸卸因於無所需資源而目前不能向請求提供服務之信號的 部分回應(及相應的CR)。 在下文中,吾人稱提供指示監視程式具有目前向請求提 供服務所需之可獲得之所有内部資源的部分回應之監視程 式222、236(若需要)用以”肯定”請求。對於監視程式236, 肯定經監視之操作的部分回應較佳指示該監視程式2 3 6處 之被請求或目標記憶體區塊之快取狀態。吾人可稱提供指 示監視程式23 6不具有目前向請求提供服務所需之可獲得 之所有内部資源的部分回應之監視程式222、236 "可能隱 藏"或"不能"向請求提供服務❶此監視程式236 "可能隱藏" 或"不能"向請求提供服務,此係因為監視程式236歸因於 缺乏可獲付之監視邏輯之執行個體或對L2快取目錄302之 目前存取而不能在以上所界定之意義上"肯定"請求且自其 他主控器232及監視程式222、236之觀點來看具有未知之 一致性狀態。 III.資料傳遞區域 習知基於廣播之資料處理系統經由廣播通信而處理快取 一致性及資料傳遞,該廣播通信在習知系統中在系統互連 117207.doc -16· 1380173 上被傳輸至系統中之至少所有記憶體控制器及快取記憶體 階層。當與具替代架構及相同規模之系統相比時,基於廣 播之系統傾向於提供減少之存取延遲及較佳資料處理及對 共用記憶體區塊之一致性管理。
隨著基於廣播之系統在尺寸上按比例增加,系統互連上 之訊務量倍增’此意謂系統成本由於需要更多頻寬用於系 統互連上之通k而隨糸統規模急劇上升。亦即,具有m個 處理器核心(每一處理器核心具有η個異動之平均訊務量)之 系統具有mxn之訊務量’此意謂基於廣播之系統中的訊務 量倍增地而非加法地按比例增加。在超過實質上較大互連 頻寬之要求的情況下,系統尺寸之增加具有增加某些存取 延遲之副效應。舉例而言,在最壞情況下,讀取資料之存 取延遲受將到將被請求記憶體區塊保持於共用一致性狀態 (被^求資料可源自該狀態)之最遠較低層快取記憶體的組 合回應延遲之限制。
為降低系統互連頻寬要求及存取延遲同時仍保持基於廣 播之系統的優點,允許貫穿資料處理系統1〇〇分佈之多個 L2快取記憶體230將同一記憶體區塊之複本保持於允許此 等快取記憶體使用快取記憶體對快取記憶體介入而將記憶 體區塊供應至請求L2快取記憶體230的,,特殊"共用一致性 狀態。為在諸如資料處理系統100之SMP資料處理系統中 建構共用記憶體區塊之多個並行分佈源,必須解決兩個事 宜。首先,必須建構控制以上提到之"特殊,,共用一致性狀 態下的記憶體區塊之複本之建立的規則。第二,必 117207.doc -17- 控制哪一監視L2快取記憶體230(若存在)(例如)回應於匯流 排讀取操作或匯流排RWITM操作而向請求L2快取記憶體 230提供共用記憶體區塊之規則。 根據本發明,經由建構資料來源區域來解決此等兩個事 宜。詳言之,允許SMP資料處理系統内之每一區域在某時 僅包括一使特定記憶體區塊保持於"特殊"共用一致性狀態 之快取記憶體階層,其中區域經界定以包括參與回應資料 请求之一或多個較低層(例如,L2)快取記憶體◊該快取記 隐體階層(方在匯流排讀取類型(例如,讀取或rWitm)操 作由同一區域中之請求較低層快取記憶體起始時存在)負 貝將被請求之記憶體區塊之來源提供給請求較低層快取記 憶體。儘管可界定許多不同區域尺寸,但在圖丨之資料處 理系統100中,便利的是將每一處理節點1〇2(亦即,MCM) 認為係資料來源區域。以下參看表„描述此"特殊”共用狀 態(亦即,Sr)之一實例。 IV·—致性區域 儘管如上所述之資料傳遞區域之建構改良資料存取延 遲仁此增強不解決隨系統規模增加之mxn訊務量的倍 增。為降低訊務量同時仍維持基於廣播之一致性機構本 發明之較佳實施例另外建構—致性區域,該等一致性區域 上文中所述之資料傳遞區域一樣可藉由形成獨立一致性 區域之每一處理節點102而便利地(但不一定要)加以建構。 資料傳遞區域與一致性區域可為(但不一定要)同延的,且 為說明資料處理系統100之示範性操作起見將在下文中假 117207.doc -18- 1380173 定其具有由處理節點102界定之邊界。 一致性區域之建構在可在藉由少於所有一致性區域的參 與向請求提供服務之狀況下藉由限制系統互連ιι〇上之區 域間廣播通信而減少系統訊務。舉例而言,若處理節點 l〇2a之處理單元104a具有待發出之匯流排讀取操作則處 理單元104a可選擇首先將匯流排讀取操作廣播至其自身一 致性區域(例如,處理節點102a)内之所有參與者而非廣播 至其他一致性區域(例如,處理節點1〇2b)中之參與者。本 文中將僅傳輸至與操作《主控器相同的一致性區域内之參 與者的廣播操作界定為"局域操作"。若可在處理單元1〇牝 之一致性區域内向局域匯流排讀取操作提供服務,則不執 行匯流排讀取操作之進—步廣播1而,若對局域匯流排 讀取操作之部 > 回應及組合回應指示不能單獨在處理節點 1023之一致性區域内向匯流排讀取操作提供服務,則廣播 之範圍可經延伸以除局域—致性區域外包括—或多個額外 一致性區域》 在基本建構中,使用兩個廣播範圍:僅包括局域一致性 區域的"局域"範圍及包括SMP資料處理系统中之所有其他 一致性區域的"全域"範圍。因此,在本文中將傳輸至 SM”料處理系統中之所有一致性區域之操作界定為"全 域操作’。重要的係,無關於使用局域操作還是較廣範圍 之操作(例如,全域操作)來為操作提供服務均在8厘卩資 料處理系統t之所有—致性區域上維持快取—致性。在美 國專利t 4案第11/〇55,305號中詳細描述了局域及全域操 117207.<ioc •19· 1380173 作之實例,該申請案之全文以引用的方式倂入本文中β 在較佳實施例中,藉由局域/全域範圍指示符(信號)(在 一實施例中可包含1位元旗標)而在匯流排操作中指示操作 之範圍。處理單元104内之轉發邏輯212較佳基於操作中之 局域/全域範圍指示符(信號)的設定而判定是否將經由局域 互連114所接收之操作轉發至系統互連11〇上。 在本描述中,若一致性區域(或處理節點)含有記憶體區 塊之LPC ’則可將一致性區域稱為記憶體區塊之"本地"一 致性區域(或·•本地"節點)》 V·區域指示符 為限制不需要之局域操作之發出且藉此減少操作延遲且 保留局域互連上之額外頻寬,本發明較佳每記憶體區塊建 構一區域指示符,該區域指示符指示是否在局域一致性區 域外面快取相關聯記憶體區塊之複本。舉例而言,圖5描 繪根據本發明之區域指示符的第一示範性建構。如圖5中 所示’可建構於動態隨機存取記憶體(dram)中之系統記 憶體108儲存複數個記憶體區塊5〇〇。系統記憶體1〇8與每 一 δ己憶體區塊5〇〇相關聯而將一用以校正錯誤(若存在)之相 關聯錯誤校正碼(ECC)502儲存於記憶體區塊5〇〇及一區域 指示符504中》儘管在本發明之某些實施例中,區域指示 符504可識別特定一致性區域(例如,規定一致性區域或節 點ID) ’但在下文中假定,區域指示符5〇4為在快取相關聯 記憶體區塊50〇(若快取,則僅在與用作記憶體區塊5〇〇之 L 0之„己隐體控制器206相同的一致性區域内)之情況下被 117207.doc -20- 1380173 〇又疋(例如,认定為丨Γ以指示"局域。之丨位元指示符。否則 重5又區域指不符504(例如,重設為,〇,以指示"全域。。將區 域指示符504設定為指示"局域"可不精確地實施,因為"全 域之錯誤設定不會誘發任何一致性錯誤但可能引起操 作的不需要之全域廣播。 回應於操作而指出記憶體區塊之來源的記憶體控制器 206(及L2快取記憶體230)較佳連同被請求之記憶體區塊而 傳輸相關聯之區域指示符5〇4。 VI.示範性一致性協定 本發明較佳建構經設計以平衡如上所述之資料傳遞及一 致性區域之建構的快取一致性協定。在較佳實施例中,協 定内之快取一致性狀態除提供(1)快取記憶體是否為記憶體 區塊之HPC的指示外,亦指示(2)快取複本在該記憶體階層 處之快取記憶體中是否為唯一的(亦即,為系統範圍上之 唯一快取複本)’(3)快取記憶體是否及何時可向記憶體區 塊之請求之主控器提供記憶體區塊之複本,(4)記憶體區塊 之快取映像是否與LPC(系統記憶體)處之相應記憶體區塊 一致,且(5)遠端一致性區域中之另一快取記憶體是否(可 能)保持具有匹配位址之快取項目。此等五種屬性可以(例 如)以下表II中所總之熟知MESI(修改、排除、共用、作廢) 協定之示範性變體來表示。 I17207.doc -21 · 1380173
表II 快取 狀態 是否為 HPC? 是否唯 一? 是否為資料源? 是否與 LPC -致? 是否在局域 區域外快 取? 合法並行狀態 Μ 是 是 在CR之前是 否 否 I 'Ig 'Igp ' In(& LPC) Me 是 是 在CR之前是 是 否 I 'Ig 'Igp ' In(& LPC) T 是 未知 若在CR之前未 提供,則在CR 之後是 否 未知 Sr、S、I、Ig、Igp、 In(& LPC) Τη 是 未知 若在CR之前未 提供,則在CR 之後是 否 否 Sr、S、I、Ig、Igp、 In(& LPC) Te 是 未知 若在CR之前未 提供,則在CR 之後是 是 未知 Sr、S、I、Ig、Igp、 In(& LPC) Ten 是 未知 若在CR之前未 提供,則在CR 之後是 是 否 Sr、S、I、Ig、Igp、 In(& LPC) Sr 否 未知 在CR之前是 未知 未知 T、Tn、Te、Ten、S、 I、Ig、Igp、In(& LPC) S 否 未知 否 未知 未知 T、Tn、Te、Ten、Sr、 S、I、Ig、Igp、In(& LPC) I 否 n/a 否 n/a 未知 M、Me、T、Tn、Te、 Ten 、 Sr 、 S 、 I 、 Ig 、 Igp、In(& LPC) ig 否 n/a 否 n/a 在無其他資 訊時假定如 此 M、Me、T、Tn、Te、 Ten 、 Sr 、 S 、 I 、 Ig 、 Igp ' In(& LPC) Igp 否 n/a 否 n/a 在無其他資 訊時假定如 此 M、Me、T、Tn、Te、 Ten 、 Sr 、 S 、 I 、 Ig 、 Igp、In(& LPC) In 否 n/a 否 n/a 在無其他資 訊時假定並 非如此 M、Me、T、Tn、Te、 Ten 、Sr、S、I、Ig、 Igp ' In(& LPC) A. Ig狀態 為避免必須存取LPC以判定是否已知待快取記憶體區塊 (若待快取,則僅局部),利用作廢全域(Ig) —致性狀態以 -22- 117207.doc 在無記憶體區塊之複本保持被快取於一致性區域中之狀況 下維護區域指示。在本文中將4狀態界定為指示(1)快取記 憶體陣列中之相關聯記憶體區塊作廢,(2)快取目錄中之位 址標記有效,且(3)可能在不同於本地一致性區域之一致性 區域中快取由位址標記識別之記憶體區塊之複本的快取一 致性狀態。Ig指示較佳為不精確的,此意謂其可在不違反 —致性之情況下為不正確的。
Ig狀態係回應於回應於排除存取請求(例如,匯流排 RWITM操作)而向另--致性區域中之請求者提供被請求 記憶體區塊之該快取記憶體而形成於本地一致性區域中之 較低層快取記憶體中。 因為包括Ig狀態之快取目錄項潛在地載運有用資訊,所 以需要在至少某些建構中較j狀態下之項目而優先留存1§狀 態下之項目(例如’藉由修改用以選擇用於替換之犧牲快 取項目之最近最少使用(LRU)演算法)。由於ig目錄項留存 於快取記憶體中,因而某些Ig項目可能隨時間而變得"陳 舊·',其原因在於排除存取請求引起Ig狀態之形成的快取 5己憶體可解除配置或寫回其記憶體區塊之複本而不向保持 位址標記之快取記憶體通知處於Ig狀態之記憶體區塊。在 該種狀況下,錯誤地指示應發出全域操作而非局域操作之 "陳舊"Ig狀態不會引起任何一致性錯誤,但將僅使得可能 利用局域操作而被另外提供服務之某些操作經發出而作為 全域操作。此等無效率之發生將限於由"陳舊"“快取項目 之最終替換所經歷之持續時間内。 117207.doc -23- 1380173 若干規則控制ig快取項目之選擇及替換。首先,若快取 記憶體選擇ig項目作為用於替換之犧牲者,則執行1§項目 之逐出(與選擇I、In或Igp項目之狀況不同)以更新系統記 憶體108中之相應區域指示符5〇4。第二,若使記憶體區塊 被載入快取記憶體的請求命中該同一快取記憶體中之匕快 取項目,則快取記憶體將Ig命中看作快取不中並在使。項 目作為選定犧牲者之情況下執行逐出操作。快取記憶體因 此避免將同一位址標記之兩個複本置放於快取目錄中。第 二,較佳將Ig狀態之逐出執行為範圍限於局域一致性區域 之唯局域操作。第四,較佳將4狀態之逐出執行為將區域 指示寫回至LPC中之區域指示符504的無資料唯位址操 作。 根據本發明之I g狀態的建構藉由甚至當無記憶體區塊之 有效複本保持被快取於本地一致性區域中時亦維持本地一 致性區域中之記憶體區塊的快取區域指示符而改良通信效 率。如下所述,由Ig狀態提供之快取區域指示可用以預測 用於以相關聯之記憶體區塊為目標之操作的互連結構上之 全域廣播範圍。 Β· Igp狀態 作廢全域唯預測(IgP) 一致性狀態用以在無記憶體區塊之 複本保持被快取於非本地一致性區域中之狀況下維持快取 區域指示。在本文中,將Igp狀態界定為指示(1)快取陣列 中之相關聯之記憶體區塊作廢,(2)快取目錄中之位址標記 有效,(3)目前一致性區域不為本地一致性區域,且(㈠可 117207.doc • 24- 1380173 能在不同於目前非本地-致性區域之—致性區域中快取由 位址標記識別之記憶體區塊之複本的快取—致性狀態。儘 管精確地㈣IgP㈣,但較衫精確㈣持【㈣示,此 意謂其可在不違反一致性之情況下為不準確的。 igp狀態係回應於回應於排除存取請求(例如,RWITM、 DClaim、DCBZ、取消、寫入或部分寫入請求)而向另一一 致性區域中之請求者提供被請求記憶體區塊之一致性所有 權的快取記憶體而形成於非本地一致性區域中之較低層快 取記憶體中。 因為包括Igp狀態之快取目錄項載運潛在地有用資訊, 所以需要在至少某些建構中而較j狀態下之項目優先留存1§ 狀態下之項目(例如,藉由修改用以選擇用於替換之犧牲 快取項目之最近最少使用(LRU)演算法)。由於Igp目錄項 留存於快取記憶體中,因而某些Igp項目可能隨時間而變 得"陳舊",其原因在於記憶體區塊之複本可在未由保持Igp 狀態下之記憶體區塊之位址標記的快取記憶體監視的情況 下返回至一致性區域。在該等狀況下,不準確地指示應發 出全域操作而非局域操作之"陳舊"Igp狀態不會引起任何 一致性錯誤,但將僅使得利用局域操作而被另外提供服務 之某些操作作為全域操作而發出。此等無效率之發生將限 於"陳舊’’ Igp快取項目之最終替換所經歷的持續時間内。 與Ig項目之處置相比,無Igp項目之逐出係(例如)根據替 換演算法(例如,LRU)或因為使記憶體區塊被載入快取記 憶體内之請求命中在該同一快取記憶體中之Igp快取項目 117207.doc •25- 1380173 而回應於選擇igP項目作為用於替換之犧牲者而執行。實 情為’僅解除配置IgP項目。因為Igp項目不維持基本區域 指示符504之經快取且可能經修改之複本,所以不執行逐 出。 根據本發明之IgP狀態的建構藉由甚至當無記憶體區塊 之有效複本保持被快取於非本地一致性區域中時亦在非本 地-致性區域中維持記憶體區塊的快取區域指示符而改良 通信效率。 C· In狀態 在本文中將In狀態界定為指示⑴快取記憶輯列中之相 關聯記憶體區塊作廢,(2)快取目錄中之位址標記有效,且 (3)由位址標記識別之記憶體區塊之複本可能被快取(若快 取,則僅由局域-致性區域内之一或多個其他快取記憶體 層來快取)的快取-致性狀態。化指示較佳為不精確的, 此意謂其可在不違反-致性之情況下為不準確的。化狀態 係回應於回應於排除存取請求(例如,匯流排操作) 而向同--致性區域中之請求者提供被請求記憶體區塊之 該快取記憶體而形成於較低層快取記憶體中。 因為包括In狀態之快取目錄項載運潛在地有用資訊所 以需要在至少某些建構中較1狀態下之項目優先留存In狀態 下之項目(例如’藉由修改用以選擇用於替換之犧牲快取 項目之最近最少使用(LRU)演算法)。由於In目錄項留存於 决取-己it體中’因而某些匕項目可能隨時間而變得"陳舊", 其原因在於排除存取請求引起In狀態之形成的快取記憶體 117207.doc -26- 1380173
之"陳舊” In狀態不會引起任何一致性錯誤, 但將僅使 得某些操作錯誤地首先作為局域操作而發出,而非作為全 域操作而發出。此等無效率之發生將限於由"陳舊"h快取 項目之最终替換所經歷的持續時間内。在較佳實施例中,
In—致性狀態下之快取項目不經受逐出 此,與Ig快取項目不同,In快取;tg曰π 而僅被替換。因
In快取項目不用以更新系統記憶 體108中之區域指示符504。 根據本發明之In狀態的建構藉由維持由主控器諮詢以為 該主控器之操作中之一者選擇局域範圍的記憶體區塊之快 取區域指示符而改良通信效率。結果,保留其他一致性區 域中之系統互連110及局域互連1丨4上之頻寬。 D· Sr狀態 • 在下述操作中,能夠判定將共用被請求記憶體區塊保持 於S r —致性狀態之較低層快取記憶體是否位於與請求主控 器相同之區域内係有用的《在一實施例中,可藉由將被請 求之記憶體區塊保持於Sr—致性狀態之較低層快取記憶體 處的監視程式之回應行為來指示與請求主控器相同之區域 内的"局域"Sr監視程式之存在。舉例而言,假定每一匯流 排操作包括指示匯流排操作是否已跨越區域邊界的範圍指 示符(例如,主控器之顯式區域識別符或單個局域/非局域 範圍位元)’則將共用記憶體區塊保持於Sr 一致性狀態之 117207.doc •27- 1380173 較低層快取記憶體可提供僅針對同一資料來源區域内之主 控器之請求而肯定Sr狀態下之請求的部分回應且提供指示 所有其他請求之S狀態的部分回應。在此等實施例中,可 如表III中所示而總結回應行為,其中加撇(')記號用以表示 可能與記憶體區塊之實際快取狀態不同的部分回應。
表III 讀取類型請求之主控器之區域 目錄中之 快取狀態 部分回應 (可獲得充足資源) 部分回應(不可獲 得充足資源) "局域"(亦即,在同一區域内) Sr Sr'肯定 可能隱藏之Sr1 "遠端"(亦即,不在同一區域内) Sr S'肯定 可能隱藏之S' ”局域"(亦即,在同一區域内) s S'肯定 可能隱藏之S· "遠端"(亦即,不在同一區域内) s S’肯定 可能隱藏之S·
假定表III中之上述回應行為,可藉由增加分佈於可用作 資料源之SMP資料處理系統内的記憶體區塊之共用複本之 數目而顯著減少共用資料之平均資料延遲。 VII.示範性排除存取操作 首先參看圖6,描繪根據本發明之向資料處理系統中之 處理器(CPU)請求提供服務的示範性方法之高層邏輯流程 圖。與本文中所給出之其他邏輯流程圖一樣,可以與所展 示次序不同之次序執行或可並行執行圖6中所描繪之步驟 中的至少某些步驟。 圖6之過程開始於區塊600處,該區塊600表示一 L2快取 記憶體230中之主控器232自其處理單元104中之相關聯處 理器核心200接收CPU請求(例如,CPU資料載入請求、 CPU資料儲存請求、CPU載入與保留請求、CPU指令載入 117207.doc -28 · 1380173 請求等)。回應於CPU請求之接收,主控器232在區塊602處 判定是否將由目標位址在CPXj請求内識別之目標記憶體區 塊保持於允許向CPU請求提供服務而不在互連結構上發出 匯流排操作的一致性狀態下之L2快取目錄302中。舉例而 5 ’若L2俠取目錄302指示目標記憶體區塊之一致性狀態 為Μ、Me、Tx(例如’ T、Tn、Te或Ten)、Sr或S狀態中之 任一者’則可向CPU指令提取請求或資料載入請求提供服 務而不在互連結構上發出匯流排操作。*L2快取目錄3〇2 指示目標記憶體區塊之一致性狀態為Μ或Me狀態中之一 者’則可向CPU資料儲存請求提供服務而不在互連結構上 發出匯流排操作。若主控器232在區塊602處判定可向CPU 請求提供服務而不在互連結構上發出匯流排操作,則如區 塊624處所展示的,主控器232存取L2快取記憶體陣列3〇〇 以向CPUs青求提供服務。舉例而言,主控器232可獲取被 請求之記憶體區塊並回應於CPU資料載入請求或指令提取 請求而將被請求之記憶體區塊供應至請求處理器核心200 或可將cpu資料儲存請求中所提供之資料儲存於L2快取記 憶體陣列300中。在區塊624之後’該過程終止於區塊626 處。 返回至區塊602,若不將目標記憶體區塊保持於允許向 CPU請求提供服務而不在互連結構上發出匯流排操作的一 致性狀態下之L2目錄302中,則亦在區塊6〇4處進行是否需 要逐出現存存取列以將目標記憶體區塊容納於12快取記憶 體230中的判定。在一實施例中’若記憶體區塊經選擇用 117207.doc -29- 1380173 以回應於CPU請求而自請求處理器之L2快取記憶體23〇被 逐出且在L2目錄302中被標記為Μ、T、Te、Τη或Ig—致性 狀態中之任一者’則在區塊6〇4處需要逐出操作。回應於 區塊604處之需要逐出之判定,如區塊606處所指示的,執 行快取記憶體逐出操作。並行地,主控器232在區塊610處 判定待發出以向CPU請求提供服務之匯流排操作的範圍。 舉例而言,在一實施例中,主控器232在區塊610處判定將 匯流排操作作為局域操作還是全域操作而廣播。 在每一匯流排操作起初作為局域操作而發出且僅作為局 域操作發出一次的第一實施例中’區塊61〇處所描繪之判 定可僅表示由主控器進行之關於匯流排操作是否先前已作 為局域匯流排操作而發出的判定。在可再試局域匯流排操 作之第二替代實施例中,區塊6丨0處所描繪之判定可表示 由主控器進行之關於匯流排操作是否先前已發出多於臨限 次數的判定。在第三替代實施例中,區塊61〇處所進行之 判定可基於由主控器232進行之關於局域匯流排操作在解 決目標記憶體區塊之一致性而不與其他一致性區域中之處 理節點通信中是否可能成功的預測。舉例而言,主控器 232在相關聯之L2快取目錄3〇2使目標位址與In一致性狀態 相關聯之情況下可選擇局域匯流排操作,且在相關聯之L2 快取目錄302使目標位址與Ig4Igp 一致性狀態相關聯之情 況下可選擇全域匯流排操作。 回應於區塊610處之發出全域匯流排操作而非局域匯流 排操作的判定,該過程自區塊610進行至區塊62〇(下文對 H7207.doc 30· 1380173 其進行描述)。另一方面,若在區塊610處判定發出局域匯 流排操作,則如區塊612處所說明的,主控器232在其局域 互連114上起始局域匯流排操作。僅在含有主控器232之局 域一致性區域(例如,處理節點102)内廣播局域匯流排操 作。若主控器23 2接收指示"成功"(區塊614)之cr,則該過 程轉至區塊623 ’該區塊623表示主控器232更新用以進行 區塊610處所描繪之範圍選擇的預測器(例如,一致性狀態 或基於歷史的預測器)^此外,如區塊624處所展示的,主 控器232向CPU請求提供服務。此後,該過程結束於區塊 6 2 6 處0 返回至區塊614’若局域匯流排讀取操作之cr不指示"成 功",則主控器232在區塊616處進行關於CR是否為"再試全 域"CR的判定,該"再試全域"CR確定地指示一致性協定規 定局域一致性區域外的一或多個處理節點之參與且因此應 將匯流排操作重發為全域匯流排操作。若是,則該過程轉 至區塊620(下文對其進行描述)。另一方面,若cr為不確 定地指示不能在局域一致性區域内向匯流排操作提供服務 之”再試” CR’則該過程自區塊616返回至區塊610,此說 明主控器232再次判定是否發出局域匯流排操作以向cpu 請求提供服務。在該種狀況下,主控器232可在判定中使 用由CR提供之任何額外資訊。在區塊610之後,該過程轉 至區塊612(上文已描述),,或轉至區塊620。 區塊620描繪主控器230向資料處理系統中之所有處理節 點102發出全域匯流排操作,以向cpu請求提供服務。若 117207.doc •31· 1380173 全域匯流排讀取操作之CR在區塊622處不指示"成功'·,則 主控器232在區塊620處重發全域匯流排操作直至接收指示 "成功"之CR。若全域匯流排讀取操作之CR指示"成功",則 該過程進行至區塊623及隨後區塊(已進行描述)。 因此,假定過程與其在同--致性區域内之資料之間的 親和性’則可利用範圍限於請求主控器或小於完全全域範 圍之其他限制範圍之一致性區域的廣播通信而頻繁地向 CPU請求提供服務。因此如上文中所描述之資料傳遞區 域與一致性區域的組合不僅改良資料存取延遲,而且藉由 限制廣播通信之範圍而減少了系統互連(及其他局域互連) 上之訊務。 現參看圖7A至圖7B,描繪根據本發明之快取監視程式 (諸如L2快取監視程式236)藉以處理排除存取請求(亦稱為 儲存修改操作)之示範性方法的高層邏輯流程圖。排除存 取請求包括上述之RWITM、DClaim、DCBZ、取消、寫入 及部分寫入操作。 如所展示的,該過程回應於一 L2快取監視程式236在其 局域互連114上接收到請求而開始於圖7A之區塊7〇〇處。回 應於請求之接收,監視程式236(例如)以參照請求内之異動 類型(Ttype)攔位的方式在區塊7〇2處判定請求是否為排除 存取操作。若不是,則監視程式236執行如區塊704處所展 不之其他處理,且該過程終止於區塊75〇處。然而,若監 視程式236在區塊7〇2處判定請求為排除存取請求,則監視 程式236在區塊71G處進-步判定其目前是否能夠實質上回 117207.doc -32^ 1380173 應該排除存取請求(例如’其是否具有可獲得之監視邏輯 執行個體及對L2快取目錄3〇2之當前存取)。若監視程式 236目前不能實質上回應區域查詢請求,則如區塊i7i2處; 描繪的,監視程式236提供指示"再試"之部分回應(pR),且 排除存取操作之處理結束於區塊750處。 假定監視程式236能夠實質上回應排除存取操作則監 視程式236在區塊720處判定相關聯之L2快取目錄3〇2是否 指示含有目標位址之記憶體區塊的資料有效一致性狀態 (例如,Mx、Tx、Sr或S)。若不是,則該過程轉至區塊 722 ’該區塊722描繪監視程式236判定含有目標位址之記 隐體區塊的一致性狀態疋否為Ig。若是’則監視程式236 常駐於目標位址之本地一致性區域(例如,處理節點丨〇2)中 且因此提供指示將可能需要全域操作來向排除存取操作提 供服務的"再試全域"部分回應(區塊726)。另一方面,若含 有目標位址之記憶體區塊的一致性狀態並非Ig,則監視程 式236提供"空''部分回應。在區塊724或726之後,由監視 程式236對排除存取操作的處理终止於區塊75〇處》 返回至區塊720,回應於由監視程式236進行之相關聯之 L2快取目錄302指示含有排除存取操作之目標位址之記憶 體區塊的資料有效狀態之判定,該過程分叉且並行進行至 區塊730及隨後區塊(其表示由監視程式236執行之一致性 狀態更新),並經由跨頁連接符A進行至區塊760(圖7B)及 隨後區塊(其表示監視程式236之資料傳遞及保護活動(若存 在))。首先參看區塊730,監視程式236判定其是否常駐於 117207.doc •33· 、 發出排除存取請求之裝置(例如,L2快取記憶體230) 相同的一致生^ 改£域内》舉例而言,監視程式236可藉由檢 一_除存取操作中所·含有之範圍位元而進行區塊730處所 舌明之判定。若監視程式236在區塊730處判定其位於與起 。除存取操作之裝置相同的一致性區域内,則監視程式 236將3有排除存取操作之目標位址之記憶體區塊的一致 陡狀態更新為其1^2快取目錄302中之In—致性狀態。如上 所^出’ In一致性狀態提供記憶體區塊之Hpc常駐於局域 (未必為本地)一致性區域中且請求記憶體區塊之隨後局域 操作可能成功的不精確指示。 另一方面’若監視程式236在區塊73〇處判定其不位於與 起始排除存取請求之裝置相同的一致性區域内,則監視程 式236以參照bAR邏輯238的方式判定其是否位於目標記憶 體區塊之本地一致性區域内(區塊74〇)。若監視程式236在 區塊740處判定其位於目標記憶體區塊之本地一致性區域 内’則如區塊742處所說明的,監視程式236將目標記憶體 位址之一致性狀態更新為其L2快取目錄3〇2内之Ig狀態。 然而’若監視程式236判定其不位於目標記憶體區塊之本 地一致性區域内’則監視程式236將目標記憶體區塊之一 致性狀態更新為Igp狀態(區塊744)。在區塊732、742及744 中之任一者之後,回應於排除存取操作之一致性狀態的更 新結束於區塊750處。 現參看圖7B,描繪監視程式236之資料傳遞及保護活動 (若存在)。如所說明的’監視程式236(例如)藉由檢查由操 117207.doc -34- 1380173 作規定之Ttype而在區塊760處判定經監視之排除存取操作 是否為RWITM操作。如以上表I中所指示的,RWITM操作 為指示符自另一參與者請求記憶體區塊之映像之唯一複本 (具更新(修改)該唯一複本之意向)的排除存取操作。若在 區塊760處判定排除存取操作為RWITM操作,則該過程轉 至區塊770(在下文加以描述)。若在區塊760處判定排除存 取操作不為RWITM操作,則該過程進行至區塊762,該區 塊762描繪監視程式236(例如)以參照相關聯之L2快取目錄 3 02中的目標記憶體區塊之一致性狀態的方式判定其是否 位於目標記憶體區塊之HPC處。回應於區塊762處的監視 程式236不位於排除存取操作之目標記憶體區塊之HPC處 的判定,監視程式236產生"空"部分回應或使”空"部分回應 產生(區塊764)。然而,回應於區塊762處之監視程式236常 駐於HPC處的判定,監視程式236提供確認已選擇排除存 取操作之起始者作為目標記憶體區塊之新HPC的"HPC ack”部分回應(或使該"HPC ack"部分回應得以提供)並擴充 一保護視窗404a以防止其他請求者獲得記憶體區塊之一致 性所有權(區塊766)。 現參看區塊770及隨後區塊,監視程式236基於其相關聯 之L2快取目錄302中之目標記憶體區塊的一致性狀態而回 應RWITM操作。詳言之,若L2快取目錄302中之目標記憶 體區塊的一致性狀態為Mx(例如,Μ或Me),則如區塊770 及772處所展示的,擴充一保護視窗404a以防止其他請求 者獲得記憶體區塊之所有權,提供"HPC ack"部分回應, 117207.doc -35- 1380173 並將記憶體區塊之複本的來源提供給請求者。 或者,若如區塊774及776處所展示的,L2快取目錄3〇2 中之目標記憶體區塊的一致性狀態為Sr且監視程式位於與 明求者相同之資料來源區域(例如,處理節點1 〇2)内,則監 視程式236擴充一保護視窗404a,提供"Ack"部分回應,並 將記憶體區塊之複本的來源提供給請求者。或者,若如區 塊780處所展示的,L2快取目錄302中之目標記憶體區塊的 一致性狀態為Tx(例如’ T、Te、Tn或Ten),則如區塊782 處所屐示的’監視程式236擴充一保護視窗4〇4&以防止其 他請求者獲得目標記憶體區塊之所有權並提供"HPC Ack" 部分回應《此外,如區塊784及786處所指示的,監視程式 236可視自回應邏輯21〇接收之組合回應而將目標記憶體區 塊之複本的來源提供給請求者。亦即,若該組合回應指示 此監視程式236負責指出目標記憶體區塊之複本的來源(例 如’無監視程式236位於與請求者相同之一致性區域中使 得目標記憶體區塊保持Sr狀態)’則如區塊786處所展示 的’監視程式236將目標記憶體區塊之複本傳輸至請求 者。 再次參看區塊780,回應於否定判定,如區塊790處所展 示的,監視程式236僅提供"空,•部分回應,在區塊766、 764、772、776、784 ' 786及790中之任一者之後,該過程 結束於區塊792處。 如以上所指示的,回應邏輯21 〇 (例如,起始處理單元 104中之回應邏輯210)之至少一執行個體回應於排除存取 117207.doc -36- 操作而組合由監視程式236及IMC 206產生之部分回應以判 定:對排除存取操作之組合回應。如圖7A至圖7B中所指示 的’排除存取操作之一個別監視程式236通常無關於組合 回應而判定對其一致性狀態之更新及其對資料傳遞及保護 之貝任。如以參照圖7B之區塊784至786的方式所描述的, 此一般規則之值得注意的例外在於,具有目標記憶體區塊 之局域快取Tx複本的監視程式236以參照組合回應的方式 回應於RWITM操作而判定其對於指出目標記憶體區塊之複 本的來源之責任,。 自起始排除存取操作之主控器232的觀點來看,組合回 應提供許多更為相關之資訊。舉例而言,組合回應較佳指 示:(1)主控器是否獲得目標記憶體區塊之一致性所有權, (2)是否必須以增加之範圍再試排除存取操作以獲得目標記 憶體區塊之一致性所有權,(3)若排除存取操作為rwitm 操作,則哪一監視程式負責指出目標記憶體區塊之來源, (4)是否需要背景取消操作以使可能剩餘之目標記憶體區塊 之非HPC複本作廢,及(5)所需背景取消操作(若存在)之範 圍。在美國專利申請案第⑽55,3G5號(其以引用的方式併 入本文中)中詳細描述且因此不在本文中進—步詳細描述 來自監視程式236及IMC 2G6之部分回應的各個組合⑽之 形成。 如已描述的,本發明提供提供是否可能在一致性區域内 或外快取記憶體區塊之指示的經改良資料處理系统、處理 單元、快取記憶體階層及資料處理方法。根據本發明所提 117207.doc •37· 1380173 供之區域指示可用以預測以相關聯之記憶體區塊為目標之 廣播操作的範圍^可有利地回應於排除存取操作且無關於 2排除存轉作之組合回應而精確地形成區域指示,此意 謂監視程式邏輯執行個體必須為有效之期限可在接收到組 :口應之別終止。同樣,若經解除配置,則無需逐出㈣ 區域指示,此保留了互連結構上之頻寬。 儘管已如參照較佳實施例所描述的㈣定地展示了本發
月’但熟習此項技術者應瞭解,在*脫離本發明之精神及 範嘴的情況下可在本發明巾進行形歧細節之各種變化。 【圖式簡單說明】 圖1為根據本發明之示範性資料處理系統的高層方 » 圖2為根據本發明之處理單元的較詳細方塊圖; 圖3為圖2中所描繪之L2快取記憶體陣列及目錄之較詳細 方塊圖;
圖4為圖!之資料處理系統之系統互連上的示範性異動之 時空圖; 圖5說明根據本發明之較佳實施例的區域指示符; 圖6為根據本發明之一例示性方法之一高階邏輯流程 圖’-快取記憶體藉以服務接故自—資料處理系統中之一 處理器核心的一操作;且 圖7A至圖7B—起形成根據本發明之、快取監視程式藉 以處理儲存修改操作之示範性方法的高層邏輯流程圖。9 【主要元件符號說明】 117207.doc -38 - 1380173 100 資料處理系統 102a、102b 處理節點 104、104a至104d 處理單元 108、108a至108d 系統記憶體 110 系統互連
114 200a ' 200b 206 208 210 212 214 局域互連 處理器核心 整合記憶體控制器 指令定序單元 回應邏輯 轉發邏輯/互連邏輯 I/O控制器
216 222 ' 236 224 226 228 230 I/O裝置 監視程式 執行單元 L1快取記憶體 載入儲存單元 L2快取記憶體 232 主控器 234 238 ' 240 300 302 304 L2陣列及目錄 基址暫存器(BAR)邏輯 L2快取陣列 L2快取目錄 標記欄位 -39- 117207.doc 1380173 306 狀態欄位 308 最近最少使用(LRU)欄位 402 請求 404a ' 404b 保護視窗 406 部分回應 410 組合回應 500 記憶體區塊 502 錯誤校正碼(ECC) 504 區域指不符 A 跨頁連接符 117207.doc .40-

Claims (1)

  1. i〇i 1380173 十、申請專利範園: 第096100418號專利申請案 中文申請專利範圍替換本(101年7月) 種在包括至少第一及第二一致性區域之快取一致性 資料處理系統中之資料處理方法,該方法包含: 在該= 貝料處理系統之該第--致性區域内的一第一快 取記憶體中,將一記憶體區塊保持於一與一位址標記及 致性狀態欄位相關聯之儲存位置; 判定一予以指定一與該記憶體區塊相關聯之位址之本 地系統記憶體是否位於該第--致性區域内,其中該本 地系統記憶體常駐於該資料處理系統之一非揮發性記憶 體階層之一最低層處;及 回應於判定該本地系統記憶體不位於該第--致性區 域内,將該一致性狀態攔位設定為一第--致性狀態, 該一致性狀態指示該位址標記有效,該儲存位置不含有 效資料,該第--致性區域不含該本地系統記憶體,及 在形成該第--致性狀態之後,在該第--致性區域外 快取該記憶體區塊;及 回應於判定該本地系統記憶體位於該第--致性區域 内,將該一致性狀態欄位設定為一第二一致性狀態,該 第二一致性狀態指示該位址標記有效,該儲存位置不含 有效資料’該第一一致性區域含有該本地系統記憶體, 及在形成該第二一致性狀態之後,在該第--致性區域 外快取該記憶體區塊。 2.如請求項1之方法,其中該設定包含回應於該資料處理 系統之該第二一致性區域中之一第二快取記憶體的一排 117207-1010727.doc
    日玲.換頁j 除存取請求而將該一致性狀態攔位設定為該一致性狀 態。 3.如請求項2之方法,其中: 該排除存取請求包含一具修改意向之讀取(RWITM)操 作;且 該方法進一步包含該第一快取記憶體回應於該RWITM 操作而將該記憶體區塊之來源提供給該第二一致性區域 中之該第二快取記憶體。 4. 如請求項2之方法’其中該設定包含將該一致性狀態欄 位設定為該一致性狀態而不首先將該記憶體區塊逐出至 該記憶體區塊之該本地系統記憶體。 5. 如請求項2之方法,其中該一致性狀態包含一第^——致 性狀態且該設定包含將該一致性狀態欄位自一指示該記 憶體區塊有效且相對於該本地系統記憶體内之一相應記 憶體區塊經修改之第二—致性狀態更新為該第--致性 狀態。 6. 如請求項1之方法,其進一步包含: 該第一快取記憶體以參照該一致性狀態的方式預測 括該第二-致性區域之廣播傳輸之-範圍;及 〇第#取6己憶體發出該範圍之_廣播操作。 7. 如明求項1之方法’其進一步包含該第一快取記憶體 8除1己置一含有該位址標記之項目而不執行一逐出操作《 種用於一包括各包括至少—處理單元之至少第一及 - -致性區域之快取一致性資料處理系統之快取記 I17207-1010727.doc 體,其中該第 致性區域包括該快取記憶體且該第二 一致性區域包括另一一致性快取記憶體,該快取記憶體 包含: 一快取控制器; 一資料陣列,其包括一用以快取一資料之資料儲存位 置;及 一快取目錄,其包括: 一標記攔位,其用以儲存一與該資料儲存位置相關聯 之位址標記;及 致性狀態欄位,其與該標記攔位及該資料儲存位 置相關聯,其中該一致性狀態欄位具有包括一第—致 性狀態及一第二一致性狀態的複數個可能的一致性狀 態,其中該第—致性狀態指示該位址標記有效,該資 料儲存位置不含有效資料,該第—致性區域不含經指 定由該位址標記識別之一記憶體位址之一本地系統記憶 體,及在形成該第一一致性狀態之後,在該第一一致性 區域外快取對應於該記憶體位址之一記憶體區塊,其中 該本地系統記憶體常駐於該資料處理系統之一非揮發性 s己憶體階層之一最低層處; 其中該第二一致性狀態指示該位址標記有效,該資料 儲存位置不含有效資料,該第——致性區域包含該本地 系統記憶體’及在形成該第二一致性狀態之後,在該第 致性區域外快取該記憶體區塊。 9.如請求項8之快取記憶體,其中該快取控制器回應於該 II7207-1010727.doc 1380173
    資料處理系統之該第二一致性區域令之該另一快取記憶 體的一排除存取請求及該本地系統記憶體不位於該第一 一致性區域内之一指示而將該一致性狀態攔位設定為該 一致性狀態。 10·如請求項9之快取記憶體,其中: 該排除存取請求包含一具修改意向之讀取(RWITM)操 作;且 該快取記憶體回應於該RWITM操作而將該記憶體區塊 之來源提供給該第二一致性區域中之該另一快取記憶 如請求項9之快取記憶體,其中: 該快取控制器將該一致性狀態欄位設定為該一致性狀 態而不首先將該記憶體區塊逐出至該本地系統記憶體。 12.如請求項9之快取記憶體,其中: 該一致性狀態包含該複數個可能的一致性狀態中的一 第--致性狀態; 該複數個可能的一致性狀態包括一指示該記憶體區塊 有效且相對於該本地系統記憶體内之一相應記憶體區塊 而經修改之第二一致性狀態;且 該快取控制器將該一致性狀態欄位自該第二一致性狀 態更新為該第--致性狀態。 13 ‘如請求項8之快取記憶體,其中: 該一致性狀態包含一第--致性狀態; 該複數個一致性狀態包括一第二一致性狀態,該第二 I17207-1010727.doc -4- 1380173 日修止皆 一致性狀態指示該位址標記有效,該儲存位置不含有效 資料’該第—致性區域含有該本地系統記憶體,及在 形成該一致性狀態之後,在該第一一致性區域外快取該 記憶體區塊;且 該快取控制器回應於自該第一一致性區域外之一請求 者的一排除存取操作之接收及該本地系統記憶體位於該
    第 致性區域外之一指示而將該一致性狀態攔位設定 為該第二一致性狀態。 14. 如請求項8之快取記憶體,其中: 該快取記憶體之該快取控制器以參照該一致性狀態的 方式預測包括該第二一致性區域之廣播傳輸的一範圍並 發出該範圍之一廣播操作。 15. 如請求項8之快取記憶體,其中該快取記憶體之該快取 控制器解除配置一含有該位址標記之項目而不執行一逐 出操作。 10. 一 禋處理單元,其包含: 至少一處理器核心;及 一如請求項8之快取記憶體。 17· —種快取—致性資料處理系統,其包含: 各包括至少一處理單元之一第一及一第二一致性區 _ 、中該第一致性區域包括一第一快取記憶體且該 第致)±區域包括致性第二快取記憶體及經指定 =一位址標記識別之-記憶體位址之—本地系統記憶 體, 117207-1010727.doc 1380173 i Ψ-I 27 —^--- ' ·— 其中該資料處理系統之該笛 項第一一致性區域内的該第一 快取記憶體具有與包含該位址押 议祉描d之一位址標記攔位及 一一致性狀態欄位相關聯之—資料儲存位置; 其中該-致性狀態攔位具有包括一第一一致性狀態及 一第二一致性狀態的複數個可能的一致性狀態,其中該 第一一致性狀態指示該位址標記有效,該資料儲存位置 不含有效資料’該第--致性區域不含經指定由該位址 標記識別之一記憶體位址之該本地系統記憶體,及在形 成該第·--致性狀態之後’在該第--致性區域外快取 對應於該記憶體位址之一記憶體區塊,其中該本地系統 記憶體常駐龄該資料處理.系:鍊之一非揮發性記憶體階層 之一最低層處;及 其中該第二一致性狀態指示該位址標記有效,該資料 儲存位置不含有效資料,該第一5*致性區域包含該本地 系統記憶體’及在形成該第二一致性狀態之後’在該第 --致性區域外快取該記憶體區塊。 117207-1010727.doc 6 -
TW096100418A 2006-01-17 2007-01-05 Data processing system, cache memory and method for providing cache coherency TWI380173B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/333,615 US7512742B2 (en) 2006-01-17 2006-01-17 Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope

Publications (2)

Publication Number Publication Date
TW200813715A TW200813715A (en) 2008-03-16
TWI380173B true TWI380173B (en) 2012-12-21

Family

ID=38264611

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096100418A TWI380173B (en) 2006-01-17 2007-01-05 Data processing system, cache memory and method for providing cache coherency

Country Status (4)

Country Link
US (1) US7512742B2 (zh)
JP (1) JP5004571B2 (zh)
CN (1) CN100465923C (zh)
TW (1) TWI380173B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921179B1 (en) * 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
US8874853B2 (en) 2010-06-04 2014-10-28 International Business Machines Corporation Local and global memory request predictor
US9703706B2 (en) * 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
WO2013095640A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Methods and apparatus for efficient communication between caches in hierarchical caching design
US9588889B2 (en) * 2011-12-29 2017-03-07 Intel Corporation Domain state
US8793442B2 (en) * 2012-02-08 2014-07-29 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads
CN104331352B (zh) * 2014-11-19 2018-03-09 浪潮(北京)电子信息产业有限公司 cache一致性芯片地址带外读取检测方法及装置
US10776266B2 (en) * 2018-11-07 2020-09-15 Arm Limited Apparatus and method of modification of stored data

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852716A (en) 1996-07-02 1998-12-22 Sun Microsystems, Inc. Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6192451B1 (en) * 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6766360B1 (en) * 2000-07-14 2004-07-20 Fujitsu Limited Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture
US6658538B2 (en) * 2001-06-21 2003-12-02 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US6754782B2 (en) 2001-06-21 2004-06-22 International Business Machines Corporation Decentralized global coherency management in a multi-node computer system
US6785774B2 (en) 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
JP4043225B2 (ja) * 2001-12-10 2008-02-06 株式会社ルネサステクノロジ キャッシュ装置および方法
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US7100001B2 (en) 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US7096323B1 (en) 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
GB2403560A (en) 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Memory bus within a coherent multi-processing system
US7454578B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
US8140770B2 (en) * 2005-02-10 2012-03-20 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
US7389388B2 (en) * 2005-02-10 2008-06-17 International Business Machines Corporation Data processing system and method for efficient communication utilizing an in coherency state
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7290094B2 (en) * 2005-05-17 2007-10-30 International Business Machines Corporation Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy
US20070150664A1 (en) * 2005-12-28 2007-06-28 Chris Dombrowski System and method for default data forwarding coherent caching agent

Also Published As

Publication number Publication date
TW200813715A (en) 2008-03-16
CN100465923C (zh) 2009-03-04
CN101004710A (zh) 2007-07-25
US7512742B2 (en) 2009-03-31
JP2007193784A (ja) 2007-08-02
JP5004571B2 (ja) 2012-08-22
US20070168618A1 (en) 2007-07-19

Similar Documents

Publication Publication Date Title
TWI393005B (zh) 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
TWI380173B (en) Data processing system, cache memory and method for providing cache coherency
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
US7716428B2 (en) Data processing system, cache system and method for reducing imprecise invalid coherency states
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
US7444494B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a history-based prediction
US7484042B2 (en) Data processing system and method for predictively selecting a scope of a prefetch operation
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
US20060179252A1 (en) Data processing system and method for efficient communication utilizing an In coherency state
US20060265553A1 (en) Processor, data processing system, and method for initializing a memory block
US7577797B2 (en) Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response
US10579527B2 (en) Remote node broadcast of requests in a multinode data processing system
US7454578B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
TW200809500A (en) Data processing system and method for selecting a scope of broadcast of an operation by reference to a translation table
US7725660B2 (en) Directory for multi-node coherent bus
US10713169B2 (en) Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) Remote node broadcast of requests in a multinode data processing system
JP5063059B2 (ja) 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
US20050154863A1 (en) Multi-processor system utilizing speculative source requests

Legal Events

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