Le 13/03/2018 à 04:57, Joe Pfeiffer a écrit :
Gene Heskett <gheskett@shentel.net> writes:Both pae and hyperthreading take time, hyperthreading quite a bit more than pae. With hyperthreading, to switch to the 2nd task, takes a complete processor state stored on the stack, the stack pointer reloaded to point at the image of the 2nd task, then pull the full register dump for task 2 back into the processor.
What you describe is software multi-threading/multi-tasking, not hyperthreading.
This doesn't correlate with my understanding of the process. My understanding, and every block diagram I've seen of a processor capable of hyperthreading, has a separate set of architectural registers for every thread.
I agree.
The processor does need to start refilling the pipeline on a thread switch
I don't think so, because IIUC there is not thread switch. Both threads instructions can be executed in parallel as long as they do not use the same resource.
I will agree that it increases the unpredictability of execution time,
This is the endless trade-off between thoughput and response time.