Warum steckt kein RAM auf dem CPU-Chip?

55

Moderne CPUs sind sehr schnell im Vergleich zu allen externen Dingen, einschließlich Arbeitsspeicher (RAM).

Es ist verständlich, da die CPU-Taktfrequenz einen Punkt erreicht hat, an dem ein elektrisches Signal mehrere Taktimpulse benötigt, um von der CPU über den Bus zu den RAM-Chips und zurück zu gelangen.

Dies verkompliziert auch das Leben auf vielen Ebenen: Cache-Hierarchien mit mehreren Ebenen werden erstellt, um Daten näher an die CPU zu liefern, was wiederum eine komplexe Synchronisationslogik im Chip erfordert. Programme müssen cachefreundlich geschrieben werden, um Wartezeiten beim Abrufen von Daten zu vermeiden.

Viele dieser Probleme könnten vermieden werden, wenn sich eine erhebliche Menge RAM direkt auf dem CPU-Chip befände. Es muss nicht exklusiv vereinbart werden: Je nach Klasse können 1 bis 4 GB auf dem Chip gespeichert und zusätzlicher Speicher separat installiert werden.

Ich bin mir sicher, dass es gute Gründe gibt, warum Intel, AMD und dergleichen dies nicht tun. Was sind diese Gründe? Ist es so, dass auf dem Chip kein Platz mehr ist?

Kleiner Igel
quelle
29
Cache ist RAM. Leerzeichen und Stifte auf dem Würfel sind sehr wichtig.
Kupfer.hat
2
@ copper.hat Cache ist RAM, aber die Cache-Größe macht einen kleinen Bruchteil des installierten RAM aus (in der Regel handelt es sich um MByte- oder GByte-Bereiche). Ich frage mich, warum nicht 1 GB in den CPU-Chip stecken.
Kleiner Igel
5
Im Allgemeinen ist es für einen bestimmten Befehls- / Datenflussmix optimiert. Außerdem werden nicht alle Daten vom / zum RAM durch die CPU geleitet.
Kupfer.hat
1
Je einfacher ein Würfel ist, desto billiger ist er. Dies bedeutet auch, dass Sie verschiedene Prozessgrößen und -methoden verwenden können.
Geselle Geek
@LesserHedgehog Es gibt eine Grenze, wie hoch Ihre Cache-Trefferrate im Allgemeinen sein kann. Das Hinzufügen von mehr Cache hilft also eigentlich nichts. Viele CPUs haben jetzt tatsächlich einen eingebetteten DRAM, insbesondere im mobilen / eingebetteten Bereich (z. B. viele ARM-basierte SoCs).
flauschige

Antworten:

79

Intels Haswell (oder zumindest jene Produkte, die die Iris Pro 5200-GPU enthalten) und IBMs POWER7 und POWER8 enthalten alle eingebetteten DRAM, "eDRAM".

Ein wichtiges Problem, das dazu geführt hat, dass eDRAM bis vor kurzem nicht verbreitet war, ist, dass der DRAM-Herstellungsprozess nicht inhärent mit Logikprozessen kompatibel ist, so dass zusätzliche Schritte eingeschlossen werden müssen (die die Kosten erhöhen und die Ausbeute verringern), wenn eDRAM gewünscht wird. Es muss also einen zwingenden Grund dafür geben, ihn aufnehmen zu wollen, um diesen wirtschaftlichen Nachteil auszugleichen. Alternativ kann der DRAM auf einem separaten Chip platziert werden, der unabhängig von der CPU hergestellt, dann aber in dasselbe Gehäuse integriert wird. Dies bietet die meisten Vorteile der örtlichen Gegebenheiten, ohne die Schwierigkeiten zu haben, die beiden auf wirklich integrierte Weise herzustellen.

Ein weiteres Problem ist, dass DRAM nicht wie SRAM ist, da es seinen Inhalt nicht unbegrenzt speichert, während Strom angelegt wird, und das Lesen zerstört auch die gespeicherten Daten, die anschließend zurückgeschrieben werden müssen. Daher muss es regelmäßig und nach jedem Lesevorgang aktualisiert werden. Und da eine DRAM-Zelle auf einem Kondensator basiert, dauert das Aufladen oder Entladen des Kondensators so lange, bis die nächste Auffrischung einen bestimmten Zeitraum in Anspruch nimmt. Diese Ladezeit ist bei SRAM nicht erforderlich, da es sich lediglich um eine Verriegelung handelt. Folglich kann es mit der gleichen Taktrate wie die CPU getaktet werden, wohingegen der DRAM auf ungefähr 1 GHz begrenzt ist, während ein angemessener Energieverbrauch aufrechterhalten wird. Dies hat zur Folge, dass der DRAM eine höhere inhärente Latenz als der SRAM aufweist, weshalb er nur für die größten Caches verwendet werden sollte, bei denen sich die verringerte Fehlerrate auszahlt.

Auch in Bezug auf die Latenz besteht ein großer Teil der Schwierigkeit darin, dass die physikalischen Abstandssignale übertragen werden müssen. In der Taktperiode einer 3-GHz-CPU kann sich das Licht nur 10 cm bewegen. Natürlich laufen die Signale nicht geradlinig über den Chip und breiten sich auch nicht mit einer Geschwindigkeit aus, die der Lichtgeschwindigkeit nahe kommt, da Pufferung und Fan-Out erforderlich sind, was zu Laufzeitverzögerungen führt. Die maximale Entfernung, die ein Speicher von einer CPU entfernt sein kann, um 1 Takt-Latenzzyklus aufrechtzuerhalten, beträgt daher höchstens einige Zentimeter, wodurch die Menge an Speicher begrenzt wird, die in dem verfügbaren Bereich untergebracht werden kann. Der Nehalem-Prozessor von Intel hat die Kapazität des L2-Caches im Vergleich zu Penryn reduziert, um die Latenz zu verbessern, was zu einer höheren Leistung führte.

Es sollte auch beachtet werden, dass die Cache-Trefferrate für die meisten Workloads sehr hoch ist: in fast allen praktischen Fällen weit über 90% und nicht selten sogar über 99%. Daher beschränkt sich der Vorteil des Einbindens größerer Speicher in den Chip inhärent darauf, die Auswirkung dieser wenigen Prozent der Fehler zu verringern. Prozessoren, die für den Enterprise-Server-Markt vorgesehen sind (wie z. B. POWER), haben normalerweise enorme Caches und können eDRAM rentabel einschließen, da es nützlich ist, die großen Arbeitsmengen vieler Enterprise-Workloads zu berücksichtigen. Haswell muss die GPU unterstützen, da die Texturen groß sind und nicht im Cache gespeichert werden können. Dies sind die Anwendungsfälle für eDRAM heute, keine typischen Desktop- oder HPC-Workloads, die von den typischen Cache-Hierarchien sehr gut bedient werden.

So gehen Sie auf einige in Kommentaren angesprochene Probleme ein:

Diese eDRAM-Caches können nicht anstelle des Hauptspeichers verwendet werden, da sie als L4-Opfer-Caches ausgelegt sind. Dies bedeutet, dass sie flüchtig und effektiv inhaltsadressierbar sind, sodass die darin gespeicherten Daten nicht als an einem bestimmten Ort befindlich behandelt werden und jederzeit verworfen werden können. Diese Eigenschaften lassen sich nur schwer mit der Anforderung vereinbaren, dass RAM direkt zugeordnet und dauerhaft sein muss. Wenn Sie sie jedoch ändern, werden die Caches für den beabsichtigten Zweck unbrauchbar. Es ist natürlich möglich, Speicher konventionellerer Bauart einzubetten, wie dies bei Mikrocontrollern der Fall ist. Dies ist jedoch für Systeme mit großen Speichern nicht gerechtfertigt, da eine geringe Latenz im Hauptspeicher nicht so vorteilhaft ist wie in einem Cache, was zu einer Vergrößerung führt oder das Hinzufügen eines Cache ist eine lohnendere Angelegenheit.

Hinsichtlich der Möglichkeit sehr großer Caches mit einer Kapazität in der Größenordnung von Gigabyte ist es nur erforderlich, dass ein Cache höchstens die Größe des Arbeitssatzes für die Anwendung hat. HPC-Anwendungen können Terabyte-Datasets verarbeiten, haben jedoch eine gute zeitliche und räumliche Lokalität, sodass ihre Arbeitssets in der Regel nicht sehr groß sind. Anwendungen mit großen Arbeitsmengen sind z. B. Datenbanken und ERP-Software, aber es gibt nur einen begrenzten Markt für Prozessoren, die für diese Art von Arbeitslast optimiert sind. Wenn die Software dies nicht wirklich benötigt, führt das Hinzufügen von mehr Cache zu sehr schnell sinkenden Erträgen. Kürzlich haben wir gesehen, dass Prozessoren Prefetch-Anweisungen erhalten, sodass Caches effizienter genutzt werden können: Mit diesen Anweisungen können Fehler vermieden werden, die durch die Unvorhersehbarkeit von Speicherzugriffsmustern und nicht durch die absolute Größe der Arbeitsgruppe verursacht werden.

* Die Verbesserung der Latenz war nicht nur auf die geringere physische Größe des Caches zurückzuführen, sondern auch auf die verringerte Assoziativität. Die gesamte Cache-Hierarchie in Nehalem wurde aus verschiedenen Gründen erheblich geändert, wobei nicht alle auf die Verbesserung der Leistung abzielten. Obwohl dies als Beispiel ausreicht, ist es kein vollständiger Account.

Oleksandr R.
quelle
1
Gut erklärt ,, @Oleksandr R. Kurz gesagt, es scheint eine Art "Impedanz-Fehlanpassung" zwischen CPU und DRAM zu geben, die das Koppeln der beiden schwierig macht.
Kleiner Igel
3
Und natürlich ist SRAM immer noch ziemlich groß - selbst die winzigen (im Vergleich zu RAM) Caches nehmen bei modernen CPUs ungefähr die Hälfte der Chipfläche ein (naja, mit Ausnahme von CPUs mit integrierten GPUs: D).
Luaan
2
Ich frage mich, ob es einen Weg gibt, ohne Hauptspeicher zu laufen. 128 MB sollten ausreichen, um eine abgespeckte Linux-Distribution (oder eine alte Version von Windows) auszuführen.
user253751
Es heißt "GPU-on-Die", nicht "GPU-on-Package".
AStopher
4
@cybermonkey: Anweisungen werden tatsächlich aus dem L1-Cache abgerufen, nicht aus dem Hauptspeicher. Es wäre schrecklich, sie aus dem Hauptspeicher abzurufen - etwa 60 ns Zykluszeit, was Ihre CPU für ein Single-Core-Design auf 16 MHz begrenzt.
MSalters
17

Die Hauptgründe dafür, dass größerer Speicher (GB DRAM) nicht im CPU-Chip selbst enthalten ist, sind in erster Linie die Kosten. Der Platz auf dem CPU-Chip ist aufgrund des Herstellungsprozesses, der für die Herstellung der sehr kleinen Features erforderlich ist, erheblich teurer. Es ist möglicherweise auch nicht möglich, die beiden auf demselben Werkzeug herzustellen, obwohl ich nicht genug über die Details weiß, um hier eine endgültige Antwort zu geben.

Lassen Sie uns die Machbarkeit prüfen, eine große Menge DRAM direkt auf den CPU-Chip zu setzen.

Zum Vergleich der Skalierung kann ein moderner CPU-Chip ~ 180 mm groß sein (ungefähr die Größe von Intel Haswell-Chips). Ich habe keine genauen Zahlen für die CPU-DRAM-Chipgrößen, aber nehmen wir an, dass 1 GB herkömmlicher DRAM 140 mm (berechnet aus den GPU-DRAM-Größen). In erster Näherung verdoppeln Sie ungefähr die CPU-Chipgröße, was bedeutet, dass sich die Kosten für einen Prozessor mindestens verdoppeln, und wahrscheinlich mehr für 1 GB DRAM auf demselben Chip Holen Sie sich 1 GB DRAM, und ich glaube nicht, dass jemand würde.222

Die Idee, Speicher näher an der CPU zu platzieren, geht jedoch nicht vollständig verloren. Dies ist wahrscheinlich, wo sich das Gedächtnis in Zukunft bewegen wird, da die Lichtgeschwindigkeit endlich ist und es nur möglich ist, über eine bestimmte Distanz so schnell zu kommunizieren.

Realistische Techniken zur Annäherung des Arbeitsspeichers an die CPU (beachten Sie, dass diese auch Nachteile gegenüber herkömmlichen Techniken aufweisen):

  1. Stapeln Sie sie auf der CPU selbst. Dies geschieht bereits auf dem Raspberry Pi und ist Teil des Wide I / O-Speicherstandards. Der Speicher ist immer noch ein separater Chip, der in einem separaten Prozess hergestellt wird. Dies hat jedoch das Problem, dass die in der CPU abgeführte Wärme den Speicher passieren muss, bevor sie einen Kühlkörper erreicht. Dies bedeutet, dass es für Hochleistungsprozessoren nicht funktioniert und dass die Hauptanwendung für diese Technologie in mobilen Prozessoren / anderen eingebetteten Anwendungen liegt, in denen Ihre CPU nicht viele Dutzend oder Hunderte von Watt verbraucht.

  2. Kleben Sie sie ganz in der Nähe auf ein kostengünstigeres Substrat. Dies ist, wie HBM entworfen wurde, um mit einem sehr großen Bus zu arbeiten, der auf einem kostengünstigeren "Interposer" -Die hergestellt wird, und ist die Richtung, in die High-End-GPU-Speicher gehen, weil die Bandbreite signifikant höher ist. Die Speicherchips und der Interposer werden immer noch auf unterschiedlichen Chips des eigentlichen Prozessors hergestellt.

helloworld922
quelle
5
Ich würde erwarten, dass die Renditen sinken, wenn Sie versuchen, mehr Milliarden von Transistoren auf einem großen Chip zu stopfen - die Wahrscheinlichkeit eines Fehlers oder Defekts steigt mit jedem zusätzlichen Gerät. Wenn Sie das System in mehrere kleinere Teile aufteilen, sinkt die Wahrscheinlichkeit, dass ein Fehler an einem Teil auftritt, erheblich, und die Kosten für das Verwerfen dieses einen fehlerhaften Teils sind ebenfalls geringer. Ich würde mir vorstellen, dass ein sehr großer Würfel auch viel schwieriger herzustellen ist, wenn alle anderen gleich sind.
John U
4
@ JohnU Es ist schwierig zu sagen, wie die Preisgestaltung skaliert, da die tatsächliche Fehlerrate ein Geschäftsgeheimnis ist. GPUs verwenden bereits Chips im Bereich von ~ 440 mm , die für etwa 550 USD erhältlich sind, sodass ein Näherungspreis erster Ordnung mit der Chipgröße nicht allzu schlecht zu sein scheint. Plus-Geräte mit Defekten werden möglicherweise weiterhin als untere Endgeräte verkauft, bei denen bestimmte Funktionen deaktiviert sind. Dies ist in vielen Unternehmen gängige Praxis. 2
helloworld922
@JohnU - Das Aufbringen einer großen Anzahl von Modulwiederholungen auf einen Chip hat den Vorteil, dass Sie beim Auftreten eines Defekts das darin befindliche Modul einfach deaktivieren und den Chip freigeben können, so dass er einem kostengünstigeren Standard entspricht (dies ist häufig bei DRAM der Fall). zurück in die 80er Jahre, als viele Maschinen mit 32-KB-Modulen tatsächlich 64-KB-Chips mit deaktiviertem fehlerhaften Bereich verwendeten). Dies kann tatsächlich bedeuten, dass die Ausbeute steigt, wenn Sie DRAM mit Prozessoren integrieren ...
Jules
7

Es gibt mehrere Gründe, warum das Hinzufügen großer Mengen von DRAM zu einer CPU nicht möglich sein könnte.

  1. Der Prozess und die Fab sind möglicherweise nicht für DRAM eingerichtet. DRAM erfordert spezielle Schaltungselemente, deren Herstellung zusätzliche Herstellungsschritte erfordert. Dies erhöht die Herstellungskosten.

  2. All dieser Speicher muss getestet werden. Gedächtnistests verlängern Ihre Testzeit. Das ist eine weitere Kostensteigerung.

  3. Das Vergrößern des Chips selbst ist eine Kostensteigerung, da es weniger Chips pro Wafer bedeutet. Dies wirkt sich auch auf die Ausbeute aus - ein Defekt entfernt einen größeren Teil Ihres Wafers. Ein extremes Beispiel hierfür sind die Kosten für Vollbild-Bildsensoren (35 mm) in Kameras.

  4. Die Entwicklung eines Prozesses, der mit bestimmten Arten von Speicher umgehen kann, kostet mehr Zeit, Geld und Arbeit und birgt ein höheres Ausfallrisiko. Jedes Problem mit dem DRAM würde die Freigabe der CPU verzögern. Desktop-CPUs sind in der Halbleiterfertigung auf dem neuesten Stand, daher kann eine Verzögerung ein großer Wettbewerbsnachteil sein. (Siehe: AMD vs. Intel in den letzten Jahren.)

  5. DRAM erfordert eine analoge Abtastung für Lesevorgänge sowie ein periodisches Auffrischen. Ich bin kein DRAM-Experte, aber ich bezweifle, dass es jemals so schnell sein könnte wie eine High-End-CPU, unabhängig davon, ob es sich um eine Off-Chip- oder eine On-Chip-CPU handelt. Sie werden wahrscheinlich immer noch mit SRAM-Caching stecken.

  6. Selbst wenn Sie die oben genannten Probleme lösen und ein paar Gigabyte DRAM auf einen CPU-Würfel packen können, reicht es nicht aus, einen Desktop-PC, einen Laptop oder einen Server zu betreiben, sodass Sie ohnehin Speicher außerhalb des Chips benötigen .

Adam Haun
quelle
1
Die meisten Caches werden mit ECC implementiert, und einige neuere Intel-Prozessoren enthalten Chipkill- und Blockredundanz für den Cache. Dies reduziert die Testanforderungen und verbessert die Ausbeuten für die größeren Formen erheblich. Im Gegensatz dazu gibt es bei einem Bildsensor keine Möglichkeit zur Fehlerkorrektur, da die Informationen nicht von vornherein bekannt sind und wir auch nicht entscheiden können, wenn ein Pixelblock nicht ordnungsgemäß funktioniert, ihn einfach zu ignorieren und einen Ersatzpixel zu verwenden seinen Platz.
Oleksandr R.
Es stimmt, es ist einfacher, mit Erinnerungen einen höheren Ertrag zu erzielen. Wie ich schon sagte, es war ein extremes Beispiel.
Adam Haun
3

Neben den anderen Antworten kann noch mehr über ein solches System gesagt werden. Das Verschieben des Speichers in den Hauptchip würde eine Vielzahl anderer technischer Probleme mit sich bringen. Sie müssten die Busse umleiten, einen DMA-Controller in den Hauptprozessor einbauen, den IRQ-Bus umstrukturieren und festlegen, wie Sie all die zusätzliche Wärme, die Sie in einem konzentrierten Bereich abgeben würden, loswerden. Dies bedeutet, dass sich auch der Motherboard-Hersteller engagieren müsste, um eine so wesentliche Änderung zu unterstützen. Während Low-End-Systeme wahrscheinlich von einer solchen Änderung profitieren würden, würden High-End-Systeme wahrscheinlich eine erhebliche Kühlung erfordern. Ich bezweifle, dass ein durchschnittlicher Laptop zum Beispiel mit einem solchen Chip umgehen kann.

Ein solcher Chip wäre weitaus teurer, obwohl das Mainboard im Preis fallen würde (obwohl wahrscheinlich nicht nennenswert). Wenn Sie die Pakete für einen DMA-Controller und die RAM-Pakete gesehen haben, werden Sie kaum glauben können, dass all diese Logik in einen einzigen Chip gepreßt werden könnte, der nicht wesentlich größer wäre. Denken Sie auch daran, dass CPUs aus großen Wafern mit einer bestimmten Größe geschnitten werden. Dies bedeutet, dass der Hersteller auch weit weniger Prozessoren pro Wafer haben würde, was auch die Gesamtkosten erhöhen würde.

Denken Sie daran, dass es sich nicht um eine Verringerung des Stromverbrauchs im gesamten System handelt, sondern vielmehr um eine noch stärkere Konzentration des Stromverbrauchs (und damit der Wärme) in einem einzelnen Bereich, wodurch sich wahrscheinlich die Wahrscheinlichkeit erhöht Fehler.

Schließlich gibt es hier einen weiteren Nachteil, nämlich die Möglichkeit, kundenspezifische Systeme bereitzustellen. Derzeit können Hersteller Systeme mit identischen Prozessoren und unterschiedlichem Speicher oder mit unterschiedlichen Prozessoren und gleichem Speicher je nach Kundenwunsch ausstatten. Um die Vielzahl unterschiedlicher Konfigurationen anbieten zu können, müssten sie unterschiedliche Matrizen auf unterschiedlichen Montagelinien bauen.

AMD nutzt aktiv Technologien, die auf diese Weise funktionieren. Dabei handelt es sich bei jedem Teil des Prozessorchips um eine diskrete Logikeinheit, die gegen andere Konfigurationen ausgetauscht werden kann. Wenn ein solches Design realisierbar ist, könnten wir in Zukunft CPUs, die In-Chip-Speicher anbieten, als teures Modul-Upgrade sehen, wobei möglicherweise im Gegenzug etwas Rechenleistung ausgetauscht wird oder andere Verbesserungen vorgenommen werden. Zum Beispiel könnten wir eines Tages die Wahl zwischen 256 Kernen ohne eingebauten Speicher oder 128 Kernen mit eingebautem Speicher oder sogar anderen Konfigurationen wie GPU-Teil, CPU-Teil, RAM-Teil haben.

Phyrfox
quelle
Das Hauptproblem bei dieser Antwort ist, dass SoC-Designs für Smartphones tatsächlich RAM enthalten. Diese sind nicht viel teurer, sie sind sogar billiger.
MSalters
@MSalters Mit der Ausnahme, dass sie nicht in den gleichen Chip integriert sind. Die Speicherchips sind separat, getestet und funktionieren ordnungsgemäß. Sie werden lediglich zusammen mit dem Mikroprozessorchip geliefert.
Zahnbürste
2

Fast alle der oben genannten + ein weiteres Problem: die Hitze.

Die DRAM-Zellen sind im wesentlichen undichte Kondensatoren. Und das Dielektrikum ist hier die SiO2-Schicht selbst. Mit steigender Temperatur steigen die Ableitströme proportional an. Diese entladen die DRAM-Zellen viel schneller, was viel schnellere Auffrischungsraten erfordern würde, was die Komplexität erhöhen würde, den Strom erfordern würde und natürlich etwas mehr Wärme hinzufügen würde.

Vasu
quelle
2

Neben den bereits gegebenen Antworten gibt es noch einen weiteren Aspekt: ​​Die Verschwendung aufgrund von Produktionsfehlern:

Angenommen, 1/100 aller CPUs eines bestimmten Modells sind fehlerhaft (in Wirklichkeit ist es natürlich weniger; 1/100 ist einfacher zu berechnen) und 1/100 aller hergestellten RAMs sind fehlerhaft.

Wenn beide Komponenten auf einem einzigen Chip kombiniert würden, hätten 1/100 aller Chips eine defekte CPU und 1/100 aller Chips einen defekten RAM.

Das würde bedeuten:

  • 1 von 10000 Chips hätte sowohl einen defekten RAM als auch eine defekte CPU
  • 99 Chips hätten defekten RAM
  • 99 Chips hätten eine defekte CPU
  • Insgesamt wären 199 von 10000 produzierten Teilen Abfall

Bei der Herstellung separater Chips wird wie folgt gerechnet:

  • 50 von 5000 RAMs sind defekt
  • 50 von 5000 CPUs sind defekt
  • 100 von 10000 produzierten Teilen wären Abfall

Beachten Sie, dass ein GB RAM in der Regel in Form einer aus acht Chips bestehenden Bank erstellt wird. Sie müssen also nicht zwei, sondern 9 Komponenten auf einem Chip kombinieren, wenn Sie RAM und CPU auf demselben Chip platzieren möchten. Dies würde zu ungefähr 865 defekten Teilen von 10000 führen, die in dem einfachen obigen Beispiel hergestellt wurden.

Die "IBM Cell" -CPUs hatten genau dieses Problem. Die "Playstation" -Konsole verwendete Chips, die teilweise defekt waren. Die Playstation-Software wurde so geschrieben, dass die defekten Kerne und SRAMs nicht verwendet wurden.

Martin Rosenau
quelle
1
Aus dem gleichen Grund bot AMD für eine Weile 3-Core-CPUs an. Ich denke, in der Praxis werden die Teile in der Regel vor dem Verpacken auf Chip-Ebene getestet, sodass Ihre Bedenken vor allem bei monolithischen CPU- und Speicherkombinationen bestehen.
Oleksandr R.
Darpa hat einen Preis für eine 50-fache Energieeffizienz erhalten, indem es die Speicherwand mit 3D-SoCs überwunden hat, die im Vergleich zu Intel und Qualcoms Ingenieuren Fantasieland sind, mit der Ausnahme, dass Darpa Darpa ist. monolithic3d.com/blog/… SoCs (System on a Chip) eignen sich am besten für parallele Prozessoren. Dies bedeutet, dass es nicht 2/16, sondern 1000 ds Gruppen gibt.
com.prehensible
1

Es gibt zwei Arten von RAM. Sie sind statischer RAM und dynamischer RAM. Statische Speicher sind sehr schnell, verursachen jedoch höhere Kosten. Währenddessen ist der dynamische RAM im Vergleich zum statischen RAM langsam, im Vergleich zum statischen RAM jedoch kostengünstig.

Cache-Speicher fällt in statischen RAM. Sie können sehen, dass sie in KB- oder MB-Größen geliefert werden. Sie sind schnell. Aber hohe Kosten.

Mohammed Fawzan
quelle
Nicht genau, ja, sie sind schnell, aber das liegt hauptsächlich daran, dass die zurückzulegenden Entfernungsdaten weitaus geringer sind als im DRAM.
AStopher
3
Tatsächlich ist die SRAM-Zelle schneller, weil sie einfacher ist. Es ist eine digitale bistabile Schaltung. Wenn Sie ihn versehentlich auf den Analogwert 0,8 einstellen, wird er durch Bewegen in die stabile Position 1,0 behoben. DRAM hat keine solchen stabilen Zustände. Es bewegt sich nicht von Zwischenzuständen weg . Schlimmer noch, es bewegt sich in Richtung solcher Zustände, weshalb Sie zusätzliche korrigierende "Auffrisch" -Schaltungen benötigen.
MSalters
@MSalters: Die SRAM-Zelle ist NICHT einfacher als eine DRAM-Zelle. Sie haben Recht, dass es viel stabiler ist, was die Verwendung vereinfacht (sowohl hinsichtlich der unterstützenden Schaltkreise als auch der Zeitdiagramme). Aber SRAM-Zellen sind ungefähr sechsmal so viel Schaltkreise pro Bit wie DRAM.
Ben Voigt
1
@BenVoigt: In der Transistorzahl ja - 6T gegen 1T. Aber DRAM hat einen Kondensator, der eine ziemlich merkwürdige Komponente ist. SRAM besteht nur aus miteinander verdrahteten Transistoren.
MSalters
Der Kondensator im DRAM stellt sich auch als Transistor heraus
Ben Voigt
1

Zusätzlich zu den anderen genannten Gründen haben viele Systeme mehr als einen CPU-Kern. Zu Zeiten, in denen Informationen, die im Haupt-DRAM gespeichert sind, mit allen zwischengespeicherten Kopien konsistent sind, haben alle Prozessoren, die nicht über die zwischengespeicherten Informationen verfügen, gleichen Zugriff darauf. Einige Architekturen basieren auf der Annahme, dass jeder CPU-Kern einen bestimmten Adressraum "besitzt", und selbst wenn eine CPU auf Speicher zugreifen kann, der anderen Prozessoren gehört, sind solche Zugriffe viel langsamer als Zugriffe auf ihren eigenen Speicher , aber x86 ist in der Regel nicht so implementiert.

Wenn ein System unter der Annahme entworfen wurde, dass Prozessorkerne bestimmte Adressbereiche besitzen und der Code versuchen sollte, die Verwendung der Adressbereiche anderer Prozessoren zu minimieren, wäre es sinnvoll, dass jeder Prozessorcode eine großzügige Menge an On-Chip-Speicher enthält. Ein solches Design könnte die Zeit verringern, die ein Prozessorkern benötigt, um auf seinen eigenen Speicher zuzugreifen, aber es würde wahrscheinlich die Zeit erhöhen, die er benötigt, um auf den Speicher eines anderen Prozessors zuzugreifen. Wenn das System nicht auf eine solche Annahme ausgelegt ist, werden die Daten wahrscheinlich auf die Prozessoren verteilt, ohne dass berücksichtigt wird, wer sie wann benötigt. Selbst wenn die zusätzliche Zeit für den Datenzugriff von einer anderen CPU (im Vergleich zu einem externen Speichersystem) nur halb so lang war wie die Zeit, die bei einem internen Zugriff eingespart wurde,

Wenn man ein System von Grund auf neu entwerfen würde, um es an die heutigen Technologien anzupassen, könnte eine ungleichmäßige Speicherarchitektur mehr kosten als eine, die es allen Prozessoren ermöglicht, effizient auf den gesamten Speicher zuzugreifen. In Anbetracht der heutigen Software-Designs ist ein externes Speichersystem, das von den Prozessoren gemeinsam genutzt wird, effizienter als der Versuch, Massendatenspeicher in den Prozessoren selbst zu haben.

Superkatze
quelle
2
Uneinheitliche Speicherarchitekturen werden bereits heute verwendet (und sind sogar weit verbreitet). Bei einer CPU mit integrierten Speichercontrollern, die in einem System mit mehreren Prozessoren verwendet werden, sind die im physischen Speicher eines anderen Prozessors gespeicherten Daten weiter entfernt und können mit einer höheren Latenz als im lokal angeschlossenen RAM abgerufen werden. In der Praxis passiert in diesen Systemen, dass die Prozessoren mit zusätzlichen Cache-Ebenen ausgestattet sind und der Kohärenzverkehr teilweise von der Verbindungsstruktur verarbeitet wird. POWER7 und POWER8 sind von diesem Typ.
Oleksandr R.,
1

Während alle vorherigen Antworten richtig sind, um zu verdeutlichen, warum es so schwierig ist, der CPU mehr Speicher hinzuzufügen, ist es auch richtig, dass moderne CPUs ziemlich viel Speicher haben.

Bei Echtzeitoperationen, bei denen deterministische Verzögerungen wichtig sind, ist es nicht ungewöhnlich, den On-Chip-Cache als adressierbaren Speicher für Code und / oder Daten zu verwenden. Der Vorteil ist eine schnelle und konstante Zugriffszeit und der Nachteil ist, dass der On-Chip-Speicher ziemlich begrenzt ist.

Pop-up
quelle
1

Die Probleme, die Sie in Ihrer ursprünglichen Frage beschrieben haben, könnten nur vermieden werden, wenn der gesamte Arbeitsspeicher des Computers in der CPU enthalten wäre. Jeder zusätzliche Speicher, der dem Computer über Steckplätze auf der Hauptplatine hinzugefügt wird, unterliegt denselben von Ihnen beschriebenen Verzögerungen und erfordert Marshalling- und Logiksteuerungsgeräte zwischen der CPU / dem RAM und dem integrierten RAM.

RAM ist billig und wird in der Regel von Benutzern ein- oder zweimal zwischen dem Aufrüsten ihrer CPUs erweitert.

Denken Sie auch daran, dass ein typischer "Fetch" -Aufruf, selbst wenn der RAM mit CPU-Takt läuft, zu einer Anzahl von Leerlauf-Ticks auf der CPU führt.

Die traditionelle Organisation des Arbeitsspeichers auf einer Maschine ist eine Pyramide mit den CPU-Registern an der Spitze, dann Cache, dann RAM, dann Platte. In der Regel weisen Computer mit guter Leistung eine Kombination aus einer angemessenen Taktrate, einer angemessenen Menge an Cache, einer guten Menge an RAM und einer Hochgeschwindigkeitsfestplatte (oder einem Array) auf. In den letzten Jahren erzielte die Disc-Leistung bei den meisten PCs und Discs mit hoher Drehzahl in der Regel die beste Leistungssteigerung. Discs mit Cache und Solid-State-Discs sorgen für eine gute Leistungssteigerung.

Ja, eine Maschine mit vollem RAM auf dem Chip würde in modernen Anwendungen eine gute Leistung erbringen, aber eine Maschine mit etwas RAM auf dem Chip, auf der ein Standardbetriebssystem ausgeführt wird, würde wahrscheinlich nicht die Leistungssteigerung bieten, die Sie vielleicht glauben würden.

Steve Matthews
quelle