SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
MSG RAMs are connected to the system bus and are accessible from all the masters (Cortex®-M4, µDMA and EMAC) on the CM subsystem. These RAMs are also accessible from the CPU1/CPU2 subsystem (different MSG RAMs for CPU1 and CPU2) and therefore is used for message/data exchange between the CM and CPU1/CPU2 subsystems. MSG RAMs are parity protected. MSG RAMs are also referred to as IPC (inter processor communication) RAMs because these are used for communication between different subsystems. MSG RAMs do not have fetch access and cannot be used for code. On this device, the CM subsystem is asynchronous to the CPU1/CPU2 subsystem and both have access to MSG RAMs. Specific logic (mem allocate logic ) is implemented to arbitrate the access from different subsystems. At any given time only one master access is connected to the MSG RAM and Mem allocate logic manages switching of MSGx RAM between C28 and CM RAM controllers.
Upon detecting valid access, the RAM controller generates a memory access request to mem allocate logic, and then waits for memory allocate logic to acknowledge. Mem Allocate logic acknowledges only after Memory is switched to the requested RAM controller. Upon detecting acknowledge, the RAM controller initiates the memory access. Mem allocate logic arbitrates accesses using round robin priority. Simultaneous access from both masters will result additional latency due to round robin prioritization, as accesses are serviced alternately and latency is introduced due to synchronization. The user application should use the IPC mechanism to avoid simultaneous accesses.
Two sets of message RAMs are defined to overcome latency issues in case of multiple threads running on CM. One is Cortex®-M4 writing/reading a message and another master such as µDMA or EMAC DMA writing or reading the message at the same time.
The message RAMs are:
Access permissions to MSG RAMs are hard-coded in functional mode.
Table 41-6 lists the allowed accesses to Message RAMs in functional mode.
Message RAM | Cortex-M4 | µDMA | EMAC | CPUx | CPUx.DMA |
---|---|---|---|---|---|
CMTOCPUxMSGRAM0 | RD/WR | RD/WR | RD/WR | RD | RD |
CMTOCPUxMSGRAM1 | RD/WR | RD/WR | RD/WR | RD | RD |
CPUxTOCMMSGRAM0 | RD | RD | RD | WR | WR |
CPUxTOCMMSGRAM1 | RD | RD | RD | WR | WR |