【发布时间】:2012-12-25 06:41:23
【问题描述】:
我很好奇浮点运算在专用硬件和固定硬件上的速度有多快。
对于定点,假设您有数字 555,并且您想乘以 1.54,您需要将值 555、154 和 100 加载到寄存器中(三个时钟),将 555 乘以 154(四个时钟),然后除以 100(四个时钟),然后将输出寄存器加载到内存中(一个时钟)。
使用浮点,您可以将值 555 和 1.54 加载到寄存器中(两个时钟),获得更大的缩放/指数(一个时钟),减去缩放(一个时钟),归一化(四个时钟进行乘法运算) ),乘法(四个时钟),然后将输出寄存器保存到内存中(一个时钟)。
12 个固定时钟和 13 个浮动时钟。那么我是否遗漏了一些东西,并且有真正的性能优势,还是只是易于使用?我只是使用了四个时钟进行乘法,显然它不会在所有处理器上都相同,但它提供了一个大致的概念。
【问题讨论】:
-
显然,对于那些您不提前知道扩展并且需要将其打包成具有专用硬件至关重要的数量的操作,但这类操作通常非常罕见......
-
嗯,我没有考虑位移。在固定方面,您可以位移而不是除以 100(必须转换为基数 2 而不是基数 10)。所以固定端的时钟可能低至 10 个时钟,那是不确定的。不要认为你可以在浮点上进行位移,因为指数都是以 10 为底的。
标签: floating-point fixed-point decimal