Microprocessor Address Translation for ROM Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program patching methods for microprocessor systems are inflexible, resource-intensive, and not applicable to all systems, particularly those with pipelined CPUs, as they require significant system load and cannot modify microprocessor addresses effectively.

Innovation Solution

A microprocessor system with a trap controller that uses a trap table, region table, and patch table to translate addresses from a first address bus to a second address bus, allowing for flexible program patching and code replacement or insertion without modifying the program counter or increasing system load.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If one bit for each potential ROM address is used to indicate a program branch, then program patching capability is provided, but system load is heavily increased

Engineering Contradiction:
Improveprogram patching capabilityVSAvoidsystem load
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent divides the address translation function into multiple specialized tables: trap table, region table, and patch table. Each table handles a specific aspect of address translation, breaking down the monolithic approach into manageable segments that reduce overall system complexity and resource requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an address translation mechanism that acts as an intermediary between the microprocessor and the ROM. Instead of directly modifying program counters or using interrupt-based methods, the system uses address translation tables to redirect accesses to patched code, providing a more efficient mediation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If program counter is modified for a branch, then program branching is achieved, but flexibility is reduced as it can only branch for one source/target pair

Engineering Contradiction:
Improveprogram branchingVSAvoidbranching flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic address translation through the use of trap and region tables that can be configured at runtime. The system can adaptively translate addresses based on the current execution context, allowing multiple source/target pairs to be handled flexibly without modifying the program counter structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameters of address translation by using trap numbers and region definitions instead of fixed program counter modifications. This allows the same mechanism to handle multiple different branching scenarios by changing the translation parameters rather than the fundamental branching approach.

Inventive Principle:
Principle #35Parameter changes

3Ease of repair

If microprocessor addresses are changed by hardware interrupt, then program patching is achieved, but applicability to pipelined CPU systems is lost

Engineering Contradiction:
Improveprogram patchingVSAvoidsystem compatibility
Core Design Contradiction:
Ease of repairVSAdaptability or versatility

Solution Approach 1:

The patent uses an address translation intermediary that operates transparently to the microprocessor pipeline. Instead of relying on hardware interrupts that may conflict with pipelined execution, the system intercepts and translates addresses at the memory access level, making it compatible with various CPU architectures including pipelined designs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The address translation mechanism is designed to be universally applicable across different microprocessor architectures. The trap controller and translation tables provide a architecture-independent method for program patching that can be implemented in various systems regardless of their specific CPU design or pipelining characteristics.

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

Data Source

PatentUS7464248B2Microprocessor systems and bus address translation methods
Publication Date: 2008.12.09 MEDIATEK INC
  • US7464248B2 patent drawing
  • US7464248B2 patent drawing
  • US7464248B2 patent drawing

AI summary

A microprocessor system contains a read-only memory (ROM) for storing programs or firmware. Retrieval and execution of program code is controlled by a microprocessor address bus. Erroneous data in the ROM can be corrected by address comparison and translation. Trap, region, and patch tables are provided to store addresses, regions, and translated addresses. An address issued by the microprocessor is stored in the trap and region tables can be translated for selecting another programmable device, such as a SRAM or DRAM, other than the original ROM. Thus, erroneous code in the ROM can be corrected, inserted, or replaced.