例:一个SDRAM应该与SDRAM控制器的地址线相连。当这个SDRAM存储宽度分别为8.16.32时的接线情况。
8位时sdram的A0接控制器的A0
16位时sdram的A0接控制器的A1
32位时sdram的A0接控制器的A3
原理:
当cpu想要获取sdram中的数据时,需要先通过sdram控制器从而进行对sdram的访问,如过cpu想要访问0x0000这个地址中8位的数据,实际上是把这个指令发送给控制器的。如果sdram的位宽为16,控制器会把16位数据都拿过来,它选择其中的8位返回给CPU。
一个地址中的数据为一个字节8位,假设字节是读取数据时最小的单位。
当sdram宽度为16.
在A0---A0 A1---A1 A2---A2 A3---A3接线时,当cpu想要0x0000这个字节的数据时会获得sdram的0x0000数据,并且取低8位给cpu,此时没有问题。当cpu想要获得0x0001这个字节的数据时会获得sdram的0x0001数据。但是这样其实是错误的,因为sdram为16位0x0000高8位就没有任何用处了,
所以理想状态应该是当cpu想要0x0000这个字节的数据时会获得sdram的0x0000数据,并且由控制器取低8位给cpu,当cpu想要获得0x0001这个字节的数据时会获得sdram的0x0000数据并且由控制器取高8位给cpu。
那么想要达到这种效果,将sdram的A0接到控制器的A1即可。这也当cpu想要读取0x0000的时候,sdram收到的地址是0x000,当cpu想要读取0x0001的时候,sdram收到的地址还是0x000。
同理如果sdram宽度为32位,将sdram的A0接到控制器的A2即可。这也当cpu想要读取0x0000到0x0011时sdram收到的地址是0x00
如果sdram宽度为64位,将sdram的A0接到控制器的A3即可。这也当cpu想要读取0x0000到0x0111时sdram收到的地址是0x0