4.2. Gamma dello Storage
I computer moderni utilizzano una variet� di tecnologie storage. Ogni tecnologia si orienta verso una funzione specifica, con relative velocit� e capacit�.
Queste tecnologie sono:
In termini di capacit� e costi, queste tecnologie formano una vasta gamma. Per esempio, i registri CPU sono:
Molto veloci (tempo di accesso in pochi nanosecondi)
Capacit� bassa (generalmente meno di 200 bytes)
Capacit� di espansione molto limitata (sar� necessario un cambiamento nell'architettura della CPU)
Costoso (pi� di un dollaro per byte)
Tuttavia, lo storage di backup off-line �:
Molto lento (il tempo di accesso si potrebbe tradurre in giorni se il media di backup deve ricoprire lunghe distanze)
Capacit� molto elevata (10 - 100 gigabytes)
Capacit� essenziali di espansione molto limitate (limitato solo dallo spazio necessario per ospitare il media di backup)
Non � costoso (centesimi per byte)
Utilizzando tecnologie diverse con capacit� diverse � possibile migliorare il design del sistema in modo da aumentare le prestazioni diminuendo il costo. Le sezioni seguenti affrontano ogni tecnologia all'interno della gamma dello storage.
4.2.1. Registri CPU
Al giorno d'oggi ogni design della CPU include diversi registri a seconda dei compiti, dalla conservazione dell'indirizzo d'istruzione, a compiti generali di data storage e di manipolazione. I registri CPU funzionano alla stessa velocit� del resto della CPU; se cos� non fosse, essi potrebbero avere un impatto negativo nei confronti delle prestazioni generali del sistema. Il motivo per tale impatto nelle prestazioni, � rappresentato dal fatto che tutte le operazioni eseguite dalla CPU necessitano l'utilizzo dei registri.
Il numero dei registri CPU (ed il loro utilizzo) dipendono strettamente dal design della CPU stesso. Non vi � alcun modo per modificare il numero di registri CPU a meno che non migrate ad un CPU con diversa architettura. Per queste ragioni, il numero di registri CPU pu� essere considerato costante, in quanto modificarli potrebbe essere molto laborioso e costoso.
4.2.2. Memoria Cache
Il compito della memoria cache � quello di comportarsi come un buffer tra i registri della CPU e la memoria del sistema molto pi� lenta e grande — generalmente indicata come RAM[1]. La Memoria Cache possiede una velocit� di funzionamento simile alla CPU stessa, quando la stessa CPU accede i dati nella cache, la stessa non viene messa in attesa.
La Memoria Cachey viene configurata in modo che se i dati devono essere letti da una RAM, l'hardware del sistema esegue un controllo per determinare se i dati desiderati sono presenti nella cache. Se i suddetti dati sono presenti nella cache, essi vengono ripresi velocemente e usati dalla CPU. Tuttavia, se i dati non sono presenti nella cache, vengono letti dalla RAM e durante il loro trasferimento alla CPU, vengono posti nella cache (in caso gli stessi dati servissero pi� in avanti). Dal punto di vista della CPU, tutto questo viene eseguito in modo pultito, cos� l'unica differenza tra l'accedere i dati in una cache e i dati in una RAM, � solo la quantit� di tempo necessario per ritornare i dati stessi.
In termini di capacit� dello storage, la cache � molto pi� piccola della RAM. Per questo motivo ogni byte presente nella RAM, non pu� avere una propria posizione unica nella cache. In questo caso � necessario dividere la cache in sezioni, capaci di essere usate per conservare diverse aree della RAM in tempi diversi. Anche se vi � una differenza in misura tra la cache e la RAM, data la sequenza e la natura dell'accesso allo storage, una piccola quantit� di cache � in grado di velocizzare l'accesso ad una quantit� maggioredi RAM.
Quando si scrivono i dati direttamente dalla CPU, le cose si complicano leggermente. Si possono usare due diversi approcci. In entrambi i casi, i dati vengono prima scritti su di una cache. Tuttavia, poich� il compito di una cache � quello di funzionare come una copia veloce dei contenuti di determinate porzioni della RAM, ogni volta che una parte dei dati varia il proprio valore, il nuovo valore deve essere scritto sia sulla memoria cache che sulla RAM. Diversamente, i dati presenti sia sulla cache che sulla RAM non corrisponderanno pi�.
I due approcci differiscono nel modo di eseguire tale procedura. Un approccio, conosciuto come caching write-through, scrive immediatamente i dati modificati su di una RAM. Il caching Write-back tuttavia, ritarda la scrittura sulla RAM di dati modificati. Il motivo � quello di ridurre la riscrizione dei dati modificati sulla RAM,ogni qualvolta i suddetti dati vengono modificati.
La cache del tipo 'Write-through' � leggermente pi� semplice da implementare, per questa ragione � la pi� comune. La cache 'Write-back' � leggermente pi� complessa; in aggiunta a conservare i dati, � necessario mantenere un meccanismo in grado di evidenziare i dati conservati nella cache come dati puliti (cio� i dati presenti nella cache sono gli stessi presenti nella RAM), o sporchi (cio� i dati nella cache sono stati modoficati, e quindi i dati nella RAM non sono pi� aggiornati). � necessario altres� implementare un modo per ripulire periodicamente le entry sporche presenti nella cache sulla RAM.
4.2.2.1. Livelli della cache
I sottosistemi odierni della cache possono avere diversi livelli; e cio�, ci potrebbe essere pi� di un set di cache tra la CPU e la memoria principale. I livelli sono spesso numerati, con i numeri pi� bassi accostati alla CPU. Molti sistemi possiedono due livelli cache:
L1 cache viene spesso posizionato direttamente sul chip della CPU, e funziona alla stessa velocit� della CPU
L2 cache � spesso parte del modulo della CPU, funziona alla stessa velocit� della CPU (o molto simile) ed � generalmente un p� pi� grande e lento di L1 cache
Alcuni sistemi (normalmente server ad alte prestazioni) possiedono anche l'L3 cache, il quale � generalmente parte della scheda madre del sistema. Probabilmente, L3 cache � pi� grande (e forse pi� lento) di L2 cache.
L'obbiettivo di tutti i sottosistemi cache —, siano essi singoli o multi-level —, � quello di ridurre il tempo di accesso medio ad una RAM.
4.2.3. Memoria principale — RAM
RAM rappresenta la parte principale dello staorage elettronico nei sistemi moderni. Viene usata come storage sia per i dati che per i programmi mentre gli stessi sono in uso. La velocit� della RAM in molti sistemi moderni si identifica tra la velocit� della cache memory e quella dei dischi fissi.
La funzionalit� di base della RAM � molto semplice. Al suo livello di base ci sono i chip della RAM — circuiti integrati che eseguono l'operazione di "remembering." Questi chip possiedono quattro tipi di collegamenti:
Collegamenti di alimentazione (per alimentare il circuito all'interno del chip)
Collegamenti dati (per abilitare il trasferimento dei dati in entrata o in uscita dal chip)
Collegamenti lettura/scrittura (per controllare i dati da conservare o da riprendere dal chip)
Collegamenti dell'indirizzo (per determinare dove bisogna leggere/scrivere i dati sul chip)
Ecco riportate le fasi necessarie per conservare i dati nella RAM:
I dati da conservare vengono presentati ai collegamenti.
L'indirizzo tramite il quale i dati devono essere conservati viene presentato ai collegamenti dell'indirizzo stesso.
Il collegamento lettura/scrittura � impostato in modalit� di scrittura.
La ripresa dei dati � molto semplice:
L'indirizzo dei dati desiderati viene presentato ai collegamenti dell'indirizzo stesso.
Il collegamento lettura/scrittura viene impostato in modalit� lettura.
I dati desiderati vengono letti dai collegamenti dei dati stessi.
Anche se queste fasi possono sembrare molto semplici, esse vengono eseguite ad una velocit� molto elevata, con una durata per ogni fase che si aggira intorno ai nanosecondi.
Quasi tutti i chip della RAM creati al giorno d'oggi vengono venduti come moduli. Ogni modulo consiste in un numero di chip RAM individuali collegati ad una piccola scheda del circuito. La struttura elettrica e meccanica del modulo, si attiene ai diversi standard del settore rendendo possibile cos� l'acquisto della memoria da diversi rivenditori.
| Nota Bene |
---|
| Il beneficio pi� importante per un sistema che utilizza i moduli RAM standard, � quello di mantenere un costo basso della RAM, grqzie al fatto che � possibile acquistare i moduli da pi� rivenditori. Anche se molti computer usano moduli RAM standard, ci sono sempre delle eccezioni. Le pi� comuni sono i computer portatili (ed anche qui si inizia a notare una certa standardizzazione), e server high-end. Tuttavia, anche qui � probabile che possano essere disponibili moduli RAM di terzi, presupponendo che il sistema sia relativamente diffuso e non un ultimissimo modello. |
4.2.4. Dischi fissi
Tutte le tecnologie fino adesso affrontate sono in natura volatili. In altre parole, i dati contenuti in uno storage volatile, vengono persi quando si disabilita l'alimentazione.
I dischi fissi, d'altro canto, sono non-volatili, — i dati contenuti restano presenti anche se si disabilita l'alimentazione. Per questo motivo, i dischi fissi occupano un posto particolare nella gamma dello storage. La suddetta natura li rende ideali per la conservazione dei programmi e dei dati utili a lungo termine. Un altro aspetto unico dei dischi fissi � quello che a differenza della memoria RAM e cache, non � possibile eseguire programmi in modo diretto quando questi sono conservati in dischi fissi; � necessario invece scriverli prima all'interno della RAM.
Diverso tra cache e RAM � la velocit� di conservazione dei dati e del loro recupero; i dischi fissi sono pi� lenti delle tecnologie elettroniche usate per la memoria cache e RAM. Tale differenza � dovuta principalmente alla loro narura elettromeccanica. Per il trasferimento da e per il disco fisso vi sono quattro fasi distinte. Il seguente elenco mostra le suddette fasi, insieme con il tempo relativo ad ognuna di esse ad essere completata:
Movimento del braccio d'accesso (5.5 millisecondi)
Rotazione del disco (.1 millisecondi)
Testine di lettura/scrittura dei dati (.00014 millisecondi)
Trasferimento dati per/da le elettroniche dell'unit� (.003 Millisecondi)
Di questi, solo l'ultima fase non dipende da alcuna operazione meccanica.
| Nota Bene |
---|
| Anche se vi � ancora molto da imparare, le tecnologie per il disk storage vengono affrontate pi� in dettaglio nel Capitolo 5. � necessario per adesso ricordarsi dell'enorme differenza in velocit� che vi � tra la RAM e le tecnologie basate sul disco, e che la loro capacit� di conservazione generalmente � maggiore di quella della RAM, almeno di un minimo di 10 volte fino ad un massimo di oltre 100. |
4.2.5. Storage di backup off-line
Lo storage di backup off-line rappresenta un passo in avanti in termini di capacit� nei confronti del disco fisso (maggiore) e in velocit� (pi� lento). In questo caso le capacit� sono effettivamente limitate solo dalla vostra abilit� di procurare e conservare i media in grado di essere rimossi.
Le attuali tecnologie usate in questi dispositivi varia moltissimo. Ecco quelle pi� diffuse:
Nastro magnetico
Disco ottico
Avere dei media in grado di essere rimossi significa anche che il tempo d'accesso diventa ancora pi� lungo, in particolare quando i dati desiderati sono su di un media non presente sul dispositivo storage. Tale situazione viene alleviata dall'uso di dispositivi specifici in grado di caricare e scaricare automaticamente i media, ma la capacit� di conservazione di questi dispositivi � piuttosto limitata. Anche nelle migliori delle ipotesi, i tempi di accesso vengono misurati in secondi, rappresentando comunque un tempo di accesso molto lungo anche rispetto alle prestazioni dei dischi fissi ad alte prestazioni, generalmente misurati in multi-millisecondi e considerati relativamente lenti.
Ora che abbiamo affrontato le diverse tecnologie per lo storage, esploriamo adesso i concetti di base per la memoria virtuale.