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?
Antworten:
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.
quelle
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?
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!
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.
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.
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?
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.
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.
quelle
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.
quelle