Vector Conflict Detection in Semiconductor Processing Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In vector operations, dependencies between elements within the same input vector can lead to incorrect results if not properly managed, particularly in instructions like 'gather' and 'scatter', where the operation on one element depends on the result of another.

Innovation Solution

A methodology is introduced to detect and manage dependencies by identifying indices with relationships, sequencing operations to respect these dependencies, and using specific instructions like 'vconflict', 'vptest', and 'vpand' to ensure that operations are performed in a manner that avoids simultaneous execution of dependent elements, allowing for proper ordering and execution of vector operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If vector operations are performed in parallel on multiple elements, then processing speed and productivity are improved, but data dependency conflicts arise when one operation depends on another operation's result

Engineering Contradiction:
Improveprocessing speedVSAvoiddata correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a preliminary action by executing a conflict detection instruction (vconflict) before the actual vector operation. This instruction identifies dependent elements in advance and sets conflict bits in a conflict register, allowing the system to prepare appropriate masking strategies before the main computation begins, thus preventing incorrect results while maintaining parallel processing capability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism through the conflict detection instruction and conflict register that mediates between parallel vector operations and data dependencies. This intermediary layer detects conflicts, communicates them to the execution logic, and enables the use of masking techniques to resolve dependencies without sacrificing the parallel processing advantage

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If simultaneous execution of vector operations is allowed, then productivity is improved, but operations on dependent elements may execute simultaneously causing incorrect results

Engineering Contradiction:
Improveexecution efficiencyVSAvoidoperation accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent segments the vector elements into two groups: those with conflicts (dependent elements) and those without conflicts (independent elements). By using conflict bits to identify and separate these groups, the system can apply different execution strategies to each segment, allowing independent elements to execute in parallel while ensuring dependent elements are handled separately to maintain accuracy

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by using element-specific conflict bits and masking to treat individual elements differently based on their dependency characteristics. Rather than serializing the entire vector operation, only the local elements with conflicts are masked or handled separately, while other elements continue to execute in parallel, thus maintaining high accuracy where needed while preserving productivity elsewhere

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8972698B2Vector conflict instructions
Publication Date: 2015.03.03 INTEL CORP
  • US8972698B2 patent drawing
  • US8972698B2 patent drawing
  • US8972698B2 patent drawing

AI summary

A processing core implemented on a semiconductor chip is described having first execution unit logic circuitry that includes first comparison circuitry to compare each element in a first input vector against every element of a second input vector. The processing core also has second execution logic circuitry that includes second comparison circuitry to compare a first input value against every data element of an input vector.