You are on page 1of 41

Cache Memory

Lec.4 1
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).

Lec.4 2
Cache Memory

Lec.4 3
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).

Lec.4 4
Locality of Reference

 Pada saat eksekusi program, memori


cenderung membaca suatu cluster di
memori.
 Contoh : Loop

Lec.4 5
Cache Design

 Ukuran cache
 Pemetaan (Mapping Function)
 Algoritma Penggantian (Replacement
Algorithm)
 Write Policy
 Ukuran Blok
 Jumlah Cache

Lec.4 6
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

Lec.4 7
Pemetaan

 Blok-blok memori utama akan dipetakan


ke slot-slot cache.
 Ukuran memori utama jauh lebih besar
dari ukuran cache (C << M) sehingga
tidak semua blok memori utama dapat
ditempatkan pada cache.
 Untuk itu diperlukan suatu cara untuk
memetakan blok memori utama ke
cache.

Lec.4 8
Pemetaan

Lec.4 9
Teknik Pemetaan

 Direct mapping
 Fully associative mapping
 Set associative mapping

Lec.4 10
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.

Lec.4 11
Direct mapping

 Aturan pemetaannya:
i = j modulus m

di mana:
 i = nomor slot cache

 j = nomor blok memori utama

 m = jumlah slot cache

Lec.4 12
Direct mapping

Lec.4 13
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

Lec.4 14
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.

Lec.4 15
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.

Lec.4 16
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.

Lec.4 17
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.
Lec.4 18
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.

Lec.4 19
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.

Lec.4 20
Fully associative mapping

Lec.4 21
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).

Lec.4 22
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.

Lec.4 23
 Kelemahan utama teknik ini adalah
lambatnya proses pengecekan karena
harus dilakukan proses pengecekan
pada tiap TAG.

Lec.4 24
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.

Lec.4 25
Set Associative Mapping

 Aturan pemetaan :
i = j modulus s

di mana:
 i = nomor set cache
 j = nomor blok memori utama

 s = jumlah set

Lec.4 26
Set Associative Mapping

Lec.4 27
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.

Lec.4 28
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.

Lec.4 29
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.

Lec.4 30
Algoritma pergantian
 Pada teknik direct mapping, jika sebuah blok
akan disalinkan ke sebuah slot dan slot
tersebut sedang terisi, maka blok yang baru
tersebut langsung akan menggantikan blok
yang lama.
 Pada teknik fully associative dan set
associative mapping, jika sebuah blok akan
disalinkan ke slot cache dan semua slot saat
itu penuh, maka harus ditentukan isi slot mana
yang harus diganti. Untuk itu diperlukan suatu
algoritma penggantian.

Lec.4 31
Algoritma pergantian

 Algorima penggantian yang bisa


digunakan adalah :
 First In First Out (FIFO) : mengganti blok
yang paling lama menempati cache.
 Least Recently Used (LRU) : mengganti
blok yang paling lama tidak digunakan.
 Least Frequently Used (LFU) : mengganti
blok yang paling jarang digunakan.
 Random : mengganti secara acak.

Lec.4 32
Write Policy

 Sebelum sebuah blok yang berada di


dalam cache dapat diganti, harus
diketahui apakah blok tersebut sudah
diubah selama di cache atau tidak.
 Bila belum diubah, blok lama dapat
langsung ditindih.
 Bila sudah diubah, maka isi memori
utama harus diperbaharui.

Lec.4 33
Write Policy

 Ada 2 write policy yang biasa digunakan,


yaitu:
 Write Through
 Write Back

Lec.4 34
Write Through

 Penulisan dilakukan pada cache dan


juga memori utama
 Akan menyebabkan banyak trafik
 Memperlambat proses penulisan

Lec.4 35
Write Back

 Pada awalnya, perubahan hanya dilakukan di


cache.
 Sebuah bit akan diset apabila update terjadi.
 Pada saat blok akan diganti, penulisan pada
memori hanya dilakukan apabila bit tersebut
dalam keadaan diset.
 Setiap I/O harus mengakses langsung ke
cache karena isi memori utama tidak valid.
 Rangkaian menjadi rumit.

Lec.4 36
Ukuran kinerja cache

 Ukuran kinerja cache, dilihat


berdasarkan miss ratio :
 Hit ratio (HR) = Jumlah referensi yang
mengacu pada cache / total jumlah
referensi
 Miss ratio (MR) = 1 - HR

Lec.4 37
Intel Processor’s Cache
 80386 – no on chip cache
 80486 – 8k using 16 byte lines and four way set
associative organization
 Pentium (all versions) – two on chip L1 caches
 Data & instructions
 Pentium 4 – L1 caches
 8k bytes
 64 byte lines
 four way set associative
 L2 cache
 Feeding both L1 caches
 256k
 128 byte lines
 8 way set associative

Lec.4 38
Pentium 4 Diagram (Simplified)

Lec.4 39
Pentium 4 Core Processor
 Fetch/Decode Unit
 Fetches instructions from L2 cache
 Decode into micro-ops
 Store micro-ops in L1 cache
 Out of order execution logic
 Schedules micro-ops
 Based on data dependence and resources
 May speculatively execute
 Execution units
 Execute micro-ops
 Data from L1 cache
 Results in registers
 Memory subsystem
 L2 cache and systems bus

Lec.4 40
Pentium 4 Design Reasoning
 Decodes instructions into RISC like micro-ops before L1 cache
 Micro-ops fixed length
 Superscalar pipelining and scheduling
 Pentium instructions long & complex
 Performance improved by separating decoding from scheduling
& pipelining
 (More later – ch14)
 Data cache is write back
 Can be configured to write through
 L1 cache controlled by 2 bits in register
 CD = cache disable
 NW = not write through
 2 instructions to invalidate (flush) cache and write back then
invalidate

Lec.4 41

You might also like