Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

UKŁADY MIKROPROGRAMOWANE

Podobne prezentacje


Prezentacja na temat: "UKŁADY MIKROPROGRAMOWANE"— Zapis prezentacji:

1 UKŁADY MIKROPROGRAMOWANE

2 Algorytmiczna maszyna stanów
Omawiane do tej pory bloki funkcjonalne są stosowane przede wszystkim do projektowania układów (systemów) cyfrowych, których typowym zadaniem są realizacje sprzętowe algorytmów. Ale aby rozsądnie, w określonej kolejności zdarzeń, wykonać zadanie określone algorytmem, bloki funkcjonalne zastosowane w systemie muszą być odpowiednio sterowane. 2

3 Algorytmiczna maszyna stanów
Sterowanie polega na inicjowaniu bloków do sekwencyjnego wykonywania elementarnych czynności takich jak np. zliczanie, wpisywanie do rejestru, sumowanie liczb… Domyślamy się, że czynności takiego sterowania może wykonywać układ sekwencyjny.. Dodaj Ładuj US REJESTR Prześlij Y j N - 1 n A e X Zliczaj X j N-1 Y n A e LICZNIK US wytwarza sygnały sterujące pobudzające do pracy odpowiednie bloki funkcjonalne układu wykonawczego. 3

4 Algorytmiczna maszyna stanów Algorithmic State Machine (ASM)
Dostosowany do tych potrzeb układ sekwencyjny nazywa się algorytmiczną maszyną stanów Algorithmic State Machine (ASM) 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. ASMy opisuje się sieciami działań 4

5 Sieć działań… …reprezentacja graficzna ASM Dwa podstawowe elementy: Ai
Krawędź wejściowa stanu Lista sygnałów wyjściowych Wyjścia do innych klatek T F Warunek Ai Nazwa stanu Klatka operacyjna Klatka warunkowa (decyzyjna) 5

6 Sieć działań Graf zbudowany z wierzchołków (klatek) i krawędzi Klatki:
x1 Z1 Z2 x3 x2 Z3 Z4 operacyjne Z Z Z x warunkowe 6

7 Typowe segmenty sieci działań są graficzną reprezentacją
Mikroinstrukcja Typowe segmenty sieci działań są graficzną reprezentacją tzw. mikroinstrukcji Moore’a Z Ai Aj Ak x 1 Za x Ai Aj Ak 1 Zb Mealy’ego Ai :, if x then Z = Za, A’ = Aj else Z = Zb, A’ = Ak Ai : Z = Za, if x then A’ = Aj else A’ = Ak 7

8 Podział sieci działań…
na segmenty odpowiadające mikroinstrukcjom Moore’a Stany wewnętrzne Z Ai Aj Ak x 1 A0 Z Ai Aj x1 Z1 Z2 x3 x2 Z3 Z4 A3 A1 A2 Ai Aj Ak x 1 A3 A4 A5 8

9 Sieć działań reprezentuje automat
Podział sieci na stany (dla automatu) x1x2x3 A 000 001 011 010 110 111 101 100 A 0 A 1 A 3 A 2 A0 A1 A2 A3 x1 Z1 Z2 x3 x2 Z3 Z4 1 9

10 Mikroinstrukcje a stany automatu
Podział sieci na segmenty odpowiadające mikroinstrukcjom Podział sieci na stany (dla automatu) x1 Z1 Z2 x3 x2 Z3 Z4 A3 A0 A0 A1 A2 A3 x1 Z1 Z2 x3 x2 Z3 Z4 1 A1 A2 A4 A5 ??? 4 stany 6 stanów W automacie w jednym stanie może być badanych wiele warunków, Mikroinstrukcjach – tylko jeden warunek !!! 10

11 Przykład Rozważmy przykład syntezy układu cyfrowego pobierającego dane z wejść D0,..., Dn–1 w celu ich przetworzenia w rejestrach B i Y. Układ operacyjny ma przetwarzać informację M(I ) pobieraną z n źródeł D0,...,Dn–1 za pośrednictwem multipleksera M adresowanego licznikiem I. S B := M(I) Y := 0 Y = M(I) Y := B + Y I := I + 1 B := B  Y B := B/2 I := 0 NIE 1 TAK B D Dn-1 Y M M(I) I    11

12 Przykład 12 I := 0 S B := M(I) 1 B := M(I) B := B  Y Y := 0 B := B/2
Y = M(I) Y := B + Y I := I + 1 B := B  Y B := B/2 I := 0 NIE 1 TAK B := M(I) B := B  Y B := B/2 Y := B + Y Warunek Y = M(I) 12

13 Przykład c.d.   13 S B := M(I) Y := 0 Y = M(I) Y := B + Y I := I + 1
B := B  Y B := B/2 I := 0 NIE 1 TAK NOT B := M(I) B := B/2 B := B  Y Y := B + Y Warunek Y = M(I) M(I) c0 do US Y = M(I) K (SHR(B)) X B B := X B := B/2 B := B  Y Y := B + Y Y := 0 Y := B + Y Y Y 13

14 Przykład c.d.  14 M(I) do US Y = M(I) Y := B + Y K B := B  Y X B
Y := 0 Y := B + Y X v M(I) B := X B := B/2 B Y := B + Y B := B  Y EXOR 14

15 Przykład c.d.  UO US F 15 B Y M(I) Y := 0 Y := B + Y X EXOR v c0
B := X B := B/2 EXOR v c0 B + Y B  Y Warunek Y = M(I) Warunek F = M(I) – Y = 0 UO M(I) Y US S F Y = M(I) 8 (+2) 15

16 Przykład c.d. 16 x1x0 I := 0 S = x0 S 1 B := M(I) Y := 0 Y := B + Y
I := I + 1 B := B  Y B := B/2 I := 0 NIE 1 TAK A0 x1x0 - 0 - - A0/Z1 A1/Z2 A2/Z3 A3/Z4 A4/Z5 A5/Z6 A6/Z7 A7/Z8 A8/Z9 - 1 1 - 0 - S = x0 A1 A2 A3 A4 A5 A6 A7 F = M(I) – Y A8 F = 0 Y = M(I) [F = 0] = x1 16

17 Ale nie po to stworzono pojęcie ASM, aby realizować je
Przykład c.d. x1x0 A 00 01 11 10 Z A0 A1 Z1 A2 Z2 A3 Z3 A4 Z4 A5 Z5 A6 Z6 A7 Z7 A8 Z8 Z9 - 0 - - A0/Z1 A1/Z2 A2/Z3 A3/Z4 A4/Z5 A5/Z6 A6/Z7 A7/Z8 A8/Z9 - 1 1 - 0 - Ale nie po to stworzono pojęcie ASM, aby realizować je w postaci automatów! 17

18 Układy mikroprogramowane
Bardziej rozbudowane sieci działań realizuje się w postaci tzw. układów mikroprogramowanych A MI Mikroprogram MI1 Opis MI1 1 MI2 n MIn Opis MIn W układach mikroprogramowanych… 18

19 Przykład mikroprogramu
x1 1 A0 A Mikroinstrukcja MI Z i oczekiwanie na spełnienie warunku MI1 1 Z i przejście bezpośrednie MI2 2 Z i skok warunkowy do A6 MI3 3 Z i skok warunkowy do A2 4 5 Z i skok bezwarunkowy do A0 MI4 6 Z i skok bezwarunkowy do A4 A1 Z2 A2 Z3 ??? x2 1 A3 A6 Z2 Z4 x1 A4 Z3 x4 1 Z2 A5 19

20 Przykład c.d. – sieć działań, mikroprogram
x 1 Ai Ai+1 Z1 x1 1 Ai+1 Ai Z A0 A MI MI1 Oczekiwanie na spełnienie warunku 1 MI2 Przejście bezpośrednie 2 MI3 Skok warunkowy do A6 3 Skok warunkowy do A2 4 5 MI4 Skok bezwarunkowy do A0 6 Skok bezwarunkowy do A4 [MI1] A1 Z2 MI2] A2 Z3 x2 1 A3 A6 Z2 Z4 Ai Z x 1 Ai+1 Aj x1 Aj Ai Z A4 Z3 x4 1 Z2 A5 [MI3] [MI4] Mikroprogram zapisuje się w pamięci stałej ROM zwanej pamięcią mikroprogramu 20

21 Mikroprogramowany układ sterujący
Schemat blokowy MUS Takt RA UA Sygnały (warunki) zewnętrzne i wewnętrzne A PM MI DMI Dekoder mikroinstrukcji UO

22 Format mikroinstrukcji
Adres mikroinstrukcji Format mikroinstrukcji: MI = <S, B,C, Z> Pola: S - sterujące (kod MI) B - adresowe C - kontrolne Z - operacyjne (mikrorozkaz) PM Mikroinstrukcja S B C Z

23 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.

24 Przykład c.d. - mikroinstrukcje
I1 : Z, if xc then A’ = Ai else A’ = Ai+1 (oczekiwanie na spełnienie warunku) I2 : Z, if xc then A’ = Ai+2 else A’ = Ai+1 Z Ai x 1 Ai+1 (skok warunkowy o 2)) Ai Z x 1 Ai+1 Ai+2 I3 : Z, A’ = Aj Aj Ai Z C, Z C, Z B, Z Formaty mikroinstrukcji

25 Przykład syntezy US - schemat blokowy
+2 Adresy: A, A+1, A+2, B B MA Q1 Q0 C, Z B, Z Formaty mikroinstrukcji LICZNIK L A 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 PM 00 C Z 01 10 B X B DMI xc s1 s0 L Q1 Q0 s1s0 C Z

26 Przykład c.d. – dekoder mikroinstrukcji
Ai x 1 Ai+1 MI1 Ai Z x 1 Ai+1 Ai+2 MI2 MA Q1 Q0 +2 B A A+2 Aj Ai Z MI3 DMI xc s1 s0 L Q1 Q0 MI s1 s0 xc L Q1 Q0 1 2 3 LICZNIK L A Count 0 Load 1 L = s1 + xc Q1 = s0xc

27 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.

28 Mikroinstrukcje do obsługi (mikro)podprogramu
Warunkowe wejście do podprogramu Ai : if xc then A' = Aj, RS:= Ai+1 else A' = Ai+1 A i adres Ai+1 powrotu z podprogramu zapamiętany w rejestrze śladu RS 1 xc RS := A A i+1 j Rejestr Śladu q Ai+1 A k Warunkowe wyjście z podprogramu 1 xc A A :=RS i+1 A k+1 Ai : if xc then A' = RS else A' = Ai+1

29 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 29

30 Przykład cd. Adresy: Ai+1 Aj Ai RS

31 Przykład cd. realizacja z rejestrem adresowym
Adresy: Ai+1 Aj Ai RS

32 Przykład cd. realizacja z rejestrem adresowym
Adresy: Ai+1 Aj Ai RS +1 RS q I I I I Q 1 2 3 MUXA RA PM S B Q q v v X DMI Z MUXW C S x c x c 32

33 Przykład cd. Przejście bezwarunkowe, Z Skok bezwarunkowy, Z
Przejście warunkowe, Z Warunkowe wejście do podprogramu Warunkowe wyjście z podprogramu MI s2 s1 s0 xc Q q v a I2 HOLD Z b I0 c I1 d LOAD NOP e I3

34 Przykład cd. z licznikiem adresowym
Adresy: Ai+1 count Ai hold Aj load RS load


Pobierz ppt "UKŁADY MIKROPROGRAMOWANE"

Podobne prezentacje


Reklamy Google