Tampon yaz - Write buffer

Bir tampon yaz bir tür veri arabelleği belli olarak kullanılmış CPU önbelleği Intel'in x86 ve AMD64 gibi mimarileri.[1] Çok çekirdekli sistemlerde yazma arabellekleri yok eder sıralı tutarlılık. Gibi bazı yazılım disiplinleri C11'ler veri yarışı özgürlüğü,[2] sıralı olarak tutarlı bir bellek görünümünü yeniden kazanmak için yeterlidir.

Bir CPU önbelleğinde, tutmak için bir yazma tamponu kullanılabilir. veri önbellekten yazılıyor ana hafıza veya bir sonraki önbelleğe bellek hiyerarşisi. Bu bir varyasyonudur yazma önbelleğe alma çağrıldı arabelleğe alınmış yazma.

Bu şekilde bir yazma arabelleğinin kullanılması, yazma işlemi sırasında okuma isteklerine hizmet vermek için önbelleği serbest bırakır. Çok yavaş ana bellek için özellikle yararlıdır, çünkü sonraki okumalar uzun ana bellek gecikmesini beklemeden devam edebilir. Yazma tamponu dolduğunda (yani tüm tampon girişleri dolu olduğunda), sonraki yazma işlemleri yine de yuvalar serbest kalıncaya kadar beklemek zorundadır. Sonraki okumalar yazma arabelleğinden sunulabilir. Bu durmayı daha da azaltmak için, yazma arabelleği birleştirme adı verilen bir optimizasyon uygulanabilir. Arabellek birleştirme yaz yazarları birleştirir tek bir arabellek girişinde ardışık hedef adresleri olan. Aksi takdirde, ayrı girişleri işgal ederler ve bu da boru hattının durma olasılığını artırır.

Bir kurban tamponu kirli çıkarılan satırları içinde depolayan bir yazma arabelleğidir. cevap yazmak önbellekler[not 1] böylece ana belleğe geri yazılırlar. Kirli hatların basit bir yazma arabelleğinin yaptığı gibi geri yazmasını beklemeyerek boru hattı duraklamasını azaltmanın yanı sıra, bir kurban arabelleği, sonraki önbellek erişimleri sergilendiğinde geçici bir yedekleme deposu görevi görebilir. mahal, yakın zamanda tahliye edilen ve hala kurban tamponunda bulunan hatları talep ediyor.

Notlar

  1. ^ Yazma önbelleklerin, önbellek yazılırken ana belleğe yazılırken çıkarılan önbellek satırlarını yazmasına gerek yoktur.


  1. ^ Owens, Scott, Susmit Sarkar ve Peter Sewell. "Daha iyi bir x86 bellek modeli: x86-TSO." Yüksek Dereceli Mantıkta Kanıtlayan Teorem. Springer Berlin Heidelberg, 2009. 391-407.
  2. ^ Oberhauser, Jonas. "X86-TSO için Daha Basit Bir İndirgeme Teoremi." Doğrulanmış Yazılım: Teoriler, Araçlar ve Deneyler. Springer International Publishing, 2015. 142-164