TWI506435B - 用於處理器主記憶體之持續性記憶體 - Google Patents
用於處理器主記憶體之持續性記憶體 Download PDFInfo
- Publication number
- TWI506435B TWI506435B TW100120246A TW100120246A TWI506435B TW I506435 B TWI506435 B TW I506435B TW 100120246 A TW100120246 A TW 100120246A TW 100120246 A TW100120246 A TW 100120246A TW I506435 B TWI506435 B TW I506435B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- persistent
- cache memory
- processors
- level
- 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
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本文中所揭示之標的物係關於一種包含持續性記憶體的含一或多個處理器之系統。
舉例而言,中央處理單元(CPU)用於諸多類型之電子裝置中,諸如電腦、蜂巢式電話、PDA、資料記錄器、遊戲機及導航設備。在此等電子裝置當中,舉例而言,一或多個CPU之各種組態可用於(諸如)一多處理器系統中。CPU可與記憶體裝置相關聯以執行特定功能。舉例而言,一CPU可與一主記憶體相關聯以維持由該CPU主控之一或多個應用程式。在另一實例中,一CPU可與快取記憶體相關聯以提供對各種類型之所儲存資訊之相對快存取。
在一實施例中,含兩個或兩個以上處理實體(諸如,中央處理單元(CPU))之一系統可包括持續性記憶體。舉例而言,持續性記憶體可用於可在多個CPU當中共用的主記憶體之至少一部分。舉例而言,含若干CPU之此一系統可包括用以在若干個環境(諸如電腦、蜂巢電話、PDA、資料記錄器及導航設備,此處僅舉數例)中之任一者中執行應用程式之一計算系統。特定而言,可由多個CPU同時執行多個應用程式。在一實施方案中,一或多個此種CPU可個別地與一主記憶體及/或快取記憶體相關聯。此處,此主記憶體或快取記憶體之一部分可包括持續性記憶體。舉例而言,一主記憶體及/或快取記憶體可包括持續性記憶體之一部分及其他類型之隨機存取記憶體(RAM)之一部分。在一特定實例中,主記憶體可包含相變記憶體(PCM)及動態隨機存取記憶體(DRAM)之至少一部分。在另一特定實例中,快取記憶體可包括PCM及/或DRAM。舉例而言,如下文所闡釋,此等記憶體組態可提供諸如非揮發性、相對高之程式化/讀取速度及/或延長之PCM壽命等益處。舉例而言,包含持續性記憶體之主記憶體可提供諸如避免對將來自一非揮發性記憶體之可執行指令及/或其他資訊載入至揮發性DRAM中之一需要之另一益處。因此,增加之記憶體操作速度(諸如,讀取、寫入或擦除操作)及/或減少之記憶體裝置電力消耗可屬由包含持續性記憶體之主記憶體提供之若干個優點之列。當然,包含PCM或其他持續性記憶體作為一主記憶體之一實施例之此等特徵及細節僅為實例,且所主張之標的物並不受如此限制。
本文中,持續性記憶體係指非揮發性記憶體,諸如可具有一位可更改能力之PCM。持續性記憶體之另一特徵包含不對稱讀取/寫入速度,其中對於一既定記憶體單元程式化速度可慢於讀取速度。舉例而言,如下文所闡釋,在一多處理器系統中具有此等特徵之持續性記憶體之一存在可利用特定快取記憶體一致性協定以允許一或多個處理實體共用主記憶體。本文中,主記憶體係指由一處理實體用以維持可由該處理實體執行之一或多個應用程式之記憶體,但所主張之標的物在此方面並不受限制。
在一實施例中,PCM可用作用於含一或多個處理實體之一系統之主記憶體。在此一情形下,舉例而言,PCM可涉及適用於DRAM或其他類型之RAM之相同快取記憶體一致性協定中之至少某些快取記憶體一致性協定。然而,PCM可在PCM包括一持續性記憶體之意義上不同於DRAM。舉例而言,DRAM可在移除電力之情形下丟失所儲存之內容,而PCM可甚至在移除電力之情形下亦維持所儲存之內容。在另一實例中,對於DRAM,讀取速度與程式化速度可相同,而對於PCM,讀取速度與程式化速度可彼此不同且與DRAM相比係相對慢的。因此,在一實施方案中,若PCM構成主記憶體之至少一部分,則可將快取記憶體一致性語意添加至快取記憶體一致性管理以支援PCM之一非揮發性特性。在具有構成主記憶體之至少一部分之PCM之另一實施方案中,可將快取記憶體一致性語意添加至快取記憶體一致性管理以支援PCM之相對長之不對稱讀取/寫入速度從而適應與一讀取操作相比一程式化操作的增加之延時。當然,所主張之標的物並不限於DRAM或PCM之此等特定特徵。
在一實施例中,一記憶體裝置可包括具有用以經由一匯流排(舉例而言)連接至多個處理器之至少一個介面之一主記憶體。在一項實施方案中,此等處理器可包含一板上(諸如,嵌入式)快取記憶體。此等處理器可進一步包含下文所闡述之一暫存器,諸如一轉譯對應緩衝區(Translation Lookaside Buffer;TLB)。主記憶體之至少一部分可包括持續性記憶體。此一記憶體裝置可進一步包括用以自一持續性主記憶體擷取資訊以初始化多個處理器中之板上快取記憶體之一記憶體控制器,如下文詳細闡述。
在另一實施例中,一種使用一特定記憶體裝置之方法可包括在多個處理器當中共用一主記憶體。在一項實施方案中,此等處理器可包含一板上快取記憶體,該板上快取記憶體可包括一暫存器,諸如一TLB。主記憶體之至少一部分可包括持續性記憶體。舉例而言,此持續性記憶體可包括PCM。
一種使用一特定記憶體裝置之方法可進一步包括將資訊儲存於此持續性主記憶體中。舉例而言,此儲存可發生於將主記憶體及/或多個處理器中之一或多者關閉電源時,在此之後可發生一TLB初始化,如下文所闡釋。因此,一種使用一特定記憶體裝置之方法可進一步包括自持續性主記憶體擷取所儲存之資訊以初始化該TLB。
在一實施方案中,舉例而言,一TLB可包括由記憶體管理硬體用以改良虛擬位址轉譯速度之一CPU快取記憶體。可將一TLB實施為內容可定址記憶體(CAM)。在此一情形下,一CAM搜尋關鍵字可包括一虛擬位址且一搜尋結果可包括一實體位址。舉例而言,若一所請求位址存在於一TLB中,則一CAM搜尋可相對快速地產生一匹配,從而導致可用於存取記憶體之一所擷取實體位址。然而,舉例而言,若所請求位址不在一TLB中,則一所得處理程序可包含讀取多個記憶體位置之內容且使用該等所讀取內容之至少一部分來判定一實體位址。
一般而言,可使用寫入或程式化處理程序將資訊儲存於記憶體裝置中,而可使用一讀取處理程序擷取所儲存之資訊。可自一記憶體裝置之全部或一部分擦除所儲存之資訊及/或可將新資訊寫入至一記憶體裝置之全部或一部分中。相對大數目之此種程式化-擦除及/或程式化-再程式化循環可使一PCM之實體完整性降級。舉例而言,強加於併入有PCM之一主記憶體之數千個程式化-擦除循環可降低該主記憶體之一可靠性。若使用此PCM記憶體,則限制及/或減少一PCM主記憶體原本可經受的程式化-擦除循環(cycle)或「循環(cycling)」之發生次數可係有益的。因此,在一項實施例中,用以管理併入有PCM之一主記憶體之循環之一技術可包括快取寫入資訊。因此,除在速度及效率方面提供經改良之處理器系統效能之益處以外,快取記憶體亦可提供用於減少PCM循環以延長PCM主記憶體之壽命之一方法。特定而言,一記憶體裝置(諸如,一DRAM快取記憶體)可用於快取對應於一PCM主記憶體之特定位址之寫入資訊。可至少部分地基於包含於一主記憶體中之PCM之性質來選擇此一DRAM快取記憶體之一記憶體大小。舉例而言,此等性質可包含PCM之循環規格、PCM故障率、PCM寫入速度、併入有一PCM主記憶體之一系統之寫入使用模型及/或所使用之PCM寫入耗損平均技術。雖然引用PCM之特定使用,但管理併入有若干個記憶體類型中之任一者之一主記憶體之循環之此一技術可類似地包括快取寫入資訊,如上文所闡述。因此,所主張之標的物並不限於此等細節。
將參考以下各圖闡述非限制性及非窮舉性實施例,其中除非另有說明,否則在所有各圖中相似元件符號係指相似部件。
在此說明書通篇中所提及之「一項實施例」或「一實施例」意指結合該實施例闡述之一特定特徵、結構或特性係包含於所主張之標的物之至少一項實施例中。因此,在此說明書通篇中之各種地方出現之片語「在一項實施例中」或「一實施例」未必完全指代同一實施例。此外,可將該等特定特徵、結構或特性組合於一或多個實施例中。
圖1係根據一實施例之一處理系統100之一示意性方塊圖。處理系統100可包括CPU 110、主記憶體120及/或快取記憶體130。特定而言,CPU 110可主控維持於主記憶體120中之一或多個應用程式。雖然圖1中未展示,但處理系統100可包括額外CPU或其他此等處理實體、額外主記憶體及/或額外快取記憶體。舉例而言,CPU 110、主記憶體120及/或快取記憶體130可共同地構成用於較大多處理器系統之建置組塊。在一項實施方案中,處理系統100可使用包含一或多個快取記憶體層級之一記憶體階層來操作。任一此層級可包括在多個CPU當中共用之持續性記憶體。舉例而言,快取記憶體可包括第一層級快取記憶體及第二層級快取記憶體,其中之任一者之至少一部分可包括持續性記憶體。當然,一處理系統及快取記憶體之此等細節僅係實例,且所主張之標的物並不受如此限制。在一實施例中,主記憶體110之至少一部分可包括持續性記憶體。在一特定實施方案中,主記憶體110之另一部分可包括其他類型之記憶體,諸如揮發性DRAM。持續性記憶體之各部分無需連續地配置於(舉例而言)可包括一或多個晶粒結構之主記憶體210中。
圖2係根據一實施例之一多處理器系統200之一示意性方塊圖。此一多處理器系統可包含任一數目之處理實體,但圖2中僅展示兩個此種實體。在一特定實例中,此等處理實體可包括與一快取記憶體230相關聯之一第一CPU 210及與一快取記憶體235相關聯之一第二CPU 215。在一項實施方案中,第一CPU 210及第二CPU 215可各自包含本端記憶體(未展示),該本端記憶體包括(舉例而言)嵌入式持續性記憶體。在另一實施方案中,第一CPU 210及第二CPU 215可共用包含持續性記憶體之一主記憶體250。特定而言,持續性記憶體可包含於包括快取記憶體(諸如,各種快取記憶體層級)及主記憶體之一記憶體階層中。舉例而言,此主記憶體之至少一部分可包括PCM。此一記憶體階層可用於管理包括快取記憶體及主記憶體之一分散式記憶體。第一CPU 210及第二CPU 215(及可存在於一電腦平台(舉例而言)中之其他CPU)可共用此一分散式記憶體。在此一情形下,舉例而言,持續性記憶體可包含於另一(諸如,一第三)CPU或可在CPU 210及第二CPU 215當中共用之一記憶體階層上之一單跳本端記憶體或多跳分散式及共用記憶體中。
在一項實施方案中,多處理器系統200可構成一計算平台之一部分,其中主記憶體250可用作與一分頁處理程序相關聯之虛擬記憶體。在此一實施方案中,快取記憶體230及235兩者皆可包括一TLB,該TLB可指向一特定頁表,繼而該特定頁表可指向一或多個個別頁。舉例而言,包括一TLB之快取記憶體230可指向頁表254且繼而頁表254可指向頁252及頁256。此外,包括一TLB之快取記憶體235可指向頁表264且繼而頁表264可指向頁262、頁266及頁268。在一特定實施方案中,一CPU中之此等TLB(諸如,快取記憶體230及235)可包括係非持續性之一暫存器。因此,舉例而言,在關閉電源時,此等TLB可丟失所儲存之資訊。在此一關閉電源之後,可在使CPU及/或TLB開機之一處理程序期間初始化TLB。在一項實施方案中,一TLB可包括包含於一處理器中之一暫存器。舉例而言,此一TLB可指向主記憶體中之一頁表之一基底。可以主記憶體之指標來初始化此一TLB。該處理器可使用維持於該TLB中之資訊來進行快速查找。
在其中此一TLB包括一持續性記憶體之情形下,舉例而言,無需在一關閉電源後開機時初始化該TLB。在其中主記憶體之至少一部分包括持續性記憶體之一情形下,可使用儲存於主記憶體之一特定位置中之資訊來初始化該TLB。同樣,可在一關閉電源後開機時執行此初始化,但所主張之標的物並不受如此限制。舉例而言,一種用以初始化一TLB之技術可涉及將TLB資訊之一複本儲存於持續性主記憶體250中之一特定位置中。在此一情形下,在初始化時,個別CPU 210及/或215可將來自持續性主記憶體250中之一特定位置之各別TLB資訊複製到處理器之相關聯TLB。舉例而言,在初始化時,CPU 210可將來自持續性主記憶體250中之頁270之TLB資訊複製到處理器之相關聯TLB,諸如快取記憶體230。此外,在初始化時,CPU 215可將來自持續性主記憶體250中之頁260之TLB資訊複製到該處理器之相關聯TLB,諸如快取記憶體235。在執行此一技術之後,持續性主記憶體250亦可被初始化。此初始化之一個原因可係,由於一旦一TLB被初始化,依據定義,持續性主記憶體即可由於一頁表基底及/或頁表項目可在持續性記憶體中保持有效且持續性之事實而被初始化。當然,多處理器系統200之此等細節僅係實例,且所主張之標的物並不受如此限制。
圖3係根據一實施例之一多核心系統300之一示意圖。舉例而言,此一系統可包括經由一或多個匯流排彼此連接之處理器節點302、304、306及308。在一項實施方案中,多核心系統300可包括一共用記憶體多處理器。個別處理器節點302、304、306及308可分別包含CPU 310、312、314及316,快取記憶體330、332、334及336,及/或本端記憶體320、322、324及326。在特定處理器節點內,此等本端記憶體可包括與該等特定處理器節點之處理器相關聯之主記憶體。舉例而言,在處理器節點302中,本端記憶體320可包括與處理器310相關聯之一主記憶體。在一實施方案中,本端記憶體可由其他處理器節點之CPU共用或存取。一或多個本端記憶體320、322、324及326可包括持續性記憶體之全部或至少一部分。在一特定實施方案中,本端記憶體之一部分可包括各種類型之記憶體,諸如揮發性DRAM。持續性記憶體之各部分無需連續地配置於(舉例而言)可包括一或多個晶粒結構之本端記憶體中。舉例而言,雖然未展示,但處理器單元可包含與CPU整合於同一晶粒上或整合於單獨晶粒上之記憶體控制器。此外,雖然圖3展示具有四個節點之一系統,但可包含任一數目之節點且所主張之標的物並不限於此特定配置。
快取記憶體330、332、334及336可包括用於儲存自本端記憶體320、322、324及326中之任一者獲得之資訊之一複本之相對高速之記憶體。在一項實施方案中,一或多個快取記憶體330、335、334及336之至少一部分可包括持續性記憶體。舉例而言,可使用個別本端記憶體之一位址之至少一部分來搜尋此快取記憶體。用於搜尋快取記憶體的記憶體位址之此一部分稱為一快取記憶體索引部分。舉例而言,快取記憶體330可包括一快取記憶體索引部分及一快取記憶體資料部分。舉例而言,該快取記憶體索引部分可包含儲存於快取記憶體330中之資訊之線位址以及快取記憶體狀態資訊,如上文所闡述。當然,一多核心系統之此等細節僅係實例,且所主張之標的物並不受如此限制。
圖4係圖解說明包含一記憶體裝置410之一計算系統400之一例示性實施例之一示意圖。一計算裝置404可表示可組態以管理記憶體裝置410之任一裝置、器具或機器。記憶體裝置410可包含一記憶體控制器415及一記憶體422。藉助舉例而非限制之方式,計算裝置404可包含:一或多個計算裝置及/或平台,諸如(例如)一桌上型電腦、一膝上型電腦、一工作站、一伺服器裝置或類似物;一或多個個人計算或通信裝置或器具,諸如(例如)一個人數位助理、行動通信裝置或類似物;一計算系統及/或相關聯服務提供者能力,諸如(例如)一資料庫或資料儲存服務提供者/系統;及/或其任一組合。
在一實施例中,計算裝置404可包含一或多個處理單元420,該一或多個處理單元經由一匯流排440及一主機或記憶體控制器415操作地耦合至記憶體422。處理單元420表示可組態以執行一資料計算程序或處理程序之至少一部分之一或多個電路。藉助舉例而非限制之方式,處理單元420可包含一或多個處理器、控制器、微處理器、微控制器、專用積體電路、數位信號處理器、可程式化邏輯裝置、場可程式化閘陣列及類似物或其任一組合。舉例而言,處理單元420可與記憶體控制器415通信以處理記憶體相關操作,諸如讀取、寫入及/或擦除以及上文所論述之記憶體分割處理程序。處理單元420可包含經調適以與記憶體控制器415通信之一作業系統。此一作業系統可(舉例而言)產生欲經由匯流排440發送至記憶體控制器415之命令。舉例而言,此等命令可包含讀取/寫入指令。
記憶體422表示任一資料儲存機構。記憶體422可包含(舉例而言)一DRAM 424及/或一持續性記憶體426。在一特定實施例中,記憶體422可包括包含持續性記憶體之至少一部分之一主記憶體,如上文所闡述。記憶體422亦可包括可同樣包含持續性記憶體之至少一部分之快取記憶體。雖然在此實例中圖解說明為與處理單元420分離,但應理解,DRAM 424之全部或部分可提供於處理單元420內或以其他方式與處理單元420位於同一地點/耦合。
根據一實施例,記憶體422之一或多個部分可儲存表示如記憶體422之一特定狀態所表達之資料及/或資訊之信號。舉例而言,可藉由以下方式將表示資料及/或資訊之一電子信號「儲存」於記憶體422之一部分中:影響或改變記憶體422之此等部分之狀態以將資料及/或資訊表示為二進制資訊(例如,1及0)。如此,在一特定實施方案中,記憶體之該部分之狀態之此一改變以儲存表示資料及/或資訊之一信號構成記憶體422至一不同狀態或事態之一轉換。
在一項實施例中,系統400可包括兩個或兩個以上處理單元420及具有用以連接至具有板上快取記憶體之此多個處理器之至少一個介面(例如,經由至處理單元420之匯流排440)之主記憶體,其中主記憶體之至少一部分可包括持續性記憶體。系統400可進一步包括用以自此一持續性主記憶體擷取資訊以初始化該板上快取記憶體之一記憶體控制器。舉例而言,此持續性記憶體可包括PCM。
計算裝置404可包含(舉例而言)一輸入/輸出432。輸入/輸出432表示可組態以接受或以其他方式引入人類及/或機器輸入之一或多個裝置或特徵,及/或可組態以遞送或以其他方式提供人類及/或機器輸出之一或多個裝置或特徵。藉助舉例而非限制之方式,輸入/輸出裝置432可包含一經操作地組態之顯示器、揚聲器、鍵盤、滑鼠、軌跡球、觸控螢幕、資料埠等。
雖然已圖解說明及闡述了目前被視為實例性實施例之實施例,但熟習此項技術者將理解在不背離所主張之標的物之情形下可做出各種其他修改且可以等效物替代。另外,可在不背離本文中所闡述之中心概念之情形下做出諸多修改以使一特定情形適應所主張之標的物之教示。因此,意欲所主張之標的物不限於所揭示之特定實施例,而是此所主張之標的物亦可包含歸屬於隨附申請專利範圍及其等效內容之範疇內之所有實施例。
100...處理系統
110...中央處理單元
120...主記憶體
130...快取記憶體
200...多處理器系統
210...第一中央處理單元/主記憶體
215...第二中央處理單元
230...快取記憶體
235...快取記憶體
250...持續性主記憶體
252...頁
254...頁表
256...頁
260...頁
262...頁
264...頁表
266...頁
268...頁
270...頁
300...多核心系統
302...處理器節點
304...處理器節點
306...處理器節點
308...處理器節點
310...中央處理單元/處理器
312...中央處理單元
314...中央處理單元
316...中央處理單元
320...本端記憶體
322...本端記憶體
324...本端記憶體
326...本端記憶體
330...快取記憶體
332...快取記憶體
334...快取記憶體
336...快取記憶體
400...計算系統
404...計算裝置
410...記憶體裝置
415...記憶體控制器
420...處理單元
422...記憶體
424...動態隨機存取記憶體
426...持續性記憶體
432...輸入/輸出
440...匯流排
圖1係根據一實施例之一系統組態之一示意圖。
圖2係根據一實施例之一多處理器系統之一示意圖。
圖3係根據另一實施例之一多處理器系統組態之一示意圖。
圖4係根據一實施例之一計算系統及一記憶體裝置之一示意圖。
200...多處理器系統
210...第一中央處理單元/主記憶體
215...第二中央處理單元
230...快取記憶體
235...快取記憶體
250...持續性主記憶體
252...頁
254...頁表
256...頁
260...頁
262...頁
264...頁表
266...頁
268...頁
270...頁
Claims (17)
- 一種記憶體裝置,其包括:一記憶體階層,其包含一主記憶體、一第一層級快取記憶體及一第二層級快取記憶體;及一記憶體控制器,其經調適以與該主記憶體通信,該主記憶體由多個處理器共用,其中一快取記憶體在該多個處理器之至少一者板上(on-board),該板上快取記憶體係選自由該第一層級快取記憶體及該第二層級快取記憶體組成之群組,該第一層級快取記憶體及該第二層級快取記憶體包含可被該多個處理器中至少一其他處理器存取之持續性記憶體,且該記憶體控制器進一步經調適以自該主記憶體擷取資訊以初始化包含於該多個處理器中之該第一層級快取記憶體或該第二層級快取記憶體,其中該主記憶體之至少一部分包括持續性記憶體。
- 如請求項1之記憶體裝置,其中該板上快取記憶體包括一轉譯對應緩衝區(TLB)。
- 如請求項2之記憶體裝置,其中該資訊包括該TLB之初始值。
- 如請求項1之記憶體裝置,其中該多個處理器個別地包含嵌入式記憶體,其中該多個處理器中之至少一者包含該主記憶體。
- 如請求項1之記憶體裝置,其中該主記憶體包括在該多個處理器當中共用之一單個主記憶體。
- 如請求項1之記憶體裝置,其中該多個處理器包括多個 處理系統。
- 如請求項1之記憶體裝置,其中該持續性記憶體包括相變記憶體(PCM)。
- 一種用於操作一電腦系統之方法,其包括:自多個處理器當中共用之一主記憶體擷取資訊,其中該多個處理器中至少一者包含在該多個處理器中該至少一者板上(on-board)之一快取記憶體,該板上快取記憶體係選自由一第一層級持續性快取記憶體及一第二層級持續性快取記憶體組成之群組;及將該資訊載入至在該多個處理器中該至少一者板上之該第一層級持續性快取記憶體或該第二層級持續性快取記憶體以初始化該板上快取記憶體,其中該主記憶體之至少一部分包括持續性記憶體,且其中該第一層級持續性快取記憶體及該第二層級持續性快取記憶體可被該多個處理器中至少一其他處理器存取。
- 如請求項8之方法,其中該板上快取記憶體包括一轉譯對應緩衝區(TLB)。
- 如請求項9之方法,其中該資訊包括該TLB之初始值。
- 如請求項8之方法,其中該多個處理器個別地包含嵌入式記憶體,其中該多個處理器中之至少一者包含該主記憶體。
- 如請求項8之方法,其中該主記憶體包括在該多個處理器當中共用之一單個主記憶體。
- 如請求項8之方法,其進一步包括: 依包含在該多個處理器當中共用之該第一層級快取記憶體及該第二層級快取記憶體之一記憶體階層管理該主記憶體。
- 如請求項8之方法,其中該持續性記憶體包括相變記憶體(PCM)。
- 一種電腦系統,其包括:一記憶體階層,其包含一主記憶體、一第一層級快取記憶體及一第二層級快取記憶體;及複數個處理實體,其用以主控一或多個應用程式,該等處理實體中之個別處理實體包含在該等處理實體之該等個別處理實體板上(on-board)之一快取記憶體,該板上快取記憶體係選自由該第一層級快取記憶體及該第二層級快取記憶體組成之群組,該第一層級快取記憶體及該第二層級快取記憶體包含由該複數個處理實體中至少一其他處理實體共用之持續性記憶體;一主記憶體,其具有用以連接至該複數個處理實體之至少一個介面,其中該主記憶體之至少一部分包括持續性記憶體;及一記憶體控制器,其用以自該持續性主記憶體擷取資訊以初始化該多個處理器中之該板上快取記憶體。
- 如請求項15之電腦系統,其中該板上快取記憶體包括一轉譯對應緩衝區(TLB)。
- 如請求項16之電腦系統,其中該資訊包括該TLB之初始值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/797,512 US8694737B2 (en) | 2010-06-09 | 2010-06-09 | Persistent memory for processor main memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227300A TW201227300A (en) | 2012-07-01 |
TWI506435B true TWI506435B (zh) | 2015-11-01 |
Family
ID=45020213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100120246A TWI506435B (zh) | 2010-06-09 | 2011-06-09 | 用於處理器主記憶體之持續性記憶體 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8694737B2 (zh) |
JP (1) | JP5752989B2 (zh) |
KR (1) | KR101359813B1 (zh) |
CN (1) | CN102331974B (zh) |
DE (1) | DE102011076894B9 (zh) |
TW (1) | TWI506435B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626997B2 (en) | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
WO2013101201A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Home agent multi-level nvm memory architecture |
CN103838746B (zh) * | 2012-11-21 | 2017-05-31 | 杭州海康威视数字技术股份有限公司 | 多cpu系统共享存储数据的方法及该系统 |
CN103838676B (zh) * | 2012-11-22 | 2017-10-17 | 华为技术有限公司 | 数据存储系统、数据存储方法及pcm桥 |
US20140181427A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Compound Memory Operations in a Logic Layer of a Stacked Memory |
US9195614B2 (en) | 2013-01-08 | 2015-11-24 | International Business Machines Corporation | Instantaneous save/restore of virtual machines with persistent memory |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US10452498B2 (en) * | 2013-06-28 | 2019-10-22 | Hewlett Packard Enterprise Development Lp | Fault tolerance for persistent main memory |
KR101635665B1 (ko) * | 2013-10-31 | 2016-07-01 | 주식회사 엘지화학 | 응용 모듈 데이터제어장치 및 그 데이터제어방법 |
CN106104561B (zh) | 2014-03-28 | 2019-10-22 | 惠普发展公司,有限责任合伙企业 | 允许针对bios的安装使用测试密钥的方法和设备 |
US10922228B1 (en) | 2015-03-31 | 2021-02-16 | EMC IP Holding Company LLC | Multiple location index |
US10210087B1 (en) * | 2015-03-31 | 2019-02-19 | EMC IP Holding Company LLC | Reducing index operations in a cache |
US10007435B2 (en) * | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US20170123796A1 (en) * | 2015-10-29 | 2017-05-04 | Intel Corporation | Instruction and logic to prefetch information from a persistent memory |
US10248571B2 (en) * | 2016-08-11 | 2019-04-02 | Hewlett Packard Enterprise Development Lp | Saving position of a wear level rotation |
US11216396B2 (en) * | 2016-09-29 | 2022-01-04 | Intel Corporation | Persistent memory write semantics on PCIe with existing TLP definition |
CN108334331B (zh) * | 2018-02-08 | 2021-05-25 | 苏州妙益科技股份有限公司 | 一种安全的电动汽车电池管理系统软件升级方法 |
US11544197B2 (en) | 2020-09-18 | 2023-01-03 | Alibaba Group Holding Limited | Random-access performance for persistent memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050166020A1 (en) * | 2002-01-24 | 2005-07-28 | Intel Corporation | Methods and apparatus for cache intervention |
TW200622905A (en) * | 2004-08-26 | 2006-07-01 | Ibm | System and method for message delivery across a plurality of processors |
TW200710722A (en) * | 2005-06-07 | 2007-03-16 | Advanced Micro Devices Inc | Microprocessor including a configurable translation lookaside buffer |
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
Family Cites Families (37)
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 |
US6452823B1 (en) | 2001-01-31 | 2002-09-17 | Motorola, Inc. | Non-volatile magnetic cache memory and method of use |
US6760819B2 (en) * | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
US20040242029A1 (en) | 2001-07-18 | 2004-12-02 | Norio Nakamura | 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 |
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 |
US7644287B2 (en) | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
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 |
CN101180612A (zh) | 2005-03-31 | 2008-05-14 | 日本电气株式会社 | 计算机系统、存储器管理方法及其程序 |
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 | メモリモジュール、メモリシステム、及び情報機器 |
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 |
CN101673245B (zh) * | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
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 |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
-
2010
- 2010-06-09 US US12/797,512 patent/US8694737B2/en active Active
-
2011
- 2011-05-17 JP JP2011110233A patent/JP5752989B2/ja active Active
- 2011-06-01 DE DE102011076894.7A patent/DE102011076894B9/de active Active
- 2011-06-08 KR KR1020110054932A patent/KR101359813B1/ko active IP Right Grant
- 2011-06-09 CN CN201110159792.3A patent/CN102331974B/zh active Active
- 2011-06-09 TW TW100120246A patent/TWI506435B/zh active
-
2014
- 2014-04-04 US US14/245,916 patent/US9075725B2/en active Active
-
2015
- 2015-07-02 US US14/791,030 patent/US9384134B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050166020A1 (en) * | 2002-01-24 | 2005-07-28 | Intel Corporation | Methods and apparatus for cache intervention |
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
TW200622905A (en) * | 2004-08-26 | 2006-07-01 | Ibm | System and method for message delivery across a plurality of processors |
TW200710722A (en) * | 2005-06-07 | 2007-03-16 | Advanced Micro Devices Inc | Microprocessor including a configurable translation lookaside buffer |
Also Published As
Publication number | Publication date |
---|---|
US9384134B2 (en) | 2016-07-05 |
US20150309931A1 (en) | 2015-10-29 |
TW201227300A (en) | 2012-07-01 |
KR20110134840A (ko) | 2011-12-15 |
CN102331974A (zh) | 2012-01-25 |
JP2011258189A (ja) | 2011-12-22 |
CN102331974B (zh) | 2015-01-28 |
US20110307665A1 (en) | 2011-12-15 |
US8694737B2 (en) | 2014-04-08 |
DE102011076894B4 (de) | 2018-05-24 |
KR101359813B1 (ko) | 2014-02-07 |
US9075725B2 (en) | 2015-07-07 |
DE102011076894A1 (de) | 2011-12-15 |
US20140223103A1 (en) | 2014-08-07 |
DE102011076894B9 (de) | 2018-12-20 |
JP5752989B2 (ja) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI506435B (zh) | 用於處理器主記憶體之持續性記憶體 | |
US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
US11132298B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
JP5348429B2 (ja) | 持続性メモリのためのキャッシュコヒーレンスプロトコル | |
US9158685B2 (en) | System cache with cache hint control | |
US9547594B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
US9317429B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels | |
US8938601B2 (en) | Hybrid memory system having a volatile memory with cache and method of managing the same | |
GB2514023B (en) | System and method for intelligently flushing data from a processor into a memory subsystem | |
US20140089602A1 (en) | System cache with partial write valid states | |
US20140089600A1 (en) | System cache with data pending state | |
US9311251B2 (en) | System cache with sticky allocation | |
US10210093B2 (en) | Memory device supporting both cache mode and memory mode, and operating method of the same | |
CN106339330B (zh) | 高速缓存刷新的方法及系统 | |
US10621098B2 (en) | Computing device and non-volatile dual in-line memory module that evict and prefetch data with respect to memories having different operating speeds | |
US20220229552A1 (en) | Computer system including main memory device having heterogeneous memories, and data management method thereof | |
US11526448B2 (en) | Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning |