Uitleg over Simultaneous Multithreading techniek

Bij Tech Report is een kort artikel verschenen over SMT, oftewel Simultaneous Multithreading. Dit is een vrij geavanceerd stukje technologie waarvan we bijna zeker meer zullen zien in de toekomst. SMT moet zeker niet verward moet worden met SMP, oftewel te werken met meerdere processors. Bij SMT is het namelijk zo dat de processor met meerdere programma's tegelijkertijd aan het werken is, zonder expliciet te hoeven omschakelen. Op die manier worden de execution units van de chip optimaal benut.

Deze vorm van multithreading is in simulaties veel krachtiger en efficienter gebleken dan andere methodes om het aantal instructies per kloktik op te voeren zoals het gebruik van meerdere processors. Bij gebruik van vier threads haalt een systeem met vier processors bijvoorbeeld zo'n 4.2 instructies per kloktik, terwijl één enkele SMT processor er 5.6 doet. Nadelen van een dergelijk systeem zijn onder andere een verhoogde latency en een complexere fetcher/decoder die meer registers nodig heeft.

Volgens geruchten is de Jackson technologie die Intel voor de server-versie van de Pentium 4 (codename Foster) heeft aangekondigd een vorm van SMT. Als dat waar is zijn de Intel ontwerpers daarmee veel eerder dan gerepecteerde processorbakkers op servergebied zoals Compaq. De sleutel is echter om een goede implementatie ervan te bedenken. Als Intel dat gelukt is zal Foster zonder een spoortje van moeite een dual AMD systeem voorbij crossen:

Current x86 processors seemed totally geared toward instruction-level parallelism, or ILP. In other words, they strive to pack in and execute as many instructions as possible, leaving them ultimately starved for data at some point. x86 processors in SMP form attempt to work around this by using thread-level parallelism, or TLP, which ultimately results in bottlenecking at the bus to keep the processors well fed. SMT is a way to utilize the best of both worlds without the penalties of either of them. It does so without sacrificing performance on single-threaded applications, as well. The concept seems revolutionary, and I must say it has me quite excited. As I dug deeper and deeper though the literature, it became apparent why this technology has not seen widespread use before now. The ultimate bottleneck of SMT will be the ability of the processor to execute the horde of instructions it is collecting.

What does this all mean for the chips code-named Foster/Jackson, assuming Intel engineers can meet the difficulties imposed by SMT head on? There is absolutely no doubt in my mind that it will allow a single processor to crush Athlon SMP scores. In fact, not only could it give Intel an edge architecturally, but SMT would allow Intel to avoid the pitfalls of a shared bus when used in SMP. If Intel slips up, though, and doesn't make the right trade-offs, SMT might ultimately prove to be a very disappointing technology. Compaq will be implementing SMT into their Alpha line of processors very soon, so this technology is not a novelty. It seems SMT will be sticking around for the long haul. I think the biggest question of all is whether the first generation of this technology will truly demonstrate its worth.

Door Wouter Tinus

14-02-2001 • 18:51

21

Bron: Tech Report

Reacties (21)

21
21
19
5
0
0
Wijzig sortering
Bij gebruik van vier threads haalt een systeem met vier processors bijvoorbeeld zo'n 4.2 instructies per kloktik, terwijl één enkele SMT processor er 5.6 doet.
Hmmm vaag....heel vaag...
Dus bij 4 processors 4.2 instructies, dat betekent per processor 1.05 instructies

En dan die nieuwe processor doet 5.6 instructies per kloktik.
Effe rekenen dat is dus voor 1 processor een toename van 5,33 keer zoveel instructies.
Om maar te zwijgen dan van een SMP machine met 4 SMT processoren, heb je een toename van 21,33.

Als moore hiervan hoort draait tie zich om in zijn graf.....

Bij een SMP systeem met 4 processoren hou je er effectief ongeveer 3 over, de rest gaat verloren voor b.v. synchronisatie van die 4 processoren.
Wat is er de laatste tijd al niet gedaan met pipelineing etc. om de performance op te schroeven en dan nu dit ??
Ik geloof er niet in, maar dat is mijn mening.

<edit>
Ik lees het net nog even over en met "Ik geloof er niet in" bedoel ik dus dat ik niet geloof dat de toename zoveel is, in de ontwikkeling op zich geloof ik wel
</edit>
Anoniem: 8504 @Treb15 februari 2001 07:52
Dat je van 4 processoren er maar ruim 3 overhoudt is a looooonngg time ago. Inderdaad moet er op 1 van de x processoren administratie worden bijgehouden.

Administratie is min of meer hetzelfde gebleven (meer min trouwens, algorithmes zijn effectiever geworden), de processoren zijn tig keer zo snel.
Dus nu heb je ipv ruim 3, zo goed als 4 processoren tot je beschikking.
Dat je van 4 processoren er maar ruim 3 overhoudt is a looooonngg time ago. Inderdaad moet er op 1 van de x processoren administratie worden bijgehouden.
Algorithmes zijn wel effectiever geworden, maar de "administratie" kost nog steeds heel veel tijd.
En reken inderdaad maar dat je bij 4 processoren er net iets meer als 3 aan overhoud, maar zeker geen bijna 4. Eerder iets van 3,2 .....

En natuurlijk is het zo dat niet 1 processor de admin bijhoud, dat doen ze allemaal...
Ik denk dat het ook wel een stuk goedkoper is dan een 2 of 4 processorbordje met 2 of 4 bijbehorende processoren,

maar zal ook wel stuk meer kosten dan een gewone mobo met proc
Er wordt gezegd dat dit systeem de P4 sneller kan maken dan een dual AMD, maar dan is het ook interessant om te kijken wat nou precies meer gaat kosten, lijkt me toch een zeer belangrijke factor om mee rekening te houden
Mensen die een server met een foster erin willen, zullen waarschijnlijk puur voor de performance gaan en het geld zal dan niet zo'n hele grote rol spelen. Verder is het natuurlijk heel erg dat Intel msschien iets heeft dat stukker sneller is dan AMD, dat kan toch niet, dus ga maar wel ff Intel goed afzeiken dat ze duur zijn enzo :(
Oftewel multiprocessor op 1 chip. Klinkt leuk, heb je ook niet meer last van cache invalidation etc. Wordt de core wel weer een stuk groter. Programma's moeten dus wel multithreaded geschreven zijn om hier gebruik van te kunnen maken. Maar dit geld ook voor SMP
Nee, juist niet multiprocessor op een chip... gewoon (veel) efficienter met de bronnen van de chip omgaan. Alhoewel 2 SMT cores op 1 chip natuurlijk ook een optie is...

In het artikel zegt men dan ook dat SMT in de loop van de jaren SMP overbodig kan maken.
In het artikel zegt men dan ook dat SMT in de loop van de jaren SMP overbodig kan maken.
Dat denk ik niet. Ik denk dat 't pas echt interessant wordt als je SMT toepast op een SMP systeem.
Inderdaad, hoewel het dan erg complex wordt misschien. Twee, toch al niet simpele structuren met elkaar verbinden klinkt moeilijk (of praat ik nu onzin).

Maar als het werkt.... WOW !!! :)
hubba hubba hubba
Een enkele SMT processor is ook al erg de moeite waard. Een voordeel van SMT is dat je geen complexer moederbord nodig hebt, SMP mobo's zijn nog altijd een stuk duurder dan single CPU mobo's.
Ik geloof niet dat SMP overbodig wordt. Want hoever kun je zoiets scalen? Bij SMP gaat dat een stuk makkelijker. Verder heb je nog steeds het probleem dat de bus naar het geheugen en naar de chipset traag is. Met SMP kun je dit oplossen met een point-to-point verbinding. Zoals bij de Athlon dus iedere CPU heeft zijn eigen bus naar de chipset, dus daar is SMP al beter, verder is er geen verschil met de bus naar het geheugen, terwijl SMT wel geheugen intensiever is!
Dus het lijkt me goed te werken met enkele threads, maar wanneer het er veel worden, of veel verschillende programma's lijkt me dat SMP toch de voordelen heeft zeker met scalability.
Ik zeg alleeen dat het in het artikel staat ;).

Maar ik denk dat je gelijk hebt, voor echt grote dingen heb je altijd SMP nodig, maar ik denk wel dat een (dual core) SMT chip het werk van systemen tot 8-way kan overnemen.
Hoezo cache invalidation? Je zult nog steeds rekening moeten houden met het delen van het geheugen, hoe wil je anders tussen de threads data uitwisselen. Immers threads delen de geheugenruimte
Gimme!..
lijkt me wel leuk.. wordt je proc opeens een heeeeel stuk sneller, en dan krijg je echte multitasking.. ipv die fake multitasking die je op dit moment hebt.
Je moet het ook zoals in het artikel vergelijken met SMP en SMP kent ook ECHTE multitasking...
Dit klinkt inderdaad heel erg mooi !! :)
Ik ben benieuwd hoelang het zal duren voordat bekend wordt dat AMD al bezig is, of dat ze ook gaan beginnen met zo'n zelfde proc.
Kon nog heel leuk gaan worden voor de high-end users :P
En helemaal interessant als je die link naar washington.edu volgt. Daar geven ze (IMHO) toch echt duidelijk aan dat het maximale voordeel gehaald wordt als het OS met de hardware samen gevlochten wordt.

En kijk ook effe waar hun afgestudeerden zitten: Transmeta, IBM en Microsoft.
Multitasking !!! Ik kan mij herinneren dat de Commodore Amiga ook zeer multi tasking was!!
Had die Fatagnus daarop ook geen SMT principe ?
WOW :) dit moet ik hebben voor m'n multi-tasking :)
Bij mij blijft het telkens hangen ook al heb ik veel RAM met dit hoef ik geen dual te kopen, wacht ik lekker op de quatro cpu mainboard :7
dion_b Moderator Harde Waren 15 februari 2001 12:07
Hmm, interessant! Wat vooral leuk is, is dat hoewel dit nu nog experimenteel is, en als eerste op peperdure serverchips geimplementeerd gaat worden, na een tijdje het ook op de personal market zijn weg gaat vinden.
Denk bijv. aan geintegreerde full speed L2 cache- de eerste Intel chips ermee waren de PPro, waar je thuis niets aan had (16 bit performance :() en toentertijds niet te betalen waren, maar met de Mendocino en Coppermine (laat staan AMD chippies :)), nu niet meer weg te denken uit de gewone PC. Go SMT dus!

Op dit item kan niet meer gereageerd worden.