Tror lösningen med ihopkoppling av L3 cache blir "Coherent Fabric" och då inte bara för cache, "Coherent Fabric" har jag upfattat som en form av flervägs höghastighets växelpunkt. Är ju något som dom flesta idag verkar implementera i CPU/APU i allt från x86/x64, ARM, PPC m.m.
Tror nog att en väl utförd design av "Coherent Fabric" har lika stor betydelse som en L3 design då båda påverkar hur bra nyttjandegraden blir för varje kärna/kluster.
En ringbuss är enkel och bra då ett fåtal enheter ska kommunicera, men ju fler enheter ju högre latens. Visst i vissa applikationer så har det ingen stor betydelse.
"Coherent Fabric" är mer som ett flerlagers rutmönster med knutpunkter som kan slås till eller från.
Om jag har fel så rätta mig
Det Intel lyckas så extremt bra med är att sedan Nehelem köra med en ring-buffer för att kommunicera mellan CPU-kärnor, L3-cache och GPU. En ring-buffer är en extremt enkel konstruktion -> få transistorer + Intel har lyckats använda en sådan struktur och ändå har man en load-to-use latens för L3 som matchar de flesta konkurrenters load-to-use latens i L2-cache!
I AMDs fall har man ända sedan K7 envisats med att köra en exklusiv cache, det ser bra på pappret med exklusiv cache då effektiv storlek blir summan eller nära summan av alla cache-nivåer. Problemet är att latensen typiskt blir mycket högre än en inklusive cache då det blir väldigt dyrt att reda ut om en viss adress är cachad på någon CPU-lokal cache vid miss i LLC (last level cache).
Intel har alltid kört med inklusive cache för de nivåer som är delade (L1/L2 är inte strikt inklusive (är "mostly inclusive") sedan Nehalem, men allt som finns i L1/L2 finns alltid i L3). Resultat är då att L3 enkelt kan fungera som en s.k. snoop filter, får man en miss i L3 så vet man att ingen kärna har cachat minnet, vid träff i L3 finns "hints" om vilka kärnor som möjligt kan ha data cachad (kan vara false-positives men inte false-negatives) vilket snabbare upp cache-koherens protokollet.
Tyvärr låter det väldigt mycket som Zen kommer fortsätta med exklusiv cache mellan L2/L3 då L2 verkar delas mellan 4 kärnor och därmed nog är relativt stor. Inklusive cache blir inte speciellt effektiv om det inte är relativt stor skillnad i storlek mellan nivåer (man kan i.o.f.s ha en gigantiskt L3, IBM har upp till 96MB L3 i POWER8 men det är inte billigt).
"Coherent Fabric" är komplicerat, men det är något man måste ta om man vill implementera HSA då HSA 1.0 kräver cache-koherens mellan CPU och GPU, ska bli intressant att se hur effektivt man lyckats göra detta. Idag är GPUer inte alls cache-koherenta, ofta inte ens med varandra än mindre med CPU-delen och man har designat på det sättet då det är enklare och skalar mer effektivt till stort antal GPU-kärnor. I vissa fall kan man som programmerare explicit gör något som garanterar koherens, men det är dyrt (går t.ex. att göra på Intel iGPU via L3/L4-cache).
Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer