【廣告】
程序的運行過程,實際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。當程序要執(zhí)行的部分被裝載到內(nèi)存后,CPU要從內(nèi)存中取出指令,然后指令解了碼(以便知道類型和操作數(shù),簡單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個指令、解了碼、執(zhí)行,以此類推直到程序退出。
關于CPU的基本組成
1、CPU是用來運算的(加法運算 、乘法運算*、邏輯運算and not or等),例如c=a b。
2、運算操作涉及到數(shù)據(jù)輸入(input)、處理、數(shù)據(jù)輸出(output),a和b是輸入數(shù)據(jù),加法運算是處理,c是輸出數(shù)據(jù)。
3、CPU需要使用一個叫做存儲器(也就是各種寄存器)的東西保存輸入和輸出數(shù)據(jù)。
4、CPU還要將一些常用的基本運算工具(如加法器)放進CPU,這部分負責運算,稱為算術邏輯單元(ALU)。
5、CPU中還有一個控制器(CU),負責將存儲器中的數(shù)據(jù)送到ALU中去做運算,并將運算后的結果存回到存儲器中??刂破鬟€包含了一些控制信號。
每核上的多線程CPU都共享該核的CPU資源。
假設每核CPU都只有一個"發(fā)動機"資源,那么線程1這個虛擬CPU使用了這個"發(fā)動機"后,線程2就沒法使用,只能等待。
所以,超線程技術的主要目的是為了增加流水線上更多個獨立的指令,這樣線程1和線程2在流水線上就盡量不會爭搶該核CPU資源。所以,超線程技術利用了superscalar(超標量)架構的優(yōu)點。