计算机第2章-修改后的_第1页
计算机第2章-修改后的_第2页
计算机第2章-修改后的_第3页
计算机第2章-修改后的_第4页
计算机第2章-修改后的_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章微型计算机的基本组成电路2.1算术逻辑单元2.2触发器2.3寄存器2.4三态输出电路2.5总线结构2.6存储器习题任何一个复杂的电路系统都可以划分为若干电路,这些电路大都由一些典型的电路组成。微型计算机就是由若干典型电路通过精心设计而组成的,各个典型电路在整体电路系统中又称为基本电路部件。本章就是对微型计算机中最常见的基本电路部件的名称及电路原理作一简单介绍。这些基本电路中最主要的是算术逻辑单元(arithmaticlogicalunit,ALU)、触发器(trigger)、寄存器(register)、存储器(memory)及总线结构等。在本章中,数据在这些部件之间的流通过程以及“控制字”的概念也将逐步地引出。所有这些内容都是组成微型计算机的硬件基础。2.1算术逻辑单元(ALU)

算术逻辑单元用来完成算术运算、逻辑判断、逻辑运算和信息传递的部件,或者说是数据处理的部件。它由加法器、移位电路、逻辑运算部件、寄存器等电路构成。由于任何数学运算最终可以用加法和移位这两种基本操作来完成。因而加法器是ALU的核心部件。寄存器用来暂时存放参加运算的操作数和运算结果。在计算机内,各种数据都用若干个“0”或“1”组成的二进制代码表示。如果这一组二进制码是作为一个整体来处理,它的位数称为字长(Wordsize),位的单位称为比特(Bit)。如果这一组二进制码由16位组成,其字长为16比特。不同类型的计算机的字长是不同的。现在常用的微型机字长为32位、64位。字长的多少影响着计算的精度和速度。计算机的运算速度是ALU的又一技术指标。运算速度是指每秒钟内机器能执行的指令次数,单位是次/秒。计算机的运算速度不仅取决于ALU。还与存储器的存取时间等因素有关。目前CPU的运行速度常用主频来表示,如300MHz、450MHz、600MHz等,频率越高运行速度越快。ALU的符号一般画成图2.1那样。A和B为两个二进制数,S为其运算结果,control为控制信号(见图1.9的控制线端SUB)。图2.12.2触发器

触发器(trigger)是计算机的记忆装置的基本单元,也可说是记忆细胞。触发器可以组成寄存器,寄存器又可以组成存储器。寄存器和存储器统称为计算机的记忆装置。微型计算机所用触发器一般用晶体管元件而不用磁性元件。这是因为晶体管元件可以制成大规模的集成电路,体积可以更小些。下面简要地介绍一下RS触发器、D触发器和JK触发器,因为这些类型的触发器是计算机中最常见的基本元件。2.2.1RS触发器

RS触发器可以用两个与非门来组成,如图2.2所示。当S=1而R=0时,Q=1(Q=0)称为置位;当S=0而R=1时,Q=0(Q=1)称为复位。为了作图方便,以后我们就只用方块来表示,如图2.3就是RS触发器的符号。S端一般称为置位端,使Q=1(Q=0),R端一般称为复位端,使Q=0(Q=1)。时标RS触发器——为了使触发器在整个机器中能和其他部件协调工作,RS触发器经常有外加的时标脉冲,如图2.4所示。图2.2图2.3触发器的非端或0端触发器的原端或1端对RS触发器归纳为以下几点:1、基本RS触发器具有置位、复位和保持(记忆)的功能;2、基本RS触发器的触发信号是低电平有效,属于电平触发方式;3、基本RS触发器存在约束条件(R+S=1),由于两个与非门的延迟时间无法确定,当R=S=0时,将导致下一状态的不确定。4、当输入信号发生变化时,输出即刻会发生变化,抗干扰性较差。图2.4此图中的CLK即为时标脉冲。它与置位信号脉冲S同时加到一个与门的两个输入端;而与复位信号脉冲同时加到另一个与门的两个输入端。这样,无论是置位还是复位,都必须在时标脉冲端为高电位时才能进行。2.2.2D触发器

RS触发器有两个输入端S和R。为了存储一个高电位,就需要一个高电位输入的S端;为了存储一个低电位,就需要另一个高电位输入的R端。这在很多应用中是不很方便的。D触发器是在RS触发器的基础上引伸出来的,它只需一个输入端口,图2.5就是D触发器的原理。当D端为高电位时,S端为高电位,而通过非门后加到R端的就是低电位,所以此时Q端就是高电位,称为置位。当D端为低电位时,S端为低电位,同时R端变为高电位,所以Q端是低电位,称为复位。图2.5无时标的D触发器是不能协调运行的,图2.6所示是如何为D触发器加上时标的电路。此图和图2.4的道理是一样的,也是增加两个与门就可以接受时标脉冲CLK的控制。图2.6时标脉冲CLK一般都是方波,在CLK处于正半周内的任何瞬间,触发器都有翻转的可能。这样计算机的动作就不可能整齐划一。我们总是想由时标CLK来指挥整个机器的行动。因此,采用时标边缘触发的方式就可以得到准确划一的动作。图2.7就是边缘触发的D触发器的电路原理图。图2.7图2.7与图2.6的区别仅为增加了一个RC微分电路,它能使方波电压信号的前沿产生正尖峰,后沿产生负尖峰。这样,在D端输入信号建立之后,当时标脉冲的前沿到达的瞬间,触发器才产生翻转动作。如果D输入端的信号是在时标脉冲前沿到达之后才建立起来的,则虽然仍在时标脉冲的正半周时间内,也不能影响触发器的状态,而必须留到下一个时标脉冲的正半周的前沿到达时才起作用。这样就可以使整个计算机运行在高度准确的协调节拍之中。触发器的预置和清除:在一些电路中,有时需要预先给某个触发器置位(即置1)或清除(即置0),而与时标脉冲以及D输入端信号无关,这就是所谓预置和清除。这种电路很简单,只要在图2.7的电路中增加两个或门就可以实现,如图2.8所示。图2.8边缘触发的D触发器在计算机电路图中常用图2.9的符号来表示。图2.9图2.9(a)为正边缘触发的符号,而图2.9(b)为负边缘触发的符号。此二符号之差别在于后者增加了一个所谓汽泡“○”。这实际上是在D触发器的时标CLK的微分电路之后再串联一个非门(反相器)的简化符号。图2.9(c)与前二图之差别,也在于其增加了两个汽泡“○”,这也是代表了增加两个非门于PRESET和CLR端。这样,就必须是低电平到来才能经非门转换成高电平去进行预置和清除作用。2.2.3JK触发器

JK触发器是组成计数器的理想记忆元件,这里就JK触发器的电路原理作一简要介绍。在RS触发器前面增加两个与门,并从输出(Q和Q)到输入(与门的输入端)作交叉反馈,即可得到JK触发器如图2.10所示。图中的CLK输入端串有RC电路也是为了获得正边缘触发的工作方式的。这个电路的工作过程是:图2.10(1)当J=0,K=0,即J和K都是低电平时,两个与门都被阻塞,无论此时Q和Q是什么状态,由于S和R也是低电平,所以不会改变Q和Q的状态,这种状态称为保持闭锁状态。(2)J=0,K=1,即J为低电平而K为高电平。此时上面的与门被阻塞,即S不可能为高电平,所以也无置位(即使Q=1)的可能。如果此时Q=1,则反馈至下面的与门。在下一个CLK的正脉冲边沿到达时,触发器就产生复位动作(Q=0,Q=1)。如果Q原来为低电平(Q=0,Q=1),则反馈至下面的与门而使其也被阻塞,所以即使K=1,也没有任何动作产生,触发器仍处于复位状态(Q=0,Q=1)。(3)J=1,K=0,即J为高电平而K为低电平。此时下面的与门被阻塞,即R不可能为高电平,所以也无复位(即使Q=0)的可能。如果此时Q=0,而Q=1,则反馈至上面的与门,在下一个CLK的正脉冲边缘到达时,触发器就产生置位动作(Q=1,Q=0)。如果Q原来为高电平(Q=1,Q=0),则反馈至上面的与门而将其阻塞,这样上下两个与门都被阻塞了,触发器就仍处于置位状态(Q=1,Q=0)。(4)J=1,K=1,即J,K同为高电平,则可能使触发器置位(Q=1,Q=0)或复位(Q=0,Q=1)。也就是说,如果原来的状态为Q=0,Q=1,在J=1及K=1而且在CLK的正边缘脉冲到达时,就会翻转到Q=1,Q=0。反之,如果原来的状态为Q=1,Q=0,在J=1及K=1而且在CLK的正边缘脉冲到达时,就会翻转到Q=0,Q=1。所谓翻转,就是触发器的状态改变的意思。图2.11JK触发器的符号JKQ动作00保持原状自锁状态010复位101置位11原状态的反码翻转2.3寄存器

寄存器(register)是由触发器组成的。一个触发器就是一个一位寄存器。由多个触发器可以组成一个多位寄存器。寄存器由于其在计算机中的作用之不同而具有不同的功能,从而被命名为不同的名称。常见的寄存器有:缓冲寄存器——用以暂存数据;移位寄存器——能够将其所存的数据一位一位地向左或向右移;计数器——一个计数脉冲到达时,会按二进制数的规律累计脉冲数;累加器——用以暂存每次在ALU中计算的中间结果。下面分别介绍这些寄存器的工作原理及其电路结构。2.3.1缓冲寄存器

其基本工作原理为:设有一个二进制数,共有4位数:X=X3X2X1X0要存到这个缓冲寄存器(buffer)中去,此寄存器是由4个D触发器组成的。将X0,X1,X2,X3分别送到各个触发器的D0,D1,D2,D3端去,只要CLK的正前沿还未到来,则Q0,Q1,Q2,Q3就不受X0,X1,X2,X3的影响而保持其原有的数据。只有当CLK的正前沿来到时,Q0,Q1,Q2,Q3才接受D0,D1,D2,D3的影响,而变成:图2.12Q0=X0Q1=X1Q2=X2Q3=X3结果就是:Q=Q3Q2Q1Q0=X3X2X1X0=X这就叫做将数据X装到寄存器中去了。如要将此数据送至其他记忆元件去,则可由Y0,Y1,Y2,Y3各条引线引出去。可控缓冲寄存器:图2.12的缓冲寄存器的数据X输入到Q只是受CLK的节拍管理,即只要一将X各位加到寄存器各位的D输入端,时标节拍一到,就会立即送到Q去。这有时是不利而有害的,因为也许我们还想让早已存在其中的数据多留一些时间,但由于不可控之故,在CLK正前沿一到就会立即被来到门口的数据X替代掉。为此,我们必须为这个寄存器增设一个可控的“门”。这个“门”的基本原理如图2.13所示,它是由两个与门一个或门以及一个非门所组成的。图2.13在X0端送入数据(0或1)后,如LOAD端(以下简称为L端)为低电位,则右边的与门被阻塞,X0过不去,而原来已存在此位中的数据由Q0送至左边的与门。此与门的另一端输入从非门引来的与L端反相的电平,即高电位。所以Q0的数据可以通过左边的与门,再经或门而送达D0端。这就形成自锁,即既存的数据能够可靠地存在其中而不会丢失。如L端为高电位,则左边与门被阻塞而右边与门可让X0通过,这样Q0的既存数据不再受到自锁,而X0可以到达D0端。只要CLK的正前沿一到达,X0即被送到Q0去,这时就叫做装入(LOAD)。一旦装入之后,L端又降至低电平,则利用左边的与门,X0就能自锁而稳定地存在Q0中。要记住,以后我们一提到“L门”,大家就要想到图2.13的电路结构及其作用:高电平时使数据装入,低电平时,数据自锁在其中。对于多位的寄存器,每位各自有一套如图2.13一样的电路。不过只用一个非门,并且只有一个LOAD输入端,如图2.14所示。图2.14可控缓冲寄存器的符号一般画成图2.15那样,LOAD为其控制门,而CLR为高电平时则可用以清除,使其中各位变为0。图2.152.3.2移位寄存器移位寄存器(shiftingregister)能将其所存储的数据逐位向左或向右移动,以达到计算机在运行过程中所需的功能,例如用来判断最左边的位是0或1等。电路原理图如图2.16所示。图2.16左移寄存器如图2.16(a)所示,当Din=1而送至最右边的第1位时,D0即为1,当CLK的正前沿到达时,Q0即等于1。同时第2位的D1也等于1。当CLK第2个正前沿到达时,Q1也等于1。结果可得下列的左移过程:

CLK前沿未到Q=Q3Q2Q1Q0=0000第1前沿来到Q=0001第2前沿来到Q=0011第3前沿来到Q=0111第4前沿来到Q=1111第5前沿来到,如此时Din仍为1,则Q不变,仍为1111。当Q=1111之后,改变Din,使Din=0,则结果将是把0逐位左移:第1前沿来到Q=1110第2前沿来到Q=1100第3前沿来到Q=1000第4前沿来到Q=0000由此可见,在左移寄存器中,每个时钟脉冲都要把所储存的各位向左移动一个数位。右移寄存器如图2.16(b)所示。图2.16(b)与图2.16(a)之差别仅在于各位的接法不同,而且输入数据Din是加到左边第1位的输入端D3。根据上面的分析,当Din=1时,随着时钟脉冲而逐步位移是这样的:CLK前沿未到Q=0000第1前沿来到Q=1000第2前沿来到Q=1100第3前沿来到Q=1110第4前沿来到Q=1111由此可见,在右移寄存器中,每个时钟脉冲都要把所存储的各位向右移动一个位置。可控移位寄存器:和缓冲寄存器一样,在整机运行中,移位寄存器也需要另有控制电路,以保证其在适当时机才参与协调工作。这个电路也和图2.13一样,只要在每一位的电路上增加一个这样的LOAD门(L门)即可以达到控制的目的。可控移位寄存器的符号如图2.17所示,其中新出现的符号的意义是:SHL——左移(shifttotheleft)SHR——右移(shifttotheright)图2.172.3.3计数器计数器(counter)也是由若干个触发器组成的寄存器,它的特点是能够把存储在其中的数字加1。计数器的种类很多,有行波计数器、同步计数器、环形计数器和程序计数器等。(1)行波计数器(travellingwavecounter)的特点是:第1个时钟脉冲促使其最低有效位(leastsignificantbit,LSB)加1,由0变1。第2个时钟脉冲促使最低有效位由1变0,同时推动第2位,使其由0变1。同理,第2位由1变0时又去推动第3位,使其由0变1,这样有如水波前进一样逐位进位下去。图2.18就是由JK触发器组成的行波计数器的工作原理图。图2.18中的各位的J,K输入端都是悬浮的,这相当于J,K端都是置1的状态,亦即是各位都处于准备翻转的状态。只要时钟脉冲边缘一到,最右边的触发器就会翻转,即Q由0转为1或由1转为0。各位的JK触发器的时钟脉冲输入端都带有一个“气泡”,这表示是串有一个反相门(非门),这样,只有时钟脉冲的后沿(产生负的尖峰电压)才能为其所接受。因此,可得计数步骤如下:图2.18开始时使CLR由高电位变至低电位(这也是由于有“气泡”在CLR输入端之故),则计数器全部清除,所以:Q=Q3Q2Q1Q0=0000第1时钟后沿到Q=0001此Q0由低电位(0)升至高电位(1),产生的是电位上升的变化,由于有“气泡”在第2位的时钟脉冲输入端,所以第2个触发器不会翻转,必须在Q0由1降为0时才会翻转。接着:第2时钟后沿到Q=0010第3时钟后沿到Q=0011第4时钟后沿到Q=0100第5时钟后沿到Q=0101第6时钟后沿到Q=0110第7时钟后沿到Q=0111第8时钟后沿到Q=1000…………第15时钟后沿到Q=1111第16时钟后沿到Q=0000在第16个时钟脉冲到时,计数器复位至0,因此这个计数器可以计由0至15的数。如果要计的数更多,就需要更多的位,即更多的JK触发器来组成计数器。如8位计数器可计由0至255的数,12位计数器可计由0至4095的数,16位则可计由0至65535的数。图2.19是可控计数器的电路原理图。图2.19图2.18中的J,K输入端是悬浮的,所以每次时钟脉冲到时,它都要翻转一次。图2.19中的各个J,K输入端连在一起引出来,由计数控制端COUNT的电位信号来控制。当COUNT为高电位时,JK触发器才有翻转的可能。当COUNT为低电位时就不可能翻转。图2.20是这种计数器的符号。图2.20(2)同步计数器(synchronouscounter)行波计数器的工作原理是在时钟边缘到来时开始计数,由右边第一位(LSB)开始,如有进位的话则要一位一位的推进。而每一位触发器都需要建立时间tp(tp约为10纳秒)。如果是16位的计数器,则最大可能的计一个数的时间为160纳秒,这就显得太慢了。同步计数器是将时钟脉冲同时加到各位的触发器的时钟输入端,而将前一位的输出端(Q)接到下一位的JK端去。这样可以使计数器计数时间只相当于一个触发器的建立时间tp,所以同步计数器在很多微型机中常被使用。为了避免初学者陷到电路分析中去,这里就不介绍具体线路了。(3)环形计数器(ringcounter)也是由若干个触发器组成的。不过,环形计数器与上述计数器不一样,它只是仅有唯一的一个位为高电位,即只有一位为1,其他各位为0。图2.21是由D触发器组成环形计数器的电路原理图。图2.21当CLR端有高电位输入时,除右边第1位(LSB)外,其他各位全被置0(因清除电位CLR都接至它们的CLR端),而右边第1位则被置1(因清除电位CLR被引至其PR端)。这就是说,开始时Q0=1,而Q1,Q2,Q3全为0。因此,D1也等于1,而D0=Q3=0。在时钟脉冲正边缘来到时,则Q0=0,而Q1=1,其他各位仍为0。第2个时钟脉冲前沿来到时,Q0=0,Q1=0,而Q2=1,Q3仍=0。这样,随着时钟脉冲而各位轮流置1,并且是在最后一位(左边第1位)置1之后又回到右边第1位,这就形成环形置位,所以称为环形计数器。环形计数器的符号如图2.22所示。图2.22环形计数器不是用来计数用,而是用来发出顺序控制信号的,这在计算机的控制器中是一个很重要的部件。(4)程序计数器(programcounter)也是一个行波计数器(也可用同步计数器)。不过它不但可以从0开始计数,也可以将外来的数装入其中,这就需要一个COUNT输入端,也要有一个LOAD门,程序计数器的符号如图2.23所示。图2.232.3.4累加器

累加器也是一个由多个触发器组成的多位寄存器,累加器的英文为accumulator,译作累加器,似乎容易产生误解,以为是在其中进行算术加法运算。其实它不进行加法运算,而是作为ALU运算过程的代数和的临时存储处。这种特殊的寄存器在微型计算机的数据处理中担负着重要的任务。累加器除了能装入及输出数据外,还能使存储其中的数据左移或右移,所以它又是一种移位寄存器。累加器的符号如图2.24所示。图2.248086的寄存器结构8086CPU内部具有14个16位寄存器,用于提供运算,控制指令执行和对指令及操作数寻址。包括通用寄存器、段寄存器、控制寄存器组。AHALBHBLCHCLDHDLSPBPSIDIIPFLAGSCSDSSSES07815AXBXCXDX累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针源变址寄存器目的变址寄存器指令指针标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段段寄存器数据寄存器地址指针和变址寄存器控制寄存器组段寄存器组通用寄存器组一、通用寄存器组8个16位通用寄存器分为两组:数据寄存器及地址指针和变址寄存器数据寄存器包括AX、BX、CX和DX。在指令的执行过程中即可用来寄存操作数,也可用于寄存操作的结果。它们中的每一个又可将高8位和低8位分成独立的两个8位寄存器来使用。16位的数据寄存器主要用于存放数据,也可以用来存放地址。而8位寄存器(AH、AL、BH、BL、CH、CL、DH和DL)只能用于存放数据。1、数据寄存器地址指针和变址寄存器包括SP、BP、SI和DI。这组寄存器在功能上的功能上的共同点是:在对寄存器操作数寻址时,用于形成20位物理地址码的组成部分。在任何情况下,他们都不能独立地形成访问内存的地址码,因为他们都只有16位。访问存储器的地址码由段地址(存放在段寄存器中)和段内偏移地址两部分构成。而这四个寄存器主要存放段内偏移地址的全部或一部分。下面来说明段寄存器和地址形成的方法。2、地址指针和变址寄存器SP(StackPointer)堆栈指针。用于存放堆栈操作(压入或弹出)地址的段内偏移地址。其段地址由段寄存器SS提供。BP(BasePointer)基址指针。在某些间接寻址方式中,BP用来存放段内偏移地址的一部分。特别之的说明的是,凡包含BP的寻址方式中,无特别说明,其段地址由段寄存器SS提供。SI(SourceIndex)和DI(DestinationIndex)变址寄存器。在某些间接寻址方式中,SI和DI用来存放段内偏移地址的全部或一部分。在字符串操作指令中,SI用作源变址寄存器,DI用作目的变址寄存器。寄存器名称特定用法AX,AL在乘法或除法指令中作累加器在I/O指令中用作数据寄存器AH在LAFH指令中用作目的寄存器AL在BCD码及ASCII码运算指令中作累加器在XLAT指令中作累加器BX在间接寻址中作地址寄存器在间接寻址中作基址寄存器在XLAT指令中作为基址寄存器CX在循环指令和字符串指令中作循环次数的计数寄存器,每作一次循环,CX的内容自动减1CL在移位及循环移位指令中作移位位数及循环移位次数的计数寄存器DX在I/O指令间接寻址时作地址寄存器在乘法及除法指令中作辅助累加器(当乘积或被除数为32位时存放高16位)通用寄存器的特定用法寄存器名称特定用法BP在间接寻址中作为基址寄存器SP在堆栈操作中作为堆栈指针SI在字符串指令中作源变址寄存器在间接寻址中作地址寄存器在间接寻址中作变址寄存器DI在字符串指令中作为目的变址寄存器在间接寻址中作地址寄存器在间接寻址中作变址寄存器续表二、段寄存器组访问存储器的地址码由段地址和段内偏移地址两部分组成。段寄存器用来存放段地址。总线接口BIU设置4个段寄存器。CPU可以通过4个段寄存器访问存储器中4个不同的段。四个段寄存器分别是:CS(CodeSegment)代码段寄存器。它存放当前执行程序所在段的段地址。CS的内容左移四位再加上指令指针IP的内容就是下一条要执行的指令地址。DS(DataSegment)数据段寄存器。它存放当前数据段的段地址。通常数据段用来存放数据和变量。DS的内容左移四位再加上按指令中存储器寻址方式计算出来的偏移地址,即为对数据段制定单元读写的地址。SS(StackSegment)堆栈段寄存器。它存放堆栈段的段地址。堆栈是存储器中开辟的按后进先出原则组织的一个特别存储区。主要用于调用子程序时,保留返回主程序的地址和保存进入子程序将要改变其值的寄存器的内容。对堆栈进行操作(压入或弹出)的地址由SS的左移四位再加上SP的内容得到。ES(ExtraSegment)附加段寄存器。附加段是一个附加数据段。附加段是在进行字符串操作是作为目的区地址使用的,ES存放附加段的段地址,DI存放目的区的偏移地址。DS和ES都要由用户用程序设置初值。若DS和ES的初值相同,则数据段和附加段重合。三、控制寄存器组1、指令指针(InstructionPointer)指令指针相当于程序计数器PC。它保存下一条要执行的指令的偏移地址,用于调试程序。某些指令如转移指令、过程调用指令和返回指令等将改变IP的内容。2、标志寄存器(FLAG)共9个标志寄存器。其中6个是反映前一次涉及ALU操作结果的状态标志,3个是控制CPU操作特征的控制标志。CF(CarryFlag)进位标志。如果加法时最高位(对字节操作是D7

位,对字操作是D15)产生进位或减法时最高位产生错位,则CF=1,否则CF=0。PF(ParityFlag)奇偶标志。如果操作结果的低8位中含有偶数个1,PF=1,否则PF=0。AF(AuxiliaryCarryFlag)辅助进位标志。如果在加法时D3

位有进位或减法时D3位有借位则

AF=1,否则AF=0。ZF(ZeroFlag)零标志。如果运算结果各位都为零。则ZF=1,否则ZF=0。SF(SignFlag)符号标志。它总是和结果的最高位相同。因为在补码运算时的最高位是符号位,所以运算结果为负时,SF=1,否则SF=0。OF(OverflowFlag)溢出标志。在加或者减运算中结果超出8位或16位有符号数所能表示的范围时,产生溢出,OF=1,否则OF=0。DF(Direction)方向标志。可用指令预置。字符串操作指令执行是受它的控制。当DF=0时,执行串操作指令,变址寄存器地址自动递增;当DF=1时,则变址寄存器地址自动递减。则该标志位可控制地址朝增大的方向或减小的方向改变。IF(InterruptEnableFlag)中断允许标志。可用指令预置。当IF=1时,CPU可响应可屏蔽中断请求;当IF=0时,CPU不响应可屏蔽中断请求。TF(TrapFlag)陷阱标志。若TF=1,则CPU处于单步执行指令工作方式。IBMPC系统中,用系统调试程序DEBUG时,T命每执行一条指令就自动产生一次类型1的内部中断。令就是利用这种中断,服务子程序的功能是显示所有寄存器的当前值和将要执行的下一条指令。例:假如前一条指令执行0101010000111001与0100011101100010相加,执行完这条指令后标志位SF、ZF、PF、AF、CF和OF分别是多少?解:010101000011100101000111011000101001101110011011SF=1,ZF=0,PF=0,AF=0,CF=0,OF=1+2.4三态输出电路

由于记忆元件是由触发器组成的,而触发器只有两个状态:0和1,所以每条信号传输线只能传送一个触发器的信息(0或1)。如果一条信号传输线既能与一个触发器接通,也可以与其断开而与另外一个触发器接通,则一条信息传输线就可以传输随意多个触发器的信息了。三态输出电路(或称三态门)就是为了达到这个目的而设计的。三态输出电路可以由两个或非门和两个NMOS晶体管(T1,T2)及一个非门组成,如图2.25所示。当ENABLE(选通端)为高电位时,通过非门而加至两个或非门的将为低电位,则两个或非门的输出状态将决定于A端的电位。当A为高电位,G2就是低电位,而G1为高电位,因而T1导通而T2截止,所以B端也呈现高电位(VB≈VDD);当A为低电位,G2将呈现高电位而G1为低电位,因而T1截止而T2导通,所以B也呈现低电位(VB≈0)。这就是说,在选通端(ENABLE端)为高电位时A的两种可能电平(0和1)都可以顺利地通到B输出去,即E=1时,B=A。图2.25当选通端E为低电位时,通过非门加至两个或非门的将为高电位。此时,无论A为高或低电位,两个或非门的输出都是低电位,即G1与G2都是低电位。所以T1和T2同时都是截止状态。这就是说,在选通端(E端)为低电位时,A端和B端是不相通的,即它们之间存在着高阻状态。三态输出电路的符号如图2.25(b)所示。图2.25称为单向三态输出电路。有时需要双向输出时,一般可以用两个单向三态输出电路来组成,如图2.26所示。A为某个电路装置的输出端,C为其输入端。当EOUT=1时,B=A,即信息由左向右传输;EIN=1时,C=B,即信息由右向左传输。图2.26三态门(E门)和装入门(L门)一样,都可加到任何寄存器(包括计数器和累加器)电路上去。这样的寄存器就称为三态寄存器。L门专管对寄存器的装入数据的控制,而E门专管由寄存器输出数据的控制。有了L门和E门就可以利用总线结构,使计算机的信息传递的线路简单化,控制器的设计也更为合理而易于理解了。2.5总线结构设有A,B,C和D4个寄存器,它们都有L门和E门,其符号分别附以A,B,C和D的下标。它们的数据位数,设有4位,这样只要有4条数据线即可沟通它们之间的信息来往。图2.27就是总线结构的原理图。图2.27如果将各个寄存器的L门和E门按次序排成一列,则可称其为控制字CON:CON=LAEALBEBLCECLDED为了避免信息在公共总线W中乱窜,必须规定在某一时钟节拍(CLK为正半周),只有一个寄存器L门为高电位,和另一寄存器的E门为高电位。其余各门则必须为低电位。这样,E门为高电位的寄存器的数据就可以流入到L门为高电位的寄存器中去。控制字中哪些位为高电平,哪些位为低电平,将由控制器发出并送到各个寄存器上去。为了简化作图,不论总线包含几条导线,都用一条粗线表示。在图2.28中,有两条总线,一条称数据总线,专门让信息(数据)在其中流通。另一条称为控制总线,发自控制器,它能将控制字各位分别送至各个寄存器上去。控制器也有一个时钟,能把CLK脉冲送到各个寄存器上去。图2.282.6存储器

存储器(memory)是计算机的主要组成部分。它既可用来存储数据,也可用以存放计算机的运算程序。存储器由寄存器组成,可以看做一个寄存器堆,每个存储单元实际上相当于一个缓冲寄存器。根据使用不同,存储器分为两大类:只读存储器(ROM)和随机存取存储器(RAM)。下面将分别介绍这两种存储器的结构和性能。在微型计算机中采用半导体器件作为记忆元件,这样体积小些,可以制成大规模集成电路。每个存储单元所存储的内容称为一个字(word)。一个字由若干位(bit)组成。比如8个记忆元件的存储单元就是一个8位的记忆字称为一个字节(byte),由16个记忆单元组成的存储单元就是一个16位的记忆字(由两个字节组成)。一个存储器可以包含数以千计的存储单元。所以,一个储存器可以存储很多数据,也可以存放很多计算步骤——称为程序(program)。为了便于存入和取出,每个存储单元必须有一个固定的地址。因此,存储器的地址也必定是数以千计的。为了减少存储器向外引出的地址线,在存储器内部都自带有译码器。根据二进制编码译码的原理,除地线公用之外,n根导线可以译成2n个的地址号。例如,一个16×8的存储器如图2.29所示,它是一个有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.29顺便提一句,当地址线为10条时,n=10,则可编地址号为1,024个,或称为1K字节。这里的1K和习惯为1000不一样,请务必注意。A0~A3就是地址总线中的4根译码线。当存储器的存储单元愈多,则地址总线中的译码线,亦即存储器集成电路片的地址线愈多。在一般微型计算机中,地址线大都为16条。16条地址线,可译出64K个地址。在286/386/486中采用20条地址线。2.6.1只读存储器

这是用以存放固定程序的存储器,一旦程序存放进去之后,即不可改变。也就是说,不能再“写”入新的字节,而只能从中“读”出其所存储的内容,因此称为只读存储器。图2.30是一个8×4ROM集成电路片的内部电路原理图。右半部分由矩阵电路及半导体二极管组成8个4位的存储单元。二极管的位置是由制造者配置好了而不可更改的。一条横线相当于一个存储单元,而一条竖线相当于一位。所以8条横线组成8个存储单元,4条竖线成为一个4位的字。二极管连接到的竖线,则为该位置1。无二极管相连的竖线,则为该位置0。输出电信号是取自限流电阻R上的电位。为了可控,每条数据线都加一个三态输出门(E门)。这样,只有在E门为高电位时,才有可能输出此ROM中的数据。图2.30左半部为地址译码器电路。因为是8个地址号,所以只需3条地址线:A2,A1,A0,每条地址线都并以一个非门,而得3条非线:A2,A1,A0。这6条线通过8个与门即可译成8个地址号。例如,R0的地址号为A2A1A0=000,当地址线上出现A2A1A0=000时,则R0所在的那条横线所连接的与门1将导通,而使此横线为高电位。而此时R0的4条竖线中只有最右一条接有二极管。它将横线的高电位引至下面的限流电阻R上。所以电阻R的上端出现高电位。其他3条竖线由于无二极管与R0横线相连,所以它们各自的限流电阻上无电流流过而呈现为低电平(地电位)。当E门为高电位时数据线D3D2D1D0将送出数据为0001,其他各个存储单元也可由地址线的信号之不同而选出,并通过E门将数据输出去。图2.31为ROM的符号图,图2.31(a)是8个存储单元,每个4位(即半个字节),所以写成8×4ROM。图2.31(b)为通用写法,m×nROM意即为m个存储单元,其中每个为n位。图2.31存储地址寄存器(memoryaddressregister,MAR):作为存储器的一个附件,存储地址寄存器是必需的。它将所要寻找的存储单元的地址暂存下来,以备下一条指令之用。存储地址寄存器也是一个可控缓冲寄存器,它具有L门以控制地址的输入。它和存储器的联系是双态的,即地址一进入MAR就立即被送到存储器去,如图2.32所示。图2.32【例2.1】程序计数器PC,存储地址寄存器MAR和ROM通过总线的联系如图2.33所示。图2.33设控制字依次是:(1)CPEPLMER=0110(2)CPEPLMER=0001(3)CPEPLMER=1000问:它们之间的信息是如何流通的?解:开机时,先令CLR=1,则PC=0000(1)第1个控制字是:

CPEPLMER=0110即EP=1,PC准备放出数据;LM=1,MAR准备装入数据。在CLK正前沿到达时,CLK=1,MAR=PC=0000,PC的数据装入MAR,同时MAR立即指向ROM的第一地址,即选中了ROM中的R0存储单元。(2)第2个控制字是:

CPEPLMER=0001即ER=1,令ROM放出数据。也就是说,当ER为高电位,R0中的8位数据就被送入到W总线上去。这样的动作,不需等待时钟脉冲的同步讯号,因而称为异步动作。(3)第3个控制字是:

CPEPLMER=1000即CP=1,这是命令PC加1,所以PC=0001。这是在取数周期完了时,要求PC进一步,以便为下一条指令准备条件。2.6.2随机存储器这种存储器又叫做读/写存储器。它和ROM之区别在于这种存储器不但能读取已存放在其各个存储单元中的数据,而且还能够随时写进新的数据,或者改写原来的数据。因此,RAM的每一个存储单元相当于一个可控缓冲寄存器。

1.RAM的材料某些专用计算机常用磁芯作为记忆元件,这样可以避免停电而失去记忆能力,但体积较大。小型计算机及微型计算机多用双极型晶体管或金属氧化物半导体场效应晶体管(MOSFET)。这类材料可以制成大规模集成电路,体积较小。但停电则失去记忆能力。2.静态RAM及动态RAM静态RAM常用双极型晶体管触发器作为记忆元件(也有用MOSFET的),只要有电源加于触发器,数据即可长期保留。动态RAM则用电容及MOSFET作为记忆元件。由于电容会漏电,因而常需“刷新”,这就是要求每隔2ms充电一次,为此还须另加一刷新电源。虽然动态RAM比静态RAM便宜些,但因要刷新,电路上稍为麻烦,因而大多数微型机都采用静态RAM。3.RAM的符号RAM的符号如图2.34所示,其中:

A——地址线;

DIN——要写入的数据;

DOUT——要读出的数据;

ME——选通此RAM的E门。WE及ME的电位与RAM的操作和输出端的联系,也列于图2.34的表中。当ME=0时,此RAM未选中,故WE是什么(0或1)都不能影响RAM的动作,并且其输出端是悬浮(高阻)的。只有在ME=1时,此RAM才被选中,才能再进一步去确定其是读出还是写入。从图2.34中的表可见。

WE=0时,为数据读出;

WE=1时,为数据写入。图2.34存储器数据寄存器(memorydataregister,MDR)也是一个可控缓冲寄存器。它的作用是将要写入RAM中去的数据暂存寄MDR中,以等待控制器发出WE=1的命令到来时,才能写入RAM中去。MDR和MAR以及RAM的联系如图2.35所示。因为此RAM有256个存储单元,即有256个地址号。所以MAR必是8位的寄存器,才能给8条地址线送出256个地址码。因为RAM是12位的,所以MDR也必是12位的,才能送出12条数据线到RAM去。图2.35【例2.2】一个微型计算机的一部分如图2.36所示,其工作程序分析如图。这一部分系统图是用来分析将数据I0装入到RAM中去的过程的。设要写入到RAM中去的数据为:I0=1100

0001

1001(共12位)这部分的控制字为:CON=CPEPLMWEMELDLIEI(共8位)已设计好的控制字的次序如下:

CON1=0110

0000(6016)

CON2=0000

0010(0216)

CON3=0000

0101(0516)

CON4=0001

1000(1816)

CON5=1000

0000(8016)图2.36问:经过CLR=1之后,机器的动作顺序和现象如何?解:(1)CON=CPEPLMWEMELDLIEI在CON1时:CON1=0110

0000(6016)EP=1LM=1就是要将PC的内容装到MAR中去,由于CLR已经接受过高电位,PC已被清零,PC=0000

0000所以当CLK的前沿一到时:MAR=PC=0000

0000(0016)这是指出存储器RAM中第一个存储单元R0的地址。(2)在CON2时:CON2=0000

0010(0216)LI=1,为输入寄存器作好准备,以便输入数据I0。当第2个CLK的前沿到达时,I=I0=1100

0001

1001(C1916)(3)在CON3时:CON3=0000

0101(0516)LD=1,MDR准备接受数据;EI=1,I准备放出数据。当第3个CLK的前沿到达时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论