Wie sind CPUs aufgebaut?

21

Ich habe vor einiger Zeit angefangen, mit Elektronik zu spielen und einfache Logikgatter mit Transistoren zu bauen. Ich weiß, dass moderne integrierte Schaltungen CMOS anstelle von Transistor-Transistor-Logik verwenden. Ich frage mich natürlich, wie die CPUs aufgebaut sind.

Wird das Design immer noch auf einer (Sub-) Logik-Gate-Ebene ausgeführt, oder gibt es in diesem Bereich nicht mehr viel Innovation und sind wir auf eine höhere Abstraktionsebene übergegangen? Ich verstehe, wie eine ALU aufgebaut ist, aber bei CPUs steckt noch viel mehr dahinter.

Woher kommen die Designs für die Milliarden von Transistoren? Werden sie größtenteils automatisch von Software generiert oder gibt es noch viel manuelle Optimierung?

Overv
quelle
2
Ich würde Verilog oder VHDL sagen.
Avakar
3
Obwohl diese Themen faszinierend sind, scheinen wir weit entfernt von "praktischen, beantwortbaren Fragen zu sein, die auf tatsächlichen Problemen beruhen, mit denen Sie konfrontiert sind" . Ich kann mir auch ein ganzes Buch vorstellen, das diese Frage beantwortet.
Martin
1
@Overv, es gibt noch viel zu tun, um sicherzustellen, dass die Basisblöcke, die Sie zusammenstecken, auf Gate-Ebene optimiert sind. Dann stecken Sie diese optimierten Blöcke einfach auf optimierte Weise ein!
Kortuk
13
Ich habe wieder zu öffnen - während ich damit einverstanden , dass eine vollständige Antwort zu sagen „alles , was Sie wissen müssen , eine ganze CPU von Grunde auf neu zu bauen“ ist kein gutes Spiel für diese Seite, ich glaube , ein kurzer Überblick und ein paar Links wären eine gute antwort hier.
Davidcary
1
Ich bin überrascht, dass wir keine Leute in der Halbleiterindustrie haben, die sich hier zu komplexerem ASIC-Design äußern können. Da ich kein Experte bin, habe ich nur ein paar Dinge gehört: Es gibt eine Menge Lizenzen für IP-Cores, und das Gebiet, in dem alles zusammengesetzt ist, heißt VLSI. Ich glaube, dass das Design in VHDL / Verilog mit hochoptimierten Synthesewerkzeugen erfolgt - wie dies auf die Wafer-Ebene gebracht und hergestellt wird, liegt außerhalb meines Wissens.
Jon L

Antworten:

10

Es ist sehr wahrscheinlich, dass CPUs und SoCs von Hardwarebeschreibungssprachen wie Verilog und VHDL (zwei Hauptakteure) verwendet werden.

Diese Sprachen ermöglichen unterschiedliche Abstraktionsebenen. In VHDL können Sie Logikblöcke als Entitäten definieren. Es enthält Ein- und Ausgangsanschlüsse. Innerhalb des Bausteins können Sie die gewünschte Logik definieren. Angenommen, Sie definieren einen Block mit Eingang A, Eingang B und Ausgang C. Sie können problemlos C = A und B schreiben, und im Grunde haben Sie einen AND-Port-Block erstellt. Dies ist möglicherweise der einfachste Block, den Sie sich vorstellen können.

Digitale Systeme sind in der Regel stark hierarchisch aufgebaut. Man kann mit den wichtigsten Funktionen beginnen, die eine CPU benötigt: Prozessorspeicher (mehrere?), PCI-Express und andere Busse. Innerhalb dieser Ebene können bereits Busse und Kommunikationssignale zwischen Speicher und Prozessor definiert werden.

Wenn Sie eine Ebene zurücktreten, wird das Innenleben definiert, um etwas zum „Funktionieren“ zu bringen. Am Beispiel eines Mikrocontrollers kann dieser eine UART-Schnittstelle enthalten. Die tatsächliche Logik, die erforderlich ist, um einen funktionsfähigen UART zu erstellen, ist eine Ebene darunter definiert. Hier kann viel andere Logik erforderlich sein, um den erforderlichen Takt zu generieren und zu teilen, Daten zu puffern (FIFO-Puffer) und Daten an die CPU zu melden (irgendeine Art von Bus) System).

Das Interessante an VHDL und digitalem Design ist die Wiederverwendung von Blöcken. Sie können zum Beispiel einfach den UART-Block in Ihre oberste Ebene kopieren und einfügen, um 2 UARTs zu erstellen (na ja, vielleicht nicht so einfach, nur wenn der UART-Block eine gewisse Adressierungsfähigkeit besitzt!).

Dieses Design ist keine Art von Gate-Level-Design. Die VHDL kann auch so "kompiliert" werden, dass sie schließlich in Logikgatter übersetzt wird. Eine Maschine kann dies weitaus besser optimieren als ein Mensch (und auch schneller). Beispielsweise; Die Interna von Block A benötigen einen Inverter, bevor das Signal ausgegeben wird. Block B nimmt dieses Ausgangssignal und invertiert es erneut. Nun, 2 Wechselrichter in Serie machen nicht viel richtig? Richtig, Sie können sie also genauso gut weglassen. Im „Top-Level“ -Design können Sie die beiden Wechselrichter jedoch nicht in Serie erkennen. Sie sehen lediglich zwei verbundene Ports. Ein Compiler kann dies viel schneller optimieren als ein Mensch.

Grundsätzlich beinhaltet das digitale Systemdesign die Beschreibung, wie sich die Logik "verhalten" soll, und der Computer wird verwendet, um herauszufinden, wie die einzelnen Logikgatter am effizientesten angeordnet werden können.

Hans
quelle
Genauso wie es in der Software noch einen Platz für Assembler-Code gibt, kann ein Hardware-Design auf niedrigerer Ebene in einigen Fällen kostengünstig sein. Beispielsweise werden SRAM-Zellen häufig so häufig verwendet, dass hochoptimierte Designs entwickelt werden, um die Dichte (Last-Level-Cache), die Zugriffslatenz (L1-Cache) oder andere Eigenschaften zu optimieren, insbesondere bei einem integrierten Designhersteller wie Intel.
Paul A. Clayton
@Paul Die faszinierende Frage, die sich für mich stellt, ist, wie viel Intel in die Handoptimierung seiner Designs investiert, anstatt Software-Optimierungspässe zu schreiben, mit denen dynamisch und allgemein die gleichen Leistungsverbesserungen erzielt werden.
Ponkadoodle
6

Lassen Sie mich meine vorherigen Kommentare vereinfachen und erweitern und die Punkte für diejenigen verknüpfen, die sie zu benötigen scheinen.

Wird das Design immer noch auf einer (Sub-) Logikgatterebene ausgeführt?

  • JA

Das Design erfolgt auf vielen Ebenen, die Unterlogikebene ist immer unterschiedlich . Jede Fertigung Schrumpf verlangt die glänzendsten Physik, Chemie und lithographischen Prozesserfahrung wie die Struktur eines Transistors ändert und Geometrie ändert sich auch für Kompromisse zu kompensieren, wie es auf atomarer Ebene und schrumpft Kosten ~ $ Milliarden jedes binäre Schritt nach unten in Größe. Das Erreichen einer 14-nm-Geometrie ist ein gewaltiges Unterfangen in Forschung und Entwicklung, Prozesssteuerung und -management, und das ist immer noch eine Untertreibung!Bildbeschreibung hier eingeben

Zu den dafür erforderlichen beruflichen Fähigkeiten gehören beispielsweise: - "Benutzerdefinierte Layouts auf FET-, Zellen- und Blockebene, Grundrisse auf FUB-Ebene, Generierung von abstrakten Ansichten, RC-Extraktion sowie Überprüfung und Fehlerbehebung von Schaltplänen anhand von Phasen der Entwicklung des physischen Designs, einschließlich parasitärer Extraktion, statischem Timing und Drahtlast Modelle, Takterzeugung, benutzerdefinierte Polygonbearbeitung, Algorithmen zur automatischen Ortung und Routenberechnung, Grundrissplanung, Vollchip-Montage, Verpackung und Verifizierung. "*

- Gibt es in diesem Bereich nicht mehr viel Innovation? - FALSCH - In der Halbleiterphysik gibt es bedeutende und stark finanzierte Innovationen, die nach Moores Gesetz und der Anzahl der Patente niemals aufhören werden. Die Einsparungen bei Strom, Wärme und damit die Vervierfachung der Leistungsfähigkeit zahlen sich jedes Mal aus.

- Sind wir auf eine höhere Abstraktionsebene übergegangen? - Es hat nie aufgehört, sich zu bewegen. - Mit der Nachfrage nach mehr Kernen, die mehr in einem Befehl erledigen, wie z. B. ARM RISC-CPUs, leistungsfähigeren eingebetteten µCs oder MCUs, Smart RAM mit DDR4, das standardmäßig ECC hat, und Sektoren wie Flash mit Prioritätsbits für dringende Speicherabrufe. - Die CPU-Entwicklung und die Änderungen an der Architektur werden niemals aufhören. Bildbeschreibung hier eingeben

Lassen Sie mich einen Hinweis geben. Machen Sie eine Jobsuche bei Intel, AMD, TI oder AD for Engineers und sehen Sie sich die Stellenbeschreibungen an.

- Woher kommen die Designs für die Milliarden von Transistoren? - Es kam vom Hinzufügen weiterer 64-Bit-Hardware-Blöcke. Aber jetzt, wo Nanoröhrchen versagen, muss sich das Denken vom Top-Down-Ansatz der Blöcke zum Bottom-Up-Ansatz der Nanoröhrchen ändern , damit es funktioniert.

  • Werden sie meist automatisch von Software generiert? mit der Zunge fest in die Wange gepflanzt ...
  • Tatsächlich extrahieren sie immer noch Designs aus Area51 aus Raumschiffen und haben noch viel zu tun ... bis wir vollständig Nano-Nano-Röhren-konform sind. Ein Ingenieur geht in die Bibliothek und sagt, nVidia, wir möchten, dass Sie uns hier auf diesem Chip begleiten und ein Teil werden, das in Makroblöcke eingeht . Das Layout kann wie Ants in Toystory repliziert werden,aber die explizite Kontrolle über alle Verbindungen muss manuell geroutet / ausgecheckt sowie DRC und Auto-Routing zum Vergleich verwendet werden. Ja. Automatisierungstools werden ständig aktualisiert, um Duplikate und Zeitverschwendung zu vermeiden.

    - Gibt es noch viel manuelle Optimierung?

  • Angesichts der Tatsache, dass eine Fluggesellschaft genug Geld gespart hat, um Ihr Gehalt zu bezahlen, indem sie nur 1 Olive vom Abendessen in der First Class entfernt hat, wird Intel nach Möglichkeiten suchen, innerhalb des Zeitrahmens so viele Atome wie möglich zu entfernen. Jede überschüssige Kapazität bedeutet, dass Wärme, Leistung und auch mehr Lärm verschwendet werden , nicht so schnell ...

Aber die CPU's wachsen wirklich wie in Tokio, es ist nicht über Nacht, aber Zehn Millionen leben dort jetzt mit stetiger Verbesserung. Ich habe bei Univ nicht gelernt, wie man entwirft. Aber indem ich las und versuchte zu verstehen, wie die Dinge funktionierten, konnte ich mich schnell in der Industrie zurechtfinden. Ich habe 10 Jahre Erfahrung in meinen ersten 5 Jahren in den Bereichen Luft- und Raumfahrt, Nuklearinstrumentendesign, SCADA-Design, Prozessüberwachung, Antennendesign, Entwurf und Fehlerbehebung von automatisierten Wetterstationen, PLL-VLF-Rx von OCXO, 2-Wege-Fernbedienung von Black Brandt Rockets ... und das war nur mein 1. job. Ich hatte keine Ahnung, was ich tun könnte.

Machen Sie sich keine Sorgen um Milliarden von Transistoren und fürchten Sie sich nicht davor, was Sie lernen oder wie viel Sie wissen müssen. Folgen Sie einfach Ihrer Leidenschaft und lesen Sie zwischen Ihrem Schlaf Fachzeitschriften, dann sehen Sie bei der Arbeit nicht mehr so ​​grün aus und es fühlt sich nicht mehr nach Arbeit an.

Ich erinnere mich, dass ich einmal innerhalb von 20 Minuten im Rahmen einer Prüfung einen 741-ähnlichen Operationsverstärker entwerfen musste. Ich habe es nie wirklich benutzt, aber ich kann gut an den tollen Designs erkennen. Aber damals hatte es nur 20 Transistoren.Bildbeschreibung hier eingeben

Aber wie man eine CPU entwirft, muss mit einer Spezifikation beginnen, nämlich; Warum sollten Sie eine CPU entwerfen und messbare Benchmarks erstellen, um Folgendes zu erreichen: - Makrobefehle pro Sekunde (MIPS) (wichtiger als der CPU-Takt), zum Beispiel; - Intels Itanium-Chip basiert auf einem so genannten Explicitly Parallel Instruction Computing (EPIC) -Design. - Patentiertes CPU-Design von Transmeta mit sehr langen Befehlswortcode-Morphing-Mikroprozessoren (VLIWCMM). Sie verklagten Intel im Jahr 2006, schlossen den Laden und begnügten sich im Jahr 2007 mit 200 Millionen US-Dollar. - Leistung pro Watt (PPW), wenn die Energiekosten> Chipkosten (für Server) sind.

Es gibt viel mehr Metriken, aber die Designqualität einer CPU basiert niemals auf ihrer GHz-Geschwindigkeit (siehe Mythos).

Also, welche Tools de Jour sind erforderlich, um CPUs zu entwerfen? Die Liste würde nicht auf diese Seite passen, angefangen beim Design auf atomarer Ebene über das EMV-Design für dynamische Netze bis hin zum Testingenieur für die Überprüfung des Front-End-Designs. - Front-End-RTL-Simulation - Kenntnisse der IA- und Computerarchitektur sowie des Entwurfs auf Systemebene - Logikverifizierung und Logiksimulation mit VHDL oder Verilog. - Objektorientierte Programmierung und verschiedene CPU-, Bus- / Interconnect-, Kohärenzprotokolle.

Tony Stewart Sunnyskyguy EE75
quelle
6
"Verilog" und "VHDL" zerkratzen nur die Oberfläche all dieser naiven und dennoch inspirationssuchenden Fragen. Die reale Welt ist viel analoger als digital, als Sie erkennen.
Tony Stewart Sunnyskyguy EE75
Haben Sie eine Erklärung der Operationsverstärkerschaltung irgendwo. Alles, was ich sehen kann, ist ein kaskodierter OTA, der Rest ist Schaltung Voodoo.
CyberMen
3
Wow. Schade, dass es für die Frage meistens irrelevant ist.
Dave Tweed
3
Ich muss sagen, dass dies eine sehr amüsante Lektüre war. Die allmähliche Verlagerung von dem Schriftsteller zu der ursprünglichen Frage, zu dem Versuch, den Leser mit Zahlen und Vokabeln in den Wahnsinn zu treiben, und die anschließende Selbsthilfe, gefolgt von einer Reminiszenz an seine Schuljungen-Tage, mit einem Hauch von Arroganz und schließlich Bewegung weiter zum Klischee "Es ist so kompliziert, dass ich es hier nie zusammenfassen könnte". Wunderschön.
Ponkadoodle
Und obwohl dieser Kommentar von mir etwas satirisch war, hoffe ich, dass Sie es unbeschwert nehmen. Ich habe ehrlich gesagt die Lektüre genossen.
Ponkadoodle
2

AMDs Überblick über das CPU-Design

Intels Version

Keines davon liefert viele Details, ist aber dennoch interessant. Akzeptiere dies nicht als Antwort. Andere haben Ihre Frage eingehend geprüft und sich mehr Mühe gegeben, sie eingehend zu beantworten.

rdivilbiss
quelle
Ich hatte diese TomsHardware-Seite schon einmal gesehen. Es wird jedoch erklärt, wie Prozessoren hergestellt werden und nicht wie sie konstruiert sind
Stevenvh,