Microprocessor History, Part 3
Posted: 2006-05-28
Author: Roy Davis
Manufacturer: N/A
Source:
Geeks.com
9. Multithreading
Remember previously in Tech Tip 55 when we talked about multitasking where the computer appears to running more than one program at a time? What was really happening is that the operating system was time slicing, letting each program run for a short period and switching back and forth quickly so that it appears both are running simultaneously. That’s how the different applications share the CPU.
Taking the concept of multitasking and turning it inside out, what if we work on different parts of the same program at the same time? Taking the concept of multitasking (dividing time between multiple programs) and turing it inside out, what if we work on different parts of the SAME program at the same time? It's like completing a single 8-year medical school degree in one year by having 8 different people working on the same degree at once.
What if we put in another pipeline? Doing things in parallel speeds things up, right? What’s really happening is the instructions are getting interleaved in the pipeline. The advantage is that while one pipeline is waiting for a memory fetch or something that holds up execution, the other pipeline can take advantage of the time.
The problem is sorting out the bits of the program that can be run in parallel. It can be done, and as microprocessors get more complex, they can keep track of various threads of the program and put the results back together at a merge point. While complicated, it can and is done all the time in Pentium-class microprocessors.

10. Hyperthreading
Finally, we are getting to the ultimate in CPU speedup, superthreading, or as Intel calls it, HyperThreading, or HT. Of course, AMD had to match the acronym, so they call it HyperTransport technology. It’s all over their promotional literature. So, how does it work?
If you have a single thread running, much of the CPU execution hardware is sitting idle because it’s prepared for all sorts of parallel processing of those big instructions. While executing a simple instruction, all the spare stuff is wasted. Running traditional multithreading doesn’t help this situation because the two threads are interleaved. At any step in the pipeline, only one thread is really executing.
By allowing two threads to intermix at each step, they can take advantage of slack hardware and get more done by using the facilities of the CPU more efficiently. The trick is to keep track of which thread is which through the pipeline even though the two are mixed.
Final Words
So, there you have it. Your program is sliced and diced and even stirred up as it makes its way through your microprocessor. Techniques like breaking the code up into threads that can be run separately then put back together works well to speed things up. The challenge is for the logic of the microprocessor to keep track of which is which at all times and even to sort out instructions that get out of order as they wind through your CPU.
The latest microprocessors from Intel and AMD have amazingly complex systems to work on your program code and process it faster than ever before. No matter if it’s the latest digital photo or video editing, or the newest 3-D realistic gaming you are doing, a new microprocessor can boost the performance beyond what you are used to. You can be the Big Kahuna on your beach with a single- chip microcomputer on your desk.
Tech Tips Article - http://www.geeks.com/techtips/
« Back |
1 |
2 | 3 | Next »