Sanırım karışıklığınızı görüyorum. TLB ve veri önbelleği iki ayrı mekanizmadır. Her ikisi de bir tür önbellektir, ancak farklı şeyleri önbelleğe alırlar:
↦
Bu nedenle, TLB bu arama için özel bir önbellek görevi görür. TLB'nin birkaç TLB girişi vardır, burada her TLB girişi hem sanal bir adres hem de karşılık gelen fiziksel adresi içerir.
TLB, işlemcinin sanal adresleri çok hızlı bir şekilde fiziksel adreslere dönüştürmesini sağlar. Bir talimat işlemciden (sanal) bir adres üzerinde bir miktar bellek işlemi yapmasını isterse, işlemci önce TLB'nin o sanal adres için bir giriş içerip içermediğini kontrol eder. Varsa, buna TLB araması için "önbellek isabet" denir ve TLB girişi de çevrilmiş fiziksel adresi de içerdiğinden, işlemci hangi fiziksel adresi kullanacağını hemen bilir. Değilse, bu TLB araması için bir önbellek özledim ve işlemcinin sayfa tablosunu yürüterek sanal-fiziksel dönüşümü zahmetli bir şekilde yapması gerekiyor. (Bu dönüşümü tamamladıktan sonra, bu sanal adresin gelecekteki dönüşümlerinin çok daha hızlı gerçekleşmesi için TLB'ye bir giriş ekler.)
Veri önbelleği, bellek içeriği için bir önbellektir. Ana bellek, fiziksel bir adres belirlemenizi ve bu fiziksel adresteki değeri okumanızı sağlar. Ancak, ana bellek yavaştır. Her bellek işlemi yapmak istediğimizde ana belleğe gitmek zorunda olsaydık, işlemcimiz çok yavaş olurdu.
Bu nedenle, veri önbelleği bellek okumaları için özel bir önbellek görevi görür. Veri önbelleğinde bazı önbellek girdileri bulunur; burada her önbellek girdisi fiziksel bir adres ve bu adresteki bellek değerini içerir.
Veri önbelleği, işlemcinin bellekten çok hızlı bir şekilde okumasını sağlar. İşlemci bazı (fiziksel) adresteki belleği okumak istediğinde, ilk olarak veri önbelleğini, o adres için bir önbellek girdisi içerip içermediğini kontrol eder. Eğer öyleyse, bu "önbellek isabet" olarak bilinir (veri önbelleğinde) ve işlemci ana belleğe başvurmanıza gerek kalmadan bu önbellek girişinde saklanan veri değerini hemen kullanabilir. Değilse, bu bir "önbellek özledim" dir (veri önbelleği için) ve işlemcinin ana belleğe gitmesi gerekir. (İşlemci bu adresteki değeri ana bellekten aldıktan sonra, veri önbelleğine bir önbellek girişi ekler, böylece aynı adresi okuma önbelleği veri önbelleğinde vurulur.)
Her ikisi de önbellektir, ancak farklı bir amaca hizmet ederler. İşlemci her bir bellek işlemi için her ikisini de kullanır: önce sanal adresten fiziksel adrese dönüştürmek için TLB'yi kullanır, ardından o adresteki bellekte saklanan değeri okuma işlemini hızlandırmak için veri önbelleğini kontrol eder.
Daha fazla ayrıntı için TLB'ler hakkındaki Wikipedia makalesini okuyabilirsiniz . Bir arama yaparsanız, TLB'ler ve veri önbellekleri hakkında birçok başka bilgi bulunur. "TLB" ve "L1 önbellek" ya da "L2 önbellek" aramasını öneririm (son 2 veri önbellek çeşitleridir).
(İleride başvurmak için: burada sormadan ve standart İnternet kaynaklarını kontrol etmeden önce sorunuzla ilgili biraz araştırma yapmanızı bekliyoruz. Yanıt Wikipedia'da bulunabiliyorsa, kendi başınıza yeterli araştırma yapmamış olabilirsiniz. burada sormadan önce nasıl TLBs hakkında bilgi almak için internet kaynaklarına kontrol ederseniz iyi şanslar. Ayrıca bkz yığın taşması kullanıcıların beklenen ne kadar araştırma çabası? . Yani, kendi nasıl artırabileceğini için bir ders olarak kullanmak fırsatı araştırma becerileri - kariyeriniz boyunca sizin için değerli olacak bir şey.)