双精度操作:32位与64位计算机

Com*_*guy 2 memory performance cpu-architecture cpu-registers 32bit-64bit

与在32位计算机上执行相比,在64位计算机上执行64位操作(例如双精度操作)时,为什么我们不会看到两倍更好的性能?

在32位机器中,我们不需要从内存中取两倍的内存吗?更重要的是,我们不需要两倍的周期来执行64位操作吗?

Pas*_*uoq 7

"64位机器"是一个含糊不清的术语,但通常意味着处理器的通用寄存器是64位宽.比较80868088,它们具有相同的指令集,在这个意义上都可以称为16位处理器.

在这个意义上使用短语时,它与内存总线的宽度,CPU内部总线的宽度以及ALU在32位或64位宽数据上有效运行的能力无关.

你的问题还假设乘法中最困难的部分是将操作数移动到负责处理器内部乘法的单元,即使操作数来自内存并且总线是32位宽,这也不是很正确,因为延迟!=吞吐量.另外,关于浮点乘法的数学,64位乘法不是32位乘法的两倍,它大约是(53/24)2倍硬(但同样,晶体管可以在那里无论通用寄存器的宽度如何,都能有效地计算双精度乘法.