♡♡♡ 说明:
本笔记为笔者学习中国大学MOOC上计算机组成原理课程时结合课程PPT和自己总结所做,为个人笔记,如果对你有所帮助的话,我很荣幸。
课件PPT及笔记(word版、pdf版)及深入理解计算机系统pdf可在我的微信公众号 “分享猿” 回复关键词 N02获取。
计算机组成原理系列课程笔记入口:计算机组成原理[哈工大]
一、概述
1.1 I/O 系统的发展概况
-
早期
分散连接
CPU和I/O设备串行工作 程序查询方式 -
接口模块和 DMA 阶段
总线连接
CPU和I/O设备并行工作(中断方式、DMA方式) -
具有通道结构的阶段
通道负责管理I/O设备以实现主存与I/O设备之间交换信息的部件,是一个从属于CPU且不完全独立的处理器。 -
具有I/O处理机的阶段
1.2 I/O 系统的组成
- I/O软件
(1) I/O指令 CPU 指令的一部分
|操作码|命令码|设备码|
(2) 通道指令 通道自身的指令
指出数组的首地址、传送字数、操作命令
如IBM/370 通道指令为 64 位 - I/O硬件
设备 I/O接口
设备 设备控制器 通道
1.3 I/O 设备与主机的联系方式
- I/O设备编址方式
(1)统一编址 看作存储器的一部分(占用主存),用取数、存数指令
(2)不统一编址 有专门的I/O指令 - 设备选址
用设备选择电路识别是否被选中 - 传送方式
(1)串行 速度慢,但只需一根数据线,适合远距离数据通信
(2)并行 速度快,数据线多 - 联络方式
(1) 立即响应 指示灯等
(2) 异步工作采用应答信号 见下图(分并行和串行)
(3) 同步工作采用同步时标 I/O设备与CPU工作速度完全同步
- I/O 设备与主机的连接方式
(1) 辐射式连接
(2) 总线连接
便于增删设备,现代计算机基本采用
4. I/O 设备与主机信息传送的控制方式
- 程序查询方式
- 程序中断方式
I/O 工作 自身准备 CPU不查询
与主机交换信息 CPU暂停现行程序
CPU和 I/O 部分的并行工作
程序中断方式流程
- DMA方式
主存和I/O之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取) CPU和I/O并行工作
- 三种方式的CPU工作效率比较
二、外部设备
2.1 概述
外部设备大致分三类
1.人机交互设备 键盘、鼠标、打印机、显示器
2.计算机信息存储设备 磁盘、光盘、磁带
3.机-机通信设备 调制解调器等
2.2 输入设备
- 键盘
按键 → 判断哪个键按下 → 将此键翻译成ASCII码(编码键盘法) - 鼠标
机械式 金属球 电位器
光电式 光电转换器 - 触摸屏
2.3 输出设备
- 显示器
(1)字符显示 字符发生器
(2)图形显示 主观图像
(3)图像显示 客观图像 - 打印机
(1)击打式 点阵式(逐字、逐行)
(2)非击打式 激光(逐页)喷墨(逐字)
2.4 其他
- A/D、D/A
模拟/数字(数字/模拟)转换器 - 终端
由键盘和显示器组成
完成显示控制与存储、键盘管理及通信控制 - 汉字处理
汉字输入、汉字存储、汉字输出
2.5 媒体技术
- 什么是多媒体
- 多媒体计算机的关键技术
三、接口
3.1 概述
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备的状态(“忙”、“就绪”、“中断请求”)
3.2 接口的功能和组成
- 总线连接方式的I/O接口电路
(1) 设备选择线
(2) 数据线
(3) 命令线
(4) 状态线 - 接口(通用)的功能和组成
功能 | 组成 |
---|---|
选址 | 设备选择电路 |
传送命令 | 命令寄存器命令译码器 |
传送数据 | 数据缓冲寄存器 |
反映设备状态 | 设备状态标记 |
完成触发器 D
工作触发器 B
中断请求触发器 INTR
屏蔽触发器 MASK
(如:D=0,B=0设备暂停状态、D=1,B=0设备准备就绪、D=1,B=1设备准备状态、INTR=1I/O设备向CPU发出中断请求)
- I/O接口的基本组成
3.3 接口类型
- 按数据传送方式分类
并行接口 Intel 8255
串行接口 Intel 8251 - 按功能选择的灵活性分类
可编程接口 Intel 8255、 Intel 8251
不可编程接口 Intel 8212 - 按通用性分类
通用接口 Intel 8255、 Intel 8251
专用接口 Intel 8279、 Intel 8275 - 按数据传送的控制方式分类
中断接口 Intel 8259
DMA 接口 Intel 8257
四、程序查询方式
4.1 程序查询流程
- 查询流程
- 程序流程
4.2 程序查询方式的接口电路
以输入为例
五、程序中断方式
5.1 中断的概念
5.2 I/O 中断的产生
以打印机为例 CPU与打印机部分并行工作
5.3 程序中断方式的接口电路
- 配置中断请求触发器和中断屏蔽触发器
注意:设备发出中断请求时,其本身必须准备就绪,即D=1
中断源:把凡能向CPU提出中断请求的各种因素称为中断源 - 排队器
排队 硬件方法 在CPU内设一统一排队器或在接口电路中(链式排队器)
软件方法 详见第八章
设备1#、2#、3#、4# 优先级按 降序排列
I N T R i = 1 {INTR_i}=1 INTRi=1 有请求 即 I N T R i ‾ = 0 \overline{INTR_i}=0 INTRi=0 - 中断向量地址形成部件
入口地址 由软件产生 详见第八章
硬件向量法 由硬件产生向量地址,再由向量地址找到入口地址
- 程序中断方式接口电路的基本组成
5.4 I/O 中断处理过程
- CPU响应中断的条件和时间
(1)条件
允许中断触发器 EINT = 1
用开中断指令将 EINT 置“1”
用关中断指令将 EINT 置“0”或硬件自动复位
(2)时间
当D=1(随机)且MASK=0 时
在每条指令执行阶段的结束前
CPU 发中断查询信号(将 INTR 置“1” ) - I/O中断处理过程
以输入为例
中断处理过程简化为:中断请求、中断判优、中断响应、中断服务、中断返回
5.5 中断服务程序流程
- 中断服务程序的流程
(1) 保护现场
程序断点的保护 中断隐指令完成
寄存器内容的保护 中断服务程序令完成 存储器保存或进栈指令
(2) 中断服务 对不同的 I/O 设备具有不同内容的设备服务
(3) 恢复现场 出栈指令
(4) 中断返回 中断返回指令 - 单重中断和多重中断
单重中断 不允许中断现行的中断服务程序
多重中断 允许级别更高的中断源中断现行的中断服务程序 - 单重中断和多重中断的服务程序流程
- 主程序和服务程序抢占CPU示意图
宏观上 CPU 和 I/O 并行工作
微观上 CPU 中断现行程序为 I/O 服务
六、DMA方式
6.1 DMA方式的特点
- DMA程序中断两种方式的数据通路
- DMA与主存交换数据的三种方式
(1)停止CPU访问主存
控制简单
CPU 处于不工作状态或保持状态
未充分发挥CPU对主存的利用率
(2)周期挪用(或周期窃取)
CPU此时不访存
CPU正在访存
CPU与DMA 同时请求访存
此时 CPU 将总线控制权让给 DMA
(3)DMA与CPU交替访问
CPU工作周期 C1专供DMA 访存
C2专供CPU 访存
不需要申请建立和归还总线的使用权
6.2 DMA接口的功能和组成
- DMA接口功能
(1)向CPU申请 DMA 传送
(2)处理总线控制权的转交
(3)管理系统总线、控制数据传送
(4)确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
(5)DMA传送结束时,给出操作完成信号 - DMA接口组成
①主存地址寄存器AR:存放主存中需要交换数据的地址,每次+1
②字计数器WC:记录传送数据的总字数,每次+1或-1直至计数器为0
③数据缓冲寄存器BR:暂存每次传送的数据
④DMA控制逻辑
DREQ- DMA请求信号,HRQ-总线使用权请求信号
HLDA-CPU响应信号,DACK- 授予一个DMA周期
⑤中断机构:与之前不同,这里为了报告一批数据传送结束
⑥设备地址寄存器DAR:存放I/O设备设备码或表示信息存储区的寻址信息
6.3 DMA的工作过程
-
DMA传送过程
预处理、数据传送、后处理
(1) 预处理
CPU通过几条输入输出指令预置如下信息
①通知DMA控制逻辑传送方向(入/出)
②设备地址→DMA的DAR
③主存地址→DMA的AR
④传送字数→DMA的WC
(2) DMA传送过程示意
(3) 数据传送过程(输入)
(4) 数据传送过程(输出)
(5) 后处理
校验送入主存的数是否正确
是否继续用DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成 -
DMA接口与系统的连接方式
(1) 具有公共请求线的DMA请求
(2) 独立的DMA请求
-
DMA方式与程序中断方式的比较
- | 中断方式 | DMA方式 |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
6.4 DMA接口的类型
- 选择型 在物理上连接多个设备
在逻辑上只允许连接一个设备
- 多路型 在物理上连接多个设备
在逻辑上允许连接多个设备同时工作 - 多路型DMA接口的工作原理