马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 xianuser 于 2025-5-15 23:51 编辑
#NVMe数据寻址方式
NVMe协议支持物理区域内存页(PhysicalRegionPage,PRP)和散集列表(Scatter Gather List,SGL)两种寻址模型,基于PCIe的NVMe主要使用PRP寻址模型,因此在本小节仅对PRP寻址模型进行分析。PRP 寻址示意图如图1所示,NVMe将主机端存储分为页的集合,PRP条目是指向物理内存页面的指针。PRP被用作主机和存储设备之间的数据传输的散点收集机制,实现了有效的无序数据传输。一条PRP条目长度为64比特,包括基本页地址和偏移量两个字段,其中偏移量字段的长度取决于物理内存页大小。一条PRP条目能够指向一个物理内存页大小的数据,当数据量较大时,PRP条目也可作为指向一个PRP 列表的指针。每个PRP列表中最多包含内存页大小数量的PRP条目,当需要更多的PRP条目时,PRP列表的最后一个条目指向新的PRP列表。PRP具有内存页对齐的属性,除了首条PRP条目可以带有偏移,其余的PRP条目偏移字段必须为0,保持内存页对齐状态。
图1 PRP寻址方式示意图
在NVMe提交指令条目中存在一个长度为128比特的数据指针字段,该字段即包含了两个PRP条目,分别命名为PRP1、PRP2。PRP1常用作PRP条目指向数据传输地址,由于PRP具有内存页对齐的属性,PRP2根据数据传输长度以及PRP1的偏移确定类型。PRP2类型的确定方式如表1所示。 表1 PRP2类型的确定方式
对相关视频感兴趣的,请移步B站,搜用户名: 专注与守望
|