Menulis jawaban ini karena saya tidak mengerti bahkan setelah membaca jawaban lain pada pertanyaan ini, beberapa pertanyaan lain dan wikipedia (itu lebih membingungkan.)
Saya rasa kami menghabiskan banyak waktu dan energi untuk memahami terminologi yang agak membingungkan/rumit dalam kasus ini. Saya merasa lebih mudah untuk memahaminya ketika saya tidak memperhatikan istilah 'spasial' dan 'temporal'.
Mari kita mulai dengan dasar-dasarnya.
Mari kita coba memahami apa itu cache - tempat yang lebih cepat diakses dibandingkan memori utama. Itu keren. Tapi tempat ini terbatas dan mahal, jadi sebaiknya gunakan dengan bijak. Namun bagaimana Anda (atau OS) memutuskan apa yang akan dimasukkan ke dalam cache dan apa yang tidak akan dimasukkan? Seharusnya ada cara untuk mengetahui apa yang kita butuhkan di masa depan.. ah prediksi masa depan! (Laporan Minoritas! Bunyikan loncengnya?).
Harus ada cara untuk menentukan kebutuhan program di masa depan. Dengan menggunakan akal sehat dan kodenya, kita dapat mengatakan bahwa beberapa bagian kode bersifat berulang - contoh - loop! Jika ada variabel i di dalam satu lingkaran, Anda tahu variabel itu akan diakses berulang kali dalam waktu dekat. Inilah prinsip di balik lokalitas temporal. saya dapat dibawa ke cache karena bersifat lokal sementara.
Di area lain jika kode menggunakan struktur data linier (contoh: Array) dan itu juga dalam satu lingkaran dengan kenaikan indeks, maka mudah untuk melihat bahwa meskipun kebutuhan saat ini hanya lokasi ke-3 (misalnya) dari struktur data ini, lokasi berikutnya juga akan segera diperlukan karena indeks meningkat sebesar 1 untuk struktur data linier tersebut. Jadi alangkah baiknya jika kita membawa datanya di beberapa lokasi berikutnya juga. Inilah prinsip di balik lokalitas spasial. Beberapa lokasi berikutnya dapat dimasukkan ke dalam cache karena bersifat lokal secara spasial.
Konsep lokalitas pada dasarnya adalah mengidentifikasi data dan instruksi untuk memasukkan cache sehingga kita dapat mengurangi kesalahan cache dan memanfaatkan tempat khusus ini secara efektif.
person
Saurabh Patil
schedule
21.07.2018