2016-03-28 14 views
2

Ben önbellek hakkında okuma edilmiş ve burada Quora'daki danVeriler, işlenmeden önce önbellekten (L3, L2, L1) RAM'den geçiyor mu?

Cache memory (L1,L2,L3)

ilginç bir cevap buldu Ama burada CPU yüzden benzeri geçmesine gelmez RAM verileri işlemek istiyorsa ile biraz karıştı:

işlemci < - L1 < - - L2 < - L3 < - RAM

ya th < siteye e talimat doğrudan Hafıza veri yolu üzerinden kayıtlara geçer?

+0

Bu soruya bir göz atmanızı öneririm: http://programmers.stackexchange.com/questions/44731/why-are-there-separate-l1-caches-for-data-and-instructions –

+0

Teşekkürler PatrickTrentin, ama şimdi önbellek gibi veri ve talimat önbellek gibi türleri de var ve hala önbellek ile hareket edip etmediği belirsiz değil mi? – Hiren

+0

genel olarak hem veri hem de talimatlar mümkünse önbelleğe geçer, bazı durumlarda önbellekleri ayrılır ve diğerlerinde birleştirilir. Google ile ilgili çok sayıda referans var. :) –

cevap

1

Önbellek tanımı, altındaki bellekten daha düşük gecikme süresi (daha hızlı) olan bir bellek seviyesi olmasıdır. Bunun ötesinde, istediğiniz şekilde bir önbellek sistemi tasarlayabilirsiniz. Tipik olarak, ana bellekten bir veri bloğu yüklenirken, önbelleklerin tüm seviyelerine yüklenir (tüm önbelleklerde bulunur) ve daha sonra bu bloğun istenen kısmı bir kayıt içine yüklenir. Ancak, dediğim gibi, bu tasarıma özgü bir yönüdür. Mimari ve mikromimariye bağlı. Ayrıca, talimat önbelleği ve veri önbelleğinin farklı politikaları olabilir.

+0

Evet, haklısınız ve eğer CPU bir adresin talimatını isterse ön bellekte (tüm seviyelerde) kontrol edecek ve eğer bu yoksa, bu komut için ana belleğe gidecektir. talimat CPU ve önbellek de geçer, değil mi? Yani bu bir kavram, yine dediğiniz gibi mimariye bağlı :) – Hiren

+0

@Hiren Evet. Kavramsal olarak böyle çalışır. –

İlgili konular