CPU的内部结构
算术逻辑单元
算术逻辑单元(Arithmetic Logic Unit,简称ALU)是计算机的运算器,它完成算术运算和逻辑运算两种操作。
逻辑运算是通过比较来完成的,即两个数据进行比较,判断是否等于、小于或大于等。算术运算包括加、减、乘、除等运算,实际上算术逻辑单元使用一个或多个加法器来完成加、减、乘、除等运算。
寄存器 (暂存器)
寄存器是微处理器作算术运算和逻辑运算时,用来临时寄存中间数据和地址的存储位置。它们的硬件组成类似于内存的存储单元,只是存取速度比内存的更快,容量更小。寄存器通常放在CPU内部,并由控制器控制。
许多计算机包括专用寄存器和通用寄存器。专用寄存器是计算机用于某一特殊目的的寄存器,例如指令寄存器、地址寄存器。而通用寄存器则是计算机或程序在多种状态下使用的寄存器,例如暂存数据的寄存器。
程式计数器
指令解码器
指令译码器(Instruction Decoder,ID)是控制器中的主要部件之一。计算机能且只能执行“指令”。指令由操作码和地址码组成。操作码表示要执行的操作性质,即执行什么操作,或做什么;地址码是操作码执行时的操作对象的地址。计算机执行一条指定的指令时,必须首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能。这个分析工作由指令译码器来完成。
控制器
英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。
其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。
微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。
简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。
控制器是协调和控制出现在中央处理器中的所有操作。控制器并不输入、输出、处理或存储数据,而是启动和控制这些操作的顺序。此外,为了启动在存储器和输入输出设备之间进行数据或指令传送,控制器必须和输入输出设备进行通信。
当计算机执行存放在内存中的用户程序时,控制器按照它们的执行顺序来获取、解释指令,输出命令或信号来指挥系统的其它部件。
实例分析CPU如何工作
执行上角的程序
右上角的指令会放到程序记忆体内,第一个指令
mov A, #21H
以上指令的意思是把21这笔资料放入A暂存器,mov 是搬运的意思。
mov翻译成机器码B0;
21是放入的资料;
ADD A, 42H
机器码 04 代表 ADD
42是输入的资料。
解释前一行指令在CPU内的运行过程
- 程式计数器指向地址1000,把1000H的位置送出去并送出读入信号;
- 把程式暂存器内的B0H抓进来;
- 解码器解出搬移指令;解码后程式计数器自动加1. PC=PC+1;
- 送出1001H位置送出第二个并送出读入信号,同时读入21H。把21H放入A暂存器。
- 程式计数器自动加1,指向1002H。
然后我们执行第二行,整个过程和执行第一行程序一样。
第二行程序的运行过程:
- 程式计数器指向1002;
- 把1002的地址送出去并送出读入信号,同时读入04H;
- 解码器解码04H的指令(ADD),程式计数器自动加1指向1003;
- 输出读入信号并读入42H并放入ALU做运算,得出结果63H放入暂存器A.