En ik altijd maar denken dat HT anders werkte.de dualcore ondersteunt namelijk HyperThreading en biedt dus naast de twee fysieke cores twee virtuele rekenkernen.
Dan mag je eens goed uitleggen hoe het volgens jouw wel werkt, en hoe we dat even in een zinnetje kunnen samenvatten. Persoonlijk vind ik het een redelijke uitleg, aangezien Windows een dualcore met HT inderdaad 'ziet' als een cpu met vier rekenkernen, waarvan er twee fysiek bestaan en twee niet, ofwel virtuele rekenkernen.Verwijderd schreef op zondag 01 augustus 2010 @ 23:08:
[...]
En ik altijd maar denken dat HT anders werkte.
[ Voor 7% gewijzigd door Marc Rademaker op 01-08-2010 23:52 ]
Het zijn niet twee echte core's en twee virtuele, met HT kan aan één core twee threads verwerken. Het lijkt dan wel wat op elkaar maar is toch echt heel anders.
Dualcore betekent toch echt dat de cpu twee fysieke cores heeft en HT doet daar twee virtuele bovenop. De threads op de virtuele cores zijn ondergeschikt aan die op de fysieke cores.
Het gevolg is wel dat de twee cores aan twee threads kunnen werken, maar wel anders dan een echte dual-core.
Het gevolg is wel dat de twee cores aan twee threads kunnen werken, maar wel anders dan een echte dual-core.
[ Voor 51% gewijzigd door Jaap-Jan op 02-08-2010 00:29 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Er zijn per core 2 virtuele cores, dat is gewoon de manier om aan grafisch weer te geven dat de enkele core 2 threads aan kan. Dus wat mij betreft is de verwoording prima?
Leuk dat hierboven maar in de tekst staat dat de CPU twee echte core's heeft en twee virtuele maar dit is niet waar. De CPU heeft gewoon twee core's en die kunnen met HT ingeschakeld elk twee threaded doen.
Zoals ik dus al zei het lijkt misschien wel wat hetzelfde maar het is toch echt heel anders.
Zoals ik dus al zei het lijkt misschien wel wat hetzelfde maar het is toch echt heel anders.
Dat er 2 threads kunnen draaien op een core met HT ingeschakeld is een gevolg van het feit dat de CPU aangeeft dat er 2 rekenkernen beschikbaar zijn.
Het is niet hetzelfde of anders, het één is het gevolg van het andere.
En die andere rekenkern is wel degelijk virtueel, want in de CPU zelf draait thread #2 op dezelfde core als thread #1, want er is maar 1 fysieke rekenkern.
Het is niet hetzelfde of anders, het één is het gevolg van het andere.
En die andere rekenkern is wel degelijk virtueel, want in de CPU zelf draait thread #2 op dezelfde core als thread #1, want er is maar 1 fysieke rekenkern.
[ Voor 5% gewijzigd door Jaap-Jan op 02-08-2010 02:08 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Er is niet één echte en één virtuele core, wijs dan anders maar eens op een plaatje de echte en de virtuele core aan.
Dankzij de HT technologie van intel kan de cpu met 2 fysieke cores 4 actieve threads tegelijkertijd aan waardoor het besturingssysteem 4 virtuele cores ter beschikking krijgt.
Ik zou iets in de trend van de bovenstaande zin plaatsen. Het is misschien wel ietsje te technisch uitgelegd en wss ook niet super-ideaal maar dan hebben we de bovengaande discussie al ontmijnd
Ik zou iets in de trend van de bovenstaande zin plaatsen. Het is misschien wel ietsje te technisch uitgelegd en wss ook niet super-ideaal maar dan hebben we de bovengaande discussie al ontmijnd
De 'echte' core kan iedereen aanwijzen die chips kan lezen, de virtuele core bestaat uit een setje extra (state en general purpose) registers die SMT mogelijk maken. En er moet hoe dan ook logica aanwezig zijn op de chip om HT mogelijk te maken.
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
True, maar dat extra stukje logica zorgt er niet voor dat dat een 'virtuele' kern is.Jaap-Jan schreef op maandag 02 augustus 2010 @ 10:30:
En er moet hoe dan ook logica aanwezig zijn op de chip om HT mogelijk te maken.
Hierbij een plaatje:

Het is hierbij niet dat Thread 1 naar een fysieke kern gaat en Thread 2 naar de virtuele.
Ik ben het met -The_Mask- eens hierin.
P.s.
Daarnaast is het nogal irritant dat er laptops worden aangeraden die je voor die prijs niet eens kan halen. Bijv. bij Studentenlaptops is de 4810TZ bijv. er allang niet meer. Ook de Packbard Bell kan je niet voor die prijs krijgen.
[ Voor 18% gewijzigd door Bolletje op 02-08-2010 15:27 ]
Om de klokfrequentie op te kunnen drijven deel je het werk in kleinere stapjes op. Zo'n klein stapje is sneller verwerkt, je hebt dus minder tijd tussen 2 kloktikken nodig en de klokfrequentie kan omhoog.
Een heel eenvoudige pipeline heeft fetch, decode, execute en write-back. Als de een instructie bij decode zit, dan is fetch vrij en de volgende instructie kan nu bij fetch zitten. Door het doorschuiven zou je elke kloktik een instructie kunnen uitvoeren.

In de Netburst tijdperk werd de pipeline 20 of zelfs 31 stages lang.
Het nadeel is dat als de eerste instructie C = A + B is en de tweede instructie E = C + D is, dan moet de tweede instructie op het uitkomst van de eerste instructie wachten. Je laat de eerste instructie dus 20 of 31 kloktikken lang door de pipeline rollen, daarna kan de processor verder met de tweede instructie. Nog erger is als je iets uit het geheugen nodig hebt, dat wachten kan gemakkelijk 100+ kloktikken lang duren. Een andere taak op de pipeline zetten koste ook teveel kloktikken zodat het niet de moeite was om tijdens het wachten snel een andere taak uit te voeren. Je bewaart de inhoud van de registers ergens en je laadt de inhoud van de registers van een andere taak in.
Hyper-Threading zorgde ervoor dat er wel een 2de thread klaar staat als de pipeline weeral in stall gaat. Er is weinig extra waferoppervlakte nodig om een 2de setje registers te maken voor het bijhoude van de status van de 2de thread. Het nadeel is dat 2 threads dezelfde cache delen. Als je in een singlethreaded situatie net genoeg cache hebt om niet teveel naar het geheugen te moeten gaan, dan kan je met 2 threads niet genoeg cache voor de beide threads hebben en je moet veel meer het geheugen benaderen.
Als je aanneemt dat er veel stalls zullen komen en je weet dat er genoeg cache is, zet Hyper-Threading aan. Als je weet dat de cache op z'n randje zit, dan kan je Hyper-Threading beter uit laten.
Een dualcore met Hyper-Threading blijft 2 fysieke cores hebben, maar heeft wel 4 setjes registers om de status van 4 threads bij te houden. Besturingssystemen kunnen ook de status van 4 threads bijhouden en doen alsof ze 4 cores hebben. Doen alsof er 4 cores zijn - 2 fysieke cores = 2 virtuele cores?
Een heel eenvoudige pipeline heeft fetch, decode, execute en write-back. Als de een instructie bij decode zit, dan is fetch vrij en de volgende instructie kan nu bij fetch zitten. Door het doorschuiven zou je elke kloktik een instructie kunnen uitvoeren.
In de Netburst tijdperk werd de pipeline 20 of zelfs 31 stages lang.
Het nadeel is dat als de eerste instructie C = A + B is en de tweede instructie E = C + D is, dan moet de tweede instructie op het uitkomst van de eerste instructie wachten. Je laat de eerste instructie dus 20 of 31 kloktikken lang door de pipeline rollen, daarna kan de processor verder met de tweede instructie. Nog erger is als je iets uit het geheugen nodig hebt, dat wachten kan gemakkelijk 100+ kloktikken lang duren. Een andere taak op de pipeline zetten koste ook teveel kloktikken zodat het niet de moeite was om tijdens het wachten snel een andere taak uit te voeren. Je bewaart de inhoud van de registers ergens en je laadt de inhoud van de registers van een andere taak in.
Hyper-Threading zorgde ervoor dat er wel een 2de thread klaar staat als de pipeline weeral in stall gaat. Er is weinig extra waferoppervlakte nodig om een 2de setje registers te maken voor het bijhoude van de status van de 2de thread. Het nadeel is dat 2 threads dezelfde cache delen. Als je in een singlethreaded situatie net genoeg cache hebt om niet teveel naar het geheugen te moeten gaan, dan kan je met 2 threads niet genoeg cache voor de beide threads hebben en je moet veel meer het geheugen benaderen.
Als je aanneemt dat er veel stalls zullen komen en je weet dat er genoeg cache is, zet Hyper-Threading aan. Als je weet dat de cache op z'n randje zit, dan kan je Hyper-Threading beter uit laten.
Een dualcore met Hyper-Threading blijft 2 fysieke cores hebben, maar heeft wel 4 setjes registers om de status van 4 threads bij te houden. Besturingssystemen kunnen ook de status van 4 threads bijhouden en doen alsof ze 4 cores hebben. Doen alsof er 4 cores zijn - 2 fysieke cores = 2 virtuele cores?
Dat lijkt mij duidelijkrapture schreef op zaterdag 07 augustus 2010 @ 00:26:
Een dualcore met Hyper-Threading blijft 2 fysieke cores hebben
Iddmaar heeft wel 4 setjes registers om de status van 4 threads bij te houden.
Nee in mijn ogen worden het vier virtuele core's.Doen alsof er 4 cores zijn - 2 fysieke cores = 2 virtuele cores?
Gulden middenweg: twee fysieke cores en twee extra virtuele cores?
ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device
Pagina: 1