phantom-inker posted speculatory musings on the DS' core CPU, which is an ARM9E-S. Myself and others have responded with some thoughts. There's enough interesting banter that the topic is worth pointing out. The interesting questions (at least in my mind) are:
- What practical performance penalty (if any) will manifest itself as a result of the increased number of pipeline stages (5 instead of the ARM7's 3)?
- What will the ARM9's special "protected" mode be used for, and does it require an MMU? So far the concensus on the DS was that it doesn't have an MMU, and this makes sense (to me at least) for the reasons I pointed out in the thread, namely that when one thinks of an MMU, virtual memory immediately comes to mind.
Given that there is no need for multiple processes to be running on the DS (as there might be for other ARM9 devices such as phones or PDAs running Symbian or Palm OSes), and given that there is no storage device (since carts are more or less a range of addressable memory as was the case on the GBA), there probably is not a need for an MMU. But maybe the MMU is required for the memory masking that the "protected" mode provides?
I have other questions about the fact that the ARM9 is using the Harvard architecture by offering seperate caches for instructions (8KB) and data (4KB). The GBA used the ARM7 which sported the classic Von Neumann architecture, exposing a single cache for data and instructions.
UPDATE: phantom-ink clarifies the implementation of the DS' protected mode and confirms that the DS' ARM9E-S does not have an MMU.