6
为什么硬件除法比乘法要花更长的时间?
为什么硬件除法要比微控制器上的乘法花费更多的时间?例如,在dsPIC上,除法需要19个周期,而乘法仅需要一个时钟周期。 我浏览了一些教程,包括Wikipedia上的除法算法和乘法算法。这是我的理由。 像在Wikipedia 上恢复的慢速除法一样,除法算法也是一种递归算法。这意味着step的(中间)结果k用作step 的输入k+1,这意味着这些算法无法并行化。因此,n完成分割至少需要花费周期,而n被除数中的位数是很多。对于16位除数,这至少等于16个周期。 乘法算法不需要递归,这意味着可以并行化它。但是,有许多不同的乘法算法,我不知道微控制器可以使用哪种算法。乘法在硬件/微控制器上如何工作? 我发现了一种Dadda乘法器算法,该算法只需要一个时钟周期即可完成。但是,我没有得到的是Dadda的算法分三步进行,而步骤1的结果用于步骤2,依此类推。因此,这至少需要三个时钟周期才能完成。