本系统是采用两片K4M51163-BG75的SDRAM,大小为2*64M。
1. SDRAM的工作原理
1.1 SDRAM概述
SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。同步是指其时钟频率(CLK)与CPU的AHB总线时钟频率(HCLK)相同,并且内部的命令的发送于数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写。
1.2 SDRAM的相关概念
⑴bank
一个SDRAM芯片一般由4个bank组成,下图是K4M51163-BG75功能结构图的关于bank的部分
上图中间可见K4M51163-BG75有4个bank,一个bank的大小是8M*16bite,8M表示这个bank有8M个存储单元,而每个单元可以存储16bit的数据。SDRAM的基本存储单位就是存储单元,最小的存储单位就是bit。
⑵位宽
上面提到一个存储单元包含16bit,这就是bank的位宽,也是一个SDRAM芯片的位宽,位宽表示每个传输周期(在这里是指送进CLK端的时钟的一个周期)传送的数据量(16bit)。
⑶SDRAM的容量
SDRAM的容量就是指存储单元的数量,计算公式如下
SDRAM的容量=bank的数量*(行数*列数)
在这里bank的数量是4个,而行数及列数的相关说明见下图
可以行数是用A0~A12总共13根地址线表示,可表达的行数达2的13次方(8192);列数是用A0~A9总共10根地址线来表示,可表达的列数达2的10次方(1024),同时看出行和列地址线是分时复用的。
1.3 SDRAM的寻址原理
SDRAM的内部是一个存储阵列,阵列就如何表格一样,和表格的检索原理一样,先指定一个行row,再指定一个列column,这样我们就可以准确找到所需要的单元格了,这就是SDRAM芯片寻址的基本原理。对于内存,这个单元格被称为存储单元,那么这个表格(存储阵列)叫什么呢?它就是bank。我们的系统是采用两片K4M51163-BG75,那么这两片K4M51163-BG75是如何工作的呢?见下图
通过nSCS0来选择当前是哪个SDRAM芯片在工作,选定了指定的SDRAM芯片之后,通过BA0和BA1来选择特定的bank,选择了特定的bank,接着就选择特定行,然后在选择列,这样就可以找到特定的存储单元了。
注:SDRAM一次传输一个存储单元的数据,也就是16bit的数据,通过DQ0~DQ15读出或写入数据,这里的读出就是存储电容的放电,而写入就是存储电容的充电,每一位对应的数据保存在存储电容中,也就是一位能表示的高低电平,下图是有助于理解这点
2 K4M51163PG-BG75
2.1 SDRAM的引脚
SDRAM要想工作,必须要于内存控制器有所联系,同时对于一个电气元件,电源供应也是必不可少的,而且数据的传输要有一个时钟来同步数据的传送。因此电源与时钟引脚是必须的,那么还需要哪些控制引脚呢?
I:首先,我们知道内存控制器要先确定选择系统使用的两个SDRAM芯片的哪一个,然后才能对被选定的芯片进行寻址操作。因此要有一个片选的信号,它一次选择一个SDRAM芯片。
II:接下来就是对所选择的芯片进行bank的寻址,目前SDRAM中bank的数量最高为4个,所以需要两个bank的地址信号。
III:然后就是要对被选择的bank进行行和列(存储单元)寻址,其中所需要的地址线数量根据SDRAM芯片容量大小及组织结构分别设计了,但在相同容量下,行数不变,只有列数会根据位宽的变化而变化,位宽越大,列数越小,因为所需的存储单元减少了。
IV:找到存储单元后,就要把这个单元的数据读出或者写入,那么肯定要有与位宽相同的数据I/O通道才行,所以要有相应数量的数据引线。
2.1 K4M51163PG-BG75的功能结构图
<