intro.ppt [modalità compatibilità] · software componente del calcolatore costituita dai: •...

150
Informatica Informatica: la scienza della rappresentazione e L'i f i l difi l t ih 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 Il computer: il suo funzionamento, le possibilità che offre per la trasformazione dell’informazione, le tecniche di utilizzo... tecniche di utilizzo... La comunicazione: tra computer, tra persone (mediata dal computer)

Upload: dangdang

Post on 17-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

InformaticaInformatica:

la scienza della rappresentazione e

L'i f i l difi l t i h

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• Il computer: il suo funzionamento, le possibilità che offre per la trasformazione dell’informazione, le tecniche di utilizzo...tecniche di utilizzo...

• La comunicazione: tra computer, tra persone (mediata dal computer)( p )

Computer

Hardware + Software

Hardware

Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche, ,

Software

Componente del calcolatore costituita dai:• Programmi di base per la gestione del

sistemasistema• Programmi applicativi per l’uso del

i t ( i i disistema (possono usare i programmi di base)

Hardware: architettura deiHardware: architettura dei computer (in breve)p ( )

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

L i i i l– La memoria principale– La memoria secondaria

I di iti i di i t (i i t )/ t t– I dispositivi di input (inserimento)/output (restituzione di risultati)

Il l i i i l• Il processore e la memoria principale costituiscono l’unità centrale del computer

Componenti principali di unComponenti principali di un computerp

Processore Unità centraleMemoria principale Unità centraleprincipale

Stampante

P if i h di i /Memoria secondaria

Tasteria e monitor

Periferiche di input/output (o di massa)

L’uso dell’informazione

• Un computer deve:– Memorizzare l’informazione

• Usando la memoria principale/secondariap p– Elaborare l’informazione

• Usando il processoreUsando il processore– Fare l’input/output dell’informazione

Usando i dispositivi di input/output• Usando i dispositivi di input/output

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 fattedi utilizzo ed al tipo di operazioni che devono essere fatte sulle informazione stesse

Tipi di informazione

• Il computer memorizza ed elabora informazioni che devono essere rappresentate in una forma gestibilepp g

• Rappresentazione binaria (o digitale)

Tipi di informazione

informazione rappresentazione codifica

informazione ppbinaria

decodifica

Mondo esterno Computer: memorizzazione, elaborazione

Rappresentazione binaria

• L’entità minima di informazione che possiamo trovare all’interno di un elaboratore prende il nome di bitp– Binary digit – cifra binaria

Un bit può assumere due valori– Un bit può assumere due valori• Rappresentazione binaria:

– Solo due simboli (0 e 1)

Perché la rappresentazionePerché la rappresentazione binaria?

Le informazioni rappresentate nel sistema binario possono essere elaborate secondo vari criteri e con vari strumenti

Perché la rappresentazionePerché la rappresentazione binaria?

• I due simboli (0 e 1) possono essere rappresentate da:– Due stati di polarizzazione

di una sostanza magnetizzabilemagnetizzabile

– Due stati di carica elettrica di una sostanzadi una sostanza

– …

Perché la rappresentazionePerché la rappresentazione binaria?

• I due simboli (0 e 1) possono esserepossono essere rappresentate da:–– …– Al passaggio/non

passaggio di corrente p ggattraverso un cavo conduttoreAl passaggio/non– Al passaggio/non passaggio di luce attraverso un cavo ottico

Codifica dell’informazione

• Per poter rappresentare un numero maggiore di informazione si usano sequenze di bitdi informazione si usano sequenze di bit

• Per esempio, per rappresentare quattro informazioni diverse possiamo utilizzare dueinformazioni diverse possiamo utilizzare due bit che ci permettono di ottenere quattro configurazione distinteconfigurazione distinte

00 01 10 11

Il processo secondo cui si fa corrispondere p ocesso seco do cu s a co spo de ead un’informazione una sequenze di bit prende il nome codifica dell’informazione

Codifica binaria

• Esempio: un esame può avere quattro ibili iti tti di tpossibili esiti: ottimo, discreto,

sufficiente, insufficiente• Codifico (due bit):

– ottimo con 00– discreto con 01– sufficiente con 10sufficiente con 10– insufficiente con 11

Codifica binaria

• Esempio: otto colori: nero, rosso, blu, giallo, verde viola grigio arancioneverde, viola, grigio, arancione

• Codifico (tre bit):000– nero con 000

– rosso con 001blu con 010– blu con 010

– giallo con 011– verde con 100verde con 100– viola con 101– grigio con 110grigio con 110– arancione con 111

Codifica binaria

• Con 2 bit si codificano 4 informazioni (22)

• Con 3 bit si codificano 8 informazioniCon 3 bit si codificano 8 informazioni (23)

• … • Con N bit si possono codificare 2NCon N bit si possono codificare 2

informazioni differenti

Codifica binaria

• Se il problema è quello di dover rappresentare M informazioni differenti sirappresentare M informazioni differenti si deve selezionare il numero di N bit in modo tale chetale che

2N >= M• Esempio: per rappresentare 40 informazioni• Esempio: per rappresentare 40 informazioni

differenti devo utilizzare 6 bit perché 26 = 6426 = 64

– 5 bit non sono sufficienti perché 25 = 32

Codifica binaria

• Esiste una particolare aggregazione di bit che è costituita da 8 bit (28 = 256 informazioni) e prende il nome di byte) p y

• Di solito si usano i multipli del byteKilo KB 210 (~ un migliaio, 1024 byte)

Mega MB 220 (~ un milione, 1KB x 1024 byte)Mega MB 2 ( un milione, 1KB x 1024 byte)

Giga GB 230 (~ un miliardo, 1MB x 1024 byte)

T TB 240 ( ill ili di 1GB 1024 b )Tera TB 240 (~ mille miliardi, 1GB x 1024 byte)

Codifica dei caratteri• Alfabeto anglosassone

– Lettere maiuscole e minuscole– Lettere maiuscole e minuscole– Cifre numeriche (0, 1, 2, …, 9)– Simboli di punteggiatura (, . ; : ! “ ? …)– Segni matematici (+, -, {, [, >, …)– Caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, …)

può essere codificato usando un byte (220 caratteripuò essere codificato usando un byte (220 caratteri circa)

• Il metodo di codifica più diffuso tra i produttori di p phardware e di software prende il nome ASCII (American Standard Code for Information Interchange)Interchange)

Codifica dei caratteri (ASCII)ASCII Simbolo00000000 NUL (spazio bianco)00000000 NUL (spazio bianco)… …00111110 >00111110 >00111111 ?01000000 @01000000 @01000001 A01000010 B01000010 B01000011 C… …

Codifica delle parole

• Parole sono sequenze di caratteriC difi d ll l• Codifica della parole cane

01100011 01100001 01101110 01100101c a n ec a n e

• Il problema inverso: data una sequenza di bit, il testo che essa codifica può essere ottenutoil testo che essa codifica può essere ottenuto nel modo seguente:– si divide la sequenza in gruppi di otto bit (byte)si divide la sequenza in gruppi di otto bit (byte)– si determina il carattere corrispondente ad ogni

byte

Codifica dei caratteri

• Abbiamo considerato il codice:– ASCII: 8 bit per carattere

• Un’altro codice:Un altro codice:– UNICODE, 16 bit per carattere (ASCII +

caratteri etnici)caratteri etnici)– Microsoft Windows usa un codice

proprietario a 16 bit per carattere, simile ad UNICODE

Codifica dell’informazione• Quanti bit si devono utilizzare per

rappresentare 300 informazioni distinte?rappresentare 300 informazioni distinte?• Quanti byte occupa la parola “psicologia” se

la si codifica utilizzando il codice ASCII?la si codifica utilizzando il codice ASCII?• Dati 12 bit per la codifica, quante informazioni

di ti t i t ?distinte si possono rappresentare?

Codifica delle immagini

Suddividiamo l’immagine mediante una griglia formatada righe orizzontali e verticali a distanza costanteda righe orizzontali e verticali a distanza costante

Codifica delle immagini• Ogni quadratino derivante da tale

suddivisione prende il nome di pixel (picturesuddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:g– Il simbolo “0” viene utilizzato per la codifica di un

pixel corrispondente ad un quadratino in cui il bi è d i tbianco è predominante

– Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il neropixel corrispondente ad un quadratino in cui il nero è predominante

Codifica delle immagini

0 0 0 1 0 0 0 0 0 00 0 1 1 1 0 0 0 0 00 0 1 1 1 1 1 0 0 00 0 1 1 1 1 1 0 0 00 0 0 0 0 0 0 0 0 0

Codifica delle immagini

0 0 0 1 0 0 0 0 0 00 0 1 1 1 0 0 0 0 00 0 1 1 1 1 1 0 0 00 0 1 1 1 1 1 0 0 00 0 0 0 0 0 0 0 0 0

Poiché una sequenza di bit è lineare, è necessario definireconvenzioni per ordinare la griglia dei pixel in unaconvenzioni per ordinare la griglia dei pixel in unasequenza. Assumiamo che i pixel siano ordinati dal bassoverso l’alto e da sinistra verso destra0000000000 0011111000 0011100000 0001000000

Codifica delle immaginiNon 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 stringheSe riconvertiamo la sequenza di stringhe0000000000 0011111000 0011100000 0001000000in immagine otteniamoin immagine otteniamo

Codifica delle immagini

La rappresentazione sarà più fedele all’aumentaredel numero di pixel, ossia al diminuire delle dimensioni dei quadratini della griglia in cui è

ddi i l’i isuddivisa l’immagine

Codifica delle immagini

• Assegnando un bit ad ogni pixel è ibil difi l i i i ipossibile codificare solo immagini in

bianco e nero• Per codificare le immagini con diversi

livelli di grigio oppure a colori si usa lalivelli di grigio oppure a colori si usa la stessa tecnica: per ogni pixel viene

t di bitassegnata una sequenza di bit

Codifica delle immaginiCodifica delle immagini (grigio e colore)(g g )

• Per memorizzare un pixel non è più sufficiente un solo bit– Per esempio, se utilizziamo quattro bitPer esempio, se utilizziamo quattro bit

possiamo rappresentare 24 = 16 livelli di grigio o 16 colori diversigrigio o 16 colori diversi

– Mentre con otto bit ne possiamo distinguere 28 = 256 eccdistinguere 2 = 256, ecc.

L’uso del colore

• Il colore può essere generato componendo 3 colori: red green blue (RGB)colori: red, green, blue (RGB)

• Ad ogni colore si associa una possibile sfumaturasfumatura

• Usando 2 bit per ogni colore si possono ottenere 4 sfumature per il rosso 4 per il blueottenere 4 sfumature per il rosso, 4 per il blue e 4 per il verde che, combinate insieme, danno origine a 64 colori diversidanno origine a 64 colori diversi

• Ogni pixel per essere memorizzato richiede 6 bitbit

L’uso del colore

• Usando 8 bit per ogni colore si possono ottenere 256 sfumature per il rosso, 256 per il blu e 256 per il verde che, p p ,combinate insieme, danno origine a circa 16 8 milioni di colori diversicirca 16,8 milioni di colori diversi (precisamente 16777216 colori)

• Ogni pixel per essere memorizzato richiede 3 bytey

Risoluzione• Il numero di pixel presenti sullo schermo

(colonne x righe) prende il nome di(colonne x righe) prende il nome di risoluzione

• Risoluzione tipiche sonoRisoluzione tipiche sono 640 x 480 1024 x 768 1280 x 1024

• Esempio:Esempio: – Per distinguere 256 colori sono necessari otto bit

per la codifica di ciascun pixel– La codifica di un’immagine formata da 640 x 480

pixel richiederà 2.457.600 bit (307.200 byte)

Grafica bitmap• Le immagini codificate pixel per pixel sono dette

immagini in grafica bitmapg g p– Le immagini bitmap occupano parecchio spazio

• Esistono delle tecniche di compressione che tt di id l di i ipermettono 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

• I formati come GIF, JPEG e PNG sono formatiI formati come GIF, JPEG e PNG sono formati compressi

• Argomento correlato: formati come Postscript e PDF per i documenti

Codifica di immagini inCodifica di immagini in movimento

• Un filmato è una sequenza di immagini statiche (dette fotogrammi o frame)

• Per codificare un filmato si “digitalizzano” i suoi fotogrammiE i• Esempio:– 30 immagini ad alta risoluzione al secondo– 30 imm./sec x 2457600 bit/imm. = 73728000 bit/sec– Un minuto richiederebbe 60 sec x 73728000 = 4423680000

bit (552960000 byte)• Esempi di formati per il video: AVI MOV• Esempi di formati per il video: AVI, MOV• Compressione: MPEG (Moving Picture Expert

Group), differenza tra fotogrammiGroup), differenza tra fotogrammi

Codifica delle immagini• Quanti byte occupa un’immagine di 100 x 100

pixel in bianco e nero?pixel in bianco e nero?• Quanti byte occupa un’immagine di 100 x 100

pixel a 256 colori?pixel a 256 colori?• Se un’immagine a 16777216 di colori occupa

2400 b t d ti i l à t ?2400 byte, da quanti pixel sarà composta?

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

che descrive la variazione della pressione dell’ariache descrive la variazione della pressione dell aria nel tempo (onda sonora)

t

• Sull’asse delle ascisse viene rappresentato il tempo e Su asse de e asc sse e e app ese tato te po esull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso

Codifica dei suoni• Si effettuano dei campionamenti sull’onda (cioè si misura il

valore dell’onda a intervalli di tempo costanti) e si codificano invalore dell onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti

t

• Quanto più frequentemente il valore di intensità dell’onda viene• 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)

Codifica dei suoni• La sequenza dei valori numerici ottenuti dai campioni

può essere facilmente codificata con sequenze di bitpuò essere facilmente codificata con sequenze di bit

UnaUna approssimazione!

t

•La rappresentazione è tanto più precisa quantoLa rappresentazione è tanto più precisa quanto maggiore è il numero di bit utilizzati per codificare l’informazione estratta in fase di campionamento

Codifica dei suoni (esempio)• Se volessimo codificare la musica di qualità

CD dovremmo:– Usare due registrazioni corrispondenti a due

microfoni distinti– Campionare il segnale musicale producendo

44100 campioni al secondoPer ogni campione (che è un numero) si usano 16– Per ogni campione (che è un numero) si usano 16 bit

– Per cui, il numero di bit che sarebbero necessariPer cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a

2 x 44100 campioni x 16 bit/campione = 1414200 bit

Codifica dei suoni• Codifiche standard

– WAV (MS-Windows), AIFF (Audio Interchange File Format, ( ), ( g ,Apple)

– MIDIMP3– MP3

• MIDICodifica le note e gli strumenti che devono eseguirle– Codifica le note e gli strumenti che devono eseguirle

– Efficiente, ma solo musica, non voce

• MP3MP3– MPEG-3: variante MPEG per suoni– Grande diffusione, molto efficiente

Codifica dei suoni• Quanto spazio occupa un suono della durata

di 10 secondi campionato a 100 Hz (100di 10 secondi campionato a 100 Hz (100 campioni al secondo), in cui ogni campione occupa 4 byte?occupa 4 byte?

Codifica dei numeri• Il codice ASCII consente di codificare le cifre

decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri

• Per esempio: il numero 324 potrebbe essere rappresentato dalla sequenza di byte:rappresentato dalla sequenza di byte:

00110011 00110010 001101003 2 4

• Ma questa rappresentazione non è efficiente e soprattutto non è adatta per eseguire le operazioni aritmetiche sui numeriaritmetiche sui numeri

• Sono stati pertanto studiati codici alternativi per rappresentare i numeri in modo efficiente ed ppeseguire le usuali operazioni aritmetiche

Codifica dei numeriCodifica dei numeri (il sistema decimale)( )

• La rappresentazione dei numeri con il sistema decimale può essere utilizzata pcome spunto per definire un metodo di codifica dei numeri all’interno degli elaboratori

– Esempio: la sequenza di cifre 324 viene i t t tinterpretato come: • 3 centinaia + 2 decine + 4 unità• 324 = 3 x 100 + 2 x 10 + 4 x 1• 324 = 3 x 100 + 2 x 10 + 4 x 1• 324 = 3 x 102 + 2 x 101 + 4 x 100

Codifica dei numeriCodifica dei numeri (il sistema decimale)( )

• In generale la sequenza cn cn-1cn-2 … c1c0(ogni “ci” è una cifra compresa tra “0” e “9”) ( g i p )viene interpretata come:

c0 x 100 + (c0 unità)La cifra meno i ifi ti 0 ( 0 )

c1 x 101 + (c1 decine)c2 x 102 + (c2 centinaia)

significativa

c2 x 10 + (c2 centinaia)…c x 10n-1 +cn-1 x 10n 1 + cn x 10nLa cifra più

significativa

Codifica dei numeriCodifica dei numeri (il sistema binario)( )

• La numerazione decimale quindi utilizza t i i i l b t luna notazione posizionale basata sul

numero 10• La notazione posizionale può essere

utilizzata in qualunque altro sistema di q qnumerazione (con base diversa di 10)

• Per ogni sistema di numerazione si usaPer ogni sistema di numerazione si usa un numero di cifre uguale alla base

Codifica dei numeriCodifica dei numeri (il sistema binario)( )

• Nel sistema di numerazione binario (base 2) i numeri vengono codificati utilizzando le duenumeri vengono codificati utilizzando le due cifre 0 e 1

• Nel sistema di numerazione ottale (base 8) i• Nel sistema di numerazione ottale (base 8) i numeri vengono codificati utilizzando le cifre 0 1 2 3 4 5 6 70, 1, 2, 3, 4, 5, 6, 7

• Nel sistema di numerazione esadecimale(base 16) i numeri vengono codificati(base 16) i numeri vengono codificati utilizzando le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, , , ,

Codifica dei numeriCodifica dei numeri (il sistema binario)( )

• In analogia con il caso decimale la sequenza ( i “ ” è l if “0” lcn cn-1cn-2 … c1c0 (ogni “ci” è la cifra “0” o la

cifra “1”) rappresenterà il numeroc0 x 20 +c1 x 21 +

La cifra meno significativa

c2 x 22 + … +

cn-1 x 2n-1 + cn x 2nLa cifra più

significativa

Codifica dei numeriCodifica dei numeri (il sistema binario)( )

• Esempio: la sequenza “1011” denota il numero

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 (in base 10)

• Esempio: la sequenza “10011” 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

Conversione dalla base 10 allaConversione dalla base 10 alla base 2

• Dato un numero N rappresentato in base di i l t i i b ddieci, la sua rappresentazione in base due sarà del tipo cm cm-1cm-2 … c1c0 (le “ci” sono if bi i )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

Conversione dalla base 10 allaConversione dalla base 10 alla base 2

• Esempio: il numero 610:

6/2 = 3 resto 03/2 = 1 resto 11/2 = 0 resto 11/2 = 0 resto 1

• Leggendo i resti dal basso verso l’alto, si haLeggendo i resti dal basso verso l alto, si ha che la rappresentazione binaria del numero 610 è 110210 2

• Per una corretta verifica basta riconvertire il risultato alla base 10– Cioè, calcolare 1 x 22 + 1 x 21 + 0 x 20

Conversione dalla base 10 allaConversione dalla base 10 alla base 2

• Esempio: il numero 34510:345/2 = 172 resto 1172/2 = 86 resto 086/2 = 43 resto 043/2 = 21 resto 121/2 = 10 resto 110/2 = 5 resto 05/2 = 2 resto 12/2 = 1 resto 01/2 = 0 resto 1

• Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’ ità) i h h t i bi i d ll’unità), si ha che rappresentazione binaria del numero 34510 è 1010110012

Conversione dalla base 2 allaConversione 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 21 + c0 x 20 = N

• Esempio: 10101100121 x 28 + 0 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 +1 x 2 + 0 x 2 + 1 x 2 + 0 x 2 + 1 x 2 + 1 x 2 +

0 x 22 + 0 x 21 + 1 x 20

=256 + 64 + 16 + 8 + 1

=345

Altri basi: ottale, esadecimale• Sistema ottale

Utilizza una notazione posizionale basata su otto– 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 = 67Esempio: 1038 1 x 8 + 0 x 8 + 3 x 8 67• Sistema esadecimale

Utilizza una notazione posizionale basata su– Utilizza una notazione posizionale basata su sedici cifre (0,1,…,9,A,B,C,D,E,F) e sulle potenze di 16di 16

– Esempio: 10316 = 1 x 162 + 0 x 161 + 3 x 160 = 259– Esempio: AC416 = 10 x 162 + 12 x 161 + 4 x 160 = 2756

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 p g

parziale supera il valore 1• Addizione:

0 + 0 = 0 con riporto 00 + 1 = 1 con riporto 01 + 0 = 1 con riporto 01 + 1 = 0 con riporto 1

Operazioni su numeri binari• Addizione:

0 + 0 = 0 con riporto 00 + 0 = 0 con riporto 00 + 1 = 1 con riporto 01 + 0 = 1 con riporto 01 + 0 = 1 con riporto 01 + 1 = 0 con riporto 1

E i• Esempi:1 + 1 0 1 + 1 0 1 1 0 1 0 1 + 1 1 1 +1 =

1 01 1 =

1 0 0 01 0 0 0 1 1 0 =

1 1 1 1 1 0 1 11 1 =

1 0 1 0

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

un codice a lunghezza fissag• In questo modo si pone anche un limite al

numero massimo rappresentabilepp• Esempio: qual è il numero più grande

rappresentabile con 4 cifre?pp– In base 10: 9999– In base 2: 1111 (=1510)( 10)– In base 16: FFFF (=6553510)– In base 8: 7777 (=409510)

Codici a lunghezza fissa• Numeri maggiori di quello massimo

rappresentabile causano problemi di overflowrappresentabile causano problemi di overflow– Ovvero per essere rappresentati richiedono più

cifre di quelle a disposizionecifre di quelle a disposizione• Esempio: 4 cifre

In base 10: 9999 + 1 = 10000– In base 10: 9999 + 1 = 1000010

– In base 2: 1111 + 1 = 100002 (=1610)In base 16: FFFF + 1 = 10000 (=65536 )– In base 16: FFFF + 1 = 1000016 (=6553610)

– In base 8: 7777 + 1 = 100008 (=409610)

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

b il più grande numero (intero positivo)b il più grande numero (intero positivo) rappresentabile si può esprimere come

bN 1bN – 1• Esempio: N=4

– In base 10: 9999 = 104 - 1– In base 2: 1111 = 24 - 1– In base 16: FFFF = 164 - 1– In base 8: 7777 = 84 - 1

Codici a lunghezza fissa• Esempio di overflow nel sistema binario

dovuto a operazioni aritmetiche:p– 5 + 4 = 9 (in sistema decimale)– abbiamo usato solo un cifre decimale per il p

risulto• Ricordiamo: 510 = 1012 , 410 = 1002

Errore: overflow 1 0 1 +1 0 0 =

(non può essere codificato 910 = 10012 con tre bit)

1 0 0 1 0 0 1

(in sistema binario) 910 10012 con tre bit)(in sistema binario)

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

quella discussa fino ad ora non è sufficientequella discussa fino ad ora non è sufficiente, per due motivi:

Numeri negativi– Numeri negativi– Numeri con la virgola

Per questi numeri vengono utilizzate delle• Per questi numeri vengono utilizzate delle rappresentazioni differenti

P i “ l t d ”– Per esempio “complemento a due” per rappresentare i numeri negativi

Codifica dei numeri• Codificare il numero 13210 nella

corrispondente rappresentazione binariacorrispondente rappresentazione binaria• Ordinare in modo crescente i seguente

numeri:numeri: – 10410

12– 128

– 100112

100010000– 1000100002

– 1001110

Architettura dei computer• In un computer possiamo distinguere quattro

unità funzionali:unità funzionali:– il processore

la memoria principale– la memoria principale– la memoria secondaria

i dispositivi di input (inserimento)/output– i dispositivi di input (inserimento)/output (restituzione di risultati)

• Il processore e la memoria principale• Il processore e la memoria principale costituiscono l’unità centrale del computer

Architettura dei computer

Processore Memoria Unità centraleProcessore principale

StampanteStampante

Tastiera e monitor

Periferichedel calcolatore

Periferiche di input/outputMemoria secondaria

Tastiera e monitor

Architettura dei computer

• Un computer deve:– elaborare l’informazione – memorizzare l’informazione– fare l’input/output dell’informazione

• Per ogni funzione di base si possono prendere in considerazione iprendere in considerazione i componenti in grado di svolgerla

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit -CPU)CPU)

– memorizzare l’informazioned l i i i l (RAM)• usando la memoria principale (RAM)

• usando la memoria secondariafare l’inp t/o tp t dell’informa ione– fare l’input/output dell’informazione

• usando i dispositivi di input/output

I programmi e i dati

• Programmi:Q t l i i i d l t di i t– Questa lezione: i programmi dal punto di visto dell’hardware

– I programmi: sequenze di istruzioni perI programmi: sequenze di istruzioni per l’elaborazione delle informazione

• Definiscono quale debba essere il comportamento del processore

• Dati:Distinzione tra dato e informazione:– Distinzione tra dato e informazione:

• Dato: sequenza di bit, può essere interpretato in più modi diversi

• Informazione: dato + significato del dato

I programmi e i dati• I programmi e i dati risiedono nella memoria

secondaria

Processore Memoria principale

Stampante Memoria d isecondaria

I programmi e i dati• I programmi e i dati risiedono nella memoria

secondaria• Per essere eseguiti (i programmi) e usati (i dati)

vengono copiati nella memoria principale

Processore Memoria principale

Stampante Memoria d isecondaria

I programmi e i dati• I programmi e i dati risiedono nella memoria

secondaria• Per essere eseguiti (i programmi) e usati (i dati)

vengono copiati nella memoria principaleIl è i d di i l i t i i di i• Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi

Processore Memoria principale

Stampante Memoria d isecondaria

Istruzioni macchina

• I programmi: sequenze di istruzioni elementari (somma due numeri confronta due numeri(somma due numeri, confronta due numeri, leggi/scrivi dalla memoria, ecc.)

• Per ogni tipo di processore è definito un insieme di istruzioni, chiamate istruzioni macchinaistruzioni, chiamate istruzioni macchina– Ognuna delle quali corrisponde ad un’operazione

elementare– Le operazione più complesse possono essere realizzate

mediante sequenze di operazioni elementari

Istruzioni macchina

• Le istruzioni possono avere formati diversi -iper esempio:

Codice istruzione Argomento 1 Argomento 2 Argomento 3g g g

oppure cosa fare su cosa operare

Codice istruzione Argomento 1 Argomento 2

cosa fare su cosa operareoppure

Codice istruzione Argomento 1

Istruzioni macchina

• Per esempio:

Codice istruzione Argomento 1 Argomento 2

• LOAD 3568 R2– Operazione di lettura dalla memoria: richiede la– Operazione di lettura dalla memoria: richiede la

lettura del valore contenuto nella cella con indirizzo 3568 e il suo caricamento nel registro R2g

(Perché usiamo un indirizzo? Che cosa un registro? Vedremo…)

Istruzioni macchina

• Per esempio:

Codice istruzione Argomento 1 Argomento 2

• ADD R1 R2– Operazione aritmetica di somma: prevede la– Operazione aritmetica di somma: prevede la

somma del contenuto dei registri R1 e R2 e il caricamento del risultato nel registro R1g

(Perché R1 non R2? Non c’è una ragione: la decisione è arbitraria)

Istruzioni macchina

• Per esempio:

01000110 1111000 01010111 0000111101000110 1111000 01010111 00001111

cosa fare su cosa operare

11110101 01110110 11001001

p

Linguaggio macchina

• Il linguaggio in cui si scrivono queste i t i i d il di li iistruzioni prende il nome di linguaggio macchina– Una sequenza di tali istruzioni prende il

nome di programma in linguaggio himacchina

• Il ruolo del processore:– Eseguire programmi in linguaggio

macchina

I programmi e i processori

• Ogni tipo di processore è in grado di eseguire li it t di i t i iun numero limitato di istruzioni

• Combinando in modo diverso sequenze anche molto lunghe di istruzioni si possono g pfar svolgere al computer molti compiti diversi

I programmi e i processori

• Famiglie di processori: Intel, Motorola, SunP i d ll t f i li• Processori della stessa famiglia possono eseguire gli stessi programmi scritti in linguaggio macchina (ma non sempre)linguaggio macchina (ma non sempre)

• Processi di famiglie diverse non possono eseguire gli stessi programmi scritti ineseguire gli stessi programmi scritti in linguaggio macchina– Le istruzioni che “capiscono” sono diverse– Le istruzioni che capiscono sono diverse

• Attenzione! Stiamo considerando il livello delle istruzioni macchinadelle istruzioni macchina

Componenti del processore (CPU)

• La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversida componenti diversi che svolgono compiti diversi

Program CounterREGISTRI

Bus Interno

Unità dicontrollo

g

Registro di Stato

Registro Istruzionicontrollo

UnitàRegistri Generali 8 o 16…

Unità aritmeticologica Registro Indirizzi Memoria

Registro Dati Memoriag

Registro di Controllo

Componenti del processore (CPU)

Program CounterREGISTRIBus Interno

Unità dicontrollo

g

Registro di Stato

Registro Istruzionicontrollo

UnitàRegistri Generali 8 o 16…

Unità aritmeticologica Registro Indirizzi Memoria

Registro Dati Memoriag

Registro di Controllo

Bus

• Permette la comunicazione tra i vari ti d ll’ l b tcomponenti dell’elaboratore

CPU RAM Interfaccia

datiindirizziindirizzi

controllo

Componenti del processore (CPU)

Program CounterREGISTRI

Bus Interno

Unità dicontrollo

g

Registro di Stato

Registro Istruzionicontrollo

UnitàRegistri Generali 8 o 16…

Unità aritmeticologica Registro Indirizzi Memoria

Registro Dati Memoriag

Registro di Controllo

Registri

• I registri sono delle unità di memoria t t l iestremamente veloci

• Sono usate per mantenere le informazioni di necessità immediata per il processore

• Le dimensioni dei registri variano da 16, 32, g , ,64 bit– Sono una parte fondamentale del processorep p

Registri

• Per esempio: Program Counter– L’indirizzo della “prossima” istruzione da

eseguire è memorizzato nel registro g gProgram Counter

• Per esempio: i Registri GeneraliPer esempio: i Registri Generali– I registri che possono essere utilizzati

come memorie temporanee per svolgere lecome memorie temporanee per svolgere le operazioni matematiche

Componenti del processore (CPU)

Program CounterREGISTRI

Bus Interno

Unità dicontrollo

g

Registro di Stato

Registro Istruzionicontrollo

UnitàRegistri Generali 8 o 16…

Unità aritmeticologica Registro Indirizzi Memoria

Registro Dati Memoriag

Registro di Controllo

Unità di controllo

• L’unità di controllo è la parte più importante del processore– Esegue le istruzioni dei programmiEsegue le istruzioni dei programmi– Coordina le attività del processore

Controlla il flusso delle istruzioni tra il– Controlla il flusso delle istruzioni tra il processore e la memoria

Unità di controllo

• Svolge la sua attività in modo ciclico– Preleva dalla memoria principale la

“prossima” istruzione da eseguirep g– Preleva gli operandi specificati

nell’istruzionenell istruzione– Decodifica ed esegue l’istruzione

Ri i i– Ricomincia

Unità di controllo

• L’esecuzione comporta l’invio di comandi opportuni all’unità relativa– Calcoli Unità aritmetico logicaCalcoli Unità aritmetico logica– Lettura/scrittura dati memoria

Acquisizione/stampa dispositivi di I/O– Acquisizione/stampa dispositivi di I/O

Componenti del processore (CPU)

Program CounterREGISTRI

Bus Interno

Unità dicontrollo

g

Registro di Stato

Registro Istruzionicontrollo

UnitàRegistri Generali 8 o 16…

Unità aritmeticologica

Registro Indirizzi Memoria

Registro Dati Memoriag

Registro di Controllo

Unità aritmetico logica

• L’Unità aritmetico logica si occupa di eseguire le operazioni di tipo aritmetico/logicole operazioni di tipo aritmetico/logico– Somme, sottrazioni, …, confronti, …

• Preleva gli operandi delle operazioni dai• Preleva gli operandi delle operazioni dai Registri Generali

• Deposita il risultato delle operazioni nei• Deposita il risultato delle operazioni nei Registri Generali

• Insieme all’unità di controllo collabora al• Insieme all unità di controllo collabora al completamento di un ciclo della macchina

Clock

• Abbiamo visto che il processore svolga la sua attività in modo ciclicoattività in modo ciclico– Ad ogni ciclo corrisponde l’esecuzione di

un’operazione elementare (un’istruzioneun operazione elementare (un istruzione macchina)

• Il clock fornisce una cadenza temporale per p pl’esecuzione delle operazioni elementari

• La frequenza del clock indica il numero di qoperazioni elementari che vengono eseguite nell’unità di tempo

Clock

• Consideriamo una ipotesi semplificata in cui i b ttit di l k i d tt togni battito di clock corrisponde esattamente

l’esecuzione di una sola istruzione macchina– La frequenza del clock indica il numero di

operazioni elementari che vengono eseguite nell’unità di temponell unità di tempo

– Per esempio: il clock che ha circa 66 milione battiti per secondo il computer può eseguire circa 66per secondo il computer può eseguire circa 66 milione operazioni per secondo

Clock

• In realtà, questa ipotesi non è sempre vero– L’esecuzione di una istruzione può richiedere più

battiti di clockO ll t i l di l k i– Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverseDipende dal tipo di processore per esempio:– Dipende dal tipo di processore - per esempio:

• Il processore Intel 80286 richiede 20 battiti del clock per calcolare la moltiplicazione di due numerip

• Il processore Intel 80486 può calcolare la moltiplicazione di due numeri usando solo un battito del clock

Clock• La frequenza del clock si misura in:

– MHz (1 MHz corrisponde circa a un milione di istruzioni– 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)elementari/battiti al secondo)

• Per esempio: se acquistate un calcolatore e vi dicono che ha un processore a 3 GHzp– Vuol dire che il processore è in grado di eseguire (circa) 3

miliardi di istruzioni al secondo• Esempi:• Esempi:

– Pentium 4 – 3,0 – 3,8 GHz– Athlon 64 FX-SOI – 2,2 – 2,8 GHz– Pentium 4M (Centrino) – 1,6 – 2,4 GHz

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit -CPU)CPU)

– memorizzare l’informazioned l i i i l (RAM)• usando la memoria principale (RAM)

• usando la memoria secondariafare l’inp t/o tp t dell’informa ione– fare l’input/output dell’informazione

• usando i dispositivi di input/output

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit -CPU)CPU)

– memorizzare l’informazioned l i i i l (RAM)• usando la memoria principale (RAM)

• usando la memoria secondariafare l’inp t/o tp t dell’informa ione– fare l’input/output dell’informazione

• usando i dispositivi di input/output

Componenti principali di unComponenti principali di un computerp

Processore Memoria Unità centraleProcessore principale

StampanteStampante

Tasteria e monitor

Periferichedel calcolatore

Periferiche di input/outputMemoria secondaria

Tasteria e monitor

Componenti principali di unComponenti principali di un computerp

Processore Memoria Unità centraleProcessore principale

012Insieme al processore345 Sequenza di celle

Ad ogni cella è

pforma l’Unità Centraledi un elaboratore

– Ad ogni cella è associato un indirizzo (un numero progressivo

ti d 0)

Conserva i programmi e i dati usati dal processore

N

a partire da 0)usati dal processore

Memoria principale (RAM)

• Perché si chiama RAM (Random Access M )?Memory)?– Si può accedere direttamente alle varie celle, una

lt t il l i di ivolta noto il loro indirizzo– Il tempo necessario per accedere ad una cella è lo

stesso indipendentemente dalla posizione dellastesso, indipendentemente dalla posizione della cella nella sequenza

– Il termine “random” (casuale) indica proprio il fattoIl termine random (casuale) indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria

Memoria principale (RAM)

• Alcune proprietà della memoria i i lprincipale

– Veloce: per leggere/scrivere una cella ci l t di d ll’ di divuole un tempo di accesso dell’ordine di

poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9 sec )milionesimi di secondo = 10-9 sec.)

– Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tuttotogliendo l alimentazione si perde tutto

– (Relativamente) costosa

Memoria principale (RAM)

• Tutte le celle hanno la t di i 8 16 0 345

Indirizzi Contenuto

stessa dimensione: 8, 16, 32, o 64 bit

012

34513.200.9853.890

• Le operazioni che si eseguono sulla memoria

345 ADD R1 R2

LOAD 56 R1LOAD 3568 R1

sono operazioni di letturae scrittura

5 ADD R1 R2

• Una cella può contenere un dato o un’istruzione

N

Memoria principale (RAM)

• Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzicostante per rappresentare gli indirizzi

• Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio disarà il numero di celle indirizzabili: spazio di indirizzamento– Se si usano 16 bit per codificare gli indirizzi si– 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 b t )byte)

– Con 32 bit si potranno indirizzare fino a 4 294 967 296 celle (circa 4 GB di memoria)4.294.967.296 celle (circa 4 GB di memoria)

Memoria principale (RAM)bit 1 cifra binaria memorizza 0 oppure 1

byte 8 bit memorizza un carattere

parola da 16 a 64 bit numeri e indirizzi di memoria

Kilobyte (KB) 1024 byte circa mezza pagina di testo

Megabyte (MB) 1024 KB un libro di 200 pagineg y ( ) p g

Gigabyte (GB) 1024 MB alcuni volumi

T b t (TB) 1024 GB bibli tTerabyte (TB) 1024 GB una biblioteca

Petabyte (PB) 1024 TB molte biblioteche

L’Unità centrale: altri tipi diL Unità centrale: altri tipi di memoria

M i di l l tt (ROM)• Memoria di sola lettura (ROM)• Memoria cache• Buffer

Memoria di sola lettura (ROM)

• Non può essere modificata• A differenza della RAM non è volatile• Veloce quasi come la RAM• Veloce quasi come la RAM• Contiene le informazioni di

inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap)accende l elaboratore (bootstrap)

Memoria cache

• Livello di memoria intermedio tra i registri e la RAM– Memorizza i dati usati più spesso senzaMemorizza i dati usati più spesso senza

doverli recuperare tutte le volte dalla RAM (che è più lenta)(che è più lenta)

– Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer)costo della CPU (e quindi del computer)

• È molto più costosa della RAM

Memoria cache

• In genere è interna al processore (cache L1)

• Esiste anche una cache secondaria (L2)Esiste anche una cache secondaria (L2) esterna al processoreL di i ti i h d• Le sue dimensione tipiche vanno da 1MB a 8MB

Buffer

• Piccole parti di RAM con funzioni di memoria temporanea

• Usati per il passaggio delle informazioniUsati per il passaggio delle informazioni da un programma o dispositivo ad un altroaltro

Buffer• In Windows si parla di Clipboard, memoria

temporanea usata per esempio per le operazioni ditemporanea usata per esempio per le operazioni di Copia e Incolla

1

2

3

4

5

Clipboard

Foglio elettronico Programma di videoscrittura(buffer)

Componenti principali di unComponenti principali di un computerp

ROMCache L2

Processore Memoria principale

Cache L1

principale

Buffer

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit -CPU)CPU)

– memorizzare l’informazioned l i i i l (RAM)• usando la memoria principale (RAM)

• usando la memoria secondariafare l’inp t/o tp t dell’informa ione– fare l’input/output dell’informazione

• usando i dispositivi di input/output

Componenti principali di unComponenti principali di un computerp

Processore Memoria Unità centraleProcessore principale

StampanteStampante

Tastiera e monitor

Periferichedel calcolatore

Periferiche di input/outputMemoria secondaria

Tastiera e monitor

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 solitodimensioni della memoria secondaria sono di solito molto maggiori di quelle della memoria principale

• I supporti di memoria secondaria sono più lentipp prispetto alla memoria principale (presenza di dispositivi meccanici)N t tti i ti di i d i• Non tutti i supporti di memoria secondaria permettono l’accesso diretto ai dati– Alcuni permettono solo un accesso sequenziale (per p q (p

esempio, nastri magnetici)

Ricordiamo: caricamento delRicordiamo: caricamento del programmap g

• All’aumentare della capacità di memoria di massa aumenterà il numero di programmi emassa, aumenterà il numero di programmi e documenti che potete conservare nel vostro computercomputer

• Quando si “lancia” un programma questo viene copiato dalla memoria secondaria (diviene copiato dalla memoria secondaria (di solito un hard disk) nella memoria principale

• Questa operazione si chiama caricamentoQuesta operazione si chiama caricamento del programma e viene eseguita dal sistema operativop

Ricordiamo: caricamento delRicordiamo: caricamento del programmap g

• I programmi e i dati risiedono nel memoria secondaria

• Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principaleIl è i d di i l i t i i di i• Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi

Processore Memoria principale

Stampante Memoria d isecondaria

Memoria secondaria

• La memoria secondaria deve avere capacità di i i t i didi memorizzazione permanente e quindi per la sua si utilizzano principalmente tecnologie b tbasate:– sul magnetismo (tecnologia magnetica)

• dischi magnetici (hard disk e floppy disk)• nastri magnetici

sull’uso dei raggi laser (tecnologia ottica)– sull uso dei raggi laser (tecnologia ottica)• dischi ottici (CD-ROM, DVD)

Caratteristiche della memoriaCaratteristiche della memoria secondaria

• La memoria principale permette di indirizzare i i l ll (8 16 32 64 bit)ogni singola cella (8, 16, 32 o 64 bit)

• Mentre nel caso della memoria secondaria le informazioni sono organizzate in blocchi di dimensioni più grandi (da 512 byte a 4 KB)– Si riducono le dimensioni degli indirizzi– Si velocizzano le operazioni di lettura e scrittura

La memoria magnetica

• Sfrutta il fenomeno fisico della polarizzazionepolarizzazione

• Sul supporto ci sono delle particelle magnetichemagnetiche

• I due diversi tipi di magnetizzazione (positiva e negativa) corrispondono alle unitàe negativa) corrispondono alle unità elementari di informazione (0 e 1)

• La testina di lettura/scrittura rileva (e• La testina di lettura/scrittura rileva (e, nell’operazione di scrittura, può cambiare) la polarizzazionepolarizzazione

I dischi magnetici

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

• Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine del tutto simili a quelle utilizzate nelle cassette audio/video

I dischi magnetici

• I dischi sono suddivisi in tracce concentriche tt i i tt è f tt di die settori, ogni settore è una fetta di disco

– I settori suddividono ogni traccia in porzioni dette bl hiblocchi

Traccia BloccoTestina

Settore

I dischi magnetici

• La suddivisione della superficie di un disco in tracce e settori viene detta formattazionetracce e settori viene detta formattazione

• Tutti i blocchi contengono la stessa quantità di informazione indipendentemente dalla lorodi informazione, indipendentemente dalla loro posizione sul disco

• Il blocco è dunque la minima unità• Il blocco è dunque la minima unità indirizzabile– Il suo indirizzo è dato da una coppia di numeri che– Il suo indirizzo è dato da una coppia di numeri che

rappresentano il numero della traccia e il numero del settore

I dischi magnetici

• I dischi magnetici consentono l’accesso direttoÈ possibile posizionare direttamente la testina su un– È possibile posizionare direttamente la testina su un qualunque blocco (noto il numero della traccia e il numero del settore)

– Per effettuare un’operazione di lettura/scrittura la testina deve “raggiungere” il blocco desiderato

• Il disco gira; la testina sposta solo in senso radialeIl disco gira; la testina sposta solo in senso radiale

I dischi magnetici

testina testinepiatto

testinapiatti

testine

braccio

I dischiI dischi magneticig

• Hard disk (disco rigido/fisso): sono dei dischi che vengono utilizzati come supporto di memoriavengono utilizzati come supporto di memoria secondaria fisso all’interno del computer– Vari GB di memoria (normalmente >40 GB)– Circa 5400 – 7500 giri al minuto

• Floppy disk (dischetti flessibili): sono supporti rimovibilirimovibili– Oggi sono comuni floppy disk da 3,5 pollici di diametro,

capacità 1,44 MB– Circa 300 giri al minuto

La memoria ottica

• Usa il raggio laser e sfrutta la ifl i d ll lriflessione della luce– Il raggio laser viene riflesso in modo

di d fi i di i òdiverso da superfici diverse, e si può pensare di utilizzare delle superfici con dei piccolissimi forellinipiccolissimi forellini

• Ogni unità di superficie può essere forata o non forataforata

• L’informazione viene letta guardando la riflessione del raggio laser

La memoria ottica

0 1 0 0 10101

La memoria ottica

0 101

I dischi ottici

• CD:CD ROM (CD ROM ovvero Compact Disc Read Only– 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

• DVD (Digital Versatile Disc): più capace e veloce del normali CD

I dischi ottici

• Hanno un capacità di memorizzazione superiore rispetto ai dischi magnetici estraibile– CD: normalmente 650 MB - 800 MB

DVD: normalmente 4 7 17 GB– DVD: normalmente 4.7 – 17 GB• Hanno costo inferiore rispetto ai dischi

magnetici

Memory card/USB flash drive• Diffusi in vari formati e con vari nomi

(memory card, compact flash, memory pen memory stick USB flash drivepen, memory stick, USB flash drive, USB stick, …)

• Nati del mondo delle immagini digitali (per fotocamere e telecamere) come supporto interno estraibile

• Medie dimensioni: normalmente 128Medie dimensioni: normalmente 128 MB – 8 GB

• USB flash drive, USB stick: utilizzabile s lle porte USB di n personalsulle porte USB di un personal computer

• Più veloce dei floppy disk, e facilmente trasportabili

Unità di misura

• Floppy disk da 3,5 pollici di diametro, capacità 1 44 MBcapacità 1,44 MB

• Dischetti ad alta capacità, Iomega Zip (100 –750 MB) LS 120 (120 MB)750 MB), LS-120 (120 MB)

• Memory card/USB flash drive: 64 MB – 1 GBH d di k i GB di i• Hard disk, vari GB di memoria

• CD-ROM, 650 MB - 800 MB• DVD, da 4.7 fino a 17 GB di memoria• Nastri magnetici, usati solo per funzioni di

backup

Registribyte

Aumenta la capacità memorizzazione

100*picosecondi

Mem. cacheKB nanosecondi

Mem. centrale 10*nanosecondiMB Mem. centrale 10 nanosecondiMB

Dischi magneticie/o ottici microsecondo/

millisecondiGB

Nastri magnetici 10*millisecondi>10 GB

Aumenta la velocità di accesso

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit -CPU)CPU)

– memorizzare l’informazioned l i i i l (RAM)• usando la memoria principale (RAM)

• usando la memoria secondariafare l’inp t/o tp t dell’informa ione– fare l’input/output dell’informazione

• usando i dispositivi di input/output

Componenti principali di unComponenti principali di un computerp

Processore Memoria Unità centraleProcessore principale

StampanteStampante

Tastiera e monitor

Periferichedel calcolatore

Periferiche di input/outputMemoria secondaria

Tastiera e monitor

I dispositivi di input/output

• Per realizzare l’interazione uomo macchina sonouomo-macchina, sono necessari i dispositivi di input/outputp p

• La loro funzione primaria è quella di consentire …– l’immissione dei dati

all’interno del computer (input) o(input) o

– l’uscita dei dati dal computer (output)

I dispositivi di input/output

• Si collegano alle porte (o interfacce) del tcomputer

– Ad alto livello le porte sono le “prese” cui si tt i di iti iconnettono i dispositivi

– Ne esistono di tipi diversi a seconda del tipo di collegamento e della velocità di trasmissionecollegamento e della velocità di trasmissione (esempio: porta USB,porta 1394)

USB

I dispositivi di input/output• Input:

– Tastiera• Output:

– Tastiera– Mouse (e altri strumenti

di puntamento)S

– Videoterminale– Stampante– Casse acustiche– Scanner

– Microfono– Macchine fotografia e

– Casse acustiche

gtelecamera digitale

– Lettori di codici a barre

• Input/output:– Touchscreen– Modem

I dispositivi di input/output

• Solitamente hanno limitata autonomia rispetto al processore centraleal processore centrale

• Operano in modo asincrono rispetto al processoreprocessore– Si parla di gestione master-slave: è il processore

che deve coordinare le attività di tutti i dispositiviche deve coordinare le attività di tutti i dispositivi– (Input) Il processore non è in grado di prevedere e

di controllare il momento in cui un dato di input sarà a disposizione

– (Output) Il processore non può prevedere il momento in cui un dispositivo in output avràmomento in cui un dispositivo in output avrà terminato di produrre i dati in uscita

I dispositivi di input/output

• Un dispositivo di input deve avvertire il processore quando un dato di input èprocessore quando un dato di input è disponibile

• Un dispositivo di output deve avvertire il• Un dispositivo di output deve avvertire il processore quando ha terminato di produrre dati in uscitadati in uscita

• Al termine di ogni operazione i dispositivi inviano al processore un segnale dettoinviano al processore un segnale, detto interrupt, che indica che il dispositivo ha bisogno di attenzioneg

I dispositivi di input/output

• Ad ogni ciclo di clock, il processore verifica se i ti d i li di i t t d tsono arrivati dei segnali di interrupt da parte

dei dispositivi– Se sono arrivati dei segnali, il processore va ad

eseguire le operazioni di gestione dei dispositivi che hanno richiesto l’attenzioneche hanno richiesto l attenzione

– Se non sono arrivati dei segnali, il processore continua ad eseguire il programma correntecontinua ad eseguire il programma corrente

I dispositivi di input

• La tastiera: il principale strumento di inputO i lt h l’ t t di it t t l t ti– Ogni volta che l’utente digita un tasto, la tastiera “avverte” il processore che un carattere è disponibilep

– 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 tramitesu cui vengono visualizzate le informazioni fornite tramite tastiera

• La tastiera e il dispositivo di output non sono direttamente collegati tra lorodirettamente collegati tra loro

I dispositivi di input

• Il mouse: un dispositivo di puntamentoU f i ( lt i b l ) i di l i i– 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 p ,produce lo spostamento corrispondente della freccia(/simbolo) sul videoU lt i t l i i d id t– Una volta raggiunta la posizione desiderata, premendo uno dei pulsanti del mouse si genera un segnale in input che può corrispondere a g p p pdiverse funzioni

– Come la tastiera: è “cieco”, non ha capacita di l b ielaborazione

I dispositivi di output

• Il video: visualizza i dati che l’utente inserisce i i t i i lt ti d ll l b i i d lin input e i risultati delle elaborazioni del calcolatore– Un video può essere visto come una matrice di

punti (pixel) illuminati con diversa intensitàL di i d l id i i t i lli i– La dimensione del video viene misurata in pollici (lunghezza della diagonale del video)

• Portatile: 12 ai 15 pollici• Portatile: 12 ai 15 pollici• Desktop: 15 ai 17 pollici• Professionali: 17 ai 21 pollicip

I dispositivi di output• Il video:ci sono due tipi di monitor

– Cathode ray tube– Cathode ray tube– Liquid crystal display

• 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 video (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

Hardware: un esempio

• Da un videogioco: requisiti minimi di i tsistema– Scheda acceleratrice 3D con 32 MB di

imemoria– Processore Pentium III o Athlon a 800 MHz

io superiore– 256 MB di RAM– 2,0 GB di spazio non compresso su disco

(più 75 MB per le partite salvate)

Classi di computer

• Personal computer/elaboratori desktop (da scrivania): costo variabilescrivania): costo variabile

• Portatili: simili ai personal ma hanno dimensioni molto ridotte: costo variabiledimensioni molto ridotte: costo variabile

• Palmari: di dimensioni ridotte; si usano tenendoli nel palmo della manotenendoli nel palmo della mano

• Micro e mini computer: multi-utente; potenza di calcolo e costo > quello dei personaldi calcolo e costo > quello dei personal

• …

Classi di computer

• …• Workstation: per uso personale, ma

prestazione > quella dei personal• Mainframe: potenza > mini• Supercalcolatori: potenza > mainframeSupercalcolatori: potenza > mainframe• Elaboratori paralleli: computer dotati di più

processori che svolgono diversi compitiprocessori che svolgono diversi compiti simultaneamente