The Multicore Shared Memory Controller (MSMC) manages traffic among multiple C66x CorePacs, DMA, other mastering peripherals, and the EMIF in a multicore device. MSMC also provides a shared on-chip SRAM that is accessible by all the C66x CorePacs and the mastering peripherals on the device.
SPRUGZ3 Trademarks TMS320C66x and C66x are trademarks of Texas Instruments Incorporated. All other brand names and trademarks mentioned in this document are the property of Texas Instruments Incorporated or their respective owners, as applicable. ø-viii KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010...
1.3 Features The MSMC module has the following features: • Level 2 or Level 3 shared MSMC SRAM that is accessible by all the C66x CorePacs and the mastering peripherals • Memory protection for accesses to MSMC SRAM and DDR3 memory from system masters •...
EMIF – 64-bit DDR3 The MSMC has slave interfaces to connect to the C66x CorePacs (one slave interface per CorePac), two slave interfaces to connect to the system interconnect (SCR), one master port to connect to the EMIF, and one master port to connect to the system interconnect (SCR).
The SMS interface handles accesses to MSMC SRAM that originate from a system master that is not a C66x CorePac. Accesses from masters in the system to MSMC configuration registers are also expected to be presented at this interface. Any accesses from the SMS interface that do not address the MSMC SRAM or configuration registers result in an addressing error returned to the requesting master.
‘‘MPAX Segment Registers’’ on page 3-11. All the MPAX registers in the MSMC are readable by any of the connected C66x CorePacs and also by system masters through the SMS port. Write-access control to these registers can be coordinated with the aid of semaphores external to the MSMC as well as through the locking mechanism for MSMC configuration registers.
At reset, the MPAX segment 0 register-pair has initial values that set up unrestricted access to the full MSMC SRAM address space and 2 GB of the EMIF address space. All other segments come up with the permission bits and size set to 0 (that is, no access map to those segments).
Page 17
For 4 GB segments, no BADDR bits are consulted and all addresses match. • If an address does not match any of the programmed MPAXH registers and is not a MSMC configuration register address, the access permissions for the access are considered to be 0; this results in a protection fault. •...
Using address remapping in the MPAX unit at the SES port, it is possible to map some or all of the MSMC SRAM into external memory space and access it through the SES port. This provides the same ability to alias MSMC memory to external address space for system masters as is available to the C66x CorePacs through the CorePac MPAX unit.
5 of the address is used to select the subbank in the selected bank. TCI6616 device has MSMC SRAM size of 2 MB, it is made up of four 512 KB banks. TCI6608 device has MSMC SRAM size of 4 MB, it is made up of four 1 MB banks.
SBNDC0-SBNDC3/SBNDC7 for the C66x CorePac slaves, and SBNDM for the SMS port and SBNDE for the SES port. The registers are programmed with a desired starvation bound in MSMC cycles for the requestor’s accesses. MSMC bandwidth management registers are described in ‘‘Bandwidth Management...
MSMC configuration. While a semaphore-based mutex access control is still expected to be used by software on the cores (and any masters that may program the registers), MSMC features a simple lock mechanism to protect against runaway pointer writes.
Page 23
This provides a simple write-protection mechanism that protects Note— against unintentional modification only. It is recommended that the software uses a semaphore to ensure exclusive access when modifying the MSMC lock registers. SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide...
2.5 Error Detection and Correction Support The MSMC has error detection and correction hardware to protect the contents of the MSMC memory storage against corruption due to transient (soft) errors. The level of protection provided and the scheme used is the same as that of the C66x CorePacs (that is, one-bit error correction, two-bit error detection, with the parity codes calculated over a 256 bit datum).
Figure 4-4. The assumption on the reliability of the data being stored and transferred to/from the MSMC is that any incoming data for MSMC storage is reliable and a parity code generated from it is valid. The EDC hardware consists of the registers listed in...
As parity is tracked at a granularity equal to the width of the banks (32 bytes), writes that are smaller than 32 bytes can invalidate the parity information for a line. MSMC contains a background error correction hardware called the Scrubbing Engine that periodically refreshes the parity bits for the memory.
2.5.5 Parity RAM Initialization at Reset The MSMC EDC hardware invalidates all the parity RAM entries at reset. During this initialization cycle, accesses are not stalled from the slaves or from the scrubbing engine, but are provided no error correction or detection: •...
Chapter 2—MSMC Architecture www.ti.com 2.6 MSMC Interrupt Control The MSMC features a set of interrupt status and enable registers that can control the generation of interrupts at the MSMC module boundary. The MSMC interrupt operation is controlled by the registers listed in...
2.7 Reset Considerations Chapter 2—MSMC Architecture www.ti.com 2.7 Reset Considerations The MSMC module resets on all device resets. Upon reset, the following sequence is followed: • All MSMC configuration registers are reset to their initial default state. • The parity RAM entries associated with the MSMC SRAM are invalidated as described in ‘‘Parity RAM Initialization at Reset’’...
Chapter 3 MSMC Registers This chapter describes the memory-mapped registers associated with the MSMC. "MSMC Memory Mapped Registers" on page 3-2 "Peripheral Identification Register (PID)" on page 3-4 "EDC Registers" on page 3-5 "Bandwidth Management Control Registers" on page 3-9 "MPAX Segment...
Chapter 3—MSMC Registers www.ti.com 3.1 MSMC Memory Mapped Registers Table 3-1 lists the MSMC memory-mapped registers. See the device-specific data manual for the memory address of these registers. All other register offset addresses not listed in Table 3-1 should be considered as reserved locations and the register contents should not be modified.
Page 33
— 0x9F8:0x9FC SES_MPAXL_F_7:SES_MPAXH_F_7 MPAX register pair 7 for SES for PrivID F 3.5.2 3.5.3 1. Registers SBNDC4 to SBNDC7 are applicable only to the TCI6608 device SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide Submit Documentation Feedback...
Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-2 Peripheral ID Register (PID) Field Descriptions Field Description 31-0 Peripheral identifier uniquely identifies the MSMC and the specific revision of the MSMC. KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Reads return 0 and writes have no effect. REFDEL 0-FFh Controls the number of MSMC clock cycles between each scrub burst. To prevent the bursts from the scrubbing engine from posing a significant performance impact, the value in the REFDEL register is pre-scaled by 1024.
R, +0000 Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-5 MSMC SRAM Correctable EDC Extended Error Register (SMCERRXR) Field Descriptions Field Value...
R, +0000 Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-7 MSMC SRAM Non-correctable EDC Extended Error Register (SMNCERRXR) Field Descriptions Field Value...
RW, +0000 0000 0000 0000 Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-10 MSMC Scrubbing Error Corrected Counter Register (SMSECC) Field Descriptions Field Value...
Reads return 0 and writes have no effect. SCNTMM 0-FFh Reload value for the starvation counters for SMS requests at the RAM bank arbiters. End of Table 3-12 SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide Submit Documentation Feedback...
Reads return 0 and writes have no effect. SCNTEM 0-FFh Reload value for the starvation counters for SES requests at the RAM bank arbiters. End of Table 3-13 3-10 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Reads return 0 and writes have no effect. Supervisor read access type. Normal operation. Indicates a supervisor read request. Supervisor write access type. Normal operation. Indicates a supervisor write request. 3-12 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Page 43
User write access type. Normal operation. Indicates a user write request. User execute access type. Normal operation. Indicates a user execute request. End of Table 3-17 SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide 3-13 Submit Documentation Feedback...
R, +0000 0000 0000 0000 0000 0000 0000 0000 Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-18 MSMC Memory Protection Fault Address Register (SMPFAR) Field Descriptions Field Value...
RW, +0 Legend: R = Read only; W = Write only; -n = value after reset; -x, value is indeterminate — see the device-specific data manual Table 3-21 MSMC Memory Protection Fault Control Register (SMPFCR) Field Descriptions Field Value Description...
Reads return 0 and writes have no effect. Writing 0 has no effect. Writing this bit to 1 along with setting MGCID key = 0x2CD0 disengages the lock. End of Table 3-23 3-16 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Writing WLCK[n] bit to 0 has no effect. Writing WLCK[n] bit to 1 along with setting MGCID key = 0x2CD1 engages the lock for PrivID n. End of Table 3-25 SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide 3-17 Submit Documentation Feedback...
0-FFFFh Bit n indicates the lock's current status for PrivID n. 0 - Lock is disengaged. 1 - Lock is engaged. End of Table 3-27 3-18 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Writing WEN[n] bit to 0 has no effect. Writing WEN[n] bit to 1 along with setting MGCID key = 0x2CD1 disengages the lock for PrivID n. End of Table 3-29 SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide 3-19 Submit Documentation Feedback...
0-FFFFh Bit n indicates the lock's current status for PrivID n. 0 - Lock is disengaged. 1 - Lock is engaged. End of Table 3-30 3-20 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
No scrubbing error. Correctable scrubbing error interrupt is enabled and pending. NCSES No scrubbing error. Non-correctable scrubbing error interrupt is enabled and pending. End of Table 3-31 SPRUGW7—November 2010 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide 3-21 Submit Documentation Feedback...
Correctable scrubbing error. Write 1 to set the correctable scrubbing error interrupt status. NCSI No scrubbing error. Non-correctable scrubbing error. Write 1 to set the non-correctable scrubbing error interrupt status. End of Table 3-32 3-22 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Index status register, 2-18, 3-2, 3-21 3-23 IX-2 KeyStone Architecture Multicore Shared Memory Controller (MSMC) User Guide SPRUGW7—November 2010 Submit Documentation Feedback...
Page 57
IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete.
Need help?
Do you have a question about the MSMC and is the answer not in the manual?
Questions and answers