Sei sulla pagina 1di 5

Lezione 10. Architettura elaboratori. Memoria centrale.

CPU. Memoria Centrale. Cache.

Completeremo in questa lezione quei temi che ci permettono di capire come è strutturata una
CPU. In particolare affronteremo il tema lasciato sospeso la volta scorsa della velocità del
nostro microprocessore. Ma non ci occuperemo solo di quest'area. Affronteremo altri temi e, in
particolare, la struttura e le tecnologie della memoria centrale.

Clock

La velocità del microprocessore è correlata direttamente alla frequenza del CLOCK. Il


microprocessore ha bisogno di un ritmo, di un temporizzatore, come un tamburino che cadenzi
le sue operazioni. Analogamente a come noi abbiamo le pulsazioni del nostro cuore, il nostro
microprocessore ha una sua frequenza “cardiaca”. Questa frequenza è misurata in Hz, più
propriamente in milioni o miliardi di hertz (Mhz o Ghz). Questi intervalli di tempo
rappresentano la cadenza con cui vengono effettuate le operazioni all'interno del
microprocessore.
Non bisogna, però, pensare che tutto il nostro elaboratore abbia una velocità pari a quella del
microprocessore. Per la verità le frequenze in gioco all'esterno sono molto più basse come si
può vedere in questo schema semplificato.

In figura vediamo che il clock va all'interno della struttura del microprocessore e quindi
cadenza le operazioni solo all'interno del microprocessore stesso. La velocità indicata si
riferisce all'esecuzione delle sole istruzioni lavorabili all'interno e non quelle che coinvolgono un
trasferimento di dati.
Solo un istruzione che somma di due dati che sono già nei registri, possiamo dire che avvenga
con la velocità di 2GHz (nell'esempio in figura), se abbiamo invece un'istruzione che ha da
acquisire un dato dalla memoria, la velocità è molto più bassa. E' più bassa perché quando le
comunicazioni da dentro al chip si trasferiscono a comunicazione tra i chip, la velocità scende
notevolmente e, di conseguenza, anche le prestazioni. E' per questo motivo, infatti, che la
tecnologia microelettronica cerca di inserire su un'unica piastrina più funzioni possibili del
nostro elaboratore.

CPU

Fata questa considerazione sulla velocità possiamo rappresentare quelle che sono le
caratteristiche tecnologiche che contraddistinguono una CPU realizzata su un'unica piastrina,
vale a dire un microprocessore.
Le caratteristiche sono la frequenza del clock (quanto più alta e tanto più le prestazioni
dovrebbero essere elevate), il parallelismo dei dati (equivale al numero di bit che viene trattato
contemporaneamente, sia per i calcoli che per la capacità dei data bus), l'indirizzamento (lo
spazio massimo di memoria indirizzabile - tipicamente verso la RAM - determinato dal numero
di fili dell'address bus, tanto è maggiore e tanto più velocemente si possono trasferire dati e
programmi dal disco alla memoria).
Vi sono, inoltre, altri elementi che al giorno d'oggi assumono una certa importanza. Si parla di
parallelismo interno, vale a dire che, per riuscire ad andare più veloce, si cerca di eseguire più
operazioni contemporaneamente. Questa tecnica viene sostanzialmente definita pipeline e
permette di aumentare il numero di istruzioni eseguite al secondo con benefici per la potenza
di calcolo.
Un altro tipo di parallelismo recente è il microprocessore dual core, che integra su un unico
chip le funzioni di due CPU. In questo caso si tratta di avere due “motori” che, se ottimizzati e
coordinati tra loro, danno grandi risultati in termini di velocità.

Legge di Moore

L'integrazione di più elementi su una stessa piastrina, su uno stesso chip, è alla base della
crescita degli stessi. Il primo microprocessore realizzato riusciva ad integrare 30 mila transistor
per 1 milione di addizioni al secondo. Grazie alle caratteristiche del silicio, la microelettronica è
riuscita a portarci ad avere prestazioni che adesso parlano di quasi 200 milioni di transistor e
più di 1 miliardo di addizioni al secondo.
Questa legge ha una sua quantificazione nella legge di Moore, secondo la quale il numero di
transistor che si possono inserire su un chip, raddoppia ogni 18 mesi. La crescita indicata dalla
legge di Moore è indicata con la linea rosa. La linea gialla indica, invece, il reale andamento di
crescita della Intel, piuttosto in linea con le previsioni della legge stessa.

4 o 5 anni fa sembrava impossibile proseguire questo andamento perché si andava contro dei
limiti fisici, ma grazie a tecnologie di integrazione si è riusciti anche a superare questo scoglio
e sembra a tutti gli effetti che il trend continuerà a queste condizioni per molto altro tempo
ancora.

Abbiamo parlato di CPU e microprocessori, ma dobbiamo ricordare che non ci sono solo i
processori generalisti che abbiamo sulle nostre macchine. Vi sono quattro grandi categorie:
oltre a quella tradizionale del tipo AMD o Intel, vi è una categoria di processori specifici e
dedicati all'elaborazione dei segnali (li troviamo tipicamente nelle schede audio), un'altra
categoria è dedicata alla grafica e all'elaborazione dei pixel (li troviamo nelle schede grafiche)
e, un'ultima, di microprocessori embedded poco potenti ma che troviamo dentro ad oggetti
come giocattoli, telecomandi, etc.
Memoria centrale

Ricordato anche il fatto che i microprocessori non sono solo quelli che troviamo dentro al
computer, occupiamoci adesso della MEMORIA CENTRALE:

Incominciamo con l'indicare che le prestazioni della memoria centrale sono molto importanti
perché dialogano con il microprocessore. Per cui è inutile avere un microprocessore veloce se
poi la memoria è molto lenta. Le prestazione di un elaboratore dipendono in egual misura dalle
prestazioni di questi due elementi.

Quando parliamo di memoria centrale, cioè quella che sta vicino alla nostra CPU, è importante
innanzitutto capire cosa contiene e quali funzioni svolge in termini di programmi che in essa
risiedono.
Se guardiamo un elaboratore di tipo general purpose, la memoria centrale possiamo
suddividerla in quattro grosse aree. La prima area è quella dove lavora il sistema operativo e la
troviamo in memoria volatile RAM. Il sistema operativo serve a gestire i programmi utenti che
vogliamo eseguire e, quindi, anche essi o parte di essi, devono risiedere nella memoria
centrale. Questi programmi, di norma, stanno sulla memoria volatile perché devono essere
caricati e scaricati, cambiati, e così via (nei sistemi embedded, invece, i programmi sono fissi,
risiedono nella ROM e non nella RAM e non possono essere conseguentemente cambiati).
Terza area è quella della memoria video, necessaria per memorizzare i pixel che dovranno, poi
formare le immagini.
Vi è, infine, un ultimo blocco che è quello che serve ad avviare nelle prime fasi il nostro
elaboratore. Quando lo accendiamo deve eseguire delle istruzioni che, ovviamente, non
possono essere nella memoria volatile perché, all'accensione, essa non contiene nulla. Le
istruzioni devono giocoforza essere inseriti all'interno di una memoria permanente. Questi
programmi di avvio sono anche detti BOOT program e, nel caso specifico dei PC, risiedono su
una ROM che viene definita con il termine BIOS e che, a sua volta, contiene proprio quel
programma che permette di avviare il PC andando a caricare il nucleo del sistema operativo
dal disco fisso alla RAM.

Se queste sono le aree principali della nostra memoria, vediamo quali sono le tecnologie con
cui sono costruite.
Alcune le abbiamo già indicate, ma le dettagliaremo ulteriormente.
Le tecnologie per realizzare la memoria centrale appartengono a due grandi categorie. Da una
parte vi sono le memorie volatili RAM (Random Access Memory) dove si possono leggere e
scrivere informazioni, dall'altra vi sono le ROM (Read Only Memory) nelle quali l'informazione è
scritta in modo permanente e non possono essere scritte durante il normale funzionamento ma
solo lette.
Ciascuna di queste categorie principali si declina in una serie di diverse tecnologie che è
necessario rappresentare per capire poi alcune specificità arichitetturali e prestazionali dei
nostri elaboratori.

In particolare, le RAM sono di due tipi: statiche e dinamiche. Le prime, le SRAM, sono molto
più veloci con tempo di accesso molto rapido (10 nanosecondi), hanno un minor impaccamento
(su una piastrina stanno un minor numero di bit) e la loro difficoltà costruttiva rispetto all'altra
categoria ne determina un maggior costo per bit. Le seconde, che appartengono alla classe
DRAM, sono più lente (60 nanosecondi contro i pochi nanosecondi dei microprocessori e i 10
delle SRAM), hanno un maggiore impaccamento e, in conseguenza di quanto appena detto, si
ha un minor costo per bit.
In virtù di quest'ultima considerazione, ne consegue che nella stragrande maggioranza dei
comuni elaboratori, la memoria centrale è composta da memorie dinamiche.

Anche l'altra categoria di memorie, le ROM, si declina in sottocategorie. Vi sono le PROM


(programmabili una sola volta e inutilizzabili per scriverci altre informazioni), le EPROM
(permettono di essere riprogrammate attraverso particolari meccanismi che comunque
richiedono interventi manuali). Più interessanti sono le EEPROM cioè le memorie cancellabili
elettricamente, conosciute anche con il nome di Flash Memory, cancellabili e riprogrammabili
direttamente dalla CPU. Questa tecnologia è quella anche delle nostre Pendrive; è un tipo di
tecnologia che si è molto sviluppata negli ultimi anni e, grazie all'evoluzione tecnologica di
impaccamento ha cominciato ad erodere lo spazio di utilizzo dei supporti magnetici.

La tecnologia non si è fermata alle EEPROM ma ha cercato anche di incrementare la velocità


delle RAM dinamiche. Ne deriva una molteplicità di famiglie che migliorano le prestazioni di
trasferimento dei dati dalla memoria al nostro microprocessore. Oggi le più diffuse nei comuni
PC sono le DDR2 che hanno velocità significativamente più elevate rispetto alle RAM
tradizionali.

Quando parliamo di RAM abbiamo a che fare con delle piastrine di questa tipologia.

Le piastrine contengono normalmente 8 dispositivi, ciascuno dei quali memorizza un bit di un


byte. Se ciascun dispositivo è da n bit, quindi, l'intera piastrina sarà di n byte.
La tipologia di queste schede è legata ai connettori ed al parallelismo su di essi.
Più specificatamente si fa riferimento al formato DIMM (Dual in-line memory module) che
corrisponde a delle schede che, montate su piastre elettroniche, realizzano le funzioni di
memoria in moduli organizzati con un parallelismo a 64 bit, al contrario delle SIMM che
avevano un'organizzazione a 32 bit.
Cache

Viste anche le sigle delle schede di memoria, rimane solo da approfondire un tema
architetturale di estrema importanza: la memoria CACHE.

La CACHE non solo è opportuna, ma è necessaria. Il problema è che, come sappiamo, vi è una
discrasia di velocità tra il microprocessore e le memorie. Basti ricordare che le velocità interne
di esso sono in GHz mentre invece le RAM sono decisamente più lente. Il microprocessore,
quindi, che potrebbe leggere un dato in un nanosecondo, non va alla sua velocità perché la
RAM impiega alcuni nanosecondi per accedere ai dati.
Si può, allora, introdurre tra la memoria centrale e la CPU una memoria intermedia veloce, in
modo tale che il tempo di accesso tra il microprocessore e la cache sia dello stesso ordine di
grandezza e sia significativamente maggiore rispetto alla RAM.
Si introduce una gerarchia di memorie su due livelli. Vi è da una parte una memoria “lenta”
dove vi sono tutti i dati e una memoria “veloce” dove, secondo complessi algoritmi, vado a
mettere solo dati e istruzioni che servono in quel momento al microprocessore. Per fare questo
ho bisogno di opportuni circuiti che devono predire di quali dati avrò bisogno e che dovranno
prenderli dalla RAM per trasferirli sulla cache (creata con tecnologia statica e quindi più veloce
pur se maggiormente costosa) .
In questo modo si realizzano prestazioni molto interessanti e si ottiene un discreto equilibrio
tra la velocità del microprocessore e quella della RAM dinamica.
Quanti più byte occupa la cache, ovviamente, tanto maggiori risultano le prestazioni
dell'elaboratore.

Ci occuperemo nella prossima lezione di declinare questi concetti andando a vedere come sono
realizzati su un PC.