CT60 and related things BBS
|Supervidel + move.b|
Posted by: mikro
just to share an observation in case you're optimizing your code for SuperVidel. I'm working on final touches for the new Quake (the SV2k14 build was hacked literally minutes before competition) and I've noticed that even with the new PMMU settings in SV_XBIOS.PRG (which dramatically speeds byte/word memory access up) it is not always a good idea to use move.b/.w directly to SV RAM area (fast RAM starting with 0xA0xxxxxx).
Simple copy TT RAM -> TT/SV RAM shows:
->TT RAM: 15135.334874 kB/s
->SV RAM: 9256.499790 kB/s (60% of TT RAM->TT RAM speed)
->TT RAM: 21140.658800 kB/s
->SV RAM: 16343.142145 kB/s (77% of TT RAM->TT RAM speed)
->TT RAM: 25500.408949 kB/s
->SV RAM: 26319.699855 kB/s (103% of TT RAM->TT RAM speed)
This means if you've got a byte buffer (typical for c2p effects or quake) and you'd like to do another read-modify-write operation on the top of it, it's wiser to have this buffer in TT-RAM and then move16 to SV RAM.
If your code only writes to the buffer (once per memory location), write directly to SV RAM because the price for another TT RAM->SV RAM copy operation exceeds it.
If your code writes longs, always use SV RAM, it's even faster than TT RAM!
move16 gives same access times regardless of RAM type.
[All messages in this thread]