How is external memory, internal memory, and cache organized?
- by goldenmean
Consider a system as follows:= A hardware board having say ARM Cortex-A8 and Neon Vector coprocessor, and Embedded Linux OS running on Cortex-A8. On this environment, if there is some application - say, a video decoder is executing - then:
How is it decided that which buffers would be in external memory, which ones would be allocated in internal SRAM, etc.
When one says calloc/malloc on such system/code, the pointer returned is from which memory: internal or external?
Can a user make buffers to be allocated to the memories of his choice (internal/external)?
In ARM architectures, there is another memory called as Tightly coupled memory (TCM). What is that and how can user enable and use it? Can I declare buffers in this memory?
Do I need to see the memory map (if any) of the hardware board to understand about all these different physical memories present in a typical hardware board?
How much of a role does the OS play in distinguishing these different memories?
Sorry for multiple questions, but i think they all are interlinked.