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. Ada tiga metode yang digunakan yaitu :
1. Pemetaan Langsung (Direct Mapping)
Pemetaan Langsung (Direct Mapping) adalah teknik paling sederhana, yaitu teknik ini memtakan blok memori utama hanya ke sebuah saluran cache saja. Jika suatu block ada di cache, maka tempatnya sudah tertentu. Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan kerugian dari direct mapping adalah suatu blok memiliki lokasi yang tetap. Penjelasan lebih detail :
• Pada cara ini, address pada main memory dibagi 3 field atau
bagian, yaitu:
- Tag identifier = disimpan pada cache bersama dengan blok
pada line.
- Line number identifier = berisi informasi tentang nomor
fisik (bukan logika) line pada chace.
- Word identifier (offset) = berisi informasi tentang lokasi
word atau unit addressable lainnya dalam line tertentu pada cache.
• Untuk setiap alamat memory yang dibuat oleh CPU, line
tertentu yang menyimpan copy alamat tsb ditentukan, jika blok tempat lokasi
data tersebut sudah dikopi dari main memory ke cache.
• Tag yang ada pada line akan dicek untuk melihat apakah
benar blok yang dimaksud ada line tsb.
Gambar Organisasi Direct Mapping
Ringkasan Direct Mapping nampak pada tabel berikut
Item |
Keterangan |
Panjang alamat |
(s+w) bits |
Jumlah unit yang dapat dialamati |
2s+w words or bytes |
Ukuran Bloks sama dengan ukuran Line |
2w words or bytes |
Jumlah blok memori utama |
2s+ w/2w = 2s |
Jumlah line di chace |
M = 2r |
Besarnya tag |
(s - r) bits |
2. Pemetaan Asosiatif (Associative Mapping)
Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Kekurangan pemetaan asosiatif yang utama adalah kompleksitas rangkaian yang diperlukan untuk menguji tag seluruh saluran cache secara parallel, sehingga pencarian data di cache menjadi lama.
• Memungkinkan blok diletakkan di sebarang line yang sedang
tidak terpakai.
• Nomor line menjadi tidak berarti. Address main memory
dibagi menjadi 2 field saja, yaitu tag dan word offset.
• Harus menguji setiap cache untuk menemukan blok yang
diinginkan
Mengecek setiap tag pada line, Sangat lambat untuk cache berukuran besar
Gambar Organisasi Associative Mapping |
Ringkasan Set Associative Mapping nampak pada tabel berikut:
Item |
Keterangan |
Panjang alamat |
(s+w) bits |
Jumlah unit yang dapat dialamati |
2s+w words or bytes |
Ukuran Bloks sama dengan ukuran Line |
2w words or bytes |
Jumlah blok memori utama |
2d |
Jumlah line dalam set |
k |
Jumlah set |
V=2d |
Jumlah line di chace |
Kv= k*2d |
Besarnya tag |
( s – d )bits |
3. Pemetaan Asosiatif Set (Set Associative Mapping)
Pada pemetaan ini, cache dibagi dalam sejumlah sets. Setiap
set berisi sejumlah line. Pemetaan asosiatif set memanfaatkan
kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaan asosiatif.
• Merupakan kompromi antara Direct dengan Full Associative
Mapping.
• Membagi cache menjadi sejumlah set (v) yang masing-masing
memiliki sejumlah line (k)
• Setiap blok dapat diletakkan di sebarang line dengan nomor
set: nomor set = j modulo v.
Gambar Organisasi K-Way Set Associative Mapping |
Ringkasan Set Associative Mapping nampak pada tabel berikut:
Item |
Keterangan |
Panjang alamat |
(s+w) bits |
Jumlah unit yang dapat dialamati |
2s+w words or bytes |
Ukuran Bloks sama dengan ukuran Line |
2w words or bytes |
Jumlah blok memori utama |
V=2d |
Jumlah line dalam set |
k |
Jumlah set |
V=2d |
Jumlah line di chace |
Kv = k*2d |
Besarnya tag |
( s – d )bits |