Aplikasi Cache

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 cakera

Cakera keras secara sejarahnya seringkali disekalikan dengan komputer benam untuk protokol kawalan dan antaramuka. Semenjak lewat 1980an, hampir setiap cakera dijual mempunyai komputer benam dan sama ada antaramuka ATA - (Advanced Technology Attachment), SCSI, atau FC - (Fibre Channel). Komputer benam biasanya mempunyai ingatan kecil yang digunakan bagi menyimpan bit yang datang dan pergi dari piring cakera (disk platter).

Cache cakera (disk buffer) berbeza secara fizikal dan digunakan dengan cara berlainan dari cache muka yang biasa digunakan oleh sistem operasi dalam ingatan utama komputer. Cache cakera dikawal oleh komputer benam pemancu cakera, dan cache muka dikawal oleh komputer di mana cakera itu diletakkan. Cache cakera biasanya agak kecil, 2 hingga 8 MB, dan cache muka biasanya kesemua ingatan fizikal yang tidak digunakan, yang mana dalam komputer 2005 antara 20 dan 2000 MB. Sementara data dalam cache muka diguna semula beberapa kali, data dalam cache cakera biasanya tidak dibunakan semula. Dari segi ini, frasa cache cakera dan cache cache adalah tidak tepat (misnomers), dan ingatan komputer dalam lebih tepat dipanggil cache cakera.

Cache cakera mempunyai pelbagai kegunaan:

  • Baca depan / baca belakang (readahead / readbehind): Bila membaca daripada cakera, lengan cakera akan menggerakkan kepala baca/tulis (read/write head) ke laluan yang dikehendaki, dan mula mengambil bit-bit berkaitan. Biasanya, sektor pertama yang dibaca bukan merupakan yang dikehendaki, tetapi sektor sebelumnya. Komputer benam cakera selalunya turut mengambil sektor-sektor ini (sebelum dan selepas) kalau-kalau ia akan diminta oleh sistem pengendalian (O/S) nanti.
  • Penyelarasan kelajuan (speed matching): Kelajuan antara muka I/O selalunya tidak dapat membandingi kelajuan bit-bit dipindahkan dari/ke piring cakera. Jadi cache cakera digunakan supaya kedua-dua antara muka I/O dan kepada baca/tulis cakera dapat berfungsi pada kelajuan maksimum.
  • Pemecutan penulisan (write acceleration): Komputer benam cakera mungkin memberi isyarat kepada komputer utama bahawa penulisan cakera telah siap selepas menerimanya, walaupun data tersebut sebenarnya belum ditulis. Isyarat ini membolehkan komputer utama meneruskan kerjanya. Namun perkara ini agak bahaya kerana jika komputer kehilangan kuasa sebelum data ditulis kekal dalam cakera, data tersebut akan hilang dari cache cakera, dan akan terdapat kesilapan dalam sistem fail. Pemecutan penulisan adalah satu aspek kontroversi, jadi ia biasanya boleh dimatikan oleh pengguna. Untuk sesetengah cakera, masa bahaya ini boleh menjadi panjang jika terdapat banyak permintaan (request) baru. Jadi, aspek ini amat jarang digunakan dalam pelayan pangkalan data (database server) atau mesin lain yang mementingkan integriti dan ketepatan data.
  • Perbarisan arahan (command queueing): Cakera SATA terbaru dan kebanyakan cakera SCSI boleh menerima pelbagai arahan semasa menjalankan sesuatu arahan. Arahan-arahan ini disimpan oleh komputer benam cakera sehinggalah ia dijalankan. Sekiranya arahan bacaan diterima untuk destinasi yang akan ditulis, maka data yang belum ditulis (sedang beratur) itu akan dikembalikan. Apa yang membezakan aspek ini dengan pemecutan penulisan ialah sistem pengendalian komputer utama diberitahu bial sebenarnya sesuatu data itu ditulis ke cakera (media magnet). Jadi O/S boleh menyusun kembali jadual penulisan supaya sistem fail adalah konsisten.

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.