DRAM和SRAM基础知识

发布 2019-07-05 11:26:15 阅读 1296

ram(random access memory)随机存取存储器对于系统性能的影响是每个pc用户都非常清楚的,所以很多朋友趁着现在的内存**很低纷纷扩容了内存,希望借此来得到更高的性能。不过现在市场是多种内存类型并存的,sdram、ddr sdram、rdram等等,如果你使用的还是非常古老的系统,可能还需要edo dram、fp dram(块页)等现在不是很常见的内存。

对于很多用户或者有一定经验的高级用户来说,他可能能说出athlon xp和pentium 4的主要不同点,能知道geforce3和radeon之间的区别,但是如果真的让他说出各种内存之间的实现机理的主要差别或者解释cas 2和cas 3之间的主要差别的话,就可能不是非常的清楚了。毕竟cpu和显卡之类的东西更容易引起我们的兴趣。我个人在这方面的知识也是比较片面甚至是一知半解的,所以一直在收集这个方面的资料。

在网上有很多很好的资源,其中ars technica、aceshardware、******tech等**的资料对于我系统的了解这个方面的知识有很大的帮助。本文主要以ars technica的文章为基础编写而成,为大家比较详细的介绍ram方面的知识。

虽然ram的类型非常的多,但是这些内存在实现的机理方面还是具有很多相同的地方,所以本文的将会分为几个部分进行介绍,第一部分主要介绍sram和异步dram(asynchronous dram),在以后的章节中会对于实现机理更加复杂的fp、edo和sdram进行介绍,当然还会包括rdram和sgram等等。对于其中同你的观点相悖的地方,欢迎大家一起进行技术方面的**。

存储原理。为了便于不同层次的读者都能基本的理解本文,所以我先来介绍一下很多用户都知道的东西。ram主要的作用就是存储**和数据供cpu在需要的时候调用。

但是这些数据并不是像用袋子盛米那么简单,更像是图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来,虽然都是书但是每本书是不同的。对于ram等存储器来说也是一样的,虽然存储的都是代表0和1的**,但是不同的组合就是不同的数据。

让我们重新回到书和书架上来,如果有一个书架上有10行和10列格子(每行和每列都有0-9的编号),有100本书要存放在里面,那么我们使用一个行的编号+一个列的编号就能确定某一本书的位置。如果已知这本书的编号87,那么我们首先锁定第8行,然后找到第7列就能准确的找到这本书了。在ram存储器中也是利用了相似的原理。

现在让我们回到ram存储器上,对于ram存储器而言数据总线是用来传入数据或者传出数据的。因为存储器中的存储空间是如果前面提到的存放图书的书架一样通过一定的规则定义的,所以我们可以通过这个规则来把数据存放到存储器上相应的位置,而进行这种定位的工作就要依靠地址总线来实现了。对于cpu来说,ram就象是一条长长的有很多空格的细线,每个空格都有一个唯一的地址与之相对应。

如果cpu想要从ram中调用数据,它首先需要给地址总线发送地址数据定位要存取的数据,然后等待若干个时钟周期之后,数据总线就会把数据传输给cpu。下面的示意图可以帮助你很好的理解这个过程。

上图中的小园点代表ram中的存储空间,每一个都有一个唯一的地址线同它相连。当地址解码器接收到地址总线送来的地址数据之后,它会根据这个数据定位cpu想要调用的数据所在的位置,然后数据总线就会把其中的数据传送到cpu。

上面所列举的例子中cpu在一行数据中每次知识存取一个字节的数据,但是在现实世界中是不同的,通常cpu每次需要调用32bit或者是64bit的数据(这是根据不同计算机系统的数据总线的位宽所决定的)。如果数据总线是64bit的话,cpu就会在一个时间中存取8个字节的数据,因为每次还是存取1个字节的数据,64bit总线将不会显示出来任何的优势,women工作的效率将会降低很多。

从“线”到“矩阵”

如果ram对于cpu来说仅仅是一条“线”的话,还不能体现实际的运**况。因为如果实际情况真的是这样的话,在实际制造芯片的时候,会有很多实际的困难,特别是在需要设计大容量的ram的时候。所以,一种更好的能够降低成本的方法是让存储信息的“空格”排列为很多行--每个“空格”对应一个bit存储的位置。

这样,如果要存储1024bits的数据,那么你只要使用32x32的矩阵就能够达到这个目的了。很明显,一个32x32的矩阵比一个1024bit的行设备更紧凑,实现起来也更加容易。请看下图:

知道了ram的基本结构是什么样子的,我们就下面谈谈当存储字节的过程是怎样的:

上面的示意图显示的也仅仅是最简单状态下的情况,也就是当内存条上仅仅只有一个ram芯片的情况。对于x86处理器,它通过地址总线发出一个具有22位二进制数字的地址编码--其中11位是行地址,另外11位是列地址,这是通过ram地址接口进行分离的。行地址解码器(row decoder)将会首先确定行地址,然后列地址解码器(column decoder)将会确定列地址,这样就能确定唯一的存储数据的位置,然后该数据就会通过ram数据接口将数据传到数据总线。

另外,需要注意的是,ram内部存储信息的矩阵并不是一个正方形的,也就是行和列的数目不是相同的--行的数目比列的数目少。(后面我们在讨论dram的过程中会讲到为什么会这样)

上面的示意图粗略的概括了一个基本的sram芯片是如何工作的。sram是“static ram(静态随机存储器)”的简称,之所以这样命名是因为当数据被存入其中后不会消失(同dram动态随机存储器是不同,dram必须在一定的时间内不停的刷新才能保持其中存储的数据)。一个sram单元通常由4-6只晶体管组成,当这个sram单元被赋予0或者1的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。

sram的速度相对比较快,而且比较省电,但是存储1bit的信息需要4-6只晶体管制造成本太高了(dram只要1只晶体管就可以实现)。

ram芯片。

前面的介绍都相对比较简单、抽象。下面我们会结合实际的ram芯片进行介绍。在谈到这个问题的时候,我们会涉及到一个比较重要的技术:

封装。你应该听说过诸如30线simms、72线simms和168线dimms或者rimms其中的一个或者几个术语吧。如果要解释这些术语之间的不同,就应该了解ram的封装技术。

sram芯片。

早期的sram芯片采用了20线双列直插(dip:dual inline package)封装技术,它们之所以具有这么多的针脚,是因为它们必须:

每个地址信号都需要一根信号线。

一根数据输入线和一根数据输出线。

部分控制线(write enable, chip select)

地线和电源线。

上图显示的是sram芯片,但是并不是下面示意图中的sram芯片。

下面的是一个16k x 1-bit sram芯片的针脚功能示意图: .

a0-a13是地址输入信号引脚。

cs是芯片选择引脚。

在一个实际的系统中,一定具有很多片sram芯片,所以需要选择究竟从那一片sram芯片中写入或者读取数据。

we是写入启用引脚(如上表,在cs、we上面的线我没有写入,表示低电平有效或者是逻辑0时有效):

当sram得到一个地址之后,它需要知道进行什么操作,究竟是写入还是读取,we就是告诉sram要写入数据。

vcc是供电引脚。

din是数据输入引脚。

dout是数据输出引脚。

gnd是接地引脚。

output enable(oe):有的sram芯片中也有这个引脚,但是上面的图中并没有。这个引脚同we引脚的功能是相对的,它是让sram知道要进行读取操作而不是写入操作。

从dout引脚读取1bit数据需要以下的步骤:

1)通过地址总线把要读取的bit的地址传送到相应的读取地址引脚(这个时候/we引脚应该没有激活,所以sram知道它不应该执行写入操作)

2)激活/cs选择该sram芯片。

3)激活/oe引脚让sram知道是读取操作。

第三步之后,要读取的数据就会从dout引脚传输到数据总线。怎么过程非常的简单吧?同样,写入1bit数据的过程也是非常的简单的。

1)通过地址总线确定要写入信息的位置(确定/oe引脚没有被激活)

2)通过数据总线将要写入的数据传输到dout引脚。

3)激活/cs引脚选择sram芯片。

4)激活/we引脚通知sram知道要尽心写入操作。

经过上面的四个步骤之后,需要写入的数据就已经放在了需要写入的地方。

dram芯片。

现在我们知道了在一个简单的sram芯片中进行读写操作的步骤了了,然后我们来了解一下普通的dram芯片的工作情况。dram相对于sram来说更加复杂,因为在dram存储数据的过程中需要对于存储的信息不停的刷新,这也是它们之间最大的不同。下面让我们看看dram芯片的针脚的作用。

最早、最简单也是最重要的一款dram芯片是intel在1979年发布的2188,这款芯片是16kx1 dram 18线dip封装。“16k x 1”的部分意思告诉我们这款芯片可以存储16384个bit数据,在同一个时期可以同时进行1bit的读取或者写入操作。(很抱歉找不到这款芯片的实物**,只好自己简单的画了一个示意图)

上面的示意图可以看出,dram和sram之间有着明显的不同。首先你会看到地址引脚从14根变为7根,那么这颗16k dram是如何完成同16k sram一样的工作的呢?答案很简单,dram通过dram接口把地址一分为二,然后利用两个连续的时钟周期传输地址数据。

这样就达到了使用一半的针脚实现同sgram同样的功能的目的,这种技术被称为多路技术(multiplexing)。

那么为什么好减少地址引脚呢?这样做有什么好处呢?前面我们曾经介绍过,存储1bit的数据sram需要4-6个晶体管但是dram仅仅需要1个晶体管,那么这样同样容量的sram的体积比dram大至少4倍。

这样就意味着你没有足够空间安放同样数量的引脚(因为针脚并没有因此减少4倍)。当然为了安装同样数量的针脚,也可以把芯片的体积加大,但是这样就提高芯片的生产成本和功耗,所以减少针脚数目也是必要的,对于现在的大容量dram芯片,多路寻址技术已经是必不可少的了。

当然多路寻址技术也使得读写的过程更加复杂了,这样在设计的时候不仅仅dram芯片更加复杂了,dram接口也要更加复杂,在我们介绍dram读写过程之前,请大家看一张dram芯片内部结构示意图:

在上面的示意图中,你可以看到在dram结构中相对于sram多了两个部分:由/ras (row address strobe:行地址脉冲选通器)引脚控制的行地址门闩线路(row address latch)和由/cas(column address strobe:

列地址脉冲选通器)引脚控制的列地址门闩线路(column address latch)。

用电安全和电工基础知识

各位同事大家好。今天由我给大家讲一下用电安全和电工基础知识。也谈不上讲课,只是我们共同 和学习。第一部分 用电安全。电流对人体的伤害。电流对人体的伤害有三种 电击。电伤和电磁伤害。电击是指电流通过人体,破坏人体心脏,肺及神经系统的正常功能。电伤是指电流热效应。化学效用和机械效应对人体的伤害 主要是指...

LED基础知识

是什么?答 led是英文light emitting diode,即发光二极管,是一种半导体固体发光器件,它是利用固体半导体芯片作为发光材料,当两端加上正向电压,半导体中的载流子发生复合引起光子发射而产生光。led可以直接发出红 黄 蓝 绿 青 橙 紫 白色的光。第一个商用二极管产生于 1960年。...

印刷基础知识

一 印刷术语名词释义。版规尺寸 整版成品 出血 夹刀 糊口 舌头等之和的长 宽。出血 1 成品边缘的 或底色块向成品外延伸预留的部位,裁切或模切成型时需去掉,这部分 或底色称之为出血。立体包装产品成品内,重点版面的 或底色块向非重点版面延伸预留的部位,模压成型后在非重点版面,这部分 或底色也称之为出...

ipd基础知识

ipd基础知识。ipd项目组。学习目的 了解世界级的集成开发系统的概貌。培养系统观。我们是在森。林里游戏!防止只见树木。的局部优化。为今后在工作中进一。步学习和实践ipd,打下基础。缩略语表 ipd integrated product development 集成产品开发。ipmt integra...

ansys基础知识

有限元法的基本构架。目前在工程领域内常用的数值模拟方法有 有限元法 边界元法 离散单元法和有限差分法,就其广泛性而言,主要还是有限单元法。它的基本思想是将问题的求解域划分为一系列的单元,单元之间仅靠节点相连。单元内部的待求量可由单元节点量通过选定的函数关系插值得到。由于单元形状简单,易于平衡关系和能...

船体基础知识

四 甲板室。对于大型船舶,由于甲板的面积大,布置船员房间等并不困难,在上甲板的中部或尾部可只设甲板室。因为在甲板室两侧外面的甲板是露天的,所以有利于甲板上的操作和便于前后行走。五 上层建筑的甲板。1 罗经甲板又称顶甲板,是船舶最高一层露天甲板,位于驾驶台项部,其上设有桅桁及信号灯架 各种天线 探照灯...

脉冲基础知识和反相器

第10章脉冲基础知识和反相器。教学重点。1 了解脉冲的基本概念与主要参数。2 理解微分电路 积分电路 脉冲分压器的基本原理,掌握微 积分电路工作条件和作用。3 了解二极管 三极管的开关特性及其应用。4 理解反相器的工作原理。教学难点。1 rc电路的过渡过程。2 三极管开关作用。3 mos管反相器的工...

化妆色彩的基础知识和原理

作为一个化妆师应当理解色彩的基本知识,理解色彩的原理和规律,训练时对色彩的搭配组合能力,从而提高对色彩的审美和水平,从而达到运用色彩来造型的目的。一 色彩的种类 1.无彩色系 黑,白及由黑白混合而产生的 白与黑,黑与白,浅黑灰,深灰,深浅不同的灰。2.有彩色系 有彩色的基本色有 红 橙 黄 绿 紫 ...