您的位置:首页 > 理论基础

计算机组成第九周:输入输出设备

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控制器:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐