- Arquitectures de processador
- Arquitectura de conjunts d’instruccions RISC i CISC
- Computació de conjunts d’instruccions complexes (CISC)
- Informàtica reduïda del conjunt d’instruccions (RISC)
El sistema incrustat és el cor i el nucli de la majoria de productes electrònics disponibles al mercat. És la implementació d’enginyeria en què el maquinari compleix amb el programari. Estem envoltats d’un món de sistemes incrustats, amb mini-ordinadors en panys biomètrics, avions, cotxes, marcapassos, etc. Aquests recursos reduïts, sistemes petits, intel·ligents i potents ens ajuden en les nostres tasques diàries.
Alguna vegada heu pensat en com funciona el nostre cos, els sistemes nerviosos, el cervell i la capacitat de fer múltiples tasques. Si combineu totes aquestes funcions, obtindreu una imatge aproximada d’un sistema incrustat biològic. El nostre cervell amaga els complexos detalls del seu funcionament que té lloc al seu interior, però ens permet controlar-lo al màxim potencial. La mateixa complexitat passa amb el processador o controlador que s’utilitza en sistemes incrustats. Oculten detalls complexos i ens proporcionen una interfície d’alt nivell per treballar. Pel que fa al nivell d'abstracció, es pot relacionar com el codi per afegir dos números en un llenguatge de programació d'alt nivell provoca que els registres dels xips manegin bits i retornin una sortida a l'usuari.
Arquitectures de processador
La unitat central de processament, referida tant al microprocessador com al microcontrolador, realitza tasques específiques amb l'ajut d'una unitat de control (CU) i una unitat lògica aritmètica (ALU). A mesura que les instruccions es lliuren des de la memòria RAM, la CPU actua amb l'ajut de les seves dues unitats ajudants creant variables i assignant-los valors i memòria. És realment important saber com realitza la CPU tota aquesta acció amb l'ajut de la seva arquitectura. Si voleu saber més sobre com funciona un microcontrolador, podeu llegir aquest article bàsic de microcontroladors.

Cada CPU té associada una memòria per emmagatzemar el programa i les dades. El programa i les dades funcionen amb la CPU per obtenir la sortida. El programa proporciona la instrucció mentre que les dades proporcionen la informació a treballar. Per accedir al programa i a les dades, la CPU utilitza busos, aquests busos són cables, més exactament aquests són els rastres de filferro tal com heu pogut veure a les plaques de circuits impresos. Al llarg d’aquests anys, els microcontroladors i microprocessadors han evolucionat adaptant diverses arquitectures, basant-se en els requisits d’aplicació o disseny, la selecció del microcontrolador està influïda pel tipus d’arquitectura que s’utilitza. Fem una ullada a les populars arquitectures.
Arquitectura Von-Neumann / Princeton
La manera com la CPU accedeix al programa i a les dades, explica l’arquitectura de la CPU. Anteriorment, es feia servir un únic bus per obtenir accés al programa i a les dades. Aquest tipus d’arquitectura es coneix amb el nom de Von Neumann Architecture o més simplement Princeton Architecture. Un únic bus per obtenir el codi i les dades vol dir que s’interposen i redueixen la velocitat de processament de la CPU perquè cadascun ha d’esperar que l’altre finalitzi la recuperació. Aquesta limitació també es coneix com a condició de coll d'ampolla de Von-Neumann.

Arquitectura de Harvard
Per accelerar el procés es va proposar Harvard Architecture. En aquesta arquitectura hi ha presents busos de dades separats per a dades i programa. Per tant, significa que aquesta arquitectura va proposar l’ús de quatre autobusos
- Un conjunt de bus de dades que transporta les dades dins i fora de la CPU.
- Un conjunt de bus d’adreces per accedir a les dades.
- Un conjunt de bus de dades per transportar codi a la CPU.
- Un bus d’adreces per accedir al codi.

L'ús de bus d'adreces i bus de dades separats significava un temps d'execució baix per a la CPU, però això comporta un cost de complexitat en el disseny de l'arquitectura. L’arquitectura Von Neumann pot semblar una mica mandrosa, però té l’avantatge del seu disseny senzill.
L’arquitectura de Harvard és molt fàcil d’implementar quan la CPU i les unitats de memòria comparteixen el mateix espai o s’incorporen la memòria RAM i la ROM (on-chip) amb la unitat de processament, com ara en un microcontrolador on les distàncies són en micres i mil·límetres. Tot i això, la mateixa arquitectura és difícil d’implementar quan la memòria que conté el codi és externa a la unitat de processament, com ara la de l’ ordinador IBM x86. Un conjunt de traces de cable separades tant per a les dades com per a l' adreça de la placa base faria que la placa fos complexa i cara. Ho entenem amb un exemple de processador.
Un processador amb bus de dades de 64 bits i bus d’adreces de 32 bits necessitaria aproximadament 100 busos (96 per al bus de dades i adreces i pocs més per als senyals de control) per implementar l’arquitectura Von-Neumann. La mateixa estructura si s’implementés amb l’arquitectura Harvard costaria aproximadament 200 traces de doble fil amb un gran nombre de pins que sortien del processador. És per la mateixa raó que no veiem implementada arquitectura pura de Harvard per a PC i estacions de treball. En lloc d'això, s'utilitza una arquitectura Harvard modificada en la qual s'utilitza una jerarquia de memòria amb memòria cau de CPU per separar el programa i les dades. La jerarquia de memòria separa l’emmagatzematge en funció de la jerarquia del temps de resposta dels processos.
Arquitectura de conjunts d’instruccions
Com que el programa (codi) es carrega a la memòria del sistema (RAM), la CPU l’obté (referint-se tant al microprocessador com al microcontrolador) per actuar sobre les dades, és molt similar ja que donem instruccions quan entrenem el gos per certes accions i ordres. A mesura que aquestes instruccions s'actuen sobre determinats transistors, passa d'un nivell lògic a un altre per aconseguir que això passi. Així, bàsicament, amb l'ajut d'instruccions, el programador humà es comunica amb el processador. Cada CPU té el seu propi conjunt d’instruccions, una col·lecció d’instruccions basades en la seva arquitectura i capacitats.
La CPU entén aquestes instruccions en la combinació de 0 i 1 que també es coneixen com a codi op. Per a un programador humà, és realment difícil recordar la combinació de 0 i 1 per a cada instrucció associada a la CPU. Per facilitar la feina d'un programador humà, se'ns proporcionen interfícies d'alt nivell d'aquestes instruccions i el compilador les converteix en forma de 0 i 1 per al seu processament. També en el conjunt d’instruccions de cada CPU, té un nombre limitat d’instruccions que pot entendre.
Rendiment de la CPU
És possible que hàgiu sentit el terme freqüència de rellotge de la CPU relacionada amb el rendiment de la CPU. Les CPU solen tenir una freqüència de rellotge en MHz (Mega-Hertz) o GHz (Giga-Hertz) com la freqüència de rellotge de 25 GHz. El nombre associat amb la freqüència de rellotge indica quantes vegades el rellotge dins de la CPU marca en cicles per segon. La pràctica de la freqüència de rellotge es pot entendre pel fet que les instruccions es realitzen basant-se en cicles de rellotge de la CPU, que és proporcional al nombre de programes que pot executar la CPU alhora.

El rendiment de la CPU depèn del nombre d’instruccions que s’escriuen al programa, més instruccions, més el temps que triga la CPU a realitzar-les. També depèn del nombre de cicles de rellotge en què s'executi cada instrucció; certes instruccions necessiten més cicles de rellotge que d'altres perquè es retardin el rendiment de la CPU. Les instruccions d’un programa i els cicles necessaris per realitzar cada instrucció són inversament proporcionals entre si. El canvi d’un afectarà l’altre. Aquest és el punt en què es divideix la indústria de la CPU.
Arquitectura de conjunts d’instruccions RISC i CISC
Com s'ha dit anteriorment, l'execució d'un programa i el rendiment de la CPU depenen del nombre d'instruccions en un programa en què les instruccions es proposen a aquesta CPU particular com a part del conjunt d'instruccions i el segon factor és el nombre de cicles de rellotge en que s'executa cada instrucció. Basant-se en aquests dos factors, actualment hi ha dos conjunts d’instruccions disponibles. El primer dels quals és la Computació de conjunts d’instruccions complexes (CISC), mentre que l’altre és la Computació de conjunts d’instruccions reduïda (RISC). Analitzem detalladament cadascuna d’aquestes arquitectures per entendre la diferència entre RIC i CISC Architecture.

Computació de conjunts d’instruccions complexes (CISC)
CISC significa Complex Instruction Set Computing. El principal motiu del CISC és reduir el nombre d’instruccions que executa un programa, això es fa combinant moltes instruccions simples com el mode d’adreces, càrrega, etc. i formar una sola instrucció complexa. La instrucció CISC inclou una sèrie d’instruccions senzilles i algunes instruccions especials que necessiten més d’un cicle de rellotge per executar-se. Les instruccions CISC poden funcionar directament sobre la memòria sense la intervenció de registres, cosa que significa que elimina la necessitat d'algunes instruccions bàsiques com la càrrega de valors i el requisit de memòria (RAM). Les instruccions del CISC fan èmfasi més en el maquinari que en el programari, cosa que significa que, en lloc de carregar els compiladors,CISC utilitza transistors com a maquinari per descodificar i implementar instruccions. No obstant això, com que la instrucció és complexa i consta de múltiples passos, s'executen en més cicles de rellotge.
Una simple analogia per relacionar-se és quan se us diu que obriu el llibre i que llegiu la segona pàgina del tercer capítol. En aquesta sèrie d'activitats, feu diversos passos, com ara cercar el llibre de la bossa que canviar la pàgina al capítol 3 i anar a la segona pàgina del capítol i començar a llegir. La sèrie d'un pas si es combina en una sola instrucció de lectura de la pàgina 44 (que és la segona pàgina número del tercer capítol), obtenim una instrucció CISC.
Informàtica reduïda del conjunt d’instruccions (RISC)
El primer xip integrat va ser dissenyat per Jack Kilby el 1958, que era un oscil·lador i el 1970 va sortir el primer microprocessador comercial d'Intel. Tot i que a l'inici dels processadors no hi havia CISC. Però amb les pesades exigències informàtiques l’arquitectura CISC era cada vegada més complexa i difícil de manejar. Un redisseny total de l'arquitectura CISC conegut com a RISC va sortir d' IBM per John Coke. Així, per diferenciar entre les dues arquitectures es van introduir els termes RISC i CISC.
RISC significa computació reduïda del conjunt d’instruccions. El principal motiu de RISC era introduir la uniformitat en la mida i l'execució de les instruccions. Això es va fer introduint un conjunt d'instruccions senzilles que es podrien executar com una instrucció per cicle, això es fa trencant instruccions complexes com carregar i emmagatzemar en instruccions diferents, on cada instrucció triga aproximadament un cicle de rellotge a executar-se. L' arquitectura RISC inclou instruccions senzilles de la mateixa mida que es podrien executar en un sol cicle de rellotge. Les màquines basades en RISC necessiten més memòria RAM que CISC per mantenir els valors mentre carrega cada instrucció als registres. L’execució d’una instrucció única per cicle proporciona a les màquines basades en RISC l’avantatge de la canonada(la canalització és el procés en què es carrega la següent instrucció abans que s'executi la primera instrucció, cosa que augmenta l'eficiència de l'execució) Destaca l' arquitectura RISC
