Samsung Austin Research & Development Center (SARC) har gitt ut et papir som beskriver mikroarkitekturen til den kansellerte Exynos M6-tilpassede CPU-kjernen.
Vi vet at det tilpassede CPU-kjerneprosjektet ved Samsungs Austin Research & Development Center (SARC) kom til en slutt i oktober 2019. For et prosjekt som ble promotert med så stor fanfare med lanseringen av Exynos M1-med Exynos 8890 i 2016, var det en trist slutt. Hvorfor brettet SARC sammen prosjektet? Den tilpassede Exynos M5-kjernen, omtalt i Exynos 990 SoC, er den siste Samsung-designede fullt tilpassede kjernen i overskuelig fremtid, og i ettertid er det lett å se hvorfor Samsung ga opp tilpassede kjerner, siden de rett og slett ikke var konkurransedyktige nok. Det er nå kjent at Exynos M5-kjernen har et underskudd på 100 % strømeffektivitet mot ARMs Cortex-A77, som sier mye. Likevel trengte det ikke å bli slik. Exynos M1- og Exynos M2-designene viste noe løfte, og det tilpassede CPU-kjerneprosjektet ble på den tiden sett på som viktig av hensyn til konkurransen i det mobile CPU-rommet. Exynos M3 var en stor nedtur til tross for den store IPC-økningen, og
Exynos M4 og Exynos M5 klarte ikke å holde tritt med ARMs lager CPU IP. Hva var de mikroarkitektoniske endringene i den neste tilpassede kjernen, den kansellerte Exynos M6?Til nå var svaret på det spørsmålet ukjent. Nå har imidlertid SARC CPU-utviklingsteamet presentert en artikkel med tittelen "Evolution of the Samsung Exynos CPU Architecture" (som vi ble kjent med via AnandTech) på International Symposium for Computer Architecture (ISCA), som er en IEEE-konferanse. Den avslører mange detaljer om tidligere Exynos M-serie CPUer samt arkitekturen til den kansellerte Exynos M6.
Papiret presentert av SARCs CPU-utviklingsteam beskriver teamets innsats gjennom dets åtte år lange eksistens, og avslører også nøkkeldetaljer om de tilpassede ARM-kjernene som strekker seg fra Exynos M1 (Mongoose) til den nåværende generasjonen Exynos M5 (Lion), og til og med den uutgitte Exynos M6 CPU, som før kansellering ville vært forventet å være med i Exynos 990s 2021 SoC etterfølger.
Samsungs SARC CPU-team ble etablert i 2011 for å utvikle tilpassede CPU-kjerner, som deretter ble omtalt i Samsung Systems LSIs Exynos SoCs. Den første Exynos SoC som brukte en tilpasset kjerne var Exynos 8890, som ble vist i 2016s Samsung Galaxy S7. De tilpassede kjernene forble en del av Exynos SoCs frem til Exynos 990 med Exynos M5-kjernene, som var med i de Exynos-drevne Samsung Galaxy S20-variantene. (Det kommende Exynos 992, sannsynligvis med i Galaxy Note 20, forventes å ha ARM-er Cortex-A78 og ikke Exynos M5.) Imidlertid hadde SARC fullført Exynos M6-arkitekturen før CPU-teamet hadde fikk nyheter om at den ble oppløst i oktober 2019, og oppløsningen ble satt i kraft i Desember.
ISCA-papiret har en oversiktstabell over de mikroarkitektoniske forskjellene mellom Samsungs tilpassede CPU-kjerner fra Exynos M1 til Exynos M6. Noen av de velkjente egenskapene til designet hadde blitt avslørt av selskapet i sitt første dypdykk i M1 CPU-arkitektur på HotChips 2016-arrangementet. På HotChips 2018 ga Samsung et dypdykk på Exynos M3. Arkitekturen til Exynos M4 og Exynos M5-kjernene har også blitt detaljert, så vel som M6.
AnandTech bemerker at den ene nøkkelegenskapen til Samsungs design gjennom årene var at den var basert på den samme RTL-planen som ble startet med Exynos M1 Mongoose-kjernen. Samsung fortsatte å gjøre forbedringer i de funksjonelle blokkene til kjernene gjennom årene. Exynos M3 representerte en endring fra de første iterasjonene ettersom den utvidet kjernen betydelig på flere måter, og gikk fra en 4-bred design til en 6-bred midtkjerne. (Apple A11, A12 og A13 har på den annen side en 7-bred dekodebredde, mens Cortex-A76, A77 og A78 har en 4-bred bredde. Cortex-X1 øker dekodebredden til 5 bred.)
Rapporten gir også noen avsløringer som ikke var offentlige før angående Exynos M5 og M6. For Exynos M5 gjorde Samsung større endringer i hurtigbufferhierarkiet til kjernene, og erstattet private L2-cacher med en ny større delt hurtigbuffer samt avsløre en endring i L3-strukturen fra en 3-banks design til en 2-banks design med mindre ventetid.
Den kansellerte M6-kjernen ville ha vært et større hopp når det gjelder mikroarkitekturen. SARC hadde gjort store forbedringer som å doble L1-instruksjonen og databuffere fra 64KB til 128KB - AnandTech bemerker at dette er et designvalg som kun har blitt implementert av Apples kjerner i A-serien så langt, og starter med Apple A12.
L2 ble doblet i sine båndbreddekapasiteter opp til 64B/syklus, mens L3 ville ha sett en økning fra 3MB til 4MB. Exynos M6 ville ha vært en 8-bred dekodekjerne. Som bemerket av AnandTech, ville dette ha vært den bredeste kommersielle mikroarkitekturen som for tiden er kjent når det gjelder dekoding. Men selv om kjernen var mye bredere, så ikke heltallsutførelsesenhetene mye endring. En kompleks rørledning la til en annen heltallsdivisjonsevne, mens laste-/lagerrørledningene forble de samme som M5 med én lasteenhet, én lagringsenhet og én laste-/lagerenhet. Flytepunkt-/SIMD-rørledningene ville ha sett en ekstra fjerde enhet med FMAC-funksjoner. L1 DTLB ble økt fra 48 sider til 128 sider, og hoved-TLB ble doblet fra 4K sider til 8K sider (32MB dekning).
Exynos M6 ville representert nok en betydelig endring fra forgjengerne ved å øke vinduet som ikke er i orden i kjernen fra første gang siden M3. Det ville ha vært større heltalls- og flytende-punkts fysiske registerfiler, og ROB (Reorder Buffer) ville ha økt fra 228 til 256. AnandTech bemerker at en viktig svakhet ved de tilpassede Exynos-kjernene fortsatt er tilstede på M5 og ville vært til stede på M6 også. Det ville være dens dypere pipeline-stadier som ville resultere i en kostbar 16-syklus feilforutsigelse, som var høyere enn ARMs CPU-kjerner som har 11-syklus feilforutsigelsesstraff. SARC-papiret går enda mer i dybden i grenprediktordesignet, og viser frem CPU-kjernens Scaled Hashed Perceptron-baserte design. Denne designen ville ha forbedret seg kontinuerlig gjennom årene og implementeringer, forbedret grennøyaktigheten og redusert feilprediksjoner per kilo-instruksjoner (MPKI) kontinuerlig. SARC presenterer en tabell som viser mengden lagringsstrukturer som grenprediktoren tar opp i front-end. Kjernens forhåndshentingsteknologier ble også beskrevet i artikkelen, og dekker introduksjonen av en µOP-cache i M5, samt lagets innsats for å herde kjernen mot sikkerhetssårbarheter som f.eks Spekter.
Arbeidet med å forbedre minneforsinkelsen i de tilpassede Exynos-kjernene ble også beskrevet av SARC i avisen. I Exynos M4 inkluderte SARC-teamet en last-last-kaskademekanisme som reduserte den effektive L1-syklusforsinkelsen fra fire sykluser til tre ved påfølgende belastninger. M4-kjernen introduserte også en banebypass med et nytt grensesnitt fra CPU-kjernene direkte til minnekontrollerne, som unngikk trafikk gjennom sammenkoblingen. I følge AnandTech, forklarte dette noen av de større latenstidsforbedringene publikasjonen var i stand til å måle med Exynos 9820. Exynos M5 introduserte en spekulativ cache-oppslagsbypass, som sendte ut en forespørsel til både sammenkoblingen og cache-taggene samtidig. Dette vil muligens spare ventetid i tilfelle cache-miss da minneforespørselen er i gang. Den gjennomsnittlige belastningsforsinkelsen ble også kontinuerlig forbedret over generasjonene fra 14,9 sykluser på M1 til 8,3 sykluser på M6.
Mens de ovennevnte mikroarkitektoniske egenskapene er ganske tekniske, vil CPU-entusiaster være kjent med begrepet Instructions Per Clock (IPC), som betyr per-MHz ytelse i enkelttråds CPU-ytelse (det er den primære hovedfaktoren som bestemmer enkelttråds CPU-ytelse, mens den andre faktoren er klokkehastigheten til kjerne). Heltalls-IPC og flytende-punkt-IPC er begge determinanter for IPC. SARC-teamet klarte å få et gjennomsnitt på 20 % årlige forbedringer fra M1 til M6. Spesielt M3 representerte en stor prosentvis forbedring i IPC, selv om den ble sviktet av andre faktorer. Exynos M5 representerte en forbedring på 15-17 % i IPC, mens IPC-forbedringen for den ikke-utgitte Exynos M6 har blitt avslørt å ha et gjennomsnitt på 2,71 mot 1,06 for M1, noe som representerer en forbedring på 20 % i forhold til M5.
Brian Grayson, avisens programleder, svarte på spørsmål om programmets kansellering under Q&A-økten. Han sa at teamet alltid hadde vært på mål og på planen med ytelses- og effektivitetsforbedringer for hver generasjon. (Betyr det at målene ikke var høye nok i utgangspunktet?). Lagets største vanskelighet var derimot i forhold til å være ekstremt forsiktig med fremtiden designendringer da teamet ikke hadde ressurser til å starte fra bunnen av eller til å skrive om en fullstendig blokkere. I ettertid ville teamet ha gjort forskjellige valg tidligere med noen av designretningene. I sterk kontrast har ARM flere CPU-team som jobber på forskjellige steder som faktisk konkurrerer med hverandre. Dette gir mulighet for "grunn-opp re-design" som f.eks Cortex-A76. De Cortex-A77 og Cortex-A78 er de direkte etterfølgerne til A76.
SARC-teamet hadde ideer til forbedringer for kommende kjerner som den hypotetiske Exynos M7. Imidlertid var det visstnok en veldig høyt oppe person hos Samsung som bestemte seg for å kansellere det tilpassede kjerneprogrammet. Som AnandTech bemerker at de tilpassede kjernene ikke var konkurransedyktige når det gjelder strømeffektivitet, ytelse og arealbruk (PPA) sammenlignet med ARMs CPUer av en bestemt generasjon. Forrige måned kunngjorde ARM Cortex-X Custom-programmet med det nye Cortex-X1, en neste generasjons kjerne beregnet for 2021 mobile enheter. Den har en designfilosofi om å bryte Cortex-A PPA-konvolutten og gå for absolutt ytelse i stedet. Exynos M6 ville derfor hatt en tøff tid å konkurrere med den. Likevel ser det ut til at Samsung ikke vil tilpasse Cortex-X1 og bare vil gå med Cortex-A78 + Cortex-A55-kombinasjonen i Exynos 992 - den kan imidlertid bli tatt i bruk i neste års Galaxy S-flaggskip.
SARC-teamet designer fortsatt tilpassede sammenkoblinger og minnekontrollere for Samsung Systems LSI. Det jobbet også med tilpassede GPU-arkitekturer, men Samsung Systems LSI signerte en avtale med AMD å bruke AMDs neste generasjons (Neste grafikkarkitektur) RDNA GPU-arkitektur i fremtidige Exynos GPUer, med start i 2021.
Totalt sett var det tilpassede CPU-kjerneprosjektet en opplysende leksjon for leverandører av mobile brikker om hva som kan gå galt. SARC CPU-teamet hadde høye ambisjoner om å konkurrere med Apple, som er den ubestridte lederen på det mobile CPU-området. Dessverre klarte den ikke å konkurrere med ARM, uansett Apple. Problemene kunne vært løst, men år etter år var SARCs innsats et skritt eller to bak, og det gjenspeiles negativt i fraktprodukter som Exynos 9810-variantene av Samsung Galaxy S9. Nå vil alle store Android-mobilbrikkeleverandører bruke ARMs lager CPU IP fra 2021, og denne listen inkluderer Qualcomm, Samsung, MediaTek og HiSilicon. Kampen vil bli tatt til Apple med kjerner som Cortex-X1, ikke tilpassede ARM-kjerner designet fra bunnen av.
Kilde: Utviklingen av Samsung Exynos CPU-arkitektur | Via: AnandTech