@conspectumortis
Das Video erklärt zwar Dinge, ist aber an vielen Stellen unterkomplex. Vor allem könnte man die ersten 20 Minuten und die ganzen Autovergleiche einfach wegschmeißen und das Ganze würde sogar besser werden..
Vieles im Video zeugt da von Halbwissen. Da wird hervorgehoben, dass der M1 8 Decoder hat und damit sehr breit ist. Es wird aber ignoriert, dass X84 Decoder 1-4 µOps auf einen Schlag verarbeiten können und gleichzeitig µOps auch noch aus einem µOps Cache kömmen können. Sowohl Intels SunnyCove und AMDs Zen2 setzen deswegen auch nicht 4 µOps je Takt um sondern 6 µOps. Wobei es noch einen wesentlichen Unterschied gibt, dass Intel derzeit je µOps bis zu 512bit breite Register und AMD bis 256bit Register ansprechen kann, wo Apples M1 bei 128bit Registern aufhört.
Dann wird einfach behauptet, dass die Decoder von x86 CPUs komplexer sind und deswegen nicht einfach mehr Decoder verwendet werden können und das ARM das Problem nicht hat. Das stimmt mehrfach nicht.
1. ARM nutzt je nach ISA Erweiterung auch keine einheitlichen Befehlslängen mehr
2. X86 Decoder + µOp Cache funktionieren etwas anders. Es braucht für den Durchsatz vieler, paralleler µOps nicht je einen Decoder
3. Bei RISC wird es dafür an anderer Stelle komplizierter (weiter lesen
)
Dann wird der Reorderbuffer mit ~600 Einträgen gelobt. Das ist der Unterschied zwischen X86 und ARM. Bei den CISC Befehlen lassen sich Abhänigkeiten für OoO (Out of Order) leichter ermitteln, da sie Teil eines Befehles sind, bei RISC muss man sich zwangsweise mehrere Befehle anschauen um Abhänigkeiten zu ermitteln. Tendenziell braucht man für RISC damit einfach größere Buffer um gescheites OoO Scheduling zu betreiben.
Und nicht zuletzt, schön und gut das der M1 so breit ist, es bringt ja wirklich ordentlich Geschwindigkeit. Bei alltäglicher Software hatten aber schon vor Jahren X86 CPUs das Problem, dass sie die Breite (der früher noch schmaleren Architekturen) gar nicht immer voll nutzen konnten. Weswegen ja solche Sachen wie HyperThreading (heute SMT) aufkamen. Einfach nur breitere CPU-Designs für sich bedeuten nicht zwangsweise einen besseren Durchsatz.
Die rote Linie der Argumentation, dass ARM besser sei als x86 halte ich für Unsinn, welcher auf Unverständnis fußt. Das Apple mit dem M1 jedoch ein grundsolides Design abgeliefert hat, gehe ich jedoch mit. Wobei ich immer noch vermute, dass Apple auch viel auf Seiten der Softwareoptimierung gemacht hat. Bei allem was die ARM-Plattform gerade als Ziel hat, kann ja wirklich jede Optimierung mitgenommen werden. Apple muss ja keinerlei Rücksicht auf CPU-Modelle von vor 10Jahren nehmen.