Physical Region Range(PRP entry)
描述一段物理空间的其实地址和长度,最重要的字段包括:
- 起始地址(page base address)
- 偏移大小(offset)
具体如下图所示:
Metadata Region
特点:里面的数据不能被split 来传输
Metadata may be supported for a namespace as either part of the logical block (creating an extended logical block which is a larger logical block that is exposed to the application) or it may be transferred as a separate buffer of data. The metadata shall not be split between the logical block and a separate metadata buffer. For writes, the metadata shall be written atomically with its associated logical block
complete queue
每个mition queue entry完成uiy会产生一个complete queue entry。每个complete queue entry的特地如下:
- 至少16 bytes
- 每个complete queue entry的数据结构如下:
其中主要的字段包括DW0、DW1、DW2、DW3.
DW2字段
DW2字段范围的字段记录了返回的这个complete queue 来自哪个submit queue, 以及这个submit queue Header 的位置。如下:
DW3字段
DW3字段记录了这个complete queue entry 是哪个command产生的,已经这个命令执行完之后的结果状态。
其中上面Status Field的具体字段又有几个子字段:
SCT
其中上面的SCT(staus cod ) 段含义如下:
SC
而SC(status code)字段给出了命令执行完成之后status的更具体的字段, 下表列出了几个例子:
CMB 控制器内存buffer (controller memory buffer)
一些高级的NVME SSD控制器内部有自己的内存,可以把它映射到用户内存空间。和使用spdk_memory_alloc从系统内存分配的内存相比,这样能少做一次DMA拷贝。
name space list
name space list是namespace IDS的有序列表。组织如下:
controller list
同name space list 类似, controller list 是按照controller IDS升序排列的 controller ID列表。典型的结构如下:
3
原文地址:https://blog.51cto.com/xiamachao/2368239