计算机组成原路-中央处理器

CPU的功能和基本结构

CPU的功能

CPU的总体功能为:

  1. 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。(微指令)
  3. 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工。对数据进行算术和逻辑运算。
  5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
    运算器和控制器功能:
    在这里插入图片描述

CPU的基本结构

运算器的基本结构

  1. 算术逻辑单元:主要功能是进行算术/逻辑运算。
  2. 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
寄存器和ALU的连接方式有专用数据通路方式和CPU内部单总线方式。
专用数据通路方式:性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
CPU内部单总线方式:结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。

1)专用数据通路
在这里插入图片描述
专用数据通路不是直接用导线相连,直接用导线相连相当于多个寄存器同时并且一直向ALU传输数据。
a. 使用多路选择器MUX根据控制信号选择一路输出
b. 使用三态门可以控制每一路是否输出
2)CPU内部单总线
在这里插入图片描述

  1. 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
由于内部总线一次只能传输一组数据,不能多个寄存器同时输送数据,
因此在ALU和寄存器之间需要有“暂存寄存器”保存一次传输的数据。
同时,来自不同寄存器的输入信号不稳定时ALU也会输出结果,此时写入的是错误的,
因此需要在ALU输出位置增加暂存寄存器,等待输出稳定后在写入。
(两个操作数分别来自主存和R0,最后结果存回R0, 那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。)
  1. 累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
  2. 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
  3. 移位器:对运算结果进行移位运算。
  4. 计数器:控制乘除运算的操作步数。
    在这里插入图片描述

控制器的基本结构

  1. 程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
  2. 指令寄存器:用于保存当前正在执行的那条指令。
  3. 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
  4. 微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
  5. 时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
  6. 存储器地址寄存器:用于存放所要访问的主存单元的地址。
  7. 存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息。(MDR的输入输出控制分为MDRinE、MDRin、MDRoutE、MDRout,带E是指MDR和数据总线的数据传输控制,不带E是指MDR和CPU内部总线的数据传输控制)

CPU的总体基本结构

在这里插入图片描述
左边为运算器,右边为控制器
其中寄存器分为用户可见(可编程)的寄存器和用户不可见的寄存器。
用户可见的寄存器:通用寄存器组、程序状态寄存器PSW、程序计数器PC
用户不可见的寄存器:MAR、MDR、IR、暂存寄存器

我们可以把CPU分为ALU、寄存器、CU、中断系统四部分。
在这里插入图片描述

指令执行过程

指令周期

在这里插入图片描述
一个指令周期若干个机器周期,一个机器周期又包含若干个时钟周期。
不同指令的指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
在这里插入图片描述
CPU通过不同触发器的值来确定当前是哪个阶段
在这里插入图片描述
这四个工作周期都有访存但目的不同

指令周期数据流

指令周期数据流-取值周期

在这里插入图片描述

指令周期数据流-间址周期

在这里插入图片描述

指令周期数据流-执行周期

在这里插入图片描述

指令周期数据流-中断周期

在这里插入图片描述

指令执行方案

在这里插入图片描述
单指令周期和多指令周期方案的指令都是串行执行;流水线方案的指令是并行执行。

数据通路

CPU内部单总线方式

在这里插入图片描述
执行算术或逻辑运算的时候,Y和ALU之间是专用数据通路,若采用多总线设计则可以不设暂存寄存器Y

注意区分内部总线和系统总线,需要访存的话通过系统总线,访存相关的控制信号也通过系统总线发出

CPU内部多总线方式

采用多总线设计则可以不设暂存寄存器Y(即ALU不需要配合暂存器使用)

专用数据通路

在这里插入图片描述
数据通路和CPU内部单总线方式类似,每条指令对应的控制开关由题中的C1、C2……代替即可

数据通路的题在实际做的过程当中可能和课本上的有小的出入(比如某两个寄存器之间没有直接通路需要绕路),随机应变即可

硬布线控制器

计算机执行指令实质上是由不同的微操作(如:(PC)->MAR)组成,而不同的微操作对应着不同的微命令(如上面的微操作对应着得 微命令1:PCout、MARin 有效)。
因此执行指令的关键是按照时序发出微命令。实际上根据 指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”。这个过程对应着微操作命令的逻辑表达式。
在这里插入图片描述
根据这些逻辑表达式我们就可以完成电路的设计
在这里插入图片描述
因此进行硬布线控制器设计的关键在于确定这些逻辑表达式。
具体设计流程如下:
在这里插入图片描述
1.分析每个阶段的微操作序列
在这里插入图片描述
2.选择CPU的控制方式
3.安排微操作时序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.电路设计
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


硬布线控制器的特点:指令越多,设计和实现就越复杂,因此一般用于 RISC(精简指令集系统) 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。

微程序控制器

我们将计算机中储存的程序转化汇编代码指令,一步一步执行这些指令就能完成程序的功能。那么同样,由于指令的执行也是按照一个一个微命令(微操作)组成的,我们可以把每一步的多个微操作组合成一个微指令,一步一步执行这些微指令就能完成指令的功能。而微程序就代表了这些微指令的执行顺序。

在这里插入图片描述
因此,采用“存储程序”的思想,CPU出厂前将所有指令的“微程序”存入“控制器存储器”CM中。然而,由因为不同指令的取指、间址、中断的微程序是相同的,因此“控制器存储器”CM中的
内容大致如下:
在这里插入图片描述

具体指令功能执行流程如下:
在这里插入图片描述
在执行过程中和过程后中会有是否跳过间址周期、是否进入中断周期的问题,这些都可以由顺序逻辑通过标志位控制
在这里插入图片描述
另外,通常取指周期的微指令序列固定从#0开始存放,执行周期的微指令序列的存放根据指令操作码确定。

微指令的设计

在微程序控制器中,我们确定了指令的执行过程(分解成不同的微指令),那么这些微指令如何发出对应的微命令呢(如PCout)?答案是微命令与微操作一一对应,一个微命令对应一根输出线。有的微命令可以并行执行,因此一条微指令可以包含多个微命令。
那么如何设计这些微指令?如何确定这些微指令和微命令的对应呢?答案如下。

微指令的格式

在这里插入图片描述
水平型微指令中一条微指令能定义多个可并行的微命令;垂直型微指令中一条微指令只能定义一个微命令

微指令的编码方式

只介绍水平型微指令的编码方式

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

(1)直接编码(直接控制)方式
在这里插入图片描述
(2)字段直接编码方式
在这里插入图片描述
可以缩短微指令字长
(3)字段间接编码方式
在这里插入图片描述

微指令地址的形成方式

在这里插入图片描述
在这里插入图片描述
下地址法(断定方式)和增量计数器法是常考点。

微程序控制单元的设计

在这里插入图片描述
和硬布线的设计类似,注意补充微程序控制特有的微操作:利用下地址转移到下一条指令,取指完毕后一般题目为了简化会直接进入执行周期,此时要根据指令操作码确定跳转到当前指令执行周期的地址码
在这里插入图片描述

在这里插入图片描述

指令流水线

在这里插入图片描述
指令的流水式执行能显著提高指令的执行效率

流水线性能指标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指令流水线影响因素分类

在这里插入图片描述
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器, 其作用是保存本流水段的执行结果,提供给下一流水段使用。
各个阶段的耗时不同,为了方便流水线设计,一般以最长耗时为准将每个阶段的耗时取成一样。
1.结构相关(资源冲突)
在这里插入图片描述
解决办法:
a.后一相关指令暂停一周期
b.资源重复配置:数据存储器+指令存储器
2.数据相关(数据冲突)
在这里插入图片描述
解决办法:
a.把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插 入“NOP”两种方法。
b.数据旁路技术。
c.编译优化:通过编译器调 整指令顺序来解决数据相关。
3.控制相关(控制冲突)
在这里插入图片描述
解决办法:
a.转移指令分支预测。简单预测(永远猜true或false)、动态预测(根据历史清空动态调整)
b.预取转移成功和不成功两个控制流方向上的目标指令
c.加快和提前形成条件码
d.提高转移方向的猜准率

流水线分类

在这里插入图片描述
在这里插入图片描述

流水线的多发技术

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五段式指令流水线

在这里插入图片描述
1.运算类指令
在这里插入图片描述
2.LOAD指令
在这里插入图片描述
3.STORE指令
在这里插入图片描述
4.条件转移指令
在这里插入图片描述
5.无条件转移指令
在这里插入图片描述
在这里插入图片描述
另:只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
红外黑线循迹小车是一种智能机器人模型,它利用安装在其底座的红外传感器感知地面的颜色差异,并通过编码实现特定的路径追踪行为。通常,在这种小车上会配备一对或者四对红外传感器,分别位于车辆的前部两侧或者四周,用于检测黑色线条(如道路标记或者赛道边界)。 当红外黑线循迹小车行驶时,其核心功能之一就是能够跟随铺设在地面上的一条连续的黑色线行进。这条线可以是赛道、迷宫路径或者是简单的起点到终点路线。每个传感器都有一个特定的工作范围,一旦检测到黑色线的存在,该传感器就会向微控制器发送信号,控制电机驱动转向,使得小车沿着直线继续前进。如果线突然消失或者偏离了预设的路径,则小车需要调整方向回到原来的线上。 原路返回是红外黑线循迹小车的一种高级应用功能。当遇到某种触发条件(例如碰撞障碍物、达到预定的目标点、完成特定任务等),小车应该自动识别并返回至出发点。这一过程涉及到多种技术: 1. **路径识别**:除了跟踪单一线以外,小车还需要具备识别复杂路径的能力,并且能准确判断自身位置,以便于计算回程路线。 2. **决策机制**:基于预先设定的规则或算法,如使用PID(比例积分微分)、模糊逻辑、遗传算法或其他人工智能方法,帮助小车做出是否继续前行还是改变方向的决定。 3. **定位与导航**:小车应有定位系统,如使用陀螺仪、加速度计、磁力计等组合起来的IMU(惯性测量单元)设备,以及可能的GPS辅助,来确定其当前位置并规划回程路线。 4. **避免障碍**:在返回过程中,小车需能识别并避开沿途可能出现的障碍物,保持路径的顺畅。 5. **能量管理**:考虑到续航能力限制,小车需要高效节能的操作策略,特别是在进行复杂的路径寻找和返回操作时。 实现原路返回功能的关键在于算法设计和硬件配置的优化。这包括但不限于路径规划、避障策略、传感器校准、电池管理和微处理器控制等多个方面。同时,实际应用中还需考虑环境因素的影响,比如光线强度、地面材质反射特性等,以保证传感器的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Handsome Wong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值