搞清楚nand flash和 nor flash 以及 spi flash 和cfi flash 的區別
前言:
在嵌入式開發中,如uboot的移植,kernel的移植都需要對Flash 有基本的了解。下面細說一下標題中的中Flash中的關系。
Flash Memory(閃存)是非易失性的存儲器。
一,Flash的內存存儲結構
flash按照內部存儲結構不同,分為兩種:nor flash和nand flash。
Nor FLASH使用方便,易於連接,可以在芯片上直接運行代碼,穩定性出色,傳輸速率高,在小容量時有很高的性價比,這使其很適合應於嵌入式系統中作為 FLASH ROM。Nor Flash架構提供足夠的地址線來映射整個存儲器范圍。
相對於NorFLASH,NandFLASH強調更高的性能,更低的成本,更小的體積,更長的使用壽命。這使Nand FLASH很擅於存儲純資料或數據等,在嵌入式系統中用來支持文件系統。缺點包括較慢的讀取熟讀和I/O映射類型或間接接口。
二、具體內容
2.1Nor Flash
在通信方式上Nor Flash 分為兩種類型:CFI Flash和 SPI Flash。即采用的通信協議不同,
a,CFI Flash
英文全稱是common flash interface,也就是公共閃存接口,是由存儲芯片工業界定義的一種獲取閃存芯片物理參數和結構參數的操作規程和標准。CFI有許多關於閃存芯片的規定,有利於嵌入式對FLASH的編程。現在的很多NOR FLASH 都支持CFI,但並不是所有的都支持。
CFI接口,相對於串口的SPI來說,也被稱為parallel接口,並行接口;另外,CFI接口是JEDEC定義的,所以,有的又成CFI接口為JEDEC接口。所以,可以簡單理解為:對於Nor Flash來說,CFI接口=JEDEC接口=Parallel接口 = 並行接口
特點在於支持的容量更大,讀寫速度更快。
缺點由於擁有獨立的數據線和地址總線,會浪費電路電子設計上的更多資源。
b,SPI Flash
serial peripheral interface串行外圍設備接口,是一種常見的時鍾同步串行通信接口。有4線(時鍾,兩個數據線,片選線)或者3線(時鍾,兩個數據線)通信接口,由於它有兩個數據線能實現全雙工通信,讀寫速度上較快。擁有獨立的數據總線和地址總線,能快速隨機讀取,允許系統直接從Flash中讀取代碼執行;可以單字節或單字編程,但不能單字節擦除,必須以Sector為單位或對整片執行擦除操作,在對存儲器進行重新編程之前需要對Sector或整片進行預編程和擦除操作。如W25Q64
c,CFI Flash 和 SPI Flash 比較
SPI flash和 CFI Flash 的介質都是Norflash ,但是SPI 是通過串行接口來實現數據操作,而 CFI Flash 則以並行接口進行數據操作,SPI容量都不是很大,市場上 CFI Flash 做大可以做到128Mbit,而且讀寫速度慢,但是價格便宜,操作簡單。而parallel接口速度快,容量上市場上已經有1Gbit的容量,價格昂貴。
2.2 Nand Flash
同樣根據接口類型不同,可分為SPI 和 並行。
並行NandFlash在工藝制程方面分三種類型:MLC、SLC和TLC。MLC和SLC屬於兩種不同類型的NAND FLASH存儲器。
SLC全稱是Single-Level Cell,即單層單元閃存,而MLC全稱則是Multi-Level Cell,即為多層單元閃存。它們之間的區別,在於SLC每一個單元,只能存儲一位數據,MLC每一個單元可以存儲兩位數據,MLC的數據密度要比SLC 大一倍。在頁面容量方面分NAND也有兩種類型:大頁面NAND flash(如:HY27UF082G2B)和小頁面NAND flash(如:K9F1G08U0A)。
這兩種類型在頁面容量,命令序列、地址序列、頁內訪問、壞塊標識方面都有很大的不同,並遵循不同的約定所以在移植驅動時要特別注意。
3、Nor Flash和Nand Flash使用區別
1、Nand 閃存的密度要更高寫,且每比特成本較低,因此Nand 閃存具有1Gb到64Gb的容量。而NorFlash的容量大小從64Mb到2Gb。隨技術發展,范圍可能有所擴大,但是Nand 閃存容量更大,成本更低的特點不會輕易改變。
2、Nand 閃存因為共用地址和數據總線的原因,不允許對一個字節甚至一個快進行數據清空,只能對一個固定大小的區域進行清零操作;Nor 閃存可以對字進行操作,
4、總結
SPI Flash : 每次傳輸一個bit位的數據,傳輸速度慢,但是價格便宜,任意地址讀數據,擦除按扇區進行
CFI Flash : 每次傳輸一個字節 ,速度快,任意地址讀數據,擦除按扇區進行
Nand Flash:芯片操作是以“塊”為基本單位.NAND閃存的塊比較小,一般是8KB,然后每塊又分成頁,頁大小一般是512字節.要修改NandFlash芯片中一個字節,必須重寫整個數據塊,讀和寫都是按照扇區進行的。
前言:
在嵌入式開發中,如uboot的移植,kernel的移植都需要對Flash 有基本的了解。下面細說一下標題中的中Flash中的關系。
Flash Memory(閃存)是非易失性的存儲器。
一,Flash的內存存儲結構
flash按照內部存儲結構不同,分為兩種:nor flash和nand flash。
Nor FLASH使用方便,易於連接,可以在芯片上直接運行代碼,穩定性出色,傳輸速率高,在小容量時有很高的性價比,這使其很適合應於嵌入式系統中作為 FLASH ROM。Nor Flash架構提供足夠的地址線來映射整個存儲器范圍。
相對於NorFLASH,NandFLASH強調更高的性能,更低的成本,更小的體積,更長的使用壽命。這使Nand FLASH很擅於存儲純資料或數據等,在嵌入式系統中用來支持文件系統。缺點包括較慢的讀取熟讀和I/O映射類型或間接接口。
二、具體內容
2.1Nor Flash
在通信方式上Nor Flash 分為兩種類型:CFI Flash和 SPI Flash。即采用的通信協議不同,
a,CFI Flash
英文全稱是common flash interface,也就是公共閃存接口,是由存儲芯片工業界定義的一種獲取閃存芯片物理參數和結構參數的操作規程和標准。CFI有許多關於閃存芯片的規定,有利於嵌入式對FLASH的編程。現在的很多NOR FLASH 都支持CFI,但並不是所有的都支持。
CFI接口,相對於串口的SPI來說,也被稱為parallel接口,並行接口;另外,CFI接口是JEDEC定義的,所以,有的又成CFI接口為JEDEC接口。所以,可以簡單理解為:對於Nor Flash來說,CFI接口=JEDEC接口=Parallel接口 = 並行接口
特點在於支持的容量更大,讀寫速度更快。
缺點由於擁有獨立的數據線和地址總線,會浪費電路電子設計上的更多資源。
b,SPI Flash
serial peripheral interface串行外圍設備接口,是一種常見的時鍾同步串行通信接口。有4線(時鍾,兩個數據線,片選線)或者3線(時鍾,兩個數據線)通信接口,由於它有兩個數據線能實現全雙工通信,讀寫速度上較快。擁有獨立的數據總線和地址總線,能快速隨機讀取,允許系統直接從Flash中讀取代碼執行;可以單字節或單字編程,但不能單字節擦除,必須以Sector為單位或對整片執行擦除操作,在對存儲器進行重新編程之前需要對Sector或整片進行預編程和擦除操作。如W25Q64
c,CFI Flash 和 SPI Flash 比較
SPI flash和 CFI Flash 的介質都是Norflash ,但是SPI 是通過串行接口來實現數據操作,而 CFI Flash 則以並行接口進行數據操作,SPI容量都不是很大,市場上 CFI Flash 做大可以做到128Mbit,而且讀寫速度慢,但是價格便宜,操作簡單。而parallel接口速度快,容量上市場上已經有1Gbit的容量,價格昂貴。
2.2 Nand Flash
同樣根據接口類型不同,可分為SPI 和 並行。
並行NandFlash在工藝制程方面分三種類型:MLC、SLC和TLC。MLC和SLC屬於兩種不同類型的NAND FLASH存儲器。
SLC全稱是Single-Level Cell,即單層單元閃存,而MLC全稱則是Multi-Level Cell,即為多層單元閃存。它們之間的區別,在於SLC每一個單元,只能存儲一位數據,MLC每一個單元可以存儲兩位數據,MLC的數據密度要比SLC 大一倍。在頁面容量方面分NAND也有兩種類型:大頁面NAND flash(如:HY27UF082G2B)和小頁面NAND flash(如:K9F1G08U0A)。
這兩種類型在頁面容量,命令序列、地址序列、頁內訪問、壞塊標識方面都有很大的不同,並遵循不同的約定所以在移植驅動時要特別注意。
3、Nor Flash和Nand Flash使用區別
1、Nand 閃存的密度要更高寫,且每比特成本較低,因此Nand 閃存具有1Gb到64Gb的容量。而NorFlash的容量大小從64Mb到2Gb。隨技術發展,范圍可能有所擴大,但是Nand 閃存容量更大,成本更低的特點不會輕易改變。
2、Nand 閃存因為共用地址和數據總線的原因,不允許對一個字節甚至一個快進行數據清空,只能對一個固定大小的區域進行清零操作;Nor 閃存可以對字進行操作,
4、總結
SPI Flash : 每次傳輸一個bit位的數據,傳輸速度慢,但是價格便宜,任意地址讀數據,擦除按扇區進行
CFI Flash : 每次傳輸一個字節 ,速度快,任意地址讀數據,擦除按扇區進行
Nand Flash:芯片操作是以“塊”為基本單位.NAND閃存的塊比較小,一般是8KB,然后每塊又分成頁,頁大小一般是512字節.要修改NandFlash芯片中一個字節,必須重寫整個數據塊,讀和寫都是按照扇區進行的。