Instruction set: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Tipologie: Scorporo da Assembly
m Ortografia (preposizione troncata inusuale)
 
(15 versioni intermedie di 13 utenti non mostrate)
Riga 3:
{{Correggere|informatica|febbraio 2024}}
 
L{{'}}Un '''instruction set''', in [[informatica]] ed [[elettronica]], è l'un insieme di istruzioni macchina che descrive quegli aspetti, visibili a [[basso livello]] aldal [[programmatore]], dell'[[Architettura (computer)|architettura di un calcolatore]], definita in [[Lingua inglese|inglese]] come ''Instruction Set Architecture'' o incon l'[[acronimo]] '''ISA'''. L'espressione è a volte usata anche per distinguere l'insieme suddetto di caratteristiche dalla [[microarchitettura]] che è, l'insieme di tecniche di progettazione utilizzate per implementare l'insieme di istruzioni (tra cui [[microcodice]], [[Pipeline dati|''pipeline'']], e sistemi di [[CPU cache|''cache'']] e così via).
 
L{{'}}'''instruction set''', in [[informatica]] ed [[elettronica]], è l'insieme di istruzioni macchina che descrive quegli aspetti, visibili a basso livello al [[programmatore]], dell'[[Architettura (computer)|architettura di un calcolatore]], definita in [[Lingua inglese|inglese]] come ''Instruction Set Architecture'' o in [[acronimo]] '''ISA'''. L'espressione è a volte usata anche per distinguere l'insieme suddetto di caratteristiche dalla [[microarchitettura]] che è l'insieme di tecniche di progettazione utilizzate per implementare l'insieme di istruzioni (tra cui [[microcodice]], [[Pipeline dati|''pipeline'']], sistemi di [[CPU cache|''cache'']] e così via).
 
== Descrizione ==
Si tratta di fatto dell'insieme didelle [[istruzione (informatica)|istruzioni]] base che il [[processore]] puòè compierein egrado chedi eseguire, costituisconocostituendo dunquecosì il suo [[linguaggio macchina]],. aA partire dalda qualequesto, vengono scritti i relativi [[programma (informatica)|programmi]] nei vari [[linguaggio di programmazione|linguaggi di programmazione]] a piùad alto [[livello di astrazione]]. [[Computer]]s con microarchitetture differenti possono condividere lo stesso instruction set.: Adad esempio, l'[[Intel]] [[Pentium]] e l'[[Advanced Micro Devices|AMD]] [[Athlon]] implementano versioni quasi identiche dell'instruction set [[x86]], pur essendo al loro internointernamente totalmentemolto diversi.
Tra i dati nativamente disponibili ci sonotroviamo 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 dellche definisce l'insieme di tutti queii codici binari ([[opcode]]) che rappresentano i comandi implementatieseguibili nativamente da un particolare design di [[CPU]]. L'insieme degli opcode di una specifica ISA è detto anche [[linguaggio macchina]] della ISA.
Una Un'ISA può anche essere [[emulazione|emulata]] da un [[interprete (informatica)|interprete]] software. Poiché l'emulatore deve effettuare una traduzionetradurre da una un'ISA ad una ISA differenteun'altra, questa soluzione è in generale più lenta rispetto ad una ISA implementata in hardware. PressoOggi, i produttori di nuove ISA o microarchitetture, èspesso praticaforniscono comuneemulatori alagli giornosviluppatori d'oggidi quellasoftware diprima rendereche disponibilil’hardware emulatorisia aglipronto. sviluppatoriQuesto permette loro di softwareiniziare primaa chelavorare siae prontatestare l'implementazionei hardwareloro programmi in anticipo.
 
== Tipologie ==
{{vedi anche|RISC|CISC}}
 
I diversi ISA possono essere divisi in due grandi gruppimacro-categorie: i [[Reduced instruction set computer|RISC]] (''Reduced Instruction Set Computer'') e i [[Complex instruction set computer|CISC]] (''Complex Instruction Set Computer''). IlLe primoISA gruppoRISC tendetendono ad avere operazioni semplici e veloci, con grandeun'ampia abbondanzadisponibilità di [[registro (informatica)|registri]] per memorizzare i risultati intermedi. IlInvece, secondole ISA CISC mettemettono a disposizione del programmatore istruzioni più complesse, che atalvolta volte mimanoreplicano quelle dei linguaggi di alto livello più alto (ad esempio, la copia di stringhe nei processori x86). In entrambi i casi, i migliori set di istruzioni tendono ad essere quellii cosiddetti set ''ortogonali'', dovein cui i diversi [[metodo di indirizzamento|metodi di indirizzamento]] e i diversivari registri possono essere usatiutilizzati indifferentementein modo intercambiabile in tutte le istruzioni. FamosiEsempi 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 ben poco ortogonale, edma è andatastata progressivamente viamigliorata vianel migliorandotempo.
 
La distinzione tra ''set'' di istruzioni RISC e CISC è oggi un po' sfumata, perché la maggior parte dei processori consumer sono oggi dei [[CRISP]], cioè un misto fratra i due. tipi di set.

Inoltre, alcuni processori traducono l'ISA originale in un set di istruzioni interno, per ragioni diverse e con modalità diverse:
* nel caso dell'[[Intel]] [[Pentium 4]] e dell'[[Advanced Micro Devices|AMD]] [[Athlon]], è per liberarsi dalle limitazioni causate da un'ISA [[retrocompatibile]] ormai arcaica, e la conversione è eseguita direttamente da un hardware dedicato che effettua la necessaria ''decodifica'';
* nel caso dei processori [[Transmeta]], è per poter "tradurre" ISA di altri processori esistenti come se fossero proprie, e la traduzione è fatta da qualcosa di concettualmente molto simile aalle ''routine'' firmware'' (denominate ''microcodice'') memorizzate in un'area [[Read only memory|ROM]] ricavata sul silicio del microprocessore.
 
== Esempi ==
{{Div col}}
 
* [[DEC Alpha|Alpha AXP]]
* [[Architettura ARM|ARM]]
Riga 40 ⟶ 41:
* [[Java Virtual Machine]]
* [[LLVM|LLVM IR]]
{{Div col end}}
 
== Voci correlate ==
* [[Complex instruction set computer]]
* [[Reduced instruction set computer]]
Riga 53 ⟶ 54:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}