Unità 2: Le Memorie, tipologie e funzionamento nei sistemi informatici

Slide di Università su Unità 2: Le Memorie. Il Pdf, una presentazione di Informatica, esplora le diverse tipologie di memoria, primaria e secondaria, il ciclo di esecuzione di un'istruzione e il funzionamento della memoria cache, inclusi cache hit e miss.

Mostra di più

50 pagine

Unità 2: Le Memorie
UNITÀ DIDATTICA 2
1
Introduzione
2

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Unità Didattica 2

Introduzione alle Memorie

La memoria è la parte del sistema di elaborazione che memorizza, in modo per- manente o temporaneo, dati e istruzioni.

La memoria primaria o centrale è realizzata con tecnologia a semiconduttore ed è quella con cui la CPU interagisce direttamente.

Le memorie secondarie o di massa, invece, servono per archiviare in modo permanente dati e programmi. Dispongono di una grande capacità di archivia- zione, dell'ordine dei terabyte, e sono basate su diverse tecnologie: magnetiche (dischi e nastri), ottiche (DVD) e a stato solido (SSD).

Tipi di Memoria Primaria

La memoria primaria o centrale può essere:

  • RAM (Random Access Memory): è una memoria volatile, ad accesso diretto, da cui la CPU legge dati e/o istruzioni e su cui la CPU scrive i risultati
  • ROM (Read Only Memory): è una memoria permanente di sola lettura che, per esempio, in un Personal Computer contiene i programmi per l'avvio del sistema.

Elemento Minimo della Memoria RAM

Da un punto di vista circuitale l'elemento minimo della memoria RAM è il flip flop, un circuito che può risiedere in due stati stabili (bistabile).

Il dato (0/1) in ingresso (D) viene trasferito in uscita (Q) in corrispondenza dell'impulso di sincronizzazione (T).

L'uscita si mantiene in questo stato (dato memorizzato) fino a una nuova varia- zione del segnale in T, anche se l'ingresso D cambia.

T Q D Tabella di verità D |Q 0 0 1 1

Capacità delle Memorie

Per capacità si intende la quantità di byte che la memoria è in grado di memorizzare.

Tutte le informazioni sono codificate con sequenze di bit.

Un bit è un simbolo che codifica lo stato fisico di un segnale Il byte è l'unità di misura della capacità della memoria e corrisponde a 8 bit.

word (parola di 16 bit) bit nibble 0 0 1 1 1 001 0 0 1 1 1 0 0 1 0 0 1 11001 byte byte byte

Multipli di Byte nella Capacità di Memoria

È importante notare che la capacità della memoria, essendo espressa in multipli di byte, è sempre una potenza di 2 1 kB non corrisponde a 1000 byte, ma a 1024, che è la potenza di 2 più vicina a 1000

Organizzazione della RAM

La memoria centrale, può essere vista come suddivisa in celle di memoria ciascuna contenente uno o più byte.

Indichiamo con locazione di memoria (o cella di memoria) una parte di memoria che può essere identificata.

Con indirizzo di una locazione di memoria indichiamo la posizione che quella locazione di memoria occupa nella memoria stessa.

In genere, la prima locazione di memoria ha indirizzo 0.

Analogia della Memoria

La memoria può essere paragonata a una cassettiera: un cassetto è una locazione, referenziata tramite un'etichetta o tramite la sua posizione. La cassettiera serve per contenere qualcosa.

Il numero del cassetto identifica la sua posizione, mentre il contenuto è ciò che è riposto all'interno del cassetto.

42 43 49 48 56 55 54

Indirizzo di Memoria

La memoria centrale è suddivisa in celle o locazioni che possono essere identi- ficate tramite il loro indirizzo, cioè la posizione della cella nella memoria. Tut- te le celle hanno la stessa dimensione. La memoria è poi organizzata in parole (word). Ogni parola è formata da 1 o più byte. L'indirizzo di memoria è associato a una unità indirizzabile che in genere è il singolo byte, mentre la parola è riferita all'organizzazione della memoria e quindi alla dimensione dei dati.

In genere le parole sono di 8, 16, 32, 64 bit, e sono trasferite alla CPU tramite il bus dati.

Indirizzo 0 Indirizzo 1 Indirizzo 2 Indirizzo 3 Parola

Indirizzi Assoluti e Relativi

Per indirizzo assoluto (o fisico) si intende la posizione di una locazione di memoria a partire dalla cima della memoria

0 1 2 3 4 locazione di indirizzo assoluto 4 5 6 Per indirizzo relativo (o logico) si intende la posizione di una locazione di memoria rispetto a un'altra. Per esprimere un indirizzo relativo occorrono dunque due numeri: l'indirizzo della locazione di riferimento (base) e la distanza da essa (spiazzamento, offset)

0 1 2 base 3 4 5 locazione di indirizzo assoluto 5 e relativo (2, 3) 6 Ogni locazione ha un unico indirizzo assoluto, ma più indirizzi relativi

Influenza del Bus Indirizzi sulla Dimensione della Memoria

Quando la CPU deve utilizzare una loca-zione di memoria, carica il suo indirizzo sulle linee del bus indirizzi. Da ciò deriva che l'indirizzo più grande che può essere espresso dipende dalla dimensione del bus indirizzi.

Il numero delle linee di indirizzo influenza la dimensione massima della memoria

  • 8 linee indirizzi: 28 = 256 locazioni di memoria. Gli indirizzi vanno da 0 a 255, cioè 28 - 1 (in binario, da 0000000 a 11111111; in esadecimale, da 0h a FFh).
  • 16 linee indirizzi: 216= 65 536 locazioni di memoria, cioè 64 KB.
  • 20 linee indirizzi: 22º = 1 048 576 locazioni di memoria, cioè 1 MB.
  • 32 linee indirizzi: 232 = 4 294 967 296 locazioni di memoria, cioè 4 GB Un indirizzo di memoria è espresso in binario o in esadecimale, che è la forma più compatta

Accesso Casuale e Dimensione della Locazione

Random Access Memory letteralmente significa «memoria ad accesso casuale», il tempo necessario per accedere a una locazione di memoria è indipendente dalla sua posizione.

La dimensione della locazione di memoria è strettamente legata alla dimensione del bus dati.

Indirizzo di memoria Contenuto di memoria 0000000000000000 11001101 0000000000000001 11001001 0000000000000010 00010100 0000000000000011 00101010 0000000000000100 00101010 0000000000000101 00101000 0000000000000110 00101000 0000000000000111 00100111 ... ... 1111111111111111

Decodifica degli Indirizzi di Memoria

Le locazioni sono disposte in una matrice (quadrata o rettangolare) strutturata in righe e colonne, in cui ogni locazione occupa una posizione identificata dal numero di riga e dal numero di colonna.

Per attivare la cella di memoria è necessario un decodificatore, un circuito logi- co il cui scopo è riconoscere l'indirizzo per poter accedere, in lettura o scrittura, alle diverse caselle disposte nella matrice.

Funzionamento del Decodificatore

Un decodificatore è un circuito logico con n ingressi e 2" uscite in cui, per ogni configurazione di ingresso, una sola uscita è attiva.

L'indirizzo di n bit, presente nel MAR e viene posto nel bus indirizzi, È ripartiti in m righe e k colonne (n=m+k).

2k colonne € MEMORIA 2m m bit Decodifica riga cella di memoria 2ªrighe indirizzi n bit 2k k bit Decodifica colonna CS (selezione circuito) R/W buffer di i/o e controlli Dati in uscita Dati in ingresso

Selezione Cella con Decodificatori

Un «decodificatore di riga» seleziona la riga e un «decodificatore di colonna» sele- ziona la colonna. La presenza contemporanea dell'indirizzo sull'address bus e dei segnali di abilitazione del chip (pin CS - Chip Select) e del segnale di Read/Write (pin R/W) del control bus, permettono di abilitare la cella in lettura o scrittura.

2k colonne € MEMORIA 2m m bit Decodifica riga cella di memoria 2ªrighe indirizzi n bit > 2k k bit Decodifica colonna CS (selezione circuito) buffer di i/o e controlli R/W Dati in uscita Dati in ingresso

Ciclo di Lettura della Memoria

  • l'indirizzo della locazione di memoria è posto sull'address bus all'inizio del primo ciclo di clock;
  • il segnale MREQ diventa attivo basso quando il bus indirizzi è stabile (duran- te il ciclo T2). Il chip di memoria viene abilitato;
  • la linea di RD diventa attiva per indicare che i dati letti dalla memoria sono posti sul bus dati («dati in input»). Il segnale di WR rimane ina alto) per tutto il tempo dell'operazione di lettura.

Ciclo di lettura ciclo di lettura della memoria T1 T2 T3 CLK bus indirizzi indirizzi di memoria MREQ RD WR bus dati dati in innut

Ciclo di Scrittura della Memoria

  • l'indirizzo della locazione di memoria è posto sull'address bus all'inizio del primo ciclo di clock;
  • il segnale MREQ diventa attivo basso quando il bus di indirizzi è stabile; il chip di memoria viene abilitato;
  • la linea di WR diventa attiva bassa quando i dati sul data bus sono stabili («dati in output»). Il segnale di RD rimane inattivo (alto) per tutto il tempo dell'operazione di scrittura.

Ciclo di scrittura ciclo di scrittura della memoria, T1 T2 T3 CLK bus indirizzi indirizzi di memoria MREQ RD WR bus dati dati in output

Stadio di Uscita del Dispositivo

la porta logica dello stadio di uscita di un dispositivo che si collega al bus (buffer), aggiunge ai due stati classici (0 e 1) un terzo stato (three-state o tri-state) che rende l'uscita un circuito aperto e per- mette all'unità di «staccarsi» dal bus. In realtà l'uscita del buffer assume una im- pedenza molto elevata tale da comportarsi come un circuito aperto

I enable Enable Input Output Stato 0 0 alta impedenza input enable output input output 0 1 alta impedenza input output enable 1 0 0 input output 1 1 1 input enable output enable

Collegamento al Bus con Buffer

Dispositivo A Dispositivo B enable A enable B linee del bus collegamenti al bus enable C buffer Dispositivo C

Bidirezionalità del Bus Dati

La bidirezionalità del bus dati si ottiene accoppiando due buffer, come illustrato nella Figura 14, abilitando separatamente i due buffer. Consente di selezionare l'invio o la ricezione dei dati sul bus da parte della RAM o di periferiche.

enable input doppia direzione output il buffer inferiore è soggetto a un segnale di abilitazione opposto a quello superiore, assicurando che il bus possa essere solo in lettura o in scrittura.

Esecuzione di un Programma: Istruzione Assembly

Consideriamo, per semplicità, una CPU con bus indirizzi a 16 linee e bus dati a 8 linee. Ipotizziamo che le locazioni di memoria siano di 1 byte e i registri di uso generale a 1 byte. Supponiamo che la CPU debba eseguire l'istruzione assembly: MOV R1,[0042h] Trasferisci il contenuto della locazione di memoria di indirizzo 0042h, nel registro R.

Supponiamo che l'istruzione sia codificata in binario con 3 byte.

00110110 codice operativo: indica che cosa deve fare l'istruzione (in questo caso il codice operativo è puramente di fantasia, ma ogni macchina ha il suo set di codici ammessi, le istruzioni che è in grado di interpretare)

00000000 01000010 indirizzo di memoria da cui prelevare il dato da trasferire

Traduzione e Contenuto RAM

Il programmatore scrive MOV R1,[0042h] e l'assemblatore, un apposito software lo traduce in linguaggio binario:

001101100000000001000010.

Supponiamo che nella locazione 0042h sia contenuto il valore F4h (11110100).

Indirizzi Contenuto RAM hex bin 0000 0000000000000000 0001 0000000000000001 0002 0000000000000010 00110110 0003 0000000000000011 00000000 Istruzione da eseguire 0004 0000000000000100 01000010 0005 0000000000000101 00010100 0006 0000000000000110 00100010 Prossima istruzione da eseguire ... ... 0042h 0000000001000010 11110100 Dato da trasferire

22

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.