Vés al contingut

CISC i RISC: dos mons en l’arquitectura de processadors

En l’àmbit del disseny de processadors, les arquitectures CISC (Complex Instruction Set Computing) i RISC (Reduced Instruction Set Computing) representen dues aproximacions diferents a com una CPU processa les instruccions. Tot i que ambdues han evolucionat des dels anys 70, el seu disseny i diferències influeixen de manera significativa en el rendiment, l’eficiència energètica i en la complexitat dels sistemes i aplicacions on s’empren.

En aquest article analitzem amb detall les característiques de cada arquitectura, com funcionen i en quins entorns destaquen, oferint una visió clara de com han influït en la tecnologia actual.

Arquitectura CISC

Com el seu nom indica, l’arquitectura CISC es defineix per un conjunt d’instruccions complex, on una sola instrucció pot dur a terme múltiples operacions a nivell de hardware. Aquest enfocament va sorgir als anys 70, en un context on la memòria era costosa i els compiladors no eren prou avançats per optimitzar el codi de manera eficient. L’objectiu principal era reduir el nombre d’instruccions necessàries en un programa, disminuint així la mida del codi i aprofitant al màxim els recursos disponibles. Exemples destacats d’arquitectures CISC són x86 de Intel i x86-64 de AMD.

Tot seguit, revisem en profunditat les característiques clau de CISC, el seu funcionament, així com els seus avantatges, inconvenients i àmbits d’aplicació.

Característiques principals de CISC

  • Conjunt d’instruccions ampli i complex: Les instruccions en CISC són variades i permeten operacions sofisticades com multiplicacions, crides a funcions, gestió de bucles i manipulació directa de dades a la memòria. Aquestes instruccions poden tenir longitud variable segons la tasca a executar.
  • Suport directe per a operacions a memòria: Els processadors CISC poden executar operacions aritmètiques directament sobre dades emmagatzemades a la memòria, sense necessitat de carregar-les prèviament en registres.
  • Hardware més sofisticat: La complexitat del conjunt d’instruccions requereix un hardware avançat capaç de descodificar i executar instruccions complexes. Això inclou unitats de control amb microprogramació per traduir les instruccions en passos més simples.
  • Èmfasi en la reducció de la mida del codi: Una de les motivacions originals del disseny CISC és reduir la quantitat d’instruccions en el codi font, optimitzant l’ús de la memòria disponible.

Funcionament del hardware en CISC

El nucli del disseny CISC es troba en la seva unitat de control, que utilitza microprogramació per descompondre instruccions complexes en múltiples microoperacions. Aquest enfocament permet al processador executar una gran varietat de tasques sense que cada instrucció hagi d’estar codificada directament en el hardware.

  • Descodificació d’instruccions: Una instrucció complexa és analitzada i descomposta en operacions més simples. Així, una sola instrucció pot combinar la càrrega de dades des de la memòria, realitzar un càlcul i emmagatzemar el resultat.
  • Execució en diversos cicles de rellotge: Com que les instruccions són complexes, la seva execució sovint requereix múltiples cicles de rellotge (la unitat bàsica que mesura la velocitat a què un processador pot completar operacions, determinada per la freqüència del rellotge de la CPU). Això implica que les instruccions CISC poden ser més lentes d’executar en comparació amb instruccions més simples que s’executen en un sol cicle.
  • Flexibilitat i compatibilitat: L’ús de la microprogramació facilita l’actualització i l’ampliació del conjunt d’instruccions, permetent la compatibilitat cap enrere amb software més antic.

Arquitectura RISC

A diferència del model CISC, RISC es basa en un conjunt d’instruccions reduït i altament optimitzat. Aquest enfocament promou un disseny més eficient i ràpid mitjançant la simplificació del hardware del processador. L’arquitectura RISC prioritza la simplicitat, la velocitat i l’eficiència, i va sorgir com a alternativa a la complexitat dels sistemes CISC, amb l’objectiu d’executar instruccions ràpides i uniformes, optimitzant el rendiment mitjançant la segmentació (pipelining) i la reducció de la lògica de control.

Aquest model de disseny s’utilitza àmpliament en sistemes encastats, dispositius mòbils i aplicacions d’alt rendiment on l’eficiència energètica és un factor clau. Un exemple destacat són les arquitectures ARM, habituals en dispositius mòbils, així com PowerPC.

Característiques principals de RISC

  • Conjunt reduït d’instruccions: Les arquitectures RISC limiten el nombre d’instruccions disponibles i les simplifiquen perquè cada una realitzi una operació elemental, com un càlcul o una transferència de dades. Les instruccions solen tenir una longitud fixa, fet que en facilita la descodificació.
  • Execució ràpida i uniforme: Cada instrucció està pensada per completar-se en un sol cicle de rellotge, maximitzant la velocitat de processament i facilitant la previsió del rendiment.
  • Ús intensiu de registres: Les operacions es duen a terme principalment entre registres, evitant l’accés directe a memòria, que és més lent i costós en termes de temps.
  • Hardware simplificat: Gràcies a la simplicitat del conjunt d’instruccions, el hardware pot optimitzar-se per a operacions més ràpides i en paral·lel.
  • Segmentació optimitzada: L’arquitectura RISC està dissenyada per aprofitar la segmentació, dividint l’execució de les instruccions en etapes que es poden processar en paral·lel.

Funcionament del hardware en RISC

El disseny RISC busca maximitzar el rendiment mitjançant la simplicitat i la regularitat en l’execució de les instruccions.

  • Descodificació simple: Com que les instruccions tenen una longitud fixa i un format uniforme, el processador les pot descodificar ràpidament sense necessitat de hardware complex.
  • Execució en un sol cicle de rellotge: Cada instrucció es divideix en operacions bàsiques (com la lectura de registres, el càlcul i l’escriptura de resultats) que es poden completar en un únic cicle.
  • Ús extensiu de pipelining: La segmentació divideix l’execució en diverses etapes (com fetch, decode, execute), permetent que diverses instruccions es processin de manera simultània.
  • Optimització mitjançant el compilador: Els compiladors tenen un paper essencial en RISC, ja que han de traduir el codi d’alt nivell a instruccions que aprofitin eficientment els registres i redueixin al mínim els accessos a memòria.

Comparando arquitecturas: CISC vs RISC

CISCRISC
Conjunt d’instruccionsComplex i variat (longitud variable)Reduït i uniforme (longitud fixa)
Cicles per instruccióVariables (sovint múltiples cicles)Generalment un per instrucció
Complexitat del hardwareAlta (requereix descodificació avançada)Baixa (disseny simplificat)
Mida del codiMés petita, gràcies a instruccions complexesMés gran, ja que calen més instruccions per fer la mateixa tasca
Consum d’energiaMés elevat per la complexitat del hardwareMés baix, ideal per a dispositius mòbils
Aplicacions típiquesOrdinadors personals, servidorsDispositius mòbils, sistemes encastats, IoT, etc.

Futur de CISC i RISC

Amb l’evolució de la tecnologia, la distinció entre ambdues arquitectures s’ha anat esvaint. Avui dia, processadors CISC com els d’Intel incorporen moltes característiques típiques de RISC, com la segmentació i l’execució fora d’ordre. Al mateix temps, els processadors RISC han ampliat els seus conjunts d’instruccions, acostant-se en funcionalitat als CISC.

La competència entre CISC i RISC no té un guanyador clar, ja que cada arquitectura està dissenyada per resoldre problemes específics en contextos diferents. El que sí que és evident és que l’equilibri entre complexitat, eficiència i compatibilitat continuarà sent un factor clau en la innovació del disseny de processadors.

D’altra banda, les arquitectures ARM i RISC-V estan guanyant ràpidament popularitat gràcies a la seva eficiència energètica, mentre que CISC continua sent l’opció estàndard per a ordinadors d’escriptori i servidors.

Conclusions

Com hem vist al llarg de l’article, CISC i RISC són paradigmes diferents que aborden problemes similars, però amb enfocaments oposats.

L’arquitectura CISC ha estat fonamental en l’evolució dels processadors, proporcionant una solució eficaç per reduir la mida del codi i optimitzar l’ús de la memòria en sistemes tradicionals. A més, la seva capacitat per gestionar instruccions complexes directament des del hardware la fa especialment adequada per a entorns on la compatibilitat cap enrere i l’execució de programari antic són imprescindibles, com en ordinadors i servidors.

Tanmateix, aquesta complexitat té un cost: un consum energètic superior, hardware més costós i, potencialment, una velocitat d’execució inferior si la comparem amb arquitectures més modernes com RISC. Amb el seu enfocament en la simplicitat i l’eficiència, RISC s’ha consolidat com l’opció preferida en àmbits on el rendiment per watt és crucial. Així, encara que necessiti més instruccions per dur a terme operacions complexes, el seu disseny optimitzat per a la segmentació i el baix consum la fa altament efectiva en contextos moderns com dispositius mòbils, IoT i superordinadors.


Recursos:
[1] Wikipedia – RISC
[2] Wikipedia – CISC
[3] Universidad Autónoma Metropolitana – Arquitectura RISC vs CISC


A Block&Capital, especialistes en selecció de personal, treballem per crear oportunitats on el creixement i l’èxit siguin a l’abast de tothom. Si estàs preparat per fer un pas endavant en la teva carrera professional, no dubtis a contactar amb nosaltres.