微处理器MPU
2.2.1MPU的结构
现代微处理器MPU的内部结构极其复杂,要像电子线路那样画出它的全部电原理图来加以分析介绍是根本不可能的。为了弄清它的基本工作原理,现以图2.4中所示的模型机框图为例加以概述。
2.2.2运算器
运算器用于对二进制数进行算术运算和逻辑操作,其操作顺序是在控制器控制下进行的。运算器由算术逻辑单元ALU、累加器A、通用寄存器R,、暂存寄存器TMP和状态寄存器PSW等5部分组成。
ALU(Arithmetic and Logical Unit)为算术逻辑单元,主要由加法器、移位电路和判断电路等组成,用于对累加器A和暂存寄存器TMP中两个操作数进行四则运算和逻辑操作。累加器A(Accumulator)是一个具有输入/输出能力的寄存器,由8个触发器组成。累加器A在加法前用于存放一个操作数,加法操作后用于存放两数之和,以便再次累加,故因此得名。TMP(Temporary Register)为暂存寄存器,也是一个8位寄存器,用于暂存另一操作数。PSW(Program States Word)为程序状态字,由若干位触发器组成,用于存放ALU操作过程中形成的状态。例如:运算结果是否为零,最高位是否有进位或借位,低4位向高4位是否有进位或借位等,都可以记录到PSW中的对应位中去。R0为通用寄存器GR(General-purpose Register),用于存放操作数或运算结果。
2.2.3
控制器
控制器是发布操作命令的机构,是计算机的指挥中心,相当于人脑的神经中枢。控制器由指令部件、时序部件和微操作控制部件等3部分组成。
(1)指令部件:是一种能对指令进行分析、处理和产生控制信号的逻辑部件,也是控制器的核心。通常,指令部件由程序计数器PC(Program Counter)、指令寄存器R(InstructionRegister)和指令译码器ID(Instruction Decoder)等3部分组成。
指令是一种能供机器执行的控制代码,有操作码和地址码两部分。指令不同,相应的代码长度也不一样。因此,指令可分为单字节、双字节和3字节指令等。指令的有序集合称为程序,程序必须预先放在存储器内,机器执行程序应从第一条指令开始逐条执行。这就需要有一个专门寄存器用来存放当前要执行指令的内存地址,这个寄存器就是程序计数器PC。当机器根据P℃中的地址取出要执行指令的一个字节后,PC就自动加L,指向指令的下一字节,为机器取下一字节做好准备。在8位微处理器MPU中,程序计数器通常为16位。
指令寄存器R的字长为8位,用于存放从存储器中取出当前要执行指令的指令码。该指令码在R中得到寄存和缓冲后被送到指令译码器D中译码,指令操作码译码后就知道该指令进行哪种操作,并在时序部件的帮助下去驱动微操作控制部件,完成指令的执行。
(2)时序部件:由时钟系统和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。其中,时钟系统(Clock System)产生机器的时钟脉冲序列;脉冲分配器(PulseDistributor)又称节拍发生器,用于产生节拍电位和节拍脉冲。
(3)微操作控制部件:可以为ID输出信号配上节拍电位和节拍脉冲,也和外部进来的控制信号组合,共同形成相应的微操作控制序列,以完成规定的操作。
2.2.4
寄存器
寄存器用于暂存用于寻址和计算过程的信息。寄存器分为两组:数据寄存器组和地址寄存器组,但有的寄存器兼有双重用途。数据寄存器用来暂存操作数和中间结果。由于通过外部总线的传送是限制计算机速度的主要因素,存取寄存器要比访问存储器快得多,所以要对一组数据执行几种操作时,最好将数据存入数据寄存器,进行必要的计算,然后将结果送回存储器。一般情况下,CPU所含的数据寄存器越多,计算速度越快。地址寄存器组用于操作数的寻址。在下面将要介绍的寻址方式中,有几种寻址方式就是把操作数的地址的全部或部分存放在地址寄存器中的,这就增加了寻址方式的灵活性,也为处理数组元素提供方便。