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 -