Hoofdstuk 1: Overzicht van Azure RTOS LevelX
Azure RTOS LevelX biedt NAND en ook geen faciliteiten voor het leveleren van flashslijtage voor ingesloten toepassingen. Omdat zowel NAND als GEEN flashgeheugen slechts een beperkt aantal keren kan worden gewist, is het essentieel om het gebruik van het flashgeheugen gelijkmatig te verdelen. Dit wordt doorgaans 'kleding leveling' genoemd en is het doel achter LevelX.
Het algoritme dat kiest welk flashblok moet worden hergebruikt, is voornamelijk gebaseerd op het aantal wissen, maar niet helemaal. Het blok met het laagste aantal wissen kan mogelijk niet worden gekozen als er een ander blok is met een aantal wissen binnen een acceptabele delta van het minimale aantal wissen en dat een groter aantal verouderde toewijzingen heeft. In dergelijke gevallen wordt het blok met het grootste aantal verouderde toewijzingen gewist en opnieuw gebruikt, waardoor overhead wordt bespaart bij het verplaatsen van geldige toewijzingsgegevens.
LevelX ondersteunt meerdere exemplaren van NAND en/of NOR-onderdelen, dat wil zeggen dat de toepassing afzonderlijke exemplaren van LevelX binnen dezelfde toepassing kan gebruiken. Elk exemplaar vereist een eigen besturingsblok dat wordt geleverd door de toepassing, evenals een eigen flash-stuurprogramma.
LevelX biedt de gebruiker een matrix met logische sectoren die zijn toe te staan aan fysiek flashgeheugen in LevelX. Om de prestaties te verbeteren, biedt LevelX ook een cache met de meest recente toewijzingen van logische sectoren. De grootte van deze cache wordt gedefinieerd door de programmeur. Toepassingen kunnen LevelX gebruiken in combinatie met FileX of kunnen logische sectoren rechtstreeks lezen/schrijven. LevelX is niet afhankelijk van FileX en zeer weinig afhankelijk van ThreadX (alleen primitieve ThreadX-gegevenstypen worden gebruikt).
LevelX is ontworpen voor fouttolerantie. Flash-updates worden uitgevoerd in een proces met meerdere stappen dat in elke stap kan worden onderbroken. LevelX herstelt automatisch naar de optimale status tijdens de volgende bewerking.
LevelX vereist een flash-stuurprogramma voor fysieke toegang tot het onderliggende flashgeheugen. Er worden voorbeeld-NAND- en NOCH gesimuleerde stuurprogramma's verstrekt en kunnen worden gebruikt als een goed uitgangspunt voor het implementeren van werkelijke LevelX-stuurprogramma's. Bovendien worden de stuurprogrammavereisten verderop in deze documentatie beschreven.
In de volgende hoofdstukken wordt de functionele bewerking voor de NAND- en NOR LevelX-ondersteuning beschreven.