Skip to content

events

Primary failure rate source component for LPDDR5 DRAM.

Events

Bases: Base

Initializes the baseline DRAM failure rates for LPDDR5.

This module acts as a primary source for SBE, DBE, MBE, and WD faults. As a pure source component, it uses a SumBlock to inject all rates in parallel.

Source code in src/ecc_analyzer/models/lpddr5/events.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Events(Base):
    """Initializes the baseline DRAM failure rates for LPDDR5.

    This module acts as a primary source for SBE, DBE, MBE, and WD faults.
    As a pure source component, it uses a SumBlock to inject all rates in parallel.
    """

    def __init__(self, name: str):
        """Initializes the fault rates based on a baseline DRAM FIT value.

        Args:
            name (str): The descriptive name of the component.
        """
        dram_fit = 2300.0

        self.fault_sbe = 0.7 * dram_fit
        self.fault_dbe = 0.0748 * dram_fit
        self.fault_mbe = 0.0748 * dram_fit
        self.fault_wd = 0.0748 * dram_fit

        super().__init__(name)

    def configure_blocks(self):
        """Configures the internal block structure by injecting failure rates as basic events.

        Uses a SumBlock as these faults occur independently and in parallel on the hardware level.
        """
        self.root_block = SumBlock(
            self.name,
            [
                BasicEvent(FaultType.SBE, self.fault_sbe, is_spfm=True),
                BasicEvent(FaultType.DBE, self.fault_dbe, is_spfm=True),
                BasicEvent(FaultType.MBE, self.fault_mbe, is_spfm=True),
                BasicEvent(FaultType.WD, self.fault_wd, is_spfm=True),
            ],
        )

__init__(name)

Initializes the fault rates based on a baseline DRAM FIT value.

Parameters:

Name Type Description Default
name str

The descriptive name of the component.

required
Source code in src/ecc_analyzer/models/lpddr5/events.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def __init__(self, name: str):
    """Initializes the fault rates based on a baseline DRAM FIT value.

    Args:
        name (str): The descriptive name of the component.
    """
    dram_fit = 2300.0

    self.fault_sbe = 0.7 * dram_fit
    self.fault_dbe = 0.0748 * dram_fit
    self.fault_mbe = 0.0748 * dram_fit
    self.fault_wd = 0.0748 * dram_fit

    super().__init__(name)

configure_blocks()

Configures the internal block structure by injecting failure rates as basic events.

Uses a SumBlock as these faults occur independently and in parallel on the hardware level.

Source code in src/ecc_analyzer/models/lpddr5/events.py
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def configure_blocks(self):
    """Configures the internal block structure by injecting failure rates as basic events.

    Uses a SumBlock as these faults occur independently and in parallel on the hardware level.
    """
    self.root_block = SumBlock(
        self.name,
        [
            BasicEvent(FaultType.SBE, self.fault_sbe, is_spfm=True),
            BasicEvent(FaultType.DBE, self.fault_dbe, is_spfm=True),
            BasicEvent(FaultType.MBE, self.fault_mbe, is_spfm=True),
            BasicEvent(FaultType.WD, self.fault_wd, is_spfm=True),
        ],
    )