Program Counter Advancing for Cache Line Straddling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for dispatching instruction groups in processors suffer from latency issues, particularly at points of discontinuity such as function starts or loop beginnings, where multiple paths converge, leading to delays and bottlenecks in the sequential flow of programs.

Innovation Solution

A program counter advancing technique that determines the presence of an End-of-Group (EOG) marker and a straddling group indicator to directly advance the program counter to the start of subsequent cache lines, skipping over NOP instructions and effectively utilizing NOP padding without incurring unnecessary clock cycles, thereby reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the program counter is incremented sequentially after dispatching each instruction group, then the program execution follows a simple and reliable control flow mechanism, but latency increases at points of discontinuity such as function starts or loop beginnings where multiple paths converge

Engineering Contradiction:
Improvecontrol flow reliabilityVSAvoiddispatch latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing the starting addresses of subsequent cache lines in the straddling group indicator field during instruction group formation. When a straddling instruction group is detected, the program counter is directly updated to the pre-computed address of the next cache line, eliminating sequential increment delays and enabling immediate resumption of execution at convergence points.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements skipping by detecting straddling instruction groups and directly advancing the program counter to the start of the subsequent cache line using the straddling group indicator, thereby skipping over intermediate NOP instructions and padding that would otherwise be executed sequentially. This rushing through of non-critical instructions reduces dispatch latency at discontinuity points while maintaining control flow reliability.

Inventive Principle:
Principle #21Skipping (Rushing through)

2Manufacturing precision

If NOP instructions are used for alignment padding in instruction groups, then instruction alignment is achieved, but unnecessary clock cycles are consumed during execution

Engineering Contradiction:
Improveinstruction alignmentVSAvoidexecution time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent extracts and eliminates the harmful effect of NOP padding by detecting straddling instruction groups through the straddling group indicator and directly advancing the program counter to skip over the NOP instructions. The alignment functionality is preserved through proper cache line positioning, but the time-consuming NOP execution is removed by taking out the unnecessary padding instructions from the execution path.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent converts the harmful effect of NOP padding into a benefit by using the known structure of straddling instruction groups (indicated by the straddling group indicator) to predict and skip over NOP instructions. The alignment padding that originally caused delays is now leveraged as a signaling mechanism to trigger program counter advancement, transforming the harm of extended execution time into a benefit of optimized dispatch latency.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

3Productivity

If instruction groups are allowed to straddle across multiple cache lines, then memory utilization is improved, but determining the correct next instruction group becomes more complex

Engineering Contradiction:
Improvememory utilizationVSAvoidcontrol logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing the starting addresses of subsequent cache lines in the straddling group indicator field during instruction group formation. This pre-computation eliminates the need for complex runtime analysis to determine where straddling instruction groups end and next groups begin, as the information is already prepared in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service by embedding the straddling group indicator within the instruction group data structure itself, allowing the execution unit to autonomously detect straddling conditions and compute the next program counter value using the embedded indicator without requiring external control logic or additional hardware components to manage straddling complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11928470B1Advancing a program counter to a start of a subsequent cache line based on a straddling group indicator in a current cache line
Publication Date: 2024.03.12 VERISILICON HOLDINGS CO LTD
  • US11928470B1 patent drawing
  • US11928470B1 patent drawing
  • US11928470B1 patent drawing

AI summary

Introduced herein is a program counter advancing technique that uses NOP padding without its limitations. During a build process, the introduced technique removes EOG markers for instruction groups that are immediately followed by the NOP instructions that are immediately followed by an instruction group beginning at a start of a cache line. As such, during an execution process, when the processing unit detects an absence of an EOG marker in the requested instruction group, it knows that a group of NOP instructions are about to follow and skips over them by directly advancing the program counter to a start of a subsequent cache line where the next instruction group starts. In addition to the presence of an EOG marker, the introduced technique also takes into account whether the requested instruction group is a straddling group when advancing the program counter to a start of the subsequent cache line.