Multiplication of Floating Point Numbers on a Cell Matrix
 
 

 
Once floating point numbers are stored as a fractional part and an exponent (F,E), multiplying two numbers X1 and X2 amounts to multiplying (F1 * 2E1) * (F2 * 2E2), which gives ((F1*F2) * 2(E1+E2)). So floating point multiplication can be achieved via integer multiplication and integer addition.

Here is a photograph of a 32-bit floating point multiplier circuit(difficult to read the details, but it gives the basic idea). One floating point number is sent into the cricuit on the left of the top edge; the other number is sent along the bottom of the left edge. The product is produced out the bottom of the circuit. The large dark block in the middle is an integer multiplier, used to multiply the fractional parts F1 and F2. The leftmost columns of the circuit are for adding the exponents E1 and E2. The rest of the circuit is for handling details.

One detail is the following: by convention, the fractional number F should be between 1 and 2 (not including 2). If, for example, the numbers 1.5 and 1.6 are multiplied, the new fractional part would be 2.4, which is too large for this convention. We can however divide F by 2, making the fractional part 1.2, which conforms to our convention. In dividng F by 2, we must increase the exponent E by 1, so that the number X=F * 2E remains unchanged. This process is called normalization. Normalization is one of the details the circuit needs to handle.

Floating point division works similarly, using integer division instead of multiplication and subtraction instead of addition.

 
 

 
Cell Matrix Home . site core . What is a Cell Matrix? . contact us