程序的执行时间

802e8df50f4f0ca0db06dd4277770a0f.png 程序的执行时间 = 程序的指令数 * 每条指令的平均时钟周期数(CPI) * 每个时钟周期的时间

程序的指令数

Instructions per Program b611f79555ef86a52e0d1de510432208.png 五个影响因素:

  1. 任务程序本身的体量 task
  2. 算法复杂度 algorithm, e.g. O(N2) vs O(N)
  3. 编程语言
  4. 编译器
  5. 指令集架构(ISA)

(Average) Clock cycles per Instruction (CPI)

wiki 2f84d172c62018888122473714f110c4.png 两个影响因素:

  1. 指令集架构(ISA)
  2. 处理器的实现方式 比如单周期处理器CPI=1,strcpy的CPI»1,superscalar超标量处理器的CPI<1等

Time per Cycle(1/Frequency)

每个时钟周期时间的值是频率的倒数,比如:1/4GHZ 4086d4cd2bb50b9ae2c383ec311e9879.png 三个影响因素:

  1. 处理器的微架构 决定处理器底层的关键路径,而关键路径时延决定时钟周期时间的下限
  2. 工艺 比如14nm vs 28nm
  3. 设计使用的额定功率 低电压会影响电路时延

能耗 energy

流水线

顺序洗衣服

edec4a45585c8c3de550e3fbb7324ce8.png

流水线洗衣服

b4758c5944377daa2fbc62feea56d644.png 流水线吞吐率受限于最慢的执行时间