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

Die meisten Dinge in einem Computer sind relativ einfach zu verstehen: der Arbeitsspeicher, der Speicher, die Peripheriegeräte und die Software arbeiten alle zusammen, um einen Computer funktionsfähig zu machen. Aber das Herz Ihres Systems, die CPU, erscheint selbst vielen Technikern wie Magie. Hier werden wir unser Bestes tun, um es zu zerlegen.

Der größte Teil der Forschungsarbeit für diesen Artikel stammt aus „But How Do It Know?“ von J. Clark Scott. Es ist eine fantastische Lektüre, geht viel tiefer, als dieser Artikel es wird, und ist die paar Dollar auf Amazon durchaus wert.

Eine Anmerkung, bevor wir beginnen: 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 die gleichen, und das Verständnis der Grundlagen wird Ihnen ein besseres Verständnis moderner Systeme ermöglichen.

Klein anfangen

Computer arbeiten binär. Sie verstehen nur zwei Zustände: an und aus. Um Berechnungen im Binärmodus durchzuführen, verwenden sie einen so genannten Transistor. Der Transistor lässt den Source-Strom nur dann durch sich hindurch zum Drain fließen, wenn ein Strom über das Gate fließt. Im Wesentlichen bildet dies einen binären Schalter, der den Draht in Abhängigkeit von einem zweiten Eingangssignal abschaltet.

VERHÄLTNIS: Was ist binär, und warum verwenden Computer sie?

Moderne Computer verwenden Milliarden von Transistoren, um Berechnungen durchzuführen, aber auf den untersten Ebenen braucht man nur eine Handvoll, um die grundlegendsten Komponenten, die als Gates bezeichnet werden, zu bilden.

Logische Gatter

Stapelt man ein paar Transistoren richtig, erhält man ein sogenanntes Logikgatter. Logische Gatter nehmen zwei binäre Eingänge, führen eine Operation an ihnen aus und geben einen Ausgang zurück. Das ODER-Gatter z.B. gibt true zurück, wenn einer der Eingänge true ist. Das UND-Gatter prüft, ob beide Eingänge wahr sind, das XOR-Gatter prüft, ob nur einer der Eingänge wahr ist, und die N-Varianten (NOR, NAND und XNOR) sind invertierte Versionen ihrer Basisgatter.

Mathematische Berechnungen mit Gates

Mit nur zwei Toren können Sie grundlegende binäre Additionen durchführen. Das obige Diagramm zeigt einen Halbaddierer, der mit Logicly, einem kostenlosen Online-Spielplatz für Logikgatter, erstellt wurde. Das XOR-Gatter hier schaltet sich ein, 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 kein Eingang vorhanden ist. Wenn also beide an sind, bleibt das XOR aus, und das UND-Gatter schaltet sich ein, um die korrekte Antwort von zweien zu erhalten:

 

Dadurch erhalten wir eine einfache Einrichtung mit drei verschiedenen Ausgängen: Null, eins und zwei. Aber ein Bit kann nichts speichern, das höher als 1 ist, und diese Maschine ist nicht allzu nützlich, da sie nur eines der einfachsten mathematischen Probleme löst. Aber dies ist nur ein Halb-Addierer, und wenn Sie zwei davon mit einem anderen Eingang verbinden, erhalten Sie einen Volladdierer:

 

Der Volladdierer hat drei Eingänge – zwei zu addierende Zahlen und einen „Übertrag“. Der Übertrag wird verwendet, wenn die endgültige Zahl 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 weitergereicht. Der Übertrag wird zum Ergebnis des XOR-Gatters im ersten Halbaddierer addiert, und es gibt ein zusätzliches ODER-Gatter, um beide Fälle zu behandeln, in denen das „so“ eingeschaltet sein müsste.

Wenn beide Eingänge eingeschaltet sind, schaltet sich der Übertrag ein und sendet ihn an den nächsten Volladdierer in der Kette: