持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情
I/O设备
1.设备类别 从数据交换单位来分,I/O设备大致可分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,并且每个块都有地址,因此可独立寻址。块的大小通常为512~32768字节。所有传输以一个或多个完整的(连续的)块为单位。硬盘、CD-ROM和USB闪存盘是最常见的块设备。字符设备以字节为单位发送或接收一个字符流,且不可寻址。打印机、鼠标、网络接口,以及大多数与磁盘不同的设备都可以看做字符设备。
从设备访问方式来分,设备可分为顺序设备和随机设备。顺序设备上数据的逻辑顺序与物理存储顺序保持一致。
2.设备硬件组成 I/O设备一般由机械部件和电子部件两部分组成,两者以模块化生产和装配。机械部件即设备本身。电子部件称为设备控制器或适配器。在个人计算机上,设备控制器可以加工为芯片,以作为主板元器件,或者加工为可以插入扩展槽中的印制电路板的形式。控制器可以操作2、4个甚至8个相同的设备。每个设备都拥有自己的控制器。例如,控制IDE硬盘的IDE控制器,控制SCSI硬盘的SCSI控制器。常用硬盘一面的电路板就是硬盘控制器,其中包含的微码和处理器可以完成坏簇映射、缓冲和高速缓存等任务。控制器是设备的直接控制者,操作系统通过控制器间接控制设备。
3.设备控制器 操作系统如何与控制器通信以控制设备操作呢?控制器中具有一些用来与处理器通信的数据和控制信号寄存器。通过对这些寄存器执行写操作,操作系统实现向设备发送命令等操作,如发送数据、接收数据、开启及关闭设备等。通过对这些寄存器执行读操作,操作系统可以获得设备状态、设备是否准备好接收一条新的命令等。 除了控制器寄存器外,许多设备还有一个操作系统可以读写的数据缓冲区,如显示器的视频RAM就是一个数据缓冲区,操作系统或程序向其中写入数据以生成屏幕图像。 为了访问控制器中特定的寄存器,控制器中每个寄存器需要分配一个访问地址编号,即I/O端口号。I/O端口号的集合构成I/O地址空间。在IBM PC中,I/O地址空间与内存地址空间并未统一编址,I/O地址空间与内存地址空间的一部分重叠。为了将内存单元的访问同I/O端口的访问区分开来,处理器需要使用不同的指令。对端口的访问使用专用的I/O指令,例如,IN REG,PORT表示将控制寄存器PORT中的内容读取到CPU寄存器REG中。又如,OUT PORT,REG表示将CPU寄存器REG中的内容写入到控制寄存器PORT中。 在其他计算机中,I/O地址空间与内存地址空间统一编址,对控制器寄存器的访问和对内存单元的访问是通过地址所属范围来区分的,这称为内存映射I/O。PDP-11小型机就采用了这种处理方案。