Mikro-tråd (multi-core)

eftersom mikroprocessorer blir snabbare, främst på grund av att kärnorna läggs till med några månaders mellanrum, blir minnesfördröjningsgapet bredare. Minnesfördröjning var få cykler 1980 och det når idag nästan 1000 cykler. Om mikroprocessorn har tillräckligt med kärnor och förhoppningsvis skickar de inte förfrågningar till huvudminnet samtidigt, kommer det att finnas partiell aggregerad döljning av minnesfördröjning. Vissa kärnor kan köras medan andra väntar på minnessvar. Detta är inte den bästa situationen för processorer med flera kärnor. Högpresterande datorexperter strävar efter att hålla alla kärnor upptagna hela tiden. Så om varje kärna hålls upptagen hela tiden är ett fullständigt utnyttjande av hela mikroprocessorn möjligt. Att skapa mjukvarubaserade trådar löser inte problemet av en uppenbar anledning. Sammanhang byta trådar till huvudminnet är mycket dyr operation jämfört med minne latens. Till exempel, i Cell Bredbandsmotor sammanhang byta någon av kärnans tråd tar 2000 mikrosekunder i bästa fall. Vissa programvarutekniker som dubbel-eller multibuffring kan lösa problemet med minnesfördröjning. De kan dock användas i vanliga algoritmer, där programmet vet var är nästa databit att hämta från minnet; i det här fallet skickar det begäran till minnet medan det behandlar tidigare begärda data. Denna teknik fungerar dock inte om programmet inte känner till nästa databit för att hämta från minnet. Med andra ord kommer det inte att fungera i kombinatoriska algoritmer, till exempel trädspann eller slumpmässig listrankning. Dessutom antar multibuffring att minnesfördröjningen är konstant och kan döljas statiskt. Verkligheten visar dock att minnesfördröjningen ändras från applikation till en annan. Det beror på den totala belastningen på mikroprocessorns delade resurser, till exempel hastigheten på minnesförfrågningar delade kärnans sammankopplingar.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: