Le
sigle significano:
Si tratta di due precisi indirizzi architetturali hardware. L'ingegnere elettronico decide il numero e la tipologia delle istruzioni eseguibili dalla CPU. In linea di principio può scegliere un menù ricco oppure uno ridotto all'osso. Nel primo caso si parla di macchina CISC, nel secondo di una RISC. Facciamo un piccolo esempio con la moltiplicazione che ha un solo circuito in una macchina RISC, mentre in quella CISC ci sono fino a venti circuiti di moltiplicazione che si specializzano per tipo di dato (a virgola fissa e mobile), per ampiezza dell'operando (ad esempio 2, 4 o 8 bytes), per il suo supporto (memoria Ram oppure un registro), per la base di codifica del dato (binaria, ottale o decimale) ecc. Le operazioni CISC sono più numerose ed anche ovviamente più sofisticate di quelle RISC che svolgono funzioni essenziali di calcolo e di controllo. La macchina RISC estrema è un prototipo costruito alcuni anni fa in Israele con una sola istruzione: un movimento condizionato.
La scelta delle istruzioni riguarda la tecnologia hardware ma influenza anche il software. Le architetture CISC e RISC incidono sui linguaggi di programmazione, e lo fanno in modo completamente diverso su:
L'impatto dell'architettura al punto 1 è diretto. Il programmatore Assembler deve conoscere ed usare correttamente le operazioni hardware della macchina una ad una (vedi risposta 86), per cui la programmazione Assembler è completamente diversa su Risc e su CISC. L'impatto al punto 2 non viene percepito dal programmatore usuale che ad esempio lavora in Pascal. Egli non vede le istruzioni macchina ma quelle simboliche del suo linguaggio che restano le stesse nelle due architetture. CISC e RISC non influenzano i programmatori usuali ma gli esperti che preparano i compilatori dei linguaggi. Ricordiamo che il compilatore traduce una istruzione simbolica mediante un certo numero di istruzioni macchina. Dunque ha un diverso comportamento nei sistemi CISC e RISC che illustriamo con il seguente esempio. Prendiamo l'istruzione simbolica LOG(X). Il compilatore la traduce con poche in ambito CISC perché la macchina possiede un ricco menu di istruzioni specializzate per lo scopo, invece in ambito RISC il compilatore traduce LOG(X) con molte istruzioni le quali devono sopperire al rudimentale menu a disposizione. Cioè per ottenere lo stesso scopo, in ambito RISC si hanno gruppi di operazioni più grandi rispetto al CISC.
I computer degli anni
cinquanta a causa della primitiva tecnologia elettronica erano RISC. A partire dagli
anni sessanta crebbero come CISC, e macchine di qualunque classe: mainframe, mini, personal, ed altri ancora, si arricchirono di centinaia di istruzioni
hardware. Negli anni ottanta si cominciò a valutare la loro effettiva
utilità e
si scoprì che moltissime istruzioni non venivano mai adoperate. Perciò negli anni novanta
tornarono a diffondersi i RISC, più compatti ed adatti a semplici elaborati.
anno 2004 |
99. Vorrei sapere la differenza che esiste tra un computer CISC e uno RISC. |