UKŁADY MIKROPROGRAMOWANE
description
Transcript of UKŁADY MIKROPROGRAMOWANE
ITPW
ZPT 1
UKŁADY MIKROPROGRAMOWANE
ITPW
ZPT
Konwerter BIN2BCD
2
LK
„8”
DECLK = 0
LOAD1
R3 R2 R1
K
S3 S2 S1A B
„5”
K 5
MUX1 0MUX
A
R4LOAD2
Y = LD
B
LB
„3”
US
Układ wykonawczyUkład sterujący
ITPW
ZPT 3
Układsterujący(kontroler)
Dane wyjściowe
Danewejściowe
Sygnałysterujące
Stan częścioperacyjnej
Układ operacyjny(Datapath)
System cyfrowy
Mikrooperacje wywoływane przez
sygnały sterujące
ITPW
ZPT 4
Mikroprogramowany układ sterującyMikroprogramowany 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.
ITPW
ZPT 5
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ń (flow diagram)
ITPW
ZPT 6
Sieć działań
Graf zbudowany z wierzchołków (klatek)
Klatki:
Z Z Z
xi,...,xk
operacyjne
warunkowe selekcyjne
x
x1
Z1
Z2
x3x2 Z3 x1
Z4
i krawędzi
ITPW
ZPT 7
Mikroinstrukcja - podstawowe segmenty SD
MIKROINSTRUKCJA MI (Ai)
Moore’aMealy’ego
Ai : Z = Za, if x then A’ = Aj else A’ = Ak Ai :, if x then Z = Za, A’ = Aj else Z = Zb, A’ = Ak
wygenerowanie mikrorozkazu Z
badanie warunku x X
określenie adresu A’ następnej wykonywanej mikroinstrukcji
Z
Ai
Aj Ak
x01 Za
x
Ai
Aj Ak
01
Zb
ITPW
ZPT 8
Podział sieci działań…na segmenty odpowiadające mikroinstrukcjom
A0
A1
A2
x1
Z1
Z2
x3x2 Z3 x1
Z4
A3
A4
A5
Moore’a
Z
Ai
Aj Ak
x01
Ai
Aj Ak
x01
A3
Z
Ai
Aj
Stany wewnętrzne
ITPW
ZPT 9
Sieć działań reprezentuje automat
Podział sieci na stany (dla automatu)
A0
A1
A2
A3
x1
Z1
Z2
x3x2 Z3 x1
Z4
0
0 00
1
11
1
x1x2x3
A000
001 011 010 110 111 101 100
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
ITPW
ZPT 10
Mikroprogramowany układ sterujący
TaktRA
UA
UO
PM
MI
A
DMI
Dekoder mikroinstrukcji
Sygnały (warunki)zewnętrznei wewnętrzne
Schemat blokowy MUS
ITPW
ZPT 11
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
ITPW
ZPT 12
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
I1 : Z, if xc then A’ = Ai else A’ = Ai+1,
I2 : Z, if xc then A’ = Ai+2 else A’ = Ai+1,
I3 : Z, A’ = Aj.
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.
ITPW
ZPT 13
Przykład c.d. - mikroinstrukcje
I1 : Z, if xc then A’ = Ai else A’ = Ai+1
I3 : Z, A’ = Aj
I2 : Z, if xc then A’ = Ai+2 else A’ = Ai+1
Z
Ai
x
0
1
Ai
Ai+1
Ai
Z
x
0
1
Ai+1
Ai+2
Aj
Ai
Z
C, Z C, Z B, Z
(oczekiwanie na spełnienie warunku)
(skok warunkowy o 2))
Formaty mikroinstrukcji
ITPW
ZPT 14
PM
Przykład syntezy US - schemat blokowy
00 C Z
01 C Z
10 B Z
Z
+2
B
X
C
s1s0
00 01 11 MA
Q1
Q0
DMI
xc
s1
s0
L
Q1
Q0
LICZNIKL
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
ITPW
ZPT 15
Przykład c.d. – dekoder mikroinstrukcji
MI s1 s0 xc L Q1 Q0
10 0 0 0 – –
0 0 1 1 0 1
20 1 0 0 – –
0 1 1 1 1 1
3 1 0 – 1 0 0
00 01 11 MA
Q1
Q0
+2
B AA+2
LICZNIKL
A
Count 0
Load 1
L = s1 + xc Q1 = s0xc 10 sQ
DMI
xc
s1
s0
L
Q1
Q0
Z
Ai
x
0
1
Ai
Ai+1
MI1
Ai
Z
x
0
1
Ai+1
Ai+2
MI2
Aj
Ai
Z
MI3
ITPW
ZPT 16
Przykład (str. 139 SUL)
Zaprojektować układ sterujący o następującej liście
mikroinstrukcji:
a) Ai : Z, A' = Ai+1
b) Ai : Z, A' = Aj.
c) Ai : Z, if xc then A' = Ai+1 else A' = Ai,
Ponadto układ ma umożliwiać obsługę mikropodprogramu.
ITPW
ZPT 17
Mikroinstrukcje do obsługi (mikro)podprogramu
xc
Ai+1
Warunkowe wejście do podprogramu
Warunkowe wyjście z podprogramu
Ai
Aj
Ak
Ai+1
Ak+1
1
0
A :=RS
RS := Ai+1
Ai : if xc then A' = Aj, RS:= Ai+1 else A' = Ai+1
Ai : if xc then A' = RS else A' = Ai+1
adres Ai+1 powrotu z podprogramu zapamiętany w rejestrze śladu RS
xc
1
0 Rejestr Śladu q
ITPW
ZPT 18
Przykład c.d.
Zaprojektować układ sterujący o następującej liście
mikroinstrukcji:
a) Ai : Z, A' = Ai+1
b) Ai : Z, A' = Aj.
c) Ai : Z, if xc then A' = Ai+1 else A' = Ai,
Ponadto układ ma umożliwiać obsługę mikropodprogramu.
d) Ai : if xc then A' = Aj, RS:= Ai+1 else A' = Ai+1
e) Ai : if xc then A' = RS else A' = Ai+1
ITPW
ZPT 19
Przykład cd.
A i
Z
A i +1
A i
Z
A j
A i +1
Z
A i
x c0
1
a) b) c)
A j
x c x c
A i A i
A i +1 A i +1
RS := A i +1 A' := RSA' = RS
0 0
1 1
d) e)
Adresy:Ai+1
Aj
Ai
RS
ITPW
ZPT 20
Przykład cd. realizacja z rejestrem adresowym
Adresy:Ai+1
Aj
Ai
RS
+1
A
I 0 I 1 I 2 I 3Q
qRS
RA
MUXA
PM
ZC
BS
X
x c
S
Q q vv
x c
M UXWDM I
ITPW
ZPT 21
Przykład cd. realizacja z rejestrem adresowym
Adresy:Ai+1
Aj
Ai
RS
+1
A
I0 I1 I2 I3Q
qRS
RA
MUXA
PM
ZC
BS
X
xc
S
Q q vv
xc
MUXWDMI
ITPW
ZPT 22
Przykład cd.
MI s2 s1 s0 xc Q q v
a 0 0 0 ─ I2 HOLD Z
b 0 0 1 ─ I0 HOLD Z
c0 1 0 0
0 1 0 1
I1
I2
HOLDHOLD
ZZ
d0 1 1 0
0 1 1 1
I2
I0
HOLDLOAD
NOPNOP
e1 0 0 0
1 0 0 1
I2
I3
HOLD–
NOPNOP
+1
A
I 0 I 1 I 2 I 3Q
qRS
RA
MUXA
PM
ZC
BS
X
x c
S
Q q vv
x c
M UXWDM I
a) Przejście bezwarunkowe, Zb) Skok bezwarunkowy, Z
c) Przejście warunkowe, Zd) Warunkowe wejście do podprogramue) Warunkowe wyjście z podprogramu
ITPW
ZPT 23
Przykład cd. z licznikiem adresowym
Adresy: Ai+1 count
Ai hold
Aj load
RS load
+1
I 0 I 1Q
L
qRS
LA
M UXA
PM
ZC
BS
X
x c
S
Q q vv
x c
M UXWDM I