背景:
在近两年发现更多的NVMe控制芯片把Prp算法集成到NVMe IP中,Prp越来越对Firmware不可见了,这样对新的Firmware 工程师了解Prp很不友好。
(之前有站在OS driver的角度去写Prp,今天换到device角度再次梳理Prp)
如图在NVMe Command的DW6~DW9表示Prp1和Prp2
Prp有三种算法:
a: only Prp1,data address.
b: prp1 + prp2, both data address.
c: prp1 + prp2, prp1 data address, prp2 is list.
PRP算法根据Data address start和Data length来分区使用那种算法。