Memorizzazione dei dati
(Data Storage)
Corso di Didactics of Computer Science
a.a. 2011/2012
Silvia Chiapponi
I contenuti e le immagini sono tratti da
"Computer Science: an overview", di Glenn
Brookshear
I bit e la loro memorizzazione
• Le informazioni nei computer vengono codificate come sequenze di 0 e 1.
Queste cifre vengono dette bit (binary digits).
• Le sequenze di simboli possono rappresentare:
–
–
–
–
–
Numeri
Caratteri dell’alfabeto
Segni di punteggiatura
Immagini
Suoni .
I bit e la loro memorizzazione
Aritmetica Booleana
• Assegniamo al bit 0 il valore “falso” e al bit 1 il valore “vero”.
• Le operazioni booleane riguardano la combinazione di questi valori di verità.
AND
OR
XOR
NOT
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
I bit e la loro memorizzazione
Gate e Flip-Flop
• Per realizzare un’operazione booleana utilizziamo un dispositivo chiamato gate.
• I gate vengono costruiti attraverso ingranaggi, relè e dispositivi ottici.
I bit e la loro memorizzazione
Gate e Flip-Flop
Per memorizzare un bit si può utilizzare un circuito flip-flop.
Un flip-flop produce un valore di output 0 o 1, che rimane costante finché un impulso esterno non
ne determina il passaggio all’altro valore.
Finché entrambi gli input sono 0, l’output (qualunque esso sia) non
cambia.
Se cambio il valore del primo input in 1, l’output diventa 1, e rimane
costante anche quando riporto il primo input a 0.
Se metto temporaneamente 1 nell’input in basso, l’output diventa 0, e
rimane 0 anche quando riporto il valore del secondo input a 0.
I bit e la loro memorizzazione
Gate e Flip-Flop
I bit e la loro memorizzazione
Gate e Flip-Flop
Perché sono importanti i flip-flop?
1. Illustrano il design di circuiti digitali, a partire dai gate.
2. Sono un esempio di strumento astratto. Flip-flop dalla struttura interna differente possono avere
le stesse funzionalità esterne, che sono in sostanza quelle che servono a un ingegnere informatico.
Flip-flop in serie permettono di memorizzare informazioni, codificate come sequenze di 0 e 1.
I bit e la loro memorizzazione
Notazione esadecimale
• Lunghe stringhe di bit vengono chiamate stream.
• Per semplificare la rappresentazione di stream, si usa la notazione esadecimale, che sfrutta il fatto
che all’interno di un computer le sequenze tendono ad avere lunghezza uguale a un multiplo di 4.
La tabella riporta tutti i possibili blocchi di 4 bit e associa ad ognuno di
essi una cifra da 0 a 9 o una delle prime 6 lettere dell’alfabeto.
Dividiamo la sequenza in blocchi di lunghezza 4, e sostituiamo ad ogni
sottosequenza la sua rappresentazione esadecimale.
Es: 1010-0100-1100-1000 = A4C8
Memoria principale
• Per memorizzare informazioni, un computer contiene un grande numero di circuiti, ognuno dei
quali in grado di memorizzare un singolo bit. Questa “riserva” di bit prende il nome di memoria
principale.
• La memoria principale di un sistema è suddivisa in celle, ognuna di dimensione 8 bit (8 bit = 1 byte).
• Ad ogni cella è associato un indirizzo numerico, che serve ad identificare ogni cella all’interno della
memoria principale.
Memoria principale
Viene assegnato un ordine:
- ai bit all’interno di una cella;
- alle celle nella memoria.
In questo modo, tutti i bit in memoria possono essere
visti come ordinati secondo un’unica lunga stringa.
Oltre alla serie di circuiti che memorizzano i bit, ci sono altri circuiti che permettono di utilizzare i dati
memorizzati nelle celle. Così, ulteriori circuiti possono effettuare operazioni di read e write.
Le celle sono accessibili individualmente, senza doverle leggere necessariamente in sequenza: per questo la
memoria principale di un computer viene chiamata RAM (random access memory).
Memoria principale
• Non ci sono solo i circuiti flip-flop per immagazzinare i bit: alcuni tipi di RAM immagazzinano ogni
bit in un diverso condensatore: il numero di elettroni all’interno determina il valore 0 o 1. La carica
viene persa rapidamente, quindi periodicamente deve avvenire una fase di ricarica del
condensatore. E’ un tipo di memoria volatile, se il condensatore perde la carica l’informazione è
perduta: per questo viene detta DRAM (dynamic RAM).
• Il numero di celle nella memoria è una potenza di 2. Inizialmente, la memoria veniva misurata in
1024 celle (kylobyte, KB), ora si usano anche megabyte (MB), gigabyte (GB) e terabyte (TB).
Memoria di massa
• Oltre alla memoria principale, i computer hanno a disposizione anche altri dispositivi di memoria,
chiamati memoria di massa, che comprendono hard disk, CD, DVD, nastri magnetici e memorie
flash.
• La memoria di massa permette di memorizzare un maggior numero di dati e archiviare le
informazioni; è non volatile e ha un minor costo.
• Lo svantaggio della memoria di massa è il fatto che richiede operazioni meccaniche, e quindi è
necessario maggior tempo per memorizzare e accedere alle informazioni.
Memoria di massa
Sistemi magnetici
• L’esempio più noto di dispositivo magnetico di memoria di massa è l’hard disk, in cui i dati sono
contenuti su un sottile disco rotante, coperto di materiale ferromagnetico.
La testina, posta sopra e/o sotto al disco in rotazione,
effettua dei percorsi circolari, ognuno chiamato track;
riposizionando la testina, essa può avere accesso a
diverse track concentriche.
Spesso, negli hard disk si trovano più dischi
sovrapposti, montati su un unico fuso, e le testine dei
vari dischi si muovono all’unisono.
Memoria di massa
Sistemi magnetici
• Ogni traccia circolare è divisa in settori, ciascuno dei quali contiene lo stesso numero di bit. Nelle
tracce più esterne c’è un maggior numero di settori (zoned bit recording). Ogni settore ha un
indirizzo, come stringa indipendente di bit.
• L’allocazione delle tracce e dei settori non è intrinseca della struttura fisica del disco: sono
determinate dal processo di formattazione.
• La capacità di un hard disk dipende dal numero di dischi utilizzato (fino a 6) e dalla densità delle
tracce e dei settori.
• Per valutare le performance di un hard disk ci si basa sui seguenti parametri:
–
–
–
–
Tempo di ricerca, per muovere le testine da una traccia all’altra
Latenza rotazionale
Tempo di accesso
Tasso di trasferimento.
Memoria di massa
Sistemi magnetici
•
•
•
•
I nastri magnetici sono dispositivi di memoria di massa che si basano sul magnetismo: le informazioni
sono memorizzate sul rivestimento ferromagnetico di un sottile nastro di plastica, avvolto in una bobina.
Per accedere ai dati, il nastro è inserito in un tape drive, controllato dal computer, che legge, scrive e fa
tornare indietro il nastro.
Svantaggi:
– Lungo tempo necessario per muovere il nastro e passare da un’informazione all’altra.
Vantaggi:
– Basso costo;
– Affidabilità;
– Alta capacità di memorizzazione.
Memoria di massa
Sistemi ottici
• Un esempio di dispositivo che sfrutta tecnologia ottica per memorizzare dati è il CD (compact disk).
• I CD sono dischi di 12 cm di diametro fatti di policarbonato, coperti da un sottile foglio metallico. Le
informazioni sono memorizzate come successione di “buchi” e “terre”, e lette tramite un laser, che
riconosce le irregolarità sulla superficie mentre il disco ruota.
• I dati sono ordinati lunga un’unica traccia a forma di spirale, che va dal centro verso l’esterno. La
traccia è divisa in settori, ognuno della capacità di 2 KB. Il laser legge i dati a velocità costante,
perciò la velocità di rotazione del disco varia: è più elevata quando il laser legge i dati al centro, e
diminuisce all’esterno.
• Le prestazioni per l’accesso ai dati in un CD sono massime per l’accesso sequenziale (ad es. la
riproduzione musicale), non per l’accesso diretto a un singolo dato.
Memoria di massa
Sistemi ottici
• I tradizionali CD hanno una capacità di 700 MB.
• Hanno invece capacità maggiore, fino a diversi GB, i DVD, che si basano sulla stessa tecnologia, ma
sono formati da diversi strati, ognuno dei quali contiene informazioni.
• Infine ci sono i Blu-ray Disks, che hanno capacità 5 volte maggiore dei DVD. La tecnologia Blu-ray
sfrutta laser a maggior frequenza (blu/viola, invece che rosso), che lavorano con grandissima
precisione.
Memoria di massa
Memorie flash
• Nelle memorie flash, le informazioni sono memorizzate mandando segnali elettronici ad una serie
di transistor, ciascuno dei quali è in grado di mantenere una carica per diversi anni, e quindi
conserva il valore di un bit.
• Il vantaggio delle memorie flash è la possibilità di salvare e cancellare dati nello stesso passaggio; lo
svantaggio è che i transistor vengono danneggiati nelle ripetute cancellature.
• Dispositivi di memoria flash sono:
– Le chiavi USB, o flash drives, che hanno capacità fino ad alcuni GB, e sono ideali per il
salvataggio di dati offline;
– Le memory card SD (secure digital), che arrivano a contenere fino a 2 GB di dati, e possono
essere inserite in molti dispositivi elettronici, come fotocamere digitali, smartphone, lettori di
musica ecc.
Memoria di massa
• Le informazioni in un sistema di memoria di massa sono raggruppate in file: un file può contenere
un testo, una fotografia, un programma, una canzone.
• Un blocco di dati conforme con le caratteristiche del dispositivo di memoria è detto physical record
(ad es. i settori della traccia di un disco magnetico); è detto invece logical record un blocco di dati
“coerente” all’interno di un file (ad es. un paragrafo in un documento di testo).
Physical e logical record raramente coincidono.
• Un buffer è un’area di memoria usata per contenere dati in modo temporaneo, di solito durante il
processo di trasferimento da un dispositivo a un altro.
Le informazioni come bit
Rappresentazione di testi
• I testi vengono memorizzati attraverso un codice nel quale ad ogni simbolo alfanumerico viene
assegnata un’unica sequenza di bit.
• In generale un testo è dunque rappresentato da una lunga stringa di bit, costituita dai vari blocchi
che rappresentano ognuno un carattere o un simbolo nel testo, in successione.
• E’ detto file di testo un file costituito da una lunga sequenza di simboli codificato secondo l’ASCII o
Unicode.
– Text editor: manipola semplici file di testo
– Word processor: produce file più elaborati, con cambiamenti di font, allineamenti modificati, ecc..
Le informazioni come bit
Rappresentazione di testi
•
•
•
•
•
•
L’ANSI (American National Standards Institute) negli anni ‘60 adottò l’ASCII (American Standard Code for Information
Interchange) , un codice che usa sequenze di 7 bit per rappresentare le lettere maiuscole e minuscole dell’alfabeto inglese, i
segni di punteggiatura, le cifre dall’1 al 9 e altre informazioni sul testo.
L’ASCII venne poi esteso a 8 bit per ogni simbolo, in modo che ogni sequenza stia esattamente in un byte, e per avere
ulteriori 128 sequenze possibili per indicare altri simboli.
L’ISO (International Organization for Standardization) ha sviluppato diverse estensioni dell’ASCII, per venire incontro alle
esigenze delle altre lingue.
Nonostante le estensioni dell’ASCII, con questo codice non si possono rappresentare tutte le lettere di tutti gli alfabeti, ad
esempio quello cinese, giapponese o cirillico.
Inoltre, è scomodo per rappresentare testi nei quali compaiono parole di lingue diverse.
Per questi motivi è stato sviluppato Unicode, che usa 16 bit per rappresentare ogni simbolo, quindi può rappresentare
65536 simboli differenti.
Le informazioni come bit
Rappresentazione di testi
Tabella ASCII a 8 bit:
Le informazioni come bit
Rappresentazione di numeri
• Per memorizzare valori numerici non è conveniente usare il codice ASCII: con 16 bit si possono
rappresentare solo i numeri fino al 99.
• Si usa la notazione binaria: invece delle cifre dallo 0 al 9 usiamo solo 0 e 1, e invece della base 10
usiamo la base 2. In questo modo, con 16 bit riusciamo a codificare i numeri dallo 0 al 65535.
• Per rappresentare i numeri interi negativi si usa il sistema del complemento a due, mentre per i
numeri razionali la tecnica floating-point.
Le informazioni come bit
Rappresentazione di immagini
• Interpretiamo l’immagine come un insieme di punti, ognuno dei quali è detto pixel (picture
element), e viene codificato singolarmente.
• La collezione di tutti i pixel codificati viene detta bit map.
• Come si codificano i pixel?
IMMAGINI IN BIANCO E NERO:
Ogni pixel è rappresentato da un bit, il cui valore dipende dal colore bianco
o nero del pixel ad esso associato.
Le informazioni come bit
Rappresentazione di immagini
IMMAGINI A COLORI
1.
2.
Codifica RGB:
ad ogni pixel sono associati 3 byte di informazioni, uno per l’intensità di ognuno dei colori rosso, verde e blu.
Luminance & Chrominance:
una componente di luminosità del pixel, somma dei colori rosso, blu e verde, più due byte che rappresentano
la predominanza del blu e del rosso nel colore del pixel.
Svantaggi nella rappresentazione bit map:
un’immagine non può essere ridimensionata, se non allargando o
riducendo le dimensioni dei pixel, a scapito della sua qualità.
Le informazioni come bit
Rappresentazione di immagini
• Ogni immagine viene vista come insieme di strutture geometriche, linee e curve, codificate
attraverso la geometria analitica.
• E’ il metodo utilizzato nei sistemi di computer-aided design (CAD), e nella utility Paint di Windows:
durante il disegno, il software mantiene la struttura geometrica della forma che stiamo disegnando:
un rettangolo, un cerchio ecc.
• In questo modo riscalare e modellare l’immagine è molto semplice.
Le informazioni come bit
Rappresentazione di suoni
1.
Il metodo più generale per codificare dei suoni consiste nel campionare l’ampiezza dell’onda
sonora ad intervalli di tempo regolari, e registrare la serie di valori ottenuta. I dati provenienti da
ogni campionamento vengono rappresentati in 16 bit (32 bit per le registrazioni stereo).
Es: 8000 campionamenti/secondo era il tasso di campionamenti per le comunicazioni telefoniche a lunga distanza; i CD
musicali si basano su 44100 campionamenti/secondo.
2.
MIDI (Musical Instrument Digital Recording): codifica quale strumento suona una certa nota, e
per quanto tempo. Non codifica un suono, ma le “istruzioni” per ottenere quel suono. Una
registrazione MIDI può suonare in modo differente su diversi sintetizzatori.
Il sistema binario
• La notazione binaria utilizzata nei computer per rappresentare numeri si basa sul sistema di
numerazione binario.
• Così come nel sistema di notazione decimale, anche nel sistema binario ogni cifra (che in questo
caso può essere solo 0 o 1) è associata a una quantità.
Il sistema binario
• Per trovare la rappresentazione binaria di un numero intero positivo:
– Si divide il numero per 2 e si riporta il resto ottenuto
– Finché il quoziente ottenuto è diverso da 0, si continua a dividere il nuovo quoziente per 2 e si riporta il resto ottenuto.
– La rappresentazione binaria del numero di partenza si ottiene scrivendo da destra a sinistra la sequenza dei resti
ottenuti.
Il sistema binario
• Per sommare due interi rappresentati nel sistema binario si seguono le medesime procedure
dell’usuale addizione in base 10, tenendo conto che:
0+0=0
1+0=1
0+1=1
1+1=0
• Per rappresentare numeri frazionari nel sistema binario introduciamo un radix point, a sinistra del
quale si trovano le cifre che rappresentano la parte intera, mentre a destra la parte frazionaria.
Ad ogni posizione è associata una quantità doppia
rispetto a quella della posizione alla sua destra.
Memorizzare numeri interi
• Per rappresentare numeri interi all’interno dei computer si usa il metodo del complemento a due,
basato sul sistema binario, con l’aggiunta di alcune proprietà per rappresentare anche numeri interi
negativi.
Il complemento a due si basa sul fatto che ad ogni valore numerico è
associata una sequenza di bit della stessa lunghezza n.
Si parte da una stringa di n zeri, e si conta in sistema binario fino a raggiungere
una stringa del tipo 011…1: queste stringhe rappresentano i numeri interi
positivi.
Le stringhe che rappresentano numeri negativi si ottengono cominciando da
una stringa di n uno, e contando all’indietro in sistema binario fino a una
stringa del tipo 100…0.
Memorizzare numeri interi
• Nel complemento a due il bit all’estrema sinistra nella sequenza è detto bit di segno, in quanto
indica il segno del numero rappresentato. Se il bit di segno è = 1 il numero è negativo, se è = 0 è
positivo.
• Per passare da un numero al suo opposto nel complemento a due:
si copiano i primi bit a partire da
destra, fino a copiare un 1; da lì in
poi si prosegue verso sinistra
sostituendo ogni bit con il suo
complementare.
Memorizzare numeri interi
• Per sommare numeri rappresentati in complemento a due applichiamo la stessa tecnica
dell’addizione nel sistema binario, tenendo conto però del fatto che tutte le sequenze di bit hanno la
stessa lunghezza; quindi, se eventualmente la somma avesse un bit in più a sinistra, questo deve
essere troncato.
Es: 01010 +
11001 =
100011
00011
• Con questo algoritmo possiamo fare la somma di numeri concordi o discordi, senza problemi.
Memorizzare numeri interi
VANTAGGI DEL COMPLEMENTO A DUE:
•
Un unico circuito per sommare due numeri, unito a uno per fare l’opposto di un numero positivo, permette di
risolvere problemi di addizione e sottrazione.
PROBLEMI:
•
Nel complemento a due c’è un limite per i valori numerici che possono essere rappresentati. Per stringhe di bit
di lunghezza n, possiamo rappresentare solo i numeri compresi fra
.
Si ha il problema dell’overflow quando un calcolo dà come risultato un valore che è fuori da quest’intervallo.
Ci si accorge di un overflow perché la somma di 2 numeri positivi potrebbe dare un numero negativo, o
viceversa.
Nei computer odierni si usa il complemento a due a 32 bit, quindi si possono
rappresentare numeri di valore assoluto fino a 2147483647.
Memorizzare numeri interi
• Un altro metodo per rappresentare numeri interi è detto eccesso N. Anche qui, ogni numero è
rappresentato da una sequenza di bit della stessa lunghezza.
• Per prima cosa scegliamo la lunghezza n delle stringhe di bit da usare, quindi ordiniamo tutte le
possibili combinazioni di n bit come apparirebbero contando nel sistema binario.
Prendiamo la prima stringa con primo bit = 1 e con essa rappresentiamo il
valore 0; le stringhe successive rappresentano in ordine i numeri 1, 2, 3, ..,
quelle precedenti i numeri negativi -1, -2, -3, ..
I bit di segno sono opposti rispetto alla notazione in complemento a due.
Scarica

Memorizzazione dei dati