Configurable Code Fingerprint Recognition via Register-Based Sequence Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors are limited in recognizing a wide range of code fingerprints due to the need for different types of hardware to recognize various processor behaviors, leading to issues in confirming specific sequences and optimizing code optimizations.

Innovation Solution

A computer program product and method that configures a processor to recognize code fingerprints by defining a fingerprint using parameters describing event types or events, loading it into a register, and comparing sequences to alert the runtime environment, enabling recognition of a wide range of fingerprints with a single type of hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If different types of hardware are used to recognize different types of processor behaviors, then the recognition accuracy of specific code fingerprints is improved, but the device complexity and hardware requirements increase

Engineering Contradiction:
Improvecode fingerprint recognition accuracyVSAvoidhardware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal fingerprint recognition unit that can recognize multiple types of code fingerprints (branch fingerprints, load/store fingerprints, cache fingerprints) through a single hardware structure. This unit uses configurable parameters and sequence comparison logic that can be adapted to detect different behavior patterns without requiring separate specialized hardware for each fingerprint type, thereby reducing overall device complexity while maintaining comprehensive recognition capability

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

2Adaptability or versatility

If multiple special-purpose hardware units are implemented to recognize various processor behaviors, then the versatility of fingerprint recognition is improved, but the loss of time for sequence comparison and verification increases

Engineering Contradiction:
Improvefingerprint recognition versatilityVSAvoidsequence comparison time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent pre-configures the fingerprint recognition unit with expected sequence patterns (first sequences) that represent anticipated code behaviors. During runtime, the unit directly compares actual processor behavior sequences against these pre-loaded patterns without requiring complex real-time analysis or multiple sequential checks, significantly reducing verification time while maintaining versatile recognition capability across different fingerprint types

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a single type of hardware is used to recognize all code fingerprints, then the device complexity is reduced, but the measurement precision and ability to confirm specific sequences deteriorates

Engineering Contradiction:
Improvehardware complexityVSAvoidsequence detection accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent implements a dynamic configuration mechanism where the fingerprint recognition unit can be programmed with different event types, event selectors, and sequence patterns through registers. This allows the single hardware unit to adapt its detection criteria dynamically based on the specific code fingerprint being analyzed, maintaining high measurement precision while avoiding the need for multiple static hardware designs

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10157119B2Configurable code fingerprint
Publication Date: 2018.12.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10157119B2 patent drawing
  • US10157119B2 patent drawing
  • US10157119B2 patent drawing

AI summary

A method, computer program product, and system performing a method that include a processor defining a code fingerprint by obtaining parameters describing at least one of an event type or an event. The code fingerprint includes a first sequence. The processor loads the code fingerprint into a register accessible to the processor. Concurrent with executing a program, the processor obtains the code fingerprint from the register and identifies the code fingerprint in the program by comparing a second sequence in the program to the first sequence. Based on identifying the code fingerprint in the program, the processor alerts a runtime environment where the program is executing.