微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。
组成
微处理器由算术逻辑单元(ALU,Arithmetic Logical Unit);累加器和通用寄存器组;程序计数器(也叫指令指标器);时序和控制逻辑部件;数据与地址锁存器/缓冲器;内部总线组成。其中运算器和控制器是其主要组成部分。
算术逻辑单元
算术逻辑单元ALU主要完成算术运算(+,-、×、÷、比较)和各种逻辑运算(与、或、非、异或、移位)等操作。ALU是组合电路,本身无寄存操作数的功能,因而必须有保存操作数的两个寄存器:暂存器TMP和累加器AC,累加器既向ALU提供操作数,又接收ALU的运算结果。
寄存器阵列实际上相当于微处理器内部的RAM,它包括通用寄存器组和专用寄存器组两部分,通用寄存器(A,B,C,D)用来存放参加运算的数据、中间结果或地址。它们一般均可作为两个8位的寄存器来使用。处理器内部有了这些寄存器之后,就可避免频繁地访问存储器,可缩短指令长度和指令执行时间,提高机器的运行速度,也给编程带来方便。专用寄存器包括程序计数器PC、堆栈指示器SP和标志寄存器FR,它们的作用是固定的,用来存放地址或地址基值。其中:
A)程序计数器PC用来存放下一条要执行的指令地址,因而它控制着程序的执行顺序。在顺序执行指令的条件下,每取出指令的一个字节,PC的内容自动加1。当程序发生转移时,就必须把新的指令地址(目标地址)装入PC,这通常由转移指令来实现。
B)堆栈指示器SP用来存放栈顶地址。堆栈是存储器中的一个特定区域。它按“后进先出”方式工作,当新的数据压入堆栈时,栈中原存信息不变,只改变栈顶位置,当数据从栈弹出时,弹出的是栈顶位置的数据,弹出后自动调正栈顶位置。也就是说,数据在进行压栈、出栈操作时,总是在栈顶进行。堆栈一旦初始化(即确定了栈底在内存中的位置)后,SP的内容(即栈顶位置)使由CPU自动管理。
C)标志寄存器也称程序状态字(PSW)寄存器,用来存放算术、逻辑运算指令执行后的结果特征,如结果为0时,产生进位或溢出标志等。
定时与控制逻辑是微处理器的核心控制部件,负责对整个计算机进行控制、包括从存储器中取指令,分析指令(即指令译码)确定指令操作和操作数地址,取操作数,执行指令规定的操作,送运算结果到存储器或I/O端口等。它还向微机的其它各部件发出相应的控制信号,使CPU内、外各部件间协调工作。
内部总线用来连接微处理器的各功能部件并传送微处理器内部的数据和控制信号。
必须指出,微处理器本身并不能单独构成一个独立的工作系统,也不能独立地执行程序,必须配上存 储器、输入输出设备构成一个完整的微型计算机后才能独立工作。
存储器
微型计算机的存储器用来存放当前正在使用的或经常使用的程序和数据。存储器按读、写方式分为随机存储器RAM(Random Access Memory)和只读存储器ROM(Read only Memory)。RAM也称为读/写存储器,工作过程中CPU可根据需要随时对其内容进行读或写操作。RAM是易失性存储器,即其内容在断电后会全部丢失,因而只能存放暂时性的程序和数据。ROM的内容只能读出不能写入,断电后其所存信息仍保留不变,是非易失性存储器。所以ROM常用来存放永久件的程序和数据。如初始导引程序、监控程序、操作系统中的基本输入、输出管理程序BIOS等。
I/O接口
输入/输出接口电路是微型计算机的重要组成部件。他是微型计算机连接外部输入、输出设备及各种控制对象并与外界进行信息交换的逻辑控制电路。由于外设的结构、工作速度、信号形式和数据格式等各不相同,因此它们不能直接挂接到系统总线上,必须用输入/输出接口电路来做中间转换,才能实现与CPU间的信息交换。I/O接口也称I/O适配器,不同的外设必须配备不同的I/O适配器。I/O接口电路是微机应用系统必不可少的重要组成部分。任何一个微机应用系统的研制和设计,实际上主要是I/O接口的研制和设计。因此I/O接口技术是本课程讨论的重要内容之一,我们将在第八章中详细介绍。
总线
总线是计算机系统中各部件之间传送信息的公共通道,是微型计算机的重要组成部件。它由若干条通信线和起驱动,隔离作用的各种三态门器件组成。微型计算机在结构形式上总是采用总线结构,即构成微机的各功能部件(微处理器、存储器、I/O接口电路等)之间通过总线相连接,这是微型计算机系统结构上的独特之处。采用总线结构之后,使系统中各功能部件间的相互关系转变为各部件面向总线的单一关系,一个部件(功能板/卡)只要符合总线标准,就可以连接到采用这种总线标准的系统中,从而使系统功能扩充或更新容易、结构简单、可靠性大大提高。在微型计算机中,根据他们所处位置和应用场合,总线可被分为以下四级,如图1.4所示。
(1)片内总线:它位于微处理器芯片内部,故称为芯片内部总线。用于微处理器内部ALU和各种寄存器等部件间的互连及信息传送(如图1.3中的内部总线就是片内总线)。由于受芯片面积及对外引脚数的限制,片内总线大多采用单总线结构,这有利于芯片集成度和成品率的提高,如果要求加快内部数据传送速度,也可采用双总线或三总线结构。
(2)片总线:片总线又称元件级(芯片级)总线或局部总线。微机主板、单扳机以及其它一些插件板、卡(如各种I/O接口板/卡),它们本身就是一个完整的子系统,板/卡上包含有CPU,RAM,ROM,I/O接口等各种芯片,这些芯片间也是通过总线来连接的,因为这有利于简化结构,减少连线,提高可靠性,方便信息的传送与控制。通常把各种板、卡上实现芯片间相互连接的总线称为片总线或元件级总线。
相对于一台完整的微型计算机来说,各种板/卡只是一个子系统,是一个局部,故又把片总线称为局部总线,而把用于连接微机各功能部件插卡的总线称为系统总线。局部总线是一个重要的概念,我们将在第七章中讨论。
(3)内总线:内总线又称系统总线或板级总线。因为该总线是用来连接微机各功能部件而构成一个完整微机系统的,如图1.2中所示,所以称之为系统总线。系统总线是微机系统中最重要的总线,人们平常所说的微机总线就是指系统总线,如PC总线、AT总线(ISA总线)、PCI总线等。系统总线是我们要讨论的重点内容之一。
系统总线上传送的信息包括数据信息、地址信息、控制信息,因此,系统总线包含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus),如图1.2中所示。
数据总线DB用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
地址总线AB是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。
控制总线CB用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、限备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。
(4)外总线:也称通信总线。用于两个系统之间的连接与通信,如两台微机系统之间、微机系统与其他电子仪器或电子设备之间的通信。常用的通信总线有IEEE-488总线,VXI总线和RS-232串行总线等。外总线不是微机系统本身固有的,只有微型机应用系统中才有。