Linked by David Adams on Wed 4th Aug 2010 18:28 UTC, submitted by estherschindler
Hardware, Embedded Systems Anyone contemplating a new computer purchase (for personal use or business) is confronted with new (and confusing) hardware choices. Intel and AMD have done their best to differentiate the x86 architecture as much as possible while retaining compatibility between the two CPUs, but the differences between the two are growing. One key differentiator is hyperthreading; Intel does it, AMD does not. This article explains what that really means, with particular attention to the way different server OSes take advantage (or don't). Plenty of meaty tech stuff.
Thread beginning with comment 435437
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Comment by another_sam
by Tuishimi on Wed 4th Aug 2010 21:32 UTC in reply to "RE: Comment by another_sam"
Tuishimi
Member since:
2005-07-06

But from what I read, and I am probably very wrong, it sounds like the virtualization going on uses two parts of the physical CPU for differing instruction sets, but wouldn't they both need to be utilized in a clock cycle?

:/ This is why I didn't to EE and did CS instead. ;)

Reply Parent Score: 2

RE[3]: Comment by another_sam
by Zifre on Wed 4th Aug 2010 22:54 in reply to "RE[2]: Comment by another_sam"
Zifre Member since:
2009-10-04

But from what I read, and I am probably very wrong, it sounds like the virtualization going on uses two parts of the physical CPU for differing instruction sets, but wouldn't they both need to be utilized in a clock cycle?

I'm not sure I exactly understand what you're saying, but you are probably right in that you are probably very wrong. ;)

Here is how I would explain hyper-threading:

A logical CPU (which could be an entire CPU, a core, or a "hyper-thread", depending on the setup) executes instructions from RAM. Mostly all these instructions can do is access RAM and manipulate CPU registers. So the only state that a logical CPU needs to run is the registers (since RAM is shared). So, a hyper-threading core (which is a physical section of the chip that has one set of the things that execute instructions) has two copies of all the registers, one for each "hyper-thread". When it is executing a "hyper-thread", and it has to wait for something slow (such as access to RAM), it can switch to the other set of registers. This, in effect, causes the other "hyper-thread" to run. It constantly switches back and forth so that the core is rarely waiting for something, and thus, performance is improved without adding an entire new core.

Edited 2010-08-04 22:54 UTC

Reply Parent Score: 3

Tuishimi Member since:
2005-07-06

That's where I was confused. I couldn't understand how it could manage the switch.

Reply Parent Score: 2

RE[3]: Comment by another_sam
by tony on Thu 5th Aug 2010 00:06 in reply to "RE[2]: Comment by another_sam"
tony Member since:
2005-07-06

But from what I read, and I am probably very wrong, it sounds like the virtualization going on uses two parts of the physical CPU for differing instruction sets, but wouldn't they both need to be utilized in a clock cycle?

:/ This is why I didn't to EE and did CS instead. ;)

I don't know about the other virtualization technologies, but with VMware you can have two cores, each with two execution units (hyperthreading). This scenario often looks like 4 CPUs to an OS, even though there's only 2 cores. VMware is smart enough to pick two execution units that are on separate processors when giving CPU time to a virtual machine granted two processors (vCPUs).

Reply Parent Score: 2