输入/输出系统
一、I/O 系统基本概念(了解即可)
1. 输入/输出系统
【总结】:
“I/O” 就是 “输入 / 输出”(Input/Output),I/O 设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。
输入/输出是以主机为中心而言的,将信息从外部设备传送到主机称为输入,反之称为输出。输入/输出系统解决的主要问题是对各种形式的信息进行输入和输出的控制。
1)I/O 系统中的几个基本概念
-
外部设备。包括输入/输出设备及通过输入/输出接口才能访问的外存储设备。
-
接口。在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件。协调包括传输过程中速度的匹配、电平和格式转换等。
-
输入设备。用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。
-
输出设备。用千将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。
-
外存设备。指除计算机内存及CPU 缓存等外的存储器。如,硬磁盘、光盘等。
2)I/O 系统基本组成
2. I/O 控制方式
【总结】:
在输入/输出系统中,经常需要进行大量的数据传输,而传输过程中有各种不同的 I/O 控制方式,基本的控制方式主要有:程序查询方式、程序中断方式、DMA 方式、通道方式。
其中,程序查询方式和程序中断方式主要用于数据传输率较低的外部设备,DMA 方式和通道方式主要用于数据传输率较高的设备。
1)程序查询方式和程序中断方式
-
程序查询方式:由 CPU 通过程序不断查询 I/O 设备是否己做好准备,从而控制 I/O 设备与主机交换信息。
-
程序中断方式:只在 I/O 设备准备就绪并向 CPU 发出中断请求时才予以响应。
2)DMA 方式
DMA 方式:主存和 I/O 设备之间有一条直接数据通路,当主存和 I/O 设备交换信息时,无须调用中断服务程序。
3)通道方式
通道方式:在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行 I/O 命令时,只需启动有关通道,通道将执行通道程序,从而完成 I/O 操作。
3. 外部设备
【总结】:
最基本的外部设备主要有键盘、鼠标、显示器、打印机、磁盘存储器和光盘存储器等。
1)输入设备
-
键盘:键盘是最常用的输入设备,通过它可发出命令或输入数据。
-
鼠标:鼠标是常用的定位输入设备,它把用户的操作与计算机屏幕上的位置信息相联系。
2)输出设备
- 显示器:按所用的显示器件分类,有阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器等。显示器属于用点阵方式运行的设备。
- 打印机:用于将计算机的处理结果打印在相关介质上。按工作方式,打印机可分为点阵打印机、针式打印机、喷墨式打印机、激光打印机等。
3)外部存储器(辅存)
-
磁表面存储器:所谓“磁表面存储”,是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。
-
固态硬盘(SSD):微小型高档笔记本电脑采用高性能 Flash 存储器作为硬盘来记录数据,这种“硬盘”称为固态硬盘(SSD)。固态硬盘除需要 Flash 存储器外,还需要其他硬件和软件的支持。
-
光盘存储器:光盘存储器是利用光学原理读/写信息的存储装置,它采用聚焦激光束对盘式介质以非接触方式记录信息。完整的光盘存储系统由光盘片、光盘驱动器、光盘控制器等组成。
二、I/O 接口
【总结】:
I/O 接口(I/O 控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。主机和外设具有各自的工作特点,它们在信息形式和工作速度上具有很大的差异,接口正是为了解决这些差异而设置的。
1. I/O 接口的功能
I/O 接口的主要功能如下:
-
进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
-
实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
-
实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。
-
信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。
-
传送控制命令和状态信息。CPU 要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给 CPU 。外设向 CPU 提出中断请求时, CPU 也应有相应的响应信号反馈给外设。
2. I/O 接口的基本结构
如下图所示,I/O 接口在主机侧通过 I/O 总线与内存、CPU 相连。通过数据总线,在数据缓冲寄存器与内存或 CPU 的寄存器之间进行数据传送。同时接口和设备的状态信息被记录在状态寄存器中,通过数据线将状态信息送到 CPU 。CPU 对外设的控制命令也通过数据线传送,一般将其送到 I/O 接口的控制寄存器。状态寄存器和控制寄存器在传送方向上是相反的。
接口中的地址线用于给出要访问的 I/O 接口中的寄存器的地址,它和读/写控制信号一起被送到 I/O 接口的控制逻辑部件,通过控制线传送来的读/写信号确认是读寄存器还是写寄存器,此外控制线还会传送一些仲裁信号和握手信号。
接口中的 I/O 控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送到外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。另外,它还要具有收集外设状态到状态寄存器的功能。
对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为 I/O 指令,I/O 指令只能在操作系统内核的底层 I/O 软件中使用,它们是一种特权指令。
注意:接口和端口是两个不同的概念。端口是指接口电路中可以进行读/写的寄存器,若干端口加上相应的控制逻辑才可以组成接口。
3. I/O 接口的类型
从不同的角度看,I/O 接口可以分为不同的类型:
-
按数据传送方式(外设和接口一侧)可分为并行接口(一字节或一个字的所有位同时传送)和串行接口(一位一位地传送),接口要完成数据格式的转换。
-
按主机访问 I/O 设备的控制方式可分为程序查询接口、中断接口和 DMA 接口等。
-
按功能选择的灵活性可分为可编程接口(通过编程改变接口功能)和不可编程接口。
4. I/O 接口及其编址
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 设备之间的数据传送,可以采用不同的控制方式,各种方式在代价、性能、解决问题的着重点等方面各不相同,常用的 I/O 方式有程序查询、程序中断、DMA 和通道等,其中前两种方式更依赖于 CPU 中程序指令的执行。
1. 程序查询方式
信息交换的控制完全由 CPU 执行程序实现,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行 I/O 操作时,先发出询问信号,读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待。
程序查询方式的『工作流程』如下所示:
『总结』:
『例题』:
2. 程序中断方式
【总结】:
1)程序中断的基本概念
早期的中断技术是为了处理数据传送。随着计算机的发展,中断技术不断被赋予新的功能,主要功能有:
- 实现 CPU 与 I/O 设备的并行工作。
- 处理硬件故障和软件错误。
- 实现人机交互,用户干预机器需要用到中断系统。
- 实现多道程序、分时操作,多道程序的切换需借助于中断系统。
- 实时处理需要借助中断系统来实现快速响应。
- 实现应用程序和操作系统(管态程序)的切换,称为“软中断”。
- 多处理器系统中各处理器之间的信息交流和任务切换。
程序中断方式的『思想』:
CPU 在程序中安排好在某个时机启动某台外设,然后 CPU 继续执行当前的程序,不需要像查询方式那样一直等待外设准备就绪。一旦外设完成数据传送的准备工作,就主动向 CPU 发出中断请求,请求 CPU 为自己服务。在可以响应中断的条件下,CPU 暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU 返回原来的程序,如下图所示。
『例题』:
2)程序中断的工作流程
① 中断请求:
中断请求的分类:
中断源是请求 CPU 中断的设备或事件,一台计算机允许有多个中断源。
通过 INTR 线发出的是可屏蔽中断,通过 NMI 线发出的是不可屏蔽中断。可屏蔽中断的优先级最低,在关中断模式下不会被响应。不可屏蔽中断用于处理紧急和重要的事件,如时钟中断、电源掉电等,其优先级最高,其次是内部异常,即使在关中断模式下也会被响应。
② 中断响应判优:
中断响应优先级是指 CPU 响应中断请求的先后顺序。由于许多中断源提出中断请求的时间都是随机的,因此当多个中断源同时提出请求时,需通过中断判优逻辑来确定响应哪个中断源的请求,中断响应的判优通常是通过硬件排队器实现的。
中断判优的优先级设置:
-
不可屏蔽中断>内部异常>可屏蔽中断;
-
内部异常中,硬件故障>软件中断;
-
DMA 中断请求优先于 I/O 设备传送的中断请求;
-
在 I/O 传送类中断请求中,高速设备优先于低速设备,输入设备优先于输出设备,实时设备优先于普通设备。
注意:中断优先级包括响应优先级和处理优先级,响应优先级在硬件线路上是固定的,不便改动。处理优先级可利用中断屏蔽技术动态调整,以实现多重中断。
③ CPU 响应中断的条件:
CPU 在满足一定的条件下响应中断源发出的中断请求,并经过一些特定的操作,转去执行中断服务程序。CPU 响应中断必须满足以下 3 个条件:
-
中断源有中断请求。
-
CPU 允许中断及开中断(异常和不可屏蔽中断不受此限制)。
-
一条指令执行完毕(异常不受此限制),且没有更紧迫的任务。
注意: I/O 设备的就绪时间是随机的,而 CPU 在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取 I/O 的中断请求,也就是说,CPU 响应中断的时间是在每条指令执行阶段的结束时刻。这里说的中断仅指 I/O 中断,内部异常不属于此类情况。
④ 中断响应过程:
CPU 响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,我们将它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作。它所完成的操作如下:
-
关中断。CPU 响应中断后,首先要保护程序的断点和现场信息,在保护断点和现场的过程中, CPU 不能响应更高级中断源的中断请求。否则,若断点或现场保存不完整,在中断服务程序结束后,就不能正确地恢复并继续执行现行程序。
-
保存断点。为保证在中断服务程序执行完后能正确地返回到原来的程序,必须将原程序的断点(指令无法直接读取的 PC 和 PSW 的内容)保存在栈或特定寄存器中。
注意异常和中断的差异:异常指令通常并没有执行成功,异常处理后要重新执行,所以其断点是当前指令的地址。中断的断点则是下一条指令的地址。
x86 机器保存 PC 和 PSW 到内存栈中; MIPS 机器没有 PSW ,只保存 PC 到特定寄存器中。
- 引出中断服务程序。识别中断源,将对应的服务程序入口地址送入程序计数器 PC 。有两种方法识别中断源:硬件向量法(常用)和软件查询法。
软件查询法:
硬件向量法:
⑤ 中断向量:
中断识别分为向量中断和非向量中断两种。非向量中断即软件查询法。
每个中断都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,CPU 必须找到入口地址,即中断向量。把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
CPU 响应中断后,通过识别中断源获得中断类型号,然后据此计算出对应中断向量的地址;再根据该地址从中断向量表中取出中断服务程序的入口地址,并送入程序计数器 PC ,以转而执行中断服务程序,这种方法被称为中断向量法,采用中断向量法的中断被称为向量中断。
⑥ 中断处理过程:
中断处理流程如下:
- 关中断。
- 保存断点。
- 中断服务程序寻址。
- 保存现场和屏蔽字。进入中断服务程序后首先要保存现场和中断屏蔽字,现场信息是指用户可见的工作寄存器的内容,它存放着程序执行到断点处的现行值。
注意:现场和断点,这两类信息都不能被中断服务程序破坏。现场信息因为用指令可直接访问,所以通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现;而断点信息由 CPU 在中断响应时自动保存到栈或指定的寄存器中,即由硬件实现。
- 开中断。允许更高级中断请求得到响应,实现中断嵌套。
- 执行中断服务程序。这是中断请求的目的。
- 关中断。保证在恢复现场和屏蔽字时不被中断。
- 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。
- 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
其中,①~③ 由中断隐指令(硬件自动)完成; ④ ~⑨ 由中断服务程序完成。
注意:恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。中断返回由中断服务程序的最后一条中断返回指令完成。
3)多重中断和中断屏蔽技术
【总结】:
若 CPU 在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,而 CPU 对新的中断请求不予响应,则这种中断称为单重中断,如下图(a)所示。
若 CPU 暂停现行的中断服务程序,转去处理新的中断请求,则这种中断称为多重中断,又称中断嵌套,如下图(b)所示。
CPU 要具备多重中断的功能,必须满足下列条件:
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
中断处理优先级是指多重中断的实际优先级处理次序,可以利用中断屏蔽技术动态调整,从而可以灵活地调整中断服务程序的优先级,使中断处理更加灵活。如果不使用中断屏蔽技术,则处理优先级和响应优先级相同。
现代计算机一般使用中断屏蔽技术,每个中断源都有一个屏蔽触发器,1 表示屏蔽该中断源的请求,0 表示可以正常申请,所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
屏蔽字设置的规律:
-
一般用 ‘1’ 表示屏蔽,‘0’ 表示正常申请。
-
每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
-
屏蔽字中 ‘1’ 越多,优先级越高。每个屏蔽字中至少有一个 ‘1’(至少要能屏蔽自身的中断)。
『例题』:
3. DMA 方式
【总结】:
DMA 方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的优点,即在数据准备阶段, CPU 与外设并行工作。DMA 方式在外设与内存之间开辟一条“直接数据通道“,信息传送不再经过 CPU ,降低了 CPU 在传送数据时的开销,因此称为直接存储器存取方式。由于数据传送不经过 CPU ,也就不需要保护、恢复 CPU 现场等烦琐操作。
这种方式适用于磁盘、显卡、声卡、网卡等高速设备大批量数据的传送,它的硬件开销比较大。在 DMA 方式中,中断的作用仅限于故障和正常传送结束时的处理。
1)DMA 方式的特点
主存和 DMA 接口之间有一条直接数据通路。由于 DMA 方式传送数据不需要经过 CPU ,因此不必中断现行程序,I/O 与主机并行工作,程序和传送并行工作。
DMA 方式具有下列特点:
- 它使主存与 CPU 的固定联系脱钩,主存既可被 CPU 访问,又可被外设访问。
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
- DMA 传送速度快,CPU 和外设并行工作,提高了系统效率。
- DMA 在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
2)DMA 控制器的组成
在 DMA 方式中,对数据传送过程进行控制的硬件称为 DMA 控制器(DMA 接口)。当 I/O 设备需要进行数据传送时,通过 DMA 控制器向 CPU 提出 DMA 传送请求,CPU 响应之后将让出系统总线,由 DMA 控制器接管总线进行数据传送。其主要功能如下:
- 接受外设发出的 DMA 请求,并向 CPU 发出总线请求。
- CPU 响应并发出总线响应信号,DMA 接管总线控制权,进入 DMA 操作周期。
- 确定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数。
- 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
- 向 CPU 报告 DMA 操作结束。
下图给出了一个简单的 DMA 控制器。
在 DMA 传送过程中,DMA 控制器将接管 CPU 的地址总线、数据总线和控制总线,CPU 的主存控制信号被禁止使用。而当 DMA 传送结束后,将恢复 CPU 的一切权利并开始执行其操作。由此可见,DMA 控制器必须具有控制系统总线的能力。
3)DMA 的传送方式
-
停止 CPU 访存。当 I/O 设备有 DMA 请求时,由 DMA 控制器向 CPU 发送一个停止信号,使 CPU 脱离总线,停止访问主存,直到 DMA 传送一块数据结束。数据传送结束后,DMA 控制器通知 CPU 可以使用主存,并把总线控制权交还给 CPU 。
-
周期挪用(或周期窃取)。当 I/O 设备有 DMA 请求时,会遇到 3 种情况:
① 是此时 CPU 不在访存(如 CPU 正在执行乘法指令),因此 I/O 的访存请求与 CPU 未发生冲突;
② 是 CPU 正在访存,此时必须待存取周期结束后,CPU 再将总线占有权让出;
③ 是 I/O 和 CPU 同时请求访存,出现访存冲突,此时 CPU 要暂时放弃总线占有权。I/O 访存优先级高于 CPU 访存,因为 I/O 不立即访存就可能丢失数据,此时由 I/O 设备挪用一个或几个存取周期,传送完一个数据后立即释放总线,是一种单字传送方式。 -
DMA 与 CPU 交替访存。这种方式适用于 CPU 的工作周期比主存存取周期长的情况。
例如,若 CPU 的工作周期是 1.2μs ,主存的存取周期小于 0.6μs ,则可将一个 CPU 周期分为 C1 和 C2 两个周期,其中 C1 专供 DMA 访存,C2 专供 CPU 访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过 C1 和 C2 分时控制的。
4)DMA 的传送过程
DMA 的数据传送过程分为预处理、数据传送和后处理 3 个阶段:
-
预处理。由 CPU 完成一些必要的准备工作。首先,CPU 执行几条 I/O 指令,用以测试 I/O 设备状态,初始化 DMA 控制器中的有关寄存器、设置传送方向、启动该设备等。然后,CPU 继续执行原来的程序,直到 I/O 设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O 设备向 DMA 控制器发送 DMA 请求,再由 DMA 控制器向 CPU 发送总线请求(有时将这两个过程统称为 DMA 请求),用以传输数据。
-
数据传送。DMA 的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA 占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由 DMA 控制器(而非通过 CPU 执行程序)实现的,即数据传送阶段完全由 DMA(硬件)控制。
-
后处理。DMA 控制器向 CPU 发送中断请求,CPU 执行中断服务程序做 DMA 结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转诊断程序)及决定是否继续使用 DMA 传送其他数据等。DMA 的传送流程如下图所示。
5)DMA 方式和中断方式的区别
DMA 方式和中断方式的重要区别如下:
-
中断方式是程序的切换,需要保护和恢复现场;而 DMA 方式不中断现行程序,无需保护现场,除了预处理和后处理,其他时候不占用任何 CPU 资源。
-
对中断请求的响应只能发生在每条指令执行结束时(执行周期后);而对 DMA 请求的响应可以发生在任意一个机器周期结束时(取指、间址、执行周期后均可)。
-
中断传送过程需要 CPU 的干预;而 DMA 传送过程不需要 CPU 的干预,因此数据传输率非常高,适合于高速外设的成组数据传送。
-
DMA 请求的优先级高于中断请求。
-
中断方式具有处理异常事件的能力,而 DMA 方式仅局限于大批数据的传送。
-
从数据传送来看,中断方式靠程序传送,DMA 方式靠硬件传送。
四、小结
1、I/O 设备有哪些编址方式?各有何特点?
统一编址和独立编址。统一编址是在主存地址中划出一定的范围作为 I/O 地址,以便通过访存指令即可实现对 I/O 的访问,但主存的容量相应减少。独立编址是指 I/O 地址和主存是分开的,I/O 地址不占主存空间,但访存需专门的 I/O 指令。
2、CPU 响应中断应具备哪些条件?
-
在 CPU 内部设置的中断屏蔽触发器必须是开放的。
-
外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号。
-
外设(接口)中断允许触发器必须为“1”,这样才能把外设中断请求送至 CPU 。
具备上述三个条件时, CPU 在现行指令结束的最后一个状态周期响应中断。
3、中断响应优先级和中断处理优先级分别指什么?
中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为“0”, 对新中断开放),若是,则中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。
4、向量中断、中断向量、向量地址三个概念是什么关系?
中断向量: 每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表。
向量地址: 中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号。
向量中断:指一种识别中断源的技术或方式。识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址。
5、程序中断和调用子程序有何区别?
两者的根本区别主要表现在服务时间和服务对象上不一样。
-
调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。而中断过程发生的时间一般是随机的, CPU 在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的。
-
子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。
-
主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统, 需要专门的硬件电路才能完成中断处理的过程。
-
子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定, 一般优先级数不会很大。
从宏观上看,虽然程序中断方式克服了程序查询方式中的 CPU “踏步”现象, 实现了 CPU 与 I/O 并行工作,提高了 CPU 的资源利用率,但从微观操作分析,CPU 在处理中断服务程序时,仍需暂停原程序的正常运行, 尤其是当高速 I/O 设备或辅助存储器频繁地、成批地与主存交换信息时, 需要不断打断 CPU 执行现行程序,而执行中断服务程序。