Med tanke på begränsningarna för bussbaserade multiprocessorer är CC-NUMA den skalbara arkitekturen för delade minnesmaskiner. Den viktigaste egenskapen hos CC-NUMA-arkitekturen är att latensen för att komma åt data på en fjärrnod är betydligt större än latensen för att komma åt lokalt minne. På sådana maskiner kan bra datalokalisering minska minnesståndstiden och är därför en kritisk faktor i applikationens prestanda. I detta dokument studerar vi de olika alternativ som finns tillgängliga för systemdesigners för att på ett transparent sätt minska andelen data missar fjärrservice. Detta arbete utförs inom ramen för Stanford FLASH-multiprocessorn. FLASH är unik genom att varje nod har en enda pool av DRAM som kan användas på olika sätt av den programmerbara minnesregulatorn. Vi använder FLASH:s programmerbarhet för att utforska olika alternativ för cache-sammanhållning och datalokalitet i beräkningsserverbelastningar. För det första överväger vi två protokoll för att tillhandahålla bas cache-sammanhållning, ett med centraliserad kataloginformation (Dynamic Pointer allocation) och ett annat med distribuerad kataloginformation (SCI). Medan flera kommersiella system är baserade på SCI, finner vi att ett centraliserat system har överlägsen prestanda. Därefter tar vi hänsyn till olika hård- och programvarutekniker som använder en del av eller hela det lokala minnet i en nod för att förbättra datalokaliseringen. Slutligen föreslår vi ett hybridsystem som kombinerar hård- och programvaruteknik. Dessa system fungerar på samma basplattform med både användar- och kärnreferenser från arbetsbelastningen. Papperet erbjuder således en realistisk och rättvis jämförelse av metoder för replikering/migration som tidigare inte varit genomförbara. Delade minnesmultiprocessorer används i allt större utsträckning som beräkningsservrar. Dessa system möjliggör effektiv användning av datorresurser genom aggregering och tät koppling av CPU, minne och I/O. När processorer blir snabbare blir den delade bussen en bandbredd flaskhals i bussbaserade multiprocessorer. CC-NUMA (Cache-Coherent med icke-Uniform Memory Access tid) maskiner ta bort denna arkitektoniska begränsning och ge en skalbar delad minnesarkitektur. En typisk design har ett antal noder, varje nod som består av en eller flera processorer och en del av maskinens globala huvudminne. Noderna är anslutna med skalbar sammanlänkningsteknik, och cacheöverensstämmelse upprätthålls med hjälp av ett katalogbaserat system. Det viktigaste attributet för CC-NUMA-arkitekturen är att latensen för att komma åt data på en fjärrnod är betydligt större än latensen för att komma åt lokalt minne. Förhållandet mellan fjärråtkomst och lokal åtkomsttid kan vara så litet som 2 (eller 3) till 1 för SGI Origin eller så högt som 8 till 1 för Sequent STIGG. På sådana maskiner kan bra datalokalisering minska minnesståndstiden och är därför en kritisk faktor i applikationens prestanda. Den dynamiska karaktären hos datorserverbelastningen gör det dock svårt att säkerställa en god datalokalisering. Till exempel fungerar inte system för statisk dataplacering eftersom operativsystemet flyttar processer mellan processorer för att upprätthålla lastbalansen. I detta dokument studerar vi de olika alternativ som finns tillgängliga för systemdesigners för att på ett transparent sätt öka datalokaliseringen för applikationer. Arbetet utförs inom ramen för FLASH-maskinen på Stanford (figur 1 ). FLASH är unik genom att varje nod har en enda pool av DRAM som kan användas på olika sätt av den programmerbara minnesregulatorn. Vi jämför först bas cache-coherence-protokollet i FLASH (centraliserad kataloginformation) med det allmänt använda SCI-protokollet (distribuerad kataloginformation). Därefter studerar vi tre sätt på vilka datalokaliseringen kan ökas. De konfigurationer vi studerar listas nedan: • Bas CC-NUMA: Detta är baskonfigurationen för FLASH. En del av DRAM-minnet innehåller katalogen som används för att upprätthålla samstämmighet mellan processorcachen och minnet. Både den dynamiska pointer allocation (DynPtr) och skalbara sammanhängande gränssnitt (SCI) protokoll ger cachekonsistens, men har inga inbyggda mekanismer för att öka datalokaliseringen. • CC-NUMA+RAC: Jämfört med bas CC-NUMA är ytterligare ett segment av DRAM reserverat för att implementera taggar och datalagring för en fjärråtkomstcache (RAC). RAC är alltså en huvudminnescache och kan göras mycket större än L2 cache av processorer. • KOMA: Vi gör en mer grundläggande förändring av protokollstrukturen och konvertera hela DRAM till en cache (därav namnet Cache-Only Memory Architecture). Genom att behandla allt minne som en cache, gör COMA både migrering av "hem" av data till lokala DRAM samt replikering av data.  Som en förbättring av CC-NUMA kan kärnan utföra migrering och replikering på sidnivå för att öka lokaliseringen. Vi modifierar cache-miss-hanterare för att använda en liten del av DRAM-minnet för att hålla missräkningar per sida-per-node som används av kärnan för att göra migrations- och replikeringsbeslut. Det finns flera unika aspekter i denna studie: (i) Eftersom alla system är implementerade på samma maskinvara, och alla protokoll är kompletta och fungerande implementationer (inklusive fullständiga ändringar av operativsystemet), erbjuder denna studie den första realistiska och rättvisa jämförelsen av dessa protokoll; (ii) De arbetsbelastningar som studerats inkluderar alla operativsystemets effekter och kärnreferenser (t.ex. tidigare COMA-studier betraktas endast användarläge referenser); (iii) Denna stora variation av system, särskilt kärnan-baserad migration/replikering, har aldrig dragits samman och jämförts tidigare. Det finns två sätt att tolka de resultat som presenteras i detta dokument. För det första kan resultaten fungera som en vägledning för hur önskvärt det är att genomföra vart och ett av de enskilda systemen i studien. För det andra gör FLASH-liknande maskiners flexibilitet i genomförandet av olika protokoll det möjligt att välja ett särskilt system för att uppnå bästa prestanda för en given arbetsbelastning. Vår jämförelse av DynPtr- och SCI-protokollen visar att den centraliserade kataloginformationen i DynPtr leder till en enklare design och ger överlägsen prestanda. Av den anledningen utgår resten av våra experiment från DynPtr som grund för CC-NUMA-protokollet. Våra data-locality resultat visar att det enkla RAC systemet kan genomföras med låg ytterligare komplexitet, och är effektivt för att förbättra prestanda (upp till 64% snabbare än bas CC-NUMA) genom caching data i en del av det lokala minnet. Vinsterna är dock ganska känsliga för RAC:s storlek. Framför allt kan prestandan försämras när den regionala rådgivande nämnden är för liten för att fånga den fjärrstyrda arbetsuppsättningen i applikationen, eller när de flesta missar beror på samstämmighet. COMA-protokollet förbättrar också verkställighetstiden (upp till 14 %) när arbetsuppsättningen av ansökan är stor och kapacitet missar dominerar. Det är dock komplicerat att genomföra (både i mängden protokollkod som krävs och antal instruktioner som utförs av protokollprocessorn), och prestandan kan vara betydligt sämre om samstämmighet missar är dominerande. Både RAC och COMA är ganska effektiva när det gäller att öka lokaliteten för både användar- och kärnreferenser. Men RAC är alltid överlägsen COMA, med tanke på våra basparametrar och arbetsbelastningar. Kernelbaserad migration och replikering kräver de minsta förändringarna i basen CC-NUMA-protokollet, och gör ganska bra (upp till 56% snabbare än basen CC-NUMA) när delning är grovkorn och sidor är mestadels läsbara. Vi fann också att de kärnbaserade och RAC-programmen kompletterar varandra. Vi föreslår ett hybridsystem som kallas MIGRAC: kärnbaserad migration/eplikering hanterar beslut om grovkornslokalisering medan RAC-protokollet utnyttjar finkornig lokalitet. Resten av detta dokument är organiserat enligt följande. I avsnitt 2 beskrivs FLASH-maskinens arkitektur. I avsnitt 3 ges en detaljerad beskrivning av de olika protokollen och en kvalitativ analys av deras effektivitet för olika typer av cachemissar. Vi beskriver vår experimentella miljö och arbetsbelastning i Avsnitt 4. I avsnitt 5 presenteras resultaten för vart och ett av våra program. I Avsnitt 6 utforskar vi känsligheten hos de olika systemen för olika parametrar såsom minnestryck och protokollbearbetningshastighet. I avsnitt 7 föreslås och utvärderas hybridsystemet MIGRAC. Slutligen diskuterar vi relaterat arbete och sammanfattar våra stora resultat.
Soundarajan et el., REF utvärderade flexibiliteten hos Stanford FLASH genom att implementera olika fjärrcachestrategier och optimeringar inklusive kärnbaserad sidmigrering/replicering med hjälp av en stor programvara fjärrcache i huvudminnet.
Flexible use of memory for replication/migration in cache-coherent DSM multiprocessors