TWI543070B - 命令排序 - Google Patents
命令排序 Download PDFInfo
- Publication number
- TWI543070B TWI543070B TW104105193A TW104105193A TWI543070B TW I543070 B TWI543070 B TW I543070B TW 104105193 A TW104105193 A TW 104105193A TW 104105193 A TW104105193 A TW 104105193A TW I543070 B TWI543070 B TW I543070B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- host
- memory system
- data
- commands
- Prior art date
Links
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Transfer Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明一般而言係關於半導體記憶體及方法,且更特定而言係關於命令排序。
通常提供記憶體裝置作為電腦或其他電子裝置中之內部半導體積體電路及/或外部可抽換式裝置。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力來維持其資料且可包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他記憶體。非揮發性記憶體可在不被供電時留存所儲存之資料且可包含NAND快閃記憶體、NOR快閃記憶體、相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)、自旋轉矩轉移隨機存取記憶體(STTRAM)及磁性隨機存取記憶體(MRAM)以及其他記憶體。
記憶體裝置可組合在一起以形成包含記憶體裝置之記憶體系統(舉例而言,諸如記憶卡、嵌入式儲存解決方案或一固態磁碟機)。記憶體系統(諸如一記憶卡)可包含非揮發性記憶體(例如,NAND快閃記憶體及/或NOR快閃記憶體)及/或可包含揮發性記憶體(例如,DRAM及/或SRAM)以及各種其他類型之非揮發性及揮發性記憶體。快閃記憶體裝置可包含將資料儲存於一電荷儲存結構(舉例而言,諸如一浮動閘極)中之記憶體胞且可針對一寬廣範圍之電子應用用作非揮發性
記憶體。快閃記憶體裝置通常使用允許高記憶體密度、高可靠性及低電力消耗之一單電晶體記憶體胞。
記憶體系統可用作與在計算系統中之若干個主機一起使用之可攜式記憶體或嵌入式儲存解決方案及/或用於替換硬碟機作為一計算系統之主要儲存裝置此乃因固態磁碟機可在效能、大小、重量、耐用性、操作溫度範圍及電力消耗方面具有優於硬碟機之優點。舉例而言,記憶體系統可在與磁碟機比較時因其缺少移動部件而具有優越效能,缺少移動部件可避免尋覓時間、延時及與磁碟機相關聯之其他機電延遲。記憶體系統製造商可使用非揮發性記憶體來創建記憶體系統,該等記憶體系統可不使用一內部電池電源,因此允許磁碟機係更多功能的且更緊密的。
一記憶體系統可包含若干個記憶體裝置,例如若干個記憶體晶片。如熟習此項技術者將瞭解,一記憶體晶片可包含若干個晶粒及/或邏輯單元(LUN),例如其中一LUN可係一或多個晶粒。每一晶粒在其上可包含若干個記憶體陣列及周邊電路。記憶體陣列可包含組織成若干個實體頁之若干個記憶體胞,且該等實體頁可組織成若干個區塊。一快閃記憶體胞陣列可一次一頁地經程式化且一次一區塊地經抹除。對一記憶體系統執行之操作(諸如讀取、寫入及抹除操作)可受記憶體系統中可用於管理由記憶體系統中之記憶體裝置進行之操作的資源量限制。
100‧‧‧計算系統/系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
112-1、112-2、...、112-M‧‧‧記憶體陣列
120‧‧‧匯流排
125‧‧‧控制器
126‧‧‧命令佇列
127‧‧‧狀態暫存器
130-1、...、130-N‧‧‧記憶體裝置
202‧‧‧主機
204‧‧‧記憶體系統
240-1‧‧‧經排序命令請求
240-P‧‧‧經排序命令請求
242-0‧‧‧命令回應
242-1‧‧‧命令回應
244‧‧‧命令描述符區塊
341‧‧‧命令操作碼/命令操作位元組
343‧‧‧命令優先級資訊
344‧‧‧命令區塊描述符
345‧‧‧命令任務標籤/命令任務標籤位元組
346‧‧‧命令引數
348‧‧‧啟動位址/命令啟動位址
349‧‧‧命令區塊計數
402‧‧‧主機
404‧‧‧記憶體系統
450‧‧‧準備傳送命令
452-0‧‧‧資料傳送請求
452-1‧‧‧資料傳送請求
454‧‧‧讀取資料
456‧‧‧寫入資料
458‧‧‧發送資料命令
460‧‧‧接收資料命令
545‧‧‧命令任務標籤
551‧‧‧傳送方向
552‧‧‧資料傳送請求標頭/資料傳送請求
553‧‧‧資料緩衝器位移
555‧‧‧命令傳送長度
602‧‧‧主機
604‧‧‧記憶體系統
605‧‧‧命令行
606‧‧‧資料匯流排
640-1‧‧‧第一經排序命令請求
640-2‧‧‧第二經排序命令請求
640-3‧‧‧第三經排序命令請求
640-4‧‧‧第四經排序命令請求
647-1‧‧‧第一命令/讀取命令
647-2‧‧‧第一命令/命令
647-3‧‧‧第三命令/命令
647-4‧‧‧第四命令
650-1‧‧‧準備傳送命令
650-2‧‧‧準備傳送命令
650-3‧‧‧準備傳送命令
650-4‧‧‧準備傳送命令
650-5‧‧‧準備傳送命令/命令
650-6‧‧‧準備傳送命令/命令
652-1‧‧‧資料傳送請求
652-2‧‧‧資料傳送請求
652-3‧‧‧資料傳送請求
652-4‧‧‧資料傳送請求
657-1‧‧‧資料
657-2‧‧‧資料
657-3‧‧‧資料
657-4‧‧‧資料
658-1‧‧‧發送資料命令
658-3‧‧‧發送資料命令
658-4‧‧‧發送資料命令
660-2‧‧‧接收資料命令
圖1係根據本發明之若干項實施例之呈包含一記憶體系統之一計算系統之形式之一設備之一方塊圖。
圖2圖解說明根據本發明之若干項實施例之用於一記憶體系統中之命令排序之一方法之實例。
圖3圖解說明根據本發明之若干項實施例之一命令區塊描述符之
一實例。
圖4A至圖4D圖解說明根據本發明之若干項實施例之用於執行一記憶體系統中之一命令佇列中之命令之一方法之實例。
圖5圖解說明根據本發明之若干項實施例之包含於一資料傳送請求中之一資料傳送請求標頭之一實例。
圖6圖解說明根據本發明之若干項實施例之用於一記憶體系統中之命令排序及執行之一方法之一實例。
本發明包含用於命令排序之設備及方法。若干項實施例包含:在一記憶體系統處自一主機接收一經排序命令請求;將一命令回應自該記憶體系統發送至該主機,該命令回應指示該記憶體系統準備好在該記憶體系統之一命令佇列中接收一命令;及回應於發送該命令回應而在該記憶體系統處自該主機接收該命令之一命令描述符區塊。
本發明之若干項實施例可併入用於使用嵌入式MultiMediaCard(e.MMC)協定控制之命令的命令排序及同時命令執行。一新命令類別可經引入並添加至e.MMC協定中之命令以在使用e.MMC協定時允許命令排序及同時命令執行。一經排序命令請求命令(例如,CMD 43)、一準備傳送命令(例如,CMD 44)、一任務管理功能請求命令(例如,CMD 45)、一接收資料命令(例如,CMD 46)及一發送資料命令(例如,CMD 47)可作為一命令類別添加至e.MMC協定。此等命令可併入至e.MMC協定中以在具有對記憶體系統之e.MMC狀態機之微小改變或僅將一個狀態改變添加至記憶體系統之e.MMC狀態機的情況下允許命令排序及同時命令執行。
如本文中所使用,「若干個」某物可指代一或多個此類事物。舉例而言,若干個記憶體胞可指代一或多個記憶體胞。此外,如本文中所使用,指定符「M」及「N」(特別關於圖式中之參考編號)指示本
發明之若干項實施例可包含如此指定之若干個特定特徵。
本文中之圖遵循其中第一個數字或前幾個數字對應於圖式之圖編號且剩餘數字識別圖式中之一元件或組件的一編號慣例。不同圖之間的類似元件或組件可藉由使用類似數字而識別。舉例而言,104在圖1中可指代元件「04」,且在圖2中一類似元件可指代為204。
圖1係根據本發明之若干項實施例之呈包含一記憶體系統104之一計算系統100之形式之一設備之一方塊圖。如本文中所使用,一記憶體系統104、一控制器125或一記憶體裝置130-1、...、130-N亦可單獨視為一「設備」。記憶體系統104可係若干個記憶體系統中之任一者(諸如一記憶卡)且可包含一主機介面106、一控制器125及為記憶體系統104提供儲存容量之複數個記憶體裝置130-1、...、130-N(例如,固態記憶體裝置(諸如NAND快閃裝置))。記憶體系統104可經由一主機介面106(諸如一底板或匯流排)通信地耦合至一主機102。
主機102之實例可包含膝上型電腦、個人電腦、數位相機、數位記錄與回放裝置、行動電話、PDA、記憶體讀卡機及介面集線器以及其他主機系統。記憶體系統104可係一雲端儲存網路連結基礎結構之部分,舉例而言,其經由可包含一串列進階技術附接(SATA)、高速周邊組件互連(PCIe)、一通用串列匯流排(USB)、一光纖通道或一乙太網路連接以及其他連接器及介面之主機介面106耦合至主機102。然而,一般而言,主機介面106可提供用於在記憶體系統104與主機102之間於一命令行及/或資料匯流排(舉例而言)上傳遞控制、位址、資料及其他信號之一介面。
主機102可包含通信地耦合至一記憶體與匯流排控制件之若干個處理器(例如,平行處理器、協同處理器等)。該若干個處理器可係若干個微處理器或某些其他類型之控制電路(舉例而言,諸如若干個特殊應用積體電路(ASIC))。計算系統100之其他組件亦可具有處理器。
記憶體與匯流排控制件可使記憶體及其他組件直接通信地耦合至其,舉例而言,動態隨機存取記憶體(DRAM)、圖形使用者介面及/或其他使用者介面(例如,顯示監視器、鍵盤、滑鼠等)。
控制器125可與記憶體(例如,記憶體裝置130-1至130-N)通信以控制資料讀取、寫入及抹除操作以及其他操作。舉例而言,控制器125可包含呈硬體及/或韌體(例如,一或多個積體電路/邏輯)及/或軟體之形式之若干個組件以用於控制對記憶體之存取及/或用於促進主機102與記憶體之間的資料傳送。
在圖1中所圖解說明之實例中,控制器125包含一命令佇列126及一狀態暫存器127。然而,控制器125可包含未圖解說明以便不使本發明之實施例模糊之各種其他組件。而且,儘管命令佇列126及狀態暫存器127圖解說明為駐存於控制器125上,但在某些實施例中,命令佇列126及狀態暫存器127可(例如)作為一獨立組件駐存於系統100中之別處或駐存於系統之一不同組件上。
命令佇列126可包含已由記憶體系統104自主機102接收以用於執行之若干個命令。命令佇列126可包含與命令相關聯之含納於命令佇列126中之命令中之每一者之一命令描述符區塊中之資訊。狀態暫存器127可係儲存命令佇列126中之命令中之每一者之狀態資訊(舉例而言,諸如任務休眠、任務啟用、任務完成、任務錯誤及/或任務中止)之一暫存器。命令佇列126及狀態暫存器127可包含揮發性記憶體胞(舉例而言,諸如DRAM記憶體胞)及/或非揮發性記憶體(舉例而言,諸如Flash、RRAM、MRAM、STTRAM及/或PCRAM記憶體胞)以儲存與命令相關聯之資訊。在命令佇列126中之命令之執行期間自主機接收之資料在儲存於記憶體裝置130-1至130-N中之前可具有由一ECC模組對該資料執行之一錯誤校正碼(ECC)操作。
記憶體系統104包含在記憶體裝置130-1、...、130-N與控制器125
之間發送/接收各種信號及/或命令(例如,資料信號、控制信號及/或位址信號等)之一匯流排120。儘管圖1中所圖解說明之實例包含一單個匯流排120,但在某些實施例中,記憶體系統104可包含若干個匯流排(例如通道),諸如若干個單獨資料匯流排、控制匯流排及/或位址匯流排。匯流排120由複數個記憶體裝置130-1、...、130-N共用且可具有各種類型之匯流排結構,該等匯流排結構包含(但不限於)與開放式NAND快閃介面(ONFI)相關之匯流排結構。而且,匯流排120可包含各種類型之匯流排結構,該等匯流排結構包含(但不限於)緊湊式快閃介面、Multimedia Card(MMC)、Secure Digital(SD)、消費型電子器件進階技術附接(CE-ATA)、工業標準架構(ISA)、微通道架構(MSA)、擴充型ISA(EISA)、智慧型電子驅動器(IDE)、VESA區域匯流排(VLB)、周邊組件互連(PCI)、卡片匯流排、通用串列匯流排(USB)、進階圖形埠(AGP)、個人電腦記憶卡國際聯盟匯流排(PCMCIA)、Firewire(IEEE 1394)及小型電腦系統介面(SCSI)。舉例而言,匯流排120可係一硬連線共用實體匯流排。
圖1中所圖解說明之計算系統100係此一系統之一項實例;然而,本發明之實施例並不限於圖1中所展示之組態。
如圖1中所圖解說明,記憶體裝置130-1、...、130-N可包括若干個晶粒及/或晶片,該等晶粒及/或晶片可包含為記憶體系統104提供儲存容量之若干個記憶體陣列112-1、112-2、...、112-M。記憶體陣列112-1、112-2、...、112-M在其上可包含周邊電路。在若干項實施例中,記憶體陣列112-1、112-2、...、112-M可係能夠獨立地執行來自主機102之命令及/或經由主機介面106將狀態發送至主機102之記憶體系統104之最小組件。舉例而言,記憶體陣列112-1、112-2、...、112-M可包含具有一NAND架構之快閃記憶體陣列。然而,實施例並不限於一特定類型之記憶體陣列或陣列架構且可包含具有RRAM、
MRAM、STTRAM及/或PCRAM記憶體胞之記憶體陣列。
圖1中所圖解說明之實施例可包含未圖解說明以便不使本發明之實施例模糊之額外電路、邏輯及/或組件。舉例而言,記憶體裝置130-1、...、130-N可包含位址電路以鎖存透過I/O電路提供於I/O連接器上方之位址信號。信號可由一列解碼器及一行解碼器接收並解碼以存取記憶體系統104。
圖2圖解說明根據本發明之若干項實施例之用於一記憶體系統中之命令排序之一方法之實例。在圖2中,一經排序命令請求240-1(例如,CMD 43)可自一主機202發送至一記憶體系統204。經排序命令請求240-1可向記憶體系統204指示主機202想要針對記憶體系統204將一命令發送至記憶體系統204以添加至記憶體系統204中之命令佇列。記憶體系統204可回應於接收到該經排序命令請求而將一命令回應242-1發送至主機。命令回應242-1可包含設定為一(1)之一佇列忙位元,從而指示記憶體系統204並未準備好在命令佇列中接收命令,例如,命令佇列係滿的。當主機202接收到具有設定為一(1)之一佇列忙位元之命令回應242-1時,主機202不將一命令區塊描述符往回發送至記憶體系統204。在若干項實施例中,主機202可將若干個經排序命令請求發送至記憶體系統204直至記憶體系統204往回發送具有設定為零(0)之一佇列忙位元之一命令回應。舉例而言,在一段時間之後,主機202可將包含與經排序命令請求240-1相同之資訊之另一經排序命令請求240-P發送至記憶體系統204。若記憶體系統204中之命令佇列準備好接收待添加至命令佇列之命令,則記憶體系統204可將具有設定為零(0)之佇列忙位元之命令回應242-0發送至主機202,該命令回應指示記憶體系統204準備好將命令添加至命令佇列。主機202將命令描述符區塊244發送至記憶體系統204且記憶體系統204將命令描述符區塊244中之所描述之命令放置於命令佇列中。命令描述符區塊244包含關於命
令的使主機202及記憶體系統204能夠在其準備好執行命令時執行命令之資訊。
在若干項實施例中,主機202可將一任務管理功能請求命令(例如,CMD 45)發送至記憶體系統204。任務管理功能請求命令可用於檢查一狀態暫存器(例如圖1中之狀態暫存器127)以判定命令佇列(例如,圖1中之命令佇列126)中之命令中之每一者之狀態。記憶體系統204可將命令佇列中之命令中之每一者之狀態傳回至主機202。在若干項實施例中,任務管理功能請求命令亦可在具有中止命令佇列之一指示的情況下自主機202發送至記憶體系統204,藉此由記憶體系統204中止命令佇列中之命令中之每一者。而且,一停止命令(例如,CMD 12及/或一高優先級中斷(HPI)命令)可自主機202發送至記憶體系統204,此將致使記憶體系統204中止命令佇列。
在若干項實施例中,若干個命令可在主機將若干個經排序命令請求發送至記憶體系統且接著回應於接收到指示命令佇列準備好接收命令之若干個命令回應而將若干個命令描述符區塊發送至記憶體系統時添加至命令佇列。該若干個經排序命令請求可在一命令行上自主機接收,使得該等經排序命令請求可由記憶體系統接收且由記憶體系統當在記憶體系統中於一資料匯流排上執行來自命令佇列之命令時對其做出回應。
圖3圖解說明根據本發明之若干項實施例之一命令區塊描述符344之一實例。在圖3中,命令區塊描述符344包含提供與一命令相關聯之資訊之若干個欄位,因此該命令可放置於一命令佇列中且根據含納於命令區塊描述符344中之資訊而執行。一命令區塊描述符可包含32個位元組(舉例而言)以及其他數目個位元組。在此實例中,命令區塊描述符344可包含32個位元組,其中位元組0與一命令操作碼341相關聯,位元組1與命令優先級資訊343相關聯,位元組2係保留的,位
元組3與一命令任務標籤345相關聯,位元組4至位元組7與命令引數346相關聯,位元組8至位元組11與命令啟動位址348相關聯,位元組12至位元組13係保留的,位元組14至位元組15與命令區塊計數349相關聯且位元組16至位元組31係保留的。藉由實例之方式,命令操作位元組341可設定為對應於一讀取命令之一值01h。命令操作位元組341可設定為對應於一寫入命令之一值02h。命令優先級資訊343可指示命令佇列中之執行之一優先級次序。命令優先級資訊343位元組可設定為一值00h,該值對應於其中將命令無優先級地放置於命令佇列中之一簡單優先級。命令優先級資訊343位元組可設定為一值01h,該值對應於其中將命令放置於命令佇列中使得基於記憶體系統接收到該命令之時間而按時間順序執行該命令之一有序優先級。命令優先級資訊343位元組可設定為一值02h,該值對應於其中命令係下一經執行命令之一佇列頭部優先級。命令任務標籤345位元組可對應於用於區分該命令與命令佇列中之其他命令之一唯一識別符。命令任務標籤位元組345可設定為介於自00h至FFh之範圍內之值。命令引數346(例如,一可靠寫入或一強制程式化請求)、命令啟動位址348及命令區塊計數349可設定為根據e.MMC協定之值。
在若干項實施例中,命令描述符區塊可包含任何數目個位元組,例如少於32個位元組。舉例而言,當某些資訊(諸如命令優先級、命令標籤、任務屬性、命令引數及/或區塊計數以及其他資訊)包含於經排序命令請求中時,命令描述符區塊可包含少於32個位元組。
圖4A至圖4D圖解說明根據本發明之若干項實施例之用於執行一記憶體系統404中之一命令佇列中之命令之一方法之實例。在圖4A中,一旦主機402已將一或多個命令發送至記憶體系統404中之命令佇列,主機402便可在主機402準備好傳輸或接收資料時將一準備傳送命令450(例如,CMD 44)發送至記憶體系統404。記憶體系統404可回應
於接收到準備傳送命令450而將資料傳送請求452-0發送至主機402。資料傳送請求452-0可對應於命令佇列中之準備用於下一執行之一命令。在若干項實施例中,若記憶體系統404並未準備好發送或接收資料,則一資料傳送請求可提供一否定回應且不請求一資料傳送。在若干項實施例中,資料傳送請求可使用命令/回應信號且不使用資料匯流排來遞送。資料傳送請求452-0可包含指示在執行命令時之資料傳送方向之一方向位元。舉例而言,設定為1之一方向位元指示命令係一寫入命令,其中資料自主機發送至記憶體系統。資料傳送請求452-0可包含用以識別正執行來自命令佇列之哪一命令之一命令標籤欄位且亦可包含用以指示應傳送資料之哪些部分之一資料位移欄位及一資料大小欄位。在圖4A中,回應於接收到準備傳送命令而發送之資料傳送請求452-0包含設定為0之一方向位元,該方向位元指示命令係一讀取命令,其中資料自記憶體系統發送至主機。資料傳送請求452-0中之設定為0之方向位元允許記憶體系統404維持對匯流排之控制且將命令中所請求之讀取資料454自記憶體系統404發送至主機402。記憶體系統404在資料傳送請求之方向位元設定為0時保持處於一發送資料狀態,因此,在若干項實施例中,具有設定為0之一方向位元之一資料傳送請求不導致記憶體系統404中之一狀態改變。在若干項實施例中,記憶體系統可經組態使得在記憶體系統404發送具有設定為0之一方向位元之一資料傳送請求時,記憶體系統404保持處於一發送資料狀態。
在圖4B中,一旦主機402已將一或多個命令發送至記憶體系統404中之命令佇列,主機402便可在主機402準備好傳輸或接收資料時將一準備傳送命令450(例如,CMD 44)發送至記憶體系統404。記憶體系統404可回應於接收到準備傳送命令450而將一資料傳送請求452-1發送至主機402,資料傳送請求452-1包含用以指示在命令之執行期
間之資料傳送方向之一方向位元。在若干項實施例中,若記憶體系統404並未準備好發送或接收資料,則一資料傳送請求可提供一否定回應且不請求一資料傳送。在若干項實施例中,資料傳送請求可使用命令/回應信號且不使用資料匯流排來遞送。在圖4B中,回應於接收到準備傳送命令而發送之資料傳送請求452-1包含對應於一寫入命令之設定為1之一方向位元。資料傳送請求452-1可包含用以識別正執行來自命令佇列之哪一命令之一命令標籤欄位且亦可包含用以指示應傳送資料之哪些部分之一資料位移欄位及一資料大小欄位。資料傳送請求452-1中之設定為1之方向位元允許主機402控制匯流排且將命令中所請求之寫入資料456自主機402發送至記憶體系統404。記憶體系統404在資料傳送請求452-1之方向位元設定為1時自一發送資料狀態轉變為一接收資料狀態。在若干項實施例中,記憶體系統之狀態機可經組態使得在記憶體系統404發送具有設定為1之一方向位元之一資料傳送請求時,記憶體系統404自一發送資料狀態改變為一接收資料狀態。
在圖4C中,一旦主機402已將一或多個命令發送至記憶體系統404中之命令佇列,主機402便可在主機402準備好傳輸或接收資料時將一準備傳送命令450(例如,CMD 44)發送至記憶體系統404。記憶體系統404可回應於接收到準備傳送命令450而用一資料傳送請求452-0對主機402做出回應,資料傳送請求452-0包含用以指示在命令之執行期間之資料傳送方向之一方向位元。在若干項實施例中,若記憶體系統404並未準備好發送或接收資料,則一資料傳送請求可提供一否定回應且不請求一資料傳送。在若干項實施例中,資料傳送請求可使用命令/回應信號且不使用資料匯流排來遞送。在圖4C中,回應於接收到準備傳送命令450而發送之資料傳送請求452-0包含對應於一讀取命令之設定為0之一方向位元。資料傳送請求452-0可包含用以識別正執行來自命令佇列之哪一命令之一命令標籤欄位且亦可包含用以指示
應傳送資料之哪些部分之一資料位移欄位及一資料大小欄位。主機402回應於接收到具有設定為0之一方向位元之資料傳送請求452-0而將一發送資料命令458(例如CMD 47)發送至記憶體系統404。發送資料命令458請求記憶體系統404將資料發送至主機402,因此記憶體系統404自一傳送狀態轉變為一發送資料狀態且記憶體系統404控制匯流排並將命令中所請求之讀取資料454自記憶體系統404發送至主機402。當已傳送全部資料時,記憶體系統404自發送資料狀態移動回至傳送狀態。在若干項實施例中,記憶體系統之狀態機可經組態使得記憶體系統404在發送傳送資料請求452-0之後自一發送資料狀態改變為一傳送狀態且接著在記憶體系統404自主機接收發送資料命令458時自該傳送狀態改變為一發送資料狀態。
在圖4D中,一旦主機402已將一或多個命令發送至記憶體系統404中之命令佇列,主機402便可在主機402準備好傳輸或接收資料時將一準備傳送命令450(例如,CMD 44)發送至記憶體系統404。記憶體系統404可回應於接收到準備傳送命令450而將資料傳送請求452-1發送至主機402,資料傳送請求452-1包含用以指示在命令之執行期間之資料傳送方向之一方向位元。在若干項實施例中,若記憶體系統404並未準備好發送或接收資料,則一資料傳送請求可提供一否定回應且不請求一資料傳送。在若干項實施例中,資料傳送請求可使用命令/回應信號且不使用資料匯流排來遞送。在圖4D中,回應於接收到準備傳送命令450而發送之資料傳送請求452-1包含對應於一寫入命令之設定為1之一方向位元。資料傳送請求452-1可包含用以識別正執行來自命令佇列之哪一命令之一命令標籤欄位且亦可包含用以指示應傳送資料之哪些部分之一資料位移欄位及一資料大小欄位。回應於接收到具有設定為1之一方向位元之資料傳送請求452-1,主機402將一接收資料命令460(例如CMD 46)發送至記憶體系統404。接收資料命令
460向記憶體系統404指示記憶體系統404將自主機402接收資料,因此記憶體系統404自一傳送狀態轉變為一接收資料狀態且記憶體系統404允許主機402控制匯流排且將命令中所請求之寫入資料456自主機402發送至記憶體系統404。當已傳送全部資料時,記憶體系統404自接收資料狀態移動回至傳送狀態。
在若干項實施例中,記憶體系統之狀態機可經組態使得記憶體系統404在發送傳送資料請求之後自一發送資料狀態改變為一傳送狀態且接著在記憶體系統404接收到來自主機402之接收資料命令460時自該傳送狀態改變為一接收資料狀態。
在若干項實施例中,當在一命令之執行期間發生一錯誤時,該命令失敗。記憶體系統可用具有錯誤位元之一命令回應對來自主機之額外經排序命令請求做出回應,該等錯誤位元指示在一命令之執行期間存在一錯誤。主機亦可以一任務管理功能請求命令來查詢記憶體系統以接收對命令佇列中之命令之狀態之一更新。
圖5圖解說明根據本發明之若干項實施例之包含於一資料傳送請求中之一資料傳送請求標頭552之一實例。在圖5中,資料傳送請求標頭552包含提供與一命令相關聯之資訊之若干個欄位,因此該命令可由主機識別且由主機及記憶體裝置執行。舉例而言,一資料傳送請求標頭可包含32個位元以及其他數目個位元。資料傳送請求標頭552包含32個位元組,其中位元組0至位元組1係保留的,位元組2與一傳送方向551相關聯,位元組3與一命令任務標籤545相關聯,位元組4至位元組11係保留的,位元組12至位元組13與資料緩衝器位移553相關聯,位元組14至位元組15與命令傳送長度555相關聯,位元組16至位元組31係保留的。傳送方向551位元組可設定為對應於一讀取命令之一值00h。傳送方向551位元組可設定為對應於一寫入命令之一值01h。命令任務標籤545位元組可對應於用於區分且識別該命令與命令
佇列中將執行之其他命令的一唯一識別符。命令任務標籤545位元組可設定為介於自00h至FFh之範圍內之值。資料緩衝器位移553可係在一任務之完整資料傳送內的一資料傳送之一位移。資料傳送請求552可由任何數目個位元組組成。舉例而言,當資料傳送請求使用命令/回應信號來遞送時,資料傳送請求可由少於32個位元組組成,即使包含與先前所闡述相同之欄位。
圖6圖解說明根據本發明之若干項實施例之用於一記憶體系統中之命令排序及執行之一方法之一實例。圖6中所圖解說明之方法包含同時執行之若干個命令,其中命令及命令回應在一主機與一記憶體系統之間於一命令行上發送,同時與命令相關聯之資料在記憶體系統與主機之間於一資料匯流排上傳送。因此,在若干項實施例中,資料匯流排可基於在命令行上發送之命令而由主機或記憶體系統控制且資料匯流排可在於命令行上發送命令時用來在主機與記憶體裝置之間傳送資料。舉例而言,一命令可經由在主機與記憶體系統之間發送的命令而添加至命令佇列,同時與命令佇列中之命令相關聯之資料在主機與記憶體系統之間於資料匯流排上發送。
在圖6中,與一第一命令647-1相關聯之一第一經排序命令請求640-1(例如,CMD 43)自主機602發送至記憶體系統604。第一命令647-1係一4KB讀取命令。作為回應,記憶體系統604可發送一命令回應(未展示)且主機602可發送該第一命令之一命令區塊描述符(未展示),因此第一命令647-1可添加至命令佇列。
與一第二命令647-2相關聯之一第二經排序命令請求640-2(例如,CMD 43)自主機602發送至記憶體系統604。第二命令647-2係16KB寫入命令。作為回應,記憶體系統604可發送一命令回應(未展示)且主機602可發送該第二命令之一命令區塊描述符(未展示),因此第二命令647-2可添加至命令佇列。命令佇列現在具有兩個命令:準
備用於執行之第一命令647-1及第二命令647-2。
一準備傳送命令650-1(例如CMD 44)在命令行605上自主機602發送至記憶體系統604。在圖6中,記憶體系統604並未準備好執行一命令且將指示此情況之一命令回應發送至主機602。在一段時間之後,主機602接著將準備傳送命令650-1(例如,CMD 44)再次發送至記憶體系統604。記憶體系統604用識別該命令、4KB讀取命令647-1及資料傳送方向之資料傳送請求652-1對準備傳送命令650-1做出回應。主機602回應於接收到資料傳送請求652-1而發送一發送資料命令658-1(例如,CMD 47),從而致使記憶體系統604控制資料匯流排606且發送與第一命令647-1相關聯之4KB資料657-1。
當與第一命令647-1相關聯之4KB之資料在資料匯流排606上自記憶體系統604發送至主機602時,一準備傳送命令650-2(例如CMD 44)及與一第三命令647-3相關聯之一第三經排序命令請求640-3(例如,CMD 43)在命令行605上自主機602發送至記憶體系統604。當記憶體系統604發送對第三經排序命令請求640-3之一命令回應(未展示)且主機602可發送該第三命令之一命令區塊描述符(未展示)因此第三命令647-3可添加至命令佇列時,第三命令647-3添加至命令佇列。記憶體系統604用識別第二命令647-2、一16KB寫入命令、資料傳送方向及待傳送之資料之部分(例如資料位移及資料大小)之資料傳送請求652-2對準備傳送命令650-2做出回應。主機602回應於接收到資料傳送請求652-2而發送一接收資料命令660-2(例如,CMD 46),從而致使主機602控制資料匯流排606且將與第二命令647-2相關聯之8KB之資料657-2發送至記憶體系統604。
當與第二命令647-2相關聯之8KB之資料在資料匯流排606上自主機602發送至記憶體系統604時,一準備傳送命令650-3(例如CMD 44)在命令行605上自主機602發送至記憶體系統604。記憶體系統604藉由
在命令行605上發送識別第三命令647-3、一8KB讀取命令及資料傳送方向之資料傳送請求652-3對準備傳送命令650-3做出回應。第三命令647-3中所指示之優先級係高於命令647-2之優先級,因此接下來執行命令647-3且在執行第三命令時暫停第二命令647-2之執行(例如,其中與第二命令647-2相關聯之16KB中僅有8KB自主機602發送至記憶體系統604)。主機602回應於接收到資料傳送請求652-3而發送一發送資料命令658-3(例如,CMD 47),從而致使記憶體系統604控制資料匯流排606且發送與第三命令647-3相關聯之8KB之資料657-3。
與一第四命令647-4相關聯之一第四經排序命令請求640-4(例如,CMD 43)自主機602發送至記憶體系統604。第四命令647-4係8KB讀取命令。作為回應,記憶體系統604可發送一命令回應(未展示)且主機602可發送第四命令之一命令區塊描述符(未展示),因此第四命令647-4可添加至命令佇列。命令佇列現在具有三個命令:已經部分地執行之第二命令647-2及正執行之第三命令647-3及準備用於執行之第四命令647-4。
當與第三命令647-3相關聯之8KB之資料在資料匯流排606上自記憶體系統604發送至主機602時,準備傳送命令650-2(例如CMD 44)在命令行605上自主機602再次發送至記憶體系統604,使得第二命令647-2之執行可重新開始。記憶體系統604用識別第二命令647-2、一16KB寫入命令、資料傳送方向及待傳送之資料之部分(例如,資料位移及資料大小)之資料傳送請求652-2對準備傳送命令650-2做出回應。主機602回應於接收到資料傳送請求652-2而發送一接收資料命令660-2(例如,CMD 46),從而致使主機602控制資料匯流排606且將與第二命令647-2相關聯之8KB之資料657-2發送至記憶體系統604以完成第二命令647-2之執行。
當與第二命令647-2相關聯之8KB之資料在資料匯流排606上自主
機602發送至記憶體系統604時,一準備傳送命令650-4(例如CMD 44)在命令行605上自主機602發送至記憶體系統604。記憶體系統604用識別第四命令647-4、一8KB讀取命令及資料傳送方向之資料傳送請求652-4對準備傳送命令650-4做出回應。主機602回應於接收到資料傳送請求652-4而發送一發送資料命令658-4(例如,CMD 47),從而致使記憶體系統604控制資料匯流排606且發送與第四命令647-4相關聯之8KB之資料657-4。
主機602將準備傳送命令650-5及650-6發送至記憶體系統604,但命令佇列係空的,因此記憶體系統604將指示命令佇列係空的之一命令回應(未展示)發送至主機602及/或記憶體系統604回應於命令650-5及命令650-6而不發送一資料傳送請求。
雖然本文中已圖解說明及闡述了特定實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之若干項實施例之更改或變化。應理解,已以一說明性方式而非一限定性方式做出以上說明。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之若干項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來判定本發明之若干項實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起分組於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一請求項中更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方式中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧計算系統/系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
112-1、112-2、...、112-M‧‧‧記憶體陣列
120‧‧‧匯流排
125‧‧‧控制器
126‧‧‧命令佇列
127‧‧‧狀態暫存器
130-1、...、130-N‧‧‧記憶體裝置
Claims (24)
- 一種用於一計算系統中之命令排序之方法,其包括:在一記憶體系統處自一主機接收一經排序命令請求,其中該經排序命令請求指示該記憶體系統該主機已準備好發送一命令,該命令將被包含在該記憶體系統之一命令佇列中;將一命令回應自該記憶體系統發送至該主機,該命令回應指示該記憶體系統準備好在該記憶體系統中之該命令佇列中接收該命令;及回應於發送該命令回應而在該記憶體系統處自該主機接收該命令之一命令描述符區塊。
- 如請求項1之方法,其中該方法包含將該命令描述符區塊中所描述之該命令添加至該記憶體系統中之該命令佇列。
- 如請求項1之方法,其中該命令描述符區塊包含指示將該命令以執行之最高優先級放置於該命令佇列中之優先級資訊。
- 如請求項1之方法,其中命令描述符區塊包含指示將該命令以執行之按時間順序優先級放置於該命令佇列中之優先級資訊。
- 如請求項1之方法,其中命令描述符區塊包含指示將該命令無執行之優先級地放置於該命令佇列中之優先級資訊。
- 如請求項1至5中任一項之方法,其中該方法包含當該記憶體系統處於一傳送狀態中時在該記憶體系統處接收該經排序命令請求。
- 如請求項1至5中任一項之方法,其中該方法包含回應於發送該命令回應而使該記憶體系統自一傳送狀態改變為一接收狀態。
- 一種用於一記憶體系統中之命令排序之方法,其包括:回應於在一記憶體系統處自一主機接收一經排序命令請求而 將一命令放置於一命令佇列中,其中該經排序命令請求指示該記憶體系統該主機已準備好發送一命令至該記憶體系統,該命令將被包含在該命令佇列中,且其中該記憶體系統回應於接收到該經排序命令請求而將指示該記憶體系統準備好在該記憶體系統之該命令佇列中接收該命令之一命令回應自該記憶體系統發送至該主機,且回應於接收到該命令回應而在該記憶體系統處自該主機接收該命令之一命令描述符區塊;及藉由以下方式執行該命令:在該記憶體系統處自該主機接收一準備傳送命令;及回應於接收到該準備傳送命令而將一資料傳送請求自該記憶體系統發送至該主機,其中該資料傳送請求包含具有允許該主機及記憶體系統上之命令執行之資訊的一資料封包。
- 如請求項8之方法,其中執行該命令包含當該命令係一寫入命令時在該記憶體系統處自該主機接收一接收資料命令。
- 如請求項9之方法,其中回應於自該主機接收到該接收資料命令,該記憶體系統轉變為一接收狀態且該主機將資料發送至該記憶體系統。
- 如請求項8之方法,其中執行該命令包含當該命令係一讀取命令時在該記憶體系統處自該主機接收一發送資料命令。
- 如請求項11之方法,其中回應於自該主機接收到該發送資料命令,該記憶體系統轉變為一發送資料狀態且該記憶體系統將資料發送至該主機。
- 一種設備,其包括:一控制器;及一記憶體裝置,其耦合至該控制器,其中該設備經組態以:在該控制器處自一主機接收一經排序命令請求且回應於接 收到該經排序命令請求而將一命令回應自該控制器發送至該主機,該命令回應指示該設備準備好在一命令佇列中接收命令;及回應於發送該命令回應而在該控制器處自該主機接收一命令之一命令描述符區塊且將該命令描述符區塊中所描述之該命令添加至該控制器中之該命令佇列;在該控制器處自該主機接收一準備傳送命令且回應於接收到該準備傳送命令而將一資料傳送請求自該控制器發送至該主機,其中該資料傳送請求包含具有用以允許命令執行之資訊的一資料封包;及執行該命令。
- 如請求項13之設備,其中設備經組態以藉由以下方式執行該命令:在該控制器處自該主機接收一接收資料命令;自一傳送狀態轉變為一接收資料狀態;及在該設備處自該主機接收資料。
- 如請求項13之設備,其中設備經組態以藉由以下方式執行該命令:在該控制器處自該主機接收一發送資料命令;自一傳送狀態轉變為一發送資料狀態;及將資料自該記憶體裝置發送至該主機。
- 如請求項13之設備,其中該設備經組態以自該主機接收一任務管理功能請求命令且將該命令佇列中之若干個命令中之每一者之一狀態發送至該主機。
- 如請求項13之設備,其中該設備經組態以自該主機接收一任務管理功能請求命令且中止該命令佇列中之若干個命令中之每一者。
- 如請求項17之設備,其中設備經組態以在中止該命令佇列中之該若干個命令且自該主機接收一後續經排序命令請求後旋即重 設一任務佇列狀態暫存器及例外事件狀態欄位之一佇列錯誤位元。
- 如請求項13之設備,其中該設備經組態以藉由自該主機接收資料而執行該命令,且其中該設備經組態以自控制資料匯流排改變為控制該主機且自一發送資料狀態轉變為一接收資料狀態。
- 如請求項13之設備,其中設備經組態以藉由將資料發送至該主機而執行該命令,且其中該設備經組態以維持對該資料匯流排之控制且保持在一發送資料狀態中。
- 一種設備,其包括:一記憶體系統,其包括一記憶體裝置;及一主機,其耦合至該記憶體系統,其中該設備經組態以:將第一數目個經排序命令請求自該主機發送至該記憶體系統;回應於接收到該第一數目個經排序命令請求而將第一數目個命令放置於該記憶體系統中之一命令佇列中;將第一數目個準備傳送命令自該主機發送至該記憶體系統且回應於接收到該第一數目個準備傳送命令而將第一數目個資料傳送請求自該記憶體系統發送至該主機,其中該第一數目個資料傳送請求各自包含具有允許該等主機及記憶體系統上之命令執行之資訊的一資料封包;藉由以下方式同時執行該第一數目個命令:在一命令行上將若干個接收資料命令及若干個發送資料命令自該主機發送至該記憶體系統;及回應於發送該若干個發送資料命令及該若干個接收資料命令而將資料自該記憶體系統發送至該主機且在一資料匯流排上將資料自該主機發送至該記憶體系統。
- 如請求項21之設備,其中該設備經組態以藉由以下方式同時執 行該第一數目個命令:在該命令行上將該若干個接收資料命令及該若干個發送資料命令自該主機發送至該記憶體系統同時在該資料匯流排上將資料自該記憶體系統發送至該主機。
- 如請求項21之設備,其中該設備經組態以藉由以下方式同時執行該第一數目個命令:在該命令行上將該若干個接收資料命令及該若干個發送資料命令自該主機發送至該記憶體系統同時在該資料匯流排上將資料自該主機發送至該記憶體系統。
- 如請求項21至23中任一項之設備,其中設備經組態以:將第二數目個經排序命令請求自該主機發送至該記憶體系統且回應於接收到該第一數目個經排序命令請求而將該第二數目個命令放置於該記憶體系統中之該命令佇列中;及中斷該第一數目個命令之執行且執行來自該第二數目個命令之一命令,其中來自該第二數目個命令之該命令包含指示以執行之最高優先級將該命令放置於該命令佇列中之一參數。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/181,089 US9454310B2 (en) | 2014-02-14 | 2014-02-14 | Command queuing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201543347A TW201543347A (zh) | 2015-11-16 |
TWI543070B true TWI543070B (zh) | 2016-07-21 |
Family
ID=53798166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104105193A TWI543070B (zh) | 2014-02-14 | 2015-02-13 | 命令排序 |
Country Status (7)
Country | Link |
---|---|
US (5) | US9454310B2 (zh) |
EP (3) | EP3493055B1 (zh) |
JP (1) | JP6134453B2 (zh) |
KR (1) | KR101702280B1 (zh) |
CN (2) | CN106030521A (zh) |
TW (1) | TWI543070B (zh) |
WO (1) | WO2015123413A1 (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642505B1 (en) | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
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 |
WO2015166540A1 (ja) * | 2014-04-28 | 2015-11-05 | 株式会社日立製作所 | ストレージ装置とそのデータ処理方法及びストレージシステム |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
KR102398213B1 (ko) * | 2015-03-09 | 2022-05-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법 |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9880772B2 (en) | 2015-09-21 | 2018-01-30 | Micron Technology, Inc. | Systems and methods for providing file information in a memory system protocol |
US10282103B1 (en) * | 2015-11-09 | 2019-05-07 | Seagate Technology Llc | Method and apparatus to delete a command queue |
US10572180B1 (en) | 2015-11-09 | 2020-02-25 | Seagate Technology Llc | Method and apparatus to perform a function level reset in a memory controller |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US20170206165A1 (en) * | 2016-01-14 | 2017-07-20 | Samsung Electronics Co., Ltd. | Method for accessing heterogeneous memories and memory module including heterogeneous memories |
US9891945B2 (en) | 2016-03-21 | 2018-02-13 | Qualcomm Incorporated | Storage resource management in virtualized environments |
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 |
US10580189B2 (en) * | 2016-09-16 | 2020-03-03 | Intel Corporation | Apparatus and method for optimized ray tracing |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
KR20180069960A (ko) * | 2016-12-15 | 2018-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US11003602B2 (en) | 2017-01-24 | 2021-05-11 | Micron Technology, Inc. | Memory protocol with command priority |
US10296473B2 (en) * | 2017-03-24 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for fast execution of in-capsule commands |
US10509569B2 (en) * | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
JP2018169810A (ja) | 2017-03-30 | 2018-11-01 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10635613B2 (en) | 2017-04-11 | 2020-04-28 | Micron Technology, Inc. | Transaction identification |
US10621117B2 (en) * | 2017-06-15 | 2020-04-14 | Micron Technology, Inc. | Controlling memory devices using a shared channel |
US10552271B2 (en) * | 2017-07-31 | 2020-02-04 | International Business Machines Corporation | Switching servers without interrupting a client command-response queue |
US10528414B2 (en) * | 2017-09-13 | 2020-01-07 | Toshiba Memory Corporation | Centralized error handling in application specific integrated circuits |
US10540219B2 (en) * | 2017-09-13 | 2020-01-21 | Toshiba Memory Corporation | Reset and error handling in application specific integrated circuits |
KR20190031683A (ko) * | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI792073B (zh) * | 2017-12-28 | 2023-02-11 | 慧榮科技股份有限公司 | 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及存取安全數位卡的主機 |
KR20190083052A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
US10635350B2 (en) * | 2018-01-23 | 2020-04-28 | Western Digital Technologies, Inc. | Task tail abort for queued storage tasks |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102516547B1 (ko) * | 2018-03-08 | 2023-04-03 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110851073B (zh) * | 2018-08-20 | 2023-06-02 | 慧荣科技股份有限公司 | 储存装置及巨集指令的执行方法 |
CN110851372B (zh) | 2018-08-20 | 2023-10-31 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
US10949117B2 (en) | 2018-09-24 | 2021-03-16 | Micron Technology, Inc. | Direct data transfer in memory and between devices of a memory module |
US10732892B2 (en) | 2018-09-24 | 2020-08-04 | Micron Technology, Inc. | Data transfer in port switch memory |
CN110968441B (zh) * | 2018-09-28 | 2023-06-06 | 慧荣科技股份有限公司 | 存储卡存取装置及方法 |
US10580481B1 (en) * | 2019-01-14 | 2020-03-03 | University Of Virginia Patent Foundation | Methods, circuits, systems, and articles of manufacture for state machine interconnect architecture using embedded DRAM |
KR20210043819A (ko) * | 2019-10-14 | 2021-04-22 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
US11481152B2 (en) | 2019-12-30 | 2022-10-25 | Micron Technology, Inc. | Execution of commands addressed to a logical block |
US11294832B2 (en) * | 2020-03-20 | 2022-04-05 | Western Digital Technologies, Inc. | Systems and methods for queuing device management configuration requests |
US11789642B2 (en) * | 2021-06-28 | 2023-10-17 | Micron Technology, Inc. | Loading data from memory during dispatch |
CN114116008B (zh) * | 2022-01-26 | 2022-05-27 | 深圳佰维存储科技股份有限公司 | 命令队列管理方法、装置、可读存储介质及电子设备 |
US11790961B2 (en) * | 2022-03-11 | 2023-10-17 | Micron Technology, Inc. | Memory device access techniques |
US20240192888A1 (en) * | 2022-03-17 | 2024-06-13 | Micron Technology, Inc. | Low-latency processing for unmap commands |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994009436A1 (en) * | 1992-10-13 | 1994-04-28 | Compaq Computer Corporation | Disk array controller having advanced internal bus protocol |
US5659690A (en) * | 1992-10-15 | 1997-08-19 | Adaptec, Inc. | Programmably configurable host adapter integrated circuit including a RISC processor |
US5634081A (en) * | 1994-03-01 | 1997-05-27 | Adaptec, Inc. | System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer |
US5504868A (en) * | 1994-03-01 | 1996-04-02 | Adaptec, Incorporated | SCSI command descriptor block parsing state machine |
JPH08328880A (ja) * | 1995-05-31 | 1996-12-13 | Mitsubishi Electric Corp | 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム |
US5812824A (en) * | 1996-03-22 | 1998-09-22 | Sun Microsystems, Inc. | Method and system for preventing device access collision in a distributed simulation executing in one or more computers including concurrent simulated one or more devices controlled by concurrent one or more tests |
US5974499A (en) * | 1997-04-23 | 1999-10-26 | Micron Technology, Inc. | Memory system having read modify write function and method |
US6397316B2 (en) * | 1997-07-24 | 2002-05-28 | Intel Corporation | System for reducing bus overhead for communication with a network interface |
US6098114A (en) * | 1997-11-14 | 2000-08-01 | 3Ware | Disk array system for processing and tracking the completion of I/O requests |
US6134630A (en) * | 1997-11-14 | 2000-10-17 | 3Ware | High-performance bus architecture for disk array system |
US6205494B1 (en) * | 1998-12-18 | 2001-03-20 | Western Digital Corporation | Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers |
US8296467B2 (en) * | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
US6671773B2 (en) * | 2000-12-07 | 2003-12-30 | Spinnaker Networks, Llc | Method and system for responding to file system requests |
US7085723B2 (en) * | 2001-01-12 | 2006-08-01 | International Business Machines Corporation | System and method for determining utterance context in a multi-context speech application |
JP3617631B2 (ja) * | 2001-07-19 | 2005-02-09 | 富士通株式会社 | ストレージ制御装置及びその制御方法 |
JP3878508B2 (ja) * | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
US6985977B2 (en) * | 2002-08-30 | 2006-01-10 | National Instruments Corporation | System and method for transferring data over a communication medium using double-buffering |
US9591112B2 (en) | 2002-12-31 | 2017-03-07 | Google Technology Holdings LLC | Command queuing for multimedia storage devices |
US7650385B2 (en) * | 2003-11-20 | 2010-01-19 | International Business Machines Corporation | Assigning priorities |
US7328317B2 (en) * | 2004-10-21 | 2008-02-05 | International Business Machines Corporation | Memory controller and method for optimized read/modify/write performance |
US7222223B2 (en) * | 2004-10-29 | 2007-05-22 | Pillar Data Systems, Inc. | Management of I/O operations in data storage systems |
JP2006139548A (ja) * | 2004-11-12 | 2006-06-01 | Hitachi Global Storage Technologies Netherlands Bv | メディア・ドライブ及びそのコマンド実行方法 |
US7774512B2 (en) * | 2005-02-08 | 2010-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for hybrid DMA queue and DMA table |
US7418531B2 (en) * | 2005-05-04 | 2008-08-26 | Pillar Data Systems, Inc. | Quality of service for data storage volumes |
US20060271739A1 (en) * | 2005-05-24 | 2006-11-30 | Shu-Fang Tsai | Management of transfer of commands |
US7493430B2 (en) * | 2005-07-14 | 2009-02-17 | Quantum Corporation | Data flow control and bridging architecture enhancing performance of removable data storage systems |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
JP2009518759A (ja) * | 2005-12-08 | 2009-05-07 | サンディスク コーポレーション | コマンドパススルー機構を備えたメディアカード |
US20070260756A1 (en) * | 2006-01-05 | 2007-11-08 | Pao-Ching Tseng | Method for Processing Command via SATA Interface |
US20070226401A1 (en) * | 2006-03-21 | 2007-09-27 | Pa-Chung Huang | Data accessing structure and method for flash memory |
US20080040519A1 (en) * | 2006-05-02 | 2008-02-14 | Alacritech, Inc. | Network interface device with 10 Gb/s full-duplex transfer rate |
US7644204B2 (en) * | 2006-10-31 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SCSI I/O coordinator |
KR20080044502A (ko) * | 2006-11-16 | 2008-05-21 | 삼성전자주식회사 | 메모리 카드 시스템 및 그것의 패스워드 전송 방법 |
US7644205B1 (en) * | 2006-12-15 | 2010-01-05 | Nvidia Corporation | System and method for SAM-3 prioritization in iSCSI using 802.1q ethernet prioritization |
US7630369B1 (en) * | 2006-12-15 | 2009-12-08 | Nvidia Corporation | System and method for network storage prioritization of demand-page operations |
US20080162735A1 (en) * | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
KR20080105390A (ko) * | 2007-05-30 | 2008-12-04 | 삼성전자주식회사 | 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 |
US20090094678A1 (en) * | 2007-10-05 | 2009-04-09 | Nokia Corporation | Mulimode device |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US8078771B2 (en) * | 2008-10-31 | 2011-12-13 | Lsi Corporation | Sending large command descriptor block (CDB) structures in serial attached SCSI (SAS) controller |
US8732339B2 (en) * | 2009-03-24 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | NPIV at storage devices |
US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US8176232B2 (en) * | 2009-05-11 | 2012-05-08 | Micron Technology, Inc. | Dedicated interface to factory program phase-change memories |
US8225052B2 (en) * | 2009-06-03 | 2012-07-17 | Micron Technology, Inc. | Methods for controlling host memory access with memory devices and systems |
WO2010143209A1 (en) * | 2009-06-10 | 2010-12-16 | Francesco Falanga | Suspension of memory operations for reduced read latency in memory arrays |
TWI424435B (zh) | 2009-08-31 | 2014-01-21 | Phison Electronics Corp | 對快閃記憶體下達程式化指令的方法、控制器與儲存系統 |
US8615621B2 (en) | 2009-12-24 | 2013-12-24 | St-Ericsson Sa | Memory management |
US8468319B1 (en) * | 2010-01-19 | 2013-06-18 | Infinidat Ltd. | Concurrent access to a single disk track by combining reads and writes to a disk with a mask |
KR101654807B1 (ko) * | 2010-05-07 | 2016-09-07 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP5677336B2 (ja) * | 2011-08-01 | 2015-02-25 | 株式会社東芝 | メモリ・デバイス |
US8423722B1 (en) * | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US9021146B2 (en) * | 2011-08-30 | 2015-04-28 | Apple Inc. | High priority command queue for peripheral component |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
JP5547148B2 (ja) * | 2011-09-13 | 2014-07-09 | 株式会社東芝 | メモリデバイス |
JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
US10803970B2 (en) | 2011-11-14 | 2020-10-13 | Seagate Technology Llc | Solid-state disk manufacturing self test |
JP6169615B2 (ja) * | 2012-01-27 | 2017-07-26 | マーベル ワールド トレード リミテッド | システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム |
KR20130087936A (ko) * | 2012-01-30 | 2013-08-07 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이의 프로그램 방법 |
US9135192B2 (en) * | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9141296B2 (en) * | 2012-05-31 | 2015-09-22 | Sandisk Technologies Inc. | Method and host device for packing and dispatching read and write commands |
JP5814871B2 (ja) | 2012-07-06 | 2015-11-17 | 株式会社東芝 | メモリシステム |
KR101988260B1 (ko) * | 2012-09-14 | 2019-06-12 | 삼성전자주식회사 | 임베디드 멀티미디어 카드, 및 이의 동작 방법 |
US9335952B2 (en) * | 2013-03-01 | 2016-05-10 | Ocz Storage Solutions, Inc. | System and method for polling the status of memory devices |
US9170755B2 (en) * | 2013-05-21 | 2015-10-27 | Sandisk Technologies Inc. | Command and data selection in storage controller systems |
US9519440B2 (en) * | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US9244631B2 (en) * | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
US9454310B2 (en) * | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
-
2014
- 2014-02-14 US US14/181,089 patent/US9454310B2/en active Active
-
2015
- 2015-02-12 WO PCT/US2015/015612 patent/WO2015123413A1/en active Application Filing
- 2015-02-12 EP EP18196928.8A patent/EP3493055B1/en active Active
- 2015-02-12 EP EP22161719.4A patent/EP4033353A1/en active Pending
- 2015-02-12 JP JP2016550832A patent/JP6134453B2/ja active Active
- 2015-02-12 EP EP15749451.9A patent/EP3105675B1/en active Active
- 2015-02-12 CN CN201580008744.0A patent/CN106030521A/zh active Pending
- 2015-02-12 CN CN202010587913.3A patent/CN111722809A/zh active Pending
- 2015-02-12 KR KR1020167025100A patent/KR101702280B1/ko active IP Right Grant
- 2015-02-13 TW TW104105193A patent/TWI543070B/zh active
-
2016
- 2016-08-25 US US15/246,735 patent/US10146477B2/en active Active
-
2018
- 2018-12-03 US US16/207,453 patent/US10884661B2/en active Active
-
2021
- 2021-01-04 US US17/140,625 patent/US11494122B2/en active Active
-
2022
- 2022-11-07 US US17/981,703 patent/US11954370B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10884661B2 (en) | 2021-01-05 |
EP3105675A4 (en) | 2017-10-18 |
US20230054662A1 (en) | 2023-02-23 |
JP6134453B2 (ja) | 2017-05-24 |
CN106030521A (zh) | 2016-10-12 |
KR20160114726A (ko) | 2016-10-05 |
US9454310B2 (en) | 2016-09-27 |
US11494122B2 (en) | 2022-11-08 |
US20210200478A1 (en) | 2021-07-01 |
TW201543347A (zh) | 2015-11-16 |
EP3493055A1 (en) | 2019-06-05 |
WO2015123413A1 (en) | 2015-08-20 |
EP3105675B1 (en) | 2018-11-07 |
CN111722809A (zh) | 2020-09-29 |
EP3105675A1 (en) | 2016-12-21 |
EP4033353A1 (en) | 2022-07-27 |
US20160364179A1 (en) | 2016-12-15 |
US20150234601A1 (en) | 2015-08-20 |
KR101702280B1 (ko) | 2017-02-03 |
US11954370B2 (en) | 2024-04-09 |
EP3493055B1 (en) | 2022-04-20 |
JP2017513089A (ja) | 2017-05-25 |
US20190102112A1 (en) | 2019-04-04 |
US10146477B2 (en) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI543070B (zh) | 命令排序 | |
US9348521B2 (en) | Semiconductor storage device and method of throttling performance of the same | |
US8862807B2 (en) | Semiconductor storage device and method of throttling performance of the same | |
KR20200085967A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US11288014B2 (en) | Controller, operating method of controller and storage device including the same | |
TWI637270B (zh) | 混合式記憶體驅動器,電腦系統,及用於操作多重模式混合式驅動器之相關方法 | |
TWI737031B (zh) | 多平面上頁面的片段資料讀取方法及電腦程式產品 | |
US20210064542A1 (en) | Memory controller, storage device including memory controller, and operating method of memory controller | |
KR20170094674A (ko) | 데이터 저장 장치 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
US20240256186A1 (en) | Command queuing | |
KR20200015260A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11989451B2 (en) | Method of operating a memory controller in which commands are stored in urgent or normal queues based on priority. a nonvolatile memory device including a buffer selector and a storage device thereof | |
KR20200073122A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |