MEMORIE
A LETTURA e SCRITTURA
Registri
di memoria
Le
più semplici memorie a lettura-scrittura sono i registri.
I registri sono singole word di memoria (ampie tipicamente 8,16,32,64bit
etc...) ad elevata velocità di accesso, che risiedono
in posti strategici dei chip, la dove si devono memorizzare
operandi, stringhe di configurazione, ed in genere piccole quantità
di dati temporanei. Il registro è la base poi di numerose
tipologie di memorie a ad esempio le memorie FIFO, gli Stack
e la RAM.
Le memorie
FIFO
FIFO
significa First In First Out e rappresentano un tipo di memoria
con due porte di accesso, una in sola lettura e l'altra in sola
scrittura. In pratica le memorie FIFO rappresentano una coda
in cui i dati vengono scritti nella porta di ingresso ed immagazzinati
in una serie di registri interni (di capienza finita) ad una
cadenza propria completamente indipendente da quella di uscita.
Il dato che è stato scritto per primo è anche
il primo ad uscire ed in generale è mantenuto l'ordine
dei dati (da cui il nome).
Vi chiederete voi: ma a cosa serve un siffatto tipo di memoria?
La funzione primaria è quella di permettere l'interfacciamento
tra flussi di dati e sistemi che operano a frequenze differenti.
Le FIFO vengono usate nei processori per sincronizzare le Pipeline,
vengono usate nei chipset delle Motherboard per sincronizzare
il FSB del processore con la frequenza delle memorie SDRAM e
DDR. In generale il concetto di FIFO è anche alla base
dei meccanismi di gestione dei Buffer di scrittura nei masterizzatori.
Come vedremo poi, a livello tecnologico, le FIFO vengono realizzate
con registri e banchi di memoria RAM ma sono cencettualmente
e funzionalmente assai diverse dalle RAM.
Le memorie
organizzate a Stack
Le
memorie organizzate a Stack o LIFO (Last In Fist Out) possono
essere paragonate ad una pila di registri nei quali si "impilano"
i dati uno sopra l'altro. Sia l'operazione di lettura che quella
di scrittura operano sul dato più in alto nella pila
per cui l'ultimo dato ad essere scritto è anche il primo
ad essere prelevato (da cui il nome LIFO). Questo tipo di memoria
viene utilizzato come deposito temporaneo di dati per la gestione
di flussi elaborativi che si incrociano, normalmente viene "simulato"
con una normale RAM e registri puntatori, ma in alcuni processori
e alcuni contesti elaborativi viene anche implementata in hardware
direttamente.
RAM
La
memoria RAM (Random Access Memory) a differenza delle tipologie
di memorie viste sopra, permette un accesso così detto
"casuale". L'organizzazione logica delle locazioni
di memoria è del tutto identica a quella delle memorie
ROM. In pratica si individua la cella di memoria voluta tramite
un indirizzo senza nessun limite o sequenzialità nelle
operazioni di accesso in lettura e scrittura. La RAM rimane,
come tutte le altre memorie a lettura-scrittura finora viste,
una memoria volatile, ossia tolta l'alimentazione ai chip di
memoria, le informazioni in essi contenute svaniscono.
Esistono tanti tipi di ram. La discriminante tipica è
il binomio dimensione-velocità di accesso. Nelle memorie
RAM i due termini sono inversamente proporzionali tra loro quindi
più piccola è la memoria è maggiore sarà
la massima velocità di accesso, viceversa maggiori sono
le necessità di spazio e via via più lenta diventerà
la memoria. Le memorie RAM sono presenti un pò ovunque
nei noistri PC: abbiamo la ram di sistema (o memoria centrale),
abbiamo la ram della scheda video, ma abbiamo anche molte memorie
ram integrate nei chip e nei sottosistemi: la cache del processore,
le piccole texture cache dei chip 3D per finire ai buffer di
HD e masterizzatori. Con le generiche memorie RAM si implementano
in generale anche gli altri tipi di memorie come le FIFO e gli
Stack.