Samsung Austin R&D Center afslører detaljer om dens uudgivne Exynos M6 CPU-mikroarkitektur

click fraud protection

Samsung Austin Research & Development Center (SARC) har udgivet et papir, der beskriver mikroarkitekturen af ​​den annullerede Exynos M6 brugerdefinerede CPU-kerne.

Vi ved, at det brugerdefinerede CPU-kerneprojekt på Samsungs Austin Research & Development Center (SARC) kom til en ende i oktober 2019. For et projekt, der blev promoveret med så stor fanfare med lanceringen af ​​Exynos M1-featuring Exynos 8890 i 2016, var det en trist afslutning. Hvorfor foldede SARC projektet sammen? Exynos M5 brugerdefinerede kerne, der er vist i Exynos 990 SoC, er den sidste Samsung-designede fuldt tilpassede kerne i en overskuelig fremtid, og set i bakspejlet er det let at se, hvorfor Samsung opgav tilpassede kerner, da de simpelthen ikke var konkurrencedygtige nok. Det er nu kendt, at Exynos M5-kernen har et underskud på 100 % strømeffektivitet mod ARMs Cortex-A77, hvilket siger meget. Alligevel behøvede det ikke at gå sådan. Exynos M1- og Exynos M2-designerne viste noget lovende, og det brugerdefinerede CPU-kerneprojekt blev på det tidspunkt anset for vigtigt af hensyn til konkurrencen i det mobile CPU-rum. Exynos M3 var en stor nedtur på trods af den store IPC-stigning, og den

Exynos M4 og Exynos M5 formåede ikke at følge med ARMs standard CPU IP. Hvad var de mikroarkitektoniske ændringer i den næste brugerdefinerede kerne, den annullerede Exynos M6?

Indtil nu var svaret på det spørgsmål ukendt. Nu har SARC CPU-udviklingsteamet dog præsenteret et papir med titlen "Evolution of the Samsung Exynos CPU Architecture" (som vi lærte at kende via AnandTech) på International Symposium for Computer Architecture (ISCA), som er en IEEE-konference. Det afslører en masse detaljer om tidligere Exynos M-serie CPU'er samt arkitekturen af ​​den annullerede Exynos M6.

Papiret præsenteret af SARCs CPU-udviklingsteam beskriver holdets indsats gennem dets otte-årige eksistens og afslører også nøgledetaljer om de brugerdefinerede ARM-kerner lige fra Exynos M1 (Mongoose) til den nuværende generation af Exynos M5 (Lion), og endda den uudgivne Exynos M6 CPU, som forud for annullering forventes at være med i Exynos 990's 2021 SoC efterfølger.

Samsungs SARC CPU-team blev etableret i 2011 for at udvikle brugerdefinerede CPU-kerner, som derefter blev vist i Samsung Systems LSI's Exynos SoC'er. Den første Exynos SoC, der brugte en brugerdefineret kerne, var Exynos 8890, som var med i 2016's Samsung Galaxy S7. De brugerdefinerede kerner forblev en del af Exynos SoCs indtil Exynos 990 med Exynos M5-kernerne, som var med i de Exynos-drevne Samsung Galaxy S20-varianter. (den kommende Exynos 992, der sandsynligvis vil være med i Galaxy Note 20, forventes at have ARM'er Cortex-A78 og ikke Exynos M5.) SARC havde imidlertid færdiggjort Exynos M6-arkitekturen, før CPU-teamet havde fik nyheden om, at den blev opløst i oktober 2019, hvor opløsningen træder i kraft i December.

ISCA-papiret indeholder en oversigtstabel over de mikroarkitektoniske forskelle mellem Samsungs brugerdefinerede CPU-kerner fra Exynos M1 til Exynos M6. Nogle af de velkendte karakteristika ved designet var blevet afsløret af virksomheden i dets indledende M1 CPU-arkitektur dybt dyk ved HotChips 2016-begivenheden. Ved HotChips 2018 gav Samsung et dybt dyk på Exynos M3. Arkitekturen af ​​Exynos M4 og Exynos M5 kernerne er også blevet detaljeret, såvel som M6.

Kilde: SARC

AnandTech bemærker, at det ene kendetegn ved Samsungs design gennem årene var, at det var baseret på det samme RTL-plan, som blev startet med Exynos M1 Mongoose-kernen. Samsung fortsatte med at lave forbedringer i kernernes funktionelle blokke gennem årene. Exynos M3 repræsenterede en ændring fra de første iterationer, da den udvidede kernen væsentligt i flere henseender, idet den gik fra et 4-bredt design til en 6-bred midtkerne. (Apple A11, A12 og A13 har på den anden side en 7-bred afkodningsbredde, mens Cortex-A76, A77 og A78 har en 4-bred bredde. Cortex-X1 øger afkodningsbredden til 5 bred.)

Rapporten giver også nogle afsløringer, der ikke var offentlige før, vedrørende Exynos M5 og M6. For Exynos M5 foretog Samsung større ændringer i kernernes cachehierarkiet og erstattede private L2-cacher med en ny større delt cache samt afsløring af en ændring i L3-strukturen fra et 3-banks design til et 2-banks design med mindre reaktionstid.

Den annullerede M6-kerne ville have været et større spring med hensyn til mikroarkitekturen. SARC havde foretaget store forbedringer såsom at fordoble L1-instruktionen og datacache fra 64KB til 128KB - AnandTech bemærker, at dette er et designvalg, der hidtil kun er blevet implementeret af Apples A-serie kerner, startende med Apple A12.

L2 blev fordoblet i sine båndbreddekapaciteter op til 64B/cyklus, mens L3 ville have set en stigning fra 3MB til 4MB. Exynos M6 ville have været en 8-bred afkodningskerne. Som bemærket af AnandTech, ville dette have været den bredeste kommercielle mikroarkitektur, der i øjeblikket er kendt med hensyn til afkodning. Men selvom kernen var meget bredere, så heltalsudførelsesenhederne ikke mange ændringer. En kompleks pipeline tilføjede en anden heltalsopdelingskapacitet, mens load/store pipelines forblev de samme som M5 med en load-enhed, en butiksenhed og en load/store-enhed. Flydende komma/SIMD-rørledningerne ville have set en yderligere fjerde enhed med FMAC-kapacitet. L1 DTLB blev øget fra 48 sider til 128 sider, og hoved TLB blev fordoblet fra 4K sider til 8K sider (32MB dækning).

Exynos M6 ville have repræsenteret endnu en væsentlig ændring i forhold til sine forgængere ved at øge kernens out-of-order vindue fra første gang siden M3. Der ville have været større heltal og flydende fysiske registerfiler, og ROB (Reorder Buffer) ville være steget fra 228 til 256. AnandTech bemærker, at en vigtig svaghed ved de tilpassede Exynos-kerner stadig er til stede på M5 og også ville have været til stede på M6. Det ville være dens dybere pipeline-stadier, der ville resultere i en dyr 16-cyklus misforudsigelsesstraf, som var højere end ARMs CPU-kerner, der har 11-cyklus misforudsigelsesstraf. SARC-papiret går endnu mere i dybden med grenprædiktordesignet og viser CPU-kernens Scaled Hashed Perceptron-baserede design. Dette design ville have forbedret kontinuerligt gennem årene og implementeringer, forbedret grennøjagtigheden og reduceret fejlforudsigelser pr. kilo-instruktioner (MPKI) kontinuerligt. SARC præsenterer en tabel, der viser mængden af ​​lagerstrukturer, som grenprædiktoren optager i front-end. Kernens prefetching-teknologier blev også beskrevet detaljeret i papiret, der dækker introduktionen af ​​en µOP-cache i M5, samt holdets indsats for at hærde kernen mod sikkerhedssårbarheder som f.eks Spectre.

Bestræbelser på at forbedre hukommelsesforsinkelse i de tilpassede Exynos-kerner blev også beskrevet detaljeret af SARC i papiret. I Exynos M4 inkluderede SARC-teamet en belastnings-belastningskaskademekanisme, der reducerede den effektive L1-cyklusforsinkelse fra fire cyklusser til tre ved efterfølgende belastninger. M4-kernen introducerede også en sti-bypass med et nyt interface fra CPU-kernerne direkte til hukommelsescontrollerne, hvilket undgik trafik gennem sammenkoblingen. Ifølge AnandTech, dette forklarede nogle af de større latenstidsforbedringer, som publikationen var i stand til at måle med Exynos 9820. Exynos M5 introducerede en spekulativ cache-opslagsbypass, som sendte en anmodning til både interconnect- og cache-tags samtidigt. Dette ville muligvis spare på latenstid i tilfælde af en cache-miss, da hukommelsesanmodningen er i gang. Den gennemsnitlige belastningsforsinkelse blev også løbende forbedret i løbet af generationerne fra 14,9 cyklusser på M1 til 8,3 cyklusser på M6.

Mens ovenstående mikroarkitektoniske egenskaber er ret tekniske, vil CPU-entusiaster være bekendt med udtrykket Instructions Per Clock (IPC), som betyder per-MHz ydeevne i enkelttråds CPU-ydeevne (det er den primære hovedfaktor, der bestemmer enkelttråds CPU-ydeevne, hvor den anden faktor er clockhastigheden af kerne). Heltals-IPC og floating-point IPC er begge determinanter for IPC. SARC-teamet formåede at opnå et gennemsnit på 20 % årlige forbedringer fra M1 til M6. Især M3 repræsenterede en stor procentuel forbedring i IPC, selvom den blev svigtet af andre faktorer. Exynos M5 repræsenterede en forbedring på 15-17 % i IPC, mens IPC-forbedringen for den ikke-udgivne Exynos M6 er blevet afsløret at have et gennemsnit på 2,71 mod 1,06 for M1, hvilket repræsenterer en forbedring på 20 % i forhold til M5.

Brian Grayson, avisens oplægsholder, besvarede spørgsmål om programmets aflysning under Q&A-sessionen. Han sagde, at holdet altid havde været på mål og på planen med præstations- og effektivitetsforbedringer med hver generation. (Betyder det, at målene ikke var høje nok i første omgang?). Holdets største vanskelighed var derimod i forhold til at være ekstremt forsigtig med fremtiden designændringer, da holdet ikke havde ressourcerne til at starte fra bunden eller fuldstændigt omskrive en blok. Set i bakspejlet ville holdet tidligere have gjort forskellige valg med nogle af designretningerne. I skarp kontrast har ARM flere CPU-teams, der arbejder forskellige steder, som faktisk konkurrerer med hinanden. Dette giver mulighed for "ground-up re-designs" som f.eks Cortex-A76. Det Cortex-A77 og Cortex-A78 er de direkte efterfølgere af A76.

SARC-teamet havde ideer til forbedringer til kommende kerner såsom den hypotetiske Exynos M7. Det var dog angiveligt en meget højtstående person hos Samsung, der besluttede at annullere det tilpassede kerneprogram. Som AnandTech bemærker, at de brugerdefinerede kerner ikke var konkurrencedygtige med hensyn til strømeffektivitet, ydeevne og arealforbrug (PPA) sammenlignet med ARM's CPU'er af nogen bestemt generation. I sidste måned annoncerede ARM Cortex-X Custom-programmet med det nye Cortex-X1, en næste generations kerne beregnet til 2021 mobile enheder. Den har en designfilosofi om at bryde Cortex-A PPA-konvolutten og gå efter absolut ydeevne i stedet for. Exynos M6 ville derfor have haft svært ved at konkurrere med den. Alligevel ser det ud til, at Samsung ikke vil tilpasse Cortex-X1 og kun vil gå med Cortex-A78 + Cortex-A55-kombinationen i Exynos 992 - det kan dog blive vedtaget i næste års Galaxy S flagskib.

SARC-teamet designer stadig i øjeblikket brugerdefinerede sammenkoblinger og hukommelsescontrollere til Samsung Systems LSI. Det arbejdede også på brugerdefinerede GPU-arkitekturer, men Samsung Systems LSI underskrev en aftale med AMD at bruge AMD's næste generation (Next graphics architecture) RDNA GPU-arkitektur i fremtidige Exynos GPU'er, startende i 2021.

Samlet set var det brugerdefinerede CPU-kerneprojekt en oplysende lektion for leverandører af mobile chip om, hvad der kan gå galt. SARC CPU-teamet havde høje ambitioner om at konkurrere med Apple, som er den ubestridte leder inden for det mobile CPU-rum. Desværre lykkedes det ikke at konkurrere med ARM, pyt med Apple. Problemerne kunne have været løst, men år efter år var SARCs indsats et skridt eller to bagud, og det afspejlede sig negativt i forsendelsesprodukter som Exynos 9810-varianterne af Samsung Galaxy S9. Nu vil alle større Android-mobilchipleverandører bruge ARMs lager CPU IP fra 2021, og denne liste inkluderer Qualcomm, Samsung, MediaTek og HiSilicon. Kampen vil blive taget til Apple med kerner som Cortex-X1, ikke brugerdefinerede ARM-kerner designet fra bunden.


Kilde: Udvikling af Samsung Exynos CPU-arkitekturen | Via: AnandTech