D01_Le Memorie _unita3_

Transcript

D01_Le Memorie _unita3_
Architettura di un sistema di elaborazione
N.1
Le memorie (Unità 3)
La memoria è la parte del computer destinata a conservare informazioni per un certo periodo di tempo. La
memorizzazione di informazioni in memoria, e il successivo recupero delle medesime, sono funzioni
fondamentali nel funzionamento del computer.
Per il fenomeno fisico alla base del processo di memorizzazione, vengono distinte diverse categorie di
memorie:
- Memorie a semiconduttore: il metodo è elettronico e si fonda sulla conservazione di una carica
elettrica all’interno di un piccolo conduttore. Si tratta di una memoria di piccole dimensioni fisiche e
molto veloce; per contro il costo è elevato. L’informazione può essere memorizzata in modo non
permanente e si parla di memoria volatile (il contenuto viene perso se cessa l’alimentazione del
sistema), oppure l’informazione viene stabilita in fase di creazione, non è modificabile, e la memoria si
dice non volatile.
- Memorie magnetiche: la tecnica utilizza la caratteristica di alcuni materiali (le sostanze
ferromagnetiche) di assumere e mantenere una direzione di magnetizzazione. Il costo non è
elevato e la memorizzazione è permanente (fino ad una successiva sovrascrittura); per contro la
velocità non è notevole e viene richiesto un dispositivo di lettura elettro-meccanico (con conseguente
possibilità di usura).
Appartengono a questa categoria i dischi magnetici quali ad esempio dischi rigidi e floppy disk.
Le cassette video e musicali, registrano le informazioni in formato analogico mentre per altri, come ad
esempio hard disk e floppy disk, il formato dei dati è di tipo digitale, i principi fisici che vengono
sfruttati sono gli stessi.
- Memorie ottiche: il principio usato è la possibilità di un raggio laser di causare e poi riconoscere
modifiche nella struttura della materia (riflettività, polarizzazione). I vantaggi e gli svantaggi sono
simili a quelli delle memorie magnetiche, ma vengono migliorati i parametri costo e velocità; per
questa ragione, le memorie di tipo ottico hanno sostituito quelle magnetiche.
Funzionano in questo modo i CD audio e i CD-Rom e anche i CD riscrivibili e i DVD. L’informazione
è registrata in formato digitale e la successione di 0 e di 1 viene incisa sul disco come una sequenza di zone
opache e di zone riflettenti. Il lettore emette un raggio di luce che viene riflesso dal disco e poi
letto da un apposito rivelatore opto-elettronico.
La storia di questi supporti è molto recente, perché la tecnologia per realizzarli risale agli anni ’70, ma solo
nel 1982 Philips e Sony lanciano sul mercato il primo CD audio; gli altri verranno in seguito, il
DVD solo nel 1998.
I moderni elaboratori utilizzano memorie anche funzionalmente e logicamente distinte.
I diversi tipi di memoria utilizzati dai sistemi di elaborazione possono essere classificati:
•
•
•
memorie ad accesso casuale (RAM, Random Access Memory)
memorie a sola lettura (ROM, Read Only Memory)
memorie di transito (o cache, “ripostiglio”)
1
Memoria ad accesso casuale
La memoria ad accesso casuale, detta memoria RAM, permette l’accesso alle informazioni in modo
diretto e in tempi molto brevi. Dal punto di vista logico essa può essere vista come una grande
matrice monodimensionale formata da celle formate da un indirizzo e da un contenuto.
Il processore accede al contenuto (in lettura o in scrittura) della cella per mezzo del suo indirizzo:
Fig.1 Struttura della memoria principale
Accedere ad un dato significa selezionare mediante l'indirizzo la cella in cui esso è memorizzato e prelevare
il valore. Memorizzare un dato richiede di specificare l’indirizzo della cella in cui si vuole inserirlo.
L'indirizzo fisico di una cella è importante perchè permette al calcolatore di individuare le celle. E’ importante
notare che nei linguaggi di programmazione ad alto livello non sarà necessario riferirsi ad una cella di
memoria con l'indirizzo fisico, ma si userà un indirizzamento simbolico, ossia ci si riferirà ad essa attraverso
un nome.
Nella memoria RAM vengono caricati sia il programma da eseguire che i dati, ossia tutta l'informazione
necessaria alla esecuzione del processo corrente, e si possono compiere operazioni sia di lettura che di
scrittura, ma è una memoria temporanea (volatile), cioè quando si spegne il computer le informazioni che vi
sono contenute vengono perse.
La memoria RAM è del tipo semiconduttore e può essere di due tipi:
• RAM statiche (SRAM), costituite di flip-flop; in esse l'informazione è mantenuta finché è
presente la tensione di alimentazione;
• RAM dinamiche (DRAM), costituite di condensatori la cui carica tende progressivamente a
disperdersi. In questo caso per conservare l'informazione è necessario ripristinare
periodicamente le cariche sui condensatori e viene svolta periodicamente dal microprocessore
un’operazione chiamata refresh.
Nella SRAM i chip usano due o quattro transistor per ogni cella di bit. I chip SRAM sono molto veloci ma
hanno bisogno di dissipare potenza; la necessità di usare molti componenti, li rendono molto costosi. La
SRAM è solitamente usata per le memorie cache, dove elevate velocità e ridotti consumi sono caratteristiche
fondamentali.
Nella DRAM i chip possono contenere un numero di celle fino a quattro volte maggiore. Viene
utilizzato un solo transistor per ogni bit, e periodicamente bisogna provvedere al refresh della memoria,
bisogna cioè riscrivere continuamente le informazioni nelle celle di memoria (già dopo un millesimo di
secondo non è più possibile distinguere il valore dei bit). Questa operazione, eseguita da un circuito
interno alle memorie stesse, deve essere eseguita molto spesso ed è un processo con priorità molto alta
continuamente in esecuzione in background. La Dram è più utilizzata perché ha un costo più basso rispetto alla
memoria statica.
La DRAM più conosciuta è la SDRAM o RAM Sincrona, la cui caratteristica principale è la capacità di
operare in sincronismo con il clock del bus di sistema.
Le memorie che si usano attualmente nei personal computer sono di tipo DDR.
Cosa significa però esattamente DDR? In inglese è l’acronimo di Double Data Rate. Questo tipo di memorie,
sono in grado di fare 2 cicli di trasferimento dei dati per ogni ciclo di clock, rispetto alle vecchie memorie
2
SDRAM, a parità di clock, trasferiscono il doppio dei dati.
Alla fine del 2008 Intel ha rilasciato il primo processore di nuova generazione i7. Questi processori sono usciti
sul mercato insieme a nuovi chipset per schede madri, gli X58. Insieme a questo nuovo tipo di chipset, è stato
necessario introdurre un nuovo tipo di memoria. Siamo parlando della DDR3.
Negli ultimi 2 anni praticamente tutta l’industria dei computer, sia fissi, netbook o laptop si è convertita
alla nuova tecnologia. Tutti i nuovi processori Intel possono essere utilizzati soltanto con schede madri che
sopportano memoria DDR3. Più recentemente, anche lo storico avversario di Intel, AMD, si è convertita alle
nuove memorie.
A questo punto dobbiamo vedere che cosa cambia tra la tecnologia DDR2 e DDR3. Si tratta sostanzialmente
della stessa tecnologia, che però cerca di incrementare il numero dei trasferimenti di dati ad ogni ciclo di
clock. Nel caso della memoria RAM DDR2, ci sono 4 trasferimenti di dati per ogni ciclo di clock, mentre
nella DDR3 si arriva ad 8.
Per fare un esempio se abbiamo un ciclo di clock di 100 MHz, una memoria RAM DDR, riesce a trasferire 1600
MB/s. Se prendiamo una DDR2 raggiunge 3200 MB/s, e infine una DDR3 arriva addirittura a 6400 MB/s.
La velocità di una memoria si misura attraverso il suo tempo di accesso, ossia il tempo necessario a
prelevare un dato. Il tempo di accesso si misura come l'intervallo di tempo che intercorre dall'istante in
cui è dato l'ordine di recuperare (fetch) un'informazione dalla memoria e l'istante in cui tale
informazione è disponibile per l'unità centrale, attualmente i tempi di accesso alla memoria centrale sono
dell’ordine delle decine di nanosecondi (1 ns = 1 miliardesimo di secondo).
E’ quindi importante considerare, oltre alla capacità della memoria, anche la velocità delle linee di
comunicazione con la CPU, ovvero la frequenza del clock di sincronismo (velocità sul Bus).
I chip di memoria sono montati su apposite schede collegate sulla scheda madre.
In precedenza le memorie erano montate su schede dette SIMM (Single Inline Memory Module), un modello
di scheda di memoria RAM caratterizzata da contatti su una sola faccia della scheda, più recentemente su
schede DIMM (Dual Inline Memory Module), su due facce.
SIMM
DIMM
3
Memoria a sola lettura
La memoria a sola lettura, detta memoria ROM, è una memoria in cui l’informazione è registrata
permanentemente (mantiene le informazioni anche quando il computer viene spento), può essere solo letta e
attualmente qualcuna anche modificata.
Per le sue caratteristiche, la ROM è utilizzata per contenere informazioni particolarmente protette, come il
BIOS (Basic Input Output System) del sistema.
Come per la RAM, l'accesso alle locazioni è di tipo casuale, la logica è quindi identica ma con
possibilità di sola lettura.
Esistono vari tipi di ROM:
•
•
•
le PROM(Programmable ROM)
le EPROM(Erasable PROM)
le EEPROM(Electrically Erasable ROM)
PROM
Nelle PROM (Programmable ROM) l’utente può programmare autonomamente i contenuti binari della memoria.
La memoria PROM può essere programmata una sola volta.
EPROM
Le EPROM (Eraseable PROM) sono una prima soluzione al problema della riprogrammabilità. In queste
memorie il chip presenta una piccola finestrella di quarzo trasparente. Esponendo il chip alle radiazioni
ultraviolette per un periodo di 15-20 minuti, viene cancellata tutta la memoria e può essere riprogrammata. Per
fare ciò occorre togliere il chip dalla scheda madre e procedere con la riprogrammazione.
EEPROM
Le EEPROM (Electrically Eraseable PROM) sono memorie di tipo programmabile ma con qualche vantaggio in più
rispetto alle EPROM:
•
•
•
i dati vengono cancellati in pochi millisecondi, contro i 15-20 minuti dell’EPROM
per effettuare il processo di cancellazione non è necessario staccare il chip dalla scheda madre, ma può essere
fatto on-line utilizzando le tensioni fornite dall’alimentatore alla scheda madre.
Si può cancellare una singola cella di memoria anziché tutta la memoria. In tal caso la memoria si chiama
EAPROM (Electrically Alterable PROM)
Nei sistemi di elaborazione moderni questi tipi di chip consentono di modificare il BIOS del proprio computer.
Memoria di transito o Memoria cache
La memoria cache (memoria “ripostiglio”) è realizzata con tecnologia SRAM (RAM statica) e si trova
logicamente situata tra la memoria centrale e il microprocessore. E’ più veloce della RAM ma può
memorizzare meno dati.
La memoria cache è una memoria temporanea utilizzata per migliorare il trasferimento dei dati tra la
memoria centrale e i registri della CPU; la cache, sensibilmente più veloce della memoria centrale,
contiene i dati usati più frequentemente dalla CPU, producendo così accessi più veloci.
Quando il processore richiede un dato, questo viene prima ricercato nella memoria cache (dove con più
probabilità si trova) e, in caso positivo (cache hit), viene caricato in modo quasi istantaneo nei registri
del processore, in caso negativo (cache miss) l’informazione viene recuperata dalla memoria centrale e,
in parallelo, vengono aggiornati i contenuti della memoria cache in modo che i dati in essa residenti
siano sempre i più richiesti (in termini probabilistici).
In dettaglio funziona così:
L’indirizzo di una cella è diviso in due parti, una parte detta tag (o numero di blocco) e una parte detta
offset (o distanza).
La memoria cache è logicamente formata da due parti, una parte che contiene i tag e una parte che
contiene i dati:
4
Indice dci Tag
Memoria dati
Tag 0
Tag 1
………
Blocco 0
………
Tag n
………
Blocco n
Blocco 1
………
Se ad esempio vogliamo leggere il dato all’indirizzo FAA5, la parte del Tag, FAA, viene cercata negli indici
dei Tag:
se il Tag esiste, e ad esempio corrisponde al Tag1, che punta al Blocco 1, il dato sta nella cella 5 del
blocco 1 in Memoria dati.
se il Tag non c’è, il processore va in memoria centrale e, prima di trattare il dato, il blocco di
memoria centrale FAA viene copiato nella zona memoria dati della cache e il numero del blocco
viene inserito nella tabella degli indici.
Ovviamente, per inserire il nuovo blocco occorre che nella cache esista lo spazio, se questo non c’è
occorre eliminare un blocco esistente. La scelta del blocco da eliminare è dettata da alcune scelte, ad
esempio si toglie il blocco che da più tempo è in cache.
Esistono vari livelli di cache:
primo livello (L1): cache integrata
direttamente nel processore
o secondo livello (L2): cache esterna ma
collegata direttamente al processore. Il
collegamento fra la cache e il processore
avviene tramite un bus specializzato, chiamato
back-side, che può lavorare alla stessa velocità
del processore.
o terzo livello (L3): cache esterna sulla
motherboard.
o
Con una struttura a più livelli il meccanismo di accesso ai dati è il seguente:
1)
il microprocessore interroga la cache di primo livello per leggere un’informazione:
• Se la risposta è positiva preleva il dato e lo tratta
• Se il dato non è presente lo cerca nella cache di secondo livello:
o Se l’informazione è presente nella cache di secondo livello, il microprocessore lo tratta e
contemporaneamente il blocco contenente il dato viene ricopiato nella cache di primo livello
o Se l’informazione non è presente nella cache di secondo livello lo cerca nella cache di terzo
livello:
⇒ se l’informazione è presente nella cache di terzo livello, il microprocessore lo tratta e
contemporaneamente il blocco contenente il dato viene ricopiato nella cache di
secondo livello
⇒ se l’informazione non è presente nella cache di terzo livello lo preleva dalla memoria
principale e copia il blocco contenente il dato in tutte le cache.
5
Le prestazioni del sistema aumentano all'aumentar della quantità di cache installata, infatti, quando diciamo
che il microprocessore ha un clock di f MHz, significa che il microprocessore lavora
alla frequenza f con la cache, e si collega poi al bus con la frequenza di clock del bus. Poiché aumentare
la velocità del bus è molto costoso, si adotta un’architettura che prevede l’uso di cache memory.
La memoria cache è piccola ma velocissima, per questo viene utilizzata nei sistemi di elaborazione per
contenere dati e codice ai quali il microprocessore accede frequentemente.
Il Bios
Il BIOS (Basic Input Output System) è un insieme di programmi memorizzati nella ROM che operano
da interfaccia tra l’hardware e il sistema operativo. Dato che l'esecuzione di un programma si trova in
memoria centrale e che la RAM all'accensione non contiene ancora niente, le prime istruzioni da
eseguire si trovano nella rom. In questa maniera l'indirizzo viene trovato automaticamente. La prima
operazione che deve essere eseguita è il caricamento nella memoria del sistema operativo:
BOOTSTRAP.
L’architettura di un sistema di elaborazione è organizzata a strati, dall’applicazione all’hardware:
Il Bios è invisibile a chi usa il computer, ma è di fondamentale importanza per un sistemista. Risiede
in una memoria della EEPROM.
Le informazioni necessarie per il corretto funzionamento del computer sono fissate attraverso il setup
del Bios: sono i parametri che predispongono il lavoro del computer e che alcune volte devono essere
modificati per aggiornare la configurazione in modo da ottenere le massime prestazioni.
I parametri di setup sono memorizzati in una piccola memoria speciale chiamata CMOS che è di tipo
RAM, costruita con la tecnologia CMOS che consente bassissimi consumi, e che, per evitare di
perdere le informazioni allo spegnimento del computer, è alimentata a parte con la batteria di backup.
La memoria CMOS fa parte di un circuito che comprende anche il clock in tempo reale del computer
ed e' alimentato da una batteria (e' questa che fornisce l'alimentazione all'orologio anche quando il computer e'
spento), conserva l'orario corrente e i dati di configurazione del BIOS. Una piccola batteria
al litio costruita nel chip della CMOS può mantenere i dati salvati anche per più di 10 anni.
COSA FA IL BIOS
Il Bios ha molteplici ruoli ma quello più importante è sicuramente il caricamento del sistema
operativo. Quando viene acceso il PC, il microprocessore inizia ad eseguire delle istruzioni. Ma dove
va a cercarle? Ovviamente non le può leggere dal sistema operativo visto che questo è localizzato sull'hard
disk ed il microprocessore non è in grado di accedervi perché nessuno gli ha ancora detto
come si fa. Viene da se che l'unico posto dove trovare le istruzioni di base è proprio il Bios. Quando si
accende il computer il BIOS esegue le seguenti operazioni in sequenza:
o
o
o
o
o
Controlla il CMOS Setup per i settaggi personalizzati
Carica i vari drivers
Inizializza i registri
Effettua l'auto test (POST, ovvero power-on self-test)
Mostra i settaggi di sistema a video
6
Intel motherboard 945 drivers free download Drivers Windows XP
7
Intel Core i7 965EE, i7 940, i7 920 Review :: Intel X58 Express Chipset Features
(11-08-2008)
8
9