Program Code Monitoring via Co-located Memory and Separate Processing Units

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for monitoring the execution of program code, particularly skip instructions, face challenges in error detection due to external interference and execution errors, requiring modifications to the processing unit and complex memory access management.

Innovation Solution

The method involves storing monitoring code within the same memory locations as the program code, allowing simultaneous extraction and execution by separate processing units without specific memory access arbitration, enabling synchronous execution and error detection without modifying the primary processing unit software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If monitoring code is executed by the same processing unit as the program code, then monitoring can be implemented, but the processing unit software must be modified which increases complexity and reduces reliability

Engineering Contradiction:
Improvereliability of program execution monitoringVSAvoidcomplexity of processing unit software
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The monitoring code is extracted from the processing unit and placed in a separate monitoring unit. This allows the monitoring function to be implemented without modifying the processing unit software, thereby maintaining reliability while avoiding the complexity increase that would result from software modifications.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A separate monitoring unit acts as an intermediary between the program code execution and the monitoring process. This monitoring unit reads program instructions from memory and executes monitoring code independently, eliminating the need to modify the processing unit software while still achieving comprehensive monitoring.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If monitoring instructions are stored in separate memory locations, then monitoring code can be stored, but memory access management becomes complex requiring arbitration

Engineering Contradiction:
Improvesynchronous execution of program and monitoring codeVSAvoidcomplexity of memory access management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The monitoring instructions are merged with the program code in the same memory locations. Each memory location contains both the program instruction and the corresponding monitoring instruction, allowing simultaneous extraction by the processing unit and monitoring unit without requiring complex memory access arbitration.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The memory locations serve multiple functions by storing both program code and monitoring code. This multi-functionality eliminates the need for separate memory spaces and complex access management mechanisms, while enabling synchronous execution of both code types.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If monitoring code is stored in the free part of memory locations, then monitoring instructions can be stored without separate memory, but monitoring instruction size is limited by available free space

Engineering Contradiction:
Improvesimplification of memory structureVSAvoidflexibility in monitoring instruction size
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The memory location is segmented into two parts: the program instruction portion and the monitoring instruction portion (free part). This segmentation allows the monitoring instruction to be stored in the available space without requiring separate memory, while the monitoring instruction size is constrained by the free space available in each memory location.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10162728B2Method and device for monitoring the execution of a program code
Publication Date: 2018.12.25 STMICROELECTRONICS (ROUSSET) SAS
  • US10162728B2 patent drawing
  • US10162728B2 patent drawing
  • US10162728B2 patent drawing

AI summary

A method for monitoring the execution of a program code by a monitoring program code may include storing instructions of the program code and instructions for monitoring the program code in the same program memory. Each instruction to be monitored and the associated monitoring instructions may be simultaneously extracted from the program memory, and the instruction to be monitored and the monitoring instructions may be executed.