Linked by fran on Tue 24th Aug 2010 22:08 UTC
AMD "You can't say that AMD is ever boring. The company says its next-generation Bulldozer CPU core will take a unique approach to computing that goes beyond Hyper-Threading, which some believe could offer phenomenal performance."
Thread beginning with comment 438150
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Perspective
by uray on Wed 25th Aug 2010 14:44 UTC in reply to "RE: Perspective"
uray
Member since:
2009-08-19

...Each core is still a single core, but with two sets of registers, one for each virtual core..

hyperthreading is not double the register, its doubling the path or way to the core

Edited 2010-08-25 14:45 UTC

Reply Parent Score: 1

RE[3]: Perspective
by Stratoukos on Wed 25th Aug 2010 15:27 in reply to "RE[2]: Perspective"
Stratoukos Member since:
2009-02-11

[citation needed]

What would be the benefit of Hyperthreading if when the first thread stopped executing to fetch stuff from the cache/RAM, the second thread would also need to fetch stuff? In order for HT to be effective, the second thread must be ready to execute when the first one blocks.

If you also consider that HT spends half its time processing the first thread and half its time processing the second, not having a separate set of registers for each thread would be very inefficient.

Reply Parent Score: 2

RE[4]: Perspective
by phoenix on Fri 27th Aug 2010 21:49 in reply to "RE[3]: Perspective"
phoenix Member since:
2005-07-11

Which is why an OS scheduler needs to be hyperthreading-aware in order to make the most of the (secondary) logical core.

For example, Windows XP's scheduler has no concept of hyperthreading. It sees the two logical cores are 2 complete CPUs, and will try to use them as such, believing them to have 2 sets of registers, 2 sets of L1, 2 sets of integer units, 2 sets of FPU, etc. Which can actually slow things down.

Intel's hyperthreading is really nothing more than a method to allow instructions from a second thread to be processed while the CPU waits for data to be fetched/written to RAM for the first thread. There's really only 1 thread active at a time.

AMD's method allows it to run 2 full threads at the same time, each with their own integer units and instruction caches. Then there's the shared FPU, which means (in theory) one can schedule 3 full threads on the CPU.

There's a great graphic on one of the articles on Bulldozer that show this. There's a red arrow showing thread 1 and a grey arrow showing thread 2 both going through the CPU at the same time; and the Intel version that's really 1 arrow striped red/grey showing how HT works.

Reply Parent Score: 2