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