Sunny Cove
Känns som nyheterna här rätt mycket gick de flesta förbi. Detta är den största uppdateringen Intel gjort till Core-serien sedan Sandy Bridge! "Front-end", "back-end" samt L1D$ och L2$ har fått sig en uppdatering.
Finns egentligen bara ett läckt prestandaresultat, men det är ändå en full GB4 körning vilket betyder 25 st deltester duplicerat för enkeltrådfallet och fallet där alla kärnor kan användas. GB4 listar ju även frekvens, om den är korrekt blir det ju nästan ARM-lika siffror på IPC-förbättringarna över Skylake. Är i genomsnitt ~25 % högre IPC över alla heltalstester och ~20 % över alla flyttalstester.
Stora frågetecknen här är: när sker lanseringen och vilken frekvens kommer man lyckas få till för dessa?
Zen2
Ett enda Cinebench resultat, där det är omöjligt att avgöra om prestandaförbättringen kommer från bättre IPC, bättre frekvens eller (troligast) en kombination av dessa, är det väldigt svårt att dra några egentliga slutsatser från.
Men finns faktiskt ett ställe där man redan nu hittar rätt detaljerad information om framförallt "back-end" men även lite information om "front-end" är de patchar som AMD stoppat in i kommande GCC9.
De största förändringarna i "back-end" är egentligen redan kända: man går till 256-bitars SIMD-stöd så kapaciteten för AVX-optimerad kod dubbleras. Vidare har man breddat läsning/skrivning av data från cache till AVX-register, även detta ser man i patchen då latensen för att ladda alla 256-bitarna i ett AVX-register har minskat.
Utöver detta finns bara några småoptimeringar kring generell minnesoptimering (optimering av x86 kombon "rep mov").
AMD har inte heller sagt något om förändringar i "back-end" utöver de kring AVX, som presterades under avtäckandet av "Epyc Rome".
Då Cinebench inte ser någon som helst effekt av bättre AVX-prestanda antyder detta lite att det kanske är frekvensen som skruvats upp. Inte helt osannolikt, en vink om att en separat "compute"-krets kan ge lite bättre frekvensmarginal är att "Clarkdale" (Westmere som saknade integrerad minneskontroller, den låg likt Zen2 på en separat krets) gick ofta att klocka rejält högt.
L4$
Rimligen lär vi inte få se någon SRAM i I/O-kretsen, men är inte alls omöjligt att man stoppar in eDRAM. SRAM tar runt sex gånger mer ytan jämfört med SRAM för samma kapacitet, är just eDRAM som både Intel och även IBM använt som "L4$".
Skriver "L4$" då vi får hoppas att AMD inte väljer en verklig L4$, detta då det finns både för- och nackdelar med fler cache-nivåer.
Intel och IBM drog här samma slutsats kring L4$ (Intel använde det i vissa Haswell/Broadwell och IBM i vissa POWER7): fördelarna kontra kostnaden var väldigt svår att motivera, framförallt då vissa arbetslaster faktiskt får något sämre prestanda p.g.a. latensen mot RAM ökar för varje cache-nivå samt en väldigt stor cache gör koherens-logiken dyr (och i värsta fall långsammare).
I båda fallen tillverkar man fortfarande modeller med eDRAM. "Tricket" båda kom på var att göra en cache som inte är koherent med övrig CPU-cache, utan man lägger eDRAM som en, för CPU, "osynlig" cache på RAM-bussen!
Detta har flera fördelar
man slipper ta hänsyn till ännu ett cache-lager och därmed dess s.k. cache-taggar (var dessa som kostade 512 kB per kärna av L3$ i t.ex. i7-5775C)
alla minnesoperationer, även DMA till/från I/O, kan dra nytta av eDRAM (är inte fallet om den är en verklig L4$)
krävs noll modifiering av själva CPU-kretsen för att skapa modeller med/utan "L4$"
Som ägare av i7-5775C (och även i7-6650U (64 MB eDRAM), i7-6770HQ och i7-8559U (båda har 128 MB eDRAM)): tror folk har lite för stora förhoppningar på vad eDRAM ger i praktiken.
När i7-5775C var många väldigt förvånande att den presterade så bra just i spel (framförallt då L4$ inte gjorde någon skillnad i princip något annat). Med tiden har man lyckats lura ut orsaken: eDRAM ger samma effekt som riktigt snabbt RAM! På den här tiden var det DDR4-2400 som gällde för i7-6700K och ännu långsammare för de system som körde DDR3.
Ställer man i7-5775C mot dagens Skylake-modeller och utrustar dessa med snabbt DDR4-3200 hänger tyvärr inte i7-5775C med. Den hamnar strax under en i5-8400....
Så den riktigt stora fördelen med eDRAM är i praktiken för mobila enheter där snabbt RAM kostar för mycket effekt. eDRAM ger då fördelarna man får med snabbt RAM, men eDRAM drar väldigt lite ström för de minnesaccesser som träffar där.
Sedan är frågan hur mycket eDRAM AMD skulle få plats med i sin I/O-krets. 128 MB varianten av "Crystal Well" (eDRAM kretsen som Intel använder) är ~85 mm^2 på dagens 22 nm (som har uppgraderas så den är "tätare" än den ursprungliga 22 nm).
Edit: förtydligande om L4$ påverkan på L3$ hos i7-5775C. Försvinner alltså 512 kB per kärna, så den modellen har SRAM för 8 MB L3$, men totalt 2 MB av detta försvinner för att hantera L4$. Finns andra sätt att lösa "cache-taggarna" för L4$, men just detta lär i praktiken lösas med SRAM då cache-koherensen är extremt latenskritisk. eDRAM ger långt mer kapacitet per ytenhet, men SRAM är snabbare och har lägre latens.
Förtydliganden kring vilken information man kan få från AMDs GCC-patchar för Zen2. Här finns information om storlek på L1$D och L2$ (patchen säger att dessa är oförändrade). Man får information om "bredden" på CPU-pipelines samt antal cykler det tar att utföra olika instruktioner, patchen antyder alltså att det är oförändrat med undantag för AVX samt rep/mov (som används vid minneskopieringar av relativt små buffertar).
På ren svenska antyder detta att heltalsdelen i Zen2 i praktiken är en krympt versioner av Zen+, men finns ändå saker kan lyfta IPC för heltal. T.ex. så har man gjort förändringar i branch-predictor samt minneskopiering av stora buffertar kan dra nytta av AVX (Linux testar ett par olika metoder vid boot och väljer den som fungerar bäst på det lokala systemet). Kodning av film är rätt mycket heltal som idag är optimerad m.h.a. SIMD, vilket på x86 betyder SSE/AVX.