为什么浮点寄存器与通用寄存器不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么浮点寄存器与通用寄存器不同相关的知识,希望对你有一定的参考价值。

大多数体系结构具有不同的寄存器集,用于存储规则的整数和浮点数。从二进制存储的角度来看,将对象存储在正确的位置应该没关系吗?它只是1和0,难道它们不能将相同的通用寄存器传递给浮点ALU吗?

SIMD(x64中为xmm)寄存器能够存储浮点数和正整数,因此为什么同一概念不适用于常规寄存器?

答案

对于实际的处理器设计,除了“二进制存储的观点”之外,还有更多的问题需要考虑。

例如,线长很重要,这是因为可以一次移动数十位的并行路径占用了芯片空间,而且沿线获取信号也需要时间。几分之一英寸的时间不多,但是当周期为几分之一秒时仍然很重要。为了进行比较,真空中的光可以在一纳秒内传播约11.8英寸。电线中的电信号较慢。

这使得将寄存器放在要使用其内容的算术单元附近是个好主意。通过单独的整数和浮点寄存器,处理器可以使整数寄存器接近通用ALU,而浮点寄存器则接近浮点单元。

还存在用于读取和写入寄存器的路径数量有限的问题。通过单独的寄存器组,ALU和浮点单元具有独立的寄存器访问路径,从而允许更多的事情同时发生。周期时间不再快速减少,并且处理器速度提高的其他来源之一是并行执行更多操作。

我不知道当前哪个问题重要,但总的来说,将寄存器组分开给处理器设计人员提供了机会,如果将这些组合并在一起,他们将没有机会。

以上是关于为什么浮点寄存器与通用寄存器不同的主要内容,如果未能解决你的问题,请参考以下文章

通用寄存器和专用寄存器有啥区别和联系?

什么决定CPU寄存器和总线的数据宽度

现代32位或64位x86汇编

汇编 浮点指令FLD,FSTP,FADD与FPU寄存器

计算机中控制器中常见的寄存器及其作用

通用寄存器都有哪些?