32-bit integer division algorithm based on priority encoder UMESH DODAMANI 2KE21EC115 VAIBHAV KATAGAR 2KE21EC116 VARUN DHOTRAGAVI 2KE21EC120 Guide : Mr. Pramod R Department of Electronics and Communication Engineering
32-bit integer division algorithm based on priority encoder Objectives : Efficient Division Operation : To perform integer division quickly and efficiently by leveraging priority encoding to reduce computation time. Reduced Computational Complexity: By using a priority encoder, the algorithm aims to simplify the division process, minimizing the number of required operations compared to traditional division algorithms. Low Latency: Priority encoder-based division algorithms aim to reduce latency in the division process, providing faster results than standard iterative or restoring division methods. Scalability for High Bit-Width Divisions: The algorithm is designed to handle 32-bit integers, making it suitable for applications requiring high-precision calculations while maintaining efficiency. Power Efficiency: By reducing the number of computational steps, the algorithm aims to lower power consumption, which is beneficial for embedded systems and portable devices.
Motivations: Speed Optimization: Traditional division algorithms, like restoring or non-restoring division, can be slow due to multiple iterative steps. A priority encoder-based approach aims to accelerate the division process by leveraging parallelism and quick bit-position identification. Hardware Efficiency: Priority encoders are commonly used in hardware due to their simplicity and effectiveness in identifying the position of the highest-order bit. Using them in a division algorithm can streamline hardware design, reducing the need for complex circuitry and enabling more efficient use of resources in CPUs, GPUs, and FPGAs. Real-Time Applications: For applications such as signal processing, graphics processing, and other real-time computing tasks, minimizing division latency is important. A priority encoder-based approach can make division operations suitable for time-sensitive applications by significantly reducing the time it takes to produce a result. Minimization of Algorithmic Complexity: Division is generally a complex operation in both software and hardware. By focusing on a simpler, more efficient approach through priority encoding, the algorithm aims to reduce complexity, making it easier to implement and debug in hardware.
Literature survey: Books such as Digital Design by M. Morris Mano and CMOS VLSI Design by N. Weste and D. Harris explain priority encoders and their integration into digital circuits. IEEE paper such as “A 32-bit Integer Division Algorithm Based on Priority Encoder”-Firas Hassan, Ahmed Ammar, and Hayden Drennen ECCS Department, Ohio Northern University, Ada, OH, USA. Research papers on priority encoding in IEEE conferences (such as IEEE VLSI Circuits Symposium) provide insights into its applications in arithmetic logic units (ALUs) and CPU architectures. Papers on approximate computing discuss how priority encoding facilitates logarithmic approaches to integer operations, focusing on precision-speed trade-offs.
Methodologies: Use a priority encoder to identify MSBs of the dividend and divisor. Align divisor with dividend MSB and perform bitwise shifts and subtractions. Implement in hardware using shift registers, priority encoder circuits, and subtractors. Handle overflow/underflow and optimize for power efficiency. Simulate, verify, and prototype the algorithm in software and on hardware. Tailor for application-specific requirements, especially in real-time and embedded systems.
Algorithm: Integer Division Algorithm Input: Dividend (32-bit integer) Divisor (32-bit integer, assumed to be non-zero) Output: Quotient (32-bit integer) Remainder (32-bit integer) Steps: Check for Edge Cases Initialize Quotient and Determine Bit Positions Align the Divisor with the Dividend Perform Division Using Shifts and Subtractions Finalize the Quotient and Remainder Output / Result
Future scope: Extension to Larger Bit Sizes (e.g., 64-bit, 128-bit) Optimization for Parallel Processing Integration with Machine Learning and AI Hardware Enhanced Error Handling and Fault Tolerance Implementation in Low-Power Embedded Systems Algorithm Adaptation for FPGA and ASIC Design Application in Cryptography and Secure Computing
References: N. Takagi, S. Kadowaki and K. Takagi, "A hardware algorithm for integer division," 17th IEEE Symposium on Computer Arithmetic (ARITH'05), Cape Cod, MA, 2005, pp. 140-146. https://ieeexplore-ieee-org-vtuconsortia.knimbus.com/document/9294888 https://youtu.be/197hM5y3GO4?si=U0SBNgbN0psRORVT https://www.semanticscholar.org/paper/A-32-bit-Integer-Division-Algorithm-Based-on-Hassan-Ammar/5c6ad3eb047fb2606b7de8df1f52dddac8b02602