Architettura dei computer Organizzazione fisica attuale Architettura

annuncio pubblicitario
Architettura dei computer
• In un computer possiamo distinguere quattro
unità funzionali:
– il processore (CPU)
– la memoria principale (RAM)
– la memoria secondaria
– i dispositivi di input/output
• Il processore e la memoria principale
costituiscono l’unità centrale
Componenti principali di un computer
Memoria
principale
(centrale)
Processore
Bus
Controller
Stampante
Video/display
Periferiche di input/output
Memorie di massa
(secondarie)
Organizzazione fisica attuale
Periferiche
per l’input
Unità centrale e
memorie
Periferiche
per l’output
Hard Disk
Lettore CD
Floppy Disk
Tastiera e mouse
RAM
Scanner
CPU
CPU + HD,
CD, Floppy
Le idee ed i pionieri
Architettura dei computer
• Le varie componenti comunicano attraverso uno o
più insiemi di collegamenti detti bus
• Nei computer moderni:
– c’e’ un collegamento dedicato detto bus di
sistema per la comunicazione tra cpu e memoria
principale
– ci sono collegamenti per le altre periferiche detti
bus locali con i loro adattatori (memorie
secondarie, dispositivi di I/O e di rete)
• Babbage
• Turing
• von Neuman
Il computer è un
calcolatore digitale
programmabile
dotato di memoria
dati e programmi
risiedono in
memoria
1
La memoria principale
• Fornisce la capacità di “memorizzare” le
informazioni (i dati e i programmi)
• Può essere vista come una lunga sequenza
di componenti elementari, ognuna delle quali
può contenere un’unità di informazione (un
bit)
La memoria principale
0
1
2
3
4
• Ciascuna cella è caratterizzata da un
indirizzo
• Gli indirizzi corrispondono
all’ordinamento delle celle nella
sequenza
• Gli indirizzi sono numeri interi
(partono da 0)
• Gli indirizzi non sono scritti da
nessuna parte, sono determinati
dall’ordinamento consecutivo
• Le componenti elementari della memoria
sono aggregate tra di loro e formano strutture
complesse dette celle che possono
contenere otto bit (un byte)
• La memoria può essere vista come una
sequenza di celle
• Un altro nome con cui viene indicata la
memoria principale è memoria RAM
(Random Access Memory)
• Questa definizione indica che il tempo di
accesso ad una cella è lo stesso
indipendentemente dalla posizione della cella
• Le operazioni che un Processore può
effettuare sulla memoria sono le operazioni di
lettura e scrittura di informazioni nelle celle
N
• L’ indirizzo di una cella è un numero intero e
quindi lo si può codificare in binario
• Il numero di celle di memoria determina il
numero di bit necessari a rappresentare
l’indirizzo
• Viceversa il numero di bit destinati all’indirizzo
determina il numero di celle indirizzabili
• questo numero viene chiamato
Spazio di indirizzamento
Dimensioni della Memoria
• Le dimensioni della memoria principale variano
a seconda del tipo di computer
• Nei computer attuali le dimensioni tipiche della
memoria principale vanno da 128MB a 2GB
(1MB = 220 byte ~ 1.000.000 byte, 1GB = 230
byte ~ 1.000.000.000 byte)
2
Parola di memoria
Spazio di indirizzamento
• Nei computer attuali lo spazio di indirizzamento è
di almeno 32 bit, con cui si possono indirizzare
232 byte = 4GB
• Lo spazio di indirizzamento è maggiore della
memoria esistente
• Una parola di memoria è, a seconda del tipo di
computer, un aggregato di (due) quattro o otto
byte, sul quale si può operare (leggere e scrivere)
come su un blocco unico
• Per eseguire le operazioni di lettura e scrittura sulla
memoria, si deve specificare l’indirizzo della parola
su cui si vuole operare
• Gli indirizzi delle parole devono essere multipli del
numero di celle (byte) che le compongono
Indirizzamento
• La cella è l’unità minima di memoria
indirizzabile, non sono indirizzabili i singoli
bit
• La parola è l’unità massima di memoria che
è possibile leggere e scrivere in un colpo
solo (mediante un’unica istruzione)
• La memoria è caratterizzata dal tempo di accesso (tempo
necessario per leggere o scrivere un’informazione in una
parola)
• Le memorie principali dei computer attuali sono molto veloci
e i loro tempi di accesso sono di pochi nanosecondi (1
nanosecondo= 10-9 sec, un miliardesimo di secondo)
• Le memorie principali sono relativamente costose, (128MB
costano qualche decina di euro)
Memoria Cache
• La memoria principale perde ogni suo
contenuto quando si interrompe
l’alimentazione elettrica. Questa caratteristica
viene chiamata volatilità
• È quindi necessario per conservare le
informazioni (programmi e dati) avere altri tipi
di memoria (memoria secondaria) che
conservano il contenuto anche senza
alimentazione elettrica
• Memoria molto veloce intermedia tra RAM e CPU
• i dati di uso piu’ frequente sono mantenuti nella
memoria Cache per minimizzare i trasferimenti tra
RAM e CPU
• Principio di Localita’ alla base dell’architettura con
cache:
– Localita’ spaziale: il processore utilizza con alta
probabilita’ dati che risiedono in locazioni di
memoria contigue
– Localita’ temporale: se il processore utilizza un
dato in memoria, e’ altamente probabile che lo
riutilizzi nuovamente in breve tempo
3
Il Processore
Riassunto caratteristiche Memoria RAM
La memoria RAM è:
– veloce (accesso nell’ordine dei
nanosecondi)
– relativamente costosa
– ha dimensioni limitate
– è volatile (non può mantenere dati
permanenti
– è ad accesso diretto (si può accedere a
qualsiasi cella senza accedere alle altre)
Componenti di un processore
Bus
Interno
REGISTRI
Program Counter (PC)
Registro di Stato (PS)
Unità di
Controllo
Registro Istruzioni (RI)
Registri Generali (16 o 64)
Unità
AritmeticoLogica
Registro Indirizzi Memoria (RIM)
Registro Dati Memoria (RDM)
Registro di Controllo (RC)
• La frequenza con cui vengono eseguiti i cicli
di esecuzione è scandita da una
componente detta clock
• Ad ogni impulso di clock la UC esegue una
istruzione macchina
• La velocità di elaborazione di un processore
dipende dalla frequenza del suo clock
• I processori attuali hanno frequenze di clock
dell’ordine di 1-3 GHerz (1-3 miliardi di
impulsi al secondo)
• Il processore è la componente dell’unità centrale che
elabora le informazioni contenute nella memoria
principale
• L’elaborazione avviene eseguendo sequenze di
istruzioni (istruzioni macchina)
• Il linguaggio in cui si scrivono queste istruzioni viene
chiamato linguaggio macchina
• Il ruolo del processore è quindi quello di eseguire
programmi in linguaggio macchina
L’unità di controllo
• L’Unità di Controllo (UC) si occupa di coordinare le
diverse attività che vengono svolte all’interno del
processore
• Il processore svolge la sua attività in modo ciclico: ad
ogni ciclo corrisponde generalmente l’esecuzione di
una istruzione macchina
• Ad ogni ciclo vengono svolte diverse attività
controllate e coordinate dalla UC
n si legge dalla memoria principale la
prossima istruzione da eseguire
o si decodifica l’istruzione letta
p si esegue l’istruzione
Il Processore: i registri
• Il processore contiene al suo interno un certo
numero di registri: unità di memoria
estremamente veloci per memorizzare i dati di
uso immediato
• Le dimensioni di un registro sono tipicamente
quelle di una parola di memoria (ad esempio
4 o 8 byte)
4
I registri speciali
Esistono due tipi di registri:
– i registri speciali utilizzati dalla UC per
scopi particolari:
• controllo dell’esecuzione del programma
• scambio di dati con la memoria centrale
– i registri generali utilizzati per contenere
dati e risultati di operazioni aritmetiche o
logiche
• PC: program counter, contiene l’indirizzo
della prossima istruzione da eseguire
• RI: registro istruzioni, contiene l’istruzione
in esecuzione
• RS: registro di stato, informazione sullo
stato dell’esecuzione e possibili errori
• RC: registro di controllo, contiene il codice
dell’operazione da eseguire
Registri di collegamento con la memoria
• RDM: registro dati memoria, contiene il dato
da trasferire in o dalla cella di memoria in esame
• RIM: registro indirizzi di memoria, contiene
l’indirizzo di memoria della cella (parola) in
esame
Formato delle instruzioni
100
Codice op.
Argomento1
Argomento2
Formato istruzione (esempio)
• Il registro RDM accede direttamente (senza
esaminare altre celle) alla cella il cui indirizzo e’
specificato dal registro RIM
Contenuto della memoria principale
0
1
2
cod. op.mem. Ind1/Reg1 Ind2/Reg2
...
Il ciclo di esecuzione di un programma
inizio
RS:= start
PC:= ind. 1a istr.
istr. lettura (load)/scrittura (store) in
memoria-registri
cod. op. reg. Reg1
...
Gli argomenti possono essere indirizzi
Reg2
istr. per operazione tra due
registri
no
RS = stop?
si
RI:= istr ind. in PC
PC:=PC+1
RC:= cod. istr. in RI
esegui istruzione
+ -2 00003752
k
dato, ad esempio: numero rappr.con segno,
esponente e mantissa
fine
5
Supporto alla ALU
Per operazioni con Floating Point ci puo’ essere
accanto alla ALU:
• Un modulo interno alla CPU per operazioni con i
floating point (FPU)
Oppure
• Un processore addizionale specifico chiamato coprocessore matematico
Le unità di ingresso/uscita
(Input/Output)
• Le unità di ingresso/uscita (anche dette periferiche),
permettono di realizzare l'interazione tra il computer e
l'ambiente (compreso l'utente umano)
• La loro funzione primaria è quella di consentire
l'immissione dei dati all'interno dell'elaboratore
(ingresso), o l'uscita dei dati dall'elaboratore (uscita)
• Solitamente hanno un autonomia limitata rispetto al
processore centrale (sono completamente controllati e
coordinati dal processore)
Collegamento con perficeriche I/O
(esterne esempio stampante)
Tipi di processori
• Processori CISC (Complex Instruction Set Computer)
– il linguaggio macchina ha molte istruzioni piuttosto
complesse (piu’ lente da eseguire possono
richiedere piu’ cicli di clock)
– Esempio Pentium, Macintosh 68000
• Processori RISC (Reduced Instruction Set Computer)
– Il linguaggio macchina ha poche istruzioni molto
semplici (piu’ veloci da eseguire, eseguite in un
unico ciclo di clock)
– Esempio Macintosh PowerPC
Il controller
• Ogni dispositivo di I/O è collegato ad un
dispositivo elettronico (il CONTROLLER) che
gestisce il coordinamento tra processore,
memoria e dispositivo in modo da garantire il
corretto trasferimento di dati
• Il controller è parte del computer, non del
dispositivo
• Lo stesso vale per i dispositivi di memoria
secondaria
Architettura aperta e flessibile
CAVO
controller
computer
dispositivo
(es. stampante)
Dati e segnali di controllo
• Il computer deve essere espandibile e
configurabile a seconda delle esigenze
dell’utente
• L’architettura deve avere la massima
compatibilita’ rispetto all’ hardware esistente
(anche per ragioni commerciali)
6
Unità di I/O
Unità di ingresso (input)
• tastiera
• mouse (dispositivi di puntamento)
• scanner (OCR riconoscitori di caratteri)
• altri (fotocamere, sensori, lettori di codice a barre,
microfono)
Unità di uscita (output)
• video
• stampante
• casse
• Schede audio (Sound blaster)
La Tastiera
• La tastiera è il principale dispositivo di input
• I tasti possono essere così raggruppati :
– tasti alfanumerici;
– tasti speciali (il tasto ENTER, il tasto BACK
SPACE);
– frecce direzionali;
– tasti funzione
•
•
•
•
•
•
• La tastiera non ha capacità di elaborazione, l'unica
cosa che è in grado di fare è di avvertire (interrupt) il
processore ogni volta che un carattere è disponibile in
ingresso,
• Il carattere viene depositato in una memoria
temporanea (buffer) e i dati raccolti nella memoria
temporanea vengono poi inviati al programma cui
erano destinati
• La tastiera è un dispositivo di ingresso cieco, nel
senso che l'utente non può vedere i dati immessi nel
calcolatore
• E’ compito del processore riprodurre sul video tutte le
informazioni fornite in ingresso tramite la tastiera. La
tastiera e il video non sono pero’ direttamente
collegati tra loro.
A: tasti funzione
B: tasti di spostamento nel testo
C: indicatori luminosi
D,E: scorciatoie e applicazioni
F: frecce di movimento
G: tastierino numerico
Dispositivi di puntamento: Il mouse
• Oggi quasi tutti i computer hanno un dispositivo di
puntamento: il mouse
• Una freccia indica la posizione del mouse sul video e
lo spostamento del mouse sul tavolo viene comunicato
al processore, che produce lo spostamento
corrispondente della freccia sul video
• Una volta raggiunta la posizione desiderata, premendo
uno dei pulsanti del mouse si genera un segnale che
può corrispondere a diverse funzioni
• Ci sono vari tipi di mouse, meccanici e ottici
• altri dispositivi di puntamento, trackball, tavolette
grafiche, schermi sensibili (touchscreen), joystick
7
video
• Dal punto di vista Ilfisico,
un video può essere
visto come una matrice di punti illuminati con
diversa intensità
• Ogni punto sullo schermo è un pixel e
un'immagine viene composta accendendo o
spegnendo i pixel sullo schermo
• Oggi sono comuni video con un numero di
colori che va da 256 fino a 16 milioni
(profondità di colore)
Standard del video
• VGA (Video Graphic Arrays) 640x 480 colori a
8 bit (256 colori)
• SVGA (Super VGA) 600x800
fino a 24 bit (16 milioni di colori)
• XGA (Extended Graphic Arrays) 1024x 768
fino a 24 bit (16 milioni di colori)
Parametri del video
• Risoluzione: nei personal sono oggi comuni video
con risoluzioni che vanno da 640X480 fino a
4096X3300 pixel (altissima risoluzione)
• Dot-pitch: Parametro correlato, è la distanza tra due
pixel: più è piccola più l’immagine è nitida
• Frequenza di refresh: (refresh rate) che indica la
frequenza con cui le immagini sono ridisegnate sullo
schermo. (Frequenze dai 70Hz garantiscono
un’immagine stabile senza tremolio)
Hardware specifico
• L’immagine (codificata) che vediamo sul video, viene
memorizzata in una memoria specializzata detta
MEMORIA VIDEO (VRAM) che è parte della
scheda video.
• L’animazione e la grafica 3D richiedono inoltre una
quantità enorme di dati che devono essere trasferiti
ed elaborati per la visualizzazione
• Nei computer attuali è presente spesso un
processore autonomo che gestisce l’elaborazione
grafica in modo da sgravare la CPU (Acceleratore
grafico)
Tipi di video
• La dimensione di un video viene misurata in
pollici e fa riferimento alla lunghezza della
diagonale
• Ad esempio, quando si parla di un video a 14
pollici, indicati come 14", si intende un video
con una diagonale lunga 14 pollici
• C’è un rapporto ottimale tra dimensioni del
video e risoluzione, non necessariamente
una risoluzione elevata è adatta a video di
piccole dimensioni
• CRT (Raggi catodici) come i televisori
• LCD (Cristalli liquidi)
– a matrice attiva
– a matrice passiva (vecchio)
• PDP (Plasma)
8
La stampante
I Parametri di valutazione delle prestazioni di una
stampante sono:
• La velocità di stampa, che viene solitamente misurata
in pagine al minuto (ppm), o linee al minuto (lpm) o in
caratteri al secondo (cps),
Esistono diversi tipi di stampanti; i più comuni
sono:
– Stampanti ad aghi
– Stampanti a getto di inchiostro
– Stampanti laser
• la risoluzione (qualità) di stampa, che indica quanto
precisa è la riproduzione e si misura in punti per pollice
(dpi= dots per inch)
Stampanti a getto di inchiostro
Stampanti ad aghi (obsolete)
• Il simbolo da stampare è determinato da una matrice
di aghi da cui esce l’inchiostro
• La forma del simbolo da stampare è determinata
dagli aghi sporgenti che vengono a contatto con la
carta
• Qualità di stampa mediocre, stampanti economiche,
usate ancora per moduli continui, copie carbone,
stampa multipla
• Risoluzione ~ 100-200 dpi
• Velocità < 20 ppm
• La stampa è determinata da inchiostro liquido
spruzzato sulla carta da ugelli molto piccoli contenuti
in una testina
• Mediante la magnetizzazione dell’inchiostro è
possibile controllare la sua distribuzione sulla carta
• Qualità buona, stampanti economiche, costo elevato
dell’inchiostro, facile usura
• Risoluzione ~600dpi
• Velocità <6 ppm
Stampanti laser
Procedimento simile a quello di una fotocopiatrice:
• L’inchiostro solido viene fissato sulla carta mediante
riscaldamento facendo passare il foglio di carta su un
tamburo rivestito di materiale fotovoltaico
• I punti del tamburo sono caricati elettricamente mediante
un fascio laser di dimensioni molto ridotte
• I punti caricati elettricamente attraggono particelle di
inchiostro
• qualità elevata di stampa costi relativamente alti
• Risoluzione ~ 600-1200 dpi,
• velocità <30 ppm
Altri dispositivi di ingresso/uscita
• Scanner (I) bitmap/OCR
• Lettori di codici a barre (I)
• Modem (I/O)
• Microfono (I)
• Altoparlanti - Schede audio (O) (Sound blaster)
• Plotter (O) (usati per disegni tecnici di grandi
dimensioni
• .......................
• Sensori e strumenti di varia natura
9
Scarica