Struktur Sistem Cache
Memori utama terdiri dari sampai dengan 2n word beralamat, dengan masing-masing word
mempunyai n-bit alamat yang unik. Untuk keperluan pemetaan, memori ini dinggap
terdiri dari sejumlah blok yang mempunyai panjang K word masing-masing bloknya.
Dengan demikian, ada M = 2n/K blok. Cache terdiri dari C buah baris
yang masing-masing mengandung K word, dan banyaknya baris jauh lebih sedikit
dibandingkan dengan banyaknya blok memori utama (C << M). Di setiap saat,
beberapa subset blok memori berada pada baris dalam cache. jika sebuah word di
dalam blok memori dibaca, blok itu ditransfer ke salah satu baris cache. karena
terdapat lebih banyak blok bila dibanding dengan baris, maka setiap baris tidak
dapat menjadi unik dan permanen untuk dipersempahkan ke blok tertentu mana yang
disimpan. Tag biasanya merupakan bagian dari alamat memori utama.
Memori berkapasitas terbatas,
memori ini berkecepatan tinggi dan lebih mahal dibandingkan memory utama.
Berada diantara memori utama dan register pemroses, berfungsi agar pemroses
tidak langsung mengacu kepada memori utama tetapi di cache
memory yang kecepatan aksesnya yang lebih tinggi, metode
menggunakan cache memory ini akan meningkatkan kinerja sistem.
Cache telah terbukti sangat
efektif dalam berbagai bidang komputasi karena akses pola khas aplikasi komputer memiliki wilayah referensi . Referensi menunjukkan lokalitas temporal jika data diminta lagi yang telah baru-baru ini diminta
sudah. Referensi menunjukkan lokalitas spasialjika data yang diminta secara
fisik disimpan dekat dengan data yang telah diminta sudah.
Cache terdiri dari kolam
entri. Setiap entri memiliki datum (sebuah nugget data) – salinan dari
datum yang sama di beberapa backing store. Setiap entri juga memiliki tag,
yang menentukan identitas dari datum di backing store yang masuk adalah
salinan.
Elemen Rancangan Cache
·
Ukuran cache, disesuaikan
dengan kebutuhan untuk membantu kerja memori. Semakin besar ukuran cache
semakin lambat karena semakin banyak jumlah gerbang dalam pengalamatan cache.
·
Fungsi Pemetaan (Mapping),
terdiri dari Pemetaan Langsung, Asosiatif, Asosiatif Set.Pemetaan langsung
merupakan teknik yang paling sederhana, yaitu memetakkan masing-masing blok
memori utama hanya ke sebuah saluran cache saja. Pemetaan asosiatif dapat
mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok
memori utama untuk dimuatkan ke sembarang saluran cache.Hal ini menurut artikel
dari Yulisdin Mukhlis, ST., MT
·
Algoritma Penggantian, terdiri
dari Least Recently Used (LRU), First in First Out (FIFO),Least Frequently Used (LFU), Acak. Algoritma penggantian digunakan untuk menentukan blok
mana yang harus dikeluarkan dari cache untuk menyiapkan tempat bagi blok baru.
Ada 2 metode algoritma penggantian yaitu Write-through dan
Write-back.Write-through adalah Cache dan memori utama diupdate secara
bersamaan waktunya. Sedangkan Write-back melakukan update data di memori utama
hanya pada saat word memori telah dimodifikasi dari cache.
·
Ukuran blok, blok-blok yang
berukuran Iebih besar mengurangi jumlah blok yang menempati cache. Setiap
pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan
menyebabkan data menjadi tertindih setelah blok itu diambil. Dengan
meningkatnya ukuran blok, maka jarak setiap word tambahan menjadi lebih jauh
dari word yang diminta,sehingga menjadi lebih kecil kemungkinannya untuk di
perlukan dalam waktu dekat.(Dikutip dari artilek milik Yulisdin “Mukhlis, ST.,
MT”)
·
Line size, Jumlah cache, Satu
atau dua dua tingkat, kesatuan atau terpisah
Operasi Cache
Ketika klien cache (CPU, web browser, sistem operasi ) perlu mengakses datum dianggap ada di backing store, ia akan
mengecek cache pertama. Jika sebuah entri dapat ditemukan dengan tag yang
cocok dengan yang diinginkan dari datum, datum dalam entri digunakan sebagai
gantinya. Situasi ini dikenal sebagai cache hit. Jadi, misalnya,
sebuah program web browser akan mengecek cache lokal pada disk untuk melihat
apakah ia memiliki salinan lokal dari isi halaman web pada URL tertentu. Dalam
contoh ini, URL tag, dan isi dari halaman web datum tersebut. Persentase
akses yang menghasilkan hits cache dikenal sebagai hit rate
atau rasio hit cache.
Situasi alternatif, ketika
cache dikonsultasikan dan ditemukan tidak berisi datum dengan tag yang
diinginkan, telah menjadi dikenal sebagai cache miss. Pembatas uncached
sebelumnya diambil dari toko dukungan selama penanganan lewatkan biasanya
disalin ke dalam cache, siap untuk akses berikutnya.
Selama cache miss, CPU biasanya
menyemburkan beberapa entri lain untuk membuat ruang untuk pembatas uncached
sebelumnya. Theheuristik digunakan untuk memilih entri untuk mengeluarkan dikenal
sebagai pengganti kebijakan . Satu kebijakan populer pengganti,
“Least Recently Used” (LRU), menggantikan entri paling terakhir
digunakan. Cache lebih efisien menghitung frekuensi penggunaan terhadap
ukuran isi yang tersimpan, serta latency dan throughputs baik untuk cache dan backing store. Sementara
ini bekerja dengan baik untuk sejumlah besar data, latency panjang dan
throughputs lambat, seperti yang dialami dengan hard drive dan Internet, tidak
efisien untuk digunakan dengan cache CPU.
Ketika sebuah sistem datum
menulis ke cache, harus pada titik tertentu menulis datum yang ke toko dukungan
juga. Waktu menulis ini dikendalikan oleh apa yang dikenal
sebagai kebijakan menulis.
Dalam write-through cache,
setiap menulis ke cache menyebabkan menulis sinkron ke toko dukungan.
Atau, di write-back cache,
menulis tidak segera mencerminkan ke store. Sebaliknya, cache menandai
lokasi yang telah ditulis di atas dan tanda lokasi-lokasi
sebagai kotor. Data di lokasi tersebut ditulis kembali ke backing
store ketika data mereka diusir dari cache, berpengaruh disebut
sebagai lazy write. Untuk alasan ini, sebuah kesalahan pembacaan
di-write-back cache sering memerlukan 2 akses memori untuk layanan: satu untuk
mengambil datum yang diperlukan, dan satu untuk menulis data diganti dari cache
untuk store.
Kebijakan lain juga dapat
memicu write-back data. Klien dapat membuat banyak perubahan ke datum
dalam cache, dan kemudian secara eksplisit memberitahu cache untuk menulis
kembali datum tersebut.
Entitas selain cache dapat
mengubah data di backing star, dalam hal salin dalam cache bisa menjadi
basi. Atau, ketika klien meng-update data di cache, salinan data di cache
lain akan menjadi basi. Protokol komunikasi antara manajer cache yang
menyimpan data yang konsisten dikenal sebagai protokol koherensi .
Aplikasi Cache
·
CPU Cache adalah cache yang digunakan oleh unit pengolahan sentral dari sebuahkomputer untuk mengurangi waktu rata-rata untuk mengakses memori . Cache-nya lebih kecil, memory yang lebih cepat yang
menyimpan salinan data dari yang paling sering digunakan di memori utama. Selama mengakses memori
cache, rata-rata latensi dari akses memori akan lebih dekat dengan latency cache daripada
latency dari memori utama.
·
Cache Halaman atau Disk Cache , adalah sebuah “transparan” penyangga yang
didukung halaman disk disimpan di memori utama (RAM) oleh sistem operasi untuk akses cepat. Halaman cache biasanya diimplementasikan
dalam kernel dengan paging manajemen memori, dan benar-benar transparan
untuk aplikasi. Semua memori tidak langsung dialokasikan ke aplikasi yang
biasanya digunakan untuk cache halaman. Hard diskmembaca dalam kecepatan rendah
dan akses acak memerlukan biaya mahal dibandingkan dengan memori utama (ini
adalah mengapa upgrade RAM biasanya menghasilkan perbaikan signifikan dalam
‘kecepatan komputer dan responsif). Caching disk terpisah disediakan di sisi
perangkat keras, oleh RAM atau NVRAM chip berdedikasi yang terletak baik dalamdisk controller (di dalam hard disk drive; tepat disebut disk buffer ) atau dalam sebuah array disk controller . Memori seperti ini sebaiknya tidak keliru dengan cache
halaman.
CACHE DISKET
Cache memori
digunakan untuk menerapkan sebuah memori yang lebih kecil dan lebih cepat
dibandingkan memori utama dan yang dihubungkan dengan memori utama dan
prosesor. Cache memori mengurangi waktu akses memori dengan menggunakan prinsip
lokalitas.
Prinsip yang sama diterapkan ke memori disket. Khususnya, sebuah
cache memori merupakan sebuah buffer dalam memori utama untuk sector disket.
Cache mengandung sebuah copy dari beberapa sector dalam disket. Ketika sebuah
permintaan I/O dibuat untuk sebuah sektro tertentu, sebuah pemeriksaan dibuat
untuk menentukan bila sector berada dalam cache disket. Jika demikian, maka
permintaan dipenuhi melalui cache. Jika tidak permintaan sector dibaca ke dalam
disket cache dari disket. Ketika sebuah clock data difetch dalam cache untuk
memenuhi permintaan I/O tunggal.