Fondamenti di
Informatica
Prof. Fenza Giuseppe
La memoria centrale [Sez: da 2.8 a 2.10]
Riepilogo
• Complemento a 2
• Architettura di Von Neumann
• CPU (ALU, CU)
Verifica
• Verificare per k=5 che in complemento a
due siamo in grado di rappresentare i
valori da -16 fino a +15
• Come fare?
– Convertite in complemento a due su 5 bit 15 e
16
– Convertite in complemento a due su 5 bit -16
e verificate che è ottenibile come forse non ci
saremmo aspettati!
COMPLEMENTO A 2
NOTA
• Complemento a 2: dati 5 bit, rappresentare -20 in binario
1. Condizione imprescindibile: -20 è nell’intervallo di valori ammissibili per 5 bit, ossia [-24; +24-1] è [-16;+15]
2. -20 non è rappresentabile in 5 bit con il complemento a 2 perché non rientra nel range di valori ammissibili
• Complemento a 2: dati 5 bit, rappresentare +20 in binario
1. Condizione imprescindibile: -20 è nell’intervallo di valori ammissibili per 5 bit, ossia [-24; +24-1] è [-16;+15]
2. +20 non è rappresentabile in 5 bit con il complemento a 2 perché non rientra nel range di valori ammissibili
Unità Centrale di Elaborazione (Central Processing Unit, CPU) e collegamento
con le altre unità funzionali.
La CPU è fisicamente realizzata sotto forma di microprocessore. clock
Contenuti di Oggi
• Gerarchia delle Memorie
– Memoria Centrale
– Memoria Virtuale
– Memoria Cache
• Memorie di massa o memoria secondaria
Tipi di Memorie
• In un Computer esistono tre tipi di memoria:
• La memoria interna della CPU che serve per
– velocizzare l’elaborazione (cache)
– contenere i dati su cui il processore lavora
(registri)
• la memoria centrale (memoria principale o di
lavoro), che memorizza
– i programmi in esecuzione e i relativi documenti
• la memoria di massa (memoria secondaria ),
che memorizza
Obiettivo
• Migliorare le prestazioni di un calcolatore
attraverso il sistema di memoria in modo
da:
– fornire agli utenti l'illusione di poter usufruire
di una memoria contemporaneamente grande
e veloce;
– fornire al processore i dati alla velocità con cui
è in grado di elaborarli
Memorie disponibili
• Memorie veloci, integrate nello stesso chip della
CPU, ma costose:
– Chiamiamole MPV (per Memorie Piccole e Veloci).
• Memorie di grande capacità, relativamente lente,
economiche ed accessibili tramite il bus:
– Capacità circa 100 volte superiori;
– Tempi di accesso circa 10 volte superiori.
– Chiamiamole MGL (per Memorie Grandi e Lente).
• Vorremmo il meglio dei due mondi: una memoria
grande e veloce (capacità MGL e prestazioni
Gerarchia a due livelli
• Memoria formata da una MPV e una MGL:
– MPV contiene una copia di alcune celle della
MGL;
– quando la CPU chiede una cella di memoria,
la richiesta viene intercettata dalla MPV:
• Se il dato si trova nella MPV, viene
passato direttamente alla CPU;
• Altrimenti, il dato si ottiene dalla MGL, e
viene anche caricato nella MPV.
Principio di Località
• Località spaziale: quando si accede all’indirizzo A,
è molto probabile che gli accessi successivi
richiedano celle vicine ad A.
– le istruzioni vengono in genere lette da locazioni consecutive della memoria;
– gli accessi a vettori o a strutture dati sono “vicini”.
• Località temporale: quando si accede all’indirizzo
A, è molto probabile che negli accessi successivi si
richieda di nuovo la cella A.
– cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoria;
– istruzioni vicine tendono ad utilizzare le stesse variabili.
Come sfruttare la località
• Località temporale: i dati prelevati dalla
MGL dovrebbero essere conservati nella
MPV il più a lungo possibile;
• Località spaziale: quando si copia un dato
dalla MGL alla MPV, dovremmo copiare
anche i dati vicini
• Necessità contrastanti:
– per la località spaziale servirebbero blocchi
grandi
– per la località temporale servirebbero blocchi
piccoli
Hit Ratio
• Se gli accessi in memoria rispettano i
principi di località
• Se il sistema MPV/MGL è ben
proporzionato
– dimensione dei blocchi e numero dei blocchi
nella MPV
• Allora la frequenza di successo (hit ratio)
può superare il 90%
17
Tipi di Memoria Centrale
ROM = memoria non volatile, in cui è memorizzato il
firmware.
RAM = memoria volatile, random (accesso libero a
qualunque sua parte), in cui si memorizza il software.
Memoria ROM
• La ROM (Read Only Memory) è un tipo di memoria a
sola lettura contenente dati e istruzioni che non
possono essere modificati, come per esempio alcune parti dei sistema operativo.
ü Il computer può soltanto leggere informazioni e istruzioni dalla ROM, ma non può scrivervi alcunché.
ü Non perde il contenuto allo spegnimento della macchina (non volatile)
• Dati e programmi memorizzati in una ROM prendono il nome di FIRMWARE
La Memoria Centrale
• Un computer ha bisogno di spazio per contenere
– I programmi che sta utilizzando e
– I dati che sta elaborando
• Tale spazio è la Memoria Centrale
– Suddivisa in celle (locazioni)
– Ogni cella ha un indirizzo
• La memoria centrale è,
– Ad accesso casuale, cioè occorre lo stesso
tempo per accedere ad un qualsiasi punto di essa
– L’accesso è dell’ordine dei nano-secondi, cioè
Memoria RAM
• Memoria centrale o memoria dell’utente
ü La RAM è un importante indicatore della capacità del computer, essendo la memoria di sistema dove vengono immagazzinati i dati sui quali il computer sta eseguendo le proprie elaborazioni.
ü La grandezza della RAM viene misurata in megabyte; maggiore è la dimensione della RAM, più grande è il numero di dati sui quali può operare la CPU per l'elaborazione.
• Memoria volatile • Ad accesso random • Primi PC: 128 KB • Oggi: almeno 2 GB
Memoria Cache
• Per eseguire un’istruzione, il processore deve copiarla,
assieme ai dati, nei suoi registri
– L’operazione di copiatura, da farsi per ogni singola
istruzione, è costosa rispetto al tempo che il processore
impiega ad eseguire l’istruzione stessa
– Si corre il rischio quindi di avere una CPU che
• Può eseguire molto velocemente le istruzioni …
• ... ma che passa quasi tutto il tempo in attesa che
l’istruzione e i dati su cui essa opera vengano copiati
dalla RAM nei registri
Memoria Cache
• Per velocizzare il sistema, esiste una Memoria (tampone)
detta memoria
Cache
:
– una memoria di tipo RAM, in piccola quantità
(128-256 KB),
– strettamente connessa alla CPU
– migliora la performance del sistema
• Nella Cache vengono memorizzati
– Una parte dei dati contenuti nella RAM
Memoria Cache
• Procedimento:
– Si cerca se il dato /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
Memoria Cache: livelli
• Livello 1
– Cache interna o primaria o L1
– è interna al processore
• Livello 2
– Cache esterna o secondaria o L2
– è esterna al processore
– costituita da chip di memoria istallati in
Funzionamento del buffer (clipboard)
• Piccola zona di RAM riservata a operazioni varie
– Utilizzato per scaricare o caricare i dati su/da disco – Contiene gli ultimi dati immessi da tastiera
– Contiene gli ultimi comandi usati da un programma con I relativi dati coinvolti
Fondamenti di
Informatica
Prof. Fenza Giuseppe
Le Memorie Secondarie
Necessità della Memoria di Massa
• La RAM
– Ha dimensioni finite e prima o poi si satura
– è una memoria volatile, cioè si svuota non
appena il computer viene spento.
• E’ necessario disporre di supporti che
consentano
• di memorizzare grandi quantità di byte
• e che li conservino quando il computer è spento
• Tali supporti sono le memorie di massa
(dette anche ausiliarie, esterne,
Interazione tra RAM e Memoria di Massa
• Quando si utilizza un programma per il
trattamento di un documento (ad esempio un file
di testo) bisogna
– Caricare in RAM il documento già esistente e
presente su memoria di massa (in alternativa creare un nuovo documento vuoto)
– Aggiornarlo, apportando tutte le modifiche
necessarie, e questo avviene in RAM utilizzando il programma
– Salvare il documento modificato, cioè memorizzare
su memoria di massa (eventualmente differente da quella di origine) il documento modificato.
Memoria Virtuale e Swapping
• La RAM può saturarsi, soprattutto se sono – in esecuzione molti programmi
– aperti documenti molto grandi
• Quando la RAM è satura e l’utente vuole aprire un nuovo programma o un nuovo documento
– Il SO può:
• Impedire l’apertura del documento o del programma • Fare spazio in memoria
– I SO
• Di vecchia generazione adottavano la prima soluzione
Funzionamento
della Memoria Virtuale
• Il SO per fare spazio all’interno della RAM sposta dati e/o programmi
– dalla RAM – al Disco Fisso
• Questa zona del disco è detta “area di SWAP”, o file di swapping
• La memoria virtuale rallenta l'esecuzione dei programmi, ma
Funzionamento
della Memoria Virtuale
• Il SO sceglie ciò che va spostato nell’area di swap utilizzando varie strategie
– Ad esempio sposta ciò che in RAM è inutilizzato da più tempo
• L’uso combinato di RAM e di Hard Disk prende il nome di Memoria Virtuale
• L’operazione di Spostamento è un’operazione
– necessaria (soprattuto se il computere ha poca RAM)