+
来自「深入了解内存」· 代码 · 共 521 行 · 第 1/5 页
TXT
521 行
Data Out DRAM:扩展数据输出DRAM)</B><BR>在介绍FPM的读取过程的最后我着重提到了 FPM
DRAM是在上一次的数据读取完毕才会进行下一个数据的读取,但是对于EDO DRAM却是完全不一样的。 EDO
DRAM可以在输出数据的同时进行下一个列地址选通,我们依然结合下面的EDO读取时序图来了解EDO
DRAM读取数据的过程:<BR><IMG src="深入了解内存.files/12112044081.gif">
<OL>
<LI><BR>RAS在结束上一次的读取操作之后,进入预充电状态,当接到读取数据的请求之后,行地址首先通过地址总线传输到地址引脚,在这个期间CAS依然处于预充电状态
<LI><BR>/RAS引脚被激活,列地址开始经过行地址选通电路和行地址解码器进行行地址的选择,就在这个同时tRAC周期开始,因为是读取操作/WE引脚一直没有被激活,所以内存知道自己进行的是读取操作而不是写操作
<LI><BR>在CAS依然进行预充电的过程中,列地址被送到列地址选通电路选择出来合适的地址,当/CAS被激活的同时tCAC周期开始,当tCAC结束的时候,需要读取的数据将会通过数据引脚传输到数据总线。
<LI><BR>从开始输出第一组数据的时候,我们就可以体会到EDO同FPM之间的区别了:在tCAC周期结束之前,CAS失活并且开始了预充电,第二组列地址传输和选通也随即开始,第一数据还没有输出完毕之前,下一组数据的tCAC周期就开始了--显然这样进一步的节省了时间。就在第二组数据输出前,CAS再次失活为第三组数据传输列地址做起了准备……
<LI><BR>如此的设计使得EDO内存的性能比起FPM的性能提高了大约20-40%.
<LI><BR>正是因为EDO的速度比FPM快,所以它可以运行在更高的总线频率上。所以很多的EDO
RAM可以运行在66MHz的频率上,并且一般标注为5-2-2-2。</LI></OL>
<H2>SDRAM</H2><BR>主要谈论我们大家都能接触到的SDRAM内存了,首先得承认SDRAM同我们之前介绍的异步DRAM是差别非常大的。它的基本原理同前面提到的DRAM还是基本一样的(比如基本存储单元都是按照阵列排列,都有RAS和CAS的概念),不过这些存储单元的组织和控制同DRAM就具有相当大的差别了。在前面我们讨论其它类型的内存都是采用了以具体的产品为例来讲述的,所以这里我们依然采用这种形式,这次我们以
MICRON MT48LC4M4A1 16MB
SDRAM为例。(如果你感兴趣可以去www.micronsemi.com网站查找相应的资料)。<BR>如果你还记得我们在前面介绍的DRAM相关内容,那么应该还记得
DRAM是以bank来组织存储单元的。因为每个内存bank的位宽是同数据总线阿位宽一样的。所以对于SIMM,你必须把多个SIMM放在一个bank之中来满足32bit或者64bit数据总线的要求。DIMM具有更多阿引脚,所以单个DIMM可以提供足够的同数据总线相适应的位宽--这样每个bank只要一个DIMM就可以了。而且
SDRAM更进一步的是可以在单个的DIMM中存在多个bank,这样不但能够满足数据总线的需要还能进一步的提高总线的性能。下面就让我来解释一下:<BR>在我们前面讨论的DRAM读取方式中,当一个读取周期结束后,/RAS和/CAS都必须停止激活然后有一个短暂的预充电期才能进入到下一次的读取周期中。但是一个具有两个bank的SDRAM的模组中,其中一个bank在进行预充电的期间另一个bank却可以被调用--这样当你需要读取已经预充电的bank的数据时,就无需等待而是可以直接调用了。为了实现这个功能,SDRAM就需要增加对于多个bank的管理,这样就可以实现控制其中的bank进行预充电,并且在需要使用的时候随时调用了。这样一个具有两个bank的SDRAM一般会多一根叫做BA0的引脚,实现在两个bank之间的选择--一般的BA0是低电平表示Bank0被选择,而BA0是高电平Bank1就会被选中。<BR>可见,虽然SDRAM在基本的原理上比如基本存储的结构都是基本一样的,但是在整个内存架构的组织上是不同的,而且在存储单元的控制上也是有着相当大的区别的。因为异步DRAM同处理器和芯片的时钟并没有什么关系,所以芯片组只能按照DRAM内存的时序要求“被动”的操作DRAM控制引脚。SDRAM因为要同CPU和芯片组共享时钟,所以芯片组可以主动的在每个时钟的上升沿发给引脚控制命令。<BR><IMG
src="深入了解内存.files/12112044082.gif"><BR>上图显示的就是MT48LC4M4A1 16MB
SDRAM内存颗粒的引脚示意图,它采用了50引脚的TSOP封装,符合PC100规范。这种内存颗粒将同系统时钟同步运行。这种内存颗粒的架构1Mx16-512Kx16x2,每bank行地址数目是11,列地址数目是8。我们首先来介绍一下这种内存颗粒的引脚定义:
<UL>
<LI><BR>A0-A10:地址输入引脚,当ACTIVE命令和READ/WRITE命令时,来决定使用某个bank内的某个基本存储单元。
<LI><BR>CLK:时钟信号输入引脚
<LI><BR>CKE:Clock
Enable,高电平时有效。当这个引脚处于低电平期间,提供给所有bank预充电和刷新的操作
<LI><BR>/CS:芯片选择(Chip Select),SDRAM
DIMM一般都是多存储芯片架构,这个引脚就是用于选择进行存取操作的芯片
<LI><BR>/RAS:行地址选择(Row Address Select)
<LI><BR>/CAS:列地址选择(Column Address Select)
<LI><BR>/WE:写入信号(Write Enable)
<LI><BR>DQ0-DQ15:数据输入输出接口
<LI><BR>BA:Bank地址输入信号引脚,BA信号决定了由激活哪一个bank、进行读写或者预充电操作;BA也用于定义Mode寄存器中的相关数据。
<LI><BR>NC:空引脚
<LI><BR>DQM: 这个引脚的主要用于屏蔽输入/输出,功能相当于/OE引脚( Output Enable)。
<LI><BR>VDDQ:DQ供电引脚,可以提高抗干扰强度
<LI><BR>VSSQ:DQ供电接地引脚
<LI><BR>VSS:内存芯片供电接地引脚
<LI><BR>VDD:内存芯片供电引脚,提供+3.3V
±0.3V<BR>(上面的列表项目和示意图中,前面标有“/”或者“#”标记的表示在低电平下有效)</LI></UL><BR>下面的表格在不同的状态下(或者说不同命令下)的各个引脚的信号。“H”代表高电平,“L”代表低电平,“X”代表可以是任何状态,也就是该引脚同该命令并没有直接的关系。
<TABLE cellSpacing=0 class=ubb>
<TBODY>
<TR>
<TD class=ubb><B>功能</B></TD>
<TD class=ubb><B>/CS</B></TD>
<TD class=ubb><B>/RAS</B></TD>
<TD class=ubb><B>/CAS</B></TD>
<TD class=ubb><B>/WE</B></TD>
<TD class=ubb><B>DQM</B></TD>
<TD class=ubb><B>ADDR.</B></TD></TR>
<TR>
<TD class=ubb><B>COMMAND INHIBIT</B> (NOP)</TD>
<TD class=ubb>H</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD></TR>
<TR>
<TD class=ubb><B>NO OPERATION</B> (NOP)</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>H</TD>
<TD class=ubb>H</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD></TR>
<TR>
<TD class=ubb><B>ACTIVE</B> (选择bank并且激活相应的行)</TD>
<TD class=ubb>L</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>H</TD>
<TD class=ubb>X</TD>
<TD class=ubb>Bank/Row</TD></TR>
<TR>
<TD class=ubb><B>READ</B> (选择bank和列地址,并且开始突发读取)</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>X</TD>
<TD class=ubb>Bank/Col</TD></TR>
<TR>
<TD class=ubb><B>WRITE</B> (选择 bank和列地址,并且开始突发写入)</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>L</TD>
<TD class=ubb>L</TD>
<TD class=ubb>X</TD>
<TD class=ubb>Bank/Col</TD></TR>
<TR>
<TD class=ubb><B>BURST TERMINATE</B>(停止当前的突发状态)</TD>
<TD class=ubb>L</TD>
<TD class=ubb>H</TD>
<TD class=ubb>H</TD>
<TD class=ubb>L</TD>
<TD class=ubb>X</TD>
<TD class=ubb>X</TD></TR>
<TR>
<TD class=ubb><B>PRECHARGE</B>
(让相应的bank中的行失活或者让该bank失活)</TD>
<TD class=ubb>L</TD>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?