Goldie, so does it mean a computer can still take advantage of hyper-threading even if software is not written for it? Or will HT only be used to its true potential once developers start incorporating it into programs?
As mentioned above, but keeping it in the language I used... It depends - I shall explain.
Hyperthreading is useful when a thread running on the core has to wait for data to be read from RAM or some other data source to run. In a system where hyperthreading is in use, the processor will realise it's waiting around doing nothing and pull another thread in and start work on it until the data needed for the origional thread becomes available. Now, if a program is NOT written with multithreading in mind, the second thread will probably require the output data from the previous thread in order to finish. Now, the previous thread hasnt finished yet, as it's waiting for data to be made available, so now we're back to square 1. Only now there are two threads sitting half open waiting for the first to finish, and the processor is once more sitting buzzing through nothing waiting....
This MAY not always happen, we could just run a totally unrelated thread - I'm not an expert on how programms are written or how OS's dish out CPU time. But in principle this MAY happen.
Conclusion, you MAY see an increase in performance but you probably won't be able to predict a definate performance increase in software that's not multicore aware. Multicore aware applies to hyperthreaded cores because the hyperthreading in effect makes one cores look like two.
An example here is that when eyetv is exporting on my computer, it uses only 4 real cores. But when handbrake is on the go all 8 cores - the real ones and the hyperthreaded virtual cores also run. So handbrake can make full use of the multithreading....
Again, hope this helps - I am only an Avionics student at uni preaching what we've been taught in Computer Architecture and Real Time Computer Systems... Topped up with a bit of computer work in my own time.