Processor Reservation Stations Using Wrap Bits and Indexes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processor microarchitectures face high power consumption and complexity in identifying and flushing instructions due to the need for large matrices or expensive age tracking mechanisms, especially when handling exceptions and multi-threading.

Innovation Solution

The use of modulo counters to assign integers with wrap bits and indexes determines the relative age of instructions, allowing for efficient identification and flushing of older instructions, and enabling any instruction type to initiate a flush operation, regardless of predetermined types and numbers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If instructions are kept in one entry until issuance (non-shifting structure), then the search for oldest ready instruction is simplified, but maintaining age tracking with large matrices or decrementing circuits increases device complexity and power consumption

Engineering Contradiction:
Improvesearch for oldest ready instructionVSAvoidage tracking circuitry
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the age tracking mechanism into two parts: (1) a compact age matrix that stores only the relative age relationships between instructions, and (2) wrap bits associated with each instruction that encode absolute age information. This segmentation allows the system to track instruction ages without requiring large decrementing counters for each instruction, thereby reducing device complexity while maintaining ease of operation for identifying the oldest ready instruction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension for age tracking by using wrap bits that indicate whether an instruction's age has wrapped around a certain threshold. This additional binary dimension (wrap bit) allows the system to represent instruction ages in a compact form without requiring large counters, effectively adding a dimensional encoding layer that reduces the overall complexity of the age tracking circuitry.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If flush masks are maintained for each instruction to enable flushing, then flushing capability is improved, but the design complexity increases and scalability is reduced

Engineering Contradiction:
Improveflushing capabilityVSAvoidflush mask design
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of maintaining flush masks that indicate which instructions should be flushed (positive approach), the patent inverts the approach by using the age matrix and wrap bits to identify which instructions should NOT be flushed (negative approach). The flush operation determines validity by checking if instructions are younger than the exception-causing instruction, rather than checking complex flush mask bits. This inversion dramatically simplifies the flush mechanism while maintaining reliable flushing capability.

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If the number of in-flight instructions is increased to improve throughput, then productivity is improved, but the size of age tracking structures and flush masks must increase, worsening device complexity

Engineering Contradiction:
Improveinstructions per cycleVSAvoidage matrix size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies partial action by implementing age tracking only for instructions that are actually in flight and need ordering, rather than maintaining full-age information for all possible instructions. The age matrix is sized based on the actual number of in-flight instructions, and wrap bits provide the necessary additional information without requiring a proportional increase in overall tracking structure size. This allows the system to handle increased instruction throughput without linearly increasing device complexity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10782976B2Issuing and flushing instructions from reservation stations using wrap bits and indexes
Publication Date: 2020.09.22 SPASOV DEJAN
  • US10782976B2 patent drawing
  • US10782976B2 patent drawing
  • US10782976B2 patent drawing

AI summary

A processor may include reservation stations to host instructions waiting to be issued to the execution units. Instructions in reservation stations comprise wrap bits and indexes, assigned by modulo counters. If wrap bits of two instructions are equal, then instruction with smaller index is older. If wrap bits of two instructions are different, then instruction with larger index is older. Responsive to exception event, wrap bit and index of an instruction executed with exception is compared with wrap bits and indexes of instructions in reservation stations to determine relative age. Instructions younger than the instruction executed with exception may be flushed from the reservation stations. Instructions in reservation stations may be grouped in pairs. In each pair, older ready instruction is selected using ready-to-issue bits, wrap bits, and indexes. Grouping and selecting instructions is repeated until one instruction remains. The remaining instruction is referred to as the oldest ready instruction.