Re: A89: Re: Various 68K/TI89 things
[Prev][Next][Index][Thread]
Re: A89: Re: Various 68K/TI89 things
lexlugger writes:
> The real reason is that the MC68000 processor only has 23 address lines in
> order to save money. When it accesses memory it always accessed a word at a
> time, even if you're only accessing bytes. Memory is treated as an array of
> words by the hardware.
Well, almost.
The reason they have no A0 is *not* saving a pin, because having
separate byte selects (UDS and LDS) needs exactly as many pins
as an A0 and BYTE pin pair. It was a decision made in order
to help the HW designers, not chip designers. Regardless of
which method you use, the memory is organised as words.
When you access a byte, only a byte will be accessed. When you write a
byte, the CPU will not write a word to memory, it will write a single
byte. Would be messy otherwise ...
What causes the business with the even addresses is indeed the word
organisation of the memory. The 68000 has a simple bus engine which
can't do split transactions.
If you want to access a word on an odd address, the CPU should fetch
the low order byte of the first word, move it to the higher order byte
in an internal buffer, fetch the high order byte of the next word,
move it down to the low order byte, concatenate with the temporary and
present to the internal circuitry. They saved all this associated
logic. There are chips which allow you misaligned access, e.g. the 68020
or all Intel chips, however they all warn you in the manual that if
you do that, you will pay *severe* performance penalties.
Regards,
Zoltan
References: