Koen Vervloesem
17 November 2006

Bij de keuze van een embedded platform is het belangrijk om het juiste opslagsysteem in overweging te nemen. Die keuze hangt af van heel wat toepassingsspecifieke beslissingsparameters. Bits&Chips sprak met Jan Veldeman van Mind/Essensium over de belangrijkste parameters en technologieën.

’Opslag is steeds belangrijker aan het worden‘, zo stelde Jan Veldeman van Mind/Essensium op het seminar ’How to choose your embedded platform?‘ van DSP Valley in Leuven. Bits&Chips vroeg hem om uitleg. ’De voornaamste factor voor onze klanten is de kostprijs‘, legt Veldeman uit. ’Doordat de huidige opslagsystemen meer mogelijkheden moeten bieden voor dezelfde of zelfs een lagere prijs, vragen onze klanten naar meer gespecialiseerde geheugentechnologieën. We merken dat ook aan persberichten van nieuwe opslagproducten. Het is een omvangrijke markt die echt aan het groeien is.‘ Sinds twee jaar ontwikkelt Veldeman software voor embedded systemen bij het Leuvense Mind, dat vorig jaar werd overgenomen door Essensium. In die positie zag hij al heel wat geheugenoplossingen de revue passeren.

0611141335280
Serieel Nor-flash is heel geschikt voor typische embedded en realtime oplossingen.

Bij de keuze van een embedded platform houd je rekening met het besturingssysteem, het bordje, de processor, randapparaten, softwarebibliotheken en het werkgeheugen. Volgens Veldeman is de opslagcomponent zeker zo belangrijk. De keuze hangt echter samen met een hele waaier aan beslissingsparameters. ’Het is niet altijd even eenvoudig om te bepalen met welke beslissingsparameters je nu echt rekening moet houden‘, zegt hij. ’Dat is erg afhankelijk van de toepassing. Betrouwbaarheid en prijs spelen vaak een grote rol, evenals de grootte. Duurzaamheid is echter niet altijd even noodzakelijk. Voor een toepassing waar veel wordt geschreven zoals een datalogger moet je hier uiteraard rekening mee houden. In sommige gevallen, waarbij de levensduur van het systeem beperkt is, speelt deze parameter echter in mindere mate mee.‘

’Voor goedkopere producten moet je juist weer letten op het aantal euro per megabyte, een kleine printplaatoppervlakte en een lage pincount‘, gaat Veldeman verder. ’Voor draagbare producten is energieverbruik bovendien een belangrijke parameter die we moeten minimaliseren, maar ook in andere toepassingen is een laag energieverbruik gewenst. Uiteraard is voor draagbare producten ook een kleine PCB-oppervlakte belangrijk. De capaciteit van het opslagmedium is ook een belangrijke parameter. Meer is hier niet altijd beter. Je moet je afvragen hoeveel je echt gebruikt.‘

De keuze voor een geheugentechnologie beïnvloedt ook welk besturingssysteem je kunt gebruiken. ’Veel gebruikers willen een Compactflash-kaartje ook onder Windows lezen. Dan moet je een Fat-bestandssysteem gebruiken. Dit kan enkel als de onderliggende technologie dit toelaat. De toepassingsafhankelijkheid van al deze parameters maakt het net zo belangrijk om het juiste product te kiezen.‘

Er zijn ook niet-technische beslissingsparameters waarmee je rekening moet houden. Zo noemt Veldeman de beschikbaarheid van de technologie en de vraag of meerdere producenten het kunnen leveren. ’Voor een mobieltje is het geen ramp als je opslagcomponenten over enkele jaren niet meer beschikbaar zijn. Voor andere toepassingen moet de beschikbaarheid van de componenten wel zijn gegarandeerd. Je kunt dan kiezen voor multivendoroplossingen. Als jouw originele producent besluit te stoppen met de technologie, kun je altijd nog naar een ander overstappen. Bovendien kies je dan best voor een standaard die is ingeburgerd zodat je weet dat daar over jaren nog ondersteuning voor is. Anderzijds moet je bij een technologie als Compactflash wel al eens nadenken hoe lang die nog zal meegaan.‘

Nor

Ontwikkelaars hebben heel wat keuze. De belangrijkste kandidaten zijn Compactflash, Inand, Nand-flash, Onenand, parallel of serieel Nor-flash, en SD/MMC. ’Voor heel wat toepassingen is parallel Nor-flashgeheugen de standaardkeuze‘, aldus Veldeman. ’De capaciteit van 1 tot 512 Mbyte is vaak voldoende. Het heeft ook een standaard interface inclusief specificatie: de Common Flash Interface. Bovendien is parallel Nor-flash heel betrouwbaar en de meeste processoren kunnen ervan opstarten. De technologie heeft echter ook een groot nadeel. Vaak heb je wear-leveling nodig om te voorkomen dat je bestandssysteem zijn gegevens altijd op dezelfde blokken schrijft waardoor die blokken vlugger verslijten.‘

Dit nadeel speelt echter niet altijd mee. ’Er zijn uiteraard toepassingen met weinig schrijfacties waar de opslag voornamelijk wordt gebruikt om van op te starten. Als je bijna zeker weet wat het schrijfgedrag zal zijn, kun je zelf problemen vermijden. Als je echter weet dat je toepassing veel zal schrijven en het schrijfgedrag onvoorspelbaar is, dan kun je best wear-leveling toepassen, bijvoorbeeld door gebruik te maken van het JFFS2-bestandssysteem.‘

0611141337000
Inand van Sandisk is een hybride oplossing met een capaciteit van 256 Mbyte tot 4 Gbyte.

Serieel Nor-flash is heel geschikt voor typische embedded en realtime oplossingen, aldus Veldeman. ’Serieel Nor-flash gebruikt een 4 pin SPI-interface, perfect voor kleine bordjes met een lage pincount die niet zo veel geheugen nodig hebben. De capaciteit van seriële Nor-flashchips ligt typisch tussen 128 kbyte tot 4 Mbyte. Een nadeel is wel dat een processor niet van dit geheugen kan opstarten.‘ Met een geïntegreerde SPI-flashcontroller is daar wel een mouw aan te passen. Veldeman: ’Dat is ideaal voor systeemchips. Als je zo‘n SPI-flashcontroller in een systeemchip integreert, kan de processor toch opstarten van het serieel Nor-flashgeheugen. Een ander voordeel van zo‘n geïntegreerde controller is de lage pincount.‘

Nand

Voor toepassingen die een grotere capaciteit vereisen, heb je Nand-flashgeheugen dat van 128 Mbyte tot 8 Gbyte aankan. ’Naast de grote capaciteit heeft dit geheugen het voordeel dat je er snel op kunt schrijven‘, vertelt Veldeman. ’Daarom zijn veel draagbare audiospelers ermee uitgerust. Ook al wordt er enkel geschreven als de gebruiker geluidsbestanden van zijn pc naar zijn audiospeler overzet, hij wil wel dat dit snel gaat. Hoe groter de opslag die je nodig hebt, hoe sneller je ook wil dat het gaat.‘

Een nadeel van Nand-flashgeheugen is dat je er niet van kan opstarten, al bestaan er wel geïntegreerde controllers voor Nand-flash. Veldeman noemt nog andere minpunten: ’De interface is nog niet gestandaardiseerd, maar er wordt nu wel gewerkt aan een Open Nand Flash-standaard. Nand-flash is ook minder betrouwbaar dan Nor-flash. Je moet echt bad block-management toepassen en ook wear leveling, bijvoorbeeld door gebruik te maken van het Yaffs-bestandssysteem.‘

Hybride

Er bestaan ook hybride oplossingen op basis van Nand-flashgeheugen. Zo introduceerde Samsung in 2003 zijn Onenand-technologie. Dit is een chip met een fysieke Nor-flashinterface, een Nand-flashgeheugen en geïntegreerde Nand-flashcontroller, en een interne SRam-buffer waarvan je kan opstarten. ’Onenand is geschikt voor goedkope systemen die een grote capaciteit vereisen. Vooral het feit dat je geen Nand-controller nodig hebt, is een voordeel. Een nadeel is wel dat de software-interface geen standaard is. De beschikbaarheid is ook niet gegarandeerd. Je riskeert dus vendor lock-in, omdat je van Samsung afhankelijk bent.‘

Een andere hybride oplossing is Inand van Sandisk. Deze technologie heeft een capaciteit van 256 Mbyte tot 4 Gbyte. Veldeman: ’Het is eigenlijk gewoon SD/MMC in een chip in plaats van in een kaartje. Dit zorgt dan ook voor een goede beschikbaarheid. Zelfs al verdwijnt Inand van de markt, dan kun je nog altijd een verwijderbaar MMC-kaartje in de plaats gebruiken. Inand heeft een standaard interface en een lage pincount. Wear-leveling is on-chip ingebouwd. Een nadeel is wel dat je er niet van kunt opstarten, tenzij met gespecialiseerde hardware zoals een FPGA. Samsung heeft trouwens een alternatief voor Inand: de Movinand.‘

Compactflash

Veldeman benadrukt dat je ook de verwijderbare media niet mag vergeten. ’Compactflash bijvoorbeeld wordt vooral gebruikt in professionele camera‘s, maar ook in referentieontwerpen voor Xilinx-FPGA‘s. Compactflash-kaartjes hebben een capaciteit van 16 Mbyte tot 64 Gbyte en zijn eenvoudig te gebruiken. Het is een PCMCIA/Ata-interface en je kunt het als block device uitrusten met het Fat-bestandssysteem. Met dezelfde interface kun je ook andere functionaliteit toevoegen zoals WLan.‘

0611141338460
Movinand is Samsungs alternatief van het hybride Inand van Sandisk.

Het nadeel van Compactflash is dat de kaartjes met 43 bij 36 mm2 vrij groot zijn. SD/MMC-kaartjes scoren op dat vlak beter. Zij meten 32 bij 24 mm2 en er bestaan zelfs nog de kleinere varianten met een adapter naar de gewone interface. ’SD/MMC-kaartjes worden ook in camera‘s en draagbare audiospelers gebruikt‘, zegt Veldeman. ’Met hun capaciteit van 16 Mbyte tot 2 Gbyte voldoen zij voor veel toepassingen. Ook is er een SDHC-uitvoering verkrijgbaar met een theoretische capaciteit tot 32 Gbyte. De kaartjes zijn heel goedkoop en ook hier kan je met SDIO andere functionaliteit toevoegen zoals Bluetooth of WLan. De SD/MMC-kaartjes hebben ook wear-leveling ingebouwd waardoor je een eenvoudig Fat-bestandssysteem kunt gebruiken. De SD-technologie is technisch interessant, maar er kleven wel wat nadelen aan. Zo moet je een geheimhoudingsverklaring ondertekenen als je de SD-specificatie wil zien. Het is dan ook onmogelijk om een open-source driver voor SD te schrijven, maar een gesloten binaire module voor Linux ontwikkelen kan wel.‘ De MMC-specificatie is veel toegankelijker en daar bestaan wel open-source drivers voor, onder meer voor het Nokia 770-internettablet.

Open source

Veldeman vindt standaardisering heel belangrijk in het domein van opslagmedia. ’Vooral Nor-flash is op dat vlak interessant. Je kunt dezelfde software gebruiken voor verschillende Nor-flashproducten. Er bestaat een gestandaardiseerde interface om op te vragen welke flash het is en welke schrijfmethodes de chip heeft. Ook in Linux gaat dit heel makkelijk. Je hebt zo meer vrijheid in je keuze van de producent. Je hebt de zekerheid dat de verschillende producenten zich aan de standaard houden. Als verschillende Nor-flashchips pincompatibel zijn, kun je zelfs van moment tot moment bekijken welke de goedkoopste zijn. Ze zijn volledig inwisselbaar. Bij Nand-flash heb je die mogelijkheid nog niet.‘

Voor SD-kaartjes bestaan er geen open-source drivers. Voor de andere technologieën hangt dit vooral af van de licenties. ’Linux zelf beperkt je meestal niet in je keuze‘, beweert Veldeman. ’Er bestaan veel drivers, zelfs voor minder gebruikte producten. Dat is het voordeel van de grote gebruikersgemeenschap van Linux. Ook de producenten zelf houden vaak rekening met Linux. Zo heeft Ecos in het algemeen een minder goede ondersteuning van opslagtechnologieën omdat er minder ontwikkelaars zijn.‘