flash連接系統設計?嵌入式開發得弄明白各種Flash1、Flash Memory的簡介,我來為大家科普一下關于flash連接系統設計?下面希望有你要的答案,我們一起來看看吧!
嵌入式開發得弄明白各種Flash
1、Flash Memory的簡介
大家好,我是一哥,今天來介紹下嵌入式的各種Flash。所謂Flash,是内存(Memory)的一種,但兼有RAM和ROM 的優點,是一種可在系統(In-System)進行電擦寫,掉電後信息不丢失的存儲器,同時它的高集成度和低成本使它成為市場主流。
Flash 芯片是由内部成千上萬個存儲單元組成的,每個單元存儲一個bit。具有低功耗、大容量、擦寫速度快、可整片或分扇區在系統編程(燒寫)、擦除等特點,并且可由内部嵌入的算法完成對芯片的操作,因而在各種嵌入式系統中得到了廣泛的應用。
作為一種非易失性存儲器,Flash在系統中通常用于存放 程序 代碼、常量表以及一些在系統掉電後需要保存的用戶數據等。
///插播一條:我自己在今年年初錄制了一套還比較系統的入門單片機教程和畢業設計指導,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像白色字體加我也能領取哦,記得回複一哥///
常用的Flash為8位或16位的數據寬度,編程電壓為單3.3V。主要的生産廠商為INTEL、ATMEL、AMD、HYUNDAI等。Flash 技術根據不同的應用場合也分為不同的發展方向,有擅長存儲代碼的NOR Flash和擅長存儲數據的NAND Flash。一下對NOR Flash和NAND Flash的技術分别作了相應的介紹。
2、Flash Memory主要特性
與傳統的硬盤存儲器相比,Flash Memory 具有質量輕、能耗低、體積小、抗震能力強等的優點,但也有不少局限性,主要如下:
///插播一條:我自己在今年年初錄制了一套還比較系統的入門單片機教程和畢業設計指導,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像白色字體加我也能領取哦,記得回複一哥///
.需要先擦除再寫入
Flash Memory 寫入數據時有一定的限制。它隻能将當前為 1 的比特改寫為 0,而無法将已經為 0 的比特改寫為 1,隻有在擦除的操作中,才能把整塊的比特改寫為 1。
塊擦除次數有限
Flash Memory 的每個數據塊都有擦除次數的限制(十萬到百萬次不等),擦寫超過一定次數後,該數據塊将沒法可靠存儲數據,成為壞塊。
為了最大化的延長 Flash Memory 的壽命,在軟件上須要做擦寫均衡(Wear Leveling),通過分散寫入、動态映射等伎倆均衡使用各個數據塊。同時,軟件還須要進行壞塊管理(Bad Block Management,BBM),标識壞塊,不讓壞塊參與數據存儲。(注:除了擦寫導緻的壞塊外,Flash Memory 在出産過程也會産生壞塊,即固有壞塊。)
.讀寫幹擾
由于硬件實現上的物理特性,Flash Memory 在進行讀寫操作時,有可能會導緻鄰近的其他比特發生位翻轉,導緻數據異常。這種異常可以通過重新擦除來恢複。Flash Memory 應用中通常會使用 ECC 等算法進行錯誤檢測和數據修正。
.電荷洩漏
存儲在 Flash Memory 存儲單元的電荷,如果長期沒有使用,會發生電荷洩漏,導緻數據錯誤。不過這個時間比較長,一般十年左右。此種異常是非永久性的,重新擦除可以恢複。
3、Nor Flash 和 Nand Flash
根據硬件上存儲原理的不同,Flash Memory 主要可以分為 NOR Flash 和 NAND Flash 兩類。主要的差異如下所示:
·NAND Flash 讀取速度與 NOR Flash 相近,根據接口的不同有所差異;
·NAND Flash 的寫入速度比 NOR Flash 快很多;
·NAND Flash 的擦除速度比 NOR Flash 快很多;
·NAND Flash 最大擦次數比 NOR Flash 多;
·NOR Flash 支持片上執行,可以在上面直接運行代碼;
·NOR Flash 軟件驅動比 NAND Flash 簡單;
·NOR Flash 可以随機按字節讀取數據,NAND Flash 需要按塊進行讀取。
·大容量下 NAND Flash 比 NOR Flash 成本要低很多,體積也更小;
(注:NOR Flash 和 NAND Flash 的擦除都是按塊塊進行的,執行一個擦除或者寫入操作時,NOR Flash 大約需要 5s,而 NAND Flash 通常不超過 4ms。)
1、NOR Flash
NOR Flash 依據與 CPU 端接口的不同,能夠分為 Parallel NOR Flash 和 Serial NOR Flash 兩類。
Parallel NOR Flash 能夠接入到 Host 的 SRAM/DRAM Controller 上,所存儲的内容能夠直接映射到 CPU 地址空間,不須要拷貝到 RAM 中即可被 CPU 訪問,因而支持片上執行。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通過 SPI 接口與 Host 連接。
鑒于 NOR Flash 擦寫速度慢,成本高等特性,NOR Flash 主要應用于小容量、内容更新少的場景,例如 PC 主闆 BIOS、路由器系統存儲等。
2、NAND Flash
NAND Flash 需要通過專門的 NFI(NAND Flash Interface)與 Host 端進行通信,如下圖所示:
NAND Flash 依據每個存儲單元内存儲比特個數的不同,能夠分為 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三類。其中,在一個存儲單元中,SLC 能夠存儲 1 個比特,MLC 能夠存儲 2 個比特,TLC 則能夠存儲 3 個比特。
NAND Flash 的一個存儲單元内部,是通過不同的電壓等級,來表示其所存儲的信息的。在 SLC 中,存儲單元的電壓被分為兩個等級,分别表示 0 和 1 兩個狀态,即 1 個比特。在 MLC 中,存儲單元的電壓則被分為 4 個等級,分别表示 00 01 10 11 四個狀态,即 2 個比特位。同理,在 TLC 中,存儲單元的電壓被分為 8 個等級,存儲 3 個比特信息。
NAND Flash 的單個存儲單元存儲的比特位越多,讀寫性能會越差,壽命也越短,但是成本會更低。Table 1 中,給出了特定工藝和技術水平下的成本和壽命數據。
相比于 NOR Flash,NAND Flash 寫入性能好,大容量下成本低。目前,絕大部分手機和平闆等移動設備中所使用的 eMMC 内部的 Flash Memory 都屬于 NAND Flash。PC 中的固态硬盤中也是使用 NAND Flash。
4、ROW Flash和Managed Flash
由于 Flash Memory 存在按塊擦寫、擦寫次數的限制、讀寫幹擾、電荷洩露等的局限,為了最大程度的發揮 Flash Memory 的價值,通常需要有一個特殊的軟件層次,實現壞塊管理、擦寫均衡、ECC、垃圾回收等的功能,這一個軟件層次稱為 FTL(Flash Translation Layer)。
在具體實現中,根據 FTL 所在的位置的不同,可以把 Flash Memory 分為 Raw Flash 和 Managed Flash 兩類。
1、Raw Flash
在此類應用中,在 Host 端通常有專門的 FTL 或者 Flash 文件系統來實現壞塊管理、擦寫均衡等的功能。Host 端的軟件複雜度較高,但是整體方案的成本較低,常用于價格敏感的嵌入式産品中。
通常我們所說的 NOR Flash 和 NAND Flash 都屬于這類型。
2、Managed Flash
Managed Flash 在其内部集成了 Flash Controller,用于完成擦寫均衡、壞塊管理、ECC校驗等功能。相比于直接将 Flash 接入到 Host 端,Managed Flash 屏蔽了 Flash 的物理特性,對 Host 提供規範化的接口,能夠減少 Host 端軟件的複雜度,讓 Host 端專注于上層業務,省去對 Flash 進行特殊的處理。
想要學習單片機的朋友 ,做畢業設計的同學,關注我們,回複一哥,與導師一起學習成長,共同進步,還有更多資料領取。
說了這麼多,大家記得留意下方評論第一條(或者私信我)有幹貨~
-END-
*本文系網絡轉載,版權歸原作者所有,如有侵權請聯系删除
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!