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:

Tuttavia, lo storage di backup off-line è:

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:

Ecco riportate le fasi necessarie per conservare i dati nella RAM:

  1. I dati da conservare vengono presentati ai collegamenti.

  2. L'indirizzo tramite il quale i dati devono essere conservati viene presentato ai collegamenti dell'indirizzo stesso.

  3. Il collegamento lettura/scrittura è impostato in modalità di scrittura.

La ripresa dei dati è molto semplice:

  1. L'indirizzo dei dati desiderati viene presentato ai collegamenti dell'indirizzo stesso.

  2. Il collegamento lettura/scrittura viene impostato in modalità lettura.

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

NotaNota 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:

Di questi, solo l'ultima fase non dipende da alcuna operazione meccanica.

NotaNota 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:

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.

Note

[1]

"RAM è l'acronimo di "Random Access Memory," e rappresenta un termine che può essere usato per ogni tecnologia storage che permette un accesso non-sequenziale dei dati conservati, quando gli amministratori usano il termine RAM, essi indicano la memoria principale del sistema .