《SNIA-SDC23-Allison-Rudelic-Flexible-Data-Placement.pdf》由會員分享,可在線閱讀,更多相關《SNIA-SDC23-Allison-Rudelic-Flexible-Data-Placement.pdf(32頁珍藏版)》請在三個皮匠報告上搜索。
1、1|2023 SNIA.All Rights Reserved.Virtual ConferenceSeptember 28-29,2021NVM Express TP4146a Flexible Data PlacementOverviewPresented byMike Allison(Samsung)and John Rudelic(Solidigm)2|2023 SNIA.All Rights Reserved.FDP Architecture3|2023 SNIA.All Rights Reserved.NVMe Storage Entities An FDP configurati
2、on consists of:One or more Reclaim Units(RUs)One or more Reclaim Groups(RGs)One or more Reclaim Unit Handles(RUHs)that reference to a Reclaim Unit in each RG An Endurance Group may supports one or more FDP configurations Write commands specify which RU to write the logical blocks by specifying:An RU
3、H An RGEndurance GroupReclaimGroup 0ReclaimGroup 1ReclaimGroup 2ReclaimGroup M-1ReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaim Unit Handle N-1Reclaim Unit Handle 1Reclaim Unit Handle 0ReclaimUnitR
4、eclaimUnitReclaimUnit4|2023 SNIA.All Rights Reserved.Namespace CreationPlacementHandleReclaim UnitHandle Identifier01102N-1 Namespace creation using the Namespace Management command Specify the Endurance Group with FDP enabled Host may provide a Placement Handle ListEndurance GroupReclaimGroup 0Recl
5、aimGroup 1ReclaimGroup 2ReclaimGroup M-1ReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaimUnitReclaim Unit Handle N-1Reclaim Unit Handle 1Reclaim Unit Handle 0ReclaimUnitReclaimUnitReclaimUnit5|2023 SNIA.All Rig
6、hts Reserved.Log PagesFDP Log PagesFDP ConfigurationsReclaim Unit Handle UsageFDP StatisticsFDP Events6|2023 SNIA.All Rights Reserved.Log Pages FDP ConfigurationsFDP Configuration DescriptorDescriptor SizeFDP AttributesVendor Specific Size(VSS)#RGs(NRG)#RU Handles(NRUH)MAX Placement IDSs(MAXPIDS)#Na
7、mespaces supportedReclaim Unit Nominal Size(RUNS)Estimated RU Time Limit(ERUTL)RUH Descriptor List(RUHD0)RUH Descriptor List(RUHD1)RUH Descriptor List(RUHDN)Vendor specificFDP AttributesFDP Config ValidFDP Volatile Write Cache(FDPVWC)RG ID Format(RGIF)RUH DescriptorHandle type(initial or persistent)
8、Vendor specificFDP Configuration Log Page#FDP Configurations(N)VersionSizeFDP Config Descriptor 0(FDPCD0)FDP Config Descriptor 1(FDPCD1)FDP Config Descriptor N(FDPCDN)7|2023 SNIA.All Rights Reserved.Log Pages FDP Reclaim Unit Handle UsageFDP Reclaim Unit Handle Usage#Reclaim Unit Handles(NRUH)RUH Us
9、age Descriptor 0(RUHUD0)RUH Usage Descriptor 1(RUHUD1)RUH Usage Descriptor N(RUHUDN)RUH AttributesController/Host specified8|2023 SNIA.All Rights Reserved.Log Pages FDP StatisticsFDP Statistics Log PageHost Bytes with Metadata Written(HBMW)Media Bytes with Metadata Written(MBMW)Media Bytes Erased(MB
10、E)9|2023 SNIA.All Rights Reserved.Log Pages FDP EventsFDP Events Log Page#FDP Events(N)FDP Event 1FDP Event 2FDP Event NFDP Event TypeHOST EVENTSRU not fully written to capacityRU active3 time limit exceededController level reset modified RUHInvalid PIDVendor specificCONTROLLER EVENTSMedia reallocat
11、edImplicitly modified RUHVendor SpecificFDP Event Flags(FDPEF)Location Valid(LV)NSID Valid(NSIDV)Placement ID(PIV)FDP EventFDP Event TypeFDP Event Flags(FDPEF)Placement Identifier(PID)Event TimestampNamespace Identifier(NSID)Event Type SpecificReclaim Group IdentifierReclaim Unit Handle IdentifierVe
12、ndor Specific Info10|2023 SNIA.All Rights Reserved.Configuring&Monitoring11|2023 SNIA.All Rights Reserved.Configuring FDP-Pseudocode#Check NVMe Identify Controller Data Structureif(FDP Support Bit=1)#FDP Supported#Configure FDP#Read FDP Log Page for FDP configurations#Set feature enable FDP configur
13、ation#(Optional)Configure Placement handle list#(Optional)Enable FDP events#Set feature enable FDP set FDPE=1else#FDP Not supported 12|2023 SNIA.All Rights Reserved.Monitoring FDP-Pseudocode#FDP Monitoring Loop#Check FDP Events#respond to event#Check FDP RUH#respond to RUH#Check FDP Statistics#respo
14、nd to Statistics13|2023 SNIA.All Rights Reserved.FDP Writing Command Examples14|2023 SNIA.All Rights Reserved.Write to a Reclaim UnitReclaim Group 0SSD Endurance Group 1HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Host issues a Write command to Names
15、pace A specifying Placement Handle 1 and Reclaim Group 0Placement HandleReclaim UnitHandle Identifier001223Reclaim Unit 5RUH 0RUH 1RUH 2RUH 315|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to a Reclaim UnitHostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim
16、 Unit 4Controller looks up Placement Handle 1 in Namespace A and determines to place the data using Reclaim Unit Handle 2 on Reclaim Group 0Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 316|2023 SNIA.All Rights Reserved.Reclaim Group 0Write
17、to a Reclaim UnitHostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Controller looks up Placement Handle 1 in Namespace A and determines to place the data using Reclaim Unit Handle 2 on Reclaim Group 0Placement HandleReclaim UnitHandle Identifier001223SSD
18、Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 317|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to a Reclaim UnitHostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Controller uses Reclaim Unit Handle 2 to place the data in Reclaim Unit 3 of Reclai
19、m Group 0Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 318|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitHost issues a Write command to Namespace A specifying Placement Handle 2 and Reclaim Group 0H
20、ostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 319|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitHostCont
21、rollerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Controller looks up Placement Handle 2 in Namespace A and determines to place the data using Reclaim Unit Handle 3 on Reclaim Group 0Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim
22、Unit 5RUH 0RUH 1RUH 2RUH 320|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitController uses Reclaim Unit Handle 3 to place the data in Reclaim Unit 4 in Reclaim Group 0HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim U
23、nit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 321|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitController detects Reclaim Unit 4 is written to capacity and modifies Reclaim Unit Handle 3 to re
24、ference the empty Reclaim Unit 5HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 322|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the c
25、apacity of a Reclaim UnitHost issues a Write command to Namespace A specifying Placement Handle 1 and Reclaim Group 0HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RU
26、H 0RUH 1RUH 2RUH 323|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitHostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Controller looks up Placement Handle 1 in Namespace A and determines to place the data using Re
27、claim Unit Handle 2 on Reclaim Group 0Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 324|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to fill the capacity of a Reclaim UnitController uses Reclaim Unit Handle 2 to places a portion of the
28、 data in Reclaim Unit 3 in Reclaim Group 0 filling Reclaim Unit 3 to capacityHostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 325|2023 SNIA.All Right
29、s Reserved.Reclaim Group 0Write to multiple Reclaim UnitsController Reclaim Unit Handle 2 to reference the empty Reclaim Unit 2HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclai
30、m Unit 5RUH 0RUH 1RUH 2RUH 326|2023 SNIA.All Rights Reserved.Reclaim Group 0Write to multiple Reclaim UnitsController uses Reclaim Unit Handle 2 to place the remaining portion of the data in Reclaim Unit 2 in Reclaim Group 0HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim U
31、nit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 327|2023 SNIA.All Rights Reserved.Reclaim Group 0Backwards Compatible WritesHost issues a Write command to Namespace A without specifying a Placement Handle or an Reclaim Group
32、HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 328|2023 SNIA.All Rights Reserved.Reclaim Group 0Backwards Compatible WritesController looks up Plac
33、ement Handle 0 in Namespace A and determines Reclaim Unit Handle 0 is used for the write and selects Reclaim Group 0HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleReclaim UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH
34、 0RUH 1RUH 2RUH 329|2023 SNIA.All Rights Reserved.Reclaim Group 0Backwards Compatible WritesController uses Reclaim Unit Handle 0 to place the data in Reclaim Unit 0 in Reclaim Group 0HostControllerNamespace AReclaim Unit 0Reclaim Unit 1Reclaim Unit 2Reclaim Unit 3Reclaim Unit 4Placement HandleRecla
35、im UnitHandle Identifier001223SSD Endurance Group 1Reclaim Unit 5RUH 0RUH 1RUH 2RUH 330|2023 SNIA.All Rights Reserved.Comparing NVMe Data PlacementsStreamsFlexible Data Placement(FDP)Zoned Namespaces(ZNS)31|2023 SNIA.All Rights Reserved.StreamsFDPZNSNon-conforming writes are not loggedNon-conforming
36、 writes are loggedError on WriteKnown alignment only after formatCommands available to host to stay alignedAlways aligned by interface rulesWAF=1 achievable without feedbackWAF=1 achievable with feedbackWAF=1 guaranteedBackwards compatibleBackwards compatibleNot Backwards compatibleNo information th
37、at controller moved user dataPost logging that controller moved user dataNotification for Host to move user dataPlacement identifier not tied to LBAPlacement identifier not tied to LBAPlacement identifier is the LBAStream Granularity Size(SGS)Reclaim UnitsZonesSGS capacity=SGS SizeReclaim Unit capac
38、ity=Reclaim Unit sizeZone capacity 1:LBA known at Write SubmissionQD 1:LBA known at Write SubmissionQD 1:LBA known at Write CompletionZone Append commandStream written by a single namespaceReclaim Unit written by one or more namespacesZone written by a single namespaceAPI is StatelessAPI is StatelessAPI is StatefulRequires Full FTL TableRequires Full FTL TableFull FTL Table not requiredDynamic write resource allocationStatic write resource allocationDynamic write resource allocation32|2023 SNIA.All Rights Reserved.Please take a moment to rate this session.Your feedback is important to us.