TWI431475B - 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 - Google Patents

用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 Download PDF

Info

Publication number
TWI431475B
TWI431475B TW099131445A TW99131445A TWI431475B TW I431475 B TWI431475 B TW I431475B TW 099131445 A TW099131445 A TW 099131445A TW 99131445 A TW99131445 A TW 99131445A TW I431475 B TWI431475 B TW I431475B
Authority
TW
Taiwan
Prior art keywords
agent
memory
directory
cache
data
Prior art date
Application number
TW099131445A
Other languages
English (en)
Other versions
TW201137612A (en
Inventor
Ganesh Kumar
Dheemanth Nagaraj
Vincent R Freytag
Eric Delano
Gregory S Averill
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201137612A publication Critical patent/TW201137612A/zh
Application granted granted Critical
Publication of TWI431475B publication Critical patent/TWI431475B/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/0817Cache 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)

Description

用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
本發明係有關電子學之領域。更具體而言,本發明之一實施例係有關本地代理者(Home Agent;簡稱HA)上之記憶體鏡像及遷移。
可使用監聽式匯流排或基於目錄之協定保持電腦系統中之快取記憶體內容的一致性。無論在哪一種情況下,記憶體位址係與該系統中之特定位置相關聯。該位置通常被稱為記憶體位址的"本地節點"。
在一基於目錄之協定中,處理/快取代理者可傳送要求給本地節點,用於存取與對應的"本地代理者"相關聯之記憶體位址。因此,此類電腦系統的效能可與本地代理者資料及/或記憶體被管理的有效率程度直接相依。
【發明內容與實施方式】
在下文的實施方式中,述及許多特定細節,以便提供對各實施例的徹底了解。然而,可在沒有這些特定細節的情形下實施某些實施例。在其他的情形中,並未詳述習知的方法、程序、組件、及電路,以便不會模糊了該等特定實施例。
本發明述及的某些實施例係大致有關本地代理者上之記憶體鏡像及/或遷移。在一實施例中,可經由一互連網路(例如,本發明參照第1圖而述及之網路結構)而無縫地實施遷移及/或鏡像功能。此外,可在一記憶體控制器分割程度(granularity)下複製記憶體的內容(例如,不同於記憶體裝置層級分割程度上的複製之記憶體裝置層級備援(sparing)(例如,雙列直插式記憶體模組(Dual In-line Memory Module;簡稱DIMM)或動態隨機存取記憶體(Dynamic Random Access Memory;簡稱DRAM)層級備援)。此外,可在自主要記憶體控制器接收到一UNCORR回應(指示一無法被更正的錯誤)時,轉送對從屬代理者之讀取,因而增加了操作時間。此外,在一實施例中,該鏡像及/或遷移對作業系統可以是透通的。
一般而言,可使用監聽式匯流排或基於目錄之協定保持電腦系統中之快取記憶體內容的一致性。無論在哪一種情況下,系統記憶體位址係與該系統中之特定位置相關聯。該位置通常被稱為記憶體位址的"本地節點"。在一基於目錄之協定中,處理/快取代理者可傳送要求給本地節點,用於存取與一"本地代理者"相關聯之記憶體位址。此外,在分散式快取一致性協定中,快取代理者可傳送要求給本地代理者,該等本地代理者控制對於對應的記憶體空間之存取。本地代理者又負責確保將被要求的資料之最新拷貝自擁有該被要求的資料之記憶體或快取代理者送回到提出要求者。例如,如果該要求是針對一唯一的拷貝,則該本地代理者亦可負責使其他快取代理者上的資料之拷貝無效。為了達到這些目的,本地代理者通常可監聽每一快取代理者,或依賴用來追蹤資料可能被儲存的一組快取代理者之一目錄(例如,第1圖所示之目錄快取記憶體122、或諸如第1圖所示記憶體120等的一記憶體中儲存的目錄之一拷貝)。在一實施例中,目錄快取記憶體122可包含記憶體120中儲存之目錄的一完整或部分拷貝。
根據一實施例,在一基於目錄之快取一致性協定中,用來監視或管理記憶體的一或更多個代理者(被稱為本地代理者或HA)可共同地維護用來部分地追蹤每一快取線被緩衝儲存在該系統(諸如被緩衝儲存在一快速路徑介面(Quick Path Interface;簡稱QPI)系統)中之何處以及處於何種狀態之一目錄。想要取得一快取線之一快取代理者(Caching Agent;簡稱CA)將其要求傳送到一HA,而該HA查詢該目錄,且只將監聽傳送到該目錄指示的可能有該快取線的被緩衝儲存之拷貝的那些CA。如果該目錄知道不存在任何被緩衝儲存的拷貝,或者知道只存在被共用的拷貝且該要求是針對另一被共用的拷貝,則完全無須傳送任何監聽,且自記憶體滿足該要求。因此,該目錄可能不需要針對每一要求而監聽所有的CA(或者至少減少對監聽所有的CA之需求),且減少了監聽的頻寬要求。該系統可容許一CA要求已在被緩衝儲存的階層中被修改之一快取線。在本發明中,此種CA要求被稱為buriedM要求。在一實施例中,提供了在追蹤條目中加入一單一位元(DEFUNCT位元)之buriedM流程(例如,請參閱第6圖)。此外,因為用來支援非循序(Out Of Order;簡稱OOO)完成之諸如衝突清單等的重新排序資料結構可能有極高的硬體成本(例如,由於與重新排序相關聯的硬體利用及/或延遲),所以一實施例容許用來支援無須在HA上將該衝突清單重新排序的buriedM之HA。
此外,如前文所述,該目錄不需要針對每一要求而監聽所有的CA(或者至少減少對監聽所有的CA之需求),且減少了監聽的頻寬要求。此外,HA可能自不同的CA接收對相同快取線之衝突的要求。在一實施例中,該HA的責任是將這些衝突的要求序列化,且確保以一種公平的順序服務所有的CA。此外,在一來源監聽一致性協定中,該HA可保有衝突的快取線之衝突者清單,而解決衝突。該HA然後以一種先進先出(First-In,First-Out;簡稱FIFO)方式服務該等衝突者。該清單通常隨著該系統中之快取代理者的數目而擴展,且該清單在大型無黏接邏輯(glueless)(例如,八插座(8-socket)及以上的)組態中可能變得非常大。然而,在一基於本地監聽目錄之一致性協定中,該HA可根據一實施例而利用將該清單限制為只有單一位元的協定之定義(例如,如將於後文中參照第7圖而說明的)。
在本發明之說明中:
‧"主要"意指主要本地代理者,例如,遷移/鏡像操作之來源;
‧"從屬"或"鏡像"意指從屬/鏡像本地代理者,例如,遷移/鏡像操作之目標;
‧"遷移"意指在該從屬本地代理者上建構一致的資料拷貝之程序。該主要本地代理者上的所有寫入(隱含寫回(Implicit Writeback;簡稱IWB)、外顯寫回(Explicit Writeback;簡稱EWB))將也被傳送到該從屬本地代理者(以NcWr[Ptl]之方式);
‧"鏡像映射"意指具有一致的資料拷貝之從屬本地代理者(例如,持續將各IWB/EWB傳送到該從屬本地代理者,且導致主要記憶體控制器上的無法被更正的回應之讀取係針對資料而被傳送到該從屬本地代理者);
‧"讀取錯誤跳轉"("read failover")(在鏡像期間)意指:在該主要本地代理者上之讀取遭遇無法被更正的錯誤時,將該讀取自該主要本地代理者傳送到該從屬本地代理者;
‧"硬錯誤跳轉"("hard failover")(在鏡像期間)意指:因為決定該主要記憶體控制器故障(因為對該主要本地代理者的寫入故障,或遭遇無法被更正的錯誤之讀取的數目N超過被程式化之臨界值),而將讀取無條件地傳送到該從屬本地代理者;
‧"HA錯誤跳轉"("HA Failover")(在遷移之後)意指:將位址解碼器重新程式化為指向該從屬HA以供記憶體參照,因而使該從屬HA成為新的主要HA;
‧"primary_dead"意指:該主要記憶體控制器被視為故障/無法使用;以及
‧"slave_dead"意指:該從屬記憶體控制器被視為故障/無法使用。
諸如參照第1及8-9圖而述及之系統等的各種運算系統可被用來實施本發明述及之實施例。更具體而言,第1圖示出根據本發明的一實施例的一運算系統100的方塊圖。系統100可包含一或更多個代理者102-1至102-M(在本說明書中全體地被稱為代理者102,或更一般性地被稱為代理者102)。在一實施例中,該等代理者102中之一或更多個代理者可以是諸如參照第8-9圖所述的運算系統等的一運算系統之任何組件。
如第1圖所示,該等代理者102可經由一網路結構104而通訊。在一實施例中,網路結構104可包括一可讓各代理者(諸如運算裝置)傳送資料之電腦網路。在一實施例中,網路結構104可包括經由一序列(例如,點對點)鏈路及/或一共用式通訊網路而通訊之一或更多個互連(或互連網路)。例如,某些實施例可促進可與完全緩衝式雙直列記憶體模組(Fully Buffer Dualin-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,而以本發明中參照諸如第3-7圖所述之方式鏡像映射資料,遷移資料,解決buriedM,及/或解決衝突。此外,在一實施例中,該等代理者102中之一或更多個代理者(只在一代理者102-1中示出)可存取諸如記憶體120等的一記憶體(該記憶體可被該代理者專用或與其他代理者共用)。此外,該等代理者102中之一或更多個代理者(只在一代理者102-1中示出)可維護一或更多個儲存裝置(代理者102-1中只示出諸如目錄快取記憶體122等的儲存裝置,例如被實施為諸如一表、佇列、緩衝區、或連結清單等)中之條目(entries),以便追蹤與代理者102-1(作為一本地代理者)及/或該系統中其他代理者(其中包括諸如CA)儲存/維護的項目有關之資訊。在某些實施例中,該等代理者102中之每一代理者或至少一代理者可被耦合到與該代理者在相同晶粒上或該代理者可存取之記憶體120及/或一對應的目錄快取記憶體122。
第2圖是根據一實施例的一運算系統之一方塊圖。系統200可包含複數個插座202-208(圖中示出四個插座,但是某些實施例可具有較多或較少的插座)。在一實施例中,每一插座可包含一處理器。此外,每一插座可經由諸如參照第9圖所述之點對點(Point-to-Point;簡稱PtP)鏈路而被耦合到其他插座。如參照第1圖之網路結構104所述,每一插座可被耦合到由諸如複數個可包括動態隨機存取記憶體(DRAM)的雙列直插式記憶體模組(DIMM)構成之系統記憶體之一本地部分。
如第2圖所示,每一插座可被耦合到一記憶體控制器(Memory Controller;簡稱MC)/本地代理者(HA)(諸如MC0/HA0至MC3/HA3)。該等記憶體控制器可被耦合到一對應的本地記憶體(被標示為MEM0至MEM3),而該本地記憶體可以是系統記憶體(諸如第9圖所示之記憶體912)的一部分。在某些實施例中,記憶體控制器(MC)/本地代理者(HA)(諸如MC0/HA0至MC3/HA3)可相同於或類似於第1圖所示之代理者102-1(例如,包括邏輯111等的組件),且被標示為MEM0至MEM3之該記憶體可相同於或類似於第1圖所示之記憶體120。此外,在一實施例中,MEM0至MEM3可被配置成以諸如主控及從屬之方式鏡像映射資料。此外,在某些實施例中,系統200的一或更多個組件可被包含在相同的積體電路晶粒中。
諸如第2圖所示之一實施例因而可被用於具有鏡像映射之插座無黏接邏輯組態。例如,被指定給一記憶體控制器(諸如MC0/HA0)的資料可諸如經由一PtP鏈路而被鏡像映射到另一記憶體控制器(諸如MC3/HA3)。於複製到鏡像時,與記憶體控制器MC3/HA3相關聯的之目錄可被初使化處於未知(U)狀態。在該控制器發生錯誤跳轉(例如,由於對該記憶體控制器的一線上服務呼叫)時,可自該U狀態重建該目錄。
在一實施例中,軟體抽象層(諸如基本輸入/輸出系統(Basic Input/Output System;簡稱BIOS))遷移流程可包括:諸如使用一旗號(semaphore)迴圈將來源記憶體的所有線標示為"M"(用以指示對應的線之修改/遷移)。
例如,下列虛擬碼可被用於每一64B快取線:
//r2是該64B快取線的最低8位元組之位址
ld8 r1<-[r2]
mov ar.ccv<-r1
//將ar.ccv與[r2]比較,如果成功,則將r1寫回到[r2],如果不成功,則先前成功的線已被另一代理者修改
cmpxchg r8<-[r2],r1,ar.ccv
;;
Fc r2
對該快取線之清除(上述虛擬碼中之Fc r2)將造成資料將被寫到該HA。如果該HA上啟用了遷移,則該資料被複製到從屬本地代理者。
可以參照第1、2、8、或9圖而述及之各組件執行參照第3-7圖而述及之操作,其中第3圖示出根據一實施例的一外顯寫回操作的遷移流程之一流程圖。如圖所示,CA0將一外顯寫回(例如,WbM2i/WbIdata,用以指示CA0在對一快取線的一先前儲存操作之後正在收回(evicting)該快取線)傳送到主要HA。在該HA上啟用遷移。該主要HA將該資料寫到(Write)主要記憶體(寫入目錄是I),此外,在遷移模式中,該主要HA將一NcWr(例如,Non-cohWrite-用以指示該資料的一拷貝正在被傳送到從屬HA)傳送到從屬HA。該從屬HA將該寫入提交(commit)到從屬記憶體(目錄是U),且將一完成(Cmp)訊息傳送到該主要HA。在該主要HA自該從屬HA接收到該Cmp訊息之後,該主要HA將一完成(Cmp)訊息傳送到原始的提出要求者CA0。
第4圖示出根據一實施例的一隱含寫回操作的遷移流程之一流程圖。如圖所示,該主要HA代表來自CA1之RdInvOwn(例如,指示讀取所有權(read for ownership))而將一SnpInvOwn(例如,指示用來使現行擁有者無效之一監聽)傳送到CA0。該SnpInvOwn又造成來自CA0之一隱含寫回(例如,RspIWb/WbIData,用以指示CA0正在寫回被修改的資料(dirty data))。該主要HA將該寫入提交到主要記憶體(目錄是E@CA1)。此外,該主要HA將一NcWr傳送到該從屬HA。該從屬HA將該寫入提交到該從屬記憶體(目錄是U),且將一Cmp訊息(例如,用以指示完成)傳送到該主要HA。在自該從屬HA接收到該Cmp訊息之後,該主要HA將DataE_Cmp傳送到CA1,而完成了該要求。
第5圖示出根據一實施例的一讀取錯誤跳轉操作之一流程圖。關於在鏡像映射中之讀取錯誤跳轉,當一主要讀取送回無法被更正的信號(UNCORR)時,將監聽廣播到參與者向量中之所有代理者(假定目錄快取記憶體中有一未命中)且解決監聽回應。此外,可退回對鏡像的讀取(假定並無來自該等監聽之被修改的寫回),且自鏡像代理者將資料直接供應給提出要求者。
在一實施例中,在首次遭遇一無法被更正的錯誤時,可以逐條線之方式執行讀取錯誤跳轉,而不要失掉對整個主要記憶體的存取。一實施例實施一可程式臨界值計數器(用以計算無法被更正的錯誤之數目),且在讀取操作中,只有在超過該臨界值之後,才停用整個記憶體控制器。在一寫回操作中發生一無法被更正的錯誤之後,或在該主要記憶體控制器以信號通知一鏈路時,可停用整個記憶體控制器(例如,由於硬錯誤跳轉)。該從屬HA上的正確資料可被主動地寫回到該主要HA。然而,該記憶體控制器可記錄該無法被更正的錯誤之位址,且以信號通知一可恢復的錯誤。邏輯(例如,邏輯111)亦可取得該線之所有權,且在不對資料作任何改變之情形下將該線之內容沖洗到該主要HA。
對於主要HA上的目錄更新而言,該無法被更正的線可以在異常警示之形式下被寫回到該主要HA。在此種情形中,對該線進行後續之讀取時,將不會自該記憶體控制器接收到一UNCORR回應(假定軟性錯誤(soft error)造成該UNCORR),而是替代地送回一有異常警示之線(poisoned line)。一有異常警示之線也會使該HA將該讀取退回到該從屬HA。
關於HA錯誤跳轉(在遷移之後),在將快取代理者位址解碼器指向舊從屬HA(新主要HA)之後的流程將根據一實施例而如下文所述。首先,命中該新主要目錄中之U(未知)狀態的任何線將廣播監聽。當發生一讀取,且該目錄指示一FBD目錄(例如,該FBD目錄可被儲存在第1圖所示之目錄快取記憶體122及/或記憶體120)中之U時,該HA將發出SnpInv*(且將該線標示為處於該目錄中之E狀態)。請注意,在該遷移/寫入鏡像映射程序期間,可將該舊從屬HA(新主要HA)目錄寫入為U。
在一實施例中,不需要為了移除該目錄中之U狀態而對該位址空間執行一清除或讀取所有權迴圈,這是部分地因為:在首次存取一U狀態的線時,該HA可將該線標示為處於E狀態(RdCode/RdData/RdCur要求將廣播SnpInvItoE,且在提出要求者上將該線標示為E)。使無效要求(RdInvOwn,InvI2E)亦可在提出要求者上將該線標示為E。EvicCln(例如,指示收回一清除線命令)一U狀態的線時,將持續使該線留在該U狀態。
請參閱第5圖,CA0將一RdData傳送到該主要HA。來自該主要HA之對應的讀取導致一UNCORR回應。該主要HA將該讀取重新導向到該從屬HA(經由一NCRd),此外,該主要HA將該主要HA中之目錄寫到E@CA0。請注意,可在該主要記憶體中設定該異常警示位元(poison bit)。在接收到該NcRd之後,該從屬HA讀取該從屬記憶體,且將一DataE_Cmp直接傳送回原始的提出要求者CA0(請注意,該從屬目錄持續停留在該U狀態)。
在一實施例中,關於鏡像映射/遷移流程,於錯誤跳轉到該從屬本地代理者之讀取時,將採用下文所述之流程。主要本地代理者將具有下文所述參數之一NcRdPtl(例如,用以指示Non-coherentReadPartial命令,該命令是用來傳送錯誤跳轉讀取之一特殊命令)發出到該從屬本地代理者。該主要本地代理者以一"免回應訊息傳遞模式"("fire and forget")封包之形式傳送該封包(例如,其中將不預期來自該主要本地代理者之回應)。
‧RHNID-造成讀取錯誤跳轉的交易的提出要求者之網路識別碼(Network Identifier;簡稱NID)。可將該名稱縮寫為Orig_Req_RHNID。
‧RTID-造成讀取錯誤跳轉的交易之交易識別碼(Transaction Identifier;簡稱RTID)。可將該名稱縮寫為Orig RTID。
‧DNID-從屬本地NID。可將該名稱縮寫為Slave NID。
‧NCRdPtl中之長度欄位-’00-dataNC,01-dataI,10-dataE,11-dataS-向從屬本地代理者指示應如何送回資料。
該從屬本地代理者可將具有下文所述參數之DataC*或DataNC封包發出到原始的提出要求者。請注意,該從屬本地代理者不可將一回應傳送回該主要本地代理者:
‧RHNID-Primary_Home_agent NID(來自該從屬HA中之一CSR)
‧RTID-NcRdPtl之RTID(Orig_RTID)
‧DNID-NcRdPtl之RHNID。該DNID可與Orig_Requester_RHNID相同。
該體系之一優點在於:鏡像映射錯誤跳轉之主要本地代理者流程將簡單許多,這是因為不需要自從屬本地代理者接收資料且將該資料轉送到原始提出要求者。此外,自該從屬本地代理者之觀點而論,對該從屬本地代理者之假讀取看起來類似於正常的讀取,因而充當從屬本地代理者之本地代理者只須要很小的改變。
在一實施例中,該主要代理者不接收對其發出的交易(NcRdPtl)之回應。在此種情形中,該主要代理者通常應接收一DataNC。該行為替代地依賴主要與從屬本地代理者之間對於該從屬本地代理者將滿足原始要求且不滿足自主要本地代理者至從屬本地代理者的外表要求之"協議"(可在初使化時作出該協議)。此外,該主要本地代理者可使用該NcRdPtl的一段較低位址位元(某些實施例中之錯誤跳轉讀取不需要這些較低位址位元)而將資訊傳輸到該從屬本地代理者。該從屬本地代理者然後可將該被傳輸的資訊用來決定前文所述之適當的回應類型。
此外,自該主要本地代理者至該從屬本地代理者之要求仍然是一不同的"全域上唯一的識別碼",這是因為該DNID是唯一的(亦即,自主要本地代理者至從屬本地代理者之DNID不同於原始要求/交易中之DNID。原始提出要求之快取代理者不受任何此類改變的影響。
在某些實施例中,該寫入鏡像映射流程係以下文所述之方式運行。該主要本地代理者將一NcWr[Ptl]發出到該從屬本地代理者,以便提交寫入資料(來自一隱含/外顯寫回、或ncwr):
‧RHNID-原始提出要求者RHNID
‧RTID-原始提出要求者RTID
‧DNID-從屬本地節點DNID。
該從屬本地代理者(例如,在將該寫入提交到該從屬記憶體控制器之後)可以一Cmp封包回應該主要本地代理者。在一實施例中,該封包有下列欄位:(1)RHNID-從屬本地代理者NID;(2)RTID-來自NcWr[Pt1]之RTID,在此種情形中,該RTID是原始提出要求者RTID;(3)DNID-主要組態設定代理者(ubox)之NID([5:3]-主要HA插座位元,[2:0]-ubox nid(0x2));及/或(4)RSNID-來自NcWr[Pt1]之RHNID。
第6圖示出根據一實施例的埋入式M操作之一流程圖。在某些實施例中,HA實施例以一種FIFO方式服務對相同快取線之多個要求。請參閱第6圖,CA1將一RdInvOwn傳送到位址A。因為該HA先看到該要求,所以該HA承諾其先服務該要求。在CA0中之快取階層中修改該位址(如第6圖中之"M"所示)。CA0此時也將一要求傳送到該相同的位址。CA0的要求在該HA中之追蹤資料結構中被汲取(或被卸下)。該HA上之目錄可反映該位址是E@CA0之事實。因此,該HA將一SnpInvOwn傳送到CA0(代表CA1之要求)。當CA0接收到該回應時,CA0以RspCnfltOwn回應(例如,指示CA0已接收到對在CA0的快取階層中被標示為Modified的一線之一衝突的監聽)。這是因為該線在其快取階層中是buriedM。
如前文所述,該HA已承諾要服務CA1,但是該HA仍然需要監聽出來自CA0的快取記憶體的該線之最新拷貝。該HA可執行上述步驟的一種方式是先完成CA0的非循序(OOO)要求。該HA以非循序方式完成CA0的要求,且設定CA0的追蹤條目中之一位元,用以指示該現行要求是DEFUNCT。該HA然後完成與CA0間之一晚期衝突交握(late conflict handshake),且自CA0的快取記憶體中萃取該線之最新拷貝。該線之該最新拷貝被轉送到CA1,且該HA終於完成了CA1之要求。當在該HA上提出CA0對服務的原始要求時,該HA偵測到該要求已被標示為DEFUNCT,因而意味著已以非循序方式完成了該要求。該HA因而只須卸下來自CA0的該要求。
在某些實施例中,可修改上述流程,使(該HA以非循序方式完成CA0的要求時)CA0在接收到其以非循序完成回應且完成其衝突交握之後,可傳送另一要求,以便重新使用相同的追蹤索引。在此種情形中,該HA可再度將CA0的追蹤條目標示為ACTIVE。然後,當CA0提出對服務的(較新)要求時,該HA以正常方式完成該要求。
因此,在一實施例中,提供了在追蹤條目中加入一單一位元(DEFUNCT位元)之buriedM流程。用來支援非循序(OOO)完成之諸如衝突清單等的重新排序資料結構有極高的硬體成本。一實施例容許用來支援無須在HA上將該衝突清單重新排序的buriedM之HA。
第7圖示出根據一實施例的衝突處理操作之一流程圖。在一實施例中,該HA將空間預先分配給該系統中之所有CA要求。該預先分配式資料結構被界定為"追蹤器"("tracker")。在一來源監聽協定中,每一追蹤條目可具有一衝突追蹤條目向量。例如,對於512條目的追蹤器(9位元的追蹤索引)而言,若假定系統中有16個CA,則每一條目將有9x16=144位元寬度之衝突清單,其中8插座無黏接邏輯組態中之每一插座有兩個邏輯CA,因而其為一典型的8插座無黏接邏輯組態。被用於所有衝突清單之總儲存空間將是512x144(73728位元)。相比之下,在一實施例中,在該HA(一基於本地監聽目錄之HA)上,只以該追蹤條目中之一單一位元追蹤衝突。
在某些實施例中,此種體系可考慮兩種類型的衝突。早期衝突(early conflict)是衝突的CA尚未具有快取線的一拷貝之一種類型的衝突。在一實施例中,HA不理會此種衝突,且將衝突的監聽回應視為一正常的監聽回應。第二種類型的衝突被稱為晚期(或真實)衝突。在此種衝突中,提供衝突回應的CA確實有該線的最新拷貝。在此種情形中,該HA的責任是傳送一第二(後續)監聽,以便萃取該線的最新拷貝。當該HA接收到一晚期衝突監聽回應時,該HA可設定該回應傳送者的追蹤條目中之一位元。該位元指示(傳送該衝突回應的)該CA涉及一晚期衝突。此外,(傳送該衝突回應的)該CA可以一"AckCnflt"訊息作為該回應之後續行動。當該HA接收到對晚期衝突位元被設定的一追蹤索引之一AckCnflt回應時,該HA可傳送一CmpFwd(一種監聽)回應。此種方式可讓該HA自傳送該晚期衝突回應的CA萃取該線的最新拷貝。
請參閱第7圖,該HA將一DataE_Cmp回應傳送到CA1,而完成CA1的要求。該HA將該快取線之目錄更新為Exclusive@CA1。該HA然後代表來自CA2的一RdInvOwn要求而監聽CA1(在一實施例中,該HA實施一基於目錄之本地監聽協定)。對CA1之監聽在該系統結構中傳送DataCE_Cmp。CA1以RspCnflt回應,這是因為CA1之要求自CA1之觀點而論仍然未完成。當該HA自CA1接收到RspCnflt時,該HA檢視對應的追蹤條目,且注意到已完成了CA1的要求,因而該HA設定CA1的追蹤條目中之一位元,且等候AckCnflt(在某些實施例中,可能需要該AckCnflt)。
當來自CA1的AckCnflt到達時,該HA注意到CA1的追蹤條目中之該晚期衝突位元被設定了。該HA因而將一CmpFwd*監聽傳送到CA1,要求CA1將該快取線轉送到次一衝突者(CA2)。若接收到該晚期衝突位元未被設定之一AckCnflt,則將使該HA傳送一Cmp回應,而不傳送一監聽(CmpFwd)回應。該HA然後等候對該監聽(CmpFwd)之回應。當接收到該監聽回應時,終於完成了CA2之要求。
我們應可了解,與來源監聽協定之資料結構需求不同,在該本地監聽協定中,該HA可只須經由衝突者的追蹤條目中之一額外位元而解決衝突。因此,可將極有限的儲存空間(例如,每一追蹤條目中之一位元)用來解決衝突。因此,此種方式又可將實施例擴展到位址較大的市場區隔。此外,因為只須每一追蹤條目中之一額外位元即可解決衝突,所以該實施例使設計比諸如來源監聽的對應之解決方案有大許多的擴展性。
第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傳送的封包之一組程序或程式,其中該等封包可符合一特定協定。例如,可使用一傳輸控制協定/網際網路協定(Transport 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可儲存諸如參照第8圖的記憶體812所述之各種資料。如第9圖所示,處理器902及904(或系統900的諸如晶片組920或I/O裝置943等的其他組件)亦可包含諸如參照第1-8圖所述的那些快取記憶體等的一或更多個快取記憶體。
在一實施例中,處理器902及904可以是參照第8圖所述的該等處理器802中之一處理器。處理器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圖述及的那些儲存裝置等的儲存裝置。此外,可以電腦程式產品之形式下載此種電腦可讀取的媒體,其中可經由一通訊鏈路(例如,一匯流排、一數據機、或一網路連線)且利用載波或其他傳播媒介中提供之資料信號而將程式自一遠端電腦(例如,一伺服器)傳輸到提出要求的電腦(例如,一用戶端電腦)。
在本說明書中提及"一個實施例"或"一實施例"時意指參照該實施例述及的一特定的特性、結構、或特徵可被包含在至少一實施方式中。在本說明書的各處中出現詞語"在一實施例中"時,可以或可以不都參照到相同的實施例。
此外,在說明及申請專利範圍中,可使用術語"被耦合"及"被連接"以及其派生詞。在本發明之某些實施例中,"被連接"可被用來指示兩個或更多個元件相互在實體上或電氣上直接接觸。"被耦合"可意指:兩個或更多個元件在實體上或電氣上直接接觸。然而,"被耦合"亦可意指:兩個或更多個元件可能沒有相互直接接觸,但仍然可相互配合或作用。
因此,雖然已以與結構特徵及/或方法行動有關的語文說明了本發明之實施例,但是我們應可了解:申請專利範圍的標的可不限於本說明書中述及的該等特定的特徵或行動。更確切地說,係以實施申請專利範圍的標的之樣本形式之方式揭示該等特定的特徵或行動。
120,810,812,910,912...記憶體
122...目錄快取記憶體
100,200,800,900...運算系統
102-1~102-M,102...代理者
104...網路結構
106,108...單向鏈路
110...雙向鏈路
111...邏輯
202,204,206,208...插座
802,902,904...處理器
804...互連網路
805...電腦網路
806,920...晶片組
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圖示出根據某些實施例之流程圖。
100...運算系統
104...網路結構
106,108...單向鏈路
110...雙向鏈路
111...邏輯
102-1~102-M...代理者
120...記憶體
122...目錄快取記憶體

Claims (27)

  1. 一種用於在本地代理者之記憶體鏡像及遷移之裝置,包含:一第一代理者,用以將資料儲存在被耦合到該第一代理者之一第一記憶體中;以及一第一邏輯,用以將該第一記憶體中儲存之資料鏡像映射在一第二代理者,其中該被鏡像映射的資料將在一記憶體控制器分割程度下被複製以及其中目錄的一條目之一位元指示先前傳送一衝突回應之一快取代理者是否涉及一晚期衝突。
  2. 如申請專利範圍第1項之裝置,其中該第一邏輯根據一外顯寫回、一隱含寫回、或一讀取錯誤跳轉而鏡像映射該被儲存之資料。
  3. 如申請專利範圍第1項之裝置,其中該第二代理者被耦合到用來儲存該被鏡像映射的資料之一第二記憶體。
  4. 如申請專利範圍第3項之裝置,進一步包含其中包含該第一記憶體及該第二記憶體之一記憶體。
  5. 如申請專利範圍第1項之裝置,其中該第一代理者及該第二代理者維護該目錄,該目錄係用來儲存與每一快取線被緩衝儲存在哪一代理者以及每一快取線處於何種狀態有關之資訊。
  6. 如申請專利範圍第5項之裝置,其中對應於一要求之一或更多個監聽只被傳送到該目錄指示包含了對應於該要求的資料之一快取拷貝之一或更多個本地代理者。
  7. 如申請專利範圍第5項之裝置,其中該目錄的一條目之一位元指示該條目是否已被修改。
  8. 如申請專利範圍第1項之裝置,其中該晚期衝突指示該快取代理者有衝突的資料之最新拷貝。
  9. 如申請專利範圍第1項之裝置,其中該第一代理者包含該第一邏輯。
  10. 如申請專利範圍第1項之裝置,進一步包含被耦合到該第一代理者之一目錄快取記憶體,用以儲存對應於被耦合到該第一代理者的複數個快取代理者之資料。
  11. 如申請專利範圍第10項之裝置,其中該第一代理者回應自該複數個快取代理者中之一或更多個快取代理者接收的一或更多個監聽回應而更新該目錄快取記憶體。
  12. 如申請專利範圍第10項之裝置,其中該第一代理者將一或更多個監聽傳送到該複數個快取代理者中被該目錄快取記憶體識別為具有對應於目標位址的資料的一拷貝之一或更多個快取代理者。
  13. 如申請專利範圍第1項之裝置,其中該第一代理者是一本地代理者,且該第二代理者是一從屬代理者。
  14. 如申請專利範圍第1項之裝置,進一步包含用來耦合該第一代理者及該第二代理者之一序列鏈路。
  15. 如申請專利範圍第1項之裝置,其中該第一代理者及該第二代理者是在一相同的積體電路晶粒中。
  16. 如申請專利範圍第1項之裝置,其中該第一邏輯將該被儲存之資料遷移到該第二代理者。
  17. 一種用於在本地代理者之記憶體鏡像及遷移之方法,包含:將資料儲存在被耦合到一第一代理者之一第一記憶體中;以及將該第一記憶體中儲存之資料鏡像映射在一第二代理者,其中該被鏡像映射的資料將在一記憶體控制器分割程度下被複製以及其中目錄的一條目之一位元指示先前傳送一衝突回應之一快取代理者是否涉及一晚期衝突。
  18. 如申請專利範圍第17項之方法,其中係根據一外顯寫回、一隱含寫回、或一讀取錯誤跳轉而執行該被儲存之資料之鏡像映射。
  19. 如申請專利範圍第17項之方法,進一步包含:將來自該第一記憶體之資料儲存在被耦合到該第二代理者之一第二記憶體中。
  20. 如申請專利範圍第17項之方法,進一步包含:維護該目錄,該目錄係用來儲存與每一快取線被緩衝儲存在哪一代理者以及每一快取線處於何種狀態有關之資訊。
  21. 如申請專利範圍第20項之方法,進一步包含:對應於一要求之一或更多個監聽只被傳送到該目錄指示包含了對應於該要求的資料之一快取拷貝之一或更多個本地代理者。
  22. 如申請專利範圍第20項之方法,其中該目錄的一條目之一位元指示該條目是否已被修改。
  23. 一種用於在本地代理者之記憶體鏡像及遷移之系 統,包含:用來儲存一目錄之一記憶體,該目錄儲存與每一快取線被緩衝儲存在哪一代理者以及每一快取線處於何種狀態有關之資訊,其中該目錄的一條目之一位元指示先前傳送一衝突回應之一快取代理者是否涉及一晚期衝突;以及用來將資料儲存在記憶體中之一第一代理者,其中該第一代理者包含一第一邏輯,用以將該記憶體中儲存之資料鏡像映射在一第二代理者,其中該被鏡像映射的資料將在一記憶體控制器分割程度下被複製。
  24. 如申請專利範圍第23項之系統,其中該第一邏輯根據一外顯寫回、一隱含寫回、或一讀取錯誤跳轉而鏡像映射該被儲存之資料。
  25. 如申請專利範圍第23項之系統,其中該第二代理者被耦合到用來儲存該被鏡像映射的資料之記憶體。
  26. 如申請專利範圍第23項之系統,其中對應於一要求之一或更多個監聽只被傳送到該目錄指示包含了對應於該要求的資料之一快取拷貝之一或更多個本地代理者。
  27. 如申請專利範圍第23項之系統,其中該目錄的一條目之一位元指示該條目是否已被修改。
TW099131445A 2009-09-30 2010-09-16 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 TWI431475B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/571,382 US8799586B2 (en) 2009-09-30 2009-09-30 Memory mirroring and migration at home agent

Publications (2)

Publication Number Publication Date
TW201137612A TW201137612A (en) 2011-11-01
TWI431475B true TWI431475B (zh) 2014-03-21

Family

ID=43781577

Family Applications (2)

Application Number Title Priority Date Filing Date
TW099131445A TWI431475B (zh) 2009-09-30 2010-09-16 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
TW102148747A TWI516933B (zh) 2009-09-30 2010-09-16 用於在本地代理者之記憶體鏡像及遷移之裝置及方法以及電腦可讀取媒體

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW102148747A TWI516933B (zh) 2009-09-30 2010-09-16 用於在本地代理者之記憶體鏡像及遷移之裝置及方法以及電腦可讀取媒體

Country Status (4)

Country Link
US (1) US8799586B2 (zh)
CN (1) CN102033715B (zh)
TW (2) TWI431475B (zh)
WO (1) WO2011041095A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9336146B2 (en) 2010-12-29 2016-05-10 Empire Technology Development Llc Accelerating cache state transfer on a directory-based multicore architecture
CN102521163B (zh) * 2011-12-08 2014-12-10 华为技术有限公司 目录替换方法及设备
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
CN104380269B (zh) 2012-10-22 2018-01-30 英特尔公司 高性能互连相干协议
CN107219999B (zh) * 2013-08-31 2020-06-26 华为技术有限公司 一种服务器中内存模块的数据迁移方法及服务器
EP3206127B1 (en) 2013-11-22 2019-03-06 Huawei Technologies Co., Ltd. Method, computer, and apparatus for migrating memory data
CN104035888B (zh) 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备
US9619396B2 (en) 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US10152112B2 (en) 2015-06-10 2018-12-11 Sonics, Inc. Power manager with a power switch arbitrator
CN107018170B (zh) * 2016-10-27 2020-09-08 阿里巴巴集团控股有限公司 一种数据同步方法和设备
US11159636B2 (en) * 2017-02-08 2021-10-26 Arm Limited Forwarding responses to snoop requests
US10126964B2 (en) * 2017-03-24 2018-11-13 Seagate Technology Llc Hardware based map acceleration using forward and reverse cache tables
US10255891B2 (en) * 2017-04-12 2019-04-09 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with multiple LSR processing engines
GR20180100189A (el) 2018-05-03 2020-01-22 Arm Limited Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
US10917198B2 (en) * 2018-05-03 2021-02-09 Arm Limited Transfer protocol in a data processing network
US11809899B2 (en) 2019-06-28 2023-11-07 Intel Corporation Methods and apparatus for accelerating virtual machine migration
US11604730B2 (en) * 2020-06-26 2023-03-14 Intel Corporation Redundant cache-coherent memory fabric
US20220011939A1 (en) * 2021-09-24 2022-01-13 Intel Corporation Technologies for memory mirroring across an interconnect
TWI812395B (zh) * 2022-08-11 2023-08-11 緯創資通股份有限公司 用於邏輯分析的微控制器、方法及電子系統

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0717358B1 (en) 1994-12-15 2001-10-10 Hewlett-Packard Company, A Delaware Corporation Failure detection system for a mirrored memory dual controller disk storage system
US5832306A (en) 1995-10-18 1998-11-03 Silicon Graphics, Inc. Acknowledge triggered forwarding of external block data responses in a microprocessor
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6035436A (en) 1997-06-25 2000-03-07 Intel Corporation Method and apparatus for fault on use data error handling
US6240501B1 (en) 1997-09-05 2001-05-29 Sun Microsystems, Inc. Cache-less address translation
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 通信サービスユニットおよび通信方式
GB0216000D0 (en) 2002-07-10 2002-08-21 Nokia Corp A method for setting up a security association
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
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
US20070150664A1 (en) 2005-12-28 2007-06-28 Chris Dombrowski System and method for default data forwarding coherent caching agent
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
US7587575B2 (en) 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US20080313495A1 (en) 2007-06-13 2008-12-18 Gregory Huff Memory agent
US7827251B2 (en) 2007-08-14 2010-11-02 Cisco Technology, Inc. Fast write operations to a mirrored volume in a volume manager
US8352806B2 (en) 2008-01-31 2013-01-08 International Business Machines Corporation System to improve memory failure management and associated methods
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
US8782347B2 (en) * 2009-06-26 2014-07-15 Intel Corporation Controllably exiting an unknown state of a cache coherency directory
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

Also Published As

Publication number Publication date
CN102033715B (zh) 2015-04-22
CN102033715A (zh) 2011-04-27
TW201137612A (en) 2011-11-01
WO2011041095A3 (en) 2011-07-21
TWI516933B (zh) 2016-01-11
TW201432457A (zh) 2014-08-16
US8799586B2 (en) 2014-08-05
WO2011041095A2 (en) 2011-04-07
US20110078384A1 (en) 2011-03-31

Similar Documents

Publication Publication Date Title
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
US10019366B2 (en) Satisfying memory ordering requirements between partial reads and non-snoop accesses
JP5575870B2 (ja) 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足
US8392665B2 (en) Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
US7814279B2 (en) Low-cost cache coherency for accelerators
CN101097545B (zh) 独占所有权探听过滤器
CN101430664B (zh) 一种多处理器系统及Cache一致性消息传输方法
TW201124840A (en) Home agent data and memory management
TW201007453A (en) Snoop filtering mechanism
EP2656227A2 (en) Debugging complex multi-core and multi-socket systems
US8495091B2 (en) Dynamically routing data responses directly to requesting processor core
US8909862B2 (en) Processing out of order transactions for mirrored subsystems using a cache to track write operations
US7725660B2 (en) Directory for multi-node coherent bus
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
JPH09305489A (ja) 情報処理システム及びその制御方法