Hardware Double Buffering for Neural Network Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently transferring large amounts of data exceeding the storage capacity of a single buffer in machine learning computations, particularly in neural networks, leading to increased computational demand and reduced processor bandwidth.

Innovation Solution

A special purpose computational unit employs double buffering with multiple memories and a buffer assignment element that switches between values to determine memory addresses using nested loops, allowing data to be split between multiple buffers, reducing the number of instructions and computational demand.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is transferred using a single buffer, then the buffer storage capacity is sufficient for small datasets, but the processor bandwidth and computational efficiency decrease when transferring large amounts of data exceeding buffer capacity

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the data transfer process into segments by implementing double buffering, where data is split between a first buffer and a second buffer. This allows continuous data transfer by alternating between buffers, improving productivity for large datasets while managing complexity through structured segmentation of the transfer process

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs nested loops within the buffer management system, where outer loops manage buffer switching and inner loops handle data element transfer. This nested structure enables efficient management of large data transfers by organizing complex operations into hierarchical control structures

Inventive Principle:
Principle #7Nested doll (Nesting)

2Speed

If hardware double buffering is implemented, then processor bandwidth and data transfer speed increase, but the device complexity and number of memory components increase

Engineering Contradiction:
Improvedata transfer speedVSAvoidmemory architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The data transfer operation is segmented into two parallel pathways using separate buffers, allowing simultaneous read and write operations. This segmentation enables faster data transfer by eliminating sequential bottlenecks while maintaining manageable memory architecture through clear division of labor between buffers

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary buffering where data is pre-loaded into one buffer while another buffer is being processed. This preliminary action allows continuous operation without waiting for data processing to complete, increasing transfer speed while keeping memory architecture simple through predetermined buffer allocation

Inventive Principle:
Principle #10Preliminary action

3Productivity

If manual buffer management is used, then memory control is straightforward for small datasets, but computational demand and instruction overhead increase for large datasets

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidbuffer control mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer management system operates autonomously using hardware-controlled buffer assignment elements that automatically switch between buffers based on data element sequences. This self-service mechanism reduces computational demand by eliminating manual buffer management overhead while maintaining straightforward control through automatic toggling between buffer states

Inventive Principle:
Principle #25Self-service

4Quantity of substance

If data exceeds single buffer capacity, then complete data storage is impossible in one buffer, but using multiple buffers increases address calculation complexity

Engineering Contradiction:
Improvedata storage capacityVSAvoidaddress determination complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the data storage across multiple buffers with clear capacity definitions, allowing complete data storage by distributing elements across buffer boundaries. Address calculation complexity is managed through segmentation by using systematic addressing schemes that account for buffer boundaries

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a buffer selection dimension to the address calculation system, where addresses incorporate both buffer identification and offset components. This dimensional approach enables complete data storage across multiple buffers while managing address complexity through structured multi-dimensional addressing

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

Data Source

PatentUS11099772B2Hardware double buffering using a special purpose computational unit
Publication Date: 2021.08.24 GOOGLE LLC
  • US11099772B2 patent drawing
  • US11099772B2 patent drawing
  • US11099772B2 patent drawing

AI summary

Methods, systems, and apparatus, including an apparatus for transferring data using multiple buffers, including multiple memories and one or more processing units configured to determine buffer memory addresses for a sequence of data elements stored in a first data storage location that are being transferred to a second data storage location. For each group of one or more of the data elements in the sequence, a value of a buffer assignment element that can be switched between multiple values each corresponding to a different one of the memories is identified. A buffer memory address for the group of one or more data elements is determined based on the value of the buffer assignment element. The value of the buffer assignment element is switched prior to determining the buffer memory address for a subsequent group of one or more data elements of the sequence of data elements.