SLAU846B June 2023 – November 2024 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3519
The SRAM region contains the system memory (SRAM). The SRAM supports zero wait state access at the maximum MCLK frequency (80MHz). Accesses to the SRAM from the CPU are processed through the AHB bus matrix to the SRAM interface directly. See the device-specific data sheet for the amount of SRAM present on a given device.
Certain devices optionally support parity or parity and ECC checking of the SRAM. Refer to the device-specific data sheet to determine if a device supports ECC or parity checked SRAM. For information on how parity and ECC errors are handled by the device, see Section 2.4.10.
Parity Checking
In the case of parity checking (if available), 1 parity bit is provided per 8 data bits. Parity checking is capable of detecting a single bit error in the corresponding 8 bits of data (SED). Writing data to a parity checked address updates the corresponding parity bits based on the new data. Reading data from a parity checked address checks the read data against the corresponding parity bits. Upon a read, if the data does not match the corresponding parity bits, a parity error is generated. For information on how parity errors are handled by the device, see Section 2.4.10
ECC Checking
In the case of ECC checking (if available), 8 ECC bits are provided per 64 data bits. ECC is capable of correcting single bit errors (SEC) and detecting dual bit errors (DED) in the corresponding 64 data bits. Writing data to an ECC checked address updates the corresponding ECC code based on the new data. Reading data from an ECC checked address checks the read data against the corresponding ECC code. If a single bit error is found, it is corrected automatically and a correctable ECC error is generated. If a dual bit error is found, an uncorrectable ECC error is generated.
Aliased Subregions
The physical SRAM on a device is aliased into multiple address subregions in the overall SRAM region, as shown in the following table. The default, parity checked, and unchecked address subregions all map to the same physical SRAM memory. The difference between each aliased subregion is in the type of integrity checks which are applied to the access. For example, writing data to address 0x2000.0000 (the default subregion) will cause the same data to appear at address 0x2020.0000 (the unchecked subregion).
The default subregion (0x2000.0000) is available on all MSPM0 devices, and when used, provides the highest level of integrity checking available on the device. The parity checked subregion (0x2010.0000) is available on devices which support ECC or parity checking, and accesses are always processed with parity checking. The unchecked subregion (0x2020.0000) is available on all devices, and when using this subregion, no integrity checks are performed. The parity/ECC code subregion (0x2030.0000) is available on devices with ECC or parity checking, and it returns the parity or ECC code which corresponds to the address being read.
Subregion | Start | End (Maximum) | Description |
---|---|---|---|
Default | 0x2000.0000 | 0x200F.FFFF | The highest available integrity check on the device is always applied to accesses in this subregion:
|
Parity checked | 0x2010.0000 | 0x201F.FFFF | If the device supports parity, accesses to this subregion are parity checked. |
Unchecked | 0x2020.0000 | 0x202F.FFFF | No ECC or parity checks are applied to accesses in this subregion. |
Parity/ECC code | 0x2030.0000 | 0x203F.FFFF | If the device supports parity or ECC, the parity or ECC codes may be directly accessed through this subregion:
|
In some devices, the SRAM is organized into two or more banks. Not all the banks may have have ECC and/or parity. Typically, the first bank will include ECC and/or parity while additional banks may or may not include ECC/parity. In such cases, the size of each subregion will depend on the device-specific SRAM configuration. For example, if a device features 128KB of SRAM with the first 64KB having ECC/parity protection and the second 64KB without ECC/parity, then the size of ECC protected subregion, the parity checked subregion and the codes region is each 64KB while the unchecked region will be 128KB in size. In all cases, the unchecked subregion is contiguous and of the full size, allowing applications to link code and data freely in this subregion.
On devices supporting parity or ECC, it is possible for application software to partition the usage of the physical SRAM into arbitrary zones which are intended to be ECC checked, parity checked, or unchecked. For example, if a device has 32KB of total SRAM memory, and it supports ECC and parity checking, it is possible to configure the application software to link against two subregions, one being ECC checked and the other being parity checked.
If the application is using only the unchecked memory region, then the Parity/ECC code region can be used for additional application SRAM memory.