Re: [hatari-devel] 68030 instruction time calculation formulae

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi

I finally decided to join this list, recent UAE CPU and CPU topics seem to be interesting enough, even if emulated platform is wrong :)

The link below may be useful when looking at emulation timings vs real
world (at least, for cached code - the uncached code case is more
complex to match exactly, albeit perhaps less important to do so for emu
purposes)

Unfortunately that information is not low level enough. It can't be used to re-create how CPU internal sequencer exactly works which is the only way to get real cycle-exact emulation. Cache case should be already quite accurate, minus instructions that need internal operation cycles like MUL and DIV and others.

Also one important missing part is prefetch logic timing, in other words, how does CPU choose when to prefetch instruction words and when to do data read/write operation. This seems to be main problem getting non-cache case accurate enough.

Timing examples in documentation are too short to be able to find any clues. It is Impossible to get good enough accuracy just by looking at documentation.

 From what I could tell on discussions on EAB, some of these
calculations are still being figured out and integrated into UAE (partly
due to its basis in 68020 and having less info on that chip) so I don't

UAE m68k emulator already uses information from both 68020 and 68030 documentation (head/tail/internal cycles). 68030 more or less seems to be 68020 with 1 cycle faster memory access + some small instruction timing changes.

know how far they actually got with that effort using the 030 info.
Perhaps it has already been 100% solved since - I don't know. In any
case this book is probably the primary source to which we should be
referring for accuracy :)

I will have real world test hardware available later, slow A1200 68EC020 accelerator board connected to 16-bit Amiga (Using ACA500) that I can use to check memory access cycle order and timing with my logic analyzer. 16-bit because I don't have enough channels in logic analyzer for 32bit data + other important signals, of course timing won't be same as with 32-bit data bus but I am much more interested in memory access cycle order. (Especially instruction pipeline behavior vs data accesses)

I am still not sure when I am going to do it, it will be extremely boring..




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/