HTG Erläutert: Wie Funktioniert eine CPU die Wirklich Funktionieren?

0
780

Die meisten Dinge, die in einem computer sind relativ einfach zu verstehen: RAM, Speicher, Peripheriegeräte und der software, die alle zusammenarbeiten, um computer-Funktion. Aber das Herz des Systems, der CPU, scheint wie Magie, auch viele tech-Leute. Hier, wir werden unser bestes tun, um es zu brechen.

Die meisten der Forschung für diesen Artikel stammt aus “Aber Wie wollen Sie das Wissen?” von J. Clark Scott. Es ist ein fantastisches Lesen, geht viel mehr in die Tiefe als dieser Artikel, und lohnt sich die paar Dollar auf Amazon.

Ein Hinweis, bevor wir beginnen: moderne CPUs sind um Größenordnungen komplexer als das, was wir hier skizziert. Es ist fast unmöglich für eine person zu verstehen, die jede nuance der ein chip mit über einer Milliarde transistoren. Jedoch die grundlegenden Prinzipien, wie es passt alles zusammen, bleiben die gleichen, und das Verständnis der Grundlagen wird Ihnen ein besseres Verständnis moderner Systeme.

Klein Anfangen

Computer arbeiten Binär. Sie verstehen nur zwei Zustände: on und off. Zum durchführen von Berechnungen im Binär -, Sie verwenden, was heißt ein transistor. Der transistor erlaubt nur die Quelle, das fließen von Strom durch den drain, wenn es Strom über das Tor. Im wesentlichen, dies bildet ein binärer Schalter, der schneidet den Draht ab, je nachdem a second input signal.

RELATED: Was ist Binär, und Warum Computer Nutzen?

Moderne Computer verwenden Milliarden von transistoren, um Berechnungen durchzuführen, aber auf der untersten Ebene, müssen Sie nur eine Handvoll bilden die grundlegenden Komponenten, bekannt als Tore.

Logik Gates

Stack ein paar transistoren richtig, und Sie haben, was ist bekannt als ein Logik-gate. Logik-Gatter zwei Eingänge Binär, führen eine operation auf Sie, und eine Ausgabe. Die ODER-Gatter, zum Beispiel, gibt true zurück, wenn einer der Eingänge wahr ist. Das UND-Gatter prüft, ob beide Eingänge wahr sind, XOR prüft, wenn nur einer der Eingänge wahr sind, und die N-Varianten (NOR, NAND und XNOR) sind invertierte Versionen Ihrer Basis Tore.

Tun Mathe Mit Toren

Mit nur zwei Toren, die Sie tun können grundlegende binäre neben. Das Diagramm oben zeigt einen halb-Addierer, erstellt mit Logicly, eine Kostenlose online-Spielplatz für die Logik-Gatter. Das XOR-Gatter wird hier einzuschalten, wenn nur einer der Eingänge on ist, aber nicht beide. Das gate UND wird eingeschaltet, wenn beide Eingänge on sind, aber bleiben Sie dran, wenn es keine Eingabe. Also, wenn beide an sind, die XOR-bleibt aus, und das UND-Gatter schaltet, kommt die richtige Antwort von beiden:

Dies gibt uns ein einfaches setup mit drei verschiedenen Ausgängen: null, eins und zwei. Aber ein bisschen kann nicht speichern nichts höher als 1 ist, und diese Maschine ist nicht zu nützlich, als es löst nur eines der einfachsten mathematischen Probleme möglich. Aber dies ist nur ein halb-Addierer, und wenn Sie zwei von Ihnen mit einem anderen Eingang, bekommen Sie einen full-adder:

Der voll-Addierer hat drei Eingänge, die beiden zahlen zu addieren, und ein “carry.” Das carry wird verwendet, wenn die endgültige Anzahl übersteigt, was gespeichert werden kann, in einem einzigen bit. Voll Summanden werden in einer Kette miteinander verknüpft, und der carry ist bestanden, von einer Kreuzotter in die nächste. Das carry wird Hinzugefügt, um das Ergebnis der XOR-Tor in der ersten Hälfte adder, und es gibt ein extra Gatter, behandeln beide Fälle, wenn das so ist müsste auf.

Wenn beide Eingänge eingeschaltet sind, kann der carry leuchtet auf und sendet es an die nächste full-adder in der Kette:

Und das ist ungefähr so Komplex, da zusätzlich bekommt. Bewegen Sie sich mehr bits im wesentlichen bedeutet nur mehr voll-Addierer in einer längeren Kette.

Die meisten andere mathematische Operationen können durchgeführt werden mit addition; Multiplikation ist nur die wiederholte addition, Subtraktion kann getan werden, mit ein paar ausgefallenen bit-inversion und division ist nur die wiederholte Subtraktion. Und während alle modernen Computer verfügen über eine hardware-basierte Lösungen zur Beschleunigung von komplizierteren Operationen, kann man technisch tun es alle mit dem full adder.

Der Bus und der Speicher

Jetzt, unser computer ist nichts als ein schlechter Rechner. Dies ist, weil es mich an nichts erinnern kann, und hat nix mit den Ausgängen. Oben dargestellt ist ein Speicher-Zelle, die all das tun. Unter der Haube ist, verwendet es eine Menge von NAND-gates, und im realen Leben kann ganz anders sein, abhängig von der Speicher-Technik, die Funktionsweise ist aber die gleiche. Sie geben es einige Eingänge, schalten Sie die ‘write’ – bit und speichert die Eingaben in der Zelle. Dies ist nicht nur eine Speicherzelle, wie wir müssen auch einen Weg, um Informationen zu Lesen. Dies geschieht mit einem Mittel, das eine Sammlung von UND-Gatter für jedes bit im Speicher, alle beteiligten zu einem Eingang, die “read” – bit. Das schreiben und Lesen von bits werden oft als “set” und “aktivieren”.

Dieses ganze Paket ist eingehüllt in das, was ist bekannt als ein register. Diese Register sind an den bus angeschlossen, das ist ein Bündel von Drähten, die um das ganze system, verbunden mit jeder Komponente. Selbst moderne Computer haben einen bus, aber Sie müssen möglicherweise mehrere Busse zur Verbesserung der multitasking-Leistung.

Jedes register hat noch eine schreiben und Lesen etwas, aber in diesem setup den input und den output sind die gleiche Sache. Das ist eigentlich gut. Zum Beispiel. Wenn Sie wollte, kopieren Sie den Inhalt von R1 in R2, würden Sie wiederum auf die lese-bit für R1, die drängen würde, den Inhalt von R1 auf den bus. Während die read-bit ist, können Sie wiederum würde sich auf die schreib-bit für R2, die würde kopieren Sie die bus-Inhalte in R2.

Register werden verwendet, um RAM. RAM ist oft angelegt in einem raster, mit Drähte gehen in zwei Richtungen:

Die Decoder nehmen Sie ein Binär-Eingang und schalten Sie den entsprechenden Draht nummeriert. Zum Beispiel, “11” 3 in Binär, der höchste 2-bit-Zahl, also den decoder schalten Sie den höchsten Draht. An jeder Kreuzung, es gibt ein register. Alle diese sind verbunden mit dem zentralen Busbahnhof und zu einem zentralen schreib-und lese-Eingang. Die read-und die write-Eingang wird nur eingeschaltet, wenn die beiden Drähte überfahrt über das register sind auch auf, so dass effektiv wählen Sie das register aus, das zu schreiben und zu Lesen. Wieder, modern RAM ist viel komplizierter, aber das setup funktioniert immer noch.

Die Uhr, der Schrittmotor, und der Decoder

Register werden überall verwendet und sind das grundlegende Werkzeug zum verschieben von Daten und die Speicherung von Daten in der CPU. So, was sagt Sie Dinge bewegen?

Die Uhr ist die erste Komponente in den Kern der CPU und schaltet sich ab und auf in einem festgelegten Abstand, gemessen in hertz oder Zyklen pro Sekunde. Dies ist die Geschwindigkeit, die Sie beworben sehen, neben CPUs; 5 GHz-chip ausführen kann 5 Milliarden Zyklen pro Sekunde. Taktrate ist oft eine sehr gute Metrik für, wie schnell eine CPU ist.

Die Uhr hat drei verschiedene Zustände: die base-clock, die Uhr aktivieren, und die Uhr einstellen. Der base-clock wird für die Hälfte ein Zyklus, und aus der anderen Hälfte. Das enable clock verwendet wird, schalten Sie auf Register und musst länger, um sicherzustellen, dass die Daten aktiviert ist. Die Uhr muss immer zur gleichen Zeit wie die Uhr aktivieren, sonst könnten falsche Daten geschrieben werden.

Die Uhr ist verbunden mit dem stepper, das zählen von eins bis max Schritt, und setzen Sie sich wieder, wenn es fertig ist. Die Uhr ist auch mit UND-Gatter für jedes register, dass die CPU schreiben kann:

Diese UND Tore sind auch verbunden mit dem Ausgang einer anderen Komponente, die instruction decoder. Der instruction decoder dauert ein Befehl wie “SET R2, R1” und dekodiert es in etwas, dass die CPU verstehen kann. Es hat seine eigene interne register, die sogenannte “Instruction-Register,” das ist, wo der aktuelle Vorgang gespeichert. Wie genau es das macht, kommt auf das system es sich handelt, aber sobald es entschlüsselt, wird es wiederum auf die richtige set-und enable-bits für die richtige Registern, die das Feuer aus nach der Uhr.

Programm-Anweisungen sind im RAM gespeichert (oder L1 cache auf modernen Systemen, die näher an der CPU). Da das Programm Daten in Registern gespeichert, genauso wie jede andere variable, die manipuliert werden können on-the-fly zu springen, um das Programm. Dies ist, wie Programme erhalten Ihre Struktur, mit Schleifen und if-Anweisungen. Eine jump-Anweisung setzt die aktuelle Position im Speicher, dass die instruction decoder liest aus an einen anderen Ort.

Wie Es Kommt Alles Zusammen

Nun, unsere grobe Vereinfachung, wie eine CPU arbeitet, ist abgeschlossen. Die wichtigsten bus erstreckt sich auf das gesamte system und verbindet alle Register. Der voll-Addierer, zusammen mit einer Reihe anderer Vorgänge, verpackt in die Arithmetik-Logik-Einheit oder ALU. Das ALU wird mit verbindungen zum bus, und wird auch seine eigenen Register zum speichern der zweiten Nummer ist es den Betrieb auf.

Eine Berechnung durchzuführen, das Programm für das laden der Daten vom system-RAM in der control Sektion. Die control-Sektion liest zwei zahlen aus dem Arbeitsspeicher, lädt das erste in die ALU instruction register, und lädt dann die zweite auf den bus. Unterdessen sendet die ALU instruction code sagen was zu tun ist. Die ALU führt alle Berechnungen durch und speichert das Ergebnis in einem anderen register, das die CPU Lesen kann und dann den Vorgang fortsetzen.

Bild-Kredit: Rost9/Shutterstock