Prinsip Dasar Cache Memory
Dalam dunia komputer dikenal dengan adanya cache (dibaca: kash) memory. Cache memory merupakan memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Cache memori terletak diantara memori utama dan register CPU, dan berfungsi agar CPU tidak langsung mengacu ke memori utama tetapi di cache memori yang kecepatan aksesnya lebih tinggi. Metode ini akan meningkatkan kinerja sistem. Dahulu cache disimpan di luar prosesor dan dapat ditambahkan untuk meningkatkan kinerja, saat ini cache ditanamkan di prosesor.
Elemen-elemen Rancangan Cache
Walaupun terdapat banyak implementasi cache, hanya terdapat sedikit elemen-elemen dasar rancangan yang dapat mengklasifikasikan dan membedakan arsitektur cache. Adapun elemen yang akan dibahas adalah elemen pertama yaitu ukuran cache. Semakin besar cache maka semakin besar jumlah gate yang terdapat pada pengalamatan cache. Akibatnya adalah cache yang berukuran besar cenderung untuk lebih lambat dibanding dengan cache berukuran kecil (walaupun dibuat dengan teknologi rangkaian terintegrasi yang sama dan ditaruh pada keping dan board yang sama
Pemetaan (Mapping)
Karena saluran cache lebih sedikit dibandingkan dengan blok memori utama, diperlukan algoritma untuk pemetaan blok-blok memori utama ke dalam saluran cache. Selain itu diperlukan alat untuk menentukan blok memori utama mana yang sedang memakai saluran cache. Pemilihan fungsi pemetaan akan menentukan bentuk organisasi cache. Dapat digunakan tiga jenis teknik, yaitu sebagai berikut :
a. Pemetaan Langsung (Direct Mapping)
Pemetaan ini memetakan masing-masing blok memori utama hanya ke satu saluran cache saja. Jika suatu blok 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 block yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi).
b. Pemetaan Asosiatif (Associative Mapping)
Pemetaan ini mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan asosiatif, 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 paralel, sehingga pencarian data di cache menjadi lama
c. 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.
Jumlah Cache
a. Cache Satu Tingkat (First level cache)
Memori yang bernama L1 Cache ini adalah memori yang terletak paling dekat dengan prosesor (lebih spesifik lagi: dekat dengan blok CU [Control Unit]). Penempatan Cache di prosesor dikembangkan sejak PC i486. Memori di tingkat ini memiliki kapasitas yang paling kecil (hanya 16KB), tetapi memiliki kecepatan akses dalam hitungan nanodetik (sepermilyar detik). Data yang berada di memori ini adalah data yang paling penting dan paling sering diakses. Biasanya data di sini adalah data yang telah diatur melalui OS (Operating System) menjadi Prioritas Tertinggi (High Priority).
b. Cache dua tingkat (Second level cache)
Memori L2 Cache ini terletak terletak di MotherBoard (lebih spesifik lagi: modul COAST : Cache On A STick. Bentuk khusus dari L2 yang mirip seperti Memory Module yang dapat diganti-ganti tergantung motherboardnya). Akan tetapi ada juga yang terintegrasi langsung dengan MotherBoard, atau juga ada yang terintergrasi dengan Processor Module. Di L2 Cache ini, kapasitasnya lebih besar dari pada L1 Cache. Ukurannya berkisar antara 256 KB—2MB. Biasanya , L2 Cache yang besar diperlukan di MotherBoard untuk Server. Kecepatan akses sekitar 10ns (nano second).
http://nana785750.multiply.com/journal/item/9/cache_memory