浮点运算器

编辑
本词条由“匿名用户” 建档。

浮点单元(FPU,通俗地称为数学协处理器)是专门设计用于对浮点数执行运算的计算机系统的一部分。典型的运算有加法、减法、乘法、除法和平方根。一些FPU还可以执行各种超越函数,例如指数或三角函数计算,但精度可能非常低,因此一些系统更喜欢在软件中计算这些函数。 在通用计算机体系结构中,一个或多个FPU可以集成为中央处理器内的执行单元;然而,许多嵌入式处理器没有对浮点运算的硬件支持(虽然它们越来越多地将它...

浮点运算器

编辑

点单元(FPU,通俗地称为数学协处理器)是专门设计用于对浮点数执行运算的计算机系统的一部分。 典型的运算有加法、减法、乘法、除法和平方根。 一些 FPU 还可以执行各种超越函数,例如指数或三角函数计算,但精度可能非常低,因此一些系统更喜欢在软件中计算这些函数。

通用计算机体系结构中,一个或多个 FPU 可以集成为中央处理器内的执行单元; 然而,许多嵌入式处理器没有对浮点运算的硬件支持(虽然它们越来越多地将它们作为标准,至少是 32 位的)。

当 CPU 正在执行一个需要浮点运算的程序时,可以通过三种方式来执行:

  • 一个浮点单元模拟器(一个浮点库)
  • 附加 FPU
  • 集成 FPU

历史

编辑

1954 年,IBM 704 将浮点运算作为一项标准功能,这是其相对于其前身 IBM 701 的重大改进之一。这被继承到其后继产品 709、7090 和 7094。

1963 年,Digital 发布了 PDP-6,它以浮点作为标准功能。

1963 年,GE-235 配备了一个用于浮点和双精度计算的辅助算术单元。

从历史上看,一些系统使用协处理器而不是作为一个集成单元实现浮点(但现在除了 CPU 之外,例如 GPU——协处理器并不总是内置在 CPU 中——通常有 FPU,而xxx代 GPU 没有 ')。 这可以是单个集成电路、整个电路板或机柜。 在没有提供浮点计算硬件的情况下,浮点计算在软件中完成,这需要更多的处理器时间,但避免了额外硬件的成本。 对于特定的计算机体系结构,浮点单元指令可以通过软件功能库来模拟; 这可能允许相同的目标代码在有或没有浮点硬件的系统上运行。 仿真可以在多个级别中的任何一个级别上实现:在 CPU 中作为微代码(不常见),作为操作系统功能,或在用户空间代码中。 当只有整数功能可用时,最常用的是 CORDIC 浮点仿真方法。

在大多数现代计算机体系结构中,浮点运算与整数运算有一些划分。 这种划分因架构而异; 有些有专用的浮点寄存器,而有些,如 Intel x86,将其视为独立的时钟方案。

CORDIC 例程已在 Intel x87 协处理器(8087、80287、80387)直至 80486 微处理器系列中实现,以及在 Motorola 68881 和 68882 中用于某些类型的浮点指令,主要作为减少门数的一种方式 FPU 子系统的(和复杂性)。

浮点运算通常是流水线式的。 在没有一般乱序执行的早期超标量架构中,浮点运算有时会与整数运算分开进行流水线处理。

Bulldozer 微架构的模块化架构使用了一种名为 FlexFPU 的特殊 FPU,它使用同步多线程。 每个物理整数内核(每个模块两个)都是单线程的,这与英特尔的超线程形成对比,其中两个虚拟同时线程共享单个物理内核的资源

浮点库

编辑

一些浮点硬件只支持最简单的运算:加法、减法和乘法。 但即使是最复杂的浮点硬件也只能支持有限数量的运算——例如,没有 FPU 直接支持任意精度算术。

浮点运算器

当 CPU 正在执行调用硬件不直接支持的浮点运算的程序时,CPU 使用一系列更简单的浮点运算。 在没有任何浮点硬件的系统中,CPU 使用一系列在整数算术逻辑单元上运行的更简单的定点算术运算来模拟它。

列出模拟浮点运算所需的一系列操作的软件通常打包在浮点库中。

集成 FPU

编辑

在某些情况下,FPU 可能是专用的,分为更简单的浮点运算(主要是加法和乘法)和更复杂的运算,如除法。 在某些情况下,只有简单的操作可以用硬件或微码来实现,而更复杂的操作则可以用软件来实现。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/195874/

(3)
词条目录
  1. 浮点运算器
  2. 历史
  3. 浮点库
  4. 集成 FPU

轻触这里

关闭目录

目录