![]()
Kirjan pääkohderyhmä on rautasuunnittelijat, kääntäjien suunnittelijat, kernel-kehittäjät ja vastaavat. Siitä on aikaa, kun itse kirjoitin viimeksi assembly-kieltä. Miksi sitten nautin kirjasta niin paljon? Koska prosessori on kaiken ydin; sen ominaisuuksien ja kykyjen ymmärtäminen on sekä tärkeää että kiinnostavaa.
Tiesitkö että Pentium Pro -prosessorin sisäänrakennettu BIST testi kestää 5.5 miljoonaa kellojaksoa? Se ei ole kauaa, kun prosessorin nopeus on 200 MHz tai enemmän, mutta siitä saa jonkinlaisen kuva, miten perusteelliset testit ovat. Tiesitkö että itse asiassa Pentium Pro kääntää IA (Intel Architecture) konekielikäskyt sisäisesti RISC-käskyiksi? Pentium Pro on pohjimmiltaan RISC-prosessori, joka ajaa CISC-käskyjä.
Pentium Prossa on käytetty paljon uusia teknologioita. Prosessorissa on 40 yleiskäyttöistä rekisteriä, ja prosessori osaa käyttää näitä optimoimaan aiemmille versioille kirjoitettua koodia. IA koodi sisältää paljon rekisterikeskeisiä käskyjä. Esimerkiksi:
Jos prosessori suorittaisi orjallisesti ylläolevat komennot sellaisenaan, käyttäen esimerkin rekisterejä, koko koodi jouduttaisiin suorittamaan sarjassa; tällöin Pentium Pron kyky suorittaa mikro-komentoja rinnakkain (micro-ops, eli RISC-komentoja) jäisi käyttämättä. Mutta prosessori ei suostu käyttämään rekisterejä sellaisenaan - Pro käyttää piilorekisterejä siten että MOV-käskyä voidaan suorittaa rinnakkaisesti, jonka jälkeen myöskin rinnakkaisesti suoritetaan kaksi ADD-komentoa. Pro sisältää myös uuden haaranennakoimisalgoritmin, jonka toteutumisaste on n. 95%. Se on toteutettu siten että toinen prosessori seuraa toisen toimintaa ja muodostaa ennakointi- kuvion.
Prosessorissa on myös kiehtovia pikku tehosyöppöjä. Kirjan kirjoittajan mukaan käynnistyessään prosessori kysyy 8 tavua, mutta oikeasti tarvitsee lukea 32 tavua; joten se heittää pois 24 tavua, jonka jälkeen homma lähtee alusta taas seuraavan 8 tavun pyynnöllä (jotka se oli jo saanut mutta nakannut menemään!)
Pentium Pro:n repertuaarissa on huvittava uusi käsky: UD2. Tämä käsky määritellään määrittelemättömänä käskynä(!) Selkeästi se on siis testausta varten; mutta määrittelemättömän määrittely pistää hetkeksi aivot solmuun.
Uusi rekisterituttavuus, TSC (Time Stamp Counter) laskee prosessorin suorittamien kellojaksojen määrän sitten viime resetoinnin. Itse asiassa tämä rekisteri tuli jo Pentiumiin, mutta vasta Pro versiossa Intel dokumentoi sen. Se on 64-bittinen rekisteri, ylivuotaen normaalisti (kun kaikki bitit ovat saavuttaneet 1'n). Ylivuodosta ei anneta keskeytystä, koska 64 bitin numeroavaruus on aika suuri: mieti, että jokaisesta kellojaksosta rekisteriin lisätään yksi. 200 MHz:n nopeudella ajava prosessori ylivuotaisi 32-bittisen rekisterin aika nopeasti, 20 sekunnissa. 48-bittinen rekisteri kestäisi jo noin 3 vuotta. Sen sijaan 64-bittinen prosessori kestää jo tuhansia vuosia ennen rekisterin leveyden loppumista. Tästä saa jonkinlaisen kuvan, millaisia mahdollisuuksia 64 bittiä tarjoaa. Kirjan kirjoittaja toteaa, että Intel lupaa tulevaisuuden kellolaskurirekisterien käyttöajaksi ainakin 10 vuotta, joka vihjaa että prosessorien nopeudet tulevat kasvamaan hurjasti!
Väylänjakamiseen ja ajoitukseen liittyvät osat olivat vähemmän kiinnostavia. Kirjassa on täysin käsitelty 450GX, KX, ja 440FX piirisarjat; jälleen kiinnostuksen kohteena luultavasti järjestelmäkehittäjille ja ajurien kehittäjille.
Kirja kattaa myös MMX rekisterilaajennukset. MMX rekisterithän ovat siis FPU:n rekistereitä. Tämä on voinut jäädä hämärän peittoon helposti. Kirjaa lukiessa tulee paljon pikku ahaa-elämyksiä. Lukukokemukseen tarvitset taustan prosessorien arkkitehtuureista - jos tätä artikkelia lukiessa nousee jatkuvasti kysymyksiä, voi olla että kirja on vaikealukuinen sinulle.
Xeon-prosessori korvaa Pentium Pro:n. Xeonista ei ole toistaiseksi
ollut hyvää kirjallisuutta saatavilla (v. 1999). Tilanne on saattanut
muuttua sittemmin.