# Calcolatori elettronici/L'evoluzione dei sistemi di elaborazione

Calcolatori elettronici
Copertina Tutti i moduli · Sviluppo
    CopertinaCalcolatori elettronici/Copertina
* L'evoluzione dei sistemi di elaborazioneCalcolatori elettronici/L'evoluzione dei sistemi di elaborazione
* Il progetto di circuiti logiciCalcolatori elettronici/Il progetto di circuiti logici
* I processoriCalcolatori elettronici/I processori
* Architettura 8086Calcolatori elettronici/Architettura 8086
* Unità di controlloCalcolatori elettronici/Unità di controllo
* Introduzione alle memorieCalcolatori elettronici/Introduzione alle memorie
* Le memorie ad accesso casualeCalcolatori elettronici/Le memorie ad accesso casuale
* Le memorie cacheCalcolatori elettronici/Le memorie cache
* Le memorie ad accesso serialeCalcolatori elettronici/Le memorie ad accesso seriale
* La memoria virtualeCalcolatori elettronici/La memoria virtuale
* La gestione dei dispositivi input/outputCalcolatori elettronici/La gestione dei dispositivi input/output
* Intel 8255Calcolatori elettronici/Intel 8255
* Intel 8259Calcolatori elettronici/Intel 8259
* I busCalcolatori elettronici/I bus
* Le architetture a pipelineCalcolatori elettronici/Le architetture a pipeline
* Assembler 8086
          IntroduzioneCalcolatori elettronici/Introduzione
   * Informazioni generaliCalcolatori elettronici/Informazioni generali
   * Istruzioni di trasferimento datiCalcolatori elettronici/Istruzioni di trasferimento dati
   * Istruzioni aritmeticheCalcolatori elettronici/Istruzioni aritmetiche
   * Istruzioni per il controllo del flussoCalcolatori elettronici/Istruzioni per il controllo del flusso
   * Istruzioni per la manipolazione dei bitCalcolatori elettronici/Istruzioni per la manipolazione dei bit
   * Le procedureCalcolatori elettronici/Le procedure
   * Istruzioni per il controllo del processoreCalcolatori elettronici/Istruzioni per il controllo del processore
   * Formato delle istruzioni macchina, tempi di esecuzioneCalcolatori elettronici/Formato delle istruzioni macchina, tempi di esecuzione
Modifica il sommario
Un sistema di elaborazione è un sistema, generalmente dotato di input e output, in grado di eseguire operazioni logiche ed aritmetiche su dati.
Un calcolatore deve rappresentare delle informazioni, manipolare delle informazioni tramite operazioni automatizzate (algoritmi), e memorizzare dei dati.

## Ere
### 1. Era meccanica (sino al 1945)

I dispositivi sono di tipo meccanico. Le prime macchine rappresentano i numeri decimali e svolgevano le operazioni elementari.
Nell'Ottocento, nascono le macchine programmabili, ovvero delle macchine per automatizzare processi che possono essere programmati dall'utente.
Negli anni '40 si passa ai relè elettromagnetici, che rappresentano numeri binari tramite on/off, ma hanno ancora parti in movimento.

### 2. Era elettronica (dal 1945 al 1975)

Nasce l'informatica teorica: si comincia a studiare la complessità degli algoritmi e a determinare ciò che è computabile o no.
I relè sono sostituiti da tubi a vuoto/valvole, basati sul movimento degli elettroni, che però sono ancora pesanti e di grandi dimensioni.
L'EDVAC (progettato nel 1951) passa dalla rappresentazione decimale a quella binaria, e ha una memoria che oltre a memorizzare i dati memorizza anche il programma.
L'architettura Harvard si differenzia dall'architettura di Von Neumann per la separazione della memoria dati e della memoria codice.

#### Prima generazione (anni '50)

Inizia la produzione commerciale di macchine basate su tubi a vuoto, che però sono molto semplici e richiedono l'uso del linguaggio macchina (strettamente dipendente dalla macchina).

#### Seconda generazione (anni '60)

Compare il transistor: più piccolo, più risparmioso e più veloce. Le CPU introducoro il supporto alla rappresentazione dei numeri in virgola mobile. Iniziano a comparire i linguaggi di alto livello.
Compaiono i primi sistemi operativi, che possono eseguire programmi in batch (ovvero in sequenza automatica), e possono supportare più utenti per volta.

#### Terza generazione (anni '65)

Nascono i circuiti integrati, e si introducono le memorie a semiconduttore (simili a quelle odierne).

### 3. Era del VLSI (dal 1975 ad oggi)

La VLSI è la possibilità di integrare in un unico chip decine di migliaia di transistor.
I chip in silicio vengono inseriti in un package con pin (DIP, PGA, BGA).

#### Legge di Moore

    Il massimo numero di transistor integrabili su un singolo circuito raddoppia ogni 18/24 mesi.
I miglioramenti di prestazioni non sono semplicemente dovuti a miglioramenti di tipo tecnologico, perché oltre all'aumento delle frequenze e del numero di transistor c'è un miglioramento dell'architettura.

## Architetture di processori
### General-purpose

I microprocessori, nati alla fine degli anni '70, sono dei processori integrati a bordo di singoli circuiti integrati. I computer basati su microprocessori sono detti microcomputer.
Nel mercato general-purpose sono importanti le prestazioni:
* CISC: (fino agli anni '70) per eseguire un'istruzione è necessario un certo numero di colpi di clock;
* RISC: (anni '80) completano un'istruzione in un solo colpo di clock, e hanno un set di istruzioni più ridotto;
* superscalari: (anni '90) a ogni colpo di clock completano più di un'istruzione;
* multicore: (anni 2000) circuiti integrati che integrano più processori (detti core).

### Special-purpose

I sistemi special-purpose sono progettati per eseguire una sola applicazione. Nel mercato special-purpose, generalmente nei sistemi embedded, non sono fondamentali le prestazioni, ma il costo di sviluppo/progettazione e il costo di produzione dell'elettronica. I microcontrollori sono dei sistemi programmabili che, integrando discrete CPU, memoria e porte, si interfacciano con dei dispositivi di input/output, eseguono delle operazioni semplici e costano poco.
* soluzione software (SW): si compra un microprocessore/microcontrollore già esistente e si sviluppa solo il software → costo di sviluppo basso;
* soluzione hardware (HW): si costruisce un hardware specifico integrando solo i dispositivi specifici per compiere una funzione, per esigenze di dimensioni o di consumo di energia → bassa flessibilità (una volta realizzata non si può più modificare), ma personalizzabilità.
I dispositivi System on Chip integrano al loro interno un numero significativo di componenti (processori, memoria, moduli) che sono specifici per un'applicazione, ma sono più complicati dei microcontrollori.