K8神威終于顯露!純64位應(yīng)用全球首測(cè)
需要強(qiáng)調(diào)的是,通常所說(shuō)的64位指令,并不是指指令的全長(zhǎng)或操作碼的長(zhǎng)度為64位,而是指操作數(shù)所能達(dá)到的最大位數(shù)為64位。通過(guò)下面的圖示,我們可以很好地理解64位指令和64位處理器的本質(zhì)。
64位指令工作原理示意圖
由于操作數(shù)一般需要存放在通用寄存器中,因此64位處理器通用寄存器的尺寸也必須是64位。這樣我們就很容易理解K8處理器里通用寄存器結(jié)構(gòu)的上半部分(指RAX-RSP部分,下半部分我們后邊再提)。如下圖所示:
K8通用寄存器的擴(kuò)展,點(diǎn)擊查看詳圖
從上面的圖示可以看出,相對(duì)于傳統(tǒng)的X86處理器而言,K8在進(jìn)行64位擴(kuò)展的時(shí)侯,把8個(gè)通用寄存器增加到了64位,同時(shí)增加了指令指針寄存器的位數(shù)為64位。
至于尋址方面,由于地址數(shù)據(jù)只不過(guò)是整數(shù)操作數(shù)中的一種,因此同樣使用GPR。這樣,64位處理器所能處理的地址數(shù)據(jù)長(zhǎng)度自然就增加到了64位,從而大大增加了處理器的尋址空間。
當(dāng)然,為了簡(jiǎn)化起見(jiàn),以上我們所說(shuō)的操作數(shù),只不過(guò)是現(xiàn)代CPU所處理的操作數(shù)中的整數(shù)數(shù)據(jù)(地址數(shù)據(jù))。它們由處理器中的ALU(算術(shù)邏輯單元)和AGU(地址生成單元)進(jìn)行處理,一般使用通用寄存器(GPR)來(lái)保存。實(shí)際上,我們還需要處理通常保存在浮點(diǎn)寄存器、MMX以及XMM寄存器里的浮點(diǎn)以及其它多種數(shù)據(jù)。
不過(guò),在我們進(jìn)一步談這些除了整數(shù)和地址數(shù)據(jù)外其它數(shù)據(jù)類型在64位處理器中的處理狀況前,我們必須首先了解一些有關(guān)寄存器和數(shù)據(jù)類型的基本知識(shí)。
關(guān)注我們
