[hatari-devel] Re: Cycle exact 68040/68060 mode in Hatari

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


>>     if (using_ce020 >= 3)
>>         return false;
>>
>> Why is this code there? I have a hard time to understand the reason for
>> these two lines... don't we want to have a do_cycles_ce020_internal()
>> in cycle-excact 68040/060 mode?
>>
>> Thanks for any help,
>>  Thomas
>>
> 
> Hi
> 
> Toni certainly knows the details better than me and can elaborate, but
> IIRC some emails discussions we had, 68040/60 is a completely different
> beast regarding CE mode.
> While 68030 is very close to 68020, 68040/60 have more pipelines and can
> run some instructions in parallel, none of this being really documented
> (CE mode for 68020/30 was certainly not publicly documented either, but
> it took Toni so much time to make it work that I guess 40/60 would
> require a lot of time/ressource)
> 
> As the results would be far from cycle exact, maybe that's why CE mode
> is just disabled for 68040/60 and they often just take 1 cycle per
> instruction to "simulate" a much faster cpu.

Yes, 68040+ in "cycle-exact" only means that external CPU memory
accesses to non-fast memory count which works quite nicely on Amiga
where it is important to make sure CPU's chip ram/custom register
accesses will wait if bus is taken by some chipram DMA channel.
Chipset/CPU timing is the most important. I don't really really care if
other operations are too fast, getting them exactly right is probably
impossible without more internal CPU details. (much much much and so
on... than with 68020/030)

Note that other memory data accesses are wrong too because data cache is
not emulated, it was getting far too complex and it isn't important when
it is only about DMA/CPU access timing to chip ram which is never data
cache enabled anyway.




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