技術(shù)分享 | 從eMMC到NAND,嵌入式系統(tǒng)存儲(chǔ)的軟件優(yōu)化策略

原創(chuàng) 2025-02-22 15:16:00 存儲(chǔ)的軟件優(yōu)化

嵌入式系統(tǒng)開發(fā)領(lǐng)域,存儲(chǔ)器作為信息交互的核心載體,其技術(shù)特性直接影響著系統(tǒng)性能與穩(wěn)定性。然而,有些人在面對(duì)Linux、安卓等復(fù)雜操作系統(tǒng)環(huán)境時(shí),理解其存儲(chǔ)機(jī)制尚存局限,為突破這些技術(shù)瓶頸,飛凌嵌入式希望通過對(duì)存儲(chǔ)相關(guān)知識(shí)的分享,助力大家構(gòu)建完整的存儲(chǔ)知識(shí)體系框架。

首先,嵌入式場(chǎng)景中常用來存儲(chǔ)數(shù)據(jù)的介質(zhì)分為兩類:

·Managed NAND,以eMMC(embedded Multi-Media Card)TF卡、SD卡為主內(nèi)部帶有存儲(chǔ)管理控制器。 

·Raw NAND,以NAND為主的未帶有存儲(chǔ)管理功能,只包含簡(jiǎn)單IO邏輯控制。

上圖描述了NAND存儲(chǔ)和eMMC存儲(chǔ)的關(guān)系,NAND Controller代指核心板的CPU,NAND指實(shí)際參與存儲(chǔ)的區(qū)域,由此看出實(shí)際上eMMC和NAND的區(qū)別在于存儲(chǔ)管理控制是在eMMC內(nèi)部還是核心板的 CPU。存儲(chǔ)管理主要包括功能:壞塊管理、ECC校驗(yàn)、磨損均衡、數(shù)據(jù)保持和地址管理及映射等。

一、存儲(chǔ)的相關(guān)概念

存儲(chǔ)類型分為SLC、MLC、TLC、QLC。嵌入式常用類型低存儲(chǔ)容量一般為SLC和MLC,高存儲(chǔ)容量一般是TLC。

SLC (Single-Level Cell) 速度快,壽命長(zhǎng),價(jià)格貴,理論擦寫次數(shù)在10萬次左右。

MLC (Multi-Level Cell) 速度較快,壽命較長(zhǎng)、價(jià)格較貴,理論擦寫次數(shù)在3000-5000次。 

TLC (Trinary-Level Cell) 速度較慢,壽命較短、價(jià)格最便宜,理論擦寫次數(shù)在1000-3000次。 

QLC (Quad-Level Cell) 容量可以做的更大,成本上更低,劣勢(shì)就是P/E壽命更短。 

pSLC (pseudo SLC) 以 MLC的FLASH為基礎(chǔ),但在每個(gè)Cell中只存1 bit而不是2 bit數(shù)據(jù)。由于在同一個(gè)Cell中跟SLC一樣只存儲(chǔ)一個(gè)bit,但又不是真的 SLC,所以稱之pSLC。依上述原理,若將MLC用做pSLC,存儲(chǔ)空間將減半,壽命通??梢蕴嵘?萬次左右。

P/E (Program/Erase Count) :擦寫壽命。耐用性兩個(gè)指標(biāo)之一。

TBW (Total Bytes Written) :總寫入量。是廠商用以界定質(zhì)保期的數(shù)值,即超過了這個(gè)數(shù)值的寫入量之后,廠商就不再給予質(zhì)保服務(wù)。耐用性兩個(gè)指標(biāo)之一。 

FW (Firmware) :由于eMMC內(nèi)部控制器屬于軟件編程控制器,會(huì)需要固件,eMMC在存儲(chǔ)廠家出廠前已經(jīng)燒錄對(duì)應(yīng)固件。 

WA (Write amplification) :寫放大。表示實(shí)際寫入的物理數(shù)據(jù)量是寫入數(shù)據(jù)量的多少倍,即:閃存寫入的數(shù)據(jù)量÷主控寫入的數(shù)據(jù)量 = 寫放大。 

GC(Garbage Collection) :垃圾回收。NAND介質(zhì)的存儲(chǔ)寫入是按照頁(Page)寫入,是按照塊(Block)擦除。

二、eMMC和NAND的差異

(1)eMMC與NAND對(duì)比

(2) eMMC的相關(guān)特點(diǎn)

·eMMC使用單獨(dú)的硬件控制器對(duì)存儲(chǔ)進(jìn)行管理,相比于Linux下NAND驅(qū)動(dòng)管理可靠性更高。

·內(nèi)部固件集成多種功能:使用壽命等健康信息記錄、根據(jù)不同的場(chǎng)景動(dòng)態(tài)調(diào)整內(nèi)部存儲(chǔ)策略。 

·接口標(biāo)準(zhǔn),各廠家各容量兼容性好。 

·eMMC的存儲(chǔ)壽命普遍不如NAND壽命長(zhǎng)。相比于NAND大部分使用SLC或者M(jìn)LC,eMMC大部分是MLC或者TLC,eMMC相對(duì)于NAND單位壽命會(huì)低;但是由于eMMC的存儲(chǔ)容量一般較大,一定程度上抵消單位壽命低的劣勢(shì)。

(3)NAND的相關(guān)特點(diǎn)

·系統(tǒng)的驅(qū)動(dòng)主要是由SoC廠家及系統(tǒng)上游邏輯決定,針對(duì)不同的NAND存儲(chǔ)介質(zhì)無法發(fā)揮出最大優(yōu)勢(shì),或者存在驅(qū)動(dòng)邏輯兼容性問題。 

·NAND容易出現(xiàn)位翻轉(zhuǎn)、壞塊等情況,相比eMMC內(nèi)部管理,CPU管理需要占用較大系統(tǒng)開銷用來維護(hù)存儲(chǔ)內(nèi)容。 

·接口標(biāo)準(zhǔn)采用ONFI接口協(xié)議,但是不同廠家的NAND的頁、OOB區(qū)及塊大小等配置存在差異,如果物料停產(chǎn)需要換型會(huì)存在鏡像不兼容風(fēng)險(xiǎn)。

·NAND的布局控制是由CPU管理,對(duì)應(yīng)的分區(qū)管理和邏輯定制會(huì)有很大的靈活性,根據(jù)實(shí)際應(yīng)用場(chǎng)景制定不同的管理策略。 

·NAND單位存儲(chǔ)壽命較長(zhǎng)。 

綜上,產(chǎn)品存儲(chǔ)選型建議使用帶有管理功能的eMMC。

三、存儲(chǔ)使用建議

·eMMC:建議預(yù)留25%空間,避免頻繁觸發(fā)GC。 

·由于存儲(chǔ)的最小寫入單元是Page,最小的擦除單元是Block。以16K page舉例,如果單次寫入小于 一個(gè)Page的數(shù)據(jù),會(huì)造成寫放大。如果單次寫入數(shù)據(jù)遠(yuǎn)遠(yuǎn)小于Page的大小,寫放大會(huì)很嚴(yán)重。最終會(huì)導(dǎo)致壽命大大縮短。建議對(duì)小數(shù)據(jù)先通過DDR內(nèi)存進(jìn)行緩沖,緩沖一定數(shù)據(jù)再組合寫入。 

·使用中如果出現(xiàn)異常斷電,定期需要對(duì)文件系統(tǒng)使用工具掃描修復(fù),避免由于異常斷電數(shù)據(jù)未及時(shí) 保存導(dǎo)致文件系統(tǒng)異常。如果是頻繁異常掉電場(chǎng)景,可以增加硬件加掉電保護(hù)措施,用來保證系統(tǒng)穩(wěn)定性。

·產(chǎn)品設(shè)計(jì)初期,需要結(jié)合實(shí)際應(yīng)用場(chǎng)景存儲(chǔ)數(shù)據(jù)的頻率,為保證產(chǎn)品壽命要求,評(píng)估選擇合適的存儲(chǔ)類型和容量。

四、飛凌嵌入式賦能

(1)針對(duì)eMMC,根據(jù)對(duì)壽命及健康信息讀取分析,讓應(yīng)用掌握更全面的存儲(chǔ)信息,并作出合理的調(diào)整。

應(yīng)用可以實(shí)時(shí)監(jiān)控當(dāng)前的存儲(chǔ)壽命,用來在設(shè)備存儲(chǔ)壽命降低到自定義閾值時(shí)發(fā)送報(bào)警信號(hào)做 特定處理。 

應(yīng)用可以實(shí)時(shí)查看系統(tǒng)的健康信息,評(píng)估存儲(chǔ)的寫放大系數(shù),用來評(píng)估應(yīng)用軟件升級(jí)對(duì)存儲(chǔ)帶 來的影響,進(jìn)而估算剩余壽命。 

(2)針對(duì)NAND,根據(jù)增加手段統(tǒng)計(jì)實(shí)際NAND的擦寫、搬移、標(biāo)記等信息,給出應(yīng)用IO操作改善建議。

(3)針對(duì)所有類型存儲(chǔ),根據(jù)對(duì)終端設(shè)備不同使用場(chǎng)景特點(diǎn)采集分析,評(píng)估出更適合場(chǎng)景的應(yīng)用編寫參考。

·終端實(shí)際應(yīng)用場(chǎng)景主要集中在:日志循環(huán)存儲(chǔ)、應(yīng)用關(guān)鍵數(shù)據(jù)參數(shù)存儲(chǔ)及緩沖數(shù)據(jù)。

·日志循環(huán)存儲(chǔ)特點(diǎn):循環(huán)擦寫,寫入頻繁,讀取不頻繁。和文件系統(tǒng)同時(shí)存在,會(huì)出現(xiàn)寫頻繁 和只讀混放數(shù)據(jù),會(huì)影響整體的穩(wěn)定性。舉例:大部分eMMC的損耗平衡特性是全盤范圍,軟件上的文件系統(tǒng)分區(qū)未實(shí)現(xiàn)想要的數(shù)據(jù)隔離效果,這個(gè)其實(shí)可以在初期評(píng)估階段解決。

·關(guān)鍵數(shù)據(jù)特點(diǎn):小數(shù)據(jù)量狀態(tài)信息,比較重要,信息量不大。 

·緩沖數(shù)據(jù)特點(diǎn):順序?qū)懭?,整體擦除。

實(shí)際軟件開發(fā)過程中,根據(jù)如上數(shù)據(jù)特點(diǎn),為保證產(chǎn)品穩(wěn)定性在如下3個(gè)階段給出優(yōu)化方案

·產(chǎn)品開發(fā)前做對(duì)應(yīng)存儲(chǔ)方案選型,能夠提前評(píng)估出風(fēng)險(xiǎn)。通過實(shí)際應(yīng)用場(chǎng)景產(chǎn)品的目標(biāo)壽命, 評(píng)估出存儲(chǔ)類型、文件系統(tǒng)類型、應(yīng)用數(shù)據(jù)讀寫建議及燒錄方式等。

·產(chǎn)品開發(fā)完成前做實(shí)際存儲(chǔ)的優(yōu)化。產(chǎn)品的樣機(jī)測(cè)試階段需要對(duì)系統(tǒng)實(shí)際讀寫頻次、大小做接 口數(shù)據(jù)統(tǒng)計(jì)分析,對(duì)存儲(chǔ)做數(shù)據(jù)穩(wěn)定性分析(例:NAND存儲(chǔ)變位及壞塊分析)。通過分析給 出讀寫數(shù)據(jù)單元大小優(yōu)化建議、連續(xù)/隨機(jī)讀寫優(yōu)化建議。 

·產(chǎn)品部署前做最終的預(yù)估壽命評(píng)估。結(jié)合最終優(yōu)化效果給出實(shí)際應(yīng)用中的一個(gè)壽命預(yù)估。

除上述優(yōu)化策略外,不同eMMC、NAND廠家在滿足接口協(xié)議標(biāo)準(zhǔn)前提下提供了不同的優(yōu)化特性,部分優(yōu)化特性需要結(jié)合操作系統(tǒng)修改才能發(fā)揮出更好的效果。

五、總結(jié)

存儲(chǔ)穩(wěn)定性直接關(guān)乎到最終產(chǎn)品的穩(wěn)定性,本文圍繞eMMC和NAND的特性做了對(duì)比介紹,目的是幫助研發(fā)工程師在實(shí)際開發(fā)產(chǎn)品過程中更簡(jiǎn)單、更高效。


相關(guān)產(chǎn)品 >

  • FET3588-C核心板

    RK3588芯片系列是Rockchip推出的旗艦級(jí)工業(yè)級(jí)產(chǎn)品,采用先進(jìn)的8nm制程工藝,集成4核Cortex-A76+4核Cortex-A55架構(gòu),A76主頻高達(dá)2.4GHz,A55核主頻高達(dá)1.8GHz,能夠提供強(qiáng)大的性能支撐。飛凌FET3588-C核心板經(jīng)過了嚴(yán)苛的環(huán)境溫度測(cè)試和壓力測(cè)試,確保在高端應(yīng)用中能夠穩(wěn)定運(yùn)行。您可以通過飛凌提供的rk3588開發(fā)套件充分評(píng)估和驗(yàn)證其性能。

    了解詳情
    FET3588-C核心板
  • FET-MX9352-C核心板

    FET-MX9352-C核心板基于NXP i.MX9352處理器開發(fā)設(shè)計(jì), i.MX9352集成2個(gè)Cortex-A55核和1個(gè)Cortex-M33實(shí)時(shí)核,主頻達(dá)1.5GHz, 原生支持8路UART、2路Ethernet(含1路TSN)、2路USB 2.0、2路CAN-FD總線等常用接口。飛凌iMX93x系列在經(jīng)市場(chǎng)驗(yàn)證的 i.MX 6和i.MX 8基礎(chǔ)上進(jìn)行了升級(jí),集成NPU 可加速邊緣機(jī)器學(xué)習(xí)應(yīng)用,i.MX9352核心板體積小巧,便于嵌入到您的產(chǎn)品中。

    了解詳情
    FET-MX9352-C核心板
  • FET527N-C核心板

    全志8核 Cortex-A55 64位處理器T527,為您的AI應(yīng)用賦能。FET527N-C核心板基于全志T527系列高性能處理器開發(fā)設(shè)計(jì),集成了8個(gè)ARM Cortex-A55高性能核,同時(shí)內(nèi)置1個(gè)RISC-V核和1個(gè)DSP核。 具有2TOPS算力的NPU,為您的AI應(yīng)用賦能。核心板采用板對(duì)板連接方式,可插拔式設(shè)計(jì)便于產(chǎn)品的安裝與維護(hù)。 產(chǎn)品通過飛凌嵌入式實(shí)驗(yàn)室嚴(yán)苛的工業(yè)環(huán)境測(cè)試,為您的產(chǎn)品穩(wěn)定性保駕護(hù)航。同時(shí),F(xiàn)ET527N-C核心板具有10~15年生命周期,為您的產(chǎn)品提供持續(xù)供應(yīng)保障

    了解詳情
    FET527N-C核心板
  • FET3576-C核心板

    飛凌嵌入式RK3576核心板集成了強(qiáng)大的處理器和豐富的接口,提供出色的計(jì)算能力和擴(kuò)展性。RK3576核心板以其卓越的性能、低功耗和穩(wěn)定性,成為工業(yè)、AIoT、邊緣計(jì)算、智能移動(dòng)終端等領(lǐng)域的理想選擇。無論是數(shù)據(jù)處理還是邊緣計(jì)算,RK3576都能為項(xiàng)目提供強(qiáng)大的硬件支持。核心板推薦選擇飛凌嵌入式瑞芯微系列RK3576J業(yè)級(jí)核心板、RK3576高性能核心板。 了解詳情
    FET3576-C核心板

推薦閱讀 換一批 換一批