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