Coprocessor Distributed Register Grid

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing coprocessor designs face inefficiencies in operand and result storage, particularly in distributing memory across processing elements, leading to increased power consumption and area requirements due to lengthy wiring connections.

Innovation Solution

A coprocessor architecture featuring a grid of processing elements with a distributed Z memory that allows each processing element to update a portion of the result memory, reducing wiring complexity and enhancing storage efficiency by localizing memory access within the coprocessor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If memory is distributed across processing elements, then memory access latency is reduced, but wiring complexity and area requirements increase

Engineering Contradiction:
Improvememory access latencyVSAvoidwiring complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The result memory is segmented into multiple portions, with each processing element having direct access to its local portion. This segmentation allows parallel access to different memory portions by different processing elements, reducing overall memory access latency while distributing the wiring burden across multiple smaller connections rather than one large centralized connection.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If memory is distributed across processing elements, then memory access latency is reduced, but area requirements increase

Engineering Contradiction:
Improvememory access latencyVSAvoidarea requirements
Core Design Contradiction:
Loss of timeVSArea of stationary object

Solution Approach 1:

Each processing element is given local access to a specific portion of the result memory, creating local quality in the memory architecture. This allows each processing element to quickly access its designated memory portion without competing for bandwidth with other elements, reducing latency while optimizing the area distribution across the coprocessor.

Inventive Principle:
Principle #3Local quality

3Device complexity

If centralized memory is used, then wiring complexity is reduced, but power consumption increases due to lengthy connections

Engineering Contradiction:
Improvewiring complexityVSAvoidpower consumption
Core Design Contradiction:
Device complexityVSUse of energy by moving object

Solution Approach 1:

The memory architecture transitions from a centralized single-dimension model to a distributed multi-dimension model where each processing element has access to its local memory portion. This dimensional change in memory organization reduces the average distance data must travel, lowering power consumption while maintaining manageable wiring complexity through structured distribution.

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

Data Source

PatentUS10846091B2Coprocessor with distributed register
Publication Date: 2020.11.24 APPLE INC
  • US10846091B2 patent drawing
  • US10846091B2 patent drawing
  • US10846091B2 patent drawing

AI summary

In an embodiment, a coprocessor includes multiple processing elements arranged in a grid of one or more rows and one or more columns. A given processing element includes an arithmetic/logic unit (ALU) circuit configured to perform an ALU operation specified by an instruction executable by the coprocessor, wherein the ALU circuit is configured to produce a result. The given processing element further comprises a first memory coupled to the execute circuit. The first memory is configured to store results generated by the given processing element. The first memory includes a portion of a result memory implemented by the coprocessor, wherein locations in the result memory are specifiable as destination operands of instructions executable by the coprocessor. The portion of the result memory implemented by the first memory is the portion of the result memory that the given processing element is capable of updating.