现代处理器设计——超标量处理器基础(执行多线程)
构造多处理机系统的挑战:如何为所有的线程提供一致的存储器视图,同时尽量减少平均访存延迟。
load-locked/store-conditional:读出一个值,执行其他任意操作,然后试图将数据存到同一地址。如果中间插入其他任何一个线程的针对于同一地址的写操作,都会导致写条件失败。
实现:每条LL指令必须记住它读取的地址,所有后续的写操作必须检查写地址,确定是否与LL指令读取的地址匹配。最后当stc执行时,同样必须检查地址,确定是否与链接地址匹配,如果匹配,stc允许执行,否则stc失败并设置条件码
目录一致性实现的优点:
- 带宽扩展:目录的带宽随着存储器的带宽增长而增长,同时通过在目录中过滤掉一些命令,减少了对于地址总线带宽的需求。
- 访存延迟:cache失效的延迟能够显著地减少。因为一旦存储器完成对目录的检查,就能提供数据。同时私有数据在本地存储器中,访问延迟也很低
- 缺点:当发生cache失效而所请求的行在远程cache中是dirty时,会带来额外的延迟。
监听/目录混合系统:在小部分的处理机集合中使用传统的,基于总线的监听协议来维护一致性,但是多个集合之间的一致性是通过建立在可扩展一致性结构标准上的目录协议实现的。混合机制具有目录机制的可扩展的优点,同时对于能够在本地监听域内满足的通信失效,保持了较低的平均延迟
CMP的好处:在单个芯片上集成多个处理器使得多个处理器的封装和互连的物理实现变得容