其他分享
首页 > 其他分享> > nvme1.3 学习笔记 8 Metadata Handling

nvme1.3 学习笔记 8 Metadata Handling

作者:互联网

Controller应该支持每一个Logical Block的Metadata。Metadata是每一块Logical Block的附加数据。对于Host如何使用Metadata数据是没有要求的。一个最普遍的用法是传达E2E保护信息。

Medatada可以用两种方式向Host或者是从Host获取数据。这两种机制在Namespace格式化时被选择。

第一种机制是Metadata和关联的Logical Block是连续的,Metadata位于Logical Block的后方,形成一个扩展Logical Block。这种机制的原理如图252。在这种情况下,Logical Block和Metadata被PRP1和PRP2指针所指出。

图252:Metadata-Contigous with LBA Data,Forming Extended LBA

LBA n Data

LBA n

Metadata

LBA n+1 Data

LBA n+1

Metadata

Data Buffer(PRP1&PRP2)

第二种机制是Meadata作为一块单独的数据buffer。机制原理如图253。在这种情况下Metadata由Metadata指针单独指向,Logical Block由Data指针单独指向。当命令中的Metadata使用了PRPs时,这个Metadata被要求必须是存放在连续的物理空间。

图253:Metadata-Transferred as Separate Buffer

LBA n

Metadata

LBA n+1

Metadata

LBA n+2

Metadata

 

LBA n Data

LBA n+1 Data

LBA n+2 Data

当Namespace被格式化的时候应该去选择一种传输机制。同一个Namespace下不支持Metadata部分传输用机制1,而另一部分传输用机制2.

如果使用了E2E数据保护,每一个Logical Block的保护信息应该存储在Metadata中。

 

标签:Handling,nvme1.3,Logical,LBA,机制,Data,Block,Metadata
来源: https://blog.csdn.net/qq_25210633/article/details/90342416