NVMe 2.0的容量模型
三类容量管理实体:Endurance Group 、NVM Set、Media Unit
Endurance Group
表示一类具有相同Endurance属性的存储媒介组合,其组合由Endurance Group Configuration描述符表示;而Endurance属性可以通过Endurance Group Information log page获取,包括Available Spare,Percentage Used,Endurance Estimate,Data Units Read,Data Units Written,Media Units Written,Host Read Commands,Host Write Commands等内容;而当前支持的Endurance Group List可以通过Identify命令获取(CNS 19h)。
NVM Set
由多个Media Unit组成,表示一组存储媒介,例如由SLC NAND组成的一组DIE。SSD内部所有的NVM Set由NVM Set List数据结构表示(没有NVM Set Configuration描述符),可以通过Identify命令获取(CNS 04h),每一个NVM Set entry内容包括NVM Set Identifier,所属Endurance Group Identifier,最优写NVM容量,总共NVM容量,没有分配的NVM容量等。
Media Unit
存储媒介单元,可以为一个NAND DIE,由Media Unit Configuration 描述符和Media Unit Status 描述符表示。其中Media Unit Configuration 描述符包含于Channel Configuration描述符中,而Media Unit Status 描述符可以通过Get log page (Log Identifier 10h)获取。
下图表示这三类容量管理实体之间的关系,Endurance Group由0个或多个NVM Set组成,而NVM Set由0个或多个Media Unit组成。可以不支持NVM Set,但如果支持NVM Set,就一定支持Endurance Group。
两种容量管理模式
固定容量配置:
SSD指定容量配置实体,Host通过Capacity Management command选择一种配置,当前支持的配置list可以通过Supported Capacity Configuration List log page (Log Identifier 11h)获得。list中包括了0~m个Capacity Configuration Descriptor,每一个该描述符表示一组容量配置方案,其中每一个Capacity Configuration Descriptor可能包含0~n个Endurance Group Configuration Descriptor;而每一个Endurance Group Configuration Descriptor可能包含0~q个Channel Configuration Descriptor;而每一个Channel Configuration Descriptor可能包含0~k个Media Unit Configuration Descriptor。
其层次关系如下图所示:
可变容量配置:
由Host通过Capacity Management command动态创建容量管理实体,包括创建或删除Endurance Group和NVM Set。
Capacity Management命令
该命令用于选择一种容量配置或者指定一个容量管理实体相关操作。
命令参数Dword 10指定操作类型:
命令参数Dword 11和Dword 12指定容量大小:
参考:
1. NVM Express Base Specification 2.0b