Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Samankaltaiset tiedostot
Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

Luento 5: Muistin hallinta Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

VIRTUAALIMUISTI. Stallings, Luku 8.1

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 6: VIRTUAALIMUISTI

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Luento 9 Järjestelmän ulkoinen muisti

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi

Lähtötiedot tiedot / seuraavaksi? Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO. Looginen vs. fyysinen osoite Perusvalinnat.

MUISTINHALLINNAN OHJELMISTO

Käyttöjärjestelmän rakenne

Internal Memory, Cache (välimuisti)

Internal Memory, Cache (välimuisti)

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Järjestelmän ulkoinen muisti I/O

Käyttöjärjestelmät II

Käyttöjärjestelmät II

Muistihierarkia Kiintolevyt I/O:n toteutus

Internal Memory, Cache

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Internal Memory, Cache

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

Muistihierarkia Kiintolevyt I/O:n toteutus

Capacity Utilization

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Perusvalinnat. Sivun koko. Sivun koko? Sopiva sivukoko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät

Käyttöjärjestelmät: Virtuaalimuisti

MUISTINHALLINTA. Stallings, Luku 7

Sivun koko. Perusvalinnat. Sopiva sivukoko? Sivun koko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät, Luento 9

Luento 9 Järjestelmän ulkoinen muisti

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Stallings, Luku 8.2

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Tietorakenteet ja algoritmit

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

UNIX / Solaris MUISTINHALLINTA

Käyttöjärjestelmät II. Muistinhallinnan esimerkit. UNIX / Solaris MUISTINHALLINTA. UNIX / Solaris (SVR4) UNIX/Solaris: Tietorakenteita

Osio 2: Luennot 4-7 Muistinhallinta

Choose Finland-Helsinki Valitse Finland-Helsinki

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Stallings, Luku 7. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 6-1

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

7.4 Variability management

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

UNIX / Solaris (SVR4)

Jakso 5 Suoritin ja väylä

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Jakso 5 Suoritin ja väylä

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1

UNIX / Solaris (SVR4)

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

LYTH-CONS CONSISTENCY TRANSMITTER

Security server v6 installation requirements

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Luento 9 Järjestelmän ulkoinen muisti

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Sisältöä MUISTINHALLINTA. Stallings, Luku 7. Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA. Looginen muisti. Prosessin rakenne

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Salasanan vaihto uuteen / How to change password

Other approaches to restrict multipliers

Luento 9 Järjestelmän ulkoinen muisti

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Security server v6 installation requirements

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 5 Suoritin ja väylä

6.3. AVR_rauta. EEPROM-muisti pva

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Tietokoneen toiminta, K Tavoitteet (4)

Alternative DEA Models

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Luento 5 Suoritin ja väylä

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

Transkriptio:

Tietokoneen rakenne Luento 5 (Memory Management) Stallings: Ch 8.3-8.6 Muistinhallintaongelma Heittovaihto vs. virtuaalimuisti Ohjelmisto- ja laitteistotuki Esim: Pentium Luento 5-1 Teemu s Cheesecake hand table Muistinhallinta Register, on-chip cache, memory, disk, and tape speeds relative to times locating cheese for the cheese cake you are baking... Europa refridge- (Jupiter) rator moon 0.5 sec (register) 1 sec (cache) 10 sec (memory) 12 days (disk) 4 years (tape) Luento 5-2 Tietokoneen rakenne / 2006 / Teemu Kerola 1

Virtual Memory (virtuaalimuisti) Problem: How can I make my (main) memory as big as my disk drive? Answer: Virtual memory u keep only most probably referenced data in memory, and rest of it in disk disk is much bigger and slower than memory address in machine instruction may be different than memory address need to have efficient address mapping most of references are for data in memory u joint solution with HW & SW Luento 5-3 Other Problems Often Solved with VM If you must want to have many processes in memory at the same time, how do you keep track of memory usage? How do you prevent one process from touching another process memory areas? What if a process needs more memory than we have? Luento 5-4 Tietokoneen rakenne / 2006 / Teemu Kerola 2

Memory Management Problem How much memory for each process? u Is it fixed amount during the process run time or can it vary during the run time? Where should that memory be? u In a continuous or discontinuous area? u Is the location the same during the run time or can it vary dynamically during the run time? How is that memory managed? How is that memory referenced? Luento 5-5 Partitioning How much physical memory for each process? Static (fixed) partitioning (staattiset tai u Amount of physical memory kiinteät partitiot) determined at process creation time u Continuous memory allocation for partition Dynamic partitioning (dynaamiset partitiot) u Amount of physical memory given to a process varies in time Due to process requirements (of this process) Due to system (I.e., other processes) requirements Luento 5-6 Tietokoneen rakenne / 2006 / Teemu Kerola 3

Static Partitioning Equal size - give everybody the same amount u Fixed size - big enough for everybody too much for most u Need more? Can not run! Unequal size u sizes predetermined u Can not combine Variable size u Size determined at process creation time Fig. 8.14 [Sta06 ] P1 P2 P4 Fig. 8.13 (a) [Sta06 ] Fig. 8.13 (b) [Sta06 ] P3 P4 P1 Luento 5-7 Fragmentation Internal fragmentation (sisäinen pirstoutuminen) u unused memory inside allocated block u e.g., equal size fixed memory Fig. 8.13 (a) [Sta06 ] partitions External fragmentation (ulkoinen pirstoutuminen) u enough free memory, but it is splintered as many un-allocatable blocks u e.g., unequal size partitions or dynamic fixed size (variable size) memory partitions Fig. 8.13 (b) [Sta06 ] Fig. 8.14 [Sta06 ] Luento 5-8 Tietokoneen rakenne / 2006 / Teemu Kerola 4

Dynamic Partitioning Process must be able to run with varying amounts of main memory u all of memory space is not in physical memory u need some minimum amount of memory New process? u If necessary reduce amount of memory for some (lower priority) processes Not enough memory for some process? u reduce amount of memory for some (lower priority) processes u kick (swap) out some (lower priority) process Luento 5-9 Address Mapping (4) Pascal, Java: while (...) X := Y+Z; Textual machine language: (osoitteen muunnos) Symbolic Assembler: loop: LOAD R1, Y ADD R1, Z STORE R1, X 1312: LOAD R1, 2510 ADD R1, 2514 STORE R1, 2600 (addresses relative to 0) Execution time: 101312: LOAD R1,102510 ADD R1,102514 ADD R1,102600 (real, actual!) Luento 5-10 Tietokoneen rakenne / 2006 / Teemu Kerola 5

Address Mapping (2) Textual machine language: logical address 1312: LOAD R1, 2510 +100000? Execution time: 101312: LOAD R1,102510 or 101312: LOAD R1, 2510?? physical address (constant?) logical addr - Want: R1 Mem[102510] or Mem[2510]? - Who makes the mapping? When? Luento 5-11 Address Mapping (2) At program load time u Loader (lataaja) u Static address binding (staattinen osoitteiden sidonta) At program execution time u CPU u With every instruction u Dynamic address binding (dynaaminen osoitteiden sidonta) u Swapping u Virtual memory Luento 5-12 Tietokoneen rakenne / 2006 / Teemu Kerola 6

Heittovaihto (swapping) Prosessilla yhtenäinen muistialue u Prosessi joko muistissa tai levyllä u Prosessinkuvaaja (PCB) aina muistissa Ajonaikainen osoitemuunnos u Looginen osoite fyysinen muistiosoite Lisätietoja KJ-kurssilla Laitteistotuki = MMU u Kanta- ja rajarekisteri u Bounds exceeded -keskeytys KJ u Kirjanpito vapaista muistialueista u Prosessien siirto levyltä muistiin / muistista levylle u Prosessin vaihto: kanta- ja rajarekisterin asetus u Virheellinen muistiviite: tapa prosessi Luento 5-13 Virtual Memory Implementation (Virtuaalimuistitoteutus) Methods u Base and limit registers (kanta- ja rajarekisterit) u Segmentation (segmentointi) u Paging (sivutus) u Segmented paging, multilevel paging Hardware support u MMU - Memory Management Unit Part of processor Varies with different methods u Sets limits on what types of virtual memory (methods) can be implemented using this HW Luento 5-14 Tietokoneen rakenne / 2006 / Teemu Kerola 7

Base and Limit Registers Continuous memory partitions u One or more (4?) per process u May have separate base and limit registers Code, data, shared data, etc By default, or given explicitly in each mem. ref. BASE and LIMIT registers in MMU u All addresses logical in machine instructions u Exec. time address mapping for address (x): Check: 0 x < LIMIT Physical address: BASE +x Tuttua Tito-kurssilta Luento 5-15 Address Mapping using Base and Limit Registers (Osoitteenmuunnos rajarekistereitä käyttäen) (Sta05 Operating Systems Fig 7.8) Luento 5-16 Tietokoneen rakenne / 2006 / Teemu Kerola 8

Virtuaalimuisti Vain tarvittavat prosessin palat muistissa, ei tarvitse sijaita peräkkäin muistissa u Tarvenouto (Demand paging) Palojen koko? u Vakiokokoiset palat = Sivutus u Palojen koko vaihtelee = Segmentointi u Yhdistettynä = Sivutettu segmentointi KJ:n kirjanpito (OS bookkeeping) u Sivutilataulu ( frame table) Mitkä sivutilat vapaita, mitkä varattuja? KJ kurssin pureskeltavaa Sivutus yleisintä nyt vain siitä u Jokaisella prosessilla oma sivutaulu ( table) Onko sivu muistissa vai levyllä? Presence-bitti Missä sivutilassa sivu majailee? Muuta kontrollitietoa? Viitebitit: Modified, Referenced Luento 5-17 Virtual Memory: Paging (sivutus) Load A Program: s Memory: frames OS load process A from disk Process A in main memory (Sta06 Fig 8.15) Luento 5-18 Tietokoneen rakenne / 2006 / Teemu Kerola 9

Address Mapping with Paging VM (Sivuttava virtuaalimuistin osoitteen muunnos) (Sta06 Fig 8.16) Luento 5-19 Paged Address Translation (4) Page table register Check for valid entry Virtual address 1 30 0: 1: 2: Page table 0 rwx 65 1 rw 14 1 rw 55.. Valid entry Access rights Page frame Access type r Check access rights r {rw} 14 30 (virt. mem. used to solve memory protection problem) Physical address Luento 5-20 Tietokoneen rakenne / 2006 / Teemu Kerola 10

Page fault interrupt Stop execution Initiate reading 1 from disk Schedule next process to run I/O interrupt Page 1 read, update table Make orig. process ready-to-run Page table register Check for valid entry: not valid! Page Fault (12) Virtual address 1 30 0: 1: 2: Page table 0 rwx 65 10 rw w 33 14 1 rw 55.. Schedule orig. process again, at the same instruction Access type r Check access rights r {rw} 14 30 Physical address Luento 5-21 Virtuaalimuisti: TLB Translation Lookaside Buffer Osoitemuunnos jokaiselle muistiviittaukselle, vähintään kerran per käsky Sivutaulun alkio muistissa = ylimääräinen (useampi) muistinouto? u Liian hidasta Ratkaisu u Paikallisuus! Sitähän tarvitaan het kohta uudestaan u Pidä tallessa suorittimella edellisissä muunnoksissa käytetyt sivutaulun alkiot TLB, osoitemuunnospuskuri u Vrt. välimuisti u Nopea rekisterijoukko (esim. Pentium: 32 alkiota) u Assosiatiivinen haku u Osumatodennäköisyys 99.9%? (eli lähes aina!) Luento 5-22 Tietokoneen rakenne / 2006 / Teemu Kerola 11

Correct address mapping found Physical address 0x00B6C8E6 046 ReadW I2, 0xAB00C7DA 046? = Example: Direct Mapped 16-entry TLB (6) 0000: tag index 28 4. AB00C7D A. Match 0111: 1000: 1001: 1010: offset. tag frame 28 32 AB00C7D 00B6C8E6 Luento 5-23 Translation Lookaside Buffer (TLB) Hit on TLB? u address translation is in TLB - real fast Miss on TLB? u must read table entry from memory u takes time not much, just a memory reference Entry might be in cache! u cpu waits idle until it is done Just like normal cache, but for address mapping u implemented just like cache u instead of cache line data have physical address u split TLB? 1 or 2 levels? Luento 5-24 Tietokoneen rakenne / 2006 / Teemu Kerola 12

Sivunpuutoskeskeytyksen käsittely Prosessin vaihto (ainakin 2 kpl) Prosessin vaihto (ainakin 2 kpl) (Sta06 Fig 8.18) Luento 5-25 Virtuaalimuisti Laitteistotuki = MMU ja sen erikoisrekisterit u PTR ( table register) Sivutaulun fyysinen alkuosoite (tuotu PCB:stä) u TLB (translation lookaside buffer) Aiemmissa osoitteenmuunnoksissa käytettyjä tietoja = sivutaulun alkioita u Page fault keskeytys u Viitebittien ylläpito Prosessin vaihtuessa u PTR sivutaulun fyysinen alkuosoite u TLB:n vanha sisältö invalidoitava TLB:n alkioissa Validi-bitit Muuttuneet alkiot takaisin muistiin ( cache block ) Luento 5-26 Tietokoneen rakenne / 2006 / Teemu Kerola 13

CPU instr mem.addr TLB Memory Organisation (3) Bus regs cache data table table Memory Disk table table table table Luento 5-27 TLB ja välimuisti Myös sivutaulun alkio voi löytyä välimuistista! (Sta06 Fig 8.19) Luento 5-28 Tietokoneen rakenne / 2006 / Teemu Kerola 14

TLB vs. Cache TLB Miss CPU waits idling HW implementation Invisible to process Data is copied from memory to TLB u from table data u from cache? Delay 4 (or 2 or 8?) clock cycles Cache Miss CPU waits idling HW implementation Invisible to process Data is copied from memory to cache u from data Delay 4 (or 2 or 8?) clock cycles Luento 5-29 TLB Misses vs. Page Faults TLB Miss CPU waits idling HW implementation Data is copied from memory to TLB (or from cache) Delay 1-4 (?) clock cycles Page Fault Process is suspended and cpu executes some other process SW implementation Data is copied from disk to memory Delay 30 ms (?) Luento 5-30 Tietokoneen rakenne / 2006 / Teemu Kerola 15

Korvauspolitiikka Mikä sivu korvataan muistista, jos muistitilasta puutetta? Lokaalit / globaalit algoritmit u Prosessin omien sivujen joukosta KJ-kurssilla tarkemmin u Kaikkein prosessien sivujen joukosta Algoritmeja u Clock, Second change, LRU, MMU u aseta viitattaessa Referenced=1, u aseta Modified=1, jos sivun sisältö muuttuu KJ u Nollaa bitit aika-ajoin u Korvaa tarvittaessa sellainen, jossa R=0, M=0 u M=1 kirjoita muuttunut sivu levylle ennen uusiokäyttöä Luento 5-31 Nykyprosessin oikea sivu? Käänteinen sivutaulu Järjestelmässä vain yksi käänteinen ST MMU: PTR ( table reg), PidR (process id register), TLB ~ PowerPC ~ UltraSPARC ~ IA-64 (Sta06 Fig 8.17 täydennettynä) Luento 5-32 Tietokoneen rakenne / 2006 / Teemu Kerola 16

Monitasoinen sivutaulu (3) Monet järjestelmät sallivat suuren virtuaaliosoiteavaruuden u Myös ST jaetaan sivuihin, ja ST:n osia levyllä u Ylimmän tason ST mahtuu yhteen sivuun, aina muistissa 32b osoite 1 K alkiota (= 1024 = 2 10 ) = Page Dir 10 10 12 1K * 1K = 1M alkiota (Sta05 Fig 8.4) Luento 5-33 Virtual Memory Policies (3) Fetch policy u demand paging: fetch only when needed 1st time u working set: keep all needed s in memory u prefetch: guess and start fetch early Placement policy (sijoituspolitiikka) u any frame for d VM Replacement policy (noutopolitiikka) (poistopolitiikka) u local, consider s just for this process for replacement u global, consider also s for all other processes u dirty s must be written to disk (likaiset, muutetut) Luento 5-34 Tietokoneen rakenne / 2006 / Teemu Kerola 17

Tietokoneen rakenne Esimerkiksi Pentium (IA-32) Ks. myös Tan06 Luento 5-35 Pentiumin tuki muistinhallinnalle Unsegmented und, max 2 32 = 4 GB u Virtuaaliosoite = fyysinen osoite u Tehokas käyttöä reaaliaikajärjestelmissä Unsegmented d (Sivuttava), max 4 GB u Lineaarinen osoiteavaruus u Sivu 4KB tai 4MB u Käyttöoikeudet sivukohtaisesti Segmented und (Segmentoiva), max 2 48 = 64 TB u Useita segmenttejä useita lineaarisia osoiteavaruuksia u Käyttöoikeudet segmenttikohtaisesti Segmented d (Sivuttava segmentointi), max 64 TB u Muistinhallinta sivutusta käyttäen u Käyttöoikeudet segmenttikohtaisesti Luento 5-36 Tietokoneen rakenne / 2006 / Teemu Kerola 18

Pentium: Osoitemuunnos 16 32 10 10 12 base (Sta06 Fig 8.21) Jos Paging=Enabled, käytä sivutauluja, muuten lineaarinen osoite = fyysinen osoite (KJ, esim. laiteajurit?) Kontrollirekisterit ks. s. 444 [Sta06] Luento 5-37 Pentium: Osoitemuunnos Segment selector u Global / Local Table u Segmentin numero Global/Local Descriptor Table (GDT/LDT) u CS/DS selectors for code/data segments Segment descriptor Haetaan GDT:stä tai LDT:stä ja talletetaan MMU:n rekistereihin (Tan06 Fig 6-12, 6-13) Luento 5-38 Tietokoneen rakenne / 2006 / Teemu Kerola 19

Pentium: Segmenttikuvaaja (Sta06 Table 8.5) Luento 5-39 Pentium: Sivutaulu (Sta06 Table 8.5) Luento 5-40 Tietokoneen rakenne / 2006 / Teemu Kerola 20

Pentium: Käyttöoikeudet Privilege level CPU:n tilarekisterissä PSW:ssä u 00=korkein, 11 = matalin u Korkeampi voi viitata alemmille u Etuoikeutetut käskyt vain, kun level=00 Käyttöoikeus rajattavissa u Segmentin valinta RPL, requested privilege level u Segmenttikuvaaja DPL, descriptor privilege level Type: koodi/data? R/W u Sivutaulu R/W-bitti Linux ja Windows: vain kaksi käytössä (Tan06 Fig 6-16) Luento 5-41 Hennessy-Patterson:Computer Architecture, Fig 5.47 Alpha AXP Instr. TLB fully assoc, 12 entries Data TLB fully assoc, 32 entries Instr. CACHE direct mapped, 8 KB, 256 lines (a 32B) Data CACHE direct mapped, 8 KB, 256 lines Unified Level 2 CACHE 2 MB, 64K lines (a 32B) direct mapped, write-back Main Memory Disk Tietokoneen rakenne / 2006 / Teemu Kerola 21

Kertauskysymyksiä Mitä laitteistotason tukea tarvitaan VM:n toteuttamiseksi? Miten sivutus ja segmentointi eroavat toisistaan? Miksi ne joskus yhdistetään? Miten TLB ja välimuisti suhtautuvat toisiinsa? Luento 5-43 Tietokoneen rakenne / 2006 / Teemu Kerola 22