Organisasi Sistem Komputer
Bagian 11
Bagian 11
Virtual Memory
Sekolah Teknik Elektro dan Informatika – ITB 2009
Pembahasan
Fungsi virtual memory
u gs
tua
e o y
Penerjemah (translasi) alamat pada virtual
memoryy
Mempercepat translasi dengan TLB
Sistem memori sederhana
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
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: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
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
nalamat, 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
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
DRAMDRAM 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
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: 1X?
X X 17 J 105 • • • • • • 1: N-1:= X?
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
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
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
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: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: MemoriProses 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: • • • • • • • • •Translasi Alamat
(Add
T
l ti )
(Address Translation)
Virtual Memory
Translasi Alamat : HIT
Prosesor Mekanisme Mekanisme translasi Alamat (hardware) Memori utama Alamat fisik Alamat virtual Bagian dari on-chip memory Management unit (MMU)Translasi Alamat : MISS
page fault Prosesor M k i fault handler page fault Mekanisme translasi Alamat (hardware) Memori utama Disk ∅ Alamat virtual Al t fi ikjika terjadi miss, sistem operasi
melakukan transfer
Bagian dari on-chip memory Management unit (MMU)
Alamat fisik
melakukan transfer data
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
Page Table
Memory resident page table (physical page Virtual Page Number (physical pageor 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
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
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
Integrasi VM dan Cache
VA PA miss CPU Trans-lation Cache Main Memory VA PA miss hitC h di k
k
l
fi ik
hit dataCache diakses menggunakan alamat fisik
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
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
=
Contoh
Pengalamatan
14-bit alamat virtual (virtual address)
12-bit alamat fisik (physical address)
Page size = 64 byte = 2
613 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
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 1Tabel di atas hanya menampilkan 16 entry pertama
(total 256 entry)
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 VPNSet 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
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 PPNIdx 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–
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 PPNTranslasi 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 0VPN: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 0Translasi 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