Variable Length Instruction Boundary Identification Using Pointer Estimation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current processor architectures require significant resources to store and verify endbits for variable length instructions, leading to increased die area and cost, and complex decode mechanisms to handle corrupted endbits.
Innovation Solution
A superscalar decode mechanism comprising a length decode unit, pre-pick unit, and pick unit that estimates and stores pointers to identify instruction boundaries within a scan window, allowing for efficient decoding and identification of variable length instructions without the need for extensive endbit verification and recalculations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If endbits are stored in the instruction cache and L2 cache to identify instruction boundaries, then instruction boundary identification is improved, but cache size and die area increase significantly
Solution Approach 1:
The patent extracts the instruction boundary identification function from the cache storage system by using dedicated pointer fields within the instruction stream itself. Instead of storing separate endbit markers in cache, the boundary information is embedded directly in the instruction data through pointer fields that reference instruction boundaries, eliminating the need for additional cache storage.
Solution Approach 2:
The instruction stream serves multiple functions: it carries both the executable instruction data and the boundary identification information simultaneously. The pointer fields within the instruction stream are multi-functional, serving both as part of the instruction encoding and as boundary markers, eliminating the need for separate storage structures.
2Reliability
If a complex decode mechanism with endbit verification and repair circuitry is implemented, then instruction decoding reliability is improved, but device complexity increases
Solution Approach 1:
The patent performs preliminary action by pre-calculating and storing pointer values that indicate instruction boundaries within the instruction stream itself. These pointers are computed in advance during instruction encoding and stored as part of the instruction data, so that during decoding, the boundary information is already available without requiring complex verification or repair circuitry.
Solution Approach 2:
The patent uses copying by duplicating boundary identification information within the instruction stream through pointer fields. Each instruction or group of instructions contains embedded pointers that copy the essential boundary information needed for identification, eliminating the need for separate verification mechanisms.
3Measurement precision
If endbits are stored and verified for each instruction, then instruction boundary accuracy is improved, but processing time increases due to verification and potential recalculation
Solution Approach 1:
The patent performs preliminary action by pre-computing and embedding pointer values that directly indicate instruction boundaries within the instruction stream. These pointers are calculated in advance during instruction encoding and stored as part of the instruction data structure, so that during execution, the boundary information is immediately available without requiring time-consuming verification or recalculation operations.
Data Source
AI summary
A mechanism for superscalar decode of variable length instructions. A length decode unit may obtain a plurality of instruction bytes based on a scan window of a predetermined size. The instruction bytes may be associated with a plurality of variable length instructions, which are scheduled to be executed by a processing unit. The length decode unit may, for each instruction byte, estimate the start of a next variable length instruction following a current variable length instruction, and store a first pointer. A pre-pick unit may, for each instruction byte, use the first pointer to estimate the start of a subsequent variable length instruction following the next variable length instruction within the scan window, and store a second pointer. A pick unit may use a start pointer and related first and second pointers to determine the actual start of the variable length instructions within the scan window, and generate instruction pointers.


