Docente docente Maurizio Mancini maurizio manciniunige it Casa

  • Slides: 149
Download presentation
Docente • docente: Maurizio Mancini • maurizio. mancini@unige. it • Casa Paganini – Piazza

Docente • docente: Maurizio Mancini • maurizio. mancini@unige. it • Casa Paganini – Piazza Santa Maria in Passione, 34 16123 – Genova http: //www. casapaganini. org queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Materiale • Sito del corso: – http: //www. mauriziomancini. org/wordpress/fdi-2017 • Testo di riferimento:

Materiale • Sito del corso: – http: //www. mauriziomancini. org/wordpress/fdi-2017 • Testo di riferimento: – C. Thomas Wu, "Introduzione alla Programmazione ad Oggetti in Java" queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Primi "computer" • Circa 2400 a. C. : L’invenzione del abaco • 1621 d.

Primi "computer" • Circa 2400 a. C. : L’invenzione del abaco • 1621 d. C. : L’invenzione del regolo • 1642: Blaise Pascal crea la prima macchina meccanica per il calcolo delle somme • 1833: Macchina differenziale di Babbage queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Primi "computer" • 1843: Ada Lovelace (la prima programmatrice al mondo) pubblica le proprie

Primi "computer" • 1843: Ada Lovelace (la prima programmatrice al mondo) pubblica le proprie annotazioni • 1890: Viene utilizzata l’elettricità in un progetto di elaborazione dei dati (schede perforate) • 1900: Prima macchina automatica a schede perforate • 1945: Proposta dell’architettura “general purpose” (macchina di von Neumann) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Primo computer • 1946: Primo computer elettronico negli Stati Uniti (ENIAC) queste slide sono

Primo computer • 1946: Primo computer elettronico negli Stati Uniti (ENIAC) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Evoluzione moderna • 1952: Il computer UNIVAC prevede correttamente l’elezione del presidente americano Eisenhower

Evoluzione moderna • 1952: Il computer UNIVAC prevede correttamente l’elezione del presidente americano Eisenhower • 1967: La prima calcolatrice portatile • 1969: Nasce le rete ARPANET che darà l’origine a Internet • 1981: IBM introduce i personal computer • 1982: Computer portatili, compact disk • 1984: La prima stampante laser, il desktop publishing • 1985: Telefoni cellulari • 1993: Desktop multimediali • 1994: Trasmissione wireless (senza fili) per il computer portatili • 1998: Inizia la transizione dalle videocassette ai DVD • … queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Informatica: la scienza della rappresentazione e dell'elaborazione dell'informazione • L'informazione: la sua codifica; le

Informatica: la scienza della rappresentazione e dell'elaborazione dell'informazione • L'informazione: la sua codifica; le tecniche per raccoglierla, memorizzarla, distribuirla, trasformarla. . . • Il computer: il suo funzionamento, le possibilità che offre per la trasformazione dell’informazione, le tecniche di utilizzo. . . • La comunicazione: tra computer, tra persone (mediata dal computer) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

L’uso dell’informazione • Un computer deve: – Memorizzare l’informazione • Usando la memoria principale/secondaria

L’uso dell’informazione • Un computer deve: – Memorizzare l’informazione • Usando la memoria principale/secondaria – Elaborare l’informazione • Usando il processore – Fare l’input/output dell’informazione • Usando i dispositivi di input/output queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Tipi di informazione • Esistono vari tipi di informazione, di natura e forma diversa,

Tipi di informazione • Esistono vari tipi di informazione, di natura e forma diversa, così come rappresentazioni diverse della stessa informazione – La scelta della rappresentazione è in genere vincolata al tipo di utilizzo ed al tipo di operazioni che devono essere fatte sulle informazione stesse queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Tipi di informazione • Il computer memorizza ed elabora informazioni che devono essere rappresentate

Tipi di informazione • Il computer memorizza ed elabora informazioni che devono essere rappresentate in una forma gestibile • Rappresentazione digitale – Originariamente “rappresentazione digitale” significava: rappresentare l’informazione con le cifre 0, 1, 2, …, 8, 9 – Oggi “rappresentazione digitale” significa: rappresentare l’informazione con le cifre 0, 1 (bit): la rappresentazione binaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Rappresentazione binaria codifica rappresentazione binaria informazione decodifica Mondo queste slide sono state scritte da

Rappresentazione binaria codifica rappresentazione binaria informazione decodifica Mondo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ Computer: memorizzazione, elaborazione

Rappresentazione binaria • L’entità minima di informazione che possiamo trovare all’interno di un elaboratore

Rappresentazione binaria • L’entità minima di informazione che possiamo trovare all’interno di un elaboratore prende il nome di bit – binary digit – cifra binaria – un bit può assumere due valori (0 e 1) • Rappresentazione binaria: – solo due simboli (0 e 1) • Perché usiamo la rappresentazione binaria? • Perché le informazioni rappresentate nel sistema binario possono essere elaborate secondo vari criteri e con vari strumenti … queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Perché la rappresentazione binaria? • I due simboli (0 e 1) possono essere rappresentate

Perché la rappresentazione binaria? • I due simboli (0 e 1) possono essere rappresentate da: Due stati di polarizzazione di una sostanza magnetizzabile Due stati di carica elettrica di una sostanza queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Perché la rappresentazione binaria? • I due simboli (0 e 1) possono essere rappresentate

Perché la rappresentazione binaria? • I due simboli (0 e 1) possono essere rappresentate da: Al passaggio/non passaggio di corrente attraverso un cavo conduttore Al passaggio/non passaggio di luce attraverso un cavo ottico queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Rappresentazione binaria • In generale: la rappresentazione binaria è basato sulla presenza o assenza

Rappresentazione binaria • In generale: la rappresentazione binaria è basato sulla presenza o assenza di un fenomeno fisico (in un certo luogo, a un certo punto di tempo) • Discreta: non esiste alcuna gradazione di valore – Il fenomeno è presente oppure assente, con nessuna via di mezzo • La logica è la base del funzionamento del computer: – “Associando il valore vero con la presenza di un fenomeno e il valore falso con la sua assenza, possiamo implementare il mondo logico per mezzo del mondo fisico. ” queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dell’informazione • Per poter rappresentare un numero maggiore di informazione si usano sequenze

Codifica dell’informazione • Per poter rappresentare un numero maggiore di informazione si usano sequenze di bit • Per esempio, per rappresentare quattro informazioni diverse possiamo utilizzare due bit che ci permettono di ottenere quattro configurazione distinte 00 01 10 11 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dell’informazione • Il processo secondo cui si fa corrispondere ad un’informazione una sequenze

Codifica dell’informazione • Il processo secondo cui si fa corrispondere ad un’informazione una sequenze di bit prende il nome codifica dell’informazione rappresentazione binaria informazione decodifica queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica binaria • Esempio - un esame può avere quattro possibili esiti: ottimo, discreto,

Codifica binaria • Esempio - un esame può avere quattro possibili esiti: ottimo, discreto, sufficiente, insufficiente • Codifico (due bit): – – ottimo con discreto con sufficiente con insufficiente con queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 00 01 10 11

Codifica binaria • Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio,

Codifica binaria • Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione • Codifico (tre bit): – – – – nero con 000 rosso con blu con giallo con verde con viola con grigio con arancione con queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 001 010 011 100 101 110 111

Codifica binaria • Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio,

Codifica binaria • Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione • Codifico (tre bit): – – – – nero con 000 rosso con blu con giallo con verde con viola con grigio con arancione con queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 001 010 011 100 101 110 111

Codifica binaria • • Con 2 bit si codificano 4 informazioni (22) Con 3

Codifica binaria • • Con 2 bit si codificano 4 informazioni (22) Con 3 bit si codificano 8 informazioni (23) … Con N bit si possono codificare 2 N informazioni differenti queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica binaria • Se il problema è quello di dover rappresentare M informazioni differenti

Codifica binaria • Se il problema è quello di dover rappresentare M informazioni differenti si deve selezionare il numero di N bit in modo tale che 2 N M • Esempio: per rappresentare 40 informazioni differenti devo utilizzare 6 bit perché 26 = 64 – 5 bit non sono sufficienti perché 25 = 32 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica binaria • Esiste una particolare aggregazione di bit che è costituita da 8

Codifica binaria • Esiste una particolare aggregazione di bit che è costituita da 8 bit (28 = 256 informazioni) e prende il nome di byte • Di solito si usano i multipli del byte Kilo KB 210 (~ un migliaio, 1024 byte) Mega MB 220 (~ un milione, 1 KB x 1024) Giga GB 230 (~ un miliardo, 1 MB x 1024) Tera TB 240 (~ mille miliardi, 1 GB x 1024) Peta PB 250 (~ miliardo miliardi, 1 TB x 1024) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei caratteri • Alfabeto anglosassone – – – Lettere maiuscole e minuscole Cifre

Codifica dei caratteri • Alfabeto anglosassone – – – Lettere maiuscole e minuscole Cifre numeriche (0, 1, 2, …, 9) Simboli di punteggiatura (, . ; : ! “ ? …) Segni matematici (+, -, {, [, >, …) Alcuni caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, …) può essere codificato usando un byte (220 caratteri circa) • Il metodo di codifica più diffuso tra i produttori di hardware e di software prende il nome Extended ASCII (ASCII = American Standard Code for Information Interchange) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei caratteri (Extended ASCII) Extended ASCII Simbolo 0000 NUL (spazio bianco) … …

Codifica dei caratteri (Extended ASCII) Extended ASCII Simbolo 0000 NUL (spazio bianco) … … 00111110 > 00111111 ? 01000000 @ 01000001 A 01000010 B 01000011 C … … queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle parole • Parole sono sequenze di caratteri • Codifica della parole cane

Codifica delle parole • Parole sono sequenze di caratteri • Codifica della parole cane 01100011 01100001 01101110 01100101 c a n e • Il problema inverso: data una sequenza di bit, il testo che essa codifica può essere ottenuto nel modo seguente: – Si divide la sequenza in gruppi di otto bit (byte) – Si determina il carattere corrispondente ad ogni byte queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei caratteri • Abbiamo considerato il codice: – Extended ASCII: 8 bit per

Codifica dei caratteri • Abbiamo considerato il codice: – Extended ASCII: 8 bit per carattere – È stato basato dal codice ASCII: 7 bit per carattere • Il codice ASCII non include à, è, é, ì, ò, ù, per esempio • Un altro codice: – UNICODE, 16 bit per carattere (Extended ASCII + caratteri etnici) – 216 = 65. 536 simboli queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dell’informazione • Quanti bit si devono utilizzare per rappresentare 300 informazioni distinte? •

Codifica dell’informazione • Quanti bit si devono utilizzare per rappresentare 300 informazioni distinte? • Dati 7 bit per la codifica, quante informazioni distinte si possono rappresentare? • Quanti byte occupa la parola “psicologia” se la si codifica utilizzando il codice Extended ASCII? queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Sistemi di supporto alla progettazione CAD/CAM • Campo medico (per

Codifica delle immagini • Sistemi di supporto alla progettazione CAD/CAM • Campo medico (per esempio, i sistemi di TAC o di ecografia) • Telecamere e videoregistratori professionali • Effetti speciali i film, televisione • Telefoni cellulari • Ecc. queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Campionamento spaziale • Esempio: un’immagine in bianco e nero Suddividiamo l’immagine mediante una griglia

Campionamento spaziale • Esempio: un’immagine in bianco e nero Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Quantizzazione cromatica • Ogni quadratino derivante da tale suddivisione prende il nome di pixel

Quantizzazione cromatica • 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 in cui il bianco è predominante – Il simbolo “ 1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero è predominante queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini 0 0 0 0 0 1 1 0 queste slide sono

Codifica delle immagini 0 0 0 0 0 1 1 0 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 1 1 1 0 0 0 0 0 0 0 0

Codifica delle immagini 0 0 0 0 0 1 1 1 0 0 0

Codifica delle immagini 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 Poiché una sequenza di bit è lineare, è necessario definire convenzioni per ordinare la griglia dei pixel in una sequenza. Assumiamo che i pixel siano ordinati dal basso verso l’alto e da sinistra verso destra 00000 0011111000 0011100000 0001000000 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini Non sempre il contorno della figura coincide con le linee della

Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia. Quella che si ottiene nella codifica è un’approssimazione della figura originaria Se riconvertiamo la sequenza di stringhe 00000 0011111000 0011100000 0001000000 in immagine otteniamo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini La rappresentazione sarà più fedele all’aumentare del numero di pixel, ossia

Codifica delle 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 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Assegnando un bit ad ogni pixel è possibile codificare solo

Codifica delle immagini • Assegnando un bit ad ogni pixel è possibile codificare solo immagini in bianco e nero • Per codificare le immagini con diversi livelli di grigio oppure a colori si usa la stessa tecnica: per ogni pixel viene assegnata una sequenza di bit – Per esempio, se utilizziamo quattro bit possiamo rappresentare 24 = 16 livelli di grigio o 16 colori diversi – Mentre con otto bit ne possiamo distinguere 28 = 256, ecc. queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

L’uso del colore • Il colore può essere generato componendo 3 colori: red (rosso),

L’uso del colore • Il colore può essere generato componendo 3 colori: red (rosso), green (verde), blue (blu) • Ad ogni colore si associa una possibile sfumatura • Usando 2 bit per ogni colore si possono ottenere 4 sfumature per il rosso, 4 per il blue e 4 per il verde che, combinate insieme, danno origine a 64 colori diversi – Ogni pixel per essere memorizzato richiede 6 bit queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Modello RGB • Usando 8 bit per ogni colore si possono ottenere: – 256

Modello RGB • Usando 8 bit per ogni colore si possono ottenere: – 256 sfumature per il rosso … – … 256 per il verde e … – … 256 per il blu … che, combinate insieme, danno origine a circa 16, 8 milioni di colori diversi (precisamente 16. 777. 216 colori) • Ogni pixel per essere memorizzato richiede 3 byte queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

L’uso del colore 1 bit 3 bit 1 byte 3 byte queste slide sono

L’uso del colore 1 bit 3 bit 1 byte 3 byte queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

L’uso del colore • Esempi: – – – – 00000000 nero 11111111 bianco 1111

L’uso del colore • Esempi: – – – – 00000000 nero 11111111 bianco 1111 00000000 rosso 11111111 0000 giallo 0000 1111 0000 verde 0000 11111111 cyan 00000000 1111 blu 1111 0000 1111 viola – 10000000 grigio (un certo tonalità di …) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Esempio: – Per rappresentare 256 colori sono necessari otto bit

Codifica delle immagini • Esempio: – Per rappresentare 256 colori sono necessari otto bit per la codifica di ciascun pixel – La codifica di un’immagine di 256 colori, formata da 640 x 480 pixel, richiederà 640 x 480 = 307. 200 byte (2. 457. 600 bit) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Risoluzione • Il numero di pixel presenti sullo schermo (colonne x righe) prende il

Risoluzione • Il numero di pixel presenti sullo schermo (colonne x righe) prende il nome di risoluzione 4: 3 16: 9 640 480 640 360 800 600 720 405 1024 768 848 480 1280 1024 960 540 1600 1200 1024 576 1280 720 1366 768 1600 900 HD+ 1920 1080 Full HD queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ n. HD q. HD HD

Codifica delle immagini • Le immagini codificate pixel per pixel sono dette immagini in

Codifica delle immagini • Le immagini codificate pixel per pixel sono dette immagini in grafica bitmap – Le immagini bitmap occupano parecchio spazio • Esistono delle tecniche di compressione che permettono di ridurre le dimensioni – Ad esempio, se più punti vicini di un’immagine assumono lo stesso colore, si può memorizzare la codifica del colore una sola volta e poi ricordare per quante volte deve essere ripetuta queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Un esempio concreto - codifica Run-Length Encoding (RLE) nel contesto

Codifica delle immagini • Un esempio concreto - codifica Run-Length Encoding (RLE) nel contesto delle immagini in bianco e nero: • Usa numeri binari per specificare la lunghezza della prima sequenza di 0 (bianco) • … poi quella della sequenza di 1 (nero) • … poi quella della successiva sequenza di 0 • … e così via queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • I formati come GIF, JPEG e PNG sono formati compressi

Codifica delle immagini • I formati come GIF, JPEG e PNG sono formati compressi – Per esempio: rispetto al bitmap, il formato JPEG dedica meno bit alla descrizione delle sfumatura cromatiche di un’immagine – Un'immagine in JPEG può arrivare ad occupare 1/10 della corrispondente immagine bitmap queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Distinzione tra compressione lossless e compressione lossy – Lossless: compressione

Codifica delle immagini • Distinzione tra compressione lossless e compressione lossy – Lossless: compressione senza perdita di informazioni • Dalla versione compressa, si può ricostruire perfettamente la versione non-compressa • Per esempio, GIF, PNG – Lossy: compressione con perdita di informazioni • Dalla versione compressa, non è possibile recuperare la versione originale • Per esempio, JPEG: nostri occhi distinguono bene variazioni di luminosità ma non tonalità – JPEG dedica meno bit alla tonalità queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • JPEG: livelli di compressione 30, 2 KB 6, 8 KB

Codifica delle immagini • JPEG: livelli di compressione 30, 2 KB 6, 8 KB 3, 2 KB queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica di immagini in movimento • Un filmato è una sequenza di immagini statiche

Codifica di immagini in movimento • Un filmato è una sequenza di immagini statiche (dette fotogrammi o frame) • Per codificare un filmato si “digitalizzano” i suoi fotogrammi • Esempio: – 30 immagini ad alta risoluzione al secondo – 30 imm. /sec x 2. 457. 600 bit/imm. = 73. 728. 000 bit/sec – Un minuto richiederebbe 60 sec x 73. 728. 000 = 4. 423. 680. 000 bit (5. 529. 600 byte, circa 5. 400 KB) • Esempi di formati per il video: AVI, MOV • Compressione: MPEG (Moving Picture Expert Group), memorizza solo la differenza tra fotogrammi consecutivi queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica delle immagini • Quanti byte occupa un’immagine di 20 x 40 pixel in

Codifica delle immagini • Quanti byte occupa un’immagine di 20 x 40 pixel in bianco e nero? • Quanti byte occupa un’immagine di 100 x 100 pixel a 256 colori? • Se un’immagine a 16. 777. 216 di colori occupa 2400 byte, da quanti pixel sarà composta? queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei suoni Pressione del suono • Fisicamente un suono è rappresentato come un’onda

Codifica dei suoni Pressione del suono • Fisicamente un suono è rappresentato come un’onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora) Tempo • Sull’asse delle ascisse viene rappresentato il tempo e sull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei suoni • Un’idea chiave: il suono è continuo (la pressione varia senza

Codifica dei suoni • Un’idea chiave: il suono è continuo (la pressione varia senza salti) • È possibile ottenere una registrazione analogica continua dell’onda – Una registrazione analogica memorizza ogni variazione dell’onda originale (almeno in linea di principio) • La rappresentazione digitale di un suono funziona in un modo diverso queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Campionamento Pressione del suono • Si effettuano dei campionamenti sull’onda (cioè si misura il

Campionamento Pressione del suono • Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti Tempo • Quanto più frequentemente il valore di intensità dell’onda viene campionato, tanto più precisa sarà la sua rappresentazione • Il numero di campioni raccolti per ogni secondo definisce la frequenza di campionamento che si misura in Hertz (Hz, numero di campionamento ogni secondo – di solito 44. 100 Hz) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Quantizzazione Pressione del suono • La sequenza dei valori numerici ottenuti dai campioni può

Quantizzazione Pressione del suono • La sequenza dei valori numerici ottenuti dai campioni può essere facilmente codificata con sequenze di bit Un’approssimazione! Tempo • La rappresentazione è tanto più precisa quanto maggiore è il numero di bit utilizzati per codificare l’informazione estratta in fase di campionamento queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Quantizzazione Pressione del suono • Per esempio: con 1 bit 1 Tempo 0 Pressione

Quantizzazione Pressione del suono • Per esempio: con 1 bit 1 Tempo 0 Pressione del suono • Per esempio: con 2 bit 11 10 00 01 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ Tempo

Esempio • Se volessimo codificare la musica di qualità CD dovremmo: – Usare due

Esempio • Se volessimo codificare la musica di qualità CD dovremmo: – Usare due registrazioni corrispondenti a due microfoni distinti – Campionare il segnale musicale producendo 44. 100 campioni al secondo – Per ogni campione (che è un numero) si usano 16 bit (qualità CD) – Per cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a 2 x 44. 100 campioni x 16 bit/campione = 1. 414. 200 bit (circa 176. 775 byte, o 173 KB) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei suoni ADC: da analogico a digitale Convertitore analogico-digitale queste slide sono state

Codifica dei suoni ADC: da analogico a digitale Convertitore analogico-digitale queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 01011010 11110000 1010000010 DAC: da digitale ad analogico Convertitore digitale-analogico

Codifica dei suoni • Codifiche standard – MP 3 , WAV (MS-Windows), AIFF (Audio

Codifica dei suoni • Codifiche standard – MP 3 , WAV (MS-Windows), AIFF (Audio Interchange File Format, Apple), MIDI • MP 3 – Variante MPEG per suoni – Lossy – Grande diffusione, molto efficiente (fattore di compressione circa 5: 1 - 10: 1, circa 1 -2 MB ogni minuto) • MIDI: codifica le note e gli strumenti che devono eseguirle – Efficiente, ma solo musica, non voce queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei suoni • Quanto spazio occupa un suono (non in stereo) della durata

Codifica dei suoni • Quanto spazio occupa un suono (non in stereo) della durata di 10 secondi campionato a 100 Hz (100 campioni al secondo), in cui ogni campione occupa 4 byte? queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei numeri (il sistema decimale) • La numerazione decimale quindi utilizza una notazione

Codifica dei numeri (il sistema decimale) • La numerazione decimale quindi utilizza una notazione posizionale basata sul numero 10 • La notazione posizionale può essere utilizzata in qualunque altro sistema di numerazione con base diversa di 10 – Base: il numero di cifre disponibile nel sistema – In base 10, usiamo le dieci cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei numeri (il sistema binario) • Nel sistema di numerazione binario (base 2)

Codifica dei numeri (il sistema binario) • Nel sistema di numerazione binario (base 2) i numeri vengono codificati utilizzando le due cifre 0 e 1 • Nel sistema di numerazione ottale (base 8) i numeri vengono codificati utilizzando le otto cifre 0, 1, 2, 3, 4, 5, 6, 7 • Nel sistema di numerazione esadecimale (base 16) i numeri vengono codificati utilizzando le sedici cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Codifica dei numeri (il sistema binario) • In analogia con il caso decimale la

Codifica dei numeri (il sistema binario) • In analogia con il caso decimale la sequenza cn cn 1 cn-2 … c 1 c 0 (ogni “ci” è la cifra “ 0” o la cifra “ 1”) rappresenterà il numero La cifra meno significativa La cifra più significativa queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ c 0 x 20 + c 1 x 21 + c 2 x 22 + … + cn-1 x 2 n-1 + cn x 2 n

Codifica dei numeri (il sistema binario) • Caso generale: considerare un sistema con base

Codifica dei numeri (il sistema binario) • Caso generale: considerare un sistema con base b • La sequenza cn cn-1 cn-2 … c 1 c 0 (ogni “ci” è una cifra del sistema) rappresenterà il numero La cifra meno significativa La cifra più significativa queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ c 0 x b 0 + c 1 x b 1 + c 2 x b 2 + … + cn-1 x bn-1 + cn x bn

Codifica dei numeri (il sistema binario) • Esempio: la sequenza “ 1011” in base

Codifica dei numeri (il sistema binario) • Esempio: la sequenza “ 1011” in base 2 denota il numero 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 (in base 10) • Esempio: la sequenza “ 10011” in base 2 denota il numero 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 19 (in base 10) • Per evitare ambiguità si usa la notazione 10112 = 1110, 100112 = 1910 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Altre basi: ottale, esadecimale • Sistema ottale – Utilizza una notazione posizionale basata su

Altre basi: ottale, esadecimale • Sistema ottale – Utilizza una notazione posizionale basata su otto cifre (0, 1, …, 7) e sulle potenze di 8 – Esempio: 1038 = 1 x 82 + 0 x 81 + 3 x 80 = 6710 • Sistema esadecimale – Utilizza una notazione posizionale basata su sedici cifre (0, 1, …, 9, A, B, C, D, E, F) e sulle potenze di 16 – Esempio: 10316 = 1 x 162 + 0 x 161 + 3 x 160 = 25910 – Esempio: AC 416 = 10 x 162 + 12 x 161 + 4 x 160 = 275610 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Conversione dalla base 10 alla base 2 • Dato un numero N rappresentato in

Conversione dalla base 10 alla base 2 • Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo cm cm-1 cm-2 … c 1 c 0 (le “ci” sono cifre binarie) • Per convertire un numero in base dieci nel corrispondente in base due si devono: – Trovare i resti delle divisioni successive del numero N per due – Leggere i resti in ordine inverso per ottenere la rappresentazione binaria di N (dalla cifra più significativa alla cifra meno significativa) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Conversione dalla base 10 alla base 2 • Esempio: il numero 610: 6/2 =

Conversione dalla base 10 alla base 2 • Esempio: il numero 610: 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 • Leggendo i resti dal basso verso l’alto, si ha che la rappresentazione binaria del numero 610 è 1102 • Per una corretta verifica basta riconvertire il risultato alla base 10 – Cioè, calcolare 1 x 22 + 1 x 21 + 0 x 20 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Conversione dalla base 10 alla base 2 • Perché 1102 = 610 ? 6/2

Conversione dalla base 10 alla base 2 • Perché 1102 = 610 ? 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 0 x 20 + 1 x 21 + 1 x 22 =6 1 x 22 + 1 x 21 + 0 x 20 2 1 x 21 + 1 x 20 2 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ = 1 x 21 + 1 x 20 con resto 0 = 1 x 20 con resto 1 = 0 con resto 1

Conversione dalla base 10 alla base 2 • Esempio: il numero 34510: 345/2 =

Conversione dalla base 10 alla base 2 • Esempio: il numero 34510: 345/2 = 172 resto 1 172/2 = 86 resto 0 86/2 = 43 resto 0 43/2 = 21 resto 1 21/2 = 10 resto 1 10/2 = 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 • Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’unità), si ha che rappresentazione binaria del numero 34510 è 1010110012 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Conversione dalla base 2 alla base 10 • Sia cm cm-1 cm-2 … c

Conversione dalla base 2 alla base 10 • Sia cm cm-1 cm-2 … c 1 c 0 un numero rappresentato in base 2, usiamo: cm x 2 m + cm-1 x 2 m-1 + cm-2 x 2 m-2 + … + c 1 x 21 + c 0 x 20 = N 10 • Esempio: 1010110012 1 x 28 + 0 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 256 + 64 + 16 + 8 + 1 = 34510 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Operazioni su numeri binari • Vediamo solo il caso della addizione nella codifica binaria:

Operazioni su numeri binari • Vediamo solo il caso della addizione nella codifica binaria: – Si mettono in colonna i numeri da sommare – Si calcola il riporto ogni volta che la somma parziale supera il valore 1 • Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ con riporto 0 con riporto 1

Operazioni su numeri binari • Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 1 •

Operazioni su numeri binari • Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 1 • Esempi: 1+ 1= 10 101+ 11= 1000 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 10110101+ 1000110= 11111011 111+ 11= 1010

Codici a lunghezza fissa • Se si usa un numero prestabilito di cifre si

Codici a lunghezza fissa • Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissa – Normalmente i computer usano 32 o 64 bit per rappresentare i numeri • In questo modo si pone anche un limite al numero massimo rappresentabile • Esempio: qual è il numero più grande rappresentabile con 4 cifre? – – In base 10: In base 2: 1111 In base 16: In base 8: 7777 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 9999 FFFF (=1510) (=6553510) (=409510)

Codici a lunghezza fissa • Numeri maggiori di quello massimo rappresentabile causano problemi di

Codici a lunghezza fissa • Numeri maggiori di quello massimo rappresentabile causano problemi di overflow – Ovvero per essere rappresentati richiedono più cifre di quelle a disposizione • Esempio: 4 cifre – – In base 10: In base 2: In base 16: In base 8: queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 9999 + 1 1111 + 1 FFFF + 1 7777 + 1 = 1000010 = 100002 (=1610) = 1000016 (=6553610) = 100008 (=409610)

Codici a lunghezza fissa • In generale, con N cifre a disposizione e base

Codici a lunghezza fissa • In generale, con N cifre a disposizione e base b il più grande numero (intero positivo) rappresentabile si può esprimere come b. N – 1 • Esempio: N=4 – – In base 10: In base 2: In base 16: In base 8: queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 9999 1111 FFFF 7777 = 104 - 1 = 24 - 1 = 164 - 1 = 84 - 1

Codici a lunghezza fissa • Esempio di overflow nel sistema binario dovuto a operazioni

Codici a lunghezza fissa • Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche: – 5 + 4 = 9 (in sistema decimale) – Abbiamo usato solo un cifre decimale per il risulto • Ricordiamo: 510 = 1012 101+ 100= 1001 (in sistema binario) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ , 410 = 1002 Errore: overflow (non può essere codificato 910 = 10012 con tre bit)

Codifica dei numeri • Codificare il numero 13210 nella corrispondente rappresentazione binaria • Ordinare

Codifica dei numeri • Codificare il numero 13210 nella corrispondente rappresentazione binaria • Ordinare in modo crescente i seguenti numeri: – – – 10410 128 100112 100002 1001110 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Rappresentazione dei numeri • In realtà, una semplice codifica binaria come quella discussa fino

Rappresentazione dei numeri • In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi: – Numeri negativi – Numeri con la virgola • Per questi numeri vengono utilizzate delle rappresentazioni differenti – Per esempio “complemento a due” per rappresentare i numeri negativi queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Architettura dei computer • Un computer deve: – elaborare l’informazione • usando il processore

Architettura dei computer • Un computer deve: – elaborare l’informazione • usando il processore (Central Processing Unit - CPU) – memorizzare l’informazione • usando la memoria principale (RAM) • usando la memoria secondaria – fare l’input/output dell’informazione • usando i dispositivi di input/output queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Hardware + Software queste slide sono state scritte da J. Sproton: http: //www. di.

Hardware + Software queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Hardware e software • Hardware: – Struttura fisica (architettura) del calcolatore formata da parti

Hardware e software • Hardware: – Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettroniche • Software: – Programmi di base per la gestione del sistema – Programmi applicativi per l’uso del sistema (possono usare i programmi di base) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Hardware • In un computer possiamo distinguere quattro unità funzionali: – – Il processore

Hardware • In un computer possiamo distinguere quattro unità funzionali: – – Il processore La memoria principale La memoria secondaria I dispositivi di input (inserimento)/output (restituzione di risultati) • Il processore e la memoria principale costituiscono l’unità centrale del computer queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio RAM CPU queste slide sono state scritte da J. Sproton: http: //www. di.

Esempio RAM CPU queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

CPU (processore) Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria

CPU (processore) Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di.

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di.

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di.

Esempio: Motorola 6502 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Componenti della CPU • La CPU non è un unico componente ma è costituita

Componenti della CPU • La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Unità aritmetico logica Registri Generali 8 o 16 Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità di controllo L’unità di controllo è la parte più importante del processore •

Unità di controllo L’unità di controllo è la parte più importante del processore • Esegue le istruzioni dei programmi • Coordina le attività del processore • Controlla il flusso delle istruzioni tra il processore e la memoria Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Unità aritmetico logica Registri Generali 8 o 16 Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità di controllo • Svolge la sua attività in modo ciclico (implementa il ciclo

Unità di controllo • Svolge la sua attività in modo ciclico (implementa il ciclo macchina) • Fetch istruzione (preleva dalla memoria principale la “prossima” istruzione da eseguire) • Decodifica istruzione • Fetch dati (preleva gli operandi specificati nell’istruzione) • Esecuzione istruzione • Restituzione risultato queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità di controllo • L’esecuzione comporta l’invio di comandi opportuni all’unità relativa – Calcoli

Unità di controllo • L’esecuzione comporta l’invio di comandi opportuni all’unità relativa – Calcoli Unità aritmetico logica – Lettura/scrittura dati memoria – Acquisizione/stampa dispositivi di I/O queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Bus interno: permette la comunicazione tra i componenti del processore Bus Interno REGISTRI Program

Bus interno: permette la comunicazione tra i componenti del processore Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Unità aritmetico logica Registri Generali 8 o 16 Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Bus interno queste slide sono state scritte da J. Sproton: http: //www. di. unito.

Bus interno queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Registri • I registri sono delle unità di memoria estremamente veloci • Sono usate

Registri • I registri sono delle unità di memoria estremamente veloci • Sono usate per mantenere le informazioni di necessità immediata per il processore • Le dimensioni dei registri variano da 16, 32, 64 bit Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Unità aritmetico logica Registri Generali 8 o 16 Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Registri • Program Counter – contiene l'indirizzo della "prossima" istruzione da eseguire è memorizzato

Registri • Program Counter – contiene l'indirizzo della "prossima" istruzione da eseguire è memorizzato nel registro Program Counter • normalmente le istruzioni di un programma sono memorizzati in sequenza nella memoria principale • il Program Counter deve essere aumentato (di 1) ogni ciclo (in modo tale che corrisponde all’indirizzo della prossima istruzione da eseguire) • Registri Generali – i registri che possono essere utilizzati come memorie temporanee per svolgere le operazioni matematiche queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità aritmetico logica Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo

Unità aritmetico logica Bus Interno REGISTRI Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Unità aritmetico logica Registri Generali 8 o 16 Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità aritmetico logica • L’Unità aritmetico logica (ALU) si occupa di eseguire le operazioni

Unità aritmetico logica • L’Unità aritmetico logica (ALU) si occupa di eseguire le operazioni di tipo aritmetico/logico – Somme, sottrazioni, …, confronti, … • Preleva gli operandi delle operazioni dai Registri Generali • Deposita il risultato delle operazioni nei Registri Generali • Insieme all’unità di controllo collabora al completamento di un ciclo macchina queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Clock • Abbiamo visto che il processore svolga la sua attività in modo ciclico

Clock • Abbiamo visto che il processore svolga la sua attività in modo ciclico – Ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina) • Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Clock • Consideriamo una ipotesi semplificata: ogni battito di clock corrisponde esattamente l’esecuzione di

Clock • Consideriamo una ipotesi semplificata: ogni battito di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina – Per esempio: il clock che ha circa 66 milioni di battiti per secondo il computer può eseguire circa 66 milioni di operazioni per secondo • In realtà, questa ipotesi non è sempre vero – L’esecuzione di una istruzione può richiedere più battiti di clock – Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverse – Dipende dal tipo di processore - per esempio: • Il processore Intel Core duo richiede 3 battiti del clock per calcolare la moltiplicazione di due numeri queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Clock • La frequenza del clock si misura in: – MHz (1 MHz corrisponde

Clock • La frequenza del clock si misura in: – MHz (1 MHz corrisponde circa a un milione di istruzioni elementari/battiti al secondo) – GHz (1 GHz corrisponde circa a un miliardo di istruzioni elementari/battiti al secondo) • Per esempio: se acquistate un computer e vi dicono che ha un processore a 4 GHz – Vuol dire che il processore è in grado di eseguire (circa) 3 miliardi di istruzioni al secondo • Esempi: – Intel® Core™ i 7 -6700 K Processor 4. 2 GHz – AMD ATHLON™ X 4 QUAD-CORE 870 K 4. 1 GHz queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria

Memoria principale Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale queste slide sono state scritte da J. Sproton: http: //www. di. unito.

Memoria principale queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Linguaggio macchina • il linguaggio in cui si scrivono i programmi per il processore

Linguaggio macchina • il linguaggio in cui si scrivono i programmi per il processore prende il nome di linguaggio macchina – una sequenza di tali istruzioni prende il nome di programma in linguaggio macchina • il ruolo del processore: – eseguire programmi in linguaggio macchina • ogni tipo di processore è in grado di eseguire un numero di solito limitato di istruzioni macchina – normalmente circa un centinaio – essendo poche vengono eseguite molto velocemente queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Programmi in linguaggio macchina • come tutte le altre informazioni contenute in un computer

Programmi in linguaggio macchina • come tutte le altre informazioni contenute in un computer i programmi in linguaggio macchina sono sequenze di 1 e 0: 10001111 1010 00000011 1100 10101011 11111110 11001111 00000110 00000100 00000111 11000101 10111001 11111101 01011111 11001111 00101011 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ ADD R 1 R 2 R 3

Istruzioni macchina • tre tipi di istruzioni macchina: – operazioni aritmetico-logiche: • per esempio,

Istruzioni macchina • tre tipi di istruzioni macchina: – operazioni aritmetico-logiche: • per esempio, la somma di due numeri, il confronto tra due numeri per stabilire se essi sono uguali • bisogna indicare dove si trovano i dati su cui operare – trasferimento dati: • indicano quali dati trasferire e in quale direzione • per esempio, dalla memoria al CPU o vice versa, dall'esterno all'interno (input) o vice versa (output) • anche bisogna indicare dove si trovano i dati su cui operare – controllo: • permettono modificare il flusso di esecuzione delle istruzione (per esempio, sulla base di eventi esterni o risultati intermedi ottenuti dalle istruzioni precedenti) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Operazioni aritmetico-logiche • esempio: • add: addizione • sub: sottrazione • and/or/not: congiunzione/disgiunzione/negazione logica

Operazioni aritmetico-logiche • esempio: • add: addizione • sub: sottrazione • and/or/not: congiunzione/disgiunzione/negazione logica A B A and B A or B A not A 0 0 0 0 1 1 1 0 0 1 1 1 1 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Trasferimento e controllo • trasferimento, esempi: – load: leggere dalla memoria principale – store:

Trasferimento e controllo • trasferimento, esempi: – load: leggere dalla memoria principale – store: scrivere alla memoria principale • controllo, esempi – if_eq: se una condizione è vero, proseguire in un certo modo, altrimenti proseguire in un altro modo – goto: saltare a un’istruzione queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio Codice istruzione Argomento 1 Argomento 2 Argomento 3 • ADD R 1 R

Esempio Codice istruzione Argomento 1 Argomento 2 Argomento 3 • ADD R 1 R 2 R 3 – recuperare i valori memorizzati nei registri R 2 e R 3 e inserire il risultato della somma dei valori nel registro R 1 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Esempio Codice istruzione Argomento 1 Argomento 2 • LOAD 3568 R 2 – operazione

Esempio Codice istruzione Argomento 1 Argomento 2 • LOAD 3568 R 2 – operazione di lettura dalla memoria: richiede la lettura del valore contenuto nella con indirizzo 3568 e il suo caricamento nel registro R 2 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) Processore Insieme al processore forma l’Unità Centrale di un elaboratore 0

Memoria principale (RAM) Processore Insieme al processore forma l’Unità Centrale di un elaboratore 0 1 2 3 4 5 Memoria principale Unità centrale Sequenza di celle: – ad ogni cella è associato un indirizzo (un numero progressivo a partire da 0) Contiene i programmi e i dati usati dal processore N queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Random Access Memory – Si può accedere direttamente alle varie

Memoria principale (RAM) • Random Access Memory – Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo – Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza – Il termine “random” (casuale) indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria (il computer può accedere in qualsiasi momento a qualsiasi locazione) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Alcune proprietà della memoria principale – Volatile: è fatta di

Memoria principale (RAM) • Alcune proprietà della memoria principale – Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto – (Relativamente) costosa (costo per bit) • Dalla lezione 1: i costi sono in diminuzione – … queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Alcune proprietà della memoria principale – … – Veloce: per

Memoria principale (RAM) • Alcune proprietà della memoria principale – … – Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10 -9 sec. ) • Tempo di accesso: il tempo tra – Il momento in cui il processore specifica l’indirizzo della cella sui cui vuole operare e dà il comando di lettura/scrittura – Il momento in cui l’operazione è terminata (il dato letto e disponibile oppure il dato scritto è in memoria) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Tutte le celle hanno la stessa dimensione: 8, 16, 32,

Memoria principale (RAM) • Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit • Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura • Una cella può contenere (parte di) un dato o un’istruzione Contenuto (in questo esempio, 8 bit) Indirizzi 0 1 2 3 4 5 N queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Ogni calcolatore usa un numero di bit costante per rappresentare

Memoria principale (RAM) • Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzi • Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio di indirizzamento – Se si usano 16 bit per codificare gli indirizzi, si potranno indirizzare fino a 65. 536 celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte) – Con 32 bit si potranno indirizzare fino a 4. 294. 967. 296 celle (circa 4 GB di memoria) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria principale (RAM) • Le unità di misura della memoria RAM variano a seconda

Memoria principale (RAM) • Le unità di misura della memoria RAM variano a seconda del tipo di calcolatore e vengono espresse in GB • Nei PC generalmente si va dai 4 GB ai 32 GB • La RAM, fino ad un certo limite, è espandibile (slot di espansione) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria ROM • Memoria di sola lettura (ROM) – – – fa parte della

Memoria ROM • Memoria di sola lettura (ROM) – – – fa parte della memoria principale non può essere modificata a differenza della RAM non è volatile veloce quasi come la RAM contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria cache • Memoria cache – Livello di memoria intermedio tra i registri e

Memoria cache • Memoria cache – Livello di memoria intermedio tra i registri e la RAM • Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta) • Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer) – È molto più costosa della RAM – In genere è interna al processore (cache L 1), ma esiste anche una cache secondaria (L 2) esterna al processore – Le sue dimensione tipiche vanno dai 1 MB a 8 MB queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Buffer • Buffer – Piccole parti di RAM con funzioni di memoria temporanea –

Buffer • Buffer – Piccole parti di RAM con funzioni di memoria temporanea – Usati per il passaggio delle informazioni da un programma o dispositivo ad un altro – In Windows si parla di Clipboard, memoria temporanea usata per esempio per le operazioni di Copia e Incolla Foglio elettronico queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ Clipboard (buffer) Programma di videoscrittura

Tecnologie costruttive • SRAM (RAM statiche): – Costi elevati – Tempi di accesso ridotti

Tecnologie costruttive • SRAM (RAM statiche): – Costi elevati – Tempi di accesso ridotti – Normalmente usate per la memoria cache • DRAM (RAM dinamiche): – Tempi di accesso più della SRAM (40 -60 nanosecondi) – Normalmente usate per la memoria principale – SDRAM: DRAM sincrono, un clock (che ha una frequenza misurata in MHz) sincronizza l’accesso alla memoria – DDR: Double Data Rate, raddoppia la velocità di trasferimento di dati tra la memoria e il processore • VRAM (RAM video): usate per la gestione delle immagini queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Bus esterno • Bus esterno: permette la comunicazione tra il processore e gli altri

Bus esterno • Bus esterno: permette la comunicazione tra il processore e gli altri componenti del computer CPU Interfaccia RAM dati indirizzi controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Bus esterno RAM CPU Bus Interno REGISTRI Unità di controllo … Unità aritmetico logica

Bus esterno RAM CPU Bus Interno REGISTRI Unità di controllo … Unità aritmetico logica queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ … 1000 1001 1002 1003 1004 … 3568 … 4809 … LOAD 4809 R 2 LOAD 3568 R 1 ADD R 1 R 2 STORE R 1 3568 GOTO 1001 25 30 Interfaccia

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria secondaria • La memoria principale non basta (è volatile, costosa) • In grado

Memoria secondaria • La memoria principale non basta (è volatile, costosa) • In grado di memorizzare i programmi e i dati in modo permanente • È meno costosa che la memoria principale: le dimensioni della memoria secondaria sono di solito molto maggiori di quelle della memoria principale queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria secondaria • I supporti di memoria secondaria sono più lenti rispetto alla memoria

Memoria secondaria • I supporti di memoria secondaria sono più lenti rispetto alla memoria principale (presenza di dispositivi meccanici) • Non tutti i supporti di memoria secondaria permettono l’accesso diretto ai dati – Alcuni permettono solo un accesso sequenziale (per esempio, nastri magnetici) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Ricordiamo: caricamento del programma • All’aumentare della capacità di memoria di massa, aumenterà il

Ricordiamo: caricamento del programma • All’aumentare della capacità di memoria di massa, aumenterà il numero di programmi e documenti che potete conservare nel vostro computer • Quando si “lancia” un programma questo viene copiato dalla memoria secondaria (di solito un hard disk) nella memoria principale • Questa operazione si chiama caricamento del programma e viene eseguita dal sistema operativo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Caricamento di un programma • I programmi e i dati risiedono nel memoria secondaria

Caricamento di un programma • I programmi e i dati risiedono nel memoria secondaria • Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale • Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi Processore Memoria principale Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Memoria secondaria • La memoria secondaria deve avere capacità di memorizzazione permanente e quindi

Memoria secondaria • La memoria secondaria deve avere capacità di memorizzazione permanente e quindi per la sua si utilizzano principalmente tecnologie basate: – sul magnetismo (tecnologia magnetica) • dischi magnetici (hard disk e floppy disk) • nastri magnetici – sull’uso dei raggi laser (tecnologia ottica) • dischi ottici (CD-ROM, DVD) – sulla memoria flash (memoria elettronica allo stato solido) • Solid State Drive (SSD) • USB memory card queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dischi magnetici • I dischi magnetici: sono i supporti di memoria più diffusi

I dischi magnetici • I dischi magnetici: sono i supporti di memoria più diffusi • Nel corso delle operazioni: – I dischi vengono mantenuti in rotazione a velocità costante – Le informazioni vengono lette e scritte da testine magnetiche queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dischi magnetici • I dischi sono suddivisi in tracce concentriche e settori, ogni

I dischi magnetici • I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco – I settori suddividono ogni traccia in porzioni dette blocchi Traccia Testina Blocco Settore queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dischi magnetici piatto testina piatti briaccio queste slide sono state scritte da J.

I dischi magnetici piatto testina piatti briaccio queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ testine

I dischi magnetici • Hard disk (disco rigido/fisso): sono dei dischi che vengono utilizzati

I dischi magnetici • Hard disk (disco rigido/fisso): sono dei dischi che vengono utilizzati come supporto di memoria secondaria fisso all’interno del computer – da alcuni GB di memoria (500 GB) ad alcuni TB (4 TB) e più – Circa 5000 – 10. 000 giri al minuto • Floppy disk (dischetti flessibili): sono supporti rimovibili – Un solo disco, da 3, 5 pollici di diametro, capacità 1, 44 MB – Circa 300 giri al minuto queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

La memoria ottica • Usa il raggio laser e sfrutta la riflessione della luce

La memoria ottica • Usa il raggio laser e sfrutta la riflessione della luce – Il raggio laser viene riflesso in modo diverso da superfici diverse, e si può pensare di utilizzare delle superfici con dei piccolissimi forellini • Ogni unità di superficie può essere forata o non forata • L’informazione viene letta guardando la riflessione del raggio laser 1 0 0 1 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

La memoria ottica 1 0 1 queste slide sono state scritte da J. Sproton:

La memoria ottica 1 0 1 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/ 0 0 1

I dischi ottici • CD: – CD-ROM (CD-ROM ovvero Compact Disc Read Only Memory):

I dischi ottici • CD: – CD-ROM (CD-ROM ovvero Compact Disc Read Only Memory): consentono solamente operazioni di lettura • Poiché la scrittura è un’operazione che richiede delle modifiche fisiche del disco • Vengono usati solitamente per la distribuzione dei programmi e come archivi di informazioni che non devono essere modificate – CD-R: possono essere scrivibile una sola volta – CD-RW: riscrivibili; basati su più strati di materiale queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dischi ottici • DVD (Digital Versatile Disc): più capace e veloce del normali

I dischi ottici • DVD (Digital Versatile Disc): più capace e veloce del normali CD – Sviluppati per le immagini di “standard” TV (a 768 × 576 pixel) – DVD a doppio strato: un strato sotto l’altro; il primo strato è realizzato in materiale semi-trasparenti • Blu-Ray e HD-DVD: sviluppati per le immagini digitali di alta risoluzione (a 1920 x 1080 pixel) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Solid State Drive • SSD: supporti di dimensioni simili agli hard disk (da 64

Solid State Drive • SSD: supporti di dimensioni simili agli hard disk (da 64 GB a 1 TB e più) ma basati su circuiti di memoria riscrivibile non volatile (flash memory) • sullo stesso principio sono basati chiavi USB, memory card, compact flash, memory pen, memory stick, USB flash drive, USB stick, … (2 GB - 64 GB) • USB flash drive, USB stick: – utilizzabile sulle porte USB di un personal computer – più veloce dei floppy disk, e facilmente trasportabili – anche usati negli e. Book readers e lettori MP 3 queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Unità di misura • • • Chiavi USB/USB flash drive: 2 GB - 64

Unità di misura • • • Chiavi USB/USB flash drive: 2 GB - 64 GB Hard disk: 500 GB - 4 TB SSD: 64 GB - 1 TB DVD: da 4. 7 fino a 17 GB di memoria Nastri magnetici, usati solo per funzioni di backup queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi

Componenti principali di un computer Processore Memoria principale Unità centrale Periferiche del calcolatore Dispositivi di input/output Memoria secondaria queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input/output • Interazione Uomo-Macchina • Basata sui dispositivi di I/O •

I dispositivi di input/output • Interazione Uomo-Macchina • Basata sui dispositivi di I/O • La loro funzione primaria è quella di consentire … – l’immissione dei dati all’interno del computer (input) o – l’uscita dei dati dal computer (output) • Interfaccia uomo/macchina – permette la comunicazione tra l'essere umano e il computer queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input/output • Si collegano alle porte del computer – Ad alto

I dispositivi di input/output • Si collegano alle porte del computer – Ad alto livello le porte sono le “prese” cui si connettono i dispositivi – Ne esistono di tipi diversi a seconda del tipo di collegamento e della velocità di trasmissione (esempio: porta USB, porta 1394) USB queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input/output • Le porte fanno parte di schede, che sono dispositivi

I dispositivi di input/output • Le porte fanno parte di schede, che sono dispositivi interno al case (invulcro) del computer, e che sono connesse direttamente al bus • Insieme, le porte e le schede di input/output realizzano l’interfaccia tra il bus e l’esterno (in questo caso l'interfaccia non è tra essere umano e computer!) CPU RAM scheda dati indirizzi controllo queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input/output • Input: – Tastiera – Mouse (e altri strumenti di

I dispositivi di input/output • Input: – Tastiera – Mouse (e altri strumenti di puntamento) – Scanner – Microfono – Macchine fotografia e telecamera digitale – Lettori di codici a barre • Output: – Monitor – Stampante – Casse acustiche • Input/output: – Touchscreen – Modem queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input • La tastiera: il principale strumento di input – Ogni

I dispositivi di input • La tastiera: il principale strumento di input – Ogni volta che l’utente digita un tasto, la tastiera “avverte” il processore che un carattere è disponibile – Non ha capacità di elaborazione – Un dispositivo di input cieco, nel senso che l’utente non può vedere i dati immessi • La tastiera è utilizzata insieme ad un dispositivo di output su cui vengono visualizzate le informazioni fornite tramite tastiera • La tastiera e il dispositivo di output non sono direttamente collegati tra loro queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input • Il mouse: un dispositivo di puntamento – Una freccia

I dispositivi di input • Il mouse: un dispositivo di puntamento – Una freccia (o un altro simbolo) 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(/simbolo) sul video – Una volta raggiunta la posizione desiderata, premendo uno dei pulsanti del mouse si genera un segnale in input che può corrispondere a diverse funzioni – Come la tastiera: è “cieco”, non ha capacita di elaborazione queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di output • Il monitor: visualizza i dati che l’utente inserisce in

I dispositivi di output • Il monitor: visualizza i dati che l’utente inserisce in input e i risultati delle elaborazioni del calcolatore – Un monitor può essere visto come una matrice di punti (pixel) illuminati con diversa intensità – La dimensione del monitor viene misurata in pollici (lunghezza della diagonale del video) • Portatile: 12 ai 15 pollici • Desktop: 15 ai 17 pollici • Professionali: 17 ai 21 pollici queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di output • Scheda video: – Scheda che converte le informazioni di

I dispositivi di output • Scheda video: – Scheda che converte le informazioni di output del processore in un segnale video che viene inviato tramite un cavo al monitor – L’immagine che vediamo sul monitor(opportunamente codificata) viene memorizzata in una memoria specializzata detta memoria video (VRAM) (risiede sulla scheda video) – Esistono schede video con accelerazione 2 D oppure 3 D: hanno la capacità di elaborazione queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/

I dispositivi di input/output • Scheda audio: – Scheda che converte una segnale audio

I dispositivi di input/output • Scheda audio: – Scheda che converte una segnale audio digitale in un segnale audio analogico, riprodotti dai altoparlanti del computer – Equipaggiato con un convertitore digitale-analogico – Normalmente, le schede audio anche possono ricevere input (per esempio, da un microfono), che viene trasformato in un segnale digitale (la scheda è equipaggiato con un convertitore analogicodigitale) • Touchscreen: – L’utente interagisce con il computer toccando lo schermo (smartphone, tablet) queste slide sono state scritte da J. Sproton: http: //www. di. unito. it/~sproston/