Jäljitä välimuisti - Trace cache

Image
Jäljitysvälimuistin käyttö

In tietokone arkkitehtuuri , joka on jäljittää välimuisti tai suoritustallenteen välimuisti on erikoistunut käskykätkömuistista joka tallentaa dynaamisen virran ohjeet tunnetaan jäljittää . Se auttaa lisäämään käskyhakuyksikön kaistanleveys ja vähentämällä tehonkulutusta (tapauksessa Intel Pentium 4 ) tallentamalla jälkiä ohjeita, jotka on jo haettu ja dekoodataan. Jälki prosessori on arkkitehtuuri suunniteltu noin jäljittää välimuisti ja prosessoi ohjeet pieninä määrinä rakeisuuden. Muodollista matemaattista teoriajälkeä kuvaavat hivimonoidit .

Tausta

Aikaisin akateeminen julkaisu välimuistista oli "Trace Cache: Low Latency Approach to High Bandwidth Instruction Fetching". Tämän laajalti tunnustetun artikkelin esittivät Eric Rotenberg, Steve Bennett ja Jim Smith vuoden 1996 kansainvälisessä mikroarkkitehtuurin symposiumin (MICRO) konferenssissa. Aikaisempi julkaisu on Yhdysvaltain patentti 5381533, Alex Peleg ja Uri Weiser, Intel, "Dynaamisen vuon ohjeiden välimuisti, joka on järjestetty virtuaalisesta osoiterivistä riippumattomien jäljityssegmenttien ympärille", jatkoa vuonna 1992 jätetylle hakemukselle, joka myöhemmin hylättiin.

Välttämättömyys

Laajemmat superskalaariset prosessorit vaativat useita ohjeita noudettavaksi yhdessä jaksossa paremman suorituskyvyn saavuttamiseksi. Haettavat ohjeet eivät aina ole vierekkäisissä muistipaikoissa ( peruslohkot ) haara- ja hyppyohjeiden takia . Joten prosessorit tarvitsevat ylimääräistä logiikkaa ja laitteistotukea hakeakseen ja tasaamaan tällaiset ohjeet yhtenäisistä peruslohkoista. Jos ennustetaan, että useita haaroja ei ole otettu , prosessorit voivat hakea ohjeita useista vierekkäisistä peruslohkoista yhdessä jaksossa. Jos jonkin haaran ennustetaan kuitenkin otetuksi , prosessorin tulisi noutaa ohjeet valitulta polulta samalla syklillä. Tämä rajoittaa prosessorin hakukykyä.

Image
Yksinkertaisen if-else -silmukan peruslohkot

Harkita nämä neljä peruslohkot ( A , B , C , D ), kuten kuviossa on esitetty, että vastaavat yksinkertainen , jos-else silmukka. Nämä lohkot tallennetaan vierekkäin kuten ABCD muistissa. Jos haara D ei ennustettu ei-otettu, hakemisen laite voi noutaa peruslohkot A , B , C jotka on sijoitettu vierekkäin. Kuitenkin, jos D on ennustettu otetaan , hakemisen yksikkö on nouto A , B , D jotka ovat ei-peräkkäisesti sijoitettu. Siksi näiden lohkojen, jotka eivät ole vierekkäin, sijoittaminen yhteen jaksoon on hyvin vaikeaa. Joten tällaisissa tilanteissa tällainen jäljitysvälimuisti auttaa prosessoria.

Haettu välimuisti tallentaa ohjeet niiden dynaamiseen järjestykseen. Kun nämä ohjeet kohtaavat uudestaan, jäljitysvälimuisti sallii prosessorin käskyn hakemisyksikön hakea siitä useita peruslohkoja tarvitsematta olla huolissaan haaroista suoritusvirrassa. Ohjeet tallennetaan jäljitysvälimuistiin joko niiden purkamisen jälkeen tai eläkkeelle siirtymisen jälkeen. Ohjesekvenssi on kuitenkin spekulatiivinen, jos ne tallennetaan heti dekoodausvaiheen jälkeen.

Jäljitysrakenne

Jälki, jota kutsutaan myös dynaamiseksi käskysekvenssiksi, on merkintä jäljitysvälimuistissa. Sitä voidaan luonnehtia komentojen enimmäismäärällä ja enimmäislohkoilla . Jäljet ​​voivat alkaa millä tahansa dynaamisella käskyllä. Useiden jäljet voivat olla samat lähtökohdat opetusta eli samaa lähtö- ohjelma laskuri (PC) ja ohjeet eri peruslohkoja kohti haara tuloksia. Yllä olevassa kuvassa ABC ja ABD ovat kelvollisia jälkiä. Ne molemmat alkavat samasta tietokoneesta (A-osoitteen osoite) ja niillä on erilaiset peruslohkot D: n ennusteen mukaan.

Jäljet ​​lopetetaan yleensä, kun jokin seuraavista tapahtuu:

  1. Trace täytettiin sallitulla enimmäismäärällä ohjeita
  2. Tracessa on sallitut enimmäisperuslohkot
  3. Palautusohjeet
  4. Epäsuorat oksat
  5. Järjestelmäpuhelut

Jäljityksen hallinta

Yhdellä jäljellä on seuraavat tiedot:

  • PC: n käynnistäminen - PC: n ensimmäinen käsky jäljityksessä
  • Haaralippu - ( enimmäisperuslohkot -1 ) haaraennusteet
  • Haara-naamio - haarojen määrä jäljessä ja päättyykö jälki haaraan vai ei
  • Jälki putoaa läpi - Seuraava tietokone, jos viimeistä ohjetta ei ole otettu haaraa tai ei haaraa
  • Jälkikohde - viimeisen haaran otetun kohteen osoite

Jäljitä välimuistin suunnittelu

Seuraavassa on tekijöitä, jotka on otettava huomioon jäljitysvälimuistia suunniteltaessa.

  • Jäljen valintakäytännöt - enimmäismäärä käskyjä ja enimmäislohkoja jäljessä
  • Assosiatiivisuus - välimuistin tapojen lukumäärä
  • Välimuistin indeksointimenetelmä - ketjutus tai XOR PC-biteillä
  • Polun assosiatiivisuus - jäljet, joissa on sama lähtötietokone, mutta joilla on erilaiset peruslohkot, voidaan yhdistää eri sarjoihin
  • Välimuistin täyttövaihtoehtojen jäljitys -
    1. Dekoodausvaiheen jälkeen (spekulatiivinen)
    2. Eläkkeelle siirtymisen jälkeen

Jäljitysvälimuisti ei ole komentojen noutamisen kriittisellä polulla

Hit / miss logiikka

Jäljityslinjat tallennetaan jäljitysvälimuistiin jäljityksen ensimmäisen käskyn PC: n ja haaraennusteiden perusteella. Tämä mahdollistaa eri jäljityspolkujen tallentamisen, jotka alkavat samasta osoitteesta, joista kukin edustaa eri haaran lopputuloksia. Tämä koodausmenetelmä auttaa tarjoamaan polun assosiatiivisuuden jäljitysvälimuistiin. Muu menetelmä voi sisältää vain käynnistävän PC: n merkitsemisen välimuistissa. Vuonna käskyhakua vaihe putki , nykyinen tietokone sekä joukko sivuliikkeen ennusteita tarkistetaan jäljittää välimuisti osuma . Jos osuma on, jäljitysviiva toimitetaan yksikölle, jonka ei tarvitse mennä tavalliseen välimuistiin tai muistiin näiden ohjeiden saamiseksi. Jäljitysvälimuisti jatkaa noutoyksikön syöttämistä, kunnes jäljitysviiva päättyy tai kunnes putkilinjassa on väärä ennuste . Jos puuttuu, uusi jälki alkaa rakentaa.

Pentium 4: n suoritustallenteen välimuistiin tallennetaan mikro-operaatioiden tuloksena dekoodauksen x86 ohjeet , joka tarjoaa myös toiminnallisuuden mikro-operaatio välimuisti. Tämän jälkeen, kun seuraavan kerran tarvitaan käsky, sitä ei tarvitse dekoodata uudelleen mikro-opiksi.

Haitat

Jäljitysvälimuistin haitat ovat:

  1. Redundantti käskytallennus jäljitysvälimuistin ja käskyvälimuistin välillä ja itse jälkivälimuistissa.
  2. Tehon tehottomuus ja laitteiston monimutkaisuus

Suorituksen jäljitysvälimuisti

NetBurst- suorittimien L1-välimuistiin Intel sisällytti suorituksen jäljitysvälimuistin. Se tallentaa dekoodatut mikrotoiminnot , joten kun suoritetaan uusi käsky, sen sijaan, että hakee ja puraisi käskyn uudelleen, keskusyksikkö käyttää suoraan dekoodattuja mikro-operaatioita jäljitysvälimuistista, mikä säästää huomattavasti aikaa. Lisäksi mikro-opit ovat välimuistissa ennustetulla suorituspolulla, mikä tarkoittaa, että kun CPU hakee käskyt välimuistista, ne ovat jo oikeassa suoritusjärjestyksessä. Myöhemmin Intel esitteli samanlaisen, mutta yksinkertaisemman konseptin Sandy Bridgen kanssa, nimeltään mikro-operaatiovälimuisti (UOP-välimuisti).

Katso myös

Viitteet