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