K8神威終于顯露!純64位應(yīng)用全球首測
測試標題K8神威終于顯露!純64位應(yīng)用全球首測
2005年04月18日 00:00 作者:鳳臣 編輯:常鳳臣 文章出處:泡泡網(wǎng)原創(chuàng)
AMD在2003年秋天發(fā)布了他們的Athlon64系列處理器,將PC帶入了64位運算的時代,從而揭開了64位運算的嶄新一幕。
然而,這一幕卻似乎有些遺憾在里面,64位的舞臺已經(jīng)搭建完畢,但是我們卻不見舞臺上的演員出現(xiàn),讓大家看到了一場沒有演員的表演。
Athlon64的三大尷尬:
1. 沒有操作系統(tǒng)支持。 雖然微軟在Athlon64發(fā)布的時候臨時推出了一個操作系統(tǒng),但是這個操作系統(tǒng)是個測試版,而且距最終的發(fā)售版本差的有些遠。
如何獲取WinXP 64-bit beta版的官方說明(點擊放大)
2.沒有應(yīng)用軟件支持。 在操作系統(tǒng)尚不完備的時候,自然是沒有Windows下應(yīng)用程序的支持了,不要說真正能夠?qū)嵱玫膽?yīng)用軟件,甚至連一些測試64位性能的軟件也是鳳毛麟角般的少見。
3.游戲是雷聲大雨點小。 對于個人用戶,游戲是計算機的非常重要的功能,在Athlon64發(fā)布的時候,已經(jīng)有多家游戲公司表示將推出64位的游戲,其中包括我們熟悉的UT2004以及后來的Farcry。然而,我們卻沒有見到過任何一個公司如約推出64位游戲,這倒不能怪這些游戲廠商,因為誰也不會在一個沒有穩(wěn)定的操作系統(tǒng)上花很大精力做一個游戲的。
但是,我們并沒有看到我們非常喜歡的Athlon64系列的處理器帶著悲傷離開,而是在處理器市場收到了廣大消費者的喜愛??梢哉fAthlon64最終還是非常成功的,只不過這一成功并非單純憑借其64位性能,那么它憑借的是什么呢?
Athlon64的成功之本:
1.Athlon64系列處理器支持32位運算。 這可以說是最重要一點,在沒有64位運行環(huán)境和軟件的情況下,消費者可以在目前的操作系統(tǒng)和軟件上體驗到Athlon64很好的性能。
2.Athlon64系列還支持其他的64位環(huán)境。 出了Windows,Athlon64系列以及它的同胞兄弟Opteron都支持其他的64位操作系統(tǒng),比如Linux,F(xiàn)reeBSD等操作系統(tǒng),這些系統(tǒng)由于源代碼開放,所以安全性和效率非常高,是服務(wù)器第一選擇的操作系統(tǒng)。
A64是毫無疑問的性能之王
3.Athlon64擁有出色的性能。 從2003年秋天到現(xiàn)在,Athlon64大家已經(jīng)接觸了有一年半的時間了。在這一年半的時間里,我們看到了各種Athlon64的測試,并且也親身體驗了Athlon 64的性能,Athlon64性能可以說讓我們非常滿意,無論是游戲性能或者是日常的辦公應(yīng)用,Athlon64都表現(xiàn)出了非常高的水平,就目前而言,Athlon 64 FX55仍然是擁有最好性能的處理器。
64位的處理器的推出,絕對是業(yè)界非常大的一次變革,其意義甚至比PCI-Express架構(gòu)的推出更具有歷史意義,因為PCI-E架構(gòu)只不過是十年之變,而由32位轉(zhuǎn)換為64位則是20年之變。
面對競爭對手的的這記重拳,Intel在最開始顯得反而非常從容,是什么讓他們能夠這樣?他們真的不慌么?
事情發(fā)展到了今天,我們也可以回頭看看了,Intel當時并不是不慌,而是裝作不慌,因為他們早早就將64位運算處理器納入了日程。
在Prescott內(nèi)核發(fā)布的時候,就有人放出了對核心圖片的分析,一針見血的指出Prescott內(nèi)核是支持64位運算的。這個消息讓所有人都為之震驚,當然,除了Intel自己。
點擊查看大圖
但是,最初的Prescott并沒有開啟64位運算的功能,直到今天,Intel采用Prescott做出了P4 6XX系列的處理器,支持64位的運算。事實表明,Intel這一舉動是正確的,因為在這一年半的時間里,Athlon64的64位性能對于普通的消費者幾乎形同虛設(shè)。
有人說,這一切都是因為Intel在等著微軟的64位操作系統(tǒng)的正式發(fā)布,因為過早的發(fā)布會帶來同樣的尷尬。
有人說,這一切都是微軟在等著Intel,說微軟在等著Intel把處理器能夠做好了才發(fā)布操作系統(tǒng)。
那么,他們到底誰說的對呢?我們今天不妨來先安插一段小花絮,收集一下讀者的意見。
其實無論是Intel在等微軟,還是微軟在等Intel,現(xiàn)實的情況卻是AMD等了他們兩個長達一年半的時間,也是廣大的消費者等了他們一年半的時間。
不過值得慶幸的是我們終于等到了這一天,或者說是馬上就要等到了。以下兩件事情便能證明這一點:
1.微軟的Windows XP X64位版本終于放出了RTM(Release To Manufacture)版本。
2.Intel將于近期發(fā)布其采用Prescott的P4 600系列處理器,這將是Intel首款在PC平臺支持64位運算的處理器。
顯而易見,憑借這兩家軟硬件巨頭的加盟,便足以讓我們聽到64位運算來臨的腳步聲。
今天我們暫且不討論Intel的P4 600系列的情況,我們先來談?wù)刉indows XP
的64位版本操作系統(tǒng)。畢竟離開了軟件,硬件便只是一堆冷冰冰的機器而已。
作為目前世界上最大的軟件公司,微軟已經(jīng)不再簡單的是一個軟件公司了,它已經(jīng)成為一個帝國,一個能夠一呼百應(yīng)的軟件帝國,一個能夠制定游戲規(guī)則的帝國。雖然微軟并不是唯一,Windows并不是唯一,我們還有很多選擇,但是我們卻不能否定微軟以及Windows平臺在整個IT業(yè)界的統(tǒng)治地位。
前面我們提到,微軟在2003年就已經(jīng)推出了64位的操作系統(tǒng),不過那是一個很不完備的操作系統(tǒng),其中帶的DirectX還是8.1版本。而今天這個RTM版本的發(fā)布又意味著什么呢?讓我們一起來看看……
在發(fā)布之后的很長的一段時間內(nèi),微軟對于Windows XP 64位版本一直保持著不溫不火的態(tài)度。在很長一段時間內(nèi),WindowsXP 64位版本一直保持著“Beta”的版本號,離成熟與普及還相差很遠。
直到2005年,WindowsXP 64位版本再次引起了大家的注意,這主要是因為微軟在2005年年初突然放出了Windows XP Professional x64 Edition RC1,RC就是Release Candidate(候選版本)的簡稱。
WinXP X64 RC1
RC版本的釋放,代表著距離這款操作系統(tǒng)最終的發(fā)布已經(jīng)不遠了,人們開始再次關(guān)注起這個幾乎被大家忘掉的操作系統(tǒng)。
沒有等多長時間,Windows XP Professional x64 Edition RC2也發(fā)布了,按照微軟的習慣來講,通常是不會放出RC3的,RC2的發(fā)布說明距離正式版本的時間已經(jīng)越來越接近了。果然,微軟終于在近期放出了Windows XP Professional x64 Edition RTM(Release To Manufacture)版本,PCPOP評測室有幸在第一時間拿到了這個版本。
對于硬件和軟件而言,處理器顯然是平臺,而操作系統(tǒng)則是演員。但對于操作系統(tǒng)和應(yīng)用軟件而言,真正要體現(xiàn)64位實力的還是要靠后者這些真正的“演員”。在硬件早已齊備,而操作系統(tǒng)也接近成熟的時候,我們的測試就決不能停留在之前的那種“在64位系統(tǒng)上運行32位程序”的狀態(tài)。我們今天要對新的操作系統(tǒng)和我們熟悉的Athlon64處理器進行一次真正的64位之旅,也就是完全使用全新的64位應(yīng)用程序?qū)?4位平臺進行性能考驗。
那么,現(xiàn)在的問題就是應(yīng)用程序的問題了,那么到底有沒有應(yīng)用程序能夠在64位系統(tǒng)上以64位指令集運行呢?答案是肯定的。
近日,我們拿到了來自AMD的測試軟件包,其中就有一些能夠在64位操作系統(tǒng)下運行的64位應(yīng)用軟件。這些64位應(yīng)用軟件包括:
1.NVIDIA Blobby Dancer
2.DivX Encorder
3.Mini-Gzip
4.RSA
5.Streams
為了讓我們能夠?qū)?4位的性能優(yōu)勢有一個更明確的了解,這些軟件均同時提供了32位和64位兩個版本,今天我們就用這些軟件對Athlon64處理器進行一次真正的64位測試。
硬件系統(tǒng)
處 理 器
AMD Athlon64 4000+
主 板
華碩 A8V
內(nèi) 存
威剛 DDR400 512MB × 2
硬 盤
Seagate 7200.7 60GB
顯 示 器
愛國者 998FD
驅(qū)動程序
顯卡驅(qū)動
NVIDIA Forceware 71.84 64bit 版本
操作系統(tǒng)
英文 Windows XP X64 SP1
英文 Windows XP SP1
這次我們的測試采用了三種方案以全面考證64位計算對軟硬件系統(tǒng)的影響:
1.采用64位系統(tǒng)運行64位程序。
2.采用64位系統(tǒng)運行32位程序。
3.采用32位系統(tǒng)運行32位程序。
我們這樣安排的主要目的就是想通過這樣的測試了解到64位操作系統(tǒng)對32位程序的兼容性,以及在真正的64位環(huán)境下的優(yōu)勢。
我們都知道,處理器所處理的普通指令一般由操作碼(OP Code)和操作數(shù)(Operand)組成。其中操作數(shù)可以是等待處理的數(shù)據(jù),也可以是待處理數(shù)據(jù)的內(nèi)存地址。而操作碼則描述將要對操作數(shù)進行何種處理。
需要強調(diào)的是,通常所說的64位指令,并不是指指令的全長或操作碼的長度為64位,而是指操作數(shù)所能達到的最大位數(shù)為64位。通過下面的圖示,我們可以很好地理解64位指令和64位處理器的本質(zhì)。
64位指令工作原理示意圖
由于操作數(shù)一般需要存放在通用寄存器中,因此64位處理器通用寄存器的尺寸也必須是64位。這樣我們就很容易理解K8處理器里通用寄存器結(jié)構(gòu)的上半部分(指RAX-RSP部分,下半部分我們后邊再提)。如下圖所示:
K8通用寄存器的擴展,點擊查看詳圖
從上面的圖示可以看出,相對于傳統(tǒng)的X86處理器而言,K8在進行64位擴展的時侯,把8個通用寄存器增加到了64位,同時增加了指令指針寄存器的位數(shù)為64位。
至于尋址方面,由于地址數(shù)據(jù)只不過是整數(shù)操作數(shù)中的一種,因此同樣使用GPR。這樣,64位處理器所能處理的地址數(shù)據(jù)長度自然就增加到了64位,從而大大增加了處理器的尋址空間。
當然,為了簡化起見,以上我們所說的操作數(shù),只不過是現(xiàn)代CPU所處理的操作數(shù)中的整數(shù)數(shù)據(jù)(地址數(shù)據(jù))。它們由處理器中的ALU(算術(shù)邏輯單元)和AGU(地址生成單元)進行處理,一般使用通用寄存器(GPR)來保存。實際上,我們還需要處理通常保存在浮點寄存器、MMX以及XMM寄存器里的浮點以及其它多種數(shù)據(jù)。
不過,在我們進一步談這些除了整數(shù)和地址數(shù)據(jù)外其它數(shù)據(jù)類型在64位處理器中的處理狀況前, 我們必須首先了解一些有關(guān)寄存器和數(shù)據(jù)類型的基本知識。
我們知道:整數(shù)、地址、指令指針和浮點數(shù)據(jù)是按照數(shù)據(jù)形式來劃分的,CPU所要處理的3種主要數(shù)據(jù)類型。此外我們還可以根據(jù)數(shù)據(jù)需要CPU進行處理的類型,來將它們分為標量數(shù)據(jù)和矢量數(shù)據(jù)兩大類。
通常我們把需要CPU進行不同處理的單個數(shù)據(jù)稱為標量數(shù)據(jù)(Scala Data)。標量數(shù)據(jù)既可以是整數(shù)數(shù)據(jù),也可以是浮點數(shù)據(jù)。其中整數(shù)標量數(shù)據(jù)的存放區(qū)一般為通用寄存器(GPR),浮點標量數(shù)據(jù)的存放區(qū)一般為浮點寄存器(FPR)。
與標量數(shù)據(jù)相對的是矢量數(shù)據(jù)(Vector Data)。所謂矢量數(shù)據(jù)就是指一列需要由處理器作相同處理的數(shù)據(jù)集合。比如處理器在做MP3編碼的過程中,需要對內(nèi)存中的音頻文件里的各字節(jié)數(shù)據(jù)作相同的MP3編碼操作。那么通常使用MMX或SSE這類單指令多數(shù)據(jù)流(SIMD)指令,將數(shù)個字節(jié)打包為一組矢量數(shù)據(jù),存放在MMX或SSE寄存器中,再送往相應(yīng)的功能單元進行統(tǒng)一操作。
和標量數(shù)據(jù)一樣,這些矢量數(shù)據(jù)既可以是整數(shù)數(shù)據(jù),也可以是浮點數(shù)據(jù)。矢量數(shù)據(jù)以封包的形式批量存放在MMX(對于使用MMX、3DNow!進行操作的數(shù)據(jù)而言)和XMM(對于使用SSE、SSE2進行操作的數(shù)據(jù)而言)寄存器中。
通過下面的圖,我們可以更好地了解標量數(shù)據(jù)和矢量數(shù)據(jù)的區(qū)別:
標量與矢量數(shù)據(jù)
以下,我們整理了標量數(shù)據(jù)和矢量數(shù)據(jù)在X86-32位處理器以及AMD的X86-64處理器中所用寄存器的具體區(qū)別如下表:
實際上,MMX和XMM通過寄存器映射的方法,也可以參與標量浮點數(shù)據(jù)的存儲。同時數(shù)據(jù)類型也遠不止整數(shù)、浮點這兩類基本數(shù)據(jù)類型,還包括有指令指針數(shù)據(jù)、BCD數(shù)據(jù),位數(shù)據(jù)等。要把這些情況一一說清,顯然不是一兩篇文章能解決得了問題的。
幸好,這些省略的部分與我們的結(jié)論并沒有影響,因此我們敘述時使用了簡化的措施。需要更詳細完整的資料,您可以參考Intel的IA32以及AMD的X86-64架構(gòu)編程指導(dǎo)書。
從上表我們可以看見,K8的64位擴展部分似乎僅對于整數(shù)、地址數(shù)據(jù)有效。對浮點和向量數(shù)據(jù)則仍然保持原樣。
經(jīng)過上面的分析,我們似乎可以得出這樣的結(jié)論,那就是:我們能從K8向64位的擴展所獲得的好處,只不過是可以在同樣一條指令中,處理更大數(shù)值的整數(shù)數(shù)值以及管理空間更大的內(nèi)存區(qū)域而已。而在32位的情況下,由于通用寄存器只能容納最大32位的數(shù)據(jù),因此顯然要花費更多條指令對尺寸超過32位的數(shù)據(jù)進行處理。
這種改進對服務(wù)器、科學計算這樣的領(lǐng)域雖然具有一定的意義,但顯然并不是普通家用環(huán)境急需的改進。試問在近期普通應(yīng)用中,有多少情況下會用到超過232這樣大的整數(shù)數(shù)值和超過4GB的內(nèi)存空間呢?
然而,如果你因此低估了K8和X86-64指令集的實力,那就大錯特錯了。
我們都知道,X86指令集本身屬于一種復(fù)雜指令集(CISC)。長期以來,使用X86指令集的處理器架構(gòu)一直沿用寄存器結(jié)構(gòu)。 相比那些使用精簡指令集(RISC)的處理器架構(gòu)來說,由于程序可見的寄存器數(shù)量較少,因此造成傳輸延遲,性能以及流水線工作效率相對落后,從而給X86架構(gòu)處理器的表現(xiàn)造成了影響。同時程序和編譯器的優(yōu)化難度也較大。
雖然近代的X86處理器中都增加了許多程序不可見的內(nèi)部寄存器,并通過寄存器換名(Register Rename)技術(shù)變相地增大通用寄存器的數(shù)量,來彌補這一不足。然而這種措施由于只能通過處理器的硬件控制來實施,程序員無法根據(jù)需要來,靈活控制實際的寄存器使用狀況,顯然不如直接增加可見的通用寄存器來的有效。
而K8針對上述問題作出了改良。處理器在64位狀態(tài)下工作時,增加了大量的程序員可見寄存器以供編程者使用,如下圖:
X86-64的寄存器擴展(點擊察看大圖)
可以說,這些額外增加的寄存器(我們姑且稱之為“寄存器擴展“吧),才是真正能為桌面用戶帶來的好處之所在!
不過,盡管如此,我們也只能在K8的64位模式下,才能全部用到這些多出來的寄存器擴展資源(紫色部分的寄存器)。因為為了兼容以往的X86指令,K8所用的X86-64指令集將其所支持的指令分成了如下表所示的數(shù)個部分:
如上表所見,前面我們所說到的令人激動的寄存器擴展功能,并不是“即插即用“的。它需要我們將操作系統(tǒng)向64位轉(zhuǎn)換,同時重新按64位的編程規(guī)范編譯應(yīng)用程序。在其它模式下,我們根本無法享受到這些好處。
首先我們來看看來自NVIDIA的Blobby Dancer,這個軟件是一個3D的程序,也是今天我們測試過程中唯一的一個3D程序。這個軟件的內(nèi)容是一個由液體組成的人在不斷的跳舞,不同的系統(tǒng)能夠?qū)е虏煌膸俾剩@也是我們評判性能的標準。
這個軟件中包含32bit版本和64bit版本兩個部分,分作兩個可執(zhí)行程序。
測試方法:原本在NVIDIA提供的這個軟件中是沒有提供測試功能的,我們注意到,AMD提供的軟件中包含有兩個獨立的可執(zhí)行程序,這兩個可執(zhí)行程序會自動調(diào)用NVIDIA提供的應(yīng)用程序進行測試。
測試的基準是記錄一段時間的幀速率,取平均值,幀速率越高的性能越好。
我們看到,在這個測試中,64位系統(tǒng)體現(xiàn)出了非常好的性能,64位的程序能夠比32位的程序成績高30%以上。
同時我們注意到,在32位環(huán)境下運行的測試,成績非常低,這起初讓我以為是測試環(huán)境出了什么問題,但是后來通過3DMark檢驗,發(fā)現(xiàn)32位的系統(tǒng)并沒有什么問題,在這個測試中仍然是這個成績。
作為我們最為關(guān)心的項目,3D測試中我們看到64位的優(yōu)勢還是很大的,這樣的情況大大增強了我們對于64位系統(tǒng)的信心,因為我們幾乎可以預(yù)料到在全面64位化的時候,所有游戲的幀速率將提高30%,這是多么美好啊。
&nbV>
接下來我們看看DivX Encorder這個測試軟件,這個軟件的主要作用是將視頻文件壓縮成為MPEG-4視頻,采用的編碼方式是Divx 5.03。
這個程序是一個基于命令行的程序,需要用Windows的命令行程序進入。測試的基準是看壓縮過程需要的時間,時間越短的性能越好。
DivX壓縮的這個項目也是同樣的重要,因為這是一個非常考驗處理器性能的應(yīng)用。在這個測試中,我們感受到了WinXP Pro X64的威力,在這個操作系統(tǒng)下,無論是采用32位的程序還是64位的程序,都有非常好的表現(xiàn),甚至在32位程序運行的時候效率還要好一些。
不同的操作系統(tǒng)做同一件事情,效率能夠相差一倍,這樣的差距真的是非常大了。由此可見,WinXP X64版的性能還是非常令人滿意的。
如果讓我們注意一下具體的各個部分的情況,又能發(fā)現(xiàn)一些有意思的事情:
對于IO部分,操作系統(tǒng)對于成績影響比較大,采用64位操作系統(tǒng)的性能要好。
對于編碼壓縮,程序的版本影響較大,64位的程序的性能要明顯好于兩個32位的程序。
第三個程序名叫Mini-GZIP,這是一個壓縮工具,它采用的核心算法是
ZLIB 算法,這個軟件的作用就是將文件進行壓縮。
在這個軟件的測試中,是將一個25MB的文本文件壓縮,在這個過程中記錄所需要的時間,時間越短性能越好。
在這個壓縮程序的測試中,我們看到在純64位環(huán)境下的性能仍然是最好的,而且是大幅領(lǐng)先于另外的兩個程序。不過,我們在這個測試中發(fā)現(xiàn),在純32位模式下的成績要好于在64位環(huán)境下使用兼容模式運行32位程序的成績。
這也是一個測試軟件,這個軟件的主要作用是采用RSA加密算法,對文件進行加密。同樣的,這個軟件也需要命令行方式執(zhí)行。
這個測試中有數(shù)個測試程序,我們分別運行了32位的版本和64位的版本以比較成績的差別。在這輪測試中我們看到,在64位環(huán)境下運行64位程序,效能仍然是最好的,不過性能的差異沒有前面的那些程序那樣夸張了。
這個測試是我們看到的性能差距最小的一個測試,因為這個測試的主要內(nèi)容是查看內(nèi)存的帶寬,和處理器的運算關(guān)系不是很大,所以這部分的成績和硬件架構(gòu)的關(guān)系更大。
不過也正是因為這樣的成績,才能夠反映出A64架構(gòu)中對于32位和64位兩種模式都有非常好的兼容性,這大概就是A64能夠在兩種模式下都表現(xiàn)非常好的原因之一吧。
說實話,在這次測試之前,筆者自己都對這次的測試有所顧慮,因為我們并不知道在64位環(huán)境下的性能究竟會如何,不過通過我們的測試,當我們看到那些百分之好幾十的領(lǐng)先幅度的時候,我們不禁為64位暗自叫好。
這次的測試軟件是由AMD公司提供的,我們可以注意到,這些測試軟件還是包含的比較全面的,從媒體處理,到3D游戲,從壓縮編碼,再到加密解密,可以說這次的測試包括了處理器常用的幾個方面。
通過今天的測試,我們很明顯的感受到了64位的威力,也明白了為什么AMD早早的就在64位上做出如此大的努力,同樣也明白了Intel為什么也要轉(zhuǎn)身投入64位的陣營了。
隨著時間的推進,Intel的P4 6XX系列將于近期正式浮出水面,微軟的WinXP X64操作系統(tǒng)的正式版也將于近期發(fā)布,這些信息都在預(yù)示著一件事,這就是真正的64位大戰(zhàn)一觸即發(fā)。
不過,對于這場大戰(zhàn),我們似乎還少了一些東西,這就是64位的應(yīng)用程序,說是應(yīng)用程序,其實初期也就是測試程序,如何能夠全面反映出64位系統(tǒng)下的性能,單單靠今天我們的這幾個軟件是不夠的。目前已經(jīng)有越來越多的測試程序放出了64位的版本,我們PCPOP的處理器頻道(CPU.PCPOP.COM)將隨時關(guān)注這些信息,在第一時間給大家?guī)碜钚伦罟臏y試。
0人已贊
關(guān)注我們