基于X86-64架構的處理器如何實(shí)現兼容的應用模式
為了使用戶(hù)的計算平臺實(shí)現從32位到64位體系結構的平滑過(guò)渡,AMD公司開(kāi)發(fā)了獨特的X86-64結構。與目前的一些64位平臺相比,基于X86結構的處理器可以實(shí)現對現有32位程序的完全兼容,而且這種兼容運行模式是完全基于硬件的,而不是通過(guò)低效率的模擬32位指令方式來(lái)實(shí)現。這樣我們可以在X86-64平臺上繼續使用現有的應用程序,不必等待開(kāi)發(fā)人員或軟件廠(chǎng)商對程序的源代碼進(jìn)行重新編譯,這將為用戶(hù)省去大量的購買(mǎi)以及相關(guān)的培訓費用。
在某種程度上基于X86-64架構的Opteron處理器平臺可以看作是以往X86-32的擴展,如果不考慮對64位指令的支持,基于X86-64結構的處理器在指令的執行順序以及處理過(guò)程都是一樣的。AMD對Opteron處理器的寄存器作出了較大改進(jìn)。寄存器是處理器內部在運算過(guò)程中暫時(shí)存放數據的存儲單元,里面保存著(zhù)那些正準備要處理的數據或者是已經(jīng)處理過(guò)的數據。CPU的運算單元訪(fǎng)問(wèn)寄存器所用時(shí)間要比訪(fǎng)問(wèn)處理器緩存以及內存的時(shí)間都要短。 增加寄存器,可減少CPU 訪(fǎng)問(wèn)處理器L1、L2緩存以及內存次數,從而提高CPU的工作速度。
寄存器中的通用寄存器用途廣泛并可由軟件開(kāi)發(fā)人員自行規定其用途。通用寄存器的數目因處理器結構而異,X86-32位處理器具有EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP共8個(gè)32位通用寄存器等。與以往的32位X86結構相比,AMD的64位處理器在原有的8個(gè)通用寄存器的基礎上又增添了8個(gè)寄存器。這8個(gè)寄存器是工作在64位下,經(jīng)過(guò)64位編碼的程序就可以使用到它們。AMD同時(shí)也將原有的EAX等寄存器擴展至64位的RAX。從擴充方式上看,EAX等寄存器可以看作是RAX的一個(gè)子集,系統仍舊可以完整地執行以往的32位編碼程序。通用寄存器除了可高效的存儲數據外,還可作為尋址時(shí)的地址指針,從而縮短指令長(cháng)度和指令執行時(shí)間,加快CPU的運算處理速度,同時(shí)也給編程帶來(lái)方便。單單從寄存器結構來(lái)看,X86-64較多的寄存器將會(huì )大幅度的提升處理器的性能,也會(huì )更加受到軟件開(kāi)發(fā)人員的喜愛(ài)。
目前的處理器產(chǎn)品都采用了SIMD(單指令多數據)技術(shù)來(lái)提高處理器的運算能力,常見(jiàn)的單指令多數據技術(shù)分別有Intel公司的SSE、SSE2以及AMD公司的3DNow!,以往的X86-32結構的AMD處理器除了具備3DNow!技術(shù)外還提供了對Intel SSE指令集的兼容,而X86-64則通過(guò)16個(gè)寄存器來(lái)提供對SSE2的支持。在SIMD技術(shù)方面,AMD的X86-64結構將提供比以往任何設計都要出色的兼容性。
為了更好的在32/64位混合模式下工作,X86-64結構提供了多種處理器工作模式。在“長(cháng)模式”下如果用戶(hù)使用64位操作系統以及為64位計算編譯的軟件,那么就可以獲得8個(gè)新增64位通用寄存器、擴展6 4位通用寄存器等眾多新特性?!伴L(cháng)模式”下還包含了一種“兼容模式”,在此模式下用戶(hù)可以在64位操作系統上運行32位的應用程序,從應用程序的角度看,在“兼容模式”下其所使用的處理器也就是普通32位X86處理器。而從操作系統的角度來(lái)看,常規的地址變換,中斷以及系統數據結構操作都是在64位“長(cháng)模式”下進(jìn)行的?!皞鹘y模式”則是AMD的64位處理器為32位應用所提供的運行模式,這種模式下的X86-64結構處理器的運行與一般的32位處理器沒(méi)有區別,可以完全兼容目前的32位操作系統以及32位應用程序。
評論