CU oder ALU? Was kommuniziert mit dem Gedächtnis?

Ich habe verschiedene Bücher, die verschiedene Dinge sagen. Sind Adressbus und Datenbus mit der CU oder der ALU verbunden? Der Steuerbus ist mit der CU verbunden, richtig?

Antworten (2)

Die CU (Control Unit) ist für den gesamten Datentransport zur und von der ALU verantwortlich. Die ALU sieht keine Busse, sie sieht zwei N-Bit breite Eingänge und ebenso einen Ausgang. Die CU muss sicherstellen, dass beide Eingänge der ALU mit den erforderlichen Daten geladen (Latches) werden. Wenn die ALU die Operation ausgeführt hat, leitet die CU die Ausgabe über den internen (und möglicherweise externen) Datenbus zum Register oder RAM.

Ja, aber sendet und empfängt die ALU unter der Steuerung der CU Daten direkt zum und vom Speicher oder muss die CU als Vermittler zwischen der ALU und dem Speicher fungieren?
Die ALU hat keine Ahnung, wie die Daten dorthin gelangen oder wohin sie gehen, sie kann nur die logische Operation ausführen. Es kennt keine Busse, Ports oder Latches. Das ist alles CU-Geschäft. Die CU leitet die Daten an die ALU und zurück an den Speicher.
Richtig, also die Busse sind an der CU angeschlossen, die dann die Daten an die ALU weiterleitet und dann die Ergebnisse wieder an die Busse weiterleitet.
Nein. Die Daten gehen nicht durch die CU, da Daten- und Steuerpfad getrennt sind.
Adressbus und Datenbus gehen also zur ALU? Es sind nur die Steuerleitungen, die zur CU gehen?
@mtanti - Ja. Es gibt Latches zum Halten des Inhalts von Eingang A der ALU, während die CU den Bus verwendet, um den Inhalt für Eingang B abzurufen. Wenn die ALU-Operation abgeschlossen ist, lässt die CU zu, dass die Ausgabe auf dem Datenbus in einem Register von zwischengespeichert wird ein RAM-Speicherort.
Dann sind das Memory Address Register und das Memory Data Register in der ALU?
@mtanti - Nein. Wie ich schon sagte, ist es der ALU egal, woher die Daten kommen und wohin sie gehen. Er sieht zum Beispiel nur zwei Zahlen, die er addieren muss. Das Speicheradressenregister und das Speicherdatenregister sind Teil der Befehlsabruflogik, die von der CU gesteuert wird. Die ALU sieht NUR ihre zwei Eingänge und 1 Ausgang, das ist alles.
Wo befinden sich dann diese Register? Wenn sie sich in der CU befinden, bedeutet dies, dass die CU die Daten aus dem Speicher empfängt und sie dann an die ALU weiterleitet und umgekehrt.
@mtanti - Ich würde nicht genau "innerhalb der CU" sagen, obwohl sich natürlich alles auf demselben Chip befindet. Aber es gibt Zwischenspeicher, um diese Daten zu halten, und diese werden von der CU gesteuert. Die CU wird grundsätzlich von der Uhr angesteuert und erzeugt alle Arten von Signalen, hauptsächlich um Daten und Adressen auf ihren Bussen freizugeben, und verriegelt, um Daten einzufrieren, bevor die nächsten abgerufen werden.

Meiner Meinung nach ist es eine philosophische Frage und keine pragmatische Architekturfrage. Dies ist eine Frage, die vielleicht in einem Universitätskurs gestellt wird, aber nicht von einem echten CPU-Designer gestellt wird.

Ich habe mehrere CPUs in VHDL entworfen. Diese reichten von einfachen Bit-Slice-DSPs über mehrere 8-Bit-MCU-Klone bis hin zu einem vollständigen 32-Bit-MIPS-R3000-Klon. In jedem Fall war die Trennlinie zwischen CU und ALU sehr verschwommen. Tatsächlich war die ALU in vielen Fällen keine eigenständige Einheit und mehr "über die Logik verteilt".

Meine philosophische Antwort auf Ihre Frage ist, dass die Adress- und Datenbusse mit der ALU verbunden sind, die verschiedenen Pfade jedoch von der CU gesteuert werden. Aber diese Antwort nützt niemandem außerhalb eines Universitätsunterrichts.

Sie haben recht, das ist eine akademische Frage, keine praktische. Ich frage hier nur, weil es keine bessere Stackexchange-Site dafür gibt.