Dette går fram av en artikkel publisert i juli-august nummeret av tidsskriftet IEEE micro til standardiseringsorganisasjonens undergruppe IEEE Computer Society. I artikkelen Pentium 4 Performance-Monitoring Features gjør professor Brinkley Sprunt ved Bucknell University rede for problemene med lus og manglende dokumentasjon rundt Pentium 4-prosessoren. Han forteller også hvordan Hyper-Threading, en teknologi i kategorien "simultaneous multithreading" (SMT) eller samtidig kjøring av flere tråder, kan redusere ytelsen til det halve, i stedet for å doble den.
Sprunt forsker i ytelsesmåling, har en doktorgrad i informatikk fra Carnegie Mellon University, og har arbeidet i Intels arkitekturgrupper for prosessorene 80960, Pentium Pro og Pentium 4.
For lekmannen har ikke lusene og den manglende dokumentasjonen for visse detaljer i Pentium 4-prosessoren særlig betydning. Dette er arbeid som pågående rettes hos Intel, og som tar tid rett og slett som følge av prosessorens kompleksitet.
Mer interessant er derimot Sprunts påvisning av hvordan SMT generelt, eksemplifisert ved to ulike standardtester kjørt på Xeon-prosessoren med Hyper-Threading, kan både doble ytelsen og halvere den, avhengig av arbeidsoppgaven. Hyper-Threading vil implementeres i den førstkommende fornyelsen av Pentium 4, som skal kjøres i 3 GHz.
Les også
Hyper-Threading skal få operativsystemet til å betrakte en enkel prosessor som to prosessorer, slik at to tråder skal kunne eksekveres samtidig. Potensielt skal dette doble ytelsen, siden behandlingen av hver tråd går like raskt fram for hvert klokkeslag. Betingelsen er at de nødvendige data kan hentes i prosessorens cache. Skjer ikke det, kan det ta så mange klokkeslag å hente data, at de to trådene ødelegger for hverandre i stedet for å eksekveres samtidig uten forstyrrelser.
I snitt, ifølge Intel, skal Hyper-Threading øke prosessorytelsen med opptil 30 prosent.
Strunt har kjørt to standardtester som viser hver sin ytterlighet. Med Hyper-Threading avslått oppnår testen "fp_add_latency" en ytelse på 0,21 mikrooperasjoner per klokkeslag. Med Hyper-Threading påslått kan prosessoren behandle to av testens tråder samtidig, og den målte ytelsen når 0,41 mikrooperasjoner per klokkeslag, altså det dobbelte.
Den andre standardtesten, "|1_miss" er laget slik at alle minnekall treffer utenom nivå 1 cache. Med Hyper-Threading avslått er ytelsen 1,23 mikrooperasjoner per klokkeslag. Med Hyper-Threading påslått overbelastes prosessorens cache-system slik at hver tråd opplever en vesentlig forsinkelse, og ytelsen ble målt til 0,65 mikrooperasjoner per klokkeslag, altså nesten en halvering.
Strunt konkluderer med at dersom Hyper-Threading og andre SMT-teknikker skal kunne fungere etter hensikten, må de kombineres med et system som kan avgjøre på forhånd når det skal kjøres flere samtidige tråder, og når det lønner seg å kjøre bare én tråd om gangen. En slik løsning er under utvikling, under navnet "symbiotic task scheduling".