I
T
P
W
ZPT
Konwerter BIN2BCD
1
LK
„8”
DEC
LK = 0
LOAD1
R3
R2
R1
K
S3
S2
S1
A
B
„5”
K 5
MUX
1
0
MUX
A
R4
LOAD2
Y = LD
B
LB
„3”
US
Układ wykonawczy
Układ sterujący
UKŁADY MIKROPROGRAMOWANE
I
T
P
W
ZPT
2
Układ
sterujący
(kontroler
)
Dane wyjściowe
Dane
wejściowe
Sygnały
sterujące
Stan części
operacyjnej
Układ
wykonawczego
System cyfrowy
I
T
P
W
ZPT
3
Mikroprogramowany układ
sterujący
Mikroprogramowany układ
sterujący
Skoro układ sekwencyjny można opisać
siecią działań, to powstaje pytanie, czy nie
można takiego układu realizować
bezpośrednio – bez przekształcania SD na
opis w postaci grafu automatu.
I
T
P
W
ZPT
4
Mikroprogramowany układ
sterujący
1. Sekwencyjny układ synchroniczny (Moore’a
lub Mealy’ego)
2. Funkcje przejść i wyjść są zapisane w
pamięci stałej typu ROM zwanej pamięcią
mikroprogramu
3. W każdym takcie pracy układu jest badany
(w zasadzie) jeden warunek (sygnał
zewnętrzny) spośród zbioru X wszystkich
wejść
4. Opis działania za pomocą sieci działań
I
T
P
W
ZPT
5
Sieć działań
Graf zbudowany z wierzchołków (klatek)
Klatki:
Z
Z
Z
x
i
,...,x
k
operacyjne
warunkowe
selekcyjne
x
x
1
Z
1
Z
2
x
3
x
2
Z
3
x
1
Z
4
i krawędzi
I
T
P
W
ZPT
6
Mikroinstrukcja -
podstawowe segmenty SD
MIKROINSTRUKCJA MI (A
i
)
Moore’a
Mealy’ego
A
i
: Z = Z
a
, if x then A’ = A
j
else A’ = A
k
A
i
:, if x then Z = Z
a
, A’ = A
j
else Z = Z
b
, A’ = A
k
wygenerowanie mikrorozkazu
Z
badanie warunku x X
określenie adresu A’ następnej wykonywanej mikroinstrukcji
Z
A
i
A
j
A
k
x
0
1
Z
a
x
A
i
A
j
A
k
0
1
Z
b
I
T
P
W
ZPT
7
Podział sieci działań…
na segmenty
odpowiadające
mikroinstrukcjom
A
0
A
1
A
2
x
1
Z
1
Z
2
x
3
x
2
Z
3
x
1
Z
4
A
3
A
4
A
5
Moore’a
Z
A
i
A
j
A
k
x
0
1
A
i
A
j
A
k
x
0
1
A
3
Z
A
i
A
j
Stany wewnętrzne
I
T
P
W
ZPT
8
Sieć działań reprezentuje
automat
Podział sieci na
stany
(dla automatu)
A
0
A
1
A
2
A
3
x
1
Z
1
Z
2
x
3
x
2
Z
3
x
1
Z
4
0
0
0
0
1
1
1
1
x
1
x
2
x
3
A
00
0
00
1
01
1
01
0
11
0
11
1
10
1
10
0
A
0
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
1
A
3
A
2
A
2
A
1
A
2
A
1
A
1
A
1
A
1
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
A
3
I
T
P
W
ZPT
9
Mikroprogramowany układ
sterujący
Takt
RA
UA
UO
PM
MI
A
DMI
Dekoder mikroinstrukcji
Sygnały (warunki)
zewnętrzne
i wewnętrzne
Schemat blokowy MUS
I
T
P
W
ZPT
10
Format mikroinstrukcji
Format
mikroinstrukcji:
MI = <S, B,C, Z>
Pola:
S - sterujące (kod MI)
B - adresowe
C - kontrolne
Z - operacyjne
(mikrorozkaz)
PM
S B C Z
Adres mikroinstrukcji
Mikroinstrukcja
I
T
P
W
ZPT
11
Przykład syntezy MUS
Mając do dyspozycji licznik o mikrooperacjach LOAD, COUNT
ze sterowaniem odpowiednio: 1 (dla LOAD), 0 (dla COUNT),
pamięć ROM oraz ewentualnie inne bloki funkcjonalne i
bramki, zaprojektować mikroprogramowany układ sterujący
o następującej liście mikroinstrukcji
I
1
: Z, if x
c
then A’ = A
i
else A’ = A
i+1
,
I
2
: Z, if x
c
then A’ = A
i+2
else A’ = A
i+1
,
I
3
: Z, A’ = A
j
.
W rozwiązaniu należy podać:
– fragmenty sieci działań (schematy) odpowiadające
wszystkim
mikroinstrukcjom,
– schemat blokowy układu sterującego,
– tablicę prawdy dekodera mikroinstrukcji oraz minimalne
wyrażenia boolowskie opisujące jego wyjścia.
I
T
P
W
ZPT
12
Przykład c.d. - mikroinstrukcje
I
1
: Z, if x
c
then A’ = A
i
else A’ = A
i+1
I
3
: Z, A’ = A
j
I
2
: Z, if x
c
then A’ = A
i+2
else A’ = A
i+1
Z
A
i
x
0
1
A
i
A
i+1
A
i
Z
x
0
1
A
i+1
A
i+2
A
j
A
i
Z
C, Z
C, Z
B, Z
(oczekiwanie na spełnienie warunku)
(skok warunkowy o 2))
Formaty mikroinstrukcji
I
T
P
W
ZPT
13
PM
Przykład syntezy US - schemat
blokowy
00
C
Z
01
C
Z
10
B
Z
Z
+
2
B
X
C
s
1
s
0
00 01 11
MA
Q
1
Q
0
DMI
x
c
s
1
s
0
L
Q
1
Q
0
LICZNIK
L
A
Adresy:
A, A+1, A+2, B
B
C, Z
C, Z
B, Z
Formaty
mikroinstrukcji
Pola C i B są polami
zgodnymi ponieważ
nie występują
jednocześnie w
żadnej
mikroinstrukcji.
Można je umieścić
w jednym
segmencie PM
I
T
P
W
ZPT
14
Przykład c.d. – dekoder
mikroinstrukcji
MI s
1
s
0
x
c
L
Q
1
Q
0
1
0
0
0
0
–
–
0
0
1
1
0
1
2
0
1
0
0
–
–
0
1
1
1
1
1
3
1
0
–
1
0
0
00 01 11
MA
Q
1
Q
0
+2
B
A
A+2
LICZNIK
L
A
Count 0
Load 1
L = s
1
+ x
c
Q
1
= s
0
x
c
1
0
s
Q
DMI
x
c
s
1
s
0
L
Q
1
Q
0
Z
A
i
x
0
1
A
i
A
i+1
MI
1
A
i
Z
x
0
1
A
i+1
A
i+2
MI
2
A
j
A
i
Z
MI
3
I
T
P
W
ZPT
15
Przykład (str. 139 SUL)
Zaprojektować układ sterujący o następującej liście
mikroinstrukcji:
a) A
i
: Z, A' = A
i+1
b) Ai : Z, A' = A
j
.
c) A
i
: Z, if x
c
then A' = A
i+1
else A' = A
i
,
Ponadto układ ma umożliwiać obsługę
mikropodprogramu.
I
T
P
W
ZPT
16
Mikroinstrukcje do obsługi
(mikro)podprogramu
x
c
A
i+1
Warunkowe wejście
do podprogramu
Warunkowe wyjście
z podprogramu
A
i
A
j
A
k
A
i+1
A
k+1
1
0
A :=RS
RS := A
i+1
A
i
: if x
c
then A' = A
j
, RS:= A
i+1
else A'
= A
i+1
A
i
: if x
c
then A' = RS else A' = A
i+1
adres
A
i+1
powrotu z
podprogramu
zapamiętany w rejestrze śladu
RS
x
c
1
0
Rejestr Śladu
q
I
T
P
W
ZPT
17
Przykład c.d.
Zaprojektować układ sterujący o następującej liście
mikroinstrukcji:
a) A
i
: Z, A' = A
i+1
b) A
i
: Z, A' = A
j
.
c) A
i
: Z, if x
c
then A' = A
i+1
else A' = A
i
,
Ponadto układ ma umożliwiać obsługę
mikropodprogramu.
d) A
i
: if x
c
then A' = A
j
, RS:= A
i+1
else A' = A
i+1
e) A
i
: if x
c
then A' = RS else A' = A
i+1
I
T
P
W
ZPT
18
Przykład cd.
A
i
Z
A
i + 1
A
i
Z
A
j
A
i + 1
Z
A i
x
c
0
1
a )
b )
c )
A
j
x
c
x
c
A i
A i
A
i + 1
A
i + 1
R S := A
i + 1
A ' : = R S
A ' = R S
0
0
1
1
d )
e )
Adresy:
A
i+1
A
j
A
i
RS
I
T
P
W
ZPT
19
Przykład cd. realizacja z rejestrem
adresowym
Adresy:
A
i+1
A
j
A
i
RS
+ 1
A
I
0
I
1
I
2
I
3
Q
q
R S
R A
M U X A
P M
Z
C
B
S
X
x
c
S
Q
q
v
v
x
c
M U X W
D M I
I
T
P
W
ZPT
20
Przykład cd. realizacja z rejestrem
adresowym
Adresy:
A
i+1
A
j
A
i
RS
+1
A
I
0
I
1
I
2
I
3
Q
q
RS
RA
MUXA
PM
Z
C
B
S
X
x
c
S
Q q v
v
x
c
MUXW
DMI
I
T
P
W
ZPT
21
Przykład cd.
MI
s
2
s
1
s
0
x
c
Q
q
v
a
0 0 0
─
I
2
HOLD
Z
b
0 0 1
─
I
0
HOLD
Z
c
0 1 0
0
0 1 0
1
I
1
I
2
HOLD
HOLD
Z
Z
d
0 1 1
0
0 1 1 1
I
2
I
0
HOLD
LOAD
NO
P
NO
P
e
1 0 0
0
1 0 0
1
I
2
I
3
HOLD
–
NO
P
NO
P
+ 1
A
I
0
I
1
I
2
I
3
Q
q
R S
R A
M U X A
P M
Z
C
B
S
X
x
c
S
Q
q
v
v
x
c
M U X W
D M I
a) Przejście bezwarunkowe, Z
b) Skok bezwarunkowy, Z
c) Przejście warunkowe, Z
d) Warunkowe wejście do podprogramu
e) Warunkowe wyjście z podprogramu
I
T
P
W
ZPT
22
Przykład cd. z licznikiem
adresowym
Adresy:
A
i+1
count
A
i
hold
A
j
load
RS load
+ 1
I
0
I
1
Q
L
q
R S
L A
M U X A
P M
Z
C
B
S
X
x
c
S
Q
q
v
v
x
c
M U X W
D M I