Manual pentru microcontrolere

M. Predko Manual privind microcontrolerele

Procesor arhitectura

Așa cum am menționat mai sus, nu aș vrea să intru într-o discuție despre care dintre cele mai bune arhitecturi este CISC sau RISC, Harvard sau Princeton. Voi încerca să explic diferențele dintre aceste arhitecturi și să arăt cum se leagă de microcontrolere.







CISC v. RISC

În prezent, există multe procesoare RISC (Reduced Instruct Set Computers), deoarece sa crezut că RISC este mai rapid decât procesoarele CISC (Complex Instruction Set Computers). Această mișcare nu este în întregime adevărată. Există o mulțime de procesoare numite RISC, dar ele sunt într-adevăr legate de CISC. Mai mult, în unele aplicații, procesoarele CISC execută codul programului mai repede decât procesoarele RISC sau rezolvă sarcini pe care procesoarele RISC nu le pot executa.

Posibilitatea utilizării egale a tuturor registrelor procesorului este denumită "ortogonalitate" sau "simetrie" a procesorului. Aceasta oferă o flexibilitate suplimentară pentru anumite operații. Luați în considerare, de exemplu, executarea tranzițiilor condiționate în program. În CISC-npoceccopax, un salt condițional este de obicei implementat în conformitate cu o valoare specificată a unui bit (pavilion) în registrul de stare. În procesoarele RISC, poate apărea un salt condițional la o anumită valoare de biți, care este localizată oriunde în memorie. Acest lucru simplifică foarte mult operațiile cu steaguri și execută programe care utilizează aceste steaguri.

Succesul cu procesoarele RISC este dat de faptul că comenzile lor mai simple necesită mult mai puține cicluri de mașină de executat. Astfel, se obtine o crestere semnificativa a performantei, ceea ce permite procesatorilor RISC sa rezolve eficient sarcinile extrem de complexe.

HARVARD v. PRINSTON

Cu mulți ani în urmă, guvernul Statelor Unite a ordonat universităților din Harvard și Princeton să dezvolte o arhitectură informatică pentru artileria navală. Universitatea Princeton a dezvoltat un calculator care avea o memorie comună pentru stocarea programelor și a datelor. Această arhitectură a computerelor este mai cunoscută ca arhitectura lui Von Neumann de către numele liderului științific al acestei dezvoltări (figura 1.3).

În această arhitectură, blocul de interfață cu memorie efectuează arbitrarea cererilor de memorie, oferind o selecție de comenzi, citirea și scrierea datelor aflate în memorie sau în registrele interne. Se poate părea că unitatea de interfață este cel mai strâns loc între procesor și memorie, deoarece simultan cu datele este necesară selectarea următoarei comenzi din memorie. Cu toate acestea, în multe procesoare cu arhitectură Princeton, această problemă este rezolvată prin selectarea următoarei comenzi în momentul celei anterioare. Această operație se numește prefetching (preselecție) și este implementată în majoritatea procesoarelor cu această arhitectură.






Universitatea Harvard a prezentat dezvoltarea unui calculator în care au fost folosite bănci de memorie separate pentru a stoca programe, date și o stivă (Figura 1.4)

Arhitectura de la Princeton a câștigat competiția, deoarece aceasta corespundea mai bine nivelului tehnologiei din acea vreme. Utilizarea memoriei generale a fost mai preferabilă din cauza lipsei de fiabilitate a electronicii lămpii (aceasta a fost înainte de răspândirea largă a tranzistorilor) - cu mai puține eșecuri.

Arhitectura arhitecturii a fost greu de folosit până la sfârșitul anilor 1970, când producătorii de microcontrolere au realizat că această arhitectură dă preemptibilitate dispozitivelor pe care le-au dezvoltat.

Principalul avantaj al arhitecturii lui Von Neumann este că simplifică dispozitivul microprocesorului, deoarece implementează doar o singură memorie comună. Pentru microprocesoare, cel mai important lucru este că conținutul RAM (Random Memory Assessor Memory) poate fi folosit atât pentru stocarea datelor cât și pentru stocarea programelor. În unele aplicații, programul trebuie să aibă acces la conținutul stiva. Toate acestea oferă o mare flexibilitate dezvoltatorului de software, în special în domeniul sistemelor de operare în timp real, care vor fi discutate mai târziu.

Arhitectura Harvard efectuează comenzi pentru un număr mai mic de astfel de lucruri decât arhitectura lui Von Neumann. Acest lucru se datorează faptului că există mai multe posibilități pentru arhitectura Harvard de a implementa operațiuni paralele. Selecția următoarei comenzi se poate realiza simultan cu execuția comenzii anterioare și nu este necesar să opriți procesorul pentru timpul selectat.

De exemplu, dacă un procesor cu arhitectură de la Princeton trebuie să citească un octet și să îl pună într-o baterie, produce secvența acțiunilor prezentate în Fig. 1.5. În primul ciclu, se selectează o comandă din memorie, în următorul ciclu se citesc datele din memorie din memorie.

În arhitectura Harvard, care oferă un grad mai mare de paralelism al operațiilor, executarea operației curente poate fi combinată cu selectarea următoarei comenzi (Fig.1.6). Comanda este executată și în două cicluri, dar selectarea comenzii următoare se face simultan cu execuția celei anterioare. Astfel, comanda este executată într-un singur ciclu (în timp ce citiți următoarea comandă).

Această metodă de implementare a operațiunilor ("paralelism") permite echipelor să execute același număr de cicluri, ceea ce face posibilă determinarea mai ușoară a duratei de execuție a ciclurilor și a secțiunilor critice ale programului. Această circumstanță este deosebit de importantă atunci când se alege un microcontroler pentru aplicații în care este necesară furnizarea strictă a unui anumit timp de execuție.

De exemplu, microcontrolerul PIC de la MICROCHIP efectuează orice comandă, cu excepția celor care modifică conținutul contorului de programe, timp de patru cicluri (un ciclu). Acest lucru simplifică implementarea procedurilor critice în timp, comparativ cu microcontrolerul Intel 8051, unde se efectuează între 16 și 64 de cicluri de ceas pentru a executa comenzi. Din această cauză, este adesea imposibil să se calculeze manual timpul de execuție exact al programului și trebuie să aplicați simulatoare sau emulatori hardware.

Trebuie menționat că astfel de metode comune de comparare a performanțelor nu ar trebui să fie utilizate pentru toate procesoarele și microcontrolerele în care sunt implementate aceste două arhitecturi. Comparația se face mai bine în raport cu o aplicație specifică. Arhitecturile și dispozitivele diferite au propriile caracteristici specifice, care permit cea mai bună modalitate de a implementa aceste sau alte aplicații. În unele cazuri, o aplicație specifică poate fi efectuată numai utilizând o anumită arhitectură și caracteristici specifice ale microcontrolerului.

După ce ați citit această secțiune, mulți vor crede probabil că arhitectura Harvard este singura alegere potrivită. Dar arhitectul Harvard nu este suficient de flexibil pentru unele dintre procedurile de programare care sunt necesare pentru a implementa o serie de aplicații. Un exemplu adecvat va fi dat în această carte.

Nu ar trebui să consideri că o arhitectură este mai bună decât alta. Această carte va descrie diferențele dintre arhitecturile microcontrolerului, avantajele și dezavantajele acestora în diverse situații.







Articole similare

Trimiteți-le prietenilor: