什么是微处理器?微处理器有什么样的功能结构?本章以Intel公司的x86 CPU介绍微处理器的基本结构及其发展,介绍从8086到Pentium 4微处理器的发展,分析微处理器的引脚信号和工作模式,并介绍微处理器的总线周期。
本章主要内容
& 8086的基本构成
& 8086的寄存器功能
& Pentium 4的特性
如图3-1所示是经过简化的既易于理解又保持了CPU主要特征的简单微型计算机,图3-1中虚线左边是CPU,它包含运算器(ALU)、控制器和寄存器组3部分,各部分通过内部总线相连;虚线右边是存储器,为CPU提供数据和程序。
图3-1 简单微型计算机结构
微处理器CPU是整个微型计算机的核心,由运算器和控制器组成,主要任务是进行各种算术运算、逻辑运算,并指挥、组织和协调计算机各个部件的工作。
CPU一般具有以下基本功能。
· 指明将要执行的指令的存储单元地址;取出指令并进行译码。
· 执行指令,包括进行算术、逻辑运算和各种处理,暂存少量数据。
· 传送数据,包括在CPU内部传送数据以及与外界交换数据。
· 对各部件进行控制,包括对CPU内部的控制和对CPU以外部件的控制。
· 响应其他部件发出的中断请求和总线请求等。
(1)寄存器组。寄存器是CPU的主要组成部分,用来存放数据和地址。存放的数据包括参与运算的源操作数、操作的中间结果以及最终结果。寄存器组有若干个寄存器,每个寄存器都有指定的名称和编号,有些寄存器在程序执行过程中可承担多种任务,称为通用寄存器,某些通用寄存器还用于一些指定的用途;有些寄存器专门用作某种特定的用途,称为特殊寄存器。显然寄存器越多,程序的设计越灵活方便,可以减少程序执行过程中访问内存储器的次数,从而提高程序运行速度和效率。
累加器(accumulator)和标志寄存器(FLAGS)是寄存器组中极为重要的两个寄存器。多数情况下进行算术、逻辑运算的一个操作数就是来自于累加器,并且运算后的结果一般也送回累加器;CPU与内存单元交换数据时,累加器也是基本的源寄存器或目标寄存器;输入/输出操作多数也是通过累加器进行的。
标志寄存器则主要用来保存ALU运算或CPU其他操作指令执行后结果的某些特征和状态,它的某些位还用作控制标志。
(2)算术逻辑单元(Arithmetic Logical Unit,ALU)。在微型计算机中,复杂的数学运算可以用加法和移位这两种基本操作来实现,因此ALU主要由加法器、移位电路、门控制电路等组成,并在操作控制信号作用下完成各种算术运算、逻辑运算和其他操作。ALU有两个输入端,接收两个(或一个)待处理的操作数,执行运算后结果从输出端送到某个寄存器,或者经地址总线、数据总线送到片外的存储器中保存,同时运算结果的某些特征位则送到标志寄存器中。
(3)控制器。计算机从开始工作到一系列操作的完成都是根据预先编好的程序自动进行的。程序中每一条指令均指明了机器做什么和怎样做。为了完成一条指令所规定的操作,机器的有关部件、电路要相应地完成一系列基本动作,而这些基本动作又必须按时间先后次序,互相配合,有节奏地完成。计算机要完成这样复杂的动作,必须要有控制器统一指挥才行。控制器是指挥全机工作的控制中心,控制器源源不断地从内存储器取来指令,并对之译码,产生为完成该条指令而供给计算机各部件所需要的操作控制信号。为了完成上述功能,控制器至少必须包括以下电路。
① 程序计数器。程序计数器(Program Counter,PC)又称指令指示器(Instruction Pointer,IP),是用来表征和计算指令序号的计数器,从而控制对指令的读取。程序在存储器中是按指令排列的顺序预先存放的,在多数情况下,PC按顺序加1计数,CPU按PC指出的顺序逐字节逐条地从内存中取出指令,并分析、执行指令。每当取出一个字节的指令后,PC自动加1,PC中的内容就是下一个指令字节所在的存储单元的地址。当遇到转移类指令、调用指令或返回指令时,指令执行的结果是将要转移的目标地址送入PC中,CPU按照PC中的内容取指令,从而实现了程序的转移。
PC的位数取决于微处理器所能寻址的存储空间,例如寻址空间为64KB(如8086 CPU计算机),则PC至少16位(216=65536)。
② 地址寄存器。地址寄存器(Address Register,AR)存放存储单元地址或I/O端口地址,而该存储单元或端口中存放的则是将要执行的指令或是将要读/写的数据。
③ 数据寄存器。数据寄存器(Data Register,DR)用来存放读或写的数据,这些数据可能是参加运算的数据、结果或者是指令、地址等。
④ 指令寄存器和指令译码器。指令寄存器(Instruction Register,IR)接收从存储器中取出的指令代码,再把该指令代码送到指令译码器(Instruction Decoder,ID)。指令译码器对指令进行分析、译码,确定指令的操作类别、条件及如何寻找操作数,供操作控制部件按时序产生各种不同的操作控制信号去控制各部件协调工作。
⑤ 时序部件。时序部件产生计算机系统各个部件所需要的时序信号。