UKŁADY MIKROPROGRAMOWALNE

Transkrypt

UKŁADY MIKROPROGRAMOWALNE
UKŁADY MIKROPROGRAMOWALNE
Układy sterujące mogą pracować samodzielnie, jednakże w przypadku
bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ
sterujący jest tylko jednym z układów – drugim jest układ operacyjny (blok
operacyjny), czyli wykonawczy. Układ operacyjny ma za zadanie realizację
operacji na liczbach (wykonuje obliczenia), czyli przetwarza dane, natomiast
układ sterujący nadzoruje pracę układu operacyjnego i wymusza właściwą
kolejność wykonywania operacji.
Koncepcja podziału układów cyfrowych na układ sterujący i układ (blok)
operacyjny nosi nazwę dekompozycji Głuszkowa.
Xz
Iwe
Xw
Z
Układ
sterujący
Układ
operacyjny
Y
S
Iwy
Rys. 1. Koncepcja Głuszkowa dekompozycji układów cyfrowych
gdzie :
- Iwe
- informacja wejściowa (przetwarzana),
- Iwy
- informacja wyjściowa (przetworzona),
- Y
- sygnały sterujące (rozkazy, sterowania),
- S
- stan układu sterującego (sygnalizacja),
- Xz
- warunki zewnętrzne,
- Xw
- warunki wewnętrzne,
- Z
- zewnętrzny sygnał zegarowy .
-1-
1. Podstawowe informacje i definicje
Mikroprogramowalny układ sterujący to układ o stałej strukturze sprzętowej,
którego działanie jest opisane tzw. mikroprogramem. Program ten
zapisywany jest w pamięci układu (ROM, PROM lub EPROM) zwanej
pamięcią sterowania.
Def. 1.
Mikrooperacją nazywa się elementarną czynność możliwą do
wykonania w danym układzie (urządzeniu, systemie) cyfrowym w jednym
takcie jego pracy.
Def. 2.
Mikrorozkazem (słowem sterującym) nazywa się słowo dwójkowe
określające sygnały wyjściowe w układzie sterującym, czyli rodzaj
sterowania w przypadku bardziej złożonych urządzeń cyfrowych, tzw.
zespołów funkcjonalnych. Słowo to jest przechowywane w pamięci i
powoduje w przypadku zespołów funkcjonalnych, wykonanie jednej lub kilku
mikrooperacji.
Def. 3.
Mikroinstrukcją nazywa się sformalizowany zapis opisujący czynności
wykonywane przez układ sterujący w jednym elementarnym takcie jego
pracy.
Def. 4.
Mikroprogramem
(mikropodprogramem)
mikroinstrukcji (słów sterujących).
-2-
nazywa
się
sekwencję
Def. 5.
Mikroprogramowaniem poziomym nazywać będziemy taki sposób
pracy układu (jednostki) sterującego, w którym generowanie sygnałów
sterujących, wykonaniem mikrooperacji jest takie, że każdy bit mikrorozkazu
reprezentuje
niezależny
sygnał
sterujący.
Przy
takim
sposobie
mikroprogramowania każdy rozkaz ma od razu postać (format) mikrorozkazu.
Mikrooperacje są kodowane w kodzie „1 z n”.
Def. 6.
Mikroprogramowaniem pionowym nazywać będziemy taki sposób
pracy układu (jednostki) sterującego, w którym wykonanie rozkazu polega na
zainicjowaniu odpowiedniej sekwencji mikrorozkazów reprezentujących
mikroprogram a kody mikrorozkazów tworzą sektory przyporządkowane
wykonywanym funkcjom sterującym (mikrooperacjom). Mikrooperacje są
kodowane dowolnym kodem.
-3-
2. Zasada działania sterowania mikroprogramowalnego
Sterowanie mikroprogramowalne zostało po raz pierwszy opisane przez
M.V. Wilkesa w 1951 roku.
Rejestr
mikroprogramu
Kod operacji z rejestru
rozkazów
Matryca stanów
Matryca
mikrooperacji
Deszyfrator
Sygnały
warunkow
e
Rejestr stanu
Sygnały sterujące
τ
Rys. 2. Schematyczne przedstawienie idei sterowania mikroprogramowalnego Wilkesa
3. Adresowanie pamięci mikroprogramów
Rejestr
Q’
Q
Układ adresowania
x
ROM
Y
Rys. 3 Schemat blokowy mikroprogramowanego układu sterującego
-4-
4. Mikroinstrukcje
Mikroinstrukcja opisuje czynności wykonywane przez układ sterujący w
jednym elementarnym takcie jego pracy:
1. generowanie sterowania Y,
2. badanie określonego warunku x,
3. określenie adresu następnego mikrorozkazu w pamięci mikroprogramu.
Pola mikroinstrukcji:
Ps - pole sterowania (operacyjne), które określa sygnały wyjściowe Y dla
układu sterującego,
Pw - pole numeru warunku (kontrolne) - określa numer warunku x badanego
w danym stanie, od którego spełnienia, bądź nie, uzależniony jest następny
adres mikrorozkazu,
Pa - pole adresowe –określa adres następnego mikrorozkazu w sposób
bezpośredni lub pośredni w zależności od przyjętego sposobu adresowania,
Pk - pole kodu mikrorozkazu - określa typ mikrorozkazu, a tym samym
precyzuje jednoznacznie znaczenie poszczególnych pól mikrorozkazu.
-5-
5. Podstawowe struktury układów mikroprogramowalnych
Układ mikroprogramowalny typu A
Układ o strukturze A przedstawiony na rysunku 10 składa się z rejestru stanu z wpisem i
odczytem równoległym oraz z pamięci ROM. Pamięć ROM jest adresowana wejściami X
układu i zapisanym w rejestrze stanem bieżącym Q. Stąd, przy ustalonym rozmiarze Q,
przestrzeń adresowa pamięci ROM rośnie wykładniczo z rozmiarem X. Nie ma tu żadnego
ograniczenia na liczbę zmiennych wejściowych (warunków), które mogą zmieniać swą
wartość w danym stanie, co może być zaletą struktury A w przypadkach, gdy zachowanie
stanowe projektowanego układu jest bardzo urozmaicone. Pamięć ROM służy do
wyznaczenia funkcji wyjść i funkcji przejść realizowanego w strukturze automatu.
Wykorzystywany jest jeden format mikrorozkazu <Ps , Pa>, umożliwiający podanie na
wyjście Y sterowania i przygotowanie na wejściu rejestru następnego stanu Q’. Można
równie łatwo implementować automaty Moore’a i Mealy’ego. Podstawową wadą tej
struktury jest duży rozmiar ROM, a co za tym idzie także koszt całego układu. Ponadto,
najczęściej funkcje przejść i wyjść realizowanego automatu zdefiniowane dla iloczynów
kartezjańskich X×Q nie są w pełni określone, co pociąga za sobą nieuniknioną
nadmiarowość przy programowaniu pamięci.
CLK
Rejestr
X
Q
format mikrorozkazu:
<Ps , Pa>
ROM
Y
Q’
-6-
Układ mikroprogramowalny typu B
Układ o strukturze B ma za zadanie zmniejszyć przestrzeń adresową pamięci ROM układu
A w przypadkach, gdy implementowanym układzie istnieje ograniczenie na liczbę
zmiennych wejściowych, które mogą zmieniać swą wartość w danym stanie. W tym celu
wprowadzono na schemacie blokowym selektor umożliwiający w danym stanie Q wybór
podzbioru zmiennych wejściowych Xw uwzględnianego w funkcjach przejść i wyjść
(rys.11). O rozmiarze selektora decyduje stan o najliczniejszym podzbiorze Xw. W
szczególnym przypadku, gdy Xw w każdym stanie tworzy tylko jedna zmienna wejściowa
budowa selektora upraszcza się do pojedynczego multipleksera wybierającego warunek
sprawdzany w danym stanie. W przeciwnym wypadku można zastosować jako selektor
blok multiplekserów adresowanych stanami Q. Układ o strukturze B posiada ten sam
format mikrorozkazu, co układ A i nadaje się do implementacji automatów Moore’a i
Mealy’ego. Jeżeli automat charakteryzuje się dużą liczbą stanów, to wadą struktury B jest
duży rozmiar selektora, kompensowany jednak przez zmniejszenie rozmiaru potrzebnej
pamięci ROM, co daje również oszczędność przy jej programowaniu.
CLK
Rejestr
Q
format mikrorozkazu
<Ps, Pa>
ROM
Xw
X
S
Q’
Y
-7-
Układ mikroprogramowalny typu C
W przypadku, gdy liczba wejść jest stosunkowo mała w porównaniu z liczbą stanów
automatu można dalej optymalizować strukturę B poprzez umożliwienie wyboru w
multiplekserze numeru wejścia Xw (warunku) sprawdzanego w bieżącym stanie Q.
Wymaga to rozszerzenia formatu mikrorozkazu dodatkowo o pole warunku Pw.
Równocześnie zachodzi konieczność odpowiedniego powiększenia rejestru stanu. W
każdym mikrorozkazie oprócz bieżącego wyjścia układu (sterowania) musi zostać
wpisany następny stan Q’ automatu oraz związany z nim numer warunku Xw, który w nim
będzie sprawdzany. Układ C nadaje się do implementacji automatów Moore’a i
Mealy’ego o ograniczonej liczbie wejść. Gdyby w jakimś stanie automatu zaszła potrzeba
sprawdzenia stanu większej ilości zmiennych wejściowych Xw, to trzeba rozszerzyć format
mikrorozkazu o dodatkowe pola warunków i zbudować odpowiedni selektor zbudowany z
wielu multiplekserów. Rośnie wtedy koszt układu o strukturze C.
CLK
Rejestr
format mikrorozkazu
<Ps, Pw, Pa>
ROM
Xw
X
S
Y
Pw
Pa
-8-
Układ mikroprogramowalny typu D
formaty mikrorozkazów:
Pk =1 <1,Pw, P 1a, P 0a >
Pk =0 <0, Ps, P 0a >
zegar C
Rejestr
x
ROM
Pw
Pk
S
P1a
P0a
Multiplekser
grupowy
xw
Gdzie:
Ps
....
Y
-9-
Układ mikroprogramowalny typu E
LE
CEP
zegar C
Licznik
R
zerowanie
x
ROM
Pk
Pw
Pa
S
xw
formaty mikrorozkazów:
Pk =1 <1, Pw, Pa>
Pk =0 <0, Ps, Pa>
Ps
Y
- 10 -
Układ mikroprogramowalny typu F
LE
CEP
format mikrorozkazu:
<Ps, Pw, Pa>
Licznik
zegar C
R
zerowanie
ROM
Ps
Pw
Pa
xw
S
Y
„1”
- 11 -
x
Układ mikroprogramowalny typu G
„1”
zegar
Rejestr
Σ
format mikrorozkazu:
<Ps, Pw, Pa>
ROM
Ps
Y
Pw
Pa
xw
S
„1”
- 12 -
x
Układ mikroprogramowalny typu H
zegar
Rejestr
format mikrorozkazu:
<Ps, Pw, P0a, P1a >
ROM
Ps Pw
P 0 a P a1
x
Y
xw
- 13 -
Układ mikroprogramowalny typu I
CEP
zegar C
LE
Licznik
wstępnie „0”
R
zerowanie
D
ROM
Pk
zegar
Q
C
Ps
formaty mikrorozkazów:
Pk =0 <0, Ps, Pa>
Pa =1 <1, Ps, Pw>
wstępnie „1”
Pa
Pw
S
Y
x
- 14 -
„1”
Układ mikroprogramowalny typu J
zegar C
Rejestr
ROM 1
format mikrorozkazu ROM1:
<Ps, Pa>
format mikrorozkazu ROM2:
<Pw>
Ps
Pa
ROM 2
Y
stała
xw
S
- 15 -
Układ mikroprogramowalny typu K
„1” CEP
zegar C
LE
wstępnie „0”
Licznik
R
zerowanie
zegar
ROM
P k0
D
Q
C
Q
P k1
wstępnie „1”
Pa
formaty mikrorozkazów:
P k0 P k1 =<0 0> - <00, Ps>
P k0 P k1 =<1 0> - <10, Pw>
P k0 P k1 =<1 1> - <11, Pa>
xw
Ps
Pw
S
x
Y
- 16 -

Podobne dokumenty