Cache Line Boundary Crossing Instruction Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processing devices face performance inefficiencies due to the need to read multiple cache lines when an instruction's address crosses a cache line boundary, leading to increased execution time and bandwidth consumption, especially with vector instructions that often span larger memory access.

Innovation Solution

A cache line module identifies when an instruction's address crosses a cache line boundary, adjusts the instruction to operate on the portion within the first cache line, and injects a second instruction for the portion in the second cache line, allowing for combined execution and reduced memory access latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor reads multiple cache lines to handle instructions crossing cache line boundaries, then the instruction can be fully executed, but the execution time increases and bandwidth consumption increases

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidmemory access latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments a single instruction that crosses cache line boundaries into multiple instruction portions, where each portion corresponds to data within a single cache line. This segmentation allows each portion to be processed independently and efficiently without requiring the processor to read multiple cache lines for a single instruction, thereby reducing memory access latency and improving execution efficiency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the processor reads multiple cache lines to handle instructions crossing cache line boundaries, then the instruction can be fully executed, but the bandwidth consumption increases

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidbandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

By segmenting the instruction into portions that each fit within a single cache line, the patent eliminates the need to read multiple cache lines from main memory. This segmentation reduces the bandwidth consumption associated with fetching multiple cache lines while maintaining complete instruction execution capability.

Inventive Principle:
Principle #1Segmentation

3Productivity

If vector instructions are used to improve processing throughput, then more data can be processed simultaneously, but the likelihood of spanning cache line boundaries increases leading to more reads

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation to vector instructions by dividing them into smaller instruction portions, each confined to a single cache line. This approach maintains the high throughput capability of vector instructions while simplifying memory access by ensuring each portion can be fetched from a single cache line, thereby reducing memory access complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10318427B2Resolving memory accesses crossing cache line boundaries
Publication Date: 2019.06.11 INTEL CORP
  • US10318427B2 patent drawing
  • US10318427B2 patent drawing
  • US10318427B2 patent drawing

AI summary

An instruction in a first cache line may be identified and an address associated with the instruction may be determined. The address may be determined to cross a cache line boundary associated with the first cache line and a second cache line. In response to determining that the address crosses the cache line boundary, the instruction may be adjusted based on a portion of the address included in the first cache line and a second instruction may be created based on a portion of the address included in the second cache line. The second instruction may be injected into an instruction pipeline after the adjusted instruction.