1. 方案簡介
Nand flash有非易失、存儲容量大、壽命長等優(yōu)點;同時具有存在壞塊、擦除次數(shù)有限、易出現(xiàn)error bit的缺點;并且具有擦除以block(塊)為單位,寫入以page(頁)為單位,讀取以sector(512 byte)為單位的特點。
基于上述原因,對Nand flash的應(yīng)用不僅要避免壞塊、均衡塊擦除次數(shù)、糾正error bit,而且需要按照其讀寫擦的特點進行應(yīng)用。若沒有一套管理軟件針對nand的特性,則對其應(yīng)用將非常困難。
FTL(Flash Transform Layer)是基于nand flash的管理算法軟件,可解決上述提出的所有問題,將Nand flash模擬成如。
▲ FTL軟件架構(gòu)圖
2. 功能描述
FTL(Flash Transform Layer)是基于nand flash的管理算法軟件,具有地址映射管理,垃圾回收,壞塊管理和磨損均衡等功能。
? 地址映射:上層應(yīng)用使用邏輯地址來訪問,F(xiàn)TL把邏輯地址映射到不同物理地址上,管理著每個邏輯地址最新的數(shù)據(jù)存放的物理位置。
? 垃圾回收:隨著數(shù)據(jù)的寫入,閃存設(shè)備上有些塊的部分數(shù)據(jù)已經(jīng)無效了,需要把有效的數(shù)據(jù)從塊上搬走,然后擦除用來接收新的數(shù)據(jù)。
? 磨損均衡:因為每個塊的P/E次數(shù)是有限的,某些塊可能被重復(fù)使用而損壞了,而有些塊數(shù)據(jù)很少被訪問,所以一直沒有進行操作過。為了避免這種情況,F(xiàn)TL加入磨損均衡的功能,大致是通過控制垃圾回收和空塊池的管理,從而平衡每個塊的使用次數(shù)。
? 壞塊管理:由于Flash本身就存在部分壞塊,在使用的過程中部分塊會變壞,所以FTL在管理的時候需要避開這些無用塊,把使用后變得不穩(wěn)定塊上的數(shù)據(jù)及時拷貝到穩(wěn)定位置。
BCH軟件實現(xiàn)error bit錯誤檢查和糾正功能,對于Nand flash本身不帶ECC “Error Correcting Code”功能的方案中是不可或缺的。BCH軟件對用戶寫入flash的數(shù)據(jù)進行編碼,當用戶讀取寫入flash的數(shù)據(jù)時,按照編碼規(guī)則對數(shù)據(jù)進行解碼,當發(fā)現(xiàn)error bit時,對error bit進行糾正,保證數(shù)據(jù)可靠性。
3. 主要特性
相對于目前存在的Nand flash管理軟件方案,F(xiàn)TL具有讀寫速度快、內(nèi)存消耗小、擦除塊磨損均衡好的特點。
A) FTL方案在相同平臺下(GD32F450+SPI2G顆粒)與YAFFS嵌入式文件系統(tǒng)分別做性能測試,測試結(jié)果如下:
B) FTL方案在相同平臺下(GD32F450+SPI2G顆粒)與YAFFS嵌入式文件系統(tǒng)分別做內(nèi)存消耗統(tǒng)計,統(tǒng)計結(jié)果如下:
C) FTL方案在相同平臺下(GD32F450+SPI2G顆粒)與YAFFS嵌入式文件系統(tǒng)分別做磨損均衡測試,統(tǒng)計結(jié)果如下:(注:block 1023為壞塊)
4. 開發(fā)資料
推薦用于功能評估的開發(fā)板型號為GD32450i-EVAL和GD32303E-EVAL,支持SPI/EXMC兩種接口nand flash。
我們可提供評估套件、用戶指南、硬件原理圖、軟件代碼等整套的開發(fā)資料,請聯(lián)系您當?shù)氐腉igaDevice銷售辦事處或GD32授權(quán)代理商獲取。
5. 典型應(yīng)用
對于一些要求存儲容量較高的使用場景,F(xiàn)TL使用尤為突出。如圖片、音頻、視頻的保存、重要信息的保存等。
工業(yè)領(lǐng)域,如電表、水表信息的存儲;汽車電子領(lǐng)域,如設(shè)備運行狀態(tài)信息存儲;消費電子領(lǐng)域,如攝像監(jiān)控視頻、圖片存儲。
審核編輯:湯梓紅
-
NAND
+關(guān)注
關(guān)注
16文章
1697瀏覽量
136535 -
FlaSh
+關(guān)注
關(guān)注
10文章
1644瀏覽量
148794 -
兆易創(chuàng)新
+關(guān)注
關(guān)注
23文章
611瀏覽量
80860 -
GD32
+關(guān)注
關(guān)注
7文章
416瀏覽量
24510
發(fā)布評論請先 登錄
相關(guān)推薦
基于GD32 MCU的電機驅(qū)動方案詳解
GD32 MCU移植
GD32和STM32有哪些不同的地方
什么是GD32
GD32系列總結(jié)
GD32和STM32的區(qū)別
![<b class='flag-5'>GD32</b>和STM32的區(qū)別](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32、GD32、ESP32的區(qū)別
GD32和AT32哪個好?
GD32與STM32兼容嗎?
STM32與GD32橫向?qū)Ρ葏^(qū)別
![STM32與<b class='flag-5'>GD32</b>橫向?qū)Ρ葏^(qū)別](https://file1.elecfans.com/web2/M00/A2/C1/wKgZomUBMLuAFpuoAAIzSaYJ0BI351.jpg)
評論