gpt4 book ai didi

floating-point - x87 FPU 指令是确定性的吗?

转载 作者:行者123 更新时间:2023-12-01 09:28:41 24 4
gpt4 key购买 nike

我们正在编写一个仿真器,并且想知道对于给定的 FPU 状态,在运行 FPU 指令后,FPU 的状态是确定性的,例如。 FDIV?

有许多实现 x87 指令集的 Intel 兼容 CPU 架构。在测试 FPU 仿真的正确性时,我们是否应该依赖得到的 CPU 状态?

不同的实现是否有不同的循环/计算方式?

最佳答案

是的,x87 FPU 对于基本操作 +-*/ 是确定性的, sqrt。例如,在其默认状态(全角有效位和四舍五入模式)下,x + y 的结果恰好是最接近的可表示的 80 位浮点值xy 的数学和的结果。

兼容芯片的制造商已经对上述操作实现了完全相同的定义。

在纯 CISC 传统中,x87 的指令集还包含用于计算数学函数的高级指令,例如,正弦的近似值 (FSIN)。这些指令的结果因处理器品牌和型号而异。在您的模拟器中,您可能只需要提供与 one of the worst implementations of these instructions 一样好的东西。仍在使用中。如果您使用宿主语言数学库中的 sinl() 函数的结果,没有人应该提示,这通常比 FSIN 更好(因为使用显式 argument reductionpolynomial approximation 实现,而不是调用 FSIN)。

关于floating-point - x87 FPU 指令是确定性的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com