快速概要:在x86-64模式下,远远落后于x86-32模式?x86-64和远程调用/跳转
在x86处理器,跳跃分为三类:
- 短,与PC偏移的+/- 127个字节(2字节指令)
- 附近,具有+/- 32K偏移“辊上”当前段(3字节指令)
- 远,这可以在任何地方跳(5字节的指令)
短和靠近跳跃需要1-2个时钟周期,而远跳取50 -80个时钟周期,具体取决于处理器。从我阅读文档的时候,这是因为他们“脱离目前的代码段CS”。
在x86-64模式下,不使用代码段 - 段实际上始终为0..infinity。埃尔戈,不应该因为去一个细分市场而受到惩罚。
因此,问题:如果处理器处于x86-64模式,时钟周期数是否会因远跳而改变?
相关奖金问题: - 通过页表>物理转换完全在32位保护模式下运行大多数* nix-like操作系统明确设置分割大小来0..infinity和管理的线性。从远程调用的时间(更少的时钟周期)来看,他们是否从中受益?还是从8086开始,大小段寄存器中的内部CPU遗留问题真的成为了损失?
您对\ * nix系统的评论也适用于Windows,AFAIK。我不认为有任何实际使用代码段的现代操作系统。 – 2010-07-02 17:53:44