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

博文

CPU设计我要让更多的人掌握它(续4)

已有 4774 次阅读 2010-1-5 07:38 |个人分类:计算机核|系统分类:科研笔记| 初始化, 三态门, 存储单元, RAM工作原理

2.2.2.3 初始化功能设计
 
计算机中的元器件加电之后需要有最初的“值”,这种需要初值或设置初值的控制方式叫预置或复位。寄存器的预置和复位是在D型触发器的R、S线处接入或门电路,并在控制端增加非门完成的。图 2 9所示的是带预置端的D型触发器,其中prose和tclr都是低电位有效。
 
 
图 2 9 带预置端的触发器
 
proset和clr一般保持高电位不影响寄存器工作。若瞬间使proset=0,clr=1,那么有R=0,S=1,于是使Q=1。若瞬间使proset=1,clr=0,那么有R=1,S=0,于是使Q=0。
 
带预置与复位端的触发器的符号如图 2 11的右端矩形表示所示。
 
2.2.2.4 存储器
 
存储器本质上就是一个寄存器有组织的集合。存储器从功能上分为随机存储器(RAM)、只读存储器(ROM)和可擦写的只读存储器(EPROM、EEPROM)等。出于对计算机核心部件设计的需要,这里重点介绍存储器的读写原理,具体某种存储器的组成材质等方面问题,留给读者自己阅读相关书籍解决。
 
2.2.2.4.1 三态门电路
 
三态门电路实际上是电路通断的可控开关,它可以单向地控制数字电路的传输和断开,因而三态门的输出有三态。这三态是“0状态”“1状态”和“高阻状态”。高阻也就是断开状态,在电子电路学科中用“z”表示。
 
三态门的电路如图 2 10(a)所示。它是由两个或非门 、一个非门和两个MOS晶体三极管组成的,电路连接的方式基本上是对称的。两个三极管连接处引出的B线是它的输出端,一个或非门的输入线A是三态门的输入端,而非门的输入线E是三态门通断的控制端。正是由于E线起着通断的决定作用,所以这个电路被俗称为“E门电路”。
 
 
图 2 10 E门电路结构
 
三态门电路实际上是一个A到B的开关,这个开关是怎样起作用的呢?
 
(1) 当E=0时,由于前端非门N和两个或非门Q1、Q2的作用,使G1=G2=0。于是三极管T1,T2都截止,故A和B之间就如同断开一般,这叫高阻状态。
 
(2) 当E=1时,通过非门加在两个或非门一个输入端的都是低电位,这时两个或非门的输出状态取决于A。
 
(a) 当A=1时,有G2=0,G1=1,于是T1导通,T2截止,故 B=V=1 ,这叫1状态。
 
(b) 当A=0时,有G2=1,G1=0,于是T2导通,T1截止,故 B=0 (相当于B点接地),这叫0状态。
 
由(1),(2)的分析知道图 2 10(a)的通断控制电路有三种状态,并且这三种状态都是稳定的,因而这个电路才叫三态门电路。
 
三态门通断控制电路的符号如图 2 10(b)所示,E是控制端,A是输入端,B是输出端。
 
用两个不同材质的三态门反方向连接,合并控制端,可以作成一个双向三态门电路。双向三态门可以像普通电路开关一样将导线接通或断开,它的工作原理涉及到P沟道MOS和N沟道MOS三极管的问题,牵扯到电子电路的更多知识,又由于这里极少使用双向三态门电路,故而不加以讨论。
 
需要指出,逻辑电路的通与断是不能直接用一个三极管替代的,原因是三极管连接在电路中,发射极和集电极的电位一般是固定的,用基极虽然能够决定通和断,但不能在接通时传递电路中任意地变化的0或1数据。
 
图 2 10(b)三态门在Verilog HDL的描述是
 
assign B = E ? A : 1'bz;
 
2.2.2.4.2 装填门
 
装填门(LOAD)又称L门,是控制数据进入寄存器的一种设备。L门电路可以用与、或、非门电路搭建(见图 2 11),DFF是前沿D型触发器。当LOAD=0时,与门B的输出总是0,而与门A的输出取决于Y,也就是Q,这样或门C的输出也就取决于Q,于是Clk=1使触发器的值刷新。当LOAD=1时,与门A的输出是0,与门B的输出取决于D,而或门C的输出也就取决于D了,当Clk=1时,触发器接收新值D。DFF的预置端proset和复位端clr都增加了非门,因而使用中clr和preset都是低电位有效,平时应处于高电位状态。
 
 
图 2 11 L门电路
 
寄存器安装了装填门之后,能否接收外部的数据就受到了L门的控制。不考虑预置端和复位端的寄存器,一般只多标出输入控制线就可以。
 
2.2.2.4.3 存储单元的结构
 
存储器是由存储单元构成的。虽然每个存储单元就是一个寄存器,但由于所有存储单元要共用输入输出总线,故必需进行选择的改造,这样才能够保证数据的读写不至于造成混乱。
 
图 2 12(a)所示的是一个随机存储器的存储单元。它是将一个具有E门和L门的可控缓冲寄存器,填加了两个与门和一个非门,像图中那样连接组成的。
 
把众多的存储单元放在一起,关键是如何找到某一个存储单元以及对它施行什么样的操作。为了达到这一目的,图中把缓冲寄存器的L门和E门的前端加了两个与门电路,将两个与门的一个输入端通过非门连在一起,共同的连线用IO来记,目的是用它来控制对存储单元的“读”还是“写”。两个与门的另一输入端被直接连在一起,用AD来标记,以备通过AD来选择这个存储单元。
 
 
图 2 12 随机存储单元及符号
 
2.2.2.4.4 存储单元的数据读写
 
现在来看数据是怎样通过AD、IO进行读和写的。
 
(1) 当AD端是高电位,即AD=1时,如果 IO=1, 那么可控缓冲寄存器的L门打开,此时Clk从0变到1的瞬间,会将数据X写入可控缓冲寄存器;如果IO=0,那么可控缓冲寄存器的E门打开,此时会将数据通过y 向外输出。
 
AD=1的状态称为存储单元的选通状态。
 
(2) 当AD端是低电位,即AD=0时, 由于与门A、B的输出都是0,即L和E门的控制线都是0,从而阻断了可控缓冲寄存器与外部的信息交换。
 
AD=0的状态称为存储单元的封闭状态。
 
为了简单方便,在电路中要将RAM的存储单元记成 图 2 12(b) 的形式。
 
2.2.2.4.5 RAM结构与工作原理
 
图 2 13中,每个矩形代表一个随机存储单元,矩形内的二进制数就是存储单元的地址编号。地址编号信息是靠abc这三条线来输送的,这些专门传送地址信号的线叫地址线。在每一个寄存器ri (i=1、2、3、4、5、6、7、8)线的前端都接了一个与门,将与门的控制端连在一起标记为me。me=1时,每个存储单元都可能被选中,也就是说由这8个存储单元组成的存储器正在“工作”,此时可以对这个随机存储器进行读或写操作。如果me=0,那么所有的存储单元的选通线都是0,这样这个存储器的所有存储单元就不能再“工作”了。每一个存储单元的读写线IO连接在一起,仍然用IO来标记。IO线上的信号只会对选通线ri为1的存储单元的读写起作用。
 
 
图 2 13 RAM存储器
 
(1)地址译码器
 
图 2 13上端的译码器叫做地址译码器。它用于计算机存储器存储单元的选择。其作用是根据地址信号abc的值在某个与门的输出端产生高电位,使与之连接的存储单元选通线为1。例如,要选择010号存储单元进行数据操作,那么可以让 a=0 b=1 c=0,通过地址译码器就会有r3=1,而其余的存储单元选通线都是0,这样被选择工作的存储单元只能是010号。
 
这个3位的地址译码器用Verilog HDL语言描述为形式上简单。3位输入用向量a[2:0]表示,8个输出线用向量r[7:0]表示。“<<”表示数左移,那么3位输入译码器的描述是
 
assign r = 8’b00000001<< a;
 
这表示将8位二进制数00000001左移a位,空位补零。Verilog HDL语言的描述最终还要转成电路。
 
(2)RAM工作原理
 
不论有多少个存储单元的RAM,只要控制线me = 0,那么这个RAM就不能进行总线上的数据传输,RAM要与总线上的其他设备进行数据交换,必须在me=1的状态下进行。
 
如果想要往RAM的某一个存储单元写数据(这一过程叫存储器的输入),需要将这个存储单元的地址编号放在地址线上,将数据放在数据总线上,然后让me=1,IO=1,这样当Clk由0变到1的瞬间,数据就会从总线进入到指定的存储单元。
 
将数据放入存储器的存储单元的操作叫写操作,简称为“写”。
 
如果想从RAM的某个存储单元将数据读到总线上(这一过程叫存储器的输出),同样需要事先将存储单元的地址编号放在地址线上,让me =1,让读写线IO=0,则会将指定地址编号存储单元的内容输送到总线上。
 
将存储器的存储单元内容输出的操作叫读操作,简称为“读”。
 
--- 待续 ---
 


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

上一篇:论教育的层次与科研创新
下一篇:龙芯要与MIPS签约了
收藏 IP: .*| 热度|

1 intowin

发表评论 评论 (0 个评论)

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

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

GMT+8, 2024-12-23 01:42

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部