Energy-Performance Tradeoffs in Processor Architecture and Circuit Design—— A Marginal Cost Analysis

Energy-Performance Tradeoffs in Processor Architecture and Circuit Design: A Marginal Cost Analysis

  1. 为了评估处理器设计空间的中的energy-performance tradeoff,论文提出了可感知电路的架构优化框架

    • 首先使用设计空间采样和统计归纳,创建架构模型,捕获微架构参数的大型多维空间
    • 然后描述处理器设计中存在的每个底层电路块的energy-performance tradeoff,然后将其存储在电路库中
    • 接着将架构和电路空间连接在一起,形成集成的设计空间模型
    • 在这种联合的模型中,架构模型了解底层电路的energy-performance的权衡,并且这些电路可能对架构施加的任何约束也得到强制执行
    • 联合的架构电路设计空间最终利用优化/搜索引擎,在给定的优化目标和资源预算的限制下,搜索空间,以找到最有效的设计配置
    • 在这个框架中,构建体系结构模型和电路库通常是一次性成本,除非正在探索新的体系结构或者电路。
      Energy-Performance Tradeoffs in Processor Architecture and Circuit Design—— A Marginal Cost Analysis

    ​ 图片:优化框架的概括。体系结构模型由抽样和拟合的方法生成。同时给出各个电路模块的能量延迟(E-D)权衡曲线,然后将这些设计空间进行整合,最后利用设计空间搜索引擎进行设计优化

  2. Architectural Modeling ,架构模型

    • 模型需要能够预测在更改模型的基础参数(从高层架构的选择到微架构的调整,例如cache大小和功能单元延迟)时,整个系统的(架构性能)CPI的变化情况

    • 使用统计抽样和归纳来从相对较小的设计点样本创建拟合模型。以传统方式模拟少量随机设计配置(具有随机选择的设计参数值),然后使用模拟结果来归纳出不同设计参数如何相互作用并影响整体性能。归纳过程基本上通过数据回归的方法完成。论文使用的是正多项式拟合

    • 使用posynomial(正多项式)的优点:作为对数凸函数,可以进行非常有效的优化

    • 对于体系结构中的离散变化,成为宏观架构设计选择(例如INO/OOO,PRF/IW)不适合连续函数,需要生成单独的模型,进行单独的优化。

    • 预测架构的CPI的函数参数:单位延迟和结构大小(如缓存,BUFFER,QUEUE)
      CPI=f(...,latencyi,...,sizej,...) CPI=f(...,latency_i,...,size_j,...)

    • 由于每个程序的行为都不同,因此会先为每个基准测试生成单独的模型,然后将这些拟合的模型组合在一次,以生成一组基准的总体CPI

    • 根据需要建模的系统的复杂程度,生成拟合所需要的设计空间的样本数也不相同。

  3. Circuit Trade-offs Library :带有权衡信息的电路库

    • 在电路/逻辑级别,有很大的设计选择空间,对于给定的电路可以以各种方式实现,以在能耗和延迟之间权衡

    • 电路级别的设计空间包括:拓扑结构,逻辑综合映射,电路类型(静态,动态等)和门的大小

    • 对于优化框架,需要得到每个电路的energy-delay点,通过对这些设计点进行注释,以便一旦选择了某个电路的energy-delay点,就可以反向确定具体的电路实现

    • 给定一组设计点,需要能够创建一个模型,预测每次使用的单位能源成本。对于纯粹的逻辑单元,权衡只在能量和延迟之间,但是对于cache,buffer和queue之类的存储结构,延迟和能量也取决于其大小
      Energy=f(Delay),forlogicunitsEnergy=f(Delay,Size),formemorystructures Energy=f(Delay),\quad for \quad logic \quad units\\Energy=f(Delay,Size),\quad for \quad memory \quad structures

  4. Design Space Integration :设计空间的整合

    • 集成架构和电路设计空间的需求:在电路延迟和流水线延迟之间建立适当的链接,然后计算底层电路的总的能量开销

    • 在集成的模型中,架构模型需要意识到逻辑单元的实际延迟。此时论文采用时钟周期将电路库中的单元的物理延迟Di和架构模型中基于周期的延迟Ni(单位为周期数)相关联。因此单元中的流水线级数为:物理延迟除以时钟周期。增加流水级之间的寄存器延迟,得到Ni的实际情况:(clk-to-Q部件延迟)
      Ni=Di/(TcycTff)Tffinculdesregistersetup,clocktoqtimes,clockskewoverheads N_i=D_i/(T_{cyc}-T_{ff})\\T_{ff}\quad inculdes\quad register\quad setup, clock-to-q\quad times , clock\quad skew\quad overheads

    • 优化框架将时钟周期作为设计空间的变量(包括Di,Ni),因此可以利用时钟周期来探索一个单元的不同流水级数带来的影响

    • 某些单元无法流水化,执行一次需要一个周期完成,因此会限制周期,影响总体性能。此时需要在框架中可以指令这些逻辑单元不能流水,考虑到这些电路的影响

    • 论文将EPI(energy per instruction)建模为三个组件的总和:逻辑组件,流水线寄存器和时钟网络消耗的能量

      • 对于逻辑组件,总能量取决于每个电路每次使用所消耗的平均能量和其活动率。Ei直接与电路的tradeoff相关,选择更快的电路会导致总逻辑能量的增加
        EPIlogic=i(αiEi) EPI_{logic}=\sum_i{(\alpha_i*E_i)}

      • 寄存器和时钟网络中消耗的能量都取决于流水线寄存器的数量。每个单元的流水线寄存器数量Ri近似认为是流水级个数Ni和平均逻辑宽度Wi的函数。总的寄存器能量是单个寄存器的平均能量成本Eff * 该单元中流水线寄存器个数Ri * 单元的活动因子
        Ri=(Ni)ηWiEPIregs=iαiRiEff R_i=(N_i)^\eta*W_i\\EPI_{regs}=\sum_i{\alpha_{i}*R_i*E_{ff}}

      • 时钟能量是寄存器总数 * 平均时钟能量Effclk * 每条指令的周期CPI,此时其单位为每条指令
        EPIclk=i(Ri)EffclkCPI EPI_{clk}=\sum_i{(R_i)*E_{ffclk}*CPI}

      • 参数n允许对super-linear流水线寄存器的增长进行建模,并且对于每个架构块可以是唯一的。Eff和Effclk是从真实设计中提取的。

      • 对于大多数单元,可以从混合的应用程序的指令中得到活动因子αi,其表示每个指令使用单元次数,并且它是固定的。但是对于cache,访问下一级存储的次数取决于其上一级cache的缺失率,此时需要将缺失率表示为cache size的函数,并且在框架中,使用该数据来考虑上层cache改变时,下一层存储的活动因子αi

  5. EDn指标基本上设定了能量和性能之间的交换比率,n增加有利于更高的性能
    EDn=energydelayn ED^n=energy*delay^n
    Energy-Performance Tradeoffs in Processor Architecture and Circuit Design—— A Marginal Cost Analysis