15 computer science collegians looking for a project

NoiseEHC NoiseEHC at freemail.hu
Fri May 2 04:19:20 EDT 2008


> I still don't understand what you mean, but the clock timings that are
> in the data sheet, are the same ones on my documentation.  You would have
> to find somebody more skilled then I to debate if they are correct or not.
>
>   
Okay, here are some exaples (intel notation):
First, the 2 cycles listed in the MMX section is not true. An MMX op 
costs 6 cycles, that is the latency. It is true that there can exist 
some stage in the undocumented FPU pipeline which costs 2 cycles, but 
that defines just the throughput (the MediaGX databook at least listed 
both numbers.)

example1 (this example is not correct since all paddb will run for 6 
cycles it is just hidden from the IU):
paddb mm0,mm1 ; 2
paddb mm2,mm3 ; 2
paddb mm4,mm5 ; 2

example2 (we do not care about movd now):
movd mm0,eax
paddb mm0,mm1 ; 6
paddb mm0,mm2 ; 6
paddb mm0,mm3 ; 6
movd eax,mm0

Now that only means that the Geode is at most half as fast than a 
Pentium MMX but actually it is not that bad. The problem is that this 6 
cycle latency is not documented, neither that the 2 cycles listed in the 
databook are throughput numbers. Now we reach the land of "synchronized 
ops".

example3 (I cannot garantee that the numbers are correct since I cannot 
test it):
movd mm0,eax ; 5
paddb mm0,mm1 ; 6
paddb mm0,mm2 ; 6
paddb mm0,mm3 ; 6
movd eax,mm0 ; 10

Now from where this 5 and 10 come is a mystery but nevertheless was a 
shocking revelation. Effectively it makes MMX almost unusable on the 
Geode. My simple question is: is 3DNOW similarly unusable? Now it is 
possible that I messed up the measurements but if I am right then 
something is clearly wrong with the documentation. If your internal 
documentation lists the same numbers then that internal documentation is 
wrong as well. Even if the numbers are correct (2 in the case of paddb) 
it does not mean that the databook is usable since a programmer has to 
work with the number 6 in this case which is not listed anywhere (not to 
mention the numbers 5 and 10).


Now for the other parts of your message:
Are you suggesting that I should measure everything on the Geode? 
Because I have written my message because I do not want to measure in 
the first place. Not that I have better things to do than checking clock 
cycles (normally the documentation matches reality), but this 
measurement will not even be finished (cannot be done). You know I am 
not sure what should I say.




More information about the Devel mailing list