Instruction set: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Migliorata la grammatica
m ortografia. aggiunta spiegazione di un acronimo
Riga 6:
 
== Descrizione ==
Si tratta dell'insieme delle [[istruzione (informatica)|istruzioni]] base che il [[processore]] è in grado di eseguire, costituendo così il suo [[linguaggio macchina]]. A partire da questo, vengono scritti [[programma (informatica)|programmi]] nei vari [[linguaggio di programmazione|linguaggi di programmazione]] ad alto [[livello di astrazione]]. [[Computer]] con microarchitetture differenti possono condividere lo stesso instruction set: ad esempio, l'[[Intel]] [[Pentium]] e l'[[Advanced Micro Devices|AMD]] [[Athlon]] implementano versioni quasi identiche dell'instruction set [[x86]], pur essendo internamente molto diversi. Tra i dati nativamente disponibili troviamo le [[istruzione (informatica)|istruzioni]], i [[registro (informatica)|registri]], le [[metodi di indirizzamento|modalità di indirizzamento]], l'architettura della memoria, la gestione degli [[interrupt]] e delle [[Eccezione (informatica)|eccezioni]] e l'eventuale [[I/O]] esterno.
Tra i dati nativamente disponibili troviamo le [[istruzione (informatica)|istruzioni]], i [[registro (informatica)|registri]], le [[metodi di indirizzamento|modalità di indirizzamento]], l'architettura della memoria, la gestione degli [[interrupt]] e delle [[Eccezione (informatica)|eccezioni]] e l'eventuale [[I/O]] esterno.
 
Un'ISA (Instruction Set Architecture) è una specifica che definisce l'insieme di tutti i codici binari ([[opcode]]) che rappresentano i comandi eseguibili nativamente da un particolare design di [[CPU]]. L'insieme degli opcode di una specifica ISA è detto anche [[linguaggio macchina]] della ISA. Un'ISA può anche essere [[emulazione|emulata]] da un [[interprete (informatica)|interprete]] software. Poiché l'emulatore deve tradurre da un'ISA a un'altra, questa soluzione è in generale più lenta rispetto ad una ISA implementata in hardware. Oggi, i produttori di nuove ISA o microarchitetture spesso forniscono emulatori agli sviluppatori di software prima che l’hardware sia pronto. Questo permette loro di iniziare a lavorare e testare i loro programmi in anticipo.
Un'ISA può anche essere [[emulazione|emulata]] da un [[interprete (informatica)|interprete]] software. Poiché l'emulatore deve tradurre da un'ISA ad un'altra, questa soluzione è in generale più lenta rispetto ad una ISA implementata in hardware. Oggi, i produttori di nuove ISA o microarchitetture spesso forniscono emulatori agli sviluppatori di software prima che l’hardware sia pronto. Questo permette loro di iniziare a lavorare e testare i loro programmi in anticipo.
 
== Tipologie ==
Riga 17 ⟶ 15:
I diversi ISA possono essere divisi in due macro-categorie: i [[Reduced instruction set computer|RISC]] (''Reduced Instruction Set Computer'') e i [[Complex instruction set computer|CISC]] (''Complex Instruction Set Computer''). Le ISA RISC tendono ad avere operazioni semplici e veloci, con un'ampia disponibilità di [[registro (informatica)|registri]] per memorizzare i risultati intermedi. Invece, le ISA CISC mettono a disposizione del programmatore istruzioni più complesse, che talvolta replicano quelle dei linguaggi di alto livello (ad esempio, la copia di stringhe nei processori x86). In entrambi i casi, i migliori set di istruzioni tendono ad essere i cosiddetti set ''ortogonali'', in cui i diversi [[metodo di indirizzamento|metodi di indirizzamento]] e i vari registri possono essere utilizzati in modo intercambiabile in tutte le istruzioni. Esempi famosi di set di istruzioni ortogonali sono quelli del Motorola 68000 (CISC) e del [[Architettura MIPS|MIPS]] (RISC). L'ISA dei processori Intel x86 era originariamente poco ortogonale, ma è stata progressivamente migliorata nel tempo.
 
La distinzione tra ''set'' di istruzioni RISC e CISC è oggi un po' sfumata, perché la maggior parte dei processori consumer sono oggi dei [[CRISP]] (''C-language Reduced Instruction Set Processor),'' un misto tra i due tipi di set.
 
Inoltre, alcuni processori traducono l'ISA originale in un set di istruzioni interno, per ragioni e con modalità diverse: