cvs commit: src/sys/i386/i386 pmap.c
peter at wemm.org
Mon Nov 10 20:32:07 PST 2003
Jeff Roberson wrote:
> On Sat, 25 Oct 2003, Peter Wemm wrote:
> Wow, pentium4 sucks. Yes, I agree then, we should revert the change.
I'll do it.
> Intel looks more disappointing every day.
Well, think of their optimization goals... The pentium4 was designed for
two things.. 1) to increase MHz, since thats all dumbass customers and
sales droids understand, and 2) to increase game framerate benchmarks.
Anything that didn't contribute to that goal and consumed transistors
For example.. you dont need a barrel shifter for graphics for values other
than the standard vga plane depths (1,2,4,8,15,16,24) so out that goes.
Graphics processing doesn't need cli/sti, so that gets demoted to
300 clock cycles instead of 8.
invlpg isn't a graphics critical function, so there isn't any need to waste
transisitors and microcode on it..
Massively deep pipelines help get the MHz up, and careful optimization can
stop it affecting frame rates. But it blows chunks if you mispredict a
branch in typical gcc generated code. Or take our libc syscall stubs..
every single one will be mispredicted because the usual case (no errors)
has an opposite direction branch to what intel's static branch prediction
Argh. I'm too cynical. I'd better stop now before I really upset somebody.
Anyway, if you can figure out a way to make invlpg affect graphics
performance in a big way, then you can expect the next microcode update to
do something dramatic about it. :-)
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5
More information about the cvs-all