Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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 AE = A 0 3 4 15 Kod operacji Adres argumentu pamięć
Kod operacji Adres argumentu pamięć Argument AE = A
8
Tryb pośredni AE = (A) Możliwe zagnieżdżenia! 0 3 4 15 Kod operacji
Kod operacji Adres informacji o adresie argumentu pamięć AE = (A) Argument Możliwe zagnieżdżenia!
9
Tryb rejestrowy AE = R 0 3 4 15 Kod operacji Nazwa (numer rejestru)
Kod operacji Nazwa (numer rejestru) rejestry Argument AE = R
10
Tryb rejestrowy pośredni
Kod operacji Nazwa (numer) rejestru rejestry pamięć Adres Argument AE = (R)
11
Tryb z przesunięciem AE = (A)+(R) 0 3 4 15 Kod operacji
Kod operacji Nazwa (numer) rejestru Adres argumentu rejestry pamięć Adres 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 Rejestr z adresem argumentu Wartość przesunięcia Kod operacji Rejestr z przesunięciem Adres argumentu
14
Tryb stosowy 0 3 4 15 Kod operacji Adres argumentu stos rejestry
Kod operacji Adres argumentu stos rejestry Rejestr stosu
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 (20 MB) 28 MB wolne 16 MB (SO) Proces (20 MB) Proces 2 (16) MB 12 MB wolne 16 MB (SO) Proces (18 MB) Proces 2 (16) MB 12 MB wolne
19
Stronicowanie Proces A: pamięć pamięć Strona 0 Strona 1 11 Strona 2 11
12 13 14 15 16 17 18 11 12 13 14 15 16 17 18 Strona 0 Strona 1 Tablica stron procesu A: 11 12 15 Wolne ramki: 11 12 15 16 18 Strona 2
20
Adresy fizyczne i logiczne w strukturze stron
pamięć Adres logiczny Adres fizyczny 11 12 13 14 15 16 17 18 Strona 0 1 30 12 30 Strona 1 Tablica stron procesu A: 11 12 15 Strona 2
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 TAK Zapis w TLB? Sprawdzanie TLB Aktualizacja TLB NIE Dostęp do tablicy stron Generacja adresu fizycznego NIE Obsługa błędu strony Strona w pamięci? TAK STOP
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
Adres wirtualny Odniesienie do segmentu Adres względny 16 bitów 32 bity 2 bity odniesienia do segmentu przeznaczone na mechanizm ochrony Adres względny pozwala adresować 232 = 4 GB pamięci Całkowita ilość adresowanej pamięci wynosi 216 x 232 = 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)
26
Selektor i deskryptor segmentu
Indeks TI PRV 31 D/B AVL Baza 31-24 GS 19-16 G P DPL S Type Baza 23-16 Baza 15-0 Granica segmentu 15-0
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 indeksowy Rejestr bazowy Selektor Pamięć Adres bazowy segmentu Skala Przemieszczenie Adres liniowy Rejestr deskryptora 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 rzeczywisty Segment Strona Selektor bajtu Numer strony rzeczywistej Wyró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 27 = 128 słów Ósmy bit jest znacznikiem numeru strony
38
Rozkazy PDP-8 Rozkazy z odniesieniem do pamięci
Operacja D/I Z/C Przemieszczenie Rozkazy wejścia/wyjścia Urządzenie Kod operacji Mikrooperacje i rozkazy z odniesieniem do rejestrów x CLA CLL CMA CML RAR RAL BSW IAC
39
Rozkazy PDP-10 Elementy instrukcji są ortogonalne
Adresowanie wyłącznie bezpośrednie 36-bitowy rozkaz i dane Operacja Rejestr I Rejestr indeksowy Adres w pamięci
40
Format rozkazów Pentium
0-4 B B B B B B Przedrostki Kod operacji ModR/M SIB Przesunięcie Natychmiastowe Specyfikator adresu
41
Format rozkazów PowerPC
6 b b b b Operacja Opcje/rejestr Opcje/rejestr przeznaczenia źródłowy Wszystkie rozkazy mają długość 32 bitów!
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.