w3m, SPRAWOZDANIA czyjeś


Mikrooperacje

Każdy rozkaz jest wykonywany podczas cyklu rozkazu złożonego z krótszych podcykli (np. pobrania, adresowania pośredniego, wykonania, przerwania). Realizacja każdego podcyklu obejmuje jedną lub więcej krótszych operacji, tzn. mikrooperacji. Mikrooperacje są elementarnymi operacjami wykonywanymi przez procesor.

Cykl pobierania

Na początku cyklu pobierania adres następnego rozkazu przewidzianego do wykonania znajduje się w liczniku programu (PC); w tym przypadku adresem jest 1100100. Pierwszym krokiem jest przeniesienie tego adresu do rejestru adresowego pamięci (MAR), ponieważ jest to jedyny rejestr podłączony do linii adresu magistrali systemowej. Żądany adres (zawarty w MAR) jest umieszczany na magistrali adresu, jednostka sterująca wydaje rozkaz READ (czytaj) za pomocą szyny sterowania, wynik pojawia się na szynie danych i jest kopiowany do rejestru buforowego pamięci (MBR). Musi także nastąpić inkrementacja rejestru PC w celu przygotowania się do pobrania następnego rozkazu. Ponieważ te dwa działania (odczyt słowa z pamięci i dodanie l do PC) nie kolidują ze sobą, dla zaoszczędzenia czasu możemy je wykonywać jednocześnie. Trzecim krokiem jest przeniesienie zawartości MBR do rejestru rozkazu (IR). Uwalnia to MBR, umożliwiając jego użycie w ewentualnym cyklu adresowania pośredniego.

Cykl adresowania pośredniego

Gdy rozkaz został już pobrany, następnym krokiem jest pobranie argumentów źródłowych. Załóżmy jednoadresowy format rozkazu z dozwolonym adresowaniem bezpośrednim i pośrednim. Jeśli rozkaz określa adres pośredni, to cykl wykonywania musi być poprzedzony cyklem adresowania pośredniego. Obejmuje wtedy następujące mikrooperacje:

t1:MAR < (IR(Adres))

t2: MBR < Pamięć

t3: IR(Adres) < (MBR(Adres))

Zawartość pola adresowego rozkazu jest przenoszona do rejestru MAR. Następnie jest używana do pobrania adresu argumentu. Na zakończenie pole adresu IR jest aktualizowane za pomocą zawartości rejestru MBR, dzięki czemu zawiera już adres bezpośredni zamiast pośredniego.

Cykl wykonywania

Cykle pobierania, adresowania pośredniego i przerwania są proste i przewidywalne. Nie dotyczy to cyklu wykonywania. W przypadku maszyny o N różnych kodach operacji, może wystąpić W różnych sekwencji mikrooperacji. Przykład: Rozkaz inkrementacji i pominięcia w przypadku zera (ang. increment and skip ifzero) ISZX tj. zawartość lokacji X jest zwiększana o 1. Jeśli wynikiem jest 0, następny rozkaz jest pomijany.

t1:MAR < (IR(Adres))

t2:MBR < Pamięć

t3:MBR < (MBR) + 1

t4: Pamięć < (MBR)

Jeśli (MBR = 0) to (PC <- (PC) + 1)

Nową wprowadzoną tutaj właściwością jest działanie warunkowe. Stan licznika PC jest zwiększany, jeśli MBR=0. Ten test oraz towarzyszące mu działanie mogą być wdrożone w postaci jednej mikrooperacji. Zauważmy także, że ta mikrooperacja może być przeprowadzona w ciągu tej samej jednostki czasu, podczas której zaktualizowana zawartość rejestru MBR jest zapisywana w pamięci.

Cykl przerwania

Na zakończenie cyklu wykonywania przeprowadzany jest test mający na celu sprawdzenie, czy nie wystąpiły jakiekolwiek dozwolone przerwania. Jeśli wystąpiły, to następuje cykl przerwania. Natura tego cyklu różni się znacznie w zależności od komputera. W ramach pierwszego kroku zawartość licznika PC jest przenoszona do rejestru MBR, dzięki czemu może ona być zachowana do powrotu z przerwania. Następnie do rejestru MAR jest ładowany adres, pod którym ma być zachowana zawartość PC, a do PC jest ładowany adres początkowy programu obsługi przerwań. Każde z tych dwóch działań może być pojedynczą mikrooperacją. Ponieważ jednak większość procesorów umożliwia wiele rodzajów i (lub) poziomów przerwań, dostęp do obu adresów przed ich przeniesieniem do MAR i PC może wymagać jednej lub wielu dodatkowych mikrooperacji. Krokiem końcowym jest zapis w pamięci starej wartości PC zawartej w MBR.

Cykl rozkazu a mikrooperacje

Każda faza cyklu rozkazu może być traktowana jako sekwencja elementarnych

Mikrooperacji. Rejestr 2-bitowy nazywany kodem cyklu rozkazu wyznacza stan procesora określając, w której części cyklu się on znajduje:

00: Pobieranie

01: Adresowanie pośrednie

10: Wykonywanie

11: Przerwanie

Na końcu każdego z czterech cykli następuje odpowiednie ustawienie rejestru ICC. Po cyklu adresowania pośredniego następuje zawsze cykl wykonywania. Po cyklu przerwania następuje zawsze cykl pobierania. W przypadku cykli wykonywania i pobierania następny cykl zależy od stanu systemu.

Sterowanie ALU

Proces zmierzający do scharakteryzowania jednostki sterującej wymaga realizacji trzech etapów projektowych:

Określenie podstawowych elementów procesora:ALU,rejestry,wewnętrzne ścieżki danych zewnętrzne ścieżki danych,jednostka sterująca

Opisanie mikrooperacji wykonywanych przez procesor.

Transfer danych z jednego rejestru do drugiego.

Transfer danych z rejestru do interfejsu zewnętrznego

Transfer danych z interfejsu zewnętrznego do rejestru.

Wykonywanie operacji arytmetycznej lub logicznej

Określenie funkcji, które musi realizować jednostka sterująca w celu spowodowania przeprowadzenia tych mikrooperacji.

Porządkowanie. Jednostka sterująca powoduje, że procesor wykonuje ciąg mikrooperacji we właściwej kolejności (sekwencji) opartej na wykonywanym programie.

Wykonywanie. Jednostka sterująca powoduje wykonanie każdej mikrooperacji.

Sygnały sterujące

Źródłami danych wejściowych jednostki sterującej są:

Zegar. Dzięki niemu działanie jednostki sterującej jest związane z przebiegiem czasu. Jednostka sterująca powoduje wykonywanie jednej mikrooperacji (lub zbioru jednoczesnych mikrooperacji) po każdym impulsie zegarowym. Jest to czasami określane jako czas cyklu procesora lub czas cyklu zegara.

Rejestr rozkazu. Do określenia, które mikrooperacje mają być wykonane podczas cyklu wykonywania, używany jest kod operacji bieżącego rozkazu.

Znaczniki stanu. Są one potrzebne jednostce sterującej do określania stanu procesora i wyników poprzednich operacji ALU. Na przykład, wykonując rozkaz zwiększenia stanu i pominięcia w przypadku zera (ISZ), jednostka sterująca zwiększy stan licznika PC, jeśli jest ustawiony znacznik stanu 0.

Magistrala sterowania. Magistrala sterowania stanowiąca część magistrali systemowej przekazuje sygnały jednostce sterującej, takie jak sygnały przerwania i potwierdzenia.

Sygnały sterujące

Źródłami danych wyjściowych jednostki sterującej są: Wewnętrzne sygnały sterujące procesora. Istnieją dwa ich rodzaje: te, które powoduj ą przenoszenie danych z jednego rejestru do drugiego, oraz te, które aktywują określone funkcje ALU.

Sygnały sterujące do magistrali sterowania. Również istnieją dwa rodzaje tych sygnałów: sygnały sterujące pamięcią i sygnały sterujące modułami wejścia-wyjścia.

Sygnały sterujące

Rozważmy cykl pobierania i sposób sterowania w jego trakcie. Pierwszym krokiem jest przeniesienie zawartości licznika PC do rejestru MAR. Jednostka sterująca dokonuje tego przez podanie sygnału sterującego, który otwiera bramki między bitami licznika PC a bitami rejestru MAR.

Następnym krokiem jest wczytanie słowa z pamięci do MBR i zwiększenie stanu PC. Jednostka sterująca dokonuje tego przez jednoczesne wysłanie następujących sygnałów sterujących: Sygnału sterującego, który otwiera bramki, pozwalając na przekazanie zawartości MAR do magistrali adresu. Sygnału,

sterującego odczytem pamięci do magistrali sterowania. Sygnału sterującego, który otwiera bramki, pozwalając na przekazanie zawartości magistrali danych do rejestru MBR. Sygnału sterującego do układów logicznych, które dodają l do zawartości PC i zapisują wynik w PC. Następnie jednostka sterująca wysyła sygnał sterujący, który otwiera bramki Między MBR a IR. Kończy to cykl pobierania z wyjątkiem jednej rzeczy: jednostka

sterująca musi zdecydować, czy jako następny ma być realizowany cykl adresowania pośredniego, czy cykl wykonywania. W celu jednostka sterująca analizuje zawartość rejestru IR, aby stwierdzić, czy ma miejsce pośrednie odniesienie do pamięci.

Organizacja procesora

Jeśli zastosuje się wewnętrzną magistralę procesora, to rysunek z poprzedniej planszy można przekształcić, otrzymując rysunek po prawej. ALU i wszystkie rejestry procesora są połączone za pomocą jednej magistrali wewnętrznej. Istnieją też bramki i sygnały sterujące, które kontrolują ruch danych między każdym rejestrem a magistralą. Dodatkowe sygnały sterujące kontrolują przesyłanie danych do/z magistrali systemowe (zewnętrznej) oraz działanie ALU. Rejestr Z umożliwia czasowe przechowywanie wartości wyjściowych. Rejestr Y służy do czasowego przechowywania drugiego argumentu.

Pojęcie mikrorozkazu

Zauważmy, że notacje w tabeli wyglądają jak język programowania. W istocie to jest język, nazywa się go jezykiem mikroprogramowania. Każdy wiersz opisuje zbiór jednocześnie następujących mikrooperacji i jest określany jako mikrorozkaz. Sekwencja rozkazów jest nazywana mikroprogramem lub oprogramowaniem układowym.

Dla dowolnej mikrooperacji każda linia sterowania wyprowadzona z jednostki sterującej jest albo w stanie włączenia, albo wyłączenia. Stan ten może być oczywiście reprezentowany przez cyfrę binarną związaną z każdą linią sterowania. Można więc utworzyć słowo sterujące, w którym każdy bit reprezentuje jedną linię sterowania. Wobec tego każda mikrooperacja będzie reprezentowana przez różny układ jedynek i zer w słowie sterującym.

Format mikrorozkazu

Format mikrorozkazu poziomego lub słowa sterującego poziomego jest następujący.

Występuje w nim po jednym bicie na każdą wewnętrzną linię sterowania procesora i po jednym bicie na każdą linięsterowania magistrali systemowej. Występuje pole warunku wskazujące warunek rozgałęzienia oraz pole adresu następnego mikrorozkazu, który ma być wykonywany, jeśli nastąpi rozgałęzienie.

Typowe formaty mikrorozkazów:

(a)mikrorozkaz poziomy;

(b)mikrorozkaz pionowy

Taki mikrorozkaz jest interpretowany następująco: W celu wykonania tego mikrorozkazu należy włączyć wszystkie linie sterowania wskazane przez bity l i pozostawić wyłączone wszystkie linie sterowania wskazane przez 0. Wynikające stąd sygnały sterujące spowodują wykonanie jednej lub wielu mikrooperacji. Jeśli warunek wskazany przez bity warunku nie jest spełniony, to należy wykonać następny mikrorozkaz w sekwencji. Jeśli warunek wskazany przez bity warunku jest spełniony, to następny mikrorozkaz przewidziany do wykonania jest wskazany w polu adresowym. Organizacja pamięci sterującej

Mikrorozkazy w każdym programie standardowym mają być realizowane po kolei. Każdy program standardowy kończy się rozkazem rozgałęzienia lub skoku wskazującym, do jakiego punktu należy przejść. Istnieje specjalny program standardowy cyklu wykonywania, którego jedynym celem jest zaznaczenie tego programu związanego z Rozkazem maszynowym(AND, ADD itd.), który ma być wykonywany jako następny, zależnie od kodu operacji. W pamięci jest określana sekwencja mikrooperacji, która ma być wykonywana podczas każdego cyklu (pobierania, adresowania pośredniego, wykonywania, przerwania), jest także określony porządek tych cykli.

Mikroprogramowana JS

Zbiór mikrorozkazów jest przechowywany w pamięci sterującej.

Rejestr adresu sterowania zawiera adres następnego mikrorozkazu, który ma być odczytany. Po odczytaniu mikrorozkazu z pamięci sterującej jest on przenoszony do buforowego rejestru sterowania. Lewa część tego rejestru (folia 14, rys.a) jest połączona z liniami sterowania wychodzącymi z jednostki sterującej. Odczytanie mikrorozkazu z pamięci sterującej jest więc tym samym, co wykonanie tego mikrorozkazu

Trzecim elementem pokazanym na rysunku jest jednostka szeregująca , która ładuje rejestr adresu sterowania i wydaje rozkaz odczytu.

Mikroprogramowana JS

Jednostka sterująca ma wejścia (IR, znaczniki stanu ALU, zegar) i wyjścia (sygnały sterujące). Jednostka sterująca działa następująco: (Wszystko to następuje podczas jednego cyklu zegara) W celu wykonania rozkazu szeregująca jednostka logiczna wydaje rozkaz READ (odczyt) odnoszący się do pamięci sterującej. Słowo, którego adres jest określony w rejestrze adresu sterowania, jest wczytywane do buforowego rejestru sterowania. Zawartość buforowego rejestru sterowania generuje sygnały sterujące oraz informację o następnym adresie skierowaną do logicznej jednostki szeregowania. Logiczna jednostka szeregowania ładuje nowy adres do rejestru adresu sterowania na podstawie informacji o następnym adresie uzyskanej z buforowego rejestru sterowania i na podstawie znaczników stanu ALU

Mikroprogramowana JS

Na zakończenie każdego mikrorozkazu logiczna jednostka szeregowania ładuje nowy adres do rejestru adresu sterowania. Zależnie od wartości znaczników stanu ALU i buforowego rejestru sterowania podejmowana jest jedna z trzech decyzji:

Przejście do następnego rozkazu. Dodanie 1 do rejestru adresu

sterowania. Skok do następnego programu standardowego w wyniku mikrorozkazu skoku. Ładowanie pola adresu buforowego rejestru sterowania do rejestru adresu sterowania. Skok do programu standardowego kodu maszynowego. Ładowanie rejestru adresu sterowania na podstawie kodu operacji w IR.

Rola dekoderów w mikroprogramowanej jednostce sterowania:

Górny dekoder przekształca kod operacji z rejestru IR na adres w pamięci sterującej. Dolny dekoder nie jest używany w przypadku mikrorozkazów poziomych, jest natomiast potrzebny w przypadku mikrorozkazów pionowych

Szeregowanie mikrorozkazów

Dwa następujące problemy występują przy projektowaniu metody szeregowania mikrorozkazów: rozmiar mikrorozkazu-minimalizowanie rozmiaru pamięci sterującej zmniejsza koszt tego zespołu czas generowania adresu - dąży się do tak szybkiego wykonywania mikrorozkazów, jak tylko jest to możliwe.

Przy wykonywaniu mikroprogramu adres następnego mikrorozkazu przewidzianego do wykonania należy do jednej z trzech kategorii: określany przez rejestr rozkazu - kategoria występuje tylko raz w cyklu rozkazu, tuż po pobraniu rozkazu.

następny adres w sekwencji - kategoria jest najbardziej powszechna w większości projektów i najbardziej pożądana.

Rozgałęzienie -zarówno warunkowe, jak i bezwarunkowe, są niezbędną częścią mikroprogramu. Ważne jest projektowanie zwartych, wydajnych czasowo metod wykonywania mikrorozkazów rozgałęziania.

Metody szeregowania

Układy logiczne sterowania rozgałęzieniami, dwa pola adresowe

Multiplekser służy jako miejsce docelowe obu pól adresowych i zawartości rejestru rozkazu. Na podstawie wejścia wyboru adresu multiplekser przekazuje do rejestru adresu sterowania (CAR) albo kod operacji, albo jeden z dwóch adresów. Zawartość rejestru CAR jest następnie dekodowana w celu utworzenia adresu następnego mikrorozkazu. Sygnały wyboru adresu są doprowadzane przez moduł logiczny rozgałęziania, na którego wejście są podawane znaczniki stanu jednostki sterującej oraz bity pochodzące z części sterowania w mikrorozkazie.

Metody szeregowania cz. II

Układy logiczne sterowania rozgałęzieniami, jedno pole adresowe Powszechnym rozwiązaniem jest stosowanie jednego pola adresowego.W tym rozwiązaniu opcje dotyczące pobierania następnego adresu są następujące:

•pole adresowe

•kod rejestru rozkazu,

•następny adres w sekwencji. Sygnały wyboru adresu określają, która z tych opcji zostaje wybrana. Rozwiązanie to powoduje zredukowanie liczby pól adresowych do jednego. Zauważmy jednak, że często pole to nie będzie używane. Schemat kodowania mikrorozkazu wykazuje więc pewną nieefektywność.

Metody szeregowania cz. III

Układy logiczne sterowania rozgałęzieniami, format zmienny Innym rozwiązaniem jest przyjęcie dwóch całkowicie różnych formatów mikrorozkazu. Za pomocą jednego bitu określa się, który format będzie używany. W jednym formacie pozostałe bity są używane do aktywowania sygnałów sterujących W drugim formacie niektóre bity sterują modułem logicznym rozgałęziania, a pozostałe dostarczają adres. W przypadku pierwszego formatu następny adres jest albo następnym adresem w sekwencji, albo adresem wyprowadzanym z rejestru rozkazu. W przypadku drugiego formatu określane jest albo rozgałęzienie warunkowe, albo bezwarunkowe. Wadą tego rozwiązania jest to, że jeden mikrorozkaz rozgałęzienia pochłania cały cykl.

Wykonywanie mikrorozkazów

Logiczny moduł szeregowania zawiera układy logiczne wykonujące funkcje związane z cyklem pobierania. Generuje on adres następnego mikrorozkazu na podstawie rejestru rozkazu, znaczników stanu ALU, rejestru adresu sterowania (w celu zwiększania jego stanu) oraz buforowego rejestru sterowania. Ten ostatni może dostarczać rzeczywistego adresu, bitów sterowania lub jednego i drugiego. Moduł jest sterowany zegarem, który określa taktowanie cykli mikrorozkazów. Moduł logiczny sterowania generuje sygnały sterujące jako funkcję niektórych bitów mikrorozkazu. Format i zawartość mikrorozkazu określa złożoność logicznego modułu sterowania



Wyszukiwarka

Podobne podstrony:
pomoc2cd(1), SPRAWOZDANIA czyjeś
Budowa kontenera C, SPRAWOZDANIA czyjeś
Zalety systemów SDH, SPRAWOZDANIA czyjeś
Hartowanie i odpuszczanie, SPRAWOZDANIA czyjeś
z3 06, SPRAWOZDANIA czyjeś
z 1 7 a, SPRAWOZDANIA czyjeś
Zabezpieczenie transformatora za pomocą zespołu automatyki(1), SPRAWOZDANIA czyjeś
w4m, SPRAWOZDANIA czyjeś
Z5 10, SPRAWOZDANIA czyjeś
pomoc, SPRAWOZDANIA czyjeś
siwex, SPRAWOZDANIA czyjeś
MetodyNumeryczne, SPRAWOZDANIA czyjeś
pomoc2, SPRAWOZDANIA czyjeś
labelektr14, SPRAWOZDANIA czyjeś
Budowa kontenera VC, SPRAWOZDANIA czyjeś
z4 06, SPRAWOZDANIA czyjeś
Kształtowanie widma, SPRAWOZDANIA czyjeś
Z2 08, SPRAWOZDANIA czyjeś

więcej podobnych podstron