计算机组成原理笔记7-输入输出系统
基本概念*
I/O系统演变过程
-
早期: CPU和I/O串行工作,分散连接
程序查询方式:由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。
-
接口模块和DMA阶段: CPU和I/O并行工作,总线连接
中断方式:只有I/O设备准备就绪并向CPU发出中断请求时才予以响应。
DMA方式:主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无需调用中断服务程序。
-
具有I/O通道结构的阶段
在系统中设有通道控制部件,每个通道都挂接若干个外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。
-
具有I/O处理机的阶段
I/O系统基本组成*
一般来说,I/O系统由I/O软件和I/O硬件两部分构成。
-
I/O软件: 包括驱动程序、用户程序、管理程序、升级补丁等
通常采用I/O指令和通道指令实现CPU和I/O设备的信息交换。
-
I/O指令: CPU指令的一部分
操作码 命令码 设备码 操作码:识别I/O指令
命令码:做什么操作
设备码:对哪个设备进行操作
-
通道指令: 通道自身的指令
指出数据的首地址、传送字数、操作命令
通道指令放在主存中
由CPU执行启动I/O设备的指令,由通道代替CPU对I/O设备进行管理
-
-
I/O硬件 包括外部设备、设备控制器和接口、I/O总线等。
I/O方式简介
-
程序查询方式
-
程序中断方式
-
DMA方式
外部设备*
外部设备也称为外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。
输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。如:键盘、鼠标。
输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。
外存设备:是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。
显示器
屏幕大小:以对角线长度表示,常用的有12~29英寸等。
分辨率:所能表示的像素个数,屏幕上每一个光点就是一个像素,以宽、高的像素的乘积表示,例如:800600,1024768和1280*1020等。
灰度级:灰度级是指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同,灰度级越多,图像层次越清楚逼真,典型的有8位(256级)、16位等。n位可以表示 \(2^n\) 种不同的亮度或颜色。
刷新:光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示一遍,这个过程称为刷新。
刷新频率:单位时间内扫描整个屏幕内容的次数,按照人的视觉生理,刷新频率大于30Hz时才不会感觉闪烁,通常显示器刷新频率在60~120Hz。
显示存储器(VRAM):也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率最高,灰度级越多,刷新存储器容量越大。
外存储器
计算机的外存储器又称为辅助存储器,目前主要使用磁表面存储器。
所谓"磁表面存储",是指某些磁性材料薄薄地涂在金属绿或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。
磁表面存储器的优点:
- 存储容量大,位价格低;
- 记录介质可以重复使用;
- 记录信息可以长期保存而不丢失,甚至可以脱机存档;
- 非破环性读出,读出时不需要再生。
磁表面存储器的缺点:
- 存取速度慢;
- 机械结构复杂;
- 对工作环境要求较高。
原理:当磁头和磁性记录介质由相对运动时,通过电磁转换完成读/写操作。
编码方式:按某种方案(规律),把一连串的二进制信息变换成存储介质磁层中一个磁化翻转状态的序列,并使读/写控制i电路容易、可靠地实现转换。
磁记录方式:通常采用调频制(FM)和改进型调频制(MFM)的记录方式。
外存储器既可以作为输入设备,也可以作为输出设备。(既可以存数据,也可以读数据)
磁盘存储器
磁盘设备的组成:
-
存储区域:
一块硬盘含有若干个记录面,每个记录面划分为若干条磁道,而每条磁道又划分为若干个扇区,扇区(也称为快)是磁盘读写的最小单位,也就是说磁盘按块存取。
- 磁头数(Heads):即记录面数,表示硬盘总共有多少个磁头,磁头用于用于读取/写入盘片上记录面的信息,一个记录面对应一个磁头。
- 柱面数(Cylinders):表示硬盘每一面盘片上有多少条磁道。在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个圆柱面。
- 扇区数(Sectors):表示每一条磁道上有多少个扇区。
-
硬盘存储器:
硬盘存储器由磁盘驱动器、磁盘控制器和盘片组成。
磁盘控制器:核心部件是磁头组件和盘片组件,温切斯特盘是一种可移动头固定盘片的硬件存储器。
磁盘控制器:是硬盘存储器和主机的接口,主流的标准有IDE、SCSI、SATA等。
磁盘的性能指标:
-
磁盘的容量:一个磁盘所能存储的字节总数称为磁盘容量。磁盘容量有非格式化容量和格式化容量之分。(容量:非格式化>格式化)
非格式化容量是指磁记录表面可以利用的磁化单元总数;
格式化容量是指按照某种特定的记录格式所能存储信息的总量。
-
记录密度:记录密度是指盘片单位面机上记录的二进制的信息量,通常以道密度、位密度和面密度表示。
道密度是沿磁盘半径方向单位长度上的磁盘数;
位密度是磁道单位长度上能记录的二进制代码位数;
面密度是位密度和道密度的乘积。
注:磁盘所有磁道记录的信息量一定是相等的,并不是圆越大信息越多,故每个磁道的位密度都不同。
-
平均存取时间:
平均存取时间=寻道时间(磁头移动到目的磁道)+旋转延迟时间(磁头定位道所在扇区)+传输时间(传输数据所花费的时间)
-
数据传输率:磁盘存储器在单位时间内向主机传送数据的字节数,称为数据传输率。
假设磁盘转速为r(转/秒),每条磁道容量为N个字节,则数据传输率为\(D_r=rN\)
磁盘地址:
主机向磁盘控制器发送寻址信息,磁盘的地址一般如图所示:
驱动器号 | 柱面(磁道)号 | 盘面号 | 扇区号 |
---|
磁盘的工作过程:
硬盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。
硬盘属于机械式部件,其读写操作时串行的,不可能在同一时刻既读又写,也不可能读两组数据或写两组数据。
磁盘阵列:
RAID(廉价冗余磁盘阵列)是将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性。
RAID分级如下:
- RAID0:无冗余和无校验的磁盘阵列
- RAID1:镜像磁盘阵列
- RAID2:采用纠错的海明码的磁盘阵列
- RAID3:位交叉奇偶校验的磁盘阵列
- RAID4:块交叉奇偶校验的磁盘阵列
- RAID5:无独立校验的奇偶校验磁盘阵列
RAID通过同时使用多个磁盘,提高了传输率;通过在多个磁盘上并行存取来大幅提高存储系统的数据吞吐量;通过镜像功能,可以提高安全可靠性;通过数据校验,可以提供容错能力。
光盘存储器
光盘存储器是利用光学原理读/写信息的存储装置,它采用聚焦激光束对盘式介质以非接触的方式记录信息。
特点:存储密度高,携带方便,成本低,容量大,存储期限长,容易保存等
光盘的类型如下:
- CD-ROM:只读型光盘,只能读出其中内容,不能写入或修改。
- CD-R:只可写入一次信息,之后不可修改。
- CD-RW:可读可写光盘,可以重复读写。
- DVD-ROM:高容量的CD-ROM,DVD表示通用数字化多功能光盘。
固态硬盘
在微小型高档笔记本电脑中,采用高性能Flash Memory作为硬盘来记录数据,这种"硬盘"称固态硬盘。
固态硬盘除了需要Flash Memory外,还需要其他硬件和软件的支持。
注:闪存(Flash Memory)是在E2PROM的基础上发展起来的,本质上是只读存储器。
I/O接口
功能
I/O接口(I/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。
[1999唐朔飞版]*
接口的功能(要解决的问题):
- 实现主机和外设的通信联络控制
- 进行地址译码和设备选择
- 实现数据缓冲
- 信号格式的转换
- 传送控制命令和状态信息
接口的功能(具体操作):
- 设备选址
- 传送命令
- 传送数据
- 反馈I/O设备的工作状态
[2010袁春风版]
IO接口的作用:
- 数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
- 错误或状态检测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
- 控制和定时:接收从控制总线发来的控制信号,时钟信号
- 数据格式转换:串-并、并-串等格式转换
- 与主机和设备通信:实现主机-I/O接口-I/O设备之间的通信
基本结构
[1999唐朔飞版]*
内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连,实质上是与内存、CPU相连。数据的传输方式只能是并行传输的。
外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。
一个工作过程,以控制外设输入为例:
[2010袁春风版]
接口和端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器。
I/O端口要想能够被CPU访问,必须要有端口地址,每一个端口都对应着一个端口地址。
I/O端口及其编码方式:
-
统一编址:
把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称为存储器映射方式。
靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。
优点:不需要专门的输入/输出指令,可是CPU访问I/O的操作更灵活、更方便,还可使端口有较大的编址空间。
缺点:端口占用了存储器地址,使内存容量变小;外设寻址时间长(地址位数多,地址译码速度慢)
(RISC机器常用)
-
独立编址:
I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。
靠不同的指令区分内存和I/O设备。
优点:使用专用I/O指令,程序编址清晰,便于理解。I/O端口地址位数多,地址译码速度块快;I/O端口的地址不占用主存地址空间
缺点:输入/输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写,I/O设备读/写两组控制信号,增加了控制的复杂性。
接口的类型
按数据传送方式:
并行接口:一个字节或一个子所有位同时传送。
串行接口:一位一位地传送。
注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行传送的。接口要完成数据格式转换。
按主机访问I/O设备的控制方式:程序查询接口,中断接口,DMA接口。
按功能选择的灵活性:可编程接口,不可编程接口。
I/O方式
程序查询方式
流程图:
优点:接口设计简单,设备量少。
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。
接口结构:
CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序。
主要特点:CPU有“踏步”等待现象,CPU与I/O串行工作。
优点:接口设计简单,设备量少。
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且如果采用独占查询,则在一段时间内只能和一台外设交换信息,效率大大降低。
独占查询:CPU100%的时间都在查询I/O状态,完全串行
定时查询:在保证数据不丢失的情况下,每隔一端时间CPU就查询一次I/O状态。查询的间隔内CPU可以执行其他程序。
程序中断方式
中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊情况,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
工作流程
- 中断请求:中断源向CPU发送中断请求信号。
- 中断响应:响应中断的条件。中断判优:多个中断源同时提出请求。
- 中断处理:中断隐指令。中断服务程序。
注:中断隐指令----是指指令系统中没有的指令,它由CPU在中断响应周期自动完成。其功能是保护程序断点、硬件关中断、向量地址送PC(硬件向量法)或中断识别程序入口地址送PC(软件查询法)。
中断请求
中断请求的分类:
中断请求标记
每个中断源向CPU发出中断请求的时间是随机的。
为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为"1"时,表示中断源有请求。
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。
CPU响应中断必须满足以下3个条件:
- 中断源有中断请求。
- CPU允许中断即开中断。
- 一条指令执行完毕,且没有更紧迫的任务。
中断判优
实现: 既可以用硬件实现,也可用软件实现;
硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;
软件实现是通过查询程序实现的。
优先级设置:
- 硬件故障中断属于最高级,其次是软件中断;
- 非屏蔽中断优于可屏蔽中断;
- DMA请求优于I/O设备传送的中断请求,
- 高速设备优于低速设备;
- 输入设备优于输出设备
- 实时设备优于普通设备。
中断处理
过程:
中断隐指令的主要任务:
-
关中断:在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确低执行下去。
-
保存断点:为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
-
引出中断服务程序:引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
可通过软件查询法和硬件向量法。
硬件向量法:由硬件产生向量地址,再由向量地址(中断类型号)找到入口地址。
中断服务程序的主要任务:
- 保护现场:一是保存程序断点(PC),已由中断隐指令完成;二是保存通用寄存器和状态寄存器的内容,由中断服务程序完成。可以使用堆栈,可以是使用特定存储单元。
- 中断服务(设备服务):主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中。
- 恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器中。
- 中断返回:通过中断返回指令回到原程序断点处。
单重中断和多种中断
单重中断 | 多重中断 | |
中断隐指令 | 关中断 | 关中断 |
保存断点(PC) | 保存断点(PC) | |
送中断向量 | 送中断向量 | |
中断服务程序 | 保护现场 | 保护现场和屏蔽字 |
- | 开中断 | |
执行中断服务程序 | 执行中断服务程序 | |
- | 关中断 | |
恢复现场 | 恢复现场和屏蔽字 | |
开中断 | 开中断 | |
中断返回 | 中断返回 |
中断屏蔽技术
中断屏蔽技术主要用于多重中断,CPU要具有多重中断的功能,须满足下列条件。
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
小结
程序中断的作用如下:
- 实现CPU与I/O设备的并行工作。
- 处理硬件故障和软件错误。
- 实现人机交互,用户干预机器需要用到中断系统。
- 实现多道程序、分时操作,多道程序的切换需借助于中断系统。
- 实现处理需要借助中断系统来实现快速响应。
- 实现应用程序和操作系统(管态程序)的切换,称为"软中断"。
- 多处理器系统中各处理器之间的信息交流和任务切换。
扩展*
DMA方式
DMA控制器
每准备好一个数据都要中断CPU,由CPU运行中断服务程序来完成一次传送
磁盘机、磁带机等高速设备需要大批量的数据传送->CPU大量时间用于中断服务
由硬件实现控制大批量的数据传送->DMA控制器
在DMA方式中,当I/O设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。其主要功能有:
- 接受外设发出的DMA请求,并向CPU发出总线请求。
- CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
- 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
- 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
- 向CPU报告DMA操作的结束。
中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。
控制/状态逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步。
DMA请求触发器:每当I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位。
主存地址计数器:简称AR,存放要交换数据的主存地址。
传送地址长度计数器:简称WC,用来记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
数据缓冲寄存器:用于暂存每次传送的数据。
DMA传送过程
DMA传送方式
主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方式使用主存。
-
停止CPU访问主存
控制简单;CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率。
-
DMA与CPU交替访存
一个CPU周期分为\(C_1\)和\(C_2\)两个周期;\(C_1\)专供DMA访存,\(C_2\)专供CPU访存。
不需要总线使用权的申请、建立和归还过程。硬件逻辑更为复杂
-
周期挪用(周期窃取)
DMA访问主存有三种可能:
- CPU此时不访存(不冲突)
- CPU正在访存(存取周期结束让出总线)
- CPU和DMA同时请求访存(I/O访存优先)
DMA方式的特点
主存和DMA接口之间有一条直接数据通路。
由于DMA方式传输数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点;
- 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
- DMA传送速度快,CPU和外设并行工作,提高了系统效率。
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
DMA方式与中断方式
中断 | DMA | |
---|---|---|
数据传送 | 程序控制 程序的切换->保存和恢复现场 |
硬件控制 CPU只需进行预处理和后处理 |
中断请求 | 传送数据 | 后处理 |
响应 | 指令执行周期结束后响应中断 | 每个机器周期结束均可,总线空闲时可响应DMA请求 |
场景 | CPU控制,低速设备 | DMA控制器控制,高速设备 |
优先级 | 优先级低于DMA | 优先级高于中断 |
异常处理 | 能处理异常事件 | 仅传送数据 |