Expertendiskussion für neugierigen Pro-Noob - How to: CPU entwickeln?

nighteeeeey

Commodore
Registriert
Jan. 2007
Beiträge
4.262
Ich lag letzte Nacht wach. Lange. Und da trieben mir die Gedanken so umher. Über den Sinn und Nichtsinn eines neuen Systems (dann hörte ich was von Zen 3 schon im 1. Halbjahr 2020?), das Core X 10XXX Disaster, AMD.....und so weiter und mir kamen da einige Frage.

Zunächst mal? Woraus besteht eine CPU überhaupt? Und wie baut/entwickelt man eine neue? Und wie findet man heraus, wie man bisherige CPUs schneller macht? Und was genau macht Intel jetzt eigentlich?

Okay.....gehen wir mal vom Ist-Zustand aus. AMD und Intel haben beide am Markt etablierte Produkte in den Schubladen. Jetzt kommt Intel aber schwer in Bedrängnis weil sie sich offenbar die letzten 10/15 Jahre etwas zu bequem auf den Lorbeeren ausgeruht haben.

Aber was jetzt genau tun?

Okay, Intel hat Chipdesigner, Ingenieure.....aber was genau machen die denn jetzt???

Die Ansage ist: WIR BRAUCHEN WAS SCHNELLERES! UND ZWAR SCHNELL!

Was ist der erste Schritt? Kennt sich jemand damit aus? Gibt es darüber Dokumentationen? Irgendwann muss ja jemand mal damit angefangen haben, sonst gäb es Moores Law nicht.

Aber wie findet man jetzt heraus, an Intels Stelle, was jetzt eigentlich zu tun ist? Woher weiß ich, was meine bisherigen CPUs schneller macht? Wie entwickelt man eine neue CPU Architektur? Welche Bausteine gibt es? Woher weiß ich, was ich noch aus dem alten Regal nehmen kann, und was komplett neu entwickelt werden muss? Und wie stellt man das wiederum dann genau an? Und worin bestanden die maßgeblichen Neuerungen die letztendlich zu Verbesserungen und vor allem zu Beschleunigungen der letzten CPU Generationen geführt haben? Ich hab so viele Frage. Die ich gar nicht alle richtig ausdrücken kann.

Ich meine, es ist ja irgendwie ähnlich mit allem. Ich wüsste auch aus dem Stegreif nicht, wie man spontan einen Verbrennungsmotor "optimieren" kann, so ähnlich stell ich es mir auch mit einer CPU vor - kompliziert. Aber kann mir das vllt. jemand mal etwas näher bringen? Ich bin so neugierig.

Ich mein wenn man vor so vollendete Tatsachen gestellt wird, wie Intel jetzt von AMD, wo fängt man da an? Oder arbeiten die doch jetzt schon seit Jahren wieder an noch besseren Architekturen von denen wir noch gar nichts wissen? Zumindest auf dem Papier?

Hat jemand von euch mal in dem Bereich gearbeitet und weiß wie sowas abläuft? Ich würde gerne mehr wissen.

Kann man, einfach als Analogie, hier eine CPU einfach mal mit einem PC an sich vergleichen, sodass die CPU wiederum aus einer eigenen "CPU" besteht, und anderen Komponenten? Um das hier vielleicht etwas aufzubröseln? Und auf die Frage zurück zu kommen, woraus so eine CPU eigentlich besteht, was die wichtigen "Bauteile" und Funktionen sind, wo es Verbesserungsmöglichkeiten gibt, was der "Standardaufbau" ist, und vor allem, wie AMD es jetzt eigentlich genau geschafft hat nach Bulldozer sowas wie Zen rauszuhauen.

Womit haben die angefangen? Und was haben die genau gemacht?

Fragen über Fragen.

Falls jemand mal zu viel Zeit und zu viel Wissen hat, gerne her damit. Ich bin sehr neugierig.

Grüße und schönen Abend :)
 
  • Gefällt mir
Reaktionen: savuti
Viel kann ich nicht beantworten, aber hier ein Video, über den Aufbau von Zen2.


Ansonsten mal Wikichip, oder Wikipedia über die verschiedenen Prozessoren ausfragen und die einzelnen Teile durch googeln.
 
  • Gefällt mir
Reaktionen: nighteeeeey
Das fand ich ganz interessant um eine Vorstellung davon zu bekommen in welchen Dimensionen sich das ganze abspielt.
 
  • Gefällt mir
Reaktionen: nighteeeeey
Ich halt mich mal von der Technikseite fern, aber hier ein paar Ansätze, die man verfolgen kann.

A Jede CPU hat einen "Takt", aber kaum wer denkt drüber nach, was das heißt.
Alles was eine CPU macht funktioniert in einer Anzahl Takten.

Ergo ist Ansatz A: Sorge dafür, daß häufig vorkommende Anwendungsfälle in möglichst wenig Takten abgearbeitet werden können. Damals(tm) ging das mit Fließkommaoperationen mehr oder weniger los; x86 kannte nur Ganzzahloperationen, Bruchzahlen waren aufwendig und brauchten viel Rechnerei; Bruchzahlen sind aber sehr viel häufiger anzutreffen als Ganzzahlen, also wurde in die Richtung geforscht und irgendwann(tm) die x87-Familie auf den Markt geworfen. (x87 gibt es nicht mehr, die FPU ist Teil der CPU geworden.)


B Aufgaben können von einem Akteur schnell und von vielen Akteuren langsamer verarbeitet werden; der schnell Akteur ist nicht notwendigerweise insgesamt schneller als die vielen langsamen Akteure.

Ergo wurde nach Parallelisierbarkeit geforscht, weil da die Zeitersparnis signifikant wurde; der Zusammenhang ist nicht linear, sondern logarithmisch ( 1 Kern => 1 Zeiteinheit, 2 Kerne => 1/2 Zeiteinheit, x Kerne => 1/x Zeiteinheiten) und es gibt praktisch keine Single-Core-CPUs mehr.

C Die CPU kann schnell sein wie sie will, wenn sie keine Daten zum Verarbeiten hat, passiert nichts.

Ergo wurden Caches angelegt und so dimensioniert, daß die CPU möglichst jederzeit etwas zu tun bekommen konnte. Hier hinein fällt auch Forschung in Richtung NUMA, dh. die Lokalisierung von Ressourcen: eine CPU muß nicht mehr quer übers Board schreien, um an den RAM zu kommen, sondern sie hat ihr eigenes Eckchen RAM direkt vor der Haustür.
Hier hinein fällt auch Inter-CPU-Kommunikation für Multi-CPU-Systeme und Intra-CPU-Kommunikation zB Core-zu-Core für Multi-Core Systeme.

D meine CPU nimmt während ihrer Arbeit verschiedene Zustände an, vergleichbar vielleicht mit einer mechanischen Festplatte.

Ergo kann mit Wahrscheinlichkeitsmodellen gearbeitet werden. Simples Beispiel, ich hab einen 64bit Integer zu verarbeiten, aber nur 32 Register, also darf ich mit relativer Sicherheit davon ausgehen, daß das nächste Datenwort der zweite Teil meines Integers ist. Das kann auch was anderes sein, aber das ist nicht sehr wahrscheinlich.
Vor diesem Hintergrund arbeitet Prediction; es werden Daten vorgeladen oder gehalten nicht weil sie gebraucht würden, sondern weil davon ausgegangen werden kann, daß sie gebraucht werden. Tritt wider Erwarten ein anderer Fall ein, dann hab ich Mehraufwand, aber über die Betriebszeit der CPU bleibt trotzdem ein Vorteil, weil meine Prognose häufiger wahr wird als andersherum.


Intel kann sich jetzt fragen, wo zum Geier sie ansetzen können, um in irgendeiner Form Paroli bieten zu können. Das muß aber nicht mal auf dem Leistungsindex sein.

Genauso kann man einfach weitermachen wie bisher und über den Performance-per-Watt-Index gehen. AMD signifikant performanter als wir, na gut, ABER wir bauen die CPUs, die keiner aktiven Kühlung mehr bedürfen (oder die mit einem simplen Topblower auf Raumtemperatur gehalten werden können, auch unter Vollast).

Oder man macht Grundlagenforschung und fragt sich, okay was zickt denn insbesondere rum, was vielleicht gar nicht zicken müßte? Intel kennt seine eigenen CPUs hoffentlich gut genug.

Rein theoretisch könnte man sich auch einfach hinstellen und sagen, okay wir ziehen ein AMD aus dem Arsch und "erfinden" eine 128bit CPU, welche nichts anderes macht, als zwei 64bit Datenwörter auf einmal zu verarbeiten. Hey presto, geschätzt doppelte Leistung frei Haus.

Was sie am Ende machen... werden wir abwarten müssen, momentan müssen sie erstmal wieder stabilen Boden unter die Füße bekommen, die straucheln grade doch etwas.

Aber irgendwas werden sie bringen müssen. Bin schonmal gespannt.
 
  • Gefällt mir
Reaktionen: Lord B. und nighteeeeey
Zurück
Oben