Master's Thesis

Implementation of Wear-Leveling Algorithm for NAND Flash Memory

Final Thesis 4.2 MB

Author of thesis: Ing. Martin Havlík

Acad. year: 2025/2026

Supervisor: Ing. Václav Šimek

Reviewer: Ing. Josef Strnadel, Ph.D.

Abstract:

NAND flash memory offers higher capacity at lower cost per bit than NOR flash, which Espressif currently uses as the main in-package non-volatile memory in ESP32-class SoCs. NAND does, however, require a Flash Translation Layer (FTL) that handles address remapping, garbage collection, bad-block management, and wear leveling. This thesis extends Espressif's spi_nand_flash component, built on the open-source Dhara FTL, with three changes: logical page numbers in the out-of-band (OOB) area to replay orphan pages after power loss, a three-layer metadata cache with radix-depth tuning, and page-level wear relief based on hardware Error Correcting Code (ECC) status. The implementation is evaluated on an ESP32-S3 with 512 MiB external SPI NAND through on-target benchmarks and Linux fault simulation. Orphan-page replay recovers every physically written page in the tested failure scenarios. Benchmarks show roughly 2.8-fold sequential read and 1.25-fold Zipf read throughput gains. The page relief mechanism skips pages reporting wear-induced ECC errors during programming, as confirmed by simulation. The extended component integrates with ESP-IDF through the Block Device Layer (BDL) and is published as open source under the Apache 2.0 license.

Keywords:

NAND flash memory, Flash Translation Layer, wear leveling, SPI NAND, ESP-IDF, Block Device Layer, Dhara, power-loss recovery, write amplification

Date of defence

25.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. Popište průběh splnění bodu 4 zadání.
  2. Odhadněte náročnost portování implementované komponenty na rodiny SPI NAND s rozložením OOB odlišným od toho, které jste využil.
  3. Jakým způsobem máte zajištěnou konzistenci dat při výpadku napájení?
  4. Do jaké míry jste se zabýval zabezpečením paměti flash? Jaké mechanismy se klasicky používají?
  5. Jaká je režie Vašeho řešení?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Embedded Systems (NEMB)

Composition of Committee

doc. Ing. Zdeněk Vašíček, Ph.D. (předseda)
doc. Ing. Michal Bidlo, Ph.D. (místopředseda)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)
Ing. Marcela Zachariášová, Ph.D. (člen)
doc. Dr. Ing. Otto Fučík (člen)
Ing. Josef Strnadel, Ph.D. (člen)

Supervisor’s report
Ing. Václav Šimek

Z pozice vedoucího této práce bych požadavky zadání označil za splněné a kvalitu dosažených výsledků za výbornou. Realizační výstup byl zveřejněn dle požadavků a integrován do frameworku ESP-ID. Nad rámec zadání pak bylo implementováno simulační prostředí umožňující ověření vlastností realizovaného algoritmu pro rozložení zátěže.


Coby určitý nedostatek by bylo možno spatřovat poměrně skromnou komunikaci ze strany studenta a nepředložení technické zprávy ke kontrole. Nicméně ve finále byl reálný dopad těchto skutečností prakticky nulový, proto jej v souhrnném hodnocení neberu v potaz. Z pozice vedoucí této diplomové práce pak navrhuji výsledné hodnocení stupněm A - výborně, 90 bodů.

Evaluation criteria Verbal classification
Informace k zadání

V souvislosti se snahou o dosažení co nejnižších výrobních nákladů se v oblasti vestavěných systémů začíná velmi výrazně projevovat trend přechodu od flash pamětí typu NOR k podstatně levnějším variantám na bázi NAND architektury. S daným trendem velmi úzce souvisí i zadání této diplomové práce, kdy je pozornost zaměřena na implementaci algoritmu pro tzv. rozložení zátěže a zamezení předčasnému opotřebení NAND paměťových buněk v rámci přístupové vrstvy FTL (Flash Translation Layer). 

Obtížnost této práce tkví v nutnosti detailně porozumět architektuře NOR a NAD flash pamětí, mechanismům zápisu dat včetně aspektů rozložení zátěže a a pozadí stávající implementace FTL vrstvy v rámci programového frameworku ESP-IDF. Dle výsledků prezentovaných v technické zprávě byly požadavky zadání v úplnosti splněny. Nad rámec zadání pak bylo vytvořeno simulační prostředí umožňující ověření vlastností navrženého algoritmu pro rozkládání zátěže.

Pro doplnění ještě uvádím, že zadání této diplomové práce volně navazuje na problematiku, kterou se student zabýval již v rámci předchozí bakalářské práce na FIT VUT v Brně.

Aktivita při dokončování

Odevzdání realizačního výstupu práce i samotné technické zprávy proběhlo ve stanoveném termínu. Technická zpráva mi ke kontrole sice předložena nebyla, avšak její dodatečné prozkoumání neodhalilo výraznější nedostatky. 

Publikační činnost, ocenění

V případě této diplomové práce mi není znám zisk souvisejících ocenění či navazující publikační činnost. 

Práce s literaturou

V počátečním období řešení projektu byly studentovi z mojí strany uděleny základní doporučení pro vyhledávání informačních pramenů a jejich použití v rámci projektu. Převážnou část položek uváděných v přehledu literatury si student iniciativně dohledával sám, přičemž jejich výběr byl vedle mojí osoby diskutován taktéž s odborným konzultantem ze společnosti Espressif.

Aktivita během řešení, konzultace, komunikace

V průběhu obou dvou semestrů se vzájemná komunikace odehrávala spíše na sporadické bázi. V daném případě bych ale tento fakt nepovažoval za nějaký zásadní problém, poněvadž student byl schopen pracovat samostatně a z mojí strany vlastně nebylo třeba nějakých výraznějších zásahů. Pravdou je, že jsem mohl být z jeho strany o stavu řešení projektu informován i častěji.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Josef Strnadel, Ph.D.

Výsledek práce studenta (tj., realizační výstup a technickou zprávu) považuji, i přes nejasnost ohledně splnění bodu 4 zadání, souhrnně za nadprůměrně kvalitní a navrhuji jej ohodnotit stupněm A, což odůvodňuji takto:



  • zadání považuji za obtížnější,

  • realizační výstup hodnotím jako velmi kvalitně implementovaný,  zdokumentovaný, otestovaný, zhodnocený, a prakticky využitelný.


Navrhuji zvážit ocenění studenta některou z dostupných cen.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno s drobnými výhradami

I přes nejasnost ohledně splnění bodu 4 zadání, jemuž se technická zpráva prakticky nevěnuje, považuji zadání jako celek za splněné.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsah technické zprávy (TZ) považuji za obvyklý, jelikož TZ, až na nejasnost ohledně splnění bodu 4 zadání, obsahuje veškeré podstatné informace k řešené problematice i k realizačnímu výstupu (RV).

Prezentační úroveň technické zprávy

Technická zpráva (TZ), psaná v angličtině, je velmi dobře strukturovaná, její části na sebe vhodně navazují a přispívají k její velmi dobré čitelnosti i představě o prostředcích, způsobu a výsledku řešení. K prezentační úrovni TZ nemám vážnější výhrady, a hodnotím ji jako nadprůměrně kvalitní.

89
Formální úprava technické zprávy

Úroveň typografické a jazykové stránky technické zprávy hodnotím jako velmi dobrou - případné nedostatky v ní nejsou závažné a vyskytují se spíše ojediněle, např. přesahy přes okraj stránky, "bílá místa" či umístění Tab. 3.1, Fig. 6.1, Fig. 6.2 v hlavním textu.

85
Práce s literaturou

Informační zdroje použité v technické zprávě jsou, vzhledem k tématu a zadání práce, vhodně zvoleny a technická zpráva na ně odkazuje způsobem umožňujícím řádné odlišení prvků vlastních od převzatých.

100
Realizační výstup
  • Zadáním požadovaný realizační výstup (RV) zahrnuje návrh, implementaci, dokumentaci a zhodnocení jím požadované ESP-IDF komponenty, RV  vhodně rozšiřuje komponentu spi_nand_flash z ESP-IDF.
  • Dokumentaci RV se věnují kap. 4 (návrh), 5 (implementace a její dokumentace) až 6 (testování a zhodnocení) technické zprávy (TZ), další dokumentace je dostupná na nextcloud a GitHub. Celková kvalita implementace i její dokumentace je na vysoké úrovni.
  • Kap. 6 TZ dokládá praktickou využitelnost RV v ESP-IDF prostředí. Oceňuji také implementaci řady podpůrných automatizačních, např. testovacích, skriptů pro snazší integraci, zhodnocení atp.
95
Využitelnost výsledků

Realizační výstup je využitelný s řešeními firmy Espressif.

Náročnost zadání

Evaluation level: obtížnější zadání

  • Zadání považuji za obtížnější, zejména kvůli požadavkům na i) návrh architektury softwarové komponenty pro ESP-IDF (bod 3 zadání), ii) konzultování architektury s firmou Espressif vč. případné úpravy architektury dle zpětné vazby od firmy (bod 4 zadání), iii) implementaci architektury dle standardů ESP-IDF (bod 5 zadání) - tyto požadavky mohly být splněny jen díky uváženému rozvržení realizačních činností v čase.
  • Další požadavky zadání považuji za průměrně náročné, tj. zvládnutelné pomocí vědomostí a zkušeností získaných během dosavadního studia na FIT VUT.

Topics for thesis defence:
  1. Odhadněte náročnost portování implementované komponenty na rodiny SPI NAND s rozložením OOB odlišným od toho, které jste využil.
  2. Popište průběh splnění bodu 4 zadání.
Points proposed by reviewer: 90

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová