第8章 CPU 的结构和功能 8.1 CPU 的结构 8.3 指令流水 8.2 指令周期 8.4 中断系统.

Slides:



Advertisements
Similar presentations
计算机组织与结构复习.
Advertisements

计算机组成原理 第三讲 计算机科学与技术学院 舒燕君.
计算机组成原理试题解析.
第5章 中断系统 5.1 中断的概述  5.2 AT89C51中断系统 5.3 中断系统的应用.
第五章 中央处理器 5.1 CPU的组成和功能 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器 5.5 微程序设计技术
信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
将向量数据表示和流水线技术结合起来,构成向量流水处理机,简称向量处理机(Vector Processor)
计算机系统与网络技术 第1讲 微型计算机硬件基础 讲课教师:常姗
2017年3月5日 单片机原理与应用 背景知识调查.
计算机系统结构作业题解 第1章 作1.2 如有一个经解释实现的计算机,可以按功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第一级的一条指令需K(ns)时间,那么执行第2、3、4级的一条指令各需要用多少时间(ns)? 解:∵第二级的一条指令需第1级的N条指令解释 ∴第二级的一条指令执行时间为NKns;
第七章 计算机输入输出系统与 接口技术.
电子数字计算机 计算机性能 计算机硬件 计算机软件 多级层次结构
第3章 流水线技术.
实验四 利用中规模芯片设计时序电路(二).
第三章 计算机核心部件及其 工作原理.
第六章 中央处理器 中央处理器,简称CPU,是整个计算机的核心,它包括运算器和控制器。
计算机组成原理 第二十一讲 计算机科学与技术学院 舒燕君.
第五章 控制单元.
第8章 中 断 8.1 概 述 为什么要用中断 中断的出现,会带来以下好处。 (1)同步操作 (2)实现实时处理 (3)故障处理.
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
第七章 控制器 7.1 控制器的组成及指令的执行 7.2 控制方式和时序的产生 7.3 微程序控制器 7.4 微程序控制器及其微程序设计举例
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
電腦操作 會考電腦 浸信會永隆中學.
第2章 微型计算机基础.
3.7 CPU模型 CPU设计步骤: 一. 拟定指令系统 二. 确定总体结构和数据通路 1. 指令格式 2. 寻址方式 3. 操作类型
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
总 复 习.
嵌入式微处理器系统 第二章 处理器技术(1) 北京大学软件与微电子学院.
CPU的主要功能是执行存放在主存储器中的程序即机器指令。CPU是由控制器和运算器。
第五节 CPU模型 拟定指令系统 确定总体结构 安排时序 拟定指令流程和微命令序列。 形成控制逻辑 CPU设计步骤:
8.1 CPU 的结构 8.3 指令流水 8.2 指令周期 8.4 中断系统.
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
本章主要内容 CPU的功能和组成 控制器控制原理 指令周期(★★★) 时序产生器和控制方式 硬布线控制器 微程序控制器(★★★)
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
课程设计.
第二部分 微机原理 第2章 MCS-51单片机 的内部结构 主讲教师:喻红.
计算机组成原理 任课教师:石磊 教授 郑州大学信息工程学院计算机系
第5章 计算机、微型计算机的组成及 工作过程.
逆向工程-汇编语言
数据挖掘工具性能比较.
CPU结构和功能.
版权所有,引用请注明出处 第六章、中央控制器 原著 谭志虎 主讲(改编) 蒋文斌.
计算机组成与系统结构 陈泽宇 副教授.
中 断 王 静 阜阳师范学院 计算机与信息工程学院.
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
计算机组成原理 课程设计.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
2019/4/29 计算机组成原理 辅导教师:陆明强.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第十章 输入输出程序设计 10.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
College of Computer Science & Technology
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
24 or 1024? PWN Jawbone Up24 手环.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第3章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第5章 中 央 处 理 器 5.1 CPU的功能和组成 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第8章 CPU 的结构和功能 8.1 CPU 的结构 8.3 指令流水 8.2 指令周期 8.4 中断系统

8.1 CPU 的结构 一、 CPU 的功能 1. 控制器的功能 取指令 指令控制 分析指令 操作控制 执行指令,发出各种操作命令 时间控制 1. 控制器的功能 取指令 指令控制 分析指令 操作控制 执行指令,发出各种操作命令 时间控制 控制程序输入及结果的输出 总线管理 处理中断 处理异常情况和特殊请求 数据加工 2. 运算器的功能 实现算术运算和逻辑运算

8.1 二、CPU 结构框图 1. CPU 与系统总线 指令控制 操作控制 时间控制 数据加工 处理中断 PC IR CU 时序电路 ALU 寄存器 中断系统 CPU 控制总线 数据总线 地址总线 ALU 寄存器 中断 系统 CU

8.1 2. CPU 的内部结构 … ALU 内部 数据总线 状态标志 寄存器 C P U 移位 取反 算术和 布尔逻辑 CU 中断 系统 内部 数据总线 寄存器 CU 中断 系统 ALU 控制信号 … C P U

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

8.1 2. 控制和状态寄存器 3. 举例 (1) 控制寄存器 (2) 状态寄存器 PC MAR M MDR IR 控制 CPU 操作 2. 控制和状态寄存器 (1) 控制寄存器 PC MAR M MDR IR 控制 CPU 操作 其中 MAR、MDR、IR 用户不可见 PC 用户可见 (2) 状态寄存器 状态寄存器 存放条件码 PSW 寄存器 存放程序状态字 3. 举例 Z8000 8086 MC 68000

8.1 四、 控制单元 CU 和中断系统 五、ALU 1. CU 产生全部指令的微操作命令序列 2. 中断系统 组合逻辑设计 微程序设计 硬连线逻辑 存储逻辑 参见 第4篇 2. 中断系统 参见 8.4 节 五、ALU 参见 第6章

8.2 指 令 周 期 一、 指令周期的基本概念 1 . 指令周期 取出并执行一条指令所需的全部时间 取指、分析 取指周期 完成一条指令 8.2 指 令 周 期 一、 指令周期的基本概念 1 . 指令周期 取出并执行一条指令所需的全部时间 取指、分析 取指周期 完成一条指令 执行 执行周期 取指阶段 取指周期 执行阶段 执行周期 (取指、分析) (执行指令) 指令周期

8.2 2. 每条指令的指令周期不同 NOP ADD mem MUL mem 取指周期 指令周期 取指周期 执行周期 指令周期 取指周期 2. 每条指令的指令周期不同 取指周期 指令周期 NOP 取指周期 执行周期 指令周期 ADD mem 取指周期 执行周期 指令周期 … MUL mem

8.2 3. 具有间接寻址的指令周期 4. 带有中断周期的指令周期 取指周期 间址周期 指令周期 执行周期 取指周期 间址周期 指令周期 3. 具有间接寻址的指令周期 取指周期 间址周期 指令周期 执行周期 4. 带有中断周期的指令周期 取指周期 间址周期 指令周期 执行周期 中断周期

8.2 5. 指令周期流程 否 取指周期 有间址吗? 是 间址周期 否 执行周期 有中断吗? 是 中断周期

8.2 6. CPU 工作周期的标志 CPU 访存有四种性质 取 指令 取指周期 取 地址 间址周期 CPU 的 4个工作周期 取 操作数 取 指令 取指周期 取 地址 间址周期 CPU 的 4个工作周期 取 操作数 执行周期 存 程序断点 中断周期 FE D IND INT CLK 1 EX

8.2 二、 指令周期的数据流 1. 取指周期数据流 存储器 CPU 地址总线 数据总线 控制总线 PC MAR +1 CU IR IR 1. 取指周期数据流 存储器 CPU 地址总线 数据总线 控制总线 PC MAR +1 CU IR IR MDR

8.2 2. 间址周期数据流 MDR CU MAR CPU 地址总线 数据总线 控制总线 PC IR 存储器 MDR

8.2 3. 执行周期数据流 4 . 中断周期数据流 不同指令的执行周期数据流不同 MDR CU MAR CPU 地址总线 数据总线 3. 执行周期数据流 不同指令的执行周期数据流不同 4 . 中断周期数据流 MDR CU MAR CPU 地址总线 数据总线 控制总线 PC 存储器

8.3 指 令 流 水 一、如何提高机器速度 提高整机处理能力 高速器件 改进系统结构 ,开发系统的并行性 1. 提高访存速度 高速芯片 8.3 指 令 流 水 一、如何提高机器速度 1. 提高访存速度 高速芯片 Cache 多体并行 2. 提高 I/O 和主机之间的传送速度 中断 DMA 通道 I/O 处理机 多总线 3. 提高运算器速度 高速芯片 改进算法 快速进位链 提高整机处理能力 高速器件 改进系统结构 ,开发系统的并行性

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

8.3 三、指令流水原理 1. 指令的串行执行 2. 指令的二级流水 取指令 取指令部件 完成 总有一个部件 空闲 取指令 1 执行指令 1 取指令 2 执行指令 2 取指令 3 执行指令 3 … 取指令 取指令部件 完成 总有一个部件 空闲 执行指令 执行指令部件 完成 2. 指令的二级流水 取指令 1 执行指令 1 取指令 2 执行指令 2 取指令 3 执行指令 3 指令预取 若 取指 和 执行 阶段时间上 完全重叠 指令周期 减半 速度提高 1 倍

8.3 3. 影响指令流水效率加倍的因素 (1) 执行时间 > 取指时间 取指令 部件 指令部件 缓冲区 执行指令 3. 影响指令流水效率加倍的因素 (1) 执行时间 > 取指时间 取指令 部件 指令部件 缓冲区 执行指令 (2) 条件转移指令 对指令流水的影响 必须等 上条 指令执行结束,才能确定 下条 指令的地址, 造成时间损失 猜测法 解决办法 ?

8.3 4. 指令的六级流水 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 完成 一条指令 6 个时间单位 串行执行 4. 指令的六级流水 CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 完成 一条指令 6 个时间单位 串行执行 6 × 9 = 54 个时间单位 六级流水 14 个时间单位

8.3 三、影响指令流水线性能的因素 1. 结构相关 不同指令争用同一功能部件产生资源冲突 程序的相近指令之间出现某种关联 1. 结构相关 不同指令争用同一功能部件产生资源冲突 程序的相近指令之间出现某种关联 使指令流水出现停顿,影响流水线效率 CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 解决办法 • 停顿 指令 1 与指令 4 冲突 指令 2 与指令 5 冲突 指令1、指令3、指令 6 冲突 … • 指令存储器和数据存储器分开 • 指令预取技术 (适用于访存周期短的情况)

8.3 2. 数据相关 不同指令因重叠操作,可能改变操作数的 读/写 访问顺序 写后读相关(RAW) SUB R1,R2,R3 ADD R4,R5,R1 ;(R2) (R3) R1 ;(R5)+(R1) R4 读后写相关(WAR) STA M,R2 ADD R2,R4,R5 ;(R2) M 存储单元 ;(R4)+(R5) R2 写后写相关(WAW) MUL R3,R2,R1 SUB R3,R4,R5 ;(R2)× (R1) R3 ;(R4) (R5) R3 解决办法 后推法 采用 旁路技术

8.3 3. 控制相关 由转移指令引起 BNE 指令必须等 CPX 指令的结果 才能判断出 是转移 还是顺序执行 LDA # 0 3. 控制相关 由转移指令引起 BNE 指令必须等 CPX 指令的结果 才能判断出 是转移 还是顺序执行 LDA # 0 LDX # 0 INX CPX # N BNE M DIV # N STA ANS ADD X, D M

8.3 3. 控制相关 设 指令3 是转移指令 t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 转移损失 WO EI 3. 控制相关 WO EI FO CO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令15 指令16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 转移损失 t 设 指令3 是转移指令

8.3 四、流水线性能 Δ n m ·Δ + (n-1) · Δ 1. 吞吐率 单位时间内 流水线所完成指令 或 输出结果 的 数量 1. 吞吐率 单位时间内 流水线所完成指令 或 输出结果 的 数量 设 m 段的流水线各段时间为Δ t 最大吞吐率 Tpmax = Δ 1 t 实际吞吐率 连续处理 n 条指令的吞吐率为 Tp = m ·Δ + (n-1) · Δ n t

8.3 2. 加速比 Sp Δ Δ m · +(n-1) · nm · nm m + n -1 Δ 设流水线各段时间为 Δ t 完成 n 条指令在 m 段流水线上共需 T = m · + (n-1) · t Δ 完成 n 条指令在等效的非流水线上共需  T ′= nm · t Δ Sp = m · +(n-1) · nm · = nm m + n -1 Δ t  则

8.3 3. 效率 流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态 3. 效率 流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态 mΔt 3 1 2 4 5 … … … n-1 n T时间 S空间 空间 S4 S3 S2 S1 (n-1) Δt

8.3 3. 效率 mnΔt m(m + n -1) Δt 流水线中各功能段的 利用率 效率 = = 流水线各段处于工作时间的时空区 3. 效率 流水线中各功能段的 利用率 流水线各段处于工作时间的时空区 流水线中各段总的时空区 效率 = m(m + n -1) Δt = mnΔt mΔt 3 1 2 4 5 … … … n-1 n T时间 S空间 空间 S4 S3 S2 S1 (n-1) Δt

8.3 五、流水线的多发技术 1. 超标量技术 每个时钟周期内可 并发多条独立指令 配置多个功能部件 不能调整 指令的 执行顺序 1. 超标量技术 每个时钟周期内可 并发多条独立指令 配置多个功能部件 不能调整 指令的 执行顺序 通过编译优化技术,把可并行执行的指令搭配起来 IF ID EX WR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 时钟 周期 指令序列

8.3 2. 超流水线技术 在 一个时钟周期 内 再分段 ( 3 段) 在一个时钟周期内 一个功能部件使用多次( 3 次) 2. 超流水线技术 在 一个时钟周期 内 再分段 ( 3 段) 在一个时钟周期内 一个功能部件使用多次( 3 次) 不能调整 指令的 执行顺序 靠编译程序解决优化问题 IF ID EX WR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 时钟周期 指令序列 流水线速度是原来速度的 3 倍

8.3 3. 超长指令字技术 由编译程序 挖掘 出指令间 潜在 的 并行性, 将 多条 能 并行操作 的指令组合成 一条 3. 超长指令字技术 具有 多个操作码字段 的 超长指令字(可达几百位) 由编译程序 挖掘 出指令间 潜在 的 并行性, 将 多条 能 并行操作 的指令组合成 一条 采用 多个处理部件 IF ID EX WR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 时钟周期 指令序列

8.3 六、流水线结构 1. 指令流水线结构 完成一条指令分 7 段, 每段需一个时钟周期 若 流水线不出现断流 1 个时钟周期出 1 结果 1. 指令流水线结构 完成一条指令分 7 段, 每段需一个时钟周期 取指令部件 指令译码部件 地址形成部件 取操作数部件 操作执行部件 回写结果部件 修改指令指针部件 锁存 若 流水线不出现断流 1 个时钟周期出 1 结果 不采用流水技术 7 个时钟周期出 1 结果 理想情况下,7 级流水 的速度是不采用流水技术的 7 倍

8.3 2. 运算流水线 完成 浮点加减 运算 可分 对阶、尾数求和、规格化 三段 分段原则 每段 操作时间 尽量 一致 锁存器 2. 运算流水线 完成 浮点加减 运算 可分 对阶、尾数求和、规格化 三段 锁存器 对阶功能部件 第一段 尾数加部件 锁存器 第二段 规格化部件 锁存器 第三段 分段原则 每段 操作时间 尽量 一致

8.4 中断系统 一、概述 1. 引起中断的各种因素 … (1) 人为设置的中断 如 转管指令 (2) 程序性事故 1. 引起中断的各种因素 转管指令 … 管理程序 (1) 人为设置的中断 如 转管指令 (2) 程序性事故 溢出、操作码不能识别、除法非法 (3) 硬件故障 (4) I/O 设备 (5) 外部事件 用 键盘中断 现行程序

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

8.4 二、中断请求标记和中断判优逻辑 1. 中断请求标记 INTR 一个请求源 一个 INTR 中断请求标记触发器 2 3 4 5 n 掉电 过热 阶上溢 主存读写校验错 非法除法 键盘输入 打印机输出 INTR 分散 在各个中断源的 接口电路中 INTR 集中 在 CPU 的中断系统 内

8.4 2. 中断判优逻辑 (1) 硬件实现(排队器) ① 分散 在各个中断源的 接口电路中 链式排队器 ② 集中 在 CPU 内 2. 中断判优逻辑 (1) 硬件实现(排队器) ① 分散 在各个中断源的 接口电路中 链式排队器 参见 第五章 ② 集中 在 CPU 内 INTP1 INTP2 INTP3 INTP4 1 1 & 1 & 1 & INTR1 INTR2 INTR3 INTR4 INTR1 、 INTR2 、 INTR3 、 INTR4 优先级 按 降序 排列

8.4 (2) 软件实现(程序查询) A、B、C 优先级按 降序 排列 转 A 的服务程序 入口地址 转 B 的服务程序 入口地址 是 转 A 的服务程序 入口地址 否 是否 B 请求? 是 转 B 的服务程序 入口地址 否 是否 C 请求? 是 转 C 的服务程序 入口地址 否 …

8.4 三、中断服务程序入口地址的寻找 1. 硬件向量法 向量地址 12H、13H、14H 入口地址 200、 300、 400 向量地址 1. 硬件向量法 向量地址 形成部件 … 中断向量 排队器输出 12 H 13 H 14 H JMP 200 JMP 300 JMP 400 主存 入口地址 200 入口地址 300 入口地址 400 12 H 13 H 14 H 主存 向量地址 12H、13H、14H 入口地址 200、 300、 400

8.4 2. 软件查询法 八个中断源 1,2, 8 按 降序 排列 … 中断识别程序(入口地址 M) 地 址 说 明 指 令 M 八个中断源 1,2, 8 按 降序 排列 … 中断识别程序(入口地址 M) 地 址 说 明 指 令 M SKP DZ 1# 1# D = 0 跳 (D为完成触发器) JMP 1# SR 1# D = 1 转1# 服务程序 SKP DZ 2# JMP 2# SR 2# D = 0 跳 2# D = 1 转2# 服务程序 … SKP DZ 8# JMP 8# SR 8# D = 0 跳 8# D = 1 转8# 服务程序

8.4 四、中断响应 1. 响应中断的 条件 2. 响应中断的 时间 允许中断触发器 EINT = 1 指令执行周期结束时刻由CPU 发查询信号 至排队器 INTR1 D Q INTR2 INTRn 中断源 1 中断源 2 中断源 n … CPU 中断查询

8.4 3. 中断隐指令 (1) 保护程序断点 (2) 寻找服务程序入口地址 (3) 硬件 关中断 断点存于 特定地址( 0 号地址) 内 断点 进栈 (2) 寻找服务程序入口地址 向量地址 PC (硬件向量法) 中断识别程序 入口地址 M PC (软件查询法) (3) 硬件 关中断 INT S Q R EINT S Q R PC 向量地址 形成部件 INT 中断标记 & 1 … EINT 允许中断 ≥1 … R – S 触发器 排队器

8.4 五、保护现场和恢复现场 寄存器 内容 断点 中断隐指令 完成 1. 保护现场 中断服务程序 完成 2. 恢复现场 中断服务程序 完成 PUSH 中 断 服 务 程 序 其它服务程序 视不同请求源而定 恢复现场 POP 中断返回 IRET

8.4 六、中断屏蔽技术 1. 多重中断的概念 程序断点 k+1 , l+1 , m+1 k l m k +1 l +1 m +1 第一次 第二次 第三次 程序断点 k+1 , l+1 , m+1

8.4 2. 实现多重中断的条件 (1) 提前 设置 开中断 指令 (2) 优先级别高 的中断源 有权中断优先级别低 的中断源 主程序 A 2. 实现多重中断的条件 (1) 提前 设置 开中断 指令 (2) 优先级别高 的中断源 有权中断优先级别低 的中断源 主程序 A B C D 中断服务程序 ( A、B、 C、 D 优先级按 降序 排列) 中断 请求 B、C D A

8.4 3. 屏蔽技术 (1) 屏蔽触发器的作用 MASK = 0(未屏蔽) MASKi = 1 (屏蔽) INTR 能被置 “1” & 1 INTP1 INTP2 INTP3 INTP4 INTR1 INTR2 INTR3 INTR4 D INTR MASK Q CPU 查询 1 MASK1 MASK2 MASK3 MASK4 & D Q MASK = 0(未屏蔽) MASKi = 1 (屏蔽) INTR 能被置 “1” INTPi = 0 (不能被排队选中)

8.4 (2) 屏蔽字 … 16个中断源 1,2,3 , 16 按 降序 排列 屏 蔽 字 (2) 屏蔽字 16个中断源 1,2,3 , 16 按 降序 排列 …  优先级 屏 蔽 字 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 … 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 15 16

8.4 (3) 屏蔽技术可改变处理优先等级 响应优先级 不可改变 处理优先级 可改变(通过重新设置屏蔽字) (3) 屏蔽技术可改变处理优先等级 响应优先级 不可改变 处理优先级 可改变(通过重新设置屏蔽字) 中断源 原屏蔽字 新屏蔽字 A B C D 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 响应优先级 A→B→C→D 降序排列 处理优先级 A→D→C→B 降序排列

8.4 (3) 屏蔽技术可改变处理优先等级 t CPU 执行程序轨迹(原屏蔽字) 服务程序 B处理完 C处理完 D处理完 A处理完 主程序 (3) 屏蔽技术可改变处理优先等级 服务程序 B处理完 C处理完 D处理完 A处理完 t 主程序 A程序 B程序 C程序 D程序 A、B、C、D 同时请求中断 CPU 执行程序轨迹(原屏蔽字)

8.4 (3) 屏蔽技术可改变处理优先等级 (4) 屏蔽技术的其他作用 CPU 执行程序轨迹(新屏蔽字) 可以 人为地屏蔽 某个中断源的请求 (3) 屏蔽技术可改变处理优先等级 服务程序 D处理完 C处理完 B处理完 A处理完 t 主程序 A程序 B程序 C程序 D程序 A、B、C、D 同时请求中断 CPU 执行程序轨迹(新屏蔽字) (4) 屏蔽技术的其他作用 可以 人为地屏蔽 某个中断源的请求 便于程序控制

8.4 (5) 新屏蔽字的设置 保护现场 置屏蔽字 开中断 中断服务 关中断 恢复现场 恢复屏蔽字 中断返回 置屏蔽字 关中断 恢复屏蔽字 (5) 新屏蔽字的设置 保护现场 置屏蔽字 开中断 中断服务 关中断 恢复现场 恢复屏蔽字 中断返回 置屏蔽字 关中断 恢复屏蔽字 开中断

8.4 ? 4. 多重中断的断点保护 (1) 断点进栈 中断隐指令 完成 (2) 断点存入“ 0 ” 地址 中断隐指令 完成 中断周期 0 MAR 命令存储器写 PC MDR 断点 MDR (MDR) 存入存储器 三次中断,三个断点都存入 “ 0 ” 地址 ? 如何保证断点不丢失?

8.4 (3) 程序断点存入 “ 0 ” 地址的断点保护 地 址 内 容 说 明 ×××× 5 JMP SERVE SERVE (3) 程序断点存入 “ 0 ” 地址的断点保护 地 址 内 容 说 明 ×××× 存程序断点 5 JMP SERVE 5 为向量地址 SERVE STA SAVE … 保护现场 LDA 0 STA RETURN 0 地址内容转存 置屏蔽字 ENI 开中断 其他服务内容 … LDA SAVE 恢复现场 JMP @ RETURN 间址返回 ×××× SAVE 存放 ACC 内容 ×××× RETURN 转存 0 地址内容