Architettura dei calcolatori
Nell'ingegneria informatica, l'architettura informatica è la progettazione concettuale e la struttura operativa fondamentale di un sistema informatico. È il disegno tecnico e la descrizione funzionale di tutti i requisiti di progettazione (in particolare velocità e interconnessioni), è come progettare e realizzare varie parti di un computer - concentrandosi in gran parte sul modo in cui l'unità centrale di elaborazione (CPU) opera internamente e su come accede agli indirizzi in memoria.
Può essere definita come la scienza e l'arte di selezionare e interconnettere componenti hardware per creare computer che soddisfino gli obiettivi funzionali, prestazionali e di costo.
L'architettura informatica comprende almeno tre sottocategorie principali:
- L'architettura del set di istruzioni, o ISA, è il modello astratto di un sistema di calcolo che viene visto da un programmatore di linguaggio macchina (o linguaggio assembly), compresi il set di istruzioni, le modalità di indirizzo della memoria, i registri del processore e i formati di indirizzo e dati.
- La microarchitettura, nota anche come Organizzazione informatica è un livello inferiore, una descrizione dettagliata del sistema che è sufficiente per descrivere completamente il funzionamento di tutte le parti del sistema informatico, e come sono interconnesse e interagiscono per implementare l'ISA. La dimensione della cache di un computer, ad esempio, è una questione organizzativa che generalmente non ha nulla a che fare con l'ISA.
- System Design che include tutti gli altri componenti hardware all'interno di un sistema informatico come ad esempio:
· Interconnessioni di sistema come bus per computer e interruttori.
· Controllori di memoria e gerarchie.
· Meccanismi di off-load della CPU come l'accesso diretto alla memoria.
· Problemi come il multi-processing.
Una volta specificate sia l'ISA che la microarchitettura, il sistema informatico vero e proprio deve essere progettato in hardware. Questo processo di progettazione si chiama implementazione. L'implementazione è solitamente un processo di progettazione dell'hardware.
L'implementazione può essere ulteriormente suddivisa in tre pezzi, ma non completamente separati:
- Implementazione della logica: Progettazione di blocchi definiti nella microarchitettura, principalmente, a livello di registro-trasferimento e di gate.
- Implementazione del circuito: Progettazione a livello di transistor di elementi di base (cancelli, multiplexer, flip-flop, ecc.) così come di alcuni blocchi più grandi (ALU, cache, ecc.) che possono essere implementati a questo livello, o anche ad un livello fisico inferiore, per ragioni di prestazioni.
- Implementazione fisica: I circuiti fisici vengono estratti, i diversi componenti del circuito vengono inseriti in una piantina di chip o su una scheda e i fili che li collegano vengono instradati.
Per le CPU, l'intero processo di implementazione è spesso chiamato progettazione di CPU; può anche essere una famiglia di progetti di CPU correlati, come RISC e CISC.
Altre sottodefinizioni
Alcuni professionisti dell'architettura informatica utilizzano sottocategorie più raffinate:
- Macroarchitettura: Strati architettonici più astratti della microarchitettura, per esempio ISA.
- Set di istruzioni per l'architettura (ISA): Come definito sopra.
- UISA (Microcode Instruction Set Architecture): Una famiglia di macchine con diverse microarchitetture a livello hardware può condividere un'architettura di microcodice comune, e quindi chiamata UISA.
- Montaggio ISA: Un assemblatore intelligente può convertire un linguaggio assembly astratto comune a un gruppo di CPU in un linguaggio macchina leggermente diverso per diverse implementazioni di CPU.
- Programmatore Macroarchitettura visibile: Strumenti di linguaggio di livello superiore come i compilatori possono definire un'interfaccia definita per i programmatori che li utilizzano, astrarre le differenze tra le sottostanti ISA, UISA e microarchitetture; per esempio gli standard C, C++, o Java definiscono tre diverse interfacce di programmazione definite.
- Pin Architecture: L'insieme delle funzioni che un microprocessore deve fornire, dal punto di vista di una piattaforma hardware. Per esempio, i segnali che ci si aspetta che il processore emetta durante l'esecuzione di un'istruzione.
Esempi di architetture informatiche
- La x86, realizzata da Intel e AMD.
- La SPARC, realizzata da Sun Microsystems e altri.
- Il PowerPC, prodotto da Apple, IBM e Motorola.
Pagine correlate
- Hardware per computer
- Architettura del software
- Microarchitettura
Domande e risposte
D: Che cos'è l'architettura informatica?
R: L'architettura informatica è la progettazione concettuale e la struttura operativa fondamentale di un sistema informatico. Comprende i disegni tecnici e la descrizione funzionale di tutti i requisiti di progettazione, come le velocità e le interconnessioni, al fine di creare computer che soddisfino gli obiettivi di prestazioni, costi e funzionalità.
D: Quali sono le tre principali sottocategorie dell'architettura informatica?
R: Le tre principali sottocategorie dell'architettura dei computer sono l'Instruction Set Architecture (ISA), la Microarchitettura (nota anche come Organizzazione del computer) e il System Design.
D: Che cosa comporta l'ISA?
R: L'Architettura del set di istruzioni (ISA) comporta un modello astratto di un sistema informatico che viene visto da un programmatore di linguaggio macchina o di linguaggio assembly. Include il set di istruzioni, le modalità di indirizzo della memoria, i registri del processore e i formati di indirizzi e dati.
D: Cosa comporta la microarchitettura?
R: La microarchitettura comporta una descrizione dettagliata di livello inferiore del sistema, sufficiente a descrivere completamente il funzionamento di tutte le parti del sistema informatico, nonché il modo in cui sono interconnesse e interagiscono tra loro per implementare l'ISA.
D: Cosa comporta la progettazione del sistema?
R: La progettazione del sistema coinvolge tutti gli altri componenti hardware all'interno di un sistema informatico, come le interconnessioni del sistema, come i bus e gli interruttori del computer; i controllori di memoria; i meccanismi di scarico della CPU, come l'accesso diretto alla memoria; i problemi di multiprocesso, ecc.
D: Come si suddivide l'implementazione in tre parti?
R: L'implementazione può essere suddivisa in Implementazione logica, che comprende la progettazione di blocchi definiti nella microarchitettura a livello di registro-trasferimento o di gate; Implementazione di circuito, che comprende la progettazione a livello di transistor per gli elementi di base o per i blocchi più grandi; Implementazione fisica, che comprende il disegno dei circuiti fisici, la collocazione dei diversi componenti del circuito su un piano o una scheda di chip, l'instradamento dei fili che li collegano tra loro.