Flooring Divide via Multiply Right Shift
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing techniques struggle to efficiently handle large amounts of data, particularly in neural network processing and graphics processing, due to hardware limitations such as register size constraints.
Innovation Solution
The method involves performing multiply with right shift instructions on portions of signed input data, selecting multipliers based on the sign of the data, and accumulating results to efficiently process data that exceeds the size capable by the hardware, thereby reducing hardware requirements and costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If hardware is designed to process large input data sizes directly, then processing capability is improved, but hardware complexity and cost increase
Solution Approach 1:
The patent divides large input data into multiple smaller portions that can be processed by existing hardware components. Each portion is processed separately through the multiply-with-right-shift instruction, and results are accumulated to produce the final flooring divide result. This segmentation allows the system to handle arbitrarily large input data sizes without requiring hardware designed for the full data size, thus maintaining processing capability while avoiding increased hardware complexity.
2Productivity
If hardware is designed to process large input data sizes directly, then processing capability is improved, but manufacturing cost increases
Solution Approach 1:
By segmenting large data processing into smaller portions handled by existing hardware, the patent eliminates the need to manufacture specialized hardware for large data processing. The system uses standard hardware components with a fixed instruction set, significantly reducing manufacturing costs while maintaining the ability to process large input data sizes through software-based division and accumulation of results.
Solution Approach 2:
The patent uses software instructions (multiply-with-right-shift) to replicate the functionality of dedicated large-data processing hardware. Instead of manufacturing physical hardware for each processing task, the system copies the essential processing logic into executable instructions that can be run on general-purpose processors, reducing manufacturing costs while preserving processing capability.
3Productivity
If register size is increased to handle larger data, then data processing capability is improved, but hardware resource requirements increase
Solution Approach 1:
The patent segments large data processing into smaller portions that fit within existing register size constraints. By processing data in chunks and accumulating results, the system achieves large data processing capability without requiring larger physical registers, thus maintaining productivity while reducing hardware resource requirements.
4Ease of manufacture
If the instruction set is simplified to reduce complexity, then ease of manufacture is improved, but processing versatility decreases
Solution Approach 1:
The patent makes the multiply-with-right-shift instruction universal by demonstrating its ability to perform flooring divide operations for arbitrarily large input data sizes when combined with data segmentation and result accumulation. This single instruction handles diverse processing needs (different data sizes, different divisor values) that would traditionally require multiple specialized instructions, thus improving ease of manufacture while maintaining or enhancing processing versatility.
Data Source
AI summary
Methods and apparatus for performing a flooring divide operation comprised of a plurality of multiply with right shift instructions. Wherein the multiply with right shift instructions comprises decoding the multiply with right shift instruction and obtaining a portion of signed input data. In response to the decoded instruction and receipt of signed input data portions, controlling processing circuitry to process the portion of the signed input data, selecting a multiplier based on a sign of the signed input data, such that when the sign is negative a first derived constant is selected, and when the sign is positive, a second derived constant is selected. Multiplied input data is then generated by multiplying the portion of the signed input data by the multiplier, and then shifting by the constant size. The shifted multiplied input data is then stored in a storage.


