RAM neden CPU çipine yerleştirilmemiş?


55

Modern CPU'lar, bellek (RAM) de dahil olmak üzere harici her şeye kıyasla çok hızlıdır.

CPU saat frekansı, bir elektrik sinyalinin sadece CPU'dan veri yolundan RAM yongalarına ve geriye doğru çalışması için geçmesi gereken birkaç noktaya ulaştığı bir noktaya ulaştığından anlaşılabilir bir durumdur.

Aynı zamanda birçok seviyede yaşamı zorlaştırıyor: Çok seviyeli önbellek hiyerarşileri, CPU'ya daha yakın veri sağlamak için üretiliyor ve bu da çipte karmaşık senkronizasyon mantığı gerektiriyor. Veriler alınırken bekleme döngülerinden kaçınmak için programlar önbellek dostu bir şekilde yazılmalıdır.

Doğrudan CPU yongasına önemli miktarda RAM yerleştirilmişse bu sorunların birçoğu önlenebilir. Özel bir düzenleme yapması gerekmiyor: belki sınıfına bağlı olarak çip üzerine 1-4 GB koymak ve ayrı bellek takmanıza izin vermek.

Intel, AMD ve benzerlerinin bunu yapmamasının iyi nedenleri olduğuna eminim. Bu sebepler neler? Çipte boş yer kalmamış mı?


29
Önbellek RAM. Kalıptaki boşluk ve pinler çok önemlidir.
copper.hat

2
@ copper.hat Önbellek RAM'dir, ancak önbellek boyutu yüklü RAM'in küçük bir kesridir (genellikle MBytes vs Gbytes serileri hakkında konuşuyoruz). CPU yongasına neden 1 GB koymadığınızı merak ediyorum.
Küçük Kirpi

5
Genellikle, bazı komut / veri akışı karışımı için optimize edilmiştir. Ayrıca, RAM'den / RAM'den tüm veriler CPU üzerinden geçmez.
copper.hat

1
Bir kalıp ne kadar basitse o kadar ucuz olur. Ayrıca, farklı işlem boyutlarını ve işlem yöntemlerini kullanabileceğiniz anlamına gelir.
Journeyman Geek

@LesserHedgehog Önbellek isabet oranınızın genel olarak ne kadar olabileceğinin bir sınırı vardır, bu nedenle daha fazla önbellek eklemek gerçekten hiçbir şeye yardımcı olmaz. Ayrıca pek çok CPU aslında DO'yu şimdi özellikle mobil / gömülü alanda (örneğin ARM tabanlı SoC'lar) gömülü DRAM'a sahipti.
kabarık

Yanıtlar:


79

Intel'in Haswell'i (ya da en azından Iris Pro 5200 GPU'yu içeren ürünlerin) ve IBM'in POWER7 ve POWER8'lerinin hepsinde gömülü DRAM, "eDRAM" var.

EDRAM'ın yakın zamana kadar yaygın olmamalarına neden olan önemli bir konu, DRAM imalat işleminin doğal olarak mantıksal işlemlerle uyumlu olmamasıdır, dolayısıyla eDRAM istendiğinde ilave adımların dahil edilmesi (maliyeti artıran ve verimi düşüren) olması gerekir. Bu nedenle, bu ekonomik dezavantajı telafi etmek için onu dahil etmek istemek için zorlayıcı bir sebep olmalıdır. Alternatif olarak, DRAM, bağımsız olarak üretilen ancak daha sonra CPU ile aynı pakete entegre edilen ayrı bir kalıp üzerine yerleştirilebilir. Bu, ikisini tamamen entegre bir şekilde üretmekte güçlük çekmeden yerelliğin faydalarının çoğunu sağlar.

Diğer bir sorun da, DRAM'ın, güç uygulanırken içeriğini süresiz olarak saklamadığı için SRAM'a benzememesidir ve okunması, daha sonra geri yazılması gereken depolanan verileri de tahrip eder. Bu nedenle, periyodik olarak ve her okumadan sonra yenilenmelidir. Üstelik, bir DRAM hücresi bir kapasitöre dayandığından, bir sonraki yenileme işlemi belirli bir süre geçmeden önce sızıntının değerini bozmayacağı şekilde yeterince doldurmak veya boşaltmak. Bu şarj süresi sadece bir mandal olan SRAM ile gerekli değildir; sonuç olarak CPU ile aynı hızda çalışabilirken, DRAM makul güç tüketimini korurken yaklaşık 1 GHz ile sınırlandırılmıştır. Bu, DRAM'ın SRAM'den daha yüksek bir doğal gecikme süresine sahip olmasına neden olur; bu da düşük özledim oranının karşılığını alacağı en büyük önbelleklerin tümü için kullanılmaya değmez hale getirir.

Ayrıca, gecikme söz konusu olduğunda, zorluğun büyük bir kısmı fiziksel mesafe sinyallerinin hareket etmesi gerektiğidir. Işık, 3 GHz'lik bir CPU'nun saat döneminde yalnızca 10 cm seyahat edebilir. Tabii ki, sinyaller kalıp boyunca düz çizgiler halinde hareket etmiyor ve yayılma gecikmelerine neden olan tamponlama ve havalandırmaya duyulan ihtiyaç nedeniyle ışık hızına yakın bir şeye yaymıyorlar. Bu nedenle, 1 saatlik gecikme döngüsünü sürdürmek için bir belleğin bir CPU'dan uzakta olabileceği maksimum mesafe, kullanılabilir alana yerleştirilebilecek bellek miktarını sınırlayan en fazla birkaç santimetredir. Intel'in Nehalem işlemcisi, L2 önbellek kapasitesini Penryn'e kıyasla kısmen düşürdü, bu da gecikmesini arttırdı, bu da daha yüksek performansa yol açtı. * Gecikmeyi çok fazla önemsemezsek, hafızayı paketlemeye gerek yok,

Ayrıca, önbellek isabet oranının çoğu iş yükü için çok yüksek olduğu belirtilmelidir: hemen hemen tüm pratik durumlarda% 90'ın üzerinde ve% 99'un üzerinde bile. Bu yüzden, ölüme daha büyük hatıralar eklemenin faydası, özlülüklerin bu yüzde birkaçının etkisinin azaltılmasıyla sınırlıdır. Kurumsal sunucu pazarı (POWER gibi) için tasarlanan işlemciler tipik olarak çok büyük önbelleklere sahiptir ve karlı bir şekilde eDRAM'ı içerebilir, çünkü birçok kurumsal iş yükünün büyük çalışma kümelerini barındırmak yararlıdır. Haswell GPU'yu desteklemeli çünkü dokular geniş ve önbellekte kalmıyor. Bunlar, tipik önbellek hiyerarşileri tarafından çok iyi bir şekilde sunulan tipik masaüstü veya HPC iş yükleri değil, bugün eDRAM için kullanım durumlarıdır.

Yorumlarda ortaya çıkan bazı sorunları ele almak için:

Bu eDRAM önbellekleri, ana bellek yerine kullanılamaz çünkü L4 kurban önbellekleri olarak tasarlanmıştır. Bu, uçucu ve etkin bir şekilde adreslenebilir oldukları anlamına gelir; böylece, içinde depolanan veriler belirli bir yerde bulundukları gibi ele alınmaz ve herhangi bir zamanda atılabilir. Bu özelliklerin doğrudan haritalandırılması ve kalıcı olması RAM'in gerekliliği ile bağdaştırılması zordur, ancak bunları değiştirmek önbellekleri amaçlarına yararsız hale getirecektir. Elbette, mikrodenetleyicilerde yapıldığı gibi, daha geleneksel bir tasarımın anılarını gömmek mümkündür, ancak düşük gecikme, ana bellekte olduğu kadar önbellekte olduğu kadar yararlı olmadığı için, bu, büyük anıları olan sistemler için haklı değildir. veya bir önbellek eklemek daha değerli bir teklif.

Gigabayt sırasına göre kapasiteye sahip çok büyük önbelleklerin olasılığı ile ilgili olarak, bir önbellek yalnızca uygulama için çalışan çalışma setinin büyüklüğünde olmalıdır. HPC uygulamaları terabayt veri kümeleriyle ilgilenebilir, ancak iyi zamansal ve mekansal konumlara sahipler ve bu nedenle çalışma kümeleri tipik olarak çok büyük değil. Büyük çalışma kümelerine sahip uygulamalar örneğin veritabanları ve ERP yazılımıdır, ancak bu tür iş yükü için optimize edilmiş işlemciler için yalnızca sınırlı bir pazar vardır. Yazılım gerçekten ihtiyaç duymadıkça, daha fazla önbellek eklemek çok hızlı bir şekilde azalan getiri sağlar. Son zamanlarda, işlemcilerin ön satın alma talimatlarını aldıklarını gördük, bu nedenle önbelleklerin daha verimli kullanılabildiği: Çalışma talimatlarının mutlak boyutundan ziyade, bellek erişim modellerinin tahmin edilemezliğinden kaynaklanan yanlışlıkları önlemek için bu talimatları kullanabilirsiniz.

* Gecikmedeki düzelme, sadece önbellek boyutunun daha küçük olması nedeniyle değil, aynı zamanda ilişkililiğin azalması nedeniyle oldu. Nehalem'deki tüm önbellek hiyerarşisinde, tümü performansı iyileştirmeye odaklanmayan çeşitli nedenlerden dolayı önemli değişiklikler oldu. Dolayısıyla, bu bir örnek olarak yeterli olsa da, tam bir hesap değildir.


1
İyi açıklanmış, @Oleksandr R. Kısacası, CPU ile DRAM arasında "empedans uyumsuzluğu" gibi bir şey var gibi görünüyor, ki bu ikisi birleştirmeyi zorlaştırıyor.
Küçük Kirpi

3
Ve elbette, SRAM hala oldukça büyüktür - küçük (RAM'e kıyasla) önbellekleri bile, modern CPU'larda kalıp alanının yaklaşık yarısını alır (yani, entegre GPU'lar: D).
Luaan

2
Ana bellek olmadan kaçmanın bir yolu olup olmadığını merak ediyorum. Zarar görmüş bir Linux dağıtımı (veya eski bir Windows sürümü) çalıştırmak için 128 MB yeterli olmalıdır.
user253751

Buna 'paket üzerindeki GPU' değil, 'ölüme GPU' denir.
AStopher

4
@cybermonkey: Talimatlar aslında L1 önbellekten alınır, ana bellekten değil. Tek çekirdekli bir tasarım için CPU'yu 16 Mhz ile sınırlayan 60 ns döngü süresi gibi ana hafızadan onları almak korkunç olurdu.
MSalters

17

Daha büyük belleğin (GB DRAM'ler) CPU kalıbına dahil edilmemesinin ana nedenleri öncelikle maliyetle ilgilidir. İşlemci alanı çok küçük özellikler yapmak için gereken üretim süreci nedeniyle çok daha pahalıdır. İkisini aynı kalıpta üretmek de mümkün olmayabilir, ancak burada kesin bir cevap verecek detaylar hakkında yeterince bilgim yok.

Doğrudan CPU kalıbına büyük miktarda DRAM koymanın uygulanabilirliğini değerlendirelim.

22

Ancak, belleği CPU'ya yaklaştırma fikri tamamen kaybedilmiş bir neden değildir. Bu, gelecekte belleğin hareket edeceği yerlerde olasıdır çünkü gerçek şu ki ışığın hızı sonludur ve yalnızca belirli bir mesafeden çok hızlı iletişim kurmak mümkündür.

Belleği CPU'ya yaklaştırmak için gerçekçi teknikler (bunların geleneksel tekniklerle de karşılaştırıldığını unutmayın):

  1. Onları CPU'nun üstüne koyun. Bu zaten Ahududu Pi'de yapıldı ve Geniş G / Ç bellek standardının bir parçası. Hafıza hala ayrı bir işlemle üretilmiş ayrı bir kalıptır. Bununla birlikte, CPU'da dağıtılan herhangi bir ısının, bir soğutucuya ulaşmadan önce bellekten geçmesi gerektiği sorunu vardır. Bu, yüksek güç işlemcileri için işe yaramayacağı ve bu teknolojiye yönelik birincil uygulamaların neden CPU'nuzun onlarca veya yüzlerce watt tüketmediği mobil işlemciler / diğer gömülü uygulamalarda olduğu anlamına gelir.

  2. Onları daha düşük maliyetli bir alt tabakaya çok yakın yapıştırın. Bu, HBM'nin daha düşük maliyetli bir "aracı" kalıbı üzerine üretilen çok büyük bir veri yolu ile çalışacak şekilde tasarlanması ve bant genişliği önemli ölçüde daha yüksek olduğu için yüksek kaliteli GPU hafızasının gittiği yöndür. Bellek yongaları ve aracı, hala gerçek işlemciden farklı kalıplarda üretilmektedir.


5
Büyük bir kalıpta milyarlarca transistörü tıkarken ve yakalarken veriminizin düşmesini beklerdim - her ekstra cihazda bir hata veya kusur olasılığı artar. Sistemi birkaç daha küçük parçaya bölerseniz, herhangi bir parçada ortaya çıkan bir arızanın ortaya çıkma olasılığı büyük ölçüde azalır ve arızalı bir parçanın atılmasının maliyeti de düşer. Çok büyük bir kalıbın aynı zamanda imal edilmesi de çok daha zor olacağını hayal ediyorum.
John U,

4
2

@JohnU - Çok sayıda tekrarlanan modülün bir kalıba yerleştirilmesi, bir hata meydana geldiğinde, ortaya çıkan modülü devre dışı bırakmanız ve kalıbı düşük maliyetli bir standarda uygun olarak serbest bırakmanız avantajına sahiptir (bu, DRAM ile çok olur, 32KB modüllere sahip birçok makine aslında hatalı bir bölüm devre dışı bırakılmış 64K yongalar kullanıyorsa, 80'lerin başına dönüyoruz. Bu aslında DRAM'i işlemcilerle bütünleştirdiğinizde verimin arttığı anlamına gelebilir ...
Jules

7

Bir CPU'ya büyük miktarda DRAM eklenmesinin olanaksız olmasının birkaç nedeni vardır.

  1. İşlem ve fab DRAM için ayarlanmamış olabilir. DRAM üretmek için ek üretim adımlarını alan özel devre elemanları gerektirir. Bu, imalat maliyetini arttırır.

  2. Bütün bu hafızaların test edilmesi gerekiyor. Bellek testi, test sürenizi uzatır. Bu başka bir maliyet artışı.

  3. Kalıbı büyütmek kendisi için maliyet artışıdır, çünkü gofret başına daha az kalıp demektir. Aynı zamanda verimi de etkiler - bir kusur gofretinizin daha büyük bir kısmını alır. Buna aşırı bir örnek için, kameralardaki tam çerçeve (35mm) görüntü sensörlerinin maliyetine bakın.

  4. Özel bellek türlerini kaldırabilecek bir süreç geliştirmek daha fazla zaman, para ve iş gerektiriyor ve daha fazla başarısızlık riski taşıyor. DRAM ile ilgili herhangi bir problem CPU'nun serbest kalmasını geciktirecektir. Masaüstü işlemciler yarı iletken üretiminin en üst seviyelerindedir, bu nedenle gecikme büyük bir rekabet dezavantajı olabilir. (Bkz: son birkaç yıldır AMD vs. Intel.)

  5. DRAM, okumalar için analog algılamayı ve ayrıca periyodik tazelemeyi gerektirir. Ben bir DRAM uzmanı değilim, ancak çipte mi yoksa çipte mi olduğuna bakılmaksızın, bir üst seviye CPU kadar hızlı olabileceğinden şüpheliyim. Bu nedenle muhtemelen hala SRAM önbelleğe alma işleminde sıkışıp kalacaksınız.

  6. Yukarıdaki sorunların üstesinden gelip birkaç gigabayt DRAM'i bir CPU ölüsüne tıkabilseniz bile, yine de bir masaüstü bilgisayar, dizüstü bilgisayar veya sunucu çalıştırmak için yeterli olmayacak, bu nedenle yine de yonga dışında belleğe sahip olmanız gerekecek .


1
Çoğu önbellek ECC ile uygulanır ve bazı yeni Intel işlemciler chipkill içerir ve önbellek için artıklık engeller. Bu, test gereksinimlerini azaltır ve daha büyük kalıplar için verimi önemli ölçüde iyileştirir. Buna karşılık, bir görüntü algılayıcıyla, hataların düzeltilmesi mümkün değildir, çünkü bilgi önceden bilinen bir şey değildir ve bir piksel bloğu düzgün çalışmadığında, sadece bunu görmezden gelip bir tane kullanmaya karar veremeyiz. onun yeri.
Oleksandr R.

Doğru, anılarla daha yüksek verim elde etmek daha kolaydır. Dediğim gibi, aşırı bir örnek oldu.
Adam Haun,

3

Diğer cevaplara ek olarak, böyle bir sistem hakkında söylenebilecek daha çok şey var. Hafızanın ana kalıba taşınması, bir dizi başka mühendislik problemini de içerecektir. Otobüsleri yeniden yönlendirmeniz, ana işlemciye bir DMA kontrol cihazı kurmanız, IRQ veriyolunu yapılandırmanız ve konsantre bir alana koyacağınız tüm ekstra ısıdan nasıl kurtulacağınıza karar vermeniz gerekir. Bu, ana kart üreticisinin de bu kadar büyük bir değişikliği desteklemek için dahil olması gerektiği anlamına gelir. Düşük seviye sistemler muhtemelen böyle bir değişiklikten yararlanırken, yüksek seviye sistemler muhtemelen büyük miktarda soğutma gerektirecektir. Örneğin, ortalama bir dizüstü bilgisayarın böyle bir çip kullanabileceğinden şüpheliyim.

Böyle bir çip, ana anakartın fiyatı düşmesine rağmen (muhtemelen kayda değer olmasa da) çok daha pahalı olurdu. Bir DMA denetleyicisinin paketlerini ve RAM paketlerini gördüyseniz, tüm bu mantığın büyük ölçüde daha büyük olmayan tek bir kalıba basılabileceğine inanmak için baskı altında kalırsınız. Ayrıca CPU'ların belirli bir boyuta sahip büyük gofretlerden kesildiğini de unutmayın. Bu, üreticinin gofret başına daha az işlemciye sahip olacağı ve bu da toplam maliyeti artıracağı anlamına geliyor.

Tüm sistemde watt kullanımından bahsetmediğimizi, bunun azalacağını unutmayın, bunun yerine tek bir alanda daha fazla watt konsantrasyonu (ve dolayısıyla ısı) olacağını ve bunun muhtemelen ihtimalini arttıracağını unutmayın. hatası.

Sonunda, burada başka bir dezavantaj var ve bu özelleştirilmiş sistemler sağlama yeteneğidir. Şu anda üreticiler, müşterinin tercihlerine bağlı olarak aynı işlemcilere, ancak farklı miktarlarda belleğe veya farklı işlemcilere, ancak aynı miktarda belleğe sahip sistemleri yerleştirmeyi seçebilirler. Farklı konfigürasyonların çokluğunu sunmak için, her biri farklı bir montaj hattında farklı kalıplar inşa etmek zorunda kalacaklardı.

AMD, işlemci kalıbının her bir parçasının farklı konfigürasyonlar için değiştirilebilen ayrı bir mantık birimi olduğu fiilen bu şekilde çalışan teknolojiyi aktif olarak kullanıyor. Gelecekte, eğer böyle bir tasarım uygulanabilirse, yonga içi bellek sunan bir işlemciyi pahalı bir modül yükseltmesi olarak görebiliyorduk, belki de karşılığında bazı işlem gücünü veya diğer tweaks'leri değiştiriyorduk. Örneğin, bir gün dahili belleğe sahip olmayan 256 çekirdek veya dahili belleğe sahip 128 çekirdek veya kısmen GPU, kısmen CPU, kısmen RAM gibi diğer yapılandırmalar arasında seçim yapabiliriz.


Bu cevabın asıl sorunu, akıllı telefonlar için SoC tasarımlarının aslında RAM içerdiğidir. Bunlar çok daha pahalı değil, aslında daha ucuzlar.
MSalters

@ MSalters Aynı kalıba entegre olmadıkları sürece. Hafıza kalıpları ayrıdır, doğru şekilde çalıştığı test edilmiş ve onaylanmıştır ve yalnızca mikroişlemci kalıbı ile birlikte paketlenmiştir.
Diş fırçası

2

Yukarıdakilerin hemen hepsi + bir ek sorun daha: Isı.

DRAM hücreleri temelde sızıntı yapan kapasitörlerdir. Ve buradaki dielektrik, Si02 tabakasının kendisidir. Sıcaklık arttıkça, kaçak akımlar orantılı olarak artar. Bunlar, DRAM hücrelerini çok daha hızlı boşaltır; bu da karmaşıklığı, gerekli akımı ve tabii ki biraz daha fazla ısı kazandıracak olan daha hızlı yenileme hızları gerektirecektir.


2

Daha önce verilen cevaplara ek olarak bir ek husus daha var: Üretim hatalarına bağlı atıklar:

Diyelim ki üretilen belirli bir modelin tüm CPU'larının 1 / 100'ü hatalı (aslında daha az, elbette; 1/100 hesaplanması daha kolay) ve üretilen tüm RAM'lerin 1 / 100'ü hatalı.

Her iki bileşen de tek bir yongada birleştirilirse, tüm yongaların 1 / 100'ü arızalı bir CPU'ya sahip olacak ve tüm yongaların 1 / 100'ü arızalı bir RAM'e sahip olacaktır.

Bunun anlamı:

  • 10000 yonganın 1’inde hem hatalı RAM hem de CPU
  • 99 cips arızalı RAM'e sahip olacak
  • 99 yonganın bozuk bir CPU'su olur
  • Üretilen 10000 parçanın 199'unun tümü atık olacaktır.

Ayrı cipsler üreterek hesaplama aşağıdaki gibidir:

  • 5000 RAM’in 50’si arızalı
  • 5000 CPU’nun 50’si arızalı
  • Üretilen 10000 parçanın 100'ü atık olacak

RAM ve CPU'yu aynı yonga üzerine yerleştirmek istiyorsanız, bir GB RAM'in genellikle sekiz yongadan oluşan bir banka şeklinde yapıldığını unutmayın. Bu, yukarıdaki basit örnekte üretilen 10000'ün yaklaşık 865 hatalı parçasına yol açacaktır.

"IBM Cell" CPU'ları tam olarak bu sorun vardı. "Playstation" konsolu kısmen kusurlu cips kullandı; Playstation yazılımı, hatalı çekirdeklerin ve SRAM'lerin kullanılmadığı bir şekilde yazılmıştır.


1
AMD bir süredir aynı çekirdekli 3 çekirdekli işlemciler önerdi. Uygulamada, parçaların paketlenmeden önce genellikle kalıp seviyesinde test edildiğini düşünüyorum, bu nedenle endişeniz en yekpare monolitik CPU ve hafıza kombinasyonlarına uygulanabilir.
Oleksandr R.

Darpa, Intel ve Qualcom'un mühendislerine göre fantastik bir arazi olan 3dSoC'leri kullanarak, bellek duvarını yenerek 50 kat güç verimliliği ödülü aldı. monolithic3d.com/blog/… SoC'ler (bir yonga üzerindeki sistem), paralel işlemciler için en iyisidir; bu, 2 / 16'dan çok 1000ds grup olduğu anlamına gelir.
com.prehensible

1

Aslında iki tür RAM vardır. Statik RAM ve Dinamik RAM'dir. Statik hafıza çok hızlı ancak daha yüksek bir maliyete sahip. Bu arada dinamik RAM, statik RAM'le karşılaştırıldığında yavaştır, ancak statik RAM'le karşılaştırıldığında ucuza gelir.

Önbellek statik RAM'e düşüyor. KB veya MB boyutlarında olduklarını görebilirsiniz. Onlar hızlı. Ancak yüksek maliyet.


Tam olarak değil, evet, hızlılar, ancak bunun temel nedeni, seyahat etmesi gereken mesafe verilerinin DRAM'den çok daha az olmasıdır.
AStopher

3
Aslında, SRAM hücresi daha hızlıdır, çünkü daha basittir. Dijital bir iki kararlı devre. Yanlışlıkla 0,8 analog değerine ayarlarsanız, 1,0 pozisyonuna geçerek kendini sabitler. DRAM böyle kararlı durumlara sahip değildir. Bu hareket etmez uzakta ara devletlerden. Daha da kötüsü, bu gibi durumlara doğru hareket eder , bu yüzden ekstra düzeltici "yenileme" devresine ihtiyacınız vardır.
MSalters

@ MSalters: SRAM hücresi bir DRAM hücresinden daha basit DEĞİLDİR. Bunu yapar, çok daha kararlı olduğunu doğru kullanarak daha basit (hem devresi ve zamanlama diyagramları destekleyen açısından). Ancak SRAM hücreleri, bit başına DRAM'den yaklaşık 6 kat daha fazla devredir.
Ben Voigt

1
@BenVoigt: Transistör sayımında evet - 6T - 1T. Ancak DRAM oldukça garip bir bileşen olan bir kapasitöre sahiptir. SRAM sadece birlikte bağlanmış transistörlerdir.
MSalters

DRAM'deki kapasitör de bir transistör olarak uygulanıyor
Ben Voigt

1

Bahsedilen diğer nedenlere ek olarak, birçok sistemde birden fazla CPU çekirdeği vardır. Ana DRAM'da depolanan bilgilerin tüm önbellek kopyalarıyla tutarlı olduğu zamanlarda, önbelleğe alınan bilgiye sahip olmayan tüm işlemciler buna eşit erişime sahip olacaktır. Bazı mimariler, her bir CPU çekirdeğinin bir dizi adres alanına "sahip olacağı" varsayımı çerçevesinde tasarlanmıştır ve bir CPU, diğer işlemciler tarafından sahip olunan belleğe erişebiliyor olsa bile, bu erişimler kendi belleğine erişmekten çok daha yavaş olacaktır. , ancak x86 genellikle bu şekilde uygulanmamaktadır.

Bir işlemci, işlemcinin belirli adres aralıklarına sahip olduğu varsayımına göre tasarlandıysa ve kod, diğer işlemcilerin adres aralıklarının kullanımını en aza indirmeye çalışmalıysa, her bir işlemci kodunun cilalı bir miktar on-line bellek içermesi mantıklı olacaktır. Böyle bir tasarım, bir işlemci çekirdeğinin kendi belleğine erişmesi için gereken süreyi azaltabilir, ancak büyük olasılıkla başka bir işlemcinin belleğine erişmesi için gereken süreyi artırabilir. Sistem böyle bir varsayım etrafında tasarlanmadığı sürece, ne zaman ihtiyaç duyulduğuna bakılmaksızın verilerin işlemciler arasında dağıtılması muhtemeldir. Verilere başka bir CPU içinden (harici bellek sistemine karşı) erişmek için gereken fazladan zaman, dahili erişimde kaydedilen zamanın yarısı kadar olsa bile,

Eğer biri bugünün teknolojilerine uyacak şekilde sıfırdan bir sistem tasarlıyorsa, tek biçimli olmayan bir bellek mimarisi tüm işlemcilerin tüm belleğe verimli bir şekilde erişebilmesi için ihtiyaç duyduğundan daha fazla "paranın karşılığını almasına" izin verebilir. Ancak günümüzün yazılım tasarımları göz önüne alındığında, işlemciler arasında paylaşılan harici bir bellek sistemine sahip olmak, işlemcilerin kendi içinde toplu veri depolamaya çalışmaktan daha verimli olmaya uygundur.


2
Düzgün olmayan bellek mimarileri günümüzde zaten kullanılmaktadır (ve hatta yaygındır). Çok işlemcili bir sistemde kullanılan tümleşik bellek denetleyicileri olan bir CPU için, başka bir işlemcinin fiziksel belleğinde depolanan veriler, yerel olarak bağlanmış RAM'lerinde olduğundan daha yüksek gecikmeyle daha uzak ve erişilebilir durumdadır. Uygulamada, bu sistemlerde olan şey, işlemcilerin ek önbellek seviyeleriyle donatılmış olması ve tutarlılık trafiğinin kısmen bağlantı yapısı tarafından gerçekleştirilmesidir. POWER7 ve POWER8 bu tiptir.
Oleksandr R.

1

Önceki tüm cevaplar CPU'ya neden daha fazla bellek eklemenin neden bu kadar zor olduğunu belirtmekte haklı olsa da, modern CPU'larda oldukça fazla bellek olduğu da doğru.

Deterministik gecikmelerin önemli olduğu gerçek zamanlı işlemlerde, çipte önbelleğin kod ve / veya veriler için adreslenebilir bellek olarak kullanılması duyulmamış değildir. Avantaj, hızlı ve sürekli erişim süresidir ve dezavantajı, çip üzerindeki belleğin oldukça sınırlı olmasıdır.


1

Asıl sorunuzda tanımladığınız sorunlardan yalnızca, makinedeki belleğin TÜMÜ CPU'ya dahil edilmişse önlenebilir. Makineye ana kart üzerindeki yuvalar aracılığıyla eklenen herhangi bir ek bellek tarif ettiğinizle aynı gecikmelere maruz kalacak ve CPU / RAM ile onboard RAM arasındaki marşalizasyon ve mantık kontrol cihazlarını gerektirecektir.

RAM ucuzdur ve genellikle kullanıcılar tarafından CPU'larını yükseltme arasında bir veya iki kez genişletilir.

Ayrıca, RAM bir CPU saat hızında çalışıyor olsa bile, tipik bir "Getir" çağrısının CPU üzerinde bir dizi boşta kenara gitmesine neden olacağını unutmayın.

Bir makinedeki geleneksel bellek organizasyonu, en başta CPU, sonra önbellek, sonra RAM ve daha sonra disk bulunan bir piramittir. Tipik olarak iyi performans gösteren makineler, iyi bir saat hızı, makul miktarda önbellek, iyi miktarda RAM ve yüksek hızlı sabit disk (veya dizi) kombinasyonuna sahiptir. Son yıllarda, disk performansı tipik olarak çoğu PC ve yüksek RPM disklerde en iyi performans artışını sağlar, önbellekli diskler ve yarıiletken diskler iyi bir performans artışı sağlar.

Evet, tüm RAM'leri çip üzerinde olan bir makine modern uygulamalarda iyi performans gösterirdi, ancak standart bir işletim sistemi çalıştıran çip üzerinde RAM'lerinin bir kısmı büyük olasılıkla düşündüğünüz performans artışını sağlamayacaktı.

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.