Configurable Device Register Integrity Check Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for integrity checking of configuration data in configurable devices are inefficient and require storing the entire configuration image, which is not flexible and can be cumbersome due to non-contiguous register addresses.

Innovation Solution

The implementation of a device with a check engine circuit that uses local check value registers, a mask register to identify valid configuration data, and a next segment register to efficiently skip unnecessary registers, allowing for flexible and efficient integrity checks without the need to store the entire configuration image.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor reads all configuration registers and compares them against the original configuration image stored in memory, then integrity checking is performed, but the process is inefficient and requires retaining the entire configuration image throughout device operation

Engineering Contradiction:
Improveconfiguration data integrityVSAvoidintegrity check efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The configuration space is divided into multiple segments, each with its own check value register storing integrity information for that specific segment. The check engine processes one segment at a time by reading the segment identifier, retrieving the corresponding check value, computing the check value for the current segment, and comparing them. This segmentation eliminates the need to retain the entire configuration image in memory while maintaining comprehensive integrity checking coverage.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the entire configuration image is retained in memory for comparison, then complete integrity verification is possible, but memory resources are consumed and access time increases

Engineering Contradiction:
Improveconfiguration data verificationVSAvoidmemory storage requirement
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The check value registers are extracted from the main configuration image storage and placed in dedicated register files within the check engine. Each segment has its check value stored in a local register, which is quickly accessible during integrity verification. This extraction eliminates the need to retain the entire configuration image in memory, as only the compact check values (not the full configuration data) need to be stored for verification purposes.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If sequential processing of configuration registers is used, then simplicity is maintained, but processing time increases

Engineering Contradiction:
Improvecheck engine structureVSAvoidintegrity check duration
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

Check values for all segments are pre-computed and stored in their respective check value registers during device initialization or configuration loading. When integrity checking is needed, the check engine simply retrieves these pre-computed values and compares them with newly computed values from the current configuration state. This preliminary computation avoids time-consuming recalculations during the actual integrity verification process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12124323B2Register integrity check in configurable devices
Publication Date: 2024.10.22 XILINX INC
  • US12124323B2 patent drawing
  • US12124323B2 patent drawing
  • US12124323B2 patent drawing

AI summary

Embodiments herein describe integrity check techniques that are efficient and flexible by using local registers in a segment to store check values which can be used to detect errors in the local configuration data in the same segment. In addition to containing local registers storing the check values, each segment can include a mask register indicated which of the configuration registers should be checked and which can be ignored. Further, the segments can include a next segment register indicating the next segment the check engine should evaluate for errors.