TW201124840A - Home agent data and memory management - Google Patents
Home agent data and memory management Download PDFInfo
- Publication number
- TW201124840A TW201124840A TW099127127A TW99127127A TW201124840A TW 201124840 A TW201124840 A TW 201124840A TW 099127127 A TW099127127 A TW 099127127A TW 99127127 A TW99127127 A TW 99127127A TW 201124840 A TW201124840 A TW 201124840A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- agent
- cache
- directory
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
201124840 六、發明說明: 【發明所屬之技術領域】 本發明之揭示係大致有關電子學之領域。更具體而言 ,本發明之一實施例係有關本地代理器資料及記憶體管理 【先前技術】 可使用監控式匯流排(snoopy bus)或基於目錄的協定 而保持電腦系統中之快取記憶體的一致性。無論在哪種情 況下,記憶體位址都與該系統中之特定位置相關聯。該位 置通常被稱爲一記憶體位址之"本地節點"("home node")。 在一基於目錄的協定中,各處理/快取代理器將要求 傳送到一本地節點,以便存取與一對應的"本地代理器 "("home agent")相關聯之一記憶體位址。因此,此種電腦 系統之效能可直接取決於管理本地代理器資料及/或記憶 體之有效率程度。 【發明內容】 本發明說明了與本地代理器資料及記憶體管理有關之 方法及裝置。在一實施例中,一清除邏輯將被更正的資料 寫回到一記憶體中對應於一目標位址之一位置,而更正該 目標位置上之錯誤。在一實施例中’ 一排除邏輯回應對應 於一目錄快取記憶體之錯誤數目超過一臨界値,而排除該 目錄快取記億體之一索引或路。也揭示了其他實施例。 -5- 2 201124840 【實施方式】 在下文的說明中,述及許多特定細節,以便提供對各 實施例的徹底了解。然而,可在沒有這些特定細節的情形 下實施某些實施例。在其他的情形中,並未詳述習知的方 法、程序、組件、及電路,以便不會模糊了該等特定實施 例。 本發明述及的某些實施例係大致有關諸如使用系統位 址以清除本地代理器上之記憶體。該記憶體清除可能涉及 記億體裝置中之錯誤的偵測及/或更正。如將於本發明中 參照諸如第3及4圖而進一步說明的,可以需求式清除或 巡邏式清除之方式執行該清除。 · 此外,在某些實施例中,在首次遭遇無法被更正的錯 誤之後,可將一或多個異常警示狀態位元(poison status bit)用來避免或至少減少以信令通知嚴重錯誤之機會。此 外’ 一實施例保證不會有記憶體資料的無痕迹之毀壞 (silent corruption),及/或保證毀壞的資料不會被提交到 非揮發性記憶體。 此外’在一實施例中,來自該目錄快取記億體之一索 引/路被動態地排除。一般而言,目錄快取記憶體(在本說 明書中也被參照爲"Dir$ ",而在一實施例中,該目錄快取 記憶體可在與本地代理器相同的積體電路晶粒中)儲存與 位址及對應的擁有者有關之資訊,且該等資訊可被該系統 中之一或多個代理器儲存。例如,該快取記億體可指示哪 -6- 201124840 些代理器可能正在儲存與一特定位址相關聯的被要求之資 料,且因而指示其爲該位址上的資料之擁有者。因此,假 定該目錄包含與該系統的快取代理器中之一致性單元(例 如,快取線、快取區塊、或記憶體或快取記憶體的另一部 分)的快取狀態有關之資訊,以便能夠達到諸如減少或避 免監控廣播等的監控流量的目的。此外,因爲該目錄快取 記憶體被有效率地維護,所以可經由一或多個較小的目錄 快取記憶體而減少設計預算。 一般而言,可使用監控式匯流排或基於目錄的協定而 保持運算系統中之快取記憶體的一致性。無論在哪種情況 下’系統記憶體位址都與該系統中之特定位置相關聯。該 位置通常被稱爲該記憶體位址之"本地節點"。在一基於目 錄的協定中’處理/快取代理器可將要求傳送到該本地節 點’以便存取與一"本地代理器"相關聯的一記億體位址。 此外’在分散式快取記憶體(distributed cache)—致性協定 中’快取代理器可將要求傳送到用來控制對於對應的記憶 體空間的一致性存取之本地代理器。本地代理器又負責保 證被要求資料的最新拷貝自記憶體或擁有該被要求資料的 一快取代理器被送回到提出要求者。該本地代理器亦可負 責在該要求是諸如針對一唯一拷貝時使其他快取代理器上 的資料拷貝無效。爲了達到這些目的,本地代理器通常可 監控每一快取代理器’或可依賴用來追蹤可能被用來儲存 資料的一組快取代理器之一目錄。 本說明書中將說明可被用來實施各實施例的諸如後文 201124840 中將參照第1及8-9圖述及之系統等的各種運算系統。更 具體而言,第1圖示出根據本發明的一實施例的一運算系 統100之一方塊圖。系統100可包含一或多個代理器1〇2-1至102·Μ(在本說明書中共同地被稱爲"各代理器1〇2"或 更一般性地被稱爲"代理器102")。在一實施例中,該等代 理器102中之一或多個代理器可以是諸如參照第8_9圖所 述的運算系統等的一運算系統之任何組件。 如第1圖所示,該等代理器1 02可經由一網路結構 1〇4而通訊。在一實施例中,網路結構104可包括可讓各 代理器(諸如運算裝置)傳送及接收資料之一電腦網路。在 一實施例中’網路結構1 04可包括經由一序列(例如,點 對點)鏈路及/或一共用式通訊網路而通訊之一或多個互連( 或互連網路)。例如,某些實施例可促進可與全緩衝式雙 直歹丨J 記憶體模組(Fully Buffered Dual-in-line memory module;簡稱FBD)間之通訊的鏈路上之組件除錯或驗證 ,例如’其中該FBD鏈路是用來將記憶體模組耦合到一 主機控制裝置(諸如一處理器或一記憶體控制中心)之一序 列鏈路。可自該FBD通道主機傳輸除錯資訊,使通道流 量蹤跡擷取工具(諸如一或多個邏輯分析器)可沿著該通道 觀測該除錯資訊。 在一實施例中,系統100可支援一分層協定體系,該 分層協定體系可包含一實體層、一鏈路層、一路由層、一 傳輸層、及/或一協定層。結構104可針對點對點或共用 式網路而進一步促進自一協定(例如,快取處理器或考慮 -8- 201124840 快取(caching aware)之記憶體控制器)至另一協定的資料( 例如,形式爲封包)之傳輸。此外,在某些實施例中,@ 路結構1 04可提供遵守一或多種快取一致性協定之通訊。 此外,如第1圖之箭頭方向所示,代理器102可經由 網路結構104而傳輸及/或接收資料。因此,某些代理器 可將單向鏈路用於通訊,而其他的代理器可將雙向鏈路 於通訊。例如,一或多個代理器(諸如代理器102-M)可傳 輸資料(例如,經由一單向鏈路106),其他一或多個代理 器(例如,代理器102-2)可接收資料(例如,經由一單向鏈 路108),而某一或多個代理器(例如,代理器102_1)可同 時傳輸及接收資料(例如,經由一雙向鏈路1 10)。 此外,如將於本說明書進一步說明的,該等代理器 102中之至少一代理器可以是一本地代理器,且該等代理 器1 02中之一或多個代理器可以是要求或快取代理器。如 圖所示,至少一代理器(圖中只示出一代理器102-1)可包 含或可使用一清除或排除邏輯(或引擎)111,以便分別根據 需求或以巡邏式清除之方式(將於本說明書下文中諸如參 照第2-3圖而進一步說明巡邏式清除)清除記憶體中之錯誤 ’或排除記憶體的一些部分(例如,如將於本說明書下文 中參照第7圖而進一步說明的,排除目錄快取記憶體1 22 的諸如快取線或條目(entry)等的一些部分)。此外,在一 實施例中,該等代理器102中之一或多個代理器(圖中只 示出一代理器102-1)可存取諸如記憶體〗2〇等的一記憶體 (該記憶體可能被該代理器專用,或被其他代理器共用)。 -9- 201124840 此外,該等代理器102中之一或多個代理器(圖中只示出 —代理器102-1)可維護一或多個儲存裝置(圖中只示出代 理器102-1之諸如目錄快取記憶體122等的一儲存裝置, 例如,被實施爲表、佇列、緩衝器、或被鏈結之清單等的 儲存裝置)中之條目,用以追蹤與(作爲一本地代理器之)代 理器102-1儲存/維護的項目有關之資訊。在某些實施例中 ,該等代理器102中之每一代理器或至少一代理器可被耦 合到在與該代理器相同的晶粒上之或該代理器可以其他方 式存取之記憶體120及/或一對應的目錄快取記憶體122。 第2圖是根據一實施例的一運算系統之一方塊圖。系 統200可包含複數個連接點202-208(圖中示出四個連接點 ,但是某些實施例可具有較多或較少的連接點)。在一實 施例中,每一連接點可包含一處理器。此外,每一連接點 可經由諸如參照第9圖所述之點對點(PtP)鏈路等的點對點 鏈路而被耦合到其他連接點。如前文中參照第1圖之網路 結構104所述的,每一連接點可被耦合到諸如由複數個可 包括動態隨機存取記憶體(Dynamic Random Access Memory :簡稱DRAM)的雙直列記憶體模組(Dual Inline Μ emory Module ;簡稱DIMM)構成之系統記憶體的一本地部分。 如第2圖所示,每一連接點可被耦合到一記憶體控制 器(Memory Controller ;簡稱 MC)/本地代理器(Home Agent :簡稱HA)(諸如MC0/HA0至MC3/HA3)。該等記憶體控 制器可被耦合到可以是系統記憶體(諸如第9圖所示的記 憶體912)之一對應的本地記憶體(被標示爲MEM0至 -10- 201124840 Μ EM3)。在某些實施例中,該記憶體控制器(MC)/本地代 理器(HA)(諸如MC0/HA0至MC3/HA3)可以相同於或類似 於第1圖所示之代理器1 0 2 -1 (例如,其中包括邏輯1 1 1等 的組件),且被標示爲MEMO至MEM3之該記憶體可以相 同於或類似於第1圖所示之記憶體120。此外,在一實施 例中,MEMO至ΜEM3之組態可被設定成諸如以主控及從 屬之方式映射資料。此外,在某些實施例中,系統200的 一或多個組件可被包含在相同的積體電路晶粒中。 諸如第2圖所示之實施例因而可被用於具有映射同步 (mirroring)功能之一連接點無黏接組態(socket glueless configuration)。例如,被指定給一記憶體控制器(諸如 MC0/HA0)之資料可經由該點對點鏈路而被映射同步到另 一記憶體控制器((諸如MC3/HA3)。此外,在複製爲映射 同步時,可以未知(U)狀態將與記憶體控制器MC3/HA3相 關聯的目錄初始化。於失效切換(failover)至該控制器(例 如,由於對該記憶體控制器之一線上服務呼叫)時,可自 該U狀態重建該目錄。 第3圖示出根據一實施例的需求式清除操作之一流程 圖。一般而言,需求式清除涉及主動地清除在正常操作期 間遭遇的可被更正之軟性記憶體(例如,DRAM或DIMM) 錯誤。例如,在遭遇一讀取操作的一可被更正之錯誤時’ 記憶體控制器可以信號向本地代理器通知一可被更正之回 應。該本地代理器然後可保證該被更正的資料(例如’被 儲存在其緩衝區,而該等緩衝區可被儲存在該本地代理器 -11 - 201124840 中或可被該本地代理器以其他方式存取)被寫回到記憶體( 諸如第1圖所示之記憶體120及/或第3圖所示之ΜΕΜ0-MEM3)。 請參閱第3圖’ "CA0"意指快取代理器(視實施例而定 ’該快取代理器可以是第1圖所示的該等代理器中之一代 理器、及/或第2圖所示的諸如連接點202-208或MC0-MC3等的該等組件中之一組件),且"HA"意指本地代理器( 視實施例而定,該本地代理器可以是第1圖所示的該等代 理器中之一代理器、及/或第2圖所示的諸如MC0-MC3等 的該等組件中之一組件)。 如圖所示,來自CA0的一 RdData要求導致記億體控 制器(HA)自記億體讀取資料之一讀取操作。該讀取導致— CORR(或被更正的)回應(例如’指示該記億體控制器之錯 誤更正碼(Error Correction Code;簡稱ECC)邏輯成功地 更正了諸如DIMM等的記憶體中之暫態錯誤)。該HA將該 被更正的資料送回到該提出要求者 CA0(被標示爲 "DataE — Cmp" ’用以指示已完成了資料錯誤更正)。此外, 在獨立地或在背景處理之方式下,HA可對該記憶體開始 一寫入操作(被標示爲"Scrub/dir write"),其中該寫入操作 可更新目錄(例如,第1圖所示之目錄122),且可將被更 正的資料寫回到該記憶體,因而可讓對該資料的後續讀取 操作不會遭遇ECC更正階段之延遲》 第4圖示出根據一實施例的巡邏式清除之一流程圖。 一般而言,巡邏式清除主動地清除可被更正之軟性記憶體 -12- 201124840 (例如,D R A Μ或D IΜ Μ)錯誤。在一實施例中,巡邏式清 除啓動的遭遇可被更正之錯誤的記憶體讀取將造成以被更 正的資料執行之一記億體寫入。 請參閱第4圖,"ΗΑ"意指本地代理器(視實施例而定 ,該本地代理器可以是第1圖所示的該等代理器中之一代 理器、及/或第2圖所示的諸如MC0-MC3等的該等組件中 之一組件),且"記憶體"意指被耦合到ΗΑ且被該ΗΑ管理 的本地記億體或記憶體(諸如第1圖所示之記憶體1 20及/ 或第3圖所示之ΜΕΜ0-ΜΕΜ3)。 在一實施例中,可以下列各項中之一或多項程式化的 ΗΑ之邏輯1 1 1 :位址範圍(例如,將被執行清除或錯誤偵 測/更正之位址範圍)、跨步(stride)(例如,指示在執行一 清除操作之後如何遞增位址)、以及間隔(例如,指示清除 操作被須被執行的頻繁度)。 如第4圖所示,HA將一讀取操作(例如,該讀取操作 係起源自該HA而非一快取代理器)傳送到記憶體。對該讀 取操作之一正常回應被記憶體確認(如第4圖中之”Ack”標 記所指示)。此外’該HA巡邏(Addr + +標記指示之)該位址 範圍’讀取資料’且將被該記憶體控制器更正的任何資料 (例如,C Ο RR指示的資料)主動地寫到記憶體。因此,對 該被更正的資料之未來讀取操作將不會遭遇ECC試驗的 延遲。更具體而言’如第4圖所示,HA將一讀取發出到 記憶體’接收一 Ack’然後傳送對("Addr + + "指示的)次一 位址之另一讀取’接收一對應的Ack’將次一讀取傳送到 -13- 201124840 記憶體(如CORR標記所示,該讀取被更正),接收CORR Ack,將被更正的資料寫到記憶體,且接收確認訊息 (Ack)(例如,指示已完成了該清除寫入(scrub Write))。 在一實施例中,該巡邏式及需求式清除邏輯係對系統 位址(例如,快速路徑介面(Quick Path Interface;簡稱 QPI)位址操作,而非對被壓縮的"裝置層級"位址操作。因 而意味著巡邏式及需求式清除引擎都可利用在一本地代理 器中實施的向前移動(forward progress)演算法。對於巡邏 式清除器而言,可在該本地代理器的暫存器(例如,控制 及狀態暫存器(Control and Status Register;簡稱 CSR)中 將需要被清除的適當之系統位址範圍、基於系統交插 (system interleave)的位址遞增或跨步、以及清除間隔程式 化。 在該巡邏式清除器完成了對一位址範圍的清除或檢査 之後,該巡邏式清除器可執行下列步驟:(1)觸發一中斷( 諸如一平台管理中斷(Platform Management Interrupt;簡 稱PMI),諸如用以警示軟體抽象層(Software Abstraction Layer)(諸如基本輸入/輸出系統(Basic Input/Output System :簡稱BIOS)),使該BIOS可將各HA暫存器重新程式化 ,以便開始對次一位址範圍之巡邏式清除;或(2)設定一完 成位元,而BIOS可輪詢(poll)該完成位元,以便得知何時 要開始對次一位址範圍之巡邏式清除。 如前文所述,該巡邏式清除器可對被軟體(例如, BIOS)程式化的一位址範圍操作。該清除器針對該範圍內 -14- 201124840 之每一線(例如,快取線)開始對記憶體控制器之一讀取。 如果該巡邏式清除器接收到對該讀取操作之一被更正的回 應’則該巡邏式清除器將一寫入發出到相同的位址。如後 文中將參照第5或6圖而進一步說明的,於執行該寫入操 作時’可使用使用者對快取記憶體目錄的一被程式化之値 及異常警不位元(poison bit)。該特徵適用於有效率地清除 記憶體中被異常警示的資料(其中包括諸如資料線)。 根據一實施例,該清除器可根據下列虛擬碼而操作: hi Ad dr-清除範圍之高位址 loAddr-清除範圍之低位址 currAddr-清除器正在對currAddr操作 stride-在每一清除操作之後currAddr被遞增該量( 例如’ 8路128B(128位元組)的交插將需要將該値設定爲 8x128,也將需要兩次歷程(其中每一歷程係針對128B快 取線的每一 64B半快取線)) scrub_enable_pmi-當完成了對一被程式化的範圍之 清除時觸發pm i scrub_range_done-完成了對目前被程式化的範圍之 清除 scrub_ctr-每隔2個中央處理單元(CPU)時脈開始一 清除操作 SCrUb_en-啓用巡邏式清除器 scrub_with__user_poison-在清除寫入中使用—被使 用者界定之異常警示値 • 15- 201124840 scrub_user_poison_value-將在一清除寫入操作中使 用之異常警示値 scrub_with_user_dirbit-在清除寫入中使用一被使用 者界定之dirbit値 scrub_user_dirbit val-將在一清除寫入操作中使用 之dirbit値 在一實施例中,該scrub_ctr之內定値爲〇xffff。此外 ,除非要求自該範圍底部以外的一位置開始清除,否則該 currAddr可被設定爲loAddr。 因此,在某些實施例中,需求式或巡邏式清除主動地 清除記億體中之軟性錯誤。因而又減少了對記憶體中之相 同位置的後續存取之ECC試驗延遲損失。此種方式也防 止隨著時間經過而累積的多個軟性錯誤。多個軟性錯誤可 能導致資料無法被更正。該巡邏式清除邏輯可在系統位址 空間中操作;因此,對該邏輯之組態設定將是韌體用來設 定系統位址映射關係的演算法之一自然延伸。此外,該 HA可重新使用一或多個向前移動演算法,以便保證清除 操作與結構要求間之公平性。另_方面,如果使用被壓縮 的(裝置層級的)位址實施該清除邏輯,則對向前移動的保 證將變得困難許多且較無效率。這是因爲記憶體控制器可 能必須將唯一的前移機制提供給巡邏式清除器要求及HA 要求。因爲該清除器受到該HA的控制,所以可能將類似 的服務保證品質提供給清除及結構要求。此外,如將於下 文中進一步說明的,在一實施例中,該巡邏式清除邏輯可 -16- 201124840 包含可讓系統韌體清除來自記憶體的被異常警示的資料之 一特徵。該特徵防止了使用有異常警示的資料之嚴重錯誤 〇 第5及6圖示出根據某些實施例而儲存及傳播一本地 代理器上的被異常警示的資料之流程圖。在一實施例中, 該本地代理器維護諸如記憶體的一或多個位元等的記憶體 的一部分之異常警示狀態位元(其中包括諸如6 4 B線邊界 之異常警示狀態位元)。可經由下列各項中之一項而引進 異常警示狀態之維護及更新: (1) 快取代理器對本地代理器之寫回具有被設定之異 常警示位元。在一實施例中,係在資料酬載微片(flit)的諸 如位元52中提供該異常警示位元。使用一特殊之目錄編 碼而將記憶體之對應的線或部分提交到記憶體。該編碼可 利用目錄編碼中之被設定的位元1 2(第1 3位元),以便指 示該資料受到異常警示。請注意,該目錄編碼的較低12 個位元(0-11)可包含正常的MESI /擁有權清單資訊(其中 MESI分別意指被修改的(Modified)、唯一的(Exclusive)、 共用的(Shared)、無效的(Invalid)記億體狀態。可在記憶 體中之備用ECCfii兀中維護該目錄/異常警示。 (2) 自記憶體讀取導致一無法被更正之錯誤;在此種 情形中’該本地代理器會將被異常警示的資料傳送到提出 要求者(假定該本地代理器被要求傳送資料,且並未接收 到對該位址之寫回)。此外,如果該要求需要一目錄更新 ,則該本地代理器會將記憶體的該部分(例如,線)寫回到 •17· 201124840 具有被設定異常警示位元之記憶體。請注意,在導致一無 法被更正之錯誤的一讀取中,(除了資料之外,)目錄編碼 也可能是不可靠的。因此,目錄控制邏輯必須將監控廣播 到該系統中之所有快取代理器。然而,在映射同步期間, 該本地代理器將以透通之方式將無法被更正之讀取以失效 切換之方式切換到映射同步的本地代理器,而不是送回被 異常警示的資料。 (3)自記憶體讀取送回一被異常警示的目錄編碼(且 並無無法被更正之錯誤的結果)。請注意,在此種情形中 ’該目錄編碼本身是正確的,然而,資料可能不是可靠的 。在此種情形中,目錄控制器可將該目錄編碼用來選擇性 地傳送監控。例如,該本地代理器會將被異常警示的資料 傳送到提出要求者(假定該本地代理器被要求傳送資料, 且並未接收到對該位址之寫回)。然而,在映射同步期間, 該本地代理器在一實施例中將以透通之方式將被異常警示 的讀取以失效切換之方式切換到映射同步的本地代理器, 而不是送回被異常警示的資料。此外,自記憶體提取的無 法被更正之一線可能由於對相同位址的一(隱含的或明確的 )清潔寫回(clean writeback)而使異常警示位元被重設。然 而,部分的寫回將持續使該異常警示位元保持被設定。記 憶體中被標示爲被異常警示的一致性線將需要一完全的線 寫入,以便清除該異常警示位元(使用一invitoe/wbmtoi組 合,用以指示CPU已執行了對一完整快取線之一儲存且 並未先讀取該快取線)。此外,在某些實施例中,可將該 -18- 201124840 巡邏式清除邏輯用來選擇性地清除記憶體中之異常警示位 元。 請參閱第5圖,"CA0"及"CA1 "意指快取代理器(視實 施例而定’該快取代理器可以是第1圖所示的該等代理器 中之一代理器、及/或第2圖所示的諸如連接點2 02-2 08或 M C 0 - M C 3等的該等組件中之—組件),"η A "意指本地代理 器(視實施例而定,該本地代理器可以是第1圖所示的該 等代理器中之一代理器、及/或第2圖所示的諸如MC0-MC3等的該等組件中之—組件),且"記憶體"意指被耦合 到HA且被該HA管理的本地記憶體或記憶體(諸如第i圖 所不之記憶體120及/或第3圖所示之MEM0-MEM3)。 如第5圖所示’ ca 1 (可將cA 1之組態設定成一節點 控制器或代理代理器(proxy agent))將—wbm2E/WbEdata( 保有所有權E之快取線寫回)發出到該ha。該資料包含被 設定之異常警示位元。該HA將該資料寫到記憶體,且目 錄持續指向作爲唯一擁有者之CA1。該異常警示位元被設 疋。CA0執行相同位址的一 RdlnvOwn(例如,取得唯一所 有權之一讀取操作)。因爲該目錄指向作爲擁有者之CA1 ’所以該HA將~ SnpInvOwn傳送到CA1(該HA傳送監控 ’以便使其他快取代理器(在該例子中爲C A 1)之所有權無 效)。CA1已無痕迹地逐出該線,因而CA1以RspI對該 SnpInvOwn回應(指示回應是無效的)。 在接收到該監控回應之後,該Η A將資料自記憶體傳 送到CA0。因爲異常警示位元已被設定,所以該HA將被 -19- 201124840 異常警示的資料傳送到CA0。此外,因爲該線的新擁有者 是CA0,所以該HA將該目錄更新爲E@CA0。持續將該資 料上的異常警示位元保持爲被設定》CA0在使用該資料時 將檢査。 請參閱第6圖,有來自第5圖的下列變化: (1) 在接收到該SnpInvOwn之後,CA1以一完整線 寫回作爲回應。該寫回的資料不再是被異常警示的資料。 當該HA接收到未被異常警示的資料時,該HA繼續將該 資料寫到記憶體。該目錄被更新爲E@CA0,此外,記憶 體中之該異常警示位元被清除。 (2) 該HA將該資料傳送到CA0,該資料不再是被異 常警示的資料。 因此’一實施例可讓該系統在第一次遭遇一無法被更 正之錯誤時不必以信號通知一嚴重錯誤。代替性地只需要 終止/停止使用被異常警示的資料之程序。此外,—實施 例保證不會有記憶體資料的無痕迹之毀壞,且/或保證毀 壞的資料將不會被提交到非揮發性記憶體(例如,參照第8 或9圖述及之非揮發性記憶體。 第7圖示出根據一實施例而動態地排除來自該目錄快 取記憶體的一索引/路之一方法700之一流程圖。在—實 施例中’可將參照第1-2及8-9圖述及的各種組件用來執 行參照第7圖述及的該等操作中之一或多個操作。例如, 在各實施例中’ 一本地代理器(或諸如第1圖所示代理器 -20- 201124840 102-1中之一排除邏輯等的本地代理器內之邏輯、第2圖 所示本地代理器、第8或9圖所示之組件...諸如此類)可 執行方法7 〇 〇之操作。 如第1圖所示,一本地代理器可包含一目錄快取記億 體(例如,快取記憶體1 22),用以快取經常被使用之目錄 標記(例如,每一目錄標記追蹤對一64B快取線分割程度 (granularity)之所有權)。在一實施例中,該目錄可追蹤其 中包括輸入/輸出控制中心(Input/output Hub;簡稱I〇H)( 如參照第8圖所示晶片組806或第9圖所示晶片組920所 述之I0H,或I0H可被以其他方式耦合到一連接點或處理 器,以便提供1/◦功能)及節點控制器/代理代理器的多達 64個快取代理器之所有權。該目錄快取記憶體可以是被儲 存在該HA控制的或該HA可存取的記憶體(諸如第1圖所 示之記憶體120或第3圖所示之MEM0-MEM3)的一完整目 錄(的全部或一部分之)一備份。例如,對該Η A的快取線 要求可爲所有權資訊產生該目錄快取記憶體中之一平行査 詢。 在某些實施例中’該目錄針對記憶體的一部分(諸如 一快取線)而追蹤下列各項中之一或多項:無效的線、唯 —所有權、確切的共用者、及/或經由一粗略共用清單之 多個共用者。經由目錄追蹤快取線(或記憶體的其他部分) 的所有權時,可直接監控一子集的快取代理器;因而減少 對系統結構的監控頻寬需求。 在一實施例中,被耦合到該目錄快取記憶體的一邏輯 -21 - 201124840 (圖中未示出)提供了一種動態地停用諸如由於潛在缺陷而 變成硬體錯誤(hard error)來源的快取條目(或其他部分)之 機制。可以同位檢査之方式保護目錄快取記憶體之儲存欄 位,且該等可偵測單一位元錯誤。可藉由主動地停用遭遇 持續性同位檢査錯誤之快取條目,而大幅減少無痕迹之資 料毀壞的機會》該目錄快取記憶體邏輯可以與目錄快取記 憶體索引無關之方式而諸如停用複數個(例如,多達十六 個)路。在一實施例中,一可程式錯誤臨界値可決定將造 成自該目錄快取記憶體排除一特定索引及/或路所需的同 位檢査錯誤之數目。該目錄快取記億體邏輯亦可避免一次 性的軟性錯誤非必要地佔用該等(例如,十六個)暫存器追 蹤條目中之一條目。在某些實施例中,快取記憶體陣列被 組織成8k集合(set)(被分開在兩個實體區(bank)中),且每 —集合有16路。每一路可存放三個欄位,其中包括一個 3 〇位元的標記欄位、以及用來存放1 2 8位元組核心快取線 的兩個64位元組半快取線之MESI及所有權資訊之兩個 I2位元欄位。在一實施例中,可以同位檢査之方式保護每 一欄位。 在一實施例中,該等欄位(可被實施爲內容可定址記 憶體(Content Addressable Memory;簡稱 CAM)可包括下 列各項: -22- 201124840 欄位 說明 Valid 指示該條目是現用的 Indexfll:〇l 指向有同位檢查錯誤之索引 Bank bit 指向有同位檢查錯誤之實體區 Way[3:0] 指向有同位檢查錯誤的索引中之路 Error Count[2:0] 指示索引/路組合中遭遇的同位檢查錯誤之數目 請參閱第7圖’在操作7〇2中,於接收到對目錄快取 記憶體之一位址查詢時,可在操作7 0 4中決定該目錄快取 記憶體在查詢期間是否發生了同位檢查錯誤。如果並未發 生同位檢查錯誤,則在操作706中進行以信令通知命中/ 未命中(例如,以正常方式指示一命中/未命中)。否則,在 操作70 8中,可存取該CAM暫存器,以便尋找一命中, 然後可遞增Err〇r_C〇unt[2:0] ’直到到達操作710中決定 的可程式臨界値爲止。 在操作708中,如果該條目不存在於該等CAM暫存 器,則在一實施例中記錄一新的條目。如果所有的條目已 經塡滿,則可觸發目錄快取記億體溢流位元。如果在一個 以上的路上指示同位檢查錯誤,則只可遞增一錯誤計數。 然而,該目錄快取記憶體可爲被偵測到的每一同位檢查錯 誤安排清除的時程。此種方式保證一次性的軟性錯誤將不 會對後續的存取造成同位檢查錯誤。如果該CAM有一命 中,但是該目錄快取記憶體指示沒有同位檢查錯誤(亦即 ,被記錄的原始條目是一軟性錯誤),則該錯誤計數被遞 減一。此外,零的錯誤計數又將使對應的CAM暫存器條 -23- 201124840 目無效。在一實施例中,在該條目命中了被程式化的錯誤 臨界値之後,不會有任何錯誤計數遞增或遞減。在某些實 施例中,該臨界値可被內定爲二。 在一實施例中,以與每一目錄快取記憶體查詢平行之 方式執行該CAM操作。可將目錄快取記憶體索引及實體 區資訊用於CAM操作。於一 CAM命中時,將條目上的錯 誤計數與該被程式化之錯誤臨界値比較。如果該計數等於 操作上之該臨界値,則將在該CAM條目中存放的路視爲 被停用。可將該停用資訊用來掩蔽對該路之命中或分配。 將已命中該臨界値的條目視爲被停用,直到在一系統狀態 重設時將該等CAM暫存器重設爲止。在一系統狀態重設 之後,可將這些記錄讀出且重新程式化,以避免重新發現 潛在缺陷的損失。 請參閱第7圖,如果錯誤的數目大於界限(或臨界値) ,則可以信號通知可恢復的錯誤,且可排除該集合/路。 否則.,可在操作714中可以一未命中通知被更正之錯誤。 因此,某些實施例動態地排除該目錄快取記憶體之一索引 /路。排除一索弓丨/路時,可防止與存取目錄標記的記憶體 相關聯的額外延遲,此種額外延遲是部分地因爲來自被查 詢的該索引/路上的潛在缺陷之同位檢査錯誤。這些實施 例也可減少該目錄快取記憶體中之任何索引/路的無痕迹 之資料毀壞的機會。 第8圖示出一運算系統8 00的一實施例之一方塊圖》 第1圖所示之該等代理器102中之一或多個代理器可包含 -24- 201124840 運算系統8 0 0的一或多個組件。此外,如第8圖所示,系 統8 00之各組件可包括一目錄快取記憶體(例如,第1圖 所示之目錄快取記憶體122)及/或一清除及/或排除邏輯(例 如’第1圖所示之邏輯111)。然而,可在系統8 00的各種 位置(其中包括或不包括所示之那些位置)中提供該目錄快 取記憶體及/或清除邏輯。運算系統8 00可包含被耦合到 一互連網路(或匯流排)804之一或多個中央處理單元 (Central Processing Unit;簡稱 CPU)8 02(該一或多個 CPU 在本說明書中可被共同地稱爲"各處理器802 ”,或更一般 性地被稱爲”處理器8 0 2 ”)。處理器8 0 2可以是諸如一般用 途處理器 '(可處理經由一電腦網路805傳送的資料之)之 網路處理器、或其他類型之處理器(其中包括精簡指令集 電腦(Reduced Instruction Set Computer;簡稱 RISC)處理 器或複雜指令集電腦(Complex Instruction Set Computer; 簡稱CISC)處理器)等的任何類型的處理器。此外,處理器 8 02可具有單一或多個核心的設計。具有多個核心設計之 處理器802可將不同類型的處理器核心整合到相同的積體 電路(Integrated Circuit;簡稱1C)晶粒中。此外,可將有 多個核心設計之處理器8〇2實施爲對稱式或非對稱式多處 理器。 處理器802可包含一或多個快取記憶體(例如,不同 於所示之目錄快取記億體1 22之快取記憶體),該一或多 個快取記憶體在各實施例中可以是專有的及/或被共用的 。一般而言,快取記憶體儲存對應於被儲存在其他位置的 -25- 201124840 或先前被計算出的原始資料之資料》爲了減少記憶體存取 延遲,一旦資料被儲存在一快取記憶體之後,將不重新提 取或重新計算該原始資料,而是可藉由存取被儲存在該快 取記憶體中之複本,而提供未來的使用。該一或多個快取 記憶體可以是諸如第一階(L1)快取記憶體、第二階(L2)快 取記憶體、第三階(L3 )快取記憶體、中間階快取記憶體、 最後一階快取記憶體(Last Level Cache;簡稱LLC)等的用 來儲存被系統8 00的一或多個組件利用的電子資料(例如 ,其中包括指令)之任何類型之快取記憶體。此外,該一 或多個快取記億體可被設置在各種位置(例如,被設置在 其中包括第1、2、8或9圖所示系統的本發明述及的運算 系統之其他組件之內)。 一晶片組806可額外地被耦合到互連網路804。此外 ,晶片組806可包含一圖形及記憶體控制中心(Graphics Memory Control Hub;簡稱 GMCH) 808。GMCH 8 08 可包 含被耦合到一記憶體8 1 2之一記憶體控制器8 1 0。記憶體 8 12可儲存可被處理器802或與運算系統800中的組件通 訊的任何其他裝置執行的諸如其中包括指令序列之資料。 此外,在本發明的一實施例中,記憶體812可包括一或多 個諸如隨機存取記憶體(RAM)、動態隨機存取記憶體 (DRAM)、同步動態隨機存取記憶體(Synchronous DRAM ; 簡稱 SDRAM)、靜態機存取記憶體(Static RAM ;簡稱 SRAM)等的揮發性儲存(或記憶體)元件。亦可使用諸如硬 碟等的非揮發性記億體。諸如多個處理器及/或多個系統 -26- 201124840 記憶體等的額外之裝置可被耦合到互連網路804。 GMCH 808可進一步包含被耦合到一顯示裝置816之一 圖形介面8 14(例如,經由一實施例中之一圖形加速器)。在 —實施例中,圖形介面8 1 4可經由一加速圖形埠(Accelerated Graphics Port;簡稱AGP)而被耦合到顯示裝置816。在本 發明的一實施例中,顯示裝置816(諸如一平板顯示器)可 經由諸如一信號轉換器而被耦合到圖形介面8 1 4,該信號 轉換器將諸如視訊記憶體或系統記憶體(例如,記憶體 8 12)等的一儲存裝置中儲存的影像之數位表示法轉換爲將 被該顯示器816解譯及顯示之顯示信號。 如第8圖所示,一控制中心介面818可將GMCH 808 辛禹合到一輸入/輸出控制中心(Input/output Control Hub ; 簡稱ICH)8 20。ICH 82 0可將一介面提供給被耦合到運算 系統800之一些輸入/輸出(I/O)裝置。ICH 82〇可經由諸如 可符合PCIe規格之一周邊組件互連(Peripheral Component Interconnect,簡稱PCI)橋接器或通用序列匯流排(Universal Serial Bus;簡稱USB)控制器等的一周邊裝置橋接器(或控 制器)824而被耦合到一匯流排822。橋接器824可提供處 理器802與各周邊裝置間之一資料路徑。可使用其他類型 的拓撲。此外,多個匯流排可諸如經由多個橋接器或控制 器而被親合到IC Η 8 2 0。此外,匯流排8 2 2可包含其他類 型及組態之匯流排系統。此外,在本發明的各實施例中, 被耦合到ICH 8 20的其他周邊裝置可包括整合式磁碟電子 介面(Integrated Drive Electronics ;簡稱 IDE)或小型電腦 -27- 201124840 系統介面(Small Computer System Interface;簡稱 SCSI) 硬碟機、USB埠、鍵盤、滑鼠、平行埠、序列埠、軟碟機 、以及數位輸出支援(例如,數位視訊介面(Digital Video Interface ;簡稱DVI)等的周邊裝置。 匯流排822可被耦合到一音訊裝置8 26、一或多個磁 碟機828、以及一網路配接器830(該網路配接器830在一 實施例中可以是一網路介面卡(NIC))。在一實施例中,被 耦合到匯流排822之網路配接器830或其他裝置可與晶片 組806通訊。此外,在本發明之某些實施例中,各種組件 (例如,網路配接器830)可被耦合到GMCH 808。此外,處 理器802及GMCH 808可被合倂,而構成一單晶片。在一 實施例中,可在該等CPU 802中之一或多個CPU中提供 記憶體控制器810。此外,在一實施例中,GMCH 808及 ICH 820可被合倂成一周邊裝置控制中心(Peripheral Control Hub ;簡稱 PCH)。 此外,運算系統800可包含揮發性及/或非揮發性記 憶體(或儲存裝置)。例如,非揮發性記憶體可包括下列各 項中之一或多項:唯讀記憶體(Read Only Memory;簡稱 ROM)、可程式唯讀記憶體(Programmable ROM ;簡稱 PROM)、可抹除可程式唯讀記憶體(Erasable PROM ;簡稱 EPROM)、電氣可抹除可程式唯讀記憶體(Electrically EPROM ;簡稱EEPROM)、磁碟機(例如828)、軟碟、唯讀 光碟(Compact Disk ROM;簡稱CD-ROM)、數位多功能光 碟(Digital Versatile Disk;簡稱 DVD)、快閃記憶體、磁 -28- 201124840 光碟、或可儲存電子資料(例如,其中包括指令)的其他類 型之非揮發性機器可讀取的媒體。 在一實施例中,記憶體8 1 2可包含下列各項中之一或 多項:作業系統(Operating System;簡稱0/S)83 2、應用 程式834、目錄801、及/或裝置驅動程式8 3 6。記憶體 812亦可包含記憶體映射式輸入/輸出(Memory Mapped I/O ;簡稱MMI0)操作專用的一些區域。記憶體812中儲存之 程式及/或資料可被交換到磁碟機8 2 8,作爲記憶體管理操 作的一部分》該一或多個應用程式8 34可(諸如在該一或 多個處理器802上)被執行,而將一或多個封包傳送到被 耦合到網路80 5之一或多個運算裝置。在一實施例中,封 包可以是可被自至少一傳送器傳輸到至少一接收器(例如 ’經由諸如網路805等的一網路)的一或多個電信號編碼 之一序列的一或多個符號及/或値。例如,每一封包可具 有一標頭,該標頭包含諸如來源位址、目標位址、及封包 類型等的可被用於繞送及/或處理該封包之各種資訊。每 一封包亦可具有一酬載,該酬載包含經由一電腦網路(諸 如網路805)而在各運算裝置之間傳輸的該封包之原始資料 (或內容)。 在一實施例中,應用程式834可將0/S 832用來諸如 經由裝置驅動程式83 6而與系統800的各組件通訊。因此 ,裝置驅動程式836可包括網路配接器830特有命令,用 以提供0/S 8 3 2與網路配接器8 3 0或經由晶片組8 06而被 耦合到系統8 00的其他I/O裝置間之一通訊介面。 -29- 201124840 在一實施例中,O/S 8 3 2可包含一網路協定堆疊。協 定堆疊通常意指可被執行而處理經由一網路805傳送的封 包之一組程序或程式,其中該等封包可符合一特定協定。 例如,可使用一傳輸控制協定/網際網路協定(Transfer Control Protocol/Internet Protocol ;簡稱 TCP/IP)堆疊以 處理TCP/IP封包。裝置驅動程式83 6可指示記憶體812 中將諸如經由該協定堆疊而被處理之緩衝區。 網路8 05可包括任何類型之電腦網路。網路配接器 830可進一步包含一直接記憶體存取(Direct Memory Access ;簡稱DMA)引擎,該DMA引擎將封包寫到被指定 給用來經由網路805而傳輸及/或接收資料的(諸如被儲存 在記憶體812之)可用描述符(descriptor)之緩衝器(例如, 被儲存在記憶體812中)。此外,網路配接器830可包含 一網路配接器控制器,該網路配接器控制器可包含用來執 行與配接器有關的操作之邏輯(諸如一或多個可程式處理 器)。在一實施例中,該配接器控制器可以是一媒體存取 控制(Media Access Control ;簡稱 MAC)組件。網路配接 器83 0可進一步包含諸如任何類型之揮發性/非揮發性記 憶體(例如,其中包括一或多個快取記憶體及/或參照記憶 體8 1 2述及的其他記憶體類型)等的一記憶體。 第9圖示出根據本發明的一實施例而被配置成點對點 (Point-to-Poirit;簡稱PtP)組態之一運算系統900。第 9 圖尤其示出以一些點對點介面將處理器、記憶體、及輸入 /輸出裝置互連之一系統。系統900的一或多個組件可執 -30- 201124840 行前文中參照第1 - 8圖所述之操作。 如第9圖所示,系統900可包含數個處理器,而爲了 顧及圖式的清晰,圖中只示出兩個處理器902及904。處 理器 902及 904可分別包含一本地記憶體控制中心 (GMCH)906及908,用以能夠進行與記憶體910及912間 之通訊。記憶體910及/或912可儲存諸如中參照第9圖 的記憶體9 1 2所述之那些資料等的各種資料。如第9圖所 示’處理器902及904(或系統900的諸如晶片組920或 I/O裝置943等的其他組件)亦可包含諸如前文中參照第^ 8圖所述的那些快取記憶體等的一或多個快取記憶體。 在一實施例中,處理器902及904可以是參照第9圖 所述的該等處理器902中之一處理器。處理器902及904 可分別使用點對點介面電路9 1 6及9 1 8而經由一點對點介 面914交換資料。此外’處理器902及904可分別使用點 對點介面電路926、928、930、及932而經由個別的點對 點介面922及924與一晶片組920交換資料。晶片組920 可進一步使用諸如一點對點介面電路9 3 7以經由一高效能 圖形介面936而與一高效能圖形電路934交換資料》 在至少一實施例中,可在處理器902 ' 904、及/或晶 片組920中之一者或多者中提供—目錄快取記憶體及/或 清除邏輯。然而,本發明之其他實施例可在第9圖所示之 系統900內存在有其他的電路、邏輯單元、或裝置。此外 ’本發明的其他實施例可能被分佈了第9圖所示之數個電 路、邏輯單元、或裝置。例如,系統9〇〇之各實施例可包 -31 - 201124840 含一目錄快取記憶體(例如,第1圖所示之目錄快取記億 體122)及/或一清除或排除邏輯(例如,第1圖所示之邏輯 1 1 1)。然而,可在系統900的各種位置(其中包括或不包括 所示之那些位置)中提供該目錄快取記憶體及/或清除邏輯 〇 晶片組920可使用一點對點介面電路941與一匯流排 940通訊。匯流排940可具有與其通訊之諸如一匯流排橋 接器942及I/O裝置943等的一或多個裝置。匯流排橋接 器942可經由一匯流排944而與諸如鍵盤/滑鼠945、通訊 裝置946(例如,可與電腦網路905通訊的數據機、網路介 面裝置、或其他通訊裝置)、音訊I/O裝置、及/或資料儲 存裝置94 8等的其他裝置通訊。資料儲存裝置948可儲存 處理器902及/或9 04可執行的程式碼949。 在本發明之各實施例中,可將本發明參照諸如第1-9 圖所述之該等操作實施爲硬體(例如,電路)、軟體、韌體 、微碼、或以上各項之組合,且可以電腦程式產品之形式 提供以上各項或其組合,例如,該電腦程式產品包括儲存 有用來將電腦程式化成執行本發明中述及的程序的指令( 或軟體程序)之機器可讀取的或電腦可讀取的媒體。此外 ’術語"邏輯"可包括諸如軟體、硬體、或軟體及硬體之組 合。該機器可讀取的媒體可包括諸如參照第1_9圖述及的 那些儲存裝置等的儲存裝置。此外,可以電腦程式產品之 形式下載此種電腦可讀取的媒體,其中可經由一通訊鏈路 (例如,一匯流排、一數據機、或一網路連線)且利用載波 -32- 201124840 或其他傳播媒介中提供之資料信號而將程式自一遠端電腦 (例如’一伺服器)傳輸到提出要求的電腦(例如,—用戶端 電腦)。 在本說明書中提及"一個實施例”或"一實施例”時意指 參照該實施例述及的一特定的特性、結構、或特徵可被包 含在至少一實施方式中。在本說明書的各處中出現詞語" 在一實施例中”時’可以或可以不都參照到相同的實施例 0 此外,在說明及申請專利範圍中,可使用術語"被耦 合”及"被連接"以及其派生詞。在本發明之某些實施例中 ,"被連接”可被用來指示兩個或更多個元件相互在實體上 或電氣上直接接觸。"被親合"可意指:兩個或更多個元件 在實體上或電氣上直接接觸。然而,"被耦合"亦可意指: 兩個或更多個元件可能沒有相互直接接觸,但仍然可相互 配合或作用。 因此,雖然已以與結構特徵及/或方法行動有關的語 文說明了本發明之實施例,但是我們應可了解··申請專利 範圍的主題可不限於本說明書中述及的該等特定的特徵或 行動。更確切地說,係以實施申請專利範圍的主題之樣本 形式之方式揭示該等特定的特徵或行動。 【圖式簡單說明】 前文中已參照各附圖而提供了實施方式。在該等圖式 中’代號最左方的數字識別該代號首次出現的圖式。在不 -33- 201124840 同的圖式中將使用相同的代號標示類似的或相同的項目° 第1-2及8-9圖示出可被用來實施本發明中述及的各 實施例的運算系統的實施例之方塊圖。 第3-7圖示出根據某些實施例之流程圖。 【主要元件符號說明】 100,200,800,900 :運算系統 102,102-1-102-M:代理器 104 :網路結構 1 06,1 08 :單向鏈路 1 10 :雙向鏈路 1 1 1 :清除或排除邏輯 122 :目錄快取記億體 120,812,910,912 :記億體 202-208 :連接點 806,920 :晶片組 804 :互連網路 802,902,904 :處理器 805,905 :電腦網路 808,906,908:圖形及記憶體控制中心 8 1 0 :記憶體控制器 8 1 4 :圖形介面 816 :顯示裝置 8 1 8 :控制中心介面 -34- 201124840 8 2 0 :輸入/輸出控制中心 822,940,944 :匯流排 824 :周邊裝置橋接器 8 26 :音訊裝置 8 2 8 :磁碟機 8 3 0 :網路配接器 8 3 2 :作業系統 8 34 :應用程式 801 :目錄 8 3 6 :裝置驅動程式 943 :輸入/輸出裝置 9 1 4,922,924 :點對點介面 916,918,926,928,930,932,937,941 :點對點介面電路 9 3 4 :高效能圖形電路 93 6 :高效能圖形介面 942 :匯流排橋接器 945 :鍵盤/滑鼠 946 :通訊裝置 948 :資料儲存裝置 9 4 9 :程式碼 -35-
Claims (1)
- 201124840 七、申請專利範圍: 1. —種裝置,包含: 一第一代理器,用以 標位址之一要求; 被稱合到該第一代理 存對應於被耦合到該第一 料; 被稱合到該第一代理 該要求之資料;以及 —清除邏輯,用以更 的位置上之錯誤。 2. 如申請專利範圍第 在該記憶體中對應於該目 要求的該資料之一被更正 3 .如申請專利範圍第 於存取該記憶體期間更正 4.如申請專利範圍第 複數個目標位址,且該清 該複數個目標位址之複數 5 .如申請專利範圍第 包含該清除邏輯。 6.如申請專利範圍第 回應自該複數個快取代理 到之一或多個監控回應而 自一第二代理器接收對應於一目 器之一目錄快取記億體,用以儲 代理器的複數個快取代理器之資 器之一記億體,用以儲存對應於 正該記憶體中對應於該目標位址 1項之裝置,其中該第一代理器 標位址的該位置上寫入對應於該 版本。 1項之裝置,其中錯誤更正碼將 錯誤。 1項之裝置,其中該要求對應於 除邏輯將存取該記憶體中對應於 個位置。 1項之裝置,其中該第一代理器 1項之裝置,其中該第一代理器 器中之一或多個快取代理器接收 更新該目錄快取記憶體。 -36- 201124840 7 ·如申請專利範圍第1項之裝置’其中該第〜代理器 將一或多個監控傳送到被該目錄快取記憶體識別爲具有對 應於該目標位址的資料的一拷貝之該複數個快取代理器中 之一或多個快取代理器。 8 .如申請專利範圍第1項之裝置’其中該第一代理器 是該目標位址之一本地代理器。 9 .如申請專利範圍第1項之裝置,進一步包含用來耦 合該第一代理器及該第二代理器之一序列鏈路。 1 〇.如申請專利範圍第1項之裝置’其中該第一代理 器及該第二代理器是在一相同的積體電路晶粒中。 1 1.如申請專利範圍第1項之裝置’其中該記憶體儲 存一或多個異常警示位元,用以指示該記憶體的一或多個 對應的部分是否儲存了具有無法被更正的錯誤之資料。 12.—種裝置,包含: 一第一代理器,用以自一第二代理器接收對應於一目 標位址之一要求: 被耦合到該第一代理器之一目錄快取記憶體,用以儲 存對應於被耦合到該第一代理器的複數個快取代理器之資 料; 被耦合到該第一代理器之一記憶體,用以儲存對應於 該要求之資料;以及 一排除邏輯,用以回應對應於該目錄快取記億體之錯 誤數目超過一臨界値而排除該目錄快取記憶體之一索引或 路。 •37- 201124840 13. 如申請專利範圍第12項之裝置,進一步包含一內 容可定址記億體,用以爲該目錄快取記憶體的每一條目儲 存下列各欄位中之一或多個欄位:一有效性欄位、一索引 欄位、一區欄位、一路欄位、以及一錯誤計數欄位。 14. 如申請專利範圍第12項之裝置,其中該第一代理 器回應自該複數個快取代理器中之一或多個快取代理器接 收到之一或多個監控回應而更新該目錄快取記憶體。 1 5 ·如申請專利範圍第1 2項之裝置,其中該第一代理 器包含該排除邏輯。 1 6 .如申請專利範圍第1 2項之裝置,其中該第一代理 器將一或多個監控傳送到被該目錄快取記憶體識別爲具有 對應於該目標位址的資料的一拷貝之該複數個快取代理器 中之一或多個快取代理器。 17. 如申請專利範圍第12項之裝置,其中該第一代理 器是該目標位址之一本地代理器。 18. 如申請專利範圍第12項之裝置,進一步包含用來 耦合該第一代理器及該第二代理器之一序列鏈路。 19. 如申請專利範圍第12項之裝置,其中該第一代理 器及該第二代理器是在一相同的積體電路晶粒中。 20. 如申請專利範圍第12項之裝置,其中該記憶體儲 存一或多個異常警示位元,用以指示該記憶體的一或多個 對應的部分是否儲存了具有無法被更正的錯誤之資料❶ 21. ~種方法,包含下列步驟: 在一第一代理器上接收對應於一目標位址之一要求; -38- 201124840 以及 將對應於被耦合到該第一代理器的複數個快取代理器 之資料儲存在一目錄快取記憶體; 將對應於該要求之資料儲存在一記憶體;以及 基於該第一代理器在該記憶體中對應於該目標位址的 該位置上寫入對應於該要求的該資料之一被更正版本,而 更正該記憶體中對應於該目標位址的位置上之錯誤。 22. 如申請專利範圍第21項之方法,其中該要求對應 於複數個目標位址,且更正錯誤之該步驟包含下列步驟: 存取該記憶體中對應於該複數個目標位址之複數個位置。 23. 如申請專利範圍第21項之方法,其中更正錯誤之 該步驟包含下列步驟:錯誤更正碼在存取該記憶體期間更 正錯誤。 24. 如申請專利範圍第21項之方法,進一步包含下列 步驟:將資料儲存在該目錄快取記憶體,以便指示該複數 個快取代理器中之哪一快取代理器有對應於該目標位址的 資料之一拷貝。 2 5 .如申請專利範圍第2 1項之方法,進一步包含下列 步驟:回應自該複數個快取代理器中之一或多個快取代理 器接收到之一或多個監控回應而更新該目錄快取記憶體。 2 6 .—種系統,包含: 一記憶體,用以儲存一目錄; 一第一代理器’用以接收對應於該記憶體中之一目標 位址之一要求’其中該記憶體儲存對應於該要求之資料; -39- 201124840 以及 被耦合到該第一代理器之一目錄快取記憶體,用以儲 存對應於被耦合到該第一代理器的複數個快取代理器之資 料,其中該目錄快取記憶體中被儲存之資料指示該複數個 快取代理器中之哪一快取代理器有對應於該目標位址的資 料之一拷貝,其中該第一代理器包含下列邏輯中之至少一 邏輯: 一清除邏輯,用以更正該記憶體中對應於該目標位址 的位置上之錯誤;或 一排除邏輯,用以回應對應於該目錄快取記億體之錯 誤數目超過一臨界値而排除該目錄快取記億體之一索引或 路。 27. 如申請專利範圍第26項之系統,其中該第一代理 器在該記憶體中對應於該目標位址的該位置上寫入對應於 該要求的該資料之一被更正版本。 28. 如申請專利範圍第26項之系統,進一步包含一內 容可定址記憶體’用以爲該目錄快取記憶體的每一條目儲 存下列各欄位中之一或多個欄位:一有效性欄位、一索引 欄位、一區欄位、一路欄位、以及一錯誤計數欄位。 2 9.如申請專利範圍第26項之系統,其中該錯誤更正 碼將於存取該記憶體期間更正錯誤。 30.如申請專利範圍第26項之系統,其中該記憶體儲 存一或多個異常警示位元,用以指示該記憶體的—或多個 對應的部分是否儲存了具有無法被更正的錯誤之資料。 -40-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/571,381 US8327228B2 (en) | 2009-09-30 | 2009-09-30 | Home agent data and memory management |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201124840A true TW201124840A (en) | 2011-07-16 |
TWI428742B TWI428742B (zh) | 2014-03-01 |
Family
ID=43781634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099127127A TWI428742B (zh) | 2009-09-30 | 2010-08-13 | 用於本地代理器資料及記憶體管理的裝置、方法及系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8327228B2 (zh) |
CN (2) | CN107273307B (zh) |
TW (1) | TWI428742B (zh) |
WO (1) | WO2011041047A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327228B2 (en) | 2009-09-30 | 2012-12-04 | Intel Corporation | Home agent data and memory management |
US8799586B2 (en) | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
TWI783522B (zh) * | 2021-06-11 | 2022-11-11 | 群聯電子股份有限公司 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719500B2 (en) * | 2009-12-07 | 2014-05-06 | Intel Corporation | Technique for tracking shared data in a multi-core processor or multi-processor system |
US8316189B2 (en) * | 2009-12-09 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Rescinding ownership of a cache line in a computer system |
US8447934B2 (en) * | 2010-06-30 | 2013-05-21 | Advanced Micro Devices, Inc. | Reducing cache probe traffic resulting from false data sharing |
WO2012149812A1 (zh) * | 2011-10-27 | 2012-11-08 | 华为技术有限公司 | 一种防止节点控制器死锁的方法及节点控制器 |
CN102521163B (zh) * | 2011-12-08 | 2014-12-10 | 华为技术有限公司 | 目录替换方法及设备 |
CN105513647A (zh) * | 2011-12-23 | 2016-04-20 | 英特尔公司 | 用于堆叠存储器架构的自修复逻辑 |
CN103999162A (zh) | 2011-12-23 | 2014-08-20 | 英特尔公司 | 用于堆叠存储器架构的自修复逻辑 |
US10025647B2 (en) | 2012-06-30 | 2018-07-17 | Intel Corporation | Memory poisoning with hints |
US20140040561A1 (en) * | 2012-07-31 | 2014-02-06 | Futurewei Technologies, Inc. | Handling cache write-back and cache eviction for cache coherence |
JP5965076B2 (ja) * | 2012-09-25 | 2016-08-03 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | 訂正不能メモリエラー処理方法及びその可読媒体 |
DE112013005093T5 (de) * | 2012-10-22 | 2015-10-22 | Intel Corporation | Hochleistungszusammenschaltungsbitübertragungsschicht |
US10268583B2 (en) | 2012-10-22 | 2019-04-23 | Intel Corporation | High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier |
US9189330B2 (en) * | 2013-04-11 | 2015-11-17 | International Business Machines Corporation | Stale data detection in marked channel for scrub |
US9817738B2 (en) * | 2015-09-04 | 2017-11-14 | Intel Corporation | Clearing poison status on read accesses to volatile memory regions allocated in non-volatile memory |
US11429480B2 (en) * | 2020-08-31 | 2022-08-30 | Micron Technology, Inc. | Method of demand scrubbing by placing corrected data in memory-side cache |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69523124T2 (de) | 1994-12-15 | 2002-05-29 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Fehlererkennungssystem für einen gespiegelten Speicher in einer duplizierten Steuerung eines Plattenspeicherungssystems |
US5832306A (en) * | 1995-10-18 | 1998-11-03 | Silicon Graphics, Inc. | Acknowledge triggered forwarding of external block data responses in a microprocessor |
US5869869A (en) * | 1996-01-31 | 1999-02-09 | Lsi Logic Corporation | Microelectronic device with thin film electrostatic discharge protection structure |
US6455916B1 (en) * | 1996-04-08 | 2002-09-24 | Micron Technology, Inc. | Integrated circuit devices containing isolated dielectric material |
US6035436A (en) * | 1997-06-25 | 2000-03-07 | Intel Corporation | Method and apparatus for fault on use data error handling |
ATE254778T1 (de) * | 1997-09-05 | 2003-12-15 | Sun Microsystems Inc | Nachschlagtabelle und verfahren zur datenspeicherung darin |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6349368B1 (en) | 1999-06-24 | 2002-02-19 | International Business Machines Corporation | High performance mechanism to support O state horizontal cache-to-cache transfers |
US6536000B1 (en) * | 1999-10-15 | 2003-03-18 | Sun Microsystems, Inc. | Communication error reporting mechanism in a multiprocessing computer system |
US6725343B2 (en) | 2000-10-05 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system |
JP2002232425A (ja) | 2001-01-30 | 2002-08-16 | Mitsubishi Electric Corp | 通信サービスユニットおよび通信方式 |
US20070208243A1 (en) * | 2002-01-16 | 2007-09-06 | Nanomix, Inc. | Nanoelectronic glucose sensors |
GB0216000D0 (en) | 2002-07-10 | 2002-08-21 | Nokia Corp | A method for setting up a security association |
US20050208304A1 (en) * | 2003-02-21 | 2005-09-22 | California Institute Of Technology | Coatings for carbon nanotubes |
US7962696B2 (en) | 2004-01-15 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for updating owner predictors |
US7177987B2 (en) | 2004-01-20 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for responses between different cache coherency protocols |
US7475321B2 (en) | 2004-12-29 | 2009-01-06 | Intel Corporation | Detecting errors in directory entries |
US7579397B2 (en) * | 2005-01-27 | 2009-08-25 | Rensselaer Polytechnic Institute | Nanostructured dielectric composite materials |
US7496823B2 (en) * | 2005-03-16 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Hardware based memory scrubbing |
US7543179B2 (en) * | 2005-03-21 | 2009-06-02 | Intel Corporation | Error management topologies |
US7620694B2 (en) | 2005-09-27 | 2009-11-17 | Intel Corporation | Early issue of transaction ID |
KR100698087B1 (ko) * | 2005-12-29 | 2007-03-23 | 동부일렉트로닉스 주식회사 | 반도체 소자의 제조 방법 |
US8151323B2 (en) | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US7600080B1 (en) | 2006-09-22 | 2009-10-06 | Intel Corporation | Avoiding deadlocks in a multiprocessor system |
US7836258B2 (en) * | 2006-11-13 | 2010-11-16 | International Business Machines Corporation | Dynamic data cache invalidate with data dependent expiration |
US20080313495A1 (en) * | 2007-06-13 | 2008-12-18 | Gregory Huff | Memory agent |
US8352806B2 (en) * | 2008-01-31 | 2013-01-08 | International Business Machines Corporation | System to improve memory failure management and associated methods |
US8782347B2 (en) | 2009-06-26 | 2014-07-15 | Intel Corporation | Controllably exiting an unknown state of a cache coherency directory |
US8966195B2 (en) * | 2009-06-26 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Direct memory access and super page swapping optimizations for a memory blade |
US8799586B2 (en) | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
US8327228B2 (en) | 2009-09-30 | 2012-12-04 | Intel Corporation | Home agent data and memory management |
-
2009
- 2009-09-30 US US12/571,381 patent/US8327228B2/en not_active Expired - Fee Related
-
2010
- 2010-08-13 TW TW099127127A patent/TWI428742B/zh active
- 2010-08-25 WO PCT/US2010/046658 patent/WO2011041047A2/en active Application Filing
- 2010-09-26 CN CN201710264677.XA patent/CN107273307B/zh not_active Expired - Fee Related
- 2010-09-26 CN CN201010503919.4A patent/CN102033817B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327228B2 (en) | 2009-09-30 | 2012-12-04 | Intel Corporation | Home agent data and memory management |
US8799586B2 (en) | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
TWI783522B (zh) * | 2021-06-11 | 2022-11-11 | 群聯電子股份有限公司 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
US11983069B2 (en) | 2021-06-11 | 2024-05-14 | Phison Electronics Corp. | Data rebuilding method, memory storage apparatus, and memory control circuit unit |
Also Published As
Publication number | Publication date |
---|---|
US8327228B2 (en) | 2012-12-04 |
CN107273307B (zh) | 2020-11-13 |
WO2011041047A3 (en) | 2011-06-23 |
TWI428742B (zh) | 2014-03-01 |
CN102033817A (zh) | 2011-04-27 |
WO2011041047A2 (en) | 2011-04-07 |
US20110078492A1 (en) | 2011-03-31 |
CN102033817B (zh) | 2018-02-27 |
CN107273307A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI428742B (zh) | 用於本地代理器資料及記憶體管理的裝置、方法及系統 | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
US9065706B2 (en) | Information processing apparatus, computer-readable recording medium, and control method | |
CN103119571B (zh) | 用于目录高速缓存的分配和写策略的装置和方法 | |
JP4737691B2 (ja) | 排他的所有権のスヌープフィルタ | |
TWI391821B (zh) | 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法 | |
TWI506433B (zh) | 監測過濾機構 | |
US7343515B1 (en) | System and method for performing error recovery in a data processing system having multiple processing partitions | |
TWI480883B (zh) | 資訊處理裝置及控制方法 | |
JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
JP2003162447A (ja) | エラー回復 | |
KR20010101193A (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템 | |
US20160350219A1 (en) | Cache coherency | |
US20220164252A1 (en) | Error correcting codes for multi-master memory controller | |
KR101498452B1 (ko) | 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 | |
TWI502346B (zh) | 根據窺探回應資訊之目錄快取分配技術 | |
US9436613B2 (en) | Central processing unit, method for controlling central processing unit, and information processing apparatus | |
JPH1185615A (ja) | 情報処理システム及び情報処理装置及びその制御方法 | |
JPH05324470A (ja) | マルチプロセッサシステムとそのキャッシュメモリ制御方法および装置 |