一、基本概念
1.IO硬件
输入设备、输出设备、外存设备、I/O接口(I/O控制器)
2.IO软件
包括驱动程序,用户程序,管理程序,升级补丁等。
通常采用IO指令和通道指令完成主机和I/O设备的信息交换。
IO指令 CPU执行的指令,用于控制IO接口或控制通道
操作码 | 命令码 | 设备码 |
识别是否为I/O指令 | 做什么操作 | 对那个设备进行操作 |
通道指令 通道执行的指令,与CPU机器指令不是一套东西
通道程序是提前编制好存放在主存中的程序,在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理。
二、I/0控制方式
1.程序查询方式:
CPU“忙等”慢速设备完成工作,二者串行工作
2.程序中断方式:
设备准备数据时,CPU继续工作。设备准备好之后向CPU发出中断请求,CPU在指令周期的未位检查中断并做出中断响应(执行中断处理程序)
3.DMA方式:
DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。
DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。
主存与IO交换信息时由DMA控制器控制,传输完一整块数据才需要中断。
4.通道方式:
有的商用大型计算机可能会挂载超级多的I/O设备,如果都让CPU来管理,CPU的负载就太大了。
所以要使用通道
通道是一种特殊功能的处理器,能对I/O设备进行统一管理。
通过IO指令启动通道,通道执行通道指令序列,通道程序提前编制好存放在主存中 。
三、I/O接口的功能和基本结构
1.功能
(1)进行地址译码和设备选择:
CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
(2)实现主机和外设的通信联络控制:
解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一,协调地工作。
(3)实现数据缓冲:
CPU与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。
(4)信号格式的转换:
外设与主机两者的电平,数据格式都可能存在差异,接口应该提供主机与外设的信号格式的转换功能,如电平转换,并/串或串/并转换,模/数或数/模转换等。
(5)传送控制命令和状态信息:
CPU要启动某外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求时,CPU也应该有相应的响应信号反馈给外设。
2.结构
I/O接口在主机侧通过I/O总线与内存,CPU连接。
数据缓冲寄存器 | 用来暂时存储其与CPU或内存之间传送的数据信息。 |
状态寄存器 | 用来记录接口和设备的状态信息。 |
控制寄存器 | 用来保存CPU对外设的控制信息。 |
状态寄存器和控制寄存器在传送方向上是相反的,在访问时间上也是错开的,因此可以将他们合二为一。
数据线 | 读写数据、状态字、控制字、中断类型号 |
地址线 | 指明I/O端口 |
控制线 | 读/写I/O端口的信号、中断请求信号 |
①发命令:发送命令字到I/0控制寄存器,向设备发送命令(需要驱动程序的协助)
②读状态:从状态寄存器读取状态字,获得设备或I/0控制器的状态信息
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
3.端口
端口指的是CPU可以直接访问到的I/O接口中的寄存器 。
以这些端口的功能为基础可以分为:
数据端口 | 可以读写 |
控制端口 | 可以写 |
状态端口 | 可以读 |
(1)统一编址
特点 | 把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I0端口,又称存储器映射方式。靠不同的地址码区分内存和I/O设备,/0地址要求相对固定在地址的某部分。 |
---|---|
优点 | 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高端口有较大的编址空间读写控制逻辑电路简单 |
缺点 | 端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢) |
(2)单独编址
特点 | IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/0映射方式。靠不同的指令区分内存和I/0设备。 |
---|---|
优点 | IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/0映射方式。靠不同的指令区分内存和I/0设备。 |
缺点 | I/0指令类型少,一般只能对端口进行传送操作程序设计灵活性差需要CPU提供存储器读/写、I/0设备读/写两组控制信号,增加了控制逻辑电路的复杂性 |
(3)分类