Presentazione di PowerPoint - Home page istituzione trasparente

1.4b: Hardware
(Memoria Centrale)
Bibliografia
 Curtin, Foley, Sen, Morin “Informatica di base”,
Mc Graw Hill
 Ediz. Fino alla III : cap. 3.11, 3.13
 IV ediz.: cap. 2.8, 2.9
 Questi lucidi
Memoria Centrale
 Un computer, per funzionare, ha bisogno di uno spazio
dove memorizzare
 le parti di programma che utilizza e
 i dati che deve elaborare.
 Tale spazio è rappresentato dalla Memoria Centrale
 La Memoria Centrale è suddivisa in celle della
dimensione di 1 byte (8 bit) (locazioni di memoria)
 Ogni cella ha un indirizzo
 La Memoria centrale è ad accesso casuale,
 al processore occorre sempre lo stesso tempo per
accedere ad un qualsiasi punto di essa
 L’accesso è velocissimo, l’ordine è dei nano secondi,
cioè miliardesimi di secondo (0.5 - 1 ns).
Concetti principali
 Tipologie di memoria Centrale (RAM/ROM)
 Memoria virtuale e operazione di Swapping
 Registri
 Cache Memory
 Buffer
Tipologie di Memoria Centrale
La Memoria centrale è suddivisa in
RAM (Random Access Memory),
memoria di lettura/scrittura
ROM (Read Only Memory), memoria
a sola lettura
RAM
 La RAM è accessibile
in scrittura e lettura.
 Perde il suo contenuto
allo spegnimento della
macchina (volatile).
 Contiene Dati e
Programmi
attualmente in
esecuzione
FLIP-FLOP (Bistabili)
 La RAM è costituita da miliardi di interruttori
elementari che possono assumere due possibili stati
acceso/spento.
 Se il flip-flop è acceso ... corrisponde al bit 0
 Se il flip-flop è spento ... corrisponde al bit 1
 Ogni flip flop è grande meno di un millionesimo di
metro (30 nanometri).
 Il flip flop si spegne quando non è alimentato dalla
corrente elettrica, perciò quando si spegne il
computer la RAM si svuota e perde tutti i dati
ROM
 La ROM è una memoria a sola lettura
contenente dati e istruzioni, il cui contenuto non
può essere modificato in alcun modo
dall’utente
 Non perde il contenuto allo spegnimento della
macchina (non volatile).
 Dati e programmi memorizzati in una ROM
prendono il nome di FIRMWARE.
ROM BIOS
 La memoria ROM-BIOS (Basic Input Output
System) è un piccolo "chip elettronico“
all'interno dei Computer che contiene
 Le procedure che gestiscono funzioni di
input/output, comprese quelle grafiche.
 Il primo programma che il computer esegue non
appena acceso (bootstrap)
Bootstrap
CMOS
 Una piccola parte di RAM (CMOS) è presente anche
nel BIOS.
 La memoria CMOS è una memoria statica (SRAM) che
mantiene i dati con una alimentazione a batteria (simile
a quella usata per gli orologi da polso).
 Essa contiene le informazioni sulla composizione fisica
del computer (informazioni di “Setup”).
 Tali informazioni possono essere modificate.
 Quando l'hardware subisce modifiche è sufficiente
aggiornare questa parte del BIOS, senza bisogno di
riscrivere tutti i programmi.
PROM ed EPROM
 PROM (Programmable ROM): é una ROM che può
essere programmata con una apparecchiatura
speciale (programmatore di PROM).
I livelli 1 e 0 che costituiscono i dati binari sono scritti
con la modifica di alcune parti del chip (ad es.
bruciatura di fusibili integrati) ed una volta scritti
non sono più cancellabili.
 EPROM (Erasable Programmable ROM) che può
essere cancellata e riscritta con opportuni
apparecchi (programmatori di EPROM). La
cancellazione delle EPROM avviene esponendo il
chip ad una luce ultravioletta.
Memoria virtuale e Swapping
 La RAM non è infinita e può “saturarsi”, soprattutto se
 sono in esecuzione molti programmi nello stesso momento
 sono aperti documenti molto grandi (che occupano molto spazio)
 Nel caso di sovraccarico e in presenza di un’ulteriore esigenza
computazionale (apertura di un nuovo documento o
esecuzione di un nuovo programma), il Sistema Operativo può
fare una delle seguenti cose:
 Impedire l’apertura del nuovo documento (o la partenza di un altro
programma).
 “fare spazio” nella memoria disponibile, per le nuove esigenze e
quindi permettere di aprire il nuovo documento o di far partire un
altro programma
 I Sistemi di vecchia generazione adottavano la prima soluzione,
mentre i più recenti adottano la seconda.
Memoria virtuale e Swapping
 Il Sistema Operativo per “fare spazio” all’interno
della RAM “sposta” (parti di) dati o (parti di)
programmi
 dalla RAM
 al Disco Fisso,
utilizzando una particolare zona detta “area di
“Swap”, o file di swapping
Memoria virtuale e Swapping
 Il Sistema Operativo sceglie ciò che va spostato
nell’area di swap utilizzando varie strategie, ad
esempio sposta ciò che in RAM è inutilizzato da
più tempo
 Tale uso combinato di RAM e di Hard Disk
prende il nome di Memoria Virtuale
 L’operazione di “spostamento” è un’operazione
 necessaria (soprattutto se il computer dispone di
poca RAM),
 ma molto costosa (in termini di tempo)
Registri
 Il processore non lavora “direttamente” sulla RAM, ma solo su
dati e istruzioni presenti al suo interno
 Per cui, ogni volta che deve eseguire un’istruzione su uno o più
dati, è necessario copiare dalla memoria centrale all’interno
del processore
 l’istruzione da eseguire
 i dati su cui l’istruzione opera
 Le memorie “interne” al processore, preposte a tale compito,
sono dette Registri
 I registri di un processore sono, in tutto, qualche decine
 Hanno tempi di accesso molto rapidi
Registri
 L’operazione, da farsi per poter eseguire ogni
singola istruzione, è però costosa rispetto al
tempo che il processore impiega ad eseguire
l’istruzione stessa
 Si corre il rischio quindi di avere un processore
che lavora molto velocemente …
 … ma che passa quasi tutto il suo tempo fermo,
perché in attesa che l’istruzione e i dati su cui
essa opera vengano copiati dalla RAM nei
registri.
Cache Memory
 Per velocizzare il sistema, esiste una Memoria
(tampone) di tipo SRAM, detta Cache Memory
 posta a diretto contatto con il processore,
 molto più piccola ma molto più veloce (e
costosa) della RAM,
Cache Memory
 Nella Cache vengono memorizzati:
 una parte dei dati contenuti nella memoria principale (ad
esempio quelli usati più frequentemente o quelli vicini ai
dati appena utilizzati)
 una parte delle istruzioni del programma in esecuzione
(ad esempio quelle utilizzate più recentemente o quelle
“vicine” fisicamente all’istruzione in esecuzione)
 in questo modo il loro reperimento sarà molto veloce
 Si cerca se il dato/l’istruzione è presente nella cache e se
c’è lo si usa (“Cache Hit”)
 Se invece non c’è (“Cache Miss”) lo si prende dalla RAM
e lo si copia nella cache: la prossima volta verrà ritrovato
nella cache
Buffer
 Piccola zona della RAM riservata per operazioni varie.
 Utilizzato per scaricare o caricare i dati su/da disco
 Contiene gli ultimi dati immessi da tastiera (fino a che non si
preme il tasto “INVIO”, ad esempio)
 Contiene gli ultimi comandi usati da un programma con il
relativi dati coinvolti, per poter poi permetterne l’annullamento
tramite il pulsante
 Contiene ciò che viene “Tagliato” o “Copiato” (Clipboard)