Apa itu Koherensi Cache?

Koherensi cache adalah masalah alami yang berkembang ketika kumpulan data sistem diakses dan diubah oleh banyak agen. Area utama arsitektur komputer di mana ini menjadi masalah adalah di komputer multiprosesor. Setiap prosesor dalam komputer multiprosesor memiliki cache sendiri yang memuat dan menyimpan informasi dari memori akses acak (RAM). Ketika dua prosesor mengakses area memori yang sama, koherensi cache akan hilang jika tindakan pencegahan tertentu tidak dilakukan.

Tanpa koherensi cache, sistem multiprosesor tidak akan dapat berfungsi. Ada beberapa metode yang telah dikembangkan untuk mengatasi masalah ini dan menghindari potensi masalah. Koherensi berbasis direktori, pengintaian dan snarfing adalah tiga metode yang digunakan untuk mencegah hilangnya koherensi cache.

Koherensi berbasis direktori berfungsi sebagai filter untuk memastikan koherensi. Data ditempatkan dalam sebagian memori yang dapat diakses oleh semua prosesor. Ketika informasi yang disimpan dalam area memori itu diubah, sistem akan memperbarui cache atau membatalkannya.

Snooping membutuhkan prosesor untuk memantau semua akses ke lokasi memori yang telah di-cache. Ini memungkinkan prosesor untuk mengetahui kapan operasi tulis telah terjadi. Dengan mengetahui kapan operasi tulis terjadi, prosesor dapat memperbarui cache-nya.

Snarfing sangat mirip dengan snooping. Snarfing melibatkan tidak hanya memantau akses ke lokasi memori yang telah di-cache tetapi juga memantau informasi aktual yang disimpan dalam memori. Ketika terjadi penulisan memori, cache dapat diperbarui dengan informasi baru.

Sistem koherensi berbasis direktori memiliki latensi yang relatif tinggi, menghasilkan pemrosesan yang lebih lambat. Persyaratan bandwidth yang lebih rendah memungkinkan sistem koherensi berbasis direktori menjadi praktis dalam aplikasi koherensi cache skala besar. Semakin banyak prosesor yang digunakan sistem, semakin banyak keuntungan yang didapat dari penggunaan sistem koherensi berbasis direktori.
Mengintip adalah metode yang jauh lebih cepat. Metode ini membutuhkan lebih banyak bandwidth daripada pendekatan berbasis direktori. Metode ini dapat digunakan secara efektif dalam sistem yang memiliki prosesor yang relatif sedikit.
Snarfing biasanya tidak digunakan sebagai metode untuk menjaga koherensi cache. Ini terutama karena snarfing membutuhkan lebih banyak sumber daya untuk digunakan dibandingkan dengan metode snooping dan berbasis direktori. Agar sistem snarfing bekerja, ia harus melacak alamat memori dan data yang disimpan di area memori tersebut. Jumlah bandwidth dan pemrosesan yang diambil oleh metode ini membuatnya tidak diinginkan untuk sebagian besar aplikasi dalam memelihara koherensi cache.