Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Architektura komputerów Wykład nr 5: Sposoby adresowania Piotr Bilski.

Podobne prezentacje


Prezentacja na temat: "Architektura komputerów Wykład nr 5: Sposoby adresowania Piotr Bilski."— Zapis prezentacji:

1 Architektura komputerów Wykład nr 5: Sposoby adresowania Piotr Bilski

2 Skąd potrzeba różnych trybów adresowania? Przestrzeń pamięci rzeczywistej lub wirtualnej jest zwykle większa od przestrzeni adresowanej przez argument (zbyt mała liczba bitów) Konieczny jest kompromis pomiędzy zakresem adresów i prostotą uzyskiwania adresu

3 Adres rzeczywisty (efektywny) a adres wirtualny Adres rzeczywisty jest adresem fizycznego miejsca w pamięci Adres wirtualny (efektywny - AE) jest adresem przechowywanym jako argument rozkazu Proces translacji adresu wirtualnego na rzeczywisty jest zależny od organizacji pamięci

4 Konwencja zapisu AE – adres efektywny R – zawartość pola adresowego w rozkazie odnoszącym się do rejestru A – zawartość pola adresowego w rozkazie (X) – zawartość lokacji X

5 Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem Stosowy

6 Tryb natychmiastowy Kod operacji Wartość argumentu Argument jest przechowywany w rozkazie w postaci liczby o reprezentacji U2. Liczba ta nie może być zbyt duża

7 Tryb bezpośredni Kod operacji Adres argumentu Argument pamięć AE = A

8 Tryb pośredni Kod operacji Adres informacji o adresie argumentu Argument pamięć AE = (A) Możliwe zagnieżdżenia!

9 Tryb rejestrowy Kod operacji Nazwa (numer rejestru) Argument rejestry AE = R

10 Tryb rejestrowy pośredni Kod operacji Adres rejestry Nazwa (numer) rejestru pamięć Argument AE = (R)

11 Tryb z przesunięciem Kod operacji Adres argumentu Adres rejestry Nazwa (numer) rejestru pamięć Argument AE = (A)+(R)

12 Adresowanie z przesunięciem c.d. Adresowanie względne (R=PC) Adresowanie z rejestrem podstawowym (wygodne dla pamięci segmentowanej) – AE=R+A Indeksowanie (interpretacja pola rejestru i pola adresowego odwrotna niż w przypadku adresowania z rejestrem podstawowym) – AE=A+R

13 Adresowanie z przesunięciem c.d. Adresowanie z rejestrem podstawowym Indeksowanie (wykorzystuje dedykowany rejestr indeksowy) Kod operacji Wartość przesunięcia Rejestr z adresem argumentu Kod operacji Adres argumentuRejestr z przesunięciem

14 Tryb stosowy Kod operacji Adres argumentu Rejestr stosu rejestry stos

15 Typy adresów Fizyczny – umiejscowienie adresu w pamięci Logiczny – umiejscowienie adresu względem początku programu Bazowy – adres początku programu

16 Organizacja pamięci z poziomu systemu operacyjnego Pamięć stronicowana (model niewidzialny dla programisty) – podzielona jest na małe fragmenty (ramki stron), które przydzielane są fragmentom (stronom) programów Pamięć segmentowana (model dostępny dla programisty) – zapewnia odrębną przestrzeń adresową dla każdego procesu

17 Partycjonowanie z ustalonym rozmiarem Jest to podział pamięci na fragmenty o ustalonych rozmiarach (stałych lub zmiennych) 16 MB (SO) 16 MB 16 MB (SO) 4 MB 8 MB 16 MB

18 Partycjonowanie z rozmiarem dynamicznym Jest to podział pamięci na fragmenty o rozmiarach zależnych od zapotrzebowania procesów 16 MB (SO) 48 MB wolne 16 MB (SO) Proces 1 (20 MB) 28 MB wolne 16 MB (SO) Proces 1 (20 MB) Proces 2 (16) MB 12 MB wolne 16 MB (SO) Proces 3 (18 MB) Proces 2 (16) MB 12 MB wolne

19 Stronicowanie pamięć Proces A: Strona 0 Strona 1 Strona 2 Wolne ramki: pamięć Strona 0 Strona 1 Strona 2 Tablica stron procesu A:

20 Adresy fizyczne i logiczne w strukturze stron Adres logiczny 1 30 Tablica stron procesu A: pamięć Strona 0 Strona 1 Strona 2 Adres fizyczny 12 30

21 Translation Lookaside Buffer Pamięć podręczna dla ostatnich translacji adresów w pamięci Bardzo szybka i mała TLB współpracuje z prawdziwą pamięcią podręczną Niewłaściwy projekt prowadzi do problemów w systemie (patrz procesory Phenom)!

22 Bufor translacji adresów (TLB) START STOP Sprawdzanie TLB Zapis w TLB? TAK NIE Dostęp do tablicy stron Strona w pamięci? Generacja adresu fizycznego Aktualizacja TLB Obsługa błędu strony NIE TAK

23 Segmentacja Prostota zarządzania strukturami danych o zmiennej wielkości Możliwość indywidualnego przypisywania praw procesom do poszczególnym segmentom Możliwość użytkowania segmentu przez wiele procesów Adresowanie: numer segmentu + adres względny

24 Przestrzenie adresowe Pentium Niesegmentowana pamięć niestronicowana (adres wirtualny = adres fizyczny) - sterowniki Niesegmentowana pamięć stronicowana (BSD) Segmentowana pamięć niestronicowana Segmentowana pamięć stronicowana (UNIX System V)

25 Segmentacja w Pentium II 2 bity odniesienia do segmentu przeznaczone na mechanizm ochrony Adres względny pozwala adresować 2 32 = 4 GB pamięci Całkowita ilość adresowanej pamięci wynosi 2 16 x 2 32 = 64 TB Dostęp procesu do segmentu zależny jest od poziomu dostępności (oznaczany cyfrą od 0 – najwyższy do 3 - najniższy) Adres wirtualny Odniesienie do segmentu 16 bitów Adres względny 32 bity

26 Selektor i deskryptor segmentu Indeks PRVTI Baza 15-0 Granica segmentu 15-0 Baza GS G AVLAVL D/BD/B Baza P DPL S Type

27 Stronicowanie w Pentium II Istnieje katalog stron o długości 1024 wpisów, dzielący pamięć na tyleż grup stron Każda grupa stron zawiera do 1024 wpisów Każda strona ma rozmiar 4 kB lub 4MB (w zależności od wartości bitu PSE) Tablice stron mogą być przechowywane w pamięci wirtualnej Bufor translacji adresów zawiera do 32 zapisów tablic stron dla określonego katalogu stron

28 Stronicowanie/segmentacja w Pentium II

29 Tryby adresowania Pentium Pentium posiada sześć rejestrów segmentowych (SR) do przechowywania adresów początkowych segmentów Z rejestrem segmentowym związany jest rejestr deskryptora segmentu (zawiera prawa dostępu do segmentu i jego długość) Dodatkowe rejestry (podstawowy i indeksowy) pomagają budować adres

30 Tryby adresowania Pentium c.d. Natychmiastowy (Arg = A) Rejestrowy (AL = R) Z przesunięciem (AL = (SR) + A) Z rejestrem podstawowym (AL = (SR) + (B)) Z rejestrem podstawowym z przesunięciem (AL = (SR) + (B) + A) Skalowane indeksowanie z przesunięciem (AL = (SR) + (I) x S + A) Z rejestrem podstawowym z indeksem i przesunięciem (AL = (SR) + (B) + (I) + A) Z rejestrem podstawowym ze skalowanym indeksem i przesunięciem (AL = (SR) + (I) x S + (B) + A) Względny (AL = (PC) + A)

31 Ilustracja trybów adresowania Pentium Rejestr segmentu Rejestr deskryptora Selektor Adres liniowy Rejestr bazowy Rejestr indeksowy Skala Przemieszczenie Pamięć Adres bazowy segmentu Granica

32 Zarządzanie pamięcią w PowerPC Implementacja zależna jest od architektury (32- lub 64-bitowej – prostsza lub bardziej złożona segmentacja) Mechanizm translacji adresu bloku stosowany jest jako alternatywa dla mechanizmu stronicowania – pozwala ominąć stronicowanie dla dużych bloków pamięci Posiada 16 rejestrów segmentowych

33 Adres efektywny i rzeczywisty PowerPC Adres efektywny Adres rzeczywisty Segment StronaSelektor bajtu Numer strony rzeczywistejWyrównanie bajta

34 Tryby adresowania PowerPC Pośredni (AE = (BR) + D ) Pośredni indeksowany (AE = (BR) +(IR)) Adresowanie rozgałęzień –Bezwzględny (AE = I) –Względny (AE = (PC) +I) –Pośredni (AE = (LR/CR)) Rejestrowy stałopozycyjny (AE = GPR) Natychmiastowy (Arg = I) Rejestrowy zmiennopozycyjny (AE = FPR)

35 Format rozkazu Długość rozkazu jest ograniczona przez szerokość stosowanych magistral Długość rozkazu powinna być równa szerokości magistrali lub jej wielokrotności Konieczny jest kompromis pomiędzy liczbą bitów przeznaczoną na kod rozkazu a przestrzenią adresową Rozkazy zawierające kody o zmiennej długości są bardziej elastyczne

36 Kryteria projektowania rozkazów Liczba trybów adresowania Liczba argumentów Liczba rejestrów i ich zestawów Zakres adresów Stopień granulacji adresu (adresowanie po bajcie, czy po słowie?)

37 Przykład formatu w PDP-8 Rozkazy i dane o długości 12 bitów Jeden rejestr – akumulator Pamięć jest podzielona na strony o długości 2 7 = 128 słów Ósmy bit jest znacznikiem numeru strony

38 Rozkazy PDP-8 Operacja D/I Z/CPrzemieszczenie Urządzenie Kod operacji x CLA CLL CMA CML RAR RAL BSW IAC Rozkazy z odniesieniem do pamięci Rozkazy wejścia/wyjścia Mikrooperacje i rozkazy z odniesieniem do rejestrów

39 Rozkazy PDP-10 Elementy instrukcji są ortogonalne Adresowanie wyłącznie bezpośrednie 36-bitowy rozkaz i dane Operacja Rejestr I Rejestr indeksowyAdres w pamięci

40 Format rozkazów Pentium Przedrostki Kod operacji ModR/M SIB Przesunięcie Natychmiastowe 0-4 B 1-2 B 0-1 B 0-1 B 0-4 B 0-4 B Specyfikator adresu

41 Format rozkazów PowerPC Wszystkie rozkazy mają długość 32 bitów! 6 b 5 b 5 b 16 b Operacja Opcje/rejestr Opcje/rejestr przeznaczenia źródłowy


Pobierz ppt "Architektura komputerów Wykład nr 5: Sposoby adresowania Piotr Bilski."

Podobne prezentacje


Reklamy Google