Sprzętowe wspomaganie pamięci wirtualnej



Podobne dokumenty
Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Schematy zarzadzania pamięcia

Mikroinformatyka. Tryb wirtualny

Mikroinformatyka. Mechanizmy ochrony pamięci

architektura komputerów w. 8 Zarządzanie pamięcią

Architektura komputerów

Mikroinformatyka. Wielozadaniowość

Programowanie Niskopoziomowe

Zarządzanie zasobami pamięci

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

dr inż. Jarosław Forenc

Zarządzanie pamięcią w systemie operacyjnym

Wybrane zagadnienia elektroniki współczesnej

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Zarządzanie pamięcią operacyjną

Mikroprocesory rodziny INTEL 80x86

Od programu źródłowego do procesu

ARCHITEKTURA PROCESORA,

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Organizacja typowego mikroprocesora

Architektura komputerów

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

WOJSKOWA AKADEMIA TECHNICZNA

Pamięć wirtualna w AS/400

Procesory rodziny x86. Dariusz Chaberski

Systemy operacyjne III

Wykład 7. Zarządzanie pamięcią

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Programowanie niskopoziomowe

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Zaawansowane Architektury Procesorów Część 1

Architektura komputerów

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Zarządzanie pamięcią operacyjną

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Współpraca procesora ColdFire z pamięcią

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Procesory rodziny Intel

Podstawowe zagadnienia informatyki

Architektura systemów informatycznych

1 Moduł Modbus ASCII/RTU 3

Programowanie w asemblerze Środowiska 64-bitowe

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Systemy Operacyjne Pamięć wirtualna cz. 2

Hierarchia pamięci w systemie komputerowym

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Architektura komputerów

Spis treści. 1 Moduł Modbus TCP 4

Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086.

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

System pamięci. Pamięć wirtualna

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

1 Moduł Modbus ASCII/RTU

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Technologie informacyjne (2) Zdzisław Szyjewski

System pamięci. Pamięć wirtualna

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

Stronicowanie w systemie pamięci wirtualnej

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Ćwiczenie 2 3. Tryb chroniony

Architektura systemów informatycznych

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Podstawy. Pamięć wirtualna. (demand paging)

Struktura i działanie jednostki centralnej

Mapowanie bezpośrednie

Architektura komputera typu PC z procesorem IA-32

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Organizacja pamięci wewnętrznej komputerów

System pamięci. Pamięć wirtualna

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Architektura systemu komputerowego

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Pamięć wirtualna w systemie AS/400. Tomasz Kokoszka

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Programowanie w asemblerze Środowiska 64-bitowe

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym:

Wykład 10 Zarządzanie pamięcią

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Programowanie mikroprocesorów jednoukładowych

Struktura systemów komputerowych

Logiczny model komputera i działanie procesora. Część 1.

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

organizacja procesora 8086

Rozszerzalne kody operacji (przykład)

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

dr inż. Jarosław Forenc

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Transkrypt:

Sprzętowe wspomaganie pamięci wirtualnej Stanisław Skonieczny 6 grudnia 2002 Spis treści 1 Intel 2 1.1 Tryby pracy procesora............................... 2 1.2 Adresowanie liniowe................................ 2 1.3 Adresowanie rzeczywiste.............................. 2 1.4 Segmentacja..................................... 3 1.5 Stronicowanie.................................... 4 2 PowerPC 5 3 MIPS32 5 3.1 Segmenty...................................... 6 3.2 TBL......................................... 6 4 Alpha 7 1

1 Intel 1.1 Tryby pracy procesora Poczawszy od architektury 386, Intel wspiera trzy tryby pracy procesora: Tryb chroniony Podstawowy tryb pracy procesora. Model pamięci zależy tu od systemu. Dozwolone są: segmentacja, stronicowanie, adresowanie liniowe, adresowanie rzeczywiste. Możliwe jest nawet stosowanie różnych modelów dla różnych procesów. Tryb rzeczywisty Zapewnia środowisko procesora 8086 z niewielkimi zmianami (takimi jak przełączanie się do innych trybów). Adresowanie rzeczywiste. Tryb systemowy Jest to tryb, do którego proces przełącza się, by wykonać swoje własne zadania (np. zarzšdzanie energią). Po ich wykonaniu powraca do poprzedniego stanu. W tym trybie procesor działa na oddzielnej przestrzeni adresowej (SMRAM), adresowanej podobnie jak w trybie rzeczywistym. 1.2 Adresowanie liniowe Najprostsze rozwiązanie. Adres logiczny równy jest adresowi fizycznemu. Wszystkie rejestry segmentów ustawione są na zero. 1.3 Adresowanie rzeczywiste Jest to podstawowy sposób adresowania w architekturach starszych niż 386. Do pamięci odwołujemy się używajšc dwóch 16-bitowych rejestrów: segmentu i offsetu. Adres fizyczny uzyskujemy przez przesunięcie z lewo rejestru segmentu o 4 bity i dodanie offsetu. Przestrzeń adresowa nie większa niż 1M bajt. Rozmiar segmentu stały, równy 64k bajtów. 2

16 3 2 INDEX TI RPL 0 Rysunek 1: Selektor segmentu 64 5655545352 4847 4544 Base 31:24 G D/BOAVLLimit 19:16 P DPL S Type 40 Base 32:16 32 32 16 0 Base Adress 15:00 Segment limit 15:00 1.4 Segmentacja Rysunek 2: Deskryptor segmentu Segmenty nie muszą mieć stałej długości, a maksymalny rozmiar wynosi 4G bajty. W architekturze i386 mamy 6 rejestrów segmentowych: CS, DS, ES, FS, GS, SS. CS wskazuje na segment z kodem, SS na segment ze stosem, pozostałe na segmenty z danymi. Tablice deskryptorów segmentów (globana i lokalna) GDT (Global Descriptor Table) jest strukturą umieszczoną w pamięci, wskazywaną przez GDTR (GDTRegister). Może być tylko jedna w systemie. Zawiera wpisy dla sementów zawierających LDT. LDT (Local Descriptor Table) jest lokalną tablicą przechowująca deskryptory segmentów. Moźe być ich wiele, jednak zawsze wyróżnione jest, z której korzystamy, przez zawartość rejestru LDTR. Do rejestru lokalnej tablicy deskryptorów wczytujemy dane instrukcją LLDT z globalnej tablicy deskryptorów. Odwołanie do pamięci składa się z dwóch rejestrów. Do pierwszego, rejestru segmentu ładujemy selektor segmentu (16 bitów) jednš z operacji: MOV, POP, LDS, LES, LFS, LGS czy LSS. Selektor sementu określa, czy odwołujemy się do GDT, czy LDT Wtedy też do ukrytej częsci segmentu procesor wczytuje informacje z deskryptora segmentu, aby nie ładować w czasie odwołania do pamięci. Drugi rejestr jest offsetem wewnątrz segmentu (32 bity). Deskryptor segmentu jest 64 bitowy. Zawiera takie informacje, jak: Base adress - poczštek segmentu w pamięci fizycznej (32 bity) Segment limit - jego rozmiar (20 bitów) DPL (descriptor privillege level) - poziom uprzywilejowania 3

Segment selector TI=0 TI=1 GDT LDT GDTR LDTR Rysunek 3: Relacja tablic segmentów Flaga S - rodzaj. Może być: 0=system, 1=kod lub dane Typ - między innymi np. kierunek rozrostu, prawa odczytu, zapisu, czy był używany, czy jest wykonywalny Flaga P - obecność w pamięci, czyli czy generować wyjątek segment-not-present przy dostępie Flaga D/B - dla kodu specyfikuje długość adresu i operandów, dla danych górną granicę segmentu: 4GB/64kB. Flaga G (granulacja) - determinuje skalowanie limitu segmentu: 0-limit w bajtach, 1-limit w 4kB 1.5 Stronicowanie Ze stronicowanie można korzystać w trybie adresowania liniowego, lub segmentacji. Jeśli jest włączone, to adres fizyczny, jaki dadzą powyższe techniki zostanie zamieniony na adres logiczny dla stronicowania. Mamy dostępne trzy techniki stronicowania: 4

PG - paging (od 386) PSE - page size extension (Pentium, Pentium Pro) PAE - phisical address extension (Pentium, Pentium Pro) Technika PG wspomaga działanie wielu procesów w trybie virtual 8086. Jest to stronicowanie na żądanie. Tryb virtual 8086 jest determinowany flagą procesora w trybie chronionym. Poszczególne procesy widzą wtedy swoją przestrzeń adresową jak w trybie rzeczywistym. PSE umożliwia korzystanie z dużych stron (2MB, 4MB). PAE daje 36-bitową przestrzeń adresową. Tłumaczenie adresu dla stron 4-KB Adres 32 bitowy dzielony jest na 3 części. Najstarsze 10 bitów jest indeksem w katalogu stron, określającym tablicę stron. Następne 10 bitów to numer indeksu w tablicy stron. Przesunięcie to ostatnie 12 bitów. Tłumaczenie adresu dla stron 4-MB W tym wypadku mamy 10 starszych bitów jako numer indeksu w katalogu stron i 22 bitowy offset. 2 PowerPC Architektura PowerPC pozwala mapować pamięć wirtualną na pamięć fizyczną. Segmenty są 256M bajtowymi ciągłymi obszarami pamięci. 16 segmentów pozwala adresować do 4G bajtów pamięci. Przy wyliczaniu adresu fizycznego górne 4 bity 32 bitowego adresu oznaczają segment. Pozostałe 28 bitów jest offsetem w obrębie segmentu. Rejestry segmentów są 24 bitowe, więc adres pośredni jest 52 bitowy. Teraz starsze 40 bitów jest wirtualnym numerem strony, a 12 młodszych przesunięciem wewnątrz strony. Wirtualny adres strony jest zamieniany na 20 bitowy adres strony fizycznej. Adres wyjściowy jest więc ma tak jak na początku - 32 bity. Tablice stron w architekturze PowerPC są haszujące. Oznacza to, że aby znależć stronę fizyczną dla danej strony wirtualnej, musimy przejrzeć listę wpisów. Ochronę zasobów zapewniają rejestry systemowe, które modyfikować może tylko system. Posiadają one 24 bitowe identyfikatory dostępu, oznaczające kto ma dostęp do danego segmentu. 3 MIPS32 Pamięć wirtualna w architekturze MIPS wspiera stronicowanie, poprzez obecność rejestrów TLB. Umożliwia także ochronę obszarów pamięci dzięki identyfikatorom obszarów pamięci: identyfikator procesu musi się zgadzać z identyfikatorem zapisanym w tablicy TLB. Architektury R2000 oraz R3000 zapewniają 64 takie identyfikatory, architekrura R10000 zapewnia 256. Zmusza to, by w przypadku, gdy jest więcej uruchomionych procesów, niektóre z nich dzieliły przestrzeń adresową. 5

3.1 Segmenty W architekturze MIPS32 logiczna przestrzeń adresowa jest 32-bitowa, podzielona na 5 segmentów, zorganizowanych w następujący sposób: Segment Opis Poczatek Koniec kseg3 Kernel Mapped E000 0000 FFFF FFFF kseg Supervizor Mapped C000 0000 DFFF FFFF kseg1 Kernel Unmapped Uncached A000 0000 BFFF FFFF kseg0 Kernel Unmapped 8000 0000 9FFF FFFF useg User Mapped 0000 0000 7FFF FFFF Segmenty opisane jako Mapped są stronicowane. Przy dostępie do nich adres logiczny tłumaczony jest przy pomocy tablicy TLB (lub przez inną jednostkę tłumaczącą) na adres fizyczny. Segmenty kseg0, oraz kseg1 nie są stronicowane. Umożliwiają on wgląd w najniźszą część adresowej przestrzeni fizycznej, zaczynającą się od adresu 0. Segment kseg1 dodatkowo umożliwia omini cie wszystkich poziomów pamięci podręcznej. Procesor w architekrurze MIPS może działać w trzech trybach: jądra, superużytkownika oraz użytkownika. Każdy segment ma przypisane tryby, w których można z niego korzystać, tak jak w tabelce. Dodatkowo tryby te mają różne poziomy uprzywilajowania: najwyższy jest tryb jądra, najniższy użytkownika. Wyższy poziom uprzywilejowania oznacza zezwolenie na dostęp do wszystkich segmentów do których jest dostęp na niższym poziomie. Przykład: z segmentu kseg można korzystać tylko w trybach jądra i superużytkownika. W trybie użytkownika próba odwołania się do segmentu spowoduje Address Error Exception. 3.2 TBL Pojedyńczy wpis w rejestrze TLB zawiera pola: Mask VPN2 - Numer wirtualnej strony (podzielony przez dwa) ASID, G - Identyfikator przestrzeni adresowej i bit ogólnego dostępu PFN0, C0, D0, V0 - Numer strony fizycznej, oraz bity valid, dirty, cache coherency PFN1, C1, D1, V1 - Jak wyżej Warto zauważyć, że jedna strona wirtualna skojarzona jest z dwoma stronami fizycznymi. To, która strona fizyczna zostanie wybrana zależy od adresu, oraz pola Mask. Dla każdej strony wirtualnej mamy zatem dwa wpisy w tablicy TLB. Dodatkowo mamy możliwość zezwolenia na dostęp wszystkim procesom (bit G przy polu ASID). 6

4 Alpha Alpha jest architkturą RISC przeznaczoną dla wielu procesorów. Zarówno instrukcje, jak i 32 całkowitoliczbowe oraz 32 zmiennoprzecinkowe rejestry są 64 bitowe. Instrukcjie wczytania i zapisu przenoszą 8, 16, 32 lub 64 bitowe jednostki pomiędzy pamięcią a rejestrami. Adresy są 64 bitowe, liniowe, bez segmentacji. Adresy fizyczne podzielone są na cztery obszary, zależnie od dwóch najstarszych zaimplementowanych bitów. Każdy z obszarów różni się pod względem: granulacji - 8, 16, 32, czy 64 bitowa. spójności - czy zapis jednego procesora wpływa na zmianę danych drugiego. Można ją ustawiać dla każdego rejonu. szerokości dostępu - jak wielki obszar pamięci jest czytany przy dostępie sposobu zachowania Część pamięci może być dzielona między procesorami, dlatego Alpha daje mechanizmy takie jak: zakładanie blokad i zapisanie warunkowe (jeśli mamy blokadę, to zapisujemy, a potem zwalniamy blokadę). Pozwala to atomowo zapisywać i odczytywać dane. Każdy procesor jednak może założyć maksymalnie jedną blokadę. 7