Ei tuo vaikuta terminologiaan.
Suunnittelu kuvataan design specificationiin ja, jos suunnittelu on jo lähtkökohtaisesti virheellinen (mahdollistaa vaarallisen koodin ajamisen) suunnittelussa on virhe.
Sampsa lainasi aiemmin termiä errata, ja errata taas tarkoittaa, että tuote ei toimikaan siten kuin sen suunnittelun mukaan pitäisi toimia. Eli Intel korosti, että kyseessä ei ole toteutusvirhe ja toiminta on Intelin julkaisemien spesifikaatioiden mukaista.
Suomeksi näiden kääntäminen on toki aina vähän sellaista ja tälläistä kun koko ala pyörii englanninkielisin termein.
Määrittele ”vaarallinen koodi”. Kaikki prosessorit suostuvat ajamaan sen annetun koodin, koska se on määritelmällisesti aivan normaalia koodia. Koodi myös tekee täsmälleen sen mitä sen kuuluu tehdä – eikä siis koskaan oikeasti lue sitä arvoa.
Niille jotka eivät ole vielä tietoisia, niin se kikka on siis tehdä aivan normaalin näköinen ”out-of-bounds” tarkastus ehtolausekkeella – mutta tahallaan ihan väärälle muistiosoitteelle. Sitten vaan siellä ei-koskaan ajettavan ehtolausekkeen sisällä saadaan aikaan se, että siitä tutkittavan bitin* tilasta riippuen johonkin toiseen muuttujaan ladattaisiin jompikumpi kahdesta mahdollisesta arvosta (jotka sopivan kaukana toisistaan muistissa). Tämä arvo ei toki koskaan ilmesty siihen muuttujaan, koska koodia ei ”varsinaisesti” ajata (eli prosessori toimii teknisesti aivan oikein).
No, sitten vaan sen ehtolauseen jälkeen mitataan kauanko kestää oikeasti laskea sillä ykkösbitillä valittavalla arvolla jotain pientä. Jos kesto on ”pieni”**, niin bitti oli 1 jos ”suuri”*** niin 0. [Tässä kohtaa pitää myöntää, että en ole ihan 100 % varma ymmärsinkö oikein miten tuo tarkalleen toimii, mutta kuvittelisin niin tehneeni.] Tätä sitten toistetaan kunnes koko haluttu muistiavaruuden osa on ”luettu”.
* Bittimaskilla vaikka ”ja”-operaatio, sopiva ”shift-right” ja sitten vaikka kertolaskulla se valinta kahdesta muistiosoitteesta.
** Spekuloiva suorittaminen oli ehtinyt kuitenkin siirtää sen ohjelman oman datan välimuistiin. Joten lasku ei tarvitse pääsyä keskusmuistiin ja tapahtuu alle kymmenessä kellojaksossa (~10 ns).
*** Spekuloiva suorittaminen oli siirtänyt sen toisen datan välimuistiin, ja koska nämä datat olivat liian kaukana mahtuakseen molemmat samalla sinne, saatiin ”cache miss” joka maksaa sen joku 200 kellojaksoa (~100 ns).