Configurable Device Register Integrity Check Engine
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Device complexity
If sequential processing of configuration registers is used, then simplicity is maintained, but processing time increases
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.
Data Source
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.


