Instruction set

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

L'instruction set, in informatica ed elettronica, è l'insieme di istruzioni macchina che descrive quegli aspetti, visibili a basso livello al programmatore, dell'architettura di un calcolatore, definita in 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, sistemi di cache e così via).

Descrizione[modifica | modifica wikitesto]

Si tratta di fatto dell'insieme di istruzioni base che il processore può compiere e che costituiscono dunque il suo linguaggio macchina, a partire dal quale vengono scritti i relativi programmi nei vari linguaggi di programmazione a più alto livello di astrazione. Computers con microarchitetture differenti possono condividere lo stesso instruction set. Ad esempio, l'Intel Pentium e l'AMD Athlon implementano versioni quasi identiche dell'instruction set x86, pur essendo al loro interno totalmente diversi. Tra i dati nativamente disponibili ci sono le istruzioni, i registri, le modalità di indirizzamento, l'architettura della memoria, la gestione degli interrupt e delle eccezioni, e l'eventuale I/O esterno.

Un'ISA è una specifica dell'insieme di tutti quei codici binari (opcode) che rappresentano i comandi implementati nativamente da un particolare design di CPU. L'insieme degli opcode di una specifica ISA è detto anche linguaggio macchina della ISA. Una ISA può anche essere emulata da un interprete software. Poiché l'emulatore deve effettuare una traduzione da una ISA ad una ISA differente, questa soluzione è in generale più lenta rispetto ad una ISA implementata in hardware. Presso i produttori di nuove ISA o microarchitetture, è pratica comune al giorno d'oggi quella di rendere disponibili emulatori agli sviluppatori di software prima che sia pronta l'implementazione hardware.

Tipologie[modifica | modifica wikitesto]

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 microprocessori e microcontrollori che implementano ISA di ogni genere. Sono persino comuni per alcune applicazioni delle ISA personalizzate, ad esempio quelle di ARC International, gli ASIC, le FPGA e le tecniche di reconfigurable computing.

ISA comunemente implementate in hardware[modifica | modifica wikitesto]

ISA comunemente implementate in software ma con incarnazioni hardware[modifica | modifica wikitesto]

ISA mai implementate in hardware[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Categorie di ISA[modifica | modifica wikitesto]

Esempi di ISA[modifica | modifica wikitesto]

Altro[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]