Barrel-Threaded Processor With Shared Weight Registers for Arithmetic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors lack an efficient mechanism for concurrent threads to operate on shared operand values and thread-specific operands, particularly in applications like neural networks where multiple threads require common weights for operations such as convolutions.

Innovation Solution

A processor with a barrel-threaded execution unit and shared weights registers allows concurrent threads to access a common set of weights registers, enabling arithmetic instructions to perform operations using both shared and thread-specific operands, with the shared weights registers being implicit or explicitly specified by the opcode.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If each thread has its own separate arithmetic operand registers, then thread-specific operations are straightforward, but threads cannot efficiently share common operands like weights

Engineering Contradiction:
Improveoperand sharing capabilityVSAvoidregister file structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines separate thread-specific operand registers with shared weight operand registers into a unified register file structure. Multiple thread contexts can access the same weight registers simultaneously, enabling efficient operand sharing while maintaining thread-specific data in separate registers. This merging resolves the contradiction by allowing both thread-specific operations and shared operand access within a single integrated register file.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The register file is designed with universal weight registers that can be accessed by any thread context, making the register structure multi-functional. The same physical registers serve both thread-specific purposes (when exclusively accessed) and shared purposes (when accessed by multiple threads). This universality enables the register file to adapt to different operational modes without requiring separate dedicated structures.

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

2Productivity

If separate register files are used for each thread, then thread context isolation is maintained, but memory bandwidth and access efficiency are reduced

Engineering Contradiction:
Improveconcurrent thread execution efficiencyVSAvoidtotal register storage required
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Multiple thread contexts share a common register file structure rather than each thread having completely separate physical registers. The register file is organized to allow simultaneous access by multiple threads through context switching and selective enabling, reducing the total quantity of storage required while maintaining efficient concurrent execution through logical separation of thread data.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The register file is segmented into different regions or banks that can be independently accessed by different threads. Thread-specific operands are stored in dedicated segments while shared weight operands are stored in common segments. This segmentation allows parallel access patterns where multiple threads can simultaneously access different segments, improving productivity without requiring proportional increases in total storage capacity.

Inventive Principle:
Principle #1Segmentation

3Speed

If threads access shared weights sequentially, then register access is simplified, but execution throughput is limited

Engineering Contradiction:
Improveinstruction execution speedVSAvoidregister access control
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The register access control mechanism is made dynamic, allowing the system to switch between different access modes based on the current operational requirements. When threads need to access shared weights, the control logic dynamically enables simultaneous access paths rather than forcing sequential access. This dynamic adaptability increases execution speed while the control complexity is managed through hardware logic that automatically handles the switching based on context state.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

An intermediary control mechanism is introduced between the thread contexts and the shared weight registers. This intermediary layer manages access requests from multiple threads, resolving conflicts and enabling simultaneous access when possible. The mediator handles the complexity of access coordination, allowing threads to access shared weights at high speed without direct threads managing the complexity themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12367043B2Multi-threaded barrel processor using shared weight registers in a common weights register file
Publication Date: 2025.07.22 GRAPHCORE LTD
  • US12367043B2 patent drawing
  • US12367043B2 patent drawing
  • US12367043B2 patent drawing

AI summary

A processor comprising a barrel-threaded execution unit for executing concurrent threads, and one or more register files comprising a respective set of context registers for each concurrent thread. One of the one or more register files further comprises a set of shared weights registers common to some or all of the concurrent threads. The types of instructions defined in the instruction set of the processor include an arithmetic instruction having operands specifying a source and a destination from amongst a respective set of arithmetic registers of the thread in which the arithmetic instruction is executed. The execution unit is configured so as, in response to the opcode of the arithmetic instruction, to perform an operation comprising multiplying an input from the source by at least one of the weights from at least one of the shared weights registers, and to place a result in the destination.