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