Академический Документы
Профессиональный Документы
Культура Документы
ARSITEKTUR
KOMPUTER 2
TEKNIK MANAJEMEN MEMORI
BAG. 2
MEMORI CACHE
PENGGANTIAN CACHE
Jika cache sudah penuh, maka beberapa
isi cache dihapus untuk membuat ruang
bagi entry baru.
ALGORITMA PENGGANTIAN CACHE
Jika kita menghapus suatu blok yg akan
diakses segera oleh CPU, maka terjadi
miss penalty. Karena itu, diperlukan
suatu keputusan cerdas dari suatu
pemilihan baris cache yg akan
dikosongkan.
ALGORITMA PENGGANTIAN
CACHE
Random Choice Algorithm
Algoritma ini memilih set yg telah berada pada cache dalam waktu
yg lama. Dengan kata lain, blok yg dimasukkan dlm cache pertama
didorong keluar pertama. Asumsinya bahwa item yg baru saja
dimasukkan mungkin yg akan diperlukan.
Algoritma ini memilih suatu blok yang telah digunakan CPU yang
paling sedikit.
WRITE POLICY
Anggap CPU sedang mengeksekusi instruksi ADD yg hasilnya
disimpan pada lokasi Memori Utama. Apakah hasilnya disimpan
pada Main Memory atau Memory Cache?
Jika alamat hasil (operand) tidak sedang dipetakan di dalam
Memory Cache, maka jelas hasil akan disimpan di dalam Main
Memory. Di sisi lain, jika alamat saat sekarang dipetakan dalam
Memory Cache, terdapat dua pilihan:
1.Penulisan hasil dalam Main Memory dan Memory Cache.
Kebijakan ini dikenal sebagai write-through policy.
2.Penulisan hasil hanya dalam Memory Cache, tetapi ditandai
sebuah flag dalam cache untuk mengingatkan kesesuaian isi
Main Memory adalah usang (obsolete). Ke depan, kapanpun
isi dalam Memory Cache akan diganti, cukup jika disimpan
dalam Memory Utama pada saat itu. Kebijakan ini dikenal
sebagai write-back policy.
WRITE POLICY
Write-through policy sederhana dan tidak bertele-tele
dalam implementasi.
Memerlukan satu akses MU setiap saat ada keperluan
penulisan. Karena itu, memperlambat eksekusi program. Juga
kadang-kadang terjadi bahwa apa yg disimpan dalam Main
Memory hanyalah suatu intermediate result yg segera
dibawa ke dalam cache atau diperbarui. Sehingga waktu
yang tidak dibutuhkan digunakan dalam penyimpanan item
tersebut dalam Main Memory.
WRITE POLICY
Write-Back policy menghemat waktu karena penulisan dalam
Memory Utama tidak dilakukan pada setiap operasi penulisan.
Item tertentu mungkin tidak pernah ditulis dalam MU di mana
tergantung pada instruksi selanjutnya.
Hanya bila item harus dihapus dari cache, dia ditulis ke dalam
Memory Utama. Apakah penghapusan akan terjadi atau tidak,
tidak diketahui saat permulaan. Tergantung pada instruksiinstruksi selanjutnya.
Urutan Blok
yg
Fetch
diakse
0
1
s
Keberh
asilan
Baris
Cache
0
Baris
Cache
1
Baris
Cache
2
Baris
Cache
3
???
???
miss
???0
Blok
???
???
???
???
???
???
???
???
???
???
miss
miss
Blok
0
???4
Blok 0
4
miss
Blok 8
0
???
???
???
miss
Blok 80
???
???
???
miss
Blok 8
0
???
???
???
miss
Blok 0
8
???
???
???
miss
Blok 4
0
???
???
???
miss
Blok 0
4
???
???
???
10
miss
4
Blok 0
???
???
???
11
miss
Blok 0
4
???
???
???
12
miss
0
Blok 4
???
???
???
HR =
0
12
= 0
Urutan Blok
yg
Fetch
diakse
0s
1
miss
Baris
Cache
0
Blok 0
Baris
Cache
1
Baris
Cache
2
Baris
Cache
3
70
9
miss
miss
miss
Blok
???0
Blok 0
???
???
Blok
???9
???
???
???
Blok
???7
???
Blok 7
10
miss
Blok 0
Blok 9
Blok
10
???
Blok 7
hit
Blok 0
Blok 9
Blok 10
Blok 7
hit
hit
Blok 0
Blok 9
Blok 10
Blok 7
7
9
Blok 0
Blok 9
Blok 10
Blok 7
10
hit
Blok 0
Blok 9
Blok 10
Blok 7
hit
Blok 0
Blok 9
Blok 10
Blok 7
10
hit
11
hit
Blok 0
Blok 0
Blok 9
Blok 9
Blok 10
Blok 10
Blok 7
Blok 7
12
10
hit
Blok 0
Blok 9
Blok 10
Blok 7
Keberh
asilan
???
???
???
HR =
8
12
= 67%
Blok
yg
diakse
0s
MISS
HIT
Blok
???0
Blok 0
MISS
Blok 0
Blok 4
???8
Blok
???
HIT
Blok 0
Blok 4
Blok 8
???
HIT
Blok 0
Blok 4
Blok 8
???
HIT
Blok 0
Blok 4
Blok 8
???
HIT
Blok 0
Blok 4
Blok 8
???
HIT
Blok 0
Blok 4
Blok 8
???
10
HIT
Blok 0
Blok 4
Blok 8
???
11
HIT
Blok 0
Blok 4
Blok 8
???
12
HIT
Blok 0
Blok 4
Blok 8
???
Urutan
Fetch
Keberh
asilan
MISS
Baris
Cache
0
Baris
Cache
1
Baris
Cache
2
Baris
Cache
3
??? 4
Blok
???
Blok 4
???
???
???
???
???
???
Blok 0
???
???
???
HR =
9
12
= 75%
MEMORI CACHE
Memori cache ada 2 jenis:
1.Cache menyatu (unified cache):
menyimpan instruksi dan data bersatu.
Mikroprosesor INTEL 80486 mempunyai
cache-menyatu.
2.Cache
terpisah
(split
cache):
mempunyai cache data dan instruksi
yang terpisah. Mikroprosesor INTEL
Pentium mempunyai cache terpisah yaitu
8 KB untuk instruksi dan 8 KB untuk data.
Cache-menyatu mudah
diimplementasikan tetapi menawarkan hit
rate yang kecil secara khusus pada CPU
pipeline Memori cache-menyatu
mengawasi beberapa permintaan tunda,
menyebabkan delay, hingga akses yg
sekarang selesai.
Cache-terpisah menyediakan
paralelisme. Keduanya dapat diakses
secara paralel. Hal ini mengurangi waktu
tunggu dan meningkatkan performa.
VIRTUAL MEMORY
VIRTUAL MEMORY
Virtual memory dikehendaki dalam dua
kasus, untuk mengeksekusi programprogram besar yang mempunyai ukuran
melebihi ukuran fisik memori:
Ruang memori utama tidak cukup untuk
menjalankan program besar.
Ukuran fisik memori utama dibiarkan kecil
untuk mengurangi biaya walaupun prosesor
mempunyai ruang memori logic yang besar.
VIRTUAL MEMORY
Pada kasus pertama (dahulu) digunakan
memori virtual karena komputer pada waktu itu
menawarkan ruang memori utama yang
terbatas.
Tetapi, sekarang ruang memori besar disediakan
oleh komputer dan karena itu kasus kedua
merupakan alasan untuk mempunyai memori
virtual. Karena penggunaan yang luas dalam
beberapa bidang, program-program aplikasi
sekarang yang lebih panjang dibandingkan
sebelumnya.
VIRTUAL MEMORY
Dalam sistem memori virtual, sistem operasi secara
otomatis mengatur (manage) program-program yang
panjang. Program pemakai (user program) dapat lebih besar
daripada kapasitas fisik Memori Utama.
Sistem operasi menyimpan semua program pada hard disk yang
mempunyai kapasitas yg lebih besar daripada ukuran memori
fisik.
Pada satu waktu, hanya beberapa bagian program yang dibawa
ke dalam Memori Utama dari hard disk.
Pada saat diperlukan, bagian yg tidak berada dalam Memori
Utama dikirim (dari hard disk), dan pada saat yang sama,
bagian dari suatu program yang berada dalam Memori Utama
dikeluarkan dari Memori Utama dan disimpan pada hard disk.
Proses ini dikenal sebagai pertukaran (swapping).
VIRTUAL MEMORY
Dalam sistem Memori virtual, bila suatu program
dieksekusi, swapping dilakukan setiap diperlukan pada
suatu basis kontinu (continuous basis).
CPU mengambil instruksi dan data dari Memori Utama.
Jika
tidak tersedia dalam MU, perangkat keras
membangkitkan interupsi khusus dikenal dgn virtual
memory interrupt atau page fault.
Saat respon, sistem operasi me-load bagian program
(berisi instruksi atau data yang diperlukan) dari hard disk
drive ke Memori Utama.
VIRTUAL MEMORY
Page fault mirip interupsi tetapi dapat terjadi dalam suatu
siklus instruksi.
Setelah interupsi page fault dilayani CPU akan melanjutkan
pemrosesan instruksi yg dieksekusi secara parsial.
Untuk mendukung Memori virtual, program tidak langsung
mengalamati memori fisik. Bila membaca operand (data) atau
instruksi, dia menyediakan alamat logika (logical address) dan
perangkat keras Memori virtual menerjemahkannya menjadi
alamat memori fisik yg ekivalen selama eksekusi.
Translasi (penerjemahan) alamat
Management Unit (MMU).
dilakukan
oleh
Memory
VIRTUAL MEMORY
VIRTUAL MEMORY
KEUNTUNGAN MEMORI VIRTUAL
alokasi
secara
MEKANISME MEMORI
VIRTUAL
Ruang alamat CPU adalah rentang alamat valid yang
dapat dibangkitkan oleh set instruksinya.
Alamat-alamat fisik lokasi-lokasi actual dalam
memori utama.
Alamat logika spesifikasi memori yang digunakan
CPU.
Pada kebanyakan computer alamat logika dan alamat
fisik adalah sama.
Pada system memori virtual, alamat logika berbeda
dengan alamat-alamat fisik actual.
MEKANISME MEMORI
VIRTUAL
Sebuah tabel diberikan dalam hardware untuk
menunjukan bagian modul program yang tersedia
sekarang dalam memori utama.
Informasi dalam tabel
1. Bagian-bagian program yang ada sekarang dalam
memori utama
2. Area memori utama dimana bagian program yang
tersedia sekarang disimpan
MEKANISME MEMORI
VIRTUAL
Kapanpun suatu instruksi atau operand diakses, CPU
mencarinya didalam table untuk menentukan apakah dia
tersedia dalam memori utama atau tidak.
Jika tersedia MMU mengubah alamat logika menjadi
alamat fisik dan melakukan akses memori utama.
Jika tidak tersedia maka interupsi dibangkitkan
system operasi melakukan swapping dan mengupdate
table.
MEKANISME MEMORI
VIRTUAL
Paging
Software system membagi program menjadi sejumlah page.
Semua page dalam suatu program berukuran sama dan dalam
satu waktu beberapa page dari program-program tersedia di
memori utama dan sisanya disimpan pada hardisk yang digunakan
sebagai memori virtual.
2.
Segmentation
Pemrogram (bahasa mesin) menyusun program ke dalam segmensegmen berbeda. Ini adalah pembagian program menjadi modulmodul yang berguna. Segmen-segmen berbeda tidak mempunyai
ukuran sama
PAGING
Alokasi memori fisik dibagi menjadi
page frame yang ukurannya tetap,
dimana sejumlah page proses disimpan
dengan merekam informasi pada sebuah
page table.
Setiap proses mempunyai page table
sendiri yang secara khas tersimpan pada
memori utama dan page table menyimpan
lokasi fisik masing-masing virtual page
proses.
Page table mempunyai N baris (dimana N
adalah jumlah virtual page dalam proses)
PAGING
Jika ada page yang prosesnya sekarang
tidak berada dalam memori utama maka
page table mengindikasikannya dengan mereset sebuah valid bit menjadi 0
Jika page ada pada memori utama, maka
valid bit menjadi di set menjadi 1.
Karena itu setiap entry dari page table
mempunyai 2 field valid bit dan frame
number.
PAGING
field-field tambahan sering ditambahkan
untuk me-relay informasi lainnya. Misal dirty
bit (modify bit).
Modify bit mengindikasikan apakah page
sudah diubah.
Usage bit ditambahkan untuk
mengindikasikan penggunaan page.
Usage bit di set 1 jika page diakses.
Selama periode waktu tertentu di reset ke
0.
PAGING
Bila sebuah proses membangkitkan alamat virtual,
system operasi harus secara dinamis
mentranslasikan alamat virtual ini menjadi alamat
fisik dalam memori dimana data sebenarnya
berada.
Untuk menyelesaikan translasi alamat ini, sebuah
alamat virtual dibagi menjadi 2 field page field
dan offset field
CONTOH
Misal:
CONTOH
Setiap alamat virtual = 8 bit dibagi menjadi 2
field yaitu page dan offset.
Setiap page lebarnya 32word =25 5 bit offset
Page field (28/25) 23 3 bit.
CONTOH
Misal sekarang system membangkitkan
alamat virtual 13 = 0Dh = 00001101b
CONTOH
CONTOH
Catatan: sebuah alamat fisik hanya
mempunyai 7 bit (2 bit untuk frame,
karena ada 4 frame dan 5 bit untuk
offset).
CONTOH
Sebuah system mengimplementasikan sebuah ruang
memori virtual yang di-page untuk setiap proses
menggunakan one-level page table. Ukuran maksimum
ruang alamat virtual adalah 16MB. Page table untuk
proses running melibatkan valid entry berikut (tanda
menunjukkan bahwa sebuah virtual page dipetakan pada
page frame yang diberikan yaitu ditempatkan pada fram
tersebut)
Virtual
Virtual
Virtual
Virtual
Virtual
page
page
page
page
page
2
4
1
0
3
page frame 4
page frame 9
page frame 2
page frame 1
page frame 16
CONTOH
a. Berapa bit yang diperlukan untuk setiap
alamat virtual
b. Berapa bit yang diperlukan untuk setiap
alamat fisik
c. Berapa jumlah maksimum entry dalam
sebuah page table
d. Pada alamat fisik manakah akan
ditranslasikan alamat virtual 152410
e. Alamat virtual manakah yang akan
ditranslasikan ke alamat fisik 102410
CONTOH
Berapa bit yang diperlukan untuk setiap alamat
virtual:
Alamat virtual = 16MB = log2 224 = 24bit
Berapa bit yang diperlukan untuk setiap alamat
fisik
Alamat fisik = 2MB = log2 221 = 21bit
CONTOH
Berapa jumlah maksimum entry dalam sebuah page table
Jumlah maksimum entry dalam sebuah page table
page field = ruang alamat virtual/ukuran page
16M/1024byte = 224/210 = 214
Ukuran page field = 14 bit
ukuran offset = 24 14 = 10bit
CONTOH
Pada alamat fisik manakah akan ditranslasikan alamat
virtual 152410
0000 0000 0000 01
Page 10
0000 0000 10
01 1111 0100
01 1111 0100
alamat fisik 0009F4H = 2548d
frame 2
0 0000 0000 01
00 0000 0000
frame 1
00 0000 0000
LATIHAN
Sebuah system mengimplementasikan sebuah
ruang memori virtual yang di-page untuk setiap
proses menggunakan one-level page table.
Ukuran maksimum ruang alamat virtual
adalah 8MB. Page table untuk proses running
melibatkan valid entry berikut (tanda
menunjukkan bahwa sebuah virtual page
dipetakan pada page frame yang diberikan yaitu
ditempatkan pada fram tersebut)
Virtual
Virtual
Virtual
Virtual
Virtual
page
page
page
page
page
2
4
1
0
3
page frame 5
page frame 1
page frame 4
page frame 2
page frame 10
LATIHAN
a. Berapa bit yang diperlukan untuk setiap
alamat virtual
b. Berapa bit yang diperlukan untuk setiap
alamat fisik
c. Berapa jumlah maksimum entry dalam sebuah
page table
d. Pada alamat fisik manakah akan ditranslasikan
alamat virtual 76210
e. Alamat virtual manakah yang akan
ditranslasikan ke alamat fisik 51210
SEGMENTASI
Merupakan pembagian ruang alamat virtual
menjadi sama, page ukurannya tetap dan ruang
alamat fisik menjadi page frame yang ukurannya
sama.
Ruang alamat virtual dibagi menjadi alamat
logika, unit-unit variable length (segmen-segmen).
SEGMENTASI
Merupakan pembagian ruang alamat virtual
menjadi sama, page ukurannya tetap dan ruang
alamat fisik menjadi page frame yang ukurannya
sama.
Ruang alamat virtual dibagi menjadi alamat
logika, unit-unit variable length (segmensegmen).
Memori fisik sebenarnya tidak dibagi atau dipartisi
menjadi apapun.
Bila sebuah segmen perlu disalin ke memori fisik,
maka system operasi mencari suatu bagian
memori yang bebas yang cukup besar untuk
menyimpan semua segmen
SEGMENTASI
Setiap segmen memiliki sebuah alamat
base yang mengindikasikan dimana dia
ditempatkan didalam memori dan sebuah
bound limit yang mengindikasikan
ukurannya.
Masing-masing program terdiri atas
multisegmen dan memiliki segmen table
bersama sebagai pengganti sebuah page
table.
Segmen table merupakan kumpulan
sederhana dari pasangan base/bound untuk
setiap segmen.
SEGMENTASI
Akses memori diterjemaahkan oleh
penyediaan sebuah nomor segmen dan
sebuah offset dalam segmen.
Pengecekan error dilakukan untuk
menjamin offset berada dalam bound
yang diinginkan.
Nilai base untuk segmen (diperoleh dari
segment table) ditambahkan ke offset
yang menghasilkan alamat fisik actual.