说到NVMe协议解读,蛋蛋读NVMe系列绝对是经典中的经典,个人在学习NVMe过程中也看了好几遍,如果有想学习NVMe协议的同学强烈建议去看看。珠玉在前,自己写这篇文章的目的仅仅只是为自己记录而已。
1)什么是NVMe协议?
首先看一下NVMe的定义,官方网站为 https://nvmexpress.org/ 官方对NVMe的解释是:NVM Express® (NVMe® is a specification defining how host software communicates with non-volatile memory across a PCI Express® (PCIe®) bus. It is the industry standard for PCIe solid state drives (SSDs) in all form factors (U.2, M.2, AIC, EDSFF).。意思简单明了,使用非易失性内存的固态硬盘通过PCIe总线与主机通信的标准,即专为NVMe SSD制定的通信标准。现在我们还经常能听到的一个词NOF(NVMe over fabrics),即NVMe协议运行于fabrics协议之上,这也是NVMe协议发展壮大的一个体现,从这也可以看出NVMe协议的定位,NVMe协议是一个上层协议,可以说是一个应用层协议,而最开始的协议制定依赖的底层是PCIe协议,因此本文讨论的NVMe协议范围只包括NVMe over PCIe。
2)为什么要有NVMe协议?
随着计算机的发展,计算机系统中IO的性能瓶颈基本卡在传统的机械硬盘上