TECHNIKA MIKROPROCESOROWA
CZĘŚĆ OGÓLNA:
1. Hierarchia pamięci w typowym komputerze.
pamięć lokalna nazywana rejestrem (najmniejsza lokalna pamięć położona najbliżej procesora)
pamięć podręczna (cache); wielopoziomowe do przechowywania z zapasem wyprzedzenia dane rozkazy do wykorzystania w przyszłości)
pamięć operacyjna (poza procesorem, lecz może być wbudowana w strukturę układu); RAM (pamięć umożliwiająca wpisywanie i odczytywanie informacji z czasem niezależnym od miejsca pobytu informacji w pamięci), ROM (pamięć umożliwiająca podczas współpracy z innymi elementami wyłącznie odczytywanie swojej zawartości), EEPROM (pamięć programowalna i kasowana elektrycznie), FLASH (programowalna elektrycznie, a kasowana ultrafioletem).
bufory pamięci zewnętrznych zorganizowane w pamięci operacyjnej i/lub w sterowniku pamięci zewnętrznej (cache dyskowy)
pamięci dyskowe i optyczne, macierze dyskowe
pamięci taśmowe
Podstawowe rejestry:
licznik rozkazów (adres komórki zawiera następny w kolejności rozkaz do wykonania; jego zawartość zwiększana o 1 po każdorazowym przesłaniu jego zawartości na wyjście adresowe; stare mikrokontrolery z 16- bit. licznikiem rozkazów mogą zaadresować 64 kB pamięci, nowsze 24- bit. mogą 16 MB pamięci)
wskaźnik stosu (jego zawartość jest najniższym adresem zapełnionego rejestru stosu; wektory zapełniają rejestr od najwyższych adresów; większość mikroprocesorów zawiera 10- 20 rejestrów w stosie; pojemność stosu też jest różna, w I8080 pjemność zależy od programisty)
akumulator (na jego zawartości wykonywane są operacje arytmetyczno- logiczne; jest to też nadajnik dla danych przekazywanych do układów we- wy oraz odbiornikiem dla danych odbieranych z układów we- wy; niektóre mikroprocesory maja większą ilość akumulatorów, ich liczba jest równa liczbie bitów słowa mikroprocesora)
rejestr wskaźników
rejestry bazowe, indeksowe, adresowe, pomocnicze
2. Omów ogólny cykl rozkazowy. Co to jest i w którym miejscu występuje przerwanie oraz na czym polega jego obsługa?
Cykl rozkazowy - opis w jaki sposób wykonuje się rozkaz; obejmuje wszystkie kolejne cykle podstawowe, potrzebne do pobrania i wykonania określonego rozkazu. Cykl rozkazowy ma 3 fazy:
pobieranie rozkazu z pamięci (aby rozkaz pobrać z pamięci potrzebna jest zawartość licznika rozkazów; zawartość licznika rozkazów wskazuje miejsce w pamięci w którym znajduje się kolejny rozkaz; zawartość tego licznika jest kierowana na szynę adresową)
wykonanie rozkazu
przerwanie i jego obsługa
Przerwanie - jest to sygnał, który może pojawić się w dowolnym momencie czasu. Z punktu widzenia komputera to sygnały pochodzące z otoczenia, które mówią, że coś się stało. Np. sygnał od sterownika czasowego, użytkownik nacisnął klawisz na klawiaturze, wysłano bajt informacji, odebrano blok informacji. Gdy przychodzi przerwanie, aby to przerwanie było obsłużone (czyli był wykonany specyficzny program, fragment związany z programem), to muszą być spełnione warunki:
musi być ustawione odblokowanie przerwań programowych (procesor jest w stanie obsłużyć owo przerwanie), nie dotyczy to przerwań, które będą obsługiwane zawsze (przekierowania niemaskowane). Jeżeli warunek odblokowania programowego jest spełniony to przerwania mogą być przyjmowane w postaci priorytetów. Część działań obsługi przerwań jest wbudowana.
przerwanie jest możliwe do obsłużenia
Jeżeli te dwa warunki są spełnione to wykonują się operacje: przechowanie śladu (dla Intela to licznik rozkazu, a dla Motoroli to wszystkie rejestry bez wskaźnika stosu) w licznikach rozkazu, wykonanie skoku (skok polega na wpisaniu do licznika rozkazu nowej wartości, która jest związana z przerwaniem i nosi nazwę wektora przerwań.
Wektor przerwań - jest to nowa zawartość licznika stanu, która wskazuje miejsce w pamięci, gdzie zacznie się program.
System przerwań pozwala na:
współpracę systemu komputerowego z otoczeniem
współdzielenie procesora między programami
3. Adres efektywny, tryb adresowania rejestrowy, pośredni, indeksowy
adres efektywny - adres który ostatecznie wskazuje lokalizację argumentu (danej) do przetworzenia adres efektywny = adres argumentu + modyfikatory + ..+ modyfikatory
adresowanie rejestrowe pośrednie - rozkaz zawiera adres rejestru, w którym jest przechowywany adres operandu (operand to działanie wykonywane na co najmniej dwóch wektorach) w pamięci tzn. wykonujemy operację nie na rejestrze tylko na tym co w nim tkwi w środku, adres efektywny = zawartość rejestru, która wskazuje nam gdzie jest argument rozkazu, adres wskazuje miejsce w pamięci gdzie jest argument adr=(adres 1 2n+adres2)
adresowanie indeksowe - jest sumą informacji adresowej zawartej w rozkazie (czyli przesunięcia) oraz stanu licznika rozkazów. Rolę licznika rozkazów spełnia rejestr indeksowy (rejestr o długości pozwalającej na zaadresowanie dowolnej komórki pamięci; zawartość rejestrów może być bardzo szybko dodana do przesunięcia)
4. Adresowanie pośrednie indeksowane i indeksowane pośrednie
Adresowanie pośrednie indeksowane - Adres = (Adres pośredni) + (I) - adres argumentu to suma adresu bazowego wskazanego przez adres posredni w rozkazie i zawartości rejestru indeksowego I
Adresowanie indeksowane pośrednie - Adres = (Adres pośredni + I) - adres argumentu jest wskazany przez sumę zawartości rejestru indeksowego I i adresu pośredniego w kodzie rozkazu
5. Co to jest przetwarzanie i jakie znasz typy przetwarzania?
Przetwarzanie oznacza, że obok programu musi być użytkownik, instytucja czyli urządzenie na którym to przetwarzanie się wykonuje.
sekwencyjne: zadanie po zadaniu, instrukcja po instrukcji zgodnie z ich kolejnością w programie
współbieżne: wiele zadań równocześnie, może być na wielu procesorach (pracujących razem lub rywalizujących); programy procesów wykonywane są równolegle współdzieląc zasoby (pamięć, komunikacja)
równoległe: rozbicie zadania na poziomie instrukcji ze względu na dane lub funkcję; wyróżnia się także potokowe i wektorowe
rozproszone: w sieci lokalnej realizowane przez węzły (przesyłanie komunikatów, etc)
zespołowe: sieć lokalna lub globalna z klientami, komputerami sieciowymi (SO + JAVA) oraz serwerami; aktywną rolę pełni człowiek
6. Model przetwarzania i architektura
Obok samego przetwarzania musi istnieć coś co zarządza przetwarzaniem.
Architektura - sposób skonfigurowania całego systemu w szczególności oprogramowania
scentralizowana (na jednej jednostce obliczeniowej dokonywane jest przetwarzanie)
rozproszone (różne składniki tworzące całość aplikacji są rozrzucone po sieci lokalnej)
sieciowe (dwu lub trzy warstwowe, dwuwarstwowe-klient/serwer-aplikacja na komputerze użytkownika a serwery w sieci)
warstwa pośrednicząca (warstwa usługowa, zmiany są dokonywane na serwerze biznesowym lub usługowym)
7. Przetwarzanie współbieżne
Polega na tym, że procesy ubiegają się , rywalizują o zasoby systemu komputerowego. Zasobami oprócz pamięci operacyjnej jest procesor, wtedy gdy jest to system jednoprocesorowy. Wszystkie systemy są systemami współbieżnymi z różnie realizowaną współbieżnością (UNIX LINUX). Jeżeli każde zadanie ma być realizowane w komputerze będziemy pakować do pamięci operacyjnej w sposób ciągły. To zadanie może się wykonywać w dowolnym momencie czasu, kiedy się zakończy definitywnie nie jest już potrzebne w pamięci i trzeba je usunąć, czyli przekazanie obszaru pamięci które zajmowało to zadanie do wolnych bloków, nie oznacza to wymazania zawartości bloku, tylko logiczne wskazanie że to miejsce stanie się blokiem w związku z tym, gdy w kolejce czeka następne zadanie do wykonania, to może się okazać że zadanie to wymaga większego obszaru pamięci niż to zadanie które tam było.
8. Mechanizm stronicowania sprzętowego
Mechanizm stronicowania jest jednym ze sposobów eliminacji fragmentacji pamięci operacyjnej. Jest połączony z tzw. pamięcią wirtualną. Polega na tym, że dzielimy pamięć operacyjną na stałej wielkości bloki zwane ramkami. Te ramki odpowiadają blokom programu, które nazywają się stronami. Wielkość adresowania: adres faktyczny który jest adresem w programie dzielimy na dwie części. Mamy określoną długość rejestru stron i pozostałą część, która jest adresem związanym z przesunięciem. Przesunięcie pozostaje niezmienne. Program jest tak złożony, że kolejne strony występują bezpośrednio po sobie. Natomiast program fizycznie w pamięci operacyjnej jest lokowany w różnych ramkach umieszczonych dowolnie. Po to aby znaleźć w którym miejscu pamięci faktycznie znajduje się dana trzeba dokonać konwersji. Dokonuje się konwersji lewej, bardziej znaczącej części adresu argumentu na fizyczny adres ramki. Wszystko to zapewnia nam sprzęt. Jest to sprzętowy mechanizm stronicowania.
9. Mechanizm segmentacji
Mechanizm segmentacji jest jednym ze sposobów eliminacji fragmentacji pamięci operacyjnej. Dynamicznie wskazujemy początek obszaru wolnego w który coś „pakujemy” i dzielimy kod programu na segmenty: dane w innym segmencie, ewentualnie stos w innym segmencie. Dopasowujemy wielkość segmentów do wolnej przestrzeni pamięci operacyjnej która aktualnie jest dostępna. Mechanizm segmentacji można połączyć z mechanizmem stronicowania (mogą występować zamiennie).
Inaczej:
Dla każdego kawałka programu deklarujemy segment kodu, baza tego segmentu (adres bazowy), segment danych, segment stosu. Od wartości adresu bazowego zaczynają się obszary których dotyczy nazwa tego segmentu. W kodzie rozkazu zawarte są przesunięcie względem początku segmentu. Przykład: Dla procesora 8086 16bitowego utworzyć adres 20 bitowy. Jak? Przesuwa się zawartość rejestru segmentowego 4 pozycje w lewo i wykonuje sumę tek przesuniętego segmentu i początku segmentu w chwili przesunięcia. Przesunięcie o lewo o 4 pozycje odpowiada mnożeniu przez 16. tak obliczony adres 20 bitowy dla procesora 8086 16bitowego pozwala zaadresować bezpośrednio 1MB pamięci.
10. Szeregowa transmisja synchroniczna i asynchroniczna.
W przypadku transmisji szeregowej asynchronicznej odstępy czasu pomiędzy kolejno przesyłanymi wektorami informacji są przypadkowe. W takim wypadku konieczna jest synchronizacja odbiornika z nadajnikiem dla każdego wektora informacji oddzielnie. Przy transmisji szeregowej synchronicznej kolejne wektory informacji przesyłane są bezpośrednio po sobie. Ciąg kolejno przesyłanych wektorów jest dzielony na bloki o długości od kilku do kilkudziesięciu wektorów. Kolejne wektory są zazwyczaj gromadzone w rejestrze buforowym nadajnika do chwili skonsumowania bloku, który jest następnie wyprowadzany z określona prędkością. Nadajnik i odbiornik synchroniczne mają 1 lub 2 rejestry, do których można wprowadzać wektory synchronizujące.
INTEL:
11. Podaj ogólną organizację procesora I8080
Szyny:
adresowa: 16 bitowa
danych: 8 bitowa
sterująca: sygnały => SYNC(wy)- wyznacza początek cyklu rozkazowego; DBIN(we)- sygnalizuje, że magistrala danych pracuje jako wejście; READY(we)- gotowość modułów zewnętrznych; WAIT(wy)- przejście mikroprocesora w stan oczekiwania; HOLD(we)- wstrzymanie realizacji cyklu rozkazowego i zwolnienie magistrali; HLDA(wy)- potwierdzenie wstrzymania cyklu rozkazowego; WR(wy)- wyjście zanegowanego zapisu do modułów zewnętrznych; INT(we)- wejście zgłoszenia przerwania; INTA(wy)- włączenie systemu przerwań (gotowości przyjęcia i obsługi przerwania); RESET (we)- powoduje ponowną inicjalizacje układu; [Q1,Q2](we)- wejścia generatora zegara taktującego.
Rejestry:
16 bitowe: PC(licznik rozkazów), SP(wskaźnik stosu)
8 bitowe : B,C, tworzące pary D,E
16 bitowe: H,L służy do adresowania pamięci w trybie rejestrowym pośrednim
8 bitowe: A(akumulator) F(rejestr znaczników stanów) IR(rejestr rozkazów)
Ponadto w skład mikroprocesora wchodzi jednostka ALU (obliczenia arytmetyczne/logiczne), układ sterowania i różne rejestry pomocnicze niewidoczne dla programisty.
Elementy współpracujące z jednostką centralną:
generator cyklu podstawowego (I8224)
sterownik systemu (I8228)
12. Jak jest realizowane adresowanie pośrednie w procesorze I8080
Adresowanie rejestrowe, pośrednie, dla którego rozkaz podaje adres pary rejestrów zawierających adres operandu w pamięci, przy czym bardziej znaczące bity adresu są w pierwszym rejestrze pary, a mnie znaczące w drugim.
13. Wyjaśnij rolę sygnału READY oraz WAIT w mikroprocesorze 8080.
Rozpatrzmy ciąg stanów przypadający na fazę pobierania rozkazu, w przypadku gdy mikroprocesor 8080 współpracuje z powolniejszą od niego pamięcią. Jeżeli pamięć nie udostępniła jeszcze adresowanego bajtu, to sygnalizuje to mikroprocesorowi za pomocą sygnału sterującego READY = 0. Jeżeli w danym stanie przy Q2 (drugi sygnał z dwufazowego generatora cyklu podstawowego) jest READY = 0 to mikroprocesor przechodzi w stan oczekiwania, co sygnalizuje sygnałem sterującym WAIT = 1. Podczas stanu oczekiwania mikroprocesor nie wykonuje przez szereg cykli podstawowych żadnych mikrooperacji, testując jednocześnie każdorazowo dla Q2 = 1 stan linii READY i utrzymując wartości wszystkich sygnałów wyjściowych. Po wyprowadzeniu rozkazu na magistrale danych, pamięć ustawia sygnał READY = 1. Stan oczekiwania kończy się jednakże dopiero z impulsem Q1 = 1, następującym po impulsie Q2 = 1, przy którym było już READY = 1. Do stanu oczekiwania mikroprocesor przechodzi też wtedy, gdy wymiana danych z rejestrami powolnych układów we- wy nie może być dokonana po zakończeniu stanu.
14. Wyjaśnij rolę sygnału HOLD oraz HLDA w mikroprocesorze 8080.
Stan zawieszenia HOLD umożliwia realizację operacji we- wy z pośrednim sterowaniem przez mikroprocesor. Generowany jest przez sterownik DMA (odpowiada za wykorzystanie magistrali danych i magistrali adresów do wymiany danych i adresów bezpośrednio między pamięcią a układami we- wy bez udziału procesora). Przy stanie HOLD = 1 wygenerowanym przez DMA wywoływane jest odcięcie magistrali od mikroprocesora (może on dalej wykonywać te operacje, które nie wymagają wykorzystania magistrali). Jeśli HOLD = 1, to narastające zbocze sygnału Q1 ustawia HLDA = 1, które zawiesza działanie magistrali i powoduje odłączenie jej od mikroprocesora. Ze stanu zawieszenia wychodzi się w drodze odwrotnej, czyli pojawiający się sygnał HOLD = 0 sprawa, że przy najbliższym zboczu narastającym Q2 nastąpi HOLD = 0, a przy narastającym zboczu Q1 nastąpi HLDA = 0, czyli ponowne przyłączenie magistrali do mikroprocesora.
15. Sterownik systemu 8228 współpracujący z mikroprocesorem. 8080
Zasadniczym przeznaczeniem sterownika 8228 jest buforowanie magistrali danych I8080 i generowanie sygnałów sterujących dla pamięci i układów we- wy. Konieczność stosowania wzmacniacza buforowanego wynika z ograniczonej obciążalności prądowej końcówek DATA mikroprocesora 8080 (nie przekraczającej 1,9 mA, a układu 8228 10 mA). Za pomocą sygnału wejściowego BUSEN (Bus enable) można poza tym, poprzez układ bramek doprowadzić wzmacniacze buforowe do stanu wysokooporowego wyjścia, „zawieszając” tym magistrale danych. 8228 jest po części pośrednikiem między pamięciami i układami I/O. Poprzez sygnał DBIN lub WR mikroprocesor 8080 może wymusić w 8228 generację sygnałów odpowiednio do czytania (MEM R, I/O R, INTA) lub pisania (MEM W, I/O W)
16. Objaśnij znaczenie bitów rejestru wskaźników mikroprocesora I8080
bit CY (carry), bit przeniesienia, nastawiany na wartości równej 1, jeżeli:
ostatnią operacją było dodawanie, w wyniku którego powstało przeniesienie z bitu najbardziej znaczącego. Znajomość tego przeniesienia umożliwia dodawanie 2-bajtowych operandów;
ostatnią operacją było odejmowanie, w wyniku którego nie powstało przeniesienie z najbardziej znaczącego bitu. Sytuację taką nazywamy powstaniem pożyczki, gdyż występuje ona wtedy, gdy odjemna jest mniejsza od odjemnika. Pożyczka jest więc zanegowanym przeniesieniem. Znajomość pożyczki umożliwia wykonanie operacji odejmowania 2-bajtowych operandów;
bit P (parity), bit parzystości, nastawiany na wartości równej 1, jeżeli liczba jedynek w bajcie będącym wynikiem operacji jest parzysta, oraz na wartości równej 0, jeżeli jest nieparzysta;
bit AC (auxiliary carry), pomocniczy bit przeniesienia sygnalizujący przeniesienie z bitu 3 (tzn. z najmniej znaczącego kęsu (nibble) BCD do bitu 4 dla ostatniej operacji. Bit AC umożliwia wykonywanie operacji arytmetycznych na upakowanych słowach BCD;
bit Z (zero), bit zerowania sygnalizujący za pomocą wartości 1, że w wyniku ostatniej operacji otrzymano 0 i przyjmujący wartość 0 w przeciwnym przypadku;
bit S (sign), bit znakowy, który jest ustawiany na wartości równej najbardziej znaczącemu bitowi wyniku otrzymanego po wykonaniu ostatniej operacji;
17. Podstawowe rejestry i tryby pracy w 8253
Element to trzy 16- bit. liczniki (rejestry) odejmujące, każdy z nich można nastawić indywidualnie do liczenia w kodzie binarnym prostym lub kodzie BCD (zliczaniu podlegają opadające zbocza zegara licznika; max. częstotliwość zegarowa < 2 MHz; zliczanie odbywa się przy GATE = 1; wyzerowanie OUT = 0). Format słowa sterującego i mody = RYSUNEK.
Mod0: Żądanie przerwania po wyzerowaniu licznika, czyli po zaprogramowaniu licznika modu jest OUT = 0 do czasu wyzerowania licznika, po wyzerowaniu OUT = 1 do momentu ponownego załadowania licznika
Mod1: Pojedynczy impuls o programowalnej długości; następujący z narastającym zboczem GATE, sprawia że OUT = 0. Wyzerowanie licznika powoduje, że OUT = 1. Zerowy impuls może być wydłużany przez następne zbocza narastające GATE (po każdym takim zboczu OUT = 0 dla całkowitej liczby impulsów wprowadzanej do licznika).
Mod2: Dzielnik impulsów- OUT = 0 dla jednego sygnału CLK, przy czym między kolejnymi OUT = 0musi znajdować się n impulsów CLK, gdzie n to początkowa zawartość licznika
Mod3: Generator impulsów- to co przy Mod2, ale OUT = 1 do chwili zmniejszenia początkowej zawartości licznika do połowy lub (w przypadku nieparzystej zawartości początkowej) do wartości (n - 1) / 2
Mod4: Programowo generowany pojedynczy impuls jednostkowy- po zaprogramowaniu modu OUT = 1. Po załadowaniu zawartości licznika rozpoczyna się zmniejszanie jego zawartości. Wyzerowanie licznika generuje impuls jednostkowy OUT = 0
Mod5: Sygnałowo generowany pojedynczy impuls jednostkowy- Zmniejszanie zawartości licznika rozpoczyna się po narastającym zboczu GATE. Wyzerowanie licznika generuje impuls jednostkowy OUT = 0, ale wygenerowanie to może być oddalane przez kolejne zbocza narastające GATE
18. Wyjaśnić pracę portu A pracującego jako wyjście w trybie 1 układu 8255.
Tryb numer 1 układu 8255 służy do realizacji operacji we/wy z przerwaniem przy jednym kierunku przesyłania danych. Potrzebne do tego celu sygnały zadania przerwania, statusu oraz strobu są wyprowadzane z wykorzystaniem linii bramy C. Port A (podobnie jak B) składa się z bramy 8-bit do przesyłania danych oraz pomocniczej bramy 5-bit do przesyłania sygnałów sterujących , ........... 8-bit jako wejścia lub wyjścia.
19. Jak działa układ 8214 w mikroprocesorze I8080?
8214 - układ kontroli przerwań priorytetowych zaprojektowany do współpracy z mikroprocesorem I8080;
Układ ma następujące linie we/wy:
R0..R7: sygnały we. Żądania przerwania
B0,B1,B2: sygnały we. Określają poziom masowania przerwań
SGS: sygnał we. Rejestru sterującego
INTE: sygnał we. Zezwalający na przyjęcie przerwania
ECS: sygnał we. Zapis słowa do rejestru sterującego
ELR: sygnał we. Blokujący układ kontroli przerwań
ETLG: sygnał we. Umożliwiający włączenie modułu w łańcuch przerwań
ENLG: sygnał we. Blokujący następne moduły w łańcuchu przerwań
A0, A1, A2: sygnały wyj. Określają kod bieżącego przerwania
INT: sygnał wyj. Żądania przerwania
Moduł 8214 zawiera:
8 bit rejestr zgłoszeń przerwania
4 bit rejestr poziomu maskowania przerwań
3 bit rejestr priorytetowy współpracujący z rejestrem zgłoszeń
3 bit komparator priorytetów
20. Jak działa układ 8259 w systemie mikroprocesorowym 8080?
Układ 8259 służy do generacji żądania przerwań dla systemu mikroprocesorowego 8080. Przekazuje on do 8080 rozkaz skoku CALL do programu obsługi dla niezamaskowanego zgłoszenia przerwania o największym priorytecie. Współpraca przebiega następująco:
Na jednym lub kilku wejściach IR0...IR7 pojawiają się zgłoszenia przerwań IRi = 1 w wyniku czego zostaja ustawione odpowiednie bity rejestru zgloszeń przerwań
W odpowiedzi element 8259 dokonuje arbitrażu priorytetów zgłoszeń i przesyła do 8080 sygnał INT = 1
Sterownik 8228 systemu I8080 potwierdza otrzymanie tego sygnału za pomocą INTA = 0
Po otrzymaniu INTA = 0 element 8259ustawia bit rejestru przerwań obsługiwanych dla zgłoszenia o najwyższym priorytecie, zerując odpowiadający mu bit w rejestrze zgłoszeń przerwań. Następnie wprowadza na magistrale danych kod operacyjny (pierwszy bajt) rozkazu CALL skoku do programu obsługi przerwania dla zgłoszenia o najwyższym priorytecie
W odpowiedzi na kod operacyjny rozkazu CALL 8080 generuje kolejno dwa sygnały INTA = 0.
Każdy z tych sygnałów sprawia, że 8259 wprowadza na magistrale danych kolejne bajty zaprogramowanego adresu programu obsługi przerwania (pierwszy INTA = 0 powoduje wprowadzenie MSB a drugi LSB)
8080 rozpoczyna wykonywanie programu obsługi przerwania. Ustawiony bit rejestru przerwań obslugiwanychzostaje zerowany dopiero po zakończeniu programu obsługi przerwania.
Jeżeli w trakcie obsługi przerwania pojawi się przerwanie o niższym priorytecie, program zostanie przerwany i rozpocznie się realizacja programu żądania przerwania o wyższym priorytecie
21. Transmisja asynchroniczna 8251
Dla nadajnika w przypadku transmisji asynchronicznej bity wyzwalane linią nadajnika są wysuwane przy pomocy zegara (opadającym zboczem) Istnieje możliwość takiego zaprogramowania, aby wysyłanie odbywało się nie z częstotliwością zegara, a było 16 razy wolniejsze albo 64 razy wolniejsze. Częstotliwość zegara odbiornika jest 16x większa od częstotliwości znaków odbieranych, robi się to aby zminimalizować ewentualne błędy podczas odbioru w transmisji asynchronicznej nadaje się znaki, potem jest przerwa to dopuszcza że zegar odbiornika i nadajnika nie muszą być jednakowe
22. Transmisja synchroniczna 8251
Transmisja ta zakłada, że jeśli zabraknie danych to „luki” wypełniane są znakami synchronizacji (służą do synchronizowania odbiornika). Przed odbiorem danych należy układ zsynchronizować.
- synchronizacja bitowa (nie przewiduje się, zakłada się że zegar odbiornika jest zgodny co do częstotliwości i fazy z zegarem nadajnika, powoduje to że zegar musi być dostarczony linią transmisyjną.
- synchronizacja bajtowa (ma na celu tak synchronizować odbiornik, aby wiedział że pierwszy bit odebrany jest rzeczywiście bitem pierwszym. Celem jest ustalenie który bit jest bitem pierwszym)
23. Procesor I8086 - rys str. 6
Szyny:
adresowa: 20- bitowa
danych: 16- bitowa
Adresy segmentowe:
CS (Code Segment register)- rejestr segmentu programu
DS (Data Segment register)- rejestr segmentu danych
SS (Stack Segment register)- rejestr segmentu stosu
ES (Extra Segment register)- dodatkowy rejestr segmentowy
Rejestry ogólnego przeznaczenia:
AX, BX, CX, DX - tworzą pary bajtow
AX- Akumulator
BX- rejestr bazowy
CX- rejestr zliczający
DX- rejestr danych
SP- wskaźnik stosu
BP- wskaźnik bazy
SI- rejestr indeksowy źródla
DI- rejestr indeksowy celu
F- rejestr znaczników
24. Obliczanie adresu efektywnego w 8086.
Obliczanie adresu efektywnego przy mechanizmie stronnicowania. Zawartość rejestru segmentowego jest przesuwana 4 pozycje w lewo i wykonywane jest sumowanie dwóch wartości 20-bitowego adresu i 6-bitowego adresu przesunięcia. Razem tworzy to 20-bitowy adres efektywny argumentu.
25. Rejestry wewnętrzne sterownika przerwań 8259.
Programowalny sterownik przerwań przeznaczony do prowadzenia arbitrażu między zgłoszeniami przerwań z ośmiu różnych źródeł, maskowania wybranych zgłoszeń przerwań, generacji żądania przerwań dla systemu I8080, przekazywania I8080 rozkazu skoku CALL do programu obsługi dla niezamaskowanego zgłoszenia przerwania o największym priorytecie.
Rejestry:
IIR- rejestr zgłoszeń przerwań
ISR- rejestr przerwań oslugiwanych
IMR- rejestr maskowania przerwań
rejestr buforowy danych
rejestr zgłoszeń przerwań może zostać odczytany po wysłaniu z mk do 8259 słowa sterującego OCW3, w którym B1=1, B0=0
rejestr przerwań obsługiwanych jest czytany po OCW3; B1=1, B0=1
Czytanie rejestru maskowania przerwań: A0=1, RD=0, WR=1, CS=0.
26. Jaką rolę pełnią słowa rozkazowe ICW1, ICW2 oraz kiedy używamy słowa ICW3 w programowaniu działania sterownika przerwań 8259.
Słowa ICW1 i ICW2 (ICW- Initialization Command Word) pozwalają określić adres wektora przerwania i jego organizację:
ICW1 (D7....D0)- podaje się na adres parzysty
D7, D6, D5- określają wartości bitów A7, A6 i ew. A5 mniej znaczącego bajtu adresu początku programu obsługi przerwania
D2- określa odstęp pomiędzy początkami programów obsługi przerwań (0- 4 komórki, 1- 8 komórek)
D1- określa rozbudowę układu sterowania przerwaniami (1- jeden 8259, 0- kilka 8259)
D3, D0- niewykożystywane
Wartości (A5), A4, A3, A2, A1, A0 określa sam moduł 8259 w zależności od priorytetu
ICW2- podawany na adres nieparzysty; zawiera bardziej znaczący bajt adresu początku podprogramu obsługi przerwania
ICW3- określa strukturę układu kontroli przerwań. Dla układu MASTER D7...D0 - 1 wskazuje, że na wejście SI jest dołączony układ SLAVE; dla układu SLAVE - D2, D1, D0 wskazuje w postaci binarnej na numer wejścia IR, do którego jest podłączony ten moduł SLAVE
27. Proces obsługi przerwań wewnętrznych od zewnętrznych w I8086.
Przerwania wewnętrzne generowane są przez sam procesor (z wyjątkiem NMJ). Następuje skok do podprogramu, którego adres znajduje się we właściwym wektorze.
Przerwanie zewnętrzne jest zgłoszone wejściem INT, w momencie jego zgłoszenia są realizowane dwa cykle magistrali podczas których w miejsce pojawienia się strobu czytaj pamięć pojawia się sygnał INTA (aktywny sygnał ) Pojawia się jedno INTA w jednym cyklu magistrali a drugie INTA w drugim cyklu magistrali. Pierwsze INTA służy do poinformowania urządzenia wystawiającego przerwanie o tym, że przerwanie zostało przyjęte. Podczas drugiego INTA na magistrali danych procesor oczekuje na numer wektora przerwania. Urządzenie wystawiające musi podstawić na szynę danych numer jednego z wektorów powyżej 8 i poniżej 32.
MOTOROLA M68HC11
28. Organizacja M68HC11 oraz podstawowe tryby pracy.
mikrokontroler M68HC11 składa się z następujących podzespołów:
procesor 8 bitowy
pamięć operacyjna RAM (do 1kB), ROM (do 24kB), EEPROM, różne wartości w zależności od typu układu
5 portów do komunikacji z otoczeniem A, B, C, D, E (w pytaniu ni każą ich opisywać, więc ich nie opisaliśmy) tryb testujący
Rejestry podstawowe:
A, B: 2 akumulatory 8- bitowe tworzące 16- bitowy akumulator D
IX: 16- bitowy rejestr indeksowy X
IY: 16- bitowy rejestr indeksowy Y
SP: 16- bitowy wskaźnik stosu
PC: 16- bitowy licznik rozkazów
CCR: 8- bitowy rejestr wskaźników (od prawej: C, V, Z, N, I, H, X, S)
Tryby pracy (tym steruje poziom (stan) logiczny nóżek MODA i MODB odczytywany tuż przed narastającym zboczem sygnału na nóżce RESET, co gwarantuje brak opóxnienia czasowego momentu odczytu w stosunku do chwili rozpoczęcia pracy po czasie):
podstawowy tryb pracy, wszystkie 5 portów pracuje w przewidziany do tego sposób (podstawowy). Program który jest wykonywany w mikrokontrolerze jest pobierany z pamięci ROM. Jest to tryb pracy nazywany trybem pracy układu wbudowanego (dedykowanego). Cały system sterowny jest zdarzeniami zewnętrznymi.
rozszerzony, ten tryb pracy pozwala na przełączanie działania programu między pamięcią wbudowaną a pamięcią dołączoną do mikrokontrolera. Do tego celu trzeba użyć dodatkowego układu PERI który pozwala wyeksportować poza układ stan niektórych linii. Układ ten pozwala wyprowadzić na zewnątrz 16 bit. Linię adresową i linię danych na zewnątrz. Nóżka (E) określa z której pamięci należy pobrać program.
29. Funkcje podstawowych rejestrów M68HC11.
- rejestr konfiguracyjny (pozwala na relokację danych pamięci, układ z fabrycznymi nastawami w momencie włączania zasilania będzie obszar pamięci RAM będzie zajmował pierwsze 1/4 kb (od 0 do $0FF)
- rejestr INIT definiuje w którym miejscu pamięci ma znajdować się pamięć RAM, oraz w którym miejscu w pamięci ma znajdować się tablica rejestrów
- rejestr akumulatora (A i B) 8 bitowe (-licznik rozkazów(przechowuje adres następnego rozkazu do wykonania), wskaźnik stosu (wskazuje miejsce w pamięci RAM które jest wierzchołkiem stosu) rejestr warunków (jedna grupa powoduje jakikolwiek efekt arytmetyczny, druga służy do maskowania przerwań lub zablokowania operacji STOP)
30. Jakie funkcje pełni obszar górny pamięci (FFF0-FFFF).
Umieszczane są tam adresy początku programu po zaistnieniu resetu:
FFF0, FFF1 - przerwanie maskowalne typu real- time
FFF2, FFF3 - przerwanie maskowalne rezerwowe zewnętrzne
FFF4, FFF5 - przerwanie zewnętrzne niemaskowalne
FFF6, FFF7 - przerwanie niemaskowalne programowe
FFF8, FFF9 - przerwanie niemaskowalne, nielegalny rozkaz
FFFA, FFFB - COP WatchDog Timeout
FFFC, FFFD - Clock Monitor Fail
FFFE, FFFF - External RESET
31. RESET - cztery typy ponownej inicjalizacji.
Reset to żądanie ponownej inicjalizacji mikrokontrolera. Pojawienie się jakiegokolwiek resetu rezerwujenastępne 4 z 21 adresów. Podzespoły, rejestry i porty mikrokontrolera ustawiają się w stan początkowy. Dzieli się na 4 zasadnicze typy:
Power on reset: następuje przy włączaniu zasilania, zasadniczo dzieli się na ciepły (zasilanie spadło i wróciło) i zimny (włączenie zasilania); sygnał trwa minimum 6 taktów zegarowych; po ersecie otrzymuje nową wartość FFFE lub FFFF
External hardware reset: reset zewnętrzny, czyli np. magiczny guziczek w obudowie jednostki centralnej; po resecie otrzymuje nową wartość FFFE lub FFFF
Clock monitor: monitorowanie zegara, sprawdza czy procesor działa (jeśli działa wolno lub się zatrzymał to resetuje) lub jeżeli zegar spadł częstotliwości 10kHz; po resecie otrzymuje nową wartość FFFC lub FFFD
Computer operating properly: związany z wyzerowaniem rejestru WatchDog; zapobiega pojawieniu się martwych pętli w mikrokontrolerze; Licznik zlicza wstecz impulsy zegarowe i musi być co pewien czas ponownie ustawiany, bo inaczej nastąpi ponowna inicjalizacja mikrokontrolera; po resecie otrzymuje nową wartość FFFA lub FFFB
32. Działanie M68HC11 związane z obsługą przerwań.
Przerwanie będzie obsłużone, jeśli nie jest aktualnie obsługiwane przerwanie o wyższym priorytecie lub M68HC11 nie znajduje się w stanie RESET, a ponadto bity I, X odpowiednio nie są ustawione w stan blokowania przerwań (na 1)
W momencie rozpoczęcia obsługi przerwania następuje ustawienie bitu I (i bitu X, jeśli to przerwanie niemaskowalne) na 1, co oznacza blokadę tej grupy przerwań oraz zapamiętanie na stosie wszystkichrejestrów procesora (z wyjątkiem SP)
Następnie na podstawie priorytetu przerwań (można go zmienić programowo dla przerwań niemaskowalnych) zostaje wyznaczony wektor przerwań i pobranie nowej wartości (adresu programu obsługi przerwania) z górnego obszarupamięci do licznika PC
Program obsługi przerwania powinien być zakończony rozkazem RTI, który odtwarza ślad (rejestry procesora) ze stosu.
33. Opisz zachowanie się buforów nadajnika i odbiornika oraz rejestrów sterujących podczas realizacji transmisji asynchronicznej w M68HC11.
Nadajnik: Po wpisaniu danej do rejestru SCDR (rejestr równoległy danych nadawanych) sterowanie czeka, aż rejestr przesuwny opuści ostatni bit poprzedniego nadawanego znaku. Wówczas nastąpi przepisanie danej z rejestru SCDR do rejestru przesuwnego, ewentualnie przepisanie 9- ego bitu danej do rejestru SCCR1 (pierwszy rejestr sterujący) i uzupełnienie znaku bitem startu lub stopu. Tak sformatowany znak jest wysyłany w linię bit po bicie zgodnie z taktem zegara wyznaczającego prędkość transmisji
Odbiornik: Rejestr przesuwny gromadzi bity (próbkowane zegarem o 16- krotnie większej prędkości) odbieranego znaku i po skompletowaniu przepisuje bity danych do rejestru SCDR i ewentualnie wykorzystuje 9- ty bit do realizacji „budzenia” odbiornika
35. Do czego służy i jaka jest podstawowa budowa podzespołu transmisji synchronicznej M68HC11?
SPI
Format danych powinien spełniać warunki:
dane są jednocześnie nadawane i odbierane
sygnał zegara podawany na linię SCK przed układ pełniący rolę zarządzającego transmisją - MASTER - synchronizuje przesuwanie i próbkowanie danych na linii transmisji szeregowej w układzie nadajnika i w odbiornikach
sygnały MOSI i MISO sygnalizują obecność danej w linii
Wykorzystywane są 3 rejestry:
SPC: rejestr sterujący, ustawia tryb pracy, blokadę przerwań, także oprogramowanie może ustalić jeden z 4 formatów fazy i polaryzacji zegara za pomocą 2 bitów w rejestrze sterującym
SPSR: rejestr statusowy, sygnalizuje zakończenie transmisji każdego bajtu i ewentualnie błędy
SPDR: rejestr danych 8 bitowy
Działanie:
dane nadawane w postaci transferu niezależnych bajtów (każdy z bajtów nadawany synchronicznie, tzn. w rytm sygnałów zegarowych generowanych przez układ MASTER)
rozpoczęcie transmisji bajtu poprzez ustawienie linii SS (slave select) w stan niski
możliwość zaprogramowania 4 różnych formatów kombinacji polaryzacji i fazy zegara SCK przy użyciu dwóch bitów CPOL i CPHA rejestru sterującego SPCR
przerwania są generowane gdy w SPCR jest ustalony bit SPE i SPIE i gdy skończy się transmisja bajtu (bit SPIF=1 w SPSR) oraz gdy wystąpi błąd z usiłowaniem przejęcia kontroli nad magistralą przez więcej niż 1 układ MASTER
37. Opisz działanie przetwornika A/C w mikrokontrolerze M68HC11
Inicjacja modułu przetwornika:
W rejestrze konfiguracyjnym mikrokomputera OPTION znajduje się bit ADPU odpowiedzialny za pracę modułu przetwornika (włącza zasilanie dla tego modułu). Wyzerowanie tego bitu blokuje pracę przetwornika. Ustawienie tego bitu włącza moduł przetwornika. Przetwornik jest gotowy do pracy dopiero po około 100 μs od ustawienia bitu ADPU. Czas ten jest potrzebny na ustalenie się stanów napięć na elementach przetwornika.
Cykl przetwarzania:
Cykl przetwarzania jest inicjowany przez zapisanie bajtu do rejestru sterującego ADCTL, wartość bajtu określa tryb w jakim przetwarzanie zostanie zrealizowane. Pojedynczy cykl przetwarzania składa się z czterech konwersji. Po zakończeniu przetwarzania ustawiany jest bit CCF rejestru sterującego. Dane są dostępne w rejestrach wyników. W zależności od trybu pracy przetwarzanie może być automatycznie kontynuowane lub nie.
Tryby pracy:
Tryb jednokanałowy: W trybie jednokanałowym przetwarzany jest tylko jeden kanał, wybierany zawartością rejestru sterującego. Cztery wartości stanu kanału dla kolejnych chwil czasu są dostępne w rejestrach wyników. Jest możliwa automatyczna kontynuacja konwersji w zależności od ustawień w rejestrze sterującym. Dane z nowego cyklu przetwarzania pokrywają dane z poprzedniego cyklu.
Tryb wielokanałowy: W trybie wielokanałowym przetwarzane są cztery kanały, wybierane zawartością rejestru sterującego; pierwsza lub druga czwórka. Wartości stanów poszczególnych kanałów są dostępne w rejestrach wyników. Jest możliwa automatyczna kontynuacja konwersji w zależności od ustawień w rejestrze sterującym. Dane z nowego cyklu przetwarzania pokrywają dane z poprzedniego cyklu.
PROCESORY ŚIECIOWE:
38. Porównaj układ ASIC i NP (Net Proccessor)
ASIC
zalety: przydatne tylko w danym miejscu, dostosowany do potrzeb systemu, optymalizacja pod katem działania danej aplikacji
wady: kosztowna technologia, trudno modyfikowalny, słabo skalowany
NP:
zalety: uniwersalny, niskie koszty produkcji i uruchamiania, relatywnie krótki czas implementacji
wady: wysoka cena jednostkowa, wykorzystanie uzależnione od programisty, stosunkowo nowa technologia
połączenie ASIC + NP: spore możliwości przetwarzania danych, wąski zakres zastosowań, trudna produkcja, łatwy w oprogramowaniu
39. Podaj sposoby konfiguracji NP w systemach telekomunikacji
pojedynczy NP:
proste aplikacje
klasyfikacja przy współpracy z Switch Fabric
implementacje stosu protokołów L2/ L3
proste przetwarzanie
NP szeregowo:
przetwarzanie rozbite na następujące po sobie etapy
zaimplementowane na różnych NP. / uEngine
wąskie gardło systemu
NP równolegle:
przetwarzanie odbywa się w kilku NP / uEngine jednocześnie
zwiększenie przepustowości
potencjalne problemy z synchronizacją i serializacją danych
Spens Corp.
4