Coprocessor Pipelined Memory Fill Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory filling operations in computing typically underutilize hardware resources as they are performed by a single execution thread, limiting throughput and causing available hardware to idle.

Innovation Solution

The technique involves distributing memory ranges to multiple coprocessors, allowing them to fill memory locations in parallel through a pipelining process, where subsets of memory ranges are assigned and filled concurrently, with coprocessors maintaining a queue of fill commands to buffer a backlog and the CPU operating as an additional coprocessor for horizontal scaling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory filling is performed by a single execution thread, then the implementation is simple, but the throughput is limited and hardware resources are underutilized

Engineering Contradiction:
Improvememory filling throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the memory filling task into multiple segments distributed across different coprocessors. Each coprocessor handles a specific subset of memory ranges, allowing parallel processing and significantly increasing throughput while maintaining manageable complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-thread sequential processing to multi-coprocessor parallel processing by adding a spatial dimension to the execution model. Multiple coprocessors operate simultaneously on different memory ranges, transforming the execution architecture from one-dimensional sequential to multi-dimensional parallel processing

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

2Productivity

If multiple coprocessors are used for parallel memory filling, then throughput increases, but system complexity increases

Engineering Contradiction:
Improvememory filling throughputVSAvoidcoprocessor coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The host computer acts as an intermediary that manages and coordinates the multiple coprocessors. It distributes memory range subsets to coprocessors, monitors their status, and maintains command queues, thereby abstracting the complexity of multi-coprocessor coordination while enabling high-throughput parallel memory filling operations

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If coprocessors process memory ranges sequentially, then resource utilization is low, but system complexity remains manageable

Engineering Contradiction:
Improvehardware utilizationVSAvoidpipelining complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a pipelining mechanism where the host computer continuously feeds memory filling commands to coprocessors through maintained queues. While coprocessors are executing fill operations, the host prepares and queues additional commands, ensuring continuous utilization of coprocessor resources without idle time and maximizing hardware efficiency

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10387061B2Performance of coprocessor assisted memset( ) through heterogeneous computing
Publication Date: 2019.08.20 ORACLE INT CORP
  • US10387061B2 patent drawing
  • US10387061B2 patent drawing
  • US10387061B2 patent drawing

AI summary

Techniques herein perform coprocessor assisted memory filling in a pipeline. A computer receives a request to fill multiple ranges of memory addresses with a value. The computer selects a first subset of the multiple ranges and distributes the first subset of ranges to multiple coprocessors. The coprocessors begin to fill the memory locations of the first subset of ranges with the value. At the same time as the coprocessors fill the first subset of ranges, the computer selects a second subset of the multiple ranges of memory addresses. Also while the coprocessors are still filling the first subset of ranges, the computer distributes the second subset of ranges to the coprocessors This overlapping activity achieves a processing pipeline that can be extended for any amount of additional subsets of memory ranges.