找回密码
 注册

扫一扫,访问微社区

四月份直播课程计划
查看: 44|回复: 0

一文读懂存储器的构造及选片

[复制链接]

该用户从未签到

发表于 2020-3-26 10:19 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 fish1352 于 2020-3-26 10:21 编辑
" c' C; \7 o3 b3 k* ]' p0 s1 o# f1 _
$ j; }0 h+ B! S' J, d1、存储器构造
, `& E  T4 t% }存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的 1234 这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。0 p* B+ S  z- I/ k+ i8 Y

' y9 G; B  b4 F( L) F* q; n% k; |1 X
" r' |' M: M$ ^2 M- l
图 1
) D; P  o" W& D% p( Z

9 l" r7 Y* N- ]& ~" V$ K+ e7 I5 ^, [让我们看图 1。单片机里面都有这样的存储器,这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你能把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。, x5 @7 A6 z0 |  N

) f1 K% f+ s9 o* k0 A8 ]( S: h! G7 m3 v
  b: d2 H0 x4 A, f3 y+ `) x
图 2
$ y# _& I: n+ }5 Q( F& x# T

7 |" `  n- B0 R; \" ]3 @有了这么一个构造,我们就能开始存放数据了,想要放进一个数据 12,也就是 00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图 2)。可是问题出来了,看图 1,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图 1,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就能自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不一样单元的控制线,就能向各单元写入不一样的数据了,同样,如果要某个单元中取数据,也只要打开对应的控制开关就行了。0 b3 e  A( A- }) e- A9 Z
& p; S3 @0 L9 V$ ]
存储器译码0 ]0 K4 h) w3 ~
那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片 27512 存储器中有 65536 个单元,把每根线都引出来,这个集成电路就得有 6 万多个脚?不行,怎么办?要想法减少线的数量。我们有一种办法称这为译码,简单介绍一下:一根线能代表 2 种状态,2 根线能代表 4 种状态,3 根线能代表几种,256 种状态又需要几根线代表?8 种,8 根线,所以 65536 种状态我们只需要 16 根线就能代表了。
0 `# Y4 f8 d( H; [
5 a. G. S7 j- L' D- s' K

$ e$ H1 G' g+ M9 F) f% L+ ?5 X; `1 Z
图 3

( h) V6 R! J) b% j' q- C: D
2 }7 I2 B( V" l2 ^1 y. S3、存储器的选片及总线的概念
( p$ }+ E$ J  Z至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图 4 所示。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是 0FFH 另一个存储器的单元是 00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的管脚进来后,不直接接到各单元去,中间再加一组开关(参考图 4 )就行了。平时我们让开关关闭着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图 3,读和写信号同时还接入到另一个存储器,但是由于片选端不一样,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不一样时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。& R/ A$ \) o+ P& O% j
2 X& K! E# @: Y9 {) C# l
从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为 BUS,总即公交车道,谁者能走。而十六根地址线也是连在一起的,称之为地址总线。
8 M  O) M, h6 f+ S. \! n4 x* u1 y/ E7 ^6 f- t
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号 )

GMT+8, 2020-4-3 02:50 , Processed in 0.093750 second(s), 21 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19925233282

快速回复 返回顶部 返回列表