Mikro-tråd (multi-core)

ettersom mikroprosessorer blir raskere, hovedsakelig på grunn av at kjernene blir lagt til noen få måneder, blir minneforsinkelsesgapet bredere. Minneforsinkelse var få sykluser i 1980, og det når i dag nesten 1000 sykluser. Hvis mikroprosessoren har nok kjerner, og forhåpentligvis sender de ikke forespørsler til hovedminnet samtidig, vil det være delvis samlet skjuling av minneforsinkelse. Noen kjerner kan utføre mens andre venter på minnesrespons. Dette er ikke den beste situasjonen for multi-core prosessorer. Høy ytelse databehandling eksperter streber etter å holde alle kjerner opptatt hele tiden. Så, hvis hver kjerne holdes opptatt hele tiden, er en fullstendig utnyttelse av hele mikroprosessoren mulig. Å lage programvarebaserte tråder vil ikke løse problemet av en åpenbar grunn. Kontekst bytte tråder til hovedminne er mye kostbar operasjon i forhold til minneforsinkelse. For Eksempel, i Celle Bredbåndsmotorkontekst bytter noen av kjernens tråd 2000 mikro sekunder i beste tilfeller. Noen programvareteknikker som dobbel eller multi-buffering kan løse problemet med minneforsinkelse. Imidlertid kan de brukes i vanlige algoritmer, hvor programmet vet hvor er den neste datablokken å hente fra minnet; i dette tilfellet sender den forespørsel til minnet mens den behandler tidligere forespørselsdata. Men denne teknikken vil ikke fungere hvis det programmet ikke vet neste data blings å hente fra minnet. Med andre ord vil det ikke fungere i kombinatoriske algoritmer, for eksempel trespanning eller tilfeldig listerangering. I tillegg antar multi-buffering at minneforsinkelsen er konstant og kan skjules statisk. Virkeligheten viser imidlertid at minneforsinkelsen endres fra applikasjon til en annen. Det avhenger av den totale belastningen på mikroprosessorens delte ressurser, for eksempel hastigheten på minneforespørsler delte kjerneforbindelser.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

More: