Core2 and Nehalem pipeline

本文详细介绍了Intel的Core2和Nehalem微架构的流水线设计,包括Core2的14级流水线、双/多核设计、节能策略,以及Nehalem的私有L1/L2缓存、共享L3缓存和超线程技术。两者的指令取指、预译码、译码和微操作融合等方面进行了对比,强调了流水线优化对性能和能耗的影响。Nehalem的改进包括更深的流水线、更大的ROB和RS,以及更高效的循环缓冲和执行单元设计,提升了处理器的并行处理能力和响应速度。
摘要由CSDN通过智能技术生成

Core2 and Nehalem pipeline

(The microarchitecture of Intel, AMD and VIA CPUs https://www.agner.org/optimize/)

  1. 介绍:

    • 相对于之前的PM的设计,流水线能够每周期处理四条微操作,执行单元由原本的64位宽变为128位宽
    • Core2处理器有着两个或更多的CPU,每个CPU具有私有的L1 cache,共享的L2 cache。Nehalem则是私有的L1和L2 cache,L3 cache共享
    • Nehalem的四核处理器在每个核上可以同时执行两个线程
    • Core2同样存在power-saving策略,能够关闭部分未被使用的部分,例如内部总线,执行单元。当执行的工作负载较小时,时钟频率也会随之下降。在Nehalem可以支持提高某一个核的频率,如果其它的核都是空闲的。
  2. 流水线结构:

    • Core2 据称只有14级流水线,以减少能耗,推测执行和分支错误预测的代价。
    • 论文作者实验发现转移预测错误代价最小是15个周期。作者发现Core2的取指和提交部分相对于PM有了一定的改进,因此推测Core2增加了一级用于改善指令取指和预译码,增加了另外一级用于改善指令提交
    • Nehalem的转移预测错误代价最小是17个周期,因此至少也要比Core2多两个流水级
    • 根据Intel官方的文档介绍,Core2的ROB大小为96表项,Nehalem为128表项。Core2的RS具有32表项,Nehalem为36表项
  3. 指令取指和预译码

    • 相对于之前的处理器,Core2在转移预测和指令取指之间增加了一个队列,以减少跳转分支带来的延迟问题。
    • 取指带宽受到预译码的限制,每周期16B
    • 预译码和译码阶段之间存在一个64B的队列。预译码主要工作是检测每个指令的开始位置(每条指令长度在1-15B),同时也要识别指令的前缀和指令的其它组件
    • 预译码的最大吞吐量为每周期16B或者6条指令(两者之间最小的为准)。如果16B的代码块中超过了6条指令,则预译码器需要至少两个周期才能够加载下一个代码块。任何跨越了16B的代码块的指令需要被遗留到下一个代码块进行处理。ÿ
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值