メインコンテンツ

hisl_0013: Usage of data store memory

R2026b

Set data store memory diagnostics to error to identify communication issues

Usage: High-Integrity System Modeling

Guideline ID: hisl_0013

Rules

hisl_0013: Usage of data store memory

When using data store memory, set these data store memory model configuration parameters to error:

  • Detect read before write

  • Detect write after read

  • Detect write after write

  • Multitask data store

  • Duplicate data store names

Rationale

Simulation diagnostics help identify places where data store memory communication invalidates the Simulink® signal semantic.

Verification

Check safety-related diagnostic settings for data store memory (Simulink Check)

Example — Correct

Recommended approach uses a DataTransfer block to communicate data between subsystems instead of data store memory across boundaries.

Recommended: subsystem f1_alg1 writes to data store D1 and passes it through a DataTransfer block to f1_alg2 which reads D2 via input signal. Not recommended: subsystem f1_alg3 writes to data store D1 and f1_alg4 reads data store D2 directly using a Data Store Read block across subsystem boundaries

Tips

  • Use input and output signals instead of data store memory to communicate data whenever possible. Using data store memory blocks to communicate data across system boundaries can lead to unexpected results.

  • If you have a Simulink Design Verifier™ license, you can detect data store memory access violations in a model statically. Select the Design Verifier model configuration parameter Data store access violations. For more information, see Detect Data Store Access Violations in a Model (Simulink Design Verifier).

Industry Standards

  • IEC 61508-3, Table A.3 (3) 'Language subset'
    IEC 61508-3, Table A.4 (3) 'Defensive programming'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'
    Table 1 (1i) - 'Concurrency aspects'
    Table 3 (1i) 'Appropriate management of shared resources'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • EN 50657, Table A.4 (11) 'Language Subset'
    EN 50657, Table A.3 (1) 'Defensive Programming'

  • EN 50716, Table A.3 (1) 'Defensive Programming'

  • DO-331, Section MB.6.3.3.b 'Software architecture is consistent'

Version History

Introduced in R2010a

expand all