英特爾超線程技術
英特爾超線程技術
英特爾超線程技術是全新英特爾酷睿 i7 , 酷睿 i5 處理器和英特爾至強5500 系列處理器所具有的一種性能特點。簡單來說,它可使處理器中的1 顆內核如2 顆內核那樣在操作系統中發揮作用。這樣一來,操作系統可使用的執行資源擴大了一倍,大幅提高了系統的整體性能。
在談論內核、線程、超線程這些術語時容易讓人產生混淆。為簡化概念,1 個內核就是 1 個CPU。每個英特爾酷睿i7 或英特爾至強5500 處理器在出廠時均有4 個內核(未來可能會提供其他版本)。
超線程技術的原理很簡單,以前的單核心處理器,在同一時間內只可以處理一項工作 (線程,Thread),如果要處理一項以上的工作時,以前的單核心處理器是不可行的,所以英特爾就開發了超線程技術,以一個單核心的處理器,去模擬出雙核心的環境,但這並非能夠把處理器的效能提升雙倍,原因在於實體的核心始終只有一個,而效能有約百分之至二十至三十增長。
在奔騰四時代INTEL就已經引入了人超線程技術,而特意的加長的流水線反而成了HT技術的累贅。
所以推出奔騰D及後來的酷睿2系列時,英特爾並沒有加進超線程技術,因為奔騰D及酷睿2處理器已支援雙核心處理器的運作,而且INTEL也在默默的鑽研指令預測技術減少流水線。在酷睿2後期英特爾推出了酷睿2四核心處理器,因為有用戶反映雙核不足以應付手頭的工作,再到後來,英特爾酷睿i7出現了,他帶著 Intel 全新的超線程技術,很短的流水線這得益於他的指令分支預測技術,擁有著奔騰四無法企及的效率,它是四核心處理器加進了超線程技術,處理器同時支持處理八個線程的工作,在這種環境下電腦可掛很多應用程序,支持多線程的應用,因此即使N多程序同時運行,電腦也沒有運行減慢的感覺,操作起來依然是流暢如行雲流水。
其實超線程技術擁有最高的功耗效能比,加入超線程技術所增加的晶體管數目及功耗並不多,但卻相比增加一顆完整的核心更具性價比,加上酷睿i7微架構擁有高帶寬及高容量三級高速緩存的優勢,更能將超線程技術的功效發揮到極致。
要打開超線程技術,很簡單,一般而言,在BIOS內就可以設定超線程技術的啟動與否。當設定完成後,進入Windows的“我的電腦”,查看處理器,就能看出八個線程的工作情況。
加入超線程技術的英特爾酷睿i7處理器在多任務應用時最能發揮它的潛能,它可以同時處理N個的遊戲及多媒體軟體,而不會出現慢式死機。有人做了一些評測,是用Cinebench 10,跑Far Cry 2 及Company of Heroes來測試有打開超線程技術與沒有開啟的性能的區別。
以下是測試結果:
超線程技術 打開 關閉
Cinebench 10 1m06s 1m19s
Far Cry 2 (FPS) 43.5 FPS 40.5 FPS
Company of Heroes (FPS) 175.2 FPS 168 FPS.
從以上結果不難看出,加入超線程技術的英特爾酷睿i7處理器,打開超線程技術后明顯性能提升明顯。這無疑為追求高性能運算的用戶提供了更多保障,可以說英特爾酷睿i7是定位高端的用戶的最佳選擇。
英特爾超線程技術可以有多種方式幫助提升運算性能。對於台式機系統來說,英特爾超線程技術可以幫助台式機同時進行多項應用。針對軟體編程者來說,通過英特爾超線程技術,你可以採用更多的軟體線程以獲得更多的運算核心。對於運算負荷更大的伺服器來說,英特爾超線程技術可以激發出每個核心的運算潛能,將從而提升系統的資源利用率。總而言之,由於英特爾超線程技術將通過提供更多的軟體線程,從而在運算時可以享受到更大內存等的應用體驗。
MultiThreading多線程就是在一個單個的處理核心內同時運行多個工作線程的技術,和CMP(Chip MultiProcessing,晶元多處理)不同,後者是通過集成多個處理內核的方式來讓系統的處理能力提升——也就是現在常見的多核技術。主流的 處理器都使用了CMP技術。
然而CMP技術大規模增加了相應的電路,從而增加了成本,MT(MultiThreading)技術卻不是這樣,它只需要增加規模很少的部分線路(通常,約2%)就可以提升處理器的總體處理器能力,從而可以很簡單地提升相關應用的性能。
MultiThreading(或作Multi-Threading)來源於可以追溯到上個世紀90年代開始的 一個叫做ILP(Instruction Level Parallelism,指令級并行化)的思想,這個思想產生了一個叫做Throughput Computing(吞吐量計算)的名詞,用來提升如在線交易這樣的并行計算的性能。Throughput Computing的兩種主要方式就是MultiProcessing和MultiThreading。
最典型的:Intel Pentium 4或者Core i7
而且從應用的角度看,如在線事務處理OLTP、決策支持系統DSS、Web服務等這樣的應用的特點是具有豐富的 線程級并行性(Thread Level Parallelism)而缺乏ILP,因此也就促使了MultiProcessing和MultiThreading的出現。
MultiThreading多線程技術的思想有些類似於早期的分時共享計算系統,執行多個線程的處理器在遇到 某個線程由於Cache Miss或者分支預測失敗而停頓的時候,可以切換到另一個線程來執行。主流的MultiThreading具有著三種形式,差別在於線程間共享的資源 以及線程切換的機制:
多線程架構異同 | |||
多線程技術 | 線程間共享資源 | 線程切換機制 | 資源利用率 |
粗粒度多線程 Coarse-Grained MultiThreading | 除取指令緩衝、寄存器、控制邏輯外 | 流水線停頓時 | 提升單個執行單元利用率 |
細粒度多線程 Fine-Grained MultiThreading | 除寄存器、控制邏輯外 | 每時鐘周期 | 提升單個執行單元利用率 |
同步多線程 Simultaneous MultiThreading | 除取指令緩衝、返回地址堆棧、寄存器、控制邏輯、重排序緩衝、Store隊列外 | 所有線程同時活動,無切換 | 提升多個執行單元利用率 |
CMT——Coarse-Grained MultiThreading
它是最簡單的多線程技術,當單一執行線程遇到長時間的延遲,如Cache Missed時,就進行線程切換,直到原線程等待的操作完成,才切換回去。Coarse-Grained MultiThreading有時也叫Block MultiThreading堵塞多線程或者Cooperative MultiThreading協作多線程。
由於CMT很簡單,因此很多處理器都有實現,除了下面列出之外,很多嵌入式微控制器都有實現:
1999年的IBM RS64 III「Pulsar」(單核心/雙線程)
2005年Fujitsu SPARC64 VI「Olympus-C」(雙核心/4線程)
2006年Intel Itanium 2「Montecito」(雙核心/4線程)
2007年Intel Itanium 2「Montvale」(雙核心/4線程)
FMT——Fine-Grained MultiThreading
隨時可以在每個時鐘周期內切換多個線程,以追求最大的輸出能力——當然,隨時可以切換也是有代價的,它拉長了每個執行線程的 平均執行時間。Fine-Grained MultiThreading有時也叫Interleaved MultiThreading交錯多線程或者Pre-emptive MultiThreading搶先多線程。
和CMT比起來,FMT要複雜一些,因此相應的處理器就沒有那麼多,例:
2005年Sun UltraSPARC T1「Niagara」(8核心/32線程)
2007年Sun UltraSPARC T2「Niagara 2」(8核心/64線程)
SMT——Simultaneous MultiThreading
SMT具有多個執行單元,可以同時運行多條指令,因此才叫做“同步多線程”!CMT和FMT都是在單個執行單元下的技術,不同的線程在指令級別上並不是真正的“并行”,而SMT則具有多個執行單元,同一時間內可以同時執行多個指令,因此前兩者有時先歸類為 TMT(Temporal MultiThreading,時間多線程),以和SMT相區分。SMT起先源自充分挖掘超標量架構處理器的潛力——超標量的意思就是可以同時執行多個不同的指令。因此SMT具有最大的靈活性和資源利用率,然而實現也最複雜。例:
2002年Intel Pentium 4 Xeon「Prestonia」(單核心/雙線程)
2007年Sun UltraSPARC T2「Niagara 2」(8核心/64線程)
2008年Intel Core i7「Nehalem」(4核心/8線程)
首先,可以先確認下,是否使用的處理器、晶元組、操作系統及 BIOS支持這項技術。當然,採用基於英特爾架構,即英特爾全新酷睿微體系架構(Nehalem)的處理器的台式機和伺服器平台一般都支持該技術。其中大多數系統都允許把超線程技術作為一種 BIOS 選擇來啟用或禁用(一般預設為啟用狀態)。用戶可以通過 Windows中的任務管理器或 Linux的 /proc/cpuinfo 命令查看處理器信息。
如果系統支持超線程(HT)技術且啟用了超線程,則可看到的處理器數將是平台實際擁有的物理內核數的一倍。例如,如使用的是雙路的英特爾至強5500 系列伺服器,則會看到這套系統擁有16 個處理器。(8 個物理內核上運行 16 個軟體線程,每個內核運行 2 個線程。)
兩種技術
可以簡單地把雙核心技術理解為兩個“物理”處理器,是一種“硬”的方式;而超線程技術只是兩個“邏輯”處理器,是一種“軟”的方式。從原理上來說,超線程技術屬於Intel版本的多線程技術。這種技術可以讓單CPU擁有處理多線程的能力,而物理上只使用一個處理器。超線程技術為每個物理處理器設置了兩個入口─AS(Architecture State,架構狀態)介面,從而使操作系統等軟體將其識別為兩個邏輯處理器。這兩個邏輯處理器像傳統處理器一樣,都有獨立的IA-32架構,它們可以分別進入暫停、中斷狀態,或直接執行非凡線程,並且每個邏輯處理器都擁有APIC(Advanced Programmable Interrupt Controller,高級可編程中斷控制器)。雖然支持超線程的Pentium 4能同時執行兩個線程,但不同於傳統的雙處理器平台或雙內核處理器,超線程中的兩個邏輯處理器並沒有獨立的執行單元、整數單元、寄存器甚至緩存等等資源。它們在運行過程中仍需要共用執行單元、緩存和系統匯流排介面。在執行多線程時兩個邏輯處理器均是交替工作,假如兩個線程都同時需要某一個資源時,其中一個要暫停並要讓出資源,要待那些資源閑置時才能繼續。因此,超線程技術所帶來的性能提升遠不能等同於兩個相同時鐘頻率處理器帶來的性能提升。可以說Intel的超線程技術僅可以看做是對單個處理器運算資源的優化利用。而雙核心技術則是通過“硬”的物理核心實現多線程工作:每個核心擁有獨立的指令集、執行單元,與超線程中所採用的模擬共享機制完全不一樣。在操作系統看來,它是實實在在的雙處理器,可以同時執行多項任務,能讓處理器資源真正實現并行處理模式,其效率和性能提升要比超線程技術要高得多,不可同日而語。
2009年9月8日,英特爾正式發布了全新的Core i7/i5(酷睿i7/i5)處理器與P55主板晶元組。可以說全新的酷睿 i7/i5處理器是非常重要的產品,它們的發布意味著先進的Nehalem微體系架構CPU開始進入主流市場,同時將電腦的集成性和智能化提升到新的高度。 Core i7/i5處理器擁有卓越的性能,支持獨特的英特爾睿頻加速技術(英特爾清晰視頻技術),是期待頂級數字媒體、辦公應用、遊戲等應用體驗的用戶的理想之選。其中,性能卓越的酷睿i7處理器還支持英特爾超線程技術,給用戶帶來更強的多任務性能。而酷睿i5雖然沒有超線程技術,但是和新發布的i7處理器一樣,帶有英特爾新推出的睿頻加速技術。據英特爾方面介紹,該技術可根據程序的需求自動加速處理器,以保證程序流暢運行,同時還能根據系統情況智能化地切換到節電狀態。
英特爾公司中國區總裁楊敘先生髮表開幕致詞,英特爾始終致力於推動晶元製程與架構創新的進步,不斷推出性能更加強大、能效更加優化的產品。全新的酷睿i7/i5處理器,憑藉各種先進技術包括英特爾睿頻加速技術,進一步將智能化的性能和突破性的計算體驗推向主流市場。
英特爾睿頻加速技術是英特爾酷睿i7/i5處理器的獨有特性通過智能化地加快處理器速度,從而根據應用需求最大限度地提升性能。
現場演示了酷睿i5的遊戲性能與辦公性能,遊戲採用的是金山公司開發的《劍俠情緣3 Online》,這款網路遊戲為多核心處理優化,擁有逼真效果,酷睿i5處理器擁有非凡表現。酷睿i5的PhotoShop的渲染速度是Core 2 Q8300四核的2-3倍,是Pentium 4 630的N倍。
截至2009年9月18日, Intel酷睿 i7 860處理器,在國內已經銷售。
隨著AMD和Global Foundries(全球晶圓代工廠)宣布在2010年推出其32納米的產品后,英特爾表示已準備在2009年的IDF上展出自己32納米的處理器,,這種新工藝屬於通用名稱的Westmere。其推出的32納米CPU主要有Clarkdale (桌面)和 Arrondale (手機)兩個型號。首款32nm產品Westmere將會採用智能加速技術和英特爾超線程技術,並且增加英特爾圖形媒體加速器,雙通道DDR3集成內存控制器。他表示說,英特爾一直在按照鐘擺定律準時地推出產品。
早前推出的Lynnfield內建了內存控制器和PCI-E控制器,我們獲悉英特爾32納米的CPU也將會秉承這樣的設計。
我們應該可以在年底前看到32納米的Arrondale處理器,這將對AMD公司是個大大的打擊,首先英特爾公司將在工藝上大大領先AMD,充分掌握主動;第二,英特爾將提前一年把精力放在市場和程序研發上,而AMD還需要聚精會神的研發。
英特爾也應該宣布一個均使用了第二代High-K金屬柵極(HK+MG)晶體管技術,此舉也可以將處理器的漏電量降低10倍以上,這一技術的突破將繼續保證英特爾在行業內的領袖地位。