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.