1.2440的BANK
2440一共提供给外部8个BANK(BANK0~BANK7),每个BANK均为128MB的地址空间,一共1GB地址空间。2440对外引出了27根地址线ADDR0~ADDR26,这27根地址线的访问地址大小为128MB,2440对外还引出了8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,当访问BANKx的地址空间时,nGCSx引脚输出低电平,27根地址线与8根片选信号(相当于多出3根地址线)共同完成1GB空间的访问操作。
2440作为32位的CPU,可以使用的地址范围理论上为4GB,除去上述用于连接外设的1GB的地址空间外,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。
2.2440为SDRAM提供的信号
BANK0~BANK5的连接方式都是相似的,BANK6连接SDRAM时复杂一点,2440提供了一组用于SDRAM的信号如下:
>> SDRAM时钟有效信号SCKE;
>> SDRAM时钟信号SCLK0/SCLK1;
>> 数据掩码信号DQM0/DQM1/DQM2/DQM3;
>> SDRAM片选信号nSCS0(它与nGCS6是同一引脚的两个功能);
>> SDRAM行地址选通脉冲信号nSRAS;
>> SDRAM列地址选通脉冲信号nSCAS;
>> 写允许信号nWE(这个信号并非专用于SDRAM)。
3.SDRAM内部存储结构
SDRAM内部是一个存储阵列,阵列就如同表格一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是SDRAM寻址的基本原理。这个单元格被称为存储单元,这个存储矩阵就是逻辑Bank(以下简称L-Bank),SDRAM一般含有4个L-Bank。
4.SDRAM的访问步骤
(1)CPU发出片选信号nSCS0有效,选中SDRAM芯片。
(2)SDRAM中有4个L-Bank,需要两根地址信号来选中其中一个,假设为ADDR24、ADDR25作为L-Bank的选择信号。
(3)对被选中的芯片进行统一的行/列寻址。
根据SDRAM芯片的列地址线数目设置CPU的相关寄存器之后,CPU就会从32位地址中自动分出L-Bank选择信号、行地址信号以及列地址信号,然后先后发出行地址信号和列地址信号。L-Bank选择信号在发出行地址信号的同时发出,并维持到列地址信号结束。
32位宽度时2440的ADDR0与ADDR1均不使用,2440的ADDR2连接SDRAM的ADDR0,实现4字节对齐访问。
(4)找到存储单元之后,被选中的芯片就要进行统一的数据传输。
5.存储控制器的相关寄存器
(1)位宽和等待控制寄存器BWSCON
(2)BANK控制寄存器BANKCONx(x为0~5)
用来控制BANK0~BANK5外接设备的访问时序。
(3)BANK控制寄存器BANKCONx(x为6~7)
用来控制BANK6~BANK7外接设备的访问时序。
(4)刷新控制寄存器REFRESH
(5)BANKSIZE寄存器
(6)SDRAM模式设置寄存器MRSRBx(x为6~7)