Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SYSTEM LOGICZNY Wykład Jacka FLORKA (http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej.

Podobne prezentacje


Prezentacja na temat: "SYSTEM LOGICZNY Wykład Jacka FLORKA (http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej."— Zapis prezentacji:

1 SYSTEM LOGICZNY Wykład Jacka FLORKA (http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej 1 Przetwarzanieinformacji (2) Przetwarzanie informacji (2)

2 Bloki funkcjonalne komputera Układy logiczne wykonujące jedną lub kilka operacji przetwarzania informacji Bloki funkcjonalne zbudowane są z bramek i przerzutników Grupy bloków: –Arytmetyczne (sumator, komparator, licznik, rejestr) –Komutacyjne (multiplekser, demultiplekser, dekoder)

3 PODZIAŁ UKŁADÓW LOGICZNYCH Układy logiczne można podzielić (w zależności od przyjętego kryterium) na: Def.1. Układem kombinacyjnym nazywamy taki układ cyfrowy, w którym stan wejść jednoznacznie określa stan wyjść układu. Def.2. Układem sekwencyjnym nazywamy taki układ cyfrowy, w którym stan wyjść zależy od stanu wejść oraz od poprzednich stanów układu. układy kombinacyjneukłady kombinacyjne układy sekwencyjneukłady sekwencyjne układy asynchroniczneukłady asynchroniczne układy synchroniczneukłady synchroniczne Def.3. Układem asynchronicznym nazywamy taki układ cyfrowy, dla którego w dowolnym momencie jego działania stan wejść oddziaływuje na stan wyjść. Def.4. Układem synchronicznym nazywamy taki układ cyfrowy, dla którego stan wejść wpływa na stan wyjść w pewnych określonych odcinkach czasu zwanych czasem czynnym, natomiast w pozostałych odcinkach czasu zwanych czasem martwym stan wejść nie wpływa na stan wyjść.

4 PODZIAŁ UKŁADÓW LOGICZNYCH układy kombinacyjne: –sumatory –komparatory –dekodery, kodery, transkodery –multipleksery, demultipleksery –..... układy matrycoweukłady matrycowe układy zbudowane z bramekukłady zbudowane z bramek bloki kombinacyjnebloki kombinacyjne układy sekwencyjne: przerzutnikiprzerzutniki rejestryrejestry licznikiliczniki A={X,Y, : X Y} X- zbiór stanów sygnałów wejściowego Y - zbiór stanów sygnałów wyjściowego - funkcja opisująca działanie układu - funkcja opisująca działanie układu A={X, Y, S, : XS S, : XS Y} A={X, Y, S, : XxS S, : XxS Y} X- zbiór stanów sygnałów wejściowego Y - zbiór stanów sygnałów wyjściowego S - zbiór stanów wewnętrznych - funkcja przejść (określa zmiany stanów układu wszystkich wzbudzeń) - funkcja przejść (określa zmiany stanów układu wszystkich wzbudzeń) - funkcja wyjść (przyporządkowuje sygnały wyjściowe stanom układu i wzbudzeniom) - funkcja wyjść (przyporządkowuje sygnały wyjściowe stanom układu i wzbudzeniom)

5 PRZERZUTNIKI Posiada co najmniej dwa wejścia i z reguły dwa wyjścia wejścia programujące wejścia informacyjne wejście zegarowe wyjścia Zasadnicze typy przerzutników: RS, JK, D i T Def.1. Przerzutniki są podstawowymi elementami układów sekwencyjnych, których zasadniczym zadaniem jest pamiętanie jednego bitu informacji

6 SYNCHRONICZNY PRZERZUTNIK RS S R Q Q wyjście proste wyjście zanegowane wejście zerujące (RESET) wejście ustawiające (SET) zegar CK S R Q czas CK Q asynchroniczny

7 Hazard Idealne bramki logiczne- stan wyjścia jest funkcją logiczną stanów wejściowych. Rzeczywista bramka logiczna pracująca w dowolnej sieci ma pewną budowę wewnętrzną (składa się zwykle z kilku tranzystorów, diod i oporników). Elementy te nie pracują dowolnie szybko. Przeładowanie stanu na wyjściu bramki wymaga pewnego czasu, który nazywamy czasem propagacji sygnału przez bramkę. Czas propagacji jest bardzo krótki i wynosi kilka nanosekund (w szybkich procesorach osiąga on poziom pikosekund). W prostych sieciach nie odgrywa on większej roli. Jednak w sieciach złożonych, gdzie sygnały wędrują różnymi drogami, czasy propagacji wprowadzają różne opóźnienia w działaniu poszczególnych elementów sieci, co może prowadzić przy źle zaprojektowanej sieci logicznej do błędów w jej działaniu

8 Taktowanie procesora synchronizującego sygnału zegarowego częstotliwość taktowania procesoraJednym ze sposobów walki z hazardem jest wprowadzenie synchronizującego sygnału zegarowego - tzw. taktowania. Sygnał zegarowy jest sygnałem cyfrowym pulsującym z określoną częstotliwością pomiędzy stanami 0 i 1, zwykle kilkaset MHz. Wszystkie elementy sieci synchronizują się do tego sygnału. Okres taktu zegarowego musi być tak dobrany, aby w sieci zanikły hazardy i ustaliły się sygnały wyjściowe bramek logicznych. Stan sieci jest następnie analizowany przy końcu taktu zegarowego. Ze sposobu tego korzystają wszystkie współczesne komputery częstotliwość taktowania procesora.

9 Informacja cyfrowa Zmienna binarna – zmienna o wartościach 1 i 0 Wektor informacji cyfrowej – wektor o elementach binarnych, np.: 0111 Informacja cyfrowa – informacja przedstawiona za pomocą ciągu wektorów informacji cyfrowej Adresowanie wektora informacji cyfrowej- wzajemnie jednoznaczne przypisanie kazdemu wektorowi innego w.i.c. zwanego adresem

10 Reprezentacja czasowa w.i.c. Bitowo-równoległa – wszystkie bity wektor są dostępne jednocześnie (na równoległych liniach magistrali lub w rejestrze) Bitowo-szeregowa – poszczególne bity pojawiają się na tej samej linii lub w tym samym przerzutniku, w kolejnych okienkach czasu

11 REJESTRY Def.1. Rejestrem nazywamy układ cyfrowy przeznaczony do krótkoterminowego przechowywania niewielkich informacji lub do zamiany postaci informacji z równoległej na szeregową lub odwrotnie. a 1 a 2 a 3 We 3 We 2 We 1 We 0 CLK a 0 rejestr CLK a 1 a 2 a 3 rejestr CLK a 0 a 1 a 2 a 3 rejestr CLK a 0 a 1 a 2 a 3 rejestr... T1 T3T2 Wprowadzanie równoległe - wszystkie bity słowa informacji wprowadzamy jednocześnie, w jednym takcie zegara Wprowadzanie szeregowe - informację wprowadzamy bit po bicie (jeden bit na jeden takt zegara)

12 LICZNIKI Def.1. Licznikiem nazywamy układ cyfrowy, na którego wyjściu pojawia się zakodowana liczba impulsów podanych na jego wejście zliczające. Musi być znany: stan początkowy licznika (zero)stan początkowy licznika (zero) pojemność licznikapojemność licznika kod zliczaniakod zliczania Def.1. Licznikiem nazywamy układ cyfrowy, na którego wyjściu pojawia się zakodowana liczba impulsów podanych na jego wejście zliczające. Musi być znany: stan początkowy licznika (zero)stan początkowy licznika (zero) pojemność licznikapojemność licznika kod zliczaniakod zliczania Rodzaje liczników: liczące w przód (następnikowe)liczące w przód (następnikowe) liczące w tył (poprzednikowe)liczące w tył (poprzednikowe) rewersyjne (mozliwość zmiany kierunku zliczania)rewersyjne (mozliwość zmiany kierunku zliczania) szeregowe (asynchroniczne)szeregowe (asynchroniczne) równoległe (synchroniczne)równoległe (synchroniczne) D0 D1 D2 D3 Q0 Q1 Q2 Q3 TC CEP CET CLK LD CLR LICZNIK D0 - D3 - wejścia danych CLK - wejście zegarowe CLR - wejście zerujące LD - wejście sterujące do wpisywania danych z wejść D0-D1 CEP - wejście dostępu (umożliwia zliczanie) CET - wejście dostępu (umożliwia powstanie przeniesienia TC) Q0 - Q3 - wyjścia TC - wyjście przeniesienia (umożliwia rozbudowę)

13 MAGISTRALE DANYCH Def.1. Magistralą nazywamy zestaw linii oraz układów przełączających, łączących dwa lub więcej układów mogących być nadajnikami lub odbiornikami informacji. Przesyłanie informacji zachodzi zawsze pomiędzy dokładnie jednym układem będącym nadajnikiem a dokładnie jednym układem będącym odbiornikiem, przy pozostałych układach odseparowanych od linii przesyłających. NAD ODB Układ odseparowany

14 PRZETWARZANIE INFORMACJI Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według ustalonego algorytmu DANE POCZĄTKOWE WYNIKI KOŃCOWE PROCES PRZETWARZANIA ALGORYTM Przetwarzanie informacji można zrealizować dwoma sposobami: Specjalizowany układ cyfrowy:Specjalizowany układ cyfrowy: System mikroprocesorowy (maszyna cyfrowa):System mikroprocesorowy (maszyna cyfrowa): SPECJALIZOWANY UKŁAD CYFROWY MASZYNA CYFROWA WYNIKI PROGRAM DANE DANE WYNIKI

15 Organizacja maszyny cyfrowej PAMIĘĆ ZEWNĘTRZNA UKŁADY WY URZĄDZENIA ZEWNĘTRZNE PAMIĘĆ OPERACYJNA BLOK PRZETWA- RZANIA STEROWANIE UKŁADY WE URZĄDZENIA ZEWNĘTRZNE MASZYNA CYFROWA PROCESOR JEDNOSTKA CENTRALNA WYNIKI PROGRAM DANE

16 ... URZ. ZEWN. PROCESOR PAMIĘC UKŁADY WE/WY ZEGAR SZYNA DANYCH SZYNA ADRESOWA SZYNA STEROWANIA UŻYTKOWNIK DANE PROGRAMY WYNIKI MONITORY, DRUKARKI, CZYTNIKI,... SYSTEM MIKROPROCESOROWY Centralna jednostka przetwarzająca (CPU) Liczba linii wyznacza możliwości adresowania np. liczba linii 20 to można zaadresować 2 20 komórek Liczba linii określa długość słowa procesora (8, 16, 32,.... (+biyt detekcji i korekcji błędów) Kilkanaście (kilkadziesiąt) linii Uniwersalny układ przetwarzający informację i sterujący pracą pozostałych elementów systemu

17 PROCESOR PAMIĘĆ Adres DaneZapis PROCESOR PAMIĘĆ Adres DaneOdczyt PROCESOR UKŁAD WY-WE Adres DaneZapis PROCESOR Adres DaneOdczyt Z PROCESORA DO PAMIĘCI Z PAMIĘCI DO PROCESORA Z PROCESORA NA WYJŚCIE Z WEJŚCIA DO PROCESORA PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM

18 ARCHITEKTURA PROCESORA Schemat blokowy procesora Schemat blokowy procesora Rejestry Rejestry Blok arytmetyczno-logiczny (ALU) Blok arytmetyczno-logiczny (ALU) Układ sterowania Układ sterowania 8

19 SCHEMAT BLOKOWY PROCESORA ALU JEDNOSTKA WYKONAWCZA układ sterowania dekoder rozkazów rejestr rozkazów rejestry części wykonawczej DANE PROGRAM WYNIKI wewnętrzne sygnały sterujące zewnętrzne sygnały sterujące JEDNOSTKA STERUJĄCA Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych sygnałów sterujących Jednostka sterująca z programu dekoduje rozkaz i na jego podstawie generowane są wewnętrzne i zewnętrzne sygnały sterujące

20 REJESTRY dostępne programowo niedostępne programowo (na przykładzie 8 bitowego procesora 8086/8088) FLAGS AXAX BX CX DX SI DI BP SP IP CS DS ES SS Rejestr znaczników (flagowy Rejestry powszechneg o stosowania Rejestry wskaźnikowe i indeksowe Rejestry segmentowe Wskaźnik rozkazów OFDF IFTF SF ZF AFPFCF OF - flaga nadmiaru (przepełnienia) DF - flaga kierunku IF - flaga zezwolenia na przerwanie TF - flaga pracy krokowej SF - flaga znaku ZF - flaga zera AF - flaga przeniesienia pomocniczego PF - flaga parzystości CF - flaga przeniesienia AHAL BHBL CHCL DHDL Wskaźnik stosu Wskaźnik bazy Rejestr indeksowy przeznaczenia Rejestr indeksowy źródła Rejestr danych Rejestr zliczający Rejestr bazowy Akumulator Rejestr programu Rejestr danych Rejestr dodatkowy Rejestr stosu Znaczniki kontrolne Znaczniki stanu

21 REJESTRY Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości,...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby: ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazuustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania (przetwarzania danych)testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania (przetwarzania danych) Znaczniki stanu: –CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie) –PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o wartości jedynki –ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero –PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku –SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze znakiem - kod U2) –OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji arytmetycznych (operacje liczb ze znakiem - kod U2) Znaczniki kontrolne: –TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi –IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie systemu przerwań w procesorze (0 - procesor ignoruje przerwania) –DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów) przy rosnących adresach (1) lub malejących adresach (0)

22 REJESTRY Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulator Akumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być umieszczany w innym rejestrze) Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentów –CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania, –DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne używane w programie, –ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych, –SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest stos. Wskaźnik rozkazów (wskaźnik instrukcji) - łącznie z rejestrem segmentowym CS adresuje kolejne rozkazy przeznaczone do wykonania. Wskazuje adres względem początku segmentu programu Rejestry wskaźnikowe i indeksowe - posiadają dwa rejestry wskaźnikowe i dwa rejestry indeksowe. Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w obrębie wydzielonego obszaru pamięci (stosu). Rejestry indeksowe (SI, DI) służą do adresowania danych w obszarze pamięci zwanym segmentem danych. Wszystkie rejestry mogą być wykorzystywane jako argumenty większości rozkazów arytmetycznych i logicznych.

23 REJESTRY Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu) Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł: –informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąć –odczytujemy informacje w kolejności odwrotnej do ich zapisu –informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi lub Adres Program główny 101Instrukcja 102Instrukcja 103Call Wywołanie podprogramu I (adres 104 na stos) 1002Instrukcja 1003Instrukcja 1004Call Wywołanie podprogramu II (adres 1005 na stos) 2001Instrukcja 2002Instrukcja 2003Return 1005Instrukcja 1006Instrukcja 1007Return Powrót z podprogramu II (do adresu 1005 odczytanego ze stosu) 104Instrukcja 105Instrukcja 106Instrukcja Powrót z podprogramu I (do adresu 104 odczytanego ze stosu) 107Instrukcja stos stos

24 akumulatorrejestr bazowy rejestr zliczający rejestr danych wskaźnik stosu wskaźnik bazy rejestr indeksowy źródła rejestr indeksowy przeznaczenia rejestr danych rejestr dodatkowy rejestr stosu rejestr programu wskaźnik rozkazów rejestr flagowy (znaczników)

25 flaga parzystości flaga przeniesienia pomocniczego flaga zera flaga zezwolenia na przerwanie flaga nadmiaru flaga kierunku flaga znaku flaga przeniesienia

26 BLOK ARYTMETYCZNO-LOGICZNY Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. Rozkazy mogą dotyczyć operacji dwuargumentowych:operacji dwuargumentowych: –operacji arytmetycznych (dodawanie i odejmowanie) –operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.) operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów)operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów) Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. A 0 - A 3 B 0 - B 3 S 0 - S 3 M F 0 - F 3 Lp. S 0 - S 3 M=0 M=1 Sygnały sterujące do wyboru mikrooperacji logicznej (M=0) lub arytmetycznej (M=1) Przykład 4 bitowego ALU SN74181

27 BLOK ARYTMETYCZNO-LOGICZNY Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. Rozkazy mogą dotyczyć operacji dwuargumentowych:operacji dwuargumentowych: –operacji arytmetycznych (dodawanie i odejmowanie) –operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.) operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów)operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów) Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. A 0 - A 3 B 0 - B 3 S 0 - S 3 M F 0 - F 3

28 UKŁAD STEROWANIA Zwykle procesor wykonuje rozkazy nie w jednym kroku (jak np. dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i przesunięć). W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi słów podawanych na wejścia sterujące układu ALU - układ sterowania. Cechy takiego automatu to: konieczność posiadania bardzo dużej liczby stanów dostosowanych do wymaganej liczby wykonywanych rozkazów;konieczność posiadania bardzo dużej liczby stanów dostosowanych do wymaganej liczby wykonywanych rozkazów; konieczność zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).konieczność zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji). W praktyce realizowane są jako: generatory sekwencyjnegeneratory sekwencyjne układy mikroprogramowalneukłady mikroprogramowalne

29 ROZKAZY I TRYB ADRESOWANIA Cykl rozkazowy Cykl rozkazowy Lista i format rozkazu Lista i format rozkazu Tryb adresowania Tryb adresowania Sposób prezentowania rozkazu Sposób prezentowania rozkazu 9

30 CYKL ROZKAZOWY PROCESORA Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się cyklem rozkazowym (instrukcyjnym) Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu. Pamięć CPU POBRANIE ROZKAZU WYSŁANIE ADRESU ROZKAZU DEKODOWA NIE ROZKAZU OBLICZANIE ADRESU ARGUMENTU I OBLICZANIE ADRESU ARGUMENTU II WYKONANIE ROZKAZU OBLICZENIE ADRESU PRZEZNACZE- NIA ZAPIS WYNIKU POBRANIE ARGUMENTU II POBRANIE ARGUMENTU I cykl pobrania rozkazu cykl pobrania argumentu I cykl pobrania argumentu II cykl zapisu wyniku

31 CYKL ROZKAZOWY PROCESORA Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju procesora i rodzaju rozkazu (argumentu). Np. Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci: odczyt kodu - pobranie rozkazuodczyt kodu - pobranie rozkazu odczyt jednego bajtu adresuodczyt jednego bajtu adresu odczyt drugiego bajtu adresuodczyt drugiego bajtu adresu Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazu Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2 komórkach pamięci) Faza pobrania: 1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru adresującego pamięć AD) na magistralę adresową 2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR) 3. zwiększenie zawartości licznika rozkazów Faza wykonania: 4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizujących dany rozkaz Cykl von Neumana w przypadku rozkazów wielobajtowych PC(AD) RR kod rozkazu procesorpamięć szyna adresowa szyna danych

32 16 Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300): odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru Aodczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru A odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru Bodczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B dodanie obu argumentówdodanie obu argumentów przesłanie wyniku do komórki pamięci o adresie 915przesłanie wyniku do komórki pamięci o adresie 915

33 LISTA ROZKAZÓW Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesora Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesor rozkazy przesłańrozkazy przesłań rozkazy arytmetyczne i logicznerozkazy arytmetyczne i logiczne rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.) inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym)inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym) Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnych rozkazy w postaci kodów binarnych instrukcje maszynoweinstrukcje w FORTRANie rozkazy w postaci kodów binarnych instrukcje maszynoweinstrukcje w FORTRANie

34 FORMAT ROZKAZÓW I TRYB ADRESOWANIA Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazu Kod rozkazu: musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w pierwszym bajcie (bajtach) kodu rozkazumusi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w pierwszym bajcie (bajtach) kodu rozkazu może zawierać operandy i/lub adresy operandów wykonywanych operacjimoże zawierać operandy i/lub adresy operandów wykonywanych operacji Def.2. Trybem adresowania nazywamy sposób określenia miejsca przechowywania argumentów rozkazu Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w: rejestrachrejestrach pamięcipamięci kodzie rozkazukodzie rozkazu Rozróżniamy następujące tryby adresowania adresowanie natychmiastoweadresowanie natychmiastowe adresowanie bezpośrednieadresowanie bezpośrednie adresowanie rejestroweadresowanie rejestrowe adresowanie pośrednieadresowanie pośrednie adresowanie indeksowe z przemieszczeniemadresowanie indeksowe z przemieszczeniem

35 TRYB ADRESOWANIA Def.Przy adresowaniu natychmiastowym argument rozkazu zawarty jest w kodzie rozkazu Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie. Argument jest umieszczany w kodzie rozkazu, więc musi być on znany w momencie pisania programu. Kod rozkazu Kod operacji Argument Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest argument rozkazu W momencie pisania programu musimy zarezerwować adres przechowywania argumentu. Kod rozkazu Kod operacji Adres Argument PAMIĘĆ

36 TRYB ADRESOWANIA Def.Przy adresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argument Zaletą tego trybu jest krótki kod i szybkie wykonanie Kod rozkazu Kod operacji Określenie rejestru Argument REJESTR Def.W trybie adresowania pośredniego (rejestrowego pośredniego) kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argument Adres REJESTR Argument PAMIĘĆ Kod operacji Określenie rejestru Kod rozkazu

37 TRYB ADRESOWANIA Def.W trybie adresowania indeksowego z przemieszczeniem adres argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniem Kod rozkazu Kod operacji Określenie rejestru wartość REJESTR Przemieszczenie Argument PAMIĘĆ

38 SPOSÓB PREZENTOWANIA ROZKAZU 1. Oznaczenie symboliczne rozkazu Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu programów w asemblerze Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj operacji) i pola argumentów JMP SHORT NEXT mnemonik argument EB 03h argument kod operacji Kod rozkazu w kodzie heksadecymalnym Kod rozkazu binarnie (w pamięci)

39 SPOSÓB PREZENTOWANIA ROZKAZU 2. Opis działania rozkazu Jest możliwy w formie słownej lub symbolicznej Opis słowny: Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie równym etykieta Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie równym etykieta (u nas NEXT=100) Argumentem jest jednak nie adres komórki lecz długość skoku (interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół) Opis symboliczny: (PC) (PC) + przesunięcie czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek) czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek)

40 SPOSÓB PREZENTOWANIA ROZKAZU 3. Format rozkazu Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on następujący: Kod rozkazu przemieszczenie kod operacji argument 4. Ustawienie flagi Istotną informacją jest określenie czy są ustawiane flagi (i które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane. 5. Szybkość wykonywania rozkazu Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do wykonania rozkazu. W tym przykładzie procesor wykonuje rozkaz w 7 taktach.

41 PRZYKŁADOWE ROZKAZY Rozkazy przesłań: MOV - move - przesłanie słowa między dwoma rejestrami STR - store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci LD - load - przesłanie słowa z pamięci do wskazanego rejestru XCH - exchange - wymiana zawartości rejestrów Rozkazy arytmetyczno-logiczne: ADD - addition - dodawanie SUB - subtraction - odejmowanie MUL - multiplication - mnożenie DIV - division - dzielenie NEG - negate - negacja DEC - decrement - zmniejszanie wartości o jeden INC - increment - awiększanie wartości o jeden Rozkazy sterujące pracą programu: JMP - jump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci CALL - jump to subroutine - wywołanie podprogramu RET - return - skok powrotny z podprogramu SKIP - skip - przeskok przez jeden rozkaz Rozkazy sterujące pracą procesora : HALT - stop - zatrzymanie wykonania programu NOP - no operation - rozkaz pusty AND - conjuction - iloczyn OR - disjunction - suma EXOR - exclusive-OR -suma mod 2 NOT - complement - negacja

42 Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź przechowywania informacji lub być układami wykonawczymi. Dlaczego konieczne jest pośredniczenie? różnice w szybkości działania (konieczne jest więc sterowanie przepływem informacji)różnice w szybkości działania (konieczne jest więc sterowanie przepływem informacji) różnice w parametrach elektrycznych (konieczna więc translacja poziomu sygnałów)różnice w parametrach elektrycznych (konieczna więc translacja poziomu sygnałów) wymagają podania informacji o określonym formacie wraz z pewnymi sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją)wymagają podania informacji o określonym formacie wraz z pewnymi sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją) Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące. UKŁDY WEJŚCIA/WYJŚCIA

43 UKŁDY WEJŚCIA/WYJŚCIA WSPÓŁADRESOWALNE Z PAMIĘCIĄ Szyna adresowa PAMIĘĆ OPERACYJNA CPU I/O MEMR MEMW Def. W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są wspólne dla pamięci i układów we/wy. Np. karta graficzna

44 UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE Szyna adresowa PAMIĘĆ OPERACYJNA CPU I/O MEMR MEMW MEMW MEMR MEMW IOR IOW Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone IOR IOW IOW Sygnały sterujące dla pamięci Sygnały sterujące dla układów we/wy Np. sterownik dysku twardego

45 OPERACJE WEJŚCIA/WYJŚCIA Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej. Operacje wejścia/wyjścia mogą być realizowane: od początku do końca przy udziale procesora - przesyłana informacja przepływa przez rejestry procesora, który także steruje każdym krokiem realizacji operacji - są to operacje z bezpośrednim sterowaniem przez mikroprocesorod początku do końca przy udziale procesora - przesyłana informacja przepływa przez rejestry procesora, który także steruje każdym krokiem realizacji operacji - są to operacje z bezpośrednim sterowaniem przez mikroprocesor poprzez zainicjowanie operacji przez procesor, który następnie przekazuje nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są to operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim dostępem do pamięci - DMA).poprzez zainicjowanie operacji przez procesor, który następnie przekazuje nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są to operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim dostępem do pamięci - DMA).

46 OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor : bezwarunkowe operacje wejścia/wyjściabezwarunkowe operacje wejścia/wyjścia operacje z testowaniem stanu układu wejścia/wyjściaoperacje z testowaniem stanu układu wejścia/wyjścia operacje z przerwaniem programuoperacje z przerwaniem programu Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy realizacji której mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji za pomocą zestawu diod elektroluminescencyjnych. Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana. Operacje te są stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania zgłoszenia gotowości.

47 OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR operacje z przerwaniem programu Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z testowaniem stanu układu. Procesor wykonuje program główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do późniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu obsługi przerwań (ISR - interrupt service routine) - następuje wymiana informacji z układem we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje przerwany program główny. INSTRUKCJA 1 INSTRUKCJA 2 INSTRUKCJA 3 INSTRUKCJA 4 INSTRUKCJA 11 INSTRUKCJA 12 INSTRUKCJA 5 INSTRUKCJA 6 INSTRUKCJA 7 INSTRUKCJA 8 INSTRUKCJA 9 RET 10 Program główny Zgłoszenie przerwania Odtworzenie stanu rejestrów procesora Początek programu obsługi przerwania Zapamiętanie stanu rejestrów procesora

48 OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR operacje z przerwaniem programu W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwań. Główne zadania sterownika przerwań: pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem i układami we/wypośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem i układami we/wy przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko jedno wejście zgłoszenia przerwań)przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko jedno wejście zgłoszenia przerwań) wybór spośród wielu zgłoszeń tego, które zostanie obsłużonewybór spośród wielu zgłoszeń tego, które zostanie obsłużone sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym zostanie dokonana wymiana (adresu programu obsługi przerwania realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów przerwań)sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym zostanie dokonana wymiana (adresu programu obsługi przerwania realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów przerwań) wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do procesorawygenerowanie sygnału zgłoszenia przerwania bezpośrednio do procesora

49 OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR operacje z przerwaniem programu - tablica wektorów przerwań Początek IRS CS IP CS IP CS IP Pamięć operacyjna Numer przerwania Adres początku programu obsługi przerwania Tablica wektorów przerwań CS IP CS IP Sterownik przerwań

50 OPERACJE Z POŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR (DMA) Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do pamięci. W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a wydzielonym obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad magistralami (za pomocą sygnału HOLD) procesor inicjuje operację i przechodzi w stan zawieszenia (odseparowanie się od magistral). Po zakończeniu transmisji sterownik DMA zwraca procesorowi kontrolę nad magistralami. Szyna adresowa PAMIĘĆ OPERACYJNA STEROWNIK DMA I/O MEMR MEMW MEMW MEMR MEMW IOR IOW IOR IOW IOW CPU HOLD Inicjowanie operacji Określa: wielkość bloku do transmisjiwielkość bloku do transmisji sposób transmisji (blokowa, pojedynczymi słowami, na żądanie)sposób transmisji (blokowa, pojedynczymi słowami, na żądanie) adres pierwszej komórki bufora pamięciadres pierwszej komórki bufora pamięci rodzaj operacji (zapis, odczyt)rodzaj operacji (zapis, odczyt) zawieszenie

51 PRACA PROCESORA W TRYBIE RZECZYWISTYM I CHRONIONYM dr inż. Jacek FLOREK Instytut Informatyki Praca procesora w trybie rzeczywistym Praca procesora w trybie rzeczywistym Praca procesora w trybie chronionym Praca procesora w trybie chronionym Praca wielozadaniowa Praca wielozadaniowa Stronicowanie Stronicowanie 12

52 PRACA PROCESORA W TRYBIE RZECZYWISTYM W typowym procesorze 16 bitowym (8086/88) mamy: rejestry 16 bitowerejestry 16 bitowe magistrala danych 16 bitowamagistrala danych 16 bitowa ale szyna adresowa 20 bitowa - adres 20 bitowyale szyna adresowa 20 bitowa - adres 20 bitowy 20 bitowy adres pozwala zaadresować 2 20 = B=1MB pamięci operacyjnej dzielonej na segmenty PAMIĘĆ 1MB Segment programu (kodu) Segment danych Segment stosu Segment danych dodatkowych początek segmentu wyznacza zawartość rejestru segmentu programu CS*16 czyli rejestr CS początek segmentu wyznacza zawartość rejestru segmentu danych DS*16 czyli rejestr DS początek segmentu wyznacza zawartość rejestru segmentu stosu SS*16 czyli rejestr SS początek segmentu wyznaczają zawartości rejestrów dodatkowych segmentów danych ES (GS, FS) *16 czyli rejestr ES(GS,FS) Adres H Adres FFFFF H

53 PRACA PROCESORA W TRYBIE RZECZYWISTYM Część segmentowa adresu wyznacza adres segmentu, ale aby zaadresować określoną komórkę należy posługiwać się adresem fizycznym. Adres fizyczny (20 bitowy) określa się według reguły: Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres efektywny) rejestr segmentowy CS= adres efektywny 0 15 IP= wskaźnik rozkazów rejestr segmentu programu + adres fizyczny CS 0000 IP + + ADRES FIZYCZNY B2D F3 B6EC3 0 H =000 B 0 3 0

54 PRACA PROCESORA W TRYBIE RZECZYWISTYM O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną użyte do określania adresu fizycznego nie decyduje przypadek lecz pewne reguły wskaźnik rozkazów (IP) zawsze: rejestr segmentu programu (CS) wskaźnik stosu (SP) zawsze: rejestr segmentu stosu (SS) wskaźnik bazy (BP) rejestr segmentu stosu (SS) rejestr segmentu stosu (SS) pozostałe rejestry rejestr segmentu danych (DS) rejestr segmentu danych (DS) rejestr indeksowy przeznaczenia (DI) rejestr dodatkowy (ES) rejestr dodatkowy (ES)

55 PRACA PROCESORA W TRYBIE RZECZYWISTYM Interpretacja adresu fizycznego: zawartość rejestru segmentowego *16 podaje adres początku segmentuzawartość rejestru segmentowego *16 podaje adres początku segmentu od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnymod tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym adres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kBadres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kB pamięć jest widziana przez procesor jako 64kB oknopamięć jest widziana przez procesor jako 64kB okno okno to można przesuwać przeładowując rejestry segmentowe (skok 16B bo mnożymy przez 16)okno to można przesuwać przeładowując rejestry segmentowe (skok 16B bo mnożymy przez 16) początek segmentu (zawartość rejestru segmentowego*16) PAMIĘĆ 1MB adresowana komórka pamięci Adres H Adres FFFFF H 64kB początek segmentu (zawartość rejestru segmentowego*16) przesunięcie adres efektywny) okno przez które widziana jest pamięć

56 PRACA PROCESORA W TRYBIE RZECZYWISTYM Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie pokrywać. Jest to sytuacja niepożądana - przyjęcie za bliskich adresów segmentowych może spowodować np. zamazanie kodu programu przez zapisywane dane PAMIĘĆ Segment programu (kodu) Segment danych Segment stosu i danych dodatkowych CS=2A00 H DS=41FF H SS=4FFF H ES=4FFF H Obszar wspólny danych, stosu i danych dodatkowych Obszar wspólny stosu i danych dodatkowych

57 PRACA PROCESORA W TRYBIE RZECZYWISTYM Segmenty pamięci komputera z procesorem 8086 adres logiczny zawartość rejestru segmentowego: przesunięcie

58 PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 2 32 =4GB pamięci w systemach z procesorem Pentium procesor rozpoczyna pracę w trybie rzeczywistym, a przejście z trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez ustawienie bitu PE w rejestrze MSW (jest częścią rejestru sterującego CR0). Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. Wówczas pamięć masowa jest przedłużeniem pamięci operacyjnej. Dlatego stosuje się następujący mechanizm pamięci wirtualnej: do pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowejdo pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowej program żąda dostępu do informacji podając adres wirtualny (logiczny)program żąda dostępu do informacji podając adres wirtualny (logiczny) sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej (informacja o segmentach przechowywana jest w tablicy deskryptorów)sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej (informacja o segmentach przechowywana jest w tablicy deskryptorów) w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z dysku) do pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana informacji)w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z dysku) do pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana informacji) obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu wirtualnego na fizyczny (przy pomocy tablicy deskryptorów) poszukiwana informacja jest dostępna dla procesora z pamięci operacyjnejposzukiwana informacja jest dostępna dla procesora z pamięci operacyjnej Przypomnijmy: Pamięć masowa (PM) Pamięć operacyjna (PAO) duża pojemność, wolne działanie, niski koszt duża pojemność, wolne działanie, niski koszt mała pojemność, szybkie działanie, wysoki koszt mała pojemność, szybkie działanie, wysoki koszt

59 Adres logiczny w trybie chronionym składa się z: 16 bitowej części segmentowej (selektor segmentu)16 bitowej części segmentowej (selektor segmentu) 32 bitowego przemieszczenia (adres efektywny)32 bitowego przemieszczenia (adres efektywny) Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na segmenty zwanego segmentacją przestrzeni logicznej. Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 2 48 adresów tj. 256TB pamięci. Nie wszystkie jednak bajty części segmentowej są wykorzystane do adresowania: bajty wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k deskryptorów segmentubajty wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k deskryptorów segmentu bajty określają poziom ochronny zadania żądającego dostępu do pamięcibajty określają poziom ochronny zadania żądającego dostępu do pamięci i przestrzeń adresów widzianych przez program wynosi 64TB Tablica zajmuje jeden segment o objętości 64kB. W tablicy deskryptorów występuje 8192 pól (tzw. deskryptorów segmentów). Każdy deskryptor zawiera następujące pola: adres bazowy segmentu (32 bity)adres bazowy segmentu (32 bity) wielkość segmentu (20 bitów) - segmenty nie muszą być jednakowewielkość segmentu (20 bitów) - segmenty nie muszą być jednakowe atrybutyatrybuty czy segment obecny fizycznie w pamięci (1 bit)czy segment obecny fizycznie w pamięci (1 bit) pole dostępne dla programu (1 bit)pole dostępne dla programu (1 bit) poziom ochronny (2 bity)poziom ochronny (2 bity) ziarnistość segmentu (1 bit)ziarnistość segmentu (1 bit) długość słowa (1 bit)długość słowa (1 bit) czy segment w pamięci (1 bit)czy segment w pamięci (1 bit) typ segmentu (3 bity)typ segmentu (3 bity) czy segment użyty (1 bit)czy segment użyty (1 bit) PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM deskryptor segmentu Tablica deskryptorów...

60 + PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM Selektor segmentu PAMIĘĆ OPERACYJNA (PAO) Tablica deskryptorów deskryptor Adres efektywny (przemieszczenie) 031 Adres bazowy segment segment Adres fizyczny Jeśli w deskryptorze istnieje adnotacja, że segmentu nie ma w PAO to segment jest przenoszony z pamięci masowej do operacyjnej w miejsce innego segmentu Adres logiczny - 46 bitów

61 PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na podstawie adresu logicznego 1. Program odwołuje się do adresu logicznego składającego się z: selektora segmentuselektora segmentu adresu efektywnego (przemieszczenia)adresu efektywnego (przemieszczenia) 2. Selektor wskazuje określony deskryptor segmentu w tablicy deskryptorów 3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. Jeśli nie to następuje wczytanie segmentu do PAO z pamięci masowej. Z deskryptora można określić również: adres początku segmentu = adres bazowyadres początku segmentu = adres bazowy adres końca segmentu = adres bazowy + wielkość segmentuadres końca segmentu = adres bazowy + wielkość segmentu Jeśli przemieszczenie będzie większe od wielkości segmentu to procesor nie dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu (tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym Jeśli przemieszczenie będzie większe od wielkości segmentu to procesor nie dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu (tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym 4. Odczytanie z deskryptora adresu bazowego i dodanie do niego przemieszczenia (adresu efektywnego) w celu określenia adresu fizycznego poszukiwanej komórki pamięci.

62 Procesory Pierwszy procesor bitowy, 1971 r. na zamówienie japońskiej firmy ETI, przeznaczony do kalkulatora Procesor zawarty był w pojedynczym układzie, składał się z około 2300 tranzystorów upakowanych na powierzchni 10 mikrometrów i pracował z częstotliwością 108 KHz.

63 Procesory Procesor bitowy, 1976 r., firma INTEL Procesor bitowy, wykorzystujący 16bitowe rejestry Do komputerów PC XT i AT 1MB przestrzeń adresowa Zegar 4.77 – 10 MHz

64 Procesory Procesor bitowy, bitowy, wykorzystujący 16bitowe rejestry Do komputerów PC XT i AT 1MB przestrzeń adresowa Zegar 4.77 – 10 MHz


Pobierz ppt "SYSTEM LOGICZNY Wykład Jacka FLORKA (http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej."

Podobne prezentacje


Reklamy Google