Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przetwarzanie informacji (2)

Podobne prezentacje


Prezentacja na temat: "Przetwarzanie informacji (2)"— Zapis prezentacji:

1 Przetwarzanie informacji (2)
Wykład Jacka FLORKA ( ) Ewa Banachowicz Zakład Biofizyki Molekularnej Przetwarzanie informacji (2) SYSTEM LOGICZNY 1

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: układy kombinacyjne układy sekwencyjne 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 asynchroniczne ukł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 matrycowe układy zbudowane z bramek bloki kombinacyjne 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 układy sekwencyjne: przerzutniki rejestry liczniki ..... 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 wyjść (przyporządkowuje sygnały wyjściowe stanom układu i wzbudzeniom)

5 PRZERZUTNIKI Def.1. Przerzutniki są podstawowymi elementami układów sekwencyjnych, których zasadniczym zadaniem jest pamiętanie jednego bitu informacji 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

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

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 Jednym 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 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) rejestr rejestr rejestr a 0 ... a 3 a 2 a 1 a 0 a 3 a 2 a 1 a 0 a 3 a 2 a 1 CLK CLK CLK T1 T2 T3

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) pojemność licznika kod zliczania Rodzaje liczników: liczące w przód (następnikowe) liczące w tył (poprzednikowe) rewersyjne (mozliwość zmiany kierunku zliczania) szeregowe (asynchroniczne) równoległe (synchroniczne) Q0 Q1 Q2 Q3 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ę) CEP CET TC CLK LICZNIK LD CLR D0 D1 D2 D3

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 Układ odseparowany ODB

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

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 Organizacja maszyny cyfrowej

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

17 PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM
1 PROCESOR PAMIĘĆ Adres Dane Odczyt 1 2 3 4 Adres 2 PROCESOR Z PROCESORA DO PAMIĘCI PAMIĘĆ Z PAMIĘCI DO PROCESORA 4 Zapis Dane 3 3 1 1 Adres Adres Z WEJŚCIA DO PROCESORA PROCESOR UKŁAD WY-WE PROCESOR UKŁAD WY-WE Z PROCESORA NA WYJŚCIE 4 Odczyt Dane 4 Zapis Dane 3 3 2 2

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

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

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

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

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 stos lub stos Program główny Adres 101 Instrukcja Wywołanie podprogramu I (adres 104 na stos) 102 Instrukcja 103 Call 1002 Instrukcja Wywołanie podprogramu II 1003 Instrukcja (adres 1005 na stos) 1004 Call 2001 Instrukcja 2002 Instrukcja 2003 Return 1005 Instrukcja 1006 Instrukcja Powrót z podprogramu II 1007 Return (do adresu 1005 odczytanego ze stosu) 104 Instrukcja 105 Instrukcja Powrót z podprogramu I 106 Instrukcja (do adresu 104 odczytanego ze stosu) 107 Instrukcja

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

25 flaga zezwolenia na przerwanie flaga przeniesienia pomocniczego
flaga nadmiaru flaga zezwolenia na przerwanie flaga kierunku flaga znaku flaga zera flaga przeniesienia pomocniczego flaga parzystości 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 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) Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. Przykład 4 bitowego ALU SN74181 Lp S0 - S M= M=1 A0 - A3 F0 - F3 B0 - B3 M S0 - S3 Sygnały sterujące do wyboru mikrooperacji logicznej (M=0) lub arytmetycznej (M=1)

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 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) Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. A0 - A3 F0 - F3 B0 - B3 M S0 - S3

28 UKŁAD STEROWANIA Cechy takiego automatu to:
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ść zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji). W praktyce realizowane są jako: generatory sekwencyjne układy mikroprogramowalne

29 ROZKAZY I TRYB ADRESOWANIA
Cykl rozkazowy Lista i format rozkazu Tryb adresowania 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. cykl pobrania argumentu I cykl pobrania argumentu II cykl pobrania rozkazu cykl zapisu wyniku Pamięć POBRANIE ROZKAZU POBRANIE ARGUMENTU I POBRANIE ARGUMENTU II ZAPIS WYNIKU CPU WYSŁANIE ADRESU ROZKAZU DEKODOWANIE ROZKAZU OBLICZANIE ADRESU ARGUMENTU I OBLICZANIE ADRESU ARGUMENTU II OBLICZENIE ADRESU PRZEZNACZE- NIA WYKONANIE ROZKAZU

31 CYKL ROZKAZOWY PROCESORA
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 PC(AD) RR kod rozkazu procesor pamięć szyna adresowa szyna danych Cykl von Neumana 1 2 3 4 w przypadku rozkazów wielobajtowych 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 rozkazu odczyt jednego bajtu adresu odczyt 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)

32 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 A odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B dodanie obu argumentów przesłanie wyniku do komórki pamięci o adresie 915 16

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

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 rozkazu moż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: rejestrach pamięci kodzie rozkazu Rozróżniamy następujące tryby adresowania adresowanie natychmiastowe adresowanie bezpośrednie adresowanie rejestrowe adresowanie pośrednie adresowanie 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 operacji Kod rozkazu 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 operacji Kod rozkazu PAMIĘĆ Adres Argument

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 REJESTR Kod rozkazu Określenie rejestru Kod operacji Argument 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 REJESTR Kod rozkazu Określenie rejestru Kod operacji Adres Argument PAMIĘĆ

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 REJESTR Określenie rejestru Kod operacji wartość 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 kod operacji argument JMP SHORT NEXT EB 03h mnemonik argument 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” (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)

40 SPOSÓB PREZENTOWANIA ROZKAZU
3. Format rozkazu Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on następujący: kod operacji Kod rozkazu argument przemieszczenie 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 AND - conjuction - iloczyn OR - disjunction - suma EXOR - exclusive-OR -suma mod 2 NOT - complement - negacja 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

42 UKŁDY WEJŚCIA/WYJŚCIA
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 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ą) Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.

43 UKŁDY WEJŚCIA/WYJŚCIA WSPÓŁADRESOWALNE Z PAMIĘCIĄ
PAMIĘĆ OPERACYJNA I/O Np. karta graficzna CPU MEMR MEMW MEMR MEMW MEMR MEMW Szyna adresowa 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.

44 UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE
PAMIĘĆ OPERACYJNA I/O Np. sterownik dysku twardego CPU MEMR MEMW IOR IOW MEMR MEMW IOR IOW Sygnały sterujące dla pamięci Sygnały sterujące dla układów we/wy Szyna adresowa 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

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

46 OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR
Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor : bezwarunkowe operacje wejścia/wyjścia operacje z testowaniem stanu układu wejścia/wyjścia operacje 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. Program główny INSTRUKCJA 1 Zgłoszenie przerwania INSTRUKCJA 2 INSTRUKCJA 3 INSTRUKCJA 4 INSTRUKCJA 11 INSTRUKCJA 12 Zapamiętanie stanu rejestrów procesora Odtworzenie stanu rejestrów procesora INSTRUKCJA 5 Początek programu obsługi przerwania INSTRUKCJA 6 INSTRUKCJA 7 INSTRUKCJA 8 INSTRUKCJA 9 RET 10

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/wy 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ż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ń) wygenerowanie 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ń Pamięć operacyjna Początek IRS Tablica wektorów przerwań Adres początku programu obsługi przerwania CS Sterownik przerwań IP Numer przerwania CS IP CS IP CS IP CS IP

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. HOLD STEROWNIK DMA PAMIĘĆ OPERACYJNA I/O CPU Inicjowanie operacji MEMR MEMW IOR IOW MEMR MEMW IOR IOW zawieszenie Określa: wielkość bloku do transmisji sposób transmisji (blokowa, pojedynczymi słowami, na żądanie) adres pierwszej komórki bufora pamięci rodzaj operacji (zapis, odczyt) Szyna adresowa

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

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

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 segmentu programu 0 3 15 15 rejestr segmentowy 0000 adres efektywny CS= IP= wskaźnik rozkazów + CS 0000 + IP + 19 ADRES FIZYCZNY adres fizyczny B2D60 + 47F3 B6EC3 0H=000B

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) pozostałe rejestry rejestr segmentu danych (DS) rejestr indeksowy przeznaczenia (DI) rejestr dodatkowy (ES)

55 PRACA PROCESORA W TRYBIE RZECZYWISTYM
Interpretacja adresu fizycznego: zawartość rejestru segmentowego *16 podaje adres początku segmentu od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym adres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kB pamięć jest widziana przez procesor jako 64kB okno 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ĘĆ Adres 00000H początek segmentu (zawartość rejestru segmentowego*16) przesunięcie adres efektywny) 64kB 1MB adresowana komórka pamięci okno przez które widziana jest pamięć Adres FFFFFH

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ĘĆ CS=2A00H Segment programu (kodu) DS=41FFH Segment danych SS=4FFFH Obszar wspólny danych, stosu i danych dodatkowych Segment stosu i danych dodatkowych Obszar wspólny stosu i danych dodatkowych ES=4FFFH

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 Pamięć operacyjna (PAO)
Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 232=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. Przypomnijmy: Pamięć masowa (PM)  duża pojemność, wolne działanie, niski koszt Pamięć operacyjna (PAO)  mała pojemność, szybkie działanie, wysoki koszt Dlatego stosuje się następujący mechanizm pamięci wirtualnej: do pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowej 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) 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) poszukiwana informacja jest dostępna dla procesora z pamięci operacyjnej

59 PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Adres logiczny w trybie chronionym składa się z: 16 bitowej części segmentowej (selektor segmentu) 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 248 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 segmentu bajty 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) wielkość segmentu (20 bitów) - segmenty nie muszą być jednakowe atrybuty czy segment obecny fizycznie w pamięci (1 bit) pole dostępne dla programu (1 bit) poziom ochronny (2 bity) ziarnistość segmentu (1 bit) długość słowa (1 bit) czy segment w pamięci (1 bit) typ segmentu (3 bity) czy segment użyty (1 bit) deskryptor segmentu deskryptor segmentu deskryptor segmentu ... Tablica deskryptorów

60 PAMIĘĆ OPERACYJNA (PAO)
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM Adres logiczny - 46 bitów 15 13 31 Selektor segmentu Adres efektywny (przemieszczenie) PAMIĘĆ OPERACYJNA (PAO) Adres bazowy + deskryptor Tablica deskryptorów Adres fizyczny segment segment 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

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 segmentu 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 bazowy adres 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 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 4004 4 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 8086 16 bitowy, 1976 r., firma INTEL Procesor 8088
8 bitowy, wykorzystujący 16bitowe rejestry Do komputerów PC XT i AT 1MB przestrzeń adresowa Zegar 4.77 – 10 MHz

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


Pobierz ppt "Przetwarzanie informacji (2)"

Podobne prezentacje


Reklamy Google