hardware multiply/divide functionality in CPUs (6809)

Jules Richardson jules.richardson99 at gmail.com
Tue Mar 8 18:34:10 CST 2011


Mark Tapley wrote:
> At 23:56 -0600 3/7/11, Jules wrote:
>> Yes, that seems to be the 'famous' one that gets mentioned everywhere. It
>> seems it was of the shift-add variety. Anyone recall if it would work 
>> with
>> signed integers? (I'm just trying to work out how the math works for 
>> signed
>> multiplies at the moment)
> 
>     I have a scanned .pdf of the 6809 programmer's manual here, happy to 
> send out if anyone wants it, but it's 12.8 MBytes. (I got it from the 
> freescale website, since reorganized; it's online at 
> http://www.maddes.net/m6809pm/ .)
> 
>     It says the MUL instruction A x B -> D (unsigned) takes 11 MPU 
> cycles.  ADD instructions take a minimum of 2 cycles, as do shift (roll, 
> etc) instructions. So I think maybe there must have been some silicon 
> (vs. microcode) involved in the multiply? I don't see how the shift-add 
> sequence could be done in only 11 cycles.

I see what you mean - I wonder if the actual add only takes one cycle, but 
there's an additional 1-cycle overhead (none of the instructions seem to be 
less than 2 cycles) which doesn't scale to 8 shifts/adds needed for an 
8-bit multiply? That would make sense, I think - 8 cycles of shifts/adds, 
standard 1 cycle overhead, and 2 more cycles eaten up doing housekeeping 
"stuff".

cheers

Jules




More information about the cctech mailing list