TWI668703B - 具有可程式化緩衝器及快取大小的記憶體協定 - Google Patents

具有可程式化緩衝器及快取大小的記憶體協定 Download PDF

Info

Publication number
TWI668703B
TWI668703B TW107108758A TW107108758A TWI668703B TW I668703 B TWI668703 B TW I668703B TW 107108758 A TW107108758 A TW 107108758A TW 107108758 A TW107108758 A TW 107108758A TW I668703 B TWI668703 B TW I668703B
Authority
TW
Taiwan
Prior art keywords
memory
buffer
cache
dimm
size
Prior art date
Application number
TW107108758A
Other languages
English (en)
Other versions
TW201842496A (zh
Inventor
羅伯特 M 沃克
Original Assignee
美商美光科技公司
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 美商美光科技公司 filed Critical 美商美光科技公司
Publication of TW201842496A publication Critical patent/TW201842496A/zh
Application granted granted Critical
Publication of TWI668703B publication Critical patent/TWI668703B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0893Caches characterised by their organisation or structure
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Human Computer Interaction (AREA)

Abstract

本發明包含與具有可程式化緩衝器及快取大小之一記憶體協定有關之裝置及方法。一種實例性裝置可:程式化一暫存器以界定記憶體中之一緩衝器之一大小;將資料儲存於該記憶體之一第一部分中之該緩衝器中,該緩衝器由該暫存器界定;及將資料儲存於該記憶體之一第二部分中之一快取中。

Description

具有可程式化緩衝器及快取大小的記憶體協定
本發明一般而言係關於記憶體器件,且更特定而言,係關於用於具有可程式化緩衝器及快取大小之一記憶體協定之裝置及方法。
記憶體器件通常經提供為電腦或其他電子器件中之內部半導體積體電路。存在諸多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要電力來維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他揮發性記憶體。非揮發性記憶體可藉由在未被供電時保留所儲存資料而提供持久之資料,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM (EEPROM)、可抹除可程式化ROM (EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM)以及其他非揮發性記憶體。 記憶體亦作為揮發性及非揮發性資料儲存裝置以用於一寬廣範圍之電子應用。舉例而言,非揮發性記憶體可用於個人電腦、可攜式記憶條、數位相機、蜂巢式電話、諸如MP3播放器之可攜式音樂播放器、電影播放器及其他電子裝置中。記憶體單元可被配置成若干陣列,其中該等陣列用於記憶體器件中。 記憶體可為用於計算器件中之一記憶體模組(例如,一雙直列記憶體模組(DIMM))之一部分。記憶體模組可包含揮發性記憶體(舉例而言,諸如DRAM)及/或非揮發性記憶體(舉例而言,諸如快閃記憶體或RRAM)。DIMM可在計算系統中使用一主要記憶體。
本發明包含與具有可程式化緩衝器及快取大小之一記憶體協定有關之裝置及方法。一實例性裝置可:程式化一暫存器以界定記憶體中之一緩衝器之一大小;將資料儲存於該記憶體之一第一部分中之該緩衝器中,該緩衝器由該暫存器界定;及將資料儲存於該記憶體之一第二部分中之一快取中。 在若干項實施例中,記憶體之一部分可實施為一非揮發性雙直列記憶體模組(NVDIMM)器件之緩衝器/快取。實施為緩衝器/快取之記憶體可位於控制器上及/或可位於耦合至該控制器之一記憶體器件中。NVDIMM器件之記憶體器件可包含一揮發性記憶體陣列(例如,DRAM)及/或一非揮發性記憶體陣列(例如,NAND快閃記憶體)。舉例而言,位於控制器上之實施為緩衝器/快取之記憶體可為SRAM。舉例而言,位於一記憶體器件中之實施為緩衝器/快取之記憶體可為一DRAM記憶體陣列。SRAM之一部分可為用於一DRAM記憶體陣列及/或一非揮發性記憶體陣列之一緩衝器/快取,且DRAM之一部分可為用於一非揮發性記憶體陣列之一緩衝器/快取。 緩衝器/快取可包含用作NVDIMM器件之一緩衝器之一部分及用作NVDIMM器件之快取之一部分。記憶體之用作緩衝器之部分之大小可由一暫存器界定。記憶體之用作快取之部分之大小亦可由暫存器及/或由記憶體之未用作緩衝器之其餘部分界定。暫存器可由主機程式化。暫存器亦可由NVDIMM控制器程式化。一暫存器亦可經程式化以界定用於緩衝器/快取之記憶體密度。界定記憶體密度之暫存器可用於判定緩衝器/快取之總體大小。 緩衝器/快取之用作緩衝器之部分可經組態以儲存信號、位址信號(例如,讀取及/或寫入命令)及/或資料(例如,寫入資料)。緩衝器可在執行命令之同時暫時儲存信號及/或資料。緩衝器/快取之用作快取之部分可經組態以儲存資料,該資料亦儲存於一記憶體器件中。儲存於快取及記憶體器件中之資料由控制器定址且可在一命令之執行期間位於快取及/或記憶體器件中。 在若干項實施例中,記憶體之實施為一緩衝器之部分之大小及記憶體之實施為快取之部分之大小可基於如何使用NVDIMM器件。舉例而言,若NVDIMM器件正執行使用一緩衝器之較多命令,則緩衝器之大小可比快取大。若存在對於如何使用NVDIMM器件之改變,則可藉由程式化一暫存器以反映彼改變而修改緩衝器及快取之相對大小。舉例而言,若主機正執行比使用快取之記憶體載入/儲存(例如,讀取)操作多的使用一緩衝器之區塊/寫入操作,則緩衝器可經組態以在大小上比快取大。一旦主機器件已將資料寫入至NVDIMM器件之記憶體陣列,該主機器件便可接收較多讀取命令以存取資料,該等讀取命令將使用快取。可然後藉由重新程式化暫存器使得快取可經組態以在大小上比緩衝器大而增加快取之大小。 在本發明之以下詳細說明中,參考形成本發明之一部分之隨附圖式,且圖式中以圖解說明之方式展示可如何實踐本發明之若干項實施例。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出程序、電及/或結構改變。如本文中所使用,指定符「N」指示,如此指定之特定特徵中之一定數目個特徵可與本發明之若干項實施例包含在一起。 如本文中所使用,「一定數目個」某物可指此類事物中之一或多者。舉例而言,一定數目個記憶體器件可指記憶體器件中之一或多者。另外,如本文中所使用之諸如「N」之指定符(尤其相對於圖式中之元件符號)指示如此指定之特定特徵中之一定數目個特徵可與本發明之若干項實施例包含在一起。 本文中之各圖遵循其中第一個數字或前幾個數字對應於圖式之圖編號且其餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使用類似數字來識別不同圖之間的類似元件或組件。如將瞭解,可添加、交換及/或消除本文中之各種實施例中所展示之元件以便提供本發明之若干項額外實施例。另外,各圖中所提供之元件之比例及相對標度意欲圖解說明本發明之各種實施例且並不在一限制意義上使用。 圖1A係根據本發明之一或多項實施例之包含呈一定數目個記憶體系統104-1…104-N之形式之一裝置之一計算系統100的一功能方塊圖。如本文中所使用,一「裝置」可指但不限於多種結構或結構組合中之任一者,舉例而言,諸如一或若干電路、一或若干晶粒、一或若干模組、一或若干器件或者一或若干系統。在圖1A中所圖解說明之實施例中,記憶體系統104-1…104-N可包含一或多個模組,諸如雙直列記憶體模組(DIMM) 110-1、…、110-X、110-Y。DIMM 110-1、…、110-X、110-Y可包含揮發性記憶體及/或非揮發性記憶體。在若干項實施例中,記憶體系統104-1、…、104-N可包含一多晶片器件。一多晶片器件可包含一定數目個不同記憶體類型及/或記憶體模組。舉例而言,一記憶體系統可包含一定數目個晶片,該一定數目個晶片在任何類型之一模組上具有非揮發性或揮發性記憶體。下文與圖1A至圖3相關聯地闡述之實例使用一DIMM作為記憶體模組,但本發明之協定可用於其中記憶體可執行非確定性命令之任何記憶體系統上。在圖1A中,記憶體系統104-1經由通道112-1耦合至主機,可包含DIMM 110-1、…、110-X,其中DIMM 110-1係一NVDIMM且110-X係DRAM DIMM。在此實例中,每一DIMM 110-1、…、110-X、110-Y包含一控制器114。控制器114可自主機102接收命令且控制命令在一DIMM上之執行。而且,在若干項實施例中,本發明之協定可由不具有一控制器之一記憶體器件(例如,一DIMM)實施且使用本發明之協定對命令之執行可被構建至記憶體器件中。取決於DIMM中之記憶體之類型,主機102可使用本發明之協定及/或一先前協定將命令發送至DIMM 110-1、…、110-X、110-Y。舉例而言,主機可使用本發明之協定來在同一通道(例如,通道112-1)上與一NVDIMM進行通信且使用一先前協定來與皆在同一記憶體系統上之一DRAM DIMM進行通信。主機及NVDIMM可根據本發明之協定而經由讀取就緒(R_RDY)信號、讀取發送(R_SEND)信號、寫入信用遞增(WC_INC)信號及讀取識別(RID)信號進行通信。讀取就緒(R_RDY)信號、讀取發送(R_SEND)信號、寫入信用遞增(WC_INC)信號及讀取識別(RID)信號可經由一先前協定(例如,DDR4)中未使用之接腳或來自一先前協定(例如,DDR4)之經重新目的化(例如,以不同方式使用)使得本協定與先前協定相容之接腳被發送。而且,接腳可在正被開發之協定(例如,DDR5)中被指派至讀取就緒(R_RDY)信號、讀取發送(R_SEND)信號、寫入信用遞增(WC_INC)信號及讀取識別(RID)信號。 如圖1A中所圖解說明,一主機102可耦合至記憶體系統104-1…104-N。在若干項實施例中,每一記憶體系統104-1…104-N可經由一通道耦合至主機102。在圖1A中,記憶體系統104-1經由通道112-1耦合至主機102且記憶體系統104-N經由通道112-N耦合至主機102。主機102可為一膝上型電腦、個人電腦、數位相機、數位記錄及回放器件、行動電話、PDA、記憶卡讀取器、介面集線器以及其他主機系統,且可包含一記憶體存取器件(例如,一處理器)。熟習此項技術者將瞭解,「一處理器」可意指一或多個處理器,例如一並行處理系統、一定數目個共處理器等。 主機102包含用以與記憶體系統104-1…104-N進行通信之一主機控制器108。主機控制器108可經由通道112-1…112-N將命令發送至DIMM 110-1、…、110-X、110-Y。主機控制器108可與DIMM 110-1、…、110-X、110-Y及/或DIMM 110-1、…、110-X、110-Y中之每一者上之控制器114進行通信以讀取、寫入及抹除資料,以及進行其他操作。一實體主機介面可提供用於在記憶體系統104-1…104-N與具有用於實體主機介面之相容接受器之主機102之間傳遞控制、位址、資料及其他信號之一介面。信號可經由通道112-1…112-N在一定數目個匯流排(例如,一資料匯流排及/或一位址匯流排)上於102與DIMM 110-1、…、110-X、110-Y之間被傳遞。 主機控制器108及/或一DIMM上之控制器114可包含控制電路,例如硬體、韌體及/或軟體。在一或多項實施例中,主機控制器108及/或控制器114可為耦合至包含一實體介面之一印刷電路板之一特殊應用積體電路(ASIC)。而且,每一DIMM 110-1、…、110-X、110-Y可包含揮發性及/或非揮發性記憶體之緩衝器/快取116以及暫存器118。緩衝器/快取116可用於緩衝及/或快取在讀取命令及/或寫入命令之執行期間使用之資料。緩衝器/快取116可被分裂成可為一緩衝器之一第一部分及可為一快取之一第二部分。專用於緩衝器之空間量(例如,大小)及/或專用於快取之空間量可由主機控制器108經由暫存器118來控制。主機可基於DIMM中之記憶體之密度、緩衝器中之所要項目之數目及/或被發送至一特定DIMM之命令之類型而控制緩衝器/快取116中專用於緩衝器及/或快取之空間量。在若干項實施例中,DIMM可具有一固定緩衝器大小及/或一固定快取大小。暫存器118可以用於判定緩衝器之大小及快取之大小之媒體密度資訊及/或緩衝器大小資訊進行程式化。 緩衝器/快取116之用作緩衝器之部分可經組態以儲存信號、位址信號(例如,讀取及/或寫入命令)及/或資料(例如,寫入資料)。緩衝器可在執行命令之同時暫時儲存信號及/或資料。緩衝器/快取116之用作一快取之部分可經組態以儲存資料,該資料亦儲存於一記憶體器件中。儲存於快取及記憶體器件中之資料由控制器定址且可在一命令之執行期間位於快取及/或記憶體器件中。 DIMM 110-1、…、110-X、110-Y可對記憶體系統提供主要記憶體或者可用作整個記憶體系統之額外記憶體或儲存裝置。每一DIMM 110-1、…、110-X、110-Y可包含記憶體單元(例如,非揮發性記憶體單元)之一或多個陣列。舉例而言,該等陣列可為具有一NAND架構之快閃陣列。實施例並不限於一特定類型之記憶體器件。舉例而言,記憶體器件可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快閃記憶體以及其他記憶體。 圖1A之實施例可包含為不使本發明之實施例模糊而未加以圖解說明之額外電路。舉例而言,記憶體系統104-1…104-N可包含用以鎖存透過I/O電路經由I/O連接提供之位址信號之位址電路。位址信號可由一列解碼器及一行解碼器接收及解碼以存取DIMM 110-1、…、110-X、110-Y。熟習此項技術者將瞭解,位址輸入連接之數目可取決於DIMM 110-1、…、110-X、110-Y之密度及架構。 圖1B至圖1D係根據本發明之若干項實施例之呈一雙直列記憶體模組(DIMM)之形式之一裝置的方塊圖。圖1B係根據本發明之若干項實施例之呈一雙直列記憶體模組(DIMM) 110之形式之一裝置的一方塊圖。在圖1B中,DIMM 110可包含一控制器114。控制器114可包含可為一緩衝器/快取116之記憶體(諸如SRAM記憶體)及/或一定數目個暫存器118。DIMM 110可包含耦合至控制器之一定數目個記憶體器件113-1、…、113-Z。記憶體器件113-1、…、113-Z可包含非揮發性記憶體陣列及/或揮發性記憶體陣列。 記憶體器件113-1、…、113-Z可包含可用於執行記憶體器件113-1、…、113-Z上之命令之控制電路117 (例如,硬體、韌體及/或軟體)。控制電路117可自控制器114接收命令。控制電路117可經組態以執行命令以讀取記憶體器件113-1、…、113-Z中之資料及/或將資料寫入於記憶體器件113-1、…、113-Z中。 緩衝器/快取116可包含用作NVDIMM器件110之一緩衝器之一部分及用作NVDIMM器件110之快取之一部分。記憶體之用作緩衝器之部分之大小可由暫存器118界定。記憶體之用作快取之部分之大小亦可由暫存器118及/或由記憶體之未用作緩衝器之其餘部分界定。暫存器118亦可經程式化以界定用於緩衝器/快取116之記憶體密度。界定記憶體密度之暫存器118可用於判定緩衝器/快取116之總體大小。 圖1C係根據本發明之若干項實施例之呈一雙直列記憶體模組(DIMM) 110之形式之一裝置的一方塊圖。在圖1C中,DIMM 110可包含一控制器114。控制器114可包含可為一緩衝器/快取116之記憶體(諸如SRAM記憶體)及/或一定數目個暫存器118。DIMM 110可包含耦合至控制器之一定數目個記憶體器件113-1、…、113-Z。記憶體器件113-1、…、113-Z可包含非揮發性記憶體陣列及/或揮發性記憶體陣列。包含揮發性記憶體(諸如DRAM)之記憶體器件113-1、…、113-3可用作一緩衝器/快取116。記憶體器件113-1、…、113-Z可包含可用於執行記憶體器件113-1、…、113-Z上之命令之控制電路117 (例如,硬體、韌體及/或軟體)。控制電路117可自控制器114接收命令。控制電路117可經組態以執行命令以讀取記憶體器件113-1、…、113-Z中之資料及/或將資料寫入於記憶體器件113-1、…、113-Z中。在若干項實施例中,在緩衝器/快取116位於一記憶體器件113-1、…、113-3中之情況下,緩衝器/快取116可用作用於被引導至記憶體器件113-1、…、113-Z之命令之一緩衝器/快取。舉例而言,可使用記憶體器件113-1上之緩衝器/快取116執行被朝向記憶體器件113-Z引導之一命令。舉例而言,可在不使用控制器114上之緩衝器/快取116之情況下執行命令。而且,儲存於記憶體器件113-Z中之資料亦可被快取於記憶體器件113-1上之緩衝器/快取116中。因此,當經由一讀取操作而存取儲存於記憶體器件113-Z中之被快取於記憶體器件113-1上之緩衝器快取116上之資料時,可藉由自快取116獲得資料而對記憶體器件113-1執行讀取操作且不對記憶體器件113-Z執行一讀取操作。 緩衝器/快取116可包含用作NVDIMM器件110之一緩衝器之一部分及用作NVDIMM器件110之快取之一部分。記憶體之用作一緩衝器之部分之大小可由暫存器118界定。記憶體之用作快取之部分之大小亦可由暫存器118及/或由記憶體之未用作緩衝器之其餘部分界定。暫存器118亦可經程式化以界定用於緩衝器/快取116之記憶體密度。界定記憶體密度之暫存器118可用於判定緩衝器/快取116之總體大小。 圖1D係根據本發明之若干項實施例之呈一雙直列記憶體模組(DIMM) 110之形式之一裝置的一方塊圖。在圖1D中,DIMM 110可包含一控制器114。控制器114可包含可為一緩衝器/快取116之記憶體(諸如SRAM記憶體)及/或一定數目個暫存器118。DIMM 110可包含耦合至控制器之一定數目個記憶體器件113-1、…、113-Z。記憶體器件113-1、…、113-Z可包含非揮發性記憶體陣列及/或揮發性記憶體陣列。包含揮發性記憶體(諸如DRAM)之記憶體器件113-1、…、113-Z可用作一緩衝器/快取116。記憶體器件113-1、…、113-Z可包含可用於執行記憶體器件113-1、…、113-Z上之命令之控制電路117 (例如,硬體、韌體及/或軟體)。控制電路117可自控制器114接收命令。控制電路117可經組態以執行命令以讀取記憶體器件113-1、…、113-Z中之資料及/或將資料寫入於記憶體器件113-1、…、113-Z中。在若干項實施例中,在緩衝器/快取116位於一記憶體器件113-1、…、113-Z中之情況下,緩衝器/快取116可用作用於被引導至記憶體器件113-1、…、113-Z之命令之一緩衝器/快取。舉例而言,可使用記憶體器件113-1上之緩衝器/快取116執行被朝向記憶體器件113-Z引導之一命令。舉例而言,可在不使用控制器114上之緩衝器/快取116之情況下執行命令。而且,儲存於記憶體器件113-Z中之資料亦可被快取於記憶體器件113-1上之緩衝器/快取116中。因此,當經由一讀取操作而存取儲存於記憶體器件113-Z中之被快取於記憶體器件113-1上之緩衝器/快取116上之資料時,可藉由自快取116獲得資料而對記憶體器件113-1執行讀取操作且不對記憶體器件113-Z執行一讀取操作。 緩衝器/快取116可包含用作NVDIMM器件110之一緩衝器之一部分及用作NVDIMM器件110之快取之一部分。記憶體之用作一緩衝器之部分之大小可由暫存器118界定。記憶體之用作快取之部分之大小亦可由暫存器118及/或由記憶體之未用作緩衝器之其餘部分界定。暫存器118亦可經程式化以界定用於緩衝器/快取116之記憶體密度。界定記憶體密度之暫存器118可用於判定緩衝器/快取116之總體大小。 圖2A至圖2B係根據本發明之若干項實施例之一緩衝器/快取之圖式。圖2A至圖2B圖解說明根據本發明之若干項實施例之經組態為一緩衝器及一快取之一記憶體。在圖2A中,快取/緩衝器216組態有作為一緩衝器219之一第一部分及作為一快取217之一第二部分。在圖2A中,緩衝器219之大小比快取217大。當一DIMM正接收較多命令(在執行該等命令時,其使用一緩衝器) (舉例而言,諸如寫入命令、基於區塊之命令及/或直接記憶體存取(DMA)資料移動)時,緩衝器219可比快取217大。 在若干項實施例中,記憶體之實施為一緩衝器219之部分之大小及記憶體之實施為快取217之部分之大小可基於由主機發佈之使用一緩衝器219及/或一快取217之相對數量命令。由主機發佈之使用一緩衝器219及/或一快取217之相對數量命令可取決於由主機運行之應用程式。舉例而言,若NVDIMM器件正執行使用一緩衝器219之較多命令,則暫存器可經程式化,因此緩衝器219之大小可比快取217大。若NVDIMM器件正執行使用快取217多於緩衝器219之操作,則暫存器可經程式化,因此快取之大小大於緩衝器之大小。暫存器可經程式化以回應於緩衝器係處於一臨限容量(舉例而言,諸如滿的)且快取係至少部分空的而改變緩衝器之大小。暫存器可經程式化以回應於快取係處於一臨限容量(舉例而言,諸如滿的)且緩衝器係至少部分空的而改變緩衝器之大小。隨著主機改變正運行之應用程式,快取217及/或緩衝器219之大小可改變。 由暫存器界定之緩衝器219之大小可基於NVDIMM器件之非揮發性記憶體陣列之區塊大小。若主機及/或控制器想要能夠儲存具有非揮發性記憶體陣列113之區塊大小之大小之特定數目個項目(例如,臨限數目個項目),則緩衝器219之大小係基於特定數目個所要項目乘以NVDIMM器件之非揮發性記憶體陣列之區塊大小。 在若干項實施例中,一暫存器可由主機(例如,圖1A中之主機102)及/或由一DIMM控制器(例如,圖1A中之控制器114)程式化以界定緩衝器119及/或快取117之大小。舉例而言,若一緩衝器/快取216包含16 MB之記憶體,則暫存器可經程式化以將緩衝器119界定為記憶體之85%且將快取117界定為記憶體之其餘部分。因此,緩衝器119將包含13.6 MB之記憶體且快取117將包含2.4 MB之記憶體。 在圖2B中,快取/緩衝器216組態有作為一緩衝器219之一第一部分及作為一快取217之一第二部分。在圖2B中,緩衝器219之大小比快取217小。當一DIMM正接收較多命令(在執行該等命令時,其使用一快取) (舉例而言,諸如讀取命令及/或具有空間區域性之應用程式)時,緩衝器219可比快取217小。 在若干項實施例中,一暫存器可由主機(例如,圖1A中之主機102)及/或由一DIMM控制器(例如,圖1A中之控制器114)程式化以界定緩衝器119及/或快取117之大小。舉例而言,若一緩衝器/快取216包含10 MB之記憶體,則暫存器可經程式化以將緩衝器119界定為記憶體之10%且將快取117界定為記憶體之其餘部分。因此,緩衝器119將包含1 MB之記憶體且快取117將包含9 MB之記憶體。 圖3係根據本發明之若干項實施例之一定數目個暫存器之一圖式。圖3包含可界定媒體密度之暫存器318-1。媒體密度可包含將用作緩衝器/快取之記憶體之儲存容量。在圖3中,暫存器318-2可界定緩衝器之大小。暫存器318-2可藉由指示將實施作為一緩衝器之記憶體之一百分比而界定緩衝器之大小。暫存器318-2亦可藉由指示緩衝器之儲存容量(例如,3 MB)而界定緩衝器之大小。暫存器318-2亦可藉由明確地指示記憶體之一百分比及/或針對快取之儲存容量而界定快取之大小。亦可由暫存器318-2藉由將未用作緩衝器之其餘部分實施為快取而隱式地界定快取之大小。暫存器318-2可允許一DIMM支援一定數目個應用程式。暫存器318-2可經組態以界定緩衝器及/或快取之大小以基於一定數目個應用程式對具有特定大小之一緩衝器及/或快取之需要而支援該一定數目個應用程式。 雖然本文中已圖解說明及闡述了特定實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之各種實施例之變更或變化形式。應理解,已以一說明性方式而非一限制性方式做出以上說明。在審閱以上說明後,熟習此項技術者將旋即明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之各種實施例之範疇包含其中使用以上結構及方法之其他應用。因此,本發明之各種實施例之範疇應參考隨附申請專利範圍連同此申請專利範圍授權之等效物之整個範圍來判定。 在前述實施方式中,出於簡化本發明之目的,將各種特徵一起分組於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。而是,如隨附申請專利範圍所反映,發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將隨附申請專利範圍併入至實施方式中,其中每一技術方案獨立地作為一單獨實施例。
100‧‧‧計算系統
102‧‧‧主機
104-1…104-N‧‧‧記憶體系統
108‧‧‧主機控制器
110‧‧‧雙直列記憶體模組/非揮發性雙直列記憶體模組器件
110-1‧‧‧雙直列記憶體模組
110-2‧‧‧雙直列記憶體模組
110-X‧‧‧雙直列記憶體模組
110-Y‧‧‧雙直列記憶體模組
112-1…112-N‧‧‧通道
113-1‧‧‧記憶體器件
113-2‧‧‧記憶體器件
113-3‧‧‧記憶體器件
113-Z‧‧‧記憶體器件
114‧‧‧控制器
116‧‧‧緩衝器/快取
117‧‧‧控制電路/快取
118‧‧‧暫存器
216‧‧‧快取/緩衝器
217‧‧‧快取
219‧‧‧緩衝器
318-1‧‧‧暫存器
318-2‧‧‧暫存器
圖1A係根據本發明之若干項實施例之呈包含一記憶體系統之一計算系統之形式之一裝置的一方塊圖。 圖1B至圖1D係根據本發明之若干項實施例之呈一雙直列記憶體模組(DIMM)之形式之一裝置的方塊圖。 圖2A至圖2B係根據本發明之若干項實施例之一緩衝器/快取之圖式。 圖3係根據本發明之若干項實施例之一定數目個暫存器之一圖式。

Claims (21)

  1. 一種裝置,其包括:一雙直列記憶體模組(DIMM),其包括:一記憶體器件;及一控制器,其耦合至該記憶體器件,經組態以:程式化一暫存器以界定記憶體中之一緩衝器之一大小;將資料儲存於該記憶體之一第一部分中之該緩衝器中,該緩衝器由該暫存器界定,其中該緩衝器儲存寫入命令;及將資料儲存於該記憶體之一第二部分中之一快取中,其中該快取儲存讀取命令。
  2. 如請求項1之裝置,其中該記憶體係由該記憶體之該第一部分及該記憶體之該第二部分構成。
  3. 如請求項1之裝置,其中該控制器經組態以程式化指示該記憶體之密度之另一暫存器。
  4. 如請求項3之裝置,其中該緩衝器及該快取位於該控制器上。
  5. 如請求項1之裝置,其中該緩衝器及該快取位於該記憶體器件之一記憶體陣列上。
  6. 一種裝置,其包括:一控制器,其位於一雙直列記憶體模組(DIMM)上;一第一記憶體陣列,其位於該雙直列記憶體模組(DIMM)上,該第一記憶體陣列包含複數個非揮發性記憶體單元;及一第二記憶體陣列,其位於該雙直列記憶體模組(DIMM)上,該第二記憶體陣列包含複數個揮發性記憶體單元;其中該控制器包括一暫存器,該暫存器經組態以判定該第二記憶體陣列之該複數個揮發性記憶體單元之一量以儲存該第一記憶體陣列之緩衝器資料及快取資料中之至少一者,其中該緩衝器資料包含基於區塊(block based)之命令,且其中該快取資料包含具有空間區域性之應用程式(applications with spatial locality)。
  7. 如請求項6之裝置,其中該緩衝器資料包含將在該第一記憶體陣列上執行之命令資料且該快取資料包含儲存於該第一記憶體陣列中之資料。
  8. 如請求項6之裝置,其中該第一記憶體陣列及該第二記憶體陣列配置於一第一晶片中且該控制器配置於一第二晶片中。
  9. 如請求項6之裝置,其進一步包括:一第三記憶體陣列,其位於該雙直列記憶體模組(DIMM)上,該第三記憶體陣列包含複數個非揮發性記憶體單元;及一第四記憶體陣列,其位於該雙直列記憶體模組(DIMM)上,該第四記憶體陣列包含複數個揮發性記憶體單元;其中該暫存器進一步經組態以判定該第四記憶體陣列之該複數個揮發性記憶體單元之一量以儲存該第三記憶體陣列之緩衝器資料及快取資料中之至少一者;且其中該第三記憶體陣列及該第四記憶體陣列配置於一第三晶片中。
  10. 如請求項6之裝置,其中該控制器包括一第五記憶體陣列,該第五記憶體陣列包含複數個揮發性記憶體單元,該複數個揮發性記憶體單元之記憶體單元類型與該第二記憶體陣列及一第四記憶體陣列之該複數個揮發性記憶體單元不同。
  11. 一種方法,其包括:將一定數目個項目儲存於一雙直列記憶體模組(DIMM)上之記憶體中之一緩衝器中,其中該緩衝器之一大小由位於該雙直列記憶體模組(DIMM)上之一暫存器判定,且其中該暫存器可回應於該緩衝器係處於一臨限容量而改變該緩衝器之該大小;及將資料儲存於該雙直列記憶體模組(DIMM)上之記憶體中之一快取中,其中該快取之一大小基於未用作該緩衝器之其餘記憶體之量。
  12. 如請求項11之方法,其進一步包含程式化一第一緩衝器以界定該緩衝器之該大小且程式化一第二緩衝器以界定該記憶體之一密度。
  13. 如請求項11之方法,其進一步包含將該資料儲存於該DIMM之一非揮發性記憶體陣列中之該快取中。
  14. 如請求項11之方法,其進一步包含將該一定數目個項目儲存於位於一控制器上之記憶體中之該緩衝器中。
  15. 如請求項11之方法,其進一步包含將該一定數目個項目儲存於位於該DIMM之一揮發性記憶體陣列上之記憶體中之該緩衝器中。
  16. 一種方法,其包括:程式化一雙直列記憶體模組(DIMM)中之一暫存器以界定該雙直列記憶體模組(DIMM)中之記憶體之實施為一緩衝器之一第一部分之一大小,其中該緩衝器儲存該雙直列記憶體模組(DIMM)中之該記憶體之實施為快取之一第二部分之寫入命令及一大小,其中該快取儲存讀取命令。
  17. 如請求項16之方法,其進一步包含重新程式化該暫存器以改變該記憶體之實施為一緩衝器之該第一部分之該大小及該記憶體之實施為快取之該第二部分之該大小。
  18. 如請求項16之方法,其中程式化該暫存器以界定記憶體之實施為該緩衝器之該第一部分之該大小係基於該緩衝器中之臨限數目個項目。
  19. 如請求項16之方法,其中程式化該暫存器以界定記憶體之實施為該緩衝器之該第一部分之該大小係基於該DIMM之一記憶體陣列之一區塊大小。
  20. 如請求項16之方法,其進一步包含程式化該暫存器以界定位於一控制器上之記憶體之該第一部分之該大小。
  21. 如請求項16之方法,其進一步包含程式化該暫存器以界定位於該DIMM之一記憶體陣列中之記憶體之該第一部分之該大小。
TW107108758A 2017-04-11 2018-03-15 具有可程式化緩衝器及快取大小的記憶體協定 TWI668703B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/484,793 US20180292991A1 (en) 2017-04-11 2017-04-11 Memory protocol with programmable buffer and cache size
US15/484,793 2017-04-11

Publications (2)

Publication Number Publication Date
TW201842496A TW201842496A (zh) 2018-12-01
TWI668703B true TWI668703B (zh) 2019-08-11

Family

ID=63711618

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107108758A TWI668703B (zh) 2017-04-11 2018-03-15 具有可程式化緩衝器及快取大小的記憶體協定

Country Status (6)

Country Link
US (2) US20180292991A1 (zh)
EP (1) EP3610380A4 (zh)
KR (1) KR102360667B1 (zh)
CN (1) CN110546625A (zh)
TW (1) TWI668703B (zh)
WO (1) WO2018190948A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
US10963404B2 (en) 2018-06-25 2021-03-30 Intel Corporation High bandwidth DIMM
US10884958B2 (en) 2018-06-25 2021-01-05 Intel Corporation DIMM for a high bandwidth memory channel
US11074184B2 (en) 2019-04-15 2021-07-27 International Business Machines Corporation Maintaining data order between buffers
US11699471B2 (en) 2019-09-25 2023-07-11 Intel Corporation Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth
US20230143926A1 (en) * 2021-11-08 2023-05-11 Western Digital Technologies, Inc. Dynamic Controller Buffer Management and Configuration

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273549A1 (en) * 2004-06-04 2005-12-08 Micron Technology, Inc. Memory device with user configurable density/performance
US20060015683A1 (en) * 2004-06-21 2006-01-19 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US7124338B1 (en) * 2003-10-10 2006-10-17 Xilinx, Inc. Methods of testing interconnect lines in programmable logic devices using partial reconfiguration
US20100318742A1 (en) * 2009-06-11 2010-12-16 Qualcomm Incorporated Partitioned Replacement For Cache Memory
US20140192583A1 (en) * 2005-06-24 2014-07-10 Suresh Natarajan Rajan Configurable memory circuit system and method
US20150378886A1 (en) * 2013-04-08 2015-12-31 Avalanche Technology, Inc. Software-defined ssd and system using the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915265A (en) * 1995-12-22 1999-06-22 Intel Corporation Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system
US6370619B1 (en) * 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6370614B1 (en) * 1999-01-26 2002-04-09 Motive Power, Inc. I/O cache with user configurable preload
US6594196B2 (en) * 2000-11-29 2003-07-15 International Business Machines Corporation Multi-port memory device and system for addressing the multi-port memory device
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US7469329B2 (en) * 2006-03-30 2008-12-23 International Business Machines Corporation Methods for dynamically resizing memory pools
KR101431205B1 (ko) * 2007-07-13 2014-08-18 삼성전자주식회사 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법
US9104583B2 (en) * 2010-06-24 2015-08-11 International Business Machines Corporation On demand allocation of cache buffer slots
WO2013095525A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Content-aware caches for reliability
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US20150095551A1 (en) * 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
US9779025B2 (en) * 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124338B1 (en) * 2003-10-10 2006-10-17 Xilinx, Inc. Methods of testing interconnect lines in programmable logic devices using partial reconfiguration
US20050273549A1 (en) * 2004-06-04 2005-12-08 Micron Technology, Inc. Memory device with user configurable density/performance
US20060015683A1 (en) * 2004-06-21 2006-01-19 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20140192583A1 (en) * 2005-06-24 2014-07-10 Suresh Natarajan Rajan Configurable memory circuit system and method
US20100318742A1 (en) * 2009-06-11 2010-12-16 Qualcomm Incorporated Partitioned Replacement For Cache Memory
US20150378886A1 (en) * 2013-04-08 2015-12-31 Avalanche Technology, Inc. Software-defined ssd and system using the same

Also Published As

Publication number Publication date
US20220398200A1 (en) 2022-12-15
EP3610380A1 (en) 2020-02-19
US20180292991A1 (en) 2018-10-11
WO2018190948A1 (en) 2018-10-18
CN110546625A (zh) 2019-12-06
KR102360667B1 (ko) 2022-02-09
KR20190128743A (ko) 2019-11-18
TW201842496A (zh) 2018-12-01
EP3610380A4 (en) 2021-01-06

Similar Documents

Publication Publication Date Title
TWI668703B (zh) 具有可程式化緩衝器及快取大小的記憶體協定
TWI662408B (zh) 用於記憶體協定之設備
US9064603B1 (en) Semiconductor memory device and memory system including the same
US11704260B2 (en) Memory controller
US11586566B2 (en) Memory protocol with command priority
US10949117B2 (en) Direct data transfer in memory and between devices of a memory module
US11403035B2 (en) Memory module including a controller and interfaces for communicating with a host and another memory module
US11687283B2 (en) Memory module interfaces
US11226770B2 (en) Memory protocol
US11698870B2 (en) Memory module data buffer
US10901734B2 (en) Memory mapping using commands to transfer data and/or perform logic operations
US10732892B2 (en) Data transfer in port switch memory
EP3676715B1 (en) Cache buffer
US20200201566A1 (en) Module processing resource