ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NVMe协议详解(二)

2021-03-16 19:58:13  阅读:1392  来源: 互联网

标签:CC 协议 PCI 队列 NVMe PCIe 详解 寄存器


NVMe协议详解(二)

2. PCIe寄存器配置

NVMe over PCIe,通过利用PCIe总线实现数据交互的功能,实现对物理层的抽象功能。

2.1 PCIe总线的基本结构

PCIe总线分为三层,物理层,数据链路层,处理层(类似于计算机网络的分层结构),通过包来转发数据。NVMe协议定义的内容相当于PCIe的上一层应用层,处于应用层。PCIe给NVMe提供了底层的抽象。

NVMe SSD相当于一个PCIe的端设备(EP)。

在这在这里插入图片描述里插入图片描述

2.2寄存器配置

在协议中主要定义了PC header、PCI Capabilities和PCI Express Extended Capabilities三部分内容。

具体在host内存中会占有4KB,结构如下:

在这里插入图片描述

2.2.1 PCI header

PCI header有两种类型,type0表示设备,type1表示桥。NVMe 控制器属于EP,所以定义为type0的类型。共64KB,如下图:

在这里插入图片描述

2.2.2 PCI Capabilities

这里配置了PCI Capbilities,包括电源管理、中断管理(MSI、MSI-X)、PCIe Capbilities。

2.2.3 PCI Express Extended Capabilities

这里配置有关错误恢复等高级功能。

3.NVMe寄存器配置

3.1 寄存器定义

NVMe寄存器主要分为两部分,一部分定义了Controller整体属性,一部分用来存放每组队列的头尾DB寄存器。

  1. CAP——控制器能力,定义了内存页大小的最大最小值、支持的I/O指令集、DB寄存器步长、等待时间界限、仲裁机制、队列是否物理上连续、队列大小;
  2. VS——版本号,定义了控制器实现NVMe协议的版本号;
  3. INTMS——中断掩码,每个bit对应一个中断向量,使用MSI-X中断时,此寄存器无效;
  4. INTMC——中断有效,每个bit对应一个中断向量,使用MSI-X中断时,此寄存器无效;
  5. CC——控制器配置,定义了I/O SQ和CQ队列元素大小、关机状态提醒、仲裁机制、内存页大小、支持的I/O指令集、使能;
  6. CSTS——控制器状态,包括关机状态、控制器致命错误、就绪状态;
  7. AQA——Admin 队列属性,包括SQ大小和CQ大小;
  8. ASQ——Admin SQ基地址;
  9. ACQ——Admin CQ基地址;
  10. 1000h之后的寄存器定义了队列的头、尾DB寄存器。

3.2寄存器理解

  1. CAP寄存器标识的是Controller具有多少能力,而CC寄存器则是指当前Controller选择了哪些能力,可以理解为CC是CAP的一个子集;如果重启(reset)的话,可以更换CC配置;
  2. CC.EN置一,表示Controller已经可以开始处理NVM命令,从1到0表示Controller重启;
  3. CC.EN与CSTS.RDY关系密切,CSTS.RDY总是在CC.EN之后由Controller改变,其他不符合执行顺序的操作都将产生未定义的行为;
  4. Admin队列有host直接创建,AQA、ASQ、ACQ三个寄存器标识了Admin队列,而其他I/O队列则有Admin命令创建(eg,创建I/O CQ命令);
  5. Admin队列的头、尾DB寄存器标识为0,其他I/O队列标识由host按照一定规则分配;只有16bit的有效位,是因为队列深度最大64K。

标签:CC,协议,PCI,队列,NVMe,PCIe,详解,寄存器
来源: https://blog.csdn.net/qq_39021670/article/details/114896973

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有