Architettura e organizzazione di un calcolatore
In questa pagina 5
Architettura e organizzazione
| Architettura | Organizzazione | |
|---|---|---|
| Che cos'è | gli attributi visibili al programmatore, che influenzano l'esecuzione logica di un programma | le unità operative e le loro connessioni che realizzano l'architettura |
| Esempi | insieme delle istruzioni, numero di bit per i dati, modalità di indirizzamento, meccanismi di I/O | segnali di controllo, tecnologia della memoria, interfacce con le periferiche, circuiti usati |
| Domanda tipo | c'è un'istruzione di moltiplicazione? | la moltiplicazione è fatta da un circuito dedicato o da somme ripetute? |
Una famiglia di processori condivide la stessa architettura con organizzazioni diverse (più o meno veloci e costose): un programma scritto per un modello gira sugli altri. Il vincolo della retrocompatibilità (x86 dal 8086 di fine anni '70 ai processori attuali) pesa molto sulle scelte di progetto.
Struttura e funzione
Un calcolatore è un sistema gerarchico: a ogni livello si descrivono la struttura (come i componenti sono collegati) e la funzione (che cosa fa ciascun componente).
Quattro funzioni di base: elaborazione dei dati, memorizzazione, trasferimento (da e verso l'esterno: I/O se il dispositivo è vicino, comunicazione se è lontano), controllo delle altre tre.
Quattro componenti al livello più alto:
| Componente | Ruolo |
|---|---|
| CPU | esegue le istruzioni ed elabora i dati |
| Memoria principale | contiene dati e programmi |
| I/O | scambia dati con l'esterno |
| Interconnessione (bus) | collega i tre precedenti (vedi Bus e interconnessioneBus di sistema diviso in linee dati, indirizzi e controllo; ampiezza del bus e spazio di indirizzamento; arbitraggio; bus singolo e gerarchie di bus multipli; temporizzazione sincrona e asincrona; interconnessioni punto a punto.Bus e interconnessione →) |
Dentro la CPU: unità di controllo (coordina e temporizza), ALU (esegue le operazioni), registri (memoria interna velocissima), interconnessione interna (vedi Struttura interna della CPU e registriComponenti interni della CPU (ALU, unità di controllo, banco dei registri, bus interno); registri visibili all'utente e registri di controllo e stato; flag e parola di stato (PSW) con bit di supervisore; quanti registri conviene avere; segmentazione della memoria.Struttura interna della CPU e registri →).
Macchina di von Neumann
I primi calcolatori (ENIAC, 1946) si programmavano cambiando i collegamenti: programma cablato. L'idea di von Neumann è un hardware generico che esegue operazioni diverse a seconda dei segnali di controllo ricevuti, e di scrivere questi comandi come istruzioni memorizzate in memoria insieme ai dati (programma memorizzato).
Caratteristiche:
- dati e istruzioni nella stessa memoria, scrivibile e leggibile;
- la memoria è indirizzata per posizione, indipendentemente dal contenuto;
- le istruzioni si eseguono in sequenza, salvo salti espliciti.
Il prototipo è l'IAS (Princeton, completato nel 1952): 1000 parole di 40 bit; ogni parola contiene un numero oppure due istruzioni da 20 bit (8 bit di codice operativo + 12 bit di indirizzo, ). Registri: PC, IR, MAR, MBR, accumulatore AC e MQ. Il funzionamento è il Ciclo fetch-executeRegistri PC, IR, MAR e MBR; ciclo dell'istruzione diviso in fetch ed execute; i quattro tipi di operazioni; diagramma degli stati del ciclo con calcolo degli indirizzi degli operandi e controllo delle interruzioni; esempio su una macchina ad accumulatore.Ciclo fetch-execute →.
Evoluzione tecnologica
| Generazione | Tecnologia | Periodo indicativo |
|---|---|---|
| 1 | valvole | 1946–1957 |
| 2 | transistor | 1958–1964 |
| 3 | circuiti integrati (SSI, MSI) | 1965–1971 |
| 4 | integrazione su larga scala (LSI, VLSI): microprocessori | dal 1972 |
Legge di Moore: il numero di transistor integrabili su un chip raddoppia a intervalli regolari (circa ogni 18–24 mesi). Componenti più piccoli e vicini significano segnali che percorrono distanze minori (sono limitati dalla velocità della luce), quindi clock più alti, consumi minori per operazione e costo minore.
Esempi di scala: Intel 4004 (1971) circa 2300 transistor a 108 kHz; 8086 (1978) circa 29 000 transistor a 5–10 MHz; i processori multicore attuali superano il miliardo di transistor.
Errori tipici
- Considerare "architettura" la tecnologia della memoria o il tipo di sommatore: sono scelte di organizzazione.
- Pensare che von Neumann significhi "memoria separata per il programma": è il contrario (la separazione è l'architettura Harvard, usata oggi per le cache L1 istruzioni/dati).
Versione ripasso
- Architettura: attributi visibili al programmatore (istruzioni, bit dei dati, indirizzamento, I/O). Organizzazione: unità e connessioni che la realizzano (segnali di controllo, tecnologia della memoria). Una famiglia ha la stessa architettura con organizzazioni diverse; la retrocompatibilitài programmi scritti per un modello devono girare sui successivi (x86) pesa sulle scelte.
- Quattro funzioni (elaborazione, memorizzazione, trasferimento, controllo) e quattro componenti: CPU, memoria principale, I/O, interconnessione (Bus e interconnessioneBus di sistema diviso in linee dati, indirizzi e controllo; ampiezza del bus e spazio di indirizzamento; arbitraggio; bus singolo e gerarchie di bus multipli; temporizzazione sincrona e asincrona; interconnessioni punto a punto.Bus e interconnessione →). Dentro la CPU: unità di controllo, ALU, registri (Struttura interna della CPU e registriComponenti interni della CPU (ALU, unità di controllo, banco dei registri, bus interno); registri visibili all'utente e registri di controllo e stato; flag e parola di stato (PSW) con bit di supervisore; quanti registri conviene avere; segmentazione della memoria.Struttura interna della CPU e registri →).
Von Neumann
Programma cablato (ENIAC, 1946) programma memorizzato: dati e istruzioni nella stessa memoria, indirizzata per posizione, esecuzione in sequenza salvo salti. IAS (1952): 1000 parole da 40 bit, ciascuna un numero o due istruzioni da 20 bit (8 di codice operativo + 12 di indirizzo); registri PC, IR, MAR, MBR, AC, MQ (Ciclo fetch-executeRegistri PC, IR, MAR e MBR; ciclo dell'istruzione diviso in fetch ed execute; i quattro tipi di operazioni; diagramma degli stati del ciclo con calcolo degli indirizzi degli operandi e controllo delle interruzioni; esempio su una macchina ad accumulatore.Ciclo fetch-execute →).
Evoluzione
Valvole (1946) transistor (1958) circuiti integrati (1965) LSI/VLSI (dal 1972). Legge di Moore: i transistor per chip raddoppiano ogni 18-24 mesi; 4004 (1971) circa 2300, 8086 (1978) circa 29 000.
Errori tipici: la tecnologia della memoria è organizzazione; von Neumann non significa memorie separate (è l'architettura Harvard, nelle cache L1).