你真的懂CPU多核多線程嗎

一.多核心:

單芯片多處理器( Chip Multiprocessors,簡稱CMP)是由美國斯坦福大學(xué)提出的,其思想是將大規(guī)模并行處理器中的SMP(對稱多處理器)集成到同一芯片內(nèi),各個(gè)處理器并行執(zhí)行不同的進(jìn)程。這種依靠多個(gè)CPU同時(shí)并行地運(yùn)行程序是實(shí)現(xiàn)超高速計(jì)算的一個(gè)重要方向,稱為并行處理。

多核心是指物理上的多個(gè)獨(dú)立CPU核心被集成在單個(gè)處理器上。

每個(gè)核心都可以獨(dú)立地執(zhí)行指令和處理數(shù)據(jù)。這意味著處理器可以同時(shí)處理多個(gè)任務(wù),從而提高整體性能。

例如,一個(gè)8核處理器意味著它內(nèi)部有8個(gè)獨(dú)立的計(jì)算核心,可以同時(shí)執(zhí)行8個(gè)線程或任務(wù)。若存在CPU多線程技術(shù),則可以同時(shí)執(zhí)行更多的線程或任務(wù)。

多核心CPU特別適合于多任務(wù)處理和需要大量并行計(jì)算的應(yīng)用,如視頻編輯、3D渲染、科學(xué)計(jì)算等。


二.多線程:

指的是一個(gè)處理器核心能夠在同一時(shí)間執(zhí)行兩個(gè)或更多的線程。

在多核心處理器中,每個(gè)核心都可以獨(dú)立地執(zhí)行線程。

多線程分為兩種類型:

1.Simultaneous MultiThreading:簡稱SMT。SMT可通過復(fù)制處理器上的結(jié)構(gòu)狀態(tài),讓同一個(gè)處理器上的多個(gè)線程同步執(zhí)行并共享處理器的執(zhí)行資源,最大限度地實(shí)現(xiàn)寬發(fā)射、亂序的超標(biāo)量處理(通過并行執(zhí)行多條指令以及靈活地調(diào)度指令的執(zhí)行順序),提高處理器運(yùn)算部件的利用率,緩和由于數(shù)據(jù)相關(guān)或 Cache未命中帶來的訪問內(nèi)存延時(shí)。

2.超線程技術(shù)(Hyper-Threading, HT):Intel引入超線程技術(shù)后,允許一個(gè)物理核心同時(shí)處理2個(gè)邏輯線程,使核心數(shù)與線程數(shù)形成1:2的關(guān)系,提高了系統(tǒng)的整體處理性能。


三.CPU核心數(shù)和線程數(shù)的關(guān)系:

目前主流CPU有雙核、三核、四核、六核、八核、十六核等,六核在2010年發(fā)布。

每個(gè)核心可以處理一定數(shù)量的線程數(shù)。

增加核心數(shù)目就是為了增加線程數(shù),因?yàn)椴僮飨到y(tǒng)是通過線程來執(zhí)行任務(wù)的。

一個(gè)CPU的性能不僅取決于核心數(shù)量,還取決于每個(gè)核心能夠處理的線程數(shù)量以及這些線程如何被調(diào)度和執(zhí)行。







微風(fēng)不燥,陽光正好,你就像風(fēng)一樣經(jīng)過這里,愿你停留的片刻溫暖舒心。

我是程序員小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等編程技術(shù)的技巧經(jīng)驗(yàn)分享),若作品對您有幫助,請關(guān)注、分享、點(diǎn)贊、收藏、在看、喜歡,您的支持是我們?yōu)槟峁椭淖畲髣?dòng)力。

歡迎關(guān)注。助您在編程路上越走越好!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容