aski full doc


8080/8085/ZILOG - STOS - jest pamięcią typu zapis/odczyt przyjmującą dane w określonym porządku - od adresy wyższego do niższego. Dane na stos wysyła się poleceniem PUSH, odczyt danych ze stosu następuje w kolejności odwrotnej do zapisu (odczyt za pomocą polecenia POP). Jako stos wykorzystywana jest pamięć RAM. Komórki pamięci są adresowane specjalnym rejestrem liczącym, zwanym wskaźnikiem stosu (SP - stack pointer), którego zawartość można zwiększać lub zmniejszać programowo (Pop, Push) oraz automatycznie, w trakcie obsługi przerwania). Pamięć stosową można wykorzystać w trakcie obsługi przerwań, gdzie pamięć ta służy do przechowania adresów powrotnych dla programu głównego. Pamięć stosowa wykorzystywana jest w trakcie pracy krokowej procesora. MIKROPROGRAMOWANE STEROWANIE - Obliczenia arytmetyczne można wykonać w zapisie binarnym, a bieżący wynik może być warunkiem dla realizacji kroku następnego w sekwencji sterowania. To znaczy, że realizacja programu może przebiegać alternatywnie względem wartości badanej. Zadania wykonywane w jednym takcie zegarowym zwane są mikrooperacjami. Sekwencja takich mikrooperacji zwana jest mikroprogramem dla zadanej operacji arytmetycznej. Na wejściu podany zostaje wektor binarny będący adresem początku mikroprogramu odpowiadającego temu rozkazowi. Kod rozkazu zostaje wprowadzony do Rejestru Adresu MikroRozkazów (RAMR), którego zawartość adresuje komórkę pamięci ROM. Zawartość wskazanej przez RAMR komórki pamięci zostaje wprowadzona do Rejestru MikroRozkazu (RMR). Jego zawartość zadaje Jednostce Arytmetyczno Logicznej (ALU) kod mikrooperacji oraz steruje pracą układu cyfrowego. Na wejścia programujące, bramkujące, taktujące itp., podawane są wartości sygnałów P1 - Pk-1. Ostatni z tych sygnałów (Pk) steruje przebiegiem mikroprogramu. Gdy Pk=0 do RAMR wchodzi wektor adresowy następnego mikrorozkazu (i+1) w ciągu mikroprogramu dla danego rozkazu. W przedostatnim kroku odczytane zostaje następny kod rozkazu a wostatnim mikroprogram, syganałem Pak=1 otwarta zostaje droga transmisji dla pierwszego wektora drugiego rozkazu. CYKL PRACY PROCESORA - oznacza powtarzające się cyklicznie działania procesora związane z przetwarzaniem zapisanego w pamięci programu. Praca procesora zaczyna się od fazy pobrania (Fetch) kodu rozkazu (operacji), który zostaję zamieniony na ciąg mikrooperacji procesora, tworzących fazę wykonawczą rozkazu (Execute). W trakcie realizacji programu procesor korzysta z pamięci zewnętrznych (ROM i RAM) oraz z pamięci wewnętrznej (cache) składającej się z bloku rejestrów ogólnego przeznaczenia. W czasie pobrania do rejestru rozkazowego procesora przenoszone są z pamięci operacyjnej od 1 do 3 bajtów kodu rozkazu. W fazie wykonawczej rozkaz jest dekodowany i zamieniany na odpowiadający mu ciąg operacji. Każdy cykl rozkazowy procesora 8080 zawiera od 1 do 5 cykli maszynowych. Faza pobrania składa się z tylu cykli maszynowych ile bajtów musi być przesłanych z pamięci do procesora w ramach jednego rozkazu. Czas trwania cyklu wykonawczego zależy od rodzaju pobranego rozkazu. Niektóre rozkazy zawierają tyle cykli maszynowych ile faza pobrania. Inne zawierają cykle dodatkowe związane z odczytem lub zapisem danych z/do pamięci czy też portu we/wy. Liczba odwołań procesora do pamięci lub portu we/wy określa minimalną liczbę cykli maszynowych rozkazu. Każdy rozkaz odwołuje się co najmniej raz do pamięci w celu pobrania jego kodu. Pobrany rozkaz zawiera w pojedynczym słowie ośmiobitowym kod rozkazu oraz adres rejestru, którego zawartość jest dodawana do bieżącej zawartości rejestru akumulatorowego. W trzech cyklach rozkazowych realizowane jest pobranie rozkazu a w czwartym jego wykonanie. RESET (RST) - zerowanie, ustawia elementy mikroprocesora w stan początkowy. Następuje odczyt rozkazu wskazywanego adresem warunku początkowego i jego wykonanie. Lokacja rozkazu lub operandów wskazywana jest każdorazowo zawartością licznika rozkazów (PC). Odczytany rozkaz przekazany zostaję do jednostki sterującej mikroprocesora, która analizuje kod rozkazu definiując rodzaj operacji i adresy operandów. Określane są ponadto sygnały sterujące pracą poszczególnych bloków procesora, sygnały zewnętrzne jednostki sterującej a na zakończenie ciągu operacji ustalona zostaje nowa wartość licznika rozkazów, będąca adresem kolejnego rozkazu. RST - oznacza programowe wywołanie jednej z ośmiu lokacji restartów (odpowiednio do żądania przerwania sygnałem INT). ZAPIS - RSTn; DZIAŁANIE - ((SP)) (PCH), ((SP-1)) (PCL), PCH 00H, PCL (00NNN000) FORMAT - 11NNN111 od 7 do 0 na pozycjach 5 4 3 kodowany jest rozkaz, określają one osiem lokacji restartu po osiem bajtów w każdym bloku. KOD - 0 C7, 1 CF, 2 D7, 3 DF, 4 E7, 5 EF, 6 F7, 7 FF. Dodatkowo wyróżniamy RST 4,5 TRAP, 5,5 i 6,5 oraz 7,5 (procesory 8080.8085). Zawartość licznika rozkazów PC przekazywana jest na stos w kolejności najpierw starszy bjat adresowy potem młodszy. Starszy bajt jest zerowany, natomiast do młodszego idzie otrzymany adres 00NNN000b. Po zakończeniu obsługi przerwania, PC jest ściągany ze stosu w kolejności odwrotnej do zapisu. READY - sygnał gotowości danych (szybki procesor, wolne urządzenia, przesył regulowany najwolniejszym urządzeniem). Urządzenia A i B przekazują sobie wzajemnie dane w takt czterech sygnałów sterujących: Start, Gotów, Pełny i Takt. A załaduje dane do Bufora Układu Sprzęgającego sygnałem Start o ile jest on Gotów je przyjąć, tzn. poprzednia porcja danych została już przekazane do B. B jest informowane o stanie zapełnienia aktywnym poziomem sygnału zapełnienia Pełny, co oznacza, że układ sprzęgający otrzymał nowe dane dla B. B dokonuje odczytu danych za pomocą sygnału Takt. Gdy sygnał Gotów jest aktywny oznacza to zezwolenie dla A na przesłanie kolejnej porcji danych sygnałem Start. Podobnie w druga stronę. A czyta dane z bufora układu sprzęgającego sygnałem Start o ile sygnał Gotów sygnalizuje stan zapełnienia układu sprzęgającego aktualnymi danymi. Po ich odczycie B jest informowane niskim poziomem sygnały Pełny o możliwości załadowania kolejnej porcji danych do układu sprzęgającego sygnałem Takt. INT - Interrupt oznacza przerwanie realizacji jednego programu w celu podjęcia realizacji drugiego programu. Podobnie do transmisji w taktowanej stanem gotowości magistrali przebiega przekazywanie danych w trybie obsługi żądania przerwania. Różnica polega jedynie na kolejności zgłoszeń poziomów aktywnych sygnałów sterujących. A podejmuje czytanie zawartości rejestrów układu sprzęgającego po otrzymaniu informacji o pojawieniu się nowych danych w układzie sprzęgającym. Żądanie czytania danych jest sygnalizowane poziomem aktywnym sygnału INT. A czyta dane sygnałem Start. Do B zostaje przekazany sygnał gotowości (Pełny = nieaktywny) oznaczający wykonanie operacji odczytu i możliwości wpisania nowej porcji danych do układu sprzęgającego sygnałem Takt. Wolno gromadzone dane w B są przekazywane do A w określonym czasie. A przystępuje do realizacji tej operacji z chwilą, gdy może zostać inna operacja, mniej ważna. OBSŁUGA INT - Ponieważ program przerywający może zawierać takie same rozkazy jak program przerwany musimy założyć, że wszystkie układy wewnętrzne procesora zostaną zapełnione nowymi danymi. Procesor został wyposażony w mechanizm zabezpieczania miejsca przerwania, aby możliwe było kontynuowanie programu przerwanego po wykonaniu procedur związanych z żądaniem przerwania. Najpierw analizujemy stan INTE. Wartość wysoka tego sygnału pojawia się w czasie jednego cyklu zegarowego w określonych okolicznościach. Warunkowane są następującymi elementami: 1) CPU ustawia INTE=H po zakończeniu rozkazu poprzedniego a przed podjęciem rozkazu następnego. 2) INTE=L jeśli zakończony został rozkaz poprzedni występujący w programie przerywającym. Innymi słowy INTE=H po zakończeniu rozkazu jest ustawiane tylko w programie głównym. 3) Przerzutnik warunku INTE=H zostaje wyzerowany (INTE=L) po uruchomieniu programu przerywającego. Można go odblokować rozkazem IE. Po takim rozkazie INTE=H jest ustawiane tak samo jak w programie głównym. 4) INTE=H zostaje wyzerowane i zablokowane rozkazem DI; Jeśli mechanizm wystawiania INTE=H jest aktywny, zewnętrzne żądanie przerwania INT=H oczekuje zezwolenia na przerwanie. Zgodność poziomów INT=INTE=H ustawia na wewnętrznym przerzutniku przerwań INT F/F=H, który steruje dalszym przebiegiem obsługi przerwania. W trakcie realizacji programu zawartość licznika rozkazów zostaje modyfikowana i wpisywane są do niego kolejne adresy sekwencji rozkazów. Zablokowany zostaje licznik rozkazów, którego zawartość odkłada się na stos. INTE nie przyjmuje wartości wysokiej mimo zakończenia cyklu rozkazowego. Przez cały czas obsługi przerwania INTE=L co umożliwia zakończenie procedur przerywających. RST zamiast CALL - Zamiast rozkazu RST po przerwaniu można użyć rozkazu wywołania CALL. Kod tego rozkazu wystawia urządzenie żądające przerwania, a wtedy procesor zapyta o adres lokacji pamięci zawierającej program jego obsługi. Jest to metoda wywołania procedur przerywających z pełną adresacją restartu. ŚŁOWO STATUSOWE - D0 - INTA potwierdzenie przyjęcie żądania przerwania; D1 - ~WO w bieżącym cyklu maszynowym będzie operacja zapisu do pamięci lub urządzenia we/wy; D2 - STACK na szynie adresowej znajduje się adres komórki stosu; D3 - HLTA potwierdzenie wykonania instrukcji HLT; D4 - OUT na szynie adresowej jest adres urządzenia wyjściowego i w cyklu tym na szynie danych pojawi się bajt przesyłany do tego urządzenia; D5 - M1 cykl pobierania pierwszego bajtu instrukcji; D6 - INP na szynie adresowej znajduje się adres urządzenia wejściowego. Powinien przyjść bajt przez szynę danych do procesora; D7 - MEMR szyna danych będzie wykorzystana do odczytu słowa z pamięci. HOLD - współczesne mikroprocesory wyposażone są w mechanizmy przesyłu danych do/z pamięci operacyjnej z pominięciem procesora (DMA). Do procesora podłączono linie HOLD i HOLDA. Jeśli HOLD=H do CPU zostaje przekazane żądanie trzymania. Jest ono równoznaczne z ustawieniem linii adresowych, linii danych oraz pisz/czytaj (procesora) w stan wysokiej impedancji. Procedurę przejścia do stanu trzymania rozpoczyna sygnał HOLD Request. Ponieważ elementy wewnętrzne CPU nie biorą udziału w procesie transmisji danych w trybie DMA, trzymanie może być podjete w trakcie realizacji cyklu rozkazowego. Odłączenie CPU od magistrali poprzedzone jest sprawdzeniem czy dane są gotowe do transmisji, READY=H, kiedy tak jest to CPU wystawia HLDA=H, potwierdzając przejście do stanu trzymania. Linie adresowe i danych są sterowane za pośrednictwem układu 8257. Proces bezpośredniej transmisji kończy niski poziom na linii HOLD, żądania trybu DMA. ADRESACJA BEZPOŚREDNIA - polega na podaniu pełnego adresu operanda bezpośrednio w programie. Jest on bezpośrednim identyfikatorem lokacji komórki pamięci lub rejestru komputera. MOV A,D przesunięcie z rejestru D do akumulatora A. ADRESACJA NATYCHMIASTOWA - polega na umieszczeniu danych w komórce pamięci następującej po lokacji kodu operacji. W polu operanda występującym po kodzie operacji zapisane są dane dla tej operacji. MVI A,D2H dokonuje przesunięcia bajtu danych z pamięci do wskazanego rejestru A. ADRESACJA POŚREDNIA - polega na wskazywaniu lokacji operanda za pomocą zawartości określonego rejestru wewnętrznego procesora. MOV A,[HL] rejestry H i L po uprzednim załadowaniu spełniają funkcję wskaźnika adresu pośredniego komórki pamięci do której przesuwamy zawartość rejestru A. ADRESACJA INDEKSOWANA - polega na obliczeniu sumy podanego w rozkazie adresu adr i zawartości rejestru indeksowego RI. MOV r,adr[RI] oznacza wpisanie do rejestru r zawartości komórki pamięci adresowanej sumą adresu adr i [RI]. ADRESACJE KOMBINOWANE - adresacja pośrednia z indeksowaną. W procesorach Intela, procesor wyposażony w specjalny rejestr bazowy BP. MOV A, [BP][RI] MOV AX,[BP][SI] oznacza wpisanie do A zawartości dwóch komórek pamięci o adresach określanych sumą zawartości rejestru BP i RI.

8086/8088 REJESTR FLAGOWY - licząc od 15 do 0. --,--,--,--,O,D,I,T,S,Z,--,A,--,P,--,C. Do znaczników stanu wewnętrznego zaliczamy: C - Carry (Przeniesienie) - 1 oznacza przeniesienie zewnętrzne dla operacji arytmetycznych całkowito-liczbowych; P - Parrity (Parzystość) - 1 oznacza parzystą ilość jedynek wyniku dowolnej operacji; A - Auxiliary carry (Przeniesienie połówkowe) - 1 oznacza obecność przeniesienia po czwartym bicie rezultatu operacji arytmetycznych BCD; Z - Zero - 1 oznacza rezultat zero w operacji; S - Sign (Znak) - 1 oznacza ujemny wynik operacji arytmetycznej całkowito-liczbowej; O - Overflow (Przepełnienie) - 1 oznacza zbyt dużą liczbę dla wyniku operacji arytmetycznej całkowito-liczbowej; Do znaczników sterujących zaliczamy: T - Trap (Pułapka) - 1 oznacza pracę krokową procesora; I - Interrupt Enable (Przerwanie dozwolone) - 1 oznacza, że przerwanie maskowane jest odblokowane; D - Direction (Kierunek) - znacznik kierunku zmian zawartości rejestrów SI i DI. D=0 zwiększa się zawartość SI i DI o 1 (2) dla operacji 8 bit (16 bit). D=1 zmniejsza się zawartość SI i DI o 1 (2) dla operacji 8 bit (16 bit). Znaczniki stanu wewnętrznego są ustawiane w wyniku realizacji określonych operacji arytmetycznych lub logicznych procesora, natomiast znaczniki sterujące rejestru wskaźników ustawiane są za pomocą odpowiednich rozkazów sterujących mikroprocesora, w celu wymuszenia określonego trybu pracy procesora. PRACA KROKOWA PROCESORA - możliwa wtedy gdy wskaźnik rejestru flagowego T ma wartość H (T=1). Polega na zatrzymaniu procesora po każdym rozkazie. Następnie wywoływane jest przerwanie o numerze 1 a procesor przesyła zawartość rejestru flagowego na stos. W pamięci o lokacji INTn=1 należy wpisać program obsługi tego żądania przerwania (np. badanie stanu wybranego klawisza). Po wykonaniu przerwania procesor odczytuje ze stosu rejestr flagowy, i zmniejsza wartość licznika rozkazów. Następnie cykl powtarza się, aż do momentu, w którym licznik rozkazów zostanie wyzerowany, co powoduje ustawienie T=0 i przejście procesora do normalnego stanu pracy (tj. bez pracy krokowej). ADRESACJA BEZPOŚREDNIA - polega na podaniu pełnego adresu operanda bezpośrednio w programie. Jest on bezpośrednim identyfikatorem lokacji komórki pamięci lub rejestru komputera. MOV AX,BX przesunięcie z rejestru BX do akumulatora AX. ADRESACJA NATYCHMIASTOWA - polega na umieszczeniu danych w komórce pamięci następującej po lokacji kodu operacji. W polu operanda występującym po kodzie operacji zapisane są dane dla tej operacji. MVI AX,D2H dokonuje przesunięcia bajtu danych z pamięci do wskazanego rejestru AX. ADRESACJA POŚREDNIA - polega na wskazywaniu lokacji operanda za pomocą zawartości określonego rejestru wewnętrznego procesora lub pamięci operacyjnej. MOV AX,[BX] rejestry H i L po uprzednim załadowaniu spełniają funkcję wskaźnika adresu pośredniego komórki pamięci do której przesuwamy zawartość rejestru A. ADRESACJA INDEKSOWANA - polega na obliczeniu sumy podanego w rozkazie adresu adr i zawartości rejestru indeksowego SI. MOV AX,adr[SI] oznacza wpisanie do rejestru AX zawartości komórki pamięci adresowanej sumą adresu adr i [SI]. ADRESACJA WZGLĘDNA - adres względny obliczany względem adresu początku strony, przez dodanie do niego zawartości określonego rejestru wewnętrznego procesora. Jest to tzw. Przemieszczenie adresowe. Przemieszczenie dotyczy adresu wewnątrz strony, od adresu bazy o określaną liczbę komórek pamięci. MOV AX,[BX]+2 oznacza wpisanie do AX zawartości komórki pamięci wskazywanej przez zawartość BX z przemieszczeniem 2(offset=2). ADRESACJE KOMBINOWANE - adresacja pośrednia z indeksowaną. W procesorach Intela, procesor wyposażony w specjalny rejestr bazowy BP. MOV AX,[BP][SI] oznacza wpisanie do AX zawartości dwóch komórek pamięci o adresach określanych sumą zawartości rejestru BP i SI. ADRES FIZYCZNY - określa stan 20 bitowego wektora zewnętrznego lokalizującego 1 MB komorek pamięci od 00000h do FFFFFh. Jeśli do 16-bitowego adresu będziemy dodawać cztery bity na najstarszych pozycjach (od 16 bitu do 19) w przedziale wartości od 0h do Fh, będziemy adresować 16 segmentów po 64 kB każdy. ADRES LOGICZNY - składa się z bazy zawartej w jednym z czterech rejestrów sehmentowych - CS, DS., SS i ES oraz przemieszczenia liczonego od bazy. Blok BIU przesuwa wektor adresowy bazy o cztery bity w kierunku pozycji starszych i dodaje do niego 16-bitowy wektor przemieszczenia. ADRES EFEKTYWNY - jest wartością offsetu wskazującego położenie komórki pamięci w segmencie, licząc od początku segmentu. PRZERWANIA WEWNĘTRZNE - INTn - jest dwubajtowym rozkazem przerwania wewnętrznego. Występuje ono bezpośrednio po zakończeniu realizacji INTn, umieszczanego w programie. Drugi bajt rozkazu to zmienna n wskazująca numer przerwania: 28=256 wektorów przerwań. Po rozpoznaniu kodu rozkazu INT czytany jest jednobajtowy numer (n) przerwania. Procesor przesuwa zawartość n o dwa bity w kierunku pozycji starszych (mnoży przez cztery) definiując w ten sposób mapę pamięci o wymiarze 210=1024 bajtów, po cztery bajty dla każdego z 256 bloków. Tablica adresów jest zapisana w komórkach pamięci od 00000h do 003FFh, jednokilobajtowej przestrzeni adresowej. Ostatnie pole mapy oznaczono adresem 3FE, ponieważ jest to lokacja pierwszego z dwóch bajtów adresowych. Dwa pierwsze bajty każdego przerwania określają zawartość licznika programu IP, dwa następne zawartość rejestru segmentowego kodów CS. Na tej podstawie BIU wyznacza 20-bitowy adres fizyczny procedury obsługi żądania przerwania. Bezpośrednio po zakończeniu rozkazu następuje wywołanie przerwania o numerze n (z przedziału 32 do 255) i wyliczenie fizycznego adresu restartu. Przerwania n=0...31 są niemaskowalne. PRZERWANIA ZEWNĘTRZNE - procesor analizuje sygnał informujący o zmianach danych w określonym kanale i decyduje o uruchomieniu procedur związanych z tym sygnałem - przerywając aktualnie realizowane zadanie. Operacja obsługi żądania przerwania bieżącego programu powinna zabezpieczyć możliwość powrotu do miejsca, w którym to przerwanie nastąpiło, po zakończeniu obsługi przerwania. Przyjęcie przerwania polega na: 1) zapisaniu na stosie zawartości rejestru flagowego, rejestru CS i licznika rozkazów IP; 2) wyzerowaniu znaczników zezwolenia na przerwanie I oraz pułapki T; 3) wpisaniu adresu początku programu obsługi do CS i IP; Rozkaz powrotu z przerwania IRET powoduje przepisanie trzech kolejnych słów z wierzchołka stosu do IP CS i rejestru flagowego. Przyjęcie nowego żądania przerwania, w trakcie realizacji aktualnego przerwania jest możliwe gdy IF=1. Rozróżniamy przerwania maskowalne i niemaskowalne. Niemaskowalne są przyjmowane zawsze, natomiast maskowalne tylko w przypadku gdy znacznik I=1. STI (ustaw IF=1) i CLI (ustaw IF=0) umożliwiają programowe włączenie i wyłączenie przerwań maskowalnych. NMI - reprezentuje niemaskowalne żądanie przerwania, inicjowane narastającym zboczem tego sygnału (zmiana wartości z 0 na 1). Zmiana poziomu logicznego na linii NMI zostaje zarejestrowana w wewnętrznym przerzutniku przerwań. Po czym, po wykonaniu bieżącego rozkazu zostaje podjęte żądanie przerwania oczekujące na obsługę. Przerwaniu NMI jest przyporządkowany stały numer w tablicy adresów n=2. INTR - reprezentuje maskowalne żądanie przerwania zapoczątkowane wartością INTR=1 gdy IF=1. GDY I=0 to linia INTR jest nieaktywna. Przerwanie można zablokować rozkazem CLI. Zerowanie znacznika IF jest możliwe również po przyjęciu przerwania i po sygnale RESET=1. Odblokowanie umożliwia rozkaz STI. Żądanie INTR=1 trwa tak długa dopóki nie zostanie wygenerowane INTA. Przerwania zewnętrzne mają numer n=32...255. CALL - przed skierowaniem procesu przetwarzania do podprogramu, wysyła na stos zawartość licznika rozkazów. Do wydzielonego obszaru pamięci operacyjnej wprowadzone zostają dane zabezpieczające powrót do operacji przerwanych. Na końcu podprogramu używamy RET, aby powrócić do programu przerwanego, pobiera ze stosu uprzednio odłożoną zawartość licznika. Każde wywołanie CALL oznacza odłożenie na stos zawartości licznika programu IP, do komórki stosu wskazywanej zawartością wskaźnika stosu SP. Każdy rozkaz RET odczytuje ze stosu ostatnie dwa bajty i przepisuje ich zawartość na powrót do licznika programu. Następnie zwiększana jest zawartość stosu o ostatnio odczytane lokacje. TRANSMISJA SZEREGOWA - Układ przyjmuje z CPU dane w postaci wielobitowego słowa równoległego i zamienia je w szeregowy ciąg 0,1-kowy wysyłanych na jednym przewodzie wyjściowym wy, za pośrednictwem nadajnika linii. Urządzenie zewnętrzne wprowadza dane szeregowo, wejściem we przez odbiornik linii. Dane zostają zamienione na słowo równoległe i przesłane do CPU. Selekcji numeru układu sprzęgającego dokonują linie adresowe. Sterowanie to cztery przewody generujące sygnał zapisu, odczytu, gotowości oraz określania kierunku transmisji danych. Odbiornik i nadajnik dopasowują parametry elektryczne sygnałów informacyjnych na liniach we/wy oraz na liniach wejściowych i wyjściowych układu sprzęgającego. Wyróżniamy transmisję szeregową synchroniczną i asynchroniczną. TRANSMISJA ASYNCHRONICZNA - zdefiniowana jako ciąg binarny, który rozpoczyna bit najmłodszy a kończy najstarszy. Format danych: BST bit startu, D0-D7 dane, P bit parzystości, BSP bit stopu. Stan wyłączenia transmisji jest sygnalizowany poziomem wysokim na szeregowej linii danych. Początek nadawania rozpoczyna BST, zmianą poziomu wysokiego na niski. BST jest umieszczony przed D0 najmłodszym bitem danych. W transmisji przewidziano możliwość sprawdzenia błędów transmisji prze kontrolę parzystości słowa danych (bit P). Bit parzystości występuje po D7 najstarszym bicie danych. W zakończeniu transmitowanego znaku umieszczany jest BSP, pojedynczy lub podwójny. Podstawowym formatem jest ciąg z 7-bitowym znakiem danych, zapisującym wszystkie znaki klawiatury amerykańskiej według kodu ASCII. TRANSMISJA SYNCHRONICZNA - Przed zasadniczym blokiem danych nadajnik wysyła ciąg binarny synchronizujący (SYN_1...SYN_n). Odbiornik przeprowadza rozpoznanie ciągu synchronizującego, polegające na sprawdzeniu odebranego kodu. W ten sposób rozpoznaje częstotliwość transmitowanych danych. Długość bloku synchronizującego rośnie, gdy szybkość transmisji danych wzrasta oraz rośnie liczba możliwych nastawień szybkości transmisji odbiornika. Po zsynchronizowaniu częstotliwości nadawania i odbierania danych przyjmowane są dane zasadnicze. Proces przesyłu danych zasadniczych może być uzależniony od potwierdzenia stanu synchronizacji odbiornika, choć nie wszystkie układy sprzęgające taką możliwość dopuszczają. TRANSMISJA RÓWNOLEGŁA - przesył danych odbywa się krokowo, wektorami wielobitowymi, najczęściej bajt po bajcie lub słowami 16-bitowymi jednocześnie na wielu liniach. Najprostszym układem sprzęgającym jest rejestr, do którego wprowadzane są słowa wielobitowe (synchronicznie) z jednego urządzenia i odczytywane przez drugie urządzenie. Komunikacja rejestru równoległego z CPU odbywa się w takt zegara zewnętrznego. Jeśli rejestr wyposażony jest w zmienne sygnalizujące stan jego zapełnienia, można zastosować tryb transmisji danych z potwierdzeniem.

PROCESORY WYŻSZEJ GENERACJI - ADRESY 80386 - CPU może pracować w trybie rzeczywistym i wirtualnym. Sczególnym przypadkiem jest tryb wirtualny a w jego obrębie tryb wirtualny 8086. Charakteryzuje go zgodność adresacji dla trybu rzeczywistego i dla trybu wirtualnego 8086 - z identycznym sposobem pracy bloku rejestrów segmentowych. W trybie rzeczywistym CPU może zaadresować 1MB pamięci tak jak w starszych procesorach. W trybie wirtualnym 8086, 1MB pamięci może zostać umieszczony w dowolnym miejscu obszaru fizycznego pamięci operacyjnej. W trybie wirtualnym 80386 przestrzeń pamięci dla adresów logicznych jest również podzielona na segmenty. Każdy segment ma 32-bitowy adres bazowy, stąd jego rozmiar może osiągać 4GB. Sześć rejestrów segmentowych lokalizuje adresy początków segmentów a w trybie wirtualnym procesora 386 zawierają one selektory segmentów, które wspólnie z deskryptorami segmentów określają adres bazowy oraz wymiar segmentów. Rejestry systemowe GDTR i LDTR służą do określania adresu globalnej tablicy i lokalnych tablic deskryptorów segmentów. Rejestr TR określa adres segmentu stanu aktualnie wykonywanego zadania. IDTR jest rejestrem adresu tablicy deskryptorów przerwań. Rejestry uruchomieniowe DR0-DR7, służą do sterowania pułapkami sprzętowymi procesora. Rejestry TR6 i TR7 służą do testowania poprawności działania pamięci asocjacyjnej zawierającej elementy tablic stron. TRYB RZECZYWISTY - Przemieszczenia dla adresacji w trybie rzeczywistym są wyznaczane za pomocą wektorów 16-bitowych, dlatego wymiar segmentu wynosi 64 kB. Zachowano układ 64 kB na segment mimo, że przemieszczenie może być definiowane słowem 32-bitowym. Oznacza to, że wartość przemieszczenia nie może przekroczyć liczby 264-1. Przekroczenie tej wartości sygnalizuje przerwanie zwane wyjątkiem.. Wyjątki podobnie jak przerwania zewnętrzne są sygnalizowane i wymagają programowej obsługi odpowiedniej do numeru wyjątku. Dla odróżnienia obu sposobów wyliczania przemieszczeń używamy terminu: adresacja rzeczywista 16 lub 32-bitowa. Mimo, że w trybie rzeczywistym segment ma 64 kB, stosowanie przemieszczenia 32-bitowego jest korzystne ze względu na większą listę trybów adresacji. TRYB WIRTUALNY - dwuwymiarowa definicja adresu logicznego jest również zachowana w wirtualnym trybie adresowania. Jednak definicja adrsu logicznego została oparta o zawartość dodatkowych rejestrów procesora. Rejestry segmentowe są kojarzone z rejestrami deskryptorów, w których jest przechowywana informacja o sposobie obliczenia wartości selektora, która ma zostać wpisana do rejestru segmentu. Inaczej, w rejestrze deskryptora zawarty jest adres bazy i rozmiar (R) segmentu wskazywanego przez selektor. Ponadto, w rejestrze deskryptora zapisane są atrybuty (A) praw dostępu do segmentu używane przez mechanizmy ochrony. Wymiar adresu bazowego i rozmiar segmentu są liczbami z przedziału 0 do 232-1. Sposób zapisu oraz rodzaj informacji zapisywanej w rejestrach deskryptorów są pochodną użytych rozkazów. W trybie wirtualnym wykonywana jest operacja translacji adresów pochodnych (logicznego z deskryptorami) na adres fizyczny. Przed obliczeniem adresu fizycznego jest analizowany stan mechanizmu stronicowania. Jeśli stronicowanie jest włączone procesor wylicza adres pośredni, zwany liniowym a na jego podstawie dzieli przestrzeń pamięciową na strony. Jeśli stronicowanie jest wyłączone wówczas adres liniowy jest identyczny z adresem fizycznym.



Wyszukiwarka

Podobne podstrony:
NIEMIECKI EKSPRESJONIZM full doc
lola full doc
~$rketing full (30 stron) (2) doc
3 ASKI DOC
europejski system energetyczny doc
KLASA 1 POZIOM ROZSZERZONY doc Nieznany
oddzialywanie promieniowania slonecznego z atmosfera(full permission)
anatmia klatki piersiowej full tekst
17 smiertelnych bledow szefa full version
5 M1 OsowskiM BalaR ZAD5 doc
Opis zawodu Hostessa, Opis-stanowiska-pracy-DOC
Messerschmitt Me-262, DOC

więcej podobnych podstron