Superscalar Processor Vector Mode Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures, especially scalar processors, are inefficient in executing vectorizable loops due to repeated instruction fetching and higher energy consumption, limiting their performance and efficiency compared to vector processors.

Innovation Solution

A processor with a multi-issue architecture that dynamically replicates instructions across multiple lanes, allowing for parallel execution of instructions with altered arguments, and incorporates renaming logic to ensure proper argument access, enabling both scalar and vector modes of operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Area of stationary object

If a scalar processor architecture is used, then the processor occupies a smaller area on a silicon die, but it executes vectorizable loops more slowly and dissipates more energy

Engineering Contradiction:
Improvesilicon die areaVSAvoidexecution speed
Core Design Contradiction:
Area of stationary objectVSProductivity

Solution Approach 1:

The processor dynamically switches between scalar and vector execution modes based on the characteristics of the current instruction. The execution unit can reconfigure itself to process multiple data elements in parallel when vector mode is activated, while maintaining the compact scalar architecture for other operations. This dynamic adaptability allows the processor to achieve vector processing performance without permanently increasing the silicon die area.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The processor changes its operational parameters by activating vector mode for specific instructions that benefit from parallel execution. When vector mode is enabled, the execution unit processes multiple data elements simultaneously, effectively increasing execution speed for vectorizable loops without requiring a completely different processor architecture.

Inventive Principle:
Principle #35Parameter changes

2Area of stationary object

If a scalar processor architecture is used, then the processor occupies a smaller area on a silicon die, but it dissipates more energy when executing vectorizable loops

Engineering Contradiction:
Improvesilicon die areaVSAvoidenergy dissipation
Core Design Contradiction:
Area of stationary objectVSLoss of energy

Solution Approach 1:

The processor dynamically activates vector mode only when executing instructions that can benefit from parallel processing. This selective activation reduces energy dissipation by avoiding the overhead of vector processing for instructions that do not require it, while still achieving energy efficiency for vectorizable loops through consolidated parallel execution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The execution unit automatically detects and activates vector mode for suitable instructions without requiring external intervention. This self-service capability allows the processor to optimize its own energy consumption by switching to vector mode only when beneficial, thereby reducing overall energy dissipation while maintaining a compact architecture.

Inventive Principle:
Principle #25Self-service

3Productivity

If instructions are replicated across multiple lanes for parallel execution, then execution speed increases, but device complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The execution unit serves multiple functions by operating in both scalar and vector modes using the same hardware resources. When vector mode is activated, the same execution unit processes multiple data elements in parallel across different lanes, eliminating the need for separate vector processing hardware and thereby controlling device complexity while maintaining high execution speed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The processor controls the degree of parallelism by adjusting the number of active lanes based on the specific instruction being executed. This parameter adjustment allows the processor to achieve high execution speed for vectorizable loops while avoiding the full complexity of a dedicated vector processor for instructions that do not require parallel execution.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP1942410B1Processor supporting vector mode execution
Publication Date: 2016.06.29 STMICROELECTRONICS INC
  • EP1942410B1 patent drawingFigure 1A~1B
  • EP1942410B1 patent drawingFigure 2
  • EP1942410B1 patent drawingFigure 3

AI summary

An improved superscalar processor. The processor includes multiple lanes, allowing multiple instructions in a bundle to be executed in parallel. In vector mode, the parallel lanes may be used to execute multiple instances of a bundle, representing multiple iterations of the bundle in a vector run. Scheduling logic determines whether, for each bundle, multiple instances can be executed in parallel. If multiple instances can be executed in parallel, coupling circuitry couples an instance of the bundle from one lane into one or more other lanes. In each lane, register addresses are renamed to ensure proper execution of the bundles in the vector run. Additionally, the processor may include a register bank separate from the architectural register file. Renaming logic can generate addresses to this separate register bank that are longer than used to address architectural registers, allowing longer vectors and more efficient processor operation.