一,处理器和内存系统结构
主存在内存体系结构距离CPU最远端,缓存在内存体系结构距离CPU最近端。
EU直接读取L1指令缓存,通过LSU读/写L1数据缓存,在LSU与L1数据缓存之间是write buffer,用于回写。
write buffer与write-combining buffers连接,后者通过系统总线与主存连接。
二,分级缓存
L1缓存分为数据、指令两种类型,保存最近被使用的数据或指令。
L2缓存一般不区分类型,包含指令和数据。L2缓存可以为exclusive模式,意味着它不缓存L1缓存的内容,或者为inclusive模式,保存L1缓存内容的一份拷贝。
三,内存操作
内存读写都会先检查缓存中是否有需要的信息,当读的内容在缓存中时,为读命中,否则为读miss;当可以向缓存中写数据时,称作写命中,当数据不
能保存到缓存时为写miss。
加载数据到缓存的操作叫做cache line填充,填充操作的单位为cache line。为新加载的cache line腾出空间,一次填充操作一般会引起移除一个已经存在
的cache line,移除已有cache line的操作叫做cache line replacement。如果被移除的cache line为modified状态,则先将其writeback回主存,然后在执行
cache-line-fill。
通过cache line写回保证主存和缓存之间的一致性。处理器在处理内存请求时,会检查其他缓存和write buffer对请求信息的version,保证各缓存,write buffer
的一致性。
当主存或缓存忙于处理其他内存访问时,write buffer用于暂存数据。
参考:
AMD64 Architecture Programmer’s Manual Volume 2: System Programming