Lecţii învăţate după 20 de ani de condamnare la dispariţie
Cu toate că se anunța dispariția microcontrolerelor pe 8 biţi, 20 de ani mai târziu, piaţa microcontrolerelor pe 8 biţi este cea mai mare, chiar şi atunci când este măsurată prin venituri. Pentru a înţelege de unde apare credinţa an de an asupra dispariţiei, în ciuda tuturor evidenţelor, necesită o analiză serioasă. Nu ar fi prima dată când cei ce prevăd apocalipsa se înşeală; în fond toţi “experţii” sunt fiinţe umane, iar noi suntem ca specie, surprinzător de inabili în a prezice viitorul. Privirea în trecut este întotdeauna mai uşoară şi atâta vreme cât nu este imună la propriul nostru set de pericole, este un exerciţiu care merită făcut în speranţa că vom fi capabili să învăţăm ceva din propriile greşeli.
Au existat un mic număr de presupuneri imprecise, mai jos fiind prezentate cinci dintre ele în ordinea crescătoare a importanţei:
1 Legătura către calculatoarele personale nu a existat niciodată!
Acum 20 de ani, am fost martorii boom-ului industriei calculatoarelor personale şi am putut vedea cum, evident, necesităţile de calcul ale calculatoarelor noastre au putut absorbi cu uşurinţă toată creşterea pe care a putut-o oferi legea lui Moore şi mai mult. Arhitectura calculatoarelor personale a străbătut rapid toată performanţa care putea fi oferită de 8 biţi, trecând şi mai rapid prin arhitecturile pe 16 biţi şi 32 de biţi, iar acum a ajuns prin industria calculatoarelor mobile, unde arhitecturile multi-nucleu pe 64 de biţi reprezintă nivelul de performanță. Aşteptările noastre naturale au fost acelea că acelaşi lucru se va întâmpla şi pe piaţa controlului embedded, ceea ce nu s-a întâmplat! Dinamica acestor două pieţe este surprinzător de nelegată, deoarece setul fundamental de valori este complet diferit. Proiectanţii de control embedded sunt legați de reguli şi constrângeri mai stricte decât echivalenţii lor din sistemele de calcul. Acestea conduc la favorizarea longevităţii faţă de cifra de afaceri, raport echilibrat între performanţă şi consum energetic faţă de performanţă cu orice preţ, şi robusteţe şi ieşire consistentă faţă de performanţe de vârf.
2 Geometrie mai mică nu înseamnă costuri mai reduse!
Acelaşi fel de motivaţie poate fi aplicată utilizării de procese de fabricaţie (CMOS) din ce în ce mai mici. În timp ce relaţia dintre costul şi dimensiunea unui dispozitiv este cu siguranţă un element economic valid pentru industria controlului embedded, este o eroare să se creadă că aceleaşi beneficii vor fi obţinute de cei ce se grăbesc către extreme – la limitele superioare ale tehnologiei. Dar proiectantul de control industrial nu poate aprecia valoarea funcţionalităţii adăugate prin creşterea numărului de porţi/tranzistoare, fără a lua în considerare şi dezavantajul adus de creşterea, adesea dramatică, a consumului energetic. Pe lângă aceasta, efectul actual de micşorare pe porţiunea “digitală” a unui microcontroler nu este automat însoţit de o micşorare egală pe porţiunea “analogică” a dispozitivului sau pe intrările/ieşirile sale (I/O), interfaţa către lumea exterioară. De fapt, în multe cazuri, aceste părţi au crescut în dimensiune pentru a compensa toleranţa redusă de tensiune a tranzistoarelor mai mici.
Astăzi, nucleul unui microcontroler pe 8 biţi poate reprezenta mai puţin de 5% din aria totală a pastilei de siliciu, prin urmare așa apare dihotomia. În fapt, odată cu micşorarea geometriei procesului, investiţiile în echipamente, costurile de pregătire a fabricaţiei şi costul plăcuţei de semiconductor cresc aşa de repede, încât anulează toate avantajele aşteptate (prin reducerea dimensiunii).
3 Mai mulţi biţi = Muncă mai uşoară
Aceasta este o presupunere şi mai înşelătoare şi continuă să distorsioneze şi mai mult întreaga discuţie. În vreme ce aplicaţiile de baze de date, calculul tabelar şi alte tipuri de sarcini de calcul, pot beneficia evident de abilitatea unui procesor de a se adresa unei cantităţi mai mari de memorie (mai mulţi biţi) şi de a realiza calcule cu valori numerice mai mari (chiar şi mai mulţi biţi), tipul sarcinilor dintr-un dispozitiv de control embedded mediu, este de natură foarte diferită.
Citirea unui senzor de temperatură, stabilizarea unei intrări de la un buton, măsurarea frecvenţei sau factorului de umplere a unui semnal de intrare, producerea unui semnal PWM pentru a comanda un motor, sunt toate exemple de sarcini de lucru uzuale ale majorităţii microcontrolerelor embedded, sarcini ce trebuie realizate în milioane (astăzi chiar miliarde) de aplicaţii. Numeroase eforturi de marketing au fost făcute pentru a demonstra că un procesor pe 32 de biţi va realiza toate cele de mai sus mai bine decât un procesor pe 8 biţi, dar nu este nicio dovadă evidentă. Acest lucru este chiar mai adevărat astăzi, când majoritatea aplicaţiilor sunt scrise în limbaj C, faţă de limbaj de asamblare, iar majoritatea proiectanţilor doresc minimizare, fiind conştienţi de dimensiunea actuală a unității de calcul aritmetic (ALU) a microcontrolerului, unde îşi scriu programul.
4 Performanţe de calcul vs. Performanţe de “Timp real”
Păcăleala de aici apare din interpretarea înţelesului cuvântului performanţă în diferite domenii de calcul sau aplicaţii. În general, performanţele de calcul sunt utilizate pentru a reflecta abilitatea unui procesor de a alege algoritmi matematici complecși (virgulă mobilă?), de a gestiona serii mari de date cu uşurinţă şi de a ajunge la final în cel mai scurt timp posibil. În controlul embedded, termenul de performanţă este mult mai nuanţat.
În fapt, el este adesea atribuit abilităţii de a realiza o cantitate dată de muncă (nu mai mult, nu mai puţin) într-un timp dat, de la un eveniment specific. Observaţi cum, în acest mod, sarcina realizată pe unitatea de timp nu este un aspect critic, ci mai degrabă timpul oportun în care o sarcină este realizată ca răspuns la un stimul extern.
Un exemplu practic ilustrează cel mai bine această distincţie importantă. Să presupunem că un proces industrial aşteaptă detectarea unei informaţii de la un senzor, un puls de durată dată, iar aceasta va conduce la activarea imediată (într-un număr maxim de milisecunde) a unui actuator ce închide, de exemplu, un robinet, pentru a evita o posibilă explozie.
Un procesor pe 32 sau 64 de biţi (cu câţiva Mbyte de memorie RAM, operând la 1GHz, rulând cu cel mai recent sistem de operare Android) se va dovedi o soluţie inferioară faţă de o soluţie cu un microcontroler simplu pe 8 biţi operând la o fracţiune a frecvenţei de ceas (1MHz, sau trei ordine de mărime mai jos) într-o rutină simplă de întrerupere. Exemplul poate părea excesiv, dar este emblematic, deoarece reprezintă adevăratul fel de performanţă necesar în controlul embedded. Aceasta este performanţă de “timp real” şi este legată mai mult de perifericele hardware din jurul nucleului, decât de designul sau numărul de biţi al nucleului. De fapt, cele mai bune rezultate pot fi obţinute atunci când perifericele sunt capabile de a opera independent de nucleu, eliminând blocajele din aplicaţiile cheie. Experienţa le-a arătat proiectanţilor de sisteme de control embedded că perifericele hardware corecte pot fi cheia performanţei aplicaţiilor mai mult decât numărul de MIPS oferit de procesor.
5 Consum energetic redus şi robusteţe
Ultimele două elemente care nu s-au comportat conform predicţiilor sunt consumul energetic şi robusteţea. Legile fizicii leagă în mod clar şi inexorabil tensiunea şi energia. Totuşi, influenţa tensiunii este pătratică, avantajând dispozitivele de tensiune redusă, proiectate utilizând geometrii mici. Din nefericire, în controlul embedded, robusteţea, o calitate ce reflectă abilitatea unui circuit de a rejecta zgomotul, conduce la avantajarea dispozitivelor de tensiune mai mare. Douăzeci de ani în această industrie au schimbat foarte puţine, după cum şi astăzi un mare număr de aplicaţii necesită încă o tensiune de 5V, gestionând intrări şi ieşiri de 5V. Industria auto este poate sectorul care opune cea mai mare rezistenţă tranziţiei.
Prezentul
Microcontrolerele moderne pe 8 biţi arată un nivel de adaptabilitate incredibil la provocările reale ale industriei şi sunt incredibil de inteligente şi de uşor de utilizat faţă de predecesoarele lor de acum 20 de ani. O comparaţie a datelor tehnice pentru microcontrolere echivalente (PIC16), arată că nucleul s-a schimbat numai puţin, pentru a reflecta utilizarea crescută de limbaje de nivel înalt şi adăugând funcţii ce fac ieşirea compilatorului mai compactă. Diferenţa cea mai importantă o aduce setul de periferice. De fapt, chiar şi cele mai economice dispozitive oferă funcţii la nivel de sistem ce erau în trecut de negândit. Un microcontroler modern pe 8 biţi (PIC) este un mic sistem de semnal mixt care include tot ceea ce este cerut pentru a produce o sursă de ceas sigură (până la 5 oscilatoare independente sunt prezente uzual pe cip), pentru a condiţiona sursa de energie (stabilizatoare de tensiune, supervizoare de tensiune, referinţe fixe de tensiune, pornire alimentare şi reiniţializare la întrerupere alimentare), pentru a condiţiona semnalele de tensiune analogice (amplificatoare operaţionale, comparatoare rapide, convertoare A/D şi D/A de diferite tipuri şi rezoluţii). Toate acestea sunt în vârful unui set foarte bogat de periferice digitale şi chiar şi de logică programabilă. De fapt, perifericele în sine au evoluat să opereze independent faţă de nucleu, de unde a fost inventat şi termenul “Core Independent Peripherals sau CIP”. Odată iniţializate şi configurate, ele preiau sarcina de pe umerii nucleului, care acum necesită o performanţă mai mică şi mai puţină energie, după cum multe strangulări de timp ale aplicaţiei pot fi diminuate sau îndepărtate.
Viitorul microcontrolerelor pe 8 biţi
Dacă îndrăznim să privim către viitorul apropiat, trebuie să luăm în considerare cum aplicaţiile de control embedded de mare succes vor aborda următoarea schimbare naturală. După cum miliarde de dispozitive vor intra în producţie şi milioane de noi proiecte vor fi dezvoltate şi lansate în fiecare an, într-o lume cu siliciu din abundenţă, cea mai preţioasă resursă va fi timpul şi puterea minţii. Reducerea costului de dezvoltare a firmware va dicta o şi mai mare importanţă a uneltelor software disponibile pentru prototipare rapidă, depanare şi reutilizare a programelor.
Iată de ce, unelte precum MPLAB Code Configurator (MCC) vor juca un rol important în creştere, preluând o parte şi mai mare din sarcina dezvoltatorului, prin integrarea de soluţii complete, acoperind clase întregi de aplicaţii (conectivitate, control motor, alimentare …) şi permiţând dezvoltatorului să le particularizeze la nevoile specifice ale aplicaţiilor. În acelaşi timp, nivelul de complexitate va trebui sa fie redus, coborând pragul pentru noua generaţie de proiectanţi, care vor trebui să creeze produse pentru o lume şi mai conectată. După cum cel mai bun program este acela pe care nu trebuie să îl scrii, un set chiar şi mai inteligent de CIP (periferice independente de nucleu) vor fi configurate şi interconectate pentru a forma blocuri funcţionale particularizate care vor realiza hardware o mare parte din sarcina aplicaţiei.
Microchip Technology | www.microchip.com