Mikrolanka (moniydin)

koska mikroprosessorit ovat yhä nopeampia, lähinnä ydinten lisäämisen vuoksi muutaman kuukauden välein, muistin latenssiero laajenee. Muistin latenssi oli vuonna 1980 muutamia syklejä ja se saavuttaa nykyään lähes 1000 sykliä. Jos mikroprosessorissa on tarpeeksi ydintä ja toivottavasti ne eivät lähetä pyyntöjä päämuistiin samaan aikaan, tapahtuu muistin latenssin osittainen aggregoitu piilottaminen. Jotkut ytimet saattavat suorittaa, kun toiset odottavat muistivastetta. Tämä ei ole paras tilanne moniydinprosessoreille. Korkean suorituskyvyn tietojenkäsittelyn asiantuntijat pyrkivät pitämään kaikki ytimet kiireisinä koko ajan. Joten, jos jokainen ydin pidetään kiireisenä koko ajan, koko mikroprosessorin täydellinen hyödyntäminen on mahdollista. Ohjelmistopohjaisten kierteiden luominen ei ratkaise ongelmaa yhdestä ilmeisestä syystä. Konteksti viestiketjujen vaihtaminen päämuistiin on paljon kallis operaatio verrattuna muistin latenssiin. Esimerkiksi Cell Broadband Engine kontekstissa minkä tahansa ytimen kierteen vaihtaminen vie parhaassa tapauksessa 2000 mikro-sekuntia. Jotkin ohjelmistotekniikat, kuten tupla-tai monipuskurointi, voivat ratkaista muistin latenssiongelman. Niitä voidaan kuitenkin käyttää tavallisissa algoritmeissa, joissa ohjelma tietää, missä on seuraava muistista haettava datalohko; tässä tapauksessa se lähettää pyynnön muistiin, kun se käsittelee aiemmin pyydettyä dataa. Tämä tekniikka ei kuitenkaan toimi, jos ohjelma ei tiedä seuraavaa muistista haettavaa datakimpaletta. Toisin sanoen, se ei toimi kombinatorisia algoritmeja, kuten puun ulottuu tai random list ranking. Lisäksi monipuskurointi olettaa, että muistin latenssi on vakio ja se voidaan piilottaa staattisesti. Todellisuus kuitenkin osoittaa, että muistin latenssi muuttuu sovelluksesta toiseen. Se riippuu mikroprosessorin yhteisten resurssien kokonaiskuormituksesta, kuten muistipyyntöjen jaettujen ydinten yhteenliitäntöjen nopeudesta.

Vastaa

Sähköpostiosoitettasi ei julkaista.

More: