Annons

Åtta bitar räcker ofta

När Microchip börsnoterades 1993 hävdade många industriexperter att 8-bitar var “dött”, men fortfarande 20 år senare är 8-bitar störst på styrkretsmarknaden, även i intäkter räknat. Lucio di Jasio, MCU9 Business Development Manager Europe beskriver här hur det hela ser ut.

Förklaringen till att sådana undergångstankar upprepades med övertygelse år efter år, trots bevis på motsatsen, kräver ordentlig analys. Det var inte första gången som domedagssiarna fick fel, ‘experterna’ är ju inte mer än människor och vi har alla det gemensamt att vi är förvånansvärt dåliga på att förutspå framtiden. Det är alltid lättare att blicka bakåt och även om detta också är förenat med viss risk är det väl värt att göra det för att förhoppningsvis lära något från våra misstag.

Det har förekommit en del felaktiga antaganden som vi kunnat spåra bakåt i tiden och här är fem av dem rangordnade i betydelse:

Kopplingen till persondatorer som aldrig fanns!
För tjugo år sedan upplevde persondatorindustrin ett ordentligt uppsving och vi kunde tydligt se att datorbehovet på våra skrivbord lätt kunde sluka all den tillväxt som Moores lag kunde ge och mer därtill. Arkitekturen hos persondatorer använde snabbt upp all den prestanda som en 8-bitars krets kunde ge, rusade ännu snabbare igenom 16-bitars och 32-bitars arkitekturer och håller idag på att springas om av mobildatorindustrin, där 64-bitars flerkärniga arkitekturer är normen. Alla räknade naturligtvis med att samma sak skulle hända på inbyggnadsmarknaden, fast det gjorde det aldrig!

Dynamiken på dessa båda marknader är förvånansvärt obesläktade eftersom de styrs av helt olika grundläggande värderingar. Konstruktörer av inbyggd styrning måste hålla sig till mycket striktare regler och begränsningar än kollegorna som sysslar med persondatorer. Det gör att de föredrar produktlivslängd framför snabb omsättning, ett balanserat förhållande mellan prestanda och effektförbrukning snarare än full satsning på prestanda oavsett kostnad, och robusthet och stadighet istället för högsta prestanda.

Mindre geometri ger inte lägre kostnad!
Samma sorts resonemang skulle kunna appliceras på användningen av allt mindre tillverkningsprocesser (CMOS-processer). Medan förhållandet mellan kretsens kostnad och storlek verkligen är ett giltigt ekonomiskt övervägande för inbyggnadsindustrin, ligger felaktigheten häri i antagandet att samma vinster och fördelar skulle uppnås av den som rusar mot ytterligheterna – till spetstekniken.

Men inbyggnadsingenjören kan inte värdera den extra funktionalitet som fås genom ett ökat antal grindar/transistorer utan att överväga nackdelarna i form av den ofta dramatiskt ökade effektförbrukningen (ökad läckström). Dessutom åtföljdes inte den faktiska förminskningen hos den ‘digitala’ delen av en styrkrets av samma grad av förminskning hos den ‘analoga’ delen av kretsen eller dess in-och utgångar, gränssnittet mot omvärlden.

I många fall visade det sig tvärtom att sådana delar blev större för att kompensera för den minskade spänningstoleransen hos de mindre transistorerna. Idag står en styrkretskärna på 8-bitar för mindre än 5% av det totala kretsutrymmet (kislet), därav klyftan. I takt med att processgeometrierna blir trängre växer istället i slutänden utrustningsinvesteringarna, kostnaderna för tillverkningsinställningen och kiselplattorna så snabbt att detta fullständigt utesluter alla förväntade (storleksförminskade) fördelar.

Fler bitar förenklar inte arbetet
Detta är ett ännu mer försåtligt antagande som har förvridit och fortsätter att förvrida hela sammanhanget. Medan databas-tillämpningar, översikter (spreadsheets) och andra slags uppgifter för datorer naturligtvis kan dra nytta av en processors förmåga att adressera ett större minne (fler bitar) och att utföra beräkningar på stora numeriska värden (ännu fler bitar) är den typ av uppgifter som en genomsnittlig inbyggd styrkrets uppmanas utföra av ett helt annat slag.

Att avläsa en temperatursensor, trycka tillbaka en knapp-ingång, mäta en inkommande signalfrekvens eller pulslängd, producera en PWM-signal för att driva en motor, är alla exempel på de enkla uppgifter som flertalet inbyggda styrkretsar dagligen utför i miljontals (faktiskt miljardtals) utrustningar. Många marknadskampanjer har ägnats åt att demonstrera att en 32-bitars processor kan utföra ovanstående uppgifter bättre än en 8-bitars processor, men det finns inget som bevisar det.

Detta är än mer sant idag, när de flesta tillämpningarna är skrivna i C snarare än ihopsatta, och flertalet konstruktörer är minimalt, om alls, medvetna om den faktiska storleken på aritmetikenheten (ALUn) hos en styrkrets när de skriver sin kod, och det med rätta.

Beräkningsprestanda kontra realtidsprestanda
Villfarelsen består här i tolkningen av innebörden av ordet prestanda i olika beräknings- eller tillämpningsdomäner. För allmän beräkning används prestanda för att beskriva förmågan hos en processor att ta sig igenom komplicerade matematiska algoritmer (flyttal?), med lätthet hantera stora mängder av data och anlända segrande på kortast möjliga tid.

För inbyggd styrning är uttrycket prestanda mycket mer nyanserat. Faktum är att det ofta hänförs till förmågan att utföra en given mängd arbete (varken mer eller mindre) inom en given tidsrymd efter en specifik händelse. Observera att i detta fall är det inte viktigt vilken mängd arbete som kan utföras per tidsenhet, utan snarare att en given mängd utförs i rätt tid som svar på ett externt stimulus.
Denna viktiga skillnad visas bäst med ett praktiskt exempel. Antag att en industriprocess kräver att en sensoringång, en puls av given längd, ska detekteras och resultera i omedelbar (inom ett maximalt antal millisekunder) aktivering av ett manöverdon, som exempelvis stänger en ventil, för att förhindra en explosion. En 32- eller 64-bitars processor (med flera Mbyte av RAM, som arbetar med en 1 GHz klocka, samtidigt som den kör det allra senaste Android-baserade operativsystemet) skulle vara en sämre lösning än en enkel 8-bitars styrkrets med en bråkdel så snabb klockfrekvens (1 MHz eller tre storleksordningar långsammare) på en enkel avbrottsrutin.Exemplet kan tyckas överdrivet, men är symboliskt för att det representerar den äkta sorts prestanda som behövs för inbyggd styrning. Detta är “realtids”-prestanda och den handlar mer om den maskinvarubaserade kringutrustning som omger kärnan än kärnans egen bit-storlek eller utformning.

Faktum är att bästa resultat kan uppnås när kringutrustningen klarar att arbeta oberoende från kärnan, vilket undviker att flaskhalsar uppstår för timing av viktiga tillämpningar. Av erfarenhet vet inbyggnadskonstruktörer att rätt maskinvaruutrustning kan vara nyckeln till en tillämpningsprestanda som överträffar det reda antal MIPS processorn tillhandahåller.

Låg effekt och robusthet
De sista två delarna som inte riktigt passar in i de ursprungliga förutsägelserna är effektförbrukning och robusthet. Enligt fysikens lagar är spänning och effekt obönhörligen ihopkopplade. Spänningens inflytande är dessutom kvadratiskt, vilket ger utrustning med lägre spänning, utformade med mindre geometrier, ett definitivt försprång.

I inbyggd styrning bestämmer tyvärr robustheten, en egenskap som härrör ur kretsens förmåga att avvisa brus, att det är utrustning med högre spänning som måste ha ett försprång. Tjugo år av evolution inom denna industri har ändrat väldigt lite, eftersom ett stort antal av dagens tillämpningar fortfarande kräver drift från matning på 5 V, samtidigt som den hantera in- och utgångar på 5 V. Fordonsindustrin är kanske den sektor där motståndet mot en övergång är som störst.

Dagsläget
Moderna 8-bitars styrkretsar är oerhört anpassningsbara till industrins verkliga utmaningar och är väldigt mycket smartare och lättare att använda än sina föregångare för tjugo år sedan. En jämförelse sida vid sida mellan två likvärdiga (PIC16) datablad avslöjar att kärnan bara har ändrats lite, för att spegla den ökade användningen av språk på högre nivå och tillägg av egenskaper som gör att kompilatorns utgång är mer kompakt. Det är i kringutrustningen som den dramatiska skillnaden skett.

Faktum är att även de billigaste kretsarna erbjuder funktioner på systemnivå som förr var otänkbara. En modern 8-bitars (PIC) styrkrets är ett litet blandsignalsystem som inkluderar allt som behövs för att ge en tillförlitlig klockkälla (upp till fem oberoende oscillatorer samsas vanligtvis på kretsen), för att underhålla kraftmatningen (spänningsregulatorer, spänningsövervakare, fasta spänningsreferenser, uppstart och ”brown out”-återställning), för att underhålla analoga insignaler (operationsförstärkare, snabba komparatorer, ADCer och DACer av varierande typ och upplösning).

Allt detta utöver en mycket rik uppsättning av digital kringutrustning och t o m programmerbar logik. Faktum är att kringutrustningen i sig har utvecklats till att fungera oberoende av kärnan, varför uttrycket “kärnoberoende kringutrustning” (Core Independent Peripherals, CIPs) har myntats. När dessa väl startats och konfigurerats avlastar de kärnan som nu behöver allt mindre prestanda och mindre effekt eftersom så många av tillämpningens timing-problem kan minskas eller helt tas bort.

Framtiden för 8-bitars styrkretsar
Om vi vågar att blicka en liten bit framåt i tiden måste vi överväga om den framgång som inbyggnadsstyrningen rönt i sig kommer att leda till dess nästa naturliga utmaning.

När miljardtals utrustningar ska tillverkas och miljontals nya projekt utvecklas och släpps varje år, i en värld rik på kisel, kommer de dyrbaraste resurserna att vara tid och intelligens.

En minskning av kostnaden för utveckling av maskinvara kommer att innebära att det blir ännu viktigare att det finns verktyg (programvara) för snabb prototypframställning, avlusning och återanvändning av kod.

Det är därför som verktyg som exempelvis MPLABs kodkonfigurator (MCC) kommer att spela en allt viktigare roll, samtidigt som det övertar en allt större del av utvecklarens börda genom att integrera fullständiga lösningssviter som täcker hela tillämpningsklasser (anslutbarhet, motorstyrning, kraft…) och möjliggör för utvecklaren att specialanpassa dessa för specifika produktbehov.

Samtidigt måste komplexiteten minska för att sänka tröskeln för nästa generation av konstruktörer som ska skapa produkter för en alltmer ansluten värld. Liksom den bästa koden är den du slipper skriva, kommer en allt smartare uppsättning av kärnoberoende kringutrustningar (CIPer) att konfigureras och kopplas samman till att bilda specialanpassade funktionsblock som utför i maskinvara den största delen av en tillämpnings arbetsbörda.
Lucio di Jasio, MCU9 Business Development Manager Europe

Comments are closed.