Ich habe hier eine Motherboard-Architektur gefunden:
Dies scheint das typische Layout von Motherboards zu sein. EDIT: Nun, anscheinend ist es nicht mehr so typisch.
Warum verbindet sich die CPU nur mit 1 Bus? Dieser Front-Side-Bus sieht nach einem großen Engpass aus. Wäre es nicht besser, 2 oder 3 Busse direkt in die CPU zu geben?
Ich stelle mir einen Bus für den Arbeitsspeicher, einen für die Grafikkarte und einen für eine Art Brücke zur Festplatte, zu den USB-Anschlüssen und zu allem anderen vor. Der Grund, warum ich es auf diese Weise aufgeteilt habe, ist, dass die Datenraten auf der Festplatte im Vergleich zum Speicher langsam sind.
Gibt es etwas sehr Schwieriges daran, es so zu machen? Ich sehe nicht ein, wie die Kosten dafür anfallen könnten, da die vorhandenen Diagramme bereits nicht weniger als sieben Busse enthalten. Tatsächlich könnten wir durch den Einsatz von direkteren Bussen die Gesamtzahl der Busse und möglicherweise sogar eine der Brücken reduzieren.
Also stimmt etwas damit nicht? Gibt es irgendwo einen großen Nachteil? Das Einzige, woran ich denken kann, ist vielleicht die größere Komplexität von CPU und Kernel. Ich glaube, dass diese Engpass-Bus-Architektur so war, wie sie früher gemacht wurde, als die Dinge weniger anspruchsvoll waren, und dass das Design für die Standardisierung gleich bleibt.
EDIT: Ich habe vergessen, den Watchdog Monitor zu erwähnen . Ich weiß, ich habe es in einigen Diagrammen gesehen. Vermutlich würde ein Engpassbus dem Watchdog die Überwachung erleichtern. Könnte das etwas damit zu tun haben?
Antworten:
Der Ansatz, den Sie zeigen, ist eine ziemlich alte Topologie für Motherboards - er ist älter als PCIe, was ihn wirklich irgendwann in die 00er zurückversetzt. Der Grund liegt hauptsächlich in Integrationsschwierigkeiten.
Grundsätzlich gab es vor 15 Jahren aus kommerzieller Sicht praktisch keine Technologie, um alles auf einem einzigen Werkzeug zu integrieren, und dies war unglaublich schwierig. Alles zu integrieren würde zu sehr großen Siliziumchips führen, was wiederum zu einer viel geringeren Ausbeute führt. Die Ausbeute ist im Wesentlichen, wie viele Chips Sie aufgrund von Defekten auf einem Wafer verlieren - je größer der Chip, desto höher die Wahrscheinlichkeit eines Defekts.
Um dem entgegenzuwirken, teilen Sie das Design einfach in mehrere Chips auf - bei Motherboards waren dies letztendlich CPU, North Bridge und South Bridge. Die CPU ist nur auf den Prozessor mit einer Hochgeschwindigkeitsverbindung beschränkt (nach meiner Erinnerung als Front-Side-Bus bezeichnet). Sie haben dann die North Bridge, die den Speichercontroller, die Grafikverbindung (z. B. AGP, eine alte Technologie in Bezug auf Computer) und eine weitere langsamere Verbindung zur South Bridge integriert. Die South Bridge wurde für Erweiterungskarten, Festplatten, CD-Laufwerke, Audio usw. verwendet.
In den letzten 20 Jahren wurde es möglich, Halbleiter an immer kleineren Prozessknoten mit immer höherer Zuverlässigkeit herzustellen und alles auf einem einzigen Chip zu integrieren. Kleinere Transistoren bedeuten eine höhere Dichte, sodass Sie mehr hineinpassen können, und verbesserte Herstellungsprozesse bedeuten eine höhere Ausbeute. Tatsächlich ist es nicht nur kostengünstiger, sondern es ist auch von entscheidender Bedeutung, die Geschwindigkeitssteigerungen in modernen Computern beizubehalten.
Wie Sie richtig hervorheben, wird es zu einem Engpass, wenn eine Verbindung zu einer Nordbrücke besteht. Wenn Sie alles in die CPU integrieren können, einschließlich des PCIe Root Complex und des Systemspeicher-Controllers, haben Sie plötzlich eine extrem schnelle Verbindung zwischen den wichtigsten Geräten für Grafik und Computer - auf der Platine sprechen Sie möglicherweise über Geschwindigkeiten in der Größenordnung von Gbit / s Mit dem Würfel können Sie Geschwindigkeiten in der Größenordnung von Tbit / s erreichen!
Diese neue Topologie spiegelt sich in diesem Diagramm wider:
Bildquelle
Wie Sie sehen, sind in diesem Fall sowohl die Grafik- als auch die Speicher-Controller auf dem CPU-Chip integriert. Während Sie immer noch eine Verbindung zu einem einzigen Chipsatz haben, der aus einigen Teilen der Nordbrücke und der Südbrücke (dem Chipsatz im Diagramm) besteht, ist dies heutzutage eine unglaublich schnelle Verbindung - vielleicht 100 + Gbit / s. Noch langsamer als auf dem Würfel, aber viel schneller als die alten Frontbusse.
Warum nicht einfach alles integrieren? Nun, Motherboard-Hersteller wollen immer noch eine gewisse Anpassbarkeit - wie viele PCIe-Steckplätze, wie viele SATA-Verbindungen, welcher Audio-Controller usw.
Tatsächlich integrieren einige mobile Prozessoren noch mehr in den CPU-Chip - denken Sie an Single-Board-Computer mit ARM-Prozessor-Varianten. In diesem Fall können Hersteller, da ARM das CPU-Design vermietet, ihre Dies nach Belieben anpassen und alle gewünschten Controller / Schnittstellen integrieren.
quelle
on the die you can achieve speeds on the order of Tbps!
Yikes , beginnt das nicht, die Fähigkeit der CPU zu übertreffen, sie schnell genug zu verarbeiten?Ich kann nicht sagen, dass ich ein Experte für Computerarchitektur bin, aber ich werde versuchen, Ihre Fragen zu beantworten.
Wie Tom sagte, ist dies nicht mehr wahr. Die meisten modernen CPUs verfügen über eine integrierte Northbridge. Die Southbridge ist normalerweise entweder integriert oder wird durch eine neue Architektur überflüssig. Intels Chipsätze "ersetzen" die Southbridge durch den Platform Controller Hub, der über einen DMI-Bus direkt mit der CPU kommuniziert.
Breite (64-Bit) Busse sind teuer, sie erfordern eine große Anzahl von Bustransceivern und viele E / A-Pins. Die einzigen Geräte, die einen riesigen, schnellen Bus benötigen, sind die Grafikkarte und der RAM. Alles andere (SATA, PCI, USB, seriell usw.) ist vergleichsweise langsam und es wird nicht ständig darauf zugegriffen. Deshalb werden in der obigen Architektur alle diese "langsameren" Peripheriegeräte über die Southbridge als ein einziges Busgerät zusammengefasst: Der Prozessor möchte nicht jede kleine Bustransaktion entscheiden müssen, so dass alle langsamen / seltenen Bustransaktionen zusammengefasst werden können und wird von der Southbridge verwaltet, die sich dann mit viel gemächlicherer Geschwindigkeit mit den anderen Peripheriegeräten verbindet.
Nun ist es wichtig zu erwähnen, dass, wenn ich oben sage, dass SATA / PCI / USB / seriell "langsam" sind, dies hauptsächlich ein historischer Punkt ist und heute weniger wahr wird. Mit der Einführung von SSDs über Spinny Disks und schnelle PCIe-Peripheriegeräte sowie USB 3.0, Thunderbolt und möglicherweise 10G-Ethernet (bald) gewinnt die "langsame" Peripheriebandbreite schnell an Bedeutung. In der Vergangenheit war der Bus zwischen der Northbridge und der Southbridge kein Flaschenhals, aber jetzt stimmt das nicht mehr. Ja, Architekturen bewegen sich zu mehr Bussen, die direkt an die CPU angeschlossen sind.
Es wären mehr Busse für den Prozessor zu verwalten und mehr Prozessor-Silizium, um mit Bussen umzugehen. Welches ist teuer. Im obigen Diagramm sind nicht alle Busse gleich. Der FSB schreit schnell, der LPC nicht. Schnelle Busse erfordern schnelles Silizium, langsame Busse nicht. Wenn Sie also langsame Busse von der CPU auf einen anderen Chip verschieben können, wird Ihr Leben einfacher.
Wie oben erwähnt, werden jedoch mit der zunehmenden Beliebtheit von Geräten mit hoher Bandbreite immer mehr Busse direkt mit dem Prozessor verbunden, insbesondere in SoC / stärker integrierten Architekturen. Indem immer mehr Controller auf den CPU-Chip gesetzt werden, ist es einfacher, eine sehr hohe Bandbreite zu erreichen.
Nein, das macht eigentlich kein Wachhund. Ein Watchdog ist einfach, verschiedene Dinge neu zu starten, wenn / wenn sie abstürzen; es betrachtet nicht wirklich alles, was sich über den Bus bewegt (es ist weitaus weniger raffiniert!).
quelle
Fast buses require fast silicon, slow buses don't
Was genau bedeutet schnelles Silizium? Hochreines Silizium? Oder sagen Sie, dass langsame Busse ein anderes Element als Silizium verwenden können? So oder so dachte ich, Silizium sei ein ziemlich billiges Material. Interessantes Stück über den Wachhund. Ich könnte eine verwandte Frage dazu stellen.Die Anzahl der Busse, mit denen eine CPU direkt verbunden wird, ist im Allgemeinen auf die Anzahl der unterschiedlichen Teile der CPU beschränkt, die gleichzeitig auf Dinge zugreifen können. Insbesondere in der Welt der eingebetteten Prozessoren und DSPs ist es nicht ungewöhnlich, dass eine CPU einen Bus für Programme und einen Bus für Daten hat und beide gleichzeitig arbeiten können. Ein typischer Einprozessor profitiert jedoch nur vom Abrufen eines Befehls pro Befehlszyklus und kann nur auf einen Datenspeicherplatz pro Befehlszyklus zugreifen, so dass das Überschreiten eines Programmspeicherbusses und eines Programmspeicherbusses keinen großen Nutzen bringt Datenspeicher-Bus. Damit bestimmte Arten von Berechnungen für Daten ausgeführt werden können, die aus zwei verschiedenen Streams abgerufen wurden,
Bei Prozessoren mit mehreren Ausführungseinheiten kann es hilfreich sein, für jede einen eigenen Bus zu haben, damit bei mehreren "externen" Buseinheiten, die Dinge von verschiedenen "externen" Bussen abrufen müssen, dies ohne Störung möglich ist. Es sei denn, es gibt einen logischen Grund, warum auf die Dinge, auf die von verschiedenen Ausführungseinheiten zugegriffen wird, über verschiedene Busse außerhalb der CPU zugegriffen werden kann, wenn jedoch separate Busse von der CPU in eine Arbitrierungseinheit eingespeist werden, die jeweils nur eine Anforderung an a weiterleiten kann Ein bestimmtes externes Gerät hilft nichts. Busse sind teuer, daher ist es im Allgemeinen billiger, zwei Ausführungseinheiten auf einem Bus zu sitzen, als separate Busse zu verwenden. Wenn die Verwendung separater Busse eine erhebliche Leistungsverbesserung ermöglicht, kann dies die Kosten rechtfertigen, ansonsten jedoch Ressourcen (Chipfläche usw.).
quelle
Berücksichtigen Sie die Anzahl der Pins, die in den CPU-Paketen erforderlich sind, um mehrere breite Busse zu haben. Zum Beispiel acht CPU-Kerne mit jeweils einem 64-Bit-Datenbus und verschiedenen anderen Pins für andere Zwecke. Gibt es heute CPU-Pakete mit vielleicht 800 Pins?
quelle