TW202230140A - 管理記憶體的方法及非暫時性電腦可讀媒體 - Google Patents

管理記憶體的方法及非暫時性電腦可讀媒體 Download PDF

Info

Publication number
TW202230140A
TW202230140A TW111101939A TW111101939A TW202230140A TW 202230140 A TW202230140 A TW 202230140A TW 111101939 A TW111101939 A TW 111101939A TW 111101939 A TW111101939 A TW 111101939A TW 202230140 A TW202230140 A TW 202230140A
Authority
TW
Taiwan
Prior art keywords
memory
data
storage device
host
host device
Prior art date
Application number
TW111101939A
Other languages
English (en)
Inventor
奧斯卡 P 品托
瑞姆達斯 P 卡佳瑞
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/495,810 external-priority patent/US20220236902A1/en
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202230140A publication Critical patent/TW202230140A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本發明提供用於管理記憶體的系統、方法以及設備。方法可包含:經由介面在主機裝置與儲存裝置之間建立連接;以及藉由由主機裝置執行的應用對第二記憶體進行資料操作而經由介面在與主機裝置相關聯的第一記憶體及與儲存裝置相關聯的第二記憶體之間傳送資料,其中儲存裝置包含藉由對資料操作進行至少一個卸載功能來加速資料操作的處理元件。

Description

管理記憶體的方法及非暫時性電腦可讀媒體
本發明大體上是關於一種儲存系統,且更特定言之,是關於用於計算儲存裝置的資料傳送的系統及方法。 [相關申請案的交叉參考]
本申請案主張2021年9月7日申請的美國臨時專利申請案第63/241,525號及2021年1月27日申請的美國臨時專利申請案第63/142,485號的權益,所述兩個美國臨時專利申請案出於所有目的以引用的方式併入本文中。
本背景章節僅意欲提供上下文,且此章節中的任何概念的揭露內容並不構成對所述概念為先前技術的承認。
隨著技術的進步,隨著諸如以下各者的裝置收集資料,資料的大小及數量快速增加:行動裝置、物聯網裝置、航空(遙測)裝置、軟體日誌、攝影機、麥克風、射頻識別(radio-frequency identification;RFID)讀取器、無線感測器網路及類似者。為了處理及使用由所收集資料表示的資訊,儲存裝置、處理元件及伺服器通常在資料中心中用於對資料進行過濾、計算、儲存及進行相關操作。仍需要改良儲存裝置中的資料傳送的系統及方法。
此背景技術章節中所揭露的上述資訊僅用於增強對本揭露內容的背景的理解,且因此其可含有不構成先前技術的資訊。
在各種實施例中,本文中所描述的包含用於計算儲存裝置的資料傳送的系統、方法以及設備。
在各種實施例中,描述一種管理記憶體的方法。方法包含:經由介面在主機裝置與儲存裝置之間建立連接;以及藉由由主機裝置執行的應用對第二記憶體進行資料操作而經由介面在與主機裝置相關聯的第一記憶體及與儲存裝置相關聯的第二記憶體之間傳送資料,其中儲存裝置包含藉由對資料操作進行至少一個卸載功能來加速資料操作的處理元件。
在一個實施例中,介面包含應用程式設計介面(application programming interface;API),且主機裝置使用與API相關聯的至少一個命令來分配第二記憶體。在另一實施例中,主機裝置使用細粒度分配方案或粗粒度分配方案來分配第二記憶體。在一個實施例中,方法更包含定址第二記憶體且傳送資料至少部分地基於第二記憶體的定址。在一些實施例中,第二記憶體包含安全位址空間,且其中方法更包含主機裝置基於安全位址空間進行一或多個多租戶操作。
在另一實施例中,儲存裝置包含啟用非揮發性記憶體快速(non-volatile memory express;NVMe)的儲存裝置,且使用分散聚合列表(scatter gather list;SGL)進行資料操作。在一些實施例中,進行資料操作更包含儲存裝置將資料自與儲存裝置相關聯的持續記憶體傳送至第二記憶體。在一個實施例中,傳送資料更包含主機裝置將關於主機裝置佈局的資訊提供至儲存裝置。在另一實施例中,傳送資料更包含儲存裝置將關於儲存裝置的用於讀取及寫入操作的記憶體佈局的資訊提供至主機裝置。在一些實施例中,建立連接包含發現及設定過程。
類似地,還揭露用於進行與上文所描述的操作實質上相同或類似的操作的非暫時性電腦可讀媒體、裝置以及系統。
因此,可實施本文中所描述的主題的特定實施例,以便實現以下優勢中的一或多者。減小網路潛時且改良網路穩定性及操作資料傳送速率且進而改良使用者體驗。降低與路由網路訊務、網路維護、網路升級及/或類似者相關聯的成本。此外,在一些態樣中,所揭露的系統可用以減小網路上的裝置的功率消耗及/或頻寬,且可用以提高裝置之間的通信的速度及/或效率。此外,所揭露的系統及方法可用以提供對直接附接及網路附接的驅動器起作用的無縫機制。在另一態樣中,所揭露的機制可至少因為裝置記憶體可不暴露於主機而提供縮放。此外,所揭露的機制可應用於計算儲存裝置(例如,具有處理功能性的儲存裝置)及相關系統。如所指出,所揭露的系統具有不暴露裝置記憶體的優勢。因此,所揭露的系統未必需要使其記憶體藉由主機的系統虛擬位址空間中的系統軟體填充。在其他態樣中,所揭露的系統可結合任何合適的儲存裝置使用,諸如非NVMe固態驅動機(solid state drive;SSD)。此外,所揭露的系統及方法可經標準化且應用於一系列儲存裝置及相關系統,同時對於供應商是不可知的。
在隨附圖式及以下描述中闡述本文所描述的主題的一或多個實施例的細節。主題的其他特徵、態樣以及優勢將自描述、圖式以及申請專利範圍變得顯而易見。
現將參考隨附圖式在下文中更充分地描述本揭露的各種實施例,在所述隨附圖式中,展示一些實施例,但非所有實施例。實際上,本揭露可以多種不同形式實施,且不應視為受本文中所闡述的實施例限制;相反,提供此等實施例以使得本揭露將符合適用的法定要求。除非另外指示,否則術語「或」在本文中以替代的及結合意義兩者使用。術語「說明性」及「實例」用於不指示品質水準的實例。相同數字貫穿全文指代相同元件。圖式中的每一者中的箭頭描繪雙向資料流及/或雙向資料流能力。術語「路徑(path)」、「通路(pathway)」以及「路線(route)」在本文中可互換地使用。
本揭露的實施例可以各種方式實施,包含如包括製品的電腦程式產品。電腦程式產品可包含儲存應用程式、程序、程式組件、腳本、原始碼、程式碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似者(在本文中亦稱為可執行指令、用於執行的指令、電腦程式產品、程式碼及/或本文中可互換地使用的類似術語)的非暫時性電腦可讀儲存媒體。此類非暫時性電腦可讀儲存媒體包含所有電腦可讀媒體(包含揮發性及非揮發性媒體)。
在一個實施例中,非揮發性電腦可讀儲存媒體可包含軟碟、可撓性磁碟、硬碟、固態存儲器(solid-state storage;SSS)(例如固態驅動機(solid-state drive;SSD))、固態卡(solid state card;SSC)、固態模組(solid state moduyle;SSM)、企業快閃驅動機、磁帶或任何其他非暫時性磁性媒體及/或類似者。非揮發性電腦可讀儲存媒體亦可包含穿孔卡、紙帶、光學標記片(或具有孔圖案或其他光學可辨識標誌的任何其他實體媒體)、光碟唯讀記憶體(compact disc read only memory;CD-ROM)、可重寫光碟(compact disc-rewritable;CD-RW);數位多功能光碟(digital versatile disc;DVD);藍光光碟(Blu-ray disc;BD)、任何其他非暫時性光學媒體及/或類似者。此類非揮發性電腦可讀儲存媒體亦可包含唯讀記憶體(read-only memory;ROM)、可程式化唯讀記憶體(programmable read-only memory;PROM)、可抹除可程式化唯讀記憶體(erasable programmable read-only memory;EPROM)、電可抹除可程式化唯讀記憶體(electrically erasable programmable read-only memory;EEPROM)、快閃記憶體(例如,串行、NAND、NOR及/或類似者)、多媒體記憶卡(multimedia memory card;MMC)、安全數位(secure digital;SD)記憶卡、智慧卡(SmartMedia cards)、緊密快閃(CompactFlash;CF)卡、記憶條及/或類似者。此外,非揮發性電腦可讀儲存媒體亦可包含導電橋接隨機存取記憶體(conductive-bridging random access memory;CBRAM)、相變隨機存取記憶體(phase-change random access memory;PRAM)、鐵電隨機存取記憶體(ferroelectric random-access memory;FeRAM)、非揮發性隨機存取記憶體(non-volatile random-access memory;NVRAM)、磁阻式隨機存取記憶體(magnetoresistive random-access memory;MRAM)、電阻式隨機存取記憶體(resistive random-access memory;RRAM)、矽-氧化矽-氮化矽-氧化矽-矽記憶體(Silicon-Oxide-Nitride-Oxide-Silicon;SONOS)、浮動式接面閘極隨機存取記憶體(floating junction gate random access memory;FJG RAM)、千足蟲記憶體(Millipede memory)、軌道記憶體及/或類似者。
在一個實施例中,揮發性電腦可讀儲存媒體可包含隨機存取記憶體(random access memory;RAM)、動態隨機存取記憶體(dynamic random access memory;DRAM)、靜態隨機存取記憶體(static random access memory ;SRAM)、快速頁面模式動態隨機存取記憶體(fast page mode dynamic random access memory;FPM DRAM)、延伸資料輸出動態隨機存取記憶體(extended data-out dynamic random access memory;EDO DRAM)、同步動態隨機存取記憶體(synchronous dynamic random access memory;SDRAM)、雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory;DDR SDRAM)、雙倍資料速率類型二同步動態隨機存取記憶體(double data rate type two synchronous dynamic random access memory;DDR2 SDRAM)、雙倍資料速率類型三同步動態隨機存取記憶體(double data rate type three synchronous dynamic random access memory;DDR3 SDRAM)、記憶體匯流排動態隨機存取記憶體(Rambus dynamic random access memory;RDRAM)、雙電晶體RAM(Twin Transistor RAM;TTRAM)、閘流體RAM(Thyristor RAM;T-RAM)、零-電容器(Zero-capacitor;Z-RAM)、記憶體匯流排線內記憶體組件(Rambus in-line memory component;RIMM)、雙直插記憶體組件(dual in-line memory component;DIMM)、單直插記憶體組件(single in-line memory component;SIMM)、視訊隨機存取記憶體(video random access memory;VRAM)、快取記憶體(包含各種層級)、快閃記憶體、暫存器記憶體及/或類似者。應瞭解,在實施例經描述為使用電腦可讀儲存媒體的情況下,除上文所描述的電腦可讀儲存媒體外,可用其他類型的電腦可讀儲存媒體替代或使用其他類型的電腦可讀儲存媒體。
應瞭解,本揭露的各種實施例亦可實施為方法、設備、系統、計算裝置、計算實體及/或類似者。因而,本揭露的實施例可呈執行儲存於電腦可讀儲存媒體上的指令以進行某些步驟或操作的設備、系統、計算裝置、計算實體及/或類似者的形式。因此,本揭露的實施例亦可呈完全硬體實施例、完全電腦程式產品實施例及/或包括進行某些步驟或操作的電腦程式產品及硬體的組合的實施例的形式。
下文參考方塊圖及流程圖圖示來描述本揭露的實施例。因此,應理解,方塊圖及流程圖圖示中的每一方塊可以電腦程式產品、完全硬體實施例、硬體及電腦程式產品的組合及/或進行用於執行的電腦可讀儲存媒體上的可互換使用的指令、操作、步驟以及類似字詞(例如可執行指令、用於執行的指令、程式碼及/或類似物)的設備、系統、計算裝置、計算實體及/或類似物的形式來實施。舉例而言,可依序進行程式碼的檢索、加載以及執行,使得同時檢索、裝載以及執行一個指令。在一些實例實施例中,可並行地進行檢索、載入及/或執行,使得共同檢索、載入及/或執行多個指令。因此,此類實施例可產生進行方塊圖及流程圖圖示中所指定的步驟或操作的經特定組態的機器。因此,方塊圖及流程圖圖示支援用於進行經指定指令、操作或步驟的實施例的各種組合。
背景及問題陳述
計算儲存裝置可用以例如藉由進行近儲存加速操作來增強儲存功能性使用。特定言之,所揭露的系統可進行儲存資料的基於加速器裝置的處理。在一些態樣中,諸如固態儲存裝置(solid state storage device;SSD)的儲存裝置可經組態以藉由任何合適的協定(諸如,非揮發性記憶體快速(NVMe))進行操作。此類啟用NVMe的SSD可具有比非NVMe SSD低的潛時,且可支援較大儲存容量。在其他態樣中,此類SSD可包含多個裝置輸入-輸出(input-output;I/O)佇列,且藉此提供較大平行度以供儲存。在一些態樣中,一些基於周邊組件互連高速(Peripheral Component Interconnect Express;PCIe)的裝置(例如,具有4個通道或8個通道(x4及x8裝置)的第3代(generation 3;Gen3)PCIe)可使對應PCIe頻寬限制飽和且因此可限制裝置縮放。因此,即使SSD可提供一定水平的效能,但由於各種系統設計限制,當將多個此類裝置用於伺服器中時,SSD可能無法使用。此外,舉例而言,伺服器中結合一些PCIe代(例如第4代,Gen4)的縮放SSD可具有類似行為,這是因為SSD可具有較高效能且可使每個裝置的PCIe限制飽和。此類似行為可歸因於跨越裝置的PCIe通道計數;然而,SSD可能受到現代CPU及意欲PCIe匯流排的總可定址能力限制。(以上代及對應通路計數用作實例且僅出於說明之目的,且不應理解為以任何方式限制所揭露的實施例。)
利用計算儲存裝置同級間(peer-to-peer;P2P)技術,處理元件(例如,場可程式化閘陣列,FPGA)裝置記憶體可映射至主機位址空間;因此,應用程式可使用此映射位址且繞過主機PCIe匯流排直接自SSD讀取資料或將資料寫入至SSD。此技術可在對應伺服器支援此映射的情況下起作用。然而,一些伺服器可能不支援此映射。因此,隨著裝置記憶體大小增加,伺服器在其BIOS中設定限制以不將此類大型記憶體映射至主機位址空間。另外,當多個裝置經縮放時,伺服器可停止進行額外映射,從而限制裝置的能力,且導致其他縮放問題。此可由於記憶體位址空間可由伺服器供應商預組態,藉此限制具有大型記憶體的裝置的縮放。在一些情況下,使用具有大型記憶體的裝置可受限於每個伺服器幾個裝置(例如,1至6個裝置)。在各種態樣中,計算儲存提供藉由P2P擴展所述能力的方式。
在一些態樣中,利用某些協定,諸如網狀架構上NVMe(NVMe over fabrics;NVMe-oF)協定及裝置,SSD可支援網路附接操作模式(相對於裝置附接操作模式)而不暴露底層介面細節。然而,計算儲存裝置或利用此機制的任何裝置可不充分地起作用,這是因為裝置的記憶體映射可能不適用於遠端裝置的網路。
其他限制
在一些態樣中,映射至主機位址空間(例如,作為PCIe基礎位址暫存器,BAR)的裝置記憶體可具有各種限制,如下文進一步描述。特定言之,一個限制可包含並非所有基本輸入輸出系統(basic input output system;BIOS)同等地對待額外裝置記憶體的事實。此可歸因於以下事實:許多BIOS採用通常處理對主機的動態隨機存取記憶體(DRAM)作用良好的分配的舊版程式碼。此外,一些BIOS可能並不容許大型裝置記憶體,且若偵測到,則禁止初始化所述資源。因此,可存在設定此類裝置的記憶體大小的命令(例如,PCIe組態命令),使得支援此類命令的BIOS將對其起作用。此外,BIOS可能無法為裝置記憶體提供足夠的記憶頭空間。因此,由於此問題,當多個裝置記憶體利用多個此類裝置進行初始化時,多個裝置記憶體可遇到記憶體位址限制。裝置縮放可被限制為比在沒有此等可見額外裝置記憶體的情況下伺服器可容納的數目更少的數目。在各種態樣中,當此等裝置為經由諸如乙太網路、彙聚乙太網路(Converged Ethernet;RoCE)上的遠端直接記憶體存取(remote direct memory access;RDMA)、無線帶寬、光纖信道(Fibre Channel;FC)等網路附接的遠端網狀架構時,PCIe BAR後面的一些記憶體可能不起作用。此可歸因於以下事實:記憶體映射可為僅主要與本端附接PCIe一起起作用的本端資源。
解決方案
在各種態樣中,計算儲存(亦稱為近儲存計算)可使得某些資料處理功能能夠卸載至儲存裝置。在一些態樣中,卸載功能亦稱為加速引擎或加速內核。此外,卸載功能可具有計算資源及裝置本端記憶體資源以進行所要資料處理功能。在另一態樣中,在此儲存裝置中可存在且激活多個卸載功能。此類架構可能需要低開銷裝置記憶體管理機制。本揭露提出用於此等目的的有效裝置記憶體管理的多種方法。
在各種實施例中,所揭露的系統及方法包含用於諸如SSD的儲存裝置將諸如讀取資料及寫入資料的資料自儲存媒體傳送至協同裝置的記憶體的機制。在另一實施例中,所揭露的系統及方法包含用以轉譯裝置記憶體佈局以用於讀取及寫入的裝置機制。在一些實施例中,所揭露的系統描述用於主機在無主機系統位址空間映射及主機轉譯的情況下向儲存裝置描述內部裝置佈局的機制。在一些態樣中,裝置佈局可包含用以轉譯裝置記憶體以在位於同一裝置內部的一或多個裝置之間進行內部傳送的裝置機制。轉譯不暴露於主機且藉此保持私用及安全。此外,轉譯可具有映射至主機位址空間中的要求。主機可包含虛擬映射機制,所述虛擬映射機制可包含在此裝置記憶體的開始(例如,0h)至此裝置記憶體的結束之間的偏移,所述偏移可指示此記憶體的長度。在一個實施例中,所揭露的系統及方法包含發現且設置此特徵的機制,且更包含將主機邏輯透明地應用於直接附接或網路附接的裝置的機制,且可至少部分地實施於諸如計算SSD的儲存裝置上。
在一些實施例中,所揭露的系統及方法包含在儲存裝置與用於裝置內的讀取及寫入資料的同級間(P2P)資料傳送的一或多個協同裝置之間傳送資料,且不進行諸如PCIe匯流排的外部連接。在一個實施例中,所揭露的系統將內部裝置記憶體映射提供至用於P2P傳送的儲存裝置,且此類傳送可在不涉及主機的由操作系統記憶體管理器提供的虛擬及實體位址的系統位址映射的情況下發生。在另一實施例中,所揭露的系統准許針對主機軟體命令描述提取內部映射。在一個實施例中,所揭露的系統提供用以在裝置與其協同裝置之間傳送資料的機制,且此功能性能夠縮放至最大支援儲存裝置而不引起系統限制。在一些態樣中,所揭露的系統提供用於在儲存裝置(SSD)與其協同裝置之間傳輸資料而無需I/O路徑中的主機系統位址轉譯的機制。
圖1是根據本揭露的實例實施例的用於使得資料處理功能能夠卸載至儲存裝置的例示性架構的圖示。圖100展示包含此架構中涉及的組件的圖。
在各種實施例中,圖100展示包含應用程式106、系統記憶體108以及驅動器110的主機102。在一些實施例中,應用程式106可包含在主機上執行或部分執行的任何合適的程式。在另一實施例中,系統記憶體108可包含DRAM、靜態隨機存取記憶體(SRAM)、快閃記憶體或任何合適的揮發性記憶體,且可進一步包含記憶體的邏輯及實體形式兩者。在一些實施例中,驅動器110可包含軟體或韌體,所述軟體或韌體具有用於主機軟體的特定指令以與類似但未必等同於下文將描述的儲存裝置104的外部裝置處的對應連接通信。
在各種實施例中,儲存裝置104可包含固態驅動機(SSD)或以其他方式包含快閃記憶體。下文提供儲存裝置104的其他細節。在一些實施例中,儲存裝置104可包含裝置管理器112,所述裝置管理器112可進一步用作主機介面、直接記憶體存取(DMA)引擎及平台管理器。在一些實施例中,裝置管理器112可經由驅動器110與主機102介接。在一些實施例中,儲存裝置104可包含快閃114或任何其他合適形式的非揮發性記憶體。此外,快閃114可連接至裝置管理器112。
在一些實施例中,儲存裝置104可包含裝置記憶體116,所述裝置記憶體116可包含任何合適的揮發性記憶體且可進一步包含記憶體的邏輯及實體形式兩者。裝置記憶體116可包含自由記憶體區塊,所述自由記憶體區塊可由裝置管理器112在功能卸載期間利用,如本文中進一步描述。在一些實施例中,如下文進一步描述,儲存裝置104包括各種卸載功能118(例如,卸載功能1、卸載功能2、...、卸載功能n),且所述卸載功能可彼此連接(經由卸載功能控制匯流排)且連接至裝置記憶體116(經由裝置記憶體匯流排)。
在已描述圖100中的組件及組件之間的連接後,吾人現在轉向裝置的功能態樣的論述。如圖100中所展示,卸載功能118可出於至少以下目的而存取裝置記憶體116:1)輸入源資料以用於處理,2)中間結果儲存,3)最終結果儲存,以及4)其他功能。在一些實施例中,裝置管理器112可在儲存裝置104中進行卸載管理器或加速管理,可自主機102系統記憶體108提取資料且存放於裝置記憶體116中,使得卸載功能118可處理所述資料。類似地,卸載功能118可自裝置記憶體116拾取結果資料且將所述資料存放至系統(例如,主機)記憶體108或諸如快閃114媒體的持續記憶體(例如,非揮發性記憶體)中。裝置管理器112可進行卸載管理,且可使用控制匯流排提供源的裝置記憶體位址或指標及結果。出於此目的,可藉由裝置管理器112將此等位址寫入至可經由控制匯流排由卸載功能118存取的一組暫存器。在另一實施例中,在儲存裝置104中進行卸載管理的裝置管理器112亦可出於高速暫存或臨時目的而將裝置記憶體指標提供至卸載功能。
在各種態樣中,裝置記憶體116可能需要具有提供諸如以下的功能的相對低開銷的記憶體管理:1)分配,2)解除分配,3)自由空間追蹤,4)廢料收集,5)記憶體保護以及6)其他。在一個實施例中,可藉由主機102以輸送不可知方式管理此類裝置記憶體116。此輸送不可知方式可包含所揭露的系統將裝置記憶體116視為來自主機102系統記憶體108位址空間的虛擬獨立或單獨記憶體位址空間。在另一實施例中,此類裝置記憶體116可由儲存裝置104自身完全管理,且主機102可視需要以抽象方式指代裝置記憶體116。本揭露進一步在下文描述裝置記憶體管理的此等方法。
主機管理的裝置記憶體
在此方法中,裝置記憶體116可藉由主機102管理。在一些實施例中,記憶體分配、解除分配以及類似者可由主機系統軟體(例如,應用程式106)進行且經由諸如NVMe計算儲存命令的儲存命令傳達至儲存裝置104。裝置記憶體116並未映射至主機102系統記憶體108位址映射中;確切而言,其被視為單獨虛擬位址空間。諸如NVMe命令的各種儲存命令提供源資料的位址的類型,或結果目的地,且裝置記憶體位址可為所述類型中之一者。在此方法中,裝置記憶體管理可由主機102進行。此外,主機可將裝置記憶體管理為自跨越記憶體的長度的0h的絕對位址開始的平坦記憶體位址空間。在一些態樣中,當定址記憶體時,裝置可對頁面粒度及對準提供限制。主機可發現此等限制作為發現裝置記憶體的部分,且主機可在將裝置用於適當裝置使用的同時符合限制。裝置管理器112可將自主機102接收到的記憶體指標轉送至卸載功能118。在一個實施例中,裝置管理器112有可能進行卸載平台管理以在將一些基礎位址傳遞至卸載功能118之前自此類主機提供的裝置記憶體位址添加或減去所述一些基礎位址。
裝置管理的裝置記憶體
在實施例中,可自主機102的視角提取裝置記憶體116且可因此由儲存裝置104自身管理。因此,主機系統軟體(例如,應用程式106)在卸載功能調用期間可能並不指定實際裝置記憶體位址。特定言之,裝置可將不透明處置提供至所分配記憶體,且主機藉由所提供處置定址此記憶體且所述處置內的位址偏移可在記憶體位址0h處開始。在各種實施例中,基於源資料的長度及類型以及由主機102系統軟體提供的結果目的地指標,裝置管理器112進行卸載平台管理且可進行裝置記憶體分配及保留。裝置管理器112可包含DMA引擎,所述DMA引擎可接著在必要時提取源資料且存放至所分配裝置記憶體緩衝器中。彼時,裝置管理器112可例如使用控制匯流排將彼等所分配的裝置記憶體位址提供至各別卸載功能118。此記憶體分配可在每一運行時間期間進行卸載功能的調用。類似地,當卸載功能118完成資料處理時,DMA引擎可在必要時將結果移動至裝置記憶體116外部的目的地位址。DMA引擎可接著在所述調用期間解除分配由卸載功能118使用的裝置記憶體緩衝器。裝置管理器112可在任何時間進行裝置記憶體廢料收集以創建自由空間的連續區塊。
在一些實施例中,卸載功能118可具有以下要求:在每一調用期間分配一定量的暫時記憶體空間(例如,所謂的高速暫存記憶體)以供其處理。裝置管理器112可滿足呈卸載功能登記形式的此類固定記憶體要求。特定言之,當將卸載功能載入至儲存裝置104中時,卸載功能118可例如使用控制匯流排來將此類固定記憶體要求預先傳達至裝置管理器112。此外,裝置管理器112可永久地或在調用使用任何合適的協定之前滿足彼等要求。
在另一實施例中,卸載功能118亦有可能可在功能的運行時間執行期間進行暫時記憶體分配請求。特定言之,在調用之前,卸載功能118可不能夠預先判定暫時記憶體要求。此動態裝置記憶體分配經由任何合適的控制協定來處置。此外,此類動態記憶體分配請求可藉由卸載功能118經由控制匯流排傳達至裝置管理器112。此外,裝置管理器112可經由控制匯流排適當地對彼等請求作出回應。
如早先所描述,在完成時,藉由卸載功能118進行的資料處理的結果駐存於裝置記憶體116中。彼等結果可藉由裝置管理器112的DMA引擎傳送至系統記憶體108或持續記憶體(例如,快閃114)中的適當目的地位置。然而,目的地位址類型可指示結果保持在裝置記憶體116自身中可為可能的。此類機制可由所揭露的系統使用以用於鏈結或嵌套卸載功能118。當將一個卸載功能的結果饋入至另一卸載功能時,所揭露的系統可維持裝置記憶體116中的結果,且將與輸入資料源相同的裝置記憶體位址提供至下一卸載功能。此外,此方法避免可添加更多時間潛時的資料複製。在目的地位址類型為裝置記憶體的情況下,相關聯裝置記憶體區塊未被解除分配,否則情況將為如此。
在一個實施例中,裝置管理器112可將裝置記憶體116管理為虛擬位址空間或實體位址空間。在虛擬位址空間的情況下,裝置管理器112可藉由卸載功能118進行裝置記憶體116存取的位址轉譯。使用虛擬位址空間方法,裝置管理器112可能夠透明地使用非相連實體裝置記憶體區塊的集合將連續位址空間提供至卸載功能。此外,此類技術可在位址轉譯成本下減少記憶體廢料收集開銷中的一些。
在另一實施例中,裝置管理器112可進行記憶體管理功能以加強記憶體保護。因此,可能需要保護卸載功能118以免於存取彼此的記憶體空間。此類隱私及安全功能性可允許所揭露的系統實現多個主動卸載功能的安全且穩健的操作。在另一實施例中,裝置管理器112可對照分配至所述裝置管理器112的記憶體位址空間檢查給定卸載功能的記憶體異動的位址。在一個實施例中,裝置管理器112亦可提供某些特權等級,使得可允許某些功能存取其他卸載功能的裝置記憶體。
內部資料傳送機制
在一些實施例中,利用裝置記憶體116進行資料傳送可發生在用於快閃114及系統記憶體108上的快閃資料的儲存控制器(未展示)之間。在其他實施例中,裝置記憶體116可由在儲存裝置104上運行的計算程式功能使用。由於裝置記憶體116未暴露/映射至系統記憶體108,因此計算儲存裝置104可採用以下機制來定址內部記憶體以用於上文所描述的資料傳送。特定言之,儲存裝置104可採用指定給主機軟體(例如,應用程式106)的一或多個定址方案。此外,主機軟體應用程式介面(例如,驅動器110)可相應地轉譯裝置記憶體116以指導計算儲存裝置104對記憶體116採取的動作。另外,可針對資料傳送及針對執行儲存裝置104內的計算程式功能描述記憶體116。
裝置記憶體定址方案
在一些實施例中,可以(下文所描述的)以下方式描述裝置記憶體116,此例如取決於裝置記憶體116是主機102管理的還是儲存裝置104管理的。如本文中所使用,定址可指用以完整或部分描述裝置記憶體的機制,所述裝置記憶體不需要映射至主機的位址空間中,其中所提供的機制經虛擬化以用於本端及遠端存取。藉由主機102管理的裝置記憶體,裝置記憶體可有效地由可處理多達約2 64或約18 EB的64位元位址描述,其可擴展以供未來使用。主機軟體(例如,應用程式106)使用此64位元位址構建對定址裝置記憶體116的請求,所述位址開始於指向記憶體的開始的偏移零,且接著按比例調整直至記憶體之結束。在一個實施例中,可以位元組粒度或以裝置可通告的粗略得多的區塊粒度量測記憶體增量。舉例而言,所揭露的系統可以512位元組設定區塊粒度,此意謂以由裝置通告的最小粒度位準分配記憶體且亦以此等相同增量傳送至最小值。如所指出,裝置記憶體分配為主機管理的或裝置管理的。在裝置管理的裝置記憶體的情況下,裝置提供額外命令以分配/解除分配記憶體。在一些態樣中,此機制可類似於使用磁碟機成組存取。
圖2是根據本揭露的實例實施例的在裝置記憶體空間中具有各別偏移的記憶體分配的例示性示意圖的圖示。圖200展示4GB裝置記憶體空間中的三個記憶體分配202(204、206以及208)及其各別64位元偏移。在此主機管理機制中,裝置可選擇將散列應用於位址,所述位址進一步作為保護手段對位址進行編碼。此處,內部裝置工作僅可對此等經轉譯偏移起作用。
圖3是根據本揭露的實例實施例的描述裝置管理的裝置記憶體的態樣的例示性示意圖的圖示。在另一實施例中,藉由裝置管理的裝置記憶體,可藉由裝置自身管理所分配的記憶體。如圖300中所展示,關於主機軟體所請求的所需大小的任何分配,裝置可在成功時返回符記密鑰(例如,符記密鑰302)或不透明記憶體處置。在一些實施例中,密鑰連同偏移位址可足以定址2 64個位址。在一些態樣中,記憶體可包含安全位址空間,且主機可基於安全位址空間進行一或多個多租戶操作。在一些情況下,若記憶體是裝置管理的,則可藉由符記及/或不透明的記憶體處置來保證位址,其中多個租戶可使用同一裝置記憶體但具有不同符記。對於主機管理的記憶體,主機可管理多租戶。
如圖304中所展示,在各種實施例中,一或多個主機應用程式可提供符記密鑰306連同所分配記憶體308內的偏移以建置唯一裝置記憶體位址。符記密鑰對於裝置可為私用的且可在需要時被保護。偏移可位於212至1的範圍內小於符記密鑰所需的最小位元的任何位置。圖3展示如何分配256KB的裝置記憶體且將其用於創建有效位址。
關於裝置記憶體的附注
在一些態樣中,裝置可具有可用於計算程式的一個大型記憶體。然而,在某些情況下,裝置亦可使得多於一種記憶體類型可用。在此情況下,所揭露的系統可保留額外位元以表示記憶體類型。在一些態樣中,位元可編碼於諸如上文所描述的符記的密鑰符記中。
主機介面
在各種實施例中,主機軟體介面庫可提供分配/分配裝置記憶體的介面。介面可包含額外選項以指定自哪一裝置記憶體集區分配。此外,介面提供抽象視圖,其中為了簡單起見對主機使用者隱藏實施的內部細節。在一些實施例中,應用程式設計介面(API)可採取以下定義:csAllocMem(device_instance_handle、memory_flags、allocation_size以及returned_handle)。下文圖式中的若干(例如,圖4、圖5、圖6以及圖7)表示可用作與所揭露的系統結合使用的API的一部分的圖。
圖4是根據本揭露的實例實施例的可通告其記憶體管理及使用能力的例示性資料結構裝置的圖示。
發現新定址能力
在各種實施例中,裝置可通告其記憶體管理及使用能力,使得主機軟體可利用所述裝置。在一個實施例中,NVMe裝置可在資料結構400中提供此等細節,諸如識別控制器資料結構,這是因為此資料結構可表示由主機裝置驅動器查詢的第一資料。在一些實施例中,裝置可填入如圖4中所展示的能力。如所展示,資料結構400包含計算儲存能力欄位402及裝置記憶體資料粒度欄位404。
圖5是根據本揭露的實例實施例的用於將裝置記憶體位址用於DMA的例示性命令的圖示。在各種實施例中,所揭露的系統可包含裝置記憶體與主機記憶體之間的DMA,其可包含裝置記憶體的讀取或寫入,如在圖500中藉由讀取計算記憶體502及寫入計算記憶體504欄位所展示。此外,對於除命令欄位外的所有其他欄位,可在NVMe中以相同方式定址此等讀取或寫入中之每一者。
圖6是根據本揭露的實例實施例的含有用以在主機與具有對應欄位的裝置記憶體之間傳送資料的傳送細節的例示性NVMe命令的圖示。舉例而言,基於協定的(例如,基於NVMe的)資料指標暫存器欄位(DPTR欄位)及/或DMDA欄位可提供描述主機記憶體的機制。圖600展示以下各者:描述描述主機資料指標的資料指標(DPTR)的子圖602、展示表示命令Dwords的傳送大小的多個Dwords(NUMD)欄位的子圖604以及描述表示命令Dwords的裝置資料指標的裝置記憶體資料位址(DMDA)欄位的子圖606。
在一些實施例中,NVMe命令可含有具有如圖6中所展示及描述的欄位的分散聚合列表(SGL)。在一些態樣中,DPTR欄位可指其定義在基礎規格中的主機記憶體。此外,DMDA欄位可指指定為如上文所描述的64位元位址的裝置記憶體。
使用裝置記憶體位址以執行計算程式
在各種實施例中,計算程式使用裝置記憶體存取資料作為輸入且提供結果作為輸出。裝置記憶體可如藉由上文所描述的方案所描述而分配。裝置記憶體可表示為64位元,且可定義記憶體的程式引數。
在各種實施例中,如結合所揭露的系統使用的計算程式可具有對其起作用的一或多個引數。引數可為純量或向量引數。因此,引數可保持資料或為裝置記憶體的指標。程式定義具有定義的必要輸入,且來自主機的命令將提供直接來自主機應用程式的列表。裝置可按原樣解釋此等引數中之每一者且將其向下傳遞至程式。舉例而言,在功能中:foo_function(uint32 size、uint64 src_ptr、unit64 dst_ptr),主機應用程式已傳遞32位元資料值及2個裝置記憶體指標作為命令的部分。
圖7是根據本揭露的實例實施例的用以保持類似於用於本端附接計算儲存裝置及遠端附接計算儲存裝置的記憶體使用的例示性特殊類型的分散聚合列表(SGL)機制的圖示。特定言之,裝置可提供用於定址由卸載程式使用的內部記憶體的機制。用於諸如非揮發性記憶體快速(NVMe)的一些協定的機制可提供可為本端附接裝置(例如,經由周邊組件互連高速,PCIe)或遠端附接裝置(網狀架構上NVMe,NVMe-oF)之間公共的定址方案。主機軟體可利用此相對簡單及可縮放機制且不必判定在定址裝置時如何附接所述裝置。特定言之,圖700包含SGL識別符702欄位、保留704欄位、長度706欄位以及偏移708欄位。在一些態樣中,SGL可提供SGL識別符702以指示需要用於定址裝置記憶體的描述符的類型。長度706欄位描述經定址的裝置記憶體的長度,而偏移708描述所述記憶體內的偏移。保留704欄位可保持為保留欄位以供將來使用。
使用裝置記憶體位址以儲存I/O
不管用於分配裝置記憶體的記憶體管理,所揭露的系統描述至裝置的所述記憶體。特定言之,所揭露的系統採用一種類型的分散聚合列表(SGL)機制以保持類似於本端及遠端附接計算儲存裝置的記憶體使用。在各種態樣中,系統可在一個裝置記憶體位置之間將記憶體傳送至下一記憶體位置(在同一裝置中)。替代地或另外,系統可將記憶體自多個裝置位置傳送至主機。特定言之,系統可將裝置記憶體的一個位置之間的資料傳送至同一裝置記憶體中的另一位置:某些使用可能需要將資料自一個位置傳送至下一位置。此外,資料可由可能無法存取所有記憶體位置的不同卸載程式使用。此外,主機在此情況下可經由記憶體處置抽象及存取限制來管理安全及多租戶機制。一個實例使用情況可包含自儲存名稱載入至裝置記憶體中的資料。舉例而言,記憶體A可首先由第一卸載程式X1解密至裝置記憶體B中。並行地,X1的另一個例(例如,X2個例)可將裝置記憶體C解密至裝置記憶體D中。主機可接著在裝置記憶體位置E中複製記憶體B及記憶體D,且呈現記憶體B及記憶體D以卸載程式Y,例如分析及過濾記憶體B及記憶體D。在其他態樣中,系統可在兩個單獨裝置記憶體位置之間傳送:此處,裝置可具有多於一個裝置記憶體。另外,裝置可在多個分散裝置記憶體位置之間傳送記憶體至同一裝置記憶體上的可表示SGL使用的一個裝置記憶體位置。此外,裝置可將多個分散裝置記憶體位置之間的記憶體傳送至主機記憶體。
在各種實施例中,設定成預定值(例如,9)的SGL描述符類型可指示用於資料SGL描述符的計算記憶體的類型。此外,用於所有傳送的SGL描述符子類型可設定成另一值(例如,1)且可使用偏移欄位作為用於資料的計算記憶體的起點的偏移來操作。舉例而言,偏移欄位含有自資料的計算記憶體所位於的位置開始的偏移,且其長度定義為由區塊粒度欄位控管的長度。描述64位元位址的偏移欄位應如針對由主機或裝置管理的記憶體所描述而使用。在另一實施例中,各種命令(例如,NVMe I/O命令)可使用SGL來描述用於其操作的資料的計算記憶體。
圖8是根據本揭露的實例實施例的概述資料緩衝器與I/O命令的交互作用的例示性表800的圖示。NVMe讀取及寫入命令802可藉由對應實體區頁面(physical region page;PRP)及SGL使用來定義。特定言之,本揭露的實施例描述用以在儲存名字空間與裝置記憶體之間傳送資料的載入及儲存命令。替代地,可修改NVMe讀取及寫入命令以包含使用所揭露的裝置記憶體定址方案。經更新的SGL可取代其中裝置記憶體經定址的彼等情況。
圖9是根據本揭露的實例實施例的用於資料傳送的例示性SGL描述符的圖示。以下實例展現所描述的SGL描述符用於資料傳送的使用。圖式900展示SQE 902、用於資料SGL 904的計算記憶體及用於計算的裝置記憶體906。用於資料SGL 904的計算記憶體包含預定偏移908、長度910以及SGL識別符912欄位。此外,用於計算的裝置記憶體906包含64 KB記憶體914。在一些情況下,可使用針對每一命令定義的描述符而將NVMe命令自主機傳送至裝置。此等描述符可填入NVMe提交佇列(submission queue;SQ)中。每一SQ可支援多個提交佇列條目(submission queue entry;SQE)。主機軟體可將每一請求作為描述符傳送至自由SQE,且藉由振鈴其門鈴而使裝置知曉發佈至SQ的工作。特定言之,圖900展示SQE 902條目可填入標準NVMe讀取命令,且資料指標(DPTR欄位)可藉由指向裝置記憶體的SGL條目(例如,4 KB記憶體914)更新。此處,SGL在預定偏移908及64 KB的長度910處界定裝置記憶體區塊。SQE的其他欄位填入有規則NVMe讀取。使用此SGL讀取的NVMe可直接在預定偏移908處填入儲存讀取內容。儲存控制器可解譯此內部定義。
本文中藉由本揭露所描述的機制提供用以定址及存取裝置記憶體以用於計算儲存裝置的唯一方法。此等機制可適於本端及遠端附接裝置且可縮放。
圖10是根據本揭露的實例實施例的示出與所揭露的系統相關聯的實例操作的例示性操作流程1000的圖示。特定言之,操作流程1000是自系統的視角(例如,與主機裝置視角及/或儲存裝置視角相對)。在方塊1002處,所揭露的系統可經由介面(例如API)在主機裝置與儲存裝置之間建立連接。在方塊1004處,所揭露的系統可藉由由主機裝置執行的應用對第二記憶體進行資料操作而經由介面在與主機裝置相關聯的第一記憶體及與儲存裝置相關聯的第二記憶體之間傳送資料。此外,儲存裝置可包含藉由對資料操作進行至少一個卸載功能來加速資料操作的處理元件。
圖11是根據本揭露的實例實施例的示出與所揭露的系統相關聯的實例操作的另一例示性操作流程1100的圖示。特定言之,操作流程1100自儲存裝置的視角(例如,與主機裝置視角及/或通用系統視角相對)。特定言之,在方塊1102處,所揭露的系統可將資訊傳輸至主機裝置以經由介面在主機裝置與儲存裝置之間建立連接。在方塊1104處,所揭露的系統可自主機裝置接收資料請求。在方塊1106處,所揭露的系統可藉由對資料操作進行至少一個卸載功能基於資料請求在儲存裝置記憶體上進行資料操作。在方塊1108處,所揭露的系統可經由介面將由資料操作產生的資料提供至主機裝置。
圖12展示可用於實踐本揭露的實施例的系統的實例示意圖。如圖12中所展示,此特定實施例可包含一或多個管理計算實體1200、一或多個網路1205以及一或多個使用者裝置1210(例如,主機裝置、儲存裝置、額外裝置等)。在各種實施例中,管理計算實體1200可經組態以運行與貫穿本揭露內容所描述的所揭露的系統及相關聯實施例相關聯的操作。此外,管理計算實體1200可駐存於所揭露的系統的任何合適的部分(例如,儲存裝置管理器、主機應用程式、遠端主機、另一裝置、其組合及/或類似者)中。此等組件、實體、裝置、系統以及在本文中可互換使用的類似詞中的每一者可例如彼此直接通信或經由相同或不同有線或無線網路間接通信。另外,儘管圖12將各種系統實體示出為分開的獨立實體,但各種實施例不限於此特定架構。如所指出,可使用本文中進一步描述的任何合適的協定來進行通信。
圖13展示根據本揭露的實例實施例的管理計算實體的實例示意圖1300。如所指出,管理計算實體可經組態以運行與貫穿本揭露所描述的所揭露的系統及相關聯實施例相關聯的操作。此外,管理計算實體1200可駐存於所揭露的系統的任何合適的部分中。特定言之,內容組件可用以判定指示待經由本文中所描述的系統傳輸的資料(例如,視訊、音訊、文字、資料、其組合及/或類似者)之信號。在另一實施例中,用於傳輸的信號的判定可例如基於至裝置的使用者輸入、與系統相關聯的網路上的資料傳輸的預定排程、網路條件的改變及類似者。在一個實施例中,信號可包含可包封於資料訊框中的資料,所述資料訊框經組態以自裝置發送至網路上的一或多個裝置。
在另一實施例中,處理元件1305可用以判定經由與所揭露的系統相關聯的網路傳輸的各種參數相關聯資料。作為另一實例,處理元件1305可用以進行各種加速操作,諸如卸載功能性、預處理或後處理資料、其組合等等之至少部分。
在一個實施例中,傳輸組件(未展示)可用於將信號自網路上的一個裝置傳輸至另一裝置。舉例而言,傳輸組件可用於準備傳輸器(例如,下文圖14的傳輸器1404)以經由網路傳輸信號。舉例而言,傳輸組件可將資料排入一或多個緩衝器中,可確定傳輸裝置及相關傳輸器為機能性的且具有足夠的功率以經由網路傳輸信號,可調整與資料的傳輸相關聯的一或多個參數(例如,調變類型、信號放大、信號功率級、雜訊抑制、其組合及/或類似者)。
一般而言,術語計算實體、電腦、實體、裝置、系統及/或本文中可互換地使用的類似字詞可指例如一或多種電腦、計算實體、桌上型電腦、移動電話、平板電腦、平板手機、筆記型電腦、膝上型電腦、分佈系統、遊戲控制台(例如Xbox、Play Station、Wii)、手錶、眼鏡、蘋果信標(iBeacons)、接近性信標、鑰鍊(key fob)、無線射頻辨識系統(radio frequency identification;RFID)標籤、耳機、掃描器、電視、硬體鎖、相機、腕帶、可穿戴式物品/裝置、資訊站、輸入端子、伺服器或伺服器網路、刀鋒、閘道器、開關、處理裝置、處理實體、機上盒、繼電器、路由器、網路存取點、基地台、類似物及/或用以進行本文中所述的功能、操作及/或過程的裝置或實體的任何組合。此類功能、操作及/或過程可包含例如傳輸、接收、操作、處理、顯示、儲存、判定、產生(creating/generating)、監視、評估、比較及/或本文中可互換地使用的類似術語。在一個實施例中,可對資料、內容、資訊及/或本文中可互換使用的類似術語進行此等功能、操作及/或程序。
如所指示,在一個實施例中,管理計算實體1200亦可包含一或多個通信介面1320以與各種計算實體通信,諸如通信可在經處理、經顯示、經儲存及/或類似物上傳輸、接收、操作的資料、內容、資訊及/或本文中可互換地使用的類似術語。舉例而言,管理計算實體1200可與使用者裝置1210及/或各種其他計算實體通信。
如圖13中所展示,在一個實施例中,管理計算實體1200可包含一或多個處理元件1305或與一或多個處理元件1305(亦稱為處理器、處理電路及/或本文中可互換地使用的類似術語)通信,所述一或多個處理元件1305經由例如匯流排與管理計算實體1200內的其他元件通信。如將理解,處理元件1305可以數種不同方式實施。舉例而言,處理元件1305可經實施為一或多種複合可程式化邏輯裝置(complex programmable logic devices;CPLD)、微處理器、多核處理器、共處理實體、特定應用指令集處理器(application-specific instruction-set processors;ASIP)、微控制器及/或控制器。此外,處理元件1305可經實施為一或多種其他處理裝置或電路。術語電路系統可指完全硬體實施例或硬體及電腦程式產品的組合。因此,處理元件1305可經實施為積體電路、特定應用積體電路(application specific integrated circuits;ASIC)、場可程式化閘陣列(field programmable gate arrays;FPGA)、可程式化邏輯陣列(programmable logic arrays;PLA)、硬體加速器、其他電路及/或類似物。因此將理解,處理元件1305可經組態以用於特定用途或經組態以執行儲存於揮發性或非揮發性媒體中的指令或另外可存取處理元件1305。因而,無論藉由硬體或電腦程式產品或藉由其組合進行組態,當相應地組態時,處理元件1305可能夠根據本揭露內容的實施例進行步驟或操作。
在一個實施例中,管理計算實體1200可更包含非揮發性媒體或與非揮發性媒體(亦稱為非揮發性儲存器、記憶體、記憶體儲存器、記憶體電路及/或本文中可互換地使用的類似術語)通信。在一個實施例中,非揮發性儲存器或記憶體可包含一或多個非揮發性儲存器或記憶體媒體1310,包含但不限於硬碟機、ROM、PROM、EPROM、EEPROM、快閃記憶體、MMC、SD記憶卡、記憶條、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、千足蟲記憶體、軌道記憶體及/或類似者。如將認識到,非揮發性儲存器或記憶體媒體可儲存資料庫、資料庫個例、資料庫管理系統、資料、應用程式、程式、程式組件、腳本、原始碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似者。術語資料庫、資料庫個例、資料庫管理系統及/或本文中可互換使用的類似術語可指儲存於使用一或多個資料庫模型的電腦可讀儲存媒體中的記錄或資料的集合,所述資料庫模型諸如階層式資料庫模型、網路模型、關連式模型、實體關係模型、目標模型、文獻模型、語義模型、圖表模型及/或類似者。
在一個實施例中,管理計算實體1200可更包含揮發性媒體或與揮發性媒體(亦稱為揮發性儲存器、記憶體、記憶體儲存器、記憶體電路及/或本文中可互換地使用的類似術語)通信。在一個實施例中,揮發性儲存器或記憶體亦可包含一或多種揮發性儲存器或記憶體媒體1315,包含(但不限於)RAM、DRAM、SRAM、FPM DRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、快取記憶體、暫存器記憶體及/或類似物。如將認識到,揮發性儲存器或記憶體媒體可用於至少儲存藉由例如處理元件1305執行的資料庫、資料庫個例、資料庫管理系統、資料、應用程式、程式、程式組件、腳本、原始碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似物。因此,資料庫、資料庫個例、資料庫管理系統、資料、應用程式、程式、程式組件、腳本、原始碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似物可用於在處理元件1305及操作系統的輔助下控制管理計算實體1200的操作的某些態樣。
如所指示,在一個實施例中,管理計算實體1200亦可包含一或多個通信介面1320以與各種計算實體通信,諸如通信可在經處理、經顯示、經儲存及/或類似物上傳輸、接收、操作的資料、內容、資訊及/或本文中可互換地使用的類似術語。可使用有線資料傳輸協定執行此通信,有線資料傳輸協定諸如周邊組件互連高速(PCIe)、光纖分散式資料介面(fiber interface;FDDI)、數位用戶線(digital subscriber line;DSL)、乙太網路、非同步傳輸模式(asynchronous transfer mode;ATM)、訊框中繼、有線電纜資料服務介面規範(data over cable service interface specification;DOCSIS)或任何其他有線傳輸協定。類似地,管理計算實體1200可經組態以使用多種協定中的任一者經由無線外部通信網路來通信,所述協定諸如通用封包無線電服務(general packet radio service;GPRS)、全球行動電信系統(Universal Mobile Telecommunications System;UMTS)、碼分多重存取2000(Code Division Multiple Access 2000;CDMA2000)、CDMA2000 1X(1xRTT)、寬頻碼分多重存取(Wideband Code Division Multiple Access;WCDMA)、時分同步碼分多重存取(Time Division-Synchronous Code Division Multiple Access;TD-SCDMA);長期演進(Long Term Evolution;LTE);演進型通用陸地無線電存取網路(Evolved Universal Terrestrial Radio Access Network;E-UTRAN)、演進資料最佳化(Evolution-Data Optimized;EVDO)、高速封包存取(High Speed Packet Access;HSPA);高速下行鏈路封包存取(High-Speed Downlink Packet Access;HSDPA)、IEEE 802.11(Wi-Fi)、Wi-Fi直連、802.16(WiMAX)、超寬頻(ultra-wideband;UWB)、紅外線(infrared;IR)協定、近場通信(near field communication;NFC)協定、紫蜂(ZigBee)、藍牙協定、5G協定、無線通用串列匯流排(wireless universal serial bus;USB)協定及/或任何其他無線協定。
儘管未繪示,但管理計算實體1200可包含一或多種輸入元件或與一或多種輸入元件通信,所述輸入元件諸如鍵盤輸入、滑鼠輸入、觸控式螢幕/顯示器輸入、運動輸入、移動輸入、音訊輸入、指標裝置輸入、操縱桿輸入、小鍵盤輸入及/或類似輸入。管理計算實體1200亦可包含一或多個輸出元件(未繪示)或與所述一或多個輸出元件通信,所述輸出元件諸如音訊輸出、視訊輸出、螢幕/顯示器輸出、運動輸出、移動輸出及/或類似者。
如將瞭解,管理運算實體1200的組件中的一者或大於一者可遠離其他管理計算實體1200組件安置,諸如在分佈系統中。此外,組件中的一者或大於一者可組合且管理計算實體1200中可包含進行本文中所描述功能的額外組件。因此,管理計算實體1200可用以適應多種需要及情形。如將認識到,此等架構及描述僅出於實例目的而提供,且並不限於各種實施例。
使用者可為個體、家庭、公司、組織、實體、組織內的部門、組織及/或人的代表及/或類似物。在一個實例中,使用者可為雇員、居民、顧客及/或類似者。舉例而言,使用者可操作使用者裝置1210,所述使用者裝置1210包含功能上與管理計算實體1200的組件類似的一或多種組件。
在各個態樣中,處理組件、傳輸組件及/或接收組件(未繪示)可經組態以在一者或大於一者上操作 ,所述一者或大於一者可包含管理計算實體1200的功能性的態樣,如此處結合圖12及圖13所繪示且描述。特定言之,處理組件、傳輸組件及/或接收組件可經組態以與一或多種處理元件1305、記憶體1310、揮發性記憶體1315通信,且可包含通信介面1320(例如,以便於裝置之間的通信)。
圖14展示根據本揭露的實例實施例的使用者裝置的實例示意圖。圖14提供可結合本揭露的實施例使用的使用者裝置1410(例如,主機裝置、儲存裝置、周邊裝置等)的說明性示意性表示。一般而言,術語裝置、系統、計算實體、實體及/或本文中可互換地使用的類似字詞可指例如一或多種電腦、計算實體、桌上型電腦、移動電話、平板電腦、平板手機、筆記型電腦、膝上型電腦、分佈系統、遊戲控制台(例如Xbox、Play Station、Wii)、手錶、眼鏡、鑰鏈、無線射頻辨識系統(RFID)標籤、耳機、掃描器、相機、腕帶、資訊站、輸入端子、伺服器或伺服器網路、刀鋒、閘道器、開關、處理裝置、處理實體、機上盒、繼電器、路由器、網路存取點、基地台、類似物及/或用以進行本文中所述的功能、操作及/或過程的裝置或實體的任何組合。使用者裝置1410可由各方操作。如圖14中所展示,使用者裝置1410可包含天線1412、傳輸器1404(例如無線電)、接收器1406(例如無線電)以及處理元件1408(例如CPLD、微處理器、多核處理器、共處理實體、ASIP、微控制器及/或控制器),所述處理元件1408分別將信號提供至傳輸器1404且自接收器1406接收信號。
分別將信號提供至傳輸器1404且自接收器1406接收信號可包含根據可應用無線系統的空中介面標準的傳信資訊。就此而言,使用者裝置1410可能夠操作一或多種空中介面標準、通信協定、調變類型以及存取類型。更特定言之,使用者裝置1410可根據多種無線通信標準及協定中的任一者操作,所述無線通信標準及協定諸如上文關於圖12的管理計算實體1200所描述的無線通信標準及協定。在特定實施例中,使用者裝置1410可根據多種無線通信標準及協定來操作,所述無線通信標準及協定諸如所揭露的IoT DOCSIS協定、UMTS、CDMA2000、1xRTT、WCDMA、TD-SCDMA、LTE、E-UTRAN、EVDO、HSPA、HSDPA、5G、Wi-Fi、Wi-Fi直連、WiMAX、UWB、IR、NFC、藍牙、USB及/或類似物。類似地,使用者裝置1410可經由網路介面1420根據多種有線通信標準及協定(諸如上文關於管理計算實體1200所描述的有線通信標準及協定)來操作。
使用者裝置1410可經由這些通信標準及協定,使用諸如無結構輔助服務資料(Unstructured Supplementary Service Data;USSD)、短訊息服務(Short Message Service;SMS)、多媒體訊息處理服務(Multimedia Messaging Service;MMS)、雙音多頻傳信(Dual-Tone Multi-Frequency Signaling;DTMF)及/或用戶身分組件撥號器(Subscriber Identity Component Dialer;SIM撥號器)的概念來與各種其他實體通信。使用者裝置1410亦可下載改變、增加以及更新例如其韌體、軟體(例如,包含可執行指令、應用程式、程式組件)以及操作系統。
根據一個實施例,使用者裝置1410可包含位置判定態樣、元件、組件、功能性及/或本文中可互換使用的類似詞。位置判定態樣可用於通知由管理計算實體使用的模型及本文中所描述的模型及/或機器學習技術中的一或多者。舉例而言,使用者裝置1410可包含戶外定位態樣,諸如用以獲取例如緯度、經度、海拔高度、地理編碼、路線(course)、方向、航向、速度、世界時間(universal time;UTC)、日期及/或各種其他資訊/資料的位置組件。在一個實施例中,位置組件可藉由識別視線中的衛星數目及彼等衛星的相對位置來獲取資料,有時已知為星曆表資料。衛星可為各種不同衛星,包含低軌道(Low Earth Orbit;LEO)衛星系統、國防部(Department of Defense;DOD)衛星系統、歐盟伽利略定位系統(the European Union Galileo positioning system)、中國羅盤導航系統(the Chinese Compass navigation system)、印度區域導航衛星系統(Indian Regional Navigational satellite system)及/或類似者。替代地,可藉由結合多種其他系統,包含蜂巢式塔、Wi-Fi存取點及/或類似物而三角量測使用者裝置1410的位置來判定位置資訊。類似地,使用者裝置1410可包含室內定位態樣,諸如適用於獲取例如緯度、經度、海拔高度、地理編碼、路線、方向、航向、速度、時間、日期及/或各種其他資訊/資料的位置組件。室內系統中的一些可使用各種定位或位置科技,包含RFID標籤、室內信標或傳輸器、Wi-Fi存取點、蜂巢式塔、附近計算裝置(例如智慧型電話、膝上型電腦)及/或類似物。舉例而言,此類科技可包含蘋果信標、方向支架接近性信標、低功耗藍牙(Bluetooth Low Energy;BLE)傳輸器、NFC傳輸器及/或類似物。這些室內定位態樣可用於多種設定中以判定數吋或數公分內的某人或某物的位置。
使用者裝置1410亦可包括(可包含耦接至處理元件1408的顯示器1416的)使用者介面及/或(耦接至處理元件1408的)使用者輸入介面。舉例而言,使用者介面可為執行於使用者裝置1410上及/或可經由使用者裝置1410存取以與管理計算實體1200相互作用及/或使得顯示來自管理計算實體1200的資訊的使用者應用程式、瀏覽器、使用者介面及/或本文中可互換使用的類似詞,如本文中所描述。使用者輸入介面可包括允許使用者裝置1410接收資料的數個裝置或介面中的任一者,諸如小鍵盤1418(硬性或軟性)、觸控顯示器、話音/語音或運動介面,或其他輸入裝置。在包含小鍵盤1418的實施例中,小鍵盤1418可包含(或使得顯示)常規數字(0至9)及相關鍵(#、*)以及用於操作使用者裝置1410的其他鍵,且可包含字母鍵全集或可經激活以提供文數字鍵全集的鍵集合。除提供輸入以外,使用者輸入介面可用於例如激活或去激活某些功能,諸如螢幕節省及/或睡眠模式。
使用者裝置1410亦可包含揮發性儲存器或記憶體1422及/或非揮發性儲存器或記憶體1424,所述揮發性儲存器或記憶體1422及/或非揮發性儲存器或記憶體1424可為嵌入式及/或可為可移除的。舉例而言,非揮發性記憶體可為ROM、PROM、EPROM、EEPROM、快閃記憶體、MMC、SD記憶卡、記憶條、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、千足蟲記憶體、軌道記憶體及/或類似記憶體。揮發性記憶體可為RAM、DRAM、SRAM、FPM DRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、快取記憶體、暫存器記憶體及/或類似記憶體。揮發性及非揮發性儲存器或記憶體可儲存資料庫、資料庫個例、資料庫管理系統、資料、應用程式、程式、程式組件、腳本、原始碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似物來實施使用者裝置1410的功能。如所指示,此可包含駐存於實體上或可經由瀏覽器或其他使用者介面存取以與管理計算實體1200及/或各種其他計算實體通信的使用者應用程式。
在另一實施例中,使用者裝置1410可包含與如上述更詳細地描述的管理計算實體1200的組件或功能性相同或類似的一或多種組件或功能性。如將認識到,此等架構及描述僅出於實例目的而提供,且並不限於各種實施例。
可以一個硬體、韌體以及軟體或硬體、韌體以及軟體的組合實施某些實施例。其他實施例亦可實施為儲存於電腦可讀儲存裝置上的指令,所述指令可由至少一個處理器讀取及執行以進行本文中所描述的操作。電腦可讀儲存裝置可包含用於儲存呈可由機器(例如,電腦)讀取形式的資訊的任何非暫時性記憶體機制。舉例而言,電腦可讀儲存裝置可包含唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體元件以及其他儲存元件及媒體。
詞語「例示性」在本文中用以意謂「充當一實例、個例或說明」。本文中描述為「例示性」的任何實施例不必解釋為比其他實施例較佳或有利。如本文中所用的術語「計算裝置」、「使用者裝置」、「通信台」、「台」、「手持型裝置」、「行動裝置」、「無線裝置」以及「使用者設備」(UE)是指無線通信裝置,諸如蜂巢式電話、智慧型電話、平板電腦、筆記型電腦、無線終端機、膝上型電腦、超微型小區、高資料速率(High Data Rate;HDR)用戶台、存取點、列印機、銷售點裝置、存取終端機或其他個人通信系統(personal communication system;PCS)裝置。裝置可為行動或固定的。
如在本文檔內所使用,術語「通信」意欲包含傳輸或接收或傳輸及接收兩者。當描述由一種裝置傳輸且由另一裝置接收的資料組織時,此可特別適用於申請專利範圍中,但需要那些裝置中的一者的僅功能性違反申請專利範圍。類似地,當僅主張那些裝置中的一者的功能性時,兩種裝置之間的資料的雙向交換(兩種裝置在交換期間傳輸且接收)可描述為「通信」。如本文中關於無線通信信號所使用的術語「通信」包含傳輸無線通信信號及/或接收無線通信信號。舉例而言,能夠傳達無線通信信號的無線通信單元可包含用以將無線通信信號傳輸至至少一個另一無線通信單元的無線傳輸器,及/或用以自至少一個另一無線通信單元接收無線通信信號的無線通信接收器。
一些實施例可結合例如以下各者的各種裝置及系統一起使用:個人電腦(Personal Computer;PC)、桌上型電腦、行動電腦、膝上型電腦、筆記型電腦、平板電腦、伺服器電腦、手持式電腦、手持式裝置、個人數位助理(Personal Digital Assistant;PDA)裝置、手持式PDA裝置、機載裝置、非機載裝置(off-board device)、混合式裝置、車載裝置、非車載裝置、行動或攜帶型裝置、消費型裝置、非行動或非攜帶型裝置、無線通信台、無線通信裝置、無線存取點(wireless Access Point;AP)、有線或無線路由器、有線或無線數據機、視訊裝置、音訊裝置、音訊視訊(audio-video;A/V)裝置、有線或無線網路、無線區域網路、無線視訊區域網路(Wireless Video Area Network;WVAN)、區域網路(LAN)、無線LAN(WLAN)、個人區域網路(Personal Area Network;PAN)、無線PAN(Wireless PAN;WPAN)以及類似物。
一些實施例可結合如下裝置一起使用:單向及/或雙向無線電通信系統、蜂巢式無線電電話通信系統、行動電話、蜂巢式電話、無線電話、個人通信系統(Personal Communication System;PCS)裝置、併入無線通信裝置中的PDA裝置、行動或攜帶型全球定位系統(Global Positioning System;GPS)裝置、併有GPS接收器或收發器或晶片的裝置、併有RFID元件或晶片的裝置、多輸入多輸出(Multiple Input Multiple Output;MIMO)收發器或裝置、單輸入多輸出(Single Input Multiple Output;SIMO)收發器或裝置、多輸入單輸出(Multiple Input Single Output;MISO)收發器或裝置、具有一或多個內部天線及/或外部天線的裝置、數位視訊廣播(Digital Video Broadcast;DVB)裝置或系統、多標準無線電裝置或系統、有線或無線手持式裝置(例如,智慧型電話)、無線應用協定(Wireless Application Protocol;WAP)裝置或類似裝置。
一些實施例可結合一或多種類型的無線通信信號及/或遵循一或多個無線通信協定的系統使用,協定例如,射頻(Radio Frequency;RF)、紅外(Infra Red;IR)、頻分多工(Frequency-Division Multiplexing;FDM)、正交FDM(Orthogonal FDM;OFDM)、時分多工(Time-Division Multiplexing;TDM)、時分多工存取(Time-Division Multiple Access;TDMA)、擴展TDMA(Extended TDMA;E-TDMA)、通用封包無線電服務(General Packet Radio Service;GPRS)、擴展GPRS、碼分多工存取(Code-Division Multiple Access;CDMA)、寬頻CDMA(Wideband CDMA;WCDMA)、CDMA 2000、單載波CDMA、多載波CDMA、多載波調變(Multi-Carrier Modulation;MDM)、離散多音調(Discrete Multi-Tone;DMT)、Bluetooth TM、全球定位系統(Global Positioning System;GPS)、Wi-Fi、Wi-Max、ZigBee TM、超寬頻(Ultra-Wideband;UWB)、全球行動通信系統(Global System for Mobile communication;GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)行動網路、3GPP、長期演進(Long Term Evolution;LTE)、LTE進階、GSM演進增強資料速率(Enhanced Data rates for GSM Evolution;EDGE)或類似物。可在各種其他裝置、系統及/或網路中使用其他實施例。
儘管上文已描述實例處理系統,但本文中所述的主題及功能性操作的實施例可以其他類型的數位電子電路或以電腦軟體、韌體或硬體(包含本說明書中所揭露的結構及其結構性等效物)或以其中的一或多者的組合實施。
本文中所描述的主題及操作的實施例可以數位電子電路系統或以電腦軟體、韌體或硬體(包含本說明書中所揭露的結構及其結構性等效物)或以其中的一或多者的組合實施。本文所描述的主題的實施例可實施為一或多個電腦程式,亦即電腦程式指令的一或多個組件,在用於由資訊/資料處理裝置執行的電腦儲存媒體上編碼或控制資訊/資料處理設備的操作。替代地或另外,程式指令可經編碼於人工產生的傳播信號(例如,機器產生的電信號、光學信號或電磁信號)上,其經產生以編碼資訊/資料以用於傳輸至合適的接收器設備以供由資訊/資料處理設備執行。電腦儲存媒體可為以下各者或包含於其中:電腦可讀儲存裝置、電腦可讀儲存基底、隨機或串列存取記憶體陣列或裝置或其中的一或多者的組合。此外,當電腦儲存媒體不為經傳播信號時,電腦儲存媒體可為編碼於人工產生的經傳播信號中的電腦程式指令的來源或目的地。電腦儲存媒體亦可為一或多種單獨的實體組件或媒體(例如多種、CD、磁碟或其他儲存裝置)或包含於一或多種單獨的實體組件或媒體中。
本文中所描述的操作可實施為由資訊/資料處理設備對儲存於一或多個電腦可讀儲存裝置上或自其他來源接收到的資訊/資料進行的操作。
術語「資料處理設備」涵蓋所有類型的設備、裝置以及機器以用於處理資料,包含例如可程式化處理器、電腦、系統單晶片,或前述各者中的多個或其組合。設備可包含特殊用途邏輯電路,例如場可程式化閘極陣列(field programmable gate array;FPGA)或特殊應用積體電路(application-specific integrated circuit;ASIC)。除硬體以外,設備亦可包含產生用於所述電腦程式的執行環境的程式碼,例如構成處理器韌體、協定堆迭、資料庫管理系統、作業系統、交叉平台執行時環境、虛擬機或其中的一或多者的組合的程式碼。設備及執行環境可實現各種不同計算模型基礎結構,諸如網路服務、分佈計算以及柵格計算基礎結構。
電腦程式(亦稱為程式、軟體、軟體應用程式、腳本或碼)可以任何形式的程式設計語言(包含編譯或解譯語言)寫入,且其可以任何形式(包含作為獨立程式或作為組件、次常式、對象或適合用於計算環境中的另一單元)部署。電腦程式可(但無需)對應於檔案系統中的檔案。可將程式儲存於保存其他程式或資訊/資料(例如,儲存於標示語言文件中的一或多個腳本)的檔案的一部分中、儲存於專用於所討論的程式的單一檔案中,或儲存於多個協調檔案(例如,儲存一或多個組件、子程式或部分程式碼的檔案)中。可部署電腦程式以在一個電腦上或在定位於一個位點處或跨多個位點分佈且藉由通信網路互連的多個電腦上執行。
本文中所描述的過程及邏輯流程可由一或多個可程式化處理器進行,所述可程式化處理器執行一或多個電腦程式以藉由在輸入資訊/資料上操作且產生輸出來進行動作。適用於執行電腦程式的處理器包含例如通用微處理器及專用微處理器兩者,及任何種類的數位電腦的任何一或多個處理器。一般而言,處理器將自唯讀記憶體或隨機存取記憶體或兩者接收指令及資訊/資料。電腦的基本元件為用於根據指令進行動作的處理器及用於儲存指令及資料的一或多個記憶體裝置。一般而言,電腦亦將包含用於儲存資料的一或多個大容量儲存裝置,例如磁碟、磁光碟或光碟,或可操作地耦合至所述一或多個大容量儲存裝置以自其接收資訊/資料,或將資訊/資料轉移至所述一或多個大容量儲存裝置,或二者皆有。然而,電腦無需具有此類裝置。適用於儲存電腦程式指令及資訊/資料的裝置包含所有形式的非揮發性記憶體、媒體及記憶體裝置,包含例如半導體記憶體裝置,例如EPROM、EEPROM以及快閃記憶體裝置;磁碟,例如內部硬碟及可移式磁碟;磁光碟;以及CD-ROM磁碟及DVD-ROM磁碟。處理器及記憶體可由專用邏輯電路補充或併入於專用邏輯電路中。
為了提供與使用者的交互,本文中所描述的主題的實施例可實施於具有用於向使用者顯示資訊/資料的顯示裝置(例如,陰極射線管(cathode ray tube;CRT)或液晶顯示器(liquid crystal display;LCD)監視器)以及使用者可藉以將輸入提供至電腦的鍵盤及指標裝置(例如,滑鼠或軌跡球)的電腦上。其他種類的裝置亦可用以提供與使用者的交互;例如,提供給使用者的回饋可為任何形式的感官回饋(例如,視覺回饋、聽覺回饋或觸覺回饋);且來自使用者的輸入可以任何形式接收到,包含聲學、語音或觸覺輸入。此外,電腦可藉由下述操作而與使用者交互:將文件發送至由使用者使用的裝置且自所述裝置接收文件;例如,藉由回應於自網頁瀏覽器接收到的請求而將網頁發送至使用者的客戶端裝置上的網頁瀏覽器。
本文中所描述的主題的實施例可以計算系統實施,所述計算系統包含後端組件,例如作為資訊/資料伺服器;或包含中間軟體組件,例如應用程式伺服器;或包含前端組件,例如具有使用者可經由其與本文中所描述的主題的實施例交互的圖形使用者介面或網路瀏覽器的客戶端電腦;或一或多個此類後端組件、中間軟體組件或前端組件的任何組合。系統的組件可由任何形式或媒體的數位資訊/資料通信(例如,通信網路)互連。通信網路的實例包含區域網路(「LAN」)及廣域網路(「WAN」)、網間網路(例如,網際網路)以及點對點網路(例如,特用點對點網路)。
計算系統可包含用戶端及伺服器。用戶端與伺服器通常彼此遠離且典型地經由通信網路交互。用戶端與伺服器之關係藉助於在各別電腦上運作且彼此具有用戶端-伺服器關係之電腦程式產生。在一些實施例中,伺服器將資訊/資料(例如HTML頁)傳輸至客戶端裝置(例如,出於向與用戶端裝置互動的使用者顯示資訊/資料且自與用戶端裝置互動的使用者接收使用者輸入的目的)。可自伺服器處的用戶端裝置接收用戶端裝置處產生的資訊/資料(例如,使用者互動的結果)。
儘管本說明書含有諸多特定實施例細節,但這些細節不應視為任何實施例或可能主張的範疇的限制,而應認作特定針對於特定實施例的特徵的描述。在單獨實施例的上下文中描述於本文中的某些特徵亦可在單一實施例中組合地實施。相反地,在單個實施例的上下文中所描述的各種特徵亦可分別在多個實施例中實施或以任何適合子組合來實施。此外,儘管上文可將特徵描述為以某些組合起作用且最初甚至按此來主張,但來自所主張組合的一或多個特徵在一些情況下可自所述組合刪除,且所主張組合可以是針對子組合或子組合的變體。
類似地,雖然在圖式中以特定次序來描繪操作,但不應將此理解為需要以所展示之特定次序或以順序次序進行此等操作,或進行所有所說明操作以達成合乎需要之結果。在某些情形中,多任務及並行處理可為有利的。此外,不應將上文所描述的實施例中的各種系統組件的分離理解為在所有實施例中要求此分離,且應理解,所描述的程式組件及系統可通常一同整合於單一軟體產品或封裝至多個軟體產品中。
因此,已描述標的物的特定實施例。其他實施例在以下申請專利範圍的範疇內。在一些情況下,申請專利範圍中敍述的動作可以不同次序進行且仍達成合乎需要的結果。此外,隨附圖式中所描繪的過程未必需要所繪示的特定次序或依序次序來達成合乎需要的結果。在某些實施例中,多任務及並行處理可為有利的。
得益於前述描述及相關聯圖式中呈現的教示,此等實施例所屬技術領域中具有通常知識者將瞭解本文中所闡述的本揭露內容的許多修改及其他實施例。因此,應理解,實施例不限於所揭露的特定實施例,且修改及其他實施例意欲包含於隨附申請專利範圍的範圍內。儘管本文中採用特定術語,但其僅以通用及描述意義且不出於限制的目的使用。
100、200、300、304、500、600、700、900:圖 102:主機 104:儲存裝置 106:應用程式 108:系統記憶體 110:驅動器 112:裝置管理器 114:快閃 116:裝置記憶體 118:卸載功能 202、204、206、208:記憶體分配 302、306:符記密鑰 308:所分配記憶體 400:資料結構 402:計算儲存能力欄位 404:裝置記憶體資料粒度欄位 502:讀取計算記憶體 504:寫入計算記憶體 602、604、606:子圖 702:SGL識別符 704:保留 706:長度 708:偏移 800:表 802:NVMe讀取及寫入命令 902:SQE 904:資料SGL 906:用於計算的裝置記憶體 908:預定偏移 910:長度 912:SGL識別符 914:記憶體 1000、1100:操作流程 1002、1004、1102、1104、1106、1108:方塊 1200:管理計算實體 1204、1404:傳輸器 1205:網路 1210、1410:使用者裝置 1300:示意圖 1305、1408:處理元件 1310、1422、1424:記憶體 1315:揮發性記憶體 1320:通信介面 1406:接收器 1412:天線 1416:顯示器 1418:小鍵盤 1420:網路介面
將在鑒於以下圖來閱讀本申請案時更佳地理解本發明技術的上文所提及的態樣及其他態樣,在該等圖中,相同數字指示類似或相同元件。此外,本文中所提供的圖式僅出於示出某些實施例的目的;可能未明確示出的其他實施例亦不排除在本揭露內容的範疇之外。
將參考本說明書、申請專利範圍以及隨附圖式來瞭解及理解本揭露內容的此等及其他特徵及優勢,其中: 圖1是根據本揭露的實例實施例的用於使得資料處理功能能夠卸載至儲存裝置的例示性架構的圖示。 圖2是根據本揭露的實例實施例的在裝置記憶體空間中具有各別偏移的記憶體分配的例示性示意圖的圖示。 圖3是根據本揭露的實例實施例的描述裝置管理的裝置記憶體的態樣的例示性示意圖的圖示。 圖4是根據本揭露的實例實施例的可通告其記憶體管理及使用能力的例示性資料結構裝置的圖示。 圖5是根據本揭露的實例實施例的用於將裝置記憶體位址用於直接記憶體存取(direct memory access;DMA)的例示性命令的圖示。 圖6是根據本揭露的實例實施例的含有具有對應欄位的分散聚合列表(SGL)的例示性非揮發性記憶體快速(NVMe)命令的圖示。 圖7是根據本揭露的實例實施例的用以保持記憶體使用類似於本地及遠端附接的計算儲存裝置的例示性類型的SGL機制的圖示。 圖8是根據本揭露的實例實施例的包含資料緩衝器與I/O命令的交互作用的例示性表的圖示。 圖9是根據本揭露的實例實施例的用於資料傳送的例示性SGL描述符的圖示。 圖10是根據本揭露的實例實施例的示出與所揭露的系統相關聯的實例操作的例示性操作流程的圖示。 圖11是根據本揭露的實例實施例的示出與所揭露的系統相關聯的實例操作的另一例示性操作流程的圖示。 圖12展示可用於實踐本揭露的實施例的系統的實例示意圖。 圖13展示根據本揭露的實例實施例的管理計算實體的實例示意圖。 圖14展示根據本揭露的實例實施例的使用者裝置的實例示意圖。
雖然本發明技術易受各種修改及替代形式影響,但在圖式中藉助於實例展示其特定實施例,且將在本文中對其進行描述。圖式可能未按比例繪製。然而,應理解,圖式及對其的詳細描述並不意欲將本發明技術限制於所揭露的特定形式,但相反,意欲涵蓋在如由所附申請專利範圍所界定的本發明技術的精神及範疇內的所有修改、等效物以及替代例。
1000:操作流程
1002、1004:方塊

Claims (15)

  1. 一種管理記憶體的方法,所述方法包括: 經由介面在主機裝置與儲存裝置之間建立連接;以及 藉由由所述主機裝置執行的應用對第二記憶體進行資料操作而經由所述介面在與所述主機裝置相關聯的第一記憶體及與所述儲存裝置相關聯的所述第二記憶體之間傳送資料, 其中所述儲存裝置包含藉由對所述資料操作進行至少一個卸載功能來加速所述資料操作的處理元件。
  2. 如請求項1所述的方法,其中所述介面包括應用程式設計介面(API),且所述主機裝置使用與所述API相關聯的至少一個命令來分配所述第二記憶體。
  3. 如請求項2所述的方法,其中所述主機裝置使用細粒度分配方案或粗粒度分配方案來分配所述第二記憶體。
  4. 如請求項1所述的方法,其中所述方法更包括定址所述第二記憶體,且所述傳送資料至少部分地基於所述第二記憶體的所述定址。
  5. 如請求項1所述的方法,其中所述第二記憶體包括安全位址空間,且其中所述方法更包括主機裝置基於所述安全位址空間進行一或多個多租戶操作。
  6. 如請求項1所述的方法,其中所述儲存裝置包括啟用非揮發性記憶體快速(NVMe)的儲存裝置,且使用分散聚合列表(SGL)來進行所述資料操作。
  7. 如請求項1所述的方法,其中所述進行所述資料操作更包括所述儲存裝置將資料自與所述儲存裝置相關聯的持續記憶體傳送至所述第二記憶體。
  8. 如請求項1所述的方法,其中所述傳送資料更包括所述主機裝置將關於主機裝置佈局的資訊提供至所述儲存裝置。
  9. 如請求項1所述的方法,其中所述傳送資料更包括所述儲存裝置將關於所述儲存裝置的用於讀取及寫入操作的記憶體佈局的資訊提供至所述主機裝置。
  10. 如請求項1所述的方法,其中所述建立所述連接包括發現及設定過程。
  11. 一種非暫時性電腦可讀媒體,儲存用於管理記憶體的電腦可執行指令,所述電腦可執行指令在由處理器執行時使得所述處理器進行包括以下的操作: 經由介面在主機裝置與儲存裝置之間建立連接;以及 藉由由所述主機裝置執行的應用對第二記憶體進行資料操作而經由所述介面在與所述主機裝置相關聯的第一記憶體及與所述儲存裝置相關聯的所述第二記憶體之間傳送資料, 其中所述儲存裝置包含藉由對所述資料操作進行至少一個卸載功能來加速所述資料操作的處理元件。
  12. 如請求項11所述的非暫時性電腦可讀媒體,其中所述介面包括應用程式設計介面(API),且所述主機裝置使用與所述API相關聯的至少一個命令來分配所述第二記憶體。
  13. 如請求項11所述的非暫時性電腦可讀媒體,其中所述電腦可執行指令進一步使得所述處理器進行包括定址所述第二記憶體的操作,且所述傳送資料至少部分地基於所述第二記憶體的所述定址。
  14. 如請求項11所述的非暫時性電腦可讀媒體,其中所述第二記憶體包括安全位址空間,且其中所述主機裝置基於所述安全位址空間進行一或多個多租戶操作。
  15. 如請求項11所述的非暫時性電腦可讀媒體,其中所述儲存裝置包括啟用非揮發性記憶體快速(NVMe)的儲存裝置,且使用分散聚合列表(SGL)來進行所述資料操作。
TW111101939A 2021-01-27 2022-01-18 管理記憶體的方法及非暫時性電腦可讀媒體 TW202230140A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202163142485P 2021-01-27 2021-01-27
US63/142,485 2021-01-27
US202163241525P 2021-09-07 2021-09-07
US63/241,525 2021-09-07
US17/495,810 US20220236902A1 (en) 2021-01-27 2021-10-06 Systems and methods for data transfer for computational storage devices
US17/495,810 2021-10-06

Publications (1)

Publication Number Publication Date
TW202230140A true TW202230140A (zh) 2022-08-01

Family

ID=78770547

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111101939A TW202230140A (zh) 2021-01-27 2022-01-18 管理記憶體的方法及非暫時性電腦可讀媒體

Country Status (5)

Country Link
EP (1) EP4036725A1 (zh)
KR (1) KR20220108710A (zh)
CN (1) CN114816235A (zh)
AU (1) AU2022200319A1 (zh)
TW (1) TW202230140A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4372541A1 (en) * 2022-11-16 2024-05-22 Samsung Electronics Co., Ltd. System and method for polymorphic computing architecture for computational storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976255B1 (en) * 2000-03-28 2005-12-13 International Business Machines Corporation Storage isolation employing secured subspace facility
US11188251B2 (en) * 2017-12-19 2021-11-30 Western Digital Technologies, Inc. Partitioned non-volatile memory express protocol for controller memory buffer
US11112972B2 (en) * 2018-12-05 2021-09-07 Samsung Electronics Co., Ltd. System and method for accelerated data processing in SSDs
KR20200072639A (ko) * 2018-12-12 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
AU2022200319A9 (en) 2022-10-27
AU2022200319A1 (en) 2022-08-11
CN114816235A (zh) 2022-07-29
KR20220108710A (ko) 2022-08-03
EP4036725A1 (en) 2022-08-03

Similar Documents

Publication Publication Date Title
US10387182B2 (en) Direct memory access (DMA) based synchronized access to remote device
CN113287286B (zh) 通过rdma进行分布式存储节点中的输入/输出处理
KR20210147976A (ko) 확장 가능하고 일관성 있는 메모리 장치를 위한 시스템 및 방법
WO2021036370A1 (zh) 预读取文件页的方法、装置和终端设备
US20220236902A1 (en) Systems and methods for data transfer for computational storage devices
KR20190098146A (ko) 바이트 어드레스 지정 가능한 메모리로서 비-휘발성 메모리에 액세스하는 방법 및 장치
TW202230140A (zh) 管理記憶體的方法及非暫時性電腦可讀媒體
EP4130971A1 (en) Systems, methods, and apparatus for the management of device local memory
EP4086747A1 (en) Systems, methods, and apparatus for computational storage functions
EP4324181A1 (en) Network interface card for caching file-system internal structures
US20240176750A1 (en) Systems, methods, and apparatus for memory protection for computational storage devices
US11835992B2 (en) Hybrid memory system interface
KR20240081422A (ko) 연산 스토리지 장치의 메모리 보호를 위한 시스템, 방법 및 장치
EP4350500A1 (en) Systems, methods, and apparatus for transferring programs for computational storage devices
EP4155895A1 (en) Systems and methods for near-storage processing in solid state drives
CN118114317A (zh) 电子系统以及用于管理存储器的方法和装置
EP4170495A1 (en) Resource isolation in computational storage devices
TW202338595A (zh) 用於記憶體管理的方法、設備以及非暫時性電腦可讀取媒體