Lezione 3 Prof. Angela Bonifati 28/11/2018 Lezione 3 Prof. Angela Bonifati Complemento a 2 Algebra booleana Le infrastrutture hardware Introduzione ai sistemi informatici
Esercizi sulla codifica dei numeri 28/11/2018 Esercizi sulla codifica dei numeri Introduzione ai sistemi informatici
Eseguire le seguenti conversioni: 28/11/2018 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Approfondimento: il complemento a 2 28/11/2018 Approfondimento: il complemento a 2 Introduzione ai sistemi informatici
Numeri interi in complemento a 2 28/11/2018 Numeri interi in complemento a 2 Alfabeto 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 Il complemento a 2 Metodi 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) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Complemento a 2 – Alcune osservazioni 28/11/2018 Complemento a 2 – Alcune osservazioni i numeri positivi iniziano con 0, quelli negativi con 1 data 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Diverse codifiche/interpretazioni 28/11/2018 Diverse codifiche/interpretazioni Codice Nat MS C2 0000 1000 8 -0 -8 0001 1 1001 9 -1 -7 0010 2 1010 10 -2 -6 0011 3 1011 11 -3 -5 0100 4 1100 12 -4 0101 5 1101 13 0110 6 1110 14 0111 7 1111 15 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Approfondimento: Operazioni Logiche (Booleane) 28/11/2018 Approfondimento: Operazioni Logiche (Booleane) Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 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 booleani Gli operandi booleani assumono solo due valori: Vero/Falso True/False 1/0 Sì/No … 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Operatori e tavole di verità 28/11/2018 Operatori e tavole di verità A not A 0 1 1 0 A B A and B 0 0 0 0 1 0 1 0 0 1 1 1 A B A or B 0 0 0 0 1 1 1 0 1 1 1 1 A B A xor B 0 0 0 0 1 1 1 0 1 1 1 0 A B A B 0 0 1 0 1 0 1 0 0 1 1 1 A B A nand B 0 0 1 0 1 1 1 0 1 1 1 0 A B A nor B 0 0 1 0 1 0 1 0 0 1 1 0 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 Espressioni booleane Equivalenza Due espressioni booleane sono equivalenti se hanno la medesima tavola di verità Tautologia Un’espressione booleana è una tautologia se è sempre vera Esempio: A OR (NOT A) Contraddizione Un’espressione booleana è una contraddizione se è sempre falsa Esempio: A AND (NOT A) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 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) I 28/11/2018 Introduzione ai sistemi informatici 2 Introduzione ai sistemi informatici
Proprietà degli operatori booleani 28/11/2018 Proprietà degli operatori booleani Proprietà AND (×) OR (+) Identità A × 1 = A A + 0 = A Elemento nullo A × 0 = 0 A + 1 = 1 Idempotenza A × A = A A + A = A Inverso A × (–A) = 0 A + (–A) = 1 Commutativa A × B = B × A A + B = B + A Associativa A×(B×C) = (A×B)×C A+(B+C) = (A+B)+C Distributiva A×(B+C) = (A×B)+(A×C) A+(B×C) = (A+B)×(A+C) Assorbimento A × (A + B) = A A + (A × B) = A De Morgan –(A×B)=(–A)+(–B) –(A+B)=(–A)×(–B) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 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 pixel Ogni 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 CODIFICA DI IMMAGINI Consideriamo 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 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) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 CODIFICA DI IMMAGINI Poiché una sequenza di bit è lineare, si deve definire una convenzione per ordinare i pixel della griglia Hp: assumiamo che i pixel siano ordinati dal basso verso l'alto e da sinistra verso destra 1 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 binaria 0000000 0111100 0110000 0100000 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 CODIFICA DI IMMAGINI Non sempre il contorno della figura coincide con le linee della griglia: nella codifica si ottiene un'approssimazione della figura originaria Se riconvertiamo la stringa 0000000011110001100000100000 in immagine otteniamo 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 CODIFICA DI IMMAGINI La 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
CODIFICA DI IMMAGINI CON TONI DI GRIGIO 28/11/2018 CODIFICA DI IMMAGINI CON TONI DI GRIGIO Le immagini in bianco e nero hanno delle sfumature, o livelli di intensità di grigio Per 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
CODIFICA DI IMMAGINI A COLORI 28/11/2018 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
CODIFICA DI IMMAGINI A COLORI 28/11/2018 CODIFICA DI IMMAGINI A COLORI Il numero di byte richiesti dipende dalla risoluzione e dal numero di colori che ogni pixel può assumere Es: per distinguere 256 colori sono necessari 8 bit per la codifica di ciascun pixel la codifica di un'immagine formata da 640480 pixel richiederà 2457600 bit (307200 byte) I monitor tipici utilizzano risoluzione: 640480, 1024768, 12801024 numero di colori per pixel: da 256 fino a 16 milioni Tecniche di compressione consentono di ridurre notevolmente lo spazio occupato dalle immagini 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici CODIFICA DI FILMATI Immagini in movimento sono memorizzate come sequenze di fotogrammi In genere si tratta di sequenze compresse di immagini ad esempio si possono registrare solo le variazioni tra un fotogramma e l’altro Esistono vari formati (comprendente il sonoro): mpeg (il piu’ usato) avi (microsoft) quicktime (apple) mov E’ possibile ritoccare i singoli fotogrammi 28/11/2018 Introduzione ai sistemi informatici
Introduzione ai sistemi informatici CODIFICA DI SUONI L’onda sonora viene misurata (campionata) ad intervalli regolari Minore e l’intervallo di campionamento e maggiore e la qualità del suono CD musicali: 44000 campionamenti al secondo, 16 bit per campione. Alcuni formati: .mov, .wav, .mpeg, .avi .midi usato per l’elaborazione della musica al PC 28/11/2018 Introduzione ai sistemi informatici
Le infrastrutture hardware 28/11/2018 Le infrastrutture hardware Il processore La memoria centrale La memoria di massa Le periferiche di I/O Introduzione ai sistemi informatici
Funzionalità di un calcolatore 28/11/2018 Funzionalità di un calcolatore 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Caratteristiche dell’architettura 28/11/2018 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Il calcolatore: modello concettuale 28/11/2018 Il calcolatore: modello concettuale 2. Memorizzazione 1. Elaborazione Interconnessione 3. Comunicazione (interfaccia) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Il calcolatore: modello architetturale 28/11/2018 Il calcolatore: modello architetturale 1. Elaborazione Interconnessione 2. Memorizzazione 3. Comunicazione (interfaccia) Memoria Elettronica Magnetica Collegamenti (BUS/Cavi) Unità Centrale di Elaborazione Periferiche 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Lo schema di riferimento 28/11/2018 Lo schema di riferimento 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Caratteristiche del collegamento a BUS 28/11/2018 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 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Unità centrale di elaborazione CPU 28/11/2018 Unità centrale di elaborazione CPU Introduzione ai sistemi informatici
Organizzazione tipica di un calcolatore “bus oriented” 28/11/2018 Organizzazione tipica di un calcolatore “bus oriented” Unità di controllo Unità aritmetico logica (ALU) Registri CPU Terminale Unità disco Stampante Dispositivi di I/O CPU Memoria centrale Bus 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Tre tipologie di istruzioni 28/11/2018 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) 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 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; … 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Struttura del “data path” 28/11/2018 Struttura del “data path” Registri di ingresso dell’ALU Bus di ingresso all’ALU Registro di uscita dell’ALU A L U A + B A B A B Registri A + B 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 La struttura della CPU 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Esecuzione delle istruzioni 28/11/2018 Esecuzione delle istruzioni Ciclo Fetch–Decode–Execute (leggi–decodifica–esegui) Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni (IR). Incrementa il program counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva. Determina il tipo dell’istruzione corrente (decodifica). Se l’istruzione usa una parola in memoria, determina dove si trova. Carica la parola, se necessario, in un registro della CPU. Esegui l’istruzione. Torna al punto 1 e inizia a eseguire l’istruzione successiva. 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Ciclo Fetch–Decode–Execute 28/11/2018 Ciclo Fetch–Decode–Execute Fetch Decode Execute 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Introduzione ai sistemi informatici 28/11/2018 CPU In grado di eseguire solo istruzioni codificate in linguaggio macchina Ciclo Fetch – Decode - Execute Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni (IR) (fetch) Incrementa il Program Counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva Determina il tipo di istruzione da eseguire (decode) Se l’istruzione necessita di un dato in memoria determina dove si trova e caricalo in un registro della CPU Esegui l’istruzione (execute) Torna al punto 1 e opera sull’istruzione successiva 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Dimensione registri / bus dati 28/11/2018 Evoluzione delle CPU CPU Anno Frequenza (MHz) Dimensione registri / bus dati Numero di transistor 8086 1978 4.77 — 12 8 / 16 29 000 80286 1982 8 — 16 16 / 16 134 000 80386 1986 16 — 33 32 / 32 275 000 80386 SX 1988 32 / 16 80486 1989 33 — 50 1 200 000 Pentium 1993 60 — 200 32 / 64 3 100 000 Pentium II 1997 233 — 400 7 500 000 Pentium III 1999 450 — 1133 24 000 000 Pentium 4 2000 1600 — 2000 42 000 000 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
il numero dei transistor per cm2 raddoppia ogni X mesi 28/11/2018 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. 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
# Transistor [CPU Intel] 28/11/2018 # Transistor [CPU Intel] 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici
Legge di Moore e progresso 28/11/2018 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. 28/11/2018 Introduzione ai sistemi informatici Introduzione ai sistemi informatici