NVMe介绍

NVMe是一种主机(Host)与SSD之间的通信协议,在协议栈中隶属最高层

NVMe有三宝:Submission Queue(SQ)、Completion Queue(CQ)、Doorbell Register(DB)


        有两种SQ和CQ:Admin SQ/CQ(一对,用于主机管理控制SSD),IO SQ/CQ(多对,用以主机与SSD之间传输数据)(队列均为环形队列,有头有尾)。

        SQ用以主机发命令,CQ用以SSD回命令完成状态。

        SQ/CQ一般在主机内存中

        IO SQ/CQ的广度和深度可以灵活配置

        DB是在SSD端的寄存器,用来记录SQ和CQ的头和尾的位置



NVMe处理命令需要8步:


        1、主机写命令到SQ

        2、主机写DB,通知SSD取指

        3、SSD收到通知后,到SQ中取指

        4、SSD执行指令

        5、SSD指令执行完成,SSD往CQ中写结果

        6、SSD发中断,通知主机指令完成

        7、主机收到中断,处理CQ,查看完成结果

        8、主机写DB,回复SSD处理完成


你可能感兴趣的:(NVMe介绍)