2440原理图地址线分析
转自:http://blog.csdn.net/hochy2008/article/details/5783991
(1) 地址线为什么从A2开始?
因为2440数据宽度为32位,按4字节对齐,即地址只会是0x...0,0x...4,0x..C,0x...E,每次地址增加都是四个字节,所以A0和A1没什么用。
(2) SDRM BANK 选择输入BA0/BA1为什么连接的是A24,A25
因为系统内存容量为64M,32bit,由两片64M 16bit的SDRM组成。表示64M的空间需要26根线,所以地址最高两位为A25和A24。
(3) 64M需要26根线,为什么实际只用到了A2~A14,A24,A25?
理论上应该将A2~A25直接连接到SDRAM来寻址64M(之所以不是A0~A25,是因为每次访问的是32bit),而实际上只把A2~A14这13根线连接到SDRAM的A0~A12,这是因为SDRAM访问时地址是分两次给的,即行地址和列地址,不需要一次输入,行地址和列地址复用了A2~A14这13根线,这个SDRAM理论上可寻址的最大范围为2^13 * 2^13。
(4)为什么板子上SDRAM的空间为0x30000000 ~ 0x34000000
根据2440 SPEC,SDRAM只能放在BANK6 或 BANK7 (nGCS6或nGCS7),起始地址分别为0x30000000和0x38000000,一个BANK的大小为128M,现在选择BANK放SDRAM,而SDRAM的容量为64M(0x4000000),所以SDRAM的范围就是0x30000000~0x34000000,为什么是0x3....呢?因为你把nGCS6片选接到SDRAM芯片上了;当然后你也可以接nGCS7,不过地址就要变了,[A29,A28,A27]=3,即从0x38000000开始.
(5) 2440寻址空间为4G,需要32根地址线才够,为什么实际上对外地址线只有27根?
虽然建起空间为4G,实际上1G~4G被芯片内部寄存器用了,只有0~1G可被用户扩展寻址。1G的寻址空间需要30根线,对外只有27根接芯片地址线,对内有3根用来选择8个BANK,8个BANK对应于外部的nGCSx(x:0~7)片选信号