命:頁隔離技術(shù)如何讓“壞塊”重獲新生)
1. 引言NAND 的壽命焦慮與壞塊現(xiàn)實NAND Flash 是今天幾乎所有電子設(shè)備存儲的基礎(chǔ)。從手機里的 UFS、電腦里的 SSD到數(shù)據(jù)中心中的企業(yè)級盤再到工業(yè)設(shè)備中的 eMMCNAND 憑借高密度、低功耗和非易失性成為主流選擇。然而NAND 有一個無法回避的問題它會壞。更準(zhǔn)確地說NAND 從出廠那一刻起就帶著壞塊在后續(xù)使用中還會不斷產(chǎn)生新的壞塊。壞塊不僅意味著容量損失還可能帶來數(shù)據(jù)錯誤、讀寫性能抖動甚至整盤失效。因此如何管理壞塊一直是 NAND 存儲系統(tǒng)的核心課題。傳統(tǒng)思路是“塊級跳過”一旦一個物理塊被判定為壞塊就把整個塊從可用資源池中剔除用備用塊替換。這種策略簡單可靠但它有一個明顯的浪費NAND 的擦除單位是塊而讀寫單位是頁。一個塊通常包含幾十到幾百個頁。很多時候真正出問題的只是塊內(nèi)少數(shù)幾個頁其余頁仍然保持良好的擦寫特性和數(shù)據(jù)保持能力。把整個塊直接丟棄等于因為幾頁的缺陷放棄了數(shù)百頁仍然可用的容量。頁隔離技術(shù)正是在這個背景下被提出和逐步推廣的。它的核心思想是把壞資源管理的粒度從“塊”下沉到“頁”。當(dāng)一個塊中的部分頁出現(xiàn)不可糾正錯誤、寫入失敗或讀干擾敏感時不再簡單地把整個塊標(biāo)記為壞塊而是只隔離這些問題頁把同一塊內(nèi)仍然健康的頁繼續(xù)納入地址映射和磨損均衡系統(tǒng)。這樣一來原本會被整塊淘汰的 NAND 容量得以保留設(shè)備的總可寫數(shù)據(jù)量和使用壽命也能得到提升。本文將以約兩萬字的篇幅系統(tǒng)性地拆解頁隔離技術(shù)。內(nèi)容覆蓋 NAND 基礎(chǔ)、壞塊產(chǎn)生機理、傳統(tǒng)壞塊管理、頁隔離原理、FTL 實現(xiàn)、代碼級示例、工程挑戰(zhàn)、工業(yè)實踐與未來發(fā)展趨勢。讀完本文你將理解頁隔離為什么能夠為 NAND“續(xù)命”它如何與 ECC、垃圾回收、磨損均衡協(xié)同工作以及在實際產(chǎn)品中落地頁隔離需要注意哪些關(guān)鍵問題。2. NAND Flash 基礎(chǔ)為什么壞塊不可避免2.1 存儲單元、頁與塊的結(jié)構(gòu)NAND Flash 的內(nèi)部是一個層次化結(jié)構(gòu)一個芯片包含多個晶圓平面一個平面包含多個塊一個塊包含多個頁一個頁又包含數(shù)據(jù)區(qū)和備用區(qū)。以常見的浮柵晶體管為基礎(chǔ)每個存儲單元通過捕獲不同數(shù)量的電子來表示不同電平。SLC 每個單元存 1 bitMLC 存 2 bitTLC 存 3 bitQLC 存 4 bit。電平數(shù)量越多單元對外部條件越敏感出錯的概率也越高。頁是 NAND 的最小讀寫單位。早期的 SLC NAND 頁大小可能是 2 KB而今天的 TLC 和 QLC NAND 頁大小常常是 16 KB。塊是最小擦除單位一個塊通常包含 64、128、256 或更多頁。例如一個 16 KB 頁、256 頁的塊其容量約為 4 MB。由于擦除只能以塊為單位進行而寫入和讀取以頁為單位這種“寫入單位小、擦除單位大”的特性深刻影響了壞塊管理和頁隔離策略。2.2 寫入與擦除機制NAND 寫入操作通常被稱為編程。編程只能把存儲單元的電位從一個默認(rèn)狀態(tài)改變到目標(biāo)狀態(tài)。對于已經(jīng)寫入的單元不能直接覆蓋寫入新數(shù)據(jù)必須先擦除整個塊讓塊內(nèi)所有單元回到默認(rèn)狀態(tài)才能重新編程。這個特性帶來了寫放大和垃圾回收問題也直接影響了壞塊判斷一次失敗的寫入或一次失敗的擦除都會成為壞塊或壞頁檢測的重要信號。在寫入時控制器通過字線和位線對目標(biāo)頁施加電壓把電荷注入浮柵。在讀取時控制器施加參考電壓根據(jù)導(dǎo)通狀態(tài)判斷單元里的數(shù)據(jù)。隨著擦寫次數(shù)增加浮柵氧化層會逐漸退化電荷逃逸或捕獲更加明顯導(dǎo)致單元的電平分布偏移最終出現(xiàn)讀出錯誤。頁隔離需要理解這些物理退化過程因為不同頁的退化速度并不相同這正是“一個塊內(nèi)只有部分頁損壞”現(xiàn)象的物理基礎(chǔ)。2.3 壞塊的產(chǎn)生機理NAND 壞塊一般分為兩類出廠壞塊和新增壞塊。出廠壞塊是芯片制造過程中由于工藝缺陷產(chǎn)生的壞塊廠商會在出廠時標(biāo)記。新增壞塊則是在使用過程中由于擦寫磨損、氧化層擊穿、電荷泄漏、讀干擾、寫干擾等原因逐漸產(chǎn)生的。即使是同一個塊內(nèi)不同頁也可能因為物理位置、制造偏差和操作歷史不同表現(xiàn)出不同的可靠性。塊級壞塊的產(chǎn)生往往是一個漸進過程。最初可能只是某個頁出現(xiàn)少量比特錯誤ECC 還能糾正隨著錯誤數(shù)增加超過 ECC 能力后該頁讀取失敗。如果此時直接判定整塊為壞塊就會造成不必要的容量損失。而頁隔離技術(shù)正是希望在這種“局部損傷”階段介入只隔離已經(jīng)不可靠的頁保留其余頁繼續(xù)服務(wù)。3. 傳統(tǒng)壞塊管理壞塊表與跳過策略3.1 出廠壞塊與新增壞塊在傳統(tǒng) NAND 存儲系統(tǒng)中壞塊管理是 FTL 或控制器固件的基本功能。廠商會在 NAND 出廠時對每個塊進行測試把壞塊信息寫入塊內(nèi)備用區(qū)的特定字節(jié)??刂破魃想姾髵呙杷袎K讀取這些標(biāo)記建立出廠壞塊表。對于新增壞塊則在讀寫或擦除過程中檢測到失敗后把該塊加入壞塊表。出廠壞塊意味著這些塊從一開始就不能保證滿足規(guī)格書要求通常只能被永久剔除。新增壞塊則是動態(tài)發(fā)生的一般發(fā)生在擦除操作之后或?qū)懭氩僮髦蟆鹘y(tǒng)方法會把這些新增壞塊同樣移入壞塊表使用備用塊替換。對于消費級存儲廠商會預(yù)留一定比例的備用塊例如 2% 到 5%以保證壞塊出現(xiàn)時仍有容量可以替換。3.2 壞塊表維護壞塊表的存儲位置通常有兩級一部分存儲在 NAND 的保留區(qū)或系統(tǒng)區(qū)另一部分加載在控制器內(nèi)存中。每次上電時控制器會掃描 NAND 中的壞塊標(biāo)記重建內(nèi)存中的壞塊表。由于 NAND 本身存在不可靠性壞塊表通常需要多次備份并配合 CRC 或其他校驗機制防止壞塊表自身損壞導(dǎo)致系統(tǒng)無法啟動。塊級壞塊表的優(yōu)點是實現(xiàn)簡單、查詢速度快。它通常以塊號索引每一位或每一字節(jié)表示一個塊的狀態(tài)。在地址分配和垃圾回收時控制器只需查詢這個表跳過被標(biāo)記為壞的塊。但它的缺點是粒度太粗一個塊中只要有一個頁被判定為不可用整個塊都會被跳過哪怕其余頁完全健康。3.3 跳過壞塊策略的局限塊級跳過策略在早期 NAND 中已經(jīng)足夠使用因為當(dāng)時 SLC 可靠性較高壞塊產(chǎn)生相對緩慢整塊損壞的概率較高局部頁損壞的情況較少。但隨著 NAND 制程不斷縮小單元存儲比特數(shù)增加局部頁損傷變得越來越普遍。很多塊的損壞不是整體突然失效而是某些頁由于制造偏差、讀干擾或編程干擾提前退化。如果繼續(xù)使用塊級跳過策略容量損失會隨著局部損傷比例的升高而放大。例如一個 256 頁的塊即使只有 1 頁不可糾正塊級策略也會丟掉全部 256 頁。對于容量敏感的應(yīng)用這種浪費不可接受。此外塊級跳過還會加快備用塊消耗縮短整盤壽命因為備用塊并不參與地址映射它只是在壞塊出現(xiàn)時被激活塊級隔離會更快耗盡這些資源。4. 頁隔離技術(shù)從“跳過塊”到“拯救頁”4.1 什么是頁隔離頁隔離技術(shù)的定義可以概括為在 NAND 存儲系統(tǒng)中將資源最小管理單元從物理塊進一步細(xì)化為物理頁當(dāng)某個物理頁被檢測為不可靠時只將該頁或相關(guān)頁組從可用資源池中隔離而該頁所在的物理塊中其余健康頁仍然參與正常的數(shù)據(jù)存儲、垃圾回收和磨損均衡。這里的“隔離”并不意味著物理上切斷這些頁而是指邏輯上不再將用戶數(shù)據(jù)映射到這些頁上。隔離信息需要記錄在 FTL 的元數(shù)據(jù)中通常以頁級位圖、頁狀態(tài)表或壞頁鏈表的形式存在??刂破髟诜峙湮锢淼刂?、進行垃圾回收和磨損均衡時會查詢這些頁級信息避免使用被隔離的頁。4.2 核心思想粒度下沉頁隔離的核心思想是提高管理粒度讓系統(tǒng)能夠更精細(xì)地響應(yīng) NAND 的局部退化。傳統(tǒng)塊級管理把塊作為最小健康單元而頁隔離把頁作為最小健康單元。這個變化看似簡單但它對 FTL 的地址映射、元數(shù)據(jù)組織、垃圾回收和磨損均衡都提出了新的要求。從資源利用角度看頁隔離相當(dāng)于把“壞塊”拆解為“壞頁集合”把壞塊中的好頁重新納入系統(tǒng)。例如一個含有 3 個壞頁的 256 頁塊頁隔離后仍可貢獻 253 個可用頁。相比整塊丟棄容量保留率提高了約 98.8%。這種改善在壞塊比例越高的設(shè)備上越明顯。4.3 頁隔離與壞塊管理的根本差異判斷粒度不同壞塊管理以塊為單位頁隔離以頁為單位。容量損失不同壞塊管理可能因為少數(shù)壞頁丟棄整塊頁隔離只丟棄壞頁本身。元數(shù)據(jù)復(fù)雜度不同壞塊管理維護塊級表頁隔離需要維護頁級表或等效結(jié)構(gòu)。對磨損均衡的影響不同壞塊管理直接跳過整塊頁隔離要求磨損均衡算法考慮塊內(nèi)可用頁的差異。適用階段不同壞塊管理仍然是基礎(chǔ)防線頁隔離是在壞塊管理的框架下進一步細(xì)化的補償機制。需要強調(diào)的是頁隔離并不能完全替代塊級壞塊管理。如果一個塊的大部分頁已經(jīng)失效或者擦除操作本身已經(jīng)無法完成那么這樣的塊仍然應(yīng)該被整體隔離。頁隔離主要應(yīng)對的是“塊內(nèi)局部頁損傷”場景屬于對傳統(tǒng)壞塊管理的增強而不是替換。5. 頁隔離技術(shù)原理拆解5.1 壞頁檢測與確認(rèn)頁隔離的第一步是準(zhǔn)確判斷哪些頁出現(xiàn)問題。常見檢測信號包括寫入失敗、讀取失敗、ECC 錯誤數(shù)超過閾值、寫后讀校驗失敗、擦寫循環(huán)次數(shù)超過安全上限、讀干擾導(dǎo)致的錯誤率升高等??刂破鞑荒軆H憑一次偶發(fā)錯誤就立即隔離頁因為瞬時環(huán)境因素、電壓波動或隨機錯誤都可能造成偶發(fā)失敗。一般會采用“確認(rèn)機制”來降低誤判。例如某頁第一次讀取出現(xiàn)不可糾正錯誤可以先保存該頁數(shù)據(jù)到其他位置然后對該頁進行一次擦除和寫入測試。如果測試通過說明該頁可能只是暫時性錯誤可以繼續(xù)觀察如果測試再次失敗或在后續(xù)操作中連續(xù)出現(xiàn)錯誤則將其標(biāo)記為壞頁并加入隔離表。這種多次確認(rèn)策略可以在可靠性和容量保留率之間取得平衡。5.2 頁級映射與重映射頁隔離需要記錄哪些物理頁已經(jīng)不能使用。最直接的方法是維護一張頁級狀態(tài)表。對于大容量 NAND一個設(shè)備可能有數(shù)十億個頁如果為每個頁都保存一個字節(jié)狀態(tài)元數(shù)據(jù)開銷會非常大。因此實際系統(tǒng)通常采用壓縮結(jié)構(gòu)例如位圖、范圍表、稀疏樹或差分記錄。只有被隔離的頁才需要特殊記錄健康頁默認(rèn)可用。當(dāng)?shù)刂酚成湫枰峙湮锢眄摃r它會查詢這個頁級狀態(tài)表跳過被隔離的頁。如果某個邏輯頁原本映射到某個物理頁而該物理頁后來被判定為壞頁控制器需要把該邏輯頁重新映射到另一個健康物理頁并更新映射表。這個過程與傳統(tǒng)的壞塊替換類似但粒度更小。5.3 有效頁分類與隔離策略并不是所有壞頁都適合立即隔離。有些頁的錯誤是暫時的比如由讀干擾引起的錯誤有些頁則是永久損傷。為了更靈活地利用容量頁隔離策略通常會把壞頁分成不同等級。例如只讀壞頁可以繼續(xù)作為只讀存儲使用寫入壞頁則禁止再次編程但仍可讀取已有數(shù)據(jù)完全壞頁則既不能讀也不能寫。對于只讀壞頁控制器可以保留其中的數(shù)據(jù)但不允許后續(xù)寫入。在一些場景下這些頁仍然可以被讀取直到不需要這些數(shù)據(jù)為止。對于寫入壞頁控制器需要盡快把數(shù)據(jù)遷移到健康頁然后標(biāo)記為不可用。對于完全壞頁則立即隔離。分類管理進一步提高了資源利用率但也增加了策略復(fù)雜度。5.4 與 ECC、RAID 的協(xié)同頁隔離不是孤立存在的它必須與 ECC 糾錯、RAID 校驗等可靠性機制協(xié)同。ECC 負(fù)責(zé)在頁內(nèi)糾正比特錯誤當(dāng)錯誤數(shù)低于閾值時頁仍然可以正常使用。只有當(dāng)錯誤數(shù)接近或超過 ECC 能力時才考慮隔離。RAID 層面則可以把壞頁數(shù)據(jù)從冗余條帶中恢復(fù)出來減輕單頁失效對數(shù)據(jù)可用性的影響。一個典型的協(xié)同流程是讀取數(shù)據(jù)時先由 ECC 糾錯如果 ECC 失敗嘗試 RAID 恢復(fù)如果 RAID 恢復(fù)成功將恢復(fù)后的數(shù)據(jù)寫入新的物理頁并把原壞頁標(biāo)記為隔離。這樣既能保護數(shù)據(jù)又能及時去除不可靠頁。頁隔離的閾值設(shè)置通常會考慮 ECC 余量確保在使用過程中不會因為輕微錯誤就頻繁隔離導(dǎo)致寫放大上升。6. FTL 中的頁隔離實現(xiàn)6.1 邏輯地址到物理地址映射FTL 的核心任務(wù)是維護邏輯地址和物理地址之間的映射關(guān)系。早期 FTL 使用塊級映射或頁級映射現(xiàn)代 SSD 普遍采用頁級映射因為頁級映射能更好地支持隨機寫和垃圾回收。頁隔離與頁級映射天然契合頁級映射已經(jīng)以頁為粒度管理地址只需要在頁狀態(tài)中添加“壞頁”標(biāo)記即可。在頁級映射表之外FTL 還需要維護一個“反查表”或“有效頁計數(shù)表”用于垃圾回收時快速判斷某個物理頁上是否還有有效數(shù)據(jù)。頁隔離會改變物理塊中可用頁的數(shù)量因此反查表和有效頁計數(shù)也必須正確反映被隔離頁的狀態(tài)。否則垃圾回收可能錯誤地搬移已經(jīng)隔離的壞頁導(dǎo)致數(shù)據(jù)丟失或重復(fù)失效。6.2 壞頁位圖與元數(shù)據(jù)頁隔離的元數(shù)據(jù)主要包括壞頁位圖和壞頁狀態(tài)表。壞頁位圖記錄每個物理頁是否被隔離通??梢园磯K組織每個塊附帶一個位圖。例如一個 256 頁的塊使用 32 字節(jié)即可表示所有頁的狀態(tài)。這種按塊附帶的壞頁位圖可以存儲在塊的備用區(qū)或?qū)iT的元數(shù)據(jù)區(qū)。由于元數(shù)據(jù)本身也會損壞壞頁位圖需要有校驗和備份??刂破骺梢栽?NAND 中為每個塊保存壞頁位圖并在系統(tǒng)區(qū)維護一份匯總。上電時控制器先加載匯總信息再逐個塊校驗位圖。如果某個塊的位圖損壞可以從冗余備份中恢復(fù)或者重新掃描該塊盡量恢復(fù)準(zhǔn)確狀態(tài)。元數(shù)據(jù)一致性是頁隔離工程化中的關(guān)鍵難點。6.3 垃圾回收與磨損均衡聯(lián)動垃圾回收的目標(biāo)是搬移有效頁、擦除舊塊以回收空間。頁隔離改變了塊的頁級健康狀態(tài)因此垃圾回收在選擇源塊時需要考慮塊內(nèi)壞頁數(shù)量。一個壞頁較多的塊即使有效頁較少也不一定適合立即回收因為擦除后能獲得的可用頁數(shù)量有限。如果繼續(xù)保留該塊反而可能浪費擦除循環(huán)。磨損均衡算法也需要識別塊內(nèi)可用頁的差異。傳統(tǒng)磨損均衡以塊為單位平衡擦寫次數(shù)頁隔離后同一設(shè)備中不同塊的實際可用容量可能不同。磨損均衡策略需要綜合考慮塊的擦寫次數(shù)、壞頁比例和可用頁數(shù)量避免過度使用壞頁較少的健康塊同時也不能頻繁擦除壞頁較多的低效塊。常見的做法是給壞頁較多的塊設(shè)置更高的回收優(yōu)先級或者限制其參與冷熱數(shù)據(jù)分配。7. 典型頁隔離算法流程7.1 讀取失敗判定流程當(dāng)主機讀取一個邏輯頁時FTL 找到對應(yīng)物理頁并發(fā)起讀取。NAND 控制器先進行 ECC 校驗。如果錯誤數(shù)在可糾正范圍內(nèi)則正常返回數(shù)據(jù)并記錄錯誤統(tǒng)計信息。如果錯誤數(shù)接近閾值但尚未失敗可以標(biāo)記該頁為“觀察頁”后續(xù)讀取繼續(xù)監(jiān)控。如果 ECC 無法糾正則進入壞頁判定流程先嘗試 RAID 恢復(fù)或讀重試機制若仍失敗則把該物理頁標(biāo)記為壞頁候選并觸發(fā)數(shù)據(jù)遷移和隔離流程。讀重試機制在判定壞頁之前非常重要。NAND 讀操作可能受溫度、讀干擾、參考電壓漂移等因素影響單次讀取失敗不代表該頁永久損壞。常見做法包括調(diào)整讀參考電壓、多次采樣和軟判決讀取。只有在多種恢復(fù)手段都失效后才應(yīng)認(rèn)定該頁已不可靠。這樣可以避免因為環(huán)境抖動而錯誤隔離大量頁。7.2 寫入失敗后的頁隔離動作寫入失敗是另一種典型觸發(fā)條件。當(dāng)控制器對某個物理頁編程后狀態(tài)寄存器返回失敗或者寫后讀校驗發(fā)現(xiàn)錯誤超過閾值就需要處理該寫失敗頁。首先控制器不能把尚未確認(rèn)寫入的數(shù)據(jù)丟棄它需要檢查該物理頁是否部分寫入。如果數(shù)據(jù)部分寫入且可恢復(fù)應(yīng)先把數(shù)據(jù)讀出并保存然后重新分配一個健康物理頁寫入相同數(shù)據(jù)。寫入失敗的物理頁通常需要被隔離因為后續(xù)再次寫入失敗的概率較高。但對于剛剛發(fā)生過一次寫失敗的頁有時也可以通過擦除后重試來確認(rèn)。若擦除重試后寫入成功且錯誤率正??梢远唐谟^察若連續(xù)兩次寫入失敗則直接隔離。不同產(chǎn)品會根據(jù)對容量和可靠性的權(quán)衡設(shè)置不同策略。7.3 上電恢復(fù)與崩潰一致性頁隔離元數(shù)據(jù)必須在掉電或異常斷電后仍然可靠。通常做法是在每次壞頁隔離操作后同步更新 NAND 中保存的壞頁位圖和內(nèi)存中的映射表并使用日志或事務(wù)機制保證一致性。如果斷電發(fā)生在元數(shù)據(jù)更新過程中可能會出現(xiàn)內(nèi)存與 NAND 不一致的情況。解決崩潰一致性問題的方法包括使用兩階段提交先記錄壞頁日志再更新壞頁位圖上電時先回放日志恢復(fù)未完成的隔離操作或者在掃描時重新執(zhí)行壞頁檢測用檢測結(jié)果覆蓋可能的元數(shù)據(jù)不一致。由于壞頁隔離通常較為稀疏日志量不大因此事務(wù)化處理的開銷可控。8. 代碼級實現(xiàn)示例8.1 壞頁管理數(shù)據(jù)結(jié)構(gòu)下面給出一個 C 風(fēng)格的頁級壞頁管理數(shù)據(jù)結(jié)構(gòu)示例。代碼中省略了具體硬件操作細(xì)節(jié)只說明 FTL 層如何組織壞頁信息。為了避免實際代碼演示過于冗長這里采用偽代碼與真實 C 語法相結(jié)合的寫法重點展示數(shù)據(jù)結(jié)構(gòu)和隔離邏輯。#include stdint.h #include stdbool.h #define PAGE_PER_BLOCK 256 #define BLOCK_COUNT 4096 typedef struct { uint32_t block_id; uint32_t page_id; uint8_t status; /* 0: health, 1: suspect, 2: isolated */ uint32_t program_count; uint32_t read_error_count; } bad_page_entry; typedef struct { uint8_t page_status[PAGE_PER_BLOCK]; /* one byte per page */ } block_page_status; block_page_status g_page_status[BLOCK_COUNT]; bool is_page_isolated(uint32_t block_id, uint32_t page_id) { if (block_id BLOCK_COUNT || page_id PAGE_PER_BLOCK) { return true; /* out-of-range pages are treated as unusable */ } return g_page_status[block_id].page_status[page_id] 2; }這個示例使用一個二維數(shù)組保存每個塊的頁狀態(tài)。每個頁用 1 字節(jié)狀態(tài) 0 表示健康1 表示待觀察2 表示已隔離。實際產(chǎn)品中為了節(jié)省內(nèi)存通常會使用位圖而不是字節(jié)數(shù)組但在教學(xué)示例中字節(jié)數(shù)組更清晰。8.2 頁隔離核心函數(shù)void isolate_bad_page(uint32_t block_id, uint32_t page_id) { if (block_id BLOCK_COUNT || page_id PAGE_PER_BLOCK) { return; } g_page_status[block_id].page_status[page_id] 2; /* Persist page status to NAND metadata or journal */ persist_page_status(block_id, page_id, 2); /* If data on this page is still needed, migrate it to a spare page */ if (page_has_valid_data(block_id, page_id)) { uint32_t new_block; uint32_t new_page; if (allocate_healthy_page(new_block, new_page)) { migrate_page_data(block_id, page_id, new_block, new_page); update_logical_to_physical_map(block_id, page_id, new_block, new_page); } } }這段代碼演示了隔離壞頁的基本流程先更新內(nèi)存狀態(tài)再持久化到 NAND 元數(shù)據(jù)然后檢查并遷移有效數(shù)據(jù)最后更新映射表。函數(shù)中的new_block和new_page使用了地址運算符在 HTML 中已經(jīng)轉(zhuǎn)義為amp;。8.3 重映射與地址轉(zhuǎn)換示例地址重映射時分配器必須跳過已經(jīng)隔離的頁。下面的函數(shù)在指定塊內(nèi)尋找一個可用頁它遍歷塊內(nèi)所有頁跳過狀態(tài)為隔離的頁。真實產(chǎn)品還會考慮頁的類型和寫入順序限制。bool find_healthy_page_in_block(uint32_t block_id, uint32_t *out_page) { for (uint32_t page 0; page PAGE_PER_BLOCK; page) { if (g_page_status[block_id].page_status[page] ! 2) { *out_page page; return true; } } return false; }上面的循環(huán)中page PAGE_PER_BLOCK的尖括號在 HTML 中寫成了lt;。這是代碼塊中必須遵守的轉(zhuǎn)義規(guī)則最終渲染時會顯示為正常的 C 代碼。9. 實測效果與數(shù)據(jù)對比9.1 容量保留率對比為了直觀展示頁隔離的價值我們可以做一個簡化估算。假設(shè)一個設(shè)備有 4096 個塊每塊 256 頁。如果其中 5% 的塊由于局部頁損傷被傳統(tǒng)塊級策略整體剔除那么可用塊數(shù)減少到 3891 塊容量保留率約為 95%。如果這些被剔除的塊平均每塊只有 8 個壞頁其余 248 頁仍然健康那么頁隔離后可用頁數(shù)約為3891×256 205×248 996096 50840 1046936 頁而原本總頁數(shù)為 1048576 頁。容量保留率僅損失約 0.16%。這個簡化計算說明在塊損傷局部化比較明顯的情況下頁隔離可以顯著提高容量保留率。尤其是對于已經(jīng)進入壽命后期的設(shè)備局部頁損傷比例更高頁隔離對延長設(shè)備有效壽命的貢獻更大。當(dāng)然真實產(chǎn)品還需要扣除元數(shù)據(jù)空間和多級備用頁但總體趨勢不會改變。9.2 壽命提升評估壽命提升的評估通常使用總可寫數(shù)據(jù)量或按寫入量計算的耐久度指標(biāo)。頁隔離通過保留更多可用頁讓設(shè)備在相同磨損條件下可以寫入更多用戶數(shù)據(jù)。例如一個原本 1 TB 的 SSD如果塊級策略因局部壞頁損失了 3% 的可用容量而頁隔離只損失 0.3%那么在容量耗盡前用戶可寫入的數(shù)據(jù)量會相應(yīng)增加。實際壽命提升還取決于壞頁產(chǎn)生速率和隔離觸發(fā)閾值。如果頁隔離閾值設(shè)置過松很多只是輕微錯誤的頁被隔離短期容量損失增加如果閾值過嚴(yán)部分壞頁繼續(xù)使用可能引發(fā)更頻繁的數(shù)據(jù)遷移和讀重試反而縮短壽命。因此頁隔離策略需要在真實工作負(fù)載下通過大量測試調(diào)優(yōu)不能只看靜態(tài)容量。9.3 讀寫性能影響頁隔離對讀寫性能的影響可以分為幾個方面。首先壞頁檢查會增加地址分配和垃圾回收的元數(shù)據(jù)訪問開銷。如果元數(shù)據(jù)設(shè)計合理這部分開銷通常在微秒級對整體性能影響很小。其次壞頁遷移會造成額外的寫放大。每次隔離一個寫有有效數(shù)據(jù)的壞頁都需要一次讀舊頁和一次寫新頁增加了設(shè)備的總寫量。讀路徑上的影響主要來自讀重試和 RAID 恢復(fù)。只有在真正遇到壞頁觸發(fā)錯誤時讀延遲才會明顯升高。對于大多數(shù)健康頁讀路徑不增加額外負(fù)擔(dān)??傮w來看頁隔離帶來的性能代價遠(yuǎn)小于它換來的容量和壽命收益尤其在企業(yè)級場景中數(shù)據(jù)可用性比峰值性能更受重視。10. 頁隔離技術(shù)的工程挑戰(zhàn)10.1 映射表膨脹頁級狀態(tài)管理最大的挑戰(zhàn)是元數(shù)據(jù)規(guī)模。一個 1 TB SSD 可能擁有數(shù)億個物理頁。如果每個頁用 1 字節(jié)狀態(tài)就會消耗數(shù)百 MB 內(nèi)存這在嵌入式控制器中難以接受。即便使用位圖也需要數(shù)十 MB 內(nèi)存。因此實際產(chǎn)品需要對壞頁表進行壓縮。常用方法包括只記錄壞頁而不是全量狀態(tài)、使用范圍表、使用按塊局部位圖、使用稀疏樹結(jié)構(gòu)以及把部分元數(shù)據(jù)放在 NAND 中按需加載。壓縮帶來的問題是查詢復(fù)雜度增加。地址分配器需要快速判斷一個頁是否可用如果壞頁表被壓縮為樹結(jié)構(gòu)查詢時間復(fù)雜度可能變成對數(shù)級對隨機寫性能產(chǎn)生影響。工程上需要權(quán)衡內(nèi)存占用和查詢延遲通常會把最常訪問的熱點壞頁表緩存到 SRAM 或 DRAM 中。10.2 垃圾回收復(fù)雜度頁隔離使垃圾回收變得更復(fù)雜。傳統(tǒng)垃圾回收以塊為單位統(tǒng)計有效頁數(shù)量塊內(nèi)總頁數(shù)是固定的。頁隔離后塊內(nèi)可用頁數(shù)量因壞頁而減少有效頁占比的計算需要同時考慮有效頁和壞頁。垃圾回收的目標(biāo)是選擇“收益/成本比”最高的塊壞頁比例高的塊回收后得到的可用空間少因此應(yīng)該相應(yīng)降低回收優(yōu)先級。另一個復(fù)雜點在于垃圾回收搬移數(shù)據(jù)時不能把數(shù)據(jù)搬到已經(jīng)被隔離的壞頁上。分配器需要與壞頁表聯(lián)動確保搬移目標(biāo)頁健康。如果源塊中存在壞頁搬移時直接跳過這些壞頁即可但需要保證目標(biāo)塊中的頁順序滿足 NAND 的編程約束。對于多平面 NAND還要考慮跨平面操作的壞頁影響這會進一步增加調(diào)度難度。10.3 磨損均衡干擾磨損均衡與頁隔離存在相互影響。頁隔離會改變某個塊的實際可用頁數(shù)量而磨損均衡又傾向于讓所有塊保持相近的擦寫次數(shù)。一個壞頁較多的塊如果擦寫次數(shù)較低磨損均衡可能仍然傾向使用它以平衡磨損但它的可用容量較少頻繁使用會導(dǎo)致更高的擦除開銷。反之過度保護壞頁較多的塊又會導(dǎo)致健康塊磨損過快。常見的解決方案是在磨損均衡算法中引入“有效磨損”概念將壞頁比例作為權(quán)重。例如把壞頁比例高的塊視為已經(jīng)消耗了部分壽命在擦寫次數(shù)比較時進行折算。這樣既不會過度使用壞塊也不會讓健康塊提前磨損。具體折算系數(shù)需要根據(jù) NAND 制程和廠商測試數(shù)據(jù)確定。10.4 跨頁干擾與讀干擾NAND 單元之間存在編程干擾和讀干擾。一個頁被反復(fù)讀取可能影響相鄰頁的電平分布一個頁被編程時也可能干擾同塊內(nèi)其他頁。頁隔離如果只隔離直接壞頁而不考慮這些干擾傳播可能會低估風(fēng)險。例如某個頁的相鄰頁發(fā)生嚴(yán)重讀干擾即使該頁當(dāng)前健康未來也可能快速退化。因此先進的頁隔離方案會引入“鄰域隔離”策略當(dāng)一個頁被判定為壞頁時把它的直接相鄰頁標(biāo)記為高風(fēng)險頁提前進行監(jiān)測或遷移。這種策略可以降低錯誤擴散風(fēng)險但也會增加隔離頁數(shù)量。是否需要鄰域隔離取決于 NAND 的工藝特性和應(yīng)用對可靠性的要求。3D NAND 的層疊結(jié)構(gòu)使相鄰頁關(guān)系更加復(fù)雜需要更精細(xì)的鄰域模型。11. 與相關(guān)技術(shù)的關(guān)系11.1 ECC 糾錯ECC 是 NAND 存儲系統(tǒng)的基礎(chǔ)糾錯技術(shù)。常見的 ECC 包括 BCH 碼和 LDPC 碼?,F(xiàn)代 TLC 和 QLC NAND 普遍采用 LDPC 碼它通過軟判決讀取獲得更高的糾錯能力。頁隔離的觸發(fā)條件通常與 ECC 能力直接相關(guān)當(dāng) LDPC 無法糾正某個頁時該頁才被認(rèn)為是壞頁候選。在設(shè)置頁隔離閾值時需要了解 ECC 的余量。如果某頁的錯誤數(shù)已經(jīng)接近 LDPC 的極限即使尚未失敗也應(yīng)該提前隔離因為后續(xù)錯誤增長可能導(dǎo)致不可糾正。為此控制器可以記錄每次讀取的錯誤數(shù)使用滑動窗口判斷錯誤增長趨勢提前遷移高風(fēng)險頁。這種預(yù)測性隔離比單純等待 ECC 失敗更加主動。11.2 壞塊跳過頁隔離與壞塊跳過不是競爭關(guān)系而是互補關(guān)系。壞塊跳過仍然是處理整塊失效的第一層機制當(dāng)擦除失敗或整塊嚴(yán)重退化時必須整塊剔除。頁隔離則是在塊級機制保持塊可用但塊內(nèi)出現(xiàn)局部壞頁時進行更細(xì)粒度的補救。一個合理的存儲系統(tǒng)通常先做塊級壞塊判定再做頁級精細(xì)管理。如果某塊內(nèi)壞頁數(shù)量超過閾值例如超過 20%那么即使頁隔離保留了一部分頁這個塊的效率也已經(jīng)很低繼續(xù)使用可能不劃算此時應(yīng)把整塊升級為塊級壞塊。這個“升級閾值”需要結(jié)合備用塊數(shù)量和容量目標(biāo)來配置。11.3 子頁/部分頁編程一些 NAND 支持子頁編程或多平面操作這些特性與頁隔離存在潛在沖突。例如頁隔離后某個塊中可能只剩下不連續(xù)的可用頁而子頁編程要求連續(xù)寫入。此時需要檢查 NAND 的編程順序限制避免因為跳頁導(dǎo)致某些物理單元沒有被正確編程產(chǎn)生新的錯誤。多平面操作也類似它允許同時操作多個平面的同一頁號。如果其中一個平面的對應(yīng)頁是壞頁多平面命令可能失敗或者需要退化為單平面操作??刂破餍枰陧摳綦x信息的基礎(chǔ)上調(diào)整多平面調(diào)度策略避免因個別壞頁拖累整條多平面流水線。11.4 3D NAND 與多平面特性3D NAND 通過垂直堆疊存儲單元提高了密度但同時也帶來了更復(fù)雜的頁間關(guān)系。在 3D NAND 中同一個塊內(nèi)的頁可能分布在不同的層和串上層間工藝差異和電場分布差異會導(dǎo)致某些層更容易出錯。例如靠近選擇管的層可能受編程干擾更明顯而中間層可能因為電荷保持特性不同而出現(xiàn)更多讀干擾。頁隔離在 3D NAND 中需要結(jié)合具體工藝知識識別高風(fēng)險層和頁組。一些廠商會針對 3D NAND 的層間差異建立模型在頁隔離策略中給不同層設(shè)置不同閾值。對于可靠性較差的層即使錯誤數(shù)尚未達到全局閾值也可能提前隔離。這種基于規(guī)則或機器學(xué)習(xí)的預(yù)測方法正在成為 3D NAND 時代頁隔離的重要方向。12. 工業(yè)實踐與產(chǎn)品落地12.1 消費級 SSD在消費級 SSD 中成本控制是第一優(yōu)先級。頁隔離雖然能夠提高容量保留率但會增加元數(shù)據(jù)硬件成本和固件開發(fā)復(fù)雜度。因此消費級控制器往往采用簡化的頁隔離方案重點處理寫入失敗和明顯的讀失敗而較少使用復(fù)雜的預(yù)測模型。對于消費級使用場景設(shè)備壽命通常不是限制因素容量和成本更受關(guān)注。即便如此消費級 SSD 也在逐步引入頁級精細(xì)管理。隨著 QLC 普及單元可靠性下降局部頁損傷更常見。如果仍然只做塊級管理QLC SSD 的可用容量和壽命會受明顯影響。因此新一代消費級 FTL 開始把壞頁位圖納入常規(guī)元數(shù)據(jù)并在后臺巡檢中檢測和隔離壞頁。12.2 企業(yè)級存儲企業(yè)級 SSD 對可靠性和壽命要求極高愿意為更復(fù)雜的頁隔離投入更多資源。企業(yè)級控制器通常配備更大的 DRAM可以維護更精細(xì)的頁級狀態(tài)表。它們還會使用機器學(xué)習(xí)模型評估頁的錯誤增長趨勢在頁真正不可用之前主動進行數(shù)據(jù)遷移。這種預(yù)測性遷移降低了設(shè)備運行后期出現(xiàn)不可糾正錯誤的概率。此外企業(yè)級存儲往往與 RAID、NVMe 多隊列和高可用架構(gòu)結(jié)合。頁隔離信息需要在控制器內(nèi)部一致維護并在熱插拔、固件升級和掉電恢復(fù)等場景下保持可靠。企業(yè)級產(chǎn)品還會在固件中記錄頁隔離統(tǒng)計信息供數(shù)據(jù)中心運維人員分析設(shè)備健康狀態(tài)和預(yù)測剩余壽命。12.3 嵌入式 eMMC/UFS嵌入式存儲的挑戰(zhàn)是資源受限。eMMC 和 UFS 控制器通常集成在芯片內(nèi)部DRAM 容量有限無法像企業(yè)級 SSD 那樣維護大規(guī)模頁級表。因此嵌入式設(shè)備多采用輕量級壞頁表使用位圖或局部范圍表并配合 NAND 廠商提供的壞塊信息。頁隔離在嵌入式場景中更多表現(xiàn)為對壞頁的簡單跳過而不是復(fù)雜的預(yù)測式管理。但隨著手機存儲容量增大和應(yīng)用對壽命要求提高UFS 也開始引入更細(xì)粒度的壞頁管理。一些廠商在 UFS 控制器中使用壓縮頁級狀態(tài)表并結(jié)合主機側(cè)的壽命統(tǒng)計接口讓系統(tǒng)能夠主動觸發(fā)數(shù)據(jù)遷移。這些做法幫助手機在長時間使用后仍能保持較高的存儲可靠性。12.4 開源 FTL 項目開源 FTL 項目為研究者和開發(fā)者提供了觀察頁隔離實現(xiàn)的機會。一些學(xué)術(shù)項目實現(xiàn)了頁級映射和壞頁跳過可以作為理解頁隔離的參考。雖然開源項目通常沒有商業(yè)固件那樣完整的工程優(yōu)化但它們展示了壞頁表維護、地址重映射和垃圾回收聯(lián)動的基本思路。在閱讀開源 FTL 時可以重點關(guān)注它的壞頁檢測邏輯、頁狀態(tài)更新時機和崩潰恢復(fù)策略。這些代碼往往比商業(yè)實現(xiàn)更易讀能夠幫助理解頁隔離技術(shù)從論文到工程落地之間的差距。需要注意的是開源項目中的數(shù)據(jù)結(jié)構(gòu)和算法不一定適用于所有 NAND 制程使用前要結(jié)合目標(biāo)閃存的實際特性進行評估。13. 性能與可靠性權(quán)衡13.1 寫放大變化寫放大是指控制器實際寫入 NAND 的數(shù)據(jù)量大于主機寫入數(shù)據(jù)量的比例。頁隔離會增加寫放大的來源壞頁數(shù)據(jù)遷移。每當(dāng)一個寫有數(shù)據(jù)的頁被隔離控制器需要把其中的有效數(shù)據(jù)搬到新的物理頁這既增加了一次讀也增加了一次寫。如果壞頁產(chǎn)生速率較高頻繁遷移會使寫放大明顯上升。為了減少寫放大控制器可以延遲隔離已經(jīng)寫入數(shù)據(jù)的壞頁尤其是在該頁數(shù)據(jù)已經(jīng)被標(biāo)記為無效時。垃圾回收本來就會搬移有效頁如果壞頁上的數(shù)據(jù)已經(jīng)是無效數(shù)據(jù)就沒有必要在隔離時專門遷移。通過把壞頁隔離與垃圾回收合并處理可以減少不必要的遷移從而控制寫放大。13.2 讀延遲分布頁隔離對讀延遲的影響不是均勻的。對于大多數(shù)健康頁數(shù)據(jù)讀寫路徑?jīng)]有變化。只有訪問到壞頁或高風(fēng)險頁時才可能觸發(fā)讀重試、ECC 軟判決、RAID 恢復(fù)或數(shù)據(jù)遷移這些操作的延遲遠(yuǎn)高于普通讀取。因此設(shè)備整體的讀延遲分布會出現(xiàn)“長尾”絕大多數(shù)請求很快少量請求明顯變慢。在 QoS 敏感的場景中這種長尾延遲會帶來很大影響。企業(yè)級控制器通常提供可配置的重試策略和超時閾值避免單個壞頁拖累整條命令隊列。還可以通過后臺巡檢提前隔離壞頁減少前臺請求遇到壞頁的概率。預(yù)測式隔離是改善讀延遲分布的重要手段。13.3 壽命與成本頁隔離技術(shù)本質(zhì)上是用元數(shù)據(jù)復(fù)雜度和少量性能代價換取容量和壽命。對于廠商來說額外的固件開發(fā)、更大的內(nèi)存和更復(fù)雜的測試驗證都會增加成本。對于用戶來說容量保留和壽命提升帶來了更長的設(shè)備使用周期和更低的單位容量成本。在產(chǎn)品定位上高端企業(yè)級產(chǎn)品可以承受更復(fù)雜的頁隔離機制而低成本消費級產(chǎn)品則需要選擇簡化版本。但無論何種定位頁隔離都不是免費午餐它需要與 ECC 余量、備用塊數(shù)量和產(chǎn)品使用壽命目標(biāo)綜合設(shè)計。孤立地追求“最多隔離”或“最少元數(shù)據(jù)”都難以得到最優(yōu)結(jié)果。14. 頁隔離的局限與誤用風(fēng)險14.1 隔離閾值選擇頁隔離閾值直接決定多少頁會被隔離。閾值過嚴(yán)會導(dǎo)致好頁被誤隔離浪費容量閾值過松會讓壞頁繼續(xù)運行增加數(shù)據(jù)錯誤風(fēng)險。閾值的選擇需要基于大量 NAND 可靠性數(shù)據(jù)并考慮溫度和擦寫次數(shù)等環(huán)境因素。同樣的錯誤數(shù)在高溫下可能比在低溫下更值得警惕。一個常見的誤區(qū)是只依賴單次失敗就立即隔離。由于 NAND 讀取具有隨機性單次失敗可能只是偶然。如果系統(tǒng)頻繁觸發(fā)隔離不僅會損失容量還會造成不必要的遷移和寫放大。因此確認(rèn)機制和重試策略應(yīng)該先于隔離動作執(zhí)行。只有經(jīng)過多次失敗或趨勢分析確認(rèn)后才應(yīng)把頁標(biāo)記為壞頁。14.2 錯誤擴散風(fēng)險頁隔離只處理已知的問題頁但如果壞頁的產(chǎn)生具有空間相關(guān)性未來相鄰頁也可能失效。例如一個頁可能因為某條字線上的缺陷而損壞而同一條字線上的其他頁也有潛在風(fēng)險。如果只隔離當(dāng)前壞頁后續(xù)其他頁失效時只能被動處理可能增加數(shù)據(jù)暴露時間。為了降低錯誤擴散風(fēng)險可以引入鄰域檢測或關(guān)聯(lián)頁組隔離。按照 NAND 的內(nèi)部結(jié)構(gòu)將同一字線、同一串或同一層的頁視為關(guān)聯(lián)組當(dāng)一個頁出現(xiàn)嚴(yán)重錯誤時同時提升關(guān)聯(lián)頁的風(fēng)險等級。這種策略雖然會多隔離一些頁但能減少后續(xù)突發(fā)性錯誤尤其適用于可靠性較差的 3D NAND 層。14.3 元數(shù)據(jù)一致性問題頁隔離信息分布在內(nèi)存和 NAND 中一旦兩者不一致可能引發(fā)嚴(yán)重問題。例如內(nèi)存中把某頁標(biāo)記為健康而 NAND 元數(shù)據(jù)中顯示該頁已經(jīng)隔離那么系統(tǒng)可能把數(shù)據(jù)寫入一個實際不可用的頁反之也可能錯誤地放棄一個健康頁。一致性問題是頁隔離工程實踐中必須優(yōu)先解決的問題。解決思路包括壞頁表更新采用事務(wù)日志更新前先寫日志再更新數(shù)據(jù)上電時回放日志恢復(fù)狀態(tài)定期將內(nèi)存中的壞頁表與 NAND 中的備份進行校驗如果發(fā)現(xiàn)不一致以更保守的狀態(tài)為準(zhǔn)即“寧可多隔離不可誤使用”。對于無法確認(rèn)的頁先標(biāo)記為高風(fēng)險頁待后續(xù)巡檢確認(rèn)后再恢復(fù)或正式隔離。15. 展望未來從頁隔離到單元級管理頁隔離技術(shù)已經(jīng)從概念驗證走向了實際產(chǎn)品但它仍有很大的發(fā)展空間。隨著 NAND 存儲密度繼續(xù)提高頁內(nèi)部各個存儲單元也會表現(xiàn)出越來越強的差異性。未來的趨勢可能是把管理粒度進一步下沉到單元級或子頁級通過更精細(xì)的分組和預(yù)測模型讓每一份存儲單元都能發(fā)揮最大價值。機器學(xué)習(xí)和先進的過程控制正在改變頁隔離的策略生成方式。傳統(tǒng)頁隔離依賴固定規(guī)則和經(jīng)驗閾值而機器學(xué)習(xí)可以根據(jù)每個單元的歷史錯誤模式、溫度和操作記錄預(yù)測其未來失效概率并動態(tài)調(diào)整隔離策略。這種閉環(huán)優(yōu)化可以更準(zhǔn)確地識別真正的高風(fēng)險單元避免資源浪費。另一方面存儲接口和文件系統(tǒng)的協(xié)同也在深化。例如主機可以通過標(biāo)準(zhǔn)接口獲取存儲設(shè)備的剩余壽命和壞頁統(tǒng)計從而主動調(diào)整數(shù)據(jù)放置策略把關(guān)鍵數(shù)據(jù)優(yōu)先寫入更可靠的位置。這種系統(tǒng)級協(xié)同將進一步放大頁隔離帶來的壽命和可靠性收益。當(dāng)然單元級管理也面臨巨大挑戰(zhàn)。首先是元數(shù)據(jù)規(guī)模會進一步膨脹需要新的壓縮和索引技術(shù)其次是策略執(zhí)行復(fù)雜度提升對控制器算力和內(nèi)存提出更高要求最后是驗證和認(rèn)證難度增加需要更完善的故障注入和長期可靠性測試。這些問題需要在學(xué)術(shù)界和工業(yè)界的共同努力下逐步解決。16. 總結(jié)頁隔離技術(shù)為 NAND 存儲系統(tǒng)提供了一種更細(xì)粒度的壞資源管理方式。它不再是“一壞就丟整塊”而是“只隔離壞頁、保留好頁”從而在局部頁損傷日益普遍的今天幫助 NAND 器件保留更多有效容量、延長使用壽命并改善數(shù)據(jù)可靠性。頁隔離與 ECC、RAID、垃圾回收、磨損均衡等機制緊密結(jié)合是下一代高密度 NAND 管理的重要方向。本文從 NAND 基礎(chǔ)、壞塊產(chǎn)生原因、傳統(tǒng)壞塊管理、頁隔離原理、FTL 實現(xiàn)、代碼示例、實測效果、工程挑戰(zhàn)、工業(yè)實踐和未來趨勢等方面系統(tǒng)梳理了頁隔離技術(shù)的全貌。需要再次強調(diào)頁隔離不是萬能藥真正的整塊失效仍然需要塊級壞塊管理兜底頁隔離的核心價值在于處理那些只有少數(shù)頁損壞的“準(zhǔn)壞塊”讓 NAND 在壽命末期仍然保持更高的利用率。對于存儲產(chǎn)品設(shè)計者來說落地頁隔離需要重點解決壞頁檢測確認(rèn)、元數(shù)據(jù)一致性、垃圾回收聯(lián)動和磨損均衡干擾等問題。對于普通讀者來說理解頁隔離也有助于認(rèn)識現(xiàn)代 SSD 和移動存儲如何在不可靠的物理介質(zhì)上提供可靠的長期服務(wù)。隨著 NAND 制程繼續(xù)演進頁隔離及其更細(xì)粒度的擴展形態(tài)會在存儲系統(tǒng)中發(fā)揮越來越重要的作用。