计算机组成第九周:输入输出设备
2015-05-24 14:36
218 查看
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控制器:
相关文章推荐
- 计算机组成 计算机五大部件 I/O 输入 输出设备 以及控制器
- 什么是数位板? 数位板,又名绘图板、绘画板、手绘板等等,是计算机输入设备的一种,通常是由一块板子和一支压感笔组成,它和手写板等作为非常规的输入产品相类似,都针对一定的使用群体。 与手写板所不同的是
- 计算机组成原理五:输入输出系统
- 计算机输入输出IO设备
- 进一步了解微型计算机硬件系统(四)—— 输入/输出设备
- 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后程序就查找该班有无此学生,如果有,则输出他的姓名和学号,如果找不到
- 第九周项目5 从键盘输入20个整数,输出它们的和
- 6、 java 输入一个数字组成的数组,输出该数组的最大值和最小值
- 第九周实验报告任务 1 定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 第九周任务四之 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 计算机输出设备
- 【收藏】计算机输入/输出系统
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- 现代计算机设备的组成部分
- 50.黑马程序员-改变标准输入输出设备、日志、系统信息
- JAVA基础 day21 字节流的输入和输出 字节流的缓冲区 (自己实现BufferedInputStream) 键盘输入 转换流的用法 改变标准输入输出设备 IO流操作的基本规律
- C#--第三周实验--任务2--输入一个由若干字符组成的字符串,输出其中的大写字母、小写字母、数字和其他字符的个数(控制台应用)
- 第九周 C++任务一。定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 第九周C++任务三。定义分数类中<<和>>运算符重载,实现分数的输入输出
- 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%100000000