Freeway:Maximizing MLP for Slice-Out-of-Order Execution

Freeway: Maximizing MLP for Slice-Out-of-Order Execution

  1. 摘要:

    • 问题:
      • 为了能够掩盖内存和LLC的长访问延迟,充分的利用MLP将非常重要。尽管当前OOO处理器中能够有效的利用MLP,但是硬件复杂,能效低,能耗大
      • 之前的工作:sOOO(slice-out-of-out)是一种相对于OOO核能效更高的,能够利用MLP的微架构。这种结构将存储指令和相关指令构建成为代码片段,并且相对于剩余的指令,乱序的执行(slice内部和剩余指令都是按序,两者相对乱序)
      • sOOO的问题:在存储指令代码片中的指令由于是按序执行,会出现不相关的的指令阻塞后面的代码片中后面的指令执行(不同的slice之间,由于按序执行,导致slice之间的阻塞)
    • 论文工作:Freeway,一种新的sOOO微结构,设计了一种新的可感知相关(dependence-aware)的slice执行策略,这种策略可以跟踪相关的slices,并使它们不受MLP提取的影响
    • 结果:Freeway相对于之前的sOOO的性能提升了12%
  2. 介绍:

    • 乱序执行可以提取MLP,因为可以同时将不相关的ready的多个存储操作同时发射执行,但是这种架构的能耗也非常大。例如OOO中的指令队列的结构通常是CAM结构(content addressable memory),这种结构的功耗随着队列长度和发射宽度成超线性(super-linearly)增长
    • Runahead execution:当OOO停顿时,能够继续提取MLP,但是需要额外的资源用于checkpointing,恢复状态,追踪有效和无效的结果,伪提交和一个runahead cache,即也会增加更多的能耗
    • slice out-of-order:LSC(load slice core)
      • 构建代码片,包括load和store指令,以及相关的地址生成指令
      • slices和非slice中的指令,两类之间乱序执行,但是两类内部仍旧按序执行
      • LSC在原本的按序,stall-on-use的核中,增加一些很少的硬件,完成上述两个功能(bypass-queue用于作为slices指令的指令窗口,一些表结构用于识别slice指令)
    • inter-slice dependencies limit ML
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值