【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 )
  • 48
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
一、 设计目标 设计目的: 设计一个含有36条指令MIPS单周期处理器,并能将指令准确的执行并烧写到试验箱上来验证 设计初衷 1、理解MIPS指令结构,理解MIPS指令集中常用指令的功能和编码,学会对这些指令进行归纳分类。 2、了解熟悉MIPS体系中的处理器结构 3、熟悉并掌握单周期处理器CPU的原理和设计 4、进一步加强Verilog语言进行电路设计的能力 二、实验设备 1、装有xilinx ISE的计算机一台 2、LS-CPU-EXB-002教学系统实验箱一台 三、实验任务 1.、学习 MIPS 指令集,深入理解常用指令的功能和编码,并进行归纳确定处理器各部件的控制码,比如使用何种 ALU 运算,是否写寄存器堆等。 2、单周期 CPU 是指一条指令的所有操作在一个时钟周期内执行完。设计中所有寄存器和存储器都是异步读同步写的,即读出数据不需要时钟控制,但写入数据需时钟控制。 故单周期 CPU 的运作即:在一个时钟周期内,根据 PC 值从指令 ROM 中读出相应的指令,将指令译码后从寄存器堆中读出需要的操作数,送往 ALU 模块,ALU 模块运算得到结果。 如果是 store 指令,则 ALU 运算结果为数据存储的地址,就向数据 RAM 发出写请求,在下一个时钟上升沿真正写入到数据存储器。 如果是 load 指令,则 ALU 运算结果为数据存储的地址,根据该值从数据存 RAM 中读出数据,送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果非 load/store 操作,若有写寄存器堆的操作,则直接将 ALU 运算结果送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果是分支跳转指令,则是需要将结果写入到 pc 寄存器中的。
1. 处理器的基本结构 处理器是计算机中最重要的组成部分之一,它负责执行指令、存储和处理数据。处理器的基本结构包括运算器、控制器、寄存器、存储器和总线。 - 运算器:负责执行算术和逻辑运算,包括加法、减法、乘法、除法、与、或、非等操作。 - 控制器:负责管理指令的执行顺序和处理器的操作模式,包括指令译码、指令执行、分支控制、中断处理等。 - 寄存器:处理器内部的一种高速存储器,用于暂时存储指令和数据。常见的寄存器包括累加器、程序计数器、指令寄存器等。 - 存储器:计算机用于存储程序和数据的设备,包括内存、硬盘、U盘等。 - 总线:计算机内部各个组成部分之间传输数据和指令的通道,包括地址总线、数据总线和控制总线。 2. 处理器指令集和编程模型 处理器指令集是处理器能够执行的操作的集合,包括算术操作、逻辑操作、传输操作等。不同的处理器有不同的指令集,例如x86指令集、ARM指令集等。 编程模型是指程序员在编写程序时所使用的抽象模型,它描述了程序员如何使用处理器指令集来编写程序。常见的编程模型包括传统的CISC模型和现代的RISC模型。 3. 处理器的性能指标 处理器的性能指标包括时钟频率、IPC、吞吐量和延迟等。 - 时钟频率:处理器内部时钟的运行频率,通常以GHz为单位。 - IPC(Instructions Per Cycle):每个时钟周期处理器执行的指令数量。 - 吞吐量:单位时间内处理器能够执行的指令数量。 - 延迟:指令从发出到执行完成所需要的时间。 4. 处理器的发展历程 处理器的发展历程经历了从单核心到多核心的演变,以及从CISC模型到RISC模型的转变。 - 单核心处理器:早期的计算机使用单核心处理器处理器的性能主要依赖于时钟频率的提升。 - 多核心处理器:随着计算机应用的发展,多核心处理器逐渐被引入计算机中,可以同时执行多个任务,提高了计算机的并行处理能力。 - RISC模型:在处理器指令集设计上,RISC模型强调简洁、规范的指令集,使得处理器的设计更加高效,提高了处理器的性能。 5. 处理器的未来发展方向 处理器的未来发展主要集中在以下几个方向: - 集成度的提高:将更多的处理器核心、缓存、内存控制器等集成到处理器中,提高处理器的性能。 - 异构计算:在处理器中引入异构计算单元,例如GPU、FPGA等,提高处理器的计算能力。 - 量子计算:引入量子计算的技术,实现更高效的计算处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值