首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是矢量浮点(VFP)?

什么是矢量浮点(VFP)?
EN

Stack Overflow用户
提问于 2021-02-04 14:30:52
回答 1查看 1.8K关注 0票数 1

有人告诉我,VFP是用于ARM处理器的浮点算法的硬件加速器。

但是它如何“加速”处理器呢?我知道硬浮动和软浮动的基本概念,但在我看来,VFP并不完全属于这两个概念,因为我必须给出一个不同的编译器选项来使用VFP,比如gcc的-mfloat-softfp。所以VFP不仅仅是一种PFU,对吧?

VFP能进行硬件级FP计算吗?如果是的话,它与普通FPU有什么不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 18:18:28

ARM fpus随着时间的推移而进化,一段时间以来,术语是VFP。汇编语言指令仍然支持AFAIK。(我没有使用新的汇编语言-我在不同的核心上使用了旧的东西,现在我使用的可能不是VFP程序集--它可能在中间的某个地方)。

在当时和现在看来,FPU是一个协处理器,这一特性也许没有为第三方供应商所掌握,但您可以在核心中添加协处理器,并对acces使用MRS/MSR指令。我今天还没有看过,但当时VFP指令不过是MRS/MSR协处理器访问指令而已。汇编语言处理这个问题,这样您就可以要求添加两个寄存器,而不必知道血淋淋的细节是什么。

浮点解决方案的ARM (好和其他人)已经演变了一段时间,这一术语已不再用于正常的谈话(至少对ARM )。

它是如何加速处理器的,因为连接到处理器的是附加逻辑(就像缓存加速处理器一样),而我们程序员将这项工作卸载到协处理器。所以我们可以用普通的ARM指令集做软浮点运算,用定点运算需要一段时间,很多指令。或者,您可以将操作传递给协处理器,在协处理器上,它的逻辑可以直接完成工作,并给出一个更快的结果。净结果是整体性能较好。就像在高速公路上超速,让乘客给你开瓶啤酒一样,你在卸下这份工作.

对于ARM,浮点指令作为指令映射到核心中,这些指令是针对这个逻辑的,无论是像以前那样的协处理器,还是直接在核心中实现的指令(如果现在是这样的话,我仍然需要启用ARM中的协处理器来启用FPU,因此我怀疑它们仍然是某种形式的协处理器)。

x86和其他人是一个单独的话题,它可能是相似的,也可能不是相似的,当然在早期,8087是一个单独的协处理器芯片,但是和ARM一样,这些东西已经进化了。最好的解决方案是让核心能够直接接受指令,但是您仍然可以卸载一些东西并获得整体性能(比如视频卡)。

重读你的问题

从目前的ARM文件:

向量浮点(VFP)体系结构是ARM体系结构的协处理器扩展。它提供了ANSI/IEEE定义的单精度和双精度浮点算法.754-1985年IEEE二进制浮点算法标准。本文档在以下文本中称为IEEE 754标准。

你可以从那里读到,这是ARMv5手臂。也就是arm7 7/arm7 9天。

当您看到有关ARM的VFP时,只需考虑FPU或浮点指令集。它是一个直接连接到ARM核心的协处理器(如果您为此付费并将其编译到您的核心中),并且ARM核心“执行”这些指令。

由于核心和功能的组合以及每个芯片供应商可以和不能做的事情,特定的组合可能没有硬fpu,您必须使用软fpu,而软件库可能只支持某个指令集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66047684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档