InvestorsHub Logo
icon url

sgolds

12/18/03 1:17 PM

#21108 RE: HailMary #21106

HailMary, thanks for that excellent explanation! I guess this means that current generation processors still push all the registers for a thread context shift. Too bad. I don't know how much really could be saved by optimizing this, I recall that a few thousand instructions generally get executed before the thread swap. The gate call was equivalent to about a dozen regular instructions, it took really long on the 486. If there were hidden sets of registers then this would be more on the order of perhaps two regular instructions, until you ran out of hidden register sets. Just offset into the descriptor table and load a new register frame.

I recall processor designs which used register frames in main memory, but that obviously is too slow for current processors. Even if it is put in L1 cache it would unacceptably slow down register accesses. It would have to be in the core itself, so the number of sets would be limited. Looking at the Windows task manager, I see that I currently have 390 threads, so it would take a lot of space in the core to make this efficient on a server (which can have many more threads).
icon url

chipguy

12/18/03 2:02 PM

#21116 RE: HailMary #21106

I would think the 400 hidden registers are used for context shifts between threads

Everybody, please stop using this number, it is utter BS.

Microprocessor Report states the number of GPR rename
regs in Opteron is 36. That gives a total of 52 GPRs (36
rename + 16 architected).