Was ist die Funktion eines Transistors in einem Mikroprozessor?

7

Ich habe keine fundierten Kenntnisse der Elektrotechnik, möchte aber den Zweck eines Transistors in einem Mikroprozessor verstehen . Normalerweise wird über Moores Gesetz gesprochen und dass Transistoren die Rechengeschwindigkeit irgendwie erhöhen, aber mir ist nicht klar, wie genau diese Transistoren verwendet werden. Ich denke, es hat etwas mit Pipelining zu tun. Wenn beispielsweise eine CPU einen Befehl aus dem Speicher liest, wie werden die für diesen Befehl erforderlichen Operationen mit Transistoren ausgeführt?

T. Webster
quelle
Transistoren bilden Logikgatter, diese Gatter werden verwendet, um Flip-Flops herzustellen. Gates werden verwendet, um Kombinationsschaltungen herzustellen, während Flip-Flops verwendet werden, um sequentielle Schaltungen herzustellen. Diese werden dann verwendet, um die verschiedenen Bausteine ​​eines Mikroprozessors wie der ALU und anderer herzustellen.
Quantum231

Antworten:

16

Es wäre ziemlich schwierig, einen modernen Mikrocontroller auf Transistorebene zu entwerfen. Transistoren werden verwendet, um Logikgatter als Bausteine ​​der niedrigsten Ebene herzustellen . Das einfachste Gatter ist das NICHT-Gatter, das den Eingangspegel invertiert: Eine logische 0 wird zu einer 1 und umgekehrt. Das NICHT-Gatter besteht aus 2 Transistoren:

Geben Sie hier die Bildbeschreibung ein

Der obere Transistor leitet, wenn sein Eingang (der kleine Punkt) niedrig ist, der untere Transistor (kein Punkt), wenn sein Eingang hoch ist. Wenn Sie also einen hohen Eingang anlegen, leitet der untere Transistor als Schalter und schaltet den Ausgang Q auf Vss (das ist Ihr -) oder einen niedrigen Pegel. Wir haben die Eingabe invertiert. Andere Tore basieren darauf. Nehmen Sie zum Beispiel das NAND-Gatter. Es hat zwei oder mehr Eingänge und der Ausgang ist niedrig, wenn alle Eingänge hoch sind. In allen anderen Fällen ist der Eingang hoch.

Geben Sie hier die Bildbeschreibung ein

Dies ist ein NAND-Gatter mit 2 Eingängen. Sie können immer noch einen Teil des Wechselrichters darin sehen. Wenn beide Eingänge hoch sind, leiten beide unteren Transistoren, und der Ausgang wird durch seine Verbindung mit Vss niedrig gemacht. Wenn einer der Eingänge niedrig ist, leitet mindestens einer der oberen Transistoren und der Ausgang wird durch die Verbindung mit Vdd hoch (das ist Ihr +). Wir haben ein funktionierendes NAND-Gatter. Und so geht es weiter, wir können ein XOR-Gatter mit 4 NAND-Gattern erstellen, und andere komplexere Logik wird aus einer Kombination von Bausteinen erstellt. Sie benötigen einen Baustein, um eine Registerfunktion zu erstellen: einen Teil, der seinen Status wie ein Speicher beibehalten kann.

Wenn ein Befehl aus dem RAM lesen möchte, gibt es zuerst den Befehlsdecoder. Durch eine Kombination von Gattern leitet es eine Anzahl von Signalen ab, die es zur Ausführung des Befehls benötigt. Eine davon besteht darin, die zu lesende RAM-Adresse an den Adressbus zu übergeben. (Busse sind Signalkanäle, ein Adressbus für einen 8-Bit-Controller kann beispielsweise 16 parallele Drähte haben. Busse sind eine Möglichkeit, die Dinge zu organisieren. Ohne sie würde das Design des Controllers sehr ineffizient werden.) Ein anderes Signal aktiviert die RD Zeile (für "Lesen"), die dem RAM signalisiert, dass die Daten im Datenbus abgelegt werden sollen. Ein weiteres Signal speichert diese Daten in einem Register.

Eine wichtige Sache ist das Timing. Sie können die Daten nicht zwischenspeichern, wenn Sie dem RAM nicht die Zeit gegeben haben, sie auf dem Bus zu platzieren. Alles nach der gleichen Logik, aus Bausteinen, die wiederum aus Transistoren aufgebaut sind.

"Transistoren erhöhen irgendwie die Rechengeschwindigkeit"

Es gibt nichts anderes als Transistoren und ihre Verbindungen. Transistoren alleine erhöhen die Geschwindigkeit nicht. Was jedoch stimmt, ist, dass technologische Verbesserungen schnellere Transistoren ermöglichen und schnellere Transistoren eine schnellere Berechnung bedeuten. Einige dieser Verbesserungen sind einzigartige Technologieschritte, die Sie nur einmal ausführen können. Aber die Skalierung ist ein weiterer Faktor, und das haben sie seit der Entwicklung der ersten ICs immer wieder wiederholt. Vor 40 Jahren hatte ein IC normalerweise 5 bis 8μm Feature-Größe. Heute können wir bis zu 22 nm Feature-Größe produzieren. (DNA hat einen Durchmesser von 15 nm.) Bei kleinerer Strukturgröße ändern sich die physikalischen Eigenschaften des Transistors, sodass er schneller schalten kann. Moore sah in dieser fortgesetzten Skalierung einen Trend, der als Moores Gesetz bekannt wurde. Dies kann nicht ewig so weitergehen, ohne einen Sprung in die verwendete Technologie machen zu müssen. In den 80er Jahren wurde befürchtet, dass die damals verwendete Technologie ihre Grenzen bei etwa 200 nm bis 300 nm haben würde, da der lithografische Prozess bei Wellenlängen unter sichtbarem Licht möglicherweise nicht funktioniert. Aber Lithographie ist immer noch die Technologie, die heutzutage von Steppern verwendet wird.

stevenvh
quelle
@stevenvh Ich denke, der letzte Absatz Ihrer Antwort hat den größten Wert hinzuzufügen
vicatcu
@ Davidcary - danke, ich habe das erste behoben, habe nicht bemerkt, dass ich es zweimal gemacht habe :-)
Stevenvh
Als Antwort auf Warum bedeutet mehr Transistoren mehr Rechenleistung? und die Antwort von vicatcu auf diese Frage zeigt: "Transistoren allein erhöhen die Geschwindigkeit nicht" ist etwas irreführend.
Paul A. Clayton
9

Ohne das Buch über digitale Logik und Computerorganisation und -design neu zu schreiben , implementiert ein Transistor die Funktion eines Schalters im Kontext von Mikroprozessoren. Sie werden typischerweise verwendet, um "Schaltkreise" zu erzeugen (z. B. CMOS-Logikgatter ). Nach dem Moore'schen Gesetz geht es darum, wie viele Transistoren auf eine bestimmte Oberfläche (dh Transistordichte) passen können, und folglich um die Komplexität der Logik, die Sie in die Hardware implementieren können (und neben der Ausbeute, die bei der Herstellung erzielt werden kann).

Da Mikroprozessoren die meiste Zeit darauf warten, dass Speicheroperationen (Laden und Speichern) abgeschlossen werden, sind viele dieser Transistoren Hochgeschwindigkeitsspeichern auf dem Chip gewidmet, die als Caches bezeichnet werden und dazu beitragen, die Häufigkeit dieser tatsächlich benötigten Speicheroperationen zu verringern Verlasse den Chip. Kleinere Transistoren bedeuten, dass Sie jederzeit eine größere Teilmenge des RAM lokal in der CPU behalten können. Es werden auch mehr Transistoren verwendet, um ausgefallene Vorhersageschaltungen wie Verzweigungsvorhersagen und Lastwertvorhersagen zu implementieren .

Verzweigungsvorhersagen und Out-of-Order-Ausführungseinheiten helfen dabei, die Pipeline voll zu halten, indem sie anhand der mit dem Programmzähler verbundenen Heuristiken und der jüngsten Historie der Verzweigungsergebnisse (genommen oder nicht) erraten, in welche Richtung eine Verzweigungsanweisung gehen wird.

Lastwertvorhersagen dienen dazu, zu vermeiden, dass in den Speicher gewechselt wird, um einen Wert abzurufen (z. B. unter der Annahme eines bestimmten "Schrittes" oder einer anderen Heuristik darüber, wie sich die Daten an einer bestimmten Adresse befinden, basierend auf vorherigen Werten, die an dieser Adresse angezeigt werden).

Zusammen mit diesen prädiktiven Logikschaltungen kommen alle Logikschaltungen, die erforderlich sind, um berechnete Ergebnisse rückgängig zu machen und zu korrigieren, wenn sich herausstellt, dass die Vorhersagen falsch waren.

Zusammenfassend werden all diese zusätzlichen Transistoren verwendet, um:

  1. Vermeiden Sie, dass Anweisungen den Chip verlassen müssen (dh in den RAM gehen müssen), und
  2. Halten Sie die Pipeline voll oder vermeiden Sie es, in den Arbeitsspeicher zu wechseln, indem Sie die Ergebnisse der Abhängigkeit vorhersagen

Eine letzte Sache ist, dass sie verwendet werden können, um Ihren Datenpfad breiter zu machen (dh 64-Bit-Prozessoren anstelle von 32-Bit-Prozessoren).

vicatcu
quelle
Sie sprechen über Optimierungstechniken wie Caches und Pipelining, ohne die grundlegenden Funktionen zu erläutern. Ich denke, das kann verwirrend sein.
Stevenvh
@stevenvh sicher, aber die Frage, die er wirklich stellt, ist nicht "wofür wird ein Transistor im Allgemeinen verwendet", sondern "wie macht mehr Transistoren das Rechnen schneller" ...
vicatcu
Die Vorhersage der Lastabhängigkeit ist nicht mit der Vorhersage des Lastwerts identisch. Die Vorhersage der Lastabhängigkeit kann die Ausführung eines späteren Ladevorgangs ermöglichen, wenn ein früherer Speicher an einer noch nicht bekannten Adresse vorhanden war, wenn die Unabhängigkeit vorhergesagt wird. Die Vorhersage der Abhängigkeit von einem bestimmten Geschäft kann als Wertvorhersage angesehen werden. Eine allgemeinere Wertvorhersage wird derzeit nicht kommerziell implementiert.
Paul A. Clayton
1

Die Antwort auf Ihre Frage umfasst ungefähr 3 Universitätskurse in voller Länge. Möglicherweise mehr.

In einem modernen CMOS-Prozessor werden Transistoren verwendet, um verschiedene boolesche Logikoperationen auszuführen, Einsen und Nullen zu speichern und Signale zu verstärken, so dass sie über Drähte gesendet werden können, z. B. alle grundlegenden Operationen der digitalen Logik. Alle Funktionseinheiten, einschließlich Befehlsdecoder, in einem Prozessor sind nur große, manchmal sehr komplizierte Zustandsmaschinen, die mit Transistoren aufgebaut sind.

Das Gesetz von Moore schuf eine Roadmap für Industrietechnologien, in der Halbleiterunternehmen, um wettbewerbsfähig zu bleiben, immer mehr Transistoren auf einem Chip immer näher zusammenrücken, wodurch Mikroprozessoren mit jeder neuen Produktgeneration leistungsfähiger und schneller werden.

hotpaw2
quelle