RAM è l’acronimo di Random Access Memory (memoria ad accesso casuale) e sta a indicare un tipo di memoria volatile che permette di accedere ai dati, ovunque siano posizionati, impiegando sempre la stessa quantità di tempo.

I punti cardine sono quindi la volatilità, intesa come la necessità di alimentazione per conservare i dati, e l’accesso casuale che va intesa come la capacità di leggere direttamente qualunque dato impiegando lo stesso tempo indipendentemente dalla sua allocazione sul supporto.

Pertanto, le memorie RAM si contrappongono, da un lato alle memorie non volatili (Hard Disk e SSD, CD/DVD, PenDrive, ecc.) e, dall’altro, alle memorie ad accesso sequenziale (come le musicassette ed i nastri magnetici in generale) o ad accesso diretto (come un vecchio giradischi o un odierno hard disk visto che la puntina può essere posizionata a piacimento).

La sua capacità di accedere alle informazioni molto più rapidamente degli altri tipi di memoria ha reso le RAM un componente praticamente indispensabile per processori e molti ASIC. Negli anni questo componente fondamentale ha subito una costante evoluzione che ne ha aumentato la velocità e la capacità in modo esponenziale.

Rinfreschiamoci la memoria

Prima di addentrarci nella storia della memoria RAM, è necessario spiegare alcuni termini chiave che potrebbero esservi utili anche in altre situazioni.

SRAM (Static RAM) e DRAM (Dynamic RAM) sono i due tipi di memoria volatile che si usano oggi. La differenza fra i due è che la SRAM può conservare i dati fintanto che è alimentata mentre la DRAM necessita che i dati siano riscritti periodicamente.

SRAM DRAM Densità Bassa Alta Consumo Alto Basso Costo Alto Basso Prestazioni Alte Basse

A causa delle differenze riassunte nella tabella, prima fra tutti il costo, l’industria ha utilizzato le SRAM solo nelle parti più critiche in cui il maggior costo era compensato dagli evidenti benefici (ad esempio la cache dei processori) mentre le DRAM sono state usate negli altri ambiti.

Clock è un termine che ricorre molto spesso nell’informatica. Detto in modo semplice, in elettronica si indica come clock un segnale periodico, composto da due valori (0 e 1) che si alternano ad intervalli regolari, che serve per sincronizzare i componenti digitali.

La frequenza è la misura del clock e sta ad indicare quante volte al secondo avviene l’alternanza dei due valori. Anche in questo campo la frequenza si misura in Hertz (Hz) seppure oggi si sia arrivati a frequenze così elevate che è necessario misurarle in MHz (MegaHertz, milioni di Hertz) o in GHz (GigaHertz, miliardi di Hertz).

Parlando di data path o bus non mi riferisco ai mezzi di trasporto, ma al canale di comunicazione attraverso cui comunicano componenti e periferiche. Tuttavia il paragone sarebbe azzeccato perché, proprio come un autobus, più il bus è ampio più sono i dati che può trasmettere. Dall’ampiezza del bus, misurata in bit, e dalla frequenza del clock dipende il bandwidth ovvero la quantità di dati che può essere trasmessa in una certa unità di tempo. Le unità di misura in questo caso sono i bit per secondo (bps) ed i Byte per secondo (Bps) nonché i relativi multipli.

Non credo che sia necessario spiegare cosa sono bit e byte e i relativi multipli, ma tenete comunque presente che ogni byte è formato da 8 bit, quindi scrivere 1KB equivale a scrivere 8Kb e viceversa. Un’ultima cosa di cui parlare è la latenza. Senza voler scendere troppo nello specifico, la latenza (spesso indicata in inglese come CAS Latency o CL seguita da una serie di numeri) misura i cicli di clock di cui una determinata RAM ha bisogno per eseguire una certa operazione. Per tale ragione la latenza non è un valore assoluto in quanto, a parità di cicli di clock necessari, la RAM con maggiore frequenza risulterà più veloce e viceversa.

Rinfrescate le vostre conoscenze, siamo pronti a partire, quindi allacciatevi le cinture, controllate che il sedile sia in posizione eretta e preparatevi a questo viaggio lungo 25 anni!