-
Was ist eine CPU-Architektur?
Autor: zandax 07.01.20 - 12:40
Die Frage mag vielleicht doof klingen,aber was genau ist denn eine CPU-Architektur?
Ist es nur der Befehlssatz? Ist es der gesamte hochoptimierte Schaltplan mit Pipelining, Sprungvorhersage, Caching und was weiß ich? Oder am Ende sogar die Maskendaten zum Ätzen des Chips?
Bei RISC-V heißt es ja auch, dass es sich eigentlich nur um den Befehlssatz handelt. Ich kann mir aber auch als Programmierer irgendwie kaum vorstellen, dass das Design des Befehlssatzes so unglaublich relevant ist. Intels CISC-Befehlssatz ist ja nun schon seit Jahrzehnten veraltet und es werden einfach munter neue Befehle hinzugefügt, ohne dass sich das Big Picture großartig ändert.
Ich habe von CPU-Design zugegebenermaßen keinen Plan, aber nach dem der Befehlssatz festgelegt ist (was ja mehr oder weniger einfach einem Teil der Spezifikation entspricht), habe ich doch immer noch die gesamte Aufgabe, die CPU zu bauen? Inwiefern kann denn dann so eine Veröffentlichung wertvoll sein? -
Re: Was ist eine CPU-Architektur?
Autor: MarioWario 07.01.20 - 13:45
Im weiteren Sinne sind Compiler Teile der Systemarchitektur.
Die Maskendaten wahrscheinlich nur indirekt - wenn ein Designfehler wie A20 oder Meltdown repariert werden müssen.
Naja, DSP-Einsatz für H.265 hat bei Intel in den letzten Jahren wohl am meisten gebbracht - es sollte auch Erlang MPP Vorteile geben.
Effektiv ist die jahrelange Aufbauarbeit im LowLevel-Bereich eine Hürde die selbst Google scheut (10 Jahre bis man einen fitten BIOS-Programmierer hat - anstelle schneller JSON-Hits). -
Re: Was ist eine CPU-Architektur?
Autor: wurstdings 07.01.20 - 15:48
zandax schrieb:
--------------------------------------------------------------------------------
> Die Frage mag vielleicht doof klingen,aber was genau ist denn eine
> CPU-Architektur?
x86, ARM, ...
Also ja nur der Befehlssatz.
Dieser kann ja beliebig implemntiert werden, sonst gäbe es keine AMD-CPUs, da diese ja zu 100% identisch sein müssten.
> Ich kann mir aber auch als Programmierer irgendwie kaum
> vorstellen, dass das Design des Befehlssatzes so unglaublich relevant ist.
Hä? Bist du Java-Programmierer? Weil sonst musst du ja dein Programm immer für eine bestimmte Architektur kompilieren und dann läuft es erstmal nur auf dieser Einen. Klingt für mich schon relevant.
> Intels CISC-Befehlssatz ist ja nun schon seit Jahrzehnten veraltet und es
> werden einfach munter neue Befehle hinzugefügt, ohne dass sich das Big
> Picture großartig ändert.
Das liegt daran, dass sich das darunterliegende RISC nur minimal verändert und die darüber simmulierte CISC-Schicht nur durch Software/Firmware auf dem Prozessor verwirklicht wird.
> Inwiefern kann denn dann so eine Veröffentlichung
> wertvoll sein?
Jeder könnte nun seine eigene (eve. leistungsfähigere) Implementierung der Architektur erstellen.
Intel könnte z.B. per Softwareupdate seine CPUs kompatibel mit OpenPower machen, wäre aber wahrscheinlich nicht sonderlich effizient, da die Implementierung stark auf x86 optimiert ist. -
Re: Was ist eine CPU-Architektur?
Autor: bofhl 07.01.20 - 16:07
wurstdings schrieb:
--------------------------------------------------------------------------------
> zandax schrieb:
> ---------------------------------------------------------------------------
> ..
> > Inwiefern kann denn dann so eine Veröffentlichung
> > wertvoll sein?
> Jeder könnte nun seine eigene (eve. leistungsfähigere) Implementierung der
> Architektur erstellen.
> Intel könnte z.B. per Softwareupdate seine CPUs kompatibel mit OpenPower
> machen, wäre aber wahrscheinlich nicht sonderlich effizient, da die
> Implementierung stark auf x86 optimiert ist.
Wenn man sich ansieht, wie unendlich kompliziert die ganze ISA ist, dürften sich nur extrem wenige Hersteller an einen POWER-Chip wagen. Und Intel schon mal gar nicht - wozu auch? Deren x86-Architektur - so kompliziert sie einen auch am Anfang erscheinen mag - ist um Längen einfacher aufgebaut! Nicht umsonst hat IBM die einfachere PowerPC-Architektur aus dem POWER-Design heraus entwickelt! Und selbst das wurde bis auf wenige Ausnahmen nie von anderen Firmen in Chips gegossen! Selbst jetzt wo viele dieser uralten Designs von IBM als Code (VHDL/Verilog) zur Verfügung stellte gibt es keinen weiteren Hersteller. Und der Grund dürfte auch in der zu hohen Komplexität der dafür notwendigen Software liegen - und POWER ist da noch einige Stufen komplexer unterwegs. (einen Compiler dafür herzustellen ohne der massiven Hilfe von IBM ist nur ein Wunschtraum! Aktuell kann man noch auf die Ergebnisse von IBM zurückgreifen....) -
Re: Was ist eine CPU-Architektur?
Autor: zandax 08.01.20 - 01:00
wurstdings schrieb:
--------------------------------------------------------------------------------
> zandax schrieb:
> ---------------------------------------------------------------------------
> -----
> > Die Frage mag vielleicht doof klingen,aber was genau ist denn eine
> > CPU-Architektur?
> x86, ARM, ...
>
> Also ja nur der Befehlssatz.
>
> Dieser kann ja beliebig implemntiert werden, sonst gäbe es keine AMD-CPUs,
> da diese ja zu 100% identisch sein müssten.
> > Ich kann mir aber auch als Programmierer irgendwie kaum
> > vorstellen, dass das Design des Befehlssatzes so unglaublich relevant
> ist.
> Hä? Bist du Java-Programmierer? Weil sonst musst du ja dein Programm immer
> für eine bestimmte Architektur kompilieren und dann läuft es erstmal nur
> auf dieser Einen. Klingt für mich schon relevant.
> > Intels CISC-Befehlssatz ist ja nun schon seit Jahrzehnten veraltet und
> es
> > werden einfach munter neue Befehle hinzugefügt, ohne dass sich das Big
> > Picture großartig ändert.
> Das liegt daran, dass sich das darunterliegende RISC nur minimal verändert
> und die darüber simmulierte CISC-Schicht nur durch Software/Firmware auf
> dem Prozessor verwirklicht wird.
> > Inwiefern kann denn dann so eine Veröffentlichung
> > wertvoll sein?
> Jeder könnte nun seine eigene (eve. leistungsfähigere) Implementierung der
> Architektur erstellen.
> Intel könnte z.B. per Softwareupdate seine CPUs kompatibel mit OpenPower
> machen, wäre aber wahrscheinlich nicht sonderlich effizient, da die
> Implementierung stark auf x86 optimiert ist.
Vermutlich habe ich mich nicht ganz klar ausgedrückt, aber worauf ich hinaus möchte, ist dass ein Befehlssatz für mich eher einem Protokoll entspricht. Ein Protokoll kann natürlich auch gut oder schlecht designt sein und muss daher gut geplant werden, aber das Schwierige ist dann doch letzten Endes das Gerät zu bauen, dass die Befehle möglichst effizient umsetzen kann.
Und Protokolle werden natürlich am besten standardisiert, und wir wissen von Grace Hopper ja nun, dass das schöne an Standards ist, dass es so viele gibt, von denen man sich einen aussuchen kann. Sprich, wenn jetzt noch einer dazu kommt, wo ist dann der große Beitrag? Gibt doch schon genug gute Befehlssätze.
Scheinbar kommt mit dem IBM-Release ja auch ein bisschen VHDL-Code, aber das ist ja eher als Beispiel gedacht, als als etwas, dass HW-Designer in ihr FPGA copy-pasten sollen.
Naja, am Ende ist es vielleicht einfach ein "Wir trennen uns von unseren Altlasten und damit es nicht so aussieht, als ob wir es komplett aufgeben würden machen wir es offen"-Ding.
/edit: Ich merke gerade, das was mich einfach am meisten verwirrt, ist, dass der Befehlssatz und dessen Implementierung synonym verwendet werden. Wenn im Artikel zum Beispiel steht "So nutzten etwa verschiedene Spielekonsolen eigens erstellte Power-CPUs", klingt das für mich so, als hätte Nintendo sich von IBM die Spezifikation für die Befehle geliehen, um mal schnell ihre eigene PowerCPU zu designen, was natürlich Unsinn ist.
1 mal bearbeitet, zuletzt am 08.01.20 01:07 durch zandax. -
Re: Was ist eine CPU-Architektur?
Autor: wurstdings 08.01.20 - 09:46
Bei der unterliegenden Hardwarearchitektur spricht man gelegentlich von Microarchitektur.
Bei der CPU-Architektur handelt es sich im Prinzip nur um ein Interface/Protokoll, das die Schnittstelle zwischen Maschinensprache und Hardware herstellt. Kann man zumindest so sehen.
Ob wir nun noch eine brauchen ist für mich nicht die richtige Frage, es gibt halt jetzt eine Weitere, die offen ist. Aber so viele sind das garnicht. ARM ist z.B. keine offene Architektur, da muss man Lizenzen blechen, wenn man Die implementieren will. Da fällt mir jetzt nurnoch MIPS und RiscV ein.
Die Beste wird sich durchsetzen ... -
Re: Was ist eine CPU-Architektur?
Autor: y3dl4b 14.01.20 - 20:21
Die X86/64 isa ist nun auch nicht wirklich übersichtlich
Was macht noch mal VSCATTERPF1DPS?
Intel 64 and IA-32 SW DEV MAN, Vol 1: Basic Architecture; 502 pg.
Intel 64 and IA-32 SW DEV MAN, Vol 2: Instruction Set Reference: 2306 pg.
Intel 64 and IA-32 SW DEV MAN, Vol 3: System Programming Guide; 1766 pg.
Intel 64 and IA-32 SW DEV MAN, Vol 4: Model-Specific Registers; 472 pg.
Erreicht die Dokumentation auch >5000 Seiten.