Register Block Validity Control for Uninitialized Access Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing systems face security risks due to unauthorized access of data stored in non-resettable register files by subsequent shader programs, and existing solutions like overwriting registers or using resettable memory incur time, area, or latency penalties.
Innovation Solution
Implementing a method where register files are divided into blocks with corresponding validity bits, allowing parallel reading and writing while preventing unauthorized access by outputting predetermined values if validity bits indicate invalid data, and efficiently resetting validity bits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Area of stationary object
If register files are made non-resettable to save area, then area is reduced, but subsequent shader programs can unauthorizedly access data from previous programs
Solution Approach 1:
The register file is segmented into multiple blocks, with each block having its own validity bit. This segmentation allows selective invalidation of specific register blocks without affecting the entire register file, enabling security protection while maintaining area efficiency.
Solution Approach 2:
Validity bits are introduced as intermediary elements between the register file and the shader programs. These validity bits act as mediators that control whether data in each register block should be accessed or blocked, providing a mechanism for secure data access without requiring resettable memory.
2Reliability
If all registers are overwritten with zeros or random data to prevent unauthorized access, then data security is improved, but processing time and power consumption increase
Solution Approach 1:
Instead of overwriting all registers, only the validity bits of specific blocks need to be reset. This segmentation approach reduces the amount of data that needs to be rewritten from potentially millions of registers to just a few validity bits, dramatically reducing reset time and power consumption.
Solution Approach 2:
The patent extracts the security function from the entire register file and concentrates it in individual validity bits associated with each block. This allows the security mechanism to be applied selectively only where needed, rather than across the entire register file.
3Reliability
If resettable memory is used to prevent unauthorized access, then data security is improved, but area increases significantly
Solution Approach 1:
The register file is divided into blocks with individual validity bits, allowing security control with minimal additional memory. Only one validity bit per block is needed, rather than requiring resettable memory for the entire register file, dramatically reducing the area penalty.
Solution Approach 2:
The validity bits act as disposable control elements that can be easily reset without requiring expensive resettable memory infrastructure. These simple bit elements provide the necessary security functionality with minimal resource consumption.
4Reliability
If validity bits are added for each register to monitor validity independently, then data security is improved, but area increases due to the large number of validity bits required
Solution Approach 1:
Multiple registers are grouped into blocks, with each block sharing a single validity bit. This segmentation reduces the number of validity bits from one per register to one per block, significantly reducing the area while maintaining the ability to monitor data validity.
Solution Approach 2:
The patent merges multiple register validity monitoring functions into a single validity bit per block. By combining the security control for multiple registers into one shared validity bit, the area requirement is reduced while still providing comprehensive validity monitoring for all registers in the block.
Data Source
AI summary
A method of preventing unauthorized access to uninitialized memory. Registers are grouped into blocks, each of which has a corresponding validity bit. When data is written to a block of memory the validity bit is set to valid. A read function reads both the register data and the validity bit but if the validity bit is set to invalid dummy values are output. Once a program is complete, or before a fresh program the validity bits are reset to invalid.


