VDMI 读通道:异构计算中的高效数据获取机制(二)
扫描二维码
随时随地手机看文章
一、VDMI 读通道的协议交互
1. 接口信号定义
VDMI 读通道采用基于 AXI4-Stream 的扩展协议,主要信号包括:
控制与地址通道
ARADDR [63:0]:64 位读取地址
ARLEN [15:0]:突发长度(最多 4096 拍)
ARSIZE [2:0]:数据宽度指示
ARUSER [31:0]:用户自定义信号,可携带预取提示
ARVALID:地址有效信号
ARREADY:地址接收就绪信号
数据返回通道
RDATA [255:0]:256 位读取数据
RLAST:突发结束标志
RUSER [7:0]:数据状态信号(如错误码、一致性信息)
RVALID:数据有效信号
RREADY:数据接收就绪信号
状态与控制信号
ERR [1:0]:错误指示(无错、地址错误、访问权限错误)
CACHE [3:0]:缓存属性指示
LOCK:锁定传输信号,确保原子操作
这些信号在保持 AXI4-Stream 协议简洁性的同时,增加了支持智能预取和一致性管理的扩展信号,使协议既能满足高性能需求,又保持良好的兼容性。
2. 读事务流程
VDMI 读通道的典型读事务流程如下:
地址请求阶段
PL 加速器在控制通道发送目标地址(ARADDR)、突发长度(ARLEN)等信息
通过 ARUSER 信号提供预取提示(如预期的访问模式)
置位 ARVALID 信号,等待 VDMI 读通道的 ARREADY 响应
预取与数据准备阶段
地址生成单元解析地址,转换为物理地址
预取引擎根据地址和 ARUSER 提示预测后续访问
向存储器控制器发起读请求,同时预取后续数据
数据缓冲单元准备接收数据
数据传输阶段
存储器返回的数据首先进入数据缓冲单元
按顺序重组后通过 RDATA 通道发送到 PL
每传输完一个数据单元,置位 RVALID 信号
PL 加速器通过 RREADY 信号确认接收
最后一个数据单元传输时,置位 RLAST 信号
状态反馈阶段
事务完成后,通过 ERR 信号返回状态信息
如启用一致性管理,更新缓存状态
整个流程设计旨在最小化握手延迟,对于预取命中的情况,数据可在地址请求后 1-2 个时钟周期内开始传输。
3. 智能预取机制
VDMI 读通道的智能预取是其核心创新点之一,工作机制如下:
学习阶段:初始几次访问时,预取引擎学习地址访问模式
预测阶段:基于学习到的模式预测下一次可能的访问地址
预取执行:在收到实际请求前,提前从存储器加载数据
验证与调整:根据实际访问验证预测准确性,动态调整预测策略
支持的预取模式包括:
线性预取:适用于连续地址访问(如数组遍历)
步长预取:适用于固定步长的间隔访问(如矩阵列访问)
二维预取:适用于二维数组的行优先或列优先访问
随机预取:对随机访问模式进行概率性预取
预取深度和范围可通过软件寄存器配置,在不同应用场景间灵活切换。