Intelin prosessoreista löytyi vakavia MDS-haavoittuvuuksia (Fallout, RIDL, ZombieLoad)

Liittynyt
03.01.2018
Viestejä
576
Ei ole.

Sekoitat ilmeisesti write-puskuriin.

Store-puskuri on sitä varten, että (spekulatiivista suoritusta tukevalla tai tiukan muistijärjestyksen vaativat käskykannan toteuttavalla) OoOE-prosessorilla voidaan storet commitoida järjestyksessä ja spekulatiiviset storet tarvittaessa peruuttaa;

Storet odottavat store-puskurissa kunnes kaikki niitä koodissa edeltävät haarautumiset on resolvattu ja niitä edeltävät muistioperaatoit commitoitu.

Tai kunnes joku niitä edeltävä haarautuminen osoittautuu väärin ennustetuksi tai joku edeltävä käsky aiheuttaa poikkeuksen, mikä aiheuttaa sen puskurin tyhjentämisen kirjoittamatta niitä eteenpäin.

Ja se pitää spekulatiivista suoritusta tekevällä tai tiukan muistijärjestyksen vaativan käskykannan toteuttavalla OoOE-prossulla olla vaikka prosessorilla ei olisi ollenkaan välimuistia, välimuistin toiminnan kanssa tällä ei ole mitään tekemistä.
Osa välimuistia se store-puskuri on. Ja store-puskuri pitää olla vaikka prosessori suorittaisi käskyt järjestyksessä, store odottaa puskurissa kun muistiosoitteen fyysinen osoite ratkaistaan, cache-linja luetaan välimuistiin ja hankitaan cache-linjalle eksklusiivinen käyttöoikeus, ellei kaikki em. asiat ole jo valmiina. Se Mesi-protokolla.....

Mistä ihmeen patentista nyt oikein höpiset?
Intel patentoi tuon store-forward rakenteen jossa muisti forwardoidaan ennen sen fyysisen osoitteen selvittämistä, josta patentista sitten oli helppo koodata muutama uusi sivukanavahyökkäys.

Voisitko laittaa linkkiä, niin voin kertoa, mitä siitä olet (jälleen kerran) ymmärtänyt väärin.
Löytyy esimerkiksi siitä Fallout pdf:stä hyvin purettuna.

TAGiin täytyy aina tallettaa aivan kaikki korkeat bitit siitä muistiosoitteesta. Muuten ei ole mitään keinoa tietää minkä muistiosoitteen dataa siellä välimuisitissa on. Mikään "myöhäisempi tarkastus" ei ole mahdollinen, jos ei ole olemassa bittejä mitä tarkastaa.

Veikkaus: Taidat tässä sekoittaa siihen, mitä käytetään way predictioniin. Ei itse datan accessoimiseen välimuistista.
L2:n ollessa inclusiivinen L2:ssa on täydet tagit L1:n joka linjasta. L1:n osoittamiseen ei tarvita täyttä tagia eikä TLB-muunnosta, data haetaan osittaisella tagilla jonka osumatarkkuus on lähes täydellinen ja L2 tarkistaa osuman. AMD on speksannut mikrotaginsa hyvin, mikrotagi voi mennä kumpaankin suuntaan pieleen, Intelin toteutus näyttää että mikrotagin mukaan data haetaan ja se vain invalidoidaan false hitissä. Intelin ratkaisussa taas liian myöhään, AMD:n toteutus on erilainen joko siltä osin että invalidointi saadaan tehtyä aikaisemmin tai sitten vain spekulatiivinenkin koodinajo kunnioittaa käyttöoikeuksia.
 
Liittynyt
22.10.2016
Viestejä
11 032
Osa välimuistia se store-puskuri on.
Jospa katsoisit itse omaa postamaasi kuvaa.


Tehtävä: Etsi kuvasta "Store & Forward Buffer".

Ja store-puskuri pitää olla vaikka prosessori suorittaisi käskyt järjestyksessä, store odottaa puskurissa kun muistiosoitteen fyysinen osoite ratkaistaan, cache-linja luetaan välimuistiin ja hankitaan cache-linjalle eksklusiivinen käyttöoikeus, ellei kaikki em. asiat ole jo valmiina. Se Mesi-protokolla.....
Täsmä on tosiaan yksi käyttötarkoitus store-puskurille myös, mutta:

välimuisti ei pakota siihen, että prosessorissa tarvii olla store-puskuri. Koko prosessorin liukuhihna voisi ihan hyvin stallata tässä tilanteessa, jolloin mitään puskuria ei tarvita. Tämä olisi toki hyvin hidasta.

Se, että A on yksi syy B:n olemassaoloon ei tee B:stä osaa A:ta.

Se, että auton valot tarvii sähköä ei tee auton akusta osaa auton valoja.

L2:n ollessa inclusiivinen L2:ssa on täydet tagit L1:n joka linjasta. L1:n osoittamiseen ei tarvita täyttä tagia eikä TLB-muunnosta, data haetaan osittaisella tagilla jonka osumatarkkuus on lähes täydellinen ja L2 tarkistaa osuman.
:facepalm:

Edelleenkin olet pihalla siitä, miten joukkoassosiatiivinen cache (tai välimuistin kirjanpito ylipäätään) toimii.

Kun siellä (intelin 8-tie-joukoassosiatiivisessa) L1D:ssä voi olla talletettuna kahdeksan sellaisen osoitteen datan, joiden osoitteen alimmat bitit ovat täysin samat. Ja on hyvin yleinen tilanne, että siellä on talletettuna 2-3 sellaisen osoitteen datat, joiden alimmat bitit on täysin volla

Nämä pitää pystyä erottamaan toisistaan. Sinulla ei olisi mitään keinoa tietää, minkä L2-tien tagia pitäisi katsoa, kun siellä L2ssa:kin eri teissä on tällöin kahdeksan sellaisen osoitteen data, jonka alimmat bitit on samat.

Toisekseen; Se, että L1n accessoimiseksi pitäisi aina alkaa lukemaan L2n tageja olisi todella hidasta.

Intel patentoi tuon store-forward rakenteen jossa muisti forwardoidaan ennen sen fyysisen osoitteen selvittämistä, josta patentista sitten oli helppo koodata muutama uusi sivukanavahyökkäys.
Kyllä, patentoi store-forward-rakenteen. Tällä ei ole mitään tekemistä sen itse L1D-välimuistin rakenteen ja kirjanpidon kanssa.

Löytyy esimerkiksi siitä Fallout pdf:stä hyvin purettuna.
Sieltä löytyy viittaus viiteen eri patenttiin. Et sitten viitsinyt kertoa, mistä niistä patenteista puhut.

Patentit, mitkä tuossa fallout-paperissa mainitaan:

US5717882A - Method and apparatus for dispatching and executing a load operation to memory - Google Patents

Tämä on vuodelta 1996, 32-bittisten prosessoreiden aikaa.

Täällä puhutaan tageista nimenomaan seuraavaa.

intel patent sanoi:
Data tag array 601 stores the physical address tags of the data currently being cached in data array 602 and tag matches the accessing physical addresses against the stored physical address tags.
ja

intel patent sanoi:
Once in the memory subsystem, the linear address for the load can be either bypassed directly from the AGU or can come from the MOB load buffer. The upper 20 bits of the linear address are translated by the DTLB into a physical address. The data cache memory uses these physical address bits along with the lower 12 bits of the untranslated address to do a tag array look-up and data array read (if needed).
12 alinta bittiä on osoite sivun sisällä, seuraavat 20 sivun osoite.

US6378062B1 - Method and apparatus for performing a store operation - Google Patents

Tässäkin sanotaan:

intel patent sanoi:
Data tag array 601 stores the physical address tags of the data currently being cached data array 602 and tag matches the accessing physical addresses against the stored physical address tags.

US7603527B2 - Resolving false dependencies of speculative load instructions - Google Patents

Tässä puhutaan datariippuvuuksien selvittämisestä, ei osoitteen selvittämisestä.


US5680565A - Method and apparatus for performing page table walks in a microprocessor capable of processing speculative instructions - Google Patents

Tämä on muinainen patentti, joka ei puhu yhtään mitään L1D-välimuistin tageista.



Seuraava on ilmeisesti patentti, mistä puhut:

US20140189250A1 - Store Forwarding for Data Caches - Google Patents

Tämä patentti ei puhu yhtään mitään siitä, miten L1Dn tagit on säilötty.

Siellä puhutaan vain, että SAB:tä indeksoidaan virtuaaliosoitteilla. Mutta SAB on eri asia kuin L1D-välimuisti. SAB on sen store-puskurin osoitepuoli (datapuoli on nimenltään SDB).



Että niin, mikään noista fallout-paperin viittaamasta patentista ei puhu yhtään mitään mistään L1D:n tagaamisesta pelkästään osoitteen alimpien bittien mukaan.

Jospa nyt oikeasti opettelisit, mitä VIPT (virtuaally indexed physically tagged) tarkoittaa. Olen sitä sinulle jo moneen kertaan täällä aiemmin yrittänyt selittää, mutta koskaan ei ole uponnut kaaliin.

Sekoitat sen, että pelkkiä alimpia bittejä käytetään cachen indeksointiin siihen, että ne riittäisivät osuman tarkastamiseen ja datan hakemiseen välimuistista.

Se TLB-lookup tehdään rinnakkain sen tag-accessin kanssa ja molemmat valmistuu samaan aikaan jolloin niitä molempia voidaan kätevästi verrata keskenään.
 
Viimeksi muokattu:
Liittynyt
14.12.2016
Viestejä
252
Aahh. hkultala vs Sami Riitaoja väittely käynnissä. Nyt popparit....ai jäivät kauppaan.:-( Huono homma.

Jos nyt katsotaan asian positiivisia puolia, niin erittäin hieno homma että tällaisia väittelyitä käydään. Suuri osa jutuista menee yli hilseen mutta ehkä näistä oppii jotain uutta suorittimista - aka prosesoreista.
 
Liittynyt
03.01.2018
Viestejä
576
Edelleenkin olet pihalla siitä, miten joukkoassosiatiivinen cache (tai välimuistin kirjanpito ylipäätään) toimii.

Kun siellä (intelin 8-tie-joukoassosiatiivisessa) L1D:ssä voi olla talletettuna kahdeksan sellaisen osoitteen datan, joiden osoitteen alimmat bitit ovat täysin samat. Ja on hyvin yleinen tilanne, että siellä on talletettuna 2-3 sellaisen osoitteen datat, joiden alimmat bitit on täysin volla

Nämä pitää pystyä erottamaan toisistaan. Sinulla ei olisi mitään keinoa tietää, minkä L2-tien tagia pitäisi katsoa, kun siellä L2ssa:kin eri teissä on tällöin kahdeksan sellaisen osoitteen data, jonka alimmat bitit on samat.

Toisekseen; Se, että L1n accessoimiseksi pitäisi aina alkaa lukemaan L2n tageja olisi todella hidasta.

8-way store ja load bufferitkin ovat, kahdeksan mahdollista vaihtoehtoa sielläkin on tarjolla. Intel tuon patentin mukaan tekee 8-bitin VA-PA muunnoksen joka tässä tapauksessa tarkoittaa cachelinjojen fyysistä yksilöintiä, AMD käyttää hashia VA biteistä, bittimäärä lienee samaa luokkaa. Ihan vaan matemaattisia malleja, 32 kilotavua jaettuna megan avaruuteen pitää valheelliset osumat harvassa. Ja Fallout näyttää että sataprosenttinen mikrotagin osumatarkkuus ei ole tarpeellinen, valheelliset osumat vain invalidoidaan myöhemmin.

Ja kyse on siitä että L1:n accessoimiseksi ei tarvitse haravoida kuin nuo mikrotagit, koko tagin tarkastus voidaan jakaa useammille kellojaksoille eikä tarvita kuin yksi vertailu - energiaa säästyy.

Ja Zenin toiminta on speksattu että L2 paikkaa L1:n mikrotagit, Intelillä TLB hoitanee tuon kun L2 ei ole inklusiivinen.

Ja näitähän prossuvalmistajat eivät dokumentoi, voi vain spekuloida. Intelin prossuissa on 8-bitin utag store bufferiin, haarautumisenennustus myös toimii parinkymmenen bitin avaruudessa mutta L1 accessit veivattaisiin kuitenkin läpi täydellä osoitemuunnoksella ja täyspitkillä tageilla - AMD:llä taidettiin toimia näin ennen Zeniä.....
 

Hessu

Tukijäsen
Liittynyt
29.10.2016
Viestejä
4 420
Aahh. hkultala vs Sami Riitaoja väittely käynnissä. Nyt popparit....ai jäivät kauppaan.:-( Huono homma.

Jos nyt katsotaan asian positiivisia puolia, niin erittäin hieno homma että tällaisia väittelyitä käydään. Suuri osa jutuista menee yli hilseen mutta ehkä näistä oppii jotain uutta suorittimista - aka prosesoreista.
Täytyy sanoa, että näistä oppii sivusta seuraavana itsekin paljon. :tup:
 
Toggle Sidebar

Statistiikka

Viestiketjut
237 520
Viestejä
4 165 050
Jäsenet
70 419
Uusin jäsen
KukkoPärssinen

Hinta.fi

Ylös Bottom