1 SDRAM邏輯原理圖spa
其存儲結構的邏輯圖,以下圖所示。blog
與表格的檢索原理同樣,先指定一個行(Row)而後再指定一個列(Column),就能夠準確地找到所須要的單元格,這就是SDRAM尋址的基本原理 。這個單元格被稱爲存儲單元,而這個表格就是邏輯Bank(Logical Bank),SDRAM通常含有4個L-Bank。接口
任何一款SDRAM都須要注意它的一些信息,如位寬、列/行地址、刷新週期、以及Bank地址。其中,位寬是從原理圖中能夠獲得,而 列/行地址、刷新週期 以及bank地址則是從芯片的數據手冊中獲得。內存
SDRAM:在計算其地址空間時,即地址大小時,並不能看數據線的位數。例如一個SDRAM芯片它只有13根地址線,2的13次方8K,每一個地址對應4字節的話,也就只有32K。而芯片手冊上一般都會比這個大,這是由於還有兩根線,行地址(nSRAS),列地址(nSCAS)。另外,還有LnWBE0,LnWBE1,表示對應字節的寫使能,意思就是若是SDRAM芯片是16位,但如今只想寫低8位,那麼此時咱們就能夠只拉低LnWBE1,這樣高字節部分寫使能消失。若是沒有這兩個引腳的話,那隻能先讀16位,而後修改,再回寫進SDRAM。flash
2 S3C2440 與 SDRAM原理
鏈接配置
一般能夠看到,在原理圖中,若是SDRAM是32位(多是由兩個SDRAM合起來)的,那麼S3C2440的A0/A1並不與SDRAM鏈接,而是從A2開始鏈接的,這是由於SDRAM是32位的,4個bytes。那麼S3C2440發出地址便可以獲得4個字節,而S3C2440是按字節尋址的,因此須要低2位來劃分這4個字節並取出須要的字節。方法
另外一般S3C2440的BANK6~BANK7比較特別,由於只有它們能夠鏈接SDRAM,具體能夠參看相關數據手冊。im
訪問總結
一般處理器外圍會鏈接一系列存儲的設備,如SDRAM\DM9000,那麼如何訪問這些芯片呢。就是CPU經過存儲管理器實現。例如CPU須要讀0x30000000讀4字節數據。那麼CPU只須要執行下列彙編指令便可:mov r1, #0x30000000; ldr r0, [r1]。由存儲管理器,根據配置信息得知0x30000000是對應內存SDRAM的地址,因此須要有SDRAM的時序,如1發出片選信號,2bank選擇信號,3列地址,4行地址。這4步都是由存儲管理器實現。
3 其它
內存分爲SRAM\SDRAM\DDR。
(1)SRAM速度快,但成本高,使用方法簡單,直接發地址,而後讀寫。
(2)SDRAM則是成本低,但訪問方法複雜,地址還分爲列地址、行地址並且須要不斷地刷新它。另外DDR,是指傳統的SDR SDRAM只能在信號的上升沿進行數據傳輸。
(3)DDR SDRAM卻能夠在信號的上升沿和降低沿都進行數據傳輸,因此DDR內存在每一個時鐘週期均可以完成兩倍於SDRAM的數據傳輸量,這也是DDR的意義——Double Data Rate,雙倍數據速率。
網卡、NORFLASH的接口與SRAM同樣,術語上稱爲ram-like。因此,若是須要接NORFLASH或者網卡,則能夠直接接在bank0~bank5,而若是是SDRAM,則應該掛接在BANK6-7。
1 分類
一般能夠分爲大頁nand flash 和小頁nand flash,其中大頁是指一頁有2K字節,而小頁只有512字節。64頁組成一塊。
2 地址空間
NandFlash編址:1頁大小其實是2048+64(OOB)。64在多數狀況下是不參與編址的。而是作爲冗餘檢測所用。
因爲nand flash是獨立編址,因此大多數的時候,讀寫nand flash它是要先領先鏈接線,發命令、發地址、發數據,並不能直接尋址到相應的位置(不像SDRAM同樣)。
總結尋址方式至少分爲兩種
1 SDRAM、DM9000它們的芯片上都有地址信號線
2 NandFlash的芯片上是沒有地址信號線的
諸如1類的存儲器芯片(能夠包括SDRAM\DM9000\SRAM\寄存器),它們用的地址都是CPU能夠看見的,是CPU發出來的。即CPU統一編址。
但諸如2類的CPU鏈接的NandFlash,那麼顯然它也是本身的獨立的地址空間。因此它們是經過發送地址、命令、數據等信號。