Scienza dell’informazione
Scuola di Specializzazione in Fisica Medica
Lezione 3
Struttura di un computer
Paolo Mastroserio
1
INDICE
• La nascita dei calcolatori
• La macchina di von Neumann
• Il futuro: architetture non-von Neumann
Paolo Mastroserio
2
I computer differiscono per …
… dimensioni
•
•
•
•
•
•
•
Mainframe
Minicalcolatori
Workstation
Desktop
Portatili
Palmari
…
Paolo Mastroserio
… e per
• Velocità
• Capacità di memoria
• Proprietà di
ingresso/uscita
• Software disponibile
• …
3
Come le automobili …
Le automobili, pur essendo diverse per
dimensioni e prestazioni, hanno tutte la
stessa tecnica di base e cioè hanno:
–
–
–
–
Un motore a combustione interna
L’alimentazione a benzina
Un ruotante su un asse che fa girare le ruote
…
Paolo Mastroserio
4
Così tutti i calcolatori …
Tutti i calcolatori,
nessuno escluso, pur
essendo molto diversi tra
loro per dimensioni e
prestazioni, sono basati
su un unico modello
teorico chiamato
macchina di von
Neumann
Paolo Mastroserio
5
John von Neumann
John von Neumann definì per la
prima volta il concetto di
elaboratore elettronico a
programma memorizzato, la
cosiddetta macchina di von
Neumann. Neumann fu il primo
a inquadrare in una teoria
matematica coerente le macchine
intelligenti e gli automi.
Per questo è anche considerato ... IL PADRE DELL'INFORMATICA
Paolo Mastroserio
6
L’EDVAC
(Electronic Discrete Variable Computer)
Nel 1946, John Von Neumann e
altri realizzarono il primo vero
computer: l'EDVAC (Electronic
Discrete Variable Computer) dotato
di un primo rudimentale "Sistema
Operativo". Derivato dall'ENIAC,
esso ne perfezionò il concetto di
programmabilità, in quanto i
programmi, anzichè essere inseriti
dall'esterno, erano incorporati nella
memoria della macchina e
richiamabili a piacimento, grazie
appunto al S.O.
Paolo Mastroserio
7
Architettura di von Neumann
L’architettura di una macchina di von Neumann
è un modello basato su tre caratteristiche principali:
1. Un computer così costituito:
• memoria
• Processore (CPU)
MEMORIA
– unità aritmetico logica (ALU)
– unità di controllo
• unità di Ingresso/Uscita (I/O)
I/O
CPU =
CONTROL UNIT
+
ALU
2. Il concetto di programma memorizzato
3. L’esecuzione sequenziale delle istruzioni
Paolo Mastroserio
8
La memoria
• RAM (Random Access Memory)
– La ram è divisa in unità di dimensioni fisse chiamate celle e ad
ognuna di queste è associato un identificatore intero positivo
chiamato indirizzo
– Gli accessi alla ram avvengono mediante gli indirizzi e le
operazioni possono essere
• di lettura (fetch)
• di scrittura (store)
– Il tempo di accesso alle celle è sempre lo stesso dovunque si
trovino
• ROM (Read Only Memory)
– Le rom sono delle ram a cui è stata disabilitata la possibilità di
scrittura
Paolo Mastroserio
9
Quanto è grande una cella ?
• L’unità di memoria è composta da celle con un numero
fisso di bit
• Il numero di bit è definito estensione della memoria e di
solito si indica con la lettera W (word)
• I primi calcolatori avevano valori di
W = 6,8,12,16,24,30,32,36,48 e 60 bit
• Oggi i costruttori non usano più il termine cella, diventato
obsoleto, ma usano il termine byte come unità di base
pari a 8 bit
Paolo Mastroserio
10
Codifica dell’informazione
• Con una cella a 8 bit l’intero più grande che si può scrivere è
255
• Per memorizzare dati utilizzando 16, 32 o 64 bit, i calcolatori
con W=8 devono usare più celle, ovvero 2, 4 e 8
• Quelli con W=16 ne useranno 2 o 4
• È evidente che nei vari casi occorreranno numeri diversi di
accessi alla memoria
Paolo Mastroserio
11
Indirizzamento della memoria
• Ogni cella di memoria è identificata univocamente da un
numero che in binario sarà costituito da un certo numero N
di bit
• Con N bit utilizzabili, l’intero positivo massimo che si può
ottenere è, in decimale, 2N-1
• Tale numero N è chiamato dimensione massima di
memoria o spazio di indirizzamento di un calcolatore
• Valori tipici di N sono 16, 20, 22, 24 e 32, 40
Paolo Mastroserio
12
Dimensioni massime
indirizzamento memoria
N. di bit
Dim. Max RAM
16
65.536
(65 KB)
20
1.048.576
(1 MB)
22
4.194.304
(4 MB)
24
16.777.216
16 MB)
32
4.294.967.296
(4 GB)
40
1.099.511.627.776
(1 TB)
Paolo Mastroserio
13
Ordini di grandezza
Quantità N. di Byte
1 byte
100
1 kilobyte
103
1 megabyte
106
1 gigabyte
109
1 terabyte
1012
1 petabyte
1015
1 exabyte
1018
1 zettabyte
Paolo Mastroserio
1021
Dimensione testo
Un carattere
Una pagina
Due o tre racconti
Una biblioteca personale
Una biblioteca universitaria
Tutte le biblioteche del Nord America
Tutte le parole stampate nella storia
dell’umanità
14
Indirizzo e contenuto
• Non bisogna confondere la differenza tra
indirizzo di una cella e il suo contenuto
• Esistono operazioni che agiscono sugli
indirizzi …
• … e operazioni che agiscono sui contenuti
di un indirizzo
indirizzo
143
Paolo Mastroserio
contenuto
435
15
Operazioni base sulla memoria
• FETCH (indirizzo) recupera indirizzo e
contenuto di una cella (fetch non distruttivo:
il contenuto della memoria rimane invariato)
• STORE (indirizzo, valore) memorizza il
valore specificato nella memoria indicata
dall’indirizzo (memorizzazione distruttiva)
Paolo Mastroserio
16
I registri di memoria
• I registri di memoria servono per
implementare le operazioni di fetch e di
store
• Le operazioni di fetch e di store hanno
bisogno di due operandi:
– L’indirizzo della cella cui si deve accedere
– Il valore da leggere o da scrivere
Paolo Mastroserio
17
Il MAR e l’MDR
MAR (Memory Address Register)
– Contiene gli indirizzi delle celle
– Deve avere una capacità di almeno N bit, dove 2N
è lo spazio di indirizzamento del calcolatore
MDR (Memory Data Register)
– Contiene il valore dei dati da leggere o scrivere
– La sua capacità è un multiplo di W (W=8)
Paolo Mastroserio
18
Rivediamo l’operazione di FETCH
• Carica l’indirizzo nel MAR
• Decodifica l’indirizzo nel MAR
• Copia il contenuto di quella locazione
nell’MDR
Paolo Mastroserio
19
Rivediamo l’operazione di STORE
•
•
•
•
Carica l’indirizzo nel MAR
Carica il valore nell’MDR
Decodifica l’indirizzo nel MAR
Memorizza il contenuto dell’MDR in quella
locazione di memoria
Paolo Mastroserio
20
Velocità di lettura/scrittura
• Le operazioni di fetch e di store richiedono
lo stesso tempo di esecuzione.
• Questo tempo viene chiamato tempo di
accesso alla memoria
• Le attuali memorie possono eseguire
operazioni di fetch e store in una decina di
nsec
Paolo Mastroserio
21
La CPU aspetta i dati dalla RAM …
• Spesso succede che la CPU rimane
inoperosa, in attesa che le vengano forniti
dalla RAM i dati da elaborare
• È possibile realizzare RAM più veloci ma
costerebbero troppo, allora …
Paolo Mastroserio
22
La memoria cache
• Von Neumann nel suo modello incluse un solo
tipo di memoria
• I moderni calcolatori oltre alla RAM prevedono
una o più memorie cache vicine al processore
(L1, L2, … dell’ordine delle centinaia di kbyte o
di qualche mega)
• Le memorie cache hanno una velocità dalle
cinque alle dieci volte superiore alle RAM
Paolo Mastroserio
23
Il principio di località
• Quando un programma effettua il
fetch di un dato o di un’istruzione, vi
è un’alta probabilità che esso,
nell’immediato futuro, acceda alla
stessa istruzione o dato.
• Questa osservazione viene chiamata
principio di località cioè, quando si
usa un elemento, si pensa che molto
probabilmente a breve verrà usato
nuovamente.
• Ciò suggerisce l’utilizzo di una
memoria cache veloce e vicina al
processore.
Paolo Mastroserio
#include <stdio.h>
main()
{
int c;
c = getchar();
while (c != 13) {
putchar(c);
c = getchar();
}
}
24
Un tipo di architettura
DDR Memory
Controller
L1
Instruction
Cache
Processor
Core
L2
Cache
L1
Data
Cache
BUS
Paolo Mastroserio
25
La RAM
•
RAM, acronimo usato nell‘informatica per Random Access Memory, è il supporto di
memoria su cui è possibile leggere e scrivere informazioni con un accesso "casuale",
ovvero senza dover rispettare un determinato ordine sequenziale, come ad esempio
avviene per un nastro magnetico.
•
Termine correntemente attribuito a supporti di memoria a stato solido facenti parte
dell‘hardware installato su un computer.
•
L'uso della memoria RAM è comune a tutte le archittetture hardware, sia
monoprocessore che multiprocessore e costituisce la memoria primaria
dell'elaboratore.
Paolo Mastroserio
26
RAM privata e RAM primaria
• A seconda dall'architettura usata, la CPU può accedere
direttamente alla memoria oppure accedervi tramite
appositi controller.
• Nel caso di sistemi multiprocessore, la memoria
primaria può essere condivisa da più processori oppure
può essere partizionata, nel qual caso ogni processore
dispone di una sua memoria privata.
• Esistono anche architetture miste dove è presente sia una
memoria primaria condivisa da tutti i processori che
una memoria privata dedicata ad ognuno di essi.
Paolo Mastroserio
27
CPU e RAM
• Il processore carica dalla RAM, quando non
presenti nella sua cache interna, le istruzioni da
eseguire e i dati da elaborare per poi riscriverli
nuovamente in RAM.
• Poiché generalmente la RAM è più lenta del
processore, la sua velocità è un fattore
determinante per le prestazioni dell'intero
calcolatore.
Paolo Mastroserio
28
La RAM:
memoria volatile
• Caratteristica comune a tutti i tipi di RAM utilizzati per la
memoria principale è quella di perdere il proprio
contenuto nel momento in cui viene a mancare la
corrente elettrica che le alimenta.
• Sono allo studio altri tipi di memoria, basati su altri
principi, che in futuro potrebbero consentire di superare
questa limitazione.
Paolo Mastroserio
29
Errori della RAM
• Può accadere che, per interferenze interne al computer, un singolo bit della
RAM cambi spontaneamente stato, passando a quello opposto.
• Alcune ricerche hanno dimostrato che la maggior parte degli errori della RAM
contenuti in un singolo bit sono causati da raggi cosmici, che possono cambiare
il contenuto di una o più celle della memoria, o interferire col circuito di
lettura/scrittura.
• C'è la preoccupazione che con la miniaturizzazione di questa memoria e la
diminuzione della tensione dei suoi circuiti, questi eventi possano accadere con
frequenza sempre più alta, dato che particelle con minore energia potrebbero
riuscire a interferire e provocare errori.
• D'altro canto la miniaturizzazione rende le celle "bersagli" meno facili per
queste particelle e quindi compensare questo fenomeno.
Paolo Mastroserio
30
ECC: Error-Correcting Code
• Nei sistemi cui è richiesta altissima
affidabilità (per esempio server) o che sono
esposti in modo particolare a radiazioni
(satelliti) vengono usati moduli speciali di
RAM, che includono bit extra di memoria:
i controllori ECC possono così correggere
gli errori che possono capitare.
Paolo Mastroserio
31
Legge di crescita delle DRAM
• Le RAM hanno avuto una notevole e costante crescita sia in
termini di capacità che (in misura minore) di velocità di accesso.
• L'industria delle RAM ha quadruplicato la capacità di memoria
ogni 3 anni. Questa è stata chiamata la legge di crescita delle
RAM.
• Questa crescita è molto simile a quella conosciuta come legge di
Moore in cui dall'osservazione empirica risulta che l'evoluzione
elettronica porta a un raddoppio della capacità elaborativa dei
computer ogni 18 mesi.
• La legge di Moore si è mantenuta vera fino ad oggi, ma arriverà
un momento in cui si andrà incontro al limite fisico dei materiali.
Paolo Mastroserio
32
Prestazioni: le CPU superano le RAM
• Anche se la crescita della capacità di memoria è andata di pari passo
con l'incremento delle prestazioni dei processori, un problema grave
è rimasto nel tempo di accesso: in origine le CPU funzionavano a
frequenze simili a quelle delle memorie, ma negli ultimi anni il
loro aumento di velocità è stato molto più rapido.
• Un processore moderno funziona a frequenze anche 10 volte più
elevate di quelle della RAM che gli fornisce i dati, creando un ovvio
collo di bottiglia nell'esecuzione dei programmi.
•
Lo sviluppo di grandi memorie cache ha permesso di risolvere,
sebbene solo in parte, questo problema (cache L1 e L2); il divario si
va assestando sul 50% annuo).
Paolo Mastroserio
33
Le RAM statiche: SRAM
• Static Random Access Memory, ovvero RAM statica.
In questo tipo di RAM ogni cella è costituita da un
"flip flop" realizzato da due porte logiche.
• Consentono di mantenere le informazioni per un tempo
infinito, sono molto veloci, consumano poco e quindi
dissipano poco calore. La necessità di usare molti
componenti, però, le rende molto costose e difficili da
impacchettare.
• Sono solitamente usate per le memorie cache, dove
elevate velocità e ridotti consumi sono caratteristiche
fondamentali.
Paolo Mastroserio
34
Alcuni tipi di RAM (da aggiornare continuamente)
Tipo
n. Pin
Alim.in Volt
BUS: n. Bit
MHz I/O
GByte/s
DRAM
168
5
32
66
.528
SDRAM
168
3.3
64
100
.800
DDR SDRAM
184
2.5
64
100
1.6
DDR SDRAM
184
2.5
64
133
2.1
DDR SDRAM
184
2.5
64
166
2.7
DDR SDRAM
184
2.5
64
200
3.2
DDR2 SDRAM
184
1.8
64
200
3.2
DDR2 SDRAM
184
1.8
64
266
4.2
DDR2 SDRAM
184
1.8
64
333
5.3
DDR2 SDRAM
184
1.8
64
400
6.4
DDR2 SDRAM
667
nuove
DDR3 SDRAM
184
1.2÷1.5
64
.8÷1.5 GHz
?
(da annunciare)
Paolo Mastroserio
35
Il controllore di I/O
Processore
RAM
• Si occupa delle fasi di I/O sgravando il
processore del carico di lavoro e dell’attesa
di fine operazione.
Buffer di
I/O
Controllo
/logica
• Usa:
– Segnali di interrupt
– Controllori di flusso
Paolo Mastroserio
I/O
device
36
I BUS
• Il bus è un canale attraverso cui diversi componenti elettronici (quali ad
esempio le varie parti di un computer) dialogano fra loro; si tratta di una serie di
connessioni elettriche ognuna delle quali può trasmettere cifre binarie (0 o 1) in
successione
• I dati trasmessi vengono interpretati dai vari componenti del sistema secondo
protocolli prestabiliti.
• Un bus che collega 2 componenti appartenenti alla stessa scheda integrata è
detto bus interno (internal bus) (di solito proprietario), se collega due
componenti generici è detto bus esterno (external bus). Se c’è un solo bus
esterno è detto bus di sistema (system bus)
• Il bus di sistema si divide in tre bus minori:
– bus dati
– bus indirizzi
– bus controlli
Paolo Mastroserio
37
Il BUS dati
• È il bus sul quale transitano le informazioni
• È usufruibile da tutti i componenti del
sistema, sia in scrittura sia in lettura
Paolo Mastroserio
38
Il BUS indirizzi
• È il bus attraverso il quale la CPU decide in quale
indirizzo andare a scrivere o a leggere informazioni; sia le
celle di memoria (RAM) sia le periferiche di I/O
(Input/Output) sono infatti divise in zone, ognuna delle
quali ha un dato indirizzo.
• Dopo aver comunicato l'indirizzo tramite, la scrittura o
lettura avviene normalmente tramite il bus dati.
Naturalmente questo bus è fruibile in scrittura solo dalla
CPU ed in lettura dagli altri componenti, in quanto
tramite questo bus viene dato solo l'indirizzo della cella,
che è deciso dalla CPU.
Paolo Mastroserio
39
Il BUS controlli
• Il bus controlli è un insieme di collegamenti il cui scopo è coordinare le
attività del sistema; tramite esso, la CPU può decidere quale
componente deve scrivere sul bus dati in un determinato momento,
quale deve leggere l'indirizzo sul bus indirizzi, quali celle di memoria
devono scrivere e quali invece leggere, etc.
• La memoria e tutti gli altri componenti comunicano con la CPU
attraverso un unico bus condiviso; questo significa che senza un
controllo da parte dalla CPU si verrebbero a creare dei conflitti e delle
collisioni
• Il motivo per cui gli elaboratori dispongono in genere di un solo bus è
semplice: l'architettura a più bus, proposta teoricamente agli albori
dell'informatica da John von Neumann, non è praticamente
realizzabile, visto l'altissimo numero di connessioni che sarebbero
necessarie.
Paolo Mastroserio
40
Il BUS PCI
PCI
• PCI: acronimo di Peripheral Component Interconnect Bus
• Bus di sistema PC, (ma anche Apple, Sun). Sviluppato dalla
Intel nel 1992 (in sostituzione del bus ISA).
• Nasce Frequenza 33 MHz a 32 bit, larghezza di banda 133
MB/s
• Il trasferimento che avviene attraverso un bus PCI è parallelo ed
è composto da una fase di indirizzamento e da una o più fasi di
dato.
Paolo Mastroserio
41
Il BUS AGP (1)
AGP
PCI
• L'Accelerated Graphics Port (AGP) è stata sviluppata da Intel
nel 1996 come modo per aumentare le prestazioni e velocità
delle schede grafiche connesse ai PC
• Si basa sullo standard PCI 2.1, e per questo la frequenza base a
cui opera è di 66 MHz.
• Il trasferimento dei dati avviene in modalità parallela, per cui
non è possibile una comunicazione bidirezionale contemporanea.
Paolo Mastroserio
42
Il BUS PCI Express
• Il PCI Express è il successore (seriale) del bus
di espansione PCI (parallelo) e sarà destinato a
sostituire il bus AGP fino ad ora in uso per le
schede grafiche.
• Chiamato PCI-Express è in genere abbreviato in
PCIe o PCIx (da non confondere con PCI-X
che si trova in molte Mother Board attualmente
in commercio).
• L'architettura è completamente differente dal bus PCI classico.
• E’ costituito da una serie di canali. Ciò consente una notevole modularità,
in quanto possono essere aggregati più canali per aumentare la banda
passante disponibile o per supportare particolari configurazioni come
l'utilizzo di due o più schede video. Inoltre la bandwidth di ciascun canale è
indipendente da quella degli altri.
• Un canale PCIe ha una banda disponibile di 266 MByte/sec.
• Nelle moderne schede video che utilizzano 16 canali PCIe la banda a
disposizione è di circa 4 GByte/sec (il doppio del bus AGP 8x).
Paolo Mastroserio
43
Il BUS USB
• Bus per il collegamento di periferiche lente
• Sviluppato nel ‘95 da un consorzio: Compact, HP, Intel, Lucent,
Microsoft, Nec, Philips
• Carateristiche: flessibilità, semplicità; un unico bus per molte
periferiche; non sono necessari dispositivi di controllo e porte
dedicate; facilmente espandibile; economico; connessioni a caldo;
supporto dispositivi tempo reale (audio - telefono).
• Il cavo è composto da 4 fili: massa, alimentazione (5V), Dati+,
Dati• Larghezza di banda:
– USB 1.0: 1,5 Mbit/s;
– USB 1.1: 12 Mbit/s;
– USB 2.0: 480 Mbit/s.
Paolo Mastroserio
44
Il BUS SCSI
• SCSI: acronimo di Small Computer System Interface
• Collegamento per dispositivi interni o esterni al computer: dischi
rigidi (dischi SCSI), ma anche CD - DVD – unità nastro - stampanti.
• versioni: SASI (’79), SCSI-1, SCSI-2, Fast SCSI-2, Fast & wide
SCSI-2, SCSI-3 Ultra, Ultra wide SCSI
• frequenze: 5 – 10 – 20 – 40 – 80 – 160 MHz
• linee di dati: 8 - 16 line
• banda passante 5 - 320 MB/sec
• Collega sino a 7- 15 controllori (unità) e massimo 2048 periferiche
per controllore.
• Collegamento a cascata, con terminatore.
• Parte della logica delegata ai controllori. 50 fili - 25 di massa per
eliminare disturbi (8 dati — 1 parità — 9 controllo — 7 alimentazione
e usi futuri)
• Asincrono: con protocollo di hand-shake
Paolo Mastroserio
45
Il BUS Fire Wire (IEEE 1394)
• Molte similitudini con l’USB: bus seriale con
alimentazione (60W), sviluppato da un consorzio
di aziende (1984 - Apple, 1995 Standard, ma con
Royalties), connessioni a caldo, meccanismi di
identificazione
Paolo Mastroserio
46
Esempio di un disco magnetico
• Ogni byte ha un unico indirizzo
• Il tempo di accesso dipende
dalla locazione fisica del byte
e dallo stato corrente del
dispositivo
traccia
Byte
Il tempo di accesso dipende da
• Tempo di ricerca: tempo che la testina impiega per raggiungere
la traccia
• Latenza: tempo necessario perché il settore ruoti sotto la testina
• Tempo di trasferimento: tempo di lettura/scrittura
Paolo Mastroserio
settore
47
Un esempio reale
• Velocità di rotazione: 7200 rpm, 10000 rpm, 15000 rpm (rpm
= ring per minute)
• Spostamento braccio: .02 msec
• Numero tracce per superficie: 1000
• Numero di settori per tracce: 50
• Numero byte per settore: 512
Paolo Mastroserio
48
La riduzione delle dimensioni dei dischi rigidi
richiede miglioramenti della tecnologia
Paolo Mastroserio
49
Metodo longitudinale di
magnetizzazione magnetica
Paolo Mastroserio
50
Metodo perpendicolare di
magnetizzazione magnetica
Paolo Mastroserio
51
Tecnologie longitudinali e perpendicolari a confronto
Perpendicular
Longitudinal
Lower Pole
Return Pole
Upper Pole
Main Pole
readelement
Field from Narrow Gap
write
coil
readelement
Hard Recording Layer
Soft Magnetic Underlayer
•
Il materiale del disco può essere più sottile
•
Un secondo strato sottostante permette una maggiore stabilità
Paolo Mastroserio
52
Dischi rigidi di diverse dimensioni
1 inch
Microdrive
1.8 inch
Mobile
2.5 inch Mobile
ATA & Serial ATA
3.5 inch ATA & SATA
3.5 inch
SCSI, FC
8GB in previsione dischi da 60GB
Pensato anche per cellulari, videocamere, lettori mp3 ecc.
Paolo Mastroserio
53
La tecnologia RAID
• La sigla RAID sta per Redundant Arrays of
Independent Disks. (Schiere Ridondanti di
Dischi Indipendenti)
• Nel 1987 tre ricercatori della California
University a Berkeley, Patterson, Gibson e Katz
definirono 5 modi diversi di gestione di gruppi
di hard disk.
• Nel 1989 poi, gli stessi autori definirono altri due
tipi di modalità di gestione degli array: il RAID
0 e il 6.
• Le differenze tra l'uno e l'altro tipo ne
determinano l'uso e le prestazioni.
Paolo Mastroserio
54
RAID 5 (il più usato)
•
In RAID 5 i dati di verifica sono distribuiti sui vari dischi di seguito ai dati normali senza un
disco dedicato esclusivamente ad essi anche se di fatto è necessaria l'equivalente presenza di
un disco in più per gestire un array in RAID 5. Anche per il RAID 5 infatti sono necessari
alla gestione di un array N+1 dischi.
•
Nella tabella sono riportati 4 stripe di dati composti da dati e controlli scritti di seguito
distribuiti sui 4 dischi componenti dell'array che risulta così ad accesso indipendente con le
informazioni di parità scritte e leggibili nella stessa operazione di scrittura o lettura essendo
poste subito dopo i dati alle quali si riferiscono. Si raggiungono così velocità più che
soddisfacenti anche in ambiente tipici dei server tanto è vero che il RAID 5 è la
configurazione più usata in questo campo.
Paolo Mastroserio
55
Le unità ad accesso sequenziale
• Le unità a nastro dei computer si
comportano esattamente come le cassette
audio
• Non sono molto utili per la gestione veloce
dei dati
• Si utilizzano principalmente per le copie di
sicurezza (back-up)
Paolo Mastroserio
56
Lentezza delle memorie di massa
• RAM: tempo di accesso 50 10 ns
• HD: tempo di accesso 10 ms
• È del tutto evidente che questa differenza
tra la velocità di una ram e i tempi di
accesso a un disco rigido comporterebbe dei
tempi di attesa inaccettabili per il
processore
Paolo Mastroserio
57
Il processore
• CPU = Central Processor Unit
• L’ALU e la CU oggi sono integrate in un
unico componente chiamato processore.
• Sono concettualmente diverse e pertanto
verranno trattate in maniera separata
Paolo Mastroserio
58
L’unità aritmetico/logica
• L’ALU (Arithmetic Logic Unit) è il
sottosistema che esegue le operazioni
matematiche e logiche:
– Addizione
– Sottrazione
– Confronto di uguaglianza
Paolo Mastroserio
59
L’unità di controllo
• Compito della CU (Control Unit) è di:
– Eseguire il fetch (lettura) da memoria
dell’istruzione da eseguire
– Decodificarla
– Eseguirla
Paolo Mastroserio
60
L’ALU
• L’ALU è composta di tre parti:
– I registri
– I collegamenti tra i componenti
– La circuteria ALU
Paolo Mastroserio
61
I registri
• Il registro è una cella di memorizzazione
che contiene gli operandi di un’operazione
matematica
• A operazione finita contiene i risultati
Paolo Mastroserio
62
Differenza tra registro e RAM
• Non hanno un indirizzo, sono accessibili da un
designatore di registro come A, B, X, Y o R0
• Viene utilizzata una costosa circuteria per
accedervi, sono raggiungibili in un tempo dalle
due alle dieci volte inferiore rispetto a una RAM
• Non servono per la memorizzazione generica ma
per effettuare calcoli
Paolo Mastroserio
63
Processori moderni
• Processori come l’Alpha o il PowerPC hanno poche
istruzioni macchina, dalle 30 alle 50
• Questo approccio minimizza la quantità di circuiteria
hardware (porte logiche, transistor, ecc.) necessaria per
costruire un processore
• Un programma scritto per una macchina risc può
richiedere più istruzioni per risolvere un problema
• Ciò è compensato dal fatto che lo spazio sul chip
risparmiato rende le istruzioni eseguibili più velocemente
Paolo Mastroserio
64
Processori e sistemi operativi
• I sistemi operativi unix-like, costituiti da un
numero esiguo di funzionalità di base,
risultano l’ideale per essere installati su
processori di tipo risc
• Costruttori di processori di tipo cisc
tuttavia, vantavano prestazioni competitive
anche con sistemi operativi di tipo unix
Paolo Mastroserio
65
La Controll Unit
• L’Unità di Controllo effettua le seguenti
operazioni:
– Trasferimento dati
– Operazioni aritmetiche
– Confronti
Paolo Mastroserio
66
Riepilogo: computer fino agli anni ‘50
USA - GB
Germania
Usa: 1931-1944
Mark I – Marina Militare, Harvard
University, dismesso nel 1959
Usa: 1939-1942
ABC (Atanasoff-Berry Computer),
calcoli matematici
GB:
Colossus (Turing)
Enigma
Usa: 1943
Eniac
Z1 (Konrad Zuse), simile
all’Eniac, mai portato a
termine
Usa: 1946÷1950
Edvac (von Neumann)
Edsac
USA: 1951
Univac I (primo calcolatore ad
essere venduto)
Paolo Mastroserio
67
Generazioni di computer
Prima
(1950-1959)
Seconda
(1959-1965)
Terza
(1965-1975)
Quarta
(1975-1985)
Quinta
(1985-oggi)
• Prime vendite
• Primi
linguaggi
simbolici
• Uso
aritmetica
binaria
• Uso valvole
• Prime schede
perforate
• Transistor
• Riduzione
dimensioni
• Primi dischi
• Primi
linguaggi ad
alto livello
• Primi sistemi
operativi
• Nascita
circuiti
integrati
• Ulteriore
riduzione
dimensioni
• Primi minicalcolatori
• Time
sharing
• Industria del
software
• Primi
standard
• LSI, VLSI
• Ulteriore
riduzione
dimensione
• Primi
microcalcolatori
• Nuovo
software
• Reti
• Interfacce
grafiche
• ULSI
• Supercalcolatori
• Workstation
• Palmari
• WiFi
• Tera-byte online
• Intelligenza
artificiale
• Sistemi
multimediali
Paolo Mastroserio
68
Grafico della velocità dei calcolatori negli anni
Paolo Mastroserio
69
Douglas Engelbart:
l’inventore del mouse
• Nel 1968, a 43 anni, Engelbart presenta la sua
invenzione: un mouse in legno e con delle
rotelline
• Engelbart non ha solo agevolato l’uomo
nell’utilizzo della macchina, ma ha costretto il
progresso ad essere più attento alle esigenze
dell’utente, rivoluzionando completamente il
concetto di interfaccia.
• Secondo Engelbart la tecnologia deve seguire le
esigenze dell’uomo e adattarsi a lui, non vice
versa.
• Una filosofia rivoluzionaria alla base di un’idea
altrettanto rivoluzionaria
Paolo Mastroserio
70
Evoluzione dei PC
Periodo
MHz
anni 80
1
2
anni 90
anni 00
12
25
75
100
200
400
600
800
1000
2000
3000
3800
Paolo Mastroserio
BUS
ISA
AT
MCA
EISA
PCI
(AGP)
RAM
Floppy
HD
64 KB
128 KB
256 KB
512 KB
1 MB
2 MB
4 MB
8 MB
16 MB
32 MB
64 MB
128 MB
256 MB
512 MB
1 GB
2 GB
4 GB
> 8 GB
80 kB
1.4 MB
5 MB
10 MB
20 MB
40 MB
80 MB
170 MB
512 MB
1 GB
2 GB
4 GB
9 GB
18 GB
36 GB
75 GB
120 GB
250 GB
500 GB
> 500 GB
71
Il futuro dei calcolatori
• Si è visto che fino agli anni ’80 la crescita delle prestazioni
dei calcolatori è stata esponenziale, successivamente si è
avuto un calo; i motivi sono:
– limite fisico della velocità dei processori
– limite fisico nell’avvicinare le porte logiche tra loro
• Nei chip VLSI le porte logiche sono distanti 3·10-6 metri
• Al rallentare del tasso di crescita delle prestazioni delle
macchine aumenta la dimensione dei problemi che si vuole
risolvere
Paolo Mastroserio
72
Elaborazione di filmati
– Occorrono 24 frame al secondo
– Ogni frame contiene generalmente 1000x1000 punti
(pixel)
– Per ogni pixel bisogna calcolare posizione colore e
intensità
– Per ogni secondo vanno elaborati 24.000.000 di pixel
– Per il calcolo di ogni pixel occorrono diverse dozzine
di istruzioni
L’impossibilità del modello di von Neumann, che
si basa sull’esecuzione di istruzioni in sequenza,
di gestire problemi su larga scala, è detta
collo di bottiglia di von Neumann
Paolo Mastroserio
73
IPC: Instructions Per Cycle
• L’aumento delle prestazioni dei processori non può essere più
incentrato su aumenti della frequenza di clock
• I consumi e le conseguenti necessità di dissipare enormi quantità di
energia per mm2 rendono questa strada ormai quasi sbarrata intorno ai
4 GHz
• I progettisti avevano cercato nuovi metodi e tecniche per aumentare
il numero di istruzioni da eseguire per ogni ciclo di clock
• Un metodo era quello di aumentare la dimensione in termini di bit
dei registri (128), per potervi registrare più istruzioni da eseguire
contemporaneamente
• Questo approccio richiedeva lo sfruttamento di grosse aree sul silicio
del processore e aumentava comunque la complessità
dell’architettura con conseguente aumento dei costi di produzione
Paolo Mastroserio
74
Architetture non – von Neumann
Se non riesci a costruire qualcosa che funzioni a una
velocità doppia, fai due cose contemporaneamente.
Il risultato sarà identico
SISD Single
Instruction stream - Single
SIMD Single
Instruction stream - Multiple Data stream
MISD Multiple Instruction stream - Single
Data stream
Data stream
MIMD Multiple Instruction stream - Multiple Data stream
Paolo Mastroserio
75
Il modello SIMD
Nel modello SIMD esiste un
solo programma in cui le
istruzioni subiscono il ciclo
fetch/decodifica/esecuzione in
modo sequenziale mediante una
sola unità di controllo.
L’ALU viene replicata, ciascuna
con una propria memoria
Paolo Mastroserio
CONTROL UNIT
BUS
ALU
ALU
ALU
ALU
MEM
MEM
MEM
MEM
76
Il modello MIMD
Nel modello MIMD, sono
replicati tutti i processori e
non soltanto l’ALU.
Ogni processore è in grado
di eseguire il proprio
programma nella propria
memoria alla propria
velocità
Paolo Mastroserio
Rete di interconnessione
CPU
CPU
CPU
CPU
MEM
MEM
MEM
MEM
77
Tecnologia Dual-Core
Da anni si è sviluppata
una strada completamente
diversa per aumentare le
prestazioni dei sistemi di
elaborazione di dati:
utilizzare più nuclei di
elaborazione all’interno
dello stesso processore
Paolo Mastroserio
CPU0
CPU1
1MB
L2 Cache
1MB
L2 Cache
System Request Interface
Crossbar Switch
Memory
Controller
HT0 HT1 HT2
78
Considerazioni sulla tecnologia Dual-Core
• Un problema che si incontra con la
tecnologia dual core è dato dal problema
della condivisione delle risorse
• Analizziamo alcune soluzioni
Paolo Mastroserio
79
Soluzioni dual core a confronto
Core 0
Core 1
Cache
Cachefor
for
Core
Core1
1
Memory
Controller
Cache
for
Cache for
Core
Core 0 0
BUS
Core 0
BUS
BUS
Core 1
BUS
RAM
I/O
Chipset
I/O
Chipset
RAM
other I/O links
Paolo Mastroserio
other I/O links
80
Gestione dei colli di bottiglia
RAM
CPU
RAM
8 GB/S
CPU
CPU
CPU
8 GB/S
I/O Hub
Memory
PCI-E
Controller
Bridge
Hub
PCI-E
Bridge
PCI-E
Bridge
PCI-E
Bridge
8 GB/S
PCI-E
Bridge
PCI-E
Bridge
8 GB/S
USB
I/O Hub
PCI
RAM
Paolo Mastroserio
81
Come si misurano
le prestazioni di un calcolatore ?
• Non è facile stabilire in maniera oggettiva quale processore
è più performante di un altro
• La risposta può variare anche dalle specifiche esigenze di
elaborazione di un singolo utente
• Le prestazioni dipendono comunque dall’architettura
generale dell’intero sistema e non solo da un suo singolo
componente (es.: il processore)
• Per avere qualche risposta si può consultare il sito
www.spec.org
Standard Performance Evaluation Corporation
• Le valutazioni vengono effettuate facendo girare
programmi di test utilizzando numeri interi (SPECint) e in
virgola mobile (SPECfp)
Paolo Mastroserio
82
Cos’è un benchmark ?
• Un “computer benchmark” serve per valutare
le prestazioni di un computer; è un programma
che esegue un insieme di operazioni detto
workload (carico di lavoro) e fornisce come
risultato una metrica.
Paolo Mastroserio
83
SPEC CPU
• Spec CPU misura:
– I processori (CPU)
– L’architettura della memoria
– I compilatori
• Spec CPU si divide in:
– CINT: Compute-intensive Integer
– CFP: Compute-intensive Floating Point
Paolo Mastroserio
84
I limiti dei benchmark
• Servizi di sistema, attività di I/O, numero di
dischi, ecc. possono influire sulle
prestazioni generali
• Nessun benchmark standardizzato potrà
mai fornire un modello perfetto per tutte le
realtà e comunità di utenti
Paolo Mastroserio
85
Versioni di SPEC CPU
• SPEC ha dichiarato obsoleta la suite 2000
• Le versioni pubblicate sono state:
– CPU92
– CPU95
– CPU2000
• Da giugno è uscito CPU 2006 ma non ci
sono ancora molti risultati
Paolo Mastroserio
86
CINT2006: gli algoritmi di benchmark
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Paolo Mastroserio
C
C
C
C
C
C
C
C
C
C++
C++
C++
PERL Programming Language
Compression
C Compiler
Combinatorial Optimization
Artificial Intelligence: go
Search Gene Sequence
Artificial Intelligence: chess
Physics: Quantum Computing
Video Compression
Discrete Event Simulation
Path-finding Algorithms
XML Processing
87
CFP2006: gli algoritmi di benchmark
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Paolo Mastroserio
Fortran
Fortran
C
Fortran
C/Fortran
C/Fortran
Fortran
C++
C++
C++
C++
C/Fortran
Fortran
Fortran
C
C/Fortran
C
Fluid Dynamics
Quantum Chemistry
Physics: Quantum Chromodynamics
Physics/CFD
Biochemistry/Molecular Dynamics
Physics/General Relativity
Fluid Dynamics
Biology/Molecular Dynamics
Finite Element Analysis
Linear Programming, Optimization
Image Ray-tracing
Structural Mechanics
Computational Electromagnetics
Quantum Chemistry
Fluid Dynamics
Weather Prediction
Speech recognition
88
Come compilare i benchmark?
• SPEC produce i codici sorgenti dei suoi
benchmark che poi vanno compilati
• Ci sono varie opzioni di compilazione per
ottimizzare e migliorare le prestazioni degli
eseguibili
• Occorre allora fissare delle specifiche precise di
compilazione per poi confrontare tra loro i codici
eseguibili
Paolo Mastroserio
89
Base Metric e Peak Metric
• Base Metric: le flag di compilazione sono
rigidamente assegnate e sono indicate con
un preciso ordine prestabilito
• Peak Metric: le flag di compilazione sono
libere, dipendono dai singoli compilatori e
ottimizzano al massimo il codice eseguibile
Paolo Mastroserio
90
Le metriche della SPEC
SPEC INT
SPECint2006
SPECint_base2006
SPECint_rate2006
SPECint_rate_base2006
SPEC FP
SPECfp2006
SPECfp_base2006
SPECfp_rate2006
SPECfp_rate_base2006
Paolo Mastroserio
tuning
peak
note
Media geometrica di 12 rapporti normalizzati
base Media geometrica di 12 rapporti normalizzati
peak
Media geometrica di 12 rapporti normalizzati
base Media geometrica di 12 rapporti normalizzati
tuning
peak
note
Media geometrica di 17 rapporti normalizzati
base Media geometrica di 17 rapporti normalizzati
peak
Media geometrica di 17 rapporti normalizzati
base Media geometrica di 17 rapporti normalizzati
91
Esempi di SPECint2000
SPECint
® 2000
MHz
Processor Name
Submitting
company
Submission system
1666.0
3400.0
MHz
Pentium 4 HT Extreme
Edition
Intel Corporation
Intel D875PBZ motherboard
(AA-206)(3.4 GHz, Pentium 4
Proces
1583.0
3200.0
MHz
Pentium 4 HT
Intel Corporation
Intel D875PBZ (AA-206)
motherboard (3.2 GHz, Pentium 4
proce
1570.0
3200.0
MHz
Pentium 4
Dell
Precision Workstation 360 (3.2
GHz Pentium 4 Extreme Edition
1570.0
3066.0
MHz
Pentium Xeon
Dell
Precision Workstation 360 (3.2
GHz Pentium 4 Extreme Edition
1532.0
3200.0
MHz
Xeon
Dell
Precision Workstation 650 (3.20
GHz Xeon, 2MB L3 Cache)
1408.0
1500.0
MHz
Itanium 2
Hewlett-Packard
Company
HP Integrity Server rx2600 (1500
MHz, Itanium 2)
1405.0
2200.0
MHz
Opteron
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) 148
1379.0
3000.0
MHz
Xeon MP
Dell
PowerEdge 6600 (3.0 GHz Xeon
MP)
1376.0
2200.0
MHz
Athlon FX 51
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Athlon (TM) FX-51
1289.0
2000.0
MHz
Opteron 146 HE
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) Model 146 HE
1266.0
2000.0
MHz
Athlon 64
Advanced Micro
Devices
MSI K8 Neo (MS-6702)
Motherboard, AMD Athlon (TM)
64 3200+
1099.0
1500.0
MHz
Itanium2
Dell
Dell PowerEdge 3250
(1.5GHz/6MB, Itanium2)
1077.0
1700.0
MHz
POWER4+
IBM Corporation
IBM eServer pSeries 690 Turbo
(1700 MHz, 1 CPU)
1044.0
2200.0
MHz
Athlon XP
Advanced Micro
Devices
ASUS A7N8X Motherboard rev.
2.0, AMD Athlon (TM) XP
3200+
960.0
2167.0
MHz
Athlon
Advanced Micro
Devices
ASUS A7N8X Deluxe
Motherboard, AMD Athlon (TM)
XP 3000+
960.0
2167.0
MHz
Athlon
AXDA3000DKV4D
Advanced Micro
Devices
ASUS A7N8X Deluxe
Motherboard, AMD Athlon (TM)
XP 3000+
948.0
1400.0
MHz
Opteron 140 EE
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) Model 140 EE
845.0
1250.0
MHz
Alpha
Hewlett-Packard
Company
hp AlphaServer ES45 68/1250
822.0
1300.0
POWER4
IBM Corporation
IBM eServer pSeries 655 Model
Paolo Mastroserio
92
Esempi di SPECfp2000
SPECfp
® 2000
MHz
Processor Name
Submitting
company
Hewlett-Packard
Company
Submission system
2161.0
1500.0
MHz
Itanium 2
1875.0
1500.0
MHz
Itanium 2
Dell
Dell PowerEdge 3250
(1.5GHz/6MB, Itanium2)
1642.0
1700.0
MHz
POWER4+
IBM Corporation
IBM eServer pSeries 655 (1700
MHz, 1 CPU)
1548.0
3400.0
MHz
Pent ium 4 HT Extreme
Edition
Intel Corporation
Intel D875PBZ motherboard (AA301) (3.4 GHz, Pentium 4 Proce
1505.0
2200.0
MHz
Opteron
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) 148
1497.0
3200.0
MHz
Pent ium 4
Dell
Precision Workstation 360 (3.2
GHz Pent ium 4 Extreme Edition
1434.0
3200.0
MHz
Pent ium 4 HT
Intel Corporation
Intel D875PBZ motherboard (AA301) (3.2E GHz, Pentium 4 Proc
1371.0
2200.0
MHz
Athlon FX 51
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Athlon (TM) FX-51
1338.0
3200.0
MHz
Xeon
Dell
Precision Workstation 650 (3.20
GHz Xeon, 2MB L3 Cache)
1306.0
2000.0
MHz
Opteron 146 HE
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) Model 146 HE
1270.0
3000.0
MHz
Xeon MP
Dell
PowerEdge 6600 (3.0 GHz Xeon
MP)
1207.0
3200.0
MHz
Pent ium Xeon
Dell
PowerEdge 2650 (3.2 GHz Xeon,
1MB L3)
1202.0
1300.0
MHz
POWER4
IBM Corporation
IBM eServer pSeries 690 Turbo
(1300 MHz)
1180.0
2000.0
MHz
Athlon 64
Advanced Micro
Devices
MSI K8 Neo (MS-6702)
Motherboard, AMD Athlon (TM)
64 3200+
1124.0
1150.0
MHz
Alpha
Hewlett-Packard
Company
AlphaServer GS1280 7/1150
1096.0
1350.0
MHz
SPARC64 V
Fujitsu Limited
PRIMEPOWER650 (1350MHz)
1012.0
1400.0
MHz
Opteron 140 EE
Advanced Micro
Devices
ASUS SK8N Motherboard, AMD
Opteron (TM) Model 140 EE
954.0
1280.0
MHz
UltraSPARC IIIi
Sun
Microsystems
Sun Fire V250 (1.28GHz)
953.0
1200.0
MHz
UltraSPARC III Cu
Sun
Microsystems
Sun Blade 2000 (1.2GHz)
873.0
2200.0
MHz
Athlon XP
Advanced Micro
Devices
ASUS A7N8X Motherboard rev.
2.0, AMD Athlon (TM) XP 3200+
776.0
2167.0
Athlon
Advanced Micro
ASUS A7N8X Deluxe
Paolo Mastroserio
HP Integrity Server rx4640 (1500
MHz, Itanium 2)
93
Considerazioni finali
• Gli algoritmi di SpecCPU2000 sono diversi da SpecCPU2006
• Le unità di misura sono diverse
• Dai benchmark si evince che il clock del processore non è
l’unico parametro per valutare le prestazioni di un computer
• Al crescere dei core e dei chip l’incremento delle prestazioni
non è lineare
• Ogni computer va quindi valutato nel suo complesso!
Paolo Mastroserio
94