TWI662408B - 用於記憶體協定之設備 - Google Patents
用於記憶體協定之設備 Download PDFInfo
- Publication number
- TWI662408B TWI662408B TW106118556A TW106118556A TWI662408B TW I662408 B TWI662408 B TW I662408B TW 106118556 A TW106118556 A TW 106118556A TW 106118556 A TW106118556 A TW 106118556A TW I662408 B TWI662408 B TW I662408B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- memory
- read
- buffer
- command
- Prior art date
Links
Classifications
-
- 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/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Memory System (AREA)
- Read Only Memory (AREA)
- Communication Control (AREA)
Abstract
本發明提供包含與一記憶體協定有關之設備及方法。一實例設備可使用一區塊組態暫存器基於自一主機接收之命令對該記憶體裝置之若干區塊緩衝器執行操作,其中該等操作可自該若干區塊緩衝器讀取資料且將資料寫入至該記憶體裝置上之該若干區塊緩衝器。
Description
本發明大體上係關於記憶體裝置,且更特定言之,本發明係關於用於一記憶體協定之設備及方法。
記憶體裝置通常提供為電腦或其他電子裝置中之內部電路、半導體電路、積體電路。存在諸多不同類型記憶體,包含揮發性記憶體及非揮發性記憶體。揮發性記憶體可需要電力以維持其之資料,且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)等等。非揮發性記憶體可藉由在未被供電時保持所儲存資料來提供持久性資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化唯讀記憶體(EEPROM)、可擦除可程式化唯讀記憶體(EPROM)及電阻可變記憶體(諸如,相變隨機存取記憶體(PCRAM)、電阻性隨機存取記憶體(RRAM)及磁阻性隨機存取記憶體(MRAM))等等。
記憶體亦用作寬廣範圍之電子應用之揮發性及非揮發性資料儲存器。非揮發性記憶體可用於(例如)個人電腦、可攜式記憶體棒、數位相機、蜂巢式電話、可攜式音樂播放器(諸如MP3播放器)、電影播放器及其他電子裝置中。記憶體單元可經配置為陣列,其中該等陣列用於記憶體裝
置中。
記憶體可為計算裝置中使用之一記憶體模組(例如,雙列直插記憶體模組(DIMM))之部分。記憶體模組可包含揮發性記憶體(諸如DRAM)及/或非揮發性記憶體(諸如快閃記憶體或RRAM)。DIMM可用作計算系統中之一主記憶體。
100‧‧‧運算系統
102‧‧‧主機
104-1‧‧‧記憶體系統
104-N‧‧‧記憶體系統
108‧‧‧主機控制器
110-1‧‧‧記憶體裝置
110-2‧‧‧記憶體裝置
110-X‧‧‧記憶體裝置
110-Y‧‧‧記憶體裝置
112-1‧‧‧通道
112-N‧‧‧通道
114‧‧‧控制器
116‧‧‧緩衝器
118‧‧‧暫存器
230-0‧‧‧區塊緩衝器位址暫存器
230-R‧‧‧區塊緩衝器位址暫存器
231-0‧‧‧狀態資訊
231-R‧‧‧狀態資訊
233-0‧‧‧緩衝器最終位址
233-R‧‧‧緩衝器最終位址
235-0‧‧‧緩衝器起始位址
235-R‧‧‧緩衝器起始位址
232-0‧‧‧目標位址暫存器
232-R‧‧‧目標位址暫存器
234‧‧‧命令
302‧‧‧主機
304‧‧‧記憶體裝置
344‧‧‧命令
345‧‧‧讀取識別碼
402‧‧‧主機
404‧‧‧記憶體裝置
444-1‧‧‧讀取命令
444-2‧‧‧讀取命令
444-3‧‧‧讀取命令
444-4‧‧‧讀取命令
444-5‧‧‧讀取命令
444-6‧‧‧讀取命令
446‧‧‧阻障命令
448-1‧‧‧讀取識別
448-2‧‧‧讀取識別
448-3‧‧‧讀取識別(RID3)
448-4‧‧‧讀取識別
448-5‧‧‧讀取識別
448-6‧‧‧讀取識別
502‧‧‧主機
504‧‧‧記憶體裝置
544‧‧‧讀取命令
562‧‧‧寫入命令
652-1‧‧‧讀取項
652-2‧‧‧讀取項
654-1‧‧‧寫入項指示
654-2‧‧‧寫入項/寫入項指示
656-1‧‧‧讀取緩衝器/讀取項
656-2‧‧‧讀取緩衝器
658-1‧‧‧寫入緩衝器/寫入項
658-2‧‧‧寫入緩衝器
圖1係根據本發明之若干實施例之呈包含一記憶體系統之一運算系統之形式之一設備之一方塊圖。
圖2A至圖2C繪示根據本發明之若干實施例之暫存器及與一區塊緩衝器相關聯之命令。
圖3繪示根據本發明之若干實施例之包含讀取增量資訊之一讀取命令。
圖4繪示根據本發明之若干實施例之若干讀取命令及一阻障命令。
圖5繪示根據本發明之若干實施例之一讀取命令及包含叢發長度資訊之一寫入命令。
圖6A至圖6D繪示根據本發明之若干實施例之一暫存器以指示一讀取緩衝器之一大小及寫入緩衝器之一大小。
本發明包含與記憶體協定相關之設備及方法。一實例設備可基於使用一區塊組態暫存器自一主機接收之命令對記憶體裝置上之若干區塊緩衝器執行操作,其中該等操作可自該若干區塊緩衝器讀取資料及將資料寫入至記憶體裝置上之該若干區塊緩衝器。
在本發明之一或多項實施例中,一區塊組態暫存器可用於界定一記憶體裝置上之若干區塊緩衝器。一主機可直接存取該等區塊緩衝器且對該等區塊緩衝器執行讀取及/或寫入命令。區塊組態暫存器可包含關聯之區塊緩衝器暫存器及目標位址暫存器對,其中該等區塊緩衝器暫存器各包含用於各區塊緩衝器之一起始位址及一最終位址且該等目標位址暫存器各包含與各區塊緩衝器相關聯之一記憶體陣列中之一目標位址。主機可將讀取及/或寫入命令發送至記憶體裝置以自與起始位址、最終位址及目標位址相關聯之該等區塊緩衝器讀取及/或寫入資料。區塊組態暫存器亦可包含一狀態暫存器,其包含用於區塊緩衝器中之資料之狀態資訊,該等區塊緩衝器當藉由記憶體裝置接收及執行讀取及/或寫入命令時藉由主機更新。
在本發明之一或多項實施例中,該記憶體協定可用於執行具有確定性及/或非確定性時序之操作。該記憶體協定可包含發送具有一讀取增量值之讀取命令,其中該讀取增量值將一值指示給該控制器,藉由該值增加用於將一記憶體裝置讀取識別碼指派至讀取命令之一計數器。該記憶體可包含自一主機發送一阻障命令,其中該阻障命令指示藉由記憶體裝置先前接收之命令在藉由記憶體裝置在阻障命令後接收之命令之前執行。
在一或多項實施例中,該記憶體協定可包含發送具有指示用於該記憶體裝置之一叢發長度之一叢發長度訊號之命令。該叢發長度訊號可基於用於命令之請求之一大小及/或基於將對其執行命令之一類型記憶體裝置。該記憶體協定可包含發送命令以設定一緩衝器暫存器,該緩衝器暫存器組態具有第一特定大小之一讀取緩衝器部分及第二特定大小之一寫入緩衝器部分之一緩衝器。
在本發明之以下詳細描述中,參考隨附圖式,該等附圖形成本發明
之一部分且其中以繪示之方式展示本發明之若干實施例可如何實踐。該等實施例經充分詳細地描述以使一般技術者能夠實踐本發明之該等實施例,且應瞭解可利用其他實施例且可在不脫離本發明之範疇之情況下作出程序改變、電改變及/或結構改變。如本文中所使用,指示符「N」指示本發明之若干實施例中可包含若干如此指示之特定特徵。
如本文中所使用,「若干」某物可指代一或多個此等事物。例如,若干記憶體裝置可指代一或多個記憶體裝置。此外,如本文中所使用之指示符「N」(尤其相對於圖式中之參考數字)指示本發明之若干實施例中可包含若干如此指示之特定特徵。
本文中之圖式遵循一編號慣例,其中第一數字或該等數字對應於圖式編號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字而識別不同圖式之間之類似元件或組件。如應瞭解,可添加、交換及/或消除本文中在各種實施例中所展示之元件以便提供本發明之若干額外實施例。另外,圖中所提供元件之比例及相對尺寸意欲繪示本發明之實施例,而不應被視為意指限制。
圖1係根據本發明之一或多項實施例之包含呈若干記憶體系統104-1...104-N之形式之一設備之一運算系統100之一功能方塊圖。如本文中所使用,一「設備」可指代(但不限於)各種結構或結構之組合之任一者,諸如一電路或電路系統、一晶粒或若干晶粒、一模組或若干模組、一裝置或若干裝置、一系統或若干系統。在圖1中所繪示之實施例中,記憶體系統104-1...104-N可包含一或多個記憶體裝置110-1、...、110-X、110-Y。在一或多項實施例中,記憶體裝置110-1、...、110-X、110-Y可為雙列直插記憶體模組(DIMM)。DIMM可包含揮發性記憶體及/或非揮發性記憶
體,分別諸如一NVDIMM及DRAM DIMM。在若干實施例中,記憶體系統104-1、...、104-N可包含一多晶片裝置。一多晶片裝置可包含若干不同記憶體類型及/或記憶體模組。例如,一記憶體系統可包含任何類型之一模組上之非揮發性或揮發性記憶體。關於圖1至圖4之下文描述之該等實例將一DIMM用作記憶體模組,但本發明之該協定可用於其中記憶體可執行確定性及/或非確定性命令之任何記憶體系統上。圖1中,記憶體系統104-1經由通道112-1耦合至主機且可包含記憶體裝置110-1、...110-X且記憶體系統104-N經由通道112-N耦合至主機且可包含記憶體裝置110-1、...、110-Y。在此實例中,各記憶體裝置110-1、...、110-X、110-Y包含一控制器114。控制器114可自主機102接收命令且控制對一記憶體裝置執行該等命令。又,在若干實施例中,在一控制器及使用本發明之協定執行該等命令可內建於該記憶體裝置之情況下,本發明之協定可藉由一記憶體裝置(例如,一DIMM)實施。取決於記憶體裝置之類型,主機102可使用本發明之協定及/或一先前協定將命令發送至記憶體裝置110-1、...、110-X、110-Y。例如,主機可使用本發明之協定與一NVDIMM在相同通道(例如,通道112-1)上通信且一先前協定與皆處於相同記憶體系統上之一DRAM DIMM通信。
如圖1中所繪示,一主機102可耦合至記憶體系統104-1...104-N。在若干實施例中,各記憶體系統104-1...104-N可經由一通道耦合至主機102。在圖1中,記憶體系統104-1經由通道112-1耦合至主機102且記憶體系統104-N經由通道112-N耦合至主機102。主機102可為一膝上型電腦、個人電腦、數位相機、數位記錄及播放裝置、行動電話、PDA、記憶卡讀取器、介面集線器、等等主機系統且可包含一記憶體存取裝置(例如,一
處理器)。熟習本項技術者將瞭解「一處理器」可意指一或多個處理器,諸如一並行處理系統、若干協同處理器等。
主機102包含一主機控制器108以與記憶體系統104-1...104-N通信。主機控制器108可經由通道112-1...112-N將命令發送至記憶體裝置110-1、...、110-X、110-Y。主機控制器108可與記憶體裝置110-1、...、110-X、110-Y及/或記憶體裝置110-1、...、110-X、110-Y之各者上之控制器114通信以讀取、寫入及抹除資料等等操作。一實體主機介面可提供用於在記憶體系統104-1...104-N與具有用於實體主機介面之相容接納器之主機102之間傳遞控制、位址、資料及其他訊號之一介面。該等訊號可(例如)經由通道112-1...112-N在102與若干匯流排(諸如一資料匯流排及/或一位址匯流排)上之記憶體裝置110-1、...、110-X、110-Y之間通信。
主機控制器108及/或一記憶體裝置上之控制器114可包含控制電路(例如硬體、韌體及/或軟體)。在一或多項實施例中,主機控制器108及/或控制器114可為耦合至包含一實體介面之一印刷電路板之一特定應用積體電路(ASIC)。又,各記憶體裝置110-1、...、110-X、110-Y可包含揮發性及/或非揮發性記憶體之一緩衝器116及一暫存器118。緩衝器116可用於緩衝執行讀取命令及/或寫入命令期間使用之資料。緩衝器116可分成一寫入緩衝器、一讀取緩衝器及若干區塊緩衝器。專用於寫入緩衝器之空間量及專用於讀取緩衝器之空間量可藉由主機控制器108程式化若干暫存器118而控制。主機可基於將發送至一特定記憶體裝置之命令之類型控制緩衝器116中專用於寫入緩衝器及讀取緩衝器之空間量。在若干實施例中,各記憶體裝置110-1、...、110-X、110-Y可具有一固定寫入緩衝器大小及/或一固定讀取緩衝器大小。緩衝器116可包含若干區塊緩衝器。該若干區塊
緩衝器之各者之大小可藉由該主機程式化若干暫存器118而控制。暫存器118可經程式化以設定各區塊暫存器之起始位址及最終位址亦及在與各區塊暫存器相關聯之記憶體陣列中之一目標位址。主機可藉由將命令發送至記憶體裝置110-1、...、110-X、110-Y而將資料讀取及/或寫入至區塊暫存器。
記憶體裝置110-1、...、110-X、110-Y可提供用於記憶體系統之主記憶體或可用作整個記憶體系統中之額外記憶體或儲存器。各記憶體裝置110-1、...、110-X、110-Y可包含一或多個記憶體單元陣列,例如非揮發性記憶體單元。例如,該等陣列可為具有一NAND架構之快閃陣列。實施例不受限於一特定類型之記憶體裝置。舉例而言,記憶體裝置可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快閃記憶體等等。
圖1之實施例可包含未繪示之額外記憶體電路以不模糊本發明之實施例。例如,記憶體系統104-1...104-N可包含位址電路以鎖存經由I/O連接透過I/O電路提供之位址訊號。位址訊號可藉由一列解碼器及一行解碼器接收及解碼以存取記憶體裝置110-1、...、110-N。熟習本項技術者將瞭解位址輸入連接之數目可取決於記憶體裝置110-1、...、101-X、110-Y之密度及架構。
圖2A至圖2C繪示根據本發明之若干實施例之暫存器及與一區塊緩衝器相關聯之命令。在若干實施例中,一記憶體裝置可包含可藉由主機定址之若干區塊緩衝器,其中該主機可發送命令以對該等區塊緩衝器執行讀取及/或寫入命令。該等區塊緩衝器之大小可藉由可藉由主機程式化之區塊組態暫存器而指示。該等區塊緩衝器之大小可經程式化以匹配記憶體裝置之記憶體陣列中之區塊之大小。圖2A繪示該等區塊組態暫存器之一區塊
緩衝器位址暫存器230-0、...、230-R且圖2B繪示區塊組態暫存器之目標位址暫存器232-0、...、232-R。區塊組態暫存器包含關聯之區塊緩衝器位址暫存器及目標位址暫存器對。各區塊緩衝器位址暫存器與記憶體裝置之記憶體陣列中之一目標位址相關聯。當資料提交至記憶體時,寫入至已藉由對應區塊緩衝器暫存器中之資訊指示之一區塊緩衝器之資料將寫入至記憶體陣列中之關聯目標位址。自區塊緩衝器讀取之資料位於與區塊關聯之關聯目標位址且自該位址移動。各區塊緩衝器位址暫存器可包含一緩衝器起始位址235-0、...、235-R、一緩衝器最終位址233-0、...、233-R及狀態資訊231-0、...、231-R。用於各緩衝器之緩衝器起始位址及緩衝器最終位址可用於判定緩衝器之大小。狀態資訊可包含:一區塊緩衝器中是否存在有效資料;與一命令相關聯之資料是否已移動;及/或區塊緩衝器資料中是否存在一可恢復錯誤及/或致命錯誤之資訊指示。此亦可存在一狀態暫存器,其儲存用於各區塊緩衝器之狀態資訊使得僅該等狀態暫存器需要經讀取以判定一特定區塊緩衝器之狀態。
圖2C繪示用於執行一區塊緩衝器中之一操作之一命令234。命令234包含區塊緩衝器窗資訊、區塊緩衝器選擇資訊及區塊緩衝器位址資訊,其中:區塊緩衝器窗資訊指示將對一區塊緩衝器執行命令;區塊緩衝器選擇資訊指示區塊緩衝器將對何者執行該命令;區塊緩衝器位址資訊指示區塊緩衝器上與該命令相關聯之資料將寫入之位址及/或自何位址讀取。
圖3繪示根據本發明之若干實施例之包含讀取增量資訊之一讀取命令。圖3中,一讀取命令344可包含一讀取識別碼(RID)及讀取增量資訊(RID_INC)。讀取識別碼可用於識別命令。例如,一主機可將一特定讀取識別碼指派至一命令且將該命令發送至該記憶體裝置。該記憶體裝置可接
著將一讀取識別碼指派至該命令。該記憶體裝置可包含一計數器以持續追蹤指派至一命令之讀取識別碼。計數器在0處初始化且每當一讀取命令由記憶體裝置接收時計數器累加1。在用非確定性時序執行命令之記憶體裝置中,可藉由記憶體裝置以任何順序執行命令,因此計數器每次累加1可導致藉由主機指派至一特定命令之讀取識別碼不同於藉由記憶體裝置指派至特定命令之讀取識別碼。例如,主機及記憶體裝置可各自具有4個可用讀取識別碼以指派至讀取命令且在任何給定時間處任何給定讀取識別碼可僅為一次性的。當主機已將所有4個命令指派及發送至記憶體裝置但僅自記憶體裝置接收已執行第一、第二及第四命令之一指示時,則主機無法將第三識別碼指派至另一命令直至具有第三識別碼之命令已藉由記憶體裝置執行。該等第一及第二讀取識別碼可藉由主機再次使用,但該第三讀取識別碼不應藉由主機使用。讀取增量資訊可與讀取命令一起發送以指示該記憶體裝置應跳過一讀取識別碼。在以上實例中,讀取增量資訊可包含一讀取增量1,從而指示應跳過第三識別碼。一記憶體裝置藉由基於讀取增量資訊可累加識別碼以指派至一命令,使得藉由主機指派至一命令之下一個可用讀取識別碼亦將藉由該記憶體裝置指派至該命令。在圖3中,記憶體裝置304可自主機302接收命令344且將基於添加1之一讀取識別碼345及與讀取增量(RID_INC)資訊相關聯之值指派至藉由記憶體裝置304指派至一命令之最近讀取識別碼。
圖4繪示根據本發明之若干實施例之若干讀取命令及一阻障命令。在圖4中,一主機402可將讀取命令444-1、444-2及444-3及阻障命令446發送至一記憶體裝置404。阻障命令446可指示先於阻障命令446發送至記憶體裝置404之命令444-1、444-2及444-3在阻障命令446後發送至記憶體裝
置404之命令444-4、444-5及444-6之前執行。圖4中,指示讀取命令444-3已執行之讀取識別(RID3)448-3在阻障命令446經發送至記憶體裝置之前發送至主機。阻障命令446指示在任何後續命令之前執行讀取命令444-1及444-2。在將在讀取命令444-1及444-2後執行之阻障命令446後,主機將讀取命令444-4、444-5及444-6發送至記憶體裝置。記憶體裝置執行讀取命令444-1及444-2且發送讀取識別448-1及448-2。一旦阻障命令前發送至記憶體裝置之所有命令已執行,則阻障命令後發送至該記憶體裝置之該等命令可執行。因此,記憶體裝置執行讀取命令444-4、444-5、444-6且將讀取識別448-4、448-5及448-6發送至主機402。
在若干實施例中,阻障命令可施加至所有類型之命令、僅讀取命令、或僅寫入命令。例如,一讀取阻障命令可經發送以指示先於阻障命令發送之所有讀取命令將在阻障命令後發送之任何讀取命令前執行。當一記憶體裝置可以非確定性時序執行命令時,阻障命令可藉由一主機使用以控制執行命令之時序。
圖5繪示根據本發明之若干實施例之一讀取命令及包含叢發長度資訊之一寫入命令。在圖5中,一讀取命令544可包含一叢發長度指示且一寫入命令562可包含一叢發長度指示。叢發長度可經由讀取及/或寫入命令中之一指示藉由主機動態地改變。一叢發長度指示可藉由一主機502以任何類型之命令(包含一叢發長度指示命令)發送至一記憶體裝置504。叢發長度可基於與一命令、一類型之命令、其上將執行一命令之一類型之記憶體裝置相關聯之一定量之資料及是否期望延時或頻寬最佳化藉由主機而改變。
圖6A至圖6D繪示根據本發明之若干實施例之一暫存器以指示一讀取
緩衝器及寫入緩衝器之大小。在圖6A及圖6B中,一暫存器可經格式化以指示讀取項652-1及652-2之一數目及寫入項654-1及654-2之一數目。暫存器可定位於一記憶體裝置上且一主機可程式化該暫存器。暫存器中指示之讀取項652-1及652-2之數目及寫入項654-1及654-2之數目可用於控制一讀取緩衝器及一寫入緩衝器之一大小。例如,讀取項指示651-1可對應於具有一特定大小之一讀取緩衝器656-1且寫入項指示654-1可對應於具有一特定大小之一寫入緩衝器658-1。讀取緩衝器656-1之大小可小於寫入緩衝器658-1之大小。讀取項指示651-2可對應於具有一特定大小之一讀取緩衝器656-2且寫入項指示654-2可對應於具有一特定大小之一寫入緩衝器658-2。讀取緩衝器656-2之大小可大於寫入緩衝器658-1及讀取緩衝器656-1之大小。暫存器中之讀取項指示652及寫入項指示654可基於藉由主機發出之讀取命令及寫入命令之相對量而藉由主機更新。每當該等當前讀取項及/或該等寫入緩衝器項可藉由更新讀取及/或寫入指示而容納時,讀取項指示652及寫入項指示654可更新。
在若干實施例中,一緩衝器可包含讀取及寫入項兩者且一暫存器可經程式化以界定用於該緩衝器之讀取項之一臨限數目及用於該緩衝器之寫入項之一臨限數目。主機可追蹤緩衝器中之未處理讀取項及寫入項之數目以確保緩衝器不包含比讀取項之臨限數目及藉由暫存器界定之寫入項之臨限數目更多之項。暫存器可經更新以改變用於緩衝器之讀取項之臨限數目及用於緩衝器之寫入項之一臨限數目。
儘管已在本文中繪示及描述特定實施例,但一般技術者將暸解經計算以達成相同結果之一配置可取代展示之特定實施例。本發明旨在涵蓋本發明之各種實施例之調適或變化。應理解,已以一繪示性方式而非一限制
性方式做出上述描述。熟習此項技術者在審查上文描述後將明白未在本文中特別描述之上述實施例之組合及其他實施例。本發明之各種實施例之範疇包含其中使用上文結構及方法之其他應用。因此,應參考隨附發明申請專利範圍以及涵括此等發明申請專利範圍之等效物之全部範圍判定本發明之各種實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,各種特徵共同分組於一單一實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用多於在每一請求項中明確敘述之特徵之一意圖。實情係,如以下發明申請專利範圍反映,發明標的物可係基於少於一單一所揭示實施例之所有特徵。因此,以下發明申請專利範圍併入實施方式中,其中各請求項單獨作為一獨立實施例。
Claims (8)
- 一種記憶體設備,其包括:一記憶體裝置,其包括若干區塊緩衝器(a number of block buffers);及一主機控制器,其耦合至該記憶體裝置,該記憶體裝置經組態以:使用一區塊組態暫存器(configuration register)基於自一主機接收之命令對該記憶體裝置之該若干區塊緩衝器執行操作,其中基於一緩衝器起始位址及一緩衝器最終位址,該若干區塊緩衝器之一大小(aize)藉由該區塊組態暫存器以經程式化以匹配該記憶體裝置之一區塊之一大小,其中該區塊組態暫存器包括多個目標位址暫存器,其識別與該等操作相關聯之該記憶體裝置之資料之多個目標位址,其中該等目標位址暫存器與用於該若干區塊緩衝器之各者之該緩衝器起始位址及該緩衝器最終位址配對,且其中該等操作經執行以自該若干區塊緩衝器讀取資料及將資料寫入至該記憶體裝置上之該若干區塊緩衝器。
- 如請求項1之設備,其中該區塊組態暫存器包含一區塊緩衝器位址暫存器,該區塊緩衝器位址暫存器包含一起始位址、一最終位址及用於該若干區塊緩衝器之各者之狀態資訊。
- 如請求項1之設備,其中該區塊組態暫存器包含該等目標位址暫存器及一狀態暫存器,該等目標位址暫存器包含用於該若干區塊緩衝器之各者之一目標位址且該狀態暫存器包含用於該若干區塊緩衝器之各者之狀態資訊。
- 如請求項1之設備,其中該主機將命令發送至該控制器以程式化該區塊組態暫存器,該區塊組態暫存器設定用於該若干區塊緩衝器之各者之一起始位址、用於該若干區塊緩衝器之各者之一最終位址、及該記憶體裝置上之一記憶體單元陣列中之一對應目標位址。
- 如請求項4之設備,其中該主機將命令發送至該控制器以將資料寫入至該若干區塊緩衝器及自該若干區塊緩衝器讀取資料。
- 如請求項5之設備,其中該主機將命令發送至該控制器以將自該若干區塊緩衝器之資料之一部分提交至該記憶體單元陣列中之該等對應目標位址。
- 如請求項4之設備,其中自該記憶體單元陣列中之該對應目標位址之資料經寫入至該若干區塊緩衝器且藉由該主機自該若干區塊緩衝器讀取該資料。
- 如請求項4之設備,其中在完成命令之後更新用於該若干區塊緩衝器之狀態資訊。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662346201P | 2016-06-06 | 2016-06-06 | |
US62/346,201 | 2016-06-06 | ||
US15/182,821 | 2016-06-15 | ||
US15/182,821 US10534540B2 (en) | 2016-06-06 | 2016-06-15 | Memory protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201807575A TW201807575A (zh) | 2018-03-01 |
TWI662408B true TWI662408B (zh) | 2019-06-11 |
Family
ID=60483878
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108116191A TWI744632B (zh) | 2016-06-06 | 2017-06-05 | 半導體設備及在一記憶體裝置上執行操作之方法 |
TW106118556A TWI662408B (zh) | 2016-06-06 | 2017-06-05 | 用於記憶體協定之設備 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108116191A TWI744632B (zh) | 2016-06-06 | 2017-06-05 | 半導體設備及在一記憶體裝置上執行操作之方法 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10534540B2 (zh) |
EP (1) | EP3465449B1 (zh) |
KR (5) | KR102344768B1 (zh) |
CN (2) | CN109313620B (zh) |
TW (2) | TWI744632B (zh) |
WO (1) | WO2017213876A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152237B2 (en) | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
US11003602B2 (en) | 2017-01-24 | 2021-05-11 | Micron Technology, Inc. | Memory protocol with command priority |
KR102340094B1 (ko) * | 2017-03-31 | 2021-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10635613B2 (en) | 2017-04-11 | 2020-04-28 | Micron Technology, Inc. | Transaction identification |
JP2018205859A (ja) * | 2017-05-31 | 2018-12-27 | キヤノン株式会社 | メモリコントローラとその制御方法 |
US11132145B2 (en) | 2018-03-14 | 2021-09-28 | Apple Inc. | Techniques for reducing write amplification on solid state storage devices (SSDs) |
US11474741B1 (en) * | 2020-06-30 | 2022-10-18 | Amazon Technologies, Inc. | Storage device write barriers |
US20220206946A1 (en) * | 2020-12-28 | 2022-06-30 | Advanced Micro Devices, Inc. | Method and apparatus for managing a cache directory |
US20230376206A1 (en) * | 2021-03-19 | 2023-11-23 | Micron Technology, Inc. | Write booster buffer flush operation |
US11941291B2 (en) * | 2021-09-02 | 2024-03-26 | Micron Technology, Inc. | Memory sub-system command fencing |
Family Cites Families (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
JPH0561748A (ja) | 1991-09-02 | 1993-03-12 | Nippon Telegr & Teleph Corp <Ntt> | データベース・アクセスにおける同期確認の自動化方式 |
US5452311A (en) * | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
DE69300523T2 (de) * | 1993-11-26 | 1996-03-14 | Sgs Thomson Microelectronics | Prozessorschnittstellenschaltung zum Austausch von seriellen digitalen Daten mit einem Peripheriegerät. |
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 |
JP3435267B2 (ja) * | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
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 |
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 |
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 |
US7007099B1 (en) * | 1999-05-03 | 2006-02-28 | Lucent Technologies Inc. | High speed multi-port serial-to-PCI bus interface |
US6775790B2 (en) * | 2000-06-02 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Distributed fine-grained enhancements for distributed table driven I/O mapping |
US6609192B1 (en) * | 2000-06-06 | 2003-08-19 | International Business Machines Corporation | System and method for asynchronously overlapping storage barrier operations with old and new storage operations |
EP1215577B1 (en) | 2000-08-21 | 2012-02-22 | Texas Instruments Incorporated | Fault management and recovery based on task-ID |
FR2821478A1 (fr) * | 2001-02-23 | 2002-08-30 | St Microelectronics Sa | Procede et dispositif de lecture sequentielle d'une memoire avec saut d'adresse |
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 |
US6957308B1 (en) | 2002-07-11 | 2005-10-18 | Advanced Micro Devices, Inc. | DRAM supporting different burst-length accesses without changing the burst length setting in the mode register |
US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
JP3808837B2 (ja) * | 2003-03-11 | 2006-08-16 | 株式会社東芝 | キャッシュメモリーシステム |
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 |
US7139878B2 (en) | 2003-06-20 | 2006-11-21 | Freescale Semiconductor, Inc. | Method and apparatus for dynamic prefetch buffer configuration and replacement |
US7480754B2 (en) | 2003-06-27 | 2009-01-20 | Seagate Technology, Llc | Assignment of queue execution modes using tag values |
KR100557215B1 (ko) | 2003-08-19 | 2006-03-10 | 삼성전자주식회사 | 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법 |
KR100560773B1 (ko) * | 2003-10-09 | 2006-03-13 | 삼성전자주식회사 | 동작 모드의 재설정없이 버스트 길이를 제어할 수 있는반도체 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US7826614B1 (en) * | 2003-11-05 | 2010-11-02 | Globalfoundries Inc. | Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US7103803B2 (en) | 2004-01-08 | 2006-09-05 | International Business Machines Corporation | Method for verification of command processing in a computer system design having a multiple priority command queue |
US8082382B2 (en) | 2004-06-04 | 2011-12-20 | Micron Technology, Inc. | Memory device with user configurable density/performance |
US7519788B2 (en) * | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
US7536506B2 (en) | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US7243200B2 (en) * | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US7516247B2 (en) * | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
CA2625318C (en) * | 2006-01-05 | 2010-09-28 | X-Ray Flux Pty Ltd | Nickel flux composition |
US7574565B2 (en) * | 2006-01-13 | 2009-08-11 | Hitachi Global Storage Technologies Netherlands B.V. | Transforming flush queue command to memory barrier command in disk drive |
US7917676B2 (en) * | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
US7469329B2 (en) | 2006-03-30 | 2008-12-23 | International Business Machines Corporation | Methods for dynamically resizing memory pools |
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 |
US20080189501A1 (en) * | 2007-02-05 | 2008-08-07 | Irish John D | Methods and Apparatus for Issuing Commands on a Bus |
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 |
US7984202B2 (en) * | 2007-06-01 | 2011-07-19 | Qualcomm Incorporated | Device directed memory barriers |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US7899999B2 (en) | 2007-06-27 | 2011-03-01 | Microsoft Corporation | Handling falsely doomed parents of nested transactions |
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 |
US8438356B2 (en) * | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
US7870351B2 (en) | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US9513959B2 (en) | 2007-11-21 | 2016-12-06 | Arm Limited | Contention management for a hardware transactional memory |
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 |
JP4631948B2 (ja) * | 2008-08-13 | 2011-02-16 | 日本電気株式会社 | 情報処理装置及び順序保証方式 |
US8332608B2 (en) | 2008-09-19 | 2012-12-11 | Mediatek Inc. | Method of enhancing command executing performance of disc drive |
TW201013400A (en) | 2008-09-22 | 2010-04-01 | Promise Technology Inc | Memory control system, data recovery method and date reading method thereof |
KR101525872B1 (ko) | 2008-11-06 | 2015-06-04 | 삼성전자주식회사 | 반도체 메모리 시스템의 동작 방법 |
GB2465611B (en) * | 2008-11-25 | 2011-04-27 | British Broadcasting Corp | Interleaving or de-interleaving of data of variable rate |
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 |
US8352682B2 (en) * | 2009-05-26 | 2013-01-08 | Qualcomm Incorporated | Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system |
CN101908368A (zh) | 2009-06-04 | 2010-12-08 | 威刚科技(苏州)有限公司 | 电子存储装置及其操作方法 |
US8250332B2 (en) | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US9245371B2 (en) * | 2009-09-11 | 2016-01-26 | Nvidia Corporation | Global stores and atomic operations |
TWI454906B (zh) | 2009-09-24 | 2014-10-01 | Phison Electronics Corp | 資料讀取方法、快閃記憶體控制器與儲存系統 |
JPWO2011043012A1 (ja) * | 2009-10-05 | 2013-02-28 | パナソニック株式会社 | 不揮発性半導体記憶装置、信号処理システム、及び信号処理システムの制御方法、並びに不揮発性半導体記憶装置の書き換え方法 |
JP2011234308A (ja) | 2010-04-30 | 2011-11-17 | Toshiba Corp | 通信装置、この通信装置に搭載されるプログラマブルデバイス及びそのプログラム書き込み制御方法 |
US9104583B2 (en) | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
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 | 株式会社東芝 | メモリシステムおよびメモリシステムの制御方法 |
WO2012087971A2 (en) | 2010-12-20 | 2012-06-28 | Marvell World Trade Ltd. | Descriptor scheduler |
US9779020B2 (en) | 2011-02-08 | 2017-10-03 | Diablo Technologies Inc. | System and method for providing an address cache for memory map learning |
JP2012234363A (ja) | 2011-04-28 | 2012-11-29 | Toshiba Corp | メモリシステム |
US8560778B2 (en) | 2011-07-11 | 2013-10-15 | Memory Technologies Llc | Accessing data blocks with pre-fetch information |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8799557B1 (en) | 2011-10-13 | 2014-08-05 | Netapp, Inc. | System and method for non-volatile random access memory emulation |
US9558030B2 (en) * | 2011-11-09 | 2017-01-31 | Intel Corporation | Method, apparatus, and system to handle transactions received after a configuration change request |
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 |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9347254B2 (en) * | 2012-05-04 | 2016-05-24 | The Chamberlain Group, Inc. | Command priority levels for an access controller apparatus |
CN102789439B (zh) * | 2012-06-16 | 2016-02-10 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法与存储设备 |
US8930636B2 (en) * | 2012-07-20 | 2015-01-06 | Nvidia Corporation | Relaxed coherency between different caches |
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 |
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 |
US20140143476A1 (en) * | 2012-11-16 | 2014-05-22 | Rotem Sela | Usage of cache and write transaction information in a storage device |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
US9250814B2 (en) | 2013-02-11 | 2016-02-02 | Apple Inc. | Command order re-sequencing in non-volatile memory |
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 |
US20150378886A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
US9418010B2 (en) * | 2013-04-17 | 2016-08-16 | Apple Inc. | Global maintenance command protocol in a cache coherent system |
JP6146128B2 (ja) | 2013-05-20 | 2017-06-14 | ヤマハ株式会社 | データ処理装置 |
WO2014193376A1 (en) | 2013-05-30 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Separate memory controllers to access data in memory |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US10108539B2 (en) * | 2013-06-13 | 2018-10-23 | International Business Machines Corporation | Allocation of distributed data structures |
US9423959B2 (en) * | 2013-06-29 | 2016-08-23 | Intel Corporation | Method and apparatus for store durability and ordering in a persistent memory architecture |
TWI493455B (zh) | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
US20150033234A1 (en) * | 2013-07-23 | 2015-01-29 | Qualcomm Incorporated | Providing queue barriers when unsupported by an i/o protocol or target device |
US20150067291A1 (en) | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
WO2015099746A1 (en) | 2013-12-26 | 2015-07-02 | Intel Corporation | Data reorder during memory access |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9323610B2 (en) | 2014-01-30 | 2016-04-26 | Sandisk Technologies Inc. | Non-blocking commands |
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 |
KR102126760B1 (ko) | 2014-04-07 | 2020-06-25 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 구동 방법 |
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 |
US20160170767A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor |
US20160232112A1 (en) * | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
US20170024297A1 (en) | 2015-07-22 | 2017-01-26 | Kabushiki Kaisha Toshiba | Storage Device and Data Save Method |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US20170160929A1 (en) | 2015-12-02 | 2017-06-08 | Hewlett Packard Enterprise Development Lp | In-order execution of commands received via a networking fabric |
US9792051B2 (en) * | 2016-02-24 | 2017-10-17 | Samsung Electronics Co., Ltd. | System and method of application aware efficient IO scheduler |
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 |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10359955B2 (en) * | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
US10261907B2 (en) * | 2017-03-09 | 2019-04-16 | International Business Machines Corporation | Caching data in a redundant array of independent disks (RAID) storage system |
US11194524B2 (en) * | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US10691619B1 (en) * | 2017-10-18 | 2020-06-23 | Google Llc | Combined integrity protection, encryption and authentication |
CN110033799A (zh) * | 2018-01-12 | 2019-07-19 | 三星电子株式会社 | 基于屏障命令按顺序存储数据的存储设备 |
US11016890B2 (en) * | 2018-02-05 | 2021-05-25 | Micron Technology, Inc. | CPU cache flushing to persistent memory |
US10613983B2 (en) * | 2018-03-20 | 2020-04-07 | Advanced Micro Devices, Inc. | Prefetcher based speculative dynamic random-access memory read request technique |
US10671486B2 (en) * | 2018-07-25 | 2020-06-02 | International Business Machines Corporation | Flashcopy tracking for storage optimization |
-
2016
- 2016-06-15 US US15/182,821 patent/US10534540B2/en active Active
-
2017
- 2017-05-25 KR KR1020217028132A patent/KR102344768B1/ko active IP Right Grant
- 2017-05-25 KR KR1020207033373A patent/KR102299721B1/ko active IP Right Grant
- 2017-05-25 CN CN201780034967.3A patent/CN109313620B/zh active Active
- 2017-05-25 EP EP17810712.4A patent/EP3465449B1/en active Active
- 2017-05-25 KR KR1020187037846A patent/KR102183016B1/ko active IP Right Grant
- 2017-05-25 CN CN202211271961.7A patent/CN115525587A/zh not_active Withdrawn
- 2017-05-25 KR KR1020227030944A patent/KR20220127374A/ko not_active Application Discontinuation
- 2017-05-25 KR KR1020217042417A patent/KR102442495B1/ko active IP Right Grant
- 2017-05-25 WO PCT/US2017/034487 patent/WO2017213876A1/en unknown
- 2017-06-05 TW TW108116191A patent/TWI744632B/zh active
- 2017-06-05 TW TW106118556A patent/TWI662408B/zh active
-
2019
- 2019-12-18 US US16/719,268 patent/US11340787B2/en active Active
-
2022
- 2022-05-20 US US17/749,801 patent/US11947796B2/en active Active
-
2024
- 2024-04-01 US US18/623,811 patent/US20240248601A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200125263A1 (en) | 2020-04-23 |
US10534540B2 (en) | 2020-01-14 |
EP3465449B1 (en) | 2023-07-05 |
KR20200133822A (ko) | 2020-11-30 |
KR20220127374A (ko) | 2022-09-19 |
KR102183016B1 (ko) | 2020-11-26 |
TW201935246A (zh) | 2019-09-01 |
KR102299721B1 (ko) | 2021-09-10 |
CN109313620A (zh) | 2019-02-05 |
KR20210113690A (ko) | 2021-09-16 |
CN109313620B (zh) | 2022-11-01 |
US20240248601A1 (en) | 2024-07-25 |
TWI744632B (zh) | 2021-11-01 |
EP3465449A4 (en) | 2020-07-22 |
US20170351433A1 (en) | 2017-12-07 |
KR102442495B1 (ko) | 2022-09-14 |
US11340787B2 (en) | 2022-05-24 |
EP3465449A1 (en) | 2019-04-10 |
KR20190003821A (ko) | 2019-01-09 |
US11947796B2 (en) | 2024-04-02 |
US20220276786A1 (en) | 2022-09-01 |
KR102344768B1 (ko) | 2021-12-31 |
KR20220000931A (ko) | 2022-01-04 |
TW201807575A (zh) | 2018-03-01 |
CN115525587A (zh) | 2022-12-27 |
WO2017213876A1 (en) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI662408B (zh) | 用於記憶體協定之設備 | |
TWI668703B (zh) | 具有可程式化緩衝器及快取大小的記憶體協定 | |
US20180364919A1 (en) | Memory controller | |
US11586566B2 (en) | Memory protocol with command priority | |
US12093565B2 (en) | Memory protocol | |
US10996890B2 (en) | Memory module interfaces |