Complex instruction set computer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Utente007 (discussione | contributi)
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
'''Complex instruction set computer''' ('''CISC''') indica un'architettura per [[microprocessore|microprocessori]] formata da un [[set di istruzioni]] contenente istruzioni in grado di eseguire operazioni complesse come la lettura di un dato in memoria, la sua modifica e il suo salvataggio direttamente in memoria tramite una singola istruzione. Il termine è nato per distinguere l'altro paradigma dominante nei microprocessori, il paradigma [[reduced instruction set computer]] (RISC).
 
==Descrizione==
Prima dello sviluppo dei primi processori CISC molte architetture per computer cercarono di colmare il ''buco semantico'' che esisteva tra i comandi ad alto livello messi a disposizione dai linguaggi di programmazione e i veri e propri comandi accettati dagli elaboratori. Questi calcolatori offrivano comandi per la gestione delle procedure, per la gestione dei loop e dei salti, per la gestione di strutture dati in memoria e per altri compiti comuni. Inoltre le istruzioni complesse fornite dai CISC permettevano la realizzazione di programmi compatti che quindi richiedevano poca memoria, una risorsa molto costosa negli anni 60.
 
Prima dello sviluppo dei primi processori CISC molte architetture per [[computer]] cercarono di colmare il ''buco semantico'' che esisteva tra i comandi ad alto livello messi a disposizione dai [[linguaggio di programmazione|linguaggi di programmazione]] e i veri e propri comandi accettati dagli elaboratori. Questi calcolatori offrivano comandi per la gestione delle procedure, per la gestione dei loop e dei salti, per la gestione di strutture dati in memoria e per altri compiti comuni. Inoltre le istruzioni complesse fornite dai CISC permettevano la realizzazione di programmi compatti che quindi richiedevano poca memoria, una risorsa molto costosa negli anni 60.
A vantaggio delle architetture CISC c'è la riduzione del divario esistente fra il linguaggio macchina e il linguaggio ad alto livello, in alcuni casi si possono avere istruzioni addirittura più potenti di quelle esprimibili in linguaggio ad alto livello.
 
Sebbene i processori CISC abbiano effettivamente permesso la realizzazione di linguaggio ad alto livello con l'uso di poche istruzioni non sempre questa tipologia di processori ha prodotto un reale incremento delle prestazioni. Per esempio si è scoperto che in un processore era più efficiente utilizzare una serie di istruzioni semplice piuttosto che utilizzare l'istruzione apposita per gestire le chiamate di sistema. Inoltre un set di istruzioni complesso richiede l'utilizzo di molto silicio, tempi di decodifica e di esecuzione maggiori anche per le istruzioni più semplici. Un set di istruzioni ampio richiede anche molti progettisti e transistor che quindi non possono essere utilizzati per incrementare le prestazioni.
A vantaggio delle architetture CISC c'è la riduzione del divario esistente fra il [[linguaggio macchina]] e il linguaggio ad alto livello, in alcuni casi si possono avere istruzioni addirittura più potenti di quelle esprimibili in linguaggio ad alto livello.
Sebbene i processori CISC abbiano effettivamente permesso la realizzazione di linguaggio ad alto livello con l'uso di poche istruzioni non sempre questa tipologia di processori ha prodotto un reale incremento delle prestazioni. Per esempio si è scoperto che in un processore era più efficiente utilizzare una serie di istruzioni semplice piuttosto che utilizzare l'istruzione apposita per gestire le chiamate di sistema. Inoltre un set di istruzioni complesso richiede l'utilizzo di molto [[silicio]], tempi di decodifica e di esecuzione maggiori anche per le istruzioni più semplici. Un set di istruzioni ampio richiede anche molti progettisti e [[transistor]] che quindi non possono essere utilizzati per incrementare le prestazioni.
Spesso le CPU CISC sono microprogrammate, cioè la fase di decodifica dell'istruzione nella [[CPU]] avviene attraverso un programma che risiede nella CPU stessa.