Architettura del Calcolatore - Lezione in semi-presenza
4. Comunicazione tra CPU e Memoria
Per comunicare con la CPU, analogamente come faremmo se volessimo comunicare con un distributore di bibite e merendine, dobbiamo usare degli specifici canali di comunicazione. C’è una procedura determinata per trattare con la CPU. Sappiamo che nella memoria possiamo scrivere o leggere delle informazioni.
Nell’operazione di lettura c’è un qualche cosa (un’informazione) che dalla memoria dovrebbe andare a finire nella CPU e viceversa per la lettura. Quindi la memoria deve comunicare con la CPU.
Le modalità di interazione con la memoria avvengono solo per le operazioni di lettura e scrittura, non sono infinite. Per parlare alla memoria occorre uno specifico linguaggio, ma quali e quanti sono i canali attraverso i quali si parla con la CPU?
Per prima cosa bisogna comunicare alla memoria l’indirizzo che dovrà passare attraverso un canale di comunicazione. Dopo di che c’è il dato che è ciò che vogliamo far passare dalla CPU alla memoria o dalla memoria alla CPU. È il dato che vogliamo scrivere nella memoria, o leggere.
Occorrono quindi due canali di comunicazione con la memoria e un terzo che è il controllo. Questi tre canali sono chiamati anche Bus perché Bus è sinonimo di canale.
Questi tre canali di comunicazione (Bus), quindi, sono:
- quello dei dati;
- quello degli indirizzi;
- quello di controllo (in quest’ultimo passa l’istruzione).
Sappiamo che l’indirizzo ha la lunghezza di una parola, ma anche il dato è una parola perché sono lunghi uguali. Mentre il canale di controllo è più breve, basta un solo bit per codificare le operazioni, e quindi un solo canale di comunicazione.
Nella lettura, la CPU mette a disposizione solo l’indirizzo e indietro si riceverà il dato contenuto nella cella che ha come nome quell’indirizzo. Nella scrittura, invece, la CPU mette a disposizione l’indirizzo e il contenuto, cioè il dato che si vuole scrivere nella cella rappresentata da quell’indirizzo.
Lettura: informazione dalla memoria alla CPU.
Scrittura: informazione dalla CPU alla memoria.
Ma dove vanno a finire queste informazioni?
La CPU ha dei posti dove queste informazioni finiscono preventivamente per poi trasmetterle o ricevere ancora informazioni che vengono dalla memoria stessa.
Osserviamo che, anche all’interno della CPU, infatti, esistono degli spazietti di memoria che sono chiamati registri. Si tratta di spazi di memoria molto diversi dalle celle della memoria, perché, al contrario di questi, i registri non sono spazietti indistinti, ma ognuno ha una sua propria funzione.
Per comunicare con la memoria, ne servono tre di registri:
- il registro dell’indirizzo di memoria, Memory Address Register (MAR);
- il registro del contenuto di memoria, Memory Buffer Register (MBR);
- il registro del comando (C).
Questi sono i terminali dei tre canali di comunicazione che la CPU ha con la memoria.
M(MAR) MBR. Dove M è la memoria. Questa scrittura serve a descrivere, sintetizzando, le operazioni di lettura e scrittura. La formula è la stessa, soltanto cambia la direzione della freccia che, nella formula di scrittura ha la punta verso (MAR), mentre nella formula dell’operazione di lettura la punta della freccia è rivolta verso MBR.
Perché, nella scrittura, il contenuto che si trova nel Memory Buffer Register, va a finire nella celletta di memoria M(MAR). Nell’operazione di lettura, invece, il contenuto della cella di memoria M (MAR) va a finire nel Memory Buffer Register.
Nella gerarchia della memoria, esistono differenti tipi di memoria: i registri (specializzati) che sono all’interno della CPU, la Memoria centrale o Random Access Memory (RAM), Memoria secondaria, Memoria Cache.
RAM vuol dire memoria ad accesso casuale che si oppone alle memorie con accesso sequenziale (le video cassette, le audio cassette…). Memoria ad accesso casuale significa poter scegliere dove andare, la canzone da ascoltare, il dato da leggere, … senza rispettare la sequenza.
Le Memorie secondarie sono gli Hard Disk, le Pen-drive… le Pen-drive, hanno la stessa organizzazione della memoria centrale, ma sono virtualmente usati come gli Hard Disk. Anche gli Hard Disk sono divisi in parti, non uguali, che sono chiamati settori, e che hanno conformazione diversa rispetto alle celle della memoria.
La Memoria Cache è una parte di memoria che si trova tra i registri e la RAM. È una memoria molto vicina alla CPU il cui accesso è molto rapido, è più piccola della memoria centrale e serve per svolgere le operazioni ripetitive e di riporto dei bit (Carry). E’ indifferenziata come la Memoria centrale, quindi, pur essendo vicino alla CPU, la Cache non è “ specializzata”.