TW202205100A - 儲存裝置以及命令處理方法 - Google Patents
儲存裝置以及命令處理方法 Download PDFInfo
- Publication number
- TW202205100A TW202205100A TW110114904A TW110114904A TW202205100A TW 202205100 A TW202205100 A TW 202205100A TW 110114904 A TW110114904 A TW 110114904A TW 110114904 A TW110114904 A TW 110114904A TW 202205100 A TW202205100 A TW 202205100A
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- queue
- controller
- storage device
- host
- Prior art date
Links
Images
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
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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
-
- 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/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0658—Controller construction 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/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]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
Abstract
本發明揭露用於處理自主機至儲存裝置的命令的方法及系統。儲存裝置的第一控制器經由第一佇列接收來自主機的第一命令。第一佇列暴露於主機。儲存裝置基於第一命令生成第二命令,且經由第二佇列將第二命令提交至儲存裝置的第二控制器。第二命令及第二佇列不暴露於主機。第二控制器獲得及處理來自第二佇列的第二命令,其中處理用於存取儲存裝置的非揮發性儲存媒體。基於第二命令的狀態,第一控制器將指示第一命令完成的訊號傳輸至主機。
Description
根據本揭露的實施例的一或多個態樣是關於儲存裝置,且更特定言之,是關於處理用於存取儲存裝置的命令。
主機計算裝置可利用儲存介面協定來存取非揮發性儲存裝置,諸如(例如)固態驅動機(solid state drive;SSD)。非揮發性儲存裝置可包含用於處理使用協定生成的命令的控制器。隨著協定發展,愈來愈多特徵(例如命令)可添加至協定。舊版SSD可能無法在不必重新設計SSD控制器的情況下處理添加的特徵。因此,期望具有即使在將命令添加至協定時亦能夠處理來自主機的命令而不必重新設計SSD控制器的SSD控制器。
本揭露的實施例是針對一種用於處理自主機至儲存裝置的命令的方法。方法包含:由儲存裝置的第一控制器經由第一佇列接收來自主機的第一命令。第一佇列暴露於主機。儲存裝置基於第一命令生成第二命令,且經由第二佇列將第二命令提交至儲存裝置的第二控制器。第二命令及第二佇列不暴露於主機。第二控制器獲得及處理來自第二佇列的第二命令,其中處理用於存取儲存裝置的非揮發性儲存媒體。基於第二命令的狀態,第一控制器將指示第一命令完成的訊號傳輸至主機。
根據一個實施例,第二命令包含第一命令的一部分。
根據一個實施例,第一命令與操作以及第一記憶體範圍及第二記憶體範圍相關聯,其中第二命令包含操作及第一記憶體範圍。操作可包括解除配置第一記憶體範圍及第二記憶體範圍。在一個實施例中,方法更包括:由儲存裝置生成包含操作及第二記憶體範圍的第三命令;由儲存裝置經由第二佇列將第三命令提交至第二控制器;以及由第二控制器獲得及處理來自第二佇列的第三命令。根據一個實施例,由第一控制器將指示第一命令完成的訊號傳輸至主機是基於第二命令的狀態及第三命令的狀態。可同時獲得及處理第二命令及第三命令。
根據一個實施例,第二命令與第一命令不同。
根據一個實施例,儲存裝置為非揮發性儲存裝置,第一控制器及第二控制器遵守非揮發性記憶體快速(non-volatile memory express;NVMe)協定,第一佇列包括遵守NVMe協定的提交佇列,且第一命令包括NVMe命令。
根據一個實施例,方法更包括由第二控制器將第一完成狀態提交至第一完成佇列,其中第一完成佇列不暴露於主機。
根據一個實施例,訊號的傳輸包含基於對第一完成佇列的第一完成狀態的處理而將第二完成狀態提交至第二完成佇列,其中第二完成佇列暴露於主機。
本揭露的實施例亦是針對一種儲存裝置,所述儲存裝置包含非揮發性儲存媒體及耦接至非揮發性儲存媒體的一或多個處理器。一或多個處理器可經組態以分別:經由第一控制器及第一佇列接收來自主機的第一命令,其中第一佇列暴露於主機;基於第一命令生成第二命令;經由第二佇列將第二命令提交至第二控制器,其中第二命令及第二佇列不暴露於主機;經由第二控制器獲得及處理來自第二佇列的第二命令,其中一或多個處理器經進一步組態以存取儲存裝置的非揮發性儲存媒體以處理第二命令;以及基於第二命令的狀態,經由第一控制器將指示第一命令完成的訊號傳輸至主機。
如所屬領域中具有通常知識者應認識到,本揭露的實施例允許在不必重新設計舊版儲存控制器的情況下處理命令及/或擴展。另外,將主機命令分離成可並行處理的兩個或大於兩個內部命令可導致儲存裝置的更佳效能及/或處理額外負荷的減小。
當相對於以下詳細描述、所附申請專利範圍以及隨附圖式考慮時,將更充分地理解本揭露的實施例的此等及其他特徵、態樣以及優點。當然,本發明的實際範疇由所附申請專利範圍界定。
在下文中,將參看隨附圖式更詳細地描述實例實施例,在所述圖式中,相同附圖標號始終指相同元件。然而,本揭露可以各種不同形式體現,且不應解釋為僅限於本文中的所示出的實施例。確切而言,提供此等實施例作為實例,使得本揭露將為透徹且完整的,且將向所屬技術領域中具通常知識者充分傳達本揭露的態樣及特徵。因此,可能未描述不為於所屬領域具有通常知識者完整理解本揭露的態樣及特徵所必需的過程、元件以及技術。除非另外指出,否則相同圖式元件符號貫穿附圖及書面描述指代相同元件,且因此,可不重複其描述。另外,在圖式中,可出於清楚起見而放大及/或簡化元件、層以及區的相對大小。
主機計算裝置可利用通訊協定來存取非揮發性儲存裝置,諸如(例如)固態驅動機(SSD)。非揮發性儲存裝置可包含用於處理使用協定生成的命令的控制器。隨著協定發展,愈來愈多特徵(例如命令)可添加至協定。舊版SSD可能無法在不必重新設計SSD控制器的情況下處理添加的特徵。因此,期望具有即使在將命令添加至協定時亦能夠處理來自主機的命令而不必重新設計SSD控制器的SSD控制器。
一般而言,本揭露的實施例是針對一種經組態以處理來自主機的遵守通訊協定的命令的儲存裝置。通訊協定可為(例如)非揮發性記憶體快速(NVMe)協定,但本揭露的實施例不限於此,且可擴展至如所屬領域中具有通常知識者將瞭解的其他協定。
在一個實施例中,來自主機的命令分解成一或多個內部命令以供儲存裝置執行。儲存裝置可包含經組態以提取及執行一或多個內部命令的內部控制器。在一個實施例中,主機與內部控制器之間未設置通訊路徑。因此,內部控制器不暴露於主機。
在一個實施例中,主機使用介面(諸如(例如)NVMe介面)將主機命令提交至暴露於主機且與儲存裝置相關聯的外部提交佇列。儲存裝置的外部控制器可提取/獲得主機命令,且將提取的命令傳遞至儲存裝置的處理器以生成內部命令。內部命令可提交至一或多個內部提交佇列。在一個實施例中,內部提交佇列及內部控制器不暴露(例如隱藏)於主機。
內部控制器可提取/獲得內部命令,且將其作為遵守通訊協定(例如NVMe協定)的標準命令或供應商特定命令來調度以供處理器執行,如同所述命令源自主機一般。在一個實施例中,內部命令由儲存裝置彼此同時(例如並行)提取/獲得及執行。術語同時及並行可意謂實質上同時,以比依序處理更快的速率以及/或類似者。
圖1為根據一個實施例的資料儲存及擷取系統100的方塊圖。系統包含經組態具有相同或不同操作系統的一或多個主機裝置102a至主機裝置102b(統稱為102)。一或多個主機裝置102可經由儲存介面匯流排106a、儲存介面匯流排106b(統稱為106)耦接至資料儲存裝置104。儲存介面匯流排106可為例如快捷外設互聯標準(Peripheral Component Interconnect Express;PCIe)匯流排。在一個實施例中,主機裝置102使用儲存介面協定經由儲存介面匯流排106傳送及接收來自資料儲存裝置104的資料。儲存介面協定可為如2020年3月9日發佈的可在http://nvmexpress.org獲得的NVM快速基礎規範修訂本1.4a(或之前或將來的修訂本)中描述的NVMe協定,其內容以引用的方式併入本文中。出於描述本發明實施例的目的,將NVMe協定用作實例。然而,所屬領域中具有通常知識者應理解,在不脫離本發明概念的精神及範疇的情況下,各種實施例將擴展至類似於NVMe協定的其他當前或將來儲存介面協定。
主機102可為具有經組態以處理資料的處理器108a、處理器108b(統稱為108)的計算裝置。處理器108可為通用中央處理單元(central processing unit;CPU)、特殊應用積體電路(application specific integrated circuit;ASIC)、場可程式化閘陣列(field programmable gate array;FPGA)或經組態具有軟體指令、微碼以及/或韌體的任何其他形式的處理單元。
在一個實施例中,處理器108耦接至主機記憶體空間110a、主機記憶體空間110b(統稱為110)。主機記憶體空間110可為靜態隨機存取記憶體(static random access memory;SRAM)、動態隨機存取記憶體(dynamic random access memory;DRAM)以及/或類似者。應用程式可儲存於主機記憶體空間110中以由處理器108執行。應用可向儲存裝置104請求儲存資料或自儲存裝置104擷取資料。應用可基於資料的儲存或擷取而生成輸出。輸出可為例如在顯示裝置上顯示擷取到的資料。在一個實施例中,由儲存裝置使用內部命令來處理來自應用的請求允許更快且以更少額外負荷處理請求。
主機記憶體空間110亦可儲存一或多個外部提交佇列(submission queue;SQ)112a、外部提交佇列112b(統稱為112)及一或多個外部完成佇列(completion queue;CQ)114a、外部完成佇列114b(統稱為114)。主機102可使用外部提交佇列112來提交儲存介面命令以供儲存裝置104執行,且在已執行命令之後使用外部完成佇列114接收來自儲存裝置104的完成訊息。在一些實施例中,外部提交佇列112及外部完成佇列114包含於儲存裝置104的控制器記憶體緩衝器(controller memory buffer;CMB)中而不是主機記憶體空間110中(或除主機記憶體空間110以外)。因此,對主機記憶體空間110的引用可理解為包含對CMB的引用。在任一情境下,外部提交佇列112及外部完成佇列114暴露於主機,且可由主機存取。
在一個實施例中,主機記憶體空間110儲存物理區域頁(Physical Region Page;PRP)/分散聚合表(Scatter Gather List;SGL)條目116a、物理區域頁/分散聚合表條目116b(統稱為116)及其他資料117a、資料117b(統稱為117)。舉例而言,PRP/SGL條目116可描述主機記憶體空間110的物理記憶體位置,用於為NVMe讀取命令寫入自儲存裝置104讀取的資料,及用於為NVMe寫入命令讀取待寫入至儲存裝置104的資料。對於某些儲存介面命令,邏輯區塊位址(logical block address;LBA)範圍可作為資料117儲存於主機記憶體空間中,而不是將範圍包含於命令本身中。此類命令的實例為資料集管理解除配置命令,其可用於解除配置/取消映射由主機提供的LBA範圍。
儲存裝置104可為非揮發性儲存裝置,諸如(例如)固態驅動機(SSD)。儲存裝置104可包含通訊介面118、NVMe子系統120以及裝置控制器122。儘管將NVMe子系統120及裝置控制器122描繪為單獨模組,但應理解NVMe子系統及裝置控制器122的功能性亦可合併為單個模組。在一個實施例中,通訊介面118包含PCIe埠及端點,其使得通訊能夠自主機102輸入至儲存裝置104且使得通訊能夠自儲存裝置104輸出至主機102。
NVMe子系統120可包含(但不限於)一或多個外部控制器124、外部控制器124b(統稱為124)及一或多個內部控制器126。外部控制器124及內部控制器126可經由諸如(例如)特殊應用積體電路(ASIC)的一或多個處理器來實施。在一個實施例中,一或多個外部控制器124經由PCIe介面118暴露於主機,且經調用以處理外部提交佇列112及外部完成佇列114的佇列操作。舉例而言,特定外部控制器124可提取特定外部提交佇列112中的儲存介面命令,且基於所請求的命令的狀態(例如已完成所請求的命令的指示)將完成狀態置放於對應的外部完成佇列114中。
在一個實施例中,特定外部控制器124與名稱空間中的一或多者相關聯。就此而言,儲存裝置104的邏輯空間可分成一或多個邏輯空間/名稱空間,每一名稱空間由唯一名稱空間ID(namespace ID;NSID)識別。舉例而言,假定1TB儲存裝置使用4K邏輯區塊,可配置具有以下容量的三個名稱空間:512GB、256GB以及256GB。由主機102提交的命令可定向至經由NSID識別的特定名稱空間。
在一個實施例中,一或多個內部控制器126不暴露於(例如隱藏)主機102,且不可由主機102存取。就此而言,主機102與內部控制器126之間不提供通訊介面(例如PCIe介面)。根據一個實施例,內部控制器126可模擬外部控制器124的功能性。就此而言,內部控制器可與裝置控制器122交互,如同其為外部控制器124一般。
在一個實施例中,儲存裝置104包含儲存一或多個內部提交佇列130及一或多個內部完成佇列132的內部CMB 128。CMB 128可儲存其他資料134(例如內部資料緩衝器)及內部PRP/SGL條目136。在一個實施例中,內部控制器126存取內部CMB 128以提取及處理由裝置控制器126提交的內部命令。內部CMB 128的內容及內部命令的處理可不暴露於(例如隱藏)主機且不可由主機存取。
在一個實施例中,裝置控制器122與外部控制器124及內部控制器126交互以執行主機102請求的命令。裝置控制器122可包含(但不限於)一或多個處理器140及媒體介面142。一或多個處理器140可經組態以執行用於處理至外部控制器124及內部控制器126以及來自外部控制器124及內部控制器126的命令且用於管理儲存裝置104的操作的電腦可讀指令。由一或多個處理器140執行的電腦可讀指令可為例如韌體程式碼。
在一個實例中,一或多個處理器140可經組態以與外部控制器124及內部控制器126交互以接收至NVM媒體144或來自NVM媒體144的寫入命令或讀取命令。一或多個處理器140可經由媒體介面142與NVM媒體144交互以實現寫入動作或讀取動作。NVM媒體144可包含一或多種類型的非揮發性記憶體,諸如(例如)快閃記憶體。
在一個實施例中,儲存裝置104更包含用於在儲存裝置104的操作期間短期儲存或暫時記憶的內部記憶體138。內部記憶體138可包含動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)以及/或資料緊密耦合記憶體(Data Tightly Coupled Memory;DTCM)。內部記憶體138可代替內部CMB 128或除內部CMB 128以外用於儲存儲存於內部CMB 128中的資料中的一些或全部,諸如(例如)內部提交佇列130、完成佇列132、資料134、PRP/SGL條目136以及/或類似者。因此,對內部CMB 128的引用可理解為包含對內部記憶體138的引用。
圖2為根據一個實施例的用於提交及處理與儲存介面協定相關聯的命令或供應商定義的命令的各種模組的概念佈局圖。各種模組可由外部控制器124及/或內部控制器126代管。此外,儘管假定模組中的一或多者為單獨功能單元,但所屬技術領域中具有通常知識者將認識到,在不脫離本發明概念的精神和範疇的情況下,模組的功能性可組合或整合至單個模組中,或進一步細分成另外的子模組。
在一個實施例中,命令模組200及PRP/SGL提取模組202的實例包含於外部控制器124及內部控制器126兩者中。命令模組200可包含例如命令仲裁子模組、命令提取子模組、命令剖析器子模組以及命令調度器子模組。命令提取子模組可經組態以自外部提交佇列112提取主機命令或自內部提交佇列130提取內部命令。命令仲裁子模組可經組態以調用仲裁突發策略以在各種控制器之間及在所選擇的控制器的各種提交佇列之間進行仲裁,以挑選自其中提取命令的提交佇列。命令剖析器子模組可經組態以剖析提交至外部控制器或內部控制器的命令以檢查及驗證命令格式、NSID有效性、保留狀態、是否需要LBA檢查、基於名稱空間格式的保護資訊有效性以及/或類似者。命令剖析器子模組亦可經組態以基於程式化組態資訊而與LBA重疊檢查器(未繪示)介接,以在LBA重疊檢查對於命令是必要的情況下傳遞命令。命令剖析器子模組亦可判定是否應繞過主機子系統將命令直接發送至媒體介面以提高系統效能。LBA重疊檢查器可負責檢查主機命令或內部命令當前是否正在處理與最新到達的命令相同的範圍。若回答為是,則LBA重疊檢查器可保存最新到達的命令,直至先前提取的且當前正處理的命令完成。命令調度器硬體子模組可負責基於命令的類型(例如效能、非效能或管理)將命令分配至各種處理器。
SGL/PRP提取模組202可經組態以(在外部控制器124的情況下)自主機記憶體提取PRP或SLG條目116,或(在內部控制器126的情況下)自內部CMB 128提取PRP或SGL條目136。在一個實施例中,命令模組200及SGL/PRP提取模組202兩者在分別提取命令及PRP/SGL條目時遵守儲存介面協定。
在一個實施例中,主機102將儲存介面命令提交至外部提交佇列112中的一者。外部控制器124中的一者的命令模組200(例如命令提取子模組)自外部提交佇列112提取/獲得命令,且將命令傳遞至裝置控制器122以供進一步處理。取決於由主機提交的命令的類型,裝置控制器122可存取主機記憶體110以用於讀取處理所提取命令所需的資料117,諸如(例如)LBA範圍。在一個實施例中,若由主機102提交的命令為資料傳送命令,則與外部控制器124相關聯的SGL/PRP提取模組202可自主機記憶體110或CMB提取SGL/PRP條目116,以用於讀取或寫入與資料傳送命令相關聯的資料。
在一個實施例中,裝置控制器122經組態以基於所提取命令而生成一或多個內部命令。一或多個內部命令可包含所提取命令的一部分(例如所提取命令中的操作碼)。在一個實施例中,一或多個內部命令與所提取命令不同。舉例而言,內部命令可具有與所提取命令中的操作碼不同的操作碼。
裝置控制器122可將一或多個內部命令提交至內部提交佇列130,類似於主機102將NVMe命令提交至外部提交佇列112的方式。舉例而言,裝置控制器122可藉由更新硬體門鈴暫存器來告知內部控制器126的命令模組200已提交一或多個內部命令。在一些情況下,由主機102提交的命令可分成多個內部命令。在一個實施例中,多個內部命令由一或多個內部控制器126彼此同時(例如並行地)提交及處理,從而允許增加儲存裝置104的效能。
在一個實施例中,若內部命令需要資料傳送,則內部控制器126的SGL/PRP提取模組202可自內部CMB 128提取內部SGL/PRP條目136,以用於讀取或寫入與內部命令相關聯的資料。內部SGL/PRP條目136可由裝置控制器122生成。在一個實施例中,對於需要自NVM媒體144傳送的讀取操作,內部SGL/PRP條目136可用於目的地緩衝器204。對於需要傳送至NVM媒體144的寫入操作,內部SGL/PRP條目136可用於源緩衝器206。
在一個實施例中,傳送佇列模組208可經組態以基於命令類型(例如讀取或寫入)來處理對將資料傳送至中間緩衝器(未繪示)/自中間緩衝器傳送資料的內部請求。舉例而言,對於內部讀取操作或寫入操作,傳送佇列模組208可自裝置控制器122獲得關於用於控制直接記憶體存取的某些資料結構的資訊,包含傳送(TR)描述符及直接記憶體存取(direct memory access;DMA)描述符。TR描述符可含有用於資料傳送的命令類型(例如讀取或寫入)。DMA描述符可含有關於命令類型的中間緩衝器的資訊。舉例而言,若命令類型為內部讀取命令,則中間緩衝器可為由媒體介面142用於暫時保存自NVM媒體144讀取的資料的中間讀取緩衝器。若命令類型為內部寫入命令,則中間緩衝器可為由媒體介面142用於暫時保存待寫入至NVM媒體144的資料的中間寫入緩衝器。
在一個實施例中,DMA管理器模組210接收DMA描述符以及SGL/PRP條目136,且(經由DMA描述符中提供的中間緩衝器)將資料自源緩衝器206傳送至NVM媒體144以用於內部寫入操作,或(經由DMA描述符中提供的中間緩衝器)將資料自NVM媒體傳送至目的地緩衝器204以用於內部讀取操作。
圖3為根據一個實施例的作為提交佇列條目(SQE)儲存於內部提交佇列130中的內部命令的佈局方塊圖。在一個實施例中,根據用於生成外部命令的儲存介面協定而生成內部命令。就此而言,內部命令的大小可為64個位元組,且可包含命令識別符(identifier;ID)300、操作碼(operation code;OpCode)302、名稱空間ID、緩衝器位址306以及命令參數308。命令ID 300可為向其提交內部命令的內部提交佇列130內的命令ID。
操作碼302可識別待執行的特定命令。在一個實施例中,操作碼為識別NVM命令(例如寫入、讀取、管理、資料集管理或供應商特定命令)的NVMe操作碼。在一些實施例中,操作碼識別內部命令集中可單獨由內部控制器126存取的新命令。
名稱空間ID 304可識別由操作碼302識別的命令在其上操作的名稱空間。緩衝器位址306可包含內部CMB 128中的內部PRP/SGL條目136(或指向PRP/SGL條目的指針)。與待執行的命令相關聯的任何參數可儲存為命令參數308。
圖4為根據一個實施例的用於處理由主機102提交至外部提交佇列112的資料集管理(DSM)命令以自給定名稱空間解除配置(取消映射)給定LBA範圍集的流程圖。過程開始,且在方塊400中,外部控制器124中的一者自外部提交佇列112提取命令,且將其傳遞至裝置控制器122以由處理器140進行預處理。
在方塊402中,處理器140採取某些預處理動作,包含(例如)經由儲存介面匯流排106開始主機直接記憶體存取操作以將LBA範圍自主機記憶體110傳送至儲存裝置的內部記憶體138。此外,處理器140可剖析LBA範圍以識別非連續LBA範圍的總數目。
在方塊404中,處理器140針對由處理器識別的每一非連續LBA範圍生成內部取消映射命令。在一個實施例中,取消映射命令為不為儲存介面協定的一部分的命令。處理器140可將內部取消映射命令提交至內部提交佇列130中的一或多者。
在方塊406至方塊412中處理針對每一LBA範圍提交的取消映射命令。儘管關於針對單個LBA範圍的一個取消映射命令描述了處理,但應瞭解,針對其他LBA範圍提交的其他取消映射命令亦可根據方塊406至方塊412並行處理。
在方塊406中,內部控制器126自內部提交佇列130提取及處理取消映射命令。可調用內部控制器126的命令模組200以自內部提交佇列130提取取消映射命令。在一個實施例中,在取消映射命令的處理不需要資料傳送的條件下,不調用內部控制器126的SGL/PRP提取模組202,且不創建內部PRP/SGL清單136。
在方塊408中,內部控制器126(例如LBA重疊檢查器)判定內部取消映射命令中的LBA範圍是否與代表主機126處理的命令的LBA重疊。舉例而言,取消映射命令的LBA範圍可與主機126當前進行讀取操作的LBA位址重疊。若偵測到重疊,則內部控制器126可等待直至主機命令完成後,再繼續進行LBA範圍的取消映射。
然而,若未偵測到重疊,則在方塊410中,內部控制器126經由裝置控制器122將一或多個命令傳輸至媒體介面142,以在NVM媒體上執行LBA範圍的實際取消映射操作。應理解,在將一或多個命令遞送至媒體介面142之前,亦可調用命令剖析器子模組以執行對取消映射命令的其他檢查及驗證,諸如(例如)檢查及驗證命令格式、NSID有效性、保留狀態、是否需要LBA檢查、基於名稱空間格式的保護資訊有效性以及/或類似者。
在判定取消映射操作的完成狀態後,在方塊412中,內部控制器126將內部完成條目提交至與提交內部取消映射命令的內部提交佇列130相關聯的內部完成佇列132。
在方塊414中,處理器140(例如,基於內部取消映射命令的狀態)判定所提交的DSM解除配置命令的所有LBA範圍是否已解除配置。若回答為是,則在方塊416中,外部控制器124將外部完成條目提交至對應於向其提交DSM解除配置命令的外部提交佇列112的外部完成佇列114。
應瞭解,根據本揭露的實施例的DSM解除配置命令的處理提供對資料儲存裝置104的功能的技術改良。舉例而言,由於將DSM解除配置命令分成獨立的取消映射命令(所述命令各自具有單獨LBA範圍)而引起的LBA範圍的並行處理允許儲存裝置的較佳效能。另外,(例如,經由硬體)檢查每一LBA範圍的重疊減少處理器140的額外負荷,此是因為可避免對範圍的手動鎖定及解鎖。另外,在儲存裝置包含兩個子系統(例如用於與主機102交互的主機子系統及用於與NVM媒體144交互的快閃子系統),其中專用處理器(例如處理器140)執行韌體的實施例中,可降低主機子系統(例如在處理器140上運行的韌體)的額外負荷,此是因為可在沒有主機子系統的大量參與的情況下處理內部命令。
應瞭解,上文所論述的一或多個處理器包含例如特殊應用積體電路(ASIC)、通用或專用中央處理單元(central processing units;CPU)、數位訊號處理器(digital signal processors;DSP)、圖形處理單元(graphics processing units;GPU)以及/或可程式化邏輯裝置,諸如場可程式化閘陣列(FPGA)。在處理器中,如本文所使用,每一功能可由硬體、韌體以及/或軟體執行。處理器可製造於單個印刷電路板(printed circuit board;PCB)上或分佈於若干互連PCB上。處理器可含有其他處理電路;例如,處理電路可包含在PCB上互連的兩個處理電路FPGA及CPU。
將理解,儘管本文中可使用術語「第一」、「第二」、「第三」等來描述各種元件、組件、區、層以及/或區段,但此等元件、組件、區、層以及/或區段不應受此等術語限制。此等術語僅用於將一個元件、組件、區、層或區段與另一元件、組件、區、層或區段區分開。因此,在不脫離本揭露內容的精神及範疇的情況下,本文中所論述的第一元件、組件、區、層或區段可稱為第二元件、組件、區、層或區段。
本文中所使用的術語僅出於描述特定實施例的目的,且並不意欲限制本發明概念。如本文中所使用,術語「實質上」、「約」以及類似術語用作表示近似的術語且不用作表示程度的術語,且意欲解釋將由所屬領域中具有通常知識者識別的量測值或計算值的固有偏差。
如本文中所使用,除非上下文另外明確地指示,否則單數形式「一(a/an)」意欲亦包含複數形式。應進一步理解,術語「包括(comprises/comprising)」在用於本說明書中時指定所陳述的特徵、整數、步驟、操作、元件以及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件以及/或其群組的存在或添加。如本文中所用,術語「及/或」包含相關聯列舉項目中的一或多者的任何組合及所有組合。諸如「……中的至少一者」的表述在位於元件清單之前時修飾整個元件清單,而並不修飾清單中的個別元件。另外,當描述本發明概念的實施例時「可」的使用是指「本揭露的一或多個實施例」。此外,術語「例示性」意欲指代實例或說明。如本文中所使用,可認為術語「使用(use/using/used)」分別與術語「利用(utilize/utilizing/utilized)」同義。
應理解,當將元件或層稱為「在」另一元件或層「上」、「連接至」另一元件或層、「耦接至」另一元件或層或「鄰近於」另一元件或層時,所述元件或層可直接在另一元件或層上、連接至另一元件或層、耦接至另一元件或層或鄰近於另一元件或層,或可存在一或多個介入元件或層。相比而言,當元件或層稱為「直接在」另一元件或層「上」、「直接連接至」另一元件或層、「直接耦接至」另一元件或層或「緊鄰於」另一元件或層時,不存在介入元件或介入層。
本文中所列舉的任何數值範圍均意欲包含所列舉的範圍內包含的具有相同數值精確度的所有子範圍。舉例而言,「1.0至10.0」的範圍意欲包含所列舉的最小值1.0與所列舉的最大值10.0之間(且包含所列舉的最小值1.0與所列舉的最大值10.0)的所有子範圍,亦即,具有等於或大於1.0的最小值及等於或小於10.0的最大值,諸如,2.4至7.6。本文中所列舉的任何最大數值限制意欲包含經包含於其中的所有較低數值限制,且在本說明書中所列舉的任何最小數值限制意欲包含經包含於其中的所有較高數值限制。
儘管本文中已具體地描述及說明用於處理儲存介面命令的系統及方法的例示性實施例,但許多修改及變化對於所屬領域中具有通常知識者將是顯而易見的。因此,應理解,除如在本文中具體描述外,可體現用於處理根據本揭露的原理建構的儲存介面命令的系統及方法。本揭露亦定義於以下申請專利範圍及其等效物中。
100:資料儲存及擷取系統
102、102a、102b:主機裝置
104:資料儲存裝置
106、106a、106b:儲存介面匯流排
108、108a、108b、140:處理器
110、110a、110b:主機記憶體空間
112、112a、112b:外部提交佇列
114、114a、114b:外部完成佇列
116、116a、116b:物理區域頁/分散聚合表條目
117、117a、117b、134:資料
118:通訊介面
120:NVMe子系統
122:裝置控制器
124a、124b:外部控制器
126:內部控制器
128:內部CMB
130:內部提交佇列
132:內部完成佇列
136:內部PRP/SGL條目
138:內部記憶體
142:媒體介面
144:NVM媒體
200:命令模組
202:PRP/SGL提取模組
204:目的地緩衝器
206:源緩衝器
208:傳送佇列模組
210:DMA管理器模組
300:命令識別符
302:操作碼
304:名稱空間ID
306:緩衝器位址
308:命令參數
400、402、404、406、408、410、412、414、416:方塊
參考以下圖式描述本發明實施例的非限制性及非詳盡性實施例,其中除非另外指定,否則在各種視圖中,相同圖式元件符號指代相同的部件。
圖1為根據一個實施例的資料儲存及擷取系統的方塊圖。
圖2為根據一個實施例的用於提交及處理與儲存通訊協定相關聯的命令或供應商定義的命令的各種模組的概念佈局圖。
圖3為根據一個實施例的作為提交佇列條目(submission queue entry;SQE)儲存於內部提交佇列中的內部命令的佈局方塊圖。
圖4為根據一個實施例的用於處理用於自給定名稱空間解除配置(取消映射)給定邏輯區塊位址範圍集的資料集管理(dataset management;DSM)命令的流程圖。
100:資料儲存與擷取系統
102a、102b:主機裝置
104:資料儲存裝置
106a、106b:儲存介面匯流排
108a、108b、140:處理器
110a、110b:主機記憶體空間
112a、112b:外部提交佇列
114a、114b:外部完成佇列
116a、116b:物理區域頁/分散聚合表條目
117a、117b、134:資料
118:通訊介面
120:NVMe子系統
122:裝置控制器
124a、124b:外部控制器
126:內部控制器
128:內部CMB
130:內部提交佇列
132:內部完成佇列
136:內部PRP/SGL條目
138:內部記憶體
142:媒體介面
144:NVM媒體
Claims (18)
- 一種用於處理自主機至儲存裝置的命令的方法,所述方法包括: 由所述儲存裝置的第一控制器經由第一佇列接收來自所述主機的第一命令,其中所述第一佇列暴露於所述主機; 由所述儲存裝置基於所述第一命令生成第二命令; 由所述儲存裝置經由第二佇列將所述第二命令提交至所述儲存裝置的第二控制器,其中所述第二命令及所述第二佇列不暴露於所述主機; 由所述第二控制器獲得及處理來自所述第二佇列的所述第二命令,其中所述處理用於存取所述儲存裝置的非揮發性儲存媒體;以及 基於所述第二命令的狀態,由所述第一控制器將指示所述第一命令完成的訊號傳輸至所述主機。
- 如請求項1所述的方法,其中所述第二命令包含所述第一命令的一部分。
- 如請求項2所述的方法,其中所述第一命令與操作以及第一記憶體範圍及第二記憶體範圍相關聯,其中所述第二命令包含所述操作及所述第一記憶體範圍,所述方法更包括: 由所述儲存裝置生成包含所述操作及所述第二記憶體範圍的第三命令; 由所述儲存裝置經由所述第二佇列將所述第三命令提交至所述第二控制器;以及 由所述第二控制器獲得及處理來自所述第二佇列的所述第三命令, 其中,由所述第一控制器將指示所述第一命令完成的所述訊號傳輸至所述主機是基於所述第二命令的狀態及所述第三命令的狀態。
- 如請求項3所述的方法,其中所述操作包括解除配置所述第一記憶體範圍及所述第二記憶體範圍。
- 如請求項3所述的方法,其中同時獲得及處理所述第二命令及所述第三命令。
- 如請求項1所述的方法,其中所述第二命令與所述第一命令不同。
- 如請求項1所述的方法,其中所述儲存裝置為非揮發性儲存裝置,所述第一控制器及所述第二控制器遵守非揮發性記憶體快速(NVMe)協定,所述第一佇列包括遵守所述非揮發性記憶體快速協定的提交佇列,且所述第一命令包括非揮發性記憶體快速命令。
- 如請求項1所述的方法,更包括: 由所述第二控制器將第一完成狀態提交至第一完成佇列,其中所述第一完成佇列不暴露於所述主機。
- 如請求項8所述的方法,其中所述訊號的傳輸包含基於對所述第一完成佇列的所述第一完成狀態的處理而將第二完成狀態提交至第二完成佇列,其中所述第二完成佇列暴露於所述主機。
- 一種儲存裝置,包括: 非揮發性儲存媒體; 一或多個處理器,耦接至所述非揮發性儲存媒體,所述一或多個處理器經組態以分別: 經由第一控制器及第一佇列接收來自主機的第一命令,其中所述第一佇列暴露於所述主機; 基於所述第一命令生成第二命令; 經由第二佇列將所述第二命令提交至第二控制器,其中所述第二命令及所述第二佇列不暴露於所述主機; 經由所述第二控制器獲得及處理來自所述第二佇列的所述第二命令,其中所述一或多個處理器更經組態以存取所述儲存裝置的所述非揮發性儲存媒體以處理所述第二命令;以及 基於所述第二命令的狀態,經由所述第一控制器將指示所述第一命令完成的訊號傳輸至所述主機。
- 如請求項10所述的儲存裝置,其中所述第二命令包含所述第一命令的一部分。
- 如請求項11所述的儲存裝置,其中所述第一命令與操作以及第一記憶體範圍及第二記憶體範圍相關聯,其中所述第二命令包含所述操作及所述第一記憶體範圍,且其中所述一或多個處理器更經組態以: 生成包含所述操作及所述第二記憶體範圍的第三命令; 經由所述第二佇列將所述第三命令提交至所述第二控制器;以及 經由所述第二控制器獲得來自所述第二佇列的所述第三命令, 其中,由所述第一控制器將指示所述第一命令完成的所述訊號傳輸至所述主機是基於所述第二命令的狀態及所述第三命令的狀態。
- 如請求項12所述的儲存裝置,其中所述操作包括解除配置所述第一記憶體範圍及所述第二記憶體範圍。
- 如請求項12所述的儲存裝置,其中同時獲得及處理所述第二命令及所述第三命令。
- 如請求項10所述的儲存裝置,其中所述第二命令與所述第一命令不同。
- 如請求項10所述的儲存裝置,其中所述儲存裝置為非揮發性儲存裝置,所述第一控制器及所述第二控制器遵守非揮發性記憶體快速(NVMe)協定,所述第一佇列包括遵守所述非揮發性記憶體快速協定的提交佇列,且所述第一命令包括非揮發性記憶體快速命令。
- 如請求項10所述的儲存裝置,其中所述一或多個處理器更經組態以: 經由所述第二控制器將第一完成狀態提交至第一完成佇列,其中所述第一完成佇列不暴露於所述主機。
- 如請求項17所述的儲存裝置,其中所述訊號的傳輸包含基於對所述第一完成佇列的所述第一完成狀態的處理而將第二完成狀態提交至第二完成佇列,其中所述第二完成佇列暴露於所述主機。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063057720P | 2020-07-28 | 2020-07-28 | |
US63/057,720 | 2020-07-28 | ||
US17/024,598 US11733918B2 (en) | 2020-07-28 | 2020-09-17 | Systems and methods for processing commands for storage devices |
US17/024,598 | 2020-09-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202205100A true TW202205100A (zh) | 2022-02-01 |
Family
ID=75746493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110114904A TW202205100A (zh) | 2020-07-28 | 2021-04-26 | 儲存裝置以及命令處理方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11733918B2 (zh) |
EP (1) | EP3945406A1 (zh) |
JP (1) | JP2022025037A (zh) |
KR (1) | KR20220014276A (zh) |
CN (1) | CN114003168B (zh) |
TW (1) | TW202205100A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022021026A (ja) * | 2020-07-21 | 2022-02-02 | キオクシア株式会社 | メモリシステムおよびコマンドをフェッチする方法 |
US20220187992A1 (en) * | 2020-12-16 | 2022-06-16 | Kioxia Corporation | Systems and methods for data copy offload for storage devices |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013109640A1 (en) | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
JP2014130387A (ja) * | 2012-12-27 | 2014-07-10 | Fujitsu Ltd | ストレージコントローラ選択システム、ストレージコントローラ選択方法、およびストレージコントローラ選択プログラム |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
CN107066202B (zh) * | 2013-03-11 | 2020-07-28 | 北京忆恒创源科技有限公司 | 具有多个固态盘的存储设备 |
US9009397B1 (en) | 2013-09-27 | 2015-04-14 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
US8954657B1 (en) * | 2013-09-27 | 2015-02-10 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
JP6181860B2 (ja) * | 2014-04-28 | 2017-08-16 | 株式会社日立製作所 | ストレージ装置とそのデータ処理方法及びストレージシステム |
KR102330389B1 (ko) * | 2014-07-24 | 2021-11-24 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
KR102480016B1 (ko) | 2015-08-18 | 2022-12-21 | 삼성전자 주식회사 | 다수의 맵핑 단위를 이용하는 불휘발성 메모리 시스템 및 그 동작방법 |
US20170123721A1 (en) | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer by command completion in parts |
US10423568B2 (en) | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
JP6448570B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10509592B1 (en) | 2016-07-26 | 2019-12-17 | Pavilion Data Systems, Inc. | Parallel data transfer for solid state drives using queue pair subsets |
US10735513B2 (en) | 2016-09-08 | 2020-08-04 | Toshiba Memory Corporation | Remote NVMe activation |
US9927999B1 (en) * | 2016-09-09 | 2018-03-27 | Western Digital Technologies, Inc. | Trim management in solid state drives |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10331584B2 (en) | 2017-03-09 | 2019-06-25 | Toshiba Memory Corporation | Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas |
US10282094B2 (en) | 2017-03-31 | 2019-05-07 | Samsung Electronics Co., Ltd. | Method for aggregated NVME-over-fabrics ESSD |
US10503434B2 (en) | 2017-04-12 | 2019-12-10 | Micron Technology, Inc. | Scalable low-latency storage interface |
US10996892B2 (en) | 2017-05-03 | 2021-05-04 | Eidetic Communications Inc. | Apparatus and method for controlling data acceleration |
JP6981096B2 (ja) * | 2017-08-17 | 2021-12-15 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置 |
CN109542335B (zh) | 2017-09-22 | 2022-04-01 | 慧荣科技股份有限公司 | 快闪存储器的数据内部搬移方法以及使用该方法的装置 |
TWI639921B (zh) | 2017-11-22 | 2018-11-01 | 大陸商深圳大心電子科技有限公司 | 指令處理方法及使用所述方法的儲存控制器 |
CA3021969A1 (en) | 2017-11-30 | 2019-05-30 | Eidetic Communications Inc. | System and method for tcp offload for nvme over tcp-ip |
KR102446733B1 (ko) * | 2017-11-30 | 2022-09-23 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
US10846017B2 (en) | 2017-12-14 | 2020-11-24 | Western Digital Technologies, Inc. | Secure digital (SD) to NVMe buffer manager |
US10466906B2 (en) | 2017-12-19 | 2019-11-05 | Western Digital Technologies, Inc. | Accessing non-volatile memory express controller memory manager |
US11669267B2 (en) * | 2018-02-09 | 2023-06-06 | Western Digital Technologies, Inc. | Completion entry throttling using host memory |
US10489085B2 (en) * | 2018-02-28 | 2019-11-26 | Micron Technology, Inc. | Latency-based scheduling of command processing in data storage devices |
KR20190110360A (ko) * | 2018-03-20 | 2019-09-30 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 시스템 및 그 동작 방법 |
US10671314B2 (en) | 2018-06-07 | 2020-06-02 | Circuit Blvd., Inc. | Method of copying data between open-channel solid state drives (SSDs) and an apparatus performing the same |
US11614986B2 (en) | 2018-08-07 | 2023-03-28 | Marvell Asia Pte Ltd | Non-volatile memory switch with host isolation |
US11188496B2 (en) | 2018-09-13 | 2021-11-30 | Toshiba Memory Corporation | System and method for storing data using ethernet drives and ethernet open-channel drives |
US10866740B2 (en) | 2018-10-01 | 2020-12-15 | Western Digital Technologies, Inc. | System and method for performance-based multiple namespace resource allocation in a memory |
KR20200074647A (ko) * | 2018-12-17 | 2020-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US10824574B2 (en) * | 2019-03-22 | 2020-11-03 | Dell Products L.P. | Multi-port storage device multi-socket memory access system |
US10915264B2 (en) * | 2019-04-11 | 2021-02-09 | Intel Corporation | Apparatus, systems, and methods to reclaim storage associated with cached data |
KR20200126531A (ko) * | 2019-04-30 | 2020-11-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 커맨드 수행 방법 |
JP2021033845A (ja) * | 2019-08-28 | 2021-03-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11042481B1 (en) * | 2019-12-19 | 2021-06-22 | Micron Technology, Inc. | Efficient processing of commands in a memory sub-system |
US11726704B2 (en) * | 2020-03-31 | 2023-08-15 | Kioxia Corporation | Buffer optimization for solid-state drives |
US11036625B1 (en) * | 2020-04-24 | 2021-06-15 | Micron Technology, Inc. | Host-resident translation layer write command associated with logical block to physical address of a memory device |
JP7500311B2 (ja) * | 2020-07-13 | 2024-06-17 | キオクシア株式会社 | メモリシステム及び情報処理システム |
-
2020
- 2020-09-17 US US17/024,598 patent/US11733918B2/en active Active
-
2021
- 2021-04-19 KR KR1020210050603A patent/KR20220014276A/ko active Search and Examination
- 2021-04-26 TW TW110114904A patent/TW202205100A/zh unknown
- 2021-04-30 EP EP21171585.9A patent/EP3945406A1/en not_active Ceased
- 2021-07-20 JP JP2021119943A patent/JP2022025037A/ja active Pending
- 2021-07-27 CN CN202110850755.0A patent/CN114003168B/zh active Active
-
2023
- 2023-07-20 US US18/224,523 patent/US20230359396A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3945406A1 (en) | 2022-02-02 |
CN114003168A (zh) | 2022-02-01 |
KR20220014276A (ko) | 2022-02-04 |
US20220035564A1 (en) | 2022-02-03 |
CN114003168B (zh) | 2024-02-06 |
JP2022025037A (ja) | 2022-02-09 |
US11733918B2 (en) | 2023-08-22 |
US20230359396A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755527B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US11086778B2 (en) | Multicore shared cache operation engine | |
US10331600B1 (en) | Virtual I/O queuing | |
US10152433B2 (en) | Inline PCI-IOV adapter | |
US10007443B1 (en) | Host to device I/O flow | |
CN108027642B (zh) | 用于隔离输入/输出计算资源的系统和方法 | |
KR20190096801A (ko) | SSD 스토리지의 NVMe 명령간 연관을 위한 시스템 및 방법 | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US20230359396A1 (en) | Systems and methods for processing commands for storage devices | |
TWI778160B (zh) | 用於機器學習的系統和方法 | |
US11314673B2 (en) | Configurable multi-function PCIe endpoint controller in an SoC | |
TWI797022B (zh) | 儲存控制器、計算儲存裝置以及計算儲存裝置的操作方法 | |
US11789634B2 (en) | Systems and methods for processing copy commands | |
US7941568B2 (en) | Mapping a virtual address to PCI bus address | |
US7895387B1 (en) | Devices and methods for sharing common target device with two different hosts according to common communication protocol | |
US20220137998A1 (en) | Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same | |
EP3945407B1 (en) | Systems and methods for processing copy commands | |
KR20230152394A (ko) | PCIe 장치 및 이의 동작 방법 | |
WO2007097036A1 (ja) | 中央処理装置、中央処理装置の制御方法、情報処理システム |