TW201447749A - 使用反射記憶體實行同調之技術 - Google Patents

使用反射記憶體實行同調之技術 Download PDF

Info

Publication number
TW201447749A
TW201447749A TW103105494A TW103105494A TW201447749A TW 201447749 A TW201447749 A TW 201447749A TW 103105494 A TW103105494 A TW 103105494A TW 103105494 A TW103105494 A TW 103105494A TW 201447749 A TW201447749 A TW 201447749A
Authority
TW
Taiwan
Prior art keywords
data
memory
memory device
cache
modified
Prior art date
Application number
TW103105494A
Other languages
English (en)
Other versions
TWI506537B (zh
Inventor
Gregg B Lesartre
Robert J Brooks
Blaine D Gaither
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201447749A publication Critical patent/TW201447749A/zh
Application granted granted Critical
Publication of TWI506537B publication Critical patent/TWI506537B/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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache

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)

Abstract

本文說明用以更新一第一記憶體裝置之一反射記憶體區域中的資料之技術。於一範例中,一種用以更新一第一記憶體裝置之一反射記憶體區域中的資料之方法包括接收資料可從一快取記憶體裝置沖除至該第一記憶體裝置的一指示。該方法亦可包括檢測對應於該資料之一記憶體位址係位於該第一記憶體裝置之反射記憶體區域中,以及使用一沖除操作將資料從該快取記憶體裝置送至該第一記憶體裝置。此外,該方法包括決定該第一記憶體裝置接收之資料為修改過資料。再者,該方法包括將該修改過資料送至一第二計算系統之一第二記憶體裝置。

Description

使用反射記憶體實行同調之技術
本發明係有關於使用反射記憶體實行同調之技術。
發明背景
現代計算裝置會逐漸增加執行複雜的軟體應用程式。為了減少該等複雜的軟體應用程式之執行時間,某些計算裝置可並列執行操作。例如,一計算裝置可同時執行兩個操作。某些實施例中,兩個計算裝置可藉由在該等兩個計算裝置之間送出與接收資料來並列執行操作。
依據本發明之一實施例,係特地提出一種用以更新一第一記憶體裝置之一反射記憶體區域中的資料之方法,其包含下列步驟:接收資料可從一快取記憶體裝置沖除至該第一記憶體裝置的一指示;檢測對應於該資料之一記憶體位址係位於該第一記憶體裝置之反射記憶體區域中;使用一沖除操作將資料從該快取記憶體裝置送至該第一記憶體裝置;決定該第一記憶體裝置接收之資料為修改 過資料;以及將該修改過資料送至一第二計算系統之一第二記憶體裝置。
100、400‧‧‧計算系統
102、414、502‧‧‧處理器
104‧‧‧系統匯流排
106‧‧‧輸入/輸出裝置介面
108‧‧‧輸入/輸出裝置
110‧‧‧顯示器裝置介面
112‧‧‧顯示器裝置
114‧‧‧網路介面卡
116、402‧‧‧記憶體裝置
118、404‧‧‧快取記憶體、第二記憶體裝置
120‧‧‧第二記憶體裝置
122‧‧‧第二計算系統
124、506‧‧‧資料管理模組
126‧‧‧光纖
128‧‧‧第二資料管理模組
200、300‧‧‧方法
202、204、206、208、302、304、306、308、310、312、314、316‧‧‧方塊
406‧‧‧資料
408‧‧‧反射記憶體
410‧‧‧快取記憶體線路
412‧‧‧記憶體指示器位元
500‧‧‧有形、非暫態、電腦可讀媒體
504‧‧‧電腦匯流排
下列詳細說明中並參照該等附圖來描述某些範例,其中:圖1是一可使用反射記憶體於一計算裝置中實行同調之示範計算系統的方塊圖;圖2是一程序流程圖,其繪示用於使用反射記憶體於一計算裝置中實行同調之一方法的一範例;圖3是一用以響應一快取記憶體未中,用於使用反射記憶體於一計算裝置中實行同調之一方法的一範例之程序流程圖;圖4是一繪示同調如何使用反射記憶體於一計算裝置中實行之一範例的方塊圖;以及圖5是一描繪可使用反射記憶體於一計算裝置中實行同調之一有形、非暫態電腦可讀媒體的一範例之方塊圖。
較佳實施例之詳細說明
根據本文說明之標的的實施例,具有反射記憶體之一計算裝置可執行同調。如本文參照之反射記憶體包括一共享記憶體系統中之一記憶體裝置的任何適當部分,透過多個、分開的記憶體控制器或資料管理模組,其可維持一組共同的資料。例如,反射記憶體可將資料儲存於一計 算系統之非依電性記憶體中,且亦儲存一第二計算系統之一記憶體裝置中的資料複本。多個資料複本儲存在一計算系統中或多個計算系統中之各種不同的記憶體裝置時,本文說明之技術可維持同調。如本文參照之同調包括檢測一共享記憶體系統中之一組共同資料的修改、以及根據該修改來更新該組共同資料之複本。例如,與一記憶體位址相關聯之資料可從一記憶體裝置複製到一快取記憶體裝置。若該處理器修改該快取記憶體裝置中之資料,則該記憶體裝置中之資料可能過期或過時。本文說明之技術可使包括反射記憶體之計算裝置能夠同調。
某些實施例中,本文說明之技術可執行同調而不需將未修改過資料從一快取記憶體裝置送至一記憶體裝置。例如,一處理器可存取一快取記憶體裝置中之某些資料值以便讀取該等資料值,其並不修改該等資料值。該處理器亦可針對寫入操作來存取資料值,其可修改該等資料值。某些實施例中,該等未修改過資料值可維持在該快取記憶體裝置中,而修改過資料值可複製到一記憶體裝置。
圖1是一可使用反射記憶體於一計算裝置中實行同調之一計算系統100的一範例之方塊圖。該計算系統100可包括,例如,一電腦伺服器、一行動電話、膝上型電腦、桌上型電腦、或平板電腦、等等。該計算系統100可包括配適成執行儲存指令之一處理器102。該處理器102可為一單核心處理器、一多核心處理器、一計算叢集、或任何數量的其他適當組態。
該處理器102可透過一系統匯流排104(例如,AMBA、PCI®、快速PCI®、超傳送標準(Hyper Transport)®、序列ATA、等等)連接至配適成將該計算系統100連接至一或更多I/O裝置108之一輸入/輸出(I/O)裝置介面106。該I/O裝置108可包括,例如,一鍵盤與一指向裝置,其中該指向裝置可包括一觸控板或一觸控螢幕、等等。該I/O裝置108可為該計算系統100之內建構件、或可為外部連接至該計算系統100的裝置。
該處理器102亦可透過該系統匯流排104鏈接至配適成將該計算系統100連接至一顯示器裝置112之一顯示器裝置介面110。該顯示器裝置112可包括該計算系統100之一內建構件的一顯示螢幕。該顯示器裝置112亦可包括外部連接至該計算系統100之一電腦螢幕、電視、或投影機、等等。此外,該處理器102亦可透過該系統匯流排104鏈接至一網路介面卡(NIC)114。該NIC 114可配適成透過該系統匯流排104將該計算系統100連接至一網路(未描繪)。該網路(未描繪)可為一廣域網路(WAN)、區域網路(LAN)、或網際網路、等等。
該處理器102亦可透過該系統匯流排104鏈接至一記憶體裝置116。某些實施例中,該記憶體裝置116可包括隨機存取記憶體(例如,SRAM、DRAM、eDRAM、EDO RAM、DDR RAM、RRAM®、PRAM、等等)、唯讀記憶體(例如,遮罩ROM、EPROM、EEPROM、等等)、非依電性記憶體、或任何其他適當的記憶體系統。於一範例中,該 記憶體裝置116可包括任何適當數量的記憶體位址,其每一位址對應於任何適當數量的資料值。某些實施例中,經常存取之資料值的複本可儲存在一快取記憶體118中。某些實施例中,該處理器102針對一操作在從該記憶體裝置116請求資料前,先從該快取記憶體118請求資料。於一範例中,該快取記憶體118可儲存比該記憶體裝置116還少的資料值,但該快取記憶體118可將儲存資料提供至該處理器102比該記憶體裝置116將儲存資料提供至該處理器102還快。
某些實施例中,來自該記憶體裝置116之資料可在一第二計算系統122之一第二記憶體裝置120中反射。如本文參照之術語“反射”包括一第一計算系統,其產生或寫入資料、並維持一第二計算系統上之一分開記憶體裝置的該資料之一局部同調複本。例如,該記憶體裝置116之一記憶體位址可對應於修改為一新數值之一資料值。為提供該記憶體裝置116與該第二記憶體裝置120之同調,該新資料值可從該記憶體裝置116送至、或“反射”至該第二記憶體裝置118。該第二記憶體裝置118與一第二計算系統122相關聯,該第二計算系統122操作時其消耗來自該記憶體裝置116之新資料值。如本文參照之消耗資料包括讀取操作時使用資料,但寫入操作時不使用資料。
某些實施例中,該處理器102可透過該系統匯流排104鏈接至一資料管理模組124。該資料管理模組124可維持儲存於一記憶體裝置116、快取記憶體118、與一第二記憶體裝置120間之資料同調。於一實施例中,該資料管理模 組124可透過任何適當的光纖126(例如,PCI®、快速PCI®、超傳送標準(Hyper Transport)®、序列ATA、等等)將資料送至一第二記憶體裝置120、以及一第二計算系統122之一第二資料管理模組128。該第二資料管理模組128可維持儲存於該第二計算系統122之第二記憶體裝置120中的資料同調。
於一實施例中,該資料管理模組124可藉由將該快取記憶體118中之修改過資料複製到該記憶體裝置116來維持該儲存資料的同調。從該快取記憶體118將修改過資料複製到該記憶體裝置116於本文中亦可參照為“沖除”資料。某些實施例中,該資料管理模組124將資料從該快取記憶體118沖除至該記憶體裝置116之一反射記憶體範圍時,一資料管理模組124可將該修改過資料送出至一第二記憶體裝置120。藉由維持儲存於一第二記憶體裝置120中之資料同調,該第二資料管理模組128可確認於一第二計算系統122中執行之操作將使用從一記憶體裝置116中之該組配的反射記憶體區域轉送之修改過資料。某些實施例中,該第二資料管理模組128可接收該修改過資料,並將該修改過資料對映至該第二記憶體裝置120之一位址範圍。
應了解圖1之方塊圖並不意欲指出該計算系統100包括圖1所示之所有構件。而是,該計算系統100可包括較少或圖1未繪示之額外構件(例如,額外的記憶體裝置、視訊卡、額外的網路介面、等等)。此外,該資料管理模組124之任何功能可以分開的硬體來部分地、或全部地執行。 例如,該功能可使用一記憶體裝置116中、或一周邊裝置之一共同處理器中之一特殊應用積體電路、等等來執行。
圖2是一程序流程圖,其繪示用於使用反射記憶體於一計算裝置中實行同調之一方法的一範例。該方法200可使用一計算裝置,諸如圖1之計算系統100來執行。
方塊202中,該資料管理模組124可從一快取記憶體裝置接收一快取記憶體線路可被沖除的一指示。如上所述,一快取記憶體裝置可儲存任何適當數量的資料快取記憶體線路,每一快取記憶體線路包含一資料量,例如,16、32、64、或128位元組的資料。如本文所參照之沖除一快取記憶體線路,包括將一修改過快取記憶體線路從一快取記憶體裝置送至一記憶體裝置。沖除一快取記憶體線路亦包括從該快取記憶體裝置刪除一未修改的快取記憶體線路。快取記憶體線路將相關圖4於下文中更詳細說明。某些實施例中,該資料管理模組124可從一操作系統、或一應用程式、等等接收一指示。該指示可為指導該資料管理模組124來指導一快取記憶體裝置將修改過資料送至一記憶體裝置之任何適當的操作、或資料。
方塊204中,該資料管理模組124可產生迫使該快取記憶體裝置將資料從該快取記憶體裝置之快取記憶體線路送至一記憶體裝置的沖除操作。某些實施例中,該資料管理模組124可使用來自軟體、一操作系統、或一硬體構件之一指示來產生沖除操作。例如,從一快取記憶體裝置至一記憶體裝置,該資料管理模組124可檢測一快取記憶體線 路可被沖除的一指示。
方塊206中,該資料管理模組124可決定從該快取記憶體裝置沖除之快取記憶體線路的資料是否為至一記憶體裝置之一反射記憶體區域以及該資料是否已被修改。如上所述,一反射記憶體區域可包括維持與至少一額外記憶體裝置同調之一記憶體裝置的任何適當部分。例如,若資料於一第一記憶體裝置之一指定反射區域中修改,則該修改過資料之複本可送至或反射至可儲存該第一反射記憶體裝置之資料複本的一第二記憶體裝置。某些實施例中,該資料管理模組124可決定記憶體中之一組記憶體範圍可在任何適當數量的額外記憶體裝置中反射。
如方塊204中略述,用以響應該資料管理模組124產生之沖除操作,資料可從該快取記憶體裝置沖除,或者該快取記憶體裝置可獨立選擇來沖除該快取記憶體線路。某些實施例中,該資料管理模組124可比較對應於該資料之記憶體位址與一記憶體裝置之該反射記憶體區域中的記憶體位址範圍。例如,若一處理器執行包含儲存於該快取記憶體中之資料的一寫入操作,則快取記憶體中之一記憶體位址可鏈接至修改過資料。某些實施例中,一處理器可修改儲存於該快取記憶體中之資料並追蹤該資料已使用該MESI協定來修改。例如,該快取記憶體可包括指出一快取記憶體線路已被修改或互斥的一位元。若該快取記憶體線為互斥,則儲存於該快取記憶體線路中之資料值與儲存於記憶體中之資料值匹配。某些實施例中,一互斥快取記憶 體線路可變為一修改過快取記憶體線路。例如,一處理器在儲存於一互斥快取記憶體線路中之資料上執行一寫入操作時,該資料可被修改而該快取記憶體線路變為一修改過快取記憶體線路。儲存於快取記憶體中之修改過資料不再具有與儲存於記憶體中之資料相同的數值。
若該資料管理模組124決定快取記憶體線路中之資料從該快取記憶體裝置沖除至一記憶體裝置之反射記憶體區域且該資料已被修改,則該程序流程繼續方塊208。若該資料管理模組124決定快取記憶體線路中之資料不從該快取記憶體裝置沖除至一記憶體裝置之反射記憶體區域或者該資料未被修改,則該程序流程在方塊210結束。
方塊208中,該資料管理模組124將修改過資料送至一第二計算系統中之一第二記憶體裝置。例如,該資料管理模組124可將該修改過資料從包括反射記憶體(本文亦參照為一反射記憶體裝置)之一記憶體裝置送至一第二反射記憶體裝置。某些實施例中,該第二反射記憶體裝置可常駐於一第二計算系統中。於一範例中,該第二計算系統可包括一資料管理模組,其可將修改過資料值複製到該第二計算系統中之各種不同記憶體裝置,諸如非依電性記憶體、依電性記憶體、或快取記憶體、等等。於一實施例中,該資料管理模組124可將該修改過資料送至儲存來自反射記憶體之資料的任何適當數量之記憶體裝置。該資料管理模組124亦可將多個修改過資料值一起送至與反射記憶體相關聯之額外記憶體裝置。某些實施例中,一第二計算系 統用以響應接收修改過資料而將該第二計算系統之一快取記憶體裝置中的資料沖除至該第二計算系統之第二記憶體裝置。該程序流程在方塊210結束。
圖2之程序流程圖並不意欲指出該方法200之操作需以任何特定順序來執行,或者該方法200之所有操作需包括在每一種情況中。例如,該資料管理模組124可不產生迫使快取記憶體線路將修改過資料送至一記憶體裝置之沖除操作。而是,該資料管理模組124可檢測一處理器已執行將修改過資料潛在地沖除至一記憶體裝置之一沖除操作。此外,根據該特定的應用,任何數量的額外步驟可包括在該方法200中。例如,該資料管理模組124亦可檢測來自快取記憶體之一逐出快取記憶體線路。用以響應檢測該逐出快取記憶體線路,該資料管理模組124可比較至一記憶體裝置之反射記憶體區域的逐出快取記憶體線路中之資料,並將該修改過資料從該反射區域送至一第二計算系統中之一第二記憶體裝置。
圖3是一用以響應一快取記憶體未中,用於使用反射記憶體於一計算裝置中實行同調之一方法的一範例之程序流程圖。如本文參照之一快取記憶體未中包括一處理器決定一請求資料未儲存於該快取記憶體裝置後,該處理器從一記憶體裝置請求資料。該方法300可使用一計算裝置,諸如圖1之計算系統100來執行。
方塊302中,該資料管理模組124可檢測一快取記憶體未中。某些實施例中,一快取記憶體未中會造成一處 理器存取一記憶體裝置中之資料。例如,該處理器可存取位於一共享狀態或一互斥狀態之記憶體裝置中的資料。於一共享狀態中,該處理器無法修改該記憶體裝置中的資料,諸如位於一唯讀模式。於一互斥狀態中,該處理器能夠使用寫入操作來修改該記憶體裝置中的資料。
方塊304中,該資料管理模組124決定該處理器存取之資料的記憶體位址是否對應於該記憶體裝置之一反射記憶體區域。此外,某些實施例中,該資料管理模組124決定該存取資料是否提供至位於一互斥或修改狀態之快取記憶體裝置。如上所述,反射記憶體可包括維持與至少一額外記憶體裝置同調之一記憶體裝置的任何適當部分。例如,若資料於一第一記憶體裝置之一指定反射區域中修改,則該修改過資料之複本可被送至或反射到亦儲存該資料之一第二記憶體裝置。某些實施例中,該資料管理模組124可決定記憶體中之一組記憶體範圍係於任何適當數量之額外記憶體裝置中反射。若該資料管理模組124決定該處理器存取之資料的記憶體位址對應於該記憶體裝置之一反射記憶體區域,而該存取資料已被提供至位於一互斥或修改狀態之快取記憶體裝置,則該程序流程繼續方塊306。若該資料管理模組124決定該處理器存取之資料的記憶體位址不對應於該記憶體裝置之一反射記憶體區域,或者該存取資料未被提供至位於一互斥或修改狀態之快取記憶體裝置,則該程序流程在方塊308結束。
方塊306中,於一延遲後該資料管理模組124將該 存取的快取記憶體線路之一沖除排程。該存取的快取記憶體線路之一沖除可包括將來自該存取的快取記憶體線路之資料從一快取記憶體裝置送至一記憶體裝置。方塊310中,該資料管理模組124將一沖除操作送至一快取記憶體裝置。該沖除操作可指出該快取記憶體裝置係用來將一快取記憶體線路送出該記憶體裝置。
方塊312中,該資料管理模組124決定該沖除的快取記憶體線路中之資料是否寫入該記憶體裝置。某些實施例中,若來自該沖除的快取記憶體線路之資料已被修改,則來自該沖除的快取記憶體線路之資料可被寫入該記憶體裝置。例如,一處理器可執行修改一快取記憶體裝置之任何快取記憶體線路中的資料之一寫入操作。該快取記憶體線路儲存之修改過資料可與該記憶體裝置中儲存的資料不同。因此,以來自該快取記憶體之修改過資料來替代該記憶體裝置中之資料可更新該記憶體裝置中之資料。若該沖除的快取記憶體線路寫入該記憶體裝置,則該程序流程繼續方塊314。若該沖除的快取記憶體線路不寫入該記憶體裝置,則該程序流程在方塊308結束。
方塊314中,該資料管理模組124決定該快取記憶體線路中之資料從該快取記憶體裝置沖除至一記憶體裝置之一反射記憶體區域且該資料已被修改。該快取記憶體線路可由於方塊306中之排程而被沖除。某些實施例中,該快取記憶體線路亦可由該快取記憶體裝置118來獨立沖除。某些實施例中,一處理器可修改該快取記憶體中儲存之資料 並指出該資料已使用該MESI協定來修改。例如,該快取記憶體可包括指出一快取記憶體線路被修改或互斥的一位元。快取記憶體中儲存之修改過資料將不再具有與儲存於記憶體中之資料相同的數值。
方塊316中,該資料管理模組124將修改過資料從該記憶體裝置之反射區域送至一第二計算系統中之一第二記憶體裝置。例如,該資料管理模組124可將該修改過資料從包括反射記憶體(本文亦參照為一反射記憶體裝置)之一記憶體裝置送至一第二反射記憶體裝置。某些實施例中,該第二反射記憶體裝置可常駐於一第二計算系統中。於一範例中,該第二計算系統可包括一資料管理模組,其可將修改過資料值複製到該第二計算系統中之各種不同記憶體裝置,諸如非依電性記憶體、依電性記憶體、或快取記憶體、等等。於一實施例中,該資料管理模組124可將該修改過資料送至儲存來自反射記憶體之資料的任何適當數量之記憶體裝置。該資料管理模組124亦可將多個修改過資料值一起送至與反射記憶體相關聯之額外記憶體裝置。某些實施例中,一第二計算系統用以響應接收修改過資料而將該第二計算系統之一快取記憶體裝置中的資料沖除至該第二計算系統之第二記憶體裝置。該程序流程在方塊308結束。
圖3之程序流程圖並不意欲指出該方法300之操作需以任何特定順序來執行,或者該方法300之所有操作需包括在每一種情況中。例如,若該資料管理模組124將一沖除操作送至一快取記憶體裝置之前,一處理器即逐出一快 取記憶體線路,則該資料管理模組124可不將該沖除操作送至該快取記憶體裝置。此外,根據該特定的應用,任何數量的額外步驟可包括在該方法300中。
圖4是一繪示同調如何使用反射記憶體於一計算裝置中實行之一範例的方塊圖。某些實施例中,該計算系統400可包括一記憶體裝置402、一資料管理模組124、以及一快取記憶體404。該記憶體裝置402可儲存與任何適當數量的記憶體位址相關聯之任何適當的資料量406。某些實施例中,該記憶體裝置402之一部分可用來作為反射記憶體408。如上所述,該反射記憶體408可包括額外記憶體裝置中反射之記憶體位址中保有的資料。例如,反射記憶體408中儲存之資料複本可儲存於局部位在與該記憶體裝置402相同的計算裝置中、或在一分開的計算裝置中之額外記憶體裝置中。某些實施例中,用來作為反射記憶體408之該記憶體裝置402的一部分可週期性修改來儲存用於反射之一不同資料量。
某些實施例中,該快取記憶體404可將資料儲存於快取記憶體線路410中。每一快取記憶體線路410可保有與一記憶體位址相關聯之資料。於一實施例中,該等快取記憶體線路410可包括指出該等快取記憶體線路410中之資料是否已被修改的一記憶體指示器位元412。例如,一處理器414可使用來自一快取記憶體線路410之資料來執行一寫入操作,其可以一修改數值來替代一快取記憶體線路410中之現存資料值。該處理器414亦可將該記憶體指示器位元 412從互斥變為修改以指出該快取記憶體線路410中之資料已被修改。
某些實施例中,該資料管理模組124可從一軟體應用程式來檢測一寫入操作,該應用程式指出一記憶體位址範圍可從一快取記憶體裝置404沖除至一記憶體裝置402。例如,該寫入操作可發送至該資料管理模組124之一控制暫存器。某些實施例中,該控制暫存器可指出應從一快取記憶體裝置404沖除至一記憶體裝置402之任何適當數量的記憶體位址。該資料管理模組124亦可產生操作來將資料從任何適當數量的快取記憶體裝置中移除。例如,該資料管理模組124可將於一預定範圍之記憶體位址中的記憶體位址從一快取記憶體裝置404沖除至一記憶體裝置402。
或者,該資料管理模組124可使用來自一記憶體介面,諸如一記憶體控制器之預定資訊,來沖除至一記憶體裝置402之快取記憶體線路410。某些實施例中,該預定資訊可包括來自一過濾快取記憶體(本文亦參照為RTAG)、或位於如針對使用一記憶體對映儲存器架構來建議之描述符欄位中的資訊。某些範例中,該資料管理模組124可使用該預定資訊來決定若干快取記憶體線路410包括來自一記憶體裝置402之反射記憶體408中的資料。該資料管理模組124亦可在將該資料從該等快取記憶體線路410轉送至與該反射記憶體408相關聯之額外記憶體裝置前,先將資料從該等快取記憶體線路410沖除至一記憶體裝置402中之反射記憶體408。
應了解圖4之方塊圖並不意欲指出該計算系統400包括圖4所示之所有構件。而是,該計算系統400可包括較少或圖4未繪示之額外構件(例如,額外的記憶體裝置、介面、等等)。此外,該資料管理模組124之任何功能可以硬體或該處理器414中來部分地、或全部地執行。例如,該功能可使用於該處理器414中執行之邏輯、常駐於一儲存器裝置之一模組、或一周邊裝置之一共同處理器中的一特殊應用積體電路、等等來執行。
圖5是一顯示可使用反射記憶體於一計算裝置中實行同調之一有形、非暫態、電腦可讀媒體500的一範例之方塊圖。該有形、非暫態、電腦可讀媒體500可於一電腦匯流排504上由一處理器502存取。此外,該有形、非暫態、電腦可讀媒體500可包括電腦可執行指令來導引該處理器502執行該目前方法的步驟。
如圖5中指出,本文說明之各種不同的軟體構件可儲存於該有形、非暫態、電腦可讀媒體500中。例如,一資料管理模組506可配適成導引該處理器502來使用反射記憶體於一計算裝置中實行同調。某些實施例中,該資料管理模組506可決定快取記憶體中之資料已被修改以及藉由以修改過資料值來替代現存資料值以更新反射記憶體。該資料管理模組506亦可將修改過資料值送至額外記憶體裝置。應了解根據該特定的應用,圖5未顯示之任何數量的額外軟體構件亦可包括在該有形、非暫態、電腦可讀媒體500中。
該等目前範例對各種不同修改與替代型式相當敏感且僅為了舉例解說目的來顯示。再者,應了解本技術並不意欲侷限在本文揭示之特定範例中。實際上,對有關本揭示標的之業界熟於此技者而言,很明顯地該等後附請求項之範疇可視為包括所有替代項目、修改、與等效元件。
100‧‧‧計算系統
102‧‧‧處理器
104‧‧‧系統匯流排
106‧‧‧輸入/輸出裝置介面
108‧‧‧輸入/輸出裝置
110‧‧‧顯示器裝置介面
112‧‧‧顯示器裝置
114‧‧‧網路介面卡
116‧‧‧記憶體裝置
118‧‧‧快取記憶體
120‧‧‧第二記憶體裝置
122‧‧‧第二計算系統
124‧‧‧資料管理模組
126‧‧‧光纖
128‧‧‧第二資料管理模組

Claims (15)

  1. 一種用以更新一第一記憶體裝置之一反射記憶體區域中的資料之方法包含下列步驟:接收資料可從一快取記憶體裝置沖除至該第一記憶體裝置的一指示;檢測對應於該資料之一記憶體位址係位於該第一記憶體裝置之反射記憶體區域中;使用一沖除操作將資料從該快取記憶體裝置送至該第一記憶體裝置;決定該第一記憶體裝置接收之資料為修改過資料;以及將該修改過資料送至一第二計算系統之一第二記憶體裝置。
  2. 如請求項1之方法,其中使用一沖除操作將資料從該快取記憶體送至該第一記憶體裝置包含將該資料從該快取記憶體移除。
  3. 如請求項1之方法,其中該沖除操作迫使該快取記憶體裝置將資料從該快取記憶體裝置之一快取記憶體線路送至該第一記憶體裝置。
  4. 如請求項1之方法,其中該第二計算系統接收該修改過資料,並將該修改過資料對映至該第二記憶體裝置之一位址範圍。
  5. 如請求項1之方法,其包含將一組資料從該快取記憶體 裝置送至該反射記憶體。
  6. 如請求項1之方法,其包含將多個修改過資料方塊送至一第二計算系統。
  7. 如請求項1之方法,其中該第二計算系統用以響應接收修改過資料而將資料從一第二快取記憶體裝置送至該第二記憶體裝置。
  8. 一種用以更新一第一記憶體裝置之一反射記憶體區域中的資料之系統,包含有:一用以儲存資料之該第一記憶體裝置的反射記憶體區域;一用以儲存來自該反射記憶體區域之資料的複本之快取記憶體裝置;一用以執行下列步驟之處理器:針對請求資料檢測一快取記憶體未中;決定該請求資料係儲存於該第一記憶體裝置的反射記憶體區域中;將該請求資料之一複本從反射記憶體送至該快取記憶體裝置;用以響應一沖除操作從該快取記憶體裝置接收資料;決定從該快取記憶體裝置接收之資料為修改過資料;以及將該修改過資料送至一第二計算系統之一第二記憶體裝置。
  9. 如請求項8之系統,其中該處理器係用來將該待執行之沖除操作排程。
  10. 如請求項8之系統,其中該處理器係用來建立該修改過資料之一複本,並將該修改過資料之複本送至該第一記憶體裝置的反射記憶體區域。
  11. 如請求項8之系統,其中該沖除操作迫使該快取記憶體裝置將資料從該快取記憶體裝置之一快取記憶體線路送至該第一記憶體裝置。
  12. 如請求項8之系統,其中該快取記憶體裝置包含指出該快取記憶體中之資料已被修改的一記憶體指示器位元。
  13. 一種包含多個指令之非暫態、電腦可讀媒體,該等指令用以響應於一計算裝置中執行時,可使該計算裝置來執行下列步驟:接收資料可從一快取記憶體裝置沖除至該第一記憶體裝置的一指示;檢測對應於該資料之一記憶體位址係位於該第一記憶體裝置之反射記憶體區域中;使用一沖除操作將資料從該快取記憶體裝置送至該第一記憶體裝置;決定該第一記憶體裝置接收之資料為修改過資料;以及將該修改過資料送至一第二計算系統之一第二記憶體裝置。
  14. 如請求項13之電腦可讀媒體,其中該第二計算系統接收 該修改過資料,並將該修改過資料對映至該第二記憶體裝置之一位址範圍。
  15. 如請求項13之電腦可讀媒體,其中該等指令可使該計算裝置將多個修改過資料方塊送至一第二計算系統。
TW103105494A 2013-03-28 2014-02-19 使用反射記憶體實行同調之技術 TWI506537B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034442 WO2014158173A1 (en) 2013-03-28 2013-03-28 Implementing coherency with reflective memory

Publications (2)

Publication Number Publication Date
TW201447749A true TW201447749A (zh) 2014-12-16
TWI506537B TWI506537B (zh) 2015-11-01

Family

ID=51624955

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103105494A TWI506537B (zh) 2013-03-28 2014-02-19 使用反射記憶體實行同調之技術

Country Status (7)

Country Link
US (1) US9575898B2 (zh)
EP (1) EP2979192B1 (zh)
JP (1) JP2016508650A (zh)
KR (1) KR20150136045A (zh)
CN (1) CN104969203B (zh)
TW (1) TWI506537B (zh)
WO (1) WO2014158173A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107340441B (zh) * 2017-06-07 2019-07-05 同济大学 一种燃料电池汽车动力总成集成测试系统
CN116846863B (zh) * 2023-08-30 2023-11-10 东方空间技术(山东)有限公司 一种光纤反射内存网内存映射方法、装置及计算设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926830A (en) * 1996-10-07 1999-07-20 International Business Machines Corporation Data processing system and method for maintaining coherency between high and low level caches using inclusive states
US7000078B1 (en) * 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US7089391B2 (en) 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
US20030110233A1 (en) 2001-12-10 2003-06-12 Vmic Reflective memory system and method capable of dynamically sizing data packets
JP2004038422A (ja) * 2002-07-02 2004-02-05 Matsushita Electric Ind Co Ltd 半導体装置
US6795850B2 (en) * 2002-12-13 2004-09-21 Sun Microsystems, Inc. System and method for sharing memory among multiple storage device controllers
US6941396B1 (en) 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
US7469321B2 (en) * 2003-06-25 2008-12-23 International Business Machines Corporation Software process migration between coherency regions without cache purges
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
ATE458222T1 (de) 2004-06-08 2010-03-15 Freescale Semiconductor Inc Aufrechterhaltung der cachespeicherkoherenz zum direkten zugriff (dma), abschluss einer aufgabe, zur synchronisierung
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US8762652B2 (en) 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
JP2011008674A (ja) * 2009-06-29 2011-01-13 Nec Commun Syst Ltd 二重化情報処理システム及び同期化方法
US20120317384A1 (en) * 2010-02-09 2012-12-13 Telefonaktiebolaget L M Ericsson (Publ) Data storage method
US20110296095A1 (en) 2010-05-25 2011-12-01 Mediatek Inc. Data movement engine and memory control methods thereof
US8706983B2 (en) * 2010-06-30 2014-04-22 Sandisk Technologies Inc. Garbage collection of memory blocks using volatile memory
KR101879442B1 (ko) * 2011-05-25 2018-07-18 삼성전자주식회사 휘발성 메모리 장치의 리프레쉬 방법, 리프레쉬 어드레스 생성기 및 휘발성 메모리 장치
US8856456B2 (en) * 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
KR101695845B1 (ko) * 2012-09-20 2017-01-12 한국전자통신연구원 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치

Also Published As

Publication number Publication date
KR20150136045A (ko) 2015-12-04
WO2014158173A1 (en) 2014-10-02
EP2979192A4 (en) 2016-11-16
US20160026576A1 (en) 2016-01-28
EP2979192A1 (en) 2016-02-03
TWI506537B (zh) 2015-11-01
EP2979192B1 (en) 2018-05-30
JP2016508650A (ja) 2016-03-22
US9575898B2 (en) 2017-02-21
CN104969203B (zh) 2017-08-15
CN104969203A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
JP6707605B2 (ja) 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
US10346302B2 (en) Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
TWI676891B (zh) 轉譯後備緩衝器管理
JP5078396B2 (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
TWI432963B (zh) 加速器之低成本快取一致
US10319060B2 (en) Unified memory systems and methods
TWI638311B (zh) Data processing method and processor
JP2018504694A (ja) 仮想アドレスを使用してアクセスされるキャッシュ
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
TW201107974A (en) Cache coherent support for flash in a memory hierarchy
KR20120060230A (ko) 메모리 요청들을 처리하기 위한 시스템들 및 방법들
US10282298B2 (en) Store buffer supporting direct stores to a coherence point
US20180143903A1 (en) Hardware assisted cache flushing mechanism
US20140156950A1 (en) Emulated message signaled interrupts in multiprocessor systems
US11526449B2 (en) Limited propagation of unnecessary memory updates
US20070038814A1 (en) Systems and methods for selectively inclusive cache
JP5587539B2 (ja) ローカルメモリデータのコヒーレントなキャッシュ処理
TWI506537B (zh) 使用反射記憶體實行同調之技術
US9251073B2 (en) Update mask for handling interaction between fills and updates
JP2020003959A (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
US20150067246A1 (en) Coherence processing employing black box duplicate tags
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
JP2007207224A (ja) データ・ラインをキャッシュに書き込む方法
US11023162B2 (en) Cache memory with transient storage for cache lines

Legal Events

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