7.3 8x8 Hardware Multiplier

This device includes an 8x8 hardware multiplier as part of the ALU within the CPU. The multiplier performs an unsigned operation and yields a 16-bit result that is stored in the product register, PROD. The multiplier’s operation does not affect any flags in the STATUS register.

Making multiplication a hardware operation allows it to be completed in a single instruction cycle. This has the advantages of higher computational throughput and reduced code size for multiplication algorithms and allows the device to be used in many applications previously reserved for digital signal processors. A comparison of various hardware and software multiply operations, along with the savings in memory and execution time, is shown in Table 7-2.

Table 7-2. Performance Comparison for Various Multiply Operations
RoutineMultiply MethodProgram
Memory
(Words)Cycles
(Max)Time
@ 64 MHz@ 40 MHz@ 10 MHz@ 4 MHz
8x8 unsignedWithout hardware multiply13694.3 μs6.9 μs27.6 μs69 μs
Hardware multiply1162.5 ns100 ns400 ns1 μs
8x8 signedWithout hardware multiply33915.7 μs9.1 μs36.4 μs91 μs
Hardware multiply66375 ns600 ns2.4 μs6 μs
16x16 unsignedWithout hardware multiply2124215.1 μs24.2 μs96.8 μs242 μs
Hardware multiply28281.8 μs2.8 μs11.2 μs28 μs
16x16 signedWithout hardware multiply5225415.9 μs25.4 μs102.6 μs254 μs
Hardware multiply35402.5 μs4.0 μs16.0 μs40 μs