Hot Chips är en årlig konferens som gör det möjligt för halvledarföretag att presentera sina senaste och bästa idéer eller kommande produkter i en akademisk miljö, och är främst inriktad på den professionella halvledaringenjören. I år har ett antal föredrag om strömhantering, kommande IBM-processorer, kommande Intel-processorer, kommande NVIDIA-SoC:er och sista föredraget på den sista dagen är från AMD, där Zen diskuteras ännu mer djupgående än föregående vecka. Även om vi inte kunde delta i evenemanget personligen, lyckades vi få lite information i tid och ställa frågor till Mike Clark, AMD Senior Fellow och designingenjör.
Vad vi lärde oss förra veckan: L1/L2/L3-cacher och Micro-Op-bufferten
I AMD:s inledande presentation för allmänna medier fick vi en känsla av mikroarkitekturens layout. Vi täckte materialet, men det innehöll ett antal höjdpunkter.
AMD Zen Microarchitecture: Dubbla schemaläggare, mikrooperationscache och minneshierarki avslöjas
AMD Server CPU:er och moderkortsanalys
Packar upp AMD:s Zen Benchmark: Är Zen faktiskt 2 % snabbare än Broadwell?
Först ut, och det viktigaste, var tillkännagivandet av införandet av en mikrooperationscache. Detta gör det möjligt för instruktioner som ofta används för att vara närmare mikro-op-kön och sparar en resa genom kärnan och cachar för att ladda den önskade informationen. Vanligtvis är mikrooperationscacher fortfarande relativt små, och även om AMD inte ger någon information om storlek och tillgänglighet, vet vi att Intels version kan stödja 1536 uOps med 8-vägsassociativitet; vi förväntar oss att AMD ska vara liknande även om det finns många alternativ i spel.
För det andra är cachestrukturen. Vi fick detaljer för L1-, L2- och L3-cachestorlekarna, tillsammans med associativitet, för att jämföra det med tidigare mikroarkitekturer såväl som Intels erbjudande.
Jämförelse av CPU-cache | |||||
Zen HEDT |
Bulldozer HEDT |
Grävmaskin | Skylake | Broadwell HEDT |
|
L1-I | 64KB/kärna | 64KB/modul | 96KB/modul | 32KB/kärna | 32KB/kärna |
4-vägs | 2-vägs | 3-vägs | 8-vägs | 8-vägs | |
L1-D | 32KB/kärna | 16KB/tråd | 32KB/tråd | 32KB/kärna | 32KB/kärna |
8-vägs | 4-vägs | 8-vägs | 8-vägs | 8-vägs | |
L2 | 512KB/kärna | 1MB/tråd | 512KB/tråd | 256KB/kärna | 256KB/kärna |
8-vägs | 16-vägs | 16-vägs | 4-vägs | 8-vägs | |
L3 | 2MB/kärna | 1MB/tråd | – | >2MB/kärna | 1,5-3MB/kärna |
16-vägs | 64-vägs | – | 16-vägs | 16/20-väg | |
L3 typ | Offer | Offer | – | Skriv tillbaka | Skriv tillbaka |
I det här fallet har AMD gett Zen en 64KB L1-instruktionscache per kärna med 4-vägsassociativitet, med en skevsidig 32KB L1-datacache per kärna med 8-vägsassociativitet. Storleken och tillgängligheten avgör hur ofta en cache-linje missas, och det är vanligtvis en avvägning för stansarea och kraft (större cacher kräver mer stansarea, mer associativitet kostar vanligtvis ström). Instruktionscachen, per cykel, har råd med en hämtning på 32 byte medan datacachen tillåter 2x 16-byte laddningar och ett 16-byte minne per cykel. AMD uppgav att att tillåta två D-cache-laddningar per cykel är mer representativt för de flesta arbetsbelastningar som slutar med fler belastningar än butiker.
L2 är en stor 512 KB, 8-vägs cache per kärna. Detta är dubbelt så stort som Intels 256 KB 4-vägs cache i Skylake eller 256 KB 8-vägs cache i Broadwell. En fördubbling av cachestorleken ger vanligtvis en 1,414 (kvadratrot av 2) bättre chans att cacheträffar, vilket minskar behovet av att gå längre ut för att hitta data, men det går på bekostnad av matrisområdet. Detta kommer att ha en stor inverkan på många prestandamått, och AMD främjar snabbare cache-till-cache-överföringar än tidigare generationer. Både L1- och L2-cachen är återskrivningscache, vilket förbättras jämfört med L1-genomskrivningscachen i Bulldozer.
L3-cachen är en 8MB 16-vägs cache, även om det vid tidpunkten förra veckan inte specificerades över hur många kärnor detta var. Från dagens datarelease kan vi bekräfta rykten om att denna 8 MB cache är uppdelad över en fyrkärnig modul, vilket ger 2 MB L3-cache per kärna eller 16 MB L3-cache för hela 8-kärniga Zen CPU. Dessa två 8 MB cacher är separata, så fungerar som en sista nivå cache per 4-kärnig modul med lämpliga krokar i den andra L3 för att avgöra om data behövs. Som en del av föredraget idag fick vi också veta att L3 är en ren offercache för L1/L2-offer, snarare än en cache för förhämtning/efterfrågan, vilket dämpar förväntningarna lite men den stora L2:an kommer att kompensera för detta. Vi kommer att diskutera det som en del av dagens tillkännagivande.
Mitt i veckans release gav också insikt i de dubbla schemaläggarna, en för INT och en annan för FP, vilket skiljer sig från Intels gemensamma schemaläggare/buffertimplementering. Talet på Hot Chips går in i detalj om hur utskicket och schemaläggarna fungerar
Den nya informationen
Som en del av Hot Chips-presentationen bekräftar AMD sitt engagemang för minst +40 % IPC-förbättring jämfört med Excavator. Detta har specifikt listats som ett genomströmningsmål vid en ekvivalent energi per cykel, vilket resulterar i en ökad effektivitet. Uppenbarligen kommer ett antal fördelar av att flytta 28nm TSMC-processen till GloFos 14nm FinFET-process som används via en Samsung-licens. Både de mindre nod- och FinFET-förbättringarna har dokumenterats väl så vi kommer inte gå igenom dem här, men AMD säger att Zen är mycket mer än detta som en direkt förbättring av omedelbar prestanda, inte bara effektivitet. Medan Zen från början är en högpresterande x86-kärna i grunden, är den designad för att skala hela vägen från bärbara datorer till superdatorer, eller där Cat-kärnorna (som Jaguar och Puma) var hela vägen upp till de gamla Opterons och längre fram. , alla med minst +40 % IPC.
Den första omedelbara bilden från presentationen är CPU Complex (en CCX), som visar Zen-kärndesignen som ett fyra-CPU-kluster med cacher. Detta visar L2/L3-cacheuppdelningen och bekräftar också 2 MB L3 per kärna med 8 MB L3 per CCX. Det står också att L3 mestadels är exklusivt för L2-cachen, som härrör från L3-cachen som en offercache för L2-data. AMD uppger att protokollen som är involverade i L3-cache-designen tillåter varje kärna att komma åt L3 i varandras kärnor med ett genomsnitt (men ett intervall) av latenser.
Under de kommande sidorna går vi igenom bilderna. De detaljerar mer information om tillämpningen av Simultaneous Multithreading (SMT), nya instruktioner, storleken på olika köer och buffertar, baksidan av designen, fronten av designen, hämta, avkoda, exekvera, ladda/lagra och pensionera segment.