缓存缺失代价与内存往返次数:CPU缓存填充机制及延迟问询
缓存填充机制与缺失惩罚解析
缓存块的填充方式
当CPU发生一级缓存缺失时,不会发起4次独立的读请求,而是通过总线的**突发读(Burst Read)**机制批量获取整个缓存块的数据:
- CPU向内存控制器发送包含起始地址和突发长度(此处为4,对应4个16字节的总线传输单元)的请求
- 内存控制器收到请求后,连续将起始地址开始的4个16字节数据块依次通过数据总线传输给CPU
- CPU将这4个连续数据块拼接为完整的64字节缓存块,写入一级缓存
突发传输是总线协议的标准特性,核心是减少地址交互的额外开销——独立请求每次都要发送地址、等待响应,而突发传输仅需一次地址交互,后续直接连续传输数据,效率远高于多次独立请求。
缓存缺失惩罚的含义
这里的100纳秒缓存缺失惩罚,是指从CPU发起缓存缺失请求,到整个64字节缓存块完全写入缓存、CPU可恢复执行的总耗时,并非每25纳秒发起一次读请求:
- 100ns包含了地址传输延迟、内存访问延迟、4次总线数据传输的时间总和
- 整个过程中CPU仅需发起一次突发请求,之后会等待所有数据块传输完成,而非分批次发起请求再分别等待
内容的提问来源于stack exchange,提问作者martian17
相关产品推荐
相关产品推荐

