本文共 3034 字,大约阅读时间需要 10 分钟。
按使用特性
人机交互类外设:打印机、显示器、鼠标、键盘等 存储设备:磁盘、磁带、光盘等 网络通信设备:网络接口、调制解调器等按传输速率分类
低速设备:每秒几个到数百个字节(< KB/s),如键盘、鼠标 中速设备:每秒数千个字节至数万个字节,如激光打印机 高速设备:数百个千字节至千兆字节(>100 KB/s),如磁带机、光盘机信息交换的单位分类
块设备:信息的存取以数据块为单位,读写的基本单位是数据块,如磁盘 字符设备:用于数据输入输出的设备为字符设备,读写的基本单位是字符,如交互式终端机、打印机设备控制器是计算机中的一个实体,物理上看控制器是一块接口卡或主板上的一个功能模块。主要职责是控制一个或多个I/O设备,以实现CPU与I/O设备之间的数据交换。设备控制器收到命令后,CPU可以转向执行其他工作,而让设备控制器自行完成具体的I/O操作。当命令执行结束后,控制器发出一个中断信号,OS重新获得CPU控制权并检查执行结果。这样把CPU解脱出来。
设备地址识别:识别I/O端口,使I/O操作与设备对应。
接收和识别命令指挥设备执行:接收通道或CPU通过I/O总线发来的命令和参数,存储在控制寄存器中,并对它进行译码识别,转换成适当的电信号,通过控制器与设备的接口向设备发送,控制设备执行相应操作。
接收和记录设备的状态:接收设备发来的电信号,并转换和解释为设备的状态信息,记录在状态寄存器中,供CPU处理使用。
数据交换:通过CPU<—>设备控制器<—>设备的数据交换,实现了CPU与设备之间的数据传递。
数据缓冲:I/O设备的速率较低而CPU和内存的速率却很高,控制器可做数据缓冲。在输出时,暂存从CPU送来的数据,然后以I/O设备所具有的速率将缓存的数据发送给I/O设备;输入时相反。
差错控制:设备控制器可对由I/O设备传来的数据进行差错检测,检查出错误后向CPU报告,CPU将传来的错误数据作废,并重新传送。
为了完成上面的功能,设备控制器必须包含以下组成部分:
CPU与外设的连接和数据交换需要通过接口设备来实现,每个连接到I/O总线上的设备都有自己的I/O地址集,通常称为I/O端口。在IBM PC体系结构中,I/O地址空间一共提供了65536个8位的I/O端口,正好对应16位的端口地址。
有四条专用汇编指令 允许CPU对I/O端口进行读写。即:in、ins、out、outs。
在执行指令时,CPU用地址总线选择所请求的I/O端口,用数据总线在CPU和设备控制器之间传送数据。
I/O端口的寻址方式:
概念
在计算机系统内个各种子系统如CPU、内存、I/O设备等之间构建共用的信号或数据传输通道,这种可共享连接的传输通道称为总线。如果说主板是一座城市,那么总线就像是城市里的公共汽车。
I/O总线
总线连接的是CPU和I/O设备时,就称为I/O总线。Intel 8086微处理器使用了32位地址总线中的16位对I/O设备进行寻址,使用64位数据总线中的8位、16位或32位来传送数据。每个I/O设备通过设备控制器连接到I/O总线上。
CPU给I/O设备发送读取数据的命令,CPU不停的循环测试设备的状态,当发现设备处于ready状态时,CPU就可以与I/O设备进行数据存取操作。CPU和I/O设备之间是串行工作的,CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了 CPU资源的极大浪费,CPU的利用率相当低。
允许I/O设备主动打断CPU的运行并请求服务,从而解放CPU,使得其向I/O设备控制器发送读命令后可以继续做其他有用的工作。可以分别从I/O控制器和CPU的角度来看这种方式的工作过程。
由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,导致了这种方式仍然会消耗较多的CPU时间。DMA,直接存储器存取基本思想是I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。
特点:
DMA控制器的组成
工作过程:
CPU读写数据时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。之后由DMA控制器处理操作,直接与存储器交互,传送整个数据块,每次传送一个字,当传送完成后,DMA发送一个中断信号给处理器。
中断驱动方式与DMA控制方式的区别:
中断在每个数据需要传输时中断CPU,而DMA是要传送的一批数据全部传送完成后再中断CPU;中断方式数据的传送是在中断处理时由CPU控制完成的,而DMA则是DMA控制器完成的。减少了CPU处理中断的次数
I/O通道是一种特殊的处理机,可执行指令类型单一,主要局限于I/O操作,专门负责输入/输出;通道没有自己的内存,通道所执行的程序是放在主机的内存中的,通道与CPU共享内存。
工作过程:
当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首地址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务,数据传送结束时向CPU发中断请求。
与DMA控制方式的区别:
DMA方式中传输的数据块大小、传输的内存位置是CPU控制的,而通道控制模式是由通道控制的;每个DMA控制器只能控制一个I/O设备,而一个通道可以控制多台设备与内存进行数据交换。
未完待续