Frage

alt text

Nun, ich kann nicht den obigen Diagramm der Von-Neumann-Architektur verstehen [aus Wikipedia zitiert] und nicht einmal sicher, ob es richtig ist. Einige offensichtliche Zweifel, dass ich -

Wie kann ALU kommunizieren mit Memory? Ist das nicht soll CUs Job?

sein

Wie ist Speicher einen Teil der ALU?

Und: Was ist genau die Aufgabe des Akkus?

War es hilfreich?

Lösung

Geht man von der Diagramm des IAS Computer (die EDVAC ziemlich ähnlich sein sollte der Computer von Neumann, schrieb über) die Steuereinheit liefert Adressen (Register MAR) und steuert die Bustransaktionen mit Signalen, wie beispielsweise AS, R / W *. Auf der anderen Seite wird ALU mit dem Datenbus verbunden ist (Register MDR): es empfängt die Daten aus dem Speicher, und speichert die Ergebnisse zurück. Das Diagramm zeigt auch, dass ALU die Anweisungen und leitet sie an die CU (Register IBR) empfängt.

Um zum Beispiel die Steuereinheit annehmen geholt nur die Anweisung ADD $1234. Dann wird die Verarbeitung geht wie folgt vor:

  1. CU setzt $1234 auf den Adreßbus und initiiert einen Lesezyklus
  2. wird der Operand durch ALU empfängt (Register MDR) aufgelöst und mit Akkumulator (Register AC)
  3. das Ergebnis der Addition schließlich in den Akkumulator gespeichert wird.

Antworten auf Ihre Fragen:

  1. ALU empfängt die Daten aus dem Speicher, die Vorgänge und speichert das Ergebnis zurück. Zu der Zeit werden alle Daten im Speicher abgelegt wurden (es waren keine Universalregister), daher war es logisch, MDR in ALU zu setzen, was bedeutet, dass ALU soll mit dem Datenbus verbunden werden.
  2. Der IAS Computer wurde so gestaltet, dass ein ALU-Eingang und der ALU-Ausgang an den Akkumulator fest verdrahtet sind. Daher war es logisch, Platz Akkumulator in ALU.
  3. Der Speicher ist als ein Ort konzipiert Zwischenergebnisse zu speichern, weil Anweisungen, die mit mehr als einem Speicheroperanden schwieriger war zu implementieren.

Schließlich glaube ich, diese Diskussion rein historisch. Es gibt keinen besonderen Grund, den MDR mit ALU zu bevorzugen Zuordnung anstatt CU. Es war nur, dass von Neumann, so denken passiert ist, als er ein Papier über EDVAC zu schreiben. Um die Geschichte komplett zu machen, sagt Wikipedia, dass EDVAC tatsächlich von Eckert und Mauchly entwickelt wurde, während von Neumann nur, dass Beratung und Schreiben.

Andere Tipps

Der Akkumulator Register, in dem das Ergebnis der arithmetischen Operation wird tempor gespeichert. Es ist schneller als direkt auf den Hauptspeicher verwendet wird. Da es arithmetische Ergebnisse speichert macht es Sinn, einen Teil der ALU zu sein.

Die Steuereinheit ist wie ein Koordinator, der zu den anderen Komponenten erzählt dies und das zu tun. Aber es bietet nicht die Mittel, wie es zu tun, so ist dies, warum die ALU Notwendigkeit direclty mit dem Speicher kommunizieren kann.

Nun, die ALU ändert die Flag-Register, wenn etwas tut, das ist, warum es mit dem Speicher verbunden ist (Flags sind nicht in der CU und in den ALU weder, und da diese die einzigen Komponenten, die angezeigt werden ..). Und die Speicher speichert Daten vorübergehend die ALU warten, sie zu verarbeiten. Es ist direkt mit der ALU da dieses Register wurde gedacht, es mit seinen Berechnungen zu unterstützen, ebenso wie die ECX-Register mit Zählerschaltungen verbunden ist. Natürlich ist möglich, ECX, EDX hinzufügen, aber langsamer. Die Auswahl der Quelle und die Zielregister ist sehr schwierig, aufgrund der zusätzlichen Schaltungen in einer CPU zu implementieren benötigt und es wurde vor kurzem (relativ) archiviert. Das Bild ist ziemlich alt (ssegvic ist richtig!), Weil es zeigt, dass die Eingabe / Ausgabe ist nur möglich, den Speicher verwenden. Meiner Meinung nach ist dies deutlicher:

Die ALU werden an dem internen Bus verbunden, aber das bedeutet nicht, es mit allem, was mit ihm verbunden kommunizieren. Eine letzte Sache:. Suche nach besseren Bilder bemerkte ich, dass die ALU nicht immer mit dem Speicher verbunden ist, in einigen von ihnen nur mit der CU verbunden ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top