1. S3C2410/S3C2440地地址空间
S3C2410/S3C2440对外引出的27根地址线ADDR0~ADDR26的拜访规模只要128MB,那么是怎么到达1GB的空间的呢?CPU对外还引出了8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,当拜访BANKx的地址空间时,nGCSx引脚输出低电平用来选中外接的设备。这样,每个nGCSx对应128MB的地址空间,8个nGCSx信号一共就对应了1GB的地址空间。这8个BANK的地址空间如:http://weimenlove.blog.163.com/blog/static/17775473201101013847857/
S3C2410/S3C2440作为32位的CPU,能够运用的地址规模理论上可到达4GB。除掉上述用于衔接外设的1GB的地址空间外,还有一部分是CPU内部寄存器的地址,剩余的地址空间没有运用。留意:这儿的地址指的是物理地址。
2. 存储控制器与外设的联系
所以要确认一个器材的地址,首先看它坐落哪个Bank区,再看它连在Addr[26:0]地址线所确认的地址,将该区的开始值和它的地址线地址相加即得该器材的地址。
BANK0~BANK5的衔接方法相似,BANK6衔接SDRAM时杂乱一点,CPU供给了一组用于SDRAM的信号。
1) SDRAM时钟有用信号SCLK;
2) SDRAM时钟信号SCLK0/SCLK1;
3) 数据掩码信号DQM0/DQM1/DQM2/DQM3;
4) SDRAM片选信号nSCS0(它与nGCS6是同一引脚的两个功用);
5) SDRAM行地址选通脉冲信号nSRAS;
6) SDRAM列地址选通脉冲信号nSCAS;
7) 写答应信号nWE(它不是专用于SDRAM)。
SDRAM的内部是一个存储阵列,阵列就好像表格相同,将数据“填”进去。和表格的检索原理相同,先指定一个行(Row),再指定一个列(Column),就能够精确地找到所需求的单元格,这便是SDRAM寻址的基本原理。这个单元格被称为存储单元,这个表格(存储阵列)便是逻辑Bank(Logic Bank,下文简称L-Bank),SDRAM一般含有4个L-Bank。
能够幻想,对SDRAM的拜访能够分为如下4个过程:
1)CPU宣布的片选信号nSCS0有用,它选中SDRAM芯片。
2)SDRAM中有4个L-Bank,需求两根地址信号来选中其间一个,如图中所示的是用ADD24、ADD25作为L-Bank的片选信号。
3)对被选中的芯片进行一致的行/列(存储单元)寻址。
依据SDRAM芯片的列地址线数目设置CPU的相关寄存器后,CPU就会从32位的地址中主动分出L-Bank挑选信号、行址址信号、列地址信号,然后先后宣布行地址信号、列地址信号。L-Bank挑选信号在宣布行地址信号的一起宣布,并保持到列地址信号完毕。
在图中,行地址、列地址共用地址线ADD2~ADD14(BANK6的位宽为32,ADDR0/1没有运用),运用nSRAS、nSCAS两个信号来区别它们。如上图中,运用两根地址线Addr24、Addr25作为L-Bank的挑选信号;HY57V561620运用13根行地址,9根列地址,所以当nSRAS信号有用时,ADDR2~ADDR14上宣布的是行地址信号,它对应32位地址空间的bit[23:11];当nSCAS信号有用时,ADDR2~ADDR10上宣布的是列地址信号,它对应32位地址空间的bit[10:2];由于Bank6以32位的宽度外接SDRAM,ADDR0、ADDR1恒为0,不参加译码。
又由于Bank6的开始地址为0x3000_0000,所以SDRAM的拜访地址为0x3000_0000~0x33ff_ffff,共64MB(2片*(4*Bank*2^22)*16bit)。