Extended Register Handling for RISC Instruction Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing RISC instruction set architecture with a fixed 32-bit instruction length limits the number of registers that can be handled in a single operation, preventing performance improvements through optimizations like software pipelining and loop unrolling, and restricts the definition of SIMD instructions, leading to inefficient use of cache memory and restricted programming capabilities.
Innovation Solution
A processing unit is designed with an extended arithmetic register (XAR) that allows for instruction extension by storing instruction extension information, enabling the combination of existing instructions with new extension instructions and allowing for the definition of SIMD operations, while also enabling independent handling of first and second half data in registers, even in SIMD instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the instruction length is extended to 64 bits to handle more registers, then the number of registers that can be handled increases, but existing software compatibility is lost
Solution Approach 1:
The patent divides the 64-bit instruction into two 32-bit parts. The first part contains the operation code and register designations, while the second part contains additional register designations and extension information. This segmentation allows the system to handle more registers while maintaining compatibility with existing 32-bit software through the register window system.
Solution Approach 2:
The patent introduces a new dimension to instruction encoding by adding an extension information field that indicates whether the second 32-bit part should be interpreted as an extended instruction or as data. This allows the same instruction format to serve multiple purposes and maintain backward compatibility.
2Productivity
If the number of registers is increased beyond 32 to enable software pipelining and loop unrolling, then compiler optimization capability improves, but the instruction set architecture complexity increases
Solution Approach 1:
The patent makes the instruction format dynamic by introducing extension information that changes the interpretation of subsequent instructions. When extension information is set, the next instruction is interpreted as an extended instruction with additional register designations, enabling handling of more than 32 registers without permanently increasing the base instruction set complexity.
Solution Approach 2:
The extended instruction format serves multiple functions: it can handle additional registers for compiler optimizations, define new SIMD operations, and maintain compatibility with existing instructions through the extension information mechanism. This multi-functionality reduces the need for separate instruction formats for different purposes.
3Speed
If SIMD instructions are defined with extended register addressing, then processing efficiency improves, but programming flexibility and independent handling of data halves is restricted
Solution Approach 1:
The patent applies different interpretation rules to different parts of the extended instruction based on the extension information. When extension information is set, the instruction is interpreted as a SIMD operation with extended register addressing. When not set, it maintains standard interpretation, allowing independent handling of data halves. This local quality approach preserves programming flexibility while enabling SIMD efficiency where needed.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A processing unit has an extended register to which instruction extension information indicating an extension of an instruction can be set. An operation unit that, when instruction extension information is set to the extended register, executes a subsequent instruction following a first instruction for writing the instruction extension information into the extended register, extends the subsequent instruction based on the instruction extension information.