现在的位置: 首页 > 综合 > 正文

SDRAM的地址映射方式

2013年11月11日 ⁄ 综合 ⁄ 共 2656字 ⁄ 字号 评论关闭

原文地址:http://icetime17.blog.163.com/blog/static/1974213792011919113437312/

    其实通常所说内存(Memory)指的是:SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。

    SDRAM从发展到现在已经经历了四代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM。第一代与第二代SDRAM均采用单端(Single-Ended)时钟信号,第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。之后的第二,三,四代DDR(Double
Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。

    SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,所以在主板上SRAM存储器要占用一部分面积,在主板上哪些是SRAM呢?
    一种是置于CPU与主存间的高速缓存,它有两种规格:一是固定在主板上的高速缓存(Cache Memory );二是插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,另外在CMOS芯片1468l8的电路里,它的内部也有较小容量的128字节SRAM,存储我们所设置的配置数据。
    还有一种是为了加速CPU内部数据的传送,自80486CPU起,在CPU的内部也设计有高速缓存,故在Pentium CPU就有所谓的L1 Cache(一级高速缓存)和L2Cache(二级高速缓存)的名词,一般L1 Cache是内建在CPU的内部,L2 Cache是设计在CPU的外部,但是Pentium Pro把L1和L2 Cache同时设计在CPU的内部,故Pentium Pro的体积较大。最新的Pentium II又把L2 Cache移至CPU内核之外的黑盒子里。SRAM显然速度快,不需要刷新的动作,但是也有另外的缺点,就是价格高,体积大,所以在主板上还不能作为用量较大的主存。

现将SRAM的特点归纳如下:
◎优点,速度快,不必配合内存刷新电路,可提高整体的工作效率。 
◎缺点,集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。 
◎SRAM使用的系统: 
○CPU与主存之间的高速缓存 
○CPU内部的L1/L2或外部的L2高速缓存 
○CPU外部扩充用的COAST高速缓存 
○CMOS 146818芯片(RT&CMOS SRAM)

SRAM与SDRAM的比较:
SRAM是靠双稳态触发器来记忆信息的;SDRAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用SDRAM,而高速缓冲存储器(Cache)则使用SRAM,在存取速度上,SRAM>SDRAM。另外,内存还应用于显卡、声卡及CMOS等设备中,用于充当设备缓存或保存固定的程序及数据。


接下来看SDRAM的地址映射方式:

BRC = Bank, Row, Column = Bank-Row-Column
RBC = Row, Bank, Column = Row-Bank- Column
这是SDRAM中,两种不同的地址映射方式。

SDRAM的地址映射方式 - ICE_AGE - ICE 的 AGE

 

SDRAM物理上,最小的单位,叫做一个cell单元,用于存储一个数据单位,可以是4-16bits。而更大一点的单位,就是对应的row或column了,见上图,这个很好理解,不多解释。然后多少行,多少列,共同组成了一个Bank,中文的含义,很像一个块,一个数据块。
根据上图中的说明可知:
常见的Bank,有4-8个;
而每个Bank中,一般包含16K的row;
而每个行中,一般又包含1024=1K的column;
而每个column中,即是我们所说的最小的单位cell了,是4-16bits。

此处所谓的地址映射,简单说就是,将一个内存地址,转换对应到相应的物理存储单元。

比如有个SDRAM,对应的参数是:
512Mb (32Mx16), 4 banks(用2bit表示), row length = 13 bit, column length = 10bit
然后有个内存地址0x5010 2040,这样的地址,其实最高位的0x50是对应着SDRAM地址的最开始,所以,此处可以忽略,实际所表示的地址,就是0x0080 2040.

然后看个图:

SDRAM的地址映射方式 - ICE_AGE - ICE 的 AGE

 这其实很清楚的显示了两种映射方式间的区别。

常见的地址映射方式有三种:
B-R-C (Bank, Row, Column)
R-B-C (Row, Bank, Column)
B-RL-CL-RH-CH (Bank, Row Low, Column Low, Row High, Column High)
BRC这种映射方式,用的最多。其优点是,功耗低;
RBC的优点是适合数据流方式去访问数据,性能好;
B-RL-CL-RH-CH适合存储视频,图像等数据,高性能。
而至于将某个SDRAM设置为BRC还是RBC,好像是SDRAM的controller来决定的。
而由于BRC和RBC,分别有不同的特点,所以,对于如何设置此地址映射方式,就是:
【总结】
如果是low-power的SDRAM(功耗相对低的,1.8V的低电压),然后就选BRC;
如果是High performance的SDRAM(高性能的,当然功耗相对高些,3.3V或2.5V的正常电压的),就选RBC。

抱歉!评论已关闭.