Programmable Substitutions for Microcode Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processor-based systems face difficulties in modifying processor operations post-fabrication due to the complexity of debugging and the need for overriding existing hardware, which is cumbersome and inefficient.

Innovation Solution

The implementation of programmable registers and reserved instructions within integrated circuits allows for modifying post-silicon instruction behavior by mapping these registers to generic instructions, enabling the execution of patch routines that alter the behavior of the integrated circuit, thereby allowing for changes in operation without altering the microcode flow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional software overrides are used to modify integrated circuit behavior, then operational changes can be achieved, but the process becomes cumbersome and requires disabling existing hardware features

Engineering Contradiction:
Improveability to modify processor behaviorVSAvoidcomplexity of modification process
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

Reserved instructions are pre-defined in the instruction set architecture before the processor is manufactured. These reserved instructions are initially unused but are allocated specific opcodes and can be programmed with microcode sequences to handle specific operations, providing a ready-made mechanism for behavior modification without requiring hardware changes

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A microcode patching mechanism serves as an intermediary layer between the hardware execution units and the reserved instructions. This mechanism allows software to load custom microcode sequences into designated memory locations, which then execute in place of the reserved instructions, enabling behavior modification without directly manipulating hardware features

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional simulation tools are used for debugging integrated circuits, then verification can be performed, but the process becomes increasingly difficult with device complexity and size reduction

Engineering Contradiction:
Improvedebugging capabilityVSAvoidcomplexity of debugging process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The processor contains self-contained debugging capabilities through reserved instructions that can be programmed to implement various debugging functions directly within the processor core. These include breakpoints, single-step execution, and register inspection capabilities that are built into the processor architecture itself, eliminating the need for external simulation tools and allowing debugging to be performed on the actual hardware

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Reserved instructions serve multiple functions: they can be used for normal program execution when programmed with standard operations, or activated for debugging when programmed with diagnostic microcode sequences. This multi-functionality allows the same hardware resources to serve both operational and debugging purposes, reducing the need for separate debugging infrastructure

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

Data Source

PatentUS9696998B2Programmable substitutions for microcode
Publication Date: 2017.07.04 ADVANCED MICRO DEVICES INC
  • US9696998B2 patent drawing
  • US9696998B2 patent drawing
  • US9696998B2 patent drawing

AI summary

The apparatuses, systems, and methods in accordance with the embodiments disclosed herein may facilitate modifying post silicon instruction behavior. Embodiments herein may provide registers in predetermined locations in an integrated circuit. These registers may be mapped to generic instructions, which can modify an operation of the integrated circuit. In some embodiments, these registers may be used to implement a patch routine to change the behavior of at least a portion of the integrated circuit. In this manner, the original design of the integrated circuit may be altered.