1 / 27

UKŁADY MIKROPROGRAMOWANE

e. e. X. 0. 0. X. X. Y. j. Y. X. N-1. n. n. A. A. UKŁADY MIKROPROGRAMOWANE. 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. LICZNIK. REJESTR.

wyome
Télécharger la présentation

UKŁADY MIKROPROGRAMOWANE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. e e X 0 0 X X Y j Y X N-1 n n A A UKŁADY MIKROPROGRAMOWANE 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. LICZNIK REJESTR Ale aby rozsądnie, w określonej kolejności zdarzeń, wykonać zadanie określone algorytmem, bloki funkcjonalne zastosowane w systemie muszą być odpowiednio sterowane. 1

  2. e e Y X 0 0 Y X X Y j j Y X N - 1 N-1 n n A A US Sterowanie… …polega na inicjowaniu bloków do sekwencyjnego wykonywania elementarnych czynności takich jak np. zliczanie, wpisywanie do rejestru, sumowanie liczb… Czynności takiego sterowania wykonuje układ sekwencyjny.. LICZNIK Dodaj REJESTR Układ wykonawczy Ładuj Prześlij Zliczaj US wytwarza sygnały sterujące pobudzające do pracy odpowiednie bloki funkcjonalne… 2

  3. System cyfrowy Dane wejściowe Mikrooperacje wywoływane przez sygnały sterujące Sygnały sterujące Stan części wykonawczej 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 Układ wykonawczy (Datapath) Układ sterujący Dane wyjściowe 01100101 00100 01001100101001001 01011001101010 01001100101001001 01011001101010 3

  4. Algorytmiczna maszyna stanów Dostosowany do tych potrzeb sekwencyjny układ sterujący 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: Węzeł wejściowy Ai • Klatka operacyjna ..wyjściowe sygnały sterujące czynnościami układu wykonawczego, tzw. mikrorozkazy Z Zapisywane też symbolami reprezentującymi czynności (mikrooperacje) bloków UW: LOAD(L) X F T • Klatka warunkowa (decyzyjna) .. sygnał wejściowy X, którego wartość określa przejście do następnych klatek Przejścia dodo innych klatek 5

  6. Z1 Z2 0 x1 1 0 x 0 0 x2 x3 x1 Z3 1 1 1 Z4 Przykład sieci działań Klatki: operacyjne Z Z Z warunkowe 6

  7. Ai 1 0 Z x 1 0 Za Zb x Aj Ak Mikroinstrukcja Segmenty sieci działań są graficzną reprezentacją mikroinstrukcji Podstawowe mikroinstrukcje Ai Każda MI jest wykonywana w oddzielnym stanie Węzeł początkowy MI utożsamiamy ze stanem wewnętrznym ASM Moora Mealy’ego Aj Ak Ai : Z = Za, if x then A’ = Aj else A’ = Ak Ai : if x then Z = Za, A’ = Aj else Z = Zb, A’ = Ak 7

  8. Układy mikroprogramowane Rozbudowane sieci działań realizuje się w postaci tzw. Mikroprogramowanych Układów Sterujących (MUS) … w których sposób sterowania zapisuje się w pamięci stałej ROM zwanej pamięcią mikroprogramu (PM) W poszczególnych komórkach (wierszach) PM zapisuje się mikroinstrukcje opisujące działania układu w kolejnych stanach. MUS to układ umożliwiający wykonanie zadanej listy mikroinstrukcji 8

  9. Ai Ai Ai Z1 Z Ai Z 0 0 Z Z Z2 1 x1 x x 1 Aj 1 0 Ai+1 Aj Ai+1 Ai+1 Przykład – sieć działań, mikroprogram Rodzaje MI: A0 A1 [MI1] [MI2] A2 Z3 0 0 1 A3 x1 x4 x2 Z2 A6 Z4 A4 Z3 0 1 [MI3] [MI4] A5 Z2 Mikroprogram zapisuje się w pamięci stałej ROM zwanej pamięcią mikroprogramu i realizuje w Mikroprogramowanym Układzie Sterującym 9

  10. Ai Ai Ai Z1 Z Ai Z 0 0 Z Z Z2 1 x1 x x 1 Aj 1 0 Aj Ai+1 Ai+1 Ai+1 Przykład – sieć działań, mikroprogram A0 [MI1] A1 MI2] A2 Z3 0 0 1 A3 x1 x4 x2 Z2 A6 Z4 A4 Z3 0 1 A5 Z2 [MI3] [MI4] Jak zaprojektować MUS, który mógłby wykonać każdą MI z zadanej listy ? 10

  11. RA Takt Sygnały (warunki)zewnętrznei wewnętrzne UA PM MI Schemat blokowy MUS A Dekoder mikroinstrukcji DMI Do UW Głównym zadaniem MUS jest realizacja układu sterującego wykonującego zadaną listę mikroinstrukcji 11

  12. Adres mikroinstrukcji PM Format mikroinstrukcji Jak wpisać mikroinstrukcję: Ai : Z = Za, if xC then A’ = Aj else A’ = Ak do komórki pamięci o adresie Ai W postaci binarnej! Dzieli się słowo pamięci na segmenty (pola): MI = <S, B,C, Z> Każdy segment odpowiada za jedną konkretną czynność: S - sterujące (kod MI) B - adresowe C - kontrolne Z - operacyjne (mikrorozkaz) Mikroinstrukcja S B C Z S B C Z 12

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

  14. Ai Ai Ai Ai Z Z 1 Z 1 x x Ai+2 0 0 Aj Ai+1 Ai+1 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 (skok warunkowy o 2)) I3 : Z, A’ = Aj C, Z C, Z B, Z Formaty mikroinstrukcji 14

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

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

  17. Stany wewnętrzne Z1 Ai Ai Z2 Aj Z Z x1 1 0 A3 Ai x x2 x3 x1 Z3 Aj Ak 1 0 x Z4 Aj Ak MUS w porównaniu do układu sekwencyjnego Podział SD na segmenty odpowiadające mikroinstrukcjom Moore’a A0 A1 A2 A3  A4 A5 17

  18. A0 A1 Z1 Z2 0 x1 1 A2 0 0 0 x2 x3 x1 Z3 1 1 1 A3 Z4 Sieć działań reprezentuje automat Podział sieci na stany (dla automatu) 18

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

  20. Obsługa mikropodprogramu Przykład 11.2, str. 183 ULOG w zadaniach 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. 20

  21. Rejestr Śladu q xc 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 A RS := A i+1 j Ai+1 0 A k Warunkowe wyjście z podprogramu 1 xc A :=RS A i+1 0 A k+1 Ak: if xc then A' = RS else A' = Ak+1 21

  22. 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' = Ak+1 22

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

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

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

  26. Przykład cd. • Przejście bezwarunkowe, Z • Skok bezwarunkowy, Z • Przejście warunkowe, Z • Warunkowe wejście do podprogramu • Warunkowe wyjście z podprogramu 26

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

More Related