UKŁAD 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. X z I we Z Układ sterujący X w Układ operacyjny I wy Rys. 1. Koncepcja Głuszkowa dekompozycji układów cyfrowych gdzie : - I we - informacja wejściowa (przetwarzana), - I wy - informacja wyjściowa (przetworzona), - - sygnały sterujące (rozkazy, sterowania), - - stan układu sterującego (sygnalizacja), - X z - warunki zewnętrzne, - X w - 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 (, P lub EP) 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. ł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) nazywa się sekwencję mikroinstrukcji (słów sterujących). - 2 -
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 terowanie mikroprogramowalne zostało po raz pierwszy opisane przez M.V. Wilkesa w 1951 roku. mikroprogramu Kod operacji z rejestru Deszyfrator Matryca mikrooperacji Matryca stanów ygnały warunkow stanu ygnały sterujące τ Rys. 2. chematyczne przedstawienie idei sterowania mikroprogramowalnego Wilkesa 3. Adresowanie pamięci mikroprogramów Q Q Układ adresowania x Rys. 3 chemat 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, 2. badanie określonego warunku x, 3. określenie adresu następnego mikrorozkazu w pamięci mikroprogramu. Pola mikroinstrukcji: P s - pole sterowania (operacyjne), które określa sygnały wyjściowe dla układu sterującego, P w - 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, P a - 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, P k - 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. Pamięć jest adresowana wejściami X układu i zapisanym w rejestrze stanem bieżącym Q. tąd, przy ustalonym rozmiarze Q, przestrzeń adresowa pamięci 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ęć służy do wyznaczenia funkcji wyjść i funkcji przejść realizowanego w strukturze automatu. Wykorzystywany jest jeden format mikrorozkazu <P s, P a >, umożliwiający podanie na wyjście 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, 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 X Q format mikrorozkazu: <P s, P a > Q - 6 -
Układ mikroprogramowalny typu B Układ o strukturze B ma za zadanie zmniejszyć przestrzeń adresową pamięci 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 X w uwzględnianego w funkcjach przejść i wyjść (rys.11). O rozmiarze selektora decyduje stan o najliczniejszym podzbiorze X w. W szczególnym przypadku, gdy X w 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, co daje również oszczędność przy jej programowaniu. CLK Q format mikrorozkazu <P s, P a > X X w Q - 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 X w (warunku) sprawdzanego w bieżącym stanie Q. Wymaga to rozszerzenia formatu mikrorozkazu dodatkowo o pole warunku P w. 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 X w, 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 X w, 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 format mikrorozkazu <P s, P w, P a > X X w P w P a - 8 -
Układ mikroprogramowalny typu D formaty mikrorozkazów: P k =1 <1,P w, P 1 a, P 0 a > P k =0 <0, P s, P 0 a > zegar C x P w P k P 1 a P 0 a x w Multiplekser grupowy Gdzie: P s... - 9 -
Układ mikroprogramowalny typu E CEP zegar C zerowanie R Licznik LE x P k P w P a x w formaty mikrorozkazów: P k =1 <1, P w, P a > P k =0 <0, P s, P a > P s - 10 -
Układ mikroprogramowalny typu F CEP zegar C zerowanie LE Licznik R format mikrorozkazu: <P s, P w, P a > P s P w P a x w 1 x - 11 -
Układ mikroprogramowalny typu G zegar 1 Σ format mikrorozkazu: <P s, P w, P a > P s P w P a x w 1 x - 12 -
Układ mikroprogramowalny typu H zegar format mikrorozkazu: <P s, P w, P 0 a, P 1 a > P s P w P 0 a P a 1 x x w - 13 -
Układ mikroprogramowalny typu I CEP zegar C zerowanie LE Licznik R wstępnie 0 D Q zegar C formaty mikrorozkazów: P k =0 <0, P s, P a > P a =1 <1, P s, P w > P k P s P a wstępnie 1 P w x 1-14 -
Układ mikroprogramowalny typu J zegar C 1 format mikrorozkazu 1 : <P s, P a > P s P a format mikrorozkazu 2 : <P w > 2 stała x w - 15 -
Układ mikroprogramowalny typu K 1 CEP zegar C zerowanie R LE Licznik wstępnie 0 D Q zegar C Q P k 0 P k 1 wstępnie 1 P a formaty mikrorozkazów: P k 0 P k 1 =<0 0> - <00, P s > P k 0 P k 1 =<1 0> - <10, P w > P k 0 P k 1 =<1 1> - <11, P a > P s P w x w x - 16 -