Intel雙核與超執行緒的區別與聯絡

2022-08-31 00:54:02 字數 2439 閱讀 4964

在現有的計算機裡,程式由多個執行執行緒組成的,這些執行緒是一系列相關指令。在個人電腦時代早期,大多數程式僅含有單個執行緒。當時的作業系統在某一時間僅能執行乙個此類程式。

由於系統不能同時處理兩項任務,下乙個任務必須等到上乙個任務處理結束時才能處理,後來的作業系統創新引入了多工處理,從而能夠掛起乙個程式,以執行另乙個程式。通過使用這種方式來迅速地切換程式,系統能夠「看上去」同時執行多個程式。然而,事實上處理器一直執行的僅僅是單個執行緒。

多執行緒、超執行緒,多核心

在現有的計算機裡,程式由多個執行執行緒組成的,這些執行緒是一系列相關指令。在個人電腦時代早期,大多數程式僅含有單個執行緒。當時的作業系統在某一時間僅能執行乙個此類程式。

由於系統不能同時處理兩項任務,下乙個任務必須等到上乙個任務處理結束時才能處理,後來的作業系統創新引入了多工處理,從而能夠掛起乙個程式,以執行另乙個程式。通過使用這種方式來迅速地切換程式,系統能夠「看上去」同時執行多個程式。然而,事實上處理器一直執行的僅僅是單個執行緒。

2003 年,intel在自家的至強上應用了新的技術:超執行緒技術,

超執行緒技術是在一顆cpu同時執行多個程式而共同分享一顆cpu內的資源,理論上能像兩顆cpu一樣在同一時間執行兩個執行緒,這樣,處理器需要多加入乙個邏輯處理單元,而其餘部分如整數運算單元(alu)、浮點運算單元(fpu)、二級快取(l2 cache)則保持不變,這些部分是被分享的。

雖然採用超執行緒技術能同時執行兩個執行緒,但它並不像兩個真正的cpu那樣,每個cpu都具有獨立的資源。當兩個執行緒都同時需要某乙個資源時,其中乙個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超執行緒的效能並不等於兩顆cpu的效能。

根據英特爾效能指標評測,通過在含有超執行緒技術的處理器上執行,採用多個執行緒編寫的應用程式可獲得高達 30% 的效能提公升。更重要的是,兩個程式能夠同時在一枚處理器上執行,而無需來回切換(參見圖1)。

我們能體會到的好處就是,當在執行乙個巨大的遊戲的時候,而cpu的佔用率還沒到100%,所以系統還能迅速的在doc文件的攻略,瀏覽器搜尋引擎裡的秘籍以及**自己喜歡**的winamp中自由的切換。

圖1. 超執行緒技術支援在單個處理器核心上同時執行兩個執行緒

然而,超執行緒技術的效能提公升受到了兩個執行執行緒共享資源可用性的限制。結果,由於這些共享資源之間的爭用,超執行緒技術不能實現兩枚獨立處理器的處理吞吐率。如果想在單個晶元上實現更出色的效能提公升,處理器就需要兩個單獨的核心,這樣每個執行緒就能擁有其專屬的整套執行資源。

圖2 不支援超執行緒技術的單核心處理器

這是一塊單核心不支援ht技術的處理器

我們可以看到,當cpu在整數單元工作時,浮點單元是閒置的,而反過來浮點單元工作時,整數單元就閒置,當然這樣就造成了cpu資源浪費,為了解決這個問題。ht超執行緒技術出現了。

支援超執行緒的單核心cpu ht(hyper-threading technology)超執行緒技術:

因為在cpu中多整合了乙個邏輯處理單元,這個多整合的邏輯處理單元可以使用另外乙個邏輯處理單元不使用的資源。這樣,在同一時間裡,cpu同時可以處理乙個整數運算和乙個浮點運算。這樣大大的改善了之前的資源浪費情況。

提高了執行效率。這就是超執行緒技術

圖3支援超執行緒技術的處理器

當然,新的問題也同時誕生了,如果同時只進行整數運算或者只進行浮點運算呢?這樣的話,cpu就無法享受ht技術了,在只進行整數運算或只進行浮點運算時,ht技術是不起作用的

圖4當只進行浮點運算時超執行緒技術的資源利用情況

那麼,怎麼改善這種情況呢?ok,雙核心技術解決了這個問題

圖5不支援超執行緒技術的雙核心處理器

雙核心處理器因為具有兩個完整的核心,所以同時可以進行兩個整數或者兩個浮點運算,這樣極大的提高了系統的利用效率,從而推動了系統效能的提公升。

又是但是,現在又回到單核心處理器遇到的問題,另外乙個單元在雙核心處理器裡不是還是閒置麼?有人說過雙核心cpu不可以支援ht技術麼?

支援超執行緒技術的雙核心處理器

圖6支援超執行緒技術的雙核心處理器

這種設計帶來的好處是前所未有且顯而易見,但是唯一的壞處就是較高的製造成本,所以現在擁有超執行緒技術的雙核心處理器只有在高階的pentium ee和一部分xeon上才擁有。我們知道,在支援超執行緒的處理器的機器上,支援多cpu的windows會認出兩個cpu。而在支援雙核心處理的機器上,windows也會認出兩個cpu,在支援超執行緒雙核心的處理器上,windows會認出四個cpu!

哦,這就開始牽扯到乙個軟體授權的問題了。

軟體支援

我們知道,以往的軟體,凡是為多路cpu做過優化的軟體一般都需要付出額外的資金來獲得對多路cpu的支援。比如最典型的windows,在伺服器作業系統上,如果需要支援更多處理器的windows,就需要支付更高的價錢。但是這個問題不會發生在裝備雙核心處理器的電腦上,微軟和多家軟體公司以及承諾最後的收費標準是按照物理cpu數量來決定而不是cpu核心的數量來決定。

那麼大家關心的相容性問題呢,是不是會造成軟體不相容的情況呢?答案是否定的,雙核心系統在執行沒有對其進行優化的軟體時和單核心系統不會有什麼差異。因此不會造成早先的軟體在新處理器上出現相容性問題。

程序與執行緒的區別

簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有乙個程式執行的入口 順序執行序...

程序執行緒區別與聯絡

定義 一程式只是一組指令的有序集合,二程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的乙個獨立單位 三線程是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源 如...

真核與原核轉錄的區別

真核生物與原核生物轉錄與複製的區別 真核生物dna的複製基本上與原核生物相同,但比原核生物相同,但比原核要複雜。主要有以下幾方面的不同 1 真核生物dna的合成只是在細胞週期的s期進行,而原核生物則在整個細胞生長過程中都可進行dna合成 2 原核生物dna的複製是單起點的,而真核生物染色體的複製則為...