CACHE MEMORY
Cara pembacaan pada cache :
• CPU meminta data 1 alamat
• Data akan dicari di lokasi cache
• Jika ada maka akan langsung dikirim ke CPU
• Jika tidak ditemukan, cache akan meminta atau mengambil 1
blok data yang mengandung alamat yang diminta dari main
memori.
• Akan dikirim satu blok data ke cache, cache akan mengirim 1
alamat yang diminta CPU
• Sisa data dari main memori akan disimpan di cache
Elemen Rancangan Cache :
a. Size / Kapasitas
b. Mapping Function/Fungsi Pemetaan
c. Replacement Algorithm/Algoritma Pengganti
d. Write Policy /Cara Penulisan
e. Block Size / Ukuran Blok
f. Number of Caches / Jumlah Cache
Size / Kapasitas
Ukuran memori cache sangatlah penting untuk
mendongkrak kinerja komputer.
Semakin besar kapasitas cache tidak berarti
semakin cepat prosesnya,
dengan ukuran besar akan terlalu banyak gate
pengalamatannya sehingga akan memperlambat
proses.
Mapping Function
Cache memori yang besar akan mengurangi
kecepatan pada saat pencarian data.
Terdapat tiga metode, yaitu
a. pemetaan langsung,
b. pemetaan asosiatif, dan
c. pemetaan asosiatif set.
Direct Maping/Pemetaan Langsung
Setiap blok pada main memori terpetakan hanya
satu baris pada cache
Alamat dari CPU akan dibagi 2 bagian untuk
menentukan word berapa dan sisa blok.
Fungsi pemetaan diimplementasikan dengan
menggunakan alamat, yang terdiri dari tiga field
(tag, line, word)
Contoh :
1. Suatu sistem komputer memiliki memori
utama sebesar 16 Mbyte, memiliki cache
sebesar 64 Kbyte. Transfer data antara
memori utama dengan cache dalam ukuran
blok besarnya 4 byte. Jika digunakan
pemetaan langsung (direct mapping)
tunjukkan masing-masing berapa bit untuk
tag, slot/line dan word.
Penyelesaian:
• Memori utama :16 MB= 220 + 24 = 224 lebar alamat = 24 bit
• Size blok :4 B = 22 lebar word = 2 bit
• Cache :64 KB = 64 KB = 16 K
4B
16 K = 210 + 24 = 214 lebar Line/slot=14 bit
Jadi direct mapping untuk main memori 16MB, cache 64KB dan ukuran
blok = 4B menjadi
24 bit 8 bit tag 14 bit line/slot 2 bit word
Tag = 24 -14 -2
= 8 bit
2. Pemetaan langsung/ direct mapping :
Main memori cache memori
Tag data data
tag 0 1 2 3
FE
16339C 16 FE DC BA 98
DC
BA
98
Bagaimana Penyelesaiannya?????
Step Penyelesaian:
1. Cari pemetaan alamatnya (jika menggunakan
direct mapping) cari: berapa tag, line dan
word
2. Alamat hexa 16339C di konversi ke biner
3. Ambil LSB untuk bit word.
4. Sisa digit biner diambil sebesar line dan
dihitung ulang.
5. Sisa digit dari word dan line adalah tag.
Penyelesaian :
8 bit tag 14 bit line/slot 2 bit word
16339C konfersi ke biner
1 6 3 3 9 c
0001 0110 0011 0011 1001 1100
tag=16 line = 0CE7 word = 0
Jadi masukan data 16339C dengan direct
mapping dihasilkan
alamat tag = 16, line/slot = 0CE7 dan word = 0
3. Suatu sistem komputer memiliki memori utama
sebesar 512 Mbyte, memiliki cache sebesar 512
Kbyte. Transfer data antara memori utama
dengan cache dalam ukuran blok besarnya 32
byte. Jika digunakan pemetaan langsung (direct
mapping) tunjukkan masing-masing berapa bit
untuk tag, slot/line dan word.
4. Berapa lebar alamat jika besar memory utama
adalah
a. 256 MB
b. 512 KB
c. 512 MB
Assosiatif Mapping
Setiap blok memori utama dapat dimuat ke
sembarang saluran cache.
Alamat memori utama diinterpretasikan dalam
field tag dan field word oleh kontrol logika
cache.
Alamat memori utama diinterpretasikan dalam
field tag dan field word oleh kontrol logika
cache
Associative Mapping Address Structure
Word
24 bit Tag 22 bit 2 bit
24 bit alamat 16Mbyte dari main memori
2 bit word (4 byte block)
22 bit tag
Tag 22 bit harus disimpan dalam blok data
32 bit pada cache.
Contoh :
1. Diket : memori = 16 MB
cache = 64 KB
blok =4B
• Memori :16 MB= 220 + 24 = 224 lebar alamat = 24 bit
• Size blok :4 B = 22 lebar word = 2 bit
Jadi assosiative mapping untuk main memori 16MB,cache
64KB dan ukuran blok=4B menjadi
Word
24 bit Tag 22 bit 2 bit
2. Dengan diberikan data
sama :
main memori 16 MB,
alamat data 16339C
Set Assosiative Mapping
Terbagi dari tag, set dan word
Cache dibagi beberapa set
Setiap set berisi beberapa line
Macam Set Assosiative mapping :
a. Two-way set (2-way set) dalam 1 line terdapat 2 set.
b. Four-way set (4-way set) dalam 1 line terdapat 4
set.
Contoh:
1. Soal sama…
diket : memori 16 MB
cache 64 KB
blok 4B
Buat dalam two-way set ?
2. Dari main memori seperti soal satu diberikan
masukan data : 16339C cari dengan 2-way set ?
Penyelesaian:
1. 16 MB = 220 + 24 = 224 alamat masuk= 24 bit
4 KB = 22 lebar word = 2 bit
64 = 64 KB = 16 K = 16 K = 8 K
4 B 2
8 K = 210 + 2 3 = 213 set 13 bit
24 bit Tag = 9 bit Set = 13 bit Word = 2 bit
2. 16339C di binerkan
0001 0110 0011 0011 1001 1100
tag = 02C set = 0CE7 W = 0
Jadi 16339C dengan two-way set data masuk
pada alamat 0CE7 dengan t = 02C.
S = 0CE7 dan w = 0.
Gambar contoh two way set