Ad integrazione del Libro di testo: Informatica e Sistemi automatici - Vol. 1 – Luigi Langella – Ed. Calderini (Pagg. 110÷113, 117÷ 121) 1 • Memoria centrale (RAM, Random Access Memory) La memoria centrale di elaborazione ha il compito di memorizzare i programmi e i dati che devono essere elaborati. Essa, su richiesta delle altre unità, esegue le funzioni di lettura e scrittura a livello di parola macchina che può essere il byte, la word e così via. È una memoria volatile in quanto i dati presenti permangono solo in presenza della tensione di alimentazione. Quando il computer viene spento il contenuto della RAM viene perso. Le proprietà dell'unità di memoria sono: • il tempo di accesso, cioè il tempo, dell'ordine dei nanosecondi, che intercorre tra la richiesta di un dato e la sua disponibilità. • la capacità di memorizzazione, dell'ordine dei 512 MB o superiore (oggi dell’ordine di 4-8 GB). • Processore (CPU, Central Processing Unit o unità centrale di elaborazione) II compito del processore è di elaborare le istruzioni di un programma e interagire parzialmente o totalmente con le unità di I/O durante la loro comunicazione con la memoria. Le funzione tipiche di un processore sono descritte dai passi della seguente procedura: essa indica le operazioni che devono essere ripetute per ciascuna istruzione contenuta nel programma da eseguire. 1. 2. 3. 4. 5. 6. Lettura di un'istruzione dalla memoria. Decodifica. Calcolo degli indirizzi degli operandi in memoria. Caricamento degli operandi dalla memoria. Esecuzione dell'istruzione. Analisi delle interruzioni, cioè prima di passare all'istruzione successiva controlla e gestisce eventuali eventi prioritari rispetto al processo che sta eseguendo. 7. Calcolo della posizione dell'istruzione successiva e ripetizione della procedura dal passo 1. In alcuni sistemi il processore viene scomposto in più unità, ognuna dedicata a una parte delle funzioni complessive del processore stesso. Per esempio in alcuni sistemi il processore viene diviso in due unità sequenziali: la prima si occupa della lettura delle istruzioni dalla memoria (passo 1.) e la seconda gestisce i successivi passi (dal 2. al 7.) 2 La CPU è un'unità funzionale composta da: un'unità di controllo (CU, Control Unit), un'unità aritmetico-logica (ALU, Arithmetic Logic Unit] alcuni registri. L'unità di controllo (o di governo) ha il compito di gestire e sovrintendere al funzionamento di tutte le unità dell'elaboratore e all'esecuzione di tutti i passi necessari per eseguire un programma residente nella memoria centrale. All'unità aritmetico-logica, invece, è delegato il compito di eseguire le operazioni aritmetiche e logiche sui dati provenienti dalla memoria. I registri I registri sono piccole ma veloci memorie interne alla CPU, in grado di memorizzare temporaneamente un'informazione utile e significativa in determinate fasi dell'elaborazione dei dati. Schema a blocchi semplificato di una CPU Classe e frequenza I vari tipi di CPU presenti sul mercato si differenziano in base alla classe e alla frequenza del clock. La classe è indicata da una sigla. Tra i maggiori produttori di microprocessori troviamo Intel, AMD, Motorola. Intel, per esempio, ha usato per i suoi modelli le denominazioni: 80286, 80386, 80486, Pentium, Pentium II, Pentium III, Pentium IV, Celeron, Centrino, Pentium Dual Core, Core 2 Duo, Core 2 Quad, ecc. AMD, invece, ha usato per i suoi modelli le denominazioni: Sempron, Athlon, Phenom ecc. La frequenza di clock misura, se così si può dire, i "battiti del cuore" del computer. Il clock sincronizza le attività del processore. La sua frequenza, infatti, è dell'ordine dei Gigahertz (GHz), ossia di miliardi di oscillazioni al secondo (1GHz - 1000MHz). Per esempio, un computer che lavora a 4 GHz (o 4000 MHz) esegue quattro miliardi di istruzioni elementari al secondo. Questa frequenza è un importantissimo indice della velocità del computer: maggiore è la frequenza, maggiore sarà la quantità di dati elaborati nell'unità di tempo (ogni secondo). • I BUS I collegamenti fisici tra le varie unità all’interno del sistema sono realizzati da un insieme di linee dette Bus. Tutte le informazioni, costituite da dati, codici di controllo e indirizzi, che vengono scambiate tra l’unità centrale, la memoria e le unità di input/output, viaggiano in forma binaria su queste linee. Il bus di sistema si divide in tre bus minori: bus dati, bus indirizzi, bus di controllo. Il Bus dati è il bus sul quale transitano le informazioni. È usufruibile da tutti i componenti del sistema, sia in scrittura sia in lettura. È bidirezionale. Il Bus indirizzi è il bus attraverso il quale la CPU decide in quale indirizzo andare a scrivere o a leggere informazioni; sia le celle di memoria (RAM) sia le periferiche di I/O (Input/Output) sono infatti divise in zone, ognuna delle quali ha un dato indirizzo. Dopo aver comunicato l'indirizzo tramite questo bus, la scrittura o lettura avviene normalmente tramite il bus dati. Naturalmente questo bus è fruibile in scrittura solo dalla CPU ed in lettura dagli altri componenti, in quanto tramite questo bus viene dato solo l'indirizzo della cella, che è deciso dalla CPU. È monodirezionale. Bus di controllo è un insieme di collegamenti il cui scopo è coordinare le attività del sistema; tramite esso, la CPU, inviando dei segnali di controllo, può decidere quale componente deve scrivere sul bus dati in un determinato momento, quale deve leggere l'indirizzo sul bus indirizzi, quali celle di memoria devono scrivere e quali invece leggere, etc. Infatti la memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico bus condiviso; questo significa che senza un controllo da parte dalla CPU si verrebbero a creare dei conflitti e delle collisioni. È bidirezionale. 3