TWI661308B - 使用具有命令優先權之記憶體協定之設備及方法 - Google Patents

使用具有命令優先權之記憶體協定之設備及方法 Download PDF

Info

Publication number
TWI661308B
TWI661308B TW107102386A TW107102386A TWI661308B TW I661308 B TWI661308 B TW I661308B TW 107102386 A TW107102386 A TW 107102386A TW 107102386 A TW107102386 A TW 107102386A TW I661308 B TWI661308 B TW I661308B
Authority
TW
Taiwan
Prior art keywords
rid
command
priority
commands
read
Prior art date
Application number
TW107102386A
Other languages
English (en)
Other versions
TW201833786A (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 TW201833786A publication Critical patent/TW201833786A/zh
Application granted granted Critical
Publication of TWI661308B publication Critical patent/TWI661308B/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
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • 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)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Dram (AREA)

Abstract

本發明包含與具有命令優先權之一記憶體協定有關之設備及方法。一例示性設備可基於一暫存器中經指派至一RID號碼之一優先權來執行包含該讀取識別(RID)號碼之一命令。該設備可為一非揮發性雙行記憶體模組(NVDIMM)裝置。

Description

使用具有命令優先權之記憶體協定之設備及方法
本發明大體上係關於記憶體裝置,且更特定言之係關於用於具有命令優先權之一記憶體協定之設備及方法。
記憶體裝置通常提供為電腦或其他電子裝置中之內部、半導體、積體電路。存在諸多不同類型之記憶體,包含揮發性記憶體及非揮發性記憶體。揮發性記憶體可需要電力來維護其資料,且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM),以及其他。非揮發性記憶體可在未供電時藉由保存所儲存之資料而提供持久資料,且可包含NAND快閃記憶體、反或(NOR)快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻隨機存取記憶體(RRAM)及磁阻隨機存取記憶體(MRAM),以及其他。
記憶體亦用作廣泛範圍的電子應用之揮發性及非揮發性資料儲存器。非揮發性記憶體可用於(例如)個人電腦、可攜式記憶體棒、數位相機、蜂巢式電話、可攜式音樂播放器,諸如MP3播放器、電影播放器,及其他電子裝置。記憶體單元可經配置成陣列,其中該等陣列用於記憶體裝 置中。
記憶體可為用於計算裝置之一記憶體模組(例如,一雙行記憶體模組(DIMM))之部分。記憶體模組可包含揮發性,諸如(例如)DRAM,及/或非揮發性記憶體,諸如(例如)快閃記憶體或RRAM。DIMM可在計算系統中使用一主記憶體。
100‧‧‧計算系統
102‧‧‧主機
104-1......104-N‧‧‧記憶體系統
108‧‧‧主機控制器
110‧‧‧雙行記憶體模組(DIMM)
110-1、......、110-X、110-Y‧‧‧雙行記憶體模組(DIMM)
112-1......112-N‧‧‧通道
113-1、......、113-Z‧‧‧記憶體裝置
114‧‧‧控制器
116‧‧‧緩衝器
117‧‧‧控制電路
118‧‧‧暫存器
222‧‧‧命令信號
224‧‧‧DQ+ECC接腳
226‧‧‧讀取識別(RID)接腳
242-100‧‧‧第一啟動命令
242-200‧‧‧第二啟動命令
242-300‧‧‧第三啟動命令
244-100‧‧‧第一讀取命令
244-200‧‧‧第二讀取命令
244-300‧‧‧第三讀取命令
246-100‧‧‧資料
246-200‧‧‧資料
246-300‧‧‧資料
248-100‧‧‧讀取識別(RID)信號
248-200‧‧‧讀取識別(RID)信號
248-300‧‧‧讀取識別(RID)信號
318‧‧‧暫存器
318-1、......、318-M‧‧‧暫存器
350-1‧‧‧讀取識別(RID)範圍
350-2‧‧‧讀取識別(RID)範圍
350-3‧‧‧讀取識別(RID)範圍
350-4‧‧‧讀取識別(RID)範圍
350-M‧‧‧讀取識別(RID)範圍
352-1‧‧‧低優先權
352-2‧‧‧中優先權
352-3‧‧‧高優先權
360‧‧‧讀取識別(RID)
362‧‧‧讀取識別(RID)
圖1A係根據本發明之若干實施例之呈包含一記憶體系統之一計算系統的形式之一設備之一方塊圖。
圖1B係根據本發明之若干實施例之呈一雙行記憶體模組(DIMM)的形式之一設備之一方塊圖。
圖2A至2B係根據本發明之若干實施例之若干操作之圖式。
圖3A至3D係根據本發明之若干實施例之若干暫存器之圖式。
本發明包含與具有命令優先權之一記憶體協定有關之設備及方法。一例示性設備可基於一暫存器中經指派至一RID號碼之一優先權來執行包含該讀取識別(RID)號碼之一命令。
在若干實施例中,一主機可將若干命令發送至一設備。若干命令之各者可經指派可用於判定與若干命令相關聯之一優先權之讀取識別(RID)號碼。設備可定位針對一暫存器或若干暫存器中之若干命令之一優先權。(若干)暫存器可具有經指派至RID之範圍之優先權。設備可基於(若干)暫存器中之優先權資訊來執行自最高至最低優先權之命令。可藉由主機更新 (若干)暫存器,以改變針對經指派至RID之範圍之優先權資訊。亦可藉由主機更新暫存器,以改變經指派至優先權資訊之RID之範圍。可在命令被發送至設備之前藉由主機更新(若干)暫存器,使得將基於(若干)暫存器中之優先權資訊來執行被發送至設備之命令。可在命令已被發送至設備之後藉由主機更新(若干)暫存器,使得被發送至設備之命令之優先權將改變並基於(若干)暫存器中之經更新的優先權資訊來執行。
在本發明之以下詳細描述中,參考形成本發明之一部分之附圖,且在其中以繪示方式展示可如何實踐本發明之若干實施例。此等實施例被足夠詳細地描述以使一般技術者能夠實踐本發明之該等實施例,且應瞭解:可利用其他實施例,及可在不脫離本發明之範疇之情況下作出程序、電性及/或結構改變。如本文中所使用,標示符「N」指示:本發明之若干實施例中可包含如此標示之若干特定特徵。
如本文中所使用,「若干」某物可指代此等事物之一或多者。例如,若干記憶體裝置可指代記憶體裝置之一或多者。另外,如本文中所使用,諸如「N」之標示符(尤其相對於圖式中之參考元件符號)指示:本發明之若干實施例中可包含如此標示之若干特定特徵。
本文中之圖式遵循一編號慣例,其中第一數字或若干第一數字對應於圖式編號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字而識別不同圖之間之類似元件或組件。應瞭解,可添加、交換及/或消除本文中之各種實施例中所展示之元件,以便提供本發明之若干額外實施例。另外,圖中所提供元件之比例及相對尺度意欲繪示本發明之各種實施例,而不被用於限制意義中。
圖1A係根據本發明之一或多項實施例之包含呈若干記憶體系統104- 1......104-N的形式之一設備之一計算系統100之一功能方塊圖。如本文中所使用,一「設備」可指代(但不限於)各種結構之任一者或結構之組合(諸如(例如)一電路或若干電路、一晶粒或若干晶粒、一模組或若干模組、一裝置或若干裝置或一系統或若干系統)。在圖1A中繪示之實施例中,記憶體系統104-1......104-N可包含一或多個記憶體模組(諸如(例如)雙行記憶體模組(DIMM)110-1、......、110-X、110-Y)。記憶體系統104-1......104-N可包含任何類型之記憶體裝置(諸如具有記憶體之DIMM),共將與圖1A及圖1B相關聯而描述。DIMM 110-1、......、110-X、110-Y可包含揮發性記憶體及/或非揮發性記憶體。在若干實施例中,記憶體系統104-1、......、104-N可包含一多晶片裝置。一多晶片裝置可包含若干不同記憶體類型及/或記憶體模組。例如,一記憶體系統可包含一模組之任何類型上之非揮發性或揮發性記憶體。下文與圖1A相關聯描述之實例使用一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)來實施本發明之協定,並且使用本發明之協定之命令之執行可內建於記憶體裝置中。主機102可取決於DIMM中之類型之記憶體使用本發明之協定及/或一先前協定將命令發送至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包含一主機控制器108以與記憶體系統104-1......104-N通訊。主機控制器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控制。主機可基於正被發送至一特定DIMM之類型之命令來控制專用於寫入緩衝器及讀取緩衝器之緩衝器116中之空間量。在若干實施例中,DIMM可具有一固定寫入緩衝器尺寸及/或一固定讀取緩衝器尺寸。暫存器118可用優先權資訊程式化以判定用於執行命令之優先權。
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係根據本發明之若干實施例之呈一雙行記憶體模組(DIMM)110的形式之一設備之一方塊圖。在圖1B中,DIMM 110可包含一控制器114。控制器114可包含可為一緩衝器116及/或若干暫存器118之記憶體(諸如SRAM記憶體)。DIMM 110可包含耦合至控制器之若干記憶體裝置113-1、......、113-Z。記憶體裝置113-1、......、113-Z可包含非揮發性記憶體陣列及/或揮發性記憶體陣列。記憶體裝置113-1、......、113-Z可包含可用於在記憶體裝置113-1、......、113-Z上執行命令之控制電路117(例如,硬體、韌體及/或軟體)。控制電路117(例如117-1、117-2、117-3、及117-Z)可自控制器114接收命令。控制電路117可經組態以執行命令來讀取及/或寫入記憶體裝置113-1、......、113-Z中之資料。
圖2A至圖2B係根據本發明之若干實施例之若干操作之圖式。圖2A繪示執行三個讀取操作之一實例。一命令信號222可自主機被發送至NVDIMM。命令信號222可包含啟動命令及讀取命令。在圖2A中,一第一啟動命令242-100、一第一讀取命令244-100、一第二啟動命令242-200、一第二讀取命令244-200、一第三啟動命令242-300及一第三讀取命令244-300自主機被發送至NVDIMM。主機可將一主機讀取識別(RID)號碼指派至讀取命令。主機RID號碼可經包含於讀取命令中,並當將讀取命令自主機發送至NVDIMM時傳輸至NVDIMM。在圖2A中,第一讀取命令244-100可經指派100之一主機RID,第二讀取命令244-200可經指派200 之一主機RID,且第三讀取命令244-300可經指派300之一主機RID。主機可基於若干暫存器中之優先權資訊來指派主機RID號碼。例如,若主機期望要在其他命令之前執行一命令,則主機可將在(若干)暫存器中經指派高優先權之RID之一範圍中之一RID指派至該命令。
在本發明之協定中,讀取命令可相繼地被發送而不考慮時序參數。此使命令較快被發送而不需將命令間隔開(歸因於時脈時序參數),因此NVDIMM可較快開始處理命令,此可減少對命令之延遲。
在圖2A中,一旦NVDIMM已接收到讀取命令244-100、244-200及244-300,NVDIMM可判定與命令相關聯之優先權。NVDIMM可檢測暫存器或若干暫存器以定位與命令244-100、244-200及244-300之RID相關聯之優先權。可在命令自主機被發送至NVDIMM之前及/或之後程式化暫存器。在圖2A中描述之實例中,在命令被發送至NVDIMM之前程式化暫存器。例如,暫存器可將高優先權指派至具有RID 100至199之命令,將中優先權指派至具有RID 200至299之命令,及將低優先權指派至具有RID 300至399之命令。命令244-100將具有高優先權並可首先執行,命令244-200將具有中優先權並一旦具有高優先權之所有命令已被執行就可被執行,且命令244-300將具有低優先權並一旦具有高優先權及中優先權之所有命令已被執行就可被執行。
由於可回應於具有高優先權而首先執行命令244-100,故NVDIMM可檢測NVDIMM之緩衝器及/或快取區並在NVDIMM之非揮發性記憶體中定位與讀取命令244-100相關聯之資料。一旦控制器定位資料並具有準備發送回主機之資料,NVDIMM控制器就可將一讀取就緒命令發送至主機。當一NVDIMM接收若干讀取命令時,NVDIMM控制器基於一暫存器 或若干暫存器中之優先權資訊來返回與讀取命令相關聯之資料。例如,讀取命令包含一RID,且NVDIMM控制器基於命令之RID來定位將一優先權指派至讀取命令之一暫存器中之RID。
在圖2A中,讀取命令244-100可包含指示命令244-100要以高優先權返回之一RID。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與命令244-100相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與命令244-100相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,其係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接腳224上發送與命令244-100相關聯之資料246-100。再者,當資料246-100被發送至主機時一讀取識別(RID)信號248-100在RID接腳226上被發送至主機。RID信號248-100包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-100相關聯之讀取命令。資料246-100經指派100之一記憶體裝置RID號碼。歸因於NVDIMM命令能夠回應於依不同於接收讀取命令之順序之一順序之讀取命令,主機在無RID信號之情況下將不知道一特定資料傳輸與哪個讀取命令相關聯。RID信號可包含n位元,其中n係1或更多位元。例如,RID信號可在一2位元RID匯流排上傳輸。主機可發出之未處理讀取之數目可取決於RID信號 中之位元之數目、資料封包中之跳動之數目及NVDIMM控制器可支援之讀取之數目。例如,若資料叢發係8個跳動,且RID信號係2位元,則主機可發出之未處理讀取之數目係22*8=65,536。再者,一NVDIMM可具有可藉由主機讀取之一暫存器,以進一步限制主機可發出之未處理讀取命令之數目,且主機可追蹤主機已發出之未處理讀取之數目。
在圖2A中,讀取命令244-200可包含指示命令244-200要以中優先權返回之一RID。由於命令244-100已被執行,且不存在具有高優先權之其他命令待執行,故可執行命令244-200。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與讀取命令244-200相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與讀取命令244-200相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,此係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接腳224上發送與讀取命令244-200相關聯之資料246-200。再者,當資料246-200被發送至主機時一讀取識別(RID)信號248-200在RID接腳226上被發送至主機。RID信號248-200包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-200相關聯之讀取命令。資料246-200經指派200之一記憶體裝置RID號碼。
在圖2A中,讀取命令244-300可包含指示命令244-300要以中優先權返回之一RID。由於命令244-100及244-200已被執行,且不存在具有高或中優先權之其他命令待執行,故可執行命令244-300。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與讀取命令244-300相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與讀取命令244-300相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,此係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接腳224上發送與讀取命令244-300相關聯之資料246-300。再者,當資料246-300被發送至主機時一讀取識別(RID)信號248-300在RID接腳226上被發送至主機。RID信號248-300包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-300相關聯之讀取命令。資料246-300經指派300之一記憶體裝置RID號碼。
在若干實施例中,一讀取發送信號可為自低至高至低之脈衝式,或一發送命令可用於指示主機準備接收資料。脈衝式讀取發送信號可藉由主機定時以與在一共同通道上被發送至DIMM之其他信號協調,此等通常以一時脈邊緣捕獲,其中DIMM之一些可或可不使用本發明之協定。
圖2B繪示執行三個讀取操作之一實例。在圖2B之實例中,針對命令 之優先權可在命令被發送至NVDIMM之後被改變。在圖2B中,一第一啟動命令242-100、一第一讀取命令244-100、一第二啟動命令242-200、一第二讀取命令244-200、一第三啟動命令242-300及一第三讀取命令244-300自主機被發送至NVDIMM。主機可將一主機讀取識別(RID)號碼指派至讀取命令。主機RID號碼可經包含於讀取命令中,並在將讀取命令自主機發送至NVDIMM時傳輸至NVDIMM。在圖2A中,第一讀取命令244-100可經指派100之一主機RID,第二讀取命令244-200可經指派200之一主機RID,且第三讀取命令244-300可經指派300之一主機RID。
在本發明之協定中,讀取命令可相繼地被發送而不考慮時序參數。此使命令較快被發送,而不必將命令間隔開(歸因於時脈時序參數),因此NVDIMM可較快開始處理命令,此可減少對命令之延遲。
在圖2B中,一旦NVDIMM已接收到讀取命令244-100、244-200及244-300,NVDIMM可判定與命令相關聯之優先權。NVDIMM可檢測暫存器或若干暫存器以定位與命令244-100、244-200及244-300之RID相關聯之優先權。可在命令自主機被發送至NVDIMM之前及/或之後程式化暫存器。在圖2B中描述之實例中,暫存器在命令被發送至NVDIMM之前被程式化並接著在命令已經被發送至NVDIMM之後被更新。例如,暫存器首先經程式化以將高優先權指派至具有RID 100至199之命令,將中優先權指派至具有RID 200至299之命令,及將低優先權指派至具有RID 300至399之命令。一旦命令已被發送至NVDIMM,暫存器就經更新以將高優先權指派至具有RID 100至199及300至399之命令,且將中優先權指派至具有RID 200至299之命令。主機可更新暫存器以改變針對命令之優先權。主機可回應於(例如)處於佇列中達一臨限值時間段之一命令而更新優先 權。再者,主機可回應於針對(例如)與命令相關聯之資料具有一時間靈敏需求之主機而更新優先權。命令244-100及244-300將具有高優先權,並可在具有中及/或低優先權之命令之前被執行,且命令244-200將具有中優先權,一旦具有高優先權之所有命令已被執行就可被執行。
由於命令244-100可回應於具有高優先權而首先被執行,故NVDIMM可檢測NVDIMM之緩衝器及/或快取區並在NVDIMM之非揮發性記憶體中定位與讀取命令244-100相關聯之資料。一旦控制器定位資料並具有準備發送回主機之資料,NVDIMM控制器就可將一讀取就緒命令發送至主機。當一NVDIMM接收若干讀取命令時,NVDIMM控制器基於一暫存器或若干暫存器中之優先權資訊來返回與讀取命令相關聯之資料。例如,讀取命令包含一RID,且NVDIMM控制器基於命令之RID來定位將一優先權指派至讀取命令之一暫存器中之RID。
在圖2B中,讀取命令244-100可包含指示命令244-100將以高優先權返回之一RID。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與命令244-100相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與命令244-100相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,此係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接 腳224上發送與命令244-100相關聯之資料246-100。再者,當資料246-100被發送至主機時一讀取識別(RID)信號248-100在RID接腳226上被發送至主機。RID信號248-100包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-100相關聯之讀取命令。資料246-100經指派100之一記憶體裝置RID號碼。
在圖2B中,讀取命令244-300可包含指示命令244-300要以中優先權返回之一RID。由於命令244-100已被執行,且命令244-300係具有高優先權之剩餘命令,故可接著執行命令244-300。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與讀取命令244-300相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與讀取命令244-300相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,此係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接腳224上發送與讀取命令244-300相關聯之資料246-200。再者,當資料246-300被發送至主機時一讀取識別(RID)信號248-300在RID接腳226上被發送至主機。RID信號248-300包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-300相關聯之讀取命令。資料246-300經指派300之一記憶體裝置RID號碼。
在圖2B中,讀取命令244-200可包含指示命令244-300要以中優先權返回之一RID。由於命令244-100及244-300已被執行,且不存在具有高優先權之其他命令待執行,故可執行命令244-200。一讀取就緒指示符可藉由將一讀取就緒信號自低切換(例如,轉換)至高或自高切換(例如,轉換)至低被發送至主機,以指示與讀取命令244-200相關聯之資料準備被發送至主機。主機可藉由偵測讀取就緒信號之轉換而偵測讀取就緒指示符。回應於接收讀取就緒指示符,主機可將一讀取發送指示符發送至NVDIMM控制器,以指示主機準備接收與讀取命令244-200相關聯之資料。讀取發送指示符可藉由主機隨時被發送至NVDIMM控制器,而不考慮時序參數。當讀取發送命令被發送至NVDIMM控制器時主機可藉由時序來控制資料匯流排上之訊務。讀取發送指示符可包含將一讀取發送信號自低切換至高,此係由NVDIMM控制器偵測。NVDIMM控制器可回應於接收讀取發送指示符而在DQ+ECC接腳224上發送與讀取命令244-200相關聯之資料246-200。再者,當資料246-200被發送至主機時一讀取識別(RID)信號248-200在RID接腳226上被發送至主機。RID信號248-200包含藉由NVDIMM指派至資料塊之記憶體裝置RID號碼,並用於識別與被發送至主機之資料246-200相關聯之讀取命令。資料246-200經指派200之一記憶體裝置RID號碼。
圖3A至圖3D係根據本發明之若干實施例之若干暫存器之圖式。圖3A包含暫存器318,其將讀取識別(RID)號碼之範圍指派至優先權資訊。在圖3A中,暫存器318將RID範圍350-1(RID 0:99)指派至低優先權352-1,將RID範圍350-2(RID 100:199)指派至高優先權352-3,將RID範圍350-3(RID 200:299)指派至中優先權352-2,將RID範圍350-4(RID 300: 399)指派至低優先權352-1,且將RID範圍350-M(RID MaxRID-99:MaxRID)指派至低優先權352-1。在若干實施例中,可使用任何尺寸之若干暫存器之任一者以將優先權指派至RID。
圖3B包含將讀取識別(RID)編號之範圍指派至優先權資訊之暫存器318-1、......、318-M。在圖3B中,暫存器318-1將RID範圍350-1(RID 0:99)指派至低優先權352-1,暫存器318-2將RID範圍350-2(RID 100:199)指派至高優先權352-3,暫存器318-3將RID範圍350-3(RID 200:299)指派至中優先權352-2,暫存器318-4將RID範圍350-4(RID 300:399)指派至低優先權352-1,且暫存器318-M將RID範圍350-M(RID MaxRID-99:MaxRID)指派至低優先權352-1。可更新暫存器318-1、......、318-M以改變與其相關聯之RID範圍。再者,可更新暫存器318-1、......、318-M以改變與其相關聯之優先權資訊。
在圖3C中,暫存器318-1、......、318-M全部可經指派相同優先權資訊(諸如(例如)高優先權352-3)。當RID範圍之全部經指派相同優先權資訊時,執行命令而不考慮優先權。當主機不期望執行具有優先權之命令時可藉由主機將暫存器318-1、......、318-M更新成全部具有相同優先權。
圖3D包含將優先權資訊指派至RID之範圍之暫存器318-H、318-M及318-L。在圖3D中,暫存器318-H將高優先權指派至RID之範圍,暫存器318-M將中優先權指派至RID之範圍,且暫存器318-L將低優先權指派至RID之範圍。可更新暫存器318-H、318-M及318-L以改變RID範圍,使得與具有RID範圍中之RID之命令相關聯之優先權被更新。在圖3D中,暫存器318-H將高優先權指派至RID範圍,其中一較低RID 360為100,且一較高RID 362為199,一較低RID 360為400,且一較高RID 362為499,及一 較低RID 360為x,且一較高RID 362為x+99。暫存器318-M將中優先權指派至RID範圍,其中一較低RID 360為200,且一較高RID 362為299,一較低RID 360為y,且一較高RID 362為y+99,及一較低RID 360為z,且一較高RID 362為z+99。暫存器318-L將低優先權指派至RID範圍,其中一較低RID 360為0,且一較高RID 362為99,一較低RID 360為300,且一較高RID 362為399,及一較低RID 360為MaxRID-99,且一較高RID 362為MaxRID。與暫存器318-H、318-M及318-L相關聯之RID之範圍可包含可藉由主機及/或NVDIMM用以指派至命令之任何較低RID 360及/或較高RID 362。
儘管已在本文中圖解說明及描述特定實施例,但一般技術者將暸解,經計算以達成相同結果之一配置可取代展示之特定實施例。本發明旨在涵蓋本發明之各種實施例之調適或變化。應理解,已以一闡釋性方式而非一限制性方式做出上述描述。熟習此項技術者在檢視上述描述後將明白上述實施例之組合及未在本文中特別描述之其他實施例。本發明之各種實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍連同涵括此申請專利範圍之等效物之全部範圍判定本發明之各種實施例之範疇。
在前述[實施方式]中,出於簡化本發明之目的,各種特徵在一單一實施例中一起分組。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用多於在各請求項中明確敘述之特徵之一意圖。實情係,如以下申請專利範圍反映,發明標的物存在於少於一單一所揭示實施例之所有特徵。因此,以下申請專利範圍藉此併入[實施方式]中,其中各請求項獨立地作為一個別實施例。

Claims (22)

  1. 一種使用具有命令優先權之一記憶體協定之設備,其包括:一記憶體裝置;及一控制器,其經耦合至該記憶體裝置,經組態以:指派一讀取識別(RID)號碼至一命令,該RID號碼被用於判定該命令之執行優先權;及基於一暫存器中經指派至該RID號碼之該優先權來執行該命令。
  2. 如請求項1之設備,其中該記憶體裝置係一非揮發性雙行記憶體模組(NVDIMM)裝置。
  3. 如請求項1之設備,其中藉由重新程式化該暫存器而改變經指派至該RID號碼之該優先權。
  4. 如請求項1之設備,其中基於經指派至該RID號碼之該優先權在另一命令之前執行該命令,且其中該另一命令在該命令正被發送至該記憶體裝置以供執行之前被發送至該記憶體裝置以供執行。
  5. 如請求項1之設備,其中該暫存器包含RID號碼之複數個範圍,且其中RID號碼之複數個範圍之各者經指派優先權資訊。
  6. 如請求項1之設備,其中該控制器基於該暫存器中之該RID號碼及優先權資訊來判定何時執行該命令。
  7. 一種使用具有命令優先權之一記憶體協定之設備,其包括:一記憶體裝置;及一控制器,其經耦合至該記憶體裝置,經組態以:接收具有一第一讀取識別(RID)號碼之一第一命令、具有一第二RID號碼之一第二命令、及具有一第三RID號碼之一第三命令;及基於包含在一暫存器中之關於該RID號碼之優先權資訊來依序執行該第一命令、該第二命令、及該第三命令。
  8. 如請求項7之設備,其中該暫存器經程式化至針對包含該第一RID之RID之一第一範圍之高優先權、針對包含該第二RID之RID之一第二範圍之中優先權、及針對包含該第三RID之RID之一第三範圍之一低優先權。
  9. 如請求項8之設備,其中基於經指派至該第一RID之該高優先權來首先執行該第一命令,基於經指派至該第二RID之該中優先權來其次執行該第二命令,及基於經指派至該第三RID之該低優先權來再其次執行該第三命令。
  10. 如請求項7之設備,其中該暫存器經程式化使得RID之一第一範圍、RID之一第二範圍及RID之一第三範圍全部具有相同優先級,且其中該控制器執行該第一命令、該第二命令、及該第三命令而未基於該暫存器中之該優先權資訊來排定優先命令。
  11. 一種使用具有命令優先權之一記憶體協定之設備,其包括:一記憶體裝置;及一控制器,其經耦合至該記憶體裝置,經組態以:程式化複數個暫存器,其中該複數個暫存器之各者經指派讀取識別(RID)號碼之範圍及優先權資訊,其中該RID號碼被用於判定複數個命令之執行優先權;基於該複數個暫存器中之該優先權資訊來執行該複數個命令。
  12. 如請求項11之設備,其中該複數個暫存器可經重新程式化以改變經指派至該等暫存器之該特定優先權資訊。
  13. 如請求項11之設備,其中該複數個暫存器可經重新程式化以改變經指派至該等暫存器之該等RID號碼之範圍。
  14. 一種使用具有命令優先權之一記憶體協定之方法,其包括:自一主機接收複數個命令以在一記憶體裝置上執行;指派一讀取識別(RID)號碼至該複數個命令,該RID號碼被用於判定該複數個命令之執行優先權;及基於一暫存器中之優先權資訊來執行該複數個命令。
  15. 如請求項14之方法,其中執行該複數個命令包含定位該暫存器中之優先權資訊,其中讀取識別(RID)號碼之複數個範圍經各自指派優先權資訊。
  16. 如請求項14之方法,其進一步包含程式化該暫存器以將優先權資訊指派至讀取識別(RID)號碼之複數個範圍。
  17. 如請求項14之方法,其中執行該複數個命令包含在執行其他命令之前執行具有高優先權之命令。
  18. 如請求項14之方法,其中執行該複數個命令包含回應於該暫存器將共用優先權資訊指派至與該複數個命令相關聯之讀取識別(RID)號碼來執行命令而不考慮優先權。
  19. 如請求項14之方法,其進一步包含重新程式化該暫存器以在已執行該複數個命令之一部分之後將優先權資訊指派至讀取識別(RID)號碼之複數個範圍。
  20. 一種使用具有命令優先權之一記憶體協定之方法,其包括:程式化複數個暫存器,其中該複數個暫存器之各者經指派讀取識別(RID)號碼之特定範圍及優先權資訊,其中該RID號碼被用於判定複數個命令之執行優先權。
  21. 如請求項20之方法,其進一步包含基於該複數個暫存器之該複數個命令之RID號碼及該優先權資訊來判定首先要執行之該複數個命令之一第一部分。
  22. 如請求項21之方法,其中包含基於該複數個暫存器之該複數個命令之RID號碼及該優先權資訊來判定要在該第一部分之後執行之該複數個命令之一第二部分。
TW107102386A 2017-01-24 2018-01-23 使用具有命令優先權之記憶體協定之設備及方法 TWI661308B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762449689P 2017-01-24 2017-01-24
US62/449,689 2017-01-24
US15/613,408 US11003602B2 (en) 2017-01-24 2017-06-05 Memory protocol with command priority
US15/613,408 2017-06-05

Publications (2)

Publication Number Publication Date
TW201833786A TW201833786A (zh) 2018-09-16
TWI661308B true TWI661308B (zh) 2019-06-01

Family

ID=62906270

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107102386A TWI661308B (zh) 2017-01-24 2018-01-23 使用具有命令優先權之記憶體協定之設備及方法

Country Status (6)

Country Link
US (2) US11003602B2 (zh)
EP (1) EP3574410A4 (zh)
KR (1) KR102307229B1 (zh)
CN (1) CN110214316A (zh)
TW (1) TWI661308B (zh)
WO (1) WO2018140301A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022098356A1 (en) * 2020-11-05 2022-05-12 Google Llc Memory-request priority up-leveling
US11404095B1 (en) * 2021-01-21 2022-08-02 Micron Technology, Inc. Reduced pin status register

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160320A1 (en) * 2004-01-08 2005-07-21 International Business Machines Corporation Method for verification of command processing in a computer system design having a multiple priority command queue
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US20130060981A1 (en) * 2011-09-06 2013-03-07 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5452311A (en) 1992-10-30 1995-09-19 Intel Corporation Method and apparatus to improve read reliability in semiconductor memories
US5574944A (en) 1993-12-15 1996-11-12 Convex Computer Corporation System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context
US5774683A (en) 1996-10-21 1998-06-30 Advanced Micro Devices, Inc. Interconnect bus configured to implement multiple transfer protocols
US5937423A (en) 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6832280B2 (en) * 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller
US6738831B2 (en) 2001-12-12 2004-05-18 Intel Corporation Command ordering
US6941428B2 (en) * 2002-09-25 2005-09-06 International Business Machines Corporation Memory controller optimization
US6842821B2 (en) * 2002-12-02 2005-01-11 Lsi Logic Corporation DDR SDRAM memory controller with multiple dependency request architecture and intelligent requestor interface
US7308524B2 (en) 2003-01-13 2007-12-11 Silicon Pipe, Inc Memory chain
US7139878B2 (en) 2003-06-20 2006-11-21 Freescale Semiconductor, Inc. Method and apparatus for dynamic prefetch buffer configuration and replacement
JP4895183B2 (ja) * 2006-07-21 2012-03-14 キヤノン株式会社 メモリコントローラ
US7711889B2 (en) 2006-07-31 2010-05-04 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US8074022B2 (en) 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US20090276556A1 (en) 2006-10-04 2009-11-05 Mediatek Inc. Memory controller and method for writing a data packet to or reading a data packet from a memory
US7904644B1 (en) 2006-11-01 2011-03-08 Marvell International Ltd. Disk channel system with sector request queue
US20080162735A1 (en) * 2006-12-29 2008-07-03 Doug Voigt Methods and systems for prioritizing input/outputs to storage devices
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
KR100904758B1 (ko) 2007-02-08 2009-06-29 삼성전자주식회사 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법
US7924521B1 (en) 2007-04-10 2011-04-12 Marvell International Ltd. Data wedge format table synchronization
US7996599B2 (en) 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8006047B2 (en) 2007-06-27 2011-08-23 Hitachi Global Storage Technologies Netherlands B.V. Storage device with write barrier sensitive write commands and write barrier insensitive commands
TW200929237A (en) 2007-12-21 2009-07-01 Winbond Electronics Corp Memory architecture and configuration method thereof
US20090327535A1 (en) 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
US8332608B2 (en) * 2008-09-19 2012-12-11 Mediatek Inc. Method of enhancing command executing performance of disc drive
KR101525872B1 (ko) * 2008-11-06 2015-06-04 삼성전자주식회사 반도체 메모리 시스템의 동작 방법
EP2394221A4 (en) 2009-02-09 2012-11-21 Rambus Inc NON-VOLATILE MEMORY WITH MULTIPLE LEVELS WITH SYNCHRONIZED CONTROL
US7983107B2 (en) 2009-02-11 2011-07-19 Stec, Inc. Flash backed DRAM module with a selectable number of flash chips
US8285917B2 (en) 2009-03-26 2012-10-09 Scaleo Chip Apparatus for enhancing flash memory access
CN101908368A (zh) * 2009-06-04 2010-12-08 威刚科技(苏州)有限公司 电子存储装置及其操作方法
WO2011043012A1 (ja) 2009-10-05 2011-04-14 パナソニック株式会社 不揮発性半導体記憶装置、信号処理システム、及び信号処理システムの制御方法、並びに不揮発性半導体記憶装置の書き換え方法
US8499106B2 (en) 2010-06-24 2013-07-30 Arm Limited Buffering of a data stream
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8949502B2 (en) 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
JP5296041B2 (ja) * 2010-12-15 2013-09-25 株式会社東芝 メモリシステムおよびメモリシステムの制御方法
CN103403681B (zh) 2010-12-20 2018-09-18 马维尔国际贸易有限公司 描述符调度器
JP2012234363A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム
US9208109B2 (en) * 2011-06-01 2015-12-08 Altera Corporation Memory controllers with dynamic port priority assignment capabilities
US8799557B1 (en) 2011-10-13 2014-08-05 Netapp, Inc. System and method for non-volatile random access memory emulation
KR101903095B1 (ko) * 2011-11-21 2018-10-02 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
KR101366960B1 (ko) * 2011-12-23 2014-02-25 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
JP6053384B2 (ja) * 2012-08-08 2016-12-27 キヤノン株式会社 情報処理装置、メモリ制御装置およびその制御方法
US9122401B2 (en) 2012-08-23 2015-09-01 Apple Inc. Efficient enforcement of command execution order in solid state drives
US9250814B2 (en) 2013-02-11 2016-02-02 Apple Inc. Command order re-sequencing in non-volatile memory
US9563579B2 (en) * 2013-02-28 2017-02-07 Intel Corporation Method, apparatus, system for representing, specifying and using deadlines
US8595427B1 (en) 2013-03-08 2013-11-26 Avalanche Technology, Inc. Non-volatile block storage module using magnetic random access memory (MRAM)
US9128634B1 (en) 2013-03-11 2015-09-08 Marvell International Ltd. Systems and methods of packed command management for non-volatile storage devices
US9741442B2 (en) 2013-03-12 2017-08-22 Sandisk Technologies Llc System and method of reading data from memory concurrently with sending write data to the memory
JP6146128B2 (ja) * 2013-05-20 2017-06-14 ヤマハ株式会社 データ処理装置
CN105339917A (zh) 2013-05-30 2016-02-17 惠普发展公司,有限责任合伙企业 访问存储器中数据的分离的存储器控制器
US20150067291A1 (en) * 2013-08-30 2015-03-05 Kabushiki Kaisha Toshiba Controller, memory system, and method
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9454310B2 (en) 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
WO2015126518A2 (en) * 2014-02-20 2015-08-27 Rambus Inc. High performance persistent memory
US20150279463A1 (en) 2014-03-31 2015-10-01 Dell Products, L.P. Adjustable non-volatile memory regions of dram-based memory module
KR102249416B1 (ko) 2014-06-11 2021-05-07 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 구동 방법
US9870318B2 (en) 2014-07-23 2018-01-16 Advanced Micro Devices, Inc. Technique to improve performance of memory copies and stores
US9489239B2 (en) 2014-08-08 2016-11-08 PernixData, Inc. Systems and methods to manage tiered cache data storage
US9721660B2 (en) 2014-10-24 2017-08-01 Microsoft Technology Licensing, Llc Configurable volatile memory without a dedicated power source for detecting a data save trigger condition
US20160232112A1 (en) 2015-02-06 2016-08-11 Futurewei Technologies, Inc. Unified Memory Bus and Method to Operate the Unified Memory Bus
US20170160929A1 (en) * 2015-12-02 2017-06-08 Hewlett Packard Enterprise Development Lp In-order execution of commands received via a networking fabric
US10613763B2 (en) 2016-04-21 2020-04-07 Adesto Technologies Corporation Memory device having multiple read buffers for read latency reduction
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10261907B2 (en) 2017-03-09 2019-04-16 International Business Machines Corporation Caching data in a redundant array of independent disks (RAID) storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US20050160320A1 (en) * 2004-01-08 2005-07-21 International Business Machines Corporation Method for verification of command processing in a computer system design having a multiple priority command queue
US20130060981A1 (en) * 2011-09-06 2013-03-07 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems

Also Published As

Publication number Publication date
US11003602B2 (en) 2021-05-11
US11586566B2 (en) 2023-02-21
CN110214316A (zh) 2019-09-06
KR20190101494A (ko) 2019-08-30
KR102307229B1 (ko) 2021-10-01
TW201833786A (zh) 2018-09-16
EP3574410A1 (en) 2019-12-04
US20210263867A1 (en) 2021-08-26
EP3574410A4 (en) 2020-08-26
US20180210847A1 (en) 2018-07-26
WO2018140301A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
US10678441B2 (en) Non-deterministic memory protocol
TWI662408B (zh) 用於記憶體協定之設備
TWI668703B (zh) 具有可程式化緩衝器及快取大小的記憶體協定
TWI660367B (zh) 記憶體控制器
US11586566B2 (en) Memory protocol with command priority
KR102306585B1 (ko) 거래 식별
TWI661298B (zh) 記憶體協定