Wird ALU für alle Anweisungen verwendet?

836
PcAF

Auf Wikipedia-Seite über Von Neumann Architecture befindet sich dieses Bild. Es gibt viele ähnliche Bilder wie diese. (In vielen Artikeln über Von Neumann Architecture ist nur das ALU-Programm ausgeführt.) Es gibt 2 Pfeile von und zu ALU (I / O) und keine Pfeile von I / O zur Steuereinheit. (Auf einigen Bildern sind Pfeile dargestellt, die den Datenbus vom Speicher nur zur ALU darstellen). Das verwirrt mich. Ich verstehe, dass in der CPU eine Control-Unit ist, die die Abrufanweisung ausführt, und ihre Ressourcen zur Ausführung verwendet. Wenn zum Beispiel ein Befehl vorhanden ist, der nur Daten von einem Standort an einen anderen Ort (mov) kopiert, oder ein Befehl, der dazu führt, dass die CPU ihren Anweisungszeiger auf den angegebenen Wert (jmp) oder IRQ setzt, wird keine ALU verwendet. Ich denke, dass die Von-Neumann-Architektur nur auf Computern angewendet wurde, die nur mathematische Operationen ausführten, so dass sowohl die Eingabe als auch die Ausgabe nur Zahlen darstellten. und der Eingang konnte keine Änderungen im Speicher vornehmen (da er nur mit der ALU verbunden war). Moderne Computerarchitektur hat also nur geerbt, dass Befehle und Daten im selben Speicher abgelegt werden und die CPU enthält eine Control Unit, einige Register und ALU (auch dies ist nur eine grundlegende, moderne CPU enthält mehr als diese). Habe ich recht?

1
Ja, in einem so einfachen Modell wie von neumann wird jede Anweisung von der ALU ausgeführt. Ich denke, die Quelle Ihrer Verwirrung ist, dass die Eingabe- und Ausgabe-Register Register sind und die Anforderung, das Eingabe-Register zu lesen, selbst eine Anweisung ist. Wenn also nur Befehle mit den Eingabe- / Ausgabe-Registern interagieren, müssen sie nur von der ALU verwendet werden. Die CU holt die ALU zu "IN" oder "OUT" oder "STO" oder "LDA" und befiehlt ihnen, die ALU führt sie jedoch aus. Frank Thomas vor 9 Jahren 0
Ich verstehe nicht Warum, wenn nur Anweisungen mit E / A interagieren, müssen nur ALU sie verwenden? PcAF vor 9 Jahren 0
Die CU holt die Anweisung "IN" decodiert sie auf 500 und sendet sie an die ALU. Die ALU liest die Eingabe und legt sie im Rechnerregister ab. Dazu brauchte die CU keinen Zugriff auf das Eingangsregister, es musste lediglich der Befehl abgerufen und dekodiert werden. Die ALU hat die Daten tatsächlich verschoben. Als nächstes ruft die CU die Anweisung "STO 99" ab, decodiert sie zu 299 und sendet sie an die ALU. Die ALU nimmt den Wert in das Rechnerregister und legt ihn in mem addr 99 ab. Als nächstes holt 'add 001' die ALU das Rechnerregister. last 'OUT' bewirkt, dass die ALU die Berechnungsdatei nach außen kopiert. Frank Thomas vor 9 Jahren 0
Beachten Sie, dass sich die tatsächliche Eingabe in LMC außerhalb des Bildes befindet, das Sie gerade betrachten, genauso wie das Laden der Anweisungen in den Arbeitsspeicher. Weder die CU noch die ALU sind an diesem Prozess beteiligt. Beachten Sie auch, dass der Befehlszeiger innerhalb der ALU verwaltet wird, sodass Anweisungen, die den Programmfluss steuern, auch von ihm ausgeführt werden. Frank Thomas vor 9 Jahren 0
Vielen Dank. Aber wir reden hier von diesen alten Computern, die nur mathematische Operationen ausgeführt haben. Aber in modernen Computern führt ALU nicht alle Anweisungen aus oder ja? PcAF vor 9 Jahren 0
Der LMC ist nichts Vergleichbares mit echten Modellen. Sehen Sie sich diese wesentlich komplexere Architektur für das Intel 8008-Modell von 1972 an: https://en.wikipedia.org/wiki/File:Intel_8008_arch.svg. Es gibt wirklich keine exakte Parallele für die ALU der LMC in modernen Systemen, da ihre Verantwortlichkeiten auf zahlreiche Subsysteme verteilt sind und so konzipiert sind, dass sie mehrere Threads gleichzeitig ausführen. Frank Thomas vor 9 Jahren 0
@FrankThomas Die Antwort auf diese Frage sollte also lauten: JA für EXACT von Neumann Architectore, NEIN für moderne CPUs, denn ALU führt dort nur Arithmetik- und Logikoperationen durch. Habe ich recht? PcAF vor 9 Jahren 1
so ziemlich, aber ich würde Ihre zweite Behauptung als "Die Arbeit der ALU in einfachen Modellen wie LMC" angeben, wäre für eine moderne reale CPU viel zu komplex und zu unflexibel, so dass Operationen, die mit der Verarbeitung von Algorithmic Logic zusammenhängen, koordiniert sind durchgeführt von vielen verschiedenen Komponenten mit unterschiedlichen Beziehungen zueinander ". Frank Thomas vor 9 Jahren 0

0 Antworten auf die Frage