隨著英特爾全新酷睿微體系架構(Nehalem)的發(fā)布,很多人對該架構內采用的一些新技術表示出了濃厚的興趣。英特爾超線程(HT)技術即在其中。超線程技術適用于全新的英特爾酷睿i7處理器和英特爾至強5500系列處理器。
下文將詳細介紹英特爾超線程技術的一些細節(jié):
問:什么是英特爾超線程技術
答:英特爾超線程技術是全新英特爾酷睿i7處理器和英特爾至強5500系列處理器所具有的一種性能特點。簡單來說,它可使處理器中的1顆內核如2顆內核那樣在操作系統(tǒng)中發(fā)揮作用。這樣一來,操作系統(tǒng)可使用的執(zhí)行資源擴大了一倍,大幅提高了系統(tǒng)的整體性能。
在談論內核、線程、超線程這些術語時容易讓人產生混淆。為使后文便于理解,將把“超線程”稱為“硬件線程”,將“操作系統(tǒng)級線程”稱為“軟件線程”。為簡化概念,1個內核就是1個CPU。每個英特爾酷睿i7或英特爾至強5500處理器在出廠時均有4個內核(未來可能會提供其他版本)。
問:如何知道我的系統(tǒng)是否在使用超線程(HT)技術
答:首先,可以先確認下,是否使用的處理器、芯片組、操作系統(tǒng)及BIOS支持這項技術。當然,采用基于英特爾全新酷睿微體系架構(Nehalem)的處理器的臺式機和服務器平臺一般都支持該技術。其中大多數(shù)系統(tǒng)都允許把超線程技術作為一種BIOS選擇來啟用或禁用(一般預設為啟用狀態(tài))。用戶可以通過Windows中的任務管理器或Linux的/proc/cpuinfo命令查看處理器信息。如果系統(tǒng)支持超線程(HT)技術且啟用了超線程,則可看到的處理器數(shù)將是平臺實際擁有的物理內核數(shù)的一倍。例如,如使用的是雙路的英特爾至強5500系列服務器,則會看到這套系統(tǒng)擁有16個處理器。(8個物理內核上運行16個軟件線程,每個內核運行2個線程。) [img=upload/20090620154409-0.jpg] [img=upload/20090620154629-0.jpg] 在超線程技術禁用狀態(tài)(上圖)和啟用狀態(tài)(下圖)下,同一平臺上可用的CPU數(shù)量。
問:我可以在同一內核的2個不同線程上同時執(zhí)行2個應用程序么
答:可以。在1個內核上運行的2個軟件線程不一定非得是同一進程的線程。這2個軟件線程既可以是同一進程的線程(在多線程軟件情況下),也可以是2個單獨的應用程序的線程。至于哪2個軟件線程可以在1個超線程內核的2個硬件線程上運行則由操作系統(tǒng)決定。因此,答案是肯定的,即可以在同一內核上同時執(zhí)行2個不同的應用程序。
問:超線程技術是如何實現(xiàn)的
答:所有基于英特爾全新酷睿微體系架構(Nehalem)的處理器內核都可以執(zhí)行兩個獨立的指令集。不同的任務切換會需要處理器從一個指令的解碼/任務調配工作迅速切換到另一個指令的解碼/任務調配。而所有運算資源在在兩個硬件線程內是可以共享或是重復的。
問:我是否可以賦予一個硬件線程優(yōu)先權以保證它不會“餓著”
答:軟件開發(fā)人員有很多方法可以通過優(yōu)化代碼來配合超線程技術的使用。盡管不能特別指出讓某一個硬件線程具有優(yōu)先權(當然一些操作系統(tǒng)層面的工具是允許你將處理器設定運算優(yōu)先級的)。采用英特爾超線程技術可以確保某個硬件線程不會“餓著”。而需要做的只是采用英特爾VTunePerformanceAnalyzer和英特爾線程檔案器來診斷使用中的硬件線程是否運轉效率足夠,并正在進行最優(yōu)化的運作。
問:如果使用英特爾超線程技術,會對系統(tǒng)的性能有什么樣的提高
答:英特爾超線程技術可以有多種方式幫助提升運算性能。對于臺式機系統(tǒng)來說,英特爾超線程技術可以幫助臺式機同時進行多項應用。針對軟件編程者來說,通過英特爾超線程技術,你可以采用更多的軟件線程以獲得更多的運算核心。對于運算負荷更大的服務器來說,英特爾超線程技術可以激發(fā)出每個核心的運算潛能,將從而提升系統(tǒng)的資源利用率??偠灾?,由于英特爾超線程技術將通過提供更多的軟件線程,從而在運算時可以享受到更大內存等的應用體驗。