SIMT Processor Shared Memory Emulation via Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing units (GPUs) and single instruction, multiple thread (SIMT) processors face inefficiencies in shared memory usage, leading to suboptimal performance in graphics and general-purpose computing tasks.

Innovation Solution

Implementing a shared memory architecture with multiple lesser-read and lesser-write ported memories that emulate greater-read and greater-write ported shared memory, along with specialized instructions like WriteX, to enhance data access and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a shared memory architecture with multiple lesser-read and lesser-write ported memories is implemented, then data access efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidmemory architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared memory is divided into multiple separate memory modules, each with its own read and write ports. This segmentation allows multiple processor elements to access different memory modules simultaneously, improving data access efficiency while managing complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A memory management unit or controller acts as an intermediary between processor elements and the segmented memory modules. This intermediary coordinates access requests, manages port allocation, and maintains the illusion of a unified high-port memory system, thereby improving access efficiency without exposing the full complexity to processor elements

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If specialized instructions like WriteX are implemented, then processing efficiency is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinstruction usage complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The specialized WriteX instructions modify specific parameters of the memory write operation, such as the number of ports used or the data format. By changing these parameters, the system can optimize processing efficiency for different operation types while maintaining a consistent instruction interface

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The WriteX instruction family provides a universal interface that handles multiple types of memory operations through a single instruction format. Different variants of WriteX cover various scenarios (different port counts, data widths, etc.), improving processing efficiency across diverse operations while simplifying the instruction set compared to having separate instructions for each case

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

Data Source

PatentEP4575773A1Virtual multi-port memory processors, methods, systems, and instructions
Publication Date: 2025.06.25 ALTERA CORP
  • EP4575773A1 patent drawingFigure 1
  • EP4575773A1 patent drawingFigure 2A
  • EP4575773A1 patent drawingFigure 2B

AI summary

A processor includes a shared memory, and an instruction unit to receive a single instruction, multiple thread (SIMT) instruction having a first source register identifier and a second source register identifier. The SIMT instruction indicates a number of data values to be written to the shared memory concurrently. A SIMT processor includes processor elements each to execute instructions of a different corresponding thread of a parallel thread group. Each of a number of processor elements, equal in number to the number of data values, is to execute the SIMT instruction to concurrently write a different corresponding one of the number of data values from a first source register of the respective processor element identified by the first source register identifier to the shared memory at an address based on address information from a second source register of the respective processor element identified by the second source register identifier.