TW202232316A - 計算裝置以及用於儲存裝置資源管理的系統和方法 - Google Patents
計算裝置以及用於儲存裝置資源管理的系統和方法 Download PDFInfo
- Publication number
- TW202232316A TW202232316A TW111101579A TW111101579A TW202232316A TW 202232316 A TW202232316 A TW 202232316A TW 111101579 A TW111101579 A TW 111101579A TW 111101579 A TW111101579 A TW 111101579A TW 202232316 A TW202232316 A TW 202232316A
- Authority
- TW
- Taiwan
- Prior art keywords
- tenant
- request
- resource
- cxl
- resource unit
- 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/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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/0614—Improving the reliability 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本發明提供一種方法,所述方法包含將計算裝置的資源單元的列舉發送至第一計算系統租戶且發送至第二計算系統租戶。列舉經由第一協定發送且指示與管理資源單元相關聯的管理協定。方法更包含自第一計算系統租戶接收保留資源單元的第一請求。第一請求經由管理協定接收。方法更包含自第二計算系統租戶接收保留資源單元的第二請求。第二請求經由管理協定接收。方法更包含將資源單元由第一計算系統租戶保留的指示發送至第二計算系統租戶。指示經由管理協定發送。
Description
本揭露大體上係關於用於儲存裝置資源管理的系統及方法。
[對相關申請案的交叉參考]
本申請案主張2021年2月5申請的標題為「CXL上的NVME資源管理(NVME RESOURCE MANAGEMENT ON CXL)」的美國臨時申請案第63/146,448號的優先權及權益,所述申請案的全部內容以引用的方式併入本文中。
一些儲存裝置由多個租戶共用。然而,存取儲存裝置的特定資源的多個租戶可導致不一致。舉例而言,若第一租戶將值「A」儲存於第一儲存位置中且第二租戶將值「B」儲存於第一儲存位置中,則自第一儲存位置讀取的第一租戶的結果可不特定。
此先前技術部分中所揭露的上述資訊僅用於增強對本揭露的先前技術的理解,且因此其可含有不構成先前技術的資訊。
在各種實施例中,本文中所描述包含用於儲存裝置資源管理的系統、方法以及設備。
方法包含將計算裝置的資源單元的列舉發送至第一計算系統租戶且發送至第二計算系統租戶。列舉經由第一協定發送且指示與管理資源單元相關聯的管理協定。方法更包含自第一計算系統租戶接收保留資源單元的第一請求。第一請求經由管理協定接收。方法更包含自第二計算系統租戶接收保留資源單元的第二請求。第二請求經由管理協定接收。方法更包含將資源單元由第一計算系統租戶保留的指示發送至第二計算系統租戶。指示經由管理協定發送。
計算裝置包含儲存裝置及處理單元。儲存裝置經組態以將儲存裝置的資源單元的列舉發送至第一計算系統租戶且發送至第二計算系統租戶。列舉經由第一協定發送且指示與管理資源單元相關聯的管理協定。處理單元經組態以自第一計算系統租戶接收保留資源單元的第一請求。第一請求經由管理協定接收。處理單元進一步經組態以自第二計算系統租戶接收保留資源單元的第二請求。第二請求經由管理協定接收。處理單元進一步經組態以將資源單元由第一計算系統租戶保留的指示發送至第二計算系統租戶。指示經由管理協定發送。
系統包含主機處理器,所述主機處理器包含第一租戶及第二租戶。系統更包含裝置,所述裝置包含儲存裝置及處理單元。儲存裝置經組態以將儲存裝置的資源單元的列舉發送至第一租戶且發送至第二租戶。列舉經由第一協定發送且指示與管理資源單元相關聯的管理協定。第一租戶經組態以經由管理協定將保留資源單元的第一請求發送至處理單元。第二租戶經組態以經由管理協定將保留資源單元的第二請求發送至處理單元。處理單元經組態以接收第一請求。處理單元進一步經組態以接收第二請求。處理單元進一步經組態以將資源單元由第一計算系統租戶保留的指示發送至第二租戶。指示經由管理協定發送。
在隨附圖式及以下描述中闡述本文所描述的主題的一或多個實施例的細節。主題的其他特徵、態樣以及優勢將自描述、圖式以及申請專利範圍變得顯而易見。
現將參考隨附圖式在下文中更充分地描述本揭露的各種實施例,在所述隨附圖式中,繪示一些實施例,但非所有實施例。實際上,本揭露可以許多不同形式實施,且不應解釋為受本文中所闡述的實施例限制;實情為,提供此等實施例以使得本揭露將滿足適用的法定要求。除非另外指示,否則術語「或」在本文中以替代的及結合意義兩者使用。術語「說明性」及「實例」用於不指示品質水準的實例。相同數字貫穿全文係指相同元件。諸圖中的每一者中的箭頭描繪雙向資料流及/或雙向資料流能力。術語「路徑(path)」、「通路(pathway)」以及「路線(route)」在本文中可互換地使用。
本揭露的實施例可以各種方式實施,包含實施為包括製品的電腦程式產品。電腦程式產品可包含儲存應用程式、程序、程式組件、腳本、原始碼、程式碼、目標碼、位元組碼、編譯碼、解譯碼、機器碼、可執行指令及/或類似物(在本文中亦稱為可執行指令、用於執行的指令、電腦程式產品、程式碼及/或本文中可互換地使用的類似術語)的非暫時性電腦可讀儲存媒體。此類非暫時性電腦可讀儲存媒體包含所有電腦可讀媒體(包含揮發性及非揮發性媒體)。
在一個實施例中,非揮發性電腦可讀儲存媒體可包含軟碟、軟性磁碟、硬碟、固態儲存器(solid-state storage;SSS)(例如固態驅動機(solid-state drive;SSD))、固態卡(solid state card;SSC)、固態組件(solid state component;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)、高速緩存記憶體(包含各種層級)、快閃記憶體、暫存器記憶體及/或類似物。應瞭解,在實施例經描述為使用電腦可讀儲存媒體的情況下,除上文所描述的電腦可讀儲存媒體外,可用其他類型的電腦可讀儲存媒體替代或使用其他類型的電腦可讀儲存媒體。
應瞭解,本揭露的各種實施例亦可實施為方法、設備、系統、計算裝置、計算實體及/或類似物。因此,本揭露的實施例可呈執行儲存於電腦可讀儲存媒體上的指令來進行某些步驟或操作的設備、系統、計算裝置、計算實體及/或類似物的形式。因此,本揭露的實施例亦可呈完全硬體實施例、完全電腦程式產品實施例及/或包括進行某些步驟或操作的電腦程式產品及硬體的組合的實施例的形式。
下文參考方塊圖及流程圖圖示來描述本揭露的實施例。因此,應理解,方塊圖及流程圖圖示中的每一方塊可以電腦程式產品、完全硬體實施例、硬體及電腦程式產品的組合及/或進行用於執行的電腦可讀儲存媒體上的可互換使用的指令、操作、步驟以及類似字詞(例如可執行指令、用於執行的指令、程式碼及/或類似物)的設備、系統、計算裝置、計算實體及/或類似物的形式來實施。舉例而言,可依序進行程式碼的擷取、加載以及執行,使得同時擷取、加載以及執行一個指令。在一些實例實施例中,可並行地進行擷取、加載及/或執行,使得共同擷取、加載及/或執行多個指令。因此,此類實施例可產生進行方塊圖及流程圖圖示中所指定的步驟或操作的經特定組態的機器。因此,方塊圖及流程圖圖示支援用於進行指定指令、操作或步驟的實施例的各種組合。
參看圖1A,繪示描繪用於儲存裝置資源管理的系統100的方塊圖。系統100包含計算裝置102、第一租戶105以及第二租戶106。計算裝置102包含一或多個處理器單元(未繪示)。一或多個處理器單元可包含一或多個中央處理器單元(central processor unit;CPU)、一或多個特殊應用積體電路(application specific integrated circuit;ASIC)、一或多個場可程式化閘陣列(field programmable gate array;FPGA)、一或多個其他處理器單元或其組合。計算裝置102包含儲存裝置103。儲存裝置103包含電腦可讀儲存器(未繪示),諸如快閃記憶體(例如,固態硬碟)、硬式磁碟機、一些其他類型的電腦可讀儲存器或其組合。在一些實例中,儲存裝置103對應於計算儲存裝置。此計算儲存裝置包含經組態以對儲存於儲存裝置103的電腦可讀儲存器中的資料進行操作的處理器單元(例如,中央處理器單元、場可程式化閘陣列(FPGA)、特殊應用積體電路或其組合)。雖然儲存裝置103描繪為計算裝置102內的組件,但應注意,在一些實例中,儲存裝置103為計算裝置102。在各種實施中,歸因於計算裝置102的動作可由儲存裝置103、由儲存裝置103外部的一或多個處理器單元或其組合進行。
儲存裝置103包含資源單元104。資源單元104可對應於儲存裝置103的電腦可讀儲存器的一部分、由儲存裝置103的處理器單元(在計算儲存裝置的實例中)提供的一或多個能力或其組合。資源單元104可包含名稱空間(NS)、NS的一部分、整個驅動資源、由非揮發性記憶體高速(NVMe)標準限定的資源或其組合。NS可由邏輯區塊位址(logical block address;LBA)範圍指示且可對應於計算NS、鍵值NS、分區NS或一些其他類型的NS。NS的一部分可對應於LBA範圍、一或多個計算程式槽、一或多個計算能力或其組合。計算能力的實例包含加密引擎、壓縮引擎等。NVMe定義的實例包含耐久性群組、NVM集合、媒體單元、提交佇列、域、可指派裝置介面(assignable device interface;ADI)、處理位址空間識別符(process address space identifier;PASID)、一定比例的SSD性能能力等。
雖然上文及通篇描述與NVMe SSD有關的資源單元,但在其它實例中,儲存裝置103可為進階主機控制器介面(advanced host controller interface;AHCI)SSD、NVMe硬式磁碟機(hard disk drive;HDD)等。此外,應注意在一些實施中,不同類型的裝置(例如,除儲存裝置以外)的資源可根據所揭露技術管理。舉例來說,可將儲存裝置103替換為圖形處理器單元(graphics processor unit;GPU)、網路介面控制器(network interface controller;NIC)或其他裝置。
第一租戶105可對應於經組態以存取儲存於儲存裝置103處的資料、管理儲存於儲存裝置103處的資料、將資料寫入至儲存裝置103或其組合的計算裝置、計算裝置組件、由計算裝置執行的軟體或其組合。可對應於第一租戶105的計算裝置組件的實例包含中央處理器單元(CPU)、CPU核心、圖形處理器單元(GPU)、張量處理單元(Tensor Processing Unit;TPU)、計算儲存加速器、NIC等。可對應於第一租戶105的由計算裝置執行的軟體的實例包含作業系統、超管理器、使用者應用程式、虛擬機等。類似地,第二租戶106可對應於計算裝置、計算裝置組件、由計算裝置執行的軟體或其組合。應注意,第一租戶105及第二租戶106可對應於同一計算裝置的軟體及/或硬體組件或可實施於不同計算裝置中。此外,雖然繪示兩個租戶,但系統100可包含經組態以與儲存裝置103的資料互動的不同數目個租戶。雖然示出在計算裝置102外部,但第一租戶105及第二租戶106可在計算裝置102內部。舉例而言,計算裝置102可為包含對應於及/或執行第一租戶105及第二租戶106的一或多個組件的計算裝置。
計算裝置102經組態以經由第一協定109及第二協定111與第一租戶105及第二租戶106通信。雖然未示出,但計算裝置102可包含經組態以根據第一協定109及第二協定111傳輸信號的一或多個介面。在一些實施中,計算裝置102的單個介面經組態以支援第一協定109及第二協定111兩者。舉例而言,U.2、U.3、EDSFF連接器、加載卡(Add-In-Card;AIC)或M.2連接器可支援第一協定109及第二協定111兩者。第一協定109及第二協定111可經由同一實體層或不同實體層實施。在一些實例中,第一協定109及第二協定111兩者係經由快捷外設互聯標準(peripheral component interconnect express;PCIe)實體層實施。在一些實施中,第一協定109及第二協定111為單一協定之子協定(例如,計算高速鏈路(CXL))。第二協定111可為計算裝置102分佈高速緩存線之高速緩存管理協定(例如,CXL.cache、CXL.mem等)。高速緩存線可識別哪些租戶存取儲存裝置103的哪些資源單元。
計算裝置102經組態以列舉在儲存裝置103處可用之資源單元且經由第一協定109提供對資源單元的存取。計算裝置102經進一步組態以經由第二協定111管理資源單元之保留。因為在儲存裝置(例如,在計算裝置102處)處置資源單元的保留,所以與保留資源單元的其他技術相比,保留可更快。此外,因為經由與記憶體存取操作不同的協定處置保留,所以記憶體存取操作可不藉由保留操作阻止。亦即,經由第一協定109接收的訊息(例如,記憶體存取操作)可與經由第二協定111接收的訊息(例如,保留請求)同時在計算裝置102處處理。在一些實施中,計算裝置102經組態以維持第一協定109訊息與第二協定111訊息之間的同調性。舉例而言,計算裝置102可在處理第一協定109訊息時引入延遲,使得記憶體存取請求不基於過期保留資料來處理。
在一些實例中,特定高速緩存(例如,CXL.cache)位址位置中的零可用於意謂資源單元可供要求。保留請求可出現於來自第一租戶105的第二協定111(例如,CXL.cache)上。此保留請求可使得計算裝置102將資源單元的高速緩存值與0比較。若與0的比較成功,則計算裝置102可寫入值1以發信給資源單元正由第一租戶105使用的其他租戶。若與0的比較失敗,則第一租戶105可接收用於比較及寫入的失敗狀態。此失敗操作用發信資源的失敗保留。
在另一實例中,第二租戶106可使用第一協定109(例如,CXL.io及NVMe)。第一協定109可提供標準化或供應商唯一連接機構。此第一協定109可請求NVMe儲存裝置保留相同資源單元。經由第一協定109的保留操作可包含在計算裝置102實施對相同欄位的比較及寫入以要求資源時親厚的可選延遲。在成功或不成功時,可經由NVMe介面返回資源單元的要求。在一些實例中,計算裝置102可自身作為計算資源存在於協定109、協定111中的一或多者上。
應注意,計算系統100可為分散式及/或分解式系統。舉例而言,計算裝置102可經由第一協定109及第二協定111經由網路(例如,區域網路、廣域網路等)通信。在一些實施中,計算裝置102經由網際網路連接至第一租戶105及第二租戶106。
在圖1A的實例中,計算裝置102經由第一協定109將列舉110發送至第一租戶105及第二租戶106。在一些實例中,列舉110對應於標準化列舉,諸如PCIe或CXL列舉。列舉110識別資源單元104。舉例而言,列舉110可指示NS識別符、LBA範圍、引擎識別符、槽識別符、一些其他識別符或其組合。另外,列舉110可將第二協定111識別為經指派以處置資源單元104的保留的協定。應注意,儲存裝置103可包含除資源單元104之外的其他資源單元。列舉110亦可識別此等其他資源單元。替代地,其他資源單元可藉由計算裝置102經由第一協定109發送的其他列舉來識別。
在一些實施中,資源單元104係基於來自第一租戶105或第二租戶106中的一者的請求而產生。舉例而言,圖1B說明第一租戶105經由第一協定109將分組請求130發送至計算裝置102。舉例而言,分組請求可指示儲存裝置103的將分組至資源單元104中的一或多個資源。此等資源可包含一或多個NS、一或多個NS部分、一或多個驅動資源、由NVMe標準定義的一或多個資源或其組合。分組請求可包含此等資源的識別符,諸如一或多個NS識別符、一或多個LBA範圍、一或多個計算程式槽識別符、一或多個計算能力識別符、一或多個耐久性群組識別符、一或多個NVM設定識別符、一或多個媒體單元識別符、一或多個提交佇列識別符、一或多個域識別符、一或多個ADI識別符、一或多個PASID識別符、一或多個SSD性能能力比例識別符、與其他資源相關聯的一或多個識別符或其組合。基於分組請求,計算裝置102可將由分組請求130識別的資源分組至資源單元104中,且經由第一協定109將列舉110發送至第一租戶105及第二租戶106。
圖1C示出請求保留資源單元104的第一租戶105及第二租戶106。回應於接收列舉110,第一租戶105經由第二協定111將針對資源單元104的第一請求112發送至計算裝置102。類似地,第二租戶106經由第二協定111將第二請求114發送至計算裝置102。計算裝置102經組態以基於第一請求112及第二請求114而保留資源單元104至第一租戶105及第二租戶106中的一者。在一些實施中,計算裝置102可基於所接收到的請求的序列(例如,先到先服務)選擇租戶,然而,其他仲裁技術為可能的。在一些實施中,第一請求112(及/或第二請求114)可進一步限定所請求的存取的類型(例如唯讀或讀取及寫入等)。另外,第一請求112(及/或第二請求114)可指示所請求之保留是否互斥或共用。對於共用存取,第一請求112(及/或第二請求114)可指示一或多個其他租戶(例如,藉由識別符)及一或多個相關聯存取類型(例如,唯讀或讀取及寫入等)。在一些實施中,計算裝置102經組態以判定所請求保留是否與與資源單元104相關聯的安全性及/或使用策略一致。舉例而言,對資源單元104的存取(或特定存取類型)可受限於一或多個特定租戶。在一些實施中,列舉110包含指示哪一或哪些存取類型可用於資源單元104的資訊。在一些實例中,儲存裝置103選擇性地將列舉110發送至可存取與安全性及/或使用策略一致的資源單元104的租戶。在一些實例中,安全性及/或使用策略定義於分組請求130中。
在所示出的實例中,計算裝置102可保留資源單元104至第一租戶105。在判定保留資源單元104至第一租戶105之後,計算裝置102可藉由在計算裝置102的記憶體空間中設定標記而儲存資源單元104保留至第一租戶105的指示符。記憶體空間可經由第二協定111對第一租戶105及第二租戶106可存取。此標記可對應於計算裝置內的高速緩存行。在一些實例中,高速緩存行可進一步指示保留至第一租戶105的存取的類型。此外,高速緩存行(或額外高速緩存行)可經設定以指示已授予對資源單元104的存取及存取的類型已授予的任何其他租戶。高速緩存可實施於計算裝置(例如,儲存裝置103內部或外部)的隨機存取記憶體(RAM)或其他記憶體中。計算裝置102可經由第二協定111發送保留指示符116至第二租戶106。保留指示符116指示資源單元104保留至第一租戶105。舉例而言,保留指示符116可包含上文所描述的高速緩存行。在一些實例中,回應於計算裝置102保留資源單元104至第一租戶105而發送保留指示符116。在一些實例中,保留指示符116回應於第二請求114藉由計算裝置102發送。在一些實例中,回應於經由第二協定111自第二租戶106接收到的監聽請求發送保留指示符116。在一些實例中,回應於藉由計算裝置102經由第一協定109自第二租戶106接收到的資料存取請求而發送保留指示符116。在一些實例中,回應於計時器之失效發送保留指示符116(例如,計算裝置102可週期性地經由第二協定111公佈高速緩存更新)。應注意,計算裝置102可經組態以回應於上文所描述的條件中的一個以上條件而傳輸保留指示符。此外,雖然未示出,但計算裝置102可經由第二協定111將保留指示符116傳輸至第一租戶105。在一些實施中,第一租戶105及第二租戶106可接收不同保留指示符。舉例而言,第一租戶105可接收保留成功的指示,而第二租戶106可接收保留失敗的指示。
如圖1E中所繪示,第一租戶105可經由第一協定109將針對資源單元104的資源請求120發出至計算裝置102。此資源請求120可對應於導向資源單元104的NVMe命令或其他命令。在一些實施中,已接收到資源單元104經保留至第一租戶105的指示的其他租戶(例如,第二租戶106)可避免發送針對資源單元104的此類資源請求。應注意,計算裝置102可經組態以確認接收到的資源請求與在計算裝置102處儲存的(例如,高速緩存中的)保留一致。回應於資源請求120與第一租戶105保留資源單元104一致,計算裝置102可根據資源請求120存取資源單元104,且經由第一協定109將任何結果返回至第一租戶105。
因此,計算裝置102可使用兩個協定管理對儲存裝置103附近的資源單元104的存取。近儲存器存取管理可減少由遠端存取控制導致的延遲。此外,管理對兩個協定的存取可減少由阻止存取請求的保留請求引起的延遲。
圖2A至圖2E描述用於經由CXL管理SSD的資源的系統200的實例。系統200可對應於系統100的特定實例。
CXL協定可實現記憶體擴展及同調加速器。在各種實施例中,所揭露系統可使用諸如CXL的高速緩存同調協定以提供資源單元保留的同調高速緩存。
在各種實施例中,包含管理計算裝置的所揭露系統的特徵可在於智慧型裝置架構。特定言之,所揭露系統的特徵可在於插入至高速緩存同調介面(例如,CXL/PCIe介面)上的裝置,且可實施各種高速緩存及記憶體協定(例如,基於類型2裝置的CXL.cache及CXL.mem協定)。此外,在一些實例中,裝置可包含可經組態以使用高速緩存同調協定(例如,CXL.IO協定)向租戶呈現儲存裝置的可程式化控制器或處理器(例如,RISC-V處理器)。
在一些實例中,所揭露系統可至少部分地經由ASIC電路、FPGA單元及/或類似物而程式化。
快捷外設互聯標準(PCIe)可指可具有相對較高及可變潛時的電腦介面。CXL為經由PCIe(例如,PCIe 5.0)進行通信的開放工業標準,所述PCIe可提供固定的、相對較短的封包大小,且因此可能夠提供相對較高的頻寬及相對較低的固定潛時。因此,CXL可能夠支援高速緩存同調性且CXL可較適用於與記憶體進行連接。CXL可進一步用於提供主機與伺服器中的加速器、記憶體裝置以及網路介面電路(或「網路介面控制器」或「網路介面卡」(network interface card;NIC))之間的連接性。
諸如CXL的高速緩存同調協定亦可用於例如標量、向量以及緩衝記憶體系統中的異質處理。CXL可用於利用通道、重計時器、系統的PHY層、介面的邏輯態樣以及來自PCIe(例如,PCIe 5.0)的協定來提供高速緩存同調介面。CXL異動層可包含三個多路複用子協定,所述三個多路複用子協定同時在單個鏈路上運行且可稱為CXL.io、CXL.cache以及CXL.mem。CXL.io可包含I/O語義,此可與PCIe類似。CXL.cache可包含高速緩存語義,且CXL.mem可包含記憶體語義;高速緩存語義及記憶體語義兩者可為可選的。與PCIe類似,CXL可支援:(i)可分割的x16、x8以及x4的原始寬度;(ii)32千兆傳輸/秒的資料速率,可降級為8千兆傳輸/秒及16千兆傳輸/秒,128b/130b;(iii)300瓦(在x16連接器中為75瓦);以及(iv)即插即用。為了支援即插即用,PCIe或CXL裝置鏈路均可在Gen1中的PCIe中開始訓練、協商CXL、完成Gen 1-5訓練且接著開始CXL異動。
NVMe協定可經由CXL.io子協定使用以提供對NVMe儲存裝置的存取。在一些實施中,CXL.cache及/或CXL.mem用於同調地管理資源單元保留的高速緩存,且CXL.io用於攜載NVMe協定訊息(例如,存取請求等)。
如圖2A中所繪示,系統200包含藉由CXL鏈路連接的加速器202及主機處理器218。加速器202為計算裝置且可對應於系統100的計算裝置102。加速器202包含第一CXL介面204、NVMe SSD 206以及加速器邏輯208。第一CXL介面204可包含硬體連接器(例如,U.2、M.2等)相關聯電路系統,所述相關聯電路系統及經組態以將經由CXL鏈路242接收到的訊息分離至CXL.io鏈路210、CXL.cache鏈路212以及CXL.mem鏈路214中。第一CXL介面204可進一步經組態以經由CXL鏈路242傳輸經由CXL.io鏈路210、CXL.cache鏈路212以及CXL.mem link 214接收到的訊息。
NVMe SSD 206連接至CXL.io鏈路210,且加速器邏輯208連接至CXL.cache鏈路212及CXL.mem鏈路214。儘管僅繪示一個NVMe SSD,但加速器202可包含多於一個NVMe SSD。加速器邏輯208對應於經組態以如本文中所描述操作的處理器單元,諸如FPGA或ASIC。應注意,在一些實施中,NVMe SSD 206包含加速器邏輯208。舉例而言,加速器邏輯208可由NVMe SSD 206的控制器實施。
加速器202進一步連接至加速器記憶體216。在一些實例中,加速器記憶體216在加速器202內部。舉例而言,加速器記憶體216可包含於NVMe SSD 206中。加速器記憶體216可包含RAM(例如,動態RAM(DRAM)、靜態RAM(SRAM)等)、任何其他類型的記憶體或其組合。
主機處理器218包含第二CXL介面220。第二CXL介面220可包含硬體連接器(例如,U.2、M.2等)及相關聯電路系統,所述相關聯電路系統經組態以將經由CXL鏈路242接收到的訊息分離至CXL.io鏈路238、CXL.cache鏈路234以及CXL.mem鏈路236中。第二CXL介面220可進一步經組態以經由CXL鏈路242傳輸經由CXL.io鏈路238、CXL.cache鏈路234以及CXL.mem鏈路236接收到的訊息。
主機處理器218的同調性/高速緩存邏輯222連接至CXL.cache鏈路234及CXL.mem鏈路236。主機處理器218的PCIe邏輯230連接至CXL.io鏈路238。同調性/高速緩存邏輯222可包含ASIC、FPGA或其他處理器單元,所述處理器單元經組態以管理主機處理器218的一或多個高速緩存。同調性/高速緩存邏輯222連接至第一處理器核心226及第二處理器核心228。第一處理器核心226及第二處理器核心228可為經組態以存取NVMe SSD 206的不同租戶。同調性/高速緩存邏輯222經組態以維持用於處理器核心226、228的同調高速緩存。第一處理器核心226可對應於第一租戶105,且第二處理器核心228可對應於第二租戶106。在其他實例中,由處理器核心226、處理器核心228中的一或多者執行的軟體對應於第一租戶105及第二租戶106。替代地,主機處理器218可藉由計算裝置的一或多個其他組件(例如,GPU等)提供對NVMe SSD 206的存取。
PCIe邏輯230連接至CXL.io鏈路238。PCIe邏輯230經組態以經由CXL.io鏈路238將NVMe訊息發送至NVMe SSD 206及自NVMe SSD 206接收NVMe訊息。PCIe邏輯230可對應於ASIC、FPGA或其他處理器單元。PCIe邏輯230連接至輸入/輸出(input/output;I/O)裝置232。I/O裝置232可對應於經組態以儲存I/O命令及結果的記憶體。
主機處理器218進一步連接至主機記憶體240。在一些實例中,主機記憶體240在主機處理器218內部。主機記憶體240可包含RAM(例如,動態RAM(DRAM)、靜態RAM(SRAM)等)、任何其他類型的記憶體或其組合。
由主機處理器218執行的一或多個組件或軟體可對應於存取NVMe SSD 206的一或多個租戶(例如,第一租戶105及第二租戶106)。
在操作中,NVMe SSD 206可經由CXL.io鏈路210、第一CXL介面204且經由CXL鏈路242將NVMe SSD的資源單元的列舉250發送至I/O裝置232,如圖2B中所繪示。除識別資源單元以外,列舉可指示資源單元在CXL.cache(或CXL.mem)上經管理。I/O裝置232可經由第二CXL介面220及CXL.io鏈路238接收列舉250。一或多個租戶可經由I/O裝置232接收列舉250。列舉250可對應於圖1A中所繪示的列舉110。
參看圖2C,處理器核心228(或處理器核心226)可起始存取由列舉250所指示的資源單元的請求。處理器核心228可將資源單元的識別符發送至同調性/高速緩存邏輯222。同調性/高速緩存邏輯222可藉由查找高速緩存中的資源單元(例如,儲存在主機記憶體240中)判定資源單元是否由租戶保留。
回應於判定處理器核心228已保留資源單元,處理器核心228可繼續進行存取資源單元。因此,處理器核心228可向I/O裝置232提交I/O請求,且PCIe邏輯230可起始I/O請求經由CXL.io鏈路238的傳輸。
回應於判定請求租戶已由不同租戶保留或請求租戶缺乏對所請求存取類型的權限(例如,高速緩存指示不同租戶已存取資源單元或高速緩存指示請求租戶具有存取與I/O請求不相容的資源單元的權限),處理器核心228可判定資源單元不可用。
回應於判定資源單元可用於保留(例如,主機記憶體240中的高速緩存不包含資源單元的項、用於高速緩存中的資源單元的條目項係髒的、用於高速緩存中的資源單元的項比臨限值舊等),同調性/高速緩存邏輯222可起始保留請求252經由CXL.cache鏈路234傳輸至加速器邏輯。
加速器邏輯208可經由CXL.cache鏈路212接收保留請求252。在接收保留請求252之後,加速器邏輯208可藉由查找區域高速緩存(例如,儲存在加速器記憶體216中的)資源單元來判定請求租戶是否可存取由保留請求252指示的資源單元。回應於判定高速緩存包含指示資源單元由不同租戶保留或請求租戶經授予與保留請求252不相容的存取類型的行,加速器邏輯208可經由CXL.cache鏈路212將用於資源單元的經更新高速緩存行發送至主機處理器218。然而,回應於判定區域高速緩存不包含用於資源單元的行,加速器邏輯208可將指示資源單元經保留至請求租戶的行添加至區域高速緩存。加速器邏輯208接著可經由CXL.cache鏈路212將用於資源單元的經更新高速緩存行發送至主機處理器218。圖2D示出加速器邏輯208可經由CXL.cache鏈路212將保留公告254發送至主機處理器218(例如,第二處理器核心228)。保留公告可對應於用於資源單元的經更新高速緩存行。回應於接收到保留公告254,同調性/高速緩存邏輯222可藉由將保留公告254中高速緩存行添加至高速緩存而更新儲存於主機處理器218處(例如,主機記憶體240中的)的高速緩存。
同調性/高速緩存邏輯222接著可基於高速緩存向處理器核心228發信允許或不允許所請求的I/O請求。
圖2E描繪已允許所請求I/O(例如,請求租戶已接收針對資源單元的保留)的實例。在此情況下,租戶向I/O裝置232提交I/O請求(例如,NVMe請求256)。PCIe邏輯230自I/O裝置232擷取NVMe請求256且將NVMe請求輸出至CXL.io鏈路238。第二CXL介面220經由CXL鏈路242將NVMe請求256傳輸至第一CXL介面204。第一CXL介面204接著經由CXL.io鏈路210將NVMe請求256輸出至NVMe SSD以用於處理。
因此,圖2A至圖2E描繪可經由CXL.cache(或CXL.mem)管理資源單元保留的同調高速緩存,且可基於保留經由CXL.io選擇性地傳輸對SSD的I/O請求(例如,NVMe請求)。管理加速器202處的高速緩存提供對資源單元的接近儲存器存取控制,該等資源單元可比其他存取控制解決方案快。此外,CXL.cache(或CXL.mem)可確保遠端主機處理器的高速緩存與加速器202的區域高速緩存同調。
圖3描繪CXL加速器的特定實例。CXL加速器可對應於系統100的計算裝置102或系統200的加速器202。CXL加速器302包含連接至CXL鏈路342的CXL介面304。CXL介面304可對應於第一CXL介面204,且CXL鏈路342可對應於系統200的CXL鏈路242。CXL加速器302包含儲存裝置306。儲存裝置306可對應於系統100的儲存裝置103或系統200的NVMe SSD 206。儲存裝置306包含主機介面層360、控制器362、快閃轉譯層(flash translation layer;FTL)364、非揮發性記憶體(NVM)366以及RAM 368。主機介面層(host interface layer;HIL)360可包含連接器、ASIC、FPGA或其組合。HIL 360經組態以提供訊息在控制器362與主機裝置(未繪示)之間的轉譯。HIL 360在控制器362與CXL介面304之間接收/發送CXL.io(例如,第一協定109或CXL.io鏈路210)訊息。CXL.io訊息可包含NVMe訊息。控制器362包含FPGA、CPU、ASIC、另一類型的處理器單元或其組合。控制器362經組態以控制儲存裝置306的操作。
FTL 364包含ASIC、FPGA、連接器或其組合。FTL 364經組態以提供控制器362與NVM 366之間的訊息的轉譯(例如,LBA至實體區塊位址的轉譯)。NVM 366包含快閃記憶體或某一其他類型的記憶體且經組態以儲存資料。
RAM 368可包含DRAM、SRAM、一些其他類型的RAM或其組合。RAM 368可對應於加速器記憶體216。RAM 368可經組態以儲存指示儲存裝置306的資源單元的保留的高速緩存。
CXL加速器302進一步包含加速器邏輯308(例如,FPGA、ASIC等)。加速器邏輯308經由CXL介面342接收/發送CXL.cache及CXL.mem(例如,第二協定111、CXL.高速緩存鏈路212或CXL.mem鏈路214)訊息。
CXL加速器302可列舉儲存裝置306的資源單元且經由CXL.io(例如,第一協定)接收/處理I/O請求(例如,NVMe請求),如上文所描述。加速器邏輯308可經由CXL.cache或CXL.mem接收保留請求且公佈保留公告,如上文所描述。加速器邏輯308可管理儲存於RAM 368中的資源單元保留的區域高速緩存,如上文所描述。加速器邏輯308可經由對RAM 368的直接記憶體存取(DMA)及/或藉由將命令發送至控制器362來存取區域高速緩存。
圖4描繪CXL加速器302的替代組態。在圖4中,CXL加速器402包含CXL介面404、儲存裝置406、HIL 460、控制器462、FTL 464、NVM 466以及RAM 468。此等組件對應於CXL加速器302的組件。替代在儲存裝置406外部的加速器邏輯,儲存裝置406的控制器462包含加速器邏輯408。加速器邏輯408可對應於為控制器462的組件的ASIC或FPGA,且可經組態以如上文參考加速器邏輯308、加速器邏輯208以及計算裝置102所描述的那樣操作。在此實施中,HIL 460接收CXL.io、CXL.cache以及CXL.mem,且將此等路由到控制器462。加速器邏輯408接收CXL.cache及CXL.mem且回應於CXL.cache及CXL.mem。
因此,圖4描繪替代方案,其中儲存裝置包含經組態以經由第一協定接收及回應於I/O請求的控制器及經組態以根據第二協定管理資源單元保留的邏輯兩者。其他變化係可能的。舉例而言,CXL介面404在一些實施中可為HIL 460的組件。
圖5為示出在兩個租戶之間的仲裁期間管理儲存裝置的資源的系統500中的資訊流的圖。系統500包含GPU 501、超管理器502、加速器邏輯508以及SSD 506。GPU 501及超管理器502為經組態以存取儲存於SSD 506上的資料的租戶。GPU 501可對應於第一租戶105、包含主機處理器218的計算裝置的組件或兩者。超管理器502可對應於第二租戶106、由包含主機處理器218的計算裝置執行的軟體或兩者。在所示出的實例中,超管理器藉由兩個虛擬機及若干ADI提供用於對SSD的存取的抽象層。加速器邏輯508可對應於FPGA、ASIC、另一處理單元或其組合。加速器邏輯508可對應於加速器邏輯208。SSD 506可對應於儲存裝置103及/或SSD 206。加速器邏輯508及SSD 506可為計算裝置102及/或加速器202的組件。
在操作中,GPU 501將用於對資源單元「NS M」的寫入存取的第一仲裁解析度請求510發送至加速器邏輯508,且超管理器502將用於對NS M的寫入存取的第二仲裁解析度請求512發送至加速器邏輯508。仲裁解析度請求510、仲裁解析度請求512經由CXL.cache發送。在一些實例中,由仲裁解析度請求510、仲裁解析度請求512所指示的資源單元在仲裁解析度請求510、仲裁解析度請求512的傳輸之前由SSD經由CXL.io列舉。
回應於仲裁解析度請求510、仲裁解析度請求512,加速器邏輯508判定是否向GPU 501或超管理器502授予對NS M的寫入存取。回應於判定NS M在SSD 506的高速緩存532中(例如,在加速器記憶體216、RAM 368或RAM 468中)未命中,加速器邏輯508可判定授予對GPU 501或超管理器502中的一者的存取(例如,基於先到先服務)。因此,加速器邏輯508可產生指示GPU 501及超管理器502中的選定者已授予對NS M的寫入存取的高速緩存行530。加速器邏輯508可將高速緩存行530公佈至高速緩存532。此外,加速器邏輯可經由CXL.io將高速緩存行530傳輸至GPU的高速緩存534(例如,在主機記憶體240處)及超管理器502的高速緩存536(在主機記憶體240處)。隨後,GPU 501及超管理器502中的選定者可經由CXL.io將對於NS M的寫入請求發出至SSD 506。應注意,NS M至GPU 501及超管理器502中的一者的保留可視與NS M相關聯的使用/安全性策略而定。此使用/安全性策略可藉由諸如分組請求130的分組請求設定。
因此,圖5示出經由兩個協定的資源管理的實例。因為接近儲存單元處置資源管理,所以延遲可減小。此外,因為單獨協定用於資源單元存取及保留請求,所以保留請求可不阻止資源單元存取請求。另外,因為所示出實例使用高速緩存同調協定(CXL.cache),所以可實現保留資訊的同調分佈。
圖6示出可儲存資源單元保留資訊的高速緩存600的實例。高速緩存600可對應於以下中的一或多者:由計算裝置102儲存的高速緩存、第一租戶105、第二租戶106、加速器202(例如,在加速器記憶體216中)、主機處理器218(例如,在主機記憶體240中)、CXL加速器302(例如,在RAM 368中)、CXL加速器402(例如,在RAM 468中)、SSD 506(例如,高速緩存532)、GPU 501(例如,高速緩存534)以及超管理器502(例如,高速緩存536)。
所示出的高速緩存600包含第一項606(例如,第一高速緩存行)、第二項604(例如,第二高速緩存行)以及第三項608(例如,第三高速緩存行)。不同實例可具有不同數目個項。每一項606、項604、項608包含第一欄位610、第二欄位612以及第三欄位614。不同實例可具有不同數目個欄位/項。第一項606包含具有對NS的寫入存取的租戶的識別符。第一項606的第一欄位610將NS識別為「NS-1」,第一項606的第二欄位612指示「租戶-1」可對NS-1進行存取,且第一項606的第三欄位614指示存取的類型為寫入存取。第一項606可回應於保留請求(例如,第一請求112、第二請求114、保留請求252、仲裁解析度請求510或仲裁解析度請求512)而設定。
第二項604描述高速緩存行1中的租戶是否允許其他租戶在此時讀取此NS。第二項604的第一欄位610將NS識別為「NS-1」,第二項604的第二欄位612指示「租戶-2」亦可對NS-1進行存取,且第二項604的第三欄位614指示存取的類型為讀出存取。保留請求(例如,第一請求112、第二請求114、保留請求252、仲裁解析度請求510或仲裁解析度請求512)可指示第二租戶是否可對所請求的資源單元進行存取及授予哪種次級存取類型。因此,第一項606及第二項604可回應於相同保留請求而設定。替代地,第二項604可回應於第二保留請求而設定。
第三項608包含對資源單元具有完全控制的租戶的識別符,所述資源單元包含分組在一起的CMB及計算資源單元。第三項的第一欄位610包含指示包含「NS-2」及「CMB-1」的資源單元的識別符,第三項608的第二欄位612指示「租戶-3」可對資源單元進行存取,且第三項608的第三欄位614指示存取類型為寫入。儲存裝置或加速器可回應於分組請求(例如,分組請求130或藉由主機處理器218、超管理器502或GPU 501發送的類似分組請求)而將NS-2及CMB-1分組至資源單元中。第三項608可回應於保留請求(例如,第一請求112、第二請求114、保留請求252、仲裁解析度請求510或仲裁解析度請求512)而設定。
應注意,提供高速緩存600為例示性實例。在其他實例中,高速緩存可儲存經編碼值而不是純文字值。舉例而言,0000的值可指示資源單元可用,FFFF的值可指示資源單元離線,1的值可指示資源單元當前正由租戶1使用,0000 0001的值可指示資源單元當前僅由租戶1讀取,0001 0001的值可指示資源單元當前正由租戶1讀取/寫入等。
因此,圖6描繪可在管理協定(例如,CXL.mem或CXL.cache)上管理的資源單元保留的高速緩存。管理協定可提供高速緩存與租戶處的其他高速緩存的同調性。因此,租戶可能夠快速確定儲存裝置資源單元是否可供用於存取。
參看圖7,繪示示出方法700的流程圖。方法700可藉由以下進行:諸如計算裝置102的計算裝置、加速器202、CXL加速器302、CXL加速器402、包含加速器邏輯508及SSD 506的裝置等。
方法700包含在702處自計算裝置將計算裝置的資源單元的列舉發送至第一計算系統租戶及第二計算系統租戶。列舉經由第一協定發送且指示與管理資源單元相關聯的管理協定。舉例而言,計算裝置102可經由第一協定109(例如,CXL.io)將列舉110發送至第一租戶105及第二租戶106。列舉110識別儲存裝置103處可用的資源單元104且可進一步指定資源單元在第二協定111上管理(例如,管理協定)。在一些實例中,計算裝置102產生資源單元104,且回應於諸如分組請求130的分組請求發送列舉110。作為另一實例,加速器202可將識別NVMe SSD 206處的可用資源單元的列舉250發送至處理器核心226及處理器核心228。列舉250可識別資源單元管理於哪一協定上(例如,CXL.cache或CXL.mem)。可產生資源單元,且可回應於由主機處理器218(例如,由處理器核心226或處理器核心228)發送的分組請求(例如,類似於分組請求130)而發送列舉250。作為另一實例,控制器362可起始經由HIL 360在CXL.io上向一或多個租戶傳輸儲存裝置306的資源單元的列舉。列舉可識別資源單元管理於哪一協定上(例如,CXL.cache或CXL.mem)。可產生資源單元,且可回應於分組請求(例如,類似於分組請求130)發送列舉。作為另一實例,控制器462可起始經由HIL 460在CXL.io上向一或多個租戶傳輸儲存裝置406的資源單元的列舉。列舉可識別資源單元管理於哪一協定上(例如,CXL.cache或CXL.mem)。可產生資源單元,且可回應於分組請求(例如,類似於分組請求130)發送列舉。作為另一實例,SSD 506可經由CXL.io將在SSD 506處可用的資源單元(例如,NS M)的列舉傳輸至GPU 501及超管理器502。列舉250可識別資源單元管理於哪一協定上(例如,CXL.cache或CXL.mem)。可產生資源單元,且可回應於分組請求(例如,類似於分組請求130)發送列舉。
方法700進一步包含在704處,在計算裝置處自第一計算系統租戶接收保留資源單元的第一請求。第一請求經由管理協定接收。舉例而言,計算裝置102可經由第二協定111(例如,由列舉110指定的管理協定)自第一租戶105接收第一請求112。第一請求112可請求資源單元104的保留。作為另一實例,加速器邏輯208可經由CXL.cache鏈路212(或CXL.mem鏈路214)接收保留請求252。作為另一實例,加速器邏輯308可經由CXL.cache或CXL.mem接收針對儲存裝置306的資源單元的請求。作為另一實例,加速器邏輯408可經由CXL.cache或CXL.mem接收針對儲存裝置406的資源單元的請求。作為另一實例,加速器邏輯508可經由CXL.cache(或CXL.mem)接收仲裁解析度請求510。
方法700進一步包含在706處,在計算裝置處自第二計算系統租戶接收保留資源單元的第二請求。第二請求經由管理協定接收。舉例而言,計算裝置102可經由第二協定111(例如,由列舉110指定的管理協定)自第一租戶105接收第二請求114。第一請求112可請求資源單元104的保留。作為另一實例,加速器邏輯208可經由CXL.cache鏈路212(或CXL.mem鏈路214)(例如,自第二處理器核心228)接收另一保留請求。作為另一實例,加速器邏輯308可經由CXL.cache或CXL.mem接收針對儲存裝置306的資源單元的第二請求。作為另一實例,加速器邏輯408可經由CXL.cache或CXL.mem接收針對儲存裝置406的資源單元的第二請求。作為另一實例,加速器邏輯508可經由CXL.cache(或CXL.mem)接收仲裁解析度請求512。
方法700進一步包含在708處,自計算裝置將資源單元由第一計算系統租戶保留的指示發送至第二計算系統租戶。指示經由管理協定發送。舉例而言,計算裝置102可經由第二協定111將保留指示符116發送至第二租戶106(且在一些實施中發送至第一租戶105)。保留指示符116指示第一租戶105可對資源單元104進行存取。保留指示符116可指示授予第一租戶105的存取的類型。在一些實施中,保留指示符116對應於高速緩存行(例如,高速緩存600的行)。作為另一實例,加速器邏輯208可經由CXL.cache鏈路212(或CXL.mem鏈路214)將保留宣告254發送至主機處理器218(例如,第二處理器核心228)。保留公告254可對應於高速緩存行(例如,儲存於加速器記憶體216中的諸如高速緩存600的高速緩存的行)。作為另一實例,加速器邏輯308可經由CXL.cache(或.mem)發送保留公告(例如,高速緩存行,諸如高速緩存600的行)。作為另一實例,加速器邏輯408可經由CXL.cache(或CXL.mem)發送保留公告(例如,高速緩存行,諸如高速緩存600的行)。作為另一實例,加速器邏輯508可經由CXL.io(或CXL.mem)將高速緩存行530公佈至GPU 501及超管理器502。
在一些實例中,計算裝置可基於第一請求及第二請求的到達時間(例如,先到先服務)選擇第一計算系統租戶接收對資源單元的存取。在其他實例中,計算裝置可基於第一租戶與第二租戶相比較的相對優先權來選擇第一計算系統租戶接收對資源單元的存取。為了示出,第一租戶可與高於與第二租戶的第二優先權相關聯的第一優先權相關聯。在另一實例中,計算裝置可基於與資源單元相關聯的存取策略/安全性策略來選擇第一計算系統租戶接收對資源單元的存取。舉例而言,安全性策略可授予第一租戶對資源單元的存取(或拒絕第二租戶對資源單元的存取)。
在授予第一租戶對資源單元的存取後,第一租戶可經由第一協定(例如CXL.io)將存取請求(例如,NVMe請求)發送至儲存裝置。
因此,方法700可用於經由第一協定列舉資源單元且經由第二協定分佈保留公告。因為使用不同協定,所以列舉訊息可不阻止保留訊息。此外,第二協定可為高速緩存同調協定,諸如CXL.io或CXL.mem。因此保留的知識可跨實施方法700的系統同調。
可以一個硬體、韌體以及軟體或硬體、韌體以及軟體的組合實施某些實施例。其他實施例亦可實施為儲存於電腦可讀儲存裝置上的指令,所述指令可由至少一個處理器讀取且執行以進行本文中所描述的操作。電腦可讀儲存裝置可包含用於儲存呈可由機器(例如,電腦)讀取形式的資訊的任何非暫時性記憶體機構。舉例而言,電腦可讀儲存裝置可包含唯讀記憶體(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)、紅外(IR)、頻分多工(Frequency-Division Multiplexing;FDM)、正交FDM(Orthogonal FDM;OFDM)、時分多工(Time-Division Multiplexing;TDM)、時分多工存取(Time-Division Multiple Access;TDMA)、擴展TDMA(Extended TDMA;E-TDMA)、通用封包無線服務(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、全球定位系統(GPS)、Wi-Fi、Wi-Max、ZigBee
TM、超寬頻(UWB)、全球行動通信系統(Global System for Mobile communication;GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)行動網路、3GPP、長期演進(LTE)、LTE進階、GSM演進增強資料速率(Enhanced Data rates for GSM Evolution;EDGE)或類似者。可在各種其他裝置、系統及/或網路中使用其他實施例。
儘管上文已描述實例處理系統,但本文中所描述的主題及功能性操作的實施例可以其他類型的數位電子電路或以電腦軟體、韌體或硬體(包含本說明書中所揭露的結構及其結構性等效物)或以其中的一或多者的組合實施。
本文中所述的主題及操作的實施例可以數位電子電路、或以電腦軟體、韌體或硬體(包含本說明書中所揭露的結構及其結構性等效物)或以其中的一或多者的組合實施。本文所描述的主題的實施例可實施為一或多個電腦程式,亦即電腦程式指令的一或多個組件,在用於由資訊/資料處理設備執行的電腦儲存媒體上編碼或控制資訊/資料處理設備的操作。替代地或另外,程式指令可經編碼於人工產生的傳播信號(例如,機器產生的電信號、光學信號或電磁信號)上,其經產生以編碼資訊/資料以用於傳輸至適合的接收器設備以供由資訊/資料處理設備執行。電腦儲存媒體可為以下各者或包含於其中:電腦可讀儲存裝置、電腦可讀儲存基底、隨機或串列存取記憶體陣列或裝置或其中的一或多者的組合。此外,當電腦儲存媒體不為經傳播信號時,電腦儲存媒體可為編碼於人工產生的經傳播信號中的電腦程式指令的來源或目的地。電腦儲存媒體亦可為一或多個單獨的實體組件或媒體(例如多個CD、磁碟或其他儲存裝置)或包含於一或多個單獨的實體組件或媒體中。
本文中所描述的操作可實施為由資訊/資料處理設備在儲存於一或多個電腦可讀儲存裝置上或自其他來源接收到的資訊/資料上進行的操作。
術語「資料處理設備」涵蓋所有類型的設備、裝置以及機器以用於處理資料,包含例如可程式化處理器、電腦、系統單晶片,或前述各者中的多個或其組合。設備可包含特殊用途邏輯電路系統,例如場可程式化閘陣列(FPGA)或特殊應用積體電路(ASIC)。除硬體以外,設備亦可包含產生用於所述電腦程式的執行環境的程式碼,例如構成處理器韌體、協定堆迭、資料庫管理系統、作業系統、交叉平台運行時環境、虛擬機或其中的一或多者的組合的程式碼。設備及執行環境可實現各種不同計算模型基礎結構,諸如網路服務、分佈計算以及柵格計算基礎結構。
電腦程式(亦稱為程式、軟體、軟體應用程式、指令碼或程式碼)可以任何程式化語言形式寫入,包含經編譯或解譯語言、宣告式或程序語言,且其可以任何形式部署,包含作為獨立程式或作為適合於在計算環境中使用的組件、組件、次常式、目標或其他單元。電腦程式可但無需對應於檔案系統中的檔案。可將程式儲存於保存其他程式或資訊/資料(例如,儲存於標示語言文件中的一或多個腳本)的檔案的一部分中、儲存於專用於所討論的程式的單一檔案中,或儲存於多個協調檔案(例如,儲存一或多個組件、子程式或部分程式碼的檔案)中。電腦程式可經部署以在一台電腦上或在位於一個地點或分佈在多個地點且由通信網路互連的多台電腦上執行。
本文中描述的過程及邏輯流程可由一或多個可程式化處理器進行,所述可程式化處理器執行一或多個電腦程式以藉由在輸入資訊/資料上操作且產生輸出來進行動作。適用於執行電腦程式的處理器包含例如通用微處理器及專用微處理器兩者,及任何種類的數位電腦的任何一或多個處理器。一般而言,處理器將自唯讀記憶體或隨機存取記憶體或兩者接收指令及資訊/資料。電腦的基本元件為用於根據指令進行動作的處理器及用於儲存指令及資料的一或多個記憶體裝置。一般而言,電腦亦將包含用於儲存資料的一或多個大容量儲存裝置,例如磁碟、磁光碟或光碟,或可操作地耦合至所述一或多個大容量儲存裝置以自其接收資訊/資料,或將資訊/資料轉移至所述一或多個大容量儲存裝置,或二者皆有。然而,電腦無需具有此類裝置。適合於儲存電腦程式指令及資訊/資料的裝置包含所有形式的非揮發性記憶體、媒體及記憶體裝置,包含藉助於實例:半導體記憶體裝置,例如EPROM、EEPROM以及快閃記憶體裝置;磁碟,例如內部硬碟或可移式磁碟;磁光碟;以及CD-ROM磁碟及DVD-ROM磁碟。處理器及記憶體可由專用邏輯電路系統補充或併入於專用邏輯電路系統中。
為了提供與使用者的互動,本文中所描述的主題的實施例可實施於具有用於向使用者顯示資訊/資料的顯示裝置(例如,陰極射線管(cathode ray tube;CRT)或液晶顯示器(liquid crystal display;LCD)監視器)以及使用者可藉以將輸入提供至電腦的鍵盤及指向裝置(例如,滑鼠或軌跡球)的電腦上。其他種類的裝置亦可用以提供與使用者的互動;例如,提供給使用者的回饋可為任何形式的感官回饋(例如,視覺回饋、聽覺回饋或觸覺回饋);且來自使用者的輸入可以任何形式接收到,包含聲學、語音或觸覺輸入。另外,電腦可藉由下述操作而與使用者互動:將文件發送至由使用者使用的裝置且自所述裝置接收文件;例如,藉由回應於自網頁瀏覽器接收到的請求而將網頁發送至使用者的客戶端裝置上的網頁瀏覽器。
本文中所描述的主題的實施例可以計算系統實施,所述計算系統包含後端組件,例如作為資訊/資料伺服器;或包含中間軟體組件,例如應用程式伺服器;或包含前端組件,例如具有使用者可經由其與本文中所描述的主題的實施例互動的圖形使用者介面或網頁瀏覽器的客戶端電腦;或一或多個此類後端組件、中間軟體組件或前端組件的任何組合。系統的組件可由任何形式或媒體的數位資訊/資料通信(例如,通信網路)互連。通信網路的實例包含區域網路(「LAN」)及廣域網路(「WAN」)、網間網路(例如,網際網路)以及點對點網路(例如,特用點對點網路)。
計算系統可包含客戶端及伺服器。客戶端及伺服器一般彼此遠離且典型地經由通信網路互動。客戶端與伺服器的關係藉助於在各別電腦上運行且彼此具有客戶端-伺服器關係的電腦程式產生。在一些實施例中,伺服器將資訊/資料(例如HTML頁)傳輸至客戶端裝置(例如,出於向與客戶端裝置互動的使用者顯示資訊/資料且自與客戶端裝置互動的使用者接收使用者輸入的目的)。可自伺服器處的客戶端裝置接收客戶端裝置處產生的資訊/資料(例如,使用者互動的結果)。
儘管本說明書含有許多特定實施例細節,但此等細節不應視為任何實施例或可能主張的範疇的限制,而應認作特定針對於特定實施例的特徵的描述。在單獨實施例的上下文中描述於本文中的某些特徵亦可在單一實施例中組合地實施。相反地,在單個實施例的上下文中所描述的各種特徵亦可分別在多個實施例中實施或以任何適合子組合來實施。此外,儘管上文可將特徵描述為以某些組合起作用且最初甚至按此來主張,但來自所主張組合的一或多個特徵在一些情況下可自所述組合刪除,且所主張組合可針對子組合或子組合的變體。
類似地,儘管在圖式中以特定次序來描繪操作,但不應將此理解為需要以所繪示的特定次序或以順序次序進行此等操作,或需要進行所有所示出的操作以達成合乎需要的結果。在某些情形下,多任務及並行處理可為有利的。另外,上文所描述的實施例中的各種系統組件的分離不應理解為在所有實施例中要求此類分離,且應理解,所描述程式組件及系統一般可一起整合於單個軟體產品中或封裝至多個軟體產品中。
因此,已描述主題的特定實施例。其他實施例在以下申請專利範圍的範疇內。在一些情況下,申請專利範圍中敍述的動作可以不同次序進行且仍達成合乎需要的結果。另外,附圖中所描繪的過程不一定需要所繪示的特定次序或順序次序來達成所要結果。在某些實施例中,多任務及並行處理可為有利的。
得益於前述描述及相關聯圖式中呈現的教示,此等實施例所屬技術領域中具有通常知識者將瞭解本文中所闡述的本揭露內容的許多修改及其他實施例。因此,應理解,實施例不限於所揭露的特定實施例,且修改及其他實施例意欲包含於所附申請專利範圍的範疇內。雖然本文中採用特定術語,但其僅以通用及描述意義且不出於限制的目的使用。
100、200、500:系統
102:計算裝置
103:儲存裝置
104:資源單元
105:第一租戶
106:第二租戶
109:第一協定
110、250:列舉
111:第二協定
112:第一請求
114:第二請求
116:保留指示符
120:資源請求
130:分組請求
202:加速器
204:第一CXL介面
206、506:固態驅動機
208、508:加速器邏輯
210、238:CXL.io鏈路
212、234:CXL.cache鏈路
214、236:CXL.mem鏈路
216:加速器記憶體
218:主機處理器
220:第二CXL介面
222:同調性/高速緩存邏輯
226:第一處理器核心
228:第二處理器核心
230:PCIe邏輯
232:輸入/輸出裝置
240:主機記憶體
242、442:CXL鏈路
252:保留請求
254:保留公告
256:NVMe請求
302:CXL加速器
304:CXL介面
306、406:儲存裝置
308、408:加速器邏輯
342:CXL鏈路
360、460:主機介面層
362、462:控制器
364、464:快閃轉譯層
366、466:非揮發性記憶體
368、468:RAM
402:CXL加速器
404:CXL介面
501:圖形處理器單元
502:超管理器
510:第一仲裁解析度請求
512:第二仲裁解析度請求
530:高速緩存行
532、534、536、600:高速緩存
604:第二項
606:第一項
608:第三項
610:第一欄位
612:第二欄位
614:第三欄位
700:方法
702、704、706、708:步驟
將在鑒於以下諸圖來閱讀本申請案時較佳地理解本發明技術之上文所提及之態樣及其他態樣,在諸圖中,類似標號指示相似或相同元件:
圖1A為用於管理儲存裝置的資源的系統的方塊圖。圖1A描繪資源單元的列舉。
圖1B為描繪用於管理處置分組請求的儲存裝置的資源的系統的方塊圖。
圖1C為描繪用於管理儲存裝置的資源的系統中的保留請求的方塊圖。
圖1D為描繪用於管理儲存裝置的資源的系統中的保留指示符的方塊圖。
圖1E為描繪用於管理儲存裝置的資源的系統中的資源請求的方塊圖。
圖2A描繪用於經由計算高速鏈路(compute express link;CXL)管理儲存裝置的資源的系統的圖。
圖2B描繪用於經由CXL管理儲存裝置的資源的系統中的資源單元的列舉。
圖2C描繪用於經由CXL管理儲存裝置的資源的系統中的保留請求。
圖2D描繪用於經由CXL管理儲存裝置的資源的系統中的保留公告。
圖2E描繪用於經由CXL管理儲存裝置的資源的系統中的非揮發性記憶體高速(non-volatile memory express;NVMe)請求。
圖3描繪CXL加速器的第一實例。
圖4描繪CXL加速器的第二實例。
圖5描繪用於管理儲存裝置的資源的另一實例系統。
圖6描繪可用於管理儲存裝置的資源的高速緩存的實例。
圖7為示出用於管理儲存裝置的資源的方法的流程圖。
儘管本發明技術易受各種修改及替代形式影響,但其特定實施例在圖式中藉助於實例繪示且將在本文中描述。圖式可未按比例繪製。然而,應理解,圖式及其詳細描述不意欲將本發明技術限制於所揭露的特定形式,但相反,意欲涵蓋在如由所附申請專利範圍所限定的本發明技術的精神及範疇內的所有修改、等效物以及替代例。
700:方法
702、704、706、708:步驟
Claims (20)
- 一種方法,包括: 自計算裝置將所述計算裝置的資源單元的列舉發送至第一計算系統租戶且發送至第二計算系統租戶,所述列舉經由第一協定發送且指示與管理所述資源單元相關聯的管理協定; 在所述計算裝置處,自所述第一計算系統租戶接收保留所述資源單元的第一請求,所述第一請求經由所述管理協定接收; 在所述計算裝置處,自所述第二計算系統租戶接收保留所述資源單元的第二請求,所述第二請求經由所述管理協定接收;以及 自所述計算裝置將所述資源單元由所述第一計算系統租戶保留的指示發送至所述第二計算系統租戶,所述指示經由所述管理協定發送。
- 如請求項1所述的方法,更包括回應於接收所述第一請求,在可由所述管理協定存取的所述計算裝置的記憶體空間中設定標誌,所述標誌指示所述第一計算系統租戶已保留所述資源單元。
- 如請求項2所述的方法,其中所述第一協定為CXL.io協定,且其中所述管理協定為CXL.cache協定或CXL.mem協定。
- 如請求項2所述的方法,其中所述標誌進一步指示所述第二計算系統租戶具有對所述資源單元的有限存取。
- 如請求項4所述的方法,其中所述標誌包括所述計算裝置的高速緩存中的高速緩存行,且其中發送所述資源單元由所述第一計算系統租戶保留的所述指示包含發送所述高速緩存行。
- 如請求項1所述的方法,更包括在所述計算裝置處同時處理經由所述第一協定接收到的訊息及經由所述第二協定接收到的訊息。
- 如請求項1所述的方法,更包括在所述計算裝置處接收對第一資源與第二資源分組的請求,其中所述列舉基於對所述第一資源與所述第二資源分組的所述請求而產生,且其中所述資源單元包含所述第一資源及所述第二資源。
- 一種計算裝置,包括: 儲存裝置;以及 處理單元,其中所述儲存裝置經組態以: 將所述儲存裝置的資源單元的列舉發送至第一計算系統租戶且發送至第二計算系統租戶,所述列舉經由第一協定發送且指示與管理所述資源單元相關聯的管理協定,以及 其中所述處理單元經組態以: 自所述第一計算系統租戶接收保留所述資源單元的第一請求,所述第一請求經由所述管理協定接收; 自所述第二計算系統租戶接收保留所述資源單元的第二請求,所述第二請求經由所述管理協定接收;且 將所述資源單元由所述第一計算系統租戶保留的指示發送至所述第二計算系統租戶,所述指示經由所述管理協定發送。
- 如請求項8所述的裝置,更包括記憶體,其中所述處理單元進一步經組態以回應於接收所述第一請求而在所述記憶體中設定標誌,所述標誌指示所述第一計算系統租戶已保留所述資源單元。
- 如請求項9所述的裝置,其中所述第一協定為CXL.io協定,且其中所述管理協定為CXL.cache協定或CXL.mem協定。
- 如請求項9所述的裝置,其中所述處理單元經組態以基於相對於所述第二請求到達的第二時間的所述第一請求到達的第一時間而將所述資源單元保留至所述第一計算系統租戶。
- 如請求項8所述的裝置,其中所述儲存裝置進一步經組態以接收對第一資源與第二資源分組的請求,其中所述列舉基於對所述第一資源與所述第二資源分組的所述請求而產生,且其中所述資源單元包含所述第一資源及所述第二資源。
- 如請求項8所述的裝置,其中所述處理單元包含現場可程式閘陣列、特殊應用積體電路或其組合。
- 如請求項8所述的裝置,其中所述儲存裝置包含控制器,且其中所述處理單元為所述控制器的元件。
- 一種系統,包括: 主機處理器,包含第一租戶及第二租戶;以及 裝置,包含: 儲存裝置;以及 處理單元,其中所述儲存裝置經組態以: 將所述儲存裝置的資源單元的列舉發送至所述第一租戶且發送至所述第二租戶,所述列舉經由第一協定發送且指示與管理所述資源單元相關聯的管理協定,且 其中所述第一租戶經組態以: 經由所述管理協定將保留所述資源單元的第一請求發送至所述處理單元; 其中所述第二租戶經組態以: 經由所述管理協定將保留所述資源單元的第二請求發送至所述處理單元; 其中所述處理單元經組態以: 接收所述第一請求; 接收所述第二請求;以及 將所述資源單元由所述第一租戶保留的指示發送至所述第二租戶,所述指示經由所述管理協定發送。
- 如請求項15所述的系統,其中所述第一租戶包含所述主機處理器的組件、可由所述主機處理器執行的軟體或其組合。
- 如請求項15所述的系統,其中所述第一租戶包含圖形處理器單元(GPU)。
- 如請求項15所述的系統,其中所述第一租戶包含由所述主機處理器提供的超管理器。
- 如請求項15所述的系統,其中所述儲存裝置包含計算儲存裝置。
- 如請求項15所述的系統,其中所述裝置更包含記憶體,且其中所述處理單元進一步經組態以在所述記憶體中維持資源單元保留的高速緩存,且其中所述資源單元由所述第一計算系統租戶保留的所述指示包括所述高速緩存行。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163146448P | 2021-02-05 | 2021-02-05 | |
US63/146,448 | 2021-02-05 | ||
US17/230,853 US11875046B2 (en) | 2021-02-05 | 2021-04-14 | Systems and methods for storage device resource management |
US17/230,853 | 2021-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202232316A true TW202232316A (zh) | 2022-08-16 |
Family
ID=80122113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111101579A TW202232316A (zh) | 2021-02-05 | 2022-01-14 | 計算裝置以及用於儲存裝置資源管理的系統和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11875046B2 (zh) |
EP (1) | EP4040280A1 (zh) |
KR (1) | KR20220113283A (zh) |
CN (1) | CN114880253B (zh) |
AU (1) | AU2022200121A1 (zh) |
TW (1) | TW202232316A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431530B (zh) * | 2023-02-08 | 2024-03-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
CN118363914B (zh) * | 2024-06-19 | 2024-08-30 | 山东云海国创云计算装备产业创新中心有限公司 | 数据处理方法、固态硬盘设备及主机 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244951B2 (en) * | 2012-03-08 | 2016-01-26 | International Business Machines Corporation | Managing tenant-specific data sets in a multi-tenant environment |
EP3042310A4 (en) * | 2013-09-04 | 2017-08-16 | Hewlett-Packard Enterprise Development LP | Providing recursively-generated instantiated computing resource in a multi-tenant environment |
JP5976230B2 (ja) * | 2013-10-04 | 2016-08-23 | 株式会社日立製作所 | リソース管理システムおよびリソース管理方法 |
US9813500B2 (en) * | 2015-06-12 | 2017-11-07 | Cisco Technology, Inc. | Allocating cloud storage based on storage attributes |
US11669320B2 (en) * | 2016-02-12 | 2023-06-06 | Nutanix, Inc. | Self-healing virtualized file server |
US10587651B2 (en) * | 2016-05-22 | 2020-03-10 | Guardicore Ltd. | Protection of cloud-provider system using scattered honeypots |
US10187368B2 (en) | 2016-08-03 | 2019-01-22 | Ripple Luxembourg S.A. | Resource transfer setup and verification |
CN108090004B (zh) | 2016-11-21 | 2020-03-13 | 英业达科技有限公司 | 硬件资源共用系统及连线桥接平台的操作方法 |
CN108667867B (zh) * | 2017-03-29 | 2021-05-18 | 华为技术有限公司 | 数据存储方法及装置 |
US11422731B1 (en) * | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
CN114745728A (zh) | 2017-09-30 | 2022-07-12 | 华为技术有限公司 | 网络资源部署及评估的方法、和设备 |
CN108093026B (zh) | 2017-11-17 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 多租户请求的处理方法及装置 |
CN110199512B (zh) | 2017-12-26 | 2020-12-22 | 华为技术有限公司 | 存储系统中存储设备的管理方法及装置 |
US11216404B2 (en) | 2019-08-05 | 2022-01-04 | Intel Corporation | Mechanism for device interoperability of switches in computer buses |
US11698879B2 (en) | 2019-12-06 | 2023-07-11 | Intel Corporation | Flexible on-die fabric interface |
US11934330B2 (en) * | 2020-05-08 | 2024-03-19 | Intel Corporation | Memory allocation for distributed processing devices |
US20200322287A1 (en) * | 2020-06-18 | 2020-10-08 | Intel Corporation | Switch-managed resource allocation and software execution |
US20210011864A1 (en) | 2020-09-25 | 2021-01-14 | Francesc Guim Bernat | System, apparatus and methods for dynamically providing coherent memory domains |
US11989159B2 (en) * | 2020-12-18 | 2024-05-21 | EMC IP Holding Company LLC | Hybrid snapshot of a global namespace |
-
2021
- 2021-04-14 US US17/230,853 patent/US11875046B2/en active Active
-
2022
- 2022-01-11 AU AU2022200121A patent/AU2022200121A1/en active Pending
- 2022-01-12 EP EP22151086.0A patent/EP4040280A1/en active Pending
- 2022-01-14 TW TW111101579A patent/TW202232316A/zh unknown
- 2022-01-18 CN CN202210054098.3A patent/CN114880253B/zh active Active
- 2022-02-03 KR KR1020220014335A patent/KR20220113283A/ko unknown
-
2024
- 2024-01-03 US US18/403,273 patent/US20240143203A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114880253B (zh) | 2024-09-03 |
US20240143203A1 (en) | 2024-05-02 |
US11875046B2 (en) | 2024-01-16 |
CN114880253A (zh) | 2022-08-09 |
AU2022200121A1 (en) | 2022-08-25 |
US20220253227A1 (en) | 2022-08-11 |
EP4040280A1 (en) | 2022-08-10 |
KR20220113283A (ko) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和系统 | |
JP5518946B2 (ja) | 保護領域境界を越えるオブジェクトの起動のための方法、システム、及び装置 | |
US10083131B2 (en) | Generating and/or employing a descriptor associated with a memory translation table | |
US8321876B2 (en) | System and method of dynamically loading and executing module devices using inter-core-communication channel in multicore system environment | |
US20240143203A1 (en) | Systems and methods for storage device resource management | |
EP3900308A1 (en) | Input/output processing in a distributed storage node with rdma | |
US20210326270A1 (en) | Address translation at a target network interface device | |
KR20220132416A (ko) | 연산 저장 장치의 보안 애플리케이션 | |
US9183150B2 (en) | Memory sharing by processors | |
US9910808B2 (en) | Reflective memory bridge for external computing nodes | |
US10382575B2 (en) | Program execution system, method of executing program, and computer-readable storage medium | |
AU2022200319A9 (en) | Systems and methods for data transfer for computational storage devices | |
US11755251B2 (en) | Virtual computational storage devices | |
US11941266B2 (en) | Resource isolation in computational storage devices | |
WO2023065853A1 (zh) | 数据传输方法、装置、设备、存储介质及程序 | |
KR102600204B1 (ko) | Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 | |
US10762011B2 (en) | Reflective memory bridge for external computing nodes | |
WO2024000510A1 (zh) | 一种处理请求的方法、装置及系统 | |
US20230100051A1 (en) | Methods and apparatus to service workloads locally at a computing device |