一、I/O系统概述
1、现在计算机结构
I/O 设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备
2、主机与I/O设备交互方式
I/O接口:又称I/O控制器、设备控制器,负责协调主机与外部设备之间的数据传输
现在的I/O接口(芯片)也会被集成在南桥芯片内部
3、I/O控制方式
后面有详细讲解
1)程序查询方式
CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“已完成”之后,再从数据寄存器取出输入数据
2)程序中断方式
等待键盘I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据
3)DMA控制方式
DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。
DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块) ,才向CPU发出一次中断请求。
对比
4)通道控制方式
通道:可以理解为是 “弱鸡版的CPU”。通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一
- CPU向通道发出I/O指令。指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备。CPU就可以去做其他事情
- 通道执行内存中的通道程序,控制I/O设备完成一系列任务
- 通道执行完规定 的任务后,向CPU发出中断请求,之后CPU对中断进行处理
4、I/O系统的组成
1)I/O硬件
包括外部设备、I/O接口 、I/O总线等
主机 <==> I/O接口 <==> I/O设备
2)I/O软件
包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现主机和I/O设备的信息交换。
I/O 指令:操作码 命令码 设备码
- 操作码:识别I/O指令
- 命令码:做什么操作
- 设备码:对哪个设备进行操作
通道指令:通道能识别的指令
通道程序提前编制好放在主存中在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系 列通道指令,代替CPU对I/O设备进行管理
二、输入输出设备
1、外部设备
输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。
输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。
外存设备:指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。
2、显示器
1)显示存储器
显示存储器(VRAM)也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。
VRAM容量 = 分辨率 × 灰度级位数
VRAM带宽 = 分辨率 × 灰度级位数 × 帧频
现代计算机中,显存除了作为当前显示帧的缓存,还会用于保存即将渲染的图像数据。
集成显卡计算机中,通常分配一片内存作为显存
2)字符显示器
将点阵存入由ROM构成的字符发生器中,在CRT进行光栅扫描的过程中,从字符发生器中依次读出某个字符的点阵,按照点阵中0和1代码不同控制扫描电子束的开或关,从而在屏幕上显示出字符。
对应于每个字符窗口,所需显示字符的ASCII代码被存放在视频存储器VRAM中,以备刷新。
三、外存储器
1、磁表面存储器
1)磁表面存储器概述
磁表面存储器:把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息
原理:当磁头和磁性记录介质有相对运动时,通过电磁转换完成读/写操作
优点:
- 存储容量大,位价格低
- 记录介质可以重复使用
- 记录信息可以长期保存而不丢失,甚至可以脱机存档
- 非破坏性读出,读出时不需要再生
缺点:
- 存取速度慢
- 机械结构复杂
- 对工作环境要求较高
2)磁盘设备的组成
存储区域:一块硬盘含有若干个记录面,每个记录面划分为若干条磁道,而每条磁道又划分为若干个扇区,扇区(也称块)是磁盘读写的最小单位,也就是说磁盘按块存取。
- 磁头数:即记录面数,表示硬盘总共有多少个磁头,磁头用于读取/写入盘片上记录面的信息,一个记录面对应一个磁头。
- 柱面数:表示硬盘每一面盘片上有多少条磁道。在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个圆柱面。
- 扇区数:表示每一条磁道上有多少个扇区。
硬盘存储器:硬盘存储器由磁盘驱动器(核心部件是磁头组件和盘片组件)、磁盘控制器和盘片组成
3)磁盘的性能指标
1. 磁盘的容量
一个磁盘所能存储的字节总数称为磁盘容量。磁盘容量有非格式化容量和格式化容量之分
- 非格式化容量是指磁记录表面可以利用的磁化单元总数。
- 格式化容量是指按照某种特定的记录格式所能存储信息的总量。
2. 记录密度
道密度是沿磁盘半径方向单位长度上的磁道数
位密度是磁道单位长度上能记录的二进制代码位数
面密度是位密度和道密度的乘积
磁盘所有磁道记录的信息量一定是相等的,并不是圆越大信息越多,故每个磁道的位密度都不同。
3. 平均存取时间
平均存取时间 = 寻道时间(磁头移动到目的磁道)+ 旋转延迟时间(磁头定位到所在扇区)+ 传输时间(传输数据所花费的时间)
4. 数据传输率
假设磁盘转数为r(转/秒),每条磁道容量为N个字节,则数据传输率为Dr = rN
4)磁盘地址
磁盘地址 = 驱动器号 + 柱面(磁道)号 + 盘面号 + 扇区号
- 驱动器号:一台电脑可能有多个硬盘
- 柱面(磁道)号:移动磁头臂(寻道)
- 盘面号:激活某个磁头
- 扇区号:通过旋转将特定扇区划过磁头下方
5)硬盘的工作过程
硬盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。
硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。
2、磁盘阵列RAID
RAID廉价冗余磁盘阵列:是将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性
- RAID0:条带化,提高存取速度,没有容错能力
- RAID1:镜像磁盘互为备份
- RAID2-5:通过数据校验提高容错能力
RAID通过同时使用多个磁盘,提高了传输率;通过在多个磁盘上并行存取来大幅提高存储系统的数据吞 吐量;通过镜像功能,可以提高安全可靠性;通过数据校验,可以提供容错能力。
四、I/O接口
1、I/O接口的作用
数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
控制和定时:接收从控制总线发来的控制信号、时钟信号
数据格式转换:串-并、并-串 等格式转换
与主机和设备通信:实现 主机—I/O接口—I/O设备 之间的通信
2、I/O接口的工作原理
内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连。
外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。
- 数据线:读写数据、状态字、控制字、中断类型号
- 地址线:指明 I/O端口
- 控制线:读/写I/O端口的信号、中断请求信号
控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一
I/O控制器中的各种寄存器称为I/O端口
1、发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)
2、读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息
3、读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
3、接口与端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器,每一个端口都对应着一个端口地址。
4、编址方式
1)统一编制
统一编制:靠不同的地址码区分内存和I/O设备,访存类的指令都可以访问I/O端口。
把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式。 靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。
优点:
- 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高端口有较大的编址空间
- 读写控制逻辑电路简单
缺点:
- 端口占用了主存地址空间,使主存地址空间变小
- 外设寻址时间长(地址位数多,地址译码速度慢)
2)独立编制
独立编制:靠不同的指令区分内存和I/O设备。只能用专门的I/O指令访问I/O端口
I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。
Intel 处理器常用,IN、OUT就是I/O指令
优点:
- 使用专用I/O指令,程序编制清晰
- I/O端口地址位数少,地址译码速度快
- I/O端口的地址不占用主存地址空间
缺点:
- I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差
- 需要CPU提供存储器读/写、I/O设备读/写两组控制
五、I/O控制方式
1、程序查询方式
1)程序查询
x86中的I/O指令实例
IN Rd, Rs:把I/O端口 Rs 的数据输入到CPU寄存器 Rd
OUT Rd, Rs:把CPU寄存器 Rs 的数据输出到I/O端口 Rd
2)程序查询特点
主要特点:CPU有“踏步”等待现象,CPU与I/O串行工作。
优点:接口设计简单、设备量少。
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。
3)程序查询分类
独占查询:CPU100%的时间都在查询I/O状态,完全串行
定时查询:在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态。查询的间隔内CPU可以执行其他程序
2、程序中断方式
1)中断概述
程序中断:指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
工作流程:
- 中断请求:中断源向CPU发送中断请求信号。
- 中断响应:响应中断的条件。(中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。)
- 中断处理:中断隐指令、中断服务程序。
2)中断请求的分类
关中断的作用:实现原子操作
IF:Interrupt Flag,存在PSW中,8086芯片的PSW如下
IF=1表示开中断(允许中断)
IF=0表示关中断(不允许中断)
非屏蔽中断:关中断时也会被响应(如:掉电)
可屏蔽中断:关中断时不会被响应
3)中断请求标记
每个中断源向CPU发出中断请求的时间是随机的。为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR, 当其状态为“1”时,表示中断源有请求。
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号, 以获取I/O的中断请求,CPU响应中断的时间是在每条指令执行阶段的结束时刻
CPU响应中断必须满足以下3个条件:
- 中断源有中断请求。
- CPU允许中断即开中断。
- 一条指令执行完毕,且没有更紧迫的任务。
4)中断判优
中断判优既可以用硬件实现,也可用软件实现:硬件排队器、查询程序
优先级:
- 硬件故障中断属于最高级,其次是软件中断
- 非屏蔽中断优于可屏蔽中断
- DMA请求优于I/O设备传送的中断请求
- 高速设备优于低速设备
- 输入设备优于输出设备
- 实时设备优于普通设备
5)中断处理过程
中断隐指令:保存原程序的PC值,并让PC指向中断服务程序的第一条指令
进入中断服务程序:把该程序第一条指令的地址放入PC
回到主程序:把K+1放入PC
6)中断隐指令执行过程
1. 关中断
在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
2. 保存断点
为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
3. 引出中断服务程序
引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
7)硬件向量法
3、多重中断
1)单重中断与多重中断
单重中断:执行中断服务程序时不响应新的中断请求。
多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。
2)中断屏蔽技术
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
实现多重中断条件:
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
屏蔽字设置的规律:
- 一般用
1
表示屏蔽,0
表示正常申请。 - 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
- 屏蔽字中‘1’越多,优先级越高。每个屏蔽字中至少有一个
1
(至少要能屏蔽自身的中断)。
4、程序中断方式
5、DMA方式
1)DMA方式过程
CPU向DMA控制器指明:要输入还是输出,要传送多少个数据,数据在主存、外设中的地址。
- 接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
- CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
- 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
- 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
- 向CPU报告DMA操作的结束。
2)DMA控制器
在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。
3)DMA传送过程
4)DMA传送方式
主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。
但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存:
- 停止CPU访存:需要数据传送时,停止CPU访存,总线控制权交给DMA控制器
- 交替访存:将CPU周期分为DMA访存和CPU访存两个部分
- 周期挪用(周期窃取):I/O设备需要访存时,挪用一个或几个存取周期
5)DMA方式的特点
主存和DMA接口之间有一条直接数据通路。 由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
- 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
- DMA传送速度快,CPU和外设并行工作,提高了系统效率。
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。