前言:
在嵌入式開發中,如uboot的移植,kernel的移植都須要對Flash 有基本的瞭解。下面細說一下標題中的中Flash中的關係
一,Flash的內存存儲結構
flash按照內部存儲結構不一樣,分爲兩種:nor flash和nand flash。
NorFLASH使用方便,易於鏈接,能夠在芯片上直接運行代碼,穩定性出色,傳輸速率高,在小容量時有很高的性價比,這使其很適合應於嵌入式系統中做爲 FLASH ROM。
相對於NorFLASH,NandFLASH強調更高的性能,更低的成本,更小的體積,更長的使用壽命。這使NandFLASH很擅於存儲純資料或數據等,在嵌入式系統中用來支持文件系統。
1,Nand Flash
在工藝製程方面分NAND flash有兩種類型:MLC和SLC。MLC和SLC屬於兩種不一樣類型的NAND FLASH存儲器。
SLC全稱是Single-Level Cell,即單層單元閃存,而MLC全稱則是Multi-Level Cell,即爲多層單元閃存。
它們之間的區別,在於SLC每個單元,只能存儲一位數據,MLC每個單元能夠存儲兩位數據,MLC的數據密度要比SLC 大一倍。在頁面容量方面分NAND也有兩種類型:大頁面NAND flash(如:HY27UF082G2B)和小頁面NAND flash(如:K9F1G08U0A)。
這兩種類型在頁面容量,命令序列、地址序列、頁內訪問、壞塊標識方面都有很大的不一樣,並遵循不一樣的約定因此在移植驅動時要特別注意。
2,Nor Flash
在通訊方式上Nor Flash 分爲兩種類型:CFI Flash和 SPI Flash。
a,CFI Flash
英文全稱是common flash interface,也就是公共閃存接口,是由存儲芯片工業界定義的一種獲取閃存芯片物理參數和結構參數的操做規程和標準。CFI有許多關於閃存芯片的規定,有利於嵌入式對FLASH的編程。如今的不少NOR FLASH 都支持CFI,但並非全部的都支持。 html
CFI接口,相對於串口的SPI來講,也被稱爲parallel接口,並行接口;另外,CFI接口是JEDEC定義的,因此,有的又成CFI接口爲JEDEC接口。因此,能夠簡單理解爲:對於Nor Flash來講,CFI接口=JEDEC接口=Parallel接口 = 並行接口編程
b,SPI Flash
serial peripheral interface串行外圍設備接口,是一種常見的時鐘同步串行通訊接口。
c,CFI Flash 和 SPI Flash 比較
SPI flash和 CFI Flash 的介質都是Norflash ,可是SPI 是經過串行接口來實現數據操做,而 CFI Flash 則以並行接口進行數據操做,SPI容量都不是很大,市場上 CFI Flash 作大能夠作到128Mbit,並且讀寫速度慢,可是價格便宜,操做簡單。而parallel接口速度快,容量上市場上已經有1Gbit的容量,價格昂貴
二,參考文件
1,http://wenku.baidu.com/link?url=1aJIonw_7X-veCCTXhOYAxQ-KT07CWE5bcfl5pNLRuXE9xRaAjrH7GeJ72i8Ule2jbjham76rFlwBQHfuIJbbuMfUUBbFHR8-_8Vd-9SNFO
2,http://www.btdcw.com/btd-b8f73b523c1ec5da51e27004-1.html性能