基本概況
CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的
指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從主流體系結構講,指令集可分為
複雜指令集和
精簡指令集兩部分,而從具體運用看,如
Intel的
MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)、SEE3和AMD的
3DNow!等都是CPU的
擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。通常會把CPU的擴展指令集稱為"CPU的指令集"。
SSE3指令集也是規模最小的指令集,此前
MMX包含有57條命令,SSE包含有50條命令,
SSE2包含有144條命令,
SSE3包含有13條命令。
運用
在最初發明計算機的數十年里,隨著計算機功能日趨增大,性能日趨變強,內部元器件也越來越多,指令集日趨複雜,過於冗雜的指令嚴重的影響了計算機的工作效率。後來經過研究發現,在計算機中,80%程式只用到了20%的指令集,基於這一發現,
RISC精簡指令集被提了出來,這是計算機系統架構的一次深刻革命。
RISC體系結構的基本思路是:抓住
CISC指令系統指令種類太多、
指令格式不規範、
定址方式太多的缺點,通過減少指令種類、規範指令格式和簡化定址方式,方便處理器內部的
並行處理,提高
VLSI器件的使用效率,從而大幅度地提高處理器的性能。
基本分類
從現階段的主流體系結構講,指令集可分為
複雜指令集和精簡指令集兩部分,而從具體運用看,如
Intel的
MMX(Multi Media Extended)、
SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow通常會把CPU的
擴展指令集稱為"CPU的指令集"。
指令分類
CISC
CISC指令集,也稱為
複雜指令集,英文名是
CISC,(Complex Instruction Set Computer的縮寫)。在CISC
微處理器中,程式的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。
順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是
英特爾生產的x86系列(也就是
IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是新起的
X86-64(也被成
AMD64)都是屬於CISC的範疇。
X86指令集是
Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981年推出的世界第一台PC機中的CPU—i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶片,以後就將X86指令集和X87指令集統稱為X86指令集。
雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386、i80486直到過去的PII
至強、PIII至強、Pentium 3,最後到Pentium 4系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程式以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用
X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了龐大的X86系列及兼容CPU陣容。x86CPU主要有
intel的伺服器CPU和AMD的
伺服器CPU兩類。
RISC
RISC是英文“Reduced Instruction Set Computing ” 的縮寫,中文意思是“
精簡指令集”。它是在
CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程式中出現的頻度卻占80%。複雜的指令系統必然增加
微處理器的複雜性,使處理器的研製時間長,成本高。並且複雜指令需要複雜的操作,必然會降低計算機的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU ,RISC型CPU不僅精簡了指令系統,還採用了一種叫做“
超標量和
超流水線結構”,大大增加了
並行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的
CISC(
複雜指令集)相對。相比而言,RISC的
指令格式統一,種類比較少,
定址方式也比複雜指令集少。當然處理速度就提高很多了。在中高檔伺服器中普遍採用這一
指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的作業系統
UNIX,
Linux也屬於類似UNIX的作業系統。RISC型CPU與
Intel和AMD的CPU在軟體和硬體上都不兼容。在中高檔伺服器中採用
RISC指令的CPU主要有以下幾類:
PowerPC處理器 、
SPARC處理器、
PA-RISC處理器、
MIPS處理器、
Alpha處理器。
IA-64
EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)是否是RISC和
CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像
Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的套用軟體比基於
Unix下的套用軟體要好得多。
Intel採用EPIC技術的
伺服器CPU是
安騰Itanium(開發代號即Merced)。它是
64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的作業系統,在軟體上加以支持。在
Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的
x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的
IA-64架構便誕生了。IA-64 在很多方面來說,都比
x86有了長足的進步。突破了傳統
IA32架構的許多限制,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
IA-64
微處理器最大的缺陷是它們缺乏與x86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(
Itanium、Itanium2 ……)引入了x86-to-IA-64的
解碼器,這樣就能夠把
x86指令翻譯為
IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是 直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應用程式時候的性能非常糟糕。這也成為
X86-64產生的根本原因。
X86-64
AMD公司設計,可以在同一時間內處理64位的整數運算,併兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途
暫存器,如果是32
位運算操作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”和“轉換執行”的區別,其指令欄位是8位或32位,可以避免欄位過長。
x86-64(也叫
AMD64)的產生也並非空穴來風,
x86處理器的32bit
定址空間限制在4GB記憶體,而
IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上AMD在x86-64架構中為了進行64
位運算,AMD為其引入了新增了R8-R15
通用暫存器作為原有X86處理器暫存器的擴充,但在而在32位環境下並不完全使用到這些暫存器。原來的
暫存器諸如
EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新暫存器以提供對
SSE2的支持。暫存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及暫存器,
x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標準已經被引進在AMD伺服器處理器中的
Opteron處理器。
而推出了支持64位的EM64T技術,再還沒被正式命為
EM64T之前是IA32E,這是英特爾
64位擴展技術的名字,用來區別
X86指令集。
Intel的EM64T支持64位sub-mode,和AMD的
X86-64技術類似,採用64位的線性平面定址,加入8個新的
通用暫存器(
GPRs),還增加8個暫存器支持
SSE指令。與AMD相類似,Intel的
64位技術將兼容IA32和IA32E,只有在運行
64位作業系統下的時候,才將會採用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同
AMD64一樣是向下兼容的。
Intel的
EM64T將完全兼容AMD的X86-64技術。Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容
x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
擴展
綜述
對於CPU來說,在基本功能方面,它們的差別並不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面性能,又開發了擴展指令集,擴展指令集定義了新的數據和指令,能夠大大提高某方面數據處理能力,但必需要有軟體支持。
MMX
MMX發布於1997年,一共57條指令,除了
emms、movd和movq這3個指令,其他所有的
MMX指令都以字母p開頭。MMX指令與
FPU(
浮點運算器)使用同樣的8個
通用暫存器,準確說是借用了FPU每個暫存器的前64位,這樣MMX指令一次最多可以處理8個位元組或者4個位元組或者2個雙位元組或者1個4位元組的數據,理論上可以將
運算速度最高提高8倍。 MMX與FPU共用
暫存器證明了
Intel的短視,因為如果FPU要使用暫存器,
MMX這時必須暫時退出,等FPU用完之後才能恢復原狀。加上早期
Intel處理器具有很強的
浮點運算能力,遊戲開發者都喜歡採用浮點運算,衝突的結果就是MMX的作用大打折扣,甚至有時還會造成性能的瞬間劇降。 Intel沒有沿用MMX的稱呼,1999年的Pentium Ⅲ處理器上指令集改稱SSE。SSE採用了單獨的暫存器,解決了與
FPU衝突的問題。8個128位單獨的SSE暫存器,支持同時處理 4 個
單精度浮點數,能夠同時處理的數據比64位的MMX翻了一番。SSE一共有70條指令,進一步提升了CPU多媒體處理能力。也從這時開始,SSE的名稱固定了下來。MMX指令集
Intel代表處理器:Pentium MMX
SSE
SSE(Streaming SIMD Extensions,單指令多數據流擴展)指令集是
Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經通過各種渠道公布過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,並一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代晶片命名的指令集名稱,而所謂的"MMX2"則完全是硬體評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式發布過關於MMX2的訊息。
而最終推出的SSE指令集也就是所謂勝出的"網際網路SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條
SIMD(單指令多數據技術)
浮點運算指令、12條MMX 整數運算增強指令、8條最佳化記憶體中連續
數據塊傳輸指令。理論上這些指令對流行的圖像處理、浮點運算、3D運算、
視頻處理、音頻處理等諸多多媒體套用起到全面強化的作用。
SSE指令與
3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE兼容
MMX指令,它可以通過
SIMD和單
時鐘周期並行處理多個浮點數據來有效地提高
浮點運算速度。
SSE指令集
Intel代表處理器:Pentium III
SSE2
SSE2(Streaming SIMD Extensions 2,
Intel官方稱為SIMD 流技術擴展 2或
數據流單指令多數據
擴展指令集 2)指令集是Intel公司在SSE指令集的基礎上發展起來的。相比於SSE,
SSE2使用了144個新增指令,擴展了
MMX技術和SSE技術,這些指令提高了廣大應用程式的運行性能。隨
MMX技術引進的
SIMD整數指令從64位擴展到了128 位,使SIMD整數類型操作的有效執行率成倍提高。雙倍精度浮點SIMD指令允許以 SIMD格式同時執行兩個浮點操作,提供雙倍精度操作支持有助於加速內容創建、財務、工程和科學套用。除SSE2指令之外,最初的
SSE指令也得到增強,通過支持多種數據類型(例如,雙字和四字)的算術運算,支持靈活並且
動態範圍更廣的計算功能。
SSE2指令可讓軟體開發員極其靈活的實施算法,並在運行諸如
MPEG-2、MP3、3D圖形等之類的軟體時增強性能。
Intel是從
Willamette核心的Pentium 4開始支持
SSE2指令集的,而AMD則是從K8架構的SledgeHammer核心的
Opteron開始才支持SSE2指令集的。
SSE2指令集Intel代表處理器:老Pentium 4
SSE3
SSE3指令集Intel代表處理器:基於Prescott核心新Pentium 4
3D Now
3DNow!是AMD公司開發的
SIMD指令集,可以增強浮點和多媒體運算的速度,並被AMD廣泛套用於其K6-2 、K6-3以及Athlon(K7)處理器上。
3DNow!指令集技術其實就是21條
機器碼的
擴展指令集。
與Intel公司的
MMX技術側重於整數運算有所不同,3DNow!指令集主要針對
三維建模、
坐標變換 和效果渲染等三維套用場合,在軟體的配合下,可以大幅度提高3D處理性能。後來在Athlon上開發了Enhanced 3DNow!。這些AMD標準的SIMD指令和
Intel的SSE具有相同效能。因為受到Intel在商業上以及Pentium III成功的影響,軟體在支持SSE上比起
3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟體中能獲得更好的效能。
一個指令,同時處理多個數據的好創意,其他CPU當然也不會放過。AMD看到Intel MMX,眼紅之下在K6 CPU里搞出了一個類似的3DNow!因為
MMX與
浮點數混用時性能會有下降的情況,支持浮點數
並行處理的3DNow!找著了機會。其實是AMD占了
Intel的便宜,因為很多程式設計師把3DNow!作為MMX的一個補充,處理整數的時候用MMX,處理浮點數的時候用3DNow!。
1999年的時候,AMD在
Athlon處理器上又添加了幾個指令,這就是
3DNow!+,又被稱為3DNow!2。不過看到大勢已去,AMD終於放棄了在
多媒體指令集上的抵抗,轉而支持Intel SSE,這樣雙方一直到
SSE3都相安無事。統一的標準其實是一件好事,要是一個軟體分別有SSE版本和3DNow!+版本,開發者和用戶很快都會不堪其擾。
但是AMD和
Intel在多媒體指令集上又開始大打出手,大有分道揚鑣的勢頭。與Intel SSE4.1針鋒相對,AMD Phenom只支持SSE4A指令集,並且AMD在搶先放出了
SSE5的風聲,而Intel則斷然拒絕支持AMD的SSE5,直到現在雙方還相持不下。
SSE4
SSE4指令集是
Conroe架構所引入的新指令集。這項原本計畫套用於
NetBurst微架構Tejas核心處理器之上的全新技術也隨著它的夭折最終沒能實現,這不能不說是個遺憾,但是
SSE4指令集出現在了Conroe上又讓我們看到了希望。
SSE4指令集共包括16條指令,不過雖然
扣肉處理器推出已經有一些時日,但英特爾仍沒有公布SSE4指令集的具體資料。這相當令人感到納悶。也許英特爾是基於特殊的考慮,僅讓少數合作軟體廠商取得數據,只是這種作法實在很沒有說服力就是了,天底下沒有哪家處理器廠商,希望自己新增的指令越少人用越好。
不過,從Intel
Core微架構針對
SSE指令所作出的修改被稱之為“Intel Advanced Digital Media Boost”技術來看,未來
SSE4將更注重針對視頻方面的最佳化,我們認為SSE4主要改進之處可能將針對英特爾的Clear Video高清視頻技術及
UDI接口規範提供強有力的支持。這兩項技術基於965
晶片組,
Intel的官方把Clear Video技術定義為:支持高級解碼、擁有預處理和增強型3D處理能力。
值得一提的是,在SSE4中另一個重要的改進就是提供完整128
位寬的SSE執行單元,一個頻率周期內可執行一個128位SSE指令。Conroe中SSE的ADDPS(4D 32bit共128bit,
單精度加法)、MULPS(4D 32bit共128bit,單精度乘法)和
SSE2的ADDPD(2D 64bit共128bit,雙精度加法)、MULPD(2D 64bit共128bit,雙精度乘法),這四條重要SSE算術指令的吞吐周期都降低到1個周期,真正做到了英特爾宣稱的每個周期執行一條128位向量加法指令和一條128位向量乘法指令的能力。
據
Intel指出,在套用
SSE4指令集後,
Penryn增加了2個不同的32Bit向量整數乘法運算支持,引入了8 位無符號 (
Unsigned)最小值及最大值運算,以及16Bit 及32Bit 有符號 (Signed) 及無符號運算,並有效地改善
編譯器效率及提高向量化整數及
單精度代碼的運算能力。同時,SSE4 改良插入、提取、尋找、離散、跨步負載及存儲等動作,令向量運算進一步專門化。
SSE4加入了6條
浮點型點積運算指令,支持單精度、雙精度
浮點運算及浮點產生操作,且IEEE 754指令 (Nearest, -Inf, +Inf, and Truncate) 可立即轉換其路徑模式,大大減少延誤,這些改變將對遊戲及 3D 內容製作套用有重要意義。
此外,SSE4加入串流式負載指令,可提高以圖形幀緩衝區的讀取數據頻寬,理論上可獲取完整的快取
快取行,即每次讀取64Bit而非8Bit,並可保持在臨時緩衝區內,讓指令最多可帶來8倍的讀取頻寬效能提升,對於視訊處理、成像以及
圖形處理器與
中央處理器之間的共享數據套用,有著明顯的效能提升。
據
Intel資深工程師兼 Penryn 微架構主管 Stephen Fischer 表示,全新 DivX Alaph 內部測試版本已完全支持
SSE4指令集, 1顆 3.33G Hz 的
Yorkfield的運算效能,相比上代Intel Core 2 Duo QX6800快約105% ,其中約7成的增益來自SSE4指令集,效果令人滿意。
SSSE3
(Supplemental Streaming SIMD Extensions 3)內置於Intel公司微處理器中的多媒體關聯的擴張指令集。是擴張了
SSE3的產品,於2006年7月首次裝載在Core 2 Duo處理器中。
SSE3裝載了用一個命令一口氣處理複數個數據的「
SIMD」的處理方式,特別在處理語音和動畫關聯上能夠高速地發揮力量。
SSSE3是在 SSE3命令的基礎上又添加了32個新命令的產品,其原名為TNI,是
SSE4指令集的子集,包含有13條命令。目前SSSE3也是最先進的指令集,增強了CPU的多媒體、圖形圖象和Internet等的處理能力。
SSE4.2
在
Nehalem架構的Core i7處理器中,SSE4.2指令集被引入,加入了STTNI(字元串文本新指令)和ATA(面向套用的加速器)兩大最佳化指令。
SSE4.2新加入的幾條新指令有兩類。第一類是字元串與文本新指令STTNI,STTNI包含了四條具體的指令。STTNI指令可以對兩個16位的數據進行匹配操作,以加速在XML分析方面的性能。據
Intel表示,新指令可以在XML分析方面取得3.8倍的性能提升。
第二類指令是面向套用的加速指令ATA。ATA包括
冗餘校驗的
CRC32指令、計算源
運算元中非0位個數的POPCNT指令,以及對於打包的64位
算術運算的
SIMD指令。CRC32指令可以取代上層數據協定中經常用到的循環冗餘校驗,據Intel表示其
加速比可以達到6.5~18.6倍;POPCNT用於提高在DNA基因配對、聲音識別等包含大數據集中進行模式識別和搜尋等操作的應用程式性能。 Intel也公布了支持新指令集的開發工具。這些工具涵蓋了主流的編譯開發環境。已明確支持SSE4.2的
開發環境包括:Intel C++ Compiler 10.X、微軟的Visual Studio 2008 VC++、GCC 4.3.1、Sun Studio Express等。程式設計師可以直接使用高級程式語言編程,
編譯器會自動生成最佳化結果。當然程式設計師也可以用內嵌彙編的方式來達到目的。
AMD64
AMD的athlon 64系列處理器的
64位技術是在
X86指令集的基礎上加入了
X86-64的64位擴展X86指令集,這就使得athlon 64系列處理器可兼容原來的32位的X86軟體,並同時支持X86-64的擴展
64位計算,並且具有64位的定址能力,使得它成為真正的64位X86構架處理器。在採用X86-64架構的Athlon 64處理器中,X86-64指令集中新增了幾組處理器
暫存器,它能夠提供更加快速的執行效率。暫存器是處理器用來創建和儲存CPU運算結果和其他運算結果的地方,標準的X86構架中包括8組
通用暫存器,而在AMD的X86-64架構中又增加了8組,將通過暫存器的數目提高到了16組。在這基礎之上,
X86-64指令集還另外增加了8組128位的XMM暫存器,也叫做SSE暫存器。它能夠給單指令多數據流技術(
SIMD)運算提供更多的存儲空間,這些128位的暫存器能夠提供在矢量和標量計算模式下進行128位雙精度處理,這也為3D數據處理、矢量分析和虛擬技術提供了良好的
硬體基礎。由於提供了更多的
暫存器,按照X86-64標準生產的處理器可以更有效率的處理數據,在一個
時鐘周期內能夠傳輸更多的信息。
EM64T
EM64T(Extended Memory 64 Technology)也就是Intel公司開發的64位
記憶體擴展技術。它實際上就是Intel
IA-32構架體系的擴展,既IA-32E(Intel Architectur-32 Extension)。
Intel的IA-32處理器通過加入EM64T技術便可在兼容IA-32軟體的情況下,允許軟體程式利用更多的
記憶體地址空間,並且允許程式進行32 位
線性地址寫入。Intel的
EM64T所強調的是32位技術與
64位技術的兼容性,為採用EM64T的處理器增加了8個64位
通用暫存器,並將原有的32位通用暫存器全部擴展為64位,這樣也提高了處理器的整數運算能力。另外增加的8個SEE
暫存器也提供了對SSE、
SSE2和
SSE3指令的支持。
指令展望
AMD表示,
SSE5指令集的使命之一是增強
高性能計算套用,並充分發揮
多核心、多媒體的並行優勢。SSE5將把以往只存在於高性能特殊架構里的功能引入到x86平台中,以此最大化每條指令的輸出能力,並增強代碼庫。
SSE5是128-bit指令集,一共有170條指令,其中基礎指令64條,新增的最重要的有兩條:
首先是“三
運算元指令”(3-Operand InstrUCtions)。x86指令以往只能處理雙運算元,而SSE5會提高到三運算元,達到RISC架構的水平,從而把多個簡單的指令集整合到更高效的一個單獨指令中,提高執行效率。
然後是“熔合乘法累積”(Fused Multiply Accumulate,FMACxx)。該技術可以把乘法和其他算法結合起來,保證之用一條指令就能完成
疊代運算,從而簡化代碼、提高效率,適用於真實圖形著色、快速照相渲染、空間化音頻、復向量(矢量)數學等場合。
除此之外還有整數乘法累積指令(IMAC,IMADC)、置換與條件移動指令、向量比較與測試指令、精度控制捨入與變換指令等等。
最新指令
市面上
Intel和AMD的桌面級處理器在X86指令集的基礎上,為了提升處理器各方面的性能,所以又各自開發新的指令集。指令集中包含了處理器對多媒體、3D處理等方面的支持,這些指令集能夠提高處理器對這某些方面處理器能力,但是需要有必要的軟體支持。Intel的主流桌面處理器共有兩個模式,傳統的
IA-32模式和IA-32E模式。在可支持
EM64T指令的處理器內有一個擴展功能激活暫存器(Extended Feature Enable Register),稱為IA-32_EFER的部件,它控制處理器的EM64T是否被激活。在普通情況下,處理器會作為一顆標準的IA-32處理器,如果在運行64位的軟體或程式時,EM64T就會被激活,那么處理器便會在IA-32E擴展模式下運行。