Kun Microchip meni pörssiin vuonna 1993, monet asiantuntijat sanoivat että 8-bittinen oli kuollut. Kuitenkin 20 vuotta myöhemmin 8-bittiset ovat edelleen suurin mikro-ohjainten markkina rahassa mitattuna.
Artikkelin on kirjoittanut Microchipin MCU9-piirien kehityksestä Euroopassa vastaava johtaja Lucio di Jasio. Hän on ollut Microchipin palveluksessa vuodsta 1995 lähtien, ensin kuusi vuotta sovellusinsinöörinä ja vuodesta 2001 lähtien tuotemarkkinoinnissa. Vuosina 2010-2011 Lucio kävi Maxim Integratedilla sovellusjohtajana, kunnes palasi Microchipille vastaamaan liiketoiminnan kehityksestä Euroopassa. Hänellä on elektroniikkasuunnittelijan tutkinto Triesten yliopistosta. |
Monissa sovelluksissa 8-bittinen mikro-ohjain on ideaalinen ratkaisu monimutkaisen, paljon tehoa kuluttavan softapohjaisen lähestymistavan – jota kuvaa hyvin 32-bittinen ohjain – ja tehottoman laitekeskeisen lähestymistavan välillä, joka liitetään ASIC-piireihin. 8-bittinen prosessori konfiguroi ja ohjaa oheislaitetoimintoja tuoden käyttöön älykkäitä ja itsenäisiä oheislaitteita. Toisin kuin softapohjaisten järjestelmien sarjamuotoinen prosessointi, älyn jakaminen oheislaitteille mahdollistaa sen, että se voivat prosessoida tehtäviä rinnakkain ja sen jälkeen ilmoittaa tästä isäntäprosessorille. Tämä tasapainoinen lähestymistapa lyhentää merkittävästi kehitysaikaa, erityisesti silloin kun käytetään uudenlaisia graafisia koodingeneroinnin työkaluja.
Oikea tasapaino laitteiston ja ohjelmiston välillä, sekä uudet kehityspanostuksia ja -aikaa dramaattisesti vähentävät työkalut takaavat sen, että 8-bittisten mikro-ohjainten asema laajassa valikoimassa sovelluksia näyttää vahvemmalta kuin koskaan aikaisemmin. Tässä artikkelissa kuvataan 8-bittisten hyötyjä, työkaluja joiden avulla kehittäjät voivat lyhentää kehitysaikaa, sekä piirien tulevaisuutta.
Mitä 20 vuotta lähestyneen tuhon aikana on opittu?
Kun Microchip meni pörssiin vuonna 1993, monet asiantuntijat sanoivat että 8-bittinen oli kuollut. Kuitenkin 20 vuotta myöhemmin 8-bittiset ovat edelleen suurin mikro-ohjainten markkina rahassa mitattuna. Vaatii vakavaa analyysiä ymmärtää, miksi näin vahva usko on säilynyt näinkin kauan, vaikka kaikki todisteet puhuvat kehitystä vastaan. Ei olisi ensimmäinen kerta, kun tuomionjulistajat ovat väärässä – asiantuntijatkin ovat ihmisiä ja me olemme yllättävän huonoja ennustamaan tulevaisuutta. Menneisyyteen katsominen on aina helpompaa ja vaikka se ei ole immuni omille virhetulkinnoilleen, se kannattaa tehdä, jotta opimme jotain omista virheistämme.
On tehty koko joukko epätarkkoja oletuksia ja tässä viisi niistä vähämerkityksellisimmästä tärkeimpään.
1. Yhteys PC:een, jota ei koskaan ollut
20 vuotta sitten elimme PC-teollisuuden kukoistuksen aikaan ja näimme, kuinka työaseman laskentatarpeet voisivat helposti hyödyntää kaiken Mooren lain tuoman kehityksen ja enemmänkin. PC-arkkitehtuuri ylitti nopeasti suorituskyvyn, jonka 8-bittinen saattoi antaa, rynnisti vieläkin nopeammin ohi 16- ja 32-bittisten arkkitehtuurien ja sitä on nyt ohittamassa mobiililaitteiden laskenta, jossa 64-bittiset moniydinarkkitehtuurit ovat tavanomaisia. Oli luontevaa odottaa, että sama kehitys tapahtuisi sulautetun ohjauksen markkinoilla, mutta niin ei käynyt! Näiden kahden markkinan dynamiikat ovat yllättävän vähän toisistaan riippuvaisia, koska arvojen perusta on täysin erilainen. Sulautettua ohjausta kehittäviä suunnittelijoita määräävät paljon tiukemmat säännöt ja rajoitukset kuin PC-suunnittelijoita. Tämä saa heidät suosimaan tuotteen pitkää elinkaarta nopeiden tuottojen sijaan, suorituskyvyn ja tehonkulutuksen tasapainoista suhdetta äärimmäisen kovan suorituskyvyn sijaan ja kestävää ja johdonmukaista tuotosta huipputehojen sijaan.
2. Pienempi geometria ei tarkoita alhaisempaa kustannusta!
Samanlaista järkeilyä voitaisiin käyttää yhä pienempien (CMOS-) valmistusprosessien käyttöön. Vaikka piirin kustannuksen ja koon suhde on ehdottomasti vakava huoli sulautetussa ohjainteollisuudessa, on väärin olettaa että samat palkinnot ja hyödyt kohtaavat niitä, jotka ryntäävät äärimmäisyyksiin kaikkein uusimpien tekniikoiden hyödyntämisessä. Sulautetun ohjaimen kehittäjä ei voisi arvostaa kasvaneen transistorimäärän tuomaa toiminnallisuutta ilman, että pohtisi usein dramaattista lisäystä tehonkulutuksessa kasvaneena vuotovirtana. Sitä paitsi, mikro-ohjaimen digitaalisen osan kutistumisesta ei automaattisesti seuraa piirin tai sen IO-liitäntöjen analogisten osien – eli liitännän ulkomaailmaan – kutistuminen. Itse asiassa monissa tapauksissa nämä analogiset osat kasvavat kompensoidakseen pienempien transistorien kutistuneita jännitetoleransseja. Tänä päivänä 8-bittisen mikro-ohjaimen ydin voi olla alle viisi prosenttia koko piisirun alasta. Kun prosessigeometria kutistuu, investoinnit laitteisiin, tuotantokustannukset ja lopulliset kiekkokustannukset kasvavat niin nopeasti että ne nopeasti ylittävät kaikki pienempään skaalaamisen odotetut hyödyt.
3. Enemmän bittejä – helpompi työ
Tämä on vieläkin salakavalampi oletus, joka on vinouttanut ja jatkaa koko keskustelun vinouttamista. Kun tietokantasovellukset, taulukkolaskenta ja muut laskennalliset tehtävät ilman muuta hyötyvät siitä, että prosessori voi viitata suurempaan muistiin (enemmän bittejä) ja laskea suurempia arvoja (vieläkin enemmän bittejä), keskimääräisen sulautetun laitteen prosessorilta vaadittavat tehtävät ovat luonteeltan hyvin erilaisia. Lämpötila-anturin lukeminen, napin painalluksen palauttaminen, tulosignaalin taajuuden tai toimintajakson mittaaminen ja moottorinohjauksessa tarvittavan PWM-signaalin tuottaminen ovat kaikki esimerkkejä, joita sulautetut mikro-ohjaimet tekevät päivittäin miljoonissa – itse asiassa miljardeissa -sovelluksissa. On käytetty paljon markkinointirahaa sen osoittamiseen, että 32-bittinen prosessori suoriutuisi yllämainituista tehtävistä paremmin kuin 8-bittinen, mutta mikään ei tue tätä väitettä. Tämä on vieläkin enemmän totta nykyään, kun useimmat sovellukset koodataan assemblerin sijaan C-kielellä ja useimmat suunnittelijat tietävät hyvin vähän, jos ollenkaan mikro-ohjaimen ALU-yksikön todellista kokoa koodiaan kirjoittaessaan.
4. Laskentateho vs. reaaliaikateho
Ongelma tässä on sanan suorituskyky tulkinta eri laskenta- tai sovellusalueilla. Yleensä tietojenkäsittelyssä suorituskyky tarkoittaa prosessorin kykyä käydä läpi monimutkaisia matemaattisia algoritmeja, käsitellä suuria määriä dataa helposti ja päästä maaliin mahdollisimman lyhyessä ajassa. Sulautetussa ohjauksessa suorituskyky tarkoittaa jotain paljon enemmän. Usein sillä viitataan kykyyn suorittaa tietty määrä työtä (ei enemmän, ei vähemmän) annetussa ajassa määrätystä tehtävästä. Tällöin tietyssä ajassa suoritettu työ ei ole kriittinen tavoite, vaan se, että annettu työ suoritetaan oikeaan aikaan vasteena ulkoiseen ärsykkeeseen. Käytännön esimerkki kuvaa tätä tärkeää eroa parhaiten.
Olettakaamme, että teollinen prosessi vaatii anturisyötteen aistimista ja sen tuloksena on nopea (maksimin millisekuntimäärän sisällä) aktuaattorin aktivointi, esimerkiksi venttiilin sulkeminen, jotta estetään räjähtäminen. 32- tai 64-bittinen prosessori (usealla RAM-megatavulla, yhden gigahertsin kellolla ja uusimmalla Android-käyttöjärjestelmällä) osoittautuisi heikommaksi ratkaisuksi kuin yksinkertainen 8-bittinen mikro-ohjain, joka operoi kolme kertaluokkaa alhaisemmalla kellotaajuudella (yksi megahertsi) yksinkertaisesta palvelukeskeytysrutiinista. Esimerkki on ehkä äärimmäinen, mutta se kuvaa hyvin sitä suorituskykyä, jota sulautetussa ohjauksessa tarvitaan. Kyse on reaaliaikasuorituskyvystä, joka liittyy enemmän ydintä ympäröiviin oheislaitteisiin kuin ytimen omaan bittikokoon tai suunnitteluun. Itse asiassa parhaat tulokset saavutetaan, kun oheislaitteet voivat työskennellä ytimestä riippumatta, mikä poistaa sovellusten ajoituksen pullonkaulia. Kokemus kertoo sulautettujen sovellusten suunnittelijoille, että oikein valitut oheislaitteet voivat olla avain sovelluksen suorituskykyyn ja tärkeämpiä kuin prosessorin tarjoama raaka MIPS-lukema.
5. Alhainen tehonkulutus ja kestävyys
Kaksi viimeistä osaa, jotka eivät toimineet oikein alkuperäisissä ennustuksissa, ovat tehonkulutus ja kestävyys. Fysiikan lait tietenkin sitovat jännitteen ja tehon vääjäämättömästi yhteen. Lisäksi jännitteen vaikutus on neliöllinen, mikä antaa edun alhaista jännitettä käyttäville, tiheämmillä geometrioilla suunnitteluille piireille. Valitettavasti sulautetussa ohjauksessa kestävyys – tai lujatekoisuus (robustness) – eli piirin kyky sietää kohinaa, määrittelee että korkeamman jännitteen piireillä on etulyöntiasema. 20 vuotta evoluutiota on muuttanut tätä hyvin vähän, koska edelleen iso osa sovelluksista toimii 5 voltin syöttöjännitteestä käsitellen 5 voltin tuloja/lähtöjä. Autoteollisuus on ehkäpä vahvimmin muutosta vastustava ala.
Nykyaika
Nykyaikaiset 8-bittiset mikro-ohjaimet sovittautuvat erittäin hyvin teollisuuden todellisiin haasteisiin ja ne ovat merkittävästi älykkäämpiä ja helppokäyttöisempiä kuin edeltäjänsä 20 vuotta sitten. Kahden samanlaisen PIC16-datalehden vertailu osoittaa, että ydin on muuttunut hyvin vähän, lähinnä siten että korkeamman tason kielten käyttö on lisääntynyt ja mukaan on tuotu toimintoja, jotka tekevät kääntimen tuotoksesta kompaktimpaa. Oheislaitevalikoima sen sijaan on muuttunut dramaattisesti. Itse asiassa jopa halvin piiri tarjoaa sellaisia järjestelmätason toimintoja, jotka olivat mahdottomia edes ajatella 20 vuotta sitten. Moderni 8-bittinen mikro-ohjain on pieni sekasignaalijärjestelmä, joka sisältää kaiken vaadittavan tuottamaan luotettava kellosignaali (siruilla on usein jopa viisi erillistä oskillaattoria), säätämään syöttötehoa (jänniteregulaattorit, jänniteohjaimet, kiinteät jännitereferenssit, jne.) ja säätämään analogiasignaaleja (operaatiovahvistimet, nopeat komparaattorit, erilaiset AD- ja DA-muuntimet eri resoluutioilla). Kaikki tämä laajan digitaalisten oheislaitteiden ja jopa ohjelmoitavan logiikan päällä. Oheislaitteet itse ovat kehittyneet toimimaan ytimestä riippumattomina, mistä myös termi CIP (”Core Independent Peripherals”) tulee. Käynnistyttyään ja konfiguroiduttuaan ne helpottavat ytimen rasitusta, joka nyt vaatii vähemmän suorituskykyä ja tehoa , kun monet sovellusten ajoituksen pullonkaulat helpottuvat tai poistuvat kokonaan.
8-bittisten tulevaisuus
Jotta uskaltaisimme katsoa lähitulevaisuuteen, meidän pitää ottaa huomioon, että sulautettujen sovellusten menestys muodostaa niiden seuraavan luonnollisen haasteen. Kun miljardit laitteet menevät tuotantoon ja miljoonat uudet projektit valmistuvat joka vuosi, yltäkylläisen piin maailmassa arvokkaimmat resurssit ovat aika ja suunnitteluäly. Firmwaren kehityksen kustannusten pienentäminen määrää, että nopean prototypoinnin, debuggauksen ja koodin uudelleenkäytön mahdollistavien ohjelmistotyökalujen merkitys kasvaa yhä suuremmaksi.
Microchipin MPLAB Code Generator.
Tämän takia työkalut kuten MPLAB Code Configurator (MCC) näyttelevät jatkossa yhä suurempaa osaa samalla kun ne ottavat harteilleen yhä enemmän suunnittelijan haasteista integroidessaan kokonaisia ratkaisuja, jotka kattavat kaikki sovellusluokat (liitettävyys, moottorinohjaus, teho…) ja antavat suunnittelijan kustomoida ne tuotespesifeihin tarkoituksiin. Samaan aikaan kompleksisuuden tasoa on alennettava, jotta seuraavan sukupolven suunnittelijoiden kynnys kehittää yhä verkottuneempia tuotteita alenee. Kun parasta koodia on se, jota ei tarvitse kirjoittaa, yhä älykkäämmät CIP-oheislaitteet konfiguroidaan ja liitetään yheen muodostamaan asiakaskohtaisia toiminnallisia lohkoja, jotka prosessoivat raudalla suurimman osan sovelluksen laskentakuormasta.