Limited Range Vector Memory Access Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional vector gather instructions using 32-bit or 64-bit memory indices are inefficient for accessing multiple data elements due to their large size, limiting the number of memory indices that can be stored in a packed data register and restricting the ability to gather smaller data elements like 8-bit bytes or 16-bit words.

Innovation Solution

The introduction of limited range vector memory access instructions that utilize 8-bit byte or 16-bit word memory indices, allowing for more memory indices to be stored in a packed data register, enabling the gathering of a larger number of data elements within a single instruction, and optimizing memory access by restricting operations to a limited range within a larger memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Area of stationary object

If 32-bit or 64-bit memory indices are used in conventional vector gather instructions, then the memory address range that can be accessed is large, but the number of memory indices that can be stored in a packed data register is limited

Engineering Contradiction:
Improvememory address rangeVSAvoidnumber of memory indices
Core Design Contradiction:
Area of stationary objectVSQuantity of substance

Solution Approach 1:

The memory index is segmented into a base address portion and an offset portion. The base address specifies a limited range (e.g., 256 bytes for 8-bit indices), while the offset within that range is used to access specific data elements. This segmentation allows many more indices to be stored in the register while still accessing a useful portion of the overall memory space.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of memory index size from 32-bit or 64-bit to 8-bit or 16-bit. This parameter change reduces the space required for each index, allowing more indices to be stored in the same register width, thereby increasing the quantity of indices that can be processed in parallel.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If 32-bit or 64-bit memory indices are used, then fewer memory indices fit in a packed data register, but individual data elements can be larger in size

Engineering Contradiction:
Improvedata element sizeVSAvoidnumber of data elements
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent changes the data element size parameter to work efficiently with smaller memory indices. By using 8-bit or 16-bit indices, the system is optimized for gathering smaller data elements (bytes or words), increasing the number of elements that can be gathered in a single instruction while maintaining appropriate data element sizes for the application domain.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If conventional vector gather instructions are used, then the instruction can access any memory location, but the number of memory accesses required is high

Engineering Contradiction:
Improvememory access flexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies local quality by optimizing for a specific access pattern within a limited memory range. Rather than providing uniform access to the entire memory space, the instruction is specialized for efficient access within a small base range (e.g., 256 bytes), achieving higher processing speed for this common case while maintaining sufficient versatility through the base address parameter.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9244684B2Limited range vector memory access instructions, processors, methods, and systems
Publication Date: 2016.01.26 INTEL CORP
  • US9244684B2 patent drawing
  • US9244684B2 patent drawing
  • US9244684B2 patent drawing

AI summary

A processor of an aspect includes a plurality of packed data registers. The processor also includes a unit coupled with the packed data registers. The unit is operable, in response to a limited range vector memory access instruction. The instruction is to indicate a source packed memory indices, which is to have a plurality of packed memory indices, which are to be selected from 8-bit memory indices and 16-bit memory indices. The unit is operable to access memory locations, in only a limited range of a memory, in response to the limited range vector memory access instruction. Other processors are disclosed, as are methods, systems, and instructions.