I/O系统基本概念
I/O指令:操作码 + 指令码 + 设备码
通道指令:通道控制字,通道用于执行I/O操作的指令,放在主存中存放
I/O硬件:通道处理器、设备控制器、I/O设备、接口模块等
发展历史:
(1)程序查询方式
(2)中断查询方式和DMA方式
(3)通道结构
(4)I/O处理器
外部设备
(1)输入设备
常见的输入设备有键盘,鼠标等等
(2)输出设备
常见的输出设备有显示器,打印机等等
<1>显示器
阴极射线管(CRT)显示器:可分为光栅扫描和随机扫描;或者分为高分辨率和低分辨率
分辨率:显示器所能表示的像素个数
灰度级:黑白显示器中所显示的像素点的亮暗程度,彩色显示器中表示颜色的不同
CRT刷新:电子束不断的扫描屏幕,保证荧光粉的发光亮度
刷新存储器:存储图像信息,提高刷新图像的信号程度
刷新存储器的存储容量由图像分辨率和灰度级决定
例题:假设分辨率为1024 * 1024,256级灰度的图像,则刷新存储器的容量是()
<2>打印机
按印字原理分类:击打式和非击打式
按工作方式分类:串行打印机和行式打印机
I/O接口
I/O接口与I/O端口的区别:I/O接口是主机和外部设备之间传输信息的中间部件,I/O端口是I/O接口中一些存放数据、命令和状态信息的寄存器;I/O接口可能有多个地址,I/O端口只有一个对应的地址。
I/O接口的组成:数据缓冲寄存器DBR,设备选择电路,设备状态标记,命令寄存器和命令译码器,控制逻辑电路等
I/O接口作用:
<1>速度缓冲;
<2>设备的选择;
<3>数据串——并格式的转换。
I/O接口的线路:
数据线:双向,传输数据
设备选择线:单向,传送设备码
命令线:单向,传输CPU向设备发出的命令
状态线:单向,向主机汇报I/O设备的状态
I/O端口(重点)
可以由CPU进行读写操作的寄存器
端口中存放的是数据信息,控制信息和状态信息
I/O端口编址:
(1)统一编址:I/O地址码和主存的地址码统一;占用了存储空间,不过不需要专用的I/O指令
(2)不统一编址(独立编址):I/O地址和主存地址分开编址,有专门的I/O指令;不占用主存存储容量
I/O方式(重点)
(1)程序查询方式
每时每刻一直在查询I/O设备是否准备就绪,可以开始传送数据了
执行过程:
<1>将CPU存在寄存器的重要内容保存起来;
<2>给出I/O设备与CPU交换数据的计数值,确定数据的传输块数;
<3>给出传送数据的主存缓冲区首地址;
<4>启动I/O设备;
<5>CPU取设备状态,测试I/O设备是否准备就绪;
<6>CPU执行I/O指令,进行读/写操作,修改接口中的状态标记位;
<7>修改主存地址;
<8>修改计数值;
<9>判断计数值是否为0 ,为0停止传送,不为0继续传送数据;
<10>传送结束,停止I/O传送,继续执行现行程序。
例题:程序查询方式下,不考虑处理时间,假如每一个查询操作需要100个时钟周期,CPU时钟频率为50MHz。对鼠标和硬盘两个设备进行查询,CPU必须每秒对鼠标查询30次,硬盘以32bit字长为单位传输数据,每32bit被CPU查询一次,传输速率2MB/s。求CPU对这两个设备查询花费的时间比率。
(2)程序中断方式
采用中断系统实现I/O设备的数据传输
I/O设备准备就绪时,向CPU提出中断请求,CPU保存断点后转去执行中断服务程序;中断结束后,CPU再去执行原程序。
中断过程:
<1>中断请求;
<2>中断判优;
<3>中断响应;
<4>中断服务;
<5>中断返回。
I/O接口电路中的硬件:中断请求触发器、中断屏蔽触发器、排队器和中断向量地址形成部件等。
设备选择电路:判别对应的接到总线上的设备
数据缓冲寄存器:暂存来往的读/写数据
设备状态标记:接口中的标志触发器D、B,标志设备的工作状态
D触发器:完成触发器,1表示设备准备就绪,0表示设备还没有准备好
B触发器:工作触发器,1表示启动设备,0表示停止设备
程序中断方式流程(输入):
<1>CPU发出启动I/O设备命令;
<2>接口启动输入工作;
<3>输入设备将数据送入数据缓冲寄存器;
<4>数据传输结束时,向接口发出设备工作结束信号,即设备准备就绪;
<5>当设备准备就绪且未被屏蔽时,由CPU发出中断查询信号;
<6>中断判优;
<7>满足中断条件时,进入中断响应阶段;
<8>向量地址送到PC,作为下一条指令的地址;
<9>执行中断服务程序;
<10>中断服务程序结束,中断返回到原程序的断点处。
(3)DMA方式
完全由硬件进行信息成组传送的控制方式,主存与高速I/O设备直接进行数据交换而不经过CPU,称为直接存储器存取方式,硬件开销较大。
DMA方式同时访存:
<1>停止CPU访问主存
冲突时,DMA发送一个信号给CPU,要求CPU放弃总线控制权,由DMA开始进行数据传输;DMA传输结束后,再通知CPU并交还总线控制权给CPU。
优点:控制简单,适用于高速I/O设备成组传送
缺点:访存阶段,主存的效率降低
<2>周期挪用
CPU不访存时,DMA直接取得总线控制权;
CPU正在访存时,必须等待存储周期结束后,DMA再获得总线控制权;
CPU和DMA同时需要访存时,CPU暂时放弃总线控制权,由I/O设备挪用一个或几个存储周期。
挪用过程:
a、申请总线控制权
b、建立总线控制权
c、归还总线控制权
<3>DMA和CPU交替访问
适用于CPU工作周期 > 主存存取周期的情况
CPU和DMA交替获取总线控制权
DMA功能:
<1>向CPU申请DMA传送;
<2>处理总线控制权的交接;
<3>DMA期间管理总线,控制数据传送;
<4>确定数据传输的起始长度;
<5>数据块传送结束,发出操作完成信号。
DMA组成:
<1>AR:存放数据块首地址,有计数功能
<2>WC:字计数器,存放交换数据的字数
<3>DAR:设备地址寄存器,存放设备号
<4>BR:数据缓冲寄存器,存放主存和设备之间交换的数据字
<5>DMA控制逻辑:管理DMA传送数据的过程
<6>中断逻辑:中断数据传输,向CPU提出后处理请求
DMA传送过程:
<1>预处理
a、指明数据传输方向;
b、确定具体是哪一个设备进行I/O数据传输;
c、发送数据字的首地址;
d、WC确定字的个数;
<2>数据传送(输入)
DMA数据传送以数据块为单位进行传输
这个阶段CPU继续执行现行程序,DMA完成数据传送过程
a、设备准备就绪,数据字读到DMA的数据缓冲寄存器BR中;
b、设备向DMA接口发送DREQ请求;
c、DMA接口向CPU申请总线控制权HRQ;
d、CPU给出HLDA信号,允许总线控制权交给DMA接口;
e、DMA主存地址寄存器中的主存地址传送给地址总线;
f、DMA控制逻辑通知I/O设备准备传输下一个字;
g、DMA数据缓冲寄存器中的数据字传送到数据总线中;
h、主存将传来的数据放在地址总线指定的主存地址中去;
i、修改主存地址和字计数值;
j、判断是否结束数据传输,未结束则继续,结束则发出中断请求,表示数据块传输结束。
<3>后处理
响应DMA的中断请求后,CPU停止执行原程序,转去执行中断服务程序,进行DMA的后处理工作。
功能:
<1>校验数据传输的准确性;
<2>是否继续使用DMA方式传输数据;
<3>测试传送过程中是否发生错误。
DMA特点:
<1>硬件传送数据;
<2>DMA可在指令周期内的任意存储周期结束时响应;
<3>DMA适用于大批量数据的传输;
<4>DMA只有在后处理中用到中断;
<5>DMA优先级大于程序中断;
<6>数据传输不占用CPU时间。
例题:DMA接口采用周期窃取方式将字符送到存储器,支持的最大批量为400B.假设存取周期是0.2微秒,每次处理中断需要5微秒,现有的字符设备的传输速率是9600bit/s。若字符间的传输无间隙,则:
<1>DMA方式每秒因数据传输占用处理器多少时间?
<2>完全采用中断方式时,需要占用处理器多少时间(忽略预处理)?