PIM MAC Address Stride Update for Faster Convolution Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face inefficiencies in determining addresses for different portions of data matrices during convolution operations when striding is used, leading to delays in performing convolution operations as addresses are provided by a host, which can slow down processing.
Innovation Solution
The implementation of additional registers in the memory system to store stride values, counter values, and threshold values, along with first and second adder circuitry, enables the MAC engine to locally update addresses for vertical and horizontal striding, allowing for efficient convolution operations without relying on host-provided addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If addresses are provided by a host during convolution operations, then the memory system can perform convolution operations, but the processing speed is slowed down due to address determination delays
Solution Approach 1:
The memory system performs address determination autonomously using internal components (adder circuitry, registers for stride/counter/threshold values) without requiring host intervention. The MAC engine locally updates addresses for vertical and horizontal striding, enabling the system to serve itself and eliminate waiting time for host-provided addresses.
Solution Approach 2:
The memory system pre-loads stride values, counter values, and threshold values into registers before convolution operations begin. This preliminary preparation of address update parameters enables rapid local address determination during operation, eliminating the need for real-time host address provision.
2Productivity
If additional registers and adder circuitry are added for local address updates, then convolution operations can proceed without host address provision, but the device complexity increases
Solution Approach 1:
The additional registers and adder circuitry serve multiple functions: storing stride values for vertical striding, counter values for horizontal striding, threshold values for operation control, and performing address arithmetic. This multi-functionality justifies the added components by enabling autonomous address determination that eliminates host dependency and improves throughput.
Data Source
AI summary
An address can be updated to perform convolution operations. Updating an address can include determining, at a MAC engine coupled to an array of memory cells, a first address of first data and accessing the first data using the first address from the array. Updating the address can also include performing, at the MAC engine, a first convolution operation using the first data. Updating the address can further include determining, at the MAC engine, a second address of second data using a stride corresponding to the convolution operation and accessing the second data using the second address from the array. Updating the address can also include performing, at the MAC engine, the second convolution operation using the second data.


