CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

姜老师带你设计CPU之8

已有 4475 次阅读 2014-8-4 12:20 |个人分类:计算机科普|系统分类:科普集锦| 设计, CPU

3.

记忆器件设计

 

 

 

记忆是思维的基础,同样也是各种信息处理的基础。能够实现记忆功能设备在计算机中叫存储设备。

3.1.  基本记忆元件

由于计算机是以二进制数来记录各种信息的,而二进制数是由01排列组成的,所以如何记录一位二进制数是最基本的问题。记录一位二进制数的基本电路元件­是触发器。

3.1.1. 触发器

由于电器元件都有两种不同状态,所以就可以用某一种电器来记录二进制的信息。但是,用一个电器来记录的二进制信息不是一成不变的,不但要记录0或者1,而且要求能够保持任意长的时间,还要根据需要能灵敏地更改信息。这种功能对一般的电器来说是不具备的,而必须去寻找一种既能快速记录信息,又能灵活改变信息的电器元件,这就是下面要讲的触发器。

RS触发器

触发器是一触即发的设备,是一切具有瞬间记忆功能部件的组成细胞,是最重要的记忆元件之一。触发器能存储一位二进制数,在不受外界干扰的情况下,具有两个能自行保持的稳定状态,同时它还能根据不同的输入信号而变换这两种状态。

触发器有很多种,最基本的是RS触发器,其他触发器一般都是在RS触发器的基础之上发展而来的。

RS触发器的结构

RS触发器既具有瞬间捕捉和保持记忆的功能,又具有容易控制改变记忆信息的特性,它的基本组成电路如3‑1a)所示。RS触发器由两个三极管G1G24个电阻R1R2R3R4组成。其中三极管G1G2的发射极接地,因而发射极总是低电位端。R1(或R2)在三极管导通时产生电压降,使三极管的集电极Q(或Q)成为低电位,而在三极管截止时,Q(或Q)又通过它们连接成为高电位。R3R4的作用是保证三极管的基极得到适当的电位,使之能够保证需要的高电位或低电位(具体电路方面的知识,可参考相关书籍)。在G1G2的基极引出两条线,记做SRRS端就是这个触发器的输入端,QQ就是触发器的两个输出端。

 

3‑1  RS触发器及符号

RS触发器工作原理

反馈是将输出信号的一部分或全部,通过某种方式送回到输入端的电路连接方式。现在就来具体地分析3‑1 (a)所示的RS触发器的工作原理。

(1)       瞬间S=1(高电位)时,三极管G1导通,由于G1的发射极接地处于低电位,所以Q=0,通过R3的反馈使三极管G2的基极形成低电位,从而使G2处于截止的状态,这样通过R2连接,使Q为高电位,即Q=1。此时即使将S断开,由于R3R4的反馈作用,G1的基极将保持高电位,G2的基极将保持低电位,从而使Q保持高电位,Q保持低电位。

由于S端的高电位可以在一瞬间给出又撤去,但QQ端的电位保持不变,这就说明RS触发器是一种能够瞬间接受信息,然后保持这一信息的元件,这也正是这种元件被称为触发器的原因。

(2)       瞬间R=1时,由电路的对称性,知道情况类似(1) G2导通,G1截止,最终保持Q=0Q=1的状态。

(3)       S=1 R=0时,触发器的状态同1)

(4)       S=0 R=1时,触发器的状态同2)

(1) (4)  这样输入撤掉之后,仍然能够保持信息状态,是非常有用的。这种不受外界干扰,保持状态的情况被称为稳态。

定义3‑1  电器元件撤去输入之后,状态仍然保持不变的情况称为稳态

(5)       S=R=1时,三极管G1G2都导通,这样Q=Q=0,但当输入撤掉之后,由于R3R4的反馈作用,使G1G2的基极为低电位,结果使 G1G2截止,QQ的状态要改变成Q=Q=1。这样会有Q=Q=1Q=Q=0的不断交替,形成一种不稳定状态。

(6)       S=R=0时,三极管G1G2都截止,从而Q=Q=1,但当输入撤去之后,这种状态也会发生Q=Q=0的改变。像(5) 一样这种情况也是不稳定状态。

由于 (5) (6) 两种状态不稳定,所以RS触发器一般只能使用前面的4种状态。

RS触发器的符号

在计算机的线路图中RS触发器的符号画成3‑1 (b)的形式,RS是输入端,QQ是输出端。一个RS触发器可以记录一位二进制数,这个任务用QQ都可以,使用中一般都用一个输出端Q

通过上面的分析,知道RS触发器的Q端输出是随着S(或R)端的输入,瞬时变化的,当S=1Q=1,当R=1Q=0。人们把S端叫置位端,把S=1使Q=1的过程叫置位,同样把R端叫复位端,把R=1使Q=0的过程叫复位。

D型触发器

RS触发器的两个输入端如果都是01,那么当撤去输入之后,它的输出端就不稳定了。为了使触发器避免出现不稳定状态,如3‑2所示,人们设计了D型触发器。

3‑2 D型触发器

D型触发器主要是在RS触发器的两个输入端之间接了一个非门电路,改由一个输入端D输入数据。当输入端D=1时,由于DR通过一个非门,于是使S=1R=0,触发器置位Q=1;当D=0时,会有S=0R=1,致使触发器复位Q=0。这样就避免了触发器出现不稳定状态的输出。

3.1.2. 时标与边沿触发器

连接在电路中的器件一般都是同时进行工作的,除非进行时间的先后控制。引入时间控制的导线叫时标。

时标触发器

计算机是一种高速运转的设备。一台计算机的各个部分要能高速、有序、整齐划一地工作,离不开时间的控制。例如,触发器什么时候置位,什么时候复位,都要有一个时间控制的要求。计算机内部都有一个时钟发生器,它能够发出高频脉冲(高速等时地间断发出高电位信号),通过这种高频信号可以实现对计算机各个部件的时间控制。

时标触发器的结构

为使D型触发器能够接受时间控制,要对它进行相应的改造。3‑3所示的是一个能够接受时间控制的D型触发器,叫时标D型触发器,简称时标触发器。它的结构组成是在D型触发器的RS端,断开后接上两个E门,并将两个E门的控制端连接到一起得到的。两个E门共用的控制端以Clk标注,称为时标。

3‑3  时标D型触发器

时标触发器的工作原理

时标D型触发器的工作原理是:不论D端加任何电位,由于RS的前端都有一个E门,故当Clk不是高电位时,即当Clk=0时,两个E门都被封锁(这种封锁是指SR处于高阻状态),RS触发器的原状态保持。只有当Clk=1时,不论D0还是1,两个E门都被导通,此时若D=1,触发器置位,若D=0触发器复位。由此可见,触发器的置位和复位都是在Clk的控制下完成的。

时标触发器接收D端的数据的过程称之为触发

引入时标之后,就可以通过时标Clk来控制触发器的触发。但为保证准确的捕捉到D端的信息,Clk的高电位必须瞬间给出才行,不然,D端的值就可能在Clk=1的延续时间内发生变化,得不到所要求得到的信息。

边沿触发器

为了使用时标触发器能够得到准确的信息,需要研究一下时钟脉冲信号的边沿问题。

边沿的概念

在计算机的时间控制中,一般采用定向控制电路,定时地发送定值的正电压或负电压,这一工作是由高频率的振荡器来完成的。高频率的振荡器按一定的频率不断地发送脉冲电压,正向的脉冲电压用1来记,负向电压用0来记。

脉冲电压的波形如3‑4所示。电压v瞬间从0变到1叫“前沿”,瞬间从1变到0叫“后沿”。从脉冲波形图可以见到:不论电压是0还是1,都有一个微小的持续时间。在这个微小的持续时间内,时标D型触发器可以进行多次地复位或置位,这一点对于计算机各个部件的高速控制来说是不允许的。解决的办法只有尽可能地缩短电压为01的持续时间,缩短高电位或低电位时钟脉冲的持续时间,让它小到只能使触发器发生一次置位或复位,这样就能准确地捕捉到信息了。

3‑4  矩形脉冲波形

 

为了得到更加微小的脉冲时间,人们设法把3‑4的波形变成3‑5的形状。前者形状的波形叫矩形波或矩形脉冲,后者形状的波形叫锯齿波或锯齿形脉冲。

3‑5  锯齿脉冲波形

 

阻容振荡电路

由矩形波得到锯齿波一般是由电阻和电容组成的电路来完成的,实质上就是一个阻容震荡电路。

3‑6a)所示的阻容震荡电路中,当m端加上高电位(从0变到1),n端加上低电位的瞬间,电容器C的左极板要增加大量的正电荷,右极板要增加等量的负电荷,于是就会产生顺时针方向瞬间电流,使R的上端呈现瞬间高电位。此后如果电压稳定,那么由于电容器两极板正负电荷的平衡,电路就不再有电流,R的上端的高电位就消失了。当m端加上低电位(从1变到0),n端加上高电位的瞬间,会产生逆时针方向电流,这样会使电阻R的上端产生瞬间的低电位。

3‑6  阻容震荡电路

阻容震荡电路的一个震荡周期电阻R的上端电压波形图如3‑6(b)所示。

边沿触发器

锯齿形电压脉冲的获得的方法是在时标触发器的Clk前端加一个阻容震荡电路(3‑7)这样得到的触发器叫边沿D型触发器,简称边沿触发器。

3‑7  前沿触发器

由阻容电路的特性知道,当Clk0变到1时,由于c的前端极板正电荷瞬间增加的结果,电阻r在瞬间获得一个电压降,至使r的上端出现高电位,即瞬间T=1,使D型触发器触发。但一旦Clk=1不再变时,这时阻容电路不再有电流通过,r的上端就变成了与接地端一样的低电位,因而T=0,这样一来EA和与B都处于封锁状态,于是D端的任何变化都不会再对触发器的状态发生影响了。由于Clk0变到1是在极短的时间内完成的,短到使人感到是在某一时刻。故T=1可以认为是在一个时刻之处发生的,这样也就实现了对触发器的即时控制。也就是说,利用瞬间使Clk的值从0变到1,就能够准确地捕捉到D端的信息。

这种当时标Clk0变到1发生触发的触发器叫前沿触发器。如果在前沿触发器的Clk线上加一个非门电路,那么容易知道改造过的触发器要在Clk的值从1变到0的瞬间触发,这样的触发器叫后沿触发器。

带预置端和清除端的边沿触发器

实际使用中的某些触发器往往要设置初始状态,也就是初始时让Q=0Q=1。这项工作一般是专门在RS触发器的前端加一个预置端proset和一个清除端clear来完成的(3‑8)这两个输入端直接通过或门电路接在RS触发器的RS端,因而不受时钟控制。在特殊使用时,设法让proset = 1,触发器的Q端变成1;若让clear=1时,触发器的Q端就变成0。如果后沿触发器也这样改造,那么得到的是带预置端和清除端的后沿触发器。出于信号控制的考虑,实际上常在预置端和复位端的前面各连接一个非门,这样使初始化信号和其他控制信号有明显的区别。

 

3‑8  带预置端和清除端的前沿触发器

带预置端和清除端的前沿触发器和后沿触发器的符号如3‑9a)和3‑9 (b)所示。为了表明时标的动态特性,图形中在时标线的前端加一个小三角来表示。

3‑9 前沿和后沿触发器符号

实际中到底要使用哪种边沿触发器,这要看具体的需要。在后面的行波计数器的结构中,就是巧妙地利用了前沿触发与后沿触发的特点来完成计数的。

3.1.3. 寄存器

对于一台计算机来说,时钟脉冲是按一定的频率发出的,所以连在电路中的时标触发器最多能将数据保持两个时钟脉冲间隔的时间。怎样才能让触发器按人们的意愿把数据保持到需要的时间?这就要对触发器进行改造,使之能按照要求延续数据的保存时间。

能够按照我们的要求保存数据的触发器就称为一位寄存器,将多个一位寄存器组织到一起,就叫寄存器。

一位寄存器的组成

控制数据保存时间长短的电路也可以用与、或、非门电路搭建(见3‑10),DFF是前沿D型触发器。当控制输入端LOAD=0时,与门inst21的输出总是0,而与门inst 22的输出取决于Y,也就是Q,这样或门inst19的输出也就取决于Q,于是Clk=1使触发器的值反馈刷新。而当LOAD=1时,与门inst21的输出是0,与门inst22的输出取决于D,而或门inst19的输出也就取决于D了。这样,当Clk=1时,触发器就接收新值D。为了不至于与工作状态发生矛盾,DFF的预置端和复位端都增加了非门,因而使用中CLRNPRN在初始化时都是低电位有效,平时应处于高电位状态。

3‑10  寄存器电路

一位寄存器封装的符号如3‑11所示。由于时钟信号表示特殊,就可以不用标注。

3‑11  寄存器符号

多位寄存器的组成

能够存放3位二进制数的寄存器结构如3‑12所示。出了输入控制端A是分开的,时钟CLK、数据端D、复位端和置位端都是各自连接在一起的,这样连接表示同名导线是一条。

这样将8个一位寄存器连接起来,就是一个8位寄存器。当然,将64个一位寄存器这样连接,就得到一个64位寄存器。

关于多位寄存器的工作原理,读者是不难自己解释。

3‑12  3位寄存器

 

3.1.4. 静态存储器SRAM

 

静态随机存储器叫SRAM,实际就是一个有序的寄存器集合。为说明问题简单,我们仅以4个寄存器组织到一起,形成存储器块为例,说明SRAM的设计方法。

存储器设计

4个寄存器编号如3‑13所示,其中用粗实线表示多股相互绝缘的导线。

 

3‑13  4个寄存器

我们知道,写寄存器控制端ENA可以控制寄存器的写操作,但Q端输出是没有控制的,因而寄存器内容可以随时从Q端得到。将多个寄存器组织到一起,形成的存储器要在同一组导线输出选择寄存器的内容。如果将个寄存器的Q端直接连在一起,那么就出现了混乱。如何解决?办法如3‑14所示。每个寄存器输出端安装一组开关,并在其控制端加一个非门,象图中那样将将ENA端与E门的控制端连在一起,然后接在一个与门的输出端。将这个与门的输入端之一连在一起,并用IO标记,另一端分别接在2位译码器的输出端。再将输入多股线和输出多股线连在一起,让输入输出数据都可以通过这组多股线传输。这种能够双向传输数据的多股导线一般叫总线(BUS)。总线有三态,即0状态,1状态和高阻状态。一般象A1A0这组选择寄存器的控制信号线,被称为地址线,但它在此并不双向传递信号。IO称为写读控制线。这样一个存储器就设计完成了。成百上千上万个寄存器组织在一起,也是用这种方法连接的。存储器中的每个寄存器一般叫存储单元。

3‑14  加入输出输出控制的存储器

SRAM工作原理

你能够说出这个存储器的工作原理吗?我简单地说一下吧。

把象A1A0的地址线放上二进制的地址信号,就可以选中寄存器。如果想写总线D[2..0]上的数据,就让IO=1,那么当CLK0变到1的瞬间,数据就可以写入A1A0值指定的寄存器;如果让IO=0,那么就将该寄存器的内容送到总线D[2..0]上,时间长短不受CLK控制。我们这里只说一个存储器的总线,当有多个器件连接在总线上时,是一种广播状态,其相关问题我们后面再说。

 

 



https://blog.sciencenet.cn/blog-340399-816995.html

上一篇:姜老师带你设计CPU之6
下一篇:姜老师带你设计CPU之9
收藏 IP: 221.222.73.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-21 22:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部