larchitettura di von neumann cpu ram mem second i/o bus
TRANSCRIPT
L’architettura di Von Neumann
CPU RAMMem
secondI/O
bus
RAM = Random Access Memory memoria ad accesso casuale
Nella RAM, come ovunque in un computer, le informazioni sono rappresentate con sequenze di 0 e di 1. Numeri binari.
La RAM quindi è fatta per contenere tali numeri.
•un bit può contenere o 0 o 1
•un byte è una sequenza di 8 bits
•una parola consiste di 4 bytes
quindi la RAM è
una sequenza di bytesbyte
da cui si leggono ed in cui si scrivono singoli byte o blocchi di 4 bytes consecutivi: le parole.
bit
parola
0
1
2
3
4
5
6
7
8
9
10
11
Indirizzamento di byte e parolebyte
0
1
2
parola00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
in binario
unità di misura della RAM
1 Kilo byte: 210 = 1024 bytes, 1000
1 Mega byte: 220 = 1.048.576 bytes, 1000000
1 Giga byte 230 = 1.073.741.824 bytes, 109
1 Tera byte 240 = 1.099.511.627.776 bytes, 1012
• RAM accedere ad ogni byte ha la stessa durata (10-7 sec): non dipende da quale byte è stato acceduto prima
• è volatile: se tolgo la spina l’informazione è persa (c’è anche la ROM)
• ogni byte ha un indirizzo 0,1,2......
• il byte è la minima quantità accessibile (attraverso il suo indirizzo)
Caratteristiche della RAM
La CPU: unità centrale di calcolo:
bus
RAM
ALU
CI1 CI2 CIk
P
IP
RC
CPU
R0
Rn
registri di calcolo
esegue programmi che sono nella RAM
La CPU esegue continuamente il ciclo ADE=Access/Decode/Execute
• Access: preleva dalla RAM la prossima istruzione da eseguire (l’indirizzo è in P, l’istruzione viene messa in IP)
• Decode: decifra il codice dell’istruzione I che si trova memorizzata in IP
• Execute: la esegue attivando il circuito CI
Memoria Secondaria:
• è permanente
• dischi fissi, floppy, nastri magnetici, CD
• accesso sequenziale o misto (il tempo varia a seconda dell’accesso precedente)
• è adatta per leggere/scrivere grandi quantità di dati (in posizioni contigue)
I/O = Input/Output
Dispositivi di comunicazione utente computer. In un personal computer:
• Input = tastiera
• output = video / stampanti
• velocità diverse e molto minori delle altre parti del computer (decimi di sec)
I dati fondamentali sono:INTERI, REALI e CARATTERI
Il computer ha memoria finita e quindi l’insieme dei numeri interi rappresentabili, quello dei numeri reali rappresentabili e quello dei caratteri rappresentabili sono necessariamente finiti.
Rappresentazione dei dati nella RAM
Gli interi nel computer
e i negativi ?
Generalmente gli interi occupano una parola di 32 bit: in tutto 232 numeri distinti.
0201
0min
n
i
ix
12211
0max
nn
i
ix
1
0
00
11
11 2222
n
i
ii
nn bbbbx
Con n bit bn-1…b1b0 si rappresentano interi positivi da 0 a 2n-1:
Riserviamo il primo bit per il segno:0 = positivo 1 = negativo.
I numeri positivi rappresentabili sono quelli compresi tra 0 e 2n-1-1
Vi sono due modi per rappresentare i numeri negativi detti rispettivamente rappresentazione con complemento a 1 e con complemento a 2.
Complemento a uno
Si complementa a 2n-1 il valore assoluto del numero.
Esempio con n = 6 bit: la rappresentazione di –10 è:
63- 10=--- 53
111111- 001010=------- 110101
in binario
Problemi:• 2 rappresentazioni per lo 0: +0 e –0
63- 0=--- 63
111111- 000000=------- 111111
in binario
• complicata realizzazione delle operazioni aritmetiche
Concludendo: con n = 6 si rappresentano i numeri:
0 1 ... 31 32 ... 63
0 1 ... 31 -31 ... -0 positivi negativi
Rappr.
Numero
Complemento a due
Si complementa il valore assoluto del numero a 2n invece che a 2n-1.
Esempio con n = 6 bit: la rappresentazione di –10 è:
64- 10=--- 54
1000000- 001010=-------0110110
in binario
Complementando 0 si ottiene ancora 0
64- 0=--- 64 ha gli ultimi 6 bit uguali a 0
in binario 1000000- 000000=-------1000000
Complementando 54 (che rappresenta –10) si ottiene 64- 54=--- 10 ha il bit 5 uguale a 0(positivo)
in binario 1000000- 110110=-------0001010
Complementando 32 (che rappresenta –32) si ottiene
64- 32=--- 32 ha il bit 5 uguale a 1(negativo)
in binario 1000000- 100000=-------0100000
Concludendo: con n = 6 si rappresentano i numeri:
0 1 ... 31 32 ... 63
0 1 ... 31 -32 ... -1 positivi negativi
Rappr.
Numero
In generale: con n bits
positivi 0 .... 2n-1-1
negativi -2n-1 .... -1
La somma è semplice (n = 6)
10+ 12=--- 22
Somma di numeri positivi: 10+12
in binario 001010+ 001100=-------0010110
001000riporto
I due ultimi riporti sono uguali
Somma di numeri negativi: (-10)+(-12)
-10 64-10 = 54 -12 64-12 = 52
106-64=42
bit di overflow
54+ 52=---106
complemento
64-42 = 22
verifica
-22 64-22= 42
in binario 110110+ 110100=-------1101010
110100riporto
I due ultimi riporti sono uguali
54+ 12=--- 66
Somma con un numero negativo (-10)+12
-10 64-10 = 54
66-64 = 2
in binario 110110+ 001100=-------1000010
111100riporto
I due ultimi riporti sono uguali
27+ 12=--- 39
Risultato troppo grande 27+12
64-39 = 25 -25 64-25= 39
= -25 errore di overflow
in binario 011011+ 001100=-------0100111
011000riporto
I due ultimi riporti sono diversi