• Tidak ada hasil yang ditemukan

Organisasi Sistem Komputer. Virtual Memory. Sekolah Teknik Elektro dan Informatika ITB

N/A
N/A
Protected

Academic year: 2021

Membagikan "Organisasi Sistem Komputer. Virtual Memory. Sekolah Teknik Elektro dan Informatika ITB"

Copied!
32
0
0

Teks penuh

(1)

Organisasi Sistem Komputer

Bagian 11

Bagian 11

Virtual Memory

Sekolah Teknik Elektro dan Informatika – ITB 2009

(2)

Pembahasan

Fungsi virtual memory

u gs

tua

e o y

Penerjemah (translasi) alamat pada virtual

memoryy

Mempercepat translasi dengan TLB

Sistem memori sederhana

(3)

Fungsi Virtual Memory (VM)

Virtual Memory (VM) memiliki tiga fungsi penting :

1 S b

i

k

h

1. Sebagai perangkat

cache

ƒ VM memanfaatkan memori utama (DRAM) lebih efisien dengan

memperlakukannya sebagai cache alamat yang tersimpan dalam disk

ƒ Memori utama hanya menyimpan data yang aktif

ƒ Memori utama hanya menyimpan data yang aktif

ƒ VM melakukan transfer data antara disk dan memori seperlunya saja

2. Sebagai perangkat

manajemen memori

ƒ VM menyederhanakan manajemem memori dengan melakukan teknikVM menyederhanakan manajemem memori dengan melakukan teknik

pengalamatan yang seragam untuk setiap proses

ƒ Pengalamatan disk, memori, cache dilakukan secara uniform

3. Sebagai perangkat untuk

memproteksi memori

ƒ VM melindungi alokasi alamat setiap proses terhadap gangguan ƒ Suatu proses tidak dapat diganggu oleh proses lain.

ƒ Proses tidak dapat mengakses informasi yang bukan hak-nya ƒ Setiap alokasi alamat memiliki hak yang berbeda-bedaSetiap alokasi alamat memiliki hak yang berbeda beda

(4)

Pengalamatan secara Fisik

Disebut ‘

physical

add essing

Memori

addressing

Alamat yang dihasilkan

CPU menunjukkan

0: 1:

Alamat

fisik

j

langsung lokasi byte

dalam memori secara

fisik

CPU

Digunakan pada :

ƒ

mesin Cray

ƒ

PC generasi pertama

ƒ

PC generasi pertama

ƒ

sistem embedded pada

umumnya

M-1:

(5)

Sistem dengan Virtual Memory

Penerjemahan/translasi alamat (address translation) :

berbentuk perangkat keras yang

mengkonversi alamat

virtual menjadi alamat fisik menggunakan page table

(look-up table), dikendalikan oleh sistem operasi

0: 1: Memori Page Table 1: 0: 1: Page Table Alamat

virtual Alamatfisik

CPU

M-1: P-1:

Digunakan pada server,

workstation dan PC

d

Disk

modern

(6)

Address Space

Address space adalah kumpulan alamat-alamat yang

letaknya berurutan

{0, 1, 2, … }

Pada sistem dengan virtual memory, CPU menghasilkan

alamat virtual dari address space N = 2

n

alamat, disebut

virtual address space

p

{0, 1, 2, … , N-1}

Sistem juga memiliki physical address space yang

j g

p y

p

y g

merupakan memori fisik sebesar M byte

(7)

1. VM : Perangkat Caching

Ukuran seluruh address space sangat besar :

ƒ Bus alamat 32-bit : dapat mengalamati ~4,000,000,000 (4 milyar) byteBus alamat 32 bit : dapat mengalamati 4,000,000,000 (4 milyar) byte ƒ Bus alamat 64-bit : ~16,000,000,000,000,000,000 (16 quintilliun) byte

Harga Harddisk kira-kira 300 kali lebih murah dari DRAM

ƒ 80 GB DRAM: ~ $33 000 ƒ 80 GB DRAM: ~ $33,000 ƒ 80 GB harddisk: ~ $110

Agar data berukuran besar dapat diakses secara murah, maka data

tersebut harus disimpan dalam disk sementara data yang sedang aktif

tersebut harus disimpan dalam disk, sementara data yang sedang aktif

saja yang disimpan dalam DRAM/SRAM

1GB: ~$200 80 GB: ~$110 4 MB: ~$500

Disk

DRAM

(8)

DRAM vs SRAM sebagai Cache

DRAM vs. disk lebih ekstrim dari SRAM vs. DRAM

ƒ

Waktu akses :

Waktu akses :

ƒ DRAM ~10X lebih lambat SRAM

ƒ Disk ~100,000X lebih lambat DRAM

ƒ

Pentingnya spatial locality:

ƒ

Pentingnya spatial locality:

ƒ Byte pertama ~100,000X lebih lambat dari byte yang berurutan

pada disk

ƒ

Pertimbangan desain cache menggunakan DRAM harus

ƒ

Pertimbangan desain cache menggunakan DRAM harus

memperhatikan ‘cost’ yang timbul akibat miss

DRAM

(9)

SRAM Cache

ƒ

Tag disimpan bersama baris cache

Memet k n d i blok

he ke blok memo i

ƒ

Memetakan dari blok cache ke blok memori

ƒ

Dari bentuk cached ke uncached

ƒ

Tag tidak ada bila blok tidak ada dalam cache

ag da ada b a b o

da ada da a

a e

“Cache” Object Name Tag Data D 243 X 17 0: 1

X?

X X 17 J 105 1: N-1:

= X?

(10)

DRAM Cache

ƒ

Setiap page yang dialokasikan oleh virtual memory memiliki entry

pada page table

p

p g

ƒ

Memetakan virtual page ke physical page

ƒ Dari bentuk uncached menjadi bentuk cached

ƒ

Page table entry tetap ada walaupun page belum ada di memori

ƒ

Page table entry tetap ada walaupun page belum ada di memori

ƒ Menunjukkan alamat pada disk

Data 243 0: Object Name Lokasi D: 0 “Cache” Page Table 243 17 0: 1: X Object Name D: J: 0 On Disk 105 N-1: X: 1

(11)

DRAM Cache

Jika suatu obyek berada dalam disk, bukan di memori, maka :

ƒ Page table entry memperlihatkan alamat virtual tidak ada di memori

ƒ Page table entry memperlihatkan alamat virtual tidak ada di memori

ƒ OS exception handler melakukan pemindahan data dari disk ke memori

Memori

Page Table

Memori

Sebelum fault

Setelah fault

CPU

Page Table

Alamat

virtual Alamatfisik

CPU

Page Table

Alamat

virtual Alamatfisik

Disk

CPU

(12)

2. VM : Manajemen Memori

Beberapa proses dapat tersimpan secara bersamaan dalam memori

Masalah akan timbul bila dua proses mengakses alamat yang sama

Masalah akan timbul bila dua proses mengakses alamat yang sama

ƒ

Konflik alamat tersebut harus diatasi

kernel virtual memory memory invisible to kernel virtual memory

stack %esp

user code

Memory mapped region forshared libraries

th “b k” t runtime heap (via malloc)

initialized data (.data) uninitialized data (.bss)

the “brk” ptr

program text (.text) forbidden

Peta memori Linux/X86

(13)

Solusi : Pisahkan Alamat Virtual

ƒ

Ruang alamat virtual dan fisik dibagi menjadi beberapa blok

berukuran sama

berukuran sama

ƒ Block disebut “pages” (virtual dan fisik)

ƒ

Setiap proses memiliki ruang alamat virtual sendiri

ƒ Sistem operasi mengendalikan konversi virtual pages ke memori fisik

ƒ Sistem operasi mengendalikan konversi virtual pages ke memori fisik

Ruang l t Ruang alamat VP 1 PP 2 Translasi alamat 0 0 alamat virtual proses 1: alamat fisik (DRAM) VP 1 VP 2 PP 2 N-1 ( d/ l

...

0 VP 1 VP 2 PP 7 PP 10 (e.g., read/only library code) Ruang alamat virtual N-1 M-1

...

virtual proses 2:

(14)

3. VM : Proteksi Memori

Page table entry berisi informasi tentang hak akses

ƒ

Proteksi dilakukan secara hardware

Page Table Physical Addr Read? Write? PP 9 Yes No VP 0: 0: 1: Memori

Proses i:

PP 9 Yes No PP 4 Yes Yes XXXXXXX No No VP 0: VP 1: VP 2: 1: Physical Addr Read? Write?

Proses j:

N-1: PP 6 Yes Yes PP 9 Yes No XXXXXXX No No VP 0: VP 1: VP 2:

(15)

Translasi Alamat

(Add

T

l ti )

(Address Translation)

Virtual Memory

(16)

Translasi Alamat : HIT

Prosesor Mekanisme Mekanisme translasi Alamat (hardware) Memori utama Alamat fisik Alamat virtual Bagian dari on-chip memory Management unit (MMU)

(17)

Translasi Alamat : MISS

page fault Prosesor M k i fault handler page fault Mekanisme translasi Alamat (hardware) Memori utama DiskAlamat virtual Al t fi ik

jika terjadi miss, sistem operasi

melakukan transfer

Bagian dari on-chip memory Management unit (MMU)

Alamat fisik

melakukan transfer data

(18)

Translasi Alamat VM

Parameters

ƒ

P = 2

p

= page size (byte)

p g

( y )

ƒ

N = 2

n

= batas alamat virtual

ƒ

M = 2

m

= batas alamat fisik

1 1 0

virtual page number page offset Alamat virtual

n–1 p p–1 0

address translation

physical page number page offset Alamat fisik 0

p–1 p

(19)

Page Table

Memory resident page table (physical page Virtual Page Number (physical page

or disk address) Memori fisik

Valid 1 1 0 1 1 1 0 0 Disk Storage (file swap atau File sistem biasa)

1 1 0 0

(20)

Operasi Page Table

virtual address

n–1 p p–1 0

page table base register

virtual page number (VPN) page offset p

p

valid access physical page number (PPN) VPN acts

as

table index

valid access p y p g ( )

if valid=0

physical page number (PPN) page offset

0 p–1 p m–1 then page not in memory physical address

(21)

Operasi Page Table

Translasi

ƒ

Pisahkan page tabel per proses

ƒ

VPN membentuk indeks pada page table (menunjukkan page

table entry)

table entry)

Menghitung alamat fisik

ƒ

Page Table Entry (PTE) memberikan informasi tentang page

ƒ Jika bit valid =1, maka page berada dalam memori, gunakan

physical page number (PPN) untuk mengkonstruksi alamat

ƒ Jika bit valid = 0, maka page berada dalam disk (page fault)

C k

k

Cek proteksi

ƒ

Cek ‘right access’ untuk menentukan akses yang diijinkan

(22)

Integrasi VM dan Cache

VA PA miss CPU Trans-lation Cache Main Memory VA PA miss hit

C h di k

k

l

fi ik

hit data

Cache diakses menggunakan alamat fisik

(23)

Percepat Translasi dengan TLB

TLB = Translation Lookaside Buffer

ƒ Berbentuk perangkat keras cache yang terletak dalam MMU

ƒ Berbentuk perangkat keras cache yang terletak dalam MMU

ƒ Memetakan virtual page number (VPN) menjadi physical page number (PPN)

ƒ Dapat menggantikan page table dalam ukuran yang lebih kecilDapat menggantikan page table dalam ukuran yang lebih kecil

TLB M i VA PA miss hit CPU TLB Lookup Cache Main Memory hit miss Trans-lation data

(24)

Translasi Alamat dengan TLB

virtual address virtual page number page offset

n–1 p p–1 0

valid tag physical page number

TLB

.

.

.

=

TLB hit

physical address

valid tag data

tag index byte offset

valid tag data

Cache

data

=

(25)

Contoh

(26)

Pengalamatan

ƒ

14-bit alamat virtual (virtual address)

ƒ

12-bit alamat fisik (physical address)

ƒ

Page size = 64 byte = 2

6

13 12 11 10 9 8 7 6 5 4 3 2 1 0 VPO VPN 11 10 9 8 7 6 5 4 3 2 1 0 VPO VPN

(Virtual Page Number) (Virtual Page Offset)

11 10 9 8 7 6 5 4 3 2 1 0

PPO PPN

(27)

Page Table

VPN PPN Valid VPN PPN Valid 00 28 1 08 13 1 01 – 0 09 17 1 02 33 1 0A 09 1 03 02 1 0B – 0 04 – 0 0C – 0 05 16 1 0D 2D 1 05 16 1 0D 2D 1 06 – 0 0E 11 1 07 – 0 0F 0D 1

Tabel di atas hanya menampilkan 16 entry pertama

(total 256 entry)

(28)

TLB

ƒ

16 entries

ƒ

4-way associative

TLBI TLBT 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VPO VPN TLBI VPO VPN

Set Tag PPN Valid Tag PPN Valid Tag PPN Valid Tag PPN Valid 0 03 – 0 09 0D 1 00 – 0 07 02 1 1 03 2D 1 02 – 0 04 – 0 0A – 0 2 02 – 0 08 – 0 06 – 0 03 – 0 3 07 – 0 03 0D 1 0A 34 1 02 – 0

(29)

Cache

ƒ

16 lines

ƒ

4-byte line size

ƒ

Direct mapped

11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT PPO PPN

Idx Tag Valid B0 B1 B2 B3 Idx Tag Valid B0 B1 B2 B3 0 19 1 99 11 23 11 8 24 1 3A 00 51 89 1 15 0 – – – – 9 2D 0 – – – – 2 1B 1 00 02 04 08 A 2D 1 93 15 DA 3B 3 36 0 – – – – B 0B 0 – – – – 4 32 1 43 6D 8F 09 C 12 0 – – – – 5 0D 1 36 72 F0 1D D 16 1 04 96 34 15 6 31 0 – – – – E 13 1 83 77 1B D3 7 16 1 11 C2 DF 03 F 14 0 – – – 29–

(30)

Translasi Alamat (1)

Alamat virtual 0x03D4

13 12 11 10 9 8 7 6 5 4 3 2 1 0

TLBI TLBT

VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____

VPO VPN

Alamat fisik

11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT 11 10 9 8 7 6 5 4 3 2 1 0 PPO PPN

(31)

Translasi Alamat (1)

Alamat virtual 0x03D4

13 12 11 10 9 8 7 6 5 4 3 2 1 0 TLBI TLBT 0 0 0 0 1 1 1 1 0 1 0 1 0 0

VPN:0x0F TLBI:0x03 TLBT:0x03 TLB Hit?:Y Page Fault? :N PPN:0x0D

VPO VPN

Alamat fisik

11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT 11 10 9 8 7 6 5 4 3 2 1 0 PPO PPN 0 0 1 1 0 1 0 1 0 1 0 0

(32)

Translasi Alamat (2)

Alamat virtual 0x0B8F

13 12 11 10 9 8 7 6 5 4 3 2 1 0

TLBI TLBT

VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____

VPO VPN

Alamat fisik

11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT 11 10 9 8 7 6 5 4 3 2 1 0 PPO PPN

Gambar

Tabel di atas hanya menampilkan 16 entry pertama  (total 256 entry)

Referensi

Dokumen terkait