【转】wince内存配置的一些体会

时间:2022-06-03 07:42:38

注:以下分析是基于S3C2450的DRAMC控制器.

 1、CPU的BANK0到BANK5可以用于SROM(包括Norflash)、SRAM或其它外设的片选(片选信号nRCS),BANK6用于SDRAM、DDR内存(片选信号nSCS)。如果访问到不同BANK的地址范围DRAMC控制器则会激活对应的片选信号。关于此bank的最大访问是64MBytes目前不是很明白。找到一篇说明:http://blog.csdn.net/gooogleman/archive/2009/05/18/4197170.aspx

2、DRAMC控制器支持32位的SDRAM和16位的DDR,地址空间达到128MByte,这是由DRAMC所能用到的行列地址线根数所决定的(这是不是意味着只要是不超过128MBytes的内存,只需要改oemaddrtab_cfg.inc中的大小而不需要调整其它的值?我想如果按CPU的每个bank只能有64Mbytes的地址映射空间,那还是要改一下映射对应关系)。支持两个内存nCS(外部片选),对于DDR2支持4-bank,但是不支持8-bank(这个bank和第一条的bank含义不一样,有点象Nandflash的block,刷新用的单位),从Datasheet的例子来看,如果是接SDRAM,可以有2x16Bit、4x16Bit二种连接方式,前者是做位扩展,后者要用到两个片选;而接DDR2有1x16Bit、2x16bit二种连接方式,后者也要用到两个片选。

关于Bank的说明:

Bank (内存库) 在内存行业里,Bank至少有三种意思,所以一定要注意。 1、在SDRAM内存模组上,"bank 数"表示该内存的物理存储体的数量。(等同于"行"/Row) 2、Bank还表示一个SDRAM设备内部的逻辑存储库的数量。(现在通常是4个bank)。 3、它还表示DIMM 或 SIMM连接插槽或插槽组,例如bank 1 或 bank A。这里的BANK是内存插槽的计算单位(也叫内存库),它是电脑系统与内存之间数据总线的基本工作单位。只有插满一个BANK,电脑才可以正常开机。举个例子,奔腾系列的主板上,1个168线槽为一个BANK,而2个72线槽才能构成一个BANK,所以72线内存必须成对上。原因是,168线内存的数据宽度是64位,而72线内存是32位的。主板上的BANK编号从BANK0开始,必须插满BANK0才能开机,BANK1以后的插槽留给日后升级扩充内存用,称做内存扩充槽。

3、DRAMC的BANK访问空间是由它的相关属性来决定,如

支持SDRAM列地址线10,行地址线最大14,四个bank(刷新)

也就是最大访问空间=(2^14)*(2^10)*4*16Bit=1024Mbits/8=128Mbytes,做位扩展到32Bit可以达到256MBytes;如果还要做扩展就必须用到nSCS1了。

支持DDR2列地址线10,行地址线最大14,四个bank(刷新)

也就是最大访问空间=(2^14)*(2^10)*4*16Bit=1024Mbits/8=128Mbytes,如果还要做扩展就必须用到nSCS1了

注:因为2450只支持4bank的DDR2,似乎4bank的DDR2最大也只有64MBytes

4、开发板用的DDR2内存是K4T51163QC-ZC(L)D5,它是32MBx16(即64Mbytes)的内存,列地址线A0到A9,行地址线A0到A12(列和行地址这个应该是分时传送的),A14到A15用做片内bank选择。数据线用到D0到D15,DQM[0-4]、DQS[0-1]决定输出是高或低8/16位数据。
这样算下来  Memory Size=2^13  *  2^10  *  2^2  *  16 / 8 = 64MBytes
                                       行           行          bank      位

5、根据datasheet,S3C2450的DRAMC不支持32bit的DDR2;对于16bit的SDRAM则必须用两片进行扩展成32bit来访问。


问题:
(1)如果是2片连接呢?如何扩展内存?
对于SDRAM,目前市面上最大的16Bits单片内存是128Mbytes,两片连接成256Mbytes可进行32Bits的访问。因为它是位扩展所以只需要用到SCS0,如果要继续扩大就必须要用到nSCS1了。DRAMC根据访问地址来完成片选信号的激活。

(2)能不能达到512MBytes?

如果是这样,那根据配置其首地址为0x30000000,大小为0x20000000,岂不是和其它地址有冲突了?

(2)DQS0、DQS1是什么?
这个是DDR才有的(SDRAM没有),即数据选通信号,具体待了解。

 4、内存引脚定义(后面为2450对应的引脚) SDRAM和DDR2略有不同
CLK--时钟输入                                 SCLK
CKE--内部刷新时钟控制端             SCKE
CS--片选                     nSCS0/nSCS1
BA1,0--BANK的选择               A14、A15
A0--A11--地址线,包括行地址与列地址              A0-A12(最多可以到16位)
RAS--行地址选通                  nSRAS
CAS--列地址选通                                            nSCAS
WE--写使能                                                   nSWE
LDQM,UDQM--字节与字控制端                        DQM[0-3](如只有一片,则只用前两个)

DQ0--DQ15--数据端                                      D0-D15(如果做了位扩展,则D16-D31也用上)

 5、参考文章

http://blog.csdn.net/gooogleman/archive/2008/11/12/3283075.aspx

http://hi.baidu.com/to_qgq/blog/item/1a23118dea20b911b31bba18.html


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alien75/archive/2009/10/19/4697391.aspx