Olisi kiva tietää millä lailla cache näkyy peleissä mikrotökkimisten määrässä. Muotoilisin kysymyksen niin, että näkyykö se 100. persentiilissä, 99. persentiilissä tai jossain muussa persentiilissä. Keskiarvioissahan ei paljon näy. Näkyykö se silloin, kun Ryzenissä on 2100 MHz muistit, tai silloin, kun on 3200 Cl 14 muistit.
L3-huti saa aikaan tyypillisesti jonkun parinsadan kellojakson stallin (kokonaisviive on hiukan suurempi, mutta toisaalta OoOE piilottaa tästä osan ja toisaalta kokonaisviiveessä )
Tässä on kyse kuitenkin niin pienistä lukemista, että yksittäiset L3-hudit on täysin havaitsemattomia mihinkään tökkimiseen.
Lähinnä kysymykseksi nousee, että mitä, jos on joku tietorakenne, joka kelataan läpi, ja se juuri mahtuu isompaan välimuistiin, mutta ei mahdu pienempään, ja sitä käydään läpi sillä tavalla ikävästi, että sen loppupään käsittely heittää alkupään välimuistista ulos, ja sitten taas käsitellään uudestan alkupäätä, joka heittää loppupään ulos jne.
Voisi vähän laskeskella jotain:
Eli jos on vaikka 8 megan tietorakenne. 8 megaa tarkoittaa 128k välimuistilinjaa. Jos prefetcherit ei pure, eikä OoOE-logiikka etene niin paljoa, että voidaan aloittaa myös seuraavan välimuistin lataus sen kautta tämän kanssa rinnakkain, tästä otetaan suuruusluokkaa 200c * 128k ~ 26 miljoonan kellojakson verran osumaa.
3.6 gigahertsiä 60 FPS:llä tarkoittaa 60 miljoonaa kellojaksoa/frame.
Eli tämän 8 megan tietorakenteen kerran käyminen läpi tekisi worst-casena n. 43% lisää laskenta-aikaa siihen frameen joka sitä käyttää. Usein hidastus olisi kuitenkin pienempi, koska useaa välimuistilinjaa haettaisiin rinnakkain joko prefetcherin toimesta tai sen takia että OoOE on edennyt jo seuraavaan missaavaan accessiin asti. Mutta toisaalta sitä tietorakennetta myös yleensä käytettäisiin useampaan kertaan framessa. Ja se, kuinka paljon hidastuu, riippuu sitten hyvin paljon siitä, kuinka monta kertaa tätä tietorakennetta käytetään.
Tyypillisesti jotain tietorakennetta varmaan käytetään pari-kolme kertaa, mutta prefetcheri ja edellä menevä tulevia välimuistihuteja laukoja OoOE varmaan myös tarkoittaa että muistihakuja tulee rinnakkain ehkä hiukan suuremmalla kertoimella.
Eli tästä voi tosiaan tulla useamman kymmenen prosentin hidastus.
Mutta: näiden accessien määrän ei pitäisi oleellisesti vaihdella eri framejen välillä, koska pelin käyttämien tietorakenteiden koon ei pitäisi juuri muuttua peräkkäisten framejen välillä. Pikemminkin tämän pitäisi sitten näkyä esimerkiksi tavalla, että jossain tietyssä kentässä saadaan tällainen hidastus.
Tai no, onhan mahdollista, että siellä on esim. joku tietty rutiini, joka aktivoituu vaikka vain, kun on ammuksia ilmassa, tai kun ammus osuu, ja se rutiini sisältää tällaisen tietorakenteen, ja sitten hidastus tulisi näillä frameilla