深入理解SPDK之四:nvme 协议重点解读

熟悉nvme 协议是深入理解spdk 代码的基础。

重要寄存器

下面寄存器都是位于pcie memory space, bar[0/1] 空间。

Offset 24h: AQA – Admin Queue Attributes

The Admin Submission Queue’s priority is determined by the arbitration mechanism selected, refer to section 4.11. The Admin Submission Queue and Admin Completion Queue are required to be in physically contiguous memory.

Offset 28h: ASQ – Admin Submission Queue Base Address

This register defines the base memory address of the Admin Submission Queue.

Offset 30h: ACQ – Admin Completion Queue Base Address

This register defines the base memory address of the Admin Completion Queue.

上面queue中的每个entry指向的地址落在controller memroy buffer. 就是下面下面两个寄存器相关的区域。

Offset 38h: CMBLOC – Controller Memory Buffer Location

This optional register defines the location of the Controller Memory Buffer (refer to section 4.7). If CMBSZ is 0, this register is reserved.

Offset 3Ch: CMBSZ – Controller Memory Buffer Size

This optional register defines the size of the Controller Memory Buffer (refer to section 4.7). If the controller does not support the Controller Memory Buffer feature then this register shall be cleared to 0h.

重要数据结构

nvme 重要的数据结构包括submit/completion queue 、scatter/gather list、completion queue entry、controller memroy buffer、name space list、controller list; 命令仲裁机制;

nvme queue

队列特点

总体来说有两个特点:
submit / complete queue 是生产区消费者模型;
queue 以循环队列的数据结构关联;

队列长度

受谁决定:indicated in a 16-bit 0’s based field that indicates the number of slots in the queue
最小长度:2 slots;
IO submit/completion queue最大长度:64K slots;
Admin submit/completion queue最多长度:4K slots;

队列优先级

If the weighted round robin with urgent priority class arbitration mechanism is supported, then host software may assign a queue priority service class of Urgent, High, Medium or Low. If the weighted round robin with urgent priority class arbitration mechanism is not supported, then the priority setting is not used and is ignored by the controller.

队列标识符

创建的时候,需要指定一个16 bit 的标识符;

原文地址:http://blog.51cto.com/xiamachao/2351086

时间: 2024-10-16 22:00:06

深入理解SPDK之四:nvme 协议重点解读的相关文章

深入理解nvme协议之二:nvme 协议重点数据结构之间的关系

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

(转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/details/78517364 原文地址:https://www.cnblogs.com/liujiacai/p/8325931.html

通讯协议序列化解读(二) protostuff详解教程

上一篇文章 通讯协议序列化解读(一):http://www.cnblogs.com/tohxyblog/p/8974641.html  前言:上一面文章我们介绍了java序列化,以及谷歌protobuf,但是由于protobuf的使用起来并不像其他序列化那么简单(首先要写.proto文件,然后编译.proto文件,生成对应的.java文件),所以即使他是如何的优秀,也还是没能抢占json的份额.这篇文章我们要介绍的是一款基于protobuf的java序列化协议--prorostuff,在java

任务9思维导图,解读选配主板的过程,重点解读兼容与接口的搭配技术

本文用思维导图,解读选配主板的过程,重点解读兼容与接口的搭配技术,选择了5块不同主板,说明主板内容.重点提示,主板决定一台计算机能否稳定运行. 任务描述:重点解读兼容与接口的搭配技术,解读选配主板的过程. 任务思维导图: 任务实施过程: 说明:主板的性能影响整机的速度和稳定性. 一.先说主板的选配要点 1.品牌:口碑非常重要,成熟的主板厂商对主板设计更加合理,性能更加稳定. 2.CPU插槽:不同类型的CPU需要与之适配的插槽. 3.主芯片组:是主板电路的核心,决定主板性能,根据选购的CPU,选择

理解TCP和UDP协议

目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 ·        Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号:用于区别主机中的不同进程,而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一的确定一个TCP连接: ·        Sequence Number:用来标识从T

http协议重点

https://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于

整理mp4协议重点,将协议读薄

MP4 实际代表的含义是 MPEG-4 Part 14.它只是 MPEG 标准中的 14 部分.它主要参考 ISO/IEC 标准来制定的.MP4 主要作用是可以实现快进快放,边下载边播放的效果.他是基于 MOV,然后发展成自己相关的格式内容.然后和 MP4 相关的文件还有:3GP,M4V 这两种格式. MP4 的格式稍微比 FLV 复杂一些,它是通过嵌的方式来实现整个数据的携带.换句话说,它的每一段内容,都可以变成一个对象,如果需要播放的话,只要得到相应的对象即可. MP4 中最基本的单元就是

NVMe协议1.3c(一) 概述

刚开始接触NVMe,对此理解不深,如有错误敬请指出 1.1概述 NVM ExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信. 此接口针对企业和客户端固态驱动器进行了优化,通常作为寄存器级接口连接到PCI Express接口. 注意:在开发期间,此规范称为Enterprise NVMHCI. 但是,在完成之前,该名称已修改为NVM Express基本规范. 此接口适用于客户端和企业系统. 有关从修订版1.2.1到修订版1.3的更改的概述,请参阅http://nvmexpr

深入理解SPDK: 内存管理

CPU 内存 物理地址空间会散列 ( interleave between channel/memory controller); NVME 设备对使用内存物理地址空间的限制:The NVMe 1.0 specification requires all physical memory to be describable by what is called a PRP list. To be described by a PRP list, memory must have the follow