AMD K8 and K10 pipeline

本文详细介绍了AMD K8和K10处理器的流水线结构,包括取指、译码、执行等多个阶段。K10拥有三条并行流水线,支持128位浮点执行单元,并包含stack engine。整数和浮点执行管道各有特点,I-cache和D-cache采用64KB,2路组相联设计。L2-cache为512KB,采用16路组相联和伪LRU替换策略。
摘要由CSDN通过智能技术生成

AMD K8 and K10 pipeline

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

  1. 流水线结构

    • 指令会尽可能少,尽可能晚地在流水线中被拆分。每一条read-modify宏指令会在执行阶段拆分成read和modify微指令,在提交之前重新合并成宏指令。
    • K8没有执行单元的执行带宽超过64或者80位,K10则支持128位的浮点执行单元。
    • AMD和Intel的最大差别:AMD包括三条并行的流水线。在取指阶段之后,指令就会分布到三个流水线中。在简单的情况下,指令会在相应的流水线提交。
    • K10有stack engine,结构类似于Intel的处理器
    • 流水线的长度估计是12级,因为测量的错误分支预测代价为12周期
    • 流水线的具体结构
      • 指令取指1, K10每周期32B,K7/8每周期16B
      • 指令取指2+转移预测
      • Pick/Scan。能够缓存7条指令,并且会将三条指令分发到三个流水线的译码器中
      • 译码1,分解指令
      • 译码2,决定输入输出寄存器
      • Pack。解码器最多生成六个宏操作,同时被排列成3个执行流水线的三个宏操作行
      • Pack/Decode。寄存器重命名。整数寄存器从“integer future file and register file”中读取。将整数指令发射到整数流水线,浮点指令发射到浮点流水线。
      • Dispatch(整数)。发射宏操作到RS(3*8)
      • Schedule(整数)。乱序调度re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值