TWI530786B - 具有快取記憶體連貫性協定之記憶體裝置、系統及主記憶體以及管理快取記憶體連貫性協定之方法 - Google Patents
具有快取記憶體連貫性協定之記憶體裝置、系統及主記憶體以及管理快取記憶體連貫性協定之方法 Download PDFInfo
- Publication number
- TWI530786B TWI530786B TW100120245A TW100120245A TWI530786B TW I530786 B TWI530786 B TW I530786B TW 100120245 A TW100120245 A TW 100120245A TW 100120245 A TW100120245 A TW 100120245A TW I530786 B TWI530786 B TW I530786B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- state
- information
- primary
- 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
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
本文中所揭示之標的物係關於包括永續性記憶體之一處理器系統之快取記憶體連貫性。
電腦系統可利用一共用記憶體多處理器(SMP)組態。增加此一電腦系統中共用一相同主記憶體之處理器的數目可增強系統之效能。一電腦系統可併入連貫性協定以確保自快取記憶體讀取之資訊與自主記憶體讀取之資訊之間的連貫性。舉例而言,若一個處理器已更新儲存於主記憶體中之資訊,則可在儲存於其他處理器之記憶體快取記憶體中之複本中反映該資訊的改變。
舉例而言,電腦系統可使用若干個連貫性協定中之任一者(諸如MESI協定)來執行連貫性管理。MESI協定可藉由以下方式管理一快取記憶體中之快取記憶體線:假定該等快取記憶體線處於四個狀態中之一者中,即「M」(修改)、「E」(獨佔)、「S」(共用)及「I」(無效)狀態。在使用MESI協定之一電腦系統中,個別處理器可至少部分地基於一特定快取記憶體線之MESI狀態來判定是否發出對該特定快取記憶體線之一快取記憶體連貫性管理請求。
參考所示圖示闡述非限制性及非窮盡性實施例,其中除非另外說明,否則在所有各圖中,相同元件符號指代相同部分。
在本說明書通篇中,提及「一項實施例」或「一實施例」意指結合該實施例闡述之一特定特徵、結構或特性包括於所主張標的物之至少一項實施例中。因此,在本說明書通篇中各處出現之短語「在一項實施例中」或「一實施例」未必全部指代相同實施例。此外,可將特定特徵、結構或特性組合於一項或多項實施例中。
在一實施例中,具有兩個或兩個以上處理實體(諸如中央處理單元(CPU))之一系統可包括永續性記憶體。用於此一系統之快取記憶體連貫性協定可包括用以適應永續性非揮發性記憶體之特定態樣之一或多個特徵。如下文詳細闡述,此等特徵可包含指示更新一永續性記憶體之一過程是否在進行中及/或此一過程是否完成之一或多個快取記憶體連貫性協定狀態。另一特徵可包含用以指示包括永續性記憶體之一記憶體範圍之一永續性記憶體描述符。因此,如下文詳細闡述,具有兩個或兩個以上處理實體之此一系統亦可包含用以提供快取記憶體連貫性協定之至少一部分之電路。
舉例而言,具有兩個或兩個以上處理實體之此一系統可包含用以在若干個環境中之任一者中執行應用程式之一計算系統,諸如電腦、行動電話、PDA、資料記錄器及導航設備,僅列舉幾個實例。特定而言,可由多個CPU同時執行多個應用程式。在一實施方案中,一或多個此等CPU可個別地與一主記憶體及/或快取記憶體(其中之任一者之至少一部分可包含永續性記憶體)相關聯。舉例而言,一主記憶體及/或快取記憶體可包含永續性記憶體及多種隨機存取記憶體(RAM)中之任一者之一部分。在一特定實例中,主記憶體可包括相變記憶體(PCM)及動態隨機存取記憶體(DRAM)之至少一部分。在另一特定實例中,快取記憶體可包含PCM及/或DRAM。舉例而言,此等記憶體組態可提供諸如非揮發性、相對高的程式化/讀取速度等益處。當然,記憶體之此等闡述僅係實例且所主張之標的物並不限於此態樣中。
本文中,永續性記憶體係指可具有位元可更改能力之非揮發性記憶體,諸如PCM。永續性記憶體之另一特徵包括不對稱讀取/寫入速度,其中對於一給定記憶體胞而言,程式化速度可比讀取速度慢。舉例而言,具有此等特徵之永續性記憶體在一多處理器系統中之一存在可利用特定快取記憶體連貫性協定來允許一或多個處理實體共用主記憶體。本文中,主記憶體係指由一處理實體用於維持可由該處理實體執行之一或多個應用程式之記憶體。另外,主記憶體直接或間接鏈接至可使用記憶體指令存取該主記憶體之一處理實體。舉例而言,主記憶體不同於可經由一I/O介面存取之記憶體,該I/O介面使用I/O操作來存取此記憶體。在主記憶體之另一實例中,一CPU可限於操縱(例如,擦除、寫入)駐存於一主記憶體中之資料之一能力。此處,舉例而言,詞語「主」可用於與諸如磁碟機之外部大容量儲存裝置加以區分。當然,主記憶體之此等闡述僅係實例,且所主張之標的物並不限於此。
舉例而言,本文中所闡述之實施例包括若干個習知多處理器快取記憶體連貫性協定(諸如MESI、MOSI及MOESI協定)中之任一者之擴充。特定而言,此等實施例可包括上文所列舉協定之狀態及如下文詳細闡述之一或多個額外狀態。舉例而言,此等實施例可擴展快取記憶體連貫性語義以包括對永續性記憶體之支援。舉例而言,一快取記憶體連貫性協定可建立用於確保對統一記憶體操作之多個處理器之間的快取記憶體連貫性的語義。快取記憶體連貫性語義可防止其中對一相同記憶體操作之兩個或兩個以上處理器可能變得不同步之竟爭條件。快取記憶體連貫性協定可提供指令至一處理器以使本端快取記憶體與主記憶體同步。舉例而言,快取記憶體連貫性協定可幫助確保處理器之快取記憶體之內容跟上主記憶體之內容。
在一實施例中,PCM可用作一計算平台之主記憶體。PCM包含類似於DRAM之具有位元可更改性質之永續性記憶體,但DRAM係揮發性的。若PCM用作一計算平台上之主記憶體,則PCM可包括適用於DRAM之相同快取記憶體連貫性問題中之至少某些問題。因此,若在一應用中使用PCM來替換DRAM,則MESI、MOSI及MOESI協定(僅列舉幾個實例)可充分覆蓋PCM之快取記憶體連貫性。雖然PCM可以位元可更改方式類似於DRAM,但在PCM包含一永續性記憶體之意義上而言,PCM可不同於DRAM。DRAM可在移除電源之情況下丟失所儲存之內容,而PCM甚至可在移除電源之情況下仍維持所儲存之內容。因此,在一實施方案中,若PCM包含主記憶體之至少一部分,則可添加快取記憶體連貫性語義以支援PCM之此一非揮發性特性。當然,包括PCM作為一主記憶體之一實施例之此等特徵及細節僅係實例,且所主張之標的物並不限於此。
在一實施例中,舉例而言,擴充快取記憶體連貫性語義之額外狀態可在一記憶體階層內之一相對高層級處(諸如在記憶體資料庫中)提供對記憶體連貫性之支援。在主記憶體包含一相對快、但揮發性記憶體(諸如DRAM)之情況下,最終可將所儲存之資訊複製至一相對慢磁碟、磁帶或其他慢永續性記憶體。然而,若因PCM之永續性能力而使用PCM作為主記憶體,則一應用程式無需將所儲存之資訊排清或檢查點指示至另一儲存媒體。然而,可存在用以向各種應用程式過程傳達PCM之內容是否處於正被更新之過程中及此一更新是否已完成之一過程。因此,擴充快取記憶體連貫性語義之額外狀態可在一應用程式層級支援較高層級連貫性語義。在一特定實施方案中,如下文所詳細闡釋,可使用一所謂的永續性記憶體描述符來指示支援永續性之主記憶體之一範圍。
圖1係根據一實施例之一處理系統100之一示意性方塊圖。處理系統100可包含處理實體110、主記憶體120及/或快取記憶體130。特定而言,處理實體110可包含用以主控維持於主記憶體120中之一或多個應用程式之一CPU。雖然圖1中未展示,但處理系統100可包含額外處理實體、額外主記憶體及/或額外快取記憶體。舉例而言,處理實體110、主記憶體120及/或快取記憶體130可共同構成用於較大多處理器系統之組建區塊。在一個實施方案中,處理系統100可使用包括在該一或多個處理實體中共用的一或多個快取記憶體層級之一記憶體階層操作。舉例而言,快取記憶體可包含第一層級快取記憶體及第二層級快取記憶體,其中之任一者之至少一部分可包含永續性記憶體。可對處理系統100應用一快取記憶體連貫性協定以進行連貫性管理。舉例而言,此一協定可導致避免兩個或兩個以上主記憶體120及/或一或多個快取記憶體130中的讀取/寫入過程衝突。硬體區塊150及/或程式碼區塊160可共同或單獨提供一快取記憶體連貫性協定。在一特定實施方案中,此一快取記憶體連貫性協定可包含協定140,協定140可包括若干個狀態,諸如修改、獨佔、共用及無效狀態(例如,MESI),僅列舉幾個實例。如下文所詳細闡釋,協定140中可包括一過程中狀態142以適應處理系統100中之永續性記憶體。包括於協定140中之另一狀態可包含下文亦詳細闡述之認可狀態144。可由可選擇旗標反映此等狀態,諸如設定或重設位元、儲存特定狀態資訊之一或多個記憶體胞、在電線路上傳輸之一或多個信號及/或用以輸送一特定狀態之其他類型之資訊。當然,協定140中可包括任何數目個狀態,且所主張之標的物並不限於本文中所闡述之彼等狀態。在一實施方案中,硬體區塊150可包含用以提供快取記憶體連貫性協定140之至少一部分之電子電路。此電子電路可包含(例如)邏輯閘極之各種組態。程式碼區塊160可包含用以提供快取記憶體連貫性協定140之至少一部分之一或多個應用程式。程式碼區塊160之若干部分可由處理實體110實施。
在一實施例中,過程中狀態142可用於向處理系統100中之一或多個記憶體控制器115指示主記憶體120中之一記憶體位置係處於正被更新之一過程中。因此,具有映射至快取記憶體130中之此一特定記憶體位置之一應用程式可選擇等待此一更新操作完成。另一選擇係,該應用程式可忽略該更新且使用當前可用的過時快取記憶體內容(例如,在完成更新內容之前)。在一特定實施方案中,認可狀態144可用於向處理系統100中之記憶體控制器115指示一記憶體更新完成且快取記憶體130可重新載入資訊。可選擇忽略一過程中狀態之一應用程式之一實例係一搜尋引擎,乃因稍舊的資訊未必不利地影響搜尋結果。相反地,可不選擇忽略一過程中狀態之一應用程式之一實例係一庫應用程式,其依賴於在完成一更新過程之後即刻可用的最近資訊。因此,此一應用程式可等待任何更新操作之完成且可使相關聯之快取記憶體資訊無效以確保該應用程式繼續具有最近的記憶體值。當然,一處理系統及快取記憶體連貫性協定之此等細節僅係實例,且所主張之標的物並不限於此。
圖2係根據一實施例之一主記憶體210之一示意圖。主記憶體210之至少一部分可包含永續性記憶體220。在一特定實施方案中,主記憶體210之另一部分可包含各種類型之記憶體,諸如揮發性DRAM。永續性記憶體220之部分無需相連地配置於(例如)可包含一或多個晶粒結構之主記憶體210中。快取記憶體連貫性協定區塊255可包含硬體及/或所實施之程式碼以為包括主記憶體210之一處理系統(例如,圖1中所展示之系統100)提供一快取記憶體連貫性協定。如上文所闡述,在一特定實施方案中,此一快取記憶體連貫性協定可包含過程中狀態142及/或認可狀態144以適應永續性記憶體220。舉例而言,過程中狀態142可適應與一讀取操作相比較之一程式化操作之所添加之延時。因此,過程中狀態142可向一應用程式指示該應用程式是否將等待一相對長的快取記憶體程式化過程。在另一特定實施方案中,快取記憶體連貫性協定區塊255可提供一永續性記憶體描述符以允許一計算平台識別主記憶體210的哪些部分包含永續性記憶體。舉例而言,此識別可包括主記憶體210中之記憶體位置之一或多個位址或位址範圍。當然,所主張之標的物並不限於此等協定狀態,且快取記憶體連貫性協定區塊255可提供任何數目個協定狀態至一系統。
圖3係根據一實施例之一快取記憶體連貫性協定之一定時圖。在時間T1處,可使一過程中狀態轉變以向一記憶體控制器指示一或多個主記憶體中之至少一個記憶體位置係處於正被更新之一過程中。在時間跨度T2期間,與更新記憶體位置相關聯之一或多個應用程式可選擇等待此一更新操作完成。在另一實施方案中,如上文所闡述,一應用程式可忽略此一更新操作且僅使用當前可用的過時快取記憶體內容。在時間T3處,可完成一更新操作,此可(例如)由自一個狀態轉變至另一狀態(諸如自高至低或自低至高)之一硬體信號指示。在一已完成更新操作之後,在時間T4處,可使一認可狀態轉變以向一記憶體控制器指示一記憶體更新完成且快取記憶體可用於重新載入資訊。當然,一快取記憶體連貫性協定之此等定時細節僅係實例,且所主張之標的物並不限於此。
圖4係根據一實施例之一多處理器系統組態400之一示意圖。一多處理器系統可包括任何數目個處理實體,但圖4中僅展示兩個此等實體。特定而言,此等處理實體可包含與一快取記憶體430相關聯之CPU 410及與一快取記憶體435相關聯之CPU 415。在一實例中,CPU 410可具有指向主記憶體420中之一位置之一快取記憶體線。CPU 415可具有指向主記憶體420中之相同位置之一快取記憶體線。CPU 410及CPU 415兩者皆可寫入至該主記憶體位置或自該主記憶體位置讀取。若CPU 415在CPU 410正向該主記憶體位置寫入時嘗試自一快取記憶體線讀取,則可發生一衝突。在一個實施方案中,CPU 415可不關心此一潛在衝突。在另一實施方案中,為避免此一衝突,CPU 415可監視過程中及/或認可狀態以確保來自CPU 410之一過程中寫入已完成。在一實施方案中,過程中狀態可對應於本文中稱為一I位元之一特定位元、旗標或信號,且認可狀態可對應於本文中稱為一C位元之一特定位、旗標或信號。如上文所闡述,此等位元可在設定與重設狀態中轉變以指示更新一主記憶體之一過程之狀態。在一特定實施方案中,若C位元及I位元兩者皆未設定,則CPU 415可自快取記憶體線讀取。舉例而言,若設定I位元,則CPU 410可正更新主記憶體且CPU 415可等待更新完成。在完成CPU 410之更新之後,C位元可即刻轉變以指示此完成。因此,CPU 415可回應於CPU 410轉變C位元而重新載入快取記憶體線。CPU 415可接著含有該記憶體位置之最新最近值。
在一實施例中,至少一部分包含永續性記憶體之主記憶體之連貫性可由一作業系統虛擬記憶體及/或由一缺設頁處理程式維持。此一作業系統可支援用以識別涉及連貫性管理之一批量寫入操作之一方法。舉例而言,此一批量寫入操作可包含一資料庫寫入操作。應用程式可在彼此中協調以便可將一批量寫入操作管理為一自動寫入操作,其中跨越一資料庫之多個字段可在可將此一更新過程視為完成之前更新。應用程式層級語義可以類似於個別快取記憶體線之一方式使一或多個應用程式不使用無效資料,但批量操作涉及更大資訊量。在一個實施方案中,傳達一批量寫入操作之大小可包括一永續性直接記憶體存取(DMA)命令。在另一實施方案中,傳達一批量寫入操作之大小可包括用以傳達一記憶體池之定義之一機制。在另一實施方案中,傳達一批量寫入操作之大小可包括在動態記憶體分配之時間使用之一旗標。在另一實施方案中,傳達一批量寫入操作之大小可包括由該應用程式發出信號。舉例而言,對永續性記憶體之應用程式層級連貫性管理可利用上文界定為用於建立應用程式層級記憶體連貫性之原始命令之過程中及/或認可狀態。
圖5係根據一實施例之一多核心系統500之一示意圖。舉例而言,此一系統可包含經由一或多個匯流排彼此連接之處理器節點502、504、506及508。在一個實施方案中,多核心系統500可包含一共用記憶體多處理器。個別處理器節點502、504、506及508可分別包括處理器510、512、514及516、快取記憶體530、532、534及536及/或本端記憶體520、522、524及526。在特定處理器節點內,此等本端記憶體可包含與該特定處理器節點之處理器相關聯之主記憶體。舉例而言,在處理器節點502中,本端記憶體520可包含與處理器510相關聯之一主記憶體。在一實施方案中,本端記憶體可由其他處理器節點之處理器共用或存取。一或多個本端記憶體520、522、524及526可包含永續性記憶體之全部或至少一部分。在一特定實施方案中,本端記憶體之一部分可包含各種類型之記憶體,諸如揮發性DRAM。永續性記憶體之部分無需相連地配置於(例如)可包含一或多個晶粒結構之本端記憶體中。雖未展示,但處理器單元可包括(例如)與處理器整合於一相同晶粒上或整合於單獨晶粒上之記憶體控制器。此外,雖然圖5展示具有四個節點之一系統,但亦可包括任何數目個節點且所主張之標的物並不限於此特定配置。
快取記憶體530、532、534及536可包含用於儲存自本端記憶體520、522、524及526中之任一者獲得之資訊之一複本的高速記憶體。舉例而言,可使用個別本端記憶體之一位址之至少一部分搜尋此快取記憶體。用於搜尋快取記憶體之記憶體位址之此一部分稱作一快取記憶體索引部分。舉例而言,快取記憶體530可包含一快取記憶體索引部分及一快取記憶體資料部分。舉例而言,如上文所闡述,該快取記憶體索引部分可包括儲存於快取記憶體530中之資訊之線位址以及諸如MESI狀態資訊及過程中及/或認可狀態資訊之狀態資訊。當然,一多核心系統之此等細節僅係實例,且所主張之標的物並不限於此。
圖6係圖解說明包括一記憶體裝置610之一計算系統600之一實例性實施例的一示意圖。一計算裝置604可表示可係可經組態以管理記憶體裝置610之任何裝置、器具或機器。記憶體裝置610可包括一記憶體控制器615及一記憶體622。藉由實例而非限制之方式,計算裝置604可包括:一或多個計算裝置及/或平台,諸如例如,一桌上型電腦、一膝上型電腦、一工作站、一伺服器裝置或諸如此類;一或多個個人計算或通信裝置或器具,諸如例如,一個人數位助理、行動通信裝置或諸如此類;一計算系統及/或相關聯之服務提供者能力,諸如例如,一資料庫或資料儲存服務提供者/系統;及/或其任一組合。
在一實施例中,計算裝置604可包括由區塊620表示之多個處理單元。此多個處理單元可透過一匯流排640及一主機或記憶體控制器615以操作方式耦合至記憶體622。舉例而言,透過匯流排640,多個處理單元620可共用可包含主記憶體之記憶體622。處理單元620表示可經組態以執行一資料計算程序或過程之至少一部分之一或多個電路。藉由實例而非限制之方式,處理單元620可包括多個處理器、控制器、微處理器、微控制器、專用積體電路、數位信號處理器、可程式化邏輯裝置、場可程式化閘陣列及諸如此類或其任一組合。舉例而言,處理單元620可與記憶體控制器615通信以處理記憶體相關操作,諸如讀取、寫入及/或擦除以及上文所論述之記憶體分區過程。處理單元620可包括經調適以與記憶體控制器615通信之一作業系統。此一作業系統可(例如)產生將經由匯流排640發送至記憶體控制器615之命令。舉例而言,此等命令可包括讀取/寫入指令。
記憶體622表示任何資料儲存機構。記憶體622可包括(例如)一DRAM 624及/或一永續性記憶體626。如上文所闡述,在一特定實施例中,記憶體622可包含包括永續性記憶體之至少一部分之一主記憶體。記憶體622亦可包含可同樣包括永續性記憶體之至少一部分之快取記憶體。儘管在此實例中圖解說明為與處理單元620分離,但應理解,DRAM 624之全部或一部分可提供於處理單元620內或以其他方式與處理單元620共同定位/耦合。
根據一實施例,記憶體622之一或多個部分可儲存表示由記憶體622之一特定狀態所表達之資料及/或資訊之信號。舉例而言,可藉由以下方式將表示資料及/或資訊之一電子信號「儲存」於記憶體622之一部分中:影響或改變記憶體622之此等部分之狀態以將資料及/或資訊表示為二進制資訊(例如,1及0)。如此,在一特定實施方案中,記憶體之該部分之狀態的此一改變以儲存表示資料及/或資訊之一信號構成記憶體622至一不同狀態或事態之變換。
永續性記憶體626可包括(例如)與主要記憶體相同或類似類型之記憶體及/或一或多個資料儲存裝置或系統,諸如例如,PCM、一磁碟機、一光碟機、一磁帶機、一固態記憶體硬碟機等。在某些實施方案中,永續性記憶體626可以操作方式收納或可以其他方式組態以耦合至一電腦可讀媒體628。電腦可讀媒體628可包括(例如)可攜載及/或使得可存取用於系統600中之裝置中之一或多者之資料、程式碼及/或指令之任一媒體。
在一項實施例中,系統600可包含一記憶體控制器615,其具有至一主記憶體之至少一第一介面及至一處理實體之至少一第二介面(例如,經由匯流排640至處理器620),其中該記憶體控制器可能夠使該處理實體能夠根據一快取記憶體連貫性協定存取該主記憶體,且其中該主記憶體之至少一部分包含永續性記憶體。舉例而言,此永續性記憶體可包含PCM。計算裝置604可包括(例如)一輸入/輸出632。輸入/輸出632表示可係可經組態以接受或以其他方式引入人類及/或機器輸入之一或多個裝置或特徵及/或可係可經組態以遞送或以其他方式為人類及/或機器提供輸出之一或多個裝置或特徵。藉由實例而非限制之方式,輸入/輸出裝置632可包括一以操作方式組態之顯示器、揚聲器、鍵盤、滑鼠、軌跡球、觸控螢幕、資料埠等。
儘管已圖解說明且闡述了當前被視為實例性實施例之實施例,但熟悉此項技術者將理解,可做出各種其他修改且可用等效物替代,而此並不背離所主張之標的物。另外,可做出許多修改以使一特定情形適應所主張之標的物之教示,而此並不背離本文中所闡述之中心概念。因此,打算所主張之標的物並不限於所揭示之特定實施例,而此所主張之標的物亦可包括歸屬於隨附申請專利範圍及其等效物之範疇內之全部實施例。
100...處理系統
110...處理實體
115...記憶體控制器
120...主記憶體
130...快取記憶體
140...協定
142...過程中狀態
144...認可狀態
150...硬體區塊
160...程式碼區塊
210...主記憶體
220...永續性記憶體
410...中央處理單元
415...中央處理單元
420...主記憶體
430...快取記憶體
435...快取記憶體
500...多核心系統
502...處理器節點
504...處理器節點
506...處理器節點
508...處理器節點
510...處理器
512...處理器
514...處理器
516...處理器
520...本端記憶體
522...本端記憶體
524...本端記憶體
526...本端記憶體
530...快取記憶體
532...快取記憶體
534...快取記憶體
536...快取記憶體
600...計算系統
604...計算裝置
610...記憶體裝置
615...記憶體控制器
622...記憶體
624...動態隨機存取記憶體
626...永續性記憶體
628...電腦可讀媒體
632...輸入/輸出
640...匯流排
圖1係根據一實施例之一處理系統組態之一示意性方塊圖;
圖2係根據一實施例之一主記憶體之一示意圖;
圖3係根據一實施例之一快取記憶體連貫性協定之一定時圖;
圖4係根據一實施例之一多處理器系統組態之一示意圖;
圖5係根據另一實施例之一多處理器系統組態之一示意圖;及
圖6係根據一實施例之一計算系統及一記憶體裝置之一示意圖。
100‧‧‧處理系統
110‧‧‧處理實體
115‧‧‧記憶體控制器
120‧‧‧主記憶體
130‧‧‧快取記憶體
140‧‧‧協定
142‧‧‧過程中狀態
144‧‧‧認可狀態
150‧‧‧硬體區塊
160‧‧‧程式碼區塊
Claims (19)
- 一種具有一快取記憶體連貫性協定之記憶體裝置,該記憶體裝置包含:一記憶體控制器,其具有至一主記憶體之至少一第一介面及至兩個或兩個以上處理實體之至少一第二介面,其中該記憶體控制器經組態以使該等處理實體能夠根據該快取記憶體連貫性協定存取該主記憶體,該快取快取記憶體連貫性協定包含一過程中狀態及一認可狀態;其中該過程中狀態指示該主記憶體中之資訊正被更新,且該記憶體控制器經組態以:等待直到該過程中狀態被移除以重新載入該資訊;及忽略該過程中狀態且載入該資訊之一先前快取記憶體內容;其中該認可狀態指示一記憶體更新已完成及一快取記憶體可自該主記憶體重新載入資訊;且其中該主記憶體之至少一部分包含永續性記憶體。
- 如請求項1之記憶體裝置,其中該主記憶體整體為永續性記憶體。
- 如請求項2之記憶體裝置,其中該等處理實體根據該快取記憶體連貫性協定存取該永續性記憶體。
- 如請求項1之記憶體裝置,其中該記憶體控制器進一步經組態以使一記憶體描述符能夠識別包含永續性記憶體之該主記憶體之該至少一部分。
- 如請求項1之記憶體裝置,其中該永續性記憶體包含相變記憶體(PCM)。
- 如請求項1之記憶體裝置,其中該永續性記憶體包含具有非對稱讀取/寫入速度之一記憶體。
- 如請求項1之記憶體裝置,其中該兩個或兩個以上處理實體包含複數個中央處理單元(CPU)。
- 如請求項1之記憶體裝置,其中該記憶體控制器進一步經組態以使一記憶體階層能夠包括在該兩個或兩個以上處理實體中共用的一或多個快取記憶體層級。
- 如請求項8之記憶體裝置,其中該一或多個快取記憶體層級之至少一部分包含永續性記憶體。
- 一種用於管理一快取記憶體連貫性協定之方法,其包含:提供一記憶體裝置,該記憶體裝置包含一記憶體控制器,該記憶體控制器具有至一主記憶體之至少一第一界面及至兩個或兩個以上處理實體之至少一第二界面;及以該記憶體控制器管理包含一過程中狀態及一認可狀態之該快取記憶體連貫性協定以允許該兩個或兩個以上處理實體根據該快取記憶體連貫性協定共用該主記憶體;其中該過程中狀態指示該主記憶體中之資訊正被更新,且該記憶體控制器經組態以:等待直到該過程中狀態被移除以重新載入該資訊;及 忽略該過程中狀態且載入該資訊之一先前快取記憶體內容;其中該認可狀態指示一記憶體更新已完成及一快取記憶體可自該主記憶體重新載入資訊;且其中該主記憶體之至少一部分包含永續性記憶體。
- 如請求項10之方法,其中該永續性記憶體包含相變記憶體(PCM)。
- 如請求項10之方法,其中該永續性記憶體包含具有非對稱讀取/寫入速度之一記憶體。
- 如請求項10之方法,其中該快取記憶體連貫性協定係至少部分地基於該永續性記憶體之一或多個延時性質。
- 如請求項10之方法,其中該複數個處理實體包含一或多個中央處理單元(CPU)。
- 一種具有一快取記憶體連貫性協定之系統,該系統包含:複數個處理實體;及一記憶體裝置,其包含:一記憶體控制器,其具有至一主記憶體之至少一第一介面及至該複數個處理實體之至少一第二介面,其中該記憶體控制器經組態以使該複數個處理實體能夠根據包含一過程中狀態及一認可狀態之一快取記憶體連貫性協定存取該主記憶體;其中該過程中狀態指示該主記憶體中之資訊正被更新,且該記憶體控制器經組態以: 等待直到該過程中狀態被移除以重新載入該資訊;及忽略該過程中狀態且載入該資訊之一先前快取記憶體內容;其中該認可狀態指示一記憶體更新已完成及一快取記憶體可自該主記憶體重新載入資訊;且其中該主記憶體之至少一部分包含永續性記憶體。
- 如請求項15之系統,其中該記憶體控制器進一步經組態以向該複數個處理實體中之至少一者發出在該更新過程期間等待存取該主記憶體的信號。
- 如請求項15之系統,其中該處理實體經組態以在該更新過程期間等待存取該主記憶體。
- 一種具有一快取記憶體連貫性協定之主記憶體,其包含:一動態隨機存取記憶體(DRAM)部分及一永續性記憶體部分;及包含一過程中狀態及一認可狀態之一快取記憶體連貫性協定區塊,其用以實施適應該DRAM部分與該永續性記憶體部分之間的延時差異的程式碼;其中該過程中狀態指示該主記憶體中之資訊正被更新,且其中該快取記憶體連貫性協定提供:等待直到該過程中狀態被移除以重新載入該資訊;及忽略該過程中狀態且載入該資訊之一先前快取記憶 體內容;且其中該認可狀態指示一記憶體更新已完成及一快取記憶體可自該主記憶體重新載入資訊。
- 如請求項18之主記憶體,其進一步包含用以識別該永續性記憶體部分中之記憶體位置的位址或位址範圍之一永續性記憶體描述符。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/797,522 US9448938B2 (en) | 2010-06-09 | 2010-06-09 | Cache coherence protocol for persistent memories |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201222252A TW201222252A (en) | 2012-06-01 |
TWI530786B true TWI530786B (zh) | 2016-04-21 |
Family
ID=45020214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100120245A TWI530786B (zh) | 2010-06-09 | 2011-06-09 | 具有快取記憶體連貫性協定之記憶體裝置、系統及主記憶體以及管理快取記憶體連貫性協定之方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9448938B2 (zh) |
JP (1) | JP5348429B2 (zh) |
KR (1) | KR101385430B1 (zh) |
CN (1) | CN102279817B (zh) |
DE (1) | DE102011076895B4 (zh) |
TW (1) | TWI530786B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9037788B2 (en) | 2010-09-30 | 2015-05-19 | Micron Technology, Inc. | Validating persistent memory content for processor main memory |
KR101293260B1 (ko) | 2011-12-14 | 2013-08-09 | 한국전자통신연구원 | 이동 통신 단말 및 방법 |
CN104025066B (zh) * | 2011-12-29 | 2018-07-24 | 英特尔公司 | 用于能量高效计算的异构存储器晶片堆叠 |
US20140114928A1 (en) | 2012-10-22 | 2014-04-24 | Robert Beers | Coherence protocol tables |
CN104380269B (zh) * | 2012-10-22 | 2018-01-30 | 英特尔公司 | 高性能互连相干协议 |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US9946656B2 (en) | 2013-08-30 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Completion packet return based on eviction or flush |
CN105094686B (zh) * | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
US9785554B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Synchronizing updates of page table status indicators in a multiprocessing environment |
US9384133B2 (en) | 2014-05-30 | 2016-07-05 | International Business Machines Corporation | Synchronizing updates of page table status indicators and performing bulk operations |
WO2016018421A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Cache management for nonvolatile main memory |
US9430396B2 (en) * | 2014-12-22 | 2016-08-30 | Intel Corporation | Updating persistent data in persistent memory-based storage |
US10152435B2 (en) | 2016-06-20 | 2018-12-11 | Western Digital Technologies, Inc. | Coherent controller |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
CN108959133B (zh) * | 2017-05-22 | 2021-12-10 | 扬智科技股份有限公司 | 可共用存储器的电路结构与数字视频转换装置 |
US10459824B2 (en) * | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
KR102412423B1 (ko) * | 2020-01-09 | 2022-06-23 | 성균관대학교산학협력단 | 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0358163A (ja) | 1989-07-26 | 1991-03-13 | Nec Corp | 疎結合型マルチプロセッサシステム |
JPH06150031A (ja) | 1992-10-30 | 1994-05-31 | Nec Corp | Cpuモジュール |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
JPH0816470A (ja) | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
JP3320562B2 (ja) | 1994-09-22 | 2002-09-03 | 株式会社東芝 | キャッシュメモリを有する電子計算機 |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
JPH10171676A (ja) | 1996-12-10 | 1998-06-26 | Toshiba Corp | マイクロプロセッサのテスト容易化回路 |
US6516384B1 (en) | 1999-12-30 | 2003-02-04 | Intel Corporation | Method and apparatus to perform a round robin and locking cache replacement scheme |
US6760819B2 (en) | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
EP1407456A2 (en) | 2001-07-18 | 2004-04-14 | Matsushita Electric Industrial Co., Ltd. | Writing apparatus, semiconductor memory card, writing proguram, and writing method |
US6658539B2 (en) * | 2001-10-16 | 2003-12-02 | International Business Machines Corporation | Super-coherent data mechanisms for shared caches in a multiprocessing system |
US6983348B2 (en) | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
US6892283B2 (en) | 2002-12-05 | 2005-05-10 | International Business Machines Corporation | High speed memory cloner with extended cache coherency protocols and responses |
US7322042B2 (en) | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP4241175B2 (ja) | 2003-05-09 | 2009-03-18 | 株式会社日立製作所 | 半導体装置 |
US20050080999A1 (en) | 2003-10-08 | 2005-04-14 | Fredrik Angsmark | Memory interface for systems with multiple processors and one memory system |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US20050160229A1 (en) | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US7644287B2 (en) | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
US7240137B2 (en) | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
US7451166B2 (en) | 2005-01-13 | 2008-11-11 | International Business Machines Corporation | System and method for maintaining checkpoints of a keyed data structure using a sequential log |
JP5071798B2 (ja) | 2005-03-31 | 2012-11-14 | 日本電気株式会社 | 計算機システム,メモリ管理方法,およびそのプログラム |
US7130960B1 (en) * | 2005-04-21 | 2006-10-31 | Hitachi, Ltd. | System and method for managing disk space in a thin-provisioned storage subsystem |
US20060265544A1 (en) | 2005-05-17 | 2006-11-23 | John Rudelic | Internally authenticated flash remediation |
JP2006323739A (ja) | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | メモリモジュール、メモリシステム、及び情報機器 |
US7389402B2 (en) | 2005-06-07 | 2008-06-17 | Advanced Micro Devices, Inc. | Microprocessor including a configurable translation lookaside buffer |
US20070226795A1 (en) | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
EP1988465B1 (en) | 2006-02-24 | 2011-11-23 | Fujitsu Limited | Processor, and cache control method |
WO2008040028A2 (en) * | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, and apparatus with programmable memory control for heterogeneous main memory |
US7827360B2 (en) | 2007-08-02 | 2010-11-02 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
CN100492274C (zh) | 2007-08-17 | 2009-05-27 | 杭州华三通信技术有限公司 | 存储控制系统及其处理节点 |
US8015365B2 (en) | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US8055847B2 (en) | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
US8250350B2 (en) | 2008-08-26 | 2012-08-21 | Texas Digital And Multimedia Systems | Computer system with non-volatile write-protected memory based operating system and secure system architecture |
US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
TW201017421A (en) | 2008-09-24 | 2010-05-01 | Panasonic Corp | Cache memory, memory system and control method therefor |
US8261019B2 (en) | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) * | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8291175B2 (en) * | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
-
2010
- 2010-06-09 US US12/797,522 patent/US9448938B2/en active Active
-
2011
- 2011-05-23 JP JP2011114340A patent/JP5348429B2/ja active Active
- 2011-06-01 DE DE102011076895.5A patent/DE102011076895B4/de active Active
- 2011-06-09 CN CN201110159791.9A patent/CN102279817B/zh active Active
- 2011-06-09 TW TW100120245A patent/TWI530786B/zh active
- 2011-06-09 KR KR1020110055706A patent/KR101385430B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
DE102011076895B4 (de) | 2014-12-24 |
DE102011076895A1 (de) | 2011-12-15 |
US9448938B2 (en) | 2016-09-20 |
JP5348429B2 (ja) | 2013-11-20 |
KR101385430B1 (ko) | 2014-04-29 |
US20110307653A1 (en) | 2011-12-15 |
CN102279817B (zh) | 2015-11-25 |
TW201222252A (en) | 2012-06-01 |
CN102279817A (zh) | 2011-12-14 |
JP2011258193A (ja) | 2011-12-22 |
KR20110134855A (ko) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI530786B (zh) | 具有快取記憶體連貫性協定之記憶體裝置、系統及主記憶體以及管理快取記憶體連貫性協定之方法 | |
US10389839B2 (en) | Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node | |
TWI506435B (zh) | 用於處理器主記憶體之持續性記憶體 | |
US10896128B2 (en) | Partitioning shared caches | |
KR100869189B1 (ko) | 멀티-상태 캐시 코히어런스 방식의 장치, 시스템 및 방법 | |
US9547594B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
TWI624759B (zh) | 用於實施多層級記憶體階層之設備與方法 | |
US20160140047A1 (en) | Translation lookaside buffer management | |
TW201107974A (en) | Cache coherent support for flash in a memory hierarchy | |
JP2019521409A (ja) | 仮想アドレスから物理アドレスへの変換を実行する入出力メモリ管理ユニットにおける複数のメモリ素子の使用 | |
US20170255565A1 (en) | Method and apparatus for providing a contiguously addressable memory region by remapping an address space | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
US10635614B2 (en) | Cooperative overlay | |
US9037804B2 (en) | Efficient support of sparse data structure access | |
US20190129854A1 (en) | Computing device and non-volatile dual in-line memory module | |
US10331385B2 (en) | Cooperative write-back cache flushing for storage devices | |
JP6786541B2 (ja) | 管理装置、情報処理装置、管理方法、およびプログラム | |
Jain | Memory Models for Embedded Multicore Architecture | |
Jain | Real World Multicore Embedded Systems: Chapter 4. Memory Models for Embedded Multicore Architecture |