Sei sulla pagina 1di 55

Dipartimento di Ingegneria

Laboratorio di Interazione Uomo-Macchina

Architettura dei Calcolatori

CORSO DI COMUNICAZIONE DIGITALE


a.a. 2019/2020

Prof. Roberto Pirrone


Architettura di un calcolatore

Ø Il calcolatore è:
§ uno strumento programmabile per rappresentare,
memorizzare ed elaborare informazioni
§ un sistema, costituito da molte componenti

Ø Studiare l’architettura di un sistema significa:


§ individuare ciascun componente del sistema
§ comprendere i principi generali di funzionamento di
ciascun componente
§ comprendere come le varie componenti interagiscono
DI – Lab. Int. Uomo-Macchina
Architettura di un calcolatore
Ø La prima decomposizione di un calcolatore è
relativa a due macro-componenti:
§ Hardware
§ Software
• Software di base per la gestione del sistema
• Software applicativo per l’uso del sistema
(si appoggia al software
di base)

DI – Lab. Int. Uomo-Macchina


Architettura del calcolatore: le funzioni
Ø Funzioni di base che un calcolatore deve assolvere:
§ Trasferimento: spostamento dei
dati da una componente all’altra
§ Scambio dati con l’utente:
passaggio da rappresentazione
esterna ed interna
§ Elaborazione: esecuzione di calcoli
per assolvere ad una richiesta
§ Controllo: esercitato dal
supervisore, per la gestione delle
varie componenti e la loro
interazione
§ Memorizzazione: archiviazione
delle informazioni

DI – Lab. Int. Uomo-Macchina


Come le componenti assolvono le funzioni?

Ø Le varie componenti eseguono le funzioni associate


ad esse tramite specifiche elaborazioni delle
informazioni.

Ø Ogni componente esegue un insieme di passi


specificati a priori per assolvere il compito che gli è
stato assegnato.

Ø La specifica dei passi è genericamente nota come


algoritmo.

DI – Lab. Int. Uomo-Macchina


Gli algoritmi
Ø Un algoritmo è il procedimento da seguire per
raggiungere un certo obiettivo.
Ø Ciò vale in qualsiasi ambito, non prettamente
informatico.
Ø Un algoritmo descrive a colui che è preposto
ad un dato compito, quali operazioni devono
essere eseguite per portare a termine il
compito assegnato.
§ Es: una ricetta di cucina, le istruzioni per montare un
mobile, o preparare il caffè

DI – Lab. Int. Uomo-Macchina


Gli algoritmi
Ø Elementi essenziali di un algoritmo sono:
§ Dati: ciò che deve essere elaborato (gli ingredienti di una ricetta, lo
strumento da montare nelle specifiche di un manuale, la caffettiera
ed il caffè nella preparazione della bevanda).
§ Istruzioni semplici: i singoli passi che devono essere compiuti sui
dati:
• rompere le uova;
• sbattere le uova.
§ Istruzioni complesse: combinazione di
più istruzioni semplici (in una ricetta
che dice solo di montare a neve gli
albumi, si individua l’istruzione
complessa che richiede di romperle,
separare tuorli ed albumi e poi
montare questi).
DI – Lab. Int. Uomo-Macchina
Gli algoritmi e l’informatica

Ø L’insieme di istruzioni complesse in ambito


informatico definisce un programma.
Ø Programma è il termine che fa riferimento agli
algoritmi che risolvono problemi tramite
l’elaborazione elettronica dei dati. Fa parte del
macro componente software.
Ø Un programma è ciò che ogni componente del
calcolatore esegue per assolvere la sua funzione
Ø Useremo i termini algoritmo e programma
indifferentemente.

DI – Lab. Int. Uomo-Macchina


Gli algoritmi e l’informatica

Ø Individuiamo degli elementi essenziali nello


svolgimento dei programmi da parte delle
componenti:
§ Dati (gli ingredienti)
§ Istruzioni/Comandi (i passi da compiere nella ricetta)
§ Indirizzi (dove prendiamo gli ingredienti? A che passo
della ricetta siamo?)

DI – Lab. Int. Uomo-Macchina


Architettura di Von Neumann (ca. 1946)
Ø Architettura a “programma memorizzato”
§ Dati e istruzioni dei programmi sono informazione e quindi vanno
opportunamente codificati come bit e memorizzati nello stesso luogo
§ L’unità centrale di elaborazione (CPU) si preoccupa di prelevare dalla
memoria dati o istruzioni in momenti e contesti diversi
§ Detta anche “Macchina” di Von Neumann che realizzò così il primo
calcolatore elettronico secondo questo paradigma

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø CPU (Central Processing Unit), o Processore
§ svolge le elaborazioni e il trasferimento dei dati, cioè esegue
i programmi.
§ Svolge anche le funzioni di controllo dell’esecuzione
§ Ogni istruzione viene processata allo stesso modo, secondo il
ciclo-macchina: prelevamento à decodifica à esecuzione

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Memoria centrale
§ RAM (Random Access Memory) è volatile (perde il suo
contenuto quando si spegne il calcolatore) ed è usata per
memorizzare dati e programmi.
§ E’ organizzata in celle, le unità minime indirizzabili,
ciascuna accessibile tramite un indirizzo
§ Per gli indirizzi si usano configurazioni di bi

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Memoria centrale
§ Una cella ha un
indirizzo ed un
contenuto
§ Esiste un apposito
spazio che contiene
tutti questi indirizzi

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Memoria centrale
§ ROM (Read Only Memory) è persistente ( mantiene il suo
contenuto quando si spegne il calcolatore) ma il suo
contenuto è fisso e immutabile. È usata per memorizzare
programmi di sistema

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Memoria centrale
§ Cache - Memoria di appoggio del processore, velocissima
• Dimensioni relativamente limitate
• Accesso estremamente rapido

Cache
DICGIM – Lab. Int. Uomo-Macchina
Architettura di Von Neumann
Ø Periferiche
§ Sono usate per far comunicare il calcolatore con l'esterno (in
particolare con l’utente)
§ Non fanno parte della Macchina di Von Neumann, ma vi
sono connesse attraverso le interfacce di I/O

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Periferiche - Memoria secondaria (o di massa)
§ Dischi, nastri, CD, DVD
§ Memorizza grandi quantità di informazioni, ma è lenta:
accesso in msec. contro nsec. della RAM – rapporto di 106
§ Persistente: Le informazioni non si perdono spegnendo la
macchina

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Bus di sistema
§ Interconnette le componenti interne del calcolatore
• CPU, memoria ed interfacce a periferiche
§ Collega due unità funzionali alla volta
• una trasmette e l’altra riceve: funzionamento master/slave
• la CPU (master) seleziona la connessione da attivare e ordina il
trasferimento dei dati

DICGIM – Lab. Int. Uomo-Macchina


Architettura di Von Neumann
Ø Bus di sistema

§ Distinguiamo funzionalmente tre bus


• BUS DATI (per istruzioni e dati dei programmi)
• BUS INDIRIZZI (per accedere alle celle di memoria)
• BUS CONTROLLI (per trasmettere i comandi)

DICGIM – Lab. Int. Uomo-Macchina


Caratteristiche del collegamento a bus
Ø Semplicità
§ un’unica linea di connessione costi ridotti di produzione
Ø Estendibilità
§ aggiunta di nuovi dispositivi molto semplice
Ø Standardizzabilità
§ regole per la comunicazione da parte di dispositivi diversi
Ø Lentezza
§ utilizzo in mutua esclusione del bus
Ø Limitata capacità
§ al crescere del numero di dispositivi collegati
Ø Sovraccarico del processore
§ perché funge da master sul controllo del bus

DICGIM – Lab. Int. Uomo-Macchina


Soluzioni hardware per il bus di sistema

DICGIM – Lab. Int. Uomo-Macchina


CPU

DICGIM – Lab. Int. Uomo-Macchina


Unità centrale di elaborazione
Ø L’unità centrale di elaborazione è realizzata fisicamente sotto forma di
microprocessore (chip)
Ø I microprocessori sono dispositivi elettronici molto complessi, composti
da milioni di dispositivi elementari detti transistor
§ Transistor: interruttore elettronico atto
a realizzare il funzionamento di “1 bit”
(assume stato 0 o 1).
Ø Costituita da
§ Unità di controllo (CU)
§ Unità Aritmetico-Logica (ALU)
§ Registri

Ø Vere e proprie unità centrali contenute


in un unico CHIP

DICGIM – Lab. Int. Uomo-Macchina


Chip
Ø Il chip è una piastrina di silicio di alcuni
millimetri di lato sulla quale vengono incise,
con particolari tecnologie, molte migliaia di
circuiti a transistor
Ø I circuiti sono integrati alla piastrina

DICGIM – Lab. Int. Uomo-Macchina


Elementi della CPU
Ø Unità di controllo
§ Svolge funzioni di controllo, decide quali istruzioni
eseguire.
Ø Unità aritmetico logica (ALU)
§ esegue le operazioni aritmetico-logiche (+, -, *, /,
confronti).
Ø Registri
§ memoria ad alta velocità usata per risultati temporanei
e informazioni di controllo;
§ il valore massimo memorizzabile in un registro è
determinato dalle dimensioni del registro.

DICGIM – Lab. Int. Uomo-Macchina


Struttura del microprocessore

DICGIM – Lab. Int. Uomo-Macchina


Registri
Ø Esistono registri di uso generico e registri specifici
§ PC: contatore delle istruzioni (Program Counter)
• contiene l’indirizzo della prossima istruzione da eseguire
§ IR: registro delle istruzioni (Instruction Register)
• contiene l’istruzione che deve essere eseguita
§ PSW: parola di stato del processore (Processor Status Word)
• contiene informazioni, opportunamente codificate, sull’esito dell’ultima
istruzione che è stata eseguita

DICGIM – Lab. Int. Uomo-Macchina


Registri
Ø Esistono registri di uso generico e registri specifici
§ MAR: registro indirizzi della memoria (Memory Address Register)
• indirizzo della cella di memoria che deve essere acceduta o
memorizzata
§ MDR: registro dati della memoria (Memory Data Register)
• dato che è stato acceduto o che deve essere memorizzato
§ registri generali
• per memorizzare gli operandi ed il risultato di una operazione

DICGIM – Lab. Int. Uomo-Macchina


ALU
Ø L'Unità Aritmetico-Logica (ALU) è costituita da un
insieme di circuiti in grado di svolgere le operazioni di
tipo aritmetico e logico

Ø La ALU legge i valori presenti in alcuni registri,


esegue le operazioni e memorizza il risultato in un
altro registro

DICGIM – Lab. Int. Uomo-Macchina


ALU

A
B

DICGIM – Lab. Int. Uomo-Macchina


ALU

A B

DICGIM – Lab. Int. Uomo-Macchina


ALU

A+B

DICGIM – Lab. Int. Uomo-Macchina


ALU

A+B

DICGIM – Lab. Int. Uomo-Macchina


Ciclo di esecuzione delle istruzioni

Ø La CPU esegue un’istruzione mediante le tre


seguenti operazioni di base:
§ Fetch (lettura)
§ Decode (decodifica)
§ Execute (esecuzione)

Ø Un programma è eseguito applicando ad ogni


istruzione la sequenza fetch-decode-execute,
detta ciclo di esecuzione dell’istruzione o
ciclo macchina o ciclo fetch-decode-execute
DICGIM – Lab. Int. Uomo-Macchina
Ciclo di esecuzione delle istruzioni

DICGIM – Lab. Int. Uomo-Macchina


Ciclo di esecuzione delle istruzioni
1) FETCH:
- si accede alla prossima istruzione, riferita dal registro contatore
dell’istruzione (PC)
- si porta tale istruzione dalla memoria centrale al Registro Istruzioni (IR)

1024

10010100

1024 10010100

DICGIM – Lab. Int. Uomo-Macchina


Ciclo di esecuzione delle istruzioni
2) DECODE: decodifica dell’istruzione
si individua il tipo dell’operazione e gli operandi (dati) usati si trasferiscono i
dati nei registri opportuni

1024

10010100

DICGIM – Lab. Int. Uomo-Macchina


Ciclo di esecuzione delle istruzioni
3) EXECUTE: esecuzione dell’istruzione
- si incrementa il registro contatore dell’istruzione (PC)
- ciascuna azione viene richiesta al componente opportuno

1028

DICGIM – Lab. Int. Uomo-Macchina


Pipelining

Ø La sequenzialità delle operazioni di fetch-


decode-execute è nota come pipelining
Ø PROBLEMA: il pipeling causa degli stati di
attesa in molti organi dell’unità centrale
§ Per esempio, gli organi preposti alla fase fetch
rimangono inattivi mentre vengono eseguite le fasi di
decode ed execute
Ø Una sequenzialità implica sempre attesa
delle parti non attive in un dato momento

DICGIM – Lab. Int. Uomo-Macchina


Parallelismo delle operazioni

Ø Lo stato inattivo tipico del pipelining può


venire superato se gli organi preposti alle
varie funzioni possono operare
contemporaneamente
§ Mentre viene decodificata una istruzione, può intanto
essere prelevata la successiva (pre fetch)
Ø PARALLELISMO DELLE OPERAZIONI

DICGIM – Lab. Int. Uomo-Macchina


Parallelismo delle operazioni
Ø Altri stati di attesa possono determinarsi durante il trasferimento
dei dati fra CPU e periferiche (interfaccia I/O)

Ø Si ovvia a questo problema svincolando l’unità centrale


dall’attesa al completamento del trasferimento dei dati, e
facendola operare indipendentemente da esso.
Ø I dati vengono memorizzati in una MEMORIA DI TRANSITO o
BUFFER
DICGIM – Lab. Int. Uomo-Macchina
Si risolve un problema… se ne crea un altro…
Ø Si sono risolti i problemi relativi al pipelining ed alle
periferiche I/O grazie al parallelismo delle operazioni,
MA…
Ø …senza una gestione dei tempi, si corre il rischio che
avvengano sovrapposizioni e sfasature:
§ In fase di pre fetch, se le fasi intanto in parallelo richiedono
troppo tempo, si corre il rischio che l’istruzione caricata non
possa essere mandata in esecuzione, e venga quindi sovrascritta
da quella successiva, causando errori
§ Se ho un grosso file che mi impegna la periferica, il buffer
potrebbe essere impegnato ed inutilizzabile.

DICGIM – Lab. Int. Uomo-Macchina


Sincronizzazione
Ø Si devono sincronizzare le operazioni svolte in parallelo

Ø A questo scopo nella CPU è integrato un orologio (Timer o


Clock) che scandisce degli intervalli di tempo costanti

Ø Le varie componenti della CPU usano tali intervalli per


sincronizzarsi fra loro

Ø L’intervallo di tempo scandito dall’orologio corrisponde


generalmente al tempo necessario per svolgere le operazioni
base della CPU (CICLO MACCHINA)

DICGIM – Lab. Int. Uomo-Macchina


Clock
Ø Si misura in cicli/secondo [Hz] (quanti cicli in un
secondo)
• 400 MHz = 400x106 Hz = 4x108 Hz
⇒ il ciclo è eseguito in 2.5 x 10-9 s = 2.5ns
Ø Ad ogni impulso di clock si esegue un ciclo macchina
Ø la velocità di un microprocessore dipende dalla frequenza
del suo clock, ma non solo poiché l’esecuzione di
un’istruzione può richiedere più cicli

DICGIM – Lab. Int. Uomo-Macchina


Caratteristiche dei microprocessori
Ø Repertorio di istruzioni
§ L’insieme delle istruzioni in bit che costituiscono il
linguaggio macchina del processore (CISC, RISC, C-RISC)
Ø Frequenza di clock
Ø Ampiezza del bus
§ Numero di bit nel bus interno del processore
• Processori a 32 bit, a 64 bit …
§ Influenza tutta la macchina di Von Neumann
Ø Co-processori
§ Processori specializzati per operazioni complesse (es: co-
processore matematico o grafico)
Ø Dimensioni e struttura della memoria cache
DICGIM – Lab. Int. Uomo-Macchina
Caratteristiche dei microprocessori
Ø Repertorio di istruzioni (configurazioni di bit)
§ L’insieme delle istruzioni in bit che costituiscono il linguaggio macchina del
processore (
• CISC (complex instruction set computer)
• RISC (reduced instruction set computer)
• C-RISC (miste nel tentativo di mantenere vantaggi e svantaggi)
Ø Frequenza di clock
Ø Ampiezza del bus
§ Numero di bit che possono essere trasferiti nel bus interno del processore
• Processori a 32 bit, a 64 bit …
§ Influenza tutta la macchina di Von Neumann
Ø Co-processori
§ Processori specializzati per operazioni complesse (es: co-processore matematico
o grafico)
Ø Dimensioni e struttura della memoria cache
DICGIM – Lab. Int. Uomo-Macchina
CISC

Ø Molto diffusa, specialmente in passato


Ø Il set di istruzioni del processore:

§ Comprende un numero elevato di istruzioni


§ Le istruzioni non sono omogenee tra loro
§ Svariate modalità di indirizzamento della memoria
§ Vi sono anche istruzioni molto complesse
§ La maggior parte delle istruzioni ha bisogno, per essere eseguita, di un
numero elevato di cicli
§ L’elaborazione di ogni istruzione è piuttosto complessa

DICGIM – Lab. Int. Uomo-Macchina


RISC
Ø Una tendenza ormai affermata
Ø Il set di istruzioni del processore:
§ Comprende un numero limitato di istruzioni
§ Le istruzioni sono omogenee tra loro
§ Poche modalità di indirizzamento della memoria
§ Le istruzioni sono tipicamente molto semplici
§ La maggior parte delle istruzioni è eseguita in un unico ciclo
Ø A parità di applicazione il processore esegue più
istruzioni, ma l’elaborazione di ognuna di esse è
molto veloce

DICGIM – Lab. Int. Uomo-Macchina


C-RISC

Ø Processore con set di istruzioni tipo CISC


Ø Il processore traduce delle istruzioni CISC in
microistruzioni più semplici (in stile RISC)
Ø Le micro-istruzioni sono poi eseguite dal
“cuore” del processore, costruito secondo la
filosofia RISC

DICGIM – Lab. Int. Uomo-Macchina


Architetture non Von Neumann

DICGIM – Lab. Int. Uomo-Macchina


Architetture non Von Neumann (1/3)

Ø Moore’s Law
§ Il numero dei transistor
raddoppia ogni 18 mesi
Ø La figura mostra
l’evoluzione della velocità
dei computer da metà
anni ‘40 ad oggi
§ Attenzione: nel grafico, la
scala delle ordinate è
logaritmica!

DICGIM – Lab. Int. Uomo-Macchina


Architetture non Von Neumann (2/3)

Ø Limiti dell’architetture di Von Neumann


§ Un solo flusso di istruzioni che operano su un solo
flusso di dati
§ Architettura a bus singolo
§ Esiste un limite alla crescita fino ad ora esponenziale,
del numero di transistor per chip (definita come
Moore’s Law)

DICGIM – Lab. Int. Uomo-Macchina


Architetture non-Von Neumann (3/3)

Ø Elaborazione parallela delle informazioni


§ Se non riesci a costruire qualcosa che funzioni a
velocità doppia, allora fai due cose
contemporaneamente. Il risultato sarà identico.
Ø Tassonomia di Flynn
§ SISD – single instruction, single data
§ SIMD – single instruction, multiple data
§ MIMD – multiple instruction, multiple data
§ (MISD – multiple instruction, single data)

DICGIM – Lab. Int. Uomo-Macchina


Architetture SIMD
Ø Single Instruction, Multiple Data
Ø L’istruzione singola viene emanata a tutte le ALU che la
eseguono in parallelo sui dati locali (elaborazioni su vettori)
Ø Usati per applicazioni di supercalcolo
Ø Previsioni meteorologiche
§ Simulazioni fisica nucleare
§ Elaborazione delle immagini in tempo reale
§ Realtà virtuale
Ø Creazione di film animati
§ 30 immagini al secondo
§ Immagini 1920x1080 pixel (Full HD)
§ 24 bit per pixel per il colore
§ =>50 Milioni di pixel/secondo
§ =>190 Megabyte/secondo

DICGIM – Lab. Int. Uomo-Macchina


Architetture MIMD
Ø Multiple Instruction, Multiple Data
Ø Ogni processore esegue il proprio
programma sui suoi dati,
eventualmente scambiando dati con
gli altri
§ Deep Blue della IBM
il primo computer a battere il
campione del mondo di scacchi
Ø Scalabilità del problema
§ Suddivisione di un problema
complesso in sottoparti
indipendenti (quanto più possibile)
§ Ricerca di un nome in un elenco
telefonico
Ø Parallelismo massiccio
§ >1000 processori
DICGIM – Lab. Int. Uomo-Macchina