嵌入式系統(tǒng)的存儲器系統(tǒng)



第二級,第三級,第四級,第五級,第4章 嵌入式系統(tǒng)的存儲器系統(tǒng),嵌入式系統(tǒng)設(shè)計,嵌入式系統(tǒng)設(shè)計,基于ARM9微處理器S3C2410A,第4章 嵌入式系統(tǒng)的存儲器系統(tǒng),南陽師范學(xué)院張帥,4.1 存儲器系統(tǒng)概述,4.1.1 存儲器系統(tǒng)的層次結(jié)構(gòu),計算機系統(tǒng)的存儲器被組織成一個6個層次的金字塔形的層次結(jié)構(gòu),如圖所示:,S0,層為,CPU,內(nèi)部寄存器,S1,層為芯片內(nèi)部的高速緩存(,cache,),S2,層為芯片外的高速緩存(,SRAM,、,DRAM,、,DDRAM,),S3,層為主存儲器(,Flash,、,PROM,、,EPROM,、,EEPROM,),S4,層為外部存儲器(磁盤、光盤、,CF,、,SD,卡),S5,層為遠程二級存儲(分布式文件系統(tǒng)、,Web,服務(wù)器),圖4.1.1 存儲器系統(tǒng)層次結(jié)構(gòu),在這種存儲器分層結(jié)構(gòu)中,上面一層的存儲器作為下一層存儲器的高速緩存CPU,寄存器就是,cache,的高速緩存,寄存器保存來自,cache,的字;,cache,又是內(nèi)存層的高速緩存,從內(nèi)存中提取數(shù)據(jù)送給,CPU,進行處理,并將,CPU,的處理結(jié)果返回到內(nèi)存中;,內(nèi)存又是主存儲器的高速緩存,它將經(jīng)常用到的數(shù)據(jù)從,Flash,等主存儲器中提取出來,放到內(nèi)存中,從而加快了,CPU,的運行效率。
嵌入式系統(tǒng)的主存儲器容量是有限的,磁盤、光盤或,CF,、,SD,卡等外部存儲器用來保存大信息量的數(shù)據(jù)在某些帶有分布式文件系統(tǒng)的嵌入式網(wǎng)絡(luò)系統(tǒng)中,外部存儲器就作為其他系統(tǒng)中被存儲數(shù)據(jù)的高速緩存4.2.1 常見的嵌入式系統(tǒng)存儲設(shè)備,1RAM(隨機存儲器),RAM可以被讀和寫,地址可以以任意次序被讀常見RAM的種類有,SRAM,(Static RAM,靜態(tài)隨機存儲器)、,DRAM,(Dynamic RAM,動態(tài)隨機存儲器)、,DDRAM,(Double Data Rate SDRAM,雙倍速率隨機存儲器)其中,SRAM比DRAM運行速度快,SRAM比DRAM耗電多,DRAM需要周期性刷新2ROM(只讀存儲器),ROM在燒入數(shù)據(jù)后,無需外加電源來保存數(shù)據(jù),斷電后數(shù)據(jù)不丟失,但速度較慢,適合存儲需長期保留的不變數(shù)據(jù)在嵌入式系統(tǒng)中,ROM用固定數(shù)據(jù)和程序4.2 嵌入式系統(tǒng)存儲設(shè)備分類,3Flash Memory,Flash memory(閃速存儲器)是嵌入式系統(tǒng)中重要的組成部分,用來存儲程序和數(shù)據(jù),掉電后數(shù)據(jù)不會丟失但在使用Flash Memory時,必須根據(jù)其自身特性,對存儲系統(tǒng)進行特殊設(shè)計,以保證系統(tǒng)的性能達到最優(yōu)。
Flash Memory是一種非易失性存儲器,根據(jù)結(jié)構(gòu)的不同可以將其分成NOR Flash和NAND Flash兩種Flash Memory在物理結(jié)構(gòu)上分成若干個區(qū)塊,區(qū)塊之間相互獨立NOR Flash把整個存儲區(qū)分成若干個扇區(qū)(Sector),而NAND Flash把整個存儲區(qū)分成若干個塊(Block),可以對以塊或扇區(qū)為單位的內(nèi)存單元進行擦寫和再編程NAND和NOR性能比較,NOR,和,NAND,是現(xiàn)在市場上兩種主要的非易失閃存技術(shù),NOR,的讀速度比,NAND,稍快一些,NAND,的寫入速度比,NOR,快很多,NAND,的擦除速度遠比,NOR,的快,大多數(shù)寫入操作需要先進行擦除操作,NAND,的擦除單元更小,相應(yīng)的擦除電路更少,NAND和NOR,接口差別,NOR flash,帶有,SRAM,接口,線性尋址,,可以很容易地存取其內(nèi)部的每一個字節(jié),NAND flash,使用,復(fù)用接口和控制,I/O,多次尋址存取數(shù)據(jù),NAND,讀和寫操作采用,512,字節(jié)的塊,這一點有點像硬盤管理,此類操作易于取代硬盤等類似的塊設(shè)備,NAND和NOR,容量和成本,NAND flash,生產(chǎn)過程更為簡單,成本低,常見的,NOR flash,為,128KB,16MB,,而,NAND flash,通常有,512MB,2GB,NOR,主要應(yīng)用在代碼存儲介質(zhì)中,,NAND,適合于數(shù)據(jù)存儲,NAND,在,CompactFlash,、,Secure Digital,、,PC Cards,和,MMC,存儲卡市場上所占份額最大,NAND和NOR,可靠性和耐用性,在,NAND,中每塊的最大擦寫次數(shù)是,100,萬次,而,NOR,的擦寫次數(shù)是,10,萬次,位交換的問題,NAND flash,中更突出,需要,ECC,糾錯,NAND flash,中壞塊隨機分布,需要通過軟件標定,產(chǎn)品量產(chǎn)的問題,應(yīng)用程序可以直接在,NOR Flash,內(nèi)運行,,不需要再把代碼讀到系統(tǒng),RAM,中運行。
NOR Flash,的傳輸效率很高,在,1,4MB,的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能NAND Flash,結(jié)構(gòu)可以達到高存儲密度,并且寫入和擦除的速度也很快,應(yīng)用,NAND Flash,的困難在于需要特殊的系統(tǒng)接口在,NOR Flash,上運行代碼不需要任何的軟件支持在,NAND Flash,上進行同樣操作時,通常需要驅(qū)動程序,也就是內(nèi)存技術(shù)驅(qū)動程序(,MTD,)NAND Flash,和,NOR Flash,在進行寫入和擦除操作時都需要,MTD,在,NAND Flash,中每個塊的最大擦寫次數(shù)是一百萬次,而,NOR Flash,的擦寫次數(shù)是十萬次NAND Flash,除了具有,10:1,的塊擦除周期優(yōu)勢,典型的,NAND Flash,塊尺寸要比,NOR,型閃存小,8,倍,每個,NAND Flash,的內(nèi)存塊在給定的時間內(nèi)刪除次數(shù)要少一些NAND和NOR,軟件支持,4標準存儲卡(Compact Flash,CF卡),5安全數(shù)據(jù)卡(Secure Digital Card,SD卡),6硬盤存儲器,最常見的硬盤接口是IDE(ATA)和SCSI兩種,一些移動硬盤采用PCMCIA或USB接口。
4.4 NAND Flash接口電路,4.4.1 S3C2410A NAND Flash控制器,1S3C2410A NAND Flash控制器特性,目前,Nor Flash價格較高,而SDRAM和 Nand Flash存儲器相對經(jīng)濟,這樣促使一些用戶,在NAND Flash上執(zhí)行啟動代碼,在 SDRAM 上執(zhí)行主程序S3C2410A可以在一個外部NAND Flash存儲器上執(zhí)行啟動代碼,用來實現(xiàn)這一想法為了支持NAND Flash的啟動裝載(boot loader),S3C2410A配置了一個叫做“,Steppingstone,”的內(nèi)部SRAM緩沖器當系統(tǒng)啟動時,,NAND Flash存儲器的前4KB將被自動加載到Steppingstone中,,然后系統(tǒng)自動執(zhí)行這些載入的啟動代碼在一般情況下,啟動代碼將復(fù)制NAND Flash的內(nèi)容到SDRAM中使用S3C2410A內(nèi)部硬件ECC功能可以對NAND Flash的數(shù)據(jù)的有效性進行檢查在復(fù)制完成后,將在SDRAM中執(zhí)行主程序NAND Flash控制器具有以下特性:,NAND Flash,模式:支持讀擦除編程,NAND Flash,存儲器自動啟動模式:復(fù)位后,啟動代碼被傳送到,Steppingstone,中。
傳送完畢后,啟動代碼在,Steppingstone,中執(zhí)行具有硬件,ECC,產(chǎn)生模塊(硬件生成校驗碼和通過軟件校驗)在,NAND Flash,啟動后,,Steppingstone 4KB,內(nèi)部,SRAM,緩沖器可以作為其他用途使用NAND Flash,控制器不能通過,DMA,訪問,可以使用,LDM/STM,指令來代替,DMA,操作2,S3C2410A NAND Flash,控制器結(jié)構(gòu),NAND Flash,控制器的內(nèi)部結(jié)構(gòu)方框圖如圖,所示NAND Flash,的工作模式如圖,所示圖4.4.1 NAND Flash控制器內(nèi)部結(jié)構(gòu)方框圖,圖4.4.2 NAND Flash的操作模式,自動啟動模式的時序如下:,(1)完成復(fù)位;,(2)當自動啟動模式使能時,首先將NAND Flash存儲器的前4 KB內(nèi)容自動復(fù)制到Steppingstone 4 KB內(nèi)部緩沖器中;,(3)Steppingstone映射到,nGCSO,;,(4)CPU開始執(zhí)行在Steppingstone 4 KB內(nèi)部緩沖器中的啟動代碼注意:在自動啟動模式,不進行ECC檢測因此,,應(yīng)確保NAND Flash的前4 KB不能有位錯誤。
NAND Flash模式配置:,利用,NFCONF,寄存器設(shè)置,NAND Flash,配置;,寫,NAND Flash,命令到,NFCMD,寄存器;,寫,NAND Flash,地址到,NFADDR,寄存器;,在檢查,NAND Flash,狀態(tài)時,利用,NFSTAT,寄存器讀寫數(shù)據(jù)在讀操作之前或者編程操作之后應(yīng)該檢查,R/,nB,信號在復(fù)制NAND FLASH的前4KB到Steppingstone的過程中,ECC不會被檢查,這就必須保證所用NAND的前4KB沒有壞位如果使用三星的NAND FLASH,這一點是完全可以保證的,三星NAND FLASH的,Block0,是沒有壞位的,訪問時不用進行錯誤校驗使用其他品牌的NAND FLASH要看數(shù)據(jù)手冊,確認其Block0在出廠時保證無錯,方可與S3C2410配合使用,進行NAND方式的啟動2410的手冊上明白寫著2410的NAND控制器可以自動LOAD 4K CODE到RAM,只是必須保證這4K FLASH 沒壞塊nand FLASH手冊,block0是保證出廠不是壞的,其他塊就不保證了,在NAND FLASH用戶手冊中,三星NAND FLASH對于壞塊已經(jīng)做了很詳細的說明:,The 1st block,which is placed on 00h block address,is fully guaranteed to be a valid block,does not require Error Correction.,NAND Flash控制器的引腳配置如表所列。
表4.4.1 NAND Flash控制器的引腳配置,引腳,配置,D7:0,數(shù)據(jù)/命令/地址輸入/輸出端口(與數(shù)據(jù)總線共享),CLE,命令鎖存使能(輸出),ALE,地址鎖存使能(輸出),nFCE,NAND Flash芯片使能(輸出),nFRE,NAND Flash讀使能(輸出),nFWE,NAND Flash寫使能(輸出),R/nB,NAND Flash準備就緒/忙使能(輸出),BOOT(啟動)和NAND Flash配置如下:,(1)OM1:0=00b:使能NAND Flash控制器為自動啟動模式;,(2)NAND Flash存儲器的頁面大小應(yīng)該為512字節(jié);,(3)NCON:NAND Flash存儲器尋址步選擇0為3步尋址;1為4步尋址,相關(guān)寄存器:,NAND Flash,配置寄存器,NFCONF,地址,0 x4E000000,NAND,Flash,命令設(shè)置寄存器,NFCMD,地址,0 x4E000004,NAND,Flash,地址設(shè)置寄存器,NFADDR,地址,0 x4E000008,NAND,Flash,數(shù)據(jù)寄存器,NFDATA,地址,0 x4E00000C,NAND,Flash,操作狀態(tài)寄存器,NFSTAT,地址,0 x4E000010,NAND,Flash ECC,寄存器,NFECC,地址,0 x4E000014,4.4.2 NAND Flash的物理組成,正如硬盤的盤片被分為磁道,每個磁道又分為若干扇區(qū),一塊Nand flash也分為若干block,每個block分為如干page。
一般而言,block、page之間的關(guān)系隨著芯片的不同而不同,典型的分配是這樣的:,1block=32page,1page=512bytes(datafield)+16bytes(oob),NandFlash以頁為單位讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù)按照k9f1208的組織方式可以分四類地址:,Column 。
