码迷,mamicode.com
首页 > 其他好文 > 详细

低功耗设计二之Bypassing(旁路)

时间:2015-02-05 00:42:31      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:

  通过缩短部分指令流水线级数,减少IO口变化及寄存器赋值,以达到降低动态功率的目的,首先对指令进行分类如下。 

 

  指令分类:

  (1)    IF ID EX MEM WB

    LOAD

  (2)    IF ID EX MEM NOP

    STORE JMPR BZ BNZ BN BNN BC BNC

  (3)    IF ID EX NOP WB

    LDIH ADD ADDI ADDC SUB SUBI SUBC AND OR XOR SLL SRL SLA SRA

  (4)    IF ID NOP NOP NOP

    CMP

  (5)    IF NOP NOP NOP NOP

    JUMP(直接跳转)

  (6)    NOP NOP NOP NOP NOP

    NOP

 

  可看出,(3)类指令可将wb前移,略去流水线mem,因其对它无贡献。但是前移的前提条件是前面未出现(1)类指令,或(1)类指令被(2)(4)(5)(6)类指令刷除其作用。

 

  优化模拟效果图如下:

   技术分享

  技术分享

   

  模型转换为实际时,时序问题应理得非常清楚,判断状态值与EX同步,则需在ID对状态赋值,方可在EX时对其调用。

 

  基本步骤如下:

  (a)在ID内对状态进行初始化为lower(可降低功耗)状态,判断下一周期内指令即ex_ir是否为(1)类指令,若是,状态变为normal。若为(2)(4)(5)(6)类指令,状态变为power,否则状态不变;

  (b)在ex_ir内判断当前指令是否为(3)类且状态为lower(与ID时获得此次状态),若是则传入mem内指令为NOP;

  (c)在mem_ir内判断ex_ir是否为(3)类指令且状态为lower,若是则WB传入ex_ir,且将ALUo赋值给reg_C1,否则传入mem_ir。

 

 

  参考:《Low-Power Pipelined MIPS Processor Design》

低功耗设计二之Bypassing(旁路)

标签:

原文地址:http://www.cnblogs.com/Carlen/p/4273624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!