凌科芯安多款加密芯片均設(shè)置了NVM區(qū),因其具備掉電不擦除的物理特性和防暴力破解等安全特性,眾多用戶會利用NVM區(qū)存儲重要數(shù)據(jù)。雖然使用方法簡單,但有一點(diǎn)技術(shù)細(xì)節(jié)容易被忽視。NVM區(qū)有10萬次擦寫壽命或10年存儲壽命,因此用戶使用時(shí)要結(jié)合自己項(xiàng)目的應(yīng)用場景和業(yè)務(wù)邏輯進(jìn)行合理分配,達(dá)到高效使用NVM區(qū),下面展開說明。 問題一:更新數(shù)據(jù)邏輯不合理 NVM區(qū)的寫操作是按頁實(shí)現(xiàn)的,應(yīng)多以頁為單位進(jìn)行寫操作。舉例:有些用戶將多組數(shù)據(jù)存儲于同一NVM頁內(nèi),但每更改其中一組數(shù)據(jù)時(shí),就對該頁執(zhí)行了一次寫操作,這其實(shí)是不提倡的。正確的做法是,盡量將該頁內(nèi)的多組數(shù)據(jù)統(tǒng)一更新,這樣能有效減少扇區(qū)擦寫次數(shù),延長NVM區(qū)壽命。 問題二:NVM區(qū)地址劃分使用不合理 同樣因?yàn)榘错摬僮鞯脑颍脩魬?yīng)將不同數(shù)據(jù)分組按頁對齊,避免數(shù)據(jù)跨頁存儲的情況發(fā)生。舉例:有些用戶將一組連續(xù)數(shù)據(jù)放在了兩頁地址交界處,當(dāng)對該組數(shù)據(jù)進(jìn)行更新寫操作時(shí),實(shí)際就對兩頁數(shù)據(jù)同時(shí)實(shí)行了寫操作,即使只寫了2字節(jié)數(shù)據(jù),也會造成1024字節(jié)區(qū)域(假設(shè)目標(biāo)加密芯片的NVM扇區(qū)大小是512字節(jié))的寫壽命減少,這種操作是不提倡的。 問題三:NVM區(qū)未做安全防護(hù)引起數(shù)據(jù)丟失 NVM區(qū)的寫操作是由三步完成的,第一步讀取目標(biāo)扇區(qū)內(nèi)原數(shù)據(jù),第二步擦除目標(biāo)扇區(qū)內(nèi)數(shù)據(jù),第三步將修改后的新數(shù)據(jù)和未做修改的原數(shù)據(jù)寫回目標(biāo)扇區(qū)。因此當(dāng)意外斷電等情況發(fā)生時(shí),加密芯片恰好執(zhí)行完寫NVM區(qū)的第二步操作,且未完成寫NVM區(qū)的第三步操作,就會造成目標(biāo)區(qū)域內(nèi)數(shù)據(jù)發(fā)生無規(guī)律錯(cuò)亂。當(dāng)然也有解決辦法,下期分解。 |