Tips & Trick - Informatica

 

 

RISC e CISC


RISC o Reduced Instruction Set Computer  è un tipo di architettura di microprocessore che utilizza un set di istruzioni piccolo e altamente ottimizzato, piuttosto che un insieme più specializzato e molto ampio (CISC - Complex Instruction Set Computer).

I primi progetti RISC provengono da IBM, Stanford e UC-Berkeley alla fine degli anni '70. 
IBM 801, Stanford MIPS, e Berkeley RISC 1 e 2 sono stati tutti progettati con una filosofia simile, che è diventata noto come RISC. 

Alcune caratteristiche di questi progetti sono comuni alla maggior parte dei processori RISC:

  • set di istruzioni in numero limitato
  • tempo di esecuzione di una istruzione possibilmente di un ciclo.
  • ottimizzazione di ogni istruzione sulla CPU
  • pipelining, che consente l'esecuzione simultanea di parti, o stadi, di istruzioni per elaborarle in modo più efficiente

Per contro, l' architettura CISC nasce per colmare il gap semantico tra i comandi ad alto livello messi a disposizione dai linguaggi di programmazione e i veri e propri comandi accettati dalle CPU.
Istruzioni complesse permettono, inoltre, la realizzazione di programmi compatti che quindi richiedono poca memoria, una risorsa molto costosa nel passato. 
A vantaggio delle architetture CISC c'è la riduzione del divario esistente fra il linguaggio macchina e il linguaggio ad alto livello, tanto che in alcuni casi si possono avere istruzioni addirittura più potenti di quelle esprimibili in linguaggio ad alto livello. Il che richiede, però, compilatori molto sofisticati in grado di poter usare al meglio tutte queste istruzioni per produrre un reale incremento delle prestazioni, cosa non sempre avvenuta. Anche perchè istruzioni complicate finiscono spesso per essere utilizzate raramente. 
Dal punto di vista costruttivo,  un set di istruzioni ampio richiede anche molti transistor, con una maggiore complicazioni circuitale, maggiore potenza impegnata per il funzionamento ed aree di silicio più vaste. e magior difficoltà nella decodifica, tutte risorse che non possono essere utilizzati per incrementare le prestazioni. Inoltre, spesso, le CPU CISC sono microprogrammate, cioè la fase di decodifica dell'istruzione nella CPU avviene attraverso un programma che risiede nella CPU stessa (microcode).
Sono in questa tecnologia: System/360, VAX, PDP-11,  Motorola 68000,  x86 di Intel e le CPU di AMD.

L'acronimo RISC ha portato spesso dei fraintendimenti. Molti leggendo set di istruzioni ridotti pensa a un set di istruzioni limitato, nel senso di non essere in grado di eseguire programmi complessi. Invece si è verificato che in un processore può essere più efficiente se utilizza una serie di istruzioni semplici piuttosto che poche complesse istruzioni delle quali diventa complicata la decodifica e l' esecuzione.
In pratica, i processori RISC sono dotati di un set di istruzioni elementari molto completo, combinando le quali si possono ottenere gli stessi risultati delle super istruzioni dei CISC; non sono però disponibili metodi di indirizzamento complessi e il trasferimento dei dati avviene attraverso pochi registri di lavoro (ad esempio il WREG dei PIC) . 

L' architettura RISC ha preso piede nell' ambito dei microprocessori e dei microcontroller, tanto che oggi, l'Intel x86 (e i concorrenti AMD) è indiscutibilmente l'unico chip che conserva l'architettura CISC. 
Ciò è dovuto principalmente ai progressi in altri settori della tecnologia informatica. 
Però le tecnologie di costruzione sono diventate più sofisticate, mentre i costi si sono ridotti (ad esempio, nel 1977, 1 MB di DRAM costava di circa $ 5.000. Oggi il costo è inferiore a 10$);  la tecnologia dei compilatori è migliorata e più potente ed origina oggetti altamente ottimizzati, mentre le tecnologie CMOS e la riduzione delle geometrie consentono risultati solo immaginabili 40 anni fa.

Ne consegue che, in pratica, possiamo parlare di una convergenza tra le due strutture. 

Un certo numero di miglioramenti sono ora utilizzati sia da RISC che da CISC. Inoltre pare cessata "la guerra delle istruzioni" scatenata tra Intel e AMD all' epoca delle continue evoluzioni dei set (MMX, SSE, SSE2 , 3DNow!) e le linee tra le due architetture hanno cominciato a confondersi.
Poiché le velocità di processori sono aumentate, i chip CISC sono in grado di eseguire più di una azione all'interno di un singolo ciclo di clock. Questo permette di fare uso di pipelining anche complesse e di grande ampiezza, supportate da altre tecnologie, come SMT (Simultaneous Multi Threading) e Value Prediction. Inoltre, con la riduzione delle geometrie, è possibile montare molti più transistor su un singolo chip. Questo dà a processori RISC spazio sufficiente per incorporare comandi CISC e fare uso di hardware più complesso, con le unità funzionali supplementari per l'esecuzione superscalare. 
Da parte di alcuni commentatori si sostiene che sia in atto un'epoca "post-RISC", in cui le due filosofie iniziali sono diventati così simili che la distinzione tra di loro non è più rilevante. 

Tuttavia, va notato che strutture quasi puramente RISC sono ancora quelle comuni nel campo dei microcontroller, dove sono essenziali:

  • Basso costo 
  • Ampia scalabilità di prestazioni, di complessità (da 8 pin a 144 pin) e velocità (da 1 MHz a 200 MHz).
  • Vasta gamma di dotazioni in periferiche e moduli specializzati.
  • Ridotto numero di componenti esterni, ovvero semplicità ed economicità di realizzazione.
  • Facilità di programmazione
  • Necessità di tools di sviluppo e linguaggi compilatori gratuiti o a costi limitati.
  • Brevi tempi di introduzione sul mercato del prodotto finito. 

Sono RISC i microcontroller PIC di Microchip.


 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 29/09/14 .