Lezione 3 Prof. Angela Bonifatistaff.icar.cnr.it/.../teaching/intro/lucidi/lezione3.pdf15/10/2003...
Transcript of Lezione 3 Prof. Angela Bonifatistaff.icar.cnr.it/.../teaching/intro/lucidi/lezione3.pdf15/10/2003...
15/10/2003
Introduzione ai sistemi informatici 1
Lezione 3Prof. Angela Bonifati
Complemento a 2Algebra booleana
Le infrastrutture hardware
Esercizi sulla codifica dei numeri
15/10/2003
Introduzione ai sistemi informatici 2
15/10/2003 Introduzione ai sistemi informatici 3
Eseguire le seguenti conversioni:Da base 2 e 16 in base 10:• 1102 = ????10
• B7F16 = ????10
Da base 10 in base 2 e 16: • 31310 = ????2
• 50610 = ????16
Da base 2 in base 8 e 16:• 10111100102 = ????8
• 10111100102 = ????16
Numeri Frazionari da base 2 in base 10 e viceversa:• 0.1001110112 = ????10
• .61523437510 = ????2
Approfondimento:il complemento a 2
15/10/2003
Introduzione ai sistemi informatici 3
15/10/2003 Introduzione ai sistemi informatici 5
Numeri interi in complemento a 2Alfabeto binario• anche il segno è rappresentato da 0 o 1• è indispensabile indicare il numero k di bit utilizzati
Complemento a 2• X corrisponde al binario naturale di 2k + X
+6dieci ⇒ 24+6 = 22 ⇒ [1]0110⇒ 0110C2–6dieci ⇒ 24– 6 = 10 ⇒ [0]1010⇒ 1010C2
• si rappresentano i valori da –2k–1 a 2k–1–1• con 4 bit i valori vanno da –8 a +7• con 8 bit i valori vanno da –128 a +127
• Attenzione: c’è una sola rappresentazione dello 0• con 4 bit è +0dieci = 0000C2 mentre 1000C2 = –8dieci
15/10/2003 Introduzione ai sistemi informatici 6
Il complemento a 2Metodi alternativi per calcolare la rappresentazione di –X a partire da quella di X• Effettuare il complemento di ogni bit di X e aggiungere poi 1
• rappresentazione di +6dieci = 0110C2
• complemento di tutti i bit ⇒ 1001C2
• aggiungere 1 ⇒ 1010C2 (che corrisponde a -6dieci)
• Partendo da destra e andando verso sinistra, lasciare invariati tutti i bit fino al primo 1 compreso, complementare tutti gli altri bit.
• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)• gli ultimi due bit (_._.1.0) rimangono invariati• gli altri due bit vengono complementati (1.0.1.0C2)
15/10/2003
Introduzione ai sistemi informatici 4
15/10/2003 Introduzione ai sistemi informatici 7
Complemento a 2 – Alcune osservazioni
i numeri positivi iniziano con 0, quelli negativi con 1data la rappresentazione di un numero su k bit, la rappresentazione dello stesso numero su k+1 bit si ottiene aggiungendo (a sinistra) un bit uguale al primo (estensione del “segno”)• Rappresentazione di –6 su 4 bit = 1010• Rappresentazione di –6 su 5 bit = 11010• Rappresentazione di –6 su 8 bit = 11111010
la sottrazione si effettua come somma algebrica• 4 – 6 = +4 + (–6) = 0100 + 1010 = 1110 = –2• 9 – 6 = +9 + (–6) = 01001 + 11010 = [1]00011 = +3
15/10/2003 Introduzione ai sistemi informatici 8
Diverse codifiche/interpretazioni
-7
-6
-5
-4
-3
-2
-1
-0
MS
-1
-2
-3
-4
-5
-6
-7
-8
C2
1111
1110
1101
1100
1011
1010
1001
1000
Codice
157770111
146660110
135550101
124440100
113330011
102220010
91110001
80000000
NatC2MSNatCodice
15/10/2003
Introduzione ai sistemi informatici 5
Approfondimento:Operazioni Logiche (Booleane)
15/10/2003 Introduzione ai sistemi informatici 10
Algebra di Boole
L’algebra di Boole (dal suo inventore G. Boole) serve a descrivere le operazioni logiche.Componenti dell’algebra di Boole:• Operatori booleani• Regole di trasformazione ed equivalenza tra
operatori booleaniGli operandi booleani assumono solo due valori:Vero/Falso True/False 1/0 Sì/No …
15/10/2003
Introduzione ai sistemi informatici 6
15/10/2003 Introduzione ai sistemi informatici 11
Operatori e tavole di veritàA not A0 11 0
A B A or B0 0 00 1 11 0 11 1 1
A B A xor B0 0 00 1 11 0 11 1 0
A B A ↔ B0 0 10 1 01 0 01 1 1
A B A nor B0 0 10 1 01 0 01 1 0
A B A nand B0 0 10 1 11 0 11 1 0
A B A and B0 0 00 1 01 0 01 1 1
15/10/2003 Introduzione ai sistemi informatici 12
Espressioni booleane
Equivalenza• Due espressioni booleane sono equivalenti se hanno la
medesima tavola di veritàTautologia• Un’espressione booleana è una tautologia se è sempre
veraEsempio: A OR (NOT A)
Contraddizione• Un’espressione booleana è una contraddizione se è
sempre falsaEsempio: A AND (NOT A)
15/10/2003
Introduzione ai sistemi informatici 7
15/10/2003 Introduzione ai sistemi informatici 13
Notazione
Esistono convenzioni diverse:• Negazione not A ¬ A A ! – A• Congiunzione A and B A ٨ B A & B A × B• Disgiunzione A or B A ٧ B A | B A + B• Disgiunzione
esclusiva A xor B A ^ B A ⊕ B[ equivale a (A and (not B)) or ((not A) and B) ]
• Implicazione A → B A ⊃ B A ⇒ B(se ... allora)
• Doppia implicazione A ↔ B A ≡ B A ⇔ B(se e solo se)
15/10/2003 Introduzione ai sistemi informatici 14
Proprietà degli operatori booleaniOR (+)AND (×)Proprietà
A + 0 = AA × 1 = AIdentitàA + 1 = 1A × 0 = 0Elemento nulloA + A = AA × A = AIdempotenza
A + (–A) = 1A × (–A) = 0InversoA + B = B + AA × B = B × ACommutativa
A+(B+C) = (A+B)+CA×(B×C) = (A×B)×CAssociativa
A+(B×C) =(A+B)×(A+C)
A×(B+C) =(A×B)+(A×C)Distributiva
A + (A × B) = AA × (A + B) = AAssorbimento–(A+B)=(–A)×(–B)–(A×B)=(–A)+(–B)De Morgan
15/10/2003
Introduzione ai sistemi informatici 8
15/10/2003 Introduzione ai sistemi informatici 15
CODIFICA DI IMMAGINI
Esistono numerose tecniche per la memorizzazione digitale e l'elaborazione di un'immagine Immagini = sequenze di bit!L’immagine viene digitalizzata cioè rappresentata con sequenze di pixelOgni pixel ha associato un numero che descrive un particolare colore (o tonalità di grigio)Inoltre si mantengono la dimensione, la risoluzione (numero di punti per pollice), e il numero di colori utilizzati
15/10/2003 Introduzione ai sistemi informatici 16
CODIFICA DI IMMAGINIConsideriamo un'immagine in bianco e nero, senza ombreggiature o livelli di chiaroscuro
Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante
15/10/2003
Introduzione ai sistemi informatici 9
15/10/2003 Introduzione ai sistemi informatici 17
CODIFICA DI IMMAGINI
Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:• il simbolo “0” viene utilizzato per la codifica di un pixel
corrispondente ad un quadratino bianco (in cui il bianco è predominante)
• il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino nero (in cui il nero è predominante)
15/10/2003 Introduzione ai sistemi informatici 18
CODIFICA DI IMMAGINIPoiché una sequenza di bit è lineare, si deve definire una convenzione per ordinare i pixel della grigliaHp: assumiamo che i pixel siano ordinati dal basso
verso l'alto e da sinistra verso destra
1 11 1 1 1
10
0
0
00 0 0 00
0 0
0
00
0 0
00
0
001 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
La rappresentazione della figura è data dalla stringa binaria0000000 0111100 0110000 0100000
15/10/2003
Introduzione ai sistemi informatici 10
15/10/2003 Introduzione ai sistemi informatici 19
CODIFICA DI IMMAGININon sempre il contorno della figura coincide con le linee della griglia: nella codifica si ottiene un'approssimazione della figura originariaSe riconvertiamo la stringa 0000000011110001100000100000
in immagine otteniamo
15/10/2003 Introduzione ai sistemi informatici 20
CODIFICA DI IMMAGINILa rappresentazione sarà più fedele all'aumentare del numero di pixel• ossia al diminuire delle dimensioni dei quadratini
della griglia in cui è suddivisa l'immagine
zz
15/10/2003
Introduzione ai sistemi informatici 11
15/10/2003 Introduzione ai sistemi informatici 21
CODIFICA DI IMMAGINI CONTONI DI GRIGIO
Le immagini in bianco e nero hanno delle sfumature, o livelli di intensità di grigioPer codificare immagini con sfumature: • si fissa un insieme di livelli (toni) di grigio, cui si assegna
convenzionalmente una rappresentazione binaria • per ogni pixel si stabilisce il livello medio di grigio e si
memorizza la codifica corrispondente a tale livello
Per memorizzare un pixel non è più sufficiente 1 bit.• con 4 bit si possono rappresentare 24=16 livelli di grigio• con 8 bit ne possiamo distinguere 28=256, • con K bit ne possiamo distinguere 2K
15/10/2003 Introduzione ai sistemi informatici 22
CODIFICA DI IMMAGINI A COLORI
Analogamente possono essere codificate le immagini a colori:
bisogna definire un insieme di sfumature di colore differenti, codificate mediante una opportuna sequenza di bit
La rappresentazione di un'immagine mediante la codifica dei pixel, viene chiamata codifica bitmap
15/10/2003
Introduzione ai sistemi informatici 12
15/10/2003 Introduzione ai sistemi informatici 23
CODIFICA DI IMMAGINI A COLORI
Il numero di byte richiesti dipende dalla risoluzionee dal numero di colori che ogni pixel può assumereEs: per distinguere 256 colori sono necessari 8 bit per la codifica di ciascun pixel
• la codifica di un'immagine formata da 640×480 pixel richiederà 2457600 bit (307200 byte)
I monitor tipici utilizzano • risoluzione: 640×480, 1024×768, 1280×1024 • numero di colori per pixel: da 256 fino a 16 milioni
Tecniche di compressione consentono di ridurre notevolmente lo spazio occupato dalle immagini
15/10/2003 Introduzione ai sistemi informatici 24
CODIFICA DI FILMATIImmagini in movimento sono memorizzate come sequenze di fotogrammiIn genere si tratta di sequenze compresse di immagini• ad esempio si possono registrare solo le variazioni tra un
fotogramma e l’altroEsistono vari formati (comprendente il sonoro):• mpeg (il piu’ usato)• avi (microsoft)• quicktime (apple)• mov
E’ possibile ritoccare i singoli fotogrammi
15/10/2003
Introduzione ai sistemi informatici 13
15/10/2003 Introduzione ai sistemi informatici 25
CODIFICA DI SUONI
L’onda sonora viene misurata (campionata) ad intervalli regolariMinore e l’intervallo di campionamento e maggiore e la qualità del suonoCD musicali: 44000 campionamenti al secondo, 16 bit per campione.Alcuni formati:• .mov, .wav, .mpeg, .avi• .midi usato per l’elaborazione della musica al PC
Le infrastrutture hardware
Il processoreLa memoria centraleLa memoria di massaLe periferiche di I/O
15/10/2003
Introduzione ai sistemi informatici 14
15/10/2003 Introduzione ai sistemi informatici 27
Funzionalità di un calcolatore
Trasferimento
Elaborazione Controllo Memorizzazione
15/10/2003 Introduzione ai sistemi informatici 28
Caratteristiche dell’architettura
Flessibilità• adatta a svolgere diverse tipologie di compiti
Modularità• ogni componente ha una funzione specifica
Scalabilità• ogni componente può essere sostituito con uno equivalente
Standardizzazione• componenti facilmente sostituibili in caso di malfunzionamento
Riduzione dei costi• grazie alla produzione su larga scala
Semplicità• di installazione ed esercizio del sistema
15/10/2003
Introduzione ai sistemi informatici 15
15/10/2003 Introduzione ai sistemi informatici 29
Interconnessione
Il calcolatore:modello concettuale
1.Elaborazione
2.Memorizzazione
3.Comunicazione
(interfaccia)
15/10/2003 Introduzione ai sistemi informatici 30
1.Elaborazione
Interconnessione
2.Memorizzazione
3.Comunicazione
(interfaccia)
Unità Centrale di Elaborazione
MemoriaElettronica
MemoriaMagnetica
Il calcolatore:modello architetturale
Periferiche
Collegamenti(BUS/Cavi)
15/10/2003
Introduzione ai sistemi informatici 16
15/10/2003 Introduzione ai sistemi informatici 31
Lo schema di riferimento
Tastiera
Interfaccia ingresso/uscita
Schermo
Interfaccia ingresso/uscita
Interfaccia ingresso/uscita
Interfaccia ingresso/uscita
Mouse Memoriadi massa
Memoria centrale
CPU
Bus dati
Bus di controllo
Bus indirizzi
…
15/10/2003 Introduzione ai sistemi informatici 32
Caratteristiche del collegamento a BUS
Semplicità• un’unica linea di connessione costi ridotti di produzione
Estendibilità• aggiunta di nuovi dispositivi molto semplice
Standardizzabilità• regole per la comunicazione da parte di dispositivi diversi
Lentezza• utilizzo in mutua esclusione del bus
Limitatà capacità• al crescere del numero di dispositivi collegati
Sovraccarico del processore (CPU)• perchè funge da master sul controllo del bus
15/10/2003
Introduzione ai sistemi informatici 17
Unità centrale di elaborazioneCPU
15/10/2003 Introduzione ai sistemi informatici 34
Organizzazione tipica di un calcolatore “bus oriented”
CPU Memoriacentrale
Bus
Unità dicontrollo
Unitàaritmetico
logica (ALU)
Registri
CPU
Terminale
Unitàdisco
Stampante
Dispositivi di I/O
15/10/2003
Introduzione ai sistemi informatici 18
15/10/2003 Introduzione ai sistemi informatici 35
Tre tipologie di istruzioni
Istruzioni aritmetico-logiche (Elaborazione dati)• Somma, Sottrazione, Divisione, …• And, Or, Xor, …• Maggiore, Minore, Uguale, Minore o uguale, …
Controllo del flusso delle istruzioni• Sequenza• Selezione semplice, a due vie, a n vie, …• Ciclo a condizione iniziale, ciclo a condizione finale, …
Trasferimento di informazione• Trasferimento dati e istruzioni tra CPU e memoria• Trasferimento dati e istruzioni tra CPU e dispositivi di
ingresso/uscita (attraverso le relative interfacce)
15/10/2003 Introduzione ai sistemi informatici 36
Elementi di una CPU
Unità di controllo• legge le istruzioni dalla memoria e ne determina il tipo.
Unità aritmetico–logica• esegue le operazioni necessarie per eseguire le istruzioni.
Registri• memoria ad alta velocità usata per risultati temporanei e
informazioni di controllo;• il valore massimo memorizzabile in un registro è
determinato dalle dimensioni del registro;• esistono registri di uso generico e registri specifici:
• Program Counter (PC) – qual è l’istruzione successiva;• Instruction Register (IR) – istruzione in corso d’esecuzione;• …
15/10/2003
Introduzione ai sistemi informatici 19
15/10/2003 Introduzione ai sistemi informatici 37
A B
Registri
A+B
Struttura del “data path”Registri di ingresso dell’ALU
Bus di ingresso all’ALU
Registro di uscita dell’ALU
ALU
A+B
A
B
15/10/2003 Introduzione ai sistemi informatici 38
La struttura della CPU
BUS CONTROLLO
Leggi
Scrivi
BUS DATI
Dati
BUS INDIRIZZI
Indirizzo
o
M emoria centrale
o
Periferiche
... Registro
Registro Registro
MAR
MDR
PSW IR
PC
CCPPUU
Operazione Esegui Stato
ALU
Unità di control lo
15/10/2003
Introduzione ai sistemi informatici 20
15/10/2003 Introduzione ai sistemi informatici 39
Esecuzione delle istruzioni
Ciclo Fetch–Decode–Execute(leggi–decodifica–esegui)1. Prendi l’istruzione corrente dalla memoria e mettila nel
registro istruzioni (IR).2. Incrementa il program counter (PC) in modo che
contenga l’indirizzo dell’istruzione successiva.3. Determina il tipo dell’istruzione corrente (decodifica).4. Se l’istruzione usa una parola in memoria, determina dove
si trova.5. Carica la parola, se necessario, in un registro della CPU.6. Esegui l’istruzione.7. Torna al punto 1 e inizia a eseguire l’istruzione successiva.
15/10/2003 Introduzione ai sistemi informatici 40
Ciclo Fetch–Decode–Execute
Fetch
Decode
Execute
15/10/2003
Introduzione ai sistemi informatici 21
15/10/2003 Introduzione ai sistemi informatici 41
CPUIn grado di eseguire solo istruzionicodificate in linguaggio macchina
Ciclo Fetch – Decode - Execute1. Prendi l’istruzione corrente dalla memoria e
mettila nel registro istruzioni (IR) (fetch)
2. Incrementa il Program Counter (PC) in modo che contenga l’indirizzodell’istruzione successiva
3. Determina il tipo di istruzione da eseguire (decode)
4. Se l’istruzione necessita di un dato in memoria determina dove si trova e caricalo in un registro della CPU
5. Esegui l’istruzione (execute)
6. Torna al punto 1 e opera sull’istruzione successiva
15/10/2003 Introduzione ai sistemi informatici 42
Evoluzione delle CPU
42 000 00032 / 641600 — 20002000Pentium 4
24 000 00032 / 64450 — 11331999Pentium III
7 500 00032 / 64233 — 4001997Pentium II
3 100 00032 / 6460 — 2001993Pentium
1 200 00032 / 3233 — 50198980486
275 00032 / 1616 — 33198880386 SX
275 00032 / 3216 — 33198680386
134 00016 / 168 — 16198280286
29 0008 / 164.77 — 1219788086
Numero ditransistor
Dimensione registri / bus dati
Frequenza(MHz)AnnoCPU
15/10/2003
Introduzione ai sistemi informatici 22
15/10/2003 Introduzione ai sistemi informatici 43
Legge di Moore
Osservazione fatta da Gordon Moore nel 1965:
il numero dei transistor per cm2
raddoppia ogni X mesi
In origine X era 12. Correzioni successive hanno portato a fissare X=18. Questo vuol dire che c’è un incremento di circa il 60% all’anno.
15/10/2003 Introduzione ai sistemi informatici 44
# Transistor [CPU Intel]
100 000
1 000 000
10 000 000
100 000 000
1989 1991 1993 1995 1997 1999
15/10/2003
Introduzione ai sistemi informatici 23
15/10/2003 Introduzione ai sistemi informatici 45
Legge di Moore e progresso
Il progresso della tecnologia provoca un aumento del numero di transistor per cm2 e quindi per chip.Un maggior numero di transistor per chip permette di produrre prodotti migliori (sia in termini di prestazioni che di funzionalità) a prezzi ridotti.I prezzi bassi stimolano la nascita di nuove applicazioni (e.g. non si fanno video game per computer da milioni di $).Nuove applicazioni aprono nuovi mercati e fanno nascere nuove aziende.L’esistenza di tante aziende fa crescere la competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie.