1 / 62

Technika mikroprocesorowa

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

amber
Download Presentation

Technika mikroprocesorowa

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. Technika mikroprocesorowa Seminarium dyplomowe Wykonali: Michał Kochanowski Łukasz Duda Kamil Nicpoń Wydział Informatyki, Elektroniki i TelekomunikacjiKatedra Elektroniki Kraków 26.11.2012r.

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

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

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

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

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

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

  8. Wyjaśnienie 6A=01101010(U2)=106 3E=00111110(U2)=62 Stan bitów warunkowych po tej operacji to: Z=0, N=1, V=1

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

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

  11. Pytanie 4: Bajt FF (zapis heksadecymalny, kod uzupełnień do dwóch), po operacji zmiany znaku będzie miał postać: • 01 • FE • 00

  12. Wyjaśnienie FF=11111111(U2)=-1 ~FF=00000000+1=00000001(U2)=1<-liczba przeciwna

  13. Pytanie 5: Jednoargumentowe są rozkazy: • selektywnej negacji bitu • konwersji kodu • sumy logicznej • dekrementacja

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

  15. Pytanie 6: Rejestry niezbędne dla prawidłowej pracy mikroprocesora: • statusowy, • wyróżniony rejestr – akumulator, • licznik programu ( PC ), • wskaźnik stosu(SP),

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

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

  18. 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)

  19. Pytanie 8: Mikroprocesor zwraca magistralę: • po skończeniu cyklu magistrali, • po skończeniu procedury, • po skończeniu rozkazu, • Po zakończeniu przerwania,

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

  21. 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)

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

  23. 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ń.

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

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

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

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

  28. Pytanie 13: Każdy mikrokontroler po wyzerowaniu: • blokuje przerwania • ustawia linie portów jako wejścia • zeruje pamięć danych • Czyści pamięć programu

  29. Wyjaśnienie Po wyzerowaniu każdy uP wraca do bezpiecznego stanu, tzn. wyłącza przerwania maskowalne oraz ustawia linie danych jako wejścia.

  30. Pytanie 14: Interfejsy wewnętrzne absolutnie niezbędne w mikrokontrolerze to: • przetwornik A/C • linie we/wy • licznik – czasomierz • Interfejs SPI

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

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

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

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

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

  36. 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 *

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

  38. 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ą

  39. Wyjaśnienie Po skoku bezwarunkowym należy skasować flagę Z – tak działają właśnie wywołania/powroty warunkowe.

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

  41. Wyjaśnienie

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

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

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

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

  46. Pytanie 22: Aby przyśpieszyć pracę mikroprocesora wprowadza się mechanizmy: • pracę potokową • zewnętrzną jednostkę zmiennoprzecinkową • przewidywania rozgałęzień( tzw. BTB) • Oszczędzania energii

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

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

  49. 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).

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

More Related