ZPT
Omawiane do tej pory bloki funkcjonalne są stosowaneprzede wszystkim do projektowania układów (systemów)cyfrowych, których typowym zadaniem są realizacje sprzętowe algorytmów.
1
Ale aby rozsądnie, w określonej kolejności zdarzeń, wykonać zadanie określone algorytmem, bloki funkcjonalne zastosowane w systemie muszą być odpowiednio sterowane.
Y
BAnn
n
Yn-1
ZO VR
PG
cn c0
S
ALU X0
Xj
XN-1
Y
n
A
e
0
Y
n A
e
X
REJESTR
LICZNIK
UKŁADY MIKROPROGRAMOWANE
ZPT
Sterowanie…
…polega na inicjowaniu bloków do sekwencyjnego wykonywania elementarnych czynności takich jak np. zliczanie, wpisywanie do rejestru, sumowanie liczb…
2
Układ sterujący
Czynności takiego sterowania wykonuje układ sekwencyjny (sterujący)
US wytwarza sygnały sterujące pobudzające do pracy odpowiednie bloki funkcjonalne…
X0
Xj
XN-1
Y
nA
e Y 0
Y j
Y N-1
n A
e
X
REJESTR
LICZNIK
Ładuj
Zliczaj
Dodaj
Prześlij
Układ wykonawczy
ZPT
Układsterujący
Dane wyjściowe
Danewejściowe
Sygnałysterujące
Stan częściwykonawczej
Układ wykonawczy(Datapath)
System cyfrowy
01
01 01
01
01
0
1
0
11 01
01 01
0
10
1
0
101
0
1
Mikrooperacje wywoływane przez
sygnały sterujące
3
ZPT
ASM to specjalnie konstruowany układ sekwencyjny umożliwiający opis podstawowych czynności wykonywanych
przez bloki funkcjonalne w odpowiedniej kolejności ich działania
Algorytmiczna maszyna stanów
4
Dostosowany do tych potrzeb sekwencyjny układ sterujący nazywa się algorytmiczną maszyną stanów
Algorithmic State Machine (ASM)
ASMy opisuje się sieciami działań
ZPT
A0/Z0
A1/Z1
A2/Z2
A3/Z3
A4/Z6
A6/Z4
A7/Z5
A5/Z7
x1
x1
x0
x2
0x
1x
1x
2x
LK = 0
0
0
SHL 1, SHL 2, SHL 3,DEC (LK)
MUX := 0
MUX := 1
LOAD 4
LOAD 2
LOAD 3
S0
1
10
1
1
LOAD 1CLEAR 2,3LOAD (LK)
K > 5
K > 5
A0
A1
A2
A3
A4
A5
A6
A7
Sieć działań…
…to inna reprezentacja automatu
5umożliwiająca dokładniejszy opis sygnałów wyjściowych
ZPT 6
Dwa podstawowe elementy: Węzeł wejściowy
Sieć działań…
…reprezentacja graficzna ASM ─ odpowiednik grafu automatuczyli układu sekwencyjnego (FSM)
Ai
Przejścia dodo innych klatek
TF
Klatka operacyjna
Klatka warunkowa (decyzyjna)
..wyjściowe sygnały sterujące czynnościami układu wykonawczego, tzw. mikrorozkazy
Zapisywane też symbolami reprezentującymi czynności (mikrooperacje) bloków UW: LOAD(L)
.. sygnał wejściowy X, którego wartość określa przejście do następnych klatek
X
ZPT
Przykład sieci działań
Klatki:
Z Z Z
operacyjne
warunkowe
x
7
x1
Z1
Z2
x3x2 Z3x1
Z4
0
0 00
1
11
1
ZPT
Mikroinstrukcja
Segmenty sieci działań są graficzną reprezentacją mikroinstrukcji
Ai : Z = Za, if x then A’ = Aj else A’ = Ak Ai : if x then Z = Za, A’ = Aj else Z = Zb, A’ = Ak
Za
Ai
Aj Ak
x01
Za
x
Ai
Aj Ak
01
Zb
Mealy’ego
8
Podstawowe mikroinstrukcje
Każda MI jest wykonywana w oddzielnym stanie
Węzeł początkowy MI utożsamiany jest ze stanem wewnętrznym ASM
Moora
ZPT
Układy mikroprogramowane
Rozbudowane sieci działań realizuje się w postaci tzw. Mikroprogramowanych Układów Sterujących (MUS)
9
A Mikroprogram
0 Opis MI1
1
n Opis MIn
W poszczególnych komórkach (wierszach) PM zapisuje się mikroinstrukcje opisujące działanie układu w kolejnych stanach.
MUS to układ umożliwiający wykonanie zadanej listy mikroinstrukcji
… w których sposób sterowania zapisuje się w pamięci stałej ROM zwanej pamięcią mikroprogramu (PM)
ZPT
Przykład – sieć działań, mikroprogram
A0
A1
A2
A3
A5
A6
Z
x
1
0
Ai
Ai+1
Ai
Z
x
0
1
Ai+1
Aj
Ai+1
Ai
Z
Aj
Ai
Z
[MI1]
[MI4][MI3]
[MI2]
A MI
0 MI1Oczekiwanie na
spełnienie warunku
1 MI2Przejście
bezpośrednie
2 MI3 Skok warunkowy do A6
3 MI3 Skok warunkowy do A2
4 MI1Oczekiwanie na
spełnienie warunku
5 MI4Skok bezwarunkowy
do A0
6 MI4Skok bezwarunkowy
do A4
10
Mikroprogram zapisuje się w pamięci stałej ROM zwanej pamięcią mikroprogramu i realizuje
w Mikroprogramowanym Układzie Sterującym
Rodzaje MI:
A4
Z1
x1
1
0
Z2
Z3
1x2
0
x1
0
Z2
x4
Z3
Z4
Z2
10
ZPT
Przykład – sieć działań, mikroprogram
Z1
x1
1
0
Z2
Z3
1x2
0
x1
0
Z2
x4
Z3
Z4
Z2
10
A0
A1
A2
A3
A4
A5
A6
Z
x
1
0
Ai
Ai+1
Ai
Z
x
0
1
Ai+1
Aj
Ai+1
Ai
Z
Aj
Ai
Z
[MI1]
[MI4][MI3]
MI2]
A MI
0 MI1Oczekiwanie na
spełnienie warunku
1 MI2Przejście
bezpośrednie
2 MI3 Skok warunkowy do A6
3 MI3 Skok warunkowy do A2
4 MI1Oczekiwanie na
spełnienie warunku
5 MI4Skok bezwarunkowy
do A0
6 MI4Skok bezwarunkowy
do A4
11
Jak zaprojektować MUS, który mógłby wykonać każdą MI z zadanej listy ?
ZPT
Schemat blokowy MUS
TaktRA
UA
Do UW
ROM(PM)
MI
A
DMIDekoder µinstrukcji
Sygnały (warunki)zewnętrznei wewnętrzne
12
Głównym zadaniem MUS jest realizacja układu sterującego wykonującego zadaną listę mikroinstrukcji
W ROM zapisane są wszystkie µInstrukcje
ZPT
Format mikroinstrukcji
Dzieli się słowo pamięci na
segmenty (pola): MI = <S, B,C, Z>
13
Jak wpisać mikroinstrukcję:
S B C Z
Adres mikroinstrukcji
PM
Mikroinstrukcja
S B C Z
Ai : Z = Za, if xC then A’ = Aj else A’ = Ak
do komórki pamięci o adresie Ai W postaci binarnej!
S - sterujące (kod MI)
B - adresowe
C - kontrolne
Z - operacyjne
(mikrorozkaz)
Każdy segment odpowiada za
jedną konkretną czynność:
ZPT
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.
14
ZPT
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 mikroinstrukcji15
(skok bezwarunkowy)
ZPT
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, BB
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
16
ZPT
Przykład c.d. – synteza dekodera 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 = s0 10 sQ
Z
Ai
x
0
1
Ai
Ai+1
MI1
Ai
Z
x
0
1
Ai+1
Ai+2
MI2
Aj
Ai
Z
MI3
17
DMI
xc
s1
s0
L
Q1
Q0
Co robi DMI?
Steruje licznikiem i multiplekserem adresowym
ZPT
MUS w porównaniu do układu sekwencyjnego
Podział SD na segmenty odpowiadające mikroinstrukcjom
A0
A1
A2
x1
Z1
Z2
x3x2 Z3x1
Z4
A3
A4
A5
Moore’a
Z
Ai
Aj Ak
x01
Ai
Aj Ak
x 01
A3
Z
Ai
Aj
Stany wewnętrzne
18
ZPT
Sieć działań reprezentuje automat
Podział sieci na stany (dla automatu)
A0
A1
A2
A3
x1
Z1
Z2
x3x2 Z3x1
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
19
ZPT
Mikroinstrukcje a stany automatu
Podział sieci na stany (dla automatu)
A0
A1
A2
A3
x1
Z1
Z2
x3x2 Z3 x1
Z4
0
0 0 01
11
1
20
4 stany
A0
A1
A2
x1
Z1
Z2
x3x2 Z3x1
Z4
A3
A4
A5
6 stanów
Podział sieci na segmenty odpowiadające mikroinstrukcjom
W automacie w jednym stanie może być badanych wiele warunków,W mikroinstrukcjach – tylko jeden warunek !!!
ZPT
Obsługa mikropodprogramu
21
Przykład 10.3, str. 246 Synteza logiczna
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.
ZPT
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
Ak: if xc then A' = RS else A' = Ak+1
adres Ai+1 powrotu z podprogramu zapamiętany w rejestrze śladu RS
xc
1
0 Rejestr Śladu q
22
ZPT
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' = Ak+1
23
ZPT
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
24
ZPT
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
25
ZPT
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
26
ZPT
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
27
ZPT
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
28