Introduzione
all’Architettura del Calcolatore
Testi consigliati:
William Stallings, Computer Organization and Architecture, 5/6-th edition
Prentice Hall, 2003, ISBN: 0-13-035119-9
lezione 3
Andrew Tanenbaum, Structured Computer Organization, Fourth Edition
Prentice Hall (1999) ISBN: 0-13-095990-1
Luciano Bononi
[email protected]
...altri testi potranno essere citati in seguito.
http://www.cs.unibo.it/˜bononi/
Figure credits: some figures have been taken from web presentations found on the web by
the following authors: Larry and Nancy Long, Mike Schulte
1
© 2002 Luciano Bononi
ASCII Chart (vedi lezione precedente)
Character
Character
AA
BB
CC
DD
EE
FF
GG
HH
II
JJ
KK
LL
MM
NN
OO
PP
QQ
RR
SS
TT
UU
VV
WW
XX
YY
ASCII
ASCIICode
Code Character
Character ASCII
ASCIICode
Code
100
00
011
1000001
0001
0110000
0000
100
11
011
1000010
0010
0110001
0001
100
22
011
1000011
0011
0110010
0010
100
33
011
1000100
0100
0110011
0011
100
44
011
1000101
0101
0110100
0100
100
0110
5
011
0101
100 0110
5
011 0101
100
0111
6
011
0110
100 0111
6
011 0110
100
77
011
1001000
1000
0110111
0111
100
1001
8
011
100 1001
8
0111000
1000
100
1010
9
011
1001
100 1010
9
011 1001
100
1011
Space
010
0000
100 1011
Space
010 0000
100
..
010
1001100
1100
0101110
1110
100
1101
(
010
100 1101
(
0101000
1000
100
1110
+
010
1011
100 1110
+
010 1011
100
&&
010
1001111
1111
0100110
0110
101
0000
$
010
101 0000
$
0100100
0100
101
0001
*
010
1010
101 0001
*
010 1010
101
))
010
1010010
0010
0101001
1001
101
0011
;
011
101 0011
;
0111011
1011
101
,,
010
1010100
0100
0101100
1100
101
-101
1010101
0101
1011111
1111
101
??
011
1010110
0110
0111111
1111
101
::
011
1010111
0111
0111010
1010
101
==
011
1011000
1000
0111101
1101
101
1011001
1001
© 2002 Luciano Bononi
2
© 2002 Luciano Bononi
PC System Unit
Motherboard
Altre codifiche:
ANSI (8 bit)
Unicode (16 bit)
Display Esadecimali
3
Dispositivi
di Memoria
Processore
Hard
Drive
RAM
Floppy
Drive
Schede di
Espansione
CD-ROM/
DVD Drive
© 2002 Luciano Bononi
4
Motherboard
Intel: evoluzione dei microprocessori
! Scheda contenente circuiti elettronici principali
!
286, 386, 486
! Fornisce il supporto comune a una serie di dispositivi:
!
Pentium®
•
Microprocessore
!
Pentium® Pro
•
Chipset
!
Pentium® II
•
Chip di Memoria
!
Pentium® III
•
Schede di espansione
!
Celeron®
•
Bus
!
Itanium™
•
Controller dei device
5
© 2002 Luciano Bononi
Componenti del microprocessore
Unità di Controllo
• Dirige le operazioni dei componenti interni
• Controlla il flusso di dati/istruzioni
da/verso RAM
© 2002 Luciano Bononi
6
© 2002 Luciano Bononi
Tipi di dispositivi di memoria (chip)
Decoder
• Legge e Interpreta le istruzioni del
programma
Accumulator
Photo Courtesy of
Intel Corporation
Cache
Cache
Program
Register
Instruction
Register
RAM
RAM
ROM
ROM
Flash
Flash
PROM
PROM
Unità Aritmetico/logica (ALU)
7
© 2002 Luciano Bononi
8
RAM
Tipi di RAM
!! SDRAM
SDRAM(Synchronous
(SynchronousDynamic
DynamicRAM)
RAM)
! RAM: Random Access Memory (accesso casuale)
•• Riescono
Riesconoaasincronizzarsi
sincronizzarsicon
conililprocessore
processore
! serve a mantenere i dati e programmi in
esecuzione
!! RDRAM
RDRAM(Rambus
(RambusDRAM)
DRAM)
! permette di indirizzare direttamente porzioni di dati
o istruzioni (indirizzo di RAM)
•• Innovative
Innovativeeecostose
costose
•• 66volte
voltepiù
piùveloci
velocidelle
delleSDRAM
SDRAM
! Richiede alimentazione costante es. 1,2,4,8 Byte
•
volatile
es. 256
indirizzi da
8 bit
indirizzo 00
dato “A”
indirizzo 01
istruzione X
indirizzo FE
dato “$”
indirizzo FF
dato 3
© 2002 Luciano Bononi
!! Installazione
Installazionefisica
fisica
•• SIMMs:
SIMMs:(single)
(single)32-bit
32-bitdata
datapath
pathverso
versola
laCPU
CPU
•• DIMMs:
DIMMs:(dual)
(dual)64-bit
64-bitdata
datapath
pathverso
versola
laCPU
CPU
•• RIMMs:
RIMMs:RDRAM
RDRAMchips
chips(+
(+veloci)
veloci)
9
Cache Memory
!
Velocissima e costosa
•
Capacità molto inferiore alla RAM
!
Mantiene le prossime istruzioni da eseguire
•
!
CPU
!
ROM: Read Only Memory
!
Mantiene permanentemente dati e istruzioni
Cache
Cache
come fa a sapere quali sono?
Aumenta notevolemente il throughput del sistema di calcolo
•
vedremo come....
11
•
non volatile
•
non programmabile dall’utente
CPU
Cache
Cache
ROM
ROM
!
es. Mantiene istruzioni del sistema operativo nella fase di boot
!
PROM: variante della ROM
!
© 2002 Luciano Bononi
10
© 2002 Luciano Bononi
ROM
(molto più della RAM)
!
RAM
RAM
•
programmabile una volta (non volatile)
•
costosa
EPROM: variante della ROM
•
(ri-)programmabile e cancellabile (non volatile)
•
costosa
© 2002 Luciano Bononi
12
Memoria Flash
!
simile alle PROM
!
Può essere facilmente programmata da utenti
!
Non-volatile
•
es. usata per fare upgrade di software da Web o Disco
•
Non richiede di fare sostituzione di chips o schede
Aggiunta di dispositivi periferici alla motherboard
Slot di espansione
Porta di collegamento
della periferica
Piedini di inserimento
© 2002 Luciano Bononi
13
Tipi di Bus
!
Scheda di espansione
!
più dispositivi connessi allo stesso port, connettori diversi
(incompatibili), IDE variante Macintosh (controller sul device)
bus (locale) PCI (Peripheral Compoment Interconnect)
•
SCSI-1: bus a 8-bit, data rates fino a 4 MBps
64bit (32bit di fatto), 33/66Mhz clock (133 MBps)
•
SCSI-2: vedi SCSI-1, ma usa connettore a 50-pin invece di 25pin, e supporta dispositivi multipli. plain SCSI.
dal 1990 su IBM XT/AT
bus SCSI (Small Computer System Interface)
•
usato per dischi e stampanti, fino a 80Mbps
•
Wide SCSI: 68 pins,16-bit.
•
possibile attaccare più dispositivi allo stesso port
•
Fast SCSI: bus a 8-bit, doppio clock rate, 10 MBps.
•
connettori diversi (incompatibili)
•
Fast Wide SCSI: bus a 16-bit, 20 MBps.
•
IDE variante Macintosh (controller sul device)...continua
•
Ultra SCSI: bus a 8-bit, 20 MBps.
•
SCSI-3: bus a 16-bit, 40 MBps. (Ultra Wide SCSI)
•
Ultra2 SCSI: bus a 8-bit, 40 MBps.
•
Wide Ultra2 SCSI: bus a 16-bit, data rates of 80 MBps.
Le
Le schede
schede di
di espansione
espansione sono
sono costruite
costruite per
per
collegamenti
collegamenti specifici
specifici aa vari
vari tipi
tipi di
di bus
bus
© 2002 Luciano Bononi
14
bus SCSI (Small Computer System Interface)
•
•
!
© 2002 Luciano Bononi
Tipi di Bus (SCSI)
Bus ISA (industry Std. Architecture)
•
!
Courtesy of ATI
Technologies Inc.
15
© 2002 Luciano Bononi
16
Tipi di Bus
!
!
bus USB 1.1 (Universal Serial Bus)
•
bus esterno, 12 Mbps, un port connette fino a 127 device
•
usato per sostituire porte seriali e parallele (mouse, stampanti,
ecc.)
!
• 8 bits in parallelo
• Veloci
• es. stampanti
• brevi distanze
• 1 bit alla volta
• Lente
• es. mouse, modem
• “lunghe” distanze
• tastiera
• mouse
• connettore 5-pin
• Luce infrarossa
• es. stampanti, mouse
• brevi distanze, LoS
• +nuove e +veloci
• costose
• es. videocam, HD esterni
• 15 periferiche
• concatenazione
bus USB 2.0 (Hi-speed USB)
•
!
Porte di connessione (ports)
fino a 480Mbps compatibile con USB1.1
bus 1394 (FireWire, i.link, Lynx)
•
bus esterno fino a 400Mbps (a) e 800Mbps (b)
•
fino a 63 dispositivi, permette trasmissione a rate garantito
• alta velocità
bus AGP (Accelerated Graphic Ports) N.B. ha varie restrizioni
•
versione PCI a supporto di dati per grafica 3-D
•
canale diretto da controller grafico a memoria (32bitx66Mhz)
© 2002 Luciano Bononi
17
PCMCIA Card
18
© 2002 Luciano Bononi
Cosa succede all’interno della motherboard?
Control
Unit
Input
Unit
Control flow
U.S. Robotics Mobile
Communications
Corporation
© 2002 Luciano Bononi
19
© 2002 Luciano Bononi
Arithmetic
Logic Unit
Main memory
Instruction flow
Output
Unit
Data flow
20
Ciclo di esecuzione dell’istruzione
Fasi del Ciclo di Istruzione= Instruction-time + Execution-time
Leggi la prossima istruzione dalla memoria
Instruction
Fetch Instruction
Throughput?
Throughput?
Determina le azioni da compiere e eventuali dati
Indica quanti
“risultati” si
producono in una
determinata unità di
tempo
Decode
trova e acquisisci i dati (es. operandi)
Operand
Fetch
Execute
Calcola il risultato dell’operazione (se richiesto)
Result
Memorizza
il
risultato/i
dell’operazione
(in memoria o nei registri temporanei)
Store in memory
Instruction
Instruction
Time
Execution
Time
Decode Instruction
Fetch
Execute Instruction
Store
Next
fetch/decode
fetch/decode
istruzione x
istruzione x+1
Determina la prossima istruzione da eseguire
(indirizzo di RAM del Program Counter)
Instruction
21
© 2002 Luciano Bononi
tempo
execute/store
execute/store
istruzione x
istruzione x+1
© 2002 Luciano Bononi
22
Il Processore tipico attuale
Fasi del Ciclo di Istruzione= Instruction-time + Execution-time
! Unità di elaborazione dei dati
Store in memory
Cercare di eseguire
in parallelo le due
fasi del ciclo di
istruzione:
Instruction
Time
Execution
Time
Decode Instruction
Fetch Instruction
Pipelining?
Pipelining?
• 32/64-bit
! Velocità
• MHz, MIPS, MegaFLOPS?
• da 750 MHz to 3 GHz clock rate
! RAM
Execute Instruction
fetch/decode
istruzione x
© 2002 Luciano Bononi
fetch/decode
fetch/decode
istruzione x+1
istruzione x+2
• 128 to 512 MB
tempo
execute/store
execute/store
execute/store
istruzione x
istruzione x+1
istruzione x+2
23
© 2002 Luciano Bononi
24
Capacità di memoria: unità di misura
Dischi fissi (o Dischi rigidi)
! un Byte " circa un carattere
! Più veloci e capienti dei dischetti da 3,5 pollici
! Kilobyte (KB) – 2^10 = 1024 bytes
! da 10 GB a >75 GB permanenti
! Megabyte (MB) – 2^20 = circa un milione di bytes
! Anatomia:
! Gigabyte (GB) – 2^30 = circa un miliardo di bytes
! Terabyte (TB) – 2^40 = circa mille miliardi di bytes
© 2002 Luciano Bononi
25
Schema di un Hard Disk
•
superficie di registrazione
•
dischi multipli
•
testina di lettura/scrittura
•
braccia multiple
Courtesy of Seagate
Technology
26
© 2002 Luciano Bononi
Tecnologia RAID (Hard Disk)
•Tecnologia RAID: Redundant Array of Independent (?) Disks
• permette di avere i dati sparsi su HD multipli
• i dischi possono essere sostituiti “a caldo”
• Fault Tolerance
es. bit 0 ricostruito
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0....
1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0....
disco rotto
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0....
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0....
xor dei
precedenti
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0....
(conta il numero di “uno” della colonna pari=0 o dispari=1)
© 2002 Luciano Bononi
27
© 2002 Luciano Bononi
28
Perchè gli HD sono delicati?
Organizzazione dei dischi magentici (HD e Floppy)
! Indirizzi su disco
• Traccia/settore/cluster
• Cilindro
! Scrittura
• sottile superficie
magnetizzata
! Lettura
• testina rileva
presenza/assenza di
magnetizzazione
29
© 2002 Luciano Bononi
Organizzazione del disco
© 2002 Luciano Bononi
Computer Virus: danneggiano organizzazione disco
!
!
! VFAT:
• Virtual File Allocation Table
! ScanDisk
• rileva cluster danneggiati
Fattori e Parametri di velocità
del disco
•
Tempo di accesso
•
Data transfer rate
•
Cache del disco?
!
Non si deve cambiare il computer!
•
non fanno danni fisici all’HW (per ora #)
•
fanno danni “fisici e logici” ai dati
(comunque sufficienti a farvi arrabbiare!)
Infezioni:
! Deframmentazione
•
Internet
! Formattazione
•
e-mail (attachments)
•
dischetti
•
via rete locale
Rischio Virus: possibili danni
all’organizzazione dati su disco
© 2002 Luciano Bononi
30
!
31
Usare antivirus e fare copie di backup spesso!
© 2002 Luciano Bononi
32
Dispositivi Ottici/laser
Dischi ottici: Write-Only
! CD-ROM
Spiral Track
Detector
Meno
Meno sensibili
sensibili
ai
ai problemi
problemi
ambientali
ambientali
• Compact Disk: memoria read only
• Non può essere “aggiornato”
• Velocità: 32X, 40X, 75X (rotazione)
Pit
Land
Sector
Optical
Storage
Meno
Menocostosi
costosi
dei
deidischi
dischi
magnetici
magnetici
!
! DVD-ROM
• Capacità: 4.7 GB fino a 17 GB
• retro-compatibile con CD-ROM
33
Dischi ottici: Read/Write
CD-R
•
• Capacità: 650/700 MB
Alta
Alta capacità
capacità
dati
dati
© 2002 Luciano Bononi
!
• Jukeboxes
Compact diskregistrabile
CD-RW
•
Compact diskriscrivibile
•
Non compatibile con
vecchi lettori CD-ROM
© 2002 Luciano Bononi
Confronto tra i costi
!
DVD-R
!
DVD-RAM
•
!
34
© 2002 Luciano Bononi
costo
costo RAM
RAM ––
circa
Mb
circa $0.5/
$0.5/Mb
Riscrivibile
FMD-ROM
•
(Fluorescent MultiLayer Disc)
Capacità fino a 140 GB e retrocompatibile
•
fino a 10 strati di materiale
fluorescente contengono dati
•
lettura dati in parallelo dai 10
strati
Hard
Hard disk
disk <<
$$0.1/Mb
0.1/Mb
CD
0.01/Mb
CD -- << $$0.01/Mb
35
© 2002 Luciano Bononi
36
Componenti del Computer
Schema Generale di un PC
! Breve rassegna delle funzioni dei componenti
! Dal 1946 il PC ha 5 componenti principali connesse da una serie di
Bus per il trasporto dei dati
•
ALU – Esegue operazioni aritmetico logiche
Processore
• es. somma, moltiplicazione, shift
Input
Unità di
Controllo
•
memoria – memorizza dati e istruzioni
• e.g., cache, memoria principale, dischi
Memoria
•
input – immette dati nel PC
• es. tastiera, mouse
ALU
•
Output
output – restisuisce dati dal PC
• es. schermo, scheda audio
•
controllo – gestisce tutte le altre componenti
• es. controller del bus, gestore della memoria
37
© 2002 Luciano Bononi
38
© 2002 Luciano Bononi
Componenti e organizzazione
Costo relativo delle componenti
Processore
Computer
Obiettivi della progettazione:
25% costo processore
25% costo memoria
50% tutto il resto
Processor
Cache
Memory
Devices
Control
Input
Datapath
Output
Bus
adattatori
Memoria
Controllers
Dispositivi I/O:
Dischi
Display
Testiera
Controllers
Rete
! Ogni componente ha interfacce verso altri componenti
e gestori o coordinatori delle funzioni
© 2002 Luciano Bononi
39
© 2002 Luciano Bononi
40
Memoria: struttura e gerarchia
Trend tecnologico delle memorie e del processore
Capacità
! Memoria
•
Dynamic Random Access Memory (DRAM) – usata per
memoria principale
•
Static Random Access Memory (SRAM) – per la cache
Processore: 2x in 3 years
2x in 3 years
DRAM:
4x in 3 years
2x in 10 years
Dischi:
4x in 3 years
2x in 10 years
Processor
es. DRAM
Capacità
Anno
Input
Control
Memory
Datapath
Velocità di accesso
Output
Cycle Time
1980
1983
1986
64 Kb
256 Kb
1 Mb
250 ns
220 ns
190 ns
1989
1992
4 Mb
16 Mb
165 ns
145 ns
1995
1998
2001
1000:1!
64 Mb
256 Mb
1 Gb
2:1!
120 ns
100 ns
80 ns
Visione estesa del sistema di memoria del PC
Il GAP Memoria/Processore
Andamento della latenza Memoria/Processore
Processor
Control
Speed (ns): 1ns
10
DRAM
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1
Tempo
DRAM
9%/anno
(2X/10 yrs)
Second
Level
Cache
(SRAM)
On-Chip
Cache
100
Datapath
Registri
Prestazioni
1000
µProc
CPU
60%/anno
“Legge di Moore”
(2X/1.5yr)
Proc.-Mem. Gap:
(+ 50% / anno)
Memoria
principale
(DRAM)
10ns
100ns
K
M
Size (bytes): 100
Memoria
secondaria
(disco)
Memoria
di terzo
livello
(Nastri,
jukebox)
10,000,000s 10,000,000,000s
(10 ms)
(10 sec)
G
T
Capacità: inferiore
Velocità: minima
Capacità: superiore
Costo: elevato
Costo: ridotto
Velocità: massima
Come funziona la gerarchia di memoria?
! Temporal Locality (Locality in Time):
=> mantiene i dati usati di frequente “vicino al processore”
! Spatial Locality (Locality in Space):
=> Mantiene blocchi di dati contigui verso i livelli superiori
di memoria
Disco
RAM
es. Tempo
elaborazione
CPU:
10 nS
verso Proc.
Blk Y
Cache
Blk X
dal Proc.
es. Tempo
lettura Cache
10 nS
es. Tempo
lettura RAM
100 nS
es. Tempo
lettura Disco
10 mS