专题8-不用内存怎么行

1.内存的分类:
(1)SRAM静态RAM,访问速度更快,但是成本高。常用在存储容量不大,速度要求高的场合。比如CPU的垫脚石采用的是SRAM。
(2)DRAM动态:由很多电容组成,需要定期充电保持信息,即刷新,故访问速度慢。
1.1SDRAM:同步动态随机存储器(synchronous dynamic random access memory)
同步:他的工作(命令传送和数据传输)要以同步时钟为基准。
动态:不断刷新来保持信息。
随机:不是线性按照地址存放信息,而是指定任意地址存放数据。
1.2DDR(double data rate SDRAM)和DDR2:双倍速率同步动态随机存储器。基于SDRAM,不仅在时钟上升沿可以存储数据,在下降沿也可以,从而速度翻倍。
而DDR2则是在DDR的基础上再翻倍。
1.3;2440用的是SDRAM,6410用的是DDR,210用的是DDR2.
2.内存的内部结构
2.1表结构:内存的存储结构就像一张表格,每一个单元格都可以存放数
2.2L_BANK:逻辑块,每一张表称之为L_BANK。由于技术,成本等原因无法将所有的单元格做在同一张表格(L_BANK),所以一个内存通常分为多个L_BNAK,通常为4块。
2.3寻址信息:
(1)L_BANK片选信号
(2)行地址
(3)列地址
3.容量计算 = 4 (L_BANK数目)x 单元格数目 x单元格容量
4.2440内存初始化:
4.1:地址空间:
(1)地址线:2440对外提供27条地址线,只能访问128MB的外设空间。
(2)片选信号:8个片选信号,扩大可访问的外设空间到1GB。
(3)外设空间:有2440的datasheet知道他将1GB分成8部分,即8块,通过不同的片选信号来访问不同的块空间。其中内存从band6开始(0x30000000),有可能占用band7。
(4)存储器控制器:所谓对内存初始化,实质上是对CPU的存储器控制器进行初始化,由他对给出的地址进行分析转换得到片选信号和行列地址。而CPU和内部寄存器之间的访问则是通过CPU内部的32位总线进行的。
4.2:内存芯片连接
由于每个单元格的容量是16bit,即内存芯片的数据宽度是16bit,而CPU的数据宽度是32bit,为了避免浪费,就用两块内存芯片并联,使得每一次cpu对内存访问的时候可以一次性取出32bit的数据。分为高16bit和低16bit。
当然不可避免的要涉及到片选信号,L_BANK选择信号,行列地址信号。
4.3存储器控制器寄存器
设置13个寄存器,要查阅2440的datasheet以及内存的datasheet,然后看时序图,找出寄存器的某些位控制的参数所需要设置的值。最后要学会在汇编里用循环的方式来给寄存器赋值。
5.  理论上2440可以寻址4GB,总体上分为内部空间和外设空间。外设空间又分为8个bank,每个bank为128MB
6.6410也可以寻址4GB空间,但是6410把地址空间划分为三个部分,一个是保留区(高2GB),一个是外设区(256MB),一个是主存储区(1972MB)。
主存储区又分为五个部分

(1)boot镜像区:不匹配任意硬件外设,负责把相应的外设映射到该处。CPU上电后从这里取指运行。
(2)内部存储区:分两个部分:IROM和ISRAM,虽然理论上各有64MB,但是IROM实际有效的只有32KB,ISRAM有效的只有8KB
(3)静态存储区:类似于2440的外设区,分成6个bank,可以接NORFLASH,onenand等外设。
(4)保留区:256MB,不用
(5)动态存储区:就是用来连接内存的,所以6410的内存起始地址是0x50000000
7.6410的内存初始化要按顺序进行,2440不需要顺序。还要注意设置数据线和地址线的选择。以及检查是否已将ready信号写入寄存器。
8.代码实现:

9.210的地址空间

DDR2可以占用1.5GB的空间,从0x20000000开始。0地址处也是映射区,不和硬件连接。芯片级联构成32位的数据宽度。
210有两个内存控制器,一个最大控制512,一个是1G。

posted @ 2015-04-16 18:47  生活需要深度  阅读(186)  评论(0编辑  收藏  举报