note - Dipartimento di Matematica e Informatica

Transcript

note - Dipartimento di Matematica e Informatica
Modello “esterno” di un computer
Ambiente
Dispositivo di
Input 1
Dispositivo di
Input M
Computer
elettronico
Dispositivo di
Output 1
Dispositivo di
Output M
Ambiente
Da un punto di vista esterno/astratto, il computer si può
considerare un sistema che:
• riceve informazione da dispositivi o periferiche di input (tastiere,
mouse, scanner, webcam, microfono, dischi, linee telefoniche,
rete, lettore di barre, …)
• elabora l’informazione per mezzo di dispositivi elettronici
• invia i risultati a dispositivi o periferiche di output (display,
amplificatori audio, nastri, dischi ottici/magnetici, stampanti,
linee telefoniche, rete, attuatori...)
NB: tipicamente rete e unità disco sono dispositivi di Input/Output
(I/O) al tempo stesso.
Architettura di un elaboratore: introduzione − 20/04/2006
1/29
Organizzazione interna di un computer
Tipica organizzazione interna o architettura del computer:
1. CPU (Central Processing Unit = Unità Centrale di Elaborazione);
è l’organo “intelligente”
2. Interfacce o controller verso le periferiche di I/O (Input/Output)
3. Memoria, contenente informazioni
(I componenti (1,2) rispecchiano le funzionalità descritte a pag. 1;
per la necessità della memoria, vedi sotto)
Periferiche
Computer
(Tra CPU e alcune periferiche può esserci un bus dedicato)
La memoria ha 3 funzioni principali:
1. buffer attraverso cui comunicano CPU e periferiche
(serve perché la CPU è molto più veloce).
2. salvare i risultati intermedi (dati) di un’elaborazione;
3. contenere i programmi.
(3) supporta la caratteristica fondamentale del computer:
la programmabilità.
Architettura di un elaboratore: introduzione − 20/04/2006
2/29
Programmi
Programmabilità: il funzionamento del computer è
• non fissato alla costruzione, ma
• determinato dal programma (= sequenza di istruzioni),
caricato in memoria dall’utente, secondo le sue esigenze.
CPU
Memoria
Interfaccia
Periferica 1
Interfaccia
Periferica 2
Programma
Dati
Poter cambiare programma fa del computer uno strumento
flessibile. Per questo:
• ai programmi si dà il nome collettivo di software, al contrario,
• i componenti fisici del computer sono detti hardware.
Architettura di un elaboratore: introduzione − 20/04/2006
3/29
IT e ICT
Information (and Communication) Technology:
• complesso di tecnologie hardware e software per
l’elaborazione (=trattamento) e la trasmissione
dell’informazione
L’ICT ha determinato, sul piano economico-sociale:
• una radicale innovazione dei modi di produzione di beni e
servizi, e quindi:
• una nuova fase nello sviluppo dell’umanità: la più recente
delle rivoluzioni industriali
Architettura di un elaboratore: introduzione − 20/04/2006
4/29
Rappresentazione dell’informazione in un computer
Aspetti e caratteristiche dello scambio di informazione:
1. mezzo fisico (elettrico...) i cui fenomeni realizzano lo scambio;
2. simboli: fenomeni fisici scelti per scambiare informazione;
alfabeto: insieme dei simboli (non tutti i fenomeni sono simboli);
3. convenzioni secondo cui i simboli rappresentano informazione;
tali convenzioni vengono applicate nei procedimenti di:
• codifica: Informazione→Sequenza di simboli , e l’inverso:
• decodifica: Sequenza di simboli→Informazione
Esempi:
• alfabeto Morse; p.es. “S” → …
• notazione musicale
• le parole italiane sono codificate con 26 simboli
• numeri interi, codificati con cifre arabiche, romane, maya …
I dispositivi elettronici/magnetici dei computer possono prendere 1 di
2 stati (di tensione/magnetizzazione) convenzionalmente detti 0 e 1
Quindi l’informazione all’interno del computer si rappresenta con
l’alfabeto binario (da bis) di simboli 0 e 1, detti bit (binary digit).
Dal termine digit (cifra), il computer si dice anche digitale.
Architettura di un elaboratore: introduzione − 20/04/2006
5/29
Grandezze digitali e analogiche
• una grandezza (p.es. fisica) si dice (rappresentabile in modo)
digitale se varia “a scatti” (in particolare binari)
quest’esempio riguarda una grandezza digitale binaria
• una grandezza X si dice “analogica” se varia con continuità
(come i numeri reali)
Intervallo di campionamento
tempo
Livelli di
quantizzazione
della grandezza X
• una grandezza analogica si può “digitalizzare”, come in figura
o “quantizzando”: un livello analogico arbitrario, p.es. -.9
viene mappata sul livello quantizzato più vicino (-)
in fig.: quantizzazione con 9 livelli e passo 0.25
o “campionando”, cioè valutando con un certo periodo o
intervallo di campionamento, p.es. ogni sec
o la perdita di informazione dovuta alla digitalizzazione si
riduce con il passo di quantizzazione (es. da 0.25 a 0.125)
e di campionamento (es. da 1 a 0.5 secondi)
• la trasmissione analogica è più esposta al rumore
• trasmissione/dispositivi digitali sono più immuni a rumore/guasti
Architettura di un elaboratore: introduzione − 20/04/2006
6/29
Tipi di informazione in un computer
I bit sono in genere elaborati o memorizzati a gruppi di N:
• byte: sequenza di N=8 bit;
• word: operando “standard” delle istruzioni (16 bit per un PC).
I gruppi di bit si usano per codificare diversi tipi di informazione:
• numerica: interi, relativi (interi con segno), con virgola
• insiemi finiti
• alfabetica/caratteri (ASCII)
• istruzioni della CPU
• altro
Architettura di un elaboratore: introduzione − 20/04/2006
7/29
Informazione numerica: codifica degli interi
Cosa si intende scrivendo 123 o 690?
• 123 = 1*102+2*101+3*100 , 609 = 6*102+0*101+9*100
• con i 10 simboli 0,1,2,3,4,5,6,7,8,9 si rappresentano gli interi
come somme di potenze di 10 (1=100, 10=101, 100=102 …)
In generale, sia A un alfabeto di B simboli detti cifre
• numerate le cifre, cioè posto A=a0, a1, … aB
• si conviene che la kesima (0≤k<B) ak rappresenta l’ intero k e:
• la sequenza di cifre [sn-1 ... s0]B (n>0, si∈A) rappresenta o
codifica, in base B, il numero intero sn-1Bn-1 + ... + s0B0
Normalmente A={0,1,2,3,4,5,6,7,8,9}, B=10 e [...]10 si omette. Es.:
• [123]10 o, semplicemente, 123 codifica 1*102+2*101+3*100
• [1111011]2 codifica 1*26+1*25+1*24+1*23+0*22+1*21+1*20 =
64+32+16+8+2+1 = 123
Architettura di un elaboratore: introduzione − 20/04/2006
8/29
Codifica binaria degli interi
Per A={0,1} e B=2 (alfabeto binario)
• la codifica si dice binaria e le cifre, come detto, bit
• per codificare gli interi in binario, si può usare il procedimento
generale (pag. 8) o, più semplicemente, contare in binario:
• quindi con 2 bit si conta da 0 fino a 3 = 4-1= 22-1
con 3 bit si conta da 0 fino a 7 = 8-1= 23-1
con 4 bit si conta da 0 fino a 15 =16-1= 24-1
con n bit si conta da 0 fino a
2n-1
• in generale n bit (usati o no per codifica numerica)
assumono 2n valori distinti
Architettura di un elaboratore: introduzione − 20/04/2006
9/29
Notazione ottale ed esadecimale
Oltre che in base 10 o 2, gli interi si rappresentano nelle basi:
• 8, con le cifre:
0 1 2 3 4 5 6 7
• 16, con le cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Per semplicità, anziché [x...y]B si scriverà x...yR con R pari a:
D se B=10, O se B=8, H (Hexadecimal) se B=16, B (binary) se B=2.
Esempi: 123O=83D 123H=291D FFFH=4095D A6B4H=42676D
Trascrivere una sequenza di bit non è conveniente. Alternative:
1. convertire ogni 3 bit (da destra verso sinistra) in ottale:
01 001 010 010 110 101 101 001 110 111B → 1 1 2 2 6 5 5 1 6 7 O
2. convertire ogni 4 bit (da destra verso sinistra) in hex:
10 0001 0100 1011 0101 1010 0111 0111B → 2 1 4 B 5 A 7 7 H
(2) preferibile perché evidenzia le frontiere tra i byte: 21 4B 5A 77
(in genere il byte è il gruppo minimo in cui i bit sono considerati).
Conversioni di base
Per passare dalla base R1 alla base R2 , si divide x...yR1 per R2:
• il resto (<R2) è l’ultima cifra nella base R2
• al quoziente, se non nullo, si applica lo stesso procedimento.
Esempio. Portare 42676D in base 16 con divisione ripetuta per 16:
Quoziente
2667D
166D
10D
0D
Resto D
4D
11D
6D
10D
Resto H
4H
BH
6H
AH
Risultato (ultima colonna dal basso in alto): A6B4H
Architettura di un elaboratore: introduzione − 20/04/2006
10/29
Tipi di informazione: insiemi finiti
Insiemi finiti: gli elementi di un insieme I di 2N elementi si possono
rappresentare con N bit, usando una codifica arbitraria. P. es.:
Elementi di I
cuori
Quadri
Fiori
Picche
Codifica (2 bit)
00
01
10
11
Informazione alfanumerica: I è un insieme di 256=28 caratteri
(tra cui quelli sulla tastiera di un PC: lettere, cifre, simboli vari).
Quindi la codifica binaria di questo insieme deve usare 1 byte.
La codifica alfanumerica più usata è l’ASCII; p. es.:
Carattere
0
A
X
Codifica (binaria) ASCII
0011 0000
0100 0001
0101 1000
Intero rappresentato dalla codifica ASCII
48D = 30H
65D = 41H
88D = 58H
NB: il termine “codice” è usato in un duplice senso
• legge di codifica (descritta p.es. con una tabella)
• codifica di un particolare dato;
p.es. il codice ASCII di X è 01011000 o 58H o 88D.
Architettura di un elaboratore: introduzione − 20/04/2006
11/29
Codice ASCII: alcune varietà
I programmi che interpretano i byte come testo possono differire
nell’interpretazione di: 00H-1FH (0-31) e 80H-FFH (128-255).
Ogni interpretazione dà luogo ad una varietà di codice ASCII.
Nel codice PC-8 i caratteri detti si interpretano come simboli grafici:
Nell’ANSI (Windows) i simboli sono diversi (più vocali accentate).
E’ di uso sempre più frequente Unicode, codice a 16 bit in grado di
rappresentare ogni simbolo (alfabetico, tecnico etc.) di uso corrente
Architettura di un elaboratore: introduzione − 20/04/2006
12/29
Altri tipi di informazione
Istruzioni (in memoria): sono codificate con opportuni gruppi di bit.
Non esiste una codifica standard, né un set di istruzioni standard;
p. es. 00100001 è un’istruzione diversa per CPU diverse;
p.es. per la CPU Intel Pentium incrementa un dato noto come cx.
In generale, l’interpretazione di una sequenza di bit dipende dal
contesto (convenzioni adottate).
Esempi
• in un programma, secondo il contesto, 00100001 può
rappresentare la lettera ‘A’, il numero 65D o un’istruzione
• in un testo latino, il simbolo C si interpreta, secondo il contesto,
come lettera o come numero 100.
Architettura di un elaboratore: introduzione − 20/04/2006
13/29
Componenti base di un computer
Periferiche
Computer
Configurazione di un PC di medio livello (febbraio 2005), vedi
http://hwupgrade.it/
Modello
Costo IVA inclusa
Processore
Intel Pentium 4 540 J
248
Scheda madre
DFI Lan Party UT915P-T12
199
Scheda video
Leadtek PX6600GT-TDH 128Mb Gddr3
218
Memoria
2 x 512Mb PC3200 Kingmax Color TinyBGA
171
Lettore ottico
LG GOLDSTAR 8163 DVD-ROM 16X 52X EIDE
28
Hard disk
Western Digtial Caviar 200GB SATA 8MB
156
Masterizzatore
NEC ND-3500
93
Scheda audio
integrata nella sk madre
-
Altoparlanti
Creative Inspire T7900 7.1
113
Monitor
Philips 109B60 19'' CRT
223
Case - Alimentatore Emermax CS-5168TABFS + Alimentatore 400w
Mouse - Tastiera
Logitech Cordless Desktop Optical
Totale
Architettura di un elaboratore: introduzione − 20/04/2006
85 + 40
50
circa €1630
14/29
Scheda madre, CPU, bus
Zoccoli per controller = schede di
interfaccia (verso periferiche)
Zoccoli per i
connettori
terminali
della piattina
(cavi) verso
unità dischi
Zoccoli per
schede di
memoria
CPU Pentium montate su zoccolo a leva (2 in
questo sistema biprocessore, per lo più una sola)
Porte o connettori verso
dispositivi esterni (stampanti,
modem, USB …)
•
alcuni controller (per dischi, stampante, USB …) sono integrati sulla scheda
madre (sono alcuni dei vari chip più piccoli)
•
il Bus (chip + piste di rame sulla faccia inferiore della scheda), collega CPU a:
o controller integrati
o zoccoli di memorie e schede…
Architettura di un elaboratore: introduzione − 20/04/2006
15/29
Memoria: schede
• realizzata su schede DIMM (Dual In-line Memory Module)
• cioè, entrambe le facce della scheda ospitano i piedini (dorati) di
collegamento con i connettori della scheda madre
• schede da 128MB, 256MB, 512MB (ciascuna)
Unità di misura per le memorie:
• bit (0 o 1)
• Byte = 8 bit (simbolo B)
• KB=210=1024B, cioè poco più di 1000B
• MB=220=210x210=1024KB, cioè poco più di 1 milione di B
• GB=230=210x220=1024MB, cioè poco più di 1 miliardo di B
Architettura di un elaboratore: introduzione − 20/04/2006
16/29
Modello concettuale della memoria
La memoria (detta anche centrale) contiene, in forma binaria:
• istruzioni che compongono i programmi;
• dati: rappresentazione dell’informazione elaborata dai programmi
Astrattamente, una memoria va pensata come:
• una sequenza finita (ma grande, p.es. 220) di celle o locazioni
• ogni cella contiene un byte (su certi computer una word)
• si dice indirizzo di una cella la sua posizione nella sequenza;
p.es.: la cella di indirizzo 0, 1, 1024, 220-1 etc.
Anche gli indirizzi sono rappresentati nel computer in binario;
quindi servono n bit per indirizzare una memoria di 2n celle.
Esempio: (PC con CPU 8086): indirizzi a 20 bit, quindi celle≤220:
Indirizzi
Celle (caso max)
0
1
.
.
.
.
220-1
Le operazioni fondamentali su una memoria sono:
• lettura (non distruttiva) del byte contenuto in una cella;
• scrittura di un byte dentro una cella
Architettura di un elaboratore: introduzione − 20/04/2006
17/29
Tecnologie e proprietà delle memorie
Comunemente la memoria è fatta con tecnologia a semiconduttori.
I bit di informazione sono livelli di grandezze elettriche.
Tipi di memoria
• RAM (Random Access M.): il tempo di accesso a una cella è
random (casuale), cioè indipendente dal suo indirizzo.
Al contrario, p.es. in un nastro magnetico completamente riavvolto, si ha un
tempo di accesso proporzionale all’indirizzo della cella (=distanza dalla testina).
• ROM (Read Only M.): non può scriversi da programmi comuni,
ma solo, occasionalmente, con appositi dispositivi o programmi
La RAM può essere:
• volatile (si cancella se non alimentata): scrivibile ma più lenta;
• non volatile: più veloce ma ROM.
In un PC la memoria centrale è RAM, di cui:
• la maggior parte è scrivibile, con dati e programmi d’utente,
• il resto è ROM contenente programmi (BIOS) “incorporati”
(dal costruttore) per la gestione dell’hardware.
Valori tipici per le RAM a semiconduttori impiegati nei PC:
dimensione: 128-1024MB (=1GB)
tempo di accesso (a una cella): 6-8ns
tempo di ciclo (tra due accessi): 1-3 volte il tempo di accesso
Throughput memoria (velocità di 400MB/s
trasferimento dati in MB/s)
Throughput bus (se < memoria, come 333MB/s
nell’esempio, ne limita le prestazioni)
Architettura di un elaboratore: introduzione − 20/04/2006
18/29
Memoria secondaria magnetica
Alla memoria centrale se ne affianca, in genere, una secondaria
(<costo e >dimensione) ospitata da una periferica di I/O.
Modello: anche la memoria secondaria va pensata come una
sequenza di byte indirizzabili singolarmente.
Tecnologia: la più comune usa dischi magnetici rotanti
• disco rigido (Hard Disk=HD) a velocità 7200-10000rpm (giri/min)
• floppy disk (FD), rimuovibile, ma lento e poco capace
• drive = alloggiamento/dispositivo che ospita i dischi: (HDD, FDD)
• letto/scritto da una testina su braccio mobile radialmente
• un bit è rappresentato da un’area magnetizzata (es. 1) o no (0)
Prestazioni: molto diverse rispetto alla RAM a semiconduttori:
- accesso non casuale: richiede più tempo per i blocchi (di byte)
più lontani dalle testine (cioè dall’ultimo blocco letto/scritto);
+ non volatile;
- tempo di accesso: tipicamente 8-15 ms (HD)
contro 8ns (RAM), cioè 1.000.000 di volte più lento;
+ dimensioni tipiche: da 40G a 200G;
+ costo/GB, p, es.: 512MB RAM
120G HD
@ 70$ = 140$/GB
@ 120$ =
10$/GB
- throughput, p.es.: 10-40MB/s (HD) contro 100-500 MB/s (RAM)
Architettura di un elaboratore: introduzione − 20/04/2006
19/29
Drive di disco rigido
Piattina
verso la
scheda
madre
Cilindro: insieme di tracce
di posizione
corrispondente sulle varie
superfici (in grigio)
Architettura di un elaboratore: introduzione − 20/04/2006
20/29
Dischi ottici
Tecnologia:
•
•
dischi di un supporto ricoperto di
oro/argento/alluminio riflettente
pit (depressioni) e land nel supporto
• laser riflesso diversamente da
Au/Ag/Al se passa da pit o land
• bit 1= transizione pit /land o land/pit
• disco ruota, laser+fotorivelatore
traslano radialmente
• letto da laser
• testina su braccio mobile radialmente
• l’informazione (0 o 1) in un’area se essa riflette o no il laser
Prestazioni:
- accesso non casuale (vedi organizzazione)
+ non volatile;
- tempo di accesso: tipicamente 8-15 ms (HD)
contro 8ns (RAM), cioè 1.000.000 di volte più lento;
• + dimensioni compact disk (CD, CD Drive=CDD), 700MB
DVD (laser a >frequenza), 4,7-20GB (doppia faccia, doppio strato)
+ costo/GB, p, es.: 512MB RAM
120G HD
Architettura di un elaboratore: introduzione − 20/04/2006
@ 70$ = 140$/GB
@ 120$ =
10$/GB
21/29
La CPU
La CPU ha lo scopo di eseguire i programmi:
• prelevandone le istruzioni dalla memoria centrale;
• esaminandole per riconoscerle, attraverso la Control Unit;
• eseguendole, se serve usando la ALU (Arithmetic Logical Unit).
CPU
Unità di controllo
ALU (Unità
Aritmetica Logica)
Registri
Program
Counter (PC)
(P_CV)
Instruction
Register (IR)
La CPU dispone di alcune (tip. 8-32) celle dette registri, distinti
dalle celle di memoria centrale e di accesso più veloce. Si hanno:
• registri accessibili da istruzioni;
• registri non accessibili da istruzioni, tra cui:
- registri di stato (p.es. PC, Program Counter, e i Flags),
il cui valore può influenzare le istruzioni;
- registri interni, necessari al funzionamento della CPU,
ma “trasparenti” per le istruzioni (p.es. IR, Instruction Reg.).
Architettura di un elaboratore: introduzione − 20/04/2006
22/29
Funzionamento della CPU
Ogni CPU funziona secondo un ciclo prelievo-esecuzione:
1. si preleva il contenuto della cella il cui indirizzo è in PC;
si tratta di un’istruzione, che viene posta in IR;
2. la Control Unit esamina IR e determina il tipo di istruzione;
3. si incrementa PC di 1+ (n.byte occupati dall’istruzione);
4. si esegue l’istruzione;
5. si torna al punto 1 (o ci si ferma se l’istruzione eseguita era halt).
NB:
• (3) mette in PC l’indirizzo dell’istruzione successiva
• questa sarà eseguita al prossimo ciclo, se (4) non cambia PC
• se no si ha un salto: la prossima istruzione non sarà la seguente
Memoria
CPU
Unità di controllo
ALU (Unità
Aritmetica Logica)
Istruzione corrente
Registri
Program
Counter (PC)
(P_CV)
Architettura di un elaboratore: introduzione − 20/04/2006
Instruction
Register (IR)
23/29
Istruzioni
Lo scopo delle istruzioni è di cambiare lo stato del computer, cioé
1. contenuto del PC e dei Flag di stato
2. contenuti di memoria e registri (della CPU o delle periferiche).
L’effetto di un’istruzione viene definito da:
• un codice operativo (opcode)
• k operandi (k varia secondo opcode e va tipicamente da 0 a 2),
tipicamente registri, locazioni di memoria, dati numerici.
P. es., mov ax,037fh, copia il dato 037fh nel registro ax
Ogni CPU ha un suo set (insieme) di istruzioni (opcodes):
da circa 20 (RISC - Reduced Instruction Set Computer)
a circa 300 (CISC - Complex Instruction Set Computer).
Velocità tipiche delle CPU in MIPs (Mega Instructions Per second):
1 (Vax), 5 (Intel 386), 5000 (Pentium 4 a 2.5GHz).
Architettura di un elaboratore: introduzione − 20/04/2006
24/29
Principali classi di istruzioni
Trasferimento (più precisamente, copia) di dati. P.es.:
mov bl,0Ch sposta il byte 0Ch nel registro bl
Aritmetico-logiche. P. es.:
add ax,bx
somma i contenuti dei registri bx e ax (sorgenti) e
pone il risultato in ax (destinazione)
and al,bl
esegue l'AND dei contenuti dei registri al e bl
e pone il risultato in al
Test: modificano opportuni bit (o flag) di un registro di stato.
tst d0
(CPU 68000) se il registro d0 è 0, pone a 1 il flag
Z;
cmp ax,3
se ax≠3, pone a 0 il flag Z altrimenti a 1
Architettura di un elaboratore: introduzione − 20/04/2006
25/29
Principali classi di istruzioni: salti
Salti. P. es. (CPU 68000):
jmp 34C2H
salta a eseguire l’istruzione all’indirizzo 34C2
bz 7F23H
salta a eseguire l’istruzione all’indirizzo 7F23,
se vale 1 il flag Z
Se la memoria contiene dei programmi A e B, le istruzioni di salto
consentono di trasferire l’esecuzione da A a B e ritorno.
P.es. (si immagini che B compia dei calcoli per conto di A):
Programma A
Programma B
0
78
79
304
chiamata
salta a 304
ritorno
Architettura di un elaboratore: introduzione − 20/04/2006
salta a 79
26/29
Classi di computer
• Mainframe: alta potenza e costo, grandi organizzazioni
servono numerosi terminali attraverso linee
• sistemi HPC (supercalcolo, simulazione)
• Server (Web, Database, File, Print, …): accessibili da clienti
via rete; costo medio e ottime prestazioni in termini di servizi
forniti nell’unità di tempo
• Minicomputer
o per esigenze di calcolo di un’organizzazione (PMI,
Dipartimento), superiori a quelli di un utente personale
o costo e potenza superiori ai PC entry-level o di fascia
media
o tende a sovrapporsi a PC di fascia alta
• PC (Personal Computer):
o mirati alle esigenze di calcolo del singolo
o utilizzabili come clienti
o alto rapporto prestazioni/prezzo
Architettura di un elaboratore: introduzione − 20/04/2006
27/29
Classi di computer / 2
• sistemi embedded, ormai pressoché tutti I dispositivi elettronici
• PDA (es. con PalmOS, Windows PocketPC) e smartphone
• smart card
= CPU + memoria
o SIM del telefonino (rubrica, PIN, suonerie, SMS)
o Scheda del decoder satellitare
o Carta d’identità elettronica
Architettura di un elaboratore: introduzione − 20/04/2006
28/29
Notebook o no?
- costo superiore 20-30%
- robustezza inferiore (miniaturizzazione)
- riparazione difficile e costosa
- robustezza? Centrino è meno sollecitato termicamente
Architettura di un elaboratore: introduzione − 20/04/2006
29/29