Som flera andra varit inne på, bästa utfall av Intels problem vore om det ger 64-bitars ARM (eller ännu hellre RISC-V då det är helt öppet, men där är vissa delar inte färdigspecificerade än så inte realistiskt val utanför inbyggdasystem just nu).
Några orsaker varför 64-bitars ARM är en långt bättre tekniskt val idag:
"Ingen" skriver direkt i assembler idag
Instruktionsuppsättningen är helt designad mot bakgrund att det är kompilatorer som genererar maskinkoden, inte människor. Det ger enklare kompilatordesign.
Både x86 och även 32-bitars ARM (som är en separat instruktionsuppsättning mot 64-bitars ARM, 32-bitars ARM har ungefär lika mycket brister som x86 fast det är inte samma brister) designades vid en tid där det var en självklarhet att de prestandakritiska delar skrevs av människor i assembler.
Vad som är optimalt för en människa är inte samma sak som det optimala om det ska genereras av en maskin.
x86 (likt alla ISA designade på 70/80-talet) har massa implicita beroende mellan instruktioner
64-bitars ARM är specifikt designad så man kan skapa effektiva "breda" designer. Detta då nästan alla instruktioner inte har någon effekt utanför att läsa sin input (typiskt två register) och skriva sin output (typiskt ett register). För programmerare, visualisera 64-bitars ARM instruktioner som "rena funktioner"
x86 (och även 32-bitar ARM) verkar ser väldig "dimishing returns" redan vid kapacitet på 3 x86 instruktioner per cykel (Zen tar upp till 4 och Skylake upp till 5 fast med en rad begränsningar på 4 av dessa). Det är jättesvårt att dra upp IPC riktigt högt på dessa då de uppför sig som ett multitrådat program där man läser/skriver till globala variabler (alla som gjort parallellprogrammering vet att det är en dödssynd)
Senaste ARM designen, Cortex A76, kan köra upp till 4 instruktioner och den har i praktiken samma IPC som senaste x86:orna (fast med mindre än hälften av transistorbudgeten och med långt bättre perf/W).
Apples senaste CPU har ~40 % högre IPC jämfört med Skylake, vilket visar att deras design som kan köra upp till 7 ARM instruktioner per cykel fungerar!
Multi-core är standard idag
Alla CPUer har flera kärnor, ARM (ARMv8-A 32-bit och alla 64-bit) är inte jättemycket bättre men det är bättre då man specifik gjorde sin HW-specifikation efter den minneskonsistensmodell C, C++, Java, DotNet m.fl. använder.
x86 är trots allt OK-ish på denna punkt i de flesta fall, finns ISA med större problem.
Det stora problemet här är ju Windows. Windows och x86, "wintel", har varit en självklarhet under hela Windows livstid. Fanns en NT version som fungerande på DEC Alpha men den sög. 32-bitars ARM Windows var en riktig WTF!
64-bitars ARM Windows versionen är en "riktig" Windows, men då nästan all Windows-applikationer bara finns för x86. Till skillnad från servers där virtuella maskiner av olika slag är normalfallet idag är majoriteten av desktop-applikationerna för Windows fortfarande skrivna i C++ så de är x86-only.
I bästa fall skulle det bara vara att bygga om dem för att få "native" ARM 64-bitars stöd. I praktiken lär det finnas buggar i majoriteten av alla multi-trådade applikationer som bara råkar fungera på x86. x86 ger nästan alltid mer synkronisering än vad specifikationen för C++ kräver, så det är en bugg som "råkar" fungera på x86. ARM gör exakt vad som krävs, varken mer eller mindre (vilket är snabbare), men man har nu ett data-race (en av de svåraste buggar att hitta ).
Förhoppningsvis kommer Apple kunna demonstrera hur mycket en bromskloss x86 är idag när (för tror inte det handlar om "om" längre) de byter till ARM för MacOS, är övertygad att deras laptops som få x86-laptops att skämmas rent prestandamässigt! I det läget lär det bli ett tillräckligt stort tryck på Windows-sidan så att alla de viktiga applikationer kommer finnas i "native" format.
Så länge det krävs emulering kan AMD/Intel känna sig helt lugna. Även när det görs riktigt bra blir resultat uselt! Inte ens det teoretisk bästa utfallet är speciellt lockande då det skulle kapa majoriteten av alla fördelar med 64-bitars ARM.
Och ARM kan inte kompensera med hög frekvens, för dem är det helt enkelt mycket vettigare att gå riktigt brett då det är möjligt och "sweet-spot" för perf/W ligger vid 2-3 GHz, inte 4-5 GHz... Att gå riktigt brett är också en konstruktiv användning av en allt högre transistordensitet, genom att inte pressa frekvensen kan resultatet fortfarande kylas!
Edit: ska dock ändå nämnas att de få läckta benchmarks som finns för Ice Lake pekar på att det kommer bli det störta lyftet i IPC sedan Core2. Mycket tyder på att det blir ett större lyft än Nehalem -> Sandy Bridge, typ 15-25 % beroende på lasts (d.v.s det är den generella ökningen, inte en ökning när någon speciell instruktion används). Men hjälper inte så mycket om man måste kapa frekvensen lika mycket för att hantera värmen...
Problemet med Apple, är att när dom går över till ARM, så kommer dom troligtvis satsa på inlåsningar, som att installationer ska gå via deras App-butik.
Vi vet heller inte om det kommer handla om MacOS liknade OS eller en utbyggd version av iOS.
I det läget så skulle ju efterfrågan på ett OS på desktop som fungerar som det gjort, knappast minska.
Det skulle göra det väldigt svårt för MS att göra en övergång. Om dom gör om från grunden, så har dom i det läget inget argument för varför folk inte ska byta till andra OS.
Folk väljer inte windows för att det ser ut som det gör, utan för att det fungerar för det dom behöver det till, och kanske för att Apple produkter är för dyra i vissa fall.
Dessutom så kan man ju tänka sig att Apple med ARM kommer att innebära SOC, utan möjlighet att byta grafikkort, eller bygga ut ramminnet, och troligtvis inte bygga ut den inbyggda lagringen heller.
Det blir ju liksom inte som att Apple visar framtidens plattform för desktop, i alla fall inte för dom som vill kunna bygga ut sin dator efter inköp för att dom inte hade råd till en fullspecad dator på en gång.
En bättre start för en övergång vore väl kanske om spelkonsolerna gick över. Xbox on ARM, med stöd för tangentbord och Mus, och med möjlighet att skaffa office, appar för typ alla musik och TV streaming-tjänster, bildbehandlingsprogram och nån form av videoredigerings-program också, och förstås öppet för utvecklare att ta fram vad dom vill, men jag menar bara mer vad MS behöver säkerställa finns på plats vid släpp för att folk ska se det som en ny typ av "PC" och inte bara en spelkonsol. Nån form av möjlighet att ansluta en andra skärm, kanske trådlöst (kanske via TP-kabel), för att kunna använda spelkonsolen som kontorsdator, nära en skärm, istället för att behöva sitta framför TVn för att använda den som dator. Dom som använder den som dator, skulle möjligtvis börja önska att den hade lite mer resurser, och då när dom kollar runt, kunna vara öppna för en ARM baserad lösning, efter att fått lite erfarenhet av det, och då om det finns möjlighet att köpa ARM baserade datorer som går att bygga ut på liknande sätt som idag, så skulle det kunna bli ett fullgott alternativ.
Skickades från m.sweclockers.com