由于S3C2410是32位處理器(指令一次能夠操作32位數(shù)據(jù)(運(yùn)算器一次可以處理32位數(shù)據(jù));通用寄存器多是32位寄存器;處理器內(nèi)部數(shù)據(jù)通道也是32位的;處理器外部數(shù)據(jù)總線寬度通常是32位的,地址總線寬度只是代表CPU尋址范圍大小,與CPU是多少位的無關(guān),也即32位CPU的地址總線不一定是32根的,例如對(duì)于s3c2410,每一個(gè)Bank對(duì)應(yīng)27根地址線,尋址能力為128MB,全部8個(gè)Bank總的尋址能力為1GB),所以為了最大限度的發(fā)揮其性能,內(nèi)存最好也是32位(指數(shù)據(jù)寬度)的,(當(dāng)然,在s3c2410的8個(gè)bank中,除了Bank0只能選擇16/32數(shù)據(jù)位寬外,其余的7個(gè)Bank均可以單獨(dú)選擇8/16/32位寬的存儲(chǔ)系統(tǒng))然而市面上很少有32位寬度的單片SDRAM,所以一般都采取兩片16位的SDRAM進(jìn)行位擴(kuò)展得到32位的SDRAM。
由上兩圖可見,本系統(tǒng)擴(kuò)展后的內(nèi)存系統(tǒng)為16M×32Bit的(此處32Bit是指數(shù)據(jù)位寬度,而非地址位,可以理解SDRAM數(shù)據(jù)位寬度與地址線的條數(shù)無關(guān),明白數(shù)據(jù)線和地址線的區(qū)別,對(duì)于下面地址線的連接方式的理解非常重要)。
一、A0~A12地址線
首先要明白這一點(diǎn),在CPU的尋址空間中,字節(jié)(8位)是表示存儲(chǔ)容量的唯一單位。(所以為什么對(duì)于51單片機(jī)來說,其16根地址線的尋址能力為64KB,注意:其單位是Byte—字節(jié))
而對(duì)于上述已經(jīng)進(jìn)行擴(kuò)展了的32位SDRAM存儲(chǔ)系統(tǒng),可以認(rèn)為它的每一個(gè)存儲(chǔ)單元都是4個(gè)字節(jié)的(單位是4個(gè)字節(jié)=1個(gè)字),因此當(dāng)它的地址線A1:A0=01時(shí),處理器上對(duì)應(yīng)的地址線應(yīng)為A3:A2=01(因?yàn)镃PU的尋址空間是以Byte為單位的)。
正因?yàn)槿绱?,SDRAM的A0引腳接到了S3C2410的A2地址線上。
以此類推,SDRAM的A12~A1引腳依次接到了2410的A14~A3地址線上。
同樣的,對(duì)于16位數(shù)據(jù)位寬的SDRAM系統(tǒng)而言,需要將SDRAM的A0引腳連接到2410的A1地址線上面。
二、BA0~BA1地址線
K4S561632D是4M×16Bit×4Banks,共32MB
DRAM芯片在構(gòu)造上的特點(diǎn)是,芯片上的地址引腳是復(fù)用的。(在存取DRAM芯片的某單元時(shí),其操作過程是將存取的地址分兩次輸入到芯片中,每一次都由同一組地址線輸入。兩次送到芯片上去的地址分別稱為行地址和列地址,它們被鎖存到芯片內(nèi)部的行地址鎖存器和列地址鎖存器中??梢韵胂螅谛酒瑑?nèi)部,各存儲(chǔ)單元是按照矩陣結(jié)構(gòu)排列的。行地址信號(hào)通過片內(nèi)譯碼選擇一行,列地址信號(hào)通過片內(nèi)譯碼選擇一列,這樣就決定了選中的單元)。 /RAS是行地址鎖存信號(hào),該信號(hào)將行地址鎖存在芯片內(nèi)部的行地址鎖存器中;/CAS是列地址鎖存信號(hào),該信號(hào)將列地址鎖存在芯片內(nèi)部的列地址鎖存器中。
K4S561632D共有13根地址線A0~A12)。行地址線為A0~A12,共13根;列地址線為A0~A8,共9根,可見K4S561632D一個(gè)Bank的存儲(chǔ)容量為213×29=222=4M。(對(duì)于DRAM來說,13根地址線的最大編址空間為226=64M,可見此處K4S561632D還是留有余量的,其最大容量可以擴(kuò)充到64M)
BA0~BA1是Bank選擇地址線。Banks可以理解為一片16M×16Bit 的K4S561632D內(nèi)部是由4片容量為4M的16Bit SDRAM擴(kuò)展而成的,即16M×16Bit =4M×4Banks×16Bit。 BA0~BA1即為該4片SDRAM的片選信號(hào)??梢夿A0~BA1代表了K4S561632D的最高位。
K4S561632D芯片管腳說明
綜上,BA0~BA1代表了SDRAM的最高地址位。因?yàn)镃PU的尋址空間是以字節(jié)(Byte)為單位的,本系統(tǒng)SDRAM容量為16MWord=64MByte,那就需要A25~A0(64M=226)地址線來尋址,所以BA1~BA0地址線應(yīng)該接到2410的A25~A24引腳上。
當(dāng)然,由上面分析可知,DRAM內(nèi)存的地址線是行地址線與列地址線復(fù)用的,所以地址線的數(shù)目并不需要26條。
三、DQM信號(hào)
如前所述,32位的SDRAM存儲(chǔ)單元以4Byte為單位進(jìn)行數(shù)據(jù)訪問的時(shí)候,內(nèi)存會(huì)忽略CPU的A1和A0地址線(事實(shí)上,2410的A1和A0地址線也根本沒接到SDRAM的芯片上)。
但是處理器如果需要訪問地址偏移量為01的單個(gè)字節(jié),就需要DQM(Data Mask)信號(hào)進(jìn)行幫助,這個(gè)信號(hào)接在2410的nWEB線上。DQM信號(hào)由處理器根據(jù)當(dāng)前的訪問情況發(fā)出,如果當(dāng)前的訪問只需要低16字節(jié),那么nWEB0和nWEB1線就會(huì)有效。