我们现在讲的NVMe,主要是基于NVMe over PCIe展开的。在之前的文章中,我们提到了NVMe over PCIe系统中Host与Controller主要依靠PCIe TLPs(Memory Read/Wirte)进行信息的传递。
在之前的PCIe专题(PCIe系列专题之二:2.2 TLP事务处理方式解析)中,我们详细介绍Memory Read/Write TLP的处理方式。在这里就略过咯~
在Host与Controller之间有数据交互时,Controller会多次访问Host内存。比如执行NVMe Read/Write:
当Host下发NVMe Write命令时,Host会先放数据放在Host内存中,然后通知Controller过来取数据。Controller接到信息后,会通过PCIe Memory Read TLP读取相应的数据,接着Host返回的PCIe Completion报文中会携带数据给Controller,最后再写入NAND中。
当Host下发NVMe Read命令时,Controller先从NAND中读出相应数据,然后通过PCIe M