计算机组成原理 — CPU 的结构和功能


大家好呀!我是小笙,本章我主要分享计算机组成原理的 CPU 的结构和功能知识,希望内容对你有所帮助!

CPU 的结构和功能

CPU 概述

CPU实质包括运算器和控制器两大部分(运算器的功能上述已经介绍:实现算术运算以及逻辑运算),以控制器的功能为重点来讲述

控制器概述

控制器负责协调并控制计算机各部件执行过程的指令序列,其基本功能是取指令、分析指令和执行指令

  • 取指令
  • 分析指令
  • 执行指令。发出各种操作命令
  • 控制程序输入以及结果的输出
  • 总线管理
  • 处理异常情况和特殊情况

CPU 框架图

  • 寄存器用于存储当前指令的地址
  • 控制器 CU 用于控制指令(获取分析以及执行)
  • 运算器 ALU 用于完成算术运算以及逻辑运算
  • 中断系统主要用于处理异常的情况以及特殊的请求

CPU 寄存器

用户可见寄存器(通常CPU执行机器语言访问的寄存器为用户可见寄存器)

  • 通用寄存器

    通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器

  • 数据寄存器

    存放操作数(满足各种数据类型)

  • 地址寄存器

    存放地址,也可以用于特殊的寻址方式 段取值 栈指针

  • 条件码寄存器

    存放条件码,可作程序分支的依据 如:正、负、零、溢出以及进位等

控制和状态寄存器(一类寄存器用于控制CPU的操作或运算)

  • 控制寄存器

    PC -> MAR -> M -> MDR -> IR (除 PC 外,其他用户均不可见)

  • 状态寄存器

    PSW 寄存器 (存放程序状态字)

控制单元 CU

CU 产生全部指令的微操作命令序列

  • 组合逻辑设计方法,为硬连线逻辑
  • 微程序设计方法,为存储逻辑

指令周期

概述

指令周期:CPU 取出并执行一条指令所需要的全部时间

完成一条指令普遍需要:

  • 取指、分析(取指周期)
  • 执行 (执行周期)

每条指令的指令周期不同

image-20240114165421391

带有中断周期的指令周期(复杂)

指令周期流程:取值 -> 间接 -> 执行 -> 中断

image-20240114165642282

CPU的工作周期包括四个周期,分别是取值周期 - 间址周期 - 执行周期 - 中断周期,为了区别它们,在CPU内可设置4个标志触发器(状态 1 表示有效)

指令周期的数据流

  1. 取指周期数据流

    image-20240114225644256
  2. 间址周期数据流

    前提:取指周期结束,CU 便检查 IR 中的内容,以确定其是否有间址操作,如果需要间址操作,则 MDR 中指示形式地址的右 N 位将被送到 MAR

    image-20240114225828240
  3. 执行周期数据流

    差异较多,下面章节详解

  4. 中断周期数据流

    CPU 进入中断周期要完成一系列操作,其中 PC 当前的内容必须保存起来,以待执行完中断服务程序后可以准确返回到该程序的间断处

    image-20240114230108919

指令流水

概述

如何提高机器速度?

  • 提高访存速度 (高速芯片、Cache等)
  • 提高 I/O 和主机之间的传送速度(中断、DMA、通道、I/O处理机等)
  • 提高运算器速度(高速芯片、改进算法、快速进位链等)
  • 提高整机处理能力(高速器件、改进系统结构,开发系统的并行性等) 本章重点

系统的并行性概念

  • 并发:两个或两个以上的事件在同一时间段发生
  • 同时:两个或两个以上的事件在同一时刻发生(流水线方式)

并行性的等级

  • 过程级(程序、进程) 粗粒度 软件实现
  • 指令级(指令之间、指令内部) 细粒度 硬件实现

指令流水的原理

指令的串行执行

取指令 取指令部件 ;执行指令 执行指令部件

image-20240120110314920

指令的二级流水

取指和执行阶段事件上完全重叠,指令周期减半,速度提高一倍

image-20240120111244761

影响指令流水效率加倍的因素

  • 执行时间 > 取指时间

    取指令部件 ——> 指令部件缓冲区 ——> 执行指令部件

  • 条件转移指令对指令流水的影响

    必须等上条指令执行结束,才能确定下条指令的地址造成时间的损失

指令的六级流水

image-20240120112103810

影响流水线性能的因素

  • 结构相关 不同指令争用同一功能部件产生资源冲突

    解决方法:停顿、指令存储器和数据存储器分开、指令预取技术(适用于访存周期短的情况)

  • 数据相关 不同指令因重叠操作,可能改变操作数的读/写 访问顺序

    解决办法:后推法(类似停顿)、采用旁路技术(不需要等待计算结果并写入到寄存器再读取,可以等计算出结果则可以读取该数据)

    • 写后读相关(RAW)

      需要读取到写之后的寄存器里的数据

      image-20240120114140091
    • 读后写相关(WAR)

      需要读取到写之前的寄存器的数据

    • 写后写相关(WAW)

  • 控制相关 有指令转移引起(类似于条件判断)

    image-20240120115326662

流水线的性能

  • 吞吐率

    单位时间内流水线所完成指令或者输出结果的数量

    对于m段的指令流水线而言,若各段的时间均为 △t 的情况

    • 最大吞吐率

    • 实际吞吐率

      连续处理 n 条指令的吞吐率

      image-20240120115723738
  • 加速比 Sp

    m 段的流水线的速度与等功能的非流水线的速度之比

    • 设流水线隔断时间为 △t ,完成 n 条指令在 m 段流水线共需时间

      image-20240120120043130

    • 完成 n 条指令在等效的非流水线上的共需要时间

      T = nm* △t

    • 因此加速度比 Sp 求得如下

      image-20240120120107104
  • 效率

    流水线中各功能段的利用率

    效率 = 流水线各段处于工作时间的时空区 / 流水段中各段总的时空区

    image-20240120120721200 image-20240120120520171

流水线的多发技术

image-20240120121412826
  • 超标量技术

    • 每个时钟周期内可 并发多条独立指令:配置多个功能部件
    • 不能调整指令的执行顺序:通过编译优化技术,把可并行执行的指令搭配起来
  • 超流水线技术

    在同一个时钟周期内再分段,但是依旧不能调整指令的执行顺序

  • 超长指令字技术

    由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位)

流水线结构

  • 指令流水线结构

    完成一条指令分成6段,每段需要一个时钟周期,并且每个段之间需要加上锁存(用于保存前面流水段的操作结果以及为下面的流水提供操作数据等功能)

  • 运算流水线

    完成浮点加减法运算可分为 对阶、尾数求和、规格化三段

    image-20240120122421698

中断系统

概述

引起中断的各种因素

  • 人为设置的各种因素,如:转管指令(通常出现在流水线处理器的上下文中,它们是用来控制流水线操作的一组指令)

    image-20240127110222536
  • 程序性事故,如溢出、操作码等由于程序设计不周导致的

  • 硬件故障,如电源掉电

  • I/O设备(I/O设备被启动以后,一旦准备就绪,便向CPU发出中断请求)

  • 外部事件,如键盘中断现行程序


中断请求标记和中断判优逻辑

中断请求标记 INTR

各中断源如何向 CPU 提出请求?

一个请求源对应一个中断请求标志触发器,如果有多个中断请求标记,将会组成中断请求标记寄存器,如下图

中断请求标记触发器有的是集中在 CPU 的中断系统内,也有的是分散在各个中断源的接口电路中

image-20240127112302902

中断请求触发器越多,说明计算机处理中断的能力越强


中断判优逻辑

各中断源如果同时向 CPU 提出请求怎么办?

  • 硬件实现(排队器)

    • 分散在各个中断源的接口电路中 (链式排队器)

    • 集中在 CPU 内部

      image-20240127113328565
  • 软件实现 (程序查询)

    编写代码实现查询中断服务程序

    image-20240127113850201

中断服务程序入口地址查询

如何寻找中断服务执行入口地址?

通常有两种方法寻找入口地址:硬件向量法和软件查询法

硬件向量法
  1. 输入:排队器的输出 ;输出:中断向量地址

    image-20240127114327506

  2. 通过输出的向量地址,再如下的中断向量地址表里去查询中断服务程序入口地址

    image-20240127114442285
软件查询法
  • 用软件寻找中断服务程序入口地址的方法称为软件查询法,框图类似中断判优逻辑的软件实现
  • 相比于硬件向量法,软件查询查询时间长,但是方便用户使用更加灵活

中断响应

CPU 在什么情况下以各种方式来响应中断?

响应中断的条件
  • 响应中断条件:允许中断触发器 EINT = 1

  • 响应中断的时间:指令执行周期结束时刻由 CPU 发出查询条件

    image-20240127115908258
  • 中断隐指令

    所谓中断隐指令,即在机器指令系统中没有的指令,它是CPU在中断周期内由硬件自动完成的一条指令

    • 保存程序断点:断点存于特定地址内 ; 断点进栈

    • 寻找服务程序入口地址(如上)

    • 硬件关中断(防止其他优先级低的中断请求打断当前的中断)

      image-20240128114828345

保护现场和恢复现场

保护现场和恢复现场是CPU在中断处理过程中采取的操作,通常用于单片机和嵌入式系统

如何保护现场?

  • 保护断点: 中断隐指令完成如上
  • 保护CPU内部各寄存器内容: 中断服务程序完成

中断服务程序的四个步骤

  • 保护现场 PUSH (保存在堆栈中)
  • 其他服务程序 视不同请求源而定
  • 恢复现场 POP
  • 中断返回 IRET

如何恢复现场?

恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作也由中断服务程序完成如上


多重中断

概述

当CPU正在执行某个中断服务程序时,另一个中断源又提出了新的中断请求,而CPU又响应了这个新的请求,暂时停止正在运行的服务程序,转去执行新的中断服务程序,这称为多重中断,又称中断嵌套

image-20240128120130034

实现多重中断的条件
  • 提前设置开中断指令

  • 优先级别高的中断源有权中断优先级别低的中断源

    image-20240128120734528
屏蔽技术和屏蔽字

屏蔽技术

作用:使某个中断源无法向 CPU 提出中断请求,也不能参加中断优先级排队器

触发器 D、中断请求触发器 INTR、 屏蔽触发器 MASK

如果排队器集中设在 CPU 内,加上屏蔽条件,就可组成具有屏蔽功能的排队器如下图

image-20240128122848111

屏蔽字

对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成一个屏蔽寄存器,屏蔽寄存器的内容称为屏蔽字

image-20240128150151276

屏蔽技术可以改变改变处理优先级等级

优先级包含响应优先级和处理优先级

  • 响应优先级是指 CPU 响应各中断源请求的优先次序,这种次序往往是硬件线路已设置好的,不便于改动
  • 处理优先级是指 CPU 实际对各中断源请求的处理优先次序(如果不采用屏蔽技术,响应的优先次序就是处理的优先次序)

修改屏蔽字前后的变化

image-20240128150903024

image-20240128150748209 image-20240128150810479

新屏蔽字的设置

image-20240128151421638
多重中断的断点保护

多重中断时,每次中断出现的断点都必须保存起来

  • 断点可以保存在堆栈中,由于堆栈先进后出的特点,实现对断点的保存和恢复
  • 断点也可保存在特定的存储单元内,在中断服务程序中的开中断指令之前,必须先将 0地址单元的内容转存至其他地址单元中,才能真正保存每一个断点
  • 32
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CPU全称为中央处理器,是计算机的核心部件之一。它由运算器、控制器和存储器组成。运算器负责执行各种算术和逻辑运算,控制器负责指挥和协调计算机各部件的工作,存储器则用于存储数据和指令CPU是计算机的大脑,决定了计算机的计算能力。它是一种小型的计算机芯片,嵌入在各种设备上,如台式机、笔记本电脑或平板电脑的主板上。通过在单个计算机芯片上放置数十亿个微型晶体管来构建CPUCPU结构可以从逻辑上划分为控制单元、运算单元和存储单元,它们通过内部总线连接。控制单元负责控制计算机的工作流程,运算单元负责执行各种算术和逻辑运算,存储单元则用于存储数据和指令CPU与主存之间通过地址进行通信,CPU从主存中读取数据和指令,并将结果写回主存。主存也被称为内存,是计算机中进行程序运行和数据存储的地方。主存分为只读存储器(ROM)、随机存储器(RAM)和高速缓冲存储器(Cache)。CPU与内存之间的工作关系是:执行一个程序时,首先将程序的代码和数据加载到内存中,然后CPU从内存中读取指令,解析并执行它们,最终得到程序的结果。CPU还包含寄存器,它是一种高速的存储器,用于临时存放数据和指令,以提高计算效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [计算机组成原理——CPU](https://blog.csdn.net/include_zrl/article/details/112382253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Al_tair

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

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

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

打赏作者

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

抵扣说明:

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

余额充值