Wie funktioniert ein Computer - von grund auf

...komplette Frage anzeigen

5 Antworten

Zunächst mal besteht ein Computer aus drei verschiedenen Bauteilarten:

  • Register: Das sind D-Flip-Flops, also Flip-Flops, die einen Eingang "jetzt Umschalten auf den neuen Wert" (= "CLK") und einen zweiten Eingang für den neuen Wert selbst (= "D") haben (also keinen "Set" und "Reset"-Eingang). Ein Verbund aus mehreren Registern um mehrere Bits zu speichern (z.B. aus 8 Registern um 8 Bits abzuspeichern) wird selbst ebenfalls als "Register" bezeichnet.
  • Logikgatter (Und, Oder, Nicht und alle Kombinationen daraus)
  • Register-Transfer-Gatter: Das sind spezielle Transistoren, die wie Relais funktionieren: Wenn das Eingangssignal 1 ist, werden zwei Leitungen miteinander verbunden.

Jede Speicherzelle (RAM, ROM) und jede Peripherieeinheit (Tastatur, Festplatte, ...) hat eine eindeutige Adresse, mit der diese eindeutig angesprochen werden kann.

Im Beispiel verwende ich SRAM als Speicher; bei diesem Speichertyp (der heute in PCs hauptsächlich noch für Cache-Speicher-Verwendet wird) wird jedes einzelne Bit in einem D-Flip-Flop (s. "Register") gespeichert.

Die Zentraleinheit (bei modernen Computern ist dies die CPU) des Rechners ist durch Daten-, Address- und Steuerleitungen mit den anderen Komponenten (z.B. Speicher) verbunden.

Um nun einen Wert in den Speicher zu schreiben, wird die Adresse der entsprechenden Speicherzelle auf den "Adressbus" (also die Adressleitungen) gelegt. Beispiel: Um an Adresse 0111 zu schreiben, haben die Leitungen A2, A1 und A0 +5V Spannung und A3 hat 0V Spannung. Der zu schreibende Wert wird auf den Datenbus (Datenleitungen) gelegt und die "Write"-Leitung (Schreibfreigabe) wird auf 1 gesetzt.

Eine Logikschaltung im RAM wertet Address- und Write-Leitung aus und gibt ein Signal an den CLK-Eingang der Flip-Flops in der Speicherzelle (bei einem 8-Bit-Rechner gäbe es 8 Flip-Flops pro Speicherzelle und 8 Datenleitungen). Die Datenleitungen sind mit den D-Eingängen der Flip-Flops verbunden.

Das Lesen funktioniert ähnlich. Wenn die "Read"-Leitung von der CPU gesetzt wird, werden die "Q"-Leitungen (Ausgänge) der 8 Flip-Flops der Speicherzelle, deren Adresse auf dem Adressbus liegt, mit den 8 Datenleitungen über Register-Transfer-Gates verbunden. Die Signalflussrichtung auf den Datenleitungen ist nun umgekehrt (vom RAM zur CPU).

Der Datenaustausch zu anderen Komponenten (Peripheriegeräte, ROM, DRAM) funktioniert nach dem gleichen Prinzip. Jedoch ist die Ansteuerung von DRAM (moderner RAM) wesentlich komplizierter; hier wird ein Bit als Ladung in einem Kondensator gespeichert. Da dieser sich mit der Zeit entladen würde, muss er ständig ausgelesen und neu beschrieben werden.

Nun zur Zentraleinheit (also CPU): Diese verfügt über ein "Programmzähler"-Register, in dem die Adresse des aktuell auszuführenden Befehls steht. Außerdem hat sie noch weitere Register.

Beim Einschalten des Computers werden nun durch eine spezielle analoge (!) Schaltung bestimmte Register (z.B. Programmzähler) in vorherbestimmte Zustände (also Werte) gebracht. (Daraus ergibt sich u.A. die Adresse des ersten Befehls.)

Eine Logikschaltung in der CPU legt den Inhalt des Programmzählers auf das Adressregister und setzt die "Read"-Leitung. Dadurch wird der erste Befehl aus dem Speicher gelesen. Der Programmzähler wird dann um eins hochgezählt (siehe Zählerschaltung mit Flip-Flops).

Eine sehr komplexe Logikschaltung wertet diesen Befehl aus. Diese Schaltung ist mit dem Datenbus, dem Addressbus und den D-, Q- und CLK-Pins sämtlicher Register verbunden.

Wenn der Befehl (= Kobination auf dem Datenbus) z.B. lautet "Addiere 5 zum Register A", so wird diese Schaltung den Wert A+5 an die D-Eingänge der Flip-Flops des A-Registers anlegen und den CLK-Eingang auf 1 legen. Dadurch wird der Wert A+5 ins Register geschrieben.

Die Schaltung ist auch in der Lage, den Programmzähler zu verändern (um Sprungbefehle, Schleifen usw. auszuführen). Außerdem kann sie selbst auf den Adressbus und die "Read"- und "Write"-Leitungen zugreifen, um so Befehle mit Speicherzugriff auszuführen.

Nach dem Auswerten und Ausführen des Befehls wird der nächste Befehl ausgeführt, in dem der neue Wert des Programmzählers auf den Adressbus gelegt wird....

Die Geschwindigkeit gibt dabei ein analoger (!) Taktgeber vor.

Prinzipiell ist diese Schaltung aus einfach verständlichen Bauteilen aufgebaut (mit Logikgattern kann man einen Addierer bauen und mit mehreren Addierern ein Multiplizierer usw.), aber die riesige Menge an Gattern macht die Schaltung unüberschaubar.

Ich selbst bin seit längerer Zeit dabei, mir mit einem programmierbaren Logikbaustein (FPGA) eine eigene CPU zu basteln. Obwohl ich sehr viel Erfahrung mit Logikschaltungen habe, komme ich oft nicht weiter.

Danke für die Antwort! :)

Ich sehe schon das ist viel komplexer als ich mir je vorgestellt habe. Trotzdem leuchtet mir jetzt einiges ein ! :)

0

mit "Zentral Prozessor" oder "CPU"(englisch) findet man bei Wiki Näheres. Die dort vorkommenden unverstandenen Stichwörter nachlesen, und schon weiss man einiges über das Innenleben von Computern.

hatte ich vor 2 jahren im ersten semester maschinenbaur in technischer informatik und das ist eine thematik die man hier nicht einfach mal runterschreiben kann (wir haben nur ein semester damit verbracht und alles nur angerissen, da das hauptstudium nur maschbau ist)

leider habe ich keinen dunst mehr davon (war auch ein hassfach), aber wenn es dich sehr interessiert, fahr doch mal in eine universitätsbibliothek (am besten eine technische) und schau dich dort im fachbereich für informatik um.

vllt kannst du auch über deine lokale bibliothek fachliteratur in die richtung beziehen, sogar vllt per fernleihe ohne in die bib der uni fahren zu müssen. musst halt nur entsprechende literatur den mitarbeiten nennen können.

eine thematik die man hier einfach mal runterschreiben kann

nicht, meintest du wahrscheinlich, der Umfang wäre fenomenal

0
@CryingFreeman13

ja genau, hatte es geändert, hast du wahrscheinlich nicht gesehen, danke für en hinweis trotzdem;)

0

Da studieren manche Leute ein paar Jahre für, um das alles detailliert zu verstehen. Das kann man hier nicht einfach so hinschreiben.

Der Computer weiss nicht, wo die Daten sind. Er holt sie daher (Adresse), wo das Programm sagt, dass er sie herholen soll.

also um all deine Fragen fachkompetent zu berabeiten und zu beanworten........

du kannst dir ja mal den Lehrplan von nem IT-Techniker und von nem IT-ler Fachrichtung Systemintegration im Netz anschauen, und in diese Richtung weiter recherchieren

;)

Was möchtest Du wissen?