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 spasial jika 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 sebuah komputer 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 disk membaca 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 dalam disk 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
Perhatian desain
Ketika
sebuah permintaan I/O dipenuhi cachedisket, data dalam sebuah disket
cache harus dikirimkan ke proses yang diinginkan. Ini dapat dilakukan
dengan mentransfer blok data dalam memori utama disket cache yang
dinyatakan ke proses user atau cukup dengan menggunakan sebuah kemampuan
memori share dan melewatkan sebuah pointer ke slot yang sesuai dalam
disket cache.
Tidak ada komentar:
Posting Komentar