PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wer entwickelt prozessoren – und wie?


3d
2005-01-13, 19:47:42
mir gehts nur um die (desktop) CPU und GPU.

- wer setzt "den ersten strich" (oder wird das nicht mehr mit papier und bleistift gemacht :biggrin: ) ?
- wird es von einem mann gemacht?
- wird es im team gemacht?
- wie wird das dann koordiniert?
- wer hat das sagen?
- wer macht den anfang und wie?
- wird das mit hilfe eines computers gemacht der irgendwie berechnet welche architektur wie effizient sein wird?

würde gern wissen wie so ein komplexes ding entwickelt wird.

Wuge
2005-01-13, 21:31:46
ich glaube das hat irgendwann mit einer hand voll transistoren angefangen und iwrd nun optimiert und erweitert. inzwischen ist in einem P4 sicher nichts mer so wie es noch beim 8086 war aber es wird in einem ständigen weiterentwicklungsprozess "gebastelt". die grundzüge der cpu architektur sind beim itanium sicher genauso vorhanden wie beim ppc, x86 oder arm.

außerdem musst du das logische vom physischen design unterscheiden.

Trap
2005-01-13, 21:33:18
So wie es Programmiersprachen für Software gibt, gibt es auch Hardwarebeschreibungssprachen zur Hardwareentwicklung.

Begriffe für google: vhdl, verilog, systemc, fpga

Demirug
2005-01-13, 21:35:06
So wie es Programmiersprachen für Software gibt, gibt es auch Hardwarebeschreibungssprachen zur Hardwareentwicklung.

Begriffe für google: vhdl, verilog, systemc, fpga

Wobei in vielen Fällen das Hardwaredesign mit einem Funktionsmodel in einer "normalen" Programmiersprache beginnt.

nVidia schreibt zum Beispiel von iheren Chips immer erst ein C/C++ Model.

huha
2005-01-13, 21:36:01
Das Meiste machen heute beim Prozessordesign spezielle Computerprogramme.
Als Mensch macht man sozusagen nur noch den Schaltplan bzw. pflückt diesen aus mehr oder weniger großen Elementen zusammen, der Rest wird dann von Spezialprogrammen erledigt, also das komplette Routing der Bauteile etc.
Außerdem mußt du beachten, daß der Großteil heutiger CPUs von Speicher (Cache) eingenommen wird, der kann unmöglich von Hand entworfen werden, wie auch sämtliche anderen größeren Prozessoren mit ihren Millionen von Transistoren.

Bevor aber das physikalische Design kommt, geht der logische Schaltplan, soweit ich weiß (habe das glaube ich mal irgendwo aufgeschnappt, ist aber schon länger her) in eine Simulation, sprich: Der neue Prozessor wird erstmal von n paar Rechnern simuliert und es werden Tests auf dem Ding durchgeführt, bevor überhaupt das erste Exemplar gefertigt wurde.

-huha

Wuge
2005-01-13, 21:37:44
wird das physische design, sprich die anordnung auf dem die, von hand arrangiert/optimiert oder ausschließlich per chipcompiler?

Demirug
2005-01-13, 21:55:25
wird das physische design, sprich die anordnung auf dem die, von hand arrangiert/optimiert oder ausschließlich per chipcompiler?

Das ist etwas komplizierter. Primär baut der Chipcompiler den kompletten Chip. Wird allerdings bei der Simulation oder dann am echten Chip ein Fehler festgestellt wird von Hand nachgebessert. Gleichzeitig versucht man zusammen mit dem Entwickler des Chipcompilers die Ursache die zu dem Fehler führte zu beseitigen.

Lässt man nun aber nun alles den Chipcompiler aleine machen werden die Chips sehr gross weil die Regeln nach denen er sich richtet (es gibt da für jeden Process von jeder FAB eigene) ja so ausgelegt sind das man auf der sicheren Seite ist. Aus diesem Grund gibt es process optimierte Makros. Also häufiger benötigte Funktionen sind da von entsprechenden Spezialisten von Hand optimiert worden. Da man dabei näher an die Grenze eines Prozesses heran gehen kann belegen diese Makros in der Regel weniger Platz als das was der Chipcompiler erzeugen würde. Die Verwendung solcher Makros wird aber dann problematisch wenn man die FAB oder den Process wechseln will. Gibt es die entsprechenden Makros nämlich nicht für den neuen Zielprocess hat man ein ernsthaftes Problem.

Um die Makros kümmern sich aber in der Regeln nicht die Chipdesigner dafür gibt es Firmen die sich darauf spezialisiert haben. Man kauft dann einfach eine fertige Sammlung ein die das was man braucht enthält.

3d
2005-01-13, 22:33:05
aber wer macht den ersten schritt?
und wo?
wird das in einem land/einer stadt gemacht oder wird in verschiedenen ländern parallel an dem prozessor gearbeitet?
wieviele leute sind etwa an der entwicklung beteiligt?
es muss doch einen ersten geben der anfängt und sagt: " so und so machen wir das"
so wie in der formel1 Rory Byrne das auto entwickelt, gibt es bei AMD oder intel auch so ein mann der für die konstruktion verantwortlich ist?

Coda
2005-01-13, 22:39:57
Naja der Chefentwickler halt.
Aber ein komplett neues Design ist bei Chips sehr unwahrscheinlich heutzutage.

tatarus
2005-01-13, 23:28:09
Sehr nette Vorstellungen habt ihr da. Die Entwicklung eines Chips ist aber um einiges komplizierter und wird auch nicht von einem angefangen, sondern in vielen kleinen Teams entwickelt.

Am Anfang macht man eine Spezifikation, was genau der Chip können muss und wie schnell er später sein soll. Danach nimmt man Hardwarebeschreibungssprachen (z.B. VHDL) um den Chip zu beschreiben. Aus dieser Beschreibung wird dann der eigentlich Chip synthetisiert.
Nun kommen einige Verifikationswerkzeuge zum Einsatz, um Fehler im Chip durch falsches Design des Ingenieurs oder durch Fehler bei der Synthese ausschließen zu können.
Danach werden einige kritische Bereiche (zu hohe Leistungsaufnahme, zu lange Verzögerung oder zu komplexes Routing) von Hand optimiert.
Oft verwendete Bauteile werden auch oft auf der Transistorebene oder im RTL Level optimiert und liegen schon als fertige VHDL Funktionen oder Synopsys (graphische Oberfläche zur Entwicklung digitaler Schaltungen) Schaltungen vor. Dann wird erneut verifiziert.

Das ganze macht man so lange, bis das Design funktioniert und auch ungefähr diese Taktraten zulässt. Welche Taktraten möglich sind hängt nicht zuletzt von den verwendeten Hardware Libraries ab. Darin stehen quasi die Eigenschaften (Verzögerung...) verschiedener fundamentaler Bauteile, die durch die Fertigung (180nm, 90nm...) festgelegt werden.
Dann muss man bei geringen Strukturbreiten nur noch einige physikalische Probleme (Sizing, Buffering, Clock Skew, Electromigration, Inductance, Crosstalk.......) durch geschicktes Routing etc. in den Griff bekommen und schon kann man einen Prototyp produzieren.

Das alles macht natürlich nicht eine Person, sondern normalerweise ein ziemlich großes Team oder der Betrieb kauft sich externe Ingenieursleistungen dazu. Als einzelner kann man z.B. das Hardwarerouting auf der Transistorebene beherrschen oder VHDL Programmierung und formale Verifikation. Ich selbst studiere das und bin bald damit fertig. Hab auch in der Uni schon die Logik für so einige Chips entwerfen und verifizieren müssen. Allein für dieses Hardwarezeug haben wir an der Uni schon 7 Professoren mit eigenem Institut entweder bei den E-Technikern oder in der Informatik.

Coda
2005-01-13, 23:56:57
Hier hat auch niemand etwas von einer Person erzählt, sondern nur dass es wohl einen Chefentwickler gibt.
Bei AMD bin ich mir da z.B. ziemlich sicher. Dass das Team weitaus größer ist, ist ja wohl logisch.

aths
2005-01-14, 14:09:06
würde gern wissen wie so ein komplexes ding entwickelt wird.Jedenfalls nicht von heute auf morgen.

Die (völlig veraltete und recht ineffiziente) 8086-CPU z. B. hatte etliche Vorläufer. Irgendwann gelangt man zum 4004, den man nach einigen Elektrotechnik-Vorlesungen wahrscheinlich komplett verstehen kann.

GloomY
2005-01-15, 01:15:11
Hier hat auch niemand etwas von einer Person erzählt, sondern nur dass es wohl einen Chefentwickler gibt. Bei AMD bin ich mir da z.B. ziemlich sicher.Dirk Meyer heisst dieser. Er war Co-Entwickler der 21064 und 21264 Alphas und IIRC Chefentwickler des K7 und K8.

Zum Thema:
Ich denke, dass es etwa so abläuft: Einer oder einige wenige Chefentwickler legen anhand der Anforderungen und Rahmenbedingungen (Befehlssatz, Preis, Geschwindigkeit, Stromverbrauch, Verfügbarkeit...) einen groben Entwurf des Prozessors vor. Darin steht dann z.B. dass der Prozzi superskalar mit soundsoviel Ausführungseinheiten und derundder Pipelinelänge ist usw.
Dann machen sich größere Teams daran und entwerfen Stück für Stück Teile des Prozzis nach den von den Chefentwicklern geforderten Spezifikationen. Die einzelnen groben Teile (ALU, Registersatz, Cache...) werden dann wiederum in kleinere funktionale Teile zerlegt, die dann seperat entworfen werden. Dabei wird z.T. relativ viel mit dem Computer gearbeitet, d.h. man klickt sich seine Schaltungen zusammen ;)
Ganz am Ende wird dann verifiziert, getestet und der Computer macht das Layout oder einige Stellen werden von Hand geroutet und plaziert.

Coda
2005-01-15, 11:09:11
Dirk Meyer heisst dieser. Er war Co-Entwickler der 21064 und 21264 Alphas und IIRC Chefentwickler des K7 und K8.Das weiß ich ;)

BlackBirdSR
2005-01-15, 12:10:46
Zum Thema:
Ich denke, dass es etwa so abläuft: Einer oder einige wenige Chefentwickler legen anhand der Anforderungen und Rahmenbedingungen (Befehlssatz, Preis, Geschwindigkeit, Stromverbrauch, Verfügbarkeit...) einen groben Entwurf des Prozessors vor. Darin steht dann z.B. dass der Prozzi superskalar mit soundsoviel Ausführungseinheiten und derundder Pipelinelänge ist usw.


Ich glaube man fängt eher bei bestenden Spezifikationen an, und prüft anhand derer wie sich Modifikationen und Zusätze auswirken.

Die Anforderungen, also der Programmcode im Mittel dient dabei wohl als Anhaltspunkt.
Wenn die CPU davor nur 1-2Ops in einen Rahmenbedingung ausführen konnte, prüft man jetzt ob eine weitere Ausführungseinheit Sinn macht, und ob es inzwischen Möglichkeiten gibt sie sinnvoll zu nutzen.

Das ganze wird ein Meer an Simulationen, Überlegungen und Abwägungen sein. Richtig neu wird ja kaum was entwickelt.
Insofern glaube ich auch nicht daran, dass der Lead-Designer das ganze Design so genau vorskizziert.

tatarus
2005-01-15, 14:26:55
Mal ganz abgesehen davon, dass es heutzutage eigentlich keinen Chefdesigner mehr gibt. Firmen versuchen die hierarchische Struktur in der Entwicklung so weit wie möglich aufzulösen. Daher gibt es auch eher Projektleiter der einzelnen Gruppen, die sich dann jeweils Milestones setzen und sich zwischendurch immer mal treffen. Dabei arbeiten diese Gruppen oft weltweit verteilt und sind nicht an einem einzigen Standort konzentriert.

Ein Chefdesigner wäre schon deshlab unsinnig, weil es wahrscheinlich niemanden gibt, der wirklich von allem Ahnung hat und so das ganze Projekt überwachen kann.
Die Überwachung macht das Projrktmanagement. Die kümmern sich um die Finanzierung und geben Deadlines für bestimmte Milestones vor.

stap
2005-01-21, 20:54:23
Werden bei AMD die Chips eigentlich auch in Dresden designt (zumindest teilweiße) oder werden sie dort nur gefertigt?

mjs
2005-01-21, 21:58:03
Werden bei AMD die Chips eigentlich auch in Dresden designt (zumindest teilweiße) oder werden sie dort nur gefertigt?
Habe mal gelesen, daß AMD dort mittlerweile fast alles entwickelt. Die Uni in Dresden hat wohl ganz hervorragende Arbeit geleistet und liefert ware Experten. Dazu kommt die Tatsache, daß Infineon und ein (glaube Holländisches) Unternehmen ebenfalls dort Niederlassungen haben.

Einige Medien sprechen gar von einem Eastern-SiliconValley!

orda
2005-01-22, 09:50:54
Habe mal gelesen, daß AMD dort mittlerweile fast alles entwickelt. Die Uni in Dresden hat wohl ganz hervorragende Arbeit geleistet und liefert ware Experten. Dazu kommt die Tatsache, daß Infineon und ein (glaube Holländisches) Unternehmen ebenfalls dort Niederlassungen haben.

Einige Medien sprechen gar von einem Eastern-SiliconValley!

Ja, das kann ich bestätigen. Nicht nur AMD und Infineon haben hier ihren sitz, nein auch ZMD. Fehlt nur noch ATI. Dann kann ich sagen, das mein CPU, RAM und Grafikkarte direkt aus meiner Heimatstadt kommen. :biggrin: