ram的原意是不管对于哪一个存储单元,都可以以任意的顺序存取数据,而且存取所花的时间都相等。即使不能完全达到以任意的顺序存取,凡是能以相同的动作顺序和相同的动作时间进行存入和读出的半导体存储器都包括在ram中。
按照存放信息原理的不同,随机存储器又可分为静态和动态两种。静态ram是以双稳态元件作为基本的存储单元来保存信息的,因此,其保存的信息在不断电的情况下,是不会被破坏的;而动态ram是靠电容的充、放电原理来存放信息的,由于保存在电容上的电荷,会随着时间而泄露,因而会使得这种器件中存放的信息丢失,必须定时进行刷新。
一般一个存储器系统由以下几部分组成。
1.基本存储单元
一个基本存储单元可以存放一位二进制信息,其内部具有两个稳定的且相互对立的状态,并能够在外部对其状态进行识别和改变。不同类型的基本存储单元,决定了由其所组成的存储器件的类型不同。静态ram的基本存储单元是由两个增强型的nm0s反相器交叉耦合而成的触发器,每个基本的存储单元由六个mos管构成,所以,静态存储电路又称为六管静态存储电路。
图为六管静态存储单元的原理示意图。其中t1、t2为控制管,t3、t4为负载管。这个电路具有两个相对的稳态状态,若tl管截止则a=“l”(高电平),它使t2管开启,于是b=“0”(低电平),而b=“0”又进一步保证了t1管的截止。所以,这种状态在没有外触发的条件下是稳定不变的。同样,t1管导通即a=“0”(低电平),t2管截止即b=“1”(高电平)的状态也是稳定的。因此,可以用这个电路的两个相对稳定的状态来分别表示逻辑“1”和逻辑“0”。
当把触发器作为存储电路时,就要使其能够接收外界来的触发控制信号,用以读出或改变该存储单元的状态,这样就形成了如下右图所示的六管基本存储电路。其中t5、t6为门控管。
(a) 六管静态存储单元的原理示意图 (b) 六管基本存储电路
图 六管静态存储单元(我们常看到的还有把t3&t1的gate连到一起,把t2&t4的gate连到一起)
当x译码输出线为高电平时,t5、t6管导通,a、b端就分别与位线d0及 相连;若相应的y译码输出也是高电平,则t7、t8管(它们是一列公用的,不属于某一个存储单元)也是导通的,于是d0及 (这是存储单元内部的位线)就与输入/输出电路的i/o线及 线相通。
写入操作:写入信号自i/o线及 线输入,如要写入“1”,则i/o线为高电平而 线为低电平,它们通过t7、t8管和t5、t6管分别与a端和b端相连,使a=“1”,b=“0”,即强迫t2管导通,tl管截止,相当于把输入电荷存储于tl和t2管的栅级。当输入信号及地址选择信号消失之后,t5、t6、t7、t8都截止。由于存储单元有电源及负载管,可以不断地向栅极补充电荷,依靠两个反相器的交叉控制,只要不掉电,就能保持写入的信息“1”,而不用再生(刷新)。若要写入“0”,则 线为低电乎而i/o线为高电平,使tl管导通,t 2管截止即a=“0”,b=“1”。
读操作:只要某一单元被选中,相应的t5、t6、t7、t8均导通,a点与b点分别通过t5、t6管与d0及 相通,d0及 又进一步通过t7、t8管与i/o及 线相通,即将单元的状态传送到i/o及 线上。
由此可见,这种存储电路的读出过程是非破坏性的,即信息在读出之后,原存储电路的状态不变。
2,地址译码器。
由于存储器系统是由许多存储单元构成的,为了加以区分,我们必须首先为这些存储单元编号,即分配给这些存储单元不同的地址。地址译码器的作用就是用来接受cpu送来的地址信号并对它进行译码,选择与此地址码相对应的存储单元,以便对该单元进行读/写操作。
一般的操作是:输入地址码(address)信号通过地址码缓冲器(address buffer)进入译码器(decoder )。如下图:
其中,a和b的信号是相反的,并且在ld触发前保持不变,这样就可以保证在选择地址时信号不会消失。
如果一个ram有n个地址译码输入端,则该存储器的记忆容量是2expn比特。我们可以用2expn1根字线和2exp(n-n1)根位线相互垂直交叉排列。在字线和位线的各个交叉点上接有存储单元。读出的过程是,首先由行译码器选择其中一根字线,接在这一字线上的所有存储单元与各自得位线相连,各个位线上得到与存储单元所记忆的数据相对应的微小信号,这一微小信号经读出放大器 进行放大(sense amplifier )。然后,由列译码器选择其中一个读出放大器 ,将放大的信号通过多路缓冲器 (multiplexer)送给输出电路。
为了扩充存储器系统的容量,常常需要将几片ram芯片的数据线并联使用或与双向的数据线相连。
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机
上一篇:汇编程序设计之伪指令