Önbellek boyutu ile erişim gecikmesi arasında bir yazışma var mı?


9

Önbellek boyutları ile erişim gecikmesi arasında bir yazışma var mı? Diğer tüm şeyler eşit olduğunda, daha büyük bir önbellek daha yavaş çalışır mı? Öyleyse neden? Ne kadar yavaş?


1
Önbellek tasarımında bazı değiş tokuşları keşfetmekle ilgileniyorsanız, HP , tasarım özelliklerine göre gecikme ve güç kullanımı için tahminler sağlayan CACTI aracını geliştirdi . 5.3 sürümü için bir web arayüzü de mevcuttur .
Paul A. Clayton

Yanıtlar:


5

Ellerinizdeki öğelere erişmek, ceplerinizdeki öğelere göre daha hızlıdır; bu, dolabınızdaki öğelere göre daha hızlıdır; bu da Digikey'deki öğelere göre daha hızlıdır. Listelediğim her bir ardışık depolama türü, öncekinden daha büyük ancak daha yavaştır.

Öyleyse her iki dünyanın da en iyisini alalım, ellerinizi bir Digikey deposu kadar büyük yapalım! Hayır, işe yaramıyor çünkü artık gerçekte eller değiller. Onlar senin ağırlığındaki bir top mermisi.

Daha büyük depolama alanına erişimin yavaş olmasının nedeni mesafedir . Daha büyük depolama alanı ortalama olarak sizden daha uzaktadır. Bu fiziksel öğeler ve RAM için geçerlidir.

Bilgisayar belleği fiziksel yer kaplar. Bu nedenle, daha büyük anılar fiziksel olarak daha büyüktür ve bu bellekteki bazı konumlar fiziksel olarak daha uzakta olacaktır. Uzaktaki şeylere erişim, hız sınırlamaları ne olursa olsun, daha uzun sürer. Cepleriniz ve Digikey durumunda, hız sınırları kollarınızın hızı ve otoyol hız sınırlarıdır.

RAM durumunda, hız sınırları elektrik sinyallerinin yayılma hızı, kapıların ve sürücülerin yayılma gecikmesi ve senkron saatlerin ortak kullanımıdır. Para bir nesne olmasa ve bugün mevcut olan en hızlı RAM teknolojisinden istediğiniz kadar satın alabilseniz bile, hepsinden yararlanamazsınız. İsterseniz A4 boyutunda bir L1 önbellek sayfası yerleştirin ve CPU'nuzu tam ortasına yerleştirin. CPU, belleğin tam köşesinde bir miktar belleğe erişmek istediğinde, kelimenin tam anlamıyla oraya ulaşması için bir nanosaniye ve geri gelmesi için bir nanosaniye alır. Ve bu tüm yayılım gecikmelerini ve kapılar ve sürücüler dahil değildir. Bu, 3GHz CPU'nuzu ciddi şekilde yavaşlatacaktır.

Eşzamanlı mantık tasarımı eşzamansız mantığa göre çok daha kolay olduğundan, bir RAM bloğu aynı saatle saatlenir. Tüm belleği bir L1 önbelleği yapmak istiyorsanız, bellekteki en uzak konumun en kötü durum zamanlamasıyla başa çıkmak için tüm lotu yavaş bir saatle saatlendirmeniz gerekir. Bu, uzak bellek konumlarının artık daha hızlı saatlendirilebilecek yerel konumları geri tuttuğu anlamına geliyor. Yani, yapılacak en iyi şey hafızayı bölmek olacaktır. Önbelleğin en yakın ve en küçük bölümü en hızlı saati kullanır. Bir sonraki en yakın ve en küçük bölüm biraz daha yavaş bir saat vb. Kullanır.

Ve şimdi L1 ve L2 önbellek ve RAM var.

Bu da bizi bir sonraki nedene, güç tüketimine getiriyor.

Önbellek aslında önemli miktarda güç tüketir. Sadece belleğin kendisi değil, onu çevreleyen tüm mantık, önbellek çizgileri ve ana bellek arasındaki eşlemeyi işler. Bu ekstra mantığın performansını artırmak güç tüketiminde artışa neden olabilir. Şimdi, belirli uygulamalar için (mobil, gömülü) önbelleği küçük tutmak için daha da teşvik edersiniz.

Bkz . Güç ve Performans Optimizasyonu için Önbellek Tasarımı Değişimleri: Bir Vaka Çalışması (Ching-Long Su ve Alvin M. Despain, 1995).


1
+1 Cevabınızı beğendim. İlgili tüm noktaları vurur ve yedekler. Okuması kolay
Gustavo Litovsky

bu doğru mu? cevap birkaç inç karşı bir inç ışık hızı gecikme dayanmaktadır?
Andyz Smith

1
Bu cevap genel bir bakış olarak iyidir, ancak ilk soruyu cevaplamadığından şüpheleniyorum. A4 boyutlu önbelleğin pratik olmadığını anlamak için bir uArch uzmanı olmamalıdır. OP'nin önbellek boyutunda makul bir artış ve bu artışın önbellek erişiminin gecikmesini nasıl etkileyeceğini sorduğuna inanıyorum.
Vasiliy

1
@AndyzSmith - Bu büyük bir abartı ve aşırı basitleştirme, ama genel noktayı, bir noktada L1 önbelleğinin süresiz olarak genişletilemeyeceğini düşünüyorum. Bir noktada, fizik yasaları gelir ve yavaşlar.
Rocketmagnet

Çip üzeri bir sinyalin gecikmesi ışık hızı değildir, net / tel artı sürülen kapı kapasitansı bir RLC ağı olarak düşünülerek hesaplanan daha karmaşık bir değerdir. Bir iletim hattı olacak kadar uzun değil. Ağ ne kadar uzun olursa, sürücü kapısı da o kadar büyük olmalıdır veya tamponları tekrarlayıcı olarak eklemeniz gerekir. Hepsi de daha fazla güç tüketiyor.
pjc50

4

Tüm ekonomik / performans / güç tüketimi faktörlerini bırakarak, sorunuzun cevabı: birçok mikro mimari faktöre bağlıdır.

Örnek olarak bu referansa bakın - test edilen tüm işlemciler için ölçülen L1 erişim gecikmesi 4 saat döngüsüdür. İşlemcilerin frekansları neredeyse aynıdır, ancak L1 önbelleğinin boyutları 3 faktöre kadar farklılık gösterir.

Yukarıdaki testte birkaç farklı işlemcide L1'e sabit gecikmenin nedeni, önbelleğin mikro mimarisine dayanır: önbellek erişiminin kendisi (bellekten veri alma) sadece tek bir saat döngüsü alır. Erişimin kodunu çözmek, veri varlığını kontrol etmek ve daha fazlası için üç döngü daha harcanır ... İlave aşamaların sayısı test edilen işlemcilerde aynıdır, bu nedenle erişim gecikmeleri aynıdır.

Yukarıdaki örneğe rağmen, önbellek gecikmesinin önbellek boyutundan bağımsız olduğu sonucuna varılmamalıdır. Birisi gülünç derecede büyük bir L1 önbellek uygulamaya çalışırsa, önbellek okuması için gerekli tüm işlemleri gerçekleştiren mantık da büyük olur. Bir noktada, tüm bu mantık boyunca yayılma gecikmesi çok uzun olurdu ve önceden tek bir saat döngüsü almış olan işlemlerin birkaç saat döngüsüne bölünmesi gerekecektir. Bu gecikmeyi artıracaktır.

Söz konusu önbelleğin SRAM'de uygulandığı varsayıldığında, önbellek boyutundan en fazla etkilenen modüller şunlardır: satır kod çözücüleri ve mux'ler. Bununla birlikte, duyu amperleri bile çok büyük önbellekler için etkilenecektir: daha yüksek kapasitans nedeniyle bir bit çizgisinde daha küçük voltaj salınımı "daha güçlü" bir duyu amperini gerektirecektir. Bununla birlikte, mantık hızı üzerindeki en şiddetli etki tel ara bağlantı kapasitansı ile eklenecektir - bu kapasitansın SRAM boyutuna doğrusal bir bağımlılıktan daha fazlası vardır. Kesin ayrıntılar uygulamaya özeldir.

Şimdi, L1 önbellekleri gecikmelerinde oldukça kararlıdır, çünkü performansları çok önemlidir. L2 ve L3 önbelleklerini analiz etmeye çalışırsanız, resim çok karmaşıklaşır.

Çok çekirdekli işlemcileri düşündüğünüzde resim çok daha karmaşıktır - önbellek tutarlılığını sağlamak için ek mantığı vardır . Bu, önbellek erişiminin gecikmesini etkileyen ek bir faktöre yol açar: tüm çekirdeklerin belleğine erişim geçmişi .

özet

Gördüğünüz gibi sorunuz önemsiz olmaktan çok uzak ve tamamen cevaplanamıyor. Ancak, ekonomik ve performans tercihli önbellekleri göz önünde bulundurursanız, boyutlarının gecikmeyi kayda değer bir şekilde etkilemeyeceğini söyleyebilirim.

İlgili okuyucular için:

Bu referans , modern CPU'ların performans faktörlerinin derinlemesine bir analizidir. İçinde önbellekle ilgili çok fazla malzeme var. Bilgisayar mimarisi ve mikro mimari ilkeleri konusunda derinlemesine anlayış gerektirir (alternatif olarak - bu alanda profesyonel olabilmek için bilmeniz gereken konuların iyi bir özeti).


Cevap için teşekkür ederim! Sevgiler ve @ Rocketmagnet'in cevapları hemen hemen tamamlayıcıdır. Umarım ikisini de seçebilirim. Alıntı yapılan referansın kopyasını zaten aldım ve son zamanlarda konuya çok ilgi duydum, dolayısıyla soru.
ivanmp

neden bir okuma işlemi gerçekleştirmek için mantık önbellek boyutuna bağlıdır .. Neden belirli bir adres sayısı ayrı bir atlama var 'çok uzun olur'. veya ayrık atlama yoksa, erişim zamanı boyutuna göre formül nedir?
Andyz Smith

hangi bileşen hakkında özel olabilir misiniz: "Kritik nüks, bir toplayıcı, bir kod çözücü, SRAM kelime satırı, SRAM bit çizgisi (çizgileri), sens amp (ler) i, bayt dümen mux'leri ve baypastır muxes." mantığın büyümesine neden olur? en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith

@AndyzSmith, erişim zamanının boyutuna karşı formülü yalnızca önbelleği tasarlayan ve simüle eden biri tarafından verilebilir. Gönderdiğim referansta, L1'den bir veri almanın 4 saat döngüsü sürdüğünü görebilirsiniz, ancak hiç kimse bu okumalarla ilişkili boşluğu tahmin etmeye çalışmaz. Formül istemek, pek çok ek uygulamaya özgü bilgi olmadan pratik bir soru değildir.
Vasiliy

1
@AndyzSmith, söz konusu önbelleğin SRAM'de uygulandığı varsayılarak, önbellek boyutundan en fazla etkilenen modüller şunlardır: satır kod çözücüleri ve mux'ler. Bununla birlikte, duyu amperleri bile çok büyük önbellekler için etkilenecektir: daha yüksek kapasitans nedeniyle biraz daha küçük voltaj salınımı -> "daha güçlü" duyu amplifikatörü. Bununla birlikte, mantık hızı üzerindeki en şiddetli etki tel ara bağlantı kapasitansı ile eklenecektir - bu kapasitansın SRAM boyutuna doğrusal bir bağımlılıktan daha fazlası vardır. Yine, ayrıntılar uygulamaya özeldir.
Vasiliy

3

CPU önbellek testi mühendisi burada - Dave Tweed yorumlarda doğru açıklamalara sahip. Önbellek, CPU'nun beklenen fiyat noktasındaki performansı en üst düzeye çıkarmak için boyutlandırılmıştır. Önbellek genellikle kalıp boşluğunun en büyük tüketicisidir ve bu nedenle boyutu büyük bir ekonomik (ve performans) fark yaratır.

Intel'in Ivy Bridge CPU aile sayfasına bir göz atın: http://ark.intel.com/products/codename/29902/Ivy-Bridge

Üst uç Xeon 30MB önbellek ile geliyor, 12 çekirdeğe sahip ve maliyeti yaklaşık 2700 $. 3MB önbellekli (i3-3217) alt uç i3, tüm dizüstü bilgisayar için sadece 500 $ 'dır (ayrı ayrı bulamıyorum).

Xeon en üst düzey performansı sunar, ancak üretim ve test etme maliyeti daha yüksektir. İ3 çok daha ucuz ama takas önbellek en büyük parçası olan daha küçük bir kalıp boyutu.


2
Çok ilginç bir cevap. Ama soruda belirttiğim gibi, ekonomik, açık, cevabı aramıyorum. Anlamaya çalıştığım, çok (> 512 MB) büyük bir önbelleğe erişimle ilgili performansla ilgilidir. Boyut önbelleğin performansını düşürür mü?
ivanmp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.