Memory Cache

Mapping pada Cache Memory

Organisasi dan Arsitektur Komputer
by : Chandra Wijaya

Cache Memory

Sebagian program pada komputer mempunyai instruksi yang cenderung mengambil data dari alamat yang sama berkali-kali. Misalnya menyimpan variabel, kemudian dilakukan loop. Untuk data yang sama jika harus mencari lokasi alamat memory lagi, akan membuang banyak waktu.

Bagaimana seandainya data yang sering diakses, disimpan di dalam memory, tetapi harus static (punya jalur langsung ke CPU), agar lebih cepat. Solusinya, adalah Cache.

Mapping Function (Fungsi Pemetaan)

Adalah, metode yang digunakan untuk menemukan/ menempatkan sebuah alamat memori dalam sebuah cache, menyalin sebuah blok dari memori utama ke dalam cache dan digunakan juga untuk menerima data dari cache.

Terdapat tiga macam Mapping Function:
  • Direct
  • Associative
  • Set Associative

Direct Mapping

Pemetaan langsung adalah teknik yang paling sederhana, yaitu teknik ini memetakan 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 (jika program mengakses 2 blok yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi).

Setiap block dari memori utama hanya memetakan ke dalam satu baris cache. Jika suatu block ditemukan di cache, maka block tersebut selalu ditemukan pada tempat yang sama.
   Nomor baris dihitung menggunakan rumus berikut:
                         i = j modulo m
di mana 
i = Nomor baris cache
j = Nomor block pada memori utama
m = Jumlah baris di cache

  Tabel Cache Line pada Direct Mapping

Cache Line
Blocks Main Memory
0
0,  m,  2m,  3m …. 2s-m
1
1,  m+1,  2m+1 …. 2s-m+1
m-1
m-1,  2m-1,  3m-1 …. 2s-1

   Organisasi Cache Direct Mapping


   Contoh Direct Mapping

Associative Mapping

Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan assosiatif, terdapat fleksibilitas penggantian blok ketika blok baru dibaca ke dalam 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.
Ciri-cirinya:
·         Memungkinkan blok diletakkan di sebarang line yang sedang tidak terpakai.
·         Diharapkan akan mengatasi kelemahan utama Direct Mapping.
·         Harus menguji setiap cache untuk menemukan blok yang diinginkan.
o   Mengecek setiap tag pada line
o   Sangat lambat untuk cache berukuran besar.
·         Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2 field saja, yaitu tag dan word offset.
·         Melakukan pencarian ke semua tag untuk menemukan blok.
·         Cache dibagi menjadi 2 bagian :
o   lines dalam SRAM
o   tag dalam associative memory

Organisasi Associative Mapping

Contoh Associative Mapping

SetAssociative 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.
Ciri-cirinya:
·         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
·         Jika sebuah set dapat menampung X line, maka cache disebut memiliki X way set associative cache.
·         Hampir semua cache yang digunakan saat ini menggunakan organisasi 2 atau 4-way set associative mapping.


Keuntungan menggunakan Set Associative Mapping antara lain:
·         Setiap blok memori dapat menempati lebih dari satu kemungkinan nomor line (dapat menggunakan line yang kosong), sehingga thrashing dapat diperkecil.
·         Jumlah tag lebih sedikit (dibanding model associative), sehingga jalur untuk melakukan perbandingan tag lebih sederhana.

Organisasi Set Associative Mapping

Contoh Set Associative Mapping

Summary Table

Item
Direct
Associative
SetAssociative
Panjang alamat
(s+w) bits
(s+w) bits
(s+w) bits
Jumlah unit pengalamatan
2s+w words
2s+w words
2s+w words
Ukuran Bloks dengan Lines
2w words
2w words
2w words
Jumlah blok memori utama
2s + w/2w = 2s
2s + w/2w = 2s
2d
Jumlah line dalam set
-
-
K
Jumlah set
-
-
V=2d
Jumlah line di cache
M = 2r
Undetermined
Kv=k*2d
Besarnya tag
(s - r) bits
s bits
(s - d) bits
Demikian, semoga informasinya bermanfaat.

Komentar