中央处理机一般功能
(1)进行算术逻辑运算
(2)可接收和发送数据
(3)可暂存少量数据
(4)提供控制信号
(5)对指令解码1
CPU一般组成(1)算数逻辑部件ALU
(2)控制逻辑
(3)寄存器组1
中央处理机结构格式中央处理机执行系统需要的算术和逻辑操作并对系统总线实施统一的管理。
1.两种程序状态
中央处理机在两种不同的状态下工作。这两种状态是核心态和用户态。只有核心态程序对系统有完全的控制权。用户态不允许执行某些指令,不允许直接与系统中的外围设备打交道*。这样的硬件特性适用于多道程序环境下实施完善的保护。
2.通用寄存器
中央处理机使用6个通用寄存器,两个堆栈指示器和一个程序计数器。R7用作机器的程序计数器(PC),存放下一条要执行的指令地址。此外它可以用于编址,但不能作为累加器使用。R6通常作为“处理机堆栈指示器”,保存最近进人堆栈的数据地址。在186计算机中有两个处理机堆栈指示器:“核心态堆栈指示器”和“用户态堆栈指示器”。它们由相应程序状态的程序使用。当发生外中断或内中断时,处理机原来的状态保留在由服务程序的程序态所规定的处理机堆栈中。其余的6个寄存器是真正的通用寄存器。
3.处理机状态字(pSW)777776
处理机状态字寄存器存放处理机的现时状态。它包括:现时处理机优先级,现行程序态和原先程序态,表征最近一条指令结果特征的条件码,一个程序调整的跟踪位。
现行程序态(14、15位)是指目前正在利用处理机运行的程序是核心态或用户态。原先态(12、13位)是指最近一次外中断或内中断之前的程序态是核心态或用户态。
两种程序态为多道程序系统提供了保护环境,因为它为用户提供了两个处理机堆栈和两组存管寄存器。除了核心态程序之外,其它态的程序禁止执行“停机”指令。非核心态程序企图执行“停机”指令,使处理机发生“非法停机”内中断,内中断向量地址4。此外,非核心态的“复位”或“置优先级”指令,不被执行,作为“空操作”指令对待。只有核心态程序可以执行所有的指令。它可以把用户程序分配到存贮空间的任何位置,从而直接地保护关键区域(包括设备寄存器和处理机状态字)在用户操作环境下不被破坏。
在处理机状态字的5~7位,保存着现在在处理机中运行的程序的优先级,它起着外中断请求屏蔽的作用。三位代码表示了处理机8个可能的优先级。当处理机的优先级是7时,所有的外中断请求都不能被响应。处理机只响应比其优先级高的外中断请求。处理机优先级可通过执行“置优先级”指令动态地改变。这条指令允许核心态程序,在不改变处理机状态字其余部分的情况下,改变处理机的优先级。
4.向量区的保护
在186机中,从。~377号单元为系统向量区,在这里存放的信息极为重要,不允许破坏,由于系统堆栈通常设置在系统向量区之上,而且它是向低地址扩展的,所以进栈操作有可能破坏向量区。为防止进栈操作破坏系匆句量区,在186机内,设有堆栈溢出检测功能,当进栈地址小于(400)8时引起“堆栈溢出”内中断。
5.中断系统
介绍了中央处理机内程序可访的主要资源的基础上,以中断系统为题目来说明系统各部分相互作用的约定。
(1)直传请求和直传
在186机中,直传请求只是请求单总线控制权,在获得总线控制权后,总线上的丙个设备之间直接传送数据,无需中央处理机为干预。但因为在单总线使用上会与中央处理礼发生冲突,所以必须规定两者的优先次序。在180系列中,直传请求的优先级高于处理机。在186机中更是重点保证直传请求能获得最快的响应。基本上做到现行总线周期一结束就予以响应。所以直传请求的等待时间不大于代个存贮周期。直传请求设备一旦获得控制权以后,可按与之协同工作的存贮器等效周期时间相同的速度进行高速传输。
(2)外设硬件中断请求
186计算机设置了四根外中断请求线,供单总线上的外设为中断的目的请求总线控制权。外中断请求在中央处理机完成一条指令时,按预定的硬件优先级予以响应,在所有请求中优先级最高的设备取得总线控制权。通过外中断请求线取得总线控制权的设备原则上可以进行两种可能的操作:(l)启动总线数据传输(2)发中断命令及中断向量地址,使处理机执行它所要求的中断服务程序。或者在进行第一种操作之后再进行第二次操作。实际上在180系列中的大多数设备通过外中断请求获得控制权的设备只进行第二种操作。
(3)内中断和紧急内中断
中央处理机和存贮系统发生的错误和某些指令的执行,使处理机中断现行程序转而执行相应的中断处理程序。这个过程与响应外中断请求的过程相类似,由于中断源是在中央处理机内部,所以称为内中断。根据内中断源的性质,内甲断分为内中断和紧急内中断两类。凡是检测到一次内中断请求时,本条指令尚能执行完毕,然后再转入中断处理的称为一般内中断;凡是内中断的原因使本条指令不能进行下去,必须中止引起内中断的操作,立即转人中断处理的,称为紧急内中断。
(4)中断的申请及优先级结构
内中断及紧急内中断源直接向处理机申请中断并提供中断向量地址。内中断不受处理机优先级的屏蔽,即可视为优先于所有处理机程序。外部设备请求中断表现为请求总线控制权的形式。对总线控制权处理取决于设备在单总线优先级结构中的位置。
(5)中断的利用
通过外中断请求取得总线控制权的设备可以通过中断中央处理机的现行程序,使处理机的全部功能为设备服务,利用整个指令系统操;纵数据和状态寄存器。每个可以中断处理机现行程序的设备在主存中有一对单元保存它的“中断向量”。其中第一个字存放它的服务程序的起始地址。第2个字是处理程序所使用的处理机状态字,通过正确地使用处理机状态字,可以转变处理机的程序态,改变所用的堆栈指示器,修改处理机的优先级。
(6)外中断步骤
在186机中下述中断处理步骤是由硬件自动完成的:
①如果中断优先级系统许可,处理机批准在所有申请中断的设备中,优先级最高的设备取得总线控制权。
②设备取得总线控制权,向处理机发出“中断”命令,和它的服务程序的向量地址。向量地址和服务程序都是在核心态虚拟空间。中断向量的第一个字是服务程序的首地址,中断向量的第二个字(它的地址等于中断向量地址+2)是该服务程序所用的处理机状态字。
③处理机把现行处理机状态字和程序计数器存人处理机内的暂存寄存器。
④处理机从核心态虚拟空间取出新的程序计数器和状态寄存器(中断向量)。然后把老的程序状态和程序计数器压入由新的程序状态字15、14位所规定的堆栈。并且把老程序状态字的现行程序状态置人状态字寄存器的13、12位。然后启动服务程序。
这些操作,从处理机接受中断命令,至开始执行服务程序的第一条指令,所花的时间约为12微秒。这个时间是以整个过程中未发生直接传送为前提的。
⑤中断服务程序结束时,通过执行“中断返回”或“推迟跟踪中断返回”指令返回被中断的程序。执行上述命令的结果是从现行程序态堆栈中弹出两个字装人程序计数器和状态字寄存器。
(7)内中断步骤
内中断步骤与外中断基本相同,每个内中断源有自己的中断向量。所不同的是因为中断源在处理机内部,所以不必请求总线控制权,就可发送中断向量。
(8)系统对同时发生的内中断,外中断统一按如下优先次序服务:
①在处理“指令内中断”、“跟踪内中断”、“堆栈溢出内中断”或“总线错误内中断”时又出现总线错误,处理机只能立即停机。
②在处理“指令内中断”、“总线错误内中断”或“跟踪内中断”的过程中出现“堆栈溢出”,处理过程被完成。然后处理堆栈溢出。在处理堆栈溢出时,在中断隐指令中仍有两次压堆栈的操作会引起堆栈进一步溢出,在中央处理机内已采取措施避免因此而引起死循环。2