Vertical ECC for DNN Weight Storage in Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face a trade-off between data integrity and performance due to the use of error correction codes (ECC), where stronger ECC provides greater data integrity but at the cost of lower performance and reduced memory space, especially when storing data sets that can tolerate some level of error, such as Deep Neural Network weights.
Innovation Solution
Implementing a 'vertical' ECC approach, where bits of the same significance are grouped into streams and encoded with varying levels of ECC strength, with more significant bits receiving stronger ECC and lesser significant bits receiving weaker ECC, optimizing ECC overhead while maintaining data accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If stronger ECC is used to improve data integrity, then error correction capability is improved, but memory performance and storage efficiency deteriorate
Solution Approach 1:
The patent applies different ECC strengths to different parts of the data based on their significance. More significant bits (MSBs) that require higher accuracy are protected with stronger ECC, while less significant bits (LSBs) that can tolerate more error are protected with weaker ECC. This local differentiation resolves the contradiction by optimizing the balance between data integrity and performance for each bit position rather than applying uniform ECC strength to all data.
2Reliability
If stronger ECC is used to improve data integrity, then error correction capability is improved, but storage space available for user data deteriorates
Solution Approach 1:
By applying stronger ECC only to MSBs and weaker ECC to LSBs, the patent reduces the total amount of ECC overhead required compared to uniform strong ECC protection. This local quality approach allows more memory space to be allocated to user data while maintaining appropriate data integrity for each bit's significance level.
3Reliability
If stronger ECC is used to improve data integrity, then error correction capability is improved, but encoding and decoding complexity increases
Solution Approach 1:
The patent reduces encoding and decoding complexity by applying weaker ECC algorithms to LSBs that can tolerate more error, rather than using strong ECC for all bits. This local differentiation optimizes the computational resources required for ECC operations while maintaining sufficient data integrity for each bit position's accuracy requirements.
Data Source
AI summary
Techniques are presented for efficiently storing deep neural network (DNN) weights or similar type data sets in non-volatile memory. For data sets, such as DNN weights, where the elements are multi-bit values, bits of the same level of significance from the elements of the data set are formed into data streams. For example, the most significant bit from each of the data elements are formed into one data stream, the next most significant bit into a second data stream, and so on. The different bit streams are then encoded with differing strengths of error correction code (ECC), with streams corresponding to more significant bits encoded with stronger ECC code than streams corresponding to less significant bits, giving the more significant bits of the data set elements a higher level of protection.


