Von Neumann Architektur und Busse :)

Stroiner

PC-Selbstbauer(in)
Hallo zusammen,

ich schreibe nächste Woche eine Klausur in Informatik und habe da irgendwie noch ein paar Fragen.
1. Bei der von Neumann Architektur besteht ein Flaschenhals, wenn ALU und CU gleichzeitig auf den Bus zugreifen.
Wieso ist das bei einer moderneren Bus Architektur nicht mehr so?
2. Es gibt ja den Systembus, der soweit ich das verstanden habe den Datenbus, Steuerbus und Adressbus beinhaltet. Also alle drei Busse in einem, ja?
Dann gibt es einen internen, externen und Peripheriebus.
Jetzt ist meine Frage: Ist der Systembus einer der letztgenannten Busse oder eine eigene Kategorie?
 
Man muss sich vorstellen, dass von Neumann seine Architektur in einer Zeit entwickelt hat, in der es nur Verarbeitungen von Lochkarten oder über fest installierte Maschinenprogramme gab. Der riesige Vorteil ist klar: es konnte von da an Software-Änderungen und Programmerweiterungen usw geben.
Wichtig bei von Neumann ist: es gibt dabei nur einen Bus, sowohl für Programmbefehle als auch für Daten, und die Abarbeitung bei der VNA erfolgt sequentiell (nacheinander). Nichts läuft parallel. Man kann sich vorstellen, wie langsam dann alles wird, insbesondere die Zeit für die Rechenoperationen (Daten bereitzustellen, geht schneller). Dann jedoch wurden die CPUs schneller und die Datenübertragungen hinkten hinterher. Ein Flaschenhals (Nadelöhr) ist dieser eine gemeinsame Bus in beiden Fällen.
Eine erste Entwicklung, die diesen Nachteil schon mal mildert, war die Trennung von Befehlsspeicher und Datenspeicher.
In dem Wiki-Artikel über die "Von-Neumann-Architektur" steht: Der Begriff selbst, „Von-Neumann-Flaschenhals“ (eng. von neumann bottleneck), wurde von John Backus geprägt, welcher ihn in seiner 1977 ACM Turing Award Rede einführte. Mehr findest du in dem Artikel und bei den angegebenen Links: Von-Neumann-Architektur
 
Bei Modernen Prozessoren gibt es etliche Maßnahmen um den Von-Neumann Flaschenhals zu überwinden:
-Cache Speicher im Allgemeinen
-Cache Speicher im Harvard Design (meist L1 Cache)
-Spekulative Befehlsausführung , Out of Order

Auch moderne Prozessoren sind aber meist letztendlich nur über einen Bus, der gleichzeitig für Daten und Adressen genutzt wird mit dem Hauptspeicher und Peripheriegeräten verbunden, dieser wird auch meist zur Kopplung der Kerne untereinander genutzt. Dieser Prozessorinterne Bus muss natürlich sehr schnell sein, der "Ring Bus" aktueller Intel Prozessoren schafft ~100GB/s*Anzahl der Kerne. Im "System Agent" werden die internen Adressen ausgewertet und die Daten werden entsprechend an den Chipsatz, den PCIe Controller oder natürlich den RAM Controller geschickt oder von dort empfangen.
 
Zurück