Instruction set

insieme di istruzioni macchina che descrive gli aspetti dell'architettura di un calcolatore
Versione del 6 ago 2024 alle 08:30 di TigrisAlbina (discussione | contributi) (Cercato di modificare e semplificare il paragrafo finale lasciando invariato il significato)

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

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. Computer 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 troviamo le istruzioni, i registri, le modalità di indirizzamento, l'architettura della memoria, la gestione degli interrupt e delle eccezioni ed 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. Oggi, i produttori di nuove ISA (Instruction Set Architecture) o microarchitetture spesso forniscono emulatori agli sviluppatori di software prima che l’hardware sia pronto. Questo permette agli sviluppatori di iniziare a lavorare e testare i loro programmi in anticipo.

Tipologie

  Lo stesso argomento in dettaglio: RISC e CISC.

I diversi ISA possono essere divisi in due grandi gruppi: i RISC (Reduced Instruction Set Computer) e i CISC (Complex Instruction Set Computer). Il primo gruppo tende ad avere operazioni semplici e veloci, con un'abbondanza di registri per memorizzare i risultati intermedi. Il secondo gruppo mette a disposizione del programmatore istruzioni più complesse, che a volte mimano quelle dei linguaggi di livello più alto (ad esempio, la copia di stringhe nei processori x86). In entrambi i casi, i migliori set di istruzioni tendono ad essere quelli cosiddetti ortogonali, dove i diversi metodi di indirizzamento e i vari registri possono essere utilizzati indifferentemente in tutte le istruzioni. Famosi set di istruzioni ortogonali sono quelli del Motorola 68000 (CISC) e del MIPS (RISC). L'ISA dei processori Intel x86 era originariamente ben poco ortogonale, ma è andata via via migliorando.

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 tra i due.

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'AMD Athlon, è per liberarsi dalle limitazioni causate da un'ISA retrocompatibile ormai arcaica, e la conversione è eseguita direttamente da 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 ROM ricavata sul silicio del microprocessore.

Esempi

Voci correlate

Altri progetti

Collegamenti esterni