一、AtomicLoad
1. AtomicLoad操作的本质
技术定义:AtomicLoad是一种双向带返回值的原子操作。管理器发送数据值、地址和操作码,从属设备返回原始值,同时执行指定操作并将结果存储回内存。
关键特性:
双向性:数据双向流动(发送操作数,返回原始值)
完整读-改-写:读取、计算、写回在一个原子操作中完成
返回原始值:将操作前的数据值返回给管理器
原地操作:在数据所在位置执行计算
数学表示:
text
设:内存位置 M,操作数 X,操作符 ⊗ AtomicLoad执行: 返回 R = M 更新 M = M ⊗ X 其中 ⊗ ∈ {+, -, &, |, ^, max, min, ...}2. 操作流程的硬件实现
典型时序流程:
verilog
// AtomicLoad硬件时序示例 module atomic_load_timing #( parameter CLK_PERIOD =