TWI732110B - 對非揮發性快閃記憶體進行低延遲直接資料存取的系統及方法 - Google Patents
對非揮發性快閃記憶體進行低延遲直接資料存取的系統及方法 Download PDFInfo
- Publication number
- TWI732110B TWI732110B TW107109742A TW107109742A TWI732110B TW I732110 B TWI732110 B TW I732110B TW 107109742 A TW107109742 A TW 107109742A TW 107109742 A TW107109742 A TW 107109742A TW I732110 B TWI732110 B TW I732110B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory access
- remote direct
- dax
- direct memory
- access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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/0626—Reducing size or complexity of 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0661—Format or protocol conversion 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Communication Control (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
一種對藉由乙太網路進行連接的NVMe-oF SSD裝置中的
非揮發性快閃記憶體進行低延遲直接資料存取的方法,包括:自主機處的低延遲直接存取(LL-DAX)區塊儲存軟體層傳送遠端直接記憶體存取(RDMA)寫入請求至快閃記憶體。RDMA寫入請求包含資料、儲存位址、資料傳遞操作的長度及操作碼。方法還包括:在主機處接收RDMA層階確認,RDMA層階確認指示資料已保存至快閃記憶體。方法還包括:自LL-DAX區塊儲存軟體層傳送RDMA讀取請求至快閃記憶體,RDMA讀取請求包括儲存位址、資料傳遞操作的長度及操作碼。方法還包括:在主機處自快閃記憶體接收與RDMA讀取請求對應的資料封包。
Description
本發明大體而言是有關於固態硬碟的資料存取方法及系統。
本申請案主張在2017年4月25日提出申請的名稱為「於跨光纖非揮發性記憶體乙太網路固態硬碟之低延遲直接存取區塊儲存方法」的美國臨時申請案第62/489,991號的優先權及權利,所述美國臨時申請案的全部內容併入本案供參考。
固態硬碟(solid-state drive,SSD)正在替代傳統硬碟(hard disk drive,HDD)快速成為現代資訊技術(IT)基礎設施的主要儲存元件。固態硬碟提供極低的延遲、高資料讀取/寫入通量及對使用者資料的可靠儲存。跨光纖非揮發性記憶體
(non-volatile memory express over fabric,NVMe-oF)是一種使得數百乃至數千個非揮發性記憶體(non-volatile memory express,NVMe)固態硬碟能夠藉由乙太網路進行連接的新興技術。NVMe-oF協定使得能夠達成遠端直接附加儲存(remote Direct Attach Storage,rDAS)實施。此使得大量的固態硬碟能夠連接至遠端主機。NVMe-oF協定使用遠端直接記憶體存取(remote direct memory access,RDMA)協定來提供可靠的傳輸服務以載送NVMe命令、資料及回應。網際網路廣域RDMA協定(Internet wide area RDMA protocol,iWARP)、藉由彙聚乙太網路的RDMA(RDMA over converged Ethernet,RoCE)v1以及ROCE v2是提供RDMA服務的一些傳輸協定。
圖1繪示在傳統NVMe-oF乙太網路固態硬碟儲存器中使用的系統架構的實例。如圖1所示,在伺服器上運行的應用程式通常經由系統軟體堆疊來存取儲存器。典型的儲存系統軟體堆疊包括多個層,例如應用程式、作業系統(operating system,OS)/檔案系統(file system,FS)、NVMe-oF驅動器、區塊儲存層(圖1中未示出)以及RDMA傳輸層(圖1中未示出)。系統軟體的該些眾多的層可潛在地向應用程式的資料存取增添大量的延遲。由於儲存媒體技術(例如,Z-NAND)及聯網技術(例如,100Gbps乙太網路)的進步,由媒體及網路導致的延遲正顯著降低。因此,系統軟體延遲正成為整體資料存取延遲的重要組分。
提供在此背景技術部分中揭露的上述資訊是為了增強
對本發明的背景技術的理解,且因此其可含有不構成先前技術的資訊。
本發明是有關於對藉由乙太網路進行連接的非揮發性記憶體(NVMe)固態硬碟(SSD)裝置中的至少一個非揮發性快閃記憶體進行低延遲直接資料存取的各種方法。在一個實施例中,所述方法包括:自主機處的低延遲直接存取(low-latency direct access,LL-DAX)區塊儲存軟體層傳送遠端直接記憶體存取(RDMA)寫入請求至所述快閃記憶體。所述遠端直接記憶體存取寫入請求包含資料、儲存位址、資料傳遞操作(data transport operation)的長度及操作碼。所述方法還包括:在所述主機處接收確認(acknowledgement),所述確認指示所述資料已保存至所述快閃記憶體。所述方法更包括:自所述低延遲直接存取區塊儲存軟體層傳送遠端直接記憶體存取讀取請求至所述快閃記憶體。所述遠端直接記憶體存取讀取請求包括儲存位址、資料傳遞操作的長度及操作碼。所述方法還包括:在所述主機處自所述快閃記憶體接收與所述遠端直接記憶體存取讀取請求對應的資料封包。
所述遠端直接記憶體存取寫入請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼、以及所述遠端直接記憶體存取讀取請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼可載送於遠端直接記憶體存取標頭欄位(RDMA
header field)中。
所述方法還可包括:藉由跨光纖非揮發性記憶體(NVMe-oF)協定自所述主機傳送遠端直接記憶體存取寫入請求及遠端直接記憶體存取讀取請求至所述快閃記憶體。
傳送所述遠端直接記憶體存取寫入請求及傳送所述遠端直接記憶體存取讀取請求可包括以多個遠端直接記憶體存取隊列對(queue pair,QP)進行傳送。所述方法還可包括:當兩個或更多個遠端直接記憶體存取隊列對具有主機命令時,以低延遲直接存取主機介面(host interface,HIF)邏輯執行仲裁(arbitration)。所述仲裁選擇所述主機命令中的一者來執行。所述一系列遠端直接記憶體存取隊列對中的第一遠端直接記憶體存取隊列對可專用於第一命令且所述一系列遠端直接記憶體存取隊列對中的第二遠端直接記憶體存取隊列對可專用於與所述第一命令不同的第二命令。所述第一命令可為寫入命令且所述第二命令可為讀取命令。
所述方法還可包括:自所述主機處的所述低延遲直接存取區塊儲存軟體層傳送辨識命令至所述快閃記憶體。所述快閃記憶體因應於所述辨識命令而傳送關於所述快閃記憶體的資訊至所述主機。所述資訊可包含所述快閃記憶體的所支援特徵(feature)、能力(capability)及特性(characteristic)。所述辨識命令可利用所述遠端直接記憶體存取讀取請求進行傳送。
所述方法還可包括:自所述主機處的所述低延遲直接存取區塊儲存軟體層傳送刪除命令至所述快閃記憶體。所述刪除命
令包括區塊位址範圍的起始區塊位址及結束區塊位址。所述刪除命令可利用所述遠端直接記憶體存取寫入請求進行傳送。
所述遠端直接記憶體存取讀取請求及所述遠端直接記憶體存取寫入請求可藉由例如RoCE v1、RoCE v2、或iWARP等遠端直接記憶體存取傳輸協定進行傳輸。
所述低延遲直接存取區塊儲存軟體層可包括逾時值且所述遠端直接記憶體存取隊列對可包括接收緩衝器,所述接收緩衝器被配置成防止在所述傳送所述遠端直接記憶體存取寫入請求期間出現逾時。
所述快閃記憶體的所述低延遲直接存取儲存容量可與跨光纖非揮發性記憶體名稱空間(NVMe-oF Namespace)共享。
本發明亦有關於一種對非揮發性快閃記憶體進行低延遲直接資料存取的系統的各種實施例。在一個實施例中,所述系統包括:至少一個跨光纖非揮發性記憶體(NVMe-oF)固態硬碟(SSD)裝置,所述至少一個跨光纖非揮發性記憶體固態硬碟裝置包括:藉由乙太網路進行連接的快閃記憶體;以及主機裝置,包括處理器及低延遲直接存取(LL-DAX)區塊儲存軟體層。所述低延遲直接存取區塊儲存軟體層中包括儲存於其中的指令,所述指令在由所述處理器執行時,使所述處理器:傳送遠端直接記憶體存取(RDMA)寫入請求至所述快閃記憶體,所述遠端直接記憶體存取寫入請求包含資料、儲存位址、資料傳遞操作的長度及操作碼;接收確認,所述確認指示所述資料已保存至所述快閃記憶
體;傳送遠端直接記憶體存取讀取請求至所述快閃記憶體,所述遠端直接記憶體存取讀取請求包括儲存位址、資料傳遞操作的長度及操作碼;以及自所述快閃記憶體接收與所述遠端直接記憶體存取讀取請求對應的資料封包。
所述主機裝置可包括以下指令:所述指令在由所述處理器執行時使所述處理器藉由跨光纖非揮發性記憶體(NVMe-oF)協定傳送遠端直接記憶體存取寫入請求或遠端直接記憶體存取讀取請求至所述快閃記憶體。所述跨光纖非揮發性記憶體協定模式與所述低延遲直接存取模式可排他性地運作或同時一起運作。
所述非揮發性記憶體固態硬碟裝置可包括低延遲直接存取主機介面(HIF)邏輯,所述低延遲直接存取主機介面(HIF)邏輯被配置成對兩個或更多個遠端直接記憶體存取隊列對(QP)中的主機命令進行仲裁。所述兩個或更多個遠端直接記憶體存取隊列對中的第一遠端直接記憶體存取隊列對可專用於第一命令且所述兩個或更多個遠端直接記憶體存取隊列對中的第二遠端直接記憶體存取隊列對可專用於與所述第一命令不同的第二命令。
所述低延遲直接存取區塊儲存軟體層可包括逾時值且所述至少一個非揮發性記憶體固態硬碟裝置可包括接收緩衝器,所述接收緩衝器被配置成防止在傳送所述遠端直接記憶體存取寫入請求期間出現逾時。
儲存於所述低延遲直接存取區塊儲存軟體層中的所述指令在由所述處理器執行時使所述處理器傳送辨識命令至所述快
閃記憶體或傳送刪除命令至所述快閃記憶體。
提供本發明內容是為了介紹以下在詳細說明中進一步闡述的本發明實施例的一系列特徵及概念。本發明內容並非旨在辨識所主張主題的關鍵或實質特徵,亦並非旨在用於限制所主張主題的範圍。所述特徵中的一或多者可與一或多個其他所述特徵組合以提供可運行裝置。
100:主機裝置/主機
101:LL-DAX eSSD
102:應用程式
103:LL-DAX區塊儲存軟體/LL-DAX區塊儲存軟體層
104:RDMA傳輸層
105:RDMA目標層
106:LL-DAX接收緩衝器/LL-DAX隊列對接收緩衝器
107:LL-DAX主機介面/LL-DAX主機介面邏輯
108:快閃轉換層(FTL)
109:LL-DAX儲存器
110:檔案系統層
111:作業系統(OS)層
112:區塊儲存層
113:NVMe-oF層
120:隊列對
201、202、203、204、205、206、207、208、209、210、211、212、213、214、215、216、217、218、219:操作
Eth:乙太網路
SQ:對列
SSD:固態硬碟
藉由結合以下圖式參照以下詳細說明,本發明的實施例的該些及其他特徵及優點將變得更加顯而易見。在圖式中,在所有圖中使用相同的參考編號來參考相同的特徵及組件。所述各圖未必按比例繪製。
圖1是繪示在跨光纖非揮發性記憶體(NVMe-oF)乙太網路固態硬碟儲存器中使用的傳統系統架構的示意圖。
圖2是繪示在根據本發明一個實施例的NVMe-oF乙太網路固態硬碟儲存器中使用的系統架構的示意圖。
圖3是繪示LL-DAX寫入命令的格式的圖式。
圖4是繪示LL-DAX讀取命令及LL-DAX辨識命令的格式的圖式。
圖5是繪示LL-DAX刪除命令的格式的圖式。
圖6是根據本發明的一個實施例在eSSD中的LL-DAX操作的流程圖。
本發明是有關於在跨光纖非揮發性記憶體(NVMe-oF)乙太網路固態硬碟(SSD)儲存器中進行低延遲資料存取的各種系統及方法。本發明的各種系統及方法利用LL-DAX協定、LL-DAX賦能乙太網路固態硬碟(eSSD)以及LL-DAX區塊儲存軟體。用於對資料儲存器進行低延遲存取的各種系統及方法被配置成達成高效能以及成本效益好的解決方案。本發明的各種系統及方法被配置成繞過在傳統資料存取方法中使用的一些儲存軟體堆疊層,以提供較低的延遲並減小現有儲存軟體堆疊的複雜度及成本。此外,本發明的各種系統及方法不需要任何額外的中間儲存硬體基礎設施(即,本發明的各種系統及方法未對儲存基礎設施提出任何新的硬體要求,且因此該些系統及方法不會對任意已安裝的硬體基礎設施產生影響)。
在下文中,將參照附圖來更詳細地闡述示例性實施例,在所有附圖中相同的參考號碼指代相同的元件。然而,本發明可被實施為各種不同的形式,且不應被視為僅限於本文中所說明的實施例。確切而言,提供該些實施例作為實例是為了使此揭露內容將透徹及完整,並將向熟習此項技術者充分傳達本發明的態樣及特徵。因此,為了全面理解本發明的態樣及特徵,可不再闡述對於此項技術中具有通常知識者而言不必要的過程、元件及技術。除非另外指出,否則通篇附圖及書面說明中,相同參考編號
表示相同元件,且因此,可不再對其予以贅述。
在圖式中,為清晰起見,可誇大及/或簡化元件、層及區的相對大小。為易於說明,本文中可能使用例如「在…之下(beneath)」、「在…下面(below)」、「下方的(lower)」、「在…以下(under)」、「在…之上(above)」、「上方的(upper)」等空間相對性用語來闡述圖中所示的一個元件或特徵與另一(其他)元件或特徵的關係。應理解,所述空間相對性用語旨在除圖中所繪示的取向以外亦囊括所述裝置在使用或操作中的不同取向。舉例而言,若圖中裝置被翻轉,則被闡述為在其他元件或特徵「下面」或「之下」或者「以下」的元件此時將被取向為在其他元件或特徵「之上」。因此,實例性用語「在...下面」及「在...以下」可囊括上方及下方兩種取向。所述裝置亦可具有其他取向(例如,旋轉90度或處於其他取向),且本文中所用的空間相對性描述語應相應地進行解釋。
應理解,儘管本文中可能使用用語「第一(first)」、「第二(second)」、「第三(third)」等來闡述各種元件、組件、區、層及/或區段,然而該些元件、組件、區、層及/或區段不應受該些用語限制。該些用語用於區分各個元件、組件、區、層、或區段。因此,在不背離本發明的精神及範圍的條件下,可將以下所述的第一元件、組件、區、層、或區段稱為第二元件、組件、區、層、或區段。
應理解,當一元件或層被稱為「位於」另一元件或層
「上」、「連接至」或「耦接至」另一元件或層時,所述元件或層可直接位於所述另一元件或層上、直接連接至或直接耦接至所述另一元件或層,抑或可存在一或多個中間元件或層。另外,亦應理解,當稱元件或層位於兩個元件或層「之間(between)」時,所述元件或層可為所述兩個元件或層之間的唯一元件或層,抑或亦可存在一或多個中間元件或層。
本文所用術語僅用於闡述特定實施例,而並非旨在限制本發明。除非上下文中清楚地另外指明,否則本文所用的單數形式「一(a及an)」旨在亦包括複數形式。更應理解,當在本說明書中使用用語「包括(comprises及comprising)」、「包含(includes及including)」時,是用於指明所述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。本文中所用的用語「及/或」包括相關聯列出項中一或多個項的任意及所有組合。例如「…中的至少一者」等表達當位於一列表元件之前時,是修飾元件的整個列表,而非修飾所述列表的個別元件。
本文所用的用語「實質上」、「約」及類似用語用於表達近似值、而並非用於表達程度,並且旨在慮及此項技術中具有通常知識者將知的量測值或計算值的固有變化。此外,當使用「可」來闡述本發明的實施例時是指代「本發明的一或多個實施例」。本文所用的用語「使用(use)」、「正使用(using)」及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」及「被
利用(utilized)」同義。此外,用語「示例性」旨在指代實例或例示。
除非另外定義,否則本文所用的全部用語(包括技術及科學用語)的含義均與本發明所屬技術領域中具有通常知識者所通常理解的含義相同。更應理解,用語(例如在常用字典中所定義的用語)應被解釋為具有與其在相關技術及/或本說明書的上下文中的含義一致的含義,且除非本文中進行明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
LL-DAX eSSD協定
現在參照圖2,根據本發明一個實施例的LL-DAX儲存器及資料存取系統包括主機裝置100及LL-DAX eSSD 101(即,一系列藉由乙太網路進行連接的NVMe固態硬碟裝置)。LL-DAX eSSD 101是具有額外LL-DAX特徵支援的標準NVMe-oF eSSD。主機裝置100包括應用程式102、LL-DAX區塊儲存軟體103以及RDMA傳輸層104。在所說明的實施例中,LL-DAX eSSD 101包括RDMA目標層105、連接至RDMA目標層105的LL-DAX接收緩衝器106、連接至LL-DAX接收緩衝器106的LL-DAX主機介面(I/F)107、連接至LL-DAX主機介面(I/F)107的快閃轉換層(flash translation layer,FTL)108、以及連接至快閃轉換層108的LL-DAX儲存器109。如以下將更詳細地闡述,主機裝置100中的LL-DAX區塊儲存軟體103利用LL-DAX協定以將主機命令(例如,RDMA讀取命令及RDMA寫入命令)發送至LL-DAX
eSSD 101中的RDMA目標層105,從而獲得對儲存於LL-DAX儲存器109中的資料的低延遲直接存取(例如,LL-DAX區塊儲存軟體103向主機100處的應用程式102或其他系統軟體層提供儲存服務,並利用RDMA讀取請求及RDMA寫入請求將資料傳遞至LL-DAX eSSD中的LL-DAX儲存器並自LL-DAX eSSD中的LL-DAX儲存器傳遞資料)。如此一來,本發明的系統被配置成繞過主機裝置100的檔案系統層110、作業系統(OS)層111、區塊儲存層112以及NVMe-oF層113,並獲得對儲存於LL-DAX eSSD 101的LL-DAX儲存器109中的資料的低延遲直接存取。
另外,在一或多個實施例中,LL-DAX eSSD 101亦可作為標準兼容NVMe-oF乙太網路固態硬碟進行運作。LL-DAX資料存取模式是可選的特徵。因此,應用程式可視需要利用標準區塊儲存模式或LL-DAX模式。此外,在一或多個實施例中,LL-DAX eSSD 101可同時支援兩種存取模式(即,LL-DAX及NVMe-oF)。
LL-DAX協定使用包括RDMA讀取請求及RDMA寫入請求的遠端直接記憶體存取(RDMA)傳輸來執行資料傳遞(即,LL-DAX寫入命令及LL-DAX讀取命令是用於資料存取)。RDMA讀取請求是用於自eSSD 101擷取或提取資料。RDMA寫入請求是用於將資料自主機100傳遞至eSSD 101。如在下表1中所示,每一RDMA讀取請求及RDMA寫入請求包括與LL-DAX儲存器有關的操作碼(opcode,或稱OPC)欄位、位址(ADDR)欄位、以及長度(LEN)欄位。
下表2針對根據本發明一個實施例的RDMA寫入請求及/或RDMA讀取請求的操作碼(OPC)欄位,示出包括強制(M)命令集及可選(O)命令集的命令集(即,編碼集)。圖3是繪示LL-DAX寫入命令的格式的圖式,且圖4是繪示LL-DAX讀取命令的格式的圖式。
以上參考的LL-DAX命令欄位(即,操作碼(OPC)、位址(ADDR)及長度(LEN))載送於現有RDMA標頭欄位中。
亦即,通常用於遠端緩衝器細節(remote buffer detail)的現有RDMA標頭欄位被改變用途以載送LL-DAX命令欄位(即,操作碼(OPC)、位址(ADDR)及長度(LEN))。存在多種RDMA傳輸協定,例如網際網路廣域RDMA協定(iWARP)、藉由彙聚乙太網路的RDMA(RoCE)v1以及ROCE v2,因此被改變用途用於LL-DAX使用的實際欄位名稱可根據RDMA傳輸協定而變化。
下表3示出RoCE v1請求及RoCE v2請求的一個可能映射。
下表4示出iWARP請求的一個可能映射。
LL-DAX協定亦利用LL-DAX辨識命令以自eSSD 101提取4千位元組(KB)資料結構。因應於接收LL-DAX辨識命令,eSSD 101報告關於LL-DAX儲存器109的資訊,例如其所支援特徵、能力及特性。在圖4中繪示了LL-DAX辨識命令的格式,其與LL-DAX讀取命令的格式相同。下表5辨識因應於LL-DAX辨
識命令報告的關於LL-DAX儲存器109的資訊,所述資訊包括為RDMA讀取命令及RDMA寫入命令進行存取而保留的LL-DAX儲存容量(例如,1太位元組(TB))、存在於eSSD 101上的接收緩衝器大小、由eSSD 101所支援的最大RDMA寫入大小、以及區塊大小。在一或多個實施例中,LL-DAX儲存器109可為eSSD 101內用於LL-DAX應用程式及使用者的專用儲存容量。在一或多個實施例中,LL-DAX應用程式及非LL-DAX應用程式可經由檔案系統或其他系統堆疊層共享eSSD 101內的同一儲存容量(例如,LL-DAX應用程式及非LL-DAX應用程式可彼此交換資料)。亦可在SSD控制器層階處達成在LL-DAX應用程式與遺留非LL-DAX應用程式(legacy non-LL-DAX application)之間共享儲存空間。例如,在一或多個實施例中,LL-DAX儲存器109可與NVMe-oF名稱空間共享。在其中LL-DAX儲存器109是與NVMe-oF名稱空間共享的一或多個實施例中,在更高層階的主機軟體處執行存取協調(access coordination)。
LL-DAX協定視情況利用LL-DAX刪除命令。LL-DAX刪除命令載送一或多個刪除位址範圍條目。每一刪除範圍條目是含有所述刪除範圍條目的起始區塊位址及結束區塊位址的16位元組(Byte)資料結構。圖5是繪示LL-DAX刪除命令的格式的圖式。下表6繪示刪除範圍條目的格式。
LL-DAX協定的命令集是可延伸的,且可將額外的命令添加至LL-DAX協定,例如控制及狀態暫存器(Control and Status Register,CSR)存取及健康日誌。
一種對藉由乙太網路進行連接的NVMe固態硬碟裝置中的快閃記憶體進行低延遲資料存取的方法包括以下任務:自主機100處的LL-DAX區塊儲存軟體層103傳送RDMA寫入請求至所述快閃記憶體,所述RDMA寫入請求包含資料、儲存位址、資料傳遞操作的長度及操作碼。所述RDMA寫入請求在所辨識的儲
存位址處將資料保存至所述快閃記憶體。所述方法還包括以下任務:自所述LL-DAX區塊儲存軟體層傳送RDMA讀取請求至所述快閃記憶體,所述RDMA讀取請求包括儲存位址、資料傳遞操作的長度及操作碼。所述RDMA讀取請求擷取位於快閃記憶體的特定儲存位址處的資料。所述RDMA寫入請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼、以及所述RDMA讀取請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼載送於RDMA標頭欄位中。所述方法還可包括以下任務:自所述主機處的所述LL-DAX區塊儲存軟體層傳送LL-DAX辨識命令至所述快閃記憶體以獲得關於所述快閃記憶體的資訊,例如所述快閃記憶體的所支援特徵、能力及特性。所述LL-DAX辨識是利用所述RDMA讀取請求進行傳送。所述方法還可包括以下任務:自所述主機處的所述LL-DAX區塊儲存軟體層傳送刪除命令至所述快閃記憶體,以刪除在一或多個特定位址範圍處保存於所述快閃記憶體上的資料。所述刪除命令是利用所述RDMA寫入請求進行傳送。
LL-DAX eSSD操作
繼續參照圖2,由於eSSD支援嵌入式RDMA網路介面,因此LL-DAX是標準NVMe-oF乙太網路SSD中的可選特徵。NVMe-oF協定利用RDMA隊列對(QP)來傳輸命令、資料及完成(completion)。NVMe-oF主機驅動器利用RDMA發送請求來發送命令至eSSD。eSSD利用RDMA讀取請求及RDMA寫入請求進
行資料傳遞。eSSD亦利用RDMA發送請求來將完成(例如,確認資料保存)投遞至主機。
LL-DAX利用存在於eSSD 101中的同一RDMA介面。LL-DAX利用一或多個單獨且專用的隊列對(QP)120進行LL-DAX存取。LL-DAX主機利用RDMA讀取請求及RDMA寫入請求來執行資料傳遞並將命令發送至eSSD 101。eSSD 101僅對LL-DAX主機的RDMA請求(例如,RDMA讀取請求及RDMA寫入請求)作出回應,而不獨自發起任何RDMA請求。RDMA確認在資料傳遞完成時運行,且與NVMe-oF中的完成相反,沒有單獨的完成。亦即,NVMe-oF具有明確的命令完成,而LL-DAX不具有此種明確的完成。相反,LL-DAX使用RDMA層階確認用於此目的。在一或多個實施例中,NVMe-oF協定模式與LL-DAX模式可排他性地運作或同時一起運作(例如,eSSD支援NVMe-oF模式及LL-DAX協定模式兩者,使得NVMe-oF模式的運作可與LL-DAX模式的運作共存)。
圖6是根據本發明的一個實施例繪示在eSSD中的LL-DAX操作的流程圖。如圖6所示,在操作201處,eSSD自主機裝置處的LL-DAX區塊儲存軟體層103(參見圖2)接收RDMA讀取請求或RDMA寫入請求。在操作202處,判斷RDMA讀取請求或RDMA寫入請求是否位於LL-DAX隊列對上。當eSSD接收不位於LL-DAX隊列對上的RDMA讀取請求或RDMA寫入請求時,RDMA讀取命令或RDMA寫入命令遵從標準NVME-oF協定
對eSSD進行存取,如在操作203處所示。當eSSD自主機裝置處的LL-DAX區塊儲存軟體層103接收位於LL-DAX隊列對上的RDMA讀取請求或RDMA寫入請求時,RDMA請求被轉發至LL-DAX主機介面(HIF)邏輯107(參見圖2)。在操作204處,當二或更多個LL-DAX隊列對120具有主機命令時,LL-DAX主機介面邏輯107在該些LL-DAX隊列對120之間執行仲裁以選擇主機命令中的一者來執行。由LL-DAX主機介面邏輯107執行的仲裁可為例如利用主機受控設定來實施的簡單的循環(round-robin)仲裁或更複雜的仲裁機制。在一或多個實施例中,不同的LL-DAX隊列對120可用來區分不同命令之間的執行。舉例而言,一個LL-DAX隊列對120可僅用來發送寫入命令(例如,一個LL-DAX隊列對120可排他性地專用於發送寫入命令),而另一個LL-DAX隊列對120可僅用來發送讀取命令(例如,一個LL-DAX隊列對120可排他性地專用於發送讀取命令)。LL-DAX主機介面邏輯107解析所選擇的命令並自RDMA命令抽取操作碼以及其他相關的LL-DAX欄位。LL-DAX主機介面邏輯107然後執行所接收的LL-DAX命令並確認至主機的RDMA請求封包。在一或多個實施例中,沒有單獨的命令完成。RDMA請求封包確認充當命令的完成。
繼續參照圖6,在操作205處,LL-DAX主機介面邏輯107(參見圖2)判斷主機命令是RDMA讀取請求還是RDMA寫入請求。若確定主機命令為RDMA寫入命令,則在操作206處,
LL-DAX主機介面邏輯107藉由檢查主機命令的操作碼值而判斷RDMA寫入命令是LL-DAX寫入命令還是LL-DAX刪除命令(其利用RDMA寫入命令進行傳送)。在操作207處,當LL-DAX主機介面邏輯107確定主機命令是LL-DAX寫入命令時(例如,當命令的操作碼值是0時),首先LL-DAX主機介面邏輯107在操作208處將所接收的資料保存至快閃媒體(例如,LL-DAX儲存器109,如圖2所示)或快取,然後LL-DAX主機介面邏輯107在操作209處確認RDMA寫入(例如,LL-DAX主機介面邏輯107將LL-DAX寫入命令的確認傳送至主機)。若eSSD具有斷電保護緩衝器(power-loss protected buffer),則所接收的寫入資料可被寫入快取,且然後可確認RDMA寫入封包。
為防止在主機側由於資料保存的持續時間而發生RDMA寫入逾時,主機RDMA堆疊可被程式化以足夠大的逾時值。另外,LL-DAX隊列對接收緩衝器106(參見圖2)的大小需要被恰當地調整以容許由於資料保存的持續時間而產生的一些數量的寫入突發(write burst)。當eSSD快閃轉換層(FTL)忙碌且無法排出接收緩衝器時吸收寫入突發將向主機提供更佳的效能。舉例而言,在一或多個實施例中,50百萬位元組(MB)的接收緩衝器將使得40Gbps速度下10毫秒(ms)的突發能夠被吸收而不產生至主機的反壓(backpressure)。所使用的反壓機制是標準RDMA NACK封包。
如圖6所示,LL-DAX刪除命令是利用RDMA寫入請求
傳輸。在操作210處,當LL-DAX主機介面邏輯107確定主機命令是LL-DAX刪除命令時(例如,當命令的操作碼值是16時),LL-DAX主機介面邏輯107首先在操作211處發起對快閃轉換層(FTL)映射表的更新,然後LL-DAX主機介面邏輯107在操作212處確認RDMA寫入封包(例如,在操作212處,LL-DAX主機介面邏輯107將對用於傳輸LL-DAX刪除命令的LL-DAX寫入命令的確認傳送至主機)。用於傳輸LL-DAX刪除命令的RDMA寫入請求的有效負載載送被應用程式刪除或解除分配的一或多個區塊位址範圍,如圖6所繪示。被解除分配的位址資訊被eSSD用於快閃媒體管理。
繼續參照圖6,當LL-DAX主機介面邏輯107在操作205處確定主機命令是RDMA讀取命令時,LL-DAX主機介面邏輯107然後在操作213處藉由檢查主機命令的操作碼值而判斷RDMA讀取命令是LL-DAX讀取命令還是LL-DAX辨識命令(其是利用RDMA讀取命令傳送)。在操作214處,當LL-DAX主機介面邏輯107確定主機命令是LL-DAX讀取命令時(例如,當命令的操作碼值是1時),LL-DAX主機介面邏輯107首先在操作215處自快閃媒體(例如,LL-DAX儲存器109)或自快取提取(fetch)所請求的資料,然後在操作216處利用RDMA讀取回應封包將所請求的資料傳送至主機。在一或多個實施例中,根據網路最大傳送單元(maximum transmission unit,MTU)可存在多個回應封包。最後的RDMA讀取回應封包確認LL-DAX讀取命令。
如圖6所示,LL-DAX辨識命令是利用RDMA讀取請求進行傳輸(即,LL-DAX辨識命令作為RDMA讀取請求的一部分而被接收)。LL-DAX辨識命令具有與LL-DAX讀取命令類似的執行流程。在操作217處,當LL-DAX主機介面邏輯107確定主機命令是LL-DAX辨識命令時(例如,當命令的操作碼值是2時),LL-DAX主機介面邏輯107首先在操作218處自快閃媒體(例如,LL-DAX儲存器109)或自快取提取辨識資料結構,且然後在操作219處利用RDMA讀取回應封包將辨識資料結構傳遞至主機。
LL-DAX區塊儲存軟體操作
再次參照圖2,LL-DAX區塊儲存軟體層103對應用程式或其他系統軟體層提供儲存器存取。LL-DAX軟體103執行與DAX儲存器相關的各種功能,包括發現、應用程式側介面、資料傳遞、以及錯誤處理。
首先,LL-DAX軟體103需要發現LL-DAX eSSD 101並建立與LL-DAX eSSD 101的通訊通道。LL-DAX eSSD 101的網路位址可以任意適當的方法(例如,藉由由儲存管理者產生的含有LL-DAX eSSD 101的網路位址的文本檔案)被提供至LL-DAX軟體103。發現服務可由儲存管理者進行管理。此種發現方法常用於現有的儲存基礎設施中。
一旦LL-DAX軟體103已發現LL-DAX eSSD 101並已建立與LL-DAX eSSD 101的通訊通道,LL-DAX軟體103便請求RDMA傳輸層104向LL-DAX eSSD 101建立所需數目的新的隊列
對(QP)120。一旦建立了一或多個隊列對120,LL-DAX軟體103便利用RDMA讀取請求來發出LL-DAX辨識命令。LL-DAX eSSD 101藉由傳遞關於LL-DAX儲存器109的資訊(例如,辨識LL-DAX儲存器109的參數)而對LL-DAX辨識命令作出回應,所述資訊例如為LL-DAX儲存器109的各種能力、特徵及特性。因此,遵從LL-DAX辨識命令,LL-DAX驅動器理解在資料儲存器的正常運作期間利用的底層(underlying)LL-DAX儲存器109的各種能力、特徵及特性。
LL-DAX軟體103提供至應用程式的介面用於存取LL-DAX儲存器109。LL-DAX是核心模組,且其利用輸入/輸出控制(IOCTL)系統調用(system call)來提供讀取/寫入介面。LL-DAX軟體103不在負載儲存語義(load store semantics)中運作。LL-DAX驅動器可利用與所述LL-DAX驅動器相關聯的裝置句柄(device handle)被應用程式存取。應用程式可利用此句柄及LL-DAX儲存位址而發出讀取操作及寫入操作。該些應用程式請求被LL-DAX軟體103轉換成恰當的RDMA層請求。RDMA請求被發出並追蹤用於由LL-DAX軟體103完成。當請求完成時,應用程式調用被返回。當在LL-DAX儲存器109中分配的資料結構被刪除或解除分配時,LL-DAX軟體103將該些事件轉變成LL-DAX刪除命令,並將該些命令發送至eSSD 101。LL-DAX刪除命令用於eSSD,以減少與eSSD中的後台操作相關的垃圾收集。
此外,類似於檔案系統,LL-DAX軟體103可實施一些
基本的儲存空間管理功能。舉例而言,在一或多個實施例中,LL-DAX軟體103可實施儲存空間分配功能及解除分配功能。在一或多個實施例中,LL-DAX軟體103可利用LL-DAX儲存器109執行對應用程式的基本存取控制。當應用程式需要一定量的儲存時,應用程式請求分配所需量的儲存。LL-DAX軟體103可保持LL-DAX儲存器109的分配表。LL-DAX軟體103自可用的空間分配所請求的儲存空間並向請求者返回對此空間的儲存句柄(storage handle)。所述儲存句柄然後被應用程式用於後續的資料讀取/寫入存取。另外,在一或多個實施例中,為提供更大的靈活性、資料可存取性以及空間管理,LL-DAX區塊儲存軟體103可包括檔案資訊轉換功能。因此,在一或多個實施例中,LL-DAX應用程式可與另一應用程式(例如,非LL-DAX應用程式)共享其LL-DAX資料。
儘管已參考示例性實施例闡述了本發明,但熟習此項技術者將知,可對所述實施例施行各種改變及潤飾,此均不背離本發明的精神及範圍。此外,熟習各種相關技術者將知,本文所述的本發明將暗示對用於其他應用的其他任務及修改形式的解決方案。本申請人的意圖是將本發明的所有此種用途以及出於本發明的目的而選擇的對本發明示例性實施例所作的改變及潤飾均涵蓋於本文的申請專利範圍中,此均不背離本發明的精神及範圍。因此,本發明的示例性實施例在所有方面均應被視為說明性的而非限制性的,本發明的精神及範圍是由隨附申請專利範圍及其等效
範圍來指示。
100:主機裝置/主機
101:LL-DAX eSSD
102:應用程式
103:LL-DAX區塊儲存軟體/LL-DAX區塊儲存軟體層
104:RDMA傳輸層
105:RDMA目標層
106:LL-DAX接收緩衝器/LL-DAX隊列對接收緩衝器
107:LL-DAX主機介面/LL-DAX主機介面邏輯
108:快閃轉換層(FTL)
109:LL-DAX儲存器
110:檔案系統層
111:作業系統(OS)層
112:區塊儲存層
113:NVMe-oF層
120:隊列對
Claims (19)
- 一種對藉由乙太網路進行連接的至少一個跨光纖非揮發性記憶體(NVMe-oF)固態硬碟(SSD)裝置中的非揮發性的快閃記憶體進行低延遲直接資料存取(LL-DAX)的方法,所述方法包括:藉由低延遲直接資料存取協定自主機處的低延遲直接資料存取區塊儲存軟體層傳送遠端直接記憶體存取(RDMA)寫入請求至所述快閃記憶體,所述遠端直接記憶體存取寫入請求包含資料、儲存位址、資料傳遞操作的長度及操作碼;在自所述低延遲直接資料存取區塊儲存軟體層傳送所述遠端直接記憶體存取寫入請求至所述快閃記憶體時,藉由跨光纖非揮發性記憶體協定自所述低延遲直接資料存取區塊儲存軟體層的所述主機處的跨光纖非揮發性記憶體層傳送遠端直接記憶體存取寫入請求至所述快閃記憶體,其中跨光纖非揮發性記憶體協定的所述遠端直接記憶體存取寫入請求以及跨光纖非揮發性記憶體協定的所述遠端直接記憶體存取寫入請求都起源於所述主機;在所述主機處接收遠端直接記憶體存取層階確認,所述遠端直接記憶體存取層階確認指示所述資料已保存至所述快閃記憶體;自所述低延遲直接資料存取區塊儲存軟體層傳送遠端直接記憶體存取讀取請求至所述快閃記憶體,所述遠端直接記憶體存取讀取請求包括儲存位址、資料傳遞操作的長度及操作碼;以及 在所述主機處自所述快閃記憶體接收與所述遠端直接記憶體存取讀取請求對應的遠端直接記憶體存取讀取回應資料封包。
- 如申請專利範圍第1項所述的方法,其中所述遠端直接記憶體存取寫入請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼、以及所述遠端直接記憶體存取讀取請求的所述儲存位址、所述資料傳遞操作的所述長度及所述操作碼載送於遠端直接記憶體存取標頭欄位中。
- 如申請專利範圍第1項所述的方法,其中所述傳送所述遠端直接記憶體存取寫入請求包括以多個遠端直接記憶體存取隊列對(QP)傳送所述遠端直接記憶體存取寫入請求,並且所述傳送所述遠端直接記憶體存取讀取請求包括以多個遠端直接記憶體存取隊列對傳送所述遠端直接記憶體存取讀取請求。
- 如申請專利範圍第3項所述的方法,其中兩個或更多個遠端直接記憶體存取隊列對具有主機命令,並且所述方法更包括:以低延遲直接資料存取主機介面(HIF)邏輯執行仲裁,所述仲裁選擇所述主機命令中的一者來執行。
- 如申請專利範圍第3項所述的方法,其中所述多個遠端直接記憶體存取隊列對中的第一遠端直接記憶體存取隊列對關聯於第一命令且所述多個遠端直接記憶體存取隊列對中的第二遠端直接記憶體存取隊列對關聯於第二命令,並且所述第二命令與所述第一命令不同。
- 如申請專利範圍第5項所述的方法,其中所述第一命令 是寫入命令且所述第二命令是讀取命令。
- 如申請專利範圍第1項所述的方法,更包括:自所述主機處的所述低延遲直接資料存取區塊儲存軟體層傳送辨識命令至所述快閃記憶體,且其中所述快閃記憶體因應於所述辨識命令而傳送關於所述快閃記憶體的資訊至所述主機。
- 如申請專利範圍第7項所述的方法,其中所述資訊包含所述快閃記憶體的所支援特徵、能力及特性。
- 如申請專利範圍第7項所述的方法,其中所述辨識命令是利用所述遠端直接記憶體存取讀取請求進行傳送。
- 如申請專利範圍第1項所述的方法,更包括:自所述主機處的所述低延遲直接資料存取區塊儲存軟體層傳送刪除命令至所述快閃記憶體,所述刪除命令包括區塊位址範圍的起始區塊位址及結束區塊位址。
- 如申請專利範圍第10項所述的方法,其中所述刪除命令是利用所述遠端直接記憶體存取寫入請求進行傳送。
- 如申請專利範圍第1項所述的方法,其中所述遠端直接記憶體存取讀取請求及所述遠端直接記憶體存取寫入請求是藉由選自由RoCE v1、RoCE v2及iWARP組成的遠端直接記憶體存取傳輸協定群組的傳輸協定進行傳輸。
- 如申請專利範圍第3項所述的方法,其中所述低延遲直接資料存取區塊儲存軟體層包括逾時值且所述遠端直接記憶體存取隊列對包括接收緩衝器,所述接收緩衝器被配置成防止在所 述傳送所述遠端直接記憶體存取寫入請求期間出現逾時。
- 如申請專利範圍第1項所述的方法,其中所述快閃記憶體的低延遲直接資料存取儲存容量是與跨光纖非揮發性記憶體名稱空間共享。
- 一種對非揮發性的快閃記憶體進行低延遲直接資料存取(LL-DAX)的系統,所述系統包括:藉由乙太網路進行連接的至少一個非揮發性記憶體(NVMe)固態硬碟(SSD)裝置,所述至少一個非揮發性記憶體固態硬碟裝置包括所述快閃記憶體;以及主機裝置,包括處理器、跨光纖非揮發性記憶體(NVMe-oF)層及低延遲直接資料存取區塊儲存軟體層,所述低延遲直接資料存取區塊儲存軟體層中儲存有指令,所述指令在由所述處理器執行時,使所述處理器:藉由低延遲直接資料存取協定傳送遠端直接記憶體存取(RDMA)寫入請求至所述快閃記憶體,所述遠端直接記憶體存取寫入請求包含資料、儲存位址、資料傳遞操作的長度及操作碼;接收確認,所述確認指示所述資料已保存至所述快閃記憶體;傳送遠端直接記憶體存取讀取請求至所述快閃記憶體,所述遠端直接記憶體存取讀取請求包括儲存位址、資料傳遞操作的長度及操作碼;以及 自所述快閃記憶體接收與所述遠端直接記憶體存取讀取請求對應的資料封包,以及其中所述跨光纖非揮發性記憶體層儲存有指令,所述指令在由所述處理器執行時,使所述處理器在自所述低延遲直接資料存取區塊儲存軟體層傳送所述遠端直接記憶體存取寫入請求至所述快閃記憶體時,藉由跨光纖非揮發性記憶體協定傳送遠端直接記憶體存取寫入請求至所述快閃記憶體,以及其中跨光纖非揮發性記憶體協定的所述遠端直接記憶體存取寫入請求以及跨光纖非揮發性記憶體協定的所述遠端直接記憶體存取寫入請求都起源於所述主機裝置。
- 如申請專利範圍第15項所述的系統,其中所述非揮發性記憶體固態硬碟裝置包括低延遲直接資料存取主機介面(HIF)邏輯,所述低延遲直接資料存取主機介面(HIF)邏輯被配置成在兩個或更多個遠端直接記憶體存取隊列對(QP)中的主機命令中進行仲裁。
- 如申請專利範圍第16項所述的系統,其中所述兩個或更多個遠端直接記憶體存取隊列對中的第一遠端直接記憶體存取隊列對專用於第一命令且所述兩個或更多個遠端直接記憶體存取隊列對中的第二遠端直接記憶體存取隊列對專用於與所述第一命令不同的第二命令。
- 如申請專利範圍第15項所述的系統,其中所述低延遲直接資料存取區塊儲存軟體層包括逾時值且其中所述至少一個非 揮發性記憶體固態硬碟裝置包括接收緩衝器,所述接收緩衝器被配置成防止在傳送所述遠端直接記憶體存取寫入請求期間出現逾時。
- 如申請專利範圍第15項所述的系統,其中儲存於所述低延遲直接資料存取區塊儲存軟體層中的所述指令在由所述處理器執行時使所述處理器傳送辨識命令至所述快閃記憶體或傳送刪除命令至所述快閃記憶體。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762489991P | 2017-04-25 | 2017-04-25 | |
US62/489,991 | 2017-04-25 | ||
US15/655,738 US10733137B2 (en) | 2017-04-25 | 2017-07-20 | Low latency direct access block storage in NVME-of ethernet SSD |
US15/655,738 | 2017-07-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201839623A TW201839623A (zh) | 2018-11-01 |
TWI732110B true TWI732110B (zh) | 2021-07-01 |
Family
ID=63854447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107109742A TWI732110B (zh) | 2017-04-25 | 2018-03-22 | 對非揮發性快閃記憶體進行低延遲直接資料存取的系統及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10733137B2 (zh) |
JP (1) | JP7001533B2 (zh) |
KR (1) | KR102494568B1 (zh) |
CN (1) | CN108733601B (zh) |
TW (1) | TWI732110B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983138B2 (en) * | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US10620855B2 (en) * | 2016-09-06 | 2020-04-14 | Samsung Electronics Co., Ltd. | System and method for authenticating critical operations on solid-state drives |
US10733137B2 (en) * | 2017-04-25 | 2020-08-04 | Samsung Electronics Co., Ltd. | Low latency direct access block storage in NVME-of ethernet SSD |
US10782994B2 (en) * | 2017-12-19 | 2020-09-22 | Dell Products L.P. | Systems and methods for adaptive access of memory namespaces |
US11115490B2 (en) * | 2018-07-31 | 2021-09-07 | EMC IP Holding Company LLC | Host based read cache for san supporting NVMEF with E2E validation |
US11481342B2 (en) | 2019-06-25 | 2022-10-25 | Seagate Technology Llc | Data storage system data access arbitration |
US11709774B2 (en) * | 2019-08-07 | 2023-07-25 | Intel Corporation | Data consistency and durability over distributed persistent memory systems |
WO2021107950A1 (en) * | 2019-11-27 | 2021-06-03 | Hewlett-Packard Development Company, L.P. | Dax file access responsive to interception of file access function call |
US11256448B2 (en) * | 2019-12-16 | 2022-02-22 | Samsung Electronics Co., Ltd. | Network storage gateway |
US20230020841A1 (en) * | 2020-02-27 | 2023-01-19 | Google Llc | Secure Element that Leverages External Resources |
TWI774255B (zh) * | 2020-05-04 | 2022-08-11 | 威盛電子股份有限公司 | 橋接電路與電腦系統 |
CN113051206B (zh) | 2020-05-04 | 2024-10-18 | 威盛电子股份有限公司 | 桥接电路与计算机系统 |
US11720413B2 (en) * | 2020-06-08 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for virtualizing fabric-attached storage devices |
CN113778319A (zh) | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 网卡的数据处理方法以及网卡 |
CN113965627A (zh) * | 2020-07-02 | 2022-01-21 | 北京瀚海云星科技有限公司 | 一种发送数据的方法、低延时接收数据的方法及相关装置 |
US11334507B2 (en) * | 2020-08-21 | 2022-05-17 | Samsung Electronics Co., Ltd. | Method and system for communicating data packets in remote direct memory access networks |
CN114827234B (zh) * | 2022-04-29 | 2024-09-06 | 广东浪潮智慧计算技术有限公司 | 一种数据传输方法、系统、装置及存储介质 |
US11960419B2 (en) | 2022-07-19 | 2024-04-16 | Samsung Electronics Co., Ltd. | Systems and methods for data prefetching for low latency data read from a remote server |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201439772A (zh) * | 2013-02-04 | 2014-10-16 | Lsi Corp | 用於藉由使用一命令推動模型減少一資料儲存系統中之寫入延遲之方法及系統 |
US20150248366A1 (en) * | 2013-04-17 | 2015-09-03 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (rdma) |
US20160085718A1 (en) * | 2013-06-26 | 2016-03-24 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
US20160253267A1 (en) * | 2014-03-07 | 2016-09-01 | Profitbricks Gmbh | Systems and Methods for Storage of Data in a Virtual Storage Device |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051212B2 (en) * | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
US7860941B1 (en) * | 2001-07-17 | 2010-12-28 | Pmc-Sierra Us, Inc. | InfiniBand layer 4 router and methods for implementing same in an InfiniBand based external storage device |
US20050091334A1 (en) * | 2003-09-29 | 2005-04-28 | Weiyi Chen | System and method for high performance message passing |
JP4275504B2 (ja) | 2003-10-14 | 2009-06-10 | 株式会社日立製作所 | データ転送方法 |
US7826470B1 (en) * | 2004-10-19 | 2010-11-02 | Broadcom Corp. | Network interface device with flow-oriented bus interface |
US7580406B2 (en) * | 2004-12-31 | 2009-08-25 | Intel Corporation | Remote direct memory access segment generation by a network controller |
US20130086311A1 (en) | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
US8046559B2 (en) * | 2008-03-27 | 2011-10-25 | Intel Corporation | Memory rank burst scheduling |
US9130864B2 (en) * | 2011-06-27 | 2015-09-08 | Citrix Systems, Inc. | Prioritizing classes of network traffic to provide a predetermined quality of service |
US9467512B2 (en) | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for remote client access to a storage medium coupled with a server |
US8988987B2 (en) * | 2012-10-25 | 2015-03-24 | International Business Machines Corporation | Technology for network communication by a computer system using at least two communication protocols |
US9098402B2 (en) * | 2012-12-21 | 2015-08-04 | Intel Corporation | Techniques to configure a solid state drive to operate in a storage mode or a memory mode |
US9715519B2 (en) * | 2013-03-15 | 2017-07-25 | Sandisk Technologies Llc | Managing updates to multiple sets of metadata pertaining to a memory |
US9967340B2 (en) * | 2013-04-11 | 2018-05-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Network-displaced direct storage |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9986028B2 (en) * | 2013-07-08 | 2018-05-29 | Intel Corporation | Techniques to replicate data between storage servers |
US9311110B2 (en) * | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
US9411775B2 (en) * | 2013-07-24 | 2016-08-09 | Intel Corporation | iWARP send with immediate data operations |
WO2016196766A2 (en) | 2015-06-03 | 2016-12-08 | Diamanti, Inc. | Enabling use of non-volatile media - express (nvme) over a network |
JP2017512350A (ja) * | 2014-03-08 | 2017-05-18 | ディアマンティ インコーポレイテッド | 集中型ネットワーキング及びストレージのための方法及びシステム |
US9887008B2 (en) | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9529773B2 (en) | 2014-05-02 | 2016-12-27 | Cavium, Inc. | Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US10140029B2 (en) * | 2014-12-10 | 2018-11-27 | Netapp, Inc. | Method and apparatus for adaptively managing data in a memory based file system |
US9851919B2 (en) * | 2014-12-31 | 2017-12-26 | Netapp, Inc. | Method for data placement in a memory based file system |
US10104017B2 (en) * | 2015-05-12 | 2018-10-16 | Jeda Networks, Inc. | Methods, systems and apparatus for the virtualization of high performance networks |
WO2016182756A1 (en) | 2015-05-14 | 2016-11-17 | Apeiron Data Systems | Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma) |
CN106664290B (zh) * | 2015-05-26 | 2019-12-06 | 华为技术有限公司 | 一种光电混合网络的数据传输方法及装置 |
US9760314B2 (en) | 2015-05-29 | 2017-09-12 | Netapp, Inc. | Methods for sharing NVM SSD across a cluster group and devices thereof |
KR102430187B1 (ko) * | 2015-07-08 | 2022-08-05 | 삼성전자주식회사 | RDMA NVMe 디바이스의 구현 방법 |
WO2017040706A1 (en) * | 2015-09-02 | 2017-03-09 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
CN106775434B (zh) * | 2015-11-19 | 2019-11-29 | 华为技术有限公司 | 一种NVMe网络化存储的实现方法、终端、服务器及系统 |
US10466922B2 (en) * | 2015-12-07 | 2019-11-05 | Netapp, Inc. | Accelerating concurrent access to a file in a memory-based file system |
US9813338B2 (en) * | 2015-12-10 | 2017-11-07 | Cisco Technology, Inc. | Co-existence of routable and non-routable RDMA solutions on the same network interface |
US9965441B2 (en) * | 2015-12-10 | 2018-05-08 | Cisco Technology, Inc. | Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics |
CN107533537B (zh) * | 2016-01-29 | 2021-02-26 | 慧与发展有限责任合伙企业 | 存储系统、用于存储的方法和非暂时性计算机可读介质 |
CN107430494B (zh) * | 2016-01-29 | 2020-09-15 | 慧与发展有限责任合伙企业 | 用于远程直接存储器访问的系统、方法和介质 |
US10089134B2 (en) * | 2016-06-30 | 2018-10-02 | Western Digital Technologies, Inc. | Controlling access to namespaces of a storage device |
US10592113B2 (en) * | 2016-07-18 | 2020-03-17 | Storart Technology (Shenzhen) Co., Ltd. | Method for transferring command from host to device controller and system using the same |
US20180032249A1 (en) * | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
US9747039B1 (en) * | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10372374B2 (en) * | 2016-11-08 | 2019-08-06 | Excelero Storage Ltd. | System and method for providing input/output determinism for servers hosting remotely accessible storages |
WO2018119742A1 (zh) * | 2016-12-28 | 2018-07-05 | 华为技术有限公司 | NVMe over Fabric中转发报文的方法、设备和系统 |
US10769081B2 (en) * | 2016-12-30 | 2020-09-08 | Intel Corporation | Computer program product, system, and method to allow a host and a storage device to communicate between different fabrics |
US10229065B2 (en) * | 2016-12-31 | 2019-03-12 | Intel Corporation | Unified hardware and software two-level memory |
US11543967B2 (en) * | 2017-02-23 | 2023-01-03 | Samsung Electronics Co., Ltd. | Method for controlling BW SLA in NVME-of ethernet SSD storage systems |
US10503427B2 (en) * | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US10338838B2 (en) * | 2017-03-24 | 2019-07-02 | Samsung Electronics Co., Ltd. | Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface |
US10282094B2 (en) * | 2017-03-31 | 2019-05-07 | Samsung Electronics Co., Ltd. | Method for aggregated NVME-over-fabrics ESSD |
US10459665B2 (en) * | 2017-04-03 | 2019-10-29 | Samsung Electronics Co., Ltd. | System and method of configuring NVMe-oF devices using a baseboard management controller (BMC) |
US10733137B2 (en) * | 2017-04-25 | 2020-08-04 | Samsung Electronics Co., Ltd. | Low latency direct access block storage in NVME-of ethernet SSD |
US10958729B2 (en) * | 2017-05-18 | 2021-03-23 | Intel Corporation | Non-volatile memory express over fabric (NVMeOF) using volume management device |
KR20190033284A (ko) * | 2017-09-21 | 2019-03-29 | 삼성전자주식회사 | PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템 |
US10459640B2 (en) * | 2017-09-29 | 2019-10-29 | Netapp, Inc. | High availability storage access using quality of service based path selection in a storage area network environment |
-
2017
- 2017-07-20 US US15/655,738 patent/US10733137B2/en active Active
- 2017-12-18 KR KR1020170174318A patent/KR102494568B1/ko active IP Right Grant
-
2018
- 2018-03-22 TW TW107109742A patent/TWI732110B/zh active
- 2018-04-02 CN CN201810285587.3A patent/CN108733601B/zh active Active
- 2018-04-25 JP JP2018084344A patent/JP7001533B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201439772A (zh) * | 2013-02-04 | 2014-10-16 | Lsi Corp | 用於藉由使用一命令推動模型減少一資料儲存系統中之寫入延遲之方法及系統 |
US20150248366A1 (en) * | 2013-04-17 | 2015-09-03 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (rdma) |
US20160085718A1 (en) * | 2013-06-26 | 2016-03-24 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
US20160253267A1 (en) * | 2014-03-07 | 2016-09-01 | Profitbricks Gmbh | Systems and Methods for Storage of Data in a Virtual Storage Device |
Also Published As
Publication number | Publication date |
---|---|
JP7001533B2 (ja) | 2022-01-19 |
US10733137B2 (en) | 2020-08-04 |
US20180307650A1 (en) | 2018-10-25 |
JP2018185814A (ja) | 2018-11-22 |
KR20180119464A (ko) | 2018-11-02 |
TW201839623A (zh) | 2018-11-01 |
CN108733601B (zh) | 2023-08-04 |
KR102494568B1 (ko) | 2023-02-03 |
CN108733601A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI732110B (zh) | 對非揮發性快閃記憶體進行低延遲直接資料存取的系統及方法 | |
US9696942B2 (en) | Accessing remote storage devices using a local bus protocol | |
US9727503B2 (en) | Storage system and server | |
CN109582614B (zh) | 针对远程存储器访问的nvm express控制器 | |
WO2017113960A1 (zh) | 一种数据处理方法以及NVMe存储器 | |
US11586565B2 (en) | Non-volatile storage system and data storage access protocol for non-volatile storage devices | |
WO2018137217A1 (zh) | 一种数据处理的系统、方法及对应装置 | |
US20190377704A1 (en) | Programmed input/output mode | |
CN110727617B (zh) | 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统 | |
US9213500B2 (en) | Data processing method and device | |
EP4220419B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
WO2022007470A1 (zh) | 一种数据传输的方法、芯片和设备 | |
CN101150487A (zh) | 一种零拷贝网络报文发送方法 | |
US10951741B2 (en) | Computer device and method for reading or writing data by computer device | |
US20240241639A1 (en) | Method and Apparatus for Processing Access Request, Storage Apparatus, and Storage Medium | |
CN113424147A (zh) | 用于流式传输存储设备内容的系统和方法 | |
CN101150488A (zh) | 一种零拷贝网络报文接收方法 | |
EP3662642B1 (en) | Nvm express over fabrics | |
US7761529B2 (en) | Method, system, and program for managing memory requests by devices | |
US20240070087A1 (en) | Computer device and memory registration method | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
US9910774B1 (en) | Spontaneous reconfiguration of data structures using balloon memory allocation | |
WO2020118650A1 (zh) | 快速发送写数据准备完成消息的方法、设备和系统 | |
US10430220B1 (en) | Virtual devices as protocol neutral communications mediators | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers |