Block Floating Point
The current limitation for the use of BPU for scientific simulations is the lack of floating point numbers, and while there are libraries that implement floating-point numbers in FPGAs these are large, and thus take up much of the available gates in the FPGA. They are also rather slow and thus results in a higher cycle-time. However, the need for floating-point in scientific computing is not always very strict. In many areas, including climate modeling, the simulated values for a single parameter, i.e. temperature, pressure, salinity, etc., comfortably stays within two orders of magnitude. Thus it is possible to represent a climate-model such that each parameter is an array of integer values, associated with a common exponent. This way the FPGAs can be used to process only integers, which it is very efficient at, and only when an operation works on two parameters with very different exponents must these scalar exponent values undergo complex processing. This approach is not new, it was a common software technology in the 1960s and early 1970s before the introduction of floating-point arithmetic in CPUs. Thus the feasibility of the technique is demonstrated, though not in hardware and not on modern scientific problems.