PIM MAC Pipeline with Concurrent ECC and Error Compensation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Processing-in-memory (PIM) devices face challenges in efficiently performing multiplication and accumulation (MAC) operations due to errors in data stored within the device, which can degrade the performance of artificial intelligence applications, especially deep learning processes.
Innovation Solution
A method is implemented in PIM devices to execute MAC calculations by simultaneously performing error correction code (ECC) calculations and multiplying operations. This method involves outputting data and parity from a storage region, executing ECC and multiplying calculations, generating an error code to identify error locations, and compensating multiplication results when errors are detected.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error correction code (ECC) calculation is performed separately before multiplication, then data accuracy is improved, but processing time increases
Solution Approach 1:
The patent merges the ECC calculation and multiplication operations into a single unified process. The multiplication unit performs both error correction and multiplication simultaneously by receiving input data, performing ECC calculation on it, and then multiplying the corrected data with weight data in one continuous operation flow, eliminating the need for separate sequential execution of these operations.
Solution Approach 2:
The patent implements preliminary error detection and correction within the multiplication pipeline. The ECC calculation is performed on input data before the multiplication operation begins, and error compensation is pre-calculated and applied during the multiplication process, ensuring that error correction is completed before the final multiplication result is produced.
2Ease of manufacture
If ECC calculation and multiplication are performed sequentially, then each operation can be optimized independently, but overall processing speed decreases
Solution Approach 1:
The patent combines multiple operations (ECC calculation, multiplication, and error compensation) into a single integrated processing unit. This unified multiplication unit executes all operations in parallel within one processing cycle, maintaining the ability to optimize each operation independently through dedicated circuitry while achieving high-speed concurrent execution.
Solution Approach 2:
The patent ensures continuous processing by eliminating idle time between operations. The multiplication unit continuously processes data through the entire pipeline from input reception to final output, with ECC calculation, multiplication, and error compensation all occurring in an unbroken sequence without intermediate pauses or data re-fetching operations.
3Productivity
If error correction is performed after multiplication, then multiplication speed is improved, but result accuracy decreases
Solution Approach 1:
The patent performs error correction as a preliminary action before multiplication occurs. The ECC calculation is executed on the input data first, identifying and correcting errors before the multiplication operation begins. This ensures that the multiplication is performed on corrected data, maintaining both speed and accuracy.
Solution Approach 2:
The patent implements feedback mechanisms where the multiplication unit monitors the ECC calculation results and adjusts the multiplication operation accordingly. Error compensation values are fed back into the multiplication process, allowing the system to correct errors while maintaining the multiplication speed by using the feedback information to adjust calculations in real-time.
Data Source
AI summary
There is provided a method of executing a multiplication and accumulation (MAC) calculation in a PIM device. The method may include outputting first data and a parity from a first storage region, outputting second data from a second storage region, simultaneously executing an error correction code (ECC) calculation of the first data and the parity and a multiplying calculation of the first and second data, generating an error code indicating an error location of the first data as a result of the ECC calculation, outputting multiplication result data corresponding to a result of the multiplying calculation when no error exists in the first data based on the error code, and executing a compensating calculation of the multiplication result data to output the compensated multiplication result data when an error exists in the first data based on the error code.


