2.2 计算机的基本组成电路
任何一个复杂的电路系统都可以划分为若干模块,这些模块大都由一些典型的电路组成。微型计算机就是由若干典型电路通过精心设计而组成的,这些典型电路包括逻辑门电路、触发器、寄存器、存储器及时钟电路等。
计算机是一种离散信号的传递和处理的设备,是一种基于二进制的数字信号运算和操作的逻辑电路。逻辑电路按其内部有源器件的不同可以分为三大类:第一类为双极型晶体管逻辑门电路,包括TTL、ECL等几种类型;第二类为单极型MOS逻辑门电路,包括CMOS、NMOS等几种类型;第三类则是二者的组合BICMOS门电路。
TTL电路:TTL全称是Transistor-Transistor Logic,是数字电子技术中常用的一种逻辑门电路,应用较早,技术已比较成熟。TTL主要有BJT(Bipolar Junction Transistor即双极结型晶体管,晶体三极管)和电阻构成,具有速度快的特点。TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称作TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机各部分设备之间通信的标准技术。但是由于TTL功耗大等缺点,正逐渐被CMOS电路取代。
CMOS电路:CMOS全称是Complementary Metal-Oxide Semiconductor,即互补的金属氧化物半导体,是一种由场效应管和电阻等组成特殊类型的电子集成电路(IC)。CMOS电路具有功耗低、工作电压范围宽、逻辑摆幅大、抗干扰能力强、输入阻抗高、温度稳定性能好、扇出能力强、抗辐射能力强、接口方便等诸多优点。
虽然制造集成电路的方法有多种,但对于数字逻辑电路而言,CMOS是主要的方法。桌面个人计算机、工作站、视频游戏以及其他成千上万的其他产品都依赖于CMOS集成电路来完成所需的功能。
2.2.1 逻辑门电路
逻辑电路是数字电路中最基本的逻辑元件,分组合逻辑电路和时序逻辑电路。前者由最基本的“与门”电路、“或门”电路和“非门”电路组成,其输出值仅依赖于其输入变量的当前值,与输入变量的过去值无关,即不具记忆和存储功能;后者也由上述基本逻辑门电路组成,但存在反馈回路,它的输出值不仅依赖于输入变量的当前值,也依赖于输入变量的过去值。
电路的输入和输出之间存在一定的逻辑关系(因果关系),所以逻辑电路又称为逻辑门电路。基本逻辑关系为“与”“或”“非”三种,由最基本的“与门”电路、“或门”电路和“非门”电路来实现,所有复杂的数字电路都是这些最基本的电路组合而成。
非门:利用内部结构,使输入的电平变成相反的电平,高电平“1”变低电平“0”,低电平“0”变高电平“1”,如图2-1所示。
图2-1 非门
或门:利用内部结构,使输入信号至少一个输入高电平“1”,输出高电平“1”,输入全是低电平“0”,输出低电平“0”,如图2-2所示。
图2-2 或门
与门:利用内部结构,使输入信号都是高电平“1”,输出高电平“1”;输入信号只要有一个低电平“0”,输出低电平“0”,如图2-3所示。
图2-3 与门
2.2.2 触发器电路
触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即0和1,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。
触发器有集成触发器和门电路组成的触发器。触发方式有电平触发和边沿触发两种。下面简要地介绍一下RS触发器、D触发器和JK触发器,这些类型的触发器是计算机中最常见的基本元件。
1. RS触发器
RS触发器如图2-4所示。当S=1而R=0时,Q=1(Q=0)称为置位;当S=0而R=1时,Q=0(Q=1)称为复位。
图2-4 RS触发器
S端一般称为置位端,使Q=1(=0),R端一般称为复位端,使Q=0(=1)。
时钟RS触发器——为了使触发器在整个机器中能和其他部件协调工作,RS触发器经常有外加的时钟脉冲,如图2-5所示。
图2-5 时钟RS触发器
此图中的CLK即为时钟脉冲,它与置位信号脉冲S同时加到一个与门的两个输入端;而与复位信号脉冲同时加到另一个与门的两个输入端。这样,无论是置位还是复位,都必须在时钟脉冲端为高电位时才能进行。
2. D触发器
RS触发器有两个输入端S和R,为了存储一个高电位,就需要一个高电位输入的S端;为了存储一个低电位,就需要另一个高电位输入的R端,这在很多应用中是不很方便的。D触发器是在RS触发器的基础上延伸出来的,它只需一个输入端口,其图形符号如图2-6所示,其特点为输出状态始终跟随输入状态变化,即输出与输入状态相同。
图2-6 D触发器
无时钟的D触发器是不能协调运行的,图2-7所示是为D触发器加上时钟的电路。时钟脉冲CLK一般都是方波,在CLK处于正半周内的任何瞬间,触发器都有翻转的可能,这样计算机的动作就不可能整齐划一。系统总是想由时钟CLK来指挥整个机器的行动。因此,一般采用边缘触发的方式就可以得到整齐划一的动作。
图2-7 时钟D触发器
触发器的预置和清除:在一些电路中,有时需要预先给某个触发器置位(即置1)或清除(即置0),而与时钟脉冲以及D输入端信号无关,这就是所谓预置和清除,如图2-7所示的RD和SD端。
3. JK触发器
JK触发器是组成计数器的理想记忆元件,如图2-8所示。图中的CLK为时钟输入端,JK触发器和触发器中最基本的RS触发器结构相似,其区别在于,RS触发器不允许R与S同时为1,而JK触发器允许J与K同时为1。当J与K同时变为1时,输出的值状态会反转。也就是说,原来是0的话,变成1;原来是1的话,变成0。
图2-8 JK触发器
JK触发器是数字电路触发器中的一种基本电路单元。JK触发器具有置0、置1、保持和翻转功能,在各类集成触发器中,JK触发器的功能最为齐全。在实际应用中,它不仅有很强的通用性,而且能灵活地转换其他类型的触发器,由JK触发器可以构成D触发器和T触发器。
2.2.3 三态输出电路
计算机中的记忆元件由触发器组成,而触发器只有两个状态。即“0”态和“1”态,所以每条信号线上只能传送一个触发器的信息。如果要在一条信号线上连接多个触发器,而每个触发器可以根据需要与信号线连通或断开,当连通时可以传送“0”或“1”,断开时对信号线上的信息不产生影响,就需要一个特殊的电路加以控制,此电路即为三态输出电路,又称为三态门。
三态电路可提供三种不同的输出值:逻辑“0”,逻辑“1”和高阻态。高阻态主要用来将逻辑门同系统的其他部分加以隔离,例如双向I/O电路和共用总线结构中广泛应用三态特性。
一个简单的三态缓冲电路如图2-9所示,图(a)为表示符号,图(b)为逻辑结构。由允许信号E控制输出,当E=1为高电平时,电路的功能是一个正常的缓冲驱动器。输出根据输入为低电平或高电平则相应为低电平和高电平。当E=0为低电平时,不论输入为何种电平,两管均不导通。切断输出节点与电源VOD和地的通路,此时输出呈高阻态。实际上泄漏电流还是有的,但非常小,故输出阻抗非常大。
图2-9 三态电路
三态门电路的输出结构与普通门电路的输出结构有很大的不同,它在电路中增加了一个输出控制端EN(Enable的缩写)。当EN=1时,对原电路无影响,电路的输出符合原来电路的所有逻辑关系。当EN=0时,电路内部所有的输出将处于一种关断状态。
当多个三态门的输出端连在一起形成总线时,只要保证任何一个时刻只有一个三态门的输出控制端有效,就不会发生总线冲突现象。此时总线上的逻辑电平由那个输出有效的电路确定。
由于三态门通常总是用来驱动总线,所以大部分三态门的输出电流能力要比同系列的普通逻辑门电路强得多。
2.2.4 寄存器电路
在数字电路系统工作过程中,把正在处理的二进制数据或代码暂时存储起来的操作叫作寄存,寄存器电路就是实现寄存功能的电路,是数字逻辑电路的基础模块。
任何现代的数字电路系统,特别是一些大型的数字处理系统,往往不可能一次性地把所有的数据都处理好,因此在处理的过程中都必须把需要处理的某些数据、代码先寄存起来,以便在需要的时候随时取用。
在数字电路系统工作过程中,把正在处理的二进制数据或代码暂时存储起来的操作叫作寄存,实现寄存功能的电路称为寄存器。寄存器是一种最基本的时序逻辑电路,在各种数字电路系统中几乎是无所不在,使用非常广泛。常用的集成电路寄存器按能够寄存数据的位数来命名,如4位寄存器、8位寄存器、16位寄存器等。
寄存器按它具备的功能可分为两大类:数码寄存器和移位寄存器。若按照寄存器内部组成电路所使用的晶体管不同种类来区分,可以分成如晶体管-晶体管逻辑(TTL)、互补场效应晶体管逻辑(CMOS)等许多种类,目前使用最多的就是TTL寄存器和CMOS寄存器,它们都是中、小规模的集成电路器件。
寄存器电路是数字逻辑电路的基础模块。寄存器用于寄存一组二值代码,它被广泛地用于各类数字系统和数字计算机中。由于一个触发器能够存储一位二值代码,所以用N个触发器能够存储N位二值代码。对于寄存器中的触发器,只要求它们具有置高电平1、置低电平0的功能就可以了,因此,无论是用同步R-S结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄存器电路。
在计算机CPU中,为配合全加器的算术运算,N个触发器串联可组成移位寄存器。例如,由四位JK触发器组成的向有数据移位的移位寄存器如图2-10所示。
图2-10 存储器电路
2.2.5 存储器电路
存储器(memory)是计算机的主要组成部分。它既可用来存储数据,也可用以存放计算机的运算程序。存储器由寄存器组成,可以看作一个寄存器堆,每个存储单元实际上相当于一个缓冲寄存器。
每个存储单元所存储的内容称为一个字(word)。一个字由若干位(bit)组成。比如8个记忆元件的存储单元就是一个8位的记忆字称为一个字节(byte),由16个记忆单元组成的存储单元就是一个16位的记忆字(由两个字节组成)。
一个存储器可以包含数以千计的存储单元。所以,一个储存器可以存储很多数据,也可以存放很多计算步骤——称为程序(program)。为了便于存入和取出,每个存储单元必须有一个固定的地址。因此,存储器的地址也必定是数以千计的。为了减少存储器向外引出的地址线,在存储器内部都自带译码器。根据二进制编码译码的原理,除地线公用之外,n根导线可以译成2n个的地址号。
例如,一个16×8的存储器,如图2-11所示,它是一个有16个存储单元,每个单元为8位记忆字(即每单元存一个字节)的集成电路片,它将有4条地址线A0,A1,A2,A3和8条数据线D0,D1,D2,D3,D4,D5,D6,D7。如16个存储单元为R0,R1,…,R15。它们是A0,A1,A2,A3的全部组合。
图2-11 16×8的存储器
A0~A3就是地址总线中的4根译码线。当存储器的存储单元愈多,则地址总线中的译码线,亦即存储器集成电路片的地址线愈多,如果地址线为n,则存储器单元的数量为2n个。例如:当地址线为10条时n=10,则可编地址号为1024个,或称为1K;16条地址线,可译出65536个地址,或称为64K。这里的1K和习惯上的1000不一样,请务必注意。
2.2.6 时序及时钟电路
1. 时序及有关概念
要使计算机有条不紊地工作,对各种操作信号的产生时间、稳定时间、撤销时间及相互之间的关系都有严格的要求。对操作信号施加时间上的控制,称为时序控制。只有严格的时序控制,才能保证各功能部件有机地组合成计算机系统。
计算机的时间控制称为时序。指令系统中每条指令的操作均由一个微操作序列完成,这些微操作是在微操作控制信号控制下执行的。即指令的执行过程是按时间顺序进行的,也即计算机的工作过程都是按时间顺序进行的。时序系统的功能是为指令的执行提供各种操作定时信号。
时序控制方式为同步控制方式、异步控制方式和同异步联合控制方式3类。
(1)同步控制方式
同步控制方式又称固定时序控制方式或无应答控制方式。任何指令的执行或指令中每个微操作的执行都受事先安排好的时序信号的控制,每个时序信号的结束就意味着一个微操作或一条指令已经完成、随即开始执行后续的微操作或自动转向下一条指令的执行。
在同步控制方式中,每个周期状态中产生统一数目的节拍电位及时标工作脉冲。不同的指令,微操作序列和操作时间也不一样。对同步控制方式要以最复杂指令的实现需要作为基准,进行控制时序设计。
同步控制方式设计简单,操作控制容易实现。但大多数指令实现时,会有较多空闲节拍和空闲工作脉冲,形成较大数量的时间浪费,影响和降低指令执行的速度。
(2)异步控制方式
异步控制方式又称可变时序控制方式或应答控制方式。执行一条指令需要多少节拍,不作统一规定,而是根据每条指令的具体情况而定,需要多少时标信号,控制器就产生多少时标信号。这种控制方式的特点是:每一条指令执行完毕后都必须向控制时序部件发回一个回答信号,控制器收到回答信号后,才开始下一条指令的执行。
这种控制方式的优点是每条指令都可以在最短的、必需的节拍时间内执行完毕。指令的运行效率高;缺点是由于各指令功能不一样,微操作步序列长、短、繁、简不一致,节拍个数不同。控制器需根据情况加以控制,故控制线路比较复杂。
异步工作方式在计算机中得到了广泛的应用。例如,CPU对内存的读写操作,I/O设备与内存的数据交换等一般都采用异步工作方式以保证执行时的高速度。
(3)同异步联合控制方式
现代计算机系统中一般采用的方式是同步控制和异步控制相结合的方式,即联合按制方式。对不同指令的各个微操作实行大部分统一、小部分区别对待的方法。一般的设计思想是在功能部件内部采用同步控制方式,而在功能部件之间采用异步控制方式,并且在硬件实现允许的情况下,尽可能多地采用异步控制方式。
例如,在一般微型机中,CPU内部基本时序节拍关系采用同步控制方式,按多数指令的需要设置节拍数目与顺序,但对某些指令的控制要求可能不够用,这时采取插入节拍、延长节拍或延长周期时间的方式,使之满足各指令的需要。这些控制时序均体现了基本同步控制、局部异步协调控制的思想。再例如,当CPU要访问存储器时,在发送读/写命令后。存储器进入异步工作方式,当存储器访问完毕以后,会向CPU发回一个信号,表示解除对同步时序的冻结,机器又按同步时序运行(或发出一个WAIT信号冻结,不发信号时解除冻结)。
2. 时钟电路
几乎所有的数字系统在处理信号都是按节拍一步一步地进行的,系统各部分也是按节拍有序工作的,要使电路的各部分统一节拍就需要一个“时钟信号”,产生这个时钟信号的电路就是时钟电路。
时钟电路一般由晶体振荡器、晶振控制芯片和电容组成。有人认为它们的重要性等同于电源,在任何需要时序信号的东西中都能发现它们的应用,从数字手表到电视和PC。时钟电路的核心是个比较稳定的振荡器(一般都用晶体振荡器),振荡器产生的是正弦波,频率不一定是电路工作的时钟频率,所以要把这正弦波进行分频处理,形成时钟脉冲,然后分配到需要的地方。让系统里各部分工作时使用。
晶体振荡器,以下简称晶振,是利用了晶体的压电效应制造的,当在晶片的两面上加交变电压时,晶片会反复地机械变形而产生振动,而这种机械振动又会反过来产生交变电压。当外加交变电压的频率为某一特定值时,振幅明显加大,比其他频率下的振幅大得多,产生共振,这种现象称为压电谐振。晶振产生振荡必须附加外部时钟电路,一般是一个放大反馈电路,只有一片晶振是不能实现振荡的。
下图为典型的微处理器时钟电路结构:主要有由电容器、晶振和微处理器内部电路组成振荡回路,产生时钟信号的频率由晶振决定。
图2-12 微处理器时钟电路