【CO101】计算机组成原理笔记4 —— 单周期、多周期、流水线处理器

笔者:YY同学

生命不息,代码不止。好玩的项目尽在GitHub



基本概念

  • CPI:Cycle Per Instruction,单位指令时钟周期数
  • Cycle Time:周期时间,处理器完成一个周期所需的时间,需要在出厂时设定,属于物理极限
  • 执行时间 = 指令数目 x CPI x Cycle Time
  • 性能 = 1 / 执行时间

单周期处理器

在这里插入图片描述

  1. CPI = 1
  2. 以指令为单位,对于每条指令而言,都需要耗费 1 个时钟周期
  3. 在物理设计上,cycle time 必须统一标准,因此 cycle time 一般取决于耗时最长的指令 lw(lw需要干的事情最多),当指令中只有少数 lw 指令时,就会产生时间上的浪费
  4. 单位指令执行时间 = 1 * T(T 为耗时最长指令的 cycle time)

多周期处理器

在这里插入图片描述

  1. 提出划分阶段的思想,将每一条指令拆分为 5 个阶段:IF(Instruction Fetch,指令获取),ID(Instruction Decode,指令解码),EX(Execution,指令执行),MEM(Memory Access,内存读写)和 WB(Write Back to Register,写回寄存器)
  2. CPI 一般为 N( N 代表阶段数目,一般情况下 N = 5 )
  3. 依然以指令为单位,只不过一条指令被分为更细的几个阶段来执行,这样可以减少阶段数不同引起的单位指令执行时间的误差。例如 lw 指令需要经历全部的 5 个阶段,但是 sw 指令则只需要经历 4 个阶段(没有 WB),因此当一定数量的等量 lw 和 sw 指令连续出现的时候,平均阶段数会趋近于 4.5,而在单周期处理器中则是 5(为了考虑 lw),很明显后者的误差会更大一些
  4. cycle time 取决于耗时最长的阶段(一般是 MEM)
  5. 单位指令执行时间 = N * ( T / N )(取平均值,CPI * 平均 cycle time,平均 cycle time 近似为总时长的 1/N)

流水线处理器

在这里插入图片描述

  1. 在多周期处理器的基础上进一步优化
  2. 平均 CPI 为 1(当指令数量很大 > 10000 时,最开始 4 个 cycle 的指令填充和 最后 4 个 cycle 的指令排空可以忽略不计,可以近似认为执行 m 条指令消耗 m( m >> 8 )个时钟周期,因此平均 CPI = 1)
  3. 不再以指令为单位。与多周期不同,流水线以每个阶段为单位,一个阶段内可能有多条指令在同时执行(并行)。例如当一条指令在 EX 阶段时,它的上一条指令可能在 MEM 阶段,而下一条指令可能在 ID 阶段,理论上它们是同时执行的
  4. cycle time 取决于耗时最长的阶段(一般是 MEM)
  5. 单位指令执行时间 = 1 * ( T / N )
  6. 可能存在三类冒险问题:结构冒险( Structural Hazard )、数据冒险( Data Hazard )以及控制冒险( Control Hazard )
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值