La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Docente docente: Maurizio Mancini

Presentazioni simili


Presentazione sul tema: "Docente docente: Maurizio Mancini"— Transcript della presentazione:

1 Docente docente: Maurizio Mancini maurizio.mancini@unige.it
Casa Paganini Piazza Santa Maria in Passione, – Genova

2 Materiale Sito del corso: Testo di riferimento:
Testo di riferimento: C. Thomas Wu,"Introduzione alla Programmazione ad Oggetti in Java"

3 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

4 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)

5 Primo computer 1946: Primo computer elettronico negli Stati Uniti (ENIAC)

6 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

7 Informatica 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)

8 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

9 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

10 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

11 Rappresentazione binaria
codifica rappresentazione binaria informazione decodifica Mondo Computer: memorizzazione, elaborazione

12 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 …

13 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

14 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

15 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.”

16 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

17 Codifica dell’informazione
Il processo secondo cui si fa corrispondere ad un’informazione una sequenze di bit prende il nome codifica dell’informazione codifica dell’informazione rappresentazione binaria informazione decodifica

18 sufficiente, insufficiente
Codifica binaria Esempio - un esame può avere quattro possibili esiti: ottimo, discreto, sufficiente, insufficiente Codifico (due bit): ottimo con 00 discreto con 01 sufficiente con 10 insufficiente con 11

19 Codifica binaria Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione Codifico (tre bit): nero con 000 rosso con 001 blu con 010 giallo con 011 verde con 100 viola con 101 grigio con 110 arancione con 111

20 Codifica binaria Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione Codifico (tre bit): nero con 000 rosso con 001 blu con 010 giallo con 011 verde con 100 viola con 101 grigio con 110 arancione con 111

21 Codifica binaria Con 2 bit si codificano 4 informazioni (22)
Con N bit si possono codificare 2N informazioni differenti

22 Codifica binaria Se il problema è quello di dover rappresentare M informazioni differenti si deve selezionare il numero di N bit in modo tale che 2N  M Esempio: per rappresentare 40 informazioni differenti devo utilizzare 6 bit perché 26 = 64 5 bit non sono sufficienti perché 25 = 32

23 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, 1KB x 1024) Giga GB 230 (~ un miliardo, 1MB x 1024) Tera TB 240 (~ mille miliardi, 1GB x 1024) Peta PB 250 (~ miliardo miliardi, 1TB x 1024)

24 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)

25 Codifica dei caratteri (Extended ASCII)
Simbolo NUL (spazio bianco) > ? @ A B C

26 Codifica delle parole Parole sono sequenze di caratteri
Codifica della parole cane 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

27 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 = simboli

28 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?

29 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.

30 Campionamento spaziale
Esempio: un’immagine in bianco e nero Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante

31 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

32 Codifica delle immagini
1

33 Codifica delle immagini
1 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

34 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 in immagine otteniamo

35 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

36 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.

37 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

38 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 colori) Ogni pixel per essere memorizzato richiede 3 byte

39 L’uso del colore 1bit 3 bit 1 byte 3 byte

40 L’uso del colore Esempi: 00000000 00000000 00000000  nero
 bianco  rosso  giallo  verde  cyan  blu  viola  grigio (un certo tonalità di …)

41 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 = byte ( bit)

42 Risoluzione Il numero di pixel presenti sullo schermo (colonne x righe) prende il nome di risoluzione 4:3 16:9 640 480 360 nHD 800 600 720 405 1024 768 848 1280 960 540 qHD 1600 1200 576 HD 1366 900 HD+ 1920 1080 Full HD

43 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

44 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

45 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

46 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à

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

48 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 bit/imm. = bit/sec Un minuto richiederebbe 60 sec x = bit ( byte, circa KB) Esempi di formati per il video: AVI, MOV Compressione: MPEG (Moving Picture Expert Group), memorizza solo la differenza tra fotogrammi consecutivi

49 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 di colori occupa 2400 byte, da quanti pixel sarà composta?

50 Codifica dei suoni Fisicamente un suono è rappresentato come un’onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora) Pressione del suono Tempo Sull’asse delle ascisse viene rappresentato il tempo e sull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso

51 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

52 Campionamento 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 Pressione del suono 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 Hz)

53 Quantizzazione La sequenza dei valori numerici ottenuti dai campioni può essere facilmente codificata con sequenze di bit Un’approssimazione! Pressione del suono Tempo La rappresentazione è tanto più precisa quanto maggiore è il numero di bit utilizzati per codificare l’informazione estratta in fase di campionamento

54 Quantizzazione Per esempio: con 1 bit Per esempio: con 2 bit 1 Tempo
Pressione del suono Tempo Per esempio: con 2 bit 11 10 Pressione del suono Tempo 00 01

55 2 x 44.100 campioni x 16 bit/campione = 1.414.200 bit
Esempio Se volessimo codificare la musica di qualità CD dovremmo: Usare due registrazioni corrispondenti a due microfoni distinti Campionare il segnale musicale producendo 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 campioni x 16 bit/campione = bit (circa byte, o 173 KB)

56 Codifica dei suoni ADC: da analogico a digitale DAC:
da digitale ad analogico Convertitore analogico-digitale Convertitore digitale-analogico

57 Codifica dei suoni Codifiche standard MP3
MP3 , WAV (MS-Windows), AIFF (Audio Interchange File Format, Apple), MIDI MP3 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

58 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?

59 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

60 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

61 Codifica dei numeri (il sistema binario)
In analogia con il caso decimale la sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è la cifra “0” o la cifra “1”) rappresenterà il numero c0 x 20 + c1 x 21 + c2 x 22 + … + cn-1 x 2n-1 + cn x 2n La cifra meno significativa La cifra più significativa

62 Codifica dei numeri (il sistema binario)
Caso generale: considerare un sistema con base b La sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra del sistema) rappresenterà il numero c0 x b0 + c1 x b1 + c2 x b2 + … + cn-1 x bn-1 + cn x bn La cifra meno significativa La cifra più significativa

63 Codifica dei numeri (il sistema binario)
Esempio: la sequenza “1011” in base 2 denota il numero 1 x x x x 20 = 11 (in base 10) Esempio: la sequenza “10011” in base 2 denota il numero 1 x x x x x 20 = 19 (in base 10) Per evitare ambiguità si usa la notazione 10112 = 1110, = 1910

64 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 x 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: = 1 x x x 160 = 25910 Esempio: AC416 = 10 x x x 160 =

65 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-1cm-2 … c1c0 (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)

66 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 x x 20

67 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 x x = 1 x x 20 con resto 0 2 1 x x = 1 x 20 con resto 1 1 x = con resto 1

68 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 è

69 Conversione dalla base 2 alla base 10
Sia cm cm-1cm-2 … c1c0 un numero rappresentato in base 2, usiamo: cm x 2m + cm-1 x 2m-1 + cm-2 x 2m-2 + … + c1 x c0 x 20 = N10 Esempio: 1 x x x x x x 23 + 0 x x x 20 = 34510

70 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 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1

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

72 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: 9999 In base 2: (=1510) In base 16: FFFF (= ) In base 8: (=409510)

73 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: = (=1610) In base 16: FFFF + 1 = (= ) In base 8: = (=409610)

74 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 bN – 1 Esempio: N=4 In base 10: = In base 2: = In base 16: FFFF = In base 8: =

75 Codici a lunghezza fissa
Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche: = (in sistema decimale) Abbiamo usato solo un cifre decimale per il risulto Ricordiamo: 510 = 1012 , 410 = 1002 1 0 0 = Errore: overflow (non può essere codificato 910 = con tre bit) (in sistema binario)

76 Codifica dei numeri Codificare il numero nella corrispondente rappresentazione binaria Ordinare in modo crescente i seguenti numeri: 10410 128 100112

77 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

78 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

79 Hardware + Software

80 Hardware e software Hardware: Software:
Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche Software: Programmi di base per la gestione del sistema Programmi applicativi per l’uso del sistema (possono usare i programmi di base)

81 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

82 Componenti principali di un computer
Processore Memoria principale Unità centrale Dispositivi di input/output Periferiche del calcolatore Memoria secondaria

83 Esempio RAM CPU

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

85 Esempio: Motorola 6502

86 Esempio: Motorola 6502

87 Esempio: Motorola 6502

88 Componenti della CPU La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

89 Esempio

90 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 REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

91 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

92 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

93 Bus interno Bus interno: permette la comunicazione tra i componenti del processore REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

94 Bus interno

95 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 REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

96 Registri Program Counter Registri Generali
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

97 Unità aritmetico logica
REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

98 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

99 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

100 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

101 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™ i7-6700K Processor 4.2 GHz AMD ATHLON™ X4 QUAD-CORE 870K 4.1GHz

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

103 Memoria principale

104 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

105 Programmi in linguaggio macchina
come tutte le altre informazioni contenute in un computer i programmi in linguaggio macchina sono sequenze di 1 e 0: ADD R1 R2 R3

106 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)

107 Operazioni aritmetico-logiche
esempio: add: addizione sub: sottrazione and/or/not: congiunzione/disgiunzione/negazione logica A B A and B 1 A B A or B 1 A not A 1

108 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

109 Esempio ADD R1 R2 R3 recuperare i valori memorizzati nei registri R2 e R3 e inserire il risultato della somma dei valori nel registro R1 Codice istruzione Argomento 1 Argomento 2 Argomento 3

110 Esempio LOAD 3568 R2 operazione di lettura dalla memoria: richiede la lettura del valore contenuto nella cella con indirizzo 3568 e il suo caricamento nel registro R2 Codice istruzione Argomento 1 Argomento 2

111 Memoria principale (RAM)
Processore Memoria principale Unità centrale 1 2 3 4 5 N Insieme al processore forma l’Unità Centrale di un elaboratore Contiene i programmi e i dati usati dal processore Sequenza di celle: ad ogni cella è associato un indirizzo (un numero progressivo a partire da 0)

112 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)

113 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

114 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)

115 Memoria principale (RAM)
Contenuto (in questo esempio, 8 bit) 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 Indirizzi 1 2 3 4 5 N

116 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 celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte) Con 32 bit si potranno indirizzare fino a celle (circa 4 GB di memoria)

117 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 4GB ai 32 GB La RAM, fino ad un certo limite, è espandibile (slot di espansione)

118 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)

119 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 L1), ma esiste anche una cache secondaria (L2) esterna al processore Le sue dimensione tipiche vanno dai 1MB a 8MB

120 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 Clipboard (buffer) Foglio elettronico Programma di videoscrittura

121 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

122 Bus esterno Bus esterno: permette la comunicazione tra il processore e gli altri componenti del computer CPU RAM Interfaccia dati indirizzi controllo

123 Bus esterno RAM CPU Interfaccia … 1000 LOAD 4809 R2 1001 LOAD 3568 R1
ADD R1 R2 STORE R1 3568 GOTO 1001 REGISTRI Bus Interno Unità di controllo Unità aritmetico logica Interfaccia

124 Componenti principali di un computer
Processore Memoria principale Unità centrale Dispositivi di input/output Periferiche del calcolatore Memoria secondaria

125 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

126 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)

127 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

128 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

129 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

130 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

131 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 Blocco Testina Settore

132 I dischi magnetici testina testine piatto piatti briaccio

133 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 – 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

134 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

135 La memoria ottica 1 1 1 1

136 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

137 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)

138 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 eBook readers e lettori MP3

139 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

140 Componenti principali di un computer
Processore Memoria principale Unità centrale Dispositivi di input/output Periferiche del calcolatore Memoria secondaria

141 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

142 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

143 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

144 I dispositivi di input/output
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

145 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

146 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

147 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

148 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 2D oppure 3D: hanno la capacità di elaborazione

149 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 analogico-digitale) Touchscreen: L’utente interagisce con il computer toccando lo schermo (smartphone, tablet)


Scaricare ppt "Docente docente: Maurizio Mancini"

Presentazioni simili


Annunci Google