Instruction set
Da Wikipedia, l'enciclopedia libera.
Un instruction set ("insieme d'istruzioni"), o Instruction Set Architecture (ISA), descrive quegli aspetti dell'architettura di un calcolatore che sono visibili al programmatore, tra cui i tipi di dati nativi, 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 specificazione 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.
A volte, il termine "instruction set architecture" è usato anche per distinguere l'insieme suddetto di caratteristiche dalla microarchitettura, che è l'insieme di tecniche di progettazione utilizzate per implementare l'instruction set (tra cui microcodice, pipeline, sistemi di cache e così via). Computer con microarchitetture differenti possono condividere l'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.
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.
Indice |
[modifica] Elenco di ISA
Questa lista è tutt'altro che completa dato che le architetture nascono e muoiono continuamente. Inoltre 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.
[modifica] ISA comunemente implementate in hardware
- Alpha AXP (DEC Alpha)
- ARM (Acorn RISC Machine) (Advanced RISC Machine, oggi ARM Ltd)
- IA-64 (Itanium)
- MIPS
- Motorola 68k
- PA-RISC (HP Precision Architecture)
- POWER
- PowerPC
- SPARC
- SuperH
- System/360
- Tricore (Infineon)
- Transputer (STMicroelectronics)
- VAX (Digital Equipment Corporation)
- x86 (IA-32, Pentium, Athlon) (X86-64, EM64T)
[modifica] ISA comunemente implementate in software ma con incarnazioni hardware
- p-Code (UCSD p-System Version III on Western Digital Pascal Micro-Engine)
- Java virtual machine (ARM Jazelle, PicoJava)
- FORTH
[modifica] ISA mai implementate in hardware
- SECD machine
- ALGOL Object Code
[modifica] Voci correlate
[modifica] Categorie di ISA
- Application specific integrated circuit (ASIC), una ISA completamente specificabile dal cliente
- CISC
- Digital Signal Processor (DSP) o processore di segnali digitali
- Graphics Processing Unit (GPU) o processore grafico
- reconfigurable computing
- RISC
- processore vettoriale
- VLIW
[modifica] Esempi di ISA disponibili commercialmente
- central processing unit (CPU), o processore centrale
- microcontrollore
- microprocessore
[modifica] Altro
- Architettura di un computer
- Emulatore
- Hardware Abstraction Layer (HAL) o livello di astrazione dell'hardware
- Register Transfer Language
- Macchina virtuale