Shop OBEX P1 Docs P2 Docs Learn Events
Memory Models Question. — Parallax Forums

Memory Models Question.

BlackSoldierBBlackSoldierB Posts: 45
edited 2014-04-25 20:23 in Propeller 1
I was researching the different memory models. The COG, LMM and CMM models are pretty clear to me.

To me it is not clear how XMM relates to XMMC.
Is XMMC a variant of XMM?

In the FAQ it says that:
Program instructions are stored in external [to the Propeller] memory such as EEPROM, Flash, SRAM, an SD card, or some other form of memory.
But XMMC also stores it program in external memory, either flash or external ram. (According to the memory model page)

I am using a ActivityBot and for all i know it doesn't have a flash or external ram.
Another thing that was not clear to is how big your program can be with XMMC?

Comments

  • SRLMSRLM Posts: 5,045
    edited 2014-04-23 05:31
    The key difference is this:

    XMMC: The program's data is in hub memory.
    XMM: data is placed in external memory.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-04-23 07:37
    SRLM wrote: »
    The key difference is this:

    XMMC: The program's data is in hub memory.
    XMM: data is placed in external memory.

    Just to clarify, "data" in this context means lookup tables and variables right? Executable instructions (program memory) will always be stored in external memory, whether xmm or xmmc?
  • photomankcphotomankc Posts: 943
    edited 2014-04-23 08:55
    That is my understanding.

    As to how big, that is limited by the external storage you have. Many boards have multiple megabytes of program storage for XMMC code. I'm pretty sure, unless you have a very non-demanding app that XMM mode would be excruciatingly slow.
  • David BetzDavid Betz Posts: 14,516
    edited 2014-04-25 20:16
    The name "XMM" refers to the collection of external memory models:

    xmmc - puts code in external memory starting at 0x30000000 (usually flash) and data in hub memory
    xmm-single - puts code and data in external RAM starting at 0x20000000
    xmm-split - puts code in flash starting at 0x30000000 and data in external RAM starting at 0x20000000

    For backward compatibility, the -mxmm option does the same thing as -mxmm-split.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2014-04-25 20:23
    David Betz wrote: »
    The name "XMM" refers to the collection of external memory models:

    xmmc - puts code in external memory starting at 0x30000000 (usually flash) and data in hub memory
    xmm-single - puts code and data in external RAM starting at 0x20000000
    xmm-split - puts code in flash starting at 0x30000000 and data in external RAM starting at 0x20000000

    For backward compatibility, the -mxmm option does the same thing as -mxmm-split.

    Thanks for the clarification. I need to go update the memory models in propware now!
Sign In or Register to comment.