CPU modern berjalan sangat cepat; mereka dapat secara signifikan mengungguli RAM sistem. Ketidakseimbangan kecepatan antara CPU dan memori ini akan menyebabkan prosesor Anda sering diam, menunggu data dikirim ke sana sehingga dapat terus menjalankan suatu proses. Untuk mencegah hal ini terjadi, memungkinkan CPU untuk terus berjalan lebih cepat dan lebih cepat, cache CPU digunakan.
Bagaimana cache CPU mempercepat CPU?
Cache CPU dirancang untuk secepat mungkin dan kemudian menyimpan data yang diminta oleh CPU. Cache CPU memiliki kecepatan yang dioptimalkan dalam tiga cara: latensi, bandwidth, dan kedekatan. Cache CPU beroperasi pada latensi yang sangat rendah, meminimalkan jumlah waktu yang diperlukan untuk mengembalikan hasil. Misalnya, Intel i9-9900k memiliki latensi cache masing-masing 0,8, 2,4, dan 11,1 nanodetik untuk cache L1, L2, dan L3. Sebagai perbandingan, latensi RAM berkecepatan tinggi modern berada di urutan 14 nanodetik.
Tip: Level cache akan dijelaskan lebih detail nanti, tetapi secara sederhana lapisan cache yang lebih rendah lebih cepat tetapi lebih mahal sehingga memiliki kapasitas yang lebih rendah. Nanodetik adalah sepersejuta detik, jadi latensi 0,8 detik berarti dibutuhkan kurang dari sepersejuta detik untuk mengembalikan hasil.
Dalam hal bandwidth, cache CPU menawarkan peningkatan kinerja yang signifikan dibandingkan penyimpanan tradisional dan RAM. Kecepatan baca cache L1 dan L3 dapat mencapai puncaknya masing-masing pada 2,3 TB/dtk dan 370 GB/dtk, sedangkan bandwidth RAM biasanya sekitar 40 GB/dtk. Peningkatan bandwidth ini berarti bahwa cache CPU dapat mentransfer data ke CPU jauh lebih cepat daripada RAM.
Untuk mencapai kecepatan maksimum yang mungkin, cache CPU sebenarnya dibangun ke dalam silikon dari die CPU itu sendiri. Ini meminimalkan jarak yang harus dilalui oleh sinyal listrik apa pun, oleh karena itu menjaga latensi serendah mungkin. Misalnya, ketika cache L3 pertama kali dipindahkan dari motherboard ke CPU yang mati, prosesor saat itu (Pentium 4 EE) mampu memperoleh peningkatan kinerja 10-20%.
arsitektur cache CPU
CPU modern umumnya menggunakan tiga lapisan cache CPU berlabel L1-3, dengan cache bernomor lebih rendah lebih dekat ke inti CPU, lebih cepat, dan lebih mahal. Setiap inti CPU individu dalam CPU multi-core memiliki cache L1 sendiri. Biasanya dibagi menjadi dua bagian, L1I dan L1D. L1I digunakan untuk menyimpan instruksi untuk CPU sementara L1D digunakan untuk menyimpan data di mana instruksi tersebut akan dilakukan.
Setiap inti CPU biasanya juga memiliki cache L2 sendiri pada CPU modern. Cache L2 lebih besar dan lebih lambat dari cache L1 dan digunakan terutama untuk menyimpan data yang tidak akan muat di cache L2. Dengan memiliki cache L2 khusus per inti, pertikaian cache dapat dihindari. Pertikaian cache adalah di mana inti yang berbeda berjuang untuk mengklaim ruang cache untuk beban kerja mereka sendiri, yang dapat menyebabkan data penting dihapus dari cache.
Cache L3 biasanya dibagi antara semua inti CPU dari prosesor. Sekali lagi, cache L3 lebih lambat dari cache L2 tetapi lebih murah dan lebih besar. Dengan menyediakan cache bersama, dimungkinkan untuk mengurangi jumlah data yang akan diduplikasi pada tingkat cache per-inti yang lebih rendah.
Tip: Sebagai contoh, dalam ukuran cache, Intel i9-9900K memiliki 64KB L1 dan 256KB L2 cache per-core (untuk total 512KB L1 dan 2MB L2), ia juga memiliki 16MB shared L3 cache.
Bagaimana cache CPU digunakan?
Semua level cache CPU digunakan untuk mempercepat kinerja prosesor dengan menyimpan data dari RAM. Ketika CPU meminta data, CPU biasanya mencari melalui lapisan cache terlebih dahulu dalam upaya untuk mendapatkan data secepat mungkin. Jika data ditemukan dalam cache hit, maka CPU dapat melanjutkan pemrosesannya. Jika data tidak ada di cache, yang disebut cache miss, maka CPU harus memeriksa RAM, dan kemudian hard drive jika datanya juga tidak ada. Lapisan yang lebih cepat selalu diperiksa terlebih dahulu untuk kinerja maksimal.
Untuk membantu CPU memiliki data yang dibutuhkan dalam cache saat dibutuhkan, cache mencoba untuk mendahului data apa yang mungkin dibutuhkan CPU selanjutnya. Misalnya, jika CPU telah meminta beberapa data untuk sebuah gambar, itu merender cache dapat mencoba untuk menyimpan lebih banyak data gambar secara pre-emptive sehingga dapat diumpankan ke CPU secepat mungkin.