赞
踩
本文参考于《2021年计算机组成原理考研复习指导》(王道考研),《计算机组成原理》
思维导图:
输入/输出是以主机为中心而言的,将信息从外部设备传送到主机称为输入,反之称为输出。 I/O系统解决的主要问题是对各种形式的信息进行输入和输出的控制。
I/O系统中的几个基本概念如下:
(1)外部设备
包括输入/输出设备及通过输入/输出接口才能访问的外存储设备。
(2)接口
在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件。协调包括传输过程中速度的匹配、电平和格式转换等。
(3)输入设备
用于向计算机系统输入命令和文本、数据等信息的部件。 键盘和鼠标是最基本的输入设备。
(4)输出设备
用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。 显示器和打印机是最基本的输出设备。
(5)外存设备
指除计算机内存及CPU缓存等外的存储器。 硬磁盘、光盘等是最基本的外存设备。
一般来说,I/O系统由I/O软件和I/O硬件两部分构成
(1)I/O软件
包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现CPU与I/O设备的信息交换。
(2)I/O硬件
包括外部设备、设备控制器和接口、I/O总线等。 通过设备控制器来控制I/O设备的具体动作;通过I/O接口与主机(总线)相连。
I/O指令与通道指令:
I/O指令:
操作码字段可作为I/O指令与其他指令(如访存指令、算逻指令、控制指令等)的判别代码;命令码体现I/O设备的具体操作;设备码是多台I/O设备的选择码。
I/O指令的命令码一般可表述为如下几种情况:
I/O指令的设备码相当于设备的地址。
通道指令:
通道指令是对具有通道的I/O系统专门设置的指令,这类指令一般用以指明参与传送(写入或读取)的数据组在主存中的首地址;指明需要传送的字节数或所传送数据组的末地址;指明所选设备的设备码及完成某种操作的命令码。
通道指令又称通道控制字,它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。
基本的控制方式主要有以下4种:
(1)程序查询方式
由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
(2)程序中断方式
只在I/O设备准备就绪并向CPU发出中断请求时才予以响应
(3)DMA方式
主存和I/O设备间有一条直接数据通路,当主存和I/O设备交换信息时,无须调用中断服务程序。
(4)通道方式
通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可以视为一种具有特殊功能的处理器。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。它依据CPU的I/O指令进行启动、停止或改变工作状态,是从属于CPU的一个专用处理器。 在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。
其中,方式(1)、(2)主要用于数据传输率较低的外部设备,方式(3)、(4)主要用于数据传输率较高的设备
I/O处理机:
I/O处理机又称外围处理机,它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高。
例题:在微型机系统中,I/O设备通过()与主板的系统总线相连接
A.DMA控制器 B.设备控制器
C.中断控制器 D.I/O端口
答案:B;I/O设备与主机(CPU、内存)之间的通信不是直接的,而是通过设备控制器,设备控制器是I/O设备和主机之间的中介
外部设备也称外围设备,是除主机外的能直接或间接与计算机交换信息的装置。最基本的外部设备主要有键盘、鼠标、显示器、打印机、磁盘存储器和光盘存储器等。
键盘通常以矩阵的形式排列按键,每个键相当于一个开关,按下键时,电信号连通;松开键时,弹簧弹起键,电信号断开。
键盘输入信息可分为3个步骤:(1)查出按下的是哪个键;(2)将该键翻译成能被主机接收的编码,如ASCII码;(3)将编码传送给主机
鼠标是常用的定位输入设备,它把用户的操作与计算机屏幕上的位置信息相联系。常用的鼠标有光电式和机械式两种。
工作原理:鼠标在平面上移动时,其底部传感器把运动的方向和距离检测出来,从而控制光标做相应的运动。
按显示设备所用的显示器件分类,有阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器等。按所显示的信息内容分类,有字符显示器、图形显示器和图像显示器3大类。显示器属于用点阵方式运行的设备,有以下主要参数:
屏幕大小:以对角线的长度表示
分辨率:所能表示的像素个数,屏幕上的每个光点就是一个像素,以宽和高的像素数的乘积表示
灰度级:灰度级是指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同,灰度级越多,图像层次越清楚、逼真。
刷新:光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示一遍,这个过程称为刷新
刷新频率:指单位时间内扫描整个屏幕内容的次数。
显示存储器(VRAM):也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。
VRAM容量=分辨率 x 灰度级位数
VRAM带宽=分辨率 x 灰度级位数 x 帧频
(1)阴极射线管(CRT)显示器
按显示信息内容不同,可分为字符显示器、图形显示器和图像显示器;按扫描方式不同,可分为光栅扫描和随机扫描两种显示器。以下介绍字符显示器和图形显示器:
a.字符显示器:
显示字符的方法以点阵为基础。点阵的多少取决于显示字符的质量和字符窗口的大小。字符窗口是指每个字符在屏幕上所占的点数,它包括字符显示点阵和字符间隔。
将点阵存入由ROM构成的字符发生器中,在CRT进行光栅扫描的过程中,从字符发生器中依次读出某个字符的点阵,按照点阵中0和1代码的不同控制扫描电子束的开或关,从而在屏幕上显示字符。对应于每个字符窗口,所需显示字符的ASCII码被存放在视频存储器VRAM中,以备刷新。
b.图形显示器
将所显示图形的一组坐标点和绘图命令组成显示文件存放在缓冲存储器中,缓存中的显示文件传送给矢量(线段)产生器,产生相应的模拟电压,直接控制电子束在屏幕上的移动。为在屏幕上保留持久稳定的图像,需按一定的频率对屏幕反复刷新。这种显示器的优点是分辨率高且显示的曲线平滑。目前高质量的图形显示器采用这种随机扫描方式。缺点是当显示复杂图形时,会有闪烁感。
(2)液晶显示器(LCD)
原理:利用液晶的电光效应,由图像信号电压直接控制薄膜晶体管,再间接控制液晶分子的光学特性来实现图像的显示。
特点:体积小、重量轻、省电、无辐射、绿色环保、画面柔和、不伤眼等
(3)LED(发光二极管)显示器
原理:通过控制半导体发光二极管来显示文字、图形、图像等各种信息。
LCD与LED是两种不同的显示技术。LCD是由液态晶体组成的显示屏,而LED则是由发光二极管组成的显示屏。与LCD相比,LED显示器在亮度、功耗、可视角度和刷新速率等方面都更具优势
按工作原理,打印机分为击打式和非击打式两大类;按工作方式,打印机分为点阵打印机、针式打印机、喷墨式打印机、激光打印机等
(1)针式打印机
原理:在联机状态下,主机发出打印命令,经接口、检测和控制电路,间歇驱动纵向送纸和打印头横向移动,同时驱动打印机间歇冲击色带,在纸上打印出所需的内容。
特点:针式打印机擅长多层复写打印,实现各种票据或蜡纸等的打印。其工作原理简单,造价低廉,耗材便宜,但打印分辨率和打印速度不够高。
(2)喷墨式打印机
原理:带电的喷墨雾点经过电极偏转后,直接在纸上形成所需字形。彩色喷墨打印机基于三基色原理,即分别喷射3种颜色的墨滴,按一定的比例混合出所要求的颜色
特点:打印噪声小,可实现高质量彩色打印,通常打印速度比针式打印机快;但防水性差,高质量打印机需专用打印纸。
(3)激光打印机
原理:计算机输出的二进制信息,经过调制后的激光束扫描,在感光鼓上形成潜像,再经过显影、转印和定影,在纸上得到所需的字符或图像。
特点:打印质量高、速度快、噪声小、处理能力强;但耗材多、价格较贵、不能复写打印多份,且对纸张的要求高。
激光打印机是将激光技术和电子显像技术相结合的产物。感光鼓(也称硒鼓)是激光打印机的核心部件。
计算机的外存储器又称辅助存储器,目前主要使用磁表面存储器
所谓磁表面存储,是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为磁载体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。
磁表面存储器的优点:(1)存储容量大,位价格低;(2)记录介质可重复使用;(3)记录信息可长期保存而不丢失,甚至可以脱机存档;(4)非破坏性读出,读出时不需要再生。缺点:存取速度慢,机械结构复杂,对工作环境要求高
(1)磁盘设备的组成
a.存储区域
一块硬盘含有若干记录面,每个记录面划分为若干磁道,而每条磁道又划分为若干扇区,扇区(也称块)是磁盘读写的最小单位,即磁盘按块存取。
b.硬盘存储器的组成
硬盘存储器由磁盘驱动器、磁盘控制器和盘片组成
(2)磁记录原理
原理:磁头和磁性记录介质相对运动时,通过电磁转换完成读/写操作
编码方法:按某种方案(规律),把一连串的二进制信息变换成存储介质磁层中一个磁化翻转状态的序列,并使读/写控制电路容易、可靠地实现转换。
磁记录方式:通常采用调频制FM和改进型调频制MFM的记录方式
(3)磁盘的性能指标
a.磁盘的容量
一个磁盘所能存储的字节总数称为磁盘容量, 磁盘容量有非格式化容量和格式化容量之分。 非格式化容量是指磁记录表面可以利用的磁化单元总数,格式化容量是指按照某种特定的记录格式所能存储信息的容量。
b.记录密度
记录密度是指盘片单位面积上记录的二进制信息量,通常以道密度、位密度和面密度表示。 道密度是沿磁盘半径方向单位长度上的磁道数,位密度是磁道单位长度上能记录的二进制代码位数,面密度是位密度和道密度的乘积。
c.平均存取时间
平均存取时间由寻道时间(磁头移动到目的磁道的时间)、旋转延迟时间(磁头定位到要读写扇区的时间,即旋转一周时间的一半)和传输时间(传输数据所花费的时间)三部分构成。 由于寻道和找扇区的距离远近不一,因此前两部分通常取平均值。
d.数据传输率
磁盘存储器在单位时间内向主机传送数据的字节数,称为数据传输率。 假设磁盘转速为r转/s,每条磁道容量为N字节,则数据传输率为
Dr=rN
(4)磁盘地址
主机向磁盘控制器发送寻址信息, 磁盘的地址如图:
若系统中有4个驱动器,每个驱动器带一个磁盘,每个磁盘256个磁道、16个盘面,每个盘面划分为16个扇区,则每个扇区地址要18位二进制代码,格式如图:
(5)硬盘的工作过程
硬盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。
硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。
RAID(廉价冗余磁盘阵列)是指将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问 ,具有更好的存储性能、可靠性和安全性。
RAID的分级如下所示。在RAID1~RAID5几种方案中,无论何时有磁盘损坏,都可随时拔出受损的磁盘再插入好的磁盘,而数据不会损坏,提升了系统的可靠性。
RAID0把连续多个数据块交替地存放在不同物理磁盘的扇区中,几个磁盘交叉并行读写,不仅扩大了存储容量,而且提高了磁盘数据存取速度,但RAID0没有容错能力。
为了提高可靠性,RAID1使两个磁盘同时进行读写,互为备份,若一个磁盘出现故障,可从另一磁盘中读出数据。 两个磁盘当一个磁盘使用,意味着容量减少一半。
RAID通过同时使用多个磁盘,提高了传输率;通过在多个磁盘上并行存取来大幅提高存储系统的数据吞吐量;通过镜像功能,提高安全可靠性;通过数据校验,提供容错能力。
光盘存储器是利用光学原理读/写信息的存储装置,它采用聚焦激光束对盘式介质以非接触方式记录信息。
完整的光盘存储系统由光盘片、光盘驱动器、光盘控制器和光盘驱动软件组成。
特点:存储密度高、携带方便、成本低、容量大、存储期限长、易保存
光盘的类型如下:
微小型高档笔记本计算机采用高性能Flash Memory作为硬盘来记录数据,这种“硬盘”称固态硬盘。固态硬盘除需要Flash Memory外,还需其他硬件和软件的支持。
例题:下列关于磁盘的说法中,错误的是()
A.本质上,U盘(闪存)是一种只读存储器
B.RAID技术可以提高磁盘的磁记录密度和磁盘利用率
C.未格式化的硬盘容量要大于格式化后的硬盘容量
D.计算磁盘的存取时间时,寻道时间和旋转等待时间常取其平均值
答案:B;RAID将多个物理盘组合成逻辑盘,不会影响磁记录密度,也不会提高磁盘利用率
例题:硬磁盘共有4个记录面,存储区域内半径为10cm,外半径为15.5cm,道密度为60道/cm,外层位密度为600bit/cm,转速为6000转/分
(1)硬磁盘的磁道总数为多少
(2)硬磁盘的容量为多少
(3)将长度超过一个磁道容量的文件记录在同一个柱面上是否合理
(4)采用定长数据块记录格式,直接寻址的最小单位是什么?寻址命令中磁盘地址如何表示?
(5)假定每个扇区的容量为512B,每个磁道有12个扇区,寻道的平均等待时间为10.5ms,试计算磁盘平均存取时间
答案:(1)1320;(2)9636000B;(3)合理,因为不需要重新寻找磁道,这样数据读/写速度快;
(4)扇区;
(5)16.33ms;
I/O接口(I/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。 主机和外设具有各自的工作特点,它们在信息形式和工作速度上具有很大的差异,接口正是为了解决这些差异而设置的。
I/O接口的主要功能如下:
(1)实现主机和外设的通信联络控制。 解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
(2)进行地址译码和设备选择。 CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
(3)进行数据缓冲。 CPU与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据
(4)信号格式的转换。 外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等
(5)传送控制命令和状态信息。 CPU要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求时,CPU也应有相应的响应信号反馈给外设。
I/O接口在主机侧通过I/O总线与内存、CPU相连。通过数据总线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送。同时接口和设备的状态信息被记录在状态寄存器中,通过数据线将状态信息送到CPU。CPU对外设的控制命令也通过数据线传送,一般将其送到I/O接口的控制寄存器。 状态寄存器和控制寄存器在传送方向上是相反的。
接口中的地址线用于给出要访问的I/O接口中的寄存器的地址,它和读/写控制信号一起被送到I/O接口的控制逻辑部件, 其中地址信号用以选择和主机交换信息的寄存器,通过控制线传送来的读/写信号确认是读寄存器还是写寄存器,此外控制线还会传送一些仲裁信号和握手信号。
接口中的I/O控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送到外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。 另外,它还要具有收集外设状态到状态寄存器的功能,
对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为I/O指令, I/O指令只能在OS内核的底层I/O软件中使用,它们是一种特权指令。
注意接口和端口是两个不同的概念。端口是指接口电路中可以进行读/写的寄存器,若干端口加上相应的控制逻辑才可以组成接口。
(1)按数据传送方式可分为并行接口 (一字节或一个字的所有位同时传送)和串行接口 (一位一位地传送),接口要完成数据格式的转换。
此处的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行传送的
(2)按主机访问I/O设备的控制方式可分为程序查询接口、中断接口和DMA接口等。
(3)按功能选择的灵活性可分为可编程接口 和不可编程接口
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口、状态端口和控制端口, 若干端口加上相应的控制逻辑电路组成接口。通常,CPU能对数据端口执行读写操作,但对状态端口只能执行读操作,对控制端口只能执行写操作。
I/O端口要想能够被CPU访问,就必须要对各个端口进行编号,每个端口对应一个端口地址。而对I/O端口的编址方式有与存储器统一编址和独立编址两种。
(1)统一编址,又称存储器映射方式
统一编址是指把I/O端口当做存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口。
优点:不需要专门的输入/输出指令,可使CPU访问I/O的操作更灵活、更方便,还可使端口有较大的编址空间。缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢。
(2)独立编址,又称I/O映射方式
I/O端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的I/O指令来访问I/O端口。
优点:输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。缺点:输入/输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制的复杂性。
I/O指令与通道指令的区别:
I/O指令是CPU指令系统的一部分,是CPU用来控制输入/输出操作的指令,由CPU译码后执行。在具有通道结构的机器中,I/O指令不实现I/O数据传送,主要完成启、停I/O设备,查询通道和I/O设备的状态,及控制通道进行其他一些操作等。具有通道指令的计算机,一旦CPU执行了启动I/O设备的指令,就由通道来代替CPU对I/O设备的管理
通道指令是通道本身的指令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等操作。
例题:下列选项中,在I/O总线的数据线上传输的信息包括()
1.I/O接口中的命令字 2.I/O接口中的状态字
3.中断类型号
答案:1,2,3;中断类型号是系统为每一个中断源分配的代号,中断类型号指出了中断向量存放的地址。外设需向CPU发出中断请求信号
例题:磁盘驱动器向盘片磁道记录数据时采用()方式写入
A.并行 B.串行
C.并行-串行 D.串行-并行
答案:B;
常用的I/O方式有程序查询、程序中断、DMA和通道等,其中前两种方式更依赖于CPU中程序指令的执行
信息交换的控制完全由主机执行程序实现, 程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行I/O操作时,先发出询问信号,读取设备的状态并根据设备状态决定下一步操作是进行数据传送还是等待(对输入而言,准备就绪意味着接口电路中的数据缓冲寄存器已装满欲传送的数据,称为输入缓冲满,CPU即可取走数据;对输出而言,准备就绪意味着接口电路中的数据已被设备取走,故称为输出缓冲空,这样CPU可再次将数据送到接口,设备可再次从接口接收数据)。当I/O设备较多时,CPU需按各个I/O设备在系统中的优先级别进行逐级查询。
程序查询方式的工作流程如下:
(1)CPU执行初始化程序,并预置传送参数
(2)向I/O接口发出命令字,启动I/O设备
(3)从外设接口读取其状态信息
(4)CPU不断查询I/O设备状态,直到外设准备就绪
(5)传送一次数据
(6)修改地址和计数器参数
(7)判断传送是否结束,若未结束转(3),直到计数器为0
在这种控制方式下,CPU一旦启动I/O,就必须停止现行程序的运行,并在现行程序中插入一段程序。程序查询方式的主要特点是CPU有踏步等待现象,CPU和I/O串行工作。这种方式的接口设计简单、设备量少,但CPU在信息传送过程中要花费很多时间来查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。
CPU中通常设有处理中断的机构——中断系统,以解决各种中断的共性问题。
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
程序中断的作用如下:
(1)实现CPU与I/O设备的并行工作
(2)处理硬件故障和软件错误
(3)实现人机交互,用户干预机器需要用到中断系统
(4)实现多道程序、分时操作, 多道程序的切换需借助于中断系统
(5)实时处理需要借助中断系统来实现快速响应
(6)实现应用程序和OS(管态程序)的切换,称为软中断
(7)多处理器系统中各处理器之间的信息交流和任务切换
程序中断方式的思想:CPU在程序中安排好于某个时刻启动某台外设,然后CPU继续执行原来的程序,不需要像查询方式那样一直等待外设准备就绪。一旦外设完成数据传送的准备工作,就主动向CPU发出中断请求,请求CPU为自己服务。在可以响应中断的条件下,CPU暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
程序中断和调用子程序的区别:
两者的根本区别主要表现在服务时间和服务对象上不一样
(1)调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在的位置是已知的和固定的。而中断过程发生的时间一般是随机的,CPU在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的。
(2)子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系
(3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。
(4)子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大。
从宏观上来看,虽然程序中断方式克服了程序查询方式中的CPU踏步现象,实现了CPU与I/O并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断服务程序时,仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批的与主存交换信息时,需要不断打断CPU执行现行程序,而执行中断服务程序。
一次中断处理过程可分为5个阶段:中断请求、中断判优、中断响应、中断服务、中断返回。
(1)中断请求
中断请求是指中断源向CPU发送中断请求信号
a.内中断和外中断
中断源是请求CPU中断的设备或事件,一台计算机允许有多个中断源。根据中断源的类别,可把中断源分为内中断 和 外中断两种。
每个中断源向CPU发出中断请求的时间是随机的。为记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为1时,表示中断源有请求。这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
外中断是指来自处理器和内存以外的部件引起的中断,包括I/O设备发出的I/O中断、外部信号中断(如用户按Esc键),以及各种定时器引起的时钟中断等。 外中断在狭义上一般称为中断。
内中断主要是指在处理器和内存内部产生的中断,包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断及用户态到核心态的切换等。
b.硬件中断和软件中断
硬件中断:通过外部的硬件产生的中断。硬件中断属于外中断。
软件中断:通过某条指令产生的中断,这种中断是可以编程实现的。软件中断是内中断。
c.非屏蔽中断和可屏蔽中断
非屏蔽中断:非屏蔽中断是一种硬件中断,此种中断通过不可屏蔽中断请求NMI控制,不受中断标志位IF的影响,即使在关中断 (IF = 0)的情况下也会被响应。
可屏蔽中断:可屏蔽中断也是一种硬件中断,此种中断通过中断请求标记触发器INTR控制,且受中断标志位IF的影响,在关中断情况下不接受中断请求。
可屏蔽中断和非屏蔽中断均是外中断。
(2)中断判优
中断系统在任一瞬间只能响应一个中断源的请求。由于许多中断源提出中断请求的时间都是随机的,因此当多个中断源同时提出请求时,需通过中断判优逻辑确定响应哪个中断源的请求。例如故障中断的优先级别较高,然后是I/O中断。
中断判优既可以用硬件实现,又可用软件实现。硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,又可以分散在各个中断源中,软件实现是通过查询程序实现的。
一般来说,硬件故障中断属于最高级,其次是软件中断,非屏蔽中断优于可屏蔽中断,DMA请求优于I/O设备传送的中断请求,高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备等。
(3)CPU响应中断的条件
CPU响应中断必须满足以下3个条件:
a.中断源有中断请求
b.CPU允许中断且开中断
c.一条指令执行完毕,且没有更紧迫的任务
I/O设备的就绪时间是随机的,而CPU在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,即CPU响应中断的时间是在每条指令执行阶段的结束时刻。 这里说的中断仅指外中断,内中断不属于此类情况。
(4)中断隐指令
CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,称为中断隐指令。 中断隐指令并不是指令系统中的一条真正的指令, 它没有操作码,所以中断隐指令是一种不允许也不可能为用户使用的特殊指令。它所完成的操作如下:
a.关中断
在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确地执行。
b.保存断点
为保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即PC的内容)保存起来
c.引出中断服务程序
引出中断服务程序的实质是,取出中断服务程序的入口地址并传送给PC。
(5)中断向量
不同的设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到这个入口地址,即中断向量,把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表,即中断服务程序的入口地址表。
CPU响应中断后,中断硬件会自动将中断向量地址传送到CPU,由CPU实现程序的切换,这种方法称为中断向量法,采用中断向量法的中断称为向量中断。
中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址的地址。
向量中断、中断向量、向量地址:
中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表
向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号。
向量中断:指一种识别中断源的技术或方式。识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址。
(6)中断处理过程
a.关中断
处理器响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断的请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。
b.保存断点
为保证中断服务程序执行完毕后,能正确地返回到原来的程序,必须将原来的程序的断点保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。
c.引出中断服务程序
引出中断服务程序的实质是,取出中断服务程序的入口地址送入PC
通常有两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法。
硬件向量法通过硬件产生中断向量地址,再由中断向量地址找到中断服务程序的入口地址。软件查询法用软件编程的办法寻找入口地址。
硬件产生的实际上是中断类型号,而中断类型号指出了中断向量存放的地址,因此能产生中断向量地址。
d.保存现场和屏蔽字
进入中断服务程序后首先要保存现场,现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容
e.开中断
允许更高级中断请求得到响应,实现中断嵌套
f.执行中断服务程序
这是中断请求的目的
g.关中断
保证在恢复现场和屏蔽字时不被中断
h.恢复现场和屏蔽字
将现场和屏蔽字恢复到原来的状态
i.开中断、中断返回
中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序
其中,a,b,c在CPU进入中断周期后,由中断隐指令(硬件自动)完成;其余由中断服务程序完成,中断服务程序的流程分为四大部分:保护现场、中断服务、恢复现场、中断返回
恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。中断返回由中断服务程序的最后一条中断返回指令完成。
若CPU在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,而CPU对新的中断请求不予响应,则这种中断称为单重中断。 若CPU暂停现行的中断服务程序,转去处理新的中断请求,则这种中断称为多重中断,又称中断嵌套。
中断屏蔽技术主要用于多重中断。CPU要具备多重中断的功能,必须满足下列条件
(1)在中断服务程序中提前设置开中断指令
(2)优先级别高的中断源有权中断优先级别低的中断源
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
例:设某机有4个中断源A、B、C、D,其硬件排队优先次序为A>B>C>D,现要求将中断处理次序改为D>A>C>B
(1)写出每个中断源对应的屏蔽字
(2)按图所示的时间轴给出的4个中断源的请求时刻,画出CPU执行程序的轨迹。设每个中断源的中断服务程序时间均为20μs
答案:(1)D具有最高优先级,可以屏蔽其他所有中断,且不能中断自身,因此D对应的屏蔽字为1111;A只能被D中断,因此A对应的屏蔽字为1110,以此类推
(2)
中断响应优先级与中断处理优先级:
中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态地改变;而中断处理优先级可以由中断屏蔽字来改变, 反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为0,对新中断开放),若是,则中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。
DMA方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的特点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设和内存之间开辟一条直接数据通道,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。 由于数据传送不经过CPU,也就不需要保护、恢复CPU现场等烦琐的操作。
这种方式适用于磁盘机、磁带机等高速设备大批量数据的传送,它的硬件开销比较大。在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理。
主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
DMA方式具有以下特点:
(1)它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
(2)在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
(3)主存中要开辟专用缓冲区,及时供给和接收外设的数据。
(4)DMA传送速度快,CPU和外设并行工作,提高了系统效率。
(5)DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
在DMA方式中,对数据传送过程进行控制的硬件称为DMA控制器(DMA接口)。 当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。 其主要功能如下:
(1)接受外设发出的DMA请求,并向CPU发出总线请求
(2)CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期
(3)确定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数
(4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作
(5)向CPU报告DMA操作的结束
下图给出了一个简单的DMA控制器
在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线, CPU的主存控制信号被禁止使用。 而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。由此可见,DMA控制器必须具有控制系统总线的能力。
主存和DMA控制器之间有一条数据通路,由此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方式使用主存:
(1)停止CPU访问主存:
这种方式是当外设需要传送成组数据时,由DMA接口向CPU发送一个信号,要求CPU放弃地址线、数据线和有关控制线的使用权,DMA接口获得总线控制权后,开始进行数据传送。数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交还给CPU。在这种传送过程中,CPU基本处于不工作状态或保持原始状态。
(2)DMA与CPU交替访存:
这种方式适用于CPU的工作周期比主存存取周期长的情况。 例如,若CPU的工作周期是1.2μs,主存的存取周期小于0.6μs,则可将一个CPU周期分为C1和C2两个周期,其中C1专供DMA访存,C2专供CPU访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的。
(3)周期挪用(或周期窃取)
这种方式是前两种方式的折中。当I/O设备没有DMA请求时,CPU按程序的要求访问主存,一旦I/O设备有了DMA请求,就会遇到3种情况:a.此时CPU不在访存(如CPU正在执行乘法指令),因此I/O的访存请求与CPU未发生冲突;b.CPU正在访存,此时必须待存取周期结束后,CPU再将总线占有权让出;c.I/O和CPU同时请求访存,出现访存冲突,此时CPU要暂时放弃总线占有权,由I/O设备挪用一个或几个存取周期。
DMA的数据传送过程分为预处理、数据传送和后处理3个阶段
(1)预处理
由CPU完成一些必要的准备工作。 首先,CPU执行几条I/O指令,用以测试I/O设备状态,向DMA控制器的有关寄存器置初值、设置传送方向、启动该设备等。然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用以传输数据。
(2)数据传送
DMA的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。 对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。这一循环也是由DMA控制器(而非通过CPU执行程序)实现的,即数据传送阶段完全由DMA(硬件)控制
(3)后处理
DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转入诊断程序)及决定是否继续使用DMA传送其他数据块等。
(1)中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源
(2)对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期后);而对DMA请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期后均可),只要CPU不占用总线就可被响应。
(3)中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送
(4)DMA请求的优先级高于中断请求
(5)中断方式具有对异常事件的处理能力,而DMA方式仅局限于传送数据块的I/O操作
(6)从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送
例题:
答案:D;屏蔽自身和L3
例题:若某设备中断请求的响应和处理时间为100ns,每400ns发出一次中断请求,中断响应所允许的最长延迟时间为50ns,则在该设备持续工作过程中,CPU用于该设备的I/O时间占整个CPU时间的百分比至少是()
答案:25%;每400ns发出一次中断请求,而响应和处理时间为100ns,其中容许的延迟为题目干扰信息,因为在50ns内,无论怎么延迟,每400ns仍要花费100ns处理中断
例题:当有中断源发出请求时,CPU可执行相应的中断服务程序,可以提出中断的有
1.外部事件 2.Cache 3.浮点数运算下溢 4.浮点数运算上溢
答案:1,4;Cache属于存储设备,不能提出中断,缺页中断是由CPU的内存管理单元发出的;浮点数运算下溢可当做机器零处理,不需要中断来处理。
例题:中断响应由高到低的优先次序宜用()
A.访管——>程序性——>机器故障 B.访管——>程序性——>重新启动
C.外部——>访管——>程序性 D.程序性——>I/O——>访管
答案:B;重新启动应当等待其他任务完成后再进行,优先级最低。 访管指令优先级要高于外部中断。 IBM370中机器校验安排为第一级,程序性和管理程序调用为第二级,外部为第三级,I/O为第四级,重新启动为最低级(紧急机器校验>管理程序调用>程序性中断>外部中断>I/O中断>重新启动)
例题:主存故障引起的中断是
A.I/O中断 B.程序性中断
C.机器校验中断 D.外中断
答案:C;主存故障引起的中断是机器校验中断,属于内中断,而外中断一般指主存和CPU外的中断,如外设引起的中断等。
例题:在配有通道的计算机系统中,用户程序需要输入/输出时,引起的中断是
A.访管中断 B.I/O中断
C.程序性中断 D.外中断
答案:A;用户程序需要输入/输出时,需要调用OS提供的接口(请求OS服务),此时会引起访管中断,系统由用户态转为核心态
例题:在中断响应周期中,CPU主要完成的工作是()
A.关中断,保护断点,发中断响应信号并形成向量地址
B.开中断,保护断点,发中断响应信号并形成向量地址
C.关中断,执行中断服务程序
D.开中断,执行中断服务程序
答案:A;中断隐指令由CPU在中断响应周期自动完成。 在中断响应周期,CPU主要完成关中断、保护断点、发中断响应信号并形成中断向量地址的工作,即执行中断隐指令。
例题:在中断周期中,由()将允许中断触发器置0
A.关中断指令 B.中断隐指令
C.开中断指令 D.中断服务程序
答案:在中断周期中,允许中断触发器置0是由中断隐指令完成的,为硬件关中断。在中断周期中需完成的操作即为中断隐指令的过程。
例题:设置中断屏蔽标志可以改变
A.多个中断源的中断请求优先级
B.CPU对多个中断请求响应的优先次序
C.多个中断服务程序开始执行的顺序
D.多个中断服务程序执行完的次序
答案:D;优先级包含响应优先级和处理优先级。响应优先级是指CPU响应各中断源请求的优先次序(即题中的中断请求优先级),这种次序往往是硬件线路已设置好的,不便于改动。处理优先级是指CPU实际对各中断源请求的处理优先次序。采用了屏蔽技术后,可以改变CPU处理各中断源的优先等级,从而改变CPU执行程序的轨迹。 中断屏蔽字的一种作用是实现中断升级,即改变中断处理的次序(注意区分中断响应次序和中断处理次序,中断响应次序是由硬件排队电路决定),因此其可以改变多个中断服务程序执行完的次序
例题:在主机和外设的信息传送中,()不是一种程序控制方式
A.直接程序传送 B.程序中断
C.直接存储器存取(DMA) D.通道控制
答案:C;
例题:在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口中的I/O端口之间交换的信息不可能是
A.打印字符 B.主存地址
C.设备状态 D.控制命令
答案:B;在程序中断I/O方式中,CPU和打印机直接交换,打印字符直接传输到打印机的I/O端口,不会涉及主存地址。而CPU和打印机通过I/O端口中的状态口和控制口来实现交互
例题:下列关于外部I/O中断的叙述中,正确的是()
A.中断控制器按所接收中断请求的先后次序进行中断优先级排队
B.CPU响应中断时,通过执行中断隐指令完成通用寄存器的保护
C.CPU只有在处于中断允许状态时,才能响应外部设备的中断请求
D.有中断请求时,CPU立即暂停当前指令执行,转去执行中断服务程序
答案:C;
例题:在DMA方式下,主存和I/O设备之间有一条物理通路相连吗
答案:没有。通常所说的DMA方式在主存和I/O设备之间建立一条“直接的数据通路”,使得数据在主存和I/O设备之间直接进行传送,其含义并不是在主存和I/O之间建立一条物理直接通路,而是主存和I/O设备通过I/O设备接口、系统总线及总线桥接部件等相连,建立一个信息可以相互通达的通路,这在逻辑上可视为直接相连的。 其“直接”是相对于要通过CPU才能和主存相连这种方式而言的
例题:(1)一个完整的指令周期包含哪些CPU工作周期
(2)中断周期前和中断周期后各是CPU的什么工作周期
(3)DMA周期前和DMA周期后各是CPU的什么工作周期
答案:(1)取指周期、间址周期、执行周期、中断周期
(2)执行周期;下一条指令的取指周期;
(3)可以是取指、间址、执行或中断周期;即DMA周期前后都是机器周期
例题:假定某I/O设备向CPU传送信息的最高频率为4万次/s,而相应中断处理程序的执行时间为40μs,则该I/O设备是否可采用中断方式工作?为什么?
答案:否;I/O设备传送一个数据的时间为25μs,所以请求中断的周期为25μs,而中断处理程序的执行时间为40μs,大于请求中断的周期,会丢失数据
例题:在程序查询方式的输入/输出系统中,假设不考虑处理时间,每个查询操作需要100个时钟周期,CPU的时钟频率为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32位字长为单位传输数据,即每32位被CPU查询一次,传输率为2x220B/s。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论
答案:(1)鼠标:0.006%;可见对鼠标的查询基本不影响CPU的性能(2)硬盘:105%;可见即使CPU将全部时间都用于对硬盘的查询,也不能满足磁盘传输的要求,由此CPU一般不采用程序查询方式与磁盘交换信息。
例题:假定某计算机的CPU主频为80MHz,CPI为4,平均每条指令访存1.5次,主存与Cache之间交换的块大小为16B,Cache的命中率为99%,存储器总线宽带为32位。
(1)该计算机的MIPS是多少?平均每秒Cache缺失的次数是多少?在不考虑DMA传送的情况下,主存带宽至少达到多少才能满足CPU的访存要求?
(2)假定在Cache缺失的情况下访问主存时,存在0.0005%的缺页率,则CPU平均每秒产生多少次缺页异常?若页面大小为4KB,每次缺页都需要访问磁盘,访问磁盘时DMA传送采用周期挪用方式,磁盘I/O接口的数据缓冲寄存器为32位,则磁盘I/O接口平均每秒发出的DMA请求次数至少是多少?
(3)CPU和DMA控制器同时要求使用存储器总线时,哪个优先级最高?为什么?
(4)为了提高性能,主存采用4体低位交叉存储模式,工作时每1/4个存储周期启动一个体。若每个体的存储周期为50ns,则该主存能提供的最大带宽是多少?
答案:(1)20;300k;4.8MB/s;(2)1.5;1536;(3)DMA;因为DMA请求若得不到及时响应,I/O传输数据可能会丢失;
(4)320MB/s
例题:
答案:(1)包含1位起始位,10;2000;
(2)一个字符传送时间包括:设备D将字符送I/O端口的时间、中断响应时间和中断服务程序前15条指令的执行时间;25070000个CLOCK;90000;在中断响应阶段,CPU主要进行以下操作:关中断、保护断点和程序状态、识别中断源
例题:
答案:(1)3——>1——>4——>2
(2)
例题:一个DMA接口可采用周期窃取方式把字符传送到存储器,它支持的最大批量为400B。若存取周期为0.2μs,每处理一次中断需5μs,现有的字符设备的传输率为9600b/s。假设字符之间的传输是无间隙的,试问DMA方式每秒因数据传输占用处理器多少时间?若完全采用中断方式,又需占处理器多少时间(忽略预处理所需时间)
答案:(1)255μs;传输1200个字符共需1200个存取周期
(2)5 x 1200=6000μs;采用中断方式不访问主存
假定计算机的主频为500MHz,CPI为4。现有设备A和B,其数据传输率分别为2MB/s和40MB/s,对应I/O接口中各有一个32位数据缓冲寄存器。
(1)若设备A采用定时查询I/O方式,每次输入/输出都至少执行10条指令。设备A最多间隔多长时间查询一次才能不丢失数据?CPU用于设备A输入/输出的时间占CPU总时间的百分比至少是多少?
(2)在中断I/O方式下,若每次中断响应和中断处理的总时钟周期数至少为400,则设备B能否采用中断I/O方式?为什么?
(3)若设备B采用DMA方式,每次DMA传送的数据块大小为1000B,CPU用于DMA预处理和后处理的总时钟周期数为500,则CPU用于设备B输入/输出的时间占CPU总时间的百分比最多是多少
答案:(1)程序定时向缓存端口查询数据,必须在传输完端口大小的数据时访问端口,以防止部分数据未被及时读取而丢失。设备A准备32位数据所用的时间为2μs,所以最多每隔2μs必须查询一次;4%
(2)否,准备数据的时间小于中断响应和中断处理的时间,数据会被刷新,造成丢失
(3)4%
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。