Dual Register File Instruction Execution to Avoid Wave Conflicts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing graphics processors face inefficiencies due to read-write conflicts in common register files between consecutive instructions, necessitating the insertion of NOP instructions, which degrade execution performance.
Innovation Solution
Implementing a method where instructions are executed by alternating between two common register files for even and odd-numbered waves, allowing source operands to be stored in different files, reducing the need for NOP instructions and improving execution efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single common register file is used for all waves, then device complexity is reduced, but read-write conflicts occur between consecutive instructions requiring NOP insertion which decreases execution efficiency
Solution Approach 1:
The common register file is segmented into multiple banks (first common register file and second common register file) that can be independently accessed. This segmentation allows simultaneous read-write operations on different banks without conflict, eliminating the need for NOP instructions while maintaining reasonable device complexity.
Solution Approach 2:
The patent introduces a new dimension of access by adding bank selection capability to the register file structure. By incorporating a bank selection unit that can switch between first and second common register files based on wave number parity, the system enables parallel access patterns that resolve conflicts without significantly increasing overall structural complexity.
2Reliability
If NOP instructions are inserted to resolve read-write conflicts, then reliability of data access is improved, but execution time increases due to additional instruction cycles
Solution Approach 1:
The bank selection unit pre-determines which common register file bank to use based on the wave number before instruction execution begins. By preparing the appropriate bank in advance and switching to it proactively, the system ensures correct data access without requiring post-conflict NOP delays, thus maintaining reliability while reducing time loss.
Solution Approach 2:
The bank selection unit acts as an intermediary between the instruction execution unit and the common register files. It mediates access conflicts by intelligently routing even-numbered waves to the first bank and odd-numbered waves to the second bank, ensuring data correctness without introducing time-consuming NOP instructions.
3Productivity
If the wave controller transmits instructions in each even-numbered clock cycle, then instruction throughput is increased, but read-write conflicts in the common register file increase requiring more NOP instructions
Solution Approach 1:
The system implements periodic action by alternating the use of first and second common register file banks based on the parity of wave numbers. Even-numbered waves periodically access the first bank while odd-numbered waves periodically access the second bank, creating a rhythmic pattern of access that maintains high throughput while systematically avoiding conflicts.
Solution Approach 2:
By segmenting the common register file into multiple banks and assigning different banks to different wave groups, the patent enables the wave controller to transmit instructions at high frequency without generating conflicts. The segmentation isolates access paths so that increased transmission frequency does not lead to increased conflict frequency.
Data Source
AI summary
The present disclosure relates to an instruction execution method and apparatus, a computer device, a storage medium, and a computer program product. The method includes: receiving an instruction transmitted by a wave controller in each even-numbered clock cycle, wherein two instructions received in two consecutive even-numbered clock cycles correspond to an even-numbered wave and an odd-numbered wave respectively; acquiring a source operand from a first common register file when the instruction corresponds to the even-numbered wave, or acquiring a source operand from a second common register file when the instruction corresponds to the odd-numbered wave; and executing the instruction based on the source operand. With the method, the execution efficiency can be improved.


