Virtual Copy Lookup Table for Multithreaded State Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded processors face inefficiencies in managing multiple versions of state information, leading to idle time and resource wastage due to the need for separate state registers for each thread, especially when the number of concurrent threads and state information increases.

Innovation Solution

Configurable lookup tables with management schemes that optimize storage and updating of state information using multiple memory circuits, allowing for parallel copying or virtual copying of state versions, depending on the number of items and versions, to efficiently manage state information across threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If separate state registers are provided for each thread, then each thread can access different versions of state information simultaneously, but the device complexity and resource consumption increase significantly

Engineering Contradiction:
Improveparallel thread execution capabilityVSAvoidstate register space requirements
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The state information is segmented into multiple versions stored in a shared lookup table, with each version accessible to threads through versioned entries. This allows multiple threads to access different state versions simultaneously without requiring separate dedicated registers for each thread, reducing overall resource consumption while maintaining parallel execution capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A single shared lookup table serves multiple threads by storing multiple versions of state information that can be accessed concurrently. The lookup table acts as a universal storage structure that replaces the need for thread-specific dedicated registers, enabling any thread to access any version of state information as needed.

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

2Productivity

If the number of concurrent threads and state information increases, then the processor throughput improves, but the resource requirements for separate state registers become prohibitively expensive

Engineering Contradiction:
Improveprocessor throughputVSAvoidstate register space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Multiple thread-specific state registers are merged into a single shared lookup table that stores multiple versions of state information. This consolidation allows the system to support a large number of concurrent threads with diverse state information requirements without proportionally increasing the total register space, as the shared structure serves all threads collectively.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of expanding the register space dimension to accommodate more threads and state information, the system introduces a versioning dimension within a fixed-size lookup table. By storing multiple versions of state information in the same physical space and using version identifiers to distinguish between them, the system can support more threads without increasing the base register space requirement.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Ease of operation

If state information is updated while threads are executing, then the system remains responsive, but idle time increases when threads must wait for state updates to complete

Engineering Contradiction:
Improvestate information update capabilityVSAvoidthread idle time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

When state information needs to be updated, the system creates a new version of the state data in advance within the lookup table before the update is fully committed. Threads can then immediately access the new version without waiting for the update process to complete, eliminating idle time while maintaining data consistency. The versioning mechanism allows updates to occur transparently in the background.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of modifying state information in place which requires threads to wait, the system creates a copy of the state information as a new version in the lookup table. This copying approach allows threads to continue executing with the old version while the new version is prepared, eliminating the need for threads to idle while waiting for state updates to complete.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7404056B1Virtual copying scheme for creating multiple versions of state information
Publication Date: 2008.07.22 NVIDIA CORP
  • US7404056B1 patent drawing
  • US7404056B1 patent drawing
  • US7404056B1 patent drawing

AI summary

State information in a processor is managed using a lookup table that has multiple memory circuits, each with multiple entries. Items of state information belonging to a current state version are stored in a first group of entries in the memory circuits. To create an updated state version, a virtual copy of each of the items of state information is created in a second group of entries in the memory circuits, and the virtual copy of the item being updated is replaced with a real copy of the item from the first group of entries. The item in the first group of entries is then updated.