Coarse Fine Shifting Circuitry for Binary Number Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems face performance constraints when performing shift functions on binary numbers, particularly in situations where the leading zero count is required quickly for operations like floating-point normalization, as existing techniques do not produce the count quickly enough.
Innovation Solution
The shift function is split into coarse and fine shifting operations, where coarse shifting circuitry performs an initial shift in parallel with count determination, allowing for quicker application of the shift function while still capturing the count value for other components, and fine shifting adjusts based on the actual count value.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the leading zero count is determined before performing the shift operation, then the shift function can be performed accurately, but the overall processing speed is reduced due to sequential operation
Solution Approach 1:
The coarse shifting circuitry performs an initial shift operation on the binary number before the complete leading zero count is available. This preliminary action uses a predetermined number of contiguous bit positions to determine whether those positions have the predetermined bit value, allowing the shift to start in parallel with the count determination process.
Solution Approach 2:
The shift operation is divided into two segments: a coarse shift performed by coarse shifting circuitry that operates in parallel with count determination, and a fine shift performed by fine shifting circuitry that uses the complete leading zero count. This segmentation allows different parts of the shift operation to proceed at different times with different levels of information availability.
2Productivity
If the shift operation waits for the complete leading zero count, then accurate shifting is achieved, but performance is constrained due to sequential processing
Solution Approach 1:
The system performs preliminary coarse shifting action while waiting for the complete leading zero count to be determined. This allows the data processing pipeline to remain active and productive during the count determination period, rather than idle-waiting for the count value.
Solution Approach 2:
The coarse shifting circuitry continues to perform useful shifting work in parallel with the count determination process, ensuring that the data processing operation continues without interruption. The fine shifting circuitry then completes the operation once the count is available, maintaining continuous productive action throughout.
3Speed
If coarse shifting is performed in parallel with count determination, then shift speed is improved, but device complexity increases due to additional circuitry
Solution Approach 1:
The shifting function is segmented into coarse shifting circuitry and fine shifting circuitry, each with specific roles. The coarse shifting circuitry handles the parallel operation with simplified logic that checks predetermined bit positions, while the fine shifting circuitry handles the precise adjustment. This segmentation distributes complexity across specialized components rather than requiring one complex circuit.
Solution Approach 2:
The coarse shifting circuitry performs preliminary shifting action using a predetermined number of contiguous bit positions, which simplifies the parallel processing logic. This preliminary action reduces the complexity of the parallel circuitry by using fixed, predetermined parameters rather than requiring dynamic analysis of all possible bit positions.
Data Source
AI summary
A data processing apparatus and method are provided for performing a shift function on a binary number. The apparatus comprises count determination circuitry for determining a number of contiguous bit positions in the binary number that have a predetermined bit value, the count determination circuitry outputting a count value indicative of the number of contiguous bit positions determined. In parallel with the operation of the count determination circuitry, coarse shifting circuitry is used to determine, for at least one predetermined number of contiguous bit positions, whether that predetermined number of contiguous bit positions within the binary number has said predetermined bit value. An initial shift operation is then performed on the binary number based on that determination in order to produce an intermediate binary number. Once the count value is available from the count determination circuitry, fine shifting circuitry then performs a further shift operation on the intermediate binary number, based on the count value output by the count determination circuitry, in order to produce the result binary number. This provides an efficient mechanism for performing a shift function on a binary number, while still capturing the count value from the count determination circuitry.


