Programmazione in C
Hardware
Architettura dell’elaboratore
Hardware
Macchina di Von Neumann
Unità di ingresso e uscita
Unità operativa
Unità di controllo
Memoria
Struttura a bus
2
© 2006 Politecnico di Torino
1
Programmazione in C
Hardware
Hardware
Macchina di Von Neumann
Processore
Blocco batterie
(clock del BIOS)
Connettori ISA
BIOS
tastiera
Chipset USB
Slot PCI
BIOS
(scheda madre) Chipset
northern Connettori IDE
per controller
HD
Connettore
parallelo
Connettore
tastiera,
mouse
e modem
Espansione cache
Ventola
raffreddamento
del processore
Cache
statica
Cache
statica
Slot SIMM
(72 pin)
Chipset
southern
Cache
statica
Cache
statica
Slot DIM
(128 pin)
Alimentazione
scheda madre
AT
Connettore
floppy disk
4
© 2006 Politecnico di Torino
2
Programmazione in C
Hardware
Macchina di Von Neumann
John Von Neumann (1903–1957)
Matematico ungherese
Concepì (1940-1950) la possibilità di sfruttare un
unico codice e un unico sistema di memoria per
memorizzare dati e istruzioni
La struttura così congegnata
Semplificò l’architettura hardware
Aumentò la versatilità e la potenza di calcolo
Lo schema concettuale è valido ancora oggi
5
Schema a blocchi
Dati
Memoria
Unità
ingresso
Unità
operativa
Unità
uscita
Unità
controllo
Ordini
© 2006 Politecnico di Torino
CPU
(Central Process Unit)
Stato
6
3
Programmazione in C
Hardware
Hardware
Unità di ingresso (1/2)
Dispositivi dedicati all'introduzione delle
informazioni nel calcolatore
Tastiera
Scanner
Mouse
Lettore
CD/DVD
8
© 2006 Politecnico di Torino
4
Programmazione in C
Hardware
Unità di ingresso (2/2)
Interfaccia verso l’elaboratore
Trasforma le informazioni
Dal mondo umano
Segnali meccanici–fisici, analogici, asincroni
Nessun riferimento
temporale globale
Continuo – proporzionale
Al mondo dell’elaboratore
Segnali elettronici, digitali, sincroni
Numerico
Segnale (segnali) di riferimento
9
temporale (Clock)
Schema interno
Essenzialmente costituita da
Una parte meccanica o elettro–meccanica
Una parte elettronica (interfaccia)
Buffer (memoria locale)
Parte
meccanica o
elettro–meccanica
Dati
Logica di
controllo
Parte elettronica
© 2006 Politecnico di Torino
Dati
Ordini
Stato
10
5
Programmazione in C
Hardware
Unità di uscita
Dispositivo duale all’unità di ingresso
Trasforma le informazioni dal sistema di
elaborazione al mondo esterno
Video
Masterizzatore
CD/DVD
Stampante
11
Schema interno
Essenzialmente costituita da
Una parte meccanica o elettro–meccanica
Una parte elettronica (interfaccia)
Buffer (memoria locale)
Parte
meccanica o
elettro–meccanica
Dati
Logica di
controllo
Parte elettronica
© 2006 Politecnico di Torino
Dati
Ordini
Stato
12
6
Programmazione in C
Hardware
Hardware
Unità di processo centrale
Dati
Manipolazione
dei dati
Ordini
Unità
operativa
Unità
controllo
CPU
(Central Process Unit)
© 2006 Politecnico di Torino
Stato
Gestione
del controllo
14
7
Programmazione in C
Hardware
Unità di processo centrale
Dati
Manipolazione
dei dati
Unità
operativa
Ordini
Stato
Unità
controllo
Gestione
del controllo
CPU
(Central Process Unit)
15
Schema interno
Dati
(operandi)
Registro B
Registro A
ALU
Ordini
(operazione,
destinazione, etc.)
© 2006 Politecnico di Torino
F
Stato
(Flag)
16
8
Programmazione in C
Hardware
Registri
Elementi di memoria
Registro B
Registro A
Quantità limitata
Memorizzazione temporanea
ALU
F
Conservano i dati per uso interno
Operandi di una operazione
Risultati parziali
Etc.
Poco numerosi (8, 32, etc.)
Dimensione di una parola (word), multiplo del
byte (32 bit, 64 bit, etc.)
17
ALU
Arithmetic Logic Unit
Unità Aritmetico-Logica
Svolge
Registro B
Registro A
ALU
F
Tutti i calcoli aritmetici (somme, sottrazioni, etc.)
Tutte le operazioni logiche (not, and, or, etc.)
La manipolazione dei dati (shift, etc.)
Realizza operazioni in virgola fissa (fixed–point)
in singola e doppia precisione
È affiancata da altre unità per operazioni più
complesse (e.g., operazioni floating–point)
18
© 2006 Politecnico di Torino
9
Programmazione in C
Hardware
Flag
Singoli bit
Interpretati come valori logici
(booleani)
Condizioni falso/vero (0/1)
Registro B
Registro A
ALU
F
Indicatori di stato del risultato di una operazione
Solitamente raggruppati in un registro
Flag più comuni
Z
OW
C
N
(zero)
(overflow)
(carry)
(negative)
19
Hardware
© 2006 Politecnico di Torino
10
Programmazione in C
Hardware
Unità di processo centrale
Dati
Manipolazione
dei dati
Unità
operativa
Ordini
Unità
controllo
Stato
Gestione
del controllo
CPU
(Central Process Unit)
21
Unità di processo centrale
Dati
Manipolazione
dei dati
Ordini
Unità
operativa
Unità
controllo
CPU
(Central Process Unit)
© 2006 Politecnico di Torino
Stato
Gestione
del controllo
22
11
Programmazione in C
Hardware
Schema interno
+1
PC
Memoria
IR
Stato
Logica di
controllo
Ordini
23
Funzionalità
Coordina tutte le attività della macchina
Gestisce le informazioni di stato
Impartisce gli opportuni ordini
Garantisce la corretta sequenza delle operazioni
Flusso di esecuzione corretto
Eventuali condizioni di errore, eccezioni, etc.
+1
PC
Memoria
IR
Logica di
controllo
© 2006 Politecnico di Torino
Stato
24
Ordini
12
Programmazione in C
Hardware
PC
Program Counter
Contatore di Programma
Contiene l’indirizzo dell’istruzione successiva in
memoria
Una volta prelevata tale istruzione viene
incrementato di un valore tale da poter individuare
l’istruzione successiva
Le istruzioni possono
avere lunghezze diverse
(occupare una o più word)
+1 Æ +(lunghezza
dell’istruzione)
+1
PC
Memoria
IR
Logica di
controllo
Stato
25
Ordini
IR
Instruction Register
Registro Istruzioni
Contiene l’istruzione corrente (trasferita dalla
memoria)
Facilita le operazioni logiche di
Decodifica (interpretazione) dell’istruzione
Esecuzione delle
operazioni relative
+1
PC
Memoria
IR
Logica di
controllo
© 2006 Politecnico di Torino
Stato
26
Ordini
13
Programmazione in C
Hardware
Ciclo macchina (1/2)
Esegue una istruzione dietro l’altra, effettuando
un ciclo operativo per ogni istruzione
Ogni ciclo operativo è costituito da tre fasi
distinte
Instruction fetching
Preleva una istruzione dalla memoria
Instruction decoding
Interpreta l’istruzione analizzandone il codice
operativo
Instruction execution
Genera i segnali con le tempistiche opportune per
eseguire l’istruzione
27
Ciclo macchina (2/2)
Preleva una istruzione
dalla memoria
Fetch
Interpreta l’istruzione
Decode Ordini Å decode (IR)
Esegue l’istruzione
IR Å Memoria [PC]
PC Å PC + 1
Execute Ready? Go!
+1
Stop
PC
IR
Logica di
controllo
© 2006 Politecnico di Torino
Memoria
Stato
28
Ordini
14
Programmazione in C
Hardware
Hardware
Schema interno
Memoria
Ordini
Dati
(e istruzioni)
Stato
Memorizza il software, ovvero
Dati
Istruzioni
30
© 2006 Politecnico di Torino
15
Programmazione in C
Hardware
Schema interno
Memoria
Ordini
Dati
(e istruzioni)
Indirizzo
Operazione (Read, Write)
Stato
Ready
Busy
31
Schema interno
Memoria
Ordini
Dati
(e istruzioni)
Stato
Classificabile in
Memoria interna
Memoria esterna
32
© 2006 Politecnico di Torino
16
Programmazione in C
Hardware
Memoria interna
Memorizza i dati (spesso temporaneamente)
durante il funzionamento dell’elaboratore
“Interna”
Circuiti integrati
Allo stato solido (chip)
Considerata “non” rimuovibile
Veloce
Limitata in quantità
Relativamente costosa
Schede memoria
33
Memoria esterna
Effettua la memorizzazione dei dati in maniera
permanente
Floppy-disk
“Esterna”
Non elettronica (magnetica, ottica, etc.)
Talvolta rimovibile
Denominata “di massa”
Lenta
Disponibile in quantità elevate
Economica
Memoria USB
© 2006 Politecnico di Torino
Hard-disk
CD/DVD
34
17
Programmazione in C
Hardware
Organizzazione della memoria interna
Insieme di locazioni (dette anche celle o
elementi) contigue e disposte in sequenza
È caratterizzata da
Indirizzamento
Parallelismo
Tipologia di accesso
Permanenza dell’informazione
…
…
35
Indirizzamento
A ogni cella di memoria è associato un indirizzo
(numerico) per identificarla univocamente
…
Indirizzo
Il numero di bit dell’indirizzo
determina il numero di celle
© 2006 Politecnico di Torino
Dato
36
18
Programmazione in C
Hardware
Parallelismo
Ogni cella di memoria contiene una quantità fissa
di bit
Identica per tutte le celle
Accessibile con un’unica istruzione
È un multiplo del byte
…
Indirizzo
Il numero di bit del dato
determina la dimensione di ogni
cella
Dato
37
Tipologia di accesso
Accesso casuale
Il tempo di accesso alla memoria è costante
(indipendente, o quasi, dalla posizione della cella)
Ta = costante
Anche detta RAM - Random Access Memory
Accesso sequenziale
Il tempo di accesso dipende dalla posizione della
cella
Spesso la dipendenza è lineare
Ta = costante ⋅ indirizzo
38
© 2006 Politecnico di Torino
19
Programmazione in C
Hardware
Permanenza dell’informazione
RAM – Random Access Memory
Memoria ad accesso casuale
Oramai sinonimo di memoria interna volatile
casuale a lettura e scrittura
Circuiti integrati
ROM – Read Only Memory
Memoria di sola lettura
Interna non volatile casuale a sola lettura
(non riscrivibile)
Circuiti integrati PROM, EPROM, EAROM, etc.
39
Dischi magnetici
Costituiti da uno o più supporti circolari (piatti) di
tipo
Flessibile (floppy–disk)
Rigido
(hard–disk)
Ricoperti di materiale magnetico su una o
entrambe le facce
Il piatto (o i piatti) vengono mantenuti in
rotazione a velocità costante
Ogni faccia magnetizzata è dotata di una testina
di lettura/scrittura che si muove in modo radiale
40
© 2006 Politecnico di Torino
20
Programmazione in C
Hardware
Geometria dei dischi (1/3)
Facce suddivise in tracce (cerchi concentrici)
Ogni traccia è organizzata in settori (archi di
circonferenza)
I settori sono separati da gap (intervalli) (archi di
circonferenza)
traccia
gap
settore
41
Geometria dei dischi (2/3)
Tracce corrispondenti (su facce diverse, ovvero, 2
facce per piatto e/o più piatti) individuano i
cilindri
…
traccia (cilindro)
gap
…
settore
42
© 2006 Politecnico di Torino
21
Programmazione in C
Hardware
Geometria dei dischi (3/3)
piatto
testina
braccio
43
Parametri geometrici
Parametri geometrici principali
#f
#t
#s
#b
:
:
:
:
Numero
Numero
Numero
Numero
di
di
di
di
facce (o testine) per ogni piatto
tracce (o cilindri) per ogni faccia
settori per ogni traccia
byte per ogni settore ([Byte])
#t (es. 4)
#s (es. 4)
#f (es. 6)
#b (es. 1024)
44
© 2006 Politecnico di Torino
22
Programmazione in C
Hardware
Parametri geometrici
Parametri geometrici principali
#f
#t
#s
#b
:
:
:
:
Numero
Numero
Numero
Numero
di
di
di
di
facce (o testine) per ogni disco
tracce (o cilindri) per ogni faccia
settori per ogni traccia
byte per ogni settore ([Byte])
Capacità del disco (C)
C = #f ⋅ #t ⋅ #s ⋅ #b
Unità di misura: KByte, MByte, GByte
45
Parametri temporali
Parametri temporali principali
tp : Tempo di posizionamento (seek time, [s])
tl : Tempo di latenza (latency time, [s])
vt : Velocità di trasferimento (transfer rate,
[Byte/s])
tp
Memoria
vt
tl
Funzione
della velocità
di rotazione
(vr, [RPM])
46
© 2006 Politecnico di Torino
23
Programmazione in C
Hardware
Parametri temporali
Parametri temporali principali
tp : Tempo di posizionamento (seek time, [s])
tl : Tempo di latenza (latency time, [s])
vt : Velocità di trasferimento (transfer rate,
[Byte/s])
Tempo di trasferimento di un settore (Tt)
#b
vt
Unità di misura: s, ms, μs
Tt = tp + t l +
Tempo di trasferimento totale (T)
T = Σper ogni settore Tt
© 2006 Politecnico di Torino
#b : Numero
di byte per
settore
Ipotesi
pessimistiche /
ottimistiche
47
24