Samsung Austin Research & Development Center (SARC) har släppt ett dokument som beskriver mikroarkitekturen för den avbrutna Exynos M6 anpassade CPU-kärnan.
Vi vet att det anpassade CPU-kärnprojektet vid Samsungs Austin Research & Development Center (SARC) kom till ett slut i oktober 2019. För ett projekt som marknadsfördes med sådan fanfar med lanseringen av Exynos M1-med Exynos 8890 2016, var det ett sorgligt slut. Varför vecklade SARC ihop projektet? Exynos M5 anpassade kärna, med i Exynos 990 SoC, är den sista Samsung-designade helt anpassade kärnan under överskådlig framtid, och i efterhand är det lätt att se varför Samsung gav upp anpassade kärnor, eftersom de helt enkelt inte var tillräckligt konkurrenskraftiga. Det är nu känt att Exynos M5-kärnan har ett underskott på 100 % energieffektivitet mot ARM: s Cortex-A77, vilket säger en hel del. Ändå behövde det inte bli så. Exynos M1- och Exynos M2-designerna visade något lovande, och det anpassade CPU-kärnprojektet ansågs vid den tiden vara viktigt för konkurrensens skull i det mobila CPU-utrymmet. Exynos M3 var en stor nedgång trots den stora IPC-ökningen, och
Exynos M4 och Exynos M5 misslyckades med att hålla jämna steg med ARMs lager CPU IP. Vilka var de mikroarkitektoniska förändringarna i nästa anpassade kärna, den inställda Exynos M6?Hittills var svaret på den frågan okänt. Nu har dock SARC CPU-utvecklingsteam presenterat en artikel med titeln "Evolution of the Samsung Exynos CPU Architecture" (som vi fick veta via AnandTech) vid International Symposium for Computer Architecture (ISCA), som är en IEEE-konferens. Det avslöjar en hel del detaljer om tidigare Exynos M-serie CPUer samt arkitekturen för den avbrutna Exynos M6.
Artikeln som presenterades av SARC: s CPU-utvecklingsteam beskriver teamets ansträngningar under dess åttaåriga existens, och avslöjar också nyckeldetaljer om de anpassade ARM-kärnorna, allt från Exynos M1 (Mongoose) till nuvarande generationens Exynos M5 (Lion), och till och med den outgivna Exynos M6-processorn, som före annulleringen skulle ha förväntats ingå i Exynos 990:s 2021 SoC efterträdare.
Samsungs SARC CPU-team etablerades 2011 för att utveckla anpassade CPU-kärnor, som sedan presenterades i Samsung Systems LSI: s Exynos SoCs. Den första Exynos SoC som använde en anpassad kärna var Exynos 8890, som fanns med i 2016 års Samsung Galaxy S7. De anpassade kärnorna förblev en del av Exynos SoCs fram till Exynos 990 med Exynos M5-kärnorna, som fanns med i de Exynos-drivna Samsung Galaxy S20-varianterna. (Den kommande Exynos 992, sannolikt med i Galaxy Note 20, förväntas ha ARM Cortex-A78 och inte Exynos M5.) Men SARC hade slutfört Exynos M6-arkitekturen innan CPU-teamet hade fick nyheten om att den upplöstes i oktober 2019, och upplösningen trädde i kraft december.
ISCA-papperet innehåller en översiktstabell över de mikroarkitektoniska skillnaderna mellan Samsungs anpassade CPU-kärnor från Exynos M1 till Exynos M6. Några av de välkända egenskaperna hos designen hade avslöjats av företaget i dess första M1 CPU-arkitektur djupdykning vid HotChips 2016-evenemanget. På HotChips 2018 gjorde Samsung en djupdykning på Exynos M3. Arkitekturen för Exynos M4- och Exynos M5-kärnorna har också detaljerats, liksom den för M6.
AnandTech noterar att den viktigaste egenskapen hos Samsungs design genom åren var att den baserades på samma RTL-ritning som startade med Exynos M1 Mongoose-kärnan. Samsung fortsatte att göra förbättringar i de funktionella blocken av kärnorna under åren. Exynos M3 representerade en förändring från de första iterationerna eftersom den breddade kärnan avsevärt i flera avseenden, från en 4-bred design till en 6-bred mittkärna. (Apple A11, A12 och A13 har å andra sidan en 7 bred avkodningsbredd, medan Cortex-A76, A77 och A78 har en 4 bred bredd. Cortex-X1 ökar avkodningsbredden till 5 bred.)
Rapporten gör också några avslöjanden som inte var offentliga tidigare angående Exynos M5 och M6. För Exynos M5 gjorde Samsung större förändringar i cachehierarkin för kärnorna och ersatte privata L2-cacher med en ny större delad cache samt avslöjar en förändring i L3-strukturen från en 3-banksdesign till en 2-banksdesign med mindre latens.
Den avbrutna M6-kärnan skulle ha varit ett större hopp när det gäller mikroarkitekturen. SARC hade gjort stora förbättringar som att fördubbla L1-instruktionen och datacache från 64KB till 128KB - AnandTech noterar att detta är ett designval som hittills endast har implementerats av Apples kärnor i A-serien, med början i Apple A12.
L2 fördubblades i sin bandbreddskapacitet upp till 64B/cykel, medan L3 skulle ha sett en ökning från 3MB till 4MB. Exynos M6 skulle ha varit en 8-bred avkodningskärna. Som noterat av AnandTech, skulle detta ha varit den bredaste kommersiella mikroarkitekturen som för närvarande är känd när det gäller avkodning. Men även om kärnan var mycket bredare, såg inte heltalsexekveringsenheterna mycket förändring. En komplex pipeline lade till en andra heltalsuppdelningskapacitet, medan load/store pipelines förblev desamma som M5 med en belastningsenhet, en lagringsenhet och en load/store-enhet. Flytpunkts/SIMD-rörledningarna skulle ha sett en ytterligare fjärde enhet med FMAC-kapacitet. L1 DTLB ökades från 48 sidor till 128 sidor, och huvudTLB fördubblades från 4K sidor till 8K sidor (32MB täckning).
Exynos M6 skulle ha representerat en annan betydande förändring från sina föregångare genom att öka kärnans urfunktionsfönster från första gången sedan M3. Det skulle ha funnits större heltals- och flyttalsregisterfiler, och ROB (Reorder Buffer) skulle ha ökat från 228 till 256. AnandTech noterar att en viktig svaghet hos de anpassade Exynos-kärnorna fortfarande finns på M5 och skulle ha funnits på M6 också. Det skulle vara dess djupare pipeline-steg som skulle resultera i en dyr 16-cyklers missförutsägelse, som var högre än ARMs CPU-kärnor som har 11-cyklers missförutsägelse. SARC-papperet går ännu mer in på grenprediktorns design och visar upp CPU-kärnans Scaled Hashed Perceptron-baserade design. Denna design skulle ha förbättrats kontinuerligt under åren och implementeringar, förbättrat grennoggrannheten och minskat felförutsägelser per kilo-instruktioner (MPKI) kontinuerligt. SARC presenterar en tabell som visar mängden lagringsstrukturer som grenprediktorn tar upp inom front-end. Kärnans förhämtningstekniker beskrevs också i tidningen, som täckte introduktionen av en µOP-cache i M5, samt teamets ansträngningar att härda kärnan mot säkerhetsbrister som t.ex Spöke.
Ansträngningar för att förbättra minnesfördröjningen i de anpassade Exynos-kärnorna beskrivs också i detalj av SARC i tidningen. I Exynos M4 inkluderade SARC-teamet en belastnings-belastningskaskadmekanism som minskade den effektiva L1-cykelfördröjningen från fyra cykler till tre vid efterföljande belastningar. M4-kärnan introducerade också en vägbypass med ett nytt gränssnitt från CPU-kärnorna direkt till minneskontrollerna, vilket undvek trafik genom sammankopplingen. Enligt AnandTech, detta förklarade några av de större latensförbättringarna som publikationen kunde mäta med Exynos 9820. Exynos M5 introducerade en spekulativ cache-sökningsbypass, som utfärdade en begäran till både interconnect och cache-taggarna samtidigt. Detta skulle möjligen spara på latens i händelse av en cachemiss då minnesbegäran pågår. Den genomsnittliga laddningslatensen förbättrades också kontinuerligt under generationerna från 14,9 cykler på M1 till 8,3 cykler på M6.
Även om ovanstående mikroarkitektoniska egenskaper är ganska tekniska, kommer CPU-entusiaster att känna till termen Instructions Per Clock (IPC), vilket betyder per-MHz prestanda i entrådig CPU-prestanda (det är den primära huvudfaktorn som bestämmer entrådig CPU-prestanda, med den andra faktorn är klockhastigheten för kärna). Heltals-IPC och flyttals-IPC är båda determinanter för IPC. SARC-teamet lyckades få i genomsnitt 20 % årliga förbättringar från M1 till M6. Särskilt M3 representerade en stor procentuell förbättring av IPC, även om den sviktes av andra faktorer. Exynos M5 representerade en 15-17% förbättring av IPC, medan IPC-förbättringen för den outgivna Exynos M6 har avslöjats ha ett genomsnitt på 2,71 mot 1,06 för M1, vilket motsvarar en förbättring på 20 % jämfört med M5.
Brian Grayson, tidningens presentatör, svarade på frågor om programmets inställda under frågestunden. Han sa att teamet alltid hade varit på målet och på schemat med prestanda- och effektivitetsförbättringar för varje generation. (Betyder det att målen inte var tillräckligt höga i första hand?). Lagets största svårighet var däremot att vara extremt noga med framtiden designförändringar eftersom teamet inte hade resurserna att börja om från början eller att helt skriva om en blockera. Med facit i hand skulle teamet ha gjort olika val tidigare med några av designinstruktionerna. I skarp kontrast har ARM flera CPU-team som arbetar på olika platser som faktiskt konkurrerar med varandra. Detta gör det möjligt för "ground-up re-designs" som t.ex Cortex-A76. De Cortex-A77 och Cortex-A78 är de direkta efterföljarna till A76.
SARC-teamet hade idéer för förbättringar för kommande kärnor som den hypotetiska Exynos M7. Det var dock förmodligen en mycket hög person på Samsung som bestämde sig för att avbryta det anpassade kärnprogrammet. Som AnandTech noterar, de anpassade kärnorna var inte konkurrenskraftiga när det gäller energieffektivitet, prestanda och areaanvändning (PPA) jämfört med ARMs CPU: er av någon speciell generation. Förra månaden tillkännagav ARM Cortex-X Custom-programmet med det nya Cortex-X1, en nästa generations kärna avsedd för 2021 mobila enheter. Den har en designfilosofi att bryta Cortex-A PPA-enveloppet och satsa på absolut prestanda istället. Exynos M6 skulle därför ha haft en tuff tid att konkurrera med den. Trots det verkar det som att Samsung inte kommer att anpassa Cortex-X1 och bara kommer att gå med Cortex-A78 + Cortex-A55-kombinationen i Exynos 992 - det kan dock komma att antas i nästa års Galaxy S flaggskepp.
SARC-teamet designar fortfarande anpassade sammankopplingar och minneskontroller för Samsung Systems LSI. Det arbetade också på anpassade GPU-arkitekturer, men Samsung Systems LSI tecknat ett avtal med AMD att använda AMD: s nästa generations (Next graphics architecture) RDNA GPU-arkitektur i framtida Exynos GPU: er, med start 2021.
Sammantaget var det anpassade CPU-kärnprojektet en upplysande lektion för leverantörer av mobila chip om vad som kan gå fel. SARC CPU-teamet hade höga ambitioner att konkurrera med Apple, som är den obestridda ledaren inom det mobila CPU-området. Tyvärr lyckades den inte konkurrera med ARM, strunt i Apple. Problemen kunde ha lösts, men år efter år låg SARC: s insatser ett steg eller två efter, och det återspeglades negativt i fraktprodukter som Exynos 9810-varianterna av Samsung Galaxy S9. Nu kommer alla större leverantörer av Android-mobilchip att använda ARMs lager CPU IP från 2021, och denna lista inkluderar Qualcomm, Samsung, MediaTek och HiSilicon. Kampen kommer att tas till Apple med kärnor som Cortex-X1, inte anpassade ARM-kärnor designade från grunden.
Källa: Utvecklingen av Samsung Exynos CPU-arkitektur | Via: AnandTech