PARTE II
Architettura di un sistema informatico
Hardware
Informatica Generale
1
La gerarchia di computer
Mainframe (es. IBM 3090)
– Grandi sistemi informativi ( 100 terminali)
Supercomputer (es. CRAY T3E)
– Calcolo scientifico intensivo
Minicomputer (es. IBM AS/400)
– Sistemi informativi aziendali medio/piccoli ( 10
terminali)
Workstation (es. Sparcstation SUN)
– Applicazioni ingegneristiche, grafica
Personal computer
Informatica Generale
2
Funzioni e architettura
Funzioni generali di un elaboratore
– elaborazione dati
– memorizzazione dati
– trasferimento dei dati
– controllo
Architettura
– Componenti e interconnessioni
– Funzioni di ciascun componente
Informatica Generale
3
PC:
architettura
di
riferimento
Macchina di Von Neumann
Bus
CPU
Memoria
centrale
I/O int.
I/O int.
...
I/O int.
Elaborazione
e controllo
Memorizzazione
Informatica Generale
4
Un Personal Computer (PC)
Informatica Generale
5
PC: componenti interni e
periferiche
Scheda madre
–
–
–
–
–
CPU
RAM
Bus
Cache
ROM
Drive (Hard e floppy disk,
CD-ROM)
Schede di espansione
– Scheda grafica
– Scheda audio
– Modem interno
Tastiera
Mouse
Monitor
Stampanti
Scanner
Altoparlanti
Unità disco esterne
Modem esterno
Informatica Generale
6
Funzione di memorizzazione
Memoria della CPU
Cache
RAM
Velocità
CPU
Memorie di massa (es.
dischi)
Costo/bit
Cache
RAM
Memorie di massa
Informatica Generale
7
Memoria centrale (RAM)
Sequenza di elementi binari (bistabili)
raggruppati in unità minime indirizzabili
(celle)
– Elemento binario bit
– Cella word (parola)
1W corrisponde a 8, 16, 32 oppure 64 bit
Dim. tipiche su PC attuali 32÷256 Mbyte (NB: in
linguaggio informatico, 1K=1024, 1M=1024K,
1G=1024M)
Informatica Generale
8
32 bit
RAM (organizzazione logica)
Indirizzi
(k bit)
0
4
8
12
.
.
.
64M-4
2k dimensione della memoria
Informatica Generale
9
Bus
Indirizzi
Decodificatore
RAM
0
0
(funzionamento)
0
.
.
.
1
0 0 1 1 0 1 0 1
.
.
.
0
Bus di controllo
R/W
0 0 1 1 0 1 0 1
Bus dati
Informatica Generale
10
Caratteristiche e prestazioni
Volatilità
Staticità e dinamicità
– SRAM vs DRAM
– Attualmente RAM = DRAM
Tempo di accesso (770 ns)
Temporizzazione del “sottosistema di memoria”
(15 cicli per accesso)
Velocità di trasferimento (picco: 264 528
MB/sec)
Informatica Generale
11
Memoria
cache
Il cosiddetto
CPU/RAM
“bottleneck”
Principi di località
– spaziale
– temporale
Memorie cache di primo e secondo livello
– dimensioni (64KB1MB)
– prestazioni (tempo di accesso 4 ns)
Informatica Generale
12
Gerarchia a due livelli
Sistema di memoria
L2
CPU
RAM
Informatica Generale
13
CPU (esecutore del linguaggio
macchina)
Programmi e dati risiedono nella RAM
La CPU esegue continuamente il seguente ciclo:
– Legge un’istruzione dalla memoria
– Decodifica l’istruzione
– Legge dalla memoria i dati utilizzati dall’istruzione
– Esegue l’istruzione
– Scrive in memoria i risultati calcolati
Informatica Generale
14
Componenti della CPU
Unità aritmetico logica (detta ALU)
operazioni aritmetiche e logiche
Unità di controllo
ordine di esecuzione, istruzioni di “salto”
Registri generali (memoria della CPU)
dati delle istruzioni aritmetico/logiche
Registri speciali (Program Counter, Instruction
Register, Process Status Word, Memory Address
Register, Memory Data Register)
Informatica Generale
15
Struttura della CPU
M
A
R
Unità di controllo
IR
PC
M
D
R
PSW
ALU
Informatica Generale
16
Linguaggio macchina
Istruzioni molto semplici, formate da un
codice operativo e (al più) 2 operandi
– Codice operativo azione da eseguire
– Operandi dati su cui agire
{<etichetta>}
<codice simbolico> <op1> {<op2>}
Codice
assembly
Esempi: SUB R1,R2 LOAD R,M STORE R,M
Codice macchina (vero e proprio)
Informatica Generale
17
Linguaggio macchina (2)
8 bit
8 bit
Codice operativo Operando1
16bit
Operando2
- 256 possibili codici operativi
- Operando1 denota uno fra 256 possibili registri interni
alla CPU (R0 R255)
- Operando2 denota un indirizzo fra 0 e 216-1
Esempio:
00000101 00000001 0100111000100000
LOAD
R1
Informatica Generale
20000
18
Ciclo fondamentale della CPU
1) FETCH (lettura dell’istruzione all’indirizzo
(rivisto)
contenuto nel Program
Counter)
PC
MAR
RAM
RAM
MDR
IR
2) Incremento del PC (PC := PC+4)
3) DECODE (decodifica dell’istruzione nell’Instruction
Register)
4) EXECUTE (esecuzione dell’istruzione)
3a) Recupero operandi
3b) Esecuzione vera e propria
3c) Memorizzazione dei risultati
5) Torna al passo 1)
Informatica Generale
19
Traduzione
(o compilazione)
00000000000000000000000000000011
var x: array [1..7]
of integer;
var i,n,z: integer;
if x[1]<x[2] then z := x[1]
else z := x[2];
for i := 3 to n do
if x[i] < z then z := x[i];
00000000000000000000000000000010
00000000000000000000000000000101
11111111111111111111111111111101
00000000000000000000000000001100
00000000000000000000000000000011
00000000000000000000000000000111
00000000000000000000000000000110
00000000000000000000000000000111
11111111111111111111111111111101
00000101000000010100111000100000
00000101000000100100111000100100
00100111000000010000000000000010
Informatica Generale
20
Leggi x[1]
Leggi x[2]
Calcola x[1]-x[2]
if x[1]<x[2] then z:=x[1]
Se positivo scrivi x[2] in z
else z:=x[2];
Se negativo scrivi x[1] in z
for i := 3 to n do
Leggi n
if x[i]<z then z:=x[i];
Scrivi 3 in i
Calcola p=i-n
Se p>0 vai 7 istruzioni avanti
Commenti
- “Leggere” significa copiare un dato Leggi x[i],
dalla RAM in un registro della CPU Leggi z
- Il segno del risultato viene memoriz- Calcola p=x[i]-z
zato in un bit del registro PSW
Se p<0 scrivi x[i] in z
-“vai 7 istruzioni avanti” e “torna 7
Incrementa i di un’unità
istruzioni indietro” sono comandi che
Torna 7 istruzioni indietro
modificano l’ordine di esecuzione
……………………………..
Un primo passaggio
Informatica Generale
21
Un altro passo verso il codice
Copia in R1 il contenuto della cella di indirizzo x
Copia in R2 il macchina
contenuto della cella di indirizzo x+4
Sottrai (il contenuto di) R2 da R1 ( s := segno(R1-R2) )
Se s=1 salta 3 istruzioni avanti ( PC := PC+8)
Copia R2 nella cella (di indirizzo) x+36
Salta due istruzioni avanti ( PC := PC+4)
Copia in R1 il contenuto della cella di indirizzo x
Copia R1 nella cella x+36
Copia in R3 il contenuto della cella x+32
………………..
Informatica Generale
22
Codice assembly
Formato tipico di una istruzione:
{<etichetta>:} <codice simbolico><op1>{<op2>}
load R1,x
load R2,x+4
sub R1,R2
jmpneg avanti
store R2,x+36
jmp piùavanti
avanti: load R1,x
store R1,x+36
piùavanti: load R3,x+32
………………………….
Informatica Generale
23
Programma in linguaggio
00000000 00000000 0000000000000011
Indirizzo
macchina
00000000 00000000 0000000000000010
20000
(Inizio dati)
Indirizzo
21000
(Inizio programma)
Indirizzo
21024
Indirizzo
21032
00000000 00000000 0000000000000101
…………………………………….…….
00000101 00000001 0100111000100000
00000101 00000010 0100111000100100
00100111 00000001 0000000000000010
10100011 00000000 0101001000100000
00000110 00000010 0100111001000100
10100010 00000000 0101001000101000
00000101 00000001 0100111000100000
00000110 00000001 0100111001000100
00000101 00000011 0100111001000000
…………………………………….…….
Informatica Generale
24
Parametri di valutazione delle
CPU
Set di istruzioni (RISC vs CISC)
Frequenza dell’orologio interno di
sincronizzazione (clock) (233500 MHz)
Banda di elaborazione ( numero di istruzioni
eseguite al secondo)
Spazio di memoria indirizzabile
Presenza di coprocessore matematico, memoria
cache di primo livello, ecc.
Informatica Generale
25
Dispositivi
di
memorizzazione
Dischi magnetici (hard disk)
Memorizzazione
“permanente” di
di massa
programmi e dati
Dischi magnetici (floppy disk)
Trasferimento dati fra computer
Nastri magnetici
Backup dei dati
Dischi ottici (CD ROM)
Distribuzione di programmi, giochi,
archivi storici, ecc.
Informatica Generale
26
Dischi rigidi (hard disk)
Supporti circolari magnetizzati in continua
rotazione (5400 10000 giri/min)
Formato a tracce e settori (valori tipici: 400 tracce,
32 settori)
Testina di lettura a movimento radiale
Tempo di accesso (5 10 msec) vicino al limite
fisico
Capacità elevate (> 4 GB)
Costo contenuto (40 150 lire/MB)
Informatica Generale
27
Dischetti rimovibili (floppy
disk)
Supporti circolari (diametro 3.5 o 5.25 pollici)
magnetizzati, in rotazione solo al momento
dell’accesso
Velocità di rotazione bassa (300 360 giri/min
Tempo di accesso elevato (decimi di sec.)
Capacità limitata (1.44 MB)
Costo unità contenuto (poche decine di migliaia di
lire)
Informatica Generale
28
Nastri magnetici
Organizzazione sequenziale con blocchi (detti
record fisici) multitraccia
Accesso sequenziale
Densità di registrazione 800 6250 Byte per
pollice (bpi)
Tempo di accesso molto elevato (può essere
dell’ordine dei minuti)
Uso per copie di sicurezza (backup)
Costo elevato ( 2 Mlire per unità DAT)
Informatica Generale
29
Lettori ottici (CD ROM)
Supporti circolari non riscrivibili
Formato a spirale
Lettura mediante raggio laser
Tempo di accesso (70 100 msec)
Capacità elevate in rapporto ai floppy disk
( 650 MB)
Costo unità contenuto (100 500 Mlire)
Informatica Generale
30
Principali unità periferiche
Dispositivi di ingresso (input)
– Tastiera
– Mouse e altri disp. di puntamento
– Scanner
Dispositivi di uscita (output)
– Video
– Stampante
Modem
Informatica Generale
31
Tastiera
Tasti alfanumerici (lettere e cifre,
punteggiatura, parentesi)
Tasti speciali: return o enter (invio), ctrl
(control), esc (escape), ...
Tasti direzionali: , , , , ...
Tasti funzionali: F1,F2,...
Informatica Generale
32
Mouse
Il movimento del mouse si ripercuote nel
movimento di un cursore sul video
La pressione di un tasto comporta l’esecuzione di
una qualche azione
Mouse + interfacce grafiche sostituiscono in molti
casi la tastiera
Informatica Generale
33
Scanner
Dispositivo per l’acquisizione di immagini
(sotto forma di mappe di bit, bitmap)
Informatica Generale
34
Alfanumerici:
25 righe 80 caratteri
Videoes.(display)
Grafici: risoluzione misurata in numero di
pixel (picture element) nelle due
dimensioni: es. 1024 768, 4096 4096
Pixel: bianco e nero (1 bit) o colore (es. 8
bit)
Griglia di 4 4 pixel
Memoria RAM associata
Tecnologia (raggi catodici o cristalli liquidi)
Informatica Generale
35
Stampanti Stampante
ad aghi
– 9 24 aghi
– Tecnica ad impatto copie multiple
– Fogli singoli o modulo continuo
Stampanti a getto di inchiostro
– Ottima qualità anche in grafica
– Colore a basso prezzo
Stampanti laser
– Ottima qualità, costo elevato del colore
Informatica Generale
36
Stampanti
(prestazioni)
Risoluzione Velocità Uso tipico
100200 dpi 200400 Modulo
continuo,
car/sec
copie cc
Personal
Ink jet 300720 dpi 16
pag/min Computing
Professional
Laser Da 600 dpi 420
jet
pag/min Computing
Aghi
Informatica Generale
Colore
Bassa
qualità
Buona
qualità
Costo
elevato
37
Modulatore/demodulatore
Modem
Effettua conversioni digitale/analogico e
viceversa per trasmissioni su linea telefonica
Velocità tipica attuale 56Kbit/sec
Informatica Generale
38
Interfaccia di I/O
Scheda di interfaccia (fra bus e periferica)
Modalità di trasferimento
– seriale: mouse, tastiera (standard RS-232C)
– parallelo: stampante (standard centronics)
Gestione dell’I/O
– a controllo di programma
– mediante interruzione
– con accesso diretto alla memoria (Direct
Memory Address, o DMA)
Informatica Generale
39
Esempio di gestione della
stampa
di una riga
A controllo
di programma
Il processore invia un carattere alla scheda di
interfaccia, attende che questa segnali l’avvenuta stampa,
quindi invia il carattere successivo.
Mediante interruzione
Il processore invia un carattere alla scheda,
quindi si “occupa d’altro”. Quando la stampa termina,
l’interfaccia manda un segnale di interruzione al
processore per segnalare la nuova disponibilità dell’unità
periferica.
Con accesso diretto alla memoria
Il processore invia ad una opportuna unità DMA
l’indirizzo di memoria e la lunghezza del blocco dati da
stampare. L’unità DMA gestisce quindi l’I/O.
Informatica Generale
40
Bus di sistema
Ogni informazione fra dispositivi differenti
passa attraverso il bus
È la risorsa critica per eccellenza
Ha una sua temporizzazione fissa
(attualmente 66 o 100 MHz)
Informatica Generale
41