620 likes | 894 Views
Technika mikroprocesorowa. Seminarium dyplomowe Wykonali: Michał Kochanowski Łukasz Duda Kamil Nicpoń. Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Elektroniki Kraków 26.11.2012r. Pytanie 1:.
E N D
Technika mikroprocesorowa Seminarium dyplomowe Wykonali: Michał Kochanowski Łukasz Duda Kamil Nicpoń Wydział Informatyki, Elektroniki i TelekomunikacjiKatedra Elektroniki Kraków 26.11.2012r.
Pytanie 1: Po odjęciu dwóch bajtów (B3 minus 9D, kod heksadecymalny), stany bitów warunkowych C, Z (przeniesienia, zerowości) będą wynosiły: • 0,1 • 0,0 • 1,1
Bity warunkowe Układ ALU na podstawie efektów obliczeń ustawia tzw. bity warunkowe. Mamy następujące bity: • Carry (C)- przeniesienie • Overflow (V)- nadmiar • Zero (Z)- wynik zerowy • Negative (N) - wynik ujemny • Extend (X) - przedłużenie
Bity warunkowe • Flaga Z jest ustawiana na ”1” gdy wynik ostatnio wykonanej operacji jest zerowy, to znaczy wszystkie aktywne bity wyniku są, zerowe (ilość bitów aktywnych zależy od typu danych użytych w operacji). W przeciwnym przypadku flaga ta jest zerowana. • Flaga N jest ustawiana na ”1” gdy wynik operacji jest ujemny, w przeciwnym przypadku jest zerowana. Przy operacjach w kodzie U2, więc flaga N jest kopią najstarszego z aktywnych bitów wyniku. • Flaga C jest ustawiana na ”1”, gdy w wyniku operacji arytmetycznej następuje przeniesienie z najstarszej aktywnej pozycji, lub przy operacji przesuwania – wysuwany jest bit ”1”. • Flaga X jest ustawiana podobnie jak C, ale tylko przez niektóre instrukcje. Pełni rolę bitu przeniesienia potrzebnego do przedłużania operacji arytmetycznych na większą, ilość słów. • Flaga V sygnalizuje wystąpienie nadmiaru w czasie ostatniej operacji arytmetycznej. Nadmiar ma miejsce, gdy wynik operacji nie mieści się w przyjętej reprezentacji liczb. Na przykład, po dodaniu dwóch liczb ujemnych otrzymujemy wynik dodatni.
Kod U2 Kod uzpełnień do dwóch (ang. 2C - Two's Complement) Liczba jest dodatnia, gdy bit znaku ma wartość 0 - suma pozostałych wag tworzy zawsze liczbę dodatnią lub zero. Jeśli bit znaku przyjmie wartość 1, to liczba jest ujemna. Procedura wyznaczania liczby przeciwnej w kodzie U2 (1) 1.Dokonać negacji wszystkich bitów zapisu liczby U2. 2.Do wyniku dodać 1
Kod U2 Procedura wyznaczania liczby przeciwnej w kodzie U2 (2) 1.Przejść do pierwszego od prawej strony bitu zapisu liczby. 2.Do wyniku przepisać kolejne bity 0, aż do napotkania bitu o wartości 1, który również przepisać. 3.Wszystkie pozostałe bity przepisać zmieniając ich wartość na przeciwną. B3=10110011(U2)=-77 9D=10011101(U2)=-99 ~(9D)=01100011(U2) Przy wyniku odejmowania bajtów, negujemy bit przeniesienia „C” z stąd stan bitów C i Z =0,0
Pytanie 2: Dodając dwa bajty w kodzie uzupełnień do dwóch (6A i 3E – zapis heksadecymalny), otrzymujemy następujące stany bitów warunkowych N,Z,V (znak, zerowość, przekroczenie zakresu): • 0,0,0 • 0,1,0 • 0,0,1 • 1,0,1
Wyjaśnienie 6A=01101010(U2)=106 3E=00111110(U2)=62 Stan bitów warunkowych po tej operacji to: Z=0, N=1, V=1
Pytanie 3: Funkcja bitów warunkowych (ustawione po rozkazie odejmowania lub porównania ) dla liczb w kodzie uzupełnień do dwóch: !((N modulo 2 V) lub Z) gdzie N – bit znaku, V – bit przekroczenia zakresu, Z – bit zerowości, osiąga stan logicznej jedynki dla relacji : • Większy • większy lub równy • mniejszy lub równy • mniejszy
Wyjaśnienie !((N modulo 2 V) lub Z)= Dla > mamy N=1 V=1 Z=0 – wartość 1 Dla = mamy N=0 V=0 Z=1 – wartość 0 Dla < mamy N=1 V=0 Z=0 – wartość 0
Pytanie 4: Bajt FF (zapis heksadecymalny, kod uzupełnień do dwóch), po operacji zmiany znaku będzie miał postać: • 01 • FE • 00
Wyjaśnienie FF=11111111(U2)=-1 ~FF=00000000+1=00000001(U2)=1<-liczba przeciwna
Pytanie 5: Jednoargumentowe są rozkazy: • selektywnej negacji bitu • konwersji kodu • sumy logicznej • dekrementacja
Wyjaśnienie Jednoargumentowymi rozkazami są wszystkie te rozkazy, które wykonują operacje odwołując się tylko do jednego argumentu. Czyli np. dodanie dwóch rejestrów wymaga 2 argumentów: adresu jednego rejestru oraz adresu drugiego rejestru. A przykładowo operacje inkrementacji, dekrementacji, są operacjami jednoargumentowymi ponieważ wymagają podania tylko jednego argumentu.
Pytanie 6: Rejestry niezbędne dla prawidłowej pracy mikroprocesora: • statusowy, • wyróżniony rejestr – akumulator, • licznik programu ( PC ), • wskaźnik stosu(SP),
Wyjaśnienie Do prawidłowej pracy mikroprocesor potrzebuje rejestry które wykorzystuje do zarządzania przebiegiem wykonywania programu. Są to : • Rejestr statusowy • Licznik programu • Wskaźnik stosu
Pytanie 7: Przez cykl magistrali ( CM ) rozumiemy jednokrotny kontakt mikroprocesora z pamięcią ( programu, danych ). Rozkazy które do wykonania potrzebują dwóch CM ( argumenty znajdują się w pamięci ) to: • Zerowania • iloczynu logicznego z maską natychmiastową • Dekrementacji • Pojedynczy zapis do pamięci
Wyjaśnienie Rozkazy potrzebujące dwóch cykli magistrali to takie, które do zrealizowania operacji potrzebują 2 kontaktów z pamięcią. Czyli: odczyt z pamięci danej (pierwszy CM) -> modyfikacja danej -> zapis do pamięci zmodyfikowanej danej (drugi CM)
Pytanie 8: Mikroprocesor zwraca magistralę: • po skończeniu cyklu magistrali, • po skończeniu procedury, • po skończeniu rozkazu, • Po zakończeniu przerwania,
Pytanie 9: Mikroprocesor zaakceptuje przerwanie typu niemaskowanego: • natychmiast, tj. po każdym takcie sygnału zegarowego • po skończeniu bieżącego cyklu magistrali • po skończeniu bieżącego rozkazu
Ciekawostka Jeżeli podczas obsługi NMI pojawi się znowu przerwanie tego typu to zachowanie uP może być różne: • Zagnieżdżenie obsługi (Motorola) • Zapamiętanie faktu i ponowne powtórzenie procedury (Intel)
Pytanie 10: Procesory typu RISC (reducedinstruction set computer ) charakteryzują się: • zredukowaną liczbą trybów adresowania • wykonywaniem każdego rozkazu w jednym takcie zegarowym • zredukowaną liczbą rejestrów • Zredukowaną liczbą rozkazów
Wyjaśnienie RISC Zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt, podczas gdy w procesorach CISC sięga setek. Upraszcza to znacznie dekoder rozkazów. Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. Ponadto wprowadzono tryb adresowania, który ogranicza ilość przesłań.
Pytanie 11: Tryby adresacji stosowane konsekwentnie dla rozkazów skoków i wywołań, zapewniające własność relokowalności segmentu kodu to: • Względny • bazowy (indeksowy) • Rejestrowy
Wyjaśnienie Tryb adresowy względny – adresuje względem PC Tryb adresowany rejestrowy – adresuje za pomocą wartość znajdującej się w danym rejestrze Tryb bazowy (indeksowy) – w odniesieniu do jakiejś wartości bazowej.
Pytanie 12: Numerowany ( wektorowy ) system przerwań ( jedna linia INT – wiele źródeł przerwań ) wymaga: • instalacji w pamięci danych tablicy adresów startowych programów obsług • trybu adresacji indeksowego w procedurach obsługi • cyklu magistrali akceptacji przerwania • Osobnego bloku pamięci
Wyjaśnienie Instalacja takiej tablicy wektorów przerwao jest konieczna aby mikrokontroler wiedział, który kod obsługi przerwania jest przyporządkowany do którego numeru przerwania.
Pytanie 13: Każdy mikrokontroler po wyzerowaniu: • blokuje przerwania • ustawia linie portów jako wejścia • zeruje pamięć danych • Czyści pamięć programu
Wyjaśnienie Po wyzerowaniu każdy uP wraca do bezpiecznego stanu, tzn. wyłącza przerwania maskowalne oraz ustawia linie danych jako wejścia.
Pytanie 14: Interfejsy wewnętrzne absolutnie niezbędne w mikrokontrolerze to: • przetwornik A/C • linie we/wy • licznik – czasomierz • Interfejs SPI
Wyjaśnienie Każdy mikrokontroler musi móc jakoś komunikować się ze światem zewnętrznym dlatego konieczne są linie we/wy, co więcej aby mógł nastąpić przesył danych na magistralach wewnętrznych musi nastąpić synchronizacja danych, więc uP musi również posiadać wbudowany Timer.
Pytanie 15: Zegar czuwania (watchdog) zabezpiecza przed: • samoistnym przekłamaniem kodu • błędnym działaniem układów wykonawczych • zanikiem sygnału zegarowego • Resetowaniem mikroprocesora • Zbyt długim pozostawaniem w pętli bez końca
Wyjaśnienie Zegar czuwania (watchdog) służy do ochrony kodu programu przed zamknięciem się w pętli bez końca oraz przekłamaniami kodu. Polega to na tym, że co jakiś – określony czas należy software’owo resetowad licznik „watchdoga”, który odlicza czas w dół i wtedy system wie, że kod programu wykonuję się tak jak to było zaplanowane. Jeśli licznik watchdoga się wyzeruje to mikrokontroler jest resetowany.
Pytanie 16: Podzespoły, które muszą być bezwzględnie zasilone po wprowadzeniu mikrokontrolera w stan maksymalnego oszczędzania mocy to: • logika portów we –wy • logika wewnętrznych interfejsów • pamięć danych • ALU
Wyjaśnienie Pamięć RAM to jedyny podzespół, który musi być zasilony w trybie hibernacji, po to aby zachować tam stan mikrokontrolera i przywrócić (wczytać z pamięci RAM) stany systemów wewnętrznych oraz funkcjonowanie sprzed hibernacji.
Pytanie 17: Rozkazy, które mogą przejąć funkcję instrukcji „pustej” tj. NOP: • XCHG AX, AX (wymiana) • BRN (skok „nigdy”) • OR R1, 0 (suma z argumentem natychmiastowym) • JMP *
Wyjaśnienie 2 pierwsze instrukcje nie zmieniają stanu procesora oraz danych są więc podobne do instrukcji NOP, jednak ilość cykli magistrali potrzebna na wykonanie danej instrukcji może być inna.
Pytanie 18: Mikroprocesor nie posiada wywołań i powrotów warunkowych. Aby zrealizować wywołanie/powrót dla zerowości (bit Z=1) należy, oprócz wywołania/powrotu bezwarunkowego, posłużyć się dodatkowo: • instrukcją NOP • skokiem dla warunku Z=0 • dedykowaną procedurą
Wyjaśnienie Po skoku bezwarunkowym należy skasować flagę Z – tak działają właśnie wywołania/powroty warunkowe.
Pytanie 19: Instrukcja PSH to zapis rejestru na stos zaś POP to odczyt ze stosu. Sekwencja rozkazów dotycząca rejestrów Rx i Ry : PSH Rx , PSH Rx , POP Ry , POP Rx : • kopiuje Ry do Rx, • wymienia stany rejestrów • kopiuje Rx do Ry • Nic nie robi
Pytanie 20: Większość mikroprocesorów dysponuje rozkazami zatrzymania. Mikroprocesor można efektywnie wyprowadzić ze stanu zatrzymania poprzez: • dedykowaną instrukcję • wyłączenie i załączenie zasilania • przerwanie
Wyjaśnienie Mikrokontroler można również wyprowadzić z tego stanu po przez wyłączenie i włączenie zasilania nie jest to jednak efektywne. Nie można tego dokonać przez dedykowaną instrukcję, ponieważ w tym stanie uP nie przyjmuje instrukcji.
Pytanie 21: Pamięć podręczna: • powiększa dysponowany obszar pamięci • zmniejsza ilość cykli magistrali • powoduje że ta sama procedura może być wykonywana szybciej lub wolniej • Ma zawsze tylko jeden poziom • W procesorach wielordzeniowych jest wspólna
Wyjaśnienie • Pamięć podręczna (ang. cache) – mechanizm, w którym część spośród danych zgromadzonych w źródłach o długim czasie dostępu i niższej przepustowości jest dodatkowo przechowywana w pamięci o lepszych parametrach. Ma to na celu poprawę szybkości dostępu do tych informacji, które przypuszczalnie będą potrzebne w najbliższej przyszłości. • Pamięć podręczna jest elementem właściwie wszystkich systemów – współczesny procesor ma 2 albo 3 poziomy pamięci podręcznej oddzielającej go od pamięci RAM. Charakteryzuje się bardzo krótkim czasem dostępu.
Pytanie 22: Aby przyśpieszyć pracę mikroprocesora wprowadza się mechanizmy: • pracę potokową • zewnętrzną jednostkę zmiennoprzecinkową • przewidywania rozgałęzień( tzw. BTB) • Oszczędzania energii
Wyjaśnienie Praca potokowa tzw. praca na zakładkę z j.ang. Pipeline. Zastosowanie przetwarzania potokowego teoretycznie pozwala na kilkukrotnie zwiększenie szybkości pracy. Prowadzi to do wykonywania większości instrukcji w jednym cyklu pracy procesora. Z pracą potokową związany jest blok prefetchera wraz z układem BTB. Prefetcher ma za zadanie wcześniejsze pobieranie kodów instrukcji programu i umieszczanie ich w kolejce rozkazów. Występuje z nim układ przewidywania realizacji rozgałęzień, którego częścią jest buffer rozgałęzień BTB.
Pytanie 23: Struktura Harvard różni się od struktury von Neumana: • dodatkowymi dwoma liniami sterującymi zapisem/odczytem układów we-wy • obecnością pamięci podręcznych drugiego poziomu • oddzielnymi magistralami dostępu do kodu i danych
Wyjaśnienie W architekturze von Neumanna komputer składa się z czterech głównych komponentów: • pamięci komputerowej przechowującej dane programu oraz instrukcje programu; • - jednostki kontrolnej odpowiedzialnej za pobieranie danych i instrukcji z pamięci oraz ich sekwencyjne przetwarzanie • - jednostki arytmetyczno-logicznej odpowiedzialnej za wykonywanie podstawowych operacji arytmetycznych. • - urządzeń wejścia/wyjścia służących do interakcji z operatorem. W odróżnieniu od architektury von Neumanna, pamięć danych programu jest tutaj oddzielona od pamięci rozkazów. Prostsza (w stosunku do architektury von Neumanna) budowa przekłada się na większą szybkość działania - dlatego ten typ architektury jest często wykorzystywany w procesorach sygnałowych oraz przy dostępie procesora do pamięci cache. Separacja pamięci danych od pamięci rozkazów sprawia, że architektura harwardzka jest obecnie powszechnie stosowana w mikrokomputerach jednoukładowych, w których dane programu są najczęściej zapisane w nieulotnej pamięci ROM (EPROM/EEPROM), natomiast dla danych tymczasowych wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna).
Pytanie 24: Wyrównanie binarne to (argumenty 1, 2, 4 i 8-bitowe): • używanie adresów podzielnych przez rozmiar argumentu • stosowanie dla każdego bajtu oddzielnej linii parzystości • rozkazy o parzystej liczbie bajtów • Wszystkie rejestry mają taką samą liczbę bitów