Mein Wissen ist sehr vage, da wir nur visuelle Diagramme usw. haben, aber wir haben Speicheradressen und Register, wobei die ALU (anscheinend) das Herz ist. Single-Core-CPUs verarbeiten jeweils einen Befehl. AFAIK und Multi-Core-CPUs weisen bis zu einem gewissen Grad Parallelität auf. Woher kommen also die Millionen von Transistoren und wie verwalten 32 Register alles? Ich weiß, wir haben FPUs, wie viele Transistoren diese ungefähr verwenden würden. Jeder Weg, um eine ziemlich einfache Vorstellung davon zu bekommen, was der Großteil der Transistoren tut, warum mehr schneller bedeutet und wie die Register alles "verwalten".
computer-architecture
user12979
quelle
quelle
Antworten:
Das ist eine große Frage. Eine vollständige Antwort würde viel mehr Platz in Anspruch nehmen, als Sie lesen möchten (ganz zu schweigen davon, dass ich vermute, dass die Länge einer SE-Antwort begrenzt ist), aber ich werde versuchen, Ihnen eine Vorstellung davon zu geben, was vor sich geht in der CPU.
Erstens ist ein Transistor (wenn er in einer CPU verwendet wird) im Wesentlichen ein Schalter, wie ein Lichtschalter, außer dass Sie ihn nicht manuell ein- oder ausschalten müssen. Sie wird vielmehr durch elektrischen Strom gesteuert. Das Wichtigste, was zu verstehen ist, ist, dass moderne Computer Geräte mit zwei Zuständen sind: Das einzige, was wirklich zählt, ist, ob ein Kabel einen Strom hat oder nicht.
Man beginnt dann den Prozess des Chipdesigns, indem man beispielsweise entscheidet, wie eine ganze Zahl (oder andere Daten) dargestellt wird. Beispielsweise für Ganzzahlen entscheiden sich die Chipdesigner im Allgemeinen für sie, indem sie Drähte in einer logischen Einheit zusammenfassen. Mit einer Sammlung von vier Drähten 16 mögliche Muster dargestellt werden: , wobei ein Muster wie eine Spannung in den Drähten 1, 2 und 4 und keine Spannung in Draht 3 darstellen würde und diese Sammlung möglicherweise als Nummer 13 interpretiert wird. In diesem Beispiel Wir hätten einen 4-Bit-Chip . Ein moderner Computer würde entweder 32 oder 64 Drähte als Einheit behandeln.0000,0001,…1111 1101
Es kommt vor, dass man mit einer entsprechend verbundenen Sammlung von Schaltern (auch Transistoren genannt) Dinge tun kann, wie zwei Zahlen hinzufügen, zwei Zahlen auf Gleichheit vergleichen, entscheiden, ob eine Zahl Null ist oder nicht, und so weiter. Oft werden alle diese Operationen gleichzeitig gleichzeitig ausgeführt, und die relevante wird durch die aktuelle Anweisung ausgewählt, die bestimmt, welches der verschiedenen Ergebnisse verwendet werden soll und wohin dieses Ergebnis gesendet wird. Die gesamte Verkehrssteuerung wird auch von Schaltern gesteuert, abhängig von der aktuellen Anweisung (in dem ausgeführten Programm). Darüber hinaus können durch diese Schalter auch Dinge wie Speicher und Register implementiert werden, in denen Informationen gespeichert sind.
Um ein Gefühl für die Anzahl der verwendeten Transistoren zu bekommen, benötigt eine Addiererschaltung in einem Bit-Computer möglicherweise etwa Transistoren, ein Bit-Register benötigt möglicherweise Transistoren und die Verkehrssteuerungsschaltung, um die Ergebnisse an die zu senden Der richtige Ort erfordert möglicherweise mehrere hundert mehr für jedes Bit. Es ist nicht schwer vorstellbar, dass eine moderne CPU mit viel Funktionalität und einem breiten Datenpfad (die Anzahl der miteinander verbundenen Drähte) leicht Millionen von Transistoren aufnehmen kann.n 20n n 50n
Die Frage, warum "mehr [Transistoren] schneller bedeutet", lautet "nicht unbedingt". Wenn Sie jedoch die Breite des Datenpfads von 32 Bit auf 64 verdoppeln, können Sie im Allgemeinen größere Zahlen in einem einzigen bearbeiten Anweisung auf Kosten von mehr Transistoren.
Schließlich "verwalten" die Register nicht wirklich alles. Ein Register ist einfach eine sehr schnelle Speichereinheit, die Informationen viel schneller speichern und abrufen kann als beispielsweise RAM-Speicher. Aus diesem Grund werden Dinge wie der aktuelle Befehl häufig in einem speziellen Register (dem so genannten Befehlsregister) gespeichert, einfach weil der Zugriff auf seine Bits sehr schnell ist. Der aktuelle Befehl "verwaltet tatsächlich alles" und wird in einem Geschwindigkeitsregister gespeichert.
Dies ist eine sehr abgekürzte Erklärung - ich habe eine Menge Details ausgelassen und viele technische Fragen beschönigt, aber ich hoffe, es gibt Ihnen zumindest einen Eindruck davon, was in einem modernen Computer vor sich geht. [Eintritt in den Duck-and-Cover-Modus in Erwartung von Beschwerden von Computeringenieuren]
quelle
Normalerweise erfordert ein Bit Cache-Speicher 6 Transistoren (einige Designs verwenden mehr oder weniger unterschiedliche Kompromisse; siehe http://en.wikipedia.org/wiki/Static_random-access_memory ), sodass moderne CPUs mit großen Caches viel Transistoren verbrauchen Dort.
Moderne CPUs führen auch mehrere Befehle gleichzeitig aus, sodass sich auf dem Chip mehrere Ausführungseinheiten (ALUs) befinden, von denen jede ziemlich komplex ist.
Bestimmte mathematische Algorithmen in der FPU können durch Tabellensuche plus Interpolation beschleunigt werden. Der reziproke Quadratwurzelbefehl in Intel SSE-Einheiten wird beispielsweise mit einer Tabelle implementiert, die fast sofort eine 12-Bit-Genauigkeit bietet. Diese Tabelle ist im Wesentlichen ein Stück ROM auf dem Chip - das heißt, noch mehr Transistoren.
quelle
Hier gibt es mehrere Fragen, die sich nur auf eine konzentrieren. Die Transistoren auf einem Chip sind "ungefähr" proportional zur Oberfläche, die für die Transistoren verwendet wird. Sie können also Diagramme eines Chips finden, die die grafischen Grenzen verschiedener Subsysteme zeigen, und einfach die Formel verwenden, dass die Anzahl der Transistoren in einer Region gleich dem Verhältnis der Fläche dieser Region zur Gesamtfläche mal der Gesamtzahl der Transistoren auf dem Chip ist.
Beispiel in diesem Artikel:
Abb. 1 zeigt die grafischen Grenzen auf dem Chip. In Abb. 4 sind der Bereich und die Anzahl der Geräte in Millionenhöhe für die einzelnen Funktionen der CPU angegeben. Die Ausnahme ist, dass es den Anschein hat, dass Cache-Schaltungen sehr dicht sind und viel mehr Transistoren pro Bereich haben. Es scheint 3x die Transistoren bei 2/3 der Fläche zu haben. Anscheinend sieht es auf diesem Chip so aus, als ob die Transistoren für den schnellen Cache vorgesehen sind.
quelle
Die einfache Antwort lautet: Transistoren sind die Grundkomponenten von Logikgattern, Registern und Speichervorrichtungen. Ihre verschiedenen Konfigurationen ermöglichen die oder und nicht und Flip-Flops, die die Register und Prozessoren höherer Ordnung umfassen. Suchen Sie die 7404 (nicht Tor) 7408 (und) und die 7432 (oder Tore). Die Basis 7474 und 74279 sind Speicherkonfigurationen. Ich bin mir nicht sicher, ob National Semiconductor den aktuellen Schaltplan noch veröffentlicht, Texas Instruments jedoch.
quelle