Over Jackson Technology zijn weinig gegevens bekend en uit het mysterieuze regeltje onder de naam wordt ook niemand veel wijzer. Er is uiteraard wel speculatie over, zo beweerde men bijvoorbeeld dat Foster uit meerdere processorcores op één chip zou bestaan. Gelukkig is er ook een meer realistische verklaring voor te bedenken, in de vorm van SMT. SMT staat voor Simultaneous Multithreading en is een technologie die ervoor moet zorgen dat de execution units van de processor op alle momenten optimaal gebruikt worden. Om te begrijpen wat SMT precies is zullen we hieronder met een aantal kleine stappen ernaartoe werken. We beginnen met een schematische voorstelling van een normale processor:
![]() |
De kleine vierkantjes stellen execution units voor, de onderdelen van de processor die het rauwe rekenwerk doen. Deze denkbeeldige processor heeft er vier. De tijd in kloktikken loopt van links naar rechts, om een 1GHz chip een seconde te volgen zou het plaatje ongeveer 60 miljoen keer zo groot moeten zijn, maar we beperken ons voor het gemak even tot 17Hz . Als een execution unit op een bepaald moment wordt gebruikt is het vakje gekleurd. De verschillende kleuren stellen programma's voor, met als speciale speler het - met grijs aangegeven - operating system.
De processor is zoals je ziet in staat om meerdere instructies tegelijk uit te voeren, maar je kunt ook zien dat een programma lang niet altijd optimaal gebruik maakt van de mogelijkheden van de processor. Het besturingssysteem heeft in deze situatie de taak om tussen twee threads te wisselen. Een thread kan een programma zijn, maar een programma kan ook uit meerdere threads bestaan. Zoals je ziet wordt er eigenlijk helemaal niet aan multitasking gedaan; de processor kan maar met één programma tegelijk bezig zijn en het besturingssysteem is nodig om een andere illusie te wekken.
![]() |
De bovenstaande tekening ziet er al beter uit, methode die hier wordt gebruikt heet Coarse-Grained Multithreading. Een processor die op deze manier werkt heeft altijd meerdere threads in de hardware ingeladen. Mocht de actieve thread dan bijvoorbeeld gegevens uit het systeemgeheugen nodig hebben - iets wat relatief gezien een eeuwigheid duurt - wordt tijdens het wachten aan een andere thread gewerkt. Er hoeft hiervoor geen operating system meer aan te pas te komen, waardoor het snel en efficiënt gebeurt.
![]() |
Bovenstaande afbeelding heeft iets weg van de vorige, maar toch is deze methode, Fine-Grained Multithreading, iets geavanceerder. Er wordt elke kloktik van thread gewisseld, waardoor de processor een stuk makkelijker te ontwerpen is dan de vorige, waarbij in principe onbekend is wanneer van thread gewisseld moet worden. Er zijn dan ook alleen geruchten over een processor die CGM gebruikt, terwijl dit FGM al in de praktijk is toegepast. Het grote nadeel van FGM komt echter naar voren als je met één enkele thread werkt. Deze zou in dit geval maar een kwart van de processortijd kunnen gebruiken.
![]() |
Hier hebben we de ultieme vorm van thread-level parallellisme te pakken, SMT. Je zou het kunnen omschrijven als een trein; kleine groepjes mensen en eenzame reizigers staan op een trein te wachten die op vaste tijdstippen langskomt. Zodra de trein er is en de deuren open gaan zoekt iedereen een plekje dat nog niet bezet is, tot niemand meer wil instappen of de trein vol is. De beschikbare bronnen van de processor worden op deze manier optimaal gebruikt, hoewel het natuurlijk afhankelijk is van de hoeveelheid threads die een processor tegelijk ingeladen kan hebben, hoeveel instructies deze nodig hebben en de verdeling van die instructies. Ondanks deze beperkingen is het verschil met het eerste plaatje enorm.
SMT heeft geen effect op de performance van programma's die uit één thread bestaan of als de threads van een programma resultaten van elkaar nodig hebben. Omdat dit wel dingen zijn waarmee rekening gehouden moet worden bij het ontwerp van de software zal SMT in het begin niet opvallend aanwezig zijn, maar Intel heeft aangegeven dat er in 2002 zo'n twintig programma's moeten zijn die volledig gebruik maken van Jackson Technology. De huidige software zal waarschijnlijk niet merkbaar beter gaan draaien op Foster, hoewel tijdens zwaar multitasken de snelheid een stuk minder zou moeten afzakken. We weten echter nog niet of Jackson Technology ook door het besturingssysteem moet worden ondersteund.