Lezione  II                                                 FRAMES   NOFRAMES

Architettura dei calcolatori elettronici

La macchina di Von Neumann

Nella lezione 1 abbiamo fatto il disegno, della macchina di Von Neumann, che era costituito da una unità di    ingresso, una  memoria, una unità di   uscita  e dalla  CPU  che a sua volta e' costituita  da  una unità     logico-aritmetica,  da un'unità di   controllo e da un certo numero di   registri . Le frecce della fig. rappresentano il   Bus  di comunicazione tra le varie unità. L'unità di controllo ha la capacità di governare il funzionamento complessivo della macchina attraverso  il controllo  dell'esecuzione delle singole istruzioni di un programma. Le unità di input ed output sono note anche con il nome di periferiche.

Precisazioni

MC :   è l'area di lavoro che contiene dati e istruzioni da usare.   

CPU :  usa quel che c'e' in memoria centrale per eseguire  operazioni di trasferimento e di calcolo.     

I       :  acquisizione di nuovi dati che vanno in memoria centrale.

O     :  dati da memoria centrale all'esterno

MS   : memorizzazione permanente dei dati

 

La Memoria centrale del calcolatore e rappresentazione delle informazioni

L'informazione elementare prende  il nome di    bit  (binary digit) e può assumere il valore zero od il valore uno. Dal punto di vista fisico tale informazione è realizzata in memoria con dispositivi a due stati (FLIP-FLOP) , es. stato spento 0, stato acceso 1.

Possiamo schematizzare ciò dicendo che :

il bit vale 0  se è NO, FALSO, SPENTO, NON PASSA CORRENTE.

Il bit vale 1 se è SI, VERO, ACCESO, PASSA CORRENTE.

La memoria è una struttura mono-dimensionale suddivisa in celle di dimensione fissa. Ogni cella può essere individuata univocamente mediante un' indirizzo (numerico) ed è costituita da una sequenza di k valori binari (valori 0 e 1).

Quindi abbiamo detto che un bit o meglio il circuito fisico che lo realizza è già sufficiente a rappresentare due informazioni numeriche      0  oppure  1

Tanti bit implicano tante informazioni distinte. 

Esempio se abbiamo 2 bit possiamo rappresentare i numeri da 0 fino a 3 , non di più! ; con 2 bit rappresento 00, 01, 10, 11 rispettivamente: 0, 1, 2, 3. Il numero 4 con 2 bit non lo si può rappresentare.

Nel caso che la MC avesse una capacità di 3 bit potrei rappresentare 8 informazioni diverse ad esempio i numeri da 0 fino a 7.

000, 001, 010, 011,100, 101, 110, 111 .

Con 4 bit si rappresentano (2 ^ 4) informazioni diverse. 

Ad esempio tutti i numeri decimali che vanno da 0 fino a 15. In generale con n bit si rappresentano (2 ^ n) informazioni diverse. Se le informazioni sono numeri, si riescono a rappresentare tutti i numeri compresi fra 0 e (2 ^ (n) -1) estremi inclusi.

      Tabella 2.1 Codifica binaria dei numeri naturali tra 0 e 31con 5 bit

0 00000 8 01000 16 10000 24 11000
1 00001 9 01001 17 10001 25 11001
2 00010 10 01010 18 10010 26 11010
3 00011 11 01011 19 10011 27 11011
4 00100 12 01100 20 10100 28 11100
5 00101 13 01101 21 10101 29 11101
6 00110 14 01110 22 10110 30 11110
7 00111 15 01111 23 10111 31 11111

La codifica di ogni dato avviene con sequenze di bit.

In realtà la memoria centrale contiene centinaia di milioni di bit, questo implica che si possono rappresentare molte informazioni. Per comodità si indicano con il termine di byte gruppi di 8 bit e con word gruppi di 16/32 bit. Quindi abbiamo detto che la MC è immaginabile come un insieme di celle indirizzabili (ogni      cella  o   locazione  di memoria  è distinta  dalle altre  da un numero detto     indirizzo )  in cui  l'indirizzo (ADDRESS) è un numero progressivo. Ad ogni cella corrisponde la coppia < indirizzo, valore >

 Tabella 2.2 

     cella n. 125218  < indirizzo , valore >             "
     cella n. 125219               "             "
     cella n. 125220              "              "
     cella n. 125221              "             "

Specificando un indirizzo  la CPU può    accedere  alla cella corrispondente per vedere l'informazione contenuta e   memorizzare una informazione (numerica) nella cella.

Accedere  ad  un dato ( informazione )  significa quindi  selezionare  mediante l'indirizzo la cella in cui esso è memorizzato e prelevarne il valore. Il valore della cella è sempre una stringa binaria (sequenza di bit). Per la memorizzazione di un dato, bisogna stabilire l'indirizzo della cella in cui si vuole introdurlo.

La MC è costituita da  RAM  (random access memory) memoria ad accesso diretto od uniforme, poichè il tempo per accedervi è costante, cioè non dipende dalla posizione della cella nella RAM. Il tempo di accesso, cioè il periodo di tempo che passa tra quando si chiede una informazione e quando tale informazione viene resa disponibile, nelle Ram dell'ultima generazione è inferiore ai 10 ns. Anche le  ROM (read only memory)  fanno parte della MC, ma non  vi si possono memorizzare nuovi valori; la RAM quando si spegne il computer si smemorizza, mentre la ROM conserva le informazioni ivi contenute.

       Schema dell ' Unità di Memoria Centrale

     

La comunicazione fra la memoria ed il BUS avviene attraverso i      Registri , cioè aree di memorizzazione aventi tale compito. Precisamente attraverso il registro degli indirizzi   AR ( ADDRESS REGISTER ) ed il registro dati    DR ( DATA REGISTER ). 

E' appunto attraverso questi due registri che avviene:   il       prelievo  del contenuto di una cella di memoria ( la lettura, che non distrugge il contenuto della  cella ) e la  scrittura  in una cella ( che cancella il contenuto precedente della cella ). 

Il registro AR e la memoria hanno una correlazione, nel senso che se il registro è formato da 32 bit la memoria non può avere un numero di celle maggiore di ( 2 ^ 32), perchè il massimo numero di indirizzi che si possono rappresentare con 32 bit è appunto  ( 2 ^ 32). Il blocco DECODIF. "Decodificatore di indirizzi",  ha il compito di selezionare tra tutte le celle della memoria, quella cella che ha l'indirizzo contenuto nel registro AR.

Più è grande la MC, più grandi e complessi saranno i programmi e la quantità di dati che essa potrà contenere. 

Le dimensioni delle moderne memorie Ram (da home computer) sono 32, 64, 128, 256 Mb (megabyte). 

Dove  1 Kb = 2 ^ 10 byte ( 2 elevato 10) = 1024 byte. 1Mb =   (2^10  Kb) = (2 ^ 20 ) byte = 1024x1024 byte. 1 Gb ( 1 gigabyte) = (2^ 10 Mb ) = (2 ^ 30 byte). 

 

Esercizio 

 Test 2