Piktogramm schrieb:
Decode braucht es immer! Da kommt man nicht drumherum und wenn das ganze als Pipeline vorsieht, geht bei Decode selbst den simpelsten Designs immer ein Takt drauf.
Wenn man genau nimmt - und ja da habe ich ein Fehler gemacht, hab aber auch nicht immer alle Schaltbilder da - braucht es immer ein Fetch und Decode. Nur war das Decodieren damals bei ARM deutlich einfacher, was ein Teil der Geschwindigkeit ausmachte.
Piktogramm schrieb:
Da nehmen sich X86 bzw. Cisc und ARM bzw. Risc erstmal nichts. Vor allem da bis zum ersten Intel Pentium die CISC Befehle wirklich noch nativ implementiert wurden, erst die Pentiums selbst setzten auf eine CISC zu RISC Übersetzung.
Nein, das ist in dem Fall nicht richtig, bereits beim 8086 und 8088 wurden viele der MarcoOP in Mikrocode zerlegt um diesen in der CPU auszuführen.
Intel war darum bemüht mit der Zeit - auch um die Leistung zu optimieren - aufwendige MarcoOPs die viel Mikrocode benötigen auch in
Hardware zu gießen, so mit dem 486.
Und das ist auch der entscheidende Punkt, den ich angesprochen habe: ARM - als RISC - hat damals direkt auf atomare OPs gesetzt, während CISC selbst in CISC-Prozessoren in der Regel in Mikrocode zerlegt werden musste.
Die atomaren OPs haben es damals dann auch bei ARM ermöglicht dass man eine Pipeline einführt und zwar vor x86. Die ersten Pipeline-Ansätze gab es dann beim Pentium - direkt mit einer zweiten "generellen" ALU und das ist gleich wichtig.
Piktogramm schrieb:
Letzteres erfordert dann Decode Schritte, die 1 oder mehr Takt benötigen[1].
Bei x86 war das Decode allgemein bei CISC damals aufwendiger als bei RISC Befehlssätzen und das habe ich geschrieben, den Decoder aber unterschlagen.
Piktogramm schrieb:
Also bitte ARM nicht überhöhen, historisch haben die lange Zeit nur kleine, energiesparende RISC-CPUs geliefert. Das ARM auf einmal mit dabei ist, wenn es um die Leistungskrone geht ist recht neu.
Ich habe bereits entsprechende Links geliefert, dass diese Aussage von dir FALSCH ist, ich wiederhole: Acorn Archimedes und auch weitere Acorn Produkte Anfang der 90er, die mit ihren x86-Pendants mithielten oder diese überholten. Ich erspare mir nun das verlinken.
Ich musss ARM auch nicht überhöhen, ich habe sehr genau geschrieben welche Vorzüge ARM heute noch hat und gleichzeitig auch woran es kranken kann. ARM ist Ende der 80er und Anfang der 90er nicht an der Leistung gescheitert, die war vorhanden. ARM ist an der Kompatiblität gescheiert und hat sich entsprechend darauf aufbauend die Nische gefunden.
Piktogramm schrieb:
Die erste ARM CPU, der ARM1 hatte auch schon ein Befehlsdecoder:
Richtig, mein Fehler, ändert aber nichts daran, dass auch Teile deines Beitrages falsch sind:
Piktogramm schrieb:
ARMs erste superskalare Designs waren die Cortex A8 mit ARMv7 im Jahre 2005
Das ist so auch nicht ganz richtig, weil es da nun auch darauf ankommt, was man dann genau unter Superskalarität versteht und was man alles mitnehmen will.
Gehen wir jetzt von wirklich recht mächtigen ALUs aus, hast du recht. Gehen wir aber nun davon aus, dass man ALUs auch in spezialisierte Rechenwerke aufteilt, die unterschiedliche Aufgaben wahrnehmen: Dann ist es falsch. Ich weiß jetzt nicht ob es ARM8 oder erst der ARM9 war, aber dort hatte man eine ALU für MUL und eben auch die allgemeine ALU.
Aber auch das ist alles relativ egal, denn all das Geplänkel ändert nichts an der Kernaussage von mir: ARM stand und fiel damals mit der Software in den 90er und auch jetzt ist die Software und die Softwareinfrastruktur entscheidend. Es kann super schnelle ARM-Designs geben, wenn die Software nicht mitspielt, bringt das nichts.
Und egal ob ARM oder x86: Schnelle CPU-Kerne kann man mit beiden ISA designen, ebenso mit RISC-V, die Frage ist immer nur, wie komplex es wird und wann man zu welchen Tricks greifen muss.
Nur das verstehen hier viele nicht, sie sind in den staren Denkmustern gefangen, dass ARM ja sich nur für sparsame/effiziente Kerne eignet, während x86 Hochleistung verspricht und das ist selbst freundlich ausgedrückt: Bullshit. Nicht die ISA entscheidet da heute drüber, sondern wie man die ISA implementiert.