Confirm Instruction Vector Processor Fault Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector processors face challenges in vectorizing loops due to loop-carried data dependencies and memory-address aliasing, which limits the extent of parallelism that can be exploited, leading to reduced performance benefits.

Innovation Solution

The introduction of a Confirm instruction that uses a fault status register to determine if faults have been masked during vector operations, allowing the processor to dynamically adjust execution based on runtime conditions and prevent program termination from illegal memory reads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor terminates the program upon encountering a fault during vector operations, then program correctness is maintained, but productivity is reduced due to frequent program terminations

Engineering Contradiction:
Improveprogram correctnessVSAvoidprogram execution continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor dynamically adjusts its fault handling behavior based on the confirm bit status. When the confirm bit is cleared, the processor masks faults and continues execution; when the confirm bit is set, the processor terminates the program. This dynamic adjustment allows the system to balance between maintaining program correctness and ensuring execution continuity based on runtime conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The confirm bit in the fault status register serves as an intermediary that mediates between fault detection and program termination. Instead of directly terminating the program upon fault detection, the processor uses the confirm bit as an intermediate state that can be conditionally set or cleared, allowing flexible control over whether to terminate or continue execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the processor masks faults and continues execution, then productivity is maintained, but reliability deteriorates due to potential incorrect results from illegal memory reads

Engineering Contradiction:
Improveexecution continuityVSAvoidresult correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The processor implements feedback through the confirm bit mechanism. After masking faults and continuing execution, the processor can later check the confirm bit status to determine if faults occurred. This feedback loop allows the system to maintain execution continuity while having the capability to verify result correctness by examining whether faults were masked during critical operations.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the processor checks all bit positions in the fault status register, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improvefault detection accuracyVSAvoidinstruction complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The Confirm instruction extracts only the relevant fault information needed for decision-making by checking the confirm bit status, rather than examining all bit positions in the fault status register. This extraction approach maintains fault detection accuracy for critical operations while reducing instruction complexity by focusing only on the essential confirm bit.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8938642B2Confirm instruction for processing vectors
Publication Date: 2015.01.20 APPLE INC
  • US8938642B2 patent drawing
  • US8938642B2 patent drawing
  • US8938642B2 patent drawing

AI summary

The described embodiments include a processor with a fault status register (FSR) that executes a Confirm instruction. In these embodiments, when executing the Confirm instruction, the processor receives a predicate vector that includes N elements. For a first set of bit positions in the FSR for which corresponding elements of the predicate vector are active, the processor determines if at least one of the first set of bit positions in the FSR holds a predetermined value. When at least one of the first set of bit positions in the FSR holds the predetermined value, the processor causes a fault in the processor.