1
L’architettura di Von Neumann
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 bitpuò contenere o 0 o 1
•un byteè una sequenza di 8 bits
•unaparolaconsiste di 4 bytes
quindi la RAM è
una sequenza di bytes byte
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 parole
byte
0
1
2
parola
00000000 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
! " #
$ "
$% ! " &' ( $
" &$
(( ))*++++++
$ # ,
% ((
Caratteristiche della RAM
2
La CPU: unità centrale di calcolo:
- -* -.
CPU
registri di calcolo
esegue programmi che sono nella RAM
/ -01
23 2 34
!" % "
( & (( $ 0)
& ( % 0
2 ! ' & (
% (( 0
34 ! % -
Memoria Secondaria:
$"
' )'"") )-2
# ( " %
& "
$ " %
# , " (
I/O = Input/Output
2 " % (
" + " " !
"
" % "
% , %
" "
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 232numeri distinti.
0 2
10
min = in=−0 ⋅ i= x
1 2 2
11
max= ni=−0 ⋅ i = n− x
−
=
− − + + + =
=bn12n1 b121 b020 ni 01bi2i x
Con n bit bn-1…b1b0si rappresentano interi positivi da 0 a 2n-1:
3 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 2ninvece 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
4
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 001000 riporto
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 110100 riporto
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 111100 riporto
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 011000 riporto
I due ultimi riporti sono diversi