Memristor Dot Product Engine With Sign Encoding for Lower ADC Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing machine learning architectures, particularly convolutional neural networks (CNNs) and deep neural networks (DNNs), face inefficiencies in dot product operations due to high overheads from Analog-to-Digital Converters (ADCs) in memristor dot product engines, which hinder computation efficiency and energy consumption.
Innovation Solution
A data encoding technique that reduces ADC precision by one bit, allowing for increased ADC accuracy, and leveraging memristor crossbar arrays to perform in-situ analog dot product computations, thereby reducing the overhead of ADCs and enhancing computation efficiency through parallelism.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If ADC precision is increased to maintain computation accuracy, then measurement precision is improved, but device complexity and energy consumption increase
Solution Approach 1:
The patent segments the weight values into two parts: a magnitude component stored in the memristor array and a sign component stored separately in a sign bit array. This segmentation allows the ADC to process only the magnitude information with reduced precision requirements, while the sign information is handled separately through digital logic operations, thereby reducing ADC overhead and complexity
Solution Approach 2:
The patent introduces a sign bit array as an intermediary structure that stores the polarity information of weight values separately from the magnitude information. This intermediary allows the system to decouple the sign handling from the ADC processing, enabling the ADC to operate at lower precision while maintaining overall computation accuracy through subsequent digital sign operations
2Measurement precision
If ADC precision is increased to maintain computation accuracy, then measurement precision is improved, but use of energy increases
Solution Approach 1:
By segmenting weight representation into magnitude and sign components, the patent enables the ADC to process only magnitude information at reduced precision, significantly lowering the energy consumption of ADC operations while maintaining computational accuracy through separate sign bit handling
Solution Approach 2:
The patent changes the parameter representation by storing weights in a segmented format where only the magnitude portion requires high-precision ADC conversion, while the sign portion is handled through low-power digital logic, thereby reducing overall energy consumption of the dot product engine
3Productivity
If memristor array height is increased to store more weight data, then productivity is improved, but device complexity increases
Solution Approach 1:
The patent segments the weight storage function across two separate structures: the memristor array stores magnitude information while a sign bit array stores polarity information. This segmentation allows the memristor array to be optimized for analog computation without the complexity of storing full precision signed values, enabling increased array height for higher productivity
Solution Approach 2:
The patent adds a new dimension to weight storage by introducing the sign bit array as a separate storage dimension. This allows the system to increase memristor array height for higher computation throughput while maintaining manageable complexity by distributing storage requirements across multiple dimensions rather than increasing complexity within a single structure
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach results in a two-fold increase in memristor array height or one more bit per cell without losing precision, significantly reducing ADC overhead and energy consumption, leading to improved computation efficiency and increased parallelism in dot product operations.
Implementation Method 1
perform a dot product operation on the input vector and a stored vector stored in the memory array, and output an analog signal representing a result of the dot product operation
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Examples disclosed herein include a dot product engine, which includes a resistive memory array to receive an input vector, perform a dot product operation on the input vector and a stored vector stored in the memory array, and output an analog signal representing a result of the dot product operation. The dot product engine includes a stored negation indicator to indicate whether elements of the stored vector have been negated, and a digital circuit to generate a digital dot product result value based on the analog signal and the stored negation indicator.