Autronica
LEZIONE N° 16
•
Memorie
–
–
–
–
–
–
•
Reti sequenziali sincronizzate complesse
–
–
–
–
–
•
•
•
•
Definizioni
Memoria RAM
Organizzazione
Temporizzazione
Cella base
Tipi di indirizzamento
Macchina di Mealy ritardata
Registro di stato
Registro operativo
Parte operativa
Parte di controllo
ALU
Registri interni
Architetture della parte di controllo
Architetture di un processore
AUTRONICA
16.1
Richiami
• Reti sequenziali, concetto di memoria, anelli di
reazione
• Esempio, Flip-Flop R-S
• Tecniche di descrizione
– Grafo orientato
– Diagramma di flusso
• Altri Flip –Flop
• Flip – Flop D trasparente
• Flip – Flop D edge-triggered
AUTRONICA
16.2
Definizioni
MEMORIE
• Memoria = elemento in grado di conservare
un’informazione
• Memorie Volatili = in grado di conservare
l’informazione solo se alimentate
• Memorie Non Volatili = non perdono
l’informazione anche se non alimentate
AUTRONICA
16.3
Definizioni
MEMORIE NON VOLATILI
• ROM = Read Only Memory
• Programmata in fabbrica
• PROM = Programmable Read Only Memory
• Programmabile una sola volta dall’utente [OTP]
• EPROM =Erasable Programmable ROM
• Prog. elettricamente, Cancellazione UV
• E2PROM = Electrical Erasable PROM
• Programmazione e cancellazione elettrica
AUTRONICA
16.4
Definizioni
MEMORIE VOLATILI
• RAM = Random Access Memory
• Memoria nella quale e possibile
– Scrivere
– Leggere
WRITE
READ
(W)
(R)
• RAM Statica = se alimentata, conserva
l’informazione per un tempo infinito
• RAM Dinamica = anche se alimenta, dopo un
certo tempo perde l’informazione
AUTRONICA
16.5
Organizzazione di una RAM
• Memoria RAM di “H” parole di “N” bit
– H è una potenza del 2
– N solitamente può valere 1, 4, 8
• Osservazione
• 210 =
1,024
• 220 =
1,048,576
• 230 = 1,073,741,824
AUTRONICA
1K
1M
1G
(Kilo)
(Mega)
(Giga)
16.6
Descrizione ai terminali
• Memoria RAM 64K x 4
A0
D0
64K x 4
D3
A15
CS
R/W
AUTRONICA
16.7
Legenda
• A0 : A15 = indirizzi (ADDRESS)
• D0 : D3 = dati
• CS
• R/W
(DATE)
= Attivatore (Chip Select)
[attivo basso]
= scrittura / lettura (Read/Write)
[1 = legge, 0 = scrive]
AUTRONICA
16.8
Temporizzazzione
• Ciclo di lettura
A0:A15
CS
R/W
D0:D3
• Ciclo di scrittura
A0:A15
CS
R/W
D0:D3
AUTRONICA
16.9
Cella di Memoria RAM STATICA
Word select
Q
R
Write
S
Din
AUTRONICA
Dout
16.10
Parola (Word)
Ws
R
Q
S
Din-3
R
Dout-3
Q
S
R
Din-2
Dout-2
Q
S
Din-1
R
Dout-1
Q
S
Din-0
Dout-0
Write
AUTRONICA
16.11
Organizzazione
Ws-0
R
Q
S
R
Q
S
R
Q
S
R
Q
S
R
Q
S
R
Q
S
R
Q
S
R
Q
S
Write
Ws-1
Write
Din-3
Dout-3
Din-2
Dout-2
AUTRONICA
Din-1
Dout-1
Din-0
16.12
Dout-0
Tecniche di accesso
• La singola word ha
• N ingressi = Data In
• N uscite =Data Out
• 1 selettore di parola
• All’esterno sono necessari
• N Data I/O (bidirezionale)
• Chip Select (CS)
• Selezione Read/ Write (R/W)
• K indirizzi
AUTRONICA
16.13
Osservazione
• Gli indirizzi sono codificati in binario
• È necessario un decodificatire K – 2K
K
D
E
C
.
.
.
.
.
0
2K
AUTRONICA
16.14
0
16
A0:A16
D
E
C
Schema completo
M
M
M
M
M
M
M
M
M
M
M
M
1
216-1
W
R
D3
D2
D1
AUTRONICA
D0
16.15
Osservazioni
• Architettura non quadrata
• Complessità del Decoder N = 2N
• occorrono 2N AND a N ingressi
– Esempio: Memoria da 1Mbit (220)
– Complessità del Decoder 21 milioni di Transistori !!
• Si ricorre a memorie a singolo bit e a struttura
a matrice
AUTRONICA
16.16
Organizzazione a Matrice
• Celle di memoria organizzate a quadrato
1
X
RAM
2N/2
N/2
1
2N/2
Y
AUTRONICA
N/2
16.17
Osservazioni
• Sono presenti due decodificatori
– Decodificatore di riga
– decodificatore di colonna
• A ciascun decodificatore arriva N/2 indirizzi
• Complessità totale dei Decoder
2 decodificatori N/2 – 2N/2
occorrono 2x2N/2 AND a N/2 ingressi
[per memoria da 1 Mbit (220) occorrono
2 x 210 x 11 =22528 transistori ]
AUTRONICA
16.18
Reti Sequenziali Complesse
Vantaggi delle soluzioni euristiche
• Esempio
– Moltiplicatore di interi positivi 16 x 16
– Rete combinatoria con 32 ingressi e 32 uscite
• Tutte le possibili combinazioni degli ingressi sono
necessarie
– Risultato della sintesi automatica
• una memoria ROM con 32 bit di indirizzo e parole di 32 bit
• Complessità globale
• 4 G parole da da 32 bit ( 16 G BYTE !!!!!)
AUTRONICA
16.19
Macchina di MEALY
• Le variabili d’uscita, in un determinato istante, sono
funzione del valore degli ingressi e delle variabili di stato
R
X1
Xn
a1
s1
sk
an
z1
z1
R’
zm
an+1
zm+1
an+k
zm+k
s’1
s’k
zm
La rete R’ è una rete combinatoria
AUTRONICA
16.20
Macchina di Mealy sincronizzata
• Le uscite sono funzioni delle variabili di stato e
degli ingressi
z1
X1
a1
Xn
zm
an
s
R’
an+1
zm+1 n1
snk
zm+k
an+k
sp1
R
sPk
z1
zm
Ck
AUTRONICA
16.21
Macchina di MOORE
• Le variabili d’uscita, in un determinato istante, sono
funzione del sole variabili di stato
R
X1
a1
z1
s’1
z1
CN2
Xn
s1
sk
an
an+1
an+k
CN1 z
m
zW
zm+1
zk s’k
Ck
AUTRONICA
16.22
Macchina di Mealy Ritardata
• Le uscite sono funzioni delle variabili di stato e
degli ingressi, ma risultano sincronizzate
z1
X1
a1
Xn
zm
an
s
R’
an+1
zm+1 n1
snk
zm+k
an+k
sp1
R
sPk
z1
zm
Ck
AUTRONICA
16.23
Interpretazione diversa
• Il registro può essere visto come più registri
che svolgono funzioni diverse
DR0
IN
R
C
DRn
OUT
X
SR
Ck
AUTRONICA
16.24
Osservazioni 1
• Registro SR
(Status Register)
– Contiene le variabili di stato
• Registro DR0 (Data Register)
– Contiene parte delle variabili d’uscita (Dati)
• …..
• Registro RDn (Data Register)
– Contiene parte delle variabili d’uscita (Dati)
• NOTE
• La suddivisione in vari “registri dati” è funzionale al
progetto
• Non tutti gli RD servono per le variabili d’uscita
AUTRONICA
16.25
Osservazione 2
• La suddivisione dei registri è funzionale al fatto
di ridurre considerevolmente gli stati interni
della macchina (solo SR da luogo a variabili di
stato)
• Anche la rete combinatoria può essere
interpretata come più reti combinatorie
AUTRONICA
16.26
Scomposizione della “RC”
DR0
IN
Parte
Operativa
DRn
OUT
X
C
B
SR
Parte di
Controllo
Ck
AUTRONICA
16.27
Osservazioni
• La parte operativa esegue determinate
operazioni sulle variabili d’ingresso, in funzione
delle variabili d’uscita e delle informazioni
fornite dalla parte di controllo (B)
microistruzioni
• Genera le variabili di condizionamento (C) e le
nuove uscita
• La parte di controllo determina i vari passi da
eseguire, in funzione delle variabili di stato e
delle variabili di controllo
AUTRONICA
16.28
Ulteriore suddivisione
• La parte operativa può essere ulteriormente
suddivisa in due parti
RC
Operativa
IN
RC
Condizionamento
Parte
Operativa
C
B
AUTRONICA
Ck
16.29
Osservazioni
• La suddivisione vista è dettata da:
– Le reti sequenziali complesse sono difficili ad essere
gestite
– Le funzioni della parte operativa solitamente sono.
•
•
•
•
OPERAZIONI ARITMETICHE
OPERAZIONI LOGICHE
SHIFT
MULTIPLEX
– Una soluzione “guidata” è solitamente più veloce e
più efficiente
– (i criteri d’ottimizzazione sono scelti dal progettista)
AUTRONICA
16.30
Requisiti della
Parte OperativaRichiami
• Funzioni che deve eseguire fra 2 parole di k bit
–
–
–
–
–
–
–
Somma
Differenza
Negazione
And
Or
Shift
……
• Possibilità di essere “PROGRAMMATA”
• Eventuale memorizzazione del risultato
AUTRONICA
16.31
Parte Operativa
Shift A
Shift B
MUX A
Reg. A
MUX B
R0
R1
Reg. B
A L U
Reg. U
R31
AUTRONICA
16.32
Architettura di
Rete sequenziale complessa
X
RC
2
SR
Parte di Controllo
RC
1
DR
B
C
RC
Op
Z
RC
Con
Parte Operativa
AUTRONICA
16.33
Osservazioni
• La parte operativa ha una soluzione generale
– Rete combinatoria operativa (ALU)
– Rete combinatoria di condizionamento (Carry etc.)
• Soluzione non ottimizzata per la particolare
esigenza
• La parte di controllo è ottimizzata
• Si può trovare soluzioni più generali non
ottimizzate
• Una rete combinatoria si può sempre realizzare
con una ROM
AUTRONICA
16.34
Parte di controllo
• Microaddress-based
SR
R
O
M
microcodice
B
eff
microindirizzo T
microindirizzo F
microindirizzo
C
AUTRONICA
16.35
Parte di controllo
• Microinstruction-based
R
O
M
microcodice
SR
B
eff
microindirizzo T
microindirizzo F
microindirizzo
C
AUTRONICA
16.36
Osservazioni
• Microaddress-based
– il registro di stato è piccolo
– la ROM è in serie alla parte operativa
• Microinstruction-based
– il registro di stato è grande
– fra ROM e parte operativa c’è il registro di stato
• Consente la presenza di un solo blocco di
decisione fra due stati contigui
AUTRONICA
16.37
Architettura Tot.
R
O
M
B
Shift A
Shift B
SR
MUX A MUX B
Reg. A Reg. B
R0
R1
A L U
C
Reg. U
R31
Parte di controllo
Parte operativa
AUTRONICA
16.38
Osservazioni
• L’architettura della parte di controllo
Microinstruction-based evita di avere due reti
combinatorie in cascata
• La parte operativa è general purpose
• La parte di controllo ha una architettura
generale, ma è progettata per la particolare
applicazione
• L’elemento che personalizza l’applicazione è la
ROM
AUTRONICA
16.39
Architettura modificata
R
O
M
B
Shift A
Shift B
SR
MUX A MUX B
Reg. A Reg. B
R0
R1
A L U
C
Reg. U
R31
Parte di controllo
Parte operativa
AUTRONICA
16.40
Osservazioni 1
– La nuova architettura consente di personalizzare il
sistema per varie applicazioni
• Inconvenienti
– La memoria di personalizzazione, la ROM, presenta
una lunghezza di parola eccessiva
•
•
•
•
Microcodice
Microindirizzi T
Microindirizzi F
Condizionamento eff
(> di 100 bit)
(> di 10 bit)
(> di 10 bit)
(8 bit)
AUTRONICA
16.41
Osservazione 2
• Tecniche di realizzazione di una rete logica
– Logica cablata
• Viene progettata una particolare architettura (ottimizzata)
per la risoluzione dello specifico problema
• Si usano blocchi base standard, le interconnessioni
(cablaggio) realizzano la particolare architettura
– Logica a controllo di programma
• Viene progettata una architettura che è in grado di svolgere
varie funzioni
• La personalizzazione è ottenuta mediante la particolare
sequenza di operazioni svolte dalla macchina
• Programma
AUTRONICA
16.42
Osservazione 3
• Si mappano nella ROM di microprogramma
tutte le funzioni possibili della parte operativa
• Si codificano in modo compatto le varie
funzioni in una ROM di mappatura
• Il programma di personalizzazione
dell’applicazione, scritto in un linguaggi
opportuno (ASSEMBLER), risiede in una
memoria esterna
• Sono necessari alcuni altri registri e una
opportuna rete di controllo
(SEQUENZIALIZZATORE)
AUTRONICA
16.43
Architettura a controllo di programma
D In
P
R
O
G
R
A
M
R
O
M
I
A
I
n
s
t
M
a
p
R
e
g
R
O
M
P
r
o
g
C
o
u
n
M
i
c
r
o
M
i
c
r
o
C
o
d
C
o
d
R
O
M
R
e
g
Sequenzer
(control
logic)
Parte operativa
SHIFT
SHIFT
MUX A
MUX B
REG. A
REG. A
R0
R1
A L U
C
REG. U
R
e
g
R31
Parte di controllo
D Out
AUTRONICA
16.44
Osservazioni
• Sequenzializzatore
– Gestisce sia il microprogramma, sia il programma
• Program Counter
– Contiene l’indirizzo successivo della locazione di
memoria di programma
• Status Register
– Contiene informazioni sulle funzioni eseguite dalla
parte operativa
• Inconveniente
– Elevato numero di terminali (PED)
AUTRONICA
16.45
Architettura a controllo di programma
D In
P
R
O
G
R
A
M
R
O
M
I
A
I
n
s
t
M
a
p
R
e
g
R
O
M
P
r
o
g
C
o
u
n
M
i
c
r
o
M
i
c
r
o
C
o
d
C
o
d
R
O
M
R
e
g
Sequenzer
(control
logic)
Parte operativa
SHIFT
SHIFT
MUX A
MUX B
REG. A
REG. A
R0
R1
A L U
C
REG. U
R
e
g
R31
Parte di controllo
D Out
AUTRONICA
16.46
Osservazioni
• Sequenzializzatore
– Gestisce sia il microprogramma, sia il programma
• Program Counter
– Contiene l’indirizzo successivo della locazione di
memoria di programma
• Status Register
– Contiene informazioni sulle funzioni eseguite dalla
parte operativa
• Inconveniente
– Elevato numero di terminali (PED)
AUTRONICA
16.47
BUS
• Utilizzando porte TRE STATE bidirezionali si
può utilizzare lo stesso Filo per collegare, in
istanti diversi, vari componenti
• BUS
Percorso informatico condiviso fra più
unità
AUTRONICA
16.48
Architettura von Neumann
Unità
Aritmetica
Dati
Memoria
B
U
S
Stato
Istruzioni
Unità
di Controllo
Indirizzi
Istruzioni
AUTRONICA
16.49
Descrizione
• Unita Aritmetica:
• ALU
– Blocco che “esegue” le operazioni richieste
• Unita di Controllo:
• MSF (+ eventuali registri)
• Memoria
• Unica per Dati e Programma (RAM)
AUTRONICA
16.50
Osservazioni
• Macchina di ridotta complessità
========================================
=
• Criterio di valutazione di una architettura
• Individuazione dei blocchi “congestionati”
========================================
=
• Limiti
– Unica memoria
– Unico BUS (Collo di Bottiglia)
AUTRONICA
16.51
Architettura Harvard
Unità
Aritmetica
Dati
Memoria
Dati
Stato
Istruzioni
Unità
di Controllo
Istruzioni
Indirizzi
AUTRONICA
Memoria
Istruzioni
16.52
Descrizione
• Memoria Dati
» Accesso diretto alla ALU
» Realizzazione: RAM
• Memoria Istruzioni
» Il contenuto rimane invariato
» Realizzazione con memoria non volatile:
ROM
AUTRONICA
16.53
Osservazioni
• Non presenta particolari “Colli di bottiglia”
• Può essere migliorata per aumentarne la
conccorrenzialità
• Architettura alla quale si ispirano gli attuali
microprocessori e DSP
AUTRONICA
16.54
Architettura di un Microprocessore
Data Bus
ROM
di Mappatura
MUX 1
Sequenzializzatore
Microprogramma
MUX 2
A L U
Memoria ROM
Microprogramma
DEMUX
Address
Control
AUTRONICA
16.55
Descrizione (1)
• ROM di Mappatura
– Converte il codice macchina in codice interno
• Sequenzializzatore
– Rete di controllo effettiva
• Memoria di Microprogramma
– Converte il codice interno nei codici di controllo dei
vari blocchi
AUTRONICA
16.56
Descrizione (2)
• ALU
– Unità Logica Aritmetica
• MUX 1 e MUX 2
– Multiplex di scelta su gli ingressi della ALU
• DEMUX
– Gestisce l’indirizzamento del risultato
AUTRONICA
16.57
Osservazioni
• Funzionamento totalmente in sequenza
• Interpretazione
Esecuzione
• Assenza di registri interni
• Contatore di programma, Registro di stato
• Accumulatori
• Generazione degli indirizzi mediante ALU
• Collo di bottiglia
DATA BUS
AUTRONICA
16.58
PIPE-LINE
• Alcune operazioni possono essere fatte in
parallelo
– Necessità di disporre di REGISTRI intermedi
• Mentre la ALU esegue le operazioni richieste, il
Sistema di controllo può decodificare
l’istruzione successiva
• Aggiungere una ALU per il calcolo degli
indirizzi
AUTRONICA
16.59
Architettura di un Microprocessore (2)
Data Bus
Istruc. Reg.
MUX + Register
ROM 1
Sequenzializzatore
Microprog. ROM
A L U
DEMUX +Reg.
MUX + Register
Mcropog. Reg.
Address
Control
R
E
G
A L U
DEMUX +Reg.
AUTRONICA
16.60
Osservazioni
• Possibilità di sovrapposizione fra fase di
interpretazione ed esecuzione dell’istruzione
• Possibilità di memorizzazione di risultati
intermedi
• Salvataggio dei registri di controllo
– Possibili ulteriori modifiche in funzione delle
esigenze
AUTRONICA
16.61
Architettura di un calcolatore
DATA BUS
ADDRESS BUS
CONTROL BUS
I/O
DATA
(RAM)
PROG
(ROM)
AUTRONICA
CPU
16.62
Tipi di architetture in funzione delle
istruzioni
• RISC => Reduced Instructions Set Computer
– ridotto numero di istruzioni
– si effettuano in un numero ridotto di cicli
• CISC => Complex Instructions Set Computer
– Istruzioni di elevata capacità
– si effettuano in un numero grande di cicli
AUTRONICA
16.63
Conclusioni
• Parte di controllo programmabile
–
–
–
–
•
•
•
•
Mapping ROM
Instruction Register
Sequenzializzatore di microprogramma
Sequenzializzatore di programma
Bus
Architettura Von Neuman
Architettura Harvard
Architettura di un CALCOLATORE
AUTRONICA
16.64
Scarica

Lezione-16 - Dipartimento di Ingegneria dell`Informazione