Transistoren dienen in einem Stromkreis mehreren Zwecken, dh Schaltern, zur Verstärkung elektronischer Signale, mit denen Sie den Strom usw. steuern können.
Kürzlich habe ich jedoch unter anderem über das Gesetz von Moore gelesen, dass in modernen elektronischen Geräten eine große Anzahl von Transistoren eingebaut ist, wobei die Anzahl der Transistoren in der modernen Elektronik im Bereich von Millionen, wenn nicht Milliarden liegt.
Aber warum braucht eigentlich jemand so viele Transistoren? Wenn Transistoren als Schalter usw. funktionieren, warum brauchen wir dann so eine absurd große Menge davon in unseren modernen elektronischen Geräten? Können wir die Dinge nicht effizienter machen, so dass wir deutlich weniger Transistoren als derzeit verwenden?
quelle
Antworten:
Transistoren sind Schalter, ja, aber Schalter sind mehr als nur zum Ein- und Ausschalten von Lichtern.
Die Schalter sind zu Logikgattern zusammengefasst. Logikgatter sind zu Logikblöcken zusammengefasst. Logikbausteine sind zu Logikfunktionen zusammengefasst. Logikfunktionen sind in Chips zusammengefasst.
Beispielsweise verwendet ein TTL-NAND-Gatter typischerweise 2 Transistoren (NAND-Gatter werden zusammen mit NOR als einer der Grundbausteine der Logik angesehen):
simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab
Als die Technologie von TTL auf CMOS überging (was heute de facto der Standard ist), gab es im Grunde eine sofortige Verdopplung der Transistoren. Zum Beispiel ging das NAND-Gatter von 2 Transistoren auf 4:
simulieren Sie diese Schaltung
Ein Latch (wie ein SR) kann unter Verwendung von 2 CMOS-NAND-Gattern, also 8 Transistoren, hergestellt werden. Ein 32-Bit-Register könnte daher unter Verwendung von 32 Flip-Flops, also 64 NAND-Gattern oder 256 Transistoren erstellt werden. Eine ALU kann mehrere Register sowie viele andere Gatter aufweisen, so dass die Anzahl der Transistoren schnell zunimmt.
Je komplexer die Funktionen des Chips sind, desto mehr Gates werden benötigt und desto mehr Transistoren.
Ihre durchschnittliche CPU ist heutzutage erheblich komplexer als ein Z80-Chip von vor 30 Jahren. Es werden nicht nur Register mit der 8-fachen Breite verwendet, sondern die eigentlichen Operationen (komplexe 3D-Transformationen, Vektorverarbeitung usw.) sind auch weitaus komplexer als die älteren Chips. Ein einzelner Befehl in einer modernen CPU kann viele Sekunden (oder sogar Minuten) der Berechnung in einem alten 8-Bitter-Prozessor in Anspruch nehmen, und dies wird letztendlich durch die Verwendung von mehr Transistoren erreicht.
quelle
Ich habe bei einem lokalen Anbieter verschiedener Halbleiterbauelemente nachgefragt, und der größte SRAM-Chip, den sie hatten, war 32 MBit. Das sind 32 Millionen einzelne Bereiche, in denen eine 1 oder eine 0 gespeichert werden kann. Unter der Annahme, dass "mindestens" 1 Transistor zum Speichern von 1 Bit Information benötigt wird, sind dies 32 Millionen Transistoren mit einem absoluten Minimum.
Was bringt dir 32 Mbits? Das sind 4 MB oder ungefähr die Größe einer 4-minütigen MP3-Musikdatei geringer Qualität.
BEARBEITEN - eine SRAM-Speicherzelle nach meinem googeln sieht so aus: -
Das sind also 6 Transistoren pro Bit und mehr als 192 Millionen Transistoren auf dem von mir erwähnten Chip.
quelle
Ich denke, das OP kann durch elektronische Geräte mit so vielen Transistoren verwirrt werden . Das Mooresche Gesetz betrifft hauptsächlich Computer (CPUs, SRAM / DRAM / verwandte Speicher, GPUs, FPGAs usw.). So etwas wie ein Transistorradio befindet sich (meistens) auf einem einzelnen Chip, kann aber nicht all die vielen Transistoren nutzen. Computergeräte hingegen haben einen unersättlichen Appetit auf Transistoren für zusätzliche Funktionen und größere Datenbreiten.
quelle
Wie bereits erwähnt, benötigt der SRAM 6 Transistoren pro Bit. Wenn wir unseren Cache erweitern (aus Effizienzgründen), benötigen wir immer mehr Transistoren. Wenn Sie sich einen Prozessorwafer ansehen, stellen Sie möglicherweise fest, dass der Cache größer ist als ein einzelner Kern eines Prozessors. Wenn Sie sich die Kerne genauer ansehen, sehen Sie darin gut organisierte Teile, die auch Cache sind (wahrscheinlich Daten und Befehl L1) Caches). Mit 6 MB Cache benötigen Sie 300 Millionen Transistoren (plus der Adressierungslogik).
Aber wie bereits erwähnt, sind Transistoren nicht der einzige Grund, die Anzahl der Transistoren zu erhöhen. Auf einem modernen Core i7 werden mehr als 7 Befehle pro Taktperiode und pro Core ausgeführt (unter Verwendung des bekannten Dhrystone-Tests). Dies bedeutet eines: Moderne Prozessoren führen viel paralleles Rechnen durch. Wenn Sie mehr Operationen gleichzeitig ausführen möchten, müssen Sie über mehr Einheiten und eine sehr clevere Logik für die Planung verfügen. Clevere Logik erfordert viel komplexere logische Gleichungen und so viel mehr Transistoren, um sie zu implementieren.
quelle
Von den Details ein wenig Abstand nehmen:
Computer sind komplexe digitale Schaltgeräte. Sie haben Schicht für Schicht Komplexität. Die einfachste Ebene sind logische Gatter wie NAND-Gatter, wie beschrieben. Dann kommen Addierer, Schieberegister, Latches usw. hinzu. Dann fügen Sie getaktete Logik, Befehlsdecodierung, Caches, Arithmetikeinheiten, Adressendecodierung hinzu. Es geht weiter und weiter und weiter . (Ganz zu schweigen von dem Speicher, der mehrere Transistoren pro gespeichertem Datenbit erfordert.)
Jede dieser Ebenen verwendet viele Teile der vorherigen Komplexitätsstufe, die alle auf vielen, vielen grundlegenden Logikgattern basieren.
Dann fügen Sie Parallelität hinzu. Um eine immer schnellere Leistung zu erzielen, sind moderne Computer so konzipiert, dass sie viele Aufgaben gleichzeitig ausführen. Innerhalb eines einzigen Kerns laufen der Adressdecoder, die Recheneinheit, der Vektorprozessor, der Cache-Manager und verschiedene andere Subsysteme gleichzeitig, alle mit ihren eigenen Steuerungssystemen und Zeitgebungssystemen.
Moderne Computer haben auch immer mehr separate Kerne (mehrere CPUs auf einem Chip).
Jedes Mal, wenn Sie eine Abstraktionsebene hinaufsteigen, steigt die Komplexität um mehrere Größenordnungen. Selbst die niedrigste Komplexität weist Tausende von Transistoren auf. Gehen Sie zu High-Level-Subsystemen wie einer CPU und Sie sprechen von mindestens Millionen von Transistoren.
Dann gibt es GPUs (Graphics Processing Units). Eine GPU verfügt möglicherweise über TAUSEND separate Gleitkommaprozessoren, die für die Vektormathematik optimiert sind, und jeder Subprozessor enthält mehrere Millionen Transistoren.
quelle
Ohne zu versuchen, zu erörtern, wie viele Transistoren für bestimmte Elemente benötigt werden, verwenden CPUs mehr Transistoren, um die Funktionen zu verbessern, einschließlich:
quelle
Abgesehen von der Erhöhung der Rohspeicherkapazität von RAM, Cache, Registern und dem Hinzufügen von mehr Rechenkernen und größeren Busbreiten (32 gegenüber 64 Bit usw.) liegt dies daran, dass die CPU immer komplizierter wird.
CPUs sind Rechnereinheiten, die aus anderen Rechnereinheiten bestehen. Ein CPU-Befehl durchläuft mehrere Stufen. In den alten Tagen gab es eine Stufe, und das Taktsignal würde so lange dauern, bis sich alle (aus Transistoren bestehenden) Logikgatter im schlimmsten Fall einpendelten. Dann erfanden wir das Pipelining, bei dem die CPU in Stufen aufgeteilt wurde: Befehlsabruf, Dekodierung, Verarbeitung und Schreibergebnis. Diese einfache 4-stufige CPU könnte dann mit einer Taktrate von 4x der ursprünglichen Taktrate laufen. Jede Stufe ist von den anderen Stufen getrennt. Dies bedeutet, dass sich nicht nur die Taktrate auf das Vierfache (bei vierfacher Verstärkung) erhöhen lässt, sondern dass Sie jetzt vier Anweisungen in der CPU überlagern ("pipelined") können, was zu einer vierfachen Leistungssteigerung führt. Jetzt werden jedoch "Gefahren" erzeugt, weil ein eingehender Befehl vom Ergebnis des vorherigen Befehls abhängen kann. Wenn es in die Pipeline eingespeist wird, wird es nicht empfangen, wenn es in die Prozessphase eintritt, während das andere die Prozessphase verlässt. Daher müssen Sie Schaltkreise hinzufügen, um dieses Ergebnis an die Anweisung weiterzuleiten, die in die Prozessstufe eintritt. Die Alternative besteht darin, die Pipeline anzuhalten, was die Leistung verringert.
Jede Pipelinestufe und insbesondere der Prozessteil kann in immer mehr Schritte unterteilt werden. Dies führt dazu, dass Sie eine große Menge an Schaltkreisen erstellen, um alle Abhängigkeiten (Gefahren) in der Pipeline zu bewältigen.
Andere Schaltungen können ebenfalls verbessert werden. Ein trivialer digitaler Addierer, der "Ripple Carry" -Addierer genannt wird, ist der einfachste, kleinste, aber langsamste Addierer. Der schnellste Addierer ist ein "Carry Look-Ahead" -Addierer und benötigt einen enormen exponentiellen Schaltungsaufwand. Während meines Kurses in Computertechnik ging mir der Speicher eines 32-Bit-Carry-Look-Ahead-Addierers in meinem Simulator aus, sodass ich ihn in zwei 16-Bit-CLA-Addierer in einer Ripple-Carry-Konfiguration zerlegte. (Das Addieren und Subtrahieren ist für Computer sehr schwierig, das Multiplizieren ist einfach, das Teilen ist sehr schwierig.)
Ein Nebeneffekt davon ist, dass die Taktfrequenzen zunehmen können, wenn wir die Größe der Transistoren verkleinern und die Stufen unterteilen. Auf diese Weise kann der Prozessor mehr arbeiten, damit er heißer läuft. Wenn die Frequenzen zunehmen, werden auch Ausbreitungsverzögerungen offensichtlicher (die Zeit, die benötigt wird, bis eine Pipeline-Stufe abgeschlossen ist und das Signal auf der anderen Seite verfügbar ist). Aufgrund der Impedanz beträgt die effektive Ausbreitungsgeschwindigkeit etwa 1 Fuß pro Nanosekunde (1 GHz). Mit zunehmender Taktrate wird das Layout des Chips immer wichtiger, da ein 4-GHz-Chip eine maximale Größe von 3 Zoll hat. Jetzt müssen Sie zusätzliche Busse und Schaltkreise einbinden, um alle Daten zu verwalten, die sich auf dem Chip bewegen.
Wir fügen auch ständig Anweisungen zu Chips hinzu. SIMD (Single Instruction Multiple Data), Stromsparmodus usw. erfordern alle eine Schaltung.
Schließlich fügen wir Chips weitere Funktionen hinzu. Früher waren Ihre CPU und Ihre ALU (Arithmetic Logic Unit) getrennt. Wir haben sie kombiniert. Die FPU (Floating Point Unit) war separat, das wurde auch kombiniert. Heutzutage fügen wir USB 3.0, Videobeschleunigung, MPEG-Dekodierung usw. hinzu. Wir verlagern immer mehr Berechnungen von Software in Hardware.
quelle
Majenko hat eine großartige Antwort auf die Verwendung der Transistoren. Lassen Sie mich stattdessen von einem anderen Ansatzvektor ausgehen und mich mit der Effizienz befassen.
Ist es effizient, beim Entwerfen so wenig Transistoren wie möglich zu verwenden?
Im Grunde kommt es darauf an, von welcher Effizienz Sie sprechen. Vielleicht sind Sie ein Mitglied einer Religion, die behauptet, es sei notwendig, so wenig Transistoren wie möglich zu verwenden - in diesem Fall ist die Antwort ziemlich gegeben. Oder vielleicht sind Sie ein Unternehmen, das ein Produkt baut. Plötzlich wird eine einfache Frage nach der Effizienz zu einer sehr komplizierten Frage nach dem Kosten-Nutzen-Verhältnis.
Und hier kommt der Kicker - Transistoren in integrierten Schaltkreisen sind extrem billig und werden mit der Zeit immer billiger (SSDs sind ein gutes Beispiel dafür, wie die Kosten für Transistoren gesenkt wurden). Arbeit ist andererseits extrem teuer.
In den Anfangszeiten von ICs gab es einen gewissen Druck, die Anzahl der benötigten Komponenten so gering wie möglich zu halten. Dies lag einfach daran, dass sie einen erheblichen Einfluss auf die Kosten eines Endprodukts hatten (in der Tat waren sie oft die meisten Kosten des Produkts), und wenn Sie ein fertiges, "verpacktes" Produkt bauen, sind die Arbeitskosten gleich Verteile es auf alle Teile, die du machst. Die frühen IC-basierten Computer (Think Video Arcades) waren auf möglichst geringe Stückkosten ausgelegt. Die Fixkosten (im Gegensatz zu Stückkosten) werden jedoch stark von der Menge beeinflusst, die Sie verkaufen können. Wenn Sie nur ein Paar verkaufen wollten, war es wahrscheinlich nicht wert, zu viel Zeit für die Senkung der Stückkosten aufzuwenden. Wenn Sie andererseits versuchen, einen riesigen Markt aufzubauen,
Beachten Sie einen wichtigen Punkt - es ist nur dann sinnvoll, viel Zeit in die Verbesserung der "Effizienz" zu investieren, wenn Sie etwas für die Massenproduktion entwerfen. Dies ist im Grunde genommen das, was "Industrie" ist - bei Handwerkern sind die Kosten für qualifizierte Arbeitskräfte häufig die Hauptkosten des fertigen Produkts. In einer Fabrik entstehen mehr Kosten durch Materialien und (relativ) ungelernte Arbeitskräfte.
Kommen wir schnell zur PC-Revolution. Als PCs im IBM-Stil auf den Markt kamen, waren sie sehr dumm. Extrem blöd. Sie waren Allzweckcomputer. Für so ziemlich jede Aufgabe könnte man ein Gerät entwerfen, das es besser, schneller und billiger macht. Mit anderen Worten, in der vereinfachten Effizienzansicht waren sie sehr ineffizient. Taschenrechner waren viel billiger, passen in Ihre Hosentasche und lassen eine Batterie für lange Zeit laufen. Videospielkonsolen verfügten über spezielle Hardware, die sie beim Erstellen von Spielen sehr gut machten. Das Problem war, dass sie nichts anderes machen konnten. Der PC konnte alles - er hatte ein viel schlechteres Preis- / Leistungsverhältnis, aber Sie waren nicht gezwungen, einen Taschenrechner oder eine 2D-Sprite-Spielekonsole zu entwickeln. Warum haben Wolfenstein und Doom (und auf Apple PCs, Marathon) erscheinen auf Allzweckcomputern und nicht auf Spielekonsolen? Da die Konsolen 2D-Sprite-basierte Spiele sehr gut beherrschen (stellen Sie sich das typische JRPG oder Spiele wie Contra vor), haben Sie festgestellt, dass die Rechenleistung für andere Aufgaben nicht ausreicht, wenn Sie sich von der effizienten Hardware entfernen möchten.
Der scheinbar weniger effiziente Ansatz bietet Ihnen also einige sehr interessante Optionen:
All dies führt zu einer "Verschwendung" von Transistoren, aber es handelt sich nicht um echte Verschwendung, da die tatsächlichen Gesamtkosten niedriger sind, als wenn Sie auf die einfachen "so wenigen Transistoren wie möglich" setzen würden.
quelle
Eine andere Seite der Geschichte "so vieler Transistoren" ist, dass diese Transistoren nicht von einem Menschen individuell entworfen wurden. Ein moderner CPU-Kern hat in der Größenordnung von 0,1 Milliarden Transistoren, und kein Mensch entwirft jeden dieser Transistoren direkt. Das wäre nicht möglich. Eine Lebensdauer von 75 Jahren beträgt nur 2,3 Milliarden Sekunden.
Um solch große Designs möglich zu machen, müssen die Menschen die Funktionalität des Geräts auf einer viel höheren Abstraktionsebene definieren als einzelne Transistoren. Die Umwandlung in die einzelnen Transistoren wird als Schaltkreissynthese bezeichnet und erfolgt mit sehr teuren proprietären Tools, deren Gesamtkosten im Laufe der Jahre bei den großen CPU-Herstellern und -Herstellern liegen.
Die Schaltungssynthesewerkzeuge erzeugen keine Designs mit der geringstmöglichen Anzahl von Transistoren. Dies geschieht aus einer Vielzahl von Gründen.
Lassen Sie uns zunächst den grundlegendsten Fall behandeln: Jede komplexe Schaltung kann durch eine viel einfachere, möglicherweise serielle CPU mit ausreichend Speicher simuliert werden. Sie können einen i7-Chip mit perfekter Genauigkeit simulieren, wenn Sie nur genügend seriellen Arbeitsspeicher an ein Arduino anschließen. Eine solche Lösung hat viel weniger Transistoren als die reale CPU und läuft mit einer effektiven Taktrate von 1 kHz oder weniger unglaublich langsam. Wir haben offensichtlich nicht die Absicht, die Anzahl der Transistoren so weit zu reduzieren .
Daher müssen wir uns auf eine bestimmte Klasse von Transformationen von Design zu Transistoren beschränken: jene, die die im ursprünglichen Design integrierte parallele Kapazität beibehalten.
Selbst dann wird die Optimierung für eine minimale Anzahl von Transistoren wahrscheinlich Designs hervorbringen, die nicht unter Verwendung eines existierenden Halbleiterprozesses herstellbar sind. Warum? Da die Chips, die Sie tatsächlich herstellen können, 2D-Strukturen sind und eine gewisse Schaltungsredundanz erfordern, können Sie diese Transistoren einfach miteinander verbinden, ohne dass dazu ein Kilogramm Metall erforderlich ist. Das Ein- und Ausblenden der Transistoren und der daraus resultierenden Gates spielt eine Rolle.
Schließlich sind die Tools theoretisch nicht perfekt: Normalerweise würde es viel zu viel CPU-Zeit und Speicher erfordern, um Lösungen zu generieren, die in Bezug auf die Anzahl der Transistoren global minimal sind, wenn man bedenkt, dass ein Chip herstellbar ist.
quelle
Ich denke, das OP muss wissen, dass ein "einfacher Schalter" oft mehrere Transistoren benötigt. Warum? Aus vielen Gründen. Manchmal werden zusätzliche Transistoren benötigt, damit der Stromverbrauch für den Status "Ein" oder "Aus" niedrig ist. Manchmal werden Transistoren benötigt, um mit Unsicherheiten bei Spannungseingängen oder Komponentenspezifikationen umzugehen. Viele Gründe. Aber ich schätze den Punkt. Schauen Sie sich den Schaltplan für einen OP-AMP an und Sie sehen ein paar Dutzend Transistoren! Aber sie wären nicht da, wenn sie der Rennstrecke keinen Zweck erfüllen würden.
quelle
Grundsätzlich versteht der Computer nur 0s und 1s. Dies wird von diesen Schaltern bestimmt. Ja, die Funktionen der Transistoren sind mehr als die von Schaltern. Wenn also ein Schalter entscheiden kann, ob der Ausgang eine 0 oder eine 1 sein muss (unter der Annahme, dass es sich um eine einzelne Bi-Operation handelt), ist die Anzahl der Bits umso größer. Je mehr Transistoren .. also kein Wunder, warum wir Millionen von Transistoren in einen einzelnen Mikroprozessor einbetten müssen .. :)
quelle
Im Zeitalter der Technologie brauchen wir intelligente Geräte (klein, schnell und effizient). Diese Vorrichtungen bestehen aus integrierten Schaltkreisen (ICs), die eine Nr. Enthalten. von Transistoren. Wir brauchen immer mehr Transistoren, um ICs intelligenter und schneller zu machen, da in der Elektronik jeder Schaltkreis in einem IC aus einem Addierer, Subtraktor, Multiplizierer, Teiler, Logikgattern, Registern, Multiplexern, Flip-Flops, Zählern, Schiebern und Speichern besteht und Mikroprozessoren usw., um irgendeine Logik in Vorrichtungen zu implementieren, und diese bestehen nur aus Transistoren (MOSFETs). Mit Hilfe von Transistoren können wir jede Logik implementieren. Also brauchen wir immer mehr Transistoren .....
quelle