UKŁADY MIKROPROGRAMOWANE

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Automaty asynchroniczne
Dwójniki bierne impedancja elementu R
Mgr inż.Marcin Borkowski Podstawy Java Część II
Układy sekwencyjne - pojęcie automatu
Modelem układu sekwencyjnego jest AUTOMAT
Architektura systemów komputerowych
Algorytmy – różne przykłady
PROGRAMOWANIE STRUKTURALNE
Michał Łasiński Paweł Witkowski
Układy komutacyjne.
PODSUMOWANIE.
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Procesor DSP Sharc ADSP21161 firmy Analog Devices
Podstawowe składniki funkcjonalne procesora i ich rola.
Budowa komputera Wstęp do informatyki Wykład 15
Od algebry Boole’a do komputera
Komputer, procesor, rozkaz.
Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Orkiszewski Marcin.
FORMATY ARKUSZY: A3 594 A2 A1 A4 297 A
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
UKŁADY SZEREGOWO-RÓWNOLEGŁE
METODYKA PROJEKTOWANIA I DOSKONALENIA STRUKTUR
Układy wejścia-wyjścia
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Tytuł prezentacji Warszawa, r..
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
Architektura komputerów
Układy sekwencyjne pojęcia podstawowe.
minimalizacja automatów
Przerzutniki.
Układy kombinacyjne.
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
Dekodery adresów.
Układy sekwencyjne - pojęcie automatu
Architektura komputerów
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Wyrażenia algebraiczne
Synteza logiczna w projektowaniu układów cyfrowych
Problem kodowania stanów w układach sekwencyjnych (automatach)
Cyfrowe układy logiczne
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
Minimalizacja funkcji boolowskich
Minimalizacja funkcji boolowskich
Synteza logiczna w projektowaniu…
Problematyka wykładu Podział rejestrów i liczników
Sygnały cyfrowe i bramki logiczne
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Pudełko Urządzenia Techniki Komputerowej
PODSTAWOWE BRAMKI LOGICZNE
Temat 7: Instrukcje warunkowe
Algorytmy.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Złożone układy kombinacyjne
Bramki logiczne i układy kombinatoryczne
Przerzutniki bistabilne
Kalendarz 2020.
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Wstęp do interpretacji algorytmów
Tryby adresowania i formaty rozkazów mikroprocesora
Układy logiczne – układy cyfrowe
ZPT Evatronix Kontroler Ethernet MAC (Media Access Control) 10/100Mbit spełniający rolę rolę podstawowej arterii wymiany danych pomiędzy urządzeniami sterującymi.
Układy logiczne – układy cyfrowe
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Układy asynchroniczne
Podstawy Automatyki Człowiek- najlepsza inwestycja
Zapis prezentacji:

UKŁADY MIKROPROGRAMOWANE

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

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

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

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

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

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

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

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

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

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 D0 Dn-1 Y M M(I) I    11

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

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

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

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

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

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

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

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

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

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

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

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.

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

Przykład syntezy US - schemat blokowy +2 Adresy: A, A+1, A+2, B B 00 01 11 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

Przykład c.d. – dekoder mikroinstrukcji Ai x 1 Ai+1 MI1 Ai Z x 1 Ai+1 Ai+2 MI2 00 01 11 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

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.

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

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

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

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

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

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 0 0 0 ─ I2 HOLD Z b 0 0 1 ─ I0 c 0 1 0 0 0 1 0 1 I1 d 0 1 1 0 0 1 1 1 LOAD NOP e 1 0 0 0 1 0 0 1 I3 –

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