HTG erklärt: Wie funktioniert eine CPU tatsächlich?

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Die meisten Dinge in einem Computer sind relativ einfach zu verstehen: Der RAM, der Speicher, die Peripheriegeräte und die Software arbeiten zusammen, um einen Computer zu funktionieren. Aber das Herz Ihres Systems, die CPU, scheint selbst vielen Technikern magisch zu sein. Hier werden wir unser Bestes tun, um das Problem zu lösen.

Die meiste Forschung für diesen Artikel kommt von „aber wie weiß es?“ von J. Clark Scott. Es ist eine fantastische Lektüre, geht in viel mehr Tiefe als dieser Artikel wird, und ist das paar Dollars auf Amazon wert.

Noch eine Anmerkung: Moderne CPUs sind um Größenordnungen komplexer als das, was wir hier skizzieren. Es ist für eine Person fast unmöglich, jede Nuance eines Chips mit über einer Milliarde Transistoren zu verstehen. Die Grundprinzipien, wie alles zusammenpasst, bleiben jedoch gleich, und wenn Sie die Grundlagen verstehen, können Sie moderne Systeme besser verstehen.

Start klein

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Computer arbeiten im Binärformat. Sie verstehen nur zwei Zustände: ein und aus. Um Berechnungen im Binärmodus durchzuführen, verwenden sie, was als Transistor bezeichnet wird. Der Transistor lässt nur zu, dass der Quellenstrom durch diesen zum Drain fließt, wenn Strom über das Gate fließt. Im Wesentlichen bildet dies einen binären Schalter, der abhängig von einem zweiten Eingangssignal den Draht abschneidet.

VERBUNDEN: Was ist Binär, und warum verwenden Computer es?

Moderne Computer verwenden Milliarden von Transistoren, um Berechnungen durchzuführen , aber auf den niedrigsten Ebenen brauchen Sie nur eine Handvoll, um die grundlegendsten Komponenten zu bilden, die als Tore bekannt sind.

Logikgatter

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Stapeln Sie ein paar Transistoren richtig, und Sie haben das, was als Logikgatter bekannt ist. Logikgatter nehmen zwei Binäreingänge, führen eine Operation für sie aus und geben eine Ausgabe zurück. Das OR-Gatter gibt zum Beispiel wahr zurück, wenn eine der Eingaben wahr ist. Das UND-Gatter prüft, ob beide Eingaben wahr sind, XOR prüft, ob nur eine der Eingaben wahr ist, und die N-Varianten (NOR, NAND und XNOR) sind invertierte Versionen ihrer Basis-Gatter.

Mathe mit Gates machen

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Mit nur zwei Gattern können Sie grundlegende binäre Addition durchführen. Dieses Diagramm oben zeigt einen Halbaddierer, der mit Logicly, einem kostenlosen Online-Spielplatz für Logikgatter, erstellt wurde. Das XOR-Gatter wird hier eingeschaltet, wenn nur einer der Eingänge eingeschaltet ist, aber nicht beide. Das UND-Gatter schaltet sich ein, wenn beide Eingänge eingeschaltet sind, bleibt aber ausgeschaltet, wenn keine Eingabe erfolgt. Wenn also beide eingeschaltet sind, bleibt das XOR ausgeschaltet, und das UND-Gatter schaltet sich ein und kommt zur richtigen Antwort von zweien:

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Dies ergibt uns ein einfaches Setup mit drei verschiedenen Ausgaben: Null, Eins und Zwei. Aber ein Bit kann nichts über 1 speichern, und diese Maschine ist nicht zu nützlich, da sie nur eines der einfachsten mathematischen Probleme löst. Aber das ist nur ein halber Addierer, und wenn Sie zwei von ihnen mit einem anderen Eingang verbinden, erhalten Sie einen Volladdierer:

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Der Volladdierer hat drei Eingänge – die zwei hinzuzufügenden Zahlen und ein ” Übertrag ” Der Übertrag wird verwendet, wenn die endgültige Anzahl das übersteigt, was in einem einzelnen Bit gespeichert werden kann. Volladdierer werden in einer Kette verknüpft, und der Übertrag wird von einem Addierer zum nächsten weitergegeben. Der Übertrag wird zu dem Ergebnis des XOR-Gatters in dem ersten Halbaddierer addiert, und dort ist ein zusätzliches ODER-Gatter vorgesehen, um beide Fälle zu handhaben, wenn dies erforderlich ist.

Wenn beide Eingänge eingeschaltet sind, wird der Übertrag aktiviert und an den nächsten Volladdierer in der Kette gesendet:

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Und das ist ungefähr so ​​komplex wie die Addition. Auf mehrere Bits zu wechseln, bedeutet im Wesentlichen nur mehr Volladdierer in einer längeren Kette.

Die meisten anderen mathematischen Operationen können mit Addition ausgeführt werden; Multiplikation wird nur wiederholt Addition, Subtraktion kann mit etwas Phantasie Bit Umkehrung durchgeführt werden, und Division ist nur wiederholte Subtraktion. Und während alle modernen Computer hardwarebasierte Lösungen haben, um kompliziertere Operationen zu beschleunigen, können Sie technisch alles mit dem Volladdierer machen.

Der Bus und der Speicher

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Im Moment ist unser Computer nichts anderes als ein schlechter Rechner. Dies liegt daran, dass es sich an nichts erinnern kann und nichts mit seinen Ausgaben macht. Oben ist eine Speicherzelle abgebildet, die das alles kann. Unter der Haube verwendet es viele NAND-Gatter, und im wirklichen Leben kann es je nach Speichertechnik sehr unterschiedlich sein, aber seine Funktion ist die gleiche. Du gibst es ein paar Eingaben, schalte das ‘ write ’ Bit, und es speichert die Eingänge in der Zelle. Dies ist nicht nur eine Speicherzelle, da wir auch eine Möglichkeit benötigen, Informationen daraus zu lesen. Dies geschieht mit einem Enabler, der eine Sammlung von UND-Gattern für jedes b darstelltes in der Erinnerung, die alle an einen anderen Eingang gebunden sind, das ” read ” bisschen. Die Schreib- und Lesebits werden oft “ set ” und " aktivieren ” auch.

Dieses ganze Paket ist in was als Register bekannt ist verpackt. Diese Register sind mit dem Bus verbunden, bei dem es sich um ein Bündel von Leitungen handelt, die um das gesamte System herum verlaufen und mit jeder Komponente verbunden sind. Sogar moderne Computer haben einen Bus, obwohl sie mehrere Busse haben können, um die Multitasking-Leistung zu verbessern.

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Jedes Register hat immer noch ein Schreib- und Lese-Bit, aber in diesem Setup sind Eingabe und Ausgabe identisch. Das ist eigentlich gut. Zum Beispiel. Wenn Sie den Inhalt von R1 in R2 kopieren möchten, würden Sie das Lesebit für R1 aktivieren, das den Inhalt von R1 auf den Bus schieben würde. Während das Lesebit eingeschaltet ist, schalten Sie das Schreibbit für R2 ein, wodurch der Businhalt in R2 kopiert wird.

Register werden auch verwendet, um RAM zu machen. RAM ist oft in einem Gitter angeordnet, wobei Drähte in zwei Richtungen gehen:

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Die Decoder nehmen eine Binäreingabe und schalten die entsprechende Nummer ein Draht. Zum Beispiel, “ 11 ” Ist 3 binär, die höchste 2-Bit-Zahl, so würde der Decoder den höchsten Draht einschalten. An jeder Kreuzung gibt es ein Register. Alle diese sind mit dem zentralen Bus und einem zentralen Schreib- und Leseeingang verbunden. Sowohl der Lese- als auch der Schreibeingang wird nur dann eingeschaltet, wenn die zwei Drähte, die das Register kreuzen, ebenfalls eingeschaltet sind, wodurch Sie effektiv das Register auswählen können, von dem geschrieben und gelesen werden soll. Wiederum ist moderner RAM viel komplizierter, aber dieses Setup funktioniert immer noch.

Die Register Clock, Stepper und Decoder

werden überall verwendet und sind das grundlegende Werkzeug zum Verschieben von Daten und Speichern von Informationen in der CPU. Was also sagt ihnen, Dinge zu bewegen?

Die Uhr ist die erste Komponente im Kern der CPU und wird in einem festgelegten Intervall, gemessen in Hertz oder Zyklen pro Sekunde, ein- und ausgeschaltet. Dies ist die Geschwindigkeit, die Sie neben den CPUs beworben haben. Ein 5-GHz-Chip kann 5 Milliarden Zyklen pro Sekunde ausführen. Die Taktfrequenz ist oft ein sehr gutes Maß für die Geschwindigkeit einer CPU.

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Die Uhr hat drei verschiedene Zustände: die Grunduhr, die Aktivierungsuhr und die eingestellte Uhr. Die Grunduhr wird für einen halben Zyklus eingeschaltet und für die andere Hälfte ausgeschaltet. Die Aktivierungsuhr wird verwendet, um Register einzuschalten, und muss länger eingeschaltet sein, um sicherzustellen, dass die Daten aktiviert sind. Die eingestellte Uhr muss immer gleichzeitig mit der Aktivierungsuhr eingeschaltet sein, sonst könnten falsche Daten geschrieben werden.

Die Uhr ist mit dem Stepper verbunden, der von einem bis zum maximalen Schritt zählt und sich auf eins zurückstellt, wenn er fertig ist. Die Uhr ist auch mit UND-Gattern für jedes Register verbunden, in das die CPU schreiben kann:

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Diese UND-Gatter sind auch mit dem Ausgang von verbunden eine weitere Komponente, der Befehlsdecoder. Der Befehlsdecoder nimmt eine Anweisung wie „ SET R2 TO R1 ” und dekodiert es in etwas, das die CPU verstehen kann. Es hat sein eigenes internes Register, genannt das „Instruction Register“, ” Hier wird die aktuelle Operation gespeichert. Wie genau es dazu kommt, kommt auf das System an, auf dem Sie laufen, aber sobald es entschlüsselt ist, wird es den richtigen Satz einschalten und Bits für die richtigen Register aktivieren, die entsprechend der Uhr ausgelöst werden.

Programmanweisungen werden im RAM (oder L1-Cache auf modernen Systemen, näher an der CPU) gespeichert. Da Programmdaten wie jede andere Variable in Registern gespeichert werden, können sie während des Betriebs manipuliert werden, um das Programm zu überspringen. Auf diese Weise erhalten Programme ihre Struktur mit Schleifen und if-Anweisungen. Ein Sprungbefehl setzt den aktuellen Ort im Speicher, an dem der Befehlsdecoder von einem anderen Ort liest.

Wie alles zusammenkommt

HTG erklärt: Wie funktioniert eine CPU tatsächlich?

Nun ist unsere grobe Vereinfachung der Funktionsweise einer CPU vollständig. Der Hauptbus überspannt das gesamte System und verbindet sich mit allen Registern. Die Volladdierer werden zusammen mit einer Reihe anderer Operationen in die Arithmetische Logikeinheit oder die ALU gepackt. Diese ALU wird Verbindungen zu dem Bus haben und wird auch ihre eigenen Register haben, um die zweite Nummer zu speichern, auf der sie arbeitet.

Um eine Berechnung durchzuführen, werden Programmdaten aus dem System-RAM in den Steuerabschnitt geladen. Der Steuerabschnitt liest zwei Zahlen aus dem RAM, lädt die erste in das Befehlsregister der ALU und lädt dann die zweite auf den Bus. In der Zwischenzeit sendet es der ALU einen Befehlscode, der ihr sagt, was zu tun ist. Die ALU führt dann alle Berechnungen durch und speichert das Ergebnis in einem anderen Register, aus dem die CPU lesen und dann den Prozess fortsetzen kann.

Bildquelle: Rost9 / Shutterstock

q , quelle

Zusammenhängende Posts:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.