Non mi è perfettamente chiara la differenza fra microprocessori CISC e RISC. Che impatto ha la scelta di un'architettura piuttosto che dell'altra sul lavoro?
CISC e RISC adottano differenti filosofie nella gestione delle istruzioni che sono in grado di eseguire. I microprocessori CISC (Complex Instruction Set Computing) privilegiano l’espressività e la potenza delle istruzioni e l’ampiezza di scelta offerta, anche se questo comporta una complessità circuitale maggiore, con una conseguente maggior difficoltà per salire di frequenza e quindi, in ultima analisi, il rischio di un limite alla possibilità di un aumento di prestazioni. Attualmente costituiscono esempi paradigmatici di CPU CISC i processori x86 e compatibili, ossia i membri delle famiglie Celeron, Centrino, Pentium, Xeon, Core e Core2 per Intel, e i rispettivi concorrenti Sempron, Turion, Athlon e Opteron di AMD.
Completamente opposta la filosofia dei processori RISC (Reduced Instruction Set Computing) nei quali il set di istruzioni è stato razionalizzato e ridotto al minimo indispensabile per poter comunque svolgere qualsiasi compito, e ci si è focalizzati invece su una ottimizzazione estrema del flusso di lavoro, facilitata dalla semplificazione circuitale. Lo spazio risparmiato nella CPU permette di compensare la relativa “povertà” espressiva delle istruzioni integrando una grande quantità di cache, o costruendo un’architettura decisamente superscalare, o ancora aumentando il numero di registri, mentre la semplicità delle istruzioni consente di eseguirle in breve tempo e quindi di aumentare la frequenza di lavoro della CPU.
Al suo apparire, la tecnologia RISC colpì subito gli addetti ai lavori per l’efficacia con cui sembrava consentire rapidi aumenti di frequenza e di prestazioni, bassi costi di produzione e semplicità di programmazione. Tuttavia, col tempo, i produttori di processori CISC trovarono il modo di applicare anche nei propri progetti alcune delle più interessanti idee alla base della tecnologia RISC, riuscendo a colmare il gap prestazionale con i concorrenti. Per esempio, il modo in cui le moderne architetture Pentium e Athlon gestiscono internamente l’esecuzione delle istruzioni per decomposizione le fa assomigliare a dei “gusci” CISC costruiti come se fossero “interpreti” intorno a dei nuclei di esecuzione di stampo RISC.
I più noti processori RISC sono gli ARM usati su palmari e smartphone, gli SPARC, Alpha, PA-RISC e MIPS utilizzati sulle workstation Unix di Sun, Digital, Compaq, HP, nonchè i processori PowerPC utilizzati dagli Apple Mac fino alla recente svolta in favore di Intel.
Merita un cenno anche un’ultima soluzione per la scelta del set di istruzioni, detta Very Long Instruction Word (VLIW). In questo sistema parzialmente a metà strada tra RISC e CISC, le istruzioni sono in realtà degli aggregati di istruzioni paragonabili a quelle RISC: chi emette il codice oggetto del programma istruisce la CPU sulle opportunità di esecuzione parallela impacchettando insieme le istruzioni che è certamente possibile eseguire in modo contemporaneo. Spesso vengono anche inserite indicazioni sul percorso più probabile che i cicli o le decisioni seguiranno durante l’esecuzione. Questo permette al processore di non dover più supportare la complicata esecuzione speculativa, di non doversi più preoccupare di studiare le istruzioni per cogliere eventuali possibilità di parallelizzazione, e anche di risparmiare le pipeline parallele per la riduzione della latenza in caso di deviazioni inattese dal flusso di controllo.
Nonostante l’idea non sia nuova (il concetto originale fu proposto negli anni ‘80), le implementazioni VLIW non sono state molte e non hanno incontrato grande successo di mercato. L’architettura IA64 dei processori Intel Itanium, con la sua tecnologia EPIC (Explicitly Parallel Instruction Computing), rappresenta la più recente interpretazione dei concetti VLIW.
