This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM Cortex ICode, DCode, System buses

Note: This was originally posted on 26th February 2009 at http://forums.arm.com

I'm a bit confused about the bus structure and memory model of ARM Cortex M3. First of all, does Cortex M3 actually have 3 physically separate buses coming out of it?
They say that an instruction fetch in the code memory is over the ICode bus and data fetch is over DCode bus. So if i have some flash memory mapped into code memory region, which is used to store my code and some constant data, then how exactly would i connect the two buses to it? Would i connect two Code buses to the same physical IC?
And if i have a RAM chip mapped to the SRAM memory region used to hold my normal data, would i connect the system bus to it so i can perform normal data fetches over it?
Parents
  • Note: This was originally posted on 26th February 2009 at http://forums.arm.com

    A bus matrix typically has multiple masters and multiple slaves connect to it, and it will arbitrate between them to make sure that everyone can talk without data loss or corruption.

    So basically you plug both the I and D Cortex-M3 master ports in the same bus matrix, and the RAM and Flash slave ports in to the same matrix, and I-side and D-side accesses can access both memory types.

    Some systems may include dedicated bus-matricies and slave memories on each interface for performance reasons, but this is unusual in "generic" designs.
Reply
  • Note: This was originally posted on 26th February 2009 at http://forums.arm.com

    A bus matrix typically has multiple masters and multiple slaves connect to it, and it will arbitrate between them to make sure that everyone can talk without data loss or corruption.

    So basically you plug both the I and D Cortex-M3 master ports in the same bus matrix, and the RAM and Flash slave ports in to the same matrix, and I-side and D-side accesses can access both memory types.

    Some systems may include dedicated bus-matricies and slave memories on each interface for performance reasons, but this is unusual in "generic" designs.
Children
No data