RancidWAnnaRIot
EspantaPajaros
- Joined
- Feb 19, 2004
- Messages
- 11,033
ok so i don't completly understand what hyper threading is, the intel website doesn't really give a clear example of it.. anyone here can give me one?
Thanks
Thanks
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Originally posted by intercollector
Basically, at a technical level, this is what it does:
Operating systems in the past, have always had the ability to run multiple processes on one processor at the same time. This is accomplished by switching between processes at a fast enough rate that the user does not notice a difference. Unfortunately, this is a slow process since you have to save the processor state (registers and such), and reload the state on each switch. Hyperthreading allows this switching to all be done in hardware, rather then the software. The hardware then fools the software into believing there is actually 2 processors.
So basically, the concept is exactly the same that has existed in software for years, but is now implemented in hardware making it faster.
Sorry about the terminology. I tried to make it as simple as possible
Originally posted by intercollector
Basically, at a technical level, this is what it does:
Operating systems in the past, have always had the ability to run multiple processes on one processor at the same time. This is accomplished by switching between processes at a fast enough rate that the user does not notice a difference. Unfortunately, this is a slow process since you have to save the processor state (registers and such), and reload the state on each switch. Hyperthreading allows this switching to all be done in hardware, rather then the software. The hardware then fools the software into believing there is actually 2 processors.
Originally posted by FreiDOg
Weeeelll.... not exactly.
HT makes it so you don't have to switch between processes to execute both of them. The IR, PC, register file, they aren't saved, duplicated for the second process is more accurate.
The idea is, there are a whole lot of 'slots' for instructions to be placed in, in various stages of execution, from decode, to fetching the operands, to executing the op code to retirement, in fact P4 has 128 'slots' for instructions (Prescott obviously has more), Alot of them are very specialized, ie certain slots are only for simple arithmatic operations being executed, and normally a single process won't be able to fill all the slots all the time (in fact a majority of the slots often go unfilled), so HT allows the CPU to take instructions from a second process and try and fill those open slots,
ie the FP unit can be working on something from proccess '0' at the same time the ALU is working on something from process '1.' The decoder can be decoding instructions from both processes, and the queues can have instructions from both waiting to be exectued.
Originally posted by RancidWAnnaRIot
Is hyper threading something that can be turned on and off?
Originally posted by RancidWAnnaRIot
is there a reason why you would want to turn it off? i mean how would you know when it's best to have it on or off?
Originally posted by intercollector
That sounds like basically just a description of simple pipelining. CPU's have had multiple units in a single stage for a while now (ie. multiple ALUs and such). Hyperthreading is a concept that occurs on a much higher level.