SISTEMI DIGITALI COMPLESSI
dati d'ingresso
SCA (slave)
SCO (master)
dati di uscita
TASK o comandi X
condizioni esterne comandi all'esterno
Sistema digitale complesso suddiviso in SCO-SCA
Il procedimento di sintesi di un sistema digitale, può essere suddiviso nei seguenti passi:
1. Specifica del problema.
2. Individuazione di un algoritmo di soluzione.
3. Progetto di un SCA atto a supportare l’algoritmo.
4. Definizione di un SCO che implementa l’algoritmo.
5. Valutazione del sistema: se le prestazioni rispondono alle specifiche del problema si passa al punto 6.
Altrimenti si verifica se è possibile definire un altro SCA: in caso positivo si modifica il SCA e si torna al punto 4; se no, si passa al punto 2.
6. Sintesi del sistema e verifica del corretto
funzionamento.
Sottosistema di Calcolo (SCA)
Registri, segnali e operazioni
D
CK EN
Q
Cella di un registro
Un registro viene indicato con R, il suo contenuto con (R).
B A
an-1 a0
bn-1 b0
enck Trasferimento dati tra due registri
Operazioni tra dati contenuti in registri
OR : (A) (B) = Y somma logica bit a bit esempio: (0110) (1100) = 1110
AND : (A) (B) = Y prodotto logico bit a bit esempio: (0110) (1100) = 0100
NOT A: (A) = Y complementazione dei bit
esempio: (0110) = 1001
EXOR : (A) (B) = Y or esclusivo bit a bit esempio: (0110) (1100) = 1010 ADD : (A) + (B) = Y somma aritmetica
esempio: (0110) + (1100) = 0010 SUB : (A) - (B) = Y sottrazione
esempio: (0110) - (1100) = 1010
SR A, k: shift right (scalamento a destra) di k posizioni ai ai-k i = n-1, ..., k
0 ah h = n-1, ..., k
SL A, k: shift left (scalamento a sinistra) di k posizioni ai ai+k i = 0, 1, ..., n-k
0 ah h = 0, 1, ..., n-k
RR A, k: rotate right (rotazione a destra) di k posizioni ai ai-k i = n-1, ..., k
ah an-k+h h =0, 1,...., k-1
RL A, k: rotate left (rotazione a sinistra) di k posizioni ai a(i+k)mod n i = 0, 1, ..., n
INC A, k: (A) + k A DEC A, k: (A) - k A
EXCH A, B: (B) A (A) B
Interconnessione registri-circuiti di calcolo
MUX MUX MUX MUX
A L
MUX
S
R1 R2 R3 R4
Esempio di interconnessione tra registri e circuiti di calcolo
MUX MUX MUX MUX
dall'esterno
MUX MUX MUX MUX
A L
MUX
S
R1 R2 R3 R4
Interconnessione tra registri e circuiti di calcolo
. . . . . .
R1 B1
R2 B2
Rn Bn
singola linea
linee multiple
shifter ALU
B B
SR BS TEMP2 TEMP1
Wt1 Wt2
Bn B1 B2
BA
W1 W2 Wn
Interconnessione tra registri e circuiti di calcolo tramite bus
. . .
RM WM
. . .
decoder
AND R0
R1
R7
AND
AND AND
AND AND
Organizzazione vettoriale dei registri
S
R1 R2 R3 R4
ld
en ld ld
op en
op address
d e c o d e r
TEMP TEMP
ALU
Interconnessione a bus tra registri e circuiti di calcolo
Esempio di interconnessione con tre bus
Sottosistema di Controllo (SCO) La microprogrammazione
Rappresentazione Algorithm State Machine
} =
microprogrammazione
Implementazione di e tramite ROM
X
Y Y'
Z
CK
Modello di Mealy
s
T1 Tm
d1 dm
case
i1 im
Modulo elementare della rappresentazione ASM per macchine di tipo Mealy
La corrispondente microistruzione ha un formato del tipo:
i: C
1(T
1,
i1), C
2(T
2,
i2), . . . , C
m(T
m,
im)
dove
C
1, C
2, . . . , C
m(m 2
k, k = n) sono le condizioni derivanti dalle variabili di decisione x
1, x
2, . . . , x
n;
T
1, T
2,..., T
msono le corrispondenti azioni da effettuare;
i1,
i2,...,
imle microistruzioni successive a
i.
Modello strutturale standard
Struttura della parola di ROM
Se
- n è il numero delle variabili di ingresso - m è il numero delle variabili di stato allora
numero di parole
=2
n+mp.e., se
- n =20 - m = 4 allora
numero di parole
=2
24(16 Mega)
ECCESSIVO!!!!!
SS TASK
X
Y Y'
Z
CK
ROM
R
registro SEL
circuito di selezione
R
TASK ck
ck SEL
Y' (SS)
Y (stato attuale)
X X'
registro di stato
Struttura del SCO nel caso di modello di Mealy
SEL SS TASK
Struttura della parola di ROM nel caso di modello di Mealy con selezione
X4 X3 X2 X1
X2' X1'
Esempio di circuito di mascheramento non codificato
Modello di Moore
s / T
case
i1 im
d1/ T1 dm/ Tm
Modulo elementare della rappresentazione ASM per macchine di tipo Moore
La corrispondente microistruzione ha un formato del tipo:
i: T
i; C
1(
i1), C
2(
i2),..., C
m(
im) dove
C
1, C
2,..., C
m(m 2
k, k = n) sono le condizioni derivanti dalle variabili di decisione x
1,..., x
n;
T
iè l’azione da effettuare;
i1,..,
imle microistruzioni successive a
i.
Modello strutturale di Moore standard
Struttura della parola di ROM (che implementa la )
Struttura della parola di ROM (che implementa la )
Se
- n è il numero delle variabili di ingresso - m è il numero delle variabili di stato allora
numero delle righe
della prima ROM (che impl. la ) =2
n+mp.e., se
- n =20 - m = 4 allora
numero delle righe
=2
24(16 Mega)
ECCESSIVO!!!!!
SS
TASK
Task
Y Y’
ck
Soluzione che permette l’uso di una unica ROM
Stato attuale input Y
1Y
0X
2X
1X
0Stato successivo Y’
1Y’
00 0 0 0 0
0 0 0 0 1 . . ...
1 1 1 1 1
Stato attuale
Y
1Y
0Uscita Z
1Z
00 0
0 1 1 0 1 1
Rappresentazione tabellare, una per ROM
Stato attuale Y
1Y
0X
2X
1X
0000 X
2X
1X
0001
X
2X
1X
0010
X
2X
1X
0011 X
2X
1X
0100 X
2X
1X
0101 X
2X
1X
0110 X
2X
1X
0111
Uscita Z
1Z
00 0 0 1 1 0 1 1
Rappresentazione matriciale, un'unica ROM
Dimensione della parola della ROM ancora eccessivo
Infatti
numero delle righe
=2
mdove ogni riga ha una dimensione pari a m 2
n+ k
p.e., se
- n =20 - m = 4 - k = 10
allora
dimensione della parola di ROM
=2
20+10 (1 Mega)
SS1 SS2 . . . SSm
multiplexer
R ck
X ROM
Y Y'
TASK
'
Soluzione che riduce le dimensioni della ROM
SS1 SS2 . . . SS m
multiplexer
R ck
X ROM
Y Y'
TASK
X' circuito di selezione SEL
Struttura del SCO nel caso di modello di Moore con circuito di selezione
SS1 SS2 ... SSm SEL TASK
Parola di ROM nel caso di modello di Moore con circuito di selezione
Dove m questa volta è pari alla cardinalità delle variabili
selezionate X’, normalmente 1 o 2.
Controllo per strutture Pipeline.
ck
X1 X2 X3 XN Y
TASK1 TASK2 TASKN
Sistemi di calcolo a task fisso nel tempo
ck
X1 X2 X3 XN Y
TASK1 (KT) TASK2 ((K-1)T) TASKN (K-N+1)T)
Sistemi di calcolo a task variabile nel tempo
Y X1
X2 X3
X j XN ck
TASK1-1
TASK1-2 TASK1-3
TASK2-1 TASK2-2
TASK3-1
Temporizzazione di una catena pipeline
SCO
TASK1(K)
CK
TASK2(K)
TASK3(K)
TASK1(K-1)
TASK2(K-1)
TASK3(K-1)
TASK2(K-2)
TASK3(K-2) TASK3(K-3)
Architettura SCO per generare TASK sfasati nel tempo
Sistemi con molti microprogrammi
stato iniziale
OPCODEN
OPCODE1 OPCODE2
microprg.
1 microprg.
2 microprg.
N sequenza
comune
Diagramma di flusso con più microprogrammi
ROM TASK
SEL
sel spostamento base
RESET LOAD
OPCODE
MUX
X ck
Schema di SCO con molti microprogrammi (modello di Mealy)
SS1 SS2 . . . SSm
multiplexer X
ROM
Y'
TASK
X' circuito di selezione SEL
spostamento base
LOAD RESET
OPCODE
ck
Schema di SCO con molti microprogrammi (modello di Moore)
Comunicazione tra due sistemi digitali
ck1 ck2
ck1
ck1
ck2
ck2 Dato pronto
Len1
ack1
RDY1 RDY2
Len2
Dato letto FF1
RTx RRx
FF2
FF3 FF4
UTx URx
ack2
Sincronizzazione di due unità in comunicazione
UTx URx
1: datoRTx, 1FF1; 1: 0FF4;
2: if ack1=0, then vai a 2; 2: if RDY2=0, then vai a 2;
3: 0FF1; 3: RTxRRx, 1FF4;
4: if ack1=1, then vai a 4; 4: if RDY2=1, vai a 4 ;
5: i+1i; 5: i+1i;
6: if iN, vai a 1 6: if iN, vai a 1
Sequenze di microistruzioni eseguite da UTx e URx durante il protocollo di comunicazione
1
2
dato RTx 1 FF1
0 FF1
1
2
0 FF4
RTx RRx 1 FF4
i+1 i
i=N
3 3 i+1 i
ACK1=1 SI
NO
SI ACK1=0 NO
SI
NO
RDY2=1 SI
NO
SI RDY2=0 NO
i=N SI
NO
ck1 ck2
ck1 ck2
Len1 Len2
FF1
RTx RRx
FF2
UTx URx
S R
D D
sem Q
ack1 Q RDY2
Sincronizzazione tra due unità in comunicazione mediante flip-flop di semaforo
1
2
dato RTx
Attesa sul sem
1
2
RTx RRx Reset sem
i+1 i
i=N
3 3 i+1 i
SI ACK1=0 NO
SI
NO
RDY2=1 SI
NO
i=N SI
NO Set sem
Attesa sul sem
Sequenze di microistruzioni eseguite da UTx e URx durante il protocollo di comunicazione
UTx URx
1: datoRTx, set sem; 1: if RDY2=0, vai a 1;
2: if ack1=0 vai a 2; 2: RTxRRx, reset sem;
3: i+1i; 3: i+1i;
4: if iN, vai a 1; 4: if iN, vai a 1;