Instead of HT on dualcores how about VST

dobster99

Distinguished
Oct 5, 2004
26
0
18,530
Hyper-threaded single core cpus were suppose to be a big thing from Intel. Now since they are introducing dualcore, here is a good ideal. "Virtual Single Thread" for desktop dualcores. If intel could allow single threaded apps to utilizes both cores, this would make movement to dualcore benefical to all. Multi-threading apps are going to be a big headache for alot of developers. Lets face it, there are going to be many that won't the time or effort to fully utilize dualcore technology. I bet alot of the first generation software for dualcore will be hack jobs.
 

Stimpy

Distinguished
Jan 15, 2001
138
0
18,680
You already have that. It's called a process.
A process splits down into multiple threads.
One reason why HT doesn't work very well with Win2k, is that the OS sees two CPUs, hence tries to allocate a process to each virtual core, unfortunatly the core cannot process two processes at the same time only two threads. A conflict occures, hence a delay.
 

imgod2u

Distinguished
Jul 1, 2002
890
0
18,980
The problem is one of maintaining the program model. This is why we can't have processors with 16 execution units (well we could, but it'd just be a waste) and get 16 IPC. Programs aren't just a collection of instructions that can be executed any time, they have to be executed in a certain order. There are times when this doesn't apply, but such parallelism (i.e. what can be done in parallel instead of one after the other) is very limited in modern code (an average of 2 instructions at a time if you're lucky).
When you throw in multiple cores, it's even more restrictive. Think about it. On a single-processor, if one instruction depends on another to finish, it has to wait until that instruction finishes and writes data back into the register (or forwarding would work as well). On dual-core, if we split those 2 instructions up, one per core, and one depends on the other, we have to wait until the instruction that finished on one core writes to *cache* and the other one reads from cache. That is a *huge* delay in terms of processor wait especially on 30+ pipelined processors like Prescott.
The problem of taking a single Von Neumann model machine (single thread, single memory, single processor, etc.) and automatically splitting it up into semi-autonomous, parallel executing sequences is a huge problem and the main topic of research in parallel computing and grid computing.
That is not to say Intel isn't working on it. ICC 8 already includes an auto-parallelization function that attempts to split single-threaded code into multithreaded applications. How well it does it, however, is another thing. Compilers are only so smart....

"We are Microsoft, resistance is futile." - Bill Gates, 2015.