Вы находитесь на странице: 1из 50

ORGANISASI DAN

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 baris cache secara random tanpa suatu


acuan pada frekuensi penggunaan sebelumnya. Algoritma ini
diimplementasikan dengan perangkat keras yg sederhana.

First-in First-Out 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.

Least Frequently used

Algoritma ini memilih suatu blok yang telah digunakan CPU yang
paling sedikit.

Least Recently used

Algoritma ini memilih item yg telah digunakan CPU yang paling


sedikit yang baru lalu (terakhir). Asumsinya adalah bahwa cara
serupa akan berlanjut dan tidak mungkin dibutuhkan segera.

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.

PERFORMA CACHE DAN HIT RATE


Hit rate idealnya 1 agar setiap pengaksesan Memori Utama
oleh prosesor dilayani oleh Memory Cache dan tidak ada
akses Memori Utama yg diperlukan secara keseluruhan.
Secara praktis, tidak mungkin tercapai, karenanya
dicoba hit rate mendekati 1.
Desain sangat buruk jika hit rate mendekati 0. Ini artinya
pengaksesan Memori Utama sangat banyak.
Hit rate 0 artinya semua hasil pengaksesan Memori Utama
oleh prosesor adalah MISS. Walaupun parameter-parameter
desain tertentu membantu dalam pencapaian hit rate
mendekati 1, tingkah laku program aplikasi dapat dengan
mudah mengganggu hit rate.

PERFORMA CACHE DAN


HIT RATE
CONTOH

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

Sumber: Handout Ir. Syahrul , M.T.

Sumber: Handout Ir. Syahrul , M.T.

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%

Sumber: Handout Ir. Syahrul , M.T.

Sumber: Handout Ir. Syahrul , M.T.

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%

Sumber: Handout Ir. Syahrul , M.T.

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.

CACHE MULTI LEVEL


Beberapa komputer menggunakan sistem MC 2-level atau 3level, bila ukuran MU nya besar.
Cache yg letaknya terdekat dgn prosesor disebut cache level-1
(L1) atau cache primer. Cache level berikutnya disebut cache
level-2 (L2) atau cache sekunder.
Pada umumnya prosesor menggabungkan cache multi-level
dalam satu chip.

Memori cache 2-level

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

Ukuran program tidak dibatasi ukuran memori


fisik.
Pemakai tidak perlu mengestimasi
memori. Alokasi memori dilakukan
otomatis sesuai permintaan program.

alokasi
secara

Program dapat di-load dalam suatu area memori


fisik karena program tidak menggunakan alamat
fisik.

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


Alamat logika mempunyai dua bagian, yaitu:
1. Bagian yang menentukan nomor modul program (nomor
segmen atau nomor page).
2. Bagian yang menyediakan offset atau nomor word pada
modul program tersebut yang menghubungkan ke awal modul
tersebut.

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

Terdapat dua metode yang popular dalam implementasi memori


virtual:
1.

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

Proses translasi alamat ini mirip dengan proses


yang digunakan ketika kita membagi alamat-alamat
memori utama menjadi field-field untuk pemetaan
memori cache.
Ukuran page biasanya merupakan pangkat dari 2.

CONTOH
Misal:

Ruang alamat virtual 28 word untuk suatu


proses yang diberikan dan memori fisik 4page
frame (tanpa cache). Setiap page
panjangnya 32 word.
Alamat fisik terdiri 7 bit. Anggap beberapa
page dari proses telah dibawa ke memori
utama.

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

Untuk melanjutkan proses translasi kita


menggunakan nilai page field = 000b
sebagai indeks ke page table.

CONTOH

Entry ke-0 pada memetakan ke page frame fisik 2 => 10b


Jadi alamat fisik yang ditranslasikan menjadi page frame
2, offset 13.

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

Ukuran page 1024byte dan ukuran memori fisik


maksimum mesin adalah 2 MB

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

alamat virtual 1524d=0005F4h

01 1111 0100
alamat fisik 0009F4H = 2548d

frame 2

0 0000 0000 01

00 0000 0000

Alamat virtual manakah yang akan ditranslasikan ke


alamat fisik 102410
0000 0000 0000 00

frame 1

00 0000 0000

alamat virtual 0d=00000h

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

Ukuran page 512byte dan ukuran memori


fisik maksimum mesin adalah 2 MB

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).

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
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.

Вам также может понравиться