【笔记】第8章 CPU的结构和功能

一、CPU的结构

1. CPU的功能

CPU的功能:指令控制、操作控制、时间控制、处理中断、数据加工

  1. 控制器的功能:取指令;分析指令;执行指令,发出各种操作命令;控制程序输入及结果输出;总线管理;处理异常情况和特殊情况
  2. 运算器的功能:实现算术逻辑和运算逻辑

2. CPU结构框图

在这里插入图片描述

3. CPU的寄存器

用户可见寄存器

  1. 通用寄存器:存放操作数,可作某种存址方式所需的专用寄存器
  2. 数据寄存器:存放操作数(满足各种数据类型),两个寄存器拼接存放双倍字长数据
  3. 地址寄存器:存放地址,其位数应满足最大的地址范围,用于特殊的寻址方式,eg:段基址,栈指针
  4. 条件码寄存器:存放条件码,可作程序分支的依据,如正、负、零、溢出、进位

控制和状态寄存器

  1. 控制寄存器
    · PC → MAR → M → MDR → IR
    · 控制CPU操作,其中MAR、MDR、IR用户不可见,PC用户可见
  2. 状态寄存器:指令执行结果的情况,计算机软硬件的状态
    · 状态寄存器:存放条件码
    · PSW寄存器:存放程序状态字

4. 控制单元CU和中断系统

  1. CPU:产生全部指令的微操作命令序列
    · 组合逻辑设计:硬连线逻辑
    · 微程序设计:存储逻辑,复杂功能设计
  2. 中断系统

5. ALU

二、指令周期

1. 指令周期的基本概念

  1. 指令周期
    · 定义:取出并执行一条指令所需的全部时间
    · 完成一条执行:取值周期(取值、分析)、执行周期(执行)
    · 不同CPU完成指令的组成不全相同
    在这里插入图片描述
  2. 每条指令的指令周期不同
    · 指令周期:取指周期,eg:NOP
    · 指令周期:取指周期+执行周期,且周期相同,eg:ADD mem
    · 指令周期:取指周期+执行周期(周期更长),eg:NUL mem
  3. 具有间接寻址的指令周期:取指周期+间址周期+执行周期
  4. 带有中断周期的指令周期:取指周期+间址周期+执行周期+中断周期
  5. 指令周期流程
    在这里插入图片描述
  6. CPU工作周期的标志
    在这里插入图片描述

2. 指令周期的数据流

  1. 取址周期数据流
    在这里插入图片描述
  2. 间址周期数据流
    在这里插入图片描述
  3. 执行周期数据流:不同指令的执行周期数据流不同
  4. 中断周期数据流:保存断点右 → 形成中断服务程序的入口地址 → 硬件关中断
    在这里插入图片描述

三、指令流水

1. 如何提高机器速度

  1. 提高访存速度:使用高速芯片、cache,多体并行
  2. 提高I/O和主机之间的传送速度:中断(解决程序控制中利用率低),DMA,通道,I/O处理机,多总线
  3. 提高运算器速度:高速芯片,改进算法,快速进位链
  4. 提高整机处理能力
    · 使用高速器件
    · 改进系统结构,开发系统的并行性

2. 系统的并行性

  1. 并行的概念
    · 并发:两个或两个以上事件在同一时间段发生
    · 同时:两个或两个以上事件在同一时刻发生(时间上相互重叠)
  2. 并行的等级
    · 程序级(程序、进程)—粗粒级—软件实现
    · 指令级(指令之间、指令内部) —细粒级—硬件实现

3. 指令流水原理

  1. 指令的串行执行(控制器利用率低)
    在这里插入图片描述
  2. 指令的二级流水
    在这里插入图片描述
  3. 影响指令流水效率加倍的因素
    · 执行时间 > 取值时间:取指令部件 → 指令部件缓冲区 → 执行指令部件
    · 条件转移指令对指令流水的影响:必须等上条指令执行结束,才能确定下条指令的地址,造成时间损失。(解决方法:分支预测)
  4. 指令的六级流水
    · FI:取指令 DI:指令译码 CO:形成操作数的地址 FO:取操作数 EI:执行 WO:结果的写回
    · 示意图(串行执行):
    在这里插入图片描述

4. 影响指令流水线性能的因素

  1. 结构相关:
    · 不同指令争用同一功能部件产生资源冲突
    · 解决方法:停顿(加入气泡),指令存储器和数据存储器分开(哈佛结构),指令预取技术(适用于访存周期短的,解决对内存资源访问的冲突)
  2. 数据相关:不同指令因重叠操作,可能改变操作数的读/写访问顺序
    · 分类:写后读相关(RAW) 读后写相关(WAR) 写后写相关(WAW)
    · 解决方法:后推法,采用旁路技术(相关专用通路,前向通道)
  3. 控制相关:由转移指令引起,造成转移损失

5. 流水线性能

  1. 吞吐率:单位时间内流水线所完成指令或输出结果的数量
    · 最大吞吐率:流水线满负荷运转,没有发生资源冲突、没有发生数据相关、没有转移指令等,这条流水线能达到的最大的吞吐率。
    · 实际吞吐率:一段时间内所完成的指令或任务数除以完成其所用的时间
    在这里插入图片描述
  2. 加速比:采用流水技术和不采用流水线技术的速度比
    在这里插入图片描述
  3. 效率:流水线中硬件的使用率
    · 建立时间(第一条指令进入到最后一条流出)
    · 排空时间(最后一条指令进入到最后一条流水排空)
    在这里插入图片描述

6. 流水线的多发技术

  1. 超标量技术
    · 每个时钟周期内可并发多条独立指令,要配置多个功能部件
    · 不能调整指令的执行顺序,通过编译优化技术,把可并行执行的指令搭配起来
  2. 超流水线技术
    · 在一个时钟周期内再分n段,在一个时钟周期内一个功能部件使用n次,流水线速度是原来速度的n倍
    · 流水段间加入锁存器,把每一个流水段的执行结果在锁存器中锁存,作为下一个流水段执行的操作信号、控制信号或操作的数据。
    ·(关键技术) 不同的指令处在同一个流水段中,相互之间的信号不能叠加。
    · 不能调整指令的执行顺序,靠编译程序解决优化问题
  3. 超长指令字技术
    · 由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字。
    · 减少取指令的时间
    · 采用多个处理部件

7. 流水线结构

  1. 指令流水线结构
    在这里插入图片描述
  2. 运算流水线
    · 运算过程复杂时,可采用流水线方式实现,提高运算器速度。
    · 浮点加减运算:对阶、尾数求和、规格化
    · 分段原则:每段操作时间尽量一致
    在这里插入图片描述

四、中断系统

1. 概述

引起中断的各种因素

  1. 人为设置的中断:转管指令
  2. 程序性故障:溢出、操作码不能识别、除法非法
  3. 硬件故障:存储器故障,硬盘坏道,电源掉电
  4. I/O设备
  5. 外部设备:键盘中断现行程序

中断系统需解决的问题(硬件+软件)

  1. 各中断源如何向CPU提出请求?
  2. 各中断源同时提出请求怎么办?
  3. CPU什么条件、什么时间、以什么方式响应中断?
  4. 如何保护现场?
  5. 如何寻找入口地址?
  6. 如何恢复现场,如何返回?
  7. 处理中断的过程中又出现新的中断怎么办?

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

中断请求标记

  • 一个请求源对应一个INTR中断请求标记触发器
  • 多个INTR组成中断请求标记寄存器
    在这里插入图片描述
  • INTR分散在各个中断源的接口电路中
  • INTR集中在CPU的中断系统内

中断判优逻辑

  1. 硬件实现(排队器)
    · 分散在各个中断源的接口电路中,eg.链式排队器
    · 集中在CPU内
    在这里插入图片描述
  2. 软件实现(程序查询)
    在这里插入图片描述

3. 中断服务程序入口地址的寻找

  1. 硬件向量法
    · 向量地址形成部件:指出目前在所有申请中断的中断源中哪一个优先级最高。即通过向量地址形成地址找到中断服务程序的入口地址。
    · 中断服务程序的入口地址:中断服务程序的入口地址存放跳转指令;在内存单元中指定位置取回
    - 速度快,灵活性低
  2. 软件查询法
    · 灵活性高:通过改变程序查询的顺序,改变中断服务程序的入口

4. 中断响应

响应中断的条件

允许中断触发器ENIT = 1

响应中断的时间

指令执行周期结束时刻由CPU发查询信号

中断隐指令

  1. 保护程序断点
    · 断点存于特定地址(0号地址)内
    · 断点进栈
  2. 寻找服务程序入口地址
    · 向量地址 → PC(硬件向量法)
    · 中断识别程序入口地址M → PC(软件查询法)
  3. 硬件关中断
    · 单重中断:执行中断服务程序时不允许再发生中断
    · 多重中断:保护程序软硬件状态的过程中,不允许发生中断
    在这里插入图片描述

5. 保护现场和恢复现场

保护现场

  1. 断点:中断隐指令完成
  2. 寄存器内容:中断服务程序完成

恢复现场:中断服务程序完成

  1. 保护现场(PUSH):保护寄存器内容
  2. 其他服务程序:视不同请求源而定
  3. 恢复现场(POP):弹出寄存器内容
  4. 中断返回(IRET)

6. 多重中断

多重中断的概念

定义:CPU在执行中断服务程序过程中,如果有新的中断源提出中断请求,且优先级高于当前执行程序,则CPU需要响应该请求。

实现多重中断的条件

  1. 提前设置开中断指令
  2. 优先级别高的中断源有权中断优先级低的中断源

屏蔽技术

  1. 屏蔽触发器的作用:使某一个中断源无法向CPU提出中断请求,也不能参加中断优先级排队器。
    在这里插入图片描述
  2. 屏蔽字:0:不屏蔽,1:屏蔽
  3. 屏蔽技术可改编处理优先等级
    · 响应优先级:不可改变,硬件电路实现
    · 处理优先级: 可改变,重新设置屏蔽字
    在这里插入图片描述
  4. 屏蔽技术的其他作用:可以人为地屏蔽某个中断源的请求
  5. 新屏蔽字的设置
    保护现场 → 置屏蔽字 → 开中断 → 中断服务 → 关中断 → 恢复现场 → 恢复屏蔽字开中断 → 中断返回

多重中断的断点保护

  1. 断点进栈:中断隐指令完成
  2. 断电存入“0”地址:中断隐指令完成
    在这里插入图片描述
  3. 程序断电存入“0”地址的断点保护
    在这里插入图片描述
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Oracle第八的课堂笔记中,我们学习了集合运算的概念和用法。集合运算是一种对数据库中的数据进行操作和查询的技术,它可以将多个查询的结果进行合并、交叉和排除等操作。 首先,我们学习了并集运算(UNION)。并集运算可以将两个或多个查询的结果合并为一个结果集,它会去除重复的行,并按照查询语句的顺序进行排序。我们需要注意的是,并集运算中要求两个查询的列数和类型必须匹配。 接着,我们学习了交集运算(INTERSECT)。交集运算可以将两个查询的结果中的共同部分提取出来,生成一个新的结果集。交集运算同样要求两个查询的列数和类型必须匹配,而且结果集中不会出现重复的行。 然后,我们学习了差集运算(MINUS)。差集运算可以从一个查询的结果中排除另一个查询的结果,生成一个新的结果集。差集运算同样要求两个查询的列数和类型必须匹配,并且结果集中不会出现重复的行。 最后,我们练习了使用这些集合运算符来解决实际问题。通过编写SQL查询语句,我们可以根据给定的条件和要求,使用并集、交集和差集等运算符来获取我们需要的结果。 总之,Oracle第八的集合运算课堂笔记和练习让我们了解了集合运算的概念和用法,以及如何使用这些运算符来操作和查询数据库中的数据。这些知识对我们在实际应用中更高效地处理和分析数据具有重要意义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊有礼貌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值