Tuesday, July 12, 2016

[dltiqcyy] Optimizing counting in hardware

Incrementing a counter in a register either causes large latency (for a ripple carry adder) or large area (for carry lookahead), and possibly consumes the ALU which could be better utilized for more complicated arithmetic.  Can we avoid these by doing things differently?

For small numbers, e.g., counting to 63, unary.  For large numbers, maybe Gray code?  Add support in instruction sets and programming languages.  Need a type which supports incrementing and equality testing but not other arithmetic operations.

Might be a solution in search of a problem.  Is counting (ALU utilization) a significant bottleneck?

No comments :