Kemp wrote:
So you're saying make it all 32 bit internally and just don't provide the external address bus with the extra 8 bits? (Sorry if that sounds like me challenging the idea, I'm just asking if that's what you meant, my internal parser came up with a few alternate meanings, lol).
Yes, that's exactly what I meant.
I can see where that could be a good idea, the processor itself would have nice powers of 2 and be all happy, while still saving the board space by dropping 8 of the pins. You've got me thinking of a 24 bit address bus (just hardwire the top 8 to 0v as far as the memory is concerned, they won't be needed anyway if the amount of attached memory stays under 16MB) and a 32 bit data bus. Does that still leave the problems with the address bus being 24 bit?
I don't see any direct problems, but you would get binary convertability between addresses and numbers, which is very nice.
I'm slightly confused as to exactly how I want to handle this now. A 32 bit internal address bus and 24 bit external would waste the logic that deals with the extra 8 bit internally, but you say a 24 bit address bus on both sides would be hard to handle?
I'm saying that implicitly using a 32-bit address everywhere of which you only implement 24 bits is a good idea. You waste one byte per address, you gain aligned offsets, easy pointer math, extendability, scalability and a few minor detail things (such as not having the feeling that you're wasting a few bits everywhere - I hate that feeling).
Edit:
Ok, I'm just not seeing the problem with the addresses being 24 bit everywhere, maybe it's just me being dumb.
Well... there isn't strictly speaking "a problem". It's just something that's odd and therefore unknown. Since you save very little and lose a few big improvement points, most people choose otherwise. If you don't see a big improvement in my points, be my guest to ignore the idea and to just make it all 24 bits.