基本概念
- 输入:信息从外部送到主机
- 输出:信息从主机送到外部
- 接口:外设和主机传输数据进行协调(比如速度匹配、电平和格式转换)的逻辑部件
- 外部设备:输入输出设备或通过输入输出接口才能访问的外存储设备
- 输入设备:键盘、鼠标
- 输出设备:打印机、显示器
- 外存设备:硬磁盘、光盘、U盘
- IO系统构成
- IO软件
- 包括:驱动程序、用户程序、管理程序、升级补丁
- 通过IO指令和通道指令(详见后面IO控制方式的通道方式)实现CPU和IO设备信息交换
- IO硬件:
- 包括:外部设备、设备控制器和接口、IO总线
- 设备控制器控制IO设备
- IO接口(或设备控制器、适配器)和总线相连
- IO端口是接口电路的一些寄存器,可被CPU访问;IO接口是主机和外部的交接面(详见IO接口小节)
- IO软件
- IO控制方式
- 程序查询方式:CPU通过程序查询IO设备是否可用
- 程序中断方式:IO设备可用时向CPU发出中断请求
- DMA方式:用于主存和IO设备的数据交换,无需调用中断服务程序
- 通道方式
- 系统设置通道控制部件,每个通道挂接若干外设
- 通道程序保存在主存,由通道执行通道指令
- 通道指令实现数据传送,即执行IO操作(包括读、写、磁盘走带、寻道等)
- IO指令实现启停IO设备、查询通道和IO设备状态、对通道进行控制等
外部设备
输入设备
- 键盘
- 矩阵形式排列按键
- 按下键电信号连通;松开键电信号断开
- 键盘输入信息步骤:查出按哪个键、翻译为ASCII码、编码传给主机
- 鼠标
- 控制光标位置的定位输入设备
- 分为机械式和光电式
- 鼠标底部有传感器,可能检测运动的方向和距离
输出设备
- 显示器
- 按器件分类
- 阴极射线管(CRT)显示器
- 液晶显示器(LCD)
- 发光二极管(LED)显示器
- 按信息内容分类
- 字符显示器
- 图形显示器
- 图像显示器
- 按扫描方式分类(CRT显示器)
- 光栅扫描显示器:只能按固定顺序扫描,比如一行一行扫描
- 随机扫描显示器:可以按随意方向扫描
- 显示器按点阵方式运行,主要参数有
- 屏幕大小:对角线长度,单位英寸
- 分辨率:长宽的像素乘积
- 灰度级:同一个像素的灰度个数,比如8位有256个灰度,是256级
- 刷新:在光点消失前重新扫描显示,一次刷新需要扫描整个屏幕(通常是按行扫描)
- 刷新频率:单位时间刷新的次数,通常是60-120HZ(大于30HZ人类视觉就感受不到闪烁)
- 显示存储器(VRAM):即刷新存储器
- VRAM容量:分辨率
灰度级位数,单位比特 - VRAM带宽:VRAM容量
帧频(帧频是单位时间的画面数量,可以认为等于刷新频率)
- 按器件分类
- 打印机
- 按工作原理分类
- 击打式:比如针式打印机
- 非击打式:用物理化学方法印刷,比如喷墨式、激光打印机
- 按工作方式分类(都是点阵打印机)
- 针式打印机:多层复写,适合票据打印。原理简单、价格便宜;分辨率低、打印速度慢
- 喷墨式打印机:噪声小、高质量彩印、打印快;防水差
- 激光打印机:激光技术和电子显像技术结合,核心部件是感光鼓。打印质量高、速度快、噪声小;价格贵、不能复写打印
- 按工作原理分类
存储设备
基本介绍
- 目前主要使用磁表面存储器,如磁盘、磁带、磁鼓
- 容量大、可重复记录、可脱机存储、非破坏读出;存取慢、结构复杂
磁盘存储器
本节在第三章的外存储器中也有介绍,可以对应参考
- 组成
- 磁盘
- 磁头数:即盘面数,一个磁头对应一个盘面
- 柱面数:即一个盘面的磁道数
- 扇区数:即一个磁道的扇区个数。扇区又叫块,磁盘读写基本单位,磁盘按块存取。
- 磁盘驱动器:驱动磁盘转动并在盘面上通过磁头进行读写的装置,每个驱动器对应一个磁盘
- 磁盘控制器:属于磁盘面向计算机的接口设备,接受计算机命令,向磁盘驱动器发出控制信号
- 磁盘
- 原理
- 磁头和磁性介质相对运动完成读写操作
- 用存储介质的磁层磁化翻转状态表示二进制信息
- 性能指标
- 容量
- 非格式化容量:可利用的磁化单元总数
- 格式化容量:按某种格式能记录的信息总量
- 记录密度
- 道密度:半径方向单位长度磁道数
- 位密度:磁道单位长度的二进制代码位数
- 面密度:位密度乘以道密度,即单位面积二进制信息量
- 平均存取时间
- 寻道时间:半径方向定位,移动磁头到目标磁道的平均时间
- 旋转时间:角度定位,取盘面旋转半圈的时间
- 传输时间:定位后的传输时间
- 数据传输率:单位时间传输到主机的字节数,等于每秒转圈数
一个磁道的容量
- 容量
- 磁盘地址
- 驱动器号
- 磁道号(柱面号)
- 盘面号
- 扇区号
- 磁盘工作过程
- 操作为:寻址、读盘、写盘
- 每个操作对应一个控制字,具体操作是取控制字、执行控制字
- 硬盘的所有读写操作都是串行,不能同时进行
磁盘阵列
- RAID(廉价冗余磁盘阵列):把多个物理磁盘组成一个独立逻辑磁盘,数据交叉存储,并行访问
- RAID按可靠性等级从低到高分为
- RAID0:无冗余、无校验
- RAID1:采用磁盘镜像
- RAID2:采用纠错海明码
- RAID3:采用位交叉奇偶校验
- RAID4:采用块交叉奇偶校验
- RAID5:采用无独立校验的奇偶校验
- RAID0容量大、并行存取、速度快;没有容错能力
- RAID1用两个磁盘同时读写,相互备份;容量减半
- 特点总结:使用多个磁盘并行存取,速度快;通过镜像和校验提高可靠性和容错能力
光盘存储器
- 利用光学原理,非接触方式记录信息
- 组成:驱动器、控制器、光盘片、驱动软件
- 特点:存储密度高、轻便、便宜、容量大、存储期限久、易保存
- 分类
- CD-ROM:只读型光盘
- CD-R:只可写入一次信息
- CD-RW:可重复读写的光盘
- DVD-ROM(DVD是通用数字化多功能光盘):高容量CD-ROM
固态硬盘
- 详见第三章ROM存储器小节的固态硬盘内容
IO接口
IO接口是主机和外设的交接面,解决主机和外设信息形式和工作速度的差异问题
功能
- 控制主机和外设的通信,协调工作速度不同的问题
- 对CPU送来的地址码进行译码并选择设备
- 实现数据缓冲,也是为了解决速度不匹配问题
- 信号格式转换,解决信息形式不一致问题。比如电平转换、并-串或串-并转换、模-数或数-模转换
- 传送CPU控制命令、反馈外设的状态信息
结构
- IO接口的外部,主机侧通过IO总线连接内存、CPU等主机的设备,外设侧连接着各个外部设备
- IO接口内部包括
- 数据缓冲寄存器
- 双向的保存缓冲数据
- 连接数据总线
- 状态寄存器
- 从外设到主机传送状态信息
- 连接数据总线和IO控制逻辑部件
- 控制寄存器
- 从主机到外设传送控制信息
- 连接数据总线和IO控制逻辑部件
- IO控制逻辑部件
- 地址译码、传送控制信号到外设控制逻辑、传送状态到状态寄存器、发送或接收缓冲寄存器数据
- 连接地址总线、控制总线、控制寄存器、状态寄存器、数据缓冲寄存器
- 外设界面控制逻辑
- 接收或发送数据到外设,接受外设的状态发给IO控制逻辑,把IO控制逻辑发来的控制发送给外设
- 连接外设、连接IO控制逻辑部件
- 数据缓冲寄存器
- 对IO接口里的寄存器的访问通过操作系统的IO特权指令
- IO接口的这些可读写寄存器叫做IO端口
类型
- 按IO接口外设侧的传送数据方式分类
- 并行接口:多个位同时传
- 串行接口:一位一位的传
- 按主机的IO控制方式分类
- 程序查询接口
- 中断接口
- DMA接口
- 按功能的灵活性分类
- 可编程接口
- 不可编程接口
IO端口
- 指的是接口电路被CPU可直接访问的寄存器
- 分为数据端口(CPU可读写)、状态端口(CPU可读)、控制端口(可写)
- IO端口加上一些控制逻辑组成IO接口
- IO端口被CPU访问需要进行编址,编址方式有
- 统一编址
- 又叫存储器映射方式,把IO当作存储器的单元进行地址分配
- 优点是不需要专门的IO指令,方便;缺点是内存容量变小,执行速度慢
- 独立编址
- 又叫IO映射方式,IO端口的地址空间和主存地址空间是两个独立的空间
- 地址码形式相同,需要设置专门的IO指令来访问IO端口
- 优点是编程清晰、容易理解;缺点是需要CPU提高存储器读写、IO设备读写两组控制信号,复杂
- 统一编址
IO方式
程序查询
- 由主机程序实现信息交换
- 工作流程如下
- CPU初始化程序,设置传送参数
- 向IO接口发出命令,启动IO设备
- 取外设状态,不断查询外设状态,直至就绪
- 传送一次数据
- 修改地址,计数器(记录还需要传送几次数据)减1
- 当计数器大于0则返回第三步,否则程序结束
- 优点是设计简单、设备量少;缺点是CPU查询等待耗费时间(CPU踏步等待现象),且一段时间只能和一台设备交换信息
程序中断
- 详见计组笔记第五章的异常和中断机制
- 补充一个IO接口角度的中断驱动方式工作流程
- 接收CPU读命令
- 从外部设备读数据到数据寄存器
- 提供控制线给CPU发送中断信号
- 接收CPU取数据请求
- 把数据放到数据总线,传到CPU的寄存器中
DMA方式
DMA方式特点
- 外设和内存有直接数据通路,全称是直接存储器存取方式
- 数据不经过CPU,IO和CPU并行工作,不需要保存恢复CPU现场等操作,传送速度快
- 数据块传送时,主存地址、传送数据计数由硬件电路实现
- 主存开辟专门的缓冲区,接收和供给外设数据
- 开始前:通过程序进行预处理
- 结束后:通过中断方式进行后处理
DMA控制器
- 又叫DMA接口
- 组成为
- 主存地址计数器:存放数据主存地址
- 传送长度计数器:存放数据长度,计数溢出时即传送完毕(减到长度为0时)
- 数据缓冲寄存器:缓存传送的数据
- DMA请求触发器:接收IO设备的就绪控制信号
- 控制/状态逻辑:协调同步DMA请求信号和CPU响应信号、指定传送方向、修改传送参数
- 中断机构:传送完毕后向CPU提出中断请求
- 以单总线结构为例(即主存、CPU和IO接口都挂在一组总线上),DMA控制器功能如下(可结合后面的传送过程部分进行理解)
- 接受外设的DMA请求DRQ,向CPU发出总线请求HRQ
- CPU发出总线响应信号HLDA,让出系统总线控制权(地址总线、数据总线、控制总线)给DMA控制器,进入DMA周期
- 确定传送数据的主存地址和长度,自动修改主存地址计数器和传送长度计数器
- 规定传送方向,发出读写控制信号,执行数据传送
- 向CPU报告DMA操作完成
传送方式
CPU和IO设备同时访问主存时会发生冲突,本节介绍解决冲突的方式
- 块传送方式(停止CPU访存)
- 由DMA控制器向CPU发送停止信号,总线控制权交给DMA控制器
- 工作完成后向CPU发出操作完成信号,总线控制器归还给CPU
- 适合高速IO
- 单字传送方式(周期挪用、周期窃取)
- 当CPU不在访存:此时无冲突
- 当CPU正在访存:待存取周期结束再让出总线控制器给DMA控制器
- 当CPU正在申请访存:IO访存的优先级更高,因为IO不立刻访存会丢失数据
- 适合低速IO
- DMA和CPU交替访存
- 要求主存存取周期不到CPU工作周期的一半
- CPU工作周期分成两个部分,分别供CPU访存和DMA访存
- 不需要总线使用权的申请、建立、归还,而是通过分时控制
传送过程
可结合前面的DMA控制器功能的部分进行理解
- 预处理阶段
- CPU执行IO指令
- 测试IO设备状态
- 设置DMA控制器的传送长度计数器和主存地址计数器的初值
- 设置传送方向
- 启动IO设备
- IO设备准备好后向DMA控制器发送DMA请求
- DMA控制器向CPU发送总线请求(上一条的DMA请求和总线请求可以统称为DMA请求)
- CPU执行IO指令
- 数据传送阶段
- 基本传送单位:单字节、单字或数据块
- 本阶段完全由DMA硬件控制。比如基本传送单位为数据块的情况(比如硬盘),循环由DMA控制器实现而不是CPU
- 本阶段流程细化为(按单总线结构)
- 判断是否允许传送
- 是则把主存地址送总线,数据根据传送方向送IO设备或主存,修改主存地址计数器和传送长度计数器
- 判断是否结束传送。不结束则返回第一步,结束则进入后处理阶段
- 后处理阶段
- DMA控制器向CPU发送中断请求
- CPU执行中断服务程序做DMA结束处理
- 校验数据传输是否正确
- 错误需要转入诊断程序
- 决定是否继续用DMA传送数据块
和中断方式的区别
- 中断方式是程序的切换,需要保存、恢复现场;DMA方式数据传送阶段不占用CPU任何资源
- 中断响应在指令执行周期后;DMA响应可以在各个机器周期后(取指、间址、执行周期后),CPU不需占用总线时,便可以进行响应
- 中断传送需要CPU干预;DMA传送不需要CPU干预,适合高速外设成组数据传送
- DMA请求优先级高于中断请求,因为DMA传送几乎不占用CPU资源
- 中断方式还可以处理异常;DMA方式仅用于数据IO传送
- 中断方式靠程序传送;DMA方式靠硬件传送
通道控制方式
流程
- CPU向IO通道发送IO指令
- IO指令给出了通道程序首地址、要访问的IO设备
- 通道接收IO指令,执行通道程序
- 执行完成后通道向CPU发送中断请求
特点
- 通道程序保存在内存,即和CPU共享内存
- 通道自己控制数据块大小、传输的内存位置
- DMA方式在预处理阶段由CPU设置这些信息
- 一个通道可以控制多台设备和内存的数据交换
- DMA方式只能是一台设备