Architettura dei calcolatori
# Architettura dei calcolatori

L'architettura dei calcolatori, nell'informatica, elettronica o più in generale dei sistemi elettronici digitali, è la maniera in cui sono collegati tra loro i componenti hardware elementari di un sistema di elaborazione. Chi si occupa di architettura dei calcolatori ha il compito di costruire sistemi di elaborazione di diversa complessità (da una semplice scheda elettronica a un complesso sistema con grossa potenza di calcolo) mettendo insieme questi componenti elementari.

## Descrizione

È anche importante sottolineare la differenza che intercorre tra elettronica e architettura dei calcolatori: l'elettronico ha il compito di costruire circuiti veloci ed efficienti, si occupa quindi di migliorare i "mattoni", i componenti elementari del sistema; l'architetto dei calcolatori ha invece il compito di ottenere le migliori prestazioni possibili (in termini di potenza di calcolo, costi in termini economici) assemblando in maniera efficiente i componenti elementari.

I "mattoni" che costituiscono un sistema di calcolo sono:

* porte logiche (and, not, or)
* generatori di segnali (ad es. clock)

Mettendo insieme le porte logiche, che sono tipicamente circuiti realizzati con diverse tecnologie elettroniche (CMOS, TTL, ECL) è possibile costruire le cosiddette macchine elementari che si dividono in macchine combinatorie e macchine sequenziali.

### Macchine combinatorie

I circuiti (o macchine) combinatori possono essere modellati matematicamente con funzioni booleane di variabili booleane del tipo $y=f(u)$ dove $y$ è il vettore delle uscite del sistema e $u$ è il vettore degli ingressi; come si nota dall'argomento della funzione $f$, i circuiti combinatori non sono dotati di stato, sono sistemi adinamici e quindi l'uscita del sistema in un istante $t$ dipende solo dall'ingresso applicato al sistema nello stesso istante e non dagli ingressi precedentemente applicati (supponendo per semplicità che non ci siano ritardi di propagazione tra ingresso e uscita). Le macchine combinatorie elementari sono le seguenti:

* multiplexer
* demultiplexer
* decodificatori
* sommatori, divisori, moltiplicatori

### Macchine sequenziali

Le macchine sequenziali invece sono sistemi del tipo $y=f(x,u)$ dove $y$ è il vettore delle uscite, $u$ è il vettore degli ingressi e $x$ è il vettore degli stati. Quindi una macchina sequenziale è un sistema dinamico, la cui uscita in un generico istante dipende sia dall'ingresso sia dallo stato del sistema in quell'istante.

Le macchine sequenziali fondamentali sono:

* flip-flop
* memorie
* registri a scorrimento
* contatori
