微处理器
微处理器(CPU)是计算机的核心部件,其中除了运算器和控制器外, 还包括用于暂存数据的寄存器和传输信息用的内部总线。图 1-8 为一个简化的 CPU 模型,CPU 需要通过三 总线(数据总线、地址总线和控制总线) 与存储器和 I/O 接口进行通信和联络。本节将介绍微处理器各组成部件的功能以及微处理器的主要性能指标。
图 1-8 简化的 CPU 模型
微处理器各部件的功能
(1)运算器
运算器由算术逻辑运算单元(Arithmetic and Logical Unit ,ALU)、累加器和暂存器等部 件构成。 ALU 是运算器的核心部件,可以完成两个数的加法、减法、比较以及与、或、非 等运算,参与运算的两个数分别由累加器和暂存器提供。 ALU 的运算结果被送回累加器,并且运算结果的状态将被记录在程序状态字(Program Status Word ,PSW) 寄存器中。这里所谓的运算结果状态是指运算是否产生了进位、借位, 运算结果是否为零,是否为负数等,每种状态均以 1 位二进制数来表示。
(2)寄存器
寄存器是 CPU 内部用于存储信息的物理器件。所谓的信息可以是数据、地址或指令。 比如:累加器是用于存放数据的寄存器; PSW 是用于存放 ALU 运算结果状态的寄存器;而指令寄存器(IR) 存放从存储器中读取的指令代码。
(3)控制器
控制器是控制和协调计算机各部件协同工作的机构,主要包括程序计数器(PC)、指令 寄存器(IR)、指令译码器(ID)和控制信号发生电路。
微处理器的主要性能指标
微处理器的主要性能指标有字长和指令执行时间,分别用于衡量微处理器的运算能力和运算速度。
(1)字长
字长是微处理器一次可以处理的二进制数的位数。字长越长,CPU 的计算能力越强、计 算速度越快。比如,Intel 公司 1971 年推出的第一代微处理器 Intel 4004 (见图 1-3a)的字长 是 4 位, 每次只能进行 4 位二进制数计算, 4 位二进制无符号数的数值范围是 0~15;而该 公司生产的微处理器 Intel 80386 (如图 1-3c 所示)的字长是 32 位, 每次可以完成 32 位二进 制数的计算,32 位二进制无符号数的数值范围是0~4294967295。
(2)指令执行时间
指令执行时间越短,速度越快。指令执行的时间与微型计算机的时钟频率有关,每条指令执行所消耗的时钟周期个数是固定的,因此时钟频率越高,指令执行速度越快。
存储器
在微型计算机中,存储器主要用于存放数据和指令。存储器有两类,包括随机存取存储 器(RAM)和只读存储器(ROM) 。RAM 中的信息可以被读、写, 既能存放数据,也能存 放指令代码。而 ROM 中的信息只能被读取,不能被修改, 因此 ROM 只能存放指令代码或程序执行过程中保持不变的数据。存储器由半导体存储器芯片构成,包含若干个存储单元, 每个存储单元可以存放若干位二进制数,每个存储单元都被分配一个地址,即存储单元地址。微处理器读、写存储器时必须提供存储单元的地址。
图 1-9 给出了 MCS-51 单片机的微处理器从程序存储器中读取一条指令“MOV A,#12H”(该指令中“#12H”代表十六进制数 12H ,A 代表累加器,指令功能是将数字 12H 送入累加器)的过程示意图,可以帮助读者更好地理解计算机的工作原理,即“存 储程序的原理”,另外该图中的①~⑥是指令执行步骤的序号。如图 1-9 所示,访问存储 器时必须提供被访问存储单元的地址,而被取指令在程序存储器中的存放地址由程序计 数器(PC) 提供。读指令的过程中,PC 的值会自动增加(当程序出现分支或循环时可能 是减小)指向下一个存储单元,为取下一个指令做准备。需要注意的是,指令操作码用于指明指令要完成的操作,需要经指令译码器翻译后才能被 CPU “理解”,而指令操作数是被指令处理的数据,不需要指令译码器翻译。另外,单片机进行数据存储器读、写的过程与读取指令操作数的过程类似,主要差别是数据存放在数据存储器中,并且其存储单元的地址不由 PC 提供。
图 1-9 指令“MOV A,#12H”读取过程示意图
a) 读取操作码 b) 读取操作数
I/O 接口
I/O 接口是微处理器和 I/O 设备之间的桥梁, 常用的 I/O 接口包括串行通信接口、定时 器接口和模拟通道接口等。 I/O 接口通过三总线与微处理器相连,为了区分各 I/O 接口, CPU 给每个 I/O 接口分配固定且不同的地址。与访问存储器类似,CPU 访问I/O 接口时也需先将 I/O 接口的地址送入地址总线,然后再通过数据总线传输数据。