NVME协议第四章数据结构逻辑图
2023-05-15 15:30:54 0 举报
本文将会解释NVM Express(NVMe)技术所使用的各种数据结构。这些数据结构是NVMe协议的重要组成部分,用于各种操作,如提交命令、传输数据、管理队列等等。理解这些数据结构对于任何使用NVMe设备的人来说都是至关重要的,包括硬件设计师、固件开发人员和软件工程师。
作者其他创作
大纲/内容
driver
⑨写入doorbell通知取完毕
④操作数据
PRP1:31:24B
PRP231:39B
HOST
先判断是否为满:head=(tail+1)%sizehead=tail为空满的时候entry个数比SQ长度少一(尾tail为空)
PRP List
tail
测试和debug:7h
控制芯片
⑥反转P
SQE
000
配置寄存器 主要属性
②将Head SQ Entry的索引号写入
Do Not Retry (DNR)
31
More (M)
30
Command Retry Delay (CRD)
29:28
Generic Command Status:0h
SCT27:25
Command specific status:1h
Media and Data Integrity Errors Definition:2h
Path Related Status:3h
Reserved:4h to 6h
C0h to FFh: Vendor Specific status codes
SC24:17
80h to BFh: I/O Command Set Specific status codes;
SGL
head
Controller Registers
CDW0.PSDT=01b or 10b
Command Identifier (CID):31:16
PRP or SGL for Data Transfer (PSDT):15:14
Reserved:13:10
Fused Operation (FUSE):09:08
Opcode (OPC):07:00
配置寄存器
SGL1
Command Dword 0:03:00B
(NSID):07:04B
Reserved:15:08B
Metadata Pointer (MPTR):23:16B
Data Pointer (DPTR):39:24B
Admin and NVM Vendor Specific Commands
⑧获取headCQ并head++
Doorbell
PRP entry
BAR0
先判断是否为空:head=tail为空
CQ
PMB寄存器
The first PRP entry
主机软件
① 在tail添加并tail++
SQ
⑦轮询线程获取P变化
③取走head并head++
nvme ssd
PCI Express Registers
先判断是否为满:head->P!=(head++)->p为有效所有的tag都是一样的,说明CQ是空的。
支持EDTC
CMB
CAP
PMR
MPSMAX
PMSMIN
AMS
MQES
................
CC
EN(配置好了开始工作)
..............
CSTS
RDY(准备好了可以配置)
配置admin queue的size
AQA
Admin SQ 基地址寄存器
ASQ
Admin CQ基地址寄存器
ACQ
Command Specific
DW 0
Reserved
DW1
SQ Identifier:31:16b
DW2
SQ Head Pointer:15:00
Status Field:31:17b
DW3
P:16b
Command Identifier:15:00b
SGL segment
SGL segment
PRP entry
Address:07:00B
Length:11:08B
Reserved:14:12B
SGL Descriptor Sub Type:15B(03:00bit)
SGL Descriptor Type::15B(07:04bit)
CDW0.PSDT=00b
PCIE总线
长比1个page多
SQE 64Bytes-16Dword
长是1个page
CQE 16 bytes
CQE
收藏
0 条评论
下一页