1 UKŁADY MIKROPROGRAMOWANE
2 Algorytmiczna maszyna stanówOmawiane 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ówSterowanie 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: AiKrawę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 automatPodział 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 automatuPodział 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/2Y = 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 + 1B := 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 BY := 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 c0B := 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 + YI := 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ć jePrzykł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 mikroprogramowaneBardziej 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 mikroprogramux1 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ń, mikroprogramx 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ącySchemat blokowy MUS Takt RA UA Sygnały (warunki) zewnętrzne i wewnętrzne A PM MI DMI Dekoder mikroinstrukcji UO
22 Format mikroinstrukcjiAdres mikroinstrukcji Format mikroinstrukcji: MI = 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. - mikroinstrukcjeI1 : 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 mikroinstrukcjiAi 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)podprogramuWarunkowe 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 adresowymAdresy: Ai+1 Aj Ai RS
32 Przykład cd. realizacja z rejestrem adresowymAdresy: 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, ZPrzejś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 adresowymAdresy: Ai+1 count Ai hold Aj load RS load