Saya pikir saya melihat kebingungan Anda. TLB dan cache data adalah dua mekanisme terpisah. Keduanya sama-sama merupakan cache, tetapi mereka menyimpan beberapa hal yang berbeda:
↦ alamat virtual fisik, dengan mencari alamat virtual di tabel halaman. Namun, melakukan pencarian di tabel halaman lambat (melibatkan 2-3 beban memori). Jika prosesor harus melakukan pencarian ini setiap kali ada instruksi yang mengakses memori, ini akan menyebabkan perlambatan yang substansial.
Oleh karena itu, TLB bertindak sebagai cache khusus untuk pencarian ini. TLB memiliki beberapa entri TLB, di mana setiap entri TLB berisi alamat virtual dan alamat fisik yang sesuai.
TLB memungkinkan prosesor mengubah alamat virtual menjadi alamat fisik dengan sangat cepat. Jika sebuah instruksi meminta prosesor untuk melakukan beberapa operasi memori pada alamat (virtual), prosesor akan memeriksa terlebih dahulu untuk melihat apakah TLB berisi entri untuk alamat virtual itu. Jika ya, maka itu disebut "cache hit" untuk pencarian TLB, dan karena entri TLB juga berisi alamat fisik yang diterjemahkan, prosesor segera tahu alamat fisik apa yang digunakan. Jika tidak, itu adalah cache miss untuk pencarian TLB, dan prosesor harus susah payah melakukan konversi virtual ke fisik dengan berjalan di halaman tabel. (Setelah selesai melakukan konversi itu, itu menambahkan entri ke TLB sehingga konversi masa depan dari alamat virtual itu akan terjadi jauh lebih cepat.)
Cache data adalah cache untuk isi memori. Memori utama memungkinkan Anda menentukan alamat fisik dan membaca nilai di alamat fisik itu. Namun, memori utama lambat. Jika kami harus pergi ke memori utama setiap kali kami ingin melakukan operasi memori, prosesor kami akan sangat lambat.
Oleh karena itu, cache data bertindak sebagai cache khusus untuk memori yang dibaca. Cache data memiliki beberapa entri cache, di mana setiap entri cache berisi alamat fisik dan nilai memori di alamat itu.
Cache data memungkinkan prosesor membaca dengan cepat dari memori. Ketika prosesor ingin membaca memori di beberapa alamat (fisik), ia terlebih dahulu memeriksa cache data untuk melihat apakah itu berisi entri cache untuk alamat itu. Jika ya, ini dikenal sebagai "hit cache" (dalam cache data), dan prosesor dapat segera menggunakan nilai data yang disimpan dalam entri cache itu, tanpa perlu menghubungi memori utama. Jika tidak, maka ini adalah "cache miss" (untuk cache data), dan prosesor harus pergi ke memori utama. (Setelah prosesor menerima nilai pada alamat itu dari memori utama, ia menambahkan entri cache ke cache data sehingga upaya untuk membaca alamat yang sama akan mengenai cache data.)
Keduanya adalah cache, tetapi mereka melayani tujuan yang berbeda. Prosesor menggunakan keduanya untuk setiap operasi memori: pertama menggunakan TLB untuk mengkonversi dari alamat virtual ke alamat fisik, kemudian memeriksa cache data untuk mempercepat proses membaca nilai yang tersimpan dalam memori di alamat itu.
Untuk detail lebih lanjut, Anda dapat membaca artikel Wikipedia tentang TLB . Jika Anda melakukan pencarian, ada banyak informasi lain yang tersedia di TLB dan cache data. Saya sarankan mencari "TLB" dan "L1 cache" atau "L2 cache" (2 yang terakhir adalah jenis cache data).
(Untuk referensi di masa mendatang: kami mengharapkan Anda untuk melakukan riset pada pertanyaan Anda sebelum bertanya di sini, dan untuk memeriksa sumber-sumber Internet standar. Jika jawabannya dapat ditemukan di Wikipedia, Anda belum melakukan penelitian yang cukup pada Anda sendiri. Anda mungkin memiliki lebih beruntung jika Anda akan diperiksa sumber internet untuk informasi tentang bagaimana TLBs sebelum bertanya di sini. Lihat juga berapa banyak upaya penelitian yang diharapkan dari pengguna Stack Overflow? . Jadi, mengambil kesempatan untuk menggunakan ini sebagai pelajaran untuk bagaimana Anda dapat meningkatkan Anda sendiri keterampilan riset - sesuatu yang akan berharga bagi Anda sepanjang karier Anda.)