亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 硬件 > CPU > 正文

一文總結 CPU 基本知識(小結)

2020-07-16 12:46:13
字體:
來源:轉載
供稿:網友

 關于CPU和程序的執行

CPU是計算機的大腦。

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

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

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

3、每個CPU都有一套自己可以執行的專門的指令集(注意,這部分指令是CPU提供的,CPU-Z軟件可查看)。正是因為不同CPU架構的指令集不同,使得x86處理器不能執行ARM程序,ARM程序也不能執行x86程序。(Intel和AMD都使用x86指令集,手機絕大多數使用ARM指令集)。

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

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

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

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

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

  • PC:program counter,表示程序計數器,它保存了將要取出的下一條指令的內存地址,指令取出后,就會更新該寄存器指向下一條指令。
  • 堆棧指針:指向內存當前棧的頂端,包含了每個函數執行過程的棧幀,該棧幀中保存了該函數相關的輸入參數、局部變量、以及一些沒有保存在寄存器中的臨時變量。
  • PSW:program status word,表示程序狀態字,這個寄存器內保存了一些控制位,比如CPU的優先級、CPU的工作模式(用戶態還是內核態模式)等。
     

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

7、為了改善性能,CPU已經不是單條取指-->解碼-->執行的路線,而是分別為這3個過程分別提供獨立的取值單元,解碼單元以及執行單元。這樣就形成了流水線模式。
例如,流水線的最后一個單元——執行單元正在執行第n條指令,而前一個單元可以對第n+1條指令進行解碼,再前一個單元即取指單元可以去讀取第n+2條指令。這是三階段的流水線,還可能會有更長的流水線模式。

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

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

10、內核態的CPU,可以執行指令集中的所有指令,并使用硬件的所有功能。

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

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

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

關于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,保存下一個將要被執行指令的地址,保存的是地址值
  • CIR: current instruction register,保存當前正在執行的指令

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

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

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

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

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

8.這就是馮諾依曼結構圖,也就是現在計算機的結構圖。

關于CPU的多核和多線程

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

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

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

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

4.要發揮超線程優勢,需要操作系統對超線程有專門的優化。

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

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

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

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

7.多線程意味著每核可以有多個線程的狀態。比如某核的線程1空閑,線程2運行。

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

但是,線程1和線程2在很多方面上是可以并行執行的。比如可以并行取指、并行解碼、并行執行指令等。所以雖然單核在同一時間只能執行一個進程,但線程1和線程2可以互相幫助,加速進程的執行。
并且,如果線程1在某一時刻獲取了該核執行進程的能力,假設此刻該進程發出了IO請求,于是線程1掌握的執行進程的能力,就可以被線程2獲取,即切換到線程2。這是在執行線程間的切換,是非常輕量級的。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)

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

關于CPU上的高速緩存最高速的緩存是CPU的寄存器,它們和CPU的材料相同,最靠近CPU或最接近CPU,訪問它們沒有時延(<1ns)。但容量很小,小于1kb。32bit:32*32比特=128字節
64bit:64*64比特=512字節

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

每核心都有一個自己的L1緩存。L1緩存分兩種:L1指令緩存(L1-icache)和L1數據緩存(L1-dcache)。L1指令緩存用來存放已解碼指令,L1數據緩存用來放訪問非常頻繁的數據。L2緩存用來存放近期使用過的內存數據。更嚴格地說,存放的是很可能將來會被CPU使用的數據。多數多核CPU的各核都各自擁有一個L2緩存,但也有多核共享L2緩存的設計。無論如何,L1是各核私有的(但對某核內的多線程是共享的)。

本文原創地址:博客園駿馬金龍https://www.cnblogs.com/f-ck-need-u/p/11141636.htm

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97成人精品区在线播放| 国产亚洲精品美女| 国产成人精品在线观看| 久久深夜福利免费观看| 欧美成人免费小视频| 成人黄在线观看| 久久天堂av综合合色| 日韩电影视频免费| 久久久伊人欧美| 国产精品高清免费在线观看| 欧美另类在线观看| 国产日本欧美一区二区三区在线| 国产精品xxxxx| 亚洲第一黄色网| 亚洲一区av在线播放| 伊人一区二区三区久久精品| 69久久夜色精品国产7777| 夜夜嗨av色综合久久久综合网| 精品久久久免费| 中文字幕欧美专区| 91视频国产一区| 精品久久久久久中文字幕一区奶水| 久久夜精品香蕉| 91麻豆国产语对白在线观看| 亚洲电影免费观看高清完整版| 日韩欧美第一页| 菠萝蜜影院一区二区免费| 91精品国产成人| 亚洲国产91色在线| 日本韩国欧美精品大片卡二| 亚洲国产精品久久久| 成人免费视频xnxx.com| 亚洲第五色综合网| 中文字幕日韩精品在线| 91福利视频在线观看| 国产精品盗摄久久久| 色999日韩欧美国产| 欧美日韩综合视频网址| 久久久久久久久久久人体| 国语自产在线不卡| www国产精品视频| 在线观看国产精品日韩av| 一区二区三区精品99久久| 欧美高清在线播放| 日本精品久久久久影院| 亚洲3p在线观看| 国产色婷婷国产综合在线理论片a| 欧美激情视频播放| 亚洲毛片一区二区| 国产精品免费在线免费| 国产精品视频播放| 亚洲国产精品久久精品怡红院| 日韩国产中文字幕| 国产精品国产福利国产秒拍| 91国产高清在线| 久久久噜噜噜久久| 国产精品女人网站| 黑人巨大精品欧美一区二区免费| 国产97在线|日韩| 亚洲成人精品在线| 久久精品国产欧美亚洲人人爽| 亚洲精品国产电影| 自拍偷拍亚洲精品| 高潮白浆女日韩av免费看| 日韩精品中文在线观看| 国产69精品久久久| 亚洲性猛交xxxxwww| 亚洲欧美激情四射在线日| 久久躁日日躁aaaaxxxx| 久久亚洲精品小早川怜子66| 97久久超碰福利国产精品…| 欧美精品一区二区免费| 日韩精品在线私人| 欧美夫妻性生活xx| 国产精品v片在线观看不卡| 伦理中文字幕亚洲| 欧美成人免费一级人片100| 麻豆乱码国产一区二区三区| 亚洲精品日产aⅴ| 国产成人精品日本亚洲专区61| 中文.日本.精品| 成人淫片在线看| 亚洲缚视频在线观看| 疯狂做受xxxx欧美肥白少妇| 亚洲欧美日韩在线高清直播| 91色视频在线导航| 欧美人在线视频| 久久久久久久国产精品| 日韩av免费一区| 国产成人精品网站| 国产精品2018| 午夜精品一区二区三区在线视| 国产精品成人国产乱一区| 国产激情999| 欧美一级片一区| 国产成人精品在线播放| 欧美乱妇40p| 亚洲精品国产精品自产a区红杏吧| 亚洲欧美另类在线观看| 91免费视频网站| 欧美电影《睫毛膏》| 色爱精品视频一区| 91丨九色丨国产在线| 精品国产一区二区三区久久久狼| 国产日韩欧美在线播放| 国产成人精品免费久久久久| 91国内免费在线视频| 欧美性资源免费| 亚洲成人久久电影| 日韩免费观看在线观看| 亚洲视频在线观看免费| 曰本色欧美视频在线| 亚洲日本中文字幕免费在线不卡| 狠狠躁夜夜躁久久躁别揉| 亚洲经典中文字幕| 伊人激情综合网| 欧美精品999| 91成人在线播放| 日韩精品极品视频免费观看| 欧美精品在线视频观看| 亚洲影视九九影院在线观看| 亚洲欧美综合精品久久成人| 亚洲一区二区三区xxx视频| 国产成人精品电影| 欧美精品久久久久久久久| 国产亚洲精品激情久久| 国产91热爆ts人妖在线| 一区二区成人av| 亚洲视频一区二区三区| 欧美性资源免费| 国产欧美一区二区三区久久| 日韩精品视频免费| 亚洲第一精品久久忘忧草社区| 精品国产一区二区三区在线观看| 国产成人a亚洲精品| 91九色精品视频| 在线观看欧美日韩国产| 亚洲国产精彩中文乱码av在线播放| 亚洲直播在线一区| 久热爱精品视频线路一| 国产精品一区二区三区毛片淫片| 夜夜躁日日躁狠狠久久88av| 亚洲香蕉成人av网站在线观看| 午夜精品一区二区三区视频免费看| 永久免费看mv网站入口亚洲| 成人亲热视频网站| 亚洲男人天堂2024| 欧美xxxwww| 亚洲成人av中文字幕| 精品久久久在线观看| 92裸体在线视频网站| 久久久国产精品一区| 亚洲电影免费观看高清完整版在线| 欧美日韩亚洲系列| 亚洲一区二区三区毛片| 超碰97人人做人人爱少妇| 2018国产精品视频| 欧美性生交xxxxx久久久| 日韩在线视频国产| 欧美日韩一区二区免费在线观看| 欧美国产精品va在线观看| 欧美成年人视频网站欧美| 日韩亚洲第一页| 成人激情视频在线|