Configurable Vector Register File for Thread Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors face challenges in migrating running programs between cores with different maximum vector lengths due to varying architectural vector register lengths, leading to inefficient use of hardware resources and incorrect results when emulating a processor with a shorter vector length.

Innovation Solution

A configurable vector register file that allows emulation of a processor core with a smaller maximum vector length by partitioning vector registers into disjoint portions, enabling efficient use of datapaths and power management, and routing operands between segments to optimize execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor uses a fixed maximum vector length configuration, then the hardware resources are optimized for that specific length, but thread migration between cores with different vector lengths becomes impossible

Engineering Contradiction:
Improvethread migration capabilityVSAvoidvector length compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The vector register file is configured dynamically based on the effective vector length parameter. When emulating a processor with a smaller maximum vector length, the system reconfigures the vector register file to present only the necessary portion of registers, enabling thread migration while maintaining correct emulation behavior.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The vector register file is divided into multiple segments or portions, where only the relevant segment corresponding to the effective vector length is activated during emulation. This segmentation allows the same physical hardware to support multiple logical configurations for different thread migration scenarios.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the processor emulates a smaller maximum vector length by using only a portion of the vector register file, then thread migration is enabled, but hardware resource utilization becomes inefficient

Engineering Contradiction:
Improvevector length emulationVSAvoidhardware resource utilization
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The vector register file is designed to serve multiple purposes: it can be fully utilized when running native code at the processor's maximum vector length, and it can be reconfigured to emulate smaller vector lengths for thread migration. This multi-functionality ensures that the same hardware resources are efficiently used regardless of the operational mode.

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

3Reliability

If the processor configures the vector register file for the native maximum vector length, then full throughput is achieved, but emulating a processor with a shorter vector length produces incorrect results

Engineering Contradiction:
Improveemulation accuracyVSAvoidexecution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system changes the effective vector length parameter to match the target processor's maximum vector length during emulation. This parameter change ensures that vector instructions are executed with the correct register width and spacing, producing accurate results while maintaining efficient use of the underlying hardware through appropriate reconfiguration.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240020124A1Supporting Multiple Vector Lengths with Configurable Vector Register File
Publication Date: 2024.01.18 SIFIVE INC
  • US20240020124A1 patent drawing
  • US20240020124A1 patent drawing
  • US20240020124A1 patent drawing

AI summary

Systems and methods are disclosed for supporting multiple vector lengths with a configurable vector register file. For example, an integrated circuit (e.g., a processor) includes a data store configured to store a vector length parameter; a processor core including a vector register, wherein the processor core is configured to: while a first value of the vector length parameter is stored in the data store, store a single architectural register of an instruction set architecture in the vector register; and, while a second value of the vector length parameter is stored in the data store, store multiple architectural registers of the instruction set architecture in respective disjoint portions of the vector register. For example, the integrated circuit may be used to emulate a processor with smaller vector registers for the purpose of migrating a thread to a processor core of the integrated circuit for continued execution.