C 单循环乘法和硬件除法是什么意思?
我正在阅读一份数据表,阅读“单循环乘法和硬件除法”作为STM32规范的一部分,我不确定我是否理解这意味着什么。从我在网上读到的,乘法通常比除法更容易计算。这是否意味着STM可以在一个周期内计算乘法和除法C 单循环乘法和硬件除法是什么意思?,c,embedded,stm32,C,Embedded,Stm32,我正在阅读一份数据表,阅读“单循环乘法和硬件除法”作为STM32规范的一部分,我不确定我是否理解这意味着什么。从我在网上读到的,乘法通常比除法更容易计算。这是否意味着STM可以在一个周期内计算乘法和除法 请协助。对于乘法器,这意味着只需一个时钟周期(对于100Mhz,为10纳秒)即可执行操作 然而,除法通常是以迭代的方式逐位执行的,应该研究特定的实现(核心指令集) 看一下,你会发现乘法实际上是单周期的,但是除法持续2-12个周期,在脚注中: 除法运算使用提前终止,以根据输入操作数中前导1和0的数
请协助。对于乘法器,这意味着只需一个时钟周期(对于100Mhz,为10纳秒)即可执行操作 然而,除法通常是以迭代的方式逐位执行的,应该研究特定的实现(核心指令集) 看一下,你会发现乘法实际上是单周期的,但是除法持续2-12个周期,在脚注中: 除法运算使用提前终止,以根据输入操作数中前导1和0的数量最小化所需的循环数 添加:
但是请注意,唯一的INTxINT乘法是单周期,而LONGxLONG最后3-5个周期(因为LONGxLONG mult可以作为INTxINT乘法和加法的组合执行)二进制乘法只是移位和加法,传统上被分解为多个时钟周期,但是你可以通过消耗(相对)大量的逻辑将时钟周期减少到一个,如果你的指令集中有乘法运算,这就更正常了。在指令集中有除法运算并不常见,但如果你有除法运算,这通常是一个迭代过程,意味着需要多个步骤,意味着需要多个时钟。我假设有人可以用足够的逻辑和足够长的时钟来论证这一点,我会惊讶地看到stm32中有一个esp,我也惊讶地看到一个单循环多线程HAPS“聪明”的措辞:“单循环乘法和硬件除法”,实际上并不是说除法是单周期的-只是说它是在硬件中执行的。是的,如果F4是运算器正在考虑的MCU,那么硬件FPU也是如此
vmul.f32
为1个周期,而vdiv.f32
为14个周期。感谢您的支持responses@panto111088如果这回答了你的问题,请接受它。