TWI428742B - 用於本地代理器資料及記憶體管理的裝置、方法及系統 - Google Patents
用於本地代理器資料及記憶體管理的裝置、方法及系統 Download PDFInfo
- Publication number
- TWI428742B TWI428742B TW099127127A TW99127127A TWI428742B TW I428742 B TWI428742 B TW I428742B TW 099127127 A TW099127127 A TW 099127127A TW 99127127 A TW99127127 A TW 99127127A TW I428742 B TWI428742 B TW I428742B
- 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
本發明之揭示係大致有關電子學之領域。更具體而言,本發明之一實施例係有關本地代理器資料及記憶體管理。
可使用監控式匯流排(snoopy bus)或基於目錄的協定而保持電腦系統中之快取記憶體的一致性。無論在哪種情況下,記憶體位址都與該系統中之特定位置相關聯。該位置通常被稱為一記憶體位址之"本地節點"("home node")。
在一基於目錄的協定中,各處理/快取代理器將要求傳送到一本地節點,以便存取與一對應的"本地代理器"("home agent")相關聯之一記憶體位址。因此,此種電腦系統之效能可直接取決於管理本地代理器資料及/或記憶體之有效率程度。
本發明說明了與本地代理器資料及記憶體管理有關之方法及裝置。在一實施例中,一清除邏輯將被更正的資料寫回到一記憶體中對應於一目標位址之一位置,而更正該目標位置上之錯誤。在一實施例中,一排除邏輯回應對應於一目錄快取記憶體之錯誤數目超過一臨界值,而排除該目錄快取記憶體之一索引或路。也揭示了其他實施例。
在下文的說明中,述及許多特定細節,以便提供對各實施例的徹底了解。然而,可在沒有這些特定細節的情形下實施某些實施例。在其他的情形中,並未詳述習知的方法、程序、組件、及電路,以便不會模糊了該等特定實施例。
本發明述及的某些實施例係大致有關諸如使用系統位址以清除本地代理器上之記憶體。該記憶體清除可能涉及記憶體裝置中之錯誤的偵測及/或更正。如將於本發明中參照諸如第3及4圖而進一步說明的,可以需求式清除或巡邏式清除之方式執行該清除。
此外,在某些實施例中,在首次遭遇無法被更正的錯誤之後,可將一或多個異常警示狀態位元(poison status bit)用來避免或至少減少以信令通知嚴重錯誤之機會。此外,一實施例保證不會有記憶體資料的無痕迹之毀壞(silent corruption),及/或保證毀壞的資料不會被提交到非揮發性記憶體。
此外,在一實施例中,來自該目錄快取記憶體之一索引/路被動態地排除。一般而言,目錄快取記憶體(在本說明書中也被參照為"Dir$",而在一實施例中,該目錄快取記憶體可在與本地代理器相同的積體電路晶粒中)儲存與位址及對應的擁有者有關之資訊,且該等資訊可被該系統中之一或多個代理器儲存。例如,該快取記憶體可指示哪些代理器可能正在儲存與一特定位址相關聯的被要求之資料,且因而指示其為該位址上的資料之擁有者。因此,假定該目錄包含與該系統的快取代理器中之一致性單元(例如,快取線、快取區塊、或記憶體或快取記憶體的另一部分)的快取狀態有關之資訊,以便能夠達到諸如減少或避免監控廣播等的監控流量的目的。此外,因為該目錄快取記憶體被有效率地維護,所以可經由一或多個較小的目錄快取記憶體而減少設計預算。
一般而言,可使用監控式匯流排或基於目錄的協定而保持運算系統中之快取記憶體的一致性。無論在哪種情況下,系統記憶體位址都與該系統中之特定位置相關聯。該位置通常被稱為該記憶體位址之"本地節點"。在一基於目錄的協定中,處理/快取代理器可將要求傳送到該本地節點,以便存取與一"本地代理器"相關聯的一記憶體位址。此外,在分散式快取記憶體(distributed cache)一致性協定中,快取代理器可將要求傳送到用來控制對於對應的記憶體空間的一致性存取之本地代理器。本地代理器又負責保證被要求資料的最新拷貝自記憶體或擁有該被要求資料的一快取代理器被送回到提出要求者。該本地代理器亦可負責在該要求是諸如針對一唯一拷貝時使其他快取代理器上的資料拷貝無效。為了達到這些目的,本地代理器通常可監控每一快取代理器,或可依賴用來追蹤可能被用來儲存資料的一組快取代理器之一目錄。
本說明書中將說明可被用來實施各實施例的諸如後文中將參照第1及8-9圖述及之系統等的各種運算系統。更具體而言,第1圖示出根據本發明的一實施例的一運算系統100之一方塊圖。系統100可包含一或多個代理器102-1至102-M(在本說明書中共同地被稱為"各代理器102"或更一般性地被稱為"代理器102")。在一實施例中,該等代理器102中之一或多個代理器可以是諸如參照第8-9圖所述的運算系統等的一運算系統之任何組件。
如第1圖所示,該等代理器102可經由一網路結構104而通訊。在一實施例中,網路結構104可包括可讓各代理器(諸如運算裝置)傳送及接收資料之一電腦網路。在一實施例中,網路結構104可包括經由一序列(例如,點對點)鏈路及/或一共用式通訊網路而通訊之一或多個互連(或互連網路)。例如,某些實施例可促進可與全緩衝式雙直列記憶體模組(Fully Buffered Dual-in-line memory module;簡稱FBD)間之通訊的鏈路上之組件除錯或驗證,例如,其中該FBD鏈路是用來將記憶體模組耦合到一主機控制裝置(諸如一處理器或一記憶體控制中心)之一序列鏈路。可自該FBD通道主機傳輸除錯資訊,使通道流量蹤跡擷取工具(諸如一或多個邏輯分析器)可沿著該通道觀測該除錯資訊。
在一實施例中,系統100可支援一分層協定體系,該分層協定體系可包含一實體層、一鏈路層、一路由層、一傳輸層、及/或一協定層。結構104可針對點對點或共用式網路而進一步促進自一協定(例如,快取處理器或考慮快取(caching aware)之記憶體控制器)至另一協定的資料(例如,形式為封包)之傳輸。此外,在某些實施例中,網路結構104可提供遵守一或多種快取一致性協定之通訊。
此外,如第1圖之箭頭方向所示,代理器102可經由網路結構104而傳輸及/或接收資料。因此,某些代理器可將單向鏈路用於通訊,而其他的代理器可將雙向鏈路用於通訊。例如,一或多個代理器(諸如代理器102-M)可傳輸資料(例如,經由一單向鏈路106),其他一或多個代理器(例如,代理器102-2)可接收資料(例如,經由一單向鏈路108),而某一或多個代理器(例如,代理器102-1)可同時傳輸及接收資料(例如,經由一雙向鏈路110)。
此外,如將於本說明書進一步說明的,該等代理器102中之至少一代理器可以是一本地代理器,且該等代理器102中之一或多個代理器可以是要求或快取代理器。如圖所示,至少一代理器(圖中只示出一代理器102-1)可包含或可使用一清除或排除邏輯(或引擎)111,以便分別根據需求或以巡邏式清除之方式(將於本說明書下文中諸如參照第2-3圖而進一步說明巡邏式清除)清除記憶體中之錯誤,或排除記憶體的一些部分(例如,如將於本說明書下文中參照第7圖而進一步說明的,排除目錄快取記憶體122的諸如快取線或條目(entry)等的一些部分)。此外,在一實施例中,該等代理器102中之一或多個代理器(圖中只示出一代理器102-1)可存取諸如記憶體120等的一記憶體(該記憶體可能被該代理器專用,或被其他代理器共用)。此外,該等代理器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 Memory Module;簡稱DIMM)構成之系統記憶體的一本地部分。
如第2圖所示,每一連接點可被耦合到一記憶體控制器(Memory Controller;簡稱MC)/本地代理器(Home Agent;簡稱HA)(諸如MC0/HA0至MC3/HA3)。該等記憶體控制器可被耦合到可以是系統記憶體(諸如第9圖所示的記憶體912)之一對應的本地記憶體(被標示為MEM0至MEM3)。在某些實施例中,該記憶體控制器(MC)/本地代理器(HA)(諸如MC0/HA0至MC3/HA3)可以相同於或類似於第1圖所示之代理器102-1(例如,其中包括邏輯111等的組件),且被標示為MEM0至MEM3之該記憶體可以相同於或類似於第1圖所示之記憶體120。此外,在一實施例中,MEM0至MEM3之組態可被設定成諸如以主控及從屬之方式映射資料。此外,在某些實施例中,系統200的一或多個組件可被包含在相同的積體電路晶粒中。
諸如第2圖所示之實施例因而可被用於具有映射同步(mirroring)功能之一連接點無黏接組態(socket glueless configuration)。例如,被指定給一記憶體控制器(諸如MC0/HA0)之資料可經由該點對點鏈路而被映射同步到另一記憶體控制器((諸如MC3/HA3)。此外,在複製為映射同步時,可以未知(U)狀態將與記憶體控制器MC3/HA3相關聯的目錄初始化。於失效切換(failover)至該控制器(例如,由於對該記憶體控制器之一線上服務呼叫)時,可自該U狀態重建該目錄。
第3圖示出根據一實施例的需求式清除操作之一流程圖。一般而言,需求式清除涉及主動地清除在正常操作期間遭遇的可被更正之軟性記憶體(例如,DRAM或DIMM)錯誤。例如,在遭遇一讀取操作的一可被更正之錯誤時,記憶體控制器可以信號向本地代理器通知一可被更正之回應。該本地代理器然後可保證該被更正的資料(例如,被儲存在其緩衝區,而該等緩衝區可被儲存在該本地代理器中或可被該本地代理器以其他方式存取)被寫回到記憶體(諸如第1圖所示之記憶體120及/或第3圖所示之MEM0-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圖示出根據一實施例的巡邏式清除之一流程圖。一般而言,巡邏式清除主動地清除可被更正之軟性記憶體(例如,DRAM或DIMM)錯誤。在一實施例中,巡邏式清除啟動的遭遇可被更正之錯誤的記憶體讀取將造成以被更正的資料執行之一記憶體寫入。
請參閱第4圖,"HA"意指本地代理器(視實施例而定,該本地代理器可以是第1圖所示的該等代理器中之一代理器、及/或第2圖所示的諸如MC0-MC3等的該等組件中之一組件),且"記憶體"意指被耦合到HA且被該HA管理的本地記憶體或記憶體(諸如第1圖所示之記憶體120及/或第3圖所示之MEM0-MEM3)。
在一實施例中,可以下列各項中之一或多項程式化的HA之邏輯111:位址範圍(例如,將被執行清除或錯誤偵測/更正之位址範圍)、跨步(stride)(例如,指示在執行一清除操作之後如何遞增位址)、以及間隔(例如,指示清除操作被須被執行的頻繁度)。
如第4圖所示,HA將一讀取操作(例如,該讀取操作係起源自該HA而非一快取代理器)傳送到記憶體。對該讀取操作之一正常回應被記憶體確認(如第4圖中之"Ack"標記所指示)。此外,該HA巡邏(Addr++標記指示之)該位址範圍,讀取資料,且將被該記憶體控制器更正的任何資料(例如,CORR指示的資料)主動地寫到記憶體。因此,對該被更正的資料之未來讀取操作將不會遭遇ECC試驗的延遲。更具體而言,如第4圖所示,HA將一讀取發出到記憶體,接收一Ack,然後傳送對("Addr++"指示的)次一位址之另一讀取,接收一對應的Ack,將次一讀取傳送到記憶體(如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)程式化的一位址範圍操作。該清除器針對該範圍內之每一線(例如,快取線)開始對記憶體控制器之一讀取。如果該巡邏式清除器接收到對該讀取操作之一被更正的回應,則該巡邏式清除器將一寫入發出到相同的位址。如後文中將參照第5或6圖而進一步說明的,於執行該寫入操作時,可使用使用者對快取記憶體目錄的一被程式化之值及異常警示位元(poison bit)。該特徵適用於有效率地清除記憶體中被異常警示的資料(其中包括諸如資料線)。
根據一實施例,該清除器可根據下列虛擬碼而操作:
hiAddr-清除範圍之高位址
loAddr-清除範圍之低位址
currAddr-清除器正在對currAddr操作
stride-在每一清除操作之後currAddr被遞增該量(例如,8路128B(128位元組)的交插將需要將該值設定為8x128,也將需要兩次歷程(其中每一歷程係針對128B快取線的每一64B半快取線))
scrub_enable_pmi-當完成了對一被程式化的範圍之清除時觸發pmi
scrub_range_done-完成了對目前被程式化的範圍之清除
scrub_ctr-每隔2個中央處理單元(CPU)時脈開始一清除操作
scrub_en-啟用巡邏式清除器
scrub_with_user_poison-在清除寫入中使用一被使用者界定之異常警示值
scrub_user_poison_value-將在一清除寫入操作中使用之異常警示值
scrub_with_user_dirbit-在清除寫入中使用一被使用者界定之dirbit值
scrub_user_dirbit val-將在一清除寫入操作中使用之dirbit值
在一實施例中,該scrub_ctr之內定值為0xffff。此外,除非要求自該範圍底部以外的一位置開始清除,否則該currAddr可被設定為loAddr。
因此,在某些實施例中,需求式或巡邏式清除主動地清除記憶體中之軟性錯誤。因而又減少了對記憶體中之相同位置的後續存取之ECC試驗延遲損失。此種方式也防止隨著時間經過而累積的多個軟性錯誤。多個軟性錯誤可能導致資料無法被更正。該巡邏式清除邏輯可在系統位址空間中操作;因此,對該邏輯之組態設定將是韌體用來設定系統位址映射關係的演算法之一自然延伸。此外,該HA可重新使用一或多個向前移動演算法,以使保證清除操作與結構要求間之公平性。另一方面,如果使用被壓縮的(裝置層級的)位址實施該清除邏輯,則對向前移動的保證將變得困難許多且較無效率。這是因為記憶體控制器可能必須將唯一的前移機制提供給巡邏式清除器要求及HA要求。因為該清除器受到該HA的控制,所以可能將類似的服務保證品質提供給清除及結構要求。此外,如將於下文中進一步說明的,在一實施例中,該巡邏式清除邏輯可包含可讓系統韌體清除來自記憶體的被異常警示的資料之一特徵。該特徵防止了使用有異常警示的資料之嚴重錯誤。
第5及6圖示出根據某些實施例而儲存及傳播一本地代理器上的被異常警示的資料之流程圖。在一實施例中,該本地代理器維護諸如記憶體的一或多個位元等的記憶體的一部分之異常警示狀態位元(其中包括諸如64B線邊界之異常警示狀態位元)。可經由下列各項中之一項而引進異常警示狀態之維護及更新:
(1)快取代理器對本地代理器之寫回具有被設定之異常警示位元。在一實施例中,係在資料酬載微片(flit)的諸如位元52中提供該異常警示位元。使用一特殊之目錄編碼而將記憶體之對應的線或部分提交到記憶體。該編碼可利用目錄編碼中之被設定的位元12(第13位元),以便指示該資料受到異常警示。請注意,該目錄編碼的較低12個位元(0-11)可包含正常的MESI/擁有權清單資訊(其中MESI分別意指被修改的(Modified)、唯一的(Exclusive)、共用的(Shared)、無效的(Invalid)記憶體狀態。可在記憶體中之備用ECC位元中維護該目錄/異常警示。
(2)自記憶體讀取導致一無法被更正之錯誤;在此種情形中,該本地代理器會將被異常警示的資料傳送到提出要求者(假定該本地代理器被要求傳送資料,且並未接收到對該位址之寫回)。此外,如果該要求需要一目錄更新,則該本地代理器會將記憶體的該部分(例如,線)寫回到具有被設定異常警示位元之記憶體。請注意,在導致一無法被更正之錯誤的一讀取中,(除了資料之外,)目錄編碼也可能是不可靠的。因此,目錄控制邏輯必須將監控廣播到該系統中之所有快取代理器。然而,在映射同步期間,該本地代理器將以透通之方式將無法被更正之讀取以失效切換之方式切換到映射同步的本地代理器,而不是送回被異常警示的資料。
(3)自記憶體讀取送回一被異常警示的目錄編碼(且並無無法被更正之錯誤的結果)。請注意,在此種情形中,該目錄編碼本身是正確的,然而,資料可能不是可靠的。在此種情形中,目錄控制器可將該目錄編碼用來選擇性地傳送監控。例如,該本地代理器會將被異常警示的資料傳送到提出要求者(假定該本地代理器被要求傳送資料,且並未接收到對該位址之寫回)。然而,在映射同步期間,該本地代理器在一實施例中將以透通之方式將被異常警示的讀取以失效切換之方式切換到映射同步的本地代理器,而不是送回被異常警示的資料。此外,自記憶體提取的無法被更正之一線可能由於對相同位址的一(隱含的或明確的)清潔寫回(clean writeback)而使異常警示位元被重設。然而,部分的寫回將持續使該異常警示位元保持被設定。記憶體中被標示為被異常警示的一致性線將需要一完全的線寫入,以便清除該異常警示位元(使用一invitoe/wbmtoi組合,用以指示CPU已執行了對一完整快取線之一儲存且並未先讀取該快取線)。此外,在某些實施例中,可將該巡邏式清除邏輯用來選擇性地清除記憶體中之異常警示位元。
請參閱第5圖,"CA0"及"CA1"意指快取代理器(視實施例而定,該快取代理器可以是第1圖所示的該等代理器中之一代理器、及/或第2圖所示的諸如連接點202-208或MC0-MC3等的該等組件中之一組件),"HA"意指本地代理器(視實施例而定,該本地代理器可以是第1圖所示的該等代理器中之一代理器、及/或第2圖所示的諸如MC0-MC3等的該等組件中之一組件),且"記憶體"意指被耦合到HA且被該HA管理的本地記憶體或記憶體(諸如第1圖所示之記憶體120及/或第3圖所示之MEM0-MEM3)。
如第5圖所示,CA1(可將CA1之組態設定成一節點控制器或代理代理器(proxy agent))將一Wbm2E/WbEdata(保有所有權E之快取線寫回)發出到該HA。該資料包含被設定之異常警示位元。該HA將該資料寫到記憶體,且目錄持續指向作為唯一擁有者之CA1。該異常警示位元被設定。CA0執行相同位址的一RdInvOwn(例如,取得唯一所有權之一讀取操作)。因為該目錄指向作為擁有者之CA1,所以該HA將一SnpInvOwn傳送到CA1(該HA傳送監控,以便使其他快取代理器(在該例子中為CA1)之所有權無效)。CA1已無痕迹地逐出該線,因而CA1以RspI對該SnpInvOwn回應(指示回應是無效的)。
在接收到該監控回應之後,該HA將資料自記憶體傳送到CA0。因為異常警示位元已被設定,所以該HA將被異常警示的資料傳送到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圖所示代理器102-1中之一排除邏輯等的本地代理器內之邏輯、第2圖所示本地代理器、第8或9圖所示之組件...諸如此類)可執行方法700之操作。
如第1圖所示,一本地代理器可包含一目錄快取記憶體(例如,快取記憶體122),用以快取經常被使用之目錄標記(例如,每一目錄標記追蹤對一64B快取線分割程度(granularity)之所有權)。在一實施例中,該目錄可追蹤其中包括輸入/輸出控制中心(Input/output Hub;簡稱IOH)(如參照第8圖所示晶片組806或第9圖所示晶片組920所述之IOH,或IOH可被以其他方式耦合到一連接點或處理器,以便提供I/O功能)及節點控制器/代理代理器的多達64個快取代理器之所有權。該目錄快取記憶體可以是被儲存在該HA控制的或該HA可存取的記憶體(諸如第1圖所示之記憶體120或第3圖所示之MEM0-MEM3)的一完整目錄(的全部或一部分之)一備份。例如,對該HA的快取線要求可為所有權資訊產生該目錄快取記憶體中之一平行查詢。
在某些實施例中,該目錄針對記憶體的一部分(諸如一快取線)而追蹤下列各項中之一或多項:無效的線、唯一所有權、確切的共用者、及/或經由一粗略共用清單之多個共用者。經由目錄追蹤快取線(或記憶體的其他部分)的所有權時,可直接監控一子集的快取代理器;因而減少對系統結構的監控頻寬需求。
在一實施例中,被耦合到該目錄快取記憶體的一邏輯(圖中未示出)提供了一種動態地停用諸如由於潛在缺陷而變成硬體錯誤(hard error)來源的快取條目(或其他部分)之機制。可以同位檢查之方式保護目錄快取記憶體之儲存欄位,且該等可偵測單一位元錯誤。可藉由主動地停用遭遇持續性同位檢查錯誤之快取條目,而大幅減少無痕迹之資料毀壞的機會。該目錄快取記憶體邏輯可以與目錄快取記憶體索引無關之方式而諸如停用複數個(例如,多達十六個)路。在一實施例中,一可程式錯誤臨界值可決定將造成自該目錄快取記憶體排除一特定索引及/或路所需的同位檢查錯誤之數目。該目錄快取記憶體邏輯亦可避免一次性的軟性錯誤非必要地佔用該等(例如,十六個)暫存器追蹤條目中之一條目。在某些實施例中,快取記憶體陣列被組織成8k集合(set)(被分開在兩個實體區(bank)中),且每一集合有16路。每一路可存放三個欄位,其中包括一個30位元的標記欄位、以及用來存放128位元組核心快取線的兩個64位元組半快取線之MESI及所有權資訊之兩個12位元欄位。在一實施例中,可以同位檢查之方式保護每一欄位。
在一實施例中,該等欄位(可被實施為內容可定址記憶體(Content Addressable Memory;簡稱CAM)可包括下列各項:
請參閱第7圖,在操作702中,於接收到對目錄快取記憶體之一位址查詢時,可在操作704中決定該目錄快取記憶體在查詢期間是否發生了同位檢查錯誤。如果並未發生同位檢查錯誤,則在操作706中進行以信令通知命中/未命中(例如,以正常方式指示一命中/未命中)。否則,在操作708中,可存取該CAM暫存器,以便尋找一命中,然後可遞增Error_Count[2:0],直到到達操作710中決定的可程式臨界值為止。
在操作708中,如果該條目不存在於該等CAM暫存器,則在一實施例中記錄一新的條目。如果所有的條目已經填滿,則可觸發目錄快取記憶體溢流位元。如果在一個以上的路上指示同位檢查錯誤,則只可遞增一錯誤計數。然而,該目錄快取記憶體可為被偵測到的每一同位檢查錯誤安排清除的時程。此種方式保證一次性的軟性錯誤將不會對後續的存取造成同位檢查錯誤。如果該CAM有一命中,但是該目錄快取記憶體指示沒有同位檢查錯誤(亦即,被記錄的原始條目是一軟性錯誤),則該錯誤計數被遞減一。此外,零的錯誤計數又將使對應的CAM暫存器條目無效。在一實施例中,在該條目命中了被程式化的錯誤臨界值之後,不會有任何錯誤計數遞增或遞減。在某些實施例中,該臨界值可被內定為二。
在一實施例中,以與每一目錄快取記憶體查詢平行之方式執行該CAM操作。可將目錄快取記憶體索引及實體區資訊用於CAM操作。於一CAM命中時,將條目上的錯誤計數與該被程式化之錯誤臨界值比較。如果該計數等於操作上之該臨界值,則將在該CAM條目中存放的路視為被停用。可將該停用資訊用來掩蔽對該路之命中或分配。將已命中該臨界值的條目視為被停用,直到在一系統狀態重設時將該等CAM暫存器重設為止。在一系統狀態重設之後,可將這些記錄讀出且重新程式化,以避免重新發現潛在缺陷的損失。
請參閱第7圖,如果錯誤的數目大於界限(或臨界值),則可以信號通知可恢復的錯誤,且可排除該集合/路。否則,可在操作714中可以一未命中通知被更正之錯誤。因此,某些實施例動態地排除該目錄快取記憶體之一索引/路。排除一索引/路時,可防止與存取目錄標記的記憶體相關聯的額外延遲,此種額外延遲是部分地因為來自被查詢的該索引/路上的潛在缺陷之同位檢查錯誤。這些實施例也可減少該目錄快取記憶體中之任何索引/路的無痕迹之資料毀壞的機會。
第8圖示出一運算系統800的一實施例之一方塊圖。第1圖所示之該等代理器102中之一或多個代理器可包含運算系統800的一或多個組件。此外,如第8圖所示,系統800之各組件可包括一目錄快取記憶體(例如,第1圖所示之目錄快取記憶體122)及/或一清除及/或排除邏輯(例如,第1圖所示之邏輯111)。然而,可在系統800的各種位置(其中包括或不包括所示之那些位置)中提供該目錄快取記憶體及/或清除邏輯。運算系統800可包含被耦合到一互連網路(或匯流排)804之一或多個中央處理單元(Central Processing Unit;簡稱CPU)802(該一或多個CPU在本說明書中可被共同地稱為"各處理器802",或更一般性地被稱為"處理器802")。處理器802可以是諸如一般用途處理器、(可處理經由一電腦網路805傳送的資料之)之網路處理器、或其他類型之處理器(其中包括精簡指令集電腦(Reduced Instruction Set Computer;簡稱RISC)處理器或複雜指令集電腦(Complex Instruction Set Computer;簡稱CISC)處理器)等的任何類型的處理器。此外,處理器802可具有單一或多個核心的設計。具有多個核心設計之處理器802可將不同類型的處理器核心整合到相同的積體電路(Integrated Circuit;簡稱IC)晶粒中。此外,可將有多個核心設計之處理器802實施為對稱式或非對稱式多處理器。
處理器802可包含一或多個快取記憶體(例如,不同於所示之目錄快取記憶體122之快取記憶體),該一或多個快取記憶體在各實施例中可以是專有的及/或被共用的。一般而言,快取記憶體儲存對應於被儲存在其他位置的或先前被計算出的原始資料之資料。為了減少記憶體存取延遲,一旦資料被儲存在一快取記憶體之後,將不重新提取或重新計算該原始資料,而是可藉由存取被儲存在該快取記憶體中之複本,而提供未來的使用。該一或多個快取記憶體可以是諸如第一階(L1)快取記憶體、第二階(L2)快取記憶體、第三階(L3)快取記憶體、中間階快取記憶體、最後一階快取記憶體(Last Level Cache;簡稱LLC)等的用來儲存被系統800的一或多個組件利用的電子資料(例如,其中包括指令)之任何類型之快取記憶體。此外,該一或多個快取記憶體可被設置在各種位置(例如,被設置在其中包括第1、2、8或9圖所示系統的本發明述及的運算系統之其他組件之內)。
一晶片組806可額外地被耦合到互連網路804。此外,晶片組806可包含一圖形及記憶體控制中心(Graphics Memory Control Hub;簡稱GMCH)808。GMCH 808可包含被耦合到一記憶體812之一記憶體控制器810。記憶體812可儲存可被處理器802或與運算系統800中的組件通訊的任何其他裝置執行的諸如其中包括指令序列之資料。此外,在本發明的一實施例中,記憶體812可包括一或多個諸如隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(Synchronous DRAM;簡稱SDRAM)、靜態機存取記憶體(Static RAM;簡稱SRAM)等的揮發性儲存(或記憶體)元件。亦可使用諸如硬碟等的非揮發性記憶體。諸如多個處理器及/或多個系統記憶體等的額外之裝置可被耦合到互連網路804。
GMCH 808可進一步包含被耦合到一顯示裝置816之一圖形介面814(例如,經由一實施例中之一圖形加速器)。在一實施例中,圖形介面814可經由一加速圖形埠(Accelerated Graphics Port;簡稱AGP)而被耦合到顯示裝置816。在本發明的一實施例中,顯示裝置816(諸如一平板顯示器)可經由諸如一信號轉換器而被耦合到圖形介面814,該信號轉換器將諸如視訊記憶體或系統記憶體(例如,記憶體812)等的一儲存裝置中儲存的影像之數位表示法轉換為將被該顯示器816解譯及顯示之顯示信號。
如第8圖所示,一控制中心介面818可將GMCH 808耦合到一輸入/輸出控制中心(Input/output Control Hub;簡稱ICH)820。ICH 820可將一介面提供給被耦合到運算系統800之一些輸入/輸出(I/O)裝置。ICH 820可經由諸如可符合PCIe規格之一周邊組件互連(Peripheral Component Interconnect;簡稱PCI)橋接器或通用序列匯流排(Universal Serial Bus;簡稱USB)控制器等的一周邊裝置橋接器(或控制器)824而被耦合到一匯流排822。橋接器824可提供處理器802與各周邊裝置間之一資料路徑。可使用其他類型的拓撲。此外,多個匯流排可諸如經由多個橋接器或控制器而被耦合到ICH 820。此外,匯流排822可包含其他類型及組態之匯流排系統。此外,在本發明的各實施例中,被耦合到ICH 820的其他周邊裝置可包括整合式磁碟電子介面(Integrated Drive Electronics;簡稱IDE)或小型電腦系統介面(Small Computer System Interface;簡稱SCSI)硬碟機、USB埠、鍵盤、滑鼠、平行埠、序列埠、軟碟機、以及數位輸出支援(例如,數位視訊介面(Digital Video Interface;簡稱DVI)等的周邊裝置。
匯流排822可被耦合到一音訊裝置826、一或多個磁碟機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)、快閃記憶體、磁光碟、或可儲存電子資料(例如,其中包括指令)的其他類型之非揮發性機器可讀取的媒體。
在一實施例中,記憶體812可包含下列各項中之一或多項:作業系統(Operating System;簡稱O/S)832、應用程式834、目錄801、及/或裝置驅動程式836。記憶體812亦可包含記憶體映射式輸入/輸出(Memory Mapped I/O;簡稱MMIO)操作專用的一些區域。記憶體812中儲存之程式及/或資料可被交換到磁碟機828,作為記憶體管理操作的一部分。該一或多個應用程式834可(諸如在該一或多個處理器802上)被執行,而將一或多個封包傳送到被耦合到網路805之一或多個運算裝置。在一實施例中,封包可以是可被自至少一傳送器傳輸到至少一接收器(例如,經由諸如網路805等的一網路)的一或多個電信號編碼之一序列的一或多個符號及/或值。例如,每一封包可具有一標頭,該標頭包含諸如來源位址、目標位址、及封包類型等的可被用於繞送及/或處理該封包之各種資訊。每一封包亦可具有一酬載,該酬載包含經由一電腦網路(諸如網路805)而在各運算裝置之間傳輸的該封包之原始資料(或內容)。
在一實施例中,應用程式834可將O/S 832用來諸如經由裝置驅動程式836而與系統800的各組件通訊。因此,裝置驅動程式836可包括網路配接器830特有命令,用以提供O/S 832與網路配接器830或經由晶片組806而被耦合到系統800的其他I/O裝置間之一通訊介面。
在一實施例中,O/S 832可包含一網路協定堆疊。協定堆疊通常意指可被執行而處理經由一網路805傳送的封包之一組程序或程式,其中該等封包可符合一特定協定。例如,可使用一傳輸控制協定/網際網路協定(Transfer Control Protocol/Internet Protocol;簡稱TCP/IP)堆疊以處理TCP/IP封包。裝置驅動程式836可指示記憶體812中將諸如經由該協定堆疊而被處理之緩衝區。
網路805可包括任何類型之電腦網路。網路配接器830可進一步包含一直接記憶體存取(Direct Memory Access;簡稱DMA)引擎,該DMA引擎將封包寫到被指定給用來經由網路805而傳輸及/或接收資料的(諸如被儲存在記憶體812之)可用描述符(descriptor)之緩衝器(例如,被儲存在記憶體812中)。此外,網路配接器830可包含一網路配接器控制器,該網路配接器控制器可包含用來執行與配接器有關的操作之邏輯(諸如一或多個可程式處理器)。在一實施例中,該配接器控制器可以是一媒體存取控制(Media Access Control;簡稱MAC)組件。網路配接器830可進一步包含諸如任何類型之揮發性/非揮發性記憶體(例如,其中包括一或多個快取記憶體及/或參照記憶體812述及的其他記憶體類型)等的一記憶體。
第9圖示出根據本發明的一實施例而被配置成點對點(Point-to-Point;簡稱PtP)組態之一運算系統900。第9圖尤其示出以一些點對點介面將處理器、記憶體、及輸入/輸出裝置互連之一系統。系統900的一或多個組件可執行前文中參照第1-8圖所述之操作。
如第9圖所示,系統900可包含數個處理器,而為了顧及圖式的清晰,圖中只示出兩個處理器902及904。處理器902及904可分別包含一本地記憶體控制中心(GMCH)906及908,用以能夠進行與記憶體910及912間之通訊。記憶體910及/或912可儲存諸如中參照第9圖的記憶體912所述之那些資料等的各種資料。如第9圖所示,處理器902及904(或系統900的諸如晶片組920或I/O裝置943等的其他組件)亦可包含諸如前文中參照第1-8圖所述的那些快取記憶體等的一或多個快取記憶體。
在一實施例中,處理器902及904可以是參照第9圖所述的該等處理器902中之一處理器。處理器902及904可分別使用點對點介面電路916及918而經由一點對點介面914交換資料。此外,處理器902及904可分別使用點對點介面電路926、928、930、及932而經由個別的點對點介面922及924與一晶片組920交換資料。晶片組920可進一步使用諸如一點對點介面電路937以經由一高效能圖形介面936而與一高效能圖形電路934交換資料。
在至少一實施例中,可在處理器902、904、及/或晶片組920中之一者或多者中提供一目錄快取記憶體及/或清除邏輯。然而,本發明之其他實施例可在第9圖所示之系統900內存在有其他的電路、邏輯單元、或裝置。此外,本發明的其他實施例可能被分佈了第9圖所示之數個電路、邏輯單元、或裝置。例如,系統900之各實施例可包含一目錄快取記憶體(例如,第1圖所示之目錄快取記憶體122)及/或一清除或排除邏輯(例如,第1圖所示之邏輯111)。然而,可在系統900的各種位置(其中包括或不包括所示之那些位置)中提供該目錄快取記憶體及/或清除邏輯。
晶片組920可使用一點對點介面電路941與一匯流排940通訊。匯流排940可具有與其通訊之諸如一匯流排橋接器942及I/O裝置943等的一或多個裝置。匯流排橋接器942可經由一匯流排944而與諸如鍵盤/滑鼠945、通訊裝置946(例如,可與電腦網路905通訊的數據機、網路介面裝置、或其他通訊裝置)、音訊I/O裝置、及/或資料儲存裝置948等的其他裝置通訊。資料儲存裝置948可儲存處理器902及/或904可執行的程式碼949。
在本發明之各實施例中,可將本發明參照諸如第1-9圖所述之該等操作實施為硬體(例如,電路)、軟體、韌體、微碼、或以上各項之組合,且可以電腦程式產品之形式提供以上各項或其組合,例如,該電腦程式產品包括儲存有用來將電腦程式化成執行本發明中述及的程序的指令(或軟體程序)之機器可讀取的或電腦可讀取的媒體。此外,術語"邏輯"可包括諸如軟體、硬體、或軟體及硬體之組合。該機器可讀取的媒體可包括諸如參照第1-9圖述及的那些儲存裝置等的儲存裝置。此外,可以電腦程式產品之形式下載此種電腦可讀取的媒體,其中可經由一通訊鏈路(例如,一匯流排、一數據機、或一網路連線)且利用載波或其他傳播媒介中提供之資料信號而將程式自一遠端電腦(例如,一伺服器)傳輸到提出要求的電腦(例如,一用戶端電腦)。
在本說明書中提及"一個實施例"或"一實施例"時意指參照該實施例述及的一特定的特性、結構、或特徵可被包含在至少一實施方式中。在本說明書的各處中出現詞語"在一實施例中"時,可以或可以不都參照到相同的實施例。
此外,在說明及申請專利範圍中,可使用術語"被耦合"及"被連接"以及其派生詞。在本發明之某些實施例中,"被連接"可被用來指示兩個或更多個元件相互在實體上或電氣上直接接觸。"被耦合"可意指:兩個或更多個元件在實體上或電氣上直接接觸。然而,"被耦合"亦可意指:兩個或更多個元件可能沒有相互直接接觸,但仍然可相互配合或作用。
因此,雖然已以與結構特徵及/或方法行動有關的語文說明了本發明之實施例,但是我們應可了解:申請專利範圍的主題可不限於本說明書中述及的該等特定的特徵或行動。更確切地說,係以實施申請專利範圍的主題之樣本形式之方式揭示該等特定的特徵或行動。
100,200,800,900...運算系統
102,102-1-102-M...代理器
104...網路結構
106,108...單向鏈路
110...雙向鏈路
111...清除或排除邏輯
122...目錄快取記憶體
120,812,910,912...記憶體
202-208...連接點
806,920...晶片組
804...互連網路
802,902,904...處理器
805,905...電腦網路
808,906,908...圖形及記憶體控制中心
810...記憶體控制器
814...圖形介面
816...顯示裝置
818...控制中心介面
820...輸入/輸出控制中心
822,940,944...匯流排
824...周邊裝置橋接器
826...音訊裝置
828...磁碟機
830...網路配接器
832...作業系統
834...應用程式
801...目錄
836...裝置驅動程式
943...輸入/輸出裝置
914,922,924...點對點介面
916,918,926,928,930,932,937,941...點對點介面電路
934...高效能圖形電路
936...高效能圖形介面
942...匯流排橋接器
945...鍵盤/滑鼠
946...通訊裝置
948...資料儲存裝置
949...程式碼
前文中已參照各附圖而提供了實施方式。在該等圖式中,代號最左方的數字識別該代號首次出現的圖式。在不同的圖式中將使用相同的代號標示類似的或相同的項目。
第1-2及8-9圖示出可被用來實施本發明中述及的各實施例的運算系統的實施例之方塊圖。
第3-7圖示出根據某些實施例之流程圖。
Claims (35)
- 一種用於本地代理器資料及記憶體管理的裝置,包含:一第一代理器,用以自一第二代理器接收對應於一目標位址之一要求;被耦合到該第一代理器之一目錄快取記憶體,用以儲存對應於被耦合到該第一代理器的複數個快取代理器之資料;被耦合到該第一代理器之一記憶體,用以儲存對應於該要求之資料;一清除邏輯,用以更正該記憶體中對應於該目標位址的位置上之錯誤;以及一內容可定址記憶體,用以為該目錄快取記憶體的每一條目儲存下列各欄位中之一或多個欄位:一有效性欄位、一索引欄位、一區欄位、一路欄位、以及一錯誤計數欄位。
- 如申請專利範圍第1項之裝置,其中該第一代理器在該記憶體中對應於該目標位址的該位置上寫入對應於該要求的該資料之一被更正版本。
- 如申請專利範圍第1項之裝置,其中錯誤更正碼將於存取該記憶體期間更正錯誤。
- 如申請專利範圍第1項之裝置,其中該要求對應於複數個目標位址,且該清除邏輯將存取該記憶體中對應於該複數個目標位址之複數個位置。
- 如申請專利範圍第1項之裝置,其中該第一代理器包含該清除邏輯。
- 如申請專利範圍第1項之裝置,其中該第一代理器回應自該複數個快取代理器中之一或多個快取代理器接收到之一或多個監控回應而更新該目錄快取記憶體。
- 如申請專利範圍第1項之裝置,其中該第一代理器將一或多個監控傳送到被該目錄快取記憶體識別為具有對應於該目標位址的資料的一拷貝之該複數個快取代理器中之一或多個快取代理器。
- 如申請專利範圍第1項之裝置,其中該第一代理器是該目標位址之一本地代理器。
- 如申請專利範圍第1項之裝置,進一步包含用來耦合該第一代理器及該第二代理器之一序列鏈路。
- 如申請專利範圍第1項之裝置,其中該第一代理器及該第二代理器是在一相同的積體電路晶粒中。
- 如申請專利範圍第1項之裝置,其中該記憶體儲存一或多個異常警示位元,用以指示該記憶體的一或多個對應的部分是否儲存了具有無法被更正的錯誤之資料。
- 一種用於本地代理器資料及記憶體管理的裝置,包含:一第一代理器,用以自一第二代理器接收對應於一目標位址之一要求;被耦合到該第一代理器之一目錄快取記憶體,用以儲存對應於被耦合到該第一代理器的複數個快取代理器之資 料;被耦合到該第一代理器之一記憶體,用以儲存對應於該要求之資料;一排除邏輯,用以回應對應於該目錄快取記憶體之錯誤數目超過一臨界值而排除該目錄快取記憶體之一索引或路;以及一內容可定址記憶體,用以為該目錄快取記憶體的每一條目儲存下列各欄位中之一或多個欄位:一有效性欄位、一索引欄位、一區欄位、一路欄位、以及一錯誤計數欄位。
- 如申請專利範圍第12項之裝置,其中該第一代理器回應自該複數個快取代理器中之一或多個快取代理器接收到之一或多個監控回應而更新該目錄快取記憶體。
- 如申請專利範圍第12項之裝置,其中該第一代理器包含該排除邏輯。
- 如申請專利範圍第12項之裝置,其中該第一代理器將一或多個監控傳送到被該目錄快取記憶體識別為具有對應於該目標位址的資料的一拷貝之該複數個快取代理器中之一或多個快取代理器。
- 如申請專利範圍第12項之裝置,其中該第一代理器是該目標位址之一本地代理器。
- 如申請專利範圍第12項之裝置,進一步包含用來耦合該第一代理器及該第二代理器之一序列鏈路。
- 如申請專利範圍第12項之裝置,其中該第一代理 器及該第二代理器是在一相同的積體電路晶粒中。
- 如申請專利範圍第12項之裝置,其中該記憶體儲存一或多個異常警示位元,用以指示該記憶體的一或多個對應的部分是否儲存了具有無法被更正的錯誤之資料。
- 一種用於本地代理器資料及記憶體管理的方法,包含下列步驟:在一第一代理器上接收對應於一目標位址之一要求;以及將對應於被耦合到該第一代理器的複數個快取代理器之資料儲存在一目錄快取記憶體;將對應於該要求之資料儲存在一記憶體;基於該第一代理器在該記憶體中對應於該目標位址的該位置上寫入對應於該要求的該資料之一被更正版本,而更正該記憶體中對應於該目標位址的位置上之錯誤;以及於一內容可定址記憶體,用以為該目錄快取記憶體的每一條目儲存下列各欄位中之一或多個欄位:一有效性欄位、一索引欄位、一區欄位、一路欄位、以及一錯誤計數欄位。
- 如申請專利範圍第20項之方法,其中該要求對應於複數個目標位址,且更正錯誤之該步驟包含下列步驟:存取該記憶體中對應於該複數個目標位址之複數個位置。
- 如申請專利範圍第20項之方法,其中更正錯誤之該步驟包含下列步驟:錯誤更正碼在存取該記憶體期間更正錯誤。
- 如申請專利範圍第20項之方法,進一步包含下列步驟:將資料儲存在該目錄快取記憶體,以便指示該複數個快取代理器中之哪一快取代理器有對應於該目標位址的資料之一拷貝。
- 如申請專利範圍第20項之方法,進一步包含下列步驟:回應自該複數個快取代理器中之一或多個快取代理器接收到之一或多個監控回應而更新該目錄快取記憶體。
- 一種用於本地代理器資料及記憶體管理的系統,包含:一記憶體,用以儲存一目錄;一第一代理器,用以接收對應於該記憶體中之一目標位址之一要求,其中該記憶體儲存對應於該要求之資料;被耦合到該第一代理器之一目錄快取記憶體,用以儲存對應於被耦合到該第一代理器的複數個快取代理器之資料,其中該目錄快取記憶體中被儲存之資料指示該複數個快取代理器中之哪一快取代理器有對應於該目標位址的資料之一拷貝,其中該第一代理器包含下列邏輯中之至少一邏輯:一清除邏輯,用以更正該記憶體中對應於該目標位址的位置上之錯誤;或一排除邏輯,用以回應對應於該目錄快取記憶體之錯誤數目超過一臨界值而排除該目錄快取記憶體之一索引或路;以及一內容可定址記憶體,用以為該目錄快取記憶體的每 一條目儲存下列各欄位中之一或多個欄位:一有效性欄位、一索引欄位、一區欄位、一路欄位、以及一錯誤計數欄位。
- 如申請專利範圍第25項之系統,其中該第一代理器在該記憶體中對應於該目標位址的該位置上寫入對應於該要求的該資料之一被更正版本。
- 如申請專利範圍第25項之系統,其中該錯誤更正碼將於存取該記憶體期間更正錯誤。
- 如申請專利範圍第25項之系統,其中該記憶體儲存一或多個異常警示位元,用以指示該記憶體的一或多個對應的部分是否儲存了具有無法被更正的錯誤之資料。
- 一種用於本地代理器資料及記憶體管理的方法,包含下列步驟:在一第一代理器上接收對應於一目標位址之一要求;以及將對應於被耦合到該第一代理器的複數個快取代理器之資料儲存在一目錄快取記憶體;映射該目錄快取記憶體的索引或路以回應對應於該目錄快取記憶體的一數量錯誤已達到臨界值;以及於一內容可定址記憶體,用以為該目錄快取記憶體的每一條目儲存下列各欄位中之一或多個欄位:一有效性欄位、一索引欄位、一區欄位、一路欄位、以及一錯誤計數欄位。
- 如申請專利範圍第29項之方法,其中映射該目錄 快取記憶體的索引或路係由該第一代理器的邏輯執行。
- 如申請專利範圍第29項之方法,進一步包含基於該第一代理器在該記憶體中對應於該目標位址的該位置上寫入對應於該要求的該資料之一被更正版本,而更正該記憶體中對應於該目標位址的位置上之錯誤。
- 如申請專利範圍第31項之方法,其中更正錯誤之該步驟包含下列步驟:錯誤更正碼在存取該記憶體期間更正錯誤。
- 如申請專利範圍第29項之方法,其中該要求對應於複數個目標位置。
- 如申請專利範圍第29項之方法,進一步包含下列步驟:將資料儲存在該目錄快取記憶體,以便指示該複數個快取代理器中之哪一快取代理器有對應於該目標位址的資料之一拷貝。
- 如申請專利範圍第29項之方法,進一步包含下列步驟:回應自該複數個快取代理器中之一或多個快取代理器接收到之一或多個監控回應而更新該目錄快取記憶體。
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 TW201124840A (en) | 2011-07-16 |
TWI428742B true 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) |
Families Citing this family (18)
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 |
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 |
TWI783522B (zh) * | 2021-06-11 | 2022-11-11 | 群聯電子股份有限公司 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
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
Also Published As
Publication number | Publication date |
---|---|
US8327228B2 (en) | 2012-12-04 |
CN107273307B (zh) | 2020-11-13 |
WO2011041047A3 (en) | 2011-06-23 |
CN102033817A (zh) | 2011-04-27 |
WO2011041047A2 (en) | 2011-04-07 |
US20110078492A1 (en) | 2011-03-31 |
CN102033817B (zh) | 2018-02-27 |
TW201124840A (en) | 2011-07-16 |
CN107273307A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI428742B (zh) | 用於本地代理器資料及記憶體管理的裝置、方法及系統 | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
CN103119571B (zh) | 用于目录高速缓存的分配和写策略的装置和方法 | |
US9065706B2 (en) | Information processing apparatus, computer-readable recording medium, and control method | |
US9977742B2 (en) | Cache coherency | |
JP2008027435A (ja) | 排他的所有権のスヌープフィルタ | |
TW201423371A (zh) | 於低電壓操作期間之快取部分的停用 | |
US11675660B2 (en) | Parallelized scrubbing transactions | |
TWI502346B (zh) | 根據窺探回應資訊之目錄快取分配技術 | |
KR101498452B1 (ko) | 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 |