L1 önbellek boyutu neden son 20 yılda fazla artmadı?


35

Intel i486 L1 önbellek 8 KB vardır. Intel Nehalem 32 KB L1 yönerge önbelleği ve çekirdek başına 32 KB L1 veri önbelleği bulunur.

L1 önbellek miktarı, saat hızının arttığı oranda artmadı.

Neden olmasın?


Elmaları portakallarla karşılaştırıyorsun. Saat hızları arttı, ancak daha fazla önbellek ihtiyacı ile ilgili bir ilişki yok. Sırf daha hızlı bir şeyler yapabileceğin için, daha büyük bir kovadan faydalanacağın anlamına gelmez.
Keltari

Fazla önbellek ve yönetim ek yükü bir sistemi yavaşlatabilir. Tatlı noktayı buldular ve orada kalacak.
Fiasco Labs

Yanıtlar:


17

30K Wikipedia metni, neden bir önbellek büyüklüğünün daha az uygun olduğunun bir açıklaması kadar faydalı değildir. Önbellek çok büyüdüğünde, önbellekteki bir öğeyi bulma gecikmesi (önbellek özlüyor faktörü), ana bellekteki öğeye bakma gecikmesine yaklaşmaya başlar. İşlemci tasarımcılarının ne oranını hedeflediğini bilmiyorum, ancak 80-20 kılavuzuna benzer bir şey olduğunu düşünüyorum: En yaygın verilerinizi zamanın% 80’inde ve diğer 20’de önbellekte bulmak istiyorsunuz. Zamanın% 'sini bulmak için ana hafızaya gitmek zorunda kalacaksınız. (veya CPU tasarımcılarının amaçladığı oranlar ne olursa olsun olabilir.)

EDIT:% 80 /% 20 civarında hiçbir yer olmadığından eminim, bu yüzden X ve 1-X yerine. :)


6
"Önbellek çok büyüdüğünde, önbellekteki bir öğeyi bulma gecikmesi (önbellek özlüyor faktörü), ana bellekteki öğeye bakma gecikmesine yaklaşmaya başlar." Bundan emin misin? Örneğin kurulu RAM miktarını iki katına çıkarmak, gecikme süresini kesinlikle artırmayacak, bu neden önbellek için doğru olacak? Ve ayrıca, eğer bir sorunsa L2 önbellek neden yeni CPU'larla büyüyecek? Bu konuda uzman değilim, gerçekten bilmek istiyorum :)
sYnfo

2
Yazılımda önbelleğe almanın büyük ve uzun bir tanımını hazırlamıştım ve önbelleğinizin ne zaman tükendiğini ve ne zaman atıldığını / yeniden yapılması gerektiğini ölçtüm, ancak daha sonra bir donanım tasarımcısı olmadığımı kabul etmenin en iyi olacağına karar verdim. :) Her iki durumda da, cevabın azalan getiriler yasası ile özetlenebileceğinden şüpheleniyorum. Yani daha fazlası her zaman daha iyi değildir.
JMD

3
Düşük seviyedeki donanımlarla uğraşmak konusundaki uzun geçmişimden, ama aslında bir tasarımcı olmama rağmen, gecikmenin, önbelleklerin boyut değil, ne kadar ilişkisel olduğu ile ilgili göründüğünü söyleyebilirim. Tahminime göre, önbelleğe girecek olan ekstra transistörlerin başka bir yerde genel performansta daha etkili oldukları kanıtlanmış oldu.
Brian Knoblauch

1
@JMD Yine de bu açıklama ile ilgilenirim;) Yorumlar muhtemelen bunun için en iyi yer olmasa da, doğru. @Brian Yani, doğru anlarsam, L1 önbelleğine daha az transistör koymaya karar verdiler ve aynı zamanda L2'ye çok daha fazla koymaya karar verdiler, hangisi daha yavaş? Lütfen
aldırma

10

Bir faktör, L1 alımlarının gecikmeyi azaltmak için TLB çevirileri tamamlanmadan önce başlamasıdır. Yeterince küçük bir önbellek ve yeterince yüksek bir yolla, önbellek için dizin bitleri sanal ve fiziksel adresler arasında aynı olacaktır. Bu muhtemelen neredeyse endekslenmiş, fiziksel olarak etiketlenmiş bir önbellekle bellek tutarlılığını koruma maliyetini düşürür.


1
en ilginç cevap :)
GameDeveloper,

1
Sebebinin bu olduğuna inanıyorum, ama sayıyı vereyim. X86 mimarisindeki sayfa boyutu 4096 bayttır. Önbellek, sayfa çevirisi tamamlanmadan önce önbellek satırının girişini (64 bayt) arayacak olan önbellek kovasını seçmek istiyor. Bir kovadaki çok fazla giriş arasında karar vermek zorunda kalmak pahalı olacak, bu yüzden her bir kovada yalnızca 8 giriş var. Sonuç olarak, son on yıl boyunca, tüm pahalı x86 cpus'lar, L1 veri önbelleklerinde tam olarak 32768 bayta (512 önbellek satırı) sahiptir.
b_jonas

Bunun artması çok zor olduğu için cpus orta düzeyde bir önbellek ekler, bu nedenle şimdi ayrı L2 ve L3 önbelleklerimiz vardır. Ayrıca, L1 kod önbelleği ve L1 veri önbelleği ayrıdır, çünkü CPU kod veya verilere erişip erişmediğini bilir.
b_jonas

8

Önbellek boyutu birçok faktörden etkilenir:

  1. Elektrik sinyallerinin hızı (ışık hızı değilse de aynı büyüklükte olmalıdır):

    • Bir mikrosaniyede 300 metre.
    • Bir nanosaniye içinde 30 santimetre.
  2. Ekonomik maliyet (farklı önbellek seviyelerindeki devreler farklı olabilir ve belirli önbellek boyutları yetersiz olabilir)

    • Önbellek boyutunun iki katına çıkarılması (fizik bu boyutun çalışmasına izin verse bile) iki katına iki katına çıkarılması için iki kat performanstan çok daha fazlasını sağlar; büyük boyutlara iki katına çıkması için önbellek boyutu neredeyse hiçbir ek performans sağlar.
    • Wikipedia'da, örneğin ne kadar değersiz önbellekleri 1 MB'tan büyük hale getirdiğini gösteren bir grafik bulabilirsiniz (aslında daha büyük önbellekler vardır, ancak bunların çok işlemcili çekirdek olduklarını hesaba katmalısınız).
    • L1 önbellekleri için boyutu 64 Kb'yi uygun kılan başka bazı grafikler (satıcıların göstermediği) olmalıdır.

Eğer L1 önbellek boyutu 64 kb'den sonra değişmediyse, artık buna değmezdi. Ayrıca, şimdi önbellek hakkında daha büyük bir "kültür" olduğunu ve birçok programcının "önbellek dostu" kodunu yazdığını ve / veya gecikmeyi azaltmak için ön tarama talimatlarını kullandığını unutmayın.

Bir keresinde bir dizideki rastgele konumlara erişen basit bir program oluşturmayı denedim (birkaç MegaByte): bu program bilgisayarı neredeyse dondurdu çünkü her rastgele okuma için bir sayfa RAM'den önbelleğe geçti ve o zamandan beri bu kadar basit yapıldı. program tüm bant genişliğini boşaltıyordu ve işletim sistemi için çok az kaynak kalıyordu.


6

Önbellek ne kadar büyük olursa erişimin o kadar yavaş olacağını belirterek kolayca özetlenebileceğini düşünüyorum. Bu nedenle daha büyük bir önbellek, önbellek RAM'le yavaş veri yolu iletişimini azaltmak için tasarlandığından, yardımcı değildir.

İşlemcinin hızı hızla arttığından, aynı boyuttaki önbelleğin buna ayak uydurabilmesi için daha hızlı ve daha hızlı çalışması gerekir. Bu nedenle, önbellekler önemli ölçüde daha iyi olabilir (hız açısından), ancak depolama açısından değil.

(Ben bir yazılımcıyım, o yüzden umarım bu yanlış bir şekilde yanlış değildir)


3

Gönderen L1 önbelleği :

Seviye 1 önbelleği veya birincil önbellek CPU'dadır ve 32 baytlık bloklar halinde düzenlenmiş talimatların ve verilerin geçici depolanması için kullanılır. Birincil önbellek, en hızlı depolama şeklidir. İşlemcinin yürütme ünitesine sıfır bekleme durumu (gecikme) arayüzü ile çipte yerleşik olduğundan, boyutu sınırlıdır .

SRAM, bit başına iki transistör kullanır ve devreye güç sağlandığı sürece verileri harici yardım almadan tutabilir. Bu, veri içeriğini tutmak için saniyede birçok kez yenilenmesi gereken dinamik RAM (DRAM) ile karşılaştırılır.

1997'nin başında başlatılan Intel'in P55 MMX işlemcisi, Seviye 1 önbelleğinin boyutunun 32KB'ye çıkarılmasında dikkat çekiciydi. O yıl daha sonra piyasaya sürülen AMD K6 ve Cyrix M2 cipsleri, 64KB'lık Seviye 1 önbellekleri sağlayarak ön yükselişe geçti. 64Kb, standart L1 önbellek boyutu olarak kalmasına rağmen, çeşitli çok çekirdekli işlemciler farklı şekilde kullanabilir.

EDIT: Lütfen bu cevabın 2009 yılına ait olduğunu ve son 10 yılda CPU'ların büyük ölçüde geliştiğini unutmayın. Bu gönderiye ulaştıysanız, buradaki tüm cevaplarımızı çok ciddiye almayın.


Tipik bir SRAM hücresi altı MOSFET'den oluşur. Bir SRAM'deki her bir bit, iki çapraz bağlı invertör oluşturan dört transistörde (M1, M2, M3, M4) depolanır. Kaynak İkinci Kaynak
lukecampbell

Bu sadece durumun açıklaması ve nedeniyle ilgili hiçbir şey açıklamaz.
Eonil

@Eonil - İstersek “neden” cevabını veremedik. Bununla birlikte, performansın azalan getirileri makul bir makul açıklamadır. Soru neredeyse on yıl önce yazıldığı zaman, bir performans vuruşu eklemeden boyutu arttırmak çok daha pahalıydı. Bu cevap en azından sorulan soruya cevap vermeye çalıştı.
Ramhound

-4

Aslında L1 önbellek boyutu modern bilgisayarlarda hız için en büyük darboğazı IS. Yolculuk açısından küçük olan L1 önbellek boyutları, fiyat için en uygun fiyat olabilir, ancak performans olmayabilir. L1 önbelleğine, RAM erişimi 400x daha yavaş olmadığından, işlemci işlemleriyle aynı GHz frekanslarında erişilebilir. Mevcut 2 boyutlu tasarımda uygulanması pahalı ve zordur, ancak teknik olarak uygulanabilir ve başarılı bir şekilde yapan ilk şirket, bilgisayarların 100'lü katlarından daha hızlı olacak ve yine de serinlemeye devam edecektir. alanlar ve yalnızca ASIC / FPGA yapılandırmalarını programlamak için pahalı ve zor olanlardan erişilebilir. Bu sorunlardan bazıları, on yıllardır tescilli / IP sorunları ve şirket açgözlülüğü ile ilgilidir. Burada caydırıcı ve etkisiz bir mühendis kadrosu, iç işleyişe erişen tek kişidir ve çoğunlukla düşük maliyetli gizlice korunan saçmalığı sıkmak için yürüyüş emri verilir. Aşırı özelleştirilen araştırmalar her zaman bu tür teknolojik durgunluklara veya boğulmalara neden olmaktadır (büyük üreticilerin havacılık ve otomobillerinde gördüğümüz gibi ve yakında ilaç olmak üzere). Mucitlere ve halka (şirket patronları ve hissedarları yerine) yararlanan açık kaynaklı ve daha mantıklı patent ve ticari sır düzenlemesi bu konuda çok yardımcı olacaktır. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. ve en çok maliyet etkin karışıklığa karşı korumacı saçma sapan sıkmak için yürüyen emir verilir. Aşırı özelleştirilen araştırmalar her zaman bu tür teknolojik durgunluklara veya boğulmalara neden olmaktadır (büyük üreticilerin havacılık ve otomobillerinde gördüğümüz gibi ve yakında ilaç olmak üzere). Mucitlere ve halka (şirket patronları ve hissedarları yerine) yararlanan açık kaynaklı ve daha mantıklı patent ve ticari sır düzenlemesi bu konuda çok yardımcı olacaktır. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. ve en çok maliyet etkin karışıklığa karşı korumacı saçma sapan sıkmak için yürüyen emir verilir. Aşırı özelleştirilen araştırmalar her zaman bu tür teknolojik durgunluklara veya boğulmalara neden olmaktadır (büyük üreticilerin havacılık ve otomobillerinde gördüğümüz gibi ve yakında ilaç olmak üzere). Mucitlere ve halka (şirket patronları ve hissedarları yerine) yararlanan açık kaynaklı ve daha mantıklı patent ve ticari sır düzenlemesi bu konuda çok yardımcı olacaktır. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. Aşırı özelleştirilen araştırmalar her zaman bu tür teknolojik durgunluklara veya boğulmalara neden olmaktadır (büyük üreticilerin havacılık ve otomobillerinde gördüğümüz gibi ve yakında ilaç olmak üzere). Mucitlere ve halka (şirket patronları ve hissedarları yerine) yararlanan açık kaynaklı ve daha mantıklı patent ve ticari sır düzenlemesi bu konuda çok yardımcı olacaktır. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. Aşırı özelleştirilen araştırmalar her zaman bu tür teknolojik durgunluklara veya boğulmalara neden olmaktadır (büyük üreticilerin havacılık ve otomobillerinde gördüğümüz gibi ve yakında ilaç olmak üzere). Mucitlere ve halka (şirket patronları ve hissedarları yerine) yararlanan açık kaynaklı ve daha mantıklı patent ve ticari sır düzenlemesi bu konuda çok yardımcı olacaktır. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik. Gelişim için çok daha büyük L1 önbellekleri yapmak beyinsiz olmalı ve bu onlarca yıl önce geliştirilmeliydi. Bilgisayarlarımızda ve eğer varsa, onları kullanan birçok bilimsel alanda çok daha ileriye gidecektik.

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.