基于PCIe的NVMe学习

一:基本概念

1.UltraScale:是Xilinx ZYNQ 系列产品

2.spec:大家现在别纠结于具体的命令,了解一下就好。老板交代干活的时候,再找spec一个一个看吧————猜测估计是命令表之类的。

3.TLP报文部分:

二:pcie相关知识

1.但PCIe是可以最多32条道的(x32)

2.全双工模式

3.pcie拓扑结构:所有pcie的设备均挂在pcie总线上,谁要使用需要得到总线相关的使用权。

4.PCIe Endpoint,就是PCIe终端设备,比如PCIe SSD,PCIe网卡

5.Host与PCIe设备之间,或者PCIe设备与设备之间,数据传输都是以Packet(Transaction Layer Packet)形式进行的.

6.事务层根据比如软件层的需求,产生四种不同的TLP请求分别为:

  1. Memory 

  2. IO

  3. Configuration

  4. Message

7.RC是树的根,或者主干,它为CPU代言——所有的配置空间(Configuration)的访问,都是Host发起的,确切的说是RC发起的

8.一个TLP最大载重是4KB,数据长度大于4KB的话,就需要分几个TLP传输。

三:ssd相关知识

1.现在很多SSD都开始使用PCIe接口——为了追求速度更快,上限速度就是pcie的接口速度

2.SSD——半双工

四:NVMe相关知识

1.NVMe是一种Host与SSD之间通讯的协议,它在协议栈中隶属高层——在三国的话,就是诸葛亮的角色

2.军师设计好计谋,就交由手下五虎大将去执行——虎将PCIe去完成任何命令。

3.虽然NVMe的命令可能可以由别的接口协议完成,但NVMe与PCIe合作形成的战斗力无疑是最强的。

4.AHCI和SATA的协议犹如刘备去指挥虎将PCIe——垃圾。还需诸葛(NVMe)来指挥。

5.所有SATA接口的SSD,你去看性能参数,会发现都不会超过600MB/s——垃圾。

6.NVMe有两种命令:一种叫Admin Command,用以Host管理和控制SSD。二种叫I/O Command,用以Host和SSD之间数据的传输。

7:命令有了,那么,Host又是怎么把这些命令发送给SSD执行呢——?

8:NVMe有三宝如下图——DB ,SQ,CQ

9:如上图,RC(root complex)就是CPU的代言人,小蜜。

10.

说,NVMe处理命令需要几步?答:八步:

第一步:Host写命令到SQ;

第二步:Host写DB,通知SSD取指;

第三步:SSD收到通知,于是从SQ中取指;

第四步:SSD执行指令;

第五步:指令执行完成,SSD往CQ中写指令执行结果;

第六步:然后SSD发短信通知Host指令完成;

第七步:收到短信,Host处理CQ,查看指令完成状态;

第八步:Host处理完CQ中的指令执行结果,通过DB回复SSD:指令执行结果已处理,辛苦您了!

11. 有SQ就必然有CQ  ,SQ/CQ中的”Q”,是Queue,队列的意思.

12.无论host想从ssd读数据还是写数据(host都是拿来主义,ssd都是快递员)Host也有两种方式来告诉SSD数据所在内存位置,一是PRP (Physical Region Page, 不是P2P!),二是SGL (Scatter/Gather List)。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 05:24:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 05:24:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 05:24:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 05:24:05       18 阅读

热门阅读

  1. 数据处理架构

    2023-12-15 05:24:05       37 阅读
  2. 【MySQL】基础(一)

    2023-12-15 05:24:05       36 阅读
  3. 不安全的裸指针

    2023-12-15 05:24:05       34 阅读
  4. kafka rebalance(再均衡)导致的消息积压分析

    2023-12-15 05:24:05       33 阅读
  5. 学习RPC框架-Thrift日志

    2023-12-15 05:24:05       42 阅读
  6. Retrofit上传文件到oss文件存储

    2023-12-15 05:24:05       33 阅读
  7. SQL区间

    2023-12-15 05:24:05       36 阅读