内存的基本知识小结
1.内存的基本分类
1.1.DRAM
由小电容组成,需要刷新(充电),所以导致速度较慢。
1) SDRAM(2440常用)
2) DDR(6410常用)
3) DDR2(210常用)
4) 其他衍生产品
以上几种都是速度依次增高。
1.2.SRAM
不用刷新,速度快,价格昂贵。
2.深入认识DRAM
2.1.表结构
内存的内部结构如同一张表格,我们称为l-bank类似与下图,其中每个单元格中可以存放数据。
2.2.内存寻址
内存经过以下信息进行寻址:
1) L-Bank
一方面由于技术、成本等原因,不可能只做一个全容量的L-Bank,而另一方面由于SDRAM的工作原理限制,单一的L-Bank将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在SDRAM内部分割成多个L-Bank。
因此我们在寻址时就要先确定是哪个L-Bank,然后再在这个选定的L-Bank中选择行列地址进行寻址。
2) 行地址(Row)
3) 列地址(Column)
其内部构造如下:
2.3.内存芯片容量计算
内存芯片的容量就是所有的L_Bank中的存储单元的总容量,那么我们可以得到总的存储但与数量就是:
存储单元数量=行数×列数(一个L-Bank的存储单元数量)×L-Bank的数量
3.内存相关的编程
3.1.内存的位置
本以为拿到了内存的初始化流程,就可以开始写代码了,但是在写的过程中会发现其有部分硬件的东西需要了解一下,首先是内存的位置,再以前的博文中说过地址布局的问题,下面以210为例进行分析:
从上图可知210的DRAM分为两个区域,DRAM0和DRAM1总共为1.5G大小,分别通过DMC0和DMC1进行控制,我们要根据自己手头的板子进行确定。