[hatari-devel] Long mail : new cpu cores + 2 questions.
Miro Kropáček
miro.kropacek at gmail.com
Mon Oct 31 21:33:07 CET 2011
> Is it still true if the data is misaligned on a byte ?
>
Of course not.
> Don't the cpu reads the lower part of the 1st word, then the 2nd word,
> then the upper part of the 3rd word ?
>
Yes, it does. What I'm actually not totally sure about is the number of bus
accesses in that case because 030 data cache works with longs, so in case
you place a word on a misaligned (odd) address and execute move.w (a0),d0,
according to 68030 UM it can generate up to 4 (!) bus accesses:
3:
2: <hi-byte>
1: <lo-byte>
0:
lea 1,a0
move.w (a0),d0 ; this ought to generate two bus cycles: 0-1 and 2-3 (the
word lies within the first long word)
but
5:
4: <hi-byte>
3: <lo-byte>
2:
lea 3,a0
move.w (a0),d0 ; this ought to generate 4 bus cycles: 0-1 and 2-3 (first
long word) and 4-5 and 6-7 (second long word)
As I'm not hardware guy I don't know if this is still true, i.e. if the
data cache really fetches long words even on 16-bit bus but it probably
makes sense (the CPU doesn't know anything about 16-bit bus) but on the
other hand, the burst mode is not possible because because of this HW
limitation according to Rodolphe Czuba so I really don't know.
Btw I'm sure you know it, just for the record -- move.b (a0),d0 takes the
same amount of time as (aligned) move.w (a0),d0
--
MiKRO / Mystic Bytes
http://mikro.atari.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.berlios.de/pipermail/hatari-devel/attachments/20111031/a741a922/attachment.html>
More information about the hatari-devel
mailing list