Hardware Coroutines for Stall-Free Linked Data Traversal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software solutions for linked data structure traversal suffer from frequent memory stalls, suboptimal interleaving of concurrent threads, excessive context switching overhead, and limitations in thread scheduling, leading to poor memory bandwidth utilization and inefficient CPU usage, particularly in high-volume index lookups.

Innovation Solution

A hardware-accelerated approach using asynchronous memory operations and coroutine-aware hardware accelerators to implement stall-free execution pipelining and flexible coroutine scheduling, allowing memory requests every cycle and eliminating context switching overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If software-only solutions with prefetching and thread scheduling are used, then memory utilization may be improved, but CPU cycles are wasted due to context switching overhead and pipeline stalls

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidCPU cycle waste
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent replaces software-based thread scheduling and context switching with a hardware-accelerated coroutine execution mechanism. The hardware coroutine manager directly manages coroutine states and schedules execution at the hardware level, eliminating the overhead of software context switching and allowing continuous CPU operation without pipeline stalls caused by memory latency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent implements preliminary action through hardware-managed coroutine preemption and resumption. Coroutines are suspended and resumed at predetermined hardware-controlled points rather than waiting for software scheduling decisions. This allows the system to prepare and switch between coroutines in advance, preventing pipeline stalls before they occur.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multicore parallelism is used to improve memory utilization, then throughput increases, but silicon efficiency decreases due to power consumption of underutilized cores

Engineering Contradiction:
ImprovethroughputVSAvoidpower consumption per core
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the execution workflow into multiple coroutines that can be interleaved on a single core. Instead of requiring multiple full CPU cores to achieve parallelism, the system divides work into independent coroutine units that can execute sequentially on one core with hardware-managed suspension and resumption, maintaining high utilization of each core while achieving parallel processing throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic coroutine scheduling at the hardware level, allowing a single core to dynamically switch between multiple coroutines based on memory availability and execution state. This dynamic time-multiplexing approach allows one core to handle multiple tasks that would traditionally require multiple static cores, improving silicon efficiency while maintaining throughput.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If software thread scheduling is used to manage concurrent execution, then parallelism is achieved, but context switching overhead serializes compute tasks and decreases throughput

Engineering Contradiction:
Improveconcurrent thread managementVSAvoidcompute throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces software thread scheduling mechanisms with hardware-based coroutine management. The hardware coroutine manager directly controls coroutine suspension, resumption, and state preservation without involving software context switching. This substitution eliminates the overhead that serializes compute tasks, allowing concurrent coroutines to be managed adaptively while maintaining high compute throughput.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The hardware coroutine manager provides self-service by autonomously managing coroutine states and execution scheduling without requiring software intervention. The hardware system automatically handles context preservation, resumption, and interleaving of coroutines, enabling adaptable concurrent execution without the productivity penalty of software context switching overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250355718A1Hardware-accelerated coroutines for linked data structures
Publication Date: 2025.11.20 ORACLE INT CORP
  • US20250355718A1 patent drawing
  • US20250355718A1 patent drawing
  • US20250355718A1 patent drawing

AI summary

A computer assigns many threads to a hardware pipeline that contains a sequence of hardware stages that include a computing stage, a suspending stage, and a resuming stage. Each cycle of the hardware pipeline can concurrently execute a respective distinct stage of the sequence of hardware stages for a respective distinct thread. A read of random access memory (RAM) can be requested for a thread only during the suspending stage. While a previous state of a finite state machine (FSM) that implements a coroutine of the thread is in the suspending stage, a read of RAM is requested, and the thread is unconditionally suspended. While the coroutine of the thread is in the resuming stage, an asynchronous response from RAM is correlated to the thread and to a next state of the FSM. While in the computing stage, the next state of the FSM executes based on the asynchronous response from RAM.