Instruction set: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Domenique43 (discussione | contributi)
Semplificazione
Etichetta: Annullato
m Ortografia (preposizione troncata inusuale)
 
(28 versioni intermedie di 17 utenti non mostrate)
Riga 1:
{{F|informatica|febbraio 2024}}
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).
{{C|La voce presenta varie imprecisioni, concetti di dubbia correttezza e, in alcuni punti, palesi stupidaggini. Da controllare a fondo la coerenza interna dell'esposizione.|informatica|febbraio 2024}}
{{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 '''''instructionInstruction setSet architecture'''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).
 
== 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}}
Sono disponibili diversi tipi di ISA, ma esse sono soggette sempre a nuovi mutamenti di pari passo con il progresso delle tecnologie informatiche; tuttavia esiste un'enorme quantità di [[microprocessore|microprocessori]] e [[microcontrollore|microcontrollori]] che implementano ISA di ogni genere. Sono persino comuni per alcune applicazioni delle ISA personalizzate, ad esempio quelle di [[ARC International]], gli [[Application specific integrated circuit|ASIC]], le [[Field programmable gate array|FPGA]] e le tecniche di [[reconfigurable computing]].
 
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.
== Architetture di uso comune==
 
La distinzione tra ''set'' di istruzioni RISC e CISC è oggi un po' sfumata, perché la maggior parte dei processori consumer sono oggi dei [[CRISP]], 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:
* 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 alle ''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 (computer)ARM|ARM]]
* [[CPUIA-64]]
* [[Architettura MIPS|MIPS]]
* [[Motorola 68000|Motorola 68k]]
* [[Architettura ARM|ARM]] (Acorn RISC Machine) (Advanced RISC Machine, oggi [[ARM Holdings]])
* [[PA-RISC]]
* [[DEC Alpha|Alpha AXP]] ([[Digital Equipment Corporation|DEC]] Alpha)
* [[IA-64]] ([[Itanium]])
* [[IBM System/360|System/360]]
* [[INMOS Transputer|Transputer]] (STMicroelectronics)
* [[Motorola 68000|Motorola 68k]]
* [[PA-RISC]] ([[Hewlett-Packard|HP]] Precision Architecture)
* [[POWER]]
* [[PowerPC]]
* [[SPARC]]
* [[SuperH]]
* [[IBM System/360|System/360]]
* Tricore (Infineon)
* [[VAX]] (Digital Equipment Corporation)
* [[x86]]
* [[x86]] ([[IA-32]], [[Pentium]], [[Athlon]]) ([[x86-64]], [[EM64T]])
* [[p-code]]
* [[Java Virtual Machine]]
* [[LLVM|LLVM IR]]
{{Div col end}}
 
== Voci correlate ==
* [[Architettura (computer)]]
* [[Complex instruction set computer]]
* [[CPU]]
* [[Emulatore]]
* [[Hardware abstraction layer]]
* [[Instruction level parallelism]]
* [[Linguaggio assembly]]
* [[Macchina virtuale]]
* [[Microcontrollore]]
* [[Microprocessore]]
* [[Minimal instruction set computer]]
* [[Reduced instruction set computer]]
* [[RegisterStreaming TransferSIMD LanguageExtensions]]
* [[CUDA]]
* [[Architettura dei calcolatori]]
 
== Altri progetti ==
{{Interprogetto|preposizione=sull'|wikt=instruction set}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
 
{{Multimedia extensions}}
{{Controllo di autorità}}
{{Portale|informatica|elettronica}}
 
[[Categoria:Microprocessore]]