Instruction Decoding for FLOP Accounting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face challenges in accurately evaluating floating-point operations (FLOP) due to limited bandwidth of the Performance Monitoring Unit (PMU), necessitating a software-based method for FLOP accounting that does not rely on PMU events or counters.

Innovation Solution

A software-based technique for evaluating FLOP count through pure instruction decoding, identifying characteristics of dynamically executed floating-point instructions, such as vector vs. scalar, data type, and masking status, to calculate FLOP count without relying on PMU events or counters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If PMU events or counters are used to evaluate FLOP count, then measurement capability is provided, but the limited bandwidth of the PMU prevents accurate evaluation of all performance events

Engineering Contradiction:
ImproveFLOP count accuracyVSAvoidPMU bandwidth
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts the FLOP counting function from the PMU by implementing a software-based instruction decoding mechanism. The decoder unit independently counts floating-point instructions by decoding instruction bytes and identifying FLOP operations, thereby bypassing the PMU bandwidth limitation while maintaining accurate FLOP measurement capability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If software-based instruction decoding is used to evaluate FLOP count, then PMU bandwidth limitations are avoided, but the complexity of decoding and analyzing instruction characteristics increases

Engineering Contradiction:
ImproveFLOP count accuracyVSAvoidinstruction decoding complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the FLOP counting process into distinct functional components: an instruction decoder that breaks down instruction bytes into operational fields, a classifier that categorizes instruction types, and a counter that accumulates FLOP values. This modular segmentation simplifies the overall decoding complexity by assigning specific tasks to dedicated units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary decoder unit that sits between the instruction stream and the FLOP counting mechanism. This decoder translates raw instruction bytes into meaningful operational characteristics, serving as a mediator that simplifies the interaction between the complex instruction set and the counting logic while enabling accurate FLOP evaluation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If comprehensive performance events are monitored using PMU, then detailed performance data is obtained, but the PMU cannot validate all required performance events due to bandwidth constraints

Engineering Contradiction:
Improveperformance event validationVSAvoidPMU event validation throughput
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent implements a self-service mechanism where the decoder unit autonomously performs FLOP instruction identification and counting without requiring PMU involvement. By independently analyzing instruction characteristics and maintaining its own count registers, the system eliminates the PMU bandwidth bottleneck while ensuring complete performance event validation capability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10228938B2Apparatus and method for instruction-based flop accounting
Publication Date: 2019.03.12 INTEL CORP
  • US10228938B2 patent drawing
  • US10228938B2 patent drawing
  • US10228938B2 patent drawing

AI summary

An apparatus and method are described for floating point operation (FLOP) accounting. For example, one embodiment of a processor comprises: an instruction fetch unit to fetch instructions from system memory, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements; a mask register to store a mask value associated with the masked vector floating point instruction; a decoder to decode the masked vector floating point instruction; and floating point operations (FLOP) accounting circuitry to read the mask register to determine a number of floating point operations to be performed during execution of the masked vector floating point instruction.