Program Counter Manipulator for ROM Code Patching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing microprocessor systems with mask programmable ROMs face challenges in updating program code to correct defects or improve functionality, as the instructions are frozen and cannot be changed post-manufacturing.
Innovation Solution
A method and device that bypass a first program code portion by using a replacement program code portion stored in a second memory area, where a program counter is manipulated to switch execution from the first memory address to the second memory address, allowing for selective replacement of erroneous instructions without altering the original ROM.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If mask programmable ROM is used to store program instructions, then the instructions are frozen and cannot be changed after manufacturing, but this prevents updating program code to correct defects or improve functionality
Solution Approach 1:
The patent divides the program storage into two segments: a ROM segment containing the original frozen program instructions and a separate storage segment (RAM/EEPROM) containing replacement program code portions. This segmentation allows the system to maintain the reliability of the original ROM while enabling updates through the replaceable segment, thus resolving the contradiction between program code correctness and updatability.
Solution Approach 2:
The patent introduces a program counter manipulator as an intermediary component that mediates between the ROM and the replacement code storage. This manipulator intercepts program counter values, compares them against stored replacement addresses, and redirects execution to replacement code when matches are found. This intermediary mechanism enables code updating without modifying the original ROM, resolving the contradiction between maintaining original code integrity and enabling updates.
2Reliability
If the entire ROM is replaced to correct program defects, then all program code can be updated, but this increases device complexity and manufacturing costs
Solution Approach 1:
The patent extracts only the defective or needs-updating program code portions from the original ROM and stores them separately in a replaceable storage medium. Instead of replacing the entire ROM, the system extracts and replaces only the necessary code segments, thereby reducing device complexity and manufacturing costs while still achieving the goal of correcting program defects.
Solution Approach 2:
The patent applies partial action by replacing only the specific program code portions that need updating or correction, rather than performing excessive action by replacing the entire ROM. The program counter manipulator enables selective redirection to replacement code segments, allowing minimal changes to achieve maximum benefit in terms of defect correction with reduced complexity.
3Adaptability or versatility
If program code is updated to improve functionality, then the system becomes more versatile, but this requires modifying the original ROM which is not allowed in one-time programmable memories
Solution Approach 1:
The patent merges the original ROM functionality with an additional replaceable storage medium. The system combines the immutable original program code in ROM with updatable replacement code in RAM/EEPROM, allowing functionality extension through the merged system. This merging approach enables versatility improvement without requiring modification of the original ROM manufacturing process.
Solution Approach 2:
The patent prepares replacement program code portions in advance and stores them in a separate replaceable storage medium before they are needed. The program counter manipulator is pre-configured with replacement addresses, enabling quick switching to improved functionality without requiring real-time ROM modification. This preliminary action allows functionality extension while maintaining the ease of original ROM manufacturing.
Data Source
AI summary
A device comprises a processor configured to execute a sequence of program instructions, a first storage configured to store a first memory address, a second storage configured to store a second memory address, a program counter configured to determine a memory address of program instructions to be executed, and a program counter manipulator configured to set the program counter to a value corresponding to a content of the second storage in response to the program counter reaching a value corresponding to a content of the first storage.


