Bachelor's Thesis

Tool for Management of Flash Memory Wear-Leveling on Embedded System Device

Final Thesis 2.36 MB

Author of thesis: Bc. Martin Havlík

Acad. year: 2022/2023

Supervisor: Ing. Václav Šimek

Reviewer: Ing. Josef Strnadel, Ph.D.

Abstract:

Thesis focuses on wear leveling layer over flash memory as provided by the Espressif IoT Development Framework with the goal of creating a tool for monitoring and managing flash memory wear caused by erase operations. For the purposes of such tool an extended version of wear leveling is implemented, addressing shortcomings of the Espressif's version. The enhancements include per sector erase count tracking and address randomization using a format-preserving cipher based on an unbalanced Feistel network for improved wear evenness. Said address randomization is tested by simulating full memory lifetime in selected erase stressing scenarios, with results showing up to a few percent improvement in wear uniformity over original wear leveling. Finally, a monitoring tool, consisting of an embedded back-end and a PC side graphical front-end, is created on top of the extended version of wear leveling.

Keywords:

Monitoring tool, wear leveling, ESP32, ESP-IDF, flash memory, memory wear, SPI NOR flash, unbalanced Feistel Network

Date of defence

14.06.2023

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. Jak jste se vypořádal s problémem identifikace paměti typu NOR flash (viz "specific device ID still could not be matched", konec 2.3.2, str. 8) ?
  2. Jak náročné by bylo využít stávající realizační výstup pro práci se sektory o jiné velikosti (např. 512 B) než stávající (4 kB) ?
  3. Z technické zprávy plyne (viz např. podkap. 4.2, str. 16), že stávající řešení je vhodné spíše pro paměti typu NOR flash s kapacitami řádově v jednotkách MB. Máte nějaké náměty, jak toto řešení přizpůsobit pro interní/externí paměti typu NOR flash o vyšších kapacitách (např. 16 MB na ESP32 s 24 či 32 bitovou adresací v SPI) ?
  4. Vyjádřete se k nejhoršímu možnému případu počtu opakování "This must be repeated until the network produces a valid IA.", viz podkap. 4.2.2, str. 18.
  5. Jak řešíte problém rozdílně častého mazání různých typů dat?
  6. K čemu je využívána rezervovaná část paměti?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Michal Hradiš, Ph.D. (člen)

Supervisor’s report
Ing. Václav Šimek

S ohledem na příkladnou aktivitu studenta a další, výše uvedené, skutečnosti, navrhuji z pozice vedoucího projektu souhrnné hodnocení stupněm A - výborně, 91 bodů.

Evaluation criteria Verbal classification
Informace k zadání

V případě této bakalářské práce se jedná o zadání vypsané ve spolupráci s brněnskou pobočkou společnosti Espressif. Cílem je implementovat nástroje pro správu tzv. wear-leveling mechanismu pamětí typu FLASH používaného na různých vestavěných platformách (mikrokontrolerech) společnosti Espressif. Samotný realizační výstup zahrnuje firmware pro mikrokontroler a část v podobě uživatelské aplikaci běžící na běžném PC. Domnívám se, že jde spíše o náročnější zadání.

Zadání jako takové bylo ve všech bodech splěno. Kromě toho na základě provedení analýzy stávajícího přístupu k wear-leveling mechanismu, který je používán u součástek společnosti Espressif, přisel student s návrhem vlastního vylepšení. K tomuto připravil i simulační aplikaci pro vyhodnocení vlastnotí navržených úprav. Tyto aspekty považuji za rozšíření oproti stanoveným požadavkům zadání.

Dle vyjádření odborného konzultanta ze společnosti Espressif plánují praktické nasazení výsledku dosažených při řešení tohoto projektu.

 

Práce s literaturou

Potřebné informační zdroje si student zajistil vlastními silami, případně mu byly doporučeny odborným konzultantem ze společnosti Espressif. Finální výběr použitých pramenů byl se mnou konzultován, přičemž jejich charakter, rozsah a způsob využití pro účely vypracování tohoto projektu považuji z pozice vedoucího za naprosto adekvátní.

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

V průběhu celého období řešení bych počínání studenta označil za poměrně aktivní. Prezenční konzultace byly za celou dobu svolány snad jen dvě. Nicméně v pravidelných intervalech cca dvou týdnů jsem byl ze strany studenta informován prostřednictvím e-mailem zasílaných reportů o postupu prací a aktuálně řešených problémech. Takto nastavené schéma komunikace mi přišlo coby zcela vyhovující pro daný účel.

Aktivita při dokončování

Realizační výstup byl dokončen v předstihu oproti stanovenému termínu a zveřejněm prostřednictvím služby GitHub. Prvnotní verze technické zprávy mi pak byla předložena ke kontrole zhruba dva týdny před stanoveným termínem odevzdání. I tak do ní bylo možné promítnout veškeré moje připomínky.

Publikační činnost, ocenění

V souvislosti s řešením tohoto projektu mi není známa navazující publikační činnost či zisk tematicky souvisejících ocenění. 

Points proposed by supervisor: 91

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) navrhuji ohodnotit stupněm B; odůvodnění:



  • Zadání bylo středně obtížné,

  • realizační výstup splňuje požadavky zadání, je poměrně kvalitní a uplatnitelný v praxi, nicméně jeho dokumentace a zhodnocení jsou spíše průměrné,

  • úroveň technické zprávy, psané v anglickém jazyce, považuji za nadprůměrnou,

  • k výsledku práce studenta nemám zásadnější výhrady.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Problematiku řešenou v předložené práci považuji za středně obtížnou, tj. zvládnutelnou pomocí existujího technického vybavení a vědomostí a dovedností získaných během dosavadního povinného studia.

Rozsah splnění požadavků zadání

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

  • Zadání považuji za splněné, avšak zhodnocení realizačního výstupu (viz bod 7 zadání a podkap. 6.4) považuji spíše za základní, s tvrzeními nedostatečně podloženými daty; jinými slovy - v podkap. 6.4 postrádám data uspokojivě potvrzující či vyvracející, že realizační výstup je použitelný pro stanovený účel a kritičnost při hodnocení jeho vlastností.
  • Oceňuji však, že nad rámec zadání student rozšířil stávající řešení mechanismu vyrovnávání opotřebení (angl. wear leveling), pamětí typu flash, dostupné v ESP-IDF.

Rozsah technické zprávy

Evaluation level: splňuje pouze minimální požadavky

  • Technická zpráva je místy poměrně stručná, místy v ní postrádám ilustrace k popisovaným skutečnostem (např. v podkap. 2.2, 2.3, 3.1-3.3, 4.1), nicméně obsahuje veškeré podstatné informace k řešené problematice.
  • Rozsah technické zprávy považuji za menší než obvyklý, zejména co se týká popisu a zhodnocení realizační části v kap. 6.

Prezentační úroveň technické zprávy
  • Technická zpráva je vhodně strukturovaná, její jednotlivé části na sebe vhodně navazují a přispívají k její velmi dobré čitelnosti.
  • Až na místy strohý a místy více málo ilustrativní charakter některých částí technické zprávy nemám k její prezentační úrovni výhrady.
80
Formální úprava technické zprávy

Úroveň typografické a jazykové stránky technické zprávy považuji za výbornou; za výtku stojí snad jen ojedinělé, spíše nevýznamné, prohřešky, např. vícenásobná definice eXecute In Place (XIP), Error Correction Code (ECC), překlepy či "bílé místo" na str. 24.

90
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, pokrývají problematiku řešenou v rámci práce a v technické zprávě je na ně odkazováno způsobem umožňujícím řádné odlišení prvků vlastních od převzatých.

100
Realizační výstup
  • Stěžejní realizační výstup (nástroj) má dvě části - vestavnou (wlmon back-end), implementovanou v jazyce C/C++, a PC (espwlmon, front-end), implementovanou v jazyce Python.
  • Realizován byl také simulátor (wl-sim), implementovaný v jazyce C/C++, se skriptovací podporou v Python a Bash.
  • Implementace je přehledná, vhodně dekomponovaná a rozvržená do zdrojových souborů; převzaté části jsou opatřeny informačním záhlavím, obdobné informační záhlaví však postrádám u vlastních zdrojových souborů.
  • Dokumentaci k realizačnímu výstupu (viz bod 6 zadání), dostupnou na platformě GitHub, však považuji za poměrně stručnou - pro generování detailnější dokumentace bych očekával využít některého ze stávajících řešení, např. Doxygen.
  • Funkčnost realizačního výstupu mi byla osobně demonstrována.
95
Využitelnost výsledků

Realizační výstup , přinejmenším co se týká pamětí typu NOR flash s kapacitami řádově v jednotkách MB, praktické využití - je bezproblémově integrovatelný do prostředí ESP-IDF; navíc, nad rámec zadání student rozšířil stávající řešení mechanismu vyrovnávání opotřebení (angl. wear leveling), pamětí typu flash, dostupné v ESP-IDF.

Topics for thesis defence:
  1. Jak jste se vypořádal s problémem identifikace paměti typu NOR flash (viz "specific device ID still could not be matched", konec 2.3.2, str. 8) ?
  2. Z technické zprávy plyne (viz např. podkap. 4.2, str. 16), že stávající řešení je vhodné spíše pro paměti typu NOR flash s kapacitami řádově v jednotkách MB. Máte nějaké náměty, jak toto řešení přizpůsobit pro interní/externí paměti typu NOR flash o vyšších kapacitách (např. 16 MB na ESP32 s 24 či 32 bitovou adresací v SPI) ?
  3. Vyjádřete se k nejhoršímu možnému případu počtu opakování "This must be repeated until the network produces a valid IA.", viz podkap. 4.2.2, str. 18.
  4. Jak náročné by bylo využít stávající realizační výstup pro práci se sektory o jiné velikosti (např. 512 B) než stávající (4 kB) ?
Points proposed by reviewer: 85

Grade proposed by reviewer: B

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