Self-Refilling Instruction Buffer via DMA Ring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, the instruction buffer for execution engines is often smaller than the instruction code, requiring frequent reloading during inference processes, which can be inefficient due to the need for external monitoring and resource usage.

Innovation Solution

Implementing a self-refilling mechanism where the execution engine uses a DMA controller to automatically refill the instruction buffer during execution, splitting the instruction code into sections and using a refill DMA ring to manage the loading process, eliminating the need for external monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the instruction buffer is refilled using external monitoring and control, then the instruction buffer can be refilled, but the processing time increases and resource usage increases due to external intervention

Engineering Contradiction:
Improveprocessing timeVSAvoidexternal monitoring requirement
Core Design Contradiction:
Loss of timeVSExtent of automation

Solution Approach 1:

The execution engine performs self-refilling of the instruction buffer by automatically detecting when the buffer is empty and triggering DMA operations to load new instructions without external monitoring or control intervention. This eliminates the need for external entities to monitor buffer status and manage refilling operations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system pre-loads instructions into the instruction buffer using DMA controllers before the buffer becomes empty. The refill DMA ring is configured in advance with instruction sections that can be automatically loaded when space is available, eliminating waiting time during execution.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the instruction buffer is refilled frequently during inference, then the instruction code can be updated, but the execution efficiency decreases due to repeated reloading operations

Engineering Contradiction:
Improveexecution efficiencyVSAvoidrefilling time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The execution engine continues executing instructions in the instruction buffer while the DMA controller simultaneously loads new instructions into the buffer. This parallel operation ensures continuous useful action without interruption, as the refilling process does not wait for execution to complete.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The instruction code is divided into multiple sections that can be independently loaded into the instruction buffer. The refill DMA ring manages these sections, allowing selective loading of instruction segments without requiring complete buffer replacement, thus reducing refilling time and maintaining execution efficiency.

Inventive Principle:
Principle #1Segmentation

3Reliability

If an external entity monitors and controls the instruction buffer refilling, then the refilling can be managed, but the device complexity increases due to additional monitoring and control mechanisms

Engineering Contradiction:
Improverefilling controlVSAvoidmonitoring and control structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The execution engine includes built-in logic to automatically detect when the instruction buffer is empty and triggers refilling without requiring external monitoring entities. The system uses internal pointers or counters to track buffer status and manages the refilling process autonomously, eliminating complex external control structures.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The DMA controller acts as an intermediary between the execution engine and the instruction buffer, automatically managing the refilling process. The refill DMA ring serves as a mediator that coordinates instruction loading without requiring external monitoring, simplifying the overall system architecture while maintaining reliable refilling control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10592250B1Self-refill for instruction buffer
Publication Date: 2020.03.17 AMAZON TECH INC
  • US10592250B1 patent drawing
  • US10592250B1 patent drawing
  • US10592250B1 patent drawing

AI summary

Disclosed herein are techniques for self-refilling an instruction buffer by an execution engine while the execution engine executes instructions in the instruction buffer. An instruction loader splits instruction code into sections of code and creates a data store (e.g., a DMA ring) for loading the sections of code into the instruction buffer. In some embodiments, an instruction is added to some sections of code. The instruction, when executed by the execution engine, triggers the loading of one or more sections of code into the instruction buffer based on one or more entries in the data store. In some embodiments, a hardware logic in the execution engine is configured to trigger the loading of the sections of code into the instruction buffer. In some embodiments, the one or more sections of code are loaded into the instruction buffer through a refill page that is different from the instruction buffer.