Mikro-tråd (multi-core)

da mikroprocessorer bliver hurtigere, hovedsageligt på grund af kernerne, der tilføjes hvert par måneder, bliver hukommelsesforsinkelsesgabet bredere. Hukommelsesforsinkelse var få cyklusser i 1980, og den når i dag næsten 1000 cyklusser. Hvis mikroprocessoren har nok kerner, og forhåbentlig sender de ikke anmodninger til hovedhukommelsen på samme tid, vil der være delvis samlet skjul af hukommelsesforsinkelse. Nogle kerner udfører muligvis, mens andre venter på hukommelsesrespons. Dette er ikke den bedste situation for multi-core processorer. Højtydende computereksperter stræber efter at holde alle kerner optaget hele tiden. Så hvis hver kerne holdes optaget hele tiden, er en komplet udnyttelse af hele mikroprocessoren mulig. Oprettelse af programmelbaserede tråde løser ikke problemet af en åbenbar grund. Kontekst skift af tråde til hovedhukommelsen er meget dyr drift sammenlignet med hukommelsesforsinkelse. For eksempel i celle bredbånd Motor kontekst skifte nogen af kernens tråd tager 2000 mikro-sekunder i bedste fald. Nogle programmer teknikker som dobbelt eller multi-buffering kan løse hukommelse latenstid problem. De kan dog bruges i almindelige algoritmer, hvor programmet ved, hvor er den næste datafunk, der skal hentes fra hukommelsen; i dette tilfælde sender den anmodning til hukommelsen, mens den behandler tidligere anmodningsdata. Men denne teknik vil ikke fungere, hvis det programmet ikke kender den næste data luns at hente fra hukommelsen. Med andre ord fungerer det ikke i kombinatoriske algoritmer, såsom træspænding eller tilfældig listeplacering. Derudover antager multi-buffering, at hukommelsesforsinkelse er konstant og kan skjules af statisk. Virkeligheden viser imidlertid, at hukommelsesforsinkelse ændres fra applikation til en anden. Det afhænger af den samlede belastning på mikroprocessorens delte ressourcer, såsom hastigheden af hukommelsesanmodninger delte kerner sammenkoblinger.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

More: