微处理器组成
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第739页(1970字)
微处理器由算术逻辑部件(ALU)、控制部件(CU)、寄存器和堆栈组成。
1.算术逻辑部件
算术逻辑部件(ALU)的结构框图如图1.2.1-1所示。
图1.2.1-1 ALU的结构框图
ALU有两个输入端,其一与累加器A相连,另一与暂时寄存器相连。ALU有两个输出端,其一用来输出操作结果,另一个用来输出标志位。
标志位用来表示操作结果的特殊信息,一般有以下几种标志位。
C 进位标志位;
Z 零标志位;
S 符号标志位;
AC 辅助进位标志位;
P 奇偶校验标志位。
ALU执行的典型操作有加法、减法、增量、减量、逻辑与、逻辑或、异或、求补等。
2.控制部件
控制部件(CU)用来产生一定序列的控制信号以执行指令所规定的操作。
大多数微处理器的控制部件采用微程序设计技术,这是用ROM(只读存储器)或PLA(可编程序逻辑阵列)来实现的。
3.寄存器
寄存器可用来存放数据和地址,还可用来控制程序执行的次序。
在微处理器中,通常有以下几种类型的寄存器。
(1)通用寄存器 用来存放数据和地址。由于CTU可直接处理这些数据和地址,通用寄存器的设置有助于减少访问存储器的次数,从而节省访问存储器的时间。
(2)累加器 在ALU的运算中,用来形成和存放运算结果的寄存器。
(3)存储地址寄存器(MAR) 用来存放所存取的存储单元的地址的寄存器。
(4)程序计数器(PC) 又称指令计数器,它是用来指出要执行的下条指令所在储单元的地址的计数器。
(5)变址寄存器(IX) 用来存放变址值的寄存器。变址值与指令的地址值相加形成有效地址(真正的地址)。
(6)指令寄存器(IR) 用来保存要执行的指令的内容(一直保存到该指令被译码为止)的寄存器。
4.堆栈
微处理器一般都设有堆栈。堆栈是只能在其一端存入与取出数据的存储区。堆栈的封闭为栈底,其栈顶所在端是开口的。堆栈中的数据是以后进先出(LIFO)的方式进行处理的。
堆栈的操作有推入(PUSH)和弹出(POP)两种。假设有一个含8个存储单元的堆栈,每个编有地址,其栈顶由堆栈指示器(SP)自动管理。每当进行推入或弹出操作,操作后SP便自动栈顶位置(有的微处理器则指出栈顶以上一个空单元的地址)。堆栈的推入与弹出操作如图1.2所示。
(a)原始状态
(b)推入S3 S4 S5数据后
(c)弹出S5数据后
图1.2.2-2 堆栈的推入与弹出
堆栈的实现方式有硬件堆栈和软件堆栈两种。
(1)硬件堆栈 硬件堆栈由CPU内部寄存器构成,其优点是访问寄存器的速度较快,但由寄存器数量的限制,硬件堆栈的深度是很有限的。
(2)软件堆栈 软件堆栈是在随机存取存储器RAM中开辟一个区域作为堆栈,因此软件:的深度几乎不受限制。目前微处理器中一般都采用软件堆栈。软件堆栈的缺点是访问存储器间比硬件堆栈访问寄存器的时间长。