前言输入输出零碎是指咱们电脑上的键盘,鼠标,硬盘,打印机等设施。输入输出零碎有三种形式向主机之间进行数据传输。一种是程序查问形式,这种形式要求cpu必须停下手中的工作,一直期待I/O零碎的进行。这就好比树懒申请闪电侠送货色。闪电侠解决货色只有1秒钟,而要期待树懒说十分钟的话。这显然是一种节约CPU资源的一种形式。长处是硬件构造简略。第二种是DMA形式,这在咱们上次讲三总线结构的时候说过。DMA传输方式由一个专门的DMA控制器负责。并且通过DMA总线传输,不会烦扰其余CPU工作的进行。只有DMA在传输完一大段数据时(如1kb),才像CPU报告工作状况。DMA形式实用于磁盘等大批量数据的输入输出零碎。还有一种是中断形式。咱们说程序查问形式比拟节约CPU资源,而DMA形式只实用于磁盘等大量数据的I/O设施。所以中断形式利用于键盘鼠标等大量数据的I/O设施。中断形式是在CPU执行现行工作过程中,如果呈现键盘输入或者鼠标点击等事件,CPU暂停解决现行程序并保留以后环境(打断点)。而后转而去解决I/O输出,在处理完毕后CPU又主动返回现行程序的断点处,继续执行现行程序。这样使得CPU不用始终期待键盘鼠标的输入输出,进步了CPU的效率。程序查问形式像是监视器模式,而中断形式像是观察者模式。中断岂但利用于I/O设施,也利用于各种程序异样,如地址非法,校验谬误,算术溢出谬误,除数为0等异样。
指令周期咱们将一条指令执行周期按性能分为不同的局部。
依据PC的地址从主存中取指令到IR中称为取指周期。依据指令的地址码从内存中取操作数成为间址周期。依据指令执行相应的操作(如加减乘除)称为执行周期。解决中断请求称为中断周期。
一个指令经验取指周期,间址周期,执行周期,中断周期能力成为一个指令周期。
中断判优终端零碎在任意时刻只能解决一个中断请求。因为多个中断源提出中断请求的工夫是随机的,因而当多个中断源同时提出申请时,须要通过中断判优逻辑确定响应那个中断源的申请。例如故障中断的优先级最高,而后是I/O中断。
中断隐指令CPU相应中断后,通过某些操作,转去解决中断请求。这些操作是由硬件间接实现的,咱们将这些操作对立称为中断隐指令。中断隐指令不是一条真正的指令,而是在解决中断前执行的一系列步骤。中断隐指令过程如下:1.关中断。在执行中断隐指令时,为了保障不被别的中断程序所打断,执行关中断操作。关中断操作保障不再承受中断请求,从而保障了中断隐指令是一个原子操作。2.保留断点。为了保障在解决完中断请求后能正确的放回到原来的程序,必须将原来程序的断点保存起来,如保留程序计数器PC的内容。3.引出中断服务程序。引出中断服务程序的本质是,取出中断服务程序的入口地址并传送到程序计数器PC中。中断处理过程爱护现场及屏蔽字。进入中断服务程序后首先要保留现场,现场信息个别是指CPU的一些寄存器的内容。开中断。容许优先级更高的中断请求,实现中断嵌套。执行中断服务。关中断,保障在回复现场和屏蔽字时不被中断。回复现场和屏蔽字。将现场和屏蔽字回复道原来的状态。开中断和中断返回。中断服务程序的最初一条指令个别是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。