Thread-Group Error Control Codes for Lower ECC Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Maintaining error control codes at a lower granularity in data processing systems incurs significant costs in terms of memory space, power usage, and performance, particularly when data values are accessed at byte or half-word levels, while maintaining error control codes at higher granularities leads to inefficiencies in time and power consumption.
Innovation Solution
Divide execution threads into at least two sub-thread data width groups and calculate separate error control codes for each group, handling inactive or terminated threads with read-modify-write operations or default values to optimize error control management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error control codes are maintained at lower granularity (byte or half-word level), then error detection and correction capability is improved, but memory space, power usage, and performance are significantly increased
Solution Approach 1:
The patent divides execution threads into sub-thread data width groups, where each group shares a common error control code. This segmentation approach maintains error detection capability at a coarser granularity level, reducing the total number of error control codes needed while still providing protection for individual thread data values.
Solution Approach 2:
The patent merges multiple thread data values into groups that share common error control codes. By combining threads into sub-thread data width groups, the system reduces the overall number of error control codes required, thereby decreasing memory space and power usage while maintaining adequate error protection.
2Measurement precision
If error control codes are maintained at lower granularity, then error detection precision is improved, but memory space and performance are increased
Solution Approach 1:
The patent segments threads into sub-thread data width groups that share error control codes, achieving a balance between error detection precision and memory space requirements.
Solution Approach 2:
The patent makes error control codes universal by having multiple threads share common error control codes within sub-thread data width groups. This multi-functionality approach reduces the total number of error control codes needed while still providing error detection for individual threads.
3Use of energy by moving object
If error control codes are maintained at higher granularity, then memory space and power usage are reduced, but time and power consumption for error control management are increased
Solution Approach 1:
The patent dynamically manages error control codes at the sub-thread data width group level, allowing the system to efficiently handle error control operations without excessive time consumption while maintaining reduced power usage compared to fine-grained approaches.
Solution Approach 2:
The patent changes the granularity parameter of error control codes from byte/half-word level to sub-thread data width group level, optimizing the balance between power consumption and time consumption for error control management.
4Reliability
If separate error control codes are calculated for each thread, then error detection capability is improved, but device complexity and processing overhead are increased
Solution Approach 1:
The patent segments threads into sub-thread data width groups, calculating one error control code per group rather than per thread. This segmentation reduces processing overhead and device complexity while maintaining error detection capability for individual threads within each group.
Solution Approach 2:
The patent merges multiple threads into sub-thread data width groups that share common error control codes, reducing the total number of error control code calculations required and thereby decreasing device complexity and processing overhead.
Data Source
AI summary
The present disclosure relates to a data processor and a method of operating a data processor that is operable to execute programs to perform data processing operations, and in which plural execution threads may be grouped together into thread groups in which an instruction is executed upon one or more execution threads of a thread group.


