Den länken innehåller en av huvudargumenten varför fler borde önska att ARM64 tar över även på Windows plattformen.
Länge var konsensus att instruktionsuppsättningen, ISA, inte spelade speciellt stor roll kring vilken prestanda en krets får. I praktiken var det så, primärt av två orsaker
ISA har visat sig långt viktigare nu när normen är CPUer med flera kärnor än vad som var fallet när CPU hade en eller max två kärnor
Tidigare försök, Intels IA64 är nog det mest välkända, till en ny ISA fungerade väl inom vissa specifika områden men var ingen vinst över x86/x86_64 sett till det genomsnittliga fallet. ARM64 och RISC-V är de första fallen som uppvisar i praktiken konsekvent bättre egenskaper än x86_64, båda dessa designades och lanseras (2010) efter att vi gått in i multi-core eran"
"The process of eliminating 32-bit and optimizing for the 64-bit ISA exclusively has been a 2-step process. With the Cortex-X2, the underlying circuitry used for handling 32-bit architectural-related elements was removed, saving on transistors and simplifying some structures. With the new Cortex-X3, the design team took the time to start optimizing specifically for AArch64. In particular, many optimizations to fetch and decode took place taking advantage of the more predictable and regular nature of the AArch64 ISA."
Helt övertygad om att en viktig orsak (finns flera) till att Apples M1 kan ha så brutalt mycket högre "IPC" jämfört med vad Intel/AMD kan få till (M1 utför åtminstone 50-60 % mer jobb per cykel jämfört med Golden Cove och Zen3, även Cortex X2 ligger ~20 % högre) kommer av möjligheter med ARM64.
Apple droppade 32-bit stödet för Arm rätt tidigt. Här är det viktigt att inse att ARM64 inte är en utökning utav 32-bit Arm likt hur x86_64 är en utökning av x86 (IA32). ARM64 är en helt egen ISA som inte har samma kodning av instruktion som 32-bitars Arm, det är lika stor skillnad mellan ARM64 som mellan t.ex. MIPS och PowerPC.
ARM64 har dels fördel att alla instruktioner är samma längd, x86_64 instruktioner kan vara allt från 1 till 15 bytes. Trots att ARM64 är en "RISC" (vilket idag är en rätt meningslös term) med fast instruktionsstorlek blir program nästan alltid mer kompakta med ARM64 än med x86_64.
Detta beror mycket på att ARM64 (likt RISC-V) designats för att vara enkla att optimera kompilerad kod för. x86_64 må ha långt fler instruktioner än ARM64, men ARM64 är "rätt" instruktioner för en kompilator.
ARM64/RISC-V implementerar rätt exakt den minneskonsistenmodell som alla de stora programmeringsspråken efter mycket bollande fram och tillbaka kommit fram till är "optimalt" för multitrådade program. I princip alla andra tidigare RISC:ar valde en lite för tillåtande modell, d.v.s. för lite garantier ges mot hur Java, C#, C++, Rust, Go etc förväntar sig att saker ska fungera. x86_64 har valt en långt striktare modell än nödvändigt.
RISC:arna får därför stoppa in extra synkronisering, så de tappar de fördelar de hade på pappret. x86_64 lämnar en hel del prestanda på bordet, att fixa detta skulle byta att alla existerande multitrådade program skulle sluta fungera -> går inte att fixa för då försvinner huvudpunkten med att dras med x86_64: dessa bakåtkompatibilitet.
Arm har historiskt varit rätt spot-on kring de IPC förbättringar man lovat, så Cortex X3 borde inte vara något avsteg från det. 11 % IPC (geometriskt medel över ett gäng applikationer) är betydligt bättre än vad Intel verkar få i Raptor Cove och vad AMD kommer få i Zen4 (och tänk då på att det är 11 % mot X2 som lanserades 2021, Intel verkar få några enstaka procent sen Alder Lake och AMDs förbättringar med Zen4 är vid lansering mot en 2 år gammal Zen3).
11 % är ändå inte tillräckligt för att man ska komma riktigt nära Apple, och för att ARM64 på Windows ska ta fart behövs något likt M1/M2 (d.v.s. i praktiken lika bra eller bättre på varje punkt jämfört med Intel/AMD, och väsentligt bättre på ett par).
Artikeln nämner att Qualcomm ska använda Cortex X3 i nästa generation Snapdragon. Tror man kan tolka det positivt givet vad denna tråd handlar om: det betyder kanske att Qualcomm/Nuvia CPUn verkligen är till 100 % designad för laptop/PC, det skulle ge dem möjligheter att trumfa Apples M1/M2 serie då Apple bara har en "big-core" design som de använder från Iphone och uppåt.