本摘要追踪了 NVIDIA RTX 4090 上 `STG.E`(全局存储)指令的执行过程,详细说明了数据如何从寄存器传输至 DRAM。 当线程束(warp)执行 `STG.E` 指令后,加载/存储单元(LSU)会协调数据传输。合并器(coalescer)将内存访问合并为多个扇区,这些扇区经由直写式(write-through)L1 缓存和交叉开关(crossbar),最终到达特定的 L2 缓存片(slice)。一旦 L2 确认接收,流式多处理器(SM)即认为该指令已完成,允许线程束继续执行或退出,此时数据在 L2 中仍处于“脏”(dirty)状态。 为了管理 DRAM 流量,L2 采用了智能替换策略。当容量不足时,它会主动清理“脏”行,以防止写回操作集中爆发而导致内存控制器产生瓶颈。数据最终会在 L2 驱逐相关缓存行时迁移至 DRAM。 由于存储操作是异步的,NVIDIA 使用了“栅栏”指令(`membar.cta`、`membar.gl`、`membar.sys`)来确保数据可见性。这些指令强制线程束等待,直到数据在特定范围(SM、GPU 或整个系统)内保持一致,从而为后续的内核或主机端操作安全地访问新写入的内存提供了必要的同步保障。