|
De essentie van hyper-threading is dat één fysieke processor zich voordoet als twee virtuele (of logische) processors. Het besturingssysteem van een pc die hyperthreading gebruikt, weet niet beter dan dat er twee processors in de machine zitten. Het doel is hetzelfde als bij een echt multiprocessorsysteem: het behalen van meer rekenkracht door zoveel mogelijk taken gelijktijdig uit te voeren.
Het klinkt mooi: méér rekenkracht, bétere prestaties. Maar wat moet je je er bij voorstellen? Dat Word of Excel sneller werkt? Nee, bij dat soort programma’s wordt al jaren geen noemenswaardige snelheidswinst meer gehaald. Maar het renderen van een stuk bewerkte video én het gelijktijdig converteren van een serie mp3’s naar een andere bitrate, terwijl u lekker foto’s bewerkt in Photoshop, bij dat soort bewerkingen merkt u het verschil. Om goed te begrijpen wat hyperthreading precies is, is het handig om wat te weten van de verschillende processorontwikkelingen. De technologie hyper-threading ligt namelijk in het verlengde van een hele reeks andere technieken en werkwijzen zoals multitasking, multithreading en multiprocessing.
Er zijn grofweg twee manieren om de prestaties van processors te verbeteren: het versnellen van de bewerkingen (bijvoorbeeld door het opvoeren van de klokfrequentie) of het verveelvoudigen van het aantal bewerkingen dat gelijktijdig per tijdeenheid wordt uitgevoerd. Je kan het enigszins vergelijken met oplossingen voor het fileprobleem: het verhogen van de maximumsnelheid of het verbreden van de snelweg. Het is overigens geen kwestie van of-of, maar van en-en. Al zijn chipsnelheden van 10 GHz over een paar jaar zeker mogelijk, chipfabrikanten kunnen de klokfrequentie niet eindeloos verhogen. Ze lopen tegen natuurkundige grenzen aan. Vandaar dat hard- en softwareontwikkelaars al jaren andere technieken bedenken om meer instructies per kloktik te kunnen verwerken. Oplossingen als superpipelining, branch prediction, superscalar- en outof- order-uitvoering en het vergroten van cachegeheugens hebben processors niet alleen snel gemaakt, maar ook in toenemende mate complex. Volgens Intel stijgt de hoeveelheid transistors (halfgeleiders) in een chip te snel ten opzichte van de toename in prestatie. En meer transistors betekent een hogere kostprijs per chip en een hoger stroomverbruik. Vooral op het laatste gebied, stroomconsumptie en warmteafgifte, loopt men nu al tegen de grenzen aan. Met zoveel hittebronnen in een pc – processor, chipset, geheugen, grafische kaart en schijfstations – is het steeds moeilijker om hem goed te koelen. Een complicerende factor is dat de consument genoeg heeft van steeds luidruchtiger wordende computers. Pc’s moeten dus niet alleen koeler, maar ook stiller worden! Hyper-threading is een oplossing waarbij de prestatie toeneemt, terwijl de hoeveelheid transistors en daarmee de hoeveelheid verbruikte stroom niet noemenswaardig stijgt. Bij serverplatforms was al eerder duidelijk dat de vele threads waaruit sommige applicaties bestaan baat zouden hebben bij een parallelle uitvoering. Hyper-threading werd daarom medio 2002 het eerst toegepast in de zwaardere Xeon-chips voor werkstations en servers. Langzaamaan komen er ook meer applicaties voor de desktop die meerdere threads bevatten. En er is nog heel veel software die nog niet multithreaded is, maar daar wel baat bij zou hebben. Het is dus geen toeval dat Intel eind 2002 hyper-threading in de Pentium 4 stopte. Nog even een stap terug naar die threads. Een goed begrip ervan is noodzakelijk om het principe van hyper-threading te doorgronden. Er zijn meerdere namen om softwareonderdelen aan te duiden. Je hebt hele programma’s, applicaties of toepassingen. Veel van die software bestaat weer uit kleinere delen, subprogramma’s, en als een applicatie echt goed is geprogrammeerd, zijn er meerdere threads. Ook besturingssystemen zijn opgebouwd uit kleine onderdelen, waaronder allerlei hulpprogramma’s en taken die in de achtergrond draaien. Windows XP en 2000 bestaan uit allemaal threads. De hoeveelheid ervan is in die Windows-versies veel groter dan het aantal processen. U kunt dit bekijken door Taakbeheer te starten (Ctrl+Alt+Del) en naar het tabblad Prestaties te gaan. Daar ziet u het aantal processen en threads. De grafieken 1 tot en met 3 op pagina 4 maken op schematische wijze duidelijk waarom het simultaan afhandelen van meerdere threads een prestatieverbetering oplevert. Om baat te hebben van een multithreaded applicatie moet het besturingssysteem er geschikt voor zijn. Dit is het geval bij Windows-versies vanaf Windows 2000. De meervoudige threads (vaak honderden) kunnen wel op een enkelvoudige processor worden uitgevoerd, maar dan is het een beetje nep omdat het besturingssysteem om en om een stukje processortijd aan een individuele thread uitdeelt. Met twee of meer processors werkt het een stuk sneller, omdat het besturingssysteem threads aan beide processors toekent. Voor desktopgebruik is multiprocessing eigenlijk niet rendabel en te kostbaar. Hyper-threading is een beetje een tussenoplossing, met één fysieke processor die zich voordoet als twee. Figuur 1 laat zien hoe dat werkt.
 Voordat er sprake is van een echt hyper-threading-systeem zijn er nog wat eisen: - Een processor met HT-technologie - Een chipset (moederbord) met HT-ondersteuning - In het bios van het moederbord moet HT zijn geactiveerd; - Een besturingssysteem dat is geoptimaliseerd voor HT. Hierboven staan de minimale voorwaarden om gebruik te kunnen maken van de hyper-threading-technologie. Om het systeem maximaal te laten presteren moet u ervoor zorgen dat alle componenten van de pc optimaal op elkaar zijn afgestemd. Neem bijvoorbeeld een moederbord met de krachtigste Intel-chipset van dit moment, de 875P. Daarop kan de systeembus op 800 of 533 MHz draaien en het geheugen op 400, 333 266 MHz. Maar als er een 266 MHz geheugenmodule in zit, wordt de maximumsnelheid van de systeembus gereduceerd tot 533 MHz. 800 om 266 is dus onmogelijk. Alleen de eerste Pentium 4 met HT (de 3,06 GHz) heeft een 533 MHz bus, alle andere draaien op 800 MHz. Geheugenmodules van 400 MHz of sneller zijn daarom de beste keuze. En omdat het een dubbelkanaals (dual channel) geheugenbus betreft gaat de voorkeur uit naar een set van twee op elkaar afgestemde ddr-modules. Deze setjes zijn door de fabrikant speciaal getest in een dubbelkanaalsopstelling. Naast ondersteuning voor snelle processors en geheugens hebben de nieuwste moederborden ook snelle verbindingen voor interne en externe schijfstations en netwerken: serial ata, raid, gigabit-lan en usb2. (Meer hierover leest u op pagina 10.) Het effect van hyper-threading is pas zichtbaar bij gebruik van zeer rekenintensieve software. Bijvoorbeeld bij audio- of videobewerking, heel zware computerspellen of als u zeer intensief aan multitasking doet. De meeste winst boekt u als u programma’s gebruikt die speciaal voor hyper-threading zijn geoptimaliseerd. Op de site van Intel vindt u een lijst met geoptimaliseerde software (www.intel.com/home/do_more/software). Deze lijst is nog niet heel uitgebreid. Net als bij de introductie van de multimedia-instructiesets mmx en sse(2) moeten we wachten totdat ontwikkelaars meer programma’s aan Intel’s HT-richtlijnen aanpassen. Conclusie: Het is jammer dat de hyper-threading- technologie ook nadelen heeft. Sommige software laat geen prestatieverschil zien en soms is er zelfs sprake van prestatieverlies. Zo schijnt een office suite als Office 97 langzamer te werken op een HT-processor. Volgens Intel gaat het voornamelijk om oudere programma’s of om slecht geprogrammeerde toepassingen. Gelukkig kan je als uiterste redmiddel in het bios de hyper-threadingfunctionaliteit uitschakelen. Intel verwacht dat op termijn de meeste toepassingen wel goed geoptimaliseerd zullen zijn. (Bron: PCM) Microsoft heeft ondertussen ook al gemeld dat ze zich volledig op dual core gaan storten, AMD wil nog even verder gaan met Hyperthreading. |