什么是FPU?

2020.04.09 -

   

代表“浮点单元”。FPU是执行浮点计算的处理器或处理器的一部分。早期的FPU是独立的处理器,但现在大多数都集成在计算机的CPU中。

即使没有浮点单元,CPU也可以处理整数和浮点(非整数)计算。但是,整数运算使用的逻辑与浮点运算完全不同,这使得使用同一处理器来处理两种类型的运算效率低下。FPU提供了一种处理非整数数字的更快方法。

整数处理单元或FPU均可执行任何数学运算,例如加法,减法,乘法或除法。CPU收到一条指令后,会自动将其发送到相应的处理器。例如,12 + 5将作为整数计算处理,而1.0023 x 5.789将被发送到FPU。尽管程序员可以为任何一个处理单元专门编写一条指令,但通常是不必要的。

由于整数和浮点性能可能会发生很大变化,因此大多数处理器基准测试都包括这两种类型的操作。整数计算速度通常列为“整数性能”,并在SPEC基准中标记为“ SPECint”。FPU计算速度通常被列为“浮点性能”,并且可以FLOPS进行测量。

FPU

FPU、GPU、CPU之间的比较

CPU是“通用主力”。它旨在尽快完成许多不同的事情。特别是,CPU已针对决策进行了优化-即“如果这是真的,那么就这样做,否则就这样做”。CPU能够执行很多不同的操作(算术/数学,逻辑,从存储器/寄存器加载并存储到存储器/寄存器等),但它们是“普通主义者”。

FPU通常被构建为CPU的“协处理器”。它通常不会单独编程,而是代表控制它的CPU进行浮点运算。从理论上讲,可以在CPU内部添加浮点算术指令作为其正常指令集的一部分,但是通常不会这样做,因为浮点算术速度很慢,并且需要大量逻辑来实现。在“正常” CPU内执行此操作会降低整个CPU的速度,因此,通常在外部作为一个单独的单元进行操作。CPU向FPU发送数据和指令;FPU执行计算,然后CPU读回结果。

GPU经过优化,可并行执行大量浮点运算。为了渲染3D图形,您需要对不同的数据进行多次相同的操作。因此,它们通过使用SIMD样式的操作(单指令,多数据)的非常宽的流水线进行了优化,在此操作中,您会得到非常大的数据字(例如256位),该数据字由多个值连接在一起。例如,在一个256位字中,您可能有8个像素的数据,每个像素8位,并且您希望对每个值执行相同的操作。

GPU最初是专门为实现3D图形处理而构建的(因此得名),因此是为各种3D API(DirectX,OpenGL)所需的操作量身定制的。但是,人们开始意识到,他们能够跨大型数据集进行数学运算的能力使它们对于其他内容很有用,因此GPU制造商开始增加更多直接访问权限,以便程序员可以将GPU的数学功能用于图形以外的事物。

本站文章禁止转载,违者必究
阅 156
0

代表“浮点单元”。FPU是执行浮点计算的处理器或处理器的一部分。早期的FPU是独立的处理器,但现在大多数都集成 […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1