Sei sulla pagina 1di 41

Fondamenti di informatica

e calcolo numerico

Parte 2. Memorie

Lucio Pancheri

Laurea Triennale in Ingegneria Industriale


Università di Trento

Fondamenti di informatica e calcolo numerico 1


▪ Usando interruttori controllati da segnali elettrici
(relè, tubi a vuoto, transistor) è possibile costruire
circuiti che realizzano operazioni con numeri binari
▪ Circuiti semplici: porte logiche (AND, OR, NOT, XOR)
▪ Sommatori di numeri binari a N bit:
N N

A B
N-bit Adder
CO S CI
N

Fondamenti di informatica e calcolo numerico 2


Feedback
Uscita connessa all’ingresso:
c’è passaggio di corrente
nella bobina del relè.

Il nucleo magnetizzato attiva


+V l’interruttore…

Fondamenti di informatica e calcolo numerico 3


Il relè commuta:
il circuito si interrompe.

Il magnete non trattiene più


l’interruttore nella posizione
+V corrente…

Fondamenti di informatica e calcolo numerico 4


L’interruttore torna nella
posizione iniziale: torna a
scorrere una corrente…

+V

Fondamenti di informatica e calcolo numerico 5


Il relè commuta di nuovo

… Il ciclo continua

+V

Fondamenti di informatica e calcolo numerico 6


Y

Oscillatore ad anello
(Ring oscillator)
+V

T: periodo di oscillazione
Y

0 1

tempo

Fondamenti di informatica e calcolo numerico 7


T: periodo di oscillazione
Y

Oscillatore ad anello
(Ring oscillator)
tempo
fOSC = 1/T frequenza di
oscillazione
Relè: commutano in ms:
fOSC 10 – 100 Hz (cicli/s)
Transistor: tempo di commutazione dai μs a meno di 1ns:
fOSC fino ai GHz (109 cicli/s)

Fondamenti di informatica e calcolo numerico 8


Ancora feedback

Cosa succede se invece di un inverter solo ne metto due?

Fondamenti di informatica e calcolo numerico 9


Suppongo che Q = 1

Q
1 0 1

Il circuito si trova in uno stato stabile e lo


mantiene fintantoché la batteria rimane collegata

Fondamenti di informatica e calcolo numerico 10


Suppongo che Q = 0

Q
0 1 0

Anche questo è uno stato stabile

Posso usare questo circuito per memorizzare 1 bit

Problema: come faccio a commutare da uno stato all’altro?

Fondamenti di informatica e calcolo numerico 11


Inserisco nel circuito una porta OR. OR GATE
B Y
A

B Y Q A B Y
A 0 0 0
0 1 1
1 0 1
Se l’ingresso A = 0  Y = B : 1 1 1
la porta OR è «trasparente»

Se A = 0 il circuito si comporta come se


la porta OR non ci fosse

Fondamenti di informatica e calcolo numerico 12


OR GATE
B Y
A

B Y Q A B Y
A 0 0 0
0 1 1
1 0 1
1 1 1
Quando A = 1  Y = 1 e Q = 1
riesco a impostare a 1 lo stato memorizzato dal circuito

Problema: non c’è modo di far tornare lo stato a 0

Fondamenti di informatica e calcolo numerico 13


OR GATE
B Y
A

B1 Y1 B2 Y2 Q
A B Y
0 0 0
A1
A2 0 1 1
1 0 1
1 1 1
Inserico un’altra porta OR tra i 2 inverter

Se A2 = 0 la seconda porta OR è «trasparente»

Se A2 = 1, Y2 = 1 e perciò Q = 0

Fondamenti di informatica e calcolo numerico 14


S R Q

0 1 0
1 0 1

Q
S
R

I due ingressi sono convenzionalmente chiamati S (SET)


e R (RESET)

Se S = 1 e R=0: Q = 1
Se R = 1 e S=0: Q = 0

Fondamenti di informatica e calcolo numerico 15


A B Y
0 0 1
0 1 0
1 0 0
1 1 0
B Y B
Y
A A

La porta OR seguita da un inverter forma un gate


chiamato NOR

Fondamenti di informatica e calcolo numerico 16


S R Q
Latch SR
0 0 Q
0 1 0
1 0 1
1 1 N. A.
Q
S
R

Se S = 0 e R = 0, il latch mantiene il suo stato


(cella di memoria)

La combinazione S = 1 e R = 1 non è autorizzata

Fondamenti di informatica e calcolo numerico 17


Latch SR S R Q

R Q 0 0 Q
0 1 0
1 0 1
1 1 N.A.
Q
S

S Q Simbolo circuitale

R Q

Fondamenti di informatica e calcolo numerico 18


S R Q
S Q 0 0 Q
0 1 0
R Q 1 0 1
1 1 N.A.

Si può usare come cella di memoria, ma per essere più


efficace ha bisogno di qualche modifica:

1. Deve poter cambiare stato solo in presenza di un


ulteriore segnale di controllo

2. E’ sufficiente un ingresso che definisca il valore del


bit che deve essere memorizzato
Fondamenti di informatica e calcolo numerico 19
EN S R Q
S Q 0 X X Q
S Q
EN
R Q
Q
R

Inserisco 2 AND gate e un segnale di


ENABLE (EN) comune
A B Y
Se EN = 0 l’uscita degli AND 0 0 0
rimane a 0. Il latch non commuta 0 1 0
A 1 0 0
Y
B 1 1 1

Fondamenti di informatica e calcolo numerico 20


EN S R Q
S Q 0 X X Q
S Q
EN 1 0 0 Q
R Q 1 0 1 0
Q
R 1 1 0 1
1 1 1 N.A.
Se EN = 1, le porte AND sono
«trasparenti», i segnali S e R
passano A B Y
0 0 0
0 1 0
A 1 0 0
Y
B 1 1 1

Fondamenti di informatica e calcolo numerico 21


EN S R Q
S Q 0 X X Q
S Q
EN 1 0 0 Q
R Q 1 0 1 0
Q
R 1 1 0 1
1 1 1 N.A.

Le configurazioni veramente utili sono


solo quelle in cui S = 0 e R = 1 o
viceversa.

Fondamenti di informatica e calcolo numerico 22


D
S Q Q EN D Q
EN 0 X Q
R Q 1 X D
Q

D-latch: (Data latch)


D Q
Se EN = 0 mantiene il dato
EN Q
Se EN = 1 memorizza il valore
del dato D

Fondamenti di informatica e calcolo numerico 23


D0 D Q Q0
EN D Q
EN Q
0 X Q
1 X D D1 D Q Q1
EN Q

Il D-latch può essere usato come D2 D Q Q2


cella elementare di memoria EN Q

Posso formare strutture che


memorizzino sequenze di bit:
REGISTRI
DN-1 D Q QN-1

Attivando la linea W (Write) i dati EN Q

in ingresso vengono scritti nel registro W

Fondamenti di informatica e calcolo numerico 24


Posso usare un registro per
D0 D Q Q0
memorizzare il risultato di una
EN Q
somma
D1 D Q Q1
N N

EN Q

A B D2 D Q Q2
N-bit Adder EN Q
CO S CI
N

D
N-bit Register DN-1 D Q QN-1
W Q EN Q
N W

Fondamenti di informatica e calcolo numerico 25


D0 D Q Q0
EN Q

D1 D Q Q1
EN Q
Per memorizzare tanti bit D2 D Q Q2
(103, 106, 109, …) ho bisogno EN Q
di altrettante linee di ingresso
e uscita?

DN-1 D Q QN-1
EN Q

Fondamenti di informatica e calcolo numerico 26


SEL Y
Selettore (MUX, multiplexer) 0 B
1 A

A
Y
SEL A
Y
B B

SEL

Se SEL = 1 il gate è trasparente per A, B è bloccato


Se SEL = 0 il gate è trasparente per B, A è bloccato

Fondamenti di informatica e calcolo numerico 27


S0 S1 Y
MUX a 4 ingressi 0 0 D0
0 1 D1

D0 D0 1 0 D2

D1 1 1 D3
D1 Y
Y D2
D2
D3 D3

S0 S1 S0 S1

Per ogni combinazione S0 e S1 passa un ingresso diverso

Fondamenti di informatica e calcolo numerico 28


N 2N
MUX con N bit di selezione:
1 2
Può gestire 2N ingressi
2 4
3 8
8 256
Y 10 1,024
D 2N

20 1,048,576
30 1,073,741,824
N

Fondamenti di informatica e calcolo numerico 29


SEL Y0 Y1
Demultiplexer (DEMUX) 0 0 D
1 D 0

D Y0

SEL Y0
Y1 D
Y1

SEL

Se SEL = 1, D appare all’uscita Y0, mentre Y1 = 0


Se SEL = 0, D appare all’uscita Y1, mentre Y0 = 0

Fondamenti di informatica e calcolo numerico 30


S0 S1 Y0 Y0 Y0 Y0
DEMUX a 4 uscite
0 0 D 0 0 0
0 1 0 D 0 0
Y0 1 0 0 0 D 0
Y1 1 1 0 0 0 D
D
Y2
Y3

S0 S1

Per ogni combinazione S0 e S1 il dato passa a un’uscita


diversa

Fondamenti di informatica e calcolo numerico 31


DEMUX con N bit di selezione:
Può gestire 2N uscite

Y0
Y Y1
D 2N
D Y2

Y2N - 1
N

S
S

Fondamenti di informatica e calcolo numerico 32


D Q
Con un DEMUX posso scrivere
EN Q
un bit in una cella singola
indirizzata da S0 e S1 D Q

W EN Q Y
D Q
Con un MUX posso leggere
EN Q
un bit da una cella
indirizzata da S0 e S1 D Q

EN Q

D
S0
S1

Fondamenti di informatica e calcolo numerico 33


Con un MUX e un DEMUX indirizzati a N bit posso
scrivere e leggere una matrice con 2N celle di memoria

2N celle Y
W 2N
di memoria
2N

D
Address N
N

Vantaggio: anche con pochi ingressi e uscite possono


essere gestiti molte celle
Fondamenti di informatica e calcolo numerico 34
Possiamo esprimere anche questo circuito con un
simbolo equivalente

Una matrice di memoria di questo tipo prende il nome


di RAM (Random Access Memory)

D Y
W 2N x 1 RAM
Addr

Fondamenti di informatica e calcolo numerico 35


Combinando RAM da 1 ingresso/uscita posso ottenere
RAM con più ingressi/uscite in parallelo

D0
Y0
2N x 1 RAM

D1
Y1
2N x 1 RAM

D7
Y7
2N x 1 RAM
W
Addr
Fondamenti di informatica e calcolo numerico 36
Combinando RAM da 1 ingresso/uscita posso ottenere
RAM con più ingressi/uscita in parallelo

D0
Y0
2N x 1 RAM
D Y
D1 Addr 2N x 8 RAM
Y1
2N x 1 RAM W
Ingressi:
• 8 linee dati
D7 • N linee indirizzi
Y7 • Linea W
2N x 1 RAM Uscita
W • 8 linee dati
Addr
Fondamenti di informatica e calcolo numerico 37
Nomenclatura
▪ Di solito gli ingressi/uscite delle memorie sono organizzati in «parole» di 8
bit o multipli
▪ Una parola di 8 bit (abbr. b) viene chiamata byte (abbr. B)
▪ Per indicare valori molto grandi si usano gli stessi prefissi del SI usati nella
notazione scientifica (secondo gli standard internazionali)
▪ E’ prassi comune usare i prefissi
in modo leggermente diverso, Prefisso Simbolo Valore
basandosi su potenze di 210 kilo k 103
(1024 ≈ 1000):
Mega M 106
convivenza «di fatto» delle due
notazioni Giga G 109
Tera T 1012
Peta P 1015
Exa E 1018
Zetta Z 1021

Fondamenti di informatica e calcolo numerico 38


Esempi:

▪ 1 kbit = 1000 bit


▪ 1kB = 1000 x 8 = 8000 bit
▪ 1Mbit = 106 bit
▪ 1MB = 8 x 106 bit
▪ 100 GB = 8 x 100 x 109 bit = 8 x 1011 bit
▪ 3.3 ZB = 8 x 3.3 x 1021 bit = 2.64 x 1022 bit

Fondamenti di informatica e calcolo numerico 39


RAM integrate commerciali

Esempio: 74LS89: 64 bit RAM (16 x 4)


4 linee dati (parole da 4 bit) Write
4 linee indirizzi: 24 = 16 Enable
Chip
select

Ingressi
Indirizzi

Uscite

Fondamenti di informatica e calcolo numerico 40


Esempio: AS7C4096A: 4 Mbit RAM (512k x 8bit)

8 linee dati (parole da 8 bit):


ingressi e uscite I/O sono condivisi
19 linee indirizzi: 219 = 512k

Fondamenti di informatica e calcolo numerico 41

Potrebbero piacerti anche

  • AD Lez2
    AD Lez2
    Documento26 pagine
    AD Lez2
    Thomas Geda
    Nessuna valutazione finora
  • 8255 PDF
    8255 PDF
    Documento47 pagine
    8255 PDF
    Alessandro Martina
    Nessuna valutazione finora
  • Contatore
    Contatore
    Documento7 pagine
    Contatore
    leonardo conti
    Nessuna valutazione finora
  • 04 FlipFlop
    04 FlipFlop
    Documento62 pagine
    04 FlipFlop
    Simone Zinni
    Nessuna valutazione finora