Sei sulla pagina 1di 34

Architettura dei Calcolatori

Fondamenti di Matematica con


Elementi di Informatica
a.a. 2012 - 2013
Prospetto
• Cos’è un calcolatore?
• Il modello di Von-Neumann
• Descrizione di un calcolatore
– processore
– memoria
– dispositivi di ingresso e di uscita
• Dall’algoritmo al programma...
Cos’è un calcolatore?
Una possibile definizione operativa è la seguente:

Esecutore programmabile di istruzioni

N = 100;
somma = 0;
programma per
for k=1:N sommare i numeri
somma = somma+k; naturali da 1 ad N
end

disp(['somma = ', int2str(somma)])


unità di elaborazione
programma: lista di istruzioni scritte in un certo
linguaggio:
■ Pascal ■ Visual Basic ■ C ■ C++
■ Java ■ Ada ■ html ■ ….
Algoritmi, dati e programmi
Bene, ma…
 chi programma l’esecutore?

Tipicamente, funziona così:

C’è un problema Lo esponiamo a degli esperti L’algoritmo viene


da risolvere ma non che pensano finché non trovano “tradotto” in uno dei
sappiamo come fare! l’idea per risolverlo (algoritmo) linguaggi per dare il
programma.
Algoritmi, dati e programmi

 l’algoritmo che risolve il problema è indipendente dal linguaggio!


 il programma traduce l’algoritmo in uno specifico linguaggio.

Lo stesso algoritmo può essere tradotto in tanti


linguaggi diversi!

Ricordate il programma visto prima? Ecco l’algoritmo:


leggi il numero N
somma  0 k  1
Scrivere algoritmi finché k è minore di N eseguire N, somma, k
è un’arte: si impara somma  somma + k sono i nomi delle
scrivendoli con tanta variabili che contengono
pazienza (all’inizio)!! k  k+1 I numeri N, somma e k.
finefinché
rendi noto il valore di somma
Algoritmi, dati e programmi
programma # 1 C++
algoritmo # 1 programma # 2 Fortran
problema
programma # 3 Matlab
algoritmo # 2

Come lavora un programma?

dati programma # 1 risultati


N = 100 N = 5050

I risultati sono corretti?


Modello di Von Neumann
È uno schema di progettazione dei calcolatori.
Ha cinque parti fondamentali: Budapest, 28/12/1903
Washington, 8/2/1957

 unità di elaborazione o CPU (Central Processing Unit);


 unità di memoria (dati e programmi);
 una o più unità di input;
Dispositivi di I/O
 una o più unità di output
 via di comunicazione tra le precedenti parti (bus).

input/output output input


CPU MEMORIA HARD-DISK MONITOR TASTIERA

BUS
La memoria
 sequenza finita ed ordinata di N celle.
ogni cella è individuata da un numero intero (indirizzo)

 ogni cella contiene, in forma codificata, istruzioni o dati

0 istruzione
1 istruzione
2 dato

N-2
N-1
Le istruzioni
 esprimono in forma codificata i comandi per l’esecutore
 ci sono, in genere, più parti (campi dell’istruzione)
 operazione da eseguire
 i dati su cui eseguirla
 dove mettere i risultati

operazione operando #1 operando # 2 risultato


L’esecutore
È formato da più blocchi funzionali che cooperano tra loro:

 unità di controllo
 unità aritmetico-logica (ALU)
 registri (sono memorie)
 PC (Program Counter)
 IR (Instruction Register)
 operandi
 altri

prof. Nunzio Brugaletta


Esecutore e memoria vanno a braccetto…

 il programma è caricato in memoria


 l’esecutore esegue in sequenza le istruzioni del programma:
 fase di fetch
 l’unità di controllo preleva dalla memoria l’istruzione il
cui indirizzo è contenuto nel registro PC e la deposita
nel registro IR
 aggiorna il PC in modo che contenga l’indirizzo della
successiva istruzione
 fase di execute
 interpreta l’istruzione
 preleva dalla memoria gli eventuali dati
 esegue l’operazione
 scrive il risultato in memoria
OK, ma come realizzo un calcolatore?

Ossia, come traduco in pratica, il modello di Von-Neumann?

 come realizzo un esecutore?


 come realizzo una memoria?
 come realizzo un dispositivo di ingresso?
 come realizzo un dispositivo di uscita?

Dipende dalla tecnologia che ho a disposizione!


Tecnologia ...“umana” !

Immagine tratta da M. Maiocchi


Tecnologia elettronica: un mondo a due
valori (digitale)
Un sistema fisico a due stati permette di memorizzare
informazioni!
flip-flop flip-flop
sistema fisico (flip-flop)

posso memorizzare 2
informazioni distinte

0 1

flip-flop # 3 flip-flop # 2 flip-flop # 1 flip-flop # 0

posso memorizzare 24
informazioni distinte

0 0 1 0
Un mondo digitale
Con 4 flip-flop posso memorizzare 24 informazioni distinte!

4 flip-flop 3 flip-flop 2 flip-flop 1 flip-flop


0 0000 000 00 0
1 0001 001 01 1
2 0010 010 10
3 0011 011 11
4 0100 100 21
5 0101 101
6 0110 110 22 = 2 x 21
7 0111 111
8 1000
9 1001
10 1010 23 = 2 x 22
11 1011
12 1100
13 1101
14 1110
15 1111

24 = 2 x 23

Il mondo dei calcolatori è digitale (due valori, 0 e 1)!


Un calcolatore degli anni ’50 : UNIVAC I
J. Presper Eckert e John Mauchly

100 m2 - 30 tonnellate diametro = 33,5 mm


17000 valvole altezza = 112,0 mm
Un calcolatore di oggi

desktop portatile

0,5 m2 - 3 kg
500.000.000 transistor larghezza = 30 nm
Un po’ di nomenclatura…

 hardware: la parte fisica di un calcolatore con cui


si realizza il modello di Von-Neumann.
 software : i programmi

Pertanto:

calcolatore = hardware + software !


Quasi tutto l’hardware…
 scheda madre
 processore
 memoria
 principale
 secondaria
 Hard-Disk (HD)
 dischi Ottici (DVD e CD)
 dispositivi di ingresso e uscita (I/O)
 tastiera
 mouse
 schermo
 schede audio e video
 scheda madre
 bus
 alimentatore
La scheda madre (motherboard )
Contiene:
 tutte le parti elettroniche che fanno da interfaccia tra
i vari blocchi funzionali (processore, memoria, I/O)
 bus: insieme di linee in rame per trasferire le
informazioni.

È una parte
fondamentale!
Il processore
È una delle parti fondamentali del calcolatore anche se da
solo non garantisce la buona qualità dell’insieme.
È caratterizzata da:
 frequenza di clock F
 capacità della memoria cache in dotazione

Il clock è un orologio che scandisce il tempo all’interno


del processore. A spanne, tutto avviene come se ogni
istruzione impiegasse un ciclo di clock di durata T= 1/F
per essere eseguita.

Più F è elevata e maggiore è il numero


di istruzioni che esegue in 1 secondo ossia
più veloce è il calcolatore!

Esempio: F = 1 GHz = 109 Hz  T = 1/ 109 =10-9 s = 1 ns


Ciclo di clock

T T
Eseguo una Eseguo una
istruzione! istruzione!

T = 10-9 s = 0,000000001 s = 1 ns

Il cuore batte una volta al secondo  in un battito del cuore


vengono eseguite 1.000.000.000 di istruzioni!
La memoria
Parametri importanti:
 capacità: numero di celle
 tempo di accesso: tempo impiegato per leggere o scrivere
la cella. È indicato con ta.
 volatilità: se è volatile, il contenuto di tutte le celle viene
perso quando si spegne il calcolatore.
 costo: viene prodotta … quindi ha un prezzo!

Il Byte misura la capacità

1 0 0 1 1 0 0 1 cella di 8 bit : 1 Byte (1 B)

1 KB = 1024 B 1 MB = 10242 B 1GB = 10243 B 1TB = 10244 B


Kilo Byte Mega Byte Giga Byte Tera Byte
La memoria
 principale  secondaria (o di massa)

banco di RAM Hard Disk DVD


 quella di Von-Neumann 
 volatile  non volatile
 veloce (ta = 10 ns)  lenta (ta = 10 ms)
 capacità media ( 4 GB)  capacità elevata (1 TB)
 costo elevato  costo contenuto
 contiene programmi e dati  contiene programmi e dati
correntemente in esecuzione non correntemente in esecuzione
 ciclo di refresh (RAM dinamiche) e rende disponibili archivi.
Hard-Disk
Sono basati su due tecnologie differenti:
 a supporto magnetico  allo stato solido

 capacità elevata (1 TB)  capacità modesta (128 GB)


 ta = 10 ms  ta = 0,1 ms
 costo contenuto  costo elevato
 rumorosi  assenza rumore
 meccanici  assenza di parti meccaniche

Gli HD del futuro!


Tempi di lettura/scrittura in un Hard-Disk
informazione

testina

traslazione radiale testina rotazione piatto


(impiega Tt secondi) (impiega Tr secondi)

Ta = Tt + Tr
Tr dipende dalla velocità di rotazione del disco
Tt = 5 ms
espressa in rpm (rotazione per minuto)

Esempio: 5400 rpm  5400 : 60 = 1 : Tr  Tr = 11 ms

una rotazione completa  ½ rotazione Tr = 5 ms


La memoria cache
È una memoria molto veloce (ta = 1ns) e costosa che
ha lo scopo fondamentale di ridurre il tempo medio di
accesso alla memoria principale.

bus bus

processore cache RAM

Principio di località: statisticamente, il 90% degli accessi


in memoria avviene in un’area di memoria che ha una
estensione inferiore del 10% di quella dell’intero programma.
Strategia per la gestione della memoria
Swap su disco!!

serve una
CPU Istruzione! è in cache? no è in RAM? no leggi da HD!

IR
si si

ecco copiala in cache copiala in RAM


l’istruzione! copiala nell’IR! assieme alle assieme alle
sue vicine! sue vicine!
ta = 1ns
ta = 10 ns
ta = 10.000 ns

È importante accedere in cache ed avere tanta RAM per avere una


macchina veloce (soprattutto con molti programmi in funzione !!!)
La cache vive assieme al processore

cache L2 (valori tipici: da 1MB a 8 MB)


Dispositivi di ingresso ed uscita

 ingresso: permettono di inserire l’informazione


(istruzioni e dati) nel calcolatore.
 uscita: permettono di comunicare i risultati prodotti
dal calcolatore al mondo esterno.

Ce ne sono di molti tipi. Noi vediamo solo i fondamentali:


 ingresso (input)
 tastiera
 mouse
 uscita (output)
 monitor
 stampante
La tastiera
tasti di
funzione

tastiera
qwerty tastierino
numerico

 ce ne sono di vari tipi (rigide, pieghevoli,


con e senza tastierino numerico, …)
 sono nazionali!
Il mouse
Inventato nel 1967 da Douglas Engelbart. Ce ne sono
di due tipi:

mouse a rotella mouse ottico


 economico  costoso
 meccanico (rotture)  elettronico (  robusto)
 manutenzione  nessuna manutenzione

Ricordiamo anche i mouse senza fili (wireless).


Il monitor
Permettono di comunicare i risultati prodotti dal
calcolatore al mondo esterno.

a tubo catodico a cristalli liquidi

 costo contenuto  costo più elevato


 risoluzione variabile  risoluzione fissa (lavora in modo
 ingombro elevato ottimale solo alla risoluzione
nativa)
 ingombro ridotto
Dispositivi touch screen

Sono dispositivi sia di ingresso che di uscita.