Program Code Monitoring via Co-located Memory and Separate Processing Units
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If monitoring instructions are stored in separate memory locations, then monitoring code can be stored, but memory access management becomes complex requiring arbitration
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.
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.
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
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.
Data Source
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.


