Shared Memory Diagnostic Code Generation for Error Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Industrial controllers with multiple processing domains face challenges in efficiently managing memory usage and detecting memory errors, particularly in systems requiring high diagnostic coverage for safety integrity level three (SIL-3) functional safety, where redundancy is costly and space-intensive.
Innovation Solution
A method and apparatus that utilize a shared memory resource accessed via a shared memory controller, where each processing domain generates and appends a diagnostic code to data written, allowing verification upon read that the data matches the original data written, using checksums or CRC algorithms incorporating unique identifiers and memory addresses to detect errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If redundant memory devices are provided for each processing core to maintain safety integrity level three (SIL-3) functional safety, then diagnostic coverage and reliability are improved, but device complexity, cost, and physical space requirements increase
Solution Approach 1:
The patent merges multiple separate memory devices into a single shared memory resource that is accessed by multiple processing cores through a shared memory controller. This consolidation maintains the required diagnostic coverage for SIL-3 functional safety by implementing error detection mechanisms (such as ECC - Error Correcting Code) at the shared memory level, while eliminating the need for redundant memory devices for each core. The result is reduced device complexity and physical space requirements while preserving reliability.
2Reliability
If separate memory controllers are provided for each processing core to maintain redundancy, then reliability is improved, but power consumption and device complexity increase
Solution Approach 1:
The patent implements a universal memory controller that serves multiple processing cores simultaneously, replacing the need for separate dedicated memory controllers for each core. This multi-functional approach maintains the required redundancy and diagnostic coverage through shared error detection and correction mechanisms, while significantly reducing power consumption by eliminating duplicate controller circuits and reducing overall memory subsystem complexity.
3Reliability
If redundant memory devices are provided for each processing core, then safety integrity level three (SIL-3) functional safety is achieved, but physical space requirements and cost increase
Solution Approach 1:
The patent consolidates multiple separate memory devices into a single shared memory resource that accommodates multiple processing cores. This merging approach maintains SIL-3 functional safety by implementing comprehensive error detection and correction mechanisms (such as ECC) at the shared memory level, ensuring that diagnostic coverage requirements are met. The physical space required is dramatically reduced compared to providing separate redundant memory devices for each core, as the shared memory structure eliminates duplicate storage capacity and associated physical footprint.
Data Source
AI summary
A system with multiple processing domains sharing a memory resource accessed via a shared memory controller detects a memory error. As data is written to the shared memory resource, each processing domain generates a diagnostic code as a function of the data, the memory address for the data, and of a unique identifier corresponding to the processing domain. The diagnostic code is stored with the data for verification when the data is read back. As the data is read back, the processing domain separates the diagnostic code from the data being read and generates another diagnostic code in the same manner as the original diagnostic code. The other diagnostic code is compared to the initial diagnostic code. If both diagnostic codes are the same, the processing domain can be confident that the data read from the shared memory resource is the same as the data that was originally written.

