Jetzt, da wir wissen, wie Prozessoren auf hohem Niveau arbeiten, ist es an der Zeit, sich mit dem Design interner Komponenten zu befassen. Dieser Artikel ist der zweite Teil unserer Prozessordesign-Serie. Wenn Sie Kapitel 1 noch nicht gelesen haben, sollten Sie zuerst auf dieses Thema eingehen, da sonst einige der hier aufgeführten Konzepte keinen Sinn ergeben.

Wie Sie wahrscheinlich wissen, werden Prozessoren und viele andere digitale Technologien aus Transistoren hergestellt. Die einfachste Art, sich einen Transistor vorzustellen, ist ein dreipoliger steuerbarer Schalter. Bei geöffneter Tür kann Strom durch den Transistor fließen. Wenn die Tür geschlossen ist, kann kein Strom fließen. Genau wie der Lichtschalter an Ihrer Wand, aber viel kleiner, viel schneller und elektrisch steuerbar.

Es gibt zwei Haupttypen von Transistoren, die in modernen Prozessoren verwendet werden: pMOS und nMOS. Ein nMOS-Transistor lässt Strom fließen, wenn das Gate geladen oder hoch eingestellt ist, und der pMOS-Transistor lässt Strom fließen, wenn das Gate entladen oder niedrig eingestellt ist. Wir können CMOS-Logikgatter erstellen, indem wir diese Transistortypen auf komplementäre Weise kombinieren. Wir werden in diesem Artikel nicht auf die physikalische Funktionsweise von Transistoren eingehen, aber wir werden dies in Teil 3 der Serie behandeln.

Ein Logikgatter ist ein einfaches Gerät, das Eingaben empfängt, einige Operationen ausführt und ein Ergebnis erzeugt. Zum Beispiel schaltet ein UND-Gatter seinen Ausgang ein und nur, wenn alle Eingänge des Eingangs offen sind. Ein Inverter oder NOT-Gatter schaltet seinen Ausgang ein, wenn der Eingang geschlossen ist. Wir können diese beiden Eingänge kombinieren, aber wenn keiner der Eingänge offen ist und es nur ein NAND ist, der seinen Ausgang öffnet oder nicht -und Gate. Es gibt andere Gatter mit unterschiedlichen Logikfunktionen wie OR, NOR, XOR und XNOR.

Unten sehen wir, wie zwei grundlegende Gatter aus Transistoren konstruiert wurden: ein Inverter und ein NAND-Gatter. Der Wechselrichter hat einen pMOS-Transistor, der oben mit der Stromleitung verbunden ist, und einen nMOS-Transistor, der unten mit Masse verbunden ist. PMOST-Transistoren sind mit einem kleinen Kreis gezeichnet, der mit ihren Gates verbunden ist. Da PMOS-Geräte mit ausgeschaltetem Eingang und nMOS-Geräte mit eingeschaltetem Eingang arbeiten, ist leicht zu erkennen, dass das Signal bei Out immer das Gegenteil des Signals bei In ist. Wenn wir uns das NAND-Gatter ansehen, sehen wir, dass es vier Transistoren benötigt und der Ausgang eingeschaltet ist, solange mindestens einer der Eingänge geschlossen ist. Das Anschließen von Transistoren zum Erstellen einfacher Netzwerke wie dieses ist der gleiche Prozess, der zum Entwerfen anderer Schaltungen in fortgeschritteneren Logikgattern und Prozessoren verwendet wird.







Bei so einfachen Bausteinen wie Logikgattern kann es schwierig sein zu erkennen, wie sie in einen funktionierenden Computer umgewandelt werden können. Bei diesem Entwurfsprozess werden mehrere Türen kombiniert, um ein kleines Gerät zu erstellen, das eine einfache Funktion ausführen kann. Sie können dann die meisten dieser Geräte anschließen, um etwas zu erstellen, das eine etwas erweiterte Funktion ausführt. Der Prozess der Kombination einzelner Komponenten zu einem funktionierenden Design wird heute zur Herstellung moderner Chips verwendet. Der einzige Unterschied ist, dass ein moderner Chip Milliarden von Transistörlerin.

Als kurzes Beispiel betrachten wir einen 1-Bit-Volladdierer für Basisaddierer. Es werden drei Eingänge benötigt - A, B und Carry-In und zwei Ausgänge - Sum und Carry-Out. Das grundlegende Design verwendet fünf Logikgatter und kann miteinander verknüpft werden, um einen Addierer beliebiger Größe zu erstellen. Moderne Designs verbessern dies, indem sie einige Logik- und Transportsignale optimieren, aber die Grundlagen sind immer noch dieselben.




Der Gesamtausgang ist eingeschaltet, wenn A oder B eingeschaltet sind, aber nicht beide, oder wenn ein Übertragssignal vorhanden ist und A und B beide ein- oder beide ausgeschaltet sind. Die Realisierung ist etwas komplizierter. Aktiv, wenn A und B gleichzeitig geöffnet sind oder wenn ein Transport vorhanden ist und entweder A oder B geöffnet sind. Um mehr als einen 1-Bit-Addierer zu verbinden, um einen größeren Addierer zu erstellen, verknüpfen Sie einfach die Ausführung des vorherigen Bits mit dem Übertrag des aktuellen Bits. Je komplexer die Schaltkreise sind, desto komplexer ist die Logik. Dies ist jedoch der einfachste Weg, zwei Zahlen zu addieren. Moderne Prozessoren verwenden komplexere Kollektoren, aber diese Designs sind für einen solchen Überblick zu komplex. Neben Addierern enthalten Prozessoren auch Einheiten für Divisions-, Multiplikations- und Gleitkommaversionen all dieser Operationen.




Kombinieren einer solchen Reihe von Türen, um einige Funktionen an den Eingängen auszuführen, Kombinationslogik. Diese Art von Logik ist nicht das einzige, was in Computern zu finden ist. Es wäre nicht sehr nützlich, wenn wir keine Daten speichern oder den Status von irgendetwas verfolgen könnten. Dazu benötigen wir eine sequentielle Logik, mit der Daten gespeichert werden können.




Sequentielle Logik wird durch sorgfältiges Verbinden von Wechselrichtern und anderen Logikgattern erzeugt, um die Ausgänge zum Eingang der Gatter zurückzuführen. Diese Rückkopplungsschleifen werden zum Speichern von Daten und verwendet Statischer RAM oder SRAM. Es wird im Gegensatz zur Dynamik im DRAM als statisches RAM bezeichnet, da die gespeicherten Daten immer direkt mit positiver Spannung oder Masse verbunden sind.

Eine Standardmethode zum Implementieren eines einzelnen SRAM-Bits sind die unten gezeigten 6 Transistoren. Oberes Signal mit WL markiert Wortzeileist die Adresse und bei Aktivierung die in dieser 1-Bit-Zelle gespeicherten Daten BitleitungAls BL markiert. Die BLB-Ausgabe ist bekannt als: Bitleitungsleiste, Es ist einfach der invertierte Wert der Bitleitung. Sie sollten in der Lage sein, die beiden Transistortypen zu erkennen, und M3 und M1 bilden zusammen mit M4 und M2 einen Wechselrichter.




SRAM wird verwendet, um superschnelle Caches und Register innerhalb von Prozessoren zu erstellen. Es ist sehr stabil, benötigt jedoch sechs bis acht Transistoren, um jedes Datenbit zu speichern. Dies macht die Produktion im Vergleich zu DRAM hinsichtlich Kosten, Komplexität und Chipraum extrem teuer. Das dynamische RAM hingegen speichert Daten in einem kleinen Kondensator, anstatt Logikgatter zu verwenden. Es wird als dynamisch bezeichnet, da sich die Spannung des Kondensators dynamisch ändern kann, da sie nicht von Leistung oder Masse abhängig ist. Es gibt nur einen Transistor, der für den Zugriff auf im Kondensator gespeicherte Daten verwendet wird.

Da DRAM nur einen einzigen Transistor pro Bit benötigt und das Design sehr skalierbar ist, kann es dicht und kostengünstig verpackt werden. Ein Nachteil von DRAM ist, dass die Ladung des Kondensators so gering ist, dass er ständig aktualisiert werden muss. Wenn Sie Ihren Computer ausschalten, gehen alle Entladungen und Daten aus Ihrem RAM verloren.

Unternehmen wie Intel, AMD und Nvidia veröffentlichen sicherlich keine Diagramme zur Funktionsweise ihrer Prozessoren. Daher ist es unmöglich, solche vollständigen Diagramme für einen modernen Prozessor anzuzeigen. Dieser einfache Addierer sollte jedoch eine gute Vorstellung davon geben, wie selbst die komplexesten Teile eines Prozessors in Logikgatter, Speicherelemente und dann Transistoren zerlegt werden können.

Nachdem wir nun wissen, wie einige Komponenten eines Prozessors aufgebaut sind, müssen wir herausfinden, wie alles verbunden und synchronisiert werden kann. Alle wichtigen Komponenten im Prozessor ein Taktsignal. Dies ist zwischen hoch und niedrig, Frequenz. Die Logik innerhalb des Prozessors ändert häufig Werte und führt Berechnungen durch, wenn der Takt niedrig bis hoch ist. Indem wir alles miteinander synchronisieren, können wir sicherstellen, dass die Daten immer zum richtigen Zeitpunkt eintreffen, um Fehlfunktionen im Prozessor zu vermeiden.

Möglicherweise haben Sie gehört, dass Sie den Takt auf einen als Übertaktung bezeichneten Prozessor erhöhen können, um dessen Leistung zu verbessern. Dieser Leistungsgewinn resultiert aus dem schnelleren Schalten von Transistoren und Logik in einem Prozessor als geplant. Da es mehr Zyklen pro Sekunde gibt, kann mehr Arbeit geleistet werden und der Prozessor hat eine höhere Leistung. Dies gilt bis zu einem gewissen Punkt. Moderne Prozessoren arbeiten normalerweise zwischen 3,0 GHz und 4,5 GHz und scheinen im letzten Jahrzehnt unverändert zu sein. So wie eine Metallkette so stark ist wie ihr schwächstes Glied, kann ein Prozessor nur so schnell laufen wie der langsamste Teil. Am Ende jedes Taktzyklus sollte jede Komponente in einem Prozessor fertig laufen. Wenn noch keine Teile hergestellt wurden, ist die Uhr sehr schnell und der Prozessor funktioniert nicht. Designer sind der langsamste Teil dazu Kritischer Weg und legt die maximale Frequenz fest, mit der ein Prozessor arbeiten kann. Ab einer bestimmten Frequenz können Transistoren nicht schnell genug schalten und beginnen zu versagen oder falsche Ausgänge zu erzeugen.

Durch Erhöhen der Versorgungsspannung eines Prozessors können wir das Schalten der Transistoren beschleunigen, dies funktioniert jedoch nur bis zu einem bestimmten Punkt. Wenn wir zu viel Spannung anlegen, besteht die Gefahr, dass der Prozessor verbrannt wird. Wenn wir die Frequenz oder Spannung eines Prozessors erhöhen, erzeugt dieser immer mehr Wärme und verbraucht mehr Strom. Dies liegt daran, dass die Prozessorleistung direkt proportional zur Frequenz und proportional zum Quadrat der Spannung ist. Um den Stromverbrauch eines Prozessors zu bestimmen, stellen wir uns normalerweise jeden Transistor als kleinen Kondensator vor, der geladen oder entladen werden muss, wenn sich der Wert ändert.

Die Stromversorgung ist ein wesentlicher Bestandteil eines Prozessors, und in einigen Fällen kann die Hälfte der physischen Pins auf einem Chip nur für Strom oder Masse verwendet werden. Einige Chips können bei Volllast mehr als 150 Ampere verbrauchen, und all dieser Strom muss mit größter Sorgfalt verwaltet werden. Um diese Energiemenge ins rechte Licht zu rücken, erzeugt die CPU mehr Wärme pro Flächeneinheit als ein Kernreaktor.

Die Uhr in modernen Prozessoren macht ungefähr 30-40% ihrer Gesamtleistung aus, da sie sehr komplex ist und sehr unterschiedliche Geräte verwenden muss. Um Energie zu sparen, schalten die meisten Designs mit geringem Stromverbrauch Teile des Chips aus, wenn sie nicht verwendet werden. Dies kann durch Ausschalten der als Clock Door bezeichneten Uhr oder durch Ausschalten der als Power Gate bezeichneten Stromversorgung erfolgen.

Uhren stellen eine weitere Herausforderung für das Design eines Prozessors dar, da mit zunehmender Frequenz die Gesetze der Physik in die Quere kommen. Obwohl die Lichtgeschwindigkeit extrem hoch ist, ist sie für Hochleistungsprozessoren nicht schnell genug. Wenn Sie die Uhr an ein Ende des Chips anschließen würden und das Signal das andere Ende erreichen würde, wäre es nicht wesentlich nicht synchron. Um alle Teile des Chips in der Zeit zu halten, wird die Uhr unter Verwendung des sogenannten H-Baums verteilt. Dies ist eine Struktur, die sicherstellt, dass alle Endpunkte genau den gleichen Abstand vom Zentrum haben.

Das Entwerfen jedes einzelnen Transistors, Taktsignals und Stromanschlusses auf einem Chip kann äußerst mühsam und komplex erscheinen, und das wäre sicherlich richtig. Obwohl Unternehmen wie Intel, Qualcomm und AMD Tausende von Ingenieuren haben, wäre es nicht möglich, jeden Aspekt eines Chips manuell zu entwerfen. Um die Chips in einem solchen Maßstab zusammenzubauen, verwenden sie eine Vielzahl fortschrittlicher Werkzeuge, um Entwürfe und Schemata für sie zu erstellen. Diese Tools erhalten normalerweise eine umfassende Erklärung der Funktionsweise der Komponente und ermitteln die am besten geeignete Hardwarekonfiguration, um diese Anforderungen zu erfüllen. Vor kurzem, Hochstufige Synthese Auf diese Weise können Entwickler die gewünschte Funktionalität im Code angeben und dann die Computer herausfinden lassen, wie sie das Beste aus der Hardware herausholen können.

So wie Sie Computerprogramme mit Code beschreiben können, können Designer Hardware durch Code beschreiben. Mit Sprachen wie Verilog und VHDL können Hardwareentwickler die Funktionalität der von ihnen hergestellten Schaltkreise ausdrücken. Simulation und Verifikation werden in diesen Entwürfen durchgeführt, und wenn alles passiert, können sie zu spezifischen Transistoren synthetisiert werden, die die Schaltung bilden. Die Überprüfung sieht möglicherweise nicht so auffällig aus wie das Entwerfen eines neuen Caches oder Kernels, ist jedoch viel wichtiger. Für jeden Konstrukteur, den ein Unternehmen verwendet, können fünf oder mehr Verifizierungsingenieure vorhanden sein.

Das Überprüfen eines neuen Designs kostet viel mehr Zeit und Geld als das Erstellen des eigentlichen Chips. Unternehmen investieren viel Zeit und Geld in die Überprüfung, da es keine Möglichkeit gibt, einen Chip zu reparieren, sobald er in Produktion geht. Sie können mit der Software nur einen Patch erstellen, aber die Hardware funktioniert nicht so. Zum Beispiel Intel Fehler im Gleitkommaabschnitt Einige Pentium-Chips kosten heute 2 Milliarden US-Dollar.

Es kann schwierig sein, sich darüber Gedanken zu machen, wie ein Chip mehrere Milliarden Transistoren haben kann und was sie alle tun. Wenn Sie den Chip in seine internen Komponenten zerlegen, wird es etwas einfacher. Transistoren bilden Logikgatter, Logikgatter werden zu Funktionseinheiten kombiniert, die eine bestimmte Aufgabe ausführen, und diese Funktionseinheiten werden miteinander verbunden, um die Computerarchitektur zu bilden, über die wir in Kapitel 1 gesprochen haben.

Der Großteil der Entwurfsarbeit ist automatisiert, aber dies sollte Ihnen ein neues Verständnis dafür geben, wie komplex die neue CPU ist, die Sie kaufen.

Dieses zweite Kapitel unserer Reihe befasste sich mit dem CPU-Entwurfsprozess. Wir sprachen über Transistoren, Logikgatter, Leistungs- und Taktlieferung, Entwurfssynthese und Validierung. In Kapitel 3 werden wir sehen, was erforderlich ist, um einen Chip physisch zu erstellen. Jedes Unternehmen prahlt gerne damit, wie fortschrittlich seine Herstellungsprozesse sind (Intel 10 nm, Apple und AMD 7 nm usw.), aber was bedeuten diese Zahlen eigentlich? Beobachten Sie uns weiter.

Empfohlene Lektüre:

Masthead Kredit: Futuristische Code-Verarbeitung für Leiterplatten von Kirill Savenko