Questa voce o sezione sugli argomenti terminologia informatica e memorie informatichenon cita le fonti necessarie o quelle presenti sono insufficienti.
La memorizzazione di informazioni in memoria e il loro successivo recupero sono funzioni fondamentali nei processi dielaborazione dei dati. La capacità dei supporti di memoria elettronici di immagazzinare grandi quantità di dati in poco spazio e la velocità con cui è possibile prelevare un'informazione fa parte delle motivazioni chiave per lo sviluppo dell'elettronica, portando per esempio alla nascita deidatabase moderni. È anche possibile inserire ed eliminareprogrammi da una stessa memoria. Ciò fa sì che un computer possa teoricamente eseguire infiniti programmi nell'arco della sua esistenza, rendendo possibile unamacchina di Turing con una memoria di capienza finita.
Una memoria può essere considerata astrattamente come una sequenza finita di celle in cui ogni cella contiene una sequenza finita dibit, normalmente gestiti a gruppi di otto dettibyte. Pertanto lo spazio fisico della memoria può essere immaginato come una sequenza di posizioni, ognuna contenente un byte. Ogni posizione è individuata da un precisoindirizzo di memoria, normalmente espresso tramite un numero intero positivo. Ad oggi tra le tecnologie che implementano questo modello astratto, le più diffuse sono lamemoria elettronica, lamemoria magnetica e lamemoria ottica.
L'architettura di von Neumann, che rappresenta il modello semplificato di calcolatore, mostra come vengono impiegate le memorie. Una macchina di Von Neumann è divisa in una parte destinata alle elaborazioni, dettaprocessore, ed una parte destinata allamemorizzazione, detta memoria centrale. La memoria centrale contiene sia i dati su cui il processore opera, sia iprogrammi che forniscono le istruzioni che il processore deve effettuare.
Più in particolare, le operazioni che la CPU può fare sulla memoria di un computer sono fondamentalmente le seguenti:
Inizializzazione. È il trattamento che subisce la memoria prima dell'uso normale. Alcuni tipi di memoria (per esempio laRAM elettronica) non hanno bisogno di inizializzazione; per tali memorie, il contenuto iniziale è impredicibile. Per le memorie a sola lettura, l'inizializzazione consiste nella scrittura dei dati effettuata in fase di produzione. Per i dischi magnetici, l'inizializzazione consiste nella scrittura di dati che costituiscono un casellario in cui porre le informazioni utili (la cosiddettaformattazione).
Scrittura. È l'operazione di memorizzazione delle informazioni. Un esempio di scrittura è assegnare ilbyte 123 alla cella di indirizzo 1000.
Lettura. È l'operazione di recupero di informazioni memorizzate. Un esempio di lettura è chiedere alla memoria il contenuto della cella di indirizzo 1000. Si accede inoltre alla memoria e ai suoi contenuti ogni qual volta l'Unità di Controllo (Control Unit) del Processore richiede dati utili su cui eseguire un'operazione di elaborazione. Tutto ciò avviene grazie alle procedure di indirizzamento gestite dall'Address Logic, sottosistema del processore.
Per parlare indifferentemente di lettura o di scrittura, si usa il termineaccesso. Per esempio, per indicare che una memoria è veloce sia in lettura che in scrittura, si dice che ha un bassotempo di accesso. Mentre l'operazione di cancellazione dei dati inmemorie volatili in realtà non esiste in quanto più propriamente si può parlare disovrascrittura dei dati, é diverso invece il concetto di cancellazione per il caso dellememorie non volatili dove, in base alle tecnologia utilizzata, ogni locazione può necessitare di una sequenza di inizializzazione del settore chiamata più propriamente cancellazione. Le memorieEEPROM ad esempio hanno semplicemente dei tempi lunghi di cancellazione del singolo byte rispetto alla lettura e scrittura, invece per lememorie flash la cancellazione avviene in blocchi dipagine scrivibili chiamati settori; successive letture dei bit dopo una cancellazione si osserva che i dati hanno tutti lo stesso valore, di norma il valore "1"binaro e la scrittura permette di invertire lo stato del bit a "0" binario, ma non da "0" a "1", rendendo necessaria un nuovo ciclo di cancellazione e scrittura. Le perifericheSSD contengono soffisticaticontroller al fine di ottimizzare i cicli di scrittura e rendere la memoria simile e a undisco rigido, ma non senzacomplicazioni.
Le memorie per computer possono usare varie tecnologie che forniscono prestazioni e costi molto variabili. Spesso per le memorie veloci ma dall'alto costo unitario si usa l'espressione "memoria centrale" o "memoria primaria", mentre per le memorie dal basso costo unitario ma lente si usa l'espressione "memoria di massa" o "memoria secondaria".
Collegata allascheda madre tramite connettori chiamatisocket ed allaCPU tramite ilBUS di sistema, la memoria primaria, chiamata anche memoria centrale o memoria principale, contiene dati ed istruzioni prelevati dallamemoria di massa in attesa che questi siano a loro volta prelevati ed elaborati dal microprocessore, lavorando dunque in maniera strettamente accoppiata con esso ed essendo quindi assimilabile ad una memoria di transito o appoggio.
Molto spesso si tratta di memoriaRAM ememoria cache e nelle moderne architetture dei processori è spesso incorporata nellascheda CPU o direttamente nelchip del processore stesso. È una parte importante delcomputer in quanto dalle sue dimensioni in termini di capacità di immagazzinamento dipende la quantità massima di dati che possono essere prelevati e di conseguenza elaborati dal processore in condizioni dimonotasking emultitasking, ed è quindi considerata a tutti gli effetti un parametro prestazionale del computer stesso. Qualora la memoria primaria venga esaurita molti sistemi di elaborazione moderni sono in grado di implementare il cosiddetto meccanismo dellamemoria virtuale come estensione provvisoria della memoria primaria. Per realizzare una memoria principale vengono normalmente utilizzate tecnologie asemiconduttore (cioè vengono utilizzaticircuiti integrati a base di silicio).
Tale memoria è costituita da numerosissimecelle di memoria, dispositivi bistabili, capaci cioè di assumere due stati stabili alternativi attraverso i quali è possibile memorizzare la quantità minima di informazione (1 bit).Le operazioni che possono essere effettuate su questo componente sono due: lettura (load) e scrittura (store).Poiché nella realtà quotidiana le scelte possibili in vari casi sono molte più di due, un bit non è più sufficiente a rappresentarle e pertanto si è pensato di unire più celle di memoria inregistri di memoria.Se con un solo bit è possibile ottenere solo due diversi stati, con due celle (2 bit) è possibile rappresentare 22 alternative, con l'associazione di 3 celle (3 bit) 23 alternative, e così via...In particolare, la dimensione del registro più diffusa è quella da8 bit. L'unione di 8 bit forma infatti1 byte di memoria, il primo multiplo del bit, il quale può rappresentare fino a 256 possibili combinazioni diverse (28).In un registro di memoria le operazioni di lettura/scrittura avvengono contemporaneamente su tutte le celle facenti parte del registro. In memorie con registri da 1 byte, quindi, vengono lette 8 celle alla volta.
Ogni registro di memoria è denotato da unindirizzo.
Nell'operazione di lettura sulla memoria principale la CPU assume una posizionemaster rispetto alla memoria che è loslave. I due componenti sono collegati tra loro dalbus di sistema.
Il processo consiste essenzialmente nella seguente sequenza di operazioni:
Il MAR invia tale indirizzo alla memoria tramite la linea degli indirizzi del bus di sistema parallelamente al segnale che specifica il tipo di operazione che si sta effettuando (in questo caso, lettura);
La memoria preleva il dato contenuto nell'indirizzo specificato dalla CPU e lo invia, tramite la linea dei dati (presente anch'essa sul BUS di sistema), al Memory Data Register (MDR) della CPU.
MAR, PC e MDR sono registri speciali dell'unità centrale della macchina.
La scrittura consiste principalmente nelle seguenti operazioni:
Trasferimento dell'indirizzo che si intende scrivere dalla CPU al MAR e contemporaneamente trasferimento all'MDR del valore che si intende scrivere;
Trasferimento del valore dell'MBR (Memory Byte Register) alla cella di memoria il cui indirizzo è presente nel MAR.
La memoria centrale è organizzata come una tabella di celle, ciascuna delle quali è denotata da un indirizzo (celle che contengono una sequenza dibit; ogni bit può rappresentare l'informazione 0 oppure 1 tramite un diverso stato elettrico). Ogni cella ha una dimensione prefissata e gli indirizzi delle celle variano tra 0 e n, dove n è una potenza di 2.
Le operazioni che la memoria può effettuare sono due: lettura (load) e scrittura (store).
Bisogna distinguere tra vari tipi di memorie primarie, a seconda della funzione svolta e delle loro caratteristiche peculiari. Di seguito vengono elencate quelle più importanti.
RAM, l'acronimo per "random access memory", ovvero "memoria ad accesso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati dal calcolatore per elaborare. La RAM può essere volatile (si cancella spontaneamente ed ha bisogno di essere aggiornata), statica o tamponata (mantiene l'alimentazione anche a macchina spenta). Il processore identifica le celle della RAM tramite indirizzi preassegnati che ne specificano la posizione: la memoria si presenta, quindi, come un enorme vettore (stringa ordinata di elementi detti byte, ciascuno individuabile con un indirizzo). Il termine "random" evidenzia che non ci sono differenze ad accedere alle varie celle della memoria. Le caratteristiche della RAM vengono ereditate anche da tutte le altre memorie ad accesso casuale (individuabili facilmente dal fatto che contengono RAM alla fine). Sostanzialmente le memorie RAM si suddividono inDRAM (dinamiche),SRAM statiche e che vengono utilizzate per lamemoria cache.
Cache RAM, una memoria associativa integrata nel processore, che ha la caratteristica di essere molto veloce; dato l'elevato costo, viene utilizzata esclusivamente per contenere i dati e le istruzioni utilizzati più di frequente (in modo da migliorare notevolmente le prestazioni del processore).
ROM, l'acronimo per "read only memory", ovvero "memoria in sola lettura (o solamente leggibile)", è una memoria permanente (cioè ha un contenuto fisso che non può essere cancellato ed inoltre non è volatile), presente sulla scheda madre, che contiene le istruzioni che la CPU deve caricare per consentire l'avvio del sistema e le routine di base che prendono il nome diBIOS (Basic I/O System).
EPROM, l'acronimo per "erasable programmable read only memory", ovvero "ROM cancellabile e programmabile", che è una memoria in sola lettura, ma ha la particolarità di poter essere cancellata in particolari condizioni. Le EPROM si cancellano tramite l'esposizione ai raggi UV, mentre leEEPROM "electrically erasable programmable read only memory" si cancellano tramite un impulso elettrico mandato da uno strumento detto programmatore.
MRAM, l'acronimo per "magnetoresistive ram", ovvero "RAM magnetoresistiva", è una memoria ad accesso casuale di "nuova generazione", che utilizza le proprietà delmagnetismo, al posto di una serie di impulsi elettrici, per conservare le informazioni.
La fase di trasferimento da memoria di sistema a memoria cache viene attuata da un apposito circuito che prende il nome diMMU (Memory Management Unit). La MMU svolge anche il compito di gestione virtuale della memoria.
Inoltre c'è da far notare che a causa della dispersione della carica delcondensatore, di capacità estremamente piccola, vi è bisogno di un rinfresco continuo dell'informazione. A questo compito è dedicato un canale del circuito diDMA che ad intervalli regolari (153 ms) deve necessariamente rinfrescare l'intera memoria del sistema per evitare la perdita irrimediabile dei dati e quindi il collasso di funzionamento del computer.
Una particolare versione di memorie dinamiche viene utilizzata per la gestione dei video. In questi dispositivi si sfrutta l'azione del refresh, precedentemente richiamata per gestire le informazioni che dovranno periodicamente essere inviate al video evitando di passare quindi attraverso la CPU che renderebbe molto più lento il trasferimento dei dati.
La tecnologia utilizzata attualmente per la realizzazione di memoria video è laGDDR (Graphics Double Data Rate).
La memoria secondaria, chiamata anche memoria ausiliaria o memoria di massa, è un'unità che si aggiunge alla memoria primaria (o centrale) dell'elaboratore per accrescerne le capacità di memorizzazione. Consiste in una classe didispositivi che non sono posti a diretto contatto con ilprocessore. Di conseguenza i dati in essi contenuti non vengono persi una volta spento il processore stesso.
Qui sotto sono elencate le varie categorie di memorie secondarie:
Idischi magnetici, composti da uno o più dischi (idisk pack) ricoperti di materiale ferromagnetico, vengono "letti e scritti" (cioè su questi dischi vengono salvati e recuperati i dati) mediante un braccio mobile dotato della "testina di lettura/scrittura". I dati vengono trasferiti ai dischi magnetici tramite un buffer nella memoria centrale ed occupano successive posizioni lungo le tracce, sotto forma di differenti stati di magnetizzazione. I settori dei dischi vengono letti e scritti interamente utilizzando il numero della superficie, della traccia e del settore. Iltempo di accesso ai dischi magnetici è superiore rispetto a quello della memoria centrale, ma i costi, a parità di quantità di informazione memorizzata, sono decisamente più bassi. Di questa categoria fanno parte ad esempio glihard disk e ifloppy disk (realizzati con materiale plastico flessibile).
Idischi ottici, composti da materiale riflettente ricoperto da una sostanza protettiva, dove l'informazione viene registrata realizzando modificazioni della superficie riflettente e viene letta mediante un raggiolaser che riscontra le irregolarità della superficie riflettente. I dischi ottici sono senza dubbio i supporti di memoria secondaria più diffusi: ne esistono di vari tipi, alcuni riscrivibili (cioè una volta scritti possono essere riscritti nuovamente) e non riscrivibili (una volta immagazzinati dei dati sul disco, questo non è più riscrivibile con altri dati). Fanno parte di questa categoria iCD, iCD-ROM e iDVD.
Inastri magnetici, composti da fettucce di nastri magnetizzabili e gestiti dalle unità a nastro (che dispongono della testina lettura/scrittura), servono per svolgere funzioni dibackup elog (registrazione delle operazioni effettuate in un certo tempo). I nastri magnetici consentono solo un accesso sequenziale ai dati (cioè è necessario leggere tutti i dati precedenti prima di accedere ad un certo dato). Tra i vari tipi di nastri magnetici, le prestazioni migliori sono ottenute dainastri per la memorizzazione di dati digitali.
Un altro tipo di memorie secondarie, però ancora in fase di sviluppo, sono lememorie olografiche. Queste nuove tecnologie olografiche di archiviazione, avranno il pregio di poter memorizzare i dati non su una superficie (come fanno i supporti attuali) ma su un volume: queste nuove memorie saranno dunque caratterizzate da una elevata capacità di archiviazione ed in più da tempi di accesso brevi.
Tra le varie idee, il modo più promettente per archiviare più immagini olografiche sullo stesso mezzo è utilizzare differenti angoli didivergenza tra i due laser. Cambiando l'angolo di incidenza del raggio di lettura è possibile infatti leggere pagine diverse. Ci sono però alcune problematiche che ostacolano la realizzazione di queste nuove memorie; le più importanti sono:
l'elevata precisioneottica richiesta per il progetto
la difficoltà per l'allineamento dei vari componenti
le problematiche legate all'imperfezione del materiale utilizzato
il problema dell'elaborazione dei segnali di uscita dai quali vanno ricavati ibit inizialmente memorizzati
Il motivo principale che spinge i ricercatori alla realizzazione di queste memorie, è che la registrazione di dati su media magnetici ed ottici arriverà velocemente a scontrarsi con i limiti fisici dei supporti e quindi le memorie, che ora sono adeguate, potrebbero non essere più sufficienti per le necessità future.
Lememorie ad accesso sequenziale possono essere lette e scritte solamente all'indirizzo immediatamente successivo all'indirizzo a cui è avvenuto l'accesso precedente. I principali esempi di memorie ad accesso sequenziale sono i nastri magnetici.
Lememorie ad accesso diretto possono essere lette e scritte a qualunque indirizzo, con tempo di accesso variante e dipendente dall'indirizzo di memoria a cui è avvenuto l'accesso precedente.
Lememorie ad accesso casuale possono essere lette e scritte a qualunque indirizzo, ma con lo stesso tempo di accesso.
Per possibilità di scrittura da parte dell'utente finale
La tipica memoria può essere sia letta che scritta.Questi dispositivi sono dettimemorie a lettura-scrittura.
Tuttavia sono utilizzate anche memorie che vengono scritte solo in fase di inizializzazione, e per le quali non è possibile la scrittura nell'uso normale.Tale inizializzazione può essere effettuata in modo incrementale dalla stessa apparecchiatura con cui vengono riletti i dati scritti.Questi dispositivi sono dettimemorie scrivibili una sola volta, oWORM (Write Once, Read Many).
Alternativamente, può essere necessario scrivere tutti i dati con un'apposita apparecchiatura esterna prima di poter usare la memoria in lettura.Questi dispositivi sono dettimemorie a sola lettura, o ROM (Read-Only Memory).
Ecco gli esempi più diffusi per ognuno dei tre suddetti tipi:
In base alla capacità di memorizzare in maniera permanente i dati si distinguono due tipi di memoria:
memoria volatile: memorie che perdono le informazioni se non alimentate elettricamente (lo sono la maggior parte delle memorie elettronicheRAM);
memoria non volatile: memorie che mantengono le informazioni anche se non alimentate elettricamente (lo sono tutti gli altri tipi di memoria).
I difetti della volatilità sono i seguenti:
consumo di energia per conservare le informazioni;
la necessità di una fonte di energia rende meno portabile e maneggevole la memoria. I CD-ROM, per esempio, se dovessero avere un'alimentazione a batteria per mantenere le informazioni, sarebbero molto più costosi e scomodi;
perdita delle informazioni in caso di malfunzionamento o manutenzione del computer.
Nonostante i loro difetti, le memorie volatili sono molto utilizzate, in quanto hanno tempi di accesso molto inferiori a quelli di altre memorie.
Sulla base della velocità di accesso e del costo unitario
Per le memorie a lettura-scrittura, il tempo di lettura è normalmente vicino al tempo di scrittura, per cui si parla genericamente di tempo di accesso.Per le memorie scrivibili una sola volta, la scrittura può essere molto più lenta della lettura; in tal caso, dato che la memoria verrà letta molte volte, si considera come più significativo il tempo di lettura.
In generale, il costo unitario (cioè per byte) delle memorie cresce al crescere della velocità di lettura.Pertanto, la classificazione per velocità di lettura coincide sostanzialmente con la classificazione per costo unitario.
In base a tale criterio, si ha la seguente gerarchia:
Registri della CPU, che forniscono la massima velocità di accesso, al massimo costo unitario.
Cache interna alla CPU, detta anche cache di primo livello.
Cache esterna alla CPU, detta anche cache di secondo livello.
Memoria centrale, detta anche memoria principale, e detta spesso semplicemente (ma impropriamente) RAM.
Tamburi magnetici, oggi in disuso.
Dischi fissi (magnetici).
Dispositivi inseribili e rimovibili "a caldo", cioè senza spegnere il computer, come floppy disk, nastri, memorie flash, dischi ottici. Questi ultimi forniscono la minima velocità di accesso, al minimo costo unitario.