Embedded Conference Scandinavia 2010

Tisdagen och onsdagen den 19,20/10 (det vill säga i tisdags och onsdags) gick Embedded Conference Scandinavia av stapeln på stockholmsmässan. Jag hade privilegiet att närvara, lyssna, lära, äta gratis mat och plocka på mig en och annan gratispryl.

Conference innebär i dessa kretsar en uppsättning seminarier av olika karaktär, allt ifrån verktyg för effektiv programmering för inbyggda system till framtidens lösningar för datacentra.

Nedan har jag sammanfattat det som jag tyckte var intressant från de seminarier jag deltog i. (Varning för Buzz-words och facktermer!)

Wireless Embedded on GSM/GPRS modules with RTOS, Petri Loumala, Peter Folkesson (COLMEO AB)
AT-kommandon gäller lika mycket nu som när jag var tonåring och spelade Quake över modem, skillnaden är att idag används de mest för att styra GSM-moduler. Vanligtvis används GSM-modulen tillsammans med en ARM-processor som gör själva applikationsarbetet. En modern GSM-modul innehåller en 100 MHz CPU, 4 MB Flash-minne och 1 MB RAM vilket lämnar mycket utrymme till att utföra arbete utöver att telefonera. Föreläsaren argumenterade för att utnyttja denna processorkraft istället för att ha en extern processor. Fördelarna är att systemet är testat och har standardverktyg tillgängliga. Det som talar emot är att dessa moduler arbetar med OS som varierar från modul till modul och detta kan göra att portabiliteten för applikationen minskar ifall den körs i modulen.

Crypto Key Lengths, when size matters, Joachim Strömbergson (Informasic)
”Krypto” är förenklat en metod för att transformera meddelande till något oläsligt men på ett sätt så att rätt mottagare kan reversera processen. Krypto används för Konfidentialitet, Integritet och Autenticitet (Confidentiality, Integrity, Authenticity – CIA modellen) även om de flesta bara tänker på Konfidentialitetsbiten. Krypto kan delas in i symmetrisk (mottagare och sändare byter en hemlig nyckel innan kommunikationen) och asymmetrisk krypto (en (publik) nyckel för att kryptera och en (privat) för att dekryptera). Asymmetrisk kryptering är generellt säkrare men mycket mer CPU och minnes-krävande (1000x symmetrisk). Kryptering i inbyggda system har ofta problem med prestanda och att ifall systemet knäcks är det svårt att uppgradera.
De största felen utvecklare gör är att välja för korta nyckellängder, lämna hårdvaran övervakningsbar (via t.ex JTAG) väljer egna propertiäära algoritmer istället för öppna verifierade varianter. Man bör också ta hänsyn till hur länge en nyckel skall användas (hinner man knäcka nyckeln medan den fortfarande är i bruk) och vem som skulle ha intresse av att hacka enheten i fråga (konkurrenter, hobby-hackers eller virusmakare).
Inom EU ger organisationen Ecrypt (II) rekommendationer om algoritmer som bör användas. För inbyggda system finns ett par implementationer som är välfungerande t.ex Grain och Trivium.

M2M – What is inside and why, Jacob Norrby (Prevas)
M2M (Machine to Machine) är apparater som är uppkopplade med andra apparater i ett nätverk där mätvärden överförs, bearbetas och sammanställs. Ett vanligt exempel är de moderna elmätarna som periodiskt rapporterar förbrukad el till en central dator.
M2M-tekniken har funnits i testanläggningar sedan tidigt 90-tal men har på senare år spridit sig allt snabbare i och med att uppkopplingsmöjligheterna ökat. Tekniken är inte knuten till något visst medie utan kan använda GSM eller ethernet lika gärna som långvågsradio.

Secure Networking: isolating multiple networks on a single node, Urban Sandertek (Green Hills Software)
Föreläsningen tog upp ”the separation kernel” (SK) ett system som bygger på mikro-kernel-konceptet, dvs. alla drivrutiner ses som normala applikationer. I SK-systemet separeras säkerhets nivåerna i samma maskin genom att ha en drivrutin och en TCP/IP-stack per säkerhetsnivå och på det viset skapas separerade nät. SK kräver en MMU för att kunna garantera att de olika drivrutinerna inte inkräktar på minne som ägs av en annan säkerhetsnivå. Detta åstakomms genom att lägga omappat minne mellan processerna, detta genererar då ett undantag ifall en process skulle skriva utanför slutet på sitt minnesområde. Mikro-kernel-strukturen gör koden så pass moduliserad att varje modul är överskådlig och kan individuellt verifieras och bevisas, och på detta sätt kan hela systemet bevisas.

Keynote: A view of software engineering and a way forward, Anders Caspár (Ericsson)
Ericsson har transformerats till ett företag där 80% av forskningsbudgeten går till mjukvaruforskning. Speciellt framtagen hårdvara byts mot kommersiell dito med specialiserad mjukvara. Mjukvaru-industrin är fortfarande i kraftig förändring och vi kan ännu inte slappna av utan måste utvecklas vidare. Vi måste bli mer produktiva/effektiva för att hänga med. detta kan göras på många olika sätt, t.ex utökade samarbeten med universitet, nya affärsmodeller, användande av öppen källkod, modellbaserade kodgeneratorer samt klassiska koncept som standardiserade gränssnitt.

Intel ATOM Tunnel creek, Robert Hanselius (Data Respons)
Intels utveckling av (kodnamn) Tunnel Creek CPUn tillsammans med Queensbay chipset har pågått ett tag och kommer snart att lanseras. Processorn är designad för en låg effektförbrukning samt för att ha goda möjligheter till viritualisering, den ska inte dra mer än 3.6 W vid 1.6 GHz.

Trends in the evolution of COM module formfactors, Patrik Björklund (Hectronic)
COM står för Computer on Module, vilket innebär ett litet kretskort med samtliga nödvändiga komponenter för att processorn skall kunna arbeta (RAM, nordbrygga etc.) samt gott om I/O-kontakter. Fördelen med dessa moduler är att eftersom de är väldigt integrerade går det snabbt att färdigställa ett projekt, de är lätta att skala (byta ut mot en liknande modul fast med t.ex mer ram), färre design risker, mindre kablage.
COM-korten finns i ett antal olika standarder, de som börjar vara aktuella idag är COM-express-standarden COM.0 som endast använder lågvolts-gränssnitt (SATA, Gbit Ethernet, etc.). Dessa kort har standardiserade värmelösningar, moduler som direkt på kortet eller att kortet monteras så det ligger emot chassi.
En annan aktuell standard är Q7 som är inriktad mot UMPC-applikationer. Det intressanta med denna standard är att CPU:n inte är låst till Intel utan det finns planer för att även kunna använda ARM-processorer.

Consumer Technology in Embedded Systems, Hans Christian Lønstad (Data Respons)
ARM håller på att komma ikapp Intel på CPU-marknaden, ett ARM-baserat system drar i regel inte mer än 2 W och prestandamässigt börjar ARM komma ikapp. I den nära framtiden kommer ARM-baserade servrar och det uppskattas att ca 50% av NetBook-datorerna kommer använda ARM.
Priset på ARM-processorer är mycket lägre än Intels eftersom ARM är en licensierad teknik med många tillverkare.
När man utvecklar ett ARM-baserat system bör man tänka på att komponenterna livscykel inte är längre än 3 år, SoC-system kräver mycket mjukvara eftersom, vissa av varianterna är reserverade för de stora företagen.
Dock finns en del fördelar som balanserar nackdelarna: liten formfaktor, låg effekt, billig, inga fläktar krävs.

Many Core programming models, a case for task-centric programming, Karl-Filip Faxén (SICS)
I framtiden kommer vi arbeta med mer avancerade processor-arkitekturer, med fler kärnor, mer skillnader mellan kärnorna, mer integrerade finesser.
De modeller som finns för parallellisering är egentligen oberoende av programmeringsspråk dock finns inte alla modeller implementerade för samtliga programmeringsspråk.
Task-parallell programmering är en slimmad parallellisering utan allt för mycket special-kommandon. Tasks är ”lätta” (dvs tar inte särskilt många CPU-cykler för att skapa och växla till/från) och synkronisering mellan tasks sker via att två tasks slås samman vid slutet av exekvering. Programstrukturen för detta blir väldigt likt sekventiell programmering.
Wool är ett bibliotek för task-parallell programmering för C skapat av SICS (Swedish Institute of Computer Science). Wool är relativt enkelt och effektivt och finns fritt tillgängligt under GPL för de som är intresserade av att testa.

Interprocess Communication with MCAPI, Collin Walls (Mentor Embedded)
MCAPI står för Multi Core API och är ett gränssnitt för kommunikation mellan processorkärnor med mål att vara kodkompatibel över olika OS. Idagsläget har API:t ett litet foot-print, hög prestanda och kan köras på OS i ett hypervisor eller i en bare-metal-lösning (CPU utan OS). MCAPI hanterar multipla datakanaler, datakanalerna bygger på något som kallas noder som kan vara en processor, OS eller accellerator). När man kommunicerar öppnas i dessa noder Endpoints som beter sig ungefär som Sockets. Standardimplementationen av MCAPI bygger på delat minne men den kan modifieras för vilken kommunikationskanal som helst.

Etiketter: , , , , , , , ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: