I/O 方式
I/O方式分类:
- 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备,从而控制0 设备与主机交换信息
- 程序中断方式。只在 I/0 设备准备就绪并向 CPU发出中断请求时才予以响应。
- DMA方式。主存和 I/O 设备之间有一条直接数据通路,当主存和 /0 设备交换信息时 无须调用中断服务程序。
- 通道方式。在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行0 命令时,只需启动有关
通道,通道将执行通道程序,从而完成 I/O 操作。
其中,方式 1)和方式 2)主要用于数据传输率较低的外部设备,方式 3)和方式 4)主要用于数据传输率较高的设备。
程序查询方式
- CPU执行初始化程序,并预置传送参数。
- 向I/O接口发出命令字,启动I/O设备。
- 从外设接口读取其状态信息
- CPU 不断查询I/O设备状态,直到外设准备就绪
- 传送一次数据
- 修改地址和计数器参数
- 判断传送是否结束,若未结束转第3步,直到计数器为0
程序中断方式
中断
中断:由于系统中某些突发事件或异常情况的发生,而强迫CPU暂停(或中断)正在执行的程序转去执行相应的服务,当中断服务结束之后再回到原来被中断的地方继续执行原来的程序。
中断源:发出中断请求的来源。
中断源可以分为两大类:内部中断和外部中断。
中断的原理
在中断传送方式下,外部设备具有申请CPU服务的主动权。当输入设备将数据准备好或者输出设备准备好接收数据时,便可以向CPU发中断请求,使CPU暂时信下当前正在执行的程序而和外部设备完成一次数据传输。等输入/输出操作完成以后,CPU继续执行原来的程序。
中断的功能
- 实现CPU 与IO设备的并行工作。
- 处理硬件故障和软件错误
- 实现人机交互,用户千预机器需要用到中断系统
- 实现多道程序、分时操作,多道程序的切换需借助于中断系统
- 实时处理需要借助中断系统来实现快速响应
- 实现应用程序和操作系统 (管态程序) 的切换,称为“软中断”
- 多处理器系统中各处理器之间的信息交流和任务切换
程序中断方式
CPU在程序中安排好于某个时刻启动某台外设,然后CPU继续执行原来的程序,不需要像查询方式那样一直等待外设准备就绪。一旦外设完成数据传送的准备工作,就主动向CPU 发出中断请求,请求CPU为自己服务。在可以响应中断的条件下,CPU暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
程序中断方式工作流程
(1) 中断请求
(2) 中断判优
(3) CPU响应中断的条件
(4) 中断隐指令
(5) 中断向量
(6) 中断处理过程
中断请求
当外部设备处于就绪状态,即输入设备将数据准备好或者输出设备准备好接收数据时,便通过相应的硬件电路向CPU发送一个中断请求信号,请求为之服务
中断判优
一个计算机系统包含多个中断源。由于中断产生的随机性,使得有可能在某一时刻有多个中断源向CPU发出中断请求,但是CPU在任意时刻只能响应并处理一个中断。
中断优先级判定的方法一般有两种:软件判优和硬件判优
软件判优: 指通过软件来安排各中断源的优先级别,但是也要借助于简单的硬件电路实现
硬件判优: 指利用专门的硬件电路或中断控制器来安排冬中断源的优先级。
CPU响应中断的条件
中断源有中断请求
CPU允许中断及开中断
一条指令执行完些,且没有更紧迫的任务
中断隐指令
- 关中断。在中断服务程序中,为了保护中断现场 (即CPU主要寄存器中的内容)期间不被新的中断所打断
必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确地执行。 - 保存断点。为保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点[即程序计数器(PC) 的内容] 保存起来
- 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址并传送给程序计数器 (PC)。
中断向量
中断向量:不同的设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU 必须找到这个入口地址
中断服务程序入口地址表: 把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
注意:中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址的地址
中断处理过程
- 关中断。处理器响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序
- 保存断点。为保证中断服务程序执行完些后,能正确返回到原来的程序必须将原来的程序的断点保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。
- 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址送入程序计数器(PC)。通常有两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法
- 保存现场和屏蔽字。进入中断服务程序后首先要保存现场,现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容
- 开中断。允许更高级中断请求得到响应,实现中断嵌套
- 执行中断服务程序。这是中断请求的目的。
- 关中断。保证在恢复现场和屏蔽字时不被中断
- 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态
- 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
多重中断
中断屏蔽技术主要用于多重中断。CPU要具备多重中断的功能,必须满足下列条件:
- 在中断服务程序中提前设置开中断指令
- 优先级别高的中断源有权中断优先级别低的中断源
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请
所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
程序中断方式VS程序查询方式
DMA方式
DMA传送方式的特点
- 它使主存与CPU 的固定联系脱钩,主存既可被CPU访问,又可被外设访问
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据
- DMA传送速度快,CPU和外设并行工作,提高了系统效率
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理
DMA控制器的组成
- 主存地址计数器:存放要交换数据的主存地址
- 传送长度计数器:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号
- 数据缓冲寄存器:暂存每次传送的数据
- DMA请求触发器:每当I/0设备准备好数据后,给出一个控制信号,使DMA请求触发器置位
- “控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数并对 DMA请求信号和CPU响应信号进行协调和同步
- 中断机构:当一个数据块传送完些后触发中断机构,向CPU提出中断请求
DMA的传送方式
- 停止CPU访问主存。
- DMA与CPU交替访存。CPU与DMA控制器交替访问内存。不需要总线使用权的申请、建立和归还过程,
- 周期挪用(或周期窃取)。当O接口没有DMA请求时,CPU按程序要求访问内存,一旦P接口有DMA请求,则
I/O接口挪用一个或几个周期。
DMA传送过程
- 预处理
- 数据传送
- 后处理
通道方式
外部设备
外部设备
外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置
输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备
输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基
本的输出设备。
外存设备:是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备
I/O接口
I/O接口的结构
I/O接口的功能
- 实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间
交换信息,以保证整个计算机系统能统一、协调地工作。 - 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信
息,使主机能和指定外设交换信息。 - 实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器
用于数据的暂存,以避免因速度不一致而丢失数据。 - 信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信
号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等传送控制命令和状态信息。 - CPU 要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令外,设准备就绪时,则将"准备好“状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU提出中新请求时,CPU也应有相应的响应信号反馈给外设
I/O接口的分类
按数据传送方式可分为:
- 并行接口 : 一个字节或一个字所有位同时传送。
- 串行接口:一位一位地传送。
注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行送的。接口要完成数据格式转换。
按主机访问I/O设备的控制方式可分为
- 程序查询接口
- 中断接口
- DMA接口
按功能选择的灵活性可分为
- 可编程接口
- 不可编程接口
I/O端口编址方式
I/O 端口要想能够被 CPU访问,就必须要对各个端口进行编号,每个端口对应一一个端口地址。而对 I/O
端口的编址方式有与存储器统一编址和独立编址两种。
- 统一编址: 又称存储器映射方式,是指把 I/O 端口当作存储器的单元进行地址分配,这种方式 CPU不需要设置专门的 I/O指令,用统一的访存指令就可以访问 I/O 端口。
优点:不需要专门的输入/输出指令,可使 CPU访问 I/O 的操作更灵活、更方便,还可使端口有较大的编址
空间。
缺点:端口 占用存储器地址,使内存容量变小,而且利用存储器编址的 I/O 设备进行数据输入/输出操作
执行速度较慢。 - 独立编址: 又称 I/O 映射方式,I/O 端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的 I/O指今来访问 I/O 端口。
优点: 输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。
缺点: 输入/输出指令少,一般只能对端口进行传送操作,尤其需要 CPU提供存储器读/写、I/0 设备读/写
两组控制信号,增加了控制的复杂性