Tembolok CPU

Tinjauan

Ketika prosesor perlu membaca dari atau menulis ke sebuah lokasi di memori utama, pertama kali cek apakah salinan data yang ada di tembolok. Jika ada, prosesor langsung membaca dari atau menulis ke tembolok, yang jauh lebih cepat daripada membaca dari atau menulis ke memori utama.
Desktop termodern dan server CPU memiliki setidaknya tiga tembolok independen: sebuah tembolok instruksi untuk mempercepat eksekusi instruksi mengambil, sebuah tembolok data untuk mempercepat data mengambil dan menyimpan, dan translation lookaside buffer (TLB) yang digunakan untuk mempercepat virtual-to-physical alamat terjemahan untuk kedua instruksi eksekusi dan data. Tembolok data biasanya diatur sebagai sebuah hierarki aras tembolok lebih (L1, L2, dll, lihat Multi-level cache).

Kinerja Tembolok

Proporsi akses yang menghasilkan hit tembolok dikenal sebagai hit rate, dan dapat menjadi ukuran efektivitas dari tembolok untuk program tertentu atau algoritme.
Baca misses eksekusi tertunda karena mereka membutuhkan data yang akan ditransfer dari memori jauh lebih lambat dari tembolok itu sendiri. Menulis misses dapat terjadi tanpa penalti seperti itu, karena prosesor dapat melanjutkan eksekusi sedangkan data akan disalin ke memori utama di latar belakang.
tembolok instruksi mirip dengan tembolok data, tapi CPU hanya melakukan akses membaca (instruksi mengambil) untuk instruksi tembolok. (Dengan Harvard-arsitektur CPU, instruksi dan data tembolok dapat dipisahkan untuk kinerja yang lebih tinggi, tetapi mereka juga dapat dikombinasikan untuk mengurangi overhead perangkat keras.)

Kebijakan Penggantian

Untuk membuat ruang untuk entri baru pada miss cache, tembolok mungkin harus menggusur salah satu entri yang ada. Heuristik yang menggunakan untuk memilih entri untuk menggusur disebut kebijakan penggantian. Masalah mendasar dengan semua kebijakan penggantian adalah bahwa ia harus memprediksi entri tembolok yang ada paling tidak mungkin untuk digunakan pada masa depan. Memprediksi masa depan adalah sulit, sehingga tidak ada cara sempurna untuk memilih di antara berbagai kebijakan pengganti yang tersedia.
Satu pengganti kebijakan yang populer, paling-terakhir digunakan (LRU), menggantikan entri paling tidak yang baru diakses.
Menandai beberapa rentang memori sebagai non-dapatditembolokkan dapat meningkatkan kinerja, dengan menghindari penembolokan daerah memori yang jarang diakses ulang. Hal ini untuk menghindari overhead pemuatan sesuatu ke dalam tembolok, tanpa harus penggunaan kembali apapun.
Entri Tembolok juga dapat dinonaktifkan atau dikunci sesuai pada konteks.

Stal CPU

Waktu yang dibutuhkan untuk mengambil satu baris tembolok dari memori (baca latensi) penting karena CPU akan kehabisan hal yang harus dilakukan saat menunggu baris tembolok. Ketika CPU mencapai keadaan ini, hal itu disebut warung.
Seperti CPU menjadi lebih cepat, karena warung untuk cache misses menggantikan perhitungan lebih potensial; CPU modern dapat menjalankan ratusan petunjuk di waktu yang dibutuhkan untuk mengambil sebuah baris tembolok tunggal dari memori utama. Berbagai teknik telah digunakan untuk menjaga CPU sibuk selama ini.
Out-of-order CPU (Pentium Pro dan kemudian desain Intel, stal upaya untuk mengeksekusi instruksi independen setelah instruksi yang menunggu untuk data cache miss. Teknologi lain, yang digunakan oleh banyak prosesor, adalah multithreading simultan (TPS), atau - di Intel terminologi - hyper-threading (HT), yang memungkinkan sebuah benang alternatif untuk menggunakan core CPU sementara thread pertama menunggu data yang berasal dari memori utama .