Probability-Based Bus Encoding for Lower Power Memory Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
External memory accesses in computing systems consume a significant amount of power, particularly due to the capacitance of the bus, and existing methods like bus-invert coding require additional hardware and become inefficient as the number of bits compared increases.
Innovation Solution
A method of encoding data values by mapping them to a pre-defined set of codes based on probability distribution, reducing the Hamming Weight or bit flips, which can be transmitted over external buses without requiring additional bus lines, suitable for both fixed and non-specialized memories.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If bus-invert coding is used to reduce transitions in transmitted data, then power consumption is reduced, but additional bus lines and hardware are required
Solution Approach 1:
The patent changes the parameter being optimized from transition reduction to Hamming weight reduction. By mapping input values to codes with lower Hamming weight (fewer 1s), the system reduces power consumption without requiring additional bus lines or complex hardware. The encoding scheme transforms data based on statistical properties (probability distribution) rather than transition patterns.
Solution Approach 2:
Instead of inverting data values conditionally based on transition detection (as in bus-invert coding), this patent inverts the approach by directly mapping to codes with desired Hamming weight characteristics. The encoding is performed once based on probability distribution, avoiding the need for conditional inversion logic and additional control bus lines.
2Use of energy by moving object
If bus-invert coding compares current and next data values to determine encoding, then transitions are reduced, but the comparison process becomes inefficient as the number of bits increases
Solution Approach 1:
The patent performs preliminary action by pre-defining a set of codes with optimal Hamming weight properties and pre-determining the probability distribution of input values. This allows direct mapping without real-time comparison of current and next values, eliminating the inefficient bit-by-bit comparison process that degrades performance with increasing bit width.
Solution Approach 2:
The patent replaces the mechanical comparison process (bit-by-bit analysis of current and next values) with a statistical mapping approach. Instead of mechanically comparing bits to determine inversion, the system uses pre-computed probability distributions and Hamming weight characteristics to directly select optimal codes, significantly improving encoding efficiency.
3Use of energy by moving object
If data is encoded to reduce Hamming Weight or bit flips, then power consumption during transmission is reduced, but the encoding complexity increases
Solution Approach 1:
The patent resolves this contradiction by performing preliminary action through pre-computation. The probability distribution of input values and the optimal code mappings are determined in advance, allowing the encoding process to simply look up and select pre-determined codes based on input value characteristics, rather than performing complex real-time optimization.
4Productivity
If additional bus lines are used to transmit encoding codes, then data transmission efficiency is improved, but the bus width and hardware requirements increase
Solution Approach 1:
The patent applies universality by using the existing bus infrastructure for both data transmission and encoding information conveyance. The encoded values are transmitted through the normal data bus without requiring separate control lines or additional bus width, making the solution universally applicable to existing memory interfaces without hardware modifications.
Data Source
AI summary
A method of encoding data values comprises mapping each of a plurality of input values to one of a pre-defined set of codes based on a probability distribution of the input values. In various examples an input value may be mapped to a code having the same bit-length as the input value and in other examples, the code may be longer than the input value. In various examples, the input values may be grouped into data words and may additionally comprise one or more padding bits.


