Önbellek

Vikipedi, özgür ansiklopedi
19.07, 31 Aralık 2020 tarihinde Vikiçizer (mesaj | katkılar) tarafından oluşturulmuş 24521633 numaralı sürüm (→‎Ayrıca bakınız: düzeltme)
Diagram of a CPU memory cache operation

Hesaplamada, önbellek ;[1][2] veri depolayan bir donanım veya yazılım bileşenidir, böylece bu veriler için gelecekteki talepler daha hızlı bir şekilde yerine getirilebilir; Bir önbellekte depolanan veriler daha önceki bir hesaplamanın sonucu veya başka bir yerde depolanan verilerin bir kopyası olabilir. İstenen veriler bir önbellekte bulunduğunda, önbellek kaçması, yapamadığında önbellek kaçırma şeklinde göründüğünde önbellek isabet oluşur. Önbellek isabetleri, bir sonucu yeniden hesaplamadan veya daha yavaş bir veri deposundan okumadan daha hızlı olan önbellekten veri okuyarak yapılır; bu nedenle, önbellekten ne kadar fazla istek yapılabiliyorsa, sistem o kadar hızlı çalışır.

Uygun maliyetli ve verilerin verimli bir şekilde kullanılmasını sağlamak için, önbelleklerin nispeten küçük olması gerekir. Bununla birlikte, önbellekleri birçok hesaplama alanında kendilerini kanıtlamışlardır, çünkü tipik bilgisayar uygulamaları verilere yüksek derecede referansın bulunduğu yer ile erişir. Bu tür erişim kalıpları, yakın zamanda talep edilen verilerin talep edildiği geçici bir konum ve fiziksel olarak daha önce talep edilen verilere yakın olarak depolanan verilerin talep edildiği mekansal konum sergiler.

Motivasyon

Boyut ve hız (daha büyük bir kaynağın daha büyük fiziksel mesafeler gerektirdiği düşünüldüğü için) arasında doğal bir denge vardır, ancak aynı zamanda daha ucuz, kolayca seri üretilen emtialar (örneğin, SRAM gibi) arasında pahalı, birinci sınıf teknolojiler (örn. DRAM veya sabit diskler) olur.

Önbellek tarafından sağlanan tamponlama, hem bant genişliğini hem de gecikmeyi sağlar:

Gecikme

Daha büyük bir kaynak erişim için önemli bir gecikme yaşar; modern bir 4 GHz işlemcinin DRAM'a ulaşması yüzlerce saat döngüsü alabilir. Bu, daha sonraki okumaların yakındaki konumlardan geleceği umuduyla, büyük parçalar halinde okunarak hafifletilir. Öngörme veya açık ön yükleme ayrıca gelecekteki okumaların nereden geleceğini ve zamanından önce talepte bulunacağını tahmin edebilir; Doğru yapılırsa gecikme tamamen atlanır.

Geçiş

Önbellek kullanımı ayrıca, çok sayıda ince tane aktarımını daha büyük ve daha verimli taleplere birleştirerek, temel kaynaklardan daha yüksek verime izin verir. DRAM devrelerinde, bu daha geniş bir veri yoluna sahip olarak yapılabilir. Örneğin, 32 bit adres alanındaki baytlara erişen, ancak 128 bit yonga dışı bir veri yolu tarafından sunulan bir program düşünün; önbelleğe alınmamış ayrı bayt erişimleri, toplam bant genişliğinin yalnızca 1 / 16'sının kullanılmasına izin verir ve veri hareketinin% 80'i veri yerine hafıza adresleri olur. Daha büyük parçaların okunması, adres bilgilerinin iletilmesi için gereken bant genişliği oranını azaltır.

Çalışma

Donanım, tekrar kullanılması muhtemel verilerin geçici olarak depolanması için bir bellek bloğu olarak önbellek uygular. Merkezi işlem birimi ve sabit disk ler, web tarayıcısı ve web sunucusu gibi sık sık önbellek kullanırlar.

Bir önbellek bir giriş havuzundan oluşur. Her giriş, veri deposu içindeki aynı verilerin bir kopyası olan veri ile ilişkilendirilmiştir. Her giriş, girişin kopya olduğu destek deposundaki verilerin kimliğini belirten bir etiketine de sahiptir.

Önbellek istemcisinin (bir CPU, web tarayıcısı, işletim sistemi) destek deposunda olduğu varsayılan verilere erişmesi gerektiğinde, ilk önce önbelleği kontrol eder. İstenen verininkiyle eşleşen bir etiket ile bir giriş bulunabiliyorsa, girişteki veriler yerine kullanılır. Bu durum önbellek isabet olarak bilinir. Örneğin, bir web tarayıcı programı, belirli bir URL adresindeki bir web sayfasının içeriğinin yerel bir kopyasına sahip olup olmadığını görmek için diskteki yerel önbelleğini kontrol edebilir. Bu örnekte, URL etiketi ve web sayfasının içeriği veridir. Önbellek isabetiyle sonuçlanan erişimlerin yüzdesi, önbelleğin isabet oranı veya isabet oranı olarak bilinir.

Önbellek kontrol edildiğinde ve istenen etiketi içeren herhangi bir giriş içermediğinde alternatif durum, önbellek kaçırma olarak bilinir. Bu, destek deposundan verilere daha pahalı erişim gerektirir. İstenen veri alındıktan sonra, tipik olarak bir sonraki erişim için hazır olan önbelleğe kopyalanır.

Bir önbellek özeti sırasında, yeni alınan verilere yer açmak için önceden varolan diğer önbellek girişleri kaldırılır. sezgisel yerine kullanılacak girişi seçmek için kullanılan değiştirme politikası olarak bilinir. En az kullanılan "popüler değiştirme politikası" (LRU), en eski girişin yerine, en son girilen diğer girişlerden daha az erişilen girişin yerine geçer (bkz. Önbellek algoritmaları). Daha verimli önbellekleme algoritmaları, kullanım-hit frekansını depolanan içeriğin boyutuna karşı ve ayrıca hem önbellek hem de destek deposu için gecikmeler ve verimlerle hesaplar. Bu, daha büyük miktarlarda veri, daha uzun gecikmeler ve sabit sürücüler ve ağlarda yaşananlar gibi yavaş çıkışlar için iyi çalışır, ancak bir CPU önbelleğinde kullanım için verimli değildir.

Politikaları yazma

Yazma tahsisi olmayan bir yazma önbelleği
Yazma tahsisine sahip bir geri yazma önbelleği

Bir sistem veriyi önbelleğe yazdığında, bir noktada bu verileri destek deposuna da yazması gerekir. Bu yazının zamanlaması, yazma politikası olarak bilinen şey tarafından kontrol edilir. İki temel yazma yaklaşımı vardır:[3]

  • Yazma: yazma işlemi hem önbelleğe hem de destek deposuna eşzamanlı olarak yapılır.
  • Geri yazma: başlangıçta, yazma işlemi yalnızca önbelleğe yapılır. Yedek depoya yazma, değiştirilen içerik başka bir önbellek bloğu ile değiştirilene kadar ertelenir.

Bir geri yazma önbelleğinin uygulanması daha karmaşıktır, çünkü hangi konumlarının üzerine yazıldığını takip etmesi ve onları daha sonra arka mağazaya yazmak için kirli olarak işaretlemesi gerekir. Bu konumlardaki veriler, yalnızca tembel yazma olarak adlandırılan bir etki olarak, önbellekten çıkarıldıklarında destek deposuna geri yazılır. Bu nedenle, geri yazma önbelleğindeki bir okuma özeti (bir bloğun başka biri tarafından değiştirilmesini gerektirir) genellikle servise iki bellek erişimi gerektirir: biri değiştirilen verileri önbellekten tekrar depoya yazmak için Gerekli verileri almak için

Diğer politikalar da veri geri yazma işlemini tetikleyebilir. İstemci, önbellekteki verilerde birçok değişiklik yapabilir ve daha sonra verileri geri yazması için önbelleğe açıkça bildirimde bulunabilir.

Yazma işlemlerinde istek sahibine hiçbir veri döndürülmediğinden, verilerin önbelleğe yüklenip yüklenmeyeceğine ilişkin yazma kararlarında bir karar verilmesi gerekir. Bu, bu iki yaklaşım tarafından tanımlanır:

  • Yazma tahsisi (ayrıca yazarken al olarak da bilinir): cevapsız yazma konumundaki veriler önbelleğe yüklenir ve ardından yazma-yazma işlemi yapılır. Bu yaklaşımda yazma özlüyor okuma özlüyor benzer.
  • Yazma yok tahsisi (ayrıca yazma-yok-ayırma veya etrafına yazma olarak da bilinir): cevapsız yazma konumundaki veriler önbelleğe yüklenmez ve doğrudan arkaya yazılır saklayın. Bu yaklaşımda, veriler yalnızca okuma özlüyorsa önbelleğe yüklenir.

Hem yazma hem de geri yazma ilkeleri bu yazma özeti ilkelerinden birini kullanabilir, ancak genellikle bu şekilde eşleştirilirler:[4]

  • Bir geri yazma önbelleği, şimdi önbelleğe alınan aynı konuma sonraki yazımları (hatta okur) umuduyla yazma tahsisatını kullanır.
  • Yazma önbelleği yazma-yok tahsisatını kullanır. Burada, sonraki yazıların hiçbir avantajı yoktur, çünkü bunların doğrudan destek mağazasına yazılması gerekir.

Önbellek dışındaki varlıklar destek deposundaki verileri değiştirebilir; bu durumda önbellekteki kopya eski olabilir veya eski olabilir. Alternatif olarak, istemci önbellekteki verileri güncellediğinde, bu verilerin diğer önbelleklerdeki kopyaları eskimiş olur. Verileri tutarlı tutan önbellek yöneticileri arasındaki iletişim protokolleri tutarlılık protokolleri olarak bilinir.

Donanım önbelleklerine örnekler

CPU önbelleği

CPU üzerindeki veya yakınında küçük anılar, daha büyük ana bellekten daha hızlı çalışabilir. 1980'lerden bu yana çoğu CPU bazen bir ya da daha fazla önbellek kullandı, bazen modern yüksek gömülü, masaüstü ve sunucumikroişlemcilerde altı adet önbellek türü olabilir (seviyeler ve fonksiyonlar arasında).[5] Belirli bir işleve sahip önbellek örnekleri, D-önbellek ve I-önbellek ve bellek yönetim birimi için etkin sayfalar ön belleği olabilir.

GPU önbellek

Daha önce grafik işlemci üniteleri (GPU'lar) genellikle sınırlı salt okunur doku önbelleklerine sahipti ve 2D'yi geliştirmek için morton düzeni şişmiş dokular ön bellek işlemliği getirdi. İşlemci önbelleği, performansı önemli ölçüde etkileyecektir; mipmaplama kullanılmıyorsa. Önbellekleme, karmaşık UV formatlarında rastgele UV koordinatları ve perspektif dönüşümleri ile ters doku eşlemesinde indekslenen, genellikle piksel başına 4 bit kadar küçük doku verisi için 32 bitlik (ve daha geniş) transferlerden yararlanılması için önemliydi.

GPU'lar geliştikçe (özellikle GPGPU hesaplama gölgelendiricileriyle birlikte), shader için talimat önbellekleri de dahil olmak üzere, giderek artan bir şekilde genel önbellekleri geliştirdiler ve CPU önbellekleriyle giderek daha yaygın bir işlevsellik sergilediler.[6] Örneğin, GT200 mimarisi GPU'larında L2 önbellek bulunmazken, Fermi GPU'da 768 KB son seviye önbellek bulunurken, Kepler GPU'da 1536 KB son seviye önbellek bulunur,[6] ve Maxwell GPU'da 2048 KB son seviye önbellek var. Bu önbellekler, iş parçacığı ve atomik işlemler arasındaki senkronizasyon ilkellerini işlemek ve bir CPU tarzı MMU ile arayüz oluşturmak için büyüdü.

DSP'ler

Sayısal işaret işleyiciler yıllar içinde benzer şekilde genellemişlerdir. Daha önceki tasarımlar, DMA tarafından beslenen karalama belleği kullandılar, ancak Qualcomm Hexagon gibi modern DSP'ler genellikle CPU'lara çok benzer bir önbellek seti içeriyordu. (ör. Paylaşılan L2, bölünmüş L1 I-önbellek ve D-önbellek ile değiştirilmiş Harvard mimarisi).[7]

Etkin sayfalar ön belleği

Sayfa tablosu girişlerini ana bellekten alan bir bellek yönetim birimi (MMU), sanal adres sonuçlarını fiziksel adres çevirilerine kaydetmek için kullanılan özel bir önbelleğe sahiptir. Bu özel önbellek adı etkin sayfalar ön belleği (TLB).[8]

Ağ içi önbellek

Bilgi merkezli ağ

Bilgi merkezli ağ iletişimi (ICN), İnternet altyapısını, kalıcı bağlantı ve uçtan uca prensip temelinde, odak noktası olan bir ağ mimarisine dayanan ana bilgisayar merkezli bir paradigmadan uzağa geliştirmek için bir yaklaşımdır. Tanımlanmış bilgi (veya içerik veya veri). Bilgi merkezli ağ iletişimi ICN'sindeki düğümlerin doğal önbelleğe alma yetenekleri nedeniyle, ICN, önbellek politikalarının benzersiz gereksinimlerine sahip olan gevşek bir şekilde bağlanan önbellek ağı olarak görülebilir.Bununla birlikte, her yerde bulunan içerik önbelleğe alma işlemi, fazladan özen ve çözümler gerektiren yetkisiz erişime karşı içerik koruma zorluğunu da beraberinde getirir.[9] Proxy sunucularının aksine, Bilgi merkezli ağ bağlantısında önbellek ağ düzeyinde bir çözümdür. Bu nedenle, hızla değişen önbellek durumları ve daha yüksek talep varış oranları vardır; dahası, daha küçük önbellek boyutları, içerik tahliye politikalarına farklı tür gereksinimler getirmektedir. Özellikle, Bilgi merkezli ağ oluşturma için tahliye politikaları hızlı ve hafif olmalıdır. Farklı Bilgi-merkezli ağ mimarileri ve uygulamaları için çeşitli önbellek çoğaltma ve tahliye planları önerilmiştir.

Politikalar

En son kullanılan zaman farkında (TLRU)

En Son Kullanılan Zaman Farkında Olan (TLRU)[10] önbellekte depolanan içeriğin geçerli bir ömre sahip olduğu durumlar için tasarlanmış bir LRU çeşididir. Algoritma, Bilgi merkezli ağ (ICN), İçerik Dağıtım Ağları (CDN'ler) ve genel olarak dağıtılmış ağlar gibi ağ önbellek uygulamalarında uygundur. TLRU yeni bir terim sunar: TTU (Kullanım Süresi). TTU, içeriğin bulunduğu yere ve içerik yayıncısının duyurusuna dayanarak içeriğin kullanılabilirlik süresini belirleyen bir içeriğin/sayfanın zaman damgasıdır. Bu yerel konum tabanlı zaman damgası nedeniyle, TTU yerel yöneticiye ağ depolama alanında düzenleme yapmak için daha fazla kontrol sağlar. TLRU algoritmasında, bir içerik parçası geldiğinde, önbellek düğümü, içerik yayıncısı tarafından atanan TTU değerini temel alarak yerel TTU değerini hesaplar. Yerel TTU değeri, yerel olarak tanımlanmış bir fonksiyon kullanılarak hesaplanır. Yerel TTU değeri hesaplandıktan sonra, içeriğin değiştirilmesi önbellek düğümünde depolanan toplam içeriğin bir alt kümesinde gerçekleştirilir. TLRU, daha az popüler ve küçük yaşam içeriğinin, gelen içerikle değiştirilmesini sağlar.

Son zamanlarda en sık kullanılan (LFRU)

En Son Kullanılan En Az Sıklık (LFRU)[11] önbellek değiştirme şeması, LFU ve LRU şemalarının faydalarını birleştirir. LFRU, Bilgi merkezli ağ (ICN), İçerik Dağıtım Ağları (CDN'ler) ve genel olarak dağıtılmış ağlar gibi ‘ağ içi’ önbellek uygulamaları için uygundur. LFRU'da, önbellek ayrıcalıklı ve ayrıcalıklı olmayan bölümler olarak adlandırılan iki bölüme ayrılmıştır. Ayrıcalıklı bölüm, korunan bir bölüm olarak tanımlanabilir. İçerik çok popülerse, ayrıcalıklı bölüme itilir. İmtiyazlı bölümün değiştirilmesi aşağıdaki şekilde yapılır: LFRU, imtiyazsız bölümden içeriği tahliye eder, içeriği imtiyazlı bölümden imtiyazlı bölüme iter ve son olarak da imtiyazlı bölüme yeni içerik ekler. Yukarıdaki prosedürde LRU ayrıcalıklı bölüm için kullanılır ve ayrıcalıklı olmayan bölüm için yaklaşık bir LFU (ALFU) şeması kullanılır, dolayısıyla LFRU kısaltması kullanılır. Temel fikir, yerel olarak popüler olan içerikleri ALFU programı ile filtrelemek ve popüler içerikleri ayrıcalıklı bölümlerden birine itmektir.

Yazılım önbellekleri

Disk önbelleği

CPU önbellekleri genellikle tamamen donanım tarafından yönetilirken, çeşitli önbellek yazılımları diğer önbellekleri yönetir. Disk belleği örneği olan ana bellekteki sayfa önbelleği işletim sistemi kernel tarafından yönetilir.

Sabit disk sürücüsünün tümleşik bir parçası olan disk arabelleği bazen yanıltıcı olarak "disk önbelleği" olarak adlandırılırken, ana işlevleri yazma sıralaması ve ön okuyucudur. Tekrarlanan önbellek isabetleri, sürücünün kapasitesine kıyasla arabellek boyutunun küçük olması nedeniyle nispeten nadirdir. Bununla birlikte, üst seviye disk denetleyicileri genellikle sabit disk sürücüsünün veri bloklarının kendi önbelleklerine sahiptir.

Son olarak, hızlı bir yerel sabit disk sürücüsü, uzak sunucular (web önbelleği) veya yerel teyp sürücüleri veya optik müzik kutuları gibi daha yavaş veri depolama aygıtlarında tutulan bilgileri de önbelleğe alabilir; Böyle bir program, hiyerarşik depolama yönetiminin ana konseptidir. Ayrıca, hızlı flash tabanlı katı hal sürücü ler (SSD'ler), hibrit sürücüler veya katı- olarak çalışan, daha yavaş dönme ortamı sabit disk sürücüleri için önbellek olarak kullanılabilir. durum hibrit sürücüleri (SSHD'ler).

Web önbelleği

Web tarayıcısı ve web proxy sunucuları, web sayfası ve görüntü gibi web sunucusu'dan önceki yanıtları saklamak için web önbelleklerini kullanır. Web önbellekleri, daha önce önbellekte depolanan bilgiler sıklıkla yeniden kullanılabildiğinden, ağ üzerinden iletilmesi gereken bilgi miktarını azaltır. Bu, web sunucusunun bant genişliğini ve işleme gereksinimlerini azaltır ve web kullanıcıları için duyarlılığı artırmaya yardımcı olur.[12]

Web tarayıcıları yerleşik bir web önbelleği kullanır, ancak bazı İnternet servis sağlayıcı (ISS'ler) veya kuruluşlar da bu ağın tüm kullanıcıları arasında paylaşılan bir web önbelleği olan bir önbellek proxy sunucusu kullanır.

Diğer bir önbellek biçimi de, P2P aktarımını hızlandırmak için peer-to-peer uygulamalar tarafından en çok aranan dosyaların ISP önbellekte depolandığı P2P önbelleğe almasıdır. Benzer şekilde, toplulukların P2P trafiği için aynı görevi yerine getirmelerine izin veren, örneğin Corelli gibi, merkezi olmayan eşdeğerler de mevcuttur.[13]

Memoization

Bir önbellek, bir destek mağazasından almak yerine, talep üzerine hesaplanan verileri depolayabilir. Notlandırma, kaynak tüketen işlev çağrılarının sonuçlarını bir arama tablosu içinde saklayan ve ardından gelen aramaların saklanan sonuçları yeniden kullanmasına ve tekrarlanan hesaplamaları engellemesine izin veren bir optimizasyonu tekniğidir. Önbellekleme aracı olarak da düşünülebilecek dinamik programlama algoritma tasarım metodolojisi ile ilgilidir.

Diğer önbellekler

BIND DNS arka plan programı, alan adlarının eşlenmesini, bir çözümleyici kitaplığında olduğu gibi IP adresi olarak önbelleğe alır.

Yazma işlemi, güvenilir olmayan ağlar (Ethernet LAN gibi) üzerinden çalışırken, iletişimin güvenilmez olduğu durumlarda çoklu geri yazma önbellekleri arasında gerekli olan çok karmaşıklık nedeniyle, yaygındır. Örneğin, web sayfası önbellekleri ve istemci tarafı ağ dosya sistemi önbellekleri (NFS veya SMB'dekiler gibi) tipik olarak salt okunurdur veya özel olarak yazmaya devam eder ağ protokolü basit ve güvenilir.

Arama motorları da sık sık web sayfası dizine aldıklarını önbellekten kullanabiliyorlar. Örneğin, Google, her arama sonucunun yanında "Önbelleğe Alınmış" bir bağlantı sağlar. Bu, web sunucusundan web sayfalarına geçici veya kalıcı olarak erişilemediğinde yararlı olabilir.

Başka bir önbellekleme türü, tekrar gerekmesi gerekebilecek hesaplanmış sonuçları veya notları depolamaktır. Örneğin, ccache, daha sonraki derleme işlemlerini hızlandırmak için derlemenin çıktısını önbelleğe alan bir programdır.

Veritabanı önbelleklemesi, veritabanı dizinlerinin, veri sözlükleri ve sık kullanılan veri alt kümelerinin işlenmesinde veritabanı uygulamalarının verimini önemli ölçüde artırabilir.

Dağıtılmış önbellek[14] Uygulamaya ölçeklenebilirlik, güvenilirlik ve performans sağlamak için ağ ana bilgisayarlarını kullanır.[15] Ana bilgisayarlar, farklı coğrafi bölgelere birlikte yerleştirilebilir veya yayılabilir.

Tampon ve önbellek arasındaki fark

Bir "tampon" ve "önbellek" anlambilimi tamamen farklı değildir; Öyle olsa bile, önbellekleme işlemi ile önbellekleme işlemi arasında kasıtlı olarak temel farklılıklar vardır.

Temel olarak, önbellekleme, art arda aktarılan veri aktarımları için performans artışı gerçekleştirir. Bir önbellek sistemi, bir veri öğesinin ilk (tipik olarak yazarken) aktarılması üzerine bir performans artışı sağlayabilirken, bu performans artışı, önbellek sistemi içinde gerçekleşen tamponlamadan kaynaklanmaktadır.

Okuma önbellekleriyle, önbellek yerine (daha hızlı) bir ara depodan alınabilmesi nedeniyle performans artışını gerçekleştirmek için veri öğesinin daha sonra okunması için en az bir kez, bulunduğu konumdan en az bir kez alınmış olması gerekir. verilerin ikamet ettiği yer. Yazma önbellekleri ile, veri öğesinin ilk yazılması sırasında, veri öğesinin hemen önbellekteki ara depoda depolanması sayesinde veri öğesinin ilk deposunda depolanması ve böylece veri öğesinin bulunduğu yerdeki deposuna aktarılmasını ertelemek suretiyle gerçekleştirilebilir. daha sonraki bir aşama veya arka plan işlemi olarak gerçekleşen başka Sıkı arabelleklemenin aksine, önbellekleme işleminin, önbelleğin ara depolaması ile verilerin bulunduğu konum arasında tutarlılığı sağlamak için (potansiyel olarak dağıtılmış) bir önbellek tutarlılık protokolüne uyması gerekir. Diğer taraftan tamponlama,

  • daha az sayıda, daha büyük transferler için birkaç küçük transfer için harcanan genel masrafları düşüren iletişim süreçleri arasında, aksi takdirde yeni veriler için transfer sayısını azaltır,
  • aralarında doğrudan aktarım yapamayan iletişim süreçleri için bir aracı sağlar, veya
  • bir transferde yer alan iletişim süreçlerinden en az birinin gerektirdiği minimum veri boyutunu veya gösterimini sağlar.

Tipik önbellek uygulamalarında, ilk defa okunan veya yazılan bir veri maddesi etkili bir şekilde tamponlanır; ve bir yazı söz konusu olduğunda, çoğunlukla, yazının kaynaklandığı başvuru için performans artışı sağlamak. Ek olarak, bireysel yazmaların bir yığın yazma işlemine ertelendiği bir önbellek protokolünün kısmı bir tamponlama şeklidir. Bireysel okumaların bir yığın okumaya ertelendiği bir önbellek protokolünün kısmı ayrıca bir tamponlama şeklidir, ancak bu form en azından ilk okumaların performansını olumsuz yönde etkilese de (toplamın performansını olumlu yönde etkilese bile) Bireysel okur). Uygulamada, önbellekleme neredeyse her zaman bir tür tamponlama işlemi içerirken, katı tamponlama önbellekleme içermez.

Bellek geleneksel olarak kullanılan geçici bir bellek alanıdır çünkü CPU talimatı çevre birimlerinde depolanan verileri doğrudan adresleyemez. Dolayısıyla, adreslenebilir hafıza bir ara aşama olarak kullanılır. Ek olarak, böyle bir tampon, büyük bir veri bloğu toplandığında veya demonte edildiğinde (bir depolama cihazının gerektirdiği şekilde) veya veriler, üretilenden farklı bir sırayla iletildiğinde uygulanabilir. Ayrıca, bütün bir veri tamponu genellikle sırayla (örneğin sabit diske) aktarılır, bu nedenle tamponlama işlemi bazen aktarım performansını arttırır veya amacın gecikmeyi azaltmak olduğu yerde önbelleğe almanın aksine aktarım gecikmesinin varyasyonunu veya değişimini azaltır. Bu faydalar, tamponlanmış veriler bir kez belleki bir kez yazılsa ve tampondan bir kez okunursa bile mevcuttur.

Önbellek ayrıca aktarım performansını da artırır. Artışın bir kısmı da benzer şekilde, çok sayıda küçük transferin büyük bir blokta birleşmesi ihtimalinden kaynaklanıyor. Ancak ana performans kazancı, aynı verinin önbellekten birçok kez okunması veya yazılı verilerin yakında okunması ihtimalinin yüksek olması nedeniyle oluşur. Bir önbelleğin tek amacı, temelindeki yavaş depolamaya erişimi azaltmaktır. Önbellek ayrıca genellikle komşu katmanların bakış açısından görünmeyecek şekilde tasarlanmış bir soyutlama katmanıdır.

Ayrıca bakınız

Kaynakça

  1. ^ "Önbellek". Oxford Dictionaries. Oxford Dictionaries. 8 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Ağustos 2016. 
  2. ^ "Önbellek". Macquarie Dictionary. Macmillan Yayıncı Grubu Avustralya 2015. Erişim tarihi: 21 Temmuz 2015. [ölü/kırık bağlantı]
  3. ^ Bottomley, James (1 Ocak 2004). "Önbelleğe Almayı Anlama". Linux Journal. 13 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ekim 2019. 
  4. ^ John L. Hennessy; David A. Patterson (16 Eylül 2011). Bilgisayar Mimarisi: Nicel Bir Yaklaşım. Elsevier. ss. B-12. ISBN 978-0-12-383872-8. Erişim tarihi: 25 Mart 2012. 
  5. ^ "intel broad well core i7 with 128mb L4 cache". 9 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Aralık 2019. Mentions L4 cache. Combined with separate I-Cache and TLB, this brings the total 'number of caches (levels+functions) to 6
  6. ^ a b S. Mittal, "GPU'larda Önbellekleri Yönetme ve Kaldırma Teknikleri Araştırması 16 Şubat 2015 tarihinde Wayback Machine sitesinde arşivlendi.", JCSC, 23(8), 2014.
  7. ^ "qualcom Hexagon DSP SDK görünümü". 1 Kasım 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Aralık 2019. 
  8. ^ Frank Uyeda (2009). "Lecture 7: Bellek Yönetimi" (PDF). CSE 120: İşletim Sistemlerinin İlkeleri. UC San Diego. 17 Mayıs 2017 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 4 Aralık 2013. 
  9. ^ Bilal, Muhammad (2019). "Bilgi Odaklı Ağlarda Korunan İçeriğin Güvenli Dağıtımı". IEEE Systems Journal. arXiv:1907.11717 $2. doi:10.1109/JSYST.2019.2931813. 
  10. ^ Bilal, Muhammad. "ICN'de En Son Kullanılan En Son Kullanılan (TLRU) Önbellek Yönetim Politikası". IEEE 16. Uluslararası İleri İletişim Teknolojileri Konferansı (ICACT). 
  11. ^ Bilal, Muhammad (2017). "Önbellek Ağlarında Verimli İçerik Çıkarma ve Çoğaltma İçin Önbellek Yönetim Şeması". IEEE Access. Cilt 5. ss. 1692-1701. arXiv:1702.04078 $2. Bibcode:2017arXiv170204078B. doi:10.1109/ACCESS.2017.2669344. 
  12. ^ Multiple (wiki). "Web uygulaması önbelleğe alma". Docforge. 12 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2013. 
  13. ^ Gareth Tyson; Andreas Mauthe; Sebastian Kaune; Mu Mu; Thomas Plagemann. Corelli: Topluluk Ağlarında Gecikmeli Bağımlı İçeriği Desteklemeye Yönelik Dinamik Bir Çoğaltma Hizmeti (PDF). MMCN'09. 18 Haziran 2015 tarihinde kaynağından (PDF) arşivlendi. 
  14. ^ Paul, S; Z Fei (1 Şubat 2001). "Merkezi kontrol ile dağıtılmış önbellekleme". Bilgisayar İletişimi. 24 (2). ss. 256-268. CiteSeerX 10.1.1.38.1094 $2. doi:10.1016/S0140-3664(00)00322-4. 
  15. ^ Khan, Iqbal (Temmuz 2009). "Ölçeklendirilebilirlik Yolunda Dağıtılmış Önbellekleme". MSDN. 24 (7). 

Daha fazla okuma