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.
|