Alpha 21264 Execution engine & memory system

本文详细介绍了Alpha 21264微处理器的执行引擎和内存系统。执行引擎包含4个整型和2个浮点执行单元,最大支持6发射。内存系统包括64KB 2路组相连数据缓存,采用write-back策略,具有受害者缓冲区以缓解缓存缺失延迟。此外,文章还讨论了预取技术和总线接口单元的角色,确保高效的数据传输和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Execution engine

  • 如下图6所示,alpha 21264总共有6个执行单元,最大支持一个周期6发射,其中4条整型指令,2条浮点指令。在物理设计上,6个执行单元被放置在相应寄存器文件的上方或者下方,方便执行单元快速访问。
  • 整型执行单元流水:
    • 结构:对于整型执行流水来说,Alpha 21264将整型寄存器文件复制成两份,每一份都包含所有的80个整型寄存器。4个整型执行单元中,每两个执行单元访问一个寄存器文件这样的一组构成一簇,另外的两个执行单元和寄存器文件构成另一簇,两簇组合成为整个整型执行流水,支持一次发射四条整型指令。对于两个簇来说,寄存器文件上部的两个执行单元由同一个发射队列仲裁器控制,下部的两个执行单元受另一个发射队列仲裁器控制,如下图所示。整型发射队列固定的将整型指令中不同的类别送到不同的发射仲裁器中,仲裁器动态的选择指令在簇0还是簇1执行。
    • 特点及性能分析:整型执行单元的分簇结构设计简单且快速,但是它花费了额外的时钟周期在两个簇之间传递寄存器信息保持两个寄存器文件保持一致。由于分簇结构和发射单元仲裁导致的性能损失是很小的,根据原文作者所诉,与大部分理想化的非分簇应用相比性能损失可能只有很小百分比。其主要原因有:1.对于许多操作来说(例如load/store指令)它们只能够在上部或者下部的执行单元中执行,所以发射队列静态的选择仲裁器并不是限制性能的原因;2.关键路径的计算倾向于在同一个簇上执行,发射队列仲裁器对于之前发射过的指令往往都选择同样的簇再次执行,这样就减少了关键指令需要等待跨簇延迟的问题,也就是说一条指令通常被选择在产生其需要用到的数据的前面的指令执行的簇进行执行,这样就避免了等待簇的通信延迟。Alpha 21264通过很多应用的执行结果证明了双发射队列的结构能够保持4路整型发射单元的性能又具有更加简单、低风险和快速的优势。
  • 浮点执行单元流水:
    • 上图6中左侧显示了Alpha 21264的浮点执行流水线结构,包括一个簇,上下2条流水线共享中间的72个浮点寄存器文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值