Ich versuche ein Bild von Computerbussen zu verstehen

10

In diesem Bild von http://en.kioskea.net/contents/pc/bus.php3 werden die Busse in einem Computer erläutert

Geben Sie hier die Bildbeschreibung ein

  1. Ich frage mich, ob die schwarze Linie von der CPU zur South Bridge auch ein Bus ist. Es ist auf dem Bild nicht benannt, und wie heißt es?
  2. Sind diese kurzen schwarzen Linien, die von LAN, SCSI, ISA, USB, IDE stammen, auch Busse, und wie heißen sie?

    Beachten Sie, dass diese schwarzen Linien, die aus Level 2-Cache, AGP und RAM stammen, im Bild als Prozessorbus, AGP-Bus bzw. Speicherbus bezeichnet werden.

  3. Überschneidet sich die schwarze Linie von der CPU zur South Bridge sowohl mit dem PCI-Bus als auch mit dem Prozessor-Bus?
  4. Wie ist der Datenfluss?

    Ist zum Beispiel mein folgendes Verständnis richtig?

    Von der CPU zum Level 2-Cache ist die Route die schwarze Linie, die von der CPU und dem Prozessorbus stammt.

    Von der CPU zu AGP oder RAM ist die Route die schwarze Linie, die von CPU, North Bridge und AGP-Bus oder Speicherbus stammt.

    Von der CPU zum LAN oder SCSI ist die Route die schwarze Linie, die von der CPU, der North Bridge, dem PCI-Bus stammt, und die schwarze Linie, die vom LAN oder SCSI stammt.

    Von der CPU zu ISA, USB und IDE ist die Route die schwarze Linie, die von CPU, Nordbrücke, Südbrücke stammt, und die schwarze Linie, die von ISA, USB oder IDE stammt.

    Wie sieht der Datenfluss zwischen Nicht-CPU-Komponenten aus?

Vielen Dank!

Tim
quelle

Antworten:

12

Ein Bus ist nur ein Kommunikationsmedium mit folgenden Eigenschaften:

  • Es können mehrere Entitäten damit verbunden werden
  • Wenn eine Entität eine Nachricht an den Bus sendet oder "etwas tut", kann jede andere Entität sie sehen
  • Schlechte Dinge passieren, wenn zwei Entitäten versuchen, genau zur gleichen Zeit zu kommunizieren
  • Ein Protokoll oder ein Regelwerk ist erforderlich, damit alle Komponenten auf dem Bus über ein System verfügen, in dem sie sich abwechseln können. Normalerweise unterscheidet sich dieses Protokoll je nach Zweck und Geschwindigkeit des Busses
  • Es wird eine Art Adressierungsschema verwendet, bei dem Geräte sagen können, wer sie sind und mit wem sie sprechen möchten
  • Schlechte Dinge passieren, wenn mehrere Entitäten dieselbe Adresse haben
  • Zumindest müssen Personen, die im Bus "sprechen" möchten, prüfen, ob Aktivitäten stattfinden, bevor sie versuchen, Daten über den Bus zu senden
  • Entitäten, die im Bus "lauschen" möchten, müssen im Allgemeinen auf ihre eigene Adresse warten und nur die für sie bedeutsamen Daten abrufen

Wenn Sie sich mit Netzwerken auskennen und das meiste davon vertraut klingt, ist das Konzept ziemlich ähnlich.

Die hellblauen Linien repräsentieren einen Bus. Die dunkelblauen Linien repräsentieren, was mit dem Bus verbunden ist.

So beantworten Sie Ihre Fragen:

  1. Sieht für mich so aus, als müsste die CPU den Prozessorbus, die Northbridge und den PCI-Bus durchlaufen, um nach Southbridge zu gelangen.
  2. Ich glaube, sie stellen Verbindungen zu den Bussen dar. Für mich sieht es so aus, als würden die Etiketten die dickeren hellblauen Linien identifizieren. Das Diagramm könnte meiner Meinung nach etwas besser sein. Beachten Sie, dass AGP für "Accelerated Graphics Port " steht - technisch gesehen ist es kein Bus, da dort nicht mehrere Komponenten ins Spiel kommen (einer der Gründe, warum AGP erfunden wurde). Für die Software erscheint es jedoch als ein anderer PCI-Bus.
  3. Ich glaube schon. IIRC-Gerätetreiber müssen programmgesteuert mit dem PCI-Bus interagieren, um auf Southbridge-Komponenten zugreifen zu können.
  4. Siehe meinen ersten Absatz. Es ist möglich, dass ein Bus mit einem anderen Bus verbunden wird und die Verantwortung für die Weiterleitung von Daten über diesen Bus übernimmt. Dies sind "PCI-PCI-Bridge" -Geräte, wenn Sie sie jemals im Windows-Geräte-Manager oder im Windows-Geräte-Manager gesehen haben lspci.
LawrenceC
quelle
16

Hier ist ein Bild von Ars Technica , das möglicherweise klarer ist

Geben Sie hier die Bildbeschreibung ein

RedGrittyBrick
quelle
2

In jedem Computer gibt es nur 3 "Busse": Daten, Adresse und Steuerung. Das ist es. Das ist ein sehr vereinfachter Blick von oben nach unten. Daten- und Adressbusse sind ziemlich offensichtlich und relativ einfach. Der Steuerbus kann jedoch sehr kompliziert werden, da er so ziemlich alles andere beinhaltet, einschließlich (und wahrscheinlich besonders) des Timings.

Was ich hier sehe, ist ein grundlegendes Systemdiagramm. Bestimmte Dinge im System sind für bestimmte Ressourcen / Prozesse verantwortlich. Wie zu erwarten ist, befindet sich die CPU ganz oben auf dem Haufen und ist für so ziemlich alles verantwortlich. Direkt darunter (in der Hierarchie) befindet sich die Nordbrücke, die Video und RAM direkt steuert. Die Nordbrücke steuert indirekt die Südbrücke über den PCI- "Bus" sowie LAN- und SCSI-Systeme. Die Südbrücke steuert jedoch direkt ISA-, USB- und IDE-Geräte. Wenn Sie also Daten auf einem IDE-Laufwerk abrufen möchten, durchläuft Ihre CPU die Nordbrücke, die diese dann über den PCI-Bus anfordert, wo die Südbrücke wiederum die IDE-Ressource erhält, um sie bereitzustellen (oder genauer gesagt, die Südbrücke teilt dies mit das IDE-Gerät, wann die Informationen auf dem Adress- / Datenbus platziert werden sollen (über den die CPU wirklich die Kontrolle hat).

Sie machen das wahrscheinlich schwieriger als es sein muss. Die CPU ist immer noch das Herz eines jeden Computers. Daher ist Ihr Diagramm ein schreckliches Beispiel für einen der tatsächlich verwendeten "Busse". Tatsächlich kann das gesamte Diagramm als Beschreibung des Steuerbusses betrachtet werden - und nur des Steuerbusses. Es ist ein ausgezeichnetes Bild davon, was bestimmte Subsysteme tun und was bestimmte Ressourcen direkt steuert, aber es gibt absolut keinen Hinweis darauf, was tatsächlich fest verdrahtet ist oder wie ein ganzer Computer zumindest in Bezug auf die Busstruktur wirklich funktioniert.

Anono
quelle
1
  1. Die Northbridge verbindet die Southbridge mit der CPU, sodass kein direkter Bus zwischen der CPU und dem SB besteht.
  2. Die meisten dieser "Busse" haben ihre eigenen selbstbeschreibenden Namen, wie ISA-Bus, PCI-Bus usw. Andere sind weniger offensichtlich, wie der LPC-Bus, der die meisten Geräte mit geringer Bandbreite mit dem SB und damit der CPU verbindet (z der Super I / O-Controller, das BIOS usw.).
  3. Nein, dieser "Bus" existiert nicht wie beschrieben. Im Szenario einer Kommunikation mit den Geräten in der unteren Hälfte des Diagramms müssen die Daten jedoch über den "Bus" von der CPU zur Northbridge geleitet werden (ich zitiere den Bus, weil der NB möglicherweise in die CPU integriert ist) und dann wieder über einen typischen PCI-Bus zum SB und umgekehrt für die Hin- und Rückfahrt.
  4. Es gibt keinen einfachen Weg, um diese Frage zu beantworten, da Prozessoren heutzutage immer komplexer werden und daher unterschiedliche Ansätze für den Speicher-, Bus- und Cache-Zugriff verfolgen. Die meisten modernen Prozessoren verfügen über integrierte Speichercontroller, sodass für DMA keine Gespräche mit der Northbridge erforderlich sind. Zum Beispiel kommunizieren Intels neue Prozessoren mit dem QPI-Bus mit einem Chip, der einer herkömmlichen Northbridge ähnelt, außer dass ihm ein Speichercontroller fehlt, und kommunizieren mit der CPU über den QPI-Bus, der den herkömmlichen Front-Side-Bus [FSB] ersetzt.

Ich denke, dieses Bild aus dem Wiki ist möglicherweise ein nützlicheres mneonmisches Gerät, von dem Sie lernen können: http://upload.wikimedia.org/wikipedia/commons/b/bd/Motherboard_diagram.svg (SVG-Dateien können nicht eingebettet werden).

Garrett
quelle
Vielen Dank! (1) "Die meisten modernen Prozessoren verfügen über integrierte Speichercontroller, sodass für DMA keine Gespräche mit der Northbridge erforderlich sind." Mit "DMA" meinen Sie CPU-Zugriffsspeicher? Ich denke, es bedeutet ein Gerät, das direkt ohne CPU dazwischen auf den Speicher zugreift. siehe en.wikipedia.org/wiki/Direct_memory_access .
Tim
(2) "Daten müssen über den" Bus "von der CPU zur Northbridge (ich zitiere Bus, weil der NB in ​​die CPU integriert sein kann) und dann wieder über einen typischen PCI-Bus zum SB geleitet werden". Im Wikipedia-Bild wird die Verbindung zwischen NB und SB als interner Bus bezeichnet. Ich frage mich, ob die Kommunikation zwischen NB und SB nicht über PCI dazwischen erfolgt.
Tim