Cache

Operasi

Cache adalah himpunan kemasukan. Setiap kemasukan mempunyai datum, iaitu salinan kepada datum dalam storan sokongan lain. Setiap kemasukan turut mempunyai tag, yang menyatakan identiti datum dalam storan penyokong yang mana adalah salinan kemasukan.
Apabila pelanggan cache (CPU, pelayar web, sistem operasi) ingin mencapai datum yang dianggap terdapat dalam storan sokongan, ia memeriksa cache dahulu. Jika kemasukan dijumpai dengan tag yang padan dengan datum yang diperlukan, datum dalam kemasukan itu digunakan. Situasi ini dikenali sebagai jumpaan cache cache hit. Jadi sebagai contoh, perisian pelayar web mungkin memeriksa cache tempatannya di cakera untuk melihat sama ada ia mempunyai salinan tempatan laman web pada URL tertentu. Dalam contoh ini, URL adalah tag, dan kandungan laman web adalah datum tersebut.
Situasi lain, apabila cache diperiksa dan tidak mengandungi datum yang diperlukan, ia dikenali sebagai cache miss. Datum diambil dari storan sokongan semasa pengendalian tidak tepat cache miss biasanya diletak ke dalam cache, sedia untuk capaian berikutnya. Sekiranya cache mempunyai simpanan terhad, ia mungkin perlu menyingkir kemasukan lain bagi memberi ruang. Sains Heuristic digunakan bagi menentukan kemasukan mana perlu disingkir yang dikenali sebagai polisi gantian. Satu polisi gantian, LRU, menggantikan kemasukan yang paling kurang digunakan.
Apabila datum ditulis kepada cache, ia mesti pada suatu masa perlu juga disalin kepada storan simpanan. Tempoh penyalinan ini dikawal oleh apa yang dikenali sebagai polisi menulis. Dalam cache sentiasa-tulis - (write-through), setiap penulisan pada cache menyebabkan penulisan pada storan simpanan juga. Pilihan lain, dalam penulisan cache kembali-tulis - (write-back) tidak disalin serta merta pada ingatan. Sabaliknya, cache menjejak lokasi di mana telah ditulis semula (lokasi ini ditanda kotor). Data pada lokasi ini ditulis semula pada ingatan utama apabila data disingkir dari cache. Dengan itu, miss dalam cache tulis semula seringkali memerlukan dua capaian ingatan untuk diservis.
Penulisan-semula data boleh dimulakan oleh polisi lain juga. Pelanggan mungkin membuat banyak perubahan kepada datum di cache, dan memberitahu cache dengan jelas untuk kembali-tulis datum.
Data dalam ingatan utama yang di cache mungkin ditukar oleh entiti lain, dalam kes ini salinan cache menjadi lapuk atau usang. Pilihan lain, apabila pelanggan mengemaskini data di cache, salinan data dalam cache lain menjadi lapuk. Protokol komunikasi antara pengurus cache yang mengekalkan data konsistent dikenali sebagai protokol koherensi cache-(cache coherency)

Cache CPU

Ingatan kecil pada atau dekat cip CPU boleh dipercepatkan berbanding ingatan utama yang lebih besar. Kebanyakan CPU semenjak 1980an menggunakan satu atau lebih cache, dan CPU kegunaan umum moden di dalam komputer peribadi mungkin mempunyai sebanyak setengah dozen, setiap satu khusus untuk bahagian masalah berlainan bagi melaksanakan perisian.

Cache lain

Cache CPU biasanya dikendalikan sepenuhnya oleh perkakasan. Cache lain pula dikendalikan oleh pelbagai perisian. Cache ingatan utama selalunya dikendalikan oleh kernel atau sistem fail OS. Cache BIND (DNS) pula menyimpan pemetaan nama domain kepada alamat IP.
Operasi sentiasa-tulis (write-through) adalah biasa di dalam keadaan rangkaian kurang stabil (seperti LAN ethernet), disebabkan oleh kerumitan protokol koherensi (coherency protocol) yang diperlukan untuk berbilang cache kembali-tulis (write-back) apabila sistem komunikasi tidak boleh diharapkan. Sebagai contoh, cache laman web dan cache sistem fail rangkaian sebelah-pelanggan biasanya cuma boleh dibaca (read-only) atau sentiasa-tulis supaya protokol rangkaian mudah dan boleh dipercayai.
Cache laman web yang baru dilayari ada disimpan dalam pelayar web anda. Sesetengah pelayar telah diset untuk menggunakan cache proksi luar, satu program pelayan yang harus dilalui semua permintaan web supaya ia boleh menyimpan laman yang selalu dikunjungi pengguna di sesuatu organisasi. Kebanyakan pembekal khidmat Internet (ISP) turut menggunakan cache proksi untuk menjimatkan lebar jalur.
Enjin gelintar Google menyimpan satu salinan setiap laman yang dilihatnya di web. Salinan cache ini digunakan oleh perisian mengindeks Google, dan juga diberikan kepada pengguna, kalau-kalau laman asal tidak dapat diperolehi. Jika anda menekan pautan "Disimpan sementara" pada keputusan carian, anda dapat melihat laman tersebut seperti yang dilihat oleh Google pada masa ia mengindeksnya.
Ccache merupakan satu program yang menyimpan salinan hasil (output) sesuatu penyusunan atau kiraan, untuk mempercepatkan lagi penyusunan kali kedua.