Prozessor dem Schaltplan zuordnen


11

Ich bin ein Softwareentwickler (der Hochsprachen wie .NET, C, C ++ usw. verwendet) und versuche zu verstehen, wie Computer auf einer niedrigeren Ebene funktionieren.

Ich bin mit diesem Diagramm vertraut:

Ich versuche, einen umfassenden Einblick zu erhalten, wie das Diagramm in der Verknüpfung einem Schaltplan wie diesem zugeordnet wird:

Schauen Sie sich zum Beispiel die Assembler-Anweisung an:

ADD 1,2

Ich versuche zu verstehen, wie der Prozessor '3' als Ausgabe erzeugt. Mir ist klar, dass diese Frage in einfachen Worten schwer zu beantworten sein kann. Wenn ja, dann würde ein Link helfen, vielleicht zu einem Buch.


In Bezug auf das erste Diagramm, das Sie veröffentlicht haben, sind die Details, die Sie für die eigentliche Arithmetik benötigen, alle in dem großen Block mit der Bezeichnung "ALU" verborgen: Jeder zweite Block in diesem Diagramm ist nur dazu da, 1,2 zu erhalten und der ALU "hinzuzufügen" und das Ergebnis wieder raus. Wenn Sie das wissen, können Sie anfangen zu lesen, wie die ALU funktioniert, wenn Sie danach gefragt haben.
Brian Drummond

5
Ihr erstes Diagramm ist der Z80-CPU im zweiten Diagramm zugeordnet.
Starblue

Antworten:


7

Das Problem ist, dass Sie, um zu verstehen, wie der Computer auf 1 + 2 = 3 kommt, ungefähr 2 Ebenen tiefer verstehen müssen, als Sie gegangen sind.

Etwa ein Computer ist (in Bezug auf die Studienbereiche) so organisiert, von der höchsten Abstraktionsebene bis zur physischsten Realität:

  1. Anwendungssoftware
  2. Virtuelle Maschine
  3. Betriebssystem
  4. BIOS
  5. Eingebettete Systeme
  6. IP-Blöcke (Untereinheiten / Peripheriegeräte)
  7. Logische Blöcke
  8. Gate-Level
  9. Transistorpegel
  10. Halbleiter
  11. Gerätephysik

Um richtig zu verstehen, warum der Computer 2 + 1 = 3 produzieren kann, müssen Sie zuerst entscheiden, was Sie bereit sind, "im Glauben" zu akzeptieren, und was Sie nicht glauben werden, bis Sie es verinnerlichen. Diese Information befindet sich auf der zweiten Ebene unter dem, was Sie verstehen. Wenn Sie also eine Addiererschaltung auf logischer Ebene verstehen möchten, müssen Sie die Grundlagen von "digitalen" Transistoren (insbesondere CMOS) verstehen.

Betrachten Sie diese Ressource am Beispiel Ihrer früheren Site . Es wird der "Volladdierer" erörtert - die minimale vollständig universelle Schaltung, die addiert / subtrahiert werden kann, einschließlich Ein- und Ausführen.

Sie müssen auch verstehen, wie Zahlen im Zweierkomplement dargestellt werden (das Zahlensystem, das in modernen Computern für die Ganzzahlarithmetik verwendet wird).

Wenn Sie wirklich einen erstklassigen Einführungskurs wünschen, kann ich Professor Scott Wills von Georgia Tech nicht genug empfehlen. Er ist letztes Jahr an Krebs gestorben, aber sein Kurs lebt weiter . Die Georgia Tech ECE2030 (Einführung in die Computertechnik) Klasse hat ihr Lehrbuch und Übungen alle online.

Viel Glück!


Danke dafür. +1. Ich bin ein .NET-Entwickler, obwohl ich Erfahrung mit C und C ++ habe. Ich verstehe, dass C # in Intermediary Language kompiliert wird und der JIT-Compiler auf die Computerarchitektur abzielt, indem er den IL-Code im laufenden Betrieb kompiliert. Ich versuche zu verstehen, wie ein Mikrocontroller einen Operanden und einen Opcode empfangen und eine Ausgabe erzeugen kann. Ich
kenne

... dann würde ich mit "Switch Design" in den Lesungen beginnen und in den Lektionen von dort aus weiterarbeiten.
DrFriedParts

In Ihrer Themenliste können Sie mehrere Themen einfügen, die für die Frage nicht relevant sind, und die relevantesten überspringen.
Chris Stratton

@ Chris - Nein, tut es nicht.
DrFriedParts

3

Ich musste dasselbe an der Universität lernen, und wir haben das Buch Computer Organization and Design verwendet, das sehr detailliert war (aber vielleicht ist es zu detailliert für Ihre Bedürfnisse).

Patterson und Hennesy verwendeten einen "einfachen" MIPS-Prozessor und zeigten die gesamte Funktion der CPU mit einem Beispielcode in Assembler.

Im Allgemeinen halte ich es für eine großartige Idee, einen "einfachen" Prozessor (Arduino oder so) zu nehmen und dort die Funktion zu verstehen, da die Unterschiede zwischen diesen und den komplexeren darin bestehen, wie groß die implementierten Befehlscodes sind.

PS Vielleicht wäre der Elementarmikroprozessor von Google Code hilfreich. Es ist ein in Java simulierter Mikroprozessor.


2

Das kostenlose Buch Wie Computer funktionieren - Prozessor und Hauptspeicher von Roger Young beantwortet Ihre Frage. Zum besseren Verständnis werden Relais anstelle von Transistoren verwendet.


2
Obwohl dieses Buch nützlich erscheint, bearbeiten Sie die Antwort so, dass sie den vollständigen Titel und die Autoreninformationen enthält. Auf diese Weise kann der Link, falls er sich jemals ändert, möglicherweise auch in Zukunft aufgespürt werden.
PeterJ

Das sieht so aus, wie ich es damals gesucht habe. +1. Ich werde einen Blick darauf werfen und dann zurückkommen.
w0051977

-1

Ich habe hier meine Antwort gefunden . Es ist eine allgemeine Übersicht über das Hinzufügen von Zahlen.


4
Für zukünftige Leser ist es hilfreicher, wenn Sie das Material in der Antwort zusammenfassen. Nur einen Link zu einer externen Ressource zu geben, trägt nicht viel zu EE.SE bei.
Das Photon

Bitte beachten Sie, was @ThePhoton hier sagt. Obwohl dieses Youtube-Video Ihnen helfen kann, können Sie zusammenfassen, was Sie gelernt haben, sodass dies immer noch eine Antwort ist, wenn dieser Videolink unterbrochen wird?
Kortuk
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.