當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]為什么燒錄Nand Flash經(jīng)常失敗?為什么燒錄成功了,一部分Nand芯片貼板之后系統(tǒng)卻運(yùn)行不起來?…,等等,問了那么多為什么,那我反問一個(gè)問題:你了解Nand Flash的特

為什么燒錄Nand Flash經(jīng)常失敗?為什么燒錄成功了,一部分Nand芯片貼板之后系統(tǒng)卻運(yùn)行不起來?…,等等,問了那么多為什么,那我反問一個(gè)問題:你了解Nand Flash的特性及其燒錄關(guān)鍵點(diǎn)嗎?

 

一、Nand flash的特性

1、位翻轉(zhuǎn)

在 NAND 閃存是通過對(duì)存儲(chǔ)單元(Cell)進(jìn)行充電來完成數(shù)據(jù)存儲(chǔ)的,存儲(chǔ)單元的閾值電壓就對(duì)應(yīng)著數(shù)據(jù)值。當(dāng)讀取的時(shí)候,通過將它的閾值電壓與參考點(diǎn)對(duì)比來獲得其數(shù)據(jù)值。對(duì)SLC 而言,就只有兩種狀態(tài)和一個(gè)參考點(diǎn)。而對(duì)于2-Bits 的MLC 而言,它有4 種狀態(tài)和三個(gè)參考點(diǎn)。TLC就更多狀態(tài)和參考點(diǎn)。當(dāng)讀出的數(shù)據(jù)值與編程時(shí)數(shù)據(jù)值對(duì)應(yīng)的閾值電壓不相匹配時(shí),表明數(shù)據(jù)發(fā)生了位翻轉(zhuǎn),就帶來了可靠性問題。導(dǎo)致位翻轉(zhuǎn)的最常見原因是“編程干擾”導(dǎo)致的閾值電壓漂移。

2、存儲(chǔ)結(jié)構(gòu)

Nand 閃存由多個(gè)Block組成,每一個(gè)Block又由多個(gè)Page組成,Page的大小一般為512+16Bytes 、2K+64Bytes以及4096+128Bytes,Page是讀取和編程的基本單位,而擦除的基本單位是Block。

NAND Flash的頁,包含主區(qū)(Main Area)和備用區(qū)(Spare Area)兩個(gè)域,“主區(qū)”也常稱作數(shù)據(jù)區(qū),備用區(qū)是保留區(qū)域,一般用來標(biāo)記壞塊(bad block)和存放ECC的值,當(dāng)然有些文件系統(tǒng)使用備用區(qū)記錄擦除次數(shù)、文件組織數(shù)據(jù)等。

 

圖1.1 為頁大小為2048+64的閃存存儲(chǔ)結(jié)構(gòu)

3、壞塊及ECC

位翻轉(zhuǎn)的發(fā)生是隨機(jī)的,且比特誤碼的數(shù)量會(huì)隨著擦寫次數(shù)的增加而增加。但是只要比特誤碼的數(shù)量在ECC 能夠糾正的范圍內(nèi),數(shù)據(jù)的完整性就始終有保障。在有些點(diǎn),每頁的比特誤碼有可能很接近ECC 所能糾正的極限,NAND 的控制系統(tǒng)必須嚴(yán)防比特誤碼超過可糾錯(cuò)的范圍,否則,就可能造成數(shù)據(jù)丟失或者系統(tǒng)無法正常工作。因此,這些塊必須要標(biāo)記為壞塊。壞塊永遠(yuǎn)不應(yīng)該再用來存儲(chǔ)數(shù)據(jù)。由于壞塊的產(chǎn)生是不可避免的,NAND 制造商在對(duì)裸片測試時(shí)會(huì)選擇對(duì)某些塊進(jìn)行壞塊標(biāo)記,而不是放棄整個(gè)裸片,所以大多數(shù)NAND 在出廠時(shí)就已經(jīng)存在標(biāo)記為壞塊的塊。如果一個(gè)NAND 的塊被標(biāo)記為壞塊,那么NAND 的容量就永久性的減小了。

二、Nand系統(tǒng)裸片量產(chǎn)燒錄的關(guān)鍵點(diǎn)

由于Nand flash芯片的特性,以其作為存儲(chǔ)介質(zhì)時(shí)必須對(duì)這些特性進(jìn)行恰當(dāng)處理,這樣系統(tǒng)才能正常運(yùn)行。系統(tǒng)設(shè)定各分區(qū)數(shù)據(jù)在Nand芯片的存儲(chǔ)布局,并且在存儲(chǔ)驅(qū)動(dòng)層對(duì)Nand進(jìn)行位糾錯(cuò)、壞塊管理等處理,這些信息需要系統(tǒng)/驅(qū)動(dòng)工程師明確。

研發(fā)階段或小批量生產(chǎn)階段,常采用在板燒錄的方式,原理是將boot通過串口下載到內(nèi)存跑起來,由boot從SD卡或網(wǎng)絡(luò)將內(nèi)核鏡像、文件系統(tǒng)鏡像等數(shù)據(jù)燒錄到Nand flash芯片。

為了提高生產(chǎn)效率或別的方面考慮,會(huì)使用燒錄器對(duì)Nand flash裸片進(jìn)行量產(chǎn)燒錄,由于燒錄器廠家并不知道存儲(chǔ)驅(qū)動(dòng)層對(duì)Nand各種特性的處理方式,所以不加正確配置就進(jìn)行燒錄的話,往往出現(xiàn)以下情況:1. 燒錄失敗,經(jīng)常是校驗(yàn)通不過;2. 燒錄通過,但是部分芯片貼板之后系統(tǒng)運(yùn)行不起來,或者運(yùn)行起來某些模塊出現(xiàn)一些錯(cuò)誤與異常。這些大多不是燒錄器本身的問題,而是裸片燒錄Nand系統(tǒng)時(shí)幾個(gè)重要的關(guān)鍵點(diǎn)沒有處理好,或者說沒有和目標(biāo)系統(tǒng)相關(guān)處理一致。這些

關(guān)鍵點(diǎn)包括:

1) 壞塊處理策略

2) 分區(qū)(Partition)

3) 糾錯(cuò)碼(Error Correction Codes,ECC)

當(dāng)然,影響燒錄的還有其他因素,比如備用區(qū)的使用情況、未用好快的格式化以及動(dòng)態(tài)元數(shù)據(jù)等,但我們這里只討論上面幾個(gè)比較普遍的因素。

1、壞塊處理策略

壞塊一般是根據(jù)芯片的壞塊標(biāo)記位置進(jìn)行識(shí)別的,而壞塊處理策略定義了在遇到壞塊時(shí)算法應(yīng)該如何處理。策略算法負(fù)責(zé)將本來應(yīng)該寫到壞塊的內(nèi)容寫到其它可選的好塊中。最常用的壞塊處理策略是跳過壞塊,其他典型的還有帶BBT的跳過壞塊及預(yù)留塊區(qū)等。

跳過壞塊的處理策略是最基本最常用的壞塊替換策略。當(dāng)燒錄中遇到壞塊時(shí),算法簡單地跳過壞塊,而將數(shù)據(jù)寫入下一個(gè)好塊。它會(huì)造成物理數(shù)據(jù)和邏輯數(shù)據(jù)的位置偏移,這通常需要分區(qū)來解決這個(gè)問題。

2、分區(qū)(Partition)

采用類跳過壞塊的處理策略的Nand系統(tǒng),常常會(huì)把存儲(chǔ)區(qū)分成若干個(gè)不同的物理區(qū)域,這就是我們說的分區(qū),概念上很像電腦硬盤的分區(qū)。使用分區(qū)使得你有能力確保你的數(shù)據(jù)可以存到預(yù)先指定的物理塊區(qū)內(nèi),即便在這之前發(fā)現(xiàn)了一些壞塊。這對(duì)一些底層軟件組件比如啟動(dòng)引導(dǎo)程序和某些必須很容易定位的文件系統(tǒng)驅(qū)動(dòng)程序來說,是非常有幫助的。

當(dāng)使用跳過壞塊的替換策略時(shí),壞塊會(huì)導(dǎo)致數(shù)據(jù)順移到下一個(gè)好塊。如果設(shè)置了分區(qū),就可以指導(dǎo)燒錄器確定數(shù)據(jù)的邊界,確保數(shù)據(jù)文件不會(huì)侵占鄰近的分區(qū)。

圖2.2.1就是典型的嵌入式Linux系統(tǒng)的分區(qū)情況。

 

圖2.2.1 典型的嵌入式Linux系統(tǒng)分區(qū)情況

3、糾錯(cuò)碼(Error Correction Codes,ECC)

針對(duì)不同工藝、容量的NAND存儲(chǔ)系統(tǒng)采用適當(dāng)?shù)腅CC算法是應(yīng)該的,要保證系統(tǒng)的可靠性,甚至是必須的。ECC糾錯(cuò)碼一般存放在備用區(qū)中,對(duì)一整頁或?qū)㈨摲殖扇舾晒?jié)的數(shù)據(jù)進(jìn)行計(jì)算而得。數(shù)據(jù)燒錄之前需要準(zhǔn)備好ECC(硬件ECC除外),如果是純數(shù)據(jù)則需要使用ECC算法來生成。Nand裸片量產(chǎn)中,知道ECC算法的糾錯(cuò)能力(糾錯(cuò)位數(shù))是很重要的,因?yàn)橐WC生產(chǎn)效率,燒錄器如果采用ECC來進(jìn)行校驗(yàn)數(shù)據(jù)是不實(shí)際的,而通過簡單數(shù)據(jù)比對(duì)就可以知道數(shù)據(jù)的位翻轉(zhuǎn)個(gè)數(shù),如果翻轉(zhuǎn)個(gè)數(shù)范圍在ECC算法的糾錯(cuò)范圍之內(nèi),則認(rèn)為校驗(yàn)應(yīng)該是通過的。

三、燒錄定制

對(duì)于以上關(guān)鍵點(diǎn)或其它特殊部分,如果燒錄器軟件沒有支持的相應(yīng)的方案,需要聯(lián)系原廠進(jìn)行相關(guān)算法的定制,比如壞塊處理方案、ECC方案等。[!--empirenews.page--]

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉