Anda di halaman 1dari 38

Cache Memory

1. Cache Memory
2. Kapasitas Cache
3. Ukuran Blok
4. Fungsi Pemetaan (Mapping)
Cache Memory
Cache Memory
• Cache memory adalah memori kecepatan tinggi,
tetapi berukuran kecil, yang digunakan untuk
menyimpan salinan data / instruksi yang sering
diakses oleh CPU.
• Cache memory berfungsi menjembatani perbedaan
kecepatan antara CPU dan Memori Utama.
• Dalam implementasinya jenis memori yang
digunakan untuk cache adalah statik RAM (SRAM).
Cache Memory
Operasi Cache
• CPU meminta isi suatu lokasi memori
• Memeriksa apakah data terdapat di cache
• Jika ada di cache, ambil data dari cache
(cepat)
• Jika tidak ada di cache, copy isi memori ke
cache dan kirimkan data yang diminta ke CPU
(lambat).
Locality of Reference
• Pada saat eksekusi program, memori
cenderung membaca suatu cluster di memori.
• Contoh : Loop
Cache Design
• Ukuran cache
• Pemetaan (Mapping Function)
• Algoritma Penggantian (Replacement
Algorithm)
• Write Policy
• Ukuran Blok
• Jumlah Cache
Ukuran Cache
• Kecepatan
– Semakin besar ukuran cache semakin cepat
(sampai ukuran tertentu)
– Apabila ukuran cache semakin besar, proses
pengecekan cache lebih lama.
• Harga
– Semakin besar cache, semakin mahal
Kapasitas Cache
Capacity
• Memori Internal
- kapasitas dinyatakan dalam byte (1 byte =
8 bit) atau word.
- panjang satu word 8, 16, 32 bit.

• Memori External
- kapasitas dinyatakan dalam byte.
- biasanya lebih besar kapasitasnya daripada
memori internal, hal ini disebabkan karena
teknologi dan sifat penggunaannya yang
berbeda.
Ukuran Blok
• Adanya sifat lokalitas referensi menyebabkan nilai
ukuran blok sangatlah penting.
• Apabila blok berukuran besar ditransfer ke cache
akan menyebabkan hit ratio mengalami
penurunan karena banyaknya data yang dikirim di
sekitar referensi.
• Tetapi bila terlalu kecil, dimungkinkan memori
yang akan dibutuhkan CPU tidak tercakup.
• Apabila blok berukuran besar ditransfer ke cache,
maka akan terjadi :
Blok-blok yang berukuran lebih besar
mengurangi jumlah blok yang menempati cache.
Karena setiap pengambilan blok menindih isi
cache yang lama, maka sejumlah kecil blok akan
menyebabkan data menjadi tertindih setelah
blok itu diambil.
Dengan meningkatnya ukuran blok maka jarak
setiap word tambahan menjadi lebih jauh dari
word yang diminta, sehingga menjadi lebih kecil
kemungkinannya digunakan dengan cepat.
Hubungan antara ukuran blok dan hit ratio
sangat rumit untuk dirumuskan, tergantung
pada karakteristik lokalitas programnya dan
tidak terdapat nilai optimum yang pasti telah
ditemukan. Ukuran antara 4 hingga 8 satuan
yang dapat dialamati (word atau byte) cukup
beralasan untuk mendekati nilai optimum.
Fungsi Pemetaan (Mapping)
Saluran cache lebih sedikit dibandingkan dengan
blok memori utama sehingga diperlukan
algoritma untuk pemetaan blok-blok memori
utama ke dalam saluran cache.
Selain itu, diperlukan juga alat untuk
menentukan blok memori utama mana yang
sedang memakai saluran cache.
Pemilihan fungsi pemetaan akan menentukan
bentuk organisasi cache.
Terdapat tiga metode yang digunakan yaitu :
Teknik Pemetaan
• Direct mapping
• Fully associative mapping
• Set associative mapping
Teknik Pemetaan
• Untuk menjelaskan teknik-teknik pemetaan ini
digunakan data-data berikut :
– Ukuran memori utama = 216 word
– Ukuran cache = 211 word.
– Ukuran blok memori = ukuran slot cache = 16
word = 24 word.
– Jumlah blok memori = 216 / 24 = 4096 blok
– Jumlah slot cache = 211 / 24 = 128 slot.
Direct mapping
• Aturan pemetaannya:
i = j modulus m

di mana:
– i = nomor slot cache
– j = nomor blok memori utama
– m = jumlah slot cache
Direct mapping
Direct mapping
• Contoh:
Tentukan pada slot mana blok 0, 1,128,140 akan dipetakan.

Jawab:
Blok 0 :
i = j modulus m
i = 0 modulus 128
i=0
Jadi blok 0 akan dipetakan ke slot 0.

Dengan cara yang sama :


Blok 1 → Slot 1
Blok 128 → Slot 0
Blok 140 → Slot 12
Struktur Alamat

• 7 bit pada field SLOT menentukan di slot mana word


tersebut seharusnya disimpan.
• 4 bit pada field WORD menentukan posisi word pada slot
tersebut.
• 5 bit pada field TAG menentukan blok memori yang mana
yang saat itu tersimpan di cache.
Struktur Alamat
• Contoh :
– Saat ini salinan word-word dari blok 0 sedang ada
di slot 0. Word-word dari blok 0 memiliki alamat
0000 0000 0000 0000 sampai 0000 0000 0000
1111.
– 5 bit tertinggi dari word tersebut akan disimpan
pada tag yang ada pada cache. Berarti pada saat
word-word dari blok 0 ada di slot 0, maka pada
tag slot 0 akan tersimpan bilangan 00000.
Struktur Alamat
• Misalkan CPU akan mengambil sebuah word dengan
alamat 0000 0000 0000 0000.
• Maka yang pertama kali diproses adalah 7 bit pada
field SLOT = 000 0000.
• Ini berarti data tersebut seharusnya tersimpan pada
slot 0.
• Untuk memastikan apakah word tersebut ada pada
pada slot 0, 5 bit tertinggi dari alamat tersebut (0000
0) dibandingkan dengan isi tag slot 0. Ternyata sama,
kesimpulannya word tersebut ada di cache.
Struktur Alamat
• Misalkan CPU akan mengambil sebuah word
dengan alamat 1000 0000 0000 0000.
• Maka yang pertama kali diproses adalah 7 bit pada
field SLOT = 000 0000.
• Ini berarti data tersebut seharusnya tersimpan
pada slot 0.
• Untuk memastikan apakah word tersebut ada pada
pada slot 0, 5 bit tertinggi dari alamat tersebut
(1000 0) dibandingkan dengan isi tag slot 0 (0000
0). Ternyata tidak sama, kesimpulannya word
tersebut tidak ada di cache.
Keuntungan & Kelemahan Direct Mapping

• Keuntungan teknik direct mapping adalah pada


kesederhanaan proses pemetaannya. Selain itu pada
saat proses pengecekan ada tidaknya word di cache
hanya satu tag yang perlu dicek isinya.
• Kelemahan teknik direct mapping adalah kurang
fleksibel, sebuah blok harus dipetakan ke slot yang
tetap, sehingga tidak bisa memanfaatkan slot yang
kosong.
Fully associative mapping
• Teknik ini digunakan untuk mengatasi
ketidakfleksibelan teknik direct mapping.
• Pada teknik ini setiap blok boleh dipetakan ke
blok mana saja. Dengan cara ini pemetaan
lebih fleksibel dan dapat memanfaatkan slot-
slot yang kosong.
Fully associative mapping
Struktur Alamat

• 4 bit pada field WORD menentukan posisi word


pada slot tersebut.
• 12 bit pada field TAG menentukan blok memori
yang mana yang saat itu tersimpan di cache (pada
slot tersebut).
Struktur Alamat
• Contoh:
– Misalkan CPU akan mengambil sebuah word dengan
alamat 0000 0000 0000 0000.
– Pada teknik direct mapping, yang pertama kali diproses
adalah 7 bit pada field SLOT untuk menentukan isi TAG
slot mana yang akan dibandingkan dengan 5 bit teratas
dari alamat word tersebut.
– Sedangkan pada teknik fully associative mapping, karena
tiap blok bisa menempati slot mana saja, maka harus
dilakukan pengecekan pada isi tiap TAG untuk
menentukan apakah sebuah word ada di cache atau
tidak.
• Kelemahan utama teknik ini adalah lambatnya
proses pengecekan karena harus dilakukan
proses pengecekan pada tiap TAG.
Set Associative Mapping
• Teknik ini merupakan kombinasi kedua teknik
sebelumnya.
• Pada teknik ini beberapa slot dikelompokkan
menjadi sebuah set. Ukuran tiap set dapat
diatur.
• Tiap blok harus dipetakan pada set tertentu,
tetapi bebas dipetakan pada slot mana saja,
yang merupakan anggota dari set tersebut.
Set Associative Mapping
• Aturan pemetaan :
i = j modulus s

di mana:
• i = nomor set cache
• j = nomor blok memori utama
• s = jumlah set
Set Associative Mapping
Struktur Alamat

• 6 bit pada field SET menentukan di SET mana word


tersebut mungkin disimpan.
• 6 bit pada field TAG menentukan blok memori yang
mana yang saat itu tersimpan di cache (pada slot
tersebut).
• 4 bit pada field WORD menentukan posisi word
pada slot tersebut.
Struktur Alamat
• Misalkan CPU akan mengambil sebuah word dengan alamat
1111 0000 0000 0000.
• Maka yang pertama kali diproses adalah 6 bit pada field SET =
00 0000.
• Ini berarti data tersebut mungkin tersimpan pada SET 0.
• Selanjutnya untuk mengetahui apakah word tersebut
memang ada pada pada SET 0 atau tidak, 6 bit tertinggi dari
alamat tersebut (1111 00) dibandingkan dengan isi tiap TAG
yang ada pada SET 0.
• Jika ada yang sama, berarti word tersebut ada pada SET 0
pada slot yang isi TAG-nya sama dengan keenam bit tersebut.
Jika tidak ada yang sama, berarti word tersebut tidak ada di
cache dan harus diambil dari memori utama.
Keuntungan
• Keuntungan teknik ini adalah lebih fleksibel
dibanding dengan teknik direct mapping,
tetapi juga proses pembandingan isi tagnya
relatif lebih cepat dibanding teknik fully
associative karena jumlah tag yang
dibandingkan lebih sedikit.

Anda mungkin juga menyukai