Önbellek söylemenin özel bir tampon türü olduğu doğru mu? İkisi de benzer işlevleri yerine getiriyor, ancak eksik olduğumun altında yatan bir fark var mı?
Önbellek söylemenin özel bir tampon türü olduğu doğru mu? İkisi de benzer işlevleri yerine getiriyor, ancak eksik olduğumun altında yatan bir fark var mı?
Yanıtlar:
Wikipedia'nın veri arabellekleri hakkındaki yazısından :
bir ara bellek, bir yerden başka bir yere taşınırken verileri geçici olarak tutmak için kullanılan fiziksel bellek deposunun bir bölgesidir
Bir arabellek , bir depolama konumundan diğerine aktarılan her bir veri parçasında (ses işlemede dairesel bir arabellek kullanıldığında olduğu gibi) dolaşır ve onu tutar. Bir arabellek buna izin verir - veri akışındaki mevcut konumunuzdan önce ve sonra bir "arabellek".
Gerçekten de, bir tamponun ve bir önbelleğin bazı ortak yönleri vardır. Ancak, geleneksel anlamda önbellek genelde gelmez değil o yerden bir yere taşınırken ne zaman verilerin tümünü saklamak (yani işlemci önbellek).
Önbelleğin amacı, verileri saydam bir şekilde saklamaktır, böylece kalan veriler herhangi bir performans cezası olmadan aktarılabilecek kadar yeterli veri önbelleğe alınır. Bu bağlamda, önbellek yalnızca az miktarda veri "aktarır" (aktarım hızlarına, önbellek boyutlarına, vb. Bağlı olarak).
Temel fark, bir ara belleğin sonunda tüm verileri tutmasıdır. Bunun tersine, bir önbellek (tasarıma bağlı olarak) verilerin tümünü, bazılarını veya hiçbirini tutmamış olabilir. Ancak, önbelleğe, verilere ilk etapta doğrudan erişiyormuşsunuz gibi erişilir - tam olarak önbelleğe alınan şey önbelleğin "kullanıcısı" için saydamdır.
Aradaki fark arayüzdedir . Bir veri kaynağına erişmek için bir önbellek kullandığınız zaman, önbellek sanki kullanmak olduğunu sen önbellek aracılığıyla veri kaynağının her parçası erişebilir ve veri (nereden geldiğini önbellek belirleyecektir - veri kaynağı önbellek veya kaynak). Önbellek, verilerin hangi bölümlerinin önyükleneceğini belirler (genellikle yalnızca başlangıç, ancak bazen tümü), kullanılan önbellek değiştirme algoritması , şeylerin önbellekten ne zaman / ne zaman kaldırılacağını belirler. Bunun en iyi örneği bir yana, bir sistemdir önbellek CPU kendisi olduğunu Prefetcher / önceden okuma. Her ikisi de en çok kullanacağınızı düşündükleri veri bölümlerini belleğe yükler ve bir şey önbelleğe alınmazsa sabit sürücüye geri döner.
Bunun tersine, yeni kısım arabelleğe taşınmamışsa, konumunuzu veri akışındaki anında taşımak için bir tampon kullanılamaz. Bunu yapmak için, tamponun yeni bir konumdan "yeniden başlatmanızı" etkin bir şekilde gerektiren yeni konumun tampon uzunluğunu aşması gerekir. Bunun en iyi örneği kaydırıcıyı bir Youtube videosunda taşımaktır.
Bir arabellek için iyi bir örnek, Winamp'ta ses çalmaktır. Ses dosyalarının CPU tarafından deşifre edilmesi gerektiğinden, şarkının okunması ile sesin işlenmesi ile ses kartınıza gönderilmesi arasında biraz zaman geçmesi gerekir. Winamp ses verilerinin bir kısmını tamponlayacaktır, böylece herhangi bir "kilitlenmeden" kaçınmak için zaten işlenmiş yeterli ses verisi vardır (yani CPU her zaman birkaç yüz milisaniyede duyacağınız sesi hazırlar, asla gerçek zamanlı değildir duyduğunuz şey, geçmişte CPU'nun hazırladığı tampondan gelir).
Bir önbelleğin, aynı verilerin birden çok kullanımını ima eden bir tamponun belirli bir kullanım modeli olduğunu söylemek daha doğru olur. "Arabellek" in çoğu kullanımı, verilerin tek bir kullanımdan sonra boşaltılacağını veya atılacağını belirtir (bu mutlaka böyle olmasa da), oysa “önbellek” verilerin birden çok kez yeniden kullanılacağını ima eder. Önbellekleme genellikle verilerin eşzamanlı olarak kullanıldığı gibi saklandığını ima eder, ancak bu mutlaka böyle değildir (ön getirme ve benzerlerinde olduğu gibi), tamponlama ise verilerin daha sonra kullanılmak üzere saklandığını gösterir.
Bununla birlikte, hem uygulamada hem de kullanımda kesinlikle büyük bir çakışma vardır.
Önbellek ve arabellek arasındaki önemli bir fark:
Tampon, birincil belleğin bir parçasıdır. Bunlar birincil bellekten (RAM) var olan ve erişilen yapılardır.
Öte yandan, önbellek bir bilgisayarın bellek hiyerarşisinde ayrı bir fiziksel bellektir.
Arabellek bazen - Tampon önbellek olarak da adlandırılır. Bu ad, arabellek kullanımının önbellekle benzer olması, yani veri depolaması üzerinde durur. fark ise kullanımı bağlamında yatmaktadır.
Tamponlar, verileri bir nesneden diğerine taşırken geçici olarak veri depolamak için kullanılır. Örn: bir video İnternetten PC'ye taşındığında, ekran tamponları videonun daha sonra görüntülenecek olan karelerini saklamak için kullanılır. (VİDEO BAŞARILI BİR TAMPON SÜRECİNDEN SONRASI ÇALIŞMAK GİBİ, QoS'U ARTIRIR.) EX: Dosyalarımıza veri yazdığımızda başka bir örnek senaryodur. Yeni yazılan veriler anında ikincil belleğe kopyalanmaz. Yapılan değişiklikler arabellekte saklanır ve sonra tasarlanan ilkeye göre, değişiklikler ikincil bellekteki (sabit disk) dosyaya geri yansıtılır.
Öte yandan, RAM ve işlemcinin yürütme hızı arasındaki boşluğu kapatmak için birincil bellek ve işlemciler arasında önbellekler kullanılır. Ayrıca, en sık erişilen veriler RAM erişimini azaltmak için önbellekte saklanır.
Ortak şey: her ikisi de hesaplama ve "ana" depolama arasındaki ara veri depolama bileşenleridir (yazılım veya donanım).
Benim için fark şu:
Tampon:
Önbellek: