快速概要:在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