计算机原理 - 第六章 输入输出系统

时间:2024-04-04 08:13:39

6.1 I/O设备

输入输出系统是连接CPU和I/O设备的子系统,负责的是用户如何将所需的信息(文字、图表、声音、视频等)通过不同的外设输入到计算机中,以及计算机内部处理的结果信息如何通过相应的外设输出给用户。I/O设备的复杂性都隐藏在操作系统和I/O接口中。

从交互方式来分,外设分为:人-机交互设备、机器可读设备。
从操作功能来分,外设分为:输入/输出设备、外部存储设备。

输入输出系统:用于控制外设与主存、外设与CPU之间进行数据交换的软、硬件系统
I/O硬件:I/O设备和I/O接口。
I/O设备:计算机系统与人或者它机之间进行信息交换的装置。
I/O接口:I/O设备与主机之间的传送信息的“桥梁”。
I/O软件:I/O任务要有专用软件参与主机和外设之间的信息交换。

 

各种I/O设备使用不同的操作方法,由CPU直接控制不同的I/O设备,不切实际。I/O设备的数据传送速度比存储器和处理器的速度慢得多,使用高速的系统总线与慢速的I/O设备直接连接,不切实际。I/O设备经常使用与处理器不同的数据格式和字长度。因此,需要I/O接口提供服务。

I/O接口是I/O设备与I/O控制器之间的连接器,主要负责屏蔽差异,提供一致的访问界面

I/O端口是I/O控制器中CPU能够访问到的各类寄存器。

从数据传输方式来分:串行(一次只传输1位),并行(多位一起进行传输)。
从能否连接多个设备来分:总线式(可连接多个设备),独占式(只能连接1个设备)。
从是否符合标准来分:标准接口 (通用接口),专用接口 。
按功能实现的灵活性来分:可编程接口,不可编程接口。

I/O控制器通过扩展卡或者南桥芯片与I/O总线连接,I/O总线经过北桥芯片与内存、CPU连接。

 

I/O端口的读写,就是向I/O设备送出命令或从设备取得状态或读/写设备数据。一个I/O控制器可能会有多个端口地址,I/O端口必须编号后,CPU才能访问。I/O设备的寻址方式就是I/O端口的编址方式。

(1) 统一编址方式:与主存统一编址,将主存空间分出一部分地址给I/O端口进行编号。

     与访存指令一致的存/取指令,便于扩大系统吞吐率,外设或I/O寄存器数目几乎不受限制,读写控制逻辑简单。但是主存空间减少,外设寻址时间长。

(2) 独立编址方式:单独编号,成为独立的I/O地址空间。

     I/O端口地址不占用存储器地址空间,故主存空间不受I/O地址的影响;I/O地址线较少,所以I/O端口译码简单,寻址速度快;使用专用I/O指令。但是程序设计灵活性差,增加了控制逻辑的复杂性和处理器引脚数。

 

注:《计算机原理》主要从硬件角度讨论I/O控制。
从软件角度讨论I/O控制是操作系统的主要内容——五大管理:作业、进程、存储、文件、设备
现代计算机系统中,用户程序和数据、操作系统自身的程序和数据,甚至各种输入输出设备,都是以文件形式出现。
文件是对存储设备的一种抽象,用户“按名取存”,无需知道这些文件究竟存放在什么地方。
文件管理:就是操作系统中实现文件统一管理的一组软件,负责文件的存储、检索、共享和保护。
设备管理:负责缓存管理、设备分配与处理、设备独立性和虚拟设备,追求设备的综合效率。

OS的职责由I/O系统的三个特性决定:
1、I/O系统被处理器执行的多个程序共享,由OS统一调度管理
2、I/O系统通常使用外部中断来要求处理器执行专门的输入/出程序。中断导致向内核态转移,故必须由OS来处理
3、I/O设备控制细节复杂,不能由上层用户程序来实现,需OS提供专门驱动程序
OS在I/O中必须提供的功能:
1、保证用户程序只能访问I/O设备中用户有权访问的那一部分。例如,用户程序不能读写没有授权的文件。
2、为用户程序提供设备的驱动程序,以屏蔽设备控制的细节
3、处理外部I/O设备产生的中断,提供中断服务程序
4、对共享的I/O资源提供合理的调度,使系统的吞吐率达到最佳
OS必须和I/O设备进行以下三类通信,并且阻止用户程序直接和I/O设备通信:
1、OS必须能给I/O设备提供命令,如:磁盘寻道
2、需要知道何时I/O设备完成操作?何时遇到什么异常情况?
3、数据必须能在主机(内存或CPU)和I/O设备之间进行传输

——学完这章就可以开始思考这些问题了,然后对比操作系统可以理解得更加深刻。

 

6.2 磁盘存储器

——磁记录原理不会考,这里仅讨论性能指标和计算。

信息以按盘片、柱面、磁道和扇区记录在磁表面上,每个盘面被划分成多个同心圆,称之为磁道。每个磁道都有一个编号,最外面的是0磁道。盘片组中所有盘面半径相同的磁道集合构成一个柱面。每个圆周被等分成若干个大小相同的弧段,每个弧段叫做扇区。每个扇区上记录一个信息块 。每个扇区存储容量为512字节。每个扇区都有一个编号。
磁盘与主机交换数据都是以扇区为单位进行的。

计算机原理 - 第六章 输入输出系统

1、操作系统控制访问磁盘。磁头定位到指定磁道上的过程称为寻道;磁头找到指定磁道的时间称之为寻道时间ts。
2、等待指定的扇区旋转到读/写头下的这段时间叫旋转时间tw。
3、传输一块(通常是一个扇区)数据所需的时间称之为传输时间,它是扇区大小、旋转速度和磁道记录密度的函数。大多数磁盘以多个扇区为单位进行传输twr。
4、磁盘控制器通常用来精细地控制磁盘以及磁盘与内存之间的数据传输,这段时间叫控制器传送时间,它是在进行I/O存取操作时控制器带来的开销,一般题目会给出或可以忽略不计。

磁道中为什么要留有间隙?
1、区分不同扇区和扇区内不同信息区;
2、为同步、伺服定位、地址等信息提供缓冲时间;
3、留出控制余量,以便在环境、电压变化或换盘组时确保可靠读出。

性能指标

1、记录密度:单位长度或单位面积磁表面存储的二进制信息数。

道密度Dt :在垂直于磁道或光道方向上单位长度磁介质所容纳的磁道数。

位密度Db :单位长度磁道上所能记录的二进制信息的位数。

     传统上,通常磁盘所有道的容量都是相同的。而各道的位密度Db是不同的,外圈磁道Db小,内圈磁道Db大。为提高重要信息的可靠性,外圈磁道多用于存储系统程序。

面密度DS :单位面积上记录二进制信息的位数。 DS=Dt × Db 。

     早期,磁盘各道上的位密度是不同的,外层的磁道密度小,内层磁道密度大,故不能用此公式。现代磁盘磁道上的位密度相同,故外道上的扇区数比内道的扇区数多,使整个磁盘的容量提高。

2、数据传输率 f :单位时间内外存储设备传输数据的位数或字节数。f=Db·π·Dmin / t。

3、磁盘容量:磁表面存储器所能记录的二进制信息总量,存储容量有格式化和非格式化之分。

非格式化容量Cn:完全从记录密度考虑的原始容量。Cn=f t m n=πDminDb m n。
     其中:f:数据传输率;与磁盘的接口有关;m:磁面数
                 t:转一圈所用时间;与磁盘的转速有关;n:磁道数/面
格式化容量Cf:格式化后所能记录的有效信息量。Cf = Bs St m n。
     其中:Bs:字节数/扇区;St:扇区数/道

4、存取时间 ta:磁头从现行磁道到目的磁道,并完成读写所需的时间。 ta=tS + tW+ tWR。

硬盘的操作流程如下:所有磁头同步寻道(由柱面号控制)→ 选择磁头(由磁头号控制) → 被选中的磁头等待扇区到达磁头下方(由扇区号控制)→ 读写该扇区中的数据。

5、误码率 Pe:是衡量磁表面存储器出错概率的参数,Pe=读出数据出错位数/总位数。

——需要会做经典计算题!例:

某磁盘机的盘组由9个盘片组成,其中专设1个盘面为伺服面,其它盘面为记录数据的盘面。盘存储区域内直径为6.1cm,外直径为12.9cm,道密度为180TPM,位密度为8000bpm。每道分为64个扇区,每个扇区数据为2KB,平均寻道时间为12ms,磁盘转速为7200RPM。试计算:
(1)盘组容量Cn和Cf各是多少字节?
(2)格式化前、后的数据传输率fn、ff分别为多少字节/秒?
(3)往任一磁道1次连续写入5个扇区数据的平均存取时间是多少?

计算机原理 - 第六章 输入输出系统

——最好理解但不必掌握,操作系统中也会有。

磁记录介质:用来保存信息
磁盘驱动器:完成磁盘上信息的定位和读写。包括读写电路、读\写转换开关、读写磁头与磁头定位伺服系统等
磁盘控制器:是主机控制磁盘驱动器读写磁盘数据的桥梁。包括控制逻辑、时序电路、“并→串”转换和“串→并”转换电路等。

磁盘控制器是主机与磁盘驱动器之间的接口,与磁盘驱动器之间并没有明确的界线。

 

6.3 Flash存储器

快闪式存储器,是一种电可擦写、可编程只读存储器(E2PROM),具有非易失性,但访问速度比磁盘快100-1000倍。相对于传统磁盘,其尺寸小。

需要磨损测量,由控制器通过重映射将写操作从那些写次数多的块转移到写入次数较少的块,尽可能延长寿命。

优盘一种基于通用串行总线(USB)接口的微型高容量移动存储设备,采用Flash Memory作为存储芯片。

Flash Memory与EEPROM比较:
相同点:属于不挥发的存储器,具有在线编程能力。
不同点:
1、EEPROM要求数据的写入或擦除每次一个字节,必须整个芯片擦除和重新编程;而Flash Memory允许以字块为存储单位写入或擦除,速度快;
2、EEPROM寿命有限,一般重新编程次数限于几万几十万次;而Flash Memory重新编程次数至少一百万次;
3、EEPROM的擦除、写和读存储的数据需要不同的电压;而Flash Memory只需单一的电压,工作功率较小。
 

6.4 光盘存储器

光存储器是通过激光手段对存储介质进行读写操作的设备,只要用光学方式读出,则是光存储器。

光盘存储器记录密度高,单片盘存储容量大,非接触式读写,光盘易于更换、便于保管,对环境条件没有苛求,但是光盘机寻道时间长,可擦写性能不如磁盘快。

——光存储器只需要掌握分类即可。

1、按记录介质分
(1) 形变型光盘
记录层表面形状发生变化,如凹凸、发泡与否等,形变型光盘是不可逆的。
(2) 相变型光盘
记录层发生相变,光学特性发生改变。
不可逆相变:晶态无法转变为非晶态,只能写一次;
可逆相变:晶态可以转变为非晶态,可写多次。
(3) 磁光型光盘
磁记录层的两种剩磁状态记录信息,可多次读写。

2、按存取方式分
(1) 只读型光盘
只能顺序读出,不能写入和擦除,出厂已写好信息。光道为由里向外的螺旋线,扇区长度、位密度均相同。
(2) 追记型光盘
用户只能写一次,一经写入,便不能更改光道可为一条从内向外的螺旋线( CD-R),亦可为一组同心圆(WORM)。属不可逆相变型光盘。
(3) 可擦型光盘
可读、可擦除、可多次写入,光道为同心圆

光存储器的未来是蓝光与全息光存储技术。

 

6.5 I/O方式

程序查询方式

I/O操作完全处于CPU的指令控制之下,是在CPU的寄存器与外设及其接口的数据缓冲寄存器之间进行,I/O设备不直接访问内存 。在传送数据前,需要查询外设的工作状态。仅当查询的状态满足条件时,才执行本次传送。

特点是简单、易控制、外围接口控制逻辑少,CPU与外设串行工作,效率低、速度慢,适于慢速设备;但是查询开销极大 (CPU完全在等待“外设完成”)。

 

中断

当外设准备好时,便向CPU发中断请求,CPU响应后,中止现行程序的执行,转入一个“中断服务程序”进行输入/出操作,实现主机和外设接口之间的数据传送,并启动外设工作。 “中断服务程序”执行完后,返回原被中止的程序断点处继续执行。此时,外设和CPU并行工作。

软件方法(轮询):设置一个异常状态寄存器(MIPS中为Cause寄存器),用于记录异常原因。中断查询程序根据中断请求状态,按优先级顺序来识别。如:MIPS的异常/中断查询程序入口为:0x8000 0180。
硬件方法(向量中断):用专门的硬件查询电路按优先级顺序识别异常,得到一个“中断类型号”,根据此号,到中断向量表中读取对应的中断服务程序的入口地址。优先级:将所有中断请求状态送到一个排队电路中,根据中断优先级识别出最高优先级的中断请求。

向量地址送到数据线上,因为它的本质只是一个标识,而非真正的地址。中断向量表也称中断入口地址表,中断向量是对应异常处理程序的入口地址。起始地址存放在一个异常表基址寄存器中。

典型的中断处理分为三个阶段:(允许多重中断的情况下)
中断准备阶段
保护现场及旧屏蔽字
查明中断原因(软件识别中断时)
设置新屏蔽字(用于修改中断处理优先级)
开中断
中断处理阶段
中断恢复阶段
关中断
恢复现场及旧屏蔽字
清“中断请求”
开中断
中断返回

宏观上 CPU 和 I/O 并行工作,微观上 CPU 中断现行程序为 I/O 服务。

计算机原理 - 第六章 输入输出系统

多重中断:在一个中断处理(即执行中断服务程序)过程中,若又有新的中断请求发生,而新中断优先级高于正在执行的中断,则应立即中止正在执行的中断服务程序,转取处理新的中断。也称中断嵌套。

中断响应优先级——由查询程序或硬件排队电路决定的优先权,反映多个中断同时请求时选择哪个中断响应
中断处理优先级——由中断服务程序动态设定相应的中断屏蔽字,反映本中断与其它中断之间的关系

程序查询方式与中断控制方式的比较:

(1)程序查询方式下,何时对设备进行I/O操作完全受CPU控制;中断控制方式下,何时对设备进行I/O操作由外设主动通知CPU;
(2)程序查询方式下,CPU与外设不能并行工作;中断驱动方式下,CPU与外设可以部分并行工作;
(3)程序查询方式无法处理异常事件;中断控制方式可以处理这些异常事件;
(4)程序查询方式硬件结构比较简单,缺点是CPU效率低并且只能进行数据传送;中断控制方式硬件结构相对复杂一些。

 

DMA(直接存储器存取

DMA方式是指独立于处理器、能在高速外设和主存之间直接传送数据,由专门硬件(DMA控制器)控制总线进行传输。DMA方式适用高速设备(如:磁盘、光盘等),成批数据交换,且单位数据间的时间间隔较短。

它采用“请求-响应”方式,每当高速设备准备好数据,就进行一次“DMA请求”,DMA控制器接收到DMA请求后,申请总线使用权。DMA控制器的总线使用优先级比CPU高。

它与中断控制方式结合使用:
1、DMA传送前,“寻道”“旋转”等操作结束时,通过“中断”告知CPU
2、DMA控制器控制总线传送数据时,CPU执行其他程序
3、DMA传送结束时,要通过“DMA结束中断”告知CPU

DMA方式的特点:
外围设备访问请求直接发往主存储器,不需要CPU做保存现场和恢复现场等工作。
DMA控制器中,需要设置数据寄存器、设备状态或控制寄存器、主存地址寄存器、设备地址寄存器和数据交换个数计数器
DMA开始和结束时,需要处理机进行管理:在DMA方式开始前,对DMA控制器进行初始化。传送主存缓冲区首地址、设备地址、数据块的长度等,并启动设备开始工作;在DMA方式结束后,向CPU申请中断,对数据缓冲区进行后处理。
DMA执行中,数据传送过程不需要CPU干预。

由于DMA接口和CPU共享主存,所以可能出现两者争用主存的现象,为使两者协调使用主存,DMA通常采用以下三种方式进行数据传送。

(1) CPU停止法(成组传送):DMA传输时,CPU脱离总线,停止访问主存,直到DMA传送一块数据结束。

优点:控制简单、适于传输率很高的外设实现成组数据传送
缺点:
1、CPU工作受影响。DMA访存时CPU基本处于停止状态;
2、主存周期没有被充分利用。即使I/O设备高速运行,但两个数据之间的准备间隔时间也总大于一个存储周期,所以主存周期没有被充分利用。

(2) 周期挪用法(单字传送):DMA传输时,CPU让出一个总线事务周期,由DMA控制总线来访问主存,传送完一个数据后立即释放总线。

优点:既能及时响应I/O请求,又能较好地发挥CPU和主存的效率。这种方式下,在下一数据的准备阶段,主存周期被CPU充分利用。因此适合于I/O设备的读写周期大于主存周期的情况。
缺点:每次DMA访存都要申请总线控制权、占用总线进行传送、释放总线,因此,会增加传输开销。

(3) 交替分时访问法:每个存储周期分成两个时间片,一个给CPU,一个给DMA,这样在每个存储周期内,CPU和DMA都可访问存储器。

适于CPU工作周期比主存存取周期更长的情况,不需要总线使用权的申请和释放。在这种方式下,CPU既不停止主程序运行也不进入等待状态,在CPU工作过程中,不知不觉完成DMA数据传送,故又被称为“透明DMA”方式。

 

CPU 响应DMA 请求和响应中断请求的区别:
1、CPU对中断请求的响应时间只能发生在每条指令执行完毕时,CPU对DMA 请求的响应时间可发生在每个总线周期结束时;
2、DMA 请求的优先级高于中断请求,DMA 方式常用于高速外设的成组数据传送,如果不及时处理将丢失信息。

计算机原理 - 第六章 输入输出系统

 

通道

通道是是一个特殊功能的处理器,有自己的指令(即通道命令)和程序,专门负责数据输入输出的传输控制。它四级I/O子系统的核心,将CPU进一步从I/O事务中解脱出来,使其有更多的时间从事计算工作,以提高关键部件的利用率。

通道完成一次数据传输的主要过程:
(1)在用户程序中使用访管指令进入OS管理程序,由OS管理程序组织一个通道程序,并启动通道;
(2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据输入输出工作;
(3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对输入输出中断请求进行处理。

通道可分为字节多路通道、数组多路通道和选择通道三种。

计算机原理 - 第六章 输入输出系统

中断控制方式(PIT)与通道传送方式(CH)的区别:
(1)PIT靠中止CPU现行程序,转去执行中断服务程序实现数据传送;而CH通过执行CHP实现数据传送
(2)PIT的中断服务程序与CPU的现行程序是串行工作的;而CH的CHP与CPU的现行程序是并行工作的
(3)CH是集中独立的硬件,可连接多台快速或慢速外设;而PIT只适用于慢速外设,且每个外设有自己的PIT接口和中断服务程序
(4)PIT的功能强,可处理各种突发事件;而CH只适用于对数据传送的控制
(5)PIT以CPU为中心;而CH则以主存为中心

DMA方式 与CH方式的区别:
(1)DMA主要靠专用接口硬件实现数据传送;而CH靠执行CHP实现数据传送
(2)DMA初始化由CPU完成;而CH则自动取CHP执行,执行I/O操作时无需初始化(因CCW包含了初始化信息)
(3)DMA仅控制高速PD成组传送;而CH可控制高、低速PD

 

I/O方式小结:

程序查询方式:CPU与I/O操作串行。数据传送由CPU执行查询程序完成。
中断控制方式:CPU与I/O操作部分并行。数据传送由CPU执行中断服务程序完成。
DMA控制方式:CPU与I/O操作并行。数据传送完全由DMA控制器完成,但DMA的前、后处理需CPU控制。
通道传送方式:CPU与通道并行。数据传送由通道完成,但CPU仍有传送通道控制字等任务,还需执行自愿进管等指令用来转入通道程序来管理I/O事务。
I/O处理机方式:CPU与I/O处理机并行。数据传送由I/O处理机完成,CPU完全从I/O事务中解脱出来。

 

6.6 并行与I/O:RAID盘阵

廉价磁盘冗余阵列(RAID)技术是用一个磁盘控制器控制多个磁盘的相互连接,把几个磁盘的存储空间整合起来,形成一个大的单一连续的存储空间,使多个磁盘的读写同步。是一种减少错误、增加效率和可靠性的技术 。
RAID特性:
(1) RAID盘阵是一组物理盘,操作系统将其视为单个逻辑盘;
(2) 数据分布在不同的物理磁盘上 ;
(3) 冗余磁盘用于存储校验信息,保证磁盘损坏时能有效恢复数据。

计算RAID3校验时,须将所有未写数据盘的原数据全部读出,再与写入盘的新数据异或形成新校验数据,并将其写入校验盘。
计算RAID4校验时:对小块写,只须将要写数据盘和校验盘的原数据读出,再与写入盘的新数据异或形成新校验数据,并将其写入校验盘。

条带化:把数据分散到多个磁盘上。在一组磁盘上进行条带化使得这一组磁盘对于软件来说是一个大磁盘,操作系统把一个访问分到几个磁盘上,从而简化了存储管理。

划分方式:
(1) 大条区交叉分布(以块交叉方式)时,若两个I/O请求访问不同磁盘上的数据,则可并行发送。减少了I/O排队时间。具有较快的I/O响应能力。如RAID4、RAID5、RAID6。其中,RAID5被广泛使用。
(2) 小条区交叉分布(以字/字节交叉方式)时,同一个I/O请求有可能并行传送其不同的数据块(条区),可获得较高的数据传输率。如RAID2、RAID3。 RAID3用于大数据集应用的场合,如:图像处理。

 

参考教材:

《Computer Organization and Design—The Hardware/ Software Interface》 (Fifth Edition) ,2014

《计算机组成原理与设计》机械工业出版社,2005