亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 >

      CPU的基礎知識大全

      時間: 懷健20 分享

      中央處理器(CPU)其實是一塊超大規(guī)模的集成電路,用顯微鏡觀察一平方毫米的地方都有超密集的電路集成。是一臺電腦的運算核心和控制核心,它的功能主要是解釋計算機指令以及處理各種軟件數據。下面就讓小編帶你去看看關于 CPU 的基礎知識大全吧 ,希望能幫助到大家!

      CPU 的基礎知識

      CPU是計算機的大腦。

      1、程序的運行過程,實際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。

      當程序要執(zhí)行的部分被裝載到內存后,CPU要從內存中取出指令,然后指令解碼(以便知道類型和操作數,簡單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個指令、解碼、執(zhí)行,以此類推直到程序退出。

      2、這個取指、解碼、執(zhí)行三個過程構成一個CPU的基本周期。

      3、每個CPU都有一套自己可以執(zhí)行的專門的指令集(注意,這部分指令是CPU提供的,CPU-Z軟件可查看)。

      正是因為不同CPU架構的指令集不同,使得x86處理器不能執(zhí)行ARM程序,ARM程序也不能執(zhí)行x86程序。(Intel和AMD都使用x86指令集,手機絕大多數使用ARM指令集)。

      注:指令集的軟硬件層次之分:硬件指令集是硬件層次上由CPU自身提供的可執(zhí)行的指令集合。軟件指令集是指語言程序庫所提供的指令,只要安裝了該語言的程序庫,指令就可以執(zhí)行。

      4、由于CPU訪問內存以得到指令或數據的時間要比執(zhí)行指令花費的時間長很多,因此在CPU內部提供了一些用來保存關鍵變量、臨時數據等信息的通用寄存器。

      所以,CPU需要提供 一些特定的指令,使得可以從內存中讀取數據存入寄存器以及可以將寄存器數據存入內存。

      此外還需要提供加法、減、not/and/or等基本運算指令,而乘除法運算都是推算出來的(支持的基本運算指令參見ALU Functions),所以乘除法的速度要慢的多。這也是算法里在考慮時間復雜度時常常忽略加減法次數帶來的影響,而考慮乘除法的次數的原因。

      5、除了通用寄存器,還有一些特殊的寄存器。典型的如:

      PC:program counter,表示程序計數器,它保存了將要取出的下一條指令的內存地址,指令取出后,就會更新該寄存器指向下一條指令。

      堆棧指針:指向內存當前棧的頂端,包含了每個函數執(zhí)行過程的棧幀,該棧幀中保存了該函數相關的輸入參數、局部變量、以及一些沒有保存在寄存器中的臨時變量。

      PSW:program status word,表示程序狀態(tài)字,這個寄存器內保存了一些控制位,比如CPU的優(yōu)先級、CPU的工作模式(用戶態(tài)還是內核態(tài)模式)等。

      6、在CPU進行進程切換的時候,需要將寄存器中和當前進程有關的狀態(tài)數據寫入內存對應的位置(內核中該進程的棧空間)保存起來,當切換回該進程時,需要從內存中拷貝回寄存器中。即上下文切換時,需要保護現(xiàn)場和恢復現(xiàn)場。

      7、為了改善性能,CPU已經不是單條取指-->解碼-->執(zhí)行的路線,而是分別為這3個過程分別提供獨立的取值單元,解碼單元以及執(zhí)行單元。這樣就形成了流水線模式。

      例如,流水線的最后一個單元——執(zhí)行單元正在執(zhí)行第n條指令,而前一個單元可以對第n+1條指令進行解碼,再前一個單元即取指單元可以去讀取第n+2條指令。這是三階段的流水線,還可能會有更長的流水線模式。

      8、更優(yōu)化的CPU架構是superscalar架構(超標量架構)。這種架構將取指、解碼、執(zhí)行單元分開,有大量的執(zhí)行單元,然后每個取指+解碼的部分都以并行的方式運行。比如有2個取指+解碼的并行工作線路,每個工作線路都將解碼后的指令放入一個緩存緩沖區(qū)等待執(zhí)行單元去取出執(zhí)行。

      9、除了嵌入式系統(tǒng),多數CPU都有兩種工作模式:內核態(tài)和用戶態(tài)。這兩種工作模式是由PSW寄存器上的一個二進制位來控制的。

      10、內核態(tài)的CPU,可以執(zhí)行指令集中的所有指令,并使用硬件的所有功能。

      11、用戶態(tài)的CPU,只允許執(zhí)行指令集中的部分指令。一般而言,IO相關和把內存保護相關的所有執(zhí)行在用戶態(tài)下都是被禁止的,此外其它一些特權指令也是被禁止的,比如用戶態(tài)下不能將PSW的模式設置控制位設置成內核態(tài)。

      12、用戶態(tài)CPU想要執(zhí)行特權操作,需要發(fā)起系統(tǒng)調用來請求內核幫忙完成對應的操作。其實是在發(fā)起系統(tǒng)調用后,CPU會執(zhí)行trap指令陷入(trap)到內核。當特權操作完成后,需要執(zhí)行一個指令讓CPU返回到用戶態(tài)。

      13、除了系統(tǒng)調用會陷入內核,更多的是硬件會引起trap行為陷入內核,使得CPU控制權可以回到操作系統(tǒng),以便操作系統(tǒng)去決定如何處理硬件異常。

      關于CPU的基本組成

      1、CPU是用來運算的(加法運算+、乘法運算__、邏輯運算and not or等),例如c=a+b。

      2、運算操作涉及到數據輸入(input)、處理、數據輸出(output),a和b是輸入數據,加法運算是處理,c是輸出數據。

      3、CPU需要使用一個叫做存儲器(也就是各種寄存器)的東西保存輸入和輸出數據。以下是幾種常見的寄存器(前文也介紹了一些)

      MAR: memory address register,保存將要被訪問數據在內存中哪個地址處,保存的是地址值

      MDR: memory data register,保存從內存讀取進來的數據或將要寫入內存的數據,保存的是數據值

      AC: Accumulator,保存算術運算和邏輯運算的中間結果,保存的是數據值

      PC: Program Counter,保存下一個將要被執(zhí)行指令的地址,保存的是地址值

      CIR: current instruction register,保存當前正在執(zhí)行的指令

      4、CPU還要將一些常用的基本運算工具(如加法器)放進CPU,這部分負責運算,稱為算術邏輯單元(ALU, Arithmetic Logic Unit)。

      5、CPU中還有一個控制器(CU, Control Unit),負責將存儲器中的數據送到ALU中去做運算,并將運算后的結果存回到存儲器中。

      控制器還包含了一些控制信號。

      5、控制器之所以知道數據放哪里、做什么運算(比如是做加法還是邏輯運算?)都是由指令告訴控制器的,每個指令對應一個基本操作,比如加法運算對應一個指令。

      6、例如,將兩個MDR寄存器(保存了來自內存的兩個數據)中的值拷貝到ALU中,然后根據指定的操作指令執(zhí)行加法運算,將運算結果拷貝會一個MDR寄存器中,最后寫入到內存。

      7、這就是馮諾依曼結構圖,也就是現(xiàn)在計算機的結構圖。

      關于CPU的多核和多線程

      1、CPU的物理個數由主板上的插槽數量決定,每個CPU可以有多核心,每核心可能會有多線程。

      2、多核CPU的每核(每核都是一個小芯片),在OS看來都是一個獨立的CPU。

      3、對于超線程CPU來說,每核CPU可以有多個線程(數量是兩個,比如1核雙線程,2核4線程,4核8線程),每個線程都是一個虛擬的邏輯CPU(比如windows下是以邏輯處理器的名稱稱呼的),而每個線程在OS看來也是獨立的CPU。

      這是欺騙操作系統(tǒng)的行為,在物理上仍然只有1核,只不過在超線程CPU的角度上看,它認為它的超線程會加速程序的運行。

      4、要發(fā)揮超線程優(yōu)勢,需要操作系統(tǒng)對超線程有專門的優(yōu)化。

      5、多線程的CPU在能力上,比非多線程的CPU核心要更強,但每個線程不足以與獨立的CPU核心能力相比較。

      6、每核上的多線程CPU都共享該核的CPU資源。

      例如,假設每核CPU都只有一個"發(fā)動機"資源,那么線程1這個虛擬CPU使用了這個"發(fā)動機"后,線程2就沒法使用,只能等待。

      所以,超線程技術的主要目的是為了增加流水線(參見前文對流水線的解釋)上更多個獨立的指令,這樣線程1和線程2在流水線上就盡量不會爭搶該核CPU資源。所以,超線程技術利用了superscalar(超標量)架構的優(yōu)點。

      7、多線程意味著每核可以有多個線程的狀態(tài)。比如某核的線程1空閑,線程2運行。

      8、多線程沒有提供真正意義上的并行處理,每核CPU在某一時刻仍然只能運行一個進程,因為線程1和線程2是共享某核CPU資源的。可以簡單的認為每核CPU在獨立執(zhí)行進程的能力上,有一個資源是唯一的,線程1獲取了該資源,線程2就沒法獲取。

      但是,線程1和線程2在很多方面上是可以并行執(zhí)行的。比如可以并行取指、并行解碼、并行執(zhí)行指令等。所以雖然單核在同一時間只能執(zhí)行一個進程,但線程1和線程2可以互相幫助,加速進程的執(zhí)行。

      并且,如果線程1在某一時刻獲取了該核執(zhí)行進程的能力,假設此刻該進程發(fā)出了IO請求,于是線程1掌握的執(zhí)行進程的能力,就可以被線程2獲取,即切換到線程2。這是在執(zhí)行線程間的切換,是非常輕量級的。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)

      9、多線程可能會出現(xiàn)一種現(xiàn)象:假如2核4線程CPU,有兩個進程要被調度,那么只有兩個線程會處于運行狀態(tài),如果這兩個線程是在同一核上,則另一核完全空轉,處于浪費狀態(tài)。更期望的結果是每核上都有一個CPU分別調度這兩個進程。

      關于CPU上的高速緩存

      1、最高速的緩存是CPU的寄存器,它們和CPU的材料相同,最靠近CPU或最接近CPU,訪問它們沒有時延(<1ns)。但容量很小,小于1kb。

      32bit:32__32比特=128字節(jié)

      64bit:64__64比特=512字節(jié)

      2、寄存器之下,是CPU的高速緩存。分為L1緩存、L2緩存、L3緩存,每層速度按數量級遞減、容量也越來越大。

      3、每核心都有一個自己的L1緩存。L1緩存分兩種:L1指令緩存(L1-icache)和L1數據緩存(L1-dcache)。L1指令緩存用來存放已解碼指令,L1數據緩存用來放訪問非常頻繁的數據。

      4、L2緩存用來存放近期使用過的內存數據。更嚴格地說,存放的是很可能將來會被CPU使用的數據。

      5、多數多核CPU的各核都各自擁有一個L2緩存,但也有多核共享L2緩存的設計。無論如何,L1是各核私有的(但對某核內的多線程是共享的)。

      史上最通俗易懂的CPU知識!

      cpu

      CPU知識科普

      CPU有幾個重要的參數:主頻、核心、線程、緩存、架構。那么他們到底是什么意思,又有啥聯(lián)系呢?以下知識通俗易懂,看完秒懂。

      一、主頻

      我們常在CPU的參數里看到3.0GHz、3.7GHz等就是CPU的主頻,嚴謹的說他是CPU內核的時鐘頻率,但是我們也可以直接理解為運算速度。

      舉個有趣的例子:CPU的主頻相當于我們胳膊的肌肉(力量),主頻越高,力量越大。

      主頻

      二、核心

      我們更多聽到的是,這個CPU是幾核幾核的,如2核、4核、6核、8核、16核等等。

      這個核心可以理解為我們人類的胳膊,2核就是兩條胳膊,4核就是4條胳膊,6核就是6條胳膊。

      核心

      三、線程

      光有胳膊(核心)和肌肉(頻率)是干不了活的,還必須要有手(線程)才行。

      一般來說,單核配單線程、雙核配雙線程或者雙核四線程、四核八線程等等,就相當于一條胳膊長一只手。后來由于技術越來越厲害,造出了一條胳膊長兩只手的情況,這樣干活的效率就大大的提高了。

      四、架構

      現(xiàn)在胳膊有了,肌肉有了,手也有了,就差一個工具就可以干活了,這個工具就是CPU的架構,架構對性能的影響巨大。

      新老架構區(qū)別很大

      所以說有句話叫“拋開架構看核心、頻率都是耍流氓!”這就是為啥以前AMD的CPU雖然核心數量和頻率都比同時期的英特爾高,但是依然流傳著“i3戰(zhàn)A8,i5秒全家、i7轟成渣”這樣的說法了。

      這個時候可能有的人不理解了,怎么看架構呢?這個其實不用擔心,因為一般來說,每一代CPU的架構都是一樣的,比如i3-8100、i5-8500、i7-8700都是8代的CPU,使用的架構也是一樣的,現(xiàn)在官方店在售的也都是最新款,因此架構主要看最一代處理器就夠了。

      五、緩存

      緩存也是CPU里一項很重要的參數。由于CPU的運算速度特別快,在內存條的讀寫忙不過來的時候,CPU就可以把這部分數據存入緩存中,以此來緩解CPU的運算速度與內存條讀寫速度不匹配的矛盾,所以緩存是越大越好。

      參數就算是說完了。既然開頭就說了“CPU也跟人腦一樣,術業(yè)有專攻?!蹦墙酉聛砭头治鲆徊ǎ裁礃拥腢適合干什么樣的工作。

      需求:游戲

      由于游戲運行需要的是粗暴直接的計算工作,所以主頻高的CPU會更有優(yōu)勢。

      這就好比我的工作是要搬個磚,肌肉強點,力氣大才是硬性需求。就算我有8條胳膊16只手,看起來張牙舞爪的很厲害,但是我搬磚的時候根本用不到,而且這些胳膊大多力氣又小,所以效果并不會很好。

      所以,有游戲需求的玩家可以選擇主頻高點的CPU,核心和線程數少一點無所謂。(當然不能太少,至少雙核四線程起步吧,如今主流都是4核4線程就差不多了)

      適合游戲的高主頻CPU

      整體來說,英特爾i3、i5、i7和銳龍2代的CPU主頻都挺高的,很適合玩游戲。英特爾后面帶“K”的CPU不僅主頻更高,而且是支持超頻的(需要用Z系或X系主板)。新出的AMD銳龍2代CPU主頻也很高,而且性價比也還不錯。

      需求:圖形渲染等專業(yè)工作需求

      對于需要進行大量并行運算的圖形渲染來說,多核心多線程同時工作能比單核心高主頻的傻大粗節(jié)省大量的時間。

      綠巨人雖然搬磚能力出眾,但是如果讓他去完成一幅復雜的拼圖,速度自然是比那種有多條胳膊和多只手同時工作的小機靈慢了不少。

      綠巨人有力使不出啊

      適合圖形渲染和視頻制作的CPU(多核、大緩存、性能強):

      圖形渲染 多核多線程CPU

      此外,還有AMD二代銳龍R5 2600X、R7 2700/2700X以及Intel八代酷睿i7 8700/K等都很適合。

      需求:日常家用,偶爾玩LOL、DNF等

      這一類的用戶平時就是看看網頁,看看視頻、看文檔、玩玩LOL、DNF等游戲。

      這類用戶可以選擇自帶核顯的CPU,如英特爾600塊的奔騰G5500,或者800元的i3-8100。這類CPU的自帶的HD630核顯完全可以輕松解碼4K視頻以及流暢運行LOL、DNF這類游戲,省下的錢買塊固態(tài)硬盤,加條內存豈不是美滋滋。

      注:使用核顯請盡量組雙通道內存條,以提升核顯性能。預算有限可以上2條4GB組建8GB雙通道,預算充裕直接上2條8GB組16GB雙通道大內存。

      總結:

      1.游戲用戶選擇高主頻的CPU,4核4線程差不多就夠用了。如i3 8100/i5 8400等,此外英特爾i3-8350K、i5-8600K(這種帶K的CPU還可以通過超頻來達到更高的頻率,不過要搭配較貴的Z370系主板使用);AMD銳龍二代CPU也很不錯,建議購買后綴帶X的如,銳龍R5 2600X,雖然本身性價比并不突出,但是好在可以搭配AMD平臺較便宜的B350主板進行超頻。

      2.對于需要做圖形渲染工作的用戶來說,多核心多線程的CPU是最優(yōu)的選擇。AMD多核心多線程的銳龍系列性價比非常的高。

      3.普通用戶,如果沒有大型游戲需求,英特爾的i3-8100絕對是最有性價比的選擇。首先是4核4線程3.6GHz,性能足夠用,而且自帶的核顯性能也不俗,還能省下買顯卡的錢。

      4.選擇CPU的時候,一定要詢問店家是不是支持自己的主板。有時候雖然接口針腳數量是一樣的,但是可能并不兼容。(英特爾,別左右瞎看了,說的就是你)

      那些關于CPU的知識,你真的懂了嗎?

      關于cpu和程序的執(zhí)行

      CPU是計算機的大腦。

      1、程序的運行過程,實際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。

      當程序要執(zhí)行的部分被裝載到內存后,CPU要從內存中取出指令,然后指令解碼(以便知道類型和操作數,簡單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個指令、解碼、執(zhí)行,以此類推直到程序退出。

      2、這個取指、解碼、執(zhí)行三個過程構成一個CPU的基本周期。

      3、每個CPU都有一套自己可以執(zhí)行的專門的指令集(注意,這部分指令是CPU提供的,CPU-Z軟件可查看)。

      正是因為不同CPU架構的指令集不同,使得x86處理器不能執(zhí)行ARM程序,ARM程序也不能執(zhí)行x86程序。(Intel和AMD都使用x86指令集,手機絕大多數使用ARM指令集)。

      注:指令集的軟硬件層次之分:硬件指令集是硬件層次上由CPU自身提供的可執(zhí)行的指令集合。軟件指令集是指語言程序庫所提供的指令,只要安裝了該語言的程序庫,指令就可以執(zhí)行。

      4、由于CPU訪問內存以得到指令或數據的時間要比執(zhí)行指令花費的時間長很多,因此在CPU內部提供了一些用來保存關鍵變量、臨時數據等信息的通用寄存器。

      所以,CPU需要提供 一些特定的指令,使得可以從內存中讀取數據存入寄存器以及可以將寄存器數據存入內存。

      此外還需要提供加法、減、not/and/or等基本運算指令,而乘除法運算都是推算出來的(支持的基本運算指令參見ALU Functions),所以乘除法的速度要慢的多。這也是算法里在考慮時間復雜度時常常忽略加減法次數帶來的影響,而考慮乘除法的次數的原因。

      5、除了通用寄存器,還有一些特殊的寄存器。典型的如:

      PC:program counter,表示程序計數器,它保存了將要取出的下一條指令的內存地址,指令取出后,就會更新該寄存器指向下一條指令。

      堆棧指針:指向內存當前棧的頂端,包含了每個函數執(zhí)行過程的棧幀,該棧幀中保存了該函數相關的輸入參數、局部變量、以及一些沒有保存在寄存器中的臨時變量。

      PSW:program status word,表示程序狀態(tài)字,這個寄存器內保存了一些控制位,比如CPU的優(yōu)先級、CPU的工作模式(用戶態(tài)還是內核態(tài)模式)等。

      6、在CPU進行進程切換的時候,需要將寄存器中和當前進程有關的狀態(tài)數據寫入內存對應的位置(內核中該進程的棧空間)保存起來,當切換回該進程時,需要從內存中拷貝回寄存器中。即上下文切換時,需要保護現(xiàn)場和恢復現(xiàn)場。

      7、為了改善性能,CPU已經不是單條取指-->解碼-->執(zhí)行的路線,而是分別為這3個過程分別提供獨立的取值單元,解碼單元以及執(zhí)行單元。這樣就形成了流水線模式。

      例如,流水線的最后一個單元——執(zhí)行單元正在執(zhí)行第n條指令,而前一個單元可以對第n+1條指令進行解碼,再前一個單元即取指單元可以去讀取第n+2條指令。這是三階段的流水線,還可能會有更長的流水線模式。

      8、更優(yōu)化的CPU架構是superscalar架構(超標量架構)。這種架構將取指、解碼、執(zhí)行單元分開,有大量的執(zhí)行單元,然后每個取指+解碼的部分都以并行的方式運行。比如有2個取指+解碼的并行工作線路,每個工作線路都將解碼后的指令放入一個緩存緩沖區(qū)等待執(zhí)行單元去取出執(zhí)行。

      9、除了嵌入式系統(tǒng),多數CPU都有兩種工作模式:內核態(tài)和用戶態(tài)。這兩種工作模式是由PSW寄存器上的一個二進制位來控制的。

      10、內核態(tài)的CPU,可以執(zhí)行指令集中的所有指令,并使用硬件的所有功能。

      11、用戶態(tài)的CPU,只允許執(zhí)行指令集中的部分指令。一般而言,IO相關和把內存保護相關的所有執(zhí)行在用戶態(tài)下都是被禁止的,此外其它一些特權指令也是被禁止的,比如用戶態(tài)下不能將PSW的模式設置控制位設置成內核態(tài)。

      12、用戶態(tài)CPU想要執(zhí)行特權操作,需要發(fā)起系統(tǒng)調用來請求內核幫忙完成對應的操作。其實是在發(fā)起系統(tǒng)調用后,CPU會執(zhí)行trap指令陷入(trap)到內核。當特權操作完成后,需要執(zhí)行一個指令讓CPU返回到用戶態(tài)。

      13、除了系統(tǒng)調用會陷入內核,更多的是硬件會引起trap行為陷入內核,使得CPU控制權可以回到操作系統(tǒng),以便操作系統(tǒng)去決定如何處理硬件異常。

      關于CPU的基本組成

      1、CPU是用來運算的(加法運算+、乘法運算__、邏輯運算and not or等),例如c=a+b。

      2、運算操作涉及到數據輸入(input)、處理、數據輸出(output),a和b是輸入數據,加法運算是處理,c是輸出數據。

      3、CPU需要使用一個叫做存儲器(也就是各種寄存器)的東西保存輸入和輸出數據。以下是幾種常見的寄存器(前文也介紹了一些)

      MAR: memory address register,保存將要被訪問數據在內存中哪個地址處,保存的是地址值

      MDR: memory data register,保存從內存讀取進來的數據或將要寫入內存的數據,保存的是數據值

      AC: Accumulator,保存算術運算和邏輯運算的中間結果,保存的是數據值

      PC: Program Counter,保存下一個將要被執(zhí)行指令的地址,保存的是地址值

      CIR: current instruction register,保存當前正在執(zhí)行的指令

      4、CPU還要將一些常用的基本運算工具(如加法器)放進CPU,這部分負責運算,稱為算術邏輯單元(ALU, Arithmetic Logic Unit)。

      5、CPU中還有一個控制器(CU, Control Unit),負責將存儲器中的數據送到ALU中去做運算,并將運算后的結果存回到存儲器中。

      控制器還包含了一些控制信號。

      5、控制器之所以知道數據放哪里、做什么運算(比如是做加法還是邏輯運算?)都是由指令告訴控制器的,每個指令對應一個基本操作,比如加法運算對應一個指令。

      6、例如,將兩個MDR寄存器(保存了來自內存的兩個數據)中的值拷貝到ALU中,然后根據指定的操作指令執(zhí)行加法運算,將運算結果拷貝會一個MDR寄存器中,最后寫入到內存。

      7、這就是馮諾依曼結構圖,也就是現(xiàn)在計算機的結構圖。

      關于CPU的多線和多進程

      1、CPU的物理個數由主板上的插槽數量決定,每個CPU可以有多核心,每核心可能會有多線程。

      2、多核CPU的每核(每核都是一個小芯片),在OS看來都是一個獨立的CPU。

      3、對于超線程CPU來說,每核CPU可以有多個線程(數量是兩個,比如1核雙線程,2核4線程,4核8線程),每個線程都是一個虛擬的邏輯CPU(比如windows下是以邏輯處理器的名稱稱呼的),而每個線程在OS看來也是獨立的CPU。

      這是欺騙操作系統(tǒng)的行為,在物理上仍然只有1核,只不過在超線程CPU的角度上看,它認為它的超線程會加速程序的運行。

      4、要發(fā)揮超線程優(yōu)勢,需要操作系統(tǒng)對超線程有專門的優(yōu)化。

      5、多線程的CPU在能力上,比非多線程的CPU核心要更強,但每個線程不足以與獨立的CPU核心能力相比較。

      6、每核上的多線程CPU都共享該核的CPU資源。

      例如,假設每核CPU都只有一個"發(fā)動機"資源,那么線程1這個虛擬CPU使用了這個"發(fā)動機"后,線程2就沒法使用,只能等待。

      所以,超線程技術的主要目的是為了增加流水線(參見前文對流水線的解釋)上更多個獨立的指令,這樣線程1和線程2在流水線上就盡量不會爭搶該核CPU資源。所以,超線程技術利用了superscalar(超標量)架構的優(yōu)點。

      7、多線程意味著每核可以有多個線程的狀態(tài)。比如某核的線程1空閑,線程2運行。

      8、多線程沒有提供真正意義上的并行處理,每核CPU在某一時刻仍然只能運行一個進程,因為線程1和線程2是共享某核CPU資源的??梢院唵蔚恼J為每核CPU在獨立執(zhí)行進程的能力上,有一個資源是唯一的,線程1獲取了該資源,線程2就沒法獲取。

      但是,線程1和線程2在很多方面上是可以并行執(zhí)行的。比如可以并行取指、并行解碼、并行執(zhí)行指令等。所以雖然單核在同一時間只能執(zhí)行一個進程,但線程1和線程2可以互相幫助,加速進程的執(zhí)行。

      并且,如果線程1在某一時刻獲取了該核執(zhí)行進程的能力,假設此刻該進程發(fā)出了IO請求,于是線程1掌握的執(zhí)行進程的能力,就可以被線程2獲取,即切換到線程2。這是在執(zhí)行線程間的切換,是非常輕量級的。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)

      9、多線程可能會出現(xiàn)一種現(xiàn)象:假如2核4線程CPU,有兩個進程要被調度,那么只有兩個線程會處于運行狀態(tài),如果這兩個線程是在同一核上,則另一核完全空轉,處于浪費狀態(tài)。更期望的結果是每核上都有一個CPU分別調度這兩個進程。

      關于CPU上的高速緩存

      1、最高速的緩存是CPU的寄存器,它們和CPU的材料相同,最靠近CPU或最接近CPU,訪問它們沒有時延(<1ns)。但容量很小,小于1kb。

      32bit:32__32比特=128字節(jié)

      64bit:64__64比特=512字節(jié)

      2、寄存器之下,是CPU的高速緩存。分為L1緩存、L2緩存、L3緩存,每層速度按數量級遞減、容量也越來越大。

      3、每核心都有一個自己的L1緩存。L1緩存分兩種:L1指令緩存(L1-icache)和L1數據緩存(L1-dcache)。L1指令緩存用來存放已解碼指令,L1數據緩存用來放訪問非常頻繁的數據。

      4、L2緩存用來存放近期使用過的內存數據。更嚴格地說,存放的是很可能將來會被CPU使用的數據。

      5、多數多核CPU的各核都各自擁有一個L2緩存,但也有多核共享L2緩存的設計。無論如何,L1是各核私有的(但對某核內的多線程是共享的)。

      CPU 的基礎知識大全相關文章:

      cpu基礎知識詳解

      2019超詳細電腦硬件及電腦配置知識大全講解

      電腦知識大全菜鳥必備

      計算機硬件基礎知識學習

      電腦入門基本知識大全

      電腦硬件入門學習

      電腦入門基本知識有哪些

      計算機網絡基礎技能大全

      計算機網絡知識大全

      常識科普知識大全

      731591