《SNIA-SDC23-Malone-Martin-NVMe-Computational-Storage-Standards.pdf》由会员分享,可在线阅读,更多相关《SNIA-SDC23-Malone-Martin-NVMe-Computational-Storage-Standards.pdf(16页珍藏版)》请在三个皮匠报告上搜索。
1、1|2023 SNIA.All Rights Reserved.Virtual ConferenceSeptember 28-29,2021NVM Express Computational StoragePresented by Kim Malone and Bill Martin2|2023 SNIA.All Rights Reserved.Speakers Bill Martin Kim Malone3|2023 SNIA.All Rights Reserved.AgendaMajor architectural componentsMemory NamespacesCopyComput
2、e NamespacesComputational programsProgram Unique Identifier(PUID)Memory Range SetsReachabilityReachability Association exampleExample flow4|2023 SNIA.All Rights Reserved.Major Architectural ComponentsThe NVM Express(NVMe)computational storage architecture involves several types of namespaces:Compute
3、 namespaces(new)Memory namespaces(new)NVM namespaces NVM,Zoned and Key Value namespacesThis presentation discusses NVMe technology work in progress,which is subject to change without notice.5|2023 SNIA.All Rights Reserved.Memory NamespacesA memory namespace:Provides host command access to memory in
4、the NVM subsystemIs associated with the Subsystem Local Memory I/O command setIs used by the Computational Programs command set to provide access to SLM for program executionThis presentation discusses NVMe technology work in progress,which is subject to change without notice.TP4131:Subsystem Local
5、Memory(SLM)New Subsystem Local Memory I/O command set for memory namespacesNew commands include:Memory read and memory writeCommands for transferring data between host memoryand a memory namespaceMemory copyCommand for copying data from NVM and memory namespaces to a memory namespaceHost accesses ar
6、e dword addressable&dword granularCompute Namespace accesses are byte addressable&byte granular6|2023 SNIA.All Rights Reserved.CopyMemory Copy command:Defined in SLM command setCopies from NVM namespaces or from memory namespaces to a memory namespaceCopies from NVM namespaces to memory namespaceTot
7、al length has to be on granularity of LBA sizeDoes conversions from blocks to bytesFrom memory namespaces to memory namespaceTotal length has to be dword granularNVM Copy command:Defined in the NVM command setCopies from memory namespaces or NVM namespaces to an NVM namespaceFrom memory namespaces t
8、o NVM namespaceDoes conversion from bytes to blocksTotal length has to be on granularity of LBA sizeThis presentation discusses NVMe technology work in progress,which is subject to change without notice.7|2023 SNIA.All Rights Reserved.Compute NamespacesA compute namespace:Is able to execute one or m
9、ore programsIs associated with the Computational Programs I/O command setContains compute resourcesThis presentation discusses NVMe technology work in progress,which is subject to change without notice.TP4091:Computational ProgramsNew Computational Programs I/O command set for compute namespacesNew
10、commands include:Load programActivate programCreate/Delete Memory Range SetExecute programProvides log pages for program discovery8|2023 SNIA.All Rights Reserved.Computational ProgramsConceptually similar to software functionsCalled with parameters and run to completionAre addressed via a compute na
11、mespace program indexMay be identified by a globally unique program identifierOperate only on data in Subsystem Local MemoryA program may only be able to execute on certain compute namespace(s)May be device-defined or downloadedDevice-defined programsPrograms provided at time of manufacture e.g.,com
12、pression,encryptionDownloaded programsPrograms that are loaded to a Computational Programs namespace by the hostMay be implemented in a number of ways.For example,A program may be implemented in an ASIC or an FPGAA program may be executed on a CPU coreThis presentation discusses NVMe technology work
13、 in progress,which is subject to change without notice.Programs0132downloaded programdevice-defined program9|2023 SNIA.All Rights Reserved.Program Unique Identifier(PUID)A Program Unique ID:Is an identifier associated with specific program functionalityIs composed of an IEEE assigned value and a Uni
14、que Program Identifier(UPI)The UPI is unique to and assigned by the organization identified by the IEEE standard valueFor programs that are NVMe technology definedThe IEEE standard value is set to DA-E6-D7-00-0,which contains the CID assigned to NVMe by IEEEThe association of a PUID to functionality
15、 will be defined in an NVM Express maintained registryFor programs that are vendor definedThe IEEE standard value is set using the vendors IEEE assigned value(OUI-24,CID-24,or OUI-36)The IEEE standard value is created using one of the following:OUI 24 bit IEEE assigned Organizationally Unique Identi
16、fierCID 24 bit IEEE assigned Company IDOUI-36 36 bit IEEE assigned Organizationally Unique Identifier8 byte PUIDIEEE standardUPI-This presentation discusses NVMe technology work in progress,which is subject to change without notice.10|2023 SNIA.All Rights Reserved.Memory Range Set(MRS)A Memory Range
17、 Set:Is used for the purpose of limiting program access to a specific subset of SLM.This presentation discusses NVMe technology work in progress,which is subject to change without notice.Each execution of a program is restricted from accessing any SLM other than what is specified by the Memory Range
18、 Set in the Execute Program command Describes one or more ranges of Subsystem Local Memory(SLM).Each range is specified by a memory Namespace ID,an offset,and a length.A range must only specify a memory namespace that is reachable by the compute namespace Is created and exists in a specific compute
19、namespace.11|2023 SNIA.All Rights Reserved.ReachabilityReachability is a new feature in the NVM Express Base SpecificationThis presentation discusses NVMe technology work in progress,which is subject to change without notice.TP4156:ReachabilityDefines descriptors that specify what namespaces are abl
20、e to be used together in a command.For example:Which namespaces may be specified in a copy commandWhich memory namespace may be specified in a command to a Compute NamespaceMechanismDefines a Reachability Groups(RG)log pageDefines a Reachability Association(RA)log pageThis log page defines character
21、istics,if any,of each Reachability AssociationRG-5Comp NS 20(FPGA 1)RG-2Mem NS 10RG-3Mem NS 11RG-4Comp NS 22(CPU 1)Comp NS 23(CPU 2)RG-1NVM NS 30NVM NS 31RA-CRA-ARA-DRA-BRA-E12|2023 SNIA.All Rights Reserved.Reachability Associations(RA)ExampleMemory NS 10 and NS 11 CANNOT be used in a copy command t
22、o each otherCompute NS 22 and NS 23 CANNOT communicate with each otherRA MeaningACopy is possible between NS 30 or NS 31 and NS 10BCopy is possible between NS 30 or NS 31 and NS 11CCompute NS 20 may use memory in NS 10DCompute NS 22 and NS 23 may use memory in NS 11ECopy is possible between NS 30 an
23、d NS 31RG-5Comp NS 20(FPGA 1)RG-2Mem NS 10RG-3Mem NS 11RG-4Comp NS 22(CPU 1)Comp NS 23(CPU 2)RG-1NVM NS 30NVM NS 31RA-CRA-ARA-DRA-BRA-EThis presentation discusses NVMe technology work in progress,which is subject to change without notice.13|2023 SNIA.All Rights Reserved.Flow:Execute Program Filter E
24、ncrypted DataPrecondition:Memory Range Sets MRS1 and MRS2 have been createdFlow stepsCopy encrypted data into SLMExecute Program 1 on compute NS 1 using MRS1Execute Program 0 on compute NS 1 using MRS2Read filtered data from SLM to hostDCBAThis presentation discusses NVMe technology work in progress
25、,which is subject to change without notice.14|2021 Storage Developer Conference.Insert Company Name Here.All Rights Reserved.Questions?Questions?15|2023 SNIA.All Rights Reserved.Please take a moment to rate this session.Your feedback is important to us.16|2023 SNIA.All Rights Reserved.Architected for Performance