计算机组成第九周:输入输出设备
来源:互联网 发布:php 读取json对象 编辑:程序博客网 时间:2024/05/22 00:39
1 输入输出接口
1.1 基本功能和结构
- 数据缓冲:解决CPU和外设间的速度差距
- 提供联络信息:协调与同步数据交换过程
- 信号与信息格式的转换:模/数、数/模转换,串/并、并/串转换,电平转换
- 设备选择
- 中断管理
- 可编程功能
1.2 编址方式
I/O端口:
- I/O接口内部包含一组称为I/O端口的寄存器
- 每个I/O端口都需有自己的端口地址(或称端口号),以便CPU访问
I/O端口的编址方式:
- I/O端口和存储器分开编址:I/O映像的I/O方式,x86体系结构
- I/O端口和存储器统一编址:存储器映像的I/O方式,ARM、MIPS、PowerPC等体系结构
分开编址所用指令:
- IN AL, 80H
- OUT 80H, AX
- MOV DX, 288
- IN AL, DX
统一编址的特点:
- 可以用访问存储器的指令来访问I/O端口,访问存储器的指令功能比较齐全,可以实现直接对I/O端口内的数据进行处理(优点)
- 可以将CPU中的I/O操作与访问存储器操作统一设计为一套控制逻辑,简化内部结构,同时减少CPU的引脚数目(优点)
- 由于I/O端口占用了一部分存储器地址空间,因而使存储地址空间减小(缺点)
- 由于利用访问存储器的指令来进行I/O操作,指令的长度通常比单独I/O指令要长,因而指令的执行时间也较长(缺点)
1.3 并行接口电路
并行接口电路是I/O接口的一种,一般有两种常见的物理实现形式:
- 独立的芯片,如Intel 8255A芯片
- 包含在多功能的芯片中,如SuperIO芯片提供了并口、串口、键盘鼠标接口、风扇控制接口等
2 外部中断的处理过程
- 外部中断,也称硬件中断
- 由CPU外部的中断请求信号启动的中断
- x86 CPU为外部中断提供两个引脚
- NMI:非屏蔽中断
- INTR:可屏蔽中断
- 可编程中断控制器:PIC
- 如:8259A
- 高级可编程中断控制器:APIC
- 如:82093AA
3 输入输出控制方式
I/O控制方式:CPU如何控制外设的数据传输
分类:
- 程序控制方式
- 中断控制方式
- 直接存储器访问(DMA)方式
3.1 程序控制方式
包括如下两种:
- 无条件传送方式:假定外设已经准备好,CPU直接使用指令与外设传送数据,不查询外设的工作状态
- 程序查询传送方式:CPU通过执行一段程序,不断查询外设的工作状态,在确定外设已经准备就绪时,才进行数据传送
数据输入过程(程序查询方式):
- 系统初始化时,CPU执行指令,将控制字写入接口的“控制寄存器”,设置接口的工作模式
- 外设将数据发到“并行数据输入”信号线上,并将“输入准备好”信号置为有效
- 接口发现“输入准备好”信号有效后,从“并行数据输入”信号线上接收数据,放入“输入缓冲寄存器”,并将“输入回答”信号置为有效,阻止外设输入新数据
- 接口将“状态寄存器”中的状态位“输入缓冲满”置为有效
- 在上述过程中,CPU反复执行指令从“状态寄存器”中读出状态字,直到发现“输入缓冲满”,然后执行指令从“输入缓冲寄存器”中读出数据
- 接口将“输入回答”信号置为无效,等待外设输入新数据
数据输出过程(程序查询方式):
- CPU执行指令,将控制字写入接口的“控制寄存器”,从而设置接口的工作模式
- CPU执行指令,将数据写到接口的“输出缓冲寄存器”
- 接口将数据发到“并行数据输出”信号线上,并将“输出准备好”信号置为有效(亦可由CPU写控制字将该信号置为有效)
- 外设发现“输出准备好”信号有效后,从“并行数据输出”信号线上接收数据,并将“输出回答”信号置为有效
- 接口发现“输出回答”信号有效后,将“状态寄存器”中的状态位“输出缓冲空”置为有效
- 在这个过程中,CPU反复执行指令从“状态寄存器”中读出状态字,直到发现“输出缓冲空”,然后开始下一个输出过程,继续输出新数据
程序控制方式的特点:
无条件传送方式
- 优点:控制程序简单
- 缺点:只适用于简单外设的操作
程序查询传送方式
- 优点:比无条件传送方式准确和可靠
- 缺点:查询外设状态占用了大量的时间
共同的优缺点
- 优点:对外设的要求低,操作流程清晰
- 缺点:由CPU进行数据传送操作,占用了宝贵的运算资源
3.2 中断控制方式
数据输入过程(中断控制方式):
- 系统初始化时,CPU执行指令,将控制字写入接口的“控制寄存器”,设置接口的工作模式
- 外设将数据发到“并行数据输入”信号,并将“输入准备好”信号置为有效
- 接口发现“输入准备好”信号有效后,从“并行数据输入”信号接收数据,放入“输入缓冲寄存器”,并将“输入回答”信号置为有效,阻止外设输入新数据
- 接口通过“中断控制逻辑”向CPU发出中断请求信号,并将“状态寄存器”中的状态位“输入缓冲满”置为有效
- CPU收到中断请求后,进入中断服务程序,执行指令从“状态寄存器”中读出状态字,发现“输入缓冲满”,因此执行指令,从“输入缓冲寄存器”中读出数据
- 接口将“输入回答”信号置为无效,等待外设输入新数据
数据输出过程(中断控制方式):
- CPU执行指令,将控制字写入接口的“控制寄存器”,从而设置接口的工作模式
- CPU执行指令,将数据写到接口的“输出缓冲寄存器”
- 接口将数据发到“并行数据输出”信号,并将“输出准备好”信号置为有效(亦可由CPU写控制字将该信号置为有效)
- 外设发现“输出准备好”信号有效后,从“并行数据输出”信号接收数据,并将“输出回答”信号置为有效
- 接口发现“输出回答”信号有效后,通过“中断控制逻辑”向CPU发出中断请求信号,并将“状态寄存器”中的状态位“输出缓冲空”置为有效
- CPU收到中断请求后,进入中断服务程序,执行指令从“状态寄存器”中读出状态字,发现“输出缓冲空”,因此开始下一个输出过程继续输出新数据
中断控制方式的特点:
优点
- CPU可以和外设并行工作,提高了工作效率
- 外围设备具有申请服务的主动权
- 一定程度上满足了I/O处理的实时性要求
缺点:
- 外设和存储器之间的数据交换仍由CPU承担(使用数据传送指令,占用了宝贵的CPU运算资源,并且数据要经过CPU中的通用寄存器中转,过程冗长,程序查询方式同样有这些缺点)
- 进入和退出中断服务程序,需要额外的指令
3.3 直接存储器访问方式
直接存储器访问,DMA
- 数据传送过程不需要CPU干预(不需要执行程序指令)
- 由专门硬件控制电路控制,进行外设与存储器间直接数据传送
- 该专门硬件控制电路称为DMA控制器,简称DMAC(如:Intel 8237A)
基本工作步骤:
- CPU设置DMAC内部配置寄存器
- DMAC处于空闲等待状态
- I/O接口向DMAC发出DMA传送申请
- DMAC响应I/O接口的申请
- DMAC向I/O接口发起总线读传输
- DMAC向存储器发起总线写传输
- 重复5-6直到本次DMA传送完成
- 返回2,等待下一次DMA传送申请
DMAC的主要配置参数:
- 源地址的初始值及传送时的地址增减方式
- 目的地址的初始值及传送时的地址增减方式
- 待传送数据的长度
有些I/O接口自带DMA控制器:
0 0
- 计算机组成第九周:输入输出设备
- 计算机组成原理五:输入输出系统
- 【计算机组成原理】中断和输入输出
- 计算机组成原理——输入输出系统
- 计算机组成原理——输入输出系统
- 计算机组成原理之输入输出系统题目及解答
- 计算机组成.更好的利用处理器.从输入输出看中断
- 计算机组成原理知识点(第五章:输入输出系统)
- 【连载】计算机组成原理 --- 第六章 输入输出系统
- 5.计算机组成原理笔记五输入输出系统
- 计算机组成
- 计算机组成
- 计算机组成
- 计算机组成
- 计算机组成
- 计算机组成
- 计算机组成
- 计算机组成
- 双冒号 冒号 在c++/c中的用法
- Ascii Table 不同系统中换行符的区别
- 修改oracle数据库表字段类型,处理ORA-01439错误
- Android后台处理最佳实践(Best Practices for Background Jobs)
- asa 5510 MQC方式对每个IP进行限速、某网段限速、某些IP进行限速
- 计算机组成第九周:输入输出设备
- 理解一般指针和指向指针的指针
- 《JavaScript语言精粹》笔记
- 第十二周 阅读程序-补充
- 在广播接收者中启动其它组件 73集
- 【书评:Oracle查询优化改写】第14章 结尾章
- linux新硬盘挂在到/home目录下
- 摆地摊到底能不能赚钱?
- 一起talk Vim吧(第二十二回:Vim大结局)